TW201346572A - 發送器設備及發送器系統 - Google Patents

發送器設備及發送器系統 Download PDF

Info

Publication number
TW201346572A
TW201346572A TW102103191A TW102103191A TW201346572A TW 201346572 A TW201346572 A TW 201346572A TW 102103191 A TW102103191 A TW 102103191A TW 102103191 A TW102103191 A TW 102103191A TW 201346572 A TW201346572 A TW 201346572A
Authority
TW
Taiwan
Prior art keywords
receiver
data packet
transmission
communication link
payload portion
Prior art date
Application number
TW102103191A
Other languages
English (en)
Inventor
Ian Swarbrick
Jaseph Jun Cao
Original Assignee
Marvell World Trade Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Marvell World Trade Ltd filed Critical Marvell World Trade Ltd
Publication of TW201346572A publication Critical patent/TW201346572A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/423Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

描述了用於在晶片到晶片通信連結上發送資料包的設備和系統。例如,一種設備包括用於存儲資料包的硬體重播緩衝器。資料包包括負荷部分和淨荷部分。此外,發送器設備包括:電路,被配置為記錄硬體重播緩衝器內的記憶體位置,該記憶體位置與資料包的淨荷部分通過實體串列通信連結向接收器設備的傳輸的中斷對應。記憶體位置參考資料包的淨荷部分的中間位置。

Description

