TWI616890B - 共享記憶體連結中的低功率進入之技術 - Google Patents

共享記憶體連結中的低功率進入之技術 Download PDF

Info

Publication number
TWI616890B
TWI616890B TW104136491A TW104136491A TWI616890B TW I616890 B TWI616890 B TW I616890B TW 104136491 A TW104136491 A TW 104136491A TW 104136491 A TW104136491 A TW 104136491A TW I616890 B TWI616890 B TW I616890B
Authority
TW
Taiwan
Prior art keywords
protocol
data
layer
link
agreement
Prior art date
Application number
TW104136491A
Other languages
English (en)
Other versions
TW201626376A (zh
Inventor
米歇爾C 詹
德班拉 達斯莎瑪
馬希 汪荷
文卡翠曼 耶爾
Original Assignee
英特爾公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英特爾公司 filed Critical 英特爾公司
Publication of TW201626376A publication Critical patent/TW201626376A/zh
Application granted granted Critical
Publication of TWI616890B publication Critical patent/TWI616890B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)
  • Small-Scale Networks (AREA)

Abstract

在根據一記憶體存取連結協定之一連結上發送資料以對應於相關聯於共享記憶體之一載入/儲存型操作,且該記憶體存取連結協定係用以覆疊在另一不同連結協定上。發送進入一低功率狀態之一請求,其中該請求係用以包括編碼在一符記之一欄位中之一資料值,該符記係用以指示封包資料之一開始且係用以進一步指示在該符記之後發送的後續資料是否係用以包括根據該另一連結協定及該記憶體存取連結協定中之一者的資料。

Description

