TWI601067B - 非同步管線結構 - Google Patents
非同步管線結構 Download PDFInfo
- Publication number
- TWI601067B TWI601067B TW103101955A TW103101955A TWI601067B TW I601067 B TWI601067 B TW I601067B TW 103101955 A TW103101955 A TW 103101955A TW 103101955 A TW103101955 A TW 103101955A TW I601067 B TWI601067 B TW I601067B
- Authority
- TW
- Taiwan
- Prior art keywords
- functional block
- data
- gate
- input
- output
- Prior art date
Links
- 238000012790 confirmation Methods 0.000 claims description 34
- 230000001360 synchronised effect Effects 0.000 claims description 33
- 238000011144 upstream manufacturing Methods 0.000 claims description 31
- 238000011156 evaluation Methods 0.000 claims description 11
- 230000000903 blocking effect Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000009977 dual effect Effects 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 25
- 238000000034 method Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- FGRBYDKOBBBPOI-UHFFFAOYSA-N 10,10-dioxo-2-[4-(N-phenylanilino)phenyl]thioxanthen-9-one Chemical compound O=C1c2ccccc2S(=O)(=O)c2ccc(cc12)-c1ccc(cc1)N(c1ccccc1)c1ccccc1 FGRBYDKOBBBPOI-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000004335 scaling law Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/08—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices
- H03K19/094—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using field-effect transistors
- H03K19/096—Synchronous circuits, i.e. using clock signals
-
- 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/3871—Asynchronous instruction pipeline, e.g. using handshake signals between stages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
Description
本發明關於數位電路之管線處理,且更具體而言,本發明關於用於使非同步資料流架構中之功率消耗最小化的方法及裝置。
當前嵌入式計算系統具有每瓦(watt)大約每秒1至10拾億次浮點運算(GFLOPS)左右之功率效率。然而,對於更多應用而言,預計所期望之計算能力將需要至少每瓦50 GFLOPS,並且在不久的將來,也許將需要多達每瓦每秒75 GFLOPS。
在過去,對於大於45奈米之未來大小,電腦設計師可依賴隨著每一代處理器而提高之計算效能。此係根據摩爾定律(Moore’s law)(其使得每一代新品中之電晶體數目翻倍)及登納德定律(Dennard’s law)(其使得在不增加功率密度之情況下針對每一代新品使時脈速度增加約40%)兩者。此種按比例縮放(scaling)先前已能夠不以增加功率為代價而提高效能。換言之,每單位面積功率(功率密度)已保持恆定。
然而,最近,登納德定律已失效且相對於恆定功率密度按比例縮放時脈速度已不再成立。因而,已經歷不斷增大之電晶體數目(因摩爾定律之延續而引起)之新近每一代晶片技術現在伴隨著功率成本之增加(因登納德定律之失效而引起)。此反過來又使功率效率達到約每瓦10 GFLOPS之極限。因此,需要較小大小、重量及功率(SWaP)之最近及未
來應用將需要超出此極限之效率來滿足其任務要求。
對效能縮放問題之現有解決方案已著重於各種領域,包含例如:(1)晶片多處理器、(2)電壓按比例縮放、(3)對其他能障(energy-barrier)裝置之探索及(4)非同步或無時脈技術。此等不同方法分別具有與其相關聯之優點及缺點。在多核處理器或晶片多處理器情況下,添加更多處理器無疑會提高晶片效能。然而,除非減少每一指令所耗用之功率,否則仍會存在功率密度之增大。另外,多核處理器已證明很難程式化且仍未能達到其利用潛力。
基於資料流之方法對於可以並列方式解決之問題非常有效。此方法使資料移動局域化且幾乎消除所有不為演算-時間(algorithmic-temporal)目的所需要之記憶體訊務。已開發出FPGA及其他替代架構兩者,其將與高速資料路徑交叉連接之大量處理元件組合於一起。FPGA及其他替代架構提供在無需不斷地將資料傳回至儲存位置之情況下執行並列運算之能力。基於一字組位準之自同步資料流(word-level self-synchronized dataflow)之替代可重新配置架構與習用處理器相比已展示出對EO任務及RF DoD任務具有10x之功率效率改良(參見,例如,Prager等人之「世界第一台多形態電腦-MONARCH(World’s First Polymorphic Computer-MONARCH)」,高效能嵌入式計算(HPEC)工廠第11屆年會(11th Annual High Performance Embedded Computing(HPEC)Workshop),2007年)。
最近雷神(Raytheon)公司在對先進可重新配置方法之研究中考量將資料流同步與非同步邏輯及電壓按比例縮放邏輯緊密結合以獲得
一額外之100x功率優點。在此方法中,當資料到達單元時,一調節器增大供電電壓以加快運算。然而,當輸出佇列已滿時,該調節器降低電壓以在下游元件無法使用結果時降低功率。因此,功率自動降低至對於輸入資料速率及處理演算法而言最可能低之位準。亦藉由降低之電壓來降低洩漏功率。對因摻雜或電壓而引起之半導體效能變化具有彈性為藉由非同步定時及局部電壓調整所達成之一額外益處,進而容許晶片或一晶片之部分能夠盡可能快地運行且在該晶片之其他部分無法維持更高速度之情況下減緩產生功率(參見,例如,Marr等人之「用於效能加速及能量效率目的之非同步嵌入式資料路徑(An Asynchronously Embedded Datapath for Performance Acceleration and Energy Efficiency)」,電路及系統國際論壇期刊(Proceedings of the International Symposium on Circuits and Systems),2012年)。
在一例示性實施例中,一種非同步管線結構包含:複數個功能區塊,該等功能區塊包含動態邏輯,各該功能區塊用以因應被施加至該功能區塊之一預充電控制訊號而被預充電至一空閒狀態,各該功能區塊更用以在被預充電後,接收被輸入至該功能區塊之輸入資料,且各該功能區塊用以不受該輸入資料之一重設之拘束而在一評估階段中保持由此產生之輸出資料;對於各該功能區塊,一完成偵測器電路(completion detector circuit)耦合至該功能區塊之輸出,該完成偵測器電路用以產生一確認訊號,該確認訊號指示該功能區塊之該輸出處之資料之有效性或在該功能區塊之該輸出處不存在資料;以及對於各該功能區塊,一預充電控制電路用以產生一預充電訊號,其中對於一給定功能區塊,輸入至該預充電控制電
路之一第一輸入包含來自一下游完成偵測器之該確認訊號,且輸入至該預充電控制電路之一第二輸入包含來自一上游預充電控制電路之該預充電訊號。
在另一實施例中,一種非同步管線結構包含:複數個管線級,各該管線級包含一功能區塊,各該功能區塊包含動態邏輯,各該功能區塊用以因應於被施加至該功能區塊之一預充電控制訊號而被預充電至一空閒狀態,各該功能區塊更用以在被預充電後,接收被輸入至該功能區塊之輸入資料,且各該功能區塊用以不受該輸入資料之一重設之拘束而在一評估階段中保持由此產生之輸出資料;一叉形電路(fork circuit),耦合於該等功能區塊其中之一第一功能區塊之一輸出與一第二功能區塊之一輸入及一第三功能區塊之一輸入之間,該第二功能區塊及該第三功能區塊相對於彼此設置於並列之資料分支中;其中該叉形電路用以當該等並列資料分支其中之一第一資料分支中出現一阻塞狀態(stall condition)時,延遲該等並列資料分支其中之一第二資料分支中之資料處理,直至該阻塞狀態被消除。
在另一實施例中,一種非同步管線結構包含:複數個功能區塊,該等功能區塊包含動態邏輯,各該功能區塊用以因應被施加至該功能區塊之一預充電控制訊號而被預充電至一空閒狀態,各該功能區塊更用以在被預充電後,接收被輸入至該功能區塊之輸入資料,且各該功能區塊用以不受該輸入資料之一重設之拘束而在一評估階段中保持由此產生之輸出資料;對於各該功能區塊,一完成偵測器電路耦合至該功能區塊之輸出,該完成偵測器電路用以產生一確認訊號,該確認訊號指示該功能區塊之該
輸出處之資料之有效性或在該功能區塊之該輸出處不存在資料;以及一延遲元件,被配置於該等功能區塊其中之一第一功能區塊與該等功能區塊其中之一第二功能區塊之間,該延遲元件亦具有一完成偵測器電路,該完成偵測器電路耦合至該延遲元件之一輸出,其中該延遲元件之該完成偵測器電路為該第一功能區塊產生一預充電控制訊號,且該第二功能區塊之該完成偵測器為該延遲元件產生一預充電控制訊號。
在另一實施例中,一種非同步管線結構包含:複數個管線級,各該管線級包含一功能區塊,各該功能區塊包含動態邏輯,各該功能區塊用以因應被施加至該功能區塊之一預充電控制訊號而被預充電至一空閒狀態,各該功能區塊更用以在被預充電後,接收被輸入至該功能區塊之輸入資料,且各該功能區塊用以不受該輸入資料之一重設之拘束而在一評估階段中保持由此產生之輸出資料;對於各該功能區塊,一完成偵測器電路耦合至該功能區塊之輸出,該完成偵測器電路用以產生一確認訊號,該確認訊號指示該功能區塊之該輸出處之資料之有效性或在該功能區塊之該輸出處不存在資料;以及該等功能區塊中之至少一個包含一半受控(semi-controlled)數位電路,俾該數位電路包含一標頭電晶體(header transistor)及一註腳電晶體(footer transistor)其中之一作為一閘裝置。
100‧‧‧資料流架構
102‧‧‧數位電路裝置
104‧‧‧FPCA區域
106‧‧‧輸出
108‧‧‧電壓調節器
110‧‧‧資料流元件
112‧‧‧控制邏輯
114‧‧‧回饋訊號
120‧‧‧資料流架構
122‧‧‧數位電路裝置
124‧‧‧元件
126‧‧‧輸出
128‧‧‧電壓調節器
130‧‧‧並列資料流元件
132‧‧‧控制邏輯
134‧‧‧回饋訊號
140‧‧‧示意性方塊圖
142‧‧‧元件
144‧‧‧輸出供電電壓
146‧‧‧回饋訊號
148‧‧‧控制邏輯
150‧‧‧電壓調節器
200‧‧‧管線結構
202a、202b、202c‧‧‧功能區塊
204a、204b、204c‧‧‧完成偵測器(CD)
206a、206b、206c‧‧‧Muller-C元件
300‧‧‧PSx式管線
400‧‧‧PCx管線架構
500‧‧‧PSx架構
502‧‧‧資料流叉形電路
504a‧‧‧功能區塊
504b-1、504b-2‧‧‧功能區塊
504c-1、504c-2、504c-3‧‧‧功能區塊
504d‧‧‧功能區塊
602b、602c‧‧‧位元切片式AND閘
604a、604b、604c‧‧‧Muller-C閘
606‧‧‧NOR閘
608b、608c‧‧‧OR閘
700‧‧‧非同步管線結構
702‧‧‧Z元件
704a、704b‧‧‧功能區塊
802a、802b‧‧‧Muller-C閘
804a、804b、804c‧‧‧反相器
806a、806b‧‧‧AND閘
808‧‧‧OR閘
810‧‧‧多工器
812‧‧‧N位元閂鎖器
814‧‧‧完成偵測器
900‧‧‧非同步管線結構
902a‧‧‧半受控乘法器
902b‧‧‧半受控加法器
904‧‧‧泛用功能區塊
906‧‧‧完成偵測器
1000‧‧‧全受控數位電路
1002‧‧‧NFET注腳電晶體
1004a、1004b‧‧‧PFET標頭電晶體
1100‧‧‧半受控數位電路
1104a、1104b‧‧‧PFET標頭電晶體
a‧‧‧輸入資料
ack‧‧‧訊號
b、c‧‧‧輸出資料
a_a、b_a、c_a‧‧‧確認訊號
CD‧‧‧完成偵測器
Coutt、Coutf‧‧‧數位輸出訊號
hr_n‧‧‧訊號
i_a‧‧‧確認訊號
i_f、i_t‧‧‧輸入
jr‧‧‧訊號
o_a‧‧‧確認訊號
o_t、o_f‧‧‧輸出
pc‧‧‧訊號
req‧‧‧訊號
為更全面瞭解本發明,現在結合隨附圖式及實施方式來參照下文簡要說明,其中相同元件符號表示相同部件:第1A圖為根據一粗粒度(coarse grain)實施例之用於數位訊號處理之一例示性資料流架構之一示意性方塊圖;
第1B圖為根據一細粒度(fine grain)實施例之用於數位訊號處理之一例示性資料流架構之一示意性方塊圖;第1C圖為以並列方式連接之一組細粒度元件之一示意性方塊圖;第2圖為一現有非同步管線結構之一示意圖;第3圖為一現有非同步管線結構之一示意圖;第4圖為根據一例示性實施例之一非同步管線結構之一示意圖;第5圖為根據一例示性實施例之具有一叉形電路之一非同步管線結構之一示意性方塊圖;第6圖為更詳細例示第5圖之叉形電路之一示意圖;第7圖為根據另一例示性實施例之具有一Z元件型延遲元件之一非同步管線結構之一示意性方塊圖;第8圖為更詳細例示第7圖之Z元件之一示意圖;第9圖為根據一例示性實施例之具有一或多個半受控電路級之一非同步管線結構之一示意性方塊圖;第10圖為一完全受控電路之一示意圖;以及第11圖為諸如第9圖中所繪示之一半受控電路之一示意圖。
應瞭解,為簡明及清晰說明起見,在適當情況下,在不同圖式之間重複使用元件符號以指示對應或類似元件。另外,列出眾多具體細節,以便提供對本文所述實施例之透徹瞭解。然而,熟習此項技術者應理解,即使沒有此等具體細節,亦可實施本文所述之實施例。在其他情況下,未詳細闡述各方法、程序及組件,以免掩蓋所闡述之相關特徵。而且,本
說明不應被視為限制本文所述之實施例之範疇。
如上所述,對於用於執行數位訊號處理演算法之基於場效電晶體(field effect transistor;FET)之電路而言,按比例縮放定律先前已能夠在恆定功率下增大每晶片之電晶體數目。即,每單位面積之功率(功率密度)已保持恆定。最近,對於每一代新晶片技術而言,考慮到時脈速度之提高,電晶體數目之增大會伴隨功率增加之成本。
對效能按比例縮放問題之現有解決方案已著重於各種領域,包含例如:(1)晶片多處理器、(2)電壓按比例縮放、(3)對其他能障裝置之探索及(4)非同步或無時脈技術。此等不同方法既具有與其相關聯之優點亦具有與其相關聯之缺點。在多核處理器或晶片多處理器情況下,增加更多之處理器當然會提高晶片效能。然而,除非減少每一指令所耗用之功率,否則仍將存在功率密度之增大。另外,多核處理器已證明難以程式化且仍未能達到其利用潛力。
減少一裝置中每一指令所耗用之功率的方法之一係降低由彼裝置所使用之電壓。洩漏電流為在一電晶體處於其關斷狀態時流過該電晶體之電流量。雖然一理想裝置將具有零洩漏電流,但實際上洩漏電流因裝置幾何結構減小而不斷增大。洩漏電流之此種增大導致臨限電壓停止按比例縮放,而此反過來又使供電電壓停止按比例縮放。因而,由於缺少電壓按比例縮放,導致每一指令所耗用之功率增加。
對洩漏電流問題之一可能解決方案係使用其他裝置類型。雖然此為一正在進行的研究領域,但當前尚不具有適合替代CMOS技術之技術。另一研究領域在於使用非同步或「無時脈」電路設計技術。使用此等
技術可達成運算速度的提高並同時減少洩漏能量及動態能量,進而使每一指令所耗用之功率淨減少。
本文中所闡述之實施例著重於將多處理器、電壓按比例縮放及非同步設計相組合,以創建一可經程式化以達到高利用位準之資料流處理器。使用經改良之非同步技術會使數位電腦電路運行速度更快且洩漏電流減小。此外,非同步技術亦很適合於在近臨限電壓位準下運作,進而進一步減少功率消耗。應瞭解,本文中所述實施例適用於可程式化處理器以及應用專用積體電路(application specific integrated circuit;ASIC)。藉由使用兩種相對新的方法來構建低功率數位電子技術(非同步電路設計及近臨限電壓(near-threshold voltage;NVT)運作位準),可使此等裝置中之功率消耗相對於傳統CMOS設計減少約10至100倍。
通常,可程式化處理器及ASIC兩者係使用同步(亦即,時控)技術設計而成。此等同步電路因時脈速度受最長定時路徑限制而運行較慢。亦必須藉由延長時脈週期來解決因傳輸線效應及電容性負載而引起之時脈偏斜(clock skew)。此外,在一同步資料管線內使用顯式暫存器(explicit register)及閂鎖器會增加延遲開銷。就電源運作位準而言,供電電壓必須在遠高於電晶體裝置電壓臨限值之位準下運作以提供足夠的抗擾性(noise immunity)。由於動態(有效)功率係為電壓的平方(V2)的函數,因而更高之供電電壓導致更高之功率消耗。另一方面,非同步數位資料流邏輯為無時脈的且使用單閘延遲(single-gate-delay)技術來消除關鍵路徑延遲。單閘單元對各管線電路級進行自計時(self-time),藉此消除時脈樹(clock-tree)功率、設置及保持時間、定時裕度(timing margin)、及關鍵
路徑延遲,此皆係在容許以近臨限電壓運作之同時達成,進而達成低得多的功率消耗。在此等電路中,運作時脈速度隨供電電壓而變化,而供電電壓又驅動功率消耗。此處,目的係設定運作電壓以使電路足夠快地運行來處理輸入資料,但不會快至浪費功率。
在非同步電路中,時脈速度與供電電壓相關。藉由調高電壓,電路會更快地運行(亦即,以一更高時脈速度運行),且藉由調低電壓,電路會更慢地運行(亦即,以一更低時脈速度運行)。在電腦之大多數實施形式中,處理器之固有時脈速度不依賴於資料到達速率。若處理器之固有時脈速度與資料到達速率相匹配,則處理器為最佳的。然而,若處理器之固有時脈速度與資料之到達速率不相匹配,則要麼處理器運行過快而等待資料,要麼處理器運行過慢而不得不使資料減速或丟失資料。在本發明實施例中,在非同步電路中利用電壓與時脈速率之間的緊密耦合來量測資料之到達速率,而此反過來又用於控制電壓,且因此控制時脈速率。這樣做的一優點及主要原因為藉由最佳地使用處理電路來節省電源。
基於資料流佇列負載來對供電電壓進行局部控制。此確保慮及資料輸入速率、溫度及半導體製程偏差而使電壓在自峰值效率至峰值通量(peak throughput)之範圍內自適應性地按比例縮放。來自資料流佇列之資訊用於控制電壓調節器,電壓調節器反過來又調整局部供電電壓(對更多資料進行排隊會使電壓更高且因此運算速度更快)。計算係在最小功率下或快或慢地進行以與工作進度保持一致。
參照第1A圖,圖中顯示根據一粗粒度實施例之用於數位訊號處理之一例示性資料流架構100之一示意性方塊圖。在所示實施例中,架
構100包含一數位電路裝置102,例如一現場可程式化計算陣列(field programmable compute array;FPCA)。一FPCA為一可重新配置之IP核芯,該可重新配置之IP核芯可用於執行單運算元(single-operand)運算及多運算元(multi-operand)運算兩者,例如但不限於:出現在諸如視訊編碼、有限脈衝響應(finite impulse response;FIR)濾波器及3G無線基地台通道卡之應用中的算數運算、邏輯運算、記憶體運算及乘法運算。然而,應瞭解,亦涵蓋其他類型之數位電路。
在任何情況下,數位電路裝置102皆包含構成一用於處理數位資料之FPCA區域104的複數個並列元件,該等元件在第1A圖中被標記為元件1、元件2等。104中之每一元件產生一或多個輸出,例如106,該等輸出可由其他處理裝置(未顯示)使用。一電壓調節器108為FPCA區域104內之該組元件遞送一共用運作電壓。相對於數位電路裝置102,電壓調節器108既可包含於亦可不包含於一共同基板或晶片上。
根據本文中之一實施例,利用在每一FPCA區域104中以佇列形式載入資料流元件110來設定供應至該等資料流元件110之局部叢集供電電壓且因此設定運作速度。該架構內之控制邏輯112接收每一元件之複數個(正)回饋訊號114,該等訊號係表示資料經過每一各別元件之速率。對於本實施例而言,假定該等不同元件執行其中資料以共同速率移動之相關運算,因此僅供應一單一共用電壓。
因此,對於FPCA區域104中負擔較輕的既定一組元件而言,由於該等元件不需要那麼快地計算,因而可降低供應至該等元件之電壓。因此,可在不影響作為系統整體之速度的情況下使用較少之功率。因此,
對於所例示之實例而言,控制邏輯112可經由一控制訊號而與電壓調節器108通訊,以使電壓調節器調整供應至該FPCA區域中之所有元件之輸出供電電壓。相反,當該等元件負擔較重時,則提高供應至該等元件之供電電壓(且因此速度)以與工作負荷保持一致。
現在參照第1B圖,圖中顯示根據一細粒度實施例之用於數位訊號處理之一例示性資料流架構120之一示意性方塊圖。在所示實施例中,架構120包含一數位電路裝置122,該數位電路裝置可用於執行單運算元運算及多運算元運算兩者,諸如但不限於算數運算、邏輯運算、記憶體運算及乘法運算。在任何情況下,數位電路裝置122皆包含用於處理數位資料之一單一元件124。元件124產生可由其他處理裝置(未展示)使用之一(若干)輸出126。一電壓調節器128為元件124遞送一共用運作電壓。相對於數位電路裝置122,電壓調節器128既可包含於亦可不包含於一共同基板或晶片上。
根據本文中之一實施例,利用複數個並列資料流元件130之佇列載入來設定供應至該複數個並列資料流元件之局部叢集供電電壓,且因此設定運算速度。控制邏輯132接收該等並列資料流元件中的每一個之複數個(正)回饋訊號134,該等訊號係表示資料經過該元件之速率。
參照第1C圖,圖中顯示以一並列方式連接之一組細粒度元件之一示意性方塊圖140。由於該等不同元件執行不同運算,因而資料以不同速率移動。因此,對於相對於其他元件負擔較輕之一既定元件(例如,元件1)142,由於該元件不需要與負擔較重的元件一樣快地計算,因而可降低供應至該元件之各別電壓144。因此,可在不影響系統整體之速度的情
況下使用較少之功率。因此,對於所例示之實例而言,當元件1之使用負擔不如其他元件(如(正)回饋訊號146所反映)重時,控制邏輯148可經由一控制訊號而與電壓調節器150通訊以使該電壓調節器降低供應至元件142之輸出供電電壓144。相反,當一元件負擔較重時,提高供應至該元件之各別供電電壓(且因此提高速度)以與工作負荷保持一致。
應瞭解,第1A圖至第1C圖中所繪示之粗粒度(元件集合)資料流架構及細粒度(單一元件)資料流架構可使用正回饋、負回饋、或其一組合。此外,該技術亦適用於一同步(時控)電路版本。此處,可能需要額外之邏輯以單獨地控制頻率及電壓兩者。
如上所述,使用非同步電路設計技術亦可提高運算速度、同時減少洩漏能量及動態能量,進而使每一指令所耗用之功率淨減少。作為背景,第2圖中例示由Ted E.Williams(「自定時響鈴及其對除法之應用(Self-Timed Rings and Their Application to Division)」,斯坦福大學博士論文,1991年6月)開發之一非同步管線結構200。
管線結構200為一雙軌條設計,其中使用兩個導線(軌條)來實施每一資料位元。具體而言,每個二進制資料位元在該兩個軌條上被編碼為一對邏輯狀態,比如:「空閒」(00),亦即,當該兩個軌條其中之一第一軌條為一邏輯0且該對軌條其中之第二軌條為一邏輯0時;一「邏輯0」(01),亦即,當該兩個軌條其中之第一軌條為一邏輯0且該對軌條其中之第二軌條為一邏輯1時;及「邏輯1」(10),亦即,當該兩個軌條其中之一第一軌條為一邏輯1且該對軌條其中之第二軌條為一邏輯0時。應注意,編碼(11)為一無效狀態。
管線結構200內包含採用動態邏輯之複數個功能區塊202a、202b、202c。因此,功能區塊202a-c中的每一個在其針對每一循環使用之前被重設或預充電至空閒狀態,如由(低態有效)控制訊號「pc」所指示。一旦被預充電,一功能區塊202a-c便待命且準備好接收資料;一旦輸入變為一邏輯值(0或1),便有效地捕獲彼輸入。該捕獲可每一循環只進行一次,亦即,捕獲第一有效值。由於經預充電之功能區塊202a-c甚至當輸入被重設至「空閒」時亦可保持其自身之資料輸出,故該等區塊提供一隱式閂鎖器之功能性,即使不需要在管線級中提供一顯式閂鎖器。
如第2圖中進一步繪示,每一級皆包含一完成偵測器(CD)204a、204b、204c,用於指示相關聯功能區塊202a-c(其可為一完全受控預充電區塊或一半受控預充電區塊)之輸出處之資料有效性或指示在該輸出處不存在資料。每一級中之一Muller-C元件206a、206b、206c藉由將來自前一級之完成偵測器204a-c之一「進行」或「請求」訊號(req)與來自後一級之完成偵測器204a-c之一「完成」或「確認」訊號(ack)合併來控制其相關聯功能區塊202。Williams所給出之管線架構200(其中功能區塊202a-c由Muller-C元件206a-c控制)之命名為PCx,其中「x」係指功能區塊202a-c之間所包含之顯式閂鎖器之數目。此處,該架構為「PC0」,此乃因該管線中不存在任何顯式閂鎖器。
Muller-C閘之作用就像一「黏性」AND閘一樣,乃因(如同一習用AND閘)直至兩個輸入皆為‘1’,輸出才變為‘1’。然而,輸出隨後將保持處於‘1’直至兩個輸入皆為‘0’為止。完成偵測器204a-c實際上使用多輸入Muller-C閘(或更小閘之一等價樹)。此意味著不僅完成偵測器204a-c之
輸出僅在所有輸入皆處於有效狀態(邏輯0或邏輯1)時才變為‘1’,而且該輸出不回復至‘0’直至所有輸入皆處於空閒編碼狀態為止。
在例如第2圖中所示之一功能區塊管線中,出現兩個定時問題。首先,一上游元件(例如,功能區塊202b)之輸出必須在對該上游元件被預充電之前由一下游元件(例如,功能區塊202c)捕獲。其次,一上游元件(例如,功能區塊202b)之輸出必須在一下游元件(例如,功能區塊202c)退出預充電狀態(亦即,預充電被拉起)之前處於空閒狀態或變為其新的狀態。自一個級之完成偵測器饋入至前一級之Muller-C元件之「ack」訊號確保第一條件,此乃因該「ack」訊號只在該下游元件在其所有輸出上皆具有有效資料之後才被拉起。即,該下游元件已捕獲由對應完成偵測器所偵測到之其輸入。在PCx式管線中,第二條件係藉由在該上游元件之完成偵測器變為零之後未拉起「req」訊號來確保。此指示該上游元件之所有輸出皆已重設至空閒編碼。該下游元件只有在此時才可進入預充電(此顯然會阻止該下游元件在該輸入被重設之前退出預充電)。
例如第2圖中所示之PCx配置管線的一個問題在於,Muller-C元件206a-c處於正向流動資料符記(token)之關鍵路徑中,此乃因Muller-C元件轉變為只有在其功能區塊已接收到有效資料輸入之後才移除預充電訊號「pe」。因此,上游完成偵測器及Muller-C元件之延遲加至功能區塊評估之延遲。另一選擇為,一種經修改非同步管線架構係由Williams開發出,被稱作「PSx」族。
如第3圖中所例示,在一PSx式管線300(亦由Williams開發出)中,移除Muller-C閘且轉而直接自下游功能區塊之完成偵測器204a-c之
輸出接收每一功能區塊202a-c之預充電輸入。例如,完成偵測器204b之輸出為功能區塊202a之預充電輸入。出於例示目的,亦針對每一功能區塊202a-c繪示一「重設」訊號,該「重設」訊號使每一區塊中之資料重設至「空閒」狀態。第3圖中之設計之一定時假定在於:與其評估相比,更快地預充電至「空閒」。通常,此定時要求在具有類似級之管線中容易滿足。
然而,本文中已認識到,當資料管線結構中存在一叉形結構(亦即,一功能區塊之輸出分支成通往兩個單獨下游功能區塊之輸入)時,此PSx管線中出現一問題。通常,自該叉形結構中該二並列下游元件之完成偵測器饋入之「ack」訊號與一Muller-C閘組合,進而針對該叉形結構之前的上游功能區塊產生一單一「ack」訊號。本文中進一步認識到,只要該二下游元件皆未無限期阻塞,此配置便起作用。然而,在一資料流(亦即,管線)機中,下游元件可因各種原因而阻塞,包含例如因重組資料路徑(分叉且隨後合併之路徑)、外部元件、選通元件等。若一叉形結構之一個分支阻塞、而另一分支未阻塞,則未阻塞叉形結構可拉起一「ack」訊號,且接著在上游元件不清除其輸出的情況下解除該「ack」訊號(此乃因上游「ack」係由該組合Muller-C閘封鎖)。此外,若上游元件從未將其輸出資料清除至空閒狀態,則其下游的元件將重複地評估,從而一再地捕獲同一凍結值。在PSx式管線(不同於PCx管線)中,不存在防止發生此種情況之任何互鎖裝置。因此,一方面,一PSx管線快於一PCx管線,而另一方面,PCx管線不像PSx管線一樣遭受一或多個叉形結構之下游阻塞。
現在參照第4圖,圖中顯示根據一例示性實施例之一經修改PCx管線架構400之一示意圖。經修改架構400在本文中亦稱作一PCx*架
構。與第2圖之現有PCx架構相比,本發明PCx*架構400藉由將來自一既定元件之「req」輸入訊號重新定位至上游元件之Muller-C閘之輸出、進而繞過上游評估及完成偵測來減少完成偵測器及Muller-C元件206a-c之關鍵路徑損耗。因此,例如,Muller-C元件206b之第二輸入並非起源於前一級之完成偵測器204a之輸出,而是Muller-C元件206b之第二輸入起源於前一級之Muller-C元件206a之輸出。PCx*架構400因此實現正向請求及反向確認訊號兩者,但自先前設計之關鍵路徑非同步循環時間中除去若干個閘延遲。
對PCx*之另一改良可藉由使用一「非對稱」Muller-C閘(參見,例如,Singh及Nowick之「用於細粒度動態資料路徑之高通量非同步管線(High-Throughput Asynchronous Pipelines for Fine-Grain Dynamic Datapaths)」)代替標準Muller-C閘來達成。非對稱C元件具有僅沿其中一個方向(0至1或1至0)達成轉變的輸入。根據所達成之轉變,該等輸入被稱作正輸入(+)或負輸入(-)。在此種情況下,Muller-C閘經修改以使得其輸出在「ack」輸入變為低的情況下變為高,但只有在「ack」輸入為高且「req」輸入為低的情況下才變為低。因此,該電路之作用如同「ack」之下降邊緣上之PSx;該電路無論「req」如何皆即刻進入評估狀態。然而,在「ack」之上升邊緣上,該電路將只有在「req」為低(上游元件已看到下游「ack」)時才進入預充電。之所以如此,乃因僅關心「req」之下降邊緣。為得到正確叉形行為,需要阻止下游級預充電(因此使「ack」保持進入對Muller C閘進行組合之叉形結構)直至req為低(已看到所組合之「ack」)為止。請求之上升邊緣(進入評估)並不重要;即使下游級早已進入評估,在有效資料到達之前亦不會發生任何事情。
儘管本文中所揭示之經修改PCx*架構提供定時改良,但仍應認識到,PSx式管線因其不具有Muller-C閘之額外延遲而固有地快於PCx*管線。因此,PSx式管線將是值得做的,只要可解決所談到之叉形結構問題。現在參照第5圖,圖中顯示一經改良PSx架構500之一示意圖,經改良PSx架構500包含設置於資料流路徑內一叉形結構上游之各功能區塊之間的一等時(isochoric)資料流叉形電路502。更具體而言,叉形電路502設置於一功能區塊504a下游,在該功能區塊之後資料路徑分支成包含功能區塊504b-1及504b-2之一第一分支(b)及包含功能區塊504c-1、504c-2及504c-3之一第二分支(c)。來自該二分支之輸出資料合併為功能區塊504d之輸入。在第5圖中,自功能區塊504a輸出之資料被表示為「a」,該資料穿過叉形電路502且隨後被分成第一分支功能區塊504b-1之「b」及第二分支功能區塊504c-1之「c」。進一步沿著該管線結構,輸出資料被簡單地標記為「資料」。
進一步約定,自叉形電路502至功能區塊504a之新穎確認訊號(下文將更詳細闡述)表示為「a_a」,而自功能區塊504b-1及504c-1至叉形電路502之確認訊號分別表示為「b_a」及「c_a」。進一步沿著該管線結構,其餘確認訊號被簡單地標記為「ack」。
如上所述,在一傳統PSx架構中,該等分支其中之一中之一管線阻塞不會阻止未阻塞分支繼續處理資料。因此,未阻塞分支繼續處理不正確的值。相比之下,本發明實施例之叉形電路502藉由在該二分支中的任何一者由於某一特定原因而阻塞之情況下阻塞該叉形結構之該二分支來防止此種狀況。該叉形電路藉由有效地具有二個輸出來達成這一點。一個輸出可保持有效(此係驅動一尚未藉由拉起「ack」來確認捕獲到資料之阻
塞元件之輸入所需的)。另一輸出可被快速清除至空閒狀態(此係確保未阻塞之元件在移除「ack」時不即刻開始評估來自先前循環之陳舊資料所需的)。
第6圖為更詳細例示第5圖之叉形電路502之一示意圖。如圖所示,叉形電路502包含一對位元切片(bit-sliced)式AND閘602b、602c,該對位元切片式AND閘602b、602c自上游功能區塊接收輸入資料「a」作為其之第一輸入(每一AND閘一個位元之「a」)。應記得,訊號「a」係為雙導線訊號之一N位元匯流排,其表示上游級之經計算輸出。位元切片式AND閘含有兩個N各別AND閘,該N位元匯流排中之每一導線一個。來自輸入「a」之該二N導線被配接成使得一個2輸入(2-input)式AND閘自匯流排「a」中之一導線接收一個輸入,且每一AND閘之輸出產生對應之輸出匯流排導線。位元切片式AND閘之另一輸入被連接至每一各別2輸入式AND閘之第二輸入。結果,當第二輸入為1時,第一輸入不加改變地通過位元切片式AND閘,而當第二輸入為0時,位元切片式AND閘之輸出被驅動至「空閒」狀態。AND閘602b之輸出為如上所述發送至第一分支功能區塊504b-1之輸出資料「b」。
對應地,AND閘602c之輸出為亦如上所述發送至第二分支功能區塊504c-1之輸出資料「c」。叉形電路502所接收之確認訊號「b_a」及「c_a」分別被輸入至第一Muller-C閘604b及第二Muller-C閘604c。一第三Muller-C閘604a接收第一Muller-C閘604b及第二Muller-C閘604c之輸出作為其輸入,並產生自叉形電路502發送回至第5圖之功能區塊504a之組合確認訊號「a_a」。
如第6圖中進一步繪示,一NOR閘606接收一重設訊號作為
其一第一輸入並接收組合確認訊號「a_a」作為其一第二輸入,其中NOR閘606之輸出(一組合確認訊號)用作Muller-C閘604b及604c兩者之第二輸入。如上所述,AND閘602b、602c分別選通輸入叉形資料「a」作為輸出至相應叉形結構分支之輸出資料「b」及「c」。此等閘之選通控制訊號(即,602b、602c中之每一位元切片式AND閘之第二輸入)分別來源於OR閘608b及608c之輸出。OR閘608b之輸入訊號為來自Muller-C閘604b及Muller-C閘604a之輸出訊號。類似地,OR閘608c之輸入訊號為來自Muller-C閘604c及Muller-C閘604a之輸出訊號。
在運作中,叉形電路502容許資料「a」之一樣本成功遞送至二個不同位置「b」及「c」。當一下游元件拉起確認(b_a或c_a)時,Muller-C閘(分別為604b或604c)及位元切片式AND閘(分別為602b及602c)使對應輸出(分別為「b」及「c」)快速被驅動至「空閒」狀態(此係使PSx管線正確運作所需要的)。此「空閒」狀態係由Muller-C閘(604b及604c)及經由Muller-C閘604a及NOR閘606之回饋保持,直至二個下游元件已提供一確認且上游元件在「a」上驅動新的資料(或「空閒」狀態)為止。即使一下游元件預充電且移除其確認(b_a或c_a),該元件亦因其輸入被位元切片式AND閘(602b或602c)保持於「空閒」狀態而不會評估。OR閘608b及608c使輸出「b」及「c」保持空閒,甚至當已接收到二個確認訊號(「b_a」及「c_a」)時亦如此。此會防止輸出「b」及「c」在上游元件有時間對經組合確認作出反應並產生「空閒」狀態之前回復至在「a」上驅動之先前樣本。NOR閘606容許一全局重設訊號例如在電路加電時重設叉形結構之狀態。
如前所述,在先前技術中,匯流排「a」有效地硬接線至匯
流排「b」及「c」(無位元切片式AND閘602b及602c),且Muller-C閘604a用於在無Muller-C閘604b及604c之情況下組合來自下游元件之確認「b_a」及「c_a」。若該二下游元件其中之任一者阻塞、或者甚至需要更長時間來評估並產生其確認,則另一元件可在「a_a」上之先前輸入樣本已被更新之前預充電並準備好接受新的資料,或重設至「空閒」狀態。上述叉形電路502藉由延遲一個並列資料分支中之資料處理直至另一並列資料分支中之堵塞狀態被清除為止來防止此種情況發生。
現在參照第7圖,圖中顯示根據另一例示性實施例之一非同步管線結構700之一示意圖,非同步管線結構700具有設置於相鄰功能區塊704a、704b之間的一單循環Z元件延遲元件702。
在一典型時控式系統中,Z元件延遲係使用暫存器來達成(此在時脈係以系統取樣速率運行時特別簡單)。在三個暫存器R1、R2及R3之一同步管線中,在重設時,該等暫存器被清除至零。因此,在第一時脈訊號之前,該三個暫存器之輸出為{0,0,0}。若值I1被時控至第一時脈訊號上之管線中,則該等暫存器之輸出將為{I1,0,0}。若I2被時控至第二時脈訊號上之管線中,則該輸出將為{I2,I1,0},等等。
另一方面,一非同步系統以不同的方式運作。在重設之後,功能單元F1、F2及F3之一管線之輸出將為{X,X,X},此意味著該等輸出並非為零而是為空閒。換言之,在重設之後不存在任何輸出資料。在I1進入該系統之後,該等單元將含有{I1,X,X};然後,當I2進入該系統時,該等單元將含有{I2,I1,X},等等。因此,為達成與一典型時控系統相同之效果,在重設該等功能單元時將一「實」值預載入至該等功能單元中,此為一Z元
件可達成者。因此,在重設之後,Z元件Z1、Z2、Z3之一管線之輸出將為{0,0,0}。然後,當I1到達時,該輸出將為{I1,0,0},等等。若該管線在重設之後含有{0,0,0},則除一下游阻塞以外,該管線可在無任何輸入到達的情況下移動至{X,0,0},然後移動至{X,X,0}並最後移動至{X,X,X}。因資料流系統之性質會使該等零正確地用於計算中或在管線中之某處阻塞直至接收到任何所需資料為止,故此並不成問題。
在第7圖所繪示之實例中,Z元件702用以加速管線過程,即使Z元件為管線700中之一額外元件。考慮到一個級在其前面沒有該級之確認訊號的情況下無法取得進展,故此態樣受到重視。由於Z元件702為一非常快的級,因而若其配置於二個長的級(例如,一對乘法器)之間,則基本上可並列執行乘法運算。例如,當一下游乘法器(例如,功能區塊704b)完成時,該下游乘法器將一確認訊號(經由完成偵測器)發送回至Z元件702。接著,Z元件702快速地接受新的資料,結束其運算,並回送確認至上游乘法器(例如,功能區塊704a)。上游乘法器開始執行其自身的計算,同時下游乘法器亦執行一乘法。Z元件702使此成為可能。若無Z元件702,則下游乘法器704b將直接向回發送確認至上游乘法器704a、但因資料不為新的而必須在乘法器704a可再次開始乘法之前等待上游乘法器704a結束。
除緩衝一非同步定時循環之一資料值以外,Z元件702亦具有初始化至一資料值之能力。在正常運作中,Z元件之行為如同一全同元件(identity element)一樣,此乃因Z元件在不修改所傳遞之資料的情況下提供一個非同步管線延遲。然而,在重設之後,Z元件702並不初始化至清空狀態。而是,Z元件經初始化以保持一邏輯0(針對該匯流排中之所有位元)。
第8圖中例示Z元件702之一更詳細示意圖。如圖所示,Z元件702包含非對稱Muller-C閘802a、802b、反相器804a、804b、804c、AND閘806a、806b、OR閘808、多工器810、一N位元閂鎖器812及一完成偵測器814。
在重設時,該二Muller-C閘802a、802b重設至‘0’,以使「hr_n」(保持重設無效)為‘0’及「jr」(剛剛重設)為‘1’。重設運作亦對N位元非同步閂鎖器812預充電。當jr設定至‘1’時,多工器810選擇一邏輯‘0’以在撤銷重設之後被驅動至閂鎖器812中(以使所有O_f位元將為‘1’且所有O_t位元將為‘0’)。因此,在重設之後,Z元件將產生一邏輯‘0’值並在下游驅動該邏輯。然而,應注意,由於「hr_n」為‘0’,因而完成偵測器814之輸出被封鎖,且不在上游產生一確認訊號(i_a)。當此值被下游元件捕獲(O_a驅動至‘1’)時,「jr」被清除至‘0’,進而容許多工器810切換至選擇各輸入(用於正常運作之「i_f」及「i_t」)。另外,再次對N位元閂鎖器812預充電。應注意,「hr_n」仍為‘0’且仍阻止「i_a」在上游產生一確認訊號。當O_a被驅動至‘0’(亦即,下游元件準備好接收新的資料)時,預充電被移除,且上游資料(i_f及i_t)通過N位元非同步閂鎖器812。另外,hr_n被設定至‘1’,進而容許由完成偵測器所產生之確認(i_a)發送至上游元件。
如第8圖中之邏輯所示,重設輸入連同O_a(來自下一級之確認訊號)穿過若干個閘,以形成一用於觸發Z元件切換多工器(mux)之訊號「jr」。多工器810可切換成將包含於Z元件中之閂鎖器初始化至一邏輯‘0’,其中一邏輯‘0’為等效於雙軌條中i_f假線(false line)等於‘1’及i_t真線(true line)等於‘0’之邏輯狀態。除此之外,閂鎖器將傳入資料i_f及i_t緩衝
達一個非同步循環並在一個非同步循環之後將輸出O_f及O_t設定至i_f及i_t之值。
現在參照第9圖,圖中顯示根據一例示性實施例之一非同步管線結構900之一示意性方塊圖,非同步管線結構900具有一或多個半受控級902a、902b。一泛用功能區塊(generic functional block)904以及完成偵測器906亦顯示於位於半受控級902b下游之管線架構900中。
在一全受控數位電路中,存在「注腳(footer)」電晶體及「標頭(header)」電晶體兩者。一標頭電晶體用作一用於選擇性地將上拉裝置(例如,PFET)耦合至高電壓軌條之閘,而一注腳電晶體用作一用於選擇性地將下拉裝置(例如,NFET)耦合至低電壓軌條之閘。相比之下,一半受控數位電路(例如第9圖之例示性乘法器902a及加法器902b)包含一注腳電晶體或一標頭電晶體,而非同時包含兩者。就此而言,半受控數位電路之一優點為運算更快。
第10圖為一全受控數位電路1000之一示意圖,在其中可見,一控制訊號(PC)耦合至一NFET注腳電晶體1002以及一對PFET標頭電晶體1004a、1004b兩者。因在電壓電源軌條與數位輸出訊號Coutt、Coutf之間存在額外電晶體(NFET 1002或PFET 1004a、1004b),故此電路設計導致計算時間較慢。相比之下,第11圖為一半受控數位電路1100之一示意圖,半受控數位電路1100包含一對PFET標頭電晶體1104a、1104b,但不具有注腳電晶體。假若存在注腳電晶體,則在有效輸入到達NFET閘、而電路仍處於一預充電模式之情況下會阻止形成自VDD至地之一直接路徑。例如,在一求和區塊(sum block)阻塞一完整循環時便可出現此種狀況。然而,即使出
現此種狀況,淨效果(net effect)亦為耗用額外功率,此等價於電流模式輸出邏輯。
再次參照第9圖,例示性半受控乘法器902a及半受控加法器902b包含於具有奇數個管線級之非同步管線結構900中。此種奇數個非同步資料流級之特定架構具有一獨特定時特性:其以半受控邏輯提供具有較少電晶體之優點,但不存在潛在地具有一短路洩漏路徑之缺點,乃因資料路徑電路在一計算之後始終處於一低洩漏狀態。
此處假定每一管線係由自多個源接受輸入之二個功能區塊(例如加法器或乘法器)組成,且該管線之其餘部分係由僅自一個源接受輸入之若干元件(例如閂鎖器)組成。第9圖繪示第一級為一半受控乘法器,第二級為一半受控加法器,且第三級為一閂鎖器元件:此可為例如一全同元件或Z元件。在僅使用一標頭電晶體之一半受控功能區塊中,若預充電PC輸入被設定為低而使得上拉(PMOS)電晶體網路啟動且與此同時,輸入到達a、b及c而使得下拉電晶體網路(NMOS)亦導通,則可造成一短路狀況。若在下游存在偶數個閂鎖器元件,則將出現此種狀況,乃因一閂鎖器不可能因多個輸入而阻塞。
若在一多輸入元件(例如第9圖中之加法器)下游具有偶數個閂鎖器,則當該加法器評估有效資料時,該等閂鎖器將繼續循環以使位於該加法器下游之閂鎖器最終將賦予該加法器一高PC值。若該加法器之另一輸入阻塞,則該加法器將繼續賦予其之前的級(第9圖中之乘法器)一低PC值。該管線中之第一級(在本例中為乘法器)隨後將阻塞並具有一低PC值,其中有效輸入最終將到達而亦啟動下拉網路,進而使下拉網路阻塞而
進入一短路狀態。為防止發生此種情況,使用奇數個閂鎖器以使得當一多輸入元件暫停時,將使其前一者(predecessor)之PC值保持為高,進而緩解短路狀況。該奇數個閂鎖器將因不可能出現一阻塞而繼續循環。串聯之偶數個閂鎖器能夠重設彼此,進而發送回一確認訊號以使位於上游之一多輸入元件具有一低PC輸入,同時如在上文所述之條件下一樣啟動輸入。
因此應瞭解,上述實施例之技術優點包括利用運行速度更快且洩漏電流更小之非同步技術及數位電腦電路來改良非同步管線架構中之功耗。
儘管已參照一或多個較佳實施例闡述了本發明,但熟習此項技術者應理解,可作出各種改變且可以等效元件來代替本發明之元件,而此並不背離本發明之範疇。另外,可作出諸多潤飾以使一特定情況或材料適應於本發明之教示,而此並不背離本發明之基本範疇。因此,本發明並不僅限於作為本發明最佳實施模式而揭示之特定實施例,而是本發明將包含歸屬於隨附申請專利範圍之範疇之所有實施例。
202a、202b、202c‧‧‧功能區塊
204a、204b、204c‧‧‧完成偵測器(CD)
206a、206b、206c‧‧‧Muller-C元件
400‧‧‧PCx管線架構
ack‧‧‧訊號
pc‧‧‧訊號
req‧‧‧訊號
Claims (20)
- 一種非同步管線結構,包含複數個功能區塊,該等功能區塊包含動態邏輯,各該功能區塊用以因應被施加至該功能區塊之一預充電控制訊號而被預充電至一空閒狀態,各該功能區塊更用以在被預充電後,接收被輸入至該功能區塊之輸入資料,且各該功能區塊用以不受該輸入資料之一重設之拘束而在一評估階段中保持由此產生之輸出資料;對於各該功能區塊,一完成偵測器電路(completion detector circuit)耦合至該功能區塊之輸出,該完成偵測器電路用以產生一確認訊號,該確認訊號指示該功能區塊之該輸出處之資料之有效性或在該功能區塊之該輸出處不存在資料;以及對於各該功能區塊,一預充電控制電路用以產生一預充電訊號,其中對於一給定功能區塊,輸入至該預充電控制電路之一第一輸入包含來自一下游完成偵測器之該確認訊號,且輸入至該預充電控制電路之一第二輸入包含來自一上游預充電控制電路之該預充電訊號;其中該預充電訊號不受一上游完成偵測器之確認訊號的拘束。
- 如請求項1所述之非同步管線結構,其中該等功能區塊之該輸入資料及該輸出資料包含雙軌資料(dual-rail data)。
- 如請求項1所述之非同步管線結構,其中該預充電控制電路包含複數個Muller-C元件。
- 如請求項3所述之非同步管線結構,其中該等Muller-C元件為非同步的。
- 一種非同步管線結構,包含:複數個管線級,各該管線級包含一功能區塊,各該功能區 塊包含動態邏輯,各該功能區塊用以因應於被施加至該功能區塊之一預充電控制訊號而被預充電至一空閒狀態,各該功能區塊更用以在被預充電後,接收被輸入至該功能區塊之輸入資料,且各該功能區塊用以不受該輸入資料之一重設之拘束而在一評估階段中保持由此產生之輸出資料;一叉形電路(fork circuit),耦合於該等功能區塊其中之一第一功能區塊之一輸出與一第二功能區塊之一輸入及一第三功能區塊之一輸入之間,該第二功能區塊及該第三功能區塊相對於彼此設置於並列之資料分支中;其中該叉形電路用以當該等並列資料分支其中之一第一資料分支中出現一阻塞狀態(stall condition)時,延遲該等並列資料分支其中之一第二資料分支中之資料處理,直至該阻塞狀態被消除。
- 如請求項5所述之非同步管線結構,其中各該管線級更包含一完成偵測器電路,該完成偵測器電路耦合至該功能區塊之該輸出,該完成偵測器電路之一輸出用作一上游功能區塊之該預充電控制訊號。
- 如請求項6所述之非同步管線結構,其中該叉形電路更包含:一第一AND閘及一第二AND閘,該第一AND閘用以將該輸入資料選擇性地傳遞至該第一並列資料分支中之該第二功能區塊,且該第二AND閘用以將該輸入資料選擇性地傳遞至該第二並列資料分支中之該第三功能區塊;其中在產生一自該叉形電路至該第一功能區塊之組合確認訊號時,該第一AND閘及該第二AND閘用以分別將該輸入 資料傳遞至該第二功能區塊及該第三功能區塊,該組合確認訊號表示該第二功能區塊及該第三功能區塊二者之輸出處之資料之有效性。
- 如請求項7所述之非同步管線結構,其中:該第一AND閘亦用以在如下條件下將該輸入資料傳遞至該第二功能區塊:自該第二功能區塊之該輸出接收到一確認訊號,且該組合確認訊號未被拉起(asserted);以及該第二AND閘亦用以在如下條件下將該輸入資料傳遞至該第三功能區塊:自該第三功能區塊之該輸出接收到一確認訊號,且該組合確認訊號未被拉起。
- 如請求項8所述之非同步管線結構,其中該叉形電路更包含:一第一Muller-C閘,用以自該第二功能區塊接收該確認訊號作為該第一Muller-C閘之一第一輸入;一第二Muller-C閘,用以自該第三功能區塊接收該確認訊號作為一第一輸入;以及一第三Muller-C閘,用以接收該第一Muller-C閘及該第二Muller-C閘之輸出,該第三Muller-C閘之一輸出包含該組合確認訊號。
- 如請求項9所述之非同步管線結構,其中一全局重設訊號(global reset signal)為該第一Muller-C閘及該第二Muller-C閘二者之一第二輸入,該全局重設訊號包含一NOR閘之一輸出,該NOR閘以一重設訊號作為其一第一輸入信號並以該組號確認訊號作為其一第二輸入。
- 一種非同步管線結構,包含: 複數個功能區塊,該等功能區塊包含動態邏輯,各該功能區塊用以因應被施加至該功能區塊之一預充電控制訊號而被預充電至一空閒狀態,各該功能區塊更用以在被預充電後,接收被輸入至該功能區塊之輸入資料,且各該功能區塊用以不受該輸入資料之一重設之拘束而在一評估階段中保持由此產生之輸出資料;對於各該功能區塊,一完成偵測器電路耦合至該功能區塊之輸出,該完成偵測器電路用以產生一確認訊號,該確認訊號指示該功能區塊之該輸出處之資料之有效性或在該功能區塊之該輸出處不存在資料;以及一延遲元件,被配置於該等功能區塊其中之一第一功能區塊與該等功能區塊其中之一第二功能區塊之間,該延遲元件亦具有一完成偵測器電路,該完成偵測器電路耦合至該延遲元件之一輸出,其中該延遲元件之該完成偵測器電路為該第一功能區塊產生一預充電控制訊號,且該第二功能區塊之該完成偵測器為該延遲元件產生一預充電控制訊號。
- 如請求項11所述之非同步管線結構,其中該延遲元件用以接收一重設訊號作為該延遲元件之一輸入,該重設訊號用以將該延遲元件之該輸出重設為一邏輯0值。
- 如請求項12所述之非同步管線結構,其中該等功能區塊及該延遲元件之輸入資料及輸出資料包含雙軌資料。
- 如請求項11所述之非同步管線結構,其中該延遲元件為一單循環延遲元件。
- 如請求項11所述之非同步管線結構,其中該延遲元件更包含一第一不對稱Muller-C閘及一第二不對稱Muller-C閘,該第 一不對稱Muller-C閘及該第二不對稱Muller-C閘被重設為該邏輯0值。
- 如請求項15所述之非同步管線結構,其中該延遲元件更包含一多工器及一非同步閂鎖器,該多工器之一輸入耦合至該第一不對稱Muller-C閘及該第二不對稱Muller-C閘其中之一之一輸出,該多工器用以輸出以下其中之一至該非同步閂鎖器:該重設邏輯0值,或來自該第一功能區塊之資料。
- 如請求項15所述之非同步管線結構,其中該重設訊號更用以對該非同步閂鎖器預充電。
- 一種非同步管線結構,包含:複數個管線級,各該管線級包含一功能區塊,各該功能區塊包含動態邏輯,各該功能區塊用以因應被施加至該功能區塊之一預充電控制訊號而被預充電至一空閒狀態,各該功能區塊更用以在被預充電後,接收被輸入至該功能區塊之輸入資料,且各該功能區塊用以不受該輸入資料之一重設之拘束而在一評估階段中保持由此產生之輸出資料;對於各該功能區塊,一完成偵測器電路耦合至該功能區塊之輸出,該完成偵測器電路用以產生一確認訊號,該確認訊號指示該功能區塊之該輸出處之資料之有效性或在該功能區塊之該輸出處不存在資料;以及該等功能區塊中之至少一個包含一半受控(semi-controlled)數位電路,俾該數位電路包含一標頭電晶體(header transistor)及一註腳電晶體(footer transistor)其中之一作為一閘裝置。
- 如請求項18所述之非同步管線結構,其中該等管線級包含一奇數。
- 如請求項18所述之非同步管線結構,其中該數位電路僅包含一標頭電晶體作為該閘裝置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/782,546 US9281820B2 (en) | 2013-03-01 | 2013-03-01 | Minimizing power consumption in asynchronous dataflow architectures |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201441929A TW201441929A (zh) | 2014-11-01 |
TWI601067B true TWI601067B (zh) | 2017-10-01 |
Family
ID=51421641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103101955A TWI601067B (zh) | 2013-03-01 | 2014-01-20 | 非同步管線結構 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9281820B2 (zh) |
TW (1) | TWI601067B (zh) |
WO (1) | WO2014133680A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9423866B2 (en) * | 2014-07-16 | 2016-08-23 | Eta Compute, Inc. | Asynchronous processor that adjusts a respective operating voltage for causing a task to consume substantially all of a respective allocated time interval for the task |
US9520180B1 (en) | 2014-03-11 | 2016-12-13 | Hypres, Inc. | System and method for cryogenic hybrid technology computing and memory |
US9935542B2 (en) * | 2015-03-15 | 2018-04-03 | Plsense Ltd. | Methods and apparatuses for adaptive dynamic voltage control for optimizing energy per operation per a given target speed |
US10128747B2 (en) | 2017-03-01 | 2018-11-13 | Eta Compute, Inc. | Frequency-controlled voltage source |
CN116911222B (zh) * | 2023-09-12 | 2023-12-01 | 芯动微电子科技(珠海)有限公司 | 一种低功耗的握手协议同步器及相应的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5574925A (en) * | 1991-07-04 | 1996-11-12 | The Victoria University Of Manchester | Asynchronous pipeline having condition detection among stages in the pipeline |
US6239622B1 (en) * | 1999-05-05 | 2001-05-29 | Sun Microsystems, Inc. | Self-timed domino circuit |
US7065665B2 (en) * | 2002-10-02 | 2006-06-20 | International Business Machines Corporation | Interlocked synchronous pipeline clock gating |
CN101006644B (zh) * | 2004-06-15 | 2010-08-25 | Nxp股份有限公司 | 用于集成电路的电源的自适应控制 |
US20110029941A1 (en) * | 2008-06-18 | 2011-02-03 | University Of Southern California | Multi-level domino, bundled data, and mixed templates |
WO2012008928A1 (en) * | 2010-07-15 | 2012-01-19 | Nanyang Technological University | Asynchronous-logic circuit for full dynamic voltage control |
US8212705B2 (en) * | 2009-06-01 | 2012-07-03 | Texas Instruments Incorporated | Pipeline ADC |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW226057B (zh) | 1991-12-23 | 1994-07-01 | Philips Nv | |
US5553276A (en) | 1993-06-30 | 1996-09-03 | International Business Machines Corporation | Self-time processor with dynamic clock generator having plurality of tracking elements for outputting sequencing signals to functional units |
AU8015294A (en) | 1994-10-11 | 1996-05-02 | Derek C. Wong | Digital circuits exhibiting reduced power consumption |
GB2310738B (en) | 1996-02-29 | 2000-02-16 | Advanced Risc Mach Ltd | Dynamic logic pipeline control |
JP3451579B2 (ja) | 1997-03-03 | 2003-09-29 | 日本電信電話株式会社 | 自己同期型パイプラインデータパス回路 |
US6041337A (en) | 1997-08-28 | 2000-03-21 | Unisys Corporation | Linear function generator method with counter for implementation of control signals in digital logic |
US6867620B2 (en) | 2000-04-25 | 2005-03-15 | The Trustees Of Columbia University In The City Of New York | Circuits and methods for high-capacity asynchronous pipeline |
US6850092B2 (en) | 2000-06-09 | 2005-02-01 | The Trustees Of Columbia University | Low latency FIFO circuits for mixed asynchronous and synchronous systems |
US6590424B2 (en) | 2000-07-12 | 2003-07-08 | The Trustees Of Columbia University In The City Of New York | High-throughput asynchronous dynamic pipelines |
US7865747B2 (en) | 2000-10-31 | 2011-01-04 | International Business Machines Corporation | Adaptive issue queue for reduced power at high performance |
US7882369B1 (en) | 2002-11-14 | 2011-02-01 | Nvidia Corporation | Processor performance adjustment system and method |
US7157934B2 (en) | 2003-08-19 | 2007-01-02 | Cornell Research Foundation, Inc. | Programmable asynchronous pipeline arrays |
US20060119382A1 (en) | 2004-12-07 | 2006-06-08 | Shumarayev Sergey Y | Apparatus and methods for adjusting performance characteristics of programmable logic devices |
US8407660B2 (en) | 2007-09-12 | 2013-03-26 | Neal Solomon | Interconnect architecture in three dimensional network on a chip |
US20090116597A1 (en) | 2007-11-06 | 2009-05-07 | Jordi Cortadella | Variability-Aware Asynchronous Scheme for High-Performance Communication Between an Asynchronous Circuit and a Synchronous Circuit |
US7817488B2 (en) | 2007-12-20 | 2010-10-19 | Sandisk Corporation | Load balancing by using clock gears |
US8035414B2 (en) | 2008-04-11 | 2011-10-11 | Massachusetts Institute Of Technology | Asynchronous logic automata |
US10078620B2 (en) | 2011-05-27 | 2018-09-18 | New York University | Runtime reconfigurable dataflow processor with multi-port memory access module |
WO2013018061A1 (en) * | 2011-08-03 | 2013-02-07 | Ben Gurion University Of The Negev Research And Development Authority | Device and method for dual-mode logic |
-
2013
- 2013-03-01 US US13/782,546 patent/US9281820B2/en active Active
-
2014
- 2014-01-16 WO PCT/US2014/011755 patent/WO2014133680A1/en active Application Filing
- 2014-01-20 TW TW103101955A patent/TWI601067B/zh not_active IP Right Cessation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5574925A (en) * | 1991-07-04 | 1996-11-12 | The Victoria University Of Manchester | Asynchronous pipeline having condition detection among stages in the pipeline |
US6239622B1 (en) * | 1999-05-05 | 2001-05-29 | Sun Microsystems, Inc. | Self-timed domino circuit |
US7065665B2 (en) * | 2002-10-02 | 2006-06-20 | International Business Machines Corporation | Interlocked synchronous pipeline clock gating |
CN101006644B (zh) * | 2004-06-15 | 2010-08-25 | Nxp股份有限公司 | 用于集成电路的电源的自适应控制 |
US20110029941A1 (en) * | 2008-06-18 | 2011-02-03 | University Of Southern California | Multi-level domino, bundled data, and mixed templates |
US8212705B2 (en) * | 2009-06-01 | 2012-07-03 | Texas Instruments Incorporated | Pipeline ADC |
WO2012008928A1 (en) * | 2010-07-15 | 2012-01-19 | Nanyang Technological University | Asynchronous-logic circuit for full dynamic voltage control |
Also Published As
Publication number | Publication date |
---|---|
US9281820B2 (en) | 2016-03-08 |
TW201441929A (zh) | 2014-11-01 |
US20140250313A1 (en) | 2014-09-04 |
WO2014133680A1 (en) | 2014-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI601067B (zh) | 非同步管線結構 | |
US7157934B2 (en) | Programmable asynchronous pipeline arrays | |
Nowick et al. | High-performance asynchronous pipelines: An overview | |
TW201443777A (zh) | 數位訊號處理裝置及數位訊號處理方法 | |
KR102571068B1 (ko) | 프로그래밍가능 제어 회로를 사용한 클록 신호들의 선택적 제공 | |
US6331793B1 (en) | Apparatus, method and system for pulse passgate topologies | |
US6392466B1 (en) | Apparatus, method and system for a controllable pulse clock delay arrangement to control functional race margins in a logic data path | |
US6329857B1 (en) | Apparatus, method and system for a logic arrangement having mutually exclusive outputs controlled by buffering cross-coupled devices | |
Wijeratne et al. | A 9-GHz 65-nm Intel® Pentium 4 processor integer execution unit | |
Rao et al. | POWER10™: a 16-core smt8 server processor with 2tb/s off-chip bandwidth in 7nm technology | |
US6448818B1 (en) | Apparatus, method and system for a ratioed NOR logic arrangement | |
US6323698B1 (en) | Apparatus, method and system for providing LVS enables together with LVS data | |
US8773166B1 (en) | Self-timed single track circuit | |
Chang et al. | Asynchronous fine-grain power-gated logic | |
US6133758A (en) | Selectable self-timed replacement for self-resetting circuitry | |
Xia et al. | Design of high-performance asynchronous pipeline using synchronizing logic gates | |
Gutta et al. | A low-power integrated x86–64 and graphics processor for mobile computing devices | |
Liljeberg et al. | Self-timed approach for noise reduction in noc reduction in noc | |
Srivastva et al. | Design of 32 bit Asynchronous RISC CPU Using Micropipeline | |
Verma et al. | Multiphase pipelining in domino logic ALU | |
Koo et al. | Low-overhead, one-cycle timing-error detection and correction technique for flip-flop based pipelines | |
Jeong et al. | Moebius circuit: Dual-rail dynamic logic for logic gate level pipeline with error gate search feature | |
Devlin et al. | Energy minimum operation with self synchronous gate-level autonomous power gating and voltage scaling | |
Chang et al. | A comparative study on asynchronous Quasi-Delay-Insensitive templates | |
Senthilkumar et al. | Design of high speed asynchronous pipelined FIR filter using quasi delay insensitive reduced slack pre-charged half buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |