欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于確定性重放的處理器整體故障檢測系統(tǒng)與方法

文檔序號:6445006閱讀:284來源:國知局
專利名稱:一種基于確定性重放的處理器整體故障檢測系統(tǒng)與方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種處理器芯片設(shè)計與檢測技術(shù)領(lǐng)域,特別地,涉及一種基于確定性重放的處理器整體故障檢測系統(tǒng)與方法。
背景技術(shù)
越來越大的晶體管規(guī)模、越來越低的芯片電壓、越來越小的工藝技術(shù)使得處理器越來越容易產(chǎn)生故障。一般來說,一個故障是指在處理器(或可稱為處理器芯片)使用過程中一個或者多個邏輯門得到了錯誤的結(jié)果。故障產(chǎn)生的原因可能足由于處理器制造時的錯誤、處理器提前到達(dá)使用壽命、外部射線對處理器造成的輻射等等。雖然已有的掃描鏈技術(shù)可以根據(jù)故障模型去檢測處理器中的故障,但是僅限于已有的故障模型下面的故障。然而,隨著處理器的高速發(fā)展,各種低功耗技術(shù)、高速接口的應(yīng)用,越來越多的故障模型被提出,即使掃描鏈技術(shù)檢測對某些故障模型達(dá)到了 100%的覆蓋率,但一些其他故障模型下、或者沒有固定故障模型的故障仍然無法被檢測出來。另外,一些測試完成之后才發(fā)生的故障,如處理器提早到了使用壽命,同樣無法被檢測出來。由于故障會使得處理器的一些邏輯產(chǎn)生錯誤,其很有可能導(dǎo)致程序在處理器上執(zhí)行錯誤。錯誤的程序執(zhí)行結(jié)果會極大的降低處理器的可靠性,甚至?xí)?dǎo)致整個系統(tǒng)崩潰。所以,如何盡可能多的檢測出處理器產(chǎn)生的所有故障已經(jīng)成為當(dāng)今處理器越來越重視的問題。已有方法包括對處理器核做冗余檢測,其檢測處理器核內(nèi)的那些測試沒有檢測到的故障。具體來說,對每一個處理器核都安排一個冗余的處理器核,兩個處理器核同時執(zhí)行同樣的程序,并比較兩個執(zhí)行的結(jié)果,如果兩次結(jié)果不一樣,那么兩個處理器核必定有一個有故障。雖然這些方法可以檢測到處理器核內(nèi)部的所有故障,但是這些方法無法檢測到片上網(wǎng)絡(luò)、二級緩存、內(nèi)存控制器等非處理器核內(nèi)的錯誤。而在一個成熟處理器芯片中,這些非處理器核占用了超過整個芯片50%的面積,所以一種能夠檢測整個處理器的故障的方法是亟待提出的。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于確定性重放的處理器整體故障檢測系統(tǒng)與方法,其通過確定性重放來檢測整個處理器中的故障,使得整個處理器中的故障能夠得到檢測,保證了整個處理器芯片的可靠性。為實現(xiàn)本發(fā)明目的而提供的一種基于確定性重放的處理器整體故障檢測系統(tǒng),包括一檢測多核處理器,以及一冗余比較多核處理器;還包括記錄模塊,與所述檢測多核處理器中每個處理器核相對應(yīng)的多個異或模塊-1,重放模塊,與所述冗余比較多核處理器中每個處理器核相對應(yīng)的多個異或模塊-2和多個比較模塊,其中所述記錄模塊,用于在所述檢測多核處理器執(zhí)行一并行程序時,記錄所有被檢測的處理器核之間的信息交互,并將記錄下來的交互傳遞信息傳輸出去;所述異或模塊-1,用于在所述檢測多核處理器執(zhí)行所述并行程序時,收集所述檢測多核處理器中每個處理器核對每一條指令的執(zhí)行,記錄下每一條指令執(zhí)行的結(jié)果,并將所有結(jié)果通過異或的方式進(jìn)行處理,得到處理后的異或結(jié)果-1并傳輸出去;所述重放模塊,用于根據(jù)記錄模塊記錄下來的處理器核之間的交互傳遞信息,在所述冗余比較多核處理器中確定性重放執(zhí)行所述并行程序;所述異或模塊-2,用于在所述冗余比較多核處理器根據(jù)重放模塊中的交互傳遞信息進(jìn)行確定性重放執(zhí)行所述并行程序,收集所述冗余比較處理器核中對每一條指令的執(zhí)行,記錄下每一條指令執(zhí)行的結(jié)果,并將所有結(jié)果通過異或的方式進(jìn)行處理,得到處理后的異或結(jié)果-2傳輸給比較模塊;所述比較模塊,用于讀入所述異或模塊-1記錄的異或結(jié)果-1,并將異或結(jié)果-1同重放執(zhí)行的異或結(jié)果-2進(jìn)行比對,通過比對的結(jié)果來判斷兩次執(zhí)行中所述檢測多核處理器和/或冗余比較多核處理器是否發(fā)生或者觸發(fā)故障。較優(yōu)地,所述的基于確定性重放的處理器整體故障檢測系統(tǒng)中,一非處理器核設(shè)備與所述一組需要被檢測的處理器核組組成一檢測多核處理器,完成并行程序的指令完整執(zhí)行過程;或者與所述一組用來做比對的冗余的處理器核組組成一冗余比較多核處理器,完成并行程序的指令完整執(zhí)行過程;其中,所述一組需要被檢測的處理器核組與所述一組用來做比對的冗余的處理器核組具有相同個數(shù)的多個處理器核。較優(yōu)地,所述非處理器核設(shè)備,包括二級緩存、片上網(wǎng)絡(luò)、內(nèi)存控制器等。較優(yōu)地,所述每一異或模塊-1 一體化地配置在相應(yīng)的每一個需要被檢測的處理器核里面;所述每一異或模塊-2 —體化地配置在冗余比較多核處理器中每一個用來做比對的冗余的處理器核里面。較優(yōu)地,所述交互傳遞信息包括時間序關(guān)系和執(zhí)行序關(guān)系;所述記錄模塊包括采樣模塊;所述采樣模塊用于記錄根據(jù)采樣周期進(jìn)行指令窗口采樣而得到的處理器核之間的所述時間序關(guān)系;并記錄兩次采樣周期之內(nèi)的沖突操作之間的所述執(zhí)行序關(guān)系。
優(yōu)選地,所述采樣周期為每512個時鐘周期。所述記錄模塊包括多個與每一個被檢測的處理器核相對應(yīng)的CAM存儲記錄模塊,用于存儲所述相應(yīng)處理器核最近提交的IOM條訪存指令;并當(dāng)一個訪存指令被執(zhí)行時,檢測其他處理器核內(nèi)的CAM存儲記錄模塊,判斷是否有與其沖突的訪存指令;如果有,則記錄處理器核之間的執(zhí)行序關(guān)系;否則不記錄。較優(yōu)地,所述重放模塊中,包括與所述冗余比較多核處理器的每一處理器核相對應(yīng)的多個暫停取指寄存器,用于監(jiān)控每個處理器核當(dāng)前執(zhí)行的防存指令數(shù),根據(jù)所述時間序關(guān)系和執(zhí)行序關(guān)系完成所述并行程序的確定性重放。較優(yōu)地,所述異或模塊-1設(shè)置一個32位的結(jié)果寄存器-1,初始值為0,每次執(zhí)行一條指令,就將這個指令的結(jié)果異或上原有的結(jié)果寄存器-1的值;所述異或模塊-1每執(zhí)行IOM條指令,就將這個結(jié)果寄存器-1的值導(dǎo)出到檢測多
5核處理器外部,并重新初始化該結(jié)果寄存器-1 ;所述異或模塊-2中設(shè)置32位的結(jié)果寄存器_2,初始值為0,每次執(zhí)行一條指令,就將這個指令的結(jié)果異或上原有的結(jié)果寄存器-2 ;異或模塊-2每執(zhí)行IOM條指令,就將這個結(jié)果寄存器-2的值導(dǎo)出到比較模塊,并重新初始化該結(jié)果寄存器_2。為實現(xiàn)本發(fā)明目的還提供一種基于確定性重放的處理器整體故障檢測方法,包括以下步驟步驟S100,并行程序在檢測多核處理器中執(zhí)行,記錄下所述檢測多核處理器中每一處理器核之間的交互傳遞信息,并且記錄下指令執(zhí)行的異或結(jié)果-1 ;步驟S200,所述并行程序在冗余比較多核處理器中執(zhí)行,根據(jù)步驟SlOO記錄的處理器核之間的交互傳遞信息,確定性重放所述并行程序的執(zhí)行,同時記錄下執(zhí)行的異或結(jié)果-2;步驟S300,將對兩次的執(zhí)行異或結(jié)果-1和異或結(jié)果-2進(jìn)行比對,檢測是否有故障產(chǎn)生或者觸發(fā)。較優(yōu)地,所述步驟S300中,所述檢測包括如下步驟如果比對結(jié)果不一樣,則判斷其中一組處理器核中在這次并行程序的執(zhí)行中存在故障;否則,判斷兩組處理器核在這次執(zhí)行中均沒有故障。本發(fā)明的有益效果本發(fā)明的基于確定性重放的處理器整體故障檢測系統(tǒng)與方法,通過在處理器中通過記錄執(zhí)行的被檢測處理器核間的信息交互,并確定性的在冗余處理器核組中重放的執(zhí)行,將兩次執(zhí)行的結(jié)果進(jìn)行比對,來檢測在兩個處理器核組中是否有故障,由于每次將一組處理器核進(jìn)行重放,所以不管是處理器核上面的故障,還是其他非處理器核(如二級緩存、片上網(wǎng)絡(luò)、內(nèi)存控制器等)上面的故障都可以檢測到,其十分有效的彌補(bǔ)了現(xiàn)有技術(shù)無法檢測到非處理器核上面故障的不足,保證了處理器芯片的可靠性。說明書附1為本發(fā)明基于確定性重放的處理器整體故障檢測系統(tǒng)結(jié)構(gòu)示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖,對本發(fā)明基于確定性重放的處理器整體故障檢測系統(tǒng)與方法的實現(xiàn)進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。下面通過具體實施例詳細(xì)說明本發(fā)明的基于確定性重放的處理器整體故障檢測系統(tǒng)與方法。如

