[發(fā)明專利]基于內(nèi)存監(jiān)視的處理器驗證方法有效
| 申請?zhí)枺?/td> | 200910043921.5 | 申請日: | 2009-07-17 |
| 公開(公告)號: | CN101615209A | 公開(公告)日: | 2009-12-30 |
| 發(fā)明(設(shè)計)人: | 陳書明;劉勝;李勇;李振濤;陳吉華;楊煥榮 | 申請(專利權(quán))人: | 中國人民解放軍國防科學(xué)技術(shù)大學(xué) |
| 主分類號: | G06F17/50 | 分類號: | G06F17/50 |
| 代理公司: | 國防科技大學(xué)專利服務(wù)中心 | 代理人: | 郭 敏 |
| 地址: | 410073湖*** | 國省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 內(nèi)存 監(jiān)視 處理器 驗證 方法 | ||
1.一種基于內(nèi)存監(jiān)視的處理器驗證方法,其特征在于包括以下步驟:
第一步,將驗證程序在軟件模擬器上進行模擬,在模擬的同時采用內(nèi)存監(jiān)視的方法監(jiān)視軟件模擬器中寄存器組A0,A1,A2,...Ai,...,An-1映射的內(nèi)存的變化,并對所述映射的內(nèi)存進行采樣,生成軟件模擬器執(zhí)行信息,n為寄存器個數(shù);
第二步,采集RTL即Register?Transfer?Level代碼執(zhí)行信息:將RTL代碼中的寄存器記為REG_RTL,將寫REG_RTL相關(guān)的信息包括當(dāng)前模擬時間、進行寫操作的部件名稱、要寫入的REG_RTL的編號、寫入該REG_RTL的數(shù)值保存到RTL代碼執(zhí)行信息文件中,同一個模擬時間點的寫REG_RTL操作的集合記為一組寫REG_RTL操作;并將程序計數(shù)器PC值的相關(guān)信息包括當(dāng)前的PC值和當(dāng)前模擬時間,也保存到RTL代碼執(zhí)行信息文件中;
第三步,對RTL代碼執(zhí)行信息文件進行初級檢索,初步定位RTL代碼執(zhí)行信息文件在M個寫REG_RTL操作中發(fā)生的錯誤,M為軟件模擬器執(zhí)行信息中相鄰兩個采樣點之間對應(yīng)的寫寄存器操作的最大數(shù)目;初級檢索的過程是:
3.1將RTL代碼執(zhí)行信息當(dāng)前寄存器組Current_REG_RTL清零,將RTL代碼執(zhí)行信息指針RTL_Pointer指向RTL代碼執(zhí)行信息文件中的第一組寫REG_RTL操作,將軟件模擬器執(zhí)行信息指針Arc_Pointer指向軟件模擬器執(zhí)行信息文件中的第一個采樣點,將計數(shù)器Counter清零;
3.2讀取當(dāng)前Arc_Pointer指向的軟件模擬器執(zhí)行信息文件中采樣點的A0,A1,A2,...Ai...,An-1的值,并將A0,A1,A2,...Ai...,An-1的值賦給軟件模擬器執(zhí)行信息當(dāng)前寄存器組Current_REG_Arc,讀取當(dāng)前RTL_Pointer指向RTL代碼執(zhí)行信息中的一組寫REG_RTL操作,并根據(jù)該組操作更新Current_REG_RTL,將Counter增加當(dāng)前的一組寫REG_RTL操作中被寫的寄存器的個數(shù);接著比較Current_REG_RTL和Current_REG_Arc的值,如果兩者相等,則執(zhí)行3.3,否則執(zhí)行3.4;
3.3將當(dāng)前RTL_Pointer指向的一組寫REG_RTL操作的第一個記為REG_RTL_Begin,并將Counter清零,接著查看當(dāng)前Arc_Pointer是否指向軟件模擬器執(zhí)行信息的末尾,如果是指向軟件模擬器執(zhí)行信息的末尾則初級檢索完畢,且沒有發(fā)生不匹配,說明該驗證程序通過了RTL模擬,驗證完畢;如果不是指向軟件模擬器執(zhí)行信息的末尾則將指針RTL_Pointer和Arc_Pointer均增1,轉(zhuǎn)3.2;
3.4比較Counter是否小于M,如果是則將指針RTL_Pointer增1,轉(zhuǎn)3.3,否則將當(dāng)前RTL_Pointer指向的一組寫REG_RTL操作的最后一個記為REG_RTL_End,并且觸發(fā)RTL模擬的暫停,初級檢索完畢;向驗證人員報告RTL模擬器信息文件中寫REG_RTL操作REG_RTL_Begin之前是執(zhí)行正確的,在寫REG_RTL操作REG_RTL_End之前,錯誤出現(xiàn),且在REG_RTL_Begin和REG_RTL_End之間寫REG_RTL操作的數(shù)目不超過M次;
第四步,生成精確同步點,同步點是指軟件模擬器執(zhí)行到某一個時刻,該時刻之前的A0,A1,A2,...Ai...,An-1的變化和RTL模擬器的某一次寫REG_RTL操作之前的執(zhí)行軌跡都是完全匹配和對應(yīng)的;精確同步點是軟件模擬器執(zhí)行到某一個時刻,該時刻之前的A0,A1,A2,...Ai...,An-1的變化和RTL模擬器的REG_RTL_Begin之前的執(zhí)行軌跡都是完全匹配和對應(yīng)的;生成精確同步點的方法如下:編寫程序在RTL代碼執(zhí)行信息文件中找到REG_RTL_Begin前面最近的一處PC值,統(tǒng)計該PC值在RTL代碼執(zhí)行信息文件中REG_RTL_Begin之前出現(xiàn)的次數(shù)s,初始化s’=s.將驗證程序重新加載至軟件模擬器,并在軟件模擬器中的該PC值處設(shè)斷點,向軟件模擬器發(fā)送運行命令,等待軟件模擬器運行暫停后,將s’減1,繼續(xù)向軟件模擬器發(fā)送運行命令,如此循環(huán),直至s’變?yōu)榱恪_@時,軟件模擬器就執(zhí)行到了和REG_RTL_Begin相對應(yīng)的時刻即精確同步點;
第五步,對RTL代碼執(zhí)行信息文件進行高級檢索,方法是:從精確同步點出發(fā),編寫程序向軟件模擬器發(fā)送單步運行命令,等待內(nèi)存數(shù)據(jù)穩(wěn)定后,讀取A0,A1,A2,...Ai...,An-1的值,然后讀取RTL代碼執(zhí)行信息文件中以REG_RTL_Begin開始的一組寫REG_RTL操作,比較當(dāng)前A0,A1,A2,...Ai...,An-1的內(nèi)容和當(dāng)前REG_RTL的內(nèi)容是否相同,若相同,則繼續(xù)向軟件模擬器發(fā)送單步運行命令,直到軟件模擬器運行到某一拍,其A0,A1,A2,...Ai...,An-1的內(nèi)容和REG_RTL的內(nèi)容不一致為止,這個節(jié)拍對應(yīng)的寫REG_RTL操作即是高級檢索得出的RTL代碼模擬出現(xiàn)錯誤時的那一次寫REG_RTL操作。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國人民解放軍國防科學(xué)技術(shù)大學(xué),未經(jīng)中國人民解放軍國防科學(xué)技術(shù)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910043921.5/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種電源機箱
- 下一篇:一種接觸指示的電氣柜裝置及其使用方法
- 網(wǎng)絡(luò)監(jiān)視系統(tǒng)及方法
- 監(jiān)視系統(tǒng)
- 篡改監(jiān)視系統(tǒng)、管理裝置及篡改管理方法
- 核電廠數(shù)字化主控室操作員監(jiān)視行為可靠性判定方法
- 網(wǎng)絡(luò)狀態(tài)監(jiān)視系統(tǒng)
- 監(jiān)視系統(tǒng)、監(jiān)視裝置、監(jiān)視對象裝置以及監(jiān)視方法
- 一種監(jiān)視系統(tǒng)
- 監(jiān)視裝置、監(jiān)視系統(tǒng)、監(jiān)視方法
- 被監(jiān)視者監(jiān)視系統(tǒng)的顯示裝置及其顯示方法以及被監(jiān)視者監(jiān)視系統(tǒng)
- 一種分布式協(xié)同監(jiān)視方法、監(jiān)視平臺及存儲介質(zhì)





