新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于Nios Ⅱ嵌入式軟核多處理器系統(tǒng)研究

基于Nios Ⅱ嵌入式軟核多處理器系統(tǒng)研究

作者: 時間:2014-09-01 來源:網(wǎng)絡 收藏

  

本文引用地址:http://2s4d.com/article/262429.htm

 

  3.2 處理器選擇和參數(shù)設置

  處理器有快速型、標準型和經濟型三種類型[3],快速型配置性能最高,經濟型配置占用片內資源最少,標準型配置的性能和占用片上資源介于快速型和經濟型之間。根據(jù)實際應用需要對系統(tǒng)性價比及功耗的要求,合理選擇和配置處理器。

  多處理器系統(tǒng)中對每一個處理器都要進行正確的設置,否則即使創(chuàng)建的硬件系統(tǒng)已通過編譯并生成,也會造成多處理器系統(tǒng)不能正常運行的問題。如果多個處理器使用片上存儲器為共享程序存儲器,則必須正確設計異常地址。如果使用CFI FLASH存儲器區(qū)域作為多個處理器的引導區(qū),則必須要正確設計復位地址。使用不同類型的存儲器要正確的進行設置。

  3.3 共享程序存儲器

  為了降低成本、功耗,簡化多處理器系統(tǒng)結構,實例中利用FPGA的芯片資源共享程序存儲器,六個Nios Ⅱ處理器的運行軟件共同使用片上存儲器,每個處理器的軟件位于片上存儲器所屬特有的存儲器區(qū)域。如果六個處理器的軟件在片上存儲器運行,假設每個處理器的軟件需要有8 KB的內存空間用于程序代碼和數(shù)據(jù)。這樣第一個處理器使用片上存儲器0×0~0x1FFF之間的作為其程序空間,第二個處理器使用片上存儲器0×2000~0x3FFF 之間的區(qū)域,第三個處理器使用片上存儲器0×4000~0x5FFF之間的區(qū)域;其他各個處理器所需的存儲器區(qū)域采用同樣的方法對片上存儲器進行分區(qū)。

  Nios Ⅱ SBT 提供了一個簡單的存儲器分區(qū)模式,允許多個處理器的軟件運行于同一存儲器的不同區(qū)域,確保位于存儲器中的主要代碼段的鏈接和固定地址。

  圖2所示六個處理器在片上儲存器的分區(qū)及代碼段的鏈接。

  

 

  3.4 設置啟動地址

  在多處理器系統(tǒng)中,每個處理器在存儲器中必須擁有自己的啟動區(qū)域,多個處理器不能從同一非易失性存儲器的同一地址啟動。啟動存儲器類似程序存儲器一樣也可以進行分區(qū),但段和鏈接的概念不同,因為通常引導代碼只是復制到它實際的程序代碼被鏈接在RAM中,然后跳轉到該程序代碼處。為了從同一非易失性存儲器的不同區(qū)域啟動多個處理器,設置每個處理器復位地址,這個地址就是啟動該處理器的位置,啟動區(qū)域要留出足夠的空間存放啟動代碼。由于沒有支持機制多個處理器無法直接訪問CFI FLASH存儲器,需要使用一個CFI FLASH控制器,Nios Ⅱ處理器通過CFI FLASH控制器讀取或寫入到CFI FLASH存儲器。如果多個Nios Ⅱ處理器啟動在同一個CFI FLASH存儲器。為確保安全訪問,必須刪除一個主控處理器之外的CFI FLASH 存儲器alt_main()函數(shù)所有初始化的驅動程序,并確認啟動前完成所有其他處理器在CFIFLASH存儲器的程序初始化。圖3所示六個處理器從一個FLASH存儲器啟動的映射。



關鍵詞: FPGA Nios SoPC

評論


相關推薦

技術專區(qū)

關閉