基于Nios Ⅱ嵌入式軟核多處理器系統研究
本文引用地址:http://dyxdggzs.com/article/262429.htm

3.5 共享外設資源
多個(gè)處理器共享外設存在嚴重的問(wèn)題。共享外設的最大的問(wèn)題是中斷,如果允許一個(gè)外設中斷且所有處理器共享它,沒(méi)有可靠的方法保證哪一個(gè)處理器首先響應中斷且為哪個(gè)外設服務(wù)。此外,如果外設是用來(lái)作為多處理器的輸入設備,很難確定哪個(gè)處理器應該從設備中接受輸入信息。Nios Ⅱ多處理器系統共享外設資源的方式,是系統中的外設僅被一個(gè)處理器訪(fǎng)問(wèn),如果其他處理器需要使用外設,最好是使用硬件先進(jìn)先出(FIFO)或消息緩沖區互斥保護。創(chuàng )建多處理器系統時(shí),僅對需要通信的處理器和外設之間進(jìn)行連接。例如,如果一個(gè)處理器運行僅使用一個(gè)片上存儲器,該處理器沒(méi)有必要與系統中任何其他存儲器連接。處理器與存儲器的分離,不使用物理斷開(kāi)連接,這樣可節約FPGA資源,保證處理器不會(huì )破壞存儲器的數據。
共享資源多處理器與各種組件連接是設計中的關(guān)鍵環(huán)節,要驗證每個(gè)處理器及所需組件的連接是否正確。多數組件最好是由單一的處理器管理。例如處理器A要求一個(gè)外設的服務(wù),而該外設與處理器B連接并由處理器B 管理,處理器A 要求對該外設進(jìn)行操作,處理器A 必須請求處理器B.這樣可以使用處理器互斥保護的共享片上存儲器,用于個(gè)兩處理器之間的通信,達到多處理器共享外設的目的。
在多處理器系統中,每個(gè)從外設可以占據相同的基地址不會(huì )發(fā)生沖突,只要每個(gè)外設是被不同的處理器控制。因為每個(gè)從外設不必一定被每個(gè)處理器控制。如果處理器A被連接到映射地址為0x00008a00的一個(gè)從外設,處理器B也可以被連接到映射地址0x00008a00另一個(gè)從外設,只要處理器A是沒(méi)有連接到處理器B的從外設,處理器B 沒(méi)有連接到處理器A 的從外設,不會(huì )因為從外設占據相同的基地址而發(fā)生沖突。圖4方框圖顯示多處理器系統中不同的從外設組件映射到同一個(gè)基地址的示例。

4 系統調試及軟件設計
Nios Ⅱ SBT for Eclipse 工具包括了許多功能,它可以進(jìn)行Nios Ⅱ多處理器系統的軟件開(kāi)發(fā)。能同時(shí)對多個(gè)Nios Ⅱ處理器進(jìn)行調試會(huì )話(huà),也可單獨暫停和恢復每個(gè)處理器的運行,單獨設置每處理器的斷點(diǎn)。如果一個(gè)處理器遇到一個(gè)斷點(diǎn),它不會(huì )停止或影響其他處理器的操作。Nios Ⅱ SBT for Eclips對多個(gè)處理器系統具有可同時(shí)進(jìn)行在片調試的能力。
系統軟件設計應注意的問(wèn)題,在設計Nios Ⅱ多處理器系統的軟件時(shí),必須要考慮系統硬件結構的特點(diǎn)以及啟動(dòng)地址和異常地址的設置。設計調試運行多處理器系統軟件與單處理器系統相似,一定要清楚每個(gè)處理器的復位地址、異常地址,CPUID寄存器的值以及存儲器的類(lèi)型。多個(gè)處理器使用同一個(gè)程序存儲器,而每個(gè)處理器的程序必須存放在不同的區域,用異常地址為每個(gè)處理器存放程序確定內存區域,使用QSYS為每個(gè)處理器設置異常地址。
5 結語(yǔ)
SoPC技術(shù)的出現帶來(lái)全新的嵌入式處理器硬件的設計理念,使得設計嵌入多處理系統硬件電路的有了多種方法和途徑。實(shí)例Nios Ⅱ嵌入式軟核六處理器系統的方案具有一定可行性和實(shí)用性。如何提高嵌入式多個(gè)處理器系統的效率,實(shí)現資源的最佳配置,簡(jiǎn)化系統結構、降低成本和功耗,怎樣合理選擇時(shí)鐘、I/O、其他外設等問(wèn)題有待進(jìn)一步研究解決。
評論