国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      集成電路的處理級內(nèi)的系統(tǒng)和隨機(jī)差錯檢測及恢復(fù)的制作方法

      文檔序號:6479522閱讀:268來源:國知局
      專利名稱:集成電路的處理級內(nèi)的系統(tǒng)和隨機(jī)差錯檢測及恢復(fù)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及集成電路領(lǐng)域。更具體來說,本發(fā)明涉及包括隨機(jī)差錯和系統(tǒng)差錯的差錯的檢測以及從集成電路的處理級內(nèi)的這類差錯的恢復(fù)。
      已知提供可認(rèn)為由一系列串聯(lián)處理級(例如流水線電路)組成的集成電路。在各級之間是信號捕捉元件、例如一個或多個信號值存儲到其中的鎖存器或讀出放大器。各處理級的處理邏輯響應(yīng)從在前處理級或其它地方接收的輸入值,產(chǎn)生要存儲在關(guān)聯(lián)輸出鎖存器中的輸出信號值。處理邏輯完成其處理操作所用的時間決定集成電路可工作的速度。如果所有級的處理邏輯能夠在短時間周期中完成其處理操作,則可迅速推進(jìn)信號值通過輸出鎖存器,得到高速處理。系統(tǒng)不能在各級之間比最慢處理邏輯能夠執(zhí)行它接收輸入信號并產(chǎn)生適當(dāng)輸出信號的處理操作的速度更快地推進(jìn)信號。這限制了系統(tǒng)的最大性能。
      在一些情況下,希望盡快地處理數(shù)據(jù),因此處理級將被驅(qū)動,以便以盡快的速率推進(jìn)其處理操作,直到最慢的處理級無法保持同步。在另一些情況下,集成電路的功耗比處理速率更重要,以及集成電路的工作電壓將被減小,以便使功耗降低到最慢的處理級又不再能夠保持同步的點(diǎn)。最慢的處理級無法保持同步的這些情況都將導(dǎo)致處理差錯(即系統(tǒng)差錯)的出現(xiàn)。
      避免處理差錯出現(xiàn)的一種方式是采用頻率已知為小于容差范圍允許的最小值的處理時鐘來驅(qū)動集成電路,所述容差范圍考慮了不同集成電路之間的最壞情況制造變化、工作環(huán)境狀況、所處理信號的數(shù)據(jù)相關(guān)性等等。在電壓電平的上下文中,通常以充分高于最小電壓電平的電壓電平來操作集成電路,以便確保所有處理級能夠始終保持考慮最壞情況制造變化、環(huán)境狀況、數(shù)據(jù)相關(guān)性等等??梢岳斫?,傳統(tǒng)方法在限制最大工作頻率和最小工作電壓方面是謹(jǐn)慎的,從而考慮最壞情況狀況。
      除了在處理器以過高頻率或過低工作電壓運(yùn)行時能夠保持同步的最慢處理級產(chǎn)生的系統(tǒng)處理差錯之外,集成電路還遇到稱作單個事件擾亂(SEU)的隨機(jī)差錯。SEU是由諸如宇宙射線或器件中的質(zhì)子之類的離子化粒子導(dǎo)致的隨機(jī)差錯(比特倒轉(zhuǎn))。狀態(tài)的變化是瞬時的、即類似脈沖,因此器件的重置或重寫產(chǎn)生此后的正常行為。已知的是利用糾錯碼來檢測和糾正隨機(jī)差錯。但是,由于檢錯和糾錯所需的處理時間,這類糾錯技術(shù)必然帶來延遲。在諸如差錯率高但將所處理接收數(shù)據(jù)中的差錯抑制到預(yù)定差錯率以內(nèi)仍然重要的有噪通信信道之類的環(huán)境下,這個處理延遲是合理的。相反,在一般希望盡快處理數(shù)據(jù)的集成電路的情況下,由于糾錯電路引起的延遲及相關(guān)負(fù)面性能影響,不希望對數(shù)據(jù)處理操作的關(guān)鍵通路引入糾錯。
      從一個方面來看,本發(fā)明提供一種用于執(zhí)行數(shù)據(jù)處理的集成電路,所述集成電路包括多個處理級,來自至少一個處理級的處理級輸出信號作為后續(xù)處理級的處理級輸入信號來提供,其中所述至少一個處理級包括處理邏輯,可用于對至少一個編碼輸入值執(zhí)行處理操作,從而產(chǎn)生處理邏輯輸出信號,所述編碼輸入值是糾錯碼已經(jīng)應(yīng)用到其中的輸入值;不延遲信號捕捉元件,可用于在不延遲捕捉時間捕捉所述處理邏輯輸出信號的不延遲值,所述不延遲值在所述不延遲捕捉時間之后作為所述處理級輸出信號被提供給所述后續(xù)處理級;延遲信號捕捉元件,可用于在遲于所述不延遲捕捉時間的延遲捕捉時間捕捉所述處理邏輯輸出信號的延遲值;糾錯邏輯,可用于檢測所述處理邏輯輸出信號的所述延遲值中的隨機(jī)差錯的出現(xiàn),從而確定所述檢測的隨機(jī)差錯是否可利用所述糾錯碼糾正,并且或者產(chǎn)生差錯校驗(yàn)延遲值或者表明所述檢測的隨機(jī)差錯不可糾正;比較器,可用于將所述不延遲值與所述差錯校驗(yàn)延遲值比較,以便檢測所述處理邏輯輸出信號在所述不延遲捕捉時間之后的時間的變化,所述變化表明使所述處理邏輯因此在所述不延遲捕捉時間未完成所述處理操作的系統(tǒng)差錯,或者表明所述不延遲值中的隨機(jī)差錯;以及差錯修復(fù)邏輯,可用于在所述比較器檢測到所述處理邏輯輸出信號的所述變化時執(zhí)行差錯修復(fù)操作,通過在后續(xù)處理級中用所述差錯校驗(yàn)延遲值替代所述不延遲值,或者如果所述糾錯邏輯表明所述檢測的隨機(jī)差錯不可糾正,則通過發(fā)起所述處理操作和后續(xù)處理級的處理操作的重復(fù),來抑制所述不延遲值的使用。
      本技術(shù)認(rèn)識到,可直接監(jiān)測處理級本身的操作,以便查找它們出故障的限制條件。當(dāng)實(shí)際故障出現(xiàn)時,則可糾正這些故障,使得不正確操作完全不會產(chǎn)生。與本方法中的故障點(diǎn)的直接觀察相比,通過避免先前方法中過分謹(jǐn)慎的性能余量所得到的優(yōu)點(diǎn)不只是補(bǔ)償當(dāng)故障出現(xiàn)時恢復(fù)系統(tǒng)所消耗的附加時間及功率。故意允許這種處理差錯出現(xiàn)、使得關(guān)鍵通路無法滿足其定時要求,這在本技術(shù)領(lǐng)域中是很反直覺的,在本技術(shù)領(lǐng)域中,通常是耗費(fèi)大量努力來確保所有關(guān)鍵通路始終滿足其定時要求。
      此外,本發(fā)明認(rèn)識到,延遲值中的隨機(jī)差錯可通過部署在數(shù)據(jù)處理操作的關(guān)鍵通路之外的糾錯邏輯來檢測和糾正。這樣,當(dāng)比較器沒有檢測到系統(tǒng)處理差錯時,糾錯邏輯對計(jì)算的快速進(jìn)行沒有負(fù)面影響。但是,在處理差錯實(shí)際上被比較器檢測到的情況下,可供差錯修復(fù)邏輯用來確保計(jì)算向前進(jìn)行的延遲值是一個可靠值,對它已經(jīng)進(jìn)行了隨機(jī)差錯校驗(yàn)以及在適當(dāng)之處已經(jīng)進(jìn)行了隨機(jī)差錯糾正。不管在延遲信號值的通路中是否存在糾錯邏輯,當(dāng)比較器檢測到處理差錯時,因執(zhí)行差錯修復(fù)操作的需要而在處理中存在延遲。因此,在允許修復(fù)故意引入的系統(tǒng)處理差錯的延遲信號捕捉元件的提供與糾正延遲信號值中的隨機(jī)差錯的糾錯編碼的應(yīng)用之間存在意外的協(xié)同作用。糾錯邏輯通過檢測和糾正隨機(jī)差錯而沒有明顯延遲計(jì)算的進(jìn)行,提供了改進(jìn)延遲值的可靠性的優(yōu)點(diǎn)。
      可以理解,處理邏輯執(zhí)行的處理操作可能是一種不尋常的處理操作,它例如在處理操作是具有不尋常操作數(shù)的乘法運(yùn)算或除法運(yùn)算的情況下導(dǎo)致輸入信號值相對輸出信號值改變。但是,根據(jù)一個優(yōu)選配置,處理邏輯執(zhí)行的處理操作是這樣一種操作,即,當(dāng)所述處理操作中沒有出現(xiàn)差錯時,處理邏輯輸出信號實(shí)際上等于處理級輸入值。
      例如,根據(jù)第一優(yōu)選配置,通常沒有改變輸入值的數(shù)據(jù)處理操作可以是存儲電路執(zhí)行的讀或?qū)懖僮鳌8鶕?jù)一個備選優(yōu)選配置,至少一個處理級由寄存器來執(zhí)行,以及所述處理操作是讀、寫或移動操作。根據(jù)其中輸出信號值應(yīng)當(dāng)?shù)扔谳斎胄盘栔档牧硪粋€備選優(yōu)選配置,至少一個處理級由復(fù)用器執(zhí)行,以及處理操作是復(fù)用操作。
      雖然本技術(shù)適用于同步和異步數(shù)據(jù)處理電路,但本發(fā)明很適合其中多個處理級是同步流水線內(nèi)各個流水線級的同步數(shù)據(jù)處理電路。
      可以理解,各種不同的糾錯碼可用于對輸入值進(jìn)行糾錯編碼,例如線性分組碼、卷積碼或特播碼。但是,對于其中輸出值實(shí)質(zhì)上等于處理邏輯的輸入值的配置,優(yōu)選的是,利用漢明碼對輸入值進(jìn)行糾錯編碼,以及差錯修復(fù)邏輯利用所述漢明碼執(zhí)行所述糾正和所述檢測。漢明碼實(shí)現(xiàn)起來簡單,并且適合于檢測和糾正例如通常由SEU產(chǎn)生的那些單位差錯。
      雖然一些優(yōu)選配置包括諸如讀/寫操作和數(shù)據(jù)移動操作之類的值保持處理操作,但是在備選優(yōu)選配置中,處理邏輯執(zhí)行的處理操作是值改變操作,對于這種操作,即使當(dāng)所述處理操作中沒有出現(xiàn)差錯時,處理邏輯輸出信號也可能不同于所述處理級輸入值。因此,本技術(shù)適合應(yīng)用于諸如加法器、乘法器和移位器之類的處理邏輯元件。
      在處理操作是值改變處理操作的配置中,優(yōu)選的是,利用包括下列各項(xiàng)之一的算術(shù)碼對輸入值進(jìn)行糾錯編碼AN碼、剩余碼、反剩余碼或者剩余數(shù)字碼。這類算術(shù)碼有助于涉及算術(shù)運(yùn)算符的處理操作中的隨機(jī)差錯的檢測和糾正。
      可以理解,可單獨(dú)依靠比較器來檢測系統(tǒng)差錯的存在。但是,在優(yōu)選配置中,集成電路包括元穩(wěn)定性檢測器,可用于檢測不延遲值中的元穩(wěn)定性,以及若發(fā)現(xiàn)為元穩(wěn)定的,則觸發(fā)差錯修復(fù)邏輯來抑制不延遲值的使用。
      經(jīng)由比較器檢測到系統(tǒng)差錯出現(xiàn)之后,有各種不同方式可對它進(jìn)行糾正或補(bǔ)償。在一個優(yōu)選類型的實(shí)施例中,差錯恢復(fù)邏輯可用于采用差錯校驗(yàn)延遲值取代不延遲值作為處理級輸出信號。當(dāng)用于即使在差錯出現(xiàn)并要求補(bǔ)償?shù)那闆r下確保數(shù)據(jù)處理操作的向前進(jìn)行時,采用從差錯校驗(yàn)延遲值樣本提取的正確值取代已知的缺陷處理級輸出信號是強(qiáng)烈推薦的。
      一個優(yōu)選配置是這樣的,其中,差錯修復(fù)邏輯用于迫使延遲值被存儲在不延遲鎖存器中替代不延遲值。
      雖然本技術(shù)適用于同步和異步數(shù)據(jù)處理電路,但是本發(fā)明很適合于其中在處理級內(nèi)的處理操作由不延遲時鐘信號驅(qū)動的同步數(shù)據(jù)處理電路。
      在其中處理級由不延遲時鐘信號驅(qū)動的系統(tǒng)的上下文中,差錯修復(fù)邏輯可通過選通不延遲時鐘信號以提供充分時間讓后續(xù)處理級從不正確的不延遲值的輸入恢復(fù)并改為采用正確的差錯校驗(yàn)延遲值,來利用這幫助從差錯中恢復(fù)。
      在利用不延遲時鐘信號的實(shí)施例的上下文中,捕捉時間可從不延遲時鐘信號和源自不延遲時鐘信號的延遲時鐘信號中的預(yù)定相位點(diǎn)得到。不延遲捕捉與延遲捕捉之間的延遲可由這兩個時鐘信號之間的相移來定義。
      對系統(tǒng)差錯的檢測以及從中恢復(fù)可用于各種不同的情況,但特別適合于其中希望根據(jù)這類差錯的檢測來動態(tài)控制集成電路的工作參數(shù)的情況。以反直覺的方式,本技術(shù)可用來控制工作參數(shù),使得系統(tǒng)以作為目標(biāo)比率保持的非零系統(tǒng)差錯率進(jìn)行工作,因?yàn)檫@可能對應(yīng)于無論在速度還是在功耗方面改進(jìn)的整體性能,甚至考慮了從系統(tǒng)和隨機(jī)差錯的出現(xiàn)中恢復(fù)所需的措施。
      可能改變的工作參數(shù)包括工作電壓、工作頻率、集成電路體偏壓(它控制門限電平)以及溫度等等。
      為了確保在延遲鎖存器中捕捉的數(shù)據(jù)始終正確,任何級的處理邏輯中的最大延遲的上限是這樣的,使得在任何工作點(diǎn),任何級的處理邏輯的延遲不可超過時鐘周期加上延遲捕捉被延遲的量的和。作為任何處理延遲的下限,存在以下要求任何級的處理邏輯應(yīng)當(dāng)具有超過延遲捕捉在不延遲捕捉之后的時間的處理時間,從而確保沿短通路傳播的后續(xù)數(shù)據(jù)不會不適當(dāng)?shù)負(fù)p壞延遲捕捉值。這可通過根據(jù)需要采用一個或多個延遲元件插入短通路來保證。
      本技術(shù)適用于各種各樣不同類型的集成電路、如通用數(shù)字處理電路,但特別適合其中處理級是數(shù)據(jù)處理器或微處理器的一部分的系統(tǒng)。
      為了有助于控制算法用于控制工作參數(shù),優(yōu)選實(shí)施例包括差錯計(jì)數(shù)器電路,它可用于存儲對應(yīng)于與不延遲值相比的延遲值的變化的差錯的檢測計(jì)數(shù)。這個差錯計(jì)數(shù)器可通過軟件來實(shí)現(xiàn)以執(zhí)行工作參數(shù)的控制。
      可以理解,以上所述的延遲信號捕捉元件和不延遲信號捕捉元件可具有各種各樣不同的形式。具體來說,這些可被認(rèn)為包括觸發(fā)器、D型鎖存器、時序元件、存儲單元、寄存器元件、讀出放大器、它們的組合以及各種其它能夠存儲信號值的存儲器件的形式的實(shí)施例。
      從另一方面來看,本發(fā)明提供一種控制用于執(zhí)行數(shù)據(jù)處理的集成電路的方法,所述方法包括以下步驟從多個處理級中的至少一個處理級提供處理級輸出信號作為后續(xù)處理級的處理級輸入信號,所述至少一個處理級用于采用處理邏輯對至少一個編碼輸入值執(zhí)行處理操作,從而產(chǎn)生處理邏輯輸出信號,所述編碼輸入值是糾錯碼已經(jīng)應(yīng)用到其中的輸入值;在不延遲捕捉時間捕捉所述處理邏輯輸出信號的不延遲值,所述不延遲值在所述不延遲捕捉時間之后被提供給所述后續(xù)處理級,作為所述處理級輸出信號;在遲于所述不延遲捕捉時間的延遲捕捉時間捕捉所述處理邏輯輸出信號的延遲值;利用糾錯邏輯檢測所述處理邏輯輸出信號的所述延遲值中的隨機(jī)差錯的出現(xiàn),從而確定所述檢測的隨機(jī)差錯是否可利用所述糾錯碼糾正,并且或者產(chǎn)生差錯校驗(yàn)延遲值或者表明所述檢測的隨機(jī)差錯不可糾正;將所述不延遲值與所述差錯校驗(yàn)延遲值比較,以便在所述不延遲捕捉時間之后的時間檢測所述處理邏輯輸出信號的變化,所述變化表明使所述處理邏輯因此在所述不延遲捕捉時間未完成所述處理操作的系統(tǒng)差錯,或者表明所述不延遲值中的隨機(jī)差錯;以及在檢測到所述變化時,利用差錯修復(fù)邏輯執(zhí)行差錯修復(fù)操作,從而通過在后續(xù)處理級中用所述差錯校驗(yàn)延遲值替代所述不延遲值,或者如果所述糾錯邏輯表明所述檢測的隨機(jī)差錯不可糾正,則通過發(fā)起所述處理操作和后續(xù)處理級的處理操作的重復(fù),來抑制所述不延遲值的使用。
      現(xiàn)在僅通過示例、參照附圖來描述本發(fā)明的實(shí)施例,其中

      圖1示意說明本技術(shù)應(yīng)用到其中的多個處理級;圖2是電路框圖,示意說明用于本技術(shù)的電路;圖3是電路圖,示意說明不延遲鎖存器和延遲鎖存器以及關(guān)聯(lián)的比較器和差錯恢復(fù)邏輯;圖4A和圖4B是流程圖,示意說明圖1的電路的工作;圖5示意說明包括快速讀取機(jī)構(gòu)和慢速讀取機(jī)構(gòu)的存儲電路;圖6說明圖5的電路的一部分的一種備選電路配置;
      圖7是流程圖,示意說明圖5的存儲電路的工作;圖8說明流水線總線,其中包括總線級之間的不延遲鎖存器和延遲鎖存器;圖9是流程圖,示意說明圖8的流水線總線的工作;圖10示意說明用于控制微處理器、經(jīng)過不延遲鎖存和輸出以及延遲鎖存和輸出的控制信號的產(chǎn)生;圖11是流程圖,示意說明圖10的電路的工作的一個實(shí)例;圖12說明一種處理流水線,包括不延遲鎖存器和延遲鎖存器,其中那些延遲鎖存器在較低工作功率期間再用作數(shù)據(jù)保持鎖存器;圖13是流程圖,示意說明圖12的電路的工作;圖14示意說明糾錯和延遲鎖存器應(yīng)用到其中的多個處理級;圖15示意說明經(jīng)過僅傳遞當(dāng)沒有出現(xiàn)差錯時從輸入到輸出未改變的數(shù)據(jù)值的通道的數(shù)據(jù)的糾錯;圖16示意說明如何對諸如加法器、乘法器或移位器之類的值改變邏輯元件執(zhí)行糾錯;圖17是流程圖,示意說明圖14的電路的工作;圖18示意說明延遲和不延遲鎖存器可如何用于控制處理流水線中的時鐘信號的相對相位;圖19和圖20示意說明從差錯中恢復(fù)時暫停和空泡插入的相應(yīng)使用;以及圖21說明在處理級之間使用的不延遲和延遲鎖存器,其中的延遲鎖存器再用作串行掃描鏈鎖存器。
      圖1說明集成電路的一部分,它可能是如ARM limited ofCambridge,England制造的ARM處理器核心之類的處理器核心中的同步流水線的一部分。同步流水線由多個相似處理級組成。第一級包括處理邏輯2和其后跟隨的觸發(fā)器形式的不延遲鎖存器4以及比較器6和延遲鎖存器8。本文所用的術(shù)語“鎖存器”包括可用于與觸發(fā)、時鐘及其它要求無關(guān)地存儲信號值的任何電路元件。后續(xù)處理級以類似方式組成。不延遲時鐘信號10驅(qū)動處理邏輯和所有處理級內(nèi)的不延遲鎖存器4作為同步流水線的組成部分同步工作。延遲時鐘信號12提供給各個處理級的延遲鎖存器8。延遲時鐘信號12是不延遲時鐘信號10的相移形式。相移的程度控制不延遲鎖存器4對處理邏輯2的輸出的捕捉與稍后由延遲鎖存器8執(zhí)行的處理邏輯2的輸出的捕捉之間的延遲周期。如果處理邏輯2在給定現(xiàn)有不延遲時鐘信號頻率、提供給集成電路的工作電壓、體偏壓、溫度等的限制內(nèi)工作,則處理邏輯2到不延遲鎖存器4被觸發(fā)以捕捉其值時已經(jīng)完成它的處理操作。因此,當(dāng)延遲鎖存器8稍后捕捉處理邏輯2的輸出時,這將具有與在不延遲鎖存器4內(nèi)捕捉的值相同的值。因此,比較器6將檢測到延遲周期中沒有出現(xiàn)變化,以及差錯恢復(fù)操作不會被觸發(fā)。相反,如果集成電路的工作參數(shù)使得處理邏輯2到不延遲鎖存器4捕捉其值時未完成它的處理操作,則延遲鎖存器8將捕捉不同的值,這將由比較器6檢測,從而迫使差錯恢復(fù)操作被執(zhí)行。將會看到,差錯恢復(fù)操作可以是采用存儲于延遲鎖存器8內(nèi)的延遲值取代不延遲鎖存器4的輸出,該輸出在其捕捉之后的時間中被提供給后續(xù)處理級。這個延遲值還可能被迫存儲在不延遲鎖存器4中,取代其中存儲的先前錯誤捕捉的值。
      元穩(wěn)定性檢測器7用來檢測不延遲鎖存器4的輸出中的元穩(wěn)定性,即不是處于明確定義的邏輯狀態(tài)。如果檢測到這種元穩(wěn)定性,則這被當(dāng)作差錯來處理,且采用延遲鎖存器6的值來代替。
      在檢測到差錯時,整個流水線可能通過在附加延遲周期里選通不延遲時鐘信號10而被暫停,以便提供充分時間讓后續(xù)處理級中的處理邏輯正確地響應(yīng)提供給它的已校正輸入信號值?;蛘?,根據(jù)采用逆流體系結(jié)構(gòu)的標(biāo)準(zhǔn)流水線處理技術(shù),通過把空泡插入流水線,可以暫停上游處理級而允許后續(xù)處理級繼續(xù)工作(參見圖2的空泡和刷新鎖存器)。另一個備選方案是,整個處理流水線可采用被推入各級的不延遲鎖存器的延遲鎖存器值來重置,以及處理被恢復(fù)。延遲鎖存器值代替錯誤值來再用而不是嘗試重新計(jì)算,這確保了即使已經(jīng)出現(xiàn)差錯,也會向前進(jìn)行各個處理操作。
      存在與處理級內(nèi)處理邏輯耗用的處理時間與不延遲捕捉時間和延遲捕捉時間之間的延遲之間的關(guān)系相關(guān)的約束。具體來說,任何處理級的最小處理時間不應(yīng)當(dāng)小于此延遲,以便確保所捕捉的延遲值未被從短延遲處理級輸出的新數(shù)據(jù)破壞??赡苄枰捎妙~外的延遲元件插入短延遲處理級來確保它們不小于這個最小處理時間。在另一個極端,需要確保在任何工作參數(shù)的任何工作點(diǎn)可能出現(xiàn)的處理級內(nèi)處理邏輯的最大處理延遲不大于正常不延遲工作時鐘周期與延遲值之和,以便確保在延遲值鎖存器中捕捉的延遲值是穩(wěn)定和正確的。
      有多種備選方式可控制系統(tǒng)調(diào)整功耗和性能。根據(jù)一個配置,提供差錯計(jì)數(shù)器電路(未示出)對比較器6進(jìn)行的不相等檢測的數(shù)量計(jì)數(shù)。這個所檢測且從中恢復(fù)的差錯的計(jì)數(shù)可用于利用硬件實(shí)現(xiàn)或軟件實(shí)現(xiàn)的算法來控制工作參數(shù)。計(jì)數(shù)器是軟件可讀的。無論在最大速度還是最低功耗方面的最佳整體性能可通過有意采用保持差錯的非零水平的參數(shù)操作集成電路來實(shí)現(xiàn)。來自在這類情況中操作不謹(jǐn)慎工作參數(shù)的增益超過了從差錯中恢復(fù)的需要所導(dǎo)致的損失。
      根據(jù)一個備選配置,硬件計(jì)數(shù)器作為性能監(jiān)測模塊提供,并且可用于跟蹤有用的工作以及差錯恢復(fù)工作。具體來說,計(jì)數(shù)器計(jì)算用來進(jìn)行所執(zhí)行的處理操作的有用指令的數(shù)目,并且還計(jì)算被運(yùn)行以執(zhí)行差錯恢復(fù)的指令和空泡的數(shù)目。軟件可用于讀取硬件計(jì)數(shù)器,以及使用計(jì)數(shù)值適當(dāng)?shù)仄胶獠铄e恢復(fù)的開銷以及它對系統(tǒng)性能的影響與通過以非零差錯率運(yùn)行集成電路所實(shí)現(xiàn)的降低的功耗。
      圖2是電路框圖,示意說明用于本技術(shù)的電路。圖2的上部說明各處理級中提供的電路元件,即,不延遲鎖存器4、延遲鎖存器8和比較器6。元穩(wěn)定性檢測器7用來檢測不延遲鎖存器4的輸出中的元穩(wěn)定性,并且這還觸發(fā)差錯信號的產(chǎn)生。來自多個這類級的差錯信號提供給“或”門100的相應(yīng)輸入,在其中,如果在任何處理級檢測到差錯,則產(chǎn)生全局差錯信號。全局差錯信號可用來觸發(fā)刷新和空泡插入信號,如圖所示。電路102檢測差錯信號本身是否為元穩(wěn)定的。差錯信號采用以高電壓表示的正偏斜鎖存器以及以低電壓表示的負(fù)偏斜鎖存器來鎖存。如果這兩者的鎖存值不符,則這表明差錯信號是元穩(wěn)定的,以及應(yīng)急信號被取出。通過在抽樣前對差錯信號進(jìn)行鎖存以及等待整個時鐘周期(即串聯(lián)的兩個鎖存器),應(yīng)急信號為元穩(wěn)定的概率是可忽略的。重要的是,如果應(yīng)急信號被取出,則來自延遲鎖存器的恢復(fù)值可能因差錯信號的元穩(wěn)定性而受到破壞。在這種情況下,還使指令無效,并且沒有向前進(jìn)行。因此,刷新流水線重新啟動指令以及降低時鐘頻率來確保差錯信號在重試同一指令時不是元穩(wěn)定的(否則可能導(dǎo)致重試的無限循環(huán))。
      圖3是電路,更詳細(xì)地說明不延遲鎖存器、延遲鎖存器、比較器以及差錯恢復(fù)電路的至少一部分??梢钥吹剑谎舆t鎖存器4為兩個鎖存器14、16所提供的觸發(fā)器的形式。延遲鎖存器8為單反饋元件的形式?!爱惢颉遍T18用作比較器。差錯信號20自圖3的電路出現(xiàn),以及可如前面所述被提供給差錯計(jì)數(shù)器電路或者提供給其它工作參數(shù)調(diào)整電路或系統(tǒng)。差錯信號20用來切換復(fù)用器22,它迫使存儲在延遲鎖存器8中的延遲值被存儲在不延遲鎖存器4的鎖存器14中。元穩(wěn)定性檢測電路24用來檢測不延遲鎖存器4中的元穩(wěn)定性的出現(xiàn),并且還利用這來觸發(fā)差錯信號,該差錯信號將導(dǎo)致錯誤的元穩(wěn)定值被存儲在延遲鎖存器8中的延遲值取代。
      圖4A和圖4B是流程圖,示意說明圖1、圖2和圖3的電路的工作。
      在步驟26,來自級i的處理邏輯在時間Ti產(chǎn)生其輸出信號。在步驟28,這由不延遲鎖存器捕捉,并形成不延遲值。在步驟30,來自不延遲鎖存器的不延遲值開始被傳遞給后續(xù)處理級i+1,后續(xù)處理級根據(jù)這個值開始處理。如果檢測到差錯,則這個處理的結(jié)果可能是錯誤的并且需要從中恢復(fù)。
      步驟32允許處理邏輯繼續(xù)在另一個時間周期、即延遲時間里處理,以便在時間Ti+d產(chǎn)生輸出信號。這個輸出信號在步驟34在延遲鎖存器中被鎖存。延遲鎖存器以及不延遲鎖存器中的值在步驟36進(jìn)行比較。如果它們相等,則沒有出現(xiàn)差錯,正常處理在步驟37繼續(xù)進(jìn)行。如果它們不相等,則這表明當(dāng)不延遲鎖存器捕捉其值并開始將那個值提供給后續(xù)處理級i+1時,處理邏輯在時間Ti未完成其處理操作。因此,差錯狀況已經(jīng)出現(xiàn),并要求糾正。在步驟38,這個糾正通過將流水線空泡轉(zhuǎn)送到級i之后的流水線級中開始。在步驟40,在前級至級i+1全部暫停。這包括其中出現(xiàn)差錯的級i。在步驟42,級i+1利用延遲鎖存器值作為它的輸入重新執(zhí)行其操作。在步驟44,集成電路的工作參數(shù)可根據(jù)需要修改。舉例來說,工作頻率可減小,工作電壓增加,體偏壓增加,等等。處理則繼續(xù)進(jìn)行到步驟46。
      如果檢測到不足數(shù)量的差錯,則工作參數(shù)控制電路和算法可有意調(diào)整工作參數(shù),從而降低功耗以及引起非零差錯率。
      圖5說明包含存儲單元陣列102的存儲器100。在這個實(shí)例中,圖解說明了單行存儲單元,但本技術(shù)領(lǐng)域的人員熟悉,這類存儲單元陣列通常是包含成千上萬存儲單元的大型二維陣列。根據(jù)常規(guī)存儲器操作,解碼器104用來接收待訪問的存儲地址,以及對這個存儲地址解碼,以便激活字線106之一。字線用于將那條線中的存儲單元102耦合到相應(yīng)的位線對108。根據(jù)所涉及的存儲單元102中存儲的位值,這將引起這時與它耦合的位線108中的電變化(例如電壓和/或電流的變化),該變化由讀出放大器110讀出。讀出放大器110的輸出在第一時間存儲于不延遲鎖存器112內(nèi),并且隨后在延遲時間存儲于延遲鎖存器114內(nèi)。存儲在不延遲鎖存器112內(nèi)的不延遲值經(jīng)由復(fù)用器116在延遲值被存儲到延遲鎖存器114之前直接傳遞出去到另一個處理電路118。當(dāng)已經(jīng)在延遲鎖存器114中捕捉延遲值之后,比較器120用來比較不延遲值和延遲值。如果它們不相等,則延遲值由復(fù)用器116轉(zhuǎn)變成對于所涉及的特定位來自存儲器100的輸出值。抑制信號也從比較器120發(fā)送到另一個處理電路118,由該另一個處理電路118根據(jù)這時已經(jīng)被替換的錯誤不延遲值來抑制處理。這個實(shí)例中的這種抑制采取控制提供給另一個處理電路118的時鐘信號CLK的形式,從而延長所涉及的時鐘周期以及延遲那個另一個處理電路的新結(jié)果的鎖存,直至延遲值有機(jī)會經(jīng)過所涉及的處理電路到達(dá)那個另一個處理電路的輸出端的鎖存器時。
      可以看到,讀出放大器110和不延遲鎖存器112形成快速讀取機(jī)構(gòu)的一部分。讀出放大器110和延遲鎖存器114形成慢速讀取機(jī)構(gòu)的一部分。在大多數(shù)情況下,在不延遲鎖存器112內(nèi)鎖存的快速讀取結(jié)果將是正確的,并且不需要校正動作。在少量情況下,快速讀取結(jié)果將不同于延遲鎖存器114中鎖存的慢速讀取結(jié)果,以及在這種情況下,慢速讀取結(jié)果被認(rèn)為正確,以及用來取代快速讀取結(jié)果,其中基于快速讀取結(jié)果的處理被抑制。與糾正錯誤的快速讀取結(jié)果的較少發(fā)生的需要關(guān)聯(lián)的損失超過了通過更接近其極限狀況來運(yùn)行存儲器100所實(shí)現(xiàn)的提高的性能(在速度、較低電壓工作、較低能量消耗和/或其它性能參數(shù)方面)進(jìn)行的補(bǔ)償。
      圖6說明圖5的電路的組成部分的變體。在這個變體中,提供兩個讀出放大器110’和110”。這些不同的讀出放大器110’、110”被制作成具有不同的工作速度,其中一個110’較快而不太可靠,另一個110”則較慢但更可靠。這些不同的特性可通過改變讀出放大器110’、110”的參數(shù)、例如諸如晶體管大小、摻雜等級、增益等構(gòu)造參數(shù)來實(shí)現(xiàn)。比較器120’用來比較這兩個輸出。來自快速讀出放大器110’的輸出通常在可用的慢速讀出放大器110”的輸出之前經(jīng)由復(fù)用器116’傳出。當(dāng)慢速讀出放大器110”的輸出可用并且比較器120檢測到這不等于快速讀出放大器110’的輸出時,它控制復(fù)用器116’將輸出值轉(zhuǎn)變成慢速讀出放大器110”所產(chǎn)生的值。比較器120還觸發(fā)抑制信號的產(chǎn)生,使得基于錯誤的快速讀取結(jié)果的下游處理被抑制。
      圖7是流程圖,說明圖5的電路的工作。在步驟122,對地址解碼,從而使相應(yīng)的存儲單元利用字線所傳遞的信號被耦合到其相鄰的位線。在步驟124,所選存儲單元中所存儲的位值及其補(bǔ)碼被驅(qū)動到位線對上。這產(chǎn)生位線中的電流以及位線的電壓變化。讀出放大器110響應(yīng)所檢測電流和/或電壓電平變化。
      在步驟126,快速數(shù)據(jù)讀取機(jī)構(gòu)對于在那個時間從存儲單元輸出的值進(jìn)行抽樣。在步驟128,這個快速讀取數(shù)據(jù)值被傳遞給后續(xù)處理電路,以便在假定它是正確的情況下作進(jìn)一步處理。在步驟130,慢速數(shù)據(jù)讀取機(jī)構(gòu)對慢速讀取數(shù)據(jù)值進(jìn)行抽樣。步驟132比較快速讀取值和慢速讀取值。如果它們相同,則正常處理在步驟134繼續(xù)進(jìn)行。但是,如果抽樣值不同,則步驟136用于向快速讀取值已被傳遞到的其它電路發(fā)出抑制信號,并且還向那些其它電路發(fā)出慢速讀取值取代快速讀取值,使得校正的處理可以進(jìn)行。
      圖8說明本技術(shù)在流水線總線140中的使用。流水線總線140包含多個鎖存器142,它們用來存儲沿總線傳遞的數(shù)據(jù)值。作為這種流水線總線140的一個實(shí)例,已知的是由ARM Limited of Cambridge,England設(shè)計(jì)的AXI總線。在這種配置中,沿流水線總線140傳遞的數(shù)據(jù)值的目的地是數(shù)字信號處理電路144。這個數(shù)字信號處理(DSP)電路144本身沒有實(shí)現(xiàn)前面所述的不延遲鎖存和延遲鎖存技術(shù)。在備選配置中,沿流水線總線傳遞的數(shù)據(jù)值的目的地可能是DSP電路之外的器件,例如其本身沒有實(shí)現(xiàn)延遲和不延遲鎖存技術(shù)的標(biāo)準(zhǔn)ARM處理器核心。
      與每個不延遲鎖存器142關(guān)聯(lián)的是相應(yīng)的延遲鎖存器146。這些延遲鎖存器146用于對總線上的信號值進(jìn)行抽樣,其時間遲于這由與其對應(yīng)的不延遲鎖存器142抽樣并鎖存的時間。因此,沿總線傳遞的數(shù)據(jù)值因無論什么原因(例如所使用的工作電壓過低、時鐘速度過高、來自相鄰數(shù)據(jù)值的耦合影響等)導(dǎo)致的延遲將導(dǎo)致不延遲鎖存器142與延遲鎖存器146中所存儲的值之間出現(xiàn)差異的可能性。流水線總線140中的最后級表示為包括比較器147,它比較不延遲值和延遲值。如果它們不相等,則延遲值用來取代不延遲值,以及基于不延遲值的處理被抑制,使得可實(shí)行校正(總線時鐘周期可被延伸)。可以理解,這些比較器和復(fù)用電路元件將沿流水線總線140在每個鎖存器級提供,但為了簡潔起見,它們在圖8中被省略。
      由于DSP電路144本身不支持不延遲和延遲鎖存機(jī)制與其關(guān)聯(lián)的校正可能性,因此提供給DSP電路144的數(shù)據(jù)值經(jīng)過了任何必要校正是重要的。為此,在流水線總線140的末端提供了附加緩沖鎖存器級148,使得提供給那個鎖存器以及附屬DSP電路144的數(shù)據(jù)值所需的任何校正可在DSP電路144對數(shù)據(jù)值起作用之前被執(zhí)行。緩沖鎖存器148可設(shè)置成充分接近DSP電路144,使得不存在導(dǎo)致從緩沖鎖存器148傳遞到DSP電路144的數(shù)據(jù)值中差錯的不足的可用傳播時間等問題。
      可以理解,各個不延遲鎖存器142之間的總線連接可被認(rèn)為是僅傳遞未改變數(shù)據(jù)的處理邏輯的形式。這樣,圖8的流水線總線實(shí)施例與前面所述的實(shí)施例(例如圖1)之間的等效對于本技術(shù)領(lǐng)域的技術(shù)人員是非常明顯的。
      圖9是流程圖,說明圖8的操作。在級150,從總線線路中捕捉不延遲信號值。在步驟152,不延遲值則被傳遞到下一個總線流水線級。在步驟154,相應(yīng)的延遲鎖存器146捕捉延遲總線信號。在步驟156,比較器147將延遲值與不延遲值進(jìn)行比較。如果它們相等,則正常處理在步驟158繼續(xù)進(jìn)行。如果兩個比較的值不相等,則步驟160用來延遲總線時鐘,以及利用圖8所示的復(fù)用器采用延遲值取代不延遲值。
      圖10說明利用本技術(shù)的另一個示例實(shí)施例。在這個示例實(shí)施例中,來自處理器核心中的指令寄存器的指令在指令鎖存器162中被鎖存。從這個指令鎖存器162,指令被傳遞給其中包括微碼ROM的解碼器164,用于產(chǎn)生處理器控制信號的適當(dāng)集合,這些處理器控制信號存儲在不延遲控制信號鎖存器166中,以及隨后用來控制由處理器核心根據(jù)指今鎖存器162中鎖存的指令所執(zhí)行的處理。從解碼器164輸出的控制信號也在它們被鎖存在不延遲控制信號鎖存器166中時稍后的時間被鎖存在延遲控制信號鎖存器168中。延遲控制信號值和不延遲控制信號值則可進(jìn)行比較。如果它們不相等,則這表明需要校正動作。抑制操作通過檢測到這種差異來觸發(fā),并用于根據(jù)不適當(dāng)?shù)逆i存器控制信號值來暫停后續(xù)處理??赡苁窃谀承┣闆r下,唯一的有效恢復(fù)選項(xiàng)是總體上重置處理器。這可能是可接受的。在其它情況下,控制信號中的差錯可能使得不太急劇的抑制和恢復(fù)機(jī)制是可行的。舉例來說,可能仍然未對特定的錯誤控制信號起作用,例如在多周期程序指令的情況下,其中某些處理操作直到多周期指令的整體執(zhí)行中的稍后時間才開始。這種情況的一個實(shí)例是乘法-累加運(yùn)算,其中,在最終累加進(jìn)行之前,乘法部分耗用若干時鐘周期。如果在與累加關(guān)聯(lián)的控制信號中存在差錯,并且累加實(shí)際上并不需要,而只是純乘法,則有可能通過在加法器設(shè)法執(zhí)行累加運(yùn)算之前校正應(yīng)用于累加器的控制信號,來抑制累加。
      圖11說明圖10的電路的工作的一個實(shí)例。在步驟170,乘法-累加控制信號從解碼器164(微碼ROM)中被讀取。在步驟172,這個乘法-累加控制信號被鎖存在不延遲控制信號鎖存器166中,并輸出到處理器核心中的各種處理元件。在步驟174,乘法操作數(shù)從寄存器文件中被讀取,并開始乘法運(yùn)算。在步驟176,由指令解碼器164輸出的控制信號由延遲控制信號鎖存器168重新抽樣。在步驟178,不延遲控制信號和延遲控制信號進(jìn)行比較。如果它們相等,則正常處理在步驟180繼續(xù)進(jìn)行。但是,如果它們不相等,則處理進(jìn)入步驟182,在其中確定乘法運(yùn)算是否已經(jīng)完成。如果乘法運(yùn)算已經(jīng)完成,則錯誤累加運(yùn)算將已經(jīng)開始,以及恢復(fù)的最佳選項(xiàng)是在步驟184在總體上重置系統(tǒng)。但是,如果乘法運(yùn)算仍然在進(jìn)行,則步驟186可用來重置加法器并取消累加運(yùn)算,其中的預(yù)期乘法運(yùn)算輸出結(jié)果在步驟188產(chǎn)生,如指令鎖存器162中所存儲的程序指令最初預(yù)計(jì)的那樣。
      圖12說明圖1所示的電路的修改。在這個實(shí)施例中,延遲鎖存器190用于數(shù)據(jù)保持(氣球)鎖存器的附加功能,供操作的待機(jī)/睡眠模式(低功耗模式)期間使用。在正常處理操作過程中,延遲鎖存器190的功能如前面所述。但是,當(dāng)睡眠控制器192用于發(fā)起進(jìn)入操作的低功耗模式時,它停止不延遲時鐘以及延遲時鐘,使得延遲鎖存器190全部存儲與其相應(yīng)的不延遲鎖存器對應(yīng)的數(shù)據(jù)值。在這點(diǎn),不延遲鎖存器及關(guān)聯(lián)處理電路的電壓電源被移去,使得它們斷電并丟失其狀態(tài)。但是,提供給不延遲鎖存器190的電壓被保持,使得它們用來保持所涉及的處理電路的狀態(tài)。當(dāng)系統(tǒng)退出低功耗模式時,處理邏輯和不延遲鎖存器在比較器檢測到不延遲鎖存器與延遲鎖存器190中的值的差異時再次被加電,它觸發(fā)采用關(guān)聯(lián)延遲鎖存器190中保存的正確值取代不延遲鎖存器中的錯誤值。可以理解,由于延遲鎖存器190受到比它們的不延遲對應(yīng)物更不嚴(yán)格的定時要求,因此它們可按照它們可能具有低速操作但在低功耗模式中更好地適合低功耗的方式來形成(例如產(chǎn)生更慢的轉(zhuǎn)換但具有降低的泄漏電流的高門限電壓)。這樣,在正常處理中使用的糾錯延遲鎖存器可在低功耗模式中再用作數(shù)據(jù)保持鎖存器,從而有利地減小所涉及電路的整體門計(jì)數(shù)。
      圖13是流程圖,示意說明圖12的電路的工作。在步驟194,集成電路處于其正常工作處理模式。在步驟196,處理邏輯級在不延遲時間產(chǎn)生輸出信號。在步驟198,不延遲鎖存器捕捉那個輸出信號。在步驟200,不延遲鎖存器中的不延遲信號被傳遞到下一個處理級。在步驟202,在延遲時間來自處理級的輸出被產(chǎn)生,并可用于由延遲鎖存器進(jìn)行的捕捉。在步驟204,集成電路被觸發(fā)從而采用低功耗模式,以及速度控制器192用于發(fā)起處理電路的斷電,同時保持到延遲鎖存器190的電力。在步驟206,延遲鎖存器190捕捉延遲信號值。情況可能是,由延遲鎖存器在步驟206進(jìn)行的延遲信號值的捕捉在步驟204中轉(zhuǎn)換到低功率模式之前發(fā)生。在步驟208,不延遲鎖存器斷電,以及它的存儲值丟失。集成電路可在長時間周期保持這種狀態(tài)。需要時,步驟210觸發(fā)睡眠控制器192退出低功耗模式,并回復(fù)到工作模式。在步驟212,對不延遲鎖存器和關(guān)聯(lián)處理邏輯恢復(fù)電力,其中在延遲鎖存器190中的延遲數(shù)據(jù)值用來根據(jù)需要重新裝入流水線級,以便使系統(tǒng)恢復(fù)到它在進(jìn)入低功耗模式之前的狀況。
      圖14示意說明糾錯控制和延遲鎖存器應(yīng)用到其中的多個處理級。處理級形成可作為處理器核心中的同步流水線的一部分、通信總線的一部分或存儲器系統(tǒng)的一部分的集成電路的一部分。第一處理級包括用于數(shù)據(jù)傳遞的通道或處理邏輯1014、不延遲鎖存器1016、延遲鎖存器1018以及比較器1024,比較器1024比較延遲鎖存器和不延遲鎖存器的輸出并且向復(fù)用器1020輸出控制信號,確定延遲信號值還是不延遲信號值作為輸入提供給后續(xù)處理級或通道1016。通道/邏輯1014和不延遲鎖存器1016由不延遲時鐘信號驅(qū)動,而延遲鎖存器1019則由作為不延遲時鐘信號的相移形式的延遲時鐘信號驅(qū)動。
      如果比較器1024檢測到不延遲信號值與延遲信號值之間的差值,則這表明在元件1014表示處理邏輯的情況下處理操作在不延遲捕捉時間未完成,或者表明在元件1014表示數(shù)據(jù)通道的情況下來自前一個流水線級的信號仍未到達(dá)當(dāng)前級。如果實(shí)際上檢測到這種差異,則延遲鎖存器1018中所存儲的值是更可靠的數(shù)據(jù)值,因?yàn)樗谔幚聿僮鞲赡芤淹瓿苫蛘邅碜郧耙患壍臄?shù)據(jù)更可能已經(jīng)通過數(shù)據(jù)通道到達(dá)時的稍后時間被捕捉。通過將結(jié)果從延遲鎖存器提供到下一個處理級1030,以及抑制后續(xù)處理級中的不延遲值的使用,計(jì)算的向前進(jìn)行可得到保證。但是,如果單事件干擾出現(xiàn)并損壞延遲值,則延遲鎖存器1018中存儲的延遲信號值的可靠性可能被折衷。單事件干擾實(shí)際上是脈沖,因此它可能剛好被不延遲鎖存器遺漏,但被延遲鎖存器拾取。作為單事件干擾的直接結(jié)果,這種單事件干擾將使比較器檢測延遲與不延遲值之間的差異,并且將損壞的延遲值傳播到后續(xù)處理級。損壞不延遲值的單事件干擾不會成為問題,因?yàn)樗鼘⒁鹨种棋e誤的不延遲值的使用并將延遲值傳送到后續(xù)級。
      通過提供檢錯模塊1026、糾錯模塊1028以及由檢錯模塊1026控制以便將延遲值從延遲鎖存器直接提供給比較器1024或者提供糾錯模塊1028所輸出的已糾錯值的復(fù)用器1022來提供數(shù)據(jù)完整性的交叉校驗(yàn),圖14的配置減小了損壞的延遲值經(jīng)過計(jì)算的可能性。在通道/邏輯單元1014的上游,八位數(shù)據(jù)凈荷經(jīng)過糾錯編碼,以及四個冗余位被添加到數(shù)據(jù)凈荷,從而形成十二位信號。十二位信號經(jīng)過通道/邏輯單元1014,以及它的值由不延遲鎖存器1016以及延遲鎖存器1018來捕捉。但是,從延遲鎖存器1018得到的信號的延遲值還作為輸入提供給檢錯模塊1026,它從12位糾錯編碼信號確定是否已經(jīng)出現(xiàn)影響延遲值的任何差錯。在一個備選配置中,提供另一個鎖存器以便將信號值提供給檢錯模塊1018,該模塊在略遲于延遲鎖存器1018的時間捕捉信號值。差錯校驗(yàn)必須在與延遲值被捕捉的相同時間或稍后時間對所捕捉的值來執(zhí)行,以便確保檢測到不延遲值的捕捉與延遲值的捕捉之間出現(xiàn)的任何隨機(jī)差錯。
      給定的糾錯碼能夠檢測預(yù)定數(shù)量的差錯以及糾正給定數(shù)量的差錯。因此,檢錯模塊1026檢測是否已經(jīng)出現(xiàn)任何差錯,以及如果是,則確定差錯的數(shù)量是否足夠小,使得它們?nèi)靠杉m正。如果檢測到可糾正差錯,則信號值提供給糾錯模塊1028,在其中利用糾錯碼來糾正差錯,以及糾正的延遲值提供給比較器1024。如果比較器1024確定糾正的延遲值不同于不延遲值,則差錯恢復(fù)程序被調(diào)用,使得不延遲值的進(jìn)一步傳播在后續(xù)處理級中被抑制,以及操作改用糾正的延遲值來進(jìn)行。另一方面,如果比較器1024確定糾正的延遲值與延遲值相同,則對于進(jìn)行計(jì)算存在兩種備選可能性。首先,差錯恢復(fù)機(jī)制仍然可被調(diào)用,使得不延遲值在后續(xù)處理級中被抑制,并由糾正的延遲值取代?;蛘撸捎诓谎舆t值被確定為正確(如通過不延遲值和糾正的延遲值的相等來證明),因此差錯恢復(fù)機(jī)制可被抑制(盡管檢測到延遲值中的差錯),從而允許不延遲值繼續(xù)通過后續(xù)處理級。但是,如果檢錯模塊1026在延遲值中檢測到不可糾正的差錯,則提供控制信號來抑制損壞的延遲值的使用。在這種情況下,計(jì)算的向前進(jìn)行無法實(shí)現(xiàn)。所應(yīng)用的糾錯編碼類型根據(jù)通道/處理邏輯1014的性質(zhì)而有所不同。
      處理邏輯可分類為值傳遞或者值改變。屬于值傳遞的處理邏輯的實(shí)例為存儲器、寄存器和復(fù)用器。值改變處理邏輯元件的實(shí)例為加法器、乘法器和移位器。值改變處理邏輯元件的檢錯和糾錯比值傳遞處理邏輯元件更為復(fù)雜,因?yàn)榧词乖跊]有出現(xiàn)差錯時,邏輯級1014輸出的值也可能不同于輸入的十二位信號1013。
      圖15示意說明經(jīng)過僅傳遞當(dāng)沒有出現(xiàn)差錯時從輸入到輸出未改變的數(shù)據(jù)值的通道的數(shù)據(jù)的糾錯。在這種值傳遞處理邏輯的情況下,將諸如漢明碼等線性分組碼用于糾錯和檢錯是方便的。線性分組碼通常涉及形成碼字,其中原始數(shù)據(jù)凈荷位在碼字中保持不變,但添加一些奇偶校驗(yàn)位(或冗余位)。漢明碼是簡單的單位糾錯碼,以及對于(N,K)代碼,N為碼字中的位的總數(shù),以及K為待編碼的數(shù)據(jù)位的數(shù)量。差錯的存在及位置通過對輸出碼字執(zhí)行多個奇偶校驗(yàn)來檢測。漢明碼包括N-K奇偶校驗(yàn)位,其中每個從數(shù)據(jù)中的位的不同組合來計(jì)算。漢明碼能夠糾正一個差錯或者檢測兩個差錯。所需的奇偶校驗(yàn)位(或者冗余位)的數(shù)量由漢明規(guī)則K+p+1≤2P給出,其中,p為奇偶校驗(yàn)位的數(shù)量以及N=K+p。
      如圖15所示,對通道的輸入為12位碼字,其中包含八個數(shù)據(jù)位以及四個奇偶校驗(yàn)或冗余位。奇偶校驗(yàn)由檢錯/糾錯模塊1116對來自通道1114的輸出執(zhí)行。12位碼字中的任何單位差錯在檢錯/糾錯模塊1116進(jìn)行的碼字輸出之前被檢測和糾正。如果檢測的差錯是不可糾正的,則檢錯/糾錯模塊1116輸出表明情況是這樣的信號。雖然簡單代碼、如漢明碼結(jié)合圖11被描述成與值傳遞處理邏輯配合使用,但可以理解,或者還可使用其它糾錯碼、如卷積碼。
      圖16示意說明如何對諸如加法器、乘法器或移位器之類的值改變邏輯元件執(zhí)行糾錯。在值改變處理邏輯的情況下,諸如AN碼、剩余碼、反剩余碼或剩余數(shù)字碼之類的算術(shù)碼可用來檢測和糾正處理邏輯的輸出中的隨機(jī)差錯。
      算術(shù)碼可用來校驗(yàn)算術(shù)運(yùn)算符。在表示待校驗(yàn)的運(yùn)算符的情況下,必須滿足下列關(guān)系代碼(XY)=代碼X代碼YAN碼是涉及將數(shù)據(jù)字與恒定因子相乘的算術(shù)碼,例如3N碼可用于通過執(zhí)行以下比較來校驗(yàn)加法運(yùn)算的有效性3N(X)+3N(Y)?=3N(X+Y)3X+3Y?=3(X+Y)。
      算術(shù)碼的類的另一個實(shí)例是剩余碼,其中,余數(shù)(除以常數(shù)的余數(shù))添加到數(shù)據(jù)位作為校驗(yàn)位,例如3R碼涉及模(MOD)3運(yùn)算,以及應(yīng)用以下校驗(yàn)X MOD 3+Y MOD 3?=(X+Y)MOD 3考慮X=14和Y=7的數(shù)值實(shí)例14MOD 3=2(碼字111010,其中最后兩位為余數(shù));7MOD 3=1(碼字011101);X+Y=21(10101);以及21MOD 3=0;余數(shù)之和MOD 3=(2+1)MOD 3=0=(X+Y)的余數(shù)。
      圖16示意說明用于圖10的通道/邏輯單元1014中的加法運(yùn)算的校驗(yàn)的7R算術(shù)碼的使用。待校驗(yàn)的加法運(yùn)算為X+Y,其中X和Y為八位數(shù)據(jù)字。各數(shù)據(jù)字包含分別具有值X MOD 7和Y MOD 7的四個校驗(yàn)位。X MOD 7和Y MOD 7作為操作數(shù)提供給第一加法器1210,以及這個加法器的輸出提供給確定值(X MOD 7+Y MOD 7)MOD 7并將結(jié)果作為第一輸入提供給比較器1250的邏輯。第二加法器1230執(zhí)行加法(X+Y),將結(jié)果提供給計(jì)算(X+Y)MOD 7并將結(jié)果作為第二輸入提供給比較器1250的邏輯單元1240。如果比較器檢測到兩個輸入值之間的任何差異,則已經(jīng)出現(xiàn)差錯。
      圖17是流程圖,示意說明包括延遲鎖存器值的糾錯控制的圖14的電路的操作。在級1310,十二位糾錯編碼的信號值被輸入通道/邏輯單元1014。接下來,在級1320,不延遲鎖存器1016在時間Ti捕捉來自通道/邏輯單元1014的輸出,以及捕捉值在級1330轉(zhuǎn)發(fā)到后續(xù)處理邏輯級I+1。在級1340,延遲鎖存器1018在時間Ti+d捕捉輸出信號。在級1350,檢錯邏輯在時間Ti+(d+δ)捕捉來自通道/邏輯單元1014的輸出。雖然在優(yōu)選配置中δ為零,使得延遲值本身輸出的值實(shí)際上經(jīng)過差錯校驗(yàn),此輸出或者可在延遲鎖存器在時間Ti+d捕捉輸出信號之后短時間里就捕捉。用于提供給檢錯電路的值的捕捉經(jīng)過適當(dāng)定時,從而確保延遲值中的任何隨機(jī)差錯被檢測。在級1360,檢錯模塊1026利用冗余位來確定延遲輸出信號是否有差錯。如果檢測到差錯,則在級1370確定差錯是否可糾正,這將取決于多少位受到影響。例如,漢明碼只能糾正單位差錯。如果在級1370確定差錯可糾正,則過程進(jìn)入級1390,在此差錯被糾正,以及糾正的延遲值在復(fù)用器1022被選取并提供給比較器1024。但是,如果在級1370確定所檢測差錯不是可糾正的,則產(chǎn)生控制信號,表明已經(jīng)出現(xiàn)不可糾正的差錯。在這種情況下,計(jì)算的向前進(jìn)行無法可靠執(zhí)行。在級1392,比較器1024確定差錯校驗(yàn)的延遲值是否等于不延遲值,以及如果是,則計(jì)算的向前進(jìn)行會繼續(xù)。否則,執(zhí)行對于圖4B所述的步驟序列的過程,其中包括抑制不延遲值以及在后續(xù)處理級由延遲值取代。
      圖18說明使用本技術(shù)來動態(tài)調(diào)整處理級之間的相對定時。大家知道,在流水線處理環(huán)境中,處理級可耗用不同時間來完成它們相應(yīng)的操作。在理論上,處理級全部經(jīng)過平衡以耗用同樣時間,以及對于它們各自的時間,以相同方式隨周圍條件的變化而改變。但是,這在許多情況下都不是可行的,情況可能是,在一個工作電壓或溫度上經(jīng)過平衡的處理級的集合在另一個工作電壓或溫度上未經(jīng)過平衡。此外,制造變化及其它特性可能導(dǎo)致處理級定時之間的相當(dāng)大的差異,這干擾在其間所設(shè)計(jì)的平衡。在這些情況下,時鐘頻率和其它工作參數(shù)相對最壞情況來選取,使得處理級充分接近平衡,以便在所有條件下都是可工作的。
      本技術(shù)允許采取更有選擇性并且實(shí)際上是動態(tài)的方法。流水線處理電路2000包括延遲鎖存器2002,它可用來檢測由不延遲鎖存器所捕捉的信號值中的差錯的出現(xiàn)。這些差錯的出現(xiàn)被反饋給時鐘相位控制電路204,它用來調(diào)整提供給主通路中的各鎖存器、即不延遲鎖存器的時鐘信號的相對相位。這樣,可進(jìn)行調(diào)整,從而有效地借用一個處理級的時間,并將它分配給另一個處理級。這可通過分接由來自基本時鐘信號沿其中傳播的延遲線中的可選位置的相應(yīng)不延遲鎖存器所使用的時鐘信號來實(shí)現(xiàn)。
      所述實(shí)例,即鎖存器LA與鎖存器LB之間的處理邏輯在操作上比后續(xù)級中的處理邏輯更慢。因此,提供給不延遲鎖存器LB的時鐘信號可經(jīng)過相移,以便延遲那個時鐘信號的上升沿(假定上升沿鎖存器捕捉),從而延伸可用于慢速處理邏輯的時間。這減少了可用于后續(xù)處理級中的處理邏輯的時間,假定這以與除鎖存器LB之外的其它級元件相同的基本時鐘信號工作。
      處理級之間的這種定時平衡可在電路的正進(jìn)行操作期間利用來自使用延遲鎖存器所檢測的操作中的差錯的反饋動態(tài)執(zhí)行?;蛘撸胶饪勺鳛橐淮涡圆僮髟谥圃鞙y試階段或者在集成電路的“金靴”過程中執(zhí)行。圖18所示的延遲鎖存器用于處理級之間的定時平衡,以及此后可用于工作參數(shù)和糾錯的控制,如以上例如對于圖1所述。這樣,延遲鎖存器的提供還進(jìn)一步用來控制相對時鐘定時。
      圖19說明基于全局時鐘選通的流水線差錯恢復(fù)的簡單方法。如果任何級檢測到差錯,則通過對下一個全局時鐘邊沿進(jìn)行選通,整個流水線暫停一個周期。附加時鐘周期允許每一級利用延遲鎖存器作為輸入重新計(jì)算其結(jié)果。因此,任何先前轉(zhuǎn)發(fā)的錯誤值將由來自延遲鎖存器的正確值取代。由于所有級采用延遲鎖存器輸入重新評估其結(jié)果,因此,任何數(shù)量的差錯在單周期中可能被容許,以及向前進(jìn)行得到保證。如果所有級每個周期產(chǎn)生一個差錯,則流水線將繼續(xù)運(yùn)行,但以正常速度的1/2進(jìn)行。
      重要的是,錯誤流水線結(jié)果在由比較器進(jìn)行檢驗(yàn)之前不寫入體系結(jié)構(gòu)化狀態(tài)。由于延遲值的檢驗(yàn)耗用兩個附加周期(即一個用于檢錯以及一個用于應(yīng)急檢測),因此在最后的延遲鎖存器與回寫(WB)級之間必須存在兩個非推測級。在我們的設(shè)計(jì)中,對數(shù)據(jù)高速緩存的存儲訪問是非推測的,因此,在回寫(WB)之前只要求一個標(biāo)記為ST用于穩(wěn)定的附加級。ST級引入寄存器旁路的附加級。由于存儲指令必須以非推測方式執(zhí)行,因此它們在流水線的WB級執(zhí)行。
      圖19給出在流水線的EX級失敗的指令的流水線恢復(fù)的流水線時序圖。第一次失敗的級計(jì)算出現(xiàn)在第4周期,但僅在MEM級之后才利用從EX級轉(zhuǎn)發(fā)的錯誤值計(jì)算不正確的結(jié)果。在檢測到差錯之后,全局時鐘暫停出現(xiàn)在第6周期,允許Razor影子鎖存器中的正確的EX結(jié)果由MEM級來評估。在第7周期,恢復(fù)正常的流水線操作。
      在積極式定時設(shè)計(jì)中,不可能在沒有明顯影響處理器周期時間的情況下實(shí)現(xiàn)全局時鐘選通。因此,已經(jīng)實(shí)現(xiàn)基于逆流流水線技術(shù)的完全流水線差錯恢復(fù)機(jī)制。圖20中所示的方法以在幾個周期上延長流水線恢復(fù)為代價對基線流水線設(shè)計(jì)施加了微不足道的定時約束。當(dāng)檢測到不延遲值差錯時,必須采取兩個特定動作。首先,出故障的不延遲鎖存器之后的錯誤級計(jì)算必須被廢棄。這個動作采用空泡信號來實(shí)現(xiàn),它向下一個以及后續(xù)級表明流水線槽位為空。第二,刷新鏈通過斷言故障級的級ID來觸發(fā)。在隨后的周期中,來自延遲鎖存器數(shù)據(jù)的正確值重新注入流水線,允許錯誤指令對其正確輸入繼續(xù)進(jìn)行。另外,還存在逆流流水線,刷新鏈由此開始以指令的相反方向傳播故障級的ID。在激活的刷新鏈訪問的各級,相應(yīng)的流水線級和一個直接在前級由空泡取代。(兩個級必須被廢棄,以便考慮到主流水線的兩倍相對速度。)當(dāng)刷新ID到達(dá)流水線的開頭時,刷新控制邏輯以錯誤指令之后的指令重新啟動流水線。如果多級在同一個周期中遇到差錯,則它們將全部開始恢復(fù),但只有最接近回寫(WB)的不延遲差錯將完成。先前的恢復(fù)將被稍后的恢復(fù)刷新。注意,逆流流水線可能與前向流水線不是相同長度,使得例如逆流流水線的刷新鏈的深度可能為兩個流水線級,而前向流水線的深度可能為十二級。
      圖20表示在EX級失敗的指令的流水線恢復(fù)的流水線時序圖。如前一個實(shí)例中那樣,當(dāng)?shù)诙噶钣?jì)算流水線的EX級中的不正確結(jié)果時,第一個出故障的級計(jì)算出現(xiàn)在第4周期。這個差錯在第5周期被檢測,導(dǎo)致空泡從MEM級被傳播出來以及刷新鏈的開始。EX、ID和IF級中的指令分別在第6、第7和第8周期被刷新。最后,流水線在錯誤指令之后、在周期9重新啟動,此后恢復(fù)正常的流水線操作。
      回憶以上圖2的描述,如果電路102檢測到差錯信號中的元穩(wěn)定性,則應(yīng)急信號被斷言。在這種情況下,當(dāng)前指令(而不是下一個指令)應(yīng)當(dāng)重新運(yùn)行。當(dāng)這種應(yīng)急信號被斷言時,所有流水線狀態(tài)被刷新,以及流水線在至少指令回寫之后立即重新啟動。應(yīng)急情況使向前進(jìn)行的保證復(fù)雜化,因?yàn)闄z測情況中的延遲可能導(dǎo)致正確的結(jié)果在延遲鎖存器中被蓋寫。因此,在遇到緊急情況之后,電源電壓重置到已知的安全工作電平,以及流水線重新啟動。一旦重新調(diào)整,錯誤指令應(yīng)當(dāng)無誤地完成,只要在這個指令完成之前禁止返回。
      流水線恢復(fù)控制的主要要求在于,它即使在最壞工作條件(例如低電壓、高溫以及高過程變化)下也不會失敗。這個要求通過保守的設(shè)計(jì)方法來滿足,它確認(rèn)最壞情況亞臨界電壓下的差錯恢復(fù)電路的定時。
      圖21示意說明延遲鎖存器2100再用作串行掃描鏈鎖存器。這通過提供由允許串行掃描數(shù)據(jù)值根據(jù)需要被寫入延遲鎖存器或者從延遲鎖存器順序讀取的掃描使能信號所控制的復(fù)用器2102來實(shí)現(xiàn)。此外,允許延遲鎖存器值取代不延遲鎖存器值的常規(guī)機(jī)制被利用以允許串行掃描鏈值被插入工作通路。
      權(quán)利要求
      1.一種用于執(zhí)行數(shù)據(jù)處理的集成電路,所述集成電路包括多個處理級,提供來自至少一個處理級的處理級輸出信號作為后續(xù)處理級的處理級輸入信號,其中所述至少一個處理級包括處理邏輯,可用于對至少一個編碼輸入值執(zhí)行處理操作,從而產(chǎn)生處理邏輯輸出信號,所述編碼輸入值是糾錯碼已經(jīng)應(yīng)用到其中的輸入值;不延遲信號捕捉元件,可用于在不延遲捕捉時間捕捉所述處理邏輯輸出信號的不延遲值,所述不延遲值在所述不延遲捕捉時間之后作為所述處理級輸出信號被提供給所述后續(xù)處理級;延遲信號捕捉元件,可用于在遲于所述不延遲捕捉時間的延遲捕捉時間捕捉所述處理邏輯輸出信號的延遲值;糾錯邏輯,可用于檢測所述處理邏輯輸出信號的所述延遲值中的隨機(jī)差錯的出現(xiàn),從而確定所述檢測的隨機(jī)差錯是否可利用所述糾錯碼糾正,并且或者產(chǎn)生差錯校驗(yàn)延遲值或者表明所述檢測的隨機(jī)差錯不可糾正;比較器,可用于將所述不延遲值與所述差錯校驗(yàn)延遲值比較,以便檢測所述處理邏輯輸出信號在所述不延遲捕捉時間之后的時間的變化,所述變化表明使所述處理邏輯因此在所述不延遲捕捉時間未完成所述處理操作的系統(tǒng)差錯,或者表明所述不延遲值中的隨機(jī)差錯;以及差錯修復(fù)邏輯,可用于在所述比較器檢測到所述處理邏輯輸出信號的所述變化時執(zhí)行差錯修復(fù)操作,通過在后續(xù)處理級中用所述差錯校驗(yàn)延遲值替代所述不延遲值,或者如果所述糾錯邏輯表明所述檢測的隨機(jī)差錯不可糾正,則通過發(fā)起所述處理操作和后續(xù)處理級的處理操作的重復(fù),來抑制所述不延遲值的使用。
      2.如權(quán)利要求1所述的集成電路,其特征在于,在所述糾錯邏輯檢測到所述延遲值中的可糾正隨機(jī)差錯并且所述比較器檢測到所述不延遲值與所述差錯校驗(yàn)延遲值之間沒有差異時,所述差錯修復(fù)邏輯可用于通過采用所述差錯校驗(yàn)延遲值替代所述不延遲值來抑制所述不延遲值的使用。
      3.如權(quán)利要求1和2所述的集成電路,其特征在于,所述處理邏輯執(zhí)行的所述處理操作是一種操作,對于這種操作,當(dāng)所述處理操作中沒有出現(xiàn)差錯時,所述處理邏輯輸出信號實(shí)際上等于所述處理級輸入值。
      4.如權(quán)利要求3所述的集成電路,其特征在于,所述至少一個處理級由存儲電路來執(zhí)行,以及所述處理操作是讀或?qū)懖僮鳌?br> 5.如權(quán)利要求3所述的集成電路,其特征在于,所述至少一個處理級由寄存器來執(zhí)行,以及所述處理操作是讀、寫或移動操作。
      6.如權(quán)利要求3所述的集成電路,其特征在于,所述至少一個處理級由復(fù)用器來執(zhí)行,以及所述處理操作是復(fù)用操作。
      7.如以上權(quán)利要求中的任一項(xiàng)所述的集成電路,其特征在于,所述多個處理級是同步流水線內(nèi)的各個流水線級。
      8.如權(quán)利要求3至7中的任一項(xiàng)所述的集成電路,其特征在于,利用漢明碼對所述輸入值進(jìn)行糾錯編碼,以及所述差錯修復(fù)邏輯利用所述漢明碼來執(zhí)行所述糾正和所述檢測。
      9.如以上權(quán)利要求中的任一項(xiàng)所述的集成電路,其特征在于,所述處理邏輯執(zhí)行的所述處理操作是一種值改變操作,對于所述操作,即使當(dāng)所述處理操作中沒有出現(xiàn)差錯時,所述處理邏輯輸出信號也可能不同于所述處理級輸入值。
      10.如權(quán)利要求9所述的集成電路,其特征在于,所述處理邏輯是下列各項(xiàng)其中之一加法器、乘法器或移位器。
      11.如權(quán)利要求8所述的集成電路,其特征在于,利用包括以下各項(xiàng)其中之一的算術(shù)碼對所述輸入值進(jìn)行糾錯編碼AN碼、剩余碼、反剩余碼或者剩余數(shù)字碼。
      12.如以上權(quán)利要求中的任一項(xiàng)所述的集成電路,其特征在于包括元穩(wěn)定性檢測器,可用于檢測所述不延遲值中的元穩(wěn)定性,以及若發(fā)現(xiàn)為元穩(wěn)定的,則觸發(fā)所述差錯修復(fù)邏輯來抑制所述不延遲值的使用。
      13.如以上權(quán)利要求中的任一項(xiàng)所述的集成電路,其特征在于,當(dāng)所述比較器檢測到所述變化時,所述差錯修復(fù)邏輯可用于采用所述差錯校驗(yàn)延遲值取代所述不延遲值作為所述處理級輸出信號。
      14.如權(quán)利要求13所述的集成電路,其特征在于,向所述后續(xù)處理級提供所述差錯校驗(yàn)延遲值迫使處理操作向前進(jìn)行。
      15.如以上權(quán)利要求中的任一項(xiàng)所述的集成電路,其特征在于,當(dāng)所述比較器檢測到所述變化時,所述差錯修復(fù)邏輯可用于迫使所述差錯校驗(yàn)延遲值存儲在所述不延遲信號捕捉元件中以取代所述不延遲值。
      16.如以上權(quán)利要求中的任一項(xiàng)所述的集成電路,其特征在于,所述至少一個處理級和所述后續(xù)處理級內(nèi)的處理操作由不延遲時鐘信號驅(qū)動。
      17.如權(quán)利要求16所述的集成電路,其特征在于,當(dāng)所述比較器檢測到所述變化時,所述差錯修復(fù)邏輯可用于選通所述不延遲時鐘信號,以便提供時間讓所述后續(xù)處理級從所述不延遲值的輸入進(jìn)行恢復(fù),以及改為使用所述差錯校驗(yàn)延遲值。
      18.如權(quán)利要求16所述的集成電路,其特征在于,所述不延遲捕捉時間從所述不延遲時鐘信號的預(yù)定相位點(diǎn)導(dǎo)出,所述不延遲時鐘信號的相位延遲形式被用作延遲時鐘信號,以及所述延遲捕捉時間從所述延遲時鐘信號的預(yù)定相位點(diǎn)導(dǎo)出。
      19.如以上權(quán)利要求中的任一項(xiàng)所述的集成電路,其特征在于,根據(jù)與所述變化對應(yīng)的所述系統(tǒng)差錯的檢測來控制所述集成電路的一個或多個工作參數(shù)。
      20.如權(quán)利要求19所述的集成電路,其特征在于,所述一個或多個工作參數(shù)經(jīng)過控制,從而具有保持非零系統(tǒng)差錯率的等級。
      21.如權(quán)利要求19和20所述的集成電路,其特征在于,所述一個或多個工作參數(shù)包括以下各項(xiàng)中的至少一項(xiàng)工作電壓;工作頻率;集成電路體偏壓;以及溫度。
      22.如以上權(quán)利要求中的任一項(xiàng)所述的集成電路,其特征在于,所述處理操作耗用的最小處理時間大于分開所述延遲捕捉時間與所述不延遲捕捉時間的時間,使得所述差錯校驗(yàn)延遲值沒有受到對不同輸入值所執(zhí)行的處理操作的影響。
      23.如權(quán)利要求22所述的集成電路,其特征在于,所述處理邏輯包括一個或多個延遲元件以確保超過所述最小處理時間。
      24.如以上權(quán)利要求中的任一項(xiàng)所述的集成電路,其特征在于,所述處理操作耗用的最大處理時間小于分開所述延遲捕捉時間與所述不延遲捕捉時間的時間以及不延遲捕捉時間之間的時間之和,使得所述處理邏輯到所述延遲捕捉時間已經(jīng)完成所述處理操作。
      25.如以上權(quán)利要求中的任一項(xiàng)所述的集成電路,其特征在于,所述處理級是數(shù)據(jù)處理器的一部分。
      26.如以上權(quán)利要求中的任一項(xiàng)所述的集成電路,其特征在于包括可用于存儲與所述變化對應(yīng)的差錯的檢測的計(jì)數(shù)的差錯計(jì)數(shù)器電路。
      27.如權(quán)利要求26所述的集成電路,其特征在于,所述計(jì)數(shù)可由軟件讀取。
      28.一種控制用于執(zhí)行數(shù)據(jù)處理的集成電路的方法,所述方法包括以下步驟從多個處理級中的至少一個處理級提供處理級輸出信號作為后續(xù)處理級的處理級輸入信號,所述至少一個處理級用于采用處理邏輯對至少一個編碼輸入值執(zhí)行處理操作,從而產(chǎn)生處理邏輯輸出信號,所述編碼輸入值是糾錯碼已經(jīng)應(yīng)用到其中的輸入值;在不延遲捕捉時間捕捉所述處理邏輯輸出信號的不延遲值,所述不延遲值在所述不延遲捕捉時間之后作為所述處理級輸出信號被提供給所述后續(xù)處理級;在遲于所述不延遲捕捉時間的延遲捕捉時間捕捉所述處理邏輯輸出信號的延遲值;利用糾錯邏輯檢測所述處理邏輯輸出信號的所述延遲值中的隨機(jī)差錯的出現(xiàn),從而確定所述檢測的隨機(jī)差錯是否可利用所述糾錯碼糾正,并且或者產(chǎn)生差錯校驗(yàn)延遲值或者表明所述檢測的隨機(jī)差錯不可糾正;將所述不延遲值與所述差錯校驗(yàn)延遲值比較,以便檢測所述處理邏輯輸出信號在所述不延遲捕捉時間之后的時間的變化,所述變化表明使所述處理邏輯因此在所述不延遲捕捉時間未完成所述處理操作的系統(tǒng)差錯,或者表明所述不延遲值中的隨機(jī)差錯;以及在檢測到所述變化時,利用差錯修復(fù)邏輯執(zhí)行差錯修復(fù)操作,通過在后續(xù)處理級中用所述差錯校驗(yàn)延遲值替代所述不延遲值,或者如果所述糾錯邏輯表明所述檢測的隨機(jī)差錯不可糾正,則通過發(fā)起所述處理操作和后續(xù)處理級的處理操作的重復(fù),來抑制所述不延遲值的使用。
      29.如權(quán)利要求28所述的方法,其特征在于,在所述糾錯邏輯檢測到所述延遲值中的可糾正隨機(jī)差錯并且所述比較器檢測到所述不延遲值與所述差錯校驗(yàn)延遲值之間沒有差異時,所述差錯修復(fù)邏輯可用于通過采用所述差錯校驗(yàn)延遲值替代所述不延遲值來抑制所述不延遲值的使用。
      30.如以上權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于,所述處理邏輯執(zhí)行的所述處理操作是一種操作,對于所述操作,當(dāng)所述處理操作中沒有出現(xiàn)差錯時,所述處理邏輯輸出信號實(shí)際上等于所述處理級輸入值。
      31.如權(quán)利要求30所述的方法,其特征在于,所述至少一個處理級由存儲電路來執(zhí)行,以及所述處理操作是讀或?qū)懖僮鳌?br> 32.如權(quán)利要求30所述的方法,其特征在于,至少一個處理級由寄存器來執(zhí)行,以及所述處理操作是讀、寫或移動操作。
      33.如權(quán)利要求30所述的方法,其特征在于,所述至少一個處理級由復(fù)用器來執(zhí)行,以及所述處理操作是復(fù)用操作。
      34.如以上權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于,所述多個處理級是同步流水線內(nèi)的各個流水線級。
      35.如權(quán)利要求30至34中的任一項(xiàng)所述的方法,其特征在于,利用漢明碼對所述輸入值進(jìn)行糾錯編碼,以及所述差錯修復(fù)邏輯利用所述漢明碼來執(zhí)行所述糾正和所述檢測。
      36.如以上權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于,所述處理邏輯執(zhí)行的所述處理操作是一種值改變操作,對于所述操作,即使當(dāng)所述處理操作中沒有出現(xiàn)差錯時,所述處理邏輯輸出信號也可能不同于所述處理級輸入值。
      37.如權(quán)利要求36所述的方法,其特征在于,所述處理邏輯是下列各項(xiàng)其中之一加法器、乘法器或移位器。
      38.如權(quán)利要求36所述的方法,其特征在于,利用包括以下各項(xiàng)其中之一的算術(shù)碼對所述輸入值進(jìn)行糾錯編碼AN碼、剩余碼、反剩余碼或者剩余數(shù)字碼。
      39.如以上權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于包括所述不延遲值中的元穩(wěn)定性檢測,以及若發(fā)現(xiàn)為元穩(wěn)定的,則觸發(fā)所述差錯修復(fù)邏輯來抑制所述不延遲值的使用。
      40.如權(quán)利要求28至39中的任一項(xiàng)所述的方法,其特征在于,當(dāng)所述比較器檢測到所述變化時,所述差錯修復(fù)邏輯可用于采用所述差錯校驗(yàn)延遲值取代所述不延遲值作為所述處理級輸出信號。
      41.如權(quán)利要求28至40中的任一項(xiàng)所述的方法,其特征在于,向所述后續(xù)處理級提供所述差錯校驗(yàn)延遲值迫使處理操作向前進(jìn)行。
      42.如權(quán)利要求28至41中的任一項(xiàng)所述的方法,其特征在于,當(dāng)所述比較器檢測到所述變化時,所述差錯修復(fù)邏輯可用于迫使所述差錯校驗(yàn)延遲值存儲在所述不延遲信號捕捉元件中以取代所述不延遲值。
      43.如權(quán)利要求28至42中的任一項(xiàng)所述的方法,其特征在于,所述至少一個處理級和所述后續(xù)處理級內(nèi)的處理操作由不延遲時鐘信號驅(qū)動。
      44.如權(quán)利要求43所述的方法,其特征在于,當(dāng)所述比較器檢測到所述變化時,所述差錯修復(fù)邏輯可用于選通所述不延遲時鐘信號,以便提供時間讓所述后續(xù)處理級從所述不延遲值的輸入進(jìn)行恢復(fù),以及改為使用所述差錯校驗(yàn)延遲值。
      45.如權(quán)利要求43和44所述的方法,其特征在于,所述不延遲捕捉時間從所述不延遲時鐘信號的預(yù)定相位點(diǎn)導(dǎo)出,所述不延遲時鐘信號的相位延遲形式被用作延遲時鐘信號,以及所述延遲捕捉時間從所述延遲時鐘信號的預(yù)定相位點(diǎn)導(dǎo)出。
      46.如權(quán)利要求28至45中的任一項(xiàng)所述的方法,其特征在于,根據(jù)與所述變化對應(yīng)的所述系統(tǒng)差錯的檢測來控制所述集成電路的一個或多個工作參數(shù)。
      47.如權(quán)利要求46所述的方法,其特征在于,所述一個或多個工作參數(shù)經(jīng)過控制,從而具有保持非零系統(tǒng)差錯率的等級。
      48.如權(quán)利要求46和47所述的方法,其特征在于,所述一個或多個工作參數(shù)包括以下各項(xiàng)中的至少一項(xiàng)工作電壓;工作頻率;集成電路體偏壓;以及溫度。
      49.如權(quán)利要求28至48中的任一項(xiàng)所述的方法,其特征在于,所述處理操作耗用的最小處理時間大于分開所述延遲捕捉時間與所述不延遲捕捉時間的時間,使得所述差錯校驗(yàn)延遲值沒有受到對不同輸入值執(zhí)行的處理操作的影響。
      50.如權(quán)利要求49所述的方法,其特征在于,所述處理邏輯包括一個或多個延遲元件以確保超過所述最小處理時間。
      51.如權(quán)利要求28至50中的任一項(xiàng)所述的方法,其特征在于,所述處理操作耗用的最大處理時間小于分開所述延遲捕捉時間與所述不延遲捕捉時間的時間以及不延遲捕捉時間之間的時間之和,使得所述處理邏輯到所述延遲捕捉時間已經(jīng)完成所述處理操作。
      52.如權(quán)利要求28至51中的任一項(xiàng)所述的方法,其特征在于,所述處理級是數(shù)據(jù)處理器的一部分。
      53.如權(quán)利要求28至52中的任一項(xiàng)所述的方法,其特征在于包括可用于存儲與所述變化對應(yīng)的差錯的檢測的計(jì)數(shù)的差錯計(jì)數(shù)器電路。
      54.如權(quán)利要求53所述的方法,其特征在于,所述計(jì)數(shù)可由軟件讀取。
      全文摘要
      集成電路包括多個處理級,其中每個包括處理邏輯(1014)、不延遲信號捕捉元件(1016)、延遲信號捕捉元件(1018)以及比較器(1024)。不延遲信號捕捉元件(1016)在不延遲捕捉時間捕捉來自處理邏輯(1014)的輸出。在稍后的延遲捕捉時間,延遲信號捕捉元件(1018)也捕捉來自處理邏輯(1014)的值。檢錯電路(1026)和糾錯電路(1028)檢測及糾正延遲值中的隨機(jī)差錯,并向比較器(1024)提供差錯校驗(yàn)延遲值。比較器(1024)比較差錯校驗(yàn)延遲值與不延遲值,如果它們不相等,則這表明不延遲值被過快捕捉并且應(yīng)由差錯校驗(yàn)延遲值來取代。不延遲值在其捕捉之后立即被傳遞給后續(xù)處理級,以及差錯恢復(fù)機(jī)制相應(yīng)地用來抑制已經(jīng)由后續(xù)處理級進(jìn)行的錯誤處理,例如選通時鐘以及在重啟時鐘之前允許正確信號值經(jīng)過后續(xù)處理邏輯。諸如時鐘頻率、工作電壓、體偏壓、溫度等集成電路工作參數(shù)經(jīng)過調(diào)整,從而以提高整體性能的方式來保持有限非零差錯率。
      文檔編號G06F1/32GK1761945SQ200480007372
      公開日2006年4月19日 申請日期2004年3月17日 優(yōu)先權(quán)日2003年3月20日
      發(fā)明者T·M·奧斯丁, D·T·布勞夫, T·N·馬奇, K·弗勞特納 申請人:Arm有限公司, 密執(zhí)安大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1