MPSOC中的ISS與SYSTEMC模型集成-設(shè)計應(yīng)用_第1頁
MPSOC中的ISS與SYSTEMC模型集成-設(shè)計應(yīng)用_第2頁
MPSOC中的ISS與SYSTEMC模型集成-設(shè)計應(yīng)用_第3頁
MPSOC中的ISS與SYSTEMC模型集成-設(shè)計應(yīng)用_第4頁
MPSOC中的ISS與SYSTEMC模型集成-設(shè)計應(yīng)用_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯MPSOC中的ISS與SYSTEMC模型集成-設(shè)計應(yīng)用1、引言隨著集成電路工藝的進(jìn)一步發(fā)展,在一個芯片中集成多個核的情況,已經(jīng)可以實現(xiàn),并且成為超大規(guī)模集成電路發(fā)展的一個重要分支。多核技術(shù)主要運(yùn)用于一些實時性能要求比較高,計算量比較大,對功耗和開銷有嚴(yán)格要求的應(yīng)用中,比如在多媒體技術(shù)中,通常要進(jìn)行大量的并行計算,就可以選用多核系統(tǒng)(MPSOC)來解決。但目前MPSOC設(shè)計還有很多軟硬件方面的問題需要解決,如處理器的可配置性,互聯(lián)架構(gòu)的選用以及軟硬件的并行設(shè)計等。

2、基于C/C++的硬件設(shè)計

考慮到軟硬件并行設(shè)計的要求,我們在系統(tǒng)中嵌入ISS(一般由C/C++構(gòu)成)來運(yùn)行軟件,系統(tǒng)中其它模塊的建模在早期的軟硬件并行仿真框架中采用HDL建模,這樣就形成了一個不同語言的仿真環(huán)境,但此環(huán)境仿真性能欠佳并且軟硬件的集成困難。目前出現(xiàn)的基于C/C++硬件描述方法在軟硬件的并行仿真過程中有很好的優(yōu)勢,它使用相同的語言來描述軟硬件,這樣能彌補(bǔ)軟硬件用不同語言來描述所帶來的差距。我們在設(shè)計中選用SYS-TEMC來描述硬件模塊。在這種結(jié)構(gòu)中必須解決兩個問題,一是軟硬件之問如何有效地進(jìn)行通訊,另一個是二者之間如何保持仿真的同步。目前主要存在兩種解決方法,一種是SYSTEMC和ISS在主機(jī)上作為不同進(jìn)程運(yùn)行,如圖1所示,它們之間的通訊通過進(jìn)程通訊(Inter-ProcessCommunicationIPC)完成,同步通過SYSTEMC模塊的封裝來實現(xiàn);第二種方法是并行仿真,在單獨的SYSTEMC進(jìn)程中完成,ISS被嵌入到SYSTEMC的封裝模塊中,此時的通訊是通過SYSTEMC模塊的端口以及信號完成。前者在ISS和系統(tǒng)中的其余部分通訊比較少時,較為有效,當(dāng)通訊加大時仿真性能不佳,同時也引入了大量的IPC開銷。本設(shè)計將后一種方法引入到MPSOC的設(shè)計中,這能加快應(yīng)用程序和硬件模塊之間的通訊的能力,以便更快的確定系統(tǒng)的性能。

3、MPSOC的架構(gòu)

MPSOC的仿真平臺如圖2所示,包括可配置的ISS,對于不同的應(yīng)用,系統(tǒng)可以通過匹配ISS的數(shù)目來達(dá)到的性能,從而確定它的架構(gòu),另外還有私有存儲器、共享存儲器以及同步存儲器和中斷器件。其中每個處理器都對應(yīng)一個私有存儲器,用來存儲處理器所要運(yùn)行的程序;共享存儲器用來協(xié)調(diào)多個處理器的通訊,使它們之間可以進(jìn)行數(shù)據(jù)交互;同步存儲器是為了同步多個處理器對共享資源的訪問,使它們不發(fā)生沖突。同步存儲器設(shè)計時采用雙態(tài)信號量(binarysemaphore)的形式,利用semaphore互鎖機(jī)制去達(dá)到處理器之間的通訊同步。中斷器件是可寫不可讀的,它表明有中斷產(chǎn)生。另外平臺中的互連架構(gòu)對于整個平臺的性能和開銷也有非常大的影響,本平臺采用的是共享總線的方式,此方式可以降低功耗。具體的系統(tǒng)總線采用的是AMBA的AHB總線,因為AHB總線在工業(yè)中使用非常普及。根據(jù)AMBA規(guī)范它支持多個主設(shè)備,但任意時刻只有一個主設(shè)備被允許訪問總線,其它的主設(shè)備被仲裁器禁止。為了能夠容易的擴(kuò)張主設(shè)備和從沒備,構(gòu)造了主從設(shè)備的總線接口。另外總線支持突發(fā)傳輸、分段傳輸、單字節(jié)傳輸?shù)榷喾N功能。在總線上傳輸事務(wù)時,主設(shè)備首先向仲裁器發(fā)出請求信號,經(jīng)仲裁器按照某種算法(本文循環(huán)算法)仲裁后,發(fā)出準(zhǔn)許使用總線信號。主設(shè)備在等到擁有總線使用權(quán)后,發(fā)出地址和控制信號,在下一個時鐘周期發(fā)出數(shù)據(jù),在等到從設(shè)備發(fā)Ready信號后,主或從設(shè)備就可以對總線上的數(shù)據(jù)進(jìn)行采樣。期間使用多路復(fù)用器來對多個主從設(shè)備進(jìn)行連接,使用譯碼器對發(fā)出的地址信號進(jìn)行譯碼,用來選擇從設(shè)備。

