全面解析Nios Ⅱ嵌入式軟核多處理器系統(tǒng)
本文引用地址:http://www.ex-cimer.com/article/236502.htm
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存儲器啟動的映射。
3.5 共享外設資源
多個處理器共享外設存在嚴重的問題。共享外設的最大的問題是中斷,如果允許一個外設中斷且所有處理器共享它,沒有可靠的方法保證哪一個處理器首先響應中斷且為哪個外設服務。此外,如果外設是用來作為多處理器的輸入設備,很難確定哪個處理器應該從設備中接受輸入信息。Nios Ⅱ多處理器系統(tǒng)共享外設資源的方式,是系統(tǒng)中的外設僅被一個處理器訪問,如果其他處理器需要使用外設,最好是使用硬件先進先出(FIFO)或消息緩沖區(qū)互斥保護。創(chuàng)建多處理器系統(tǒng)時,僅對需要通信的處理器和外設之間進行連接。例如,如果一個處理器運行僅使用一個片上存儲器,該處理器沒有必要與系統(tǒng)中任何其他存儲器連接。處理器與存儲器的分離,不使用物理斷開連接,這樣可節(jié)約FPGA資源,保證處理器不會破壞存儲器的數(shù)據(jù)。
共享資源多處理器與各種組件連接是設計中的關鍵環(huán)節(jié),要驗證每個處理器及所需組件的連接是否正確。多數(shù)組件最好是由單一的處理器管理。例如處理器A要求一個外設的服務,而該外設與處理器B連接并由處理器B 管理,處理器A 要求對該外設進行操作,處理器A 必須請求處理器B.這樣可以使用處理器互斥保護的共享片上存儲器,用于個兩處理器之間的通信,達到多處理器共享外設的目的。
在多處理器系統(tǒng)中,每個從外設可以占據(jù)相同的基地址不會發(fā)生沖突,只要每個外設是被不同的處理器控制。因為每個從外設不必一定被每個處理器控制。如果處理器A被連接到映射地址為0x00008a00的一個從外設,處理器B也可以被連接到映射地址0x00008a00另一個從外設,只要處理器A是沒有連接到處理器B的從外設,處理器B 沒有連接到處理器A 的從外設,不會因為從外設占據(jù)相同的基地址而發(fā)生沖突。圖4方框圖顯示多處理器系統(tǒng)中不同的從外設組件映射到同一個基地址的示例。
4 系統(tǒng)調試及軟件設計
Nios Ⅱ SBT for Eclipse 工具包括了許多功能,它可以進行Nios Ⅱ多處理器系統(tǒng)的軟件開發(fā)。能同時對多個Nios Ⅱ處理器進行調試會話,也可單獨暫停和恢復每個處理器的運行,單獨設置每處理器的斷點。如果一個處理器遇到一個斷點,它不會停止或影響其他處理器的操作。Nios Ⅱ SBT for Eclips對多個處理器系統(tǒng)具有可同時進行在片調試的能力。
系統(tǒng)軟件設計應注意的問題,在設計Nios Ⅱ多處理器系統(tǒng)的軟件時,必須要考慮系統(tǒng)硬件結構的特點以及啟動地址和異常地址的設置。設計調試運行多處理器系統(tǒng)軟件與單處理器系統(tǒng)相似,一定要清楚每個處理器的復位地址、異常地址,CPUID寄存器的值以及存儲器的類型。多個處理器使用同一個程序存儲器,而每個處理器的程序必須存放在不同的區(qū)域,用異常地址為每個處理器存放程序確定內存區(qū)域,使用QSYS為每個處理器設置異常地址。
5 結語
SoPC技術的出現(xiàn)帶來全新的嵌入式處理器硬件的設計理念,使得設計嵌入多處理系統(tǒng)硬件電路的有了多種方法和途徑。實例Nios Ⅱ嵌入式軟核六處理器系統(tǒng)的方案具有一定可行性和實用性。如何提高嵌入式多個處理器系統(tǒng)的效率,實現(xiàn)資源的最佳配置,簡化系統(tǒng)結構、降低成本和功耗,怎樣合理選擇時鐘、I/O、其他外設等問題有待進一步研究解決。
存儲器相關文章:存儲器原理
評論