TW201539370A - 在分散式圖形處理器階層中的系統同調性之技術 - Google Patents
在分散式圖形處理器階層中的系統同調性之技術 Download PDFInfo
- Publication number
- TW201539370A TW201539370A TW104103891A TW104103891A TW201539370A TW 201539370 A TW201539370 A TW 201539370A TW 104103891 A TW104103891 A TW 104103891A TW 104103891 A TW104103891 A TW 104103891A TW 201539370 A TW201539370 A TW 201539370A
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- memory
- shared
- memories
- graphics processor
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/455—Image or video data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
可提供用於由一實體分散式運算薄片(compute slices)之集合執行多個工作項的方法及系統。另外,可由一快取網狀架構橫跨一圖形處理器、一系統記憶體及一或多個主機處理器維持與該多個工作項相關聯之一或多個記憶體線的同調性。在一個實例中,多個縱橫式節點追蹤該一或多個記憶體線,其中橫跨多個一階(L1)快取記憶體及一實體分散式快取結構維持該一或多個記憶體線之該同調性。各L1快取記憶體可專用於一運算薄片之一執行區塊且各縱橫式節點可專用於一運算薄片。
Description
本發明係有關於在分散式圖形處理器階層中的系統同調性之技術。
諸如遊戲及媒體播放器之某些應用程式可使用嵌入式設計、圖形處理單元(GPU)等以處置計算密集型工作負荷。在此狀況下,中央處理單元(CPU)可將工作負荷以一或多個命令之形式調度至(例如)GPU,其中GPU可回應於該一或多個命令內部執行含有多個工作項之工作組。為了維持GPU上之工作項與工作組之間的順序一致性,可使用諸如障壁命令(「障壁」)、記憶體防護及無序原子操作(「atomic operation、atomics」)之解決方案。然而,此等解決方案可係粗糙粒度級的且不能控制特定記憶體存取定序。此外,除非使用硬體排清及軟體堆疊呼叫,否則習知解決方案可不能橫跨GPU及CPU確保記憶體一致性(例如,同調性),其中排清及堆疊呼叫可對效能具有負面影響。
依據本發明之一實施例,係特地指出一種系統,其包含:一顯示器,其用以呈現視覺內容;一系統快取記憶體,其耦接至一或多個主機處理器及一系統記憶體;一圖形介面,其耦接至該系統快取記憶體;及一圖形處理器,其耦接至該圖形介面,該圖形處理器包括:運算薄片之一實體分散式運算薄片集合,其用以執行與該視覺內容相關聯之多個工作項;及一快取網狀架構,其用以橫跨該圖形處理器、該系統記憶體及該一或多個主機處理器而維持與該多個工作項相關聯之一或多個記憶體線的一同調性,其中該快取網狀架構包括:多個一階(L1)快取記憶體,各L1快取記憶體係專用於一運算薄片之一執行區塊;實體分散式之一共用快取結構,其中該一或多個記憶體線之該同調性係要橫跨該多個L1快取記憶體及該共用快取結構而被維持;及多個縱橫式節點,其用以追蹤該一或多個記憶體線,各縱橫式節點係專用於一運算薄片,該多個縱橫式節點進一步用以經由該圖形介面將源自於該系統快取記憶體之一或多個窺探請求分散至該共用快取結構及該多個L1快取記憶體,自該共用快取結構及該多個L1快取記憶體收集一或多個窺探結果,並將該一或多個窺探結果傳達至該系統快取記憶體。
10‧‧‧計算架構
12‧‧‧系統快取記憶體
14、14a至14c‧‧‧主機處理器
16、16a至16c‧‧‧專用快取記憶體
18‧‧‧系統記憶體
20‧‧‧圖形處理器
22‧‧‧圖形介面
24、24a至24d‧‧‧運算薄片
26‧‧‧一階(L1)快取記憶體(「L1$」)
28‧‧‧執行區塊
30‧‧‧共用快取結構
31‧‧‧獨立二階(L2)快取記憶體
32‧‧‧縱橫式節點
34‧‧‧執行單元(EU)
36‧‧‧位址產生單元(AGU)
38‧‧‧方法
40、42‧‧‧處理區塊
44、46、48、50、52‧‧‧同調性協定表
45‧‧‧「原始請求」欄
47‧‧‧「L2$」欄
49‧‧‧「其他L1$」欄
51‧‧‧「發佈L1$」欄
53‧‧‧第一「L1$有效(SSV)」欄
54‧‧‧第一列
55‧‧‧「L2$狀態」欄
56‧‧‧第四列
57‧‧‧「其他SS$」欄
58‧‧‧第九列
59‧‧‧「發佈SS$」欄
60‧‧‧第七列
61‧‧‧第二「L1$有效(SSV)欄
62‧‧‧最後一列
63‧‧‧「SSV動作」欄
64‧‧‧第二列
65‧‧‧「Xsnp」欄
66‧‧‧第三列
68‧‧‧第十列
700‧‧‧系統
702‧‧‧平台
705‧‧‧晶片組
710‧‧‧處理器
712‧‧‧記憶體
714‧‧‧儲存器
715‧‧‧圖形子系統
716‧‧‧應用程式
718‧‧‧無線電
720、804‧‧‧顯示器
722‧‧‧使用者介面
730‧‧‧內容服務裝置
740‧‧‧內容傳送裝置
750‧‧‧巡覽控制器
760‧‧‧網路
800‧‧‧小外觀尺寸裝置
802‧‧‧外殼
806‧‧‧輸入/輸出(I/O)裝置
808‧‧‧天線
810‧‧‧資訊
812‧‧‧巡覽特徵
藉由閱讀以下說明書及隨附申請專利範圍且藉由參考以下圖式,熟習此項技術者將顯而易見實施例之各種優勢,其中:
圖1A為根據實施例的計算架構之實例的方塊圖;圖1B為根據實施例的運算薄片之實例的方塊圖;圖2為根據實施例的操作圖形處理器之方法的實例之流程圖;圖3A至圖3E為根據實施例的同調性協定表之實例的說明;圖4為根據實施例的具有巡覽控制器之系統的實例之方塊圖;及圖5為根據實施例的具有較小外觀尺寸之系統的實例之方塊圖。
圖1A及圖1B展示可大體上為如下計算平台之部分的計算架構10,諸如智慧型手機、平板電腦、行動網際網路裝置(MID)、智慧型電視(TV)、媒體播放器、筆記型電腦、桌上型電腦、伺服器、可佩戴裝置等。如圖1A中所最好展示,系統快取記憶體12(例如,靜態隨機存取記憶體/SRAM、窺探濾波器)可耦接至具有專用快取記憶體16(16a至16c,例如SRAM)之多個主機處理器14(14a至14c)。系統快取記憶體12亦可耦接至用於儲存用於架構10之各種組件的資料、指令等的系統記憶體18(例如,動態隨機存取記憶體/DRAM、「主記憶體」)。各主機處理器14可為能夠執行相關於視覺內容之呈現的應用程式、指令碼等並經由圖形介面22將相關聯工作負荷發佈至圖形處理器20之中央處理
單元(CPU)。系統快取記憶體12可大體上追蹤與彼等工作負荷相關聯之記憶體線(例如,快取線或其他資料結構)的存在並提供窺探濾波服務,其中圖形介面22可評估自系統快取記憶體12所接收之窺探請求並將其發送至圖形處理器20上之適當快取目的地以用於進一步評估。
圖形處理器20可大體上處置諸如像素色彩值計算、直方圖計算等等之計算密集型工作負荷以支援及/或促進視覺內容(例如,三維/3D圖形、非3D影像等)之呈現。更特定而言,所說明圖形處理器20包括用以執行多個工作項之實體分散式運算薄片24(24a至24d)之集合,及用以橫跨圖形處理器20、系統記憶體18及主機處理器14維持與多個工作項相關聯之一或多個記憶體線的同調性(例如,系統定義大小)之快取網狀架構。如下文將更詳細地論述,快取網狀架構可提供維持工作項與工作組之間的順序一致性、控制特定記憶體存取定序及確保記憶體一致性(例如,同調性)之精細粒度級方法。
如圖1B中所最好展示,快取網狀架構可包括多個一階(L1)快取記憶體26(「L1$」),各L1快取記憶體26專用於運算薄片24之執行區塊28。因此,多個L1快取記憶體26可在記憶體線正由快取網狀架構追蹤時為執行區塊28提供相對較高頻寬及較低潛時儲存。各執行區塊28可包括用以執行工作項之執行單元(EU)34之陣列,及用以執行記憶體中之資料運算元定址所涉及的有效位址計算(例如,使用整數算術)的位址產生單元(AGU)36。
快取網狀架構亦可包括實體分散式共用快取結構30,其中橫跨多個L1快取記憶體26及共用快取結構30維持一或多個記憶體線之同調性。將共用快取結構30組配為實體分散式實體可使得能夠最大化共用快取結構30之大小,同時滿足執行區塊28中之各者的頻寬需求。在所說明之實例中,共用快取結構30經組配為具有多個記憶體組之二階快取記憶體(「L2$」)。在此狀況下,共用快取結構30可橫跨多個記憶體組來雜湊記憶體線以便確保橫跨共用快取結構30均勻地分散資料。所說明方法可提供具有最小窺探損失(例如,對處置窺探請求之相對小的效能影響)、具有交叉運算薄片訊務上之潛在增加的較大且可調程度更高的快取記憶體。替代性地,共用快取結構30可經組配為多個獨立二階(L2)快取記憶體31,其中各L2快取記憶體31專用於運算薄片。此方法可為執行區塊28提供區域儲存,同時最小化交叉計算訊務。兩個實施選擇可使用相同窺探追蹤邏輯達成同調性。
另外,快取網狀架構可包括追蹤一或多個記憶體線之多個縱橫式節點32(例如,快取橋接器),各縱橫式節點32專用於運算薄片24。縱橫式節點32可將來源於系統快取記憶體12之窺探請求分散至共用快取結構30及L1快取記憶體26。另外,縱橫式節點32可自共用快取結構30及多個L1快取記憶體26收集一或多個窺探結果,並經由圖形介面22將所收集窺探結果傳達至系統快取記憶體12。如將更詳細地論述,快取網狀架構可使用經修改、獨佔、共用、無效
(MESI)協定來維持一或多個記憶體線之同調性。
因此,所說明架構10使用圖形處理器20之快取網狀架構、主機處理器14之專用快取記憶體16、系統快取記憶體12及系統記憶體18以達成能夠維持圖形工作項與工作組之間的順序一致性、控制特定記憶體存取定序並確保橫跨整個架構10之同調性的記憶體/快取記憶體階層。相對於依賴於障壁、記憶體防護、無序原子操作、硬體清空及軟體堆疊呼叫之習知方法,此精細粒度級方法可尤其有利。
舉例而言,載入(例如,讀取操作)及儲存(例如,寫入操作)追蹤可開始於執行區塊28之層級處,其中系統記憶體18之讀取結果可傳回有效資料,且記憶體階層中之較高層級可追蹤用於階層中之下一較低層級的受影響記憶體線之存在。除非修改被壓製線(victim line)(例如,歸因於替換已自快取記憶體收回之記憶體線),否則可准許階層中之低層級靜默地丟棄其記憶體線以用於替換。寫入追蹤可限制性較大,其中基於寫入相對於記憶體線之大小,各寫入之發起者可在發起者更新其L1快取記憶體26之前達成擁有目的地位址。為簡單起見,可實施僅准許經修改記憶體線之一個複本存在於整個快取網狀架構上的策略。此策略可為追蹤提供記憶體線之最新複本同時使資料交換相對精確。
現轉向圖2,展示操作圖形處理器之方法38。可以可執行軟體將方法38實施為儲存於諸如如下各者的記憶體之機器可讀或電腦可讀儲存媒體中的邏輯指令集:隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可規劃
ROM(PROM)、韌體、快閃記憶體等,可以諸如如下各者之可組配邏輯實施該方法:可規劃邏輯陣列(PLA)、場可規劃閘陣列(FPGA)、複雜可規劃邏輯裝置(CPLD),可以使用諸如如下各者之電路技術的固定功能性邏輯硬體實施該方法:特殊應用積體電路(ASIC)、互補金屬氧化物半導體(CMOS)或電晶體對電晶體邏輯(TTL)技術,或其任何組合。
所說明處理區塊40提供由實體分散式運算薄片之集合執行多個工作項。區塊42可由快取網狀架構橫跨圖形處理器、系統記憶體及一或多個主機處理器維持與多個工作項相關聯之一或多個記憶體線的同調性。區塊42可涉及由多個縱橫式節點追蹤一或多個記憶體線,其中橫跨多個L1快取記憶體及實體分散式快取結構維持一或多個記憶體線之同調性,各L1快取記憶體專用於運算薄片之執行區塊且各縱橫式節點專用於運算薄片。此外,共用快取結構可使用多個獨立L2快取記憶體以追蹤一或多個記憶體線抑或橫跨L2快取記憶體之多個記憶體組雜湊一或多個記憶體線中之至少一者。在獨立L2快取記憶體之狀況下,各L2快取記憶體可專用於運算薄片。
區塊42亦可涉及由多個縱橫式節點將來源於耦接至一或多個主機處理器之系統快取記憶體的一或多個窺探請求分散至共用快取結構及多個L1快取記憶體。另外,區塊42可提供由多個縱橫式節點自共用快取結構及多個L1快取記憶體收集一或多個窺探結果並由多個縱橫式節點將一或多個窺探結果傳達至耦接至一或多個主機處理器之系
統快取記憶體。區塊42亦可包括由快取網狀架構使用MESI協定以維持一或多個記憶體線之同調性。
圖3A至圖3E大體上展示實施同調性協定之方法,其中各記憶體線標記有MESI(經修改、獨佔、共用、無效)狀態中之一者。更特定而言,當記憶體線僅存在於當前快取記憶體中且其「已使用」(例如,記憶體線已自系統記憶體中之值改變)時,可使用經修改狀態。若特定快取記憶體具有處於經修改狀態之記憶體線,則可要求快取記憶體將對應於彼記憶體線之資料寫入回至系統記憶體,之後將准許自系統記憶體讀取彼記憶體線。此「寫回」可導致記憶體線在快取記憶體中改變為獨佔狀態。
當記憶體線僅存在於當前快取記憶體中且其「未變更」(例如,記憶體線匹配系統記憶體中之值)時,可使用獨佔狀態。在此狀況下,回應於對快取記憶體之讀取請求,記憶體線可改變為共用狀態。回應於對快取記憶體之寫入請求,記憶體線亦可改變為經修改狀態。共用狀態可指示記憶體線未變更且其可儲存於系統之其他快取記憶體中。亦可在任何時間處丟棄共用記憶體線(例如,改變為無效狀態)。無效狀態可用於指示記憶體線未使用(例如,自快取記憶體收回)。如已提到,快取網狀架構可使用MESI協定以橫跨圖形處理器、系統記憶體及主機處理器之專用快取記憶體維持記憶體一致性。圖3A至圖3E中所展示之實例取自於特定L1快取記憶體(「發佈L1$」)之視角。
舉例而言,圖3A展示用於關於特定L1快取記憶
體之讀取操作的同調性協定表44。在所說明之實例中,「原始請求」欄45指示關於特定記憶體線所執行操作之類型、「L2$」欄47指示當請求操作時記憶體線在L2快取記憶體中之狀態、「其他L1$」欄49指示當請求操作時記憶體線在其他L1快取記憶體中之狀態、「發佈L1$」欄51指示當請求操作時記憶體線在所討論L1快取記憶體中之狀態、第一「L1$有效(SSV)」欄53指示當請求操作時子截塊有效(SSV)快取記憶體之數目(例如,具有用於記憶體線之有效資料的L1快取記憶體之數目)、「L2$狀態」欄55指示執行操作之後記憶體線在L2快取記憶體中之狀態、「其他SS$」欄57指示執行操作之後記憶體線在其他L1快取記憶體中之狀態、「發佈SS$」欄59指示執行操作之後記憶體線在所討論L1快取記憶體中之狀態、第二「L1$有效(SSV)欄61指示執行操作之後的SSV快取之數目、「SSV動作」欄63指示關於與記憶體線相關聯之有效位元所採取的動作,且「Xsnp」欄65指示在所請求操作之後是否執行交叉窺探操作。
因此,舉例而言,如表44之第一列54中所展示,讀取操作可係針對特定L1快取記憶體,此時對應記憶體線在L2快取記憶體中如欄47中所展示處於經修改狀態、在其他L1快取記憶體中如欄49中所展示處於共用狀態且在發佈L1快取記憶體中如欄51中所展示處於無效狀態。在所說明之實例中,SSV快取之數目可如欄53中所展示為一個。若如此,在讀取操作之後,記憶體線將在L2快取記憶體中如欄55中所展示處於經修改狀態、在其他L1快取記憶體中如
欄57中所展示處於共用狀態,且在發佈L1快取記憶體中如欄59中所展示處於共用狀態(經改變),其中在所說明之實例中,SSV快取之數目將如欄61中所展示為大於一個。此外,可如欄63中所展示地將有效位元附加至發佈L1快取記憶體中之記憶體線,且可並不需要交叉窺探操作(例如,准許無聲收回),如欄65中所展示。
相反地,表44之第四列56表明讀取操作可係針對特定L1快取記憶體,此時對應記憶體線在L2快取記憶體中如欄47中所展示處於經修改狀態、在其他L1快取記憶體中如欄49中所展示處於無效狀態且在發佈L1快取記憶體中如欄51中所展示處於無效狀態。在所說明之實例中,SSV快取之數目可如欄53中所展示為一個。若如此,在讀取操作之後,記憶體線將在L2快取記憶體中如欄55中所展示處於經修改狀態、在其他L1快取記憶體中如欄57中所展示處於無效狀態且在發佈L1快取記憶體中如欄59中所展示處於共用狀態(歸因於狀態改變),其中在所說明之實例中,SSV快取之數目將如欄61中所展示為大於一個。可如欄63中所展示地用有效位元替換發佈L1快取記憶體中之記憶體線,且如欄65中所展示可並不需要交叉窺探操作。對於對應記憶體線在L2快取記憶體中處於獨佔、共用及/或無效狀態的讀取操作情境,可實施類似轉變及/或規則,如表44之剩餘部分中所表明。
圖3B展示用於至發佈L1快取記憶體之寫入操作的同調性協定表46。在所說明之實例中,表46之第九列58
表明寫入操作可係針對特定L1快取記憶體,此時對應記憶體線在L2快取記憶體中如欄47中所展示處於獨佔狀態、在其他L1快取記憶體中如欄49中所展示處於共用狀態且在發佈L1快取記憶體中如欄51中所展示處於共用狀態。在所說明之實例中,SSV快取之數目將如欄53中所展示為大於一個。另外,在寫入操作之後,記憶體線將在L2快取記憶體中如欄55中所展示處於經修改狀態(歸因於狀態改變)、在其他L1快取記憶體中如欄57中所展示處於無效狀態(歸因於狀態改變)且在發佈L1快取記憶體中如欄59中所展示處於無效狀態(歸因於狀態改變),其中在所說明之實例中,SSV快取之數目將如欄61中所展示為零。可如欄63中所展示清除發佈L1快取記憶體中之有效位元,且如欄65中所展示可進行窺探無效操作(「Snp Inv」)。對於對應記憶體線在L2快取記憶體中處於經修改、共用及/或無效狀態的寫入操作情境,可實施類似轉變及/或規則,如表46之剩餘部分中所表明。
圖3C展示用於關於L2快取記憶體之收回及讀取操作的同調性協定表48。在所說明之實例中,表48之第七列60表明收回操作可係自發佈L1快取記憶體針對L2快取記憶體,此時對應記憶體線在L2快取記憶體中如欄47中所展示處於共用狀態、在其他L1快取記憶體中如欄49中所展示處於無效狀態且在發佈L1快取記憶體中如欄51中所展示處於無效狀態。在所說明之實例中,SSV快取之數目將如欄53中所展示為零。在收回操作之後,記憶體線將在L2快取
記憶體中如欄55中所展示處於無效狀態(經改變)、在其他L1快取記憶體中如欄57中所展示處於無效狀態且在發佈L1快取記憶體中如欄59中所展示處於無效狀態,其中在所說明之實例中,SSV快取之數目將如欄61中所展示為零。此外,關於有效位元(如欄63中所展示)或關於交叉窺探操作(如欄65中所展示)可無需採取動作。對於對應記憶體線在L2快取記憶體中處於獨佔及/或經修改狀態之收回操作情境,可實施類似轉變及/或規則,如表46之剩餘部分中所表明。
另外,表48之最後一列62表明讀取操作可係自發佈L1快取記憶體針對L2快取記憶體(例如,回應於L1快取未中),此時對應記憶體線在L2快取記憶體中如欄47中所展示處於無效狀態、在其他L1快取記憶體中如欄49中所展示處於無效狀態且在發佈L1快取記憶體中如欄51中所展示處於無效狀態。在所說明之實例中,SSV快取之數目可如欄53中所展示為零。因此,在讀取操作之後,記憶體線將在L2快取記憶體中如欄55中所展示處於共用狀態(歸因於狀態改變)、在其他L1快取記憶體中如欄57中所展示處於無效狀態且在發佈L1快取記憶體中如欄59中所展示處於無效狀態,其中在所說明之實例中,SSV快取之數目將如欄61中所展示保持為零。此外,關於有效位元(如欄63中所展示)或關於交叉窺探操作(如欄65中所展示)可無需採取動作。
圖3D展示用於來源於耦接至主機處理器(諸如,已論述之主機處理器14(圖1A))之快取記憶體的窺探無效操
作之同調性協定表50。在所說明之實例中,表50之第二列64表明窺探無效操作可係針對圖形快取網狀架構,此時對應記憶體線在L2快取記憶體中如欄47中所展示處於經修改狀態、在其他L1快取記憶體中如欄49中所展示處於無效狀態且在發佈L1快取記憶體中如欄51中所展示處於無效狀態。在所說明之實例中,SSV快取之數目將如欄53中所展示為零。另外,在窺探無效操作之後,記憶體線將在L2快取記憶體中如欄55中所展示處於無效狀態、在其他L1快取記憶體中如欄57中所展示處於無效狀態且在發佈L1快取記憶體中如欄59中所展示處於無效狀態,其中在所說明之實例中,SSV快取之數目將如欄61中所展示保持為零。此外,關於有效位元(如欄63中所展示)或關於交叉窺探操作(如欄65中所展示)可無需採取動作。
相反地,表50之第三列66表明窺探無效操作可係針對快取網狀架構,此時對應記憶體線在L2快取記憶體中如欄47中所展示處於經修改狀態、在其他L1快取記憶體中如欄49中所展示處於無效狀態且在發佈L1快取記憶體中如欄51中所展示處於共用狀態。在所說明之實例中,SSV快取之數目可如欄53中所展示為一個。另外,在窺探無效操作之後,記憶體線將在L2快取記憶體中如欄55中所展示處於無效狀態、在其他L1快取記憶體中如欄57中所展示處於無效狀態且在發佈L1快取記憶體中如欄59中所展示處於無效狀態(歸因於狀態改變),其中在所說明之實例中,SSV快取之數目將在欄61中改變為零。可如欄63中所展示清除發
佈L1快取記憶體中之有效位元,且如欄65中所展示可進行窺探無效操作。對於對應記憶體線在L2快取記憶體中處於獨佔、共用及/或無效狀態之窺探無效操作情境,可實施類似轉變及/或規則,如表50之剩餘部分中所表明。
圖3E展示用於來源於主機處理器(諸如,耦接至已論述主機處理器14(圖1A)之快取記憶體)之窺探資料操作的同調性協定表52。在所說明之實例中,表52之第十列68表明窺探資料操作可係針對圖形快取網狀架構,此時對應記憶體線在L2快取記憶體中如欄47中所展示處於獨佔狀態、在其他L1快取記憶體中如欄49中所展示處於共用狀態且在發佈L1快取記憶體中如欄51中所展示處於無效狀態。在所說明之實例中,SSV快取之數目可如欄53中所展示為一個。另外,在窺探資料操作之後,記憶體線將在L2快取記憶體中如欄55中所展示處於共用狀態(歸因於狀態改變)、在其他L1快取記憶體中如欄57中所展示處於無效狀態且在發佈L1快取記憶體中如欄59中所展示處於無效狀態,其中在所說明之實例中,SSV快取之數目將如欄61中所展示保持為一個。此外,關於有效位元(如欄63中所展示)或關於交叉窺探操作(如欄65中所展示)可無需採取動作。對於對應記憶體線在L2快取記憶體中處於經修改、共用及/或無效狀態之窺探資料操作情境,可實施類似轉變及/或規則,如表52之剩餘部分中所表明。
圖4說明系統700之實施例。在實施例中,系統700可為媒體系統,儘管系統700並不限於此上下文。舉例而
言,系統700可併入於個人電腦(PC)、膝上型電腦、超膝上型電腦、平板電腦、觸控板、攜帶型電腦、手持型電腦、掌上型電腦、個人數位助理(PDA)、蜂巢式電話、組合蜂巢式電話/PDA、電視、智慧型裝置(例如,智慧型手機、智慧型平板電腦或智慧型電視)、行動網際網路裝置(MID)、訊息傳遞裝置、資料通訊裝置等等中。因此,系統700如本文中所描述可用於維持視訊位元串流之快取同調性。
在實施例中,系統700包含耦接至呈現視覺內容之顯示器720的平台702。平台702可自諸如內容服務裝置730或內容傳送裝置740或其他類似內容源之內容裝置接收視訊位元串流內容。包含一或多個巡覽特徵之巡覽控制器750可用以與(例如)平台702及/或顯示器720互動。下文更詳細地描述此等組件中之各者。
在實施例中,平台702可包含晶片組705、處理器710、記憶體712、儲存器714、圖形子系統715、應用程式716及/或無線電718之任何組合。晶片組705可提供處理器710、記憶體712、儲存器714、圖形子系統715、應用程式716及/或無線電718當中的內部通訊。舉例而言,晶片組705可包括能夠提供與儲存器714之內部通訊的儲存器配接器(未描繪)。
處理器710可實施為複雜指令集電腦(CISC)或精簡指令集電腦(RISC)處理器、x86指令集相容處理器、多核心或任何其他微處理器或中央處理單元(CPU)。在實施例中,處理器710可包含雙核心處理器、雙核心行動處理器等
等。
記憶體712可實施為依電性記憶體裝置,諸如(但不限於)隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)或靜態RAM(SRAM)。
儲存器714可實施為非依電性儲存裝置,諸如(但不限於)磁碟機、光碟機、磁帶機、內部儲存裝置、附接儲存裝置、快閃記憶體、電池備用式SDRAM(同步DRAM)及/或網路可存取儲存裝置。在實施例中,儲存器714可包含在(例如)包括多個硬碟機時用以增加對有價值之數位媒體的儲存器效能增強型保護的技術。
圖形子系統715可對諸如用於顯示之靜態或視訊影像執行處理。舉例而言,圖形子系統715可為圖形處理單元(GPU)或視覺處理單元(VPU)。圖形子系統715可因此包括已論述之圖形處理器20(圖1A)。另外,處理器710可經組配以經由自記憶體712、儲存器714或其他合適源獲得之指令操作為已論述之主機處理器14(圖1A)中之一或多者。類比或數位介面可用以以通訊方式耦接圖形子系統715與顯示器720。舉例而言,介面可為高清晰度多媒體介面、顯示埠、無線HDMI及/或無線HD相符技術中之任一者。圖形子系統715可整合於處理器710或晶片組705中。圖形子系統715可為以通訊方式耦接至晶片組705之單獨卡。
本文中所描述之圖形及/或視訊處理技術可實施於各種硬體架構中。舉例而言,圖形及/或視訊功能性可整合至晶片組內。替代性地,可使用離散之圖形及/或視訊處
理器。作為再一實施例,可由通用處理器(包括多核心處理器)實施圖形及/或視訊功能。在另一實施例中,可在消費型電子裝置中實施該等功能。
無線電718可包括能夠使用各種合適無線通訊技術傳輸並接收信號之一或多個無線電。此等技術可涉及橫跨一或多個無線網路之通訊。例示性無線網路包括(但不限於)無線區域網路(WLAN)、無線個人區域網路WPAN)、無線都會區域網路(WMAN)、蜂巢式網路及衛星網路。在橫跨此等網路進行通訊時,無線電718可根據任何版本的一或多個適用標準進行操作。
在實施例中,顯示器720可包含任何電視類型之監視器或顯示器。顯示器720可包含(例如)電腦顯示屏幕、觸控式螢幕顯示器、視訊監視器、電視狀裝置及/或電視。顯示器720可係數位的及/或類比的。在實施例中,顯示器720可為全像顯示器。又,顯示器720可為可接收視覺投影之透明表面。此等投影可輸送各種形式之資訊、影像及/或物件。舉例而言,此等投影可為用於行動擴增實境(MAR)應用程式之視覺重疊。在一或多個軟體應用程式716之控制下,平台702可在顯示器720上顯示使用者介面722。
在實施例中,內容服務裝置730可由任何國家、國際及/或獨立服務代管且因此其可經由(例如)網際網路存取平台702。內容服務裝置730可耦接至平台702及/或顯示器720。平台702及/或內容服務裝置730可耦接至網路760以將媒體資訊傳達(例如,發送及/或接收)至網路760並自該網
路傳達媒體資訊。內容傳送裝置740亦可耦接至平台702及/或顯示器720。
在實施例中,內容服務裝置730可包含有線電視盒、個人電腦、網路、電話、具備網際網路之裝置或能夠傳送數位資訊及/或內容之器具,及能夠在內容提供者與平台702及/顯示器720之間經由網路760或直接單向或雙向傳達內容的任何其他類似裝置。將瞭解,可經由網路760將內容單向及/或雙向傳達至系統700中之組件及內容提供者中的任一者,且可經由該網路自系統中之組件及內容提供者中的任一者單向及/或雙向傳達內容。內容之實例可包括任何媒體資訊,包括(例如)視訊、音樂、醫療及遊戲資訊等等。
內容服務裝置730接收諸如有線電視程式設計之內容,包括媒體資訊、數位資訊及/或其他內容。內容提供者之實例可包括任何纜線或衛星電視或無線電或網際網路內容提供者。所提供實例並不意謂限制實施例。
在實施例中,平台702可自具有一或多個巡覽特徵之巡覽控制器750接收控制信號。舉例而言,控制器750之巡覽特徵可用於與使用者介面722互動。在實施例中,巡覽控制器750可為指標裝置,其可為允許使用者將空間(例如,連續及多維之)資料輸入至電腦中的電腦硬體組件(具體而言為人性化介面裝置)。諸如圖形使用者介面(GUI)及電視及監視器之許多系統允許使用者使用身體示意動作對電腦或電視進行控制,並將資料提供至電腦或電視中。
藉由移動指針、游標、聚焦環或顯示於顯示器上
的其他視覺指示符,可在顯示器(例如,顯示器720)上回應控制器750之巡覽特徵的移動。舉例而言,在軟體應用程序716之控制下,位於巡覽控制器750上之巡覽特徵可映射至顯示於(例如)使用者介面722上的虛擬巡覽特徵。在實施例中,控制器750可並非為單獨組件,而是整合於平台702及/或顯示器720中。然而,實施例並不限於本文中所展示或所描述之元件或上下文中。
在實施例中,驅動器(未展示)可包含用以使得使用者能夠(例如當具備此功能時)類似於電視地,藉由在初始啟動之後觸摸按鈕而即刻開啟及關閉平台702的技術。當「關閉」平台時,程式邏輯可允許平台702將內容串流至媒體配接器或其他內容服務裝置730或內容傳送裝置740。另外,晶片組705可包含支援(例如)5.1環繞聲音訊及/或高清晰度7.1環繞聲音訊的硬體及/或軟體。驅動器可包括用於整合式圖形平台之圖形驅動器。在實施例中,圖形驅動器可包含周邊組件互連(PCI)高速圖形卡。
在各種實施例中,可整合系統700中所展示之組件中的任何一或多者。舉例而言,可整合平台702與內容服務裝置730,或可整合平台702與內容傳送裝置740,或(例如)可整合平台702、內容服務裝置730與內容傳送裝置740。在各種實施例中,平台702及顯示器720可為一體式單元。舉例而言,可整合顯示器720與內容服務裝置730,或可整合顯示器720與內容傳送裝置740。此等實例並不意謂限制實施例。
在各種實施例中,系統700可實施為無線系統、有線系統或兩者之組合。當實施為無線系統時,系統700可包括適於經由無線共用媒體進行通訊的組件及介面,諸如一或多個天線、傳輸器、接收器、收發器、放大器、濾波器、控制邏輯等等。無線共用媒體之實例可包括無線頻譜之部分,諸如,RF頻譜等等。當實施為有線系統時,系統700可包括適於經由有線通訊媒體進行通訊的組件及介面,諸如輸入/輸出(I/O)配接器、用以將I/O配接器與對應有線通訊媒體連接的實體連接器、網路介面卡(NIC)、光碟控制器、視訊控制器、音訊控制器等等。有線通訊媒體之實例可包括電線、纜線、金屬導線、印刷電路板(PCB)、底板、開關網狀架構、半導體材料、雙絞線、同軸纜線、光纖等等。
平台702可建立一或多個邏輯或實體頻道以傳達資訊。資訊可包括媒體資訊及控制資訊。媒體資訊可指表示意謂用於使用者之內容的任何資料。內容之實例可包括(例如)來自語音會話、視訊會議、串流視訊、電子郵件(「email」)訊息、語音郵件訊息、文數字符號、圖形、影像、視訊、文本等等的資料。來自語音會話之資料可為(例如)話語資訊、靜默週期、背景雜訊、舒適雜訊、音調等等。控制資訊可指表示意謂用於自動化系統之命令、指令或控制字的任何資料。舉例而言,控制資訊可用於將媒體資訊導引通過系統,或指示節點以預定方式處理媒體資訊。然而,實施例並不限於圖4中所展示或描述之元件或上下文
中。
如上文所描述,系統700可以變化之實體型式或外觀尺寸體現。圖5說明可體現系統700的較小外觀尺寸裝置800之實施例。在實施例中,舉例而言,裝置800可實施為具有無線能力之行動計算裝置。行動計算裝置可指具有處理系統及行動電源或電源供應器(諸如,一或多個電池)的任何裝置。
如上文所描述,行動計算裝置之實例可包括個人電腦(PC)、膝上型電腦、超膝上型電腦、平板電腦、觸控板、攜帶型電腦、手持型電腦、掌上型電腦、個人數位助理(PDA)、蜂巢式電話、組合蜂巢式電話/PDA、電視、智慧型裝置(例如,智慧型手機、智慧型平板電腦或智慧型電視)、行動網際網路裝置(MID)、訊息傳遞裝置、資料通訊裝置等等。
行動計算裝置之實例亦可包括經配置以由個人佩戴之電腦,諸如,腕式電腦、手指式電腦、環式電腦、鏡片式電腦、帶夾式電腦、臂帶式電腦、鞋式電腦、服裝式電腦及其他可佩帶式電腦。在實施例中,舉例而言,行動計算裝置可實施為能夠執行電腦應用程式,以及語音通訊及/或資料通訊之智慧型手機。儘管作為實例,可藉由實施為智慧型手機之行動計算裝置描述一些實施例,但可瞭解,亦可使用其他無線行動計算裝置實施其他實施例。實施例並不限於此上下文中。
如圖5中所展示,裝置800可包含外殼802、顯示
器804、輸入/輸出(I/O)裝置806及天線808。裝置800亦可包含巡覽特徵812。顯示器804可包含用於顯示適合於行動計算裝置之資訊的任何合適顯示單元。I/O裝置806可包含用於將資訊鍵入至行動計算裝置的任何合適I/O裝置。用於I/O裝置806之實例可包括文數字鍵盤、數字小鍵盤、觸控板、輸入鍵、按鈕、開關、搖臂開關、麥克風、揚聲器、語音辨識裝置及軟體等等。亦可藉助於麥克風將資訊鍵入至裝置800。可由語音辨識裝置數位化此資訊。實施例並不限於此上下文中。
額外註釋及實例:
實例1可包括一種用以實施一圖形快取階層之系統,其包含:用以呈現視覺內容之一顯示器;耦接至一或多個主機處理器及一系統記憶體之一系統快取記憶體;耦接至該系統快取記憶體之一圖形介面;及耦接至該圖形介面之一圖形處理器。該圖形處理器可包括:用以執行與該視覺內容相關聯之多個工作項的一實體分散式運算薄片之集合;及一快取網狀架構,其用以橫跨該圖形處理器、該系統記憶體及該一或多個主機處理器維持與該多個工作項相關聯之一或多個記憶體線的一同調性。該快取網狀架構可包括:多個一階(L1)快取記憶體,各L1快取記憶體專用於一運算薄片之一執行區塊;一實體分散式共用快取結構,其中橫跨該多個L1快取記憶體及該共用快取結構維持該一或多個記憶體線之該同調性;及用以追蹤該一或多個記憶體線之多個縱橫式節點,各縱橫式節點專用於一運算
薄片。該多個縱橫式節點可進一步經由該圖形介面將來源於該一或多個主機處理器之一或多個窺探請求分散至該共用快取結構及該多個L1快取記憶體、自該共用快取結構及該多個L1快取記憶體收集一或多個窺探結果並將該一或多個窺探結果傳達至該系統快取記憶體。
實例2可包括實例1之該系統,其中該共用快取結構包括多個獨立二階(L2)快取記憶體,各L2快取記憶體專用於一運算薄片。
實例3可包括實例1之該系統,其中該共用快取結構包括具有多個記憶體組之一二階(L2)快取記憶體,且其中該共用快取結構橫跨該多個記憶體組雜湊該一或多個記憶體線中之至少一者。
實例4可包括實例1至3中之任一者的該系統,其中該快取網狀架構使用一經修改、獨佔、共用、無效(MESI)協定以維持該一或多個記憶體線之該同調性。
實例5可包括一種圖形處理器,其包含:用以執行多個工作項之一實體分散式運算薄片之集合;及一快取網狀架構,其用以橫跨該圖形處理器、一系統記憶體及一或多個主機處理器維持與該多個工作項相關聯之一或多個記憶體線的一同調性。
實例6可包括實例5之該圖形處理器,其中該快取網狀架構包括:多個一階(L1)快取記憶體,各L1快取記憶體專用於一運算薄片之一執行區塊;一實體分散式共用快取結構,其中橫跨該多個L1快取記憶體及該共用快取結構
維持該一或多個記憶體線之該同調性;及用以追蹤該一或多個記憶體線之多個縱橫式節點,各縱橫式節點專用於一運算薄片。
實例7可包括實例6之該圖形處理器,其中該共用快取結構包括多個獨立二階(L2)快取記憶體,各L2快取記憶體專用於一運算薄片。
實例8可包括實例6之該圖形處理器,其中該共用快取結構包括具有多個記憶體組之一二階(L2)快取記憶體,且其中該共用快取結構橫跨該多個記憶體組雜湊該一或多個記憶體線中之至少一者。
實例9可包括實例6之該圖形處理器,其中該多個縱橫式節點將來源於耦接至該一或多個主機處理器之一系統快取記憶體的一或多個窺探請求分散至該共用快取結構及該多個L1快取記憶體。
實例10可包括實例9之該圖形處理器,其中該多個縱橫式節點自該共用快取結構及該多個L1快取記憶體收集一或多個窺探結果並將該一或多個窺探結果傳達至耦接至該一或多個主機處理器之一系統快取記憶體。
實例11可包括實例5至10中之任一者的該圖形處理器,其中該快取網狀架構使用一經修改、獨佔、共用、無效(MESI)協定以維持該一或多個記憶體線之該同調性。
實例12可包括一種用以實施一圖形快取階層之系統,其包含用以呈現視覺內容之一顯示器及一圖形處理器,該圖形處理器包括:用以執行與該視覺內容相關聯之
多個工作項的一實體分散式運算薄片之集合;及一快取網狀架構,其用以橫跨該圖形處理器、一系統記憶體及一或多個主機處理器維持與該多個工作項相關聯之一或多個記憶體線的一同調性。
實例13可包括實例12之該系統,其中該快取網狀架構包括:多個一階(L1)快取記憶體,各L1快取記憶體專用於一運算薄片之一執行區塊;一實體分散式共用快取結構,其中橫跨該多個L1快取記憶體及該共用快取結構維持該一或多個記憶體線之該同調性;及用以追蹤該一或多個記憶體線之多個縱橫式節點,各縱橫式節點專用於一運算薄片。
實例14可包括實例13之該系統,其中該共用快取結構包括多個獨立二階(L2)快取記憶體,各L2快取記憶體專用於一運算薄片。
實例15可包括實例13之該系統,其中該共用快取結構包括具有多個記憶體組之一二階(L2)快取記憶體,且其中該共用快取結構橫跨該多個記憶體組雜湊該一或多個記憶體線中之至少一者。
實例16可包括實例13之該系統,其中該多個縱橫式節點將來源於耦接至該一或多個主機處理器之一系統快取記憶體的一或多個窺探請求分散至該共用快取結構及該多個L1快取記憶體。
實例17可包括實例16之該系統,其進一步包括耦接至該一或多個主機處理器及該系統記憶體之一系統快取
記憶體,及耦接至該系統快取記憶體之一圖形介面,其中該多個縱橫式節點自該共用快取結構及該多個L1快取記憶體收集一或多個窺探結果並經由該圖形介面將該一或多個窺探結果傳達至該系統快取記憶體。
實例18可包括實例12至17中之任一者的該系統,其中該快取網狀架構使用一經修改、獨佔、共用、無效(MESI)協定以維持該一或多個記憶體線之該同調性。
實例19可包括一種操作一圖形處理器之方法,其包含:由一實體分散式運算薄片之集合執行多個工作項;及由一快取網狀架構橫跨該圖形處理器、一系統記憶體及一或多個主機處理器維持與該多個工作項相關聯之一或多個記憶體線的一同調性。
實例20可包括實例19之該方法,其進一步包括由多個縱橫式節點追蹤該一或多個記憶體線,其中橫跨多個一階(L1)快取記憶體及一實體分散式快取結構維持該一或多個記憶體線之該同調性,各L1快取記憶體專用於一運算薄片之一執行區塊且各縱橫式節點專用於一運算薄片。
實例21可包括實例20之該方法,其中該共用快取結構使用多個獨立二階(L2)快取記憶體以追蹤該一或多個記憶體線,各L2快取記憶體專用於一運算薄片。
實例22可包括實例20之該方法,其進一步包括橫跨一二階(L2)快取記憶體之多個記憶體組雜湊該一或多個記憶體線中之至少一者。
實例23可包括實例20之該方法,其進一步包括由
該多個縱橫式節點將來源於耦接至該一或多個主機處理器之一系統快取記憶體的一或多個窺探請求分散至該共用快取結構及該多個L1快取記憶體。
實例24可包括實例23之該方法,其進一步包括由該多個縱橫式節點自該共用快取結構及該多個L1快取記憶體收集一或多個窺探結果並由該多個縱橫式節點將該一或多個窺探結果傳達至耦接至該一或多個主機處理器之一系統快取記憶體。
實例25可包括實例19至24中之任一者的該方法,其進一步包括由該快取網狀架構使用一經修改、獨佔、共用、無效(MESI)協定以維持該一或多個記憶體線之該同調性。
實例26可包括一種用以實施一圖形快取階層之系統,其包含用於由一實體分散式運算薄片之集合執行多個工作項之構件;及用於由一快取網狀架構橫跨該圖形處理器、一系統記憶體及一或多個主機處理器維持與該多個工作項相關聯之一或多個記憶體線的一同調性之構件。
實例27可包括實例26之該系統,其進一步包括用於由多個縱橫式節點追蹤該一或多個記憶體線之構件,其中橫跨多個一階(L1)快取記憶體及一實體分散式快取結構維持該一或多個記憶體線之該同調性,各L1快取記憶體專用於一運算薄片之一執行區塊且各縱橫式節點專用於一運算薄片。
實例28可包括實例27之該系統,其中該共用快取
結構使用多個獨立二階(L2)快取記憶體以追蹤該一或多個記憶體線,各L2快取記憶體專用於一運算薄片。
實例29可包括實例27之該系統,其進一步包括用於橫跨一二階(L2)快取記憶體之多個記憶體組雜湊該一或多個記憶體線中之至少一者的構件。
實例30可包括實例27之該系統,其進一步包括用於由該多個縱橫式節點將來源於耦接至該一或多個主機處理器之一系統快取記憶體的一或多個窺探請求分散至該共用快取結構及該多個L1快取記憶體的構件。
實例31可包括實例30之該系統,其進一步包括用於由該多個縱橫式節點自該共用快取結構及該多個L1快取記憶體收集一或多個窺探結果之構件,及用於由該多個縱橫式節點將該一或多個窺探結果傳達至耦接至該一或多個主機處理器之一系統快取記憶體的構件。
實例32可包括實例26至31中之任一者的該系統,其進一步包括用於由該快取網狀架構使用一經修改、獨佔、共用、無效(MESI)協定以維持該一或多個記憶體線之該同調性的構件。
因此,技術可在整合式及附接式GPU兩者中在不同系統組件之間達成同調之記憶體網狀架構,其中主機處理器之內部快取記憶體及圖形處理器彼此可見。網狀架構可提供在無需依賴諸如障壁、記憶體防護及無序原子作業之粗糙粒度級解決方案的情況下維持GPU上之工作項與工作組之間的順序一致性之連鎖硬體解決方案。此外,網狀
架構可在並不帶來硬體排清及軟體堆疊呼叫之負面效能影響的情況下確保記憶體一致性。並不依賴於專門軟體堆疊程式設計亦可使系統為更寬範圍之平台及使用情境的可行替代方案。
可使用硬體元件、軟體元件或兩者之組合來實施各種實施例。硬體元件之實例可包括處理器、微處理器、電路、電路元件(例如,電晶體、電阻器、電容器、電感器等等)、積體電路、特殊應用積體電路(ASIC)、可規劃邏輯裝置(PLD)、數位信號處理器(DSP)、場可規劃閘陣列(FPGA)、邏輯閘、暫存器、半導體裝置、晶片、微晶片、晶片組等等。軟體之實例可包括軟體組件、程式、應用程式、電腦程式、應用程式、系統程式、機器程式、作業系統軟體、中間軟體、韌體、軟體模組、常式、次常式、函式、方法、程序、軟體介面、應用程式介面(API)、指令集、計算程式碼、電腦程式碼、碼段、電腦碼段、字、值、符號或其任何組合。判定是否使用硬體元件及/或軟體元件來實施實施例可根據任何數目個因素而發生變化,諸如,所要之計算速率、功率位準、耐熱性、處理循環預算、輸入資料速率、輸出資料速率、記憶體資源、資料匯流排速度及其他設計或效能約束。
可由儲存於機器可讀媒體上之表示處理器內之各種邏輯的代表性指令來實施至少一個實施例之一或多個態樣,當由機器讀取該等指令時,其導致機器製造邏輯以執行本文中所描述之技術。稱為「IP核心」之此等表示可
儲存於有形機器可讀媒體上,並將其供應至各種消費者或製造設備,以載入至實際上製造邏輯或處理器之製造機器中。
實施例適合於供所有類型之半導體積體電路(「IC」)晶片使用。此等IC晶片之實例包括(但不限於)處理器、控制器、晶片組組件、可規劃邏輯陣列(PLA)、記憶體晶片、網路晶片及其類似者。另外,在該等圖式中之一些中,藉由線表示信號導體線。一些線可係不同的以指示較多組份之信號路徑;可具有編號標記以指示數個組份之信號路徑;及/或在一或多個末端處具有箭頭以指示最初資訊流動方向。然而,不應以限制性方式解釋此情況。實情為,可結合一或多個例示性實施例使用此等添加之細節,以促進對電路之更容易理解。無論是否具有額外資訊,任何表示之信號線可實際上包含可在多個方向上行進,且可藉由任何合適類型之信號方案實施的一或多個信號,例如,藉由差分對、光纖線及/或單端線實施的數位線或類比線。
實例大小/模型/值/範圍可已給出,但實施例並不限於前述各者。隨著製造技術(例如,光微影)隨時間推移變得成熟,預期可製造較小大小之裝置。另外,為簡單地說明及論述起見且以便不混淆實施例的某些態樣,諸圖內可展示或未展示至IC晶片及其他組件的熟知電源/接地連接。另外,為了避免混淆實施例,且亦鑒於關於此等方塊圖配置之實施的細節高度取決於實施例經實施所在的平台(亦即此等細節應良好地在熟習此項技術者之見識內)之事
實,配置可以方塊圖形式展示。在特定細節(例如,電路)經闡述以便描述實例實施例之處,熟習此項技術者應顯而易見可在無此等特定細節之情況下或在此等特定細節變化之情況下實踐實施例。因此,應將描述視為例示性而非限制性的。
可(例如)使用可儲存指令或指令集之機器或有形電腦可讀媒體或物品來實施一些實施例,若由機器執行該等指令或指令集,其可導致機器執行根據實施例的方法及/或操作。此機器可包括(例如)任何合適之處理平台、計算平台、計算裝置、處理裝置、計算系統、處理系統、電腦、處理器,或其類似者,且可使用硬體及/或軟體之任何合適組合來實施。機器可讀媒體或物品可包括(例如)任何合適類型之記憶體單元、記憶體裝置、記憶體物品、記憶體媒體、儲存裝置、儲存物品、儲存媒體及/或儲存單元,例如,記憶體、可卸除或不可卸除式媒體、可抹除或不可抹除式媒體、可寫入或可重寫入式媒體、數位或類比媒體、硬碟、軟性磁碟、緊密光碟唯讀記憶體(CD-ROM)、可記錄之緊密光碟(CD-R)、可重寫之緊密光碟(CD-RW)、光碟、磁性媒體、磁光媒體、可卸除式記憶卡或磁碟、各種類型之數位化通用光碟(DVD)、磁帶、晶匣或其類似者。指令可包括使用任何合適之高階、低階、物件導向式、視覺、經編譯及/或經解譯程式設計語言而實施的任何合適類型之程式碼,諸如原始程式碼、經編譯程式碼、經解譯程式碼、可執行碼、靜態程式碼、動態程式碼、經加密程式碼
及其類似者。
除非另外特定陳述,否則可瞭解,諸如「處理」、「計算(computing)」、「計算(calculating)」、「判定」或其類似者之術語係指電腦或計算系統,或類似電子計算裝置的動作及/或程序,該電子計算裝置將表示為計算系統之暫存器及/或記憶體內之物理量(例如,電子)的資料操縱及/或變換成類似地表示為計算系統之記憶體、暫存器,或其他此等資訊儲存、傳輸或顯示裝置內之物理量的其他資料。實施例並不限於此上下文中。
術語「耦接」可在本文中用於指所討論組件之間的任何類型之直接或間接關係,且可適用於電氣、機械、流體、光學、電磁、機電或其他連接。另外,除非另外指示,否則術語「第一」、「第二」等可在本文中僅用於促進論述,且並不攜有特定時間或時序意義。
熟習此項技術者自前述描述將瞭解,實施例之廣泛技術可以多種形式來實施。因此,雖然已結合實施例之特定實例描述此實施例,但實施例之真實範疇不應如此受限,此係由於在研究圖式、說明書及以下申請專利範圍之後熟習此項技術者將顯而易見其他修改。
10‧‧‧計算架構
12‧‧‧系統快取記憶體
14、14a至14c‧‧‧主機處理器
16、16a至16c‧‧‧專用快取記憶體
18‧‧‧系統記憶體
20‧‧‧圖形處理器
22‧‧‧圖形介面
24、24a至24d‧‧‧運算薄片
32‧‧‧縱橫式節點
Claims (25)
- 一種系統,其包含:一顯示器,其用以呈現視覺內容;一系統快取記憶體,其耦接至一或多個主機處理器及一系統記憶體;一圖形介面,其耦接至該系統快取記憶體;以及一圖形處理器,其耦接至該圖形介面,該圖形處理器包括:運算薄片(compute slices)之一實體分散式集合,其用以執行與該視覺內容相關聯之多個工作項,以及一快取網狀架構,其用以橫跨該圖形處理器、該系統記憶體及該一或多個主機處理器而維持與該多個工作項相關聯之一或多個記憶體線的一同調性,其中該快取網狀架構包括,多個一階(L1)快取記憶體,各L1快取記憶體係專用於一運算薄片之一執行區塊,實體分散式之一共用快取結構,其中該一或多個記憶體線之該同調性係要橫跨該多個L1快取記憶體及該共用快取結構而被維持,以及多個縱橫式節點,其用以追蹤該一或多個記憶體線,各縱橫式節點係專用於一運算薄 片,該多個縱橫式節點進一步用以經由該圖形介面將源自於該系統快取記憶體之一或多個窺探請求分散至該共用快取結構及該多個L1快取記憶體,自該共用快取結構及該多個L1快取記憶體收集一或多個窺探結果,並將該一或多個窺探結果傳達至該系統快取記憶體。
- 如請求項1之系統,其中該共用快取結構包括多個獨立二階(L2)快取記憶體,各L2快取記憶體係專用於一運算薄片。
- 如請求項1之系統,其中該共用快取結構包括具有多個記憶體組(banks)之一二階(L2)快取記憶體,且其中該共用快取結構係用以橫跨該多個記憶體組而雜湊該一或多個記憶體線中的至少一者。
- 如請求項1之系統,其中該快取網狀架構係用以使用一經修改、獨佔、共用、無效(MESI)協定來維持該一或多個記憶體線的該同調性。
- 一種圖形處理器,其包含:運算薄片之一實體分散式集合,其用以執行多個工作項;以及一快取網狀架構,其用以橫跨該圖形處理器、一系統記憶體及一或多個主機處理器而維持與該多個工作項相關聯之一或多個記憶體線的一同調性。
- 如請求項5之圖形處理器,其中該快取網狀架構包括:多個一階(L1)快取記憶體,各L1快取記憶體係專用 於一運算薄片之一執行區塊;實體分散式之一共用快取結構,其中該一或多個記憶體線之該同調性係要橫跨該多個L1快取記憶體及該共用快取結構而被維持;以及多個縱橫式節點,其用以追蹤該一或多個記憶體線,各縱橫式節點係專用於一運算薄片。
- 如請求項6之圖形處理器,其中該共用快取結構包括多個獨立二階(L2)快取記憶體,各L2快取記憶體係專用於一運算薄片。
- 如請求項6之圖形處理器,其中該共用快取結構包括具有多個記憶體組之一二階(L2)快取記憶體,且其中該共用快取結構係用以橫跨該多個記憶體組而雜湊該一或多個記憶體線中的至少一者。
- 如請求項6之圖形處理器,其中該多個縱橫式節點係用以將源自於耦接至該一或多個主機處理器之一系統快取記憶體的一或多個窺探請求分散至該共用快取結構及該多個L1快取記憶體。
- 如請求項9之圖形處理器,其中該多個縱橫式節點係用以自該共用快取結構及該多個L1快取記憶體收集一或多個窺探結果,並將該一或多個窺探結果傳達至耦接至該一或多個主機處理器之一系統快取記憶體。
- 如請求項5之圖形處理器,其中該快取網狀架構係用以使用一經修改、獨佔、共用、無效(MESI)協定來維持該一或多個記憶體線之該同調性。
- 一種系統,其包含:一顯示器,其用以呈現視覺內容;以及一圖形處理器,其包括:運算薄片之一實體分散式集合,其用以執行與該視覺內容相關聯之多個工作項,以及一快取網狀架構,其用以橫跨該圖形處理器、一系統記憶體及一或多個主機處理器而維持與該多個工作項相關聯之一或多個記憶體線的一同調性。
- 如請求項12之系統,其中該快取網狀架構包括:多個一階(L1)快取記憶體,各L1快取記憶體係專用於一運算薄片之一執行區塊;實體分散式之一共用快取結構,其中該一或多個記憶體線之該同調性係要橫跨該多個L1快取記憶體及該共用快取結構而被維持;以及多個縱橫式節點,其用以追蹤該一或多個記憶體線,各縱橫式節點係專用於一運算薄片。
- 如請求項13之系統,其中該共用快取結構包括多個獨立二階(L2)快取記憶體,各L2快取記憶體係專用於一運算薄片。
- 如請求項13之系統,其中該共用快取結構包括具有多個記憶體組之一二階(L2)快取記憶體,且其中該共用快取結構係用以橫跨該多個記憶體組而雜湊該一或多個記憶體線中的至少一者。
- 如請求項13之系統,其中該多個縱橫式節點係用以將源自於耦接至該一或多個主機處理器之一系統快取記憶體的一或多個窺探請求分散至該共用快取結構及該多個L1快取記憶體。
- 如請求項16之系統,其進一步包括耦接至該一或多個主機處理器及該系統記憶體之一系統快取記憶體,及耦接至該系統快取記憶體之一圖形介面,其中該多個縱橫式節點係用以自該共用快取結構及該多個L1快取記憶體收集一或多個窺探結果,並經由該圖形介面將該一或多個窺探結果傳達至該系統快取記憶體。
- 如請求項12之系統,其中該快取網狀架構係用以使用一經修改、獨佔、共用、無效(MESI)協定來維持該一或多個記憶體線之該同調性。
- 一種操作一圖形處理器之方法,其包含:由運算薄片之一實體分散式集合執行多個工作項;以及由一快取網狀架構橫跨該圖形處理器、一系統記憶體及一或多個主機處理器而維持與該多個工作項相關聯之一或多個記憶體線的一同調性。
- 如請求項19之方法,其進一步包括由多個縱橫式節點追蹤該一或多個記憶體線,其中該一或多個記憶體線之該同調性係橫跨多個一階(L1)快取記憶體及實體分散式之一快取結構而被維持,各L1快取記憶體係專用於一運算薄片之一執行區塊且各縱橫式節點係專用於一運算 薄片。
- 如請求項20之方法,其中該共用快取結構使用多個獨立二階(L2)快取記憶體以追蹤該一或多個記憶體線,各L2快取記憶體係專用於一運算薄片。
- 如請求項20之方法,其進一步包括橫跨一二階(L2)快取記憶體之多個記憶體組而雜湊該一或多個記憶體線中的至少一者。
- 如請求項20之方法,其進一步包括由該多個縱橫式節點將源自於耦接至該一或多個主機處理器之一系統快取記憶體的一或多個窺探請求分散至該共用快取結構及該多個L1快取記憶體。
- 如請求項23之方法,其進一步包括:由該多個縱橫式節點自該共用快取結構及該多個L1快取記憶體收集一或多個窺探結果;以及由該多個縱橫式節點將該一或多個窺探結果傳達至耦接至該一或多個主機處理器之一系統快取記憶體。
- 如請求項19之方法,其進一步包括由該快取網狀架構使用一經修改、獨佔、共用、無效(MESI)協定來維持該一或多個記憶體線之該同調性。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/227,525 US9436972B2 (en) | 2014-03-27 | 2014-03-27 | System coherency in a distributed graphics processor hierarchy |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201539370A true TW201539370A (zh) | 2015-10-16 |
TWI556193B TWI556193B (zh) | 2016-11-01 |
Family
ID=54066881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104103891A TWI556193B (zh) | 2014-03-27 | 2015-02-05 | 在分散式圖形處理器階層中的系統同調性之技術 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9436972B2 (zh) |
KR (1) | KR101648758B1 (zh) |
CN (2) | CN104952033B (zh) |
DE (1) | DE102015002366A1 (zh) |
TW (1) | TWI556193B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9436972B2 (en) * | 2014-03-27 | 2016-09-06 | Intel Corporation | System coherency in a distributed graphics processor hierarchy |
US20160012160A1 (en) | 2014-07-11 | 2016-01-14 | Graphisoft | Building model user interface and method of use |
US10402072B2 (en) * | 2015-05-04 | 2019-09-03 | Graphisoft Se | Predictive background updating |
US9965211B2 (en) * | 2016-09-08 | 2018-05-08 | Cisco Technology, Inc. | Dynamic packet buffers with consolidation of low utilized memory banks |
US10747878B1 (en) * | 2016-10-07 | 2020-08-18 | Rightquestion, Llc | Rapid verification of executing processes |
WO2018183553A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking any-to-any data center network having multiplexed packet spraying within access node groups |
WO2018183526A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking, full-mesh data center network having optical permutors |
WO2018183542A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths |
US10395623B2 (en) | 2017-04-01 | 2019-08-27 | Intel Corporation | Handling surface level coherency without reliance on fencing |
US10891773B2 (en) * | 2017-04-07 | 2021-01-12 | Intel Corporation | Apparatus and method for efficient graphics virtualization |
US10565112B2 (en) | 2017-04-10 | 2020-02-18 | Fungible, Inc. | Relay consistent memory management in a multiple processor system |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
EP3625679A1 (en) | 2017-07-10 | 2020-03-25 | Fungible, Inc. | Data processing unit for stream processing |
US10659254B2 (en) * | 2017-07-10 | 2020-05-19 | Fungible, Inc. | Access node integrated circuit for data centers which includes a networking unit, a plurality of host units, processing clusters, a data network fabric, and a control network fabric |
WO2019068017A1 (en) | 2017-09-29 | 2019-04-04 | Fungible, Inc. | RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH |
US10904367B2 (en) | 2017-09-29 | 2021-01-26 | Fungible, Inc. | Network access node virtual fabrics configured dynamically over an underlay network |
WO2019104090A1 (en) | 2017-11-21 | 2019-05-31 | Fungible, Inc. | Work unit stack data structures in multiple core processor system for stream data processing |
WO2019152063A1 (en) | 2018-02-02 | 2019-08-08 | Fungible, Inc. | Efficient work unit processing in a multicore system |
US10929175B2 (en) | 2018-11-21 | 2021-02-23 | Fungible, Inc. | Service chaining hardware accelerators within a data stream processing integrated circuit |
EP3938893A1 (en) | 2019-03-15 | 2022-01-19 | INTEL Corporation | Systems and methods for cache optimization |
EP3938889A1 (en) | 2019-03-15 | 2022-01-19 | INTEL Corporation | Sparse optimizations for a matrix accelerator architecture |
US11954062B2 (en) | 2019-03-15 | 2024-04-09 | Intel Corporation | Dynamic memory reconfiguration |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
US11861761B2 (en) | 2019-11-15 | 2024-01-02 | Intel Corporation | Graphics processing unit processing and caching improvements |
US11455251B2 (en) * | 2020-11-11 | 2022-09-27 | Advanced Micro Devices, Inc. | Enhanced durability for systems on chip (SOCs) |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5053761A (en) * | 1989-06-16 | 1991-10-01 | International Business Machines | Method for smooth bitmap scrolling |
US6449699B2 (en) * | 1999-03-29 | 2002-09-10 | International Business Machines Corporation | Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems |
US6792551B2 (en) * | 2001-11-26 | 2004-09-14 | Intel Corporation | Method and apparatus for enabling a self suspend mode for a processor |
US6891543B2 (en) * | 2002-05-08 | 2005-05-10 | Intel Corporation | Method and system for optimally sharing memory between a host processor and graphics processor |
US7355601B2 (en) * | 2003-06-30 | 2008-04-08 | International Business Machines Corporation | System and method for transfer of data between processors using a locked set, head and tail pointers |
US7484044B2 (en) * | 2003-09-12 | 2009-01-27 | Intel Corporation | Method and apparatus for joint cache coherency states in multi-interface caches |
CN1320464C (zh) * | 2003-10-23 | 2007-06-06 | 英特尔公司 | 用于维持共享高速缓存一致性的方法和设备 |
US20070005907A1 (en) * | 2005-06-29 | 2007-01-04 | Intel Corporation | Reduction of snoop accesses |
US8928676B2 (en) | 2006-06-23 | 2015-01-06 | Nvidia Corporation | Method for parallel fine rasterization in a raster stage of a graphics pipeline |
US7581068B2 (en) | 2006-06-29 | 2009-08-25 | Intel Corporation | Exclusive ownership snoop filter |
US8527709B2 (en) | 2007-07-20 | 2013-09-03 | Intel Corporation | Technique for preserving cached information during a low power mode |
US9035959B2 (en) | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
US8762652B2 (en) | 2008-04-30 | 2014-06-24 | Freescale Semiconductor, Inc. | Cache coherency protocol in a data processing system |
US8286198B2 (en) | 2008-06-06 | 2012-10-09 | Apple Inc. | Application programming interfaces for data parallel computing on multiple processors |
WO2010028279A1 (en) * | 2008-09-05 | 2010-03-11 | Arcsight, Inc. | Storing log data efficiently while supporting querying |
US20100332762A1 (en) | 2009-06-30 | 2010-12-30 | Moga Adrian C | Directory cache allocation based on snoop response information |
US9639479B2 (en) * | 2009-09-23 | 2017-05-02 | Nvidia Corporation | Instructions for managing a parallel cache hierarchy |
US8375184B2 (en) | 2009-11-30 | 2013-02-12 | Intel Corporation | Mirroring data between redundant storage controllers of a storage system |
US8856456B2 (en) | 2011-06-09 | 2014-10-07 | Apple Inc. | Systems, methods, and devices for cache block coherence |
US9477600B2 (en) * | 2011-08-08 | 2016-10-25 | Arm Limited | Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode |
US20130042470A1 (en) * | 2011-08-15 | 2013-02-21 | Advanced Interconnections Corp. | Extraction tool |
US9330002B2 (en) * | 2011-10-31 | 2016-05-03 | Cavium, Inc. | Multi-core interconnect in a network processor |
US9274960B2 (en) * | 2012-03-20 | 2016-03-01 | Stefanos Kaxiras | System and method for simplifying cache coherence using multiple write policies |
CN102799352A (zh) * | 2012-06-18 | 2012-11-28 | 江苏智途科技有限公司 | 实现图形节点捕捉的方法 |
US9665958B2 (en) * | 2013-08-26 | 2017-05-30 | Nvidia Corporation | System, method, and computer program product for redistributing a multi-sample processing workload between threads |
US9436972B2 (en) * | 2014-03-27 | 2016-09-06 | Intel Corporation | System coherency in a distributed graphics processor hierarchy |
-
2014
- 2014-03-27 US US14/227,525 patent/US9436972B2/en active Active
-
2015
- 2015-02-05 TW TW104103891A patent/TWI556193B/zh not_active IP Right Cessation
- 2015-02-25 DE DE102015002366.7A patent/DE102015002366A1/de active Granted
- 2015-02-25 CN CN201510087785.5A patent/CN104952033B/zh active Active
- 2015-02-25 CN CN201811472947.7A patent/CN110109844B/zh active Active
- 2015-02-27 KR KR1020150028622A patent/KR101648758B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
CN104952033B (zh) | 2019-01-01 |
CN104952033A (zh) | 2015-09-30 |
CN110109844A (zh) | 2019-08-09 |
KR101648758B1 (ko) | 2016-08-17 |
TWI556193B (zh) | 2016-11-01 |
KR20150112784A (ko) | 2015-10-07 |
US9436972B2 (en) | 2016-09-06 |
CN110109844B (zh) | 2023-08-01 |
DE102015002366A1 (de) | 2015-10-01 |
US20150278984A1 (en) | 2015-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI556193B (zh) | 在分散式圖形處理器階層中的系統同調性之技術 | |
JP6746645B2 (ja) | 共有仮想メモリ | |
JP6478119B2 (ja) | コンピューティングデバイス、コンピューティングシステム、方法、データ処理システム、非一時的な機械可読媒体、およびプログラム | |
TWI559217B (zh) | 用於記憶體子系統之動態快取及記憶體分配技術 | |
TWI615807B (zh) | 用於記錄在輸入幾何物件粒度上的可視度測試之結果的方法、設備及系統 | |
TW201541404A (zh) | 動態再平衡圖型處理器資源的方法、裝置與系統 | |
JP2017526045A (ja) | ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム | |
JP2019057320A (ja) | 方法、コンピュータプログラム、コンピュータ可読記録媒体および装置 | |
JP6386099B2 (ja) | 圧縮支援のための方法、装置、コンピュータプログラム及び記憶媒体 | |
US9563561B2 (en) | Initiation of cache flushes and invalidations on graphics processors | |
JP2015072684A (ja) | ショートループアトミックアクセス | |
JP5968463B2 (ja) | データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング | |
TWI610178B (zh) | 共享函數多埠rom系統及裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |