TW201447580A - 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統 - Google Patents

用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統 Download PDF

Info

Publication number
TW201447580A
TW201447580A TW103105661A TW103105661A TW201447580A TW 201447580 A TW201447580 A TW 201447580A TW 103105661 A TW103105661 A TW 103105661A TW 103105661 A TW103105661 A TW 103105661A TW 201447580 A TW201447580 A TW 201447580A
Authority
TW
Taiwan
Prior art keywords
memory
conflict
request
cache
memory access
Prior art date
Application number
TW103105661A
Other languages
English (en)
Other versions
TWI524184B (zh
Inventor
Ramadass Nagarajan
Robert G Milstrey
Michael T Klinglesmith
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201447580A publication Critical patent/TW201447580A/zh
Application granted granted Critical
Publication of TWI524184B publication Critical patent/TWI524184B/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • 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
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本發明提供用於在分散式記憶體組織中處理位址衝突之方法、設備及系統。經由使用一使用並行管線之分散式記憶體組織架構同時地服務源自一電腦系統中之快取代理及輸入/輸出(I/O)代理的記憶體存取請求,同時維持與該等快取代理相關聯之快取線的記憶體一致性,且強制執行源自I/O代理之記憶體存取請求的記憶體存取排序。

Description

用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統 發明領域
本發明係關於計算系統,且詳言之(但非排他地),係關於在分散式記憶體組織中處理位址衝突。
發明背景
隨著計算系統之進展,其中的組件變得愈來愈複雜。結果,用以耦接組件且在組件之間通訊的互連架構之複雜度亦增加,以確保滿足最佳組件操作之頻寬要求。此外,不同市場區隔需要互連架構之不同態樣以符合市場需求。舉例而言,伺服器要求較高的效能,而行動生態系統有時能夠為了省電而犧牲總的效能。然而,在省電最多的情況下提供最高可能的效能為大多數組織之突出目的。下文論述了眾多互連,其將潛在地受益於本文中所描述之本發明態樣。
發明概要
依據本發明之一實施例,係特地提出一種設備,其包含:一記憶體存取請求仲裁器,其經組配以授予來自複數個輸入記憶體存取請求當中之一記憶體存取請求,該複數個輸入記憶體存取請求包括:源自複數個快取代理之記憶體存取請求;源自複數個輸入/輸出(I/O)代理之記憶體存取請求;以及先前由該仲裁器所仲裁之有衝突記憶體存取請求,每一記憶體存取請求識別與用於請求存取之一快取線相關聯的一位址;一分散式記憶體組織,其包括經組配以並行地操作之複數個管線;至少一個快取代理衝突佇列;至少一個I/O衝突佇列;以及位址衝突處理邏輯,其經組配以判定一當前評估之記憶體存取請求是否與另一未決記憶體存取請求相衝突,且經組配以將來自快取代理之有衝突記憶體存取請求排入該至少一個快取代理衝突佇列中,及將來自I/O代理之有衝突記憶體存取請求排入該至少一個I/O代理衝突佇列中。
100、910‧‧‧處理器
101、102、202-0、202-N、806、807‧‧‧核心
101a、101b‧‧‧硬體執行緒槽/架構狀態暫存器/邏輯處理器
102a、102b‧‧‧架構狀態暫存器
105‧‧‧匯流排
110‧‧‧晶片上介面模組/核心(核心上部分)
120‧‧‧指令轉譯緩衝器(I-TLB)/分支目標緩衝器/提取單元
125‧‧‧解碼模組/解碼邏輯/解碼器
126‧‧‧解碼器
130‧‧‧分配器及重命名器區塊
135‧‧‧重新排序/引退單元/無序單元
140‧‧‧執行單元
150‧‧‧資料轉譯緩衝器(D-TLB)
175、308-0、308-1‧‧‧系統記憶體
176‧‧‧應用程式碼
177‧‧‧轉譯器程式碼
180‧‧‧圖形裝置/圖形處理器
200‧‧‧系統架構
202‧‧‧處理器核心/快取代理
204‧‧‧一致性單元
206、206a‧‧‧系統代理
208-0、208-1‧‧‧記憶體控制器
209‧‧‧主要介面
210‧‧‧IO根複合體
212‧‧‧主要IO交換組織
214、216、218‧‧‧交換組織
220‧‧‧橋接器
222、222-1、222-2、222-3、222-4、222-5、222-6、222-7、222-L、222-M‧‧‧IO代理
302‧‧‧共享記憶體組織
304‧‧‧共同記憶體存取請求仲裁器(仲裁器)
306-0、306-1‧‧‧記憶體組織管線
310‧‧‧共享一致性組織
312-0、312-1‧‧‧一致性組織管線
314‧‧‧雜項功能
316‧‧‧共同窺探/回應仲裁邏輯
400-0、400-N‧‧‧快取代理請求佇列
401‧‧‧I/O根複合體請求佇列
402‧‧‧按「類別」I/O衝突佇列
404-0、404-1‧‧‧衝突檢查邏輯區塊
406-0、406-1‧‧‧快取代理衝突佇列
407-0、407-1‧‧‧計分板
408‧‧‧衝突排序區塊(COB)
410、411、412、413、415、417‧‧‧正反器
414‧‧‧拒絕IO請求多工器(mux)
416‧‧‧拒絕IO請求解多工器
418‧‧‧衝突佇列仲裁器
420‧‧‧雜湊邏輯
700、900‧‧‧系統
702、800‧‧‧系統單晶片(SoC)
704‧‧‧主板
706‧‧‧底盤
708、815‧‧‧圖形處理單元(GPU)
710、845‧‧‧快閃控制器
712‧‧‧大容量儲存裝置
714‧‧‧顯示器
716-0、716-1‧‧‧記憶體
718‧‧‧部分
720‧‧‧PCIe根複合體
722、724‧‧‧PCIe根埠
726‧‧‧晶片上IEEE 802.11(亦稱作「WiFi」)介面
728‧‧‧WiFi無線電晶片
730‧‧‧通用串列匯流排(USB)2或USB3介面
734‧‧‧USB2/USB3介面晶片
736‧‧‧天線
738‧‧‧USB2/USB3埠
740‧‧‧行動電話
742‧‧‧平板電腦
744‧‧‧攜帶型電腦(例如,筆記型電腦、膝上型電腦或UltrabookTM)
746‧‧‧基本輸入/輸出軟體(BIOS)
808‧‧‧快取記憶體控制
809‧‧‧匯流排介面單元
810‧‧‧L2快取記憶體
820‧‧‧視訊編碼解碼器
825‧‧‧視訊介面
830、957‧‧‧用戶身分識別模組(SIM)
835‧‧‧開機rom
840‧‧‧SDRAM控制器
860‧‧‧動態隨機存取記憶體(DRAM)
865‧‧‧快閃
870‧‧‧藍芽模組
875‧‧‧3G數據機
880‧‧‧全球定位系統(GPS)
885‧‧‧WiFi
915‧‧‧系統記憶體
920‧‧‧大容量儲存裝置
922‧‧‧快閃裝置
924‧‧‧顯示器
925‧‧‧觸控式螢幕
930‧‧‧觸控板
935‧‧‧嵌入式控制器
936‧‧‧鍵盤
937‧‧‧風扇
938‧‧‧受信任平台模組(TPM)
939‧‧‧熱感測器
940‧‧‧感測器集線器
941‧‧‧加速計
942‧‧‧環境光感測器(ALS)
943‧‧‧羅盤
944‧‧‧迴轉儀
945‧‧‧近場通訊(NFC)單元
946‧‧‧熱感測器
950‧‧‧WLAN單元
952‧‧‧藍芽單元
954‧‧‧攝影機模組
955‧‧‧GPS模組
956‧‧‧WWAN單元
960‧‧‧數位信號處理器(DSP)
962‧‧‧經整合編碼器/解碼器(CODEC)及放大器
963‧‧‧輸出揚聲器
964‧‧‧頭戴式耳機插口
965‧‧‧麥克風
圖1例示包括多核心處理器之計算系統的方塊圖之實施例。
圖2例示包括系統代理之計算系統的方塊圖之實施例,該系統代理實施分散式一致性及記憶體組織。
圖3例示包括分散式及一致性記憶體組織之系統代理的實施例。
圖4例示根據一個實施例之圖3的分散式記憶體組織之其他細節。
圖5為例示根據一個實施例之用於強制執行虛擬通道之記憶體存取請求排序的操作及邏輯之流程圖。
圖6為例示根據一個實施例之用於執行衝突排序操作的操作及邏輯之流程圖。
圖7例示一系統架構之方塊圖之實施例,在該系統架構下實施本文中所揭示之實施例的各種態樣。
圖8例示晶片上之計算系統之實施例。
圖9例示計算系統的方塊圖之實施例。
較佳實施例之詳細說明
在以下描述中,陳述了眾多特定細節,諸如特定類型之處理器及系統組配、特定硬體結構、特定架構及微架構細節、特定暫存器組配、特定指令類型、特定系統組件、特定尺寸/高度、特定處理器管線級及操作等的實例,以便提供對本發明之全面理解。然而,熟習此項技術者將明顯地不需要使用此等特定細節來實踐本發明。在其他情況下,熟知組件或方法(諸如,特定及替代處理器架構、用於所描述之演算法的特定邏輯電路/程式碼、特定韌體程式碼、特定互連操作、特定邏輯組配、特定製造技術及材料、特定編譯器實施、程式碼中演算法的特定表達、特定電源關閉及閘控技術/邏輯及電腦系統之其他特定操作細節)並未被詳細描述以便避免不必要地使本發明模糊不清。
儘管可能參考特定積體電路中(諸如,計算平台 或微處理器中)之能源節省及能源效率來描述以下實施例,但其他實施例適用於其他類型之積體電路及邏輯裝置。本文中所描述之實施例的類似技術及教示可適用於其他類型之電路或半導體裝置,該等其他類型之電路或半導體裝置亦可受益於較佳能源效率及能源節省。舉例而言,所揭示之實施例可用於裝置中,諸如,但不限於,手持型裝置、平板電腦、UltrabooksTM及其他薄筆記型電腦、系統單晶片(SOC)裝置、桌上型電腦系統及嵌入式應用。手持型裝置之一些實例包括蜂巢式電話、網際網路協定裝置、數位攝影機、個人數位助理(PDA)及手持型PC。嵌入式應用通常包括微控制器、數位信號處理器(DSP)、系統單晶片、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)交換器或可執行下文所教示之功能及操作的任何其他系統。此外,本文中所描述之設備、方法及系統不限於實體計算裝置,而是亦可涉及用於能源節省及效率之軟體最佳化。如下文描述中將明顯可見,本文中所描述之方法、設備及系統的實施例(不管是根據硬體、韌體、軟體還是其組合)對於與效能考量求得平衡的「綠色技術」未來而言至關重要。
隨著計算系統之進展,其中的組件變得愈來愈複雜。結果,用以耦接組件且在組件之間通訊的互連架構之複雜度亦增加,以確保滿足最佳組件操作之頻寬要求。此外,不同市場區隔需要互連架構之不同態樣以符合市場需求。舉例而言,伺服器要求較高的效能,而行動生態系 統有時能夠為了省電而犧牲總的效能。然而,在省電最多的情況下提供最高可能的效能為大多數組織之獨一目的。下文論述了眾多互連,其將潛在地受益於本文中所描述之本發明態樣。
圖1
參看圖1,描繪包括多核心處理器之計算系統的方塊圖之實施例。處理器100包括任何處理器或處理裝置,諸如微處理器、嵌入式處理器、數位信號處理器(DSP)、網路處理器、手持型處理器、應用程式處理器、共處理器、系統單晶片(SOC)或用以執行程式碼之其他裝置。在一個實施例中,處理器100包括至少兩個核心(核心101及102),該等核心可包括非對稱核心或對稱核心(所例示之實施例)。然而,處理器100可包括可為對稱或非對稱之任何數目個處理元件。
在一個實施例中,處理元件係指用以支援軟體執行緒之硬體或邏輯。硬體處理元件之實例包括:執行緒單元、執行緒槽、執行緒、處理單元、上下文、上下文單元、邏輯處理器、硬體執行緒、核心及/或能夠保持處理器之狀態(諸如,執行狀態或架構狀態)的任何其他元件。換言之,在一個實施例中,處理元件係指能夠與程式碼(諸如,軟體執行緒、作業系統、應用程式或其他程式碼)獨立地相關聯之任何硬體。實體處理器(或處理器插槽)通常係指積體電路,該積體電路潛在地包括任何數目個其他處理元件,諸如核心或硬體執行緒。
核心常常係指位於積體電路上之能夠維持獨立架構狀態的邏輯,其中每一獨立地維持之架構狀態與至少一些專用執行資源相關聯。與核心相對比,硬體執行緒通常係指位於積體電路上之能夠維持獨立架構狀態的任何邏輯,其中獨立地維持之架構狀態共享對執行資源之存取。如可看見,當某些資源為共享的,且其他資源專用於一架構狀態時,硬體執行緒及核心之命名之間的界線重疊。然而經常地,核心及硬體執行緒被作業系統視為個別邏輯處理器,其中作業系統能夠個別地排程每一邏輯處理器上之操作。
如圖1中所例示,實體處理器100包括兩個核心,核心101及102。此處,核心101及102被視為對稱核心,即具有相同組配、功能單元及/或邏輯之核心。在另一實施例中,核心101包括無序處理器核心,而核心102包括有序處理器核心。然而,核心101及102可個別地選自任何類型之核心,諸如本機核心、軟體管理核心、適於執行本機指令集架構(ISA)之核心、適於執行經轉譯指令集架構(ISA)之核心、協同設計之核心或其他已知核心。在異質核心環境(亦即,非對稱核心)中,可利用某一形式之轉譯(諸如,二進位轉譯)來排程或執行一或兩個核心上之程式碼。但為了進一步論述,下文更詳細描述核心101中所例示之功能單元,此係因為在所描繪之實施例中,核心102中之單元以類似方式操作。
如所描繪,核心101包括兩個硬體執行緒101a及 101b,該等硬體執行緒亦可被稱作硬體執行緒槽101a及101b。因此,在一個實施例中,諸如作業系統之軟體實體潛在地將處理器100視為四個單獨處理器,亦即,能夠同時執行四個軟體執行緒之四個邏輯處理器或處理元件。如上文所暗示,第一執行緒與架構狀態暫存器101a相關聯,第二執行緒與架構狀態暫存器101b相關聯,第三執行緒可與架構狀態暫存器102a相關聯,且第四執行緒可與架構狀態暫存器102b相關聯。此處,架構狀態暫存器(101a、101b、102a及102b)中之每一者可被稱作處理元件、執行緒槽或執行緒單元,如上文所描述。如所例示,在架構狀態暫存器101b中複製架構狀態暫存器101a,因此能夠儲存邏輯處理器101a及邏輯處理器101b之個別架構狀態/上下文。在核心101中,亦可複製執行緒101a及101b之其他較小的資源(諸如,指令指標及分配器及重命名器區塊130中的重命名邏輯)。一些資源(諸如,重新排序/引退單元135中之重新排序緩衝器、ILTB 120、載入/儲存緩衝器及佇列)可經由分割來共享。潛在地完全共享其他資源(諸如,通用內部暫存器、頁表基暫存器、低層級資料快取記憶體及資料TLB 115、執行單元140及無序單元135之部分)。
處理器100經常包括可被完全共享、經由分割共享或由處理元件專用/專用於處理元件之其他資源。在圖1中,例示具有處理器之例示性邏輯單元/資源之純示範性處理器的實施例。應注意,處理器可包括或省略此等功能單元中之任一者,以及包括未描繪之任何其他已知功能單 元、邏輯或韌體。如所例示,核心101包括簡化、代表性無序(OOO)處理器核心。但可在不同實施例中利用有序處理器。OOO核心包括用以預測待執行/採納的分支之分支目標緩衝器120及用以儲存指令之位址轉譯條目的指令轉譯緩衝器(I-TLB)120。
核心101進一步包括耦接至提取單元120以解碼經提取元素之解碼模組125。在一個實施例中,提取邏輯包括分別與執行緒槽101a、101b相關聯之個別定序器。通常,核心101與第一ISA相關聯,第一ISA定義/指定可在處理器100上執行之指令。為第一ISA之部分的機器碼指令經常包括參考/指定待執行之指令或操作的指令之一部分(被稱作作業碼)。解碼邏輯125包括自其作業碼辨識此等指令且在管線中傳遞經解碼之指令以用於處理(如由第一ISA所定義)的電路。舉例而言,如下文更詳細所論述,在一個實施例中,解碼器125包括經設計或適於辨識諸如異動指令之特定指令的邏輯。作為由解碼器125辨識之結果,架構或核心101採取特定、預定義動作來執行與適當指令相關聯之任務。注意到可回應於單一或多個指令而執行本文中所描述之任務、區塊、操作及方法中的任一者係重要的;單一或多個指令中的一些可為新的或舊的指令。注意到,在一個實施例中,解碼器126辨識相同的ISA(或其子集)。或者,在異質核心環境中,解碼器126辨識第二ISA(第一ISA之子集或相異的ISA)。
在一個實例中,分配器及重命名器區塊130包括 用以保留資源之分配器(諸如,用以儲存指令處理結果之暫存器檔案)。然而,執行緒101a及101b潛在地能夠無序執行,其中分配器及重命名器區塊130亦保留其他資源,諸如用以追蹤指令結果之重新排序緩衝器。單元130亦可包括暫存器重命名器以將程式/指令參考暫存器重命名成處理器100內部之其他暫存器。重新排序/引退單元135包括諸如上文所提及之重新排序緩衝器、載入緩衝器及儲存緩衝器之組件,以支援無序執行及稍後對無序執行之指令的有序引退。
在一個實施例中,排程器及執行單元區塊140包括用以排程執行單元上之指令/操作的排程器單元。舉例而言,在具有可用浮點執行單元之執行單元的埠上排程浮點指令。亦包括與執行單元相關聯之暫存器檔案以儲存資訊指令處理結果。示範性執行單元包括浮點執行單元、整數執行單元、跳轉執行單元、載入執行單元、儲存執行單元及其他已知執行單元。
較低層級資料快取記憶體及資料轉譯緩衝器(D-TLB)150耦接至執行單元140。資料快取記憶體用以儲存最近使用/被操作之元素(諸如,資料運算元),該等元素被潛在地保持於記憶體一致性狀態。D-TLB用以儲存新近的虛擬/線性至實體位址轉譯。作為特定實例,處理器可包括用以將實體記憶體分解成複數個虛擬頁之頁表結構。
此處,核心101及102共享對較高層級或更外層的快取記憶體(諸如,與晶片上介面110相關聯之第二層級 快取記憶體)之存取。應注意,較高層級或更外層係指增加的或進一步遠離執行單元之快取記憶體層級。在一個實施例中,較高層級快取記憶體為最後層級資料快取記憶體(處理器100上之記憶體階層中的最後快取記憶體),諸如第二或第三層級資料快取記憶體。然而,較高層級快取記憶體不限於此,因為其可與指令快取記憶體相關聯或包括指令快取記憶體。替代地,跡線快取記憶體(一種類型之指令快取記憶體)可耦接於解碼器125之後以儲存最近解碼之跡線。此處,指令潛在地係指巨集指令(亦即,由解碼器辨識之通用指令),該巨集指令可解碼成數個微指令(微操作)。
在所描繪組配中,處理器100亦包括晶片上介面模組110。在歷史上,已在處理器100外部之計算系統中包括下文更詳細描述之記憶體控制器。在此情形中,晶片上介面11將與處理器100外部之裝置(諸如,系統記憶體175、晶片組(經常包括耦接至記憶體175之記憶體控制器集線器及連接周邊裝置之輸入/輸出(I/O或IO)控制器集線器)、記憶體控制器集線器、北橋或其他積體電路)通訊。且在此情形中,匯流排105可包括任何已知之互連,諸如多點匯流排、點對點互連、串列互連、並聯匯流排、一致性(例如,快取一致性)匯流排、分層協定架構、差分匯流排及GTL匯流排。
記憶體175可專用於處理器100或被與系統中之其他裝置共享。記憶體175之類型的常見實例包括 DRAM、SRAM、非依電性記憶體(NV記憶體)及其他已知儲存裝置。應注意,裝置180可包括圖形加速器、耦接至記憶體控制器集線器之處理器或卡、耦接至I/O控制器集線器之資料儲存裝置、無線收發器、快閃裝置、音訊控制器、網路控制器或其他已知裝置。
然而,最近隨著更多的邏輯及裝置被整合於單一晶粒上,諸如由系統單晶片(SoC)實施,此等裝置中之每一者可併入於處理器100上。舉例而言,在一個實施例中,記憶體控制器集線器與處理器100在相同之封裝及/或晶粒上。此處,核心110之一部分(核心上部分)包括用於與其他裝置(諸如,記憶體175或圖形裝置180)介接之一或多個控制器。包括用於與此等裝置介接之互連及控制器之組配經常被稱作核心上(或非核心組配)。作為實例,在一個實施例中,晶片上介面110包括用於晶片上通訊之環互連及用於晶片外通訊之高速串列點對點鏈路105。或者,晶片上通訊可由具有網格型組配之一或多個交換組織促進。然而,在SoC環境中,諸如網路介面、共處理器、記憶體175、圖形處理器180及任何其他已知電腦裝置/介面之甚至更多裝置可整合於單一晶粒或積體電路上,以提供具有高功能性及低功率消耗之小外觀尺寸。
在一個實施例中,處理器100能夠執行編譯器、最佳化及/或轉譯器程式碼177以編譯、轉譯及/或最佳化應用程式碼176,以支援本文中所描述之設備及方法或與其介接。編譯器經常包括用以將源文字/程式碼轉譯成目標 文字/程式碼之程式或一組程式。通常,編譯器對程式/應用程式碼的編譯在多個階段及遍次中進行,以將高階程式設計語言碼變換成低階機器或組合語言碼。又,仍可利用單次編譯器以用於簡單編譯。編譯器可利用任何已知編譯技術,且執行任何已知編譯器操作,諸如語彙分析、預處理、剖析、語義分析、程式碼產生、程式碼變換及程式碼最佳化。
較大編譯器經常包括多個階段,但此等階段最經常包括於兩個通用階段內:(1)前端,亦即通常其中可發生語法處理、語義處理及一些變換/最佳化,及(2)後端,亦即通常其中發生分析、變換、最佳化及程式碼產生。一些編譯器涉及中間部分,其例示編譯器之前端與後端之間的輪廓之模糊。結果,對編譯器之插入、關聯、產生或其他操作之參考可發生於前述階段或遍次中的任一者以及編譯器之任何其他已知階段或遍次中。作為例示性實例,編譯器潛在地在編譯之一或多個階段中插入操作、呼叫、函式等,諸如在編譯之前端階段中插入呼叫/操作,及接著在變換階段期間將呼叫/操作變換成較低階程式碼。應注意,在動態編譯期間,編譯器程式碼或動態最佳化程式碼可插入此等操作/呼叫,以及在執行階段期間最佳化程式碼以用於執行。作為特定例示性實例,二進位碼(已經編譯之程式碼)可在執行階段期間動態地最佳化。此處,程式碼可包括動態最佳化程式碼、二進位碼或其組合。
類似於編譯器,諸如二進位轉譯器之轉譯器靜 態地或動態地轉譯程式碼以最佳化及/或轉譯程式碼。因此,對碼、應用程式碼、程式碼或其他軟體環境之執行的參考可係指:(1)動態地或靜態地執行編譯器程式、最佳化程式碼最佳化器或轉譯器以編譯程式碼,維持軟體結構,執行其他操作,最佳化程式碼或轉譯程式碼;(2)執行包括操作/呼叫之主程式碼,諸如已最佳化/編譯之應用程式碼;(3)執行與主程式碼相關聯之其他程式碼(諸如,程式庫)以維持軟體結構,執行其他軟體相關操作或最佳化程式碼;或(4)其組合。
現參看圖2,展示系統架構200之實施例的方塊圖。在一個實施例中,系統架構200對應於包含多核心處理器之SoC架構。更一般而言,圖2中所例示之組件可經實施為一或多個積體裝置,諸如半導體晶片。
系統架構200包括經由一致性匯流排耦接至系統代理206之一致性單元204的複數個處理器核心202(描繪為202-0...202-N)。系統代理206支援各種系統功能,包括將核心202中之快取代理及其他非快取IO代理介接至記憶體控制器208-0及208-1。(如本文中所使用,術語IO及I/O兩者皆係指輸入/輸出且可互換地使用。)如下文進一步詳細描述,在一個實施例中,系統代理206經組配以實施分散式一致性及記憶體組織,包括經由一致性單元204所提供之設施支援一致操作。
在一個實施例中,快取代理與同處理器核心202相關聯之每一「邏輯」處理器核心相關聯。舉例而言,在 Intel's® HyperthreadingTM架構下,每一實體核心經實施為兩個邏輯核心。一般而言,快取代理可與一或多個邏輯處理器以及存取一致性記憶體的其他實體(諸如,圖形引擎或其類似者)相關聯。
系統代理206亦經由主要介面209耦接至IO根複合體210,該IO根複合體又耦接至或整合於主要IO交換組織212中。IO根複合體210及主要IO交換組織212實施於多層級IO互連階層的頂部層級中,該多層級IO互連階層使用駐留於階層中之不同層級處的多個交換組織,如由交換組織214、216及218所描繪。IO互連階層之給定分支可使用相同類型之交換組織(其使用共同架構及協定),或不同類型之交換組織(其使用不同架構及/或協定)。在後一狀況下,通常將實施橋接器以作為具有不同架構/協定之一對交換組織之間的介面而操作,諸如由橋接器220所描繪。如本文中所使用,交換組織通常可包含互連、匯流排結構、多維網格組織或經組配以促進耦接至交換組織之組件之間的通訊之其他已知互連架構及相關聯的介面邏輯。IO交換組織架構/協定可包括(但不限於)快速周邊組件互連(PCIeTM)、開放核心協定(OCP)、Intel晶片上系統組織(IOSF)及進階微控制器匯流排架構(AMBA)互連。
各種IO裝置耦接至IO階層中之各種交換組織,其中每一IO裝置經組配以實施IO代理222或與IO代理222相關聯,如由IO代理222-1至222-M所描繪(亦分別標記為IO代理1-M)。在所例示實施例中,此等IO代理中之每一者包 含非快取代理。通常,IO代理經組配以執行代表其相關聯之裝置的操作(諸如,通訊操作),使得裝置能夠與系統中之其他組件通訊。因此,IO代理經常結合通訊介面及其他類型之介面來實施,其在本文中可被描繪為單獨組件或可整合於其他組件(諸如裝置、橋接器及交換組織)中。
在系統架構200下,系統代理206實施系統中之一致性及記憶體互連組織的中心部分。該系統代理實施用於請求存取記憶體及系統中之其他裝置的各種代理之快取一致性協定、由架構之程式化模型指定的生產者-消費者排序規則、IO根複合體函式及服務品質(QoS)感知仲裁。
在典型架構下,系統代理內部之一致性及記憶體組織通常僅針對對相異快取線的快取一致性請求操作,以確保橫跨系統中之所有快取代理的正確的一致性行為。因此,必須暫停請求之處理,直至對與當前請求之快取線相同之快取線的先前請求已完成為止。此等暫停條件通常被稱作位址衝突。正確地處理位址衝突出於許多原因而為挑戰性問題,該等原因包括如下:a)排序,具有衝突之請求在自身之間且亦與不相關的較新請求具有某些排序要求;b)未經折衷的效能,來自一個代理之衝突不應降級共享相同互連鏈路及一致性組織之不相關的代理之效能及QoS;c)分佈,必須橫跨組織中之任何分散式管線維持衝突及相關請求之排序;及d)低成本,為了最佳的功率受約束效能,處理位址衝突所需要的系統資源應保持為儘可能低的。
圖3展示包括分散式及一致性記憶體組織之系統代理206a的一個實施例之其他細節。系統代理206a包括:共享記憶體組織302,該共享記憶體組織含有共同記憶體存取請求仲裁器(仲裁器)304及兩個記憶體組織管線306-0及306-1以排程對系統記憶體308-0及308-1之請求(分別經由記憶體控制器208-0及208-1來存取);共享一致性組織310,其包括用以管理快取一致性之兩個一致性組織管線312-0及312-1、用以處理雜項功能314(諸如,中斷)之非一致性引擎及共同窺探/回應仲裁邏輯316。快取代理202將其請求直接呈現給仲裁器304。IO代理222(未圖示)經由IO根複合體210發出其請求,該IO根複合體隨後將代表IO代理之請求發出至仲裁器304。
為了實施有差別的QoS,在一個實施例中,IO組織及主要介面209兩者皆實施共享單一實體互連介面之多個虛擬通道。為了設計簡便起見,在一個實施例中,典型系統組配可以兩倍於個別管線的頻率執行由兩個記憶體組織管線及兩個一致性組織管線共享的共同硬體。另外,多個管線架構經組配以執行用於並行地服務記憶體存取請求之管線化操作。儘管圖2中描繪了兩個一致性及記憶體管線,但應理解,可擴展本文中所揭示之一般教示及原理以橫跨多個管線實施類似的並行操作。
仲裁器304每一循環仲裁且授予一個請求,且將請求安排路由至兩個記憶體組織管線中之一者,如經由使用被應用於請求中所含有之資料(諸如,快取線位址)的雜 湊演算法判定。雜湊演算法確保對相同快取線之請求總是被安排路由至相同的記憶體組織管線。因為仲裁器304為記憶體組織管線306-0及306-1兩者之共同入口點,所以典型系統中之仲裁器可以至多兩倍於記憶體組織管線的頻率執行。
圖4展示根據一個實施例之記憶體組織302的其他細節。除了仲裁器304及記憶體組織管線306-0及306-1之外,圖4中所例示之組件及邏輯包括快取代理請求佇列400-0及400-N、I/O根複合體請求佇列401、按「類別」I/O衝突佇列402、衝突檢查邏輯區塊404-0及404-1、快取代理衝突佇列406-0及406-1、計分板407-0及407-1、衝突排序區塊(COB)408、正反器410、411、412、413、415及417、拒絕IO請求多工器(mux)414、拒絕IO請求解多工器416、衝突佇列仲裁器418及雜湊邏輯420。
記憶體組織管線306-0及306-1中之每一者實施衝突檢查以確保整個系統代理僅針對對相異快取線之一致性請求操作。此情形經由位址匹配邏輯來實施以偵測與先前未決請求之衝突,且若存在任何衝突,則其防止進一步處理該請求。若不存在衝突,則記憶體組織管線通知其對應一致性管線進行快取一致性操作。記憶體組織管線亦將請求記錄至記憶體組織管線中之計分板407中以用於排程至系統記憶體。
無法接納由仲裁器304挑選但遭遇衝突條件(如上文所描述)之請求。替代地,將該等請求排入許多衝突 佇列中之一者中。衝突佇列對於快取代理(亦即,快取代理衝突佇列406-0及406-1)及I/O代理(亦即,按類別I/O衝突佇列402)而言係分離的。每一記憶體組織管線實施意欲用於來自所有快取代理之請求的單一衝突佇列。出於排序及QoS原因,單獨地維持用於I/O代理之衝突佇列,且將其實施為由兩個管線共享之單獨佇列。
用於快取代理之衝突佇列
快取代理衝突佇列406-0及406-1是意欲專門用於來自快取代理之請求。一般而言,快取代理衝突佇列可具有可在實施之間不同的可組配深度。在一個實施例中,快取代理衝突佇列保留每一邏輯處理器的一個條目,及一共享集區以涵蓋自仲裁器304至與衝突佇列相關聯之衝突檢查區塊404之管線的深度。
在一個實施例中,快取代理衝突佇列中之每一條目含有以下屬性:有效:條目是否有效?;is_mmio:請求是否以MMIO(記憶體映射IO)為目標;conflict_btag:此請求與之衝突的先前請求之標籤;conflict_cleared:對於此條目是否已清除衝突。最初將設定為0(具有如下文所註明之例外)。當引起衝突之先前請求引退時,將設定為1;及與接收於仲裁器處的記憶體存取請求相關聯之所有原始請求屬性。
在一個實施例中,為了維持程式排序,快取代 理衝突佇列之規則為如下:
1. 對相同位址之所有請求係按其由仲裁器304授予之次序來處理。針對每一入埠請求執行相對於快取代理衝突佇列中的每一條目及請求被安排路由至之記憶體組織管線之計分板之位址匹配檢查。
2. 若入埠請求係來自快取代理,則:若存在與已經未決請求之位址匹配,則將請求排入快取代理衝突佇列(用於適用的記憶體組織管線)且將用於先前請求之標籤儲存至conflict_btag屬性中,且將conflict_cleared設定為0。若存在與衝突佇列中的先前條目的匹配,但不存在與未決請求之匹配,則亦將新的請求排入至衝突佇列,但將conflict_cleared設定為1。此情形意謂當此條目到達衝突佇列之頭部時,立即重新仲裁係適合的。
I/O衝突佇列
系統代理對於來自I/O根複合體之請求實施可組配數目個I/O衝突佇列402(按「類別」一個I/O衝突佇列)。佇列之數目可取決於系統實施而變化。此等衝突佇列確保避免鎖死,且將QoS保證提供至需要該等保證之代理。預期每一佇列的深度為涵蓋自I/O根複合體210至衝突檢查邏輯之管線潛時所需的。若判定請求具有衝突,則將該請求排入適當I/O衝突類別佇列中。在一個實施例中,可由(其他系統韌體之)BIOS程式化之組配暫存器指定每一虛擬通道(VC)至衝突佇列類別的映射(亦即,每一VC經指派給一類別)。給定VC可僅屬於一個衝突類別。系統代理基於請 求之VC及由組配暫存器提供之映射判定該類別,以決定將請求排入哪一I/O衝突佇列中。
衝突類別利用以下觀測:橫跨I/O代理之衝突為極少的事件,且對於某些類型之I/O代理而言亦為極少的事件。因此,在一些實施例中,系統將虛擬通道壓縮至相同衝突佇列類別中,該等虛擬通道為無依賴性的(對於確保避免鎖死)且預期僅在極少情況下導致衝突,且需要類似QoS保證。此方案允許出於衝突檢查目的而將多個虛擬通道壓縮至相對較少的類別中。此情形又減少面積開銷,I/O衝突檢查硬體僅需要佈建用於每一類別之專用資源,而不是佈建用於每一虛擬通道之專用資源,其中類別的數目小於虛擬通道之數目。
在一個實施例中,I/O衝突佇列之每一條目含有與上文所呈現之用於快取代理的衝突佇列類似的屬性。在I/O請求之狀況下,原始請求屬性將包括與請求所源自之I/O代理相關聯的VC。在一個實施例中,用於I/O衝突佇列之規則為如下:
1. 來自給定VC的對相同位址之所有請求按其由仲裁器304授予之次序來處理。
2. 一旦寫入請求遇到衝突且被排入I/O衝突佇列402中之類別佇列中的一者中,來自相同VC之所有寫入請求便按次序來處理,而不管位址。
在無上文規則#2的情況下,可違反涉及I/O代理之生產者-消費者排序。考慮以下序列。
1. I/O裝置在可快取記憶體中產生資料。因此,在寫入可被全域觀測之前,必須窺探CPU。然而,此請求在記憶體組織管線中之一者中遇到位址衝突,其可在裝置執行對相同位址之若干寫入的情況下發生。衝突將致使請求排入衝突佇列中。
2. I/O裝置對可快取記憶體進行旗標更新。假設旗標更新以其他記憶體組織管線為目標,且不具有衝突並繼續進行。
3. CPU讀取旗標。CPU可自步驟2得到更新之值。
4. CPU讀取資料。因為尚未全域觀測來自1之請求,所以CPU可能正自其快取記憶體讀取過期資料。此情形為排序違規。
因此,在一個實施例中,即使在連續I/O請求以不同記憶體組織管線為目標時,在衝突之後仍保持來自相同VC之請求排序。自I/O代理請求發起者之角度看,經由相同虛擬通道發送之來自I/O代理的請求看起來是按其在分散式記憶體組織中被接收之次序來受到服務。參看圖5之流程圖500,在一個實施例中,如下實現此情形。
I/O請求(亦即,源自IO代理之記憶體存取請求)之處理在區塊502處開始,其中在仲裁器304處自I/O根複合體請求佇列401接收I/O請求,且基於請求雜湊演算法結果將其發送至適當記憶體組織管線306-0或306-1之衝突檢查邏輯404。在每一入埠I/O根複合體請求時,兩個狀況適用(如由判定VC是否具有現有衝突的決定區塊之結果所描 繪):
A. 狀況A,VC當前不具有衝突:在區塊506中,衝突檢查邏輯404對計分板407中之先前接納之未決請求的集區及在快取代理衝突佇列406中等待記憶體組織管線306處理請求之請求兩者執行位址匹配。如由決定區塊508及區塊510所描繪,若存在衝突,則將請求連同其他屬性一起發送至衝突排序區塊(COB),以按正確的年齡次序將請求排入適當按類別衝突佇列中。亦設定狀態位元以指示VC已遇到衝突。若不存在衝突,則將衝突位址匹配檢查之結果連同VC及年齡指示一起發送至COB,如區塊512中所示。COB將關於是否可接納請求之最終指示提供至管線,如由決定區塊514所描繪。若無法接納請求,則在區塊516中,COB將請求排入適當按類別I/O衝突佇列402。亦設定狀態位元以指示VC已遇到衝突。若可接納請求,則其被轉遞至適用的系統記憶體佇列以進行關於所請求之記憶體異動的進一步處理,如由區塊518所描繪。
B. 狀況B,VC已經具有衝突:如由決定區塊504之是結果所描繪,若VC已經具有衝突,則衝突檢查邏輯繞過位址匹配,且在區塊510中將請求連同其他屬性一起發送至COB,以按正確的年齡次序將請求排入其按類別衝突佇列中。
在每一循環期間,COB使用由兩個管線發送至其之請求的年齡符記,且判定哪一個較舊及哪一個較新。在一個實施例中,年齡符記為與每一請求一起由仲裁 器304傳遞之2位元計數器值。仲裁器在每次其授予請求時遞增計數器。其將符記值連同請求屬性中之剩餘部分一起傳遞至適用的記憶體組織管線306。若仲裁足夠次數,則計數器可溢位。因此,COB中之次序判定邏輯經組配以處理溢位條件。
對於IO代理請求,COB將關於是否可接納記憶體組織管線的請求之最終通知提供至記憶體組織管線。用於執行COB操作及相關操作之操作及邏輯例示於圖6之流程圖600中。如流程圖600之頂部處所描繪,針對記憶體組織管線中之每一者並行地執行操作及邏輯。在每一循環期間,一對記憶體請求將前進至每一管線中之相同位置。在此情形中,並行地處理源自IO代理之一對記憶體存取請求,因此支援多個記憶體存取請求之同時處理。
如區塊602-0及602-1中所描繪,管線0及1中之每一者中的衝突檢查邏輯相對於服務尚待完成之先前接納之未決請求的集區執行位址匹配。如上文所論述,對於每一管線由計分板407維持此等請求之識別碼。將包括指示位址衝突檢查之結果的conflict_status位元之每一請求之屬性傳遞至區塊604,其中檢查conflict_status值,且基於年齡符記判定兩個請求之相對年齡,從而導致識別較舊及較新請求。
在決定區塊606中,判定兩請求是否皆不具有衝突。若回答為是,則邏輯繼續進行至區塊608,其中由COB用信號通知兩個管線以指示其請求可被接納。因此, 在每一管線處,將與彼管線相關聯之請求添加至管線之接納請求集區,且更新管線之計分板。
接下來,若對決定區塊606之回答為否,則在決定區塊610中判定是否較舊請求不具有衝突且較新請求具有衝突。若回答為是,則邏輯繼續進行至區塊612,其中COB用信號通知與請求相關聯之管線,指示請求可被接納。接著將請求添加至彼管線之接納請求集區,且更新管線之計分板。在區塊614中,有衝突的較新請求被排入其VC所映射至之按類別I/O衝突佇列中。COB亦通知與較舊請求相關聯之管線:經由與用於較新請求相同的VC所發送之未來請求將被排入VC之按類別I/O衝突佇列中,直至在後續處理期間接納較新請求為止。
若對決定區塊610之回答為否,則在決定區塊618中判定是否較舊請求具有衝突且已經由相同VC發送兩個請求。若回答為是,則邏輯繼續進行至區塊620,其中COB用信號通知兩個管線以指示其請求無法被接納。接著按年齡次序(亦即,較舊請求、繼之以較新請求)將請求排入經指派給VC之按類別I/O衝突佇列中。COB亦通知兩個管線:經由相同VC發送之未來請求將排入VC之按類別I/O衝突佇列中,直至在後續處理期間接納較舊請求為止。
若對決定區塊618之回答為否,則在決定區塊622中判定是否較舊請求具有衝突且已經由不同VC發送請求。若回答為是,則邏輯繼續進行至區塊624,其中COB用信號通知較舊請求之管線:其請求無法被接納,且用信 號通知較新請求之管線:其請求可被接納。COB亦通知與較新請求相關聯之管線:經由與用於較舊請求相同的VC發送之未來請求將被排入VC之按類別I/O衝突佇列中,直至在後續處理期間接納較舊請求為止,如區塊626中所描繪。
在流程圖600中,應注意儘管按次序描繪一些操作,但此情形僅出於解釋之目的,且不意謂為限制性的。而是,可並行地執行各種操作。舉例而言,可並行地執行與決定區塊606、610、618及622相關聯之判定中的每一者。類似地,可並行地執行在區塊612、614及616中執行之操作及在區塊624及626中執行之操作。
如上文所描述,系統代理將在衝突之後來自相同VC的每一請求按原始請求次序排入衝突佇列中。實際上,此導致在衝突之後的每一VC之線端阻塞(HOL),但是導致較簡單的微架構。為了減輕歸因於HOL阻塞之效能降級,系統代理對於某些類型之請求使用請求組合解決方案。舉例而言,可在以下條件下組合非窺探請求:a. 該等請求皆來自相同VC;b. 該等請求全部為讀取或全部為寫入;及c. 僅可組合對相同32位元組厚塊(chunk)之最多N個請求。下一個請求將被加標籤為具有衝突。(N為取決於實施之可組配數目)。
自衝突佇列重新仲裁
一旦衝突條件已清除,來自快取代理衝突佇列 及I/O衝突佇列兩者之請求便可回到仲裁器重新仲裁。當請求從系統代理引退時,請求將其標籤廣播至所有衝突佇列中之所有條目。若標籤匹配條目,則該標籤清除彼衝突佇列條目中之請求以用於重新仲裁。在一個實施例中,簡單循環仲裁器在所有衝突佇列中之頭部請求當中進行選擇。以最高優先級經由仲裁器重新仲裁所授予請求。
抗耗盡:為了避免耗盡,衝突檢查邏輯繼續對衝突加旗標直至其看見自衝突佇列重新仲裁的原始請求為止。在一個實施例中,如下藉由記憶體組織管線中之計分板407內之額外簿記邏輯來進行此情形。
‧當自衝突佇列回到仲裁器中重新仲裁時,被稱作「prior_conflict」之位元經確證且連同請求一起被發送至記憶體組織管線以用於位址匹配偵測。
‧當請求清除了後續衝突且引退時,其確證在計分板中的被稱作「conflict_block」的位元。
‧具有經撤銷確證的「prior_conflict」但與具有經確證的conflict_block之計分板條目具有位址匹配之任何新的請求將被用旗標標記為衝突,且被排入衝突佇列中。將設定「conflict_cleared」位元,標示著當此請求到達其衝突佇列之頭部時該請求適合於重新仲裁。
‧具有經確證的「prior_conflict」但與具有經確證的conflict_block之計分板條目具有位址匹配的任何新請求將不用旗標標記為衝突。新請求將被分配至相同計分板條目中,且將清除「conflict_block」位元。
衝突佇列流程控制
用於快取代理之衝突佇列:在仲裁器304與記憶體組織管線306-0及306-1之間完全管理用於快取代理衝突佇列406-0及406-1之流程控制。每一記憶體組織管線公佈每一邏輯處理器之保留信用及共享集區之信用兩者。仲裁器304可僅在來自快取代理之請求具有用於雜湊管線中之衝突佇列的信用(保留信用或共享信用)的情況下授予請求。仲裁器在授予請求時消耗信用。記憶體組織管線在衝突檢查通過而無衝突時或在請求被從其快取代理衝突佇列406移出時傳回信用。
I/O代理衝突佇列:藉由I/O根複合體210來管理針對IO衝突佇列402之流程控制。I/O根複合體為按類別衝突佇列中之每一者維持信用計數器。每一IO衝突佇列402之信用經初始化,且隨後與記憶體組織管線306-0及306-1交換。I/O根複合體在啟動對衝突佇列類別之請求之前消耗信用。記憶體組織管線在偵測到請求不具有衝突時或在請求被從按類別衝突佇列移出時傳回信用。
本文中所描述及例示之實施例的態樣可實施於如上文所描述之各種系統架構中。藉由實例,且不受限制,圖7中展示實施實施例之態樣的系統700。系統700包括安裝於底盤706中之主板704上或以其他方式耦接至該主板704的SoC 702。SoC包含多核心處理器,其使用類似於圖2至6中所例示及上文所描述的架構態樣及邏輯之架構態樣及邏輯,其中類似組件共享共同參考數字。這些組件包 括核心202-0至202-N、包括分散式一致性及記憶體組織及一致性單元204之系統代理206a、主要介面209、IO根複合體210及主要IO交換組織212。
在一個實施例中,分散式一致性及記憶體組織包含圖3及4中所例示之管線架構,如上文所描述。另外,系統代理可經組配以促進各種其他操作,諸如與其他組件之介接。除了記憶體控制器208-0及208-1之外,這些組件包括至圖形處理單元(GPU)708的介面(未圖示)及耦接至包含快閃記憶體之大容量儲存裝置712之快閃控制器710。GPU 708經組配以介接至顯示器714,諸如LCD型顯示器。在一些實施例中,顯示器714包含觸控式螢幕顯示器,且SoC包括用於促進觸控式螢幕操作之其他電路(見下文關於圖9之其他細節)。
記憶體控制器208-0及208-1分別耦接至記憶體716-0及716-1,其集體地組成系統700之系統記憶體。一般而言,記憶體控制器208-0及208-1可整合於SoC 702(如圖所示)上,可晶片外(亦即,與SoC 702分離)實施為單獨組件或整合於記憶體716-0及716-1中。類似地,GPU 708可整合於SoC 702上或包含晶片外組件。
如上文所描述,主要IO交換組織212位於包括兩個或兩個以上交換組織的IO互連階層之頂部處。為了方便及清楚起見,在主要IO交換組織212之右手側下方所描繪之互連階層的一部分被標記為718,且包含IO互連子階層,該IO互連子階層包含各種IO裝置及IO代理耦接至之一 或多個交換組織。這些包括經實施為在區塊中標記為IF之介面的IO代理(IOA)。
在主要IO交換組織212之左手側下方描繪的是包括一對PCIe根埠722及724之PCIe根複合體720。PCIe根埠722促進與耦接至安裝於主板704上之WiFi無線電晶片728的晶片上IEEE 802.11(亦稱作「WiFi」)介面726之通訊(經由使用PCIe協定之PCIe互連)。類似地,PCIe根埠724促進與耦接至主板704上之USB2/USB3介面晶片734的通用串列匯流排(USB)2或USB3介面730之通訊。WiFi無線電晶片728耦接至天線736,而USB2/USB3介面晶片734耦接至USB2/USB3埠738。
如在圖7之底部附近所描繪,系統700經例示為具有可實施於裝置中的系統架構,該等裝置諸如但不限於行動電話740、平板電腦742及攜帶型電腦(例如,筆記型電腦、膝上型電腦或UltrabookTM)744。除了系統700中之所例示的組件之外,熟習此項技術者將認識到,其他組件通常將包括於特定裝置中,諸如用於行動電話之行動無線電子系統、用於攜帶型電腦之鍵盤等。此外,每一裝置將使用電力子系統、電力管理邏輯(例如,實施於SoC 702上),且通常可支援其他類型之通訊埠,諸如ThunderboltTM埠、外部顯示埠(例如,HDMI、DVI埠、小型埠或顯示埠)、乙太網路埠等。
在回應於電力開啟事件或重設之初始化操作期間,諸如由BIOS 746所描繪之韌體被載入至系統記憶體之 受保護部分中,且用以初始化及組配各種系統組件,包括系統代理及IO互連階層交換組織、橋接器及介面。如本文中所使用,各種端點組件或裝置經由使用交換組織、橋接器、介面及IO代理及使用適用於特定互連架構之對應協定而操作性地耦接至其他系統組件。此等互連結構及協定促進在SoC 702及系統700之操作期間在組件之間的虛擬連接。
接著轉而參看圖8,描繪根據本發明之系統單晶片(SOC)設計之實施例。作為特定例示性實例,SOC 800包括於使用者設備(UE)中。在一個實施例中,UE係指由終端使用者用以通訊之任何裝置,諸如手持型電話、智慧型電話、平板電腦、超薄筆記型電腦、具有寬頻配接器之筆記型電腦或任何其他類似通訊裝置。UE經常連接至基地台或節點,UE潛在地本質上對應於GSM網路中之行動台(MS)。
此處,SOC 800包括2個核心,806及807。類似於上文之論述,核心806及807可遵照指令集架構,諸如基於Intel® Architecture CoreTM之處理器、先進微型裝置公司(Advanced Micro Devices,Inc.,AMD)處理器、基於MIPS之處理器、基於ARM之處理器設計或其客戶,以及其使用人或採用者之處理器設計。核心806及807耦接至與匯流排介面單元809及L2快取記憶體810相關聯的快取記憶體控制808以與系統800之其他部分通訊。互連810包括潛在地實施所描述之發明的一或多個態樣的晶片上互連(諸如, IOSF、AMBA或上文所論述之其他互連)。
介面810將通訊通道提供至其他組件,諸如,用以與用戶身分識別模組(SIM)卡介接之SIM830、用以保存供核心806及807執行以初始化且使SOC 800開機之開機程式碼的開機rom 835、用以與外部記憶體(例如,DRAM 860)介接之SDRAM控制器840、用以與非依電性記憶體(例如,快閃865)介接之快閃控制器845、用以與周邊裝置介接之周邊控制Q1650(例如,串列周邊介面)、用以顯示及接收輸入(例如,觸控式輸入)之視訊編碼解碼器820及視訊介面825、用以執行圖形相關計算之GPU 815等等。此等介面中之任一者可併入有本文中所描述之本發明的態樣。
另外,系統例示用於通訊之周邊裝置,諸如藍芽模組870、3G數據機875、GPS 885及WiFi 885。注意,如上文所陳述,UE包括用於通訊之無線電。結果,並不需要所有此等周邊通訊模組。然而,在UE中將包括用於外部通訊之某一形式的無線電。
應注意,上文所描述之設備、方法及系統可實施於如前述之任何電子裝置或系統中。作為特定例示,以下諸圖提供用於利用本發明之示範性系統,如本文中所描述。隨著更詳細描述以下系統,揭示、描述及自上文論述重新提及若干不同互連。且如明顯可見的,上文所描述之進展可適用於彼等互連、組織或架構中之任一者。
現參看圖9,例示根據本發明之實施例之存在於電腦系統中的組件之方塊圖。如圖9中所示,系統900包括 組件之任何組合。此等組件可實施為適用於電腦系統中之IC、其部分、離散電子裝置或其他模組、邏輯、硬體、軟體、韌體或其組合,或實施為以其他方式併入於電腦系統之底盤內的組件。亦應注意,圖9之方塊圖意欲展示電腦系統之許多組件的高階視圖。然而,應理解可省略所示之組件中的一些,可呈現額外組件,且所示之組件的不同配置可在其他實施中出現。結果,上文所描述之本發明可實施於下文所例示或描述之互連中的一或多者之任何部分中。
如圖9中所見,在一個實施例中,處理器910包括微處理器、多核心處理器、多執行緒處理器、超低電壓處理器、嵌入式處理器或其他已知處理元件。在所例示實施中,處理器910充當用於與系統900之各種組件中的許多組件通訊之主處理單元及中央集線器。作為一個實例,處理器900經實施為系統單晶片(SoC)。作為特定例示性實例,處理器910包括基於Intel® Architecture CoreTM之處理器(諸如,i3、i5、i7或可購自Intel Corporation(Santa Clara,CA)之另一此類處理器)。然而,應理解,其他低功率處理器(諸如,可購自Sunnyvale,CA的先進微型裝置公司(AMD))、來自Sunnyvale,CA之MIPS技術公司的基於MIPS之設計、由ARM Holdings,Ltd.提供使用權的基於ARM之設計或其客戶,或其使用人或採用者的設計可改為存在於其他實施例中,諸如Apple A5/A6處理器、Qualcomm Snapdragon處理器或TI OMAP處理器。應注意,此等處理 器之客戶版本中的許多被修改及變化;然而,其可支援或辨識執行如由處理器授權人陳述之經定義演算法的特定指令集。此處,微架構實施可變化,但處理器之架構功能通常為一致的。在一個實施中,將在下文中進一步論述關於處理器910之架構及操作的某些細節以提供例示性實例。
在一個實施例中,處理器910與系統記憶體915通訊。作為例示性實例,系統記憶體在實施例中可經由多個記憶體裝置實施以提供給定量的系統記憶體。作為實例,記憶體可根據基於電子裝置工程聯合委員會(JEDEC)低功率雙倍資料速率(LPDDR)之設計,諸如根據JEDEC JESD 209-2E(2009年4月公佈)之當前LPDDR2標準,或將被稱作LPDDR3或LPDDR4之下一代LPDDR標準,下一代LPDDR標準將提供對LPDDR2之擴展以增加頻寬。在各種實施中,個別記憶體裝置可具有不同封裝類型,諸如單晶粒封裝(SDP)、雙晶粒封裝(DDP)或四晶粒封裝(Q17P)。在一些實施例中,此等裝置被直接焊接至主機板上以提供較薄解決方案,而在其他實施例中,裝置經組配為一或多個記憶體模組,該等記憶體模組又藉由給定連接器耦接至主機板。當然,其他記憶體實施為可能的,諸如其他類型之記憶體模組,例如不同種類的雙列直插式記憶體模組(DIMM),包括但不限於microDIMM、MiniDIMM。在特定例示性實施例中,記憶體的大小被設定為2GB與16GB之間,且可經組配為經由球狀柵格陣列(BGA)焊接至主機板上的DDR3LM封裝或LPDDR2或LPDDR3記憶體。
為了提供諸如資料、應用程式、一或多個作業系統等等之資訊的持續儲存,大容量儲存裝置920亦可耦接至處理器910。在各種實施例中,為了實現較薄及較輕的系統設計以及改良系統回應性,此大容量儲存裝置可經由SSD來實施。然而,在其他實施例中,大容量儲存裝置主要可使用具有較小的SSD儲存量之硬碟機(HDD)來實施,以充當SSD快取記憶體以使得在電源關閉事件期間能夠非依電性儲存上下文狀態及其他此資訊,以便可在重新起始系統活動時發生快速電力開啟。亦在圖9中所示,快閃裝置922可例如經由串列周邊介面(SPI)耦接至處理器910。此快閃裝置可提供系統軟體(包括基本輸入/輸出軟體(BIOS))以及系統之其他韌體之非依電性儲存。
在各種實施例中,系統之大容量儲存裝置由SSD單獨實施或經實施為具有SSD快取記憶體之磁碟機、光碟機或其他碟機。在一些實施例中,大容量儲存裝置實施為SSD或連同還原(RST)快取記憶體模組的HDD。在各種實施中,HDD提供在320GB至4太位元組(TB)之間及更大的儲存,而RST快取記憶體係用具有24GB至256GB之容量的SSD來實施。應注意,此SSD快取記憶體可經組配為單層級快取記憶體(SLC)或多層級快取記憶體(MLC)選項,以提供適當層級之回應性。在唯SSD選項中,模組可容納於各種位置中,諸如在mSATA或NGFF槽中。作為實例,SSD具有範圍在120GB至1TB之間的容量。
各種輸入/輸出(IO)裝置可存在於系統900內。具 體言之,圖9之實施例中展示顯示器924,該顯示器可為經組配於底盤之蓋部分內的高清晰度LCD或LED面板。此顯示面板亦可提供觸控式螢幕925(例如,調適於顯示面板外部),以使得經由使用者與此觸控式螢幕之互動,可將使用者輸入提供至系統以允許實現所要操作,例如關於資訊之顯示、資訊之存取等等。在一個實施例中,顯示器924可經由可經實施為高效能圖形互連之顯示器互連而耦接至處理器910。觸控式螢幕925可經由在實施例中可為I2C互連之另一互連耦接至處理器910。如圖9中進一步所示,除了觸控式螢幕925之外,藉由觸碰而進行之使用者輸入亦可經由觸控板930而發生,該觸控板可經組配於底盤內,且亦可耦接至與觸控式螢幕925相同之I2C互連。
顯示面板可在多個模式中操作。在第一模式中,顯示面板可經配置於透明狀態中,其中顯示面板對可見光透明。在各種實施例中,除了周邊周圍的帶槽框以外,大多數顯示面板可為顯示器。當在筆記型電腦模式中操作系統且顯示器在透明狀態中操作時,使用者可檢視存在於顯示面板上之資訊,同時亦能夠檢視顯示器之後的物件。另外,顯示於顯示面板上之資訊可由定位於顯示器之後的使用者檢視。或,顯示面板之操作狀態可為不透明狀態,其中可見光不透射穿過顯示面板。
在平板電腦模式中,系統被摺疊關閉以使得當基底面板之底部表面擱在表面上或由使用者固持時,顯示面板之背顯示表面擱在使得其向外面朝使用者之位置中。 在平板電腦操作模式中,背顯示表面執行顯示器及使用者介面之角色,因為此表面可具有觸控式螢幕功能性,且可執行習知觸控式螢幕裝置(諸如,平板電腦裝置)之其他已知功能。為此,顯示面板可包括安置於觸控式螢幕層與前顯示表面之間的透明度調整層。在一些實施例中,透明度調整層可為電鉻層(EC)、LCD層或EC及LCD層之組合。
在各種實施例中,顯示器可具有不同大小,例如11.6"或13.3"螢幕,且可具有16:9縱橫比,及至少300尼特的亮度。又,顯示器可具有全高清晰度(HD)解析度(至少1920 x 1080p),與嵌入式顯示埠(eDP)相容,且為具有面板自行再新之低功率面板。
關於觸控式螢幕能力,系統可提供顯示器多點觸控式面板,其為多點觸控電容性的,且至少能夠使用5個手指。且在一些實施例中,能夠對顯示器使用10個手指。在一個實施例中,觸控式螢幕容納於用於實現低摩擦之抗損壞及擦傷之玻璃及塗層(例如,Gorilla GlassTM或Gorilla Glass 2TM)內,以減少「手指燒灼」及避免「手指跳躍」。為了提供增強型觸控體驗及回應性,在一些實施中,觸控式面板具有多點觸控功能性,諸如在捏合縮放(pinch zoom)期間小於每靜態視圖2個圖框(30Hz),及在200ms(手指至指標之滯後)內小於每圖框1cm(30Hz)之單點觸控功能性。在一些實施中,顯示器支援具有亦與面板表面齊平之最小螢幕帶槽框之邊對邊玻璃,及在使用多點觸控時有限的IO干擾。
出於感知計算及其他目的,各種感測器可存在於系統內,其可以不同方式耦接至處理器910。某些慣性及環境感測器可經由感測器集線器940(例如,經由I2C互連)耦接至處理器910。在圖9中所示之實施例中,此等感測器可包括加速計941、環境光感測器(ALS)942、羅盤943及迴轉儀944。其他環境感測器可包括一或多個熱感測器946,其在一些實施例中經由系統管理匯流排(SMBus)匯流排耦接至處理器910。
透過使用存在於平台中之各種慣性及環境感測器,可實現許多不同使用狀況。此等使用狀況允許實現包括感知計算之進階計算操作,且亦允許關於電力管理/電池壽命、安全性及系統回應性之增強。
舉例而言,關於電力管理/電池壽命問題,至少部分基於來自環境光感測器之資訊,判定在平台之位置中的環境光條件,且相應地控制顯示器之強度。因此,在某些光條件下減少在操作顯示器時所消耗的電力。
關於安全性操作,基於自感測器獲得的諸如位置資訊之上下文資訊,可判定是否允許使用者存取某些安全文件。舉例而言,可准許使用者在工作地點或在家中存取此等文件。然而,在平台存在於公眾位置處時,防止使用者存取此等文件。在一個實施例中,此判定係基於例如經由對陸標之GPS感測器或攝影機辨識而判定的位置資訊。其他安全性操作可包括提供在彼此接近範圍內的裝置之配對,例如,如本文中所描述之攜帶型平台及使用者的 桌上型電腦、行動電話等等。在一些實施中,在此等裝置如此配對時經由近場通訊實現某些共享。然而,當裝置超出某一範圍時,可停用此共享。此外,當配對如本文中所描述之平台及智慧型電話時,警報可經組配以當在公眾位置中時裝置移動超過彼此相距的一預定距離時經觸發。相對比地,當此等配對裝置在安全位置(例如,工作地點或家中)中時,裝置可超過此預定界限而不觸發此警報。
亦可使用感測器資訊增強回應性。舉例而言,即使在平台處於低功率狀態中時,仍可使得感測器能夠以相對低頻率執行。因此,判定平台位置之任何改變,例如,如由慣性感測器、GPS感測器等等判定。若尚未登記此等改變,則發生至先前無線集線器(諸如,Wi-FiTM存取點或類似無線賦能器)的較快連接,因為在此狀況下不需要掃描以發現可用無線網路資源。因此,達成當自低功率狀態喚醒時的較大級別之回應性。
應理解,可使用經由如本文中所描述之平台內的積體感測器獲得之感測器資訊來實現許多其他使用狀況,且上文實例僅出於例示之目的。透過使用如本文中所描述之系統,感知計算系統可允許添加替代輸入模態(包括姿勢辨識),且使得系統能夠感測使用者操作及意圖。
在一些實施例中,可存在一或多個紅外線或其他熱感測元件或用於感測使用者之存在或移動的任何其他元件。此等感測元件可包括一起工作、按順序工作或按該兩種方式工作之多個不同元件。舉例而言,感測元件包括 提供初始感測(諸如,光或聲音投射)繼之以由(例如)超音波飛行時間攝影機或圖案化光攝影機進行的用於姿勢偵測之感測的元件。
又,在一些實施例中,系統包括用以產生照明線之光產生器。在一些實施例中,此線提供關於虛擬邊界(亦即在空間中之假想或虛擬位置)之視覺提示,其中使用者穿過或突破虛擬邊界或平面之動作被解譯為使用計算系統之意圖。在一些實施例中,照明線可在計算系統轉變成關於使用者之不同狀態時改變顏色。照明線可用以為使用者提供空間中之虛擬邊界之視覺提示,且可由系統用以判定關於使用者之電腦狀態之轉變,包括判定使用者希望何時使用電腦。
在一些實施例中,電腦感測使用者位置且操作以將使用者的手穿過虛擬邊界之移動解譯為指示使用者使用電腦的意圖之姿勢。在一些實施例中,在使用者穿過虛擬線或平面時,由光產生器產生之光可改變,藉此將使用者已進入用於提供姿勢以將輸入提供至電腦的區域之視覺回饋提供至使用者。
顯示螢幕可提供關於使用者之計算系統狀態之轉變之視覺指示。在一些實施例中,在第一狀態中提供第一螢幕,其中使用者之存在由系統感測到,諸如經由使用感測元件中之一或多者。
在一些實施中,系統作用以感測使用者身分,諸如藉由面部辨識。此處,可在第二狀態中提供至第二畫面 之轉變,其中計算系統已辨識使用者身分,其中此第二畫面將使用者已轉變成新狀態的視覺回饋提供至使用者。可在第三狀態中發生至第三畫面之轉變,其中使用者已確認對使用者之辨識。
在一些實施例中,計算系統可使用轉變機制來判定針對使用者之虛擬邊界的位置,其中虛擬邊界之位置可隨著使用者及上下文而變化。計算系統可產生光,諸如照明線,以指示用於使用系統之虛擬邊界。在一些實施例中,計算系統可處於等待狀態,且可產生呈第一顏色之光。計算系統可偵測使用者是否已到達越過虛擬邊界之處,諸如藉由使用感測元件感測使用者之存在及移動。
在一些實施例中,若使用者已被偵測為已橫越虛擬邊界(諸如,使用者之手比虛擬邊界線更靠近於計算系統),則計算系統可轉變至用於自使用者接收姿勢輸入之狀態,其中用以指示轉變之機制可包括指示虛擬邊界的光改變至第二顏色。
在一些實施例中,計算系統接著可判定是否偵測到姿勢移動。若偵測到姿勢移動,則計算系統可繼續進行姿勢辨識程序,該姿勢辨識程序可包括使用來自姿勢資料庫之資料,該姿勢資料庫可駐留於計算裝置中之記憶體中,或可以其他方式由計算裝置存取。
若辨識出使用者之姿勢,則計算系統可回應於輸入執行一功能,且若使用者在虛擬邊界內,則返回至接收額外姿勢。在一些實施例中,若未辨識出姿勢,則計算系 統可轉變成錯誤狀態,其中用以指示錯誤狀態之機制可包括指示虛擬邊界之光改變至第三顏色,其中若使用者在用於使用計算系統之虛擬邊界內,則系統返回至接收額外姿勢。
如上文所提及,在其他實施例中,系統可經組配為可轉換平板電腦系統,其可用於至少兩個不同模式中:平板電腦模式及筆記型電腦模式。可轉換系統可具有兩個面板,亦即顯示面板及基底面板,以使得在平板電腦模式中,兩個面板安置成彼此堆疊。在平板電腦模式中,顯示面板面向外,且可提供如在習知平板電腦中找到的觸控式螢幕功能性。在筆記型電腦模式中,兩個面板可按開放蛤売組配來配置。
在各種實施例中,加速計可為具有至少50Hz之資料速率的3軸加速計。亦可包括迴轉儀,其可為3軸迴轉儀。另外,可存在電子羅盤/磁力計。又,可提供一或多個接近感測器(例如,打開蓋來感測人接近(或不接近)系統的情況,且調整功率/效能以延長電池壽命)。對於一些OS,包括加速計、迴轉儀及羅盤之感測器融合能力可提供增強的特徵。另外,經由具有即時時脈(RTC)之感測器集線器,可實現由感測器喚醒機制以在系統之剩餘部分處於低功率狀態時接收感測器輸入。
在一些實施例中,內部蓋/顯示器打開開關或感測器用以指示蓋何時閉合/打開,且可用以將系統置於連接待用,或自連接待用狀態自動喚醒。其他系統感測器可包 括ACPI感測器,其用於內部處理器、記憶體及皮膚溫度監視以使得能夠基於所感測之參數改變處理器及系統操作狀態。
在實施例中,OS可為實施連接待用(在本文中亦被稱作Win8 CS)之Microsoft® Windows® 8 OS。Windows 8連接待用或具有類似狀態之另一OS可經由如本文中所描述之平台提供極低的超閒置功率以使得應用程式能夠在極低的功率消耗下保持連接至(例如)基於雲端之位置。平台可支援3個功率狀態,亦即螢幕開啟(正常);連接待用(作為預設「關閉」狀態);及關機(零瓦特的功率消耗)。因此,在連接待用狀態中,即使螢幕為關閉,平台在邏輯上仍為開啟(處於最小功率位準)。在此平台中,可使得電力管理對應用程式透明,且維持恆定的連接性,這部分歸因於使得最低功率組件能夠執行操作之卸載技術。
亦在圖9中所見,各種周邊裝置可經由低接腳計數(LPC)互連而耦接至處理器910。在所示之實施例中,可經由嵌入式控制器935耦接各種組件。此等組件可包括鍵盤936(例如,經由PS2介面耦接)、風扇937及熱感測器939。在一些實施例中,觸控板930亦可經由PS2介面耦接至EC 935。另外,諸如根據受信任計算群組(Trusted Computing Group,TCG)受信任平台模組(TPM)規範版本1.2(日期為2003年10月2日)之TPM 938之安全性處理器亦可經由此LPC互連耦接至處理器910。然而,應理解,本發明之範疇在此方面不受限制,且安全資訊之安全處理及儲存可在另 一受保護位置中,諸如安全性共處理器中之靜態隨機存取記憶體(SRAM),或作為僅在由安全包體(secure enclave,SE)處理器模式保護時才被解密的經加密資料二進位大型物件。
在特定實施中,周邊埠可包括高清晰度媒體介面(HDMI)連接器(其可具有不同的外觀尺寸,諸如完全大小、小型或微型);一或多個USB埠,諸如根據通用串列匯流排修訂版3.0規範(2008年11月)之完全大小外部埠,其中在系統處於連接待用狀態且被塞至AC壁式電源中時至少一USB埠經供電以用於對USB裝置(諸如,智慧型電話)充電。另外,可提供一或多個ThunderboltTM埠。其他埠可包括外部存取之卡讀取器,諸如完全大小SD-XC卡讀取器及/或用於WWAN之SIM卡讀取器(例如,8接腳卡讀取器)。對於音訊,可存在具有立體聲及麥克風能力(例如,組合功能性)之3.5mm插口,其支援插口偵測(例如,僅支援使用蓋中的麥克風之頭戴式耳機,或具有纜線中的麥克風之頭戴式耳機)。在一些實施例中,此插口可在立體聲頭戴式耳機與立體聲麥克風輸入之間重新分派任務。又,可提供用於耦接至AC變壓器之電源插口。
系統900可以多種方式(包括無線)與外部裝置通訊。在圖9中所示之實施例中,存在各種無線模組,其中的每一者可對應於經組配以用於特定無線通訊協定之無線電。用於短程(諸如,近場)無線通訊之一種方式可為經由近場通訊(NFC)單元945,該NFC單元在一個實施例中可經由 SMBus與處理器910通訊。應注意,經由此NFC單元945,彼此很接近之裝置可進行通訊。舉例而言,使用者可經由將兩個裝置調適成相互靠近且使得能夠傳送資訊(諸如,識別資訊、支付資訊、諸如影像資料之資料等等)而使得系統900能夠與另一(例如)攜帶型裝置(諸如,使用者之智慧型電話)通訊。亦可使用NFC系統來執行無線電力傳送。
透過使用本文中所描述之NFC單元,使用者可使裝置邊對邊地相碰及使裝置邊對邊地放置以藉由利用此等裝置中之一或多者的線圈之間的耦合而實現近場耦合功能(諸如,近場通訊及無線電力傳送(WPT))。更具體言之,實施例提供具有有策略地成形及置放的鐵氧體材料之裝置,以提供線圈之更佳耦合。每一線圈具有與其相關聯之電感,該電感可結合系統之電阻、電容及其他特徵來選擇以允許實現系統之共同諧振頻率。
如圖9中進一步所見,額外無線單元可包括其他短程無線引擎,包括WLAN單元950及藍芽單元952。透過使用WLAN單元950,可實現根據給定電機電子工程師學會(IEEE)802.11標準之Wi-FiTM通訊,而經由藍芽單元952,可發生經由藍芽協定之短程通訊。此等單元可經由例如USB鏈路或通用非同步接收器傳輸器(UART)鏈路與處理器910通訊。或者,此等單元可根據快速周邊組件互連TM(PCIeTM)協定,例如根據快速PCITM規範基本規範版本3.0(2007年1月17日公佈)或諸如串列資料輸入/輸出(SDIO)標準之另一此協定經由互連而耦接至處理器910。當然,可經組配於一 或多個附加卡上之此等周邊裝置之間的實際實體連接可藉由配接於主機板之NGFF連接器進行。
另外,例如根據蜂巢式或其他無線廣域協定之無線廣域通訊可經由WWAN單元956而發生,該WWAN單元又可耦接至用戶身分識別模組(SIM)957。另外,為了使得能夠接收及使用位置資訊,亦可存在GPS模組955。應注意,在圖9中所示之實施例中,WWAN單元956及經整合捕獲裝置(諸如,攝影機模組954)可經由給定USB協定(諸如,USB 2.0或3.0鏈路)或UART或I2C協定來通訊。再次,此等單元之實際實體連接可經由將NGFF附加卡配接至經組配於主機板上的NGFF連接器。
在特定實施例中,可模組化地提供無線功能性,例如藉由支援Windows 8 CS之WiFiTM 802.11ac解決方案(例如,與IEEE 802.11abgn回溯相容之附加卡)。此卡可經組配於內部槽中(例如,經由NGFF配接器)。額外模組可提供藍芽能力(例如,具有回溯相容性之藍芽4.0)以及Intel®無線顯示功能性。另外,可經由單獨裝置或多功能裝置提供NFC支援,且作為實例,NFC支援可定位於底盤之右前部分中以便於接達。另一額外模組可為WWAN裝置,其可提供對3G/4G/LTE及GPS之支援。此模組可實施於內部(例如,NGFF)槽中。可提供對於WiFiTM、藍芽、WWAN、NFC及GPS的整合式天線支援,從而使得能夠自WiFiTM順暢地轉變至根據無線十億位元規範(2010年7月)的WWAN無線電、無線十億位元(wireless gigabit,WiGig),且反之亦然。
如上文所描述,經整合攝影機可併入於蓋中。作為一個實例,此攝影機可為高解析度攝影機,例如具有至少2.0百萬像素(MP)的解析度且擴展至6.0MP及更高。
為了提供音訊輸入及輸出,音訊處理器可經由數位信號處理器(DSP)960實施,該DSP可經由高清晰度音訊(HDA)鏈路耦接至處理器910。類似地,DSP 960可與經整合編碼器/解碼器(CODEC)及放大器962通訊,該經整合編碼器/解碼器及放大器又可耦接至可實施於底盤內之輸出揚聲器963。類似地,放大器及CODEC 962可經耦接以自麥克風965接收音訊輸入,該麥克風在一實施例中可經由雙陣列麥克風(諸如,數位麥克風陣列)來實施,以提供高品質音訊輸入以允許實現對系統內之各種操作的語音啟動之控制。亦應注意,可將音訊輸出自放大器/CODEC 962提供至頭戴式耳機插口964。儘管在圖9之實施例中經展示為具有此等特定組件,但應理解,本發明之範疇在此方面不受限制。
在特定實施例中,數位音訊編碼解碼器及放大器能夠驅動立體聲頭戴式耳機插口、立體聲麥克風插口、內部麥克風陣列及立體聲揚聲器。在不同實施中,編碼解碼器可整合至音訊DSP中,或經由HD音訊路徑耦接至周邊控制器集線器(PCH)。在一些實施中,除了經整合立體聲揚聲器之外,亦可提供一或多個低音揚聲器,且揚聲器解決方案可支援DTS音訊。
在一些實施例中,處理器910可由外部電壓調節 器(VR)及整合於處理器晶粒內部之多個內部電壓調節器供電,該等內部電壓調節器被稱作完全整合之電壓調節器(FIVR)。在處理器中使用多個FIVR使得能夠將組件分組成單獨電源平面,使得電力由FIVR調節且僅供應至群組中之彼等組件。在功率管理期間,一個FIVR之給定電源平面可在處理器被置於某一低功率狀態中時被切斷電源或關閉,而另一FIVR之另一電源平面保持在作用中或供電充足。
在一個實施例中,可在一些深度睡眠狀態期間使用持續電源平面以使用於若干I/O信號之I/O接腳通電,該等I/O接腳諸如處理器與PCH之間的介面、與外部VR之介面及與EC 935之介面。此持續電源平面亦對晶粒上電壓調節器供電,該晶粒上電壓調節器支援板面SRAM或其他快取記憶體,在睡眠狀態期間處理器上下文儲存於該板面SRAM或其他快取記憶體。持續電源平面亦用以使處理器之喚醒邏輯通電,該喚醒邏輯監視且處理各種喚醒源信號。
在功率管理期間,雖然其他電源平面在處理器進入某些深度睡眠狀態時被切斷電源或關閉,但持續電源平面保持通電以支援上文所參考之組件。然而,此情形可導致在不需要彼等組件時不必要的功率消耗或耗散。為此,實施例可提供連接待用睡眠狀態以使用專用功率平面來維持處理器上下文。在一個實施例中,連接待用睡眠狀態使用PCH之資源促進處理器喚醒,該PCH自身可與處理器一起存在於一封裝中。在一個實施例中,連接待用睡眠狀態促進支持PCH中之處理器架構功能直至處理器喚醒為止, 此情形使得能夠關掉先前在深度睡眠狀態期間被通電之所有不必要的處理器組件,包括關掉所有的時脈。在一個實施例中,PCH含有時間戳計數器(TSC)及用於在連接待用狀態期間控制系統之連接待用邏輯。持續電源平面之經整合電壓調節器亦可駐留於PCH上。
在實施例中,在連接待用狀態期間,經整合電壓調節器可充當保持通電以支援專用快取記憶體之專用電源平面,當處理器進入深度睡眠狀態及連接待用狀態時在該專用快取記憶體中儲存處理器上下文,諸如重大狀態變數。此重大狀態可包括與架構、微架構、除錯狀態相關聯之狀態變數,及/或與處理器相關聯之類似狀態變數。
可在連接待用狀態期間將來自EC 935之喚醒源信號發送至PCH而不是處理器,以使得PCH而不是處理器可管理喚醒處理。另外,在PCH中維持TSC以促進支持處理器架構功能。儘管在圖9之實施例中經展示為具有此等特定組件,但應理解,本發明之範疇在此方面不受限制。
處理器中之功率控制可導致增強之省電。舉例而言,電力可在核心之間動態地分配,個別核心可改變頻率/電壓,且可提供多個深度低功率狀態以允許實現極低的功率消耗。另外,對核心或獨立核心部分之動態控制可藉由在組件未被使用時將其電源關閉而提供減少的功率消耗。
一些實施可提供特定功率管理IC(PMIC)以控制平台功率。透過使用此解決方案,系統可在處於給定待用狀態中時(諸如,在處於Win8連接待用狀態中時)在長持續 時間(例如,16個小時)內經歷極低(例如,小於5%)的電池降級。在Win8閒置狀態中,可實現超過例如9個小時之電池壽命(例如,在150尼特下)。關於視訊播放,可實現長的電池壽命,例如全HD視訊播放可最少進行6個小時。在一個實施中,對於使用SSD之Win8 CS,平台可具有例如35瓦時(Whr)之能量容量,且對於使用具有RST快取記憶體組配之HDD的Win8 CS,平台可具有(例如)40至44Whr之能量容量。
特定實施可提供對15W標稱CPU熱設計功率(TDP)之支援,其中可組配CPU TDP多達約25W TDP設計點。由於上文所描述之熱特徵,平台可包括最少的通風口。另外,平台為適合枕墊(pillow-friendly)的(因為沒有熱空氣吹向使用者)。可取決於底盤材料而實現不同最大溫度點。在塑膠底盤(至少具有塑膠之蓋或基底部分)之一個實施中,最大操作溫度可為攝氏52度(C)。且對於金屬底盤之實施,最大操作溫度可為46℃。
在不同實施中,諸如TPM之安全性模組可整合至處理器中,或可為離散裝置,諸如TPM 2.0裝置。藉由經整合安全性模組(亦被稱作平台信任技術(PTT)),可啟用BIOS/韌體以暴露用於某些安全性特徵(包括安全指令、安全開機、Intel®防盜技術(Anti-Theft Technology)、Intel®身分保護技術(Identity Protection Technology)、Intel®受信任執行技術(Trusted Execution Technology,TXT)及Intel®可管理性引擎技術(Manageability Engine Technology))以及安全使用者介面(諸如,安全鍵盤及顯示器)之某些硬體特徵。
本文中所描述之實施例提供相對於當前系統之若干優點及差別。分散式一致性及記憶體組織架構經由使用並行管線促進對快取代理及非快取IO代理之同時存取,包括支援由快取代理及非快取代理兩者對快取線的共享存取,同時維持記憶體一致性且強制執行正確的排序。使用並行管線促進了比使用單一管線之習知架構下可用的記憶體輸送量更大之記憶體輸送量。藉由為快取代理及非快取代理兩者提供對記憶體資源之共享存取,架構提供對現有方法之改良,該等現有方法使用用於快取及非快取代理之單獨管線,該等單獨管線獨立地操作且不提供共享存取。藉由使位址匹配硬體與排序硬體解耦,架構允許實現對I/O請求之高效能、分散式衝突檢查,同時保持正確的排序行為。藉由使用上文描述之方法將多個虛擬通道映射至較少的衝突類別,架構減少了對於每一虛擬通道使用專用資源的典型系統通常會招致的相關聯之面積開銷,同時達成所需QoS。
雖然本文中所描述及例示之實施例集中論述位址衝突,但本發明之實施例可包括其他類型之衝突檢查,諸如歸因於完全共享資源對於任何代理皆不可用的資源衝突,或諸如資源之過度訂用的在相同代理內之資源衝突。
以下實例係關於其他實施例。在實施例中,在具有系統記憶體之電腦系統內實施一種方法。接收源自電腦系統中之複數個快取代理及複數個I/O代理之記憶體存取請求,每一記憶體存取請求識別請求存取之至少一個快取 線的位址,其中系統記憶體之至少一部分可由至少一個快取代理與I/O代理兩者存取。經由使用並行管線之分散式記憶體組織來同時地服務多個記憶體存取請求,同時維持與快取代理相關聯之快取線的記憶體一致性且強制執行源自I/O代理之記憶體存取請求的記憶體存取排序。
在方法的實施例中,經由複數個虛擬通道發送來自I/O代理之記憶體存取請求,且其中強制執行源自I/O代理之記憶體存取請求的記憶體存取排序包含強制執行記憶體存取排序,以使得經由相同虛擬通道發送之來自I/O代理之請求看起來是按其在分散式記憶體組織處被接收之次序來受到服務的。
在方法之實施例中,對源自快取代理之每一記憶體存取請求執行位址衝突檢查,以判定請求是否與服務為未決之先前記憶體存取請求衝突。若偵測到一位址衝突檢查,則將該請求排入一快取代理衝突佇列中;否則,准許該請求繼續。
在實施例中,在分散式記憶體組織中實施第一及第二管線。對於該等第一及第二管線中之每一者,在每一管線處實施衝突檢查邏輯,及將偵測到位址衝突之請求排入與彼管線相關聯之一快取代理衝突佇列中。
在實施例中,對於該等第一及第二管線中之每一者,實施一計分板以追蹤已被接納以在該管線中繼續之未決記憶體存取請求。另外,對於在每一管線處接收之每一記憶體存取請求,藉由比較對應於與該管線相關聯之該快 取代理衝突佇列及該計分板中之記憶體存取請求之快取線的位址與該記憶體存取請求中所含有之一快取線的一位址,判定是否存在一位址衝突。
在方法之實施例中,使用複數個虛擬通道以發送來自I/O代理之記憶體存取請求,每一記憶體存取請求係經由與該請求相關聯之一虛擬通道發送的。對源自一I/O代理之每一記憶體存取請求執行一位址衝突檢查,以判定該請求是否與一未決記憶體存取請求衝突,及若偵測到一位址衝突,則將該請求識別為一有衝突請求,且執行一衝突排序操作,以相對於與相同虛擬通道相關聯之其他未決請求排序該有衝突請求,以便保持經由該虛擬通道接收的該等請求之相同次序,及將該有衝突請求排入與該虛擬通道相關聯之一I/O衝突佇列中。
在實施例中,將每一虛擬通道映射至一類別,其中類別之數目小於虛擬通道之數目,且基於與每一有衝突請求相關聯之虛擬通道所映射至之服務類別,將有衝突請求排入複數個服務類別I/O衝突佇列中。
在實施例中,在該分散式記憶體組織中實施第一及第二管線。對於該等第一及第二管線中之每一者並行地,對源自一I/O代理之一記憶體存取請求執行一位址衝突檢查,以判定該請求是否與一未決記憶體存取請求衝突,及若在一給定循環內對於正由該等第一及第二管線處理之該等記憶體存取請求中之每一者,不存在位址衝突,則接納該兩個請求以用於由其相關聯的管線進一步處理。
在實施例中,由第一及第二管線中的每一者並行地執行操作。操作包括對源自一I/O代理之一記憶體存取請求執行一位址衝突檢查,以判定該請求是否與一未決記憶體存取請求衝突,及若在一給定循環內對於正由該等第一及第二管線處理之該等記憶體存取請求中之一者,存在一位址衝突,則判定該兩個請求之一相對年齡。若該兩個請求中之一較舊請求不具有一位址衝突,且一較新請求具有一位址衝突,則接納該較舊請求以用於由其相關聯之管線進一步處理。
在方法之實施例中,操作進一步包括將較新請求排入I/O衝突佇列中,及通知與較舊請求相關聯之管線:對較新請求相關聯於之相同虛擬通道的未來請求將被排入I/O衝突佇列中直至接納較新請求以用於由其相關聯的管線進一步處理為止。
在實施例中,使用複數個虛擬通道以發送來自I/O代理之記憶體存取請求,每一記憶體存取請求係經由與該請求相關聯之一虛擬通道發送的。對於第一及第二管線中之每一者,並行地執行操作,包括對源自一I/O代理之一記憶體存取請求執行一位址衝突檢查,以判定該請求是否與一未決記憶體存取請求衝突,及若在一給定循環內對於正由該等第一及第二管線處理之該等記憶體存取請求中之一者,存在一位址衝突,則判定該兩個請求之一相對年齡。若該兩個請求中之一較舊請求具有一位址衝突,且經由相同虛擬通道發送該兩個請求,則將兩個請求皆排入相同I/O 衝突佇列,其中該較舊請求先於該較新請求。
在方法之實施例中,由第一及第二管線並行地執行操作。操作包括對源自一I/O代理之一記憶體存取請求執行一位址衝突檢查,以判定該請求是否與一未決記憶體存取請求衝突,經由來自經實施用於發送來自I/O代理之請求的多個虛擬通道當中的一虛擬通道發送記憶體存取請求,及若在一給定循環內對於正由該等第一及第二管線處理之該等記憶體存取請求中之一者,存在一位址衝突,則判定該兩個請求之一相對年齡。若兩個請求中之較舊請求具有位址衝突且經由不同虛擬通道發送請求,則接納較新請求以用於由其相關聯的管線進一步處理。在實施例中,方法進一步包括將較舊請求排入I/O衝突佇列中;及通知與較新請求相關聯之管線:對較舊請求相關聯於之相同虛擬通道的未來請求將被排入I/O衝突佇列中直至接納較舊請求以用於由其相關聯的管線進一步處理為止。
在實施例中,方法包括對一記憶體存取請求中所含有之資料使用一雜湊演算法,以將記憶體存取請求安排路由至該等第一或第二管線中之一者以用於進一步處理。在實施例中,對於複數個循環中之每一者執行仲裁,其中接收複數個記憶體存取請求作為至一仲裁器之輸入,該等輸入包括與源自快取代理之記憶體存取請求相關聯的複數個輸入,及與源自I/O代理之記憶體存取請求相關聯的至少一個輸入。對於每一循環,有一仲裁循環優勝者,且將該仲裁循環優勝者轉遞至經組配以實施該雜湊演算法之邏 輯。在一個實施例中,至該仲裁器之該等輸入進一步包括對應於先前由該仲裁器仲裁且偵測到一位址衝突之記憶體存取請求的至少一個輸入。在另一實施例中,抗耗盡機制經實施及組配以防止在相同記憶體存取請求之多個衝突檢查循環內重複地阻塞記憶體存取請求。
根據其他實施例,設備經組配具有用於執行前述方法操作之構件。在實施例中,設備包括一記憶體存取請求仲裁器,其經組配以授予來自複數個輸入記憶體存取請求當中之一記憶體存取請求,該複數個輸入記憶體存取請求包括:源自複數個快取代理之記憶體存取請求、源自複數個I/O代理之記憶體存取請求及先前由該仲裁器仲裁之有衝突記憶體存取請求,其中每一記憶體存取請求識別請求存取之一快取線的一位址。該設備進一步包括:一分散式記憶體組織,其包括經組配以並行地操作之複數個管線;至少一個快取代理衝突佇列;至少一個I/O衝突佇列;及位址衝突處理邏輯,其經組配以判定一當前評估之記憶體存取請求是否與另一未決記憶體存取請求衝突,且經組配以將來自快取代理之有衝突記憶體存取請求排入該至少一個快取代理衝突佇列中,及將來自I/O代理之有衝突記憶體存取請求排入該至少一個I/O代理衝突佇列中。
在實施例中,該分散式記憶體組織包含包括複數個一致性管線之一分散式一致性及記憶體組織,每一一致性管線操作性地耦接至一相關聯之記憶體組織管線,其中每一一致性管線經組配以促進源自快取代理之記憶體存取 請求的記憶體一致性。
在實施例中,經由複數個虛擬通道發送源自I/O代理之記憶體存取請求,且該設備進一步包括衝突排序邏輯,該衝突排序邏輯經組配以確保經由相同虛擬通道發送之未決記憶體存取請求看起來是按其最初由該記憶體存取請求仲裁器授予之次序來受到處理的。
在設備之實施例中,該位址衝突處理邏輯包括用於每一記憶體組織管線之位址衝突檢查邏輯,且該至少一個快取代理衝突佇列包含與每一管線相關聯之一快取代理佇列。在實施例中,每一記憶體組織管線包括緩衝經接納記憶體請求之一接納集區,及儲存該等經接納記憶體請求之位址的一計分板。在實施例中,每一記憶體組織管線中之該位址衝突檢查邏輯經組配以藉由比較對應於其相關聯的快取代理衝突佇列及其計分板中之記憶體存取請求之快取線的位址與該當前評估之記憶體存取請求中所參考之一快取線的一位址,判定是否存在一位址衝突。
在實施例中,該設備進一步包括一衝突佇列仲裁器,該衝突佇列仲裁器經組配以仲裁該至少一個快取代理衝突佇列及該至少一個I/O衝突佇列中之有衝突記憶體存取請求,其中該衝突佇列仲裁器之一輸出耦接至該記憶體存取請求仲裁器的一輸入。
在實施例中,該至少一個I/O衝突佇列包含複數個按類別I/O衝突佇列,且每一虛擬通道經指派給一類別。在實施例中,該設備進一步包括耦接至該記憶體存取請求 仲裁器之各別輸入的複數個佇列,該複數個佇列包括:複數個快取代理請求佇列,其各自經組配以將來自一各別快取代理之請求排入佇列;及一I/O請求佇列,其經組配以將來自該複數個I/O代理之請求排入佇列。在實施例中,該設備進一步包括抗耗盡機制,該抗耗盡機制經組配以防止在相同記憶體存取請求之多個衝突檢查循環內重複地阻塞記憶體存取請求。
在實施例中,一種設備包括:複數個處理器核心,其各自具有至少一個相關聯之快取代理;一系統代理,其操作性地耦接至該等處理器核心中之每一者,該系統代理包括包含複數個一致性管線及複數個記憶體組織管線之一分散式及一致性記憶體組織,每一記憶體組織管線經組配以與一各別記憶體控制器介接;一I/O根複合體,其操作性地耦接至該系統代理;一I/O互連階層,其包括通訊耦接至該I/O根複合體之至少一個交換組織;及複數個I/O代理,其各自耦接至該I/O互連階層中之一交換組織。在將該設備安裝於包括經由耦接至複數個記憶體組織管線之各別記憶體控制器存取之系統記憶體的電腦系統中及該電腦系統之操作之後,該設備經組配以同時服務源自該複數個快取代理及該複數個I/O代理之用以存取快取線的記憶體存取請求,同時維持與快取代理相關聯之快取線之記憶體一致性,其中該等快取線之一部分可由至少一個快取代理及至少一個I/O代理兩者存取。
在實施例中,該設備經組配以強制執行源自I/O 代理之記憶體存取請求的記憶體存取排序。在實施例中,每一記憶體組織管線包括緩衝經接納記憶體請求之一接納集區、儲存該等經接納記憶體請求之位址的一計分板及一相關聯之快取代理衝突佇列,且該設備進一步包括用於每一記憶體組織管線之位址衝突檢查邏輯,其經組配以藉由比較對應於該管線的相關聯的快取代理衝突佇列及計分板中之記憶體存取請求之快取線的位址與該當前評估之記憶體存取請求中所參考之一快取線的一位址,判定是否存在一位址衝突。
在該設備之實施例中,系統代理進一步包括:至少一個快取代理衝突佇列;至少一個I/O衝突佇列;及位址衝突處理邏輯,其經組配以判定一當前評估之記憶體存取請求是否與另一未決記憶體存取請求衝突,且經組配以將來自快取代理之有衝突記憶體存取請求排入該至少一個快取代理衝突佇列中,及將來自I/O代理之有衝突記憶體存取請求排入該至少一個I/O代理衝突佇列中。在實施例中,系統代理進一步包括:一衝突佇列仲裁器,其經組配以仲裁該至少一個快取代理衝突佇列及該至少一個I/O衝突佇列中之有衝突記憶體存取請求。在實施例中,在將該設備安裝於電腦系統中及該電腦系統之操作之後,該設備經組配以促進經由具有相關聯之類別的複數個虛擬通道在I/O代理與系統代理之間的通訊,其中至少一個I/O衝突佇列包含複數個按類別I/O衝突佇列,且其中類別的數目小於虛擬通道之數目。在實施例中,系統代理進一步包括記憶體存取 請求仲裁器,其經組配以授予來自複數個輸入記憶體存取請求當中之一記憶體存取請求,該複數個輸入記憶體存取請求包括:源自複數個快取代理之記憶體存取請求;源自複數個輸入/輸出(I/O)代理之記憶體存取請求;及先前由該仲裁器仲裁之有衝突記憶體存取請求。
在設備之實施例中,該設備包含一積體電路,該積體電路包括複數個快取代理、複數個I/O代理及分散式記憶體組織。分散式記憶體組織包括至少兩個管線且經組配以自複數個快取代理及複數個I/O代理接收複數個請求,其中每一管線包括第一衝突儲存裝置及第二衝突儲存裝置。每一管線進一步:回應於判定在複數個請求中之特定請求與複數個請求中之一或多個未決請求之間不存在位址衝突,接納該特定請求;及回應於判定在特定請求與一或多個未決請求之間存在位址衝突,基於特定請求源自複數個快取代理中之一者還是複數個I/O代理中之一者,將特定請求導引至第一衝突儲存裝置或第二衝突儲存裝置。
根據其他實施例,揭示用於實施先前方法之系統。在實施例中,系統包括主板及耦接至該主板或安裝於該主板上之多核心處理器,該多核心處理器包括:一系統代理,其操作性地耦接至該等處理器核心中之每一者,該系統代理包括包含複數個一致性管線及複數個記憶體組織管線之一分散式及一致性記憶體組織,每一記憶體組織管線經組配以與一各別記憶體控制器介接;一I/O根複合體,其操作性地耦接至該系統代理;一I/O互連階層,其包括通 訊地耦接至該I/O根複合體之至少兩個交換組織;及複數個I/O介面,其各自耦接至一交換組織且包括一I/O代理。系統進一步包括:至少兩個記憶體裝置,其耦接至該主板或安裝於該主板上,該至少兩個記憶體裝置經組配為系統記憶體之第一及第二區塊;第一及第二記憶體控制器,其操作性地耦接至各別記憶體組織管線,該等記憶體組織管線各自耦接至至少一個記憶體裝置且經組配以存取系統記憶體之一各別區塊;複數個I/O裝置,其耦接至該主板或安裝於該主板上且耦接至一各別I/O介面;及快閃記憶體,其耦接至該多核心處理器,該快閃記憶體具有儲存於其中以組配該多核心處理器之BIOS指令。在系統之操作之後,該多核心處理器促進同時服務源自該複數個快取代理及該複數個I/O代理之用以存取快取線的記憶體存取請求,同時維持與快取代理相關聯之快取線之記憶體一致性,其中該等快取線之一部分可由至少一個快取代理及至少一個I/O代理兩者存取。
在實施例中,在系統之操作之後,該多核心處理器經組配以強制執行源自I/O代理之記憶體存取請求的記憶體存取排序。在系統中,每一記憶體組織管線包括緩衝經接納記憶體請求之一接納集區、儲存該等經接納記憶體請求之位址的一計分板及一相關聯之快取代理衝突佇列,且該系統進一步包括用於每一記憶體組織管線之位址衝突檢查邏輯,其經組配以藉由比較對應於該管線之相關聯的快取代理衝突佇列及計分板中之記憶體存取請求之快取線 的位址與該當前評估之記憶體存取請求中所參考之一快取線的一位址,判定是否存在一位址衝突。
在該系統之實施例中,系統代理進一步包括:至少一個快取代理衝突佇列;至少一個I/O衝突佇列;及位址衝突處理邏輯,其經組配以判定一當前評估之記憶體存取請求是否與另一未決記憶體存取請求衝突,且經組配以將來自快取代理之有衝突記憶體存取請求排入該至少一個快取代理衝突佇列中,及將來自I/O代理之有衝突記憶體存取請求排入該至少一個I/O代理衝突佇列中。
雖然已關於有限數目個實施例描述本發明,但熟習此項技術者將瞭解其中的眾多修改及變化。意欲所附申請專利範圍涵蓋屬於本發明之真正精神及範疇內的所有此等修改及變化。
設計可經歷自建立至模擬再至製造的各種階段。表示設計之資料可以多種方式表示設計。首先,如在模擬中係有用的,可使用硬體描述語言或另一功能描述語言來表示硬體。另外,可在設計程序之某些階段產生具有邏輯及/或電晶體閘之電路層級模型。此外,在某一階段,大多數設計達到表示硬體模型中之各種裝置的實體置放之資料層級。在使用習知半導體製造技術之狀況下,表示硬體模型之資料可為指定用以生產積體電路之遮罩的不同遮罩層上之各種特徵的存在或不存在之資料。在設計的任何表示中,資料可儲存於任何形式之非瞬間性機器可讀媒體中。
如本文中所使用之模組或組件係指硬體、軟體及/或韌體之任何組合。作為實例,模組或組件包括與用以儲存經調適以由微控制器執行之程式碼的非暫時性媒體相關聯之硬體(諸如微控制器)。因此,在一個實施例中,對模組或組件之參考係指硬體,該硬體特定地經組配以辨識及/或執行待保存於非暫時性媒體上之程式碼。此外,在另一實施例中,模組或組件之使用係指包括程式碼之非暫時性媒體,該非暫時性媒體特定地經調適以由微控制器執行,以執行預定操作。且如可推斷,在又一實施例中,模組一詞(在此實例中)可係指微控制器與非暫時性媒體之組合。通常被例示為分離的模組及/或組件邊界經常變化且潛在地重疊。舉例而言,第一及第二模組可共享硬體、軟體、韌體或其組合,同時潛在地保持一些獨立的硬體、軟體或韌體。在一個實施例中,邏輯一詞之使用包括硬體,諸如電晶體、暫存器或諸如可規劃邏輯裝置之其他硬體。
在一個實施例中,片語「以」或「經組配以」之使用係指配置、彙集、製造、供銷售、匯入及/或設計設備、硬體、邏輯或元件以執行指定或判定之任務。在此實例中,不在操作中之設備或其元件在其經設計、耦接及/或互連以執行指定任務的情況下仍「經組配以」執行該指定之任務。作為純例示性實例,邏輯閘可在操作期間提供0或1。但「經組配以」提供啟用信號至時脈之邏輯閘不包括可提供1或0之每一潛在邏輯閘。替代地,邏輯閘為以在操作期間1或0輸出將啟用時脈之方式耦接的邏輯閘。再次注意到,「經組 配以」一詞之使用不要求操作,而是替代地集中論述設備、硬體及/或元件之潛伏狀態,其中在潛伏狀態中,設備、硬體及/或元件經設計以在設備、硬體及/或元件在操作中時執行特定任務。
此外,在一個實施例中,片語「能夠」及或「可操作以」的使用係指一些設備、邏輯、硬體及/或元件經設計以使得能夠以特定方式使用該設備、邏輯、硬體及/或元件。如上文提及,在一個實施例中,對「以(to)」、「能夠」或「可操作以」的使用係指設備、邏輯、硬體及/或元件之潛伏狀態,其中設備、邏輯、硬體及/或元件不在操作中,但經設計以使得能夠以特定方式使用設備。
如本文中所使用,值包括數字、狀態、邏輯狀態或二進位邏輯狀態之任何已知表示。邏輯位準、邏輯值(logic value)或邏輯值(logical value)之使用經常亦被稱作1及0,其簡單地表示二進位邏輯狀態。舉例而言,1係指高邏輯位準,且0係指低邏輯位準。在一個實施例中,諸如電晶體或快閃胞元之儲存胞元可能夠保存單一邏輯值或多個邏輯值。然而,已在電腦系統中使用值的其他表示。舉例而言,十進位數10亦可表示為二進位值1010及十六進位字母A。因此,值包括能夠保存於電腦系統中之資訊的任何表示。
此外,狀態可由值或值的部分表示。作為實例,諸如邏輯一之第一值可表示預設或初始值,而諸如邏輯零之第二值可表示非預設狀態。另外,在一個實施例中,詞 語重設及設定分別係指預設及更新值或狀態。舉例而言,預設值潛在地包括高邏輯值,亦即重設,而更新值潛在地包括低邏輯值,亦即設定。應注意,可利用值的任何組合來表示任何數目個狀態。
上文所陳述之方法、硬體、軟體、韌體或程式碼之實施例可經由儲存於機器可存取、機器可讀、電腦可存取或電腦可讀媒體上之指令或程式碼來實施,該等指令或程式碼可由處理元件執行。非暫時性機器可存取/可讀媒體包括提供(亦即,儲存及/或傳輸)呈可由機器(諸如,電腦或電子系統)讀取之形式的資訊之任何機制。舉例而言,非暫時性機器可存取媒體包括:隨機存取記憶體(RAM),諸如靜態RAM(SRAM)或動態RAM(DRAM);ROM;磁性或光學儲存媒體;快閃記憶體裝置;電儲存裝置;光學儲存裝置;聲學儲存裝置;用於保存自暫時性(傳播)信號(例如,載波、紅外線信號、數位信號)接收之資訊的其他形式之儲存裝置等,應將暫時性(傳播)信號與可自其接收資訊之非暫時性媒體區分開。
用以規劃邏輯以執行本發明之實施例之指令可儲存於系統中之記憶體(諸如,DRAM、快取記憶體、快閃記憶體或其他儲存裝置)內。此外,指令可經由網路或藉由其他電腦可讀媒體散發。因此,機器可讀媒體可包括用於儲存或傳輸呈可由機器(例如,電腦)讀取之形式的資訊之任何機構,但不限於軟性磁片、光碟、緊密光碟唯讀記憶體(CD-ROM)及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體 (RAM)、可抹除可規劃唯讀記憶體(EPROM)、電可抹除可規劃唯讀記憶體(EEPROM)、磁或光學儲存卡、快閃記憶體或用於經由電、光學、聲學或其他形式之傳播信號(例如,載波、紅外線信號、數位信號等)在網際網路上傳輸資訊的有形機器可讀儲存裝置。因此,電腦可讀媒體包括適合於儲存或傳輸呈可由機器(例如,電腦)讀取之形式的電子指令或資訊的任何類型之有形機器可讀媒體。
遍及本說明書中對「一個實施例」或「實施例」之參考意謂:結合該實施例所描述之特定特徵、結構或特性係包括於本發明之至少一個實施例中。因此,在遍及本說明書的各處出現的片語「在一個實施例中」或「在實施例中」未必均指同一實施例。此外,可在一或多個實施例中以任何合適方式組合特定特徵、結構或特性。
在前述說明書中,已參考特定示範性實施例提供詳細描述。然而,將顯而易見,可在不脫離如所附申請專利範圍中所闡述之本發明之更寬泛精神及範疇的情況下對本發明進行各種修改及改變。因此本說明書及圖式應被認為具有例示性意義而非限制性意義。此外,實施例及其他例示性語言的前述使用不一定係指相同實施例或相同實例,而是可係指不同及相異實施例,以及潛在相同的實施例。
304‧‧‧仲裁器
306-0、306-1‧‧‧記憶體組織管線
400-0、400-N‧‧‧快取代理請求佇列
401‧‧‧I/O根複合體請求佇列
402‧‧‧按「類別」I/O衝突佇列
404-0、404-1‧‧‧衝突檢查邏輯區塊
406-0、406-1‧‧‧快取代理衝突佇列
407-0、407-1‧‧‧計分板
408‧‧‧衝突排序區塊(COB)
410、411、412、413、415、417‧‧‧正反器
414‧‧‧拒絕IO請求多工器(mux)
416‧‧‧拒絕IO請求解多工器
418‧‧‧衝突佇列仲裁器
420‧‧‧雜湊邏輯

