[發明專利]一種用于指令級隨機驗證的指令組合過濾方法及系統有效
| 申請號: | 200910080077.3 | 申請日: | 2009-03-18 |
| 公開(公告)號: | CN101510234A | 公開(公告)日: | 2009-08-19 |
| 發明(設計)人: | 沈海華;王朋宇;張珩 | 申請(專利權)人: | 中國科學院計算技術研究所 |
| 主分類號: | G06F17/50 | 分類號: | G06F17/50 |
| 代理公司: | 北京律誠同業知識產權代理有限公司 | 代理人: | 祁建國;梁 揮 |
| 地址: | 100080北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 指令 隨機 驗證 組合 過濾 方法 系統 | ||
技術領域
本發明涉及超大規模集成電路(VLSI)設計驗證領域,尤其涉及一種用于指令級隨機驗證的指令組合過濾方法及系統。
背景技術
功能驗證被認為是當前硬件設計流程中的瓶頸,實際上,在整個設計流程中,大概有70%的時間和資源耗費在功能驗證上,因此如何提高驗證效率和質量,以期在盡量少的時間內發現盡量多的錯誤一直是驗證領域關注的重點。
功能驗證方法主要分為模擬仿真方法和形式化方法兩大類。形式化方法的應用很大程度上受制于設計規模;而模擬仿真方法能處理大規模集成電路設計,特別是當代復雜高性能處理器,是目前處理器功能驗證的主要方法。模擬仿真方法運行的大量測試向量主要有三個來源:手寫測試向量、實際應用程序改造和測試向量的隨機生成。
隨機驗證技術是當今大規模集成電路仿真驗證流程中的重要支撐技術。在集成電路驗證領域,特別是微處理器功能驗證領域,具有重要地位。人工書寫測試向量需要花費大量的時間和人力成本,而局限于原始應用程序的規模,經過改造后的應用程序測試向量仍會占用過多的仿真時間,無法很好地滿足各階段回歸測試的要求。這意味著大量的、覆蓋范圍廣泛的測試向量主要來源于隨機測試向量生成。隨機生成的測試向量有可能覆蓋到設計和驗證人員完全沒有想到的功能角落,且生成的測試向量的規模和長度靈活可控。
指令級隨機驗證是通用微處理器驗證的常用方法。圖1中描述了當前指令級隨機驗證方法的常用框架,通常包括7個部分,指令庫101、指令模板102、約束求解器103、指令生成引擎104、指令級模擬器105、指令過濾器106、仿真環境107。指令庫101中包含處理器支持的所有有效指令;指令模板102是一系列配置文件,用于進行指令的配置和規范;約束求解器103對指令模板進行求解,指導指令生成引擎104生成相應的指令;指令生成引擎104可以有效支持配置文件約束下的指令生成;指令級模擬器105是待驗證的微處理器的最簡單參考模型,支持指令級仿真,提供指令的正確執行結果,同時更新指令級處理器模擬器狀態;指令過濾器106根據指令級模擬器的執行結果判斷是否是非法指令,決定是否要丟棄該指令,及時恢復該指令產生前處理器模擬器的狀態;仿真環境107是包裹在待驗證處理器外層的一系列邏輯和操作,主要包括初始化、輸入/輸出和比較邏輯,可以執行初始化、輸入/輸出和信號比較等一系列操作。
進行指令級隨機驗證時,約束求解器103對指令模板102提供的約束進行求解,進而指導指令生成引擎104從指令庫101中選取符合要求的操作碼,加入符合約束的操作數,產生出一條符合約束的指令,提供給指令級處理器模擬器105,指令的模擬結果送入指令過濾器106,如果產生的指令是非法指令則直接拋棄并恢復該條指令產生前的指令級處理器模擬器狀態,并重新產生下一條指令,否則提供指令的模擬結果給仿真環境中的比較邏輯,同時將產生的指令也提供給仿真環境,經處理器執行后,將結果也輸出到仿真環境中的比較邏輯,通過二者比較可以檢測處理器設計中的錯誤。
如前文所描述的那樣,當前指令級隨機驗證中指令生成通常執行是一個串行的過程-----一條指令要經過生成、模擬、過濾,并根據過濾結果決定這條指令最終是否送入仿真環境中進行仿真。在這一過程中,指令過濾器能夠根據一條指令的指令級模擬器的執行結果判斷這條指令是否是非法指令,對非法指令進行過濾、拋棄,并將合法指令送入仿真環境中。對于不同的處理器規范,判斷指令是否非法的標準各不相同,而不同的指令級隨機驗證平臺中指令過濾器的非法指令判斷和過濾標準也不同,例如在單純用戶態的指令級隨機驗證中指令過濾器會過濾所有會導致系統發生異常的指令,而在支持核心態的指令級隨機驗證中過濾器會對于平臺支持的一些專用的導致系統異常的指令予以放行,只過濾和拋棄那些平臺不支持的異常指令和非法指令(參考文獻1:在微處理器用戶態隨機驗證中實現核心態程序驗證的方法,中國專利號:ZL200610078226.9)。無論采用何種非法指令判斷標準和過濾標準,當前的指令級隨機驗證中指令過濾器通常只判斷和過濾當前指令,盡管判斷和過濾當前指令時可能會考慮指令上文,特別是緊挨著當前指令的上一條或上兩條指令,但最終指令過濾器進行過濾處理的仍然只是當前指令,也就是說常用指令級隨機驗證中指令過濾器一次只處理一條指令。考慮到設計指令過濾器的初始目標只是用于判斷和過濾非法指令或造成系統異常的指令,現有機制可以滿足這種需要。
然而,在大規模集成電路驗證過程中,我們發現現有指令級隨機驗證中的指令過濾器設計無法完全滿足驗證實踐的需要。以復雜微處理器的驗證為例,在執行指令級隨機驗證過程中我們常常面臨以下兩種需求:
1)發現設計錯誤后的調試需求。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算技術研究所,未經中國科學院計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910080077.3/2.html,轉載請聲明來源鉆瓜專利網。





