TW201635150A - 具緩衝區記憶體中的推測讀取之技術 - Google Patents

具緩衝區記憶體中的推測讀取之技術 Download PDF

Info

Publication number
TW201635150A
TW201635150A TW104138578A TW104138578A TW201635150A TW 201635150 A TW201635150 A TW 201635150A TW 104138578 A TW104138578 A TW 104138578A TW 104138578 A TW104138578 A TW 104138578A TW 201635150 A TW201635150 A TW 201635150A
Authority
TW
Taiwan
Prior art keywords
memory
read request
data
buffer
speculative
Prior art date
Application number
TW104138578A
Other languages
English (en)
Other versions
TWI596478B (zh
Inventor
布萊恩S 摩里斯
比爾 拿里
羅伯特G 布蘭肯席普
彥成 劉
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 TW201635150A publication Critical patent/TW201635150A/zh
Application granted granted Critical
Publication of TWI596478B publication Critical patent/TWI596478B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)

Abstract

經由一緩衝區記憶體存取連結自一主機裝置接收針對與一特定位址相關聯之資料的一推測讀取請求。將針對該資料之一讀取請求發送至一記憶體裝置。回應於該讀取請求而自該記憶體裝置接收該資料,且作為對在該推測讀取請求之後接收的一需求讀取請求之一回應而將該所接收資料發送至該主機裝置。

Description

