《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 解決方案 > Cortex-M1:面向FPGA的解決方案

Cortex-M1:面向FPGA的解決方案

2012-04-23
關(guān)鍵詞: 開發(fā)工具 Cortex-M1 FPGA
</a>FPGA" title="FPGA">FPGA" title="FPGA">FPGA作為靈活且具成本效益的平臺(tái),越來(lái)越多地用于實(shí)現(xiàn)高性能嵌入系統(tǒng)的快速設(shè)計(jì),。這兩種趨勢(shì)相結(jié)合,,正在推動(dòng)市場(chǎng)對(duì)使用可編程邏輯實(shí)現(xiàn)32位處理器的需求。

圖1<a class=Cortex-M1處理器支持緊耦合內(nèi)存TMC并采用了精細(xì)的低后滯中斷控制器" border="0" height="354" hspace="0" src="http://files.chinaaet.com/images/20100812/dae56da3-5db5-49f9-aae7-12708347c9a4.jpg" width="400" />


  市場(chǎng)所需的是針對(duì)FPGA優(yōu)化且符合業(yè)界標(biāo)準(zhǔn)的32位處理器構(gòu)架體系,。直到最近,大多數(shù)處理器知識(shí)產(chǎn)權(quán)(IP)一直是針對(duì)ASIC使用而開發(fā),。因此,,在FPGA的粗顆粒構(gòu)架上實(shí)現(xiàn)時(shí),處理器往往較大且速度較慢,。雖然,,市場(chǎng)上也有一些可在FPGA上實(shí)現(xiàn)的專用軟IP處理器核,但它們?cè)?a class="innerlink" href="http://forexkbc.com/tags/開發(fā)工具" title="開發(fā)工具" target="_blank">開發(fā)工具,、技術(shù)支持資源及設(shè)計(jì)人員經(jīng)驗(yàn)方面都存在局限,。

  為了應(yīng)對(duì)這一市場(chǎng)需求,Actel和ARM公司推出了專為在FPGA上實(shí)現(xiàn)而設(shè)計(jì)的32位ARM處理器核Cortex-M1,,可在Actel非易失性ProASIC3 FPGA和Fusion可編程系統(tǒng)芯片(PSC)上使用,。用戶無(wú)需與Actel簽約,也無(wú)需授權(quán)費(fèi)用和權(quán)益金,,從而將ARM體系擴(kuò)展到小批量應(yīng)用領(lǐng)域,。對(duì)于那些擴(kuò)大至超大產(chǎn)量規(guī)模的設(shè)計(jì),32位Cortex-M1處理器核可執(zhí)行業(yè)界標(biāo)準(zhǔn)的Thumb指令集,,并向上兼容Cortex-M3處理

 

