• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 用雙MicroBlaze監控汽車應用

    用雙MicroBlaze監控汽車應用

    作者: 時間:2012-02-10 來源:網絡 收藏

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

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

    緊密連接

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


    圖1:面向XtremeDSP開發平臺的 配置。

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

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

    存儲器和高速緩存架構

    多端口存儲器控制器(MPMC)通過Xilinx緩存鏈路(XCL)將Microblaze與外部DDR2存儲器相連,并分配直接存儲訪問。由于采用統一的存儲器架構,每個處理器具有相同的存儲延遲和訪問方式。我們為每個MicroBlaze配置了8KB指令和8KB數據緩存,均連接到單一MPMC PIM。這種布線方式可以讓我們將最多8個MicroBlaze關聯到一個MPMC。

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

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


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

    連接器腳本的配置

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


    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 房产| 师宗县| 南召县| 浦县| 湟源县| 德格县| 探索| 紫金县| 黄梅县| 汝州市| 江川县| 兴山县| 江都市| 嘉定区| 镇沅| 岳池县| 库尔勒市| 石柱| 贵溪市| 庆城县| 宜兴市| 淮南市| 合作市| 北辰区| 葵青区| 友谊县| 亳州市| 江源县| 广州市| 萨迦县| 海晏县| 灵山县| 罗定市| 年辖:市辖区| 安西县| 昭觉县| 共和县| 张掖市| 高阳县| 甘南县| 西丰县|