用戶可定制的處理器
可擴(kuò)展處理器的優(yōu)勢(shì)
完整的可配置與可擴(kuò)展處理器技術(shù)包括了處理器本身以及相應(yīng)的設(shè)計(jì)工具和軟件開發(fā)環(huán)境,從而使設(shè)計(jì)者通過(guò)改變或增減功能模塊,設(shè)計(jì)出與特定的應(yīng)用需求相匹配的處理器。典型的配置方法包括對(duì)存儲(chǔ)器的增減修改,外部總線寬度及握手協(xié)議的設(shè)置以及常用的處理器外設(shè)的配置。除此之外,還可以對(duì)處理器進(jìn)行擴(kuò)展――SoC設(shè)計(jì)者可以擴(kuò)展處理器的功能,特別是其指令集――為基本處理器增加原設(shè)計(jì)者從未想到過(guò)的功能。配置處理器的概念是通過(guò)參數(shù)來(lái)選擇或裁剪處理器的功能,配置后的處理器可以通過(guò)多種方式硬件實(shí)現(xiàn),包括耗費(fèi)數(shù)周時(shí)間的ASIC方式或僅需幾分鐘的FPGA方式。擴(kuò)展處理器的概念是設(shè)計(jì)人員為處理器增加原設(shè)計(jì)者從未考慮到的功能,是可配置處理器的一個(gè)超集。對(duì)于可配置與可擴(kuò)展處理器來(lái)說(shuō),在提供處理器硬件實(shí)現(xiàn)的同時(shí),還必須能夠自動(dòng)生成相應(yīng)的軟件開發(fā)環(huán)境。沒有編譯器,匯編器,仿真器,調(diào)試器,實(shí)時(shí)操作系統(tǒng)以及其他軟件工具的支持,可配置與擴(kuò)展處理器所提供的高性能與靈活性也就無(wú)從談起,因?yàn)橹挥凶屲浖藛T能夠方便的編程,才能將處理器的性能與靈活性發(fā)揮出來(lái)。本文引用地址:http://2s4d.com/article/152554.htm
以Tensilica的可配置與可擴(kuò)展處理器Xtensa為例,其模塊圖如圖1所示。它包括了基本指令集架構(gòu)、通用寄存器文件、存儲(chǔ)器接口、可選的處理器外設(shè)、DSP協(xié)處理器以及集成用戶定制指令的機(jī)制。
處理器的可擴(kuò)展能力可以看做可配置的高級(jí)形式,因?yàn)樗膽?yīng)用更為廣泛。系統(tǒng)設(shè)計(jì)者和應(yīng)用專家可以直接探索應(yīng)用的性能需求以及什么樣的處理器架構(gòu)和指令集才能滿足這樣的需求。
微處理器的應(yīng)用將SoC設(shè)計(jì)與板級(jí)設(shè)計(jì)區(qū)分開來(lái)
RTL硬邏輯有許多優(yōu)勢(shì)――面積小、功耗低、性能強(qiáng)大。但是在大規(guī)模的SoC設(shè)計(jì)中,采用RTL硬邏輯的不利因素(設(shè)計(jì)周期長(zhǎng)、驗(yàn)證困難、不夠靈活)正在逐漸大過(guò)其優(yōu)勢(shì)。而保留了大多數(shù)RTL硬邏輯的優(yōu)點(diǎn),又能夠縮短開發(fā)時(shí)間并降低風(fēng)險(xiǎn)的設(shè)計(jì)方法正在流行起來(lái),這就是針對(duì)特殊應(yīng)用進(jìn)行優(yōu)化以取代復(fù)雜RTL設(shè)計(jì)的可配置處理器。
針對(duì)應(yīng)用進(jìn)行優(yōu)化的處理器與相應(yīng)的RTL設(shè)計(jì)擁有相近的數(shù)據(jù)通路,它在基本處理器核的流水線上增加額外的運(yùn)算單元,新的寄存器或寄存器文件以及芯片架構(gòu)師定義的其他功能模塊來(lái)實(shí)現(xiàn)特定的應(yīng)用。
在Xtensa處理器中,這些擴(kuò)展功能是利用一種名為TIE語(yǔ)言的類Verilog語(yǔ)言來(lái)描述的。TIE語(yǔ)言經(jīng)過(guò)優(yōu)化,適用于描述數(shù)據(jù)處理指令的功能并對(duì)其進(jìn)行編碼。用TIE語(yǔ)言來(lái)進(jìn)行描述比RTL要簡(jiǎn)潔得多,因?yàn)樗サ袅怂袝r(shí)序邏輯,包括狀態(tài)機(jī)描述、流水線寄存器以及初始化順序。對(duì)于固件程序員來(lái)說(shuō),處理器中用TIE語(yǔ)言擴(kuò)展的新指令和寄存器都可以通過(guò)編譯器和匯編器來(lái)進(jìn)行調(diào)用。利用處理器中取指、譯碼、執(zhí)行的流水線機(jī)制,通過(guò)C或C++高級(jí)語(yǔ)言編程,可以由固件程序來(lái)控制處理器數(shù)據(jù)通路上的操作。用來(lái)替代RTL模塊的可擴(kuò)展處理器與傳統(tǒng)的RTL設(shè)計(jì)在結(jié)構(gòu)上大同小異:更深的流水線、并行的執(zhí)行單元、特殊的狀態(tài)寄存器、比片內(nèi)外存儲(chǔ)器間更寬的數(shù)據(jù)接口等。這些擴(kuò)展后的處理器保留了原來(lái)RTL設(shè)計(jì)強(qiáng)大的運(yùn)算能力和數(shù)據(jù)接口格式。
可擴(kuò)展處理器對(duì)數(shù)據(jù)通路的控制機(jī)制則與RTL設(shè)計(jì)中依靠硬件狀態(tài)機(jī)切換狀態(tài)大為不同。實(shí)際上,操作的順序完全由處理器上運(yùn)行的固件程序控制,如圖2所示。用跳轉(zhuǎn)指令來(lái)實(shí)現(xiàn)控制操作,load/store指令來(lái)實(shí)現(xiàn)內(nèi)存操作,通用和專用計(jì)算指令來(lái)實(shí)現(xiàn)數(shù)據(jù)運(yùn)算操作。
圖2 可編程的功能模塊:數(shù)據(jù)通路+處理器+軟件程序
評(píng)論