Claims (29)

  1. 一種設備,其包含:一記憶體存取請求仲裁器,其經組配以授予來自複數個輸入記憶體存取請求當中之一記憶體存取請求,該複數個輸入記憶體存取請求包括:源自複數個快取代理之記憶體存取請求;源自複數個輸入/輸出(I/O)代理之記憶體存取請求;以及先前由該仲裁器所仲裁之有衝突記憶體存取請求,每一記憶體存取請求識別與用於請求存取之一快取線相關聯的一位址;一分散式記憶體組織,其包括經組配以並行地操作之複數個管線;至少一個快取代理衝突佇列;至少一個I/O衝突佇列;以及位址衝突處理邏輯,其經組配以判定一當前評估之記憶體存取請求是否與另一未決記憶體存取請求相衝突,且經組配以將來自快取代理之有衝突記憶體存取請求排入該至少一個快取代理衝突佇列中,及將來自I/O代理之有衝突記憶體存取請求排入該至少一個I/O代理衝突佇列中。
  2. 如請求項1之設備,另外其中該分散式記憶體組織包含 包括複數個一致性管線之一分散式一致性與記憶體組織,每一一致性管線操作性地耦接至一相關聯之記憶體組織管線,其中每一一致性管線係經組配以促進用於源自快取代理之記憶體存取請求的記憶體一致性。
  3. 如請求項1之設備,其中經由複數個虛擬通道發送源自I/O代理之記憶體存取請求,該設備進一步包含衝突排序邏輯,其經組配以確保經由相同虛擬通道發送之未決記憶體存取請求看起來是按其最初由該記憶體存取請求仲裁器所授予之次序來受到處理的。
  4. 如請求項1之設備,其中該位址衝突處理邏輯包括用於每一記憶體組織管線之位址衝突檢查邏輯,且該至少一個快取代理衝突佇列包含與每一管線相關聯之一快取代理佇列。
  5. 如請求項4之設備,其中每一記憶體組織管線包括緩衝經接納記憶體請求之一接納集區,及儲存該等經接納記憶體請求之位址的一計分板。
  6. 如請求項5之設備,其中每一記憶體組織管線中之該位址衝突檢查邏輯係經組配以藉由比較對應於其之相關聯的快取代理衝突佇列及計分板中之記憶體存取請求之快取線的位址與該當前評估之記憶體存取請求中所參考之一快取線的一位址,判定是否存在一位址衝突。
  7. 如請求項1之設備,其進一步包含一衝突佇列仲裁器,其經組配以仲裁該至少一個快取代理衝突佇列與該至少一個I/O衝突佇列中之有衝突記憶體存取請求,其中 該衝突佇列仲裁器之一輸出被耦接至該記憶體存取請求仲裁器的一輸入。
  8. 如請求項1之設備,其中該至少一個I/O衝突佇列包含複數個按類別I/O衝突佇列,且另外其中每一虛擬通道係經指派給一類別。
  9. 如請求項1之設備,其進一步包含耦接至該記憶體存取請求仲裁器之各別輸入的複數個佇列,該複數個佇列包括:複數個快取代理請求佇列,其各自經組配以將來自一各別快取代理之請求排入佇列;以及一I/O請求佇列,其經組配以將來自該複數個I/O代理之請求排入佇列。
  10. 如請求項1之設備,其中該設備進一步包含一抗耗盡機制,其經組配以防止記憶體存取請求在用於相同記憶體存取請求之多個衝突檢查循環內被重複地阻塞。
  11. 一種方法,其包含下列步驟:接收源自具有系統記憶體之一電腦系統中之複數個快取代理與複數個輸入/輸出(I/O)代理之記憶體存取請求,每一記憶體存取請求識別與請求存取之一快取線相關聯的一位址,其中該系統記憶體之至少一部分可由至少一個快取代理與一I/O代理兩者所存取;以及經由使用並行管線之一分散式記憶體組織同時地服務該等記憶體存取請求中的多個,同時維持用於與該等快取代理相關聯之快取線的記憶體一致性且強制執 行用於源自I/O代理之記憶體存取請求的記憶體存取排序。
  12. 如請求項11之方法,其中經由複數個虛擬通道發送來自該等I/O代理之該等記憶體存取請求,且其中強制執行用於源自I/O代理之記憶體存取請求的記憶體存取排序包含強制執行記憶體存取排序,以使得經由相同虛擬通道發送之來自I/O代理之請求看起來是按其在該分散式記憶體組織處被接收之次序來受到服務的。
  13. 如請求項11之方法,其進一步包含:對源自一快取代理之每一記憶體存取請求執行一位址衝突檢查,以判定該請求是否與服務為未決之一先前記憶體存取請求相衝突;以及若偵測到一位址衝突,則進行下列動作:將該請求排入一快取代理衝突佇列中;否則,接納該請求以繼續。
  14. 如請求項13之方法,其進一步包含:在該分散式記憶體組織中實施第一與第二管線;以及對於該等第一與第二管線中之每一者進行下列動作:實施用於每一管線之衝突檢查邏輯;以及將用於偵測到一位址衝突之請求排入與彼管線相關聯之一快取代理衝突佇列中。
  15. 如請求項14之方法,其進一步包含: 對於該等第一與第二管線中之每一者進行下列動作:經由一計分板追蹤已被接納以在該管線中繼續之未決記憶體存取請求;以及對於在該管線處所接收之每一記憶體存取請求,藉由比較對應於與該管線相關聯之該快取代理衝突佇列及該計分板中之記憶體存取請求之快取線的位址與該記憶體存取請求中所含有之一快取線的一位址,判定是否存在一位址衝突。
  16. 如請求項11之方法,其進一步包含:使用複數個虛擬通道以發送來自I/O代理之記憶體存取請求,每一記憶體存取請求係經由與該請求相關聯之一虛擬通道所發送;對源自一I/O代理之每一記憶體存取請求執行一位址衝突檢查,以判定該請求是否與一未決記憶體存取請求相衝突;以及若偵測到一位址衝突,則進行下列動作:將該請求識別為一有衝突請求,且執行一衝突排序操作,以相對於與相同虛擬通道相關聯之其他未決請求排序該有衝突請求,以便保持經由該虛擬通道接收該等請求之相同次序;以及將該有衝突請求排入與該虛擬通道相關聯之一I/O衝突佇列中。
  17. 如請求項11之方法,其進一步包含: 在該分散式記憶體組織中實施第一與第二管線;對於該等第一與第二管線中之每一者並行地進行下列動作:對源自一I/O代理之一記憶體存取請求執行一位址衝突檢查,以判定該請求是否與一未決記憶體存取請求相衝突;以及若用於一給定循環之對於由該等第一與第二管線所處理之該等記憶體存取請求中之每一者不存在位址衝突,則接納該等兩個請求以用於由其相關聯的管線之進一步處理。
  18. 如請求項11之方法,其進一步包含:在該分散式記憶體組織中實施第一與第二管線;對於該等第一與第二管線中之每一者並行地進行下列動作:對源自一I/O代理之一記憶體存取請求執行一位址衝突檢查,以判定該請求是否與一未決記憶體存取請求相衝突;以及若用於一給定循環之對於由該等第一與第二管線所處理之該等記憶體存取請求中之一者存在一位址衝突,則進行下列動作:判定該等兩個請求之一相對年齡;若該等兩個請求中之一較舊請求不具有一位址衝突,且一較新請求具有一位址衝突,則接納該較舊請求 以用於由其相關聯之管線之進一步處理。
  19. 如請求項11之方法,其進一步包含:在該分散式記憶體組織中實施第一與第二管線;使用複數個虛擬通道以發送來自I/O代理之記憶體存取請求,每一記憶體存取請求係經由與該請求相關聯之一虛擬通道所發送;對於該等第一與第二管線中之每一者並行地進行下列動作:對源自一I/O代理之一記憶體存取請求執行一位址衝突檢查,以判定該請求是否與一未決記憶體存取請求衝突;以及若用於一給定循環之對於由該等第一與第二管線所處理之該等記憶體存取請求中之一者存在一位址衝突,則進行下列動作:判定該等兩個請求之一相對年齡;若該等兩個請求中之一較舊請求具有一位址衝突,且經由相同虛擬通道發送該等請求之兩者,則將兩個請求排入相同I/O衝突佇列,其中該較舊請求先於該較新請求。
  20. 如請求項11之方法,其進一步包含:在該記憶體組織中實施第一與第二管線;對一記憶體存取請求中所含有之資料使用一雜湊演算法,以將記憶體存取請求安排路由至該等第一或第二管線中之一者以用於進一步處理; 對於複數個循環中之每一者,仲裁作為至一仲裁器之輸入而接收的複數個記憶體存取請求,該等輸入包括與源自快取代理之記憶體存取請求相關聯的複數個輸入,及與源自I/O代理之記憶體存取請求相關聯的至少一個輸入;以及對於每一循環,授予一仲裁循環優勝者,且將該仲裁循環優勝者轉遞至經組配以實施該雜湊演算法之邏輯,其中至該仲裁器之該等輸入進一步包括對應於先前由該仲裁器所仲裁且用於偵測到一位址衝突之記憶體存取請求的至少一個輸入。
  21. 一種設備,其包含:一積體電路,其包括:複數個處理器核心,其各自具有至少一個相關聯之快取代理;一系統代理,其操作性地耦接至該等處理器核心中之每一者,該系統代理包括包含複數個一致性管線與複數個記憶體組織管線之一分散式與一致性記憶體組織,每一記憶體組織管線經組配以與一各別記憶體控制器介接;一輸入/輸出(I/O)根複合體,其操作性地耦接至該系統代理;一I/O互連階層,其包括通訊地耦接至該I/O根複合體之至少一個交換組織;以及 複數個I/O代理,其各自耦接至該I/O互連階層中之一交換組織,其中該積體電路係經組配以同時地服務源自該複數個快取代理與該複數個I/O代理之用以存取快取線的記憶體存取請求,同時維持用於與快取代理相關聯之快取線之記憶體一致性,其中該等快取線之一部分係可由至少一個快取代理與至少一個I/O代理兩者存取。
  22. 如請求項21之設備,其中該設備係經組配以強制執行用於源自I/O代理之記憶體存取請求的記憶體存取排序。
  23. 如請求項21之設備,其中每一記憶體組織管線包括緩衝經接納記憶體請求之一接納集區、儲存該等經接納記憶體請求之位址的一計分板與一相關聯之快取代理衝突佇列,該設備進一步包含用於每一記憶體組織管線之位址衝突檢查邏輯,其係經組配以藉由比較對應於其之相關聯的快取代理衝突佇列及計分板中之記憶體存取請求之快取線的位址與該當前評估之記憶體存取請求中所參考之一快取線的一位址,判定是否存在一位址衝突。
  24. 如請求項21之設備,其中該系統代理進一步包含:至少一個快取代理衝突佇列;至少一個I/O衝突佇列;以及位址衝突處理邏輯,其經組配以判定一當前評估之記憶體存取請求是否與另一未決記憶體存取請求相衝突,且經組配以將來自快取代理之有衝突記憶體存取請 求排入該至少一個快取代理衝突佇列中,及將來自I/O代理之有衝突記憶體存取請求排入該至少一個I/O代理衝突佇列中。
  25. 如請求項24之設備,其中該系統代理進一步包含:一衝突佇列仲裁器,其經組配以仲裁該至少一個快取代理衝突佇列與該至少一個I/O衝突佇列中之有衝突記憶體存取請求。
  26. 一種系統,其包含:一底盤;一主板,其安置於該底盤內;一多核心處理器,其耦接至該主板或安裝於該主板上,該多核心處理器包括:複數個處理器核心,其各自具有至少一個相關聯之快取代理;一系統代理,其操作性地耦接至該等處理器核心中之每一者,該系統代理包括包含複數個一致性管線與複數個記憶體組織管線之一分散式與一致性記憶體組織,每一記憶體組織管線經組配以與一各別記憶體控制器介接;一輸入/輸出(I/O)根複合體,其操作性地耦接至該系統代理;一I/O互連階層,其包括通訊地耦接至該I/O根複合體之至少兩個交換組織;以及複數個I/O介面,其各自耦接至一交換組織且 包括一I/O代理;至少兩個記憶體裝置,其耦接至該主板或安裝於該主板上,該至少兩個記憶體裝置經組配為系統記憶體之第一與第二區塊;第一與第二記憶體控制器,其操作性地耦接至各別記憶體組織管線,該等記憶體組織管線各自耦接至至少一個記憶體裝置且經組配以存取系統記憶體之一各別區塊;複數個I/O裝置,其耦接至該主板或安裝於該主板上且耦接至一各別I/O介面;一觸控式螢幕顯示器,其安裝於該底盤,且操作性地耦接至該多核心處理器;快閃記憶體,其耦接至該多核心處理器,該快閃記憶體具有儲存於其中以組配該多核心處理器之BIOS指令;其中在載入該等BIOS指令之後,該多核心處理器係經組配以促進同時服務源自該複數個快取代理與該複數個I/O代理之用以存取快取線的記憶體存取請求,同時維持用於與快取代理相關聯之快取線之記憶體一致性,其中該等快取線之一部分係可由至少一個快取代理與至少一個I/O代理兩者存取。
  27. 如請求項26之系統,其中該多核心處理器係經組配以強制執行用於源自I/O代理之記憶體存取請求的記憶體存取排序。
  28. 如請求項26之系統,其中每一記憶體組織管線包括緩衝經接納記憶體請求之一接納集區、儲存該等經接納記憶體請求之位址的一計分板與一相關聯之快取代理衝突佇列,該系統進一步包含用於每一記憶體組織管線之位址衝突檢查邏輯,其係經組配以藉由比較對應於其之相關聯的快取代理衝突佇列及計分板中之記憶體存取請求之快取線的位址與該當前評估之記憶體存取請求中所參考之一快取線的一位址,判定是否存在一位址衝突。
  29. 如請求項26之系統,其中該系統代理進一步包含:至少一個快取代理衝突佇列;至少一個I/O衝突佇列;以及位址衝突處理邏輯,其經組配以判定一當前評估之記憶體存取請求是否與另一未決記憶體存取請求相衝突,且經組配以將來自快取代理之有衝突記憶體存取請求排入該至少一個快取代理衝突佇列中,及將來自I/O代理之有衝突記憶體存取請求排入該至少一個I/O代理衝突佇列中。
