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