亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

仿真裝置、仿真方法和存儲(chǔ)介質(zhì)的制作方法

文檔序號(hào):6400570閱讀:184來(lái)源:國(guó)知局
專利名稱:仿真裝置、仿真方法和存儲(chǔ)介質(zhì)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于仿真在系統(tǒng)開(kāi)發(fā)中處于設(shè)計(jì)階段的系統(tǒng)如系統(tǒng)大規(guī)模集成電路(LSI)的仿真裝置,更具體是涉及仿真執(zhí)行時(shí)間的縮減。
背景技術(shù)
近年來(lái),為了滿足日益增長(zhǎng)的對(duì)于小型化高性能計(jì)算機(jī)的需求,對(duì)于其中將,例如,處理器,存儲(chǔ)器和特定用途集成電路(ASIC)這樣一些部件安裝于一個(gè)芯片中的系統(tǒng)大規(guī)模集成電路的開(kāi)發(fā)活動(dòng)一直十分活躍。
通常,在系統(tǒng)大規(guī)模集成電路(LSI)的開(kāi)發(fā)中,設(shè)計(jì)人員是用例如C語(yǔ)言或C++語(yǔ)言編寫一個(gè)用于檢驗(yàn)系統(tǒng)大規(guī)模集成電路(LSI)性能的具有適當(dāng)抽象級(jí)的系統(tǒng)設(shè)計(jì)模型,并在系統(tǒng)大規(guī)模集成電路(LSI)裝入一芯片之前,在設(shè)計(jì)階段,將該模型在計(jì)算機(jī)上仿真。需要使用這種仿真的原因是由于在系統(tǒng)大規(guī)模集成電路(LSI)制作之后,如果想要改變系統(tǒng)設(shè)計(jì),則需要花費(fèi)昂貴的費(fèi)用。
通常,使用稱之為基于時(shí)鐘周期仿真(cycle base simulation)的仿真方法來(lái)仿真系統(tǒng)大規(guī)模集成電路(LSI)。
在基于時(shí)鐘周期仿真中,用多個(gè)周期(即預(yù)定的時(shí)間周期)進(jìn)行仿真一個(gè)系統(tǒng)的運(yùn)行,所述的多個(gè)周期可以是多個(gè)系統(tǒng)時(shí)鐘周期或總線周期。
下面將用一個(gè)實(shí)例來(lái)描述這種基于時(shí)鐘周期仿真。
圖10是一種仿真裝置的功能圖,該仿真裝置用來(lái)基于時(shí)鐘周期仿真一個(gè)通過(guò)一共享源在兩個(gè)處理器之間傳遞數(shù)據(jù)的系統(tǒng)的運(yùn)行共享源。
仿真裝置1000是一計(jì)算機(jī),它具有CPU、存儲(chǔ)器、硬盤等等,當(dāng)CPU執(zhí)行存儲(chǔ)在存儲(chǔ)器或者硬盤中的仿真程序時(shí),該仿真裝置1000實(shí)現(xiàn)其功能。
仿真內(nèi)核(simulation kernel)1001具有這樣的功能,即,在每一周期都調(diào)用基于時(shí)鐘周期模型1002,并且控制基于時(shí)鐘周期模型1002的執(zhí)行。圖10中的空點(diǎn)箭頭表示仿真內(nèi)核1001正在通過(guò)發(fā)出指令在每一周期都調(diào)用基于時(shí)鐘周期模型1002。該基于時(shí)鐘周期模型1002包括處理器核心模塊1003、擴(kuò)展寄存器模塊1004、處理器模塊1005、中斷控制單元1006和共享源模塊1007。這些模塊是要在實(shí)際系統(tǒng)中設(shè)置的各功能模塊的模型。圖10中的空心箭頭表示各模塊之間進(jìn)行的訪問(wèn)。
處理器核心模塊1003和處理器模塊1005用ISS(指令設(shè)定仿真器)來(lái)仿真處理器核心或者處理器的運(yùn)行。擴(kuò)展寄存器模塊1004是擴(kuò)展寄存器的模型。共享源模塊1007是像共享存儲(chǔ)器和總線這樣的共享源的模型。
下面,參照一時(shí)序圖解釋如何仿真各處理器之間數(shù)據(jù)傳遞,其中假定處理器模塊1005是主處理器,而處理器核心模塊是從處理器。
圖11是包括在仿真裝置1000內(nèi)的各模塊運(yùn)行的時(shí)序圖。在每一周期,由仿真內(nèi)核1001調(diào)用和激活基于時(shí)鐘周期模型1002。
在激活基于時(shí)鐘周期模型1002之后,處理器模塊1005和處理器核心模塊1003受到初始化(A1,A2)。
在初始化(A1)之后,處理器模塊1005進(jìn)入等待狀態(tài),等待來(lái)自于處理器核心模塊1003的初始化完成通知。
另一方面,在初始化(A2)之后,處理器核心模塊1003訪問(wèn)共享源模塊1007,并在其中寫入初始化完成通知中采用的一個(gè)參數(shù),該通知要發(fā)送給處理器模塊1005(寫訪問(wèn))(A3)。更具體地說(shuō),處理器核心模塊1003向共享源模塊1007發(fā)送寫請(qǐng)求,并且基于收到響應(yīng),向共享源模塊1007發(fā)送該參數(shù)和該參數(shù)要被寫入的位置地址。
基于從共享源模塊1007接收到關(guān)于參數(shù)已經(jīng)寫入的通知,處理器核心模塊1003就將一中斷請(qǐng)求寫入擴(kuò)展寄存器模塊1004(A4)。之后,處理器核心模塊1003進(jìn)入等待狀態(tài),等待來(lái)自處理器模塊1005的指令。
當(dāng)中斷請(qǐng)求寫入擴(kuò)展寄存器模塊1004時(shí),處理器模塊1005從等待狀態(tài)轉(zhuǎn)為執(zhí)行狀態(tài)(A5),訪問(wèn)共享源模塊1007并且讀取寫入其中的參數(shù)(讀訪問(wèn))(A6)。更具體地說(shuō),處理器模塊1005向共享源模塊1007發(fā)送讀請(qǐng)求,基于收到響應(yīng),向共享源模塊1007發(fā)送參數(shù)將要被寫入的位置地址?;诮邮盏皆摰刂?,共享源模塊1007就將該參數(shù)傳輸給處理器模塊1005,該參數(shù)存儲(chǔ)于該模塊1007中指定的地址處。
基于接收到該參數(shù),處理器模塊1005就分析該參數(shù)并且確認(rèn)處理器核心模塊1003的初始化已經(jīng)完成(A7),訪問(wèn)共享源模塊1007,并把要發(fā)送給處理器核心模塊1003的指令中采用的一個(gè)參數(shù)寫入其中(寫訪問(wèn))(A8)。該寫訪問(wèn)的詳細(xì)過(guò)程與上述處理器核心模塊1003所執(zhí)行的過(guò)程一樣,因此這里省略該過(guò)程的描述。然后,處理器模塊1005將一中斷請(qǐng)求寫入中斷控制單元1006(A9)。
當(dāng)該中斷請(qǐng)求寫入中斷控制單元1006時(shí),處理器核心模塊1003從等待狀態(tài)轉(zhuǎn)為執(zhí)行狀態(tài)(A10),訪問(wèn)共享源模塊1007并且讀取寫入其中的參數(shù)(讀訪問(wèn))(A11)。該讀訪問(wèn)的詳細(xì)過(guò)程與上述處理器模塊1005所執(zhí)行的過(guò)程一樣,因此這里省略該過(guò)程的描述。
處理器核心模塊1003根據(jù)該讀取的參數(shù)執(zhí)行預(yù)定的處理(A12),訪問(wèn)共享源模塊1007并且將該預(yù)定處理的結(jié)果作為一個(gè)參數(shù)寫入其中(寫訪問(wèn))(A13)。然后,處理器核心模塊1003將一中斷請(qǐng)求寫入擴(kuò)展寄存器模塊1004(A14)。之后,處理器核心模塊1003再次進(jìn)入等待狀態(tài),等待來(lái)自處理器模塊1005的指令。
當(dāng)該中斷請(qǐng)求寫入擴(kuò)展寄存器模塊1004中時(shí),處理器模塊1005從等待狀態(tài)轉(zhuǎn)為執(zhí)行狀態(tài)(A15),執(zhí)行下一處理。
仿真裝置1000以上述方式執(zhí)行基于時(shí)鐘周期仿真,用以仿真通過(guò)一共享源在兩處理器之間傳遞數(shù)據(jù)的系統(tǒng)的運(yùn)行。
同時(shí),如果希望在系統(tǒng)LSI市場(chǎng)中建立某種系統(tǒng)產(chǎn)品的優(yōu)勢(shì),重要的是縮短系統(tǒng)產(chǎn)品上市的時(shí)間(time-to-market),可以通過(guò)縮短開(kāi)發(fā)周期來(lái)提高上市時(shí)間的縮短程度。
縮短仿真速度非常有助于縮短開(kāi)發(fā)周期。這從以下事實(shí)可以很容易地想象的出來(lái)當(dāng)用像RTL(寄存器傳送級(jí))模型這樣的低抽象級(jí)系統(tǒng)設(shè)計(jì)模型來(lái)仿真時(shí),基于時(shí)鐘周期仿真就需要投入大量的時(shí)間來(lái)完成大型系統(tǒng)LSI的仿真。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種仿真裝置和仿真方法,其可用比傳統(tǒng)的進(jìn)行基于時(shí)鐘周期仿真的裝置更少的時(shí)間仿真一個(gè)包含使用多個(gè)周期運(yùn)行的一第一電路區(qū)塊和一第二電路區(qū)塊的系統(tǒng)的運(yùn)行。
上述發(fā)明目的可以通過(guò)一用于仿真一個(gè)包含使用多個(gè)周期運(yùn)行的一第一電路區(qū)塊和一第二電路區(qū)塊的系統(tǒng)運(yùn)行的仿真裝置來(lái)實(shí)現(xiàn),所述的仿真裝置包括一可用于仿真第一電路區(qū)塊具有時(shí)間概念運(yùn)行的第一仿真單元;一可用于仿真第二電路區(qū)塊沒(méi)有時(shí)間概念運(yùn)行的第二仿真單元;一可用于每隔一定時(shí)間激活第一仿真單元的第一控制單元;一可用于接收請(qǐng)求信息的接收單元,所述的請(qǐng)求信息是由第一仿真單元發(fā)給第二仿真單元的并與由第一電路區(qū)塊發(fā)給第二電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng);以及一可用于在接收單元接收到請(qǐng)求信息的情況下,激活第二仿真單元的第二控制單元。
上述本發(fā)明的目的還可以通過(guò)一用于仿真包含使用多個(gè)周期運(yùn)行的一第一電路區(qū)塊和一第二電路區(qū)塊的系統(tǒng)運(yùn)行的仿真方法來(lái)實(shí)現(xiàn),所述的仿真方法包括如下步驟設(shè)置一可用于仿真第一電路區(qū)塊具有時(shí)間概念運(yùn)行的第一仿真單元;設(shè)置一可用于仿真第二電路區(qū)塊沒(méi)有時(shí)間概念運(yùn)行的第二仿真單元;設(shè)置一可用于每隔一定時(shí)間激活第一仿真單元的第一控制單元;設(shè)置一可用于接收請(qǐng)求信息的接收單元,所述的請(qǐng)求信息是由第一仿真單元發(fā)給第二仿真單元的并與由第一電路區(qū)塊發(fā)給第二電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng);以及設(shè)置一可用于在接收單元接收到請(qǐng)求信息的情況下,激活第二仿真單元的第二控制單元。
上述本發(fā)明的目的還可以通過(guò)一其中存儲(chǔ)用于仿真包含使用多個(gè)周期運(yùn)行的一第一電路區(qū)塊和一第二電路區(qū)塊的系統(tǒng)運(yùn)行的仿真程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)來(lái)實(shí)現(xiàn),所述的仿真程序可以使計(jì)算機(jī)實(shí)現(xiàn)如下的作用一可用于仿真第一電路區(qū)塊具有時(shí)間概念運(yùn)行的第一仿真單元;一可用于仿真第二電路區(qū)塊沒(méi)有時(shí)間概念運(yùn)行的第二仿真單元;一可用于每隔一定時(shí)間激活第一仿真單元的第一控制單元;一可用于接收請(qǐng)求信息的接收單元,所述的請(qǐng)求信息是由第一仿真單元發(fā)給第二仿真單元的并與由第一電路區(qū)塊發(fā)給第二電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng);以及一可用于在接收單元接收到請(qǐng)求信息的情況下,激活第二仿真單元的第二控制單元。
這里應(yīng)當(dāng)指出的是,以上描述中提到的“時(shí)間概念”是指系統(tǒng)或總線周期中所設(shè)的系統(tǒng)時(shí)鐘。
采用上述結(jié)構(gòu),可以使本發(fā)明的仿真裝置用比傳統(tǒng)的進(jìn)行基于時(shí)鐘周期仿真的裝置更少的時(shí)間完成仿真,這是由于第二仿真單元仿真第二電路區(qū)塊沒(méi)有時(shí)間概念的運(yùn)行,而傳統(tǒng)裝置是仿真基于時(shí)鐘周期仿真的第一和第二電路區(qū)塊。
另外,上述結(jié)構(gòu)保持了系統(tǒng)仿真所要求的仿真精確度水平。這是由于當(dāng)從每隔一定時(shí)間受到激活的第一仿真單元發(fā)出請(qǐng)求信息時(shí)才激活的第二仿真單元,這樣,第二仿真單元就會(huì)以與第一仿真單元同步最少的方式進(jìn)行仿真。
在上述的仿真裝置中,當(dāng)仿真裝置可以還進(jìn)一步包括以下各部分時(shí),數(shù)據(jù)可以通過(guò)一共享源在第一電路區(qū)塊與第二電路區(qū)塊之間傳輸一用于仿真所述共享源的共享源仿真單元,和一用于接收第二請(qǐng)求信息并將該接收到的第二請(qǐng)求信息傳送給所述的共享源仿真單元的中介處理單元,所述的第二請(qǐng)求信息是由第二仿真單元發(fā)給第一仿真單元的,并且其與由第二電路區(qū)塊發(fā)給第一電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng),其中,如果共享源仿真單元接收到來(lái)自中介處理單元的第二請(qǐng)求信息,則第一仿真單元訪問(wèn)共享源仿真單元并讀取第二請(qǐng)求信息。
采用上述結(jié)構(gòu),甚至在仿真通過(guò)一共享源在第一電路區(qū)塊與第二電路區(qū)塊之間傳輸數(shù)據(jù)的系統(tǒng)過(guò)程中,也可以縮短仿真執(zhí)行時(shí)間。
在上述的仿真裝置中,在將請(qǐng)求信息發(fā)給第二仿真單元之后,第一仿真單元直到共享源仿真單元接收到來(lái)自中介處理單元的第二請(qǐng)求信息時(shí)才訪問(wèn)共享源仿真單元。
采用上述結(jié)構(gòu),第一仿真單元與第二仿真單元中的每一個(gè)都排他性地訪問(wèn)共享源仿真單元。
在上述的仿真裝置中,中介單元可以包括一用于,在將第二請(qǐng)求信息傳發(fā)給共享源仿真單元之前,將訪問(wèn)請(qǐng)求傳送給共享源仿真單元的通知單元;和一用于判斷是否已經(jīng)接收到來(lái)自共享源仿真單元的訪問(wèn)請(qǐng)求的響應(yīng)的判斷單元,其中,如果判斷單元判斷出已經(jīng)接收到訪問(wèn)請(qǐng)求的響應(yīng),則中介處理單元就將第二請(qǐng)求信息傳送給共享源仿真單元;如果判斷單元判斷出沒(méi)有接收到訪問(wèn)請(qǐng)求的響應(yīng),則中介處理單元就暫停將第二請(qǐng)求信息傳送給共享源仿真單元,并且在否定判斷后的一預(yù)定時(shí)間之后,指令通知單元將訪問(wèn)請(qǐng)求傳送給共享源仿真單元,其中所述的共享源仿真單元包括一仲裁單元,用于在接收到來(lái)自通知單元的訪問(wèn)請(qǐng)求之后,決定是否允許訪問(wèn)共享源,并且僅在仲裁單元決定允許訪問(wèn)的情況下,傳送一響應(yīng)給中介處理單元。
采用上述結(jié)構(gòu),可以仿真通過(guò)系統(tǒng)的仲裁器來(lái)執(zhí)行的在各個(gè)使用共享源的請(qǐng)求之間進(jìn)行的仲裁,并且還可以仿真該仲裁引起的傳輸延遲。
在上述的仿真裝置中,系統(tǒng)還可以進(jìn)一步包括用預(yù)定的多個(gè)周期運(yùn)行的第三電路區(qū)塊,所述的仿真裝置進(jìn)一步包括一用于仿真第三電路區(qū)塊沒(méi)有時(shí)間概念運(yùn)行的第三仿真單元,其中,接收單元進(jìn)一步接收由第一仿真單元發(fā)給第三仿真單元的并與由第一電路區(qū)塊發(fā)給第三電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng)的第三請(qǐng)求信息,如果接收單元接收到請(qǐng)求信息,則第二控制單元激活第二仿真單元,如果接收單元接收到第三請(qǐng)求信息,則激活第三仿真單元。
采用上述結(jié)構(gòu),使通過(guò)本發(fā)明的仿真裝置進(jìn)行的仿真需要用比傳統(tǒng)的基于時(shí)鐘周期仿真更少的時(shí)間,這是因?yàn)榈谝恢恋谌娐穮^(qū)塊中的第二電路區(qū)塊和第三電路區(qū)塊進(jìn)行的是沒(méi)有時(shí)間概念的仿真,而傳統(tǒng)的裝置是按照基于時(shí)鐘周期仿真的方式仿真全部的第一至第三電路區(qū)塊。
在上述的仿真裝置中,該系統(tǒng)還可以進(jìn)一步包括一使用預(yù)定的多個(gè)周期運(yùn)行的第三電路區(qū)塊,這時(shí)該仿真裝置還可以包括一用于仿真第三電路區(qū)塊沒(méi)有時(shí)間概念運(yùn)行的第三仿真單元,其中第二仿真單元包括一可用于激活第三仿真單元的第三控制單元。
上述結(jié)構(gòu)可用于仿真這樣一個(gè)系統(tǒng),即其中沒(méi)有從第一電路區(qū)塊發(fā)送到第三電路區(qū)塊的處理請(qǐng)求,并且第三電路區(qū)區(qū)塊由第二電路區(qū)塊激活。
上述的仿真裝置還可以進(jìn)一步包括一用于計(jì)算由第一控制單元激活第一仿真單元的激活次數(shù)的周期計(jì)算單元,其中,第一控制單元在仿真執(zhí)行開(kāi)始時(shí),激活第二仿真單元,第二仿真單元預(yù)先存儲(chǔ)一指示第二仿真單元改變仿真狀態(tài)的時(shí)序的時(shí)序信息,并在由第一控制單元激活第二仿真單元時(shí),將該時(shí)序信息傳送給周期計(jì)算單元,周期計(jì)算單元基于從第二仿真單元接收到的時(shí)序信息和由周期計(jì)算單元計(jì)算出的激活次數(shù),將第二仿真單元將被激活的時(shí)序通知給第二控制單元,第二控制單元用由周期計(jì)算單元通知的時(shí)序激活第二仿真單元。
采用上述結(jié)構(gòu),即使第一電路區(qū)塊尚未將一處理請(qǐng)求發(fā)送給第二電路區(qū)塊,也可以激活第二仿真單元,所述的第二仿真單元用以仿真第二電路區(qū)塊沒(méi)有時(shí)間概念的運(yùn)行。
在上述的仿真裝置中,共享源仿真單元還可以包括一用于記錄應(yīng)當(dāng)詳細(xì)提供的部分仿真信息說(shuō)明的記錄單元,一用于控制由輸出單元給用戶界面單元的仿真信息輸出的輸出控制單元,其中,用戶界面單元接收來(lái)自用戶的所要示出的部分仿真信息的說(shuō)明,并將該接收到的來(lái)自用戶的說(shuō)明通知輸出控制單元,輸出控制單元通常指示輸出單元輸出按用戶指定的那部分仿真信息,并且當(dāng)記錄單元其中記錄有說(shuō)明時(shí),指示輸出單元輸出按記錄單元中指定的那部分仿真信息。
采用上述結(jié)構(gòu),當(dāng)執(zhí)行仿真時(shí),用戶無(wú)需指定應(yīng)當(dāng)詳細(xì)示出的部分仿真信息,這是因?yàn)檫@部分仿真信息是按記錄單元中具體所指定的來(lái)示出,而通常情況下,示出的是用戶指定的那部分仿真信息。而且,采用上述結(jié)構(gòu)還可以抑制因仿真信息的示出而導(dǎo)致的仿真速度降低的問(wèn)題,這是因?yàn)榉抡嫘畔⑼ǔR院?jiǎn)單的方式示出,并且應(yīng)當(dāng)詳細(xì)示出的一部分仿真信息是動(dòng)態(tài)示出的。
以上的仿真裝置還可以進(jìn)一步包括一個(gè)多線程運(yùn)行系統(tǒng),其中,第二仿真單元和第三仿真單元分別通過(guò)該多線程運(yùn)行系統(tǒng)中的多條線程來(lái)控制。


