用于彈性通信的技術的制作方法
【技術領域】
[0001]本發(fā)明的實施例涉及用于互連節(jié)點之間的通信。更具體地,本發(fā)明的實施例涉及可用于提供可靠的、高效的消息通信的彈性通信技術。
【背景技術】
[0002]例如在片上系統(tǒng)(SoC)的片上網絡(NoC)中的許多互連架構依賴于路由器來管理節(jié)點(例如,處理器核心、存儲器)之間的消息傳送流量。這些路由器消耗電力來運行且會占SoC的整體功耗的顯著部分。一種降低功耗的策略是降低工作電壓。然而,在低電壓下,路由器易發(fā)生動態(tài)變化,諸如電壓下降或老化效應,這樣可能會導致路由器的定時故障。運行的魯棒性通常是利用在設計時間選擇的靜態(tài)電壓防護帶來確保的。靜態(tài)電壓防護帶的使用要求較高的工作電壓且增加功耗。
【附圖說明】
[0003]在附圖中,本發(fā)明的實施例通過舉例的方式闡明,而不是通過限制的方式,在附圖中相似的附圖標記指代相似的元件。
[0004]圖1是可用來支持彈性通信技術的誤差檢測電路的一個實施例的框圖。
[0005]圖2是可用來支持彈性通信技術而不會造成高設計開銷的雙采樣誤差檢測電路的一個實施例的框圖。
[0006]圖3是配置為將數據發(fā)送到路由器/流量發(fā)生器(TG)的對動態(tài)變化有彈性的路由器的框圖。
[0007]圖4是位誤差信號來驗證接收到的數據的接收路由器(或其他設備)的框圖。
[0008]圖5是通過回滾機制來支持定時彈性的源節(jié)點的一個實施例的框圖。
[0009]圖6是電子系統(tǒng)的一個實施例的框圖。
【具體實施方式】
[0010]可以在不同的配置中使用路由器的各種實施例,其中一些可以提供誤差檢測和校正。在一個實施例中,輸入緩沖型蟲洞交換路由器架構(例如,適合于片上網絡,NoC)能夠被配置成運行為:1)具有單循環(huán)時延的路由器,2)具有兩循環(huán)時延且無彈性的路由器,或者3)具有兩循環(huán)時延和對動態(tài)變化的彈性的路由器。下面將更詳細地描述這些操作模式。
[0011]在一個實施例中,在具有彈性模式的兩循環(huán)時延中,利用可為硬件電路的誤差檢測順序(EDS)機制來檢測路由器中的定時故障處所顯現的動態(tài)變化。在一個實施例中,彈性路由器架構包括處理級的EDS,其能夠操作以保護路由器內的定時路徑。暴露于路由器內的定時故障的消息的校正能夠利用分組重放技術來實現。
[0012]在一個實施例中,EDS方案提供了應對由于雙采樣引起的軟誤差(SER)誘發(fā)事件的天然保護。另外,所公開的方案能夠預防SER有關的組合延遲推出和順序狀態(tài)丟失。
[0013]在一個實施例中,路由器(或其他部件)包括運行以保護路由器內的定時路徑的彈性增強最終級。例如,具有EDS機制的路由器運行以保護路由器內源起于輸出(例如,FIFO)隊列的所有定時路徑。在一個實施例中,通過分組重放技術來實現在路由器(或其他部件)內基于定時故障的分組(或消息或微片(flit))誤差的校正。
[0014]因為輸出級的定時故障是在消息已經發(fā)送到接收節(jié)點(例如,路由器、流量發(fā)生器)之后才確定的,所以誤差信號(例如,位、標記)隨消息而發(fā)送以表明是否已發(fā)生定時故障。因為誤差信號可以是亞穩(wěn)的,所以其在消耗之前已經鎖存在接收節(jié)點的輸入級。誤差信號作為無效信號運行以使接收節(jié)點壓制(或以其他方式不消耗或使用)對應的消息。
[0015]遭遇定時故障的發(fā)送節(jié)點(例如,路由器)通過使其狀態(tài)回滾所需數量的時鐘周期(例如,回滾到校驗點)來重放失敗的消息。在一個實施例中,兩個時鐘周期足夠。在可選的實施例中,可以支持更大的回滾范圍。在一個實施例中,這能夠通過對發(fā)送節(jié)點隔離控制和數據路徑且在發(fā)送節(jié)點中保持關鍵數據和控制狀態(tài)要素(例如,通過觸發(fā)器或鎖存器)的副本來實現。
[0016]在一個實施例中,在來自先前周期的消息在必要時用于重新發(fā)送之前仍存在且不被覆寫的正常操作期間,輸出隊列(例如,FIFO或其他類型的輸出隊列)具有足夠的未使用空間。在另一實施例中,能夠增加FIFO深度以適應用于重新發(fā)送的附加消息空間。例如,在一個實施例中,確定定時誤差,并在兩個時鐘周期內重新發(fā)送消息。發(fā)送節(jié)點回滾到先前的狀態(tài),失敗的消息重新發(fā)送到接收節(jié)點。
[0017]在一個實施例中,EDS機制中正相鎖存器的使用可以使輸出級傾向于保持時間故障。這能夠通過選擇性地緩沖通往EDS增強級的最小延遲定時路徑且將脈沖時鐘饋送給輸出級來避免,這將在下面進一步詳細地描述。在一個實施例中,輸出級接收可配置脈寬時鐘信號,其他級接收50%占空比的時鐘信號。在一個實施例中,為了減輕極低工作電壓(例如,接近閾值電壓)下的管芯內(within-die)和管芯內部(intra-die)變化的效應,可以使用具有尺寸增大的順序和組合邏輯狀態(tài)的刪節(jié)后的標準單元庫。除了重放當前源/目的地端口之外,能夠用作用于其他端口的指示器,且通過誤差記錄邏輯來觸發(fā)DVFS方案。
[0018]圖1是可用于支持彈性通信技術的誤差檢測電路的一個實施例的框圖。圖1的電路可用于生成誤差信號,該誤差信號可用于重新發(fā)送已遭遇定時故障的消息(分組、微片)。在一個實施例中,誤差檢測電路100位于路徑上的發(fā)送節(jié)點到通往接收節(jié)點的鏈路的最后一級。
[0019]誤差檢測電路100接收來自發(fā)送節(jié)點內的級的數據位。數據位被提供給高相鎖存器I1和觸發(fā)器120。高相鎖存器110在提供給輸出級的時鐘信號(參見圖3)為高時鎖存數據位,觸發(fā)器120在脈沖時鐘信號(參見圖3)從低轉變到高時鎖存數據位。
[0020]如果發(fā)生定時誤差,則來自高相鎖存器110和觸發(fā)器120的輸出信號將是不同的,這將導致門120斷言位誤差信號。如果沒有發(fā)生定時誤差,則來自高相鎖存器110和觸發(fā)器120的輸出信號將是相同的,門130不會斷言位誤差信號。
[0021]圖2是可用于支持彈性通信技術的雙采樣誤差檢測電路的一個實施例的框圖。圖2的電路可用于生成誤差信號,誤差信號可用來重新發(fā)送已經遭遇定時故障的消息(分組、微片)。在一個實施例中,誤差檢測電路200位于路徑上的發(fā)送節(jié)點到通往接收節(jié)點的鏈路的最后一級內,并且提供雙采樣,這允許在從定時故障恢復的兩個時鐘周期內保持分組和其他信息(例如,狀態(tài)信息)。在可選的實施例中,能夠保持多于兩個的樣本,例如,可以提供三采樣誤差檢測。
[0022]在一個實施例中,誤差檢測電路可以在三種模式之一下工作:1)模式0,其中主鎖存器230和從鎖存器250均打開;2)模式1,其中主鎖存器230和從鎖存器250作為觸發(fā)器工作;以及3)模式2,其中主鎖存器230打開且由從鎖存器250和觸發(fā)器210來提供雙采樣。觸發(fā)器210、主鎖存器230和從鎖存器250中的每一個均分別由邏輯門215、220和240所操作的模式信號和時鐘信號來控制。
[0023]在模式O中,誤差檢測電路200有效地對于周邊電路透明。在模式I中,誤差檢測電路200作為數據位的觸發(fā)器而工作。在模式2中,誤差檢測電路200作為在鎖存器中具有雙采樣的正相鎖存器和用于定時誤差檢測的觸發(fā)器而工作。
[0024]待發(fā)送的數據位是觸發(fā)器210和主鎖存器230的輸入信號。來自觸發(fā)器210的輸出信號提供一個輸入給邏輯門275,邏輯門275生成位誤差信號。來自主鎖存器230的輸出信號是從鎖存器250的輸入信號。來自從鎖存器250的輸出信號提供第二輸入給邏輯門275,也是待發(fā)送的數據位。
[0025]如果發(fā)生定時誤差,則來自觸發(fā)器210和從鎖存器250的輸出信號將是不同的,這將導致門275斷言位誤差信號。如果沒有發(fā)生定時誤差,則來自觸發(fā)器210和從鎖存器250的輸出信號將是相同的,門275將不斷言位誤差信號。