專利名稱:基于fpga開發(fā)板的全系統(tǒng)模擬加速方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機體系結(jié)構(gòu)技術(shù)領(lǐng)域,特別涉及一種基于FPGA開發(fā)板的全系統(tǒng) 模擬加速方法。
背景技術(shù):
在計算機體系結(jié)構(gòu)的研究過程中,一個關(guān)鍵的環(huán)節(jié)就是通過模擬來驗證設(shè)計的正 確性、評估體系結(jié)構(gòu)的性能。然而近年來,中央處理器(Central Processing Unit,CPU)的 主要改進(jìn)方向由原先的主頻提升轉(zhuǎn)變?yōu)楹说臄?shù)量的增加。對于模擬器的研究,這個發(fā)展方 向帶來的一個重要的問題就是進(jìn)行全系統(tǒng)模擬的復(fù)雜度也會隨之大幅增加。軟件模擬的效 率主要取決于宿主機的主頻。在如今的多核時代,軟件模擬時,宿主機多核的優(yōu)勢難以得到 利用,而被模擬的多核處理器將成倍地提升模擬的復(fù)雜度。所以盡管可用作軟件模擬宿主 機的性能也在提高,但與需要處理的這個問題的復(fù)雜度的提高不是一個級別的?,F(xiàn)場可編程門陣列(Field-Programmable Gate Array, FPGA)是一種可編程的硬 件,它在CPU的設(shè)計階段發(fā)揮著重要的作用。近年來FPGA在集成度方面的發(fā)展速度一直沒 有落后于CPU,在intel等CPU廠商開始普及45nm技術(shù)之后的一年左右時間,Altera也已 經(jīng)推出了 40nm WMratix IV。使用FPGA進(jìn)行指令集模擬的思路,是使用硬件描述語言對 模擬器進(jìn)行實現(xiàn),經(jīng)編譯綜合后形成邏輯門和觸發(fā)器的排列燒入FPGA上工作。利用硬件進(jìn) 行模擬,可以大幅提高模擬器的并行度,模擬效率也遠(yuǎn)高于使用軟件模擬的效果。但單純使 用硬件進(jìn)行處理器的模擬也有著幾個致命的問題硬件編程的開發(fā)周期長、編程調(diào)試難度 高,同時還存在著靈活性和適用性低下的問題。
發(fā)明內(nèi)容
(一 )要解決的技術(shù)問題本發(fā)明要解決的技術(shù)問題是如何減短硬件編程的開發(fā)周期,降低編程調(diào)試難度, 提高編程靈活性和適用性。( 二 )技術(shù)方案為解決上述技術(shù)問題,本發(fā)明提供了一種基于FPGA開發(fā)板的全系統(tǒng)模擬加速方 法,包括以下步驟Sl 對現(xiàn)場可編程門陣列FPGA開發(fā)板上的待模擬體系結(jié)構(gòu)的指令集中的所有指 令按實現(xiàn)難度和在所述指令集中出現(xiàn)的頻率進(jìn)行分類;S2 對分類后的指令分別以不同的方式進(jìn)行模擬。其中,步驟Sl具體為若所述頻率大于第一預(yù)設(shè)頻率且指令所在的硬件邏輯段能夠在預(yù)定時間內(nèi)實現(xiàn), 則分為第一類指令;若滿足以下兩個條件之一,則分為第二類指令條件一所述指令所在 的硬件邏輯段不能在預(yù)定時間內(nèi)實現(xiàn),但可由預(yù)定條數(shù)的通用指令實現(xiàn),條件二所述頻率 小于或等于第一預(yù)設(shè)頻率,但大于第二預(yù)設(shè)頻率;若所述頻率小于或等于第二預(yù)設(shè)頻率,或所述指令所在的硬件邏輯段不能由預(yù)定條數(shù)的通用指令實現(xiàn),則分為第三類指令。其中,步驟S2具體為首先判斷指令的類型,若判斷所述指令屬于第一類指令,則在FPGA開發(fā)板上通 過門電路實現(xiàn);若判斷所述指令屬于第二類指令或第三類指令,則將所述指令發(fā)送至所述 FPGA開發(fā)板上的軟核,并暫停模擬流水線,所述軟核接收到當(dāng)前指令后,對所述指令進(jìn)行判 斷,若判斷所述指令屬于第二類指令,則在所述軟核上完成處理后,將處理的結(jié)果提交至模 擬流水線后,再繼續(xù)模擬流水線,若判斷所述指令屬于第三類指令,所述軟核將所述指令發(fā) 送至所述FPGA開發(fā)板與宿主機間的通信接口,所述宿主機對所述指令進(jìn)行處理,將處理的 結(jié)果提交至模擬流水線后,再繼續(xù)模擬流水線,所述模擬流水線是所述FPGA開發(fā)板中模擬 單元用于處理指令的處理子單元,所述模擬單元包括模擬流水線和用于控制轉(zhuǎn)發(fā)所述模擬 流水線的處理結(jié)果的控制轉(zhuǎn)發(fā)子單元。其中,步驟S2中,根據(jù)待模擬體系結(jié)構(gòu)的處理核心數(shù)量,在所述FPGA開發(fā)板上實 現(xiàn)多個模擬單元的副本。其中,步驟S2中,在判斷指令的類型之前還包括對指令進(jìn)行解碼的步驟。(三)有益效果本發(fā)明針對不同指令類型利用不同的方式分別進(jìn)行模擬,減短了硬件編程的開發(fā) 周期,降低了編程調(diào)試難度,提高了編程靈活性和適用性。
圖1是按照本發(fā)明一種實施方式的基于FPGA開發(fā)板的全系統(tǒng)模擬加速方法的流 程圖。
具體實施例方式下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式
作進(jìn)一步詳細(xì)描述。以下實施 例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。本實施方式中,基于FPGA開發(fā)板的全系統(tǒng)模擬加速方法所采用的設(shè)備包括一臺 具有通信接口(例如PCI-E)的計算機,一塊具備相同接口,具備片上軟核實現(xiàn)能力的FPGA 開發(fā)板,所述宿主機完成全系統(tǒng)模擬過程中外設(shè)與復(fù)雜指令的模擬。宿主機上存放待模擬 待模擬體系結(jié)構(gòu)的鏡像,并負(fù)責(zé)模擬過程的啟動,隨后絕大多數(shù)的指令會在FPGA開發(fā)板上 實現(xiàn),其中大部分指令會在FPGA上的邏輯電路中實現(xiàn),少數(shù)指令會在FPGA開發(fā)板上的軟核 內(nèi)實現(xiàn)。對于FPGA上無法實現(xiàn)的指令,例如訪問外存儲器以及外設(shè)等指令,將通過通信接 口發(fā)到宿主機上,宿主機上的監(jiān)聽程序識別到該請求后會完成該指令的模擬,并通過通信 接口返回該指令的模擬結(jié)果。利用FPGA片上資源的高并發(fā)度可以十分高效地模擬大部分目標(biāo)系統(tǒng)的指令,但 對于部分很少出現(xiàn)指令,例如I/O指令,在使用硬件模擬這類指令是一個十分復(fù)雜的操作, 按照本實施方式可以在基本不影響性能的情況下可大幅減少模擬系統(tǒng)的開發(fā)成本,同時可 以獲得很好的系統(tǒng)靈活性。圖1是按照本發(fā)明一種實施方式的基于FPGA開發(fā)板的全系統(tǒng)模擬加速方法的流 程圖,包括以下步驟
Sl 對現(xiàn)場可編程門陣列FPGA開發(fā)板上的待模擬體系結(jié)構(gòu)的指令集中的所有指 令按實現(xiàn)難度和在所述指令集中出現(xiàn)的頻率進(jìn)行分類;S2 對分類后的指令分別以不同的方式進(jìn)行模擬。步驟Sl具體為若所述頻率大于第一預(yù)設(shè)頻率(本實施方式中,第一預(yù)設(shè)頻率為)且指令所 在的硬件邏輯段能夠在預(yù)定時間(本實施方式中在Altera Stratix II上運行,預(yù)定時間 為20ns)內(nèi)實現(xiàn),則分為第一類指令;若滿足以下兩個條件之一,則分為第二類指令條件 一所述指令所在的硬件邏輯段不能在預(yù)定時間內(nèi)實現(xiàn),但可由預(yù)定條數(shù)(本實施方式中, 預(yù)定條數(shù)為100條)的通用指令實現(xiàn),條件二 所述頻率小于或等于第一預(yù)設(shè)頻率,但大于 第二預(yù)設(shè)頻率(本實施方式中,第二預(yù)設(shè)頻率為0.01%);若所述頻率小于或等于第二預(yù)設(shè) 頻率,或所述指令所在的硬件邏輯段不能由預(yù)定條數(shù)的通用指令實現(xiàn),則分為第三類指令。步驟S2具體為首先判斷指令的類型,若判斷所述指令屬于第一類指令,則在FPGA開發(fā)板上通 過門電路實現(xiàn);若判斷所述指令屬于第二類指令或第三類指令,則將所述指令發(fā)送至所述 FPGA開發(fā)板上的軟核,并暫停模擬流水線,所述軟核接收到當(dāng)前指令后,對所述指令進(jìn)行判 斷,若判斷所述指令屬于第二類指令,則在所述軟核上完成處理后,將處理的結(jié)果提交至模 擬流水線后,再繼續(xù)模擬流水線,若判斷所述指令屬于第三類指令,所述軟核將所述指令發(fā) 送至所述FPGA開發(fā)板與宿主機間的通信接口,所述宿主機對所述指令進(jìn)行處理,將處理的 結(jié)果提交至模擬流水線后,再繼續(xù)模擬流水線,所述模擬流水線是所述FPGA開發(fā)板中模擬 單元用于處理指令的處理子單元,所述模擬單元包括模擬流水線和用于控制轉(zhuǎn)發(fā)所述模擬 流水線的處理結(jié)果的控制轉(zhuǎn)發(fā)子單元。步驟S2前,根據(jù)待模擬體系結(jié)構(gòu)的處理核心數(shù)量,在所述FPGA開發(fā)板上實現(xiàn)多個 模擬單元的副本。步驟S2中,在判斷指令的類型之前還包括對指令進(jìn)行解碼的步驟。實施例1本實施方式在一臺具有通信接口(例如PCI-E)的計算機,一塊具備相同接口,具 備片上軟核實現(xiàn)能力的FPGA開發(fā)板設(shè)備上進(jìn)行模擬。最終的模擬方案能夠在30Mhz上模擬常用指令,即不考慮非常用指令時該模擬器 的性能為30MIPS ;非常用指令在程序中出現(xiàn)的概率為0. 0001 ;一條非常用指令在軟核上平均需要1000條指令能夠?qū)崿F(xiàn);片上軟核的執(zhí)行效率為250MIPS。經(jīng)測試,該實施方式的執(zhí)行效率為29. 6472MIPS,相當(dāng)于不考慮非常用指令時性能 的98. 82%。該數(shù)據(jù)說明,含有非常用指令的程序?qū)Ρ緦嵤┓绞降膱?zhí)行效率的影響十分有 限。以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通 技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有 等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護范圍應(yīng)由權(quán)利要求限定。
權(quán)利要求
1.一種基于FPGA開發(fā)板的全系統(tǒng)模擬加速方法,其特征在于,包括以下步驟51對現(xiàn)場可編程門陣列FPGA開發(fā)板上的待模擬體系結(jié)構(gòu)的指令集中的所有指令按 實現(xiàn)難度和在所述指令集中出現(xiàn)的頻率進(jìn)行分類;52對分類后的指令分別以不同的方式進(jìn)行模擬。
2.如權(quán)利要求1所述的基于FPGA開發(fā)板的全系統(tǒng)模擬加速方法,其特征在于,步驟Sl 具體為若所述頻率大于第一預(yù)設(shè)頻率且指令所在的硬件邏輯段能夠在預(yù)定時間內(nèi)實現(xiàn),則分 為第一類指令;若滿足以下兩個條件之一,則分為第二類指令條件一所述指令所在的硬 件邏輯段不能在預(yù)定時間內(nèi)實現(xiàn),但可由預(yù)定條數(shù)的通用指令實現(xiàn),條件二 所述頻率小于 或等于第一預(yù)設(shè)頻率,但大于第二預(yù)設(shè)頻率;若所述頻率小于或等于第二預(yù)設(shè)頻率,或所述 指令所在的硬件邏輯段不能由預(yù)定條數(shù)的通用指令實現(xiàn),則分為第三類指令。
3.如權(quán)利要求2所述的基于FPGA開發(fā)板的全系統(tǒng)模擬加速方法,其特征在于,步驟S2 具體為首先判斷指令的類型,若判斷所述指令屬于第一類指令,則在FPGA開發(fā)板上通過門電 路實現(xiàn);若判斷所述指令屬于第二類指令或第三類指令,則將所述指令發(fā)送至所述FPGA開 發(fā)板上的軟核,并暫停模擬流水線,所述軟核接收到當(dāng)前指令后,對所述指令進(jìn)行判斷,若 判斷所述指令屬于第二類指令,則在所述軟核上完成處理后,將處理的結(jié)果提交至模擬流 水線后,再繼續(xù)模擬流水線,若判斷所述指令屬于第三類指令,所述軟核將所述指令發(fā)送至 所述FPGA開發(fā)板與宿主機間的通信接口,所述宿主機對所述指令進(jìn)行處理,將處理的結(jié)果 提交至模擬流水線后,再繼續(xù)模擬流水線,所述模擬流水線是所述FPGA開發(fā)板中模擬單元 用于處理指令的處理子單元,所述模擬單元包括模擬流水線和用于控制轉(zhuǎn)發(fā)所述模擬流水 線的處理結(jié)果的控制轉(zhuǎn)發(fā)子單元。
4.如權(quán)利要求3所述的基于FPGA開發(fā)板的全系統(tǒng)模擬加速方法,其特征在于,步驟 S2中,根據(jù)待模擬體系結(jié)構(gòu)的處理核心數(shù)量,在所述FPGA開發(fā)板上實現(xiàn)多個模擬單元的副 本。
5.如權(quán)利要求3所述的基于FPGA開發(fā)板的全系統(tǒng)模擬加速方法,其特征在于,步驟S2 中,在判斷指令的類型之前還包括對指令進(jìn)行解碼的步驟。
全文摘要
本發(fā)明公開了一種基于FPGA開發(fā)板的全系統(tǒng)模擬加速方法,其包括以下步驟S1對現(xiàn)場可編程門陣列FPGA開發(fā)板上的待模擬體系結(jié)構(gòu)的指令集中所有指令按實現(xiàn)難度和在所述指令集中出現(xiàn)的頻率進(jìn)行分類;S2對分類后的指令分別以不同的方式進(jìn)行模擬;本發(fā)明針對不同指令類型利用不同的方式分別進(jìn)行模擬,減短了硬件編程的開發(fā)周期,降低了編程調(diào)試難度,提高了編程靈活性和適用性。
文檔編號G06F17/50GK102073763SQ201010624028
公開日2011年5月25日 申請日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者張悠慧, 蘇格林, 鄭緯民, 錢自強 申請人:清華大學(xué)