Cortex-M1處理器支持緊耦合內(nèi)存TMC并采用了精細的低后滯中斷控制器" border="0" height="354" hspace="0" src="http://files.chinaaet.com/images/20100812/dae56da3-5db5-49f9-aae7-12708347c9a4.jpg" width="400" />
市場所需的是針對FPGA優(yōu)化且符合業(yè)界標準的32位處理器構架體系。直到最近,大多數(shù)處理器知識產(chǎn)權(IP)一直是針對ASIC使用而開發(fā)。因此,在FPGA的粗顆粒構架上實現(xiàn)時,處理器往往較大且速度較慢。雖然,市場上也有一些可在FPGA上實現(xiàn)的專用軟IP處理器核,但它們在開發(fā)工具、技術支持資源及設計人員經(jīng)驗方面都存在局限。
為了應對這一市場需求,Actel和ARM公司推出了專為在FPGA上實現(xiàn)而設計的32位ARM處理器核Cortex-M1,可在Actel非易失性ProASIC3 FPGA和Fusion可編程系統(tǒng)芯片(PSC)上使用。用戶無需與Actel簽約,也無需授權費用和權益金,從而將ARM體系擴展到小批量應用領域。對于那些擴大至超大產(chǎn)量規(guī)模的設計,32位Cortex-M1處理器核可執(zhí)行業(yè)界標準的Thumb指令集,并向上兼容Cortex-M3處理
器,因而可輕易轉(zhuǎn)向ASIC設計。由于符合業(yè)界標準,Cortex-M1處理器核也能重復利用現(xiàn)有的開發(fā)工具、代碼和知識,有助于節(jié)省成本、降低開發(fā)風險及加快產(chǎn)品面市。
在FPGA上實現(xiàn)業(yè)界標準構架
專有構架所面臨的困難是如何提高其在目標應用中的效率,以及如何解決支持工具受限的問題。而且,經(jīng)驗豐富的設計人員都知道,需要花費時間學習,并積累經(jīng)驗,才能掌控新產(chǎn)品的特性。不幸的是,這些困難與日益縮短的開發(fā)周期及越來越大的設計風險形成直接的沖突。由于這些原因,設計人員總是趨向于重復使用他們所熟悉,或之前使用過的產(chǎn)品。
當然,較之于專有構架,業(yè)界標準的架構給用戶帶來的優(yōu)勢多得多。ARM和Actel基于Cortex構架,合作開發(fā)針對FPGA而優(yōu)化的處理器核。這種定制化的設計使該處理器核的性能和效率提高,邏輯單元占用量減小。
Cortex-M1特點
Cortex-M1處理器核基于ARM的3級Cortex-M3流水線技術,具有高可配置性,在速度和內(nèi)存占用上取得了很好的平衡,非常適合嵌入式應用。在最小配置情況下,僅比Actel的Core8051核(標準16位控制器)大一點,不超過5%。Cortex-M1在Actel ProASIC3和Fusion中的工作頻率超過70MHz。該處理器運行新的Thumb-2指令集的一個子集,支持緊耦合內(nèi)存(TCM),并采用精細的低后滯中斷控制器,因而可提高嵌入式系統(tǒng)的性能和能力。
改進的代碼密度能提高性能和能效
Thumb-2技術基于成功的Thumb技術。Thumb是針對ARM微處理器設計的高代碼密度指令集,能夠提高用于低成本、高性能系統(tǒng)的ARM微處理器核的能力。
就優(yōu)化代碼性能而言,Thumb-2技術較之于現(xiàn)有的高密度代碼,內(nèi)存占用減少了31%,從而降低了系統(tǒng)成本,同時性能提升高達38%,因而能夠延長產(chǎn)品的電池壽命或豐富產(chǎn)品的功能。
Cortex-M1基于Cortex-M3流水線技術,并執(zhí)行ARMv6-M指令集,亦即Thumb-2(ARMv7)指令集的一個全子集。Thumb-2指令集也用于Cortex系列的其它處理器核。Cortex系列向上兼容針對其傳統(tǒng)處理器核(ARM7、ARM9和ARM11)編寫的Thumb代碼,現(xiàn)有的Thumb代碼可直接在包括Cortex-M1的Cortex系列處理器上運行。
較之于以前的ARM指令集體系,Thumb-2的優(yōu)勢之一是16位和32位指令都以相同的模式執(zhí)行。在過去的ARM體系中,Thumb指令主要用于子程序中,這些子程序帶有用于實現(xiàn)中斷服務的32位ARM指令。這種方式常常在中斷請求接收時和中斷服務啟動時之間造成較長的延遲。在Thumb-2體系中,ARM將16位和32位運作模式合并,因此處理中斷時就不必從16位模式切換到32位模式。Thumb-2能夠自由混合16位和32位指令,可大大地簡化編程任務,無需設定代碼的順序構造,即可實現(xiàn)代碼最小化和處理能力最大化。此外,Thumb-2指令的性能更高,這是因為設計人員能優(yōu)化地混合指令,無需將它們按16位和32位分組。
內(nèi)存存取速度更快性能更高
Cortex-M1具有來自AMBA外設總線接口的單獨內(nèi)存接口。這類似于高性能的ARM9體系,但不同于ARM7,后者采用的是組合的內(nèi)存和外設總線。Cortex-M1的這個單獨內(nèi)存實際上是兩個接口,即為訪問指令緊耦合內(nèi)存(ITCM)和數(shù)據(jù)緊耦合內(nèi)存(DTCM)(見圖1)提供了單獨的通道。因此,處理器性能大大提升,因為處理器能在每個時鐘周期內(nèi)從ITCM提取一條指令,且決不會因數(shù)據(jù)內(nèi)存訪問操作或讀寫 AMBA上的外設而停頓。ITCM和DTCM的大小都可由用戶定制,容量可從0kB增加到1MB。
高效的中斷操作縮短后滯
Cortex-M1具有可配置的嵌套向量中斷控制器(NVIC),有利于實現(xiàn)低后滯中斷處理和異常處理,同時還簡化了編程(見圖1)。NVIC支持中斷優(yōu)先級重新定義,并與處理器核緊密耦合,因而能減少中斷后滯,從而高效地處理隨后到達的中斷。Cortex-M1中的NVIC還允許用戶單獨決定中斷優(yōu)先級,并支持4個中斷優(yōu)先級別。例如,可設置關鍵事件首先處理,并可中斷一個正在執(zhí)行的優(yōu)先級較低的中斷服務,即設計人員可在自己的應用內(nèi)部構造事件處理流程。
簡化的編程模型使代碼編寫更方便
Cortex-M1執(zhí)行Thumb-2指令集的一個子集,有兩種工作模式。對于正常處理,Cortex-M1進入線程模式(通過復位進入或異常處理后返回);出現(xiàn)異常后則進入中斷處理模式。該處理器適用于那些不再需要其它工作模式的嵌入式系統(tǒng)。由于編程模型僅限于針對少量的工作模式,處理器的邏輯單元占用量顯著減小,因而降低了成本。
這種處理器所采用的構架使設計人員能通過處理器核最大限度地控制數(shù)據(jù)和處
理流程,只要權衡得當,保持處理器盡可能小。這樣就可簡化編程,尤其是在多個工程師參與開發(fā)軟件和硬件的情況下。為簡化編程,使線程模式和中斷處理模式間的過渡盡可能平滑,該處理器采用了兩個堆棧。復位后,所有代碼都使用主堆棧。異常中斷處理程序可改變線程模式所使用的堆棧,即在線程模式退出時,通過改變它所使用的EXC_RETURN值將堆棧從主堆棧變?yōu)樘幚矶褩?。而所有異常處理程序繼續(xù)使用主堆棧。堆棧指針(R13)是一個分組寄存器,負責實現(xiàn)主堆棧和處理堆棧間的切換。
熟悉ARM7和ARM9的人會注意到,Cortex-M1寄存器文件作用類似于維護Thumb指令兼容性。不過,Cortex-M1寄存器要簡單些,用較少的FPGA系統(tǒng)門就可實現(xiàn)。為進一步簡化編程,該處理器還定義了一個內(nèi)存映像,而處理器核能訪問該內(nèi)存映像的所有區(qū)域,包括所有數(shù)據(jù)類型的數(shù)據(jù)區(qū)域。
具有M1功能的FPGA
采用FPGA就可在幾個小時內(nèi)實現(xiàn)設計,并在應用中運行起來,而采用ASIC就需要好幾個月,而且還會有龐大的非經(jīng)常性工程費用。
ARM和Actel在開發(fā)Cortex-M1時就使處理器具有很高的可配置性,允許用戶針對應用的特定需求量身定制處理器。緊耦合內(nèi)存的大小、多路復用器的大小和速度、外部中斷的個數(shù)、為實現(xiàn)向下兼容所采用的字節(jié)排序方式,以及是否納入調(diào)試電路和OS擴展集等,均可由用戶選擇。這樣,設計人員在編譯時就可控制,從而選出最能滿足應用要求的最小處理器配置。不僅如此,由于Cortex-M1是在FPGA器件上實現(xiàn),設計人員能快速配置處理器核,將配置好的處理器核編寫入具M1功能的Flash器件中,并在最終應用中進行驗證。如果需要修改,可在幾分鐘內(nèi)完成修改并重新編程寫入器件中。這樣,工程師就可在幾個小時內(nèi)多次修改和測試其設計,從而找出產(chǎn)品的最優(yōu)實現(xiàn)方案。
在具M1功能的Actel FPGA上,可無縫使用Cortex-M1處理器核。具有60萬個系統(tǒng)門的M1AFS600 Fusion PSC集成了一個12位ADC、40個模擬輸出、8Mbit Flash內(nèi)存,以及FPGA架構。Cortex-M1核僅用4300個邏輯單元就能實現(xiàn),還不到M1AFS600 Fusion PSC中FPGA容量的30%。
M1A3P1000有144kbit SRAM和300個數(shù)字I/O,Cortex-M1處理器核僅用4300個tile就能實現(xiàn)。
Cortex-M1開發(fā)工具
為支持在Actel FPGA中實現(xiàn)的ARM處理器,需要工具開發(fā)和調(diào)試在該處理器上運行的程序,也需要工具開發(fā)和調(diào)試編寫在FPGA中的邏輯電路。采用ARM處理器的一個主要優(yōu)點是這種處理器擁有龐大的工具和設計支持生態(tài)系統(tǒng),以及大量現(xiàn)成的嵌入式軟件程序(見圖2)。這個生態(tài)系統(tǒng)包含了Actel的IP核開發(fā)平臺CoreConsole IDP、Libero IDE開發(fā)環(huán)境、SoftConsole程序開發(fā)環(huán)境,以及完備的板級開發(fā)和調(diào)試環(huán)境。ARM也將在其RealView開發(fā)套件和RealView微控制器開發(fā)套件(MDK)中為Cortex-M1提供支持。
除了ARM和Actel的開發(fā)工具外,Aldec、CriticalBlue、CodeSourcery、IAR、ImpulseC和Mentor Graphic等第三方廠商的開發(fā)工具也會為Cortex-M1提供支持。
結(jié)論
隨著嵌入式應用轉(zhuǎn)向可編程邏輯技術,由ASIC向FPGA的轉(zhuǎn)變正在推動人們使用在FPGA中實現(xiàn)的32位處理器。Cortex-M1處理器采用了均衡的三級流水線技術,精細的中斷控制器和緊耦合內(nèi)存, 能最大限度地提升嵌入式系統(tǒng)的性能,并同時減小處理器的大小和實現(xiàn)成本。由于該方案基于符合業(yè)界標準的構架體系,因此用戶能夠充分利用大量現(xiàn)成的代碼、廣泛的知識和技術支持以及龐大的開發(fā)工具系統(tǒng)。