專利名稱:組件化時(shí)鐘精確的多核體系模擬器的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多核體系結(jié)構(gòu)模擬器,特別是涉及一種組件化時(shí)鐘精確的多核體 系模擬器的實(shí)現(xiàn)方法。
背景技術(shù):
而且隨著處理器主頻的提高,處理器的功率消耗升高的更快。例如一個(gè)主頻
在2GHz以上的處理器,其功率消耗已經(jīng)達(dá)到了近100W,這已經(jīng)是風(fēng)冷散熱技 術(shù)的極限。如果繼續(xù)增加處理器的主頻,處理器很可能由于散熱過大而無法運(yùn) 行。 一方面是對(duì)處理器性能提升的迫切需求, 一方面是目前的提升處理器性能 方式遇到瓶頸。面對(duì)這種尷尬的境地,各大處理器廠商都開始積極的尋找新的 提升處理器性能的方法。
在這樣的背景下,多核處理器技術(shù)應(yīng)運(yùn)而生。多核處理器的基本思想就是通 過多個(gè)低主頻的處理器替代一個(gè)高主頻的處理器。
從物理結(jié)構(gòu)上講,多核處理器技術(shù)就是在同一塊硅片上集成多個(gè)處理器核 心,在實(shí)際運(yùn)行中他們協(xié)同工作,以達(dá)到性能倍增的目的。已經(jīng)發(fā)布的多核處 理器很多,比如IBM公司的Power4芯片,它首先使用了兩個(gè)獨(dú)立的處理核心, 高端的Sun Microsystems也使用了多核心的處理芯片。Intel繼Itanium 2之后, 公布了代號(hào)為Tanglewood的下一代Itanium發(fā)展計(jì)劃,這款全新的Itanium芯片 最高將包含16顆獨(dú)立的處理器,加上超線程技術(shù),這款處理器能夠處理高達(dá)32 個(gè)線程。
隨著處理器性能的提高,處理器的結(jié)構(gòu)也更加復(fù)雜,使得設(shè)計(jì)者在設(shè)計(jì)一款 高性能處理器時(shí)需要進(jìn)行仔細(xì)地權(quán)衡,不可能再僅僅憑借經(jīng)驗(yàn)、直覺。模擬器 可幫助設(shè)計(jì)者評(píng)估各種設(shè)計(jì)方案,迅速的選定合理的方案。因此在現(xiàn)代處理器 結(jié)構(gòu)設(shè)計(jì)過程中,模擬器的地位顯得越來越。
時(shí)鐘精確模擬是一個(gè)性能模擬器的主要特征。只有能夠?qū)ο到y(tǒng)的行為進(jìn)行精 細(xì)的模擬才能反應(yīng)出系統(tǒng)設(shè)計(jì)中各種各樣的問題,從而為設(shè)計(jì)的改善提供有價(jià) 值的依據(jù)。
在模擬器上進(jìn)行硬件設(shè)計(jì)和研究省去了要把硬件設(shè)計(jì)通過硬件實(shí)現(xiàn)后才能 進(jìn)行測(cè)試的麻煩和成本。傳統(tǒng)的硬件設(shè)計(jì)和解決方案設(shè)計(jì)的一個(gè)設(shè)計(jì)周期流程 是首先進(jìn)行結(jié)構(gòu)設(shè)計(jì),通過FPGA實(shí)現(xiàn),再進(jìn)行各項(xiàng)性能的測(cè)試,最后再針對(duì)測(cè)試中發(fā)現(xiàn)的問題,進(jìn)行設(shè)計(jì)改良。其中對(duì)硬件的測(cè)試環(huán)節(jié)要花費(fèi)大量的時(shí)間 和精力。對(duì)于硬件的每一點(diǎn)改動(dòng)都要重新對(duì)其進(jìn)行實(shí)現(xiàn)才能對(duì)它的性能進(jìn)行繼 續(xù)的測(cè)試。這是很繁瑣,很耗費(fèi)時(shí)間的事情。如果用軟件來實(shí)現(xiàn)對(duì)硬件設(shè)計(jì)的 測(cè)試就會(huì)節(jié)約很多時(shí)間和精力。
相對(duì)于硬件,軟件更加靈活,每次修改只要重新編譯就能繼續(xù)進(jìn)行測(cè)試,使 得測(cè)試更加便捷。如此可以先用模擬器對(duì)已有的硬件體系進(jìn)行測(cè)試和修改,得 到一個(gè)相對(duì)滿意的設(shè)計(jì)方案時(shí),再用硬件實(shí)現(xiàn),進(jìn)行測(cè)試,這樣就能大大縮減 體系結(jié)構(gòu)的設(shè)計(jì)周期。
與通過硬件描述語(yǔ)言來實(shí)現(xiàn)硬件設(shè)計(jì)再利用邏輯綜合軟件進(jìn)行綜合分析相 比,用模擬器來實(shí)現(xiàn)硬件的設(shè)計(jì)不僅能描述每個(gè)時(shí)鐘周期硬件輸入輸出的波形 情況,還可以對(duì)硬件的運(yùn)行情況,如處理器的吞吐量、緩存的使用情況、總線
的空閑情況等信息進(jìn)行統(tǒng)計(jì);同時(shí)設(shè)計(jì)者還可以根據(jù)自己的需求來添加對(duì)硬件 運(yùn)行情況的統(tǒng)計(jì)信息,從而使硬件設(shè)計(jì)的測(cè)試具有更大的靈活性和可擴(kuò)展性。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種組件化時(shí)鐘精確的多核體系模擬器的實(shí)現(xiàn)方法。
本發(fā)明解決其技術(shù)問題采用的技術(shù)方案如下
1) 體系結(jié)構(gòu)組件化
根據(jù)功能對(duì)多核體系結(jié)構(gòu)進(jìn)行劃分,劃分后由五個(gè)部分組成主處理器核、 多個(gè)輔助處理器核、處理器總線、內(nèi)存控制器和內(nèi)存;
2) 組件接口設(shè)計(jì)
設(shè)計(jì)組件之間的接口,組件接口主要有主設(shè)備和處理器總線的接口,從 設(shè)備和處理器總線的接口,仲裁器和處理器總線的接口;
主設(shè)備和處理器總線的接口位于主設(shè)備和處理器總線的連接處,它的功能 在于連接主設(shè)備和處理器總線,實(shí)現(xiàn)主設(shè)備和處理器總線之間的數(shù)據(jù)傳輸;
從設(shè)備和處理器總線的接口位于從設(shè)備和處理器總線的連接處,它的功能 在于連接從設(shè)備和處理器總線,實(shí)現(xiàn)從設(shè)備和處理器總線之間的數(shù)據(jù)傳輸;
仲裁器和處理器總線的接口位于處理器總線和總線仲裁器的連接處,它的 功能在于連接仲裁器和處理器總線,使得總裁器可以接受總線上傳輸?shù)恼?qǐng)求, 并把仲裁結(jié)果返回給總線;
3) 時(shí)鐘精確的模擬包括 第一步,模擬實(shí)際硬件的微結(jié)構(gòu);第二步,模擬系統(tǒng)內(nèi)的不同頻率; 第三步,實(shí)現(xiàn)系統(tǒng)內(nèi)部的協(xié)議。 本發(fā)明與背景技術(shù)相比,具有的有益的效果是
本發(fā)明是一種組件化時(shí)鐘精確的多核體系模擬器的實(shí)現(xiàn)方法,其主要功能 是以多核處理器為模擬目標(biāo),以組件化為出發(fā)點(diǎn),將多核體系結(jié)構(gòu)的組成部件 封裝為組件,保證以組件為單位的組裝配置,有較好的靈活性。不僅能模擬核 內(nèi)流水線的動(dòng)作,還能模擬多個(gè)處理器核之間的動(dòng)作。本方法實(shí)現(xiàn)了時(shí)鐘精確 多核體系模擬器,有利于多核處理器體系結(jié)構(gòu)設(shè)計(jì)、多核軟件性能評(píng)估以及軟 硬協(xié)同設(shè)計(jì),可以加速硬件設(shè)計(jì)的驗(yàn)證過程從而縮短了整個(gè)硬件設(shè)計(jì)的周期。
(1) 高效性。本方法實(shí)現(xiàn)了組件化時(shí)鐘精確的多核體系模擬器,能模擬核內(nèi) 流水線的動(dòng)作,還能模擬多個(gè)處理器核之間的動(dòng)作。
(2) 靈活性。以組件化為出發(fā)點(diǎn),將多核體系結(jié)構(gòu)的組成部件封裝為組件, 保證以組件為單位的組裝配置,有較好的靈活性。
圖1是本發(fā)明的實(shí)施過程示意圖。
圖2是本發(fā)明的組件化多核體系結(jié)構(gòu)示意圖。
圖3是本發(fā)明的組件接口設(shè)計(jì)示意圖。
具體實(shí)施例方式
本發(fā)明是一種組件化時(shí)鐘精確的多核體系模擬器的實(shí)現(xiàn)方法,下面結(jié)合圖1 說明其具體實(shí)施過程。 l)體系結(jié)構(gòu)組件化-
整個(gè)模擬器的設(shè)計(jì),以組件化的方式進(jìn)行。"組件化"的含義是整個(gè)系統(tǒng)的每 一個(gè)部分都是一個(gè)獨(dú)立的模塊,對(duì)某個(gè)模塊的修改和替換并不影響其它模塊的 使用。"組件化"模型也可以被稱為"通用體系"模型。
計(jì)算部件和通信部件都可以根據(jù)特殊應(yīng)用的需求進(jìn)行定制。對(duì)于計(jì)算部件, 可能改變他們的數(shù)量或種類;對(duì)于通信部件,可能選擇特定的通信模式。這樣 就形成了一個(gè)"體系模版",只需要配置這個(gè)模版中的不同組件就能夠產(chǎn)生新的面 向應(yīng)用的體系結(jié)構(gòu)。由此可見"組件化"要求有一套完整的接口規(guī)范,并且能夠根 據(jù)功能把模塊進(jìn)行合理的劃分。
多核體系結(jié)構(gòu)模擬器,是一個(gè)支持多核的體系結(jié)構(gòu)模擬器。因此,這個(gè)模 擬器在結(jié)構(gòu)上除了要包含普通PC體系結(jié)構(gòu)的必要組成部分外,還要有支持多核 體系結(jié)構(gòu)的功能。為了便于研究和實(shí)現(xiàn),去掉一般體系結(jié)構(gòu)中的非必要組件,使得設(shè)計(jì)的模擬器結(jié)構(gòu)技能反映硬件的真實(shí)情況,又能夠簡(jiǎn)潔明快,易于重組。 如圖2所示,組件化多核體系結(jié)構(gòu)由五部分組成,包括主處理器核(簡(jiǎn) 稱主核)、輔助處理器核(簡(jiǎn)稱輔核)、處理器總線、內(nèi)存控制器和內(nèi)存。其中 主處理器核、輔助處理器核和處理器總線的內(nèi)部還可以有更細(xì)致的結(jié)構(gòu)。其中, 輔核的個(gè)數(shù)可以根據(jù)應(yīng)用環(huán)境的不同進(jìn)行配置,可以是一個(gè),也可以配置成多 個(gè)(不超過16個(gè))。
2) 組件接口設(shè)計(jì)
設(shè)計(jì)組件之間的接口。如圖3所示,組件接口主要有主設(shè)備和處理器總 線的接口,從設(shè)備和處理器總線的接口,仲裁器和處理器總線的接口。
主設(shè)備和處理器總線的接口位于主設(shè)備和處理器總線的連接處,它的功能 在于連接主設(shè)備和處理器總線,實(shí)現(xiàn)主設(shè)備和處理器總線之間的數(shù)據(jù)傳輸。其 中主設(shè)備指的是總線傳輸?shù)恼?qǐng)求者。處理器核就是一個(gè)典型的主設(shè)備。
從設(shè)備和處理器總線的接口位于從設(shè)備和處理器總線的連接處,它的功能 在于連接從設(shè)備和處理器總線,實(shí)現(xiàn)從設(shè)備和處理器總線之間的數(shù)據(jù)傳輸。其 中從設(shè)備指的是總線傳輸?shù)慕邮照?。?nèi)存控制器就是一個(gè)典型的從設(shè)備。
仲裁器和處理器總線的接口位于處理器總線和總線仲裁器的連接處,它的 功能在于連接仲裁器和處理器總線,使得總裁器可以接受總線上傳輸?shù)恼?qǐng)求, 并把仲裁結(jié)果返回給總線。
3) 時(shí)鐘精確的模擬
要使得模擬器的行為要符合硬件的運(yùn)行情況,首先要模擬實(shí)際硬件的微結(jié) 構(gòu)。比如要模擬一個(gè)處理器,還要同時(shí)實(shí)現(xiàn)解碼器、寄存器、運(yùn)算器等內(nèi)部器 件。
其次要模擬系統(tǒng)內(nèi)的不同頻率。比如, 一次內(nèi)存讀取的時(shí)間是幾百個(gè)時(shí)鐘 周期,這不但是因?yàn)樽x取的數(shù)據(jù)需要從內(nèi)存?zhèn)鬏數(shù)教幚砥?,而且是因?yàn)閮?nèi)存和 處理器運(yùn)行在不同的時(shí)鐘頻率上, 一個(gè)內(nèi)存的時(shí)鐘周期可能是一個(gè)處理器的時(shí) 鐘周期的幾十倍。
第三是要實(shí)現(xiàn)系統(tǒng)內(nèi)部的協(xié)議,比如數(shù)據(jù)從總線上的主設(shè)備傳輸?shù)綇脑O(shè)備 首先要進(jìn)行申請(qǐng),在被仲裁,得到傳輸權(quán)限后,才能進(jìn)行數(shù)據(jù)的傳輸。這個(gè)過 程是由總線的協(xié)議所規(guī)定的,因此為了符合數(shù)據(jù)傳輸?shù)膶?shí)際情況,也要對(duì)其進(jìn) 行實(shí)現(xiàn)。
為了提高模擬器的效率,模擬器只能保證整個(gè)系統(tǒng)在時(shí)鐘的觸發(fā)沿的狀態(tài) 與硬件的行為是相一致的,有時(shí)甚至只能保證與硬件實(shí)際行為相比,整個(gè)系統(tǒng)的狀態(tài)要推遲一個(gè)時(shí)鐘周期,而不能保證系統(tǒng)的狀態(tài)在每一個(gè)時(shí)間點(diǎn)都與硬件 相一致。這主要是因?yàn)閷?shí)際硬件行為是一個(gè)非線性的結(jié)構(gòu),而模擬器需要一個(gè) 線性的順序來運(yùn)行。比如, 一個(gè)門電路有兩個(gè)輸入和一個(gè)輸出,在實(shí)際硬件的 情況中,任何一個(gè)輸入的改變都會(huì)改變輸出。如果要真實(shí)的模擬硬件的行為, 就需要對(duì)兩個(gè)輸入的器件和這個(gè)門電路分別用一個(gè)線程表示,門電路的線程要 隨時(shí)監(jiān)控兩個(gè)輸入的變化,并根據(jù)輸入的變化改變輸出。這樣就會(huì)浪費(fèi)很多時(shí) 間在監(jiān)測(cè)輸入的變化上。而實(shí)際上,對(duì)于一個(gè)有時(shí)鐘控制的系統(tǒng),輸出的結(jié)果 只和時(shí)鐘的活動(dòng)邊沿時(shí)的輸出有關(guān)。因此只需要在時(shí)鐘的活動(dòng)邊沿時(shí)根據(jù)輸入 值改變輸出結(jié)果就能夠保證輸出的正確性。
實(shí)際的硬件系統(tǒng),是一個(gè)帶有反饋的非線性的結(jié)構(gòu),而計(jì)算機(jī)程序的流程 是一個(gè)線性的結(jié)構(gòu),這樣就要在本來非線性的結(jié)構(gòu)上找出一個(gè)方法把它線性化。 這個(gè)線性化的方法的主要依據(jù)是物理器件間邏輯上的先后順序。比如在一個(gè)流
水線結(jié)構(gòu)的處理器中,執(zhí)行一條指令需要先取指令;再經(jīng)行譯碼,確定指令的 功能;再根據(jù)指令的要求進(jìn)行計(jì)算;然后是訪問內(nèi)存的操作,最后是把計(jì)算結(jié) 果寫回到寄存器中。整個(gè)過程涉及的器件只是簡(jiǎn)單的連接,并沒有先后的順序, 而在邏輯上卻有一個(gè)先后的次序。因此在模擬時(shí)就可以依照這個(gè)次序,先運(yùn)行 取指令設(shè)計(jì)的相關(guān)器件,再運(yùn)行譯碼的相關(guān)器件,以此類推。
權(quán)利要求
1.一種組件化時(shí)鐘精確的多核體系模擬器的實(shí)現(xiàn)方法,其特征在于1)體系結(jié)構(gòu)組件化根據(jù)功能對(duì)多核體系結(jié)構(gòu)進(jìn)行劃分,劃分后由五個(gè)部分組成主處理器核、多個(gè)輔助處理器核、處理器總線、內(nèi)存控制器和內(nèi)存;2)組件接口設(shè)計(jì)設(shè)計(jì)組件之間的接口,組件接口主要有主設(shè)備和處理器總線的接口,從設(shè)備和處理器總線的接口,仲裁器和處理器總線的接口;主設(shè)備和處理器總線的接口位于主設(shè)備和處理器總線的連接處,它的功能在于連接主設(shè)備和處理器總線,實(shí)現(xiàn)主設(shè)備和處理器總線之間的數(shù)據(jù)傳輸;從設(shè)備和處理器總線的接口位于從設(shè)備和處理器總線的連接處,它的功能在于連接從設(shè)備和處理器總線,實(shí)現(xiàn)從設(shè)備和處理器總線之間的數(shù)據(jù)傳輸;仲裁器和處理器總線的接口位于處理器總線和總線仲裁器的連接處,它的功能在于連接仲裁器和處理器總線,使得總裁器可以接受總線上傳輸?shù)恼?qǐng)求,并把仲裁結(jié)果返回給總線;3)時(shí)鐘精確的模擬包括第一步,模擬實(shí)際硬件的微結(jié)構(gòu);第二步,模擬系統(tǒng)內(nèi)的不同頻率;第三步,實(shí)現(xiàn)系統(tǒng)內(nèi)部的協(xié)議。
全文摘要
本發(fā)明公開了一種組件化時(shí)鐘精確的多核體系模擬器的實(shí)現(xiàn)方法。本發(fā)明的方法以多核處理器為模擬目標(biāo),以組件化為出發(fā)點(diǎn),將多核體系結(jié)構(gòu)的組成部件封裝為組件,保證以組件為單位的組裝配置,有較好的靈活性。不僅能模擬核內(nèi)流水線的動(dòng)作,還能模擬多個(gè)處理器核之間的動(dòng)作。本發(fā)明實(shí)現(xiàn)了組件化時(shí)鐘精確的多核體系模擬器,能模擬核內(nèi)流水線的動(dòng)作,還能模擬多個(gè)處理器核之間的動(dòng)作;以組件化為出發(fā)點(diǎn),將多核體系結(jié)構(gòu)的組成部件封裝為組件,保證以組件為單位的組裝配置,有較好的靈活性。
文檔編號(hào)G06F9/455GK101290582SQ20081006216
公開日2008年10月22日 申請(qǐng)日期2008年6月3日 優(yōu)先權(quán)日2008年6月3日
發(fā)明者嚴(yán)力科, 馮德貴, 施青松, 章鐵飛, 威 胡, 斌 謝, 度 陳, 陳天洲, 項(xiàng)凌祥, 黃江偉 申請(qǐng)人:浙江大學(xué)