基于模擬器的中央處理器指令集的功能測試自動實施方法
【專利摘要】本發(fā)明公開了基于模擬器的中央處理器指令集的功能測試自動實施方法,屬于處理器【技術領域】。本發(fā)明的步驟為:一、整理中央處理器中的DataSheet,在Excel中寫出測試項目;二、對Excel表進行解析,生成實機工具用腳本文件和待測CPU能夠識別的匯編文件;三、利用實機工具運行腳本文件,得實際結果;四、利用硬件模擬器運行匯編文件,得模擬結果;五、利用解析器轉換實際結果和模擬結果為統(tǒng)一格式;六、比較步驟五統(tǒng)一格式后的實際結果和模擬結果,生成最終檢證結果。本發(fā)明理論上可以支持對任意型號的CPU進行檢證,且無需通過待模擬硬件產品的實機得到實際結果就能對模擬結果進行檢證,可以和任意模擬器配合進行測試,檢證手段豐富。
【專利說明】基于模擬器的中央處理器指令集的功能測試自動實施方法
【技術領域】
[0001] 本發(fā)明屬于處理器【技術領域】,具體涉及一種基于硬件模擬器平臺用于中央處理器 功能測試的自動測試方法,特別是一種用于中央處理器所支持的指令集功能的自動測試方 法。
【背景技術】
[0002] 在處理器的開發(fā)過程中,對其功能進行準確而嚴密的測試是十分關鍵的。QEMU開 源社區(qū)中的Laurent Vivier提供了一套針對特定型號CPU (摩托羅拉68020)的自動測試 工具。該套自動測試工具包含以下內容:
[0003] I) tester-gen軟件,利用實際的CPU運行測試用例集,用于得到測試用例集的實 機運行結果;
[0004] 2) m68k-tester軟件,利用已經模擬實現的CPU的QEMU模擬器運行測試用例集,得 到豐吳擬結果;
[0005] 3)摩托羅拉68020的測試用例集;
[0006] 4)運行測試用例集的測試腳本。
[0007] 該套自動測試工具的測試流程參看圖1,其具體的運行方式如下:
[0008] 1)利用tester-gen軟件在實際安裝了摩托羅拉68020的CPU的機器上運行測試 用例集,得到實機運行結果(之后簡稱實際結果);
[0009] 2)利用m68k-tester軟件和已經模擬實現的CPU的QEMU模擬器一起編譯,得到 m68k-te Ster可執(zhí)行文件,運行測試用例集,得到模擬結果(之后簡稱模擬結果);
[0010] 3)比較實際結果和模擬結果,得到模擬CPU功能測試的檢證結果。
[0011] 該套自動測試工具有以下不足,
[0012] 1、測試用例集應用范圍狹隘,原因在于:
[0013] 1)工具自帶的測試用例集只支持摩托羅拉68020的CPU指令集;
[0014] 2)測試用例集中每一個測試用例的格式是特殊格式,測試用例集的創(chuàng)建方法沒有 公開,除作者外沒有人可以追加、修改測試用例集;
[0015] 3)工具自帶的測試用例集只支持對摩托羅拉68020的數據寄存器和地址寄存器 進行檢證,不支持地址寄存器尋址和其他狀態(tài)寄存器的檢證;
[0016] 4)根據實際運行結果,發(fā)現工具自帶的測試用例集中存在錯誤,導致得到的模擬 結果不正確。
[0017] 2、檢證手段單一,原因在于:
[0018] 1)必須有待模擬硬件產品的實機才能取得對比數據;
[0019] 2)必須配套QEMU模擬器進行測試。
[0020] 經檢索,中國專利申請?zhí)?01110439714. 9,申請日為2011年12月23日,發(fā)明創(chuàng)造 名稱為:用于處理器的指令集批量測試裝置與方法,該申請案公開了一種用于處理器的指 令集批量測試裝置(裝置構成參看圖2),包括測試用例批量管理裝置、源文件編譯裝置、配 置文件解析裝置和調試裝置,測試用例批量管理裝置用于對測試用例進行管理,生成測試 用例集,建立測試配置文件,并將測試用例或測試用例集輸出到源文件編譯裝置,將測試配 置文件輸出到配置文件解析裝置;該申請案利用配置文件解析裝置生成自動測試腳本,自 動執(zhí)行大量的測試工作并給出測試結果,使用戶免于編寫測試腳本;通過構建測試用例批 量管理裝置對測試用例庫進行有效的組織、管理和維護。但該申請案存在以下不足:
[0021] 1)只能針對實際存在的處理器進行測試,應用范圍窄;
[0022] 2)測試用例使用XML,HTML,XHTML等語言撰寫,需要測試用例的設計者掌握應用 上述編程語言的能力,對于測試用例設計者的要求較高;
[0023] 3)對于處理器中種類繁多的寄存器和各種類型的地址尋址方式,不能很好地進行 測試;
[0024] 4)不能簡單改造達到針對模擬器的中央處理器的測試,原因在于,其一通過模擬 器實現的中央處理器的接口和物理實際存在的中央處理器接口不一致,物理實際存在的中 央處理器接口可以直接運行可執(zhí)行程序,而基于模擬器的中央處理器是運行于一個操作系 統(tǒng),通過指定的命令和數據格式運行可執(zhí)行程序;換句話說,對物理實際存在的中央處理器 是程序與cpu之間的通訊;而對基于模擬器的中央處理器在程序與CPU之間還存在一個操 作系統(tǒng),需要額外的增加接口才能實現程序與基于模擬器的中央處理器的通訊。
【發(fā)明內容】
[0025] 1?發(fā)明要解決的技術問題
[0026] 本發(fā)明的目的在于解決現有技術對中央處理器進行功能自動測試時存在的:1) 測試用例集應用范圍窄;2)檢證手段單一的問題,提供了一種基于模擬器的中央處理器指 令集的功能測試自動實施方法,本發(fā)明提供的技術方案理論上可以支持對任意型號的CPU 進行檢證,且無需通過待模擬硬件產品的實機得到實際結果就能對模擬結果進行檢證,可 以和任意模擬器配合進行測試,檢證手段豐富。
[0027] 2?技術方案
[0028] 為達到上述目的,本發(fā)明提供的技術方案為:
[0029] 本發(fā)明的基于模擬器的中央處理器指令集的功能測試自動實施方法,其步驟為:
[0030] 步驟一、整理中央處理器中的Datasheet,在Excel中寫出測試項目;
[0031] 步驟二、利用腳本對步驟一所得Excel表進行解析,生成實機工具用腳本文件和 待測CPU能夠識別的匯編文件;
[0032] 步驟三、利用實機工具運行步驟二生成的腳本文件,得實際結果;
[0033] 步驟四、利用硬件模擬器運行步驟二生成的匯編文件,得模擬結果;
[0034] 步驟五、利用解析器轉換步驟三所得實際結果和步驟四所得模擬結果為統(tǒng)一格 式;
[0035] 步驟六、比較步驟五統(tǒng)一格式后的實際結果和模擬結果,生成最終檢證結果。
[0036] 更進一步地,步驟一中寫入Excel的測試項目個數M由測試指令的操作數類型m、 操作數長度n、CCR有效位數X和普通指令測試條數y確定。
[0037] 更進一步地,步驟一中測試項目個數M的計算公式為:
[0038] M=m^n^x+yo
[0039] 更進一步地,步驟一所述的Excel表中包括[No.]列、[Execute Assembler]列、 [.S]列、[.CMM]列和[CCR Mask]列,Excel表中每一行為一個測試項目,每個測試項目在 [No.]列填寫測試項目序號,在[Execute Assembler]列填寫測試對象,在[.S]列填寫硬件 模擬器上運行的匯編語言指令,在[.CMM]列填寫用于生成實機工具用的腳本文件內容,在 [CCR Mask]列填寫CCR寄存器在測試項目完成后的期待值有效位。
[0040] 3?有益效果
[0041] 采用本發(fā)明提供的技術方案,與已有的公知技術相比,具有如下顯著效果:
[0042] (1)本發(fā)明的基于模擬器的中央處理器指令集的功能測試自動實施方法,通過預 設期待結果、執(zhí)行(PU指令和操作數構成的命令得模擬結果、比較期待結果和模擬結果來 檢證CPU指令集,不僅可以根據CPU的datasheet整理出腳本自動生成所有測試項目需要 用的命令,且可以利用腳本將各條命令對應的期待結果從Excel文件中截取出來用于比 較,因此,理論上可以支持對任意指令集由cpu指令和操作數構成的CPU進行檢證;
[0043] (2)本發(fā)明的基于模擬器的中央處理器指令集的功能測試自動實施方法,其測試 用例集存儲于Excel表中,每一行對應一條測試用例,測試用例集的創(chuàng)建/修改/追加/刪 除操作簡單,可以根據開發(fā)的需求定制測試用例集;
[0044] (3)本發(fā)明的基于模擬器的中央處理器指令集的功能測試自動實施方法,其以硬 件模擬器為平臺,由于CPU的所有寄存器和地址尋址方式在模擬器中都以內存空間的形式 存在,可以輕松讀取到模擬器內存空間中記載的內容,故支持CPU的所有寄存器和地址尋 址方式的檢證;
[0045] (4)本發(fā)明的基于模擬器的中央處理器指令集的功能測試自動實施方法,其測試 用例集通過整理CPU中的Datasheet進行配置,能夠確保和Datasheet中規(guī)定的一致,減少 模擬結果的出錯率;
[0046] (5)本發(fā)明的基于模擬器的中央處理器指令集的功能測試自動實施方法,根據 datasheet上規(guī)定的規(guī)則計算得到指令的執(zhí)行結果,作為測試的期待結果與實際結果進行 比較,無需通過實際機器得到測試的期待結果,就能對模擬結果進行檢證,理論上可以和任 意模擬器配合進行測試,檢證手段豐富。
【專利附圖】
【附圖說明】
[0047] 圖1為m68k_tester軟件測試實施流程圖;
[0048] 圖2為專利申請?zhí)枮?01110439714. 9公開的指令集批量測試裝置構成圖;
[0049] 圖3為本發(fā)明的基于模擬器的中央處理器指令集的功能測試自動實施方法流程 圖,(※彡版實機工具指目前市面上非常成熟的在windows上運行的仿真測試工具,例如 德國Lauterbach公司研制開發(fā)的一款仿真測試工具trace32,免費開源的CodeWarrior Development Studio 軟件,Cosmic Software 公司的 Cosmic 軟件等等,下文將以 trace32 為例進行說明;
[0050] 圖4為摩托羅拉68360的AB⑶指令說明;
[0051] 圖5為步驟二生成的腳本文件;
[0052] 圖6為QEMU用的測試用例匯編指令;
[0053] 圖7為Trace32運行腳本的結果;
[0054] 圖8為QEMU運行測試用例的結果;
[0055] 圖9為本發(fā)明的最終檢證結果。
【具體實施方式】
[0056] 為進一步了解本發(fā)明的內容,結合附圖和實施例對本發(fā)明作詳細描述。
[0057] 實施例1
[0058] 本實施例的基于模擬器(硬件模擬器用以在一臺計算機上模擬另一臺指令不兼 容或者體系不同的計算機)的中央處理器指令集的功能測試自動實施方法,檢證的CPU型 號為摩托羅拉68360,所用的實機仿真測試工具為Trace32, CPU硬件模擬器為QEMU模擬器。 摩托羅拉68360的Datasheet (數據表)通過在開源網站上下載獲得,也可從購買硬件的隨 機附贈資料等其他方式中獲得。
[0059] 參看圖3,本實施例的指令集的功能測試自動實施方法包括以下步驟:
[0060] 步驟一、整理中央處理器CPU中的Datasheet,根據Datasheet中對指令的描述設 計測試項目,在Excel中寫出各測試項目;測試項目個數M由測試指令的操作數類型m、操 作數長度n、CCR有效位數X和普通指令測試條數y確定。參看表1,測試項目個數M的計 算公式為:M = m*n*x+y。
[0061] 表1測試項目個數確定要因表
[0062]
【權利要求】
1. 基于模擬器的中央處理器指令集的功能測試自動實施方法,其步驟為: 步驟一、整理中央處理器中的Datasheet,在Excel中寫出測試項目; 步驟二、對步驟一所得Excel表進行解析,生成實機工具用腳本文件和待測CPU能夠識 別的匯編文件; 步驟三、利用實機工具運行步驟二生成的腳本文件,得實際結果; 步驟四、利用硬件模擬器運行步驟二生成的匯編文件,得模擬結果; 步驟五、利用解析器轉換步驟三所得實際結果和步驟四所得模擬結果為統(tǒng)一格式; 步驟六、比較步驟五統(tǒng)一格式后的實際結果和模擬結果,生成最終檢證結果。
2. 根據權利要求1所述的基于模擬器的中央處理器指令集的功能測試自動實施方法, 其特征在于:步驟一中寫入Excel的測試項目個數M由測試指令的操作數類型m、操作數長 度n、CCR有效位數X和普通指令測試條數y確定。
3. 根據權利要求2所述的基于模擬器的中央處理器指令集的功能測試自動實施方法, 其特征在于:步驟一中測試項目個數M的計算公式為: M = m*n*x+y〇
4. 根據權利要求3所述的基于模擬器的中央處理器指令集的功能測試自動實施方法, 其特征在于:步驟一所述的Excel表中包括[No.]列、[Execute Assembler]列、[.S]列、 [.CMM]列和[CCR Mask]列,Excel表中每一行為一個測試項目,每個測試項目在[No.]列 填寫測試項目序號,在[Execute Assembler]列填寫測試對象,在[.S]列填寫硬件模擬器 上運行的匯編語言指令,在[.CMM]列填寫用于生成實機工具用的腳本文件內容,在[CCR Mask]列填寫CCR寄存器在測試項目完成后的期待值有效位。
【文檔編號】G06F11/36GK104317715SQ201410596578
【公開日】2015年1月28日 申請日期:2014年10月30日 優(yōu)先權日:2014年10月30日
【發(fā)明者】王春平, 張煜, 劉志紅 申請人:南京富士通南大軟件技術有限公司