共享記憶體連結中的低功率進入之技術 發明領域
本發明係關於計算系統,且詳言之(但非排他地)係關於計算系統中之組件之間的記憶體存取。
發明背景
半導體處理及邏輯設計上的進步已准許可存在於積體電路裝置上的邏輯數量的增加。作為推論,電腦系統組配已自系統中的單一或多個積體電路演進至存在於個別積體電路上的多個核心、多個硬體執行緒及多個邏輯處理器,以及整合於此等處理器內的其他介面。處理器或積體電路通常包含單一實體處理器晶粒,其中處理器晶粒可包括任何數目個核心、硬體執行緒、邏輯處理器、介面、記憶體、控制器集線器等。
由於使更大處理能力適配於較小封裝的更大能力,較小計算裝置風行性已增加。智慧型電話、平板電腦、超薄筆記型電腦及其他使用者裝備已按指數規律成長。然而,此等較小裝置對於資料儲存及超出外觀尺寸的複雜處理兩者為依賴伺服器。因此,高效能計算市場(亦即,伺服 器空間)之需求亦已增加。舉例而言,在現代伺服器中,通常不僅存在具有多個核心的單一處理器,而且存在多個實體處理器(亦被稱作多個插口)以增加計算能力。但隨著處理能力與計算系統中的裝置之數目一起增加,插口與其他裝置之間的通訊變得更關鍵。
實際上,互連件已自主要處置電通訊的更傳統多接頭匯流排成長為促進快速通訊的成熟互連架構。不利的是,隨著對在甚至較高速率下進行消耗的將來處理器之需求增加,對現有互連架構的能力提出對應需求。
依據本發明之一實施例,係特地提出一種設備,其包含:一傳輸器,其用以發送資料以對應於相關聯於共享記憶體之一載入/儲存型操作,其中該資料係用以在根據一記憶體存取連結協定之一連結上發送,且該記憶體存取連結協定係用以覆疊在另一不同連結協定上;功率管理邏輯,其用以發送一請求以進入一低功率狀態,其中該請求係用以包含編碼在一符記之一欄位中之一資料值,該符記係指示封包資料之一開始且係進一步指示將在該符記之後發送的後續資料是否係用以包含根據該另一連結協定及該記憶體存取連結協定中之一者的資料。
100‧‧‧系統
105、1500、1600‧‧‧處理器
106‧‧‧前側匯流排(FSB)/連結
110、1575‧‧‧系統記憶體
115‧‧‧控制器集線器/控制器/根複合體
116‧‧‧記憶體介面
117、121‧‧‧輸入輸出模組/介面/埠
118、131‧‧‧輸入輸出模組/介面
122、126‧‧‧介面
119、132‧‧‧串列連結
120‧‧‧交換器/橋接器
125‧‧‧I/O裝置
130‧‧‧圖形加速器
200‧‧‧分層協定堆疊
205‧‧‧異動層
206‧‧‧封包標頭/有效負載
210‧‧‧資料連結層
211‧‧‧封包序列識別符
212‧‧‧CRC
220、505a、505b、815a、815b‧‧‧實體層
221‧‧‧邏輯子區塊
222‧‧‧電子子區塊/實體子區塊/實體區塊
223‧‧‧訊框
300‧‧‧異動描述符
302‧‧‧全域識別符欄位/全域異動識別符
304‧‧‧屬性欄位
306‧‧‧頻道識別符欄位
308‧‧‧本端異動識別符欄位
310‧‧‧源識別符欄位/源識別符
312‧‧‧優先權欄位/優先權子欄位
314‧‧‧保留欄位/保留屬性欄位
316‧‧‧定序欄位/定序屬性欄位
318‧‧‧非窺探欄位/窺探屬性欄位
405、410、710‧‧‧裝置
406、411‧‧‧傳輸邏輯
407、412‧‧‧接收邏輯
415‧‧‧連結
416、417‧‧‧傳輸路徑
418、419‧‧‧接收路徑
510a、510b、805、810‧‧‧連結層
515a、515b‧‧‧路由層
520a、520b‧‧‧協定層
530‧‧‧封包
535、1120、1130‧‧‧微片
540‧‧‧菲特
600、700、800‧‧‧簡化方塊圖
605、605a、605b‧‧‧共享記憶體
610、610a、610b、610c、610d、610e、610f、610g、610h、610n‧‧‧節點
615、615a、615b‧‧‧共享記憶體控制器
620‧‧‧網路連接控制器/網路控制器
705‧‧‧裝置A
715‧‧‧裝置C
720‧‧‧裝置D
725‧‧‧SML隧道
815‧‧‧PCIe邏輯實體層
820‧‧‧PCIe薄板
825‧‧‧PCIe類比前端(AFE)
830、835、840、845‧‧‧轉換邏輯
850‧‧‧填隙電路系統/填隙
920‧‧‧PCIe STP/符記
925‧‧‧SMI3 STP符記
940‧‧‧同步標頭
1005‧‧‧L0c狀態或視窗
1010‧‧‧L0c間隔之剩餘部分
1110‧‧‧L1進入請求
1140‧‧‧應答
1145‧‧‧非應答信號或NAK
1205‧‧‧上游組件
1210‧‧‧下游組件
1215‧‧‧組配寫入請求
1225‧‧‧組配寫入請求之完成
1260‧‧‧Request_ACK DLLP
1305‧‧‧STP符記
1310‧‧‧TLP序號欄位
1315‧‧‧長度欄位
1401、1402‧‧‧功率管理代理程式(PMA)
1410、1420‧‧‧L1進入信號
1450‧‧‧電閒置
1455、1460‧‧‧信號
1465‧‧‧L1退出信號
1501、1502、1630A、1630N‧‧‧核心
1501a、1501b‧‧‧硬體執行緒/硬體執行緒時槽/架構狀態暫存器/邏輯處理器
1502a、1502b‧‧‧架構狀態暫存器
1505‧‧‧匯流排/高速串列點對點連結
1510‧‧‧晶片上介面/晶片上介面模組
1520‧‧‧分支目標緩衝器/指令轉譯緩衝器(I-TLB)/提取單元
1525‧‧‧解碼器/解碼模組/解碼邏輯
1526‧‧‧解碼器
1530‧‧‧重命名區塊/單元
1535‧‧‧重排序/引退單元/無序單元
1540‧‧‧排程器及執行單元
1550‧‧‧低階資料快取記憶體及資料轉譯緩衝器(D-TLB)
1576‧‧‧應用程式程式碼
1577‧‧‧轉譯器程式碼
1580‧‧‧圖形裝置/圖形處理器
1610‧‧‧系統代理程式域
1612‧‧‧顯示引擎
1614‧‧‧PCIeTM介面
1616‧‧‧直接媒體介面(DMI)
1618‧‧‧PCIeTM橋接器
1620‧‧‧整合式記憶體控制器
1622‧‧‧相干邏輯
1630‧‧‧核心域
1640A、1640N‧‧‧末階快取記憶體(LLC)
1650‧‧‧環形互連件
1652A、1652N‧‧‧環形停止件
1660‧‧‧圖形域
1665‧‧‧媒體引擎
圖1說明包括互連架構之計算系統的實施例。
圖2說明包括分層堆疊之互連架構的實施例。
圖3說明將在互連架構內產生或接收之請求或封 包的實施例。
圖4說明用於互連架構之傳輸器及接收器對的實施例。
圖5說明互連件之實例分層協定堆疊。
圖6說明實例節點之一實施例的簡化方塊圖。
圖7說明包括多個節點之實例系統之一實施例的簡化方塊圖。
圖8說明包括填隙邏輯之節點的實例邏輯。
圖9為根據此共享記憶體連結之一實例所傳輸的資料的表示。
圖10說明嵌入資料串流中之實例控制視窗的表示。
圖11A至圖11B說明利用嵌入控制視窗之實例交握的流程圖。
圖12為另一實例交握的表示。
圖13為資料成框符記之實例開始的表示。
圖14為說明用於進入低功率連結狀態之實例技術的流程圖。
圖15說明包括多核心處理器之計算系統的方塊圖的實施例。
圖16說明包括多核心處理器之計算系統的方塊圖的另一實施例。
各種圖式中之類似參考數字及名稱指示類似元件。
較佳實施例之詳細說明
在以下描述中,闡述諸如以下各者之實例的眾多特定細節,以便提供對本發明之透徹理解:特定類型之處理器及系統組配、特定硬體結構、特定架構及微架構細節、特定暫存器組配、特定指令類型、特定系統組件、特定量測/高度、特定處理器管線級及操作等。然而,熟習此項技術者將顯而易見,無需使用此等特定細節來實踐本發明。在其他例子中,諸如以下各者之熟知組件或方法尚未詳細描述,以便避免使本發明不必要地混淆:特定及替代性處理器架構、針對所描述演算法之特定邏輯電路/程式碼、特定韌體程式碼、特定互連操作、特定邏輯組配、特定製造技術及材料、特定編譯程式實施、演算法以程式碼的特定表達、特定斷電及閘控技術/邏輯以及電腦系統的其他特定操作細節。
儘管可能參考特定積體電路中(諸如,計算平台或微處理器中)之能量節省及能量效率描述以下實施例,但其他實施例可適用於其他類型之積體電路及邏輯裝置。本文中所描述之實施例的類似技術及教示內容可應用於亦可受益於更好能量效率及能量節省的其他類型之電路或半導體裝置。舉例而言,所揭示實施例不限於桌上型電腦系統或UltrabooksTM。且亦可用於其他裝置中,諸如手持型裝置、平板電腦、其他薄型筆記型電腦、系統單晶片(SOC)裝置及嵌入式應用中。手持型裝置之一些實例包括蜂巢式 電話、網際網路協定裝置、數位攝影機、個人數位助理(PDA)及手持型PC。嵌入式應用通常包括微控制器、數位信號處理器(DSP)、系統單晶片、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)交換器,或可執行下文所教示之功能及操作的任何其他系統。此外,本文所描述之設備、方法及系統不限於實體計算裝置,而亦可能係關於針對能量節省及效率之軟體最佳化。如在以下描述內容中將變得易於顯而易見的,本文中所描述之方法、設備及系統之實施例(不管參考硬體、韌體、軟體抑或其組合)對於藉由效能考量平衡的「綠色技術」遠景為至關重要的。
隨著計算系統進展,計算系統中之組件正變得更複雜。結果,用以在該等組件之間耦接及通訊之互連架構的複雜性亦增加,以確保對於最佳組件操作滿足頻寬要求。此外,不同市場區隔要求互連架構之不同態樣以適合市場之需求。舉例而言,伺服器需要較高效能,而行動生態系統有時能夠犧牲總體效能以實現電力節省。又,多數網狀架構的單一目的為在最大電力節省情況下提供最高可能效能。下文中,論述多個互連件,該等互連件將潛在地受益於本文中所描述的本發明之態樣。
一個互連網狀架構包括快速周邊組件互連(PCI)(PCIe)架構。PCIe之主要目標為使得來自不同供應商之組件及裝置能夠在開放式架構中互操作,從而跨越多個市場區隔;用戶端(桌上型電腦及行動裝置)、伺服器(標準及企業)及嵌入式及通訊裝置。快速PCI為針對廣泛之多種將來計算 及通訊平台定義的高效能通用I/O互連。一些PCI屬性(諸如,其使用模型、載入儲存架構及軟體介面)已經由其修訂版得以保持,而先前並列匯流排實施已由高度可調式之充分串列介面替換。快速PCI之最近版本利用點對點互連、基於交換器之技術及封包化協定的進展來遞送新層級的效能及特徵。功率管理、服務品質(QoS)、熱插拔/熱交換支援、資料完整性及錯誤處置為由快速PCI支援之進階特徵中的一些。
參看圖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為快速周邊組件互連(PCIe或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中,諸如裝 置之俗名(vernacular)被稱作端點。儘管未具體展示,但裝置125可包括PCIe至PCI/PCI-X橋接器以支援舊版或其他版本PCI裝置。PCIe中之端點裝置常常分類為舊版PCIe或根複合體整合式端點。
圖形加速器130亦經由串列連結132耦接至控制器集線器115。在一個實施例中,圖形加速器130耦接至MCH(其耦接至ICH)。交換器120且因此I/O裝置125接著耦接至ICH。I/O模組131及118亦將實施分層協定堆疊以在圖形加速器130與控制器集線器115之間通訊。類似於上文所論述之MCH,圖形控制器或圖形加速器130自身可整合於處理器105中。
轉至圖2,說明分層協定堆疊之一實施例。分層協定堆疊200包括任何形式之分層通訊堆疊,諸如快速路徑互連(QPI)堆疊、PCIe堆疊、下一代高效能計算互連堆疊,或其他分層堆疊。儘管就在下文參看圖1至圖4進行的論述內容與PCIe堆疊相關,但相同概念可應用於其他互連堆疊。在一個實施例中,協定堆疊200為包括異動層205、連結層210及實體層220的PCIe協定堆疊。諸如圖1中之介面117、118、121、122、126及131的介面可表示為通訊協定堆疊200。作為通訊協定堆疊的表示亦可被稱作實施/包括協定堆疊的模組或介面。
快速PCI使用封包在組件之間傳達資訊。封包形成於異動層205及資料連結層210中以將資訊自傳輸組件載運至接收組件。由於所傳輸封包流過其他層,因此該等封 包藉由在彼等層處處置封包必要的額外資訊擴展。在接收側,反向程序發生,且封包自其實體層220之表示變換至資料連結層210的表示,且最終(對於異動層封包)變換至可由接收裝置之異動層205處理的形式。
異動層
在一個實施例中,異動層205將提供裝置之處理核心與互連架構之間的介面,諸如資料連結層210及實體層220。就此而言,異動層205之主要職責為組裝及分解封包(亦即,異動層封包,或TLP)。轉譯層205通常管理用於TLP之信用基礎流程控制。PCIe實施***異動(亦即,具有由時間分離之請求及回應的異動),從而允許連結載運其他訊務,同時目標裝置收集針對回應之資料。
此外,PCIe利用基於信用之流程控制。在此方案中,裝置公告針對異動層205中之接收緩衝器中之每一者的初始信用量。連結之相對末端處的外部裝置(諸如,圖1中之控制器集線器115)對由每一TLP消耗之信用數目進行計數。若異動並未超出信用限值,則可傳輸異動。在接收到回應後,隨即復原信用量。信用方案之優點為,信用傳回之潛時並不影響效能,其限制條件為未遭遇到信用限值。
在一個實施例中,四個異動位址空間包括組配位址空間、記憶體位址空間、輸入/輸出位址空間及訊息位址空間。記憶體空間異動包括讀取請求及寫入請求中之一或多者以傳送至/自記憶體映射位置的資料。在一個實施例中,記憶體空間異動能夠使用兩種不同位址格式,例如, 諸如32位元位址的短位址格式或諸如64位元位址的長位址格式。組配空間異動用以存取PCIe裝置之存取組配空間。對組配空間之異動包括讀取請求及寫入請求。訊息空間異動(或簡單地訊息)經定義以支援PCIe代理程式之間的頻帶內通訊。
因此,在一個實施例中,異動層205組裝封包標頭/有效負載206。用於當前封包標頭/有效負載之格式可在PCIe規範網站上之PCIe規範中發現。
快速參看圖3,說明PCIe異動描述符之一實施例。在一個實施例中,異動描述符300為用於載運異動資訊之機制。就此而言,異動描述符300支援系統中之異動的識別。其他潛在用途包括追蹤預設異動排序之修改,及異動與頻道的關聯。
異動描述符300包括全域識別符欄位302、屬性欄位304及頻道識別符欄位306。在所說明實例中,全域識別符欄位302經描繪為包含本端異動識別符欄位308及源識別符欄位310。在一個實施例中,全域異動識別符302對於所有突出請求係唯一的。
根據一個實施,本端異動識別符欄位308為藉由請求代理程式產生的欄位,且其對於要求該請求代理之完成的所有突出請求係唯一的。此外,在此實例中,源識別符310唯一地識別PCIe階層架構內的請求者代理程式。因此,與源ID 310一起,本地異動識別符308欄位提供階層架構域內異動的全域識別。
屬性欄位304指定異動的特性及關係。就此而言,屬性欄位304可能用以提供允許修改異動之預設處置的額外資訊。在一個實施例中,屬性欄位304包括優先權欄位312、保留欄位314、定序欄位316及非窺探欄位318。此處,優先權子欄位312可藉由起始程序修改以指派優先權給異動。保留屬性欄位314保持保留以供將來使用或供應商定義之使用。使用優先權或安全性屬性的可能使用模型可使用保留屬性欄位來實施。
在此實例中,定序屬性欄位316用以供應輸送定序之類型的可選資訊,該定序類型可修改預設定序規則。根據一個實例實施,為「0」之定序屬性指明預設定序規則應用,其中為「1」之定序屬性指明寬鬆定序,其中寫入可傳遞相同方向上的寫入,且讀取完成可傳遞相同方向上的寫入。窺探屬性欄位318用以判定異動是否被窺探。如所示,頻道ID欄位306識別異動與之相關聯的頻道。
連結層
亦稱作資料連結層210之連結層210充當異動層205與實體層220之間的中間級。在一個實施例中,資料連結層210之職責為提供用於經由連結在兩個組件之間交換異動層封包(TLP)的可靠機制。資料連結層210的一側接受由異動層205組裝的TLP,應用封包序列識別符211(亦即,識別編號或封包編號),計算並應用錯誤偵測碼(亦即,CRC 212),且將經修改TLP提交至實體層220從而越過實體傳輸至外部裝置。
實體層
在一個實施例中,實體層220包括邏輯子區塊221及電子區塊222以將封包實體傳輸至外部裝置。此處,邏輯子區塊221負責實體層221之「數位」功能。就此而言,邏輯子區塊包括準備去話資訊以供實體子區塊222傳輸的傳輸區段,及在將接收到之資訊傳遞至連結層210之前識別並準備接收到之資訊的接收器區段。
實體區塊222包括傳輸器及接收器。由邏輯子區塊221向傳輸器供應符號,傳輸器使該等符號串列化並將該等符號傳輸至外部裝置上。接收器自外部裝置被供應串列化符號,且將接收到之信號變換成位元串流。位元串流經解串列化且供應至邏輯子區塊221。在一個實施例中,使用8b/10b傳輸碼,藉由該傳輸碼傳輸/接收十位元符號。此處,特殊符號用以由訊框223將封包訊框化。此外,在一個實例中,接收器亦提供自傳入串列串流復原的符號時脈。
如上文所陳述,儘管異動層205、連結層210及實體層220係參考PCIe協定堆疊之特定實施例論述,但分層協定堆疊不因此受限。實際上,可包括/實施任何分層協定。作為一實例,表示為分層協定之埠/介面包括:(1)組裝封包之第一層,亦即異動層;使封包排成序列之第二層,亦即連結層;及傳輸封包之第三層,亦即實體層。作為特定實例,利用共同標準介面(CSI)分層協定。
接下來參看圖4,說明PCIe串列點對點網狀架構之一實施例。儘管說明了PCIe串列點對點連結之一實施 例,但串列點對點連結並不因此受限,此係因為串列點對點連結包括用於傳輸串列資料的任何傳輸路徑。在所示之實施例中,基本PCIe連結包括兩個低電壓差分驅動信號對:傳輸對406/411及接收對412/407。因此,裝置405包括用以傳輸資料至裝置410的傳輸邏輯406及用以自裝置410接收資料的接收邏輯407。換言之,兩個傳輸路徑(亦即,路徑416及417)及兩個接收路徑(亦即,路徑418及419)包括於PCIe連結中。
傳輸路徑指用於傳輸資料的任何路徑,諸如傳輸線、銅線、光學線、無線通訊頻道、紅外線通訊連結,或其他通訊路徑。兩個裝置(諸如,裝置405與裝置410)之間的連接被稱作連結,諸如連結415。連結可支援一個單工通道,每一單工通道表示差分信號對之一集合(一對信號用於傳輸,一對信號用於接收)。為了縮放頻寬,連結可聚集藉由xN指明的多個單工通道,其中N為任何所支援連結寬度,諸如1、2、4、8、12、16、32、64或更寬之連結寬度。
差分對指用以傳輸差分信號的兩個傳輸路徑,諸如線416及417。作為一實例,當線416自低電壓位準雙態觸變至高電壓位準(亦即,上升邊緣)時,線417自高邏輯位準驅動至低邏輯位準(亦即,下降邊緣)。差分信號可能證明更好電特性,諸如更好信號完整性(亦即,交叉耦合、電壓突增/下沖、響鈴等)。此情形允許更好的時序窗,其啟用更快之傳輸頻率。
可利用現有互連及通訊架構(包括PCIe)之實體 層以提供系統內之共享記憶體及I/O服務。傳統地,可快取記憶體無法在使用傳統載入/儲存(LD/ST)記憶體語義的獨立系統之間共享。獨立系統或「節點」在其充當單一邏輯實體之意義上可獨立,藉由單一作業系統(及/或單一BIOS或虛擬機監視器(VMM))控制,及/或具有獨立容錯網域。單一節點可包括一個或多個處理器裝置,可實施於單一板或多個板上,且可包括本端記憶體(包括可藉由同一節點上之裝置使用LD/ST語義存取之可快棋記憶體)。在節點內,共享記憶體可包括諸如隨機存取記憶體(RAM)之記憶體的一或多個區塊,該等一或多個區塊可由節點內之若干不同處理器(例如,中央處理單元(CPU))存取。共享記憶體亦可包括節點中之處理器或其他裝置之本端記憶體。具有共享記憶體的節點內的多個裝置可共享共享記憶體內之資料的單一檢視。涉及共享記憶體之I/O通訊可為極低潛時的且允許藉由多個處理器快速存取記憶體。
傳統地,不同節點之間的記憶體共享尚未允許根據載入/儲存範式之記憶體共享。舉例而言,在一些系統中,已經由分散式記憶體架構促進不同節點之間的記憶體共享。在傳統解決方案中,計算任務對本端資料操作,且若需要另一節點之資料,則計算任務(例如,藉由另一CPU節點執行)(例如)在利用諸如乙太網路、無限頻帶(InfiniBand)或另一分層協定之通訊協定的通訊頻道上與另一節點通訊。在傳統多節點系統中,不同節點之處理器不必知道資料駐存於何處。使用傳統方法(諸如,經由協定堆 疊)共享資料可具有顯著高於使用載入/儲存範式之節點內之記憶體共享的潛時。在其他實例中,並非直接定址共享記憶體中之資料及對其進行操作,一個節點可使用諸如乙太網路(或無限頻帶)之現有協定交握請求來自另一節點之資料,且源節點可提供資料,以使得資料可藉由請求節點儲存且進行操作。
在一些實施中,可提供共享記憶體架構,其允許記憶體在獨立節點之間共享以用於使用載入/儲存(LD/ST)記憶體語義之排他性或共享存取。在一個實例中,記憶體語義(及目錄資訊,在可應用的情況下)連同I/O語義(針對諸如PCIe之協定)可導出於插腳之共同集合或插腳之單獨集合上。在此系統中,經改良共享記憶體架構可為系統中之多個節點中之每一者以維持其自身的獨立容錯網域(及本端記憶體),同時使共享記憶體集區能夠藉由節點存取且低潛時訊息根據LD/ST語義使用記憶體在節點之間傳遞。在一些實施中,此共享記憶體集區可動態地(或靜態地)分配在不同節點之間。因此,吾人亦可將系統之各種節點組配成動態變化的節點群組,以合作性地且靈活地對隨著需求出現而利用(例如)共享記憶體基礎結構的各種任務作用。
在一個實施例中,互連件可設置於高效計算平台(諸如,工作站或伺服器)中,以連接處理器、加速器、計算區塊、I/O裝置及類似物。互連架構可經分層以包括經定義層,諸如協定層(連貫、非連貫且視情況其他基於記憶體之協定)、路由層、連結層及實體層。圖5說明互連件之實例 分層協定堆疊之一實施例。在一些實施中,圖5中所說明之該等層中之至少一些可為可選的。每一層處理其自身的粒度位準或資訊量(具有封包530之協定層505a、505b,具有微片(flit)535之連結層510a、510b,及具有菲特(phit)540之實體層505a、505b)。應注意,在一些實施例例中,封包可基於實施而包括部分微片、單一微片或多個微片。
作為第一實例,菲特540之寬度包括連結寬度至位元之1對1映射(例如,20位元連結寬度包括20位元之菲特等)。微片可具有較大大小,諸如184、192或200位元。應注意,若菲特540為20位元寬且微片535之大小為184位元,則傳輸一個微片535將耗用分數數目個菲特540(例如,在其他實例中,20位元下之9.2個菲特將傳輸184位元之微片535,或20位元下之9.6個菲特將傳輸192位元之微片)。應注意,實體層處之基本連結之寬度可改變。舉例而言,每個方向之單工通道之數目可包括2、4、6、8、10、12、14、16、18、20、22、24等。在一個實施例中,連結層510a、510b能夠將不同異動之多個片段嵌入單一微片中,且一或多個標頭(例如,1、2、3、4)可嵌入該微片內。在一個實例中,該等標頭可***成對應時槽以使微片中之多個訊息能夠前往不同節點。
在一個實施例中,實體層505a、505b可負責資訊在實體媒體(電或光學等)上之快速傳送。實體連結可在兩個連結層實體(諸如,層505a及505b)之間點對點。連結層510a、510b可自上部層抽象實體層505a、505b,且提供可 靠地傳送資料(以及請求)且管理兩個直接連接實體之間的流程控制的能力。連結層亦可負責將實體頻道虛擬化成多個虛擬頻道及訊息等級。協定層520a、520b依賴於連結層510a、510b以在將協定訊息遞交至實體層505a、505b以供跨實體連結傳送之前將協定訊息映射至適當訊息等級及虛擬頻道。在其他實例中,連結層510a、510b可支援多個訊息,諸如請求、窺探、回應、回寫、非連貫資料。
實體層505a、505b(或PHY)可經定義以在電層(亦即,連接兩個組件之電導體)上方且在連結層510a、510b之下實施,如圖5中所說明。實體層及對應邏輯可駐留在每一代理程式上且連接彼此分離之兩個代理程式(A及B)上(例如,連結之任一側上的裝置上)的連結層。本端及遠端電層係藉由實體媒體(例如,電線、導體、光學件等)連接。在一個實施例中,實體層505a、505b具有兩個主要階段:初始化及操作。在初始化期間,連接對於連結層不透明,且發信可涉及定時狀態與交握事件之組合。在操作期間,連接對於連結層透明,且發信以一速度進行,且所有單工通道作為單一連結一起操作。在操作階段期間,實體層將微片自代理程式A傳輸至代理程式B且自代理程式B傳輸至代理程式A。連接亦被稱作連結且自連結層抽象包括媒體、寬度及速度之一些實體態樣,同時與連結層交換微片及當前組配(例如,寬度)之控制/狀態。初始化階段包括次要階段,例如輪詢、組配。操作階段亦包括次要階段(例如,連結功率管理狀態)。
在一個實施例中,連結層510a、510b可經實施以便在兩個協定或路由實體之間提供可靠資料傳送。連結層可自協定層520a、520b抽象實體層505a、505b,且可負責兩個協定代理程式(A、B)之間的流程控制,且將虛擬頻帶服務提供至協定層(訊息等級)及路由層(虛擬網路)。協定層520a、520b與連結層510a、510b之間的介面通常可處於封包層級。在一個實施例中,連結層處之最小傳送單元被稱作微片,其指定位元之數目,諸如192位元或某一其他命名。連結層510a、510b依賴於實體層505a、505b以將實體層505a、505b之傳送單元(菲特)訊框化成連結層510a、510b之傳送單元(微片)。此外,連結層510a、510b可邏輯上分成兩個部分:發送者及接收器。一個實體上之發送者/接收器對可連接至另一實體上之接收器/發送者。流程控制常常基於微片及封包兩者來執行。錯誤偵測及校正亦可能基於微片層級來執行。
在一個實施例中,路由層515a、515b可提供靈活且分散之方法以將異動自源投送至目的地。該方案係靈活的,此係因為用於多個拓撲之路由演算法可經由每一路由器處之可規劃路由表指定(在一個實施例中,規劃係藉由韌體、軟體或其一組合執行)。路由功能性可分散;路由可經由一系列路由步驟進行,其中每一路由步驟係經由對源、中間路由器或目的地路由器中之任一者處之表的查找界定。源處之查找可用以將封包注入至網狀架構中。中間路由器處之查找可用以將封包自輸入埠投送至輸出埠。目的 地埠處之查找可用以將目的地協定代理程式作為目標。應注意,在一些實施中,路由層可以薄,此係因為路由表且因此路由演算法未藉由規範具體定義。此情形允許靈活性及多種使用模型,包括將藉由系統實施界定之彈性平台架構拓撲。路由層515a、515b依賴於連結層510a、510b以供提供至多三個(或三個以上)虛擬網路(VN)之使用-在一個實例中,兩個無死鎖VN:界定於每一虛擬網路中的具有若干訊息等級之VN0及VN1。在其他特徵及實例中,共享自適應性虛擬網路(VNA)可在連結層中界定,但此自適應性網路在路由概念中不可直接暴露,此係因為每一訊息等級及虛擬網路可具有專用資源且保證向前發展。
在一個實施例中,互連架構可包括相干協定層520a、520b以支援代理程式自記憶體快取資料行。希望快取記憶體資料之代理程式可使用相干協定讀取資料行以載入至其快取記憶體中。希望修改快取記憶體中之資料行的代理程式可在修改資料之前使用相干協定獲取資料行之所有權。在修改資料行之後,代理程式可遵循將資料行保持在其快取記憶體中的協定要求,直至代理程式將資料行寫回至記憶體或將資料行包括於對外部請求之回應中。最後,代理程式可滿足外部請求以使其快取記憶體中之資料行失效。協定藉由規定所有快取代理程式可遵循之規則來確保資料之一致性。協定亦為不具快取記憶體之代理程式提供方法以相干地讀取及寫入記憶體資料。
可強制兩個條件以支援利用實例相干協定之異 動。首先,協定可(作為一實例)基於每個位址而維持代理程式之快取記憶體中之資料中及彼等資料與記憶體中之資料之間的資料一致性。正式地,資料一致性可指代理程式之快取記憶體中的每一有效資料行,其表示資料之最新值,且相干協定封包中所傳輸之資料可表示當其經發送時的資料之最新值。當資料之有效複本不存在於快取記憶體中或傳輸中時,協定可保證資料之最新值駐留於記憶體中。其次,協定可提供針對請求之定義明確的承諾點。針對讀取之承諾點可指示何時資料可使用;且針對寫入,承諾點可指示何時寫入資料全域可觀擦且將藉由後續讀取載入。協定可支援針對連貫記憶體空間中之可快取及不可快取(UC)請求的此等承諾點。
在一些實施中,互連件可利用嵌入時脈。時脈信號可嵌入使用互連件傳輸之資料。利用嵌入資料中之時脈信號,可省略相異的且專用的時脈單工通道。舉例而言,此情形可以有用,此係因為該慶倖可允許裝置之更多插腳專用於資料傳送,特別在用於插腳之空間非常珍貴的系統中。
連結可在互連件之任一側面上的兩個代理程式之間建立。發送資料之代理程式可為本端代理程式,且接收資料之代理程式可為遠端代理程式。狀態機可由兩個代理程式使用以管理連結之各種態樣。在一個實施例中,實體層資料路徑可將微片自連結層傳輸至電前端。在一個實施中,控制路徑包括狀態機(亦被稱作連結訓練狀態機或類 似者)。狀態機自狀態之動作及退出可取決於內部信號、計時器、外部信號或其他資訊。實際上,狀態中之一些(諸如,幾個初始化狀態)可具有計時器以提供用以退出狀態之逾時值。應注意,在一些實施例中,偵測指偵測單工通道之兩個分支上的事件;但未必同時偵測。
在其他類別及子類別中,狀態機中所定義之狀態可包括重設狀態、初始化狀態及可操作狀態。在一個實施例中,動作及退出可基於訓練序列之交換。在一個實施例中,連結狀態機將在本端代理程式時脈域中運行且自一個狀態轉變至下一個狀態,以與傳輸器訓練序列邊界一致。狀態暫存器可用以反映當前狀態。狀態實例可包括(例如):傳輸連結狀態:連結狀態。將微片發送至遠端代理程式。狀態可自一阻斷連結狀態進入且可返回至關於一事件(諸如,逾時)之阻斷連結狀態。在傳輸連結狀態(TLS)期間,傳輸器傳輸微片且接收器接收微片。亦可自TLS退出至低功率連結狀態。在一些實施中,TLS可被稱作「L0」狀態。
阻斷連結狀態:連結狀態。傳輸器及接收器正以統一方式操作。可存在定時狀態,在定時狀態期間,連結層微片被釋放,同時實體層資訊被傳達至遠端代理程式。可退出至低功率連結狀態(或基於設計之其他連結狀態)。在一個實施例中,阻斷連結狀態(BLS)可定期出現。週期可被稱作BLS間隔且可定時,且在慢速與可操作速度之間可不同。應注意,連結層可定期自發送微片阻斷,以使得長度 之實體層控制序列可諸如在傳輸連結狀態或部分寬度傳輸連結狀態期間發送。在一些實施中,阻斷連結狀態(BLS)可被稱作L0控制或「L0c」狀態。
部分寬度傳輸連結狀態:功率節省連結狀態。在一個實施例中,不對稱部分寬度指兩方向連結之每一方向具有不同寬度,在一些設計中可支援該情形。儘管速度在部分寬度狀態中不可更改,但可更改連結之單工通道之寬度。因此,微片可能在不同寬度下發送。部分寬度狀態可退出至其他連結狀態,諸如基於特定所接收及所發送之訊息或部分寬度傳輸連結狀態之退出的低功率連結狀態,或基於其他事件的連結阻斷狀態。在一個實施例中,傳輸器埠可以交錯方式關閉閒置單工通道,以提供較好信號完整性(亦即,雜訊減輕)。可在連結寬度改變所在之週期期間使用非可重試微片,諸如空微片。對應接收器可丟棄此等空微片且以交錯方式關閉閒置單工通道,以及將當前及先前單工通道地圖記錄在一或多個結構中。請注意,狀態及相關聯狀態暫存器可保持未更改。在一些實施中,部分寬度傳輸連結狀態可被稱作部分L0或L0p狀態。
退出部分寬度傳輸連結狀態:退出部分寬度狀態。在一些實施中,可以或可不使用阻斷連結狀態。在一個實施例中,傳輸器藉由在閒置單工通道上發送部分寬度退出型樣以訓練及抗扭斜該等部分寬度退出型樣來起始退出。作為一個實例,退出型樣以EIEOS(其經偵測且經解彈跳至單工通道準備開始至完全傳輸連結狀態之進入的信號) 開始,且可以閒置單工通道上之SDS或快速訓練序列(FTS)結束。退出序列期間之任何失敗(接收器動作,諸如抗扭斜在逾時之前未完成)停止至連結層之微片傳送,且確證重設,其藉由在下一個阻斷連結狀態出現時重設連結來處置。SDS亦可將單工通道上之擾頻器/解擾頻器初始化至適當值。
低功率連結狀態:為較低功率狀態。在一個實施例中,低功率連結狀態為比部分寬度連結狀態低的功率,此係因為此實施例中之發信在所有單工通道上且在兩個方向上停止。傳輸器可將阻斷連結狀態用於請求低功率連結狀態。此處,接收器可解碼請求且以ACK或NAK回應;否則重設可被觸發。在一些實施中,低功率連結狀態可被稱作L1狀態。
轉至圖6,展示簡化方塊圖600,其說明包括能夠藉由多個獨立節點610a至610n中之每一者使用載入/儲存技術存取的共享記憶體605之一實例系統。舉例而言,可提供共享記憶體控制器615,其可接受系統上之各種節點610a至610n之載入/儲存存取請求。可利用同步動態隨機存取記憶體(SDRAM)、雙排記憶體模組(DIMM)及其他非依電性記憶體(或依電性記憶體)來實施共享記憶體605。
每一節點本身可具有一個或多個CPU插口,且亦可包括藉由系統中之其他節點而保持與LD/ST存取隔絕的本端記憶體。節點可使用一或多個協定(包括PCIe、QPI、乙太網路連同其他實例)與系統上之其他裝置(例如,共享記 憶體控制器615、網路連接控制器620、其他節點等)通訊。在一些實施中,可提供共享記憶體連結(SML)協定,經由該協定可支援低潛時LD/ST記憶體語義。SML可(例如)在由系統之各種節點610a至610n傳達共享記憶體605之讀取及寫入(經由共享記憶體控制器615)時使用。在一些實施中,SML可採用結合圖5之實例所描述的互連架構及協定之態樣。
在一個實例中,SML可基於記憶體存取協定,諸如第3代可擴充式記憶體互連(SMI)(SMI3)。在其他實例中,可替代地使用其他記憶體存取協定,諸如執行式記憶體存取協定,諸如完全緩衝DIMM(FB-DIMM)、執行式DDR(DDR-T)。在其他例子中,SML可基於具有額外目錄擴展之原生PCIe記憶體讀取/寫入語義。SML的基於記憶體協定之實施可提供因經定製為快取行記憶體存取所致的頻寬效率優點。儘管高效裝置間通訊協定存在(諸如,PCIe),但此等協定之上層(例如,異動層及連結層)可引入潛時,其降低完全協定用於LD/ST記憶體異動(包括涉及共享記憶體605之異動)中的應用。記憶體連結協定(諸如,SMI3)可允許提供較低潛時存取的可能額外優點,此係因為該協定可繞過諸如PCIe之另一協定堆疊的大部分。因此,SML之實施可利用SMI3或在另一協定之邏輯及實體PHY上運作之另一記憶體協定(諸如,PCIe上之SMI3)。
如所述,在一些實施中,可提供共享記憶體控制器(SMC)615,其包括用於處置系統中之節點610a至610n之載入/儲存請求的邏輯。載入/儲存請求可由SMC 615在利用 SML且將節點610a至610n連接至SMC 615的連結上接收。在一些實施中,SMC 615可實施為諸如特殊應用積體電路(ASIC)之裝置,其包括用於服務節點610a至610n對共享記憶體資源之存取請求的邏輯。在其他例子中,SMC 615(以及共享記憶體605)可駐留於與節點610a至610n中之一或多者分離之裝置、晶片或板上。SMC 615可進一步包括用以協調涉及共享記憶體605之各種節點異動的邏輯。另外,SMC可維持追蹤對包括於共享記憶體605中之各種資料資源(諸如,每一快取行)之存取的目錄。舉例而言,在其他可能實例中,資料資源可處於共享存取狀態(例如,能夠同時地被節點內之多個處理及/或I/O裝置存取(例如,載入或讀取))排它性存取狀態(例如,被節點內之單一處理及/或I/O裝置排他性地保留(若非暫時地)(例如,用於儲存或寫入操作))、未快取狀態中。此外,儘管每一可直接存取共享記憶體605之一或多個部分,但不同定址方案及值可被各種節點(例如,610a至610n)使用,從而導致相同共享記憶體資料由第一節點根據第一位址引用(例如,在指令中)且第二節點根據第二位址值引用相同資料。SMC 615可包括邏輯(包括將節點之位址映射至共享記憶體資源的資料結構),以允許SMC 615解譯各種節點之各種存取請求。
另外。在一些狀況下,共享記憶體之某一部分(例如,特定分區、記憶體區塊、記錄、檔案等)可經受特定權限、規則及指派,以使得僅節點610a至610n之一部分被允許(例如,藉由SMC 615)存取對應資料。實際上,每一共享 記憶體資源可指派給系統之節點610a至610n之各別(且在一些情況下,不同的)子集。此等指派可為動態的,且615可修改此等規則及權限(例如,點播、動態地等)以適應可適用於共享記憶體605之給定部分的新的或已改變的規則、權限、節點指派及所有權。
實例SMC 615可進一步追蹤涉及系統中之節點(例如,610a至610n)的存取一或多個共享記憶體資源之各種異動。舉例而言,在其他異動資訊中,SMC 615可追蹤針對每一共享記憶體605之異動地資訊,包括對異動中所涉及之節點的識別、異動之進展(例如,異動是否已完成)。此情形可准許傳統分佈式記憶體架構之異動導向態樣中之一些應用於本文中所描述的經改良多節點共享記憶體架構。另外,異動追蹤(例如,由SMC進行)可用以幫助維持或執行每一各別節點之相異且獨立的容錯網域。舉例而言,SMC可將每一發展中異動之對應節點ID維持在其內部資料結構中(包括在記憶體中),且使用彼資訊實施存取權利及維持每一節點之個別容錯網域。因此,當該等節點中之一者被破壞(例如,歸因於關鍵錯誤、已觸發恢復序列或其他故障或事件)時,僅彼節點及其涉及共享記憶體605之異動被中斷(例如,藉由SMC傾印)-剩餘節點的涉及共享記憶體605之異動繼續,與另一節點中之故障無關。
系統可包括多個節點。另外,一些實例系統可包括多個SMC。在一些狀況下,節點可能夠存取離開共享記憶體未直接附接至的遠端SMC之共享記憶體(亦即,節點之 本端SMC經由一個或多個SML連結跳躍連接至遠端SMC)。遠端SMC可在同一板中或可在不同板中。在一些狀況下,節點中之一些可在系統外(例如,在板外或在晶片外),但仍然存取共享記憶體605。舉例而言,在其他實例中,一或多個系統外節點可使用SML相容連結而直接連接至SMC。另外,包括自身SMC及共享記憶體之其他系統亦可與SMC 610連接,以將記憶體605之共享延伸至包括於(例如)另一板上的與經由SML連結連接至SMC之另一SMC介接的節點。再此外,網路連接可在其中穿隧以將存取進一步延伸至其他板外或晶片外節點。舉例而言,在其他實例中,SML可經由以通訊方式耦接圖6之實例系統與另一系統的乙太網路連接(例如,經由網路控制器620提供)隧道傳輸,該另一系統亦可包括一或多個其他節點且允許此等節點亦得到對SMC 615且因此共享記憶體605之存取。
作為另一實例,如圖7之簡化方塊圖700中所示,准許藉由多個獨立節點根據LD/ST記憶體語義進行之共享存取的經改良共享記憶體架構可靈活地允許提供多種不同的多節點系統設計。多個節點之各種組合可經指派以共享設置於實例系統中的一或多個共享記憶體區塊之部分。舉例而言,圖7之實例中所示之另一實例系統可包括實施為(例如)單獨晶粒、板、晶片等的多個裝置705、710、715、720,每一裝置包括一或多個獨立CPU節點(例如,610a至610h)。每一節點可包括其自身的本端記憶體。多個裝置705、710、715、720中之一或多者可進一步包括可藉由系 統之節點610a至610h中之兩個或兩個以上節點存取的共享記憶體。
圖7中所說明之系統為經提供以說明經由經改良共享記憶體架構(諸如,本文中所展示及描述之共享記憶體架構)可實現讀變化性中之一些的一實例。舉例而言,裝置A 705及裝置C 715中之每一者可包括各別共享記憶體元件(例如,605a、605b)。因此,在一些實施中,相異裝置上之每一共享記憶體元件可進一步包括各別共享記憶體控制器(SMC)615a、615b。節點610a至610h之各種組合可以通訊方式耦接至每一SMC(例如,615a、615b),從而允許該等節點存取對應共享記憶體(例如,605a、605b)。作為一實例,裝置A 705之SMC 615a可使用直接資料連結支援SML連接至裝置A上之節點610a、610b。另外,另一裝置(例如,裝置C 715)上之另一節點610c亦可藉助於自節點610c(及/或其裝置715)至SMC 615a之直接固線式連接(支援SML)而存取共享記憶體605a。間接的基於網路或其他此等連接亦可用以允許遠端或板外裝置(例如,裝置D 720)之節點(例如,610f至610h)利用習知協定堆疊與SMC 615a介接,從而亦存取共享記憶體605a。舉例而言,SML隧道725可在乙太網路、無限頻帶或耦接裝置A與裝置D之其他連接上建立。儘管建立及維持隧道可引入某一額外的額外負擔及潛時,但與在其他較少軟體管理之實體連接上運作之SML相比,SML隧道725在建立時可作為其他SML頻道操作且允許節點610f至610h經由SML與SMC 615a介接且存取共享記憶體 605a,如經由SML連結與SMC通訊之任何其他節點可進行的。舉例而言,SML頻道中之封包的可靠性及定序可藉由系統中之網路連接組件任一者實施,或其可在SMC之間端對端地實施。
在另外其他實例中,裝置上的不同於代管共享記憶體(例如,605a)之特定部分之節點的節點(例如,615d、615e)可藉由直接連接至自身(例如,使用SML連結)耦接至對應SMC(例如,615a)的另一SMC(例如,615b)而間接連接至對應SMC(例如,SMC 615a)。連結兩個或兩個以上SMC(例如,615a、615b)可有效地擴大可用於系統上之節點610a至610h的共享記憶體之量。舉例而言,藉助於圖7之實例中的SMC 615a、615b之間的連結,在一些實施中,能夠經由SMC 615a存取共享記憶體605a之節點(例如,610a至610c、610f至610h)中之任一者亦可藉助於SMC 615a與SMC 615b之間的連接而可能存取可共享記憶體605b。同樣,在其他可能實例中,在一些實施中,直接存取SMC 615b之節點中之每一者亦可藉助於SMC 615a、615b之間的連接而存取可共享記憶體605a。
如上文所指出,經改良共享記憶體架構可包括基於記憶體存取協定之低潛時連結協定(即,SML)(諸如,SMI3),且經提供以有助於涉及共享記憶體之載入/儲存請求。儘管傳統SMI3及其他記憶體存取協定可經組配以供單一節點內之記憶體共享之用,但SML可將記憶體存取語義延伸至多個節點以允許多個節點之間的記憶體共享。此 外,SML可潛在地在任何實體通訊連結上使用。SML可利用支援LD/ST記憶體語義之記憶體存取協定,該協定覆疊於經調適以互連相異裝置(及節點)之實體層(及對應實體層邏輯)上。另外,在其他特徵中,SML之實體層邏輯可提供無封包丟棄及錯誤重試之功能性。
在一些實施中,SML可以可以藉由將SMI3覆疊於PCIe PHY上來實施。可提供SML連結層(例如,代替傳統PCIe連結層)以放棄流程控制及其他特徵,且有助於較低潛時記憶體存取,諸如可為傳統記憶體存取架構中之特性。在一個實例中,SML連結層邏輯可在共享記憶體異動與其他異動之間多工。舉例而言,SML連結層邏輯可在SMI3異動與異動之間多工。舉例而言,SMI3(或另一記憶體協定)可覆疊在PCIe(或另一互連協定)上,以使得連結可動態地在SMI3異動與PCIe異動之間切換。此可允許傳統PCIe訊務在一些例子中有效地共存於與SML訊務相同的連結上。
轉至圖8之簡化方塊圖800,說明實例計算節點(例如,610)之特徵。計算節點610可使用藉由將SMI3(或另一記憶體協定)覆疊在相容電實體連結之PCIe(例如,PCIe 3.0)上實施的實例SML與共享記憶體控制器晶片615通訊。節點610可包括多欄分層堆疊,其包括用於記憶體存取協定(例如,SMI3)之欄及用於另一互連協定(諸如,串列通用互連協定,諸如PCIe)之另一欄。每一欄可具有其自身的連結層(例如,805、810),以及在每一各別連結層805、810上的其他層(包括異動、路由、協定及/或相干層(未圖示))。在此 實例中,記憶體存取協定可使用利用192位元微片之連結層。此等微片可跨另一協定之PHY(在此狀況下,利用原生128位元編碼方案(例如,128b/130b)之PCIe相容PHY)發送。因此,在其他實例中,節點610之PCIe PHY邏輯可包括PCIe邏輯PHY 815、PCIe薄板820(例如,位於數位域與類比域之間的額外層)及PCIe類比前端(AFE)825。
轉換邏輯830可將根據記憶體存取協定發送之192位元微片資料轉換成128位元PCIe有效負載以供載運於PCIe實體連結上。同樣,128位元有效負載可(例如,使用邏輯835)反向轉換成192位元微片資料。在此實例中,PCIe欄可包括相似轉換邏輯840、845以將256b PCIe 3.0有效負載轉換成128位元資料。可提供填隙電路系統850以作為連結層與PCIe實體層之間的介面。填隙850可控制哪一連結層資料被發送至實體層。在一些實施中,填隙850可經選擇性組配(例如,藉由設定節點610之硬體中之熔絲),以使得該填隙僅允許使用多個行中之單一行(及連結層805、810中之單一連結層)。舉例而言,填隙850可經設定,以使得節點實施原生PCIe埠(亦即,僅利用PCIe連結層805)或SML埠(亦即,覆疊於PCIe實體層上之記憶體存取協定且僅利用記憶體存取協定連結層810)。在其他例子中,填隙850可起作用以動態地多工來自任一欄之資料,從而導致資料串流在PCIe資料模式與SML資料模式之間雙態觸變。
圖9說明將記憶體存取協定覆疊於另一不同串列互連協定(諸如,PCIe)上之一實例。在圖9之實例中,實體 層訊框化符記可用以發信記憶體存取與互連協定訊務之間的轉變。訊框化符記(或「符記」)可為規定或暗示將包括於相關聯於符記之資料串流中的符號之數目的實體層資料囊封。因此,訊框化符記可識別串流正開始,以及暗示串流將在何處結束,且因此可用以亦識別下一個訊框化符記之位置。資料串流之訊框化符記可位於資料串流之第一資料區塊之第一單工通道(例如,單工通道0)之第一符號(符號0)中。可使用如用以輸送訊務之實體層之原生協定中所定義的現有符號來實施訊框化符記。舉例而言,在PCIe之實例中,可定義五個訊框化符記,包括TLP訊務開始(STP)符記、資料串流結束(EDS)符記、結束不良(EDB)符記、DLLP開始(SDP)符記及邏輯閒置(IDL)符記。
在圖9之實例中,可藉由將SMI3或另一資料存取協定覆疊於PCI上來實施SML,且標準PCIe STP符記可被再使用且經編碼以定義識別SMI3(而非TLP訊務)將在連結之單工通道上開始的新STP符記。在埠將在SML中靜態地起作用的狀況下,STP符記可經編碼以指示訊務為SML。在其他實例中,在PCIe及SML訊務可在連結上多工的狀況下,STP符記可指示PCIe訊務之叢發與SML訊務之叢發之間的轉變。
在一個實例中,標準PCIe STP符記之保留位元可經修改以定義SML訊務開始STP符記(例如,「SML符記」)。可針對主機協定定義經定義允許封包或有效負載長度之一集合,諸如PCIe有效負載之允許長度。STP符記可包括一長 度欄位,且該長度欄位可允許落在針對PCIe(或實體層之另一主機協定)定義的允許長度之集合外的編碼。在一個實施中,用不允許值或落在允許長度外的另一定義值編碼該長度欄位可用以將STP符記識別為SML符記。
返回至圖9之實例,說明動態SML/PCIe多工,其中SML經由PCIe PHY協定利用SMI3。舉例而言,可定義同步標頭資料以遵循針對傳統PCIe 128b/130b編碼規定之編碼。舉例而言,在915a至915c,接收具有值10b之同步標頭,其指示資料區塊即將到來。當接收PCIe STP(例如,920)時,PCIe TLP有效負載係預期的且資料串流經處理。與在PCIe STP 920中所識別之有效負載長度一致,PCIe TLP有效負載可利用所分配的完全有效負載長度。實質上可在跟隨TLP有效負載之結束的資料區塊內之任何時間接收另一STP符記。舉例而言,在925,可接收SMI3 STP,其發信自PCIe TLP資料至SMI3微片資料之轉變。舉例而言,一旦PCIe封包資料之結束經識別,即可接著發送SMI3 STP。
如同PCIe TLP資料,SMI3 STP 925可定義將遵循的SMI3微片有效負載之長度。舉例而言,SMI3資料之有效負載長度可對應於將被發送的SMI3微片之數目(或對應DW之數目)。藉此可在單工通道(僅SMI3資料將在其中發送)上界定對應於有效負載長度之視窗(例如,在單工通道3之符號15處結束)。當視窗結束時,可發送其他資料(諸如,另一PCIe STP)以重新開始TLP資料或其他資料(諸如,有序集合資料)之發送。舉例而言,如圖9之實例中所示,在藉由SMI3 STP符記925界定之SMI3資料視窗結束之後發送EDS符記。EDS符記可發信資料串流之結束且暗示有序集合區塊將跟隨,如圖9之實例中的狀況。發送同步標頭940,其經編碼01b以指示有序集合區塊將被發送。在此狀況下,發送PCIe SKP有序集合。在其他實例中,此等有序集合可定期地或根據集合間隔或視窗來發送,以使得可執行各種PHY層級任務及協調,包括初始化位元對準、初始化符號對準、交換PHY參數、補償兩個通訊埠之不同位元率。在一些狀況下,可發送授權有序集合以中斷藉由對應SMI3 STP符記針對SMI3微片資料規定的經界定視窗或資料區塊。
儘管圖9之實例中未明確展示,但STP符記亦可用以自連結上之SMI3微片資料轉變至PCIe TLP資料。舉例而言,在經界定SMI3視窗結束之後,可發送PCIe STP符記(例如,類似於符記920)以指示下一個視窗係用於發送規定量之PCIe TLP資料。
記憶體存取微片(例如,SMI3微片)在一些實施例中在大小上可改變,從而使得難以預測先驗、有多少資料應保留在用於記憶體存取有效負載之對應STP符記(例如,SMI3 STP符記)中。作為一實例,如圖9中所示,SMI3 STP 925可具有預期244位元組之SMI3資料將跟在SMI3 STP 925之後的長度欄位。然而,在此實例中,僅十個微片(例如,SMI3微片0至9)將準備在視窗期間發送,且此等十個SMI3微片僅利用244位元組中的240個。因此,留下四個(4)位元組之空頻寬,且此等位元組充滿IDL符記。當TLP資料在排 隊且等待SMI3視窗關閉時,此情形可為特別地次最佳的。在其他狀況下,針對SMI3微片之發送所提供之視窗可能不足以發送為單工通道準備的SMI3資料量。可使用仲裁技術來判定如何在共存於連結上的SMI3與PCIe TLP資料之間仲裁。此外,在一些實施中,可動態地修改SMI3視窗之長度以幫助更高效地使用連結。舉例而言,仲裁或其他邏輯可監視經定義SMI3視窗如何很好地用以判定經定義視窗長度是否可較好最佳化至單工通道所期待的SMI3量(及競爭PCIe TLP訊務)。因此,在其他實例中,在此等實施中,可視SMI3微片資料(例如,相對於其他PCIe資料,包括TLP、DLLP及有序集合資料)應被分配的連結頻寬之量而動態地調整(例如,在不同值之間)SMI3 STP符記之長度欄位值。
串列輸入/輸出(I/O)操作在操作時可消耗相當大電力。因此,當無訊務在連結之兩個方向上未決時,可希望使連結處於低功率或閒置狀態(例如,L1狀態)。此對於PCIe或SML模式操作中之任一者或兩者成立。此外,用於SML模式中之記憶體存取協定可定義自低功率模式之進入及退出,其不同於主機PHY層協定中(例如,PCIe中)所定義的進入及退出。此外,記憶體存取協定所使用之狀態機可不同於控管實體層之另一協定中所使用之狀態機。
為了說明,在記憶體存取協定之一個實施中,記憶體存取協定之連結層可為實體層提供執行控制任務的機會,且此等控制任務可包括自傳輸連結狀態(TLS)至低功率或L1狀態之轉變。舉例而言,當在涉及使用外籍協定之PHY 的SML內容脈絡外使用時,記憶體存取協定可提供控制狀態(L0c)或阻斷連結狀態,可發送實體層請求及回應所在的視窗。作為一實例,可提供控制狀態L0c以有助於相關於此等控制任務之傳訊。可提供L0c狀態以作為TLS內之週期性視窗,以允許實體層控制訊息在使用連結層之微片的串流之間發送。舉例而言,如圖10中所說明之實例中所表示,L0狀態可細分成L0c間隔。每一L0c間隔可以L0c狀態或視窗(例如,1005),其中實體層控制程式碼及其他資料可被發送。L0c間隔之剩餘部分(例如,1010)可專用於微片之發送。在其他實例中,L0c間隔之長度及每一間隔中之L0c狀態可(例如)藉由一或多個裝置或另一基於軟體之控制器的以編程方式定義。L0c狀態與L0c間隔之剩餘部分相比可按指數律地縮短。舉例而言,在其他實例中,在一個實例中,L0c可為8UI,而L0c間隔之剩餘部分為約4KUI。此可允許相對短的預定義訊息可被發送而不實質上破壞或浪費連結資料頻寬的視窗。
L0c狀態訊息可傳達實體層等級之多種條件。在一個實例中,一個裝置可(例如)基於超過特定臨限量之位元誤差或其他誤差而起始連結或單工通道之重設。此等誤差亦可在L0c視窗(諸如,前述L0c視窗)中傳達。亦可利用L0c狀態以實現其他頻帶內發信,諸如供輔助或觸發其他連結狀態之間的轉變之用的發信。在一個實例中,L0c訊息可用以使連結自作用中L0狀態轉變至待用或低功率狀態(諸如,L1狀態)。如圖11A之簡化流程圖1100a中所示,特定L0c 狀態可用以傳達L1進入請求(例如,1110)。其他微片(例如,1120、1130)可在裝置(或裝置上之代理程式)等待請求1110之應答時發送。連結上之另一裝置可發送應答(例如,1140)。在一些實例中,應答亦可在L0c視窗中發送。在一些例子中,應答可在跟在L1請求1110之接收/發送後的下一個L0c視窗中發送。在其他實例中,計時器可用以同步每一裝置處之L0c間隔,且請求裝置可基於應答1140係在下一個L0c視窗發送的識別而將應答1140識別為請求1110(例如,而非獨立L1進入請求)之應答。在一些例子中,應答可經由不同於L1進入請求1110中所使用之程式碼的L0c程式碼來傳達。在其他實例中,在其他例子中,應答1140可包括用於請求1110中之L1進入請求程式碼的回聲。此外,在諸如圖11B中所說明的替代性實例中,非應答信號或NAK 1145可在L0c視窗中傳達,從而導致連結保持在連結傳輸狀態,不管L1進入請求1110如何。
圖10、圖11A及圖11B之實例僅為根據SML之實施所使用之記憶體存取或其他協定的低功率轉變交握的一個實例。可在其他實施例中使用其他機制以實現自作用中狀態至低功率或閒置狀態之轉變。然而,此等機制在記憶體存取協定覆疊於另一協定之實體層上的例子中(諸如,記憶體存取協定(例如,SMI3)覆疊於另一串列互連協定(諸如,PCIe)上的SML之實施中)可能不被支援。實際上,PHY所使用之主機協定可以不同方式實施自作用中狀態至低功率狀態之轉變,從而複雜化記憶體存取協定的起始至低功 率狀態之轉變的能力。此在SML係靜態地實施(亦即,係另一協定之實體層上之唯一訊務)的實施中可尤其麻煩。
為了說明此等可能差異,比較圖10、圖11A及圖11B中所說明的用於進入低功率狀態之機制與在PCIe中進入低功率L1狀態的表示(在圖12中)。舉例而言,第一(上游)組件1205可將組配寫入請求1215發送至下游組件1210。下游組件1210可基於組配寫入請求1215之接收而開始自傳輸連結狀態轉變至低功率狀態(L1)(例如,在1220)的程序。下游組件1210可發送組配寫入請求之完成1225且累積新異動層封包(TLP)的最小信用及區塊排程(在1230)。下游組件1210可等待(在1235)接收對上一TLP之應答(ACK)。一旦所有下游組件之TLP已經應答,下游組件即可開始傳輸1240 Enter_L1資料連結層封包(DLLP)(以指示進入L1狀態),直至下游組件接收來自上游組件1205之回應。
在接收該等Enter_L1 DLLP後,上游組件1205可阻斷(在1245)新TLP傳輸之排程。上游組件1205可接著等待,直至上游組件接收對其先前已發送的上一TLP之連結層應答。下游組件1210可等待(在1250)對所傳輸的Enter_L1 DLLP之應答DLLP(例如,Request_ACK)。當上游組件1205接收對其上一TLP之ACK時(在1255),上游組件1205可回應於所接收之Enter_L1 DLLP重複地發送Request_ACK DLLP 1260。一旦下游組件1210已在其接收單工通道上擷取Request_Ack DLLP(發信上游組件1205已應答至L1請求之轉變),下游組件接著停用(在1265)DLLP傳輸且使上游定 向之實體連結變成電閒置狀態。此外,當上游組件1205上之接收單工通道進入電閒置狀態時,上游組件1205停止發送Request_Ack DLLP,停用(在1270)DLLP傳輸,且使其傳輸單工通道變得電閒置,以藉此完成連結至L1的轉變。在一些例子中,可藉由連結之任一末端上之組件退出L1。
如所述,可希望提供主機協定或SML協定任一者以用以起始至低功率連結狀態之轉變。然而,在一些實施中,SML所使用之記憶體存取協定可能不能夠將進入低功率狀態之協商委託給PHY層,諸如圖10、圖11A及圖11B之實例中所展示及所描述。因此,在SML之一些實施中,可提供L1進入方案,其允許用以進入低功率狀態的記憶體存取協定之原生編碼在用以有助於SML之符記中隧道傳輸。舉例而言,在一個實例中,SML所使用之記憶體存取協定可在阻斷連結狀態或控制視窗內發送連結狀態轉變請求(及應答)。此等相同編碼可包括於符記之保留或未使用欄位中,以使得該等編碼被傳達至下游組件而不影響主機(例如,PCIe)協定或分層堆疊。在一個實施中,STP符記(例如,SML符記)之欄位可用指示進入低功率狀態之請求(或ACK/NAK)的資料值來編碼。
轉至圖13,展示STP符記1305之表示。STP符記1305可包括若干欄位,包括TLP序號欄位1310,及識別將跟在STP之後的記憶體存取協定(例如,SMI3)有效負載之長度(關於微片之數目)的長度欄位1315欄位。如上文所指出,在一些實施中,長度欄位可用以指示以下資料係根據主機互 連協定(例如,PCIe)抑或根據記憶體存取協定(例如,SMI3)。舉例而言,一或多個標準有效負載長度可針對TLP資料定義。SMI3資料在一些實施中可經定義以包括固定數目個微片,或在其他狀況下可具有可變數目個微片,在該狀況下,用於SMI3微片之數目的長度欄位成為可忽略之欄位。此外,用於SMI3 STP之長度欄位可被定義為除經定義TLP有效負載長度中之一者外的長度。因此,作為一個實例,可基於存在於STP長度欄位中之非TLP長度值來識別SMI3 STP。
繼續圖13之實例,當STP為SML STP符記時,TLP序號欄位1310可保留(或未使用)。在其他可能編碼中,TLP序號欄位1310可經編碼以指示轉變至L1之請求,指示對進入L1之請求的ACK或NAK,或指示無操作包括於SML STP符記中。舉例而言,在一個實例實施中,可定義一組值以供記憶體存取協定之原生版本中的控制視窗之用,且此等相同值可編碼在SML符記之保留欄位中。舉例而言,在利用SMI3作為記憶體存取協定之實施中:
0
繼續表1之實例,可定義交握以使得編碼在SML符記中的進入L1之請求可用經編碼以回聲且應答進入L1之請求的SML STP符記(例如,QL1)或替代地用非應答訊息 (例如,QL1n)任一者來回答。在後一狀況下,可週期性地重複程序,直至達成應答交握。在其他實例中,SML STP符記的未經編碼以指示進入L1之請求(或回應)或回應的指定領域可用替代編碼或無操作編碼來編碼。
圖14為說明根據至少一個實例的進入L1之交握之一實例的流程圖。在此實例中,填隙850可用以促進記憶體存取協定之低功率狀態進入請求在PCIe上的隧道傳輸。舉例而言,功率管理代理程式(PMA)1401、1402可(例如,在1405、1415)異步地使各別連結層轉至低功率。各別連結層(LL)810a、810b可接著與填隙(分別為805a、805b)通訊以(在1410、1420)起始進入低功率狀態(例如,L1)。舉例而言,填隙805a、805b可根據記憶體存取協定接收L1進入信號1410、1420。填隙805a、805b可包括用於識別EL1c資料係根據記憶體存取協定的進入低功率狀態L1之請求的邏輯。填隙805b可用記憶體存取協定中所定義之低功率進入請求編碼來編碼PCIe符記之欄位,諸如基於PCIe之STP符記的TLP序號欄位。舉例而言,記憶體存取協定可使用阻斷連結狀態(L0c)來發送此地程式碼,且填隙805a、805b可用以利用基於PCIe之符記欄位來隧道傳輸L0c低功率進入交握(在1425)。因此,當填隙805a接收經編碼符記時,該填隙可發信連接層810a(在1430)以進入L1。填隙805a亦可發送L1進入請求之應答(在1425),且填隙805b在接收ACK後可發信(在1435)其連結層810b以進入L1。此外,在接收應答後,填隙805b可進一步發信(在 1440)實體層815b以起始PCIe實體層L1進入交握。因此,一或多個電閒置有序集合(EIEOS)可由PHY 815b發送且由PHY 815a回應以使PCIe實體層進入電閒置1450。可經由至各別填隙805a、805b之信號1455、1460來確認相同情況。
繼續圖14之實例,在連結進入L1之後的某一例子,連結層810b(藉由軟體提示)可起始自低功率L1狀態之退出以再進入傳輸連結狀態(例如,L0或L0p)。舉例而言,L1退出信號1465可發送至填隙805b且藉由其解碼,且填隙805b可發信PHY 815b(在1470)以退出低功率狀態及開始針對傳輸連結狀態組配連結。舉例而言,為了去除抖動、同步及組配連結,可交換有序集合(OS)及訓練序列(TS)(在1475)。在連結訓練結束(例如,經由1475)後,填隙805a、805b可識別實體層處於傳輸狀態L0中。填隙805a、805b可接著通知連結層810a、810b已進入L0。在其他實例中,在填隙805a、805b提供記憶體存取協定資料及PCIe資料在PCIe實體層上的動態多工的狀況下,進入L0(或L1)可藉由填隙805a、805b傳達至記憶體存取協定及PCIe連結層兩者。
在經由GPIO協定之實體層支援通用I/O(GPIO)協定(例如,PCIe)與記憶體存取協定(例如,SMI3)之間的動態雙態觸變的實施中,填隙可判定協定堆疊在發信共同實體層進入電閒置之前均準備進入低功率連結狀態(例如,L1)。舉例而言,GPIO協定鏈路層(在頻寬之部分期間)或記憶體存取協定任一者可獨立請求(根據其各別協定)進 入低功率連結狀態。然而,當一個欄嘗試進入低功率狀態時,另一欄可使資料等待在主動式連結上發送。動態填隙可具有仲裁一些實施中的堆疊之間的頻寬需求的能力。因此,在一些實施中,填隙在多工來自兩個不同協定堆疊之資料時可監視兩個欄,以確保在授予另一欄進入低功率狀態的請求之前,無資料將在頻寬之即將來臨劃分中(例如,在STP符記之後)藉由該等欄中之一者發送。在一些實施中,填隙可合成PHY已進入L1的確認至請求進入L1之欄,同時阻止至PHY的將觸發實際進入L1的請求,直至填隙判定如此做將不影響等待自另一欄發送的資料。舉例而言,可准許第一欄在另一第二欄已請求進入L1且相信連結實際上處於L1中之後利用實體連結。在此等例子中,一旦第一欄完成發送資料,填隙即可發信實體層以使連結進入閒置。在其他例子中,第二欄之連結層可再喚醒,同時該連結保持在作用中且嘗試再啟動已在作用中(即,正在用以發送另一欄之資料)的連結。在此等例子中,填隙可接收來自第二欄之連結層的資料以起始連結之啟動。在此等例子中,填隙可將連結之再喚醒的確認合成至連結層第二欄。實務上,由於連結已經過訓練且可操作,因此無動作應被視為與實體層有關,且填隙可回應於來自第二欄之連結層的信號而僅將連結在作用中的確認信號發送至第二欄,以使連結「退出」低功率狀態。在此等例子中,不僅信號實體連結之頻寬可在兩個相異協定的資料之間共享,而且亦可支援不同協定之低功率狀態進入範例。
應注意,儘管以上原理及實例中之多者有時在特定協定(諸如,PCIe及SMI3)的內描述。然而,應瞭解,此等協定僅被稱為實例且任何串列GPIO協定及記憶體存取協定可在SML之實施中採用。實際上,本文中所描述之原理、解決方案及特徵可相等地可適用於其他協定及系統。此外,以上解決方案之組合可在系統內應用,在其他實例中,包括如本文中所描述的連結及其對應邏輯的邏輯及實體增強之組合。
應注意,上述設備、方法及系統可按前述內容實施於任何電子裝置或系統中。作為特定說明,以下諸圖提供用於利用如本文中所描述之本發明的例示性系統。由於系統在下文更詳細地描述,揭示、描述多個不同互連件並自以上論述內容重訪多個不同互連件。且如易於顯而易見的,上述進展可應用於彼等互連件、網狀架構或架構中的任一者。
參看圖15,描繪包括多核心處理器之計算系統的方塊圖之一實施例。處理器1500包括任何處理器或處理裝置,諸如微處理器、嵌入式處理器、數位信號處理器(DSP)、網路處理器、手持型處理器、應用程式處理器、共處理器、系統單晶片(SOC)或其他裝置,以執行程式碼。在一個實施例中,處理器1500包括至少兩個核心,即核心1501及1502,該等兩個核心可包括不對稱核心或對稱核心(所說明實施例)。然而,處理器1500可包括可為對稱或不對稱的任何數目個處理元件。
在一個實施例中,處理元件指支援軟體執行緒的硬體或邏輯。硬體處理元件之實例包括:執行緒單元、執行緒時槽、執行緒、程序單元、內容脈絡、內容脈絡單元、邏輯處理器、硬體執行緒、核心及/或任何其他元件,其能夠保持處理器的狀態,諸如執行狀態或架構狀態。換言之,在一個實施例中,處理元件指能夠獨立地與諸如軟體執行緒、作業系統、應用程式或其他程式碼的程式碼相關聯的任何硬體。實體處理器(或處理器插口)通常指積體電路,其可能包括任何數目個其他處理元件,諸如核心或硬體執行緒。
核心常常指位於積體電路上的能夠維持獨立架構狀態之邏輯,其中每一獨立維持之架構狀態與至少一些專用執行資源相關聯。與核心對比,硬體執行緒通常指位於積體電路上的能夠維持獨立架構狀態之任何邏輯,其中獨立維持之架構狀態共享對執行資源的存取。如可看出,當某些資源經共享且其他資源專用於架構狀態時,硬體執行緒與核心的命名法之間的線覆疊。又常常地,核心及硬體執行緒被作業系統視為個別邏輯處理器,其中作業系統能夠個別地排程每一邏輯處理器上之操作。
如圖15中所說明,實體處理器1500包括兩個核心,即核心1501及1502。此處,核心1501及1502被視為對稱核心,亦即,具有相同組配、功能單元及/或邏輯的核心。在另一實施例中,核心1501包括無序處理器核心,而核心1502包括有序處理器核心。然而,核心1501及1502可 個別地選自任何類型之核心,諸如本端核心、軟體管理核心、經調適以執行本端指令集架構(ISA)之核心、經調適以執行轉譯指令集架構(ISA)之核心、共同設計之核心,或其他已知核心。在異質核心環境(亦即,不對稱核心)中,某形式之轉譯(諸如,二進位轉譯)可用以排程或執行一個或兩個核心上的程式碼。又關於其他論述,說明於核心1501中之功能單元在下文更詳細地描述,此係因為核心1502中之單元在所描繪實施例中以類似方式操作。
如所描繪,核心1501包括兩個硬體執行緒1501a及1501b,該等硬體執行緒亦可被稱作硬體執行緒時槽1501a及1501b。因此,諸如作業系統之軟體實體在一個實施例中潛在地將處理器1500視為四個單獨處理器,亦即,能夠同時執行四個軟體執行緒的四個邏輯處理器或處理元件。如上文間接地提到,第一執行緒與架構狀態暫存器1501a相關聯,第二執行緒與架構狀態暫存器1501b相關聯,第三執行緒可與架構狀態暫存器1502a相關聯,且第四執行緒可與架構狀態暫存器1502b相關聯。此處,架構狀態暫存器(1501a、1501b、1502a及1502b)中之每一者可被稱作處理元件、執行緒時槽或執行緒單元,如上文所描述。如所說明,架構狀態暫存器1501a在架構狀態暫存器1501b中複寫,因此針對邏輯處理器1501a及邏輯處理器1501b的個別架構狀態/內容脈絡能夠被儲存。在核心1501中,諸如分配器及重命名區塊1530中之指令指標及重命名邏輯的其他較小資源亦可經複寫用於執行緒1501a及 1501b。諸如重排序/引退單元1535中的重排序緩衝器、ILTB 1520、載入/儲存緩衝器及佇列的一些資源可經由分割來共享。其他資源(諸如,通用內部暫存器、頁表基暫存器、低階資料快取記憶體及資料TLB 1515、執行單元1540以及無序單元1535之部分)可能完全共享。
處理器1500常常包括其他資源,該等資源可完全共享、經由分割來共享或由處理元件專用/或專用於處理元件。在圖15中,說明具有處理器之說明性邏輯單元/資源的純粹例示性處理器的實施例。應注意,處理器可包括或省略此等功能單元中之任一者,以及包括未描繪的任何其他已知功能單元、邏輯或韌體。如所說明,核心1501包括簡化的代表性無序(OOO)處理器核心。但在不同實施例中可利用有序處理器。OOO核心包括分支目標緩衝器1520以預測待執行/採用之分支,以及指令轉譯緩衝器(I-TLB)1520以儲存用於指令的位址轉譯輸入項。
核心1501進一步包括耦接至提取單元1520以解碼所提取元素的解碼模組1525。在一個實施例中,提取邏輯包括分別與執行緒時槽1501a、1501b相關聯的個別定序器。通常,核心1501與第一ISA相關聯,其定義/指定在處理器1500上可執行的指令。常常,為第一ISA之部分的機器程式碼指令包括指令之一部分(被稱作作業碼),其參考/指定待執行的指令或操作。解碼邏輯1525包括自其作業碼辨識出此等指令且在管線中傳遞經解碼指令以供如第一ISA所定義進行處理的電路。舉例而言,如下文更詳細地 論述,解碼器1525在一個實施例中包括經設計或經調適以辨識諸如交易指令之特定指令的邏輯。作為由解碼器1525進行之辨識的結果,架構或核心1501採用特定預定義動作以執行與適當指令相關聯的任務。重要的是,請注意,本文中所描述之任務、區塊、操作及方法中之任一者可回應於單一或多個指令而執行;指令中之一些可為新指令或舊指令。請注意,在一個實施例中,解碼器1526辨識同一ISA(或其子集)。替代地,在異質核心環境中,解碼器1526辨識第二ISA(第一ISA的子集或截然不同之ISA)。
在一個實例中,分配器及重命名器區塊1530包括分配器以保留資源,諸如暫存器檔案以儲存指令處理結果。然而,執行緒1501a及1501b潛在地具有無序執行能力,其中分配器及重命名器區塊1530亦保留其他資源,諸如重排序緩衝器以追蹤指令結果。單元1530亦可包括暫存器重命名器以將程式/指令參考暫存器重命名至處理器1500內部的其他暫存器。重排序/引退單元1535包括組件(諸如,上文所提及的重排序緩衝器、載入緩衝器及出處緩衝器)以支援無序執行及無序執行之指令的稍後有序引退。
在一個實施例中,排程器及執行單元區塊1540包括排程器單元以排程執行單元上的指令/操作。舉例而言,浮點指令在具有可用浮點執行單元之執行單元之一埠上排程。與執行單元相關聯之暫存器檔案亦經包括以儲存資訊指令處理結果。例示性執行單元包括浮點執行單元、 整數執行單元、跳轉執行單元、載入執行單元、儲存執行單元及其他已知執行單元。
低階資料快取記憶體及資料轉譯緩衝器(D-TLB)1550耦接至執行單元1540。資料快取記憶體用以儲存新近使用/經操作之元素(諸如,資料運算元),該等元素可能保持在記憶體一致性狀態下。D-TLB將儲存新近虛擬/線性位址至實體位址的轉譯。作為一特定實例,處理器可包括頁表結構以將實體記憶體斷開成多個虛擬頁。
此處,核心1501及1502共享對較高階或更高階(further-out)快取記憶體的存取,諸如與晶片上介面1510相關聯的第二階快取記憶體。應注意,較高階或更高階指自執行單元起增加或距執行單元變得更遠的快取記憶體階。在一個實施例中,較高階快取記憶體為末階資料快取記憶體(處理器1500上的記憶體階層架構中的最末快取記憶體),諸如第二或第三階資料快取記憶體。然而,較高階快取記憶體並不如此受限,此係因為其可與指令快取記憶體相關聯或包括指令快取記憶體。追蹤快取記憶體(一類型之指令快取記憶體)替代地可在解碼器1525之後耦接以儲存最近解碼之追蹤。此處,指令潛在地指巨集指令(亦即,由解碼器辨識之通用指令),其可被解碼成多個微指令(微操作)。
在所描繪組配中,處理器1500亦包括晶片上介面模組1510。歷史上,在下文更詳細地描述之記憶體控制器已包括於在處理器1500外部的計算系統中。在此情境 下,晶片上介面1510將與諸如以下各者的在處理器1500外部的裝置通訊:系統記憶體1575、晶片組(常常包括記憶體控制器集線器以連接至記憶體1575,及I/O控制器集線器以連接周邊裝置)、記憶體控制器集線器、北橋或其他積體電路。且在此情境下,匯流排1505可包括任何已知互連件,諸如多分路匯流排、點對點互連件、串列互連件、並列匯流排、相干(例如,快取記憶體相干)匯流排、分層協定架構、差分匯流排及GTL匯流排。
記憶體1575可專用於處理器1500或與系統中之其他裝置共享。數種類型之記憶體1575的常見實例包括DRAM、SRAM、非依電性記憶體(NV記憶體),及其他已知儲存裝置。應注意,裝置1580可包括圖形加速器、耦接至記憶體控制器集線器之處理器或卡、耦接至I/O控制器集線器之資料儲存器、無線收發器、快閃裝置、音訊控制器、網路控制器或其他已知裝置。
然而,最近,由於更多邏輯及裝置整合於諸如SOC的單一晶粒上,因此此等裝置中之每一者可併入於處理器1500上。舉例而言,在一個實施例中,記憶體控制器集線器與處理器1500在同一封裝及/或晶粒上。此處,核心之一部分(核心上部分)1510包括一或多個控制器以用於與諸如記憶體1575或圖形裝置1580的其他裝置介接。包括用於與此等裝置介接之互連件及控制器的組配常常被稱作核心上組配(或非核心組配)。作為一實例,晶片上介面1510包括用於晶片上通訊之環形互連件,及用於晶片外通 訊的高速串列點對點連結1505。又,在SOC環境中,甚至更多裝置(諸如,網路介面、共處理器、記憶體1575、圖形處理器1580及任何其他已知電腦裝置/介面)可整合於單一晶粒或積體電路上,以提供具有高功能性及低電力消耗的小外觀尺寸。
在一個實施例中,處理器1500能夠執行編譯程式、最佳化及/或轉譯器程式碼1577以編譯、轉譯及/或最佳化應用程式程式碼1576,以支援本文中所描述的設備及方法或與之介接。編譯程式常常包括程式或程式集合以將原始本文/程式碼轉譯成目標本文/程式碼。通常,程式/應用程式碼藉由編譯程式的編譯在多個階段及多個遍次中進行,以將高階程式設計語言程式碼轉換成低階機器或組合語言程式碼。又,單一遍次編譯程式可仍用於簡單編譯。編譯程式可利用任何已知編譯技術且執行任何已知編譯程式操作,諸如詞彙分析、預處理、剖析、語義分析、程式碼產生、程式碼轉換及程式碼最佳化。
較大編譯程式常常包括多個階段,但最常見地此等階段包括於兩個通用階段內:(1)前端,亦即大體而言語法處理、語義處理及某一變換/最佳化可發生之處,及(2)後端,亦即大體而言分析、變換、最佳化及程式碼產生發生之處。一些編譯程式係指中間編譯程式,其說明編譯程式的前端與後端之間的描繪的模糊化。結果,對編譯程式之***、關聯、產生或其他操作的提及可發生於前述階段或遍次中之任一者中以及編譯程式的任何其他已知階段或 遍次中。作為說明性實例,編譯程式在一或多個編譯階段中潛在地***操作、調用、函數等,諸如在編譯的前端階段中***調用/操作,且接著在變換階段期間將調用/操作變換成較低階程式碼。應注意,在動態編譯期間,編譯程式之程式碼或動態最佳化程式碼可***此等操作/調用,以及在執行階段期間最佳化程式碼以供執行。作為一特定說明性實例,二進位程式碼(已編譯程式碼)在執行階段期間可經動態最佳化。此處,程式碼可包括動態最佳化程式碼、二進位程式碼或其組合。
類似於編譯程式,諸如二進位轉譯程式之轉譯程式靜態或動態地轉譯程式碼以最佳化及/或轉譯程式碼。因此,對程式碼、應用程式程式碼、程式碼或其他軟體環境之執行的參考可指:(1)動態或靜態地執行編譯程式程式、最佳化程式碼最佳化程式或轉譯程式以編譯程式碼、維持軟體結構、執行其他操作、最佳化程式碼,或轉譯程式碼;(2)執行包括操作/調用之主要程式碼,諸如已經最佳化/編譯的應用程式程式碼;(3)執行與主要程式碼相關聯的其他程式碼(諸如,庫)以保持軟體結構、執行其他軟體相關操作或最佳化程式碼;或(4)其組合。
現參看圖16,展示了多核心處理器之一實施例的方塊圖。如圖16之實施例中所示,處理器1600包括多個域。具體言之,核心域1630包括多個核心1630A至1630N,圖形域1660包括具有媒體引擎1665之一或多個圖形引擎,以及系統代理程式域1610。
在各種實施例中,系統代理程式域1610處置功率控制事件及功率管理,以使得域1630及1660之個別單元(例如核心及/或圖形引擎)獨立地可控制以根據假定單元中正在發生的活動(或不活動)而在適當功率模式/等級(例如,主動式、渦輪、睡眠、休眠、深睡眠或其他進階組配功率介面狀狀態)下動態地操作。域1630及1660中之每一者可在不同電壓及/或功率下操作,且此外,域內之個別單元每一者可能在獨立頻率及電壓下操作。應注意,儘管僅展示具有三個域,但應理解,本發明之範疇就此而言並無限制,且額外域可存在於其他實施例中。
如所示,每一核心1630進一步包括除各種執行單元及額外處理元件外的低階快取記憶體。此處,各種核心彼此耦接且耦接至由末階快取記憶體(LLC)1640A至1640N的多個單元或切片形成的共享快取記憶體;此等LLC常常包括儲存及快取控制器功能性且在核心當中以及可能在圖形引擎當中共享。
如所見,環形互連件1650將核心耦接在一起,且經由多個環形停止件1652A至1652N(每一者處於核心與LLC片段之間的耦合處)來提供核心域1630、圖形域1660及系統代理程式電路系統1610之間的互連。如圖16中所見,互連件1650用以載運各種資訊,包括位址資訊、資料資訊、應答資訊以及窺探/無效資訊。儘管說明環形互連件,但可使用任何已知的晶粒上互連件或網狀架構。作為說明性實例,可以類似方式利用如上文所述之網狀架構中 的一些(例如,另一晶粒上互連件、晶片上系統網狀架構(OSF)、進階微控制器匯流排架構(AMBA)互連件、多維網狀物網狀架構,或其他已知互連架構)。
如進一步所描繪,系統代理程式域1610包括顯示引擎1612,其用以提供對相關聯顯示器的控制及至相關聯顯示器之介面。系統代理程式域1610可能包括其他單元,諸如:提供至系統記憶體(例如,用多個DIMM實施之DRAM)之介面的整合式記憶體控制器1620;用以執行記憶體相干操作的相干邏輯1622。多個介面可存在以實現處理器與其他電路系統之間的互連。舉例而言,在一個實施例中,提供至少一個直接媒體介面(DMI)1616介面,以及一或多個PCIeTM介面1614。顯示引擎及此等介面通常經由PCIeTM橋接器1618耦接至記憶體。再此外,為了提供其他代理程式(諸如,額外處理器或其他電路系統)之間的通訊,可提供一或多個其他介面。
雖然已關於有限數目個實施例描述本發明,但熟習此項技術者將瞭解自本發明之眾多修改及變化。希望隨附申請專利範圍涵蓋如屬於本發明之真實精神及範疇內的所有此等修改及變化。
設計可經歷各種階段,自創建至模擬至製造。表示設計之資料可用多種方式表示設計。首先,如在模擬中可用的,可使用硬體描述語言(HDL)或另一功能描述語言來表示硬體。另外,可在設計程序之一些階段生成具有邏輯及/或電晶體閘之電路層級模型。此外,在某一階 段,大部分設計達到表示各種裝置在硬體模型中之實體置放的資料之層級。在使用習知半導體製造技術之狀況下,表示硬體模型之資料可為指定各種特徵在用於用以產生積體電路之遮罩的不同遮罩層上之存在或不存在的資料。
在一些實施中,在其他實例中,基於軟體之硬體模型及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)、磁卡或光學卡、快閃記憶體或用於在網際網路上經由電、光學、聲學或其他形式之傳播信號(例如,載波、紅外線信號、數位信號等)傳輸資訊中使用的有形機器可讀儲存器。因此,電腦可讀媒體包括適合於以可由機器(例如,電腦)讀取之形式儲存或傳輸電子指令或資訊的任何類型之有形機器可讀媒體。
以下實例係關於根據本說明書的實施例。一或多個實施例可提供用以進行以下操作之一設備、一系統、一機器可讀儲存器、一機器可讀媒體、基於硬體及/或軟體之邏輯及方法:在根據一記憶體存取連結協定之一連結上發送資料以對應於相關聯於共享記憶體之一載入/儲存型操作,且該記憶體存取連結協定將覆疊在另一不同連結協定上;發送進入一低功率狀態之一請求,其中該請求將包括編碼在一符記之一欄位中之一資料值,該符記將指示封包資料之一開始且將進一步指示將在該符記之後發送的後續資料是否將包括根據該另一連結協定及該記憶體存取 連結協定中之一者的資料。
在至少一個實例中,該另一連結協定包括一通用輸入/輸出(I/O)互連協定。
在至少一個實例中,該符記係根據該通用I/O互連協定定義。
在至少一個實例中,該符記之一第一欄位指示該後續資料包括記憶體存取連結協定資料抑或通用I/O互連協定資料。
在至少一個實例中,當該第一欄位指示該後續資料將包括記憶體存取連結協定資料時,該資料值將編碼於該符記之一第二欄位中。
在至少一個實例中,該資料值包括根據該記憶體存取連結協定定義之一編碼,且該第二欄位用以在該通用I/O互連協定之該實體層上隧道傳輸該編碼。
在至少一個實例中,在該連結上發送之資料將基於該符記之實例在記憶體存取連結協定資料與通用I/O互連協定資料之間雙態觸變。
在至少一個實例中,功率管理邏輯將在發送進入該低功率狀態之該請求之前檢查該通用I/O互連協定之資料是否在等待發送。
在至少一個實例中,功率管理邏輯將等待發送進入該低功率狀態之該請求,直至該通用I/O互連協定資料經發送。
在至少一個實例中,該記憶體存取連結協定或 該通用I/O互連協定之一連結層可觸發一實體層至一低功率狀態之進入。
在至少一個實例中,該通用I/O互連協定中的用以進入一低功率狀態之一信號不同於該記憶體存取連結協定中的用以進入一低功率狀態之一信號。
在至少一個實例中,該記憶體存取連結協定界定用以發送該記憶體存取連結協定中的用以進入該低功率狀態之該信號所在的週期性控制視窗。
一或多個實施例可提供用以在一連結上接收一資料串流的一設備、一系統、一機器可讀儲存器、一機器可讀媒體、基於硬體及/或軟體之邏輯及方法。該資料串流可包括一符記,該符記包括用以指示該符記之後的資料包括根據至少兩個供選擇的協定中之一者之資料的一第一欄位。該等至少兩個供選擇的協定可包括一記憶體存取協定及一通用I/O協定。在該連結上發送之所有資料將在該通用I/O協定之一實體層上發送,且該符記之一第二欄位將經編碼以指示該記憶體存取協定之一連結層的進入一低功率連結狀態之一請求。可基於該請求起始進入至該低功率連結狀態。
在至少一個實例中,發送該請求之一回應,該回應包括一應答及一否定應答中之一者,且該回應將在該符記之另一實例中發送。
在至少一個實例中,該回應為發送該符記之該另一實例中的該第二欄位之一實例。
一或多個實施例可提供一設備、一系統、一機器可讀儲存器、一機器可讀媒體、基於硬體及/或軟體之邏輯,其提供一第一協定之一連結層、一不同第二協定之一連結層、用於發送至少該第二協定之資料的該第一協定之一實體層及一填隙。該填隙可接收一資料串流,該資料串流可包括一符記,該符記包括用以指示該符記之後的資料包括第一協定資料或第二協定資料中之一者的一第一欄位,且該符記之一第二欄位將經編碼以指示該第二協定之該連結層的進入一低功率連結狀態之一請求。該填隙可進一步將資料發送至該實體層以使該實體層進入該低功率狀態。
在至少一個實例中,該第一協定將包括一通用I/O互連協定且該第二協定將包括一記憶體存取協定。
在至少一個實例中,亦包括該第一協定之一或多個層及該第二協定之一或多個層。
在至少一個實例中,該第一協定之該連結層停用。
貫穿於本說明書中的對「一個實施例」或「一實施例」之參考意謂結合實施例所描述之特定特徵、結構或特性包括於本發明之至少一個實施例中。因此,片語「在一個實施例中」或「在一實施例中」貫穿本說明書在各處之出現未必全部參考同一實施例。此外,在一或多個實施例中,特定特徵、結構或特性可以任何適合方式組合。
在前述說明書中,已參考特定例示性實施例給 出詳細描述。然而,以下情形將為顯而易見的:可在不偏離如所附申請專利範圍中所闡述的本發明之更廣泛精神及範疇之情況下,對本發明做出各種修改及改變。因此,應在說明性意義上而非限制性意義上看待說明書及圖式。此外,實施例及其他示例性語言之先前使用未必參考同一實施例或同一實例,而可參考不同的及相異的實施例,以及有可能參考同一實施例。