發送器設備及發送器系統 【相關申請的交叉引用】
本公開內容要求以下臨時申請的權益:2012年1月27日提交的第61/591,693號臨時申請;2012年2月9日提交的第61/596,905號臨時申請;以及2012年10月24日提交的第61/717,978號臨時申請。這些在先申請中的每一個的全部內容通過引用的方式合併於此。
本公開內容的主題內容一般涉及在串列晶片到晶片通信連結上傳送資料,以例如在串列晶片到晶片通信連結上組合低延遲資料流量與高帶寬資料流量。
串列器/解串器(SerDes)連結也被稱為串列通信連結,其包括在高速通信中常用來補償晶片之間的有限輸入/輸出管腳的功能模組對。這些功能模組在每個方向上、在串列資料與平行介面之間轉換資料。通過串列通信連結發送的資料包包括負荷和資料淨荷。負荷包括用於標識資料包的開始和結束符號以及用來校驗所發送的資料包的完整性的迴圈冗餘碼(CRC)。
可以通過串列通信連結建立低延遲(LL)虛擬通道和一個或者多個帶寬(BW)虛擬通道。以這一方式,通過BW虛擬通道無中斷地發送多個包。在接收將通過串列通信連結立即發送的特定包時,準備特定包以用於在LL虛擬通道上傳輸。然而特定包需要等待,直至當前包通過BW虛擬通道的傳輸結束。這增加了通過LL虛擬通道傳輸的延遲。一旦當前包通過BW虛擬通道的傳輸結束,則通過LL虛擬通道發送 特定包。在特定包通過LL虛擬通道的傳輸結束時,多個包通過BW虛擬通道的傳輸利用來自多個包的後續包而繼續。
在一般電路中,研發人員藉由設置靜電防護元件(ESD component)保護晶片,防止晶片遭受靜電攻擊而損毀。然而,在實際情況中,研發人員僅能夠根據以往經驗判斷靜電防護元件之設置位置及防護程度,而無法推測並記錄靜電電流曾經竄流哪些元件。
在本說明書中描述的設備和系統使用片段傳輸的中斷和被中斷的資料包的片段的鏈結以允許低延遲和高帶寬流量在配置有LL虛擬通道和一個或多個BW虛擬通道的串列通信連結上共存。可以例如通過對將在BW虛擬通道上發送的多個包分段為更小包(稱為片段)來減少針對特定包的上述附加延遲。然而,對將要通過BW虛擬通道發送的多個包簡單地分段可能由於分段負荷而減少其吞吐量。根據公開的技術,在接收到用於在LL虛擬通道上傳輸的特定包時,及早終止當前發送的BW包。然後將通過LL虛擬通道發送特定包。在特定包通過LL虛擬通道的傳輸結束時,在BW虛擬通道上開始包含來自BW包的剩餘未傳輸資料的新包的傳輸。以如下方式將新包鏈結到及早終止的包:單個鏈結位元用來指示新包是已經在BW虛擬通道上部分發送的先前包的繼續而不是創建新的完整包標頭。以這一方式,在本說明書中描述的晶片到晶片通信連結使在LL虛擬通道上的低延遲流量能夠與在一個或者多個BW虛擬通道上的高帶寬流量組合。
可以在一種包括用於存儲資料包的硬體重播緩衝器的發送器設備中實施在本說明書中描述的主題內容的一個方面。資料包包括負荷部分和淨荷部分。此外,該發送器設備包括:電路,被配置為記錄所述硬體重播緩衝器內的記憶體位置,所述記憶體位置與所述資料包的所述淨荷部分通 過實體串列通信連結向接收器設備的傳輸的中斷對應。所述記憶體位置參考所述資料包的所述淨荷部分的中間位置。
實施可以包括以下特徵中的一個或者多個特徵。在一些實施中,與中斷對應的記憶體位置可以包括向硬體重播緩衝器中的偏移,該偏移指示淨荷部分中的到中斷為止尚未傳輸的已存儲位元。在一些實施中,電路可以包括暫存器,電路在該暫存器中記錄與中斷對應的記憶體位置。例如暫存器包括重播開始暫存器,並且用於記錄的電路包括(i)當前傳輸位置暫存器、(ii)重播開始位置暫存器和淨荷部分結束位置暫存器。以這一方式,用於記錄的電路被配置為在中斷時向重播開始暫存器傳送在當前傳輸位置暫存器中存儲的值。
在一些實施中,電路可以從與中斷對應的記錄的記憶體位置開始恢復淨荷部分向接收器設備的傳輸。例如電路緊接在恢復淨荷部分的傳輸之前向接收器設備發送一個或者多個負荷位元,該一個或者多個負荷位元向接收器設備指示將接收淨荷部分的剩餘資料。在一些實施中,電路在完成淨荷部分的傳輸之前回應於從主機接收到將通過實體串列通信連結向接收器設備發送的更高優先順序的資料包來引起淨荷部分的傳輸的中斷。在這一情況下,電路在完成更高優先順序的資料包的傳輸之後恢復淨荷部分的傳輸。在一些實施中,電路回應於通過實體反向通信連結從接收器設備接收到訊息來引起淨荷部分的傳輸的中斷,該訊息請求淨荷部分的傳輸的中斷。在這一情況下,電路在自從從接收器接收到訊息起的預定時間之後恢復淨荷部分的傳輸。
可以在一種系統中實施在本說明書中描述的主題內容的另一方面,該系統包括:實體通信連結,通過該實體通信連結從第一積體電路(IC)設備向第二IC設備發送資料包。資料包中的每個資料包包括負荷部分和淨荷部分。該系統也包括:發送器,用於從第一IC設備獲得資料包並且通 過實體通信連結發送資料包。發送器包括:硬體重播緩衝器,用於在資料包通過實體通信連結的傳輸期間存儲資料包的淨荷部分,以及發送器電路,被配置為記錄硬體重播緩衝器內的與傳輸的中斷對應的記憶體位置。另外,該系統包括:接收器,用於接收通過實體通信連結發送的資料包並且向第二IC設備提供資料包。接收器包括:硬體接收器緩衝器,用於存儲通過實體通信連結發送的資料包,以及接收器電路,配置用於對作為淨荷部分的一部分而接收的位元的數量計數並且記錄計數。
實施可以包括以下特徵中的一個或者多個特徵。在一些實施中,與中斷對應的記憶體位置可以包括向硬體重播緩衝器中的偏移,該偏移指示淨荷部分中的到中斷為止尚未傳輸的已存儲位元。在一些實施中,發送器電路可以包括暫存器,發送器電路在該暫存器中記錄與中斷對應的記憶體位置。在一些實施中,發送器電路可以在接收到請求中斷的指令之後一旦通過實體通信連結發送淨荷部分的預定的一小部分就引起淨荷部分的傳輸的中斷。
在一些實施中,發送器電路可以從與中斷對應的記錄的記憶體位置開始恢復資料包的淨荷部分的傳輸。例如,發送器電路在淨荷部分的傳輸之前發送負荷部分,該負荷部分指定淨荷部分的總位元數,並且在恢復淨荷部分的傳輸之前發送一個或者多個負荷位元,該一個或者多個負荷位元向接收器指示將接收淨荷部分的剩餘部分。在這一示例中,接收器電路回應於接收到指示將接收淨荷部分的剩餘部分的一個或者多個負荷位元來比較記錄的計數與指定的總位元數。
在一些實施中,發送器電路可以在完成淨荷部分的傳輸之前回應於從第一IC設備接收到將通過實體通信連結向接收器發送的更高優先順序的資料包來引起淨荷部分的傳輸的中斷、並且可以在完成更高優先順序的資料包通過實體 通信連結的傳輸之後恢復淨荷部分的傳輸。在這一情況下,發送器包括與硬體重播緩衝器不同的、用於在第二資料包通過實體通信連結的傳輸期間存儲第二資料包的淨荷部分的第二硬體重播緩衝器,並且接收器包括與硬體接收器緩衝器不同的、用於在通過實體通信連結傳輸的第二資料包的傳輸期間存儲第二資料包的淨荷部分的第二硬體接收器緩衝器。另外,在這一情況下,硬體接收器緩衝器和第二硬體接收器緩衝器被映射到與第二IC設備關聯的記憶體位址空間。以這一方式,發送器電路在資料包和第二資料包的淨荷部分的傳輸之前發送該資料包和第二資料包的相應負荷部分,這些相應負荷部分指定與第二IC設備關聯的相應位址。
另外,該系統可以包括:實體反向通信連結,通過該實體反向通信連結從第二IC設備向第一IC設備發送資料包。
此外,該系統可以包括:第二發送器,用於從第二IC設備獲得第三資料包和第四資料包並且通過實體反向通信連結發送第三和第四資料包。第二發送器可以包括:第三硬體重播緩衝器,用於在第三資料包通過實體反向通信連結的傳輸期間存儲第三資料包的淨荷部分;以及與第三硬體重播緩衝器不同的第四硬體重播緩衝器,用於在第四資料包通過實體反向通信連結的傳輸期間存儲第四資料包的淨荷部分。另外,第二發送器可以包括:第二發送器電路,用於(i)在完成第三資料包的淨荷部分的傳輸之前回應於從第二IC設備接收到將通過實體反向通信連結發送的第四資料包來引起第三資料包的淨荷部分的傳輸的中斷、(ii)記錄第三硬體重播緩衝器內的與第三資料包的傳輸的中斷對應的記憶體位置並且(iii)在完成第四資料包的傳輸之後恢復第三資料包的淨荷部分的傳輸。
此外,該系統可以包括:第二接收器,用於接收通過實體反向通信連結傳輸的第三和第四資料包並且向第一 IC設備提供第三和第四資料包。第二接收器可以包括:第三硬體接收器緩衝器,用於存儲通過實體反向通信連結發送的第三資料包,以及第四硬體接收器緩衝器,用於存儲通過實體反向通信連結發送的第四資料包。在這一情況下,第三和第四硬體接收器緩衝器被映射到與第一IC設備關聯的記憶體位址空間。此外,第二接收器可以包括:第二接收器電路,用於對作為第三資料包的淨荷部分的一部分而接收的另一數量的位元計數並且記錄另一計數。以這一方式,第二發送器電路可以在第三和第四資料包的淨荷部分的傳輸之前發送第三和第四資料包的相應負荷部分,這些相應負荷部分指定與第一IC設備關聯的相應位址。
在一些實施中,該系統可以包括:實體反向通信連結,通過該實體反向通信連結從接收器向發送器發送訊息。在這一情況下,發送器電路可以回應於從接收器接收到訊息來引起淨荷部分的傳輸的中斷。例如,接收器在硬體接收器緩衝器的填充位準超過預定位準時發送訊息,該訊息請求淨荷部分的傳輸的中斷,並且發送器電路在自從中斷起的預定時間之後從與中斷對應的記錄的記憶體位置開始恢復淨荷部分的傳輸。作為另一示例,當在淨荷部分中的在中斷之前傳輸的部分中檢測到錯誤時接收器傳輸訊息,該訊息請求(i)淨荷部分的傳輸的中斷和(ii)淨荷部分中的在中斷之前發送的部分的重傳。此外,在這一示例中,發送器電路重傳淨荷部分的在中斷之前發送的部分並且然後當在預定時間段內沒有從接收器獲得的請求重傳淨荷部分的訊息時清除硬體重播緩衝器。
可以實現以下優點中的一個或者多個優點。在本說明書中描述的晶片到晶片通信連結支援低延遲和高吞吐量資料流量二者。可以將公開的通信連結升級至高吞吐量,因為它使用高速度並且基於多個通道(虛擬通道)。另外,公開的晶片到晶片通信連結可以通過使用自動電源管理協議並且 通過具有低活動功率來消耗比常規晶片到晶片通信連結更少的功率。電源管理協定被配置為提供在兩個方向上從低功率狀態和獨立低功率狀態的快速退出。
此外,公開的技術可以優化晶片成本與性能之比。可以例如優化在發送器和接收器晶片二者上的記憶體緩衝器利用,以最小化晶片的緩衝器的尺寸。例如實施NACK回應的低延遲和流控制最小化緩衝器壽命以增加存儲效率。以這一方式,片上記憶體緩衝器的高效使用允許虛擬通道的低成本實施,這些虛擬通道又實現通過通信連結的差別服務品質QoS(例如LL和BB分組的傳輸)。
另外,公開的技術可以用來實施給定的晶片到晶片通信連結,對於該晶片到晶片通信連結,32位元組快取記憶體行讀取延遲(req/resp)在8千兆位元/秒的gen3傳輸速率下為48ns/48ns。另外,給定的晶片到晶片通信連結支援32 x 8千兆位元/秒=256千兆位元/秒的峰值帶寬。另外,給定的晶片到晶片通信連結對帶寬敏感,從而256位元組寫入吞吐量近似為95%或者近似為243千兆位元/秒。
此外,給定的晶片到晶片通信連結提供混合的延遲和帶寬。例如,在晶片A完成從晶片B的200 MB/秒快取記憶體行填充並且晶片B完成向晶片A的最大數目為256位元組的寫入時,給定的晶片到晶片通信連結的帶寬和延遲值分別近似為616百萬位元組/秒和280ns。作為另一例子,在歸一化的連結BW為1千百萬位元組/秒時,帶寬值近似為582百萬位元組/秒,並且延遲範圍為10-20ns。
在附圖和下文描述中闡述本發明的一個或者多個實施方式的細節。將從描述和附圖中以及從請求項中清楚本發明的其他特徵、目的和優點。
100‧‧‧系統
101-1‧‧‧第一IC設備
101-2‧‧‧第二IC設備
105‧‧‧實體通信連結
105’‧‧‧實體反向通信連結
110‧‧‧發送器
110’‧‧‧第二發送器
115‧‧‧發送器電路
115’‧‧‧第二發送器控制器
120‧‧‧切換設備
120’‧‧‧第三切換設備
130‧‧‧虛擬通道
131‧‧‧虛擬通道
132‧‧‧虛擬通道
133‧‧‧虛擬通道
135‧‧‧第二硬體重播緩衝器
135’‧‧‧第四硬體重播緩衝器
145‧‧‧硬體重播緩衝器
145’‧‧‧第三硬體重播緩衝器
150‧‧‧接收器
150’‧‧‧第二接收器
155‧‧‧接收器電路
155’‧‧‧第二接收器電路
160‧‧‧第二切換設備
160’‧‧‧第四切換設備
175‧‧‧第二硬體接收器緩衝器
175’‧‧‧第四硬體接收器緩衝器
185‧‧‧硬體接收器緩衝器
185’‧‧‧第三硬體接收器緩衝器
200‧‧‧系統
201-1‧‧‧北晶片
201-2‧‧‧南晶片
205‧‧‧晶片到晶片通信連結
300‧‧‧系統
300’‧‧‧多晶片集成
301-1‧‧‧應用處理器
301-1’‧‧‧應用處理器
301-2‧‧‧通信處理器
301-2’‧‧‧通信處理器
305‧‧‧晶片到晶片通信連結
305’‧‧‧晶片到晶片通信連結
400‧‧‧高速串列連結
500‧‧‧包
610‧‧‧包傳輸
650‧‧‧包傳輸
700‧‧‧包格式
710‧‧‧第一欄位
720‧‧‧第二欄位
730‧‧‧第三欄位
740‧‧‧第四欄位
750‧‧‧淨荷
760‧‧‧第一欄位
770‧‧‧第二欄位
800‧‧‧包格式
810‧‧‧第一欄位
820‧‧‧第二欄位
830‧‧‧第三欄位
845‧‧‧第四欄位
850‧‧‧淨荷
860‧‧‧第一欄位
870‧‧‧第二欄位
LL‧‧‧低延遲
BW‧‧‧帶寬
圖1示出包括低延遲虛擬通道和帶寬虛擬通道的串列通信連結的示例。
圖2示出在北晶片與南晶片之間實施的串列通信連結的示例。
圖3A-3B示出在應用處理器與數據機處理器之間實施的串列通信連結的示例的多個方面。
圖4示出包括低延遲虛擬通道和帶寬虛擬通道的串列通信連結的示例的多個方面。
圖5示出通過串列通信連結發送的資料包的格式的示例。
圖6A-6B示出通過串列通信連結的包傳輸的多個方面。
圖7示出用於讀取/寫入請求的包格式的示例。
圖8示出用於讀取/寫入響應的或者用於當前發送的包的鏈結的讀取/寫入繼續片段的包格式的示例。
在各種附圖中的相似標號指示相似單元。
描述用於以低成本提供具有高吞吐量和低延遲的晶片到晶片通信的系統和技術。高吞吐量和低延遲方面使得作為片上系統(SoC)的一部分的主設備和從設備能夠如同它們在同一晶片上虛擬地駐留一樣進行通信,其中主設備和從設備駐留在使用所公開的技術來耦合的分離晶片上。另外,可以例如通過使用少量的小尺寸的片上記憶體緩衝器來實現低成本方面。
一些常規晶片到晶片通信連結被配置為具有低延遲以便實現快速快取記憶體線填充和晶片到晶片同步。其他常規晶片到晶片通信連結被配置為以高吞吐量承載批量資 料流量。在本說明書中,晶片到晶片通信連結被配置為在相同連結上容納高延遲資料流量和批量資料流量。以這一方式,為了連結帶寬的最佳利用,可以維持針對敏感流量的低延遲和高的總吞吐量。
例如在配置在本說明書中描述的晶片到晶片通信連結時也已經顧及到其他考慮事項,比如基於功率協定管理連結的實體層的功率特性、在通過連結耦合的晶片之間以統一方式處置記憶體位址以及維持通過連結通信的高可靠性。此外,例如在配置公開的晶片到晶片通信連結時已經估計SoC集成考慮,比如中斷處置、基於軟體(SW)模型的排序、錯誤處置以及通過連結乾淨地傳送高級微控制器匯流排架構(AMBA)協議。下文在本說明書中描述公開的技術的這些和其他方面。
在一些實施中,兩個晶片之間的通信連結配置有兩個或者更多虛擬通道(VC)。這樣的配置允許公開的通信連結防止低延遲敏感流量的阻塞並且針對通過連結承載的晶片到晶片通信提供差別服務品質(QoS)。此外,在傳輸之前將根據公開的技術在兩個晶片之間傳送的交易層分組(TLP)劃分為鏈結在一起的片段。通過對TLP分段並且鏈結所得片段,在本說明書中描述的晶片到晶片通信連結可以在連結的低延遲(LL)虛擬通道上針對關鍵的字獲取實現非常低的延遲並且通過一個或者多個帶寬(BW)通道用最少緩衝實現高吞吐量。
將在LL虛擬通道上發送的包可以中斷當前在BW通道之一上發送的包。例如在接收到這樣的用於發送LL包的中斷請求時,在完成BW資料包的整個片段的傳輸之前及早終止片段通過BW虛擬通道的當前傳輸。可以例如向與請求的傳輸中斷關聯的資料位置追加迴圈冗餘碼(CRC)以結束片段的已發送部分。一旦已經發送了LL包,則繼續進行BW資料包的中斷的片段的剩餘部分通過BW虛擬通道的傳 輸。以這一方式,在本說明書中描述的晶片到晶片通信連結可以在一個或者多個BW虛擬通道上維持高吞吐量之時維繫通過LL虛擬通道的非常低的延遲流量。
可能未以連結速率接收通過一個或者多個BW虛擬通道發送的資料(尤其在有多個BW虛擬通道時)。出於這一原因,在通信連結的用於BW虛擬通道的接收器側實施門檻值邏輯,以收集寫入資料和/或讀取回應或者二者。無需針對LL虛擬通道實施門檻值邏輯,因為一旦可以發送片段就通過LL虛擬通道發送它們。
一般而言,IDLE命令在晶片到晶片通信中用來立即終止從或者向如下實體端子的輸入或者輸出,這些實體端子被分配給在IDLE命令中指定的線路、邏輯連結或者節點。在常規通信協議中,丟棄在IDLE命令中指定的線路上的部分處理的輸入訊息,並且向訊息佇列返回正在發送的輸出訊息以用於以後傳輸。在本說明書中描述的晶片到晶片通信連結的情況下,即使在發送包之時仍然可以插入邏輯IDLE符號而無需等待包的傳輸完成。這減少了對被IDLE命令中斷的包進行存儲和轉發的需要並且以這一方式減少彈性緩衝器延遲。
另外,在本說明書中描述的晶片到晶片通信連結支援片上結構協定(例如AMBA的高級可擴展介面(AXI)協定)的完整運送(full transport)。以這一方式,可以提供SoC集成和互操作性。另外,公開的技術支援AXI排序規則並且這樣可以用來配置統一的兩晶片解決方案。
圖1示出基於公開的技術實施的系統100的示意圖。系統100包括實體通信連結105,通過該實體通信連結從第一積體電路(IC)設備101-1向第二IC設備101-2發送資料包。通過實體通信連結發送的資料包中的每個資料包包括負荷部分和淨荷部分。下文結合圖5、7和8描述資料包格式的示例,這些資料包格式包括負荷部分的內容。另外,系統 100包括用於從第一IC設備101-1獲得資料包並且通過實體通信連結105發送資料包的發送器設備110(或者簡稱為發送器110)。另外,系統100包括用於接收通過實體通信連結105發送的資料包並且向第二IC設備101-2提供資料包的接收器設備150(或者簡稱為接收器150)。可以實施實體通信連結105為連接發送器110與接收器150的接線,例如基板上的跡線或者引線。下文在本說明書中描述實體通信連結的示例性實施。
在一些實施中,第一IC設備101-1包括發送器110並且一起形成SoC。在其他實施中,第一IC設備101-1位於與發送器110所處的另一晶片通信地耦合的晶片上。類似地,在一些實施中,第二IC設備101-2包括接收器150並且一起形成SoC。在其他實施中,第二IC設備101-2位於與接收器150所處的另一晶片通信地耦合的晶片上。另外,在一些其他實施中,發送器110位於其上的晶片和接收器150位於其上的另一晶片均為SoC的一部分。在更多其他實施中,第一IC設備101-1或者第二IC設備101-2或者二者是與發送器110和接收器150相同的SoC的一部分。
圖2示出根據公開的技術實施的系統200的示例。系統200包括在母板的北晶片201-1與南晶片201-2之間的晶片到晶片通信連結205。在一些實施中,北晶片201-1可以被配置為管理視頻圖形,並且南晶片201-2可以被配置為管理I/O介面、例如USB(通用串列匯流排)、PCIe或者SATA(串列高級技術附著)介面。圖3A示出根據公開的技術實施的系統300的示例。系統300包括在應用處理器(AP)301-1與通信處理器(CP)301-2之間的晶片到晶片通信連結305。通信處理器(CP)301-2可以例如是數據機或者基帶處理器。
再次參照圖1,發送器110包括硬體重播緩衝器145和發送器控制器115(也稱為發送器電路115)。接收器150包括硬體接收器緩衝器185和接收器控制器155(也稱為接收 器電路155)。硬體重播緩衝器145被配置為在資料包通過實體通信連結105的傳輸期間存儲資料包的淨荷部分,並且硬體接收器緩衝器185被配置為存儲通過實體通信連結105發送的資料包。
此外,發送器電路115被配置為記錄硬體重播緩衝器145內的與通過實體通信連結105的傳輸的中斷對應的記憶體位置。在一些實施中,與中斷對應的記憶體位置包括向硬體重播緩衝器145中的偏移,該偏移指示淨荷部分的到中斷為止尚未發送的存儲的位元。在一些實施中,發送器電路115包括暫存器,在該暫存器中,發送器電路115記錄與中斷對應的記憶體位置。例如,暫存器包括重播開始暫存器。在一些情況下,發送器電路115包括當前傳輸位置暫存器、重播開始位置暫存器和淨荷部分結束位置暫存器。這裏,發送器電路115在中斷時向重播開始暫存器傳送在當前傳輸位置暫存器中存儲的值。
發送器電路115可以從與中斷對應的記錄的記憶體位置開始恢復資料包的淨荷部分的傳輸。另外,發送器電路115在發送淨荷部分之前發送負荷部分,該負荷部分指定淨荷部分的總位元計數,並且接收器電路155保存預計作為包傳輸的一部分而接收的總位元計數。此外,接收器電路155被配置為對作為淨荷部分的一部分而接收的位元的數量計數並且記錄計數。以這一方式,發送器電路115在恢復淨荷部分的傳輸之前發送一個或者多個負荷位元,該負荷位元向接收器150指示將接收的淨荷部分的剩餘部分,並且接收器電路155響應於接收到一個或者多個負荷位元而比較記錄的計數與指定的總位元計數,該負荷位元指示將要接收淨荷部分的剩餘部分。
在一些實施中,發送器電路115可以在完成淨荷部分的傳輸之前回應於從第一IC設備101-1接收到將通過實體通信連結105向接收器150發送的第二資料包來引起淨荷部 分的傳輸的中斷。另外,發送器電路115可以在完成第二資料包通過實體通信連結105的傳輸之後恢復淨荷部分的傳輸。在這一情況下,發送器110包括與硬體重播緩衝器145不同的第二硬體重播緩衝器135,用於在第二資料包通過實體通信連結105的傳輸期間存儲第二資料包的淨荷部分。同樣在這一情況下,接收器150包括與硬體接收器緩衝器185不同的第二硬體接收器緩衝器175,用於在通過實體通信連結105發送的第二資料包的傳輸期間存儲第二資料包的淨荷部分。
通過實體通信連結105的專用於第一類型的資料流量(例如BW流量)的虛擬通道131執行資料包的傳輸,並且通過實體通信連結105的專用於第二類型的資料流量(例如LL流量)的另一虛擬通道130執行第二資料包的傳輸。這裏,虛擬通道130、131是邏輯通道(而不是實體通道),其各自通過發送器110的相應硬體重播緩衝器135、145、實體連結105以及接收器150的相應硬體接收器緩衝器175、185而伸展。例如,第一類型的流量具有比第二類型的流量低的優先順序。此外,第一類型的流量包括具有與在第二類型的流量中包括的資料包相比更大尺寸的資料包。發送器110包括配置為在通過虛擬通道131發送BW資料包與通過虛擬通道130發送LL資料包之間切換的切換設備120(例如多工器)。另外,接收器150包括用於在通過虛擬通道131接收BW資料包與通過虛擬通道130接收LL資料包之間切換的第二切換設備160(例如解多工器)。
在一些實施中,可以將硬體接收器緩衝器185和第二硬體接收器緩衝器175映射到與第二IC設備101-2關聯的記憶體位址空間。在這一情況下,發送器電路115在傳輸包和第二個包的淨荷部分之前發送包和第二個包的相應負荷部分,這些負荷部分指定與第二IC設備101-2關聯的相應位址。
此外,系統100可以包括實體反向通信連結 105’,通過該實體反向通信連結從第二IC設備101-2向第一IC設備101-1發送資料包。在這一情況下,系統100也包括用於從第二IC設備101-2獲得第三資料包和第四資料包並且用於通過實體反向通信連結105’發送第三和第四資料包的第二發送器110’以及用於接收通過實體反向通信連結105’發送的第三和第四資料包並且向第一IC設備101-1提供第三和第四資料包的第二接收器150’。可以實施實體反向通信連結105’為連接第二發送器110’與第二接收器150’的接線,例如基板上的跡線或者引線。
在一些實施中,第一IC設備101-1包括發送器110和第二接收器150’,並且所有這三個設備一起形成SoC。在其他實施中,第一IC設備101-1位於與發送器110和第二接收器150’所在的另一晶片通信地耦合的晶片上。類似地,在一些實施中,第二IC設備101-2包括接收器150和第二發送器110’,並且所有這三個設備一起形成SoC。在其他實施中,第二IC設備101-2位於與接收器150和第二發送器110’所在的另一晶片通信地耦合的晶片上。另外,在一些其他實施中,發送器110和第二接收器150’所在的晶片以及接收器150和第二發送器110’所在的另一晶片均為SoC的一部分。在更多一些其他實施中,第一IC設備101-1或者第二IC設備101-2或者二者是與發送器110、110’和接收器150、150’的相同的SoC的一部分。
第二發送器110’包括第三硬體重播緩衝器145’、與第三硬體重播緩衝器145’不同的第四硬體重播緩衝器135’和第二發送器控制器115’(也稱為第二發送器電路115’)。第三硬體重播緩衝器145’被配置為在第三資料包通過實體反向通信連結105’的傳輸期間存儲第三資料包的淨荷部分。第四硬體重播緩衝器135’被配置為在第四資料包通過實體反向通信連結105’的傳輸期間存儲第四資料包的淨荷部分。第二接收器150’包括第三硬體接收器緩衝器 185’、第四硬體接收器緩衝器175’和第二接收器控制器155’(也稱為第二接收器電路155’)。第二接收器電路155’被配置為對作為第三資料包的淨荷部分的一部分而接收的位元的另一數量計數並且記錄另一計數。另外,第三硬體接收器緩衝器185’被配置為存儲通過實體反向通信連結105’發送的第三資料包。第四硬體接收器緩衝器175’被配置為存儲通過實體反向通信連結105’發送的第四資料包。在一些實施中,發送器控制器115和第二接收器控制器155’共同位於相同晶片上,並且接收器控制器155和第二發送器控制器110’共同位於另一晶片上。
第二發送器電路115’被配置為在完成第三資料包的淨荷部分的傳輸之前,回應於從第二IC設備101-2接收到將通過實體反向通信連結105’發送的第四資料包來引起第三資料包的淨荷部分的傳輸的中斷。這時,第二發送器電路115’記錄第三硬體重播緩衝器內的與第三資料包的傳輸的中斷對應的記憶體位置。在完成第四資料包的傳輸之後,第二發送器電路115’恢復第三資料包的淨荷部分通過實體反向通信連結105’的傳輸。
與實體通信連結105的虛擬通道130、131相似,通過實體反向通信連結105’的專用於第一類型的資料流量(例如BW流量)的虛擬通道133執行第三資料包的傳輸,並且通過實體反向通信連結105’的專用於第二類型的資料流量(例如LL流量)的另一虛擬通道132執行第四資料包的傳輸。同樣,虛擬通道132、132是邏輯通道(而不是實體通道),其各自通過發送器110’的相應重播緩衝器135’、145’、實體反向通信連結105’以及第二接收器150’的相應接收器緩衝器175’、185’伸展。此外,第二發送器110’包括第三切換設備120’(例如多工器),其被配置為在通過虛擬通道133發送BW資料包與通過另一虛擬通道132發送LL資料包之間切換。另外,第二接收器150’包括第四切換設備160’(例 如解多工器),用於在通過虛擬通道133接收BW資料包與通過虛擬通道132接收LL資料包之間切換。
在一些實施中,可以將第三和第四硬體接收器緩衝器185’、175’映射到與第一IC設備101-1關聯的記憶體位址空間。在這一情況下,第二發送器電路115’在傳輸第三和第四包的淨荷部分之前發送第三和第四包的相應負荷部分,這些負荷部分指定與第一IC設備101-1關聯的相應位址。
在一些實施中,接收器150可以通知第二發送器電路115’通過實體反向通信連結105’發送訊息,從而發送器電路115回應於從接收器150接收到訊息來引起淨荷部分的傳輸的中斷。在實體反向通信連結105’的專用於LL流量的虛擬通道132上發送訊息。這一訊息如果必要的話則可以中斷BW資料包在實體反向通信連結105’的專用於較低優先順序的BW流量的虛擬通道133上的當前發送。
例如,在硬體接收器緩衝器185的填充位準超過預定位準時,在實體反向通信連結105’的虛擬通道132上發送的訊息代表接收器150請求中斷資料包的淨荷部分在實體反向通信連結105’的BW通道131上的傳輸。在這一情況下,發送器電路115在自從中斷起的預定時間之後,從與中斷對應的記錄的記憶體位置恢復資料包的淨荷部分在實體通信連結105的BW通道131上的傳輸。
作為另一示例,接收器150檢測淨荷部分中的、在中斷之前通過實體通信連結105發送的部分中的錯誤。在這一情況下,在實體反向通信連結105’的虛擬通道132上發送的訊息代表接收器150請求(i)資料包的淨荷部分在實體通信連結105的BW通道131上的傳輸的中斷和(ii)淨荷部分的在中斷之前發送的部分的重傳。一旦它引起在訊息中請求的中斷,發送器電路115則在實體通信連結105的BW通道131上重傳資料包的淨荷部分的在中斷之前發送的部分。
如上文在本說明書中具體描述的那樣,圖1中所 示高速串列連結105(105’)支援LL虛擬通道130(132)和BW虛擬通道131(133)。根據公開的技術,通過LL虛擬通道130(132)的傳輸具有比通過BW虛擬通道131(133)的傳輸更高的優先順序。此外,可以例如通過將與BW虛擬通道131(133)關聯的重播緩衝器145(145’)的尺寸配置為小於通過BW虛擬通道131(133)發送的BW包的大小來以低面積成本實施在本說明書中描述的晶片到晶片通信連結105(105’)的虛擬通道。
在通過公開的晶片到晶片通信連結105(105’)的虛擬通道傳輸之前,可以在鏈結在一起的片段中對資料包分段。通過LL虛擬通道130(132)發送的片段通常小於通過BW虛擬通道131(133)發送的片段。與包關聯的片段關於通過公開的晶片到晶片通信連結105(105’)的傳輸是自包含的,從而每個片段具有它自己的連結迴圈冗餘碼(LCRC)。一般而言,小片段的存儲和轉發提供通過虛擬通道以吞吐量為代價的延遲。另外,將包分段成鏈結在一起的大片段提供以更長存儲和更大轉發延遲為代價的高吞吐量。根據公開的技術,通過LL虛擬通道130(132)發送的片段小於通過BW虛擬通道131(133)發送的片段。例如,在與BW虛擬通道145、185(145’、185’)關聯的緩衝器具有256位元組的大小時,可以通過BW虛擬通道131(133)發送4K包作為具有256位元組的大小並且鏈結在一起的多個片段。
可以通過直通式(cut-through)傳輸來實現比前述存儲轉發傳輸的延遲甚至更低的傳輸延遲。直通式傳輸是包發送系統100所使用的技術,其中包發送器110(110’)例如一旦處理接收的包的目的地址,則在包發送器已經接收到整個包之前開始轉發包。與存儲轉發比較,後一種技術減少了通過傳輸連結105(105’)的延遲,但是可能較不可靠,因為潛在地發送被破壞的包。僅在接收器150(150’)在接收整個包之後執行LCRC時才可以確定發送的包包含錯誤這 樣的事實。然而在接收器150(150’)在這一點確定發送的包不良時第二(第一)設備101-2(101-1)的CPU可能已經對不良資料採取行動。這樣的情形可能難以(並且在一些情況下不可能)化解。
在傳輸之前鏈結包的片段避免了前述問題。這樣,晶片到晶片通信連結105(105’)的發送器側直傳包的鏈結的片段。在通信連結的接收器側在與接收器185(185’)關聯的緩衝器中存儲發送的片段。接收器150(150’)針對在接收器緩衝器185(185’)中存儲的片段確定LCRC是否良好。以這一方式,接收器向SoC的交易層、例如向第二(第一)設備101-2(101-1)僅發送良好的包。如果接收器150(150’)針對在接收器緩衝器185(185’)中存儲的片段確定LCRC不良,則從接收器緩衝器185(185’)丟棄不良片段並且發送用於重播(重傳)丟棄的片段的請求。以這一方式,關鍵的字延遲很好,因為片段延遲僅略高於純粹的直通式傳輸。
在一些實例中,通過單個通信連結發送很大的系統級包(例如涉及電腦系統的持久存儲)。使用常規通信協議來發送這樣的大包可能破壞其他包的延遲,因為後者必須等待大包傳輸完成。使用常規通信協議來發送這樣的大包也可能負面地影響隨機存取記憶體(RAM)尺寸設定,因為根據預計通過通信連結發送的最大包的大小設定重播和流控制緩衝器的尺寸。另外,使用常規通信協議來發送這樣的大包可能延長緩衝器壽命,因為在包已經到達(在接收器側的)連結夥伴的交易層之前不能從重播緩衝器清除它。
在本說明書中描述的晶片到晶片通信中,可以將最大淨荷尺寸設置成64個DWORD。其他最大淨荷尺寸可以是16、32或者128個DWORD。DWORD是32位元無符號整數(範圍:十進位0至4294967295)。根據公開的技術,每個交易層包(TLP)被視為單個AXI事務。此外,在傳輸之前將 TLP分段成片段包(或者簡稱為片段),從而每個片段包攜帶TLP的淨荷的關聯部分。包起始(SOP)位元指示新TLP開始。第一片段包含控制資訊,比如TLP的長度、位址、快取記憶體和保護屬性。後續片段僅指示必須在哪個虛擬通道上發送它們並且令SOP位元=0。SOP位元的這一個值指示將這樣的片段鏈結到對應的先前片段。用於鏈結的片段的包負荷較小,因為接收器可以根據在第一片段包中指定的長度確定預計多少更多資料。通過以這一方式鏈結片段,公開的晶片到晶片通信連結105(105’)可以支援大包的傳輸而(在連結的發送器側145/145’或者在連結的接收側185/185’)無需用於存儲片段包的大緩衝器。另外根據公開的技術,通過鏈結小資料片段而通過LL虛擬通道130(132)發送LL包(以保證低延遲),並且通過鏈結更大資料片段而通過BW虛擬通道131(133)發送BW包(以保證高吞吐量)。
如上文描述的那樣,為了減少通過公開的晶片到晶片通信連結105(105’)發送的最大淨荷尺寸,使用鏈結以通過BW虛擬通道131(133)發送BW包作為片段。即使在這樣的情況下,仍然可能有在將要通過LL虛擬通道130(132)發送的一些LL包不能等待BW包的整個片段通過BW虛擬通道131(133)的傳輸完成的情形。為了能夠處置這樣的情形,在本說明書中描述的晶片到晶片通信連結105(105’)允許在BW虛擬通道131(133)上的傳輸中斷,從而可以及早終止TLP的當前發送的片段。在這樣的情況下,發送器110(110’)發送END符號。接收器150(150’)的狀態機跟蹤TLP的片段的長度並且將準備接受用於這一TLP的進一步鏈結的片段。
注意頻繁中斷在BW虛擬通道131(133)上的傳輸可能顯著削弱其吞吐量,因此可以針對公開的晶片到晶片通信連結105(105’)實施在BW虛擬通道131(133)上的吞吐量與在LL虛擬通道130(132)上的低延遲之間的折衷。 在一些實施中,可編程的中斷粒度“n”可以是n=2、4、8、16、32或者64個DWORD。以這一方式,在發出中斷命令時,在發送END符號以終止當前發送的片段之前向接收器150(150’)發送當前發送的片段包的與中斷粒度相等的部分。
一般而言,晶片到晶片通信可以使用重播過程以在存在偶然位元錯誤時保證可靠連結操作。將片段包與嵌入的CRC和片段序列號一起發送。在相反連結方向105’上通過LL虛擬通道132返回用於連結105的BW虛擬通道131的資料連結層ACK包或者NACK包。接收器150(或者代表接收器150)向發送器110發送ACK包以指示已經正確接收並且可以從發送器的重播緩衝器145清除上至某個序列號的片段包。接收器150(或者代表接收器150)向發送器110發送NACK包以指示需要重播並且該重播包含最後已知的良好片段包的序列號。
在本說明書中描述的晶片到晶片通信連結105(105’)可以使用僅NACK的重播機制,從而一檢測到破壞的片段包,接收器150(或者代表接收器150)就向發送器110發送NACK包以請求重傳片段。此外,發送器110(110’)保持對在重播緩衝器145(145’)中存儲片段包的時間的跟蹤,並且一旦在重播緩衝器中存儲片段包持續比預定時間更長就可以丟棄存儲的片段包。由於接收器150(或者代表接收器150)向發送器110以低延遲發送NACK回應,所以根據公開的技術的發送器110所使用的重播緩衝器145可以小於作為常規晶片到晶片通信的一部分而使用的重播緩衝器。
另外,可以實施“準時”流控制作為公開的技術的一部分’以使接收器150能夠在達到預定緩衝器門檻值的情況下通過(經由反向連結105’的LL虛擬通道132)向發送器110發送用於停止發送片段包的指令來防止緩衝器185溢出。可以通過低延遲反向通道132發送指令這樣的事實允許接收器150設置與接收器緩衝器185的全容量接近的預定門 檻值。以這一方式,在本說明書中描述的晶片到晶片通信相對於常規晶片到晶片通信使用更少緩衝並且減少了接收器側緩衝器185(185’)的尺寸。
此外,公開的技術可以支援活動狀態電源管理(ASPM),從而在發送器110(110’)與接收器150(150’)之間的通信連結105(105’)的功率消耗基於性能要求自動改變。可以通過軟體指令指引發送器110(110’)和接收器150(150’)的關於功率消耗的狀態。儘管在重置通信連結時資料速率固定,但是操作頻率(資料速率)可以例如在1-8千兆位元/秒的範圍中可變。連結的功率消耗隨著連結速度近似線性伸縮,因此可以定制資料速率適應各種應用/場景的功率要求。對於某些應用,在本說明書中描述的晶片到晶片通信連結105(105’)可以被配置為相對於常規通信連結節省高達30%的功率。
上文在本說明書中描述的NACK協議與“準時”流控制的組合允許在空閒時使通信連結(例如105)的一個方向斷電。在公開的晶片到晶片通信連結105(105’)的一些實施中,退出時間太高而無法在空閒時使連結斷電,因為重播緩衝器145(145’)和接收器緩衝器185(185’)將需要增加尺寸以便處置增加的退出時間。例如1μs退出時間在8千兆位元/秒下對應於重播緩衝器145(145’)的尺寸(1千位元組*通道)和接收器緩衝器185(185’)的尺寸(1千位元組*通道*VC)。這些尺寸將在更低速度下相應地更小。因而,晶片到晶片通信連結105(105’)的功率管理顧及退出延遲以及LL和BW虛擬通道130(132)、131(133)中的每個虛擬通道所消耗的功率。
在一些其他實施中,維持1μs以下的喚醒時間允許在未使用時除了鎖相迴路(PLL)部件之外使通信連結(例如105)的一個方向斷電。然而PLL部件可以消耗活動狀態功率的高達40%。因此在一些情況下也關斷與通信連結105 (105’)關聯的PLL部件以減少功率消耗。在這樣的情況下,可能影響晶片到晶片通信連結105(105’)的退出延遲(PLL鎖定時間)。為了進一步減少公開的晶片到晶片通信連結105(105’)的功率消耗,可以例如使用專用反向通道邊帶信號來發送NAK和反壓訊息。作為另一示例,可以在低速、低功率反向通道上使用常規通信協定來發送NAK和反壓訊息。
可以在第一與第二晶片之間的公開的晶片到晶片通信連結105(105’)的實體層中實施晶片通信連結的附加功率節省。在一些實施中,可以限制連接第一和第二晶片的跡線的長度以減少功率消耗並且放寬抖動要求。例如跡線的長度不長於10cm。另外,由於功率隨著擺動電壓線性伸縮,所以可以限制後者以減少功率消耗。例如擺動電壓不大於400mV。前述低擺動電壓允許提供分離的0.9V的數位VDD(DVDD)而不是1.8V的類比VDD(AVDD),以便進一步減少通信連結功率。在其他實施中,具有數百個百萬分之一(PPM)差異的分離時脈用來改進公開的晶片到晶片通信連結105(105’)的功率消耗。在這一情況下,可以不支援擴頻鐘控(SSC),並且喚醒時間相對於在使用單個時脈時的實施而言增加。在一些其他實施中,為了進一步增加功率節省,消除連接第一和第二晶片的跡線,並且經由DC耦合實施在第一與第二晶片之間的通信連結105(105’)。
下文在表1中示出根據在本說明書中描述的晶片到晶片通信的功率狀態的示例。
功率狀態P0對應於用於在本說明書中描述的晶片到晶片通信的完全活躍連結105(105’)的功率消耗並且代表在常規晶片到晶片通信中使用的功率消耗的一小部分。另外,與公開的晶片到晶片通信連結105(105’)的功率狀態P1對應的退出時間在1μs以下。出於這一原因,可以使在連結105(105’)的每個方向上的通道獨立斷電。對照而言,常規晶片到晶片通信要求使兩個方向一起斷電。
公開的技術可以用來向高速晶片間通信連結配置虛擬通道,從而通信連結支援在虛擬通道之間的低延遲傳輸和差別QoS。一般而言,在針對晶片到晶片通信連結的每個虛擬通道重複在連結的發送器側的重播緩衝器作為在連結的接收器側上的接收器緩衝器這一需要中反映用於為連結實施虛擬通道的晶片面積代價。發送器和接收器晶片的面積並且因此這些晶片的成本與它們的相應緩衝器的尺寸成比例。可以借助在下文中描述的手段來保持用於公開的晶片到晶片通信連結的每個虛擬通道的緩衝器尺寸較小,從而允許以合理成本實施多個虛擬通道。
一種用於減少緩衝器的尺寸並且因此減少發送器和接收器電路的方式是最小化緩衝器壽命。緩衝器壽命這一概念是指發送器或者接收器的緩衝器被將要通過在發送器與接收器之間的通信連結發送的給定資料元(例如包或者包的片段)佔用的指定時間。如果指定時間短則緩衝器壽命短。在指定時間之後丟棄在緩衝器中存儲的給定資料元,並且可以在緩衝器中存儲新資料元(例如新包或者相同包的後續片段)。通過最小化緩衝器壽命、從而資料包將最少量時間花費在佔用發送器和接收器晶片上的緩衝器上,並最小化這些緩衝器的尺寸且可以保持晶片的面積(和成本)較小。
公開的晶片到晶片通信的上述方面可以用來最小化緩衝器壽命。例如,將通過公開的晶片到晶片通信連結 105(105’)發送的包的分段允許在重播緩衝器145中存儲由發送器110發送的包的片段僅直至接收器150確認接收到該片段。以這一方式,可以在與常規晶片到晶片通信連結相比的更短時間內釋放重播緩衝器145。對於常規晶片到晶片通信連結,應當在發送器、例如根聯合體(root complex,RC)設備或者端點(EP)設備發送包之時在重播緩衝器中存儲整個包。作為另一示例,通過根據公開的技術的通信連結105(105’)的BW虛擬通道131(133)發送的片段的中斷與如下常規晶片到晶片通信相比,允許接收器150向發送器110更快返回ACK/NACK包,在該常規晶片到晶片通信中,僅在接收器的緩衝器中存儲發送器發送的完整包之後才可以返回這樣的ACK/NACK包。
作為又一示例,分段允許由接收器150(150’)接收並且在其緩衝器185(185’)中存儲的發送的包的片段在接收器150(150’)接收整個包之前由接收器150向交易層、例如向第二(第一)設備101-2(101-1)轉發。接收的片段的這樣的轉發可以出現,因為根據分段,為了校驗接收的片段的完整性而需要的錯誤校驗資訊是在接收器緩衝器185(185’)中存儲的片段的一部分。另外,交易層可以使用包的每個接收的片段的標誌特徵(例如鏈結位元)來重新組裝包,因此接收器150(150’)可以在接收整個包之前向交易層、例如向第二(第一)設備101-2(101-1)轉發每個接收的片段。作為又一示例,根據公開的技術,可以在將要在BW虛擬通道131(133)上發送或者正在發送的更大包之前發送將要在LL虛擬通道130(132)上發送的小包。
此外,在分別位於兩個不同晶片上的兩個設備(例如101-1、101-2)之間根據公開的技術執行的通信可以被配置為如同兩個設備位於單個晶片上那樣。圖3B示出使用晶片到晶片通信連結305’的這樣的多晶片集成300’的示例。這一連結可以對應于上文結合圖3A描述的晶片到晶片通信 連結305。在這一實例中,兩個晶片之一、例如CP 301’-2通過晶片到晶片通信連結305’向兩個晶片中的另一晶片、例如AP 301’-1發送包,從而發送的包的負荷部分引用與兩個晶片中的另一晶片關聯的位址位置。可以基於以下方面實施多晶片集成,如同結合圖3B描述的多晶片集成那樣。
在一個方面中,在本說明書中描述的晶片到晶片通信連結105(105’)使用雙向基址暫存器(BAR)。通過在兩個連結方向上使用對稱的BAR,兩個晶片中的每個晶片可以映射位於兩個晶片中的另一晶片上的從設備的記憶體緩衝器。對照而言,常規晶片到晶片通信使用BAR以將端點(EP)設備映射到根聯合體(RC)記憶體空間中。
在另一方面中,在本說明書中描述的晶片到晶片通信連結105(105’)使用對稱中斷,從而連結的每側向另一側發送某一數量的中斷。從連結的一側向另一側發送中斷作為寫入事務。以這一方式,除了一些附加低延遲(對應于LL包通過LL虛擬通道130/132的發送)之外,通過公開的晶片到晶片通信連結105(105’)的LL虛擬通道130(132)發送中斷表現為如同中斷源於在與處理接收的中斷的主設備相同的晶片上的從設備。
現在更具體描述提出的技術。如上文在本說明書中結合圖1指出的那樣,提出的晶片到晶片通信連結使用虛擬通道以便提供與通過連結的資料傳送對應的差別QoS。公開的技術支援的流量類別(TC)是低延遲TC和帶寬TC。可以例如存在上至4個的虛擬通道。虛擬通道之一是低延遲(LL)虛擬通道,並且剩餘虛擬通道是BW虛擬通道。公開的晶片到晶片通信連結被配置為避免在BW虛擬通道上的其他流量流阻塞在LL虛擬通道上的低延遲流量。
常規晶片到晶片通信連結的虛擬通道配置有大緩衝器並且因此通常實施起來成本高。對照而言,公開的技術使用尺寸較小的緩衝器並且因此與常規晶片到晶片通信連 結比較實施起來成本更低。通過實施“準時控制”以及其他方面使得使用小尺寸緩衝器成為可能。以這一方式,接收器可以通過反向通道很快地發送反壓請求,並且在接收到請求時,發送器可以迅速中斷BW包的當前傳輸。另外,通過維持短緩衝器壽命使得將小尺寸緩衝器用於在本說明書中使用的晶片到晶片通信成為可能。可以通過實施NACK信號從接收器向發送器的快速傳播來實現維持短緩衝器壽命。這樣,在連結的發送器側上的重播緩衝器可以例如被配置為具有僅長到足以覆蓋NACK延遲的壽命。另外,公開的技術通過允許對大的交易層包進行分段並且通過高效發送小包來使用小尺寸緩衝器。以這一方式,連結的接收器側驗證在接收器緩衝器中保存的片段是否無錯,並且如果是這樣,則向交易層立即轉發驗證的片段。這樣的快速驗證也減少接收器緩衝器壽命。對照而言,用來通過為了維持連結吞吐量而需要的通信連結發送大的未分段包的常規晶片到晶片通信經常必須使用具有大的尺寸和長的緩衝器壽命的緩衝器以適應最壞情況的包長度、例如4K。另外,這樣的常規晶片到晶片通信連結的流控制可能具有低延遲,因為更新訊息可能被卡在這樣的4K包之後。
對照而言,晶片到晶片通信連結使用虛擬通道以允許通過通信連結的完全獨立的無阻塞流控制。這通過向來自虛擬通道之中的每個虛擬通道配置專用AXI介面以保證虛擬通道完全無阻塞來實現。對照而言,常規無序通信方案、例如使用AXI標籤的方案可能經歷線端(HOL)阻塞。此外,作為公開的技術的部分而實施的虛擬通道支援差別QoS,從而通過LL虛擬通道從發送器晶片向接收器晶片發送關鍵資料作為LL流量的一部分並且通過BW虛擬通道從發送器晶片向接收器晶片發送批量/帶寬資料作為BW流量的一部分。
圖4示出在第一與第二晶片(分別為設備A與B)之間的高速串列連結400的示意圖。根據在本說明書中描述 的晶片到晶片通信連結,與晶片之一對應的虛擬通道中的每個虛擬通道通過對應BAR看見晶片中的另一晶片的位址映射的相同視圖。
此外,與公開的技術關聯的虛擬通道仲裁遵從AXI QoS。例如計時器仲裁用來防止饑餓。注意,在計時器用來防止饑餓時傳遞原有QoS值。另外,超時使QoS被視為如同QoS值最大,例如來自集合{0,1,…,15}中的QoS值的最大QoS值=15。作為另一示例,最近最少批准(least-recently-granted)仲裁用來在相等QoS值的請求之間進行選擇。根據公開的技術,與LL虛擬通道對應的流量可以具有更高QoS值(以指示最高優先順序)。在一些情況下,如果主設備發出的LL訊息超過分配的帶寬,則通信連結的構造QoS模組可以丟棄訊息的QoS值。在這一情況下,在BW虛擬通道上的批量傳送可以獲得仲裁優先順序。
圖5示出通過通信連結的虛擬通道發送的包500的格式的示例。該包包括m位元組負荷和n位元組淨荷。將通過通信連結的吞吐量計算為n/(n+m)* max(連結BW)。可以通過最大化n或者最小化m或者二者來最大化通信連結的虛擬通道的吞吐量。通常希望通過虛擬通道發送大的淨荷(大n)。然而在n較大時,虛擬通道的延遲由於存儲和轉發延遲也較大。另外,最小化包負荷m對於小包尤其重要。
圖6A示出根據常規晶片到晶片通信、通過在發送器與接收器晶片之間的通信通道的包傳輸610。該包包括16位元組標頭和128位元組淨荷。首先,應當在發送器晶片的重播緩衝器中存儲整個包。前述緩衝需要近似20ns。第二,通過通道串列發送包。整個包在8千兆位元/秒的速率下的傳輸花費144ns。第三,接收器晶片在校驗CRC之前在接收器緩衝器中存儲整個發送的包。一旦確定CRC校驗的結果為肯定的,接收器則向交易層轉發存儲的包。
圖6B示出根據在本說明書中描述的晶片到晶片 通信、通過在發送器與接收器晶片之間的包傳輸650。同樣,該包包括16位元組標頭和128位元組淨荷。在這一情況下,起初在發送器晶片的重播緩衝器中存儲整個包的大到足以開始包傳輸的片段。片段的緩衝需要近似5ns。以這一方式,通過虛擬通道串列發送包的每個附加片段。每個附加片段具有4位元組標頭,用於將當前片段鏈結到附加片段系列中的先前發送的片段。這樣,包在8千兆位元/秒的速率的串列傳輸對於標頭需要16ns並且對於片段系列的每個片段需要36ns。另外,接收器晶片在校驗發送的片段中的CRC之前在接收器緩衝器中僅存儲發送的片段。一旦成功執行CRC校驗,則向交易層轉發存儲的片段。以這一方式,根據公開的技術的包分段與片段鏈結的組合將與包的傳輸關聯的延遲從164ns減少至57ns,以用於控制向交易層遞送的第一資料。
此外,公開的技術允許在包中插入IDLE符號以對將通過虛擬通道發送的包分段。通過插入IDLE符號對包分段減少了發送器存儲和轉發延遲,因為發送器晶片無需在開始發送包的當前可用的片段之前等待整個包可用於傳輸。另外,發送器可以被配置為在插入IDLE符號之前收集至少n個DWORD以形成包的當前片段。另外,通過插入IDLE符號對包分段減少了接收器晶片的彈性緩衝器的延遲。例如如果彈性緩衝器下溢,則它可以向交易層發送IDLE符號。彈性緩衝器將向交易層發送的IDLE符號可以由彈性緩衝器創建並且無需通過連結從發送器接收。
在一些實施中,在反壓出現時,插入IDLE符號可以立即停止包傳輸。在其他實施中,在反壓出現時,通過及早終止來停止BW包的傳輸而允許LL片段的傳輸完成。
包優先順序可以指示針對包通過晶片到晶片的通信連結的傳輸而允許的最壞情況延遲。表2示出根據公開的技術的按照優先順序降冪排序的多個包類型。
表2
為了根據公開的技術控制兩個晶片之間的資料流程,接收器緩衝器控制器監視在接收器緩衝器中存儲的資料的量。在佔用接收器緩衝器超出預定門檻值時,接收器緩衝器控制器發送節流訊息(也稱為流控制訊息)以通知發送器拖延發送n個以上的附加符號。可以在仍然佔用接收器緩衝器上至預定門檻值之時向發送器定期發送這樣的流控制訊息。在本說明書中描述的晶片到晶片通信允許接收器緩衝器控制器通過中斷在反向BW虛擬通道上的當前資料傳送來快速發送流控制訊息。如上文在本說明書中描述的那樣,回應於從接收器控制器接收到流控制訊息,發送器控制器快速停止在BW虛擬通道上發送當前片段。另外,發送器控制器被配置為等待預定時間間隔以便來自接收器的另一流控制訊息到達反向LL虛擬通道。如果另一流控制訊息無法在預定時間間隔期間到達,則發送器控制器被配置為恢復片段通過BW虛擬通道的當前傳輸。
根據在本說明書中描述的晶片到晶片通信,例如使用節流光纖通道(FC)包以最高優先順序發送流控制訊息。以這一方式,流控制延遲包括裕度延遲的100ns+發送節流包所需的時間。由於節流包通常包括10位元組,所以其傳輸時 間為10ns,從而流控制延遲共計為110ns。以這一方式,可以在流控制延遲、通道數目和每個通道的傳送速率方面指定接收器緩衝器的預定門檻值。對於支援每通道、每ns發送1位元組和110ns流控制延遲的通信連結,需要在發送節流包時在接收器緩衝器中留有至少(110 *每虛擬通道的通道數目)位元組空閒。
為了保證公開的晶片到晶片通信連結可靠,針對在包的一系列片段中的每個片段,在接收器接收到片段時校驗CRC。在CRC校驗檢測到傳輸錯誤時,向發送器發送NACK訊息以請求重播接收的片段。發送器被配置為在重播緩衝器中保存發送的片段並且在接收到NACK訊息時重播它。NACK訊息無需包括與發送的片段關聯的序列號,因為發送器被配置為重新發送在重播緩衝器中的每個片段。如果NACK包被損壞,則在兩個連結上可採用隱性NACK。例如,當CRC校驗檢測出錯誤時,接收器被配置為開始重播接收器側的重播緩衝器中的每個片段。以這一方式,連結夥伴接收NACK訊息或者重播的片段。
另外,為了不延遲在反向LL虛擬通道上的LL包,在CRC校驗未檢測到傳輸錯誤時不向發送器發送ACK訊息。此外,發送器被配置為使發送的片段隨時間老化、然後丟棄老化的片段。可以基於用於發送NACK包的延遲指定從重播緩衝器清除發送的片段時的年齡。由於用於發送NACK包的延遲對於公開的技術而言較小,所以發送器的重播緩衝器相對較小。對照而言,常規晶片到晶片通信需要相對大的重播緩衝器以適應長的ACK/NACK延遲。
如上文指出的那樣,公開的技術基於CRC校驗和重播以提供可靠的晶片到晶片通信連結。在本說明書中描述的晶片到晶片通信連結配置有可以檢測與三位元翻轉一樣低的傳輸錯誤的CRC。至於大多數數位碼,多項式碼的錯誤檢測和糾正能力由碼的最小漢明距離(HD)確定。例如如果 CRC多項式對於給定連結具有HD=3,則這意味著不可能存在能夠造成未檢測到錯誤的1位元和2位元組合錯誤(其中位元錯誤是位元值的反轉),但是存在在作為包內的集合而被破壞時不可被該CRC檢測到的至少一個3位元組合。
表3示出在給定的CRC大小和資料字長度下HD多項式的最大長度。
基於表3中所示的資訊,15位元組包的傳輸可以使用8位元CRC,其對於三位元翻轉而言是可靠的。另外,256位元組包的傳輸可以使用13位元CRC,其對於三位元翻轉而言是可靠的。另外,512位元組包(對應於攜帶4096位元資料的包)的傳輸可以使用16位元CRC,其對於三位元翻轉而言是可靠的。
公開的技術被配置為具有低的包負荷以便實現用於BW包傳輸的大於90%的連結吞吐量。此外,針對每256位元組的資料採用不多於16位元組的負荷。因此,在傳輸之前分段和鏈結通過公開的晶片到晶片通信連結發送的BW包,並且這樣可以將小負荷用於每個鏈結的片段的傳輸。在一些實施中,保持每鏈結的片段的最大負荷在14位元組以下。如上文描述的那樣,16位元的片段負荷用於CRC。
在一些情況下,需要128b/130b方案用於對在晶片到晶片通信連結上發送的包編碼。在這樣的情況下,根據 公開的技術發送的包具有幀內CRC。例如可以向CRC的LCRC部分分配1位元組,因此釋放的位元組可以用於幀CRC。在一些應用中,可能需要對幀長度實施橢圓碼加密(ECC),因為接收不正確的幀長度將使公開的技術重新執行時脈同步。
為了進一步改進在本說明書中描述的晶片到晶片通信連結的利用,可以在傳輸之前在連結的多個虛擬通道上對準包。在一些實施中,可以執行對準,從而包在所有多個虛擬通道上始於DWORD邊界。DWORD對準可以簡化多虛擬通道傳輸,因為可以複用基於DWORD對準的配置而不必在傳輸之前驗證包對準。在其他實施中,可以執行對準,從而包在所有多個通道上始於給定位元組。位元組對準可以改進連結利用,因為無需向對準邊界填充事務包。例如在連接的片段具有6位元組負荷時使用位元組對準以便避免如倘若使用DWORD對準則必需的那樣必須將負荷延伸至8位元組。
在本說明書中描述的晶片到晶片通信可以與週邊部件互連快速(PCIe)或者移動工業處理器介面(MIPI)的實體層(PHY)結合操作。例如PCIe PHY提供最高吞吐量。作為另一示例,MIPI M-PHY提供最佳功率優化並且操作高達5.9Gbits/sec。根據公開的技術,PHY使用400mV擺動(與在PCIe中使用的800/1200mV形成對照)並且針對比PCIe更短的跡線來優化。
可以如在PCIe中那樣實施在本說明書中描述的晶片到晶片通信的活動狀態電源管理(ASPM)。對於零層L0通信,可以從通信連結的空閒方向暫時去除功率。然而關斷通信連結的一個方向增加其延遲。這樣,可以針對通信連結的實際使用根據延遲比對功率節省的折衷有計劃地接通或者關斷功率節省模式。對於一層L1通信,兩個方向可以協商以在通信連結空閒時斷電。在這一情況下,在可以恢復通過連結的操作之前重訓練(retrain)空閒連結。
在本說明書中描述的晶片到晶片通信連結也支 援PCIe L1基板。以這一方式,發送器控制器可以請求關斷參考時脈。可以有計劃地啟用這樣的請求。此外,發送器控制器可以有計劃地接通或者關斷通信連結。另外,公開的技術可以用來實施不對稱的晶片到晶片通信連結。這一特徵例如在資料流量不對稱時有用。然而注意訓練和回送測試往往對於不對稱連結比對於對稱連結更複雜。
除了上文描述的方面之外,公開的技術允許AXI協議映射。表4示出AXI協定如何映射寫入位址通道。
表5示出AXI協議如何映射讀取位址通道。
表6示出AXI協定如何映射寫入資料通道。
表7示出AXI協定如何映射寫入回應通道。
表7
表8示出AXI協定如何映射讀取資料通道。
表8中所示情況對應於每節拍(beat)的RRESP。每片段校驗可以發送每片段的一個響應。如果轉發錯誤,則將RRESP設置成SLVERR。
在本說明書中描述的晶片到晶片通信連結可以被配置為使用全選通來支援未對準的資料傳送。例如,發送器在每8位元組資料之後發送1個字節選通。在這一情況下,使用選通給在通信連結之上的發送增添1/8負荷。備選地,在根據公開的技術的通信連結上的傳輸可以被配置為處置任意開始和結束位元組。在這樣的情況下,在RW虛擬通道上發送的包的最後片段包括用於指示填充多少位元組的資訊。在這一情形中,發送器將仍然發送上至長度*大小邊界的正確數 目的DWORD。另外,公開的技術可以被配置為使用AXI長度*大小並且估計起始位址。可以經由USER信號指示起始位址。在本說明書中描述的通信系統的積分器部件在主設備處將USER信號打結(tie-off)以與其需要匹配。
圖7示出用於AXI讀取/寫入請求的根據公開的技術的包格式700的示例。該包包括(i)負荷和(ii)淨荷750。負荷具有14位元組並且在兩個部分中被發送:負荷的第一部分由接收器在發送包的淨荷650之前發送作為包的一部分,該第一部分具有11位元組並且包括四個欄位710、720、730和740。負荷的第二部分由接收器在發送包的淨荷750之後發送作為包的一部分,該第二部分具有3位元組並且包括兩個欄位760和770。
負荷的第一部分的第一欄位710對應於開始K碼(START)並且具有8位元。負荷的第一部分的第二欄位720對應於序列號(SEQ)並且具有8位元。在通信連結的發送器側的重播緩衝器中可以存在上至128個未完成包。負荷的第一部分的第三欄位730對應于包開始(SOP)並且具有7位元。第三欄位730可以指示當前包是否為控制(CTRL)或者資料包、是否為讀取或者寫入包、是否為請求或者回應包。第三欄位730的7位元中的2位元用來指定用於傳輸包的虛擬通道(VC)。第三欄位730的7位元之一用作前向錯誤(FE)位元。負荷的第一部分的第四欄位740可以指示寫入/讀取位址(AW/AR)並且具有65位元。第四欄位740的65位元中的四十位元指定保護快取記憶體的地址。第四欄位740的65位元中的十位元指定包的長度(以DWORD為單位)。第四欄位740的65位元之一指定是否鎖定地址。第四欄位740的65位元中的兩位元指定在通信連結上的傳輸的突發類型。第四欄位740的65位元的剩餘十二位元指定包傳輸的AXI QoS值。
包的淨荷750包括將在通信連結上作為包的一部分而發送的資料並且具有n*32位元。淨荷資料都不用於 AXI讀取。另外,負荷的第二部分的第一欄位760包括16位元CRC。負荷的第二部分的第二欄位770對應於結束K碼(END)並且具有8位元。以這一方式,淨荷大小與發送的包大小之比為n*32/(n*32+14位元組)。可以通過減少包負荷的大小來增大這一比值。如下文描述的那樣,可以例如通過在傳輸之前對包分段和鏈結來減少每傳輸的負荷大小。
圖8示出根據公開的技術的包格式800的示例,其用於讀取響應或者寫入響應或者用於當前發送的包的鏈結的讀取/寫入繼續片段。包/片段包括(i)負荷和(ii)淨荷850。負荷具有6位元組並且在兩個部分中被發送:負荷的第一部分由接收器在發送包/片段的淨荷850之前發送以作為包/片段的一部分,該第一部分具有3位元組並且包括四個欄位810、820、830和845。負荷的第二部分由接收器在發送包/片段的淨荷850之後發送作為包/片段的部分,該第二部分具有3位元組並且包括兩個欄位860和870。負荷的第一部分的前三個欄位810、820和830對應于上文結合圖7描述的三個欄位710、720和730。類似地,負荷的第二部分的兩個欄位860和870對應于上文結合圖7描述的欄位760和770。
負荷的第一部分的第四欄位845對應于鏈結指示符(R)並且具有1位元。鏈結指示符R指定當前片段被鏈結到通過通信連結發送的包的先前片段並且緊隨其後。以這一方式,淨荷大小與發送的片段大小之比為n*32/(n*32+6位元組)。用於連續片段的前述比值的該值可以比用於上文結合圖7描述的包的這一比值的值高20%。
通常,通過通信連結的流量的僅一小部分需要低延遲,而流量的剩餘部分需要高吞吐量。結合圖7-8描述的包可以根據公開的技術用來通過通信連結的BW虛擬通道提供流量的高吞吐量部分。在通信連結的LL虛擬通道上提供流量的需要低延遲的部分。
在一些實施中,根據公開的技術實施的晶片到晶 片通信連結具有它自己的基址暫存器(BAR)。此外,以雙向方式實施BAR,從而不存在在主機/設備(主設備/從設備)之間的不對稱。實施BAR0以指向晶片到晶片通信連結的本地暫存器塊。BAR數目從2-32可配置,從而至少一個BAR用於暫存器編程並且另一BAR用於記憶體訪問。晶片到晶片通信連結的前述BAR被配置為支援64位元定址。當前在多數晶片到晶片通信上使用40位元位址。另外,與根據公開的技術實施的晶片到晶片通信連結關聯的BAR獨立於虛擬通道,從而晶片到晶片通信連結的每個虛擬通道看見晶片間位址映射的相同視圖。
根據公開的技術實施的晶片到晶片通信連結的前述BAR配置實現端到端(例如針對主設備和從設備通信)遵循AXI排序規則。因此,一對主/從設備(主設備位於兩個晶片中的第一晶片上,從設備位於兩個晶片中的第二晶片上)執行的軟體過程(SW)可以具有兩個晶片在一起的共識,如同主設備和從設備共同定位於單個晶片上。另外,晶片到晶片通信連結可以通過提供根據公開的技術的基於ID的排序來配置有危險校驗邏輯以允許可緩衝的寫入及早響應。對照而言,不可緩衝的或者從設備的事務一直去往從設備。此外,AXI排序規則的端到端應用支援屏障。記憶體屏障是一類屏障指令,其使得通信連結對在屏障指令之前和之後發出的記憶體操作實行排序約束。這通常意味著保障在屏障之前執行某些操作並且在屏障之後執行其他操作。與根據公開的技術的AXI排序規則的前述實施對照,常規晶片到晶片通信包括用於管理混合的AXI-“通信協定”-AXI排序的邏輯,其中通信協定可以是PCIe。這樣的管理邏輯是複雜的,並且需要在讀取或者寫入通道上使用可能在多數情況下不合需要的阻塞來實行混合的規則。
常規晶片到晶片通信提供用於通過在一對主/從設備之間的通信連結交換資訊的中斷向量。一般而言,根聯 合體(RC)設備扮演主角色。與前述常規晶片到晶片通信對照,公開的技術使分別位於兩個不同晶片上的主設備和從設備能夠在對等基礎上通信,從而可以在兩個晶片中的任一晶片上實施任務。例如中斷由兩個晶片中的發送器晶片的對電平敏感的輸入管腳觸發,並且一旦觸發,向兩個晶片中的接收器晶片發送中斷作為交易層包(TLP)。在TLP中的一位元指示中斷。僅針對TLP指定向量編號,因為無需位址用於發送中斷。在接收器側接收TLP使得在接收器側上的對應中斷輸出信號變高。此外,在本說明書中描述的晶片到晶片通信連結配置有雙向中斷,從而通信連結的每側可以發送和從另一側接收32個中斷。另外,在對應輸入向量在第一晶片為高時發送中斷包。連結夥伴晶片(在通信連結的另一側)通過暫存器寫入清除中斷。如果輸入向量仍然為高或者再次變高,則第一晶片被配置為向連結夥伴晶片發送另一中斷包。
另外,在本說明書中描述的晶片到晶片通信連結被配置為控制包流並且避免鎖死。例如,AXI具有通過晶片到晶片通信連結的五個專用通道AR、AW、W、R和B。這五個通道是獨立的,以避免與鎖死的一半對應的條件。此外,五個通道中的每個通道已經預留用於讀取請求、寫入請求和寫入回應的存儲緩衝器。以這一方式,公開的技術可以跟蹤未完成請求的數目以避免在超過可用緩衝器時發出更多請求。另外,兩個連結夥伴被配置為支援相同數目的AXI通道,從而晶片到晶片通信可以支援兩個連結夥伴的最少數目的未完成請求。另外,如上文在本說明書中描述的那樣使用準時流控制來管理寫入資料緩衝器和讀取資料緩衝器。另外,根據公開的技術,相互獨立地管理用於LL虛擬通道、BW虛擬通道和AXI通道的存儲裝置。
作為結論,在本說明書中描述的晶片到晶片通信連結在高效利用連結夥伴晶片的面積之時支援低延遲和高帶寬資料流程的平行傳輸。基於虛擬通道實施公開的技術以實 現通過晶片到晶片通信連結的獨立流控制和差別QoS。此外,與虛擬通道對應的緩衝器高效用來獲得關於目標性能的低實施成本(晶片面積)。通過使用ASPM以管理在本說明書中描述的晶片到晶片通信連結並且通過基於MIPI M-PHY或者PCIe PHY實施連結的實體層來針對連結實現功率效率。另外,公開的技術的多個方面實現健壯的和可用的晶片到晶片通信連結的實施。這樣的方面的示例是中斷、記憶體映射和避免引入附加鎖死依賴性的排序規則。此外,在本說明書中描述的晶片到晶片通信連結通過支援AXI的無縫運送來實現無縫的晶片間操作。
上文已經具體描述少數實施方式並且各種修改是可能的。可以在電子電路、電腦硬體、固件中或者在它們的組合、比如在本說明書中公開的結構裝置及其結構等效物中實施公開的主題內容,該主題內容包括在本說明書中描述的功能操作。
術語“控制器”涵蓋用於處理資料的所有裝置、設備和機器、例如包括可編程電子裝置、一個可編程硬體處理器、一個電腦系統或者多個硬體處理器或者電腦系統。裝置除了硬體之外還可以包括處理器、固件或者其組合。
儘管本說明書包含許多細節,但是不應解釋這些為關於可以要求保護的內容範圍的限制、但是實際上為對具體實施方式可以特有的特徵的描述。在本說明書中在單獨實施方式的背景中描述的某些特徵也可以在單個實施方式中組合實施。反言之,也可以在多個實施方式中單獨地或者在任何適當子組合中實施在單個實施方式的背景中描述的各種特徵。另外,雖然上文可以描述特徵在某些組合中作用並且甚至起初這樣要求保護,但是可以在一些情況下從要求保護的組合中刪除來自該組合的一個或者多個特徵,並且要求保護的組合可以涉及子組合或者子組合的變化。
類似地,儘管在附圖中按照特定順序描繪了操 作,但是這不應被理解為要求按照所示特定順序或者按照依次順序執行這樣的操作或者執行所有圖示的操作以實現希望的結果。在某些境況中,多工和並行處理可以有利。另外,不應理解各種系統部件在上文描述的實施方式中的分離為在所有實施方式中要求這樣的分離。
其他實施方式落入所附請求項的範圍內。
100‧‧‧系統
101-1‧‧‧第一IC設備
101-2‧‧‧第二IC設備
105‧‧‧實體通信連結
105’‧‧‧實體反向通信連結
110‧‧‧發送器
110’‧‧‧第二發送器
115‧‧‧發送器電路
115’‧‧‧第二發送器控制器
120‧‧‧切換設備
120’‧‧‧第三切換設備
130‧‧‧虛擬通道
131‧‧‧虛擬通道
132‧‧‧虛擬通道
133‧‧‧虛擬通道
135‧‧‧第二硬體重播緩衝器
135’‧‧‧第四硬體重播緩衝器
145‧‧‧硬體重播緩衝器
145’‧‧‧第三硬體重播緩衝器
150‧‧‧接收器
150’‧‧‧第二接收器
155‧‧‧接收器電路
155’‧‧‧第二接收器電路
160‧‧‧第二切換設備
160’‧‧‧第四切換設備
175‧‧‧第二硬體接收器緩衝器
175’‧‧‧第四硬體接收器緩衝器
185‧‧‧硬體接收器緩衝器
185’‧‧‧第三硬體接收器緩衝器

