两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

微處理器指令集驗證方法

文檔序號:6377742閱讀:649來源:國知局
專利名稱:微處理器指令集驗證方法
技術領域
本發(fā)明涉及一種微處理器指令集的驗證方法,具體用于微處理器設計各階段的功能驗證。
背景技術
指令集驗證在微處理器設計中非常關鍵并貫穿于整個設計過程。指令集定義實現(xiàn)的功能越多,電路的集成復雜度的越高,指令集驗證工作的復雜度和工作量越大。設計一種自動化、可移植、驗證覆蓋率高的指令集驗證方法對設計正確性、可靠性和縮短芯片從設計到流片的時間非常重要。傳統(tǒng)的功能驗證方法是通過人工編寫大量的“指令序列”作為驗證激勵,施加到 微處理器設計上,通過EDA軟件查看波形,檢查指令執(zhí)行的正確性。這種驗證方法具有很大的“隨意性”,通常是設計者考慮到某一方面的指令集功能,就設計相應的指令序列,由微處理器執(zhí)行該段序列來驗證設計的正確性。這樣就很難完全覆蓋到微處理器指令集定義的全部功能。隨著微處理器設計規(guī)模的增大,需要編寫用于驗證的指令序列數(shù)量成指數(shù)量級增長,自動化程度不高。而且當指令集定義發(fā)生改變時,需要針對微處理器重新設計驗證指令序列,之前的驗證代碼很難被移植到新設計的驗證上。另一種方法是利用高級語言,如C語言,編寫復雜的驗證程序,經(jīng)過編譯器編譯成二進制碼,在微處理器上運行該二進制代碼對微處理器設計進行驗證。這種方法的缺點是,編譯器采用優(yōu)化策略對二進制代碼經(jīng)過優(yōu)化后,產(chǎn)生的驗證代碼不能夠完全覆蓋到微處理器的設計,在一些路徑上會缺少對應的驗證激勵。

發(fā)明內(nèi)容
為了克服現(xiàn)有技術的不足,本發(fā)明提供一種自動化、可移植的微處理器指令集驗證方法,以提高驗證的覆蓋率。本發(fā)明解決其技術問題所采用的技術方案包括以下步驟步驟I、將監(jiān)控程序加載到微處理器中,并啟動微處理器運行監(jiān)控程序;步驟2、對微處理器支持的指令集分類,每一類指令由一組參數(shù)確定,針對每一類指令,設計一個指令驗證的代碼框架,將需要驗證的指令或指令序列嵌入到這個代碼框架中;步驟3、對每組參數(shù)按照取指范圍遍歷取值,根據(jù)每組參數(shù)值的組合,生成驗證的指令或指令序列,并將這個指令或指令序列嵌入到步驟2的驗證代碼框架中;步驟4、將驗證代碼框架加載到微處理器中,并發(fā)送協(xié)議字給微處理器上的監(jiān)控程序,使微處理器轉入到驗證代碼框架的執(zhí)行;步驟5、查詢微處理器驗證結束協(xié)議字,如果驗證代碼執(zhí)行結束,將執(zhí)行結果讀出;否則,繼續(xù)查詢;步驟6、將步驟5的執(zhí)行結果和指令執(zhí)行的期望結果比較,結果正確,將比較結果記錄到日志文件中,轉步驟2,繼續(xù)遍歷驗證;否則,輸出錯誤信息,并記錄到日志文件。所述的監(jiān)控程序按以下步驟操作步驟1-1、查詢驗證代碼框架加載結束協(xié)議字,如果協(xié)議字有效,轉步驟1-2 ;否則繼續(xù)查詢;步驟1-2、跳轉至驗證代碼框架,執(zhí)行指令驗證代碼;
步驟1-3、驗證代碼執(zhí)行結束,置驗證結束協(xié)議字,并跳轉到步驟1-2,繼續(xù)下一次驗證的查詢。所述的指令驗證代碼框架按以下步驟設計步驟2-1、根據(jù)指令的分類,確定驗證該類指令所需要的參數(shù),并根據(jù)參數(shù),生成指令序列A,通過執(zhí)行指令序列A準備好當前指令驗證的微處理器的狀態(tài);步驟2-2、根據(jù)參數(shù)生成當前被驗證的指令B,將指令B添加到序列A之后,生成序列 A&B ;步驟2-3、在序列A&B之后添加一段保護指令B執(zhí)行結果的指令序列C。本發(fā)明的有益效果是本發(fā)明提出了一套微處理器指令集自動驗證的方法。通過將當前驗證的指令的各字段以參數(shù)化的形式進行配置,可以對參數(shù)進行遍歷組合,實現(xiàn)對微處理器設計中所有路徑的驗證覆蓋。驗證結果采用自動比對的形式,以文件記錄的形式輸出,避免了通過分析仿真波形才能判斷指令執(zhí)行真確性的弊端,實現(xiàn)了自動、高效率的驗證。發(fā)明中提出的驗證方法可以移植到在微處理器設計各階段的驗證平臺上,如仿真驗證階段的TestBench、時序驗證階段的功能驗證TestBench、FPGA驗證平臺、微處理器的系統(tǒng)驗證平臺上。


