基于Nios Ⅱ嵌入式軟核多處理器系統(tǒng)研究
0 引言
本文引用地址:http://2s4d.com/article/262429.htm基于SoPC 技術(shù)開發(fā)的嵌入式Nios Ⅱ軟核多處理器系統(tǒng)具有可自主設(shè)計,重構(gòu)性好,軟硬件裁剪容易,系統(tǒng)擴充升級方便,能兼顧性能、體積、功耗、成本、可靠性等方面的要求。研發(fā)嵌入式Nios Ⅱ軟核多處理器系統(tǒng),是提高嵌入式系統(tǒng)性價比和實用性一種有效途徑。
1 片上Nios Ⅱ嵌入式軟核多處理器系統(tǒng)
嵌入式系統(tǒng)的核心是RISC 處理器,具有代表性的RISC軟核處理器是Nios Ⅱ處理器。軟核處理器是指用編程的方法生成的處理器。是一種將硬件邏輯、智能算法、硬件描述語言和編程有機的結(jié)合出來,設(shè)計處理器硬件電路的新技術(shù)。
片上Nios Ⅱ嵌入式多處理器系統(tǒng)優(yōu)勢在于設(shè)計者可根據(jù)的實際的需要,自主選擇Nios Ⅱ處理器的類型和數(shù)目并進行設(shè)置,對存儲器和外圍設(shè)備進行優(yōu)化配置,最大限度提高片內(nèi)資源和系統(tǒng)資源的利用率。
1.1 Nios Ⅱ處理器
由Nios Ⅱ軟核處理器構(gòu)建的系統(tǒng),對系統(tǒng)軟硬件容易進行裁剪,并可集成在一個FPGA 芯片上,構(gòu)建系統(tǒng)和實時評估非常迅速、方便,可大大地縮短設(shè)計周期,降低設(shè)計風(fēng)險。
1.2 多處理器系統(tǒng)類型
按共享資源分為非共享資源多處理器系統(tǒng)和共享資源多處理器系統(tǒng)兩種。非共享資源多個處理器系統(tǒng)中的多個Nios Ⅱ處理器完全是獨立的,不共享系統(tǒng)資源,處理器相互之間無干擾,系統(tǒng)結(jié)構(gòu)不太復(fù)雜。共享資源多處理器系統(tǒng)在共享資源的情況下,要確保多個Nios Ⅱ處理器安全、可靠的工作,它對提高每個處理器的性能、減小體積,降低成本和功耗有利,但系統(tǒng)軟件的設(shè)計較為復(fù)雜。
按處理器拓撲結(jié)構(gòu)分為2 種,一種是非層次結(jié)構(gòu),處理器與系統(tǒng)組件的連接容易;另一種是層次結(jié)構(gòu),它可根據(jù)實際需要來確定Nios Ⅱ處理器的數(shù)目,優(yōu)化系統(tǒng)的內(nèi)部結(jié)構(gòu),有效利用FPGA芯片的資源。但存在平衡多處理器的負載和任務(wù)協(xié)調(diào)的問題。
2 共享資源多處理器系統(tǒng)
由多個Nios Ⅱ軟核處理器,一套片上外設(shè)接口,片上存儲器,片外存儲器接口等并集成在一個FPGA芯片上,構(gòu)成片上嵌入式Nios Ⅱ軟核多處理器系統(tǒng)的基本架構(gòu)。
2.1 共享系統(tǒng)資源
Nios Ⅱ多處理器系統(tǒng)可共享存儲器、外圍設(shè)備系統(tǒng)資源。為了確保每個處理器共享資源,防止由于處理器之間的干擾,引起程序或數(shù)據(jù)的錯誤,導(dǎo)致整個系統(tǒng)的崩潰。Nios Ⅱ多處理器系統(tǒng)中使用硬件互斥核組件對共享資源進行保護處理,以協(xié)調(diào)各個處理器的正常工作,確保處理器之間不受干擾,從而提高多處理器系統(tǒng)的性能。
2.2 硬件互斥核
用硬件互斥核來協(xié)調(diào)各個處理器對共享資源的訪問。硬件互斥核是沒有內(nèi)部功能的,是一個簡單的QSYS組件。它提供了一個協(xié)議來保證對共享資源的所有權(quán)的互斥,互斥協(xié)議是在任何時刻只有一個處理器允許訪問共享硬件資源,這樣才能有效保護多個處理器訪問使用硬件資源,防止數(shù)據(jù)的損壞或系統(tǒng)的崩潰?;コ夂薽utex提供一個原子的測試和設(shè)置操作,它允許處理器測試,如果互斥是可用的話,獲得互斥鎖處理器進行單一的操作。當(dāng)處理器完成使用共享外設(shè)與互斥鎖,會釋放互斥鎖。此后,另一個處理器可以獲取該互斥鎖和共享外設(shè)的使用權(quán)。
需要注意,互斥核并沒有外設(shè)系統(tǒng)被多個處理器同時訪問的物理保護,運行在處理器上的軟件負責(zé)遵守互斥協(xié)議,軟件通過寫獲取互斥鎖后,處理器訪問其相關(guān)聯(lián)的共享外圍設(shè)備。多個處理器訪問一個mutex核,則每個處理器有一個唯一的標識符ID(cpuid)。Altera提供了Nios Ⅱ處理器訪問硬件的子程序,這些函數(shù)是針對mutex 核的,直接對底層硬件進行操作,每個處理器通過寫它的cpuid 控制寄存器的值到mutex 寄存器的owner 域?qū)utex 加鎖,而mutex 不能對HAL API 或ANSI C標準庫進行訪問。
3 片上嵌入式Nios Ⅱ軟核六處理器系統(tǒng)實例
片上嵌入式Nios Ⅱ六處理器硬件系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。
3.1 硬件系統(tǒng)結(jié)構(gòu)
由六個Nios Ⅱ處理器、硬件互斥核、片上存儲器、JTAG UART、定時器、FLASH 控制器、FLASH 存儲器、System ID、Avalon Switch Fabric總線組成系統(tǒng)硬件的基本結(jié)構(gòu)。該系統(tǒng)采用層次結(jié)構(gòu),其中第六個Nios Ⅱ處理器、片上存儲器、JTAG UART、System ID、定時器、FLASH 控制和存儲器處在結(jié)構(gòu)的頂層。處在底層的5 個子系統(tǒng)共享存儲器資源,每個子系統(tǒng)包含一個NiosⅡ處理器、JTAG UART、定時器和硬件互斥核,用Ava-lon-MM、Pipeline Bridges將邏輯相鄰的子系統(tǒng)處理器和互斥核之間連接成一個環(huán),連接子系統(tǒng)與系統(tǒng)頂層組件之間的通信通道。
評論