[發明專利]一種基于應用程序結構的非原子指令序列原型驗證方法有效
| 申請號: | 201910060011.1 | 申請日: | 2019-01-22 |
| 公開(公告)號: | CN109828923B | 公開(公告)日: | 2022-02-01 |
| 發明(設計)人: | 寧寧;游軍;許輝勇;高宜楠;楚亞楠 | 申請(專利權)人: | 西安微電子技術研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 西安通大專利代理有限責任公司 61200 | 代理人: | 徐文權 |
| 地址: | 710065 陜西*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 應用 程序結構 原子 指令 序列 原型 驗證 方法 | ||
本發明提供一種基于應用程序結構的非原子指令序列原型驗證方法,包括:步驟1,基于應用程序的寄存器級實現對應用程序的數據流圖進行c?use和p?use的二次分割,將p?use分離出數據流圖,得到數據流結構;步驟2,對待測處理器的基本控制結構和例外處理結構的實現方式進行分析,獲得基本結構控制流;步驟3,設定非原子指令序列的環路復雜度,使用基本結構控制流反向構建獲得指令序列的執行結構;步驟4,使用數據流結構和執行結構組成非原子指令序列;步驟5,基于基本路徑測試法,導出非原子指令序列的獨立路徑,作為驗證用例。本發明有效解決了驗證資源與驗證需求不匹配的矛盾,實現指令集應用程序驗證的可操作性。
技術領域
本發明涉及處理器指令集的原型驗證,具體涉及一種基于應用程序結構的非原子指令序列原型驗證方法。
背景技術
處理器指令集的原型驗證屬于芯片級功能驗證,由專門的驗證人員負責完成。芯片級功能驗證的第一個階段就是指令集驗證——驗證其指令集的RTL實現與其指令集規范一致,包括單條指令驗證和流水線沖突指令序列驗證,統稱為原子指令驗證序列。另一個階段是應用程序驗證,驗證人員希望通過關鍵應用程序驗證來增強單元模塊驗證和指令集驗證結果。從本質上看,關鍵應用程序驗證就是由原子指令序列的組合實現的。因此將應用程序驗證稱為非原子指令驗證序列。
當前,驗證方法學對原子指令驗證序列的研究比較多,提出了很多有效的實現方式,而對于非原子指令驗證序列的研究非常缺乏。同時,非原子指令驗證序列本身在實現方面也面臨著嚴峻的挑戰,一是在處理器設計階段是無法對所有應用場景進行收集的,也就無法獲得全部的關鍵應用程序驗證,二是實現應用場景的程序是海量的,在驗證時無法進行窮舉驗證。這就形成了驗證資源與驗證需求不匹配的矛盾,導致非原子指令驗證序列在處理器指令集驗證中的作用無法得到充分發揮。
發明內容
針對現有技術中存在的問題,本發明提供一種基于應用程序結構的非原子指令序列原型驗證方法,有效解決驗證資源與驗證需求不匹配的矛盾,實現指令集應用程序驗證的可操作性。
本發明是通過以下技術方案來實現:
一種基于應用程序結構的非原子指令序列原型驗證方法,包括如下步驟:
步驟1,構建數據流結構:基于應用程序的寄存器級實現對應用程序的數據流圖進行c-use和p-use的二次分割,將p-use分離出數據流圖,得到數據流結構;
步驟2,對待測處理器的基本控制結構和例外處理結構的實現方式進行分析,獲得基本結構控制流;
步驟3,設定非原子指令序列的環路復雜度,使用步驟2獲得的基本結構控制流反向構建獲得指令序列的執行結構;
步驟4,使用步驟1獲取的數據流結構和步驟3獲取的指令序列的執行結構組成非原子指令序列;
步驟5,基于基本路徑測試法,導出非原子指令序列的獨立路徑,作為驗證用例。
優選的,步驟1具體包括以下步驟:
步驟1.1,分析全局變量和局部變量在應用程序寄存器級實現方式,提取待測處理器指令集的變量訪問數據流結構;
步驟1.2,分析待測處理器的流水設計,獲得流水線的結構沖突、控制沖突和數據沖突,生成流水線沖突指令序列,以供模擬獲得變量計算數據流結構;
優選的,步驟1中,采用c-use覆蓋準則,對全局定義變量和局部定義變量進行分析,對中間過程的寄存器不進行檢查。
優選的,步驟3中,環路復雜度的計算公式為:
環路復雜度=判斷結構數+例外處理結構數+1。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安微電子技術研究所,未經西安微電子技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910060011.1/2.html,轉載請聲明來源鉆瓜專利網。





