TWI553484B - 前瞻臆測處理裝置及其處理方法 - Google Patents
前瞻臆測處理裝置及其處理方法 Download PDFInfo
- Publication number
- TWI553484B TWI553484B TW103112118A TW103112118A TWI553484B TW I553484 B TWI553484 B TW I553484B TW 103112118 A TW103112118 A TW 103112118A TW 103112118 A TW103112118 A TW 103112118A TW I553484 B TWI553484 B TW I553484B
- Authority
- TW
- Taiwan
- Prior art keywords
- data path
- multiplexer
- measured value
- value
- correct value
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims description 23
- 238000003672 processing method Methods 0.000 title claims description 7
- 238000005259 measurement Methods 0.000 title description 9
- 238000001514 detection method Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 22
- 238000013461 design Methods 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 16
- 238000000034 method Methods 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000005669 field effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000003486 chemical etching Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000012942 design verification Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000009528 severe injury Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Tests Of Electronic Circuits (AREA)
Description
本發明係關於一種處理技術,且特別關於一種前瞻臆測處理裝置及其處理方法。
科技日新月異,積體電路製造技術也持續不斷進步,使得晶片上的電晶體尺寸更小巧、更快速,現代晶片設計也因而受益,不僅可在更小的晶片面積中塞入更多更快的電晶體,增進其效能,在高速計算、消費性電子產品、車用電子、醫療及健康照顧等應用領域所提供的功能也豐富不少。然而,隨之而來的耗電與散熱問題卻成為當下積體電路設計所面臨的最大瓶頸。因晶片的耗電量與供電電壓的平方成正比,降低晶片的操作電壓於是成為省電最有效的招數之一;為使之能在僅使用電池供電的狀態下達到更長的工作時間,超低電壓電路的設計於是成為目前趨勢,也因此有不少適用於超低電壓晶片設計之相關技術。在先進製程中,尤其是40奈米以下的電路設計,各電晶體的變異情況非常嚴重,其源由是因光學繞射以及化學蝕刻導致導線寬度與長度不一等等,使每個電路間速度表現有快有慢不一致而造成變異,尤其在極低電壓操作時非常容易受到變異的影響,而這種變
異容易造成效能上的影響。第1圖是由B.H.Calhoun所提出的數據,改變晶片的電壓,觀察不同在電壓中電路的延遲分布的狀況,並把數據整理在圖中,由此可以發現在極低電壓(200mV/300mV)下,電路的速度因為電壓降低而變慢不少,與正常電壓(1V)相比,200毫伏(mV)的最慢情況比正常電壓的最慢情況慢了一千倍,在300mV的狀況還是受到很大的影響(也慢了超過一百倍)。觀察圖形的趨勢將發現隨著電壓的降低,圖形也相對變寬;這個現象表示了電路延遲的狀況也相當不一,以致無法集中在圖形中。把電路的延遲正規化後的結果如第2圖與第3圖,第2圖是300mV電壓下正規化後的電路延遲,而第3圖則是在1.2伏特(V)電壓下正規化後的電路延遲,更能表示出降低電壓後除了整體電路速度下降之外,電路執行的速度也有巨大的變異:電路速度不再一致,最慢的情況則造成了超過1.4倍的相對延遲時間,使電路整體效能也隨之變差。一般同步電路設計採用單一時脈,並借助電子設計自動化(EDA)工具中的靜態時序分析(static timing analysis;STA)分析電路的延遲,針對最差狀況(worst case;一般為製程偏慢P型場效電晶體/慢N型場效電晶體(slow PMOS/slow NMOS),且低於額定電壓10%與攝氏125度之操作環境溫度)進行設計,以確保在所有可能的製程、電壓、溫度與不同輸入變異的狀況能正確操作。直接在超低電壓使用傳統的超標設計將導致過度悲觀、嚴重損害效
能的結果;假如使用非同步設計,由於沒有一般現有的EDA工具輔助設計,驗證會變得十分麻煩。可變延遲資料路徑為能有效避免需要滿足最差狀況設計的電路技術,可針對正常狀況設計,而非為了應付最差情況進行超標設計。第4圖是可變延遲資料路徑的概念圖,中間為一個可變延遲資料路徑,利用時脈觸發輸入,當資料x[n]經過此路徑後將會得到輸出y[n],路徑中有錯誤偵測電路10,錯誤偵測可以利用各種不同方法偵測,不同可變延遲資料路徑的技術間的差別在於偵測方法的不同。當發生延遲很長的時候,錯誤偵測電路10將會發出等待訊號,代表此路徑還在進行運算。
雙閂鎖設計(double latching)是其中一種可變延遲資料路徑之設計,此設計除了資料變異外,也能夠有效處理動態製程、電壓及溫度的變異。第5圖是實現電路層級延遲臆測最常見的雙閂鎖機制。傳統的同步電路都會令執行的時脈速度調整至相等或超過於計算核心的最差情況時路徑延遲,以保證計算在所有情況下皆能及時正確完成。但雙閂鎖機制為支援延遲臆測之電路,則會激進地會令可以執行的時脈低於計最差情況時的路徑延遲以達到更快的速度。雙閂鎖機制會需要兩個閂鎖各分別儲存臆測的值以及正確的值,以及比較器比較臆測的結果,還有一個時脈延遲閂鎖正確的值。在雙閂鎖機制中,會提前將臆測結果存於
第二閂鎖12(但前提是多數計算皆可在目前調整的時脈內完成,否則雙閂鎖機制得到的效益將會很少甚至沒有),在經過額外的時脈延遲後(時脈延遲的速度必須加上先前的時脈速度,需與最差情況時的路徑延遲相等或超過保證獲得正確運算結果),再儲存正確結果於第三閂鎖14,以驗證臆測之正確性。若第二閂鎖12與第三閂鎖14中的結果一致則代表臆測成功,計算繼續進行;若否,基於錯誤臆測結果之計算皆被清除,而存在第三閂鎖14的正確結果會在下一時脈週期反饋閂鎖入第二閂鎖12重新進行計算。錯誤臆測的系統行為相當於暫停管線(stall)一個時脈,或是該筆資料運算耗費兩個時脈完成。
第6圖列出一個例子用依時序圖實際描述雙閂鎖的機制,假定φ為時脈週期,φ為3ns,δ為時脈延遲(clock delay),δ為1ns。接著設定第6圖所示的資料路徑最差狀況的延遲為4ns(φ加上δ),當第一筆資料由0ns時進入,在第3ns將會由第二閂鎖12閂鎖臆測的輸出,再經過一個1ns的δ時,即第4ns(第一個週期的φ加上延遲δ)才會閂鎖正確的結果至第三閂鎖14,第3ns和第4ns比較的結果假如正確,則臆測成功。在第6ns時則閂鎖由第3ns輸入的臆測輸出,第7ns則閂鎖正確輸入,因為第6ns的第二閂鎖12和第7ns的第三閂鎖14比較所存的結果不正確,這個時脈週期將會暫停管線,第三閂鎖14將會把正確的值反饋閂鎖至第二閂鎖12,到第
9ns時才由第二閂鎖12正確輸出,此時因為暫停管線的並重新計算的關係,第一閂鎖16並沒有取新的輸入,待第12ns才會有新的輸入至第一閂鎖16中,也在第二閂鎖12閂鎖住資料路徑的臆測輸出,第13ns由第三閂鎖14閂鎖正確輸出之後,與第二閂鎖12中的值比較,因為臆測成功則第二閂鎖12直接在第15ns閂鎖臆測輸出,第16ns第三閂鎖14閂鎖正確輸出,在第二閂鎖12與第三閂鎖14比較結果正確,則代表第二閂鎖12有臆測成功的輸出。
為避免延遲δ之正確資料閂鎖於第三閂鎖14出現競態條件(race condition)問題,運算核心需保證所有操作情況下的最短路徑延遲不得小於δ,以防止第一閂鎖16的下筆運算進入干擾。實務上,利用雙閂鎖之電路層及延遲臆測可整合進現行的積體電路設計流程:其中雙閂鎖可使用反向時脈觸發,並藉由時脈之占空比(duty cycle)控制以調整δ,而最短路徑延遲則使用維持時間(hold time)限制達成,使之插入額外的電晶體以滿足其限制。上述的雙閂鎖機制最為人所詬病的是其時序違反(timing violation)的偵測代價不小:特別是用於處理器設計時,其額外的作為影子暫存器(shadow register)之第三閂鎖14、避免競態條件插入額外的電晶體、與比對臆測值是否正確的比較器全部加起來大概和所要臆測的算術運算單元相差不多,而造成額外的晶片面積以及消耗功率浪費;而影子暫存器需要的延遲亦造成時脈分布
網路(clock tree)設計的困難,即使是用雙向時脈邊緣觸發,在各個不同模式、不同操作電壓下維持固定的占空比亦非易事,因時脈分布網路也會受到變異影響,隨之很難產生精準的時脈延遲,這件事實常常造成時脈訊號之不確定性增加,反而需要更多額外的超標設計,最後得不償失。
因此,本發明係在針對上述的困擾,提出一種前瞻臆測處理裝置及其處理方法,以解決習知所產生的問題。
本發明的主要目的,在於提供一種前瞻臆測處理裝置及其處理方法,其係利用至少二資料路徑單元對輸入訊號進行同步運算,以產生至少一正確值與一臆測值,以藉此對照縮短運算延遲時間,並降低時脈延遲在設計上的困難度。此外,利用同步運算的技巧,可以在不需要插入額外的電晶體便可限制(constraint)維持時間(hold time),以提升系統的效能及功率。
為達上述目的,本發明提供一種前瞻臆測處理裝置,其係包含至少二個資料路徑單元以輪替方式處理輸入訊號,並對此進行運算。每個資料路徑單元皆在開始運算後第N個週期輸出正確值,同時在第M個週期產生計算臆測值提前接續之計算,其中M、N皆為自然數,M小於N。每個資料路徑單元之輸出皆連接至少一個第一多工器與一第二多工器,由時序控制器控制其輸
出,第二多工器輪替輸出每個資料路徑之正確值,第一多工器輪替輸出每個資料路徑單元之臆測值,在常見的管線設計(pipelined design)中,可額外加入錯誤偵測電路,錯誤偵測電路其中一種實作方法如下:將首次M週期的臆測值存至暫存器(regsiter)中,並在N週期時輸出正確值與臆測值比較的結果當作等待訊號,不相同則等待訊號輸出1,相同則輸出0,等待訊號通知輸入訊號或是整個管線是否等待,輸入訊號將在等待訊號為0時輸入至資料路徑單元中。
本發明亦提供一種前瞻臆測處理方法,首先,至少二個資料路徑單元以輪替方式處理輸入訊號並進行運算,依序在N個週期後輸出計算值,同時在在首次M個週期內產生計算之臆測值提前接續之計算,其中M、N皆為自然數,M小於N。在低延遲需求的設計中,可加入錯誤偵測電路,使之發出等待訊號,若等待訊號輸出為0,繼續進行臆測值所對應之指令;以及若為1,暫停(stall)管線或停止輸入一時段,等待資料路徑單元計算完畢。
茲為使貴審查委員對本發明的結構特徵及所達成的功效更有進一步的瞭解與認識,謹佐以較佳的實施例圖及配合詳細的說明,說明如後:
10‧‧‧錯誤偵測電路
12‧‧‧第二閂鎖
14‧‧‧第三閂鎖
16‧‧‧第一閂鎖
18‧‧‧資料路徑單元
20‧‧‧第一多工器
24‧‧‧第二多工器
26‧‧‧比較器
28‧‧‧時序控制器
30‧‧‧解多工器
31‧‧‧加法器
32‧‧‧暫存器
第1圖為先前技術之操作電壓與延遲時間分佈圖。
第2圖為先前技術之300毫伏之正規化延遲時間分佈圖。
第3圖為先前技術之1.2伏之正規化延遲時間分佈圖。
第4圖為先前技術之可變延遲資料路徑概念圖。
第5圖為先前技術之雙閂鎖機制之電路示意圖。
第6圖為先前技術之雙閂鎖機制之時序圖。
第7圖為先前技術之17位元乘法器之延遲時間分佈圖。
第8圖為本發明之前瞻臆測處理裝置之電路示意圖。
第9(a)、9(b)圖分別為本發明之累加器電路示意圖與其對應之時序圖。
第10(a)圖是本發明之前瞻臆測處理裝置應用於累加器之於第一個週期的電路運作示意圖。
第10(b)圖是本發明之前瞻臆測處理裝置應用於累加器之於第二個週期的電路運作示意圖。
第11圖為本發明之前瞻臆測處理裝置應用於累加器之皆臆測成功之時序圖。
第12圖為本發明之前瞻臆測處理裝置應用於累加器
之僅第一筆輸入臆測失敗之時序圖。
第13圖為本發明之前瞻臆測處理裝置應用於累加器之僅第二筆輸入臆測失敗之時序圖。
第14圖為本發明之前瞻臆測處理裝置應用於累加器之前二筆輸入臆測失敗之時序圖。
本發明最主要概念為:時脈週期的決定考慮多數情況(通常離最差狀況會有不小空間,尤其是在低電壓操作時);當出現少數接近最差狀況的情形,可以多花一至數個時脈週期完成計算,因此可以避免所有運算被少數幾個冗長的最差情況拖累。此電路操作類似非同步,但仍保持同步設計驗證的方便性;進而提升整體效能,也可以使用正規的EDA工具及標準元件庫(cell-based)設計流程完成設計。
本發明所描述的可變延遲資料路徑將電路之時脈週期有效壓縮至最差情況之關鍵路徑延遲(critical path delay)之內,故可提升整體效能。以第7圖的乘法器之延遲時間分布為例,關鍵路徑長度為42奈秒(ns),但實際需要那麼長的運算時間是微乎其微,故可選擇25ns為時脈週期,並讓少數超過25ns的乘法計算以2個時脈(50ns)完成,若5%乘法以2個時脈計算,則平均一次乘法計算僅花費26.25ns,可以得到1.6倍的效能增長。若使用靜態時序
分析估算延遲,還是需要超標設計以應付動態製程、電壓及溫度變異,因此可以證明在效能上的確比傳統設計上更加的有效率。
請參閱第8圖,本發明包含N個資料路徑單元18,其係接收一輸入訊號x,並對此進行運算,以產生一正確值與至少一臆測值,並儲存臆測值,其中N≧2,且為自然數。每個資料路徑單元18之輸出連接至少一第一多工器20與一第二多工器24。在此實施例中,資料路徑單元18、臆測值與第一多工器20之數量皆以複數為例。令N≧3,且為自然數,第一多工器20之數量為(N-1)個,同時產生之臆測值之數量為(N-1)個。資料路徑單元18將根據輸入訊號x所產生之正確值y N 傳送至第二多工器24,第二多工器24在資料路徑單元18執行第N個週期輸出正確值y N 。臆測值分別為y (N-1)、y (N-2)、…、y (1),其係分別代表每個資料路徑單元18計算(N-1)、(N-2)、…、1個週期後的臆測值。第一多工器20接收上述臆測值y (N-1)、y (N-2)、…、y (1),並在資料路徑單元18首次M個週期內依序輸出上述臆測值y (1)、…、y (N-2)、y (N-1),其中N大於M,且為自然數。
第二多工器24與第一多工器20連接一時序控制器28,其係控制第二多工器24與第一多工器20輸出正確值y N 與臆測值y (1)、…、y (N-2)、y (N-1)之輸出時間。每一資料路徑單元18分別連接一解多工器30,其係連接時序控制器28,並接收一時脈訊號clk,時序控制器28利用時脈訊號
clk與所有解多工器30控制資料路徑單元18輪替(round-robin)接收輸入訊號x,即由上而下資料路徑單元18依序接收輸入訊號x。第二多工器24與資料路徑單元18連接一比較器26,其係接收已儲存之臆測值y (1)、…、y (N-2)、y (N-1)與正確值y N ,並比較正確值與每一臆測值,在正確值與臆測值相同時,比較器26驅動資料路徑單元18選擇繼續進行臆測值所對應之指令。在正確值與每一臆測值相異時,比較器26驅動資料路徑單元18暫停(stall)管線一時段,如一週期,以供第二多工器24輸出正確值。
以下敘述本發明之運作流程。首先,時序控制器28利用時脈訊號clk與所有解多工器30控制資料路徑單元18輪替(round-robin)接收輸入訊號x,資料路徑單元18對輸入訊號x進行運算,以產生(N-1)個臆測值並儲存此些臆測值,其中N為自然數,N≧2。接著,在資料路徑單元18執行第N個週期前依序將輸出上述臆測值y (1)、…、y (N-2)、y (N-1)。時序控制器28也控制第一多工器20,依序接收相臆測值y (1)、…、y (N-2)、y (N-1),並在資料路徑單元18首次M個週期內依序輸出上述臆測值y (1)、…、y (N-2)、y (N-1)。資料路徑單元18在執行第N個週期時,時序控制器28控制第二多工器24輸出資料路徑單元18根據輸入訊號x所產生之正確值y N 。最後,比較器26係接收已儲存之臆測值y (1)、…、y (N-2)、y (N-1)與正確值y N ,並比較正確值與每一臆測值是否相同:在正確值
與臆測值相同時,比較器26驅動資料路徑單元18選擇繼續進行臆測值所對應之指令;在正確值與每一臆測值相異時,比較器26驅動資料路徑單元18暫停(stall)管線一時段,如一週期,以供第二多工器24輸出正確值。
本發明利用臆測值與正確值同步運算的方式,利用多工器之選擇,且不需要插入額外的電晶體便可限制(constraint)維持時間(hold time),以提升系統的效能及功率。
第9(a)、9(b)圖分別為本發明之累加器電路示意圖與其對應之時序圖。內部之加法器31執行需花一個週期,加法器31之輸出由一暫存器32接收,累加器外部輸入由A進入,與暫存器32的輸出由B同時進入加法器31,假設外部輸入每個週期依序接收X0、X1及X2,則暫存器32的輸出在第一個週期為Y-1,經過加法器31運算後將X0與Y-1相加的結果,在這裡為Y0,將Y0存至暫存器32,第二個週期輸入A為X1,輸入B則是暫存器32的輸入,為上個週期計算的結果Y0,以此類推,X1與Y0相加得到Y1存至暫存器32,Y1在下個週期與X2相加得到新的值。
第10(a)圖是本發明之前瞻臆測處理裝置應用於累加器之於第一個週期的電路運作示意圖,第10(b)圖是本發明之前瞻臆測處理裝置應用於累加器之於第
二個週期的電路運作示意圖,第10(a)圖與第10(b)圖之相關說明之時序圖為第11圖、第12圖、第13圖以及第14圖。在第10(a)圖與第10(b)圖中使用兩個資料路徑,為累加器,此資料路徑執行第2個週期輸出正確值,在第1個週期輸出臆測值,其正確值及臆測值皆由暫存器接收,外部輸入則輪替傳送至A以及A’,資料路徑也隨著輪替的輸入而輪替計算,資料路徑的輸入B為下方暫存器32’之輸出,其來源為上個週期的A’與B’相加的結果,資料路徑的輸入B’為上方暫存器32之輸出,其來源為上個週期的A與B相加的結果。以下說明各時序關係:第11圖為本發明之前瞻臆測處理裝置應用於累加器之皆臆測成功之時序圖,外部輸入每個週期依序接收X0、X1及X2,X0由上方的資料路徑執行,X1輪替由下方的資料路徑執行,X2再由上方的資料路徑執行,第一週期上方的資料路徑將會計算X0與Y-1相加的結果,因只有計算一個週期,這個結果是臆測的,因此用Y0’表示這個臆測值,這個結果也存至上方的暫存器32,第二個週期上方的資料路徑主要做兩件事,第一件是接續計算以得到正確值,第二件是比較正確值是否有臆測值相同,正確值也會傳送至上方暫存器32儲存,在這個例子中為臆測正確,即正確值與臆測值相同,因此下方的資料路徑的A’與B’
兩個輸入皆是正確的,並不會受到影響,在第三個週期上方資料路徑的接收到X2與下方資料路徑的臆測值,在這裡則是與上個週期同樣的結果,下方資料路徑臆測正確,上方資料路徑則是正常執行。
第12圖為本發明之前瞻臆測處理裝置應用於累加器之僅第一筆輸入臆測失敗之時序圖。當在第二週期發生臆測失敗,即臆測值與正確值不相同,這時必須暫停(stall)管線以及停止輸入一週期,第三筆輸入X2將停止輸入一個週期,直到第四週期才進入資料路徑,暫停管線時,時序控制器將會發出閘(gating)訊號至上方資料路徑的輸入,將輸入的值額外維持一個週期以保證對於下方資料路徑的輸入能夠給滿兩個週期,在這範例中因資料路徑需要二週期計算,第二週期下方的資料路徑接收不正確的臆測值Y0’並計算,這時計算結果並不是正確的值,必須待在第三個週期將正確值Y0送至資料路徑重新開始計算,第四個週期因應重新開始的計算為使資料路徑計算滿二週期,將gating訊號送至A’與B’以維持輸入一個週期,直到輸入X2進入資料路徑才會復正常狀態。
第13圖為本發明之前瞻臆測處理裝置應用於累加器之僅第二筆輸入臆測失敗之時序圖,與第12圖情況相同,在X第四個週期發生臆測失敗,暫停輸入一個週期,gating
訊號傳送至下方的資料路徑以維持輸入一個週期,再過一個週期gating訊號傳送至上方的資料路徑再維持輸入一個週期。
第14圖為本發明之前瞻臆測處理裝置應用於累加器之前二筆輸入臆測失敗之時序圖,前面三個週期發生的情況與第12圖相同,但在第四週期發生臆測錯誤,暫停輸入一個週期,gating訊號傳送至下方的資料路徑以維持輸入一個週期,再過一個週期gating訊號傳送至上方的資料路徑再維持輸入一個週期。
綜上所述,本發明同步運算臆測值與正確值,並採用多工器之選擇輸出臆測值與正確值,便可有效縮短延遲時間,提升系統效能。
18‧‧‧資料路徑單元
20‧‧‧第一多工器
24‧‧‧第二多工器
26‧‧‧比較器
28‧‧‧時序控制器
30‧‧‧解多工器
Claims (7)
- 一種前瞻臆測處理裝置,包含:N個資料路徑單元,其係接收一輸入訊號,並對此進行運算,以產生至少一臆測值與一正確值,並儲存該臆測值,且N為自然數,N≧2;至少一第一多工器,其係連接每一該資料路徑單元之輸出,並接收該臆測值,該第一多工器在該些資料路徑單元執行第M個週期將該臆測值輸出;一第二多工器,其係連接該每一該資料路徑單元,該些資料路徑單元將根據該輸入訊號所產生之正確值傳送至該第二多工器,該第二多工器在該些資料路徑單元執行第N個週期輸出該正確值,且M、N皆為自然數,N大於M;以及一比較器,連接該些資料路徑單元與第二多工器,以接收該臆測值與該正確值,並比較此兩者,在該正確值與該臆測值相同時,該比較器驅動該資料路徑單元選擇繼續進行該臆測值所對應之指令,且在該正確值與該臆測值相異時,該比較器驅動該資料路徑單元暫停(stall)管線一時段,以供該第二多工器輸出該正確值。
- 如請求項1所述之前瞻臆測處理裝置,其中該時段為一週期。
- 如請求項1所述之前瞻臆測處理裝置,更包含一時序控制器,連接該第一多工器與該第二多工器,以控制該臆測值與該正確值之輸出時間。
- 如請求項3所述之前瞻臆測處理裝置,更包含複數解多工器,且該臆測值、該第一多工器與該資料路徑單元之數量皆為複數個,每一該解多工器分別連接每一該資料路徑單元與該時序控制器,並接收一時脈訊號,該時序控制器利用該時脈訊號與該些解多工器控制該些資料路徑單元輪替(round-robin)接收該輸入訊號。
- 一種前瞻臆測處理方法,包含下列步驟:N個資料路徑單元接收一輸入訊號,並對此進行運算,以產生至少一臆測值並儲存該臆測值,且N為自然數,N≧2;輸出該些資料路徑單元於第N個週期根據該輸入訊號所產生之正確值;以及接收該正確值與已儲存之該臆測值,以判斷該臆測值是否與該正確值相同:若是,該些資料路徑單元繼續進行該臆測值所對應之指令;以及若否,該些資料路徑單元暫停(stall)管線一時段,並輸出該正確值。
- 如請求項5所述之前瞻臆測處理方法,其中該時段為一週期。
- 如請求項5所述之前瞻臆測處理方法,其中在該資料路徑單元接收該輸入訊號之步驟中,係該些資料路徑單元係輪替(round-robin)接收該輸入訊號。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103112118A TWI553484B (zh) | 2014-04-01 | 2014-04-01 | 前瞻臆測處理裝置及其處理方法 |
US14/486,311 US10282209B2 (en) | 2014-04-01 | 2014-09-15 | Speculative lookahead processing device and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103112118A TWI553484B (zh) | 2014-04-01 | 2014-04-01 | 前瞻臆測處理裝置及其處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201539191A TW201539191A (zh) | 2015-10-16 |
TWI553484B true TWI553484B (zh) | 2016-10-11 |
Family
ID=54190476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103112118A TWI553484B (zh) | 2014-04-01 | 2014-04-01 | 前瞻臆測處理裝置及其處理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10282209B2 (zh) |
TW (1) | TWI553484B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI586107B (zh) * | 2016-05-09 | 2017-06-01 | Timing Error Detection and Correction Device and Its Normal Timing Design Method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005266A1 (en) * | 2001-06-28 | 2003-01-02 | Haitham Akkary | Multithreaded processor capable of implicit multithreaded execution of a single-thread program |
US7114060B2 (en) * | 2003-10-14 | 2006-09-26 | Sun Microsystems, Inc. | Selectively deferring instructions issued in program order utilizing a checkpoint and multiple deferral scheme |
US7650485B1 (en) * | 2007-04-10 | 2010-01-19 | Sun Microsystems, Inc. | Structure and method for achieving very large lookahead instruction window via non-sequential instruction fetch and issue |
TW201241741A (en) * | 2011-04-07 | 2012-10-16 | Via Tech Inc | Efficient conditional ALU instruction in read-port limited register file microprocessor |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1572463B1 (en) * | 2002-12-02 | 2011-04-06 | Silverbrook Research Pty. Ltd | Dead nozzle compensation |
US7278080B2 (en) | 2003-03-20 | 2007-10-02 | Arm Limited | Error detection and recovery within processing stages of an integrated circuit |
EP1604281B1 (en) | 2003-03-20 | 2006-08-09 | ARM Limited | Systematic and random error detection and recovery within processing stages of an integrated circuit |
-
2014
- 2014-04-01 TW TW103112118A patent/TWI553484B/zh active
- 2014-09-15 US US14/486,311 patent/US10282209B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005266A1 (en) * | 2001-06-28 | 2003-01-02 | Haitham Akkary | Multithreaded processor capable of implicit multithreaded execution of a single-thread program |
US7114060B2 (en) * | 2003-10-14 | 2006-09-26 | Sun Microsystems, Inc. | Selectively deferring instructions issued in program order utilizing a checkpoint and multiple deferral scheme |
US7650485B1 (en) * | 2007-04-10 | 2010-01-19 | Sun Microsystems, Inc. | Structure and method for achieving very large lookahead instruction window via non-sequential instruction fetch and issue |
TW201241741A (en) * | 2011-04-07 | 2012-10-16 | Via Tech Inc | Efficient conditional ALU instruction in read-port limited register file microprocessor |
Also Published As
Publication number | Publication date |
---|---|
US10282209B2 (en) | 2019-05-07 |
TW201539191A (zh) | 2015-10-16 |
US20150277927A1 (en) | 2015-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8095354B2 (en) | Power consumption peak estimation program for LSI and device therefor | |
US11842199B2 (en) | Controlling the operating speed of stages of an asynchronous pipeline | |
TW201348964A (zh) | 在運行時間下判定最佳化預載入距離 | |
TWI661426B (zh) | 記憶體裝置及其資料讀取方法 | |
TWI553484B (zh) | 前瞻臆測處理裝置及其處理方法 | |
Hage et al. | On testing of superscalar processors in functional mode for delay faults | |
WO2023279341A1 (zh) | 用于设计异步电路的方法和电子设备 | |
US20150341032A1 (en) | Locally asynchronous logic circuit and method therefor | |
KR101334111B1 (ko) | 쿼드 데이터 레이트(qdr) 제어기 및 그의 실현방법 | |
US7380153B2 (en) | Micropipeline stage controller and control scheme | |
Hiienkari et al. | A 3.15 pJ/cyc 32-bit RISC CPU with timing-error prevention and adaptive clocking in 28nm CMOS | |
Shin et al. | Aggressive voltage scaling through fast correction of multiple errors with seamless pipeline operation | |
Stepchenkov et al. | Speed-independent fused multiply add and subtract unit | |
Garg | Common path pessimism removal: An industry perspective: Special session: Common path pessimism removal | |
Shin et al. | One-cycle correction of timing errors in pipelines with standard clocked elements | |
TW200947183A (en) | Apparatus, method and design strucuture for implementing speculative clock gating of digital logic circuits | |
Tina et al. | Performance improvement of MIPS Architecture by Adding New features | |
US9495490B2 (en) | Active power dissipation detection based on erroneus clock gating equations | |
Baker et al. | Modeling and architectural simulations of the statistical static timing analysis of the non-gaussian variation sources for VLSI circuits | |
US9960771B2 (en) | Hum generation using representative circuitry | |
Hage et al. | Instruction-based self-test for delay faults maximizing operating temperature | |
Sharmaa | Implementation of an RTL synthesizable asynchronous FIFO for conveying data by avoiding actual data movement via FIFO | |
JP2014106591A (ja) | 消費電力見積り装置および消費電力見積り方法 | |
Shin et al. | Power minimization of pipeline architecture through 1-cycle error correction and voltage scaling | |
Sharma et al. | Design and Analysis of High Performance RISC Processor using Hyperpipelining Technique |