專利名稱:用于大容量異步流水線處理的電路和方法
說明對相關申請的交叉引用本申請要求于2000年4月25日提交的序列號為60/199,439的題為“用于高速DSP應用的細粒流水線異步加法器(Fine-Grain Pipelined Asynchronous Addersfor High-Speed DSP Applications)”的美國臨時專利申請的優先權,且通過引用其全部結合在此處。
背景技術:
發明領域本發明涉及用于異步流水線處理的電路和方法,更確切地說,是涉及提供高速緩沖和高吞吐量的流水線。
相關技術的背景對可進行千兆赫茲吞吐量的流水線設計有持續增長的需求。已為這些高速應用發展了幾種新穎的異步流水線。比如,在波流水線中,在兩個鎖存器之間傳播多種波的數據。但是,該方法需要對設計付出相當大的努力,從結構級到布線級,都需要對通路延遲(包括與數據相關的延遲)進行準確的平衡,而且這種系統一直非常容易因為處理、溫度和電壓的變化而損壞。其它的主動異步方法包括時鐘延遲連鎖、時滯容許連鎖以及自行復位電路。這些方法需要復雜的時序約束條件且缺乏彈性。另外,這些電路的高速全局時鐘分布還是一項重要的挑戰。
用區域信號交換代替全局時鐘的異步設計具有將高速設計變得更加可行的潛力。異步流水線避免與高速時鐘的部分相關的問題,比如,浪費的時鐘功率和對時鐘滯后的管理。另外,由于流水線中數據項的數目允許隨時間而改變,沒有全局時鐘賦予了流水線自然的彈性。最后,異步元件的固有靈活性允許流水線與以不同速度工作的可變環境進行連接;因此,異步流水線設計對于片上系統的設計是有用的。
一種現有技術的流水線是Williams的PSO雙軌異步流水線(T.Williams,Self-Timed Rings and Their Applicantion to Division(自定時環及它們在分割上的應用),博士論文,斯坦福大學,1991年6月;T.Williams等人,″AZero-Overhead Self Timed 160ns 54b CMOS Divider(過零自定時160ns 54b COMS分割器)″,IEEE JSSC,26(11)1651-1661,1991年11月)。
圖1示出了Williams的PSO流水線10。每個流水線級12a、12b和12c都由雙軌功能塊14a、14b、14c和完成檢測器16a、16b、16c構成。完成檢測器指示在相關功能塊輸出端的數據有效性或數據缺乏。
每個功能塊14a、14b、14c使用動態邏輯來實現。每個級的預充電/運算控制輸入,PC,都連接于下一級的完成檢測器。比如,級12a的預充電/運算控制輸入,PC,連接于級12b的完成檢測器并通過線18a傳遞給功能塊14a。由于預充電邏輯塊即使在其輸入復位時也能保持其數據輸出,所以它還提供了內隱鎖存的功能。因此,PSO級無外在的鎖存器。圖2(a)描繪了雙軌與門是怎樣在動態邏輯中實現的;比如雙軌對f1和f0是怎樣實現雙軌輸入a1a0和b1b0的。
在每個級12a、12b、12c的完成檢測器16a、16b、16c分別發出完成計算和預充電的信號。數據輸出的有效性或無效性由各個位通過對雙軌或計算并隨后使用C-元件結合所有的結果來檢查(見圖2(a))。C-元件是基本的異步狀態保持元件。更確切地說,當所有的輸入為高電平則n-輸入C-元件的輸出為高電平,當所有的輸入為低電平則n-輸入C-元件的輸出也為低電平,否則它將保持先前的值。它通常由在上拉和下拉中帶一系列堆棧并在輸出有反相器(附帶微弱反饋的反相器以保持狀態)CMOS門來實現。
對Williams的PSO雙軌流水線的流水線控制的順序如下當級N+1完成運算后級N預充電。當級N+1完成復位時級N進行運算。實際的運算只有在已接收到來自級N-1的有效的數據輸入之后才開始。該協議保證了連續的數據標記總是被復位標記或間隔分開。
通過觀察信號數據標記是怎樣流過初始為空的流水線而了解流水線級的整個周期的事件。從級12a的一個運算到下一個運算的事件順序是(i)級12a運算,隨后(ii)級12b運算,隨后(iii)級12b的完成檢測器16b檢測運算的完成,并隨后(iv)級12a預充電。與此同時,在完成步驟(ii)和(iii)的步驟之后,級12c運算,且(iv)級12c的完成檢測器16c檢測運算的完成,并初始化級12b的預充電,接著(v)級12b預充電,并最后(vi)級12b的完成檢測器16b檢測預充電的完成,從而釋放級12a的預充電并使級12a再次運算。由此,對于一個級來說,在完整的周期中,從一個運算到下一個運算共有六個事件。
追蹤以上,一個流水線級的完整周期由3個運算、2個完成檢測和一個預充電組成。因此,分析的流水線周期時間,Tps0為Tps0=3.tEval+2.tCD+tPrech(1)其中,tEval和tPrech是各個級的運算和預充電時間,而tCD是經過每個完成檢測器的延遲時間。
各個級的前等待時間L被定義為在初始為空的流水線中取得的從一個級的輸出到下一個級的輸出的第一數據標記的時間。對于PSO,前等待時間只是級運算的延遲時間Lps0=tEva(2)這種類型的無鎖存異步動態流水線(比如,PSO)的缺點是,交替的級通過必須包含“間隔”或“復位標記”,它們將流水線的容量限止在50%。William流水線的另一缺點是,它在級之間需要幾個異步點。另外,William的流水線通過約束流水線級的相互作用來保持數據的完整性,即,在鄰近級中,級預充電和運算與特定事件同步。
最新的三種有競爭力的異步流水線提供了改進的性能,但卻受到已被根據本發明的數字信號處理流水線裝置除去的幾個缺點的影響。
Renaudin的設計提供了大存儲容量(M.Renaudin等人,″New AsynchronousPipeline SchemeApplication to the Design of a Self-Timed Ring Divider(新型異步流水線設計對自定時環分割器設計的應用),IEEE JSSC,31(7)1001-1013,1996年7月)。Renaudin的流水線在無額外鎖存器或“同一性級”的情況下可達到100%的容量。他們的方法局部地操作動態門的內部結構以提供增加的容量。
但是,Renaudin的流水線有兩個明顯的缺點。首先,在Renaudin的流水線中,通過使用另外的晶體管將每個動態門的輸出反相器改變為門控反相器來取得額外的鎖存。Renaudin流水線的第二個缺點是相當低的吞吐量。特別是,Renaudin的流水線是基于PSO流水線更加保守的形式,被稱為PCO。因此,它們的吞吐量當通過PCO時甚至比PSO的更差。
由Molnar等人設計的兩種FIFO--asp*FIFO和微流水線FIFO-是文獻中出現的最具競爭力的流水線之一,據報導在0.6um CMOS的工藝中可具有1.1Giga和1.7Giga項/秒的吞吐量(C.Molnar等人,″Two FIFO Ring PerformanceExperiments(雙FIFO環性能試驗)″,IEEE的會議錄,87(2)297-307,1999年2月)。
Molnar的第一FIFO,asp*,具有顯著的缺點。當向流水線級添加處理邏輯時,預計asp*FIFO的吞吐量相對于本文描述的流水線設計會有顯著地減少。該性能損耗的發生是因為,asp*FIFO需要外在的鎖存器來隔離邏輯塊。鎖存器對于設計是必需的;它們保證了協議不會造成數據的溢出。結果,在asp*中,用了不同于鎖存器的組合邏輯,邏輯處理的性能損失就變得更加明顯。另外,asp*FIFO具有復雜的還未被明確認識的定時序假設;實際上,早期的版本因為時序問題而不穩定。
Molnar的第二設計,微流水線FIFO也有幾個缺點。首先,微流水線實際上由兩個平行的“半速”FIFO組成,這兩個“半速”FIFO只提供總吞吐量的一半(0.85Giga項/秒);因此,要獲得1.7Giga項/秒的凈吞吐量就只能以面積作為相當大的代價。其次,微流水線使用非常昂貴的暫態鎖存器。微流水線FIFO的另一局限是,它根本無法完成邏輯處理;即,它只能被用作FIFO。該限制的原因是,它使用了復雜的鎖存結構,在該結構中,每個鎖存器的一部分在鄰近的級之間共享。結果,便不可能在鎖存器之間插入邏輯塊。
文獻中記載的最快設計之一的是IPCMOS流水線,它在0.18um的CMOS工藝中吞吐量為3.3-4.5GHz(S.Shuster等人,″Asynchronous Interlocked PipelinedCMOS Circuits Operating at 3.3-4.5GHz(以3.3-4.5GHz運行的異步互鎖流水線CMOS電路)″,ISSCC會議錄,2000年2月)。IPCMOS在電路和協議分級上都有缺點。首先,IPCMOS使用了既大又復雜的控制電路,具電路的延遲時間十分明顯。第二,IPCMOS利用非常進取的電路技術,該技術需要對設計和檢驗化相當大的精力。比如,在其“選通脈沖”電路中的一個門可能在其上拉和下拉堆棧之間短路,這取決于從多數據流向兩個堆棧輸入的相對到達時間。他們的方法依靠堆棧的比值法以保證正確的輸出。第三,在IPCMOS中,流水線級只有在有效數據輸入到達以后才能進行運算。因此,級的前等待時間因為級的預充電釋放的延遲而不夠。
本發明的一個目的是通過對預充電和運算的控制的去耦合來提供高吞吐量和大存儲容量。另一個目的是降低對鄰近數據標記之間“復位”間隔的需要以提高存儲容量。
本發明的一個目的是提供帶協議且不需要外在鎖存器的異步流水線。
本發明的一個目的是提供帶簡單單向時序約束的異步流水線,它可容易地被滿足。
本發明的一個目的是提供具有功能塊的異步流水線,該功能塊可在數據到達之前進行運算。從而,插入空流水線中的數據可連續地通過每個級發生波動。
本發明的另一個目的是提供具有高數據完整性的異步流水線,其中,級可穩定地保持其輸出,不管其輸入上有什么變化。
本發明的還有一個目的是提供一種異步流水線,它具有減少的臨界延遲、較小的芯片面積、較低的功率損耗的特性以及能減少溢出的簡單、小巧和快速的控制電路。
本發明的另一個目的是提供能夠合并多重輸入數據流的異步流水線。
發明內容
本發明的這些和其它目的可根據本發明的原理,通過異步數字流水線電路來達到,該電路允許在流水線中有較密集的包裝數據標記,從而提供更大的存儲或緩沖容量。其它有益的特征包括少的前等待時間和容易滿足需要的單向時序約束。
具有無鎖存動態邏輯的異步數字流水線電路,具有第一處理級,被設置用以驅動經過由第一預充電階段、其后的第一運算階段及其后的第一隔離階段組成的周期階段。在第一隔離階段中,第一處理級的輸出與其輸入中的變化相隔離,但將其所存儲的數據值保持在其輸出。第一處理級響應第一預充電控制信號以及第一運算控制信號以完成三個循環的操作。第一級的控制器響應暫態信號并向第一處理級提供第一和第二去耦合的控制信號。
所配置第二處理級用以驅動經過由第二預充電階段、其后的第二運算階段及其后的第二隔離階段組成的周期階段,它僅僅響應第二預充電控制信號和第二運算控制信號。第二處理級提供表示其階段的暫態信號。在第一處理級和第二處理級之間設置互相連接,使得由第一級控制器接收的第一暫態信號能驅動第一處理級在預充電階段、運算階段和隔離階段之間循環,同時第二處理級保持在運算階段和隔離階段中的一個。在這種情況下,第一處理級和第二處理級都能夠在沒有間隔隔離的條件下存儲不同的數據標記。
在第一處理級和第二處理級之間設置單獨的外在同步點。當確認了表示第二處理級階段的暫態信號時,可使第一處理級開始預充電、運算和隔離的循環。這個單獨的外在同步點提高了運作的并行性。但是當沒有確認表示第二處理級階段的暫態信號時,就無指令改變第一處理級的階段。
本發明的其它特征,它的性質和多種優點將從附圖和以下對較佳實施例的的詳細描述中變得更加明顯。
附圖簡述圖1描繪了現有技術的流水線。
圖2(a)描繪了圖1現有技術流水線的功能塊的電路。
圖2(b)描繪了圖1現有技術流水線的完成檢測器。
圖3是根據本發明異步數字流水線電路的框圖。
圖4是根據本發明圖3框圖的門電路的示意圖。
圖5描繪了根據本發明的異步數字流水線電路的階段的順序和各級的互相影響。
圖6(a)描繪了典型流水線級控制器的典型Petri(佩特里)網說明。
圖6(b)描繪了根據本發明流水線級控制器的Petri(佩特里)網說明。
圖7(a)是根據本發明在圖3中描繪的異步數字流水線電路的級控制器的邏輯圖。
圖7(b)是根據本發明在圖7(a)中描繪的級控制器一部分的電路圖。
圖8是根據本發明異步數字流水線電路的流水線級的可替換實施例的框圖。
圖9是根據本發明典型實施例的簡化框圖。
圖10是根據本發明圖9實施例一部分的框圖。
圖11是根據本發明另一實施例的簡化框圖。
較佳實施例的詳細描述根據本發明的異步數字流水線電路對在每個處理級中的上拉和下拉的控制去耦合。動態門只受兩個隔離的輸入,pc和eval的控制。使用這兩個輸入,驅動級依次通過三個不同的階段運算、隔離和預充電,這將在此處進行更詳細的描述。在隔離階段,一個級穩定地保持其輸出,不管其輸入的任何變化。結果,鄰近的流水線級就可以存儲不同的數據項,從而獲得100%的存儲容量。
圖3描繪了根據本發明流水線100的簡化框圖。描繪了三個典型的級102a/102b/102c,當然也可預期有更多或更少的級。每個級102a/102b/102c可分別包含三個部件功能塊104a/104b/104c、完成發生器106a/106b/106c以及控制器108a/108b/108c。每個功能塊104a/104b/104c可交替地產生數據標記和下一級的復位間隔,且其完成發生器106a/106b/106c表示級運算或預充電的完成。第三個部件,級控制器108a/108b/108c,產生控制各個功能塊104a/104b/104c和完成發生器106a/106b/106c的pc和eval信號。以下對這些部件進行更詳細的討論。
使用被稱為捆扎數據的通用異步設計以實現信號軌異步數據路徑。更確切地說,線110a/110b/110c上的控制信號,Req,表示到達各個級102a/102b/102c的新輸入。比如,線110b上的信號Req是完成發生器106b的輸入,也是完成發生器106a的輸出。Req的高值表示新數據的達到,即,前一級已完成了運算。另一方面,Req的低值表示間隔的到來,即,前一級已完成了預充電。為了正確運作,必須滿足簡單的時序約束Req必需在輸入給級的數據穩定且有效后到達。這個要求可通過插入“匹配的延遲”元件112a/112b/112c來滿足,插入的元件通過功能塊104a/104b/104c提供了大于或等于最差情況延遲的延遲。本方法的優點是,數據路徑本身可使用標準的信號軌(同步型)功能塊來制造。
有幾種實現匹配延遲的通用方法,諸如匹配的延遲元件112a/112b/112c。一種較佳的技術是如技術中已知的使用反相器鏈。另外,可使用傳輸門電路鏈,其中門電路的數目和它們晶體管的大小決定了總延遲。一種可替換技術是復制邏輯塊在最差情況下的關鍵路徑,并將之用作延遲線。捆扎數據已被廣泛應用,包括已商品化的異步Philips 80C51微控制器芯片。
在圖4中更詳細地描述了部分功能塊104a/104b/104c。更特別的是,圖4顯示了流水線級中功能塊104a/104b/104c的一個門電路。(當省略后綴a、b和c時,描述的特征適用于所有具有相同標號的部件。)線114上的pc輸入控制著上拉堆棧115(即,預充電),且線116上的eval輸入控制著下拉堆棧117的“基腳”。當pc被確認為低電平且eval不被確認為低電平時發生預充電。當eval被確認為高電平且pc不被確認為高電平時發生運算。當兩種信號都不能確認時,門電路輸出有效地與門電路輸入隔離;從而,它進入了“隔離階段”。為了防止短路,pc和eval從來不能同時被確認的。
繼續參考圖3,完成發生器106是一非對稱C-元件,aC。非對稱C-元件通常具有三種類型的輸入被標上“+”的,被標上“-”的,以及不被標號的第三種類型。當所有未標號的輸入和所有“+”的輸入變成高電平時,aC的輸出被設為高電平。相反,當所有未標號的輸入和所有“-”的輸入變成低電平時,aC輸出被復位成低電平。對于所有其它的組合,aC保持其輸出值。完成發生器106具有來自級控制器108的正輸入eval 116和負輸入pc 114以及來自前一級的正輸入Req。
在根據本發明的流水線100中,完成發生器106的輸出,Done被設置在線120上。當級102已開始運算時,即,當兩種情況發生時(1)級102已進入其運算階段,也就是說,eval為高電平,和(2)前一級已提供了有效的數據輸入,也就是說,前一級的完成信號Req為高電平,則輸出Done設置為高電平。Done只有當級可進行預充電,即,pc被確認為低電平時被復位。從而,級的預充電將即時復位Done,同時只有當級處于運算階段且有效數據已到達時運算才復位。
在線120上的完成發生器106的輸出通過匹配的延遲元件112傳輸,該匹配的元件(當與完成發生器相結合時)匹配通過功能塊104的最差情況的路徑。對于非常密集粒或“門級”的流水線來說,匹配的延遲不是必須的,因為由完成發生器106本身所產生的aC延遲經常已經匹配了功能塊104的延遲,所以便不需要另外的匹配延遲了。
最后,線120上的完成信號Done被分成三路并輸送給三個部件(i)線122上的前一級控制器108,指示當前級的狀態,比如,通過線122b連接的級控制器108a;(ii)當前級的級控制器108,比如,通過線124b連接的級控制器108b(通過匹配的元件112b);以及(iii)下一級的完成發生器106,比如,通過線110c連接的完成發生器106c(通過匹配的延遲元件112b)。
繼續參考圖3,級控制器108產生用于功能塊104和完成發生器106的控制信號pc。級控制器108本身接收兩個輸入(1)通過線124的當前級的延遲Done信號(即,Req),此后被稱為信號S,比如,信號S可通過線124b到達級控制器108b,以及(2)下一級的Done信號,此后被稱為信號T,比如,信號T通過線122c到達級控制器108b。級控制器108產生兩個去耦合控制信號,pc和eval。此處將對級控制器的協議和實現的詳情作更詳細的描述。
如圖5所示,流水線100中的每個級102都要循環三個階段。循環200a示出了第一個級N,而循環200b示出了鄰近的級N+1。在級N完成其運算階段202a之后,它便進入隔離階段204a并通常不進行預充電階段206a,直到它從級N+1收到信號,正如以下將要描述的。只要預充電階段206a一完成,它就重新再次進入運算極端202a,即完成了循環。(同樣地,級N+1如虛線所表示地完成運算202b、隔離204b和預充電206b階段。)在級N和級N+1之間有一個外在的同步點或互相連接。如虛線210所示,一旦級N+1已完成其運算階段202b,它便可使前一級N完成其整個下一循環即,新數據項的預充電階段206a、運算階段202a以及隔離階段204a。如虛線211所示,還有一個內隱的同步點級N+1的運算階段202b取決于其前一級N’的運算階段202a。級不能產生新的數據,直到它已從其前一級接收到有效的輸入。在圖5中通過因果弧線示出了兩個同步點。
一旦一個級完成運算,它便通過自復位操作將自身與其輸入隔離。該級進入隔離階段,不管該級是否被允許進入其預充電階段。結果,因為當前級將保持隔離,所以前一級不僅能預充電,甚至還可可靠地運算下一數據標記。比如,當級N+1完成其運算階段202a時,它便進入了隔離階段204a,同時級N可預充電206a并運算202a而不會影響級N+1的輸出。
該協議有兩個益處(a)較高的吞吐量,因為級N甚至可以在級N+1已開始預充電以前運算下一數據項;以及(b)相同原因帶來的較高容量,由于鄰近的流水線級現在能夠同時保持不同的數據標記,而不需要由間隔分離。
在圖6(a)中以佩特里網(Petri-net)(一種著名的用于描述并發行為的圖示法)的形式給出了級控制器的格式說明。它由以標號事件表示的晶體管和存儲以黑點表示的標記的位置組成。當它所有的輸入弧都有標記時啟動暫態,隨后這些暫態被存放在它所有的輸出弧上。(在Tadao Murata中進一步討論了有關佩特里網的詳細情況,″Petri NetsProperites,Analysis andApplications,(佩特里網特性、分析和應用)″,IEEE,77(4)的會議錄,1989年4月;L.Y.Rosenblum和A.V.Yakolev,″Signal GraphsFrom Self-Timed toTimed Ones,(信號圖從自定時到定時的″,關于定時佩特里網的國際工作會議錄,托里諾,意大利,199-207頁,1985年7月;Tam-Anh Chu,″On the Modelsfor Designing VLSI Asynchronous Digital Circuits(設計VLSI異步數字電路的模型″,論文集,VLSI雜志,4(2)99-113,1986年6月,通過參考結合于此。)級控制器108的佩特里網說明可從級循環中階段的順序推斷出來,如以上的圖5所示。級N的控制器具有兩個輸入S和T,它們分別是級N和級N+1的Done輸出(見圖3),且它具有兩個輸出,pc和eval,這兩個信號驅動級N。
圖6(a)描繪了級控制器預先設計的佩特里網。圖6(a)中所示的說明有幾個缺點,此處進行詳細分析。在級N 302處預充電的使能條件可以是不確定的級N已完成一數據項的運算并正進入304處的隔離階段(信號S124為高電平),且級N+1已在306處運算了相同的數據項(信號T122為高電平)。如果級N+1被阻斷或減慢則會產生問題,級N+1會繼續保持其高電平的T122的輸出,同時級N處理完全新的數據輸入(預充電隨后運算)。在該情況下,信號S124和T122再次都為高電平,但現在級N和級N+1具有不同的標記。在這種情況下,由于級N+1還未吸收到新的數據,級N是不能被預充電的。
獲取解決該問題的途徑是添加一狀態可變的通過級控制器中的非對稱C元件實現的ok2pc 117(見圖6(b))。圖6(b)中的說明大體與圖6(a)中的說明相同,此處只描述不同的地方。有效改變的ok2pc 153記錄級N+1是否已吸收了數據項。如佩特里網350所示的ok2pc 153在級N在352處預充電之后馬上復位(信號S124為低電平),且只有在N+1已在354處經歷了隨后的預充電之后才會被再次復位(信號T122為低電平)。
圖7(a)和圖7(b)顯示了圖6(b)控制器的實現。實現包括兩個輸入信號,T122和S124,且產生三個輸出信號——pc114、eval116和ok2pc153——每個信號都使用單獨的門電路來實現。控制器直接實現上述以及在前一級子段中的條件。
更確切地說,信號eval116是反相器150在S信號124上的輸出。參考結合了圖3和圖5的圖7(a),當eval116在無任何其它輸入的情況下不能確認為低電平,級104從運算階段202循環到隔離階段204。在實施例中,在級204運算完之后,信號eval116通過線120a經過完成檢測器,并通過匹配的延遲元件112。匹配延遲元件112的輸出是線124上的S信號。在經過了級控制器108的反相器150之后,eval信號116不能確認為低電平,從而可允許級進入隔離階段204。
ok2pc信號153的發生是通過非對稱C元件152來完成,以圖7(b)來作更詳細的描述。由于ok2pc153在級N+1已完成運算之后被設為高電平,且T122為低電平,所以添加反相器156以接收T信號122。雖然ok2pc的產生是向通向pc114的控制路徑添加了額外的門電路延遲,但圖6的協議卻是在關鍵路徑之外完成了該運算,即,ok2pc被設為“背景模式”,從而op2pc在T122獲得確認以前通常被設定了。結果,pc114的關鍵路徑只有一個門電路延遲從輸入T122通過3輸入NAND3門電路154到達輸出pc114。
圖8根據本發明的另一實施例描繪了一個完整的流水線級401。更確切地說,圖3中所示的流水線級102的完成發生器106和功能塊104已被結合入組合功能塊405。級401還包括匹配的延遲元件412和級控制器408(由虛線表示)。功能塊405的輸出419被傳遞到下一級(未在圖8中顯示)。完成發生器(未顯示)的輸出420被分成兩種信號,一部分被傳遞到匹配延遲元件412,另一部分變成信號422a,并被傳遞到前一級或到外界。匹配延遲元件412的輸出為S信號424。如上所示,與級控制器1008有關的級控制器408的輸入是來自下一級(未顯示)的S信號424和T信號422b。
可參考圖3和圖5追蹤級N的完整循環的事件。從級N的一個運算到下一個運算,循環由三部分操作組成步驟(i)級N運算,步驟(ii)級N+1運算,它依照使能級N’的控制器來確認N的預充電輸入(pc=低電平),步驟(iii)級N預充電,完成后傳遞到級N’的控制器,使N再次運算(eval確認為高)。參考圖3和圖5中的標號,過程處理如下步驟(i)級102a運算202a并提前到隔離階段204a并等待。隨后,在步驟(ii),級102b運算202b,且一旦完成級102b的運算之后,級控制器108a接收T信號112b并確認pc114a。在步驟(iii),級102a預充電206a,且被啟動再次運算。
如上所述,對于門級的流水線,可不需要額外的匹配延遲,因為完成檢測器和其它延遲已匹配了門電路的運算和預充電。接著,在早期引入的標志中,步驟(i)的延遲是tEval,步驟(ii)的延遲是taC+tNAND3,而步驟(iii)的延遲是tPrech+tINV。此處,tNAND3和tINV分別是通過圖7(a)的NAND3154和反相器150的延遲。因而,分析的流水線循環時間為THC=tEval+tPrech+taC+tNAND3+tINV(3)級的等待時間只是級的運算延遲LHC=tEval(4)根據本發明的流水線100需要單向時序約束以保證正確運作。一旦當前級已進行了運算,且下一級已進行了預充電(S-1,T=0),則ok2pc信號153變為高電平。隨后,作為下一級運算的結果,信號T變為高電平。為了正確運作,ok2pc信號必須在T信號變為高電平之前完成其上升過渡tok2pc<tEval+tINV(5)在實際操作中,該約束是非常容易滿足的。
必須保證獲得充足的預充電寬度。在該設計中,約束的部分是由捆扎約束實施的aC元件和(任意的)匹配延遲一起,必須具有大于功能塊最差情況預充電時間的延遲。因此,圖7(a)中到NAND3154的S信號將適當地保持。
在預充電上有附加的約束到NADN3154的T信號肯定不能被確認。比如,在T信號被確認為高電平的情況中,級102a的NAND3154a開始102a的預充電(在圖3中)。同時,T信號122b只有在通過級102c的完成發生器106c的非對稱C元件(aC),通過級控制器108b的NAND3154,以及通過級102b的完成發生器106b的非對稱C元件(aC),并最終通過級控制器108a的NAND3154a的路徑之后才被復位tNAND3+tPrechN≤taC+tNAND3+taC+tNAND3---(6)]]>假設所有的級都是相同的,該約束變成tPrechN≤taC+taC+tNAND3---(7)]]>該時間約束也是容易滿足的。
圖7(a)中的反相器150被用于在其運算后使能級的隔離。捆扎約束已保證隔離階段不會開始得太早。
例子作為研究的情況,使用文中描述的流水線模擬門電平流水線的加法器。例子顯示了流水線級的多重輸入流可怎樣被一起合并進單一的輸出流。
選擇32位的脈動進位加法器,因為它的設計簡單且順應非常密集的流水線。加法器的結構適合于高吞吐量的應用,諸如用于多媒體處理的DSP應用。
圖9描繪了脈動進位加法器的典型級500。加法器的每個級是全加器,它有三個數據輸入-A502,B504,進位輸入Cin506-以及兩個輸出—進位輸出Cout508與和510。邏輯等式為Sum=ABCin,且 (8)Cout=AB+ACin+BCin(9)雙軌和單軌編碼的混合被用于表示加法器的數據路徑。由于異或邏輯操作不僅需要其操作數的真值還需要補碼值,雙軌被用于根據動態邏輯應用來表示每個數據輸入A,B和Cin。此外,由于級的Cout是下一級的Cin,所以它也用雙軌表示。另一方面,Sum只使用單軌表示,因為它不需要補碼。完整的數據路徑是捆扎的數據路徑,并且因此可被當作單軌,雖然某些信號使用雙軌表示。
分別用a1a0、b1b0、 以及 表示A502、B504、Cin506和Cout508,加法器的等式被寫為Sum=(a1b0+a0b1)cin0+(a1b1+a0b0)cin1,---(10)]]>cout1=a1b1+(a1+b1)cin1,]]>以及(11)cout0=a0b0+(a0+b0)cin0,---(12)]]>在實施例中,三個輸出,Sum, 和 中的每個都使用單一動態門實現。從而,每級只有一個邏輯電平。
不像此處描述的流水線結構,流水線的加法器是非線性的結構。級500可合并三個不同的輸入流,即,兩個數據操作數和進位輸入。因此,此處描述流水線結構可處理多源的可替換實施例。特別是,由于每個全加器表示多輸入流的同步點,所以它必須具有處理多重捆扎輸入的能力(即,“request(請求)”信號)。
輸入A502和B504可被當作屬于一個具有共用捆扎信號reqab523的共享數據流。Cin輸入與進位輸入reqc525一起形成了其它的流。因此,假設只有兩個輸入流數據操作數和進位輸入。在實際操作中,這在許多操作數來自同一來源的應用中是合理的假設。如果該假設不成立,則我們的方法可被延伸以處理三個獨立的線程。
圖10描繪了完成發生器506的另一實施例。完成發生器506在數據輸入reqab523和進位輸入reqc525上都是同步的。每個添加的請求信號都是通過向完成發生器的非對稱C元件552的下拉堆棧添加一個晶體管來提供的。得到的Done輸出信號520可派生成三個用途,即,作為發送進位輸入的級的“確認”,作為發送操作數的級的“確認”,以及作為下一級的“請求”。
最后,在圖11中示出了整個加法器的結構。移位寄存器568a、567b和568c分別向每個加法器級500a、500b和500c提供操作數位。與每個加法器級500a、500b和500c分別連接的移位寄存器570a、570b和570c累積了來自該級的和的位數流。一旦提供了加法操作的所有和的位,它們就可以并行的方式從每個移位寄存器讀出每一位。移位寄存器本身可根據此處描述的實施例被制成異步流水線。
32位的脈動進位加法器是采用HSPICE以0.6μm HP CMOS工藝在3.3V電源和300°K的操作條件下進行模擬的。要特別注意優化用于高吞吐量的晶體管尺寸。每個動態門電路中的預充電PMOS晶體管具有18λ/2λ的W/L比。運算堆棧中的NMOS晶體管也如此設計尺寸,從而使n-堆棧的有效寬度為p-堆棧的1/3。另外,對于每個設計,均保證時序約束可獲得令人滿意的滿足。
表1概括了模擬結果。
表1
表1列出了總的循環時間及其分解的各個部分級運算時間(tEval),級預充電時間(tPrech),通過完成塊的延遲(taC),以及通過控制門電路的延遲(tNAND3和tINV)。最后,表以每秒有多少百萬次操作列出了每個加法器的吞吐量。發現加法器的吞吐量為每秒1023百萬次操作。
可以理解的是,上述只是描繪了本發明的原理,對于技術熟練人士,可以在不脫離本發明的范圍和精神的條件下作出多種修改。
權利要求
1.一種無鎖存的動態異步數字流水線電路,包括第一處理級,被設置能驅動經過由第一預充電階段、其后的第一運算階段及其后的第一隔離階段組成的周期階段,它只響應于第一預充電控制信號和第一運算控制信號,其中,第一處理級的輸出當處于第一隔離階段時與其輸入的變化相隔離,且其中,第一預充電控制信號與第一運算控制信號去耦合第一級控制器,響應于表示第二處理級階段的暫態信號,且被設置成向第一處理級提供第一預充電控制信號和第一運算控制信號;第二處理級,設置能驅動經過由第二預充電階段、其后的第二運算階段及其后的第二隔離階段組成的周期階段,它只響應于第二預充電控制信號和第二運算控制信號;完成發生器,被設置成一旦完成第二運算階段時提供表示第二處理級階段被確認的暫態信號,其中,在第一處理級和第二處理級之間提供一個互相連接,從而由第一級控制器接收到的表示第二處理級階段的暫態信號,當表示第二處理級階段的暫態信號被確認時,啟動第一處理級以進行預充電階段、運算階段以及隔離階段的循環。
2.如權利要求1所述的無鎖存動態異步數字流水線電路,其特征在于,還包括第一完成發生器,被設置成向第一級控制器提供表示第一處理級階段的第一暫態信號。
3.如權利要求2所述的無鎖存動態異步數字流水線電路,其特征在于,當第一級控制器確認第一運算控制信號并不能確認第一預充電控制信號時,第一處理級進入第一運算階段。
4.如權利要求2所示的無鎖存動態異步數字流水線電路,其特征在于,當第一級控制器不能確認第一運算控制信號和不能確認第一預充電控制信號時,第一處理級進入第一隔離階段。
5.如權利要求2所述的無鎖存動態異步數字流水線電路,其特征在于,當第一級控制器不能確認第一運算控制信號且確認第一預充電控制信號時,第一處理級進入第一預充電階段。
6.如權利要求2所述的無鎖存動態異步數字流水線電路,其特征在于,當第一處理級已進入運算階段且前一級已向第一處理級提供了有效的輸出時,第一暫態信號被確認。
7.如權利要求2所述的無鎖存動態異步數字流水線電路,其特征在于,當第一處理級已進入預充電階段時,第一暫態信號不能被確認。
8.一種無鎖存的動態異步數字流水線電路,包括第一處理級,被設置能驅動經過由第一預充電階段、其后的第一運算階段及其后的第一隔離階段組成的周期階段,它只響應于第一預充電控制信號和第一運算控制信號第一級控制器,響應于暫態信號,且向第一處理級提供第一預充電控制信號和第一運算控制信號,其中,第一預充電控制信號與第一運算控制信號去耦合;以及第二處理級,被設置能驅動經過由第二預充電階段、其后的第二運算階段及其后的第二隔離階段組成的周期階段,它只響應于第二預充電控制信號和第二運算控制信號,其中,第二處理級當處于第二隔離階段時,其輸出與其輸入上的變化相隔離,且其中,第二處理級向第一級控制器提供表示其階段的暫態信號,其中,在第一處理級和第二處理級之間提供一個互相連接,從而由第一級控制器接收到的暫態信號使能第一處理級進行第一預充電階段、第一運算階段以及第一隔離階段的循環,同時,第二處理級保留于第二隔離階段,使得第一處理階段和第二處理階段可存儲兩個分開的標記而不需要由預充電階段來分隔。
9.權利要求8所述的無鎖存動態異步數字流水線電路,其特征在于,還包括第一完成發生器,被設置成向第一級控制器提供表示第一處理級階段的第一暫態信號。
10.如權利要求9所述的無鎖存動態異步數字流水線電路,其特征在于,當第一級控制器確認第一運算控制信號并不能確認第一預充電控制信號時,第一處理級進入第一運算階段。
11.如權利要求9所示的無鎖存動態異步數字流水線電路,其特征在于,當第一級控制器不能確認第一運算控制信號和不能確認第一預充電控制信號時,第一處理級進入第一隔離階段。
12.如權利要求9所述的無鎖存動態異步數字流水線電路,其特征在于,當第一級控制器不能確認第一運算控制信號且確認第一預充電控制信號時,第一處理級進入第一預充電階段。
13.如權利要求9所述的無鎖存動態異步數字流水線電路,其特征在于,當第一處理級已進入運算階段且前一級已向第一處理級提供了有效的輸出時,第一暫態信號被確認。
14.如權利要求9所述的無鎖存動態異步數字流水線電路,其特征在于,當第一處理級已進入預充電階段時,第一暫態信號不能被確認。
15.一種在無鎖存動態異步數字電路中的處理級,具有無鎖存的動態邏輯,該處理級包括級控制器,被設置成提供預充電控制信號和運算控制信號,其中,預充電控制信號與運算控制信號去耦合;以及功能塊,它具有輸入和輸出,被設置能驅動經過由預充電階段、其后的運算階段及其后的隔離階段組成的周期階段,并返回到預充電階段,它只響應于來自級控制器的預充電控制信號和運算控制信號,其輸出當處于隔離階段時與其輸入的變化相隔離。
16.如權利要求15所述的在無鎖存動態異步數字電路中的處理級,其特征在于,當第一運算控制信號被確認并不能確認第一預充電控制信號時,第一處理級進入第一運算階段。
17.如權利要求15所示的在無鎖存動態異步數字電路中的處理級,其特征在于,當第一運算控制信號不能被確認且第一預充電控制信號被不能確認時,第一處理級進入第一隔離階段。
18.如權利要求15所述的在無鎖存動態異步數字電路中的處理級,其特征在于,當第一運算控制信號不能確認且第一預充電控制信號被確認時,第一處理級進入第一預充電階段。
19.一種無鎖存動態異步數字流水線電路,包括第一處理級,它包括第一功能塊,它包括由第一預充電控制信號控制的上拉堆棧,由第一運算控制信號控制的下拉堆棧,第一數據輸入和第一數據輸出,它被設置能驅動經過由第一預充電階段、其后的第一運算階段及其后的第一隔離階段組成的周期階段,它只響應于第一預充電控制信號和第一運算控制信號,其中,當第一預充電控制信號和第二預充電控制信號在第一隔離階段中都不能確認時,第一數據輸出與第一數據輸入中的變化相隔離;第一完成發生器,它包括非對稱C元件,設置該發生器以接收作為輸入的第一預充電控制信號、第一運算控制信號以及有效數據輸入信號,其中,非對稱C元件產生第一暫態信號,該信號當第一運算控制信號和有效數據輸入都被確認時才被確認,而當第一預充電控制信號被確認時則不能被確認;第一匹配延遲元件,它包括多個反相器,設置該元件以接收作為輸入的第一暫態信號并產生作為輸出的第一延遲暫態信號;第一級控制器,它包括一個反相器,設置該反相器以從第一匹配延遲元件接收作為輸入的第一延遲暫態信號并產生作為輸出的第一運算控制信號,非對稱的C元件,設置該元件以從第二處理級接收作為輸入的第一延遲暫態信號和第二暫態信號并產生中間控制信號,該信號當第一延遲暫態信號不能被確認時不能被確認,當第一暫態信號被確認且第二暫態信號被確認時被確認,以及NAND門電路,設置該門電路以接收作為輸入的第一延遲暫態信號、第二暫態信號和中間控制信號,并產生作為輸出的第一預充電信號;以及第二處理級,它包括第二功能塊,它包括由第二預充電控制信號控制的上拉堆棧,由第二運算控制信號控制的下拉堆棧,第二數據輸入和第二數據輸出,它被設置能驅動經過由第二預充電階段、其后的第二運算階段及其后的第二隔離階段組成的周期階段,它只響應于第二預充電控制信號和第二運算控制信號,其中,當第二預充電控制信號和第二預充電控制信號在第二隔離階段中都不能被確認時,第二數據輸出與第二數據輸入中的變化相隔離;第二完成發生器,它包括非對稱C元件,設置該發生器以接收作為輸入的第二預充電控制信號、第二運算控制信號以及第一延遲暫態信號輸入,其中,非對稱C元件產生第二暫態信號,該信號當第二運算控制信號和有效數據輸入都被確認時才被確認,而當第二預充電控制信號被確認時則不能被確認;第二匹配延遲元件,它包括多個反相器,設置該元件從接收作為輸入的第二暫態信號并產生作為輸出的第二延遲暫態信號;第二級控制器,它包括一個反相器,設置該反相器可從第二匹配延遲元件接收作為輸入的第二延遲暫態信號并產生作為輸出的第二運算控制信號,非對稱的C元件,設置該元件以從外界接收作為輸入的第二延遲暫態信號和第三暫態信號并產生中間控制信號,該信號當第二延遲暫態信號不能確認時則不能被確認,當第一延遲暫態信號被確認且第二暫態信號被確認時才被確認,以及NAND門電路,設置該門電路以接收作為輸入的第一延遲暫態信號、第二暫態信號和中間控制信號,并產生作為輸出的第二預充電信號。
20.一種用無鎖存的動態異步流水線處理無鎖存動態異步數字流水線的方法,該方法包括提供第一處理級,設置該處理級能驅動經過由第一預充電階段、其后的第一運算階段及其后的第一隔離階段組成的周期階段,它只響應于第一預充電控制信號和第一運算控制信號;提供第二處理級,設置該處理級能驅動經過由第二預充電階段、其后的第二運算階段及其后的第二隔離階段組成的周期階段,它只響應于第二預充電控制信號和第二運算控制信號,其中,第二處理級的輸出當處于隔離階段時與其輸入上的變化相隔離;在第一處理級執行第一運算階段;在第二處理級執行第二運算階段,并且向第一級控制器提供表示第二處理級階段的暫態信號;通過第一級控制器響應暫態信號,向第一處理級提供第一預充電控制信號和第一運算控制信號;以及執行第一處理級的預充電階段、第一運算階段以及第一隔離階段,同時第二處理級保持第二運算階段和第二隔離階段中的一個階段,從而第一處理階段和第二處理階段可存儲兩個分開的標記而不需要由預充電階段來分隔。
全文摘要
一種無鎖存的動態異步數字流水線電路提供了上拉和下拉的去耦合控制。使用兩個去耦合輸入,驅動能依次經過運算、隔離和預充電這三個不同的階段。在隔離階段,級穩定地保持輸出而不管其輸入上的任何變化。鄰近的流水線級能不用間隔而存儲不同的數據項。
文檔編號H03K19/00GK1432152SQ01810532
公開日2003年7月23日 申請日期2001年4月25日 優先權日2000年4月25日
發明者M·辛格, S·M·諾維克 申請人:紐約市哥倫比亞大學托管會