欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多處理器結(jié)構(gòu)的模擬方法及模擬器的制作方法

文檔序號(hào):6335510閱讀:195來(lái)源:國(guó)知局
專利名稱:多處理器結(jié)構(gòu)的模擬方法及模擬器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種多處理器結(jié)構(gòu)的模擬方法及模擬
O
背景技術(shù)
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)建模是用于實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu),通過(guò)模擬器模擬計(jì)算機(jī)系統(tǒng)的行為,在學(xué)術(shù)界和產(chǎn)業(yè)界有著廣泛的應(yīng)用。通過(guò)對(duì)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)建模,研究者還可以用可配置的結(jié)構(gòu)形式來(lái)考察目標(biāo)機(jī)軟件在被模擬的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)上執(zhí)行時(shí)的行為與特征, 使得在真實(shí)計(jì)算機(jī)系統(tǒng)平臺(tái)能夠使用以前,盡早發(fā)現(xiàn)計(jì)算機(jī)結(jié)構(gòu)的設(shè)計(jì)問(wèn)題。計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)模擬器(簡(jiǎn)稱模擬器)即用來(lái)對(duì)計(jì)算機(jī)系統(tǒng)的行為進(jìn)行模擬。目前,模擬器在計(jì)算機(jī)系統(tǒng)的研發(fā)過(guò)程中扮演著非常重要的作用,在對(duì)下一代的計(jì)算機(jī)系統(tǒng)研發(fā)過(guò)程中,利用模擬器,可以在目標(biāo)系統(tǒng)未投入開(kāi)發(fā)前對(duì)其的性能進(jìn)行評(píng)估,分析系統(tǒng)的性能瓶頸或者找到最優(yōu)配置,從而對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行針對(duì)性的改進(jìn)。而且,模擬器還可以用于對(duì)目標(biāo)系統(tǒng)的系統(tǒng)軟件進(jìn)行開(kāi)發(fā),使得軟硬件開(kāi)發(fā)可以同時(shí)進(jìn)行,加快了目標(biāo)系統(tǒng)開(kāi)發(fā)速度。根據(jù)被模擬的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu),模擬器可以分為指令系統(tǒng)模擬器、主存系統(tǒng)模擬器、單處理器模擬器、共享多處理器結(jié)構(gòu)模擬器和多節(jié)點(diǎn)并行結(jié)構(gòu)模擬器等,共享多處理器結(jié)構(gòu)模擬器是一種重要的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)模擬器,是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)建模的重要基礎(chǔ)。模擬器具有三個(gè)比較重要的衡量指標(biāo),模擬速度、模擬精度和模擬靈活性。模擬速度指模擬器執(zhí)行模擬任務(wù)的快慢;模擬精度指模擬器模擬出的目標(biāo)系統(tǒng)和實(shí)際系統(tǒng)的接近程度;而模擬的靈活性則是指模擬器通過(guò)配置來(lái)模擬不同結(jié)構(gòu)的方便程度及是否具有多種執(zhí)行模式和靈活可配置的數(shù)據(jù)收集、顯示方式。但是模擬器的速度則貫穿整個(gè)設(shè)計(jì)開(kāi)發(fā)的始末,也是制約模擬器使用的最重要的因素。由于模擬器具有計(jì)算機(jī)結(jié)構(gòu)行為可見(jiàn)、開(kāi)發(fā)成本低、修改配置靈活、開(kāi)發(fā)周期短、 可以開(kāi)發(fā)和調(diào)試系統(tǒng)軟件等特點(diǎn),在很多方面都得到了廣泛的使用。因此越來(lái)越受到開(kāi)發(fā)者的喜愛(ài)。理想的模擬器應(yīng)該具有運(yùn)行速度快、模擬精度高、配置修改靈活等特點(diǎn),然而這三者之間是相互制約的,故,很難兼得。隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)系統(tǒng)規(guī)模正在發(fā)生重大變化,單處理器向多處理器方向迅猛發(fā)展,因此,可以運(yùn)行模擬器的宿主機(jī)的規(guī)模越來(lái)越大,而待模擬的目標(biāo)系統(tǒng)也越來(lái)越大。圖1為傳統(tǒng)的多處理器結(jié)構(gòu)模擬器模擬過(guò)程的示意圖,如圖1所示,傳統(tǒng)的多處理器結(jié)構(gòu)的模擬是由單個(gè)宿主進(jìn)程輪轉(zhuǎn)模擬多個(gè)目標(biāo)機(jī)(被模擬的計(jì)算機(jī)系統(tǒng))處理器的行為,往往需要幾周甚至幾個(gè)月才能完成一次模擬。若要縮短模擬的時(shí)間,則需要降低對(duì)模擬規(guī)模和準(zhǔn)確度的要求。而且,由于它的串行執(zhí)行特性,不能利用多處理器的宿主機(jī)(運(yùn)行模擬器的計(jì)算機(jī))平臺(tái)進(jìn)行加速模擬,特別是當(dāng)目標(biāo)機(jī)處理器個(gè)數(shù)較多時(shí),模擬器的耗時(shí)程度會(huì)更長(zhǎng),不能滿足多處理器結(jié)構(gòu)模擬時(shí)效的要求。由上述可以得知,現(xiàn)有的多處理器結(jié)構(gòu)的模擬方法不能有效地實(shí)現(xiàn)模擬的并行加速,且目標(biāo)機(jī)多處理器的模擬行為與實(shí)際硬件行為存在差異。申請(qǐng)?zhí)枮?01010103887.9的中國(guó)專利申請(qǐng)?zhí)峁┝艘环N片上多核處理器的并行功能仿真系統(tǒng)及其方法,但是其只是涉及了串行功能仿真技術(shù)中由于目標(biāo)系統(tǒng)核數(shù)增加而導(dǎo)致性能下降的問(wèn)題,對(duì)于上述技術(shù)問(wèn)題并未涉及。

