亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

模擬多處理器系統(tǒng)的系統(tǒng)和方法

文檔序號(hào):6574292閱讀:164來(lái)源:國(guó)知局
專利名稱:模擬多處理器系統(tǒng)的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及多處理器系統(tǒng)的模擬,尤其涉及用于模擬多處理器系 統(tǒng)的模擬系統(tǒng)和方法。
背景技術(shù)
周期精確模擬器(cycle-accurate simulator)是評(píng)估多處理器系 統(tǒng)的候選設(shè)計(jì)的重要工具。隨著處理器數(shù)目的增加,傳統(tǒng)的順序模擬 技術(shù)暴露出速度極慢的缺點(diǎn)。具有更高速度的并行模擬技術(shù)是對(duì)順序 模擬技術(shù)的自然擴(kuò)展。然而并行模擬技術(shù)的問(wèn)題在于,由于各并行分 支以各自的進(jìn)度執(zhí)行模擬,需要保證以全局一致的順序來(lái)進(jìn)行存儲(chǔ)器 訪問(wèn),即使得各自的存儲(chǔ)器訪問(wèn)與全局進(jìn)度(全局時(shí)間)同步。例如, 假設(shè)使用包含主處理器a、 b的并行模擬系統(tǒng)對(duì)兩個(gè)處理器A、 B的行 為進(jìn)行模擬,其中處理器A被模擬為通過(guò)主處理器a來(lái)寫入存儲(chǔ)器單 元c,而處理器B被模擬為通過(guò)主處理器b來(lái)讀取存儲(chǔ)器單元c。于 是必須以全局一致的順序來(lái)同步這些存儲(chǔ)器訪問(wèn),否則會(huì)導(dǎo)致錯(cuò)誤的 結(jié)果。解決該問(wèn)題的傳統(tǒng)方式包括1)逐周期同步(per-cycle synchronization )(參見(jiàn)David A. Penry Daniel Fay, DavidHodgdon, Ryan Wells, Graham Schelle, David I. August和Daniel A. Connors的"Exploiting Parallelism and Structure to Accelerate the Simulation of Chip Multi-processors", Proceedings of the Twelfth International Symposium on High-Performance Computer Architecture (HPCA), February 2006)。在這種技術(shù)中,在每個(gè)周期開(kāi)始時(shí)同步所有被模擬的處理器。由于周期是最小時(shí)間單位, 因此能夠保證正確性。然而由于模擬粒度過(guò)細(xì),導(dǎo)致模擬開(kāi)銷極高, 大大降低了整個(gè)模擬的速度.2 )柵障同步(barrier synchronization )(參見(jiàn)M. Chidister和 A.George的 "ParallelSimulationof Chipmultiprocessorarchitectures", ACM Transactions on Modeling and Computer Simulation, 12(3):176畫200, July 2002)。在這種技術(shù)中,每t個(gè)時(shí)間單 位對(duì)所有被模擬的處理器進(jìn)行同步,這t個(gè)時(shí)間單位的總和必須小于 存儲(chǔ)器訪問(wèn)時(shí)延,以保證正確性。然而由于存儲(chǔ)器訪問(wèn)時(shí)延通常是周 期級(jí)的,因此同步開(kāi)銷仍然較高。3 )基于存儲(chǔ)器訪問(wèn)的同步(參見(jiàn)M. Chidister和A. George的 "Parallel Simulation of Chipmultiprocessor architectures", ACM Transactions on Modeling and Computer Simulation, 12(3):176-200, July 2002)。在這種技術(shù)中,每當(dāng)遇到存儲(chǔ)器訪問(wèn)時(shí)對(duì)所有被模擬的 處理器進(jìn)行同步。然而統(tǒng)計(jì)數(shù)據(jù)表明,所有指令中只有30%到40%的 指令是存儲(chǔ)器訪問(wèn)指令。因此同步的時(shí)間開(kāi)銷仍然較高。圖2示出了常規(guī)周期精確模擬器的一般功能結(jié)構(gòu)。如圖2所示, 周期精確模擬器20通常包括取指模塊21、譯碼模塊22、提交模塊23、 功能單元24、回寫模塊25、確認(rèn)模塊26、存儲(chǔ)器管理單元(MMU: Memory Management Unit) 27和存儲(chǔ)器層次結(jié)構(gòu)28。例如,周期精 確模擬器20中所示的模塊和單元可通過(guò)硬件及/或軟件來(lái)實(shí)現(xiàn)。可通 過(guò)分時(shí)或并行體系結(jié)構(gòu)來(lái)并行模擬多處理器系統(tǒng)。常規(guī)周期精確模擬 器的實(shí)例可從美國(guó)Michigan州Ann Arbor的SimpleScalar LLC乂〉司 (http:〃www.simplescalar.com/) 獲得(Sim-Outorder工具包)。與周期精確模擬器相比,功能模擬器由于考慮的微觀體系結(jié)構(gòu)細(xì) 節(jié)較少而速度較快,并且仍然能夠達(dá)到相同的存儲(chǔ)器訪問(wèn)效果。圖1 示出了常規(guī)功能模擬器的一般功能結(jié)構(gòu)。如圖1所示,功能模擬器IO 通常包括取指模塊ll、譯碼模塊12、執(zhí)行模塊13、確認(rèn)模塊14、存 儲(chǔ)器管理單元(MMU) 15和存儲(chǔ)器層次結(jié)構(gòu)16。例如功能模擬器20 中所示的模塊和單元可通過(guò)硬件及/或軟件來(lái)實(shí)現(xiàn)??赏ㄟ^(guò)分時(shí)或并行 體系結(jié)構(gòu)來(lái)并行模擬多處理器系統(tǒng)。常規(guī)功能模擬器的實(shí)例可從美國(guó) Michigan州AnnArbor的SimpleScalarLLC公司(http:〃www.simplescalar.com/)獲得(Sim-Fast工具包)。 發(fā)明內(nèi)容鑒于上述情況,本發(fā)明的目的是提供一種用于模擬多處理器系統(tǒng) 的模擬系統(tǒng)和方法,以提高周期精確模擬器的執(zhí)行速度。本發(fā)明基于這樣的認(rèn)識(shí),即多數(shù)來(lái)自不同被模擬的處理器的存儲(chǔ) 器訪問(wèn)是不發(fā)生沖突的,因此對(duì)所有存儲(chǔ)器訪問(wèn)進(jìn)行同步的保守策略 會(huì)浪費(fèi)大量處理時(shí)間。如果能夠識(shí)別出可能發(fā)生沖突的存儲(chǔ)器訪問(wèn)并 且只對(duì)這些存儲(chǔ)器訪問(wèn)執(zhí)行同步,則會(huì)大大降低同步開(kāi)銷。由于功能 模擬器能夠更加快速地執(zhí)行并且能夠進(jìn)行相同的存儲(chǔ)器訪問(wèn),因此可 先通過(guò)功能模擬器的執(zhí)行來(lái)識(shí)別出可能發(fā)生沖突的存儲(chǔ)器訪問(wèn)。本發(fā)明提供了 一種用于模擬多處理器系統(tǒng)的模擬系統(tǒng),包括功能 模擬器和并行周期精確模擬器,所述功能模塊器還包括訪問(wèn)記錄提取 模塊,用于獲得指令的存儲(chǔ)器訪問(wèn)記錄,所述并行周期精確模擬器的 每個(gè)并行模擬單元還包括存儲(chǔ)器訪問(wèn)控制模塊,用于提供標(biāo)識(shí)導(dǎo)致訪 問(wèn)存儲(chǔ)器層次結(jié)構(gòu)的指令的信息,并且所述模擬系統(tǒng)還包括同步控制 系統(tǒng),該同步控制系統(tǒng)包括識(shí)別裝置,用于根據(jù)所述功能模擬器在 模擬所述多處理器系統(tǒng)對(duì)一可執(zhí)行程序的執(zhí)行時(shí)由所述訪問(wèn)記錄提取 模塊提供的指令存儲(chǔ)器訪問(wèn)記錄,識(shí)別出需要同步其存儲(chǔ)器訪問(wèn)的指 令的集合;和同步裝置,用于根據(jù)所述存儲(chǔ)器訪問(wèn)控制模塊提供的所 述信息確定所述并行模擬單元對(duì)一個(gè)所述集合中指令的執(zhí)行,使得所 述指令的存儲(chǔ)器訪問(wèn)按照該指令的全局模擬時(shí)間所對(duì)應(yīng)的順序來(lái)執(zhí) 行,其中所述存儲(chǔ)器訪問(wèn)控制模塊在所述同步完成之前掛起相應(yīng)存儲(chǔ) 器訪問(wèn)的執(zhí)行,并且響應(yīng)所述同步裝置的控制而恢復(fù)被桂起的存儲(chǔ)器 訪問(wèn)的執(zhí)行。本發(fā)明還提供了 一種在用于模擬多處理器系統(tǒng)的模擬系統(tǒng)中進(jìn) 行存儲(chǔ)器訪問(wèn)同步控制的方法,所述模擬系統(tǒng)包括功能模擬器和周期 精確模擬器,該方法包括步驟通過(guò)所述功能模擬器模擬所述多處理 器系統(tǒng)對(duì)一可執(zhí)行程序的執(zhí)行,其中獲得指令的存儲(chǔ)器訪問(wèn)記錄;根據(jù)所述指令存儲(chǔ)器訪問(wèn)記錄,識(shí)別出需要同步其存儲(chǔ)器訪問(wèn)的指令的集合;和通過(guò)所述并行周期精確模擬器模擬所述多處理器系統(tǒng)對(duì)該可 執(zhí)行程序的執(zhí)行,其中由所述并行周期精確模擬器的每個(gè)并行模擬單 元提供標(biāo)識(shí)導(dǎo)致訪問(wèn)存儲(chǔ)器層次結(jié)構(gòu)的指令的信息,根據(jù)所述信息確 定所述并行模擬單元對(duì)一個(gè)所述集合中指令的執(zhí)行,使得所述指令的 存儲(chǔ)器訪問(wèn)按照該指令的全局模擬時(shí)間所對(duì)應(yīng)的順序來(lái)執(zhí)行,并且其 中所述并行模擬單元在所述同步完成之前掛起相應(yīng)存儲(chǔ)器訪問(wèn)的執(zhí) 行,并且按照所述順序恢復(fù)被掛起的存儲(chǔ)器訪問(wèn)的執(zhí)行。本發(fā)明還提供一種包含執(zhí)行上述方法的計(jì)算機(jī)程序的計(jì)算機(jī)程 序產(chǎn)品。根據(jù)本發(fā)明,由于能夠通過(guò)功能模擬器的模擬來(lái)確定可能發(fā)生沖 突的存儲(chǔ)器訪問(wèn),因此在之后的周期精確模擬器的模擬中避免對(duì)所有 存儲(chǔ)器訪問(wèn)的同步,因此大大降低了同步開(kāi)銷,提高了模擬速度。


