專利名稱:通信接口和協(xié)議的制作方法
技術(shù)領(lǐng)域:
本公開內(nèi)容涉及通信鏈路以及差錯檢測和處理。
背景技術(shù):
利用具有基于SerDes的互連的通信鏈路的系統(tǒng)通常需要下述電路系統(tǒng),該電路系統(tǒng)不僅在串行數(shù)據(jù)格式和并行數(shù)據(jù)格式之間對數(shù)據(jù)進(jìn)行串行化和解串行化,而且還確保通過有損信道進(jìn)行準(zhǔn)確傳輸。更具體地講,在有損信道中,由于例如符號間干擾、時鐘抖動、電源噪聲等,存在數(shù)據(jù)比特丟失的有限可能性。在這樣的系統(tǒng)中,負(fù)責(zé)確保幀數(shù)據(jù)的可靠輸送的可能是數(shù)據(jù)鏈路層。然而,在許多常規(guī)系統(tǒng)中,與可靠性相關(guān)聯(lián)的一些功能可引發(fā)大量實現(xiàn)開銷。在一些系統(tǒng)中,由于多個 開關(guān)上的多個端點的尋址、從超額開關(guān)丟棄的包、公共節(jié)點噪聲等,該實現(xiàn)開銷可能是必要的。因此,雖然在這樣的系統(tǒng)中是必要的,但是實現(xiàn)開銷可降低鏈路的帶寬效率,特別是當(dāng)傳送較小的數(shù)據(jù)有效載荷時。因而,為了保持常規(guī)系統(tǒng)的帶寬利用效率,可通過發(fā)送較大的數(shù)據(jù)有效載荷來攤銷實現(xiàn)開銷。然而,效率的損失和實現(xiàn)開銷的額外成本對于主要傳送較小的數(shù)據(jù)有效載荷的系統(tǒng)可能是不可接受的。
發(fā)明內(nèi)容
公開了包括通信接口的設(shè)備的各種實施例。在一個實施例中,一種裝置包括接收機(jī)單元,其可被配置為經(jīng)由第一通信路徑從第二裝置的發(fā)射機(jī)單元接收數(shù)據(jù)幀。所述裝置還包括差錯檢測單元,其可被配置為檢測經(jīng)由第一通信路徑接收的數(shù)據(jù)幀中的數(shù)據(jù)差錯。所述裝置另外包括應(yīng)答單元,其可被配置為保持應(yīng)答指示符,該應(yīng)答指示符指示所述裝置經(jīng)由第一串行通信路徑接收的幀是否是無差錯的。響應(yīng)于差錯檢測單元在所接收的幀中檢測到數(shù)據(jù)差錯,應(yīng)答單元可被配置為通過凍結(jié)應(yīng)答指示符的值來指示差錯狀況存在于第一通信路徑上。此外,所述裝置可被配置為,在所述裝置正在經(jīng)由第一通信路徑接收幀的同時,經(jīng)由第二通信路徑連續(xù)地將應(yīng)答指示符的值傳遞到第二裝置,所述應(yīng)答指示符的值包括指示已從所述裝置接收到至少一個無差錯幀的至少一個值。在一種具體實現(xiàn)中,應(yīng)答指示符可包括計數(shù)值,該計數(shù)值指示自從初始化事件以來所述裝置接收到的無差錯幀的數(shù)量。另外,凍結(jié)應(yīng)答指示符的值可使至少兩個連續(xù)的相同計數(shù)值被傳遞。在另一種具體實現(xiàn)中,應(yīng)答指示符可包括一個比特。在這樣的實現(xiàn)中,應(yīng)答單元可被配置為,對于差錯檢測單元對其沒有檢測到數(shù)據(jù)差錯的每個接收的幀,切換應(yīng)答指示符的狀態(tài)。此外,凍結(jié)應(yīng)答指示符的值可使應(yīng)答指示符的至少兩個連續(xù)的相同值被傳遞到第
—目.ο在另一個實施例中,一種裝置可包括發(fā)射機(jī)單元,其被配置為經(jīng)由第一通信路徑將數(shù)據(jù)幀發(fā)送到第二裝置的接收機(jī)單元。所述裝置還可包括接收機(jī)單元,其可被配置為在發(fā)射機(jī)單元正在經(jīng)由第一通信路徑發(fā)送幀的同時,經(jīng)由第二通信路徑連續(xù)地從第二裝置接收應(yīng)答指示符的值,所述應(yīng)答指示符的值包括指示第二裝置的接收機(jī)單元已接收到至少一個無差錯幀的至少一個值。應(yīng)答指示符的值指示第二裝置是否已經(jīng)由第一通信路徑接收到無差錯幀。此外,所述裝置可包括差錯處理單元,其可被配置為響應(yīng)于檢測到所述裝置的接收機(jī)單元已從第二裝置接收到應(yīng)答指示符的凍結(jié)值,確定差錯狀況存在。在一種具體實現(xiàn)中,差錯處理單元可進(jìn)一步被配置為響應(yīng)于檢測到應(yīng)答指示符的至少兩個連續(xù)的相同值,確定差錯狀況存在。
圖1是在兩個設(shè)備之間包括通信鏈路的系統(tǒng)的一個實施例的框圖。圖2是描繪圖1中所示的系統(tǒng)的通信鏈路中所使用的數(shù)據(jù)鏈路層幀協(xié)議的一個實施例的示圖。
圖3是圖1中所示的通信接口的一個實施例的框圖。圖4A是描繪圖1和圖3中所示的通信接口的接收機(jī)單元的一個實施例的操作的流程圖。圖4B是描繪圖1和圖3中所示的通信接口的接收機(jī)單元的另一個實施例的操作的流程圖。圖5是描繪圖1和圖3中所示的通信接口的接收機(jī)單元的一個實施例的操作的流程圖。圖6是描繪圖1和圖3中所示的一個通信接口的發(fā)射單元的實施例和第二通信接口的接收機(jī)單元的實施例的操作的流程圖。具體實施例在附圖中以舉例的方式顯示,并且將在本文中進(jìn)行詳細(xì)描述。然而,應(yīng)該指出,附圖和具體實施方式
并非意圖將權(quán)利要求限于所公開的具體實施例,即使在針對一個特定特征僅描述一個實施例的情況下。相反,本發(fā)明是要覆蓋對于本領(lǐng)域技術(shù)人員顯然具有本公開內(nèi)容的益處的所有修改形式、等同形式和改變形式。本公開內(nèi)容中所提供的特征的例子的意圖是說明性的,而不是限制性的,除非另有說明。如貫穿本申請所使用的,單詞“可”是按寬泛的意義(S卩,意味著具有可能性)、而不是強制意義(即,意味著必須)來使用的。類似地,單詞“包括”意味著包括,但不限于。各種單元、電路或其它組件可被描述為“被配置為”執(zhí)行一個任務(wù)或多個任務(wù)。在這樣的上下文中,“被配置為”是結(jié)構(gòu)的廣義敘述,一般意味著“具有在操作期間執(zhí)行所述一個任務(wù)或多個任務(wù)的電路”。就這而論,單元/電路/組件可被配置為即使當(dāng)該單元/電路/組件當(dāng)前沒有開啟時也執(zhí)行任務(wù)。通常,形成與“被配置為”對應(yīng)的結(jié)構(gòu)的電路系統(tǒng)可包括硬件電路。類似地,為了方便描述,各種單元/電路/組件可被描述為執(zhí)行一個任務(wù)或多個任務(wù)。這樣的描述應(yīng)該被解釋為包括措詞“被配置為”。敘述被配置為執(zhí)行一個或多個任務(wù)的單元/電路/組件明確地并非意圖援引35U.S.C. § 112第六段對單元/電路/組件的解釋。
具體實施例方式許多常規(guī)的通信鏈路使用刻板的肯定應(yīng)答方案。在這些常規(guī)系統(tǒng)中,假設(shè)差錯在長潛伏期信道上相當(dāng)頻繁地發(fā)生,因此,系統(tǒng)刻板地對每一個接收的幀進(jìn)行應(yīng)答。在合適的時間量內(nèi)沒有被應(yīng)答的任何幀被重新發(fā)送。鏈路帶寬效率是以控制的復(fù)雜性和被分配給應(yīng)答信息流的更高帶寬為代價來進(jìn)行優(yōu)化的。這些解決方案要求更高的復(fù)雜性、窗口排隊和協(xié)議復(fù)雜性。在許多情況下,這些類型的系統(tǒng)用軟件驅(qū)動程序或者嵌入式控制器內(nèi)的微碼來實現(xiàn)。窗口方法不僅在發(fā)送側(cè)需要重新發(fā)送隊列,而且還由于需要隊列保存所有幀,直到丟失幀恢復(fù)為止,增加了接收機(jī)側(cè)的潛伏期和復(fù)雜性。現(xiàn)在翻到圖1,顯示了在兩個設(shè)備之間包括通信鏈路的系統(tǒng)的一個實施例的框圖。系統(tǒng)10包括經(jīng)由串行通信鏈路16與另一個設(shè)備(比如,設(shè)備2)耦接的設(shè)備(比如,設(shè)備I)。設(shè)備I包括通信接口 12A,設(shè)備2包括通信接口 12B。一般來講,設(shè)備I和2均可體現(xiàn)任何類型的裝置,并且均可根據(jù)需要實現(xiàn)任何特定功能。就這點而論,實現(xiàn)設(shè)備I或2中的每個或者其方面的電路系統(tǒng)可合并在單個集成電路(IC)上或者不同的IC上。在一個示例性實施例中,一個設(shè)備(比如,設(shè)備I)可代表存儲器控制器,另一個設(shè)備(比如,設(shè)備2 )可代表存儲器設(shè)備。指出,通信鏈路(諸如通信鏈路16)指的是兩個設(shè)備之間用于傳遞信息的有線或無 線的物理互連。例如,在安裝在電路板上的兩個集成電路(IC)芯片經(jīng)由有線通信鏈路互連的一個實施例中,通信鏈路可包括在電路板上的任何數(shù)量的走線。因此,在圖1中所示的實施例中,通信鏈路16包括串行地將信息從設(shè)備I傳遞到設(shè)備2的單向通信路徑(比如,14A)和串行地將信息從設(shè)備2傳遞到設(shè)備I的單向通信路徑(比如,14B)。指出,在各種實施例中,在串行通信鏈路16內(nèi)可能存在任何數(shù)量的單向通信路徑14A和14B。然而,還指出,在其它實施例中,通信鏈路16可改為包括任何數(shù)量的雙向串行通信路徑。可替換地,通信路徑16可包括單向串行通信路徑和雙向串行通信路徑這二者。如以下結(jié)合圖3的描述更詳細(xì)地描述的,在一個實施例中,每個通信接口 12可包括下述邏輯,該邏輯用于從各自設(shè)備的其它電路接收事務(wù)、使用特定的數(shù)據(jù)幀格式(圖2中所示)對事務(wù)進(jìn)行格式化、以及在通信鏈路16上發(fā)送和接收格式化的數(shù)據(jù)幀。另外,每個通信接口 12可被配置為對所接收的幀進(jìn)行差錯檢查并且當(dāng)找到差錯時凍結(jié)應(yīng)答。參照圖2,顯示了描繪可在圖1的通信鏈路16上傳遞的數(shù)據(jù)鏈路層(DLL)幀的一個實施例的示圖。幀200包括有效載荷字段201、DLL字段203、接收應(yīng)答(Rx Ack)字段205和循環(huán)冗余碼(CRC)字段207。在一個實施例中,當(dāng)幀正在輸送數(shù)據(jù)(例如,讀取和寫入存儲器數(shù)據(jù)(S卩,分別地,用于加載或存儲))時,有效載荷字段201包括若干數(shù)據(jù)比特。然而,當(dāng)幀是控制幀時,有效載荷字段201可包括控制信息,諸如一個或多個控制或命令字。在一種具體實現(xiàn)中,有效載荷字段201的長度可以是72個比特。然而,在其它實施例中,可使用其它數(shù)量的比特。DLL字段203用于對接收機(jī)指示幀是否正在傳遞數(shù)據(jù)(比如,事務(wù)層信息)、或者幀是否正在傳遞控制信息(比如,數(shù)據(jù)鏈路信息)。在一個實施例中,DLL字段203可以是一個比特,而在其它實施例中,DLL字段203可以是用于指示各種類型的數(shù)據(jù)或者各種類型的控制幀的多個比特的編碼。Rx Ack字段205用于將肯定應(yīng)答指示符傳遞回下述設(shè)備的發(fā)射機(jī),該設(shè)備發(fā)送了在先前發(fā)送的幀中沒有發(fā)現(xiàn)差錯的幀。在一個實施例中,Rx Ack字段205可以是一個比特的Ack指示,而在其它實施例中,Rx Ack字段205可以是提供計數(shù)值的多個比特的編碼。CRC字段207用于將CRC比特從一個設(shè)備的發(fā)射機(jī)傳遞到另一個設(shè)備的接收機(jī)以用于進(jìn)行差錯檢查。在一種具體實現(xiàn)中,CRC字段207可包括足以保護(hù)幀200的其余部分中或者如所需的一個或多個前幀中的比特數(shù)量的任何數(shù)量的比特。翻到圖3,顯示了示出圖1的通信接口 12A和12B的一個實施例的更詳細(xì)的方面的示圖。通信接口 12A包括發(fā)射機(jī)單元301,其包括與中繼隊列310耦接的發(fā)送(Tx)請求處理者隊列305。中繼隊列310與Tx SerDes 315、鏈路控制單元345和CRC產(chǎn)生器320耦接,CRC產(chǎn)生器320也與Tx SerDes 315耦接。Tx SerDes 315經(jīng)由通信鏈路16的通信通道14A與通信接口 12B的Rx SerDes 350耦接。指出,在一些實施例中,可在沒有中繼隊列310的情況下操作發(fā)射機(jī)單元301。通信接口 12A還包括接收機(jī)單元302,其包括與差錯處理單元335耦接的RxSerDes 330,差錯處理單元335又與鏈路控制單元345和中繼隊列310耦接。差錯處理單元335還與前Ack指示符儲存器325耦接。設(shè)備12B的接收機(jī)單元303包括Rx SerDes 350,其與RX目標(biāo)處理者隊列365和 CRC差錯檢查單元355耦接。CRC差錯檢查單元355與Rx Ack產(chǎn)生器單元360耦接。RxAck產(chǎn)生器單元360與設(shè)備12B的發(fā)射機(jī)單元304的Tx SerDes 370耦接。Tx SerDes 370經(jīng)由通信鏈路16的通信通道14B與設(shè)備12A的Rx SerDes 330耦接。在一個實施例中,Tx請求處理者隊列305可存儲從例如設(shè)備I的其它電路部分接收的事務(wù)。在使用中繼隊列310的實現(xiàn)中,將被發(fā)送的事務(wù)可被存儲在中繼隊列310中。每個事務(wù)可被格式化為例如圖2中所示的幀格式,并且被存儲在Tx SerDes 315的Tx隊列317內(nèi)。在一個實施例中,CRC產(chǎn)生器320可基于幀中的其余比特來產(chǎn)生CRC,然后可將該CRC附加到該幀。在另一個實施例中,為了提供更強的差錯檢測,CRC產(chǎn)生器320可基于兩個幀來產(chǎn)生CRC,并且創(chuàng)建比將單獨地剛好放入任一幀的CRC字段207內(nèi)大的CRC。在這樣的實施例中,CRC可以用兩個幀來傳遞。具體地講,CRC可基于兩個幀來產(chǎn)生,然后用后面的兩個幀來傳遞。因此,用于兩個幀的完整CRC將落后于其CRC已產(chǎn)生的兩個幀。在又一個實施例中,CRC產(chǎn)生器320可基于前一幀來產(chǎn)生CRC。因此,在這樣的實施例中,CRC產(chǎn)生器320可基于一個幀中的其余比特來產(chǎn)生CRC,然后可在下一幀的CRC字段207中發(fā)送該CRC。因而,用于給定幀的CRC將落后于其CRC已用一個幀產(chǎn)生的幀。在各種實施例中,CRC可以在存儲在Tx隊列317中之前或之后被附加到幀。其它邏輯(諸如鏈路控制單元345)可根據(jù)幀是數(shù)據(jù)幀還是控制幀來控制該幀的DLL指示203。更具體地講,在一個實施例中,如果幀是數(shù)據(jù)幀,則可將DLL指示清除為邏輯值0,并且如果幀是控制幀(諸如恢復(fù)或中繼幀),則可將DLL指示設(shè)置為邏輯值I。指出,在其它實施例中,DLL指示的邏輯值可反過來,以使得如果幀是控制幀,則可將DLL指示清除為邏輯值0,反之亦然。另外,通信設(shè)備12A (未顯示)內(nèi)的與通信接口 12B中所示的邏輯類似的邏輯可對將被通信設(shè)備12A發(fā)送的每個幀產(chǎn)生合適的RxAck指示符(以下進(jìn)一步描述)。格式化的幀可被Tx SerDes 315經(jīng)由通信路徑14A發(fā)送到RxSerDes 350。CRC差錯檢查單元355可對每個幀進(jìn)行差錯檢查。在一個實施例中,CRC差錯檢查單元355可通過下述方式來檢測所接收的幀中的差錯,即,從所接收的幀產(chǎn)生CRC值,并且將新近產(chǎn)生的CRC值與該幀中傳遞的CRC值進(jìn)行比較。如果沒有檢測到差錯,則每個幀的有效載荷可被轉(zhuǎn)發(fā)到Rx處理者隊列365。另外,CRC差錯檢查單元355可向Rx Ack產(chǎn)生器單元360通知差錯是否存在于當(dāng)前幀中。在一個實施例中,如果存在差錯,則CRC差錯檢查單元355可向RxAck產(chǎn)生器單元360提供指示存在差錯的凍結(jié)信號,如果不存在差錯,則CRC差錯檢查單元355可向Rx Ack產(chǎn)生器單元360提供Ack信號。然而,在其它實施例中,可使用一個差錯/無差錯信號。作為響應(yīng),RxAck產(chǎn)生器單元360可產(chǎn)生Rx Ack指示符的合適值,并且將該值發(fā)送到Tx SerDes 370。Tx SerDes 370可使用一個或多個幀將該Rx Ack指示符發(fā)送到通信接口 12A。更具體地講,Rx Ack產(chǎn)生器單元360可保持應(yīng)答指示符,該應(yīng)答指示符指示RxSerDes 350接收到的幀是否是無差錯的。因此,在一個實施例中,每次接收到無差錯幀并且CRC差錯檢查單元355發(fā)送Ack信號,Rx Ack產(chǎn)生器單元360就可更新(比如,增加)正在運行的計數(shù)值,該計數(shù)值指示自從通信鏈路16被初始化或重新初始化以來接收到的無差錯幀的數(shù)量。然而,如果CRC差錯檢查單元355檢測到差錯并且發(fā)送凍結(jié)信號,則Rx Ack產(chǎn)生單元360可凍結(jié)計數(shù)值,并且將凍結(jié)的計數(shù)值提供 給Tx SerDes 370。因而,在這樣的實施例中,Rx Ack指示符可對應(yīng)于計數(shù)值。在一個實施例中,每個巾貞中的Rx Ack字段205可僅傳遞一個比特的值。就這點而言,可使用若干個幀來發(fā)送一個比特的計數(shù)值。例如,如果計數(shù)值為1011b,則Rx Ack產(chǎn)生器360可一次一個比特地將該計數(shù)值提供給Tx SerDes370,Tx SerDes370使用4個幀一次一個比特地發(fā)送該計數(shù)值。在一個實施例中,RxAck產(chǎn)生器360可連續(xù)地將每個新的計數(shù)值提供給Tx SerDes 370,并且差錯處理單元355可被配置為記錄哪些巾貞包括有效的Rx Ack指示計數(shù)值。因此,凍結(jié)計數(shù)值指的是阻止計數(shù)值改變。因而,當(dāng)凍結(jié)的計數(shù)值被連續(xù)地發(fā)送到Tx SerDes 370時,接收機(jī)單元302可通過至少連續(xù)兩次“查看”同一計數(shù)值來檢測差錯狀況。在一個實施例中,在通信鏈路16的初始化事件期間,計數(shù)值可被初始化為初始值,諸如O (或者一些其它預(yù)定的初始值)。當(dāng)接收到無差錯幀時,可增加計數(shù)值。如果接收到例如11個幀并且在第12幀中檢測到差錯,則Rx Ack產(chǎn)生器360可將計數(shù)值凍結(jié)為11,并且連續(xù)地將該凍結(jié)的計數(shù)值(即,11)提供給Tx SerDes 370,直到通信鏈路在恢復(fù)操作中再次被初始化、或者幀被中繼為止。在另一個實施例中,在每個幀中發(fā)送的Rx Ack指示符可以是每次接收到無差錯幀時就被切換的一個比特。就這點而論,Rx Ack產(chǎn)生器單元360每次可簡單地切換Ack指示符,并且在差錯的情況下,RxAck產(chǎn)生器360可將Ack指示符凍結(jié)為最后切換的值。在以上實施例中,凍結(jié)計數(shù)值指的是阻止計數(shù)值切換。在一個實施例中,在通信鏈路16的初始化事件期間,Rx Ack指示符值可被初始化為初始值,諸如O (或一些其它預(yù)定的初始值)。當(dāng)接收到每個無差錯幀時,Rx Ack指示符值可被切換。如果檢測到差錯,則RxAck產(chǎn)生器單元360可將Rx Ack指示符值凍結(jié)為最后的Rx Ack指示符值,并且連續(xù)地將該凍結(jié)的Rx Ack指示符值提供給Tx SerDes 370,直到通信鏈路在恢復(fù)操作中再次被初始化、或者幀被中繼為止。在又一個實施例中,Rx Ack指示符可以是一個比特,該比特保持相同,只要幀被發(fā)現(xiàn)是無差錯的。當(dāng)檢測到差錯時,Rx Ack產(chǎn)生器360可切換最后的Rx Ack值。可替換地,Rx Ack產(chǎn)生器360可使Rx Ack指示符值被設(shè)置為不同的值,諸如預(yù)定差錯值。Rx SerDes 330可將來自所接收的一個幀(多個幀)的Rx Ack字段205中的指示符遞送到差錯處理單元335。差錯處理單元335可被配置為,從所接收的連續(xù)的Rx Ack指示符創(chuàng)建新的Rx Ack指示符(比如,多個比特的計數(shù)值),并且將新的Rx Ack指示符(當(dāng)它有效時)與存儲在前Ack指示符儲存器325中的前Rx Ack指示符進(jìn)行比較。當(dāng)比較完成時,可將新的Rx Ack指示符存儲在前Ack指示符儲存器325中以用于下一次比較。在Rx Ack指示符是多個比特的計數(shù)值的實施例中,如果兩個連續(xù)的RxAck指示符計數(shù)值相同(即,凍結(jié)的Rx Ack指示符),則差錯處理單元335可確定差錯已發(fā)生。在RxAck指示符是切換比特的實施例中,如果Rx Ack指示符對于兩個連續(xù)幀具有相同的值(SP,凍結(jié)的Rx Ack指示符),則差錯處理單元335可確定差錯已發(fā)生。在Rx Ack指示符值是保持相同、直到差錯發(fā)生為止的值的實施例中,如果Rx Ack指示符值在任何兩個連續(xù)幀上不同,或者如果Rx Ack指示符值被設(shè)置為預(yù)定差錯值,則 差錯處理單元335可確定差錯已發(fā)生。如上所述,根據(jù)實現(xiàn),如果Rx Ack指示符值在任何兩個連續(xù)巾貞上不同,或者如果RxAck指示符值被設(shè)置為預(yù)定差錯值,則由于凍結(jié)的Rx Ack指示符,差錯處理單元335可檢測到差錯已發(fā)生。然而,接收機(jī)肯定地對所有幀進(jìn)行應(yīng)答可能不是必要的。更具體地講,在一個實施例中,控制幀(即,具有指示幀是控制幀的DLL比特的幀)可以不肯定地被接收機(jī)應(yīng)答。在這樣的實施例中,Rx SerDes 303可檢測控制巾貞,并且當(dāng)接收到無差錯控制巾貞時,向接收機(jī)單元303中的Rx Ack產(chǎn)生器360通知不增加或改變(或者在一個實施例中,不保持相同)。如果在控制幀中檢測到差錯,則可簡單地拋棄它們。因而,對于設(shè)備12A將表現(xiàn)為Rx Ack指示符被凍結(jié),即使它沒有被凍結(jié)。因此,如此使得設(shè)備12A正確地檢測差錯狀況,在這樣的實施例中,鏈路控制單元345可記錄控制幀的數(shù)量和發(fā)送的數(shù)據(jù)幀的數(shù)量,同時還說明往返延遲。在一個實施例中,為了產(chǎn)生校正的Ack值,鏈路控制單元345可實現(xiàn)簡單的固定長度延遲的FIFO (未顯示),其匹配事務(wù)發(fā)送計數(shù)器與所接收的Rx Ack指示符之間的往返延遲(鏈路初始化時)。在另一個實施例中,鏈路控制單元345可實現(xiàn)下述計數(shù)器和邏輯,該計數(shù)器和邏輯跟蹤在設(shè)備12A與12B之間飛行的幀數(shù),以創(chuàng)建校正的Ack值。在一個實施例中,鏈路控制單元345可將校正的Ack值提供給差錯處理單元335,以用于存儲在前Ack指示符儲存器325中。在一個實施例中,差錯處理單元335可使用該值來修改存儲在前Ack指示符儲存器325中的值,或者可替換地,使用校正的Ack值,而不是儲存器325中的值。如果檢測到差錯,則差錯處理單元335通知鏈路控制單元345。在一個實施例中,鏈路控制單元345可通過例如下述方式來發(fā)起中繼操作,即,發(fā)送一個或多個控制幀,以向通信接口 12B的接收機(jī)部分指示中繼幀將被發(fā)送并且對接收機(jī)操作進(jìn)行解凍。在一個實施例中,鏈路控制單元345可使DLL指示203指示幀是控制幀(比如,使DLL比特被設(shè)置),并且提供用于在該幀的有效載荷字段201中發(fā)送的預(yù)定控制信號。所述預(yù)定信息可以是例如指示下幾幀是中繼數(shù)據(jù)幀的控制字。中繼隊列310中的事務(wù)可被重新格式化為圖2的幀格式,CRC可被附加到格式化的幀,并且該幀可被發(fā)送。作為響應(yīng),接收機(jī)單元可將Rx Ack指示符值重置或重新初始化為初始值。鏈路控制單元345然后可使中繼隊列310中的對應(yīng)事務(wù)被重新發(fā)送。在一個實施例中,中繼隊列310可利用發(fā)送指針和寫指針,發(fā)送指針指向在中繼期間將被重新發(fā)送的下一事務(wù),寫指針指向新的事務(wù)將被寫入的下一位置。中繼隊列可以大得足以經(jīng)由Rx Ack回路時間來適應(yīng)設(shè)備之間的往返延遲。當(dāng)新事務(wù)到達(dá)并且被發(fā)送時,中繼隊列中的項目可被覆寫,因為按照定義,它們被假設(shè)已被成功地發(fā)送。當(dāng)檢測到差錯時,凍結(jié)的Rx Ack計數(shù)值可用于將Tx指針重置為Rx計數(shù)值加1,并且中繼可從該位置開始。在不使用中繼隊列的實施例中,鏈路控制單元345可使DLL指示203指示幀是控制幀(比如,使DLL指示被設(shè)置),并且提供用于在幀的有效載荷字段201中發(fā)送的預(yù)定控制信息。所述預(yù)定信息可以是例如對通信接口 12B的接收機(jī)單元進(jìn)行解凍和/或重新初始化的“恢復(fù)”控制字。另外,所述控制信息還可以是數(shù)據(jù)鏈路消息,諸如設(shè)備狀態(tài)查詢、空閑、或暫停消息。在圖4A中,顯示了描述圖1和圖3中所示的通信接口的接收機(jī)單元302的一個實施例的操作的流程圖。共同參照圖1至圖4,在一個實施例中,在圖4的塊401中開始,當(dāng)Rx SerDes 330接收到每個幀時,將Rx Ack指示符值轉(zhuǎn)發(fā)到差錯處理單元335。在Rx Ack是多個比特的計數(shù)值的實施例中,差錯處理單元335可使用例如移位寄存器來保存每個RxAck值以形成多個比特的計數(shù)值,該多個比特的技術(shù)值是新的Rx Ack指示符值。差錯處理單元335然后可將新的Rx Ack指示符值與存儲在前Rx Ack指示符儲存器325中的計數(shù)值 進(jìn)行比較(塊403)。在Rx Ack指示符是每次切換的一個比特的實施例中,差錯處理單元335可將每一個比特與前Rx Ack指示符進(jìn)行比較。如果該值在比較期間不同,則操作如以上結(jié)合塊401的描述所述的那樣繼續(xù)進(jìn)行。如果新的Rx Ack指示符值與前Rx Ack指示符相同(塊405),則差錯處理單元335發(fā)起差錯處理(塊407)。例如,如上所述,差錯處理單元335可向數(shù)據(jù)鏈路控制單元345通知存在差錯并且發(fā)起中繼操作或者發(fā)出恢復(fù)操作。在一個實施例中,差錯處理單元335可向上游設(shè)備邏輯通知差錯,以使得該設(shè)備邏輯可對丟失的事務(wù)采取合適的決策。圖4B中所示的流程圖描述了圖1和圖3中所示的通信接口的接收機(jī)單元302的另一個實施例的操作。共同參照圖1至圖4,在一個實施例中,在圖4B的塊411中開始,當(dāng)Rx SerDes 330接收到每個幀時,將Rx Ack指示符值轉(zhuǎn)發(fā)到差錯處理單元335。差錯處理單元335然后可將新的Rx Ack指示符值與存儲在前Rx Ack指示符儲存器325中的值進(jìn)行比較(塊413)。如果該值在比較期間相同,則操作如以上結(jié)合塊411的描述所述的那樣繼續(xù)進(jìn)行。如果新的Rx Ack指示符值不同于前Rx Ack指示符值,或者如果新的Rx Ack指示符值被設(shè)置為預(yù)定差錯值(塊415),則差錯處理單元335發(fā)起差錯處理(塊417)。例如,如上所述,差錯處理單元335可向數(shù)據(jù)鏈路控制單元345通知存在差錯并且發(fā)起中繼操作或者發(fā)出恢復(fù)操作。在一個實施例中,差錯處理單元335可向上游設(shè)備邏輯通知差錯,以使得該設(shè)備邏輯可對丟失的事務(wù)采取合適的決策。在圖5中,顯示了描述圖1和圖3中所示的通信接口的接收機(jī)單元的一個實施例的操作的流程圖。共同參照圖1至圖3和圖5,在一個實施例中,在圖5的塊501中開始,Rx SerDes 350經(jīng)由通信路徑(比如,14A)接收幀。CRC差錯檢查單元355可對該幀進(jìn)行差錯檢查(塊503)。在一個實施例中,CRC差錯檢查單元355從所接收的幀產(chǎn)生CRC,并且將新的CRC與在該幀中接收的CRC進(jìn)行比較。如果該幀不具有差錯(塊505),并且接收機(jī)Ack狀態(tài)沒有被凍結(jié)(塊507),則將該幀轉(zhuǎn)發(fā)到Rx目標(biāo)處理者隊列365,以用于進(jìn)一步處理(塊509)。另外,CRC差錯檢查單元355向Rx Ack產(chǎn)生器單元360通知更新或改變Rx Ack指示符(塊511)。在一個實施例中,Rx Ack產(chǎn)生器單元360可保持并增加正在運行的多個比特的計數(shù)值(即,Rx Ack指示符),該多個比特的計數(shù)值代表自從初始化事件(B卩,通信鏈路16最后一次被初始化或重新初始化)以來接收到的無差錯幀的數(shù)量。在另一個實施例中,Rx Ack產(chǎn)生器單元360可僅切換一個比特的Rx Ack指示符值。Rx Ack指示符被轉(zhuǎn)發(fā)到TXSerDes 370,以用于在通信路徑14B上發(fā)送。在使用多個比特的計數(shù)值作為Rx Ack指示符的實施例中,TX SerDes 370可如上所述那樣在單獨的幀中發(fā)送每個比特(塊513),而在一個比特的實施例中,TX SerDes 370可發(fā)送單個Rx Ack值。返回參照塊505,如果存在差錯,則CRC差錯檢查單元355向Rx Ack產(chǎn)生器單元360和Rx SerDes 350通知差錯。Rx Ack產(chǎn)生器單元360可凍結(jié)Ack狀態(tài)和Rx Ack指示符值(塊515)。凍結(jié)的Rx Ack指示符可被轉(zhuǎn)發(fā)到TX SerDes 370,以用于在通信路徑14B上發(fā)送。Rx SerDes 350可拋棄當(dāng)前幀,阻止將后面任何幀轉(zhuǎn)發(fā)到Rx目標(biāo)處理者隊列365(塊517),并且繼續(xù)發(fā)送凍結(jié)的Rx Ack指示符值,直到另一個設(shè)備如上所述那樣開始中繼或者重新初始化通信鏈路16為止。
因此,返回參照塊507,如果接收機(jī)接收到幀并且Ack狀態(tài)被凍結(jié),并且Rx SerDes350確定該幀不是控制幀(塊519),則Rx SerDes350丟棄該幀(塊521)。然而,如果幀是控制幀(比如,在有效載荷中包括合適的鏈路控制信息的幀)(塊519),則Rx SerDes 350可清除Ack狀態(tài)并且重置Rx Ack指示符值(塊523)。如上所述,控制幀可指示后面跟著中繼數(shù)據(jù)幀或者恢復(fù)接收標(biāo)準(zhǔn)數(shù)據(jù)幀。類似地,在另一個實施例中,即使Ack狀態(tài)被凍結(jié),如果所有控制幀都是無差錯的,則也可對它們?nèi)窟M(jìn)行處理。指出,如上所述,在可替換實施例中,Rx Ack指示符值可以是在所接收的幀中沒有檢測到差錯時保持不變的值(比如,一個比特的值)。該值被重復(fù)地發(fā)送以指示該無差錯狀態(tài)。當(dāng)在所接收的幀中檢測到差錯時,Rx Ack產(chǎn)生器單元360改變該值(比如,將該值變?yōu)轭A(yù)定差錯值)。在這些可替換實施例中的某些實施例中,當(dāng)在塊625中檢測到差錯時,可凍結(jié)Ack狀態(tài),并且,不是凍結(jié)Ack值,而是Rx Ack產(chǎn)生器單元360可改變Ack值(比如,將該值變?yōu)轭A(yù)定差錯值),該Ack值然后可在塊617中被發(fā)送。類似地,不是在塊615中更新Ack值,而是Rx Ack值可保持相同。在圖6中,顯示了圖1和圖3中所示的一個通信接口的發(fā)射單元的實施例和第二通信接口的接收機(jī)單元的實施例的操作的流程圖。共同參照圖1至圖3和圖6,在一個實施例中,在圖6的塊601中開始,設(shè)備I中的上游邏輯可將事務(wù)存儲在Tx請求處理者隊列305中。當(dāng)設(shè)備I的發(fā)射機(jī)為新的事務(wù)做好準(zhǔn)備時,向Tx請求處理者隊列305請求事務(wù)(塊601)。CRC產(chǎn)生器單元320計算CRC,并且用附加到幀的CRC來格式化事務(wù)幀(塊603)。將格式化的幀存儲在Tx隊列317中(塊605)。從發(fā)送隊列,經(jīng)由通信鏈路16的通信通道14中的一個或多個發(fā)送幀(塊607)。Rx SerDes 350經(jīng)由通信路徑(比如,14A)接收幀(塊609)。CRC差錯檢查單元355對幀進(jìn)行差錯檢查。如果該幀沒有差錯(塊611),并且接收機(jī)Ack狀態(tài)沒有被凍結(jié)(塊613 ),則接受該幀,并且CRC差錯檢查單元355如上所述那樣向Rx Ack產(chǎn)生器單元360通知更新Rx Ack指示符值(塊615)。在一個實施例中,Rx Ack產(chǎn)生器單元360可保持并增加正在運行的多個比特的計數(shù)值(即,Rx Ack指示符),該多個比特的計數(shù)值代表自從通信鏈路16最后一次被初始化或重新初始化以來接收到的無差錯幀的數(shù)量。在另一個實施例中,Rx Ack指示符值是每次接收到無差錯幀時可被切換的一個比特的值。更新的/切換的Rx Ack指示符值被轉(zhuǎn)發(fā)到Tx SerDes 370,以用于在通信路徑14B上發(fā)送。Tx SerDes 370可如上所述那樣使用一個或多個幀來發(fā)送Rx Ack值(塊617)。Rx SerDes 330接收包括Rx Ack值的幀(塊619)。Rx Ack值被轉(zhuǎn)發(fā)到差錯處理單元335。差錯處理單元335然后可將新的Rx Ack值與存儲在前Rx Ack指示符儲存器325中的值進(jìn)行比較。如果Rx Ack值在比較期間不同(塊621),則操作如以上結(jié)合塊601和619的描述所述的那樣繼續(xù)進(jìn)行。然而,如果新的Rx Ack值與前Rx Ack值相同(塊621),則差錯處理單元335發(fā)起差錯處理(塊623)。例如,如上所述,差錯處理單元335可向數(shù)據(jù)鏈路控制單元345通知存在差錯并且發(fā)起中繼操作或者發(fā)出恢復(fù)操作。返回參照塊611,如果CRC差錯檢查確定在所接收的幀中存在差錯,則CRC差錯檢查單元355向Rx Ack產(chǎn)生器單元360和Rx SerDes350通知差錯。Rx Ack產(chǎn)生器單元 360可凍結(jié)Ack狀態(tài)和Rx Ack指示符值(塊625)??蓪鼋Y(jié)的Rx Ack指示符值轉(zhuǎn)發(fā)到TxSerDes 370,并且可在通信路徑14B上發(fā)送該凍結(jié)的Rx Ack指示符值(塊617)。操作如以上結(jié)合塊619的描述所述的那樣繼續(xù)進(jìn)行。返回參照塊613,如果接收機(jī)接收到幀并且Ack狀態(tài)被凍結(jié),如果Rx SerDes 350確定該幀不是控制幀(塊627),則Rx SerDes 350丟棄該幀(塊629)。然而,如果該幀是控制幀(塊627),則Rx SerDes350清除Ack狀態(tài),并且重置(即,初始化)Rx指示符值(塊631 )。操作如以上結(jié)合塊617的描述所述的那樣繼續(xù)進(jìn)行。指出,如上所述,在可替換實施例中,Rx Ack指示符值可以是在所接收的幀中沒有檢測到差錯時保持不變的值(比如,一個比特的值)。該值被重復(fù)地發(fā)送以指示該無差錯狀態(tài)。當(dāng)在所接收的幀中檢測到差錯時,Rx Ack產(chǎn)生器單元360改變該值(比如,將該值變?yōu)轭A(yù)定差錯值)。在這些可替換實施例中的某些實施例中,當(dāng)在塊625中檢測到差錯時,可凍結(jié)Ack狀態(tài),并且,不是凍結(jié)Ack值,而是Rx Ack產(chǎn)生器單元360可改變Ack值(比如,將該值變?yōu)轭A(yù)定差錯值),然后可在塊617中發(fā)送該Ack值。類似地,不是在塊615中更新Ack值,而是Rx Ack值可保持相同。還指出,雖然按特定次序描述并顯示了操作流程,但是設(shè)想在其它實施例中,可根據(jù)需要按不同的次序執(zhí)行在圖4A至圖6的各個塊中所描繪的操作。在以上許多實施例中,假設(shè)差錯是不頻繁的并且通信鏈路潛伏期低。因此,上述實施例中的至少一些可準(zhǔn)確地跟蹤在低帶寬鏈路上發(fā)生頻率較低的無差錯接受和應(yīng)答進(jìn)程。當(dāng)接收到有差錯幀時,應(yīng)答信道可通過繼續(xù)發(fā)送最后知道的良好幀的標(biāo)識符來準(zhǔn)確地識別故障點,直到通過重新發(fā)送該具有差錯的幀來清除差錯、或者如上所述那樣清除系統(tǒng)差錯為止。因而,以上實施例中的各個實施例可以以相對于幀時間較長的響應(yīng)時間為代價將通信鏈路優(yōu)化為在正常操作期間具有最低開銷。另外,一些實施例中所顯示的重新發(fā)送隊列可以是存儲側(cè)緩沖器,因而不進(jìn)入到臨界潛伏期路徑中。此外,在接收機(jī)側(cè)不需要臨時保存隊列,這可進(jìn)一步降低復(fù)雜性和系統(tǒng)潛伏期。指出,雖然已就串行通信鏈路描述了以上實施例,但是設(shè)想在其它實施例中可使用并行鏈路。
雖然以相當(dāng)詳細(xì)地描述了以上實施例,但是一旦以上公開內(nèi)容被充分領(lǐng)會,許多改變形式和修改形式對于本領(lǐng)域技術(shù)人員將是顯而易見的。意圖在于權(quán)利要求被解釋為包括所有這樣的改變形式 和修改形式。
權(quán)利要求
1.一種裝置,包括 接收機(jī)單元,其被配置為經(jīng)由第一通信路徑從第二裝置的發(fā)射機(jī)單元接收數(shù)據(jù)幀; 差錯檢測單元,其被配置為檢測經(jīng)由所述第一通信路徑接收的數(shù)據(jù)幀中的數(shù)據(jù)差錯; 應(yīng)答單元,其被配置為保持應(yīng)答指示符,所述應(yīng)答指示符指示所述裝置經(jīng)由所述第一通信路徑接收的幀是否是無差錯的,其中,響應(yīng)于所述差錯檢測單元在所接收的幀中檢測到數(shù)據(jù)差錯,所述應(yīng)答單元被配置為通過凍結(jié)所述應(yīng)答指示符的值來指示所述第一通信路徑上的差錯狀況; 其中,所述裝置被配置為,在所述裝置正在經(jīng)由所述第一通信路徑接收幀的同時,經(jīng)由第二通信路徑連續(xù)地將所述應(yīng)答指示符的值傳遞到所述第二裝置,所述應(yīng)答指示符的值包括指示已從所述裝置接收到至少一個無差錯幀的至少一個值。
2.根據(jù)權(quán)利要求1所述的裝置,其中,給定的數(shù)據(jù)幀包括傳遞所述應(yīng)答指示符的對應(yīng)值的應(yīng)答字段。
3.根據(jù)權(quán)利要求2所述的裝置,其中,所述應(yīng)答指示符包括計數(shù)值,所述計數(shù)值指示自從初始化事件以來所述裝置接收到的無差錯幀的數(shù)量,并且其中,凍結(jié)所述應(yīng)答指示符的值使至少兩個連續(xù)的相同計數(shù)值被傳遞到所述第二裝置。
4.根據(jù)權(quán)利要求3所述的裝置,其中,所述計數(shù)值是多個比特的值,并且其中,所述裝置被配置為使用多個幀來將所述多個比特的值傳遞到所述第二裝置。
5.根據(jù)權(quán)利要求2所述的裝置,其中,所述應(yīng)答指示符包括一個比特,并且其中,所述應(yīng)答單元被配置為,對于所述差錯檢測單元對其沒有檢測到數(shù)據(jù)差錯的每個接收的幀,切換所述應(yīng)答指示符的狀態(tài),并且其中,凍結(jié)所述應(yīng)答指示符的值使所述應(yīng)答指示符的至少兩個連續(xù)的相同值被傳遞到所述第二裝置。
6.根據(jù)權(quán)利要求1所述的裝置,其中,給定的數(shù)據(jù)幀包括傳遞控制指示符的數(shù)據(jù)鏈路字段,所述控制指示符指示所述給定幀是否傳遞數(shù)據(jù)、或者所述給定幀是否在所述幀的有效載荷字段中傳遞控制信息。
7.根據(jù)權(quán)利要求1所述的裝置,其中,給定的數(shù)據(jù)幀包括傳遞控制指示符的數(shù)據(jù)鏈路字段,所述控制指示符指示所述給定幀是否傳遞數(shù)據(jù)、或者所述給定幀是否在所述幀的有效載荷字段中傳遞控制信息,并且其中,響應(yīng)于基于所述數(shù)據(jù)鏈路指示符確定所接收的數(shù)據(jù)幀是控制幀,所述應(yīng)答單元被配置為當(dāng)保持所述應(yīng)答指示符的值時忽略所述控制幀。
8.一種裝置,包括 發(fā)射機(jī)單元,其被配置為經(jīng)由第一通信路徑將數(shù)據(jù)幀發(fā)送到第二裝置的接收機(jī)單元; 接收機(jī)單元,其被配置為在所述發(fā)射機(jī)單元正在經(jīng)由第一通信路徑發(fā)送幀的同時,經(jīng)由第二通信路徑連續(xù)地從所述第二裝置接收應(yīng)答指示符的值,所述應(yīng)答指示符的值包括指示所述第二裝置的接收機(jī)單元已接收到至少一個無差錯幀的至少一個值,其中,所述應(yīng)答指示符的值指示所述第二裝置是否已經(jīng)由所述第一通信路徑接收到無差錯幀; 差錯處理單元,其被配置為響應(yīng)于檢測到所述裝置的接收機(jī)單元已從所述第二裝置接收到所述應(yīng)答指示符的凍結(jié)值,確定差錯狀況存在。
9.根據(jù)權(quán)利要求8所述的裝置,其中,給定的數(shù)據(jù)幀包括應(yīng)答字段和數(shù)據(jù)鏈路字段,所述應(yīng)答字段傳遞所述應(yīng)答指示符的對應(yīng)值,所述數(shù)據(jù)鏈路字段傳遞控制指示符,所述控制指示符指示所述給定幀是否傳遞數(shù)據(jù)、或者所述給定幀是否傳遞控制信息。
10.根據(jù)權(quán)利要求8所述的裝置,其中,所述差錯處理單元被進(jìn)一步配置為將所接收的應(yīng)答指示符的值與先前接收的應(yīng)答指示符的值進(jìn)行比較,以確定差錯狀況是否存在。
11.根據(jù)權(quán)利要求10所述的裝置,其中,所述差錯處理單元被進(jìn)一步配置為響應(yīng)于檢測到所述應(yīng)答指示符的至少兩個連續(xù)的相同值,確定差錯狀況存在。
12.根據(jù)權(quán)利要求9所述的裝置,還包括鏈路控制單元,所述鏈路控制單元與所述差錯處理單元耦接,并且被配置為使控制幀被發(fā)送到所述第二裝置,所述控制幀在所述控制幀的有效載荷字段中具有特定編碼,其中,所述控制幀包括指示所述幀是控制幀的數(shù)據(jù)鏈路指示符,其中,所述特定編碼被配置為使所述應(yīng)答指示符的凍結(jié)值在所述第二裝置中被重新初始化。
13.根據(jù)權(quán)利要求12所述的裝置,其中,所述鏈路控制單元被進(jìn)一步配置為保持與比發(fā)送到所述第二裝置的控制幀數(shù)量少的數(shù)據(jù)幀數(shù)量對應(yīng)的事務(wù)幀計數(shù)值,并且其中,所述差錯處理單元被進(jìn)一步配置為將所接收的應(yīng)答指示符的值與所述事務(wù)幀計數(shù)值進(jìn)行比較以確定差錯狀況是否存在。
14.一種系統(tǒng),包括 第一設(shè)備;和 第二設(shè)備,其經(jīng)由第一通信路徑和第二通信路徑與所述第一設(shè)備耦接; 其中,所述第一設(shè)備被配置為經(jīng)由所述第一通信路徑從所述第二設(shè)備接收數(shù)據(jù)幀,并且檢測所述數(shù)據(jù)幀中的差錯; 其中,所述第一設(shè)備被配置為 保持應(yīng)答指示符,所述應(yīng)答指示符指示是否經(jīng)由所述第一通信路徑接收到無差錯幀;和 響應(yīng)于在所接收的幀中檢測到數(shù)據(jù)差錯,凍結(jié)所述應(yīng)答指示符的值; 在所述第一設(shè)備正在經(jīng)由所述第一通信路徑接收幀的同時,經(jīng)由所述第二通信路徑連續(xù)地將應(yīng)答指示符的值傳遞到所述第二設(shè)備,所述應(yīng)答指示符的值包括指示已接收到至少一個無差錯幀的至少一個值; 其中,所述第二設(shè)備被配置為從所述第一設(shè)備接收所述應(yīng)答指示符的值,并且響應(yīng)于接收到所述應(yīng)答指示符的凍結(jié)值,確定差錯狀況存在。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中,給定的數(shù)據(jù)幀包括應(yīng)答字段和數(shù)據(jù)鏈路字段,所述應(yīng)答字段傳遞所述應(yīng)答指示符的對應(yīng)值,所述數(shù)據(jù)鏈路字段傳遞控制指示符,所述控制指示符指示所述給定幀是否傳遞數(shù)據(jù)、或者所述給定幀是否傳遞控制信息。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述應(yīng)答指示符包括計數(shù)值,所述計數(shù)值指示自從初始化事件以來所述第一設(shè)備接收到的無差錯幀的數(shù)量,并且其中,所述應(yīng)答指示符的凍結(jié)值對應(yīng)于兩個連續(xù)的相同計數(shù)值。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,所述計數(shù)值是多個比特的值,并且其中,所述第一設(shè)備被配置為使用多個幀來將所述多個比特的值傳遞到所述第二設(shè)備。
18.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述應(yīng)答指示符的值包括一個比特,并且其中,所述第一設(shè)備被配置為,對于所述差錯檢測單元對其沒有檢測到差錯的每個接收的幀,切換所述應(yīng)答指示符的值,并且其中,凍結(jié)的應(yīng)答指示符對應(yīng)于所述應(yīng)答指示符的兩個連續(xù)的相同值。
19.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述第二設(shè)備被進(jìn)一步配置為響應(yīng)于接收到所述應(yīng)答指示符的凍結(jié)值,將控制幀發(fā)送到所述第一設(shè)備,所述控制幀在所述數(shù)據(jù)幀的有效載荷字段中具有特定編碼,其中,所述控制幀包括指示所述幀是控制幀的數(shù)據(jù)鏈路指示符,其中,所述特定編碼被配置為使所述第一設(shè)備重新初始化所述應(yīng)答指示符的凍結(jié)值。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中,所述第二設(shè)備被進(jìn)一步配置為響應(yīng)于接收到凍結(jié)的應(yīng)答指示符,在發(fā)送在所述有效載荷字段中具有特定編碼的控制幀之后,將一個或多個先前發(fā)送的幀重新發(fā)送到所述第一設(shè)備。
21.根據(jù)權(quán)利要求14所述的系統(tǒng),其中,所述第二設(shè)備被進(jìn)一步配置為將所接收的應(yīng)答指示符的值與先前接收的應(yīng)答指示符的值進(jìn)行比較以確定差錯狀況是否存在。
22.根據(jù)權(quán)利要求21所述的系統(tǒng),其中,所述第一設(shè)備包括存儲器控制器,所述第二設(shè)備包括存儲器設(shè)備。
23.根據(jù)權(quán)利要求14所述的系統(tǒng),其中,所述第一通信路徑和所述第二通信路徑是串行通信路徑。
24.—種裝置,包括 接收機(jī)單元,其被配置為經(jīng)由第一通信路徑從第二裝置的發(fā)射機(jī)單元接收數(shù)據(jù)幀; 差錯檢測單元,其被配置為檢測經(jīng)由第一通信路徑接收的數(shù)據(jù)幀中的數(shù)據(jù)差錯; 應(yīng)答單元,其被配置為保持應(yīng)答指示符,所述應(yīng)答指示符指示所述裝置經(jīng)由所述第一通信路徑接收的幀是否是無差錯的,其中,響應(yīng)于所述差錯檢測單元在所接收的幀中檢測到數(shù)據(jù)差錯,所述應(yīng)答單元被配置為通過將所述應(yīng)答指示符的當(dāng)前值設(shè)置為預(yù)定差錯值來指示所述第一通信路徑上的差錯狀況; 其中,所述裝置被配置為在所述裝置正在經(jīng)由第一通信路徑接收幀的同時,經(jīng)由第二通信路徑連續(xù)地將所述應(yīng)答指示符的值傳遞到所述第二裝置,所述應(yīng)答指示符的值包括指示已接收到至少一個無差錯幀的至少一個值。
25.根據(jù)權(quán)利要求24所述的裝置,其中,所述應(yīng)答指示符包括一個比特,并且其中,所述預(yù)定差錯值包括所述應(yīng)答指示符的最后一個值的相反值。
26.一種裝置,包括 發(fā)射機(jī)單元,其被配置為經(jīng)由第一通信路徑將數(shù)據(jù)幀發(fā)送到第二裝置的接收機(jī)單元; 接收機(jī)單元,其被配置為在所述發(fā)射機(jī)單元正在經(jīng)由所述第一通信路徑發(fā)送幀的同時,經(jīng)由第二通信路徑連續(xù)地從所述第二裝置接收所述應(yīng)答指示符的值,所述應(yīng)答指示符的值包括指示所述第二裝置的接收機(jī)單元已接收到至少一個無差錯幀的至少一個值,其中,所述應(yīng)答指示符的值指示所述第二裝置是否已經(jīng)由所述第一通信路徑接收到無差錯幀; 差錯處理單元,其被配置為響應(yīng)于檢測到所述裝置的接收機(jī)單元已從所述第二裝置接收到被設(shè)置為所述預(yù)定差錯值的應(yīng)答指示符的當(dāng)前值,確定差錯狀況存在。
27.根據(jù)權(quán)利要求26所述的裝置,其中,所述應(yīng)答指示符的每個值包括一個比特,并且其中,所述預(yù)定差錯值包括所述應(yīng)答指示符的最后一個值的相反值。
全文摘要
本公開涉及通信接口和協(xié)議。一種裝置包括接收機(jī)、差錯檢測單元和應(yīng)答單元。所述接收機(jī)可經(jīng)由第一通信路徑從第二裝置的發(fā)射機(jī)單元接收數(shù)據(jù)幀。所述差錯檢測單元可檢測經(jīng)由第一通信路徑接收的數(shù)據(jù)幀中的數(shù)據(jù)差錯。所述應(yīng)答單元可保持應(yīng)答指示符,該應(yīng)答指示符指示所述裝置接收到的幀是否是無差錯的。響應(yīng)于所述差錯檢測單元檢測到差錯,所述應(yīng)答單元可通過凍結(jié)應(yīng)答指示符的值來指示差錯狀況存在,或者可替換地,所述應(yīng)答單元可將應(yīng)答指示符的當(dāng)前值設(shè)置為預(yù)定差錯值。此外,在所述裝置正在接收幀的同時,所述裝置可經(jīng)由第二通信路徑連續(xù)地將應(yīng)答指示符的值傳遞到第二裝置。
文檔編號H04L1/16GK103004124SQ201180013710
公開日2013年3月27日 申請日期2011年1月27日 優(yōu)先權(quán)日2010年2月1日
發(fā)明者M·米勒, M·莫瑞松, P·菲羅利托, J·帕特爾, T·庫佐哈拉 申請人:莫塞斯股份有限公司