圖I :本發(fā)明主流程圖;圖2 :監(jiān)控程序流程圖;圖3 :驗證代碼框架設計流程圖;圖4 :本發(fā)明的具體實施實例框圖;圖5 :具體實施實例程序存儲不意圖。
具體實施例方式本發(fā)明包括以下步驟步驟I、將監(jiān)控程序加載到微處理器中,并啟動微處理器運行監(jiān)控程序;步驟2、對微處理器支持的指令集分類,每一類指令由一組參數(shù)確定。針對每一類指令,設計一個指令驗證的代碼框架,需要驗證的指令或指令序列嵌入到這個代碼框架中;步驟3、對每組參數(shù)按照取指范圍遍歷取值,根據(jù)每組參數(shù)值的組合,生成驗證的指令或指令序列,并將這個指令或指令序列嵌入到步驟2的驗證代碼框架中;步驟4、將驗證代碼框架加載到微處理器中,并發(fā)送協(xié)議字給微處理器上的監(jiān)控程序,使微處理器轉入到驗證代碼框架的執(zhí)行;
步驟5、查詢微處理器“驗證結束”協(xié)議字。如果驗證代碼執(zhí)行結束,將執(zhí)行結果讀出;否則,繼續(xù)查詢;步驟6、將步驟5的執(zhí)行結果和指令執(zhí)行的期望結果比較。結果正確,將比較結果記錄到日志文件中,轉步驟2,繼續(xù)遍歷驗證;否則,輸出錯誤信息,并記錄到日志文件。在上述方案中,步驟I所述的監(jiān)控程序按以下步驟操作步驟1-4、查詢驗證代碼框架加載結束協(xié)議字。如果協(xié)議字有效,轉步驟1-2 ;否貝U,轉步驟1-1,繼續(xù)查詢;步驟1-5、跳轉至驗證代碼框架程序段,執(zhí)行指令驗證代碼;步驟1-6、驗證代碼執(zhí)行結束,置“驗證結束”協(xié)議字,并跳轉到步驟1-2,繼續(xù)下一次驗證的查詢。
在上述方案中,步驟2所述的指令驗證代碼框架按以下步驟設計步驟2-4、根據(jù)指令的分類,確定驗證該類指令所需要的參數(shù),并根據(jù)參數(shù),生成指令序列A.通過執(zhí)行指令序列A準備好當前指令驗證的微處理器的狀態(tài);步驟2-5、根據(jù)參數(shù)生成當前被驗證的指令B.將指令B添加到序列A之后;步驟2-6、為避免指令執(zhí)行的結果被其他指令段“污染”,在序列A&B之后添加一段指令序列C,用來保護指令B執(zhí)行的結果。下面結合附圖和實施例對本發(fā)明進一步說明。微處理器的指令集按照完成的功能對指令進行分類寄存器賦值指令一立即數(shù)向寄存器賦值、寄存器-寄存器賦值、條件寄存器賦值;訪存指令——包括存儲器向寄存器加載指令和寄存器向存儲器加載指令;算術邏輯指令一包括算術運算指令和邏輯運算指令;跳轉控制指令一包括跳轉指令、子程序調(diào)用和子程序返回指令。如圖4,微處理器401實現(xiàn)了設計定義的指令集,是被驗證的對象。該微處理器采用RISC結構實現(xiàn),指令執(zhí)行分成四級流水,分別是“取指”一“譯碼”一“執(zhí)行”一“寫回”。微處理器401的實現(xiàn)包括寄存器組(包括通用寄存器、地址寄存器、索引寄存器和其它寄存器)、核內(nèi)指令存儲器、數(shù)據(jù)存儲器和ALU數(shù)據(jù)通路。結合本實例,發(fā)明提出的驗證方法模型,由微處理器設計401、微處理器外部存儲單元402、主處理器接口 403、指令代碼生成框架單元404、數(shù)據(jù)比較406、結果文件輸出405,組成自動化的指令集驗證系統(tǒng),如圖4所示。主處理器接口 403、指令代碼生成框架單元404、數(shù)據(jù)比較406、結果文件輸出405構成指令集驗證的主處理器模擬端。主處理器模擬端控制指令集驗證的流程,實現(xiàn)了驗證方法的主流程。按以下步驟實施SO:通過處理器接口向微處理器加載協(xié)議字監(jiān)控程序,啟動監(jiān)控程序的運行;SI:隨機生成指令驗證的參數(shù),包括測試比較數(shù)據(jù)、操作類型OpType、源操作數(shù)Rsrc (包括操作數(shù)類型,操作數(shù)寄存器索引)、目的操作數(shù)Rdst (包括操作數(shù)類型,操作數(shù)寄存器索引)、條件位cond等指令參數(shù)。根據(jù)指令分類,每種指令分別由一組參數(shù)確定;S2:根據(jù)SI的參數(shù),生成指令驗證代碼的框架;S3:根據(jù)處理器指令集的定義,將指令驗證代碼的框架翻譯成二進制碼;
S4:通過處理器接口將驗證代碼加載到微處理器的指令存儲器中;S5:發(fā)出啟動指令驗證協(xié)議字,控制微處理器跳轉到指令驗證代碼的執(zhí)行;S6:查詢微處理器指令驗證結束協(xié)議字,并讀回執(zhí)行結果;S7:正確性檢查。結果正確,結果以日志記錄,轉SI,繼續(xù)下一條指令的驗證;否貝IJ,錯誤信息記錄到日志文件,轉SI。以“算術邏輯指令”為實例,說明指令驗證代碼的框架的操作方法“算術邏輯指令”驗證需要的參數(shù)有(OpType, Rsrc, Rdst, Opl, 0p2, Nif)
其中,OpType :算術邏輯指令操作類型。取值范圍為指令集定義的10種算術邏輯操作;Rsrc :源操作數(shù)I寄存器索引值。取值范圍為微處理器設計中8個通用寄存器;Rdst :源操作數(shù)2和目的寄存器索引值。取值范圍為微處理器設計中8個通用寄存器;Opl :源操作數(shù)I數(shù)據(jù)。取值范圍根據(jù)微處理器的設計為32位無符號或有符號數(shù)據(jù),在數(shù)據(jù)表示范圍內(nèi)隨機取值;0p2 :源操作數(shù)2數(shù)據(jù)。取值范圍根據(jù)微處理器的設計為32位無符號或有符號數(shù)據(jù),在數(shù)據(jù)表示范圍內(nèi)隨機取值;Nif :定浮點操作類型參數(shù)。根據(jù)以上參數(shù)設計的指令驗證代碼的框架見表I。表I
序列段指令序列說明
AORsrc-eOpl將數(shù)據(jù)Opl加載到源寄存器
"AlRdst^Op2將數(shù)據(jù)Op2加載到目的寄存器
BRdst<-Rsrc OpTypeNif Rdst 被驗證的算術邏輯指令C Mem令Rdst將目的寄存器內(nèi)的執(zhí)行結果保護到存儲器中驗證時,首先由主處理器通過處理器接口 403加載協(xié)議字監(jiān)控程序到微處理器的監(jiān)控程序段501,并啟動微處理器的運行。此時,監(jiān)控程序檢查主處理器模擬端是否將指令驗證代碼加載到指令存儲區(qū)的指令驗證代碼段502中。如果監(jiān)控程序接收到啟動協(xié)議字503 (位于數(shù)據(jù)存儲器內(nèi)),監(jiān)控程序跳轉到指令驗證框架代碼段502執(zhí)行。執(zhí)行完成后,寫結束協(xié)議字到協(xié)議約定的數(shù)據(jù)存儲區(qū)內(nèi)504,并跳轉到監(jiān)控程序中,繼續(xù)等待啟動下一條指令的驗證,如圖5所示。指令驗證代碼完成對處理器指令集各項功能的驗證,根據(jù)驗證項的不同,指令驗證代碼可以完成簡單指令逐條驗證、指令相關等功能項的驗證工作。本實例實現(xiàn)自動化的驗證方式,每一類指令通過一組參數(shù)惟一確定,在驗證協(xié)議中,根據(jù)這組參數(shù)生成指令驗證的代碼框架。參數(shù)的范圍由微處理器的硬件結構決定。上述的四類指令可以通過四組參數(shù)來確定,在驗證流程中分成四個驗證分支來實現(xiàn)。
對于當前驗證的指令,需要將所有的源操作數(shù)在指令執(zhí)行前,存放到指令指定的寄存器中。在本發(fā)明的驗證方法中,通過增加輔助指令序列,用來設置當前指令驗證的環(huán)境,主要是設置當前微處理器的寄存器組的狀態(tài)。同時,指令驗證采用在線自動化的驗證方式,為避免指令執(zhí)行結束后,指令的執(zhí)行結果被“污染”,在指令驗證代碼框架中增加了將指令執(zhí)行結果及時保護的指令序列。
為實現(xiàn)對指令所有執(zhí)行路徑的完全覆蓋,可以將所有的參數(shù)采用遍歷的方法,以提高對設計的覆蓋率??紤]到設計過程中驗證效率,可以在驗證過程中,隨機選取一組或幾組參數(shù)值進行功能的正確性檢驗。
權利要求
1.一種微處理器指令集驗證方法,其特征在于包括下述步驟 步驟I、將監(jiān)控程序加載到微處理器中,并啟動微處理器運行監(jiān)控程序; 步驟2、對微處理器支持的指令集分類,每一類指令由一組參數(shù)確定,針對每一類指令,設計一個指令驗證的代碼框架,將需要驗證的指令或指令序列嵌入到這個代碼框架中;步驟3、對每組參數(shù)按照取指范圍遍歷取值,根據(jù)每組參數(shù)值的組合,生成驗證的指令或指令序列,并將這個指令或指令序列嵌入到步驟2的驗證代碼框架中; 步驟4、將驗證代碼框架加載到微處理器中,并發(fā)送協(xié)議字給微處理器上的監(jiān)控程序,使微處理器轉入到驗證代碼框架的執(zhí)行; 步驟5、查詢微處理器驗證結束協(xié)議字,如果驗證代碼執(zhí)行結束,將執(zhí)行結果讀出;否貝U,繼續(xù)查詢; 步驟6、將步驟5的執(zhí)行結果和指令執(zhí)行的期望結果比較,結果正確,將比較結果記錄到日志文件中,轉步驟2,繼續(xù)遍歷驗證;否則,輸出錯誤信息,并記錄到日志文件。
2.根據(jù)權利要求I所述的微處理器指令集驗證方法,其特征在于所述的監(jiān)控程序按以下步驟操作 步驟1-1、查詢驗證代碼框架加載結束協(xié)議字,如果協(xié)議字有效,轉步驟1-2 ;否則繼續(xù)查詢; 步驟1-2、跳轉至驗證代碼框架,執(zhí)行指令驗證代碼; 步驟1-3、驗證代碼執(zhí)行結束,置驗證結束協(xié)議字,并跳轉到步驟1-2,繼續(xù)下一次驗證的查詢。
3.根據(jù)權利要求I所述的微處理器指令集驗證方法,其特征在于所述的指令驗證代碼框架按以下步驟設計 步驟2-1、根據(jù)指令的分類,確定驗證該類指令所需要的參數(shù),并根據(jù)參數(shù),生成指令序列A,通過執(zhí)行指令序列A準備好當前指令驗證的微處理器的狀態(tài); 步驟2-2、根據(jù)參數(shù)生成當前被驗證的指令B,將指令B添加到序列A之后,生成序列A&B ; 步驟2-3、在序列A&B之后添加一段保護指令B執(zhí)行結果的指令序列C。
全文摘要
本發(fā)明提供了一種微處理器指令集驗證方法,將監(jiān)控程序加載到微處理器中;對微處理器支持的指令集分類,將需要驗證的指令嵌入到代碼框架中;遍歷每組參數(shù)按生成驗證的指令,嵌入到驗證代碼框架中;將驗證代碼框架加載到微處理器中,查詢微處理器驗證結束協(xié)議字,將執(zhí)行結果和指令執(zhí)行的期望結果比較,結果正確,將比較結果記錄到日志文件中,否則,輸出錯誤信息,并記錄到日志文件。本發(fā)明避免了通過分析仿真波形才能判斷指令執(zhí)行真確性的弊端,實現(xiàn)了自動、高效率的驗證。
文檔編號G06F9/46GK102902906SQ20121036223
公開日2013年1月30日 申請日期2012年9月26日 優(yōu)先權日2012年9月26日
發(fā)明者曹輝, 楊靚, 盧強, 何衛(wèi)強 申請人:中國航天科技集團公司第九研究院第七七一研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
阿尔山市| 长子县| 涞水县| 商城县| 团风县| 依兰县| 荔波县| 昆山市| 西安市| 贡山| 瑞丽市| 玉龙| 宜昌市| 青龙| 肇州县| 赤水市| 新营市| 宜都市| 平果县| 新竹市| 镇坪县| 武山县| 楚雄市| 屯昌县| 芜湖县| 正阳县| 河津市| 常州市| 罗源县| 孟村| 玉田县| 镇平县| 胶州市| 富源县| 革吉县| 拉孜县| 蓬溪县| 黑水县| 余庆县| 清镇市| 义乌市|