<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è) > 嵌入式系統 > 設計應用 > 用雙MicroBlaze監控汽車(chē)應用

用雙MicroBlaze監控汽車(chē)應用

作者: 時(shí)間:2012-02-10 來(lái)源:網(wǎng)絡(luò ) 收藏

基于軟核處理器的多處理器片上系統(MPSoC)設計正日益風(fēng)靡于嵌入式系統設計領(lǐng)域。為了向多個(gè)處理器提供一致的數據,存儲區架構和管理已成為設計工作中非常重要的組成部分。在原型中,我們準備構建一個(gè)系統,用于在兩個(gè)MicroBlaze上支持賽靈思(Xilinx)公司嵌入式處理器內核。

在開(kāi)發(fā)自主汽車(chē)原型轉向平臺前,我們根據Xilinx技術(shù)規范、參考設計和雙處理器設計套件,研究出一套通用的設計工作流和工藝。該設計結合了多種功能,比如:防碰撞、行車(chē)道檢測和自動(dòng)停放。設計提供了諸如Posix線(xiàn)程這樣的庫函數,可重復利用基于QNX的防碰撞應用以及對其進(jìn)行分割。

緊密連接

我們構建了一個(gè)緊密連接的處理器系統,內含兩個(gè)配置完全相同的MicroBlaze處理器,在Harvard架構中,每個(gè)處理器都與一個(gè)16KB的局部塊RAM(BRAM)相連(圖1)。另外,這兩個(gè)處理器還與一個(gè)128MB的DDR存儲器模塊相連,用于存儲代碼和數據交換。Xilinx平臺工作室(XPS)Mutex內核負責對兩個(gè)MicroBlaze共享的存儲器訪(fǎng)問(wèn)進(jìn)行同步。兩個(gè)處理器還能通過(guò)一對快速單工鏈路(FSL)直接通信,FSL支持主/從和流水線(xiàn)處理器設計概念。采用FSL實(shí)現這兩個(gè)MicroBlaze的互聯(lián),而不采用XPS Mailbox實(shí)現,可以提高性能,并降低資源耗用。


圖1:面向XtremeDSP開(kāi)發(fā)平臺的 配置。

兩個(gè)定時(shí)器外設負責為Xilkernel的調度實(shí)現提供中斷源。開(kāi)發(fā)階段的第一步,我們通過(guò)UART接口將激光掃描儀連接到系統,為防碰撞系統提供目標檢測。為以中斷控制器而非直接連接的時(shí)鐘中斷部署Xilkernel,我們在板支持包(BSP)設置中調整了與Xilkernel相關(guān)的參數sysintc_spec。

我們把兩個(gè)MicroBlaze連接到MicroBlaze調試模塊進(jìn)行調試,并通過(guò)microblaze_1的JTAG UART輸出ST.DIO。我們分析了系統的兩種實(shí)現方案,一種用XtremeDSP開(kāi)發(fā)平臺搭配Spartan-3A DSP 1800A FPGA,另一種用ML605評估板搭配Virtex-6 XC6VLX240T FPGA。

存儲器和高速緩存架構

多端口存儲器控制器(MPMC)通過(guò)Xilinx緩存鏈路(XCL)將Microblaze與外部DDR2存儲器相連,并分配直接存儲訪(fǎng)問(wèn)。由于采用統一的存儲器架構,每個(gè)處理器具有相同的存儲延遲和訪(fǎng)問(wèn)方式。我們?yōu)槊總€(gè)MicroBlaze配置了8KB指令和8KB數據緩存,均連接到單一MPMC PIM。這種布線(xiàn)方式可以讓我們將最多8個(gè)MicroBlaze關(guān)聯(lián)到一個(gè)MPMC。

單一MPMC地址總線(xiàn)連接和數據總線(xiàn)連接,會(huì )導致MPMC與外部存儲器之間出現數據流和取指瓶頸。但內部的時(shí)間片輪轉仲裁,能夠保證所有請求都能順序訪(fǎng)問(wèn)存儲器。另外,MicroBlaze還能通過(guò)處理器局部總線(xiàn)(PLB)保持與MPMC的連接,以提供對無(wú)緩存共享存儲區的訪(fǎng)問(wèn)。

在多處理器環(huán)境中,確保數據高速緩存的一致性非常重要。因此,我們將外部存儲的地址范圍分為三段(圖2)。每個(gè)MicroBlaze占有自己的地址空間,而只有數據存儲在其特定的區域,XCL才會(huì )緩存數據。第三個(gè)地址空間提供一個(gè)獨立段,可通過(guò)PLB訪(fǎng)問(wèn),而用于交換未緩存的共享數據。通過(guò)在鏈接腳本中預定義變量,軟件工程師可以得到一個(gè)指向該段基址的指針。我們用寫(xiě)通策略配置高速緩存,因為如果采用回寫(xiě)策略,處理多個(gè)寫(xiě)訪(fǎng)問(wèn)會(huì )導致更多延遲。


圖2:DMX系統的內存印象圖。

連接器腳本的配置

連接器腳本的作用是,根據硬件設計信息,正確的板支持包和軟件應用本身,來(lái)定義處理器系統的存儲分段。XPS工具負責為每個(gè)MicroBlaze的復位、中斷和異常向量分配固定段,這些向量將存儲在處理器的BRAM中。常用的方法是把.heap和.stack段也存儲在局部BRAM中,以便在執行線(xiàn)程的時(shí)候快速訪(fǎng)問(wèn)局部變量。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(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>