TW201633165A - 用於交易型具緩衝區記憶體中之先行識別之技術 - Google Patents

用於交易型具緩衝區記憶體中之先行識別之技術 Download PDF

Info

Publication number
TW201633165A
TW201633165A TW104138272A TW104138272A TW201633165A TW 201633165 A TW201633165 A TW 201633165A TW 104138272 A TW104138272 A TW 104138272A TW 104138272 A TW104138272 A TW 104138272A TW 201633165 A TW201633165 A TW 201633165A
Authority
TW
Taiwan
Prior art keywords
read
backhaul
link
information transmission
memory
Prior art date
Application number
TW104138272A
Other languages
English (en)
Other versions
TWI604312B (zh
Inventor
布萊恩S 摩里斯
比爾 拿里
羅伯特G 布蘭肯席普
傑佛瑞C 史汪森
Original Assignee
英特爾公司
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 英特爾公司 filed Critical 英特爾公司
Publication of TW201633165A publication Critical patent/TW201633165A/zh
Application granted granted Critical
Publication of TWI604312B publication Critical patent/TWI604312B/zh

Links

Classifications

    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

由數個讀取回傳所組成的一個序列係要經由一個交易型具緩衝區記憶體介面而被傳送至一個主機裝置,此序列至少包含對第一讀取請求的第一讀取回傳和對第二讀取請求的第二讀取回傳。該第二讀取回傳的追蹤器識別符被編碼在該第一讀取回傳中,並且該第一讀取回傳係與該第二讀取回傳之追蹤器識別符一起被傳送給主機裝置。該第二讀取回傳係在已傳送第一讀取回傳以後被傳送給主機裝置

Description

用於交易型具緩衝區記憶體中之先行識別之技術 發明領域
本揭示內容大體上係有關運算架構之領域,更特別係有關具緩衝區記憶體協定。
發明背景
半導體處理及邏輯設計的進展已使得在積體電路裝置上可存在的邏輯組件數量增多。必然地,電腦系統組態也已經從在一個系統中有單個或多個積體電路演變成在個別的積體電路上存在有多個核心、多個硬體執行緒、和多個邏輯處理器,還有其他整合在這些處理器內的介面。一個處理器或積體電路典型上包含單一個實體處理器晶粒,而這個處理器晶粒可包括有任何數量的核心、硬體執行緒、邏輯處理器、介面、記憶體、控制器樞轂(hub)等等。
由於在較小的封裝體中容入更多處理力的能力變大了,較小型運算裝置的普及率也提高了。智慧型手機、平板電腦、超薄型電腦和其他使用者設備係以級數方式在成長。然而,這些較小型裝置必須要依賴用於資料儲存及 超出形狀因數之複雜處理的伺服器。因此,對於高效能運算市場(也就是伺服器空間)的需求也提高了。例如,在現代伺服器中,典型上不只是有單一個多核心處理器,而是有複數個實體處理器(亦稱之為複數個槽位(socket))來增加運算力。但是,隨著在一個運算系統中的處理力以及裝置數量的增長,在槽位與其他裝置之間的通訊也變得更具重要性。
事實上,互連體已經從主要處理電氣式通訊的較為傳統的多點匯流排成長為有助於快速通訊的成熟的互連架構。但不幸地,由於未來的處理器會需要更高的耗電率,相應的需求也會被加諸在現有的互連架構之能力上。
依據本發明之一實施例,係特地提出一種設備,其包含:一個記憶體緩衝器裝置,用以進行下列操作:識別要經由一個介面而被傳送至一個主機裝置的由數個讀取回傳組成的一個序列,其中,該介面可包含一個交易型具緩衝區記憶體介面,並且該序列至少包含針對一第一讀取請求的一第一讀取回傳和針對一第二讀取請求的一第二讀取回傳;將該第二讀取回傳的一個追蹤器識別符編碼在該第一讀取回傳中;將該第一讀取回傳與將該第二讀取回傳之該追蹤器識別符一起傳送至該主機裝置;以及在傳送該第一讀取回傳以後將該第二讀取回傳傳送給該主機裝置。
依據本發明之另一實施例,係特地提出一種設備,其包含:一個主機裝置,其包含:一個發送器,用以 進行下列操作:將針對一第一交易的一第一讀取請求傳送至一個緩衝器裝置;及將針對一第二交易的一第二讀取請求傳送至該緩衝器裝置;以及一個接收器,用以接收來自該緩衝器裝置的一第一讀取回傳,其中,該第一讀取回傳可包含一第一追蹤器識別符以指出該第一讀取回傳對應於該第一讀取請求,並且該第一讀取回傳可進一步包括一個先行第二追蹤器識別符以指出下一個讀取回傳對應於該第二讀取請求。
依據本發明之又一實施例,係特地提出一種系統,其包含:一第一主機裝置;一個緩衝器裝置,其利用與一個記憶體存取鏈路協定相容的一個具緩衝區記憶體鏈路而連接至該第一主機裝置;一或多個記憶體裝置,其連接至該緩衝器裝置;以及一第二主機裝置,其利用與一個一般用途輸入輸出(GPIO)鏈路協定相容的一個特定鏈路而連接至該第二主機裝置;其中,該緩衝器裝置可進行下列操作:識別要經由該具緩衝區記憶體鏈路而被傳送至該第一主機裝置的由數個讀取回傳組成的一個序列,其中,該序列至少包含針對一第一讀取請求的一第一讀取回傳和針對一第二讀取請求的一第二讀取回傳;將該第二讀取回傳的一個追蹤器識別符編碼在該第一讀取回傳中;將該第一讀取回傳與將該第二讀取回傳之該追蹤器識別符一起傳送至該第一主機裝置;及在傳送該第一讀取回傳以後將該第二讀取回傳傳送給該第一主機裝置。
100、1800‧‧‧系統
105、1870、1880‧‧‧處理器
106‧‧‧前側匯流排(FSB)
110‧‧‧系統記憶體
115‧‧‧控制器樞轂
116‧‧‧記憶體介面
117、121‧‧‧輸入輸出模組;介面或埠口
118、131‧‧‧輸入輸出(I/O)模組;介面
119、132‧‧‧串聯鏈路
120‧‧‧切換器或橋接器
122、126、1896‧‧‧介面
125、405、410‧‧‧裝置
130‧‧‧圖形加速器
200‧‧‧協定堆疊
205‧‧‧交易層
206‧‧‧封包標頭或酬載
210、610a、610b‧‧‧鏈路層
211‧‧‧封包序列識別符
212‧‧‧循環冗餘檢查(CRC)
220、605a、605b‧‧‧實體層
221‧‧‧邏輯子方塊
222‧‧‧電氣子方塊、實體子方塊、實體方塊
223‧‧‧外框
300‧‧‧交易描述符
302‧‧‧全域識別符欄位
304‧‧‧屬性欄位
306‧‧‧通道識別符欄位
308‧‧‧本地交易識別符欄位
310‧‧‧來源識別符欄位
312‧‧‧優先性欄位
314‧‧‧保留欄位
316‧‧‧排序欄位
318‧‧‧無窺探欄位
406、411‧‧‧發送邏輯
407、412‧‧‧接收邏輯
415‧‧‧鏈路
416~419‧‧‧路徑、線路
505‧‧‧雙槽位組態
510‧‧‧四槽位組態
515‧‧‧組態
615a、615b‧‧‧路由層
620a、620b‧‧‧協定層
630‧‧‧封包
635‧‧‧資訊傳輸流量單元
640‧‧‧資訊傳輸物理單元
1000‧‧‧表示型態
1300、1400‧‧‧簡化方塊圖
1305、1310‧‧‧CPU裝置;CPU
1315‧‧‧緩衝器晶片;緩衝器裝置
1315a~1315l‧‧‧緩衝器裝置
1405、1410‧‧‧記憶體模組
1415‧‧‧鏈路
1420‧‧‧記憶體控制器
1425‧‧‧排程器
1430‧‧‧流程控制邏輯
1435‧‧‧錯誤檢測邏輯
1440‧‧‧主機控制器邏輯
1814‧‧‧輸入輸出(I/O)裝置
1816‧‧‧第一匯流排
1818‧‧‧匯流排橋
1820‧‧‧第二匯流排
1822‧‧‧鍵盤或滑鼠
1824‧‧‧音訊輸入輸出(I/O)
1827‧‧‧通訊裝置
1828‧‧‧儲存體單元
1830‧‧‧程式碼和資料
1832、1834‧‧‧記憶體
1838‧‧‧高效能圖形電路
1839‧‧‧高效能圖形互連
1850‧‧‧點對點互連;點對點介面
1852、1854‧‧‧點對點(P-P)介面
1872、1882‧‧‧IMC
1876、1878、1886、1888‧‧‧點對點(P-P)介面;點對點(P-P)介面電路
1890‧‧‧晶片組
1892‧‧‧介面電路
1894、1898‧‧‧點對點介面電路
圖1依據一個實施例,例示出一個系統的簡化方塊圖,此系統包含一個串聯點對點互連,用以連接電腦系統中的I/O裝置;圖2依據一個實施例,例示出一個分層協定堆疊的簡化方塊圖;圖3例示出一個交易描述符的一個實施例。
圖4例示出一個串聯點對點鏈路的一個實施例。
圖5例示出合理高效能互連體(High Performance Interconnect,HPI)系統組態之實施例。
圖6例示出與HPI相關聯的一個分層協定堆疊的一個實施例。
圖7例示出一種示範狀態機的一種表示型態。
圖8例示出經由一種示範二十線道(lane)資料鏈路傳送的一種示範資訊傳輸流量單元(flit)的一種表示型態。
圖9例示出經由一種示範八線道資料鏈路傳送的一種示範資訊傳輸流量單元的一種表示型態。
圖10例示出一種示範多槽資訊傳輸流量單元的一種表示型態。
圖11例示出經由一種示範八線道資料鏈路傳送的一種示範資訊傳輸流量單元的一種表示型態。
圖12例示出包含一個除錯訊息的一種示範多層資訊傳輸流量單元的一種表示型態。
圖13例示出使用一種具緩衝區記憶體協定的一 個系統的一種表示型態。
圖14例示出支援一種具緩衝區記憶體協定的一個緩衝器裝置的一種表示型態。
圖15A至15C例示出在一種具緩衝區記憶體協定中的示範資訊傳輸流量單元的表示型態。
圖16是依據至少一個實施例而例示出在一個示範緩衝器裝置與一個主機裝置間之通訊的一個圖。
圖17是依據至少一個實施例而例示出從緩衝器裝置到主機裝置的對一個讀取回應追蹤識別符之先行通訊的一個圖。
圖18例示出一種用於含有複數個處理器槽位的運算系統的方塊的一個實施例。
在各個圖中的相似參考號碼和名稱係指出相似元件。
較佳實施例之詳細說明
在下面的說明中描述有許多具體細節,例如作為範例的某種類型的處理器和系統組態、某種硬體結構、某種架構和微架構細節、某種暫存器組態、某種指令類型、某種系統構件、某種處理器管線階級、某種互連層、某種封包或交易組態、某種交易名稱、某種協定交換、某種鏈路寬度、某種實作、以及操作等等,以使得能夠對本發明有通盤了解。然而,熟習此技藝者係可明顯看出,並非一定要採用這些具體細節才能夠實施本揭示內容之主 體。另一方面,文中避免對於習知部件或方法(例如特定的和替代的處理器架構、用於所述演算法的特定邏輯電路或程式碼、特定韌體碼、低階互連體操作、特定邏輯組態、特定製造技術和材料、特定編譯器實作、特定演算法在程式碼中的表示型態、特定電力斷開或閘控技術或邏輯、及其他特定電腦系統操作細節)作詳細描述,以避免對本揭示內容產生不必要的混淆。
雖然下文中對實施例之描述可能係涉及在特定積體電路中(例如在運算平台或微處理器中)的能源節省、能源效率、處理效率等等,但其他實施例係可應用於其他類型的積體電路和邏輯裝置。本文中所述之實施例的類似技術和教示係可應用於可亦得益於此等特徵的其他類型的電路或半導體裝置。例如,所揭露之實施例並不受限於伺服器電腦系統、桌上型電腦系統、膝上型電腦、超筆電(UltrabooksTM),而是可亦用於其他裝置,例如手持式裝置、智慧型電話、平板電腦、或其他薄型筆記型電腦、單晶片系統(systems on a chip,SOC)裝置、以及內嵌式應用設備。手持式裝置的一些範例包括手機、網際網路(Internet)協定裝置、數位相機、個人數位助理(personal digital assistant,PDA)以及手持式PC。於此,用於高效能互連體的類似技術係可被應用來在低電力互連體中增進效能(或甚至是節省電力)。內嵌式應用設備典型上包含微控制器、數位信號處理器(digital signal processor,DSP)、單晶片系統、網路電腦(network computer,NetPC)、機上 盒、網路樞轂、廣域網路(wide area network,WAN)切換器、或可進行於下文中所教示之功能和操作的任何其他系統。此外,於本文中所描述的這些設備、方法和系統並不受限於實體運算裝置,而亦涉及對於能源節省和效率的軟體最佳化。如可從下文中之說明中明顯看出的,於本文中所描述的這些方法、設備和系統之實施例(不管係將其指為是硬體、韌體、軟體、或這當中之組合)可能會被認為是對平衡了效能考量的「綠色技術」未來而言極其重要的。
隨著運算系統的進步,在運算系統中的部件也變得更為複雜。用來在這些部件之間進行耦接和通訊的互連架構也在複雜度上有所增加,以確保符合最佳部件操作的帶寬需求。此外,不同的市場區隔也需要不同面向的互連架構來匹配各個市場。例如,伺服器需要更高的效能,而行動生態系統有時候可犧牲整體效能來作電力節省。不過,對於大部分的組構(fabric)而言,係有要以最大省電程度來提供最高合理效能這樣的單一個目標。再者,各種不同的互連體也可能從本文中所述之主體中獲益。
舉例來說,週邊部件互連快捷(Peripheral Component Interconnect Express,PCIe)互連組構架構和快速通道互連(QuickPath Interconnect,QPI)組構架構還有其他範例係可能根據於本文中所述的一或多個原理而得到改善。例如,PCIe的主要目標是要使來自不同供應商的部件和裝置能夠在橫跨複數個市場區隔的一個開放架構中合作;客端(桌上型和行動式)、伺服器(標準和企業)、 以及內嵌和通訊裝置。週邊部件互連(Peripheral Component Interconnect,PCI)快捷是針對各式各樣的未來運算和通訊平台而定義的一種高效能的一般用途I/O互連體。一些PCI屬性,例如其使用模型、載入儲存架構、以及軟體介面,係在其屢次修訂當中受到維護,而以前的並聯匯流排實作已經被可高度縮放完全串聯介面取代。較為近期的PCI快捷版本利用了在點對點互連、以切換器為基礎的技術、以及封包化協定中的進展,以傳遞新一代的效能和特徵。電力管理(Power Management)、服務品質(Quality Of Service,QoS)、熱插拔(Hot-Plug/Hot-Swap)支援、資料完整性(Data Integrity)和錯誤處理(Error Handling)是由PCI快捷所支援的進階特徵中的幾種。雖然本文中主要的討論是跟新式的高效能互連(high-performance interconnect,HPI)架構有關,但於本文中所描述的本發明之面向亦可應用於其他互連架構,例如順應PCIe的架構、順應QPI的架構、順應MIPI的架構、高效能架構、或其他習知互連架構。
請參看圖1,在此係例示出由使一組部件互連的數個點對點鏈路組成的一個組構之實施例。系統100包含耦接至控制器樞轂115的處理器105和系統記憶體110。處理器105可包括任何處理元件,例如微處理器、主機處理器、內嵌處理器、共處理器、或其他處理器。處理器105經由前側匯流排(front-side bus,FSB)106耦接至控制器樞轂115。在一個實施例中,FSB 106是如下文中所述的一個 串聯點對點互連體。在另一個實施例中,鏈路106包括順應不同互連標準的串聯差異互連架構。
系統記憶體110包括任何記憶體裝置,例如隨機存取記憶體(random access memory,RAM)、非依電性(non-volatile,NV)記憶體、或可由系統100中之裝置取用的其他記憶體。系統記憶體110經由記憶體介面116而耦接至控制器樞轂115。記憶體介面的範例包括雙資料率(double-data rate,DDR)記憶體介面、雙通道DDR記憶體介面、以及動態RAM(dynamic RAM,DRAM)記憶體介面。
在一個實施例中,控制器樞轂115可包括根樞轂、根複合體、或根控制器,例如於PCIe互連階層中者。控制器樞轂115之範例包括晶片組、記憶體控制器樞轂(memory controller hub,MCH)、北橋、互連控制器樞轂(interconnect controller hub,ICH)南橋、以及根控制器或樞轂。晶片組這個詞常常是指實際上分開的兩個控制器樞轂,例如一個互連控制器樞轂(ICH)耦接至一個記憶體控制器樞轂(MCH)。請注意,現今的系統常常會包含與處理器105整合在一起的MCH,而控制器115係用於以與下文中所述者類似的方式來與I/O裝置通訊。在一些實施例中,係可選擇使點對點路由透過根複合體115而受到支援。
於此,控制器樞轂115係經由串聯鏈路119而耦接至切換器或橋接器120。輸入輸出模組117和121(亦可稱 其為介面或埠口117和121)可包括或實施一個分層協定堆疊,用以提供控制器樞轂115和切換器120間之通訊。在一個實施例中,係有複數個裝置能夠耦接至切換器120。
切換器或橋接器120將封包或訊息從裝置125往上游導引(也就是朝向根複合體提升階層)到控制器樞轂115、以及從處理器105或系統記憶體110往下游導引(也就是降低階層而離根控制器更遠)至裝置125。在一個實施例中,係將切換器120指為是具有複數個虛擬PCI至PCI橋接裝置的一個邏輯總成。裝置125包括要與一個電子系統耦接的任何內部或外部裝置或部件,例如I/O裝置、網路介面控制器(Network Interface Controller,NIC)、加裝卡(add-in card)、音訊處理器、網路處理器、硬碟、儲存裝置、CD/DVD ROM、螢幕、印表機、滑鼠、鍵盤、路由器、可攜式儲存裝置、火線(Firewire)裝置、通用串列匯流排(Universal Serial Bus,USB)裝置、掃描器、以及其他輸入輸出裝置。在PCIe中,係以終端來指涉一般用語中之裝置。雖然在圖中並未具體示出,但裝置125係可包含橋接器(例如PCIe對PCI/PCI-X橋接器),以支援舊有裝置或其他版本的裝置或是由這些裝置所支援的互連組構。
圖形加速器130可亦經由串聯鏈路132而耦接至控制器樞轂115。在一個實施例中,圖形加速器130耦接至一個MCH,此MCH耦接至一個ICH。因此,切換器120,連同I/O裝置125,也耦接至ICH。I/O模組131和118也用於實施分層協定堆疊以在圖形加速器130和控制器樞轂115之 間進行通訊。與上文中所討論過的MCH類似地,圖形控制器,或圖形加速器130本身,係可被整合在處理器105中。
請看圖2,其例示出一個協定堆疊之實施例。分層協定堆疊200可包括任何形式的分層通訊堆疊,例如QPI堆疊、PCIe堆疊、下一代高效能運算介面(high performance computing interconnect,HPI)堆疊、或其他分層堆疊。在一個實施例中,協定堆疊200可包含交易層205、鏈路層210以及實體層220。介面,例如像是圖1中的介面117、118、121、122、126和131,係可由通訊協定堆疊200來表現。像通訊協定堆疊這樣的表示型態亦可被稱為是實施或包括有協定堆疊的模組或介面。
係可使用封包來在部件之間傳達資訊。封包可係在交易層205和資料鏈路層210中形成,以將資訊從發送部件載運至接收部件。當受到發送的封包流經其他層時,他們會藉由用來在那些層處理封包的額外資訊而被增大。在接收側會進行相反的處理程序,封包從他們的實體層220表示型態轉化成資料鏈路層210表示型態,並最終變成可由接收裝置之交易層205處理的形式(對於交易層封包而言)。
在一個實施例中,交易層205可提供在裝置之處理核心與互連架構(例如資料鏈路層210和實體層220)之間的介面。在這點上,交易層205的主要任務可包括對封包(就是交易層封包,或稱之為TLP)的組裝和拆解。交意層205可亦管理對TLP的以信用點(credit)為基礎的流程控 制。在一些實作中,係可使用分裂交易,也就是使得請求和回應在時間上分開的交易,而讓鏈路能夠在目標裝置收集回應所需之資訊的時候進行其他訊務,此僅聊舉一例。
係可利用以信用點為基礎的流程控制來實現虛擬通道和使用此互連組構的網路。在一個範例中,裝置可刊登交易層205中之各個接收緩衝器的初始信用點量。在鏈路之對面端的一個外部裝置,例如圖1中之控制器樞轂115,可計算由各個TLP所消耗的信用點量。若一個交易並未超出信用點限制,則此交易可被發送。在接收到回應的時候,一個信用點量會被儲存。這樣的信用點方案的一個範例優點是,在沒有遭遇到信用點限制的情況下,信用點返回的延時(latency)不會影響效能,還有別的其他潛在優點。
在一個實施例中,四種交易位址空間可包括組態位址空間、記憶體位址空間、輸入輸出位址空間、以及訊息位址空間。記憶體空間交易包括要將資料傳輸進出記憶體對映位置的一或多個讀取請求和寫入請求。在一個實施例中,記憶體空間交易能夠使用兩種不同的位址格式,像是例如32位元位址的短位址格式、或例如64位元位址的長位址格式。組態空間交易可被用來取用連接至此互連體的各種裝置的組態空間。對組態空間的交易可包括讀取和寫入請求。可亦定義訊息空間交易(或簡稱為訊息)來支援互連代理器之間的帶內通訊。因此,在一個示範實施例中,交易層205可組合封包標頭(header)或酬載206。
現在請快速地看一下圖3,其例示出一個交易層封包描述符的一個示範實施例。在一個實施例中,交易描述符300可係用來載運交易資訊的一種機構。在這點上,交易描述符300支援對於系統中之交易的識別。其他潛在用法包括追蹤對於預設交易排序和交易與通道之關聯所作的修改。例如,交易描述符300可包含全域識別符欄位302、屬性欄位304和通道識別符欄位306。在所例示的這個範例中,係將全域識別符欄位302繪示為包含本地交易識別符欄位308和來源識別符欄位310。在一個實施例中,全域識別符302對所有的未決(outstanding)請求而言均是獨特的。
在一個實作中,本地交易識別符欄位308是由一個請求代理器所產生的一個欄位,且其對於請求要完成該請求代理器的所有未決請求而言可係獨特的。此外,在這個範例中,來源識別符310可獨特地識別在一個互連階層內的該請求者代理器。因此,本地交易識別符308欄位和來源ID 310在一個階層域內一起提供對於一個交易的全域識別。
屬性欄位304敘明交易之特性和關係。在這點上,屬性欄位304可能會被用來提供讓對交易之預設處理能夠被修改的額外資訊。在一個實施例中,屬性欄位304包括優先性欄位312、保留欄位314、排序欄位316、以及無窺探欄位318。於此,優先性子欄位312可受起始者修改以指定該交易之優先性。保留屬性欄位314被保留以供未 來使用或由供應商定義用途。係可利用此保留屬性欄位來實施使用優先性或安全性屬性的合理使用模組。
在這個範例中,排序屬性欄位316係用於選擇性地供應傳達可能會改變預設排序規則的排序類型的資訊。在一個示範實作中,為「0」的排序屬性代表要施用預設排序規則,而為「1」的排序屬性代表放寬的排序,其中,寫入可讓同方向中的寫入通過,且讀取完成可讓同方向中的寫入通過。窺探屬性欄位318係用於判定交易是否受到窺探。如圖所示,通道ID欄位306識別與交易相關聯的通道。
回頭來討論圖2,一個鏈路層210(亦稱之為資料鏈路層210)可作用為介在交易層205和實體層220之間的一個中間階級。在一個實施例中,資料鏈路層210的一項責任是要提供用來在一個鏈路上的兩個部件之間交換交易層封包(Transaction Layer Packet,TLP)的可靠機構。此資料鏈路層210的一側接受由交易層205所組合的數個TLP、施用封包序列識別符211(就是一個識別號碼或封包號碼)、計算並施用錯誤檢測碼(就是CRC 212)、並將修改過的這些TLP呈交給實體層220以供橫跨實體傳送至外部裝置。
在一個範例中,實體層220包括邏輯子方塊221和電氣子方塊222,用以實際將封包傳送至外部裝置。於此,邏輯子方塊221負責實體層221的「數位」功能。在這點上,此邏輯子方塊可含有用來準備要由實體子方塊222發送的流出資訊一個發送部份,以及用來在將所接收到的 資訊轉送給鏈路層210之前識別和準備所接收資訊的一個接收部份。
實體方塊222含有一個發送器和一個接收器。邏輯子方塊221將符號供應給此發送器,此發送器會將這些符號串聯化並發送至外部裝置。係有外部裝置將經串聯化符號供應給該接收器,並且該接收器會將所接收到的信號轉化成位元串流。此位元串流會被解串聯並被供應給邏輯子方塊221。在一個示範性範例中,係使用發送或接收十位元符號的8b/10b傳輸碼。在此,係使用特殊符號而以外框223來為封包加框。此外,在一個範例中,該接收器亦提供從流入串聯串流中復原出的一個符號時鐘。
如上文所述,雖然是參照一個協定堆疊(例如一個PCIe協定堆疊)的一個特定實施例來論述交易層205、鏈路層210和實體層220,但分層協定堆疊並不受限於此。事實上,任何分層協定皆可被納入或實施、並採用於本文中所論述的特徵。舉例來講,以分層協定來表現的一個埠口或介面可包括:(1)用來組合封包的第一層,也就是交易層;用來排列封包的第二層,也就是鏈路層;以及用來發送封包的第三層,也就是實體層。舉一個具體的例子來講,係可使用如於本文中所述者的一個高效能互連分層協定。
接下來請參看圖4,其例示出一個串聯點對點組構的一個示範實施例。一個串聯點對點鏈路可包含用來發送串聯資料的任何發送路徑。在所示出的這個實施例中, 一個鏈路可包括兩個低電壓差動信號對:發送對406和411以及接收對412和407。因此,裝置405包含有用來將資料發送至裝置410的發送邏輯406以及用來接收來自裝置410之資料的接收邏輯407。換言之,在一個鏈路的一些實作中,係含有兩個發送路徑(也就是路徑416和417)以及兩個接收路徑(也就是路徑418和419)。
發送路徑是指用來發送資料的任何路徑,例如發送線路、銅線路、光學線路、無線通訊通道、紅外線通訊鏈路、或其他通訊路徑。在兩個裝置(例如裝置405和裝置410)之間的連接被稱為是一個鏈路,例如鏈路415。一個鏈路可支援一條線道,每條線道代表一組差動信號對(一對用於發送、一對用於接收)。為了縮放帶寬,一個鏈路可聚集由xN所表示的複數條線道,其中,N是任何受支援鏈路帶寬,例如1、2、4、8、12、16、32、64或更寬。
一個差動對可指用來發送差動信號的兩個發送路徑,例如線路416和417。舉例來講,當線路416從低電壓位準切換到高電壓位準(也就是上升邊緣)時,線路417便從高邏輯位準驅至低邏輯位準(也就是下降邊緣)。差動信號潛質上顯露出較佳的電氣特性,例如較佳的信號完整性,也就是交叉耦合、電壓超越或未達、振鈴、其他還有別的範例優點。這使得能夠有較佳的計時窗口,進而使得發送頻率可以更快。
在一個實施例中,係提供一種新的高效能互連 體(HPI)。HPI可包含以鏈路為基礎之下一代快取記憶體同調互連體。舉例來講,係可在高效能運算平台(例如工作站或伺服器)中使用HPI,包括在典型上使用PCIe或另一種互連協定來連接處理器、加速器、I/O裝置及其他諸如此類者的系統中。然而,HPI並不受限於此。相反地,係可在於本文中所描述的任何系統或平台中使用HPI。此外,亦可將所闡述的個別構想施用於其他互連體和平台,例如PCIe、MIPI、QPI等等。
為了支援複數個裝置,在一個示範實作中,HPI可包含一個指令集架構(Set Architecture,ISA)不可知論者(即,HPI能夠被實施在複數個不同裝置中)。在另一個情境中,係可使用HPI來連接高效能I/O裝置,而不只是處理器或加速器。例如,高效能PCIe裝置可透過適當的翻譯橋(即HPI至PCIe)而耦接至HPI。此外,許多以HPI為基礎的裝置(例如處理器)係可以各種方式(例如星狀、環狀、網狀等等)來使用HPI鏈路。圖5例示出複數種可能多槽位組態的示範實作。如圖所繪的一個雙槽位組態505可包含有兩個HPI鏈路;然而,在其他實作中,係可使用單個HPI鏈路。對於較大拓樸來講,係可使用任何組態,只要能夠分配識別符(identifier,ID)且有某種形式的虛擬路徑即可,其他還有別的額外或替代特徵。如圖所示,在一個範例中,一個四槽位組態510具有從各個處理器到另一個處理器的HPI鏈路。但在於組態515中所示出的八槽位實作中,並非每個槽位都透過HPI鏈路而直接彼此連接。然 而,若在處理器之間係有虛擬路徑或通道存在,則此組態便受到支援。在本地地域中,受支援處理器的範圍包括2~32個。係可透過使用複數個地域或是節點控制器間之其他互連體來達到更高數目的處理器,此僅聊舉數例。
此HPI架構包括對一個分層協定架構的一種界定,在一些範例中,係包括數個協定層(同調協定、非同調協定,可能還有其他以記憶體為基礎的協定)、一個路由層、一個鏈路層以及一個實體層。此外,HPI可進一步包含與電力管理器(例如電力控制單元(power control unit,PCU))、測試與除錯設計(design for test and debug,DFT)、錯誤處置、暫存器、安全性、或其他範例有關的改良。圖5例示出一個示範HPI分層協定堆疊的一個實施例。在一些實作中,圖5中所例示的至少一些層可以是非必要的。各層係處理其自己層級的資訊粒度或定量(協定層605a、605b處理封包630,鏈路層610a、610b處理資訊傳輸流量單元635,且實體層605a、605b處理資訊傳輸物理單元(phit)640)。請注意,在一些實施例中,根據實作,一個封包係可包含部分的資訊傳輸流量單元、單一個資訊傳輸流量單元、或複數個資訊傳輸流量單元。
舉第一個例子來講,一個資訊傳輸物理單元640的寬度包含鏈路寬度與位元的一對一對應(例如,20位元鏈路寬度包含為20位元的資訊傳輸物理單元)。資訊傳輸流量單元可具有較大的規模,例如184、192或200位元。請注意,若資訊傳輸物理單元640是20位元寬且資訊傳輸 流量單元635的大小是184位元,那麼會需要分數個資訊傳輸物理單元640來發送一個資訊傳輸流量單元635(例如,用9.2個20位元的資訊傳輸物理單元來發送一個184位元的資訊傳輸流量單元635,或用9.6個20位元的資訊傳輸物理單元來發送一個192位元的資訊傳輸流量單元,此僅聊舉數例)。請注意,實體層的基礎鏈路之寬度是可以改變的。例如,各方向線道的數量可包含2、4、6、8、10、12、14、16、18、20、22、24等等。在一個實施例中,鏈路層610a、610b能夠在單一個資訊傳輸流量單元中嵌入複數件不同交易,並且在該資訊傳輸流量單元中係可嵌有一或多個標頭(例如1、2、3、4)。在一個範例中,HPI將這些標頭分裂至對應的槽位以使得該資訊傳輸流量單元中的複數個訊息之目的地可為不同的節點。
在一個實施例中,實體層605a、605b可負責資訊在實體媒體(電氣式或光學式等等)上的快速傳輸。實體鏈路可係在兩個鏈路層實體(例如層605a和605b)之間的點對點式。鏈路層610a、610b可從上方層抽取出實體層605a、605b並提供能夠可靠地傳輸資料(以及請求)以及能夠管理兩個直接連接實體間之流量控制的能力。鏈路層可亦負責將實體通道虛擬化成複數個虛擬通道和訊息類別。協定層620a、620b倚賴鏈路層610a、610b來在將協定訊息提交給實體層605a、605b以橫跨實體鏈路進行傳輸之前將協定訊息對應至適當的訊息類別和虛擬通道。鏈路層610a、610b可支援多種訊息,例如請求、監聽、回應、回 寫、非同調資料,此僅聊舉數例。
係可將HPI的實體層605a、605b(或PHY)實施在電氣層(也就是連接兩個部件的導電體)之上、鏈路層610a、610b之下,如於圖6中所例示的。實體層及對應邏輯可係駐在各個代理器上,並連接在彼此分開(例如,位在鏈路兩端的裝置上)的兩個代理器(A和B)上的鏈路層。本地和遠端電氣層係藉由實體媒體(例如,電線、導體、光學等等)來連接。在一個實施例中,實體層605a、605b具有兩個主要的階段:初始化和操作。在初始化的期間當中,對鏈路層而言連接是不透明的,並且信號發送可能涉及計時狀態及交握事件的組合。在操作的期間當中,對鏈路層而言連接是透明的,並且信號發送是使所有線道作為單個鏈路一起操作而以一種速度進行。在操作階段的期間當中,實體層將資訊傳輸流量單元從代理器A運輸至代理器B以及從代理器B運輸至代理器A。連接亦被稱為鏈路,其從鏈路層中提取出一些實體面向,包含媒體、寬度以及速度,並與鏈路層交換資訊傳輸流量單元以及當前組態(例如寬度)之控制或狀態。初始化階段包含較次要的階段,例如輪詢、組配。操作階段亦包含較次要的階段(例如鏈路電力管理狀態)。
在一個實施例中,係可實施鏈路層610a、610b來在兩個協定或路由實體之間提供可靠的資料傳輸。鏈路層可從協定層620a、620b提取出實體層605a、605b,並可負責在兩個協定代理器(A、B)之間的流量控制,並提供 虛擬通道服務給協定層(訊息類別)和路由層(虛擬網路)。在協定層620a、620b與鏈路層610a、610b之間的介面典型上可係封包等級。在一個實施例中,在鏈路層的最小傳輸單元被稱為資訊傳輸流量單元,其係特定數量個位元,例如192位元或其他某種單位。鏈路層610a、610b倚賴實體層605a、605b來為實體層605a、605b的傳輸單元(資訊傳輸物理單元)加框使其成為鏈路層610a、610b的傳輸單元(資訊傳輸流量單元)。此外,鏈路層610a、610b可被邏輯性地分解成兩個部分:一個傳送器和一個接收器。在一個實體上的一個傳送器與接收器對可連接至在另一個實體上的一個傳送器與接收器對。流量控制在資訊傳輸流量單元基礎以及封包基礎上都常常進行。錯誤檢測和校正也有可能是在資訊傳輸流量單元等級基礎上進行。
在一個實施例中,路由層615a、615b可提供一種用於將HPI交易從來源處導引至目的地的彈性分散式方法。因為可透過各個路由器的可規劃路由表來指明用於複數個拓樸的數個路由演算法,所以此方案具有彈性(在一個實施例中,規劃是由韌體、軟體或其組合進行)。路由功能可以是分散的;係可透過一連串的路由步驟來完成路由,其中,各個路由步驟是透過在來源路由器、中間路由器或目的地路由器處的表格查詢所界定。係可使用在來源處的查詢來將HPI封包注入HPI組構。係可使用在中間路由器處的查詢來將HPI封包從輸入埠口導引至輸出埠口。係可使用在目的地埠口處的查詢來將目標定為目的地HPI協 定代理器。請注意,在一些實作中,因為路由表,當然還有路由演算法,並沒有受到規格的具體界定,所以路由層可以是很薄的。這考慮到了彈性以及由系統實作界定的各種使用模型,包括彈性平台架構拓樸。路由層615a、615b倚賴鏈路層610a、610b來提供對上至三個(或更多個)虛擬網路(virtual network,VN)的使用--在一個範例中,其係兩個無鎖死性(deadlock-free)的VN,VN0和VN1,在各個虛擬網路中均界定有幾個訊息類別。在鏈路層中可界定有一個共享適應性虛擬網路(shared adaptive virtual network,VNA),但這個適應性網路可能沒有被直接暴露在路由概念中,因為訊息類別和虛擬網路各可能擁有專用的資源和受保證的前送進度,其他還有別的特徵和範例。
在一個實施例中,HPI可包含一個同調協定層620a、620b,用以支援快取來自記憶體的幾行資料的代理器。想要快取記憶體資料的代理器可使用同調協定來讀取要被載入到其快取記憶體中的該行資料。想要修改其快取記憶體中之一行資料的代理器可使用同調協定來在修改資料之前取得此行的所有權。在修改了一行之後,代理器可遵循協定要求而將之保持在其快取記憶體中直到它將該行回寫至記憶體中為止或它將該行包含在對一個外部請求的一個回應中為止。最後,代理器可滿足要使其快取記憶體中的一行無效的外部請求。此協定藉由指定所有代理器均可遵循的規則而確保資料同調性。其亦提供使無快取記憶體之代理器能夠同調地讀取和寫入記憶體資料的技術手 段。
係可執行兩個條件來支援使用HPI同調協定的交易。第一,此協定可維持資料一致性,例如,在逐位址基礎上,維持在數個代理器之快取記憶體中的資料之間還有在這些資料與記憶體中之資料之間的一致性。大致上,資料一致性可係指:在一個代理器之快取記憶體中的各個有效資料行表示的是資料之最新近值,並且在一個同調協定封包中被發送的資料在她被傳送出去的時候可代表該資料之最新近值。當在快取記憶體或發送資料中沒有該資料的有效複本時,此協定可確保該資料之該最新近值存在於記憶體中。第二,此協定可為請求提供受到良好界定的確定點。讀取的確定點可指出資料何時可被使用;而寫入的確定點可指出所寫資料何時可被全域觀察到且將被之後的讀取載入。此協定在同調記憶體空間中對可快取請求和不可快取(uncacheable,UC)請求都可支援這些確定點。
在一些實作中,HPI可使用嵌入式時鐘。係可在利用互連體發送的資料中嵌入時鐘信號。由於係將時鐘信號嵌在資料中,所以可以省略獨特且專用的時鐘線道。這可以是很有用的,例如,特別是在接腳(pin)非常珍貴的系統中,其由於可使得一個裝置能夠有更多個接腳專用於資料傳輸而很有用處。
可在一個互連體之兩側上的兩個代理器之間建立一條鏈路。傳送資料的代理器可係本地代理器,而接收資料的代理器可係遠端代理器。可讓這兩個代理器使用狀 態機來管理此鏈路的各種面向。在一個實施例中,實體層資料路徑可將資訊傳輸流量單元從鏈路層發送至電氣前端。在一個實作中,控制路徑包括一個狀態機(亦稱之為鏈路訓練狀態機或其他類似者)。此狀態機之動作及離開狀態行為可係取決於內部信號、計時器、外部信號或其他資訊。事實上,一些狀態,例如幾個初始化狀態,可能係有計時器提供用於來離開狀態的超時值。請注意,在一些實施例中,檢測係指檢測在一個線道雙腳上的事件;但並不一定是同時的。然而,在其他實施例中,檢測係指由一個指定代理器檢測一個事件。舉例來講,去抖動(debounce)係指信號維持判定。在一個實施例中,HPI支援在無作用線道的情況中之操作。在此,線道係可在特定狀態中被拋棄。
在狀態機中所界定的狀態可包括重置狀態、初始化狀態以及操作狀態,其他還有別的分類及子分類。在一個範例中,一些初始化狀態可具有一個次要計時器,用來在超時之時離開此狀態(基本上就是由於未能在此狀態中有所進展而異常中止)。異常中止可包含對暫存器,例如狀態暫存器,之更新。一些狀態可亦有一或數個主要計時器,用來為狀態中之主要功能計時。係可將其他狀態界定為使得內部或外部信號(例如交握協定)而驅動從該狀態至另一個狀態的交易,此僅聊舉一例。
狀態機可亦支援透過單一步驟的除錯、在初始化異常中止上的凍結、以及對測試器的使用。在此,離開 狀態行為可被拖延或扣留直到除錯軟體準備好。在一些情況中,離開行為可被拖延或扣留直到發生次要超時為止。在一個實施例中,動作和離開行為可係根據訓練序列之交換。在一個實施例中,鏈路狀態機係運行於本地代理器時鐘域,並且從一個狀態到下一個狀態的變換是與發送器訓練序列邊界同時。係可使用狀態暫存器來反映目前狀態。
圖7例示由在HPI的一個示範實作中之代理器所使用的一種示範狀態機之至少一部分的一種表示型態。要知道,在圖7之狀態表中所包含的這些狀態並未詳細列出所有可能狀態。例如,有一些變換係受到省略以簡化圖示。此外,可能有一些狀態受到組合、分裂或省略,還有一些其他的可被加入。此等狀態可包含:事件重置狀態:在熱或冷重置事件上進入。回復內定值。初始化計數器(例如同步計數器)。可離開至另一個狀態,例如另一個重置狀態。
計時重置狀態:用於帶內重置的計時狀態。可驅動預先定義電氣有序集合(electrical ordered set,EOS)以使得遠端接收器能夠檢測到EOS並也進入計時重置。接收器具有保持電氣設定的線路。可離開至一個代理器至校準重置狀態。
校準重置狀態:在未在線路上發訊的情況下進行校準(例如接收器校準狀態)或關閉驅動器。可係基於一個計時器在該狀態中的一個預定時間量。可設定操作速度。當埠口未被賦能時可作用為一個等待狀態。可包括最 小駐留時間。可根據設計而發生接收器調節或錯調開(staggering off)。可在超時以及(或是)完成校準之後離開至接收器檢測狀態。
接收器檢測狀態:檢測(一或多個)線道上有無接收器。可尋找接收器目的地(例如接收器下拉插入)。可在一個特定值被設定時或在另一個特定值未被設定時離開至校準重置狀態。當有檢測到接收器或發生超時之時可離開至發送器校準狀態。
發送器校準狀態:用於發送器校準。可係針對發送器校準所配置的一個計時狀態。可包括在線道上的發訊。可連續地驅動一個EOS,例如電氣閒置離開有序集合(electric idle exit ordered set,EIEIOS)。當完成校準時或當計時器時間到時可離開至相容狀態。當計數器已達截止或發生次要超時之時可離開至發送器檢測狀態。
發送器檢測狀態:使有效發訊適格。可係一個交握狀態,在此狀態中,代理器完成動作並基於遠端代理器發訊而離開至下一個狀態。接收器可使得來自發送器的發訊適格。在一個實施例中,接收器尋找喚醒檢測,並且若在一或多個線道上被去抖動則在其他線道上尋找。發送器驅動一個檢測信號。可響應於完成所有線道的去抖動並且(或是)超時而離開至輪詢狀態,或在尚未完成所有線道上之去抖動而超時的狀況下離開至輪詢狀態。在此,係可使一或多個監控線道保持清醒以使喚醒信號去抖動。並且若被去抖動,則其他線道有可能被去抖動。這可使得能 夠在低電力狀態下節省電力。
輪詢狀態:接收器調適、位元上鎖(例如藉由初始化漂移緩衝器)、位元組上鎖(例如藉由識別符號邊界)、以及訓練序列邊界上鎖(例如藉由針對電氣有序集合(EOS)以及(或是)訓練序列標頭而鎖定)。線道可接著被去偏斜(deskew)。可亦完成交握以離開輪詢到數個可能狀態中之一者。例如,係可(由代理器)致使離開至鏈路寬度(Link Width)狀態、相容(Compliance)狀態、回送標誌(Loopback Marker)狀態或重置(Reset)狀態中之任何一者。交握行為可包括完成各種所界定接收器動作或條件並傳送應答訊息(ACK)以觸發離開至對應於所完成之動作集合及該ACK的狀態。對於輪詢去偏斜,係可在第一長度對在遠端發送器處的線道對線道偏斜加帽(cap)以供用於最高速並在第二長度加帽以供用於慢速。可係在緩慢模式以及操作模式中進行去偏斜。接收器可有使線道對線道偏斜去偏斜的一個特定最大值,例如8、16或32個偏斜區間。在一些實作中,接收器動作可亦包括延時固定(latency fixing)。在一個實作中,接收器動作可係在對有效線道地圖的去偏斜成功時完成。在一個範例中,成功交握係可在某個數目的連續訓練序列標頭和應答一起被接收到、並且某個數目的訓練序列和一個應答在接收器已完成其動作之後被發送時達成。
相容狀態:從輪詢狀態進入。可針對有效化目的而使得一個代理器成為一個相容主使者或從屬者。(作 用為主使者的)裝置可傳送一個相容型樣至另一個裝置(從屬者),並且從屬者可在重新定時回其本地時鐘之後回送該型樣(例如,在沒有取消任何極性倒轉或線道逆轉的情況下)。係可使用相容型樣來在回送狀態無法作用或不被喜愛時描繪在一些線道子集上之類比前端的操作。例如,係可基於成功的位元組鎖定、TS鎖定、去偏斜、延時測試、以及倚賴幾件數位邏輯之適當作用的其他測試而事先調節對回送狀態的進入行為。在完成位元鎖定的情況下,係可進入相容狀態,並且可使用相容狀態來作跳動(jitter)或雜訊調查、除錯、探索鏈路,在此僅聊舉數例。換言之,相容狀態可在輪詢之結果並不容許直接進入回送狀態時作用為輪詢狀態的另一個出口。此相容狀態可藉由來自主使者的一個發送器而驅動一個超序列。接收器在監控線道上尋找喚醒、使該喚醒去抖動、拋棄不好的線道、適應、並作位元鎖定等等。從屬者發送器可驅動相容型樣直到其接收器動作完成。接著,回送被重新定時且未被去偏斜。從屬者接收器作類似的監控和去抖動等等動作。離開可以是到重置狀態,例如計時重置,或到回送型樣(Loopback Pattern)狀態以開始測試,在此僅聊舉數例。在離開至回送型樣狀態的情況中,主使者可被送(例如藉由軟體控制器)至回送型樣狀態以試驗更多特殊型樣。
代理器回送標誌狀態:回送標誌是一個代理器狀態,但不像其他的代理器狀態,主使者和從屬者動作及離開行為可能會不一樣。回送從屬者可取消任何極性倒轉 以及(或是)線道逆轉,但不能解拌(descramble)或重拌(rescramble)被回送的位元。應答交換不可施用於從屬者,因為它正在回送。由於從屬者可在於符號邊界上回送之前去偏斜,故不可強迫主使者重新作位元組鎖定或重新去偏斜,但主使者可重新鎖定訓練序列以避免針對某個別名(alias)的鎖定。如此技術手段可包括對LFSR重新播種、比較TS及(或)EIEOS、或這些手段的某種組合。SDS的末端標示出回送設置的末端以及型樣生成的開端、檢查及計數。
代理器回送型樣狀態(或阻擋鏈路狀態):從回送標誌狀態或相容狀態進入。在回送型樣狀態中,取代於控制型樣,主使者發送器係可傳送額外的特殊型樣以增補在相容狀態或回送型樣狀態中被回送的那些。接收器可在回送型樣狀態中接收特殊型樣,並檢測在所接收型樣中的錯誤。對於發送器適應而言,兩個代理器都可以是主使者。在一段預定時段當中,發送器可傳送一個型樣,並且遠端接收器可比較該型樣並判定針對紀錄於一個儲存元件(例如暫存器)中之所接收型樣的優質因數或量度。比較方法和量度可以是獨立設計的(例如,有抖動注入的BER)。在此時段末尾,兩個代理器都可離開至重置狀態以使背後通道檢驗量度並設置下一個發送器適應重複次(iteration)。
鏈路寬度狀態:代理器以最終線道地圖對遠端發送器通訊。接收器接收此資訊並解碼。接收器可將受組 配線道地圖紀錄在一個結構中,在第二結構中的先前線道地圖值之檢查點之後。接收器可亦以應答(acknowledge,ACK)回應。可起始帶內重置。例如,用於起始帶內重置的第一狀態。在一個實施例中,係回應於ACK而離開到下一個狀態,例如資訊傳輸流量單元組配狀態。此外,在進入低電力狀態之前,若一個喚醒檢測信號發生次(occurrence)的頻率下降到低於一個特定值(例如,每某數量個單位區間(unit interval,UI)(例如4K UI)1個),則可亦產生一個重置信號。接收器可保持當前的與先前的線道地圖。發送器可基於具有不同值的訓練序列而使用不同線道群。在一些實施例中,線道地圖不可修改某些狀態暫存器。
資訊傳輸流量單元鎖定組態單元:由發送器進入,但此狀態被認為在發送器與接收器皆已離開至阻擋鏈路狀態或其他鏈路狀態時離開(也就是次要超時假設性爭論(secondary timeout moot))。在一個實施例中,發送器離開至一個鏈路狀態的行為包括在接收到一個行星連珠信號之後的資料序列開始(start of a data sequence,SDS)和訓練序列(training sequence,TS)邊界。在此,接收器離開行為可係基於對來自遠端發送器的SDS之接收。此狀態可係從代理器至鏈路狀態的一個橋樑。接收器識別SDS。若在解拌器之後所接收到的SDS被初始化,則接收器可離開至阻擋鏈路狀態(blocking link state,BLS)(或一個控制窗口)。若發生超時,則可離開至重置狀態。發送器以一 個組配信號來驅動線道。發送器可根據條件或超時狀況而離開至重置、BLS或其他狀態。
發送鏈路狀態:一種鏈路狀態。資訊傳輸流量單元被傳送至遠端代理器。可從阻擋鏈路狀態進入並可由於事件(例如超時)而回到阻擋鏈路狀態。發送器發送資訊傳輸流量單元。接收器接收資訊傳輸流量單元。可亦離開至低電力鏈路狀態。在一些實作中,可將發送鏈路狀態(transmitting link state,TLS)稱為L0狀態。
阻擋鏈路狀態:一種鏈路狀態。發送器和接收器係以統一方式操作。可係一個計時狀態,在此計時狀態中,鏈路層資訊傳輸流量單元被拖延而實體層資訊被傳達給遠端代理器。可離開至低電力鏈路狀態(或根據設計而至其他鏈路狀態)。在一個實施例中,阻擋鏈路狀態(BLS)週期性地發生。此週期被稱為BLS區間且可受到計時,其在慢速狀況時可與在操作速度狀況時有所不同。請注意,係可週期性地阻擋鏈路層使其無法傳送資訊傳輸流量單元以使得某長度的實體層控制序列可被傳送,例如在發送鏈路狀態或部份寬度發送鏈路狀態當中。在一些實作中,可將阻擋鏈路狀態(BLS)稱為L0控制(L0 control,L0c)狀態。
部份寬度發送鏈路狀態:鏈路狀態。可藉由進入部份寬度狀態而節省電力。在一個實施例中,不對稱的部份寬度係指一個雙向鏈路的兩個方向具有不同的寬度,這在一些設計中係可受到支援。傳送部份寬度指示以進入 部份寬度發送鏈路狀態的一個示範起始者(例如一個發送器)係示於圖9之範例中。在此,係在以具有第一寬度的一個鏈路上進行傳輸的時候傳送一個部份寬度指示,以將此鏈路轉變成是以新的第二寬度發送。可能會導致在重置當中的不匹配。請注意,速度不可更改但寬度可以。因此,有可能是以不同寬度來傳送資訊傳輸流量單元。可能在邏輯上類似於發送鏈路狀態;然而,由於寬度較小,所以可能需要更長的時間來發送資訊傳輸流量單元。可根據某些已接收或已傳送訊息或是由於其他事件離開此部份寬度發送鏈路狀態或鏈路阻擋狀態而離開至其他鏈路狀態,例如低電力鏈路狀態。在一個實施例中,發送器埠口可以錯調(stagger)方式關閉閒置線道以提供較佳的信號完整性(即,減輕雜訊),如於時序圖中所示出的。在此,係可在鏈路寬度正在改變的時期當中使用不可重試資訊傳輸流量單元(例如空(Null)資訊傳輸流量單元)。對應的接收器可拋棄這些空資訊傳輸流量單元,並以錯調方式將閒置線道關閉,並且在一或多個結構中紀錄當前的跟先前的線道地圖。請注意,狀態與相關狀態暫存器可維持不受更動。在一些實作中,係可將部份寬度發送鏈路狀態稱為部份L0(partial L0,L0p)狀態。
離開部份寬度發送鏈路狀態:離開部份寬度狀態。在一些實作中,係可以或不可以使用阻擋鏈路狀態。在一個實施例中,發送器藉由在閒置線道上傳送部份寬度離開型樣來起始離開行為以對其進行訓練和去偏斜。舉一 個例子,一種離開型樣係以EIEOS(其受到檢測並受到去抖動以傳訊告知線道已準備好要開始進入一個完整發送鏈路狀態)開始,並可係以SDS或閒置線道上的快速訓練序列(Fast Training Sequence,FTS)結束。在離開序列期間的任何失敗(接收器動作,例如沒有在超時之前完成去偏斜)會停止對鏈路層的資訊傳輸流量單元傳輸,並主張重置,這是藉由在下一個阻擋鏈路狀態發生次(occurrence)上重置鏈路來處理。SDS可亦將線道上之拌碼器或解拌器初始化成適當的值。
低電力鏈路狀態:是一個低電力狀態。在一個實施例中,它是比部份寬度鏈路狀態更低的電力,因為在這個實施例中在所有線路雙向上的發訊都被中止。發送器可使用阻擋鏈路狀態以請求低電力鏈路狀態。在此,接收器可解碼請求並以ACK或NAK回應;否則將會觸發重置。在一些實作中,可將低電力鏈路狀態稱為L1狀態。
在一些實作中,係可助益狀態變換以使得狀態能夠被旁繞過,例如在這些狀態的狀態動作(例如某種校準和組配)已經完成的時候。先前的狀態結果與鏈路組態可被儲存並於之後的初始化和鏈路組配中再利用。沒有重複此等組配和狀態動作,而是可以旁繞過對應的狀態。然而,傳統的實施狀態旁繞的系統常常會實施複雜的設計和昂貴的驗證逃脫。在一個範例中,並不使用傳統旁繞,而是讓HPI可在某些狀態中使用較短的計時器,例如在狀態動作並不需要被重複的狀況中。除了其他潛在優點以外, 此係可潛在性地使得能夠進行更為一致且同步化的狀態機變換。
在一個範例中,以軟體為基礎的控制器(例如透過對實體層的外部控制點的控制器)係可使得一或多個特定狀態能夠使用較短的計時器。例如,對於動作已經被進行和儲存的一個狀態而言,此狀態可被短計時以有助於從這個狀態快速離開至下一個狀態。然而,若先前的狀態動作失敗或無法在短計時器時間內施行,則可進行狀態離開行為。此外,例如,當狀態動作應該要被重新進行的時候,控制器可使短計時器失能。係可針對各個個別狀態設定一個長計時器(或預設計時器)。若在這個狀態的組配動作無法在長計時器之內完成,則可能會發生狀態離開行為。長計時器可被設定為讓狀態動作能夠完成的一個合理時段。相反地,短計時器可被合理縮短,而在一些事例中使得不可能在不回頭看先前已進行狀態動作的情況下進行狀態動作,此僅聊舉數例。
在一些情況中,在鏈路之初始化(或再初始化)的期間當中,當代理器通過狀態機而朝向一個操作鏈路狀態前進時,係可能會發生致使狀態重置(例如至重置或其他狀態)的一或多個失敗或狀態離開事件。事實上,鏈路之初使化係可在沒有完成初始化並進入鏈路狀態的情況下迴繞過一或多個狀態。在一個範例中,係可針對在鏈路初始化之狀態變換中之無收益迴圈的數目維持一個計數。例如,可在每次有初始化還未抵達鏈路狀態就回到重置狀態 時使計數器增量。只要鏈路成功進入鏈路狀態,此計數器便可針對該鏈路被重置。此等計數器可由在該鏈路之雙側上的代理器維持。此外,係可設定一個臨界值,例如藉由利用一或多個外部控制點的一個以軟體為基礎的控制器來設定。當無收益迴圈之計數達到(或超過)預定臨界值時,係可使此鏈路之初始化懸置(例如被設定並維持在重置狀態中或重置狀態之前)。在一些實作中,為了重新著手初始化並將初始化程序從懸置狀態中釋放,一個以軟體為基礎的控制器可觸發對鏈路的重新啟動或重新初始化。在一些情況中,以軟體為基礎的工具可分析懸置初始化之性質並進行診斷、設定暫存器值、以及進行其他操作以提防將來的初始化迴繞。確切說來,在一些實作中,控制器可考慮重新開始被懸置的鏈路初始化而設定較高的計數器臨界值或甚至壓制計數器,此僅聊舉數例。
在HPI的一些實作中,係可界定超序列,各個超序列對應於個別狀態或是對個別狀態的進入或離開。一個超序列可包括資料集合和符號的一個重複序列。在一些情況中,此序列可一直重複直到完成一個狀態或狀態變換、或對應事件之傳達為止,此僅聊舉數例。在一些情況中,超序列的重複序列可係根據一個預定頻率而重複,例如預定數目個單位區間(UI)。一個單位區間(UI)可對應於用於在一個鏈路或系統的一個線道上發送單一個位元的時間區間。在一些實作中,重複序列可係從一個電氣有序集合(electrically ordered set,EOS)開始。因此,係可預期 一個EOS依據預定頻率重複。係可將這樣的有序集合實施為是經界定的16位元組碼,其可係以十六進位格式表示,此僅聊舉一例。在一個範例中,超序列的EOS可係一個EIEOS。在一個範例中,EIEOS可係類似於低頻時鐘信號(例如預定數量個重複的FF00或FFF000十六進位符號等等)。預定的一組資料可跟隨在EOS之後,例如預定數量個訓練序列或其他資料。係可在狀態變換(包括鏈路狀態變換以及初始化,此僅聊舉數例)中使用這樣的超序列。
在互連體的一些實作中,例如在QPI中,係可引起或實施串聯資料鏈路的終止,例如在鏈路被重置或初始化的時候。此途徑可能會為鏈路初始化帶來複雜性和時間。在HPI的一些實作中,係可維持鏈路之終結,包括在鏈路重置或再次初始化的期間內。此外,HPI可允許裝置之熱插入。當有另一個裝置被引進時,不管是透過熱插入或其他方式,有新遠端代理器加入的這個線道的電壓特性將會改變。本地代理器可感測在線道電壓上的這些改變,以檢測遠端代理器的存在,並提示鏈路初始化。可在狀態機中界定狀態機狀態和計時器以在無終結的情況下協調鏈路之檢測、組配和初始化。
在一個實作中,HPI可透過由接收代理器針對進入發訊而屏蔽線道來在無須改變終結值的情況下基於一個帶內重置而支援再次初始化。係可利用發訊來識別好的線道。例如,可針對要由一個發送器裝置傳送的一組預定信號中之任何一者而屏蔽線道以有助於復原和組配此線道。 在一個範例中,係可對應於一或多個初始化或再初始化任務而界定一個超序列。預定序列可包括電氣閒置離開有序集合(electric idle exit ordered set,EIEOS),此EIEOS後面有額外的序列資料。在一些情況中,當在一個線道兩側上的各個裝置變成作動中時,這些裝置可開始傳送對應於一個特定初始化狀態等等的一個超序列。在一個實施例中,係可支援兩種類型的接腳重置;電力開啟(或「冷」)重置以及熱重置。由軟體所起始的或(在實體層或另一層上)發源於一個代理器的重置可被帶內傳達給另一個代理器。然而,由於對嵌入式時鐘的使用,所以可能會係藉由利用有序集合(例如特定電氣有序集合或EIOS)之對另一個代理器的傳達來處理帶內重置。
可係在初始化之期間內傳送有序集合,並且可係在初始化之後傳送PHY控制序列(或「阻擋鏈路狀態」)。阻擋鏈路狀態可阻擋鏈路層使其無法傳送資訊傳輸流量單元。再舉一例,係可阻擋鏈路層訊務以傳送幾個NULL資訊傳輸流量單元,這些NULL資訊傳輸流量單元可在接收器處被捨棄。
如於上文中所介紹的,在一個實施例中,係可一開始以慢速進行,之後再以高速初始化來完成初始化。慢速時的初始化使用暫存器和計時器的預設值。軟體接著使用慢速鏈路來設置暫存器、計時器和電氣參數,並清除校準旗號以為快速初始化鋪路。舉例來講,初始化可包含像是重置、檢測(Detect)、輪詢(Polling)、相容和組配 (Configuration)這樣的狀態或任務,也可包含其他可能的狀態或任務。
在一個範例中,一個鏈路層阻擋控制序列(也就是阻擋鏈路狀態(BLS)或L0c狀態)可包括計時狀態,在此計時狀態中,鏈路層資訊傳輸流量單元被拖延而PHY資訊被傳達給遠端代理器。在此,發送器與接收器可開始一個阻擋控制序列計時器。並且在這些計時器時間到之前,發送器和接收器可離開阻擋狀態並可採取其他行動,例如離開至重置、離開至不同鏈路狀態(或其他狀態),包括使得能夠跨越鏈路傳送資訊傳輸流量單元的狀態。
在一個實施例中,係可提供鏈路訓練,並且鏈路訓練包括對經攪拌訓練序列、有序集合和控制序列中之一或多者的傳送,就像是預定超序列情形那樣。一個訓練序列符號可包括標頭、保留部份、目標延時、成對號碼、實體線道地圖碼參考線道或一群線道、及初始化狀態中之一或多者。在一個實施例中,標頭可係和一個ACK或NAK一起被傳送,此僅聊舉一例。舉例來講,訓練序列可作為超序列的一部分而被傳送且可受到攪拌。
在一個實施例中,有序集合和控制序列並沒有被攪拌或錯調,且其係以在所有線道上相同、同時且完整的方式被發送。對於一個有序集合的有效接收可包括檢查該有序集合的至少一部分(或對部份有序集合而言是檢查整個有序集合)。有序集合可包括電氣有序集合(EOS),例如電氣閒置有序集合(Electrical Idle Ordered Set,EIOS) 或EIEOS。超序列可包括一個資料序列開始(SDS)或一個快速訓練序列(FTS)。這樣的集合和控制超序列可係預定的,並且可具有任何型樣或十六進位表示型態以及任何長度。例如,有序集合和超序列可係為8位元組、16位元組或32位元組等等的長度。舉例來講,FTS可額外在離開一個部份寬度發送鏈路狀態的期間內被用於快速位元鎖定。請注意,FTS定義可以是根據線道而定的,並且可使用FTS之經旋轉模式。
在一個實施例中,超序列可包括在一個訓練序列串流中插入EOS,例如EIEOS。當開始發訊時,在一個實作中,線道以一種錯調方式開啟電源。然而,這可能會導致一開始在接收器或一些線道上,超序列看起來像被截肢。不過,超序列可在短區間上重複(例如,約略是一千個單元區間(或~1KUI))。這些訓練序列可額外用於去偏斜、組配中之一或多者以及用於傳達初始化目標、線道地圖等等。EIEOS可用於將一個線道從非作動變換成作動狀態、屏蔽好的線道、識別符號和TS邊界中之一或多者,此僅聊舉數例。
在一個實施例中,係可在資料中嵌入時鐘以使得沒有分開的時鐘線道。經由線道所傳送的資訊傳輸流量單元可受攪拌以有助於時鐘復原。舉例來講,接收器時鐘復原單元可將取樣時鐘傳遞至一個接收器(也就是,接收器從資料中復原出時鐘並使用它來取樣進入資料)。在一些實作中,接收器連續地適應一個進入位元串流。藉由嵌 入時鐘,係有可能縮減接腳輸出。然而,將時鐘嵌在帶內資料中可能會改變進行帶內重置的方式。在一個實施例中,係可在初始化之後使用阻擋鏈路狀態(BLS)。此外,係可在初始化之期間內使用電氣有序集合超序列以有助於重置(例如,如於上文中所描述的),此僅聊舉數例。被嵌入的時鐘可係由在一個鏈路上的裝置共用的,並且這個共用操作時鐘可在此鏈路之校準和組配的期間當中被設定。例如,HPI鏈路可藉由漂移緩衝器來指參一個共用時鐘。這樣的實作可實現比在非共用參考時鐘當中所使用的彈性緩衝器更低的延時,其他還有別的優點。此外,係可將參考時鐘分散片段匹配成符合特定限制。
在一些實作中,HPI可係以一個寬度來支援資訊傳輸流量單元,在一些事例中,此寬度並不是標稱線道寬度(例如,舉一個純例示性的範例,使用為192位元和20線道的資訊傳輸流量單元寬度)。確切說來,在允許部份寬度發送狀態的實作中,發送資訊傳輸流量單元的線道數目是可以變動的,即使是在鏈路壽命當中。例如,在一些情況中,資訊傳輸流量單元寬度可係某一時刻作動線道之數量的倍數但並非另一時刻作動線道之數量的倍數(例如,當鏈路改變狀態和線道寬度時)。在一些實施例中,在線道數目並非當前線道寬度之數量之倍數的情況中(例如資訊傳輸流量單元寬度為192位元20線道的範例),係可將連續的資訊傳輸流量單元組配以在線道上部份重疊的方式發送以藉此保留帶寬(例如,發送在這20個線道上部份重疊 的五個連續的192位元資訊傳輸流量單元)。
圖8例示出在數個線道上部份重疊的對連續資訊傳輸流量單元之傳輸的一種表示型態。例如,圖8例示出經由20線道鏈路傳送的五個部份重疊192位元資訊傳輸流量單元的一種表示型態(線道是由第0至19縱欄表示)。圖8的各個小格代表在以4UI跨距傳送的一個資訊傳輸流量單元中所含有的個別的「半位元組」或四位元集合(例如,位元4n+3:4n)。例如,一個192位元資訊傳輸流量單元可以被劃分成48個四位元的半位元組。在一個範例中,第0半位元組包括第0至3位元,第1半位元組包括第4至7位元等等。半位元組中的位元可以是以部份重疊或交織(例如「拌合」)的方式被傳送,以使得資訊傳輸流量單元之較高優先權欄位先出現,並維持錯誤校正性質(例如CRC),此僅聊舉數例。確切說來,拌合(swizzling)方案可亦使得一些半位元組(及其個別位元)依序被傳送出去(例如,如於圖8和圖9中之範例中的)。在一些實作中,拌合方案可係不受鏈路層之架構和於鏈路層中所用的資訊傳輸流量單元之格式影響。
具有並非為作動線道之倍數的長度的一個資訊傳輸流量單元的位元(或半位元組)可被拌合,像是依據圖8之範例那樣。例如,在第一個4UI中可傳送第1、3、5、7、9、12、14、17、19、22、24、27、29、32、34、37、39、42、44和47半位元組。在下一個4UI中可傳送第0、2、4、6、8、11、13、16、18、21、23、26、28、 31、33、36、38、41、43和46半位元組。在第8至11 UI中,在第一個資訊傳輸流量單元中只剩下八個半位元組。第一個資訊傳輸流量單元最後面的半位元組(也就是第10、15、20、25、30、40、45)可與第二個資訊傳輸流量單元最前面的半位元組(也就是第2、4、7、9、12、16、20、25、30、35、40、45半位元組)同時被傳送,以使得第一個和第二個資訊傳輸流量單元部份重疊或拌合。利用這樣的技術,在當前的這個範例中,係可在48UI中傳送五個完整的資訊傳輸流量單元,其中,每個資訊傳輸流量單元係在為小數的9.6個UI的時間中被傳送。
在一些情況中,拌合可導致週期性的「乾淨」資訊傳輸流量單元邊界。例如,在圖8之範例中,一開始的5資訊傳輸流量單元之邊界(第一個資訊傳輸流量單元的最頂行)可亦被稱為是乾淨資訊傳輸流量單元邊界,因為所有線道都在傳送來自同一個資訊傳輸流量單元的起始半位元組。代理器鏈路層邏輯可受組配來識別對線道的拌合,並可從經拌合的位元中重建出資訊傳輸流量單元。此外,實體層邏輯可包含用於基於當時所使用的線道數目而判別何時和如何拌合資訊傳輸流量單元資料之串流的功能。確切說來,在從一個鏈路寬度狀態到另一者的變換中,代理器可組配其自身以判別對資料串流之拌合要如何運用。
如於上文中所述的,鏈路可在線道寬度之間變換,在一些情況中,係於原始或完整的寬度中操作並在之後變換至(和變換出)使用較少線道的部份寬度。在一些 情況中,所界定的資訊傳輸流量單元寬度可係可由線道之數目整除的。例如,圖9之範例就例示出這樣一個範例,當中,係經由一個8線道鏈路來發送先前範例中的192位元資訊傳輸流量單元。如於圖9中所表示的,一個192位元資訊傳輸流量單元的4位元半位元組係可被平均分散在8個線道上發送(換言之,因為192是8的倍數)。確切說來,係可在於8線道部份寬度上操作時透過24個UI來傳送單一個資訊傳輸流量單元。此外,在圖9之範例中,各個資訊傳輸流量單元邊界都可以是乾淨的。雖然乾淨的資訊傳輸流量單元邊界可簡化狀態變換,但容許拌合和偶然凹凸不平的資訊傳輸流量單元邊界的決定論和其他特徵係可使得能夠將鏈路上的浪費帶寬最小化。
此外,雖然圖9之範例係將第0至7線道示為在部份寬度狀態中仍然作動的線道,但任何8線道集合都有可能被使用。亦請注意,上面的範例純係用於例示用途。資訊傳輸流量單元有可能被界定成是具有任何寬度。鏈路也有可能具有任何鏈路寬度。此外,係可根據資訊傳輸流量單元之格式和欄位、系統中之較佳線道寬度、及其他考量來彈性地建構一個系統的拌合方案,此僅聊舉數例。
在延時並不會導致延時修復錯誤或鏈路層之超時的情況下,HPI PHY邏輯層的操作可係獨立於下方的發送媒體之外,此僅聊舉數例。
鏈路層
鏈路層可從協定層提取出實體層,處理在兩個 協定代理器之間的流量控制,並提供虛擬通道服務給協定層(訊息類別)和路由層(虛擬網路)。在一些實作中,鏈路層可處理被稱為資訊傳輸流量單元的定量資訊。在一個範例中,資訊傳輸流量單元可被界定為長度是192位元。然而,在不同的變化中,係可使用任何範圍的位元,例如81~256(或更多)個。一個較大的資訊傳輸流量單元大小,例如192位元,係可包含格式、循環冗餘檢查(cyclic redundancy check,CRC)、錯誤校正碼(error correction code,ECC)、及其他特徵。例如,一個較大的資訊傳輸流量單元長度可亦容許擴張CRC欄位(例如擴張成16位元)以處理較大的資訊傳輸流量單元酬載。用於傳輸單一個資訊傳輸流量單元的單位區間(UI)(例如用來傳輸單一個位元或資訊傳輸物理單元的時間等等)或資訊傳輸物理單元的數量可能隨著鏈路寬度而改變。例如,20線道或20位元鏈路寬度可用9.6個UI來傳輸單一個192位元資訊傳輸流量單元,而8線道鏈路寬度要用24個UI來傳輸相同的資訊傳輸流量單元,此僅聊舉一例。可亦係根據資訊傳輸流量單元來進行鏈路層記點(crediting)和協定封包化。
圖10例示出針對8線道鏈路寬度的一種一般性資訊傳輸流量單元的一種表示型態1000。此表示型態1000的各個縱欄可象徵一個鏈路線道,且各橫列象徵個別UI。在一些實作中,單一個資訊傳輸流量單元可被細分成二或更多個槽位。在各個槽位中係可包含相異的訊息或鏈路層標 頭,而在一些事例中容許複數個相異且獨立的訊息,這些訊息對應於要在單一個資訊傳輸流量單元中被傳送的可能不同的數個交易。此外,在單一個資訊傳輸流量單元之槽位中所包含的這複數個訊息可亦係以不同目的地節點為目的地,此僅聊舉一例。例如,圖10之範例例示出一種具有三個槽位的資訊傳輸流量單元格式。陰影部份可代表被包含在個別槽位中的資訊傳輸流量單元部份。
在圖10之範例中,係提供第0、1和2槽位。係可提供第0槽位72個位元的資訊傳輸流量單元空間,其中有22個位元專用於訊息標頭欄位,有50個位元專用於訊息酬載空間。係可提供第1槽位70個位元的資訊傳輸流量單元空間,其中有20個位元專用於訊息標頭欄位,有50個位元專用於訊息酬載空間。在訊息標頭欄位空間當中的差異可受到最佳化,以使得某些訊息類型會是被指定成要被容納在第0槽位中(例如,其係使用更多訊息標頭編碼者)。係可使第三個槽位,第2槽位,實質上佔據比第0和第1槽位更少的空間,在這個事例中係使用18個位元的資訊傳輸流量單元空間。第2槽位可受到最佳化以處理那些訊息,例如應答、點數返還(credit return)及諸如此類的並不使用較大訊息酬載者。此外,係可提供浮動酬載欄位以使得可選擇施加額外的11個位元來補充第0槽位或第1槽位的酬載欄位。
繼續看圖10的這個具體範例,其他欄位對於資訊傳輸流量單元來說可以是全域性的(即,可橫跨資訊傳 輸流量單元施用而並不特定於一個槽位)。例如,係可與一個4位元資訊傳輸流量單元控制欄位一起提供標頭位元,此4位元資訊傳輸流量單元控制欄位可被用來將此資訊標示為是資訊傳輸流量單元的一個虛擬網路、識別資訊傳輸流量單元要如何被編碼,此僅聊舉數例。此外,係可提供錯誤控制功能,例如透過16位元循環CRC欄位,此僅聊舉一例。
係可界定資訊傳輸流量單元格式以最佳化鏈路層上之訊息通量。一些傳統的協定係使用不分槽的較小資訊傳輸流量單元。例如,在QPI中,係使用80位元資訊傳輸流量單元。雖然較大的(例如192位元的資訊傳輸流量單元)的資訊傳輸流量單元通量可能較低,但係可藉由最佳化對於資訊傳輸流量單元資料的使用而使訊息或封包通量增加。例如,在QPI的一些實作中,係無視訊息大小或類型而使用整個80位元資訊傳輸流量單元空間。藉由將較大的資訊傳輸流量單元細分成預定長度的槽位和欄位,192資訊傳輸流量單元長度可受到最佳化而達到較高效能,即使是在可用槽位中之一或多者有時並未被使用的情況中。確切說來,係可將鏈路層訊務假定為包含許多不同類型的訊息和訊務,包括具有不同標頭長度和欄位的訊息和封包。係可將於資訊傳輸流量單元中所界定的個別槽位之長度和組織界定為與各種訊息的統計或預期頻率及這些訊息的需求相呼應。例如,係可針對每個小的槽界定兩個較大的槽,以利用這些較大訊息類型和標頭長度來容納預期統 計頻率的訊息發送,此僅聊舉一例。此外,亦可提供用於進一步容納變化訊務的彈性,例如透過浮動酬載欄位,如於圖10之範例中者。在一些情況中,資訊傳輸流量單元格式可係固定的,包括專用於資訊傳輸流量單元中之特定槽位的位元。
在圖10之範例中,通常係可提供資訊傳輸流量單元一個「Hdr」欄位,此欄位代表對於資訊傳輸流量單元的一個標頭指示。在一些情況中,此Hdr欄位可指出資訊傳輸流量單元是一個標頭資訊傳輸流量單元還是資料資訊傳輸流量單元。在資料資訊傳輸流量單元中,此資訊傳輸流量單元可仍維持是有分槽的,但係以酬載資料來省略或取代對某些欄位的使用。在一些事例中,資料欄位可包含運算碼和酬載資料。在標頭資訊傳輸流量單元的事例中,係可提供各式各樣的標頭欄位。在圖10之範例中,係可提供各個槽位一個「Oc」欄位,此Oc欄位代表一個運算碼。類似地,一或多個槽位也可具有對應的「msg」欄位,代表要在此槽位中含納的對應封包的訊息類型(若此槽位是設計來要處理此等封包類型)等等。「DNID」欄位可表示一個目的地節點(Destination Node)ID,「TID」欄位可表示一個交易或追蹤器ID,「RHTID」欄位可表示一個回應節點ID或一個根據地追蹤器ID,其他還有別的可能欄位。此外,係可提供一或多個槽位酬載欄位。另外,係可在資訊傳輸流量單元中包含CRC欄位以為此資訊傳輸流量單元提供CRC值,此僅聊舉一例。
在一些實作中,鏈路寬度係可在鏈路壽命之期間內改變。例如,實體層可在鏈路寬度狀態之間變換,例如進入或離開完全或原始線道寬度以及進入或離開不同或部份線道寬度。例如,在一些實作中,係可初始化一個鏈路以在20個線道上傳輸資料。稍後,此鏈路可變換成部份寬度發送狀態,當中只有8個線道被作動使用,此僅聊舉一例。係可,例如,考慮到由一或多個電力控制單元(PCU)所支配的電力管理任務而使用這樣的線道寬度變換,此僅聊舉一例。
如於上文中所提過的,鏈路寬度可影響資訊傳輸流量單元通量率。圖11例示出經由8線道資料鏈路傳送的一種示範192位元資訊傳輸流量單元的一種表示型態,其導致24UI的資訊傳輸流量單元之通量。此外,如於圖11之範例中所示出的,在一些情況中,資訊傳輸流量單元之位元可係以亂序傳送,例如,以在傳輸當中較早地傳送更多對時間敏感的欄位(例如資訊傳輸流量單元類型欄位(例如資料或標頭資訊傳輸流量單元)、運算碼等等)、保留或助益特定錯誤檢測或在該資訊傳輸流量單元中嵌有的其他功能,此僅聊舉數例。例如,在圖11之範例中,在傳輸的第一個UI(例如UI0)當中,第191、167、143、119、95、71、47和23位元係在線道L7到L0上被並行地傳送,而第168、144、120、96、72、48、24和0位元係在此資訊傳輸流量單元傳輸的第24個(或最後一個)UI(也就是UI23)當中被傳送。要知道,在其他實作和範例中係可使用其他 排序方案、資訊傳輸流量單元長度、線道寬度等等。
在一些情況中,資訊傳輸流量單元之長度可係作動線道之數目的倍數。在這樣的情況中,係可在所有作動線道上平均地發送資訊傳輸流量單元,並且對資訊傳輸流量單元的傳輸可實質上係在一個乾淨的(即,不重疊的)邊界上同時結束。例如,如於圖8之表示型態中所示出的,係可考慮以連續的4位元集合(或「半位元組」)來發送一個資訊傳輸流量單元的位元。在這個範例中,一個192位元資訊傳輸流量單元係要在一個8線道鍊路上傳輸。由於192是8的倍數,所以係可在24個UI中在這個8線道鍊路上乾淨地傳輸整個資訊傳輸流量單元。在其他情況中,資訊傳輸流量單元寬度可能並不是作動線道之數目的倍數。例如,圖9示出經由20個線道傳輸的示範192位元的另一種表示型態。由於192不能被20完全整除,所以對完整的資訊傳輸流量單元的傳輸會需要非整數數量個區間(例如9.6個UI)。在這樣的情況中,係可與前面的資訊傳輸流量單元的最後數個位元一起傳輸部份重疊的第二個資訊傳輸流量單元,而不使在傳輸的第10個UI中沒用到的「超額」線道浪費掉。在一些實作中,對資訊傳輸流量單元作這樣的部份重疊(或拌合)可能會導致凹凸不平的資訊傳輸流量單元,並使得資訊傳輸流量單元被以亂序傳送。係可將傳輸所用的型樣設計成使得資訊傳輸流量單元之對時間敏感的欄位能有較多在資訊傳輸流量單元被較早傳送、使得能夠保留錯誤檢測和校正,此僅聊舉數例。係可在實體層 和鏈路層中之一或二者中提供邏輯,用以根據此等型樣來傳輸資訊傳輸流量單元位元,並基於當前鏈路寬度而動態地改變成不同型樣。係可提供更進一步的邏輯以從經拌合或經排序的位元串流當中重新排序和重新建構出資訊傳輸流量單元,其他還有別的範例。
在一些實作中,係可以標頭資訊傳輸流量單元(例如負載有封包標頭資料者)或資料資訊傳輸流量單元來描繪資訊傳輸流量單元之特性。請回頭看圖10,係可將一種資訊傳輸流量單元格式界定成包含有三(3)個相異的槽位(例如第0、1和2),而使得在單一個資訊傳輸流量單元中可傳輸多達三個的標頭(例如,每個槽位個一個標頭)。在圖10之範例中係提供三個槽位(第0、1和2槽位)。係可提供第0槽位72個位元的資訊傳輸流量單元空間,其中有22個位元專用於訊息標頭欄位,有50個位元專用於訊息酬載空間。係可提供第1槽位70個位元的資訊傳輸流量單元空間,其中有20個位元專用於訊息標頭欄位,有50個位元專用於訊息酬載空間。在訊息標頭欄位空間當中的差異可受到最佳化,以使得某些訊息類型會是被指定成要被容納在第0槽位中(例如,其係使用更多訊息標頭編碼者)。係可使第三個槽位,第2槽位,實質上佔據比第0和第1槽位更少的空間,在這個事例中係使用18個位元的資訊傳輸流量單元空間。第2槽位可受到最佳化以處理那些訊息,例如應答、點數返還及諸如此類的並不使用較大訊息酬載者。此外,係可提供浮動酬載欄位以使得可選擇施 加額外的11個位元來補充第0槽位或第1槽位的酬載欄位。
在一些實作中,藉由使一個欄位能夠在兩個槽位之間浮動,係可提供某些訊息所需的額外位元而仍保持在一個預定資訊傳輸流量單元長度內(例如192個位元)並使得對帶寬之使用最大化。請轉看圖19之範例,其示出在一個8線道資料鍊路上的一個示範192位元資訊傳輸流量單元的兩個實例1905、1910。在一個實例中,一個資訊傳輸流量單元(例如1905)可含有三個槽位:第0、1和2槽位。第0和1槽位各可含有50位元酬載欄位。係可提供浮動欄位來以浮動欄位之欄位寬度(例如11個位元)選擇性地擴充第0槽位或第1槽位之酬載欄位。對於浮動欄位的使用可進一步擴張透過經界定多槽位資訊傳輸流量單元格式所提供的效益指標。資訊傳輸流量單元內之槽位的大小擇訂以及在各個槽位中能夠放置的訊息類型有可能提供增加的帶寬,甚至是在資訊傳輸流量單元率被縮減的情況中亦然。
在圖10的這個特定範例中,係可使可使用第1和第2槽位的訊息最佳化,而減少要被擱置一旁以編碼這些槽位之運算碼的位元之數目。當具有比第0槽位所能提供者更多位元的一個標頭進入鏈路層時,係可提供分槽演算法來使它能夠接管第1槽位酬載位元以作為額外空間。可亦提供為了滿足需要而耗用價值全部三個槽位之位元的特殊控制(例如LLCTRL)資訊傳輸流量單元。在只有部份鏈路忙碌的情況當中,可亦使用分槽演算法來使得個別槽位能夠在其他槽位不載運資訊的時候被使用。
在一個實施例中,鏈路層可額外界定可使用的特殊控制資訊傳輸流量單元,例如,以供用於除錯訊息和其他用途。在一個範例中,當一個致能除錯控制欄位被設定時,係可由鏈路層傳送LLCTRL-DEBUG資訊傳輸流量單元。當該位元並未被設定時,便不可在此鍊路上發送LLCTRL-DEBUG資訊傳輸流量單元。除錯封包在暴露由HPI連接之裝置的內部狀態上可能是很重要的,其在其他情況下是無法取得的。除錯封包之內容物可亦係特定於實作的。內容物可包括像是分支資訊(來源和目標IP)、時間戳記、對內部事件觸發器之指示之類的東西。所暴露的資料可例如係藉由監控裝置,例如用於後處理和失敗分析的邏輯分析器。一種對於除錯訊息類型的示範資訊傳輸流量單元編碼係例示於圖12中。
在一些實作中,係可使用一個一般用途I/O互連體(general purpose I/O interconnect,GPIO)架構,例如HPI,的原則和協定來實施具緩衝區記憶體介面和對應協定。於上文中所概述的實體和鏈路層界定可亦實施於具緩衝區記憶體協定中。確切說來,用來支援GPIO協定之實體和鏈路層的邏輯係可在支援具緩衝區記憶體協定的介面中被再利用。具緩衝區記憶體協定可亦共享訊息類別,例如請求、回應和回寫訊息類別,此僅聊舉數例。雖然在具緩衝區記憶體協定訊息內的運算碼值可被以與在HPI(或另一種GPIO協定)中不同的方式解譯,但在具緩衝區記憶體協定與建造它的GPIO互連體中可皆係使用一樣的通用封 包格式。確切說來,額外的封包和資訊傳輸流量單元欄位對具緩衝區記憶體協定與GPIO互連體協定兩者而言可皆為獨特的。
在一些實作中,使用HPI之實體和鏈路層的一個具緩衝區記憶體協定可以是一個交易型介面和協定。這可使得資料能夠被以亂序方式回傳給所接收到的一連串請求(例如讀取請求)。在一些實作中,係可使用具緩衝區記憶體介面來使緩衝器晶片與CPU互連。在一個實作中,當一些協定橫跨一個具緩衝區記憶體匯流排而傳送DRAM命令(像是啟動(Activate)、讀取(Read)、寫入(Write)和刷新(Refresh))時,在於本文中所論述的具緩衝區記憶體協定的一些實作中,係可簡便地以一個位址來傳送一個讀取或寫入命令。緩衝器晶片可接著解碼特定晶片帶(rank)和記憶體組(bank),並將請求分解成DRAM命令。可亦支援推測性和需求性讀取。
請看向圖13,其示出一個簡化方塊圖1300,此簡化方塊圖1300例示出使用一個運算系統的一種示範拓樸,此運算系統包括藉由與HPI相容之鏈路而互連的CPU裝置1305、1310。各個CPU 1305、1310可同樣利用對應的具緩衝區記憶體協定鏈路(「記憶鏈路(MemLink)」)而分別連接至一或多個個別緩衝器裝置1315a~1315l。如於上文中所述的,在一些實作中,具緩衝區記憶體協定互連體可係基於GPIO協定,因為具緩衝區記憶體協定的實體和鏈路層係基於GPIO協定(例如HPI)的相同實體和鏈路層界定。雖 然未例示於圖13中,但CPU 1305、1310係可利用GPIO協定而進一步連接至一或多個下游裝置。
如於圖13之範例中所示出的,緩衝器裝置1315a~1315l可連接至記憶體裝置,例如雙行記憶體模組(dual in-line memory module,DIMM)裝置。可將對應於各個緩衝器裝置的記憶體看作是對該緩衝器裝置所連接至的那個CPU(例如1305、1301)而言為本地的。然而,其他裝置(包括其他CPU)亦可藉由使用與GPIO協定相容之鏈路的其他槽位而取用該記憶體。在一些實作中,運行該具緩衝區記憶體協定的一個埠口可僅支援用於與該記憶體通訊的命令並僅支援該具緩衝區記憶體協定(即,非支援該GPIO協定與該具緩衝區記憶體協定)。此外,在一些實作中,該GPIO互連協定可支援路由並(例如在其封包中)指出像是請求節點識別符和目的地節點識別符等等的資訊。另一方面,該具緩衝區記憶體協定可係並不使用路由的一個點對點介面。因此,係可將於該GPIO協定中所使用的一些欄位分配到利用具緩衝區記憶體介面所傳送的封包當中。作為替代,欄位可係被設計來用於載運位址解碼資訊主機至緩衝器,此僅聊舉一例。
在進一步的實作中,緩衝器裝置1315a~1315l可配合某個數量的快速記憶體(例如DRAM)而支援一個二階記憶體拓樸,該等快速記憶體係作為對一個較大較慢記憶體(例如非依電性記憶體)的快取記憶體。在這樣一個實作中,緩衝器裝置1315a~1315l中之一或多者可使用 DDR來作為近處的快速記憶體,並使用交易型DDR DIMM來作為較大的「遠處」記憶體,此僅聊舉一例。交易型DIMM可使用協定(例如DDR交易型(DDR-Transactional,DDR-T))來與使用交易型命令的依電性記憶體單行記憶體模組(memory single in-line memory module,SIMM)通訊。
請看向圖14,其示出一個簡化方塊圖1400,此簡化方塊圖1400示出對於連接至近處和遠處記憶體模組(例如1405、1410)的一個緩衝器晶片1315的一一種更細節表示型態。如於上面的範例中所提過的,緩衝器晶片1315可係透過使用受到定義的具緩衝區記憶體協定的一個具緩衝區記憶體協定互連鏈路1415而通訊式地耦接至一個CPU裝置1305。該緩衝器晶片1315可包括用於進行額外功能的邏輯。例如,該緩衝器晶片1315的一個實作可包括記憶體控制器1420、排程器1425、流程控制邏輯1430、和錯誤檢測邏輯1435。可係利用硬體電路、韌體以及(或是)軟體來實施邏輯。
在一些實作中,記憶體控制器1420可包括用於將請求轉換成其記憶體裝置之特定記憶體協定(例如DDR4)的邏輯。記憶體控制器1420可從利用鏈路1415而與緩衝器晶片1315通訊的CPU 1305(或另一個主機)的主機控制器邏輯1440抽取出這些特定記憶體協定的細節。主機控制器邏輯1440可將CPU(或主機)位址翻譯成記憶體位址,包括對通道和槽位的重新排列,此僅聊舉一例。排程器1425可包括用來重新排序和仲裁對請求之回應的邏輯, 以達到更高的效能。緩衝器晶片1315可額外提供像是流程控制和錯誤檢測等的特徵。在一些實作中,流程控制邏輯1430可係體現於排程器1425中或以其他方式與排程器1425合作,以確保緩衝器晶片1315更有效率並具有更高效能。錯誤檢測邏輯1440可包括用於支援錯誤檢測碼檢測方案的邏輯以及用於起始對所檢測到的錯誤的校正或處置的邏輯。
如於上文中所提,一個具緩衝區記憶體協定的鏈路層可係基於一個GPIO協定的鏈路層。例如,係可在具緩衝區記憶體協定中使用HPI協定的192位元3槽位資訊傳輸流量單元(例如於圖10中所描繪和示出者)。在該具緩衝區記憶體協定中的一個封包可體現一整個命令。係可將一個封包實施為是一或多個資訊傳輸流量單元。圖15A至15C可代表對於在具緩衝區記憶體協定中的資訊傳輸流量單元的實作。在一些實作中,係可經由有標頭和無標頭記憶體資料(memory data,MemDat)的結合而將讀取資料從緩衝器裝置傳送回主機。可在三個無標頭資訊傳輸流量單元中(而不是像使用有標頭資訊傳輸流量單元時一樣需要五個)傳輸一整個快取行。無標頭封包可藉此提供較高的通量,通量對介面來說可能是最受限的部份。為了適入三個資訊傳輸流量單元,無標頭封包移除數個欄位並推測這些欄位的值。所作的這些推測可能大部份是對的,但並非所有的讀取都會回傳,如果有任何推測是不對的,那麼就要使用含有所有欄位的有標頭封包。在一些實作中,有 標頭封包可開始一個讀取回傳之序列,以容許對追蹤器識別符(例如HTID、RTID等等)的先行識別以供用於在交易型具緩衝區記憶體協定中將讀取回傳對映至讀取請求。
在一些實作中,無標頭封包可含有於表1中所標示出的這些資訊:
此外,圖15A至15C例示出可用來在一個讀取回傳中發送一整個快取行的一連串三種資訊傳輸流量單元(例如,第0資訊傳輸流量單元(於圖15A)、第1資訊傳輸流量單元(於圖15B)和第2資訊傳輸流量單元(於圖15C))。表2提供這三種資訊傳輸流量單元用於一個無標頭封包中的一種示範摘要:
可設定一個HID位元來指出此封包是有標頭還是無標頭。HID可被設定來只針對在標頭資訊傳輸流量單元後面的資料資訊傳輸流量單元而指出一個無標頭封包。這使得某些其他封包能夠被交織在一個封包中間。當完成交織封包時,原始的有標頭封包的資料部份可與HIB=0一起在資訊傳輸流量單元中被傳送。可亦使用此種技術來藉由插入空資訊傳輸流量單元而延遲資料封包。在一些實作中,當通常會是需要標頭時,對無標頭封包的開始係藉由為0的HIB位元來通知。所有其他封包,包括空資訊傳輸流量單元,係可在有設定HIB位元的情況下含有標頭。
如於上文中所介紹過的,有標頭封包的長度可係全部有五個資訊傳輸流量單元,且其可包含一個標頭資訊傳輸流量單元和4個資料資訊傳輸流量單元。為了減少閒置延時,有標頭資訊傳輸流量單元可傳送第1資料資訊傳輸流量單元兩次。第一次是以只來自頭32個位元組的資 料傳送,稱為第1a資訊傳輸流量單元。這使得在其次的32個位元組的資料之前被傳送的資訊傳輸流量單元能夠在記憶體裝置中被取得。這樣的結果是,對於閒置事例而言,關鍵32位元組資料塊會較快抵達主機。第1資訊傳輸流量單元可接著被第二次傳送,這一次是完整的。其將含有頭32個位元組資料部份加上其次的32個位元組部份。表3描述一個有標頭封包的這五個資訊傳輸流量單元:
在一些實作中,有標頭記憶資料(MemData)封包不可被取消,且其後跟隨有資料資訊傳輸流量單元。標 頭不會在它知道資料可亦被傳送之前被傳送。在標頭被傳送之前,不可在緩衝器中積聚完整的快取行。
系統可能會對延時特別敏感。記憶體延時對於CPU效能而言可能會是具有關鍵性的。在使用交易型具緩衝區記憶體介面的實作中,額外的CPU延時可能是專用於識別在一個緩衝器裝置之交易回應中之交易之追蹤器識別符(ID)(例如HTID)以及將此回應與一個對應的交易請求作匹配。在一些實作中,係可藉由使緩衝器裝置預先傳送即將來臨的回應(例如讀取回傳)的追蹤器識別符來減少延時,以使得CPU能夠預先處理此追蹤器識別符並預期所對應的回應之抵達。此外,並不中斷目前的回應發送動作,而係可藉由將即將來臨的回應的追蹤器ID嵌在一個當前回應中來預先傳送該追蹤器ID。確切說來,中斷對於較早之讀取的資料發送動作來傳送先行讀取識別符封包會減少鏈路之帶寬。藉由將即將來臨的讀取的追蹤器ID嵌在正被發送的讀取資料中,係可有助於實施高帶寬、低延時的資料匯流排。
請看向圖16,其例示出在緩衝器裝置1315和CPU 1305之間的一個示範通訊的一種表示型態1600。可從CPU 1305傳送數個讀取請求(例如第1、第2和第3請求)至緩衝器裝置1315以獲取來自與緩衝器裝置1315連接的記憶體裝置的資料。緩衝器裝置1315和CPU 1305可知曉交易,使得緩衝器裝置1315能夠可能以亂序回傳讀取回應(例如第1、第2和第3回應),其中,對回應之排序係以用於增進 具緩衝區記憶體介面之效能的演算法為基礎,而非以純粹的決定論協定為基礎。各個讀取請求可包含一個追蹤器識別符,且緩衝器可標示回應至以使得CPU可判定哪些回應係對應於哪些請求。例如,在圖16的這個範例中,第2讀取請求緊接在第1讀取請求之後被傳送至緩衝器裝置1315,然而,緩衝器裝置1315係在回傳對第1讀取請求之回應(也就是第1讀取回應)之前回傳對第2讀取請求之回應(也就是第2讀取回應)。CPU可基於回應中所含有的追蹤器識別符而識別出哪些回應係從屬於哪些請求。在一些實作中,係可將追蹤器識別符實施於被用來將資料發送至CPU的資訊傳輸流量單元的一個欄位(例如HTID欄位、RHTID欄位、RTID欄位等等)中。
請看向圖17,其例示出一個先行交易識別範例。在這個範例中,CPU 1305再次傳送一連串的三個讀取請求(第1、第2和第3請求)。在一些情況中,這三個讀取請求可係與完全不同的交易相關。在其他事例中,此等交易請求二或更多個可係相關的(例如,與在CPU和另一個主機間之共通交易相關等等)。在圖17之範例中,緩衝器裝置1315可再次判定出最好是以亂序回傳對此等請求之回應,其中,係先於對第1請求的回應而回傳對第2請求的回應。在這個事例中,緩衝器裝置1315無法傳送第2讀取回應的先行追蹤器ID,因為在具緩衝區記憶體鏈路上沒有從緩衝器裝置1315至CPU 1305的緊接在第2讀取回應之前的任何通訊。然而,在這種情況中,緩衝器裝置1315可在傳 送第2讀取回應之前識別出第1讀取回應是要跟在第2讀取回應之後。此外,緩衝器裝置1315可不僅僅將第2讀取請求的追蹤器ID嵌在第2讀取回應中,緩衝器裝置1315可更進一步編碼第2讀取回應的(例如一個記憶體資料資訊傳輸流量單元的)另一個欄位以提供對於對第1讀取請求之回應(即第1讀取回應)的追蹤器ID的先行識別,以藉此使得CPU能夠在第1讀取回應抵達之前事先進行預先處理步驟。此外,在這個範例中,緩衝器裝置1315可亦在傳送第2讀取回應之前識別出第3讀取回應要接在第2讀取回應後被下一個傳送。因此,緩衝器裝置1315可在第2讀取回應中嵌入對第3讀取回應之追蹤器ID的先行識別以使得CPU能夠在第3讀取回應抵達之前事先進行預先處理步驟。例如,CPU可在讀取資料抵達之前事先查詢將資料傳送給請求者所必需的路由資訊。
傳送先行追蹤器ID可使得接收者CPU(或其他主機)的主機控制器能夠得到哪個讀取正被回傳的進階消息。在使用決定論介面的傳統記憶體系統中,係有讀取資料將在何時被回傳的進階消息。在這樣的系統中,主機因此能夠使用此進階消息來減少延時。由於交易型具緩衝區記憶體介面使得讀取資料能夠被以亂序回傳(例如藉由在緩衝器裝置中提供排程器),所以會有主機控制器將失去此進階消息這樣的風險。
繼續圖17的這個範例,在第3讀取回應被從緩衝器裝置1315傳送至CPU 1305之後,於緩衝器裝置1315接收 到來自CPU 1305的第4讀取請求。此外,由於沒有任何來自CPU 1305的可競爭由緩衝器裝置1315所作之排程競爭的其他請求可被接收,故使得緩衝器裝置能夠判定出其可傳送對第4讀取請求的一個回應(即第4讀取回應)作為其下一個回應。緩衝器裝置1315可進一步判定出沒有任何可傳送第4讀取回應之先行追蹤器ID的機會,因為沒有可內嵌此回應的任何其他回應存在。在其他實作中,緩衝器裝置1315可判定出在將緩衝器裝置1315連接至CPU 1305的具緩衝區記憶體鏈路上係存在有使得該緩衝器裝置能夠傳送控制資訊傳輸流量單元或其他資訊傳輸流量單元至CPU 1305的帶寬以在傳送第4讀取回應之前(在一些事例中,是並在緩衝器裝置1315準備第4讀取回應之時)預先識別第4讀取回應之追蹤器ID的帶寬,此僅聊舉一例。此外,由於在緩衝器裝置1315準備要傳送的第4讀取回應的時候沒有其他回應被它識別為待定中(pending),所以沒有任何先行追蹤器ID可與第4讀取回應一起被傳送。
在一個示範實作中,無標頭記憶資料封包和有標頭記憶資料封包的資料部份係可被編碼為含有下一個無標頭封包的追蹤器ID。例如,一個讀取序列係可以一個有標頭封包開始。第一個有標頭封包可含有其自己的追蹤器ID。在一個實作中,第一個有標頭封包的追蹤器ID可係被編碼在其對應標頭資訊傳輸流量單元中。其他封包序列可跟隨這第一個封包,並且這第一個封包的資料資訊傳輸流量單元可與在此序列中跟在這第一個封包之後的下一個封 包的追蹤器ID一起被編碼。在一些情況中,係可在無標頭封包之間插入其他封包而不破壞追蹤器ID之鍊結(例如藉由指出新的第一個封包追蹤器ID)。若緩衝器裝置並不知道下一個無標頭資料封包的追蹤器ID(例如,封包還沒有被緩衝器接收或處理),則此緩衝器裝置可插入一個虛設值、空值或其他等效值來作為下一個封包的追蹤器ID。這可觸發正由緩衝器裝置作為下一個序列中之第一個有標頭封包所傳送的下一個記憶體讀取封包。此外,若在於無標頭封包中傳送追蹤器ID之後,緩衝器裝置判定出其無法傳送指定資料,則其可僅傳送一個有標頭封包來作為下一個記憶資料封包。主機裝置(例如CPU 1305)對來自緩衝器裝置(例如1315)的追蹤器ID之接收無法確保此資料會下一個到達(例如,因為它可能會被有標頭記憶資料封包先發制人),其他還有別的範例和實作。
表4例示出對應於至少5個交易(例如交易A、B、C、X、Y)的一個資訊傳輸流量單元序列,並進一步例示出可如何使用追蹤器ID欄位來將對即將來臨的讀取回傳之追蹤器ID的先行識別傳送給主機:
在表4的這個範例中,係將追蹤器ID(tracker ID,TID)示為是在資料的第一個資訊傳輸流量單元中(然而,其實際上可係被實際分散在同一個封包的全部的三個或四個資訊傳輸流量單元中)。例如,對於交易A之讀取回傳的一個標頭資訊傳輸流量單元(Header A)包含用於交易A的 TID。由於對於交易B的讀取回傳是要立即接在對於交易A的讀取回傳之後,所以可識別出有一個可傳送針對交易B之先行TID的機會。因此,交易A的資料資訊傳輸流量單元Data0 A可與針對交易B的TID一起被編碼,如於表4的範例中所示出的。同樣地,交易B之讀取回傳的資料資訊傳輸流量單元(例如資訊傳輸流量單元Data0 B)可被編碼以提供對即將來臨之對於交易C之讀取回傳的TID的先行指示。
繼續表4的這個範例,在傳送對於交易C的讀取回傳之前,緩衝器裝置可判定出不存在可與交易C之讀取回傳一起傳送先行TID的機會。確切說來,第12至49資訊傳輸流量單元不包括任何讀取資料。因此,取代於與對於交易C之讀取回傳一起傳送先行TID,係可將虛設值資料編碼在此資料資訊傳輸流量單元(例如資訊傳輸流量單元Data0 C)的一個欄位中,以指出要忽略編碼有先行TID的這個欄位。
如於上文中曾經提過的,非讀取操作可中斷一連串的讀取回傳而不干擾對於後續讀取回傳的先行TID通知。例如,如於表4的範例中所示出的,第5資訊傳輸流量單元(Data0 B)係與針對讀取回傳C的先行TID一起被編碼,但有一個中介寫入完成資訊傳輸流量單元(第8資訊傳輸流量單元)係在針對交易B和交易C的讀取回傳之間被傳送。然而,此寫入完成資訊傳輸流量單元並不與CPU之對映對應於上次所傳送的先行TID(例如在資訊傳輸流量單元 Data0 B中的)的下一個讀取回傳(例如讀取回傳C)的能力相牴觸,此僅聊舉一例。再舉一例,若發生一種錯誤狀況而使得無法針對已經被傳送的那個TID傳送資料,則可(例如,暗中地或明白地)取消傳輸。當一個有標頭記憶資料封包被傳送時,先前的TID可被取消(例如以應對一個錯誤,像是ECC錯誤等等),此僅聊舉一例。
係可運用其他機構來擴充或取代像是於前文中所提出的先行追蹤器ID識別解決方案的特徵。例如,係可在緩衝器裝置(例如1315)與對應的主機(例如CPU 1305)(可就此主機傳送即將來臨的讀取回應的追蹤器ID)之間提供專用佈線(例如邊帶佈線)。然而,在先行追蹤器ID識別係被以另一個讀取請求之讀取回傳嵌入而於帶內發送的實作中,這樣的邊帶通道可係不必要的。
在一個交易型具緩衝區記憶體介面之範例中,一個緩衝器裝置(例如1315)的一個記憶體控制器可在一個讀取確實有被排程時知道資料將於何時從對應記憶體回傳。因此,該緩衝器裝置可藉由藉著為讀取資料之抵達作好準備來試圖最小化讀取延時而最佳化效能,包括在讀取資料抵達之前傳送一個指示給CPU之系統代理器以使得能夠對該讀取資料之標頭作先行裝配。這可使延時最小化,因為讀取資料可在抵達時立即被轉送。這(與用於將對回應之追蹤器ID之先行識別傳送至緩衝器裝置之主機的功能耦合)可藉由減少延時而改善系統的效率與效能,其他還有別的範例優點。
係可將HPI與相關聯具緩衝區記憶體取用協定整合在任何各種運算裝置與系統中,包括大型電腦、伺服器系統、個人電腦、行動電腦(例如平板、智慧型手機、個人數位系統等等)、智慧型設備、遊戲或娛樂控制台和機上盒,此僅聊舉數例。例如,請參看圖18,其示出依據本發明之一實施例的一第二系統1800之方塊圖。如於圖18中所示,多處理器系統1800是一個點對點互連系統,其包括經由一個點對點互連1850而耦接的第一處理器1870和第二處理器1880。處理器1870和1880各可為一個處理器的某種版本。在一個實施例中,1852和1854是一個串聯點對點同調互連組構(例如一個高效能架構)的一部分。因此,本發明係可實施於QPI架構中。
雖然僅以兩個處理器1870、1880來作展示,但應瞭解,本發明之範疇並不如此受限。在其他實施例中,額外的一或多個處理器係可存在於一個給定處理器中。係將處理器1870和1880示為分別包括有經整合記憶體控制器單元1872和1882。處理器1870亦包括有點對點(point-to-point,P-P)介面1876和1878作為其匯流排控制器單元的一部分;類似地,第二處理器1880可包括P-P介面1886和1888。處理器1870、1880可使用P-P介面電路1878、1888而經由一個點對點(P-P)介面1850交換資料。如於圖18中所示,IMC 1872和1882將這些處理器耦接至各別的記憶體,也就是記憶體1832和記憶體1834,其可為本地附接至各別處理器的主記憶體的幾個部份。
處理器1870、1880各使用點對點介面電路1876、1894、1886、1898來經由個別的P-P介面1852、1854與而晶片組1890交換資訊。晶片組1890亦經由介面電路1892來順著高效能圖形互連1839而與高效能圖形電路1838交換資訊。
可有一個共享快取記憶體(未示於圖中)被包括在其中一個處理器中或是在這兩個處理器之外;但仍經由P-P互連而與這些處理器連接,以使得當有一個處理器被置於低電力模式中時,其中一個或二個處理器的本地快取資訊可被儲存在此共享快取中。
晶片組1890可係經由一個介面1896而耦接至一第一匯流排1816。在一個實施例中,第一匯流排1816可係一個週邊部件互連(PCI)匯流排,或像是PCI快捷(PCI Express)匯流排或另一種第三代I/O互連匯流排的一個匯流排,但本發明之範疇並不如此受限。
如於圖18中所示,各種I/O裝置1814係和一個匯流排橋1818一起耦接至第一匯流排1816,匯流排橋1818將第一匯流排1816耦接至一第二匯流排1820。在一個實施例中,第二匯流排1820包含一個低腳位數(low pin count(LPC)匯流排。在一個實施例中,係有各種裝置耦接至第二匯流排1820,包括,例如,鍵盤以及(或是)滑鼠1822、通訊裝置1827和常包含有指令或程式碼和資料1830的儲存體單元1828(像是磁碟機或其他大容量儲存裝置)。此外,係將一個音訊I/O 1824示為耦接至第二匯流排1820。請注 意,其他架構也是有可能的,當中所包含的部件和互連架構可有所變化。例如,取代於圖18的點對點架構,系統係可實施多點匯流排或其他此種架構。
雖然已針對有限數量的實施例來說明本發明,但熟於此技者會可識出從中而生的許多修改體和變異體。係意欲要使後附申請專利範圍涵蓋落於本發明之真實精神與範疇內的所有這些修改體和變異體。
一個設計可能會經過許多階段,從創造到模擬到製造。代表一個設計的資料可係以許多種方式來代表此設計。首先,例如在模擬中很有用處的,可係利用硬體描述語言或另一種功能性描述語言來代表硬體。此外,可係在此設計處理程序的一些階段產生具有邏輯以及(或是)電晶體閘極的電路層級模型。另外,大部分的設計會在某個階段達到代表此硬體模型中之各種裝置的實體設置的某個資料層級。在使用傳統半導體製程技術的事例中,代表此硬體模型的資料可係針對用來產生此積體電路的遮罩而指明在不同遮罩層上之各種特徵的出現或缺少的資料。在此設計的任何表示型態中,可係以機器可讀媒體的任何方式來儲存資料。用來儲存經由光波或電波所發送之資訊(此光波或電波被調變或以其它方式產生以發送此等資訊)的此機器可讀媒體可係一個記憶體或一個磁性或光學儲存體,例如碟片。當指出或載負程式碼或設計的一個電氣式載波被發送時,就進行對此電氣信號的複製、緩衝、或再發送這方面而言,會作出一個新的複本。因此,一個 通訊提供者或網路提供者可在一個有形機器可讀媒體上至少暫時地儲存體現本發明之實施例之技術的一項物品,例如被編碼到載波裡的資訊。
於本文中所用的一個模組可係指任何硬體、軟體以及(或是)韌體之任何組合。舉例來講,一個模組包括與用於儲存程式碼的一個非暫時性媒體相關聯的硬體,例如微控制器,該等程式碼適於由該微控制器執行。因此,在一個實施例中,對一個模組的指涉係指被特別組配以認可以及(或是)執行要被保持在一個非暫時性媒體硬體中之程式碼的硬體。此外,在另一個實施例中,對一個模組的使用可係指含有該等程式碼的非暫時性媒體,該等程式碼適於由該微控制器執行以進行預定操作。並且,如同可推測出的,在又另一個實施例中,模組一詞(在這個範例中)可係指為控制器與非暫時性媒體的組合。被例示為分開的模組界線常常會有變化並且有可能重疊,這是常見的。例如,一第一模組和一第二模組可共享硬體、軟體、韌體、或前述幾項之組合,同時也有可能維持一些獨立的硬體、軟體、或韌體。在一個實施例中,對於邏輯此詞的使用包括硬體,例如電晶體、暫存器、或其他硬體,例如可程式規劃邏輯裝置。
在一個實施例中,「受組配成」這樣的用語係指為了進行所訂定或所決定的任務而對設備、硬體、邏輯或元件所作的配置、組合、製造、提供販售、進口以及(或是)設計。在這個範例中,其設備或元件如係被設計、耦 接以及(或是)互連以進行所訂定任務,則此設備或元件於非運作中仍係「受組配成」可進行所訂定任務。單純舉例而言,一個邏輯閘在操作當中可提供0或1。但「受組配成」可提供致能信號給時鐘的一個邏輯閘並不包括可提供1或0的每個可能邏輯閘。確切說來,該邏輯閘是以某種方式耦接來在操作過程中使1和0輸出致能時鐘者。請再次注意到,「受組配成」這樣的用語並不一定要進行操作,反而重點是在設備、硬體以及(或是)元件的潛在狀態上,其中,在該潛在狀態中,該設備、硬體以及(或是)元件係被設計來在該設備、硬體以及(或是)元件運作時進行一項特定任務。
此外,在一個實施例中,「以」、「能夠」以及(或是)「運作來」這樣的用語係指一個設備、邏輯、硬體以及(或是)元件被以特定方式設計以致能對該設備、邏輯、硬體以及(或是)元件的使用。請注意,如同上文中所述的,在一個實施例中,以、能夠或是運作來這樣的用語係指設備、邏輯、硬體以及(或是)元件的潛在狀態,其中,該設備、邏輯、硬體以及(或是)元件非運作中但係被設計成使得能夠以一種特定方式致能對一個設備的使用。
於本文中所用時,數值係包括對於數目、狀態、邏輯狀態、或二元邏輯狀態的任何習知表示型態。對於邏輯位準、邏輯數值、或邏輯性數值的使用常常亦係以簡單地表示二元邏輯狀態的1和0指涉。例如,1指高邏輯位準,而0指低邏輯位準。在一個實施例中,一個儲存體 胞元,例如一個電晶體或快閃胞元,可係能夠握持單一個邏輯性數值或複數個邏輯性數值。然而,在電腦系統中已有使用其他對於數值的表示型態。例如,十進位數十可亦被表示成1010的二元數值和十六進位字母A。因此,數值係包括對可被握持在電腦系統中之資訊的任何表示型態。
此外,狀態可係由數值或數值之部份來表示。舉例來說,一第一數值,例如一個邏輯的一,可代表一個預設或初始狀態,而一第二數值,例如一個邏輯的零,可代表一個非預設狀態。此外,在一個實施例中,重置和設置這些詞語分別係指一個預設數值或狀態和一個經更新數值或狀態。例如,一個預設數值可能包括一個高邏輯性數值,也就是重置,而一個經更新數值可能包括一個低邏輯性數值,也就是設置。請注意,係可利用任何數值的組合來表示任何數量的狀態。
於上文中所提出的方法、硬體、軟體、韌體或程式碼的數個實施例可係經由儲存在機器可取用、機器可讀取、電腦可取用或電腦可讀取媒體中的可由處理元件執行的指令或碼來實施。非暫時性機器可取用或可讀取媒體包括以機器(例如電腦或電子系統)可讀取之形式提供(亦即,儲存以及(或是)發送)資訊的任何機構。例如,非暫時性機器可取用媒體包括隨機存取記憶體(random-access memory,RAM),例如靜態RAM(static RAM,SRAM)或動態RAM(dynamic RAM,DRAM);ROM;磁性或光學儲存媒體;快閃記憶體設備;電氣式儲 存設備;光學儲存設備;聲學儲存設備;其他形式的用於握持自暫時性(經傳播)信號(例如載波、紅外線信號、數位信號)接收而來之資訊的儲存設備;等等,其係與可從中接收資訊的非暫時性媒體有所區別。
用來對邏輯作程式規劃以進行本發明之實施例的指令可係被儲存在系統的一個記憶體中,例如DRAM、快取記憶體、快閃記憶體、或其他儲存體。例如,這些指令可係經由一個網路或藉由其他電腦可讀媒體來散佈。因此,一個機器可讀媒體可係包括用於以可被機器(例如,電腦)讀取的形式來儲存或發送資訊的任何機構,但並不受限於軟碟、光學碟片、光碟唯讀記憶體(Compact Disc,Read-Only Memory,CD-ROM)、和磁光碟、唯讀記憶體(Read-Only Memory,ROM)、隨機存取記憶體(RAM)、可抹除可程式規劃唯讀記憶體(Erasable Programmable Read-Only Memory,EPROM)、可電氣式抹除和程式規劃唯讀記憶體(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性或光學卡、快閃記憶體、或用於經由電氣式、光學式、聲學或其他形式的傳播信號(例如,載波、紅外線信號、數位信號等等)而透過網際網路發送資訊的有形機器可讀儲存體。因此,此電腦可讀媒體包括適於以機器(例如,電腦)可讀取之形式儲存或發送電子指令或資訊的任何類型的有形機器可讀媒體。
下面的範例係與和本說明內容相符之實施例有關。一或多個實施例可提供一種設備、系統、機器可讀取 儲存體、機器可讀取媒體、以硬體以及(或是)軟體為基礎的邏輯、以及方法,用以識別要經由一個交易型具緩衝區記憶體介面而被傳送至一個主機裝置的由數個讀取回傳所組成的一個序列,其中,該序列至少包含對第一讀取請求的第一讀取回傳和對第二讀取請求的第二讀取回傳。第二讀取回傳的追蹤器識別符可被編碼在第一讀取回傳中,並且該第一讀取回傳可與該第二讀取回傳之追蹤器識別符一起被傳送給主機裝置。該第二讀取回傳可在第一讀取回傳被傳送以後被傳送給主機裝置。
在至少一個實施例中,該介面係要包括與具緩衝區記憶體鏈路協定相容的一個鏈路。
在至少一個實施例中,該具緩衝區記憶體鏈路協定含納一個一般用途輸入輸出(GPIO)互連協定的實體層和鏈路層。
在至少一個實施例中,該記憶體緩衝器裝置可接收來自該主機裝置的由數個讀取請求所組成的一個序列,並且由讀取請求所組成的該序列對應於由讀取回傳所組成的該序列。
在至少一個實施例中,在該序列中的該等讀取回傳中之最末者會被編碼以針對一個先行交易識別符指出一個虛設值。
在至少一個實施例中,該第一讀取回傳可進一步包括該第一讀取回傳的一個追蹤器識別符。
在至少一個實施例中,該第一讀取回傳可包括一 個有標頭封包,並且該第二讀取回傳可包括一個無標頭封包。
在至少一個實施例中,該第一讀取回傳可由於該第一讀取回傳係在該序列中的第一個讀取回傳而包括該有標頭封包,並且在該序列中的後續讀取回傳包括無標頭封包。
在至少一個實施例中,有標頭封包各包含一組資訊傳輸流量單元以包含一個標頭資訊傳輸流量單元和四個資料資訊傳輸流量單元,並且無標頭封包各包含一組三個資料資訊傳輸流量單元。
在至少一個實施例中,該第二讀取回傳的該追蹤器識別符係要被編碼在該第一讀取回傳的一第一資料資訊傳輸流量單元中,並且該第一讀取回傳的該追蹤器識別符係要被編碼在該第一讀取回傳的該標頭資訊傳輸流量單元中。
在至少一個實施例中,該第一讀取請求和該第一讀取回傳對應於一第一交易,並且該第二讀取請求和該第二讀取回傳對應於一第二交易。
在至少一個實施例中,該序列進一步包含對應於一第三讀取請求的一第三讀取回傳,並且該第二讀取回傳會與該第三讀取請求的一個追蹤器識別符一起被編碼。
一或多個實施例可提供一種設備、系統、機器可讀取儲存體、機器可讀取媒體、以硬體以及(或是)軟體為基礎的邏輯、以及方法,用以將針對一第一交易的一第 一讀取請求傳送至一個緩衝器裝置、將針對一第二交易的一第二讀取請求傳送至該緩衝器裝置、並接收來自該緩衝器裝置的一第一讀取回傳。該第一讀取回傳可包括一第一追蹤器識別符,用以指出該第一讀取回傳對應於該第一讀取請求,且該第一讀取回傳可進一步包括一個先行第二追蹤器識別符,用以指出下一個讀取回傳對應於該第二讀取請求。
在至少一個實施例中,該接收器進一步可接收來自該緩衝器裝置的下一個讀取回傳。
在至少一個實施例中,該主機裝置可進一步包括一個主機控制器,用以基於該第一追蹤器識別符而將該第一讀取回傳對映至該第一讀取請求並將該第二讀取回傳對映至該第二讀取請求。
在至少一個實施例中,該主機裝置包括一個中央處理單元。
一或多個實施例可提供一種系統,用以包含一第一主機裝置、利用與一個記憶體存取鏈路協定相容的一個具緩衝區記憶體鏈路而連接至該第一主機裝置的一個緩衝器裝置、連接至該緩衝器裝置的一或多個記憶體裝置、以及利用與一個一般用途輸入輸出(GPIO)鏈路協定相容的一個特定鏈路而連接至第二主機裝置的一第二主機裝置。該緩衝器裝置可識別要經由該具緩衝區記憶體鏈路而被傳送至該第一主機裝置的由數個讀取回傳組成的一個序列、將該第二讀取回傳的一個追蹤器識別符編碼在該第一讀取 回傳中、將該第一讀取回傳與該第二讀取回傳之該追蹤器識別符一起傳送至該第一主機裝置、以及在傳送該第一讀取回傳以後將該第二讀取回傳傳送給該第一主機裝置。
在至少一個實施例中,該主機裝置進一步可經由該特定鏈路而將該第一讀取回傳和該第二讀取回傳其中至少一者之資料轉送給該第二主機裝置。
在至少一個實施例中,該記憶體存取鏈路協定不同於該GPIO鏈路協定,該GPIO鏈路協定包含一個實體層和一個鏈路層,該記憶體存取鏈路協定的實體層係以該GPIO鏈路協定之該實體層為基礎,並且該記憶體存取鏈路協定的鏈路層係以該GPIO鏈路協定之該鏈路層為基礎。
在至少一個實施例中,該第一主機裝置包括一個運算裝置的一第一CPU,並且該第二主機裝置包括該運算裝置的一第二CPU。
於本說明書通篇中之對「一個實施例」或「一實施例」之指涉係指配合此實施例所說明的一個特定特徵、結構或特性係包括在本發明的至少一個實施例中。因此,於本說明書通篇中之多處的「在一個實施例中」或「在一實施例中」這些詞語的出現並不必然全係指涉同一個實施例。此外,在一或多個實施例中,係可以任何適當方式組合這些特定特徵、結構或特性。
在前面的說明中,係已參考數個特定示範實施例而給予詳細說明。然而,很明顯地,係可對其做出各種修改和改變,而不悖離本發明之如於後附申請專利範圍中 所提出的較廣義精神與範疇。本說明書和圖式因而應係以一種例示方式,而非限制方式來看待。此外,前述對實施例和其他示範措辭之使用並不必然係指同一個實施例或同一個範例,而係可能指不同且相異的實施例,也可能是指同一個實施例。

Claims (20)

  1. 一種設備,其包含:一個記憶體緩衝器裝置,用以進行下列操作:識別要經由一個介面而被傳送至一個主機裝置之由數個讀取回傳組成的一個序列,其中,該介面可包含一個交易型具緩衝區記憶體介面,並且該序列至少包含針對一第一讀取請求的一第一讀取回傳和針對一第二讀取請求的一第二讀取回傳;將該第二讀取回傳的一個追蹤器識別符編碼在該第一讀取回傳中;將該第一讀取回傳與將該第二讀取回傳之該追蹤器識別符一起傳送至該主機裝置;以及在傳送該第一讀取回傳以後將該第二讀取回傳傳送給該主機裝置。
  2. 如請求項1之設備,其中:該介面可包含與一個具緩衝區記憶體鏈路協定相容的一個鏈路。
  3. 如請求項2之設備,其中:該具緩衝區記憶體鏈路協定含納一個一般用途輸入輸出(GPIO)互連協定的實體層和鏈路層。
  4. 如請求項1之設備,其中:該記憶體緩衝器裝置可接收來自該主機裝置之由數個讀取請求所組成的一個序列,並且由讀取請求所組 成的該序列對應於由讀取回傳所組成的該序列。
  5. 如請求項4之設備,其中:在該序列中的該等讀取回傳中之最末者會被編碼以針對一個先行交易識別符指出一個虛設值。
  6. 如請求項1之設備,其中:該第一讀取回傳進一步包含該第一讀取回傳的一個追蹤器識別符。
  7. 如請求項6之設備,其中:該第一讀取回傳包含一個有標頭封包,並且該第二讀取回傳包含一個無標頭封包。
  8. 如請求項7之設備,其中:該第一讀取回傳可係由於該第一讀取回傳係在該序列中的第一個讀取回傳而含有該有標頭封包,並且在該序列中的後續讀取回傳係含有無標頭封包。
  9. 如請求項7之設備,其中:有標頭封包各包含一組資訊傳輸流量單元以包含一個標頭資訊傳輸流量單元和四個資料資訊傳輸流量單元,並且無標頭封包各包含一組三個資料資訊傳輸流量單元。
  10. 如請求項7之設備,其中:該第二讀取回傳的該追蹤器識別符係要被編碼在該第一讀取回傳的一第一資料資訊傳輸流量單元中,並且該第一讀取回傳的該追蹤器識別符係要被編碼在該第一讀取回傳的該標頭資訊傳輸流量單元中。
  11. 如請求項1之設備,其中:該第一讀取請求和該第一讀取回傳對應於一第一交易,並且該第二讀取請求和該第二讀取回傳對應於一第二交易。
  12. 如請求項1之設備,其中:該序列進一步包含一第三讀取回傳以對應於一第三讀取請求,並且該第二讀取回傳會與該第三讀取回傳的一個追蹤器識別符一起被編碼。
  13. 一種設備,其包含:一個主機裝置,其包含:一個發送器,用以進行下列操作:將針對一第一交易的一第一讀取請求傳送至一個緩衝器裝置;及將針對一第二交易的一第二讀取請求傳送至該緩衝器裝置;以及一個接收器,用以接收來自該緩衝器裝置的一第一讀取回傳,其中,該第一讀取回傳包含一第一追蹤器識別符以指出該第一讀取回傳對應於該第一讀取請求,並且該第一讀取回傳進一步包含一個先行第二追蹤器識別符以指出下一個讀取回傳對應於該第二讀取請求。
  14. 如請求項13之設備,其中:該接收器進一步可接收來自該緩衝器裝置的下一個讀取回傳。
  15. 如請求項14之設備,其中,該主機裝置可進一步包含:一個主機控制器,用以基於該第一追蹤器識別符而將該第一讀取回傳對映至該第一讀取請求並將該第二讀取回傳對映至該第二讀取請求。
  16. 如請求項13之設備,其中:該主機裝置包含一個中央處理單元。
  17. 一種系統,其包含:一第一主機裝置;一個緩衝器裝置,其利用與一個記憶體存取鏈路協定相容的一個具緩衝區記憶體鏈路而連接至該第一主機裝置;一或多個記憶體裝置,其連接至該緩衝器裝置;以及一第二主機裝置,其利用與一個一般用途輸入輸出(GPIO)鏈路協定相容的一個特定鏈路而連接至該第二主機裝置;其中,該緩衝器裝置可進行下列操作:識別要經由該具緩衝區記憶體鏈路而被傳送至該第一主機裝置之由數個讀取回傳組成的一個序列,其中,該序列至少包含針對一第一讀取請求的一第一讀取回傳和針對一第二讀取請求的一第二讀取回傳;將該第二讀取回傳的一個追蹤器識別符編碼在該第一讀取回傳中; 將該第一讀取回傳與該第二讀取回傳之該追蹤器識別符一起傳送至該第一主機裝置;及在傳送該第一讀取回傳以後將該第二讀取回傳傳送給該第一主機裝置。
  18. 如請求項17之系統,其中:該主機裝置進一步可經由該特定鏈路而將該第一讀取回傳和該第二讀取回傳其中至少一者之資料轉送給該第二主機裝置。
  19. 如請求項18之系統,其中:該記憶體存取鏈路協定不同於該GPIO鏈路協定,該GPIO鏈路協定包含一個實體層和一個鏈路層,該記憶體存取鏈路協定的實體層係以該GPIO鏈路協定之該實體層為基礎,並且該記憶體存取鏈路協定的鏈路層係以該GPIO鏈路協定之該鏈路層為基礎。
  20. 如請求項19之系統,其中:該第一主機裝置包含一個運算裝置的一第一CPU,並且該第二主機裝置包含該運算裝置的一第二CPU。
TW104138272A 2014-12-20 2015-11-19 用於交易型具緩衝區記憶體中之先行識別之技術 TWI604312B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/578,407 US9740646B2 (en) 2014-12-20 2014-12-20 Early identification in transactional buffered memory

Publications (2)

Publication Number Publication Date
TW201633165A true TW201633165A (zh) 2016-09-16
TWI604312B TWI604312B (zh) 2017-11-01

Family

ID=54703769

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104138272A TWI604312B (zh) 2014-12-20 2015-11-19 用於交易型具緩衝區記憶體中之先行識別之技術

Country Status (5)

Country Link
US (2) US9740646B2 (zh)
EP (2) EP3327578B1 (zh)
KR (1) KR101842568B1 (zh)
CN (2) CN105718391B (zh)
TW (1) TWI604312B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI842470B (zh) * 2023-04-11 2024-05-11 瑞昱半導體股份有限公司 藉由串列通訊匯流排與主裝置進行通訊的電子裝置以及針對電子裝置進行辨識符的指定的方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747048B2 (en) * 2014-06-02 2017-08-29 Micron Technology, Inc. Systems and methods for packing data in a scalable memory system protocol
WO2017058494A1 (en) * 2015-10-01 2017-04-06 Rambus Inc. Memory system with cached memory module operations
US10644958B2 (en) * 2016-01-30 2020-05-05 Western Digital Technologies, Inc. All-connected by virtual wires network of data processing nodes
EP3352087B1 (en) 2016-12-05 2020-09-16 Huawei Technologies Co., Ltd. Control method for data read/write command in nvme over fabric framework, device and system
CN110413542B (zh) 2016-12-05 2023-08-22 华为技术有限公司 NVMe over Fabric架构中数据读写命令的控制方法、设备和系统
WO2018119778A1 (en) * 2016-12-28 2018-07-05 Intel Corporation System and method for vector communication
US10784986B2 (en) 2017-02-28 2020-09-22 Intel Corporation Forward error correction mechanism for peripheral component interconnect-express (PCI-e)
DE102018001574B4 (de) 2018-02-28 2019-09-05 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems
US11474967B2 (en) * 2018-06-25 2022-10-18 Intel Corporation Systems, methods, and devices for dynamic high speed lane direction switching for asymmetrical interfaces
KR20200066774A (ko) 2018-12-03 2020-06-11 삼성전자주식회사 반도체 장치
US10771189B2 (en) * 2018-12-18 2020-09-08 Intel Corporation Forward error correction mechanism for data transmission across multi-lane links
US11637657B2 (en) 2019-02-15 2023-04-25 Intel Corporation Low-latency forward error correction for high-speed serial links
US11249837B2 (en) 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity
US11296994B2 (en) 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
CN110362516B (zh) * 2019-07-23 2020-11-10 南京凯鼎电子科技有限公司 一种提高ddr存储总线利用率的方法和装置
US11740958B2 (en) 2019-11-27 2023-08-29 Intel Corporation Multi-protocol support on common physical layer
KR102529761B1 (ko) 2021-03-18 2023-05-09 에스케이하이닉스 주식회사 PCIe 디바이스 및 그 동작 방법
KR102521902B1 (ko) 2021-03-23 2023-04-17 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
KR102496994B1 (ko) * 2021-03-23 2023-02-09 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
CN117222992A (zh) * 2021-06-01 2023-12-12 微芯片技术股份有限公司 用于旁路存储器读取请求检测的系统和方法
CN114020662B (zh) * 2021-11-02 2024-07-16 上海兆芯集成电路股份有限公司 桥接模块、数据传输系统和数据传输方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7113523B1 (en) 1997-06-11 2006-09-26 Sony Corporation Data multiplexing device, program distribution system, program transmission system, pay broadcast system, program transmission method, conditional access system, and data reception device
US6728816B1 (en) * 2001-02-09 2004-04-27 Lsi Logic Corporation Simple mechanism for guaranteeing in order read data return on a split transaction bus
US7149857B2 (en) * 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer
KR100528861B1 (ko) * 2003-03-04 2005-11-16 삼성전자주식회사 제어 패킷의 적응적 대역 할당을 위한 패킷 포워딩시스템의 제어 패킷 관리 장치 및 그의 제어 패킷 관리 방법
JP2006113689A (ja) * 2004-10-12 2006-04-27 Fujitsu Ltd バスブリッジ装置およびデータ転送方法
US7620694B2 (en) 2005-09-27 2009-11-17 Intel Corporation Early issue of transaction ID
US7949794B2 (en) * 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8090967B2 (en) * 2008-05-23 2012-01-03 Intel Corporation Power state transition initiation control of memory interconnect based on early warning signal, memory response time, and wakeup delay
US8656117B1 (en) * 2008-10-30 2014-02-18 Nvidia Corporation Read completion data management
US8205111B2 (en) * 2009-01-02 2012-06-19 Intel Corporation Communicating via an in-die interconnect
US8713277B2 (en) 2010-06-01 2014-04-29 Apple Inc. Critical word forwarding with adaptive prediction
KR101696124B1 (ko) 2012-10-22 2017-01-12 인텔 코포레이션 고성능 인터커넥트 물리 계층

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI842470B (zh) * 2023-04-11 2024-05-11 瑞昱半導體股份有限公司 藉由串列通訊匯流排與主裝置進行通訊的電子裝置以及針對電子裝置進行辨識符的指定的方法

Also Published As

Publication number Publication date
CN108334463A (zh) 2018-07-27
KR101842568B1 (ko) 2018-05-14
CN105718391A (zh) 2016-06-29
EP3327578A1 (en) 2018-05-30
US20160179718A1 (en) 2016-06-23
TWI604312B (zh) 2017-11-01
EP3035199A1 (en) 2016-06-22
US10198379B2 (en) 2019-02-05
US9740646B2 (en) 2017-08-22
KR20160075312A (ko) 2016-06-29
CN108334463B (zh) 2021-07-13
EP3035199B1 (en) 2018-06-27
EP3327578B1 (en) 2020-06-03
CN105718391B (zh) 2018-12-11
US20180060259A1 (en) 2018-03-01

Similar Documents

Publication Publication Date Title
TWI604312B (zh) 用於交易型具緩衝區記憶體中之先行識別之技術
US20230367481A1 (en) Implied directory state updates
CN108829614B (zh) 缓冲存储器中的推测性读
CN107438838B (zh) 打包的写完成
CN107005371B (zh) 事务缓冲存储器中的错误处理