發(fā)明內(nèi)容
本發(fā)明解決的是,現(xiàn)有的多處理器結(jié)構(gòu)的模擬方法不能有效地提高并行模擬的速度,以及目標(biāo)機(jī)多處理器的模擬行為與實(shí)際硬件行為存在差異的技術(shù)問(wèn)題。為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種多處理器結(jié)構(gòu)的模擬方法,利用多處理器宿主機(jī)對(duì)多處理器結(jié)構(gòu)目標(biāo)機(jī)的多個(gè)處理器的行為進(jìn)行模擬,包括如下步驟創(chuàng)建多個(gè)宿主進(jìn)程,分配每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器;其中,所述宿主進(jìn)程個(gè)數(shù)小于等于宿主機(jī)處理器的個(gè)數(shù),每個(gè)宿主進(jìn)程采用輪轉(zhuǎn)的方式對(duì)所分配的目標(biāo)機(jī)處理器執(zhí)行目標(biāo)機(jī)處理器節(jié)拍的行為模擬;并行執(zhí)行多個(gè)宿主進(jìn)程,每個(gè)宿主進(jìn)程對(duì)所分配的目標(biāo)機(jī)處理器的一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬后,該宿主進(jìn)程的節(jié)拍數(shù)加1 ;暫停執(zhí)行節(jié)拍數(shù)等于當(dāng)前的全局時(shí)鐘值的宿主進(jìn)程中對(duì)所分配的目標(biāo)機(jī)處理器的行為模擬;在所有宿主進(jìn)程的節(jié)拍數(shù)的平均值等于所述當(dāng)前的全局時(shí)鐘值時(shí),更新全局時(shí)鐘值,并恢復(fù)執(zhí)行所述暫停的宿主進(jìn)程中對(duì)所分配的目標(biāo)機(jī)處理器的行為模擬;所述全局時(shí)鐘值為目標(biāo)機(jī)處理器節(jié)拍數(shù)。可選的,所述每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器個(gè)數(shù)為不超過(guò)((目標(biāo)處理器的個(gè)數(shù)+宿主進(jìn)程個(gè)數(shù)-1)/宿主進(jìn)程個(gè)數(shù))的最大整數(shù)。可選的,還包括對(duì)每個(gè)宿主進(jìn)程所分配的目標(biāo)機(jī)處理器的一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬過(guò)程中,對(duì)共享資源通過(guò)鎖操作實(shí)施互斥訪問(wèn)。可選的,所述共享資源為全局事件隊(duì)列、共享緩存模型和共享主存模型。可選的,所述更新全局時(shí)鐘值為對(duì)所述當(dāng)前的全局時(shí)鐘值加上全局時(shí)鐘松散同步時(shí)間片,所述全局時(shí)鐘松散同步時(shí)間片為預(yù)設(shè)的目標(biāo)機(jī)處理器節(jié)拍數(shù)??蛇x的,所述全局時(shí)鐘松散同步時(shí)間片為至少2個(gè)目標(biāo)機(jī)處理器節(jié)拍。為解決上述技術(shù)問(wèn)題,本發(fā)明還提供一種多處理器結(jié)構(gòu)的模擬器,利用多處理器宿主機(jī)對(duì)多處理器結(jié)構(gòu)目標(biāo)機(jī)的多個(gè)處理器的行為進(jìn)行模擬,包括創(chuàng)建單元,創(chuàng)建多個(gè)宿主進(jìn)程,分配每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器;其中, 所述宿主進(jìn)程個(gè)數(shù)小于等于宿主機(jī)處理器的個(gè)數(shù),每個(gè)宿主進(jìn)程采用輪轉(zhuǎn)的方式對(duì)所分配的目標(biāo)機(jī)處理器進(jìn)行目標(biāo)機(jī)處理器節(jié)拍的行為模擬;執(zhí)行單元,并行執(zhí)行多個(gè)宿主進(jìn)程;節(jié)拍計(jì)數(shù)單元,對(duì)各個(gè)宿主進(jìn)程進(jìn)行節(jié)拍計(jì)數(shù),其中,在對(duì)一個(gè)宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器執(zhí)行一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬后,該宿主進(jìn)程的節(jié)拍數(shù)加1 ;控制單元,根據(jù)節(jié)拍計(jì)數(shù)單元輸出的各個(gè)宿主進(jìn)程的節(jié)拍數(shù),控制所述執(zhí)行單元暫停執(zhí)行節(jié)拍數(shù)等于當(dāng)前的全局時(shí)鐘值的宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器的行為模擬; 在所有宿主進(jìn)程的節(jié)拍數(shù)的平均值等于所述當(dāng)前的全局時(shí)鐘值時(shí),更新全局時(shí)鐘值,并控制所述執(zhí)行單元恢復(fù)執(zhí)行所述暫停的宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器的行為模擬;所述全局時(shí)鐘值為目標(biāo)機(jī)處理器節(jié)拍數(shù)??蛇x的,所述每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器個(gè)數(shù)為不超過(guò)((目標(biāo)處理器的個(gè)數(shù)+宿主進(jìn)程個(gè)數(shù)-1)/宿主進(jìn)程個(gè)數(shù))的最大整數(shù)。可選的,還包括共享資源單元,所述執(zhí)行單元在對(duì)每個(gè)宿主進(jìn)程所分配的目標(biāo)機(jī)處理器的一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬過(guò)程中,通過(guò)鎖操作對(duì)所述共享資源單元實(shí)施互斥訪問(wèn)。可選的,所述共享資源單元包括全局事件隊(duì)列、共享緩存模型和共享主存模型??蛇x的,所述更新全局時(shí)鐘值為對(duì)所述當(dāng)前的全局時(shí)鐘值加上全局時(shí)鐘松散同步時(shí)間片,所述全局時(shí)鐘松散同步時(shí)間片為預(yù)設(shè)的目標(biāo)機(jī)處理器節(jié)拍數(shù)??蛇x的,所述全局時(shí)鐘松散同步時(shí)間片為至少2個(gè)目標(biāo)機(jī)處理器節(jié)拍。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)通過(guò)創(chuàng)建宿主機(jī)多進(jìn)程,充分利用了宿主機(jī)平臺(tái)的多CPU資源。對(duì)于每個(gè)宿主機(jī)的處理器僅分配一個(gè)宿主進(jìn)程,均衡分配每一宿主進(jìn)程的負(fù)載,采用輪轉(zhuǎn)模擬的方法對(duì)目標(biāo)機(jī)的多個(gè)處理器的行為進(jìn)行模擬。通過(guò)對(duì)目標(biāo)機(jī)多處理器的輪轉(zhuǎn)模擬和宿主機(jī)多進(jìn)程的并行相結(jié)合,有效地解決了多處理器結(jié)構(gòu)模擬的并行加速問(wèn)題,提高了并行模擬的速度。通過(guò)采用全局時(shí)鐘值控制多個(gè)并行宿主進(jìn)程之間的同步,有效控制了目標(biāo)機(jī)各個(gè)處理器模擬進(jìn)度的差異,能夠保持目標(biāo)機(jī)多處理器結(jié)構(gòu)行為模擬的真實(shí)性。全局時(shí)鐘值可以根據(jù)一個(gè)可調(diào)的全局時(shí)鐘松散同步時(shí)間片進(jìn)行更新,且,所述全局時(shí)鐘松散同步時(shí)間片為至少2個(gè)目標(biāo)機(jī)處理器節(jié)拍,避免了在每個(gè)目標(biāo)機(jī)處理器節(jié)拍進(jìn)行同步的低效,從而提高了模擬多處理器結(jié)構(gòu)的速度。