Claims (20)

  1. 一種電子設備,其包含:一傳輸器,其用以發送用以對應於相關聯於共享記憶體之一載入/儲存型操作之資料,其中該資料係用以在根據一記憶體存取互連協定之一連結上發送,該記憶體存取互連協定包括含有一第一連結層之分層式協定,該記憶體存取互連協定使用另一互連協定的一實體層,並且,該另一互連協定包括含有該實體層以及不同的一第二連結層之分層式協定;功率管理邏輯,其用以發送一請求以進入一低功率狀態,其中該請求要包含編碼在一實體層符記之一第一欄位中之一資料值,該實體層符記要指示封包資料之一開始且要進一步包括要被編碼之一第二欄位,以指示在該實體層符記之後要被發送的後續資料是否要包含根據該另一互連協定及該記憶體存取互連協定中之一者的資料,其中該實體層符記係根據該另一互連協定被定義。
  2. 如請求項1之設備,其中該另一互連協定包含一通用輸入/輸出(I/O)互連協定。
  3. 如請求項1設備,其中該第一欄位包含一序列數字欄位,並且該第二欄位包含用於該其他互連協定以識別一酬載之一長度之一長度欄位。
  4. 如請求項3之設備,其中該其他互連協定包含快速周邊 組件互連(PCIe)式協定。
  5. 如請求項1之設備,其中當該第二欄位指示該後續資料要包含記憶體存取互連協定資料時,該資料值要被編碼於該實體層符記之該第一欄位中。
  6. 如請求項1之設備,其中該資料值包含在該記憶體存取互連協定下所定義之一編碼,且該第一欄位被使用以透過在該通用I/O該其他互連協定之該實體層上隧道傳輸該編碼。
  7. 如請求項2之設備,其中在該連結上發送之資料係基於該實體層符記之實例在記憶體存取互連協定資料與通用I/O互連協定資料之間雙態觸變。
  8. 如請求項7之設備,其中該功率管理邏輯係用以在發送進入該低功率狀態之該請求之前檢查該通用I/O互連協定之資料是否在等待被發送。
  9. 如請求項8之設備,其中該功率管理邏輯係等待以發送進入該低功率狀態之該請求,直至該通用I/O互連協定資料被發送。
  10. 如請求項7之設備,其中該記憶體存取互連協定或該通用I/O互連協定之一連結層可觸發一實體層之進入至一低功率狀態。
  11. 如請求項10之設備,其中該通用I/O互連協定中用以進入一低功率狀態之一信號係不同於該記憶體存取互連協定中用以進入一低功率狀態之一信號。
  12. 如請求項11之設備,其中該記憶體存取互連協定界定週 期性控制視窗,在該週期性控制視窗中以該記憶體存取互連協定去發送要進入該低功率狀態之該信號。
  13. 一種電子設備,其包含:一接收器,其用以在一連結上接收一資料串流,其中該資料串流要包含一實體層符記,該實體層符記要包含一第一欄位,其用以指示在該實體層符記之後的資料要包含根據至少兩個供選擇的協定中之一者之資料,該等至少兩個供選擇的協定要包含一記憶體存取協定及一通用I/O協定,在該連結上發送之所有資料要在該通用I/O協定之一實體層上被發送,且該實體層符記之一第二欄位要被編碼以指示該記憶體存取協定之一連結層的進入一低功率連結狀態的一請求,其中,該記憶體存取協定包括含有一第一連結層之分層式協定,並且,其他互連協定包括含有該實體層以及不同的一第二連結層之分層式協定;以及協定邏輯,其用以基於該請求來起始進入該低功率連結狀態。
  14. 如請求項13之設備,其進一步包含:一傳輸器,其用以發送該請求之一回應,其中該回應要包含一應答及一否定應答中之一者,且該回應係用以在該實體層符記之另一實例中發送。
  15. 如請求項14之設備,其中該回應為係用以在該實體層符記之該另一實例中的該第二欄位之一實例中發送。
  16. 一種用以進入一低功率連結狀態之方法,其包含以下步 驟:在一連結上接收一資料串流,其中該資料串流包含一實體層符記之一第一實例,該實體層符記之實例係包含一第一欄位,用以指示該實體層符記之後的資料要包含根據至少兩個供選擇的協定中之一者之資料,該等至少兩個供選擇的協定要包含一記憶體存取協定及一通用I/O協定,在該連結上發送之所有資料係用以在該通用I/O協定之一實體層上發送,且該實體層符記之該第一實例之一第二欄位要被編碼以指示藉由該記憶體存取協定之一連結層之一請求以進入一低功率連結狀態,其中,該記憶體存取協定包括含有一第一連結層之分層式協定,並且,其他互連協定包括含有該實體層以及不同的一第二連結層之分層式協定;發送該請求之一回應,其中該回應係包含一應答及一否定應答中之一者,且該回應係用以在該實體層符記之另一實例中發送;以及基於該請求起始進入至該低功率連結狀態。
  17. 一種電子設備,其包含:一第一協定之一連結層;一不同的第二協定之一連結層;該第一協定之一實體層,其中該第二協定之資料係要在該第一協定之該實體層上發送;一填隙元件,其用以:接收一資料串流,其中該資料串流要包含一實體層符記,該實體層符記使用該第一協定之該實體層的一或多個符元實現,該實體層符記要包含一第 一欄位,其用以指示該實體層符記之後的資料要包含第一協定資料或第二協定資料中之一者,且該實體層符記之一第二欄位要被編碼以指示藉由該第二協定之該連結層的進入一低功率連結狀態之一請求;發送資料至該實體層以致使該實體層進入該低功率狀態。
  18. 如請求項17之設備,其中該第一協定要包含一通用I/O互連協定且該第二協定要包含一記憶體存取協定。
  19. 如請求項17之設備,其進一步包含該第一協定之一或多個層及該第二協定之一或多個層。
  20. 如請求項17之設備,其中該第一協定之該連結層係被停用。