器,,因而可輕易轉(zhuǎn)向ASIC設(shè)計(jì)。由于符合業(yè)界標(biāo)準(zhǔn),,Cortex-M1處理器核也能重復(fù)利用現(xiàn)有的開發(fā)工具,、代碼和知識(shí),有助于節(jié)省成本,、降低開發(fā)風(fēng)險(xiǎn)及加快產(chǎn)品面市,。

 

  在FPGA上實(shí)現(xiàn)業(yè)界標(biāo)準(zhǔn)構(gòu)架

  專有構(gòu)架所面臨的困難是如何提高其在目標(biāo)應(yīng)用中的效率,以及如何解決支持工具受限的問(wèn)題,。而且,,經(jīng)驗(yàn)豐富的設(shè)計(jì)人員都知道,,需要花費(fèi)時(shí)間學(xué)習(xí),并積累經(jīng)驗(yàn),,才能掌控新產(chǎn)品的特性,。不幸的是,這些困難與日益縮短的開發(fā)周期及越來(lái)越大的設(shè)計(jì)風(fēng)險(xiǎn)形成直接的沖突,。由于這些原因,,設(shè)計(jì)人員總是趨向于重復(fù)使用他們所熟悉,或之前使用過(guò)的產(chǎn)品,。

  當(dāng)然,,較之于專有構(gòu)架,業(yè)界標(biāo)準(zhǔn)的架構(gòu)給用戶帶來(lái)的優(yōu)勢(shì)多得多,。ARM和Actel基于Cortex構(gòu)架,,合作開發(fā)針對(duì)FPGA而優(yōu)化的處理器核。這種定制化的設(shè)計(jì)使該處理器核的性能和效率提高,,邏輯單元占用量減小。

  Cortex-M1特點(diǎn)

  Cortex-M1處理器核基于ARM的3級(jí)Cortex-M3流水線技術(shù),,具有高可配置性,,在速度和內(nèi)存占用上取得了很好的平衡,非常適合嵌入式應(yīng)用,。在最小配置情況下,,僅比Actel的Core8051核(標(biāo)準(zhǔn)16位控制器)大一點(diǎn),不超過(guò)5%,。Cortex-M1在Actel ProASIC3和Fusion中的工作頻率超過(guò)70MHz,。該處理器運(yùn)行新的Thumb-2指令集的一個(gè)子集,支持緊耦合內(nèi)存(TCM),,并采用精細(xì)的低后滯中斷控制器,,因而可提高嵌入式系統(tǒng)的性能和能力。

  改進(jìn)的代碼密度能提高性能和能效

  Thumb-2技術(shù)基于成功的Thumb技術(shù),。Thumb是針對(duì)ARM微處理器設(shè)計(jì)的高代碼密度指令集,,能夠提高用于低成本、高性能系統(tǒng)的ARM微處理器核的能力,。

  就優(yōu)化代碼性能而言,,Thumb-2技術(shù)較之于現(xiàn)有的高密度代碼,內(nèi)存占用減少了31%,,從而降低了系統(tǒng)成本,,同時(shí)性能提升高達(dá)38%,因而能夠延長(zhǎng)產(chǎn)品的電池壽命或豐富產(chǎn)品的功能,。

  Cortex-M1基于Cortex-M3流水線技術(shù),,并執(zhí)行ARMv6-M指令集,,亦即Thumb-2(ARMv7)指令集的一個(gè)全子集。Thumb-2指令集也用于Cortex系列的其它處理器核,。Cortex系列向上兼容針對(duì)其傳統(tǒng)處理器核(ARM7,、ARM9和ARM11)編寫的Thumb代碼,現(xiàn)有的Thumb代碼可直接在包括Cortex-M1的Cortex系列處理器上運(yùn)行,。

  較之于以前的ARM指令集體系,,Thumb-2的優(yōu)勢(shì)之一是16位和32位指令都以相同的模式執(zhí)行。在過(guò)去的ARM體系中,,Thumb指令主要用于子程序中,,這些子程序帶有用于實(shí)現(xiàn)中斷服務(wù)的32位ARM指令。這種方式常常在中斷請(qǐng)求接收時(shí)和中斷服務(wù)啟動(dòng)時(shí)之間造成較長(zhǎng)的延遲,。在Thumb-2體系中,,ARM將16位和32位運(yùn)作模式合并,因此處理中斷時(shí)就不必從16位模式切換到32位模式,。Thumb-2能夠自由混合16位和32位指令,,可大大地簡(jiǎn)化編程任務(wù),無(wú)需設(shè)定代碼的順序構(gòu)造,,即可實(shí)現(xiàn)代碼最小化和處理能力最大化,。此外,Thumb-2指令的性能更高,,這是因?yàn)樵O(shè)計(jì)人員能優(yōu)化地混合指令,,無(wú)需將它們按16位和32位分組。

  內(nèi)存存取速度更快性能更高

  Cortex-M1具有來(lái)自AMBA外設(shè)總線接口的單獨(dú)內(nèi)存接口,。這類似于高性能的ARM9體系,,但不同于ARM7,后者采用的是組合的內(nèi)存和外設(shè)總線,。Cortex-M1的這個(gè)單獨(dú)內(nèi)存實(shí)際上是兩個(gè)接口,,即為訪問(wèn)指令緊耦合內(nèi)存(ITCM)和數(shù)據(jù)緊耦合內(nèi)存(DTCM)(見圖1)提供了單獨(dú)的通道。因此,,處理器性能大大提升,,因?yàn)樘幚砥髂茉诿總€(gè)時(shí)鐘周期內(nèi)從ITCM提取一條指令,且決不會(huì)因數(shù)據(jù)內(nèi)存訪問(wèn)操作或讀寫 AMBA上的外設(shè)而停頓,。ITCM和DTCM的大小都可由用戶定制,,容量可從0kB增加到1MB。

 

  高效的中斷操作縮短后滯

  Cortex-M1具有可配置的嵌套向量中斷控制器(NVIC),,有利于實(shí)現(xiàn)低后滯中斷處理和異常處理,,同時(shí)還簡(jiǎn)化了編程(見圖1)。NVIC支持中斷優(yōu)先級(jí)重新定義,并與處理器核緊密耦合,,因而能減少中斷后滯,,從而高效地處理隨后到達(dá)的中斷。Cortex-M1中的NVIC還允許用戶單獨(dú)決定中斷優(yōu)先級(jí),,并支持4個(gè)中斷優(yōu)先級(jí)別,。例如,可設(shè)置關(guān)鍵事件首先處理,,并可中斷一個(gè)正在執(zhí)行的優(yōu)先級(jí)較低的中斷服務(wù),,即設(shè)計(jì)人員可在自己的應(yīng)用內(nèi)部構(gòu)造事件處理流程。

  簡(jiǎn)化的編程模型使代碼編寫更方便

  Cortex-M1執(zhí)行Thumb-2指令集的一個(gè)子集,,有兩種工作模式,。對(duì)于正常處理,Cortex-M1進(jìn)入線程模式(通過(guò)復(fù)位進(jìn)入或異常處理后返回),;出現(xiàn)異常后則進(jìn)入中斷處理模式,。該處理器適用于那些不再需要其它工作模式的嵌入式系統(tǒng)。由于編程模型僅限于針對(duì)少量的工作模式,,處理器的邏輯單元占用量顯著減小,,因而降低了成本。