圖1為傳統(tǒng)的多處理器結(jié)構(gòu)模擬器的模擬過(guò)程示意圖;圖2為本發(fā)明具體實(shí)施方式
的多處理器結(jié)構(gòu)模擬方法的流程圖;圖3為本發(fā)明具體實(shí)施例的多處理器結(jié)構(gòu)模擬過(guò)程的示意圖;圖4為本發(fā)明具體實(shí)施方式
的多處理器結(jié)構(gòu)模擬器的示意圖。
具體實(shí)施例方式現(xiàn)有技術(shù)可以通過(guò)創(chuàng)建宿主機(jī)多進(jìn)程來(lái)實(shí)現(xiàn)多處理器結(jié)構(gòu)模擬器的加速。然而發(fā)明人發(fā)現(xiàn)該方法存在兩個(gè)問(wèn)題(1)關(guān)于模擬負(fù)載的平衡分配。舉例來(lái)說(shuō),如果宿主機(jī)有4 個(gè)處理器,目標(biāo)機(jī)有8個(gè)處理器,若采用每個(gè)宿主進(jìn)程模擬一個(gè)目標(biāo)機(jī)處理器,則需要8個(gè)宿主進(jìn)程,因而宿主進(jìn)程數(shù)8大于宿主機(jī)處理器的個(gè)數(shù)4,即1個(gè)處理器上分配有2個(gè)宿主進(jìn)程,模擬過(guò)程中由于宿主進(jìn)程切換引起的開(kāi)銷,最終導(dǎo)致了多處理器模擬器不能加速; (2)關(guān)于多宿主進(jìn)程間的模擬同步。由于宿主多進(jìn)程的自然不同步,以及不同目標(biāo)機(jī)處理器動(dòng)態(tài)行為的差異,例如,每次訪存操作時(shí)不同目標(biāo)機(jī)處理器高速緩存的狀態(tài)不同、主存總線競(jìng)爭(zhēng)、目標(biāo)機(jī)處理器負(fù)載路徑不同等,導(dǎo)致模擬執(zhí)行路徑和模擬負(fù)載量的不同,從而導(dǎo)致在一定的時(shí)間片內(nèi)被模擬的目標(biāo)機(jī)的各個(gè)處理器的節(jié)拍數(shù)出現(xiàn)較大差異,造成目標(biāo)機(jī)多處理器模擬行為與實(shí)際硬件處理器的行為之間存在較大差異。
6
因此,采用創(chuàng)建宿主機(jī)多進(jìn)程來(lái)模擬多處理器結(jié)構(gòu)的方法,在模擬負(fù)載的分配方面,會(huì)出現(xiàn)宿主機(jī)的一個(gè)處理器被分配多個(gè)進(jìn)程,模擬過(guò)程中宿主進(jìn)程的切換引起開(kāi)銷,導(dǎo)致多處理器模擬器不能加速。此外,多宿主進(jìn)程間的自然不同步等因素導(dǎo)致了在一定的時(shí)間片內(nèi)被模擬的目標(biāo)機(jī)的各個(gè)處理器的節(jié)拍數(shù)出現(xiàn)較大差異,造成目標(biāo)機(jī)多處理器模擬行為與實(shí)際硬件多處理器的行為之間存在較大差異。針對(duì)上述問(wèn)題,發(fā)明人想到采用一個(gè)宿主機(jī)處理器創(chuàng)建至多一個(gè)宿主進(jìn)程,均衡分配多個(gè)并行宿主進(jìn)程的負(fù)載和目標(biāo)機(jī)的各個(gè)處理器輪轉(zhuǎn)模擬相結(jié)合,同時(shí)采用以目標(biāo)機(jī)處理器節(jié)拍為單位的非精確全局時(shí)鐘值來(lái)控制各個(gè)被模擬的目標(biāo)機(jī)處理器間的同步,以解決上述問(wèn)題。為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
做詳細(xì)的說(shuō)明。圖2為本發(fā)明具體實(shí)施方式
的多處理器結(jié)構(gòu)的模擬方法的流程圖,圖3為本發(fā)明具體實(shí)施例的多處理器結(jié)構(gòu)模擬過(guò)程的示意圖;請(qǐng)參考圖2和圖3,如圖2所示,本發(fā)明具體實(shí)施方式
的多處理器結(jié)構(gòu)的模擬方法利用多處理器宿主機(jī)對(duì)多處理器結(jié)構(gòu)目標(biāo)機(jī)的多個(gè)處理器的行為進(jìn)行模擬,包括如下步驟步驟Sll 創(chuàng)建多個(gè)宿主進(jìn)程,分配每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器;其中, 所述宿主進(jìn)程個(gè)數(shù)小于等于宿主機(jī)處理器的個(gè)數(shù),每個(gè)宿主進(jìn)程采用輪轉(zhuǎn)的方式對(duì)所分配的目標(biāo)機(jī)處理器執(zhí)行目標(biāo)機(jī)處理器節(jié)拍的行為模擬。參見(jiàn)圖3,本實(shí)施例中,先對(duì)宿主機(jī)和目標(biāo)機(jī)進(jìn)行相應(yīng)的配置,根據(jù)宿主機(jī)處理器的個(gè)數(shù)來(lái)設(shè)置所要?jiǎng)?chuàng)建的宿主進(jìn)程的個(gè)數(shù)P,以及所要模擬的目標(biāo)機(jī)的處理器的個(gè)數(shù)M。所述宿主機(jī)是指運(yùn)行模擬器的計(jì)算機(jī),模擬器和宿主機(jī)一起向用戶提供另一臺(tái)虛擬的計(jì)算機(jī)環(huán)境;所述目標(biāo)機(jī)是指被模擬的計(jì)算機(jī)系統(tǒng)。為了避免宿主機(jī)的一個(gè)處理器執(zhí)行多個(gè)進(jìn)程,因進(jìn)程之間轉(zhuǎn)換而引起開(kāi)銷,導(dǎo)致并行模擬不能加速,本實(shí)施例中,創(chuàng)建宿主進(jìn)程的個(gè)數(shù)P小于等于宿主機(jī)處理器的個(gè)數(shù),以保證在模擬過(guò)程中宿主機(jī)的每個(gè)處理器執(zhí)行至多一個(gè)宿主進(jìn)程。如宿主機(jī)處理器的個(gè)數(shù)為5個(gè),宿主進(jìn)程的個(gè)數(shù)可以為5個(gè),也可以小于5個(gè),如4個(gè)宿主進(jìn)程。然后創(chuàng)建多個(gè)可并行執(zhí)行的宿主進(jìn)程0到宿主進(jìn)程P-I。分配每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器的個(gè)數(shù)CPP,本實(shí)施例中采用均衡負(fù)載分配的方法,每個(gè)宿主進(jìn)程中所模擬的處理器的個(gè)數(shù)CPP為不超過(guò)((目標(biāo)機(jī)處理器的個(gè)數(shù)+宿主進(jìn)程個(gè)數(shù)-ι)/宿主進(jìn)程個(gè)數(shù))的最大整數(shù),也即CPP= [(M+P-D/P]。舉例來(lái)說(shuō), 若宿主機(jī)處理器的個(gè)數(shù)為5個(gè),宿主進(jìn)程數(shù)為4個(gè)(宿主進(jìn)程個(gè)數(shù)小于宿主機(jī)處理器的個(gè)數(shù)),目標(biāo)機(jī)處理器的個(gè)數(shù)為8個(gè),則分配在每個(gè)宿主進(jìn)程中的目標(biāo)機(jī)處理器的個(gè)數(shù)CPP = [(8+4-1)/4] =2。若宿主機(jī)處理器的個(gè)數(shù)為5個(gè),宿主進(jìn)程數(shù)為5個(gè)(宿主進(jìn)程個(gè)數(shù)等于宿主機(jī)處理器的個(gè)數(shù)),目標(biāo)機(jī)處理器的個(gè)數(shù)為8個(gè),則分配在每個(gè)宿主進(jìn)程中的目標(biāo)機(jī)處理器的個(gè)數(shù)CPP= [(8+5-1)/5] = 2,只不過(guò)此時(shí)有一個(gè)宿主進(jìn)程處于空閑狀態(tài)。如圖3所示,對(duì)于第0號(hào)宿主進(jìn)程至第P-I號(hào)宿主進(jìn)程中的每個(gè)宿主進(jìn)程而言,均采用輪轉(zhuǎn)的方式對(duì)所分配的目標(biāo)機(jī)處理器執(zhí)行目標(biāo)機(jī)處理器節(jié)拍的行為模擬,本實(shí)施例中所述目標(biāo)機(jī)處理器節(jié)拍是指目標(biāo)機(jī)處理器的時(shí)鐘周期,即一個(gè)目標(biāo)機(jī)處理器節(jié)拍為目標(biāo)機(jī)處理器的一個(gè)時(shí)鐘周期,兩個(gè)目標(biāo)機(jī)處理器節(jié)拍為目標(biāo)機(jī)處理器的兩個(gè)時(shí)鐘周期,依此類推。有關(guān)每個(gè)宿主進(jìn)程具體如何采用輪轉(zhuǎn)的方式對(duì)所分配的目標(biāo)機(jī)處理器執(zhí)行目標(biāo)機(jī)處理器節(jié)拍的行為模擬,將在后續(xù)并行執(zhí)行多個(gè)宿主進(jìn)程的過(guò)程中進(jìn)行詳細(xì)的說(shuō)明。步驟S12 并行執(zhí)行多個(gè)宿主進(jìn)程,每個(gè)宿主進(jìn)程對(duì)所分配的目標(biāo)機(jī)處理器的一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬后,該宿主進(jìn)程的節(jié)拍數(shù)加1。本實(shí)施例中,是通過(guò)并行執(zhí)行多個(gè)宿主進(jìn)程以對(duì)每個(gè)宿主進(jìn)程所分配的目標(biāo)機(jī)的處理器行為進(jìn)行相應(yīng)的模擬,如圖3所示,本實(shí)施例中設(shè)宿主進(jìn)程0到宿主進(jìn)程P-I所分配的目標(biāo)機(jī)的處理器的個(gè)數(shù)均為η (η為大于等于1的自然數(shù)),現(xiàn)以第0號(hào)宿主進(jìn)程為例,來(lái)說(shuō)明本實(shí)施例中每個(gè)宿主進(jìn)程對(duì)其所分配的目標(biāo)機(jī)處理器的行為的模擬過(guò)程。本實(shí)施例中對(duì)于第0號(hào)宿主進(jìn)程而言,可以對(duì)分配于其中的目標(biāo)機(jī)處理器進(jìn)行相應(yīng)的編號(hào),即對(duì)η個(gè)目標(biāo)機(jī)處理器進(jìn)行1到η的編號(hào),如圖3所示,對(duì)于第0號(hào)宿主進(jìn)程而言,圖中目標(biāo)機(jī)處理器i(i = 1,2,...η)即代表了目標(biāo)機(jī)處理器1到η。本實(shí)施例中,對(duì)目標(biāo)機(jī)處理器行為的模擬是以目標(biāo)機(jī)處理器節(jié)拍為單位進(jìn)行的,對(duì)于第0號(hào)宿主進(jìn)程中的目標(biāo)機(jī)處理器1 η,會(huì)按照目標(biāo)機(jī)處理器的編號(hào)以輪流的方式對(duì)每一個(gè)目標(biāo)機(jī)處理器進(jìn)行一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬。具體地,參考圖3,每模擬一個(gè)目標(biāo)機(jī)處理器的行為,宿主機(jī)都會(huì)對(duì)其相應(yīng)的標(biāo)號(hào)進(jìn)行判斷,即判斷當(dāng)前目標(biāo)機(jī)處理器的編號(hào)i是否為本進(jìn)程所分配的最后的目標(biāo)機(jī)處理器的編號(hào)n,如果當(dāng)前目標(biāo)機(jī)處理器的編號(hào)i不等于n,則將當(dāng)前目標(biāo)機(jī)處理器的編號(hào)i加1, 即i = i+Ι,返回繼續(xù)模擬編號(hào)為i的目標(biāo)處理器的行為,直至模擬完本進(jìn)程的最后一個(gè)目標(biāo)機(jī)處理器η的行為。至此,通過(guò)輪流的方式對(duì)第0號(hào)宿主進(jìn)程所分配的目標(biāo)機(jī)處理器1 η的行為進(jìn)行了一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬,第0號(hào)宿主進(jìn)程的節(jié)拍數(shù)加1。本實(shí)施例中優(yōu)選地第0號(hào)宿主進(jìn)程節(jié)拍數(shù)的初始值為0,在其他實(shí)施例中第0號(hào)宿主進(jìn)程節(jié)拍數(shù)的初始值也可以為一不為0的自然數(shù)。此后,宿主機(jī)還會(huì)返轉(zhuǎn)回去對(duì)第0號(hào)宿主進(jìn)程所分配的目標(biāo)機(jī)處理器繼續(xù)進(jìn)行下一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬,相應(yīng)地第0號(hào)宿主進(jìn)程的節(jié)拍數(shù)會(huì)繼續(xù)加1,即通過(guò)輪轉(zhuǎn)的方式對(duì)第0號(hào)宿主進(jìn)程所分配的目標(biāo)機(jī)處理器進(jìn)行多個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬。需要說(shuō)明的是,上述模擬過(guò)程僅僅是以第0號(hào)宿主進(jìn)程為例進(jìn)行了相應(yīng)的說(shuō)明, 對(duì)于本實(shí)施例中的第1號(hào)至第P-I號(hào)宿主進(jìn)程,分配于其中的目標(biāo)機(jī)處理器行為的模擬過(guò)程與上述相類似,不同的僅僅是每個(gè)宿主進(jìn)程所分配的目標(biāo)機(jī)處理器的動(dòng)態(tài)行為并不相同,此處不再贅述。同時(shí),第1號(hào)至第P-I號(hào)宿主進(jìn)程節(jié)拍數(shù)的初始值與第0號(hào)宿主進(jìn)程節(jié)拍數(shù)的初始值相同,即第0號(hào)宿主進(jìn)程至第P-I號(hào)宿主進(jìn)程節(jié)拍數(shù)的初始值相同。此外,對(duì)于上述的每個(gè)宿主進(jìn)程,對(duì)所有分配的目標(biāo)機(jī)處理器的一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬過(guò)程中,通過(guò)鎖操作對(duì)共享資源進(jìn)行互斥訪問(wèn)(圖3中未示出),本實(shí)施例中,所述共享資源為全局事件隊(duì)列、共享緩存模型和共享主存模型。步驟S13 暫停執(zhí)行節(jié)拍數(shù)等于當(dāng)前的全局時(shí)鐘值的宿主進(jìn)程中對(duì)所分配的目標(biāo)機(jī)處理器的行為模擬;如上所述,在每次對(duì)第0號(hào)宿主進(jìn)程所分配的編號(hào)為第1 η號(hào)的目標(biāo)機(jī)處理器的行為進(jìn)行一個(gè)目標(biāo)機(jī)處理器節(jié)拍的模擬后,第0號(hào)宿主進(jìn)程的節(jié)拍數(shù)會(huì)加1,而對(duì)于其他的第1號(hào)至第P-I號(hào)的每一個(gè)宿主進(jìn)程而言,在對(duì)其所分配的編號(hào)為第1 η號(hào)的目標(biāo)機(jī)處理器的行為進(jìn)行一個(gè)目標(biāo)機(jī)處理器節(jié)拍的模擬后,該宿主進(jìn)程的節(jié)拍數(shù)也會(huì)加1。然而,對(duì)于各個(gè)并行的第0號(hào)至第P-I號(hào)宿主進(jìn)程,由于第0號(hào)至第P-I號(hào)宿主進(jìn)程之間的自然不同步,以及分配于第0號(hào)至第P-I號(hào)宿主進(jìn)程的目標(biāo)機(jī)處理器動(dòng)態(tài)行為的差異,在相同的時(shí)間片內(nèi),第0號(hào)至第P-I號(hào)宿主進(jìn)程的節(jié)拍數(shù)會(huì)不相同。此處為了描述方便,僅取第0號(hào)至第P-I號(hào)宿主進(jìn)程中的前5個(gè)宿主進(jìn)程進(jìn)行相應(yīng)的說(shuō)明。在相同的時(shí)間片內(nèi),對(duì)于第0號(hào)宿主進(jìn)程,其節(jié)拍數(shù)為5,而對(duì)于第1號(hào)宿主進(jìn)程其節(jié)拍數(shù)為2,其他第2、3、4號(hào)宿主進(jìn)程的節(jié)拍數(shù)有可能大于5,也有可能小于5。本實(shí)施例中,為了避免在執(zhí)行多個(gè)并行的宿主進(jìn)程的過(guò)程中,對(duì)每個(gè)宿主進(jìn)程所分配的目標(biāo)機(jī)處理器行為的模擬與實(shí)際硬件處理器的行為之間存在較大差異,需要對(duì)多個(gè)并行宿主進(jìn)程之間進(jìn)行松散同步,所述松散同步是指在多個(gè)宿主進(jìn)程的執(zhí)行中,以設(shè)定的同步時(shí)間片進(jìn)行同步,所述同步時(shí)間片的單位為目標(biāo)機(jī)處理器節(jié)拍。本實(shí)施例中通過(guò)全局時(shí)鐘值實(shí)現(xiàn)多個(gè)并行的宿主進(jìn)程之間的松散同步。所述全局時(shí)鐘值為目標(biāo)機(jī)處理器節(jié)拍數(shù),所述目標(biāo)機(jī)處理器節(jié)拍數(shù)是指目標(biāo)機(jī)處理器節(jié)拍的個(gè)數(shù), 如目標(biāo)機(jī)處理器節(jié)拍數(shù)為2即指2個(gè)目標(biāo)機(jī)處理器節(jié)拍。本實(shí)施例中全局時(shí)鐘的初始值大于宿主進(jìn)程節(jié)拍數(shù)的初始值,可以根據(jù)用戶的需求進(jìn)行相應(yīng)的設(shè)置,優(yōu)選為所述全局時(shí)鐘的初始值大于宿主進(jìn)程節(jié)拍數(shù)的初始值2個(gè)目標(biāo)機(jī)處理器節(jié)拍。仍然參考圖3,本實(shí)施例中以第0號(hào)宿主進(jìn)程到達(dá)同步點(diǎn),并由第0號(hào)宿主進(jìn)程對(duì)全局時(shí)鐘值進(jìn)行更新為例,對(duì)所有進(jìn)程的之間的松散同步進(jìn)行相應(yīng)的說(shuō)明。若第0號(hào)宿主進(jìn)程的節(jié)拍數(shù)不等于當(dāng)前的全局時(shí)鐘值,即第0號(hào)宿主進(jìn)程仍未到達(dá)同步點(diǎn),則繼續(xù)對(duì)第0號(hào)宿主進(jìn)程所分配的目標(biāo)機(jī)處理器的行為進(jìn)行模擬,增加第0號(hào)宿主進(jìn)程的節(jié)拍數(shù);若第0號(hào)進(jìn)程的節(jié)拍數(shù)等于當(dāng)前的全局時(shí)鐘值,即第0號(hào)宿主進(jìn)程到達(dá)同步點(diǎn),則暫停對(duì)第0號(hào)進(jìn)程所分配的目標(biāo)機(jī)處理器的行為模擬。對(duì)于第1號(hào)至第P-I號(hào)宿主進(jìn)程而言,與第0號(hào)進(jìn)程相類似,若第1號(hào)至第P-I號(hào)宿主進(jìn)程的節(jié)拍數(shù)中有等于當(dāng)前的全局時(shí)鐘值,則暫停對(duì)該節(jié)拍數(shù)等于當(dāng)前全局時(shí)鐘值的宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器的行為模擬,等待其他宿主進(jìn)程到達(dá)同步點(diǎn)。步驟S14 在所有宿主進(jìn)程的節(jié)拍數(shù)的平均值等于所述當(dāng)前的全局時(shí)鐘值,更新全局時(shí)鐘值,并恢復(fù)執(zhí)行所述暫停的宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器的行為模擬;所述全局時(shí)鐘值為目標(biāo)機(jī)處理器節(jié)拍數(shù)。繼續(xù)參考圖3,判斷所有宿主進(jìn)程的節(jié)拍數(shù)的平均值與當(dāng)前的全局時(shí)鐘值之間的關(guān)系,本實(shí)施例中,即將第0號(hào)宿主進(jìn)程至第P-I號(hào)宿主進(jìn)程的節(jié)拍數(shù)相加,除以P,將得到平均值與當(dāng)前的全局時(shí)鐘值相比較,為了便于說(shuō)明,本實(shí)施例中設(shè)當(dāng)前的全局時(shí)鐘值為5, 即5個(gè)目標(biāo)機(jī)處理器節(jié)拍,若第0號(hào)宿主進(jìn)程的節(jié)拍數(shù)已經(jīng)到達(dá)5,暫停對(duì)第0號(hào)宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器1 η的行為模擬,轉(zhuǎn)而判斷所有宿主進(jìn)程節(jié)拍數(shù)的平均值,若該平均值等于5,更新全局時(shí)鐘值,使其大于當(dāng)前的全局時(shí)鐘值5。本實(shí)施例中優(yōu)選地采用全局時(shí)鐘松散同步時(shí)間片來(lái)對(duì)全局時(shí)鐘值進(jìn)行相應(yīng)的更新,所述全局時(shí)鐘松散同步時(shí)間片仍為目標(biāo)機(jī)處理器的節(jié)拍數(shù),具體根據(jù)用戶的需求進(jìn)行相應(yīng)的設(shè)置。本實(shí)施例中,優(yōu)選地,全局時(shí)鐘值按照大于等于2的全局時(shí)鐘松散同步時(shí)間片進(jìn)行更新,全局時(shí)鐘松散同步時(shí)間片大于等于2,可以無(wú)需在每個(gè)目標(biāo)機(jī)處理器節(jié)拍都進(jìn)行同步,提高了對(duì)目標(biāo)機(jī)處理器行為進(jìn)行模擬的速度。例如全局時(shí)鐘松散同步時(shí)間片可以設(shè)置為5或者為10,即全局時(shí)鐘值按照增加5個(gè)或10個(gè)目標(biāo)機(jī)處理器節(jié)拍進(jìn)行更新,本實(shí)施例中以全局時(shí)鐘松散同步時(shí)間片為10,即10個(gè)目標(biāo)機(jī)處理器節(jié)拍進(jìn)行說(shuō)明。當(dāng)?shù)?號(hào)宿主進(jìn)程的節(jié)拍數(shù)到達(dá)5且所有宿主進(jìn)程的節(jié)拍數(shù)的平均值均等于5后,即所有的宿主進(jìn)程都到達(dá)同步點(diǎn),由第0號(hào)宿主進(jìn)程執(zhí)行對(duì)全局時(shí)鐘值5的更新,即將當(dāng)前的全局時(shí)鐘值5加上全局時(shí)鐘松散同步時(shí)間片10,當(dāng)前的全局時(shí)鐘值更新為15,得到進(jìn)行下一次松散同步時(shí)的全局時(shí)鐘值15。需要說(shuō)明的是,本實(shí)施例中以全局時(shí)鐘松散同步時(shí)間片來(lái)對(duì)全局時(shí)鐘值進(jìn)行更新只為一優(yōu)選的實(shí)施例,不能以此作為對(duì)本發(fā)明的限定,在其他實(shí)施例中也可以不采用全局時(shí)鐘松散同步時(shí)間片來(lái)對(duì)全局時(shí)鐘值進(jìn)行更新,只要保證更新后的全局時(shí)鐘值大于當(dāng)前的全局時(shí)鐘值即可。至此,第0號(hào)宿主進(jìn)程至第P-I號(hào)宿主進(jìn)程完成了第一次松散同步?;謴?fù)對(duì)第0 號(hào)宿主進(jìn)程至第P-I號(hào)宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器1 η的行為模擬。若所有宿主進(jìn)程節(jié)拍數(shù)的平均值小于5,即在第1號(hào)宿主進(jìn)程至第P-I號(hào)宿主進(jìn)程中,仍有部分宿主進(jìn)程或全部宿主進(jìn)程未到達(dá)同步點(diǎn),則仍然暫停對(duì)第0號(hào)宿主進(jìn)程及其他已到達(dá)同步點(diǎn)的宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器1 η的行為模擬,即到達(dá)同步點(diǎn)的宿主進(jìn)程均處于等待狀態(tài),繼續(xù)判斷所有宿主進(jìn)程節(jié)拍數(shù)的平均值與當(dāng)前的全局時(shí)鐘值5 之間的關(guān)系,直至所有宿主進(jìn)程節(jié)拍數(shù)的平均值等于5,更新全局時(shí)鐘值,恢復(fù)對(duì)暫停的宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器1 η的行為模擬。需要說(shuō)明的是,本實(shí)施例中是通過(guò)第0號(hào)宿主進(jìn)程對(duì)全局時(shí)鐘值進(jìn)行更新的,而在其他實(shí)施例中,也可以選定另一個(gè)宿主進(jìn)程來(lái)對(duì)全局時(shí)鐘值進(jìn)行更新。在另一實(shí)施例中, 也可以啟用一個(gè)新的進(jìn)程來(lái)對(duì)全局時(shí)鐘值進(jìn)行更新(該情況適用于所創(chuàng)建的進(jìn)程并沒(méi)用完全用于對(duì)目標(biāo)機(jī)處理器行為的模擬,仍有空閑的進(jìn)程存在,或者宿主機(jī)的處理器中仍存在空閑的處理器)。此外,需要注意的是,在實(shí)際應(yīng)用過(guò)程中,對(duì)于第1號(hào) 第P-I號(hào)宿主進(jìn)程的終止, 可以通過(guò)由0號(hào)進(jìn)程捕獲到目標(biāo)機(jī)代碼中的終止調(diào)用后插入系統(tǒng)退出函數(shù)來(lái)實(shí)現(xiàn)。請(qǐng)參考圖4,本實(shí)施例還提供一種多處理器結(jié)構(gòu)的模擬器,利用多處理器宿主機(jī)對(duì)多處理器結(jié)構(gòu)目標(biāo)機(jī)的多個(gè)處理器的行為進(jìn)行模擬,包括創(chuàng)建單元101,創(chuàng)建多個(gè)宿主進(jìn)程,分配每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器;其中,所述宿主進(jìn)程個(gè)數(shù)小于等于宿主機(jī)處理器的個(gè)數(shù),每個(gè)宿主進(jìn)程采用輪轉(zhuǎn)的方式對(duì)所分配的目標(biāo)機(jī)處理器進(jìn)行目標(biāo)機(jī)處理器節(jié)拍的行為模擬;關(guān)于創(chuàng)建單元101如何分配每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器,及每個(gè)宿主進(jìn)程如何采用輪轉(zhuǎn)的方式對(duì)所分配的目標(biāo)機(jī)處理器進(jìn)行目標(biāo)機(jī)處理器節(jié)拍的行為模擬,請(qǐng)參見(jiàn)對(duì)多處理器結(jié)構(gòu)的模擬方法實(shí)施例中的敘述,此處不再贅述。執(zhí)行單元103,并行執(zhí)行多個(gè)宿主進(jìn)程;執(zhí)行單元103,啟動(dòng)多個(gè)宿主進(jìn)程,使多個(gè)宿主進(jìn)程并行執(zhí)行,并且執(zhí)行單元103 還接受控制單元107的控制,暫?;蚧謴?fù)執(zhí)行多個(gè)宿主進(jìn)程。關(guān)于多個(gè)宿主進(jìn)程如何執(zhí)行, 請(qǐng)參見(jiàn)對(duì)多處理器結(jié)構(gòu)的模擬方法實(shí)施例中的敘述,此處不再贅述。需要注意的是,執(zhí)行單元103在對(duì)每個(gè)宿主進(jìn)程所分配的目標(biāo)機(jī)處理器的一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬過(guò)程中,每個(gè)宿主進(jìn)程還會(huì)通過(guò)鎖操作對(duì)共享資源單元(圖中未示出)實(shí)施互斥訪問(wèn)。節(jié)拍計(jì)數(shù)單元105,對(duì)各個(gè)宿主進(jìn)程進(jìn)行節(jié)拍計(jì)數(shù),其中,對(duì)一個(gè)宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器執(zhí)行一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬后,該宿主進(jìn)程的節(jié)拍數(shù)加1 ;控制單元107,根據(jù)節(jié)拍計(jì)數(shù)單元105輸出的各個(gè)宿主進(jìn)程的節(jié)拍數(shù),控制單元 107控制所述執(zhí)行單元103暫停執(zhí)行節(jié)拍數(shù)等于當(dāng)前的全局時(shí)鐘值的宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器的行為模擬,直至所有宿主進(jìn)程的節(jié)拍數(shù)的平均值等于所述當(dāng)前的全局時(shí)鐘值,更新全局時(shí)鐘值,并由控制單元107控制所述執(zhí)行單元103恢復(fù)執(zhí)行所述暫停的宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器的行為模擬;所述全局時(shí)鐘值為目標(biāo)機(jī)處理器節(jié)拍數(shù)。綜上所述,本發(fā)明具體實(shí)施例的多處理器結(jié)構(gòu)的模擬方法及模擬器,通過(guò)創(chuàng)建宿主機(jī)多進(jìn)程,充分利用了宿主機(jī)平臺(tái)的多處理器資源。對(duì)于每個(gè)宿主機(jī)的處理器僅分配一個(gè)宿主進(jìn)程,均衡分配每一個(gè)宿主進(jìn)程的負(fù)載,采用輪轉(zhuǎn)模擬的方法對(duì)目標(biāo)機(jī)的多個(gè)處理器的行為進(jìn)行模擬。通過(guò)對(duì)目標(biāo)機(jī)多處理器的輪轉(zhuǎn)模擬和宿主機(jī)多進(jìn)程的并行相結(jié)合,有效地解決了多處理器結(jié)構(gòu)模擬的并行加速問(wèn)題,提高了并行模擬的速度。通過(guò)采用全局時(shí)鐘值控制多個(gè)并行宿主進(jìn)程之間的松散同步,有效控制了目標(biāo)機(jī)各個(gè)處理器模擬進(jìn)度的差異,能夠保持目標(biāo)機(jī)多處理器結(jié)構(gòu)行為模擬的真實(shí)性。本發(fā)明雖然已以較佳實(shí)施例公開(kāi)如上,但其并不是用來(lái)限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案做出可能的變動(dòng)和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護(hù)范圍。
權(quán)利要求
1.一種多處理器結(jié)構(gòu)的模擬方法,利用多處理器宿主機(jī)對(duì)多處理器結(jié)構(gòu)目標(biāo)機(jī)的多個(gè)處理器的行為進(jìn)行模擬,其特征在于,包括如下步驟創(chuàng)建多個(gè)宿主進(jìn)程,分配每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器;其中,所述宿主進(jìn)程個(gè)數(shù)小于等于宿主機(jī)處理器的個(gè)數(shù),每個(gè)宿主進(jìn)程采用輪轉(zhuǎn)的方式對(duì)所分配的目標(biāo)機(jī)處理器執(zhí)行目標(biāo)機(jī)處理器節(jié)拍的行為模擬;并行執(zhí)行多個(gè)宿主進(jìn)程,每個(gè)宿主進(jìn)程對(duì)所分配的目標(biāo)機(jī)處理器的一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬后,該宿主進(jìn)程的節(jié)拍數(shù)加1 ;暫停執(zhí)行節(jié)拍數(shù)等于當(dāng)前的全局時(shí)鐘值的宿主進(jìn)程中對(duì)所分配的目標(biāo)機(jī)處理器的行為模擬;在所有宿主進(jìn)程的節(jié)拍數(shù)的平均值等于所述當(dāng)前的全局時(shí)鐘值時(shí),更新全局時(shí)鐘值, 并恢復(fù)執(zhí)行所述暫停的宿主進(jìn)程中對(duì)所分配的目標(biāo)機(jī)處理器的行為模擬;所述全局時(shí)鐘值為目標(biāo)機(jī)處理器節(jié)拍數(shù)。
2.如權(quán)利要求1所述的一種多處理器結(jié)構(gòu)的模擬方法,其特征在于,所述每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器個(gè)數(shù)為不超過(guò)((目標(biāo)處理器的個(gè)數(shù)+宿主進(jìn)程個(gè)數(shù)-ι)/宿主進(jìn)程個(gè)數(shù))的最大整數(shù)。
3.如權(quán)利要求1所述的一種多處理器結(jié)構(gòu)的模擬方法,其特征在于,還包括對(duì)每個(gè)宿主進(jìn)程所分配的目標(biāo)機(jī)處理器的一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬過(guò)程中,對(duì)共享資源通過(guò)鎖操作實(shí)施互斥訪問(wèn)。
4.如權(quán)利要求3所述的一種多處理器結(jié)構(gòu)的模擬方法,其特征在于,所述共享資源為全局事件隊(duì)列、共享緩存模型和共享主存模型。
5.如權(quán)利要求1所述的一種多處理器結(jié)構(gòu)的模擬方法,其特征在于,所述更新全局時(shí)鐘值為對(duì)所述當(dāng)前的全局時(shí)鐘值加上全局時(shí)鐘松散同步時(shí)間片,所述全局時(shí)鐘松散同步時(shí)間片為預(yù)設(shè)的目標(biāo)機(jī)處理器節(jié)拍數(shù)。
6.如權(quán)利要求5所述的一種多處理器結(jié)構(gòu)的模擬方法,其特征在于,所述全局時(shí)鐘松散同步時(shí)間片為至少2個(gè)目標(biāo)機(jī)處理器節(jié)拍。
7.一種多處理器結(jié)構(gòu)的模擬器,利用多處理器宿主機(jī)對(duì)多處理器結(jié)構(gòu)目標(biāo)機(jī)的多個(gè)處理器的行為進(jìn)行模擬,其特征在于,包括創(chuàng)建單元,創(chuàng)建多個(gè)宿主進(jìn)程,分配每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器;其中,所述宿主進(jìn)程個(gè)數(shù)小于等于宿主機(jī)處理器的個(gè)數(shù),每個(gè)宿主進(jìn)程采用輪轉(zhuǎn)的方式對(duì)所分配的目標(biāo)機(jī)處理器進(jìn)行目標(biāo)機(jī)處理器節(jié)拍的行為模擬;執(zhí)行單元,并行執(zhí)行多個(gè)宿主進(jìn)程;節(jié)拍計(jì)數(shù)單元,對(duì)各個(gè)宿主進(jìn)程進(jìn)行節(jié)拍計(jì)數(shù),其中,在對(duì)一個(gè)宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器執(zhí)行一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬后,該宿主進(jìn)程的節(jié)拍數(shù)加1 ;控制單元,根據(jù)節(jié)拍計(jì)數(shù)單元輸出的各個(gè)宿主進(jìn)程的節(jié)拍數(shù),控制所述執(zhí)行單元暫停執(zhí)行節(jié)拍數(shù)等于當(dāng)前的全局時(shí)鐘值的宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器的行為模擬;在所有宿主進(jìn)程的節(jié)拍數(shù)的平均值等于所述當(dāng)前的全局時(shí)鐘值時(shí),更新全局時(shí)鐘值,并控制所述執(zhí)行單元恢復(fù)執(zhí)行所述暫停的宿主進(jìn)程中所分配的目標(biāo)機(jī)處理器的行為模擬;所述全局時(shí)鐘值為目標(biāo)機(jī)處理器節(jié)拍數(shù)。
8.如權(quán)利要求7所述的一種多處理器結(jié)構(gòu)的模擬器,其特征在于,所述每個(gè)宿主進(jìn)程所模擬的目標(biāo)機(jī)處理器個(gè)數(shù)為不超過(guò)((目標(biāo)處理器的個(gè)數(shù)+宿主進(jìn)程個(gè)數(shù)-ι)/宿主進(jìn)程個(gè)數(shù))的最大整數(shù)。
9.如權(quán)利要求7所述的一種多處理器結(jié)構(gòu)的模擬器,其特征在于,還包括共享資源單元,所述執(zhí)行單元在對(duì)每個(gè)宿主進(jìn)程所分配的目標(biāo)機(jī)處理器的一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬過(guò)程中,通過(guò)鎖操作對(duì)所述共享資源單元實(shí)施互斥訪問(wèn)。
10.如權(quán)利要求9所述的一種多處理器結(jié)構(gòu)的模擬器,其特征在于,所述共享資源單元包括全局事件隊(duì)列、共享緩存模型和共享主存模型。
11.如權(quán)利要求7所述的一種多處理器結(jié)構(gòu)的模擬器,其特征在于,所述更新全局時(shí)鐘值為對(duì)所述當(dāng)前的全局時(shí)鐘值加上全局時(shí)鐘松散同步時(shí)間片,所述全局時(shí)鐘松散同步時(shí)間片為預(yù)設(shè)的目標(biāo)機(jī)處理器節(jié)拍數(shù)。
12.如權(quán)利要求11所述的一種多處理器結(jié)構(gòu)的模擬器,其特征在于,所述全局時(shí)鐘松散同步時(shí)間片為至少2個(gè)目標(biāo)機(jī)處理器節(jié)拍。
全文摘要
一種多處理器結(jié)構(gòu)的模擬方法及模擬器,利用多處理器宿主機(jī)對(duì)多處理器結(jié)構(gòu)目標(biāo)機(jī)的多個(gè)處理器的行為進(jìn)行模擬,包括創(chuàng)建多個(gè)宿主進(jìn)程,其中,每個(gè)宿主進(jìn)程采用輪轉(zhuǎn)的方式對(duì)所分配的目標(biāo)機(jī)處理器執(zhí)行目標(biāo)機(jī)處理器節(jié)拍的行為模擬,并行執(zhí)行多個(gè)宿主進(jìn)程,每個(gè)宿主進(jìn)程對(duì)所分配的目標(biāo)機(jī)處理器的一個(gè)目標(biāo)機(jī)處理器節(jié)拍的行為模擬后,該宿主進(jìn)程的節(jié)拍數(shù)加1;根據(jù)每個(gè)宿主進(jìn)程的節(jié)拍數(shù)及當(dāng)前的全局時(shí)鐘值,實(shí)現(xiàn)多個(gè)進(jìn)程之間的松散同步,所述當(dāng)前的全局時(shí)鐘值為目標(biāo)機(jī)處理器節(jié)拍數(shù)。本發(fā)明的多處理器結(jié)構(gòu)的模擬方法及模擬器提高了并行模擬的速度,有效控制了目標(biāo)機(jī)各個(gè)處理器模擬進(jìn)度的差異,能夠保持目標(biāo)機(jī)多處理器結(jié)構(gòu)行為模擬的真實(shí)性。
文檔編號(hào)G06F9/455GK102467406SQ20101053715
公開(kāi)日2012年5月23日 申請(qǐng)日期2010年11月9日 優(yōu)先權(quán)日2010年11月9日
發(fā)明者彭維, 李岱峰, 楊金才, 潘治, 王丹云, 谷洪峰 申請(qǐng)人:無(wú)錫江南計(jì)算技術(shù)研究所
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
平邑县| 轮台县| 平陆县| 离岛区| 内丘县| 江华| 盱眙县| 桃园市| 鹤壁市| 县级市| 永善县| 阜城县| 庆阳市| 府谷县| 昭觉县| 阿坝县| 洞口县| 淅川县| 奉新县| 黄冈市| 翁牛特旗| 台南县| 深圳市| 新和县| 阿拉善右旗| 万荣县| 香格里拉县| 吉木萨尔县| 冕宁县| 呈贡县| 崇礼县| 盐池县| 登封市| 安义县| 泸溪县| 聊城市| 镇安县| 安新县| 石渠县| 城步| 长治市|