亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法

文檔序號:6494100閱讀:232來源:國知局
多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法
【專利摘要】本發(fā)明屬于處理器【技術領域】,尤其涉及一種多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法。本發(fā)明的多核處理器軟錯誤壓力測試程序生成系統(tǒng)包括:代碼產(chǎn)生器:根據(jù)控制參數(shù)產(chǎn)生多核處理器體系結構弱點因子極限測試程序;多核處理器模擬器:運行所述極限測試程序產(chǎn)生體系結構弱點因子值;仲裁模塊:判斷代碼產(chǎn)生器產(chǎn)生的多核處理器體系結構弱點因子極限測試程序是否符合要求;機器學習模塊:用于運行遺傳算法工具優(yōu)化代碼產(chǎn)生器的控制參數(shù)。本發(fā)明所設計的多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法產(chǎn)生的AVF極限測試程序能夠最大限度的檢測出某種體系結構中的軟錯誤發(fā)生率的最大值,省去了查找、更改基準測試程序的工作。
【專利說明】多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明屬于處理器【技術領域】,尤其涉及一種多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法。
【背景技術】
[0002] 摩爾定律指出,當價格不變時,集成電路上可容納的晶體管數(shù)目,約每隔18個月便會增加一倍,性能也將提升一倍。但每種新技術的產(chǎn)生,都會帶來新的技術問題,阻礙新興技術的推廣與應用?!败涘e誤”就是在制造工藝尺寸不斷縮小的情況下產(chǎn)生的一種“瞬時錯誤”。這種錯誤使處理器的發(fā)展面臨嚴峻的挑戰(zhàn),使處理器變得脆弱,更易受到環(huán)境的影響。
[0003]這種“瞬時錯誤”是由數(shù)字電路中的某一位的翻轉(zhuǎn)所引起的,而翻轉(zhuǎn)的發(fā)生則歸咎于空間中存在的微小粒子,如宇宙射線的中子和包裝材料中產(chǎn)生的α粒子。當這些粒子穿過半導體設備的時候會產(chǎn)生電子空洞,當產(chǎn)生的電子空洞達到一定數(shù)量后就會導致邏輯設備的狀態(tài)發(fā)生翻轉(zhuǎn)。這些邏輯設備包括寄存器,靜態(tài)存儲單元,邏輯門等。這種錯誤并不會導致設備的永久性失效,因此我們稱之為“瞬時錯誤”,或者叫“軟錯誤”(soft eiror)。
[0004]研究表明“軟錯誤”的發(fā)生與宇宙粒子的流通密度和物理設備的幾何尺寸相關。在不同的環(huán)境中宇宙粒子的流通密度不同從而會導致硬件設備的錯誤率出現(xiàn)差異,進而影響到軟錯誤的發(fā)生率。與此同時,單個芯片上單位面積的晶體管數(shù)量的增加,雖然增加了設備的性能,但一定程度上增加了軟錯誤的發(fā)生率。因為更小尺寸的晶體管更容易在上述粒子的轟擊下翻轉(zhuǎn),在16納米的工藝上,軟錯誤的發(fā)生率是180納米工藝上的100倍。
[0005]為了詳細的研究、檢測軟錯誤產(chǎn)生的原因,使得處理器的能耗和性能達到一個合理的平衡,Shubhendu S.Mukherjee 等人提出一種 ArchitectedVulnerability Factor(AVF,體系結構弱點因子)模型分析方法。AVF指的是某個結構單元受宇宙射線影響出現(xiàn)錯誤,這種錯誤對程序的輸出結果產(chǎn)生影響的可能性。
[0006]在微處理器的結構體單元中,并不是每一個軟錯誤都會對程序的輸出結果產(chǎn)生影響。因此,針對處理器的結構單元,我們稱那些導致程序的輸出結果產(chǎn)生錯誤的軟錯誤發(fā)生的可能性為Architected Vulnerability Factor(AVF)0顯然,不同的結構單元的中的AVF的大小不一樣,基本范圍是在0%-100%之間。
[0007]在AVF 值的計算中,引入 Architecturally Correct Execution(ACE,體系結構正確執(zhí)行)概念,跟蹤處理器所有結構中的狀態(tài)位來計算AVF的值。其中ACE bits指的是處理器的結構單元中的某些數(shù)據(jù)位,當該存儲單元發(fā)生軟錯誤致使數(shù)據(jù)位發(fā)生改變時,會對程序的輸出結果產(chǎn)生錯誤影響。而其他的數(shù)據(jù)位雖然會因為軟錯誤的影響出現(xiàn)改變,但是不會對程序的輸出結果產(chǎn)生影響,稱之為un-ACE bits。對于AVF的值進行計算時,假定晶體管受宇宙射線影響發(fā)生翻轉(zhuǎn)的概率一定,處理器結構單元的AVF值指的是具體某個時刻該存儲單元中ACE bits所占有的比例大小。
[0008]由于確定某個數(shù)據(jù)位是否為ACE bits困難性很大,所以在計算某個結構單元的AVF值時,首先假定結構單元中所有的數(shù)據(jù)位均為ACE bits,然后通過分析得出的un-ACEbits所占有的比例,然后算得ACE bits所占有的比例值,也就是AVF的值。
[0009]在單核處理器領域,基于AVF的軟錯誤的檢測模型中,能準確的檢測出某個具體測試程序發(fā)生軟錯誤概率值的大小。但是,要想知道處理器發(fā)生軟錯誤的概率范圍值,必須檢測多組測試程序,增加了測試的困難。而且,不同的處理器結構,所選擇的測試程序也會不同。
[0010]從Christopher Weaver等人提出的減小軟錯誤發(fā)生率的方法中,我們知道處理器結構中影響軟錯誤發(fā)生率的因素,了解如何消除軟錯誤檢測機制中對軟錯誤的誤判。但是,該方法雖然實現(xiàn)對軟錯誤率最大值的檢測,但是其只是針對某個具體的結構單元而言,如指令隊列、存儲隊列等。對于整個處理器的軟錯誤的發(fā)生率,它只是簡單的將所有單個單元測試的軟錯誤發(fā)生率的值累加,這樣得出的軟錯誤發(fā)生率的最大值就會很片面,而且不能真實的反映某個時刻處理器軟錯誤發(fā)生率的最大值。
[0011]為了能夠高效的測出處理器出現(xiàn)軟錯誤概率的上限值,Arun Arvind Nair利用一種新的技術自動生成能夠檢測出處理器最大軟錯誤發(fā)生率的測試程序。該方法結合Christopher Weaver等人提出的影響軟錯誤發(fā)生的影響因子,利用了 AVF模型中軟錯誤的檢測方法,產(chǎn)生軟錯誤的極限測試程序。然而,該方法僅限于在單核處理器結構上使用。
[0012]綜上所述,現(xiàn)有的軟錯誤的檢測、恢復方法主要針對單核處理器,另外,現(xiàn)有的軟錯誤的檢測、恢復方法要檢測出某種體系結構類型處理器的軟錯誤發(fā)生率的范圍值,必須用到大量的不同的測試程序,并利用統(tǒng)計學的方法得出軟錯誤發(fā)生率的范圍值,需要耗費大量的時間進行測試和統(tǒng)計。