TW103105661A 2013-03-05 2014-02-20 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統 TWI524184B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/785,908 US9405688B2 (en) 2013-03-05 2013-03-05 Method, apparatus, system for handling address conflicts in a distributed memory fabric architecture

Publications (2)

Publication Number Publication Date
TW201447580A true TW201447580A (zh) 2014-12-16
TWI524184B TWI524184B (zh) 2016-03-01

Family

ID=51489345

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103105661A TWI524184B (zh) 2013-03-05 2014-02-20 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統

Country Status (3)

Country Link
US (1) US9405688B2 (zh)
TW (1) TWI524184B (zh)
WO (1) WO2014137864A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI557577B (zh) * 2016-01-12 2016-11-11 英業達股份有限公司 用於防止地址衝突之系統及其方法
CN108369539A (zh) * 2015-08-31 2018-08-03 上海兆芯集成电路有限公司 通过近似相对年龄来加速仲裁的系统和方法
US10474569B2 (en) 2014-12-29 2019-11-12 Toshiba Memory Corporation Information processing device including nonvolatile cache memory and processor

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405688B2 (en) 2013-03-05 2016-08-02 Intel Corporation Method, apparatus, system for handling address conflicts in a distributed memory fabric architecture
US9135200B2 (en) 2013-06-28 2015-09-15 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
CN104346283B (zh) * 2013-08-01 2018-09-28 腾讯科技(北京)有限公司 网络媒介信息存储量的询量分配方法和装置
US20150220872A1 (en) * 2014-02-03 2015-08-06 Cavium, Inc. Method and an apparatus for work packet queuing, scheduling, and ordering with conflict queuing
US9911477B1 (en) * 2014-04-18 2018-03-06 Altera Corporation Memory controller architecture with improved memory scheduling efficiency
US9558143B2 (en) * 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
US10289585B1 (en) * 2014-08-20 2019-05-14 Altera Corporation Cross-point programming of pipelined interconnect circuitry
US9971711B2 (en) * 2014-12-25 2018-05-15 Intel Corporation Tightly-coupled distributed uncore coherent fabric
US20160191420A1 (en) * 2014-12-27 2016-06-30 Intel Corporation Mitigating traffic steering inefficiencies in distributed uncore fabric
US10133670B2 (en) * 2014-12-27 2018-11-20 Intel Corporation Low overhead hierarchical connectivity of cache coherent agents to a coherent fabric
CA2974394C (en) 2015-01-20 2023-09-05 Ultrata, Llc Distributed index for fault tolerant object memory fabric
EP4012548B1 (en) 2015-01-20 2024-05-01 Ultrata LLC Object memory data flow instruction execution
US9858190B2 (en) * 2015-01-27 2018-01-02 International Business Machines Corporation Maintaining order with parallel access data streams
US9990327B2 (en) * 2015-06-04 2018-06-05 Intel Corporation Providing multiple roots in a semiconductor device
US10157160B2 (en) 2015-06-04 2018-12-18 Intel Corporation Handling a partition reset in a multi-root system
US9971542B2 (en) 2015-06-09 2018-05-15 Ultrata, Llc Infinite memory fabric streams and APIs
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
US9886210B2 (en) 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
CA3006773A1 (en) 2015-12-08 2017-06-15 Ultrata, Llc Memory fabric software implementation
US10241676B2 (en) 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
CA3006776A1 (en) * 2015-12-08 2017-06-15 Ultrata, Llc. Memory fabric operations and coherency using fault tolerant objects
US10248337B2 (en) * 2015-12-08 2019-04-02 Ultrata, Llc Object memory interfaces across shared links
US10572399B2 (en) * 2016-07-13 2020-02-25 Qualcomm Incorporated Memory request arbitration
US10037150B2 (en) * 2016-07-15 2018-07-31 Advanced Micro Devices, Inc. Memory controller with virtual controller mode
US10613991B2 (en) 2016-08-01 2020-04-07 Hewlett Packard Enterprise Development Lp Transparent routers to provide services
US10277677B2 (en) * 2016-09-12 2019-04-30 Intel Corporation Mechanism for disaggregated storage class memory over fabric
US10372642B2 (en) 2016-09-29 2019-08-06 Intel Corporation System, apparatus and method for performing distributed arbitration
US10944694B2 (en) 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10788990B2 (en) * 2017-02-16 2020-09-29 Toyota Jidosha Kabushiki Kaisha Vehicle with improved I/O latency of ADAS system features operating on an OS hypervisor
US11099778B2 (en) * 2018-08-08 2021-08-24 Micron Technology, Inc. Controller command scheduling in a memory system to increase command bus utilization
US10693811B2 (en) * 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration
WO2021118516A1 (en) * 2019-12-09 2021-06-17 Hewlett Packard Enterprise Development Lp Age class based arbitration
US11232049B2 (en) 2019-12-13 2022-01-25 Micron Technology, Inc. Memory module with computation capability
US20210182187A1 (en) * 2020-12-24 2021-06-17 Intel Corporation Flushing Cache Lines Involving Persistent Memory
US20230030679A1 (en) * 2021-07-27 2023-02-02 Advanced Micro Devices, Inc. Dispatch bandwidth of memory-centric requests by bypassing storage array address checking
US20230110239A1 (en) * 2021-09-24 2023-04-13 Intel Corporation Switched capacitor voltage converter circuit with a hierarchical switch network

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832304A (en) * 1995-03-15 1998-11-03 Unisys Corporation Memory queue with adjustable priority and conflict detection
US5875472A (en) * 1997-01-29 1999-02-23 Unisys Corporation Address conflict detection system employing address indirection for use in a high-speed multi-processor system
US6622225B1 (en) * 2000-08-31 2003-09-16 Hewlett-Packard Development Company, L.P. System for minimizing memory bank conflicts in a computer system
US20050149654A1 (en) * 2004-01-06 2005-07-07 Holloway Marty M. Modular audio/video device and method
US7360069B2 (en) 2004-01-13 2008-04-15 Hewlett-Packard Development Company, L.P. Systems and methods for executing across at least one memory barrier employing speculative fills
US8560795B2 (en) * 2005-06-30 2013-10-15 Imec Memory arrangement for multi-processor systems including a memory queue
US7437518B2 (en) * 2005-09-07 2008-10-14 Intel Corporation Hiding conflict, coherence completion and transaction ID elements of a coherence protocol
US7447844B2 (en) * 2006-07-13 2008-11-04 International Business Machines Corporation Data processing system, processor and method of data processing in which local memory access requests are serviced on a fixed schedule
US20080034146A1 (en) 2006-08-04 2008-02-07 Via Technologies, Inc. Systems and Methods for Transactions Between Processor and Memory
US8239633B2 (en) * 2007-07-11 2012-08-07 Wisconsin Alumni Research Foundation Non-broadcast signature-based transactional memory
KR100922732B1 (ko) 2007-12-10 2009-10-22 한국전자통신연구원 메모리 액세스 충돌 감소 장치 및 방법
US8205057B2 (en) 2009-06-30 2012-06-19 Texas Instruments Incorporated Method and system for integrated pipeline write hazard handling using memory attributes
US8549249B1 (en) 2009-09-21 2013-10-01 Tilera Corporation Supporting secondary atomic operations using primary atomic operations
US8533399B2 (en) 2010-01-15 2013-09-10 International Business Machines Corporation Cache directory look-up re-use as conflict check mechanism for speculative memory requests
US8375171B2 (en) 2010-04-08 2013-02-12 Unisys Corporation System and method for providing L2 cache conflict avoidance
US9021306B2 (en) * 2012-12-13 2015-04-28 Apple Inc. Debug access mechanism for duplicate tag storage
US9405688B2 (en) 2013-03-05 2016-08-02 Intel Corporation Method, apparatus, system for handling address conflicts in a distributed memory fabric architecture

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474569B2 (en) 2014-12-29 2019-11-12 Toshiba Memory Corporation Information processing device including nonvolatile cache memory and processor
CN108369539A (zh) * 2015-08-31 2018-08-03 上海兆芯集成电路有限公司 通过近似相对年龄来加速仲裁的系统和方法
TWI557577B (zh) * 2016-01-12 2016-11-11 英業達股份有限公司 用於防止地址衝突之系統及其方法

