專利名稱::Vlsi芯片中的分散容錯時鐘脈沖生成的制作方法概述(參看圖4和圖5)數字VLSI芯片未來的發展特點是不斷地增加集成密度、復雜性和提高時鐘頻率。然而,這增加了在所有功能單元(Fu)中提供同步設計范例所需的同步時鐘脈沖的難度●信號需要完整的時鐘脈沖周期(以及更多)以便尋址芯片上的所有功能單元。●時鐘樹的偏差優化需要日益昂貴的程序。●時鐘樹和緩沖器消耗大量功率和表面區域并且導致顯著的功率供給問題和干擾輻射。●僅可以根據布局布線(place&route)確定最大時鐘脈沖頻率(并且必須保守地選擇)。此外,時鐘信號是典型的單個故障點●外部石英晶體昂貴、體積大并且機械上敏感。●時鐘樹中的每個(甚至瞬時的)誤差都會導致系統故障。同時,線路延遲支配VLSI芯片中的開關時間的事實,使得能夠構思一種用于時鐘脈沖生成的、由容錯的分布式系統領域得到的替代方法時鐘同步。在這樣的情況下,基本概念是將獨立的本地時鐘脈沖生成單元(TS-Alg)分配給所有(或者足夠多的)功能單元,以便將本地時鐘脈沖(microtick)提供給每個功能單元。所有TS-Alg都完全相互連接并且使用該TS-Net來使它們的本地microtick相互同步。所使用的方法的同步準確度П=П(Θ)僅取決于TS-Net中最慢與最快路徑的比率Θ(一定程度上對延遲不敏感)。相應于所希望的全局同步時鐘脈沖的macrotick可以通過后接(可編程的)除法器÷П而從microtick中獲得。該方法的好處是●芯片生成它自己的時鐘脈沖并且因此不需要外部振蕩器。不像簡單的環形振蕩器,整個芯片都涉及時鐘脈沖生成,這先驗地提高了頻率穩定性。此外,可以實現溫度補償。●芯片自動以最高的可能頻率工作,該頻率取決于由TS-Net的布局布線導致的延遲和工作條件。實際上,可以用適當地確定TS-Alg的參數來屏蔽掉(maskout)最慢路徑。●同步的范例不僅可用于本地功能單元的設計(基于microticks)而且在功能單元之間的全局通信時也可以保留(通過microticks)。●該方法容忍TS-Net中可配置數量的瞬時和永久誤差,這可被證明是正確的。●TS-Alg的數量可以根據需要最佳地選擇,其中可以監控時鐘脈沖生成的開銷(表面積,...)。●該程序也為同步復位的問題提供了很好的解決方案,該問題在非常大的具有高時鐘率的芯片的情況下難以解決。II詳細說明概要-鑒于隨著鐘脈沖分布在典型同步VLSI芯片中而增加的問題,提出了一種新方法,其不用外部時鐘脈沖源(振蕩器、石英晶體-參看圖4和5)來管理并且還保留了同步設計的范例。由借助異步實施的分布式算法生成用于“島區域”(一個或者多個空間上鄰接的功能單元)的本地時鐘脈沖構成了工作原理。這些本地時鐘脈沖的所保證的同步精確度也允許生成全系統的全局時鐘脈沖。由于算法的分布性、其容錯性和時間無關性可以生成強健且容錯的時鐘脈沖,該時鐘脈沖可以以靈活的方式適應時間相關的參數(其它工藝或者工作條件)中的改變,并且甚至在物理上相互遠離的島區域之間也允許快速同步的通信。由于全局通信異步地發生并且不存在多個本地時鐘脈沖源,所以在此所描述的方法不同于GALS方法。1.動機電路中的電信號的傳播速度由于以下兩個效應而受到顯著限制光速和所謂的RC時間延遲。在典型使用的介質中,光速大約為真空中光速的2/3,即2×108m/s或者20cm/ns。RC延遲是由構成所謂RC元件的寄生電阻和電容引起。這些RC元件又只不過為低通濾波器,低通濾波器導致信號邊緣的平坦化。幅值范圍中的平坦化最終導致時間范圍內的信號延遲,并且該延遲相當好地對應于電阻和電容的乘積。雖然光速表示信號傳播速度的不可消除的物理限制,但是可以優化RC延遲。因此,開發新工藝時總是特別注意減小寄生電阻和電容。雖然如此,目前RC延遲仍代表了實際的速度限制。然而,如果樂觀地假設可借助優化來克服RC延遲,并且已經達到光速的嚴格物理極限,則信號沿著尺寸為2cm的微芯片的邊緣傳播將需要0.1ns。在目前通常的10GHz量級的時鐘率中,這已經與一個完整的時鐘周期相應。國際半導體技術藍圖(ITRS)[ITRS02]預測時鐘率每年提高大約25%,而芯片的尺寸保持基本上相同。這將意味著在10年后信號沿著芯片的邊緣的傳播需要多于3個時鐘周期。該估計忽略了已提到的RC延遲,并且特別是隨著廣泛分支的網絡,實質上伸展比芯片的邊緣長得多。因此,情況更加緊急。特別是,在時鐘脈沖分配的情況下,一方面網絡的物理伸展相當大,另一方面運行時間造成的相移的影響特別高,因此,所描述的問題已顯出其嚴重性。已經進行了很多嘗試[Restle01][Intel02]以便能夠在芯片上適當地實現同步模型。然而最終,證明該模型(至少以其當前的形式)是不再可被支持的假象僅是時間的問題。雖然設計中有充分合適的方法來控制所定義的相移,但主要問題是在與類型變化、工作條件等相關的延遲中不能預測的變化。由于關于信號和時鐘邊緣相對于彼此的相對位置的不足的認識而出現未定義的邏輯狀態,這些未定義的邏輯狀態是所謂的后穩定性(meta-stability)。甚至在不同于時鐘脈沖的信號中,相關的執行時間也日益成為問題。雖然以前基于關鍵路徑中的門延遲還容易地對設計的可允許時鐘頻率做出合適估計,但是互聯的執行時間現在如此占主要地位,使得在完成布局布線之后可以進行類似估計。由此,可以僅在設計過程中很后面的階段才使用修正的措施,這使得設計周期顯著地更慢且更昂貴。甚至復位線也需要特別注意。在系統起動期間,如果在給定的時鐘脈沖周期k期間將復位去激活,則這在相同的時鐘周期中被相應的功能單元感測到并且它們相應地對這做出反應。然而,如果由于信號延遲,功能單元其中之一在時鐘脈沖周期k+1期間才感測到復位,則該異步會導致系統起動期間不可預測的影響。在故障注入實驗[Scherrer02]的過程中,發現處理器系統會非常敏感地對復位信號的不一致的判讀做出反應。總之,因此可以看到,由于執行時間的越來越占優勢的影響,鑒于時鐘率的增加,僅僅用結構上和工藝上的措施不能夠保證VLSI芯片上的執行的同步性。必須找到同步設計范例的替代或者其它的方法解決方案例如同步性的定義的外推的概念。同時,必須看到,芯片上增加的時鐘率、更低的電壓容差和更小的結構將導致故障率的增加[Const02][Salim01]。除增強容錯的措施之外,這將需要更多地使用容錯時鐘脈沖。特別是在安全關鍵的應用(航空器[Truong97])或者具有極長的任務時間的應用(太空旅行[Gaisler02])中,已經是這樣的情況,并且在這樣的情況下要求某種程度上顯著的開銷。因此,對同步性問題的任何解決方案從開始就也應考慮到容錯的方面。2.現有技術和趨勢2.1術語“同步”的理解術語同步以不同的含義使用在不同的上下文中。以下討論兩個最主要的解釋以達到解釋該術語相位同步性表示同步的最高級。兩個或者多個時鐘脈沖信號必須相互如此精確地匹配,使得它們的相移為最小或者盡可能不變。因此,同步的質量的尺度是用度表示的最大相位偏差。例如,如果多個邏輯電路要以鎖步(lock-step)模式工作,則必需相位同步性。傳統的同步設計隱含地假設相位同步性,并且由于執行時間的支配而恰恰不能保持相位同步性。在這樣的情況下即使所考慮的時鐘脈沖由相同的源生成,它們的相對相位也會由于執行時間和偏差而失真。時間同步性(時鐘同步性)涉及分布式時鐘的匹配。待被同步的時鐘時間通常由完全不相關的本地時鐘脈沖信號得到,并且借助有目的地省略或者插入時鐘脈沖來實現同步性。根據兩個時鐘時間之間的最大偏差估計同步質量,而這也稱作精確度。與相位同步比較時,粒度(granularity)在此是更不精細的,問題不是在高頻時鐘脈沖內的相移,而是存在(整體的!)本地計數器讀數的偏差。基本上,甚至時間同步也僅通過同步措施來實現。僅僅選擇低容錯的石英晶體是不夠的,因為由它們得到的本地時鐘時間經過很長的時期會相互偏差很大。2.2時鐘脈沖分配由于性能和功耗的規定,當前設計中的時鐘脈沖分配是不斷增大的問題。對高時鐘頻率和在微芯片上增加門的數量的需要意味著由于增加開關工作的數量和高扇出(fan-out)而增加了時鐘樹的功耗。時鐘脈沖網絡占據了整個芯片的功耗的25%到50%[Dobberpuhl92]。此外,由于時鐘周期的縮短,對時鐘偏差(時鐘脈沖到達兩個不同的組件處之間的差)的可允許的裕度減小了。因此,在現代處理器設計中,必須耗費大量的努力以保證盡可能無偏差地分配時鐘脈沖。時鐘脈沖分配大部分借助平衡樹(H樹,X樹)結合以集成了樹的各個層次的網絡結構來實現。利用該方法進行了嘗試,以便使至每個端節點的引線長度以及在每個這種路徑中的緩沖器的數量盡可能平衡;在此即稱作零偏差布線[Restle02]。為了能夠“驅動”時鐘脈沖分配網絡的相當大的扇出,要求大量的緩沖器(數百到數千),它們應盡可能均勻地分布到芯片上,以便減小時鐘偏差。由于制造工藝,每個緩沖器具有在驅動功率和延遲特性方面的某種(雖然微小)不準確度,這導致了額外的時鐘偏差[Restle01]。在現代處理器設計中,經常引入所謂的去偏差電路。這種電路涉及可編程的延遲,這些延遲用于補償時鐘脈沖分配網絡的各個緩沖器的執行時間變化。緩沖器的驅動功率和相關延遲時間很大程度上取決于工作參數例如供給電壓和環境溫度。此外,例如由于電遷移,線路的阻抗會改變,這會導致該路徑的執行時間特性改變。由于高頻率(GH范圍),集膚效應(電流僅僅在導體的表面流動)也變成了嚴重的問題[Chen02].集膚效應導致線路阻抗,并且因此執行時間特征隨著時鐘頻率變化。上面所說明的參數的不準確度使得必需為時鐘偏差而規劃安全的大裕度,這導致實質地減小VLSI芯片的最大可允許的時鐘頻率。此外,很多時鐘緩沖器的同步開關生成功率供應中相當大的干擾信號、串擾和窄帶電磁干擾輻射,由于時鐘樹的天線效應,該干擾輻射會是相當大的。2.3時鐘同步在時鐘同步的情況下,在由節點構成的網絡中,全系統的共同的時間概念以同步的時鐘(計時器)的形式引入。在此,可以區分基于硬件和基于軟件的方法,在此硬件實現通常由于減小的協議開銷和執行時間中相關的低變化而導致更高的同步準確度[Ram90]。通常,必須存在n>3f個節點可用,以便能夠容忍f個拜占庭錯誤(byzantinefaulty)的節點[DHS86]。時鐘同步的基本原理每個節點都具有本地時鐘脈沖發生器,本地時鐘發生器增加計數器,此外所有節點都本地地執行同一個算法。對于該算法的相關的時間信息借助單個節點之間的消息來交換。在指定的間隔(再同步間隔)的末端處,接收由這些消息所計算的修正函數,并且本地計數器讀數被應用于本地時鐘并且開始新一輪的算法。時鐘同步算法根據它們的修正函數可以分成三組●基于收斂的算法●基于一致性的算法●概率統計的算法在基于收斂的算法中,在再同步期間發送一次單個消息給所有其它節點。在一個再同步期間中收到足夠數量的其它節點的消息之后,收斂函數(例如,容錯的平均值[LL88])被施加到這些時間相關的消息中。因此,根據收斂函數的結果來調節本地時鐘。基于一致性的算法基于這樣的考慮,即所有零誤差的節點都具有對整個系統的一致視圖[Lamport85]。這意味著所有零誤差節點對一個發射器的時鐘的同一個值是一致的,而不管發射器是否有(拜占庭)誤差。如果發射器是正確的,則這也為由該發射器發送的值。以相似于基于收斂的算法的方式,甚至在此每個節點在每個再同步間隔發送一次其時鐘的當前值。時間相關的消息被節點轉發(轉播),由此,對所有節點存在對系統相同的視圖。為了確定節點的相應當前時鐘時間(在傳輸時刻),由從所有其它節點接收的相關值計算出中值。然后,從事先所獲得的所有節點的一致的時鐘值的中值獲得節點的新的本地時鐘。概率統計的時鐘同步算法通常進行兩個步驟數據采集和執行統計檢驗,以確定新的本地時鐘值[Lu89]。一般地,要注意的是,在文獻中所提出的算法中必須滿足一些假設以便保證它們的功能[Ram90]。在基于收斂的算法中必須能夠將消息唯一地分配給發送器,而這可以借助完全聯網的結構或者通過利用簽名來實現。此外,必須有對消息傳輸時間的上限,并且可達到的精確度也通過該限制而決定性地確定[LL84]。時鐘必須在開始時刻同步,即它們相互的偏差必須在指定的限度內。基于收斂的算法已經以軟件[SIFT78]、硬件[Miner92]和混合形式(軟件/硬件的組合)[SynUTC02]實現。在基于一致性的算法的情況下也必須能夠將消息唯一地分配給發送器;此外,必須進行多輪的信息交換,使得在每個零誤差節點中實現相同的系統全局圖,這導致了在消息方面很高的開銷。在此,對于消息傳輸時間的上限必須為已知,以便保證所要求的算法精確度。在有足夠的數據可供實施統計檢驗之前,概率統計的算法要求很多輪的消息交換,并且接著也僅能以小于1的概率保證同步的實現。此外,由于對實現統計檢驗和所要求的數據的存儲的硬件成本是極高的,所以有意義的是概率統計的方法僅可使用在軟件解決方案中。利用時鐘同步可實現的精確度通常在小于幾μs到100ns的量級[KKMS95][SynUTC02]。2.4容錯時鐘脈沖容錯時鐘脈沖理解為這樣的時鐘脈沖信號,其在多個節點上可用,并且利用預定的限制(精確度)來同步,并且可以容忍限定數量的錯誤的時鐘脈沖源,而不會失去同步性。在文獻[VanAlen91][Choi90][Vasan98]中給出的用于生成容錯時鐘脈沖的主要方法考慮n個節點,每個節點帶有一個本地時鐘脈沖發生器,其中n>3f并且f表示系統所容忍的拜占庭誤差的數量。每個節點都通過點對點連接與每個另外的節點相互交換時鐘信號(如果其自己的時鐘脈沖也反饋給它自己則有n2條引線)。全局交換的時鐘信號表示所謂macroticks,macroticks表示全系統的同步的時鐘脈沖。相反,被分成microticks的高頻率時鐘脈沖用在單個節點中,以便保證全局時鐘脈沖信號的時間排序。借助在每個節點中的選擇功能(表決器)從所有被接收的macroticks(包括其本身)中獲得參考時鐘脈沖。如果需要,則本地時鐘脈沖利用模擬或者數字PLL(鎖相環)使本地時鐘脈沖與所選擇的參考時鐘脈沖對齊。還使用在[Vasan98]和[VanAlen91]的實施形式中的、廣泛被接受的假設是,在任何零誤差節點之間的信號執行時間近似相等,使得零誤差節點的表決器(一致地)以相同的順序感測零誤差節點的所有時鐘脈沖信號。然而在實際的情況下,如已在關于時鐘脈沖分配的那一節中解釋的那樣,由于時鐘偏差和信號執行時間的問題變得日益突出,所以不可能維持該假設。用于補償不同的執行時間的方法已經由[Shin88]示出,但是這要求2n個相位檢測器和2n2個引線,這進一步增加了硬件成本和對誤差的敏感性。由于單個時鐘脈沖邊緣的相移,不僅會出現表決器中的不一致,而且由于在相應的輸入觸發器的設置和保持時間中也會出現信號變化,所以在單個節點的表決器輸入處還會存在后穩定問題。當然,利用特殊的輸入緩沖電路可以減小后穩定性問題的概率,但不能完全地排除,這并不表示概念上一流的解決方案。如果PLL的輸入信號顯示出與參考信號很大的偏差,則PLL不能成功地調節信號,這會導致永久地失去同步。2.5GALS系統如1節中所解釋的那樣,如果不再可能建立整個芯片上的同步性,則至少可以嘗試將空間上所劃分的區域(例如SOC(片上系統,一種由在一個芯片上的多個復雜功能單元構成的整個系統)中的功能單元)保持相互同步。因此,這些同步的“島”之間的通信可以借助異步技術來實現。該方法公知為縮寫字GALS(全局異步本地同步)[Chapiro84]。雖然GALS技術在功能單元內使得能夠連續且不變地使用已證明的同步設計方法,但是基本問題正是出現在到異步通信單元的接口處。為了防止在異步/同步接口處出現后穩定而必須使用同步電路。這些同步裝置大部分基于可停頓/可擴展(strechable)的時鐘,并且在異步/同步接口處導致實質上的延遲時間[Chelcea00]。GALS方法中的另一嚴重的問題是,本地時鐘脈沖完全不同步地工作,并且因此會隨機地相互遠離漂移。因此,不采取任何附加措施就不可能建立所交換的信息的暫時的排序。由此,雖然實際上可以使用GALS方法,但是以其當前的形式不能稱為概念上是很好的或者技術上也不完美。2.6異步邏輯更必然的程序是在芯片上完全異步實現整個邏輯電路的步驟。這不能簡單地通過忽略時鐘脈沖來進行,而是需要更加細致且系統的程序。有關該主題的理論論文已公開很多年(參看例如[Huffman54])。有爭議的是,數字邏輯的這種異步實現在概念上提供少許顯著的優點(減小功耗、改進的模塊性等)[Myers01][Hauck95][Berkel99]。然而,在它們目前關于價格、性能和效率的成熟度方面,迄今為止對于該概念的實際實施所建議的方法僅在受限的邊緣區域中是對同步設計范例的實際替換方案[Steininger04]。除此之外,同步設計在工具、現有模塊以及最終甚至在開發者的培訓中已建立到這樣的程度,使得只要它一般地說還能夠成功,則轉換到全新的異步設計世界中無論如何也將是令人猶豫不決并且一步一步地進行。2.7虛擬異步系統在[Fai04]中所建議的用于分布式時鐘生成的方法可看作同步和異步世界之間的一種跨越。代替將集中的振蕩器的時鐘脈沖反饋給VLSI芯片上的單個功能單元,而將每個功能單元分配給特殊的時鐘脈沖單元,特殊的脈沖單元本地地生成它們的時鐘脈沖。但是這并非利用專用的本地振蕩器來實現,而是通過將由MOSFET構成的時鐘脈沖單元設置成二維點陣來實現。每個時鐘脈沖單元都借助專用的時鐘脈沖線與4個相鄰的時鐘脈沖單元(上、下、左、右)相連。當時鐘脈沖單元處于相同的狀態時,時鐘脈沖單元的邏輯導致時鐘線的狀態改變,使得點陣結構實現了分布式環形振蕩器的作用。然而,從分布式算法的理論中公知的是,對于每個應該對每對時鐘脈沖信號保證恒定的同步準確度的時間同步方法,(近似)全連接是必需的。如果也應保證全局同步性,則每對時鐘脈沖信號又將是絕對必要的。然而,這利用在[Fai04]中所描述的方法不能達到,因為事實上不可能實現所有時鐘脈沖單元完全點對點的連接實際上,將需要6個時鐘線路的3D點陣結構的時鐘脈沖單元的構造一般化看來已經是困難的。用該方法不能實現在完全連接的情況下所需的n-1個時鐘脈沖線的處理。除此之外,[Fai04]中所描述的時鐘脈沖生成是非容錯的在其中一個時鐘線上的單個瞬時錯誤會導致整個時鐘故障和/或本地超頻(overclocking)。由于粒子撞擊(particlehits)、電源波動和雜散干擾導致了現代VLSI芯片中的瞬時錯誤的概率增加,所以這是不可接受的。最后,在[Fai04]中所描述的分布式時鐘脈沖發生器的實現直接基于工藝相關的晶體管水平,而在此所提出的概念圍繞工藝不相關的門水平。總之,因而在[Fai04]中所給出的方法不適合TS-Net(特別是全連接的TS-Alg),是依賴于工藝的、非容錯的,特別是不提供任何不變的且受限的同步準確度,而沒有這些就不能實現功能單元之間的同步全局通信。3.解決方案的原理首先,在此對本發明所涉及的內容進行簡短總結,即本發明涉及一種用于在硬件系統特別是VLSI芯片、片上系統、IP核、PCB和PCB系統中的分布式容錯時鐘脈沖生成的方法,其特征在于●通過多個相互通信的容錯時鐘脈沖同步算法(TS-Alg)分布式地生成系統時鐘脈沖,而不用外部或者內部時鐘振蕩器,其中i.任意數量的這種TS-Alg通過任意的、遭受永久和瞬時錯誤的時鐘脈沖信號的網絡(TS-Net)而相互交換信息,ii.將每個TS-Alg分配給一個或者多個功能單元(Fu1,Fu2,...),它們的本地時鐘脈沖通過TS-Alg生成,●所有本地時鐘脈沖被確保維持頻率同步,在這個意義上,在給定的時段內任意兩個本地時鐘脈沖信號最大相差指定的不變數目的時鐘周期,使得可生成全局系統時鐘脈沖,全局系統時鐘脈沖使得能夠在芯片上的任意數量的功能單元之間進行全局同步通信。其中全局系統時鐘脈沖可借助合適的時鐘脈沖轉換電路(除法器等等)從任何本地時鐘脈沖中得到。●特定數量的瞬時和/或永久錯誤允許出現在TS-Alg或者TS-Net中,而不會影響時鐘脈沖生成和/或同步準確度,●系統時鐘脈沖自動地達到最大可能的頻率,最大可能的頻率由所使用的制造工藝、TS-Alg和TS-Net的布局和布線以及當前工作條件(溫度,電源電壓等等)來確定。利用該方法,全局系統時鐘脈沖的可用性僅僅取決于芯片上信號路徑的最大與最小的端到端的信號延遲的比率,而并非取決于其最大值。有利的是,已活動的本地時鐘脈沖和由此導出的全局系統時鐘脈沖的同步準確度也在硬件的上電期間得到保證。有利的是,利用異步邏輯例如彈性管道、Muller-C門等等來實現。此外,有利的是,全局系統時鐘脈沖的穩定性利用TS-Alg中的可變的延遲元件或者特有的時鐘脈沖轉換電路來增強,其中當前延遲時間和/或時鐘脈沖修正值靜態地在制造時獲得,和/或在執行時可針對芯片的相應應用來配置,和/或根據對工作參數(溫度和/或電源電壓等等)的一次或者連續測量而自動地獲得。本發明還包括一種用于硬件系統(例如芯片)的各種功能單元之間的全局數據傳輸的方法,利用該方法,借助根據上面所描述的程序生成的時鐘脈沖的分頻,提供了全局上足夠同步的macrotick可用,使得無后穩定性問題的數據傳輸是可能的。本發明還包括一種用于VLSI芯片的同步復位方法,其特征在于所描述的用于時鐘脈沖生成的方法也在復位階段保證了本地脈沖的全局同步,并且因此可以用于識別所有功能單元的確切起動時刻。此外,本發明還涉及一種用于實施這種方法的硬件系統。基于第二節中的考慮,如果可以借助在同步島之間的異步通信而找到對這些問題的在概念上很好的解決方案,則準異步的或者GALS方法將是非常有吸引力的。因此,此外應假設一個結構包括一個芯片上的本地同步功能單元(模塊),這些單元(模塊)沒有相互相位同步,而是相互頻率同步。在此,上下文中的頻率同步涉及兩個或者多個時鐘脈沖信號的頻率的匹配。在此,與相位同步相反,所涉及的時期更長。絕對可允許的是,在此期間,時鐘脈沖之間出現了實質的相移;然而,決定性的是每個觀察的時段中相位變化的數量可以差至多一個常數。(由此,也導致,當觀察無限的(即足夠大的)時間間隔時,所有時鐘信號將具有相同數量的時鐘脈沖)。如果要將一個計數器連接到時鐘脈沖信號,則在任意長的時間間隔上,在計數器值之間的最大偏差將是同步質量的標尺。結合時鐘同步,該特征也稱作精確度。不同于時鐘同步,在所提出的頻率同步的情況下,持續保證頻率的均等性(parity),而不引入或者抑制本地脈沖(“速率修正(ratecorrection)”)和/或對時間做出不規律修正(“狀態修正(statecorrection)”)。通常,在時鐘同步的情況中的約束是完全不同(大的距離、速度變化且每個都具有本地時鐘脈沖的節點等等)于在芯片水平所考慮的主題的約束,并且因此甚至解決方案和質量基準都不能用在這里。因此在2.1節中所給出的定義的上下文中,頻率同步表示相位同步與時間同步之間的跨越。在考慮到時間相關的偏差時,這也是明顯的。在相位同步的情況下,所觀察的時鐘脈沖信號之間的偏移絕不允許大于時鐘脈沖周期的1/2,在時間同步中(由于上面所提及的完全不同的假設)1μs的同步準確度已經視為非常好(參看2.3節)-在1GHz時這相應于1000個時鐘脈沖周期。由于相位同步不再可能在整個系統上實現,所以具有可允許的幾個時鐘脈沖周期的偏差的頻率同步代表了合理的“最好成果”。因此,不同于GALS方法,同步島的本地時鐘脈沖現在不再是不相關的,而是在頻率方面同步。對此所要求的同步借助對所有模塊所共有的分布式算法通過設立全局時間參考來實現(參看第4節)。VLSI芯片的每個模塊或者足夠數量的模塊(=一個或者多個物理上相鄰的功能單元)應該增加一個用于此目的的非常簡單的功能單元,該功能單元的唯一任務是執行該分布式算法并且因此一方面有助于設立全局時間參考,而另一方面有助于得到該模塊的本地時鐘脈沖。由于通常的算法基于在所有節點上的功能的復制,所以可以以相同的方式在所有模塊上實現該功能單元。重要的目的是利用異步邏輯實現功能單元,以便在概念階段已經消除后穩定性的問題。單純從實際觀點出發,這也是必需的,因為對算法的同步實現所要求的時鐘脈沖應該首先由算法本身生成。文獻中所建議的方法(相位同步和時間同步)假設存在多個時鐘脈沖源,并且該方法的任務實質上包括在由這些源所提供的時鐘脈沖信號之間建立合適的同步。在此所提出的方法采用完全不同的途徑,該途徑已經在[Fai04]中被開辟出來在此不存在本地時鐘發生器,而是僅僅存在一個單個的共同虛擬時鐘脈沖信號的本地實例,該時鐘脈沖信號通過分布式算法生成。因此,原則上,不存在不同信號彼此分歧的可能性,并且相移僅來自于算法執行或者處理時間。因此,在這種情況下該方法的目的在于依照相應的規則生成時鐘脈沖。與[Fai04]截然不同,其實現不允許不變的同步準確度,利用在以下節中提出的分布式算法可以極好地且相對容易地設立容錯和所保證的最大相移(=同步準確度)。以這種方式所生成的本地時鐘脈沖在由本地時鐘脈沖所服務的模塊上借助簡單的時鐘樹來分配,這因此是非臨界的,因為給定模塊的功能單元空間上相鄰。借助將本地時鐘脈沖(microtick)合適地映射在低頻全局時鐘脈沖(macrotick)上,可最終為所有模塊[Kopetz97]得到一致的同步時基。這是可能的,因為任意兩個本地時鐘脈沖信號之間的相移并沒有超過特定的最大值。因此,利用所建議的方法,具有同步/異步接口的GALS架構的公知問題可以在概念上容易地克服。用于生成全局時鐘脈沖的算法依照異步邏輯的原理來實現。當然,這是昂貴且麻煩的,但是完全避免了后穩定性。只要不涉及全局通訊,可照常基于本地時鐘脈沖同步地設計本地功能單元。然而由于存在全局時鐘脈沖,所以甚至全局數據通信也可利用習慣的同步設計來實現。在此,伴隨后穩定性的可能的問題也可以利用合適地選擇macrotick來完全消除。總之,所追求的解決方案提供了以下顯著好處●電路生成其自己的時鐘脈沖,并且因此借助全系統保證的、由常數限制的同步準確度省去了本地時鐘脈沖源(振蕩器、石英晶體)●在所有時刻芯片以最大可能時鐘頻率工作●通過非臨界的點對點連接代替復雜的、耗能的全局時鐘樹●在給定的物理邊界條件下,在維持同步提取和有效同步性方面的最佳折衷●時鐘信號的更好容錯性和永久誤差工作原理的可能的實施在以下章節中詳細表述。4.所使用的基本算法4.1基本原理起點是在消息層面[Srikanth87]現有的基于收斂的算法(參看第2.3節)。該算法假設分布式系統由n個計算機節點構成,所有節點可以借助消息利用點對點的連接彼此通信(完全聯網的結構,參看圖1)。因此,每個節點具有n個輸入和n個輸出(來自/到其它n-1個節點的每一個加上一個回送到其本身)。在最廣的意義上,基于循環(round)來進行通信,并且在無錯誤的條件下,每個節點在每個循環中同時給所有n個輸出發送至少一個同步消息(關于其它特定應用的消息在此未做假設)。共同的時基借助分布式協定基于這些同步消息來建立。如果n>3f,則直到f個錯誤節點的情況下(即每節點每循環可以容忍直到f個錯誤或者丟失的消息),該協定都正確地起作用。因此,在系統設計的時候可以考慮估計有哪些數量f的錯誤。當使用在[WS03]和[Widder03]中所提出的混合錯誤模型時,實際上可以選擇容錯以更準確地匹配要求。算法以增序編號的循環序列的形式傳送時基,每個循環相應于一個時鐘脈沖步。從一個循環到下一個循環的過渡根據該協定以這種方式來確定,使得在任何時刻網絡中都保證了所有(無錯誤的)節點的最小同步程度。特別是,對無錯誤的節點可保證如下如果在給定時刻一個節點在循環k中,則在相同時刻所有其它節點在循環i中,其中|i-k|<Θ+2。在該關系中,品質參數(qualityparameter)Θ由系統中消息的最大與最小執行時間的比率確定。時基(首先)相對于外部(絕對)參考是不同步的,而是僅僅在系統內(保證了精確度,但是不能保證準確度)。以相同方式在所有節點上執行該算法,其中消息的交換導致本地拷貝之間所希望的交互,這最終導致連續且自主地執行該算法。動態性能由該算法的本地處理時間和在線路上的相應的執行時間確定。原始算法在[Srikanth87]中給出,并且這里在下面考慮簡化的版本,它看來更適合映射到硬件上。首先以初始化步驟(R)開始執行并且接著主要基于兩個規則(1)和(2)(R)“復位”onresetsend(msg[1]){once}local_tick:=1于是,每個節點首先設置其本地計數器為值1并且發送相應消息給所有節點以便開始執行算法。(1)“延遲”whenreceived(msg[k])fromf+1thensend(msg[k]){once}如果一個節點從至少f+1個其它節點(即從至少一個無錯誤的節點)接收消息“k”,則其本身將消息“k”發送給所有節點,包括發送給其本身。由于如上所提及的那樣,相同的算法同時在所有其它節點上運行,所以關于這些在循環k+1的時期中已準備好的節點出現可謂全局“一致圖像”。該規則可以獨立于相應的節點所處其中的循環(local_tick)使用,只要k>local_tick。“增加”whenreceived(msg[k])from2f+1thensend(msg[k+1]){once}local_tick:=k+1如果節點p從至少2f+1個節點(包括本身)接收消息“k”,則顯然在循環k中有合格的多數節點已準備進入循環k+1中。更準確地說,甚至在最壞情況下(f個有錯誤的節點),在2f+1個節點中仍然有至少f+1個正確的節點已經發送了消息“k”。因此,對于所有無錯誤的節點必須激發規則(1),使得可以期待“k”消息流,并如根據規則(2)那樣,強制地使所有無錯誤的節點過渡到狀態k+1。因此,節點p使本地循環計數器增加一個時鐘步并且發送相應消息“k+1”。此外,僅當相關節點本身在循環k中時才使用該規則。因此,同步消息k由節點p到達節點q對應于通知節點q,節點p主張已經完全有理由過渡到循環k+1,即將全局時鐘步加一。(在此應注意到這并非一定意味著節點p已經在循環k中,或者其本身將馬上過渡到循環k+1)。必須注意到,一個節點必須僅發送一次給定的消息(即例如“k”)。無論隨后兩個規則中的哪一個“激發”,都不再需要發送消息,即相同消息的復制品被接收器拒絕。此外,決定性的因素是,消息的發送器可以無疑地被識別(因此,需要點對點的連接)。否則,錯誤節點會采用其它節點的身份并且以它們的名義發送消息。此外,令人感興趣的是注意到,僅當至少f+1個其它節點的local_tick在p的local_tick之前時,規則(1)才先于規則(2)被用于節點p。在這種情況下,雖然節點p保持其不利條件,但是通過發送相應消息有助于更快的節點的主張形成。4.2引導復位之后,必須保證所有節點已準備接收。此后,如已描述的那樣,每個節點發出消息“1”,以正確地初始化算法。隨后,開始使用規則(1)和(2)。落后者(即非常遲才完成它們的初始化的節點)可以借助所謂追趕規則(catch-uprule)來立即跟緊當前的狀態。在[Widder03]中可以找到起動過程的細節。4.3特征這些算法的最重要的特征是●根據該算法,以分布式方式生成“循環”(=microticks)形式的全局時鐘脈沖,該全局時鐘脈沖在所有參加的(沒有錯誤的)節點上保證了預定的同步程度。●該算法是時間無關的,并且關于消息執行時間(和/或關于對所接收的消息的響應時間)絲毫無需任何限制。●僅僅消息的最大與最小執行時間(包括處理時間)的商Θ確定可實現的同步準確度。應注意到,絕對執行時間對精確度是不重要的(但是,如果希望外部同步,則對準確度是重要的)[Widder04]。●根據算法所建立的時基允許具有π(Θ)microticks的粒度的消息暫時排序。●其函數和精確度可以在形式上被證明[Widder03]。●在指定的條件下,算法的正確開始可以在形式上被證明[Widder03]。●可同時容忍多達f個(甚至拜占庭的)錯誤。可以簡單地通過節點的數目衡量容錯性。5.用于片上時鐘脈沖生成所描述的算法最初是構思用于在分布式系統中的計算機節點的同步。現在,我們的方法在于,使用該算法以便為例如在VLSI芯片或者片上系統上的一個或者更多硬件功能單元(HW-FU)提供同步頻率時鐘脈沖,而盡可能不必對單個執行時間做出任何假設。這克服了以下重要問題5.1同步準確度利用在軟件中執行的同步算法,1μs量級的精確度視為極好。在硬件中,通常的時鐘脈沖率是多個100MHz的量級,因此對于同步所需的精確度(絕對地來考慮)必定好幾個量級。關于Θ值,在硬件中至少也不是尋常的,在此感興趣的大多僅僅是兩個時鐘脈沖之間的相移,并且Θ=1相應于360°,即一個完整的時鐘周期,并且更大的值相應于多個周期。另一方面,可以假設,在硬件實現的情況下消息的延遲時間中的差將充分小于軟件中的實現,因為對軟件解決方案典型的、伴隨節點的排隊和下降的節點性能的問題幾乎不出現在硬件中直接并行處理的情況中。解決方案因此,考慮到典型的要求和硬件的特定的邊界條件,Θ≤2的假設是很現實的。在此,所選算法本身證明是極其有利的,因為僅僅考慮了相對偏差。5.3通信開銷在軟件中實現算法的情況下,假設通信介質已經存在于節點之間。如論如何,交換應用相關的數據需要這種介質,算法僅僅添加到現有的結構上并且僅僅導致在可用的帶寬方面的開銷。不必一定要在物理上實現所要求的點對點的連接。決定性因素僅僅為,接收器可以唯一地使消息與發送器關聯—并且為此目的,虛擬的點對點通信就足夠了,例如通過具有關聯的尋址、發送器標識和(如果必要時)簽名的總線。此外,必須保證的是,借助相應的冗余該總線是容錯的,以便保持整個系統的容錯性。然而,在所提供的硬件實現中,算法僅僅用于提供全局時鐘脈沖信號。用于通信的基礎設施必須特別為此目的來建立,并且因此總是視為硬件開銷。對已存在的數據通信總線的使用可以被排除,因為僅僅當總線通過同步負載到100%的程度時才可以實現所希望的時鐘脈沖率,因此不能用于數據通信。節點間的串行通信可被排除,因為(不同于基于軟件的解決方案)關于頻率和同步準確度不能獲得滿意的結果。僅當實際上不必建立物理的點對點的連接時(這意味著僅僅為了提供一個時鐘脈沖而有n2個并行連接),實現并聯連接在經濟上才有意義地可行。物理上實現為總線(具有虛擬的點對點連接)又造成了協議開銷(仲裁、發送器ID加簽名等),這又顯著地減小了可實現的時鐘脈沖率和/或同步準確度。除此之外,需要多冗余設計。解決方案傳統的解決方案(即一個單個的全局時鐘線)是形成效率衡量標準的無法超越的基準,這極大地妨礙了任何新方法的接受。因此看來有必要將消息的信息內容減小到1比特,使得簡單的1比特信號對物理點對點連接是足夠的。關于串聯對并聯的傳輸的討論在這種情況下是多余的。5.3消息的受限信息內容現在,實施該算法的重要的問題是管理最小1比特的信息。特別是,在這樣的邊界條件下不可能如實際上在算法中設置的那樣,傳輸當前循環的明確的數目(k)。解決方案k值遞增地傳輸(例如作為脈沖)并且相應的絕對值通過相應接收器中的計數器管理。發送器ID以這種方式不能實現,這使得強制地要求設計實施物理的點對點連接。在給定的邊界條件情況下,有意義的是使用轉換信令(transitionsignaling)的技術[Hauck95]。5.4沒有k的絕對值的引導在原始的算法中,引導通過大多數節點初始相互一致并且接著將時鐘脈沖前進使能來實現。落后者如所提及的那樣利用追趕規則來緊跟。然而這需要對絕對k值的知識,因為緩慢的節點的本地計數器沒有當前讀數。解決方案解決方案將由以下構成(a)修改引導策略,使得不用追趕規則就可以應對,(b)k值的“偶然”傳輸或者(c)這樣地設計硬件使得每個節點上的計數器都工作,而不管節點本身是否已經初始化。5.5消息的多觸發由于k的絕對值不包含在消息中,所以重要的是保證每個規則對每個k僅僅觸發一次。此外,出于各種原因值得希望的是,每個消息僅被發送一次,即兩個規則中只是更早的一個被觸發。由于并聯的特性,這些要求難于在硬件中實現(這兩個規則會恰好“同時”觸發)。解決方案可能的解決方案是用時鐘脈沖的上升和下降邊沿分別作為對k的偶數和奇數值的標志,使得可簡單地避免在短時間間隔內相同k值的發送(上升邊沿跟著下降邊沿),而在較大的時間間隔情況下可以以傳統的方式標出相同的消息。5.6算法復雜性在軟件解決方案中,在計算機節點中甚至執行復雜的計算也是沒有問題的,因為這可以在軟件中實現。在純粹基于硬件的解決方案的情況下,所需要的功能性必須直接在硬件(例如狀態機)中實現,并且甚至算法上簡單的計算例如乘法也會導致顯著開銷。此外,利用異步邏輯的所希望的實現還會導致進一步的開銷。應該記住的是,在每個節點接收n個消息,并且因此全系統必須實現總共n2個單元以處理所接收的消息。解決方案在此沒有一般的解決方案可用,并且當在硬件中實現時必須盡可能詳細地進行優化。為此,必須能夠這樣地轉換算法,使得其可以以最佳的方式映射到硬件。當深入細節時存在很多在硬件實現中有待解決的問題,這些問題主要涉及這樣的事實,即在以不同(未知)執行時間并行運行進程的情況下,設置執行的順序是有問題的,而在軟件中這些進程能以有序和自動的方式在軟件中運行。應注意到這樣的事實,即到目前為止所有所描述的解決方案都具有的共同的目標是,實現盡可能有效地映射在硬件上。使用分布式算法用于節點的頻率同步的作為基礎的方法和該方法在異步硬件中的實現也可以以其它方式實現。因此沒有一個在此所說明的決定是強制的。6.所建議的HW實現6.1架構在上面所提出的討論得到如圖2中所圖示的由1比特線構成的完全相互交織的結構。幸運的是,支持這種架構的芯片架構剛剛上市例如由Arteris提供的NoC(Networkonchip片上網絡)設計策略[Arteris04]最初構思于用于GALS架構,NoC設計策略裝備有交換結構(switchfabric),該交換結構似乎非常好地支撐數據和時鐘脈沖的所需要的通信結構。6.2功能塊的實現在軟件解決方案中隱含地假設,每個計算機節點也具有與全局同步時基不相關的本地時鐘脈沖,利用本地時鐘脈沖例如驅動本地處理器。本地處理器時鐘脈沖的時間分辨率好于所接收的消息之間的間隔和全局時間的精確度幾個量級。因此,合理地假設,到達的消息幾乎連續地被接收和被處理。然而,硬件解決方案的目的是甚至沒有本地時鐘脈沖發生器地來應對,確切地說,從所生成的分布式全局時鐘脈沖得出本地時鐘脈沖。由此,沒有先驗的時鐘信號可用于接收和處理消息。顯而易見,因此僅當所有對時鐘脈沖生成相關的單元沒有時鐘脈沖地工作時,即以異步邏輯實現時,才開始該算法(圖2中的陰影框)。利用合適的設計,因此還可以避免后穩定性問題和競爭情況,如果利用同步硬件來實現本地邏輯(即具有本地時鐘脈沖)則將必然出現這些問題和情況。因此,總起來說,這些異步框能夠分布式地生成時鐘脈沖,接著它們將時鐘脈沖提供給它們相應的本地功能單元HW-FUn。以這樣的方式,全局時基將是可用的,例如全局時基簡化了各個功能單元之間的通信或者允許同步動作(訪問外圍設備、控制執行器等等)。圖3圖示了所建議的實現的原理。基本方框圖相應于圖2中的一個單個“陰影框”。實現的原理如下假設每個節點(在我們的情況下,即每個硬件功能單元HW-FU)實際上僅僅發送一次每個消息。這種消息正是線路上的邊沿。在這種假設下,借助在每個接收器節點處的計數器可以實施消息編號(即原始算法的“k”),每個輸入i要求一個計數器Zext,i。同時,隨著發送每個消息遞增內部計數器Zint。由于消息被同時發送給所有輸出,所以對于所有信道一個共同的計數器基本足夠了。現在根據計數器值的比較,可本地決定是否已接收一個或者可能更多具有更高k值的消息。當Zext,i>Zint時恰好是這樣的情況。如果在足夠多的信道上是這種情況,則根據算法的規則可以發送新消息(=邊緣或者邊沿)和/或本地時基增加一個時鐘脈沖local_tick。從上述描述中可以看到僅僅必需Zext,i和Zint的相對比較。因此,更容易節約用于計數器的硬件成本,而且替代地僅僅提供了隊列,從隊列中成對地去除記錄項,使得僅僅可看到差。這些隊列在異步實現中有利地(雖然不是必需地)根據[Sutherland89]實現為彈性管道。這在圖3中通過“內部管道”和“外部管道”示意性地表示。模塊“差與比較”負責來自這些管道的記錄分別成對地消耗,即同時從內部管道和外部管道中去除。如果在外部管道中有記錄,而內部管道已經為空,則顯而易見Zext,i>Zint,相應地通過以下模塊“使用算法規則”來分析。在此,必須注意的是保證始終兩個規則中僅僅其中之一被“激發”。由于讀取消息也消耗它,所以對每個信道都必須復制Zint,對所有Zint,i當發送消息時進行記錄的插入是同時進行的。所需要的管道深度從所接收的循環數量與所發送的循環數量之間的最大所期望的差來獲得,并且通過算法限制為值Θ。在此,隊列的成本可以通過使用上面所激說明的限制Θ≤2來保持在限度之內。如在軟件中實現的那樣,在此有利的是,在一個輸入端也接收自己的消息。本質上這有助于使最小執行時間不會過度短(例如通過內部連接),由于這將使Θ值變差。6.3容錯由于借助脈沖漸增地傳輸消息k,一旦出現錯誤,則將始終保持。這顯而易見地降低了解決方案的強健性。即使可以容忍多達f個這樣的錯誤,只要沒有辦法修正所發現的錯誤,則這種實現的“任務時間(MissionTime)”實際上受到限制。例如,這可以在數據層面通過偶然交換k的絕對值或節點之間的local_tick來實現。對于這種連接消息的時間上的約束由于反正已存在的容錯而完全不重要(設計僅僅針對多錯誤的可能性)。6.4頻率穩定性由于分布式時鐘發生器不用任何石英振蕩器,所以時鐘脈沖頻率的恒定性和穩定性相對低。當然,芯片總是用根據相應的工作條件的最大的頻率工作,這對內部處理是最佳的,但是這增加了與外部同步組件接口連接的難度。然而,尤其通過在TS-Net的時鐘線中集成可變延遲元件來改進頻率穩定性,這些元件在芯片制造期間或者在運行時間動態地被編程,或者實際上在工作期間被連續編程。后者的例子是由TCXO的溫度補償而公知的溫度補償,利用溫度補償,芯片溫度可以連續測量并且根據芯片特定的溫度曲線來調節延遲。使用時鐘脈沖轉換電路作為替換選擇可用,其中另外的時鐘脈沖信號從本地時鐘脈沖中得到。基于加法器的時鐘(Adder-basedClock)[SSHL97][SSHL97][SSHL97][SSHL97][SSHL97][SSHL97]可用于此(可能結合PLL或者DLL)。基于加法器的時鐘允許生成非整數的時鐘比。6.5復位與時鐘分配相同的問題導致,在大的VLSI芯片和高時鐘頻率的情況下日益難于保證在(上電)復位的情況下,所有功能單元以相同的時鐘周期開始。由于用于時鐘脈沖生成的分布式算法甚至在上電期間也保證了全局同步,所以可以輕松地實現所有功能單元的工作的完全同時開始。為此,僅僅必需等待macrotick,其中所有功能單元“忽略”開集復位完成線(open-collectorReset-Done-Leitung)每個在macrotick的開始時發現該線路不活動的FU都可以開始其工作。所保證的同步準確度保證了所有功能單元在相同的macrotick中這樣進行。所建議的解決方法的優點●電路生成其自己的時鐘脈沖,并且因此借助全系統保證的、由常數限制的同步準確度省去了本地時鐘脈沖源(振蕩器、石英晶體)。●不同于用于獲得容錯的時鐘脈沖的所有基于硬件的方法,在硬件功能單元上不要求本地時鐘脈沖發生器和PLL,并且通過分布式單元之間的相互作用而生成時鐘脈沖。●省略復雜的、耗能的時鐘樹并且也省略了用于全芯片時鐘偏差的優化的高成本。●不同于GALS方法,在本地(在microtick水平)和全局(在macrotick水平)保留同步設計范例。甚至后穩定性的問題也可以通過合適選擇macroticks來避免。●對絕對執行時間不必做任何假設。甚至在最慢和最快處理時間之間的相對差Θ也僅僅影響可以達到的精確度。●在時鐘脈沖的生成和分配期間,任意f個錯誤可以被容忍。該架構可以關于f而任意確定比例。而借助傳統的用于容錯的時鐘脈沖生成的方法,這是不可能的。●在無錯誤的條件下,通過算法使f個最慢的節點“緊跟”,即它們不會使整個系統慢下來。●由于為了實施該算法使用了異步邏輯(彈性管道,Muller-C門),所以后穩定性的問題基本上被避免。利用通常的用于使本地時鐘脈沖適應的解決方案,僅僅可以使得后穩定性足夠不可能出現,但是不能避免[Kopetz97]。●時鐘脈沖頻率本身自動地適應于相應的條件,即該芯片總是用最大頻率運行。芯片設計中或者工藝中的改變通常最多要求匹配Θ值,但是通常不要求改變時鐘脈沖生成算法。●由于分布式時鐘生成甚至在上電期間也保證了同步,所以可以在芯片上實現完全同時地開始所有功能單元的工作。與現有方法截然不同,這不需要同步復位,其中該同步復位日益難于實現在具有高時鐘頻率的大型芯片上。參考書目[Widder03]JosefWidder.Bootingclocksynchronizationinpartiallysynchronoussystems.InProceedingsofthe17thInternationalSymposiumonDistributedComputing(DISC′03),vol.2848ofLNCS,pp.121-135.Springer2003.GerardLeLannandUlrichSchmid.Howtoimplementatimer-freeperfectfailuredetectorinpartiallysynchronoussystems.TechnicalReport183/1-127,DepartmentofAutomation,TechnischeUniversittWien,April2003[Intel02]RamBhamidipati,AhmadZaidi,SivaMakineni,KahK.Low,RobertChen,Kin-YipLiuandJackDalgrehn.ChallengesandMethodologiesforImplementingHigh-PerformanceNetworkProcessors.IntelTechnologyJournalVol.06,issue03,August15,2002.IntelCorpora-tion.ChristophScherrerandAndreasSteininger.IdentifyingEfficientCombinationsofErrorDetectionMechanismsBasedonResultsofFault-InjectionExperiments.IEEETrans-actionsonComputersVol.51,No.2,February2002,pp.235-239.IEEEComputerSocietyPress.Bong-RakChoi,KyuHoParkandMyunghwanKim.AnImprovedHardwareImplementationoftheFault-TolerantClockSynchronizationAlgorithmforLargeMultiproc-essorSystems.IEEETransactionsonComputersVol.39,No.3,March1990,pp.404-407.IEEEComputerSocietyPress.D.J.VanAlenandA.K.Somani.AnAllDigitalPhaseLockedLoopFaultToler-antClock.InternationalSymposiunonCircuitsandSystems,Vol.05,June1991,pp.3170-3173.IEEEComputerSocietyPress.NageshVasanthavadaandPeterN.Marinos.SynchronizationofFault-TolerantClocksinthePresenceofMaliciousFailures.IEEETransactionsonComputersVol.37,No.4,April1988,pp.440-448.IEEEComputerSocietyPress.PaulS.Miner,PeterA.PadillaandWilfredoTorres.AProvablyCorrectDesignofaFault-TolerantClockSynchronizationCircuit.inProc.DigitalAvionicsSystemsConference,IEEE/AIAA11th,5-8Oct.1992,pp.341-346.FredB.Schneider.UnderstandingProtocolsforByzantineClockSynchroniza-tion.TechnicalReport87-859,Dept.ofComputerScience,CornellUniversity,Ithaca,N.Y.,Aug.1987.LeslieLamportandP.MMelliar-Smith.SynchronizingClocksinthePresenceofFaults.JournaloftheACM.Vol.32,pp.52-78,Jan.1985.PhillipJ.Restle,et.al.AClockDistributionNetworkforMicroprocessors.IEEEJournalofSolid-StateCircuitsVol.36,No.5,May2001,pp.792-799.IEEEComputerSocietyPress.T.K.SrikanthandS.Toueg.Optimalclocksynchronization.JournaloftheACM.Vol.34,no.3,pp.626-645,July.1987.K.G.ShinandP.Ramanathan.TransmissionDelaysinHardwareClockSynchroni-zation.IEEETransactionsonComputers.Vol.C-37,No.11,pp.1465-1467,Nov.1988.DanielM.Chapiro.Globally-AsynchronousLocally-SynchronousSystems.Ph.D.thesis,StanfordUniversity,Oct.1984.ChrisJ.Myers.AsynchronousCircuitDesign.JohnWileyandSons,July2001[Steininger04]A.Steininger,M.DelvaiandW.Huber.SynchronousandAsynchronousDesignMethods-AhardwareDesigner′sPerspective.InternationalConferenceonComputerDesign(ICCD)2004(submission).FairbanksScott(GB).Methodandapparatusforadistributedclockgenerator,USpatentno.US2004108876,[Kopetz97]H.Kopetz.RealTimeSystems-DesignPrinciplesforDistributedEmbeddedApplications.KluwerAcademicPublishers,Boston1997.CristianConstantinescu.ImpactofDeepSubmiconTechnologyonDependabilityofVLSICircuits.ProceedingsoftheInternationalConferenceonDependableSystemsandNetworks(DSN)2002.pp.205-209,June2002InternationalTechnologyRoadmapforSemiconductors2001(http://public.itrs.net)[Sutherland89]I.E.Sutherland.Micropipelines,CommunicationsoftheACM,Vol.32,No.6,Jun.1989,pp.720-738.M.SalimMazaandM.LinaresAranda.AnalysisofClockDistributionNetworksinthePresenceofCrosstalkandGroundbounce.IEEEICECS.Sep.2001,pp773-776.D.W.Dobberpuhletal.A200-Mhz64-bdualissueCMOSmicroprocessor.IEEEJournalonSolid-StateCircuits.Vol.27,pp.1555-1565,Nov1992.J.PhillipRestle,etal.TheclockdistributionofthePower4microprocessor.Solid-StateCircuitsConference,2002.ISSCC2002IEEEInternational,Vol.1,2002,pp.144-145.CharlieChung-PingChenandEdCheng.FutureSOCDesignChallengesandSolutions.InternationalSymposiumonQualityElectronicDesign.pp.534-537,March2002.EbyG.Friedman.ClockDistributionNetworksinSynchronousDigitalInte-gratedCircuits.ProceedingsoftheIEEE.Vol.89,No.5,pp.665-692,May2001.P.Ramanathan,K.G.ShinandR.W.Butler.Fault-TolerantClockSynchronizationinDistributedSystems.Computer,Vol.23,No.10,pp.30-42,Oct.1990.IEEEComputerSocietyPress.MeiliuLu,DuZhangandTadaoMurata.ADesignApproachforSelf-DiagnosisofFault-TolerantClockSynchronization.IEEETransactionsonComputers.Vol.38,Issue9,Sept.1989,pp.1337-1341.IEEEComputerSocietyPress.MartinHorauer,UlrichSchmid,KlausSchossmaier,RolandHller,NikolausKer.PSynUTC-EvaluationofaHighPrecisionTimeSynchronizationPrototypeSystemforEthernetLANs.Proceedingsofthe34th{IEEE}PreciseTimeandTimeIntervalSystemsandApplicationMeeting(PTTI′02),Reston,Virginia,December2002,pp.263-278.KlausSchossmaier,UlrichSchmid,MartinHorauer,DietmarLoy.SpecificationandImplementationoftheUniversalTimeCoordinatedSynchronizationUnit(UTCSU).Real-TimeSystems12(3),May1997,pp.295-327.Arteris,Arterisunveisstrategy,technologyforenableingNetwork-on-Chip(NoC)design,PressReleaseMarch2004,[Chelcea00]TiberiuChelceaandStevenM.Novick.ALow-LatencyFIFOforMixed-ClockSystems.IEEEComputerSocietyWorkshoponVLSI,April2000,pp.119-126.D.A.Huffman.TheSynthesisofsequentialswitchingcircuits.JournaloftheFranklinInstitute,March/April1954.S.tHauck.,AsynchronousDesignMethodologiesAnOverview.ProceedingsoftheIEEE,Vol.83,pp.69-93,1995.C.H.vanBerkel,M.JosephsandS.Nowick.ScanningtheTechnologyApplica-tionsofasynchronouscircuits.ProceedingsoftheIEEE,Vol.87,pp.223-233,1999.JiriGaisler.APortableandFault-TolerantMicroprocessorBasedontheSPARCV8Architecture.,2002.ProceedingsoftheInternationalConferenceonDependableSystemsandNetworks.June2002,pp.409-415.T.KienTruong.SingleChipFaultTolerantClockforIntegratedModularAvion-ics.16thDigitalAvionicsSystemsConference(DASC),AIAA/IEEE,Vol.1,Oct.1997,pp.2.1-36-44vol.1[LL88]J.Lundelius-WelchandN.Lynch.ANewFault-TolerantAlgorithmforClockSyn-chronization.Proc.of3rdACMSymposiumonPrinciplesofDistributedComputing,August1984,pp.75-88.JohnH.Wensleyetal.SIFTDesignandAnalysisofaFaulttolerantComputerforAircraftControl.Proc.IEEEVol.66,Oct1978.JosefWidder.DistributedComputinginthePresenceofBoundedAsynchrony.Ph.D.thesis,ViennaUniversityofTechnology.May2004.DannyDolev,JosephY.HalpernandH.RaymondStrong.OnthePossibilityandImpossibilityofAchievingClockSynchronization″.JournalofComputerandSystemSciences.Vol.32,pp.230250,1986.JenniferLundelius-WelchandNancyA.Lynch.AnUpperandLowerBoundforClockSynchronization.InformationandControl.Vol.62pp.190-204,1984.JosefWidderandUlrichSchmid.BootingClockSynchronizationinPartiallySyn-chronousSystemswithHybridNodeandLinkFailures.TechnicalReport,Nr.183/1-126,DepartrnentofAutomation,ViennaUniversityofTechnology.January2003.HermannKopetz,AndreasKrüger,DietmarMillingerandAntonSchedl.ASynchronizationStrategyforaTime-TriggeredMulticlusterReal-TimeSystem.ProceedingsReliableDistributedSystems(RDS’95),Sept.1995,BadNeuenahr,Germany權利要求1.一種在硬件系統特別是VLSI芯片、片上系統、IP核、PCB和PCB系統中用于分布式容錯時鐘脈沖生成的方法,其特征在于,●所述系統時鐘脈沖通過多個相互通信的容錯時鐘脈沖同步算法(TS-Alg)分布式地生成,而不用外部或者內部時鐘振蕩器,其方式是i.任意數量的這種TS-Alg通過時鐘脈沖信號的任意的、永久的和易受瞬時錯誤影響的網絡(TS-Net)相互交換信息,ii.將每個TS-Alg分配給一個或者更多功能單元(Fu1,Fu2,...),其中它們的本地時鐘脈沖通過TS-Alg生成,●所有本地時鐘脈沖被確保維持頻率同步,使得在給定的時段內任意兩個本地時鐘脈沖信號最大相差指定的不變數目的時鐘周期,使得可生成全局系統時鐘脈沖,全局系統時鐘脈沖使得能夠在芯片上的任意的功能單元之間進行全局同步通信,其中所述全局系統時鐘脈沖可借助合適的時鐘脈沖轉換電路(除法器等等)從任何本地時鐘脈沖中得到,●特定數量的瞬時和/或永久錯誤允許出現在TS-Alg或者TS-Net中,而不會影響所述時鐘脈沖生成和/或所述同步準確度,●系統時鐘脈沖自動地達到最大可能的頻率,所述最大可能的頻率由所使用的制造工藝、TS-Alg和TS-Net的布局和布線以及當前工作條件(溫度,電源電壓等等)來確定。2.根據權利要求1所述的方法,其特征在于,所述全局系統時鐘脈沖的可用性僅僅取決于芯片上的信號路徑的最大與最小的端到端信號延遲時間之比,而不取決于其最大值。3.根據權利要求1或者2所述的方法,其特征在于,所述已經活動的本地時鐘脈沖和因而由此得到的所述全局系統時鐘脈沖的同步準確度也在所述硬件上電期間得到保證。4.根據權利要求1至3中任一項所述的方法,其特征在于,借助異步邏輯例如彈性管道、Muller-C門等來實現。5.根據權利要求1至4中任一項所述的方法,其特征在于,通過在所述TS-Alg中使用可變的延遲元件或者特殊的時鐘脈沖轉換電路來增強所述全局系統時鐘脈沖的穩定性,其中所述當前延遲時間或者時鐘脈沖修正值●靜態地在制造時獲得,和/或●對于所述芯片的相應的應用在執行時可配置地獲得,和/或●自動地根據對所述工作參數(溫度和/或電源電壓等等)的一次或者連續測量而獲得。6.一種用于硬件系統例如芯片的不同功能單元之間的全局數據傳輸的方法,其特征在于,通過根據權利要求1至5中任一項所述的方法分布式地生成的時鐘脈沖的分頻,使全局充分同步的macrotick可用,以能夠實現無后穩定性問題的數據傳輸。7.一種用于芯片、PCB和PCB系統中的功能單元的同步復位的方法,其特征在于,基于權利要求1至5中任一項所述的方法,所述方法在復位階段期間保證了本地脈沖的全局同步,并且因此可以用于識別所有功能單元的明確的開始時刻。8.一種用于實施根據權利要求1至7中任一項所述方法的硬件系統。全文摘要本發明涉及一種在硬件系統特別是VLSI芯片、片上系統、IP核、PCB和PCB系統中用于分布式容錯時鐘脈沖生成的方法,所述方法的特征在于,(a)借助多個相互通信的容錯時鐘脈沖同步算法(TS-Alg)分布式地生成系統時鐘脈沖,而不用外部或者內部時鐘振蕩器,其方式是i)任意數量的這種TS-Alg通過時鐘脈沖信號的任意的、永久的和易受瞬時錯誤影響的網絡(TS-Net)相互交換信息,ii)每個TS-Alg與至少一個功能單元(Fu1,Fu2,…)相聯系,生成它們的本地時鐘脈沖,(b)所有本地時鐘脈沖都被確保維持頻率同步,使得在任意的時間內任意兩個本地時鐘脈沖信號相差最大為給定的不變數量的時鐘周期,使得全局系統時鐘脈沖可從每個本地時鐘脈沖中通過合適時鐘脈沖轉換電路(除法器等)的下行線路連接來得出,所述系統時鐘脈沖使芯片上的任何功能單元能夠進行全局同步通信;(c)指定數量的瞬時和/或永久誤差會出現在TS-Alg或者TS-Net中,而不影響時鐘脈沖生成和/或同步準確度;以及(d)系統時鐘脈沖自動地達到最大可能的頻率,最大可能的頻率由所使用的制造工藝、TS-Alg和TS-Net的布局和布線選擇以及工作條件(溫度,電源電壓等等)來確定。文檔編號G06F11/16GK1997969SQ200580024166公開日2007年7月11日申請日期2005年7月18日優先權日2004年7月19日發明者烏爾里希·施密德,安德烈亞斯·施泰寧格申請人:維也納科技大學