TW200417925A - Method and apparatus for performing validation of program code conversion - Google Patents
Method and apparatus for performing validation of program code conversion Download PDFInfo
- Publication number
- TW200417925A TW200417925A TW092130852A TW92130852A TW200417925A TW 200417925 A TW200417925 A TW 200417925A TW 092130852 A TW092130852 A TW 092130852A TW 92130852 A TW92130852 A TW 92130852A TW 200417925 A TW200417925 A TW 200417925A
- Authority
- TW
- Taiwan
- Prior art keywords
- code
- subject
- processor
- theme
- program
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Communication Control (AREA)
- Debugging And Monitoring (AREA)
- Numerical Control (AREA)
- Gyroscopes (AREA)
- Lubrication Of Internal Combustion Engines (AREA)
- Diaphragms For Electromechanical Transducers (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
200417925 (1) 玖、發明說明 【發明所屬之技術領域】 本發明通常是與程式碼轉換之領域有關。尤其是,本 發明是與一種用以確認正確地執行程式碼轉換之方法及裝 置有關。 【先前技術】 在電腦處理領域中,會寫一主題程式在主題電腦處理 器上執行。爲了將主題程式轉換成不同形式,常需執行程 式碼轉換。首先,爲使主題程式之執行最有效,如移除不 必要之指令或簡化指令次序,有時會預期執行程式碼之轉 換。第二,有時預期在和主題程式非相容之標的處理器上 : '. .. * .. ’ λ ν . .. -. : ' . .. 執行主題程式。在任一情況中,使用一模擬程式加以執行 程式碼轉換,俾能以預期之不同形式產生轉換程式。 有存在強烈預期要確認正確地執行程式碼轉換。尤其 是’預期要確認執行轉換程式之結果是對等於執行原始主 題程式之結果。理想上,預期展現主題程式和轉換程式在 位元方面之相容性。 根據本發明,設有如附加請求項目中所說明之裝置及 方法。從相關請求項目,及隨後說明,本發明之較佳特性 將是顯而易見的。 以下爲根據本發明各種實施例可實現之各種摘要觀點 及優點。提供這作爲介紹,協助那些嫻熟技術者更快理解 詳細之後續設計硏討且意圖不在以任何方式侷限附加於此 (2) (2)200417925 之請求項目之範圍。 【發明內容】 本發明提供一種方法及裝置,以快速、有效、正確及 有效成本方式加以確認程式碼之轉換。 根據本發明第一觀點,有提供藉以本質在一主題處理 器上執行主題碼和經由模擬程式在主題處理器上執行主題 碼作比較,由模擬程式所執行之一種確認程式碼轉換之方 法。程式碼轉換之確認是藉由比較經由模擬程式在主題處 理器上所執行之主題碼之模擬狀態與以本質在主題處理器 上所執行之主題碼本質狀態,使得以主題碼中每一可用之 比:較點加以比較模擬狀態和本質狀態。最好以變化之複雜 度之確認模式加以確認程式碼轉換,俾能輪流使用漸增複 雜之確認模式。 最好,確認程式碼轉換之方法藉載入緩衝:,選取性地· 禁止存取與主題處理器相關之記憶體至儲存來自主題處理 器之請求至載入/儲存緩衝器之記憶體且當執行標的碼時 ’最好選取性地禁止存取記憶體,使得在載入/儲存緩衝 器中提供模擬記憶影像。爲了執行程式碼轉換確認,然後 將載入/儲存緩衝器中所設置之模擬記憶體影像與記憶體 中所設置之主處理器狀態比較。 在本發明特別優先選擇之發展中,程式碼轉換確認方 法可更包含一種遞增確認之演算法,該演算法將經由在主 題處理器上執行之第一模擬程式之主題碼執行與經由在標 -5- (3) (3)200417925 的處理器上執行之第二模擬程式之主題碼執行作比較。在 使用遞增確認演算法中,將第一主題處理器設爲主題處理 器而第二主題處理器設爲標的處理器,其中,主題碼本質 上在主題處理器上是可執行的而本質上在標的處理器上是 不可執行的。因此,在這情況中,主題處理器和標的處理 器天生是不相容的。在藉將本質上於主題處理器上主題碼 之執行與經由第一模擬程式,在主題處理器上之主題碼之 執行作比較,起初確認在主題處理器上第一模擬程式之程 式碼轉換後,因此由第一模擬程式執行確認程式碼之轉換 ,然後將經由在主題處理器上執行之第一模擬程式之主題 碼之執行與經由在標的處理器上執行之第二模擬程式之主 題碼之執行作比較,因此,遞增式地確認由第二模擬程式 所執行之程式碼轉換。. 【實施方式】 第1圖中表示以下所硏討,用以執行各種薪新特性之 一圖解裝置。第1圖說明一主處理器1 2,其包含暫存器 14以及儲存許多軟體組成份10,16,20和30之記憶體 1 8,其中,這種記憶體1 8更提供一工作儲存體供基本區 段快取1 5和全球暫存器儲存1 7用。軟體組成份包含作業 系統1 6,模擬程式碼3 0,及轉譯標的碼20。模擬程式碼 3 0之作用,例如可爲一 IS A之主題碼轉譯成另一 I S A標 的碼之模擬程式或將主題碼轉譯成相同ISA轉譯碼之加速 程式或作爲任何其它已知型式之模擬程式。 -6 - (4) (4)200417925 模擬程式3 0,即執行模擬程式功能性之原始碼之編 譯版以及標的碼2 0,即由模擬程式3 0所產生之主題碼1 0 之轉譯與例如爲在主處理器1 2上執行之UNIX之作業系 統1 6連合執行,該主處理器一向爲一微處理器或其它適 當之電腦。要認知的是第1圖中所說明之結構只是作爲典 範而已並可以存在於一作業系統內或下之程式碼加以實施 根據本發明之,例如,軟體、方法及程序。如那些嫻熟技 術者所知道的,主題碼1 0、模擬程式碼3 0、作業系統1 6 及sS 1思儲存機構可爲廣泛種類型式中任一項。 第2圖表示使用程式碼轉換之一實例計算系統之槪觀 。這系統包含一主題計算環境1和一標的計算環境2。主 題和標的計算環境Γ .,2 —向由兩實行各別之計算平台所 提供且因此第2圖說明一跨平台系統。在主題環境1中之 主題處理器1 2上可執行形式爲主題碼1 〇之一主題程式。 由於許多實際因素,如要避免耗力及費時重寫現有程式, 亦預期在標的計算環境2中之秤的處理器22上執行相同 之主程式碼1 0。然而,當發生標的處理器2 2與主題碼1 0 不相容。因此,在標的計算環境2中提供一模擬程式3 0 ,執行程式碼之轉換。在這情況中,模擬程式3 0執行跨 平台轉譯,以本質上在標的處理器22上執行之轉譯標的 碼20形式加以產生一轉換程式。 模擬程式3 0可採取超出第2圖實例佈置之許多不同 形式。尤其是,爲了最有效執行主題程式,可調整模擬程 式3 0,在主題處理器1 2上執行且因此將一最有效之轉換 -7- (5) (5)200417925 程式遞送回到主題處理器1 2。在其它情況中,將模擬程 式3 0佈置成加以執行最有效化及轉譯之組合。在各情況 中’預期要確認模擬程式3 〇是正確地執行程式碼轉換。 &下將詳述用以確認正確程式碼轉換之較佳方法及裝 置。然而’作爲本發明之背景,將更詳細地首先說明第2 圖實例主題和標的計算環境1、2之通常作業。 第2圖表示形式爲主題碼1〇之主題程式。主題程式 通常是以人類程式人員可輕易了解之高階語言撰寫(例如 爲c ’ C + +等語言)。然後將程式從高階語言轉換成爲電 腦處理器及諸如爲記憶體,輸入/輸出單元等相關組件更 適當加以控制之低階語言(例如爲位元組碼)。最後,爲 使處理器能作用,以機器可讀取之本質上可執行形式(即 ’機器碼)加以提供程式碼,其中之該可執行形成指示處 理器之基元運算,如載入、位移、新增及儲存運算。 在大半情況中,已特定爲一種處理器型式所產生之以 本質可執行之程式碼無法在任何其它型式之處理器上執行 。尤其是,各處理器有其本身特定之本質指令集,且不同 型式處理器之指令集之間有明顯。常爲基本之差異。有造 成非相容性之其它差異,如處理器是否使用一組條件碼旗 標,及各條件碼旗標之特定性質和目的。 作爲一通常實例,某些處理器之設計是爲了快速執行 稱爲精簡指令集電腦(Rise )之簡單指令序列。其它處 理器使用一擴充指令集,各指令集代表一稱爲複雜指令集 電腦(CISC)之基元指令序列。結果,一 RISC本質可執 (6) (6)200417925 行之程式碼無法以Cl S C處理器執行,反之亦然。作爲一 典型特定之實例,主題處理器12是諸如爲英特爾( INTEL) x86處理器族成員之CISC處理器,而標的處理 器22是一諸如爲威力PC ( Power PC ) ( i.tm )處理器族 成員之RI S C處理器。這兩種處理器固有上是不相容的。 首先,這兩種處理器使用實質上不同之指令集。第二, X 8 6處理器使用兩條件碼旗標(輔助旗標及同位旗標), 這對X86族爲唯一且在威力PC架構中並未提供。 在大半情況中,模擬程式3 0提供虛擬模式之主題處 理器1 2,包含如暫存器及條件碼旗標之處理器之主要方 面。這虛擬環境允許主題程式以本質在主題處理器之虛擬 模式上執行,如同主題碼1 0以本質在一實例之主題處理 器12上執行一般。 參考第3圖,以處理以下軟體組成份之示意方式說明 本發明較佳實施例中所使用之模擬程式3 0 : —前段3.1, 一核心3 2及一後段3 3,_其中,最好以代表模擬程式3 0 之碼之各別部位加以執行各這些組成份。 前段31之建置是特定於所模擬之主題處理器1 2。前 段3 1對主題碼10之預定部位加以解碼並提供一般中介代 表之區段(’’IR區段。在標題爲”程式碼轉換”之PCT 刊物WO 99/03 1 6 8中有說明中介代表產生之一實例。 核心3 2藉使用本地或全球最佳化技術,使由前段3 1 所產生之各IR區段達最局效能’在許多其它最佳化技術 當中,該全球最佳化技術諸如爲標題爲’’使程式碼轉換達 (7) (7)200417925 最佳化之區段轉譯”,發表在美國專利申請案號 1 0/ 43 9,9 66中之那些最佳化技術。 後段3 3從核心3 2採取最佳化之IR區段並產生標的 處理器2 2可執行之標的碼2 0。 前段3 1適當地將主題碼1 〇分成基本區段,其中,各 基本區段爲一唯一入口點處之第一指令和一唯一出口點處 最後指令(如轉移,呼叫或分支指令)之間之序向指令集 。核心32可選取包含被一起視爲一單一單元之兩或更多 基本區段之一組區段。而且,前段3 1可形成在不同入口 條件下,代表主題碼相同基本區段之iso -區段。 較佳模擬程式.3 0包含適.當設在核心3 2中之多數理論 暫存器3 2 0,其代表在主題處理器12內所使用,加以執 行主題碼10之實體暫存器14。理論暫存器3 20藉提出主 題碼指令對主題處理器暫存器1 4之預期效果加以模擬被 模擬之主題處理器.1 2之狀態。模擬程式3 0可選擇模擬主 題處理器之其它方面,如與主題處理器之暫存器有關之條 件碼旗標321之狀態。操作時,當如使用理論暫存器320 和模擬之條件碼旗標321執行主題碼10時,模擬程式30 即暗中記錄模擬主題處理器1 2之預期狀態。 在一跨平台轉譯模式中,模擬程式3 0針對主題碼1 0 執行程式碼轉換並提供轉譯之標的碼20至標的處理器22 。在本發明之較佳實例中,模擬程式3 0執行二進位轉譯 ,其中,形成爲適宜主題處理器12之可執行二進位碼( 即,機器碼)之主題碼1 〇被轉譯成形成爲適宜標的處理 -10- (8) (8)200417925 器22之可執行二進位碼之標的碼。 轉譯可以靜態或動態加以執行。在靜態轉譯中,在標 的處理器22上執行轉譯程式前先轉譯整個程式。這涉及 明顯之延遲。因此,安排較佳之模擬程式3 0,以動態轉 譯主題碼1 0之小部位,立即在標的處理器22上執行。這 更有效率,因實際上將不會使用,或只甚少使用主題碼 1 〇之大段。因此,本發明之較佳實施例特別意在和實施 動態二進位轉譯之模擬程式3 0使用。然而,本發明不限 於動態二進位轉譯且通常適用於程式碼轉換之領域。例如 ’本發明之實施例亦適用於作爲解譯程式用而非編譯程式 用之模擬程式。 ,,弟4圖爲一較佳確S忍程式碼轉換方法之作業流程圖, 而弟5圖爲一根據第4圖方法之較佳確認程式碼轉換裝置 之槪觀圖。 在第4和5圖所說明之較佳方法及裝置中,使用第一 模擬程式3 0 a在主題處理器1 2上執行主題碼1 0。起初在 步驟200中,模擬程式30a如上述將主題碼10轉換成標 的碼20a,其中,然後在步驟202中以主題處理器12執 行標的碼20a,提供在執行主題碼1 〇之主題處理器1 2之 模擬狀態。然後在步驟204中,本質地在主題處理器12 上執行主題碼1 〇,提供在執行主題碼1 0之主題處理器1 2 之本質狀態。因此,所轉換之輸出標的碼20a及原始主題 碼1 〇兩者皆在相同型式之處理器上執行。這種特定型式 之模擬程式可稱爲’’相同對相同”或’,X對X ”之模擬程式。 -11 - (9) (9)200417925 在步驟206中,藉由比較經由第一模擬程式30a之執行主 題碼1 0之結果與以本質在主題處理器1 2執行相同主題碼 1 〇之結果,確認第一模擬程式3 0a所執行之程式碼轉換 爲正確。在步驟206中,在主題碼10中之每一可能之比 較點,假如可能的話,最好在主題碼中各指令後,彼此比 較主題處理器1 2之模擬狀態和本質狀態。如主題處理器 1 2之模擬狀態和本質狀態符合,則在步驟20 8中確認所 模擬主題碼之程式碼轉換。如模擬狀態和本質狀態之間有 差異,則在步驟2 1 0中確認一程式碼轉換錯誤。如以下所 要更詳加說明的,這種確認程序爲一非常有用之工具。 參考第6圖,現將更加詳細說明在主題環境1內,本 發明較佳實施例之運算。 · 在第6圖中,比較在主題處理器12上以本質執行主 題碼1 〇和經由模擬程式3 0a執行相同之主題碼1 〇。在此 ,可使用任何適當之安排,以本質執行主題碼1 〇。理想 上,主題碼1 〇形式爲機器碼且直接在主題處理器1 2上執 行。然而,假如信任他們作用正確的話,可使用如編譯程 式或解釋程式之一或更多中介步驟。在這種以本質執行主 題碼10後,尤其包含主題處理器12之主題環境1之狀態 形成一本質,機器狀態。本質機器狀態包含主題處理器1 2 狀態(即暫存器1 4和條件碼旗標中所含之値)及記憶體 1 2 2之狀態。 佈置模擬程式30a在主題處理器12上模擬主題碼1〇 之執行。例如,模擬程式3 0模擬對主題處理器1 2如暫存 -12- (10) (10)200417925 器1 4及條件碼旗標之主要件之效果。設有特別得自這種 模擬處理器模式之模擬機器狀態。因此,可將本質機器狀 態和模擬機器狀態比較,確認由模擬程式所執行之程式碼 轉換。在主題碼1 〇中之每一可能之比較點,最好在執行 主題碼1 0中各指令後,比較模擬機器狀態和本質機器狀 態。以模擬機器狀態和本質機器狀態間之任何分岐輕易地 確認不正確之轉換。 除有關主題處理器1 2狀態之資訊外,本質機器狀態 最好亦包含代表以本質上執行主題碼1 0後一記憶體1 22 狀態之資訊。同樣地,模擬機器狀態在經由模擬程式3 0a 執行主題碼後最好包含記憶體1 2 2之影像。在第.6圖中所 說/明本發明之較佳實施例中,設有連同處理器記憶體1 22 作業之載入/儲存緩衝器1 2 1。作業中,載入/儲存緩衝器 121處理因執行模擬程式30a所產生之標的碼〃20a所造成 之任何記憶體存取而不影響到記憶體1 22。依此方式,載 入/儲存緩衝器121限制記憶體122對模擬程式30a之存 取性。對照之下,當主題碼1 〇在主題處理器1 2中以本質 上加以執行時,則提供對記憶體1 22之完全存取。結果, 要比較記憶體1 22真正狀態和得自載入/儲存緩衝器1 2 1 狀態之模擬記憶體影像是可能的。另外,主題碼1 〇之模 擬執行可允許存取記憶體1 22,而使用載入/儲存緩衝器 1 2 1在本質執行期間加以保留記憶體之狀態。 可分開或聯合實施處理器狀態和記憶體狀態之這些比 較。最好,在本質和模擬處理器狀態之間,即處理器12 -13- (11) (11)200417925 之真正狀態(暫存器1 4和條件碼旗標中所含之値)和如 由模擬程式3 0a所把持之處理器之虛擬模式(理論暫存器 3 2 0和條件碼旗標3 2 1中所含之値)之間完成第一比較。 在本質和模擬記憶體狀態之間,即在如本質上執行後所更 新之記憶體1 22和如經由模擬程式3 0a執行後所更新之載 入/儲存緩衝器1 2 1之間完成第二比較。理想上,執行位 元方面之XOR比較,展現本質上執行主題碼1 〇和以模擬 程式3 0a執行程式碼轉換間之位元方面之相容性。位元方 面之相容性最好以主題碼1 0中各個別指令之等級加以展 現。在此,可決定有效之比較方案,如只比較已受程式碼 執行影響之機器狀態之那些部位(例如,選定之暫存器, 或選定之.記憶體位置)。. 在本發明之特.定較佳實例中,主題碼1 〇之執行和標 的碼20a之執行分享主題處理器12中之單一程序影像, 且因此正從事處理相.同之主題碼。有利的是,藉由允許快 速及有效地完成直接比較,分享一單一程序之影像使確認 之效能影響減至最小。而且,由於同步執行本質與模擬之 處理器狀態,只需單一分享之主題碼1 〇之輸入流’因此 避免記錄和播放一決定性訊號流之複雜性。還有$本質和 模擬處理器狀態之同步比較避免大量追蹤檔案之需求°然 而,淸楚的是這種緊密耦合之運算在完成主題碼和標的碼 執行間之預期隔離時帶來問題。如以上所及’載入/儲存 緩衝器1 2 1選取性地隔離記憶體1 22。而且,在主題處理 器中執行文稿程式之切換,在本質執行和模擬程式執行之 -14- (12) (12)200417925 間作切換。 第7圖爲一表示當主題處理器12在不同文稿程式之 間切換之主要狀態變遷,說明較佳確認方法之狀態圖。在 第7圖中’各文稿程式由一直欄所代表,並以直欄間之水 平移動加以強調控制主題處理器1 2之變化。在這實例中 ,主題處理器12具三不同文稿程式,即一模擬程式30a 在主題處理器12中執行之模擬程式文稿41,一在主題處 理器12中執行由模擬程式3〇a所產生之標的碼20a之標 的執行文稿程式4 2,及一主題碼1 0是在主題處理器1 2 中以本質加以執行之主題本質文稿程式43。然而,亦可 能爲其它特定之文稿程式佈置。例如,作爲一解譯程式之 模擬程式30a會將轉換文稿程式41和標的執行文稿程式 42組合成單一文稿程式。 程式碼轉換確認之一較佳實施例將一大段之主題碼 1 〇分成許多較小區段並在各區段邊界實施確認比較。在 這實例中,考慮一現行區段BBn及前面緊接之區段BBn-1 ,各區段包含一或更多來自主題碼1 〇之指令。在起初確 認階段,各區段最好包含一單一指令,其中,爲了達成程 式碼轉換確認之更多複雜模式,如以下之更詳細說明,隨 後實施含多於一指令區段之分析。 在步驟4 0 1中,主題處理器1 2之控制在於模擬程式 文稿41中之模擬程式30a。模擬程式30a檢驗主題碼10 並界定現行區段BBn。模擬程式30a然後在現行區段BB η 上執行程式碼轉換,產生標的碼20a之對應區段。在步驟 -15- (13) 200417925 4〇2’以回返轉移修補緊接在前之主題碼BBn-藉由執行文稿程式切換之常規,使一文稿程式切 本質文稿程式43。在步驟403,主題處理器12 行主題碼BBn-Ι之前面區段,並以回返轉移加以 模擬程式3 Ό a修補回返轉移,作爲一本質執行工 轉移呼叫切換回到轉換文稿程式4 1之文稿程式 。在步驟404,如以上說明,比較本質和模擬之 。此時,由模擬程式3 0 a所把持之主題處理器之 應與真正之處理器12相同,兩者皆安置在前面B 1之末。假設比較未顯示錯誤,則執行另一文稿 ’這次是切換至標的標的執行文稿程式42。在步 以由模擬程式所把持之主題處理器之模擬程式加 應於主題碼BBn現行區段之標的碼20a,因此, 式及載入/儲存緩衝器處於代表現行區段Β Β ,η之 狀態。標的碼20a之執行然後以切換回模擬文和 之另一文稿程式加以終止。在步驟406使主題碼 修補之前區段恢復至其原先狀態,,使確認程序之 減至最小。爲了開始從事進行下一區段BBn+1, 回到步驟4 0 1。 在以本質執行那區段BBn之前(步驟403 ) 到經由模擬程式30a首先執行各區段BBn (如步 之標的碼)。在所說明之本發明較佳實施中,在 器上以本質執行緊接在前之區段BBn-Ι前,方便 程式30a中之一現行區段BBn。在此,起初參考 1區段。 換成主題 以本質執 終止,以 作。回返 切換常規 機器狀態 虛擬模式 备段BBn-程式切換 驟 4 05, 以執行對 使模擬模 末之機器 I程式41 BBn'l 所 入侵效應 則本方法 ,將理解 驟405中 本體處理 定義模擬 如主題處 -16- (14) (14)200417925 理器實體暫存器(這情況中爲主題處理器12之真正暫存 器1 4 )之分佈源,及實體記憶體位置(含快取及緩衝器 記憶體位置),取得主題處理器之模擬模式。因此,在執 行確認比較前,最好流合虛擬模式,如依序將暫存器內容 寫入記憶體之預定區。在一較佳實施中,在各區段之首而 非末更輕易有這種統合虛擬模式。 在本發明另一較佳實施例中,如第5圖中所示,在標 的計算環境2中設有一第二模擬程式30b。由第二模擬程 式3 0b將主題碼10轉換成在標的處理器22上執行之標的 碼2 0b。那就是,轉換(例如,具或未具最佳化之轉譯或 解譯)一第一型式處理器所用之主題程式,產生一不同型 式處理器所用之轉換程式。在此,稱模擬程式爲”這對那” 或’’X對Y”模擬程式。藉由比較第一模擬程式30a加以確 認由第二模擬程式30b所執行之程式碼轉換。因此,遞增 式地建立一.信任鍊。起初在第一模擬程式30a中,且然後 第二在第二模擬程式中取得信任。這種形式之遞增確認允 許簡單並準確地執行確認而使支出及開銷降至最小。使用 爲一不同型式處理器而設計之第一模擬程式3 Ob之一已確 認之程式碼轉換,確認一第二模擬程式3 Ob之程式碼轉換 之這種型式之佈置此後將稱爲一跨平台佈置。 現在參考第8圖,現在將更加詳細加以說明一跨平台 佈置中本發明較佳實施例之作業流程圖,而第9圖爲根據 第8圖之方法,用以確認程式碼轉換之一較佳裝置之槪觀 圖。 -17- (15) 200417925 如第8和9圖中所說明之較佳方法及裝 主題環境1中設有第一模擬程式30a並在注 行程式碼轉換。如參考第4和5圖之以上說 環境1中以本質執彳τ主題碼1 〇之結果和使 式3 0a之結果比較,確認第一模擬程式30a 後,如在標的環境2中所執行之第二模擬程 ,使用第一模擬程式3 0 a加以確認程式碼之 認第一模擬程式3〇a運作正確,且因此可稱 3 0a爲此間以下之”參考系統”。同時,要決 擬程式3 Ob是否運作正確,故可稱第二模擬 間以下之”測試系統”。 ,作業中,第二模擬程式30a在步驟500 的碼2 0 b,在步驟5 0 2中以本質在標的處理 該第二標的碼20b。這麼做,第二模擬程式 之主題處理器1 2上模擬主題碼1 0之效果。 擬程式30a如在第4圖之步驟202中已產生 之主題處理器12上再模擬主題碼10之效果 驟5 04中得到由第一模擬程式30a所把持之 所代表之結果(參考系統狀態。在步驟 系統狀態可和以第二模擬程式3 0 b所把持之 狀態所代表之結果作比較(n測試系統狀態 5 06中,在主題碼10之每一可能可比較點 的話,最好在主題碼1 〇之各指令後彼此比 理器1 2之系統模擬狀態和測試系統模擬狀 備中所示,在 ί題碼10上執 明,將在主題 用第一模擬程 運作正確。然 式3 0b之執行 轉換。已經確 第一模擬程式 定的是第二模 程式3 0 b爲此 中產生第二標 器22上執行 3 0b在所模擬 同時,第一模 的,在所模擬 。因此,在步 第一模擬狀態 5 0 6中,參考 第二模擬機器 丨。在步驟 處,假如可能 較參考主題處 態。如參考系 -18- (16) (16)200417925 統模擬狀態和測試系統模擬狀態符合則在步驟5 0 8中確認 第二模擬程式3 Ob之程式碼轉換。如參考系統模擬狀態和 測試系統模擬狀態間有差異,則在步驟5 1 0中確認第二模 擬程式3 Ob之程式碼轉換錯誤。因已信任第一模擬程式 3 〇 a作用正確,現在則依序確認並信任第二模擬程式3 〇 b 作用正確。 在本發明各種實施例中,最好使用增加複雜之作業模 式執行確認。在第一和最簡單之作業模式中,將大段之主 題碼1 〇分成區段,其中之各區段含一單一指令。主題碼 之各單一·指令以本質執行主題處理器1 2並好比第一模擬 程式30a。根據指令加以確認第一模擬程式30a之正確運 作。一旦已執行主題碼1 2中之所有指令,建立値得信任 之程式碼轉換後,即排定一第二更複雜之模式,其中,增 加各區段之大小,包含一基本區段之數指令。如上述已確 認基本區段之指令後,根據一額外階級加以確認値得信任 之程式碼轉換。然後,排定一第三模式,其中,各區段包 含一組區段(即一組區段或一 iso區段),其中將該區段 一起視爲一單一單元,或在不同條件下該區段代表相同基 本區段。在基本區段組上重複程式碼轉換確認方法。最後 ,漸序提供較大段之主題碼,其中,各漸序複雜模式之確 認新增另一値得信任之階段,直到建立完全値得信任之程 式碼轉換。 當在標的環境2內確認模擬程式3 Ob時則施用相同漸 序增加複雜之運作模式,允許從一單一指令穿越至區段組 -19- (17) (17)200417925 之漸序複雜之運作模式。 在一實施例中,在不同時間點依序執行第一和第二模 擬程式30a,30b之確認,但這產生大量資料記錄在一環 境中並在另一環境中加以播放。因此,最好,實質上同時 執行第一和第二模擬程式3 0 a,3 Ob之確認,這避免煩重 播放機構之需求。供應一區段之主題碼1 〇至各主題處理 器12,第一模擬程式30a及第二模擬程式30b,俾能產生 各別之機器狀態,參考系統狀態及測試系統狀態,並執行 確認比較。假設那些比較是成功的’依次供應下一區段’ 直到在第一模擬程式3 0a和第二模擬程式3 Ob中確認値得 信任之程式碼轉換。 V第1 〇圖表示使主題環境1中之作業與標的環境2中 之作業同步之較佳機構。第11圖更表示在使主題環境1 中之作業與標的環境2中之作業同步所實施方法之一作業 流程圖。 如第1 〇圖中所示,從主題環境1提供一溝通路徑至 標的環境2,尤其是從第一模擬程式3 0 a至第二模擬程式 3 0 b。爲使網路等待降至最小並增進確認速度’這溝通路 徑最好爲單向溝通。然而,了解到的是可將第二模擬程式 3 Ob建置成另一實施例,直接或間接地與第一模擬程式 3 0 a雙向溝通。 首先,兩模擬程式30a’ 30b藉由從第一模擬程式 30a將啓始狀態資訊傳送至第二模擬程式30b ’使其即含 模擬暫存器和記億體値之模擬主題機器狀態同步。 -20- (18) (18)200417925 第二,藉由從主題環將未決定性値傳送至標的環境加 以維持同步。例如,將由一系統呼叫’’get__time_of_day”取 得之一回返値記錄在主題環境1中且傳送至標的環境2。 因此,使標的環境2鏡射主題環境1。 主題碼1 〇分成多數區段。對於各區段之主題碼BBn (例如,一指令,一區段指令,一組區段,等),在步驟 6 00中,主題環境1經由第一模擬程式30a (另稱爲參考 系統)執行那區段碼BBN,這形成主題機器狀態資料〔s 〕rn和非決定性値〔d〕rn在步驟602中被傳送至標的環 境2 (另稱爲測試系統)。要直接傳送主題機器狀態資料 〔s〕rn和非決定性値〔d〕rn至測試系統是可能的、或將 這種資訊儲存在一網路緩衝器中,使得測試系統能如所需 地擷取這資訊。在步驟6 0 4中,——旦測試系統從參考系統 接收主題機器狀態資料〔s〕rn和非決定性値〔d〕Γη,則 在步驟606中,第二模擬程式3 Ob在測試系統上執行主題 碼1 〇之相同區段BBN,替代適當之非決定性値〔d〕Γη。 執行那區段主題碼後,在步驟60 8中比較從第一模擬程式 3〇a所收到之主題機器狀態資料〔s〕rn與第二模擬程式 3〇b中之對應主題機器狀態資料〔s〕tn。如參考系統之狀 態資料和測試系統脗合,則在步驟6 1 0中確認主題碼1 〇 區段B BN之程式碼轉換爲正確。如檢測到分歧,則在步 驟6 1 2中回報一錯誤。否則,重複程式,處理下一區段之 主題碼。 最好以同步方式之控制下執行參考系統和測試系統。 -21 - (19) (19)200417925 這緊密控制之執行避免非決定性之狀態分歧,因此,使得 能從指令等級經由基本區段邊界,上達組區段邊界之任何 點比較參考系統和測試系統狀態。 此處所說明之方法易於以一電腦程式記錄在一電腦可 讀取之記錄媒體上。本發明亦延伸至調適加以執行此處所 說明方法之一種模擬程式裝置,並延伸至當寫程式加以執 行此處所述方法時之一電腦平台。本發明之程式碼轉換確 認方法及裝置亦延伸至一模擬系統,一電腦系統,或被佈 置成加以執行此處所界定之任何方法之一電腦平台。本發 明可以任何適當形式加以具體化,該形式包含,例如,一 網路式計算系統,一伺服器電腦,一桌上型電腦,或一可 攜式計算裝置。本發明亦延伸至一含程式碼指令,用以執 行此處所界定之任何方法之電腦可讀取記錄媒體。 明顯地從以上說明,且明顯地對那些經由本發明實務 之技術人員而言,本發明具許多優點。尤其是,程式碼轉 換之確認快速’有效率、準確,且成本有效。本發明之較 佳實施例允許不昂貴地並具最小開支地執行跨不相容主體 和標的環境之確認。首先在一主題計算環境中之遞增確認 且然後,在標的計算環境中使各環境中之影響降至最小。 經由遞增確認並使用增大複雜模式之確認,可快速且可靠 地確認一模擬程式。於是,藉由調整模擬程式之前段或後 段,可輕易調整較佳模擬程式供不同型式之處理器使用。 簡單可靠地執行確認,且因此適用在早期之開發階段,允 許快速便宜地加以檢測並解決錯誤。較佳確認允許以主題 -22- (20) (20)200417925 碼各別指令之階級展示位元方面之相容性。 雖然已經表示和說明一些較佳實施例,那些精熟技術 者會理解的是,如附加請求項目中之界定,只要不偏離本 發明之範圍,可做各種的變更及修飾。 將注意力導向同時或先前與連同這申請案之這專利說 明書所申請之所有文書和文件,並以這專利說明書公開檢 視該文書和文件,且此處,參考納入所有這種文書和文件 之內容。 除相互排除至少某些這種特性及/或步驟之組合外, 可以任何組合加以結合在這專利說明書(含任何隨附請求 項目,摘要及圖式)中所發表之所有特性,及/或這般發 表之任何方法或程序之所有步驟。 在這專利說明書(含任何隨附請求項目,摘要和圖式 )中所發表之各特性可以符合相同,對等或類似目的之另 選特性替代,除非明白只有說明·。因此,除非明白另有說 明,所發表之各特性只是一通常系統之對等或類似特性之 一實例。 本發明不限於先前賨施例之細節。本發明延伸至這專 利說明書(含任何隨附請求項目,摘要和圖式)中所發表 特性之任何嶄新特性、或任何嶄新組合、或延伸至這般發 表之任何方法或程序之任何嶄新、或任何嶄新組合步驟。 【圖式簡單說明】 爲對本發明有較佳之了解並表示如何有效實施相同實 -23- (21) (21)200417925 施例,現在將藉由實例參考隨圖,其中: 第1圖爲一說明根據本發明,執行模擬程式之計算環 境之示意圖。 第2圖爲一包含程式碼轉換之一實例計算系統之示意 槪觀圖; 第3圖爲一較佳模擬程式之示意槪觀圖; 第4圖爲一確認在根據較佳實施例中之主題處理器上 所執行之程式碼轉換之作業流程圖; 第5圖爲一根據本發明一較佳實施例使用中之第一和 第二模擬器之示意槪觀圖; 第6圖爲一表示根據本發明一較佳實施例使用中之第 一模擬程式之更詳細示意圖; ' 第7圖爲一說明根據本發明一較佳實施例確認方法之 示意狀態圖; 第8圖爲一根據較佳實施例所執行之程式碼轉換之遞 增確認之作業流程圖; 第9圖爲·一表示根據本發明一較佳實施例使用中之第 一模擬程式和第二模擬程式之示意圖; 第1 〇圖爲一說明在根據本發明一較佳實施例之程式 碼轉換確認期間,第一和第二模擬程式同步之示意圖;以 及 第11圖爲一說明在根據本發明一較佳實施例之程式 碼轉換確δ忍期間,桌一和第一模擬程式同步之作業流程圖 -24- (22) (22)200417925 元件對照表 1 2 :主處理器 1 4 :暫存器 1 8 :記憶體 10,16,20,30 :軟體組成份 1 5 :基本區段快取 1 7 :全球暫存器儲存 1 6 :作業系統 3 0 :模擬程式碼 20 :轉譯標的碼· 1 0 :主題碼 22 :標的處理器 3 1 :前段 32 :核心 3 3 :後段 3 20 :理論暫存器 1 2 :主題處理器 321 :條件碼旗標 122 :記憶體 121 :載入/儲存緩衝器 4 1 :模擬程式文稿 4 2 :標的執行文稿程式 43:主題本質文稿程式 -25- (23)200417925 1 :主題計算環境 2 :標的計算環境
-26-
Claims (1)
- 200417925 Π) 拾、申請專利範圍 κ 一種確認由模擬程式所執行之程式碼轉換之方法 ’包含以下步驟: a )經由一模擬程式,在一主題處理器上執行主題碼 ,直到主題碼中之一可比較點; b)在主題處理器上以本質執行主題碼,直到主題碼 中相同之可比較點;以及 c )在主題碼中之可比較點比較在主題處理器上以本 質對主題碼之執行與經由模擬程式,在主題處理器上對主 題碼之執行。 2.如申請專利範圍第1項之方法,其中: 步驟(a )包含在主題處理器上執行主題碼.,直到主 題碼中之可比較點經由模擬程式提供一模擬機器狀態; 步驟(b )包含在主題處理器上以本質執行主題碼, 直到主題碼中相同之可比較點提供一本質機器狀態;以及 步驟(c )包含在主題碼中之每一可比較點比較模擬 機器狀態和本質機器狀態。 3 ·如申請專利範圍第2項之方法,包含在執行步驟 (b )前先執行步驟(a )。 4.如申請專利範圍第3項之方法,其中: 步驟(a)包含提供主題處理器之模擬影像及/或與主 題處理器關連之記憶體之模擬影像; 步驟(b )包含在以本質執行程式碼後,提供一主題 處理器之本質影像及/或在以本質執行程式碼後,提供一 -27- (2) (2)200417925 與主題處理器關連之記憶體之本質影像;以及 步驟(c )包含比較主題處理器之模擬影像與主題處 理器之本質影像及/或比較記憶體之模擬影像與記憶'體& 本質影像。 5. 如申請專利範圍第4項之方法,其中’步驟(a ) 包含在一與記憶體關連之載入/儲存緩衝器中提供記憶體 之模擬影像,使待記憶體不爲獾由模擬程式執行主題碼所 影響。 6. 如申請專利範圍第5項之方法,其中,主題處理 器之模擬影像包含一或更多暫存器之影像。 7. 如申請專利範圍第6項之方法,其中,主題處理 器之模擬影像包含一或更多條件,碼旗標之影像。 8 .如申請專利範圍第1 .項之方法,包含在主題處理 器之一單程序影像內.,以本質及經由模擬程式對主題碼之 執行。 9 .如申請專利範圍第8項之方法,包含在經由模擬 程式,用以執行主題碼之至少一模擬文稿程式與以本質在 主題處理器上執行主題碼之一本質文稿程式之間執行一文 稿程式切換之步驟,本質文稿程式和模擬文稿程式爲單程 序影像內之文稿程式。 1 0·如申請專利範圍第9項之方法,包含在主題處理 器上用以執行模擬程式之模擬文稿程式與在主題處理器上 執行由模擬程式所產生之標的碼之標的執行文稿程式,及 以本質在主題處理器中執行主題碼之主題本質文稿程式之 -28- (3) (3)200417925 間之選擇式切換。 Π·如申請專利範圍第1 〇項之方法,其中,本質文 稿程式和模擬文稿程式使用主題碼之一單影像。 1 2.如申請專利範圍第2項之方法,包含: 將主題碼分成多數區段,其中,各區段包含主題碼中 其中一可比較點,其執行其中一區段,並比較執行一區段 所形成之機器狀態。 1 3 ·如申請專利範圍第1 2項之方法,包含兩或更多 確認模式間之選擇,並根據選擇之確認模式將主題碼分成 多數區段。 1 4·如申請專利範圍第1 3項之方法,包含將主題碼 分成多數區段”並重複執行和比較各多數區段之步驟。 1 5 ·如申請專利範圍第1 4項之方法,其中,各區段 包含下列任一項: (a)主題碼之一單指令; (b )—基本區段’該區段包含從一唯一入口指令至 ~唯一出口指令之一序列指令;或 (c )含多數基本區段之--組區段。 1 6.如申請專利範圍第1項之方法,包含下列步驟: 將一大段主題碼分成多數較小區段,各區段含一或更 多來自大段主題碼之指令;以及 在多數區段中之各對連續鄰近區段之間之一區段邊界 執行確認之比較。 1 7 .如申請專利範圍第1 6項之方法,包含下列步驟 -29- (4) (4)200417925 在處理器之控制在於模擬程式之一模擬文稿程式中提 供主題處理器,在一現行區段BBn上執行程式碼轉換, 產生所轉換標的碼之對應區段,並修補緊接在前,具一回 返轉移之主題碼BBn-1之一區段; 執行一文稿程式切換常規,進入一主題本質文稿程式 ,並由主題處理器以本質執行緊接在前之主題碼BBn - 1 之區段,使得執行步驟以回返轉移加以終止; 執行一文稿程式切換常規,回到模擬文稿程式,並藉 比較一本質機器狀態與一模擬機器狀態加以執行確認比較 ,其中之本質機器狀態代表執行緊接在前區段BBn-Ι後之 主、題處理器,而模.擬機器狀態代表執行緊接在前區段 BBn-Ι後由模擬程式所把持之主題處理器之模擬程式; 執行一文稿程式,切換至一標的執行文稿程式,並使 標的碼之執行成爲典範模式,該標的碼相當於由模擬程式 所把持,爲虛擬模式之主題處理器之現行主題碼區段BBn ,因此,使代表現行區段BBn末之機器狀態爲模擬模式 ;以及 重複多數區段中各隨後區段之以上步驟,除非確認比 較在程式碼轉換中顯示錯誤。 1 8·如申請專利範圍第1 7項之方法,更包含恢復緊 接在前區段BBn-Ι,移除回返轉移。 19·如申請專利範圍第1項之方法,更包含下列步驟 -30- (5) (5)200417925 選取一區段之主題碼; 經由模擬程式在主題處理器上執行主題碼區段;以及 附加一回返轉移至主題碼區段,並以本質在以回返轉 移爲終止之主題處理器上執行主題碼區段,使得回返轉移 將處理器之控制還給模擬程式。 2 0 . —種確認程式碼轉換之方法,包含下列步驟: 執行程式碼轉換,經由在一主題處理器上執行之模擬 程式將主題碼轉換成標的碼並執行標的碼,提供一模擬機 器狀態,該狀態是儲存在一與主題處理器關連之載入/儲 存緩衝器; 直接在主題處理器上執行主題碼,提供一本質機器狀 態,該狀態是.儲存在與主題處理器關連之記憶體中;以及 比較載入/儲存緩衝器中所含之模擬機器狀態與記憶 體中所含之本質機器狀態加以確認程式碼轉換。 2 1.如申請專利範圍第2 0項之方法,更包含: 藉緩衝載入及儲存來自主題處理器之請求至載入/儲 存緩衝器中之記憶體,選擇性地禁止模擬程式存取與主題 處理器關連之記憶體。 22 ·如申請專利範圍第2 1項之方法,包含當執行標 的碼時選擇性地禁止存取記憶體,使得在載入/儲存緩衝 器中提供一模擬記憶體影像。 2 3.如申請專利範圍第20項之方法,其中,一旦已 經確認由在主題處理器上所執行之模擬程式所實施之程式 碼轉換後,該方法更包含下列步驟: -31 - (6) (6)200417925 比較經由在主題處理器上所執行之模擬程式對主題碼 之執行和經由一在標的處理器上所執行之第二模擬程式對 主題碼之執行。 2 4.如申請專利範圍第2 3項之方法’包含提供一弟 一主題處理器作爲主題處理器,並提供一第二主處理器作 爲標的處理器。 25. 如申請專利範圍第24項之方法,其中,主題碼 是可在主題處理器上以本質加以執行而非在標的處理器上 以本質加以執行。 26. —種確認程式碼轉換之方法,包含下列步驟: 首先比較以本質在主題處理器上對主題碼之執行與經 由一第一模擬程式在主題處理器上對主題碼之執行,因此 確認由第一模擬程式所執行之程式碼轉換;以及 一旦確認由第一模擬程式所執行之程式碼轉換,接著 比較經由一在主題處理器上所執行之第一模擬程式對主題 碼之執行與經由一在標的處理器上所執行之第二模擬程式 對主題碼之執行,因此,使用第一模擬程式所執行之所確 認之程式碼轉換加以確認第二模擬程式所執行之程式碼轉 換。 2 7 ·如申請專利範圍第2 6項之方法,包含下列步驟 在第一模擬程式中執行包含提供第一虛擬程式之主題 處理器之主題碼之第一程式碼轉換,並比較第一虛擬模式 與主題處理器;以及 -32- (7) (7)200417925 在第二模擬程式中執行包含提供第二虛擬程式之主題 處理器之主題碼之第二程式碼轉換,並比較第二虛擬程式 中之第一虛擬模式與第二模擬程式中之第二虛擬模式。 28. 如申請專利範圍第27項之方法,包含提供從第 一模擬程式至第二模擬程式之單向溝通。 29. 如申請專利範圍第27項之方法,包含下列步驟 藉由第一模擬程式傳送啓始狀態資訊至第二模擬程式 ,使第一及第二虛擬模式同步; 將主題碼分成多數區段; 對於各區段之主題碼,經由第一模擬程式執行主題碼 區段並提供一·組主題機器狀戰資料及非決定性値至第二模 擬程式; 在第二模擬程式中執行主題碼區段,取代非決定性値 並提供一組標的機器狀態資料;以及 : 比較主題機器狀態資料與標的機器狀態資料且如檢測 到分歧時則回報錯誤,否則對下一區段主題碼重複這程序 〇 30. 一種確認程式碼轉換之方法,包含下列步驟: (a )使主題碼分成多數區段,其中,各區段包含至 少一指令, (b )經由一第一模擬程式在一主題處理器上執行一 主題碼區段; (c)比較以本質在主題處理器上對一區段主題碼之 -33- (8) (8)200417925 執行與經由第一模擬器在主題處理器上對一區段主題碼之 執行,因此確認由第一模擬程式所執行之主題碼區段之程 式碼轉換; (d )比較經由在一標的處理器上所執行之第二模擬 程式對相同一區段主題碼之執行與經由在主題處理器所執 行之第一模擬程式對一區段主題碼之已確認之執行,因此 確認由第二模擬程式所執行之一區段主題碼之程式碼轉換 ;以及 (e )對每一區段之主題碼重複步驟(b ) — ( d ), 直到對每一區段之主題碼確認由第二模擬程式所執行之程 式碼轉換。 3 1 .如申請專利範菌第.3 0項之方法,其中,起初將 主題碼分開,使得各區段之主題碼含一單一指令。 3 2 .如申請專利範圍第3 1項之方法,其中,在對包 含一單一指令之每一區段主題碼確認由第二模擬程式所執 行之程式碼轉換後,這方法包含: 藉重新將主題碼分成多數新區段加以重複步驟(a ) ,其中,各新區段爲一基本區段,其包含從一唯一入口指 令至一唯一出口指令之一序列指令;以及 對各基本區段重複步驟(b ) -( e ),因此,對每一 基本區段之主題碼確認由第二模擬程式所執行之程式碼轉 換。 33.如申請專利範圍第3 2項之方法,其中,在對每 一基本區段之主題碼確認由第二模擬程式所執行之程式碼 -34- (9) (9)200417925 轉換後,這方法更包含: 藉重新將主題碼分成多數群組區段加以重複步驟(a ),其中,各群組區段包含多數基本區段;以及 對各群組區段重複步驟(b )至(e ),因此,對每一 群組區段之主題碼確認由第二模擬程式所執行之程式碼轉 換。 3 4 · —種電腦可讀取之儲存媒體,該媒體上長駐形式 爲電腦可讀取碼之模擬程式軟體,該電腦可讀取碼可由一 電腦加以執行,用以實施申請專利範圍第1至3 3項中任 一項之方法。 3 5 · —種模擬程式裝置,包含下列組合: 一處理器;以及, 模擬程式碼,該模擬程式碼用以實施申請專利範圍第 1至33項中任一項之方法。-35-
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0225649.3A GB0225649D0 (en) | 2002-11-04 | 2002-11-04 | Incremental validation |
Publications (1)
Publication Number | Publication Date |
---|---|
TW200417925A true TW200417925A (en) | 2004-09-16 |
Family
ID=9947144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW092130852A TW200417925A (en) | 2002-11-04 | 2003-11-04 | Method and apparatus for performing validation of program code conversion |
Country Status (9)
Country | Link |
---|---|
US (1) | US7793270B2 (zh) |
EP (1) | EP1559012B1 (zh) |
JP (1) | JP4766540B2 (zh) |
AT (1) | ATE361497T1 (zh) |
AU (1) | AU2003301782A1 (zh) |
DE (1) | DE60313652T2 (zh) |
GB (2) | GB0225649D0 (zh) |
TW (1) | TW200417925A (zh) |
WO (1) | WO2004042564A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI427535B (zh) * | 2006-06-20 | 2014-02-21 | Ibm | 於連結至本機碼期間處置異常之方法及設備 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7149929B2 (en) * | 2003-08-25 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | Method of and apparatus for cross-platform core dumping during dynamic binary translation |
US20050216829A1 (en) * | 2004-03-25 | 2005-09-29 | Boris Kalinichenko | Wireless content validation |
US8694802B2 (en) | 2004-04-30 | 2014-04-08 | Apple Inc. | System and method for creating tamper-resistant code |
US7278122B2 (en) * | 2004-06-24 | 2007-10-02 | Ftl Systems, Inc. | Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization |
US7752633B1 (en) * | 2005-03-14 | 2010-07-06 | Seven Networks, Inc. | Cross-platform event engine |
US7813909B2 (en) * | 2006-05-03 | 2010-10-12 | Sony Computer Entertainment Inc. | Register mapping in emulation of a target system on a host system |
US7770050B2 (en) * | 2006-05-03 | 2010-08-03 | Sony Computer Entertainment Inc. | Method and apparatus for resolving clock management issues in emulation involving both interpreted and translated code |
US7792666B2 (en) * | 2006-05-03 | 2010-09-07 | Sony Computer Entertainment Inc. | Translation block invalidation prehints in emulation of a target system on a host system |
US7802232B2 (en) * | 2006-03-31 | 2010-09-21 | Microsoft Corporation | Software robustness through search for robust runtime implementations |
US20070234296A1 (en) * | 2006-03-31 | 2007-10-04 | Microsoft Corporation | Software variation for robustness through randomized execution contexts |
JP4589263B2 (ja) * | 2006-04-10 | 2010-12-01 | 日本電信電話株式会社 | 音声モニタリング録音システム |
US7568189B2 (en) * | 2006-05-03 | 2009-07-28 | Sony Computer Entertainment Inc. | Code translation and pipeline optimization |
US8352713B2 (en) * | 2006-08-09 | 2013-01-08 | Qualcomm Incorporated | Debug circuit comparing processor instruction set operating mode |
US7908596B2 (en) * | 2007-01-05 | 2011-03-15 | International Business Machines Corporation | Automatic inspection of compiled code |
GB2447968B (en) * | 2007-03-30 | 2010-07-07 | Transitive Ltd | Improvements in and relating to floating point operations |
US8060356B2 (en) | 2007-12-19 | 2011-11-15 | Sony Computer Entertainment Inc. | Processor emulation using fragment level translation |
CN100530164C (zh) * | 2007-12-29 | 2009-08-19 | 中国科学院计算技术研究所 | 一种risc处理器及其寄存器标志位处理方法 |
JP2010003008A (ja) * | 2008-06-18 | 2010-01-07 | Fujitsu Ltd | 検出プログラム、検出装置および検出方法 |
US20110145643A1 (en) * | 2009-12-10 | 2011-06-16 | Microsoft Corporation | Reproducible test framework for randomized stress test |
US8549468B2 (en) * | 2010-02-08 | 2013-10-01 | National Tsing Hua University | Method, system and computer readable storage device for generating software transaction-level modeling (TLM) model |
US20120011491A1 (en) * | 2010-07-06 | 2012-01-12 | Adi Eldar | Efficient recording and replaying of the execution path of a computer program |
WO2012031846A1 (en) * | 2010-09-09 | 2012-03-15 | International Business Machines Corporation | An automated operating system test framework |
US9104514B2 (en) * | 2011-01-11 | 2015-08-11 | International Business Machines Corporation | Automated deployment of applications with tenant-isolation requirements |
US20120331303A1 (en) * | 2011-06-23 | 2012-12-27 | Andersson Jonathan E | Method and system for preventing execution of malware |
US20130024178A1 (en) * | 2011-07-20 | 2013-01-24 | Narendran Kumaragurunathan | Playback methodology for verification components |
US20130132063A1 (en) * | 2011-11-18 | 2013-05-23 | Michael J. Rieschl | Systems and methods for debugging just-in-time static translation in an emulated system |
WO2014155684A1 (ja) | 2013-03-29 | 2014-10-02 | 富士通株式会社 | プログラム、情報処理システム、およびプログラム移行方法 |
EP2849464A1 (en) * | 2013-09-17 | 2015-03-18 | Gemalto SA | Method of communicating between a server and a secure element |
EP2851815A1 (de) * | 2013-09-18 | 2015-03-25 | dSPACE digital signal processing and control engineering GmbH | Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts |
US10747880B2 (en) * | 2013-12-30 | 2020-08-18 | University Of Louisiana At Lafayette | System and method for identifying and comparing code by semantic abstractions |
US10275344B2 (en) * | 2014-03-03 | 2019-04-30 | Lg Electronics Inc. | Method for verifying operations for common application development of in-vehicle infotainment system and mobile terminal |
RU2757409C1 (ru) * | 2020-06-19 | 2021-10-15 | Акционерное общество "Лаборатория Касперского" | Эмулятор и способ эмуляции |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0096510B1 (en) * | 1982-06-03 | 1988-07-27 | LUCAS INDUSTRIES public limited company | Control system primarily responsive to signals from digital computers |
US5138708A (en) * | 1989-08-03 | 1992-08-11 | Unisys Corporation | Digital processor using current state comparison for providing fault tolerance |
JPH04190457A (ja) * | 1990-11-26 | 1992-07-08 | Hitachi Ltd | 論理シミュレーション方法および装置 |
US5729554A (en) * | 1996-10-01 | 1998-03-17 | Hewlett-Packard Co. | Speculative execution of test patterns in a random test generator |
US5905855A (en) * | 1997-02-28 | 1999-05-18 | Transmeta Corporation | Method and apparatus for correcting errors in computer systems |
TW342483B (en) * | 1997-11-14 | 1998-10-11 | Winbond Electronics Corp | Serial in-circuit emulator architecture |
US6415436B1 (en) * | 1998-12-11 | 2002-07-02 | Hewlett-Packard Company | Mechanism for cross validating emulated states between different emulation technologies in a dynamic compiler |
US6145436A (en) * | 1999-04-27 | 2000-11-14 | Astro-Med, Inc. | Label transport shuttle for a printing device |
US6625759B1 (en) * | 2000-02-18 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for verifying the fine-grained correctness of a behavioral model of a central processor unit |
JP2001306359A (ja) * | 2000-04-20 | 2001-11-02 | Seiko Epson Corp | 自動評価システム |
-
2002
- 2002-11-04 GB GBGB0225649.3A patent/GB0225649D0/en not_active Ceased
-
2003
- 2003-11-03 US US10/700,224 patent/US7793270B2/en active Active
- 2003-11-04 EP EP03810505A patent/EP1559012B1/en not_active Expired - Lifetime
- 2003-11-04 DE DE60313652T patent/DE60313652T2/de not_active Expired - Lifetime
- 2003-11-04 AU AU2003301782A patent/AU2003301782A1/en not_active Abandoned
- 2003-11-04 JP JP2004549323A patent/JP4766540B2/ja not_active Expired - Fee Related
- 2003-11-04 TW TW092130852A patent/TW200417925A/zh unknown
- 2003-11-04 AT AT03810505T patent/ATE361497T1/de not_active IP Right Cessation
- 2003-11-04 WO PCT/GB2003/004727 patent/WO2004042564A2/en active IP Right Grant
- 2003-11-04 GB GB0325759A patent/GB2395316B/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI427535B (zh) * | 2006-06-20 | 2014-02-21 | Ibm | 於連結至本機碼期間處置異常之方法及設備 |
Also Published As
Publication number | Publication date |
---|---|
WO2004042564A2 (en) | 2004-05-21 |
US20040221273A1 (en) | 2004-11-04 |
GB2395316A (en) | 2004-05-19 |
DE60313652T2 (de) | 2008-01-10 |
AU2003301782A8 (en) | 2004-06-07 |
GB2395316A8 (en) | 2005-03-18 |
ATE361497T1 (de) | 2007-05-15 |
EP1559012B1 (en) | 2007-05-02 |
DE60313652D1 (de) | 2007-06-14 |
GB2395316B (en) | 2005-05-11 |
EP1559012A2 (en) | 2005-08-03 |
JP2006505844A (ja) | 2006-02-16 |
US7793270B2 (en) | 2010-09-07 |
JP4766540B2 (ja) | 2011-09-07 |
AU2003301782A1 (en) | 2004-06-07 |
GB0325759D0 (en) | 2003-12-10 |
WO2004042564A3 (en) | 2004-07-22 |
GB0225649D0 (en) | 2002-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW200417925A (en) | Method and apparatus for performing validation of program code conversion | |
CN100483341C (zh) | 用于执行本机绑定的方法和装置 | |
JP3654910B2 (ja) | コンピュータ・システムにおけるエラー訂正方法および装置 | |
US20070055911A1 (en) | A Method and System for Automatically Generating a Test-Case | |
US8230402B2 (en) | Testing and debugging of dynamic binary translation | |
US20080177527A1 (en) | Simulation system, simulation method and simulation program | |
US8140315B2 (en) | Test bench, method, and computer program product for performing a test case on an integrated circuit | |
US8286141B2 (en) | Instruction-trace generation program, instruction-trace generating device, and instruction-trace generating method | |
US8276132B1 (en) | System and method for representing and managing a multi-architecture co-processor application program | |
JP2817786B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
US7219335B1 (en) | Method and apparatus for stack emulation during binary translation | |
KR20190075508A (ko) | 가상화된 시스템 상에서 임베디드 소프트웨어를 자동으로 생성하는 방법 및 컴퓨팅 시스템 | |
JPH06309193A (ja) | 機械語プログラムの動作検証方法および装置 | |
JP3461185B2 (ja) | ロードモジュールへのソースコード行番号登録方法および装置 | |
CN110134402B (zh) | 一种仿真运行时ram和寄存器变化动画生成方法 | |
JP2785606B2 (ja) | パイプライン処理方式コンピュータ用プログラムのデバッガ | |
JP2003177937A (ja) | エミュレータ・ユニットとホスト装置の間の通信を改善する装置と方法 | |
JP3955843B2 (ja) | マイクロプロセッサの並列シミュレーションシステム | |
JP4421498B2 (ja) | プログラム | |
JPH11154093A (ja) | プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体 | |
JP2000207226A (ja) | コ―ド最適化装置、言語処理装置及びコ―ド最適化方法 | |
JP3604936B2 (ja) | 最適化方法,最適化装置及び記録媒体 | |
JP5100604B2 (ja) | システムシミュレーション装置 | |
JPH09171467A (ja) | エミュレーション装置及びその方法 | |
de Jesús Hoyos-Rivera et al. | Using PVM to build an Interface to support Cooperative Work in a Distributed Systems Environment |