Also Published As

Publication number Publication date
WO2014137864A1 (en) 2014-09-12
US9405688B2 (en) 2016-08-02
US20140258620A1 (en) 2014-09-11
TWI524184B (zh) 2016-03-01

Similar Documents

Publication Publication Date Title
TWI524184B (zh) 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統
CN107924380B (zh) 使用业务类别分配高速缓存的方法、装置和系统
TWI514191B (zh) 以安全屬性限制cpu異動的方法、設備及系統
US9953001B2 (en) Method, apparatus, and system for plugin mechanism of computer extension bus
KR101995623B1 (ko) 고속 구성 메커니즘을 위한 장치, 방법, 및 시스템
CN108027785B (zh) 用于对链路拆分进行去偏斜的方法、设备和系统
TWI569146B (zh) 用於高效能互連中之嵌入式串流路徑的方法、設備及系統
CN107005231B (zh) 用于在高性能互连中定中心的方法、设备、系统
CN109074341B (zh) 减少引脚计数接口
US10969992B2 (en) Address translation for scalable linked devices
CN115543905A (zh) 针对pcie进行sris模式选择的系统、方法和装置
CN110121703B (zh) 用于向量通信的系统和方法
US20210318980A1 (en) Peer-to-peer link sharing for upstream communications from xpus to a host processor
TWI736559B (zh) 用以針對實體層裝置的組件傳輸資料之控制器
CN109643577B (zh) 用于存储器训练的电参数的多维优化
US20220113967A1 (en) Accelerator fabric for discrete graphics
US20170351430A1 (en) Method, apparatus, and system for cache coherency using a coarse directory
US11126554B2 (en) Prefetching write permissions into address translation cache