圖2標(biāo)準(zhǔn)處理器擁有龐大的開發(fā)工具系統(tǒng)


  這種處理器所采用的構(gòu)架使設(shè)計(jì)人員能通過(guò)處理器核最大限度地控制數(shù)據(jù)和處

 

理流程,,只要權(quán)衡得當(dāng),,保持處理器盡可能小。這樣就可簡(jiǎn)化編程,,尤其是在多個(gè)工程師參與開發(fā)軟件和硬件的情況下,。為簡(jiǎn)化編程,,使線程模式和中斷處理模式間的過(guò)渡盡可能平滑,,該處理器采用了兩個(gè)堆棧。復(fù)位后,,所有代碼都使用主堆棧,。異常中斷處理程序可改變線程模式所使用的堆棧,即在線程模式退出時(shí),,通過(guò)改變它所使用的EXC_RETURN值將堆棧從主堆棧變?yōu)樘幚矶褩?。而所有異常處理程序繼續(xù)使用主堆棧。堆棧指針(R13)是一個(gè)分組寄存器,,負(fù)責(zé)實(shí)現(xiàn)主堆棧和處理堆棧間的切換,。

  熟悉ARM7和ARM9的人會(huì)注意到,Cortex-M1寄存器文件作用類似于維護(hù)Thumb指令兼容性,。不過(guò),,Cortex-M1寄存器要簡(jiǎn)單些,用較少的FPGA系統(tǒng)門就可實(shí)現(xiàn),。為進(jìn)一步簡(jiǎn)化編程,,該處理器還定義了一個(gè)內(nèi)存映像,,而處理器核能訪問(wèn)該內(nèi)存映像的所有區(qū)域,包括所有數(shù)據(jù)類型的數(shù)據(jù)區(qū)域,。

 

  具有M1功能的FPGA

  采用FPGA就可在幾個(gè)小時(shí)內(nèi)實(shí)現(xiàn)設(shè)計(jì),,并在應(yīng)用中運(yùn)行起來(lái),而采用ASIC就需要好幾個(gè)月,,而且還會(huì)有龐大的非經(jīng)常性工程費(fèi)用,。

  ARM和Actel在開發(fā)Cortex-M1時(shí)就使處理器具有很高的可配置性,允許用戶針對(duì)應(yīng)用的特定需求量身定制處理器,。緊耦合內(nèi)存的大小,、多路復(fù)用器的大小和速度、外部中斷的個(gè)數(shù),、為實(shí)現(xiàn)向下兼容所采用的字節(jié)排序方式,,以及是否納入調(diào)試電路和OS擴(kuò)展集等,均可由用戶選擇,。這樣,,設(shè)計(jì)人員在編譯時(shí)就可控制,從而選出最能滿足應(yīng)用要求的最小處理器配置,。不僅如此,,由于Cortex-M1是在FPGA器件上實(shí)現(xiàn),設(shè)計(jì)人員能快速配置處理器核,,將配置好的處理器核編寫入具M(jìn)1功能的Flash器件中,,并在最終應(yīng)用中進(jìn)行驗(yàn)證。如果需要修改,,可在幾分鐘內(nèi)完成修改并重新編程寫入器件中,。這樣,工程師就可在幾個(gè)小時(shí)內(nèi)多次修改和測(cè)試其設(shè)計(jì),,從而找出產(chǎn)品的最優(yōu)實(shí)現(xiàn)方案,。

  在具M(jìn)1功能的Actel FPGA上,可無(wú)縫使用Cortex-M1處理器核,。具有60萬(wàn)個(gè)系統(tǒng)門的M1AFS600 Fusion PSC集成了一個(gè)12位ADC,、40個(gè)模擬輸出、8Mbit Flash內(nèi)存,,以及FPGA架構(gòu),。Cortex-M1核僅用4300個(gè)邏輯單元就能實(shí)現(xiàn),還不到M1AFS600 Fusion PSC中FPGA容量的30%,。

  M1A3P1000有144kbit SRAM和300個(gè)數(shù)字I/O,,Cortex-M1處理器核僅用4300個(gè)tile就能實(shí)現(xiàn)。

  Cortex-M1開發(fā)工具

  為支持在Actel FPGA中實(shí)現(xiàn)的ARM處理器,需要工具開發(fā)和調(diào)試在該處理器上運(yùn)行的程序,,也需要工具開發(fā)和調(diào)試編寫在FPGA中的邏輯電路,。采用ARM處理器的一個(gè)主要優(yōu)點(diǎn)是這種處理器擁有龐大的工具和設(shè)計(jì)支持生態(tài)系統(tǒng),以及大量現(xiàn)成的嵌入式軟件程序(見圖2),。這個(gè)生態(tài)系統(tǒng)包含了Actel的IP核開發(fā)平臺(tái)CoreConsole IDP,、Libero IDE開發(fā)環(huán)境、SoftConsole程序開發(fā)環(huán)境,,以及完備的板級(jí)開發(fā)和調(diào)試環(huán)境,。ARM也將在其RealView開發(fā)套件和RealView微控制器開發(fā)套件(MDK)中為Cortex-M1提供支持。

  除了ARM和Actel的開發(fā)工具外,,Aldec,、CriticalBlue、CodeSourcery,、IAR,、ImpulseC和Mentor Graphic等第三方廠商的開發(fā)工具也會(huì)為Cortex-M1提供支持。

  結(jié)論

  隨著嵌入式應(yīng)用轉(zhuǎn)向可編程邏輯技術(shù),,由ASIC向FPGA的轉(zhuǎn)變正在推動(dòng)人們使用在FPGA中實(shí)現(xiàn)的32位處理器,。Cortex-M1處理器采用了均衡的三級(jí)流水線技術(shù),精細(xì)的中斷控制器和緊耦合內(nèi)存,, 能最大限度地提升嵌入式系統(tǒng)的性能,,并同時(shí)減小處理器的大小和實(shí)現(xiàn)成本。由于該方案基于符合業(yè)界標(biāo)準(zhǔn)的構(gòu)架體系,,因此用戶能夠充分利用大量現(xiàn)成的代碼,、廣泛的知識(shí)和技術(shù)支持以及龐大的開發(fā)工具系統(tǒng)。

 

 
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]