根據(jù)以下結(jié)合示出本發(fā)明一個(gè)具體實(shí)施例的附圖進(jìn)行的描述,本發(fā)明的這些和其他目的、優(yōu)點(diǎn)以及特征將變得很明顯。
這些附圖中圖1是實(shí)施例1中仿真裝置的功能性方框圖;圖2是實(shí)施例1中仿真裝置內(nèi)所包括的各功能單元的運(yùn)行時(shí)序圖;圖3示出變換例1的仿真裝置中所設(shè)共享源模塊和共享源接口單元;圖4是用來(lái)處理訪問(wèn)請(qǐng)求的變換例1中共享源接口單元的運(yùn)行流程圖;圖5是變換例2的仿真裝置的功能方框圖;圖6是變換例3的仿真裝置的功能方框圖;圖7是變換例4的仿真裝置的功能方框圖;圖8是變換例5的仿真裝置的功能方框圖;圖9是變換例6的仿真裝置的功能方框圖;圖10是用來(lái)執(zhí)行傳統(tǒng)的基于時(shí)鐘周期仿真的一種傳統(tǒng)仿真裝置的功能圖;圖11是這種傳統(tǒng)仿真裝置的主要部件的運(yùn)行時(shí)序圖。
優(yōu)選實(shí)施例的詳細(xì)描述以下參照附圖描述本發(fā)明的仿真裝置。
<結(jié)構(gòu)>
圖1是仿真裝置1的功能方框圖。
如前面本發(fā)明背景技術(shù)中描述的仿真裝置1000的情況那樣,仿真裝置1仿真一個(gè)通過(guò)共享源在兩處理器之間傳遞數(shù)據(jù)的系統(tǒng)的運(yùn)行。
傳統(tǒng)技術(shù)的仿真裝置1000是使用一個(gè)基于時(shí)鐘周期模型來(lái)進(jìn)行仿真,而本發(fā)明的仿真裝置1是用一個(gè)本地型(native-type)模型和一個(gè)基于時(shí)鐘周期模型來(lái)仿真存在于一個(gè)仿真目標(biāo)系統(tǒng)中的兩個(gè)處理器。
用C或者C++編寫該系統(tǒng)設(shè)計(jì)模型。個(gè)人計(jì)算機(jī)中使用的一種編譯器如Microsoft Visual C++(注冊(cè)商標(biāo))用來(lái)將(i)基于時(shí)鐘周期模型的源代碼和(ii)本地型模型的程序轉(zhuǎn)換為仿真裝置1的可執(zhí)行格式。
本地型模型不同于由仿真內(nèi)核在每一周期都調(diào)用和激活的基于時(shí)鐘周期模型,其進(jìn)行的是沒(méi)有時(shí)間概念的運(yùn)行,不受周期所限制。更具體地說(shuō),本地型模型進(jìn)行仿真時(shí)不考慮本地型模型內(nèi)部運(yùn)行或者將數(shù)據(jù)傳送給其他功能區(qū)塊所需時(shí)間的周期。
仿真裝置1包括仿真內(nèi)核2、基于時(shí)鐘周期模型3、本地型模型執(zhí)行控制單元11和本地型模型4。
仿真裝置1是一具有CPU、存儲(chǔ)器、硬盤等的計(jì)算機(jī),當(dāng)CPU執(zhí)行存儲(chǔ)在存儲(chǔ)器或硬盤中的仿真程序時(shí),該仿真裝置1實(shí)現(xiàn)其功能。
仿真內(nèi)核2具有在每一周期調(diào)用基于時(shí)鐘周期模型3和控制基于時(shí)鐘周期模型3運(yùn)行的功能,其中一個(gè)周期對(duì)應(yīng)于一個(gè)系統(tǒng)時(shí)鐘周期。圖1中的空點(diǎn)箭頭表示仿真內(nèi)核2正在通過(guò)發(fā)出指令而在每一周期調(diào)用基于時(shí)鐘周期模型3。
雖然圖中未示,但是仿真內(nèi)核2僅在仿真執(zhí)行開(kāi)始時(shí)調(diào)用本地型模型4。
基于時(shí)鐘周期模型3包括處理器核心模塊5、擴(kuò)展寄存器模塊6、外部接口單元7、共享源接口單元8、共享源模塊9和中斷控制單元10。圖1中的空心箭頭表示需要時(shí)間周期的各模塊之間的訪問(wèn)。相反,實(shí)心線表示無(wú)需考慮時(shí)間周期所執(zhí)行的訪問(wèn)(下文中,“無(wú)需考慮時(shí)間周期”稱為“周期之外”)。
如傳統(tǒng)技術(shù)中所述的那樣,處理器核心模塊5用一ISS來(lái)仿真系統(tǒng)中從處理器核心的運(yùn)行。
擴(kuò)展寄存器模塊6是一擴(kuò)展寄存器模型。共享源模塊9是諸如共享存儲(chǔ)器和總線之類共享源的模型。
外部接口單元7是一功能單元,它用于中介處理從基于時(shí)鐘周期模型3到本地型模型4的中斷請(qǐng)求的傳輸。外部接口單元7在每一周期都檢查擴(kuò)展寄存器模塊6,用以查看是否有一中斷請(qǐng)求已被寫在事先寄存的預(yù)定地址處。
在確認(rèn)處理器核心模塊5已經(jīng)把要發(fā)送給本地型模型4的一個(gè)中斷請(qǐng)求寫入擴(kuò)展寄存器模塊6的情況下,外部接口單元7將該中斷請(qǐng)求傳送給本地型模型執(zhí)行控制單元11。
基于從外部接口單元7接收該中斷請(qǐng)求,本地型模型執(zhí)行控制單元11就激活本地型模型4。更具體地說(shuō),本地型模型執(zhí)行控制單元11將一狀態(tài)轉(zhuǎn)變請(qǐng)求發(fā)送給本地型模型4中所包含的狀態(tài)控制單元12。
本地型模型4是一功能單元,它用于仿真系統(tǒng)中主處理器的運(yùn)行,且包括一狀態(tài)控制單元12。
狀態(tài)控制單元12是一功能單元,它利用一標(biāo)志或類似物控制本地型模型4的兩個(gè)狀態(tài)執(zhí)行狀態(tài);等待狀態(tài)?;趶谋镜匦湍P蛨?zhí)行控制單元11接收到狀態(tài)轉(zhuǎn)變請(qǐng)求,狀態(tài)控制單元12就將本地型模型4從等待狀態(tài)轉(zhuǎn)到執(zhí)行狀態(tài)。當(dāng)本地型模型4完成執(zhí)行一個(gè)處理時(shí),狀態(tài)控制單元12將本地型模型4從執(zhí)行狀態(tài)轉(zhuǎn)到等待狀態(tài)。
共享源接口單元8是一功能單元,它用于中介處理通過(guò)本地型模型4進(jìn)入基于時(shí)鐘周期模型的共享源模塊9的訪問(wèn)。
中斷控制單元10是一功能單元,它用于接收和記錄從本地型模型4發(fā)送給處理器核心模塊5的中斷請(qǐng)求?;诮邮盏街袛嗾?qǐng)求,中斷控制單元10就將該接收信息通知處理器核心模塊5。
<運(yùn)行>
下面將參照時(shí)序圖說(shuō)明仿真裝置1的仿真運(yùn)行。
圖2是仿真裝置1中所包括的各功能單元的運(yùn)行時(shí)序圖。圖2中所示的黑色圓圈B1-B14表示“周期之外”的運(yùn)行。也就是說(shuō),在這些黑色圓圈處執(zhí)行的每一個(gè)實(shí)際仿真運(yùn)行都只需要少量的時(shí)間。
在仿真開(kāi)始之后,本地型模型4和處理器核心模塊5受到初始化(B1,C1)。
在該初始化之后,本地型模型4進(jìn)入等待狀態(tài),等待來(lái)自處理器核心模塊5的初始化完成通知。
另一方面,在該初始化(C1)之后,處理器核心模塊5訪問(wèn)共享源模塊9,并且在其中寫入一個(gè)參數(shù),該參數(shù)用于要發(fā)送給本地型模型4的初始化完成通知中(寫訪問(wèn))(C2)。
該寫訪問(wèn)以與本發(fā)明背景技術(shù)中所述方式相同的方式進(jìn)行。也就是說(shuō),處理器核心模塊5將一寫請(qǐng)求發(fā)送給共享源模塊9,并且基于收到一個(gè)響應(yīng),就將該參數(shù)和要寫入該參數(shù)的位置地址發(fā)送給共享源模塊9。
基于從共享源模塊9接收到參數(shù)已經(jīng)寫入的通知,處理器核心模塊5就將一中斷請(qǐng)求寫入擴(kuò)展寄存器模塊6(C3)。之后,處理器核心模塊5進(jìn)入等待狀態(tài),等待來(lái)自本地型模型4的指令。
當(dāng)將中斷請(qǐng)求寫入擴(kuò)展寄存器模塊6時(shí),外部接口單元7將該中斷請(qǐng)求傳輸給本地型模型執(zhí)行控制單元11(B2)。
一旦本地型模型執(zhí)行控制單元11從外部接口單元7接收到該中斷請(qǐng)求,它就激活本地型模型4(B3)。
本地型模型4從等待狀態(tài)轉(zhuǎn)為執(zhí)行狀態(tài),并且訪問(wèn)試圖讀取寫入共享源模塊9中參數(shù)的共享源接口單元8(B4)。更具體地說(shuō),本地型模塊4將共享源模塊9中所寫入的參數(shù)的地址發(fā)送給共享源接口單元8。
基于從本地型模型4收到該地址,共享源接口單元8就訪問(wèn)共享源模塊9,以讀取寫入其中的參數(shù)(B5)。由于共享源模塊9是基于時(shí)鐘周期模型的一個(gè)組成部份,所以需要幾個(gè)周期完全地讀取該參數(shù)(C4)。
基于接收到該參數(shù),共享源接口單元8就將該參數(shù)傳輸給本地型模型4(B6)。
基于接收到表示處理器核心模塊5的初始化已經(jīng)完成的參數(shù),本地型模型4就向共享源接口單元8發(fā)送一個(gè)參數(shù)和要寫入該參數(shù)的一個(gè)位置地址,該參數(shù)表示處理器核心模塊5所要執(zhí)行的一個(gè)指令(B7)。
基于接收到該參數(shù)和地址,共享源接口單元8就訪問(wèn)共享源模塊9,以將該參數(shù)寫入該具體指定的地址中(B8)。需要幾個(gè)周期來(lái)完全地寫入該參數(shù)(C5)。
一旦共享源接口單元8從共享源模塊9接收到一寫入完成通知,它就將該事實(shí)通知本地型模型4(B9)。
基于接收到該通知,本地型模型4就向中斷控制單元10發(fā)送一中斷請(qǐng)求(B10)。
共享源接口單元8接收本地型模型4發(fā)送給中斷控制單元10的中斷請(qǐng)求,并且訪問(wèn)中斷控制單元10以將該中斷請(qǐng)求寫入其中(B11)。需要幾個(gè)周期來(lái)完全地寫入該中斷請(qǐng)求(C6)。
當(dāng)該中斷請(qǐng)求寫入中斷控制單元10時(shí),處理器核心模塊5從等待狀態(tài)轉(zhuǎn)為執(zhí)行狀態(tài)(C7),訪問(wèn)共享源模塊9并且讀取寫入其中的參數(shù)(讀訪問(wèn))(C8)。
以與本發(fā)明背景技術(shù)中所述相同的方式執(zhí)行該讀訪問(wèn)。也就是說(shuō),處理器核心模塊5向共享源模塊9發(fā)送讀請(qǐng)求,基于接收到響應(yīng),就將該參數(shù)的地址發(fā)送給共享源模塊9。共享源模塊9把已經(jīng)存儲(chǔ)在該具體指定的地址上的參數(shù)發(fā)送給處理器核心模塊5。
基于接收到該參數(shù),處理器核心模塊5就根據(jù)所接收到的參數(shù)執(zhí)行預(yù)定處理(C9),訪問(wèn)共享源模塊9,并且將該預(yù)定處理的結(jié)果作為一個(gè)參數(shù)寫入其中(寫訪問(wèn))(C10)。然后,處理器核心模塊5將一中斷請(qǐng)求寫入擴(kuò)展寄存器模塊6(C11)。之后,處理器核心模塊5再次進(jìn)入等待狀態(tài),等待來(lái)自本地型模型4的指令。
一旦該中斷請(qǐng)求被寫入擴(kuò)展寄存器模塊6,外部接口單元7就將該中斷請(qǐng)求傳送給本地型模型執(zhí)行控制單元11(B12)。
一旦本地型模型執(zhí)行控制單元11接收到該中斷請(qǐng)求,它就激活本地型模型4(B13)。
本地型模型4從等待狀態(tài)轉(zhuǎn)為執(zhí)行狀態(tài),執(zhí)行下一個(gè)處理(B14)。
這里應(yīng)注意的是,對(duì)處理器核心模塊5進(jìn)行編程,使其在將一中斷請(qǐng)求寫入擴(kuò)展寄存器模塊6之后,直到它接受到已經(jīng)寫入中斷控制單元10的一個(gè)中斷請(qǐng)求時(shí)才訪問(wèn)共享源模塊9。因此,處理器核心模塊5與本地型模型4不可能同時(shí)訪問(wèn)共享源模塊9。
如從以上的描述很明顯地看出的那樣,本實(shí)施例的仿真裝置1所執(zhí)行的仿真比傳統(tǒng)的基于時(shí)鐘周期仿真需要的時(shí)間少,這是因?yàn)橥ㄟ^(guò)采用執(zhí)行“周期之外”處理的本地型模型而減少了時(shí)間。而且,本實(shí)施例的仿真裝置1所執(zhí)行的仿真在精確度方面接近傳統(tǒng)的基于時(shí)鐘周期仿真,這是因?yàn)楸镜匦湍P褪怯苫跁r(shí)鐘周期模型發(fā)出的處理請(qǐng)求激活的。
變換例1以下描述本發(fā)明仿真裝置的一個(gè)變換例(變換例1)。
<結(jié)構(gòu)>
變換例1的仿真裝置具有與上述仿真裝置1相同的結(jié)構(gòu),只是它在共享源模塊中有一仲裁單元,并且在共享源接口單元中有一訪問(wèn)請(qǐng)求單元和一響應(yīng)判斷單元。這里,僅給出對(duì)這些不同之處的解釋。
圖3示出了變換例1的仿真裝置中設(shè)置的共享源模塊和共享源接口單元。
如圖3所示,共享源模塊9A包括仲裁單元91,而共享源接口單元8A包括訪問(wèn)請(qǐng)求單元81和響應(yīng)判斷單元82。
仲裁單元91是一功能單元,它仿真一個(gè)用于在使用共享源的各個(gè)請(qǐng)求之間進(jìn)行仲裁的仲裁器。當(dāng)從訪問(wèn)請(qǐng)求單元81接收到訪問(wèn)共享源模塊9A的請(qǐng)求時(shí),仲裁單元91就判斷是否允許訪問(wèn),只有在它判定是肯定的結(jié)果時(shí),它才將一響應(yīng)發(fā)送給共享源接口單元8A。
當(dāng)從本地型模型4接收到訪問(wèn)共享源模塊9A的請(qǐng)求時(shí),訪問(wèn)請(qǐng)求單元81將該訪問(wèn)請(qǐng)求通知仲裁單元91。
響應(yīng)判斷單元82響應(yīng)于發(fā)送給仲裁單元91的訪問(wèn)請(qǐng)求,判斷是否已經(jīng)從仲裁單元91傳來(lái)一個(gè)響應(yīng)。
<運(yùn)行>
下面,說(shuō)明共享源接口單元8A是如何處理訪問(wèn)共享源模塊9A的請(qǐng)求的。
圖4是共享源接口單元8A處理一個(gè)訪問(wèn)請(qǐng)求的操作流程圖。
當(dāng)從本地型模型4接收到訪問(wèn)共享源模塊9A以將一參數(shù)寫入其中的請(qǐng)求時(shí),訪問(wèn)請(qǐng)求單元81將該訪問(wèn)請(qǐng)求通知仲裁單元91(步驟S1)。
響應(yīng)判斷單元82響應(yīng)于該訪問(wèn)請(qǐng)求,判斷是否已經(jīng)從仲裁單元91傳來(lái)一個(gè)響應(yīng)(步驟S2)。如果響應(yīng)判斷單元82判斷已經(jīng)傳來(lái)一個(gè)響應(yīng)(步驟S2中的“是”),那么就將該參數(shù)寫入共享源模塊9A(步驟S3),然后該過(guò)程結(jié)束。
如果響應(yīng)判斷單元82判斷尚未傳來(lái)一個(gè)響應(yīng)(步驟S2中的“否”),那么就延長(zhǎng)一個(gè)周期來(lái)進(jìn)行等待(步驟S4),然后該控制返回到步驟S1,訪問(wèn)請(qǐng)求單元81將該訪問(wèn)請(qǐng)求通知仲裁單元91(步驟S1)。
如上所述,變換例1的仿真裝置可以仿真由系統(tǒng)的仲裁器所進(jìn)行的對(duì)請(qǐng)求使用共享源的各請(qǐng)求之間的仲裁,并且該仿真裝置還可以仿真仲裁引起的傳輸延遲。
變換例2
以下描述本發(fā)明仿真裝置的另一個(gè)變換例(變換例2)。
圖5是變換例2的仿真裝置的功能方框圖。
圖5中所示仿真裝置1A具有與上述仿真裝置1相同的功能,只是它另外還有一本地型模型4A,并且它還有替代擴(kuò)展寄存器模塊6、外部接口單元7和本地型模型執(zhí)行控制單元11的擴(kuò)展寄存器模塊6A、外部接口單元7A和本地型模型執(zhí)行控制單元11A,這些部分反映出本地型模型4A的增加。
擴(kuò)展寄存器模塊6A分別具有兩個(gè)與本地型模型4和4A對(duì)應(yīng)的存儲(chǔ)區(qū)。因此,各存儲(chǔ)區(qū)的地址分別對(duì)應(yīng)于本地型模型4和4A。處理器核心模塊5將一中斷請(qǐng)求寫入一個(gè)地址上的擴(kuò)展寄存器模塊6A中的一個(gè)存儲(chǔ)區(qū)內(nèi),該地址對(duì)應(yīng)于中斷請(qǐng)求要發(fā)送到的本地型模型。
外部接口單元7A在每一個(gè)周期都檢查擴(kuò)展寄存器模塊6A,用以查看其中是否已經(jīng)寫入一個(gè)中斷請(qǐng)求,如果已經(jīng)寫入一個(gè)中斷請(qǐng)求,那么就將一個(gè)信息傳送給本地型模型執(zhí)行控制單元11A,該信息用以指定一個(gè)與已經(jīng)寫入該中斷請(qǐng)求的地址相對(duì)應(yīng)的本地型模型。
基于從外部接口單元7A接收到指定一本地型模型的信息,本地型模型執(zhí)行控制單元11A就激活所指定的本地型模型。更具體地說(shuō),如果本地型模型執(zhí)行控制單元11A接收到指定例如本地型模型4A的信息,那么它就通過(guò)將一狀態(tài)變換請(qǐng)求傳送給本地型模型4A中所包括的狀態(tài)控制單元12A來(lái)激活該本地型模型4A。
應(yīng)注意的是,雖然圖5僅僅示出了兩個(gè)本地型模型,不過(guò)本地型模型的數(shù)目并不僅限于兩個(gè),而可以是三個(gè)或者更多。
變換例3以下描述本發(fā)明仿真裝置的另一個(gè)變換例(變換例3)。
圖6是變換例3的仿真裝置的功能方框圖。
圖6中所示仿真裝置1B具有與上述仿真裝置相同的功能,只是它具有替代本地型模型4的本地型模型4B和4C。
本地型模型4C仿真一個(gè)從處理器。本地型模型4B仿真一個(gè)DMA控制器,該控制器是從處理器的外圍硬件設(shè)備。本地型模型4C對(duì)本地型模型4B執(zhí)行的DMA變換進(jìn)行設(shè)定。本地型模型4C包括控制DMA變換的執(zhí)行狀態(tài)的控制單元41,執(zhí)行狀態(tài)例如是開(kāi)始和停止。
本地型模型4B的狀態(tài)控制單元12B根據(jù)從控制單元41接收到的指令來(lái)控制本地型模型4B的狀態(tài)。
采用上述結(jié)構(gòu),就可以使用一個(gè)本地型模型,象具有本地型模型4B的情況那樣,通過(guò)一個(gè)中斷請(qǐng)求或者類似命令來(lái)仿真一個(gè)基于時(shí)鐘周期模型3控制激活的部件,如DMA控制器。
變換例4以下描述本發(fā)明仿真裝置的另一個(gè)變換例(變換例4)。
圖7是變換例4的仿真裝置的功能方框圖。
圖7中所示仿真裝置1C具有與上述仿真裝置1相同的功能,只是它具有替代本地型模型4的本地型模型4D,和替代基于時(shí)鐘周期模型3的基于時(shí)鐘周期模型3C另外還具有一個(gè)周期計(jì)算單元13。
變換例4的本地型模型4D保持有時(shí)序信息,該信息表示本地型模型4D在執(zhí)行狀態(tài)與等待狀態(tài)之間變換所采用的時(shí)序。當(dāng)本地型模型4D在仿真執(zhí)行開(kāi)始時(shí)被仿真內(nèi)核2調(diào)用時(shí),本地型模型4D將該時(shí)序信息傳送給周期計(jì)算單元13。
每一次仿真內(nèi)核2調(diào)用基于時(shí)鐘周期模型3C,周期計(jì)算單元13就計(jì)數(shù)增加一次。也就是說(shuō),周期計(jì)算單元13計(jì)算調(diào)用次數(shù),該次數(shù)等于仿真內(nèi)核2調(diào)用基于時(shí)鐘周期模型3C的周期數(shù)。而且,當(dāng)計(jì)數(shù)達(dá)到與時(shí)序信息表示的任意時(shí)序(即,變?yōu)閳?zhí)行狀態(tài)的時(shí)序或者變?yōu)榈却隣顟B(tài)的時(shí)序)相對(duì)應(yīng)的數(shù)目時(shí),周期計(jì)算單元13就通過(guò)替代外部接口單元7的外部接口單元7C將一定時(shí)器中斷通知傳送給本地型模型執(zhí)行控制單元11。
基于接收到定時(shí)器中斷通知,本地型模型執(zhí)行控制單元11就將一狀態(tài)變換請(qǐng)求傳送給狀態(tài)控制單元12。
采用上述結(jié)構(gòu),可以用一個(gè)本地型模型來(lái)仿真一個(gè)時(shí)間事件過(guò)程,例如一實(shí)際系統(tǒng)的嵌入式通用實(shí)時(shí)OS(操作系統(tǒng))所需的周期處理功能或者警告處理功能。
變換例5以下描述本發(fā)明仿真裝置的另一個(gè)變換例(變換例5)。
圖8是變換例5的仿真裝置的功能方框圖。
圖8中所示仿真裝置1D具有與上述仿真裝置1相同的功能,只是它另外還有一用戶界面單元17和一信息輸出控制接口單元14,并且它具有替代共享源模塊9的共享源模塊9D。
與共享源模塊9相比,共享源模塊9D另外還包括信息輸出單元15和信息輸出控制寄存器16。
信息輸出單元15是一功能單元,它輸出表示共享源模塊9D運(yùn)行狀態(tài)的仿真信息。更具體地說(shuō),信息輸出單元15所輸出的仿真信息包括與多個(gè)總線主控器(例如,處理器核心和處理器)訪問(wèn)共享源有關(guān)的信息。
信息輸出控制寄存器16在共享源模塊9D中映射成(map onto)一存儲(chǔ)空間,并當(dāng)運(yùn)行變得很復(fù)雜時(shí),也就是說(shuō),在需要詳細(xì)分析時(shí),在其中記錄一條由處理器核心模塊5或者本地型模型4傳送來(lái)的仿真信息的具體說(shuō)明。信息輸出控制寄存器16還將這條仿真信息的具體說(shuō)明通知信息輸出控制接口單元14。
用戶界面單元17是具有顯示功能的稱為GUI(圖形用戶界面)的部件,它能夠以圖形的方式顯示來(lái)自信息輸出控制接口單元14的一條仿真信息。用戶界面單元17還從用戶那里接收要顯示的一條仿真信息的具體說(shuō)明,并且將用戶指定的這條仿真信息通知信息輸出控制接口單元14。
根據(jù)(i)來(lái)自用戶界面單元1 7的指定的一條仿真信息的通知和(ii)來(lái)自信息輸出控制寄存器16的指定的一條仿真信息的通知,信息輸出控制接口單元14將信息輸出單元15輸出的仿真信息傳送給用戶界面單元17。更具體地說(shuō),信息輸出控制接口單元14通常輸出用戶指定的一條仿真信息,但是,當(dāng)信息輸出控制寄存器16在其中記錄有一條仿真信息的具體說(shuō)明時(shí),信息輸出控制接口單元14就輸出信息輸出控制寄存器16指定的一條仿真信息。
仿真的流程被寫入處理器核心模塊5讀取和執(zhí)行的程序中或者本地型模型4中所寫入的程序中。因此,創(chuàng)建和編寫系統(tǒng)設(shè)計(jì)模型的開(kāi)發(fā)人員知道仿真運(yùn)行什么時(shí)候變復(fù)雜。因此,開(kāi)發(fā)人員可以編寫這樣的程序,以便在仿真運(yùn)行變得復(fù)雜時(shí),處理器核心模塊5或者本地型模型4將一條仿真信息的具體說(shuō)明發(fā)送給信息輸出控制寄存器16,以使指定的這條仿真信息得以顯示。
采用上述結(jié)構(gòu),可以在需要詳細(xì)分析時(shí),指定仿真流程中的一個(gè)點(diǎn)。而且,如果如上所述,仿真信息通常以簡(jiǎn)單的方式顯示,那么可以抑制因顯示該仿真信息而導(dǎo)致的仿真速度的降低。
變換例6以下描述本發(fā)明仿真裝置的另一個(gè)變換例(變換例6)。
圖9是變換例6的仿真裝置的功能方框圖。
圖9中所示的仿真裝置1E具有與上述仿真裝置1相同的功能,只是它采用用于執(zhí)行仿真的OS線程控制單元20,該單元是仿真裝置1E的基本OS功能單元,而且該本地型模型隨如圖9中所示的各線程產(chǎn)生?;綩S可以是任意的多線程OS,例如Windows或者UNIX。
在每一個(gè)仿真執(zhí)行開(kāi)始時(shí),OS把用來(lái)標(biāo)識(shí)各線程的句柄(handle)分配給本地型模型4E、4F和4G。每一次執(zhí)行仿真,這些句柄都改變。因此,在每一次仿真開(kāi)始時(shí),共享源接口單元8E(它替代共享源接口單元8)和本地型模型執(zhí)行控制單元11E(它替代本地型模型執(zhí)行控制單元11)都會(huì)創(chuàng)建一個(gè)表,該表顯示出所分配句柄與本地型模型標(biāo)識(shí)符之間的關(guān)系,處理器核心模塊5利用這些標(biāo)識(shí)符而將中斷請(qǐng)求發(fā)送給各本地型模型。
根據(jù)所創(chuàng)建的表,本地型模型執(zhí)行控制單元11E將標(biāo)識(shí)與要執(zhí)行的本地型模型對(duì)應(yīng)的線程的句柄通知OS線程控制單元20。
在例如將WindowXP(注冊(cè)商標(biāo))用作仿真裝置1E的OS的情況下,OS線程控制單元20控制每一個(gè)采用API(應(yīng)用程序接口)功能的線程的執(zhí)行API功能“懸掛線程”,它用來(lái)暫停每一個(gè)本地型模型的線程;API功能“恢復(fù)線程”,它用來(lái)恢復(fù)線程的執(zhí)行。
基于從本地型模型執(zhí)行控制單元11E接收到標(biāo)識(shí)一個(gè)線程的句柄,OS線程控制單元20就將所接收到的句柄標(biāo)識(shí)的線程變?yōu)閳?zhí)行狀態(tài)。
變換例6的上述結(jié)構(gòu)消除了對(duì)建立標(biāo)志位的需要,該標(biāo)志位用以控制每一個(gè)本地型模型的執(zhí)行狀態(tài)。
補(bǔ)充說(shuō)明本發(fā)明并不限于上述特征,但是包括以下特征。
(1)在共享源模塊9中可能設(shè)定數(shù)量不足的參數(shù)的情況下,外部接口單元7可以保持一定數(shù)量的參數(shù),并且根據(jù)寫入擴(kuò)展寄存器模塊6中的一個(gè)值,可以從外部接口單元7中所保持的那些參數(shù)中選擇一個(gè)參數(shù)。
(2)變換例1中所述的共享源模塊9可以是一動(dòng)態(tài)RAM的模型。動(dòng)態(tài)RAM每隔一定時(shí)間執(zhí)行刷新操作。因此,這種情況下,仲裁單元91可以用作一接口單元。當(dāng)從共享源接口單元8A接收到訪問(wèn)動(dòng)態(tài)RAM的請(qǐng)求時(shí),共享源模塊9判斷動(dòng)態(tài)RAM是否是可訪問(wèn)的,并且將所判斷的內(nèi)容顯示給共享源接口單元8A。更具體地說(shuō),當(dāng)仲裁單元91在動(dòng)態(tài)RAM沒(méi)有執(zhí)行刷新操作情況下接收到這樣一個(gè)訪問(wèn)請(qǐng)求時(shí),它就判定動(dòng)態(tài)RAM是可訪問(wèn)的,并且將一個(gè)響應(yīng)發(fā)送給共享源接口單元8A;而當(dāng)動(dòng)態(tài)RAM沒(méi)有執(zhí)行刷新操作時(shí),仲裁單元91就判定動(dòng)態(tài)RAM是不可訪問(wèn)的,不發(fā)送響應(yīng)。
(3)本發(fā)明優(yōu)選實(shí)施例中描述的是,用諸如C或者C++之類的語(yǔ)言編寫基于時(shí)鐘周期模型和本地型模型。但是,用于編寫基于時(shí)鐘周期模型和本地型模型的語(yǔ)言并不限于這些語(yǔ)言,其他的編程語(yǔ)言例如Java(注冊(cè)商標(biāo))或者BASIC也可以用于編寫基于時(shí)鐘周期模型和本地型模型。
(4)實(shí)施例中所述的處理器核心模塊5可以用一種CAS(周期精確仿真器)實(shí)現(xiàn),該仿真器甚至連流水線或者高速緩沖存儲(chǔ)器操作都能精確地仿真。
(5)本發(fā)明可以是用來(lái)實(shí)現(xiàn)上述仿真裝置每一個(gè)功能的程序。該程序可以存儲(chǔ)在諸如IC卡、光盤、軟盤或者ROM之類的存儲(chǔ)介質(zhì)中,并且可以隨存儲(chǔ)介質(zhì)流通或者分配,或者可以通過(guò)適當(dāng)?shù)耐ㄐ磐緩街苯恿魍ɑ蛘叻峙洹?br> 這種流通或者分配的程序可以安裝在具有ROM或類似部件的機(jī)器中,并且可以在該機(jī)器中運(yùn)行以在該機(jī)器中實(shí)現(xiàn)上述仿真裝置。
雖然已經(jīng)參照附圖借助實(shí)例完整地描述了本發(fā)明,不過(guò)應(yīng)當(dāng)注意的是,對(duì)本領(lǐng)域的那些技術(shù)人員來(lái)說(shuō)顯然可以作各種改變和修改。因此,除非這些改變和修改不在本發(fā)明的范圍內(nèi),否則應(yīng)當(dāng)將它們解釋為包括在本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種用于仿真包含用多個(gè)周期運(yùn)行的一第一電路區(qū)塊和一第二電路區(qū)塊的系統(tǒng)運(yùn)行的仿真裝置,該仿真裝置包括一可用于仿真第一電路區(qū)塊具有時(shí)間概念運(yùn)行的第一仿真單元;一可用于仿真第二電路區(qū)塊沒(méi)有時(shí)間概念運(yùn)行的第二仿真單元;一可用于每隔一定時(shí)間激活第一仿真單元的第一控制單元;一可用于接收請(qǐng)求信息的接收單元,所述的請(qǐng)求信息是由第一仿真單元發(fā)給第二仿真單元的,并與由第一電路區(qū)塊發(fā)給第二電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng);以及一可用于在接收單元接收到請(qǐng)求信息的情況下,激活第二仿真單元的第二控制單元。
2.如權(quán)利要求1的仿真裝置,其中,通過(guò)一共享源在第一電路區(qū)塊和第二電路區(qū)塊之間傳送數(shù)據(jù),所述的仿真裝置進(jìn)一步包括一用于仿真所述共享源的共享源仿真單元,和一用于接收第二請(qǐng)求信息并將該接收到的第二請(qǐng)求信息傳送給所述的共享源仿真單元的中介處理單元,所述的第二請(qǐng)求信息是由第二仿真單元發(fā)給第一仿真單元的,并且其與由第二電路區(qū)塊發(fā)給第一電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng),其中,如果共享源仿真單元接收到來(lái)自中介處理單元的第二請(qǐng)求信息,則第一仿真單元訪問(wèn)共享源仿真單元并讀取第二請(qǐng)求信息。
3.如權(quán)利要求2的仿真裝置,其中,在將請(qǐng)求信息發(fā)給第二仿真單元之后,第一仿真單元直到共享源仿真單元接收到來(lái)自中介處理單元的第二請(qǐng)求信息時(shí)才訪問(wèn)共享源仿真單元。
4.如權(quán)利要求3的仿真裝置,其中,所述的中介處理單元包括一用于在將第二請(qǐng)求信息傳送給共享源仿真單元之前,將訪問(wèn)請(qǐng)求傳送給共享源仿真單元的通知單元;和一用于判斷是否已經(jīng)接收到來(lái)自共享源仿真單元的訪問(wèn)請(qǐng)求的響應(yīng)的判斷單元,其中,如果判斷單元判斷出已經(jīng)接收到對(duì)訪問(wèn)請(qǐng)求的響應(yīng),則中介處理單元就將第二請(qǐng)求信息傳送給共享源仿真單元;如果判斷單元判斷出沒(méi)有接收到對(duì)訪問(wèn)請(qǐng)求的響應(yīng),則中介處理單元就暫停將第二請(qǐng)求信息傳送給共享源仿真單元,并且在否定判斷后的一預(yù)定時(shí)間之后,指令通知單元將訪問(wèn)請(qǐng)求傳送給共享源仿真單元,其中所述的共享源仿真單元包括一仲裁單元,用于在接收到來(lái)自通知單元的訪問(wèn)請(qǐng)求之后,決定是否允許訪問(wèn)共享源,并且僅在仲裁單元決定允許訪問(wèn)的情況下,傳送一響應(yīng)給中介處理單元。
5.如權(quán)利要求1的仿真裝置,其中,系統(tǒng)進(jìn)一步包括用預(yù)定的多個(gè)周期運(yùn)行的第三電路區(qū)塊,所述的仿真裝置進(jìn)一步包括一用于仿真第三電路區(qū)塊沒(méi)有時(shí)間概念運(yùn)行的第三仿真單元,其中,接收單元進(jìn)一步接收由第一仿真單元發(fā)給第三仿真單元的并與由第一電路區(qū)塊發(fā)給第三電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng)的第三請(qǐng)求信息,如果接收單元接收到請(qǐng)求信息,則第二控制單元激活第二仿真單元,如果接收單元接收到第三請(qǐng)求信息,則激活第三仿真單元。
6.如權(quán)利要求1的仿真裝置,其中,系統(tǒng)進(jìn)一步包括用預(yù)定的多個(gè)周期運(yùn)行的第三電路區(qū)塊,所述的仿真裝置進(jìn)一步包括一用于仿真第三電路區(qū)塊沒(méi)有時(shí)間概念運(yùn)行的第三仿真單元,其中,第二仿真單元包括一用于激活第三仿真單元的第三控制單元。
7.如權(quán)利要求1的仿真裝置,其進(jìn)一步包括一用于計(jì)算由第一控制單元激活第一仿真單元的激活次數(shù)的周期計(jì)算單元,其中第一控制單元在仿真執(zhí)行開(kāi)始時(shí),激活第二仿真單元,第二仿真單元預(yù)先存儲(chǔ)一指示第二仿真單元改變其仿真狀態(tài)的時(shí)序的時(shí)序信息,并在由第一控制單元激活第二仿真單元時(shí),將該時(shí)序信息傳送給周期計(jì)算單元,周期計(jì)算單元基于從第二仿真單元接收到的時(shí)序信息和由周期計(jì)算單元計(jì)算出的激活次數(shù),將第二仿真單元將被激活的時(shí)序通知給第二控制單元,第二控制單元用由周期計(jì)算單元通知的時(shí)序激活第二仿真單元。
8.如權(quán)利要求2的仿真裝置,其進(jìn)一步包括一用于以仿真信息形式輸出由共享源仿真單元執(zhí)行的仿真結(jié)果;一用于向用戶說(shuō)明來(lái)自輸出單元輸出的仿真信息的用戶界面單元。
9.如權(quán)利要求8的仿真裝置,其中,共享源仿真單元進(jìn)一步包括一用于記錄應(yīng)當(dāng)詳細(xì)提供的部分仿真信息說(shuō)明的記錄單元,一用于控制由輸出單元給用戶界面單元的仿真信息輸出的輸出控制單元,其中,用戶界面單元接收來(lái)自用戶的所要示出的部分仿真信息的說(shuō)明,并將該接收到的來(lái)自用戶的說(shuō)明通知輸出控制單元,輸出控制單元通常指示輸出單元輸出按用戶指定的那部分仿真信息,并且當(dāng)記錄單元其中記錄有說(shuō)明時(shí),指示輸出單元輸出按記錄單元中指定的那部分仿真信息。
10.如權(quán)利要求5的仿真裝置,其進(jìn)一步包括一多線程運(yùn)行系統(tǒng),其中分別通過(guò)多線程運(yùn)行系統(tǒng)中的多條線程來(lái)控制第二仿真單元和第三仿真單元。
11.一種用于仿真包含用多個(gè)周期運(yùn)行的一第一電路區(qū)塊和一第二電路區(qū)塊的系統(tǒng)運(yùn)行的仿真方法,該仿真方法包括如下步驟設(shè)置一可用于仿真第一電路區(qū)塊具有時(shí)間概念運(yùn)行的第一仿真單元;設(shè)置一可用于仿真第二電路區(qū)塊沒(méi)有時(shí)間概念運(yùn)行的第二仿真單元;設(shè)置一可用于每隔一定時(shí)間激活第一仿真單元的第一控制單元;設(shè)置一可用于接收請(qǐng)求信息的接收單元,所述的請(qǐng)求信息是由第一仿真單元發(fā)給第二仿真單元的并與由第一電路區(qū)塊發(fā)給第二電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng);以及設(shè)置一可用于在接收單元接收到請(qǐng)求信息的情況下,激活第二仿真單元的第二控制單元。
12.如權(quán)利要求11的仿真方法,其中,通過(guò)一共享源在第一電路區(qū)塊和第二電路區(qū)塊之間傳送數(shù)據(jù),所述的仿真方法進(jìn)一步包括如下步驟設(shè)置一用于仿真所述共享源的共享源仿真單元,設(shè)置一用于接收第二請(qǐng)求信息并將該接收到的第二請(qǐng)求信息傳送給所述的共享源仿真單元的中介處理單元,所述的第二請(qǐng)求信息是由第二仿真單元發(fā)給第一仿真單元的,并且其與由第二電路區(qū)塊發(fā)給第一電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng),其中,仿真方法還進(jìn)一步包括如下步驟,即如果共享源仿真單元接收到來(lái)自中介處理單元的第二請(qǐng)求信息,則第一仿真單元訪問(wèn)共享源仿真單元并讀取第二請(qǐng)求信息。
13.如權(quán)利要求12的仿真方法,其可進(jìn)一步包括在將請(qǐng)求信息發(fā)給第二仿真單元之后,使第一仿真單元直到共享源仿真單元接收到來(lái)自中介處理單元的第二請(qǐng)求信息時(shí)才訪問(wèn)共享源仿真單元。
14.如權(quán)利要求13的仿真方法,其中,所述的中介處理單元包括用于,在將第二請(qǐng)求信息傳送給共享源仿真單元之前,將訪問(wèn)請(qǐng)求傳送給共享源仿真單元的通知單元;和用于判斷是否已經(jīng)接收到來(lái)自共享源仿真單元的對(duì)訪問(wèn)請(qǐng)求的響應(yīng)的判斷單元,其中如果判斷單元判斷出已經(jīng)接收到對(duì)訪問(wèn)請(qǐng)求的響應(yīng),則中介處理單元就將第二請(qǐng)求信息傳送給共享源仿真單元;如果判斷單元判斷出沒(méi)有接收到對(duì)訪問(wèn)請(qǐng)求的響應(yīng),則中介處理單元就暫停將第二請(qǐng)求信息傳送給共享源仿真單元,并且在否定判斷后的一預(yù)定時(shí)間之后,指令通知單元將訪問(wèn)請(qǐng)求傳送給共享源仿真單元,其中共享源仿真單元包括一仲裁單元,用于在接收到來(lái)自通知單元的訪問(wèn)請(qǐng)求之后,決定是否允許訪問(wèn)共享源,并且僅在仲裁單元決定允許訪問(wèn)的情況下,傳送一響應(yīng)給中介處理單元。
15.一種存儲(chǔ)用于仿真包含使用多個(gè)周期運(yùn)行的一第一電路區(qū)塊和一第二電路區(qū)塊的系統(tǒng)運(yùn)行的仿真程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述的計(jì)算機(jī)程序可使計(jì)算機(jī)實(shí)現(xiàn)如下的作用可用于仿真第一電路區(qū)塊具有時(shí)間概念運(yùn)行的第一仿真單元;可用于仿真第二電路區(qū)塊沒(méi)有時(shí)間概念運(yùn)行的第二仿真單元;可用于每隔一定時(shí)間激活第一仿真單元的第一控制單元;可用于接收請(qǐng)求信息的接收單元,所述的請(qǐng)求信息是由第一仿真單元發(fā)給第二仿真單元的并與由第一電路區(qū)塊發(fā)給第二電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng);以及可用于在接收單元接收到請(qǐng)求信息的情況下,激活第二仿真單元的第二控制單元。
16.如權(quán)利要求15的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中通過(guò)一共享源在第一電路區(qū)塊和第二電路區(qū)塊之間傳送數(shù)據(jù),所述的仿真程序可使計(jì)算機(jī)進(jìn)一步實(shí)現(xiàn)如下作用用于仿真所述共享源的共享源仿真單元,用于接收第二請(qǐng)求信息并將該接收到的第二請(qǐng)求信息傳送給所述的共享源仿真單元的中介處理單元,所述的第二請(qǐng)求信息是由第二仿真單元發(fā)給第一仿真單元的,并且其與由第二電路區(qū)塊發(fā)給第一電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng),其中,仿真程序可進(jìn)一步控制計(jì)算機(jī)以實(shí)現(xiàn)如果共享源仿真單元接收到來(lái)自中介處理單元的第二請(qǐng)求信息,則第一仿真單元訪問(wèn)共享源仿真單元并讀取第二請(qǐng)求信息。
17.如權(quán)利要求16的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中仿真程序進(jìn)一步控制計(jì)算機(jī)以使,在將請(qǐng)求信息發(fā)給第二仿真單元之后,第一仿真單元直到共享源仿真單元接收到來(lái)自中介處理單元的第二請(qǐng)求信息時(shí)才訪問(wèn)共享源仿真單元。
18.如權(quán)利要求17的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中仿真程序進(jìn)一步控制計(jì)算機(jī)以使中介處理單元包括用于,在將第二請(qǐng)求信息傳發(fā)給共享源仿真單元之前,將訪問(wèn)請(qǐng)求傳送給共享源仿真單元的通知單元;和用于判斷是否已經(jīng)接收到來(lái)自共享源仿真單元的對(duì)訪問(wèn)請(qǐng)求的響應(yīng)的判斷單元,其中如果判斷單元判斷出已經(jīng)接收到對(duì)訪問(wèn)請(qǐng)求的響應(yīng),則中介處理單元就將第二請(qǐng)求信息傳送給共享源仿真單元;如果判斷單元判斷出沒(méi)有接收到對(duì)訪問(wèn)請(qǐng)求的響應(yīng),則中介處理單元就停止將第二請(qǐng)求信息傳送給共享源仿真單元,并且在否定判斷后的一預(yù)定時(shí)間之后,指令通知單元將訪問(wèn)請(qǐng)求傳送給共享源仿真單元,其中共享源仿真單元包括一仲裁單元,用于在接收到來(lái)自通知單元的訪問(wèn)請(qǐng)求之后,決定是否允許訪問(wèn)共享源,并且僅在仲裁單元決定允許訪問(wèn)的情況下,傳送一響應(yīng)給中介處理單元。
全文摘要
一種用于仿真一包含用多個(gè)周期運(yùn)行的一第一電路區(qū)塊和一第二電路區(qū)塊的系統(tǒng)運(yùn)行的仿真裝置。該仿真裝置包括一可用于仿真第一電路區(qū)塊具有時(shí)間概念運(yùn)行的第一仿真單元;一可用于仿真第二電路區(qū)塊沒(méi)有時(shí)間概念運(yùn)行的第二仿真單元;一可用于每隔一定時(shí)間激活第一仿真單元的第一控制單元;一可用于接收請(qǐng)求信息的接收單元,所述的請(qǐng)求信息是由第一仿真單元發(fā)給第二仿真單元的并與由第一電路區(qū)塊發(fā)給第二電路區(qū)塊的處理請(qǐng)求相對(duì)應(yīng);以及一可用于在接收單元接收到請(qǐng)求信息的情況下,激活第二仿真單元的第二控制單元。
文檔編號(hào)G06F17/50GK1601473SQ200410037618
公開(kāi)日2005年3月30日 申請(qǐng)日期2004年4月27日 優(yōu)先權(quán)日2003年9月25日
發(fā)明者崎山健次 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1