Claims (20)

  1. 一種發送器設備,包括:硬體重播緩衝器,用於存儲資料包,其中所述資料包包括負荷部分和淨荷部分;以及電路,被配置為記錄所述硬體重播緩衝器內的記憶體位置,所述記憶體位置與所述資料包的所述淨荷部分通過實體串列通信連結向接收器設備的傳輸的中斷對應,其中所述記憶體位置參考所述資料包的所述淨荷部分的中間位置。
  2. 根據請求項1所述的發送器設備,其中與所述中斷對應的所述記憶體位置包括到所述硬體重播緩衝器中的偏移,所述偏移指示到所述中斷為止所述淨荷部分中尚未發送的已存儲位元。
  3. 根據請求項1所述的發送器設備,其中所述電路包括暫存器,所述電路在所述暫存器中記錄與所述中斷對應的所述記憶體位置。
  4. 根據請求項3所述的發送器設備,其中所述暫存器包括重播開始暫存器,並且用於記錄的所述電路包括當前傳輸位置暫存器、重播開始位置暫存器和淨荷部分結束位置暫存器,並且被配置為在發生所述中斷時向所述重播開始暫 存器傳送在所述當前傳輸位置暫存器中存儲的值。
  5. 根據請求項1所述的發送器設備,其中所述電路從與所述中斷對應的所記錄的記憶體位置開始恢復所述淨荷部分向所述接收器設備的所述傳輸。
  6. 根據請求項5所述的發送器設備,其中所述電路緊接在恢復所述淨荷部分的所述傳輸之前向所述接收器設備傳輸一個或者多個負荷位元,所述一個或者多個負荷位元向所述接收器設備指示將要接收所述淨荷部分的剩餘資料。
  7. 根據請求項1所述的發送器設備,其中所述電路在完成所述淨荷部分的所述傳輸之前,回應於從主機接收到將要通過所述實體串列通信連結向所述接收器設備傳輸的更高優先順序的資料包而引起所述淨荷部分的所述傳輸的所述中斷,並且在完成所述更高優先順序的資料包的傳輸之後恢復所述淨荷部分的所述傳輸。
  8. 根據請求項1所述的發送器設備,其中所述電路回應於通過實體反向通信連結從所述接收器設備接收到訊息而引起所述淨荷部分的所述傳輸的所述中斷,所述訊息請求所述淨荷部分的所述傳輸的所述中斷,並且在自從從所述接收器接收到所述訊息起的預定時間之後恢復所述淨荷部分的所述傳輸。
  9. 一種發送器系統,包括:實體通信連結,通過所述實體通信連結從第一積體電路(IC)設備向第二IC設備發送資料包,其中所述資料包中的每個資料包包括負荷部分和淨荷部分;發送器,用於從所述第一IC設備獲得資料包並且通過所述實體通信連結發送所述資料包,所述發送器包括硬體重播緩衝器,用於在所述資料包通過所述實體通信連結的傳輸期間存儲所述資料包的所述淨荷部分,以及發送器電路,被配置為記錄所述硬體重播緩衝器內與所述傳輸的中斷對應的記憶體位置;以及接收器,用於接收通過所述實體通信連結發送的所述資料包並且向所述第二IC設備提供所述資料包,所述接收器包括硬體接收器緩衝器,用於存儲通過所述實體通信連結發送的所述資料包,以及接收器電路,被配置為對作為所述淨荷部分的一部分而接收的一個數量的位元計數並且記錄計數。
  10. 根據請求項9所述的發送器系統,其中與所述中斷對應的所述記憶體位置包括到所述硬體重播緩衝器中的偏移,所述偏移指示到所述中斷為止所述淨荷部分中尚未發送的已存儲位元。
  11. 根據請求項9所述的發送器系統,其中所述發送器電路包括暫存器,所述發送器電路在所述暫存器中記錄與所述中斷對應的所述記憶體位置。
  12. 根據請求項9所述的發送器系統,其中所述發送器電路在接收到請求所述中斷的指令之後,一旦通過所述實體通信連結發送了所述淨荷部分的預定的一小部分就引起所述淨荷部分的所述傳輸的所述中斷。
  13. 根據請求項9所述的發送器系統,其中所述發送器電路從與所述中斷對應的所記錄的記憶體位置開始恢復所述資料包的所述淨荷部分的所述傳輸。
  14. 根據請求項13所述的發送器系統,其中所述發送器電路在所述淨荷部分的所述傳輸之前發送所述負荷部分,所述負荷部分指定所述淨荷部分的總位元計數,並且在恢復所述淨荷部分的所述傳輸之前發送一個或者多個負荷位元,所述一個或者多個負荷位元向所述接收器指示將要接收所述淨荷部分的剩餘部分,並且所述接收器電路回應於接收到指示將要接收所述淨荷部分的所述剩餘部分的所述一個或者多個負荷位元而比較所記錄的計數與所指定的總位元計數。
  15. 根據請求項9所述的發送器系統,其中所述發送器電路在完成所述淨荷部分的所述傳輸之前,回應於從所述第一IC設備接收到將要通過所述實體通信連結向所述接收器發送的更高優先順序的資料包而引起所述淨荷部分的所述傳輸的所述中斷,並且在完成所述更高優先順序的資料包通過所述實體通信連結的傳輸之後恢復所述淨荷部分的所述傳輸。
  16. 根據請求項15所述的發送器系統,其中所述發送器包括與所述硬體重播緩衝器不同的第二硬體重播緩衝器,所述第二硬體重播緩衝器用於在所述第二資料包通過所述實體通信連結的傳輸期間存儲所述第二資料包的淨荷部分,所述接收器包括與所述硬體接收器緩衝器不同的第二硬體接收器緩衝器,所述第二硬體接收器緩衝器用於在所述第二資料包通過所述實體通信連結的傳輸期間存儲所述第二資料包的所述淨荷部分,所述硬體接收器緩衝器和所述第二硬體接收器緩衝器被映射到與所述第二IC設備關聯的記憶體位址空間,並且所述發送器電路在所述資料包和所述第二資料包的所述淨荷部分的所述傳輸之前發送所述資料包和所述第 二資料包的相應負荷部分,所述相應負荷部分指定與所述第二IC設備關聯的相應位址。
  17. 根據請求項16所述的發送器系統,包括:實體反向通信連結,通過所述實體反向通信連結從所述第二IC設備向所述第一IC設備發送所述資料包;第二發送器,用於從所述第二IC設備獲得第三資料包和第四資料包並且通過所述實體反向通信連結發送所述第三資料包和所述第四資料包,所述第二發送器包括第三硬體重播緩衝器,用於在所述第三資料包通過所述實體反向通信連結的傳輸期間存儲所述第三資料包的淨荷部分;與所述第三硬體重播緩衝器不同的第四硬體重播緩衝器,用於在所述第四資料包通過所述實體反向通信連結的傳輸期間存儲所述第四資料包的淨荷部分;第二發送器電路,用於在完成所述第三資料包的所述淨荷部分的所述傳輸之前,回應於從所述第二IC設備接收到將要通過所述實體反向通信連結發送的所述第四資料包而引起所述第三資料包的所述淨荷部分的所述傳輸的中斷,記錄所述第三硬體重播緩衝器內與所述第三資料包的所述傳輸的所述中斷對應的記憶體位置,並且在完成所述第四資料包的傳輸之後恢復所 述第三資料包的所述淨荷部分的所述傳輸;以及第二接收器,用於接收通過所述實體反向通信連結發送的所述第三資料包和所述第四資料包並且向所述第一IC設備提供所述第三資料包和所述第四資料包,所述第二接收器包括第三硬體接收器緩衝器,用於存儲通過所述實體反向通信連結發送的所述第三資料包,第四硬體接收器緩衝器,用於存儲通過所述實體反向通信連結發送的所述第四資料包,其中所述第三硬體接收器緩衝器和所述第四硬體接收器緩衝器被映射到與所述第一IC設備關聯的記憶體位址空間,以及第二接收器電路,用於對作為所述第三資料包的所述淨荷部分的一部分而接收的另一數量的位元計數並且記錄另一計數,並且其中所述第二發送器電路在所述第三資料包和所述第四資料包的所述淨荷部分的所述傳輸之前發送所述第三資料包和所述第四資料包的相應負荷部分,所述相應負荷部分指定與所述第一IC設備關聯的相應位址。
  18. 根據請求項9所述的發送器系統,包括:實體反向通信連結,通過所述實體反向通信連結從所述接收器向所述發送器發送訊息,其中所述發送器電路響應於從所述接收器接收到所 述訊息而引起所述淨荷部分的所述傳輸的所述中斷。
  19. 根據請求項18所述的發送器系統,其中所述接收器在所述硬體接收器緩衝器的填充位準超過預定位準時發送所述訊息,所述訊息請求所述淨荷部分的所述傳輸的所述中斷,並且所述發送器電路在自從所述中斷起的預定時間之後從與所述中斷對應的所記錄的記憶體位置開始恢復所述淨荷部分的所述傳輸。
  20. 根據請求項18所述的發送器系統,其中所述接收器當在所述中斷之前發送的所述淨荷部分的一部分中檢測到錯誤時發送所述訊息,所述訊息請求(i)所述淨荷部分的所述傳輸的所述中斷和(ii)在所述中斷之前發送的所述淨荷部分的所述一部分的重傳,並且所述發送器電路重傳在所述中斷之前發送的所述淨荷部分的所述一部分,並且然後當在預定時間間隔內沒有從所述接收器獲得請求重傳所述淨荷部分的訊息時清除所述硬體重播緩衝器。
