通信接口和協議的制作方法
【專利說明】通信接口和協議
[0001]本申請是申請日為2011年I月27日申請號為201180013710.2(國際申請號:PCT/US2011/022705)發明名稱為“通信接口和協議”的發明專利申請的分案申請。
技術領域
[0002]本公開內容涉及通信鏈路以及差錯檢測和處理。
【背景技術】
[0003]利用具有基于SerDes的互連的通信鏈路的系統通常需要下述電路系統,該電路系統不僅在串行數據格式和并行數據格式之間對數據進行串行化和解串行化,而且還確保通過有損信道進行準確傳輸。更具體地講,在有損信道中,由于例如符號間干擾、時鐘抖動、電源噪聲等,存在數據比特丟失的有限可能性。
[0004]在這樣的系統中,負責確保幀數據的可靠輸送的可能是數據鏈路層。然而,在許多常規系統中,與可靠性相關聯的一些功能可引發大量實現開銷。在一些系統中,由于多個開關上的多個端點的尋址、從超額開關丟棄的包、公共節點噪聲等,該實現開銷可能是必要的。因此,雖然在這樣的系統中是必要的,但是實現開銷可降低鏈路的帶寬效率,特別是當傳送較小的數據有效載荷時。因而,為了保持常規系統的帶寬利用效率,可通過發送較大的數據有效載荷來攤銷實現開銷。然而,效率的損失和實現開銷的額外成本對于主要傳送較小的數據有效載荷的系統可能是不可接受的。
【發明內容】
[0005]公開了包括通信接口的設備的各種實施例。在一個實施例中,一種裝置包括接收機單元,其可被配置為經由第一通信路徑從第二裝置的發射機單元接收數據幀。所述裝置還包括差錯檢測單元,其可被配置為檢測經由第一通信路徑接收的數據幀中的數據差錯。所述裝置另外包括應答單元,其可被配置為保持應答指示符,該應答指示符指示所述裝置經由第一串行通信路徑接收的幀是否是無差錯的。響應于差錯檢測單元在所接收的幀中檢測到數據差錯,應答單元可被配置為通過凍結應答指示符的值來指示差錯狀況存在于第一通信路徑上。此外,所述裝置可被配置為,在所述裝置正在經由第一通信路徑接收幀的同時,經由第二通信路徑連續地將應答指示符的值傳遞到第二裝置,所述應答指示符的值包括指示已從所述裝置接收到至少一個無差錯幀的至少一個值。
[0006]在一種具體實現中,應答指示符可包括計數值,該計數值指示自從初始化事件以來所述裝置接收到的無差錯幀的數量。另外,凍結應答指示符的值可使至少兩個連續的相同計數值被傳遞。
[0007]在另一種具體實現中,應答指示符可包括一個比特。在這樣的實現中,應答單元可被配置為,對于差錯檢測單元對其沒有檢測到數據差錯的每個接收的幀,切換應答指示符的狀態。此外,凍結應答指示符的值可使應答指示符的至少兩個連續的相同值被傳遞到第一駐罟
~目.ο
[0008]在另一個實施例中,一種裝置可包括發射機單元,其被配置為經由第一通信路徑將數據幀發送到第二裝置的接收機單元。所述裝置還可包括接收機單元,其可被配置為在發射機單元正在經由第一通信路徑發送幀的同時,經由第二通信路徑連續地從第二裝置接收應答指示符的值,所述應答指示符的值包括指示第二裝置的接收機單元已接收到至少一個無差錯幀的至少一個值。應答指示符的值指示第二裝置是否已經由第一通信路徑接收到無差錯幀。此外,所述裝置可包括差錯處理單元,其可被配置為響應于檢測到所述裝置的接收機單元已從第二裝置接收到應答指示符的凍結值,確定差錯狀況存在。
[0009]在一種具體實現中,差錯處理單元可進一步被配置為響應于檢測到應答指示符的至少兩個連續的相同值,確定差錯狀況存在。
【附圖說明】
[0010]圖1是在兩個設備之間包括通信鏈路的系統的一個實施例的框圖。
[0011]圖2是描繪圖1中所示的系統的通信鏈路中所使用的數據鏈路層幀協議的一個實施例的示圖。
[0012]圖3是圖1中所示的通信接口的一個實施例的框圖。
[0013]圖4A是描繪圖1和圖3中所示的通信接口的接收機單元的一個實施例的操作的流程圖。
[0014]圖4B是描繪圖1和圖3中所示的通信接口的接收機單元的另一個實施例的操作的流程圖。
[0015]圖5是描繪圖1和圖3中所示的通信接口的接收機單元的一個實施例的操作的流程圖。
[0016]圖6是描繪圖1和圖3中所示的一個通信接口的發射單元的實施例和第二通信接口的接收機單元的實施例的操作的流程圖。
[0017]具體實施例在附圖中以舉例的方式顯示,并且將在本文中進行詳細描述。然而,應該指出,附圖和【具體實施方式】并非意圖將權利要求限于所公開的具體實施例,即使在針對一個特定特征僅描述一個實施例的情況下。相反,本發明是要覆蓋對于本領域技術人員顯然具有本公開內容的益處的所有修改形式、等同形式和改變形式。本公開內容中所提供的特征的例子的意圖是說明性的,而不是限制性的,除非另有說明。
[0018]如貫穿本申請所使用的,單詞“可”是按寬泛的意義(即,意味著具有可能性)、而不是強制意義(即,意味著必須)來使用的。類似地,單詞“包括”意味著包括,但不限于。
[0019]各種單元、電路或其它組件可被描述為“被配置為”執行一個任務或多個任務。在這樣的上下文中,“被配置為”是結構的廣義敘述,一般意味著“具有在操作期間執行所述一個任務或多個任務的電路”。就這而論,單元/電路/組件可被配置為即使當該單元/電路/組件當前沒有開啟時也執行任務。通常,形成與“被配置為”對應的結構的電路系統可包括硬件電路。類似地,為了方便描述,各種單元/電路/組件可被描述為執行一個任務或多個任務。這樣的描述應該被解釋為包括措詞“被配置為”。敘述被配置為執行一個或多個任務的單元/電路/組件明確地并非意圖援引35U.S.C.§ 112第六段對單元/電路/組件的解釋。
【具體實施方式】
[0020]許多常規的通信鏈路使用刻板的肯定應答方案。在這些常規系統中,假設差錯在長潛伏期信道上相當頻繁地發生,因此,系統刻板地對每一個接收的幀進行應答。在合適的時間量內沒有被應答的任何幀被重新發送。鏈路帶寬效率是以控制的復雜性和被分配給應答信息流的更高帶寬為代價來進行優化的。這些解決方案要求更高的復雜性、窗口排隊和協議復雜性。在許多情況下,這些類型的系統用軟件驅動程序或者嵌入式控制器內的微碼來實現。窗口方法不僅在發送側需要重新發送隊列,而且還由于需要隊列保存所有幀,直到丟失幀恢復為止,增加了接收機側的潛伏期和復雜性。
[0021]現在翻到圖1,顯示了在兩個設備之間包括通信鏈路的系統的一個實施例的框圖。系統10包括經由串行通信鏈路16與另一個設備(比如,設備2)耦接的設備(比如,設備I)。設備I包括通信接口 12A,設備2包括通信接口 12B。一般來講,設備I和2均可體現任何類型的裝置,并且均可根據需要實現任何特定功能。就這點而論,實現設備I或2中的每個或者其方面的電路系統可合并在單個集成電路(IC)上或者不同的IC上。在一個示例性實施例中,一個設備(比如,設備I)可代表存儲器控制器,另一個設備(比如,設備2)可代表存儲器設備。
[0022]指出,通信鏈路(諸如通信鏈路16)指的是兩個設備之間用于傳遞信息的有線或無線的物理互連。例如,在安裝在電路板上的兩個集成電路(IC)芯片經由有線通信鏈路互連的一個實施例中,通信鏈路可包括在電路板上的任何數量的走線。因此,在圖1中所示的實施例中,通信鏈路16包括串行地將信息從設備I傳遞到設備2的單向通信路徑(比如,14A)和串行地將信息從設備2傳遞到設備I的單向通信路徑(比如,14B)。指出,在各種實施例中,在串行通信鏈路16內可能存在任何數量的單向通信路徑14A和14B。然而,還指出,在其它實施例中,通信鏈路16可改為包括任何數量的雙向串行通信路徑。可替換地,通信路徑16可包括單向串行通信路徑和雙向串行通信路徑這二者。
[0023]如以下結合圖3的描述更詳細地描述的,在一個實施例中,每個通信接口 12可包括下述邏輯,該邏輯用于從各自設備的其它電路接收事務、使用特定的數據幀格式(圖2中所示)對事務進行格式化、以及在通信鏈路16上發送和接收格式化的數據幀。另外,每個通信接口 12可被配置為對所接收的幀進行差錯檢查并且當找到差錯時凍結應答。
[0024]參照圖2,顯示了描繪可在圖1的通信鏈路16上傳遞的數據鏈路層(DLL)幀的一個實施例的示圖。幀200包括有效載荷字段201、DLL字段203、接收應答(Rx Ack)字段205和循環冗余碼(CRC)字段207。
[0025]在一個實施例中,當幀正在輸送數據(例如,讀取和寫入存儲器數據(即,分別地,用于加載或存儲))時,有效載荷字段201包括若干數據比特。然而,當幀是控制幀時,有效載荷字段201可包括控制信息,諸如一個或多個控制或命令字。在一種具體實現中,有效載荷字段201的長度可以是72個比特。然而,在其它實施例中,可使用其它數量的比特。
[0026]DLL字段203用于對接收機指示幀是否正在傳遞數據(比如,事務層信息)、或者幀是否正在傳遞控制信息(比如,數據鏈路信息)。在一個實施例中,DLL字段203可以是一個比特,而在其它實施例中,DLL字段203可以是用于指示各種類型的數據或者各種類型的控制幀的多個比特的編碼。Rx Ack字段205用于將肯定應答指示符傳遞回下述設備的發射機,該設備發送了在先前發送的幀中沒有發現差錯的幀。在一個實施例中,Rx Ack字段205可以是一個比特的Ack指示,而在其它實施例中,Rx Ack字段205可以是提供計數值的多個比特的編碼。CRC字段207用于將CRC比特從一個設備的發射機傳遞到另一個設備的接收機以用于進行差錯檢查。在一種具體實現中,CRC字段207可包括足以保護幀200的其余部分中或者如所需的一個或多個前幀中的比特數量的任何數量的比特。
[0027]翻到圖3,顯示了示出圖1的通信接口 12A和12B的一個實施例的更詳細的方面的示圖。通信接口 12A包括發射機單元301,其包括與中繼隊列310耦接的發送(Tx)請求處理者隊列305。中繼隊列310與Tx SerDes 315、鏈路控制單