TWI671751B - 交易型緩衝記憶體中之錯誤處置技術(二) - Google Patents
交易型緩衝記憶體中之錯誤處置技術(二) Download PDFInfo
- Publication number
- TWI671751B TWI671751B TW106129563A TW106129563A TWI671751B TW I671751 B TWI671751 B TW I671751B TW 106129563 A TW106129563 A TW 106129563A TW 106129563 A TW106129563 A TW 106129563A TW I671751 B TWI671751 B TW I671751B
- Authority
- TW
- Taiwan
- Prior art keywords
- flit
- data
- header
- memory
- link
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1608—Error detection by comparing the output signals of redundant hardware
- G06F11/1625—Error detection by comparing the output signals of redundant hardware in communications, e.g. transmission, interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1654—Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error detection by comparing the memory output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0079—Formats for control data
- H04L1/0082—Formats for control data fields explicitly indicating existence of error in data being transmitted, e.g. so that downstream stations can avoid decoding erroneous packet; relays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1838—Buffer management for semi-reliable protocols, e.g. for less sensitive applications such as streaming video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0097—Relays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
經由鏈路將資料自記憶體緩衝裝置發送至主機裝置。決定資料中之錯誤。將讀取回應取消信號發送至主機裝置以向主機裝置指示錯誤,其中讀取回應取消信號將在資料經自記憶體緩衝裝置發送至主機裝置之後經發送。
Description
本揭示內容一般而言係關於計算架構領域,且更具體而言係關於具緩衝區記憶體協定。
半導體處理及邏輯設計之發展已容許可存在於積體電路裝置上的邏輯之量的增加。作為必然結果,電腦系統組態已自系統中的單個或多個積體電路進化至存在於單獨積體電路上的多個核心、多個硬體執行緒及多個邏輯處理器以及整合在此類處理器內的其他介面。處理器或積體電路通常包含單個實體處理器晶粒,其中處理器晶粒可包括任何數目的核心、硬體執行緒、邏輯處理器、介面、記憶體、控制器集線器等。
作為具有在較小封裝中適合較大處理能力之較大能力的結果,較小計算裝置之流行性已增加。智慧型電話、平板電腦、超薄筆記型電腦及其他使用者設備呈指數級增長。然而,此等較小裝置對於資料儲存及超過形狀因素的複雜處理兩者依賴於伺服器。因此,高效能計算市場
(亦即,伺服器空間)中的需求亦已增加。例如,在現代伺服器中,通常不僅存在具有多個核心的單個處理器,而且亦存在多個實體處理器(亦被稱為多個插座)以增加計算能力。但隨著處理能力連同計算系統中的裝置之數目一起增長,插座與其他裝置之間的通訊變得更為關鍵。
事實上,互連體已由主要處置電氣通訊的較傳統多分支匯流排發展成促進快速通訊的充分發展的互連架構。不幸地,因為需要未來處理器以甚至更高速率消耗,所以對應需求經置於現有互連架構之能力上。
依據本發明之一實施例,係特地提出一種設備,其包含:緩衝器晶片,其包含:一記憶體控制器,其用以作為與一記憶體之介面,並且轉換記憶體要求為對應於該記憶體之一記憶體特定協定;一接收器,其用以經由一交易記憶體鏈路自一處理器裝置接收一特定記憶體要求;一發射器,其用以發送一讀取回應至該處理器裝置,該讀取回應包含複數個封包,其中該等複數個封包包含跟隨著一無標頭封包之一初始標頭封包,該標頭封包包含一標頭flit以及一第一數目之資料flit,該無標頭封包包含一第二數目之資料flit,該第二數目係少於該第一數目,該標頭flit包含對應於在該第一數目資料flit中之資料之一要求交易識別符(TID),該第一數目之資料flit中之每一者包含對應於在該第二數目資料flit中之資料的一TID,並且該第二數目之資料flit中之每一者包含用於在一後續無標頭封包中之資料的一TID。
100‧‧‧系統
105‧‧‧處理器
106‧‧‧前側匯流排(FSB)/鏈路
110‧‧‧系統記憶體
115‧‧‧控制器集線器/根聯合體
116‧‧‧記憶體介面
117、121‧‧‧輸入/輸出模組/介面/埠
118、131‧‧‧I/O模組/介面
119、132‧‧‧串列鏈路
120‧‧‧交換機/橋接器
122、126、1796‧‧‧介面
415‧‧‧鏈路
125‧‧‧裝置/I/O裝置
130‧‧‧圖形加速器
200‧‧‧分層協定堆疊/通訊協定堆疊
205‧‧‧交易層/轉譯層
206‧‧‧封包標頭/酬載
210‧‧‧鏈路層/資料鏈路層
211‧‧‧封包序列識別符
212‧‧‧CRC
220、605a、605b‧‧‧實體層
221‧‧‧邏輯子區塊
222‧‧‧電氣子區塊/實體區塊
223‧‧‧訊框
300‧‧‧交易描述符
302‧‧‧總體識別符欄位/總體交易識別符
304‧‧‧屬性欄位
306‧‧‧通道識別符欄位/通道ID欄位
308‧‧‧局部交易識別符欄位
310‧‧‧來源識別符欄位/來源識別符
312‧‧‧優先權欄位/優先權子欄位
314‧‧‧保留欄位
316‧‧‧排序欄位
318‧‧‧非監聽欄位
405、410‧‧‧裝置
406、407‧‧‧傳輸對/傳輸邏輯
411‧‧‧傳輸對
412‧‧‧接收對
416、417‧‧‧路徑/線路
418、419‧‧‧路徑
505‧‧‧二插座組態
510‧‧‧四插座組態
515‧‧‧組態
610a、610b‧‧‧鏈路層
615a、615b‧‧‧路由層
620a、620b‧‧‧協定層
630‧‧‧封包
635‧‧‧flit
640‧‧‧phit
1300、1400‧‧‧簡化方塊圖
1305、1310‧‧‧CPU裝置/CPU
1315a~13151‧‧‧緩衝裝置
1315‧‧‧緩衝器晶片
1405‧‧‧近記憶體模組
1410‧‧‧遠記憶體模組
1415‧‧‧具緩衝區記憶體協定互連鏈路
1420‧‧‧記憶體控制器
1425‧‧‧排程器
1430‧‧‧流程控制邏輯
1435‧‧‧錯誤偵測邏輯
1440‧‧‧主機控制器邏輯
1600‧‧‧圖表
1605‧‧‧目的地裝置
1610、1635‧‧‧讀取回應
1615、1630‧‧‧錯誤檢查
1620、1640‧‧‧處理
1625‧‧‧回應資料
1645‧‧‧取消訊息
1650‧‧‧取消
1700‧‧‧第二系統/多處理器系統
1714‧‧‧I/O裝置
1716‧‧‧第一匯流排
1718‧‧‧匯流排橋接器
1720‧‧‧第二匯流排
1722‧‧‧鍵盤及/或滑鼠
1724‧‧‧音訊I/O
1727‧‧‧通訊裝置
1728‧‧‧儲存單元
1730‧‧‧指令/碼及資料
1732、1734‧‧‧記憶體
1738‧‧‧高效能圖形電路
1739‧‧‧高效能圖形互連體
1750‧‧‧點對點互連體
1752、1754‧‧‧點對點(P-P)介面
1770‧‧‧第一處理器/處理器
1772、1782‧‧‧整合型記憶體控制器單元
1776、1778、1786、1788、1794、1798‧‧‧點對點(P-P)介面電路
1780‧‧‧第二處理器/處理器
1790‧‧‧晶片集
1792‧‧‧介面電路
圖1例示根據一實施例之系統的簡化方塊圖,該系統包括用以連接電腦系統中的I/O裝置的串列點對點互連體;圖2例示根據一實施例之分層協定堆疊的簡化方塊圖;圖3例示交易描述符之一實施例。
圖4例示串列點對點鏈路之一實施例。
圖5例示潛在高效能互連(HPI)系統組態之實施例。
圖6例示與HPI相關聯的分層協定堆疊之一實施例。
圖7例示示例性狀態機之表示。
圖8例示經由示例性二十道資料鏈路發送的示例性flit之表示。
圖9例示經由示例性八道資料鏈路發送的示例性flit之表示。
圖10例示示例性多槽flit之表示。
圖11例示經由示例性八道資料鏈路發送的示例性flit之表示。
圖12例示包括除錯訊息的示例性多層flit之表示。
圖13例示利用具緩衝區記憶體協定的系統之表 示。
圖14例示支援具緩衝區記憶體協定的緩衝裝置之表示。
圖15A至圖15C例示具緩衝區記憶體協定中之示例性flit之表示。
圖16例示根據一些實行方案之緩衝裝置與主機裝置之間的示例性通訊。
圖17例示用於包括多個處理器插座的計算系統的方塊之一實施例。
各圖式中之相似參考符號及指定指示相似元件。
在以下描述中,闡述許多特定細節,諸如特定類型之處理器及系統組態之實例、特定硬體結構、特定架構及微架構細節、特定暫存器組態、特定指令類型、特定系統組件、特定處理器管線級段、特定互連層、特定封包/交易組態、特定交易名稱、特定協定交換、特定鏈路寬度、特定實行方案及操作等,以便提供對本發明之徹底理解。然而,熟習此項技術者將明白,此等特定細節不必用來實踐本揭示內容之主題。在其他情況下,已避免諸如特定及替代性處理器架構、用於所述演算法之特定邏輯電路/碼、特定韌體碼、低階互連操作、特定邏輯組態、特定製造技術及材料、特定編譯器實行方案、演算法之以碼之特定表達、特定電源切斷及閘控技術/邏輯及電腦系統之其他特定 操作細節的已知組件或方法之詳細描述,以便避免不必要地模糊本揭示內容。
儘管可參考特定積體電路,諸如計算平台或微處理器中之能量節省、能量效率、處理效率等來描述以下實施例,但其他實施例適用於其他類型的積體電路及邏輯裝置。本文所述之實施例的類似技術及教示可應用於亦可受益於此類特徵的其他類型之電路或半導體裝置。例如,所揭示之實施例不限於伺服器電腦系統、桌上型電腦系統、膝上型電腦、UltrabooksTM,但可亦使用於其他裝置中,該等其他裝置諸如手持裝置、智慧型電話、平板電腦、其他薄筆記型電腦、系統單晶片(SOC)裝置及嵌入式應用程式。手持式裝置之一些實例包括行動電話、網際網路協定裝置、數位相機、個人數位助理(PDA)及手持式PC。在此,用於高效能互連之類似技術可應用來提高低功率互連體中之效能(或甚至節約功率)。嵌入式應用程式通常包括微控制器、數位信號處理器(DSP)、系統單晶片、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)交換機,或可執行以下所教示之功能及操作的任何其他系統。此外,本文所述之設備、方法及系統不限於實體計算裝置,而亦可與針對能量節省及效率之軟體最佳化相關。如在以下描述中將變得易於顯而易見的,本文所述之方法、設備及系統之實施例(無論參考硬體、韌體、軟體,抑或上述各者之組合)對於藉由效能考慮事項所平衡的『綠色技術』未來為重要的。
隨著計算系統進步,其中之組件正變得更複雜。用以在組件之間耦接及通訊的互連架構之複雜性亦已增加,以確保對於最佳組件操作滿足頻寬需求。此外,不同的市場區隔需要互連架構之不同態樣來適合個別市場。例如,伺服器需要較高效能,而行動生態系統有時能夠犧牲總效能以供功率節約。然而,大多數組構之單一目的為藉由最大功率節約提供最高可能的效能。此外,各種不同互連體可潛在地受益於本文所述之主題。
可根據本文所述之一或多個原理以及其他實例潛在地改良周邊組件互連(PCI)高速(PCIe)互連組構架構及快速路徑互連(QPI)組構架構以及其他實例。例如,PCIe之主要目標將允許來自不同供應商的組件及裝置在開放式架構中互相操作,橫跨多個市場區隔;客戶端(桌上型電腦及行動設備)、伺服器(標準及企業)以及嵌入式裝置及通訊裝置。PCI快速為針對多種未來計算及通訊平台定義的高效能通用I/O互連體。諸如PCI之使用模型、載入儲存架構及軟體介面的一些PCI屬性已經由該PCI之修訂獲維持,而先前平行匯流排實行方案已由高度可縮放的全串列介面替換。PCI高速之更近版本利用點對點互連體、以交換機為基礎的技術及封包化協定之發展來表達新效能水平及特徵。功率管理、服務品質(QoS)、熱插頭/熱調換支援、資料完整性及錯誤處置在由PCI高速支援的一些先進特徵之中。雖然本文主要論述係參考新的高效能互連(HPI)架構,但本文所述之本發明之態樣可應用於其他互連架構,諸如PCIe順應架 構、QPI順應架構、MIPI順應架構、高效能架構或其他已知互連架構。
參考圖1,例示由互連組件之集合的點對點鏈路組成的組構之一實施例。系統100包括處理器105及系統記憶體110,該處理器及該系統記憶體耦接至控制器集線器115。處理器105可包括任何處理元件,諸如微處理器、主機處理器、嵌入式處理器、共處理器或其他處理器。處理器105經由前側匯流排(FSB)106耦接至控制器集線器115。在一實施例中,FSB 106為如以下所述之串列點對點互連體。在另一實施例中,鏈路106包括符合不同互連標準的串列差動互連架構。
系統記憶體110包括任何記憶體裝置,諸如隨機存取記憶體(RAM)、非依電性(NV)記憶體或系統100中的裝置可存取的其他記憶體。系統記憶體110經由記憶體介面116耦接至控制器集線器115。記憶體介面之實例包括雙倍資料速率(DDR)記憶體介面、雙通道DDR記憶體介面及動態RAM(DRAM)記憶體介面。
在一實施例中,控制器集線器115可包括根集線器(root hub)、根聯合體(root complex)或根控制器,諸如在PCIe互連階層中。控制器集線器115之實例包括晶片集、記憶體控制器集線器(MCH)、北橋、互連控制器集線器(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裝置、網路介面控制器(NIC)、添加式卡、音訊處理器、網路處理器、硬碟機、儲存裝置、CD/DVD ROM、監測器、印表機、滑鼠、鍵盤、路由器、可攜式儲存裝置、火線(Firewire)裝置、通用串列匯流排(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堆疊、下一代高效能計算互連(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之以信用為基礎的流程控制。在一些實行方案中,可利用分裂交易,亦即,具有藉由時間分開的請求及回應的交易,從而允許鏈路攜載其他訊務,同時目標裝置收集用於回應之資料,以及其他實例。
以信用為基礎的流程控制可用來實現利用互連組構的虛擬通道及網路。在一實例中,裝置可告知交易層205中的接收緩衝器中每一者之信用之最初量。鏈路之相對末端處的外部裝置諸如圖1中的控制器集線器115可計數由每一TLP消耗的信用之數目。若交易不超過信用限制,則可傳輸交易。在接收回應時,復原信用之量。此信用方案之優點之一實例在於,信用返回之潛時不影響效能,前提為未遭遇信用限制,以及其他潛在優點。
在一實施例中,四個交易位址空間可包括組態位址空間、記憶體位址空間、輸入/輸出位址空間及訊息位址空間。記憶體空間交易包括用以將資料傳送至記憶體映射位置/自記憶體映射位置傳送資料的讀取請求及寫入請求中一或多者。在一實施例中,記憶體空間交易能夠使用兩個不同位址格式,例如諸如32位元位址的短位址格式或諸如64位元位址的長位址格式。組態空間交易可用來存取連接至互連體的各種裝置之組態空間。至組態空間的交易可包括讀取請求及寫入請求。訊息空間交易(或,簡單地訊息)亦可經定義來支援互連代理之間的帶內通訊。因此,在一示列性實施例中,交易層205可組合封包標頭/酬載206。
快速參考圖3,例示交易層封包描述符之一示例 性實施例。在一實施例中,交易描述符300可為用於攜載交易資訊的機構。就此而言,交易描述符300支援系統中的交易之識別。其他潛在用途包括追蹤預設交易排序之修改及交易與通道之相聯。例如,交易描述符300可包括總體識別符欄位302、屬性欄位304及通道識別符欄位306。在所例示實例中,描繪總體識別符欄位302,該總體識別符欄位包含局部交易識別符欄位308及來源識別符欄位310。在一實施例中,總體交易識別符302對於所有未處理請求為唯一的。
根據一實行方案,局部交易識別符欄位308為由請求代理產生的欄位,且可對於針對該請求代理需要完成的所有未處理請求為唯一的。此外,在此實例中,來源識別符310唯一地識別互連階層內的請求者代理。因此,與來源ID 310一起,局部交易識別符308欄位提供階層網域內的交易之總體識別。
屬性欄位304指定交易之特性及關係。就此而言,屬性欄位304潛在地用來提供額外資訊,該額外資訊允許交易之預設處置之修改。在一實施例中,屬性欄位304包括優先權欄位312、保留欄位314、排序欄位316及非監聽(no-snoop)欄位318。在此,優先權子欄位312可藉由啟動器修改以將優先權分配給交易。保留屬性欄位314為向左保留給未來或供應商定義的用法。使用優先權或安全屬性的可能用法模型可使用保留屬性欄位加以實行。
在此實例中,排序屬性欄位316用來供應傳達排序之類型的選擇性資訊,該選擇性資訊可修改預設排序規 則。根據一示例性實行方案,「0」之排序屬性表示預設排序規則將應用,其中「1」之排序屬性表示靈活排序(relaxed ordering),其中寫入可在同一方向上傳遞寫入,且讀取完成可在同一方向上傳遞寫入。監聽屬性欄位318經利用來判定交易是否經監聽。如所示,通道ID欄位306識別與交易相關聯的通道。
返回圖2之論述,鏈路層210亦被稱為資料鏈路層210可充當交易層205與實體層220之間的中間級段。在一實施例中,資料鏈路層210之責任為提供用於在鏈路上的兩個組件之間交換交易層封包(TLP)的可靠機制。資料鏈路層210之一側接受由交易層205組合的TLP,施加封包序列識別符211(亦即識別編號或封包編號),計算且施加錯誤偵測碼(亦即CRC 212)且將修改後TLP提交至實體層220以用於跨於實體傳輸至外部裝置。
在一實例中,實體層220包括邏輯子區塊221及電氣子區塊222以實體上傳輸封包至外部裝置。在此,邏輯子區塊221負責實體層221之「數位」功能。就此而言,邏輯子區塊可包括用以準備輸出資訊以用於由實體子區塊222傳輸的傳輸區段,及用以在將所接收資訊傳遞至鏈路層210之前識別且準備所接收資訊的接收器區段。
實體區塊222包括發射器及接收器。發射器由邏輯子區塊221供應符號,發射器將該等符號串聯化且傳輸至外部裝置。接收器供應有來自外部裝置的串聯化符號且將所接收符號變換成位元串流。位元串流經解串聯化 (de-serialized)且供應至邏輯子區塊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可包括不可知的指令集架構(ISA)(亦即HPI能夠實行於多個不同裝置中)。在另一情形下,HPI亦可經利用來連接高效能I/O裝置,而不僅僅是處理器或加速器。例如,高效能PCIe裝置可經由適當轉譯橋接器(亦即HPI對PCIe)耦接至HPI。 此外,HPI鏈路可由許多以HPI為基礎的裝置諸如處理器以各種方式(例如星形、環形、網型等)加以利用。圖5例示多個潛在的多插座組態之示例性實行方案。如所描繪之二插座組態505可包括兩個HPI鏈路;然而,在其他實行方案中,可利用一HPI鏈路。對於較大拓撲,可利用任何組態,只要識別符(ID)係可分配的,且存在某種形式之虛擬路徑以及其他額外或替代特徵即可。如所示,在一實例中,四插座組態510具有自每一處理器至另一處理器的HPI鏈路。但在組態515中所示之八插座實行方案中,並非每一插座經由HPI鏈路彼此直接連接。然而,若虛擬路徑或通道存在於處理器之間,則支援該組態。支援的處理器之範圍包括本機網域中的2-32個。可經由使用多個網域或節點控制器之間的其他互連體以及其他實例來達到較高數目之處理器。
HPI架構包括分層協定架構之定義,該分層協定架構在一些實例中包括協定層(同調、非同調及選擇性地以其他記憶體為基礎的協定)、路由層、鏈路層及實體層。此外,HPI可進一步包括與功率管理器(諸如功率控制單元(PCU))、用於測試及除錯(DFT)之設計、故障處置、暫存器、安全以及其他實例有關的增強。圖5例示示例性HPI分層協定堆疊之一實施例。在一些實行方案中,圖5中所例示之層中一些可為選擇性的。每一層處理其自有的粒度層級或資訊量子(協定層605a、605b處理封包630,鏈路層610a、610b處理flit 635,且實體層605a、605b處理phit 640)。請注意,在一些實施例中,封包可基於實行方案而包括數個部分 flit、單個flit或多個flit。
作為第一實例,phit 640之寬度包括鏈路寬度與位元之1對1映射(例如,20位元的鏈路寬度包括20個位元之一phit,等等)。Flit可具有較大大小,諸如184個位元、192個位元或200個位元。請注意,若phit 640為20個位元寬,且flit 635之大小為184個位元,則花費分數個phit 640來傳輸一flit 635(例如,9.2個phit以20位元傳輸184位元的flit 635,9.6個phit以20位元傳輸192位元的flit,以及其他實例)。請注意,實體層處的基本鏈路之寬度可不同。例如,每方向道之數目可可包括2、4、6、8、10、12、14、16、18、20、22、24等。在一實施例中,鏈路層610a、610b能夠將不同交易之多個段嵌入單個flit中,且一個或多個標頭(例如1、2、3、4)可嵌入該flit內。在一實例中,HPI將標頭分裂成對應槽以致能該flit中去往不同節點的多個訊息。
在一實施例中,實體層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具有兩個主要階段,初始化及操作。在初始化期間,連接對於鏈路層為不透明的,且信號傳輸可涉及定時狀態及交握事件之組合。在操作期間,連接對於鏈路層為透明的,且信號傳輸以一速度進行,其中所有道作為單個鏈路一起操作。在操作階段期間,實體層將flit自代理A傳送至代理B且自代理B傳送至代理A。連接亦被稱為鏈路且自鏈路層抽象化包括媒體、寬度及速度的一些實體態樣,同時與鏈路層交換flits及當前組態之控制/狀態(例如寬度)。初始化階段包括次階段,例如輪詢、組態。操作階段亦包括次階段(例如鏈路功率管理狀態)。
在一實施例中,鏈路層610a、610b可經實行,以便在兩個協定或路由實體物之間提供可靠的資料傳送。鏈路層可自協定層620a、620b抽象化實體層605a、605b,且可負責兩個協定代理(A、B)之間的流程控制,並且將虛擬通道服務提供至協定層(訊息類)及路由層(虛擬網絡)。協定層620a、620b與鏈路層610a、610b之間的介面可通常在封 包層級處。在一實施例中,鏈路層處的最小傳送單位被稱為flit,flit為指定數目的位元,諸如192個位元或一些其他單位。鏈路層610a、610b依賴實體層605a、605b以將實體層605a、605b之傳送單位(phit)定框為鏈路層610a、610b之傳送單位(flit)。另外,鏈路層610a、610b可在邏輯上分裂成兩個部分,亦即,發送器及接收器。一實體物上的發送器/接收線可連接至另一實體物上的接收器/發送器對。通常在flit及封包的基礎上執行流程控制。亦潛在地在flit層級的基礎上執行錯誤偵測及校正。
在一實施例中,路由層615a、615b可提供靈活及分散式方法以將HPI交易自來源路由至目的地。該方案為靈活的,因為用於多個拓撲之路由演算法可經由每一路由器處的可規劃路由表指定(程式規劃在一實施例中由韌體、軟體或兩者之組合執行)。路由功能性可經散佈;路由可經由一系列路由步驟來進行,其中每一路由步驟係經由對來源、中間路由器或目的地路由器處的表之查找來定義。在來源處的查找可用來將HPI封包注射至HPI組構中。中間路由器處之查找可用來將HPI封包自輸入埠路由至輸出埠。目的地埠處之查找可用來將目的地HPI協定代理定為目標。請注意,在一些實行方案中,路由層可為淺薄的,因為路由表及因此路由演算法並未藉由規範具體定義。此允許靈活性及各種用法模型,包括將由系統實行方案定義的靈活平台架構拓撲。路由層615a、615b依賴鏈路層610a、610b以用於提供多達三個(或更多)虛擬網路(VN)--在一實例 中,兩個無死鎖VN(具有在每一虛擬網路中定義的若干訊息類的VN0及VN1)之使用。共用適應性虛擬網路(VNA)可在鏈路層中加以定義,但此適應性網路可並未直接暴露於路由概念中,因為每一訊息類及虛擬網路可具有專用資源及保證轉送進度,以及其他特徵及實例。
在一實施例中,HPI可包括同調協定層620a、620b以支援代理快取來自記憶體的資料之和行。希望快取記憶體資料的代理可使用同調協定來讀取資料之行以載入至該代理之快取記憶體中。希望修改代理之快取記憶體中的資料之行的代理可使用同調協定來在修改資料之前獲取行之所有權。在修改行之後,代理可遵循如下協定要求:將行保持於該代理之快取記憶體中,直至該代理將行寫回至記憶體或回應於外部請求而包括該行。最後,代理可履行外部請求以使該代理之快取記憶體中的行無效。協定藉由規定所有快取代理可遵循的規則來確保資料之同調。協定亦提供用於無快取記憶體的代理同調地讀取及寫入記憶體資料的方式。
可加強兩個條件以支援利用HPI同調協定的交易。第一,協定可作為一實例在每位址的基礎上在代理之快取記憶體中的資料之間且在該等資料與記憶體中的資料之間維持資料一致性。非正式地,資料一致性可指代代理之快取記憶體中的表示資料之最新值的每一有效資料行,且在同調協定封包中傳輸的資料可表示在發送資料時的資料之最新值。當資料之非有效複本存在於快取記憶體中或 傳輸中時,協定可確保資料之最新值駐留於記憶體中。第二,協定可提供用於請求之良好定義的承諾點。用於讀取之承諾點可指示何時資料為可用的;且對於寫入,承諾點可指示何時寫入資料為全域可觀測的,且將藉由後續讀取載入。協定可對於同調記憶體空間中的可快取請求及非可快取(UC)請求兩者支援此等承諾點。
在一些實行方案中,HPI可利用嵌入式時鐘。時鐘信號可經嵌入使用互連體傳輸的資料中。在時鐘信號嵌入資料中的情況下,可省略相異及專用時鐘道。此可為有用的,例如,因為此舉可允許裝置之更多插腳將專用於資料傳送,尤其在用於插腳之空間短缺的系統中。
鏈路可建立於互連體之任一側上的兩個代理之間。發送資料的代理可為局部代理,且接收資料的代理可為遠端代理。狀態機可由兩個代理使用來管理鏈路之各種態樣。在一實施例中,實體層資料路徑可將flit自鏈路層傳輸至電氣前端。在一實行方案中,控制路徑包括狀態機(亦被稱為鏈路訓練狀態機或類似者)。狀態機之動作及自狀態退出可取決於內部信號、計時器、外部信號或其他資訊。事實上,狀態中一些諸如少許初始化狀態可具有計時器以提供用以退出狀態的逾時值。請注意,在一些實施例中,偵測指代偵測道之兩個接腳上的事件;但不必同時偵測。然而,在其他實施例中,偵測指代藉由引用之代理進行的對事件之偵測。作為一實例,解彈跳(Debounce)指代信號之持續判定。在一實施例中,HPI在非功能道之情況下支援操 作。在此,道可在特定狀態處降低。
在狀態機中定義的狀態可包括重設狀態、初始化狀態及操作狀態,以及其他範疇及子範疇。在一實例中,一些初始化狀態可具有二次計時器,該二次計時器用來在逾時時退出狀態(實質上由於未能在狀態中取得進展而異常中止)。異常中止可包括諸如狀態暫存器的暫存器之更新。一些狀態亦可具有一次計時器,該一次計時器用來對狀態中的主要功能計時。其他狀態可經定義,使得內部信號或外部信號(諸如交握協定)驅動自該狀態至之另一狀態的變遷,以及其他實例。
狀態機亦可經由單個步驟(初始化異常中止時凍結)及測試器之使用來支援除錯。在此,可推遲/保持狀態退出,直至除錯軟體就緒為止。在一些情況下,可推遲/保持退出,直至二次逾時為止。在一實施例中,動作及退出可基於訓練序列之交換。在一實施例中,鏈路狀態機將在局部代理時鐘網域中運行,且自一狀態至下一狀態的變遷將與發射器訓練序列邊界一致。狀態暫存器可經利用來反映當前狀態。
圖7例示在HPI之一示例性實行方案中由代理使用的狀態機之至少一部分的表示。應暸解,包括於圖7之狀態表中的狀態包括可能的狀態之非詳盡列表。例如,省略一些變遷以簡化圖解。另外,一些狀態可經組合、分裂或省略,同時可增添其他狀態。此類狀態可包括:
事件重設狀態:在熱重設事件或冷重設事件時進 入。復原預設值。初始化計數器(例如,同步計數器)。可退出至另一狀態,諸如另一重設狀態。
定時重設狀態:用於帶內重設之定時狀態。可驅動預定義電氣有序集(EOS),因此遠端接收器能夠偵測EOS且亦進入定時重設。接收器具有保持電氣設定的道。可退出至代理以校準重設狀態。
校準重設狀態:在道上無信號傳輸的情況下的校準(例如接收器校準狀態)或關閉驅動器。可為基於計時器的狀態中之預定時間量。可設定操作速度。當埠未啟用時,可充當等待狀態。可包括最小常駐時間。接收器調節或交錯斷開可基於設計發生。在逾時及/或校準完成之後中退出至接收器偵測狀態。
接收器偵測狀態:偵測道上的接收器之存在。可尋找接收器終止(例如,接收器下拉插入)。在指定值經設定時或當另一指定值未經設定時可退出至校準重設狀態。若接收器經偵測或達到逾時,則可退出至發射器校準狀態。
發射器校準狀態:用於發射器校準。可為針對發射器校準分配的定時狀態。可包括道上的信號傳輸。可以連續驅動EOS,諸如電閒置退出有序集(或EIEIOS)。當進行校準時或在計時器期滿時可退出至順應狀態。若計數器已過期或二次逾時已發生,則可退出至發射器偵測狀態。
發射器偵測狀態:限定有效信號傳輸。可為交握狀態,其中代理完成動作且基於遠端代理信號傳輸退出至下一狀態。接收器可限定來自發射器的有效信號傳輸地。 在一實施例中,接收器尋找喚醒偵測,且若在一或多個道上經解彈跳則在其他道上尋找該喚醒偵測。發射器驅動偵測信號。回應於解彈跳對於所有道完成及/或逾時或若所有道上的解彈跳未完成且存在逾時,可退出至輪詢狀態。在此,一或多個監測器道可保持喚醒以解彈跳喚醒信號。且若經解彈跳,則其他道潛在地經解彈跳。此可允許低功率狀態中的功率節約。
輪詢狀態:接收器調適、鎖住位元(例如,藉由初始化漂移緩衝器)、鎖住位元組(例如,藉由識別符號邊界)且鎖住訓練序列邊界(例如,藉由鎖定至電氣有序集(EOS)及/或訓練序列標頭)。通道隨後可經去偏斜(deskewed)。交握亦可經完成以退出輪詢至若干可能的狀態中一者。例如,可引起(藉由代理)退出至鏈路寬度狀態、順應狀態、迴路返回標誌狀態或重設狀態中任一者。交握可包括各種定義的接收器動作或條件之完成及應答訊息(ACK)之發送,以觸發退出至對應於完成的動作集合及ACK的狀態。對於輪詢去偏斜,遠端發射器處的道至道偏斜可對於最高速度以第一長度且對於低速度以第二長度覆蓋。可在緩慢模式以及操作模式中執行去偏斜。接收器可具有特定最大值以去偏斜道至道偏斜,諸如8個、16個或32個間隔的偏斜。在一些實行方案中,接收器動作亦可包括潛時固定。在一實施例中,接收器動作可在有效道映射之成功去偏斜時完成。在一實例中,當若干連序訓練序列標頭與應答一起經接收且具有應答的若干訓練序列在接收器已完成該接收器之動 作之後經傳輸時,可達成成功的交握。
順應狀態:自輪詢狀態進入。可使代理為順應主機或從屬裝置以用於驗證目的。裝置(充當主機)可將順應型樣發送至另一裝置(從屬裝置),且從屬裝置可在將該順應型樣重新定時至該從屬裝置之本地時鐘之後迴路返回該型樣(例如,無任何極性反轉或道倒轉之取消)。當迴路返回並非功能性的或非所要的時,順應型樣可用來表徵道之某一子集上的類比前端之。例如,可針對成功的位元組鎖定、TS鎖定、去偏斜、潛時測試及依賴於數位邏輯之若干片段之適當發揮功能的其他測試預調節進入迴路返回。在實現位元鎖定的情況下,可進入順應,且順應可經利用於抖動或雜訊調查、除錯、探測鏈路,以及其他調節。換言之,在輪詢之結果不允許直接進入迴路返回中的情況下,順應可充當輪詢之替代性退出。順應狀態可以來自主機的發射器驅動超級序列。接收器尋找監測器道上的喚醒,解彈跳喚醒,遺漏壞道,調適且位元鎖定等。從屬發射器可驅動順應型樣,直至其接收器動作完成為止。隨後迴路返回經重新定時且非去偏斜。從屬接收器進行類似監測及解彈跳等動作。退出可至重設狀態,諸如定時重設,或至迴路返回型樣狀態以啟動測試,以及其他實例。在退出至迴路返回型樣狀態之狀況下,主機可經發送(例如,藉由軟體控制器)至迴路返回型樣狀態以嘗試更專門化的型樣。
代理迴路返回標誌狀態:迴路返回標誌為代理狀態但同於其他代理狀態主機及從屬動作且退出可為不同 的。迴路返回從屬裝置可取消任何極性反轉及/或道倒轉,但可能不可解拌或重新拌碼迴路返回的位元。應答交換可不適用於從屬裝置,因為從屬裝置正迴路返回。因為從屬裝置在於符號邊界上迴路返回之前可去偏斜,所以可未迫使主機重新位元組鎖定或重新去偏斜,但主機可重新鎖定訓練序列以避免鎖定至一些別名。用以進行此舉的手段可包括LFSR之重新播種、比較TS及/或EIEOS或此等手段之一些組合。SDS之結束標誌迴路返回設置之結束及型樣產生之開始,從而進行檢查及計數。
代理迴路返回型樣狀態(或阻擋鏈路狀態):自迴路返回標誌狀態或順應狀態進入。在迴路返回型樣狀態中,代替控制型樣,主機發射器可發送額外專門化的型樣以補充順應狀態或迴路返回型樣狀態中的該等迴路返回。接收器可在迴路返回型樣中接收專門化的型樣,且檢查所接收型樣中的錯誤。對於發射器調適,兩個代理可為主機。對於預定週期,發射器可發送型樣,且遠端接收器可比較此型樣且決定用於所接收型樣之優值或度量值,該所接收型樣記錄於諸如暫存器的儲存元件中。比較方法及度量可為依賴設計的(例如,具有抖動注射的BER)。在週期結束處,兩個代理可退出至用於背後通道之重設以檢驗度量且設置發射器調適之下一迭代。
鏈路寬度狀態:代理以最終道映射通訊至遠端接收器。接收器接收資訊且解碼。接收器可在第二結構中的先前道映射值之檢查點之後將組配道映射記錄於結構中。 接收器亦可以應答(「ACK」)回應。可引發帶內重設。作為一實例,第一狀態用以引發帶內重設。在一實施例中,回應於ACK而執行退出至下一狀態,諸如flit組態狀態。此外,在進入低功率狀態之前,若喚醒偵測信號發生頻率降低至指定值(例如,每一數目之單位間隔(UI)1個,諸如4K UI)以下,則亦可產生重設信號。接收器可保持當前及先前道映射。發射器可基於具有不同值的訓練序列來使用不同道群組。在一些實施例中,道映射可不修改一些狀態暫存器。
Flitlock組態狀態:當發射器及接收器兩者已退出至阻擋鏈路狀態或其他鏈路狀態時藉由發射器進入的狀態但該狀態經視為退出(亦即無實際意義的二次逾時)。在一實施例中,發射器退出至鏈路狀態包括在接收行星(planetary)對準信號之後的資料序列之開始(SDS)及訓練序列(TS)邊界。在此,接收器退出可基於自遠端發射器接收SDS。此狀態可為自代理至鏈路狀態的橋接器。接收器識別SDS。若SDS在解擾器經初始化之後接收,則接收器可退出至阻擋鏈路狀態(BLS)(或控制視窗)。若逾時發生,則退出可至重設狀態。發射器以組態信號驅動道。發射器退出可基於條件或逾時而至重設狀態、BLS狀態或其他狀態。
傳輸鏈路狀態:鏈路狀態。Flit經發送至遠端代理。可自阻擋鏈路狀態進入且在諸如逾時的事件時返回至阻擋鏈路狀態。發射器傳輸flits。接收器接收flits。亦可退出至低功率鏈路狀態。在一些實行方案中,傳輸鏈路狀態 (TLS)可被稱為L0狀態。
阻擋鏈路狀態:鏈路狀態。發射器及接收器以統一方式操作。可為定時狀態,在該定時狀態期間拖延鏈路層flit,而將實體層資訊通訊至遠端代理。可退出至低功率鏈路狀態(或基於設計的其他鏈路狀態)。在一實施例中,阻擋鏈路狀態(BLS)週期性地發生。週期被稱為BLS間隔且可經定時,並且在低速與操作速度之間可不同。請注意,可週期性地阻擋鏈路層發送flit,使得可發送一長度之實體層控制序列,諸如在傳輸鏈路狀態或部分寬度傳輸鏈路狀態期間。在一些實行方案中,阻擋鏈路狀態(BLS)可被稱為L0控制狀態或L0c狀態。
部分寬度傳輸鏈路狀態:鏈路狀態。可藉由進入部分寬度狀態來節約功率。在一實施例中,非對稱部分寬度指代在一些設計中可支援的具不有同寬度的雙向鏈路之每一方向。在圖9之實例中展示發送部分寬度指示以進入部分寬度傳輸鏈路狀態的諸如發射器之啟動器之實例。在此,當在具有第一寬度的鏈路上傳輸以使鏈路變遷以便以第二新的寬度傳輸時發送部分寬度指示。失配可導致重設。請注意,速度可未經改變,但寬度可改變。因此,潛在地以不同寬度發送flit。邏輯上可類似於傳輸鏈路狀態;但是,因為存在較小寬度,所以可花費較長時間來傳輸flit。可退出至其他鏈路狀態,諸如基於某些所接收及發送訊息退出至低功率鏈路狀態,或基於其他事件退出部分寬度傳輸鏈路狀態或鏈路阻擋狀態。在一實施例中,發射器埠可 以交錯方式關閉閒置道,以提供較佳信號完整性(亦即雜訊緩和),如定時圖表中所示。在此,可在鏈路寬度正在變化的週期期間利用非可重試flit,諸如零(Null)flit。對應接收器可遺漏此等零flit且以交錯方式關閉閒置道,並且將當前道及先前道映射記錄於一或多個結構中。請注意,狀態及相關聯狀態暫存器可保持不變。在一些實行方案中,部分寬度傳輸鏈路狀態可被稱為部分L0狀態或L0p狀態。
退出部分寬度傳輸鏈路狀態:退出部分寬度狀態。在一些實行方案中可使用或可不使用阻擋鏈路狀態。在一實施例中,發射器藉由在閒置道上發送部分寬度退出型樣以訓練且去偏斜該等部分寬度退出型樣來引發退出。作為一實例,退出型樣自EIEOS開始,該EIEOS經偵測且經解彈跳以信號傳輸道準備好開始進入全傳輸鏈路狀態,且該退出型樣可以閒置道上的SDS或快速訓練序列(FTS)結束。退出序列期間的任何故障(接收器動作諸如去偏斜在逾時之前未完成)停止至鏈路層的flit傳送,且判定重設,該重設藉由在下一阻擋鏈路狀態發生時重設鏈路來處置。SDS亦可將道上的拌碼器/解擾器初始化為適當值。
低功率鏈路狀態:為低功率狀態。在一實施例中,該狀態為相較於部分寬度鏈路狀態的較低功率,因為在此實施例中信號傳輸在所有道上且在兩個方向上停止。發射器可使用阻擋鏈路狀態來請求低功率鏈路狀態。在此,接收器可解碼請求且以ACK或NAK回應;否則重設可經觸發。在一些實行方案中,低功率鏈路狀態可被稱為L1 狀態。
在一些實行方案中,例如,當狀態之狀態動作諸如某些校準及組態已完成時,可促進狀態變遷以允許繞過狀態。鏈路之先前狀態結果及組態可經儲存且在鏈路之後續初始化及組態中重新使用。可繞過對應狀態,而非重複此類組態及狀態動作。然而,實行狀態繞過的傳統系統通常實行複雜的設計及昂貴的驗證逸出。在一實例中,HPI可在某些狀態中利用短計時器,諸如其中不需要重複狀態動作,而非使用傳統繞過。此舉可能允許更一致及同步化的狀態機變遷以及其他可能優點。
在一實例中,以軟體為基礎的控制器(例如,經由用於實體層之外部控制點)可致能用於一或多個特定狀態之短計時器。例如,對於已執行且儲存了動作的狀態,狀態可經短定時,以促進自該狀態快速退出至下一狀態。然而,若先前狀態動作失敗或未能在短計時器持續時間內加以應用,則可執行狀態退出。此外,例如,當應重新執行狀態動作時,控制器可去能短計時器。可針對每一個別狀態設定長的或預設計時器。若狀態處的組態動作無法在長計時器內完成,則狀態退出可發生。長計時器可經設定為合理持續時間以便允許狀態動作之完成。相反,短計時器可為顯著較短的,從而在一些狀況下使得在不參考回先前執行之狀態動作的情況下不可能執行狀態動作,以及其他實例。
在一些情況下,在鏈路之初始化(或重新初始化) 期間,當代理經由朝向操作鏈路狀態前進時,引起狀態重設(例如,重設為重設狀態或其他狀態)的一或多個故障或狀態退出可發生。實際上,鏈路之初始化可迴路穿過一或多個狀態,而不完成初始化且進入鏈路狀態。在一實例中,可針對鏈路初始化內的狀態變遷中之不生產迴路之數目維持計數。例如,每當初始化返回至重設狀態而未到達鏈路狀態時,可使計數器增值。一旦鏈路成功地進入鏈路狀態,計數器可對於鏈路經重設。此類計數器可藉由鏈路兩側上的代理維持。此外,臨限值可例如藉由以軟體為基礎的控制器利用一或多個外部控制點來設定。當不生產迴路之計數滿足(或超過)定義的臨限值時,鏈路初始化可暫停(例如,在重設狀態處或之前經設定且保持)。在一些實行方案中,為重新開始初始化且自暫停狀態釋放初始化,以軟體為基礎的控制器可觸發鏈路之重新開始或重新初始化。在一些情況下,以軟體為基礎的工具可分析暫停的初始化之性質且執行診斷,設定暫存器值且執行其他操作以便防止初始化之進一步迴路。實際上,在一些實行方案中,控制器可關於重新開始暫停的鏈路初始化設定較高計數器臨限值或甚至超越計數器,以及其他實例。
在HPI之一些實行方案中,可定義超級序列,每一超級序列對應於個別狀態或進入/退出至個別狀態/自個別狀態退出。超級序列可包括資料集合及符號之中繼序列。在一些情況下,序列可中繼,直至狀態或狀態變遷或對應事件通訊完成為止,以及其他實例。在一些情況下, 超級序列之中繼序列可根據定義的頻率(諸如定義數目個單位間隔(UI))中繼。單位間隔(UI)可對應於用於在鏈路或系統道上傳輸單個位元的時間間隔。在一些實行方案中,中繼序列可始於電氣有序集(EOS)。因此,EOS之實例可預計根據預定義頻率中繼。此類有序集可實行為可以十六進位格式表示的定義的16位元組碼,以及其他實例。在一實例中,超級序列之EOS可為EIEIOS。在一實例中,EIEOS可類似低頻率時鐘信號(例如,預定義數目的中繼FF00或FFF000十六進符號等)。預定義資料集可在EOS之後,諸如預定義數目的訓練序列或其他資料。此類超級序列可利用於狀態變遷中,該等狀態變遷包括鏈路狀態變遷以及初始化,以及其他實例。
在互連體之一些實行方案中,諸如在QPI中,可使串列資料鏈路之端接接通且斷開,諸如當鏈路經重設或初始化時。此方法可將複雜性及時間引入至鏈路之初始化中。在HPI之一些實行方案中,包括在鏈路之重設或重新初始化期間可維持鏈路之端接。此外,HPI可容許裝置之熱插頭。當經由熱插入或以其他方式引入另一裝置時,增添新遠端代理的道之電壓特性將改變。局部代理可感測道電壓之此等變化,以偵測遠端代理之存在且提示鏈路之初始化。狀態機狀態及計時器可在狀態機中加以定義,以在無端接的情況下協調鏈路之偵測、組態及初始化。
在一實行方案中,HPI可經由藉由用於輸入信號傳輸的接收代理進行的道篩選在不改變端接值的情況下支 援關於帶內重設的重新初始化。信號傳輸可用來識別良好道。作為一實例,可針對預定義信號之集合中任一者篩選道,該等預定義信號將由發射器裝置發送來促進鏈路之發現及組態。在一實例中,可定義對應於一或多個初始化或重新初始化任務的超級序列。預定義序列可包括後面為額外序列資料的電氣閒置退出有序集(EIEOS)。在一些情況下,當道之任一側上的每一裝置變得活動時,裝置可開始發送對應於特定初始化狀態等的超級序列。在一實施例中,可支援兩個類型的插腳重設;電力開啟(或「冷」)重設及熱重設。由軟體引發或在一代理上起源(在實體層或另一層中)的重設可經帶內通訊至其他代理。然而,由於嵌入式時鐘之使用,帶內重設可藉由至另一代理的通訊來處置,該另一代理使用有序集,諸如特定電氣有序集或EIOS。
有序集可在初始化期間經發送,且PHY控制序列(或「阻擋鏈路狀態」)可在初始化之後經發送。阻擋鏈路狀態可阻止鏈路層發送flit。作為另一實例,鏈路層訊務可經阻止,以發送可在接收器處廢除的少許零flit。
如以上所介紹,在一實施例中,可最初以慢速度進行初始化,接著以快速度初始化。以慢速度的初始化將預設值使用於暫存器及計時器。軟體隨後使用慢速度鏈路來設置暫存器、計時器及電氣參數,且清除校準號誌以為快速度初始化做準備。作為一實例,初始化可由諸如重設、偵測、輪詢、順應及組態以及可能其他狀態或任務的狀態或任務組成。
在一實例中,鏈路層阻擋控制序列(亦即阻擋鏈路狀態(BLS)或L0c狀態)可包括定時狀態,在該定時狀態期間鏈路層flit經拖延,而PHY資訊經通訊至遠端代理。在此,發射器及接收器可開始塊控制序列計時器。且在計時器過期時,發射器及接收器可退出阻擋狀態,且可採取其他動作,諸如退出至重設、退出至不同鏈路狀態(或其他狀態),包括允許跨鏈路的flit之發送的狀態。
在一實施例中,鏈路訓練可經提供且包括諸如關於定義的超級序列的攪拌訓練序列、有序集及控制序列中一或多者之發送。訓練序列符號可包括以下各者中一或多者:標頭、保留部分、目標潛時、對數、實體道映射碼引用道或一組道及初始化狀態。在一實施例中,標頭可與ACK或NAK一起發送,以及其他實例。作為一實例,訓練序列可經發送以作為超級序列之部分且可經攪拌。
在一實施例中,有序集及控制序列未經攪拌或交錯且在所有道上同樣地、同時地且完全地傳輸。有序集之有效接收可包括有序集之至少一部分(或用於部分有序集之整個有序集)之檢查。有序集可包括電氣有序集(EOS),諸如電氣閒置有序集(EIOS)或EIEOS。超級序列可包括資料序列之開始(SDS)或快速訓練序列(FTS)。此類集合及控制超級序列可經預定義且可具有任何型樣或十六進表示法以及任何長度。例如,有序集及超級序列可為8位元組、16位元組或32位元組等之長度。作為一實例,FTS可另外在部分寬度傳輸鏈路狀態之退出期間經利用於快速位元鎖定。請 注意,FTS定義可為每道的,且可利用FTS之旋轉版本。
在一實施例中,超級序列可包括諸如EIEOS的EOS在訓練序列串流中之插入。當信號傳輸開始時,在一實行方案中,道以交錯方式電力開啟。然而,此可導致初始超級序列在一些道上於接收器處看來經截斷。然而,超級序列可在短間隔(例如,近似1000個單位間隔(或~1KUI))內經中繼。訓練超級序列可另外用於去偏斜、組態中一或多者,且用於通訊初始化目標、道映射等。EIEOS可用於以下各者中一或多者:使道自不活動狀態變遷至活動狀態、篩選良好道、識別符號及TS邊界,以及其他實例。
在一實施例中,時鐘可經嵌入資料中,因此不存在單獨的時鐘道。經由道發送的flit可經攪拌以促進時鐘恢復。作為一實例,接收器時鐘恢復單元可將抽樣時鐘遞送至接收器(亦即,接收器自該資料恢復時鐘且使用該時鐘來對輸入資料抽樣)。在一些實行方案中,接收器連續地適於輸入位元串流。藉由嵌入時鐘,可潛在地減少插腳輸出。然而,將時鐘嵌入帶內資料中可改變藉以處理帶內重設的方式。在一實施例中,可在初始化之後利用阻擋鏈路狀態(BLS)。另外,可在初始化期間利用電氣有序集超級序列來促進重設(例如,如以上所述),以及其他考慮因素。嵌入式時鐘可為鏈路上的裝置之間共用的,且共用的操作時鐘可在鏈路校準及組態期間經設定。例如,HPI鏈路可參考具有漂移緩衝器的共用時鐘。此實行方案可實現相較於在非共用參考時鐘中所使用的彈性緩衝器的較低潛時,以及其他 可能的優點。此外,可使參考時鐘分佈段匹配至指定的限制內。
在一些實行方案中,HPI可支援在一些狀況下具有並非標稱道寬度之倍數之寬度的flit(例如使用192位元之flit寬度及20個道作為純粹例示性實例)。實際上,在容許部分寬度傳輸狀態的實行方案中,藉以傳輸flit的道之數目甚至在鏈路之壽命期間可波動。例如,在一些情況下,flit寬度可為在一瞬間活動道之數目之倍數,但並非在另一瞬間(例如,當鏈路改變狀態及道寬度時)活動道之數目之倍數。在道之數目並非當前道寬度之倍數的情況下(例如,20個道上的192位元之flit寬度之實例),在一些實施例中,連序flit可經組配來經傳輸以在道上重疊以藉此保存頻寬(例如,傳輸在20個道上重疊的五個連序192位元flit)。
圖8例示在若干道上重疊的連序flit之傳輸之表示。例如,圖8展示經由20道鏈路(藉由行0-19表示的道)發送的五個重疊的192位元flit之表示。圖8之每一格表示包括在經由4UI跨距發送的flit中的個別「尼(nibble)」或一組四個位元(例如,位元4n+3:4n)。例如,192位元的flit可分成48個四位元尼。在一實例中,尼0包括位元0-3,尼1包括位元4-7等。尼中之位元可經發送以便重疊或交錯(例如,「拌和」),使得flit之較高優先權欄位較早地出現,保留錯誤偵測性質(例如,CRC),以及其他考慮因素。實際上,拌和方案亦可提供一些尼(及該等尼之個別位元)經亂序發送(例如,如在圖8及圖9之實例中)。在一些實行方案中,拌和方 案可取決於鏈路層之架構及在鏈路層中所使用的flit之格式。
具有並非活動道之倍數的長度的flit之位元(或尼)可諸如根據圖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。在UI 8-11中,剩下第一flit之僅八個尼。第一flit之此等最終尼(亦即,10、15、20、25、30、40、45)可與第二flit之第一尼(亦即,尼2、4、7、9、12、16、20、25、30、35、40、45)並行地發送,使得第一flit及第二flit重疊且經拌和。使用此技術,在本實例中,可在48UI中發送五個完整flit,其中每一flit在分數的9.6 UI週期內發送。
在一些情況下,拌和可導致週期性的「清潔」flit邊界。例如,在圖8之實例中,起始5 flit邊界(第一flit之最高行)亦可被稱為清潔flit邊界,因為所道正在傳輸來自相同flit的起始尼。代理鏈路層邏輯可經組配來識別道之拌和且可自拌和位元重建flit。另外,實體層邏輯可包括用於基於此刻正使用的道之數目來識別何時及如何拌和flit資料串流的功能性。實際上,在自一鏈路寬度狀態至另一鏈路寬度狀態之變遷中,代理可組配該等代理自身以識別將如何使用資料串流之拌和。
如以上所述,鏈路可在道寬度之間變遷,在一些情況下以原始寬度或全寬度操作,且稍後變遷至利用較少 道的部分寬度(及自該部分寬度變遷)。在一些情況下,flit之定義的寬度可為可由道之數目整除。例如,圖9之實例例示此實例,其中先前實例之192位元flit經由8道鏈路傳輸。如圖9中所表示,192位元flit之4位元尼可均勻散佈且經由8個道傳輸(亦即,因為192為8之倍數)。實際上,當以8道部分寬度操作時,單個flit可經由24 UI發送。此外,在圖9之實例中,每一flit邊界可為清潔的。雖然清潔flit邊界可簡化狀態變遷,但允許拌和及偶然鋸齒狀flit邊界的決定性及其他特徵可允許鏈路上的耗損頻寬之最小化。
另外,雖然圖9之實例將道0-7展示為在部分寬度狀態中保持活動的道,但可潛在地使用8個道之任何集合。亦請注意,以上實例僅用於例示之目的。flit可潛在地經定義為具有任何寬度。鏈路亦可潛在地具有任何鏈路寬度。此外,可根據flit之格式及欄位、系統中之較佳道寬度以及其他考慮因素及實例靈活地構造系統之拌和方案。
HPI PHY邏輯層之操作可與下層傳輸媒體無關,前提為潛時不導致鏈路層處的潛時固定錯誤或逾時,以及其他考慮因素。
鏈路層
鏈路層可自協定層抽象化實體層,處置兩個協定代理之間的流程控制,且將虛擬通道服務提供至協定層(訊息類)及路由層(虛擬網路)。在一些實行方案中,鏈路層可處理固定資訊量子,稱為flit。在一實例中,flit可經定義成長度為192個位元。然而,可在不同變化中利用任何範圍之 位元,諸如81-256個(或更多)。諸如192個位元的大flit大小可包括格式、循環冗餘核對(CRC)、錯誤校正碼(ECC)及其他特徵。例如,較大flit長度亦可容許CRC欄位經擴展(例如,擴展至16個位元)以處置較大flit酬載。用以傳送單個flit的phit或單位間隔(UI)(例如,用來傳送單個位元或phit等的時間)之數目可隨鏈路寬度而變化。例如,20道或位元的鏈路寬度可在9.6 UI中傳送單個192位元flit,而8道的鏈路寬度在24 UI中傳送相同flit,以及其他可能實例。鏈路層信用及協定分封化亦可基於flit。
圖10例示用於8道鏈路寬度之一般化flit之表示1000。表示1000之每一行可象徵鏈路道,且每一列象徵個別UI。在一些實行方案中,單個flit可再分成二或更多個槽。相異訊息或鏈路層標頭可包括於每一槽中,從而允許多個相異及在一些狀況下獨立的訊息,該等訊息對應於將要在單個flit中發送的可能不同的交易。此外,包括於單個flit之槽中的多個訊息亦可去往不同目的地節點,以及其他實例。例如,圖10之實例例示具有三個槽的flit格式。陰影部分可表示包括於個別槽中的flit之部分。
在圖10之實例中,提供三個槽,槽0、槽1及槽2。可為槽0提供flit空間之72個位元,其中22個位元專用於訊息標頭欄位且50個位元專用於訊息酬載空間。槽1可具備flit空間之70位元,其中20個位元專用於訊息標頭欄位,且50個位元專用於訊息酬載空間。訊息標頭欄位空間中之差異可經最佳化以提供某些消息類型將經指定以用於包含於槽 0中(例如,其中利用更多訊息標頭編碼)。可提供第三槽,槽2,該第三槽佔據相較於槽0及槽1的大體上較少空間,在此狀況下利用flit空間之18個位元。槽2可經最佳化以處置不利用較大訊息酬載的該等訊息,諸如應答、信用返回等。另外,可提供浮動酬載欄位,該浮動酬載欄位允許額外11個位元將替代地經應用來補充槽0或槽1之酬載欄位。
繼續圖10之特定實例,其他欄位可為flit全域的(亦即,跨於flit應用且不並非特定槽全域的)。例如,可提供標頭位元以及4位元flit控制欄位,該4位元flit控制欄位可用來指定此資訊作為flit之虛擬網路,識別將如何編碼flit,以及其他實例。另外,可諸如經由16位的了循環CRC欄位提供錯誤控制功能性,以及其他可能的實例。
可定義flit格式,以便最佳化鏈路層上的訊息之通量。一些傳統協定已利用無槽式較小flit。例如,在QPI中,利用80位元flit。雖然較大flit(例如,192位元flit)之flit通量可較低,但可藉由最佳化flit資料之使用來增加訊息或封包通量。例如,在QPI之一些實行方案中,利用整個80位元flit空間,而不考慮訊息大小或類型。藉由將較大flit再分成預定長度及欄位之槽,可最佳化192 flit長度,從而甚至在可利用的槽中一或多者有時未使用時的情況下實現較高效率。實際上,鏈路層訊務可被視為包括許多不同類型之訊息及訊務,包括具有不同標頭長度及欄位的訊息及封包。可定義在flit中定義的槽之個別長度及組織,以便符合各種訊息之統計或預期頻率及此等訊息之需求。例如, 可針對每一小槽定義兩個較大槽,以適應使用此等較大訊息類型及標頭長度的訊息傳遞之預期統計頻率,以及其他實例。此外,亦可提供靈活性以進一步諸如經由浮動酬載欄位來適應不同訊務,如在圖10之實例中。在一些情況下,flit格式可為固定的,包括專用於flit中之特定槽的位元。
在圖10之實例中,可通常為flit提供「Hdr」欄位,且該欄位表示用於flit之標頭指示。在一些情況下,Hdr欄位可指示flit為標頭flit或資料flit。在資料flit中,flit仍可保持為有槽式的,但省略某些欄位之使用或以酬載資料替換某些欄位之使用。在一些狀況下,資料欄位可包括運算碼及酬載資料。在標頭flit之狀況下,可提供各種標頭欄位。在圖10之實例中,可為每一槽提供「Oc」欄位,Oc欄位表示運算碼。類似地,一或多個槽可具有對應「msg」欄位,該欄位表示將包括於槽中的對應封包之訊息類型,前提為槽經設計來處置此類封包類型等。「DNID」欄位可表示目的地節點ID,「TID」欄位可表示交易或追蹤器ID,「RHTID」欄位可表示請求者節點ID或本地追蹤器ID,以及其他可能的欄位。此外,一或多個槽可具備酬載欄位。另外,CRC欄位可包括於flit內,以為flit提供CRC值,以及其他實例。
在一些實行方案中,鏈路寬度可在鏈路壽命期間變化。例如,實體層可在鏈路寬度狀態之間變遷,諸如變遷至全道寬度或原始道寬度及不同的或部分道寬度,或自全道寬度或原始道寬度及不同的或部分道寬度變遷。例如,在一些實行方案中,鏈路可經初始化以經由20個道傳 送資料。稍後,鏈路可變遷至部分寬度傳輸狀態,其中活動地使用僅8個道,以及許多其他可能的實例。可例如關於由一或多個功率控制單元(PCU)支配的功率管理任務利用此類道寬度變遷,以及其他實例。
如以上所述,鏈路寬度可影響flit能量速率。圖11為示例性192位元flit之表示,該192位元flit係經由8道鏈路發送,導致以24UI的flit通量。此外,如圖11之實例中所示,flit之位元在一些情況下可經亂序發送,例如,以在傳送早期發送更多時間敏感的欄位(例如,flit類型欄位(例如,資料或標頭flit)、運算碼等),保存或促進體現於flit中的特定錯誤偵測或其他功能性,以及其他實例。例如,在圖11之實例中,在傳送之第一UI(亦即,UI0)期間在道L7至L0上平行地發送位元191、167、143、119、95、71、47及23,而在flit傳送之第24(或最後)UI(亦即,UI23)期間發送位元168、144、120、96、72、48、24及0。應暸解,在其他實行方案及實例中可利用其他排序方案、flit長度、道寬度等。
在一些情況下,flit之長度可為活動道之數目之倍數。在此類情況下,flit可均勻地在所有活動道上傳輸,且flit之傳送可大體上同時在清潔(亦即,不重疊的)邊界處結束。例如,如圖8之表示中所示,flit之位元可被視為以4個位元或「尼」之連序群組傳輸。在此實例中,192位元flit將經由8道鏈路傳送。因為192為8之倍數,所以整個flit可在24 UI中經由8道鏈路清潔地傳送。在其他情況下,flit寬度 可並非活動道之數目之倍數。例如,圖9展示經由20個道傳送的示例性192位元之另一表示。因為192不可被20整除,所以全部flit之傳送將需要非整數數目個間隔(例如,9.6 UI)。在此類狀況下,可以先前flit之最後位元傳送第二重疊flit,而非耗損在傳送之第10 UI期間未利用的「額外」道。在一些實行方案中,flit之此重疊或拌和可導致鋸齒狀flit邊界及亂序發送的flit位元。利用於傳送的型樣可經組配來允許flit之更多時間敏感的欄位在flit中較早地經傳送、錯誤偵測及校正之保留,以及其他考慮因素。可在實體層及鏈路層中一者或兩者中提供邏輯,以根據此類型樣傳送flit位元且基於當前鏈路寬度在型樣之間動態地改變。此外,邏輯可經提供來重新排序且重新構造來自此類拌和或排序的位元串流之flit,以及其他實例。
在一些實行方案中,flit可經表徵為標頭flit(例如,承載封包標頭資料)或資料flit(例如,承載封包酬載資料)。返回圖10,可定義flit格式,該flit格式包括三個(3)相異槽(例如,0、1及2),從而允許多達三個標頭將在單個flit中經傳送(例如,每一槽中一標頭)。在圖10之實例中,提供三個槽,槽0、槽1及槽2。可為槽0提供flit空間之72個位元,其中22個位元專用於訊息標頭欄位且50個位元專用於訊息酬載空間。槽1可具備flit空間之70位元,其中20個位元專用於訊息標頭欄位,且50個位元專用於訊息酬載空間。訊息標頭欄位空間中之差異可經最佳化以提供某些消息類型將經指定以用於包含於槽0中(例如,其中利用更多訊息標頭 編碼)。可提供第三槽,槽2,該第三槽佔據相較於槽0及槽1的大體上較少空間,在此狀況下利用flit空間之18個位元。槽2可經最佳化以處置不利用較大訊息酬載的該等訊息,諸如應答、信用返回等。另外,可提供浮動酬載欄位,該浮動酬載欄位允許額外11個位元將替代地經應用來補充槽0或槽1之酬載欄位。
在一些實行方案中,藉由允許欄位在兩個槽之間浮動,可根據某些訊息所需提供額外位元,同時仍保持在預定義的flit長度(例如,192個位元)內且最大化頻寬之利用。轉向圖19之實例,在8道資料鏈路上展示示例性192位元flit之兩個實例1905、1910。在一實例中,flit(例如,1905)可包括三個槽,槽0、槽1及槽2。槽0及槽1中每一者可包括50位元酬載欄位。可提供浮動欄位以替代地藉由浮動欄位之欄位長度(例如,11個位元)來延伸槽0或槽1之酬載欄位。浮動欄位之使用可進一步延伸經由定義的多槽flit格式提供的效率增益。flit內的槽之定大小及可置於每一槽中的訊息之類型可甚至在降低的flit速率的情況下潛在地提供增加的頻寬。
在圖10之特定實例中,可最佳化可使用槽1及槽2的訊息,從而減少位元之數目以留出來編碼此等槽之運算碼。當具有槽0可提供的更多位元的標頭進入鏈路層時,可提供開槽演算法以允許該標頭接管用於額外空間之槽1酬載位元。亦可提供特殊控制(例如LLCTRL)flit,該等flit消耗值用於該等flit之需求之位元的所有三個槽。開槽演算法 可亦存在以允許單獨槽將被利用,同時對於鏈路為部分忙碌之狀況,其他槽不攜載資訊,在一實施例中,鏈路層可另外定義特殊控制flit,該等特殊控制flit可例如用於除錯訊息及其他用途。在一實例中,當賦能除錯控制欄位經設定時,LLCTRL-DEBUG flit可藉由鏈路層發送。當此位元未經設定時,LLCTRL-DEBUG flit可並不在鏈路上傳輸。除錯封包對於暴露藉由HPI連接的裝置之內部狀態可為重要的,該等裝置為以其他方式可存取的。除錯封包之內容亦可為實行方案特定的。內容可包括如分支資訊(來源及目標IP)、時間戳記、內部事件觸發器之指示等的事物。暴露資料可例如藉由諸如邏輯分析器之監測裝置監測,以用於後處理及故障分析。除錯訊息類型之示例性flit編碼例示於圖12中。
在一些實行方案中,諸如HPI之通用I/O互連(GPIO)架構之原理及協定可經利用來實行具緩衝區記憶體介面及對應協定。例如,以上概述之實體層及鏈路層定義亦可實行於具緩衝區記憶體協定中。實際上,用來支援GPIO協定之實體層及鏈路層的邏輯可在支援具緩衝區記憶體協定的介面處加以重新使用。具緩衝區記憶體協定亦可共用訊息類,諸如請求、回應及回寫訊息類,以及其他實例。雖然具緩衝區記憶體協定訊息內之運算碼值可以不同於HPI(或另一GPIO協定)中的方式加以解譯,但相同的一般封包格式可經利用於該一般封包格式所依賴的具緩衝區記憶體協定及GPIO互連體兩者中。實際上,額外封包及flit 欄位對於具緩衝區記憶體協定及GPIO互連協定可為唯一的。
在一些實行方案中,利用HPI之實體層及鏈路層的具緩衝區記憶體協定可為交易型介面及協定。此可容許資料經亂序返回至一系列所接收請求(例如,讀取請求)。在一些實行方案中,具緩衝區記憶體介面可用來將緩衝器晶片互連至CPU。在一實行方案中,雖然一些協定跨於具緩衝區記憶體匯流排發送DRAM命令,諸如啟動、讀取、寫入及再新,但在本文所論述之具緩衝區記憶體協定之一些實行方案中,讀取或寫入命令可簡單地以位址發送。緩衝器晶片隨後可解碼特定階級及組,且將請求向下分裂成DRAM命令。亦可支援臆測及需求讀取。
轉向圖13,展示簡化方塊圖1300,該簡化方塊圖例示計算系統之示例性拓撲,該計算系統包括藉由HPI順應鏈路互連的CPU裝置1305、1310。每一CPU 1305、1310可同樣地使用對應的具緩衝區記憶體協定鏈路(「MemLink」)連接至一或多個個別緩衝裝置1315a-1。如以上所述,在一些實行方案中,具緩衝區記憶體協定互連體可基於GPIO協定,因為具緩衝區記憶體協定之實體層及鏈路層係基於GPIO協定(例如,HPI)之相同實體層及鏈路層定義。雖然在圖13中未例示,但CPU 1305、1310可進一步使用GPIO協定連接至一或多個下游裝置。
如圖13之實例中進一步所示,緩衝裝置1315a-1可連接至記憶體裝置,諸如雙重內崁式記憶體模組(DIMM) 裝置。對應於每一緩衝裝置的記憶體可被視為緩衝裝置所連接至的CPU(例如,1305、1301)局部的。然而,其他裝置(包括其他CPU)可使用GPIO協定順應鏈路藉由其他插座存取記憶體。在一些實行方案中,運行具緩衝區記憶體協定之埠可僅支援用於與記憶體通訊之命令,且僅支援具緩衝區記憶體協定(亦即,不支援GPIO協定及具緩衝區記憶體協定)。另外,在一些實行方案中,GPIO互連協定可支援路由且指示諸如請求及目的地節點識別符之此類資訊(例如,在資訊之封包中)。另一方面,具緩衝區記憶體協定可為不利用路由的點對點介面。因此,可在使用具緩衝區記憶體介面發送的封包中省去GPIO協定中所使用的一些欄位。實情為,欄位可經指定以用於在將位址解碼資訊主機攜載至緩衝器中使用,以及其他實例。
在進一步實行方案中,緩衝裝置1315a-1可支援二階記憶體拓撲,其中一些量的快速記憶體(例如,DRAM)充當用於較大的較緩慢記憶體(例如,非依電性記憶體)之快取記憶體。在一個此實行方案中,緩衝裝置1315a-1中一或多者可使用DDR作為近快速記憶體且使用交易型DDR DIMM作為較大的「遠」記憶體,以及其他實例。交易型DIMM可利用協定(例如,DDR交易型(DDR-T))來使用交易型命令通訊至依電性記憶體單內嵌式記憶體模組(SIMM)。
轉向圖14,呈現簡化方塊圖1400,其展示連接至近記憶體模組及遠記憶體模組(例如,1405、1410)的緩衝器晶片1315之更詳細表示。如以上實例中所述,緩衝器晶片 1315可利用定義的具緩衝區記憶體協定經由具緩衝區記憶體協定互連鏈路1415以通訊方式耦接至CPU裝置1305。緩衝器晶片1315可包括用以執行額外功能之邏輯。例如,緩衝器晶片1315之實行方案可包括記憶體控制器1420、排程器1425、流程控制邏輯1430及錯誤偵測邏輯1435。邏輯可使用硬體電路、韌體及/或軟體加以實行。
在一些實行方案中,記憶體控制器1420可包括用以將請求轉換成該記憶體控制器之記憶體裝置之記憶體特定的協定(例如,DDR4)的邏輯。記憶體控制器1420可自CPU 1305(或另一主機)之主機控制器邏輯1440抽象化此等記憶體特定的協定之細節,該CPU使用鏈路1415與緩衝器晶片1315通訊。主機控制器邏輯1440可將CPU(或主機)位址轉譯至記憶體位址,包括跨於通道及插座重新排列,以及其他功能性。排程器1425可包括用以重新排序及仲裁對請求之回應以便達成較高效能的邏輯。緩衝器晶片1315可另外提供諸如流程控制及錯誤偵測之特徵。在一些實行方案中,流程控制邏輯1430可體現於排程器1425中或以其他方式與排程器1425互操作以確保緩衝器晶片1315之更大效率及較高效能。錯誤偵測邏輯1440可包括用以支援錯誤校正碼偵測方案之邏輯以及用於引發所偵測錯誤之校正或處置之邏輯。
如以上所述,具緩衝區記憶體協定之鏈路層可基於GPIO協定之鏈路層。例如,HPI協定之192位元、3槽flit(例如,圖10中所述及所示)可經利用於具緩衝區記憶體協定 中。具緩衝區記憶體協定中之封包可體現整個命令。封包可經實行為一或多個flit。圖15A至圖15C可表示具緩衝區記憶體協定中之flit之實行方案。在一些實行方案中,所讀取資料可經由標頭式及無標頭記憶體資料(MemData)封包之組合自緩衝裝置發送回至主機。整個快取列可在三個無標頭flit(而非五個,正如標頭式flit的情況)中傳送。無標頭封包可藉此提供較高通量,該較高能量可為介面之最受約束部分。為符合三個flit,無標頭封包消除若干欄位且關於該等欄位之值做出假定。所做的假定對於大多數而非所有讀取返回可為真,若任何假定並非真,則將使用標頭式封包,該標頭式封包含有所有欄位。在一些實行方案中,標頭式封包可開始讀取返回之序列以容許追蹤器識別符(例如,HTID、RTID等)之早期識別,以用於在將讀取返回映射至交易型具緩衝區記憶體協定中之讀取請求中使用。
在一些實行方案中,無標頭封包可含有表1中概述之資訊:
此外,圖15A至圖15C例示可用來傳輸讀取返回中之整個快取列的三個flit(例如,flit 0(在圖15A處)、flit 1(在圖15B處)及flit 2(在圖15C處))之序列。表2提供在無標頭封包中利用的三個flit之實例之概述:
HIB位元可經設定來指示封包為標頭式封包或無標頭封包。HIB可經設定來指示僅用於標頭flit之後的資料flit之無標頭封包。此允許某些其他封包將在封包中間交交。當交插封包完成時,原始標頭式封包之資料部分可在flit中之HIB=0的情況下經發送。此技術亦可用來藉由插入零flit來延遲資料封包。在一些實行方案中,當通常需要標頭時,無標頭封包之開始藉由為0的HIB位元來信號傳輸。包括零flit的所有其他封包可含有具有HIB位元集合的標頭。
如以上所介紹,標頭式封包之長度可為總共五個flit,且該等標頭式封包可包括一標頭flit及4個資料flit。為減少閒置潛時,標頭式flit可將資料flit 1發送兩次。第一次,該flit與僅來自第一32位元組之資料一起發送,且被稱為flit 1a。此允許flit將在資料之第二32位元組可得自記憶體裝置之前經發送。結果在於,對於閒置狀況,資料之關鍵的32位元組塊較早地到達主機。隨後可第二次發送Flit 1,此次完成。該flit將含有第一32位元組資料部分加上第二32位元組部分之重複。表3描述標頭式封包之五個flit:
在一些實行方案中,標頭式MemData封包可未經取消且後面為資料flit。標頭未經發送,直至該標頭知道資料亦可經發送為止。全快取列可在標頭經發送之前未累積於緩衝器中。
系統可對潛時尤其敏感。記憶體潛時對於CPU效能可為關鍵的。在一些實行方案中,由緩衝裝置返回或將要返回至CPU的資料可經檢查錯誤,使得在發送至其他裝置之前錯誤經校正或含有錯誤。此類錯誤監測、偵測及處置可引入額外潛時管理負擔。一些解決方案可涉及保持緩衝裝置及/或CPU處之資料,直至確信任何資料錯誤經偵測且含有。在一些情況下,某些類型之錯誤可尤其罕見,且藉由保持每一flit或封包以用於允許轉送進展之前的資料偵測引入的額外管理負擔可不調整保持每一flit以保證之效益,以及其他缺陷。
在一些實行方案中,一旦資料自對應的記憶體裝置到達,緩衝裝置之記憶體控制器即可將該資料發送至CPU(亦即,在資料已經檢查錯誤之前)。緩衝裝置仍可處理所發送資料之複本以決定所發送資料是否擁有任何錯誤。例如,緩衝裝置之錯誤偵測邏輯可針對ECC、CRC或其他錯誤檢查所發送資料。在另一實例中,與快取列資料相關聯的元資料可經分析以決定是否可基於資料之快取記憶體狀態、目錄狀態或另一屬性使用該資料,以及其他實例。可與藉由CPU進行的所發送資料之處理平行地藉由緩衝裝置執行錯誤分析。若錯誤經偵測,則緩衝裝置可將取消訊息發送至CPU以引起資料在自CPU向前發送之前經取消。
轉向圖16,展示圖表1600,其表示記憶體資料經由具緩衝區記憶體介面(諸如以上實例中所述)自緩衝裝置1315至CPU 1305的發送。CPU 1305隨後可將返回的資料轉送至目的地裝置1605,諸如另一CPU或其他主機裝置。
記憶體資料可經自緩衝裝置1315發送至CPU 1305,以作為回應於藉由CPU 1305進行的讀取請求的讀取回應。例如,緩衝器晶片1315可自連接之記憶體裝置(未示出)獲取資料且在讀取回應1610中發送資料。在此實例中,資料可在藉由緩衝裝置1315檢查錯誤之前於讀取回應1610中經發送。在發送讀取回應1610之後,緩衝裝置1315可執行資料之錯誤檢查1615。同時,讀取回應1610可在CPU 1305處經接收。CPU 1305可處理1620讀取回應以為發送資料至目的地裝置1605作準備。處理1620可包括與以下各者有關的任務:識別讀取回應1610所屬的交易、執行路由決定以評估讀取回應資料將經轉送至何處,以及其他實例。當CPU繼續處理1620讀取回應1610時,可完成錯誤檢查1615。在錯誤經偵測的情況下,緩衝裝置1315可發送訊息以使CPU
警戒。然而,在錯誤檢查1615之實例中,無錯誤經決定,且CPU 1305不間斷地進行以將處理後資料(例如,在1625處)發送至目的地裝置1605。
繼續圖16之實例,可回應於讀取請求而將另一讀取回應1635回應至CPU 1305。當讀取回應1635中轉至CPU 1305時,可在緩衝裝置1315處執行對應的錯誤檢查1630。然而,在此實例中,當CPU 1305處理1640讀取回應1635時,緩衝裝置1630可偵測與讀取回應1635有關的錯誤,且可將取消訊息1645發送至CPU 1305。與決定錯誤(在1630處)相關聯的潛時可小於用於傳輸讀取回應1635及在CPU 1305處處理該讀取回應(在1640處)之組合潛時。因此,取消訊息1645可在CPU 1305將資料向前發送至其他裝置(例如,1605)之前達到CPU 1305,且CPU可回應於取消訊息1645而取消1650回應資料之進一步傳輸。緩衝裝置1315可登錄記憶體錯誤且CPU可遺漏回應且等待該回應要被重新發送。
在一些狀況下,可發送早期讀取之識別符以輔助減少CPU處之潛時。例如,記憶體存取鏈路協定可為早期交易識別符之發送作準備,諸如於2014年12月20日申請且以引用方式併入本文的標題為「Early Identification in Transactional Buffered Memory」之美國專利申請案序列號14/578,407中所述。在一些實行方案中,緩衝裝置甚至可取消交易,該等交易已發送此類早期讀取之識別符或該等識別符之資料之部分。因此,所得潛時最佳化管線在發送讀取資料之前並不等待將要解決的所有相依,從而有效
地允許讀取資料之臆測性回應(亦即,跟在目的地主機裝置(例如,1305)處之接收之後,可取消該回應的讀取資料)。此可涉及組配主機裝置(或緩衝裝置)以便能夠回應於讀取回應取消訊息(例如,1645)而丟棄飛行中交易(例如,已經有一部分而非全部之資料自緩衝裝置發送至主機的交易)。
HPI及相關聯具緩衝區記憶體存取協定可併入任何種類的計算裝置及系統中,該等計算裝置及系統包括主機、伺服器系統、個人電腦、便攜式電腦(諸如平板電腦、智慧型電話、個人數位系統等)、智慧型設備、遊戲或娛樂控制台及機上盒,以及其他實例。例如,參考圖17,所展示為根據本發明之一實施例之第二系統1700的方塊圖。如圖17中所示,多處理器系統1700係點對點互連系統,且包括經由點對點互連體1750耦接的第一處理器1770及第二處理器1780。處理器1770及1780中每一者可為處理器之某一版本。在一實施例中,1752及1754為諸如高效能架構的串列點對點同調互連組構之部分。因此,本發明可實行於QPI架構內。
雖然展示了僅兩個處理器1770、1780,但應理解,本發明之範疇不如此受限制。在其他實施例中,給定處理器中可存在一或多個額外處理器。所展示處理器1770及1780分別包括整合型記憶體控制器單元1772及1782。處理器1770亦包括點對點(P-P)介面1776及1778,作為該處理器之匯流排控制器單元的部分;類似地,第二處理器1780包括P-P介面1786及1788。處理器1770、1780可使用P-P介
面電路1778、1788經由點對點(P-P)介面1750交換資訊。如圖17中所示,IMC 1772及1782將處理器耦接至個別記憶體,亦即,記憶體1732及記憶體1734,該等記憶體可為局部地附接至個別處理器的主記憶體之部分。
處理器1770、1780各自使用點對點介面電路1776、1794、1786、1798經由個別P-P介面1752、1754與晶片集1790交換資訊。晶片集1790亦沿高效能圖形互連體1739經由介面電路1792與高效能圖形電路1738交換資訊。
在任一處理器中或兩個處理器外部,可包括共用快取記憶體(未示出);而該共用快取記憶體經由P-P互連體與該等處理器連接,使得當處理器被置於低功率模式中時,可將任一處理器或兩個處理器之局部快取記憶體資訊儲存在該共用快取記憶體中。
晶片集1790可經由介面1796耦接至第一匯流排1716。在一實施例中,第一匯流排1716可為周邊組件互連(PCI)匯流排,或者諸如高速PCI匯流排或另一第三代I/O互連匯流排之匯流排,但本發明之範疇不如此受限制。
如圖17中所示,各種I/O裝置1714以及匯流排橋接器1718耦接至第一匯流排1716,該匯流排橋接器將第一匯流排1716耦接至第二匯流排1720。在一實施例中,第二匯流排1720包括低接腳計數(LPC)匯流排。各種裝置耦接至第二匯流排1720,該等裝置包括例如鍵盤及/或滑鼠1722、通訊裝置1727及儲存單元1728,諸如碟片驅動機或其他大容量儲存裝置,該儲存單元在一實施例中通常包括指令/碼及資料1730。此外,音訊I/O 1724展示為耦接至第二匯流排1720。請注意,其他架構係可能的,其中所包括的組件及互連架構不同。例如,代替圖17之點對點架構,系統可實行多分支匯流排或其他此種架構。
雖然已就有限數目之實施例描述本發明,但是熟習此項技術者將瞭解基於該等實施例之許多修改及變化。隨附申請專利範圍意欲涵蓋如屬於本發明之真實精神及範疇內之所有此等修改及變化。
設計可經歷自產生至模擬至製造之各種階段。表示設計之資料可以數種方式來表示設計。首先,如在模擬中為有用的,硬體可使用硬體描述語言或另一功能描述語言來表示。另外,具有邏輯及/或電晶體閘之電路層級模型可在設計過程之一些階段產生。此外,大多數設計在一些階段達到表示各種裝置在硬體模型中之實體佈局之資料的層級。在使用習知半導體製造技術之狀況下,表示硬體模型之資料可為指定各種特徵在用於遮罩之不同遮罩層上是否存在的資料,該等遮罩用以產生積體電路。在設計之任何表示中,資料可儲存於任何形式之機器可讀媒體中。記憶體或者磁性或光學儲存器(諸如,碟片)可為儲存經由光波或電波所傳輸之資訊的機器可讀媒體,該光波或電波經調變或以其他方式產生以傳輸此資訊。當指示或攜載程式碼或設計之電載波經傳輸,達到執行電信號之複製、緩衝或重新傳輸的程度時,新的複本得以製作。因此,通訊提供者或網路提供者可在有形的機器可讀媒體上至少暫時儲存 體現本發明之實施例之技術的物件,諸如編碼至載波中的資訊。
如本文所使用之模組指代硬體、軟體,及/或韌體之任何組合。作為一實例,模組包括與非暫時性媒體相關聯之硬體,諸如微控制器,該媒體儲存經調適來藉由微控制器執行之碼。因此,在一實施例中,對模組之引用指代硬體,其經特定組配來辨識及/或執行將要在非暫時性媒體上保留之碼。此外,在另一實施例中,模組之使用指代包括碼之非暫時性媒體,該碼經特定調適來藉由微控制器執行以執行預定操作。且如可推斷,在又一實施例中,模組一詞(在此實例中)可指代微控制器與非暫時性媒體之組合。通常,例示為單獨的模組邊界通常變化且可能重疊。例如,第一模組及第二模組可共用硬體、軟體、韌體或上述各者之組合,同時可能保留一些獨立的硬體、軟體或韌體。在一實施例中,邏輯一詞之使用包括硬體,諸如電晶體、暫存器,或諸如可規劃邏輯裝置之其他硬體。
在一實施例中,短語『經組配來』之使用指代配置、放在一起、製造、要約出售、進口及/或設計執行所指定或所決定任務之設備、硬體、邏輯或元件。在此實例中,並未操作之設備或其元件仍『經組配來』在其經設計、耦接及/或互連以執行所指定任務的情況下執行該所指定任務。作為純例示性實例,邏輯閘可在操作期間提供0或1。但『經組配來』將賦能信號提供至時鐘之邏輯閘不包括可提供1或0之每一可能邏輯閘。實情為,邏輯閘為以某方式 耦接之邏輯閘,該方式為在操作期間,1或0輸出將致能時鐘。再次注意,『經組配來』一詞之使用不需要操作,而是聚焦於設備、硬體及/或元件之潛在狀態,其中設備、硬體及/或元件之潛在狀態經設計來在該設備、硬體及/或元件正操作時執行特定任務。
此外,在一實施例中,短語『用以』及或『可操作以』之使用指代以允許以指定方式使用設備、邏輯、硬體及/或元件之方式設計的某設備、邏輯、硬體及/或元件。注意如以上,在一實施例中,用以、能夠或可操作以之使用指代設備、邏輯、硬體及/或元件之潛在狀態,其中設備、邏輯、硬體及/或元件不操作但以允許以指定方式使用設備的方式來設計。
如本文所使用,值包括數目、狀態、邏輯狀態或二進位邏輯狀態之任何已知表示。通常,邏輯位準、邏輯值或多個邏輯值之使用亦被稱為1及0,此簡單地表示二進位邏輯狀態。例如,1指代高邏輯位準且0指代低邏輯位準。在一實施例中,諸如電晶體或快閃格之儲存格可能能夠保留單一邏輯值或多個邏輯值。然而,電腦系統中之值的其他表示已得以使用。例如,十進位數10亦可表示為二進位值1010及十六進位字母A。因此,值包括能夠保留於電腦系統中的資訊之任何表示。
此外,狀態可藉由值或值之多個部分表示。作為一實例,諸如邏輯1之第一值可表示預設或初始狀態,而諸如邏輯0之第二值可表示非預設狀態。另外,在一實施例 中,重設及設定等詞分別指代預設及更新值或狀態。舉例而言,預設值可能包括高邏輯值,亦即,重設,而更新值可能包括低邏輯值,亦即,設定。注意,值之任何組合可用以表示任何數目個狀態。
以上所闡述之方法、硬體、軟體、韌體或程式碼之實施例可經由儲存於機器可存取、機器可讀、電腦可存取或電腦可讀媒體上之指令或程式碼來實施,該等指令或程式碼可藉由處理元件執行。非暫時性機器可存取/可讀媒體包括以可藉由機器讀取之形式提供(亦即,儲存及/或傳輸)資訊的任何機制,該機器諸如電腦或電子系統。例如,非暫時性機器可存取媒體包括隨機存取記憶體(RAM),諸如靜態RAM(SRAM)或動態RAM(DRAM);ROM;磁性或光學儲存媒體;快閃記憶體裝置;電氣儲存裝置;光學儲存裝置;聲學儲存裝置;用於保持自暫時性(傳播)信號(例如,載波、紅外信號、數位信號)接收的資訊的其他形式之儲存裝置等,該等其他形式之儲存裝置不同於可自該等暫時性(傳播)信號(例如,載波、紅外信號、數位信號)接收資訊的非暫時性媒體。
用來規劃邏輯以執行本發明之實施例的指令可儲存於系統中之記憶體中,諸如DRAM、快取記憶體、快閃記憶體或其他儲存器。此外,指令可經由網路或藉由其他電腦可讀媒體來散佈。因此,機器可讀媒體可包括用於以可藉由機器(例如,電腦)讀取之形式儲存或傳輸資訊的任何機制,但不限於軟碟片、光碟、光碟片唯讀記憶體 (CD-ROM),及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可規劃唯讀記憶體(EPROM)、電可抹除可規劃唯讀記憶體(EEPROM)、磁性或光學卡、快閃記憶體,或在資訊經網際網路經由電、光學、聲學或其他形式之所傳播信號(例如,載波、紅外信號、數位信號等)之傳輸中所使用的有形的機器可讀儲存器。因此,電腦可讀媒體包括適於以機器(例如,電腦)可讀的形式儲存或傳輸電子指令或資訊之任何類型之有形的機器可讀媒體。
以下實例係關於根據本說明書之實施例。一或多個實施例可提供設備、系統、機器可讀儲存器、機器可讀媒體、以硬體及/或軟體為基礎的邏輯及方法,上述各者用以經由鏈路將資料自記憶體緩衝裝置發送至主機裝置,決定資料中之錯誤,且將讀取回應取消信號發送至主機裝置以向主機裝置指示錯誤,其中讀取回應取消信號將在資料自記憶體緩衝裝置發送至主機裝置之後經發送。
在至少一實例中,讀取回應取消信號將取消藉由主機裝置進行的資料之進一步傳輸。
在至少一實例中,資料將在交易中之多個flit中經發送,且針對該等多個flit中之一特定flit偵測錯誤。
在至少一實例中,資料之至少一部分留下以在錯誤之偵測之後於該等多個flit中之至少一額外flit中經發送。
在至少一實例中,至少一額外flit將基於錯誤之偵測經取消。
在至少一實例中,鏈路包括交易型具緩衝區記憶 體鏈路。
在至少一實例中,錯誤包括錯誤校正碼(ECC)錯誤。
在至少一實例中,錯誤偵測器及交易取消邏輯包括於記憶體緩衝裝置中。
在至少一實例中,用以決定錯誤的潛時小於用以將資料發送至主機裝置且在主機裝置將資料轉送至另一裝置之前於主機裝置處處理資料的潛時。
在至少一實例中,資料包括回應主機裝置之讀取請求的讀取返回。
在至少一實例中,經由鏈路自主機裝置接收讀取返回。
在至少一實例中,讀取回應取消信號經由鏈路經發送。
一或多個實施例可提供方法、設備、系統、機器可讀儲存器、機器可讀媒體、以硬體及/或軟體為基礎的邏輯,上述各者包括:具緩衝區記憶體發射器,其用以經由記憶體存取鏈路將讀取請求發送至緩衝裝置;具緩衝區記憶體接收器,其用以接收回應讀取請求的讀取返回;以及路由邏輯,其用以處理讀取返回以用於經由另一互連鏈路發送至主機裝置。具緩衝區記憶體接收器進一步用以在讀取返回之處理期間自緩衝裝置接收取消信號,取消信號用以指示緩衝裝置偵測讀取返回之資料中之錯誤,且提供取消邏輯以基於取消信號來取消資料至主機裝置的發送。
在至少一實例中,記憶體存取鏈路與具緩衝區記憶體鏈路協定相順應,且另一互連鏈路與不同鏈路協定相順應。
在至少一實例中,記憶體鏈路協定包括交易型記憶體鏈路協定。
在至少一實例中,記憶體鏈路協定併入不同鏈路協定之實體層及鏈路層。
在至少一實例中,不同鏈路協定包括通用輸入/輸出(GPIO)互連協定。
一或多個實施例可提供系統,該系統包括:第一主機裝置;第二主機裝置,其使用特定鏈路連接至第一主機裝置,該特定鏈路與通用輸入/輸出(GPIO)鏈路協定相順應;以及緩衝裝置,其使用具緩衝區記憶體鏈路連接至第一主機裝置,該具緩衝區記憶體鏈路與記憶體存取鏈路協定相順應。緩衝裝置用以經由具緩衝區記憶體鏈路將資料自記憶體緩衝裝置發送至第一主機裝置,決定資料中之錯誤,且將取消信號發送至第一主機裝置以向主機裝置指示錯誤。取消信號將在資料經自緩衝裝置發送至第一主機裝置之後經發送。
在至少一實例中,第一主機裝置用以將讀取請求發送至緩衝裝置,且將回應於讀取請求而藉由緩衝裝置返回資料。
在至少一實例中,資料藉由第一主機裝置經由特定鏈路轉送至第二主機裝置,第一主機裝置在取消信號之 接收之前開始處理資料,且基於取消信號來取消資料至第二主機裝置的轉送。
遍及本說明書對「一實施例」或「一個實施例」之引用意味,結合實施例所述之特定特徵、結構或特性包括於本發明之至少一實施例中。因此,短語「在一實施例中」或「在一個實施例中」在遍及本說明書之各處的出現未必均指代同一實施例。此外,特定特徵、結構或特性可在一或多個實施例中以任何合適之方式組合。
在前述說明書中,已參考特定示範性實施例提供了詳細描述。然而,將顯而易見的是,可在不脫離如所附申請專利範圍中所闡述的本發明之較廣泛精神及範疇的情況下對本發明進行各種修改及變化。因此,應以例示性意義而非限制性意義來看待說明書及圖式。此外,實施例及其他示範性語言之前述使用未必指代同一實施例或同一實例,而可指代不同且相異的實施例,以及可能同一實施例。
Claims (25)
- 一種設備,其包含:一緩衝器晶片,其包含:一記憶體控制器,其用以與一記憶體介接,並且將記憶體要求轉換為對應於該記憶體之一記憶體特定協定;一接收器,其用以經由一交易記憶體鏈路從一處理器裝置接收一特定記憶體要求;一發射器,其用以發送一讀取回應至該處理器裝置,該讀取回應包含複數個封包,其中該等複數個封包包含由一無標頭封包所跟隨之一初始的標頭封包,該標頭封包由鏈路層傳送單位(flit)所組成,其中該無標頭封包之flit包含一標頭flit以及一第一數目之資料flit,該無標頭封包包含一第二數目之資料flit,該第二數目係少於該第一數目,該標頭flit包含對應於在該第一數目資料flit中之資料之一要求交易識別符(TID),該第一數目之資料flit中之每一者包含對應於在該第二數目資料flit中之資料的一TID,並且該第二數目之資料flit中之每一者包含用於在一後續無標頭封包中之資料的一TID。
- 如請求項1之設備,其中該第一數目之資料flit包含四個資料flit,並且該第二數目之資料flit包含三個資料flit。
- 如請求項1之設備,其中該無標頭封包省略一標頭flit。
- 如請求項1之設備,其中於該無標頭封包中之該等資料flit之每一者省略包括於該標頭封包之該等資料flit中之欄位。
- 如請求項1之設備,其中該標頭flit之一標頭識別位元(HIB)係二進位1,並且該等資料flit之每一者之該HIB係二進位0。
- 如請求項1之設備,其中一或多個零(null)flit係要在該等標頭封包以及無標頭封包之一者或是兩者之flit之間被傳送。
- 如請求項1之設備,其中該記憶體特定協定包含DDR4。
- 一種方法,其包含:經由一交易記憶體鏈路從一處理器裝置接收一特定記憶體要求,其中該特定記憶體要求對應於特定記憶體;產生一讀取回應至該處理器裝置,該讀取回應包含複數個封包,其中該等複數個封包包含由一無標頭封包所跟隨之一初始的標頭封包,該標頭封包由鏈路層傳送單位(flit)所組成,其中該無標頭封包之flit包含一標頭flit以及一第一數目之資料flit,該無標頭封包包含一第二數目之資料flit,該第二數目係少於該第一數目,該標頭flit包含對應於在該第一數目之資料flit中之資料之一要求交易識別符(TID),該第一數目之資料flit中之每一者包含對應於在該第二數目之資料flit中之資料之一TID,以及該第二數目之資料flit中之每一者包含用於在一後續無標頭封包中之資料之一TID;以及回應於該特定記憶體要求而發送該讀取回應至該處理器裝置。
- 如請求項8之方法,其更包含將該特定記憶體要求轉換為對應於該記憶體之一記憶體特定協定。
- 如請求項9之方法,其中該記憶體特定協定包含DDR4。
- 如請求項8之方法,其中該第一數目之資料flit包含四個資料flit,並且該第二數目之資料flit包含三個資料flit。
- 如請求項8之方法,其中該無標頭封包省略一標頭flit。
- 如請求項8之方法,其中於該無標頭封包中之該等資料flit之每一者省略包括於該標頭封包之該等資料flit中之欄位。
- 如請求項8之方法,其中該標頭flit之一標頭識別位元(HIB)係二進位1,並且該等資料flit之每一者之HIB係二進位0。
- 如請求項8之方法,其中一或多個零(null)flit係要在該等標頭封包以及無標頭封包之一者或是兩者之flit之間被傳送。
- 一種系統,其包含用以實行如請求項8至15中之任一項所述方法之構件。
- 如請求項16之系統,其中該等構件包含一電腦可讀取儲存媒體,該電腦可讀取媒體具有指令儲存於其上,該等指令當被一機器執行時,致使該機器去實行請求項8至15中任一項所述方法之至少一部份。
- 一種系統,其包含:一第一裝置;一記憶體元件;以及一交易記憶體緩衝晶片,其包含:一記憶體控制器,其用以與該記憶體元件介接,並且將記憶體要求轉換為對應於該記憶體元件之一記憶體特定協定;一接收器,其用以經由一交易記憶體鏈路從該第一裝置接收一特定記憶體要求;一發射器,其用以發送一讀取回應至該第一裝置,該讀取回應包含複數個封包,其中該等複數個封包包含由一無標頭封包所跟隨之一初始的標頭封包,該標頭封包由鏈路層傳送單位(flit)所組成,其中該無標頭封包之flit包含一標頭flit以及一第一數目之資料flit,該無標頭封包包含一第二數目之資料flit,該第二數目係少於該第一數目,該標頭flit包含對應於在該第一數目資料flit中之資料之一要求交易識別符(TID),該第一數目之資料flit中之每一者包含對應於在該第二數目資料flit中之資料的一TID,並且該第二數目之資料flit中之每一者包含用於在一後續無標頭封包中之資料的一TID。
- 如請求項18之系統,其中該第一裝置包含一處理器裝置。
- 如請求項18之系統,其中該第一數目之資料flit包含四個資料flit,並且該第二數目資料flit包含三個資料flit。
- 如請求項18之系統,其中該無標頭封包省略一標頭flit。
- 如請求項18之系統,其中於該無標頭封包之該資料flit中之每一者省略包括於該標頭封包之於該等資料flit中之欄位。
- 如請求項18之系統,其中該標頭flit之一標頭識別位元(HIB)係二進位1,並且該等資料flit之每一者之該HIB係二進位0。
- 如請求項18之系統,其中一或多個零(null)flit係要在該等標頭封包以及無標頭封包之一者或是兩者之flit之間被傳送。
- 如請求項18之系統,其中該記憶體特定協定包含DDR4。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/578,413 US9632862B2 (en) | 2014-12-20 | 2014-12-20 | Error handling in transactional buffered memory |
US14/578,413 | 2014-12-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201824294A TW201824294A (zh) | 2018-07-01 |
TWI671751B true TWI671751B (zh) | 2019-09-11 |
Family
ID=56127298
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104138270A TWI605464B (zh) | 2014-12-20 | 2015-11-19 | 交易型緩衝記憶體中之錯誤處置技術 |
TW106129563A TWI671751B (zh) | 2014-12-20 | 2015-11-19 | 交易型緩衝記憶體中之錯誤處置技術(二) |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104138270A TWI605464B (zh) | 2014-12-20 | 2015-11-19 | 交易型緩衝記憶體中之錯誤處置技術 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9632862B2 (zh) |
EP (2) | EP3373146A1 (zh) |
CN (2) | CN108363637A (zh) |
TW (2) | TWI605464B (zh) |
WO (1) | WO2016099813A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9632862B2 (en) | 2014-12-20 | 2017-04-25 | Intel Corporation | Error handling in transactional buffered memory |
US10838898B2 (en) * | 2017-12-05 | 2020-11-17 | Qualcomm Incorporated | Bit-interleaved bi-directional transmissions on a multi-drop bus for time-critical data exchange |
TWI671637B (zh) * | 2018-04-25 | 2019-09-11 | 點序科技股份有限公司 | 記憶體管理裝置及其操作方法 |
CN109271108B (zh) * | 2018-09-03 | 2021-11-30 | 青岛镕铭半导体有限公司 | 一种存储器控制装置及数据存储设备 |
CN109508247B (zh) * | 2018-11-09 | 2022-02-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 |
US11775470B2 (en) * | 2019-11-20 | 2023-10-03 | Intel Corporation | Transaction layer packet format |
US11740958B2 (en) | 2019-11-27 | 2023-08-29 | Intel Corporation | Multi-protocol support on common physical layer |
US11886312B2 (en) * | 2020-04-07 | 2024-01-30 | Intel Corporation | Characterizing error correlation based on error logging for computer buses |
US11418455B2 (en) | 2020-08-31 | 2022-08-16 | Micron Technology, Inc. | Transparent packet splitting and recombining |
US11296995B2 (en) | 2020-08-31 | 2022-04-05 | Micron Technology, Inc. | Reduced sized encoding of packet length field |
US11360920B2 (en) | 2020-08-31 | 2022-06-14 | Micron Technology, Inc. | Mapping high-speed, point-to-point interface channels to packet virtual channels |
US11412075B2 (en) * | 2020-08-31 | 2022-08-09 | Micron Technology, Inc. | Multiple protocol header processing |
US11539623B2 (en) | 2020-08-31 | 2022-12-27 | Micron Technology, Inc. | Single field for encoding multiple elements |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370621B1 (en) * | 1998-12-21 | 2002-04-09 | Advanced Micro Devices, Inc. | Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation |
US7734980B2 (en) * | 2005-06-24 | 2010-06-08 | Intel Corporation | Mitigating silent data corruption in a buffered memory module architecture |
US20140115208A1 (en) * | 2012-10-22 | 2014-04-24 | Jeff Willey | Control messaging in multislot link layer flit |
US20140112339A1 (en) * | 2012-10-22 | 2014-04-24 | Robert J. Safranek | High performance interconnect |
US20140115420A1 (en) * | 2012-10-22 | 2014-04-24 | Jeff Willey | High performance interconnect link layer |
US20140189443A1 (en) * | 2012-12-31 | 2014-07-03 | Advanced Micro Devices, Inc. | Hop-by-hop error detection in a server system |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5165023A (en) * | 1986-12-17 | 1992-11-17 | Massachusetts Institute Of Technology | Parallel processing system with processor array and network communications system for transmitting messages of variable length |
US6493843B1 (en) * | 1999-10-28 | 2002-12-10 | Hewlett-Packard Company | Chipkill for a low end server or workstation |
US7818646B1 (en) * | 2003-11-12 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | Expectation based event verification |
US7809903B2 (en) * | 2005-12-15 | 2010-10-05 | Intel Corporation | Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions |
US7562285B2 (en) | 2006-01-11 | 2009-07-14 | Rambus Inc. | Unidirectional error code transfer for a bidirectional data link |
US8127309B1 (en) * | 2006-11-10 | 2012-02-28 | Marvell International Ltd. | Secure digital input/output interface system |
US7949931B2 (en) | 2007-01-02 | 2011-05-24 | International Business Machines Corporation | Systems and methods for error detection in a memory system |
JP5035176B2 (ja) * | 2008-08-21 | 2012-09-26 | 富士通株式会社 | 伝送システム、伝送装置および伝送方法 |
US8250435B2 (en) | 2009-09-15 | 2012-08-21 | Intel Corporation | Memory error detection and/or correction |
CN101673255B (zh) * | 2009-10-21 | 2012-07-11 | 威盛电子股份有限公司 | 通用串行总线主机控制器和通用串行总线主机控制方法 |
US10430298B2 (en) * | 2010-10-28 | 2019-10-01 | Microsoft Technology Licensing, Llc | Versatile in-memory database recovery using logical log records |
CN102480346B (zh) * | 2010-11-26 | 2014-12-10 | 中国科学院声学研究所 | 一种网络数据可靠传输方法 |
US8677027B2 (en) * | 2011-06-01 | 2014-03-18 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
US9037907B2 (en) * | 2011-06-10 | 2015-05-19 | International Business Machines Corporation | Operator message commands for testing a coupling facility |
CN103141050B (zh) * | 2011-12-28 | 2014-11-05 | 华为技术有限公司 | 快速通道互联系统中数据包重传方法、节点 |
CN102629898B (zh) * | 2012-04-11 | 2014-12-10 | 华为技术有限公司 | 数据传输方法、设备及系统 |
US8990640B2 (en) | 2012-11-16 | 2015-03-24 | International Business Machines Corporation | Selective posted data error detection based on request type |
US9298525B2 (en) * | 2012-12-04 | 2016-03-29 | Accenture Global Services Limited | Adaptive fault diagnosis |
JP5793690B2 (ja) * | 2012-12-28 | 2015-10-14 | パナソニックIpマネジメント株式会社 | インタフェース装置、およびメモリバスシステム |
US9632862B2 (en) | 2014-12-20 | 2017-04-25 | Intel Corporation | Error handling in transactional buffered memory |
-
2014
- 2014-12-20 US US14/578,413 patent/US9632862B2/en active Active
-
2015
- 2015-11-19 TW TW104138270A patent/TWI605464B/zh active
- 2015-11-19 TW TW106129563A patent/TWI671751B/zh active
- 2015-11-23 WO PCT/US2015/062071 patent/WO2016099813A1/en active Application Filing
- 2015-11-23 CN CN201810004370.0A patent/CN108363637A/zh active Pending
- 2015-11-23 CN CN201580063240.9A patent/CN107005371B/zh active Active
- 2015-11-23 EP EP18165252.0A patent/EP3373146A1/en active Pending
- 2015-11-23 EP EP15870614.3A patent/EP3234778B1/en active Active
-
2017
- 2017-03-17 US US15/462,185 patent/US10360096B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370621B1 (en) * | 1998-12-21 | 2002-04-09 | Advanced Micro Devices, Inc. | Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation |
US7734980B2 (en) * | 2005-06-24 | 2010-06-08 | Intel Corporation | Mitigating silent data corruption in a buffered memory module architecture |
US20140115208A1 (en) * | 2012-10-22 | 2014-04-24 | Jeff Willey | Control messaging in multislot link layer flit |
US20140112339A1 (en) * | 2012-10-22 | 2014-04-24 | Robert J. Safranek | High performance interconnect |
US20140115420A1 (en) * | 2012-10-22 | 2014-04-24 | Jeff Willey | High performance interconnect link layer |
US20140201463A1 (en) * | 2012-10-22 | 2014-07-17 | Robert G. Blankenship | High performance interconnect coherence protocol |
US20140215112A1 (en) * | 2012-10-22 | 2014-07-31 | Venkatraman Iyer | High performance interconnect physical layer |
US20140215437A1 (en) * | 2012-10-22 | 2014-07-31 | Venkatraman Iyer | High performance interconnect physical layer |
US20140189443A1 (en) * | 2012-12-31 | 2014-07-03 | Advanced Micro Devices, Inc. | Hop-by-hop error detection in a server system |
Also Published As
Publication number | Publication date |
---|---|
EP3234778A1 (en) | 2017-10-25 |
CN107005371A (zh) | 2017-08-01 |
US9632862B2 (en) | 2017-04-25 |
US20170322841A1 (en) | 2017-11-09 |
EP3373146A1 (en) | 2018-09-12 |
US10360096B2 (en) | 2019-07-23 |
CN108363637A (zh) | 2018-08-03 |
TWI605464B (zh) | 2017-11-11 |
EP3234778B1 (en) | 2023-08-09 |
US20160179610A1 (en) | 2016-06-23 |
EP3234778A4 (en) | 2018-08-22 |
TW201631600A (zh) | 2016-09-01 |
TW201824294A (zh) | 2018-07-01 |
WO2016099813A1 (en) | 2016-06-23 |
CN107005371B (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI671751B (zh) | 交易型緩衝記憶體中之錯誤處置技術(二) | |
US20230367481A1 (en) | Implied directory state updates | |
US10198379B2 (en) | Early identification in transactional buffered memory | |
CN108829614B (zh) | 缓冲存储器中的推测性读 | |
TWI653532B (zh) | 用以管理電腦記憶體之設備、方法及系統 | |
TWI605343B (zh) | 緊密寫入完成之技術 |