MPSOC中的ISS與SYSTEMC模型集成
出處:xwj 發(fā)布于:2007-07-17 10:53:10
隨著集成電路工藝的進(jìn)一步發(fā)展,在一個(gè)芯片中集成多個(gè)核的情況,已經(jīng)可以實(shí)現(xiàn),并且成為超大規(guī)模集成電路發(fā)展的一個(gè)重要分支。多核技術(shù)主要運(yùn)用于一些實(shí)時(shí)性能要求比較高,計(jì)算量比較大,對(duì)功耗和開(kāi)銷(xiāo)有嚴(yán)格要求的應(yīng)用中,比如在多媒體技術(shù)中,通常要進(jìn)行大量的并行計(jì)算,就可以選用多核系統(tǒng)(MPSOC)來(lái)解決。但目前MPSOC設(shè)計(jì)還有很多軟硬件方面的問(wèn)題需要解決,如處理器的可配置性,互聯(lián)架構(gòu)的選用以及軟硬件的并行設(shè)計(jì)等。
2、基于C/C++的硬件設(shè)計(jì)
考慮到軟硬件并行設(shè)計(jì)的要求,我們?cè)谙到y(tǒng)中嵌入ISS(一般由C/C++構(gòu)成)來(lái)運(yùn)行軟件,系統(tǒng)中其它模塊的建模在早期的軟硬件并行仿真框架中采用HDL建模,這樣就形成了一個(gè)不同語(yǔ)言的仿真環(huán)境,但此環(huán)境仿真性能欠佳并且軟硬件的集成困難。目前出現(xiàn)的基于C/C++硬件描述方法在軟硬件的并行仿真過(guò)程中有很好的優(yōu)勢(shì),它使用相同的語(yǔ)言來(lái)描述軟硬件,這樣能彌補(bǔ)軟硬件用不同語(yǔ)言來(lái)描述所帶來(lái)的差距。我們?cè)谠O(shè)計(jì)中選用SYS-TEMC來(lái)描述硬件模塊。在這種結(jié)構(gòu)中必須解決兩個(gè)問(wèn)題,一是軟硬件之問(wèn)如何有效地進(jìn)行通訊,另一個(gè)是二者之間如何保持仿真的同步。目前主要存在兩種解決方法,一種是SYSTEMC和ISS在主機(jī)上作為不同進(jìn)程運(yùn)行,如圖1所示,它們之間的通訊通過(guò)進(jìn)程通訊(Inter-Process Communication IPC)完成,同步通過(guò)SYSTEMC模塊的封裝來(lái)實(shí)現(xiàn);第二種方法是并行仿真,在單獨(dú)的SYSTEMC進(jìn)程中完成,ISS被嵌入到SYSTEMC的封裝模塊中,此時(shí)的通訊是通過(guò)SYSTEMC模塊的端口以及信號(hào)完成。前者在ISS和系統(tǒng)中的其余部分通訊比較少時(shí),較為有效,當(dāng)通訊加大時(shí)仿真性能不佳,同時(shí)也引入了大量的IPC開(kāi)銷(xiāo)。本設(shè)計(jì)將后一種方法引入到MPSOC的設(shè)計(jì)中,這能加快應(yīng)用程序和硬件模塊之間的通訊的能力,以便更快的確定系統(tǒng)的性能。
![]() |
3、MPSOC的架構(gòu)
MPSOC的仿真平臺(tái)如圖2所示,包括可配置的ISS,對(duì)于不同的應(yīng)用,系統(tǒng)可以通過(guò)匹配ISS的數(shù)目來(lái)達(dá)到的性能,從而確定它的架構(gòu),另外還有私有存儲(chǔ)器、共享存儲(chǔ)器以及同步存儲(chǔ)器和中斷器件。其中每個(gè)處理器都對(duì)應(yīng)一個(gè)私有存儲(chǔ)器,用來(lái)存儲(chǔ)處理器所要運(yùn)行的程序;共享存儲(chǔ)器用來(lái)協(xié)調(diào)多個(gè)處理器的通訊,使它們之間可以進(jìn)行數(shù)據(jù)交互;同步存儲(chǔ)器是為了同步多個(gè)處理器對(duì)共享資源的訪問(wèn),使它們不發(fā)生沖突。同步存儲(chǔ)器設(shè)計(jì)時(shí)采用雙態(tài)信號(hào)量(binary semaphore)的形式,利用semaphore互鎖機(jī)制去達(dá)到處理器之間的通訊同步。中斷器件是可寫(xiě)不可讀的,它表明有中斷產(chǎn)生。另外平臺(tái)中的互連架構(gòu)對(duì)于整個(gè)平臺(tái)的性能和開(kāi)銷(xiāo)也有非常大的影響,本平臺(tái)采用的是共享總線的方式,此方式可以降低功耗。具體的系統(tǒng)總線采用的是AMBA的AHB總線,因?yàn)锳HB總線在工業(yè)中使用非常普及。根據(jù)AMBA規(guī)范它支持多個(gè)主設(shè)備,但任意時(shí)刻只有一個(gè)主設(shè)備被允許訪問(wèn)總線,其它的主設(shè)備被仲裁器禁止。為了能夠容易的擴(kuò)張主設(shè)備和從沒(méi)備,構(gòu)造了主從設(shè)備的總線接口。另外總線支持突發(fā)傳輸、分段傳輸、單字節(jié)傳輸?shù)榷喾N功能。在總線上傳輸事務(wù)時(shí),主設(shè)備首先向仲裁器發(fā)出請(qǐng)求信號(hào),經(jīng)仲裁器按照某種算法(本文循環(huán)算法)仲裁后,發(fā)出準(zhǔn)許使用總線信號(hào)。主設(shè)備在等到擁有總線使用權(quán)后,發(fā)出地址和控制信號(hào),在下一個(gè)時(shí)鐘周期發(fā)出數(shù)據(jù),在等到從設(shè)備發(fā)Ready信號(hào)后,主或從設(shè)備就可以對(duì)總線上的數(shù)據(jù)進(jìn)行采樣。期間使用多路復(fù)用器來(lái)對(duì)多個(gè)主從設(shè)備進(jìn)行連接,使用譯碼器對(duì)發(fā)出的地址信號(hào)進(jìn)行譯碼,用來(lái)選擇從設(shè)備。
![]() |
4、ISS與SYSTEMC的集成
設(shè)計(jì)中構(gòu)造了周期的ISS,它內(nèi)部包含了取址、譯碼、執(zhí)行三級(jí)流水線,并且模擬了時(shí)鐘的行為,因此它可以進(jìn)行詳細(xì)的平臺(tái)性能分析。對(duì)于ISS和硬件模塊的集成,我們將ISS嵌入到SYSTEMC的封裝模塊Wrapper中,作為此模塊中的一個(gè)類(lèi)成員。
如圖3所示W(wǎng)rapper模塊所要完成的任務(wù)是要接受來(lái)自于ISS類(lèi)或AHB主設(shè)備接口的控制和數(shù)據(jù)信號(hào),經(jīng)過(guò)模塊的處理后再傳遞時(shí)序匹配的信號(hào)到ISS或AHB主設(shè)備接口。由于需要傳遞的信號(hào)比較多,所以我們采用了結(jié)構(gòu)體的方式,這樣可以同時(shí)發(fā)送一組信號(hào),我們聲明了一個(gè)結(jié)構(gòu)體PINOUT,它包括AHB總線和處理器的一些必須的控制和數(shù)據(jù)信號(hào)。之后在Wrapper模塊和ISS中聲明此結(jié)構(gòu)體類(lèi)型的端口和中間變量。因?yàn)镮SS和Wrapper模塊之間的通訊是通過(guò)調(diào)用函數(shù)中的參數(shù)傳遞的方式來(lái)完成的,所以將ISS中需要和Wrapper進(jìn)行通訊的結(jié)構(gòu)體變量定義為指針類(lèi)型,同時(shí)在Wrapper模塊中對(duì)調(diào)用函數(shù)的結(jié)構(gòu)體類(lèi)型參數(shù)采用引用調(diào)用(Cy-cle(&pinout)。這樣就可通過(guò)輸入端口將ISS所需要的信號(hào)賦給中間變量,然后通過(guò)對(duì)ISS驅(qū)動(dòng)函數(shù)的調(diào)用將中間變量的地址傳遞給ISS,等ISS執(zhí)行完成后將中間變量的新值賦給輸出端口,而Wrapper模塊的端口又與AHB主設(shè)備的接口對(duì)應(yīng),從而完成了ISS與硬件模型的通訊。
![]() |
另一方面為了使得ISS和SYSTEMC硬件模塊的仿真時(shí)序匹配,我們定義了一個(gè)進(jìn)程用于驅(qū)動(dòng)ISS的運(yùn)行,同時(shí)完成信號(hào)的同步。在SYSTEMC中提供了三種進(jìn)程定義方式:方法進(jìn)程、線程進(jìn)程和鐘控線程進(jìn)程。當(dāng)方法進(jìn)程被調(diào)用后,進(jìn)程就一直執(zhí)行到結(jié)束,中間不能被停止,進(jìn)程中也不能插入wait()語(yǔ)句。線程進(jìn)程中可以插人wait()使進(jìn)程被掛起,直到敏感信號(hào)再發(fā)生變化。鐘控線程進(jìn)程只對(duì)時(shí)鐘敏感。Wrapper模塊中采用線程的方式,定義了一個(gè)進(jìn)程simulation,如圖4所示是所定義的線程的一個(gè)局部情況,它是對(duì)時(shí)鐘上升沿敏感的,我們用wait()語(yǔ)句在必要的位置使其掛起,這樣就能進(jìn)行時(shí)序操作。我們?cè)诖诉M(jìn)程中調(diào)用上文提到的ISS的驅(qū)動(dòng)函數(shù),在每一個(gè)時(shí)鐘沿,對(duì)此函數(shù)進(jìn)行觸發(fā)。由于ISS是周期的,處理器模型能在封裝模塊中給出每個(gè)時(shí)鐘周期流水線的運(yùn)行效果,所以與其進(jìn)行交互的中間變量和端口只要在每個(gè)周期進(jìn)行賦值就可以達(dá)到時(shí)序的匹配。另外對(duì)于Wrapper和AHB主設(shè)備接幾之間的同步,我們采用握手機(jī)制,如圖4中的ready_from_ahb_master和re-quest_to_ahb_master信號(hào),這兩個(gè)信號(hào)可以確保Wrapper和AHB主設(shè)備接受到正確的數(shù)據(jù)。
![]() |
5、仿真結(jié)果
為了驗(yàn)證平臺(tái)的性能,我們開(kāi)發(fā)了一個(gè)矩陣的流水線乘法程序。因?yàn)槠脚_(tái)的處理器模型的數(shù)目是可配置的,這里我們先后選用4個(gè)核和8個(gè)核的平臺(tái)進(jìn)行仿真,用來(lái)比較不同架構(gòu)的性能。我們首先將乘數(shù)矩陣讀人到每個(gè)處理器的私有存儲(chǔ)器中,個(gè)被乘數(shù)矩陣讀入共享存儲(chǔ)器中,然后個(gè)處理器從共享存儲(chǔ)器中讀入被乘數(shù)矩陣,經(jīng)過(guò)相乘計(jì)算結(jié)果再返回給共享存儲(chǔ)器。下一個(gè)處理器再?gòu)墓蚕泶鎯?chǔ)器中取出上返回矩陣作為被乘數(shù)矩陣,處理后同樣輸出結(jié)果。這樣各處理器之間按照流水線的方式進(jìn)行操作,一個(gè)處理器的輸出結(jié)果就是我們所需要的結(jié)果。仿真結(jié)果如表1和表2所示。從表中可以看出,處理器的開(kāi)始執(zhí)行時(shí)間和結(jié)束時(shí)間一個(gè)比一個(gè)延遲,這是由于后續(xù)的處理操作要用到前一個(gè)的結(jié)果,造成了大量的等待時(shí)問(wèn),所以在小規(guī)模的計(jì)算中并不適合用多核平臺(tái)。但在復(fù)雜的應(yīng)用中,比如此應(yīng)用程序中,雖然八核所處理的計(jì)算量是四核的一倍,但仿真時(shí)間只增加了大約37%??梢?jiàn)MPSOC所處理的計(jì)算量越大就越能體現(xiàn)MPSOC的并行處理優(yōu)勢(shì)。
6、結(jié)語(yǔ)
MPSOC平臺(tái)開(kāi)發(fā)中應(yīng)使平臺(tái)盡可能的靈活,以便能應(yīng)用于多種領(lǐng)域,來(lái)達(dá)到節(jié)約開(kāi)發(fā)成本。本文引入的ISS和硬件模塊的集成方式,可以很方便地進(jìn)行平臺(tái)擴(kuò)展,而不需要對(duì)接口或ISS做過(guò)多的修改。所以能夠快速有效地進(jìn)行MPSOC的開(kāi)發(fā)。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.udpf.com.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 深入解析嵌入式 OPENAMP 框架:開(kāi)啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識(shí)2025/7/14 16:59:04
- 獨(dú)立 ADC 優(yōu)勢(shì)大揭秘:為何不可替代?2025/7/7 16:21:04
- 深入剖析:嵌入式中 RS485、RS422 和 RS232 的特點(diǎn)差異2025/7/5 15:07:54
- 揭秘嵌入式 MCU:浮點(diǎn)數(shù)據(jù)處理難點(diǎn)及應(yīng)對(duì)策略2025/6/20 15:19:07
- 編碼器的工作原理及作用1
- 超強(qiáng)整理!PCB設(shè)計(jì)之電流與線寬的關(guān)系2
- 三星(SAMSUNG)貼片電容規(guī)格對(duì)照表3
- 電腦藍(lán)屏代碼大全4
- 國(guó)標(biāo)委發(fā)布《電動(dòng)汽車(chē)安全要求第3部分:人員觸電防護(hù)》第1號(hào)修改單5
- 通俗易懂談上拉電阻與下拉電阻6
- 繼電器的工作原理以及驅(qū)動(dòng)電路7
- 電容單位8
- 跟我學(xué)51單片機(jī)(三):?jiǎn)纹瑱C(jī)串口通信實(shí)例9
- 一種三極管開(kāi)關(guān)電路設(shè)計(jì)10













