<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > FPGA軟核之戰點(diǎn)燃創(chuàng )新激情

FPGA軟核之戰點(diǎn)燃創(chuàng )新激情

—— 從MicroBlaze V7的新內存管理單元選項看軟核發(fā)展
作者:Tom R. Halfhill 時(shí)間:2008-04-08 來(lái)源:電子產(chǎn)品世界 收藏

  2007年秋Xilinx又在對其MicroBlaze嵌入式處理器內核進(jìn)行了升級,增添一個(gè)內存管理單元(MMU)選項,為32bit的處理器提供高級的、支持虛擬內存的操作系統。開(kāi)發(fā)者還可以只用個(gè)更為簡(jiǎn)單的內存保護單元(MPU)或完全放棄受監管的內存管理。

本文引用地址:http://dyxdggzs.com/article/81317.htm

  目前已發(fā)布的第一款面向新的MicroBlaze v7的全功能操作系統是Lynuxworks公司的BlueCat Linux。到目前為止,MicroBlaze處理器僅限于支持更簡(jiǎn)單的嵌入式操作系統,這些系統無(wú)法支持虛擬內存或者內存保護。具備了MMU或者M(jìn)PU選項后,MicroBlaze v7適合于范圍更廣、需要更高的安全性和可靠性的嵌入式應用。

  MicroBlaze v7還有另一項改進(jìn)措施,新的指令可以提供更快的浮點(diǎn)性能,而且能提高其與協(xié)處理器和定制邏輯電路之間的I/O性能。此外,Xilinx已經(jīng)將CoreConnect接口升級,使之滿(mǎn)足最新的CoreConnect 處理器本地總線(xiàn)(PLB)v4.6規范,保證處理器與片上外設之間具有更快的連接速度。

  強固的內存管理功能

  自從2001年引入軟處理器MicroBlaze以來(lái),Xilinx就一直對其進(jìn)行不斷的改進(jìn)。兩年前,Xilinx開(kāi)始提供一種FPU選項。2006年,Xilinx延長(cháng)了其指令的流水線(xiàn),從而容許采用更高的時(shí)鐘速度。2007年較早時(shí)候,Xlinx發(fā)布了MicroBlaze v6,增添了少量其他的增強措施?,F在,Xilinx借助MicroBlaze v7推出了第一流的內存管理功能,這顯著(zhù)擴展了MicroBlaze所適合的嵌入式應用的范圍。

  當然,許多嵌入式系統并不需要如此高水平的內存管理,因此MicroBlaze MMU是一種選項功能。另一種可供選擇的方法是實(shí)施MPU,它可以在無(wú)虛擬內存和地址翻譯的情況下對內存進(jìn)行保護。MPU適用于那些必須保護程序存儲區不受其他程序意外或者惡意入侵的嵌入式系統。還有另外一種選項,即在無(wú)內存保護或者虛擬內存的條件下實(shí)施特權模式的執行。在特權模式下,只有操作系統或者有優(yōu)先特權的應用程序可以執行那些有關(guān)系統安全性的指令。

  表1 示出每一種選項(MMU、MPU或特權優(yōu)先執行)是如何影響綜合后的處理器規模的,其衡量尺度是,在的可編程邏輯架構中實(shí)現這些功能而必須增加的查閱表(LUT)數量。在單獨實(shí)現特權模式時(shí),所需的LUT很少,其他的選項就需要事先進(jìn)行更為周詳的考慮。特別是,MMU大約需要1 000個(gè)LUT,大約占一個(gè)功能配置齊全的MicroBlaze v7內核的1/3。


  表1  3種MicroBlaze v7內存管理選項的規模

  完備的MMU成為最大的內存管理選項的部分原因是,它需要轉換監視緩沖器(TLB)來(lái)完成虛擬-物理內存地址轉換的查閱表的一部分內容。

  MicroBlaze v7擁有一個(gè)64條目的一體化TLB。為了補充這一軟件管理的緩沖器,還提供了用于指令內存頁(yè)面和數據內存頁(yè)面的影子條目。這些影子條目的數量是可以由用戶(hù)定義的:緩沖指令的條目數量可以為1、2、4或8個(gè),而緩沖數據的條目數與之相同。處理器可以自動(dòng)地管理這些影子條目,從而防止系統失效(thrashing)的出現。內存頁(yè)面的尺寸范圍是1kB~16MB,而且可以混合使用各種頁(yè)面尺寸。采用有效位數為32bit的尋址方式后,MicroBlaze v7可以對多達4GB內存進(jìn)行尋址。

  MicroBlaze MMU是仿照某款I(lǐng)BM Power 405處理器中的MMU設計的。因為此前有些Virtex系列集成了一個(gè)加固的Power 405內核,其速度要遠快于一個(gè)綜合到該架構中的MicroBlaze 處理器。采用類(lèi)似的MMU將能夠給MicroBlaze v7帶來(lái)幾個(gè)好處。首先,編程者將基于虛擬內存的操作系統從Power架構移植到MicroBlaze架構的過(guò)程將更為輕松。第二,開(kāi)發(fā)者可以更為輕松地將一個(gè)或多個(gè)MicroBlaze內核與一個(gè)Power 405搭配起來(lái),以共享內存的配置方式構成一個(gè)多核設計。第三,未來(lái)Xilinx可能通過(guò)與IBM合作而向其中集成更新的Power內核。

  更快的CoreConnect總線(xiàn)

  CoreConnect是IBM用于SoC的片上總線(xiàn),它在1999年開(kāi)發(fā)成功。雖然IBM創(chuàng )造CoreConnect的主要意圖是為自己的Power架構處理器服務(wù),但任何人都可以免費地獲得將CoreConnect作為一種可綜合的知識產(chǎn)權(IP)模塊使用的許可,它并不局限于某種特定的CPU架構。在過(guò)去8年中,軟IP廠(chǎng)商已經(jīng)各自開(kāi)發(fā)出許多與CoreConnect兼容的、可發(fā)放許可證的外設內核。唯一一種得到更為廣泛支持的片上總線(xiàn)架構是ARM的AMBA。

  為了保證更高的效率,CoreConnect將低速和高速的外設分別設置在分開(kāi)的總線(xiàn)上,兩條總線(xiàn)由橋連接起來(lái)。截止到目前,MicroBlaze只支持較慢的片上外設總線(xiàn)(OPB),該總線(xiàn)的數據通道寬度為32bit。MicroBlaze v7仍然保持了與OPB之間的后向兼容性,但增加了對速度更快的處理器本地總線(xiàn)(PLB)的支持。在面向32、64或者128bit寬度的綜合時(shí),PLB的數據通道是可配置的??偩€(xiàn)的帶寬取決于這些數據通道的寬度和FPGA的時(shí)鐘頻率,速度最快的Virtex-5器件的時(shí)鐘頻率已經(jīng)達到了550MHz。在550MHz的頻率上,一個(gè)128bit的PLB的最大的理論帶寬為8.8MB/s。

  PLB直接與CPU相連,提供了一條為若干片上外設所共享的多點(diǎn)總線(xiàn)。它是一個(gè)Xilinx專(zhuān)有的、被稱(chēng)為快速單工鏈路(FSL)的接口。FSL是直接的點(diǎn)-點(diǎn)接口,而并非多點(diǎn)總線(xiàn)。FSL的速度要比共享總線(xiàn)的快,但是每個(gè)I/O接口需要更多的邏輯門(mén)電路。一個(gè)SoC設計可以使用一條或多條FSL與一條CoreConnect PLB的組合來(lái)滿(mǎn)足不同的目標需求,從而給開(kāi)發(fā)者提供了豐富的設計選項。

  圖1示出了在Xilinx FPGA上實(shí)現的一個(gè)SoC實(shí)例,其中采用了一個(gè)MicroBlaze或者Power 405處理器內核。在這個(gè)TCP/IP包處理器實(shí)例中,最關(guān)鍵的數據通道將Ethernet控制器與外部存儲控制器和CPU連接起來(lái)。這些數據通道是FSL,寬度可以是32~128bit。重要性較低的部件則分享一個(gè)CoreConnect PLB。Xilinx開(kāi)發(fā)工具可以自動(dòng)對FSL進(jìn)行配置,使之服務(wù)于某個(gè)特定的目的,或者讓開(kāi)發(fā)者能夠對接口進(jìn)行人工配置。

  經(jīng)過(guò)IBM的許可,Xilinx對標準的CoreConnect IP進(jìn)行了輕微的改進(jìn)。但這些改進(jìn)是必不可少的,因為FPGA的可編程邏輯門(mén)的效率并沒(méi)有ASIC的標準的單元門(mén)那么高,特別是路由信號要橫跨一塊大芯片時(shí)。在FPGA中,數據通道和時(shí)鐘樹(shù)所延伸的長(cháng)度要遠遠高于A(yíng)SIC的情況,這使得時(shí)序的收斂變得更為困難。對于那些分布在芯片各處的、數不清的外設連接到一條共享總線(xiàn)上的復雜設計而言,該問(wèn)題變得更為嚴重。于是,Xilinx對PLB進(jìn)行了改進(jìn),提高了它的同步能力,并消除了不確定的數據猝發(fā)現象。Xilinx宣稱(chēng),這些改進(jìn)雖然相對而言幅度并不大,卻可以讓開(kāi)發(fā)者能夠在CoreConnect PLB上連接10~20個(gè)外設,而不至于出現時(shí)序問(wèn)題。

  此外,Xilinx已經(jīng)改進(jìn)了PLB,使之能以更高的效率與集成在某些Virtex-5 FPGA中的、加固的收發(fā)機交互。這些收發(fā)機是一個(gè)PCI Express端點(diǎn)和一個(gè)3模Ethernet媒體訪(fǎng)問(wèn)控制器(TEMAC),它們可以提供的性能將遠遠優(yōu)于那些功能相同、綜合到架構中的軟IP控制器的性能。上述的PCI Express端點(diǎn)得到了充分的緩沖,并且支持1、2、4或8條通道。TEMAC收發(fā)機則支持10Mb/s、100Mb/s和Gigabit Ethernet數據率。在Xilinx的基準測試中,一個(gè)基于MicroBlaze v7和TEMAC的包處理器實(shí)現了750Mb/s的原始吞吐率,對收發(fā)機的理論最大帶寬的利用率達到了驚人的75%。

  雖然AMBA得到的支持要比CoreConnect所得到的支持廣泛,后一種標準對于MicroBlaze來(lái)說(shuō)卻更為適合。內置到某些Virtex系列FPGA內部的Power 405處理器則采用了CoreConnect,因此,開(kāi)發(fā)者能夠更為輕松地基于Power 405和MicroBlaze內核創(chuàng )制出非對稱(chēng)的多處理器。許多來(lái)自于第三方廠(chǎng)商的外設IP內核,往往通過(guò)添加一個(gè)簡(jiǎn)單的襯墊適配頭就可以與AMBA或者CoreConnect一起工作。

  新指令提升性能

  Xilinx在MicroBlaze v7中添加了11種新的指令:3種用于浮點(diǎn)運算,其余8種則用于FSL的操作。這些新的浮點(diǎn)指令是簡(jiǎn)明易用的。其中的一個(gè)指令FSQRT,可在27或者29個(gè)時(shí)鐘周期計算出一個(gè)32bit浮點(diǎn)值的平方根,具體的時(shí)間占用取決于MicroBlaze處理器配置了3級或者5級流水線(xiàn)。如果不采用FSQRT,則同樣的運算應通過(guò)對軟件庫的函數調用來(lái)實(shí)現,耗時(shí)約為500個(gè)周期。

  其他兩種新的浮點(diǎn)指令可以把整數轉換為浮點(diǎn)數或者執行相反的運算。FLT指令可以在4~6個(gè)時(shí)鐘周期中把一個(gè)32bit的整數轉換為32bit的浮點(diǎn)數,具體則取決于流水線(xiàn)的深度。要在軟件中調用相同的函數將需要330個(gè)時(shí)鐘周期。相反地,FINT指令則可以在5或者7個(gè)時(shí)鐘周期中將一個(gè)32bit的浮點(diǎn)數變換為32bit整數,具體的時(shí)間長(cháng)度取決于流水線(xiàn)深度。而軟件調用將耗用88個(gè)周期的時(shí)間。

  當協(xié)處理器通過(guò)FSL連接到MicroBlaze內核上時(shí),另有8種新的指令可以改善I/O特性。這些指令采取了PUT和GET操作的形式,它們可以讓程序以閉鎖(blocking)或者非閉鎖運算的形式管理協(xié)處理器的I/O。在分塊關(guān)系中,CPU停止處理其他的操作,直到將協(xié)處理器的請求處理完為止。在非閉鎖關(guān)系中,CPU繼續處理其他操作,而協(xié)處理器的請求被送入一個(gè)FIFO緩沖器中。在緩沖器未被充滿(mǎn)前,CPU不會(huì )被閉鎖。開(kāi)發(fā)者可以根據協(xié)處理器的需要來(lái)定義緩沖器的尺寸。

  此外,MicroBlaze v7的FSL接口的數量是從前的兩倍(16比8),而程序在運行過(guò)程中可以動(dòng)態(tài)地將協(xié)處理器分配給各FSL接口。先前,協(xié)處理器在FSL間的分配是通過(guò)硬代碼形式嵌入用戶(hù)的軟件中的。進(jìn)行任何改動(dòng)進(jìn)行任何改動(dòng)時(shí),開(kāi)發(fā)者都必須對軟件進(jìn)行重新編譯。動(dòng)態(tài)分配使得開(kāi)發(fā)者編寫(xiě)出的軟件能適應不斷變化的條件和工作負載。多媒體加速庫可以在專(zhuān)門(mén)完成快速傅里葉變換(FFT)或者有限脈沖響應(FIR)濾波器運算的協(xié)處理器上運行。

  表2示出了將一個(gè)包處理器設計從MicroBlaze v6移植到v7后的結果—吞吐率改善了3倍以上,從約70Mb/s提升到250Mb/s 。不過(guò),要注意這一對比并未將設計中的每個(gè)變量的變化所帶來(lái)的影響隔離開(kāi)。特別是,升級的設計版本中Ethernet控制器的速度要快得多。無(wú)論如何,這一對比展示了可以實(shí)現的性能水平。提升一個(gè)系統的最大理論帶寬,并不一定能確保獲得更高的吞吐率,而MicroBlaze v7的一個(gè)功能特色是為T(mén)EMAC提供更好的CoreConnect支持,而該功能是以硬連線(xiàn)方式融入Virtex-5 LXT芯片中。


  表2  MicroBlaze v6和v7的性能對比

  競爭對手ARM

  從2006年起MicroBlaze v7是Xilinx今年推出的處理器的第三個(gè)新版本。改進(jìn)步伐的加快可能是由于一個(gè)全新的競爭者的到來(lái):ARM的Cortex-M1。

  Cortex-M1是第一種批準用于在FPGA中的ARM處理器內核,而且它針對FPGA的可編程邏輯架構進(jìn)行了優(yōu)化。較早時(shí),ARM允許獲得授權者在FPGA上對其設計進(jìn)行測試,但不能在芯片中采用最終的設計。推動(dòng)ARM對其經(jīng)營(yíng)路線(xiàn)進(jìn)行變革的部分原因是ASIC的設計和制造成本的不斷上升,而另一部分原因是Xilinx MicroBlaze和Altera Nios II內核的流行。Xilinx和Altera在其處理器方面已經(jīng)售出了幾萬(wàn)個(gè)使用許可。

  第一家宣布支持Cortex-M1的廠(chǎng)商是規模遠遠小于A(yíng)ltera或者Xilinx的Actel。Actel與ARM達成了特別的協(xié)議,讓客戶(hù)在采購Cortex-M1 FPGA時(shí),無(wú)需再購買(mǎi)一個(gè)ARM許可證或者向ARM交付使用費。這一交易大大地降低了應用一個(gè)基于A(yíng)RM的設計成本。Xilinx尚未發(fā)布一個(gè)類(lèi)似的協(xié)議,但是筆者估計在未來(lái)很可能會(huì )宣布達成協(xié)議。雖然Cortex-M1和MicroBlaze處理器看上去將ARM和Xilinx變?yōu)閮蓚€(gè)相互競爭的對手,但它們的關(guān)系中的合作性仍然超過(guò)競爭性。ARM認為MicroBlaze主要是一種用于吸引客戶(hù)的特價(jià)商品,Xilinx研制它主要是為了能賣(mài)出更多的FPGA。一個(gè)MicroBlaze v7的許可證售價(jià)僅為495美元,因此芯片,而不是許可證才是真正帶來(lái)贏(yíng)利的產(chǎn)品。Xilinx同樣欣喜地看到客戶(hù)購買(mǎi)其FPGA后與Cortex-M1一起使用。

  即使是這樣,雖然ARM和Xilinx的握手可謂真誠,但MicroBlaze v7還是給了Cortex-M1當頭一擊。與Xilinx用來(lái)吸引顧客的特價(jià)品一比高下,這一全新的ARM處理器可就吃了虧。雖然MicroBlaze v7定價(jià)低廉,但令人難堪的是,它卻擁有大量Cortex-M1所不具備的功能,例如一個(gè)可任選的FPU、MMU/MPU、32bit 驅動(dòng)器和指令/數據高速緩存。除此之外,MicroBlaze所能實(shí)現的時(shí)鐘頻率也要高于Cortex-M1的。ARM的最大一個(gè)賣(mài)點(diǎn)是Cortex-M1來(lái)自ARM。ARM架構本身幾乎都已成為業(yè)界標準,而且它得到了數以噸計的各種外設IP、開(kāi)發(fā)工具和軟件的支持。

  正如表3所示的那樣,Altera的Nios II與MicroBlaze更為匹配,雖然它從2004年后沒(méi)有得到較大幅度的升級。MMU/MPU選項是MicroBlaze v7超越Nios II的第一個(gè)巨大優(yōu)勢巨大優(yōu)勢。不過(guò),Altera也擁有一項優(yōu)勢:可以由用戶(hù)配置的指令集架構。Nios II開(kāi)發(fā)者可以開(kāi)發(fā)定制化的指令集來(lái)加速特定的應用,這將極大地提升性能。為了達到類(lèi)似的效果,MicroBlaze開(kāi)發(fā)者可以在可編程邏輯架構中實(shí)現協(xié)處理器。

  請注意這些處理器之間存在的價(jià)格差異正在縮小。在Cortex-M1出現以前,由FPGA廠(chǎng)商發(fā)放的處理器內核使用許可與由ARM發(fā)放的處理器內核使用許可相比,其價(jià)格差異達到了4個(gè)數量級:一個(gè)MicroBlaze或者Nios II約為500美元,而一個(gè)ARM核則要價(jià)高達幾百萬(wàn)美元。在Cortex-M1推出后,ARM已經(jīng)一改過(guò)去長(cháng)期以來(lái)不透露其許可收費情況的做法。雖然一個(gè)Cortex-M1許可的確切價(jià)格仍未公布,但ARM宣稱(chēng)它將愿意做不到十萬(wàn)美元的生意,這在價(jià)格方面是一個(gè)巨大的突破。而且,正如上面曾經(jīng)提到的那樣,Actel可以出售預先被配置了Cortex-M1內核的FPGA,而用戶(hù)無(wú)需獲得一個(gè)來(lái)自于A(yíng)RM的許可。由于A(yíng)ltera和Xilinx事實(shí)上在贈送各自可以直接用于FPGA上的處理器內核產(chǎn)品,ARM不得不修正自己的許可證模式,以便讓Cortex-M1更具競爭力。

  針對FPGA的CPU的未來(lái)發(fā)展前景

  隨著(zhù)FPGA報價(jià)出現下滑,而ASIC的成本在不斷上升,以可編程邏輯來(lái)實(shí)現一片SoC的方法也變得越來(lái)越有吸引力。正如筆者曾經(jīng)指出過(guò)的那樣,FPGA實(shí)現方法在經(jīng)濟性上超過(guò)ASIC實(shí)現方法時(shí),所對應的制造批量點(diǎn)將向著(zhù)有利于FPGA的方面傾斜,我們尚未發(fā)現今后哪些因素會(huì )改變這一發(fā)展趨勢。正因為如此,MicroBlaze(和Nios II)的未來(lái)似乎一片光明。

  不過(guò),可能發(fā)生變動(dòng)的一個(gè)因素,是開(kāi)發(fā)者在采取FPGA實(shí)現方法時(shí)所選用的CPU架構。就目前而言,MicroBlaze和Nios II是到目前為止應用最為歡迎,因為它們得到了各自的FPGA廠(chǎng)商的大力推銷(xiāo),而且實(shí)際上是免費提供的。

  如果其他CPU架構也可以為FPGA所用而且價(jià)格可以接受的話(huà),則屆時(shí)FPGA廠(chǎng)商自己的架構的魅力必然會(huì )減退。雖然Altera和Xilinx已經(jīng)售出的CPU許可證數量大大超出了ARM計劃售出的數量,那些認真考慮要大批量制造基于FPGA的SoC的公司,可能更愿意使用一種得到廣泛支持的架構,如MicroBlaze和Nios II。

  即使出現這種情況,Altera和Xilinx處理器也將達到其目標。它們賣(mài)出了更多的FPGA,它們播下了基于FPGA的SoC市場(chǎng)的種子,而且它們正在定義出專(zhuān)門(mén)用于FPGA的處理器應該具有的功能特性和優(yōu)化。無(wú)論MicroBlaze和Nios II是否長(cháng)壽而且興旺發(fā)達,對于各自的廠(chǎng)商而言,它們都是明智的投資。(本文改編自《微處理器報告》,主標題為編者添加)

fpga相關(guān)文章:fpga是什么




關(guān)鍵詞: FPGA 200804

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>