TW104136491A 2014-12-18 2015-11-05 共享記憶體連結中的低功率進入之技術 TWI616890B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/576,125 US9921768B2 (en) 2014-12-18 2014-12-18 Low power entry in a shared memory link
US14/576,125 2014-12-18

Publications (2)

Publication Number Publication Date
TW201626376A TW201626376A (zh) 2016-07-16
TWI616890B true TWI616890B (zh) 2018-03-01

Family

ID=54703757

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104136491A TWI616890B (zh) 2014-12-18 2015-11-05 共享記憶體連結中的低功率進入之技術

Country Status (6)

Country Link
US (1) US9921768B2 (zh)
EP (1) EP3035198B1 (zh)
JP (1) JP6225154B2 (zh)
KR (1) KR101848379B1 (zh)
CN (1) CN105718390B (zh)
TW (1) TWI616890B (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9940287B2 (en) * 2015-03-27 2018-04-10 Intel Corporation Pooled memory address translation
US10503684B2 (en) * 2016-07-01 2019-12-10 Intel Corporation Multiple uplink port devices
US10334334B2 (en) * 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center
US10080215B2 (en) * 2016-08-05 2018-09-18 Nokia Technologies Oy Transportation of user plane data across a split fronthaul interface
US10231254B2 (en) * 2016-08-05 2019-03-12 Nokia Technologies Oy 5G cloud RAN method for symbol by symbol bit streaming
US10152446B2 (en) * 2016-10-01 2018-12-11 Intel Corporation Link-physical layer interface adapter
PL3812900T3 (pl) * 2016-12-31 2024-04-08 Intel Corporation Systemy, sposoby i aparaty do obliczania heterogenicznego
JP2019047146A (ja) 2017-08-29 2019-03-22 東芝メモリ株式会社 電子機器および電力管理方法
US11263143B2 (en) * 2017-09-29 2022-03-01 Intel Corporation Coherent accelerator fabric controller
CN107844435A (zh) * 2017-11-08 2018-03-27 北京锐安科技有限公司 一种缓存***、方法及装置
US10528111B2 (en) 2017-12-11 2020-01-07 Micron Technology, Inc. Apparatuses and methods for indicating an operation type associated with a power management event
CN108415869B (zh) * 2018-02-28 2020-06-26 北京零壹空间科技有限公司 串行数据的发送方法及装置
CN110275670B (zh) 2018-03-16 2021-02-05 华为技术有限公司 控制存储设备中数据流的方法、装置、存储设备及存储介质
US20190332558A1 (en) * 2018-04-25 2019-10-31 Qualcomm Incorporated Low-power states in a multi-protocol tunneling environment
US11467999B2 (en) 2018-06-29 2022-10-11 Intel Corporation Negotiating asymmetric link widths dynamically in a multi-lane link
KR102655094B1 (ko) * 2018-11-16 2024-04-08 삼성전자주식회사 메모리를 공유하는 이종의 프로세서들을 포함하는 스토리지 장치 및 그것의 동작 방법
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
US10846247B2 (en) * 2019-03-05 2020-11-24 Intel Corporation Controlling partial link width states for multilane links
US10776302B2 (en) * 2019-04-02 2020-09-15 Intel Corporation Virtualized link states of multiple protocol layer package interconnects
DE102019111881A1 (de) * 2019-05-07 2020-11-12 Infineon Technologies Ag Verfahren und vorrichtung zum senden von daten gemäss einem signalzeitablauf
US11296994B2 (en) 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
US11442876B2 (en) * 2019-05-30 2022-09-13 Intel Corporation System, apparatus and method for synchronizing multiple virtual link states over a package interconnect
US11740958B2 (en) 2019-11-27 2023-08-29 Intel Corporation Multi-protocol support on common physical layer
US11836101B2 (en) 2019-11-27 2023-12-05 Intel Corporation Partial link width states for bidirectional multilane links
US20200310517A1 (en) * 2020-05-28 2020-10-01 Intel Corporation Adaptive lower power state entry and exit
US11588745B2 (en) 2020-08-31 2023-02-21 Micron Technology, Inc. Early credit return for credit-based flow control
US11362939B2 (en) 2020-08-31 2022-06-14 Micron Technology, Inc. Flow control for a multiple flow control unit interface
US11580044B2 (en) 2020-08-31 2023-02-14 Micron Technology, Inc. Network credit return mechanisms
US20210240655A1 (en) * 2020-11-16 2021-08-05 Intel Corporation Source ordering in device interconnects
CN115658569B (zh) * 2022-12-08 2023-04-14 井芯微电子技术(天津)有限公司 Amp多核处理器间中断与共享存储方法、***及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020165975A1 (en) * 2001-05-07 2002-11-07 Michael Abbott Dynamic mapping of communication protocols
US20060053240A1 (en) * 2004-09-03 2006-03-09 Chappell Christopher L Packet processing in switched fabric networks
US20090119421A1 (en) * 2007-11-05 2009-05-07 Honeywell International Inc. Apparatus and method for connectivity in networks capable of non-disruptively disconnecting peripheral devices
US20100229015A1 (en) * 2009-03-05 2010-09-09 Entropic Communications, Inc. Method and Apparatus of Power Management
US20110072234A1 (en) * 2009-09-18 2011-03-24 Chinya Gautham N Providing Hardware Support For Shared Virtual Memory Between Local And Remote Physical Memory
US8340111B1 (en) * 2008-03-26 2012-12-25 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for power reduction in network
US20140006670A1 (en) * 2012-06-27 2014-01-02 Mahesh Wagh Controlling A Physical Link Of A First Protocol Using An Extended Capability Structure Of A Second Protocol
US20140112339A1 (en) * 2012-10-22 2014-04-24 Robert J. Safranek High performance interconnect

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7433702B2 (en) * 2000-01-28 2008-10-07 Telefonaktiebolaget Lm Ericsson (Publ) Power status for wireless communications
US20060045098A1 (en) * 2004-08-31 2006-03-02 Krause Michael R System for port mapping in a network
US7861027B2 (en) * 2008-05-30 2010-12-28 Intel Corporation Providing a peripheral component interconnect (PCI)-compatible transaction level protocol for a system on a chip (SoC)
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
US8775713B2 (en) 2011-12-27 2014-07-08 Intel Corporation Multi-protocol tunneling over an I/O interconnect
US8446903B1 (en) * 2012-05-22 2013-05-21 Intel Corporation Providing a load/store communication protocol with a low power physical unit
US9189051B2 (en) * 2012-12-14 2015-11-17 International Business Machines Corporation Power reduction by minimizing bit transitions in the hamming distances of encoded communications

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020165975A1 (en) * 2001-05-07 2002-11-07 Michael Abbott Dynamic mapping of communication protocols
US20060053240A1 (en) * 2004-09-03 2006-03-09 Chappell Christopher L Packet processing in switched fabric networks
US20090119421A1 (en) * 2007-11-05 2009-05-07 Honeywell International Inc. Apparatus and method for connectivity in networks capable of non-disruptively disconnecting peripheral devices
US8340111B1 (en) * 2008-03-26 2012-12-25 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for power reduction in network
US20100229015A1 (en) * 2009-03-05 2010-09-09 Entropic Communications, Inc. Method and Apparatus of Power Management
US20110072234A1 (en) * 2009-09-18 2011-03-24 Chinya Gautham N Providing Hardware Support For Shared Virtual Memory Between Local And Remote Physical Memory
US20140006670A1 (en) * 2012-06-27 2014-01-02 Mahesh Wagh Controlling A Physical Link Of A First Protocol Using An Extended Capability Structure Of A Second Protocol
US20140112339A1 (en) * 2012-10-22 2014-04-24 Robert J. Safranek High performance interconnect

Also Published As

Publication number Publication date
US20160179427A1 (en) 2016-06-23
TW201626376A (zh) 2016-07-16
JP6225154B2 (ja) 2017-11-01
US9921768B2 (en) 2018-03-20
KR101848379B1 (ko) 2018-05-28
EP3035198B1 (en) 2017-08-23
KR20160074390A (ko) 2016-06-28
CN105718390A (zh) 2016-06-29
EP3035198A1 (en) 2016-06-22
JP2016123076A (ja) 2016-07-07
CN105718390B (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
TWI616890B (zh) 共享記憶體連結中的低功率進入之技術
US20210303482A1 (en) Sharing memory and i/o services between nodes
US11755486B2 (en) Shared buffered memory routing
US20230325335A1 (en) Pooled memory address translation
TW201705011A (zh) 多晶片封裝鏈結技術
JP2017504089A5 (zh)
TWI556094B (zh) 用以控制鏈結介面之未使用硬體的電力消耗之方法、設備及系統
JP2024526012A (ja) 部分幅リンク状態におけるレイテンシ最適化