圖1所示,本發(fā)明實施例的基于確定性重放的處理器整體故障檢測系統(tǒng),包括一組需要被檢測的處理器核組,以及一組用來做比對的冗余的處理器核組,其中,所述一組需要被檢測的處理器核組與所述一組用來做比對的冗余的處理器核組具有相同個數(shù)的多個處理器核。本發(fā)明實施例的基于確定性重放的處理器整體故障檢測系統(tǒng),還包括一非處理器核設(shè)備;所述一非處理器核設(shè)備與所述一組需要被檢測的處理器核組組成一檢測多核處理器,完成并行程序的指令完整執(zhí)行過程;或者與所述一組用來做比對的冗余的處理器核組組成冗余比較多核處理器,完成并行程序的指令完整執(zhí)行過程。較佳地,作為一種可實施方式,所述非處理器核設(shè)備,包括但不限于二級緩存、片上網(wǎng)絡(luò)、內(nèi)存控制器等設(shè)備。本發(fā)明實施例的基于確定性重放的處理器整體故障檢測系統(tǒng),還包括記錄模塊,以及與所述檢測多核處理器中每個處理器核相對應(yīng)的多個異或模塊-1,其中所述記錄模塊,用于在所述需要被檢測的處理器核組組成的檢測多核處理器執(zhí)行一并行程序時,記錄所有被檢測的處理器核之間的信息交互,并將記錄下來的交互傳遞信息通過所述檢測多核處理器的外部接口(未示出)傳輸出去,記載成為交互日志;所述異或模塊-1,用于在所述檢測多核處理器執(zhí)行所述并行程序時,收集所述檢測多核處理器每個處理器核中對每一條指令的執(zhí)行,記錄下每一條指令執(zhí)行的結(jié)果,并將所有結(jié)果通過異或的方式進(jìn)行處理,得到處理后的異或結(jié)果-1,再定期的將該異或結(jié)果-1通過所述檢測多核處理器的外部接口(未示出)并傳輸出去,記載成為異或日志。較佳地,作為一種可實施方式,所述每一異或模塊-1 一體化地配置在相應(yīng)的每一個需要被檢測的處理器核里面。所述的基于確定性重放的處理器整體故障檢測系統(tǒng),還包括重放模塊,與所述冗余比較多核處理器中每個處理器核相對應(yīng)的多個異或模塊-2和多個比較模塊,其中所述重放模塊,用于根據(jù)記錄模塊記錄下來的處理器核之間的交互傳遞信息,在所述冗余比較多核處理器中確定性重放執(zhí)行所述并行程序。所述異或模塊_2,用于在所述冗余比較多核處理器根據(jù)重放模塊中的交互傳遞信息進(jìn)行確定性重放執(zhí)行所述并行程序時,收集所述冗余比較處理器核中對每一條指令的執(zhí)行,記錄下每一條指令執(zhí)行的結(jié)果,并將所有結(jié)果通過異或的方式進(jìn)行處理,得到處理后的異或結(jié)果-2,再定期的將該異或結(jié)果-2通過處理器芯片的內(nèi)部接口(未示出)傳輸給比較模塊。較佳地,作為一種可實施方式,所述每一異或模塊-2—體化地配置在冗余比較多核處理器中每一個用來做比對的冗余的處理器核里面。所述比較模塊,用于讀入所述異或模塊-1記錄的異或結(jié)果-1,并將異或結(jié)果-1同重放執(zhí)行的異或結(jié)果-2進(jìn)行比對,通過比對的結(jié)果來判斷兩次執(zhí)行中所述檢測多核處理器和/或冗余比較多核處理器是否發(fā)生或者觸發(fā)了一個故障,即,如果異或結(jié)果-1同重放執(zhí)行的異或結(jié)果-2不一樣,則判斷有一個或多個故障發(fā)生或者觸發(fā);如果異或結(jié)果-1同重放執(zhí)行的異或結(jié)果-2 —樣,則判斷沒有故障發(fā)生或者觸發(fā),從而可以檢測出檢測多核處理器中的故障。本發(fā)明實施例的基于確定性重放的處理器整體故障檢測系統(tǒng),在一組需要被檢測的處理器核組組成的,包括二級緩存、片上網(wǎng)絡(luò)、內(nèi)存控制器等非處理器核設(shè)備的檢測多核處理器中,當(dāng)在這一檢測多核處理器中執(zhí)行并行程序時,檢測到這一檢測多處理器核內(nèi)部是否有故障產(chǎn)生或者觸發(fā)。所述檢測多核處理器包括一組需要被檢測故障的具有多個處理器核的處理器核組,當(dāng)執(zhí)行并行程序時,這些處理器核通過二級緩存、片上網(wǎng)絡(luò)、內(nèi)存控制器等非處理器核設(shè)備來完成處理器核之間的信息傳遞交互(如圖1示)。
本發(fā)明實施例的基于確定性重放的處理器整體故障檢測系統(tǒng),還包括一組具有與所述檢測多核處理器個數(shù)相同的處理器核的用來做比對的冗余的處理器核組,和所述二級緩存、片上網(wǎng)絡(luò)、內(nèi)存控制器等非處理器核設(shè)備的冗余比較多核處理器中,所述冗余比較多核處理器也是通過與所述需要被檢測故障的具有多個處理器核的處理器核組使用相同的所述二級緩存、片上網(wǎng)絡(luò)、內(nèi)存控制器等非處理器核設(shè)備來完成冗余比較多核處理器的處理器核之間的信息交互(如圖1示)。同樣的并行程序?qū)⒃谌哂啾容^處理器中確定性重放執(zhí)行,并將執(zhí)行的異或結(jié)果-2與檢測多核處理器中的執(zhí)行的異或結(jié)果-1進(jìn)行比對;如果不一樣,判斷出其中一組處理器核在執(zhí)行該并行程序的過程中產(chǎn)生或者觸發(fā)了一個或多個故障。對于一個并行程序,多次執(zhí)行的結(jié)果可能是不一樣的,所以,所述檢測故障的方法需要有確定性重放的支持,即,通過確定性重放來保證一個并行程序的多次執(zhí)行有著一樣的執(zhí)行結(jié)果。較佳地,作為一種可實施方式,本發(fā)明實施例中,所述交互傳遞信息包括時間序關(guān)系和執(zhí)行序關(guān)系;所述記錄模塊包括采樣模塊;所述采樣模塊用于記錄根據(jù)采樣周期進(jìn)行指令窗口采樣而得到的處理器核之間的所述時間序關(guān)系;記錄兩次采樣周期之內(nèi)的沖突操作之間的所述執(zhí)行序關(guān)系。作為一種可實施方式,所述記錄模塊記錄被檢測的處理器核組之間的信息傳遞交互,為記載不同處理器對同一個訪存地址訪問的先后關(guān)系。例如有兩個訪存操作u,v在不同處理器核上面執(zhí)行,如果它們訪問的地址是同樣的,并且其中一個是寫操作,本發(fā)明實施例稱U和V是兩個沖突的訪存指令,它們訪問該地址的先后關(guān)系,即U和V及其執(zhí)行時的順序關(guān)系,就需要被作為交互傳遞信息記載下來。在本發(fā)明實施例的實現(xiàn)中,作為一種可實施方式,通過處理器芯片原有的外部接口(未示出),定期將異或結(jié)果從被檢測的處理器核組中傳輸出去,并定期將記錄下來的結(jié)果和序關(guān)系導(dǎo)入冗余比較處理器組。較佳地,作為一種可實施方式,所述采樣周期為512個時鐘周期。較佳地,作為一種可實施方式,所述記錄模塊還包括多個與每一個被檢測的處理器核中相對應(yīng)的CAM (content-addressable memory內(nèi)容地址存儲器)存儲記錄模塊,用于存儲所述相應(yīng)處理器核最近提交的IOM條訪存指令;并當(dāng)一個訪存指令被執(zhí)行時,檢測其他處理器核內(nèi)的CAM存儲記錄模塊,判斷是否有與其沖突的訪存指令;如果有,則記錄處理器核之間的執(zhí)行序關(guān)系;否則不記錄。采樣模塊在每512拍(即512個時鐘周期)通過PC采樣(指令窗口采樣)將處理器核的訪存操作分塊,記錄處理器核之間的時間序關(guān)系。作為一種可實施方式,在每512拍通過PC采樣,獲得了兩次采樣之間每個處理器核提交的所有指令。本發(fā)明實施例將每次PC采樣時每個處理器核提交的指令記錄下來,就可以得到在檢測多核處理器中并行程序執(zhí)行中產(chǎn)生的沖突操作的序關(guān)系。例如在第3次采樣和第4次采樣之間提交的任何訪存指令u,在第5次采樣和第6次采樣之間提交的任何訪存指令ν之前。因為在第4次采樣的時候,u已經(jīng)被提交,而ν還沒有開始。
通過采樣記錄的序關(guān)系(本發(fā)明實施例稱為時間序),涵蓋了所有提交時間差在兩次采樣周期之外的沖突操作之間的序關(guān)系。作為一種可實施方式,在本發(fā)明實施例中,除了記錄時間序,本發(fā)明實施例還記載提交時間差在兩次采樣周期之內(nèi)的沖突操作之間的序關(guān)系(本發(fā)明實施例稱為執(zhí)行序)。由于最近IOM條訪存指令包括了最近兩次采樣周期之內(nèi)的所有指令,所以,所有提交時間差在兩次采樣周期之內(nèi)的沖突操作之間的序關(guān)系也記錄下來了。這樣本發(fā)明實施例通過記錄模塊,記錄了所有沖突訪存指令之間的序關(guān)系(包括時間序和執(zhí)行序),在確定性重放執(zhí)行過程中,只要這些序關(guān)系能夠被保證,在沒有故障的情況下,兩次執(zhí)行就應(yīng)該得到一樣的執(zhí)行結(jié)果。較佳地,在本發(fā)明實施例中,作為一種可實施方式,所述重放模塊中,包括與所述冗余比較多核處理器的每一處理器核相對應(yīng)的多個暫停取指寄存器,用于監(jiān)控每個處理器核當(dāng)前執(zhí)行的訪存指令數(shù),根據(jù)序關(guān)系(包括時間序和執(zhí)行序)完成所述并行程序的確定性重放。作為一種可實施方式,在記錄模塊中,本發(fā)明實施例記下了兩種信息時間序和執(zhí)行序。對于時間序,對指令U,指令u在檢測多核處理器執(zhí)行中的提交時間在第i次采樣到第i+Ι次采樣之間;當(dāng)u取指的時候,檢測是否檢測多核處理器執(zhí)行中所有提交時間在第i-1次采樣之前的指令都已提交;如果沒有,則u停止取指,直到所有提交時間在第i-Ι次采樣之前的指令都已提交,否則不停止取指。在記錄時間序的時候,本發(fā)明實施例中,通過每一次采樣的時候已提交的指令數(shù),監(jiān)控每個處理器核當(dāng)前執(zhí)行的訪存指令數(shù),就可以重現(xiàn)出第一次執(zhí)行記錄下來的時間序。對于執(zhí)行序,如果一對沖突訪存操作指令u在指令ν之前執(zhí)行被記錄下來了,那么,在重放執(zhí)行中,指令ν的執(zhí)行(即取指)必須等待指令u已經(jīng)執(zhí)行完成(即已經(jīng)提交)。例如處理器核A的1000條訪存指令在處理器核B的1300條訪存指令之前,在重放執(zhí)行中,當(dāng)處理器核B取指到1300條訪存指令的時候,則查看處理器核A是否完成了第1000條訪存指令,如果沒有,處理器核B需要暫停取指,直到處理器核A完成了第1000條訪存指令。一旦所有記載下來的時間序和執(zhí)行序都被重放出來了,重放執(zhí)行就得到與檢測多核處理器執(zhí)行完全相同的執(zhí)行結(jié)果(在沒有故障的情況下)。作為一種可實施方式,每一條指令的執(zhí)行會改動一個32位的寄存器或者32位的內(nèi)存地址。本發(fā)明實施例中,作為一種可實施方式,所述異或模塊-1設(shè)置一個32位的結(jié)果寄存器-1,優(yōu)選地,初始值為0,每次執(zhí)行一條指令,就將這個指令的結(jié)果(即改動的32位寄存器或者32位的內(nèi)存地址的值)異或上原有的結(jié)果寄存器-1。異或模塊-1每執(zhí)行IOM條指令,就將這個結(jié)果寄存器-1的值導(dǎo)出到檢測多核處理器外部,并重新初始化該結(jié)果寄存器-1。即,通過有損壓縮,用32位(bit)的數(shù)據(jù)來保存每10 條指令的值。類似地,作為一種可實施方式,所述異或模塊-2中與異或模塊-1 一樣,也設(shè)置32位的結(jié)果寄存器_2,優(yōu)選地,初始值為0,每次執(zhí)行一條指令,就將這個指令的結(jié)果(即改動的32位寄存器或者32位的內(nèi)存地址的值)異或上原有的結(jié)果寄存器_2。異或模塊-2每執(zhí)行IOM條指令,就將這個結(jié)果寄存器-2的值導(dǎo)出到比較模塊,并重新初始化該結(jié)果寄存
—2 ο作為一種可實施方式,所述比較模塊,在重放執(zhí)行的過程中,每執(zhí)行IOM條指令,
9收取異或模塊-2的結(jié)果寄存器-2的值,同時收取檢測多核處理器外部給傳輸進(jìn)來的執(zhí)行時結(jié)果寄存器-1的值,將這兩個值(均為32位)進(jìn)行比較。如果相等,則沒有故障被產(chǎn)生或者觸發(fā);如果不等,則必定有一組處理器核產(chǎn)生或者觸發(fā)了故障。較佳地,本發(fā)明實施例中,通過每執(zhí)行IOM條指令,只用比較一個32位的結(jié)果寄存器的值,可以十分有效的實現(xiàn)檢測比較。相應(yīng)地,本發(fā)明實施例還提供一種基于確定性重放的處理器整體故障檢測方法,包括以下步驟步驟S100,并行程序在檢測多核處理器中執(zhí)行,記錄下所述檢測多核處理器中每一處理器核之間的交互傳遞信息,并且記錄下指令執(zhí)行的異或結(jié)果-1 ;步驟S200,所述并行程序在冗余比較多核處理器中執(zhí)行,根據(jù)步驟SlOO記錄的處理器核之間的交互傳遞信息,進(jìn)行確定性重放所述并行程序的執(zhí)行,同時記錄下執(zhí)行的異或結(jié)果-2 ;步驟S300,將對兩次的執(zhí)行異或結(jié)果-1和異或結(jié)果-2進(jìn)行比對,檢測是否有故障產(chǎn)生或者觸發(fā)。較佳地,如果比對結(jié)果不一樣,則判斷其中一組處理器核中在這次并行程序的執(zhí)行中存在故障;否則,判斷兩組處理器核在這次執(zhí)行中均沒有故障。所述基于確定性重放的處理器整體故障檢測方法,其方法過程與本發(fā)明實施例的基于確定性重放的處理器整體故障檢測系統(tǒng)工作過程相同,因此,在本發(fā)明實施例中,不再
一一詳細(xì)描述。本發(fā)明的基于確定性重放的處理器整體故障檢測系統(tǒng)與方法,在處理器中通過記錄第一次執(zhí)行的被檢測處理器核間的信息交互,并確定性的在冗余處理器核組中重放第一次的執(zhí)行。并且,將兩次執(zhí)行的結(jié)果進(jìn)行比對,來檢測在兩個處理器核組中是否有故障。由于每次將一組處理器核進(jìn)行重放,所以不管是處理器核上面的故障,還是其他非處理器核(如二級緩存、片上網(wǎng)絡(luò)、內(nèi)存控制器等)上面的故障都可以檢測到,十分有效的彌補(bǔ)了現(xiàn)有技術(shù)中無法檢測到非處理器核上面故障的不足,保證了多核處理器的可靠性。最后應(yīng)當(dāng)說明的是,很顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型。
權(quán)利要求
1.一種基于確定性重放的處理器整體故障檢測系統(tǒng),包括一檢測多核處理器,以及一冗余比較多核處理器,其特征在于,還包括記錄模塊,與所述檢測多核處理器中每個處理器核相對應(yīng)的多個異或模塊-1,重放模塊,與所述冗余比較多核處理器中每個處理器核相對應(yīng)的多個異或模塊-2和多個比較模塊,其中所述記錄模塊,用于在所述檢測多核處理器執(zhí)行一并行程序時,記錄所有被檢測的處理器核之間的信息交互,并將記錄下米的交互傳遞信息傳輸出去;所述異或模塊-1,用于在所述檢測多核處理器執(zhí)行所述并行程序時,收集所述檢測多核處理器中每個處理器核對每一條指令的執(zhí)行,記錄下每一條指令執(zhí)行的結(jié)果,并將所有結(jié)果通過異或的方式進(jìn)行處理,得到處理后的異或結(jié)果-1并傳輸出去;所述重放模塊,用于根據(jù)記錄模塊記錄下來的處理器核之間的交互傳遞信息,在所述冗余比較多核處理器中確定性重放執(zhí)行所述并行程序;所述異或模塊-2,用于在所述冗余比較多核處理器根據(jù)重放模塊中的交互傳遞信息進(jìn)行確定性重放執(zhí)行所述并行程序時,收集所述冗余比較處理器核中對每一條指令的執(zhí)行,記錄下每一條指令執(zhí)行的結(jié)果,并將所有結(jié)果通過異或的方式進(jìn)行處理,得到處理后的異或結(jié)果-2傳輸給比較模塊;所述比較模塊,用于讀入所述異或模塊-1記錄的異或結(jié)果-1,并將異或結(jié)果-1同重放執(zhí)行的異或結(jié)果-2進(jìn)行比對,通過比對的結(jié)果來判斷兩次執(zhí)行中所述檢測多核處理器和/或所述冗余比較多核處理器是否發(fā)生或者觸發(fā)故障。
2.根據(jù)權(quán)利要求1所述的基于確定性重放的處理器整體故障檢測系統(tǒng),其特征在于,一非處理器核設(shè)備與所述一組需要被檢測的處理器核組組成一檢測多核處理器,完成并行程序的指令完整執(zhí)行過程;或者與所述一組用來做比對的冗余的處理器核組組成一冗余比較多核處理器,完成并行程序的指令完整執(zhí)行過程;其中,所述一組需要被檢測的處理器核組與所述一組用來做比對的冗余的處理器核組具有相同個數(shù)的多個處理器核。
3.根據(jù)權(quán)利要求2所述的基于確定性重放的處理器整體故障檢測系統(tǒng),其特征在于,所述非處理器核設(shè)備,包括二級緩存、片上網(wǎng)絡(luò)、內(nèi)存控制器。
4.根據(jù)權(quán)利要求1至3任一項所述的基于確定性重放的處理器整體故障檢測系統(tǒng),其特征在于所述每一異或模塊-1 一體化地配置在相應(yīng)的每一個需要被檢測的處理器核里面;所述每一異或模塊-2 —體化地配置在冗余比較多核處理器中每一個用來做比對的冗余的處理器核里面。
5.根據(jù)權(quán)利要求1至3任一項所述的基于確定性重放的處理器整體故障檢測系統(tǒng),其特征在于,所述交互傳遞信息包括時間序關(guān)系和執(zhí)行序關(guān)系;所述記錄模塊包括采樣模塊;所述采樣模塊用于記錄根據(jù)采樣周期進(jìn)行指令窗口采樣而得到的處理器核之間的所述時間序關(guān)系;記錄兩次采樣周期之內(nèi)的沖突操作之間的所述執(zhí)行序關(guān)系。
6.根據(jù)權(quán)利要求5所述的基于確定性重放的處理器整體故障檢測系統(tǒng),其特征在于,所述采樣周期為512個時鐘周期。所述記錄模塊包括多個與每一個被檢測的處理器核相對應(yīng)的CAM存儲記錄模塊,用于存儲所述相應(yīng)處理器核最近提交的IOM條訪存指令;并當(dāng)一個訪存指令被執(zhí)行時,檢測其他處理器核內(nèi)的CAM存儲記錄模塊,判斷是否有與其沖突的訪存指令;如果有,則記錄處理器核之間的執(zhí)行序關(guān)系;否則不記錄。
7.根據(jù)權(quán)利要求6所述的基于確定性重放的處理器整體故障檢測系統(tǒng),其特征在于,所述重放模塊中,包括與所述冗余比較多核處理器的每一處理器核相對應(yīng)的多個暫停取指寄存器,用于監(jiān)控每個處理器核當(dāng)前執(zhí)行的訪存指令數(shù),根據(jù)所述時間序關(guān)系和執(zhí)行序關(guān)系完成所述并行程序的確定性重放。
8.根據(jù)權(quán)利要求1至3任一項所述的基于確定性重放的處理器整體故障檢測系統(tǒng),其特征在于,所述異或模塊-1設(shè)置一個32位的結(jié)果寄存器-1,初始值為0,每次執(zhí)行一條指令,就將這個指令的結(jié)果異或上原有的結(jié)果寄存器-1的值;所述異或模塊-1每執(zhí)行IOM條指令,就將這個結(jié)果寄存器-1的值導(dǎo)出到檢測多核處理器外部,并重新初始化該結(jié)果寄存器-1 ;所述異或模塊-2中設(shè)置32位的結(jié)果寄存器_2,初始值為0,每次執(zhí)行一條指令,就將這個指令的結(jié)果異或上原有的結(jié)果寄存器-2 ;異或模塊-2每執(zhí)行IOM條指令,就將這個結(jié)果寄存器-2的值導(dǎo)出到比較模塊,并重新初始化該結(jié)果寄存器_2。
9.一種基于確定性重放的處理器整體故障檢測方法,其特征在于,包括以下步驟步驟S100,并行程序在檢測多核處理器中執(zhí)行,記錄下所述檢測多核處理器中每處理器核之間的交互傳遞信息,并且記錄下指令執(zhí)行的異或結(jié)果-1 ;步驟S200,所述并行程序在冗余比較多核處理器中執(zhí)行,根據(jù)步驟SlOO記錄的處理器核之間的交互傳遞信息,確定性重放所述并行程序的執(zhí)行,同時記錄下執(zhí)行的異或結(jié)果-2;步驟S300,將對兩次的執(zhí)行異或結(jié)果-1和異或結(jié)果-2進(jìn)行比對,檢測是否有故障產(chǎn)生或者觸發(fā)。
10.根據(jù)權(quán)利要求9所述的基于確定性重放的處理器整體故障檢測方法,其特征在于,所述步驟S300中,所述檢測包括如下步驟如果比對結(jié)果不一樣,則判斷其中一組處理器核中在這次并行程序的執(zhí)行中存在故障;否則,判斷兩組處理器核在這次執(zhí)行中均沒有故障。
全文摘要
本發(fā)明提供一種基于確定性重放的處理器整體故障檢測系統(tǒng)與方法。其通過在多核處理器中記錄執(zhí)行的被檢測處理器核間的信息交互,并確定性的在冗余處理器核組中重放的執(zhí)行,將兩次執(zhí)行的結(jié)果進(jìn)行比對,來檢測在兩個處理器核組中是否有故障,由于每次將一組處理器核進(jìn)行重放,所以不管是處理器核上面的故障,還是其他非處理器核(如二級緩存、片上網(wǎng)絡(luò)、內(nèi)存控制器等)上面的故障都可以檢測到,其十分有效的彌補(bǔ)了現(xiàn)有技術(shù)無法檢測到非處理器核上面故障的不足,保證了處理器芯片的可靠性。
文檔編號G06F11/267GK102591763SQ20111046064
公開日2012年7月18日 申請日期2011年12月31日 優(yōu)先權(quán)日2011年12月31日
發(fā)明者孫國慶, 李磊, 陳云霽 申請人:龍芯中科技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
延津县| 广丰县| 江城| 莲花县| 庆阳市| 鄂州市| 出国| 阳新县| 横山县| 武威市| 得荣县| 新绛县| 贵定县| 普安县| 金溪县| 新沂市| 合水县| 齐齐哈尔市| 古丈县| 容城县| 绍兴市| 嘉善县| 固安县| 山阴县| 香港| 准格尔旗| 溧阳市| 高雄市| 安顺市| 赤壁市| 肇州县| 达拉特旗| 剑河县| 察哈| 莲花县| 津南区| 澳门| 潜江市| 鹿泉市| 山西省| 荔波县|