被說(shuō)明書引用并且構(gòu)成說(shuō)明書組成部分的附解了本發(fā)明的 實(shí)施例,并且和前面的概括說(shuō)明、下面針對(duì)實(shí)施例的詳細(xì)描述一起被 用來(lái)說(shuō)明本發(fā)明的原理,其中圖l是表示現(xiàn)有技術(shù)的功能模擬器的一般功能結(jié)構(gòu)的模塊圖; 圖2是表示出有技術(shù)的周期精確模擬器的一般功能結(jié)構(gòu)的模塊圖;圖3是例示基于本發(fā)明實(shí)施例的模擬系統(tǒng)的 一般功能結(jié)構(gòu)的模塊圖;圖4是例示基于本發(fā)明實(shí)施例的模擬方法的 一般過(guò)程的流程圖; 圖5是更詳細(xì)地例示出圖4的步驟S5中存儲(chǔ)器訪問(wèn)同步的控制 過(guò)程的流程圖。
具體實(shí)施方式
下面將結(jié)合具體實(shí)施方式
來(lái)說(shuō)明本發(fā)明的技術(shù)方案.在下面的描述中,給出了某些具體細(xì)節(jié)以便提供對(duì)本發(fā)明實(shí)施例的充分理解。不 過(guò),本領(lǐng)域技術(shù)人員可知,沒(méi)有這些細(xì)節(jié)也能實(shí)現(xiàn)本發(fā)明。在其他情 況下,沒(méi)有詳細(xì)表示或描述與計(jì)算機(jī)、處理器等等有關(guān)的公知結(jié)構(gòu), 以避免不必要地干擾對(duì)本發(fā)明實(shí)施例的描述。應(yīng)該理解,以下實(shí)施例中完成預(yù)定處理的部分可通過(guò)硬件及/或 軟件實(shí)現(xiàn)。例如,利用一個(gè)或多個(gè)處理模塊上所執(zhí)行的軟件及/或固件 可執(zhí)行的特定的處理。通常,用于執(zhí)行處理的系統(tǒng)可包含更多常規(guī)處 理模塊及存儲(chǔ)器。處理模塊可以是單一處理設(shè)備或多個(gè)處理設(shè)備。這 樣的處理設(shè)備可以是微處理器、微控制器、數(shù)字處理器、微型計(jì)算機(jī)、 中央處理單元的部分、狀態(tài)機(jī)、邏輯電路及/或操作信號(hào)的任何設(shè)備。 存儲(chǔ)器可以是單一存儲(chǔ)器器件或多個(gè)存儲(chǔ)器器件。這樣的存儲(chǔ)器器件 可以是只讀存儲(chǔ)器、隨機(jī)訪問(wèn)存儲(chǔ)器、軟盤存儲(chǔ)器、磁帶存儲(chǔ)器、可 擦除存儲(chǔ)器、系統(tǒng)存儲(chǔ)器的部分,及/或以數(shù)字格式存儲(chǔ)操作指令的任 何設(shè)備.注意到,當(dāng)處理模塊實(shí)現(xiàn)一個(gè)或多個(gè)其功能成為狀態(tài)機(jī)或邏 輯電路時(shí),以相應(yīng)操作指令方式存儲(chǔ)的存儲(chǔ)器被嵌入在包括該狀態(tài)機(jī) 及/或其他邏輯電路的電路內(nèi)。例如,這樣的系統(tǒng)可以是具有可編譯存 儲(chǔ)器單元以利于存儲(chǔ)器的實(shí)現(xiàn)的電路設(shè)計(jì)工具。除非內(nèi)容需要,否則在后面的說(shuō)明書和權(quán)利要求書中,詞語(yǔ)"包括,,及其類似表述被解釋成開(kāi)放性的"包含"的意思,即"包括,但不限 于"'圖3是示出基于本發(fā)明實(shí)施例的模擬系統(tǒng)的一般功能結(jié)構(gòu)的模塊 圖.如圖3所示,模擬系統(tǒng)50包括功能模擬器10'、周期精確模擬器 20'和基于線索的同步控制系統(tǒng)40。圖4是示出基于本發(fā)明實(shí)施例的模擬方法的一般過(guò)程的流程圖。 如圖3所示,功能模擬器IO,包括取指模塊11、譯碼模塊12、執(zhí) 行模塊13、確認(rèn)模塊14、 MMU 15'和存儲(chǔ)器層次結(jié)構(gòu)16。取指模塊 11用于取得要執(zhí)行的指令并且將指令提供給譯碼模塊12。譯碼模塊 12理解所獲取的指令的語(yǔ)義并且傳送給執(zhí)行模塊13。執(zhí)行模塊13用 于根據(jù)其語(yǔ)義來(lái)執(zhí)行所譯碼的指令,并且經(jīng)由MMU15,來(lái)回寫所修改的存儲(chǔ)器單元的新值,或經(jīng)由確認(rèn)模塊14來(lái)回寫所修改的寄存器的新 值。確認(rèn)模塊14用于回寫所修改的寄存器的新值,并且更新程序計(jì)數(shù) 器以便使取指模塊11取得下一指令。MMU 15,用于將目標(biāo)虛擬存儲(chǔ) 器空間映射到目標(biāo)物理存儲(chǔ)器空間,并且對(duì)于所有存儲(chǔ)器相關(guān)指令均 是必要的。存儲(chǔ)器層次結(jié)構(gòu)16用于模擬目標(biāo)系統(tǒng)的存儲(chǔ)器層次結(jié)構(gòu), 例如專用一級(jí)高速緩存和共享二級(jí)高速緩存,并且將目標(biāo)物理空間映 射到本模擬器的主存儲(chǔ)器空間。與現(xiàn)有技術(shù)的功能模擬器相比,本發(fā)明實(shí)施例中的功能模擬器包 括獲得指令的存儲(chǔ)器訪問(wèn)記錄的訪問(wèn)記錄提取模塊。在下面討論的例 子中,該模塊設(shè)置在MMU 15'中。當(dāng)執(zhí)行模塊13執(zhí)行一條指令的語(yǔ) 義時(shí),如果其語(yǔ)義包括訪問(wèn)存儲(chǔ)器層次結(jié)構(gòu)16,則通過(guò)MMU 15,進(jìn) 行存儲(chǔ)器訪問(wèn)。響應(yīng)于此,與MMU15'相關(guān)聯(lián)的訪問(wèn)記錄提取模塊提 取有關(guān)該指令的信息,即存儲(chǔ)器訪問(wèn)記錄,包括執(zhí)行該指令的CPU的 標(biāo)識(shí)、該指令的標(biāo)識(shí)和所訪問(wèn)的存儲(chǔ)器位置的地址。根據(jù)功能模擬器 的實(shí)現(xiàn)所基于的硬軟件體系結(jié)構(gòu)和操作系統(tǒng)類型,可采用各種方式來(lái) 實(shí)現(xiàn)上述訪問(wèn)記錄提取模塊的功能。例如在釆用WINDOWS操作系 統(tǒng)的情況下,可利用鉤子(hook)機(jī)制來(lái)截取MMU15'進(jìn)行存儲(chǔ)器訪 問(wèn)的事件,進(jìn)而獲取存儲(chǔ)器訪問(wèn)記錄的信息。該模塊也可設(shè)置在MMU 15,之外。如圖4所示,本發(fā)明的方法首先在步驟Sl,通過(guò)用功能模擬器 IO,模擬程序的執(zhí)行,由訪問(wèn)記錄提取模塊獲得存儲(chǔ)器訪問(wèn)記錄。如圖3所示,基于線索的同步控制系統(tǒng)40包括線索產(chǎn)生器41、 線索數(shù)據(jù)庫(kù)42和同步裝置43。同步控制系統(tǒng)40可基于計(jì)算機(jī)來(lái)實(shí)現(xiàn)。如圖4所示,當(dāng)功能模擬器10'對(duì)可執(zhí)行程序的模擬執(zhí)行完畢時(shí), 接著在步驟S2,同步控制系統(tǒng)40的線索產(chǎn)生器41獲得由功能模擬器 10'提取的存儲(chǔ)器訪問(wèn)記錄??赏ㄟ^(guò)直接通信或中間存儲(chǔ)來(lái)實(shí)現(xiàn)同步控 制系統(tǒng)40與功能模擬器10,之間存儲(chǔ)器訪問(wèn)記錄的傳送。接著在步驟 S3,線索產(chǎn)生器41對(duì)所累積的存儲(chǔ)器訪問(wèn)記錄進(jìn)行分析,其中針對(duì)存 儲(chǔ)器訪問(wèn)記錄中出現(xiàn)的每個(gè)被訪問(wèn)存儲(chǔ)器單元的地址,在所累積的存儲(chǔ)器訪問(wèn)記錄中尋找不同處理器對(duì)相同存儲(chǔ)器單元地址的訪問(wèn)所涉及 的指令的集合。即針對(duì)該地址,確定所累積的存儲(chǔ)器訪問(wèn)記錄是否表 明有不同的處理器訪問(wèn)到該地址指示的存儲(chǔ)器單元。如果有,則找出 包舍所述不同處理器和該地址的所有存儲(chǔ)器訪問(wèn)記錄,這些存儲(chǔ)器訪 問(wèn)記錄中標(biāo)識(shí)的指令便構(gòu)成這樣的一個(gè)集合。求出這樣的集合的方法可能有各種變型。接著,在步驟S4,線索產(chǎn)生器41將所尋找出的這 樣的集合存儲(chǔ)在線索數(shù)據(jù)庫(kù)42中。如圖3所示,周期精確模擬器20'包括若干并行模擬單元20-1至 20-n.每個(gè)并行模擬單元模擬一個(gè)處理器,其工作流程類似于一個(gè)串 行周期精確模擬器。每個(gè)并行模擬單元都維護(hù)自己當(dāng)前的模擬時(shí)間。每個(gè)并行模擬單元包括取指模塊21、譯碼模塊22、提交模塊23、 功能單元24、回寫模塊25、確認(rèn)模塊26、 MMU 27'和存儲(chǔ)器層次結(jié) 構(gòu)28。取指模塊21用于取得要執(zhí)行的指令并且將指令提供給譯碼模 塊22。譯碼模塊22理解所獲取的指令的語(yǔ)義并且傳送給提交模塊23。 提交模塊23用于為指令分配臨時(shí)寄存器,即重命名寄存器,并且將寄 存器分配給相應(yīng)功能單元24。功能單元24用于根據(jù)其語(yǔ)義來(lái)執(zhí)行待 執(zhí)行的指令,并且經(jīng)由MMU27'來(lái)回寫所修改的存儲(chǔ)器單元的新值, 或經(jīng)由回寫模塊25和確認(rèn)模塊26來(lái)回寫所修改的寄存器的新值?;?寫模塊25用于回寫所修改的臨時(shí)寄存器,即重命名的寄存器的新值。 確認(rèn)模塊26用于回寫被指令修改的所修改寄存器的新值,并且更新程 序計(jì)數(shù)器以便使取指模塊21取得下一指令。MMU 27,用于將目標(biāo)虛 擬存儲(chǔ)器空間映射到目標(biāo)物理存儲(chǔ)器空間,并且對(duì)于所有存儲(chǔ)器相關(guān) 指令均是必要的。存儲(chǔ)器層次結(jié)構(gòu)28用于模擬目標(biāo)系統(tǒng)的存儲(chǔ)器層次 結(jié)構(gòu),例如專用一級(jí)高速緩存和共享二級(jí)高速緩存,并且將目標(biāo)物理 空間映射到本模擬單元的主存儲(chǔ)器空間。與功能模擬器中的執(zhí)行模塊 相比,周期精確模擬器的并行模擬單元中的提交模塊、功能單元和回 寫模塊可被認(rèn)為是更加復(fù)雜的流水線30。如圖4所示,在步驟S4之后,在步驟S5,由周期精確模擬器20' 的各并行模擬單元執(zhí)行上述可執(zhí)行程序.圖5是更詳細(xì)地示出圖4的步驟S5中存儲(chǔ)器訪問(wèn)同步的控制過(guò) 程的流程圖。與現(xiàn)有技術(shù)的并行周期精確模擬器相比,本發(fā)明實(shí)施例的周期精 確模擬器20'的并行模擬單元可包括存儲(chǔ)器訪問(wèn)控制模塊。在下面討論 的例子中,該模塊實(shí)現(xiàn)在MMU27'中。如圖5所示,在步驟SIO,同步裝置43從MMU 27'(即存儲(chǔ)器 訪問(wèn)控制模塊)獲得用于標(biāo)識(shí)導(dǎo)致訪問(wèn)存儲(chǔ)器層次結(jié)構(gòu)28的指令的信 息。當(dāng)功能單元24執(zhí)行一條指令的語(yǔ)義時(shí),如果其語(yǔ)義包括訪問(wèn)存儲(chǔ) 器層次結(jié)構(gòu)28,則通過(guò)MMU 27,進(jìn)行存儲(chǔ)器訪問(wèn)。響應(yīng)于此,由與 MMU 27'相關(guān)聯(lián)的存儲(chǔ)器訪問(wèn)控制模塊從MMU 27'提供有關(guān)該指令 的信息,即該指令的標(biāo)識(shí)。根據(jù)周期精確模擬器的實(shí)現(xiàn)所基于的硬軟 件體系結(jié)構(gòu)和操作系統(tǒng)類型,可采用各種方式來(lái)收集和提供指令的標(biāo) 識(shí)信息。例如在采用WINDOWS操作系統(tǒng)的情況下,可利用鉤子 (hook)機(jī)制來(lái)截取MMU 27'進(jìn)行存儲(chǔ)器訪問(wèn)的事件,進(jìn)而獲取該存 儲(chǔ)器訪問(wèn)所基于的指令的標(biāo)識(shí)信息。該存儲(chǔ)器訪問(wèn)控制模塊也可實(shí)現(xiàn) 在MMU 27'之外。可選地,上述MMU 15'和MMU 27'提供的標(biāo)識(shí)指令的信息可以 基于可執(zhí)行程序映像的指令地址。需要注意,在MMU 27,實(shí)際執(zhí)行存儲(chǔ)器訪問(wèn)之前向同步裝置43 提供指令標(biāo)識(shí)信息,此時(shí)存儲(chǔ)器訪問(wèn)控制模塊使得MMU27'的實(shí)際存 儲(chǔ)器訪問(wèn)被掛起,直至同步裝置43在步驟S11完成同步處理。在步驟Sll,當(dāng)同步裝置43收到來(lái)自 一個(gè)并行模擬單元的MMU 的指令標(biāo)識(shí)信息時(shí),將其與線索數(shù)據(jù)庫(kù)42中存儲(chǔ)的各集合中的指令標(biāo) 識(shí)信息相比較,如果與一個(gè)集合中的指令標(biāo)識(shí)信息匹配,則識(shí)別出該 MMU的要執(zhí)行的存儲(chǔ)器訪問(wèn)需要同步,并對(duì)該存儲(chǔ)器訪問(wèn)執(zhí)行同步 控制。同步裝置43負(fù)責(zé)維護(hù)并行周期精確模擬器的全局模擬時(shí)間。全局模擬時(shí)間等于所有并行模擬單元模擬時(shí)間的最小值。同步裝置43 可以通過(guò)檢查所有并行模擬單元的當(dāng)前模擬時(shí)間并比較出最小值來(lái)獲得全局模擬時(shí)間。作為一個(gè)例子,當(dāng)同步裝置43收到來(lái)自一個(gè)并行模擬單元的 MMU的指令標(biāo)識(shí)信息并確定相應(yīng)指令的執(zhí)行需要同步時(shí),同步裝置 43會(huì)首先阻塞當(dāng)前處理器的MMU模擬工作,等待該處理器的虛擬時(shí) 間等于全局虛擬時(shí)間,然后通知繼續(xù)其MMU模擬工作。在本并行模 擬系統(tǒng)中,MMU的模擬工作流程與串行模擬器中MMU完全一致。 同步裝置因而起到調(diào)整MMU模擬動(dòng)作的發(fā)生時(shí)間的作用,但不會(huì)改 變MMU內(nèi)部工作機(jī)制。舉例說(shuō)明,假設(shè)一個(gè)并行模擬器有3個(gè)并行模擬單元處理器 P0、 Pl和P2。 P0的模擬時(shí)間為100秒,Pl的模擬時(shí)間為101秒, P2的模擬時(shí)間為102秒,則此時(shí)的全局模擬時(shí)間為100秒。假設(shè)此時(shí) P0, P1和P2執(zhí)行的指令均在線索數(shù)據(jù)庫(kù)中被標(biāo)記為需要同步,則其 執(zhí)行均被同步裝置43掛起。此時(shí)同步裝置43確定Pl和P2必須等待, 因?yàn)樗鼈兊哪M時(shí)間大于全局模擬時(shí)間,而P0可以開(kāi)始它的MMU 仿真動(dòng)作,因?yàn)樗哪M時(shí)間等于全局模擬時(shí)間。假設(shè)PO完成MMU 仿真動(dòng)作后時(shí)間為103秒,而此時(shí)全局模擬時(shí)間增長(zhǎng)為101秒,于是 同步裝置43確定P1也可以開(kāi)始它的MMU仿真動(dòng)作,而P2仍然需 要等待。再假設(shè)Pl完成MMU仿真動(dòng)作后時(shí)間為104秒,而此時(shí)全 局模擬時(shí)間變?yōu)?02秒,于是同步裝置43確定P2也可以開(kāi)始其MMU 仿真動(dòng)作。作為一種可選方式,當(dāng)并行模擬單元的MMU執(zhí)行一條指令時(shí), 存儲(chǔ)器訪問(wèn)控制模塊首先查詢線索數(shù)據(jù)庫(kù),看這條指令是否需要同步。 如果不需要同步,則可以直接執(zhí)行相應(yīng)的MMU模擬操作,否則,存 儲(chǔ)器訪問(wèn)控制模塊使得該并行模擬單元的MMU自行阻塞該指令的執(zhí) 行,并且等到它的模擬時(shí)間等于全局模擬時(shí)間時(shí)才能繼續(xù)相應(yīng)的操作。 這種方式即所謂的自治方式。在這種情況下,同步裝置只需要維護(hù)全 局模擬時(shí)間,或者可以省略同步裝置,而由MMU的存儲(chǔ)器訪問(wèn)控制 模塊自行獲得全局模擬時(shí)間(例如以所有MMU的當(dāng)前模擬時(shí)間的最 小值為全局模擬時(shí)間)。雖然前面將存儲(chǔ)集合的設(shè)備描述為線索數(shù)據(jù)庫(kù),然而也可以釆用 本領(lǐng)域所知的其它手段來(lái)存儲(chǔ),并且該存儲(chǔ)功能可以獨(dú)立存在,也可以集成在功能模擬器或周期精確模擬器中。類似地,線索產(chǎn)生器也可 集成在功能模擬器內(nèi),同步裝置可集成在周期精確模擬器內(nèi)。更進(jìn)一步地,雖然前面的實(shí)施例中將功能模擬器,周期精確模擬 器和同步控制系統(tǒng)描述為分立的部分,然而本領(lǐng)域技術(shù)人員明白,在 具體的實(shí)現(xiàn)中,能夠?qū)⑵淙我獾亟M合。雖然前面的實(shí)施例中將并行模 擬單元描述為分立的部分,然而在具體實(shí)現(xiàn)中,可以采用集中式或分 布式的并行計(jì)算技術(shù)來(lái)實(shí)施。另外,前面實(shí)施例中各單元之間的通信可采用諸如總線、網(wǎng)絡(luò)、共享存儲(chǔ)器、DMA、中斷、消息、管道、事 件、專用連接等等的有線或無(wú)線方式的通信技術(shù)。雖然在實(shí)施例中將集合的識(shí)別準(zhǔn)則確定為不同處理器對(duì)相同存 儲(chǔ)器地址的訪問(wèn),然而可根據(jù)具體實(shí)施來(lái)設(shè)計(jì)其它的識(shí)別準(zhǔn)則。優(yōu)選 地,所識(shí)別的集合應(yīng)包括至少導(dǎo)致寫訪問(wèn)的至少一個(gè)指令。以上所揭示的內(nèi)容是將被考慮為說(shuō)明性的,而不是限制性的,并 且附加的權(quán)利要求意欲涵蓋所有屬于本發(fā)明的真實(shí)精神及范圍的這類 修改、改進(jìn)及其他實(shí)施例。因此,以法律所允許的最大程度,本發(fā)明 的范圍將由以下權(quán)利要求及其等同的最廣泛可容許的解釋來(lái)確定,并 且不應(yīng)由上述具體實(shí)施方式
約束或限制。
權(quán)利要求
1. 一種用于模擬多處理器系統(tǒng)的模擬系統(tǒng),包括功能模擬器和并行周期精確模擬器,其特征在于,所述功能模塊器還包括訪問(wèn)記錄提取模塊,用于獲得指令的存儲(chǔ)器訪問(wèn)記錄,所述并行周期精確模擬器的每個(gè)并行模擬單元還包括存儲(chǔ)器訪問(wèn)控制模塊,用于提供標(biāo)識(shí)導(dǎo)致訪問(wèn)存儲(chǔ)器層次結(jié)構(gòu)的指令的信息,并且所述模擬系統(tǒng)還包括同步控制系統(tǒng),該同步控制系統(tǒng)包括識(shí)別裝置,用于根據(jù)所述功能模擬器在模擬所述多處理器系統(tǒng)對(duì)一可執(zhí)行程序的執(zhí)行時(shí)由所述訪問(wèn)記錄提取模塊提供的指令存儲(chǔ)器訪問(wèn)記錄,識(shí)別出需要同步其存儲(chǔ)器訪問(wèn)的指令的集合;和同步裝置,用于根據(jù)所述存儲(chǔ)器訪問(wèn)控制模塊提供的所述信息確定所述并行模擬單元對(duì)一個(gè)所述集合中指令的執(zhí)行,使得所述指令的存儲(chǔ)器訪問(wèn)按照該指令的全局模擬時(shí)間所對(duì)應(yīng)的順序來(lái)執(zhí)行,其中所述存儲(chǔ)器訪問(wèn)控制模塊在所述同步完成之前掛起相應(yīng)存儲(chǔ)器訪問(wèn)的執(zhí)行,并且響應(yīng)所述同步裝置的控制而恢復(fù)被掛起的存儲(chǔ)器訪問(wèn)的執(zhí)行。
2. 根據(jù)權(quán)利要求1的用于模擬多處理器系統(tǒng)的模擬系統(tǒng),其特 征在于所述訪問(wèn)記錄提取模塊與所述功能模擬器的存儲(chǔ)器管理單元相 關(guān)聯(lián)。
3. 根據(jù)權(quán)利要求1的用于模擬多處理器系統(tǒng)的模擬系統(tǒng),其特 征在于所述指令存儲(chǔ)器訪問(wèn)記錄包括標(biāo)識(shí)執(zhí)行其所涉及的指令的處理 器、該指令、其所涉及的被訪問(wèn)存儲(chǔ)器位置的信息。
4. 根據(jù)權(quán)利要求3的用于模擬多處理器系統(tǒng)的模擬系統(tǒng),其特 征在于所述識(shí)別裝置被進(jìn)一步構(gòu)造成將所述集合識(shí)別為不同處理器執(zhí) 行的訪問(wèn)相同存儲(chǔ)器位置的指令的集合。
5. 根據(jù)權(quán)利要求4的用于模擬多處理器系統(tǒng)的模擬系統(tǒng),其特征在于所述指令存儲(chǔ)器訪問(wèn)記錄還包括用于標(biāo)識(shí)存儲(chǔ)器訪問(wèn)的讀寫類 型的信息,并且所述識(shí)別裝置被進(jìn)一步構(gòu)造成將所述集合識(shí)別為包括 至少導(dǎo)致寫訪問(wèn)的至少 一個(gè)指令的集合。
6. 根據(jù)權(quán)利要求1的用于模擬多處理器系統(tǒng)的模擬系統(tǒng),其特 征在于所述同步控制系統(tǒng)還包括存儲(chǔ)裝置,用于存儲(chǔ)所述集合。
7. 根據(jù)權(quán)利要求1的用于模擬多處理器系統(tǒng)的模擬系統(tǒng),其特 征在于所述存儲(chǔ)器訪問(wèn)控制模塊裝置與其所屬的并行模擬單元的存儲(chǔ) 器管理單元相關(guān)聯(lián)。
8. —種在用于模擬多處理器系統(tǒng)的模擬系統(tǒng)中進(jìn)行存儲(chǔ)器訪問(wèn) 同步控制的方法,所述模擬系統(tǒng)包括功能模擬器和周期精確模擬器, 其特征在于包括步驟通過(guò)所述功能模擬器模擬所述多處理器系統(tǒng)對(duì)一可執(zhí)行程序的 執(zhí)行,其中獲得指令的存儲(chǔ)器訪問(wèn)記錄;根據(jù)所述指令存儲(chǔ)器訪問(wèn)記錄,識(shí)別出需要同步其存儲(chǔ)器訪問(wèn)的 指令的集合;和通過(guò)所述并行周期精確模擬器模擬所述多處理器系統(tǒng)對(duì)該可執(zhí) 行程序的執(zhí)行,其中由所述并行周期精確模擬器的每個(gè)并行模擬單元 提供標(biāo)識(shí)導(dǎo)致訪問(wèn)存儲(chǔ)器層次結(jié)構(gòu)的指令的信息,根據(jù)所述信息確定 所述并行模擬單元對(duì)一個(gè)所述集合中指令的執(zhí)行,使得所述指令的存 儲(chǔ)器訪問(wèn)按照該指令的全局模擬時(shí)間所對(duì)應(yīng)的順序來(lái)執(zhí)行,并且其中所述并行模擬單元在所述同步完成之前掛起相應(yīng)存儲(chǔ)器訪 問(wèn)的執(zhí)行,并且按照所述順序恢復(fù)被掛起的存儲(chǔ)器訪問(wèn)的執(zhí)行。
9. 根據(jù)權(quán)利要求8的進(jìn)行存儲(chǔ)器訪問(wèn)同步控制的方法,其特征 在于所述獲得步驟由所述功能模擬器的存儲(chǔ)器管理單元來(lái)執(zhí)行。
10. 根據(jù)權(quán)利要求8的進(jìn)行存儲(chǔ)器訪問(wèn)同步控制的方法,其特征 在于所述指令存儲(chǔ)器訪問(wèn)記錄包括標(biāo)識(shí)執(zhí)行其所涉及的指令的處理 器、該指令、其所涉及的被訪問(wèn)存儲(chǔ)器位置的信息。
11. 根據(jù)權(quán)利要求10的進(jìn)行存儲(chǔ)器訪問(wèn)同步控制的方法,其特 征在于所述識(shí)別步驟還包括將所述集合識(shí)別為不同處理器執(zhí)行的訪問(wèn)相同存儲(chǔ)器位置的指令的集合。
12. 根據(jù)權(quán)利要求11的進(jìn)行存儲(chǔ)器訪問(wèn)同步控制的方法,其特 征在于所述指令存儲(chǔ)器訪問(wèn)記錄還包括用于標(biāo)識(shí)存儲(chǔ)器訪問(wèn)的讀寫類 型的信息,并且所述識(shí)別步驟還包括成將所述集合識(shí)別為包括至少導(dǎo) 致寫訪問(wèn)的至少一個(gè)指令的集合。
13. 根據(jù)權(quán)利要求8的進(jìn)行存儲(chǔ)器訪問(wèn)同步控制的方法,其特征 在于還包括存儲(chǔ)所述集合的步驟。
14. 根據(jù)權(quán)利要求8的進(jìn)行存儲(chǔ)器訪問(wèn)同步控制的方法,其特征 在于所述提供標(biāo)識(shí)導(dǎo)致訪問(wèn)存儲(chǔ)器層次結(jié)構(gòu)的指令的信息的步驟由所 述并行模擬單元的存儲(chǔ)器管理單元執(zhí)行。
全文摘要
公開(kāi)了一種模擬多處理器系統(tǒng)的系統(tǒng)和方法。該模擬系統(tǒng)中,功能模塊器包括獲得指令存儲(chǔ)器訪問(wèn)記錄的訪問(wèn)記錄提取模塊,并行周期精確模擬器的每個(gè)并行模擬單元包括提供標(biāo)識(shí)導(dǎo)致訪問(wèn)存儲(chǔ)器層次結(jié)構(gòu)的指令的信息的存儲(chǔ)器訪問(wèn)控制模塊,同步控制系統(tǒng)具有識(shí)別裝置,用于根據(jù)功能模擬器模擬多處理器系統(tǒng)對(duì)可執(zhí)行程序的執(zhí)行時(shí)由提取模塊提供的指令存儲(chǔ)器訪問(wèn)記錄,識(shí)別需要同步存儲(chǔ)器訪問(wèn)的指令的集合;和同步裝置,用于根據(jù)所述信息確定并行模擬單元對(duì)一個(gè)集合中指令的執(zhí)行,使得指令的存儲(chǔ)器訪問(wèn)按照該指令的全局模擬時(shí)間所對(duì)應(yīng)的順序來(lái)執(zhí)行,訪問(wèn)控制模塊在同步完成前掛起相應(yīng)存儲(chǔ)器訪問(wèn)的執(zhí)行,響應(yīng)同步裝置的控制恢復(fù)被掛起的存儲(chǔ)器訪問(wèn)的執(zhí)行。
文檔編號(hào)G06F9/455GK101256502SQ20071008432
公開(kāi)日2008年9月3日 申請(qǐng)日期2007年2月27日 優(yōu)先權(quán)日2007年2月27日
發(fā)明者誠(chéng) 楊, 鯤 王, 王華勇 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1