本技術(shù)涉及處理器驗證領(lǐng)域,特別涉及一種基于遺傳算法的驗證方法和裝置。
背景技術(shù):
1、處理器驗證可以分為軟件仿真、原型驗證和硬件仿真。其中原型驗證可以識別設(shè)計中的潛在問題,例如在某些場景下資源利用不合理,時序不違規(guī)但是約束本身不合理等情況,通過原型驗證預(yù)先識別這些問題,可以減少后期出問題的風險。在原型驗證中需要盡可能還原處理器真實使用場景,盡量充分覆蓋處理器所有功能。在原型驗證中如何提高驗證覆蓋率是保證處理器的可靠性和穩(wěn)定性的重要指標之一。由于處理器設(shè)計規(guī)模越來越龐大,原型驗證也越來越困難,因此如何提高原型驗證中的覆蓋率變得非常重要。
2、目前為了提高模塊的原型驗證覆蓋率,主要通過形式化驗證,符號執(zhí)行和隨機測試等,但是傳統(tǒng)的芯片驗證方法通常需要耗費大量資源和時間,并且隨機生成測試用例驗證準確性不高且效率低下。現(xiàn)有技術(shù)中通過粒子群算法計算粒子的位置以實現(xiàn)芯片驗證。但粒子群算法容易被局部最優(yōu)解困住,得不到全局最優(yōu)解,不能完全確保芯片驗證的準確性。
技術(shù)實現(xiàn)思路
1、鑒于上述問題,本技術(shù)提出了一種基于遺傳算法的驗證方法和裝置。
2、在本技術(shù)實施的第一方面,首先提供一種基于遺傳算法的驗證方法,其特征在于,所述方法包括:
3、在預(yù)設(shè)的關(guān)鍵參數(shù)取值范圍中隨機選取若干組初始關(guān)鍵參數(shù),分別計算每組所述初始關(guān)鍵參數(shù)在處理器驗證過程中的適應(yīng)度;
4、根據(jù)預(yù)設(shè)的選擇概率和所述初始關(guān)鍵參數(shù)的總組數(shù)確定第一數(shù)量;
5、將若干組所述初始關(guān)鍵參數(shù)基于所述適應(yīng)度按照從小到大的順序進行排序,將所述適應(yīng)度最小的所述第一數(shù)量的若干組所述初始關(guān)鍵參數(shù)作為若干組第一關(guān)鍵參數(shù);
6、基于預(yù)設(shè)的交叉概率和預(yù)設(shè)的變異概率對若干組所述第一關(guān)鍵參數(shù)進行處理,得到若干組第二關(guān)鍵參數(shù);
7、分別計算每組所述第二關(guān)鍵參數(shù)在所述處理器驗證過程中的適應(yīng)度;
8、根據(jù)預(yù)設(shè)的選擇概率和所述第二關(guān)鍵參數(shù)的總組數(shù)確定第二數(shù)量;
9、將若干組所述第二關(guān)鍵參數(shù)基于所述適應(yīng)度按照從小到大的順序進行排序,將所述適應(yīng)度最小的所述第二數(shù)量的若干組所述第二關(guān)鍵參數(shù)作為若干組目標關(guān)鍵參數(shù);
10、將若干組所述目標關(guān)鍵參數(shù)作為若干組所述初始關(guān)鍵參數(shù),重新執(zhí)行所述根據(jù)預(yù)設(shè)的選擇概率和所述初始關(guān)鍵參數(shù)的總組數(shù)確定第一數(shù)量的步驟,直至重新執(zhí)行的次數(shù)達到預(yù)設(shè)的迭代次數(shù)或所述適應(yīng)度與預(yù)設(shè)的終止適應(yīng)度一致;
11、根據(jù)若干組所述目標關(guān)鍵參數(shù)與所述關(guān)鍵參數(shù)取值范圍計算并輸出處理器驗證覆蓋率。
12、可選地,每組所述初始關(guān)鍵參數(shù)包括若干寄存器的參數(shù),所述在預(yù)設(shè)的關(guān)鍵參數(shù)取值范圍中隨機選取若干組初始關(guān)鍵參數(shù),包括:
13、在每個寄存器對應(yīng)的所述關(guān)鍵參數(shù)取值范圍中隨機選取所述寄存器對應(yīng)的參數(shù);
14、選取若干組參數(shù)作為初始關(guān)鍵參數(shù),每組參數(shù)中包含滿足預(yù)設(shè)的約束條件的若干所述寄存器對應(yīng)的參數(shù)。
15、可選地,所述分別計算每組所述初始關(guān)鍵參數(shù)在處理器驗證過程中的適應(yīng)度,包括:
16、基于第一預(yù)設(shè)公式分別計算每組所述初始關(guān)鍵參數(shù)與其余每組所述初始關(guān)鍵參數(shù)之間的歐氏距離;
17、其中,第一預(yù)設(shè)公式為:
18、
19、其中,di表示所述歐氏距離;(ai,bi…zi)表示當前組的所述初始關(guān)鍵參數(shù);(aj,bj…zj)表示除當前組之外其他任一組的所述初始關(guān)鍵參數(shù);
20、針對每組所述初始關(guān)鍵參數(shù),基于第二預(yù)設(shè)公式計算若干所述歐氏距離中的最小距離;
21、其中,第二預(yù)設(shè)公式為:
22、
23、其中,表示所述最小距離;min(d1,d2,…,dn)表示若干所述歐氏距離中的最小值;
24、獲取所述初始關(guān)鍵參數(shù)的總組數(shù);
25、根據(jù)所述最小距離、所述初始關(guān)鍵參數(shù)的總組數(shù)和第三預(yù)設(shè)公式計算平均距離;
26、其中,第三預(yù)設(shè)公式為:
27、
28、其中,表示所述平均距離;n表示所述初始關(guān)鍵參數(shù)的總組數(shù);
29、根據(jù)所述平均距離、所述初始關(guān)鍵參數(shù)的總組數(shù)和第四預(yù)設(shè)公式計算每組所述初始關(guān)鍵參數(shù)的適應(yīng)度;
30、其中,第四預(yù)設(shè)公式為:
31、
32、其中,表示每組所述初始關(guān)鍵參數(shù)的適應(yīng)度。
33、可選地,所述基于預(yù)設(shè)的交叉概率和預(yù)設(shè)的變異概率對若干組所述第一關(guān)鍵參數(shù)進行處理,得到若干組第二關(guān)鍵參數(shù),包括:
34、基于預(yù)設(shè)的交叉概率對若干組所述第一關(guān)鍵參數(shù)進行處理,得到若干組第三關(guān)鍵參數(shù);
35、基于預(yù)設(shè)的變異概率對若干組所述第三關(guān)鍵參數(shù)進行處理,得到若干組第二關(guān)鍵參數(shù)。
36、可選地,每組所述第一關(guān)鍵參數(shù)包括若干所述寄存器的參數(shù),所述基于預(yù)設(shè)的交叉概率對若干組所述第一關(guān)鍵參數(shù)進行處理,得到若干組第三關(guān)鍵參數(shù),包括:
37、在若干組所述第一關(guān)鍵參數(shù)中隨機選取一組所述第一關(guān)鍵參數(shù)作為當前組所述第一關(guān)鍵參數(shù);
38、根據(jù)所述寄存器的參數(shù)的數(shù)量獲取當前組所述第一關(guān)鍵參數(shù)中所述寄存器的數(shù)量;
39、基于所述交叉概率和所述寄存器的數(shù)量計算當前組所述第一關(guān)鍵參數(shù)中的交叉數(shù)量;
40、將當前組所述第一關(guān)鍵參數(shù)與除當前組之外其他任一組所述第一關(guān)鍵參數(shù)中的所述交叉數(shù)量的寄存器參數(shù)進行交換;
41、將交換后的當前組所述第一關(guān)鍵參數(shù)、除當前組之外其他任一組所述第一關(guān)鍵參數(shù)以及其余若干組所述第一關(guān)鍵參數(shù)作為若干組第三關(guān)鍵參數(shù)。
42、可選地,所述基于預(yù)設(shè)的變異概率對若干組所述第三關(guān)鍵參數(shù)進行處理,得到若干組第二關(guān)鍵參數(shù),包括:
43、基于所述變異概率和所述寄存器的數(shù)量計算變異數(shù)量;
44、將每組所述第三關(guān)鍵參數(shù)中的所述變異數(shù)量的寄存器參數(shù)替換為所述寄存器對應(yīng)的所述關(guān)鍵參數(shù)取值范圍中的另一個隨機數(shù);
45、將替換后的若干組所述第三關(guān)鍵參數(shù)作為若干組所述第二關(guān)鍵參數(shù)。
46、可選地,所述方法還包括:
47、將所述目標關(guān)鍵參數(shù)作為所述處理器的參數(shù),對所述處理器進行軟件驗證,得到目標軟件驗證結(jié)果;
48、將所述目標關(guān)鍵參數(shù)作為所述處理器的參數(shù),對所述處理器進行原型驗證,得到目標原型驗證結(jié)果;
49、比較所述目標軟件驗證結(jié)果與所述目標原型驗證結(jié)果;
50、若所述目標軟件驗證結(jié)果與所述目標原型驗證結(jié)果不一致,記錄所述目標關(guān)鍵參數(shù);
51、獲取對所述處理器進行原型驗證和軟件驗證的過程中產(chǎn)生的運行日志信息;
52、將所述目標關(guān)鍵參數(shù)與所述運行日志信息關(guān)聯(lián)保存,作為所述處理器的驗證測試信息。
53、在本技術(shù)實施的第二方面,還提供一種基于遺傳算法的驗證裝置,其特征在于,所述裝置包括:
54、初始適應(yīng)度計算模塊,用于在預(yù)設(shè)的關(guān)鍵參數(shù)取值范圍中隨機選取若干組初始關(guān)鍵參數(shù),分別計算每組所述初始關(guān)鍵參數(shù)在處理器驗證過程中的適應(yīng)度;
55、第一數(shù)量確定模塊,用于根據(jù)預(yù)設(shè)的選擇概率和所述初始關(guān)鍵參數(shù)的總組數(shù)確定第一數(shù)量;
56、第一關(guān)鍵參數(shù)選取模塊,用于將若干組所述初始關(guān)鍵參數(shù)基于所述適應(yīng)度按照從小到大的順序進行排序,將所述適應(yīng)度最小的所述第一數(shù)量的若干組所述初始關(guān)鍵參數(shù)作為若干組第一關(guān)鍵參數(shù);
57、第二關(guān)鍵參數(shù)選取模塊,用于基于預(yù)設(shè)的交叉概率和預(yù)設(shè)的變異概率對若干組所述第一關(guān)鍵參數(shù)進行處理,得到若干組第二關(guān)鍵參數(shù);
58、第二適應(yīng)度計算模塊,用于分別計算每組所述第二關(guān)鍵參數(shù)在所述處理器驗證過程中的適應(yīng)度;
59、第二數(shù)量確定模塊,用于根據(jù)預(yù)設(shè)的選擇概率和所述第二關(guān)鍵參數(shù)的總組數(shù)確定第二數(shù)量;
60、目標關(guān)鍵參數(shù)選取模塊,用于將若干組所述第二關(guān)鍵參數(shù)基于所述適應(yīng)度按照從小到大的順序進行排序,將所述適應(yīng)度最小的所述第二數(shù)量的若干組所述第二關(guān)鍵參數(shù)作為若干組目標關(guān)鍵參數(shù);
61、循環(huán)模塊,用于將若干組所述目標關(guān)鍵參數(shù)作為若干組所述初始關(guān)鍵參數(shù),重新執(zhí)行所述根據(jù)預(yù)設(shè)的選擇概率和所述初始關(guān)鍵參數(shù)的總組數(shù)確定第一數(shù)量的步驟,直至重新執(zhí)行的次數(shù)達到預(yù)設(shè)的迭代次數(shù)或所述適應(yīng)度與預(yù)設(shè)的終止適應(yīng)度一致;
62、覆蓋率計算模塊,用于根據(jù)若干組所述目標關(guān)鍵參數(shù)與所述關(guān)鍵參數(shù)取值范圍計算并輸出處理器驗證覆蓋率。
63、在本技術(shù)實施的第三方面,還提供一種電子設(shè)備,其特征在于,包括處理器、存儲器及存儲在所述存儲器上并能夠在所述處理器上運行的計算機程序,所述計算機程序被所述處理器執(zhí)行時實現(xiàn)如上所述的基于遺傳算法的驗證方法。
64、在本技術(shù)實施的第四方面,還提供一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)上存儲計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上所述的基于遺傳算法的驗證方法。
65、本技術(shù)實施例具有以下優(yōu)點:
66、在本技術(shù)實施例中,在預(yù)設(shè)的關(guān)鍵參數(shù)取值范圍中隨機選取若干組初始關(guān)鍵參數(shù),分別計算每組初始關(guān)鍵參數(shù)在處理器驗證過程中的適應(yīng)度,再根據(jù)預(yù)設(shè)的選擇概率和初始關(guān)鍵參數(shù)的總組數(shù)確定第一數(shù)量,將若干組初始關(guān)鍵參數(shù)基于適應(yīng)度按照從小到大的順序進行排序,將適應(yīng)度最小的第一數(shù)量的若干組初始關(guān)鍵參數(shù)作為若干組第一關(guān)鍵參數(shù),基于預(yù)設(shè)的交叉概率和預(yù)設(shè)的變異概率對若干組第一關(guān)鍵參數(shù)進行處理,得到若干組第二關(guān)鍵參數(shù),分別計算每組第二關(guān)鍵參數(shù)在處理器驗證過程中的適應(yīng)度,根據(jù)預(yù)設(shè)的選擇概率和第二關(guān)鍵參數(shù)的總組數(shù)確定第二數(shù)量,將若干組第二關(guān)鍵參數(shù)基于適應(yīng)度按照從小到大的順序進行排序,將適應(yīng)度最小的第二數(shù)量的若干組第二關(guān)鍵參數(shù)作為若干組目標關(guān)鍵參數(shù),將若干組目標關(guān)鍵參數(shù)作為若干組初始關(guān)鍵參數(shù),重新執(zhí)行根據(jù)預(yù)設(shè)的選擇概率和初始關(guān)鍵參數(shù)的總組數(shù)確定第一數(shù)量的步驟,直至重新執(zhí)行的次數(shù)達到預(yù)設(shè)的迭代次數(shù)或適應(yīng)度與預(yù)設(shè)的終止適應(yīng)度一致,根據(jù)若干組目標關(guān)鍵參數(shù)與關(guān)鍵參數(shù)取值范圍計算并輸出處理器驗證覆蓋率。本技術(shù)可以通過遺傳算法的全局搜索能力,能夠有效地探索關(guān)鍵參數(shù)的取值空間,避免陷入局部最優(yōu),并且適應(yīng)度評價機制能夠動態(tài)調(diào)整種群,使得算法能夠自適應(yīng)地向著更優(yōu)的解進化,然后交叉和變異操作增加了種群的多樣性,提高了算法的探索能力,此外迭代過程中不斷優(yōu)化參數(shù),最終能夠得到較高的處理器驗證覆蓋率,提高了驗證的效率和質(zhì)量。