專利名稱:集成電路處理級(jí)內(nèi)的錯(cuò)誤檢測(cè)和恢復(fù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路領(lǐng)域。更具體地說(shuō),本發(fā)明涉及集成電路處理級(jí)內(nèi)的處理錯(cuò)誤的檢測(cè)和這種處理錯(cuò)誤的恢復(fù)。
眾所周知,集成電路可看作由一系列串行連接的處理級(jí)(例如流水線電路)組成。每級(jí)之間是存儲(chǔ)一個(gè)或多個(gè)信號(hào)值的鎖存器。每個(gè)處理級(jí)的處理邏輯響應(yīng)從前面處理級(jí)或別處接收的輸入值,來(lái)產(chǎn)生要存儲(chǔ)在相關(guān)輸出鎖存器中的輸出信號(hào)值。處理邏輯完成其處理操作所用的時(shí)間確定了集成電路可操作的速度。如果所有級(jí)處理邏輯都能在短時(shí)間內(nèi)完成其處理,那么通過(guò)引起高速處理的輸出鎖存器可快速增加信號(hào)值。系統(tǒng)增加級(jí)間信號(hào)不能比最慢的處理邏輯可執(zhí)行其接收輸入信號(hào)和產(chǎn)生適當(dāng)輸出信號(hào)的處理操作更快。這限制了系統(tǒng)的最大性能。
在某些情況下,需要盡可能快地處理數(shù)據(jù)并相應(yīng)地驅(qū)動(dòng)處理級(jí),以便以盡可能快的速率提高其處理操作,直到最慢的處理級(jí)不能保持同步為止。在其它情況下,集成電路的功耗比處理速率更重要,并將降低集成電路的工作電壓,以將功耗降到最慢的處理級(jí)不再能保持同步的那一點(diǎn)。
一種處理這些限制條件的方法是用處理時(shí)鐘驅(qū)動(dòng)集成電路,該處理時(shí)鐘具有比考慮到不同集成電路、操作環(huán)境條件、正處理信號(hào)的數(shù)據(jù)相關(guān)性等之間最壞情況制造偏差的公差范圍所允許的最小值小的已知頻率。在電壓電平方面,考慮到最壞情況制造偏差、環(huán)境條件、數(shù)據(jù)相關(guān)性等,通常以足夠高于最小電壓電平的電壓電平來(lái)操作集成電路,以確保所有處理級(jí)能夠保持同步。要理解到,在限制最大工作頻率和最小工作電壓以便考慮到最壞情況時(shí),常規(guī)方法是謹(jǐn)慎的。
在其它已知系統(tǒng)中提供了這樣的電路元件用于測(cè)量特定集成電路是否超過(guò)其頻率或電壓要求而工作。這些已知機(jī)制包括嵌入在集成電路內(nèi)的延遲線,沿這些延遲線可監(jiān)控信號(hào)的傳播,以確保信號(hào)到達(dá)延遲線末端或延遲線內(nèi)某些其它預(yù)定點(diǎn),這要求有足夠的時(shí)間,以確保在已滿足沿該延遲線傳播的情況下,集成電路上最慢處理級(jí)也將完成其處理操作。延遲線設(shè)計(jì)成其延遲比任何處理級(jí)的最大延遲都大足夠的余量,以將最壞情況制造偏差、環(huán)境條件、數(shù)據(jù)相關(guān)性等考慮進(jìn)去。因此,這種技術(shù)以控制工作電壓和頻率的方式也是謹(jǐn)慎的。
從一個(gè)方面來(lái)看,本發(fā)明提供了一種執(zhí)行數(shù)據(jù)處理的集成電路,所述集成電路包括錯(cuò)誤檢測(cè)器,可操作用于通過(guò)對(duì)所述集成電路內(nèi)的數(shù)據(jù)信號(hào)值進(jìn)行復(fù)式采樣來(lái)檢測(cè)所述集成電路操作中的錯(cuò)誤,采樣值間的差異表示錯(cuò)誤;錯(cuò)誤修復(fù)邏輯,響應(yīng)所述錯(cuò)誤檢測(cè)器,并可操作用于修復(fù)操作中的所述錯(cuò)誤;以及操作參數(shù)控制器,可操作用于控制所述集成電路的一個(gè)或多個(gè)性能控制操作參數(shù);其中所述操作參數(shù)控制器根據(jù)所述錯(cuò)誤檢測(cè)器檢測(cè)的一個(gè)或多個(gè)錯(cuò)誤特性來(lái)動(dòng)態(tài)控制所述一個(gè)或多個(gè)性能控制參數(shù)中的至少一個(gè),來(lái)維持操作中的非零出錯(cuò)率,所述錯(cuò)誤修復(fù)邏輯修復(fù)操作中的所述錯(cuò)誤,以使所述集成電路的數(shù)據(jù)處理繼續(xù)。
本技術(shù)反直覺地并違背本領(lǐng)域中強(qiáng)烈的設(shè)計(jì)偏見,而故意地以維持非零出錯(cuò)率的方式來(lái)操作集成電路。與恢復(fù)檢測(cè)錯(cuò)誤相關(guān)聯(lián)的時(shí)間和功率方面的成本,小于通過(guò)接近集成電路的操作限制運(yùn)行而產(chǎn)生的節(jié)省。
最好,復(fù)式采樣是在各個(gè)不同時(shí)間檢測(cè)采樣點(diǎn)的信號(hào)值。
優(yōu)選實(shí)施例是這樣的所述操作參數(shù)控制器應(yīng)用反饋控制,以根據(jù)所述錯(cuò)誤檢測(cè)器檢測(cè)的所述一個(gè)或多個(gè)錯(cuò)誤特性來(lái)調(diào)節(jié)所述一個(gè)或多個(gè)性能控制參數(shù)中的所述至少一個(gè)。
雖然可能有廣泛的可能性,但優(yōu)選實(shí)施例是這樣的所述錯(cuò)誤檢測(cè)器檢測(cè)的所述一個(gè)或多個(gè)錯(cuò)誤特性至少包括以下一項(xiàng)所述錯(cuò)誤檢測(cè)器檢測(cè)的所述錯(cuò)誤的錯(cuò)誤率;以及由所述錯(cuò)誤檢測(cè)器檢測(cè)的所述錯(cuò)誤的所述錯(cuò)誤修復(fù)邏輯的修復(fù)產(chǎn)生的處理性能方面的降低。
雖然性能控制參數(shù)可采用各種不同的形式,但在優(yōu)選實(shí)施例中,所述一個(gè)或多個(gè)性能控制參數(shù)至少包括以下一項(xiàng)工作電壓;工作頻率;集成電路體偏壓;以及溫度。
本發(fā)明的優(yōu)選實(shí)施例提供了一種執(zhí)行數(shù)據(jù)處理的集成電路,所述集成電路包括多個(gè)處理級(jí),來(lái)自至少一個(gè)處理級(jí)的處理級(jí)輸出信號(hào)被作為處理級(jí)輸入信號(hào)提供給后面的處理級(jí),其中所述至少一個(gè)處理級(jí)包括處理邏輯,可操作用于對(duì)至少一個(gè)處理級(jí)輸入值執(zhí)行處理操作,以產(chǎn)生處理邏輯輸出信號(hào);無(wú)延遲鎖存器,可操作用于在無(wú)延遲捕獲時(shí)間捕獲所述處理邏輯輸出信號(hào)的無(wú)延遲值,在所述無(wú)延遲捕獲時(shí)間之后,所述無(wú)延遲值被作為所述處理級(jí)輸出信號(hào)提供給所述后面的處理級(jí);延遲鎖存器,可操作用于在遲于所述無(wú)延遲捕獲時(shí)間的延遲捕獲時(shí)間上捕獲所述處理邏輯輸出信號(hào)的延遲值;比較器,可操作用于在所述無(wú)延遲捕獲時(shí)間之后比較所述無(wú)延遲值和所述延遲值,以檢測(cè)所述處理邏輯輸出信號(hào)的改變,所述改變表示所述處理邏輯在所述無(wú)延遲捕獲時(shí)間上沒有完成所述處理操作;以及錯(cuò)誤恢復(fù)邏輯,可操作用于在所述比較器檢測(cè)到所述改變時(shí)執(zhí)行錯(cuò)誤恢復(fù)操作,以抑制所述后面的處理級(jí)使用所述無(wú)延遲值。
這些優(yōu)選實(shí)施例認(rèn)確認(rèn)可直接監(jiān)控處理級(jí)自身的操作,以找到它們失效的限制條件。在發(fā)生實(shí)際故障時(shí),則可糾正這些故障,以使整體上不產(chǎn)生錯(cuò)誤操作。通過(guò)將本方法中直接觀察故障點(diǎn)與先前方法中避免過(guò)度謹(jǐn)慎的性能范圍相比較所獲得的優(yōu)點(diǎn),多于在發(fā)生故障時(shí)對(duì)恢復(fù)系統(tǒng)所用的附加時(shí)間和功率的補(bǔ)償。故意允許發(fā)生這種處理錯(cuò)誤,以使關(guān)鍵路徑無(wú)法滿足其同步要求,在本領(lǐng)域中這是極其反直覺的,其中正常情況是努力確保所有關(guān)鍵路徑總是滿足其同步要求。處理級(jí)應(yīng)該被廣泛考慮并包含例如簡(jiǎn)單總線,其中在該總線中信號(hào)從一個(gè)鎖存器傳到下一個(gè)鎖存器,無(wú)需經(jīng)歷和操作。
已檢測(cè)到發(fā)生了錯(cuò)誤,就有多種不同的方式可以糾正或補(bǔ)償它。在一個(gè)優(yōu)選型實(shí)施例中,錯(cuò)誤恢復(fù)邏輯可操作用于以延遲值代替無(wú)延遲值作為處理級(jí)輸出信號(hào)。強(qiáng)烈優(yōu)選的是,用從延遲值采樣中獲得的正確值代替已知有缺陷的處理級(jí)輸出信號(hào),這是因?yàn)榧词拱l(fā)生錯(cuò)誤并需要補(bǔ)償,也足以通過(guò)數(shù)據(jù)處理操作確保向前繼續(xù)進(jìn)行。
優(yōu)選配置是這樣的其中錯(cuò)誤恢復(fù)邏輯操作用于迫使延遲值存儲(chǔ)在無(wú)延遲鎖存器中代替無(wú)延遲值。
雖然本發(fā)明可適用于同步和異步數(shù)據(jù)處理電路,但本發(fā)明很適用于同步數(shù)據(jù)處理電路,在同步數(shù)據(jù)處理電路中無(wú)延遲時(shí)鐘信號(hào)驅(qū)動(dòng)處理級(jí)內(nèi)的處理操作。
在無(wú)延遲時(shí)鐘信號(hào)驅(qū)動(dòng)處理級(jí)的系統(tǒng)的情況下,錯(cuò)誤恢復(fù)邏輯可利用該信號(hào),以通過(guò)選通無(wú)延遲時(shí)鐘信號(hào)來(lái)促進(jìn)恢復(fù)錯(cuò)誤,以為后面的處理級(jí)提供足夠的時(shí)間來(lái)恢復(fù)不正確的無(wú)延遲值的輸入,并代替使用正確的延遲值。
在使用無(wú)延遲時(shí)鐘信號(hào)的實(shí)施例的情況下,捕獲時(shí)間可來(lái)自無(wú)延遲時(shí)鐘信號(hào)中的預(yù)定相點(diǎn),而延遲時(shí)鐘信號(hào)可來(lái)自無(wú)延遲時(shí)鐘信號(hào)。這兩個(gè)時(shí)鐘信號(hào)之間的相移可定義無(wú)延遲捕獲和延遲捕獲之間的延遲。
本技術(shù)特別適用于處理級(jí)是同步流水線內(nèi)各個(gè)流水線級(jí)的實(shí)施例。
檢測(cè)和恢復(fù)錯(cuò)誤可用于各種不同情況中,但特別適用于希望根據(jù)這種錯(cuò)誤的檢測(cè)來(lái)動(dòng)態(tài)控制集成電路操作參數(shù)的情況。反直覺地,本技術(shù)可用于控制操作參數(shù),以使系統(tǒng)以作為目標(biāo)速率維持的非零出錯(cuò)率運(yùn)行,因?yàn)榧词箍紤]了恢復(fù)發(fā)生的錯(cuò)誤所需的措施,這也可對(duì)應(yīng)于改進(jìn)的總體性能,無(wú)論是速度方面還是功耗方面。
可改變的操作參數(shù)包括工作電壓、工作頻率、集成電路體偏壓(其控制閾值電平)和其溫度。
為了確保延遲鎖存器中捕獲的數(shù)據(jù)總是正確的,任一級(jí)處理邏輯中最大延遲的上限都是這樣的在工作點(diǎn)上任一級(jí)處理邏輯的延遲都不能超過(guò)時(shí)鐘周期加上延遲捕獲延遲的量的總和。作為任一處理延遲的下限有這樣的要求任一級(jí)處理邏輯的處理時(shí)間應(yīng)超過(guò)延遲捕獲接著無(wú)延遲捕獲的時(shí)間,以確保沿短路徑傳播的后面數(shù)據(jù)不會(huì)不適當(dāng)?shù)仄茐难舆t捕獲值。這可通過(guò)在需要時(shí)用一個(gè)或多個(gè)延遲元件加長(zhǎng)短路徑來(lái)保證。
本技術(shù)適用于多種不同類型的集成電路,諸如通用數(shù)字處理電路,但特別適用于處理級(jí)是數(shù)據(jù)處理器或微處理器一部分的系統(tǒng)。
為了便于使用控制操作參數(shù)的控制算法,優(yōu)選實(shí)施例包括錯(cuò)誤計(jì)數(shù)器電路,該電路可操作用于響應(yīng)與無(wú)延遲值比較的延遲值中的改變而存儲(chǔ)錯(cuò)誤檢測(cè)計(jì)數(shù)。該錯(cuò)誤計(jì)數(shù)器可通過(guò)軟件實(shí)現(xiàn),以執(zhí)行操作參數(shù)的控制。
要理解到,上面討論的延遲鎖存器和無(wú)延遲鎖存器可具有多種不同的形式。具體地說(shuō),這些鎖存器可看成是包括以觸發(fā)器、D型鎖存器、時(shí)序元件、存儲(chǔ)單元、寄存器元件、其組合以及能夠存儲(chǔ)信號(hào)值的各種其它存儲(chǔ)設(shè)備形式的實(shí)施例。
從另一方面來(lái)看,本發(fā)明提供了一種控制執(zhí)行數(shù)據(jù)處理的集成電路的方法,所述方法包括如下步驟將來(lái)自多個(gè)處理級(jí)中至少一個(gè)處理級(jí)的處理級(jí)輸出信號(hào)作為處理級(jí)輸入信號(hào)提供給后面的處理級(jí),所述至少一個(gè)處理級(jí)操作用于用數(shù)據(jù)處理邏輯對(duì)至少一個(gè)處理級(jí)輸入值執(zhí)行處理操作,以產(chǎn)生處理邏輯輸出信號(hào);在無(wú)延遲捕獲時(shí)間上捕獲所述處理邏輯輸出信號(hào)的無(wú)延遲值,在所述無(wú)延遲捕獲時(shí)間之后,將所述無(wú)延遲值提供給所述后面的處理級(jí)作為所述處理級(jí)輸出信號(hào);在遲于所述無(wú)延遲捕獲時(shí)間的延遲捕獲時(shí)間上,捕獲所述處理邏輯輸出信號(hào)的延遲值;在所述無(wú)延遲捕獲時(shí)間之后,比較所述無(wú)延遲值和所述延遲值以檢測(cè)所述處理邏輯輸出信號(hào)中的改變,所述改變表示所述處理邏輯在所述無(wú)延遲捕獲時(shí)間沒有完成所述處理操作;以及在檢測(cè)到所述改變時(shí),執(zhí)行錯(cuò)誤恢復(fù)操作,該操作抑制所述后面的處理級(jí)使用所述無(wú)延遲值。
現(xiàn)將僅以示例方式參考附圖來(lái)描述本發(fā)明的實(shí)施例,附圖中
圖1示意性示出應(yīng)用本技術(shù)的多個(gè)處理級(jí);圖2是示意性示出用在本技術(shù)中的電路的電路框圖;圖3是示意性示出無(wú)延遲鎖存器和延遲鎖存器以及相關(guān)比較器和錯(cuò)誤恢復(fù)邏輯的電路圖;圖4A和4B是示意性示出圖1電路操作的流程圖;圖5示意性示出包括快速讀取機(jī)制和慢速讀取機(jī)制的存儲(chǔ)電路;圖6示出了圖5電路一部分的備選電路配置;圖7是示意性示出圖5存儲(chǔ)電路操作的流程圖;圖8示出了包括總線級(jí)之間無(wú)延遲鎖存器和延遲鎖存器的流水線總線;圖9是示意性示出圖8流水線總線操作的流程圖;圖10示意性示出用于控制微處理器的控制信號(hào)的產(chǎn)生,該控制信號(hào)受無(wú)延遲鎖存和輸出及延遲鎖存和輸出的控制;圖11是示意性示出圖10電路一個(gè)操作示例的流程圖;圖12示出了包括無(wú)延遲鎖存器和延遲鎖存器的處理流水線,在較低工作功率期間,這些延遲鎖存器重用作數(shù)據(jù)保持鎖存器;圖13是示意性示出圖12電路操作的流程圖;圖14示意性示出已應(yīng)用糾錯(cuò)和延遲鎖存器的多個(gè)處理級(jí);圖15示意性示出通過(guò)通道進(jìn)行數(shù)據(jù)傳送的糾錯(cuò),如果沒出現(xiàn)錯(cuò)誤,則僅將未改變的數(shù)據(jù)值從輸入傳到輸出;圖16示意性示出了對(duì)于值改變邏輯元件(諸如加法器、乘法器或移位器)如何執(zhí)行糾錯(cuò);圖17是示意性示出圖14電路操作的流程圖;圖18示意性地示出了延遲鎖存器和無(wú)延遲鎖存器可如何用于控制處理流水線內(nèi)的時(shí)鐘信號(hào)相對(duì)相位;圖19和20示意性示出了在恢復(fù)錯(cuò)誤過(guò)程中停止和磁泡插入的各自使用;以及圖21示出了用在處理級(jí)之間的無(wú)延遲和延遲鎖存器,其中延遲鎖存器重新用作串行掃描鏈鎖存器。
圖1示出了集成電路的一部分,其是處理器核(諸如英格蘭劍橋的ARM有限公司生產(chǎn)的ARM處理器核)內(nèi)的一部分同步流水線。同步流水線由多個(gè)相同處理級(jí)組成。第一級(jí)包括處理邏輯2、其后是以觸發(fā)器形式的無(wú)延遲鎖存器4、比較器6和延遲鎖存器8。這里所用的術(shù)語(yǔ)鎖存器,包括可操作用于不考慮觸發(fā)、時(shí)鐘和其它要求而存儲(chǔ)信號(hào)值的任何電路元件。類似地構(gòu)成隨后的處理級(jí)。無(wú)延遲時(shí)鐘信號(hào)10驅(qū)動(dòng)所有處理級(jí)內(nèi)的處理邏輯和無(wú)延遲鎖存器4,以作為同步流水線的一部分同步工作。延遲時(shí)鐘信號(hào)12被提供給各處理級(jí)的延遲鎖存器8。延遲時(shí)鐘信號(hào)12是無(wú)延遲時(shí)鐘信號(hào)10的相移版本。相移程度控制在無(wú)延遲鎖存器4執(zhí)行的處理邏輯2的輸出捕獲和延遲鎖存器8在隨后時(shí)間執(zhí)行的處理邏輯2的輸出捕獲之間的延遲周期。如果處理邏輯2在現(xiàn)有無(wú)延遲時(shí)鐘信號(hào)頻率、提供給集成電路的工作電壓、體偏壓、溫度等給出的限制內(nèi)工作,那么等到無(wú)延遲鎖存器4被觸發(fā)以捕獲其值時(shí),處理邏輯2將已經(jīng)完成其處理操作。結(jié)果,在延遲鎖存器8隨后捕獲處理邏輯2的輸出時(shí),該輸出將具有與在無(wú)延遲鎖存器4內(nèi)捕獲的值相同的值。相應(yīng)地,比較器6在延遲周期期間將檢測(cè)不到發(fā)生改變,且不會(huì)觸發(fā)錯(cuò)誤恢復(fù)操作。相反,如果集成電路的操作參數(shù)是這樣的等到無(wú)延遲鎖存器4捕獲其值時(shí),處理邏輯2還沒完成其處理操作,那么延遲鎖存器8將捕獲不同的值,并且這將被比較器6檢測(cè)到,從而強(qiáng)制執(zhí)行錯(cuò)誤恢復(fù)操作。可以看出,錯(cuò)誤恢復(fù)操作能代替無(wú)延遲鎖存器4的輸出,在跟隨其捕獲的時(shí)間期間,無(wú)延遲鎖存器4的輸出被提供給后面的處理級(jí),其中延遲值存儲(chǔ)在延遲鎖存器8內(nèi)。該延遲值還可被迫存儲(chǔ)在無(wú)延遲鎖存器4內(nèi),代替存儲(chǔ)在此的之前錯(cuò)誤捕獲的值。
亞穩(wěn)態(tài)檢測(cè)器7用于檢測(cè)無(wú)延遲鎖存器4輸出中的亞穩(wěn)態(tài)(即,不處于明確定義的邏輯狀態(tài))。如果檢測(cè)到這種亞穩(wěn)態(tài),則將其作為錯(cuò)誤來(lái)處理,并改為使用延遲鎖存器6的值。
一檢測(cè)到錯(cuò)誤,就可通過(guò)選通無(wú)延遲時(shí)鐘信號(hào)10來(lái)使整個(gè)流水線停止達(dá)附加延遲周期的時(shí)間,為后面處理級(jí)中的處理邏輯提供足夠的時(shí)間來(lái)正確響應(yīng)提供給它的校正的輸入信號(hào)值。備選地,可用根據(jù)標(biāo)準(zhǔn)流水線處理技術(shù)、使用逆流結(jié)構(gòu)(見圖2的磁泡和刷新鎖存器)插入到流水線中的磁泡來(lái)停止上游處理級(jí),其中允許隨后的處理級(jí)繼續(xù)操作。另一備選方案是,可用被迫進(jìn)入每級(jí)無(wú)延遲鎖存器的延遲鎖存器值來(lái)復(fù)位整個(gè)處理流水線,并重新開始處理。取代錯(cuò)誤值重新使用延遲鎖存器值,而不是試圖重新計(jì)算,確保了即使已出現(xiàn)錯(cuò)誤但通過(guò)處理操作仍可實(shí)現(xiàn)向前繼續(xù)進(jìn)行。
存在有關(guān)處理級(jí)內(nèi)處理邏輯所花的處理時(shí)間與無(wú)延遲捕獲時(shí)間和延遲捕獲時(shí)間之間的延遲之間關(guān)系的限制。具體地說(shuō),任何處理級(jí)的最小處理時(shí)間都不應(yīng)小于該延遲,以確保捕獲的延遲值不被從短延遲處理級(jí)輸出的新數(shù)據(jù)破壞??赡芤妙~外的延遲元件來(lái)填充短延遲處理級(jí),以確保它們不低于該最小處理時(shí)間。在其它極限上,需要確保在任何操作參數(shù)的任何操作點(diǎn)出現(xiàn)的處理級(jí)內(nèi)的處理邏輯最大處理延遲都不大于正常無(wú)延遲工作時(shí)鐘周期和延遲值的總和,以確保在延遲值鎖存器中捕獲的延遲值穩(wěn)定且正確。
有多種可控制系統(tǒng)調(diào)諧功耗和性能的備選方式。根據(jù)一種配置,提供錯(cuò)誤計(jì)數(shù)器電路(未示出)來(lái)計(jì)數(shù)比較器6產(chǎn)生的不等檢測(cè)的數(shù)量。這個(gè)檢測(cè)和恢復(fù)的錯(cuò)誤的計(jì)數(shù),可用于使用硬件實(shí)現(xiàn)或軟件實(shí)現(xiàn)的算法來(lái)控制操作參數(shù)。該計(jì)數(shù)器可通過(guò)軟件讀取。通過(guò)用維持非零出錯(cuò)水平的參數(shù)來(lái)故意操作集成電路,可獲得最佳總體性能,無(wú)論是最大速度方面還是最低功耗方面。在此情況下,來(lái)自操作非謹(jǐn)慎操作參數(shù)的增益,超過(guò)了恢復(fù)錯(cuò)誤的需要所引起的懲罰。
根據(jù)備選配置,硬件計(jì)數(shù)器作為性能監(jiān)控模塊提供,并可操作用于跟蹤有用的工作和錯(cuò)誤恢復(fù)工作。具體地說(shuō),計(jì)數(shù)器保持用于進(jìn)行正執(zhí)行處理操作的有用指令數(shù)的計(jì)數(shù),且還保持進(jìn)行錯(cuò)誤恢復(fù)所執(zhí)行的指令和磁泡數(shù)的計(jì)數(shù)。軟件可操作用于讀取硬件計(jì)數(shù)器,并使用計(jì)數(shù)值適當(dāng)?shù)乇3皱e(cuò)誤恢復(fù)的開銷及其對(duì)系統(tǒng)性能的影響與通過(guò)以非零出錯(cuò)率運(yùn)行集成電路所獲得的降低功耗的平衡。
圖2是示意性示出了本技術(shù)中所用電路的電路框圖。圖2的上部示出了在每個(gè)處理級(jí)內(nèi)提供的電路元件,即無(wú)延遲鎖存器4、延遲鎖存器8和比較器6。亞穩(wěn)態(tài)檢測(cè)器7用于檢測(cè)無(wú)延遲鎖存器4輸出中的亞穩(wěn)態(tài),并且這也引發(fā)了錯(cuò)誤信號(hào)的產(chǎn)生。來(lái)自多個(gè)這種級(jí)的錯(cuò)誤信號(hào)被提供給OR(或)門100的各個(gè)輸入,其中如果在任一處理器級(jí)中檢測(cè)到錯(cuò)誤,則產(chǎn)生全局錯(cuò)誤信號(hào)。全局錯(cuò)誤信號(hào)可用于觸發(fā)如圖所示的刷新和磁泡插入信號(hào)。電路102檢測(cè)錯(cuò)誤信號(hào)自身是否是亞穩(wěn)態(tài)。用正偏鎖存器(參考較高電壓)和負(fù)偏鎖存器(參考較低電壓)鎖存錯(cuò)誤信號(hào)。如果上述兩個(gè)鎖存器的鎖存值不一致,則表示錯(cuò)誤信號(hào)是亞穩(wěn)態(tài),并抽取應(yīng)急(panic)信號(hào)。通過(guò)鎖存錯(cuò)誤信號(hào),并在對(duì)錯(cuò)誤信號(hào)采樣之前等待整個(gè)時(shí)鐘周期(即兩個(gè)鎖存器串聯(lián)),可忽略處于亞穩(wěn)態(tài)的應(yīng)急信號(hào)的概率。重要的是,如果抽取應(yīng)急信號(hào),則可能由于錯(cuò)誤信號(hào)的亞穩(wěn)態(tài)而破壞來(lái)自延遲鎖存器的恢復(fù)值。在此情況下,使指令無(wú)效,且不向前繼續(xù)進(jìn)行。由此,刷新流水線、重新啟動(dòng)指令并降低時(shí)鐘頻率,以確保在重試同一指令時(shí)錯(cuò)誤信號(hào)不會(huì)處于亞穩(wěn)態(tài)(否則會(huì)引起無(wú)限的重試循環(huán))。
圖3是詳細(xì)示出無(wú)延遲鎖存器、延遲鎖存器、比較器和至少一部分錯(cuò)誤恢復(fù)電路的電路圖。無(wú)延遲鎖存器4可看作以兩個(gè)鎖存器14、16提供的觸發(fā)器的形式。延遲鎖存器8以單個(gè)反饋元件的形式。XOR(異或)門18用作比較器。錯(cuò)誤信號(hào)20出現(xiàn)在圖3的電路中,并可提供給錯(cuò)誤計(jì)數(shù)器電路(如前所述),或提供給調(diào)節(jié)電路或系統(tǒng)的其它操作參數(shù)。錯(cuò)誤信號(hào)20用于切換多路復(fù)用器22,該多路復(fù)用器迫使存儲(chǔ)在延遲鎖存器8內(nèi)的延遲值存儲(chǔ)在無(wú)延遲鎖存器4的鎖存器14內(nèi)。亞穩(wěn)態(tài)檢測(cè)電路24用于檢測(cè)無(wú)延遲鎖存器4內(nèi)的亞穩(wěn)態(tài)的出現(xiàn),并還用這個(gè)引發(fā)錯(cuò)誤信號(hào),該錯(cuò)誤信號(hào)會(huì)使錯(cuò)誤的亞穩(wěn)態(tài)值由存儲(chǔ)在延遲鎖存器8內(nèi)的延遲值代替。
圖4A和4B是示意性示出圖1、2和3電路操作的流程圖。
在步驟26,來(lái)自第i級(jí)的處理邏輯在時(shí)間Ti產(chǎn)生其輸出信號(hào)。在步驟28,由無(wú)延遲鎖存器捕獲該輸出信號(hào),并形成無(wú)延遲值。在步驟30,來(lái)自無(wú)延遲鎖存器的無(wú)延遲值開始被傳遞到后面的第i+1處理級(jí),該處理級(jí)基于該值開始處理。如果檢測(cè)到錯(cuò)誤,則這個(gè)處理可能被證明是錯(cuò)誤的,并將需要恢復(fù)。
步驟32使處理邏輯可以繼續(xù)處理另一段時(shí)間周期(延遲時(shí)間),以在時(shí)間Ti+d產(chǎn)生輸出信號(hào)。在步驟34,該輸出信號(hào)被鎖存在延遲鎖存器中。在步驟36,比較延遲鎖存器和無(wú)延遲鎖存器內(nèi)的值。在步驟37,如果它們相等,則沒有發(fā)生錯(cuò)誤,并繼續(xù)正常處理。如果它們不等,則表示當(dāng)無(wú)延遲鎖存器捕獲其值并開始將該值提供給隨后的第i+1處理級(jí)時(shí),處理邏輯在時(shí)間Ti沒有完成其處理操作。因此,出錯(cuò)條件已經(jīng)產(chǎn)生,并將需要糾正。在步驟38,通過(guò)將流水線磁泡轉(zhuǎn)發(fā)到第i級(jí)后的流水線級(jí)中來(lái)起動(dòng)該糾正。在步驟40,停止所有前面級(jí)到第i+1級(jí)。這包括出現(xiàn)錯(cuò)誤的第i級(jí)。在步驟42,第i+1級(jí)使用延遲鎖存值作為其輸入來(lái)重新執(zhí)行其操作。在步驟44,可根據(jù)需要修改集成電路的操作參數(shù)。例如,可降低工作頻率、增加工作電壓、增加體偏壓等。然后處理繼續(xù)到步驟46。
如果檢測(cè)到不足量的錯(cuò)誤,則控制電路和算法的操作參數(shù)可故意調(diào)節(jié)操作參數(shù),以便降低功耗并引起非零出錯(cuò)率。
圖5示出了存儲(chǔ)器100,其包含存儲(chǔ)單元102的陣列。在該例中示出了單行存儲(chǔ)單元,但如本領(lǐng)域技術(shù)人員所熟知的,這種存儲(chǔ)單元陣列通常是包含數(shù)千個(gè)存儲(chǔ)單元的大的二維陣列。根據(jù)正常的存儲(chǔ)操作,解碼器104用于接收要存取的存儲(chǔ)地址,并將該存儲(chǔ)地址解碼,以激活一條字線106。該字線用于將線中的存儲(chǔ)單元102耦合到各個(gè)位線對(duì)108。根據(jù)相關(guān)存儲(chǔ)單元102內(nèi)存儲(chǔ)的位值,這將導(dǎo)致當(dāng)前耦合到該存儲(chǔ)單元的位線108中的電改變(例如電壓和/或電流的改變),并且該改變由讀出放大器110讀出。在第一時(shí)間,讀出放大器110的輸出存儲(chǔ)在無(wú)延遲鎖存器112內(nèi),并且隨后在延遲時(shí)間該輸出被存儲(chǔ)在延遲鎖存器114內(nèi)。在延遲值已存儲(chǔ)在延遲鎖存器114之前,存儲(chǔ)在無(wú)延遲鎖存器112內(nèi)的無(wú)延遲值經(jīng)多路復(fù)用器116直接傳遞到另一處理電路118。當(dāng)在延遲鎖存器114內(nèi)已捕獲了延遲值時(shí),比較器120用于比較無(wú)延遲值和延遲值。如果它們不等,則多路復(fù)用器116將該延遲值切換為來(lái)自存儲(chǔ)器100的相關(guān)特定位的輸出值。還從比較器120向另一處理電路118發(fā)出抑制信號(hào),以抑制另一處理電路118基于當(dāng)前已代替的錯(cuò)誤無(wú)延遲值進(jìn)行處理。本例中的抑制采用控制提供給另一處理電路118的時(shí)鐘信號(hào)CLK的形式,來(lái)擴(kuò)展相關(guān)的時(shí)鐘周期,并延遲鎖存該另一處理電路的新結(jié)果,直到延遲值有機(jī)會(huì)通過(guò)相關(guān)處理電路傳播到達(dá)該另一處理電路輸出處的鎖存器時(shí)的時(shí)間為止。
可以看出,讀出放大器110和無(wú)延遲鎖存器112組成快速讀取機(jī)構(gòu)的一部分。讀出放大器110和延遲鎖存器114組成慢速讀取機(jī)構(gòu)的一部分。在大多數(shù)情況下,無(wú)延遲鎖存器112內(nèi)鎖存的快速讀取結(jié)果將被糾正,且不需要任何糾正操作。在少數(shù)情況下,快速讀取結(jié)果將不同于延遲鎖存器114內(nèi)鎖存的慢速讀取結(jié)果,并且在此情況下,慢速讀取結(jié)果被認(rèn)為是正確的,并用于以基于抑制的快速讀取結(jié)果的處理來(lái)代替快速讀取結(jié)果。與糾正錯(cuò)誤的快速讀取結(jié)果所需的相對(duì)不頻繁相關(guān)聯(lián)的懲罰,多于由通過(guò)接近其限制條件而運(yùn)行存儲(chǔ)器100所獲得的增強(qiáng)性能(速度、低電壓操作、低功耗和/或其它性能參數(shù)方面)所補(bǔ)償?shù)摹?br>
圖6示出了圖5電路一部分的變形。在該變形中,提供了兩個(gè)讀出放大器110’、110”。形成的這兩個(gè)不同讀出放大器110’、110”具有不同的操作速度,其中110’相對(duì)快但不可靠,另一個(gè)110”相對(duì)慢但較可靠。通過(guò)改變讀出放大器110’、110”的參數(shù),例如諸如晶體管大小、摻雜級(jí)、增益等的結(jié)構(gòu)參數(shù),可獲得這些不同的特性。比較器120’用于比較兩個(gè)輸出。在慢速讀出放大器110”的輸出有效之前,通常經(jīng)多路復(fù)用器116’傳送來(lái)自快速讀出放大器110’的輸出。在慢速讀出放大器110”的輸出有效并且比較器120檢測(cè)到該輸出不等于快速讀出放大器110’的輸出時(shí),它控制多路復(fù)用器116’,以將輸出值切換為由慢讀出放大器110”產(chǎn)生的輸出值。比較器120還觸發(fā)生成抑制信號(hào),以抑制基于錯(cuò)誤的快速讀取結(jié)果的下游處理。
圖7是示出圖5電路操作的流程圖。在步驟122,使用由字線傳遞的信號(hào)將地址解碼,使各個(gè)存儲(chǔ)單元耦合到其相鄰位線。在步驟124,在選定存儲(chǔ)單元內(nèi)存儲(chǔ)的位值及其補(bǔ)碼被驅(qū)動(dòng)到位線對(duì)上。這引起位線內(nèi)的電流流動(dòng)以及位線中的電壓改變。讀出放大器110響應(yīng)檢測(cè)到的電流和/或電壓電平改變。
在步驟126,快速數(shù)據(jù)讀取機(jī)構(gòu)對(duì)當(dāng)時(shí)從存儲(chǔ)單元輸出的值進(jìn)行采樣。在步驟128,當(dāng)假設(shè)快速讀取數(shù)據(jù)值正確時(shí),該值被傳遞到隨后的處理電路,用于進(jìn)一步處理。在步驟130,慢速數(shù)據(jù)讀取機(jī)構(gòu)對(duì)慢速讀取數(shù)據(jù)值采樣。步驟132比較快速讀取值和慢速讀取值。如果它們相等,則在步驟134繼續(xù)正常處理。然而,如果采樣值不同,則步驟136用于向已傳遞了快速讀取值的其它電路發(fā)出抑制信號(hào),并還用于向那些其它電路發(fā)出慢速讀取值取代快速讀取值,以便可進(jìn)行正確處理。
圖8示出了在流水線總線140內(nèi)使用本技術(shù)。流水線總線140包含用于存儲(chǔ)沿總線傳遞的數(shù)據(jù)值的若干鎖存器142。流水線總線140的一個(gè)例子是已知由英格蘭劍橋的ARM有限公司設(shè)計(jì)的AXI總線。在該配置中,沿流水線總線140傳遞的數(shù)據(jù)值的目的地是數(shù)字信號(hào)處理電路144。該數(shù)字信號(hào)處理(DSP)電路144本身并不實(shí)現(xiàn)上述無(wú)延遲鎖存和延遲鎖存技術(shù)。在備選配置中,沿流水線總線傳遞的數(shù)據(jù)值的目的地可以是不同于DSP電路的設(shè)備,例如本身并不實(shí)現(xiàn)延遲和無(wú)延遲鎖存技術(shù)的標(biāo)準(zhǔn)ARM處理器核。
與每個(gè)無(wú)延遲鎖存器142相關(guān)聯(lián)的是各個(gè)延遲鎖存器146。這些延遲鎖存器146用于對(duì)總線上的信號(hào)值采樣,這發(fā)生在由它們對(duì)應(yīng)的無(wú)延遲鎖存器142對(duì)信號(hào)值進(jìn)行采樣和鎖存時(shí)的晚些時(shí)間。這樣,由于任何原因(例如所用的工作電壓太低、時(shí)鐘速度過(guò)快、來(lái)自相鄰數(shù)據(jù)值的耦合效應(yīng)等)沿總線傳遞的數(shù)據(jù)值中的延遲都會(huì)引起存儲(chǔ)在無(wú)延遲鎖存器142和延遲鎖存器146內(nèi)的值之間出現(xiàn)差異的可能性。流水線總線140上的末級(jí)示為包括比較器147,該比較器比較無(wú)延遲值與延遲值。如果它們不相等,則延遲值用于代替無(wú)延遲值,并抑制基于無(wú)延遲值的處理,以使糾正能生效(可延長(zhǎng)總線時(shí)鐘周期)。要理解到,沿流水線總線140在每個(gè)鎖存級(jí)都將提供這些比較器和多路復(fù)用電路元件,但為了清楚起見,圖8省略了這些元件。
由于DSP電路144自身并不支持具有其相關(guān)校正概率的無(wú)延遲和延遲鎖存機(jī)制,因此重要的是,提供給DSP電路144的數(shù)據(jù)值已經(jīng)受到任何必要校正的控制。由于這個(gè)原因,在流水線總線140的末端提供附加緩沖鎖存器級(jí)148,以將數(shù)據(jù)值所需的任何糾正提供給該鎖存器,并在DSP電路144對(duì)該數(shù)據(jù)值起作用之前,可執(zhí)行附屬DSP電路144。緩沖鎖存器148可放在足夠接近DSP電路144的位置,這樣將沒有使數(shù)據(jù)值中的錯(cuò)誤從緩沖鎖存器148傳到DSP電路144的不足夠可用的傳播時(shí)間等的發(fā)出。
要理解到,各個(gè)無(wú)延遲鎖存器142之間的總線連接可看作是只傳遞不變數(shù)據(jù)的處理邏輯形式。這樣,對(duì)于本領(lǐng)域技術(shù)人員而言,圖8流水線總線實(shí)施例和上述實(shí)施例(例如圖1)之間的等效性將是顯而易見的。
圖9是示出圖8操作的流程圖。在步驟150,從總線線路捕獲無(wú)延遲信號(hào)值。然后在步驟152將該無(wú)延遲值傳到下一總線流水線級(jí)。在步驟154,相應(yīng)的延遲鎖存器146捕獲延遲總線信號(hào)。在步驟156,比較器147比較延遲值與無(wú)延遲值。如果它們相等,則在步驟158繼續(xù)正常處理。如果兩個(gè)比較值不相等,則步驟160用于使用圖8所示的多路復(fù)用器來(lái)延遲總線時(shí)鐘,并周延遲值代替無(wú)延遲值。
圖10示出了使用本技術(shù)的另一示例性實(shí)施例。在該示例性實(shí)施例中,來(lái)自處理器核內(nèi)指令寄存器的指令被鎖存在指令鎖存器162內(nèi)。從該指令鎖存器162中,指令被傳遞到包括微編碼ROM的解碼器164,該微編碼ROM用于產(chǎn)生適當(dāng)?shù)奶幚砥骺刂菩盘?hào)集合,該集合存儲(chǔ)在無(wú)延遲控制信號(hào)鎖存器166中,并隨后用于根據(jù)鎖存在指令鎖存器162內(nèi)的指令來(lái)控制處理器核所執(zhí)行的處理。在來(lái)自解碼器164的控制信號(hào)輸出被鎖存在無(wú)延遲控制信號(hào)鎖存器166內(nèi)的晚些時(shí)間,它們還被鎖存在延遲控制信號(hào)鎖存器168內(nèi)。然后可比較延遲控制信號(hào)值與無(wú)延遲控制信號(hào)值。如果它們不等,則表示有必要進(jìn)行糾正操作。抑制操作通過(guò)這種差異的檢測(cè)來(lái)觸發(fā),并用于根據(jù)不適當(dāng)?shù)逆i存控制信號(hào)值來(lái)停止隨后的處理。在某些情況下,可能唯一有效的恢復(fù)選項(xiàng)是整體上復(fù)位處理器。這可能是可接受的。在其它情況下,控制信號(hào)中的錯(cuò)誤可能是不太激烈的抑制,并且恢復(fù)機(jī)制是合理的。作為一個(gè)例子,特定錯(cuò)誤控制信號(hào)可能還沒起作用,例如在多周期程序指令的情況下,其中一些處理操作直到多周期指令全部執(zhí)行的后期才開始。這樣的一個(gè)示例是累積乘法操作,在該操作中,在最終累積發(fā)生之前,乘法部分花了幾個(gè)時(shí)鐘周期。如果與累積相關(guān)聯(lián)的控制信號(hào)中有錯(cuò)誤,并且實(shí)際上不需要累積而只需純的乘法,則有可能在加法器試圖執(zhí)行累積操作之前通過(guò)糾正施加到累積器的控制信號(hào)來(lái)抑制累積。
圖11示出了圖10電路的一個(gè)操作示例。在步驟170,從解碼器164(微編碼ROM)中讀取累積乘法控制信號(hào)。在步驟172,該累積乘法控制信號(hào)被鎖存在無(wú)延遲控制信號(hào)鎖存器166內(nèi),并被輸出到處理器核內(nèi)的各個(gè)處理元件。在步驟174,從寄存器文件中讀取乘法操作數(shù),并開始乘法運(yùn)算。在步驟176,延遲控制信號(hào)鎖存器168對(duì)指令解碼器164輸出的控制信號(hào)進(jìn)行重新采樣。在步驟178,比較無(wú)延遲控制信號(hào)與延遲控制信號(hào)。如果它們相等,那么在步驟180繼續(xù)正常處理。然而,如果它們不等,那么處理進(jìn)入步驟182,在步驟182確定乘法運(yùn)算是否已經(jīng)完成。如果乘法運(yùn)算已經(jīng)完成,那么在步驟184將啟動(dòng)錯(cuò)誤的累積操作,并且用于恢復(fù)的最佳選項(xiàng)是總體上復(fù)位系統(tǒng)。然而,如果乘法運(yùn)算仍在進(jìn)行,則步驟186可用在步驟188產(chǎn)生的期望的乘法運(yùn)算輸出結(jié)果來(lái)復(fù)位加法器,并取消累積操作,這是存儲(chǔ)在指令鎖存器162內(nèi)的程序指令原來(lái)所期望的。
圖12示出了圖1所示電路的修改。在該實(shí)施例中,延遲鎖存器190提供等待/休眠操作模式(低功耗模式)期間所用的數(shù)據(jù)保持(氣球(balloon))鎖存器的附加功能。正常處理操作期間延遲鎖存器190的功能如上所述。然而,當(dāng)休眠控制器192用于開始進(jìn)入低功耗操作模式時(shí),它停止無(wú)延遲時(shí)鐘和延遲時(shí)鐘,以使延遲鎖存器190全部存儲(chǔ)對(duì)應(yīng)于其各自無(wú)延遲鎖存器的數(shù)據(jù)值。在這點(diǎn)上,去掉提供給無(wú)延遲鎖存器及相關(guān)處理電路的電壓,以將它們斷電,并使之失去其狀態(tài)。但是,維持加到無(wú)延遲鎖存器190的電壓,以使它們保持相關(guān)處理電路的狀態(tài)。當(dāng)系統(tǒng)從低功耗模式退出時(shí),再次使處理邏輯和無(wú)延遲鎖存器上電,當(dāng)比較器檢測(cè)到無(wú)延遲鎖存器和延遲鎖存器190中值的差異時(shí),它觸發(fā)以相關(guān)延遲鎖存器190內(nèi)保存的正確值代替無(wú)延遲鎖存器內(nèi)的錯(cuò)誤值。要理解的是,由于延遲鎖存器190所受的嚴(yán)格定時(shí)要求的限制沒有其無(wú)延遲鎖存副本那么嚴(yán)格,因此可用如下方式形成這些延遲鎖存器在低功耗模式(例如高閾值電壓導(dǎo)致較慢的切換,但具有降低的泄露電流)期間,它們可能具有較低的操作速度,但更適于低功耗。這樣,在低功耗模式期間,可將在正常操作期間使用的糾錯(cuò)延遲鎖存器重新用作數(shù)據(jù)保持鎖存器,從而有利地降低相關(guān)電路的總門數(shù)。
圖13是示意性示出圖12電路操作的流程圖。在步驟194,集成電路處于其正常操作處理模式。在步驟196,處理邏輯級(jí)在無(wú)延遲時(shí)間產(chǎn)生輸出信號(hào)。在步驟198,無(wú)延遲鎖存器捕獲該輸出信號(hào)。在步驟200,無(wú)延遲鎖存器內(nèi)的無(wú)延遲信號(hào)被傳遞到下一處理級(jí)。在步驟202,在延遲時(shí)間產(chǎn)生來(lái)自處理級(jí)的輸出,并且該輸出可用于由延遲鎖存器捕獲。在步驟204,觸發(fā)集成電路采用低功耗模式,并且速度控制器192用于啟動(dòng)處理電路的斷電,同時(shí)維持到延遲鎖存器190的功率。在步驟206,延遲鎖存器190捕獲延遲信號(hào)值。有可能在步驟206延遲鎖存器對(duì)延遲信號(hào)值的捕獲發(fā)生在步驟204切換到低功率模式之前。在步驟208,使無(wú)延遲鎖存器斷電,并且其存儲(chǔ)的值丟失。集成電路可保持這個(gè)狀態(tài)很長(zhǎng)時(shí)間。在需要時(shí),步驟210觸發(fā)休眠控制器192退出低功耗模式,并返回到操作模式。在步驟212,恢復(fù)對(duì)無(wú)延遲鎖存器和相關(guān)處理邏輯的上電,其中延遲鎖存器190內(nèi)的延遲數(shù)據(jù)值用于在需要時(shí)重新填充到流水線級(jí),以在進(jìn)入低功耗模式之前恢復(fù)系統(tǒng)的狀態(tài)。
圖14示意性示出了已應(yīng)用糾錯(cuò)控制和延遲鎖存器的多個(gè)處理級(jí)。這些處理級(jí)組成集成電路的一部分,其可以是處理器核內(nèi)同步流水線的一部分、通信總線的一部分或存儲(chǔ)系統(tǒng)的一部分。第一處理級(jí)包括用于數(shù)據(jù)通信的通道或處理邏輯1014、無(wú)延遲鎖存器1016、延遲鎖存器1018、比較器1024,該比較器比較延遲鎖存器與無(wú)延遲鎖存器的輸出,并將控制信號(hào)輸出到多路復(fù)用器1020,以確定是延遲信號(hào)值還是無(wú)延遲信號(hào)值被作為輸入提供給隨后的處理級(jí)或通道1016。由無(wú)延遲時(shí)鐘信號(hào)驅(qū)動(dòng)通道/邏輯1014和無(wú)延遲鎖存器1016,而由延遲時(shí)鐘信號(hào)驅(qū)動(dòng)延遲鎖存器1019,該延遲時(shí)鐘信號(hào)是無(wú)延遲時(shí)鐘信號(hào)的相移版本。
如果比較器1024檢測(cè)到無(wú)延遲信號(hào)值和延遲信號(hào)值之間的差異,則指示在元件1014表示處理邏輯的情況下,在無(wú)延遲捕獲時(shí)間處理操作沒有完成,或在元件1014表示數(shù)據(jù)通道的情況下,來(lái)自先前流水線級(jí)的信號(hào)還沒到達(dá)當(dāng)前級(jí)。在實(shí)際檢測(cè)到這種差異的情況下,存儲(chǔ)在延遲鎖存器1018中的值是更可靠的數(shù)據(jù)值,因?yàn)楫?dāng)處理操作可能已經(jīng)完成或者來(lái)自先前級(jí)的數(shù)據(jù)更可能已經(jīng)由數(shù)據(jù)通道到達(dá)時(shí),隨后捕獲該數(shù)據(jù)值。通過(guò)將來(lái)自延遲鎖存器的結(jié)果提供給下一處理級(jí)1030,并抑制隨后處理級(jí)中無(wú)延遲值的使用,可以確保計(jì)算的向前繼續(xù)進(jìn)行。然而,在發(fā)生單個(gè)事件干擾并破壞了延遲值的情況下,可能損害延遲鎖存器1018中存儲(chǔ)的延遲信號(hào)值的可靠性。單個(gè)事件干擾實(shí)際上是脈沖,因此其可能被無(wú)延遲鎖存器錯(cuò)過(guò),而被延遲鎖存器獲得。這種單個(gè)事件干擾會(huì)使比較器檢測(cè)到延遲值和無(wú)延遲值之間的差異,作為單個(gè)事件干擾的直接結(jié)果,并然后將破壞的延遲值傳播到隨后的處理級(jí)。破壞無(wú)延遲值的單個(gè)事件干擾不會(huì)有問題,因?yàn)樗鼘?dǎo)致抑制錯(cuò)誤的無(wú)延遲值的使用,并將延遲值傳播到隨后級(jí)。
圖14的配置通過(guò)提供數(shù)據(jù)完整性的交叉校驗(yàn)降低了破壞的延遲值通過(guò)計(jì)算前進(jìn)的可能性,該數(shù)據(jù)完整性的交叉校驗(yàn)由錯(cuò)誤檢測(cè)模塊1026、糾錯(cuò)模塊1028和多路復(fù)用器1022提供,該多路復(fù)用器由錯(cuò)誤檢測(cè)模塊1026控制,以將來(lái)自延遲鎖存器的延遲值直接提供給比較器1024,或提供由糾錯(cuò)模塊1028輸出的糾錯(cuò)值。通道/邏輯單元1014的上游,8位數(shù)據(jù)有效負(fù)載被糾錯(cuò)編碼,并且4個(gè)冗余位被加到數(shù)據(jù)有效負(fù)載上,以組成12位信號(hào)。該12位信號(hào)通過(guò)通道/邏輯單元1014,并且無(wú)延遲鎖存器1016和延遲鎖存器1018捕獲其值。然而,來(lái)自延遲鎖存器1018的信號(hào)延遲值還作為輸入提供給錯(cuò)誤檢測(cè)模塊1026,該模塊根據(jù)12位糾錯(cuò)碼信號(hào)確定是否已經(jīng)出現(xiàn)了影響延遲值的任何錯(cuò)誤。在備選配置中,可提供另一鎖存器以將信號(hào)值提供給錯(cuò)誤檢測(cè)模塊1018,該模塊在稍遲于延遲鎖存器1018的時(shí)間上捕獲信號(hào)值。必須在與捕獲延遲值相同或稍晚的時(shí)間上對(duì)捕獲的值執(zhí)行錯(cuò)誤校驗(yàn),以確保檢測(cè)到無(wú)延遲值捕獲與延遲值捕獲之間出現(xiàn)的任何隨機(jī)錯(cuò)誤。
給定的糾錯(cuò)碼能夠檢測(cè)預(yù)定數(shù)量的錯(cuò)誤,并能夠糾正給定數(shù)量的錯(cuò)誤。因此,錯(cuò)誤檢測(cè)模塊1026檢測(cè)是否已經(jīng)出現(xiàn)了任何錯(cuò)誤,并且如果出現(xiàn)了,如果錯(cuò)誤數(shù)足夠小則它們都能被糾正。如果檢測(cè)到可糾正的錯(cuò)誤,則將信號(hào)值提供給糾錯(cuò)模塊1028,在該模塊使用糾錯(cuò)碼糾正錯(cuò)誤,并將糾正的延遲值提供給比較器1024。如果比較器1024確定糾正的延遲值和無(wú)延遲值不同,則啟用錯(cuò)誤恢復(fù)程序,以便在隨后的處理級(jí)中抑制無(wú)延遲值的進(jìn)一步傳播,并用糾正的延遲值來(lái)代替執(zhí)行操作。另一方面,如果比較器1024確定糾正的延遲值和延遲值相同,則存在進(jìn)行計(jì)算的兩種備選可能性。首先,還是可以啟用錯(cuò)誤恢復(fù)機(jī)制,以便在隨后的處理級(jí)中抑制無(wú)延遲值,并用正確的延遲值代替。備選地,由于確定已糾正了無(wú)延遲值(如無(wú)延遲值和糾正的延遲值的相等所證實(shí)的),因此可抑制錯(cuò)誤恢復(fù)機(jī)制(不管延遲值中的錯(cuò)誤檢測(cè)),從而使無(wú)延遲值可繼續(xù)通過(guò)隨后處理級(jí)前進(jìn)。然而,如果錯(cuò)誤檢測(cè)模塊1026檢測(cè)到延遲值中不可糾正的錯(cuò)誤,則提供控制信號(hào)來(lái)抑制破壞的延遲值的使用。在此情況下,不能獲得計(jì)算的向前進(jìn)行。應(yīng)用的糾錯(cuò)編碼的類型根據(jù)通道/處理邏輯1014的特性而不同。
處理邏輯可分類為傳值或變值。傳值處理邏輯的例子是存儲(chǔ)器、寄存器和多路復(fù)用器。變值處理邏輯元件的例子是加法器、乘法器和移位器。用于變值處理邏輯元件的錯(cuò)誤檢測(cè)和糾正比用于傳值處理邏輯元件的更復(fù)雜,因?yàn)榧词乖跊]出現(xiàn)錯(cuò)誤時(shí),邏輯級(jí)1014輸出的值也可能與輸入12位信號(hào)1013不同。
圖15示意性示出了通過(guò)通道的數(shù)據(jù)糾錯(cuò),其中如果沒有出現(xiàn)錯(cuò)誤,則只將未改變的數(shù)據(jù)值從輸入傳到輸出。在這種傳值處理邏輯的情況下,便于使用線性分組碼,諸如用于糾錯(cuò)和檢錯(cuò)的漢明碼。線性分組碼通常涉及形成碼字,其中原始數(shù)據(jù)有效負(fù)載位在碼字中保持不變,只添加一些奇偶校驗(yàn)位(或冗余位)。漢明碼是簡(jiǎn)單的一位糾錯(cuò)碼,并且對(duì)于(N,K)碼而言,N是碼字中的總位數(shù),K是要編碼的數(shù)據(jù)位數(shù)。通過(guò)對(duì)輸出碼字執(zhí)行多個(gè)奇偶校驗(yàn)來(lái)檢測(cè)錯(cuò)誤的存在和位置。漢明碼包括N-K個(gè)奇偶校驗(yàn)位,根據(jù)數(shù)據(jù)中不同的位組合來(lái)計(jì)算每個(gè)奇偶校驗(yàn)位。漢明碼能夠糾正一個(gè)錯(cuò)誤或檢測(cè)出兩個(gè)錯(cuò)誤。奇偶校驗(yàn)位(或所需冗余位)數(shù)由漢明規(guī)則K+p+1≤2p給定,其中p是奇偶校驗(yàn)位數(shù),且N=K+p。
如圖15所示,通道的輸入是12位碼字,其包括8個(gè)數(shù)據(jù)位和4個(gè)奇偶校驗(yàn)位或冗余位。錯(cuò)誤檢測(cè)/糾正模塊1116對(duì)來(lái)自通道1114的輸出執(zhí)行奇偶校驗(yàn)。在錯(cuò)誤檢測(cè)/糾正模塊1116輸出碼字之前,檢測(cè)并糾正12位碼字中的任一位錯(cuò)誤。如果檢測(cè)的錯(cuò)誤是不可糾正的,則錯(cuò)誤檢測(cè)/糾正模塊1116輸出指示這種情況的信號(hào)。雖然已針對(duì)圖11描述了用于傳值處理邏輯的簡(jiǎn)單代碼,諸如漢明碼,但要理解到也可使用諸如卷積碼的其它糾錯(cuò)碼。
圖16示意性地示出了對(duì)于變值邏輯元件(諸如加法器、乘法器或移位器)如何執(zhí)行糾錯(cuò)。在變值處理邏輯的情況下,可使用算術(shù)代碼,諸如AN碼、剩余碼、反剩余碼或剩余數(shù)字碼,來(lái)檢測(cè)和糾正處理邏輯輸出中的隨機(jī)錯(cuò)誤。
算術(shù)代碼可用于校驗(yàn)算術(shù)運(yùn)算符。其中表示要校驗(yàn)的運(yùn)算符,必須滿足如下關(guān)系Code(XY)=code Xcode YAN碼是包括用常數(shù)因子乘以數(shù)據(jù)字的算術(shù)代碼,例如,3N碼可用于通過(guò)執(zhí)行以下比較來(lái)校驗(yàn)加法運(yùn)算的有效性3N(X)+3N(Y)?=3N(X+Y)3X+3Y?=3(X+Y).
算術(shù)代碼類的另一個(gè)例子是剩余碼,其中將余數(shù)(除以常數(shù)的余數(shù))加到數(shù)據(jù)位作為校驗(yàn)位,例如,3R碼包括模(MOD)3操作,并且應(yīng)用如下校驗(yàn)X MOD 3+Y MOD 3?=(X+Y)MOD 3考慮X=14和Y=7的數(shù)字例子14 MOD 3=2(碼字111010,后兩位作為余數(shù));7 MOD 3=1(碼字011101);X+Y=21(10101);且21 MOD 3=0;余數(shù)的和MOD 3=(2+1)MOD 3=0=(X+Y)的余數(shù)。
圖16示意性示出了用于校驗(yàn)圖10的通道/邏輯單元1014中的加法運(yùn)算的7R算術(shù)代碼的使用。要校驗(yàn)的加法運(yùn)算是X+Y,其中X和Y是8位數(shù)據(jù)字。每個(gè)數(shù)據(jù)字具有4個(gè)校驗(yàn)位,這4個(gè)校驗(yàn)位分別具有X MOD 7和Y MOD 7的值。X MOD 7和Y MOD 7作為操作數(shù)提供給第一加法器1210,并且該加法器的輸出被提供給確定值(X MOD 7+Y MOD 7)MOD 7并將結(jié)果作為第一輸入提供給比較器1250的邏輯。第二加法器1230執(zhí)行加法(X+Y),將結(jié)果提供給邏輯單元1240,該單元計(jì)算(X+Y)MOD 7,并將結(jié)果作為第二輸入提供給比較器1250。如果比較器檢測(cè)到兩個(gè)輸入值之間的任何差異,則出現(xiàn)了錯(cuò)誤。
圖17是示意性示出包括延遲鎖存值糾錯(cuò)控制的圖14電路操作的流程圖。在步驟1310,將12位糾錯(cuò)碼信號(hào)值輸入到通道/邏輯單元1014。下面在步驟1320,無(wú)延遲鎖存器1016在時(shí)間Ti捕獲來(lái)自通道/邏輯單元1014的輸出,并在步驟1330將捕獲值轉(zhuǎn)到隨后的i+1處理邏輯級(jí)。在步驟1340,延遲鎖存器1018在時(shí)間Ti+d捕獲輸出信號(hào)。在步驟1350,錯(cuò)誤檢測(cè)邏輯在時(shí)間Ti+(d+δ)捕獲來(lái)自通道/邏輯單元1014的輸出。雖然在優(yōu)選配置中δ是0,以使實(shí)際上錯(cuò)誤校驗(yàn)由延遲值本身輸出的值,但備選地可在延遲鎖存器在Ti+d捕獲輸出信號(hào)之后的短時(shí)間捕獲該輸出。適當(dāng)安排提供給錯(cuò)誤檢測(cè)電路的值的捕獲,以可確保檢測(cè)到延遲值中的任何隨機(jī)錯(cuò)誤。在步驟1360,錯(cuò)誤檢測(cè)模塊1026使用冗余位來(lái)確定延遲的輸出信號(hào)是否有錯(cuò)誤。如果檢測(cè)到錯(cuò)誤,則在步驟1370確定該錯(cuò)誤是否是可糾正的,這取決于有多少位受到影響。例如,漢明碼僅可糾正1位錯(cuò)誤。如果在步驟1370確定錯(cuò)誤是可糾正的,那么過(guò)程進(jìn)入步驟1390,在此糾正錯(cuò)誤,并在多路復(fù)用器1022上選擇糾正的延遲值,并將該值提供給比較器1024。但是,如果在步驟1370確定檢測(cè)的錯(cuò)誤不可糾正,則產(chǎn)生指示出現(xiàn)了不可糾正錯(cuò)誤的控制信號(hào)。在此情況下,不能可靠地執(zhí)行計(jì)算的向前繼續(xù)進(jìn)行。在步驟1392,比較器1024確定錯(cuò)誤校驗(yàn)的延遲值是否等于無(wú)延遲值,并且如果等于,則繼續(xù)計(jì)算的向前進(jìn)行。否則執(zhí)行針對(duì)圖4B描述的一系列步驟的過(guò)程,包括抑制無(wú)延遲值,并由隨后處理級(jí)中的延遲值代替該無(wú)延遲值。
圖18示出了使用本技術(shù)動(dòng)態(tài)調(diào)節(jié)處理級(jí)間的相對(duì)同步。眾所周知,在流水線處理環(huán)境中,處理級(jí)可用不同時(shí)間來(lái)完成它們各自的操作。理想情況是,處理級(jí)都保持平衡以花相同時(shí)間,并且它們各自的時(shí)間隨周圍條件的改變以相同方式改變。然而,在許多情況下這是不實(shí)際的,并且有可能在一個(gè)工作電壓或溫度上平衡的處理級(jí)集在另一工作電壓或溫度上卻不平衡。此外,制造偏差和其它特性也可能導(dǎo)致處理級(jí)同步之間的較大差異,這干擾了其間的設(shè)計(jì)平衡。在這些情況下,相對(duì)于最壞情況選擇時(shí)鐘頻率和其它操作參數(shù),使得處理級(jí)充分接近平衡,以便在所有情況下都是可操作的。
本技術(shù)允許采用更有選擇性和真正動(dòng)態(tài)的方法。流水線處理電路2000包括延遲鎖存器2002,該延遲鎖存器可用于檢測(cè)由無(wú)延遲鎖存器捕獲的信號(hào)值中出現(xiàn)的錯(cuò)誤。出現(xiàn)的這些錯(cuò)誤被反饋回時(shí)鐘相位控制電路204,該電路調(diào)節(jié)提供給主路徑中各個(gè)鎖存器(即無(wú)延遲鎖存器)的時(shí)鐘信號(hào)的相對(duì)相位。這樣進(jìn)行調(diào)節(jié),借此時(shí)間被從一個(gè)處理級(jí)有效地借用,并分配給另一個(gè)處理級(jí)。這可通過(guò)利用來(lái)自傳播基本時(shí)鐘信號(hào)的延遲線內(nèi)可選擇位置的各個(gè)無(wú)延遲鎖存器要使用的時(shí)鐘信號(hào)來(lái)獲得。
示出的例子,鎖存器LA和LB之間的處理邏輯在操作上要比隨后級(jí)中的處理邏輯慢。相應(yīng)地,提供給無(wú)延遲鎖存器LB的時(shí)鐘信號(hào)可被移相,以便延遲時(shí)鐘信號(hào)的上升沿(假設(shè)上升沿鎖存器捕獲),并從而擴(kuò)展了可用于慢處理邏輯的時(shí)間。這減少了隨后處理級(jí)內(nèi)處理邏輯可用的時(shí)間,在此假設(shè)在與除鎖存器LB之外的其它級(jí)元件相同的基本時(shí)鐘信號(hào)上操作。
在電路進(jìn)行操作期間,使用來(lái)自使用延遲鎖存器檢測(cè)的操作中的錯(cuò)誤的反饋,來(lái)動(dòng)態(tài)執(zhí)行處理級(jí)間的同步平衡。備選地,在制造測(cè)試階段期間或在集成電路的“黃金引導(dǎo)(golden boot)”期間,該平衡可執(zhí)行為一次性操作。圖18所示的延遲鎖存器用于處理級(jí)之間的同步平衡,并且之后可用于如上針對(duì)圖1描述的操作參數(shù)和糾錯(cuò)的控制。這樣,提供延遲鎖存器還用于控制相對(duì)的時(shí)鐘同步。
圖19示出了基于全局時(shí)鐘選通的流水線錯(cuò)誤恢復(fù)的簡(jiǎn)單方法。在任一級(jí)檢測(cè)到錯(cuò)誤的情況下,通過(guò)選通下一個(gè)全局時(shí)鐘邊沿,使整個(gè)流水線停止一個(gè)周期。附加時(shí)鐘周期允許每一級(jí)使用延遲鎖存器作為輸入來(lái)重新計(jì)算其結(jié)果。因此,將用來(lái)自延遲鎖存器的正確值代替任何先前轉(zhuǎn)發(fā)的錯(cuò)誤值。由于所有級(jí)都用延遲鎖存器輸入來(lái)重新評(píng)估其結(jié)果,因此在單個(gè)周期中可容忍任何數(shù)量的錯(cuò)誤,并保證向前繼續(xù)前進(jìn)。如果所有級(jí)在每個(gè)周期都產(chǎn)生錯(cuò)誤,則流水線將繼續(xù)運(yùn)行,但速度為正常速度的1/2。
重要的是,在比較器驗(yàn)證了錯(cuò)誤的流水線結(jié)果之前,不將它寫入結(jié)構(gòu)狀態(tài)。由于延遲值的驗(yàn)證花了兩個(gè)附加周期(即,一個(gè)用于錯(cuò)誤檢測(cè),一個(gè)用于應(yīng)急檢測(cè)),在上一延遲鎖存器和回寫(WB)級(jí)之間必須有兩個(gè)非推測(cè)(non-speculative)級(jí)。在設(shè)計(jì)中,存儲(chǔ)器對(duì)數(shù)據(jù)高速緩存的存取是非推測(cè)性的,因此,在回寫(WB)之前只需一個(gè)標(biāo)記為ST用于穩(wěn)定的附加級(jí)。ST級(jí)引入寄存器旁路的附加電平。由于存儲(chǔ)指令必須非推測(cè)性地執(zhí)行,因此在流水線的WB級(jí)執(zhí)行這些存儲(chǔ)指令。
圖19給出了在流水線EX級(jí)中失效的指令的流水線恢復(fù)的流水線時(shí)序圖。第一失效級(jí)計(jì)算發(fā)生在第四周期,但只在MEM級(jí)已使用從EX級(jí)轉(zhuǎn)發(fā)的錯(cuò)誤值計(jì)算出錯(cuò)誤結(jié)果之后。在檢測(cè)到錯(cuò)誤之后,在第六周期發(fā)生全局時(shí)鐘停止,允許由MEM級(jí)來(lái)評(píng)估Razor陰影鎖存器中的正確的EX結(jié)果。在第七周期,重新開始正常的流水線操作。
在積極的時(shí)鐘設(shè)計(jì)中,不可能在不嚴(yán)重影響處理器周期時(shí)間的情況下實(shí)現(xiàn)全局時(shí)鐘選通。因此,已實(shí)現(xiàn)了基于逆流、流水線技術(shù)的完全流水線錯(cuò)誤恢復(fù)機(jī)制。圖20所示的方法,以在幾個(gè)周期上擴(kuò)展流水線恢復(fù)為代價(jià),在基線流水線設(shè)計(jì)上放置了可以忽略的同步限制。在檢測(cè)到無(wú)延遲值錯(cuò)誤時(shí),必須執(zhí)行兩個(gè)特定操作。首先,必須使失效的無(wú)延遲鎖存器之后的錯(cuò)誤級(jí)計(jì)算無(wú)效。使用磁泡信號(hào)實(shí)現(xiàn)該操作,磁泡信號(hào)指示下一個(gè)及隨后級(jí)的流水線槽是空的。其次,通過(guò)斷言(assert)失效級(jí)的級(jí)ID來(lái)觸發(fā)刷新串(train)。在隨后的周期中,來(lái)自延遲鎖存器數(shù)據(jù)的糾正值被注回流水線,使錯(cuò)誤指令可以繼續(xù)其正確輸入。此外,存在逆流流水線,借此刷新串開始在指令的相反方向傳播失效級(jí)的ID。在由有效刷新串訪問的每一級(jí)上,用磁泡代替相應(yīng)流水線級(jí)和前一級(jí)。(必須使兩個(gè)級(jí)無(wú)效以占兩倍的主流水線相對(duì)速度。)在刷新ID到達(dá)流水線的起點(diǎn)時(shí),刷新控制邏輯重新啟動(dòng)錯(cuò)誤指令之后指令處的流水線。當(dāng)多級(jí)在同一周期發(fā)生錯(cuò)誤時(shí),所有都將開始恢復(fù),但只有最接近回寫(WB)的無(wú)延遲錯(cuò)誤將完成。后面的會(huì)刷新較早的恢復(fù)。要注意的是,逆流流水線可以和前向流水線的長(zhǎng)度不同,以使例如逆流流水線的刷新串可以是2個(gè)流水線級(jí)深,而前向流水線可以是12級(jí)深。
圖20示出了在EX級(jí)中失效的指令的流水線恢復(fù)的流水線時(shí)序圖。與先前的例子一樣,當(dāng)?shù)诙噶钣?jì)算流水線EX級(jí)中的錯(cuò)誤結(jié)果時(shí),第一失效級(jí)計(jì)算發(fā)生在第四周期。在第五周期檢測(cè)該錯(cuò)誤,使得從MEM級(jí)傳播磁泡和啟動(dòng)刷新串。分別在第六、第七和第八周期刷新EX、ID和IF級(jí)中的指令。最后,在第九周期在錯(cuò)誤指令之后重新啟動(dòng)流水線,其后重新開始正常的流水線操作。
從以上圖2的描述中可回想到,在電路102檢測(cè)到錯(cuò)誤信號(hào)中的亞穩(wěn)態(tài)的情況下,斷言應(yīng)急信號(hào)。在此情況下,應(yīng)重新執(zhí)行當(dāng)前指令(而不是下一指令)。在斷言這種應(yīng)急信號(hào)時(shí),刷新所有流水線狀態(tài),并緊隨最少指令回寫之后,重新啟動(dòng)流水線。應(yīng)急情況使得向前繼續(xù)進(jìn)行的保證復(fù)雜化,因?yàn)闄z測(cè)該情況過(guò)程中的延遲可能導(dǎo)致在延遲鎖存器中重寫正確結(jié)果。因此,在經(jīng)歷了應(yīng)急之后,電源電壓被復(fù)位到已知安全的工作電平,并重新啟動(dòng)流水線。一旦重新調(diào)諧,只要返回被禁止直到該指令完成后為止,錯(cuò)誤指令就應(yīng)該無(wú)錯(cuò)地完成。
流水線恢復(fù)控制的關(guān)鍵要求是,即使在最壞的工作條件下(例如低電壓、高溫和高加工差異)它也不失效。這個(gè)要求通過(guò)保守的設(shè)計(jì)方法來(lái)滿足,該方法以最壞情況亞臨界電壓使錯(cuò)誤恢復(fù)電路的同步有效。
圖21示意性地示出了作為串行掃描鏈鎖存器的延遲鎖存器2100的再使用。這通過(guò)提供由掃描允許信號(hào)控制的多路復(fù)用器2102來(lái)實(shí)現(xiàn),該掃描允許信號(hào)允許將串行掃描數(shù)據(jù)值寫入延遲鎖存器,或根據(jù)需要從延遲鎖存器中串行地讀取該值。此外,使用允許延遲鎖存值取代無(wú)延遲鎖存值的正常機(jī)制,將串行掃描鏈值插入操作路徑中。
權(quán)利要求
1.一種用于執(zhí)行數(shù)據(jù)處理的集成電路,所述集成電路包括錯(cuò)誤檢測(cè)器,可操作用于通過(guò)對(duì)所述集成電路內(nèi)的數(shù)據(jù)信號(hào)值進(jìn)行復(fù)式采樣來(lái)檢測(cè)所述集成電路操作中的錯(cuò)誤,采樣值間的差異表示錯(cuò)誤;錯(cuò)誤修復(fù)邏輯,響應(yīng)所述錯(cuò)誤檢測(cè)器,并可操作用于修復(fù)操作中的所述錯(cuò)誤;以及操作參數(shù)控制器,可操作用于控制所述集成電路的一個(gè)或多個(gè)性能控制操作參數(shù);其中所述操作參數(shù)控制器根據(jù)所述錯(cuò)誤檢測(cè)器檢測(cè)的一個(gè)或多個(gè)錯(cuò)誤特性來(lái)動(dòng)態(tài)控制所述一個(gè)或多個(gè)性能控制參數(shù)中的至少一個(gè),以維持操作中的非零出錯(cuò)率,所述錯(cuò)誤修復(fù)邏輯修復(fù)操作中的所述錯(cuò)誤,以使所述集成電路的數(shù)據(jù)處理繼續(xù)。
2.如權(quán)利要求1所述的集成電路,其中所述復(fù)式采樣是在各個(gè)不同的時(shí)間檢測(cè)采樣點(diǎn)上的信號(hào)值。
3.如權(quán)利要求1或2中任一項(xiàng)所述的集成電路,其中所述操作參數(shù)控制器應(yīng)用反饋控制,以根據(jù)所述錯(cuò)誤檢測(cè)器檢測(cè)的所述一個(gè)或多個(gè)錯(cuò)誤特性來(lái)調(diào)節(jié)所述一個(gè)或多個(gè)性能控制參數(shù)中的所述至少一個(gè)。
4.如權(quán)利要求1、2或3中任一項(xiàng)所述的集成電路,其中所述錯(cuò)誤檢測(cè)器檢測(cè)的所述一個(gè)或多個(gè)錯(cuò)誤特性至少包括以下一項(xiàng)由所述錯(cuò)誤檢測(cè)器檢測(cè)的所述錯(cuò)誤的錯(cuò)誤率;以及由所述錯(cuò)誤檢測(cè)器檢測(cè)的所述錯(cuò)誤的所述錯(cuò)誤修復(fù)邏輯的修復(fù)所引起的處理性能的下降。
5.如上述權(quán)利要求任一項(xiàng)所述的集成電路,其中所述一個(gè)或多個(gè)性能控制參數(shù)至少包括以下一項(xiàng)工作電壓;工作頻率;集成電路體偏壓;以及溫度。
6.如上述權(quán)利要求任一項(xiàng)所述的集成電路,包括多個(gè)處理級(jí),來(lái)自至少一個(gè)處理級(jí)的處理級(jí)輸出信號(hào)被作為處理級(jí)輸入信號(hào)提供給后面的處理級(jí),其中所述至少一個(gè)處理級(jí)包括處理邏輯,可操作用于對(duì)至少一個(gè)處理級(jí)輸入值執(zhí)行處理操作,以產(chǎn)生處理邏輯輸出信號(hào);無(wú)延遲鎖存器,可操作用于在無(wú)延遲捕獲時(shí)間捕獲所述處理邏輯輸出信號(hào)的無(wú)延遲值,在所述無(wú)延遲捕獲時(shí)間之后,所述無(wú)延遲值被作為所述處理級(jí)輸出信號(hào)提供給所述后面的處理級(jí);以及延遲鎖存器,可操作用于在遲于所述無(wú)延遲捕獲時(shí)間的延遲捕獲時(shí)間上捕獲所述處理邏輯輸出信號(hào)的延遲值;其中所述錯(cuò)誤檢測(cè)器包括比較器,所述比較器可操作用于在所述無(wú)延遲捕獲時(shí)間之后比較所述無(wú)延遲值和所述延遲值,以檢測(cè)所述處理邏輯輸出信號(hào)中的改變,所述改變表示所述處理邏輯在所述無(wú)延遲捕獲時(shí)間沒有完成所述處理操作;并且當(dāng)所述比較器檢測(cè)到所述改變時(shí),所述錯(cuò)誤修復(fù)邏輯可操作用于執(zhí)行錯(cuò)誤修復(fù)操作,所述錯(cuò)誤修復(fù)操作抑制所述后面的處理級(jí)使用所述無(wú)延遲值。
7.如權(quán)利要求6所述的集成電路,包括亞穩(wěn)態(tài)檢測(cè)器,所述亞穩(wěn)態(tài)檢測(cè)器可操作用于檢測(cè)所述無(wú)延遲值中的亞穩(wěn)態(tài),并在發(fā)現(xiàn)是亞穩(wěn)態(tài)的情況下,觸發(fā)所述錯(cuò)誤修復(fù)邏輯,以抑制所述無(wú)延遲值的使用。
8.如權(quán)利要求6和7中任一項(xiàng)所述的集成電路,其中在所述比較器檢測(cè)到所述改變時(shí),所述錯(cuò)誤修復(fù)邏輯可操作用于以所述延遲值代替所述無(wú)延遲值作為所述處理級(jí)輸出信號(hào)。
9.如權(quán)利要求8所述的集成電路,其中所述延遲值提供給所述后面的處理級(jí)迫使通過(guò)處理操作向前繼續(xù)進(jìn)行。
10.如權(quán)利要求6-9中任一項(xiàng)所述的集成電路,其中當(dāng)所述比較器檢測(cè)到所述改變時(shí),所述錯(cuò)誤修復(fù)邏輯可操作用于迫使所述延遲值存儲(chǔ)在所述無(wú)延遲鎖存器中取代所述無(wú)延遲值。
11.如權(quán)利要求6-10中任一項(xiàng)所述的集成電路,其中無(wú)延遲時(shí)鐘信號(hào)驅(qū)動(dòng)所述處理級(jí)和所述后面的處理級(jí)內(nèi)的處理操作。
12.如權(quán)利要求11所述的集成電路,其中當(dāng)所述比較器檢測(cè)到所述改變時(shí),所述錯(cuò)誤修復(fù)邏輯可操作用于選通所述無(wú)延遲時(shí)鐘信號(hào),以為所述后面的處理級(jí)提供時(shí)間來(lái)恢復(fù)所述無(wú)延遲值的輸入,并代替使用所述延遲值。
13.如權(quán)利要求12所述的集成電路,其中所述無(wú)延遲捕獲時(shí)間來(lái)自所述無(wú)延遲時(shí)鐘信號(hào)的預(yù)定相點(diǎn),所述無(wú)延遲時(shí)鐘信號(hào)的相位延遲版本用作延遲時(shí)鐘信號(hào),并且所述延遲捕獲時(shí)間來(lái)自所述延遲時(shí)鐘信號(hào)的預(yù)定相點(diǎn)。
14.如權(quán)利要求6-13中任一項(xiàng)所述的集成電路,其中所述多個(gè)處理級(jí)是同步流水線內(nèi)的各個(gè)流水線級(jí)。
15.如權(quán)利要求6-14中任一項(xiàng)所述的集成電路,其中所述處理操作所花的最小處理時(shí)間大于分離所述延遲捕獲時(shí)間和所述無(wú)延遲捕獲時(shí)間的時(shí)間,以使所述延遲值不受對(duì)不同輸入值進(jìn)行處理操作的影響。
16.如權(quán)利要求15所述的集成電路,其中所述處理邏輯包括一個(gè)或多個(gè)延遲元件,以確保超過(guò)所述最小處理時(shí)間。
17.如權(quán)利要求6-16中任一項(xiàng)所述的集成電路,其中所述處理操作所花的最大處理時(shí)間小于分離所述延遲捕獲時(shí)間和所述無(wú)延遲捕獲時(shí)間的時(shí)間與無(wú)延遲捕獲時(shí)間之間的時(shí)間的總和,以使在所述延遲捕獲時(shí)間內(nèi)所述處理邏輯將完成所述處理操作。
18.如權(quán)利要求6-17中任一項(xiàng)所述的集成電路,其中所述處理級(jí)是數(shù)據(jù)處理器的一部分。
19.如權(quán)利要求6-18中任一項(xiàng)所述的集成電路,包括錯(cuò)誤計(jì)數(shù)器電路,所述計(jì)數(shù)器電路可操作用于存儲(chǔ)對(duì)應(yīng)于所述改變的錯(cuò)誤檢測(cè)計(jì)數(shù)。
20.如權(quán)利要求19所述的集成電路,其中所述計(jì)數(shù)可通過(guò)軟件讀取。
21.一種用于控制執(zhí)行數(shù)據(jù)處理的集成電路的方法,所述方法包括如下步驟通過(guò)對(duì)所述集成電路內(nèi)的數(shù)據(jù)信號(hào)值進(jìn)行復(fù)式采樣來(lái)檢測(cè)所述集成電路操作中的錯(cuò)誤,采樣值間的差異表示錯(cuò)誤;修復(fù)檢測(cè)的操作中錯(cuò)誤;并且控制所述集成電路的一個(gè)或多個(gè)性能控制操作參數(shù);其中根據(jù)一個(gè)或多個(gè)檢測(cè)錯(cuò)誤特性來(lái)控制所述一個(gè)或多個(gè)性能控制參數(shù)中的至少一個(gè),以維持操作中的非零出錯(cuò)率,修復(fù)操作中的所述錯(cuò)誤,以使所述集成電路的數(shù)據(jù)處理繼續(xù)。
22.如權(quán)利要求21所述的方法,其中所述復(fù)式采樣是在各個(gè)不同的時(shí)間檢測(cè)采樣點(diǎn)上的信號(hào)值。
23.如權(quán)利要求21和22中任一項(xiàng)所述的方法,其中所述控制步驟應(yīng)用反饋控制,以根據(jù)所述一個(gè)或多個(gè)檢測(cè)錯(cuò)誤特性來(lái)調(diào)節(jié)所述一個(gè)或多個(gè)性能控制參數(shù)中的所述至少一個(gè)。
24.如權(quán)利要求21、22和23中任一項(xiàng)所述的方法,其中所述一個(gè)或多個(gè)檢測(cè)錯(cuò)誤特性至少包括以下一項(xiàng)檢測(cè)錯(cuò)誤的錯(cuò)誤率;以及由檢測(cè)錯(cuò)誤的修復(fù)引起的處理性能的下降。
25.如權(quán)利要求21-24中任一項(xiàng)所述的方法,其中所述一個(gè)或多個(gè)性能控制參數(shù)至少包括以下一項(xiàng)工作電壓;工作頻率;集成電路體偏壓;以及溫度。
26.如權(quán)利要求21-25中任一項(xiàng)所述的方法,包括如下步驟將來(lái)自多個(gè)處理級(jí)中至少一個(gè)處理級(jí)的處理級(jí)輸出信號(hào)作為處理級(jí)輸入信號(hào)提供給后面的處理級(jí),所述至少一個(gè)處理級(jí)操作用于用數(shù)據(jù)處理邏輯對(duì)至少一個(gè)處理級(jí)輸入值執(zhí)行處理操作,以產(chǎn)生處理邏輯輸出信號(hào);在無(wú)延遲捕獲時(shí)間捕獲所述處理邏輯輸出信號(hào)的無(wú)延遲值,在所述無(wú)延遲捕獲時(shí)間之后,所述無(wú)延遲值被作為所述處理級(jí)輸出信號(hào)提供給所述后面的處理級(jí);以及在遲于所述無(wú)延遲捕獲時(shí)間的延遲捕獲時(shí)間上,捕獲所述處理邏輯輸出信號(hào)的延遲值;其中檢測(cè)錯(cuò)誤包括在所述無(wú)延遲捕獲時(shí)間之后比較所述無(wú)延遲值和所述延遲值,以檢測(cè)所述處理邏輯輸出信號(hào)中的改變,所述改變表示在所述無(wú)延遲捕獲時(shí)間所述處理邏輯沒完成所述處理操作;以及所述修復(fù)檢測(cè)錯(cuò)誤的步驟包括抑制所述后面的處理級(jí)使用所述無(wú)延遲值。
27.如權(quán)利要求26所述的方法,包括檢測(cè)所述無(wú)延遲值中的亞穩(wěn)態(tài),并在發(fā)現(xiàn)是亞穩(wěn)態(tài)的情況下觸發(fā)抑制所述無(wú)延遲值的使用。
28.如權(quán)利要求26和27中任一項(xiàng)所述的方法,其中在檢測(cè)到所述改變時(shí),用所述延遲值代替所述無(wú)延遲值作為所述處理級(jí)輸出信號(hào)。
29.如權(quán)利要求26、27和28中任一項(xiàng)所述的方法,其中將所述延遲值提供給所述后面的處理級(jí)迫使通過(guò)處理操作向前繼續(xù)進(jìn)行。
30.如權(quán)利要求26-29中任一項(xiàng)所述的方法,其中在檢測(cè)到所述改變時(shí),迫使代替所述無(wú)延遲值而存儲(chǔ)所述延遲值。
31.如權(quán)利要求26-30中任一項(xiàng)所述的方法,其中由無(wú)延遲時(shí)鐘信號(hào)驅(qū)動(dòng)所述處理級(jí)和所述后面的處理級(jí)內(nèi)的處理操作。
32.如權(quán)利要求31所述的方法,其中當(dāng)在所述比較步驟檢測(cè)到改變時(shí),所述錯(cuò)誤修復(fù)操作包括選通所述無(wú)延遲時(shí)鐘信號(hào),以為所述后面的處理級(jí)提供時(shí)間來(lái)恢復(fù)所述無(wú)延遲值的輸入,并代替使用所述延遲值。
33.如權(quán)利要求32所述的方法,其中所述無(wú)延遲捕獲時(shí)間來(lái)自所述無(wú)延遲時(shí)鐘信號(hào)的預(yù)定相點(diǎn),所述無(wú)延遲時(shí)鐘信號(hào)的相位延遲版本用作延遲時(shí)鐘信號(hào),并且所述延遲捕獲時(shí)間來(lái)自所述延遲時(shí)鐘信號(hào)的預(yù)定相點(diǎn)。
34.如權(quán)利要求26-33中任一項(xiàng)所述的方法,其中所述多個(gè)處理級(jí)是同步流水線內(nèi)的各個(gè)流水線級(jí)。
35.如權(quán)利要求26-34中任一項(xiàng)所述的方法,其中所述處理操作所花的最小處理時(shí)間大于分離所述延遲捕獲時(shí)間和所述無(wú)延遲捕獲時(shí)間的時(shí)間,以使所述延遲值不受對(duì)不同輸入值執(zhí)行的處理操作的影響。
36.如權(quán)利要求35所述的方法,其中所述處理邏輯包括一個(gè)或多個(gè)延遲元件,以確保超過(guò)所述最小處理時(shí)間。
37.如權(quán)利要求26-36中任一項(xiàng)所述的方法,其中所述處理操作所花的最大處理時(shí)間小于分離所述延遲捕獲時(shí)間和所述無(wú)延遲捕獲時(shí)間的時(shí)間與無(wú)延遲捕獲時(shí)間之間的時(shí)間的總和,以使所述處理邏輯在所述延遲捕獲時(shí)間內(nèi)將完成所述處理操作。
38.如權(quán)利要求26-37中任一項(xiàng)所述的方法,其中所述處理級(jí)是數(shù)據(jù)處理器的一部分。
39.如權(quán)利要求26-38中任一項(xiàng)所述的方法,包括存儲(chǔ)對(duì)應(yīng)于所述改變的錯(cuò)誤檢測(cè)計(jì)數(shù)的步驟。
40.如權(quán)利要求39所述的方法,其中所述計(jì)數(shù)可通過(guò)軟件讀取。
全文摘要
集成電路包括多個(gè)處理級(jí),每個(gè)處理級(jí)包括處理邏輯(2)、無(wú)延遲鎖存器(4)、延遲鎖存器(8)和比較器(6)。無(wú)延遲鎖存器(4)在無(wú)延遲捕獲時(shí)間從處理邏輯(2)捕獲輸出。在以后的延遲捕獲時(shí)間,延遲鎖存器(8)也捕獲來(lái)自處理邏輯(2)的值。比較器(6)比較這些值,并且如果它們不相等,則指示無(wú)延遲值捕獲得太快,并且應(yīng)該由延遲值代替。緊接著無(wú)延遲值的捕獲,該無(wú)延遲值被傳遞到隨后的處理級(jí),并相應(yīng)地使用錯(cuò)誤恢復(fù)機(jī)制來(lái)抑制隨后處理級(jí)已發(fā)生的錯(cuò)誤處理,諸如在重新啟動(dòng)時(shí)鐘之前選通時(shí)鐘,并使正確信號(hào)值可通過(guò)隨后的處理邏輯傳播。調(diào)節(jié)集成電路的操作參數(shù),諸如時(shí)鐘頻率、工作電壓、體偏壓、溫度等,以便以增加總體性能的方式維持有限的非零出錯(cuò)率。
文檔編號(hào)G06F11/16GK1761946SQ200480007338
公開日2006年4月19日 申請(qǐng)日期2004年2月26日 優(yōu)先權(quán)日2003年3月20日
發(fā)明者K·弗勞特納, T·M·奧斯丁, D·T·布勞夫, T·N·馬奇 申請(qǐng)人:Arm有限公司, 密執(zhí)安大學(xué)