專利名稱::集成電路處理級(jí)中的差錯(cuò)恢復(fù)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及集成電^各領(lǐng)域。更具體地說(shuō),本發(fā)明涉及檢測(cè)在集成電路處理級(jí)中的操作差錯(cuò)并從這類差錯(cuò)中恢復(fù)。
背景技術(shù):
:提供串聯(lián)連接處理級(jí)(例如流水線電路)的集成電路的方法是眾所周知的。每個(gè)處理級(jí)包括處理邏輯和鎖存器,其中,鎖存器用于存儲(chǔ)各級(jí)的輸出值以提供給后續(xù)處理級(jí)作為輸入。處理邏輯用于完成它的處理操作所用的時(shí)間取決于集成電路操作時(shí)的速度。處理邏輯可以操作的最快速率受限于最慢的處理邏輯級(jí)。為了能夠盡可能快地處理數(shù)據(jù),電路的處理級(jí)以盡可能快的速率被驅(qū)動(dòng),直至最慢的處理級(jí)跟不上為止。然而,在集成電路的功耗相對(duì)于提高處理速率更為重要的情況下,減小集成電路的工作電壓以減小功耗直至最慢的處理級(jí)速度跟不上為止。在電壓電平減小至最慢的處理級(jí)速度跟不上的情況下,以及在工作頻率增加到最'f曼的處理級(jí)不能再執(zhí)行它的處理的情況下,都會(huì)產(chǎn)生出現(xiàn)不利于計(jì)算的轉(zhuǎn)發(fā)進(jìn)度(forward-progress)的處理差錯(cuò)的危險(xiǎn)。眾所周知,考慮到集成電路的特性,包括一批器件中的不同集成電路之間的制造上的差異,工作環(huán)境條件,例如,典型的溫度范圍、被處理的信號(hào)的數(shù)據(jù)依賴性等等,可以通過(guò)將集成電路設(shè)置在足夠高于最低電壓電平的工作電壓上和足夠低于最大要求工作頻率的處理頻率上工作來(lái)避免這類處理差錯(cuò)的發(fā)生。常用的方法是根據(jù)最壞的情況來(lái)小心地限制最大的工作頻率和最小的工作電壓。美國(guó)專利公開(kāi)文獻(xiàn)No.US2004-0199821披露了通過(guò)動(dòng)態(tài)地控制至少一個(gè)性能控制參數(shù)(例如,頻率、工作電壓或者溫度)來(lái)設(shè)置集成電路操作以維持操作中的差錯(cuò)的非零概率差錯(cuò)的系統(tǒng)。通過(guò)使用俘獲比集成電路中的柏關(guān)處理級(jí)的主要鎖存器要遲的時(shí)間點(diǎn)上的數(shù)據(jù)的延遲鎖存器,盡管存在著時(shí)間差錯(cuò),該系統(tǒng)使得能夠計(jì)算轉(zhuǎn)發(fā)進(jìn)度。被延遲鎖存器所俘獲的數(shù)據(jù)數(shù)值可以在差錯(cuò)檢測(cè)中使用,用于取代在處理級(jí)輸出穩(wěn)定之前的時(shí)間點(diǎn)上主要鎖存器所俘獲的值。通過(guò)有意地以非零差錯(cuò)概率操作集成電路差錯(cuò),單個(gè)集成電路能夠達(dá)到特殊處理應(yīng)用所需要的最快的可能處理速度或者最低的可能功耗。然而,通過(guò)為處理級(jí)的各個(gè)主要鎖存器提供延遲鎖存器來(lái)改進(jìn)處理電路的需求在一定環(huán)境下可能是硬性的。例如,如果操作差錯(cuò)不是限制在中央處理單元(CPU)的數(shù)據(jù)路徑上,而是發(fā)生在控制邏輯自身上或者在集成電路的其它一些關(guān)鍵路徑上,那么集成電路就需要增加相當(dāng)多的延遲鎖存器,以便于實(shí)現(xiàn)差錯(cuò)檢測(cè)和恢復(fù)。此外,在US-2004-0199821的實(shí)施例中,使用了現(xiàn)有的流水線時(shí)序邏輯通過(guò)從延遲的鎖存器中讀取數(shù)據(jù)數(shù)值來(lái)實(shí)現(xiàn)差錯(cuò)恢復(fù),但它可能難以確保流水線時(shí)序邏輯自身不受操作差錯(cuò)的影響,或者直接由于控制邏輯自身中的關(guān)鍵路徑或者間接通過(guò)從數(shù)據(jù)路徑反饋亞穩(wěn)的數(shù)值到控制邏輯。于是,就需要能夠改善集成電路特性并且不需要大量改動(dòng)現(xiàn)有集成電路設(shè)計(jì)的技術(shù),使之提供差錯(cuò)恢復(fù)的操作。
發(fā)明內(nèi)容本發(fā)明的一個(gè)方面是提供了一種適用于數(shù)據(jù)處理裝置的集成電路,所述集成電路可進(jìn)行數(shù)據(jù)處理并包括差錯(cuò)檢測(cè)電路,用于監(jiān)視在所述集成電路中的數(shù)字信號(hào)數(shù)值并且檢測(cè)在預(yù)定時(shí)間窗口中的所述信號(hào)數(shù)值的轉(zhuǎn)變,所述變化表示了所述集成電路在操作中的差錯(cuò);存儲(chǔ)單元,用于存儲(chǔ)所述數(shù)據(jù)處理裝置的恢復(fù)狀態(tài),所述恢復(fù)狀態(tài)包括對(duì)應(yīng)于所述集成電路編程器(programmer's)模式的結(jié)構(gòu)狀態(tài)變量中(architecturalstatevariables)的至少一個(gè)子集;差錯(cuò)恢復(fù)電路,用于響應(yīng)所述差錯(cuò)檢測(cè)電路并且能夠使得所述集成電路使用所述存儲(chǔ)恢復(fù)狀態(tài)從所述操作差錯(cuò)中恢復(fù);操作參數(shù)控制器,用于控制所述集成電路的一個(gè)或多個(gè)性能控制操作參數(shù);其中,所述操作參數(shù)控制器根據(jù)由所述差錯(cuò)檢測(cè)電路所檢測(cè)到的差錯(cuò)中的一項(xiàng)或多項(xiàng)特性來(lái)動(dòng)態(tài)控制所述一項(xiàng)或多項(xiàng)性能控制參數(shù)中的至少一項(xiàng),從而維持操作中的非零概率的差錯(cuò),所述差錯(cuò)恢復(fù)電路用于使得所述集成電路能夠從操作中的所述差錯(cuò)中恢復(fù),以便于所述集成電路的數(shù)據(jù)處理是連續(xù)的。本項(xiàng)技術(shù)意識(shí)到可以直接監(jiān)測(cè)處理級(jí)的操作從而發(fā)現(xiàn)在何種限制條件下出現(xiàn)故障。當(dāng)出現(xiàn)實(shí)際故障時(shí),可以恢復(fù)集成電路至可以安全地重新開(kāi)始處理的先前的操作恢復(fù)狀態(tài)從而進(jìn)行差錯(cuò)恢復(fù)。本項(xiàng)技術(shù)意識(shí)到差錯(cuò)可以在不需要從各個(gè)處理級(jí)中俘獲延遲的數(shù)值或者在操作中出現(xiàn)差錯(cuò)時(shí)不需要重新向處理邏輯裝載正確數(shù)值的條件下進(jìn)行差錯(cuò)檢測(cè)。本項(xiàng)技術(shù)能夠?qū)呻娐愤M(jìn)行相對(duì)容易的改進(jìn),從而將差錯(cuò)檢測(cè)和恢復(fù)可以應(yīng)用于包括CPU數(shù)據(jù)路徑和控制邏輯在內(nèi)的集成電路中的任何關(guān)4t路徑。存儲(chǔ)單元(它可以是分布在整個(gè)集成電路中的多個(gè)存儲(chǔ)元件)所存儲(chǔ)的恢復(fù)狀態(tài)可以包括對(duì)應(yīng)于編程器模式的結(jié)構(gòu)狀態(tài)變量中的至少一個(gè)子集,例如,寄存器數(shù)值、標(biāo)志數(shù)值和處理模式。然而,在一個(gè)實(shí)施例中,恢復(fù)狀態(tài)包括微結(jié)構(gòu)狀態(tài)變量中的至少一個(gè)子集,該子集可以不是編程器模式中的一部分,例如,關(guān)于高速緩存中所存儲(chǔ)的變量的信息。該結(jié)構(gòu)在集成電路的差錯(cuò)恢復(fù)功能方面提供了靈活性,因?yàn)樵诓僮髦械牟煌铄e(cuò)將需要不同的恢復(fù)狀態(tài)子集,以便于將集成電路轉(zhuǎn)換到能夠可靠地執(zhí)行計(jì)算的轉(zhuǎn)發(fā)進(jìn)度的狀態(tài)。應(yīng)該意識(shí)到的是,操作中的某些差錯(cuò)與操作中的其它差錯(cuò)相比,其影響將涉及到更多的狀態(tài)變量和不同類型的狀態(tài)變量。應(yīng)該意識(shí)到的是,差錯(cuò)檢測(cè)電路可以采用多種不同的方法來(lái)檢測(cè)操作中的差錯(cuò)。然而,在一個(gè)實(shí)施例中,差錯(cuò)檢測(cè)電路安排成通過(guò)計(jì)算在第一采樣時(shí)間的輸入信號(hào)數(shù)值和在后續(xù)第二采樣時(shí)間的相同信號(hào)之間的差值來(lái)檢測(cè)在數(shù)據(jù)數(shù)值中的轉(zhuǎn)變。于是,在如果電路可靠地操作就期望輸出沒(méi)有差值時(shí),在時(shí)間周期內(nèi)的信號(hào)數(shù)值中的任何差值都能夠差錯(cuò)明確地檢測(cè)差錯(cuò)。在另一實(shí)施例中,差錯(cuò)檢測(cè)電路安排成通過(guò)檢測(cè)在預(yù)定時(shí)間窗口中的信號(hào)數(shù)值狀態(tài)的任何變化來(lái)檢測(cè)在數(shù)據(jù)信號(hào)中的轉(zhuǎn)變。這明顯不同于涉及兩個(gè)明顯區(qū)別的采樣點(diǎn)的實(shí)施例,其檢測(cè)的是別的方式檢測(cè)不到的兩個(gè)采樣點(diǎn)之間的信號(hào)值內(nèi)的假信號(hào)(glitch)。于是,信號(hào)數(shù)值轉(zhuǎn)變的檢測(cè)是有效的連續(xù)的而不是離散的。在一個(gè)實(shí)施例中,差錯(cuò)檢測(cè)電路用于檢測(cè)在集成電路的相關(guān)處理電路元件的輸出信號(hào)中的差錯(cuò),從而建立在處理級(jí)和差錯(cuò)產(chǎn)生之間的有效相關(guān)性。在另一可選結(jié)構(gòu)中,才企測(cè)電路可以在多個(gè)處理級(jí)之間共享。在一個(gè)實(shí)施例中,集成電路包括差錯(cuò)檢測(cè)電路,該差錯(cuò)檢測(cè)電路具有一個(gè)亞穩(wěn)定的窗口,該窗口與相關(guān)處理電路元件(例如,主觸發(fā)器)的建立窗口互斥。這使得即使在主觸發(fā)器的建立窗口中輸入數(shù)據(jù)轉(zhuǎn)變時(shí),也能夠進(jìn)行操作中的差錯(cuò)檢測(cè)。將差錯(cuò)檢測(cè)電路的亞穩(wěn)定窗口安排成與處理級(jí)相關(guān)的主要鎖存器的建立窗口不相重疊,就不再需要提供非常能耗的亞穩(wěn)定檢測(cè)電路并且能夠在處理級(jí)的主要鎖存器的建立窗口和在時(shí)鐘信號(hào)的保持窗口(即,時(shí)鐘信號(hào)的正相位)內(nèi)檢測(cè)到數(shù)據(jù)信號(hào)中的轉(zhuǎn)變。應(yīng)該意識(shí)到的是,集成電路可能是非流水線集成電路,但是在一個(gè)實(shí)裨例中,集成電路是一個(gè)包括了多個(gè)串聯(lián)連接的處理級(jí)的流水線集成電路。盡管與差錯(cuò)檢測(cè)電路相關(guān)的特殊處理電路元件差錯(cuò)可以是能夠存儲(chǔ)處理數(shù)值的任何電路元件,例如,鎖存檢測(cè);故大器,在一個(gè)實(shí)施例中,處理電路元件是用于傳遞在多個(gè)流水線級(jí)的各個(gè)相連級(jí)之間的數(shù)據(jù)的鎖存器。鎖存器是一種筒單的電路元件并且差錯(cuò)檢測(cè)電路與鎖存器的聯(lián)系提供了一種便于實(shí)現(xiàn)的有效差錯(cuò)檢測(cè)的方法。在一個(gè)實(shí)施例中,差錯(cuò)檢測(cè)電路包括至少一個(gè)延遲元件,并將其安排成延遲輸入數(shù)字信號(hào)使之能夠檢測(cè)到在處理電路元件的建立時(shí)間周期內(nèi)所發(fā)生的轉(zhuǎn)變。這就避免了在主要處理電路元件的建立時(shí)間周期內(nèi)發(fā)生數(shù)據(jù)轉(zhuǎn)變時(shí)錯(cuò)過(guò)操作中的差錯(cuò)的可能性,因?yàn)樵谶@種情況下處理元件的邏輯狀態(tài)將是不確定的。延遲數(shù)字信號(hào)的作用是校準(zhǔn)輸入至差錯(cuò)檢測(cè)電路的數(shù)據(jù)轉(zhuǎn)變,使得差錯(cuò)檢測(cè)電路的采樣窗口與主要處理元件的建立窗口相重疊,使得主要處理元件的建立窗口中的信號(hào)轉(zhuǎn)變可以作為差錯(cuò)在差錯(cuò)檢測(cè)電路被可靠地檢測(cè)出。應(yīng)該意識(shí)到的是,差錯(cuò)檢測(cè)電路可以具有許多不同的形式,但在一個(gè)實(shí)施例中,差錯(cuò)檢測(cè)電路包括O-1轉(zhuǎn)變的檢測(cè)器和1-o轉(zhuǎn)變的檢測(cè)器中的至少一個(gè)。這些轉(zhuǎn)變檢測(cè)器可以是明顯不同的檢測(cè)器或者可以是一個(gè)用于檢測(cè)兩個(gè)方向轉(zhuǎn)變的單個(gè)電路。盡管通過(guò)排空(flushing)錯(cuò)誤數(shù)值的流水線并且從所存儲(chǔ)的重新可使用的狀態(tài)存儲(chǔ)中直接恢復(fù)原先的狀態(tài)就可以使集成電路從操作中的差錯(cuò)中恢復(fù),但在一個(gè)實(shí)施例中,差錯(cuò)恢復(fù)電路包括至少一個(gè)穩(wěn)定流水線級(jí),用于在提交(commitment)輸出數(shù)值作為集成電路存儲(chǔ)的狀態(tài)變量之前驗(yàn)證在流水線集成電路中的多個(gè)流水線級(jí)的輸出數(shù)值。穩(wěn)定流水線級(jí)允許有足夠的時(shí)間來(lái)確定是否已經(jīng)在流水線級(jí)的輸出數(shù)值產(chǎn)生中出現(xiàn)差錯(cuò),并且這樣能夠減小提交的狀態(tài)變量不可靠的概率。盡管在差錯(cuò)恢復(fù)電路中包含至少一個(gè)穩(wěn)定流水線級(jí)會(huì)涉及在承擔(dān)(committal)計(jì)算流水線數(shù)值過(guò)程中的延遲,但在一個(gè)實(shí)施例中,集成電路包括數(shù)據(jù)轉(zhuǎn)發(fā)(forwarding)電路,用于直接從多個(gè)流水線級(jí)中的一個(gè)特別的流水線向多個(gè)流水線級(jí)中的另一個(gè)不同級(jí)提供該特別的流水線所計(jì)算的數(shù)值,以作為輸入數(shù)值使用。這就減小了在寫(xiě)入之后讀取的風(fēng)險(xiǎn)的影響,這種風(fēng)險(xiǎn)可能是由于提供額外穩(wěn)定流水線級(jí)所引起的。該轉(zhuǎn)發(fā)電路能夠在將預(yù)先處理級(jí)所計(jì)算的數(shù)值寫(xiě)入到寄存器之前將該數(shù)值被提供給當(dāng)前流水線中的后續(xù)的處理級(jí)。這就防止了后續(xù)處理級(jí)使用不正確的輸入數(shù)值。應(yīng)該意識(shí)到的是,存儲(chǔ)單元可以是任何類型的存儲(chǔ)器,例如堆棧(stack.)存儲(chǔ)器,但是在一個(gè)實(shí)施例中,存儲(chǔ)單元包括寄存器組。盡管寄存器組可以用于在確認(rèn)這些狀態(tài)變量沒(méi)有差錯(cuò)之前存儲(chǔ)這些狀態(tài)變量,但在一個(gè)實(shí)施例中,寄存器組可以用于僅僅只存儲(chǔ)確認(rèn)的狀態(tài)變量,所確認(rèn)的狀態(tài)變量被瑜認(rèn)為沒(méi)有時(shí)間違例(時(shí)間沖突)。于是,在寄存器組中所存儲(chǔ)的狀態(tài)變量都是可靠的狀態(tài)變量并且可以在集成電路的操作中用于從后續(xù)所檢測(cè)到的差錯(cuò)中恢復(fù)過(guò)來(lái)。應(yīng)該意識(shí)到的是,集成電路還可以包括包括單個(gè)寄存器組的單個(gè)存儲(chǔ)單元。然而,在一個(gè)實(shí)施例中,除了用于存儲(chǔ)其值被確認(rèn)為正確(穩(wěn)定)的數(shù)值的狀態(tài)變量的確認(rèn)的寄存器組之外,集成電路還包括推測(cè)寄存器組,用于存儲(chǔ)推測(cè)的狀態(tài)變量且這些狀態(tài)變量的數(shù)值并沒(méi)有被確認(rèn)為沒(méi)有時(shí)間違例。這就能夠使得差錯(cuò)恢復(fù)部分可以與主要處理并行進(jìn)行。于是:僅僅只在檢測(cè)到集成電路操作中的差錯(cuò)的情況下才使用確認(rèn)寄存器組中的數(shù)值。每一次,推測(cè)寄存器組都存儲(chǔ)著比在確認(rèn)的寄存器組申當(dāng)前存儲(chǔ)著的狀態(tài)變量更高級(jí)的處理級(jí)的狀態(tài)變量。在存在差錯(cuò)的時(shí)候,差錯(cuò)恢復(fù)電路可用于將確認(rèn)的寄存器組中的對(duì)應(yīng)的一些確認(rèn)的狀態(tài)變量來(lái)取代在推測(cè)寄存器組中的推測(cè)狀態(tài)變量中的一個(gè)子集,從而使得處理能夠回到到預(yù)先一級(jí),在這一級(jí)上,所檢測(cè)到的操作中的差錯(cuò)還沒(méi)有影響到任何狀態(tài)變量。盡管產(chǎn)生處理差錯(cuò),這確保了計(jì)算的轉(zhuǎn)發(fā)進(jìn)度差錯(cuò)。應(yīng)該意識(shí)到的是,操作參數(shù)控制器可以用于根據(jù)集成電路操作中的差錯(cuò)檢測(cè)來(lái)調(diào)整性能控制參數(shù)。參數(shù)調(diào)整可以響應(yīng)差錯(cuò)檢測(cè)而及時(shí)進(jìn)行。例如,可以降低工作頻率或者可以增加工作電壓,以便于確保減小操作中出現(xiàn)差錯(cuò)的概率。這些調(diào)整可以至少都是臨時(shí)的。然而,在本發(fā)明的一個(gè)實(shí)施例中,由操作參數(shù)控制器調(diào)整操作參數(shù)的響應(yīng)被抑制,使得在檢測(cè)到至少一個(gè)操作中的差錯(cuò)之后以及在調(diào)整一個(gè)或多個(gè)性能控制參數(shù)之前存在著時(shí)間延遲。這就允許集成電路能夠評(píng)估增加的差錯(cuò)比率持續(xù)的可能性,因?yàn)檫@種增加不是系統(tǒng)性的且通過(guò)筒單的重新執(zhí)行處理操作的相關(guān)次序就可以在不調(diào)整操作參數(shù)的條件下就可以解決。然而,進(jìn)行一個(gè)或多個(gè)操作參數(shù)的臨時(shí)性調(diào)整可以避免死鎖。根據(jù)本發(fā)明的第二方面,提供了一種控制集成電路進(jìn)行數(shù)據(jù)處理的方法,該方法包括下列步驟監(jiān)測(cè)在所述集成電路中的數(shù)字信號(hào)數(shù)值并且檢測(cè)在預(yù)定時(shí)間窗口中的所述信號(hào)數(shù)值的轉(zhuǎn)變,所述轉(zhuǎn)變表示所述集成電路的操作中的差錯(cuò);存儲(chǔ)所述數(shù)據(jù)處理裝置的恢復(fù)狀態(tài),所述恢復(fù)狀態(tài)包括對(duì)應(yīng)于所述集成電路的編程器模式的結(jié)構(gòu)狀態(tài)變量中的至少一個(gè)子集;使用所述存儲(chǔ)的可恢復(fù)狀態(tài),根據(jù)所述檢測(cè)到的操作中的差錯(cuò),使得所述集成電路能夠從所述操作中的差錯(cuò)中恢復(fù);控制所述集成電路的一項(xiàng)或多項(xiàng)性能控制操作參數(shù);其中,所述控制步驟包括根據(jù)在所述監(jiān)測(cè)和檢測(cè)步驟中所檢測(cè)到的一項(xiàng)或多項(xiàng)差錯(cuò)特征來(lái)動(dòng)態(tài)地控制所述一項(xiàng)或多項(xiàng)性能控制參數(shù)中的至少一項(xiàng),以便于保持操作中的差錯(cuò)的非零比率,根據(jù)所述檢測(cè)到的所述操作中的差錯(cuò)使用所述存儲(chǔ)的可恢復(fù)狀態(tài)來(lái)使得所述集成電路從操作中的所述差錯(cuò)中恢復(fù),以便于所述集成電路連續(xù)處理數(shù)據(jù)。本發(fā)明的上述和其它目的、性能和優(yōu)點(diǎn)都將從以下結(jié)合附圖的示例性實(shí)施例詳細(xì)描述的閱讀中變得更加清晰。圖1圖示說(shuō)明了應(yīng)用本發(fā)明的集成電路的多處理級(jí)的一個(gè)示例;圖2圖示說(shuō)明了使用確認(rèn)寄存器組和推測(cè)寄存器組一起進(jìn)行差錯(cuò)恢復(fù)的流水線;圖3A圖示說(shuō)明了使用在單個(gè)寄存器組中存儲(chǔ)的狀態(tài)變量進(jìn)行差錯(cuò)恢復(fù)的流水線結(jié)構(gòu);圖3B圖示說(shuō)明了圖3A所示的電路如何從檢測(cè)到的差錯(cuò)中恢復(fù)的流程圖3C圖示說(shuō)明了操作參數(shù)調(diào)整處理的流程圖4圖示說(shuō)明了根據(jù)本發(fā)明的轉(zhuǎn)變檢測(cè)D型觸發(fā)器。圖5圖示說(shuō)明了如何在圖4所示的主觸發(fā)器的建立窗口中進(jìn)行對(duì)數(shù)據(jù)轉(zhuǎn)變檢測(cè)的檢測(cè)的功能時(shí)序圖6A至6G圖示說(shuō)明了圖4所示電路進(jìn)行從邏輯電平1轉(zhuǎn)變到邏輯電平0的的檢測(cè)時(shí)的功能時(shí)序圖7A至7G圖示說(shuō)明了圖4所示電路進(jìn)行從邏輯電平0轉(zhuǎn)變到邏輯電平1的檢測(cè)時(shí)的功能時(shí)序圖8A和8B圖示說(shuō)明了如何使圖4所示的主觸發(fā)器的亞穩(wěn)定窗口和轉(zhuǎn)變檢測(cè)器是如何不重疊的;以及,圖9圖示說(shuō)明了得自轉(zhuǎn)變檢測(cè)器的差錯(cuò)信號(hào)的差錯(cuò)同步。具體實(shí)施例方式圖1圖示說(shuō)明了集成電路中的一部分,這可以是在處理器內(nèi)核(例如,由英國(guó)劍橋的ARM有限公司所設(shè)計(jì)的ARM處理器內(nèi)核)中的同步流水線的一部分。同步流水線由多個(gè)處理級(jí)所形成,第一級(jí)包括邏輯模塊3010以及采用觸發(fā)器形式的隨后的鎖存器3020。邏輯模塊3010的輸出提供給轉(zhuǎn)變檢測(cè)器3030,它可用于檢測(cè)在邏輯信號(hào)數(shù)值中的轉(zhuǎn)變,這種轉(zhuǎn)變發(fā)生在預(yù)定的時(shí)間窗口中并且表示集成電路在操作中的差錯(cuò)。如果適用于集成電路的操作參數(shù)使得邏輯模塊3010不能在觸發(fā)器3020俘獲到它的數(shù)值之前完成其處理捧作,就有可能出現(xiàn)這種操作中的差錯(cuò)。集成電路的操作參數(shù)包括時(shí)鐘3031所提供的時(shí)鐘信號(hào)頻率、提供給集成電路的工作電壓、基底的偏置電壓(bodybiasvoltage)、溫度等等。特別是,如果工作頻率設(shè)置得高,使得最慢的處理數(shù)據(jù)級(jí)不能夠保持并行工作,或者如果降低集成電路的工作電壓直至功耗減小到最慢的處理級(jí)不能夠跟得上,則系統(tǒng)性處理差錯(cuò)就會(huì)發(fā)生。集成電路的后續(xù)各處理級(jí)都相似地包括連接著轉(zhuǎn)變檢測(cè)器的邏輯模塊以及俘獲相關(guān)的邏輯模塊的輸出數(shù)值的觸發(fā)器。如圖1所示,圖示iJ6明了三級(jí)處理并且還有三個(gè)對(duì)應(yīng)的轉(zhuǎn)變檢測(cè)器3030、3032和3034。這些轉(zhuǎn)變檢測(cè)器的輸出各自提供給一個(gè)OR門(mén)3040。OR門(mén)3040的高電平輸出表示在至少一個(gè)相關(guān)的邏輯模塊中已經(jīng)出現(xiàn)了處理差錯(cuò)。這一差錯(cuò)表示是作為OR門(mén)3040輸出被提供,并且作為差錯(cuò)恢復(fù)邏輯模塊3050的輸入,其響應(yīng)各個(gè)轉(zhuǎn)變檢測(cè)器并且可用于使得集成電路從操作差錯(cuò)中恢復(fù)。從操作差錯(cuò)中恢復(fù)是通過(guò)使用所存儲(chǔ)的狀態(tài)信息3060依賴于差錯(cuò)恢復(fù)邏輯3050來(lái)實(shí)現(xiàn)的。該存儲(chǔ)的狀態(tài)信息3060允許集成電路通過(guò)使得>(人重新開(kāi)始計(jì)算返回到預(yù)先的處理狀態(tài)從而從操作差錯(cuò)中恢復(fù)。該狀態(tài)信息可以包括結(jié)構(gòu)狀態(tài)變量和微結(jié)構(gòu)狀態(tài)變量。結(jié)構(gòu)狀態(tài)變量對(duì)應(yīng)于在集成電路編程器模式中所指定的這些變量,例如,寄存器數(shù)值、指令標(biāo)志、程序計(jì)數(shù)器數(shù)值等等。微結(jié)構(gòu)狀態(tài)變量的一個(gè)例子是高速緩存的內(nèi)容。例如,對(duì)于帶標(biāo)志設(shè)置的ADD指令而言,指令A(yù)DDSR0R0R1的執(zhí)行將涉及到狀態(tài)變量RO、與標(biāo)志設(shè)置操作有關(guān)的標(biāo)志以及與該指令有關(guān)的程序計(jì)數(shù)器數(shù)值的存儲(chǔ)。狀態(tài)變量的其它示例是處理器的特殊操作模式,例如,特權(quán)模式或者用戶模式。差錯(cuò)恢復(fù)邏輯3050使得在集成電路的操作中存在著差錯(cuò)的狀態(tài)下能夠進(jìn)行計(jì)算的轉(zhuǎn)發(fā)進(jìn)度。這是通過(guò)使用轉(zhuǎn)變檢測(cè)器3030、3032和3024檢測(cè)定時(shí)差錯(cuò)以及使用差錯(cuò)恢復(fù)邏輯3050從使用所存儲(chǔ)的狀態(tài)信息3060所檢測(cè)到的差錯(cuò)中恢復(fù)來(lái)實(shí)現(xiàn)。用于差錯(cuò)恢復(fù)的所存儲(chǔ)的狀態(tài)信息3060是被確認(rèn)為不再受操作中的差錯(cuò)影響的數(shù)值和最新存儲(chǔ)于寄存器中的數(shù)值。這類存儲(chǔ)的數(shù)值對(duì)應(yīng)于在進(jìn)行操作中的差錯(cuò)檢測(cè)之前的集成電路的結(jié)構(gòu)狀態(tài)。圖2圖示說(shuō)明了根據(jù)本技術(shù)的一個(gè)示例的結(jié)構(gòu),該技術(shù)除了使用了推測(cè)寄存器組之外還使用了確認(rèn)寄存器組,以便于從操作差錯(cuò)中恢復(fù)。該結(jié)構(gòu)包括主要處理流水線3100;推測(cè)寄存器組3110;多個(gè)穩(wěn)定的流水線級(jí)3120;關(guān)鍵狀態(tài)緩沖器3122;確認(rèn)狀態(tài)緩沖器3124;確認(rèn)寄存器組3130;轉(zhuǎn)變檢測(cè)器陣列3142-1至3142-4;OR邏輯門(mén)3150;差錯(cuò)檢測(cè)邏輯3160;流水線排空邏輯3170;確認(rèn)狀態(tài)恢復(fù)邏輯3180;以及程序計(jì)算器復(fù)位邏輯3190。主要處理流水線3100包括四個(gè)截然不同的流水線級(jí),第一執(zhí)行級(jí)n,第二執(zhí)行級(jí)n-l,第三執(zhí)行級(jí)n-2和回寫(xiě)級(jí)n-3。來(lái)自處理流水線級(jí)的輸出將通過(guò)鎖存器(例如,圖1所示的觸發(fā)器3020)至后續(xù)流水線級(jí)?;貙?xiě)流水線級(jí)n-3的輸出通過(guò)信號(hào)路徑3101和3103提供給推測(cè)寄存器組3110,信號(hào)路徑3101和3103各自通向推測(cè)寄存器組3110的兩個(gè)寫(xiě)入端口SWO和SW1。在圖2所示的特殊結(jié)構(gòu)中,主要流水線的回寫(xiě)級(jí)對(duì)應(yīng)于處理級(jí)n-3,并因此在該結(jié)構(gòu)中,存儲(chǔ)于推測(cè)寄存器組3110中的最后狀態(tài)對(duì)應(yīng)于處理級(jí)n-4。來(lái)自第一執(zhí)行級(jí)n的輸出輸出至轉(zhuǎn)變檢測(cè)器3142-1;來(lái)自第二執(zhí)行級(jí)n-l的輸出輸出至轉(zhuǎn)變檢測(cè)器3142-2;來(lái)自主要流水線的第三執(zhí)行級(jí)n-2的輸出輸出至轉(zhuǎn)變檢測(cè)器3142-3;以及來(lái)自主要流水線3100的回寫(xiě)級(jí)WB的最后輸出輸出至轉(zhuǎn)變檢測(cè)器3142-4。這些轉(zhuǎn)變檢測(cè)器3142-1至3142-4各個(gè)都能表示處理電路的操作中的差錯(cuò)。所有四個(gè)轉(zhuǎn)變檢測(cè)器的輸出被提供了給OR邏輯門(mén)3150的輸入,其輸出提供給差錯(cuò)檢測(cè)邏輯3160。于是,如果四個(gè)主要流水線級(jí)n、n-l、n-2或n-3中的任意一個(gè)中檢測(cè)到任何轉(zhuǎn)變,則OR邏輯門(mén)將會(huì)輸出一個(gè)表示操作中的差錯(cuò)的數(shù)值。差錯(cuò)檢測(cè)邏輯3160響應(yīng)OR邏輯門(mén)3150的輸出,初始化由流水線排空邏輯3170、確認(rèn)狀態(tài)恢復(fù)3180邏輯以及程序計(jì)數(shù)器復(fù)位3190邏輯所執(zhí)行的差錯(cuò)恢復(fù)處理,使得檢測(cè)到的操作中的差錯(cuò)不會(huì)影響存儲(chǔ)于確認(rèn)寄存器組3130中的任何數(shù)值。于是,響應(yīng)操作中所檢測(cè)到的差錯(cuò),流水線排空邏輯3170初始化流水線排空,使之清除具有任何潛在的差錯(cuò)數(shù)值的流水線。流水線排空邏輯3170既連接著關(guān)鍵狀態(tài)緩沖器3122又連接著穩(wěn)定流水線級(jí)3120。在檢測(cè)到操作差錯(cuò)的情況下,除了在流水線3120中的穩(wěn)定級(jí)中的數(shù)值,以及當(dāng)前存儲(chǔ)于關(guān)鍵狀態(tài)緩沖器3022中,還沒(méi)有存儲(chǔ)于確認(rèn)寄存器組3130中的所有數(shù)值,還有在主要流水線中的所有數(shù)值都被排空。一旦流水線一皮排空,則確認(rèn)狀態(tài)恢復(fù)邏輯3180就初始化一系列處理操作,通過(guò)這樣數(shù)據(jù)處理裝置就返回至原先的狀態(tài),在該原先狀態(tài)中,剛剛執(zhí)行了其數(shù)值最近被存儲(chǔ)于確認(rèn)寄存器組3130中的指令。從這一指令開(kāi)始的重新執(zhí)行是在程序計(jì)數(shù)器復(fù)位邏輯3190已經(jīng)將程序計(jì)數(shù)器從當(dāng)前指令復(fù)位到其后的指令,該指令的值最近被存儲(chǔ)于確認(rèn)寄存器組3130中。正常的處理操作包括多個(gè)指令的執(zhí)行,其中各個(gè)指令可以包括許多不同類型結(jié)構(gòu)狀態(tài)變量的更新。例如,單個(gè)給定指令的執(zhí)行可能要求更新一個(gè)或多個(gè)通用寄存器、標(biāo)志、程序狀態(tài)寄存器或程序計(jì)數(shù)器。然而,存儲(chǔ)這些更新變量的物理元件不一定要在一個(gè)和相同時(shí)鐘周期中更新,即使它們涉及相同的給定指令。例如,在ARMRTM指令集中,存入(load)指令是不能改變標(biāo)志的,因此就有可能在將更新內(nèi)容存儲(chǔ)于通用寄存器的處理周期之前的處理周期內(nèi)將更新內(nèi)容存儲(chǔ)于標(biāo)志。值得注意的是,直到知道下載指令還沒(méi)有產(chǎn)生與存儲(chǔ)器級(jí)有關(guān)的異常(例如,準(zhǔn)許故障)才能更新通用寄存器。應(yīng)該意識(shí)到的是,操作中的差錯(cuò)有可能在任何處理周期中產(chǎn)生。于是,在圖2所示的結(jié)構(gòu)中,就必須確保對(duì)確認(rèn)寄存器組3130的更新是與確保有可能使用指令重新執(zhí)行來(lái)恢復(fù)是"同步,,的。這只要結(jié)構(gòu)狀態(tài)變量的一些關(guān)鍵子集已經(jīng)存儲(chǔ)于確認(rèn)寄存器組3130就可實(shí)現(xiàn)。為了確保結(jié)構(gòu)狀態(tài)變量的所有關(guān)鍵子集都能使得重新執(zhí)行,提供圖2所示的關(guān)鍵狀態(tài)緩沖器3122以保持與給定指令有關(guān)的更新數(shù)值,直至知道與特殊指令有關(guān)的關(guān)鍵狀態(tài)更新的所有數(shù)值都有效并且所有的非關(guān)鍵狀態(tài)更新都已經(jīng)存儲(chǔ)于確認(rèn)寄存器組3130或已經(jīng)存在于確認(rèn)狀態(tài)緩沖器3124中。只有當(dāng)與給定指令有關(guān)的所有數(shù)值都是有效的的話,關(guān)鍵變量與存儲(chǔ)于確認(rèn)寄存器組3130的指令有關(guān)。確認(rèn)寄存器組3130具有兩個(gè)寫(xiě)入端口且分別表示為CWO和CWl,同樣,推測(cè)寄存器組也有兩個(gè)寫(xiě)入端口SWO和SW1。值得注意的是,與給定指令有關(guān)的數(shù)值被實(shí)際物理更新到確認(rèn)寄存器組是不會(huì)立即發(fā)生的。以這種情況為例,如果由于寄存器組具有有限的寫(xiě)入端口(在該情況下是兩個(gè)寫(xiě)入端口)需要比可以在單個(gè)處理周期內(nèi)執(zhí)行更關(guān)鍵的狀態(tài)更新。關(guān)鍵狀態(tài)緩沖器的輸出在提供給確認(rèn)寄存器組3130之前提供給確認(rèn)狀態(tài)緩沖器3124。確認(rèn)狀態(tài)緩沖器3124是一個(gè)適用于確認(rèn)寄存器組3130的簡(jiǎn)單寫(xiě)入緩沖器。提供確認(rèn)狀態(tài)緩沖器3124以避免在多于兩個(gè)確認(rèn)數(shù)值需要在一個(gè)給定處理周期內(nèi)寫(xiě)入到確認(rèn)寄存器組3130的情況下整個(gè)流水線的失速(stall)。穩(wěn)定流水線級(jí)3120的輸出提供給關(guān)鍵狀態(tài)緩沖器3122和確認(rèn)狀態(tài)緩沖器3124。穩(wěn)定流水線級(jí)3120允許在差錯(cuò)數(shù)值存儲(chǔ)于確認(rèn)寄存器組3130之前差錯(cuò)檢測(cè)邏輯3160可有足夠的時(shí)間來(lái)檢測(cè)在主要流水線中的操作中的差錯(cuò)??紤]轉(zhuǎn)變檢測(cè)器3142-3指示在對(duì)應(yīng)于指令n-2的主要流水線的第三執(zhí)行級(jí)中發(fā)生差錯(cuò)的情況。在這種情況下,程序計(jì)數(shù)器復(fù)位邏輯3190就會(huì)將程序計(jì)數(shù)器從指令n復(fù)位到指令n-5,因?yàn)榧呻娐返淖詈蟠_認(rèn)狀態(tài)對(duì)應(yīng)于指令n-6。對(duì)應(yīng)于指令n-6的確認(rèn)狀態(tài)是通過(guò)將與指令n-6有關(guān)的狀態(tài)變量的關(guān)鍵子集的相關(guān)數(shù)據(jù)從確認(rèn)寄存器組3130經(jīng)過(guò)數(shù)據(jù)路徑3111復(fù)制到推測(cè)寄存器組3110來(lái)恢復(fù)的。隨后,處理操作的執(zhí)行從級(jí)n-5向前進(jìn)行,使得集成電路的操作中的差錯(cuò)不會(huì)影響計(jì)算的結(jié)果。將被存儲(chǔ)于確認(rèn)寄存器組3130的最后處理狀態(tài)是處理級(jí)n-6的狀態(tài)信息。存儲(chǔ)于確認(rèn)寄存器組3130中的狀態(tài)變量所具有的故障之間的平均時(shí)間要比存儲(chǔ)于推測(cè)寄存器組3110中的狀態(tài)變量大(并因此出現(xiàn)差錯(cuò)的概率小挺多)。因此,來(lái)自確認(rèn)寄存器組3130的狀態(tài)變量用于當(dāng)檢測(cè)到操作中的差錯(cuò)時(shí)通過(guò)恢復(fù)最后的確認(rèn)狀態(tài)n-6來(lái)實(shí)現(xiàn)從檢測(cè)到的主要流水線3100中操作中的差錯(cuò)中恢復(fù)。于是,該系統(tǒng)就能夠通過(guò)使用集成電路的最后確認(rèn)狀態(tài)來(lái)實(shí)現(xiàn)從操作差錯(cuò)中的恢復(fù)。值得注意的是,圖2所示的結(jié)構(gòu)是一種筒化的結(jié)構(gòu),只是用于圖示說(shuō)明的目的。在根據(jù)本技術(shù)的其它結(jié)構(gòu)中,在指令和流水線級(jí)之間沒(méi)有——對(duì)應(yīng)的對(duì)應(yīng)關(guān)系,因?yàn)閱蝹€(gè)指令可能橫跨幾個(gè)流水線級(jí)。因此,在這類可選擇^J結(jié)構(gòu)中,對(duì)應(yīng)于指令(該指令的關(guān)鍵變量最后存儲(chǔ)于確認(rèn)寄存器組3130)的程序計(jì)數(shù)器不是簡(jiǎn)單地從當(dāng)前的程序計(jì)數(shù)器和流水線長(zhǎng)度所引獲得的。相反,對(duì)應(yīng)于最后成功執(zhí)行指令的程序計(jì)數(shù)器是從單獨(dú)的具有程序計(jì)數(shù)器值的流氷線中獲得的,該流水線屏蔽(shadow)了主要執(zhí)行流水線。圖3A圖示說(shuō)明了根據(jù)包括跟隨著主要流水線端點(diǎn)的多個(gè)穩(wěn)定流水線級(jí)的本技術(shù)的一種結(jié)構(gòu)。該結(jié)構(gòu)包括多個(gè)流水線級(jí)3210,還包括兩個(gè)穩(wěn)定級(jí)3220和3222在流水線的端點(diǎn);轉(zhuǎn)變檢測(cè)陣列3230-1至3230-4;OR門(mén)3240;操作參數(shù)控制器3242;差錯(cuò)檢測(cè)邏輯3250;流水線排空邏輯3260;確認(rèn)狀態(tài)恢復(fù)邏輯3262;程序計(jì)數(shù)器復(fù)位邏輯3270;解碼流水線級(jí)3280;評(píng)分卡文件(scorecardfile)3282;轉(zhuǎn)發(fā)(forwarding)邏輯3290;關(guān)4建狀態(tài)》爰沖器3292;確認(rèn)的狀態(tài)緩沖器3294和確認(rèn)寄存器組3296。正如圖2所示的實(shí)施例,流水線3210包括三個(gè)對(duì)應(yīng)于指令n,n-l,n-2和n-3的執(zhí)行級(jí)。緊跟著該流水線端點(diǎn)的是兩個(gè)分別對(duì)應(yīng)于兩個(gè)指令(n-4:)和(n-5)的穩(wěn)定級(jí)3220和3222。以這種方式直接緊跟著主要流水線端點(diǎn)的額外穩(wěn)定級(jí)會(huì)引起向寄存器組的輸出稍微延遲些,但是這些額外的穩(wěn)定級(jí)可以在數(shù)據(jù)輸出到寄存器組3296之前給集成電路提供檢測(cè)差錯(cuò)發(fā)生的機(jī)會(huì)。速就意味著差錯(cuò)檢測(cè)處理將在流水線的輸出提供給寄存器組3296之前完成。主要流水線的各個(gè)處理級(jí)的輸出又提供給轉(zhuǎn)變檢測(cè)器3200-1至3200-4,并依次將它們的輸出提供給OR門(mén)3240。在檢測(cè)到差錯(cuò)的情況下,差錯(cuò)恢復(fù)通過(guò)差錯(cuò)檢測(cè)邏輯3250使用流水線排空邏輯3260、確認(rèn)狀態(tài)恢復(fù)邏輯3262和程序計(jì)數(shù)器復(fù)位邏輯3270來(lái)初始化,類似于參照?qǐng)D2的上述描述。操作中的差錯(cuò)發(fā)生也告知操作參數(shù)控制器3242,該操作參數(shù)控制器3242能夠根據(jù)所檢測(cè)到的操作差錯(cuò)的一個(gè)或多個(gè)特性來(lái)調(diào)整時(shí)鐘頻率、工作電壓、基底偏置電壓或者溫度中的至少一個(gè),從而以提高整體效率的方式來(lái)保持一個(gè)有限的非零差錯(cuò)note。正如參照?qǐng)D3所提及的那樣,應(yīng)該意識(shí)到的是,在其它實(shí)施例中,在流水線級(jí)和指令之間并不是——對(duì)應(yīng)的。在兩個(gè)穩(wěn)定級(jí)分別對(duì)應(yīng)于指令號(hào)(n-4)和(n-5)的實(shí)例中,,這就意味著在寄存器組中的最后提交的狀態(tài)變量(lastedcommittedstatevariables)對(duì)應(yīng)于指令號(hào)(n-6)。于是,例如,在流水線級(jí)(n-1)出現(xiàn)差錯(cuò)的情況下.,轉(zhuǎn)變檢測(cè)器3230-2被觸發(fā),并依次觸發(fā)OR門(mén)3240的高輸出。恢復(fù)序列(sequence)被初始化且流水線被排空,從而消除差錯(cuò)對(duì)任何流水線數(shù)值的影響。程序計(jì)數(shù)器被邏輯3270從指令n復(fù)位到指令(n-5),從而使能計(jì)算的轉(zhuǎn)發(fā)進(jìn)度。由于額外的穩(wěn)定級(jí)3220和3222導(dǎo)致在流水線中的指令執(zhí)行中一些延遲,所以應(yīng)該提供將一個(gè)流水線級(jí)的輸出連接到對(duì)應(yīng)于最后執(zhí)行指令的先前流水線級(jí)的輸入的轉(zhuǎn)發(fā)邏輯3290。在這種情況下,流水線級(jí)(n-2)的輸出作為輸入饋入與指令n執(zhí)行有關(guān)的流水線級(jí)。從流水線級(jí)(n-5)、(n-4)、(n-3)和(n-l)以及從關(guān)鍵狀態(tài)緩沖器3292和確認(rèn)狀態(tài)緩沖器3294也提供了轉(zhuǎn)發(fā)邏輯(未顯示)。這就可以在適合的地方將來(lái)自后流水線級(jí)還沒(méi)有存儲(chǔ)于寄存器組3292的非提交的數(shù)值可以作為輸入提供給后續(xù)處理指令。集成電路的評(píng)分卡文件3282,可用于注意將哪條指令寫(xiě)入到哪一個(gè)寄存器號(hào)。該評(píng)分卡文件3282是由流水線中的先前級(jí),特別是流水線3210的解碼級(jí)3280來(lái)寫(xiě)入的。該評(píng)分卡3282僅僅只需要注意將哪一個(gè)指令寫(xiě)入到哪一個(gè)寄存器,而不需要注意哪一個(gè)指令從哪一個(gè)寄存器中讀取,因?yàn)橹挥兄噶畹膶?xiě)入有可能影響各流水線級(jí)的輸入數(shù)值。例如,如果在級(jí)(n-2)上的指令寫(xiě)入到寄存器R3并且在指令(n-2)的輸出已經(jīng)被提交至寄存器組之前,在流水線級(jí)n上執(zhí)行的后續(xù)指令從寄存器R3中讀取作為輸入,則一定要提供對(duì)應(yīng)于所要寫(xiě)入到寄存器R3的數(shù)值的輸出,作為對(duì)應(yīng)于指令n的流水線級(jí)的輸入。值得注意的是,在圖2和圖3所示的結(jié)構(gòu)中,最后確認(rèn)狀態(tài)的差錯(cuò)檢測(cè)、流水線排空、程序計(jì)數(shù)器復(fù)位和恢復(fù)級(jí)都可以多種不同的次序來(lái)執(zhí)行,并且本技術(shù)并沒(méi)有將這些邏輯模塊限制于這些附圖所圖示說(shuō)明的特殊次序。在圖3A所示的結(jié)構(gòu)中,如果差錯(cuò)發(fā)生在處理級(jí)(n-l),則集成電路的狀態(tài)變量將恢復(fù)到對(duì)應(yīng)于提交至寄存器組3296的最后指令的數(shù)值。在存儲(chǔ)用于從差錯(cuò)中恢復(fù)的狀態(tài)變量,考慮指令的依賴性以便于確定什么狀態(tài)的更新是關(guān)鍵。這有助于確定需要在寫(xiě)入的次序使寄存器組保持一致的狀態(tài),這樣如果出現(xiàn)差錯(cuò)就有可能恢復(fù)。于是,通過(guò)從寄存器組恢復(fù)數(shù)值恢復(fù)的狀態(tài)變量將根據(jù)特定的差錯(cuò)而改變。將狀態(tài)變量存儲(chǔ)于寄存器組的方式和次序有助于用于差錯(cuò)恢復(fù)電路的結(jié)構(gòu)和/或微結(jié)構(gòu)狀態(tài)變量的的特定子集的識(shí)別,用于從操作中的差錯(cuò)中恢復(fù)。圖3B圖示說(shuō)明了由圖2和圖3A所示電路4丸行的差錯(cuò)檢測(cè)和恢復(fù)中所包含的操作次序。在級(jí)3297,處理電路開(kāi)始與下一處理周期有關(guān)的處理,并且隨后在級(jí)3298,確定是否已經(jīng)產(chǎn)生操作中的差錯(cuò)。如果在級(jí)3298,各個(gè)轉(zhuǎn)變檢測(cè)器都沒(méi)有檢測(cè)到任何操作中的差錯(cuò),通過(guò)在級(jí)3297處理后續(xù)周期來(lái)繼續(xù)處理。然而,如果已經(jīng)檢測(cè)到操作中的差錯(cuò),則處理就轉(zhuǎn)入級(jí)3299,整個(gè)流水線排空沒(méi)有確認(rèn)的狀態(tài)變量。在另一可選結(jié)構(gòu)中,僅僅只需要排空在流水線中當(dāng)前存儲(chǔ)的數(shù)值的子集。隨后,繼續(xù)處理至級(jí)3300,在該級(jí),程序計(jì)數(shù)器復(fù)位到跟隨著最后確認(rèn)指令的指令。這發(fā)起指令的重新執(zhí)行來(lái)消除操作中的差錯(cuò)的任何影響。在級(jí)3301,確認(rèn)在級(jí)3300復(fù)位的程序計(jì)數(shù)器數(shù)值是否等于最后復(fù)位的程序計(jì)數(shù)器數(shù)值。這一級(jí)的處理用于檢測(cè)在計(jì)算中的死鎖,這樣給定指令重復(fù)執(zhí)行導(dǎo)致操作中的差錯(cuò)。如果在級(jí)3301當(dāng)前程序計(jì)數(shù)器數(shù)值被確定不等于最后復(fù)位的程序計(jì)數(shù)器數(shù)值,這樣處理就直接轉(zhuǎn)入級(jí)3303,在該級(jí),存儲(chǔ)程序計(jì)數(shù)器數(shù)值,用于以后死鎖的檢測(cè)。然而,如果在級(jí)3301確定程序計(jì)數(shù)器數(shù)值等于最后復(fù)位的程序計(jì)數(shù)器數(shù)值,這就指示是死鎖。因此,處理就轉(zhuǎn)入級(jí)3302,在該級(jí),銅整一個(gè)或者多個(gè)處理器的操作參數(shù),從而防止任何死鎖的繼續(xù)。在這一特殊的結(jié)構(gòu)中,操作參數(shù)的調(diào)整包括暫時(shí)降低時(shí)鐘速率。然而,應(yīng)該意識(shí)到的是,在另一可選結(jié)構(gòu)中,可以調(diào)整電壓來(lái)實(shí)現(xiàn)相同的效果。一旦在級(jí)3302時(shí)鐘速率被暫時(shí)降低,則處理就轉(zhuǎn)入級(jí)3303,在該級(jí),存儲(chǔ)程序計(jì)數(shù)器數(shù)值,用于以后死鎖的檢測(cè)。隨后,處理就返回級(jí)3397,開(kāi)始執(zhí)行下一處理周期。盡管在根據(jù)圖3B所示的結(jié)構(gòu)中,死鎖;波積極地檢測(cè)到并且根據(jù)死鎖來(lái)暫時(shí)改變操作參數(shù),但是在另一可選結(jié)構(gòu)中,根據(jù)每一個(gè)差錯(cuò)檢測(cè),例如,降低時(shí)鐘速率來(lái)暫時(shí)改變操作參數(shù)。在這種情況下,就不再需要積極檢測(cè)死鎖。圖3C圖示說(shuō)明了根據(jù)本技術(shù)的操作參數(shù)調(diào)整處理的流程圖。操作參數(shù)調(diào)整處理是與圖3B所示的差錯(cuò)檢測(cè)和恢復(fù)處理分開(kāi)的處理。圖3C所圖示逸明的操作參數(shù)調(diào)整處理是一個(gè)三級(jí)處理,它在級(jí)3304開(kāi)始,采樣與處理操作有關(guān)的差錯(cuò)比率。隨后,在級(jí)3305確定差錯(cuò)比率是否在可以接受的范圍之內(nèi),并且如杲是,就不對(duì)操作參數(shù)進(jìn)行任何調(diào)整,但繼續(xù)采樣差錯(cuò)比率。然而>如果確定差錯(cuò)比率不在可以接受的范圍之內(nèi),則處理就轉(zhuǎn)入下一級(jí)3306,從而調(diào)整操作參數(shù)。如果操作參數(shù)的這種調(diào)整不能使采樣差錯(cuò)比率返回到可以接受的范圍內(nèi),則根據(jù)需要繼續(xù)進(jìn)一步調(diào)整。圖3C所示的操作參數(shù)修正處理可以完全是在硬件中進(jìn)行,或者使用硬件和軟件的組合方式來(lái)進(jìn)行,其中差錯(cuò)比率信息記錄在硬件寄存器中或者在存儲(chǔ)器中。這種差錯(cuò)H:率信息隨后用軟件讀取,使用軟件可編程寄存器來(lái)修改操作參數(shù)。圖4圖示說(shuō)明了根據(jù)本技術(shù)的轉(zhuǎn)變檢測(cè)D型觸發(fā)器。該結(jié)構(gòu)包括標(biāo)準(zhǔn)的主從上升沿觸發(fā)的觸發(fā)器3310和轉(zhuǎn)變檢測(cè)器電路3350。觸發(fā)器3310對(duì)應(yīng)于圖1所示的連接著流水線級(jí)的觸發(fā)器3020。在另一可選結(jié)構(gòu)中,觸發(fā)器可以由任何電路元件來(lái)替代,只要其能夠存儲(chǔ)信號(hào)數(shù)值即可,而與觸發(fā)和其它要求無(wú)關(guān)。圖4所示電路結(jié)構(gòu)的處理是由時(shí)鐘信號(hào)CLK來(lái)驅(qū)動(dòng)的,時(shí)鐘信號(hào)nCLK對(duì)應(yīng)于已經(jīng)經(jīng)過(guò)一個(gè)單個(gè)反相器元件之后的時(shí)鐘信號(hào),而時(shí)鐘信號(hào)個(gè)反相器I1,I212和13的結(jié)構(gòu)提供給主觸發(fā)器并且也提供給轉(zhuǎn)變檢測(cè)器3350。三個(gè)反相器組合所引起的延遲等于主觸發(fā)器的建立時(shí)間。建立時(shí)間是觸發(fā)器的特性并且是表示該觸發(fā)器電路穩(wěn)定在確定的邏輯數(shù)值所需要的時(shí)間。在轉(zhuǎn)變檢測(cè)器3350中,輸入信號(hào)提供給一組四個(gè)反相器14、15、16和17。反相器陣列不同點(diǎn)的輸出提供給晶體管陣列,該晶體管陣列包括晶體管Nl、N2、N3、N4、N5和N6。晶體管Nl是被源于對(duì)應(yīng)于反相器14的輸入的信號(hào)的輸出驅(qū)動(dòng);晶體管N2是被反相器l6的輸出驅(qū)動(dòng);晶體管N3是被反相器14的輸出驅(qū)動(dòng);以及晶體管N4是被反相器l7的輸出驅(qū)動(dòng)。晶體管N5僅僅只在時(shí)鐘信號(hào)為高時(shí)才導(dǎo)通。晶體管N6與動(dòng)態(tài)節(jié)點(diǎn)ERR—DYN連接。ERR_DYN節(jié)點(diǎn)被緊接著的反相器18和19有力地保護(hù),以防止噪聲所引起的放電,并且通過(guò)反相器110從電路輸出差錯(cuò)輸出信號(hào)。來(lái)自各個(gè)單個(gè)的差錯(cuò)檢測(cè)電路的差錯(cuò)信號(hào)被提供給控制狀態(tài)機(jī)(未顯示),它響應(yīng)差錯(cuò)信號(hào)來(lái)輸出全局差錯(cuò)復(fù)位信號(hào)Err一reset。為了下一個(gè)差錯(cuò)事件,該信號(hào)對(duì)ERR_DYN節(jié)點(diǎn)進(jìn)行預(yù)充電。這一有條件的預(yù)充電方案顯著地減小了與時(shí)鐘3032相連引腳上的容負(fù)載并且提供了一個(gè)低功率開(kāi)銷(overhead)的設(shè)計(jì)。它也避免了額外的鎖存器元件的需要,否則就需要它來(lái)保持在預(yù)充電期間的差錯(cuò)信號(hào)的狀態(tài)。當(dāng)輸入數(shù)據(jù)在主觸發(fā)器3310的建立時(shí)間窗口中轉(zhuǎn)變或者在緊跟著圖5所示采樣邊沿的時(shí)鐘相位中轉(zhuǎn)變,圖4所示的電路結(jié)構(gòu)能夠標(biāo)示出集成電路操作中的差錯(cuò)。在建立窗口或者隨后的時(shí)鐘相位中的數(shù)據(jù)轉(zhuǎn)變都指示了新的轉(zhuǎn)變輸入。圖4所示的轉(zhuǎn)變檢測(cè)器的另一種可選方式是使用延遲的鎖存器,以晚于觸發(fā)器3020的執(zhí)行俘獲處理邏輯的輸出。在延遲數(shù)值和存儲(chǔ)于觸發(fā)器3020的非延遲數(shù)值之間的比較結(jié)果可以用于確定差錯(cuò)的發(fā)生。該差錯(cuò)檢測(cè)系統(tǒng)已經(jīng)在美國(guó)專利申請(qǐng)No.US2004-0199821中進(jìn)行了描述。該系統(tǒng)包括通過(guò)計(jì)算在第一和第二采樣時(shí)間(后續(xù)采樣時(shí)間)的信號(hào)數(shù)值之間的差值來(lái)檢測(cè)轉(zhuǎn)'變.。然而,圖4所示的轉(zhuǎn)變檢測(cè)器3350被安排為檢測(cè)在預(yù)定時(shí)間窗口內(nèi)的信號(hào)狀態(tài)的任何轉(zhuǎn)變。圖5圖示說(shuō)明了在主觸發(fā)器3310的建立周期內(nèi)所發(fā)生的數(shù)據(jù)轉(zhuǎn)變的功能時(shí)序圖。如圖5最上部分示出了主觸發(fā)器的建立時(shí)間TsETUP一FF與時(shí)鐘邊沿的關(guān)系,并且可以看到建立時(shí)間緊先于時(shí)鐘邊沿。時(shí)鐘邊沿保持為正的時(shí)間由時(shí)間周期Tpos所表示。因此,可以看到,在這種情況下,在主觸發(fā)器的建立周期發(fā)生輸入數(shù)據(jù)的轉(zhuǎn)變。然而,因?yàn)閳D4所示的延遲元件I!、12和13(在輸入數(shù)據(jù)輸入到轉(zhuǎn)變檢測(cè)器3350之前必須通過(guò)這些延遲元件),在數(shù)據(jù)中轉(zhuǎn)變就會(huì)延遲一些時(shí)間,使得這些轉(zhuǎn)變發(fā)生在時(shí)間Tpos內(nèi),但是在周期TSETUP_FF以外。數(shù)據(jù)輪廓(dataprofile)DATA—DEL3對(duì)應(yīng)于在轉(zhuǎn)變檢測(cè)器3350中的第一個(gè)反相器Lf的輸入。該數(shù)據(jù)輪廓與輸入數(shù)據(jù)的轉(zhuǎn)變輪廓是反相的,因?yàn)樗呀?jīng)通過(guò)了奇數(shù)個(gè)反相器I1,I2和I3。圖6圖示說(shuō)明了指示圖4所示的電路是如何在檢測(cè)從邏輯狀態(tài)1轉(zhuǎn)變到邏輯狀態(tài)0的數(shù)據(jù)轉(zhuǎn)變中起作用的功能時(shí)序圖。圖4所示的電路檢測(cè)晶體管Nl、N2和N3都導(dǎo)通時(shí)的轉(zhuǎn)變。正如圖6A所示,時(shí)鐘信號(hào)在時(shí)間T^從低變?yōu)楦卟⑶以跁r(shí)間Tc2再?gòu)母叩臓顟B(tài)變?yōu)榈偷臓顟B(tài)。圖6B顯示了在時(shí)間TD從高到低的數(shù)據(jù)轉(zhuǎn)變,這是在時(shí)鐘信號(hào)為高的時(shí)間周期內(nèi)產(chǎn)生的。圖6C顯示了圖4所示的信號(hào)DATA—DEL3的輪廓,這是反相器13的輸出并且控制晶體管N1。該信號(hào)在時(shí)間TB從低變?yōu)楦?,這一時(shí)間稍微遲于數(shù)據(jù)轉(zhuǎn)變時(shí)間Td。圖6D顯示了數(shù)據(jù)信號(hào)DATA—DEL4的數(shù)據(jù)輪廓,它控制晶體管N3。該數(shù)據(jù)信號(hào)在又遲后于丁13的時(shí)間,即,時(shí)間TI4,從高變?yōu)榈?。圖6E顯示了數(shù)據(jù)信號(hào)DATA—DEL5的數(shù)據(jù)輪廓,這是延遲元件14的輸出并且不作為輸入提供給晶體管陣列中的任何晶體管。圖6F顯示了數(shù)據(jù)信號(hào)DATA一DEL6的輪廓,用于控制N2晶體管輸入并且在遲后于時(shí)間丁14的時(shí)間U人高變?yōu)榈?。最后,圖6G顯示了DATA_DEL7的輪廓,它用于控制晶體管N4的輸入并且在時(shí)間Tn從低變?yōu)楦撸摃r(shí)間又比時(shí)間Tm滯后些。晶體管N1在時(shí)間丁13之前是截止的而在該時(shí)間之后是導(dǎo)通的。晶體管N3在時(shí)間丁14之前是導(dǎo)通的而在該時(shí)間之后是截止的。晶體管N2在時(shí)間丁16之前是導(dǎo)通的而在該時(shí)間之后是截止的,并且晶體管N4在時(shí)間丁17之前是截止的而在該時(shí)間之后是導(dǎo)通的。因'此,可以看到,存在著晶體管N1和N2兩者同時(shí)切換在導(dǎo)通的時(shí)間窗口,但是在該功能時(shí)序圖中,沒(méi)有晶體管N3和N4兩者同時(shí)切換在導(dǎo)通的時(shí)間窗口。在從T=0開(kāi)始和在丁13結(jié)束的時(shí)間窗口中,晶體管Nl和N4切換在截止,而晶體管N2和N3則切換在導(dǎo)通,因?yàn)樵谠摃r(shí)間窗口內(nèi)控制Nl的信號(hào)和控制N3的信號(hào)都為高。在TI3和TI4的時(shí)間窗口中,晶體管Nl、N2和N3都是導(dǎo)通的,而晶體管N4是截止的。在Tm和Tw間的時(shí)間窗口中,晶體管Nl和N2都是導(dǎo)通的,而晶體管N3和N4都是截止的。在TI6和TI7間的時(shí)間窗口中,只有晶體管N1是導(dǎo)通的;在Tn和T2間的時(shí)間窗口中,晶體管N1和N4都是導(dǎo)通的,而晶體管N2和N3都是截止的。因此,對(duì)于時(shí)鐘信號(hào)為高(當(dāng)晶體管N5是導(dǎo)通時(shí))和對(duì)于從時(shí)間113到Tw的持續(xù)時(shí)間,晶體管N1、N2和N5都是導(dǎo)通的。這就形成轉(zhuǎn)變的檢測(cè),因?yàn)樘峁┝藦木w管陣列到鎖存器節(jié)點(diǎn)Err一dyn的傳導(dǎo)路徑。圖7A至7G圖示說(shuō)明了適用于圖4所示用于檢測(cè)從邏輯數(shù)值0轉(zhuǎn)變到邏輯數(shù)值1的數(shù)據(jù)轉(zhuǎn)變的電路的功能時(shí)序圖。圖7A顯示了時(shí)鐘信號(hào),該信號(hào)從Td到Tc2的周期內(nèi)是正的。正如圖7B所示,在從0到1的數(shù)據(jù)轉(zhuǎn)變是在時(shí)間Td2之后,這正好是在時(shí)鐘信號(hào)為正的階段之中。圖7C顯示了數(shù)據(jù)信號(hào)DATA一DEL3的輪廓,該信號(hào)驅(qū)動(dòng)晶體管N1的輸入。該數(shù)據(jù)信號(hào)在時(shí)間TI3A從1變成為0,時(shí)間TBA較時(shí)間Tm滯后對(duì)應(yīng)于反相器13的賦值(evaluation)時(shí)間。圖7D圖示說(shuō)明了數(shù)據(jù)信號(hào)DATA一DEL4的輪廓,該信號(hào)驅(qū)動(dòng)晶體管N3的輸入。該信號(hào)在時(shí)間TwA從低變成為高,時(shí)間TwA較時(shí)間丁ba滯后對(duì)應(yīng)于反相器14的賦值時(shí)間。圖7E圖示說(shuō)明了數(shù)據(jù)信號(hào)DATA—DEL5的輪廓,該信號(hào)對(duì)應(yīng)于反相器I5的輸出。圖7F顯示了數(shù)據(jù)信號(hào)DATA—DEL6的數(shù)據(jù)輪廓,該信號(hào)驅(qū)動(dòng)晶體管N2的輸入并且該信號(hào)在時(shí)間Tma從0變成為1,時(shí)間力6a較時(shí)間TwA滯后對(duì)應(yīng)于反相器15的賦值時(shí)間和反相器16的賦值時(shí)間。最后,圖7G顯示了數(shù)據(jù)信號(hào)DATA_DEL7的數(shù)據(jù)輪廓,該信號(hào)驅(qū)動(dòng)晶體管N4的輸入。該數(shù)據(jù)信號(hào)在時(shí)間Tha從1變成為0。反相器I10輸出將僅僅只在如果晶體管N3、N4和N5全都導(dǎo)通的情況下從高變?yōu)榈?。正如從圖7A至7G中所看到的那樣,存在著一個(gè)時(shí)間窗口對(duì)應(yīng)這種情況。特別是,從晶體管N3導(dǎo)通的時(shí)間Tma幵始直至晶體管N4截止的時(shí)間TnA的時(shí)間窗口。在這種情況下,沒(méi)有這樣的窗口,其中晶體管N1、N2和N5全都導(dǎo)通。于是,就可以看到,當(dāng)晶體管N3、N4和N5全都為高時(shí),圖4所示的電路可指示從0變成為1的數(shù)據(jù)中的轉(zhuǎn)變。圖8A圖示說(shuō)明了圖4所示的主觸發(fā)器3310的功能時(shí)序圖,而圖8B則圖示說(shuō)明了圖4所示的轉(zhuǎn)變檢測(cè)器電路3350的功能時(shí)序圖。圖8A和圖8B所示的功能時(shí)序圖一起說(shuō)明了轉(zhuǎn)變檢測(cè)器的亞穩(wěn)定窗口是如何對(duì)準(zhǔn)使之不與主觸發(fā)器3210的建立窗口相重疊的。這就需要轉(zhuǎn)變檢測(cè)器應(yīng)該檢測(cè)到在主觸發(fā)器3310的建立窗口或者在時(shí)鐘上升邊沿之后的時(shí)間窗口中的轉(zhuǎn)變。這種轉(zhuǎn)變表示后續(xù)信號(hào),這樣主觸發(fā)器不能在指定的時(shí)間輸出正確的數(shù)值。圖8A所圖示說(shuō)明的時(shí)鐘信號(hào)與主觸發(fā)器有關(guān)并且顯示了在上升時(shí)鐘邊沿之前的建立窗口Tsetup—ff。兩個(gè)要求定義了適用于主觸發(fā)器的建立窗口。第一個(gè)要求是應(yīng)該始終能夠可靠地采樣到正確的數(shù)據(jù)數(shù)值,而第二個(gè)要求是輸出時(shí)序(即,確定數(shù)據(jù)輸出時(shí)間的時(shí)鐘)具有確定性和可以辨別。對(duì)于這些要求而言,一般來(lái)說(shuō),對(duì)輸出時(shí)序要求的邊際比采樣正確數(shù)值要(略微)更加嚴(yán)格。因此,主觸發(fā)器的建立時(shí)間Ts:tup-ff可以再被細(xì)分成兩個(gè)時(shí)間窗口。這些時(shí)間窗口中的第一個(gè)窗口是Tlate(參見(jiàn)圖8A)并且在該時(shí)間窗口中,如果信號(hào)發(fā)生轉(zhuǎn)變,盡管始終采樣到正確的數(shù)值。輸出時(shí)序不在指定的邊界之內(nèi)。在主觸發(fā)器的建立時(shí)間中的笫二個(gè)窗口在圖8A中標(biāo)記為T(mén)mstable-ff,這是主觸發(fā)器的亞穩(wěn)定窗口。在窗口Tmstable-ff中,不能采樣到正確的數(shù)據(jù)數(shù)值并且用于將輸出轉(zhuǎn)變到定義數(shù)值所花的時(shí)間可能是不確定的。再參照在圖4所示電路圖中所說(shuō)明的主觸發(fā)器,在主觸發(fā)器3310中,有可能當(dāng)轉(zhuǎn)變柵極(transitiongate)TG1關(guān)閉時(shí),在位于傳輸柵極(transmissiongate)TGl的輸出的反相器的任何一邊的節(jié)點(diǎn)Ml和M2上的電壓電平使得在傳輸柵極TG1輸出的與反相器并聯(lián)設(shè)置的三態(tài)反相器Fl將能夠始終反饋正確的數(shù)值。然而,數(shù)值用于通過(guò)后續(xù)傳輸柵極TG2和通過(guò)節(jié)點(diǎn)Sl和S2(在跟在TG2輸出后的另一個(gè)反相器的兩端),以及數(shù)值通過(guò)標(biāo)記為Qbar和Q的后續(xù)反相器所需時(shí)間長(zhǎng)于如果M2處于"full—rail"(邏輯狀態(tài)1的Vdd或者邏輯狀態(tài)0的GND)所需時(shí)間。接著,參照?qǐng)D8B,該圖是與圖4所示的轉(zhuǎn)變檢測(cè)器3350有關(guān)的功能時(shí)序圖,其中轉(zhuǎn)變檢測(cè)器3350不具有如同觸發(fā)器3310(和圖5和圖8A所說(shuō)明)那樣的對(duì)應(yīng)于時(shí)鐘上升邊沿的建立時(shí)間。而是,對(duì)于轉(zhuǎn)變檢測(cè)器3350,存在著可以可靠檢測(cè)數(shù)據(jù)輸入中的轉(zhuǎn)變的時(shí)間窗口并將該時(shí)間窗口稱之為"采樣窗口"。在圖8B中,采樣窗口標(biāo)記為T(mén)sample_td。在圖8A中,采樣窗口Tsample—td被再細(xì)分為三個(gè)明顯不同的子窗口。前兩個(gè)子窗口對(duì)應(yīng)于上述主觸發(fā)器的子窗口Tlate和Tmstable-ff。第三個(gè)子窗口Tincorrect,它相鄰窗口Tmstable-ff,與Tlate和Tmstable-ff—起形成全部時(shí)間窗口Tsmple—td,其中轉(zhuǎn)變檢測(cè)器3350—定檢測(cè)出在數(shù)據(jù)信號(hào)中的轉(zhuǎn)變。如果數(shù)據(jù)信號(hào)在子窗口Tlate中轉(zhuǎn)變,則圖4所示的觸發(fā)器3310的Q輸出是正確的,但轉(zhuǎn)變是遲后的。如果數(shù)據(jù)信號(hào)轉(zhuǎn)變發(fā)生在時(shí)間窗口Tmstable-ff中,則觸發(fā)器3310的主鎖存器部分會(huì)變成亞穩(wěn)定,這使得電路的輸出的數(shù)值變得不正確和/或是延遲。最后,如果在子窗口Tincorrect中發(fā)生轉(zhuǎn)變,則輸出就會(huì)有不正確的數(shù)值,并且圖4所示的傳輸柵極TG1就會(huì)在新的信號(hào)數(shù)值到來(lái)之前完全關(guān)閉。在緊跟著圖8A所示的Tincorrect之后并且標(biāo)記為T(mén)correct的周期部分表示時(shí)間周期的其余部分,在這期間轉(zhuǎn)變不表示差錯(cuò)。值得注意的是,圖4所示器件的操作參數(shù)可設(shè)置成使得主觸發(fā)器3310的輸入信號(hào)始終不會(huì)遲后于Tincorrect窗口內(nèi)。這種結(jié)構(gòu)對(duì)主觸發(fā)器3310的輸入的保持時(shí)間施加了限制,使得可以改變的對(duì)主觸發(fā)器的最早輸入是Tcorrect窗口的開(kāi)始。轉(zhuǎn)變檢測(cè)器3350也具有亞穩(wěn)定窗口,該窗口在圖8B中被標(biāo)記為T(mén)mstable_td,并且該時(shí)間窗口在時(shí)間窗口Tsample_td之前。如果在時(shí)間窗口Tmstable_td中發(fā)生轉(zhuǎn)變,則在圖4所示的Err_dyn模式就會(huì)變成亞穩(wěn)定,使得差錯(cuò)輸出變成未知(即,邏輯l、邏輯O或者某些中間數(shù)值)。然而,通過(guò)將電路設(shè)計(jì)使得在所示的窗口Tcorrect中產(chǎn)生Tmstable_td,但不與Tlate、Tmstable-ff或者Tincorrect相重疊,則如果知道在轉(zhuǎn)變檢測(cè)3350中沒(méi)有產(chǎn)生亞穩(wěn)定,那么主觸發(fā)器3310的Q輸出就一定具有正確的數(shù)值和輸出時(shí)間選擇。這就使得標(biāo)準(zhǔn)的同步邏輯可以應(yīng)用于差錯(cuò)信號(hào)所驅(qū)動(dòng)的邏輯輸出。如圖9所示。圖9圖示說(shuō)明了源于轉(zhuǎn)變檢測(cè)器的差錯(cuò)信號(hào)的差錯(cuò)同步。圖9所示的結(jié)構(gòu)包括OR門(mén)3040(對(duì)應(yīng)于圖1所圖示說(shuō)明的)、以及OR門(mén)輸出依次提供至的第一觸發(fā)器3042和第二觸發(fā)器3044。第一觸發(fā)器3042特別設(shè)計(jì)成適用于快速亞穩(wěn)定解決(resolution)并且在反饋環(huán)路中具有非常高的增益,這就是亞穩(wěn)定的原因。標(biāo)準(zhǔn)觸發(fā)器一般在反饋環(huán)路中具有比觸發(fā)器3042更低的增益,因?yàn)樵谟|發(fā)器的增益和其它參數(shù)(例如,建立時(shí)間和面積)之間存在著設(shè)計(jì)的折衷。第二觸發(fā)器3044是一個(gè)標(biāo)準(zhǔn)的觸發(fā)器。正如圖9所示,源于個(gè)轉(zhuǎn)變檢測(cè)器所產(chǎn)生的多個(gè)差錯(cuò)信號(hào),errorl、e匿2、e蘭3,…,errorN二起進(jìn)行OR運(yùn)算,形成GlobalError信號(hào)。如果輸入OR門(mén)3040的各個(gè)差錯(cuò)信號(hào)中的任何一個(gè)信號(hào)是亞穩(wěn)定的,則就會(huì)引起輸出GlobalError信號(hào)的亞穩(wěn)定或者不確定的時(shí)序。GlobalError信號(hào)通過(guò)用于將信號(hào)同步在一個(gè)指定時(shí)鐘域中的標(biāo)準(zhǔn)結(jié)構(gòu),該結(jié)構(gòu)由兩個(gè)觸發(fā)器3040和3044所組成。第二個(gè)觸發(fā)器3044的輸出是GlobalError信號(hào)的同步版,因?yàn)樗哂袑?duì)應(yīng)于明確的邏輯數(shù)值的電壓電平并且還具有確定的時(shí)序。在圖9中,將該信號(hào)標(biāo)記為GlobalErrorSync。在GlobalError信號(hào)處于亞穩(wěn)定的狀況下,GlobalErrorSync信號(hào)可以為邏輯0,也可以為邏輯1。圖1所示的差錯(cuò)恢復(fù)檢測(cè)器3050使用GlobalErrorSync信號(hào)來(lái)確定何時(shí)產(chǎn)生操作差錯(cuò)。由于轉(zhuǎn)變檢測(cè)器3350的亞穩(wěn)定窗口完全處于在Tcorrect時(shí)間窗口內(nèi)(參照?qǐng)D8A和圖8B),在轉(zhuǎn)變檢測(cè)器3350變成亞穩(wěn)定的情況下,這GlobalErrorSync信號(hào)所產(chǎn)生的數(shù)值將會(huì)對(duì)應(yīng)于"不關(guān)注"的條件。如果在GlobalErrorSync信號(hào)在這種情況下指示為邏輯數(shù)值l,則差錯(cuò)恢復(fù)處理就被初始化,盡管這是開(kāi)始了。權(quán)利要求1.一種適用于數(shù)據(jù)處理裝置的集成電路,所述集成電路能夠執(zhí)行數(shù)字?jǐn)?shù)據(jù)處理且包括差錯(cuò)檢測(cè)電路,能夠監(jiān)測(cè)在所述集成電路中的數(shù)字信號(hào)數(shù)值并且檢測(cè)在預(yù)定時(shí)間窗口中的所述信號(hào)數(shù)值的轉(zhuǎn)變,所述轉(zhuǎn)變指示所述集成電路的操作中的差錯(cuò);存儲(chǔ)單元,能夠存儲(chǔ)所述數(shù)據(jù)處理裝置的恢復(fù)狀態(tài),所述恢復(fù)狀態(tài)包括對(duì)應(yīng)于所述集成電路的編程器模式的結(jié)構(gòu)狀態(tài)變量中的至少一個(gè)子集;差錯(cuò)恢復(fù)電路,能夠響應(yīng)所述差錯(cuò)檢測(cè)電路并能夠使得所述集成電路使用所述存儲(chǔ)的恢復(fù)狀態(tài)從所述差錯(cuò)中恢復(fù);操作參數(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ù)電路能夠使得集成電路從所述操作中的差錯(cuò)中恢復(fù),從而使得所述集成電路的數(shù)據(jù)處理繼續(xù)。2.如權(quán)利要求1所述的集成電路,其特征在于,其中所述恢復(fù)狀態(tài)包括微結(jié)構(gòu)狀態(tài)變量中的至少一個(gè)子集。3.如權(quán)利要求1或2所述的集成電路,其特征在于,其中所述差錯(cuò)檢測(cè)電路安排成通過(guò)計(jì)算在所述第一采樣時(shí)間的所述信號(hào)數(shù)值和第二采樣時(shí)間(即,后續(xù)的采樣時(shí)間)的所述信號(hào)數(shù)值之間的差值來(lái)檢測(cè)所述轉(zhuǎn)變。4.如權(quán)利要求1或2所述的集成電路,其特征在于,其中所述差錯(cuò)檢測(cè)電路被安排成通過(guò)檢測(cè)在預(yù)定時(shí)間窗口內(nèi)的所述信號(hào)數(shù)值中的任何狀態(tài)轉(zhuǎn)變來(lái)^r測(cè)所述轉(zhuǎn)變。5.如上述權(quán)利要求中任意一項(xiàng)所述的集成電路,其特征在于,其中所述差錯(cuò)檢測(cè)電路能夠檢測(cè)與所述集成電路的處理電路元件有關(guān)的輸出信號(hào)中的差錯(cuò)。6.如權(quán)利要求5所述的集成電路,其特征在于,其中所述集成電路具有差錯(cuò)檢測(cè)電路亞穩(wěn)定窗口,所述亞穩(wěn)定窗口與所述有關(guān)處理電路元件的建立窗口相互排斥。7.如權(quán)利要求5或6所述的集成電路,其特征在于,其中所述集成電路包括多個(gè)與多個(gè)處理電路元件各自相關(guān)的差錯(cuò)檢測(cè)電路。8.如權(quán)利要求5至7中任意一項(xiàng)所述的集成電路,其特征在于,其中所述集成電路具有包括多個(gè)流水線級(jí)的指令流水線。9.如權(quán)利要求7所述的集成電路,其特征在于,其中所述相關(guān)的處理電路元件是適用于在所述多個(gè)流水線級(jí)相連各個(gè)之間傳遞數(shù)據(jù)的鎖存器。10.如權(quán)利要求5至9中任意一項(xiàng)所述的集成電路,其特征在于,其中所述差錯(cuò)檢測(cè)電路包括至少一個(gè)安排用于延遲輸入數(shù)字信號(hào)的延遲元件,從而能夠在所述處理電路元件的建立時(shí)間周期內(nèi)發(fā)生所述轉(zhuǎn)變時(shí)檢測(cè)所述轉(zhuǎn)變。11.如上述權(quán)利要求中任意一項(xiàng)所述的集成電路,其特征在于,其中所述差錯(cuò)檢測(cè)電路包括0變成1的轉(zhuǎn)變檢測(cè)器和1變成0的轉(zhuǎn)變檢測(cè)器中的至少_個(gè)。12.如權(quán)利要求5至11中任意一項(xiàng)所述的集成電路,其特征在于,其中所述差錯(cuò)恢復(fù)電路包括至少一個(gè)穩(wěn)定流水線級(jí),所述穩(wěn)定流水線級(jí)能夠在將所述輸出作為所述集成電路的狀態(tài)變量提交之前確認(rèn)所述多個(gè)流水線級(jí)的輸出數(shù)值。13.如權(quán)利要求12所述的集成電路,其特征在于,其中所述集成電路包括數(shù)據(jù)轉(zhuǎn)發(fā)電路,所述數(shù)據(jù)轉(zhuǎn)發(fā)電路能夠?qū)⒅苯觼?lái)自多個(gè)流水線級(jí)中的特定一個(gè)流水線級(jí)的,用所述特定流水線級(jí)所計(jì)算的數(shù)值提供給所述多個(gè)流水線級(jí)中的另一個(gè)不同的流水線級(jí),以為不同流水線級(jí)的輸入數(shù)值使用。14.如上述權(quán)利要求中任意一項(xiàng)所述的集成電路,其特征在于,其中所述存儲(chǔ)單元是寄存器組,能夠存儲(chǔ)確認(rèn)的狀態(tài)變量,所述確認(rèn)的狀態(tài)變量是已經(jīng)確認(rèn)不會(huì)受到操作中的差錯(cuò)影響的變量。15.如權(quán)利要求1至14中任意一項(xiàng)所述的集成電路,其特征在于,其中所述集成電路包括推測(cè)寄存器組,所述推測(cè)寄存器組能夠存儲(chǔ)還沒(méi)有確認(rèn)不受所述操作中的差錯(cuò)影響的推測(cè)狀態(tài)變量,并且其中所述存儲(chǔ)單元是確認(rèn)16.如權(quán)利要求15所述的集成電路,其特征在于,其中所述差錯(cuò)恢復(fù)電路能夠在所述差錯(cuò)檢測(cè)電路檢測(cè)到操作中的差錯(cuò)的情況下以所述確認(rèn)寄存器組中的所述確認(rèn)狀態(tài)變量中的相對(duì)應(yīng)的變量來(lái)取代在所述推測(cè)寄存器組中的所迷推測(cè)狀態(tài)變量中的子集。17.如上述權(quán)利要求中任意一項(xiàng)所述的集成電路,其特征在于,其中所述操作參數(shù)控制器能夠在檢測(cè)到所述操作中的差錯(cuò)之后的一段時(shí)間延遲以后至少暫時(shí)調(diào)整一個(gè)或者多個(gè)所述性能控制參數(shù)。18.如權(quán)利要求17所述的集成電路,其特征在于,還包括死鎖檢測(cè)模塊,死鎖能夠檢測(cè)在對(duì)應(yīng)于給定指令操作中重復(fù)的差錯(cuò),并且其中所述操作參數(shù)控制器能夠根據(jù)所述檢測(cè)到的重復(fù)來(lái)暫時(shí)調(diào)整一個(gè)或多個(gè)所述性能控制參數(shù)。19.一種適用于控制集成電路執(zhí)行數(shù)據(jù)處理的方法,所述方法包括下列步驟監(jiān)測(cè)在所述集成電路中的數(shù)字信號(hào)數(shù)值并且檢測(cè)在預(yù)定時(shí)間窗口內(nèi)的所述信號(hào)數(shù)值的轉(zhuǎn)變,所述轉(zhuǎn)變指示所述集成電路的操作中的差錯(cuò);存儲(chǔ)所述數(shù)據(jù)處理裝置的恢復(fù)狀態(tài),所述恢復(fù)狀態(tài)包括對(duì)應(yīng)于所述集成電路編程器才莫式的結(jié)構(gòu)狀態(tài)變量中的至少一個(gè)子集;使用所述存儲(chǔ)的恢復(fù)狀態(tài),根據(jù)所述操作中的差錯(cuò)的檢測(cè),使得所述集成電路從所述操作中的差錯(cuò)中恢復(fù);控制所述集成電路的一個(gè)或者多個(gè)性能控制操作參數(shù);其中,所述控制步驟包括根據(jù)在所述監(jiān)測(cè)和檢測(cè)步驟中檢測(cè)到的一個(gè)或多個(gè)差錯(cuò)特性來(lái)控制所述一個(gè)或多個(gè)性能控制參數(shù)中的至少一個(gè)參數(shù),從而保持操作中的差錯(cuò)的非零比率,響應(yīng)所述操作中的差錯(cuò)的檢測(cè)來(lái)使用所述存儲(chǔ)的恢復(fù)狀態(tài),使得所述集成電路能夠從操作中的差錯(cuò)中恢復(fù),使所述集成電路繼續(xù)數(shù)據(jù)處理。全文摘要一種集成電路包括差錯(cuò)檢測(cè)電路3230-1至3230-4,這些差錯(cuò)檢測(cè)電路能夠檢測(cè)到在預(yù)定時(shí)間窗口內(nèi)的信號(hào)數(shù)值中的轉(zhuǎn)變,這些轉(zhuǎn)變指示集成電路在操作中的差錯(cuò)。該集成電路還包括存儲(chǔ)單元3296,它能夠存儲(chǔ)數(shù)據(jù)處理裝置的恢復(fù)狀態(tài),該恢復(fù)狀態(tài)包括對(duì)應(yīng)于集成電路編程器模式的結(jié)構(gòu)狀態(tài)變量中的至少一個(gè)子集。提供差錯(cuò)恢復(fù)電路3250、3260、3210作為集成電路中的一部分,并且用于使集成電路能夠使用存儲(chǔ)單元3296所存儲(chǔ)的恢復(fù)狀態(tài)從檢測(cè)到的操作差錯(cuò)中恢復(fù)。集成電路的操作參數(shù)控制器3242根據(jù)檢測(cè)到的操作中的差錯(cuò)的一個(gè)或多個(gè)特性來(lái)調(diào)整集成電路的操作參數(shù),例如,時(shí)鐘頻率、工作電壓、基底的偏置電壓、溫度,以采用提高整體性能的方式來(lái)保持有限的非零差錯(cuò)比率。文檔編號(hào)G06F11/14GK101203836SQ200580050138公開(kāi)日2008年6月18日申請(qǐng)日期2005年4月21日優(yōu)先權(quán)日2005年4月21日發(fā)明者D·M·布爾,D·T·布勞夫,S·達(dá)斯申請(qǐng)人:Arm有限公司;密執(zhí)安大學(xué)