【發(fā)明內(nèi)容】

[0013]本發(fā)明提供了一種多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法,旨在解決現(xiàn)有的軟錯誤的檢測、恢復方法要檢測出某種體系結構類型處理器的軟錯誤發(fā)生率的范圍值,需要使用大量不同的測試程序,且受到體系結構類型限制的技術問題。
[0014]本發(fā)明提供的技術方案為:一種多核處理器軟錯誤壓力測試程序生成系統(tǒng),其包括:
[0015]代碼產(chǎn)生器:根據(jù)預設的控制參數(shù)自動產(chǎn)生多核處理器體系結構弱點因子極限測試程序;
[0016]多核處理器模擬器:接收代碼產(chǎn)生器產(chǎn)生的多核處理器體系結構弱點因子極限測試程序,運行所述極限測試程序產(chǎn)生體系結構弱點因子值;
[0017]仲裁模塊:根據(jù)多核處理器模擬器產(chǎn)生的體系結構弱點因子值,判斷代碼產(chǎn)生器產(chǎn)生的多核處理器體系結構弱點因子極限測試程序是否符合要求;
[0018]機器學習模塊:集成有遺傳算法工具,用于在仲裁模塊判斷代碼產(chǎn)生器產(chǎn)生的多核處理器體系結構弱點因子極限測試程序不符合要求時,運行所述遺傳算法工具,所述工具優(yōu)化代碼產(chǎn)生器的控制參數(shù),使體系結構弱點因子值達到最大。
[0019]本發(fā)明的技術方案還包括:所述代碼產(chǎn)生器能自動優(yōu)化其控制參數(shù)以使多核處理器體系結構弱點因子值達到最大。
[0020]本發(fā)明的技術方案還包括:所述影響因子包括長延遲操作指令、指令并行處理和指令延遲、指令類型組合、前端指令缺失、緩存覆蓋率和操作參數(shù)設定和共享存儲器的一致性。
[0021]本發(fā)明的技術方案還包括:所述代碼產(chǎn)生器加載控制參數(shù)產(chǎn)生多核處理器體系結構弱點因子極限測試程序,所述控制參數(shù)加載和產(chǎn)生在內(nèi)存中完成,所述加載采用間隔性的指令加載技術。
[0022]本發(fā)明的技術方案還包括:所述代碼產(chǎn)生器向其內(nèi)存寫入數(shù)據(jù)的循環(huán)程序的規(guī)模小于重排序緩存(ROB)大小的1.2倍。
[0023]本發(fā)明的技術方案還包括:所述遺傳算法工具優(yōu)化的控制參數(shù)包括指令組合、指令依賴距離、長延遲算法所占比重、關聯(lián)指令鏈的平均長度、寄存器的使用、與二級緩存未命中相關的指令、隨機種子、共享數(shù)據(jù)和代碼產(chǎn)生器開關。
[0024]本發(fā)明提供的另一技術方案為:一種多核處理器軟錯誤壓力測試程序生成方法,包括:
[0025]步驟a:加載代碼產(chǎn)生器預設的控制參數(shù),使代碼產(chǎn)生器產(chǎn)生多核處理器體系結構弱點因子極限測試程序;
[0026]步驟b:在多核處理器模擬器上運行多核處理器體系結構弱點因子極限測試程序,生成所測試的體系結構的弱點因子值;
[0027]步驟c:判斷代碼產(chǎn)生器產(chǎn)生的多核處理器體系結構弱點因子極限測試程序是否符合要求,如果不符合要求,將測試程序方案反饋到機器學習模塊,機器學習模塊運行遺傳算法工具來優(yōu)化代碼產(chǎn)生器的控制參數(shù),并重新轉(zhuǎn)入步驟a,如果符合要求,將本次生成的多核處理器體系結構弱點因子極限測試程序作為多核處理器極限測試程序。
[0028]本發(fā)明的技術方案還包括:在所述步驟a中,根據(jù)多核處理器體系結構弱點因子的影響因子確定預設的控制參數(shù),所述影響因子包括長延遲操作指令、指令并行處理和指令延遲、指令類型組合、前端指令缺失、緩存覆蓋率和操作參數(shù)設定和共享存儲器的一致性。
[0029]本發(fā)明的技術方案還包括:所述控制參數(shù)加載和產(chǎn)生在內(nèi)存中完成,所述加載采用間隔性的指令加載技術。
[0030]本發(fā)明的技術方案還包括:在所述步驟c中,所述遺傳算法工具優(yōu)化的控制參數(shù)包括指令組合、指令依賴距離、長延遲算法所占比重、關聯(lián)指令鏈的平均長度、寄存器的使用、與二級緩存未命中相關的指令、隨機種子、共享數(shù)據(jù)和代碼產(chǎn)生器開關。
[0031]本發(fā)明的技術方案具有如下優(yōu)點或有益效果:本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法產(chǎn)生的AVF極限測試程序能夠最大限度的檢測出某種體系結構中的軟錯誤發(fā)生率的最大值,省去了查找、更改基準測試程序的工作,而且能夠快速的準確的知道軟錯誤發(fā)生率的范圍值,并且不受體系結構類型的限制。
【專利附圖】