具緩衝區記憶體中的推測讀取之技術 發明領域
本發明大體係關於計算架構之領域,且更特定言之,係關於緩衝區記憶體協定。
發明背景
半導體處理及邏輯設計上的進步已准許可存在於積體電路裝置上的邏輯數量的增加。作為推論,電腦系統組配已自系統中的單一或多個積體電路演進至存在於個別積體電路上的多個核心、多個硬體執行緒及多個邏輯處理器以及整合於此等處理器內的其他介面。處理器或積體電路通常包含單一實體處理器晶粒,其中處理器晶粒可包括任何數目個核心、硬體執行緒、邏輯處理器、介面、記憶體、控制器集線器等。
由於使更大處理能力適配於較小封裝的更大能力,較小計算裝置風行性已增加。智慧型電話、平板電腦、超薄筆記型電腦及其他使用者裝備已按指數規律成長。然而,此等較小裝置對於資料儲存及超出外觀尺寸的複雜處理兩者皆依賴於伺服器。結果,高效能計算市場(亦即,伺 服器空間)中的需求已增加。舉例而言,在現代伺服器中,通常不僅存在具有多個核心的單一處理器,而且存在多個實體處理器(亦被稱作多個通訊端)來增加計算能力。但隨著處理能力與計算系統中的裝置數目一起增加,通訊端與其他裝置之間的通訊變得更關鍵。
實際上,互連已自主要處置電通訊的更傳統多接頭匯流排成長為促進快速通訊的成熟互連架構。遺憾的是,隨著對在甚至較高速率下進行消耗之將來處理器的需求增加,對現有互連架構的能力提出對應需求。
依據本發明之一實施例,係特地提出一種設備,其包含:主機邏輯,其用以:執行對於與一特定記憶體位址相關聯之資料的一快取記憶體查找;結合該快取記憶體查找將一推測讀取請求發送至一緩衝器裝置,其中該推測讀取請求將致使該緩衝器裝置自記憶體獲得該資料;以及至少部分基於該快取記憶體查找之一結果而判定是否將一讀取請求發送至該緩衝器裝置以致使緩衝器晶片自記憶體傳回該資料。
100‧‧‧系統
105、1770、1780、1800‧‧‧處理器
106‧‧‧前側匯流排(FSB)
110‧‧‧系統記憶體
115‧‧‧控制器集線器
116‧‧‧記憶體介面
117、118、121、131‧‧‧輸入/輸出模組、介面/埠
119、132、415‧‧‧連結
120‧‧‧開關/橋
122、126、1796‧‧‧介面
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‧‧‧接收對
416、417、418、419‧‧‧路徑
505‧‧‧兩通訊端組態
510‧‧‧四通訊端組態
515‧‧‧組態
615a、615b‧‧‧選路層
620a、620b‧‧‧協定層
630‧‧‧封包
635‧‧‧微片
640‧‧‧菲特
1000‧‧‧表示
1300、1400‧‧‧方塊圖
1305、1310‧‧‧CPU裝置
1315、1315a~1315l‧‧‧緩衝器裝置
1405、1410‧‧‧記憶體模組
1415‧‧‧緩衝區記憶體協定互連連結
1420‧‧‧記憶體控制器
1425‧‧‧排程器
1430‧‧‧流動控制邏輯
1435‧‧‧錯誤偵測邏輯
1440‧‧‧主機控制器邏輯
1445a~1445d‧‧‧處理核心
1450a~1450d、1840A、1840N‧‧‧末級快取記憶體(LLC)
1600a、1600b、1600c‧‧‧流程圖
1605、1732、1734‧‧‧記憶體
1610a、1610b、1610c‧‧‧LLC查找
1615a、1615b‧‧‧LLC未中
1615c‧‧‧命中
1620a‧‧‧讀取請求
1620b‧‧‧需求讀取
1625a、1625b、1625c‧‧‧請求
1630a、1630b、1630c、1730‧‧‧資料
1635a‧‧‧回應
1640b、1640c‧‧‧推測讀取請求
1650‧‧‧丟棄
1700‧‧‧多處理器系統
1714‧‧‧I/O裝置
1716‧‧‧第一匯流排
1718‧‧‧匯流排橋
1720‧‧‧第二匯流排
1722‧‧‧鍵盤及/或滑鼠
1724‧‧‧音訊I/O
1727‧‧‧通訊裝置
1728‧‧‧儲存單元
1738‧‧‧高效能圖形電路
1739‧‧‧高效能圖形互連
1752、1754‧‧‧P-P介面
1772、1782‧‧‧IMC
1776、1778、1786、1788、1794、1798‧‧‧點對點介面電路
1790‧‧‧晶片組
1792‧‧‧介面電路
1810‧‧‧系統代理程式域
1812‧‧‧顯示引擎
1814‧‧‧PCIeTM介面
1816‧‧‧直接媒體介面(DMI)
1818‧‧‧PCIeTM
1820‧‧‧整合式記憶體控制器
1822‧‧‧相干邏輯
1830‧‧‧核心域
1830A、1830N‧‧‧核心
1850‧‧‧環形互連
1852A、1852N‧‧‧環形擋板
1860‧‧‧圖形域
1865‧‧‧媒體引擎
圖1例示根據一個實施例的包括串列點對點互連以連接電腦系統中之I/O裝置的系統之簡化方塊圖;圖2例示根據一個實施例的分層協定堆疊之簡化方塊圖;圖3例示異動描述符之實施例。
圖4例示串列點對點連結之實施例。
圖5例示潛在高效能互連(HPI)系統組態之實施例。
圖6例示與HPI相關聯的分層協定堆疊之實施例。
圖7例示實例狀態機之表示。
圖8例示經由實例二十單工通道資料連結發送的實例微片(flit)之表示。
圖9例示經由實例八單工通道資料連結發送的實例微片之表示。
圖10例示實例多時槽微片之表示。
圖11例示經由實例八單工通道資料連結發送的實例微片之表示。
圖12例示包括偵錯訊息的實例多時槽微片之表示。
圖13例示利用緩衝區記憶體協定之系統的表示。
圖14例示支援緩衝區記憶體協定的緩衝器裝置之表示。
圖15A至圖15C例示緩衝區記憶體協定中的實例微片之表示。
圖16A至圖16C例示根據一些實施的在緩衝器裝置與主機裝置之間的實例通訊。
圖17例示包括多個處理器通訊端之計算系統的區塊之實施例。
圖18例示包括多核心處理器之計算系統之方塊 圖的另一實施例。
各種圖式中之相同參考編號及名稱指示相同元件。
較佳實施例之詳細說明
在以下描述中,闡述諸如以下各者之實例的眾多特定細節,以便提供對本發明之透徹理解:特定類型之處理器及系統組態、特定硬體結構、特定架構及微架構細節、特定暫存器組態、特定指令類型、特定系統組件、特定處理器管線級、特定互連層、特定封包/異動組態、特定異動名稱、特定協定交換、特定連結寬度、特定實施及操作等。然而,熟習此項技術者可顯而易見,無需必然使用此等特定細節來實踐本發明之標的物。在其他情況下,已避免已知組件或方法(諸如特定及替代處理器架構、用於所描述演算法之特定邏輯電路/程式碼、特定韌體程式碼、低層級互連操作、特定邏輯組態、特定製造技術及材料、特定編譯器實施、以程式碼對演算法之特定表達、特定切斷電源及閘控技術/邏輯及電腦系統之其他特定操作細節)之詳細描述,以便避免不必要地混淆本發明。
儘管可參考特定積體電路中(諸如計算平台或微處理器中)之能量節省、能量效率、處理效率等來描述以下實施例,但其他實施例適用於其他類型之積體電路及邏輯裝置。本文所述的實施例之類似技術及教示可適用於亦可得益於此等特徵之其他類型之電路或半導體裝置。舉例而 言,所揭示實施例並不限於伺服器電腦系統、桌上型電腦系統、膝上型電腦、UltrabooksTM,而亦可用於其他裝置,諸如手持型裝置、智慧型電話、平板電腦、其他薄型筆記型電腦、系統單晶片(SOC)裝置及嵌入式應用。手持型裝置之一些實例包括蜂巢式電話、網際網路協定裝置、數位攝影機、個人數位助理(PDA)及手持型PC。此處,可應用用於高效能互連之類似技術來增加低功率互連的效能(或甚至節省電力)。嵌入式應用通常包括微控制器、數位信號處理器(DSP)、系統單晶片、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)交換器,或可進行下文所教示之功能及操作的任何其他系統。此外,本文所描述之設備、方法及系統不限於實體計算裝置,而是亦可係關於針對能量節省及效率之軟體最佳化。如在以下描述中可變得顯而易見,本文所述的方法、設備及系統(不管參考硬體、韌體、軟體還是其組合)之實施例可認為對於與效能考慮因素平衡的「綠色技術」未來係至關重要的。
隨著計算系統進展,計算系統中之組件正變得更複雜。用於組件之間的耦接及通訊的互連架構的複雜度亦已增大以確保滿足最佳組件操作之頻寬需求。此外,不同市場分割需要不同態樣之互連架構以適宜於各別市場。舉例而言,伺服器需要較高效能,而行動生態系統有時能夠犧牲總體效能以實現電力節省。然而,提供最高可能效能與最大電力節省為大部分網狀架構之單一目的。另外,多種不同互連可潛在地得益於本文所述的標的物。
周邊組件互連(PCI)高速(PCIe)互連網狀架構及快速路徑互連(QPI)網狀架構以及其他實例可根據本文所述的一或多個原理以及其他實例而潛在地得到改良。舉例而言,PCIe之主要目標為致使來自不同供應商之組件及裝置能夠在開放式架構中互操作,從而跨越多個市場分割;用戶端(桌上型電腦及行動裝置)、伺服器(標準及企業)以及嵌入式及通訊裝置。PCI高速為針對廣泛之多種將來計算及通訊平台定義的高效能之通用I/O互連。諸如其使用模型、載入儲存架構及軟體介面的一些PCI屬性已經由其修訂版得以保持,而先前並行匯流排實施已由高度可調式之充分串列介面來替換。PCI高速之最近版本利用點對點互連、基於開關之技術及封包化協定的進展來遞送新層級的效能及特徵。電力管理、服務品質(QoS)、熱插/熱拔支援、資料完整性及錯誤處置為由PCI高速支援之高階特徵中的一些。儘管本文之主要論述參考新的高效能互連(HPI)架構,但本文所述的本發明之態樣可適用於其他互連架構,諸如PCIe依從性架構、QPI依從性架構、MIPI依從性架構、高效能架構或其他已知互連架構。
參看圖1,例示由互連一組組件之點對點連結構成的網狀架構的實施例。系統100包括耦接至控制器集線器115之處理器105及系統記憶體110。處理器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、監視器、印表機、滑鼠、鍵盤、路由器、攜帶型儲存裝置、火線裝置、通用串列匯流排(USB)裝置、掃描儀,及其他輸入/輸出裝置。常常,在PCIe中,諸如裝置之俗名(vernacular)被稱作端點。儘管未具體展示,但裝置125可包括橋(例如,PCIe至PCI/PCI-X橋)以支援舊版或其他版本的裝置或此等裝置支援的互連網狀架構。
圖形加速器130亦可經由串列連結132耦接至控制器集線器115。在一個實施例中,圖形加速器130耦接至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及非嗅探欄位318。此處,優先級子欄位312可藉由起始程序修改以指派優先級給異動。保留屬性欄位314保持保留以供將來使用或供應商定義的使用。使用優先級或安全性屬性的可能使用模型可使用保留屬性欄位來實施。
在此實例中,定序屬性欄位316用以供應輸送定序之類型的可選資訊,該定序類型可修改預設定序規則。根據一個實施例實施,為「0」之定序屬性指明預設定序規則應用,其中為「1」之定序屬性指明鬆懈定序,其中寫入可傳遞相同方向上的寫入,且讀取完成可傳遞相同方向上的寫入。嗅探屬性欄位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向傳輸器供應符號,傳輸器使該等符號串列化並傳輸至外部裝置上。接收器自外部裝置被供應有串列化符號,且將所接收信號變換成位元串流。位元串流經解串列化且供應至邏輯子區塊221。在一個實例實施例中,在傳輸/接收10位元符號的情況下使用8b/10b傳輸碼。此處,特殊符號用以由訊框223向封包加訊框。此外,在一個實例中,接收器亦提供自傳入串列串流復原的符號時脈。
如上所述,儘管異動層205、連結層210及實體層220係參考協定堆疊之特定實施例(諸如PCIe協定堆疊)而論述,但分層協定堆疊不限於此。實際上,任何分層協定可被包括/實施且採用本文中論述的特徵。作為一實例,表示為分層協定之埠/介面可包括:(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中所例示的該等層中之至少一些可為可選的。每一層處理其自身的粒度層級或資訊量(具有封包630之協定層605a、605b,具有微片635之連結層610a、610b,及具有菲特(phit)640之實體層605a、605b)。注意,在一些實施例例中,封包可基於實施而包括部分微片、單一微片或多個微片。
作為第一實例,菲特640之寬度包括連結寬度至位元之1對1映射(例如,20位元連結寬度包括20位元之菲特等)。微片可具有較大大小,諸如184、192或200位元。注意,若菲特640為20位元寬且微片635之大小為184位元,則傳輸一個微片635將耗用分率數目個菲特640(例如,20位元下之9.2個菲特將傳輸184位元之微片635,或20位元下之9.6個菲特將傳輸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可支援多個訊息,諸如請求、嗅探、回應、回寫、非相干資料,以及其他實例。
實體層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以供提供至多三個(或三個以上)虛擬網路(VN)之使用--在一個實例中,兩個無死鎖VN:界定於每一虛擬網路中的具有若干訊息類別之VN0及VN1。共享自適應性虛擬網路(VNA)可在連結層中界定,但此自適應性網路在選路概念中不可直接暴露,此係因為在其他特徵及實例中,每一訊息等級及虛擬網路可具有專用資源且保證向前發展。
在一個實施例中,HPI可包括相干協定層620a、620b以支援代理程式自記憶體快取資料行。希望快取記憶 體資料之代理程式可使用相干協定讀取資料行以載入至其快取記憶體中。希望修改快取記憶體中之資料行的代理程式可使用相干協定在修改資料之前獲取資料行之所有權。在修改資料行之後,代理程式可遵循將資料行保持在其快取記憶體中的協定要求,直至代理程式將資料行寫回至記憶體或將資料行包括於對外部請求之回應中。最後,代理程式可滿足外部請求以使其快取記憶體中之資料行失效。協定藉由規定所有快取代理程式可遵循之規則來確保資料之一致性。協定亦為不具快取記憶體之代理程式提供方法以相干地讀取及寫入記憶體資料。
可強制兩個條件以支援利用HPI相干協定之異動。首先,協定可(作為一實例)基於每個位址而維持代理程式之快取記憶體中之資料中及彼等資料與記憶體中之資料之間的資料一致性。正式地,資料一致性可指代理程式之快取記憶體中的每一有效資料行,其表示資料之最新值,且相干協定封包中所傳輸之資料可表示當其經發送時的資料之最新值。當資料之有效複本不存在於快取記憶體中或傳輸中時,協定可保證資料之最新值駐留於記憶體中。其次,協定可為請求提供定義明確的承諾點。針對讀取之承諾點可指示何時資料可使用;且針對寫入,承諾點可指示何時寫入資料全域可觀測且將藉由後續讀取載入。協定可支援針對連貫記憶體空間中之可快取及不可快取(UC)請求的此等承諾點。
在一些實施中,HPI可利用嵌入時脈。時脈信號 可嵌入於使用互連傳輸之資料中。利用嵌入於資料中之時脈信號,可省略相異的且專用的時脈單工通道。舉例而言,此情形可以有用,此係因為該情形可允許裝置之更多接腳專用於資料傳送,在用於接腳之空間非常珍貴的系統中尤其如此。
連結可在互連之任一側面上的兩個代理程式之間建立。發送資料之代理程式可為本端代理程式,且接收資料之代理程式可為遠端代理程式。狀態機可由兩個代理程式使用以管理連結之各種態樣。在一個實施例中,實體層資料路徑可將片自連結層傳輸至電氣前端。在一個實施中,控制路徑包括狀態機(亦被稱作連結訓練狀態機或類似者)。狀態機之動作及自狀態之退出可取決於內部信號、計時器、外部信號或其他資訊。實際上,狀態中之一些(諸如幾個初始化狀態)可具有計時器以提供用以退出狀態之逾時值。注意,在一些實施例中,偵測指偵測單工通道之兩個分支上的事件;但未必同時偵測。然而,在其他實施例中,偵測係指藉由參考之代理程式偵測事件。作為一個實例,解彈跳係指經受信號之確證。在一個實施例中,HPI支援非功能單工通道情況下的操作。此處,可在特定狀態下丟棄單工通道。
狀態機中所定義之狀態可包括重設狀態、初始化狀態及可操作狀態,以及其他類別及子類別。在一個實例中,一些初始化狀態可具有用以在逾時時退出該狀態(實質上歸因於未能在該狀態中取得進展而中止)的輔助計時 器。中止可包括更新諸如狀態暫存器之暫存器。一些狀態亦可具有用以對該狀態中的主要功能進行計時的主要計時器。可定義其他狀態,致使內部或外部信號(諸如交握協定)驅動自該狀態至另一狀態之轉變,以及其他實例。
狀態機亦可支援經由單個步驟進行偵錯,凍結在初始化中止及測試器之使用上。此處,可推遲/保留狀態退出,直至偵錯軟體就緒。在某一情況下,可推遲/保留退出,直至二次逾時。在一個實施例中,動作及退出可基於訓練序列之交換。在一個實施例中,連結狀態機將在本端代理程式時脈網域中執行,且自一個狀態至下一狀態之轉變將與傳輸器訓練序列邊界重合。可利用狀態暫存器來反映當前狀態。
圖7例示在HPI之一個實例實施中由代理程式使用的狀態機之至少一部分的表示。應瞭解,包括於圖7之狀態表格中的狀態包括可能狀態之非窮盡性清單。舉例而言,省略一些轉變以簡化該圖。又,可組合、分裂或省略一些狀態,同時可添加其他狀態。此等狀態可包括:
事件重設狀態:在暖或冷重設事件上進入。復原預設值。初始化計數器(例如,同步計數器)。可退出至另一狀態,諸如另一重設狀態。
定時重設狀態:用於頻帶內重設之定時狀態。可驅動預定義電氣有序集合(EOS),以致使遠端接收器能夠偵測EOS且亦進入定時重設。接收器具有保留電氣設定之單工通道。可退出至代理程式以校準重設狀態。
校準重設狀態:在不用信號表示於單工通道上(例如,接收器校準狀態)的情況下進行校準,或關斷驅動器。可為基於計時器的處於該狀態中的預定時間量。可設定操作速度。在未啟用埠時可充當等待狀態。可包括最小駐留時間。接收器調節或差調可基於設計而出現。在逾時及/或完成校準之後可退出至接收器偵測狀態。
接收器偵測狀態:偵測單工通道上的接收器之存在。可期待接收器終止(例如,接收器下拉插入)。在設定指定值或在不設定另一指定值時可退出至校準重設狀態。在偵測到接收器或達到逾時的情況下可退出至傳輸器校準狀態。
傳輸器校準狀態:用於傳輸器校準。可為經分配用於傳輸器校準的定時狀態。可包括在單工通道上的傳信。可持續驅動EOS,諸如電閒置退出有序集合(或EIEIOS)。在完成校準或在計時器過期時可退出至依從性狀態。在計數器已過期或已發生二次逾時的情況下可退出至傳輸器偵測狀態。
傳輸器偵測狀態:認定有效傳信。可為代理程式完成動作時的交握狀態,且基於遠端代理程式傳信而退出至下一狀態。接收器可認定自傳輸器之有效傳信。在一個實施例中,接收器期待喚醒偵測,且若在一或多個單工通道上解彈跳,則期待在其他單工通道上的喚醒偵測。傳輸器驅動偵測信號。可回應於對於所有單工通道完成解彈跳及/或逾時或在所有單工通道上的解彈跳未完成且存在逾 時的情況下退出至輪詢狀態。此處,一或多個監視器單工通道可保持喚醒以對喚醒信號進行解彈跳。且若解彈跳,則其他單工通道潛在地被解彈跳。此可在低電力狀態下致能電力節省。
輪詢狀態:接收器調適,鎖定在位元上(例如,藉由初始化漂移緩衝器),鎖定在位元組上(例如,藉由識別符號邊界),且鎖定在訓練序列邊界上(例如,藉由鎖定至電氣有序集合(EOS)及/或訓練序列標頭)。接著可對單工通道進行去偏斜。亦可完成交握以退出輪詢至若干潛在狀態中的一者。舉例而言,可引起(藉由代理程式)退出至連結寬度狀態、依從性狀態、回送標記狀態或重設狀態中的任一者。交握可包括完成各種所定義之接收器動作或條件及發送應答訊息(ACK)以觸發退出至對應於完成的動作集合及ACK的狀態。對於輪詢去偏斜,遠端傳輸器處的單工通道至單工通道偏斜可在最高速度下最大為第一長度且在緩慢速度下最大為第二長度。可在緩慢模式以及操作模式下執行去偏斜。接收器可具有特定最大值以去除單工通道至單工通道偏斜,諸如8、16或32個間隔之偏斜。在一些實施中,接收器動作亦可包括潛時固定。在一個實施例中,可在有效單工通道映射成功去偏斜時完成接收器動作。在一個實例中,在接收到具有應答的數個連續訓練序列標頭且在接收器已完成其動作之後傳輸具有應答的數個訓練序列時,可達成成功交握。
依從性狀態:自輪詢狀態進入。代理程式可致使 依從性主控器或受控器用於驗證目的。裝置(充當主控器)可將依從性型樣發送至另一裝置(受控器),且受控器可在依據其本端時脈(例如,不撤銷任何極性反轉或單工通道反相)對型樣進行重定時之後回送該型樣。依從性型樣可用以表徵在單工通道之某一子集上的類比前端在回送不起作用或不合需要時之操作。舉例而言,進入回送可基於成功位元組鎖定、TS鎖定、去偏斜、潛時測試及依賴於若干件數位邏輯之恰當行使功能的其他測試而進行預調節。在實現位元鎖定的情況下,可進入依從性,且可利用依從性用於抖動或雜訊研究、偵錯、探究連結,以及其他調節。換言之,在輪詢之結果並不允許直接進入回送的情況下,依從性可充當輪詢之替代退出。依從性狀態可藉由來自主控器的傳輸器驅動超序列。接收器期待在監視單工通道上的喚醒、對該喚醒進行解彈跳,丟棄不良單工通道,調適以及位元鎖定等。受控器傳輸器可驅動依從性型樣,直至其接收器動作完成。接著,對回送進行再定時而非去偏斜。受控器接收器進行類似的監視及解彈跳等動作。可退出至重設狀態,諸如定時重設,或退出至回送型樣狀態以開始測試,以及其他實例。在退出至回送型樣狀態的情況下,可將回送型樣狀態發送(例如,藉由軟體控制器)至主控器以嘗試更多專用型樣。
代理程式回送標記狀態:回送標記為代理程式狀態但不同於其他代理程式狀態主控器及受控器動作,且退出可不同。回送受控器可撤銷任何極性反轉及/或單工通道 反相,但可不對回送之位元進行解擾或重加擾。應答交換可能不適用於受控器,此係由於其正被回送。由於受控器可在於符號邊界上回送之前去偏斜,因此可不迫使主控器重新鎖定位元組或重新去偏斜,但主控器可重新鎖定訓練序列以避免鎖定至一些假訊。進行此操作之方式可包括LFSR之重新接種,比較TS及/或EIEOS,或此等之某一組合。SDS之結束標記回送設定之結束及型樣產生、檢查及計數之開始。
代理程式回送型樣狀態(或區塊連結狀態):自回送標記狀態或依從性狀態進入。在回送型樣狀態中,替代控制型樣,主控器傳輸器可發送額外專用型樣以補充在依從性或回送型樣狀態中回送的彼等型樣。接收器可在回送型樣中接收專用型樣,且檢查所接收型樣中的錯誤。對於傳輸器調適,兩個代理程式皆可為主控器。對於預定週期,傳輸器可發送型樣,且遠端接收器可比較此型樣且判定所接收型樣的記錄於諸如暫存器之儲存元件中的優值或量度。比較方法及量度可取決於設計(例如,具有抖動注入之BER)。在該週期結束時,兩個代理程式皆可退出至返回頻道之重設以檢驗該量度且設定傳輸器調適之下一迭代。
連結寬度狀態:代理程式與至遠端傳輸器之最後單工通道映射通訊。接收器接收資訊並解碼。接收器可將經組配單工通道映射記錄於在第二結構中的先前單工通道映射值之檢查點之後的結構中。接收器亦可回應以應答(「ACK」)。可起始頻帶內重設。作為一個實例,第一狀態 起始頻帶內重設。在一個實施例中,回應於ACK而執行至諸如微片組配狀態之下一狀態的退出。另外,在進入低電力狀態之前,若喚醒偵測信號出現頻率下降至低於指定值(例如,每隔一定數目個單位間隔(UI),諸如4KUI,出現1次),則亦可產生重設信號。接收器可保留當前及先前單工通道映射。傳輸器可基於具有不同值之訓練序列而使用不同單工通道群組。在一些實施例中,單工通道映射可不修改一些狀態暫存器。
微片鎖定組配狀態:由傳輸器進入,但在傳輸器及接收器兩者皆已退出至封鎖連結狀態或其他連結狀態時,考慮退出該狀態(亦即,不考慮二次逾時)。在一個實施例中,傳輸器退出至連結狀態包括在接收到行星對準信號之後開始資料序列(SDS)及訓練序列(TS)邊界。此處,接收器退出可基於自遠端傳輸器接收到SDS。此狀態可為自代理程式至連結狀態之橋。接收器識別SDS。若在初始化解擾器之後接收到SDS,則接收器可退出至封鎖連結狀態(BLS)(或控制窗)。若逾時發生,則可退出至重設狀態。傳輸器藉由組配信號驅動單工通道。傳輸器可基於條件或逾時而退出至重設、BLS或其他狀態。
傳輸連結狀態:連結狀態。將微片發送至遠端代理程式。可自封鎖連結狀態進入,且可基於一事件(諸如逾時)返回至封鎖連結狀態。傳輸器傳輸微片。接收器接收微片。亦可退出至低功率連結狀態。在一些實施中,傳輸連結狀態(TLS)可被稱作L0狀態。
封鎖連結狀態:連結狀態。傳輸器與接收器以統一方式操作。可為定時狀態,在定時狀態期間,連結層微片被釋放,同時實體層資訊被傳達至遠端代理程式。可退出至低功率連結狀態(或基於設計之其他連結狀態)。在一個實施例中,封鎖連結狀態(BLS)週期性地出現。週期被稱作BLS間隔且可定時,且在緩慢速度與操作速度之間可不同。注意,連結層可週期性地封鎖以不能發送微片,以致使一定長度之實體層控制序列可諸如在傳輸連結狀態或部分寬度傳輸連結狀態期間發送。在一些實施中,封鎖連結狀態(BLS)可被稱作L0控制或L0c狀態。
部分寬度傳輸連結狀態:連結狀態。可藉由進入部分寬度狀態而節省電力。在一個實施例中,不對稱部分寬度指兩方向連結之每一方向具有不同寬度,在一些設計中可支援該情形。圖9之實例中展示諸如傳輸器之引發器發送部分寬度指示以進入部分寬度傳輸連結狀態的實例。此處,在於具有第一寬度的連結上傳輸以將連結轉變為以第二新寬度進行傳輸的同時發送部分寬度指示。失配可導致重設。注意,速度可能不更改,但寬度可能更改。因此,微片可能在不同寬度下發送。可在邏輯上類似於傳輸連結狀態;然而,由於存在較小寬度,傳輸微片可能花費較長時間。可基於某些所接收及所發送的訊息退出至諸如低電力連結狀態之其他連結狀態或基於其他事件退出部分寬度傳輸連結狀態或連結封鎖狀態。在一個實施例中,傳輸器埠可以交錯方式關斷閒置單工通道以提供更好地信號完整 性(亦即,雜訊減低),如時序圖中所示。此處,可在連結寬度改變的週期期間利用不能夠重新嘗試的微片,諸如空值微片。對應接收器可丟棄此等空值微片且以交錯方式關閉閒置單工通道,以及將當前及先前單工通道地圖記錄在一或多個結構中。注意,狀態及相關聯狀態暫存器可保持未更改。在一些實施中,部分寬度傳輸連結狀態可被稱作部分L0或L0p狀態。
退出部分寬度傳輸連結狀態:退出部分寬度狀態。在一些實施中,可或可不使用封鎖連結狀態。在一個實施例中,傳輸器藉由在閒置單工通道上發送部分寬度退出型樣以對其進行訓練及去偏斜來起始退出。作為一個實例,退出型樣以EIEOS(其經偵測且經解彈跳至單工通道準備開始至完全傳輸連結狀態之進入的信號)開始,且可以閒置單工通道上之SDS或快速訓練序列(FTS)結束。退出序列期間之任何失敗(接收器動作,諸如抗扭斜在逾時之前未完成)停止至連結層之微片傳送,且確證重設,其藉由在下一個封鎖連結狀態出現時重設連結來處置。SDS亦可將單工通道上之擾頻器/解擾器初始化至適當值。
低功率連結狀態:為較低功率狀態。在一個實施例中,低功率連結狀態為比部分寬度連結狀態低的功率,此係因為此實施例中之傳信在所有單工通道上且在兩個方向上停止。傳輸器可將封鎖連結狀態用於請求低功率連結狀態。此處,接收器可對請求進行解碼且以ACK或NAK回應;否則,可觸發重設。在一些實施中,低功率連結狀態 可被稱作L1狀態。
在一些實施中,舉例而言,在已經完成狀態之狀態動作(諸如某些校準及組配)時,可促進狀態轉變以允許略過狀態。連結之先前狀態結果及組配可儲存且再用於連結之後續初始化及組配中。並非重複此等組配及狀態動作,可略過對應狀態。然而,實施狀態繞過之傳統系統通常實施複雜設計及昂貴的驗證逃避。並非使用傳統略過,在一個實例中,HPI在諸如不需要重複狀態動作之狀態的某些狀態中可利用短計時器。此可潛在地允許更統一及同步的狀態機轉變以及其他潛在優勢。
在一個實例中,基於軟體之控制器(例如,經由用於實體層之外部控制點)可對於一或多個特定狀態啟用短計時器。舉例而言,對於已經執行且儲存動作的狀態,狀態可為短時的以促進自該狀態至下一狀態之快速退出。然而,若先前狀態動作失敗或不可在短計時器持續時間內應用,則可執行狀態退出。另外,舉例而言,在應再次執行狀態動作時,控制器可停用短計時器。可對於每一各別狀態設定長或預設的計時器。若該狀態處的組配動作不可在長計時器內完成,則可發生狀態退出。長計時器可設定為合理的持續時間以便允許狀態動作之完成。相比之下,短計時器可顯著較短,從而在一些情況下致使在不返回參考先前執行的狀態動作的情況下不可能執行狀態動作,以及其他實例。
在一些情況下,在連結之初始化(或重新初始化) 期間,隨著代理程式經由狀態機朝向操作連結狀態進展,致使狀態重設(例如,至重設或其他狀態)之一或多個失敗或狀態退出可能出現。實際上,連結之初始化可經由一或多個狀態循環而不完成初始化且進入連結狀態。在一個實例中,可維護對於連結之初始化內的狀態轉變之無益環路的數目之計數。舉例而言,每當初始化返回至重設狀態而不達到連結狀態時,計數器可遞增。一旦連結成功地進入連結狀態,即可重設用於該連結之計數器。可藉由代理程式在連結之兩側上維護此等計數器。另外,可例如藉由基於軟體之控制器利用一或多個外部控制點設定臨限值。在無益環路之計數滿足(或超過)所定義臨限值時,可暫停連結之初始化(例如,設定且保留在重設狀態或重設狀態之前)。在一些實施中,為了重新開始初始化並自暫停狀態釋放初始化,基於軟體之控制器可觸發連結之重新啟動或重新初始化。在一些情況下,基於軟體之工具可分析暫停的初始化之性質且執行診斷,設定暫存器值,且執行其他操作以便防止初始化之進一步循環。實際上,在一些實施中,控制器可結合重新開始暫停連結初始化而設定較高計數器臨限值或甚至更動計數器,以及其他實例。
在HPI之一些實施中,可定義超序列,每一超序列對應於各別狀態或至/自各別狀態之進入/退出。超序列可包括資料集及符號之重複序列。在一些情況下,序列可重複,直至完成狀態或狀態轉變或對應事件之通訊,以及其他實例。在一些情況下,超序列之重複序列可根據所界定 頻率(諸如所界定數目個單位間隔(UI))而重複。單位間隔(UI)可對應於用於在連結或系統之單工通道上傳輸單一位元之時間間隔。在一些實施中,重複序列可以電氣有序集合(EOS)開始。因此,可預期EOS之例項根據預定義頻率重複。此等有序集合可實施為可以十六進位格式表示的所定義16位元組程式碼,以及其他實例。在一個實例中,超序列之EOS可為EIEIOS。在一個實例中,EIEOS可類似於低頻時脈信號(例如,預定義數目個重複FF00或FFF000十六進位符號,等)。預定義資料集可遵循EOS,諸如預定義數目個訓練序列或其他資料。此等超序列可用於狀態轉變中,包括連結狀態轉變以及初始化,以及其他實例。
在互連之一些實施中,諸如在QPI中,可諸如在重設或初始化連結時引起串列資料連結之終止。此方法可能在連結之初始化中引入複雜度及時間。在HPI之一些實施中,可維持連結之終止,包括在連結之重設或重新初始化期間。另外,HPI可准許裝置之熱插入。在經由熱插入或以其它方式引入另一裝置時,添加新遠端代理程式之單工通道之電壓特性將改變。本端代理程式可感測單工通道電壓之此等改變以偵測遠端代理程式之存在且提示連結之初始化。可在狀態機中定義狀態機狀態及計時器以協調連結之偵測、組配及初始化而不終止。
在一個實施中,HPI可藉由接收用於傳入信令之代理程式而經由篩選單工通道來支援頻帶內重設時的重新初始化而不改變終止值。該信令可用以識別良好單工通 道。作為一實例,可針對待由傳輸器裝置發送的一組預定義信號中的任一者篩選單工通道以促進連結之發現及組配。在一個實例中,可對應於一或多個初始化或重新初始化任務而定義超序列。預定義序列可包括電閒置退出有序集合(EIEOS)繼之以額外序列資料。在一些情況下,在單工通道之任一側上的每一裝置變得在作用中,該裝置可開始發送對應於特定初始化狀態等的超序列。在一個實施例中,可支援兩個類型之接腳重設:通電(或「冷」)重設及暖重設。由軟體起始或發端(在實體層或另一層中)於一個代理程式上之重設可在頻帶內傳達至其他代理程式。然而,歸因於嵌入式時脈之使用,可藉由使用諸如特定電氣有序集合或EIOS之有序集合通訊至另一代理程式而處置頻帶內重設。
可在初始化期間發送有序集合,且可在初始化之後發送PHY控制序列(或「封鎖連結狀態」)。區塊連結狀態可封鎖連結層以使其不能發送微片。作為另一實例,可封鎖連結層訊務以發送可在接收器處捨棄的少數空值微片。
如上文所介紹,在一個實施例中,可最初以緩慢速度完成初始化,隨後以快速速度進行初始化。緩慢速度下的初始化使用預設值用於暫存器及計時器。軟體接著使用緩慢速度連結來設定暫存器、計時器及電氣參數,且清除校準信號量以便能進行快速速度初始化。作為一個實例,初始化可由諸如重設、偵測、輪詢、依從性及組配以及可能的其他者之狀態或任務組成。
在一個實例中,封鎖控制序列(亦即封鎖連結狀態(BLS)或L0c狀態)之連結層可包括定時狀態,其間保留連結層微片同時將PHY資訊傳達至遠端代理程式。此處,傳輸器及接收器可開始區塊控制序列計時器。且在計時器過期後,傳輸器及接收器可退出封鎖狀態,且可採用其他動作,諸如退出至重設、退出至不同連結狀態(或其他狀態),包括允許跨越連結發送微片之狀態。
在一個實施例中,連結訓練可經提供且包括發送加擾訓練序列、有序集合及控制序列中之一或多者(諸如結合所定義的超序列)。訓練序列符號可包括以下各者中之一或多者:標頭、保留部分、目標潛時、對數目、實體單工通道映射程式碼參考單工通道或一群單工通道,及初始化狀態。在一個實施例中,可伴隨ACK或NAK發送標頭,以及其他實例。作為一實例,訓練序列可作為超序列之部分而發送且可加擾。
在一個實施例中,有序集合及控制序列並不加擾或交錯,且在所有單工通道上相同地、同時且完全傳輸。有序集合之有效接收可包括檢查有序集合之至少一部分(或針對部分有序集合檢查整個有序集合)。有序集合可包括電氣有序集合(EOS),諸如電氣閒置有序集合(EIOS)或EIEOS。超序列可包括資料序列(SDS)或快速訓練序列(FTS)之開始。此等集合及控制超序列可預定義,且可具有任何型樣或十六進位表示以及任何長度。舉例而言,有序集合及超序列可為8位元組、16位元組或32位元組等之長度(作 為一實例),可額外用於在退出部分寬度傳輸連結狀態期間的快速位元鎖定。注意,FTS定義可根據單工通道,且可利用FTS之旋轉版本。
在一個實施例中,超序列可包括將諸如EIEOS之EOS插入於訓練序列串流中。在傳信開始時,在一個實施中,單工通道以交錯方式通電。然而,此可能導致在一些單工通道上在接收器處看到初始超序列被截斷。然而,超序列可以短間隔(例如,約一千單位間隔(或~1KUI))加以重複。訓練超序列可額外用於去偏斜、組配中之一或多者且用於傳達初始化目標、單工通道映射,等。EIEOS可用於以下各者中之一或多者:將單工通道自非作用中轉變至作用中狀態,篩選良好單工通道,識別符號及TS邊界,以及其他實例。
在一個實施例中,時脈可嵌入於資料中,因此不存在單獨時脈單工通道。經由單工通道發送之微片可加擾以促進時脈復原。作為一個實例,接收器時脈復原單元可將取樣時脈遞送至接收器(亦即,接收器自該資料復原時脈,且使用該時脈來取樣傳入資料)。在一些實施中,接收器持續調適傳入位元串流。藉由嵌入時脈,可潛在地減小腳位。然而,將時脈嵌入於頻帶內資料中可能更改接近頻帶內重設之方式。在一個實施例中,可在初始化之後利用封鎖連結狀態(BLS)。又,可在初始化期間利用電氣有序集合超序列以促進重設(例如,如上文所描述),以及其他考慮因素。嵌入式時脈在連結上之裝置之間可為共同的,且可 在連結之校準及組配期間設定共同操作時脈。舉例而言,HPI連結可參考與漂移緩衝器共同之時脈。此等實施可實現比用於非共同參考時脈中之彈性緩衝器低之潛時,以及其他潛在優勢。另外,參考時脈分佈區段可匹配至指定限制內。
在一些實施中,HPI可支援寬度在一些情況下不為標稱單工通道寬度之倍數的微片(例如,作為純粹說明性實例,使用192位元之微片寬度及20個單工通道)。實際上,在准許部分寬度傳輸狀態之實施中,傳輸微片之單工通道之數目可變動,甚至在連結之壽命期間亦如此。舉例而言,在一些情況下,微片寬度在一個時刻可為作用中單工通道之數目的倍數,但在另一時刻不為作用中單工通道之數目的倍數(例如,隨著連結改變狀態及單工通道寬度)。在單工通道之數目不為當前單工通道寬度之倍數(例如,在20個單工通道上的192位元微片寬度之實例)的情況下,在一些實施例中,連續微片可經組配以在單工通道上重疊地傳輸,以藉此保留頻寬(例如,傳輸重疊在20個單工通道上的五個連續192位元微片)。
圖8例示重疊在數個單工通道上的連續微片之傳輸之表示。舉例而言,圖8展示經由20單工通道連結(單工通道由列0至19表示)發送的五個重疊192位元微片之表示。圖8之每一單元格表示包括於經由4UI跨度發送的微片中之各別「半位元組」或四個位元之分組(例如,位元4n+3:4n)。舉例而言,192位元微片可劃分成48個四位元半 位元組。在一個實例中,半位元組0包括位元0至3,半位元組1包括位元4至7,等。該等半位元組中之位元可發送以便重疊或交錯(例如,「摻和」),致使微片之較高優先級欄位較早呈現,保持錯誤偵測特性(例如,CRC),以及其他考慮因素。實際上,摻和方案亦可致使能夠無序地發送一些半位元組(及其各別位元)(例如,如在圖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。在UI 8至11中,第一微片僅剩餘八個半位元組。第一微片之此等最後半位元組(亦即,10、15、20、25、30、40、45)可與第二微片之第一半位元組(亦即,半位元組2、4、7、9、12、16、20、25、30、35、40、45)同時發送,致使該等第一及第二微片重疊或摻和。使用此技術,在本發明實例中,可在48UI中發送五個完整微片,其中經由分率9.6UI週期發送每一微片。
在一些情況下,摻和可導致週期性「清潔」微片邊界。舉例而言,在圖8之實例中,開始的5微片邊界(第一微片之頂部線)亦可稱為清潔微片邊界,此係因為所有單工 通道正傳輸來自同一微片的開始半位元組。代理程式連結層邏輯可經組配以識別單工通道之摻和,且可自經摻和位元重構微片。此外,實體層邏輯可包括用於識別何時及如何基於當時正使用的單工通道之數目摻和微片資料之串流的功能性。實際上,在自一個連結寬度狀態轉變至另一連結寬度狀態時,代理程式可組配本身以識別將如何使用資料串流之摻和。
如上文所指出,連結可在單工通道寬度之間轉變,在一些情況下在原始或完全寬度下操作,且稍後轉變至(及自)利用較少單工通道之部分寬度。在一些情況下,微片之所界定寬度可由單工通道之數目整除。舉例而言,圖9之實例例示此實例,其中經由8單工通道連結傳輸先前實例之192位元微片。如圖9中所表示,192位元微片之4位元半位元組可均勻分佈且經由8個單工通道傳輸(亦即,因為192為8之倍數)。實際上,在於8單工通道部分寬度下操作時,可經由24UI發送單一微片。另外,在圖9之實例中,每一微片邊界可為清潔的。儘管清潔微片邊界可簡化狀態轉變、判定及其他特徵,但允許摻和及偶然的鋸齒狀微片邊界可允許最小化連結上之頻寬浪費。
此外,儘管圖9之實例將單工通道0至7展示為在部分寬度狀態中保持在作用中之單工通道,但可潛在地使用8個單工通道之任何集合。亦應注意,以上實例僅出於例示的目的。微片可潛在地定義以具有任何寬度。連結亦可潛在地具有任何連結寬度。另外,可根據微片之格式及欄 位、系統中之較佳單工通道寬度以及其他考慮因素及實例靈活地建構系統之摻和方案。
HPI PHY邏輯層之操作可獨立於基礎傳輸媒體,其限制條件為潛時不導致連結層處潛時固定錯誤或逾時,以及其他考慮因素。
連結層
連結層可自協定層抽取實體層,處置兩個協定代理程式之間的流動控制,且將虛擬頻道服務提供至協定層(訊息類別)及選路層(虛擬網路)。在一些實施中,連結層可處理被稱為微片之固定資訊量。在一個實例中,微片可定義為在長度上為192位元。然而,可在不同變化中利用任何範圍之位元,諸如81至256(或更多)。諸如192個位元之大微片大小可包括格式、循環冗餘檢查(CRC)、錯誤校正碼(ECC)及其他特徵。舉例而言,較大微片長度亦可准許擴展CRC欄位(例如,至16位元)以處置較大微片酬載。菲特或用以傳送單一微片之單位間隔(UI)(例如,用以傳送單一位元或菲特之時間,等)之數目可隨連結寬度而變化。舉例而言,20單工通道或位元連結寬度可在9.6UI中傳送單一192位元微片,而8單工通道連結寬度在24UI中傳送相同微片,以及其他潛在實例。連結層貸記(crediting)及協定封包化亦可基於微片。
圖10例示用於8單工通道連結寬度之一般化微片的表示1000。表示1000之每一行可符號化連結單工通道且每一列符號化各別UI。在一些實施中,單一微片可細分為 兩個或兩個以上時槽。相異訊息或連結層標頭可包括於每一時槽中,從而允許在單一微片中發送對應於潛在不同異動的多個相異且在一些情況下獨立的訊息。另外,包括於單一微片之時槽中的多個訊息亦可以不同目的地節點為目的地,以及其他實例。舉例而言,圖10之實例例示具有三個時槽之微片格式。陰影部分可表示微片之包括於各別時槽中的部分。
在圖10之實例中,提供三個時槽,時槽0、1及2。時槽0可提供72位元之微片空間,其中的22個位元專用訊息標頭欄位且50個位元專用於訊息酬載空間。時槽1可具備70位元之微片空間,其中的20個位元專用於訊息標頭欄位且50個位元專用於訊息酬載空間。可優化訊息標頭欄位空間之間的差異以致使將能夠指定某些訊息類型供包括於槽0中(例如,在利用更多訊息標頭編碼的情況下)。可提供佔據的空間實質上比時槽0及1少的第三時槽(時槽2),在此情況下利用18位元之微片空間。可優化時槽2以處置諸如應答、信用返回等之不利用較大訊息酬載的彼等訊息。此外,可提供浮動酬載欄位,其允許替代地應用額外11個位元以補充時槽0或時槽1之酬載欄位。
繼續圖10之特定實例,其他欄位對於微片可為全域的(亦即,跨越微片而應用,而非應用於特定時槽)。舉例而言,可連同4位元微片控制欄位提供標頭位元,該微片控制欄位可用以指定諸如微片之虛擬網路之資訊、識別將如何對微片進行編碼,以及其他實例。此外,可諸如經由16 位元循環CRC欄位(以及其他潛在實例)提供錯誤控制功能性。
可定義微片格式以便最佳化連結層上的訊息之輸送量。一些傳統協定利用無時槽的較小微片。舉例而言,在QPI中,利用80位元微片。儘管較大(例如,192位元微片)之微片輸送量可能較低,但可藉由最佳化微片資料之使用而增大訊息或封包輸送量。舉例而言,在QPI之一些實施中,利用整個80位元微片空間,而不管訊息大小或類型。藉由將較大微片細分為預定長度之時槽及欄位,可最佳化192微片長度,從而甚至在可用時槽中之一或多者有時未使用的情況下亦實現較高效率。實際上,可假定連結層訊務包括許多不同類型之訊息及訊務,包括具有不同標頭長度及欄位的訊息及封包。在微片中定義的時槽之各別長度及組織可經定義以便與各種訊息之統計或預期頻率及此等訊息之需要相對應。舉例而言,可針對每一小時槽定義兩個較大時槽以使用此等較大訊息類型及標頭長度適應傳訊之預期統計頻率,以及其他實例。另外,亦可提供靈活性以進一步適應不同訊務,諸如經由浮動酬載欄位,如在圖10之實例中。在一些情況下,微片格式可為固定的,包括專用於微片中的特定時槽之位元。
在圖10之實例中,可大體針對微片提供「Hdr」欄位,且其表示微片之標頭指示。在一些情況下,Hdr欄位可指示微片為標頭微片還是資料微片。在資料微片中,微片可仍保持有時槽,但忽略或以酬載資料替換某些欄位之 使用。在一些情況下,資料欄位可包括作業碼及酬載資料。在標頭微片之情況下,可提供多種標頭欄位。在圖10之實例中,可針對每一時槽提供「Oc」欄位,Oc欄位表示作業碼。類似地,一或多個時槽可具有表示待包括於該時槽中的對應封包之訊息類型的對應「msg」欄位(假定該時槽經設計以處置此等封包類型,等)。「DNID」欄位可表示目的地節點ID,「TID」欄位可表示異動或追蹤器ID,「RHTID」欄位可表示請求者節點ID或住宅追蹤器ID,以及其他潛在欄位。另外,一或多個時槽可具備酬載欄位。此外,CRC欄位可包括於微片內以提供用於該微片之CRC值,以及其他實例。
在一些實施中,連結寬度可在連結之壽命期間變化。舉例而言,實體層可在連結寬度狀態之間轉變,諸如至及自完全或原始單工通道寬度及不同或部分單工通道寬度。舉例而言,在一些實施中,可初始化連結以經由20個單工通道傳送資料。稍後,連結可轉變至僅8個單工通道正在使用之部分寬度傳輸狀態,以及許多其他潛在實例。可例如結合由一或多個電力控制單元(PCU)控管之功率管理任務來利用此等單工通道寬度轉變,以及其他實例。
如上文所指出,連結寬度可影響微片輸送率。圖11為經由8單工通道連結發送實例192位元微片之表示,從而導致在24UI下之微片輸送量。另外,如圖11之實例中所示,在一些情況下可無序地發送微片之位元,以例如在傳送中較早地發送更多時間敏感欄位(例如,微片類型欄位(例 如,資料或標頭微片)、作業碼,等),保留或促進體現於微片中的特定錯誤偵測或其他功能性,以及其他實例。舉例而言,在圖11之實例中,在傳送之第一UI(亦即,UI0)期間在單工通道L7至L0上並行地發送位元191、167、143、119、95、71、47及23,而在微片傳送之第24(或最後)UI(亦即,UI23)期間發送位元168、144、120、96、72、48、24及0。應瞭解,在其他實施及實例中可利用其他定序方案、微片長度、單工通道寬度等。
在一些情況下,微片之長度可為作用中單工通道之數目的倍數。在此等情況下,可在所有作用中單工通道上均勻地傳輸微片,且微片之傳送可在清潔(亦即,非重疊)邊界處實質上同時結束。舉例而言,如圖8之表示中所示,可認為微片之位元係在4位元之連續分組或「半位元組」中傳輸。在此實例中,將經由8單工通道連結傳送192位元微片。因為192為8之倍數,因此可經由8單工通道連結在24UI中清潔地傳送整個微片。在其他情況下,微片寬度可能並非作用中單工通道之數目的倍數。舉例而言,圖9展示經由20個單工通道傳送實例192位元之另一表示。因為192不能被20整除,因此完整微片之傳送將需要非整數數目個間隔(例如,9.6UI)。在此等情況下,並非浪費在傳送之第10UI期間不利用的「額外」單工通道,可隨先前微片之最後位元一起傳送第二重疊微片。微片之此種重疊或摻和可導致鋸齒狀的微片邊界,且在一些實施中無序地發送微片位元。傳送所利用的型樣可經組配以允許在微片中較早地傳 送微片之更多時間敏感欄位,保留錯誤偵測及校正,以及其他考慮因素。邏輯可提供於實體及連結層中的一者或兩者中以根據此等型樣傳送微片位元且基於當前連結寬度在型樣之間動態地改變。可提供進一步邏輯以自此等摻和或有序的位元串流重排序及重建構微片,以及其他實例。
在一些實施中,微片的特徵可為標頭微片(例如,承載封包標頭資料)或資料微片(例如,承載封包酬載資料)。返回至圖10,可定義包括三個(3)相異時槽(例如,0、1及2),從而允許在單一微片中傳送至多三個標頭(例如,每一時槽中一個標頭)的微片格式。在圖10之實例中,提供三個時槽,時槽0、1及2。時槽0可提供72位元之微片空間,其中的22個位元專用於訊息標頭欄位且50個位元專用於訊息酬載空間。時槽1可具備70位元之微片空間,其中的20個位元專用於訊息標頭欄位且50個位元專用於訊息酬載空間。可最佳化訊息標頭欄位空間之間的差異以致使將能夠指定某些訊息類型供包括於時槽0中(例如,在利用更多訊息標頭編碼之處)。可提供佔據的空間實質上比時槽0及1少的第三時槽(時槽2),在此情況下利用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-微片。偵錯封包對於暴露藉由HPI連接的原本不可存取的裝置之內部狀態可為重要的。偵錯封包之內容 亦可為實施特定的。內容可包括如分支資訊(源及目標IP)、時間戳記、內部事件觸發事項之指示等內容。可例如藉由諸如邏輯分析器之監視裝置暴露資料以用於後處理及失敗分析。圖12中例示偵錯訊息類型之實例微片編碼。
在一些實施中,可利用諸如HPI之通用I/O互連(GPIO)架構的原理及協定來實施緩衝區記憶體介面及對應協定。舉例而言,上文概述之實體及連結層定義亦可實施於緩衝區記憶體協定中。實際上,用以支援GPIO協定之實體及連結層的邏輯可再用於支援緩衝區記憶體協定之介面處。緩衝區記憶體協定亦可共享訊息類別,諸如請求、回應及寫回訊息類別,以及其他實例。儘管可以與HPI(或另一GPIO協定)不同的方式解譯緩衝區記憶體協定訊息內的作業碼值,但可在緩衝區記憶體協定及其所建置於的GPIO互連兩者中利用相同通用封包格式。實際上,額外封包及微片欄位對於緩衝區記憶體協定及GPIO互連協定兩者可為唯一的。
在一些實施中,利用HPI之實體及連結層的緩衝區記憶體協定可為異動介面及協定。此可准許應一系列接收請求(例如,讀取請求)而無序地傳回資料。在一些實施中,緩衝區記憶體介面可用以將緩衝器晶片互連至CPU。在一個實施中,儘管一些協定跨越緩衝區記憶體匯流排發送諸如啟動、讀取、寫入及再新之DRAM命令,但在本文中論述的緩衝區記憶體協定之一些實施中,讀取或寫入命令可簡單地以位址發送。緩衝器晶片可接著解碼特定秩及 組,且將請求分解為DRAM命令。亦可支援推測性及需求讀取。
轉至圖13,展示簡化方塊圖1300,其例示包括藉由HPI依從性連結互連的CPU裝置1305、1310之計算系統的實例拓撲。每一CPU 1305、1310可同樣地使用對應緩衝區記憶體協定連結(「MemLink」)連接至一或多個各別緩衝器裝置1315a至1315l。如上文所指出,在一些實施中,緩衝區記憶體協定互連可基於GPIO協定,此係由於緩衝區記憶體協定之實體及連結層係基於GPIO協定(例如,HPI)之相同實體及連結層定義。儘管未在圖13中例示,但CPU 1305、1310可進一步連接至使用GPIO協定之一或多個下游裝置。
如圖13之實例中進一步展示,緩衝器裝置1315a至1315l可連接至記憶體裝置,諸如雙列直插式記憶體模組(DIMM)裝置。對應於每一緩衝器裝置之記憶體可視為在緩衝器裝置所連接至的CPU(例如,1305、1301)之本端。然而,其他裝置(包括其他CPU)可藉由其他通訊端使用GPIO協定依從性連結存取該記憶體。在一些實施中,執行緩衝區記憶體協定之埠僅可支援用於與記憶體通訊之命令且僅支援緩衝區記憶體協定(亦即,不支援GPIO協定及緩衝區記憶體協定)。此外,在一些實施中,GPIO互連協定可支援選路且指示此等資訊(例如,在其封包中),諸如請求及目的地節點識別符。另一方面,緩衝區記憶體協定可為不利用選路之點對點介面。因此,可在使用緩衝區記憶體介面發送之封包中免除用於GPIO協定中之一些欄位。實情為,可指 定供用於將位址解碼資訊主機攜載至緩衝器之欄位,以及其他實例。
在進一步實施中,緩衝器裝置1315a至1315l可支援兩層級記憶體拓撲,其中某一量之快速記憶體(例如,DRAM)充當用於較大、較慢記憶體(例如,非依電性記憶體)之快取記憶體。在一個此種實施中,緩衝器裝置1315a至1315l中之一或多者可使用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可自使用連結1415與緩衝器晶片1315通訊的CPU 1305(或另一主機)的主機控制器邏輯1440 抽取此等記憶體特定協定之細節。排程器1425可包括重排序及仲裁對請求之回應以便達成較高效能之邏輯。緩衝器晶片1315可額外提供諸如流動控制及錯誤偵測之特徵。在一些實施中,流動控制邏輯1430可體現於排程器1425中或以其它方式與排程器1425交互操作以確保緩衝器晶片1315之更高效率及較高效能。錯誤偵測邏輯1440可包括支援錯誤校正碼偵測方案的邏輯以及用於起始所偵測到的錯誤之校正或處置之邏輯。
在一些實施中,CPU 1305可包括可將CPU(或主機)位址轉譯為記憶體位址之主機控制器邏輯1440,包括跨越頻道及通訊端排列,以及其他功能性。主機1305可包括可允許多個處理程序在主機1305上並行執行之多個處理核心1445a至1445d。此外,主機可利用一或多個快取記憶體來自記憶體(例如,1405、1410)快取先前存取的線,致使主機1305可重新存取此等線而無需自緩衝器晶片1315重新請求該資料。此可輔助解決經由緩衝區記憶體架構中的緩衝器晶片1315引入的較高潛時。快取記憶體可包括本端及中間快取記憶體,以及末級快取記憶體(LLC)1450a至1450d。包括LLC之快取記憶體可在多個核心1445a至1445d之間共享。實際上,可藉由使用一個或多個處理核心之主機利用多種快取記憶體架構。
如上文所指出,緩衝區記憶體協定之連結層可基於GPIO協定之連結層。舉例而言,HPI協定(例如,圖10中所描述及展示者)之192位元、3時槽微片可用於緩衝區記憶 體協定中。緩衝區記憶體協定中之封包可體現整個命令。封包可實施為一或多個微片。圖15A至圖15C可表示緩衝區記憶體協定中的微片之實施。在一些實施中,讀取資料可經由帶標頭及無標頭之記憶體資料(MemData)封包而自緩衝器裝置發送回至主機。整個快取行可在三個無標頭微片(而非帶標頭微片情況下的五個)中傳送。無標頭封包可藉此在介面之最受約束部分上提供較高輸送量。為了適合於三個微片,無標頭封包移除數個欄位且作出關於其值的假設。所作出的假設對於大多數情況可為真,但所有讀取返回為真。若任何假設不為真,則將使用帶標頭封包,其含有所有欄位。在一些實施中,帶標頭封包可開始一序列讀取返回以准許提早識別追蹤器識別符(例如,HTID、RTID,等)以供用於將讀取返回映射至異動緩衝區記憶體協定中的讀取請求。
在一些實施中,無標頭封包可含有表1中概述的資訊:
另外,圖15A至圖15C例示可用以在讀取返回中傳輸整個快取行的一序列三個微片(例如,微片0(在圖15A 處)、微片1(在圖15B處)及微片2(在圖15C處))。表2提供在無標頭封包中利用的三個微片之實例的概述:
HIB位元可經設定以指示封包帶標頭還是無標頭。HIB可經設定以指示無標頭封包僅用於在標頭微片之後的資料微片。此允許某些其他封包在封包之中間交錯。在完成交錯式封包時,可發送原始帶標頭封包之資料部分,其中微片中HIB=0。此技術亦可用以藉由插入空值微片而延遲資料封包。在一些實施中,在通常將需要標頭時,藉由HIB位元為0來用信號表示無標頭封包之開始。包括空值微片之所有其他封包可含有設定了HIB位元之標頭。
如上文所介紹,帶標頭封包在長度上可為總共五個微片,且可包括一個標頭微片及4個資料微片。為了減少閒置潛時,帶標頭微片可發送資料微片1兩次。在第一次,其僅發送來自第一32個位元組的資料,且稱為微片1a。此允許在自記憶體裝置獲得第二32個位元組之資料之前發送微片。結果為對於閒置情況,資料之關鍵的32個位元組信息塊較早到達主機處。可接著第二次發送微片1,此次完成。其將含有第一32個位元組資料部分之重複加第二32個位元組部分。表3描述帶標頭封包之五個微片:
在一些實施中,帶標頭MemData封包可不取消且繼之以資料微片。不發送標頭,直至已知資料亦可發送。在發送標頭之前,可不在緩衝器中累積整個快取行。
系統可尤其對潛時敏感。記憶體潛時對於CPU效能可為關鍵性的。在一些實施中,可藉由引入經定義以供在緩衝區記憶體連結上使用的推測讀取命令(從而允許在保證將實際上需要或使用讀取之前將讀取請求發送至記憶體緩衝器晶片)來減小緩衝區記憶體架構中的潛時開銷。此可允許潛時最佳化管線,其在發送讀取請求之前不等待解析所有依賴性,從而有效地允許讀取資料之推測性提取。
在一些實施(諸如使用大晶粒上互連及複雜快取及本籍代理程式實施的伺服器環境或其他系統)中,顯著潛時可顯現於讀取異動自請求者到達末級快取記憶體之時間與經由緩衝區記憶體介面將讀取發送至記憶體控制器的時間之間。推測讀取功能性可藉由在已知讀取是否將實際上發出之前(亦即,在已知讀取是否為快取未中之前)經由記憶體緩衝器介面發送推測讀取來輔助節省閒置潛時。在一些情況下,如在其他緩衝區記憶體異動中,不自協定追蹤推 測讀取,但推測讀取稍後將合併至藉由協定追蹤之需求讀取中(若發出對記憶體控制器之讀取)。給定存取記憶體所需之有時顯著的潛時,查找LLC中的異動之整個潛時可由記憶體存取潛時掩蔽,從而在使用推測性讀取的情況下導致顯著效能改良,以及其他實例優勢。
除了待經由緩衝區記憶體存取連結自主機發送至緩衝器晶片之正常讀取命令之外,亦可提供推測讀取命令(MemSpecRd)。推測讀取為在推測對一位址之讀取可能在不久後產生時發送的對於該位址之讀取請求。無回應發送至推測讀取(本身)。實情為,緩衝器晶片擷取對應於在推測讀取中識別的所請求位址的資料,且判定在推測讀取之後、將所擷取資料發送至主機之前是否已接收到對於相同位址的需求讀取請求。需求讀取可簡單地為在推測讀取之後發送的規則讀取(MemRd)命令,其將使用來自推測讀取的資料。推測讀取可充當對記憶體控制器之提示:將可能出現對於對應記憶體位址之讀取。其允許記憶體控制器在讀取開始時獲得頭部以減少平均潛時。若接收到對應需求讀取,則可使用所擷取的資料(否則,可丟棄該資料)。
轉至圖16A至圖16C,展示流程圖1600a至1600c,其例示緩衝區記憶體架構中的實例記憶體讀取異動。舉例而言,在圖16A中,例示正常讀取操作。在時間 t 0 ,主機1305判定一處理程序(例如,在一組處理核心中的特定一者上執行)試圖自特定記憶體行讀取記憶體。主機1305可首先嘗試自諸如共享末級快取記憶體(LLC)1450之快取記 憶體獲得資料,以便避免自記憶體1605直接請求該行(例如,較高潛時異動)。因此,主機1305可執行LLC查找1610a以判定LLC 1450是否具有資料行。在此實例中,LLC 1450之快取邏輯可識別對應於該位址之資料行為快取記憶體中之「未中」1615a,即,LLC 1450不具有複本。回應於接收到LLC未中1615a,主機1305可訴諸於直接自記憶體1605請求記憶體行之複本。因此,在緩衝區記憶體架構中,主機1305可將請求對應於該位址之資料的讀取請求1620a發送至單獨緩衝器晶片1315。記憶體讀取請求1620a可包括位址之指示以及異動識別符(TID)。緩衝器晶片1315可接著自DIMM、DRAM或其他記憶體元件(例如,1605)請求(在1625a處)該記憶體,接收該資料(在1630a處)且在回應1635a中將該資料傳回至記憶體讀取請求1620a。在此實例中,主機1305可獲得該資料以供在 t 0 之後的時間 t A 處使用。
轉至圖16B之實例,使用推測讀取例示實例異動。舉例而言,作為圖16A之實例的替代,主機1305可嘗試獲得相同資料行(如在圖16A之實例中),且可結合LLC查找1610b發送推測讀取請求1640b。可在LLC查找1610b之前、之後或同時在與 t 0 同時的時間發送推測讀取請求1640b。在LLC邏輯1450執行查找時,緩衝器晶片1315可接收推測讀取1640b,且開始自記憶體1605擷取記憶體行(經由請求1625b及回應1630b)。此致使LLC查找1610b之潛時掩蔽經由緩衝器晶片1315請求記憶體之總潛時。
如在圖16A之實例中,LLC查找1610b可導致LLC 未中1615b。作為回應,主機1305可發送需求讀取1620b以正式化較早的推測讀取1640b。在一些情況下,主機1305可追蹤其未決的推測讀取請求且識別對應於較早推測讀取1640b的需求讀取1620b。在其他實施中,主機1305可不追蹤其推測性讀取,且需求讀取可簡單地為主機1305發送至緩衝器裝置1315的針對相同位址的下一正常讀取(例如,MemRead)。換言之,主機1305可採用其未決推測性讀取(例如,1640b)不可知的方法且簡單地繼續照常進行,在適當時(例如,回應於LLC未中(例如,1615b))發送正常讀取(例如,1620b),其可或可不最終充當觸發將藉由緩衝器裝置1315擷取的資料發送至較早推測讀取的需求讀取。實際上,可以與在不發送推測讀取的情況下完全相同的方式發送需求讀取。協定中對於此命令將無差異,但讀取請求可能比不發送先前推測讀取的情況更快地完成。在一些情況下,需求讀取可體現為一組所定義記憶體讀取(例如,MemRd*)命令中的任一者,包括操縱目錄之讀取請求,以及其他實例。
不顧及所使用的實施例,由緩衝器晶片解譯為需求讀取的讀取請求可導致將回應於推測讀取1640b而獲得的資料1630b發送至主機1305。另外,由於在緩衝器裝置1315與LLC 1450處的並行工作係由推測讀取1305引起,因此可實現總體潛時節省,此係因為獲得已經提取的資料(自推測讀取)所需的需要減小將資料傳回至主機1305的時間( t B )(亦即, t B < t A )。
接下來轉至圖16C之實例,在一些情況下,諸如在主機1305能夠在無對緩衝器裝置1315之記憶體讀取請求時獲得所要記憶體行之複本的情況下,推測讀取(例如,1640c)可「浪費」。舉例而言,主機1305可再次結合LLC查找1610c發送推測讀取1640c。緩衝器晶片1315可接收推測讀取請求1640c,且發送請求1625c以擷取在推測讀取請求1640c中指定的記憶體行。然而,儘管獲得資料(在1630c處),但在此實例中,緩衝器裝置1315從不將資料發送至主機1305,此係因為LLC查找1610c在此實例中產生命中1615c,從而允許主機1305自快取記憶體獲得請求記憶體行之複本。因為不需要所擷取資料1630c,因此緩衝器晶片1315可丟棄(在1650處)所擷取的資料。
在一些實施中,緩衝器晶片1315可包括用於儲存回應於推測讀取而自記憶體1605獲得之資料(例如,1630b、c)的緩衝器或佇列。緩衝器晶片1315可回應於偵測到對應於推測讀取請求的需求讀取(例如,1620b)而清空此佇列。在一些實施中,可預期將能夠在緩衝器裝置1315能夠傳回來自對應於特定推測讀取的記憶體的資料(或「推測讀取資料」)之前發送需求讀取。因此,在一些情況下,在獲得推測讀取資料記憶體(例如,在1630b、c處)之後,緩衝器裝置1315可即刻判定是否已在接收到推測讀取之時間與接收到來自記憶體的資料(例如,在1630b、c處)的時間之間接收到需求讀取。若否,則緩衝器裝置1315可丟棄1650該資料(例如,1630c)。在此實施中,若需求讀取在推測讀取 資料自記憶體到達之後到達,則需求讀取將被處理為任何其他標準記憶體讀取,且緩衝器裝置1315可重新擷取與剛剛結合先前推測讀取請求自記憶體擷取的資料相同的資料。在其他實施中,緩衝器裝置1315可丟棄結合推測讀取自記憶體獲得之資料,此係因為用於保留推測讀取資料之對應緩衝器、佇列或其他資源被填充(例如,在FIFO基礎上)或需要用於另一操作(或用於對應於另一推測讀取的推測讀取資料)。在另外其他實例中,緩衝器裝置1315可維護用於將推測讀取資料在丟棄該資料之前保留一定週期或異動數目(亦即,在該週期內未接收到對應需求讀取之後即刻丟棄)之計時器或異動計數器。因此,在一些實施中,可在已藉由緩衝器裝置自記憶體擷取對應資料之後接收需求讀取,以致使作為回應而傳回推測讀取資料。實際上,在此等情況下,緩衝器裝置將處於立即傳回對主機之(需求)讀取請求的回應的位置(在需求讀取到達時已經自記憶體擷取該資料)。
緩衝器裝置1315可基於包括於兩個請求中的一或多個欄位之對應值而將需求讀取匹配至推測讀取。舉例而言,若讀取請求參考與推測讀取相同的位址,則緩衝器裝置1315可將讀取請求映射至作用中推測讀取。在某種意義上,位址匹配作用中推測讀取之位址的讀取請求可在由緩衝器裝置接收且識別時「轉換」為用於推測讀取之需求讀取。在一些情況下,因為推測讀取請求將不直接回應,因此可置零或省略該請求之一些欄位值。舉例而言,異動 ID可具備傳回一回應(例如,其中該回應具有匹配TID以使回應與較早請求相關)之記憶體讀取,但可省略(或編碼為無效)用於推測讀取請求之TID。
在一些實施中,在嘗試辨識潛時節省時,可結合每一LLC(或其他快取記憶體)查找發送推測讀取。然而,主機、記憶體控制器(在緩衝器裝置上)與記憶體之間的此等「額外」異動可添加對緩衝區記憶體架構之需求且潛在地影響主機、緩衝器裝置與記憶體之間的連結之頻寬,從而導致不合需要的效能罰分。因此,在一些實施中,舉例而言,在主機控制器認為發送推測讀取可能產生潛時優勢(且不會不利地影響其他記憶體異動)時,可選擇性地發送推測讀取。作為一實例,主機控制器可具備(例如,自暫存器或由軟體引導)對緩衝器裝置、記憶體元件處的資源之可用性及/或將緩衝器裝置連接至記憶體元件的連結之頻寬的瞭解,且可使用此資訊來判定是否使用推測讀取。舉例而言,主機控制器(在主機上)在執行LLC查找時(或之前)可識別緩衝器裝置之可用性以判定是否應發送對應推測讀取。在另一實施中,緩衝器裝置可提供推測讀取將不妨礙效能的指示。舉例而言,緩衝器裝置可雙態觸發一狀態或模式以在緩衝器裝置資源可用性窗期間啟用推測讀取。主機可識別何時啟用推測讀取,且可結合每一LLC(或其他快取記憶體)查找發出對於記憶體中的位址之推測性讀取(至少直至此等推測讀取(或其他緩衝器裝置活動)吸收打開的資源且致使推測讀取模式切換回至「關」,以及其他實例實施。
主機之職責可為處置推測讀取之數目,以及在發送推測讀取時,致使不存在效能損失。對應記憶體存取連結協定可定義推測讀取之格式及使用,但可能不提供對其使用之詳細限制。舉例而言,協定可能不限制在任何給定時間來自主機(或緩衝器裝置處)的可為突出的推測讀取之數目。若推測讀取之使用比率低(亦即,需求讀取很少跟在推測讀取之後),則此等推測讀取可能傷害而非改良網路效能。因此,在一些實施中,主機控制器可識別使用較之於快取記憶體命中更可能對應於快取記憶體未中的推測讀取之機會。舉例而言,可將提示提供至主機控制器(例如,自指令集架構)以指示一或多個位址較之於其他位址更可能導致未中。舉例而言,可存取記憶體位址使用資訊以判定最近何時使用每一記憶體行、其使用頻率、藉由哪些處理程序使用(及此等處理程序是否在作用中)以及其他資訊,以輔助識別哪些位址最不可能被快取且導致查找未中。使用此種資訊,主機控制器可作出關於推測讀取何時可能獲得潛時減小的明智猜測。另外,關於記憶體行使用之資訊可與關於當前緩衝器裝置資源之資訊組合以通知何時使用推測讀取。在一個實例中,僅在緩衝器資源識別為低且更可能實現效能成本(以及其他實施)時才考慮記憶體行使用資訊。
緩衝器裝置記憶體控制器可具備關於其如何處置推測讀取的相當大的寬容度。舉例而言,記憶體控制器可在過程中之任何時刻自由地捨棄任何或所有推測讀取 (但過度限制性處理可能威脅到所要潛時降低之實現)。在緩衝器裝置接收到推測讀取時,最初可將其處置為任何其他讀取。其可或可不在排程器中為該推測讀取指派不同優先級。然而,在自記憶體傳回推測讀取資料時(例如,在判定尚未接收到對應需求讀取之後),可更改推測讀取之處置。在其他情況下,記憶體控制器可將推測讀取置於低於其他讀取的優先級,此係因為不保證用於推測讀取的需求讀取一定會出現,以及其他實例。
如上文所指出,在接收到對於與未決推測讀取相同的位址之需求讀取時,緩衝器裝置可將推測讀取資料轉換為對於對應需求讀取的回應。此可改變其優先級(若尚未經由排程器改變其優先級),舉例而言,藉由使需求異動之發出優先於其他突出推測異動。若在自記憶體擷取資料之前接收到需求讀取,則需求讀取將簡單地採用讀取資料(一旦其到達且就緒)。可隨資料傳回對需求讀取之回應(其中該回應編碼有需求讀取之TID)。另外,在需求讀取涉及目錄更新的情況下,可假定相關聯推測讀取不提供相同目錄更新之指示(例如,在推測讀取從未藉由需求讀取而正式化的情況下),以及其他實例考慮因素。
在一些情況下,可結合不同於最初提示推測讀取的異動的異動而傳回推測讀取資料。舉例而言,第二異動可涉及嘗試讀取在結合另一異動之LLC查找而發送的先前推測讀取中識別的位址。第二異動之讀取請求可在第一異動之讀取請求之前到達緩衝器裝置,且可作為對第二異動 之讀取請求的回應(且在一些實施中,亦作為對其他異動之讀取請求的回應)而傳回推測讀取資料,以及其他實例。
HPI及相關聯緩衝區記憶體存取協定可併入於任何多種計算裝置及系統中,包括大型機、伺服器系統、個人電腦、行動電腦(諸如平板電腦、智慧型電話、個人數位系統,等)、智慧型電氣設備、遊戲或娛樂控制台及機上盒,以及其他實例。舉例而言,參看圖17,展示根據本發明之實施例的第二系統1700之方塊圖。如圖17中所展示,多處理器系統1700為點對點互連系統,且包括經由點對點互連1750耦接的第一處理器1770及第二處理器1780。處理器1770及1780中的每一者可為某版本的處理器。在一個實施例中,1752及1754為串列點對點相干互連網狀架構的部分,諸如高效能架構。結果,本發明可實施於QPI架構內。
儘管僅展示兩個處理器1770、1780,但應理解,本發明之範疇不限於此。在其他實施例中,一或多個額外處理器可存在於給定處理器中。處理器1770及1780展示為分別包括整合式記憶體控制器(IMC)單元1772及1782。處理器1770亦包括點對點(P-P)介面1776及1778作為其匯流排控制器單元之部分;類似地,第二處理器1780包括P-P介面1786及1788。處理器1770、1780可經由點對點(P-P)介面1750使用P-P介面電路1778、1788交換資訊。如圖17中所展示,IMC 1772及1782將處理器耦接至各別記憶體(亦即,記憶體1732及記憶體1734),其可為本端附接至各別處理器之主記憶體之部分。
處理器1770、1780各自經由個別P-P介面1752、1754使用點對點介面電路1776、1794、1786、1798與晶片組1790交換資訊。晶片組1790亦沿著高效能圖形互連1739經由介面電路1792與高效能圖形電路1738交換資訊。
共用快取記憶體(未圖示)可包括於兩個處理器中之任一者中或在兩個處理器外部;又經由P-P互連與處理器連接,致使可將兩個處理器中之任一者或兩者之本端快取記憶體資訊儲存於共用快取記憶體中(若處理器置於低功率模式中)。
晶片組1790可經由介面1796耦接至第一匯流排1716。在一實施例中,第一匯流排1716可為周邊組件互連(PCI)匯流排,或諸如PCI快速匯流排之匯流排,或另一第三代I/O互連匯流排,但本發明之範疇不限於此。
如圖17中所展示,各種I/O裝置1714連同匯流排橋1718一起耦接至第一匯流排1716,匯流排橋1718將第一匯流排1716耦接至第二匯流排1720。在一個實施例中,第二匯流排1720包括低接腳計數(LPC)匯流排。在一個實施例中,包括(例如)以下各者的各種裝置耦接至第二匯流排1720:鍵盤及/或滑鼠1722、通訊裝置1727及儲存單元1728(諸如磁碟機或常常包括指令/程式碼及資料1730的其他大容量儲存裝置)。另外,音訊I/O 1724展示為耦接至第二匯流排1720。注意,其他架構有可能,其中所包括組件及互連架構發生變化。舉例而言,替代圖17的點對點架構,系統可實施多分接頭匯流排或其他此類架構。
現參看圖18,展示了多核心處理器之一實施例的方塊圖。如圖18之實施例中所示,處理器1800包括多個域。具體言之,核心域1830包括多個核心1830A至1830N,圖形域1860包括具有媒體引擎1865之一或多個圖形引擎,以及系統代理程式域1810。
在各種實施例中,系統代理程式域1810處置功率控制事件及功率管理,以致使域1830及1860之個別單元(例如核心及/或圖形引擎)可獨立地控制以根據給定單元中正在發生的活動(或不活動)而在適當功率模式/等級(例如,主動式、渦輪、睡眠、休眠、深睡眠或其他進階組配功率介面狀狀態)下動態地操作。域1830及1860中之每一者可在不同電壓及/或功率下操作,且此外,域內之個別單元每一者可能在獨立頻率及電壓下操作。注意,儘管僅展示具有三個域,但應理解,本發明之範疇就此而言並無限制,且額外域可存在於其他實施例中。
如所示,每一核心1830進一步包括除各種執行單元及額外處理元件外的低階快取記憶體。此處,各種核心彼此耦接且耦接至由末級快取記憶體(LLC)1840A至1840N的多個單元或片段形成的共享快取記憶體;此等LLC常常包括儲存及快取控制器功能性且在核心當中以及可能在圖形引擎當中共享。
如所見,環形互連1850將核心耦接在一起,且經由多個環形擋板1852A至1852N(每一者處於核心與LLC片段之間的耦合處)來提供核心域1830、圖形域1860及系統代 理程式電路1810之間的互連。如圖18中所見,互連1850用以攜載各種資訊,包括位址資訊、資料資訊、應答資訊以及嗅探/無效資訊。儘管說明環形互連,但可使用任何已知的晶粒上互連或網狀架構。作為說明性實例,可以類似方式利用如上文所述之網狀架構中的一些(例如,另一晶粒上互連、系統單晶片網狀架構(OSF)、進階微控制器匯流排架構(AMBA)互連、多維網狀物網狀架構,或其他已知互連架構)。
如進一步所描繪,系統代理程式域1810包括顯示引擎1812,其用以提供對相關聯顯示器的控制及至相關聯顯示器之介面。系統代理程式域1810可包括其他單元,諸如:提供至系統記憶體(例如,用多個DIMM實施之DRAM)之介面的整合式記憶體控制器1820;用以執行記憶體相干操作的相干邏輯1822。多個介面可存在以實現處理器與其他電路之間的互連。舉例而言,在一個實施例中,提供至少一個直接媒體介面(DMI)1816介面,以及一或多個PCIeTM介面1814。顯示引擎及此等介面通常經由PCIeTM橋1818耦接至記憶體。再此外,為了提供其他代理程式(諸如額外處理器或其他電路)之間的通訊,可提供一或多個其他介面。
雖然已關於有限數目個實施例描述本發明,但熟習此項技術者將瞭解自本發明之眾多修改及變化。希望隨附申請專利範圍涵蓋如屬於本發明之真實精神及範疇內的所有此等修改及變化。
設計可經歷各種階段,自建立至模擬至製造。表示設計之資料可用多種方式表示設計。首先,如在模擬中可用的,可使用硬體描述語言(HDL)或另一功能描述語言來表示硬體。另外,可在設計程序之一些階段處產生具有邏輯及/或電晶體閘之電路層級模型。此外,在某一階段,大部分設計達到表示各種裝置在硬體模型中之實體置放的資料之層級。在使用習知半導體製造技術之狀況下,表示硬體模型之資料可為指定各種特徵在用於用以產生積體電路之遮罩的不同遮罩層上之存在或不存在的資料。在一些實施中,此資料可以諸如圖形資料系統II(GDS II)、打開圖片系統互換標準(OASIS)或類似格式的資料庫檔案格式而加以儲存。
在一些實施中,在其他實例中,基於軟體之硬體模型及HDL及其他功能描述語言物件可包括暫存器傳送語言(RTL)檔案。此等物件可為機器可剖析的,以致使設計工具可接受HDL物件(或模型)、剖析HDL物件以獲得所描述硬體之屬性且自物件判定實體電路及/或晶片上佈局。設計工具之輸出可用以製造實體裝置。舉例而言,設計工具可自HDL物件(諸如,在可經實施以便實現HDL物件中所模型化之系統的其他屬性中,匯流排寬度、暫存器(包括大小及類型)、記憶體區塊、實體連結路徑、網狀架構拓撲)判定各種硬體及/或韌體元件的組配。設計工具可包括用於判定系統單晶片(SoC)及其他硬體裝置之拓撲及網狀架構組配的工具。在一些例子中,HDL物件可用作為用於開發可藉由製 造裝備使用以製造所描述硬體的模型及設計檔案之基礎。實際上,可提供HDL物件本身以作為至用以產生所描述硬體的製造系統軟體的輸入。
在設計之任何表示中,資料可儲存於任何形式之機器可讀媒體中。記憶體或磁性或光學儲存裝置(諸如,光碟)可為用以儲存資訊之機器可讀媒體,該資訊係經由經調變或以其他方式產生以傳輸此資訊之光波或電波傳輸。當傳輸指示或攜載程式碼或設計之電載波時,就執行電信號之複製、緩衝或重新傳輸而言,產生新複本。因此,通訊提供者或網路提供者可至少臨時將體現本發明之實施例之技術的物件(諸如,編碼成載波之資訊)儲存於有形機器可讀媒體上。
如本文所使用之模組係指硬體、軟體及/或韌體之任何組合。作為一實例,模組包括與非暫時性媒體相關聯之硬體(諸如,微控制器),該非暫時性媒體儲存經調適以由微控制器執行之程式碼。因此,在一個實施例中,對模組之參考指硬體,具體言之,該硬體經組配以辨識及/或執行待保持於非暫時性媒體上之程式碼。此外,在另一實施例中,對模組之使用係指包括程式碼之非暫時性媒體,具體言之,該程式碼經調適以由微控制器執行以執行預定操作。且因為可進行推斷,因此在又一實施例中,術語模組(在此實例中)可指微控制器及非暫時性媒體之組合。常常,例示為單獨邊界之模組邊界通常變化且有可能重疊。舉例而言,第一模組及第二模組可共享硬體、軟體、韌體或其組 合,同時有可能保持一些獨立硬體、軟體或韌體。在一實施例中,術語邏輯之使用包括硬體,諸如電晶體、暫存器或其他硬體,諸如可規劃邏輯裝置。
在一個實施例中,片語「經組配以」之使用指配置、放在一起、製造、供出售、引入及/或設計設備、硬體、邏輯或元件以執行所指明或所判定任務。在此實例中,若並未在操作中之設備或其元件經設計、耦接及/或互連以執行該所指明任務,則該設備或其元件仍「經組配以」執行所指明任務。作為純粹例示性實例,邏輯閘可在操作期間提供0或1。但「經組配以」將啟用信號提供至時脈之邏輯閘並不包括可提供1或0之每個可能的邏輯閘。實情為,邏輯閘為按致使在操作期間1或0輸出用以啟用時脈之某種方式耦接之邏輯閘。再一次注意,術語「經組配以」之使用並不需要操作,而實情為,集中於設備、硬體及/或元件之潛伏狀態,其中在潛伏狀態下,設備、硬體及/或元件經設計以在設備、硬體及/或元件正操作時執行特定任務。
此外,在一實施例中,片語「能夠」及或「可操作以」之使用係指某一設備、邏輯、硬體及/或元件按致使能夠按指定方式使用設備、邏輯、硬體及/或元件之方式設計。注意,如上文所提及,在一個實施例中,以、能夠或可操作以之使用指設備、邏輯、硬體及/或元件之潛在狀態,其中該設備、邏輯、硬體及/或元件並未在操作中,但其係以致使能夠以指定方式使用設備之方式進行設計。
如本文所使用,值包括數字、狀態、邏輯狀態或 二進位邏輯狀態之任何已知表示。常常,邏輯位準、邏輯值(logic value)或邏輯值(logical value)之使用亦被稱作1及0,其簡單地表示二進位邏輯狀態。舉例而言,1係指高邏輯位準且0係指低邏輯位準。在一實施例中,諸如電晶體或快閃記憶體胞元之儲存裝置胞元可能能夠保持單一邏輯值或多個邏輯值。然而,已使用電腦系統中之值之其他表示。舉例而言,十進位數字十亦可表示為二進位值1010及十六進位字母A。因此,值包括能夠保持於電腦系統中之資訊之任何表示。
此外,可藉由值或值之部分來表示狀態。作為一實例,諸如邏輯一之第一值可表示預設或初始狀態,而諸如邏輯零之第二值可表示非預設狀態。另外,在一實施例中,術語重設及設定分別係指預設及經更新值或狀態。舉例而言,預設值可能包括高邏輯值(亦即,重設),而經更新值有可能包括低邏輯值(亦即,設定)。注意,可利用值之任何組合來表示任何數目個狀態。
上文闡述之方法、硬體、軟體、韌體或程式碼之實施例可經由可由處理元件執行之儲存於機器可存取、機器可讀、電腦可存取或電腦可讀媒體上之指令或程式碼來實施。非暫時性機器可存取/可讀媒體包括提供(亦即,儲存及/或傳輸)呈可由諸如電腦或電子系統之機器讀取之形式之資訊的任何機制。舉例而言,非暫時性機器可存取媒體包括隨機存取記憶體(RAM),諸如靜態RAM(SRAM)或動態RAM(DRAM);ROM;磁性或光學儲存媒體;快閃記憶 體裝置;電儲存裝置;光學儲存裝置;聲學儲存裝置;用於保持自暫時性(傳播)信號(例如,載波、紅外線信號、數位信號)接收之資訊的其他形式之儲存裝置;等等,其應區別於非暫時性媒體,非暫時性媒體可自其接收資訊。
用以規劃邏輯以執行本發明之實施例的指令可儲存於系統中之記憶體(諸如,DRAM、快取記憶體、快閃記憶體或其他儲存裝置)內。此外,該等指令可經由網路或藉助於其他電腦可讀媒體來散佈。因此,機器可讀媒體可包括用於儲存或傳輸呈可由機器(例如,電腦)讀取之形式之資訊的任何機制,但不限於磁碟片、光碟、緊密光碟、唯讀記憶體(CD-ROM)及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可規劃唯讀記憶體(EPROM)、電可抹除可規劃唯讀記憶體(EEPROM)、磁卡或光學卡、快閃記憶體或用於在網際網路上經由電、光學、聲學或其他形式之傳播信號(例如,載波、紅外線信號、數位信號等)傳輸資訊中使用的有形的機器可讀儲存裝置。因此,電腦可讀媒體包括適合於以可由機器(例如,電腦)讀取之形式儲存或傳輸電子指令或資訊的任何類型之有形機器可讀媒體。
以下實例係關於根據本說明書的實施例。一或多個實施例可提供設備、系統、機器可讀儲存器、機器可讀媒體、基於硬體及/或軟體之邏輯以及方法,其用以:執行對於與一特定記憶體位址相關聯之資料的一快取記憶體查找;結合該快取記憶體查找將一推測讀取請求發送至一緩衝器裝置,其中該推測讀取請求將致使該緩衝器裝置自記 憶體獲得該資料;以及至少部分基於該快取記憶體查找之一結果而判定是否將一讀取請求發送至該緩衝器裝置以致使緩衝器晶片自記憶體傳回該資料。
在至少一個實例中,經由該快取記憶體查找獲得該資料致使該主機邏輯不發送該讀取請求。
在至少一個實例中,將回應於一快取記憶體查找未中而發送針對該資料之該讀取請求。
在至少一個實例中,該主機邏輯將發送該讀取請求,且自該緩衝器裝置接收自記憶體獲得之該資料。
在至少一個實例中,將在自該快取記憶體查找傳回該結果之前發送該推測讀取請求。
在至少一個實例中,該主機邏輯進一步判定是否結合該快取記憶體查找發送該推測讀取請求。
在至少一個實例中,將基於與該緩衝器裝置相關聯之資源可用性資訊判定將發送該推測讀取請求。
在至少一個實例中,將基於該快取記憶體查找將導致一未中之一可能性來判定該推測讀取請求。
在至少一個實例中,該快取記憶體包括一末級快取記憶體。
以下實例係關於根據本說明書的實施例。一或多個實施例可提供設備、系統、機器可讀儲存器、機器可讀媒體、基於硬體及/或軟體之邏輯(例如,記憶體控制器)及方法,其用以:經由一緩衝區記憶體存取連結自一主機裝置接收針對與一特定位址相關聯的資料之一推測讀取請 求;將針對該資料之一讀取請求發送至一記憶體裝置;回應於該讀取請求而自該記憶體裝置接收該資料;以及回應於在該推測讀取請求之後的一需求讀取請求而將該資料發送至該主機裝置。
在至少一個實例中,該記憶體控制器提供於與該主機裝置分離之一緩衝器晶片上。
在至少一個實例中,該需求讀取請求包括對於與該推測讀取請求相同之位址的任何記憶體讀取請求。
在至少一個實例中,該記憶體控制器在不存在來自該主機裝置之一對應需求讀取請求的情況下不將對於該推測讀取請求之一回應發送至該主機裝置。
在至少一個實例中,該推測讀取請求將包括指示該特定位址之一欄位及具有一無效值之一異動識別符欄位,該讀取請求將包括指示該特定位址之一欄位及指示該讀取請求之一異動識別符的一異動識別符欄位,且該資料將作為一回應而發送至該主機裝置,其中該回應將包括指示該特定位址之一欄位及指示該讀取請求之該異動識別符的一異動識別符欄位。
在至少一個實例中,在未接收到一對應需求讀取時,該記憶體控制器將回應於一推測讀取請求而丟棄自記憶體獲得之資料。
以下實例係關於根據本說明書的實施例。一或多個實施例可提供設備、系統、機器可讀儲存器、機器可讀媒體、基於硬體及/或軟體之邏輯及方法,其用以:判定是 否發送與末級快取記憶體之一特定查找相關聯的一推測讀取請求,其中該特定查找包括對於與一特定記憶體位址相關聯的資料之一查找;執行該末級快取記憶體之該特定查找;結合該特定查找將一推測讀取請求發送至一緩衝器裝置,其中該推測讀取請求將致使緩衝器晶片至少部分地與該特定查找並行地自記憶體獲得該資料;以及將一需求讀取請求發送至該緩衝器裝置以致使該緩衝器晶片基於該特定查找之一未中結果而自記憶體傳回該資料。
一或多個實施例可提供一種系統,其包括一緩衝器晶片,待經由該緩衝器晶片存取之記憶體,以及藉由一記憶體存取連結耦接至該緩衝器晶片之一處理器區塊。該處理器區塊可包括一或多個處理器核心、末級快取記憶體及一主機控制器。該主機控制器可針對與該記憶體之一特定位址相關聯的資料執行該末級快取記憶體之一查找,結合該查找將一推測讀取請求發送至該緩衝器晶片,其中該推測讀取請求將致使該緩衝器裝置自該記憶體獲得該資料,且至少部分基於該快取記憶體查找之一結果而判定是否將一讀取請求發送至該緩衝器晶片以致使該緩衝器晶片自記憶體傳回該資料。
在至少一個實例中,該緩衝器晶片包括一記憶體控制器以回應於在該緩衝器晶片處自該處理器區塊接收的請求而自該記憶體存取資料。
在至少一個實例中,該記憶體控制器將回應於該推測讀取請求而自該記憶體擷取該資料,且若在該推測讀 取請求之後未自該處理器區塊接收到一對應讀取請求,則丟棄該所擷取資料。
在至少一個實例中,該記憶體控制器將至少部分基於緩衝器晶片資源之可用性而判定忽略還是服務於該推測讀取請求。
貫穿於本說明書中的對「一個實施例」或「一實施例」之參考意謂結合實施例描述之特定特徵、結構或特性包括於本發明之至少一實施例中。因此,片語「在一個實施例中」或「在一實施例中」貫穿本說明書在各處之出現未必全部指同一實施例。此外,在一或多個實施例中,具體特徵、結構或特性可以任何適合方式組合。
在前述說明書中,已參考特定示例性實施例給出詳細描述。然而,以下情形將為顯而易見的:可在不偏離如所附申請專利範圍中所闡述的本發明之更廣泛精神及範疇之情況下,對本發明做出各種修改及改變。因此,應在說明性意義上而非限制性意義上看待說明書及圖式。此外,上文對實施例及其他示例性語言之使用未必指同一實施例或同一實例,而可指不同的及相異實施例,以及有可能相同的實施例。
100‧‧‧系統
105‧‧‧處理器
106‧‧‧前側匯流排(FSB)
110‧‧‧系統記憶體
115‧‧‧控制器集線器
116‧‧‧記憶體介面
117、118、121、131‧‧‧輸入/輸出模組、介面/埠
119、132‧‧‧連結
120‧‧‧開關/橋
122、126‧‧‧介面
125‧‧‧裝置

Claims (20)

  1. 一種設備,其包含:主機邏輯,其用以:執行對於與一特定記憶體位址相關聯之資料的一快取記憶體查找;結合該快取記憶體查找將一推測讀取請求發送至一緩衝器裝置,其中該推測讀取請求將致使該緩衝器裝置自記憶體獲得該資料;以及至少部分基於該快取記憶體查找之一結果而判定是否將一讀取請求發送至該緩衝器裝置以致使緩衝器晶片自記憶體傳回該資料。
  2. 如請求項1之設備,其中經由該快取記憶體查找獲得該資料致使該主機邏輯不發送該讀取請求。
  3. 如請求項1之設備,其中針對該資料之該讀取請求將回應於一快取記憶體查找未中而被發送。
  4. 如請求項3之設備,其中該主機邏輯將發送該讀取請求,且自該緩衝器裝置接收自記憶體獲得之該資料。
  5. 如請求項1之設備,其中該推測讀取請求將在自該快取記憶體查找傳回該結果之前被發送。
  6. 如請求項1之設備,其中該主機邏輯進一步判定是否結合該快取記憶體查找而發送該推測讀取請求。
  7. 如請求項6之設備,其中該推測讀取請求將基於與該緩衝器裝置相關聯之資源可用性資訊來判定被發送。
  8. 如請求項6之設備,其中該推測讀取請求將基於該快取記憶體查找將導致一未中之一可能性來判定。
  9. 如請求項1之設備,其中該快取記憶體包含一末級快取記憶體。
  10. 一種設備,其包含:一記憶體控制器,其用以:經由一緩衝區記憶體存取連結而自一主機裝置接收針對與一特定位址相關聯之資料的一推測讀取請求;將針對該資料之一讀取請求發送至一記憶體裝置;回應於該讀取請求而自該記憶體裝置接收該資料;以及回應於在該推測讀取請求之後的一需求讀取請求而將該資料發送至該主機裝置。
  11. 如請求項10之設備,其中該記憶體控制器提供於與該主機裝置分離之一緩衝器晶片上。
  12. 如請求項10之設備,其中該需求讀取請求包含對於與該推測讀取請求相同之位址的任何記憶體讀取請求。
  13. 如請求項10之設備,其中在不存在來自該主機裝置之一對應需求讀取請求的情況下,該記憶體控制器不發送對於該推測讀取請求之一回應至該主機裝置。
  14. 如請求項13之設備,其中該推測讀取請求將包含指示該特定位址之一欄位及具有一無效值之一異動識別符欄 位,該讀取請求將包含指示該特定位址之一欄位及指示該讀取請求之一異動識別符的一異動識別符欄位,且該資料將作為一回應而發送至該主機裝置,其中該回應將包含指示該特定位址之一欄位及指示該讀取請求之該異動識別符的一異動識別符欄位。
  15. 如請求項13之設備,其中在未接收到一對應需求讀取時,該記憶體控制器將回應於一推測讀取請求而丟棄自記憶體獲得之資料。
  16. 一種至少一上面儲存有程式碼之機器可存取儲存媒體,該程式碼在一機器上執行時致使該機器:判定是否發送與末級快取記憶體之一特定查找相關聯的一推測讀取請求,其中該特定查找包含對於與一特定記憶體位址相關聯的資料之一查找;執行該末級快取記憶體之該特定查找;結合該特定查找將一推測讀取請求發送至一緩衝器裝置,其中該推測讀取請求將致使緩衝器晶片至少部分地與該特定查找並行地自記憶體獲得該資料;以及將一需求讀取請求發送至該緩衝器裝置以致使該緩衝器晶片基於該特定查找之一未中結果而自記憶體傳回該資料。
  17. 一種系統,其包含:一緩衝器晶片;記憶體,其待經由該緩衝器晶片而存取;一處理器區塊,其藉由一記憶體存取連結耦接至該 緩衝器晶片,其中該處理器區塊包含:一或多個處理器核心;末級快取記憶體;一主機控制器,其用以:針對與該記憶體之一特定位址相關聯的資料執行該末級快取記憶體之一查找;結合該查找將一推測讀取請求發送至該緩衝器晶片,其中該推測讀取請求將致使該緩衝器裝置自該記憶體獲得該資料;以及至少部分基於該快取記憶體查找之一結果而判定是否將一讀取請求發送至該緩衝器晶片以致使該緩衝器晶片自記憶體傳回該資料。
  18. 如請求項17之系統,其中該緩衝器晶片包含一記憶體控制器以回應於在該緩衝器晶片處自該處理器區塊接收的請求而自該記憶體存取資料。
  19. 如請求項18之系統,其中該記憶體控制器將:回應於該推測讀取請求而自該記憶體擷取該資料;以及若在該推測讀取請求之後未自該處理器區塊接收到一對應讀取請求,則丟棄該所擷取資料。
  20. 如請求項18之系統,其中該記憶體控制器將至少部分基於緩衝器晶片資源之可用性而判定忽略還是服務於該推測讀取請求。
TW104138578A 2014-12-23 2015-11-20 具緩衝區記憶體中的推測讀取之技術 TWI596478B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/582,121 US9658963B2 (en) 2014-12-23 2014-12-23 Speculative reads in buffered memory

Publications (2)

Publication Number Publication Date
TW201635150A true TW201635150A (zh) 2016-10-01
TWI596478B TWI596478B (zh) 2017-08-21

Family

ID=56129557

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104138578A TWI596478B (zh) 2014-12-23 2015-11-20 具緩衝區記憶體中的推測讀取之技術

Country Status (5)

Country Link
US (2) US9658963B2 (zh)
EP (2) EP3370156B1 (zh)
CN (2) CN107003945B (zh)
TW (1) TWI596478B (zh)
WO (1) WO2016105852A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI635391B (zh) * 2017-02-14 2018-09-11 點序科技股份有限公司 快閃記憶體以及其管理方法
TWI787741B (zh) * 2020-11-05 2022-12-21 美商谷歌有限責任公司 記憶體請求優先升級

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9823951B2 (en) 2013-02-27 2017-11-21 International Business Machines Corporation Link optimization for callout request messages
US10838862B2 (en) 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
US10503661B2 (en) * 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US9658963B2 (en) 2014-12-23 2017-05-23 Intel Corporation Speculative reads in buffered memory
US10388054B2 (en) 2016-06-03 2019-08-20 Apple Inc. Controlling display performance using animation based refresh rates
US10510317B2 (en) 2016-06-03 2019-12-17 Apple Inc. Controlling display performance with target presentation times
US10402349B2 (en) * 2017-02-08 2019-09-03 Arm Limited Memory controller having data access hint message for specifying the given range of one or more memory addresses
US10437739B2 (en) * 2017-09-26 2019-10-08 Intel Corporation Low-latency accelerator
JP6791834B2 (ja) * 2017-11-30 2020-11-25 株式会社日立製作所 記憶システム及び制御ソフトウェア配置方法
US10423558B1 (en) 2018-08-08 2019-09-24 Apple Inc. Systems and methods for controlling data on a bus using latency
US10853256B2 (en) * 2019-01-04 2020-12-01 Arm Limited Cache operation in an apparatus supporting both physical and virtual address mapping
US11455257B2 (en) * 2019-04-07 2022-09-27 Intel Corporation Ultra-secure accelerators
CN110188424B (zh) * 2019-05-16 2021-01-15 浙江大学 一种面向动边界流场数值模拟的局部区域网格重构并行方法
US11151054B2 (en) * 2019-06-27 2021-10-19 International Business Machines Corporation Speculative address translation requests pertaining to instruction cache misses
US11194582B2 (en) 2019-07-31 2021-12-07 Micron Technology, Inc. Cache systems for main and speculative threads of processors
US11048636B2 (en) 2019-07-31 2021-06-29 Micron Technology, Inc. Cache with set associativity having data defined cache sets
US11200166B2 (en) * 2019-07-31 2021-12-14 Micron Technology, Inc. Data defined caches for speculative and normal executions
US11010288B2 (en) 2019-07-31 2021-05-18 Micron Technology, Inc. Spare cache set to accelerate speculative execution, wherein the spare cache set, allocated when transitioning from non-speculative execution to speculative execution, is reserved during previous transitioning from the non-speculative execution to the speculative execution
CN110996032B (zh) * 2019-11-22 2021-11-16 天津津航计算技术研究所 基于以太网和srio的数据记录与回放方法
CN110996031B (zh) * 2019-11-22 2021-11-16 天津津航计算技术研究所 基于以太网和srio的数据记录与回放装置
US11341060B2 (en) 2020-08-11 2022-05-24 International Business Machines Corporation Multifunction communication interface supporting memory sharing among data processing systems
US11372703B1 (en) 2021-02-19 2022-06-28 International Business Machines Corporation Reduced system memory latency via a variable latency interface
US20220114099A1 (en) * 2021-12-22 2022-04-14 Intel Corporation System, apparatus and methods for direct data reads from memory
JP7463598B2 (ja) 2022-07-01 2024-04-08 キオクシア株式会社 メモリシステム

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69429061T2 (de) * 1993-10-29 2002-07-18 Advanced Micro Devices, Inc. Superskalarmikroprozessoren
US6226722B1 (en) * 1994-05-19 2001-05-01 International Business Machines Corporation Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing
ZA954460B (en) * 1994-09-30 1996-02-05 Intel Corp Method and apparatus for processing memory-type information within a microprocessor
US6216208B1 (en) * 1997-12-29 2001-04-10 Intel Corporation Prefetch queue responsive to read request sequences
US6098115A (en) * 1998-04-08 2000-08-01 International Business Machines Corporation System for reducing storage access latency with accessing main storage and data bus simultaneously
US6338122B1 (en) * 1998-12-15 2002-01-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node
US6523093B1 (en) * 2000-09-29 2003-02-18 Intel Corporation Prefetch buffer allocation and filtering system
US6643747B2 (en) * 2000-12-27 2003-11-04 Intel Corporation Processing requests to efficiently access a limited bandwidth storage area
US7234029B2 (en) * 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US20030041215A1 (en) * 2001-08-27 2003-02-27 George Robert T. Method and apparatus for the utilization of distributed caches
US6912612B2 (en) * 2002-02-25 2005-06-28 Intel Corporation Shared bypass bus structure
US6895475B2 (en) 2002-09-30 2005-05-17 Analog Devices, Inc. Prefetch buffer method and apparatus
EP1426866A1 (en) * 2002-12-06 2004-06-09 Sun Microsystems, Inc. A method to reduce memory latencies by performing two levels of speculation
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7356651B2 (en) * 2004-01-30 2008-04-08 Piurata Technologies, Llc Data-aware cache state machine
US7395375B2 (en) * 2004-11-08 2008-07-01 International Business Machines Corporation Prefetch miss indicator for cache coherence directory misses on external caches
US7693829B1 (en) * 2005-04-25 2010-04-06 Google Inc. Search engine with fill-the-blanks capability
US9171585B2 (en) * 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US7500062B2 (en) * 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
US8683143B2 (en) * 2005-12-30 2014-03-25 Intel Corporation Unbounded transactional memory systems
US20080162907A1 (en) * 2006-02-03 2008-07-03 Luick David A Structure for self prefetching l2 cache mechanism for instruction lines
US20080162819A1 (en) * 2006-02-03 2008-07-03 Luick David A Design structure for self prefetching l2 cache mechanism for data lines
US20070186050A1 (en) * 2006-02-03 2007-08-09 International Business Machines Corporation Self prefetching L2 cache mechanism for data lines
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
EP2115583A2 (en) * 2007-01-30 2009-11-11 Nema Labs Ab Speculative throughput computing
US20080307169A1 (en) * 2007-06-06 2008-12-11 Duane Arlyn Averill Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory
US8627017B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US9218290B2 (en) * 2009-04-27 2015-12-22 Intel Corporation Data caching in a network communications processor architecture
WO2011065028A1 (ja) * 2009-11-30 2011-06-03 パナソニック株式会社 通信装置
US8713277B2 (en) * 2010-06-01 2014-04-29 Apple Inc. Critical word forwarding with adaptive prediction
US8683129B2 (en) * 2010-10-21 2014-03-25 Oracle International Corporation Using speculative cache requests to reduce cache miss delays
US8683136B2 (en) * 2010-12-22 2014-03-25 Intel Corporation Apparatus and method for improving data prefetching efficiency using history based prefetching
CN102087634B (zh) * 2011-01-27 2012-10-03 凌阳科技股份有限公司 用于提高缓存命中率的装置及方法
CN107608910B (zh) * 2011-09-30 2021-07-02 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
US20130262826A1 (en) * 2011-10-06 2013-10-03 Alexander Gendler Apparatus and method for dynamically managing memory access bandwidth in multi-core processor
US8687421B2 (en) * 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US9158696B2 (en) * 2011-12-29 2015-10-13 Intel Corporation Hiding instruction cache miss latency by running tag lookups ahead of the instruction accesses
CN103246542B (zh) * 2012-02-01 2017-11-14 中兴通讯股份有限公司 智能缓存及智能终端
US8832376B2 (en) 2012-03-16 2014-09-09 Infineon Technologies Ag System and method for implementing a low-cost CPU cache using a single SRAM
US9411595B2 (en) * 2012-05-31 2016-08-09 Nvidia Corporation Multi-threaded transactional memory coherence
US9003123B2 (en) * 2012-06-26 2015-04-07 Arm Limited Data processing apparatus and method for reducing storage requirements for temporary storage of data
US9772948B2 (en) * 2012-07-06 2017-09-26 Seagate Technology Llc Determining a criterion for movement of data from a primary cache to a secondary cache
US9104578B2 (en) 2012-07-06 2015-08-11 Seagate Technology Llc Defining address ranges used to cache speculative read data
US9529724B2 (en) * 2012-07-06 2016-12-27 Seagate Technology Llc Layered architecture for hybrid controller
US9201796B2 (en) 2012-09-27 2015-12-01 Apple Inc. System cache with speculative read engine
US9465740B2 (en) 2013-04-11 2016-10-11 Apple Inc. Coherence processing with pre-kill mechanism to avoid duplicated transaction identifiers
US9384136B2 (en) * 2013-04-12 2016-07-05 International Business Machines Corporation Modification of prefetch depth based on high latency event
US9176877B2 (en) * 2013-04-15 2015-11-03 International Business Machines Corporation Provision of early data from a lower level cache memory
US9418013B2 (en) * 2014-06-30 2016-08-16 Intel Corporation Selective prefetching for a sectored cache
US9658963B2 (en) 2014-12-23 2017-05-23 Intel Corporation Speculative reads in buffered memory

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI635391B (zh) * 2017-02-14 2018-09-11 點序科技股份有限公司 快閃記憶體以及其管理方法
TWI787741B (zh) * 2020-11-05 2022-12-21 美商谷歌有限責任公司 記憶體請求優先升級
TWI819900B (zh) * 2020-11-05 2023-10-21 美商谷歌有限責任公司 記憶體請求優先升級

Also Published As

Publication number Publication date
EP3238078A4 (en) 2018-07-25
WO2016105852A1 (en) 2016-06-30
US9658963B2 (en) 2017-05-23
CN107003945A (zh) 2017-08-01
EP3370156A1 (en) 2018-09-05
CN108829614A (zh) 2018-11-16
CN107003945B (zh) 2021-08-10
CN108829614B (zh) 2022-11-01
US20180018267A1 (en) 2018-01-18
EP3238078B1 (en) 2021-02-17
US20160179679A1 (en) 2016-06-23
EP3238078A1 (en) 2017-11-01
EP3370156B1 (en) 2021-11-24
TWI596478B (zh) 2017-08-21

Similar Documents

Publication Publication Date Title
TWI596478B (zh) 具緩衝區記憶體中的推測讀取之技術
TWI596544B (zh) 內含目錄狀態之更新技術
TWI653532B (zh) 用以管理電腦記憶體之設備、方法及系統
TWI605343B (zh) 緊密寫入完成之技術
TWI605464B (zh) 交易型緩衝記憶體中之錯誤處置技術
KR101842568B1 (ko) 트랜잭션 버퍼링된 메모리에서의 초기 식별