TW102103191A 2012-01-27 2013-01-28 發送器設備及發送器系統 TW201346572A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261591693P 2012-01-27 2012-01-27
US201261596905P 2012-02-09 2012-02-09
US201261717978P 2012-10-24 2012-10-24

Publications (1)

Publication Number Publication Date
TW201346572A true TW201346572A (zh) 2013-11-16

Family

ID=47679088

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102103191A TW201346572A (zh) 2012-01-27 2013-01-28 發送器設備及發送器系統

Country Status (3)

Country Link
US (1) US9264368B2 (zh)
TW (1) TW201346572A (zh)
WO (1) WO2013111010A1 (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8873606B2 (en) * 2012-11-07 2014-10-28 Broadcom Corporation Transceiver including a high latency communication channel and a low latency communication channel
US20150012679A1 (en) * 2013-07-03 2015-01-08 Iii Holdings 2, Llc Implementing remote transaction functionalities between data processing nodes of a switched interconnect fabric
US10505837B1 (en) * 2013-07-09 2019-12-10 Altera Corporation Method and apparatus for data re-packing for link optimization
US8977786B1 (en) * 2013-07-30 2015-03-10 Qlogic, Corporation Method and system for processing information at peripheral devices
DE102013220077A1 (de) * 2013-10-02 2015-04-02 Continental Automotive Gmbh Kommunikationssystem zur Inter-Chip-Kommunikation
US9553822B2 (en) 2013-11-12 2017-01-24 Microsoft Technology Licensing, Llc Constructing virtual motherboards and virtual storage devices
USRE49652E1 (en) 2013-12-16 2023-09-12 Qualcomm Incorporated Power saving techniques in computing devices
US10592459B2 (en) 2014-03-07 2020-03-17 Cavium, Llc Method and system for ordering I/O access in a multi-node environment
US9529532B2 (en) * 2014-03-07 2016-12-27 Cavium, Inc. Method and apparatus for memory allocation in a multi-node system
US9411644B2 (en) 2014-03-07 2016-08-09 Cavium, Inc. Method and system for work scheduling in a multi-chip system
MY173962A (en) * 2014-03-19 2020-02-28 Intel Corp Method, apparatus and system for single-ended communication of transaction layer packets
MY187344A (en) 2014-03-20 2021-09-22 Intel Corp Method, apparatus and system for configuring a protocol stack of an integrated circuit chip
FR3020543A1 (fr) * 2014-04-28 2015-10-30 St Microelectronics Grenoble 2 Procede de gestion de la communication entre deux dispositifs mutuellement connectes par un lien serie, par exemple un protocole d'interface serie point a point
US9733847B2 (en) 2014-06-02 2017-08-15 Micron Technology, Inc. Systems and methods for transmitting packets in a scalable memory system protocol
US9766692B2 (en) * 2014-08-01 2017-09-19 Apple Inc. Physical layer for peripheral interconnect with reduced power and area
US9794979B2 (en) 2015-04-13 2017-10-17 Qualcomm Incorporated Method for arbitration and adaptive power-cycling in a multi-channel network
US9825809B2 (en) * 2015-05-29 2017-11-21 Netspeed Systems Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip
JP2017027196A (ja) * 2015-07-17 2017-02-02 株式会社リコー 通信装置、電力制御方法、及び電力制御プログラム
US20170075843A1 (en) 2015-09-10 2017-03-16 Qualcomm Incorporated Unified systems and methods for interchip and intrachip node communication
JP6298030B2 (ja) * 2015-10-28 2018-03-20 ファナック株式会社 低レイテンシと高スループットのデータ通信を両立するモータ制御装置
KR102466160B1 (ko) 2016-01-08 2022-11-14 삼성전자주식회사 데이터의 루프백을 수행하는 시스템 온 칩과 집적 회로, 및 이들을 포함하는 모바일 장치
US11029748B2 (en) * 2016-03-15 2021-06-08 Qualcomm Incorporated Adaptive peripheral component interconnect express link substate initiation for optimal performance and power savings
US9946674B2 (en) * 2016-04-28 2018-04-17 Infineon Technologies Ag Scalable multi-core system-on-chip architecture on multiple dice for high end microcontroller
US11108500B2 (en) 2016-07-05 2021-08-31 Idac Holdings, Inc. Latency reduction by fast forward in multi-hop communication systems
DE112016007532T5 (de) 2016-12-21 2019-09-26 Vacon Oy Priorisierte serielle kommunikation
US10063496B2 (en) * 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10216671B2 (en) 2017-02-27 2019-02-26 Qualcomm Incorporated Power aware arbitration for bus access
US10396944B2 (en) 2017-09-19 2019-08-27 International Business Machines Corporation Low latency corrupt data tagging on a cross-chip link
CN110337643A (zh) * 2018-01-23 2019-10-15 深圳市大疆创新科技有限公司 芯片、处理器、计算机系统和可移动设备
CN108345555B (zh) * 2018-03-13 2021-10-08 算丰科技(北京)有限公司 基于高速串行通信的接口桥接电路及其方法
US11422938B2 (en) * 2018-10-15 2022-08-23 Texas Instruments Incorporated Multicore, multibank, fully concurrent coherence controller
KR20210012439A (ko) * 2019-07-25 2021-02-03 삼성전자주식회사 마스터 지능 소자 및 이의 제어 방법
KR20210073225A (ko) * 2019-12-10 2021-06-18 삼성전자주식회사 다수 개의 집적 회로 사이의 인터페이스를 제어하기 위한 전자 장치 및 그의 동작 방법
CN111371622A (zh) * 2020-03-13 2020-07-03 黄东 一种多网隔离、选择切换装置及网络资源配置方法
US11750706B1 (en) * 2020-03-26 2023-09-05 Amazon Technologies, Inc. Data transmission time management
EP4158483A4 (en) * 2020-06-01 2024-06-19 Intel Corp CHIP-TO-CHIP INTERFACE OF A MULTI-CHIP MODULE (MCM)
KR102526499B1 (ko) * 2020-09-28 2023-05-02 고려대학교 산학협력단 Fpga 기반 캐시 무효화 방법 및 이를 수행하는 장치
US11513848B2 (en) 2020-10-05 2022-11-29 Apple Inc. Critical agent identification to modify bandwidth allocation in a virtual channel
US11550674B2 (en) * 2020-10-29 2023-01-10 Texas Instruments Incorporated Redundant communications for multi-chip systems
US20210117359A1 (en) * 2020-12-24 2021-04-22 Krishna Kumar Nagar User Signals for Data Transmission Over a Bus Interface Protocol
CN115687221A (zh) * 2021-07-22 2023-02-03 智原微电子(苏州)有限公司 高速周边组件互连的事务层电路及其操作方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191255B2 (en) * 2004-10-27 2007-03-13 Intel Corporation Transaction layer link down handling for PCI express
EP1891778B1 (en) * 2005-06-03 2009-03-25 Koninklijke Philips Electronics N.V. Electronic device and method of communication resource allocation.
US7461218B2 (en) 2005-06-29 2008-12-02 Intel Corporation Size-based interleaving in a packet-based link
US7852867B2 (en) * 2007-07-06 2010-12-14 Integrated Deoice Technology, Inc. Integrated memory for storing egressing packet data, replay data and to-be egressed data
US8427951B2 (en) * 2007-08-30 2013-04-23 International Business Machines Corporation Method, system, and apparatus for reliable data packet recovery in a link layer of a data center ethernet network
US7792014B2 (en) 2007-09-28 2010-09-07 Integrated Device Technology, Inc. Method of skipping nullified packets during mass replay from replay buffer
US8335958B2 (en) * 2008-01-18 2012-12-18 St-Ericsson Sa Method of communication, in particular with capability of frame abortion or retransmission indication, between a transmitter and a receiver based on frames and corresponding communication node
US8418017B2 (en) * 2010-08-31 2013-04-09 Canon Kabushiki Kaisha Adaptive acknowledgment mechanism for network communication

Also Published As

Publication number Publication date
US20130195210A1 (en) 2013-08-01
WO2013111010A1 (en) 2013-08-01
US9264368B2 (en) 2016-02-16

Similar Documents

Publication Publication Date Title
TW201346572A (zh) 發送器設備及發送器系統
CN108702358B (zh) 可缩放高效高速串行化互连
US9223380B2 (en) System and method for power saving modes in high speed serial interface communication systems utilizing selective byte synchronization
US20170222686A1 (en) Scalable, high-efficiency, high-speed serialized interconnect
US11381514B2 (en) Methods and apparatus for early delivery of data link layer packets
EP1684188B1 (en) Data transferring system and electronic apparatus
US20170026149A1 (en) Lane error detection and lane removal mechanism to reduce the probability of data corruption
US20090290499A1 (en) Backplane Interface Adapter with Error Control and Redundant Fabric
WO2007083278A1 (en) Distributed (modular) internal architecture
CN115437978A (zh) 高速外围组件互连接口装置及其操作方法
JP5151176B2 (ja) データ通信装置、画像処理システムおよびデータ通信方法
US7843830B1 (en) Resilient retransmission of epoch data
US11892927B2 (en) Method for error handling of an interconnection protocol, controller and storage device
US20220261308A1 (en) Valid signal for latency sensitive die-to-die (d2d) interconnects
EP3671720B1 (en) Real-time on-chip data transfer system
Zabolotny Low latency protocol for transmission of measurement data from FPGA to Linux computer via 10 Gbps Ethernet link
US20240118974A1 (en) Method for facilitating frame error handling and an electronic device
US20240143434A1 (en) Flow control between peripheral component interconnect express devices
JP2014222466A (ja) 情報処理装置、情報処理システムおよび情報処理システムの通信方法
Fengfeng et al. A serial physical layer design in RapidIO
Zhao et al. Buffer design based on flow control in RapidIO