專利名稱:設備仿真支援裝置、設備仿真支援方法、設備仿真支援電路及信息處理裝置的制作方法
技術領域:
本發(fā)明涉及一種使在軟件執(zhí)行過程中所利用的周邊裝置的仿真(emulation)容 易的設備仿真支援裝置(device emulation support apparatus)、設備仿真支援方法及設 備仿真支援電路、以及與具備該設備仿真支援裝置的信息處理裝置。
背景技術:
信息處理裝置所執(zhí)行的程序利用信息處理裝置所具備的1個以上的設備(周邊裝 置)而運行。因此,以指定的信息處理裝置為前提而創(chuàng)建的程序,在處理對象設備不存在 時,或者盡管存在與處理對象設備同種的設備但控制的方法或規(guī)格不同時,將無法正常運 行。在這種情況下,如果不用改變程序就能夠進行處理對象設備的仿真,則能夠在不同于指 定的信息處理裝置的其他信息處理裝置中利用該程序。一般而言,在中央處理器(central processing unit, CPU)的地址空間內配置設 備的控制寄存器,通過CPU操作控制寄存器,使對象設備運行。S卩,CPU對對象設備的控制 寄存器的地址進行寫入(write)或讀取(read)。因此,為了用軟件來仿真設備,必須捕獲 (trap)從CPU對指定的地址、即對仿真對象設備的控制寄存器的地址的訪問。所謂仿真對 象設備,是指雖然作為軟件處理對象但實際上不存在的設備。作為捕獲對指定地址的訪問的一般方法,有一種利用存儲器空間的保護功能的方 法。即,通過禁止對捕獲的地址進行讀取和寫入,使在對該地址進行訪問時發(fā)生例外。通過 以例外處理(exception handler)為契機開始仿真,在仿真結束后恢復到原始程序,由此, 不用變更該程序就能進行設備的仿真。而且,有一種總線監(jiān)視裝置(bus monitoring device),通過監(jiān)視流經總線的信號 來檢測從CPU對指定地址空間的訪問(例如,參照專利文獻1)??偩€監(jiān)視裝置監(jiān)視流經總 線的各種信號,當檢測到與所設定的條件一致的信號時,讓CPU發(fā)生中斷(interrupt)。由 此,能夠捕獲到從CPU對指定地址的訪問。通過由軟件取代設備來進行作為仿真對象的設備所執(zhí)行的處理,能夠進行設備的 仿真。為了由軟件取代設備來進行處理,在捕獲了對對象設備的控制寄存器的訪問后,必須 了解該訪問是怎樣的訪問,即必須獲取所訪問的內容。例如,當作為仿真對象的設備是直接 存儲器訪問(Direct Memory Access,DMA),設備所進行的處理是存儲器復制時,進行仿真 的軟件獲取復制對象數(shù)據(jù)被存儲的存儲器上的地址等處理所需要的信息。以下,將作為仿 真對象的設備的控制寄存器表述為“虛擬寄存器(virtual register)當對虛擬寄存器的訪問為數(shù)據(jù)的寫入時,進行仿真的軟件分析捕獲到的指令(寫 入指令)的內容,并指定保持要寫入的數(shù)據(jù)的運算寄存器。而且,進行仿真的軟件還進行從 指定的運算寄存器獲取數(shù)據(jù)并將所獲取的數(shù)據(jù)寫入對象地址的處理。當對虛擬寄存器的訪問為數(shù)據(jù)的讀取時,進行仿真的軟件分析捕獲到的指令(讀 取指令)的內容,并指定讀取的數(shù)據(jù)的保存目的地(運算寄存器及存儲器等)。而且,進行仿真的軟件還進行將讀取的數(shù)據(jù)存儲至保存目的地的處理。但是,在以往的技術中,由于每次捕獲對控制寄存器的訪問,進行仿真的軟件都要 對所捕獲的訪問內容進行分析以獲取所需要的數(shù)據(jù),因此須執(zhí)行多條指令,從而存在處理 量增加的問題。專利文獻1 日本專利公開公報特開2006-113906號
發(fā)明內容
本發(fā)明是為了解決上述問題,其目的在于提供一種能夠削減仿真時的處理量,從 而可以有效率地進行周邊裝置的仿真的設備仿真支援裝置、設備仿真支援方法、設備仿真 支援電路及信息處理裝置。本發(fā)明所提供的設備仿真支援裝置,經由總線與通過使例外發(fā)生來執(zhí)行仿真處理 的CPU可通信地連接,其包括監(jiān)視地址存儲部,將與仿真對象的周邊裝置對應的地址作為 監(jiān)視的對象來加以存儲;訪問監(jiān)視部,監(jiān)視從所述CPU對所述周邊裝置的訪問,并從具有 包含與作為訪問對象的周邊裝置對應的地址的訪問信息且從所述CPU向所述周邊裝置輸 出的訪問信號中,獲取包含與所述監(jiān)視地址存儲部中所存儲的地址相一致的地址的訪問信 息;訪問存儲部,存儲由所述訪問監(jiān)視部獲取的訪問信息;讀取數(shù)據(jù)存儲部,當所述訪問是 表示讀取數(shù)據(jù)的讀取訪問時,暫時存儲從所述周邊裝置讀取的數(shù)據(jù);例外發(fā)生部,將用于使 所述CPU發(fā)生例外的所述例外發(fā)生通知發(fā)送給所述CPU ;訪問判斷部,接收由所述訪問監(jiān)視 部獲取的訪問信息,將接收到的訪問信息與所述訪問存儲部中存儲的前一次的訪問信息進 行比較,當接收到的訪問信息與前一次的訪問信息不同時,將所述獲取的訪問信息存儲至 所述訪問存儲部,并且向所述例外發(fā)生部請求發(fā)送所述例外發(fā)生通知,當接收到的訪問信 息與前一次的訪問信息相同時,將所述訪問存儲部中存儲的前一次的訪問信息從比較對象 中除去;以及訪問完成部,當由所述訪問監(jiān)視部監(jiān)視的訪問為所述讀取訪問時,向所述CPU 輸出所述讀取數(shù)據(jù)存儲部中存儲的數(shù)據(jù)并指示所述CPU完成所述讀取訪問,當由所述訪問 監(jiān)視部監(jiān)視的訪問為表示寫入數(shù)據(jù)的寫入訪問時,指示所述CPU完成所述寫入訪問。根據(jù)此結構,與仿真對象的周邊裝置對應的地址作為監(jiān)視的對象被存儲在監(jiān)視地 址存儲部中。從CPU對周邊裝置的訪問得以監(jiān)視,并從具有包含與作為訪問對象的周邊裝 置對應的地址的訪問信息且從CPU向周邊裝置輸出的訪問信號中,獲取包含與監(jiān)視地址存 儲部中存儲的地址相一致的地址的訪問信息。在訪問存儲部中存儲有所獲取的訪問信息。 而且,在讀取數(shù)據(jù)存儲部中,當訪問為表示讀取數(shù)據(jù)的讀取訪問時,暫時存儲從周邊裝置讀 取的數(shù)據(jù)。接收所獲取的訪問信息,并將接收到的訪問信息與訪問存儲部中存儲的前一次 的訪問信息進行比較。當接收到的訪問信息與前一次的訪問信息不同時,所獲取的訪問信 息被存儲至訪問存儲部,并且用于讓CPU發(fā)生例外的例外發(fā)生通知被發(fā)送給CPU。另一方 面,當接收到的訪問信息與前一次的訪問信息相同時,訪問存儲部中存儲的前一次的訪問 信息被從比較對象中除去。當所監(jiān)視的訪問為讀取訪問時,向CPU輸出讀取數(shù)據(jù)存儲部中 存儲的數(shù)據(jù)并指示CPU完成讀取訪問。而且,當所監(jiān)視的訪問為表示寫入數(shù)據(jù)的寫入訪問 時,指示CPU完成寫入訪問。S卩,當接收到的訪問信息與訪問存儲部中存儲的前一次的訪問信息不同時,通過 讓CPU發(fā)生例外來執(zhí)行仿真處理。另一方面,當接收到的訪問信息與訪問存儲部中存儲的前一次的訪問信息相同時,視為伴隨例外結束的訪問的再執(zhí)行,如果訪問為讀取訪問,將指 定的數(shù)據(jù)向CPU輸出后,指示CPU完成讀取訪問,如果訪問為寫入訪問,則直接指示CPU完 成寫入訪問。根據(jù)本發(fā)明,由于進行仿真的CPU不進行對所捕獲的訪問內容進行分析以獲取所 需要的數(shù)據(jù)的處理,因此能夠削減仿真時的處理量,從而能夠有效率地進行周邊裝置的仿裝置。通過以下詳細的說明和附圖,使本發(fā)明的目的、特征和優(yōu)點更加明確。
圖1是表示具備本發(fā)明實施方式1的設備仿真支援裝置的信息處理裝置的結構的 圖。圖2是用于說明本發(fā)明實施方式1的設備仿真支援裝置工作的流程圖。圖3是表示本發(fā)明的實施方式1的設備仿真裝置中所用的寄存器結構的一例的 圖。圖4是表示具備本發(fā)明實施方式1的設備仿真支援裝置的信息處理裝置的軟件結 構的一例的圖。圖5是表示具備本發(fā)明實施方式1的設備仿真支援裝置的信息處理裝置的軟件結 構的第一變形例的圖。圖6是表示具備本發(fā)明實施方式1的設備仿真支援裝置的信息處理裝置的軟件結 構的第二變形例的圖。圖7是表示具備本發(fā)明實施方式1的設備仿真支援裝置的信息處理裝置的讀取訪 問時的仿真處理的一例的流程圖。圖8是表示具備本發(fā)明實施方式1的設備仿真支援裝置的信息處理裝置的寫入訪 問時的仿真處理的一例的流程圖。圖9是表示具備本發(fā)明的實施方式2的設備仿真支援裝置的信息處理裝置的結構 的圖。圖10是表示本發(fā)明實施方式2的中斷抑制部與中斷控制器的連接例的圖。圖11是表示具備本發(fā)明的實施方式3的設備仿真支援裝置的信息處理裝置的結 構的圖。圖12是表示具備本發(fā)明的實施方式4的設備仿真支援裝置的信息處理裝置的結 構的圖。圖13是表示具備本發(fā)明實施方式4的設備仿真支援裝置的信息處理裝置的軟件 結構的一例的圖。圖14是表示具備本發(fā)明實施方式4的設備仿真支援裝置的信息處理裝置的軟件 結構的變形例的圖。圖15是表示具備本發(fā)明的實施方式5的設備仿真支援電路的信息處理裝置的結 構的圖。
具體實施例方式下面,參照
本發(fā)明的實施方式。另外,以下實施方式是將本發(fā)明具體化的 例子,其性質并非是限定本發(fā)明的技術范圍。(實施方式1)圖1是表示具備本發(fā)明的實施方式1的設備仿真支援裝置的信息處理裝置的結構 的圖。信息處理裝置具備CPU(中央處理裝置)1、存儲器2、周邊設備(周邊裝置)3、總線4 及設備仿真支援裝置5。CPUl通過執(zhí)行存儲器2中存儲的程序來控制信息處理裝置。而且,CPUl的地址空 間包含控制周邊設備3所需要的寄存器(控制寄存器)。在控制周邊設備3時,CPUl所執(zhí) 行的程序通過針對與對象周邊設備3對應的控制寄存器的地址讀取或寫入數(shù)據(jù),可控制對 象周邊設備3。存儲器2是存儲信息處理裝置所執(zhí)行的各種程序及數(shù)據(jù)的存儲裝置。存儲器2可 使用隨機訪問存儲器(Random access memory, RAM)或閃存存儲器(flash memory)等任意 種類的存儲器。而且,存儲器2也可以是將多個同種或不同種的存儲器組合而成。此外,存 儲器2也可以包括只讀存儲器(Read-only memory, ROM)。周邊設備3是各種輸入輸出裝置等的設備,與信息處理裝置的使用目的相應的設 備被加以利用。此處,示出了具備周邊設備A、周邊設備B及周邊設備C這三個周邊設備的 一個例子??偩€4將CPU1、存儲器2、周邊設備3與設備仿真支援裝置5可彼此通信地連接, 是交換數(shù)據(jù)的傳輸路徑。即,從CPUl對周邊設備3的訪問是經由總線4來進行。設備仿真支援裝置5監(jiān)視對執(zhí)行客戶程序(guest program)的CPUl的地址空間 的訪問,讓CPUl發(fā)生例外處理。由此,設備仿真支援裝置5通知進行仿真的程序(以下稱 作仿真程序)對指定地址的訪問,以支援仿真程序的執(zhí)行。另外,客戶程序是用于控制以在程序中存在為前提但不包括在信息處理裝置中的 周邊設備的一部分或全部的程序。客戶程序包含用于控制信息處理裝置所具備的周邊設備 的程序、及用于控制信息處理裝置所不具備的周邊設備的程序。另外,客戶程序也可以只是 用于控制信息處理裝置所不具備的周邊設備的程序??蛻舫绦蚝头抡娉绦虮淮鎯υ诖鎯ζ?中,并由CPUl執(zhí)行。當由CPUl執(zhí)行客戶 程序時,捕獲對不存在的周邊設備的控制寄存器的訪問,執(zhí)行對象仿真程序。由此,能夠通 過軟件來仿真不存在的周邊設備。設備仿真支援裝置5具備監(jiān)視地址設定部10、訪問監(jiān)視部11、訪問存儲部12、訪問 判斷部13、例外發(fā)生部14、讀取數(shù)據(jù)設定部15及訪問完成部16。監(jiān)視地址設定部10是保存作為設備仿真支援裝置5監(jiān)視的對象的地址范圍的存 儲部。設備仿真支援裝置5捕獲對監(jiān)視地址設定部10所設定的地址范圍的訪問。S卩,監(jiān)視 地址設定部10保存與仿真對象的周邊設備相對應的地址范圍。更具體而言,監(jiān)視地址設定 部10是與通常的周邊設備3的控制寄存器同樣設定捕獲對象的地址范圍的控制寄存器。作為由監(jiān)視地址設定部10設定的地址范圍,例如使用表示地址的上限和下限的 值。而且,作為由監(jiān)視地址設定部10設定的地址范圍,也可以使用表示開始地址和范圍大 小的值。而且,在監(jiān)視地址設定部10的地址范圍的設定例如是在仿真程序的初始化時進行。此外,為了更詳細地指定捕獲對象的訪問,監(jiān)視地址設定部10也可以進一步設定地址范圍 以外的條件。例如,監(jiān)視地址設定部10可設定讀取指令、寫入指令或使兩者作為捕獲對象等。訪問監(jiān)視部11監(jiān)視流經總線4上的信號(訪問信號),檢測與包含監(jiān)視地址設定 部10所設定的地址范圍的條件相一致的訪問的發(fā)生。此信號中包含有有關訪問對象的地 址、表示訪問是讀取還是寫入的種類、以及讀取的數(shù)據(jù)或寫入的數(shù)據(jù)的數(shù)據(jù)大小等訪問內 容的信息(訪問信息)。因此,訪問監(jiān)視部11通過監(jiān)視流經總線4上的信號,能夠檢測CPUl 對地址空間訪問的訪問內容。而且,訪問監(jiān)視部11將與檢測到的條件相一致的訪問內容通 知給訪問判斷部13。訪問存儲部12保存由訪問監(jiān)視部11檢測到的、與監(jiān)視地址設定部10所設定的條 件相一致的訪問內容。訪問判斷部13判斷從訪問監(jiān)視部11通知的訪問內容,并進行訪問 存儲部12的存儲處理。在訪問存儲部12中,始終保存有與監(jiān)視地址設定部10所設定的條 件相一致的前一次的訪問內容。訪問存儲部12中存儲的訪問內容至少包括訪問目的地的地址、表示訪問是讀取 還是寫入的種類、及訪問為寫入時要寫入的值(數(shù)據(jù))。而且,訪問存儲部12中存儲的訪問 內容也可以包括例如表示讀取或寫入的數(shù)據(jù)的大小的信息。此外,為了能夠從CPUl參照訪 問存儲部12中保存的前一次的訪問內容,CPUl的地址空間具有能夠獲取前一次的訪問內 容的寄存器。執(zhí)行仿真程序的CPUl參照此訪問內容,進行周邊設備的仿真。訪問判斷部13接收由訪問監(jiān)視部11檢測到的、與監(jiān)視地址設定部10所設定的條 件相一致的訪問內容,并判斷接收到的訪問內容與訪問存儲部12中存儲的前一次的訪問 內容(上次捕獲的訪問內容)是否相同。設備仿真支援裝置5通過在CPUl中發(fā)生例外而 讓CPUl執(zhí)行仿真程序。然后,在例外處理結束后,CPUl恢復讓對仿真對象周邊設備的訪問 發(fā)生的指令,并再次執(zhí)行該指令。即,訪問判斷部13在所獲取的訪問內容與前一次的訪問 內容不同時判斷再次執(zhí)行指令。當判斷為再次執(zhí)行指令時,訪問判斷部13向訪問存儲部12中存儲新的訪問內容, 并向例外發(fā)生部14請求發(fā)生例外。另一方面,當判斷為不再次執(zhí)行指令,即本次接收到的 訪問內容與前一次的訪問內容相同時,訪問判斷部13刪除訪問存儲部12中存儲的前一次 的訪問內容,并向訪問完成部16通知訪問內容。由此,以后即使接收到的訪問內容與所存 儲的前一次的訪問內容相同,該接收到的訪問內容也被判斷為是新的訪問。S卩,訪問判斷部13接收由訪問監(jiān)視部11獲取的訪問內容,并將接收到的訪問內容 與訪問存儲部12中存儲的前一次的訪問內容進行比較。當接收到的訪問內容與前一次的 訪問內容不同時,訪問判斷部13將獲取的訪問內容存儲至訪問存儲部12,并且向例外發(fā)生 部14請求發(fā)送例外發(fā)生通知。另一方面,當接收到的訪問內容與前一次的訪問內容相同 時,訪問判斷部13將訪問存儲部12中存儲的前一次的訪問內容從比較對象中除去。另外,在本實施方式1中,是刪除前一次的訪問內容,而未必需要刪除存儲內容本 身。前一次的訪問內容的刪除是指從訪問判斷部13的比較對象中排除。例外發(fā)生部14在由訪問判斷部13判斷為本次的訪問內容與上次的訪問內容不同 時,從訪問判斷部13接收例外發(fā)生請求,并向CPUl輸出用于讓例外發(fā)生的例外通知。具體 而言,例外發(fā)生部14向總線4輸出數(shù)據(jù)異常中止(data abort)等能夠讓CPUl發(fā)生例外的 指定信號。而且,也可以采用將例外發(fā)生部14直接連接于與CPUl的例外發(fā)生有關聯(lián)的端子,從例外發(fā)生部14向CPUl輸出例外通知。以此例外為契機,CPUl讓仿真程序運行。讀取數(shù)據(jù)設定部15在所捕獲的訪問為讀取指令時,暫時保存從周邊設備3讀取的 數(shù)據(jù)。讀取數(shù)據(jù)設定部15的數(shù)據(jù)設定是由仿真程序(CPUl)進行。為了能夠由CPUl來進 行數(shù)據(jù)設定,CPUl的地址空間具有設定數(shù)據(jù)的寄存器。訪問完成部16在由訪問判斷部13判斷為本次的訪問內容與前一次的訪問內容相 同,即不用再次執(zhí)行指令時,接收從訪問判斷部13通知的訪問內容。當從訪問判斷部13通 知的訪問內容中包含的種類為讀取時,即客戶程序(CPUl)從不存在的周邊設備的控制寄 存器讀取數(shù)據(jù)的讀取訪問發(fā)生時,訪問完成部16讓CPUl的讀取訪問完成。S卩,訪問完成部16在由訪問監(jiān)視部11監(jiān)視的訪問為讀取訪問時,向CPUl輸出讀 取數(shù)據(jù)設定部15中存儲的數(shù)據(jù)并指示CPUl完成讀取訪問。而且,訪問完成部16在由訪問 監(jiān)視部11監(jiān)視的訪問為表示寫入數(shù)據(jù)的寫入訪問時,指示CPUl完成寫入訪問。具體而言,訪問完成部16獲取讀取數(shù)據(jù)設定部15中保存的數(shù)據(jù),并將其作為信號 向總線4輸出。即,訪問完成部16讓客戶程序接收仿真程序所設定的數(shù)據(jù),作為對不存在 的周邊設備的控制寄存器的讀取訪問的結果。另一方面,當從訪問判斷部13通知的訪問內容中包含的種類為寫入時,即客戶程 序(CPUl)對不存在的周邊設備的控制寄存器寫入數(shù)據(jù)的寫入訪問發(fā)生時,訪問完成部16 讓CPUl的寫入訪問完成。具體而言,訪問完成部16對總線4輸出數(shù)據(jù)接收完成的信號。另外,在本實施方式1中,監(jiān)視地址設定部10相當于監(jiān)視地址存儲部的一例,訪問 監(jiān)視部11相當于訪問監(jiān)視部的一例,訪問存儲部12相當于訪問存儲部的一例,讀取數(shù)據(jù)設 定部15相當于讀取數(shù)據(jù)存儲部的一例,例外發(fā)生部14相當于例外發(fā)生部的一例,訪問判斷 部13相當于訪問判斷部的一例,訪問完成部16相當于訪問完成部的一例。圖2是用于說明客戶程序運行時的設備仿真支援裝置5工作的流程圖。首先,CPUl 開始客戶程序的運行,設備仿真支援裝置5開始處理。另外,具備設備仿真支援裝置5的信 息處理裝置也可以通過在啟動時進行初始化處理,開始設備仿真支援裝置5的處理。首先,訪問監(jiān)視部11監(jiān)視流經總線4上的信號,判斷訪問是否發(fā)生(步驟Si)。當 訪問未發(fā)生時(在步驟Sl中為“否”),訪問監(jiān)視部11繼續(xù)監(jiān)視,直至訪問發(fā)生。當訪問發(fā) 生時(在步驟Sl中為“是”),訪問監(jiān)視部11獲取發(fā)生的訪問的訪問內容(步驟S2)。接下來,訪問監(jiān)視部11判斷發(fā)生的訪問是否為捕獲對象的訪問(步驟S3)。S卩,訪 問監(jiān)視部11判斷所獲取的訪問內容中包含的地址是否與監(jiān)視地址設定部10所設定的捕獲 對象的地址范圍相一致,以檢測地址一致的訪問(捕獲對象的訪問)的發(fā)生。另外,如果監(jiān) 視地址設定部10還設定了地址范圍以外的條件,則訪問監(jiān)視部11對這些條件也判斷是否 一致。當發(fā)生的訪問不是捕獲對象的訪問時(在步驟S3中為“否”),轉移到步驟Sl的處 理,并重復處理。另一方面,當發(fā)生的訪問為捕獲對象的訪問時(在步驟S3中為“是”),訪問監(jiān)視 部11將發(fā)生的訪問的訪問內容通知給訪問判斷部13(步驟S4)。接下來,訪問判斷部13將從訪問監(jiān)視部11通知的訪問內容與訪問存儲部12中存 儲的前一次的訪問(上次捕獲的訪問)的訪問內容進行比較。即,訪問判斷部13判斷本次 發(fā)生的訪問與訪問存儲部12中存儲的前一次的訪問是否相同(步驟S5)。另外,訪問判斷部13至少對訪問目的地的地址進行比較,但也可以對能夠用于判斷訪問是否為基于同一指令的訪問的其他信息進行比較。如果是具有能夠指定讀取的數(shù)據(jù) 大小及寫入的數(shù)據(jù)大小的指令集的CPU,則也可以將數(shù)據(jù)大小用于判斷。而且,如果是可突 發(fā)傳輸(burst transfer)的信息處理裝置,則也可以將突發(fā)傳輸?shù)挠袩o及傳輸大小用于判 斷。當判斷為發(fā)生的訪問與前一次的訪問不同時(在步驟S5中為“否”),訪問判斷部 13將新的訪問的訪問內容作為前一次的訪問的訪問內容存儲至訪問存儲部12,并向例外 發(fā)生部14輸出用于讓例外發(fā)生的例外發(fā)生請求(步驟S6)。例外發(fā)生部14接收由訪問判 斷部13輸出的例外發(fā)生請求,并向CPUl輸出用于讓例外發(fā)生的例外通知(步驟S7)。另一方面,當判斷為發(fā)生的訪問與前一次的訪問相同時(在步驟S5中為“是”), 訪問判斷部13判斷再次執(zhí)行指令,刪除訪問存儲部12中存儲的前一次的訪問的訪問內容, 并向訪問完成部16通知新的訪問的訪問內容(步驟S8)。接下來,訪問完成部16判斷由訪問判斷部13通知的訪問內容是從存儲器讀取數(shù) 據(jù)的讀取訪問還是向存儲器寫入數(shù)據(jù)的寫入訪問(步驟S9)。當判斷為訪問內容是讀取訪問時(在步驟S9中為“讀取訪問”),訪問完成部16獲 取讀取數(shù)據(jù)設定部15中保存的讀取數(shù)據(jù),并向總線4輸出獲取的讀取數(shù)據(jù)(步驟S10)。接 下來,訪問完成部16完成被再次執(zhí)行的讀取訪問(步驟Sll),返回步驟Sl的處理。由此, 重復執(zhí)行步驟Sl以后的處理。另一方面,當判斷為訪問內容為寫入訪問時(在步驟S9中為“寫入訪問”),訪問 完成部16完成被再次執(zhí)行的寫入訪問(步驟Si》,返回步驟Sl的處理。由此,重復執(zhí)行步 驟Sl以后的處理。另外,當客戶程序結束運行時,設備仿真支援裝置5結束訪問的監(jiān)視,完成圖2所 示的處理。而且,也可以在具備設備仿真支援裝置5的信息處理裝置的啟動過程中,設備仿 真支援裝置5繼續(xù)訪問的監(jiān)視。圖3是表示本發(fā)明實施方式1的設備仿真支援裝置5中所使用的寄存器結構的一 例的圖。如前所述,為了使CPUl的處理(讀取處理或寫入處理)成為可能,在CPUl的地址 空間內配置多個寄存器。監(jiān)視地址設定部10是設定捕獲對象的地址范圍的寄存器。如圖3所示,監(jiān)視地址 設定部10成組地保存作為對象的監(jiān)視地址區(qū)域的先頭地址與監(jiān)視地址區(qū)域的大小。監(jiān)視 地址設定部10可以保存多個組。訪問存儲部12是存儲所捕獲的訪問的訪問內容的寄存器。訪問存儲部12從訪問 發(fā)生直至完成訪問,保存處理中的訪問的訪問內容。如圖3所示,訪問存儲部12存儲訪問 目的地的地址、表示是讀取訪問還是寫入訪問的訪問種類、及訪問種類為寫入訪問時要寫 入的值(寫入數(shù)據(jù)),以作為訪問內容。讀取數(shù)據(jù)設定部15是設定當所捕獲的訪問為讀取訪問時由CPUl讀取的數(shù)據(jù)(讀 取數(shù)據(jù))的寄存器。另外,訪問存儲部12的寫入數(shù)據(jù)和讀取數(shù)據(jù)設定部15的讀取數(shù)據(jù),為了應對基于 CPUl的突發(fā)讀取處理及突發(fā)寫入處理,設有能應對最大突發(fā)傳輸(burst transfer)的個 數(shù)的寄存器。圖4是表示具備本實施方式1的設備仿真支援裝置的信息處理裝置的軟件結構的一例的圖。在圖4中,假設信息處理裝置不具備與設備驅動器20相對應的周邊設備。即,設 備驅動器20為客戶程序,對不存在的周邊設備進行訪問。當在信息處理裝置上運行的應用程序(application) 22發(fā)生對設備驅動器20所 控制的周邊設備的訪問時,設備仿真支援裝置5工作。設備仿真支援裝置5向CPUl輸出例 外通知,讓CPUl發(fā)生例外。接收到來自CPUl的例外后,0S21內的例外處理器(exception handler) 23運行。例外處理器23判斷所發(fā)生的例外是否由設備仿真支援裝置5發(fā)生,如果 是由設備仿真支援裝置5發(fā)生的例外,則讓仿真程序M運行。仿真程序M從設備仿真支援裝置5的訪問存儲部12獲取訪問內容,并指定進行 仿真的周邊設備,進行與所指定的周邊設備對應的仿真。由此,信息處理裝置可直接利用作 為客戶程序的設備驅動器20。因此,例如即使應用程序22依賴于設備驅動器20的規(guī)格,也 能夠不改變與設備驅動器20的依賴關系而讓信息處理裝置工作。圖5是表示具備本實施方式1的設備仿真支援裝置的信息處理裝置的軟件結構的 第一變形例的圖。圖5中,假設信息處理裝置不具備與設備驅動器20相對應的周邊設備??蛻舫绦?25包括設備驅動器20、0S21及應用程序22。S卩,以所具備的周邊設備為彼此不同的硬件為 前提而制作的軟件系統(tǒng)整體為客戶程序。圖5中,信息處理裝置具有控制周邊設備的仿真 的虛擬化層(visualization layer) 26,虛擬化層沈具備例外控制部27。當在信息處理裝置上運行的應用程序22發(fā)生對設備驅動器20所控制的周邊設備 的訪問時,設備仿真支援裝置5向CPUl輸出例外通知,讓CPUl發(fā)生例外。CPUl —旦接收到 例外通知,指示虛擬化層沈的例外控制部27執(zhí)行例外處理。虛擬化層沈接收到來自CPUl 的例外處理的執(zhí)行指示后,讓例外控制部27最先工作。例外控制部27判斷所發(fā)生的例外是否由設備仿真支援裝置5發(fā)生。如果是由設 備仿真支援裝置5發(fā)生的例外,則例外控制部27讓仿真程序M運行。如果不是由設備仿 真支援裝置5發(fā)生的例外,則例外控制部27將控制轉移到0S21內的例外處理器23。由此, 當客戶程序25內的設備驅動器20對周邊設備進行訪問時,仿真程序M運行。圖6是表示具備本實施方式1的設備仿真支援裝置的信息處理裝置的軟件結構的 第二變形例的圖。圖6中,假設信息處理裝置不具備與設備驅動器20對應的周邊設備。而且,虛擬 化層沈控制多個虛擬計算機。該虛擬化層沈被稱作虛擬層(hypervisor),在1個物理計 算機上執(zhí)行控制多個虛擬的計算機(虛擬計算機)。在圖6中,信息處理裝置具備第一虛擬 計算機觀及第二虛擬計算機四。第一虛擬計算機觀作為客戶程序運行。第二虛擬計算機 29執(zhí)行仿真程序M。虛擬化層沈具有使執(zhí)行仿真程序M的第二虛擬計算機四和執(zhí)行客戶程序25的 第一虛擬計算機觀分時工作的功能。虛擬化層沈還具備例外控制部27。當在信息處理裝置上運行的應用程序22發(fā)生對設備驅動器20所控制的周邊設備 的訪問時,設備仿真支援裝置5向CPUl輸出例外通知,讓CPUl發(fā)生例外。CPUl —旦接收到 例外通知,指示虛擬化層沈的例外控制部27執(zhí)行例外處理。虛擬化層沈接收到來自CPUl 的例外處理的執(zhí)行指示后,讓例外控制部27最先工作。12
例外控制部27判斷所發(fā)生的例外是否由設備仿真支援裝置5發(fā)生。如果是由設 備仿真支援裝置5發(fā)生的例外,則例外控制部27讓仿真程序M運行。如果不是由設備仿 真支援裝置5發(fā)生的例外,則例外控制部27將控制轉移到0S21內的例外處理器23。由此, 當客戶程序25內的設備驅動器20對周邊設備進行訪問時,仿真程序M運行。另外,在周邊設備中,有如同DMA、解碼引擎及編碼引擎那樣與CPU平行地加以工 作的設備。當仿真這樣的周邊設備時,較為理想的是,并行地進行客戶程序的執(zhí)行及周邊設 備的仿真的數(shù)據(jù)處理。當采用圖6所示的軟件結構時,可以使客戶程序25與仿真程序M 分時地并行工作。圖7是表示具備本發(fā)明的實施方式1的設備仿真支援裝置的信息處理裝置在讀取 訪問時的仿真處理的一例的流程圖。圖7示出的是讀取訪問的仿真。CPUl執(zhí)行客戶程序,執(zhí)行從作為仿真對象的周邊設備的地址區(qū)域、即從虛擬控制 寄存器讀取數(shù)據(jù)的讀取訪問(步驟S21)。接下來,設備仿真支援裝置5通過檢測該讀取訪問的發(fā)生而捕獲讀取訪問的訪問 內容,并將捕獲的訪問內容存儲至訪問存儲部12 (步驟S2》。接下來,設備仿真支援裝置5 讓CPUl發(fā)生例外(步驟S2!3)。另外,步驟S22的處理相當于前述的圖2中步驟Sl至S5的 處理,步驟S23的處理相當于前述的圖2中步驟S6至S7的處理。另外,在此發(fā)生的例外必須具有下述性質,S卩,在步驟S21的讀取訪問發(fā)生的時 刻,將控制轉移到例外處理器23和例外控制部27,且使讓訪問發(fā)生的指令無效。數(shù)據(jù)異常 中止(data abort)例外多為具備前述性質的例外。設備仿真支援裝置5使在CPUl的規(guī)格 中具有前述性質的例外發(fā)生。接下來,例外處理器23或例外控制部27接收來自CPUl的例外處理的執(zhí)行指示, 判斷所發(fā)生的例外是由設備仿真支援裝置5發(fā)生的例外,并調出仿真程序24(步驟S24)。 另外,調出仿真程序M的方法的示例已在圖4至圖6的軟件結構的例子中示出。接下來,CPUl執(zhí)行被調出的仿真程序M,獲取捕獲的訪問內容(步驟S2Q。具體 而言,執(zhí)行仿真程序M的CPUl從訪問存儲部12的控制寄存器中獲取包含訪問目的地的地 址的訪問內容。然后,執(zhí)行仿真程序M的CPUl利用所獲取的訪問內容,執(zhí)行不存在的周邊設備的 仿真處理(步驟S26)。由于執(zhí)行仿真程序M的CPUl已經通過執(zhí)行客戶程序而獲取了被發(fā) 布的讀取訪問的訪問內容,因此利用獲取的信息(讀取訪問的訪問內容)來仿真周邊設備 所進行的處理,并準備在對虛擬控制寄存器進行訪問時應讀取的讀取數(shù)據(jù)。接下來,執(zhí)行仿真程序M的CPUl在讀取數(shù)據(jù)設定部15中設定所準備的應讀取的 讀取數(shù)據(jù)(步驟S27)。然后,執(zhí)行仿真程序M WCPUl使周邊設備的仿真處理結束。接下 來,例外處理器23或例外控制部27使客戶程序恢復(步驟S28)。此時,CPUl通過再次執(zhí) 行客戶程序而恢復到使步驟S21的讀取訪問發(fā)生的指令。BP,CPUl在接收到由例外發(fā)生部14輸出的例外發(fā)生通知時,通過發(fā)生例外來執(zhí)行 仿真處理,然后,將與輸出至周邊設備3的訪問信號相同的訪問信號再次向周邊設備3輸出。由于已恢復到相同的指令,因此執(zhí)行客戶程序的CPUl再次執(zhí)行從作為仿真對象 的周邊設備的地址區(qū)域、即虛擬控制寄存器讀取數(shù)據(jù)的讀取訪問(步驟S29)。即,步驟S29中的讀取訪問是與步驟S21中的讀取訪問相同的處理。然后,設備仿真支援裝置5通過檢測該讀取訪問的發(fā)生捕獲讀取訪問的訪問內 容,并將在步驟S22中存儲的前一次的訪問內容從訪問存儲部12中刪除(步驟S30)。艮口, 由于所捕獲的訪問內容與在步驟S22中存儲的前一次的訪問的訪問內容相同,因此不發(fā)生 例外。步驟S30的處理相當于前述的圖2中步驟Sl至S5及S8的處理。接下來,設備仿真支援裝置5向總線4輸出在步驟S27中設定的讀取數(shù)據(jù)(步驟 S31)。步驟S31的處理相當于前述的圖2中步驟SlO的處理。最后,執(zhí)行客戶程序的CPUl接收輸出至總線4的讀取數(shù)據(jù)作為讀取訪問的結果, 完成從作為仿真對象的周邊設備的地址區(qū)域讀取數(shù)據(jù)的讀取訪問(步驟S32)。通過以上所述,根據(jù)本實施方式1的設備仿真支援裝置,進行仿真的軟件可削減 與對虛擬寄存器的訪問相關的處理,例如對捕獲的指令的分析及指令內容的獲取等。即,在 以往的技術中,當利用軟件進行虛擬寄存器的仿真時,需要在圖7的步驟S25中利用軟件分 析使例外發(fā)生的指令的處理。作為該分析處理,至少進行指定讀取的數(shù)據(jù)的存儲目的地的 處理和將數(shù)據(jù)存儲至指定的存儲目的地的處理。另一方面,在本實施方式1中,通過步驟S27的對讀取數(shù)據(jù)設定部15的數(shù)據(jù)寫入 及步驟幻9的指令再執(zhí)行的開銷(overhead)來實現(xiàn)周邊設備的仿真。而且,如果是自動進 行讀取目的地地址的增加及減少等的指令,則指令被再次執(zhí)行,因此不需要在仿真中特別 處理讀取目的地地址的增加及減少等。圖8是表示具備本發(fā)明的實施方式1的設備仿真支援裝置的信息處理裝置在寫入 訪問時的仿真處理的一例的流程圖。圖8示出的是寫入訪問的仿真。CPUl執(zhí)行客戶程序,并執(zhí)行對作為仿真對象的周邊設備的地址區(qū)域、即對虛擬控 制寄存器寫入數(shù)據(jù)的寫入訪問(步驟S41)。接下來,與讀取訪問時同樣,設備仿真支援裝置5通過檢測該寫入訪問的發(fā)生而 捕獲寫入訪問的訪問內容,并將捕獲的訪問內容存儲至訪問存儲部12 (步驟S4》。然后,設 備仿真支援裝置5讓CPUl發(fā)生例外(步驟S4!3)。另外,步驟S42的處理相當于前述的圖2 中步驟Sl至S5的處理,步驟S43的處理相當于前述的圖2中步驟S6至S7的處理。接下來,例外處理器23或例外控制部27接收來自CPUl的例外處理的執(zhí)行指示, 判斷所發(fā)生的例外是由設備仿真支援裝置5發(fā)生的例外,并調出仿真程序24(步驟S44)。然后,CPUl執(zhí)行被調出的仿真程序M,獲取捕獲的訪問的訪問內容(步驟S45)。 具體而言,執(zhí)行仿真程序M的CPUl從訪問存儲部12的控制寄存器中獲取包含訪問目的地 的地址及所寫入的數(shù)據(jù)的訪問內容。然后,執(zhí)行仿真程序M的CPUl利用所獲取的訪問內容,執(zhí)行不存在的周邊設備的 仿真處理(步驟S46)。由于執(zhí)行仿真程序M的CPUl已經通過執(zhí)行客戶程序而獲取了被發(fā) 布的寫入訪問的訪問內容,因此,利用所獲取的信息(寫入訪問的訪問內容)來仿真周邊設 備所進行的處理。該步驟S46的處理在作為仿真對象的周邊設備與CPU平行地工作時為開 始周邊設備的處理的處理。即,在對DMA進行仿真時,步驟S46的處理為開始數(shù)據(jù)復制的處 理。接下來,執(zhí)行仿真程序M的CPUl讓周邊設備的仿真處理結束。然后,例外處理器 23或例外控制部27使客戶程序恢復(步驟47)。此時,與讀取訪問時同樣,CPUl通過再次執(zhí)行客戶程序而恢復到使步驟S41的寫入訪問發(fā)生的指令。由于由于已恢復到相同的指令,因此執(zhí)行客戶程序的CPUl再次執(zhí)行對作為仿真 對象的周邊設備的地址區(qū)域、即虛擬控制寄存器寫入數(shù)據(jù)的寫入訪問(步驟S48)。然后,設備仿真支援裝置5通過檢測該寫入訪問的發(fā)生捕獲寫入訪問的訪問內 容,并將在步驟S42中存儲的前一次的訪問內容從訪問存儲部12中刪除(步驟S49)。艮口, 由于所捕獲的訪問內容與在步驟S42中存儲的前一次的訪問的訪問內容相同,因此不發(fā)生 例外。步驟S49的處理相當于前述的圖2中步驟Sl至S5及S8的處理。接下來,設備仿真支援裝置5向總線4輸出表示訪問已完成的訪問完成信號,并忽 視該寫入訪問(步驟S50)。步驟S50的處理相當于前述的圖2中步驟S12的處理。最后,執(zhí)行客戶程序的CPUl接收輸出至總線4的訪問完成信號,完成對作為仿真 對象的周邊設備的地址區(qū)域寫入數(shù)據(jù)的寫入訪問(步驟S51)。通過以上所述,根據(jù)本實施方式1的設備仿真支援裝置,進行仿真的軟件可削減 與對虛擬寄存器的訪問相關的處理,例如對捕獲的指令的分析及指令內容的獲取等。即,與 讀取訪問時同樣,在以往的技術中,進行仿真的軟件必須進行分析指令的處理、指定寫入的 數(shù)據(jù)的存儲目的地的處理、及對寄存器進行增量(incrementing)或減量(decrementing) 的處理。另一方面,在本實施方式1中,通過從訪問存儲部12的數(shù)據(jù)的讀取及指令再執(zhí)行 的開銷來實現(xiàn)周邊設備的仿真。以上,根據(jù)本實施方式1,進行仿真的軟件通過削減與對虛擬寄存器的訪問相關的 處理,例如對所捕獲的指令的分析及指令內容的獲取等,可以實現(xiàn)有效率的周邊設備的仿 真。在此能削減的處理是用于獲取訪問內容的由軟件進行的指令分析、由軟件進行的讀取 時對結果的存儲、及寫入時獲取數(shù)據(jù)之類的處理。(實施方式2)圖9是表示具備本發(fā)明的實施方式2的設備仿真支援裝置的信息處理裝置的結構 的圖。信息處理裝置具備CPU1、存儲器2、周邊設備3、總線4、設備仿真支援裝置5及中斷 控制器(interrupt controller)6。CPU1、存儲器2及總線4具有與圖1的構成要素相同的功能。而且,周邊設備3中 還包含利用中斷而被控制的周邊設備。在本實施方式2中,周邊設備D與周邊設備E是利 用中斷而被控制的周邊設備。中斷控制器6經由與總線4不同的其他電路而與周邊設備3中的利用中斷而被控 制的周邊設備D、E直接連接。中斷控制器6通過產生對CPUl的中斷信號,讓CPUl進行中 斷處理。本實施方式2的設備仿真支援裝置5具備監(jiān)視地址設定部10、訪問監(jiān)視部11、訪 問存儲部12、訪問判斷部13、例外發(fā)生部14、讀取數(shù)據(jù)設定部15、訪問完成部16及中斷抑 制部17。監(jiān)視地址設定部10、訪問監(jiān)視部11、訪問存儲部12、訪問判斷部13、例外發(fā)生部 14、讀取數(shù)據(jù)設定部15及訪問完成部16具有與實施方式1的構成要素相同的功能,中斷抑 制部17是新增加的構成要素。以下,以作為新構成要素的中斷抑制部17為中心進行說明。在周邊設備的仿真處理的執(zhí)行過程中,即在圖7的步驟SM至S28的處理或圖8 的步驟S44至S47的處理期間,有時會發(fā)生中斷(ihterrupt)。在仿真程序M或例外處理15器23被執(zhí)行的階段,讓CPUl禁止中斷,或者操作中斷控制器6來屏蔽中斷。由此,控制的 復雜程度得以降低。此時,除了客戶程序原本就是中斷禁止(interrupt inhibited)或中 斷屏蔽(interrupt masked)狀態(tài)的情況以外,在恢復到客戶程序的圖7的步驟S28或圖8 的步驟S47的階段,必須解除中斷禁止或中斷屏蔽狀態(tài)。如果在進行中斷禁止或中斷屏蔽的期間發(fā)生中斷,則該中斷成為被保留的狀態(tài)。 中斷禁止或中斷屏蔽被解除后,即恢復到客戶程序后,CPUl立即感知中斷信號,執(zhí)行中斷處 理。即,在圖7的步驟S^的處理或圖8的步驟S48的處理中的指令再執(zhí)行之前,轉移到中 斷處理器執(zhí)行處理。在此,如果被執(zhí)行的中斷處理器內有讓與訪問存儲部12中存儲的前一 次的訪問相同的訪問內容的訪問發(fā)生的指令,則該訪問(中斷)有可能被判斷為由指令再 執(zhí)行引起的訪問。因此,本實施方式2的中斷抑制部17在指令的再執(zhí)行完成之前,即在圖7的步驟 S32的處理或圖8的步驟S51的處理之前的期間內,抑制中斷信號。由此來解決上述課題。 另外,在本實施方式2中,中斷抑制部17相當于中斷抑制部的一例。中斷抑制部17經由與總線4不同的其他電路而與中斷控制器6直接連接,并具有 抑制對CPUl的中斷信號的功能。另外,即使中斷控制器6不具備抑制中斷信號的功能,例 如只要將中斷抑制部17像圖10那樣連接于傳輸中斷信號的布線的中途即可。圖10是表示本發(fā)明的實施方式2的中斷抑制部與中斷控制器的連接例的圖。如果 從中斷抑制部17及中斷控制器6輸出的信號是電平信號level signals,例如通過如圖10 所示那樣設置單純的邏輯積電路(AND circuit)7,可以實現(xiàn)抑制中斷信號的功能。通過此 種結構,在中斷禁止或中斷屏蔽被解除的時刻,不管中斷控制器6中有無保留中斷,對CPUl 的中斷信號都關閉,因此不發(fā)生中斷。而且,中斷的抑制例如只要在中斷抑制部17中設置控制寄存器,并通過該控制寄 存器的操作而開始即可。此時,通過執(zhí)行仿真程序開始中斷抑制。或者,中斷抑制部17也 可以在捕獲到訪問的時刻(圖7的步驟S21或圖8的步驟S41),從訪問監(jiān)視部11接收通 知,開始中斷抑制。此外,中斷抑制部17在訪問存儲部12中存儲的訪問內容被刪除的時刻,從CPUl 接收通知,從而解除中斷抑制。由此,在指令再執(zhí)行完成時,中斷抑制被解除。如果中斷被 保留,則在指令再執(zhí)行完成后,CPUl檢測中斷信號并執(zhí)行中斷處理。如上所述,在本實施方式2中,可在中斷處理器中設置與客戶程序對不存在的周 邊設備的控制寄存器的訪問相同的訪問。由此,可將利用中斷而被控制的周邊設備作為仿 真對象的周邊設備。(實施方式3)圖11是表示具備本發(fā)明實施方式3的設備仿真支援裝置的信息處理裝置的結構 的圖。信息處理裝置具備CPU1、存儲器2、周邊設備3、總線4及設備仿真支援裝置5。在本實施方式3中,周邊設備3與設備仿真支援裝置5直接連接,并經由設備仿真 支援裝置5而與CPUl連接。即,設備仿真支援裝置5被配置在CPUl與周邊設備3之間。另 外,CPU1、存儲器2與總線4具有與圖1的構成要素相同的功能。而且,周邊設備3經由設 備仿真支援裝置5而與總線4連接。本實施方式3的設備仿真支援裝置5具備監(jiān)視地址設定部10、訪問監(jiān)視部31、訪問存儲部12、訪問判斷部13、例外發(fā)生部14、讀取數(shù)據(jù)設定部15、訪問完成部16及總線信 號控制部18。監(jiān)視地址設定部10、訪問存儲部12、訪問判斷部13、例外發(fā)生部14、讀取數(shù)據(jù) 設定部15及訪問完成部16具有與實施方式1的構成要素相同的功能,訪問監(jiān)視部31及總 線信號控制部18與實施方式1不同。以下,以訪問監(jiān)視部31及總線信號控制部18為中心 進行說明。在本實施方式3中,從CPUl輸出至總線4的信號首先被傳送給設備仿真支援裝置 5,而不傳送給周邊設備3。訪問監(jiān)視部31監(jiān)視流經總線4上的信號,檢測與包含監(jiān)視地址設定部10所設定 的地址范圍的條件相一致的訪問的發(fā)生。該信號中包含有有關訪問對象的地址、表示訪問 是讀取還是寫入的種類、以及讀取的數(shù)據(jù)或寫入的數(shù)據(jù)的數(shù)據(jù)大小等訪問內容的信息。因 此,訪問監(jiān)視部31通過監(jiān)視流經總線4上的信號,可檢測CPUl對地址空間的訪問。而且, 訪問監(jiān)視部31將與檢測的條件相一致的訪問內容通知給訪問判斷部13。此外,訪問監(jiān)視部 31還將與條件不一致的訪問內容通知給總線信號控制部18。即,訪問監(jiān)視部31監(jiān)視從CPUl對周邊設備3的訪問,并根據(jù)從CPUl向周邊設備 3輸出的訪問信號,向訪問存儲部12及訪問判斷部13輸出包含與監(jiān)視地址設定部10中存 儲的地址相一致的地址的訪問內容。而且,訪問監(jiān)視部31將包含與監(jiān)視地址設定部10中 存儲的地址不一致的地址的訪問內容通知給總線信號控制部18??偩€信號控制部18接收從CPUl向周邊設備3輸出的訪問信號,并判斷是否向周 邊設備3輸出接收到的訪問信號??偩€信號控制部18在接收到從訪問監(jiān)視部31發(fā)來的訪 問內容的通知時,向周邊設備3輸出具有該訪問內容的訪問信號??偩€信號控制部18從 訪問監(jiān)視部31接收到訪問內容的通知后工作,只在未捕獲到訪問時才將來自CPUl的信號 向周邊設備3傳輸。即,如果由設備仿真支援裝置5捕獲到訪問,則周邊設備3不發(fā)生來自 CPUl的訪問。因而,當實際上不存在的虛擬周邊設備的控制寄存器的地址與實際上存在的 周邊設備3的地址重合時,總線信號控制部18不向周邊設備3通知來自CPUl的信號。因 此,周邊設備3不響應CPUl。另外,在本實施方式3中,訪問監(jiān)視部31相當于訪問監(jiān)視部的一例,總線信號控制 部18相當于總線信號控制部的一例。本實施方式3中,通過上述的結構,即使虛擬周邊設備的控制寄存器與實際上存 在的周邊設備3的控制寄存器的地址相同,也能夠仿真周邊設備。另外,在本實施方式3中,也可以采用設備仿真支援裝置5還包括實施方式2的中 斷抑制部17的結構。(實施方式4)圖12是表示具備本發(fā)明實施方式4的設備仿真支援裝置的信息處理裝置的結構 的圖。信息處理裝置具備第一 CPU1A、第二 CPU1B、存儲器2、周邊設備3、總線4及設備仿真 支援裝置5。另外,存儲器2、周邊設備3及總線4具有與圖1的構成要素相同的功能。本實施方式4的信息處理裝置具備兩個CPU,設備仿真支援裝置5只讓指定的CPU 例如第一 CPUlA發(fā)生例外。本實施方式4的設備仿真支援裝置5具備監(jiān)視地址設定部10、訪問監(jiān)視部11、訪 問存儲部12、訪問判斷部13、讀取數(shù)據(jù)設定部15、訪問完成部16及指定CPU例外發(fā)生部19。17監(jiān)視地址設定部10、訪問監(jiān)視部11、訪問存儲部12、訪問判斷部13、讀取數(shù)據(jù)設定部15及 訪問完成部16具有與實施方式1的構成要素相同的功能。本實施方式4的設備仿真支援 裝置5具備指定CPU例外發(fā)生部19,取代實施方式1的例外發(fā)生部14。以下,以作為新構 成要素的指定CPU例外發(fā)生部19為中心進行說明。指定CPU例外發(fā)生部19經由與總線4不同的其他電路而與指定的CPU即第一 CPUlA直接連接,且具有通過產生信號來通知例外的功能。指定CPU例外發(fā)生部19在由訪 問判斷部13判斷為本次的訪問內容與上次的訪問內容不同時,從訪問判斷部13接收例外 發(fā)生請求,讓第一 CPUlA發(fā)生例外。具體而言,指定CPU例外發(fā)生部19直接連接于與第一 CPUlA的例外有關聯(lián)的端子,向第一 CPUlA輸出用于讓例外發(fā)生的例外通知。第一 CPUlA可 以該例外為契機讓仿真程序運行。指定CPU例外發(fā)生部19只對多個CPU中的預先決定的 指定CPU發(fā)送例外通知。另外,在本實施方式4中,指定CPU例外發(fā)生部19相當于例外發(fā)生部的一例。圖13是表示具備本實施方式4的設備仿真支援裝置的信息處理裝置的軟件結構 的一例的圖。圖13中,假設信息處理裝置不具備與設備驅動器20對應的周邊設備,并且設備驅 動器20、0S21及應用程序22為客戶程序25。而且,發(fā)生例外的第一 CPUlA執(zhí)行客戶程序 25以及具備例外控制部27的虛擬化層26。另一方面,第二 CPUlB執(zhí)行仿真程序M。當在信息處理裝置上運行的應用程序22發(fā)生對設備驅動器20所控制的周邊設備 的訪問時,設備仿真支援裝置5向第一 CPUlA輸出例外通知,讓第一 CPUlA發(fā)生例外。第一 CPUlA 一旦接收到例外通知,指示虛擬化層沈的例外控制部27執(zhí)行例外處理。虛擬化層 26接收到來自第一 CPUlA的例外處理的執(zhí)行指示后,讓例外控制部27最先工作。例外控制部27判斷所發(fā)生的例外是否由設備仿真支援裝置5發(fā)生。如果是由設 備仿真支援裝置5發(fā)生的例外,第一 CPUlA利用普通的CPU之間的通信功能等通知給第二 CPUlB上的仿真程序M。第二 CPUlB執(zhí)行周邊設備的仿真處理。如果不是由設備仿真支援 裝置5發(fā)生的例外,則將控制轉移到0S21內的例外處理器23。由此,當客戶程序25內的設 備驅動器20對周邊設備進行訪問時,仿真程序M運行。另外,在圖13中,是虛擬化層沈接收例外處理的執(zhí)行指示,并使仿真程序M被執(zhí) 行,但也可以是0S21接收例外處理的執(zhí)行指示,并使仿真程序M被執(zhí)行。而且,也可以將仿真程序M分割成兩部分,由第一 CPUlA執(zhí)行與對控制寄存器的 數(shù)據(jù)讀取及數(shù)據(jù)寫入相關的仿真處理部分。此時,第一 CPUlA為圖4或圖5所示的結構。第 二 CPUlB執(zhí)行與第一 CPUlA并列工作的周邊設備的數(shù)據(jù)處理部分,例如基于DMA的數(shù)據(jù)傳 輸處理、編碼處理及解碼處理等。圖14是表示具備本發(fā)明的實施方式4的設備仿真支援裝置的信息處理裝置的軟 件結構的變形例的圖。在圖14中,第一 CPUlA執(zhí)行仿真程序M及具備例外控制部27的虛擬化層26。另 一方面,第二 CPUlB執(zhí)行具備設備驅動器20、0S21及應用程序22的客戶程序25。圖14中,客戶程序25由未被輸入來自設備仿真支援裝置5的例外通知的第二 CPUlB來執(zhí)行。當來自設備仿真支援裝置5的例外發(fā)生時,由第一 CPUlA來執(zhí)行仿真程序 24。18
另外,在圖14中,虛擬化層沈接收例外處理的執(zhí)行指示,并使仿真程序M被執(zhí) 行,但第一 CPUlA也可以是具備OS的結構,第一 CPUlA的OS也可以接收例外處理的執(zhí)行指 示,并使仿真程序M被執(zhí)行。而且,也可以在第一 CPUlA的OS的例外處理器中安裝直接仿 真程序24。以上,根據(jù)本實施方式4,進行仿真的軟件無須進行與對虛擬控制寄存器的訪問相 關的處理,例如與所捕獲的指令的分析、及對寄存器進行增量或減量等指令的執(zhí)行相關的 匹配性的維持等,可以進行周邊設備的仿真。由此,可削減仿真時的處理量,從而提高周邊 設備的仿真效率。另外,在實施方式1、實施方式2及實施方式3中,示出的是CPUl為單個的情況,但 并不限于此。對于在OS等的控制中使用多個CPU來進行處理的信息處理裝置,也可以使用 本實施方式1、實施方式2及實施方式3的設備仿真支援裝置。而且,在實施方式4中,第一 CPUlA或第二 CPUlB也可以分別具有多個CPU。而且,本實施方式1至4的設備仿真支援裝置可以作為集成電路即LSI而實現(xiàn), 但它們既可以分別被單芯片化,也可以以包含部分或全部的方式而被單芯片化。在此, 雖稱為LSI,但有時也會根據(jù)集成度的不同而稱為IC、系統(tǒng)LSI、高級LSI (super LSI)或 超級LSI(ultra LSI)。而且,集成電路化的方法并不限于LSI,也可通過專用電路或通 用處理器來實現(xiàn)。也可以利用在LSI制造后可進行編程的現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)、或可重構LSI內部的電路單元的連接或設定的可重構處 理器(reconfigurable processor) 0此外,如果通過半導體技術的進步或衍生的其他技術 來替換LSI的集成電路化的技術登場,則也可以利用該技術進行功能塊的集成化。還存在 著適用生物技術等的可能性。(實施方式5)圖15是表示具備本發(fā)明實施方式5的設備仿真支援電路的信息處理裝置的結構 的圖。圖15所示的信息處理裝置具備CPU1、存儲器2、周邊設備3及設備仿真支援電路51。設備仿真支援電路51為集成電路。設備仿真支援電路51具備監(jiān)視地址設定電路 110、訪問監(jiān)視電路111、訪問存儲電路112、訪問判斷電路113、例外發(fā)生電路114、讀取數(shù)據(jù) 設定電路115及訪問完成電路116。另外,在圖15所示的實施方式5的信息處理裝置中,對 與實施方式1相同的結構標注相同的符號并省略說明。實施方式5中的監(jiān)視地址設定電路110、訪問監(jiān)視電路111、訪問存儲電路112、訪 問判斷電路113、例外發(fā)生電路114、讀取數(shù)據(jù)設定電路115及訪問完成電路116分別具有 與實施方式1中的監(jiān)視地址設定部10、訪問監(jiān)視部11、訪問存儲部12、訪問判斷部13、例外 發(fā)生部14、讀取數(shù)據(jù)設定部15及訪問完成部16相同的功能。另外,在本實施方式5中,監(jiān)視地址設定電路110相當于監(jiān)視地址存儲電路的一 例,訪問監(jiān)視電路111相當于訪問監(jiān)視電路的一例,訪問存儲電路112相當于訪問存儲電路 的一例,讀取數(shù)據(jù)設定電路115相當于讀取數(shù)據(jù)存儲電路的一例,例外發(fā)生電路114相當于 例外發(fā)生電路的一例,訪問判斷電路113相當于訪問判斷電路的一例,訪問完成電路116相 當于訪問完成電路的一例。這樣,監(jiān)視地址設定電路110、訪問監(jiān)視電路111、訪問存儲電路112、訪問判斷電 路113、例外發(fā)生電路114、讀取數(shù)據(jù)設定電路115及訪問完成電路116可搭載于一個集成電路上。另外,在上述具體的實施方式中主要包括具有以下結構的發(fā)明。本發(fā)明所提供的設備仿真支援裝置,經由總線與CPU可通信地連接,其包括監(jiān)視 地址存儲部,將與仿真對象的周邊裝置對應的地址作為監(jiān)視的對象加以存儲;訪問監(jiān)視部, 監(jiān)視從所述CPU對所述周邊裝置的訪問,并從具有包含與作為訪問對象的周邊裝置對應的 地址的訪問信息且從所述CPU向所述周邊裝置輸出的訪問信號中,獲取包含與所述監(jiān)視地 址存儲部中所存儲的地址相一致的地址的訪問信息;訪問存儲部,存儲由所述訪問監(jiān)視部 獲取的訪問信息;讀取數(shù)據(jù)存儲部,當所述訪問是表示讀取數(shù)據(jù)的讀取訪問時,暫時存儲從 所述周邊裝置讀取的數(shù)據(jù);例外發(fā)生部,將用于讓所述CPU發(fā)生例外的所述例外發(fā)生通知 發(fā)送給所述CPU ;訪問判斷部,接收由所述訪問監(jiān)視部獲取的訪問信息,將接收到的訪問信 息與所述訪問存儲部中存儲的前一次的訪問信息進行比較,當接收到的訪問信息與前一次 的訪問信息不同時,將所述獲取的訪問信息存儲至所述訪問存儲部,并且向所述例外發(fā)生 部請求發(fā)送所述例外發(fā)生通知,當接收到的訪問信息與前一次的訪問信息相同時,將所述 訪問存儲部中存儲的前一次的訪問信息從比較對象中除去;以及訪問完成部,當由所述訪 問監(jiān)視部監(jiān)視的訪問為所述讀取訪問時,向所述CPU輸出所述讀取數(shù)據(jù)存儲部中存儲的數(shù) 據(jù)并指示所述CPU完成所述讀取訪問,當由所述訪問監(jiān)視部監(jiān)視的訪問為表示寫入數(shù)據(jù)的 寫入訪問時,指示所述CPU完成所述寫入訪問。本發(fā)明所提供的設備仿真支援方法包括監(jiān)視地址存儲步驟,將與仿真對象的周 邊裝置對應的地址作為監(jiān)視對象存儲至監(jiān)視地址存儲部;訪問監(jiān)視步驟,監(jiān)視從CPU對所 述周邊裝置的訪問,并從具有包含與作為訪問對象的周邊裝置對應的地址的訪問信息且從 所述CPU向所述周邊裝置輸出的訪問信號中,獲取包含與所述監(jiān)視地址存儲部中所存儲的 地址相一致的地址的訪問信息;訪問存儲步驟,將在所述訪問監(jiān)視步驟中獲取的訪問信息 存儲至訪問存儲部;讀取數(shù)據(jù)存儲步驟,當所述訪問是表示讀取數(shù)據(jù)的讀取訪問時,將從所 述周邊裝置讀取的數(shù)據(jù)暫時存儲至讀取數(shù)據(jù)存儲部;訪問判斷步驟,接收在所述訪問監(jiān)視 步驟中獲取的訪問信息,將接收到的訪問信息與所述訪問存儲部中存儲的前一次的訪問信 息進行比較;例外發(fā)生步驟,當接收到的訪問信息與前一次的訪問信息不同時,將所述獲取 的訪問信息存儲至所述訪問存儲部,并且將用于讓所述CPU發(fā)生例外的例外發(fā)生通知發(fā)送 給所述CPU ;除外步驟,當接收到的訪問信息與前一次的訪問信息相同時,將所述訪問存儲 部中存儲的前一次的訪問信息從比較對象中除去;以及訪問完成步驟,當在所述訪問監(jiān)視 步驟中監(jiān)視的訪問為所述讀取訪問時,向所述CPU輸出所述讀取數(shù)據(jù)存儲部中存儲的數(shù)據(jù) 并指示所述CPU完成所述讀取訪問,當在所述訪問監(jiān)視步驟中監(jiān)視的訪問為表示寫入數(shù)據(jù) 的寫入訪問時,指示所述CPU完成所述寫入訪問。本發(fā)明所提供的設備仿真支援電路,經由總線與通過使例外發(fā)生來執(zhí)行仿真處理 的CPU可通信地連接,其包括監(jiān)視地址存儲電路,將與仿真對象的周邊裝置對應的地址作 為監(jiān)視的對象加以存儲;訪問監(jiān)視電路,監(jiān)視從所述CPU對所述周邊裝置的訪問,并從具 有包含與作為訪問對象的周邊裝置對應的地址的訪問信息且從所述CPU向所述周邊裝置 輸出的訪問信號中,獲取包含與所述監(jiān)視地址存儲部中所存儲的地址相一致的地址的訪問 信息;訪問存儲電路,存儲由所述訪問監(jiān)視電路獲取的訪問信息;讀取數(shù)據(jù)存儲電路,當所 述訪問是表示讀取數(shù)據(jù)的讀取訪問時,暫時存儲從所述周邊裝置讀取的數(shù)據(jù);例外發(fā)生電路,將用于讓所述CPU發(fā)生例外的所述例外發(fā)生通知發(fā)送給所述CPU ;訪問判斷電路,接收 由所述訪問監(jiān)視電路獲取的訪問信息,將接收到的訪問信息與所述訪問存儲電路中存儲的 前一次的訪問信息進行比較,當接收到的訪問信息與前一次的訪問信息不同時,將所述獲 取的訪問信息存儲至所述訪問存儲電路,并且向所述例外發(fā)生電路請求發(fā)送所述例外發(fā)生 通知,當接收到的訪問信息與前一次的訪問信息相同時,將所述訪問存儲電路中存儲的前 一次的訪問信息從比較對象中除去;以及訪問完成電路,當由所述訪問監(jiān)視電路所監(jiān)視的 訪問為所述讀取訪問時,向所述CPU輸出所述讀取數(shù)據(jù)存儲電路中存儲的數(shù)據(jù)并指示所述 CPU完成所述讀取訪問,當由所述訪問監(jiān)視電路所監(jiān)視的訪問為表示寫入數(shù)據(jù)的寫入訪問 時,指示所述CPU完成所述寫入訪問。本發(fā)明所提供的信息處理裝置包括CPU ;由所述CPU控制的周邊裝置;將從所述 CPU輸出的訪問信號傳輸至所述周邊裝置的總線,以及上述任一項所述的設備仿真支援裝置。根據(jù)這些結構,與仿真對象的周邊裝置對應的地址作為監(jiān)視的對象被存儲在監(jiān)視 地址存儲部中。從CPU對周邊裝置的訪問得以監(jiān)視,并從具有包含與作為訪問對象的周邊 裝置對應的地址的訪問信息且從CPU向周邊裝置輸出的訪問信號中,獲取包含與監(jiān)視地址 存儲部中存儲的地址相一致的地址的訪問信息。在訪問存儲部中存儲有所獲取的訪問信 息。而且,在讀取數(shù)據(jù)存儲部中,當訪問為表示讀取數(shù)據(jù)的讀取訪問時,暫時存儲從周邊裝 置讀取的數(shù)據(jù)。接收所獲取的訪問信息,并將接收到的訪問信息與訪問存儲部中存儲的前 一次的訪問信息進行比較。當接收到的訪問信息與前一次的訪問信息不同時,所獲取的訪 問信息被存儲至訪問存儲部,并且用于讓CPU發(fā)生例外的例外發(fā)生通知被發(fā)送給CPU。另一 方面,當接收到的訪問信息與前一次的訪問信息相同時,訪問存儲部中存儲的前一次的訪 問信息被從比較對象中除去。當所監(jiān)視的訪問為讀取訪問時,向所述CPU輸出讀取數(shù)據(jù)存 儲部中存儲的數(shù)據(jù)并指示CPU完成讀取訪問。而且,當所監(jiān)視的訪問為表示寫入數(shù)據(jù)的寫 入訪問時,指示CPU完成寫入訪問。S卩,當接收到的訪問信息與訪問存儲部中存儲的前一次的訪問信息不同時,通過 讓CPU發(fā)生例外來執(zhí)行仿真處理。另一方面,當接收到的訪問信息與訪問存儲部中存儲的 前一次的訪問信息相同時,視為伴隨例外結束的訪問的再執(zhí)行,如果訪問為讀取訪問,將指 定的數(shù)據(jù)向CPU輸出后,指示CPU完成讀取訪問,如果訪問為寫入訪問,則直接指示CPU完 成寫入訪問。因此,由于進行仿真的CPU不進行對所捕獲的訪問內容進行分析以獲取所需要的 數(shù)據(jù)的處理,因此能夠削減仿真時的處理量,從而能夠有效率地進行周邊裝置的仿真。而且,較為理想的是,上述設備仿真支援裝置還包括中斷抑制部,在所述訪問存儲 部存儲在所述訪問判斷部中被作為比較對象的所述前一次的訪問信息的期間,抑制對所述 CPU的中斷。根據(jù)此結構,在作為比較對象的前一次的訪問信息被存儲在訪問存儲部中的期 間,對CPU的中斷得以抑制。S卩,當在仿真的中途,具有與訪問存儲部中存儲的前一次的訪問信息相同的訪問 信息的訪問作為中斷處理而被執(zhí)行時,將被視為伴隨例外結束的訪問的再執(zhí)行。因此,由于在作為比較對象的前一次的訪問信息被存儲在訪問存儲部中的期間,對CPU的中斷得以抑制,因此可以將通過中斷而被控制的周邊裝置作為仿真對象的周邊裝置。而且,較為理想的是,上述設備仿真支援裝置還包括總線信號控制部,接收從所述 CPU向所述周邊裝置輸出的所述訪問信號,判斷是否將接收到的所述訪問信號向所述周邊 裝置輸出,所述訪問監(jiān)視部將包含與所述監(jiān)視地址存儲部中存儲的地址不一致的地址的訪 問信息通知給所述總線信號控制部,所述總線信號控制部,當從所述訪問監(jiān)視部通知了所 述訪問信息的通知時,向所述周邊裝置輸出具有該訪問信息的所述訪問信號。根據(jù)此結構,總線信號控制部接收從CPU向周邊裝置輸出的訪問信號。并且,包含 與監(jiān)視地址存儲部中存儲的地址不一致的地址的訪問信息被通知給總線信號控制部???線信號控制部在接收到訪問信息的通知時,向所述周邊裝置輸出具有該訪問信息的訪問信 號。因此,由于只有從CPU向不是仿真對象的周邊裝置發(fā)送的訪問信號被輸出到周邊 裝置,因此即使在作為仿真對象的周邊裝置的地址與實際存在的周邊裝置的地址相同的情 況下,也能可靠地進行仿真,并且能夠控制實際存在的周邊裝置。而且,在上述設備仿真支援裝置中,較為理想的是,所述CPU包含多個CPU,所述例 外發(fā)生部只對所述多個CPU中預先決定的指定CPU發(fā)送所述例外發(fā)生通知。根據(jù)此結構,由于只對多個CPU中的預先決定的指定CPU發(fā)送例外發(fā)生通知,因此 可在指定的CPU中通過讓例外發(fā)生來進行仿真,并且在其他CPU中執(zhí)行其他程序。而且,在上述設備仿真支援裝置中,較為理想的是,所述訪問信息至少包含與作為 訪問對象的所述周邊裝置對應的地址、表示所述訪問是所述讀取訪問及所述寫入訪問中的 哪一種的訪問種類、以及當所述訪問種類為所述寫入訪問時寫入所述周邊裝置的值。根據(jù)此結構,可使用訪問信息中所包含的地址來指定從CPU對作為仿真對象的周 邊裝置的訪問,并可使用訪問信息中所包含的訪問種類來指定訪問是讀取訪問及寫入訪問 的哪一種。而且,可使用訪問信息中所包含的值,在訪問種類為寫入訪問時對周邊裝置寫入 該值。而且,在上述設備仿真支援裝置中,較為理想的是,所述CPU在接收到由所述例外 發(fā)生部輸出的所述例外發(fā)生通知時,通過讓例外發(fā)生來執(zhí)行仿真處理,然后,將與輸出至所 述周邊裝置的所述訪問信號相同的訪問信號再次向所述周邊裝置輸出。根據(jù)此結構,CPU在接收到例外發(fā)生通知時,通過讓例外發(fā)生來執(zhí)行仿真處理,然 后,與輸出至周邊裝置的訪問信號相同的訪問信號被再次輸出至周邊裝置。因此,通過輸出最先的訪問信號,執(zhí)行仿真處理,并通過再次輸出與最先的訪問信 號相同的訪問信號,將與讀取訪問對應的數(shù)據(jù)發(fā)送給CPU,以完成訪問,因此CPU不會對周 邊裝置進行訪問而進行仿真處理。另外,用于實施發(fā)明的方式的項目中的具體實施方式
或實施例只是為了明確本發(fā) 明的技術內容,不應只限定于這樣的具體例而被狹義地解釋,在本發(fā)明的精神和權利要求 書的范圍內可進行各種變更而加以實施。產業(yè)上的利用可能性本發(fā)明所涉及的設備仿真支援裝置、設備仿真支援方法、設備仿真支援電路及信 息處理裝置例如不僅可用于大型計算機或個人電腦之類,還可用于各種家電設備、攜帶電話之類的通信設備、產業(yè)設備或乘用設備等。
權利要求
1.一種設備仿真支援裝置,經由總線與通過使例外發(fā)生來執(zhí)行仿真處理的CPU可通信 地連接,其特征在于包括監(jiān)視地址存儲部,將與仿真對象的周邊裝置對應的地址作為監(jiān)視的對象加以存儲;訪問監(jiān)視部,監(jiān)視從所述CPU對所述周邊裝置的訪問,并從具有包含與作為訪問對象 的周邊裝置對應的地址的訪問信息且從所述CPU向所述周邊裝置輸出的訪問信號中,獲取 包含與所述監(jiān)視地址存儲部中所存儲的地址相一致的地址的訪問信息;訪問存儲部,存儲由所述訪問監(jiān)視部獲取的訪問信息;讀取數(shù)據(jù)存儲部,當所述訪問是表示讀取數(shù)據(jù)的讀取訪問時,暫時存儲從所述周邊裝 置讀取的數(shù)據(jù);例外發(fā)生部,將用于讓所述CPU發(fā)生例外的所述例外發(fā)生通知發(fā)送給所述CPU ;訪問判斷部,接收由所述訪問監(jiān)視部獲取的訪問信息,將接收到的訪問信息與所述訪 問存儲部中存儲的前一次的訪問信息進行比較,當接收到的訪問信息與前一次的訪問信息 不同時,將所述獲取的訪問信息存儲至所述訪問存儲部,并且向所述例外發(fā)生部請求發(fā)送 所述例外發(fā)生通知,當接收到的訪問信息與前一次的訪問信息相同時,將所述訪問存儲部 中存儲的前一次的訪問信息從比較對象中除去;以及訪問完成部,當由所述訪問監(jiān)視部監(jiān)視的訪問為所述讀取訪問時,向所述CPU輸出所 述讀取數(shù)據(jù)存儲部中存儲的數(shù)據(jù)并指示所述CPU完成所述讀取訪問,當由所述訪問監(jiān)視部 監(jiān)視的訪問為表示寫入數(shù)據(jù)的寫入訪問時,指示所述CPU完成所述寫入訪問。
2.根據(jù)權利要求1所述的設備仿真支援裝置,其特征在于,還包括在所述訪問存儲部 存儲被所述訪問判斷部作為比較對象的所述前一次的訪問信息的期間抑制對所述CPU的 中斷的中斷抑制部。
3.根據(jù)權利要求1或2所述的設備仿真支援裝置,其特征在于,還包括接收從所述CPU 向所述周邊裝置輸出的所述訪問信號,判斷是否向所述周邊裝置輸出接收到的所述訪問信 號的總線信號控制部,其中,所述訪問監(jiān)視部,將包含與所述監(jiān)視地址存儲部中存儲的地址不一致的地址的訪問信 息通知給所述總線信號控制部,所述總線信號控制部,當從所述訪問監(jiān)視部通知了所述訪問信息時,向所述周邊裝置 輸出具有該訪問信息的所述訪問信號。
4.根據(jù)權利要求1至3中任一項所述的設備仿真支援裝置,其特征在于所述CPU包含多個CPU,所述例外發(fā)生部只對所述多個CPU中預先決定的指定CPU發(fā)送所述例外發(fā)生通知。
5.根據(jù)權利要求1至4中任一項所述的設備仿真支援裝置,其特征在于所述訪問信 息至少包含與作為訪問對象的所述周邊裝置對應的地址、表示所述訪問是所述讀取訪問及 所述寫入訪問中的哪一種的訪問種類、以及當所述訪問種類為所述寫入訪問時寫入所述周 邊裝置的值。
6.根據(jù)權利要求1至5中任一項所述的設備仿真支援裝置,其特征在于所述CPU在接 收到由所述例外發(fā)生部輸出的所述例外發(fā)生通知時,通過使例外發(fā)生來執(zhí)行仿真處理,然 后,將與輸出至所述周邊裝置的所述訪問信號相同的訪問信號再次向所述周邊裝置輸出。
7.一種設備仿真支援方法,其特征在于包括監(jiān)視地址存儲步驟,將與仿真對象的周邊裝置對應的地址作為監(jiān)視對象存儲至監(jiān)視地 址存儲部;訪問監(jiān)視步驟,監(jiān)視從CPU對所述周邊裝置的訪問,并從具有包含與作為訪問對象的 周邊裝置對應的地址的訪問信息且從所述CPU向所述周邊裝置輸出的訪問信號中,獲取包 含與所述監(jiān)視地址存儲部中存儲的地址相一致的地址的訪問信息;訪問存儲步驟,將在所述訪問監(jiān)視步驟中獲取的訪問信息存儲至訪問存儲部; 讀取數(shù)據(jù)存儲步驟,當所述訪問是表示讀取數(shù)據(jù)的讀取訪問時,將從所述周邊裝置讀 取的數(shù)據(jù)暫時存儲至讀取數(shù)據(jù)存儲部;訪問判斷步驟,接收在所述訪問監(jiān)視步驟中獲取的訪問信息,將接收到的訪問信息與 所述訪問存儲部中存儲的前一次的訪問信息進行比較;例外發(fā)生步驟,當接收到的訪問信息與前一次的訪問信息不同時,將所述獲取的訪問 信息存儲至所述訪問存儲部,并且將用于使所述CPU發(fā)生例外的例外發(fā)生通知發(fā)送給所述 CPU ;除外步驟,當接收到的訪問信息與前一次的訪問信息相同時,將所述訪問存儲部中存 儲的前一次的訪問信息從比較對象中除去;以及訪問完成步驟,當在所述訪問監(jiān)視步驟中監(jiān)視的訪問為所述讀取訪問時,向所述CPU 輸出所述讀取數(shù)據(jù)存儲部中存儲的數(shù)據(jù)并指示所述CPU完成所述讀取訪問,當在所述訪問 監(jiān)視步驟中監(jiān)視的訪問為表示寫入數(shù)據(jù)的寫入訪問時,指示所述CPU完成所述寫入訪問。
8.一種設備仿真支援電路,經由總線與通過使例外發(fā)生來執(zhí)行仿真處理的CPU可通信 地連接,其特征在于包括監(jiān)視地址存儲電路,將與仿真對象的周邊裝置對應的地址作為監(jiān)視的對象來存儲; 訪問監(jiān)視電路,監(jiān)視從所述CPU對所述周邊裝置的訪問,并從具有包含與作為訪問對 象的周邊裝置對應的地址的訪問信息且從所述CPU向所述周邊裝置輸出的訪問信號中,獲 取包含與所述監(jiān)視地址存儲部中存儲的地址相一致的地址的訪問信息; 訪問存儲電路,存儲由所述訪問監(jiān)視電路獲取的訪問信息;讀取數(shù)據(jù)存儲電路,當所述訪問是表示讀取數(shù)據(jù)的讀取訪問時,暫時存儲從所述周邊 裝置讀取的數(shù)據(jù);例外發(fā)生電路,將用于讓所述CPU發(fā)生例外的所述例外發(fā)生通知發(fā)送給所述CPU ; 訪問判斷電路,接收由所述訪問監(jiān)視電路獲取的訪問信息,將接收到的訪問信息與所 述訪問存儲電路中存儲的前一次的訪問信息進行比較,當接收到的訪問信息與前一次的訪 問信息不同時,將所述獲取的訪問信息存儲至所述訪問存儲電路,并且向所述例外發(fā)生電 路請求發(fā)送所述例外發(fā)生通知,當接收到的訪問信息與前一次的訪問信息相同時,將所述 訪問存儲電路中存儲的前一次的訪問信息從比較對象中除去;以及訪問完成電路,當由所述訪問監(jiān)視電路所監(jiān)視的訪問為所述讀取訪問時,向所述CPU 輸出所述讀取數(shù)據(jù)存儲電路中存儲的數(shù)據(jù)并指示所述CPU完成所述讀取訪問,當由所述訪 問監(jiān)視電路所監(jiān)視的訪問為表示寫入數(shù)據(jù)的寫入訪問時,指示所述CPU完成所述寫入訪 問。
9.一種信息處理裝置,其特征在于包括 CPU ;由所述CPU控制的周邊裝置;將從所述CPU輸出的所述訪問信號向所述周邊裝置傳輸?shù)目偩€;以及 如權利要求ι至6中任一項所述的設備仿真支援裝置。
全文摘要
訪問監(jiān)視部(11)從由CPU(1)向周邊設備(3)輸出的訪問信號中獲取包含與監(jiān)視地址設定部(10)中存儲的地址相一致的地址的訪問信息,訪問判斷部(13)將從訪問監(jiān)視部(11)接收到的訪問信息與訪問存儲部(12)中存儲的前一次的訪問信息進行比較,當接收到的訪問信息與前一次的訪問信息不同時,將獲取的訪問信息存儲至訪問存儲部(12),并且向例外發(fā)生部(14)請求發(fā)送例外發(fā)生通知,當接收到的訪問信息與前一次的訪問信息相同時,將訪問存儲部(12)中存儲的前一次的訪問信息從比較對象中除去。通過此結構,能夠削減仿真時的處理量,從而能夠有效率地進行周邊裝置的仿真。
文檔編號G06F11/22GK102047228SQ20098011909
公開日2011年5月4日 申請日期2009年5月20日 優(yōu)先權日2008年5月28日
發(fā)明者天野克重, 谷川忠雄 申請人:松下電器產業(yè)株式會社