【附圖說明】
[0032]附圖1是本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)的結構示意圖;
[0033]附圖2是本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)的代碼產(chǎn)生器產(chǎn)生AVF極限測試程序的流程示意圖;[0034]附圖3是本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)的應用在Intel處理器的示意圖;
[0035]附圖4是本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成方法的流程示意圖。
【具體實施方式】
[0036]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0037]請參閱圖1,為本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)的結構示意圖。本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)包括依次相連的代碼產(chǎn)生器、多核處理器模擬器、仲裁模塊和機器學習模塊。其中,連接包括物理連接、電氣連接或者信號連接等。
[0038]代碼產(chǎn)生器根據(jù)機器學習模塊輸出的控制參數(shù)產(chǎn)生AVF極限測試程序,產(chǎn)生的AVF極限測試程序在多核處理器模擬器上進行測試,并產(chǎn)生測試的Fitness值(適合值),該值主要用來反映測試程序?qū)Χ嗪梭w系結構的軟錯誤發(fā)生率的影響以及表征解決方案的合理程度。緊接著仲裁模塊根據(jù)Fitness值,判定代碼產(chǎn)生器產(chǎn)生的AVF極限測試程序是否符合要求,如果產(chǎn)生的適合值大于預設的適合值,則表明產(chǎn)生AVF極限測試程序以及達到了要求,對于不符合要求的測試,即產(chǎn)生的適合值小于預設的適合值,其結果將會被反饋到機器學習模塊,機器學習模塊上運行遺傳算法(Genetic Algorithm)工具來優(yōu)化代碼產(chǎn)生器的控制參數(shù),該過程不斷的重復進行,直到產(chǎn)生符合要求的測試程序為止。本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)通過自動生成的AVF極限測試程序,可以使多核處理器結構單元中的AVF的值最大,因而可以獲取最大的軟錯誤發(fā)生率的最大值。
[0039]請參閱圖2,為本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)的代碼產(chǎn)生器產(chǎn)生AVF極限測試程序的流程示意圖。代碼產(chǎn)生器根據(jù)機器學習模塊控制程序輸出的控制參數(shù),產(chǎn)生AVF極限測試程序。代碼產(chǎn)生器產(chǎn)生AVF極限測試程序包括:代碼產(chǎn)生器初始化內(nèi)存空間,以分配足夠的內(nèi)存空間,用于存放內(nèi)存緩沖區(qū)和數(shù)據(jù)轉(zhuǎn)譯查詢緩沖區(qū)(DTLB)中的每一個數(shù)據(jù);進行陣列分配,P=Array [p+i] ;i=i+stride ;通過執(zhí)行ACE bits的加載和存儲來使得每個內(nèi)存緩沖區(qū)單元的ACE bits比例達到最大值,確保緩沖區(qū)擁有高AVF值,同樣,DTLB的AVF值也是通過加載和存儲ACE bits (體系結構正確執(zhí)行位)的指令來保證的,對于利用到的共享數(shù)據(jù)單元,也是通過加載和存儲AVE bits來保證AVF的最大值,在處理器之間的通信過程中,盡可能的將對結果產(chǎn)生影響的數(shù)據(jù)寫入到共享存儲單元;得到指令隊列(IQ)中的依賴性指令的占有率,分析指令得到輸出結果,并判斷i的大小是否小于DTLB的大小,如果小于,則重新返回到陣列分配步驟,如果i的大小大于DTLB的大小,則進一步判斷i是否小于最大迭代次數(shù),如果小于,則重新返回到陣列分配步驟,如果大于,則生成測試文檔。
[0040]代碼產(chǎn)生器知道各個內(nèi)存緩沖區(qū)、共享內(nèi)存緩沖區(qū)和ROB (重排序緩存,ReorderBuffer)的大小以及微體系結構類型。在內(nèi)部循環(huán)中,采用間隔性的指令加載技術,減小二級緩存的命中率。對于向共享單元中寫入的數(shù)據(jù)類型,盡量是對程序的下一步執(zhí)行長生影響的數(shù)據(jù)類型。這樣即可以防止二級緩存未命中的情況下出現(xiàn)內(nèi)存級的并行計算,又可以增加共享數(shù)據(jù)單元中AVF的值。從理論上來說,希望內(nèi)部循環(huán)的大小和ROB的大小相同,并盡可能降低ROB中指令的二級緩存的缺失率,同時又要保證二級緩存的缺失率很高。由于循環(huán)程序的規(guī)模遠大于ROB大小,所以只有小部分的指令不在二級緩存中。實現(xiàn)過程中,允許代碼產(chǎn)生器自己決定循環(huán)的大小,但是必須小于ROB大小的1.2倍。由于多核處理器體系結構的特殊性,大部分的設定與單核處理器產(chǎn)生AVF極限測試程序的設定相同,但是多核處理器的共享結構單元參數(shù)的設定有其自身的特性,如對共享內(nèi)存的讀寫順序等。每一個控制參數(shù)值的加載和產(chǎn)生,都必須是在內(nèi)存中,并保證指令和數(shù)據(jù)100%為ACE bits,而且程序在執(zhí)行過程中應該保證存儲單元寫入的數(shù)據(jù),在讀取前不允許有新的數(shù)據(jù)寫入。利用以上控制參數(shù),對程序的執(zhí)行結果進行控制,產(chǎn)生符合要求的程序代碼。
[0041]代碼產(chǎn)生器根據(jù)AVF影響因子確定參數(shù)設定,進而產(chǎn)生具有最大AVF值極限測試程序代碼。其中,在程序的運行過程中,針對處理器的結構單元,稱那些導致程序的輸出結果產(chǎn)生錯誤的軟錯誤發(fā)生的可能性為ArchitectedVulnerability Factor (AVF)。處理器結構單元AVF值大小與該存儲單元中ACEbits所占有的比例大小成正比。請參閱圖3,為本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)的應用在Intel處理器的示意圖。下面將從ACEbits的角度,以Intel Core Duo處理器的結構為例,結合多核處理器的共享結構單元特性,討論、分析哪些因素影響結構單元的AVF值,哪些指令類型有助于增加內(nèi)核的AVF的值,產(chǎn)生最終的AVF極限測試程序。影響因子包括:
[0042]I)長延遲操作指令
[0043]長時間延遲的操作,如二級緩存或者DTLB未命中,double類型的除法等,都會導致處理器短時間的停滯。以二級緩存未命中為例,受此影響,ROB會被完全填滿,所有的功能單元的操作都會被終止。指令隊列中的指令數(shù)據(jù)也依賴于二級緩存的未命中情況。加載數(shù)據(jù)隊列中的數(shù)據(jù)只有從內(nèi)存中加載的數(shù)據(jù)才能保證是ACE bits。
[0044]2)指令并行處理和指令延遲
[0045]較低的指令集級并行和較高延遲性指令都會增加指令隊列(IQ)中AVF的值。在IQ的容量較大的情況下,較高的指令延遲同樣會增加R0B、LQ和SQ的AVF值。由于功能單元(FUs)的延遲固定,只有通過擴大IPC的值才能增加它的AVF值。
[0046]3)指令類型組合(Instruction Mix)
[0047]動態(tài)指令集分布在功能單元、加載指令隊列、和存儲隊列中,任何一種指令的增加都會導致相應單元中AVF的增加,并使得其他單元中的AVF出現(xiàn)降低。操作位數(shù)也會對功能單元、加載隊列、存儲隊列產(chǎn)生影響。
[0048]4)前端指令缺失(Front-End Misses)
[0049]指令緩存的未命中、指令邏輯轉(zhuǎn)移表未命中、取指的低效性都會減少結構單元中可用指令占有率,從而降低所有結構單元AVF的值。當分支預測器發(fā)生錯誤預測時,所有已經(jīng)取指的指令都將是un-ACE bits,所有的子程序管道都將通過刷新減少隊列中的占有率。
[0050]5)緩存覆蓋率和操作參數(shù)設定(Cache Coverage and Working Set)
[0051]緩存的AVF的值取決于包含有ACE bits的緩沖單元(cache lines)的數(shù)量。對緩存中少量cache lines進行訪問時,會獲得較高的命中率,但是AVF的值較小。相反,當命中率降低時,會獲得較好的AVF的值。操作參數(shù)的設定取決于cache lines,不同的cachelines數(shù)量,對應的操作參數(shù)不同。
[0052]6 )共享存儲器(共享Cache )的一致性
[0053]多級Cache又弓I發(fā)一致性問題。采用何種Cache —致性模型和機制都將對CMP整體性能產(chǎn)生重要影響。保證對共享Cache讀寫的一致性,是程序產(chǎn)生正確輸出結果的必要條件。當處理器正執(zhí)行保證共享Cache的一致性操作時,Cache某個單元發(fā)生了軟錯誤,這樣會影響下一階段某段程序的執(zhí)行,甚至會產(chǎn)生程序運行結果出錯。
[0054]多核處理器結構中ACE bits的占有率(AVF的值)與發(fā)射的ACE指令所在的共享結構中的位置,指令執(zhí)行所在的處理器私有結構單元中的調(diào)度過程相關,任何錯誤預測率、加載和存儲比例很高的、緩存未命中率較高的程序都會有很高的占有率。
[0055]機器學習模塊上運行遺傳算法(Genetic Algorithm)工具來優(yōu)化代碼產(chǎn)生器的控制參數(shù)。其中,遺傳算法(Genetic Algorithm)工具,簡稱為GA工具。遺傳算法是一種漸進性的機器學習方法,該方法常被用于尋找復雜問題的最優(yōu)解。形成的每個解決方案,都會計算出一個適合值(Fitness value),該值的大小用來表征解決方案的合理程度。其中,子方案的形成以上一個方案為依據(jù)。遺傳算法中子方案的長生利用變換、交叉、移植等方法。變換涉及到參數(shù)方法的任意變化,交叉包括對已存在方法的交換、結合,移植主要是對參數(shù)數(shù)量的變更。當產(chǎn)生的子方法均在方法集中,遺傳引入一種中斷事件,完全的改變最佳方案的分布,防止出現(xiàn)局部最優(yōu)解。遺傳算法重復執(zhí)行操作,直到子方法沒有任何的改進為止。
[0056]遺傳算法工具優(yōu)化的控制參數(shù)包括:
[0057]I)指令組合:這些指令是加載、存儲、算法指令的一部分,決定了加載隊列、存儲隊列和函數(shù)功能單元的占有率。
[0058]2)指令依賴距離(Dependency distance):該參數(shù)控制兩條相互依賴的指令間的指令數(shù)大小,影響著某個指令所處的位置。
[0059]3)長延遲算法所占比重:該參數(shù)控制者長延遲算法和短延遲算法指令的比重分布,這個影響到每個指令的平均延遲時長。
[0060]4)關聯(lián)指令鏈的平均長度(Average Dependence Chain Length):該參數(shù)控制著相互依賴的指令鏈的平均長度,這些指令鏈取決于加載操作,并作用于存儲操作,影響指令的并行執(zhí)行。
[0061]5)寄存器的使用(Register Usage):該參數(shù)影響著指令存儲寄存器占用率,一般的ACE bits決定著寄存器的數(shù)量。
[0062]6)與二級緩存未命中相關的指令(Instructions Dependent on L2Miss):該參數(shù)控制著受二級緩存未命中影響的IQ中原指令所占有的比例。
[0063]7)隨機種子(Random seed):該參數(shù)產(chǎn)生一個隨機數(shù),用于決定指令代碼中長延遲指令和短延遲指令的位置,有利于發(fā)現(xiàn)最佳代碼表。
[0064]8)共享數(shù)據(jù)(Shared Data):該參數(shù)控制著共享存儲單元中共享數(shù)據(jù)的數(shù)目,主要指的是程序在運行過程中,多個處理器之間的通信產(chǎn)生的共享數(shù)據(jù)。
[0065]9)代碼產(chǎn)生器開關(Code Generator Switch):兩種代碼產(chǎn)生器切換時開關。
[0066]通過這些參數(shù)的設定,調(diào)整每一次的程序產(chǎn)生方案,子方案不能再優(yōu)化為止。
[0067]請參閱圖4,為本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成方法的流程圖。本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成方法包括:[0068]步驟100:加載代碼產(chǎn)生器的控制參數(shù),使代碼產(chǎn)生器產(chǎn)生AVF極限測試程序;
[0069]在步驟100中,代碼產(chǎn)生器知道各個內(nèi)存緩沖區(qū)、共享內(nèi)存緩沖區(qū)和ROB的大小以及微體系結構類型。在內(nèi)部循環(huán)中,采用間隔性的指令加載技術,減小二級緩存的命中率。每一個控制參數(shù)值的加載和產(chǎn)生,都必須是在內(nèi)存中,并保證指令和數(shù)據(jù)100%為ACEbits,而且程序在執(zhí)行過程中應該保證存儲單元寫入的數(shù)據(jù)。代碼產(chǎn)生器根據(jù)AVF影響因子確定參數(shù)設定,進而產(chǎn)生具有最大AVF值極限測試程序代碼,影響因子包括:
[0070]I)長延遲操作指令
[0071]長時間延遲的操作,如二級緩存或者DTLB未命中,double類型的除法等,都會導致處理器短時間的停滯。以二級緩存未命中為例,受此影響ROB會被完全填滿,所有的功能單元的操作都會被終止。指令隊列中的指令數(shù)據(jù)也依賴于二級緩存的未命中情況。加載數(shù)據(jù)隊列中的數(shù)據(jù)只有從內(nèi)存中加載的數(shù)據(jù)才能保證是ACE bits。
[0072]2)指令并行處理和指令延遲
[0073]較低的指令集級并行和較高延遲性指令都會增加指令隊列(IQ)中AVF的值。在IQ的容量較大的情況下,較高的指令延遲同樣會增加R0B、LQ和SQ的AVF值。由于功能單元(FUs)的延遲固定,只有通過擴大IPC的值才能增加它的AVF值。
[0074]3)指令類型組合(Instruction Mix)
[0075]動態(tài)指令集分布在功能單元、加載指令隊列、和存儲隊列中,任何一種指令的增加都會導致相應單元中AVF的增加,并使得其他單元中的AVF出現(xiàn)降低。操作位數(shù)也會對功能單元、加載隊列、存儲隊列產(chǎn)生影響。
[0076]4)前端指令缺失(Front-End Misses)
[0077]指令緩存的未命中、指令邏輯轉(zhuǎn)移表未命中、取指的低效性都會減少結構單元中可用指令占有率,從而降低所有結構單元AVF的值。當分支預測器發(fā)生錯誤預測時,所有已經(jīng)取指的指令都將是un-ACE bits,所有的子程序管道都將通過刷新減少隊列中的占有率。
[0078]5)緩存覆蓋率和操作參數(shù)設定(Cache Coverage and Working Set)
[0079]緩存的AVF的值取決于包含有ACE bits的緩沖單元(cache lines)的數(shù)量。對緩存中少量cache lines進行訪問時,會獲得較高的命中率,但是AVF的值較小。相反,當命中率降低時,會獲得較好的AVF的值。操作參數(shù)的設定取決于cache lines,不同的cachelines數(shù)量,對應的操作參數(shù)不同。
[0080]6 )共享存儲器(共享Cache )的一致性
[0081 ] 多級Cache又弓I發(fā)一致性問題。采用何種Cache —致性模型和機制都將對CMP整體性能產(chǎn)生重要影響。保證對共享Cache讀寫的一致性,是程序產(chǎn)生正確輸出結果的必要條件。當處理器正執(zhí)行保證共享Cache的一致性操作時,Cache某個單元發(fā)生了軟錯誤,這樣會影響下一階段某段程序的執(zhí)行,甚至會產(chǎn)生程序運行結果出錯。
[0082]步驟200:在多核處理器模擬器上運行AVF極限測試程序,生成計算機測試程序的Fitness值(適合值);
[0083]在步驟200中,F(xiàn)itness值主要用來反映測試程序的對多核體系結構的軟錯誤發(fā)生率的影響以及表征解決方案的合理程度。
[0084]步驟300:判斷Fitness值是否大于預設的值,如果小于預設值,則進入步驟400,如果大于預設值,則進入步驟500 ;[0085]步驟400:將測試程序方案反饋到機器學習模塊,機器學習模塊運行遺傳算法(Genetic Algorithm)工具來優(yōu)化代碼產(chǎn)生器的控制參數(shù),并重新轉(zhuǎn)入步驟100 ;
[0086]在步驟400中,機器學習模塊上運行遺傳算法(Genetic Algorithm)工具來優(yōu)化代碼產(chǎn)生器的控制參數(shù)。其中,遺傳算法(Genetic Algorithm)工具,簡稱為GA工具。遺傳算法是一種漸進性的機器學習方法,該方法常被用于尋找復雜問題的最優(yōu)解。形成的每個解決方案,都會計算出一個適合值(Fitness value),該值的大小用來表征解決方案的合理程度。其中,子方案的形成以上一個方案為依據(jù)。遺傳算法中子方案的長生利用變換、交叉、移植等方法。變換涉及到參數(shù)方法的任意變化,交叉包括對已存在方法的交換、結合,移植主要是對參數(shù)數(shù)量的變更。當產(chǎn)生的子方法均在方法集中,遺傳引入一種中斷事件,完全的改變最佳方案的分布,防止出現(xiàn)局部最優(yōu)解。遺傳算法重復執(zhí)行操作,直到子方法沒有任何的改進為止。
[0087]步驟500:將本次生成的AVF極限測試程序作為多核處理器極限測試程序。
[0088]本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法具有以下優(yōu)點[0089]I)適用性強
[0090]不同的體系結構的處理器,相同的測試程序會出現(xiàn)不同的軟錯誤發(fā)生率。要檢測出某種體系結構類型處理器的軟錯誤發(fā)生率的范圍值,必須用到大量的不同的測試程序,并利用統(tǒng)計學的方法得出軟錯誤發(fā)生率的范圍值。本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法產(chǎn)生的AVF極限測試程序能夠最大限度的檢測出某種體系結構中的軟錯誤發(fā)生率的最大 值。這樣不僅省去了查找、更改基準測試程序的工作,而且能夠快速的準確的知道軟錯誤發(fā)生率的范圍值,并且不受體系結構類型的限制。
[0091]2)配置靈活性
[0092]不同的設計者對測試程序的要求不同,有些設計者比較看重緩存的軟錯誤發(fā)生率,有些則看重某些寄存器的軟錯誤的發(fā)生率,本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法可以通過手動的設置代碼生成器的控制參數(shù),產(chǎn)生符合要求的AVF極限測試程序。
[0093]3)實現(xiàn)高效性
[0094]本發(fā)明實施例的多核處理器軟錯誤壓力測試程序生成系統(tǒng)及方法能直接針對某種多核體系結構的處理器產(chǎn)生AVF極限測試程序,通過多核體系結構的模擬器,直接檢測出AVF極限測試程序的效果值,并可以直接用于真實的多核處理器,這樣省去了大量測試程序檢測工作。
[0095]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1.一種多核處理器軟錯誤壓力測試程序生成系統(tǒng),其特征在于,包括: 代碼產(chǎn)生器:根據(jù)預設的控制參數(shù)自動產(chǎn)生多核處理器體系結構弱點因子極限測試程序; 多核處理器模擬器:接收代碼產(chǎn)生器產(chǎn)生的多核處理器體系結構弱點因子極限測試程序,運行所述極限測試程序產(chǎn)生體系結構弱點因子值; 仲裁模塊:根據(jù)多核處理器模擬器產(chǎn)生的體系結構弱點因子值,判斷代碼產(chǎn)生器產(chǎn)生的多核處理器體系結構弱點因子極限測試程序是否符合要求; 機器學習模塊:集成有遺傳算法工具,用于在仲裁模塊判斷代碼產(chǎn)生器產(chǎn)生的多核處理器體系結構弱點因子極限測試程序不符合要求時,運行所述遺傳算法工具,所述工具優(yōu)化代碼產(chǎn)生器的控制參數(shù),使體系結構弱點因子值達到最大。
2.根據(jù)權利要求1所述的多核處理器軟錯誤壓力測試程序生成系統(tǒng),其特征在于,所述代碼產(chǎn)生器能自動優(yōu)化其控制參數(shù)以使多核處理器體系結構弱點因子值達到最大。
3.根據(jù)權利要求2所述的多核處理器軟錯誤壓力測試程序生成系統(tǒng),其特征在于,所述影響因子包括長 延遲操作指令、指令并行處理和指令延遲、指令類型組合、前端指令缺失、緩存覆蓋率和操作參數(shù)設定,以及共享存儲器的一致性。
4.根據(jù)權利要求1所述的多核處理器軟錯誤壓力測試程序生成系統(tǒng),其特征在于,所述代碼產(chǎn)生器加載控制參數(shù)產(chǎn)生多核處理器體系結構弱點因子極限測試程序,所述控制參數(shù)加載和產(chǎn)生在內(nèi)存中完成,所述加載采用間隔性的指令加載技術。
5.根據(jù)權利要求4所述的多核處理器軟錯誤壓力測試程序生成系統(tǒng),其特征在于,所述代碼產(chǎn)生器向其內(nèi)存寫入數(shù)據(jù)的循環(huán)程序的規(guī)模小于重排序緩存(ROB)大小的1.2倍。
6.根據(jù)權利要求1所述的多核處理器軟錯誤壓力測試程序生成系統(tǒng),其特征在于,所述遺傳算法工具優(yōu)化的控制參數(shù)包括指令組合、指令依賴距離、長延遲算法所占比重、關聯(lián)指令鏈的平均長度、寄存器的使用、與二級緩存未命中相關的指令、隨機種子、共享數(shù)據(jù)和代碼產(chǎn)生器開關。
7.一種多核處理器軟錯誤壓力測試程序生成方法,包括: 步驟a:加載代碼產(chǎn)生器預設的控制參數(shù),使代碼產(chǎn)生器產(chǎn)生多核處理器體系結構弱點因子極限測試程序; 步驟b:在多核處理器模擬器上運行多核處理器體系結構弱點因子極限測試程序,生成該體系結構弱點因子值; 步驟c:判斷代碼產(chǎn)生器產(chǎn)生的多核處理器體系結構弱點因子極限測試程序是否符合要求,如果不符合要求,將測試程序的方案反饋到機器學習模塊,機器學習模塊運行遺傳算法工具來優(yōu)化代碼產(chǎn)生器的控制參數(shù),并重新轉(zhuǎn)入步驟a,如果符合要求,將本次生成的多核處理器體系結構弱點因子極限測試程序作為多核處理器極限測試程序。
8.根據(jù)權利要求7所述的多核處理器軟錯誤壓力測試程序生成方法,其特征在于,在所述步驟a中,根據(jù)多核處理器體系結構弱點因子的影響因子確定預設的控制參數(shù),所述影響因子包括長延遲操作指令、指令并行處理和指令延遲、指令類型組合、前端指令缺失、緩存覆蓋率和操作參數(shù)設定,以及共享存儲器的一致性。
9.根據(jù)權利要求8所述的多核處理器軟錯誤壓力測試程序生成方法,其特征在于,所述控制參數(shù)加載和產(chǎn)生在內(nèi)存中完成,所述加載采用間隔性的指令加載技術。
10.根據(jù)權利要求7所述的多核處理器軟錯誤壓力測試程序生成方法,其特征在于,在所述步驟c中,所述遺傳算法工具優(yōu)化的控制參數(shù)包括指令組合、指令依賴距離、長延遲算法所占比重、關聯(lián)指令鏈的平均長度、寄存器的使用、與二級緩存未命中相關的指令、隨機種子、共享數(shù)據(jù)和代 碼產(chǎn)生器開關。
【文檔編號】G06F11/36GK103902448SQ201210584290
【公開日】2014年7月2日 申請日期:2012年12月28日 優(yōu)先權日:2012年12月28日
【發(fā)明者】喻之斌, 須成忠, 卓文偉 申請人:中國科學院深圳先進技術研究院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1