4、ISS與SYSTEMC的集成

設(shè)計中構(gòu)造了周期的ISS,它內(nèi)部包含了取址、譯碼、執(zhí)行三級流水線,并且模擬了時鐘的行為,因此它可以進(jìn)行詳細(xì)的平臺性能分析。對于ISS和硬件模塊的集成,我們將ISS嵌入到SYSTEMC的封裝模塊Wrapper中,作為此模塊中的一個類成員。

如圖3所示W(wǎng)rapper模塊所要完成的任務(wù)是要接受來自于ISS類或AHB主設(shè)備接口的控制和數(shù)據(jù)信號,經(jīng)過模塊的處理后再傳遞時序匹配的信號到ISS或AHB主設(shè)備接口。由于需要傳遞的信號比較多,所以我們采用了結(jié)構(gòu)體的方式,這樣可以同時發(fā)送一組信號,我們聲明了一個結(jié)構(gòu)體PINOUT,它包括AHB總線和處理器的一些必須的控制和數(shù)據(jù)信號。之后在Wrapper模塊和ISS中聲明此結(jié)構(gòu)體類型的端口和中間變量。因為ISS和Wrapper模塊之間的通訊是通過調(diào)用函數(shù)中的參數(shù)傳遞的方式來完成的,所以將ISS中需要和Wrapper進(jìn)行通訊的結(jié)構(gòu)體變量定義為指針類型,同時在Wrapper模塊中對調(diào)用函數(shù)的結(jié)構(gòu)體類型參數(shù)采用引用調(diào)用(Cy-cle(pinout)。這樣就可通過輸入端口將ISS所需要的信號賦給中間變量,然后通過對ISS驅(qū)動函數(shù)的調(diào)用將中間變量的地址傳遞給ISS,等ISS執(zhí)行完成后將中間變量的新值賦給輸出端口,而Wrapper模塊的端口又與AHB主設(shè)備的接口對應(yīng),從而完成了ISS與硬件模型的通訊。

另一方面為了使得ISS和SYSTEMC硬件模塊的仿真時序匹配,我們定義了一個進(jìn)程用于驅(qū)動ISS的運(yùn)行,同時完成信號的同步。在SYSTEMC中提供了三種進(jìn)程定義方式:方法進(jìn)程、線程進(jìn)程和鐘控線程進(jìn)程。當(dāng)方法進(jìn)程被調(diào)用后,進(jìn)程就一直執(zhí)行到結(jié)束,中間不能被停止,進(jìn)程中也不能插入wait()語句。線程進(jìn)程中可以插人wait()使進(jìn)程被掛起,直到敏感信號再發(fā)生變化。鐘控線程進(jìn)程只對時鐘敏感。Wrapper模塊中采用線程的方式,定義了一個進(jìn)程simulation,如圖4所示是所定義的線程的一個局部情況,它是對時鐘上升沿敏感的,我們用wait()語句在必要的位置使其掛起,這樣就能進(jìn)行時序操作。我們在此進(jìn)程中調(diào)用上文提到的ISS的驅(qū)動函數(shù),在每一個時鐘沿,對此函數(shù)進(jìn)行觸發(fā)。由于ISS是周期的,處理器模型能在封裝模塊中給出每個時鐘周期流水線的運(yùn)行效果,所以與其進(jìn)行交互的中間變量和端口只要在每個周期進(jìn)行賦值就可以達(dá)到時序的匹配。另外對于Wrapper和AHB主設(shè)備接幾之間的同步,我們采用握手機(jī)制,如圖4中的ready_from_ahb_master和re-quest_to_ahb_master信號,這兩個信號可以確保Wrapper和AHB主設(shè)備接受到正確的數(shù)據(jù)。

5、仿真結(jié)果

為了驗證平臺的性能,我們開發(fā)了一個矩陣的流水線乘法程序。因為平臺的處理器模型的數(shù)目是可配置的,這里我們先后選用4個核和8個核的平臺進(jìn)行仿真,用來比較不同架構(gòu)的性能。我們首先將乘數(shù)矩陣讀人到每個處理器的私有存儲器中,個被乘數(shù)矩陣讀入共享存儲器中,然后個處理器從共享存儲器中讀入被乘數(shù)矩陣,經(jīng)過相乘計算結(jié)果再返回給共享存儲器。下一個處理器再從共享存儲器中取出上返回矩陣作為被乘數(shù)矩陣,處理后同樣輸出結(jié)果。這樣各處理器之間按照流水線的方式進(jìn)行操作,一個處理器的輸出結(jié)果就是我們所需要的結(jié)果。仿真結(jié)果如表1和表2所示。從表中可以看出,處理器的開始執(zhí)行時間和結(jié)束時間一個比一個延遲,這是由于后續(xù)的處理操作要用到前一個的結(jié)果,造成了大量的等待時問,所以在小規(guī)模的計算中并不適合用多核平臺。但在復(fù)雜的應(yīng)用中,比如此應(yīng)用程序中,雖然八核所處理的計算量是四核的一倍,但仿真時間只增加了大約37%??梢奙P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論