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