TW201502789A - 資訊一致性維持系統與方法 - Google Patents
資訊一致性維持系統與方法 Download PDFInfo
- Publication number
- TW201502789A TW201502789A TW102146853A TW102146853A TW201502789A TW 201502789 A TW201502789 A TW 201502789A TW 102146853 A TW102146853 A TW 102146853A TW 102146853 A TW102146853 A TW 102146853A TW 201502789 A TW201502789 A TW 201502789A
- Authority
- TW
- Taiwan
- Prior art keywords
- storage
- cache
- class
- state
- information
- Prior art date
Links
Classifications
-
- 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/0815—Cache consistency protocols
-
- 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/0817—Cache consistency protocols using directory methods
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
Abstract
本發明提供一致性維持的系統與方法。該等系統與方法包括在不同的記憶體或儲存階級利用多種資訊狀態追蹤方法或協定。在一具體實施例中,一第一一致性維持方法(例如類似於一MESI協定等)可被實作在一儲存階級,而一第二一致性維持方法(例如類似於一MOESI協定等)可被實作在另一儲存階級。在一特定儲存階級或階層的資訊可由一組本地狀態指示與一組本質狀態指示來追蹤。該本質狀態指示可由一儲存層或階層目錄被「外部地」追蹤(例如在另一快取階級的一目錄中,在快取階級之間的一集線器中等)。一儲存階級可基於該等本地狀態指示來控制作業,而另一儲存階級可至少部份基於一本質狀態指示來控制作業。
Description
本發明關於資訊儲存。特定而言,本發明關於一種追蹤快取作業之系統與方法。
電子系統與電路對於現今社會的進步有著顯著貢獻,並用於一些應用中來達成有利的結果。許多種電子技術,例如數位電腦、計算機、音訊裝置、視訊設備與電話系統,在大多數商業、科學、教育與娛樂的領域中,已經對於分析與傳遞資料達到了增進生產力與降低成本的功效。這些活動通常牽涉到資訊儲存。該等電子裝置執行儲存作業的方式對於效能與最終結果有著重大影響。但是,傳統對於資訊儲存的嘗試具有許多限制,且非常複雜與繁複。
許多傳統的記憶體方式嘗試利用記憶體儲存的階級或階層,其中包括快取、系統記憶體與大量記憶體,而對於多個階級的利用很重要地是維持資訊一致性。對於快取一致性協定有許多傳統的嘗試。一些常見的快取一致性協定被組織成環繞簡單的狀態,其中具有快取線以及這些狀態之間的該等轉換。
在一傳統的MESI一致性協定中,快取線可為以下狀態其中之一:修改、專有、共用、或無效。在一修改狀態中,該線為一特定快取所專有,且自從其被提取之後已經被修改。在收回時,該快取線需要被寫回到一原始位置(例如DRAM)。在一專有狀態中,該等快取線為在此狀態中具有它們之該快取所專有,然後可被修改。因為並無修改的資料,在收回時皆不需要被寫回。在一共用狀態中,該等快取線包含其它代理者可能具有的資料,且如果是,則其為相同的資料。因為並無修改的資料,在收回時皆不需要被寫回。在一無效狀態中,該快取線未包含有效資料。該線可視需要被重新分配。
亦有一種傳統的MOESI一致性協定。除了該等MESI狀態之外,該MOESI協定引進了該「擁有」狀態,其類似於共用狀態,除了該線在收回時必須寫回到該原始位置。當一條線在某個快取中被修改在另一代理者要求它成為共用時,即成為該擁有狀態。在一MESI系統中,該線將被寫回到援助儲存,並同時供應到要求它共用的該代理者,並由在該原始快取中該修改狀態轉換成共用狀態。在一MOESI系統中,該線未被寫回,其僅被供應到要求其共用的該代理者,但轉換成擁有,所以該原始代理者記得在本質上要將其寫回,雖然其不再被允許對其寫入,因為其(可能)與其它代理者共用。
每一傳統一致性協定通常相較於另一個一致性協定具有優勢與弱點,且使用一個一致性協定之傳統方法之整體效率受到限制。該MESI協定通常較簡單來實作,因為一代理者僅需要寫回一條線,如果其已經修改它時(如同在它在M狀態中所示)。如果一條線被修改,其亦可被寫
入,因為該條線被保證成為專用。在該MOESI協定中,如果該條線已經被修改時,一代理者必須寫回一條線,即使因為該條線現在係在該擁有狀態,而該條線已經不再能夠被寫入。因此,該MOESI協定包括區分一其需要被寫回的狀態(例如擁有等),即使對於在該狀態中的一條線無法接受新的寫入。兩種協定可有更多的變化。
該MOESI協定在某些狀況下可避免利用到如同該MESI協定一樣多的DRAM頻寬。例如,當兩個代理者進行通訊時,其中之一偶爾地寫入該資料,而另一者僅要求一更新的複本,該MOESI協定基本上包含較少的寫回,並比該MESI協定要消耗較少的DRAM頻寬。基本上在該MESI協定中,每一個這種對一更新複本的要求將造成該條線被寫回到DRAM。在該MOESI協定中,通常僅有該條線由已經修改它的一代理者的最終收回將會造成DRAM頻寬被利用。
本發明提供一致性維持的系統與方法。該等系統與方法包括在不同的記憶體或儲存階級利用多種資訊狀態追蹤方法或協定。在一具體實施例中,一第一一致性維持方法(例如類似於一MESI協定等)可被實作在一儲存階級,而一第二一致性維持方法(例如類似於一MOESI協定等)可被實作在另一儲存階級。在一特定儲存階級或階層的資訊可由一組本地狀態指示與一組本質狀態指示來追蹤。該本質狀態指示可由一儲存層或階層目錄被「外部地」追蹤(例如在另一快取階級的一目錄中,在快取階級之間的一集線器中)。一儲存階級可基於該等本地狀態指示來控制作業,而另一儲
存階級可至少部份基於該等本質狀態指示來控制作業。
在一具體實施例中,該系統包含:一第一階級儲存組件,其中一儲存狀態指示被外部地追蹤;及一第二階級儲存組件,用於自該第一階級儲存組件接收資訊,並至少部份基於關聯於該第一階級儲存組件的該資訊的儲存狀態來作用在該資訊上。在一種示例性實作中,該外部追蹤的資訊包括比第一階級目錄另外實際上所指示者(例如擁有相對於共用)要更多的資訊(例如更為詳細的資訊、精煉的資訊等)。該資訊狀態可為一快取線的狀態,而該快取線的儲存狀態可由該第二階級儲存組件來追蹤。該快取線的儲存狀態可由一一致性集線器來追蹤。該第一階級儲存組件可為一L2快取,而該第二階級儲存組件可為一L3快取。在該L2快取中的該快取線之儲存狀態可由該L3快取追蹤,或該快取線可由一一致性集線器來追蹤。該L2快取可考慮在一MESI狀態中的該快取線,且該L3實際上可追蹤那些線已經實際上寫回到援助儲存。在一具體實施例中,在自該L2快取收回一快取線時,該L3快取實際上在適當時傳遞該快取線到該援助儲存,而在不適當時不會傳遞該快取線。該L3可追蹤每一快取線的額外狀態,且其中該額外狀態指明一條線是否為髒的,且該L3目錄指明該條線要被寫回。
100‧‧‧記憶體架構
105,110,120,130,140,150‧‧‧儲存階級
111,121,131,141,151‧‧‧儲存組件
170‧‧‧集線器組件
200‧‧‧方法
210,220,230‧‧‧方塊
300‧‧‧記憶體架構
310‧‧‧處理組件
320‧‧‧第一階快取
321‧‧‧第一階級快取控制器
330‧‧‧第二階快取
331‧‧‧第二階級快取控制器
340‧‧‧第三階快取
341‧‧‧第三階級快取控制器
350‧‧‧主記憶體
351‧‧‧主記憶體控制器
370‧‧‧大量記憶體
400‧‧‧電腦系統
401‧‧‧中央處理單元
402‧‧‧主記憶體
404‧‧‧可移除式資料儲存裝置
407‧‧‧輸入裝置
408‧‧‧訊號通訊埠
420‧‧‧晶片組
421‧‧‧北橋
425‧‧‧南橋
440‧‧‧電腦系統
450‧‧‧圖形子系統
451‧‧‧圖形處理器
455‧‧‧記憶體管理單元
459‧‧‧圖框緩衝器
470‧‧‧顯示器
491,492,493,494,495,497‧‧‧通訊匯流排
該等附屬圖式被加入並形成本說明書的一部份,其做為示例來例示本發明之具體實施例,但非做為限制。在本說明書中所參照的該等圖面應可瞭解到其並未依比例繪製,如非另有特別註明。
圖1為根據本發明一具體實施例之一種示例性記憶體架構
的方塊圖。
圖2為根據本發明一具體實施例之一種示例性方法的流程圖。
圖3為根據本發明一具體實施例之一種示例性記憶體架構的方塊圖。
圖4為在其上可實作本發明之具體實施例的一種電腦系統之具體實施例的方塊圖。
現在將對本發明之較佳具體實施例進行詳細參照,其示例皆例示於該等附屬圖面當中。本發明將配合該等較佳具體實施例說明,將可瞭解到它們並非要限制本發明於這些具體實施例。相反地,本發明係要涵蓋選項、修正及同等者,其皆包括在由附屬申請專利範圍所定義之本發明的精神及範圍之內。再者,在以下本發明之詳細說明中,為了提供對於本發明之完整瞭解,提出有許多特定細節。但是,本技術專業人士將可瞭解到本發明可不利用這些特定細節來實施。在其它實例中,並未詳細說明熟知的方法、程序、組件及電路,藉以避免不必要地混淆本發明之態樣。
本發明提供的系統與方法能夠實施有效率的資訊儲存與追蹤作業。該等系統與方法包括在不同的記憶體或儲存階級利用多種資訊狀態追蹤方法或協定。儲存在一特定儲存階級或階層(例如L2、L3、主記憶體等)處的資訊可利用多個不同狀態指示來追蹤,而利用不同組合的狀態指示可達成在不同儲存或記憶體階級的不同一致性維持協定的實作。在一示例
性實作中,一第一一致性維持方法(例如類似於一MESI協定等)可被實作在一儲存階級,而一第二一致性維持方法(例如類似於一MOESI協定等)可被實作在另一儲存階級。
在一具體實施例中,在一特定儲存階級或階層的資訊可由一組本地狀態指示與一組本質狀態指示來追蹤。該本質狀態指示可由一儲存層或階層目錄被「外部地」追蹤(例如在另一快取階級的一目錄中,在快取階級之間的一集線器中等)。在一具體實施例中,該本地狀態指示能夠在一本地儲存階級處達到一較簡單的實作(例如MESI協定、簡化的控制器等),而該本質狀態指示能夠在另一儲存階級處達到一較高效能的實作(例如MEOSI協定、較佳的頻寬等)。這些本質狀態指示可關聯於在一特定階級中資訊的一更為完整的一致性狀態指示(例如乾淨共用、髒共用等),且該等本地狀態指示可關聯於在該特定階級中一權宜狀態指示(例如共用、修改等)。在以下段落的說明中提供該本質狀態指示外部追蹤與該本地狀態指示追蹤的額外資訊。
圖1為根據本發明一具體實施例之一種示例性記憶體架構100的方塊圖。在一具體實施例中,記憶體架構100包括一資訊狀態外部追蹤記憶體系統。記憶體架構100包括階級105、110、120、130、140與150。階級105、110、120、130、140與150為儲存階級。在一示例性實作中,儲存階級105可視為一處理階級(例如包括暫存器、正反器等),儲存階級110、120與130可視為一快取階級(例如包括L1快取、L2快取、L3快取等),儲存階級140可視為一援助儲存或主記憶體階級(例如RAM、DRAM等),及儲存階級150可視為大量儲存器(例如硬碟機、CD等)。該等儲存階級
105、110、120、130、140包括儲存組件111、121、131、141與151。在一具體實施例中,記憶體架構100包括選用的集線器組件170。
儲存在記憶體架構100的組件中的資訊可關聯於狀態指示。一狀態指示可包括在一儲存組件中資訊狀態的指示(例如共用、修改、髒等)。該狀態指示可利用來觸發或協調關聯於該資訊而要被執行的動作或處理(例如分配一儲存空間、寫回、不分配、不寫回等)。在一示例性實作中,在一儲存組件(例如快取、記憶體等)中的資訊係關聯於被外部追蹤的一本質狀態指示(例如擁有、乾淨、髒、修改等)。在該儲存組件中的資訊亦可關聯於由一本地目錄所追蹤的一本地狀態指示(例如共用、修改等)。
在一具體實施例中,儲存階級110包括儲存組件111,而關聯於儲存組件111的資訊之該本質狀態的一指示被外部追蹤到儲存組件111。關聯於儲存組件111的資訊之該本質狀態的一指示可由儲存階級120中的組件來追蹤。在一示例性實作中,關聯於儲存組件111的資訊之該本質狀態由一集線器追蹤(例如類似於集線器組件170等)。應瞭解到一資訊的本地狀態可由儲存組件111追蹤,並可不同於由儲存組件111外部追蹤的關聯於儲存組件111之資訊的該本質狀態。
系統100中的動作或作業可基於儲存狀態。在一具體實施例中,儲存組件111在多種本地狀態中寫回資訊到階級120。但是,該被寫回資訊的儲存空間基於被外部追蹤到儲存組件111的該本質狀態之指示來分配在儲存組件121中。在一具體實施例中,被外部追蹤到儲存組件111的一本質狀態可被利用來建立階級120的一本地儲存狀態,且資訊亦因此可由儲存階級120寫回到儲存階級130。在一示例性實作中,被追蹤成為在階
級110中本地性共用的資訊可在階級120外部地追蹤成擁有,並根據該擁有的狀態資訊被寫回到階級130。應瞭解到由一階級寫回到另一階級可在不同的時間發生(例如當其被分配在階級120中寫回,在自階級120收回時寫回等)。
圖2為根據本發明一具體實施例之一種示例性方法200的流程圖。
在方塊210,一本質儲存狀態指示與一本地儲存狀態指示被追蹤。在一具體實施例中,關聯於包括在一儲存階級中的儲存組件的資訊由該儲存階級本地狀態目錄被外部地追蹤。在一具體實施例中,該等儲存階級可為快取階級,而在一儲存組件中一快取線的一本地儲存狀態可由該儲存組件被追蹤成一種狀態(例如共用、修改等),且該快取線的該本質狀態可被外部追蹤為一類似狀態或另一狀態(例如擁有、髒等)。
在方塊220,在該一個階級儲存組件中的資訊係基於一本地儲存狀態指示而作用在該一個儲存階級處。在一具體實施例中,該一個階級儲存組件在複數儲存狀態中寫回資訊。在一示例性實作中,除了在一修改狀態中的資訊之外,在一共用狀態與專用狀態中的資訊亦可被寫回到在另一儲存階級中另一儲存組件。
在方塊230,在該其它儲存組件中收到的資訊至少部分基於該資訊的該本質儲存狀態進行作用。在一具體實施例中,該其它階級儲存組件接收來自該一個階級儲存組件的寫回,並作用在該資訊,其中包括基於其餘資訊的該本質儲存狀態來不理會無關的寫回,並針對其餘的資訊分配儲存空間。在一示例性實作中,該其它階級儲存組件至少部份基於一本
質狀態指示產生其本身的本地狀態指示,並基於其本身的本地狀態指示來作用在該資訊(例如轉送寫回到又另一個儲存階級等)。
在一具體實施例中,被外部追蹤的一儲存狀態指示包括與被內部追蹤的一儲存狀態指示所另外指示的為不同的資訊。在一種示例性實作中,該外部追蹤的資訊包括比第一階級目錄另外實際上所指示者(例如擁有相對於共用)要更多的資訊(例如更為詳細的資訊、精煉的資訊等)。該外部追蹤的資訊可包括藉由結合橫跨多個第一階級的該資訊並保存該等第一階級如何進入到該目前狀態的歷史所建立的資訊。一種習用的一單一第一階級方法基本上不能夠方便地追蹤此額外的資訊,因為它不知道該等其它第一階級做了什麼或它們已經完成什麼。一第一一致性維持方法(例如類似於MESI等)可實作在該第一階級儲存組件處,而被外部追蹤的該儲存狀態指示可相容於一第二一致性維持方法(例如類似於MOESI等),且該第二一致性維持方法被實作在該第二階級儲存組件處。
應瞭解到所提供的系統與方法可被立即實作在多種組態與環境中。在一儲存架構的一類似儲存階級中可有複數對等儲存組件。一本質狀態的追蹤可至少部份由一寫回寫入分配專用下一階級組件來實作。在不同儲存階級處可實作有不同種類的一致性協定。在一示例性實作中,一第一協定可類似於一MESI一致性協定,除了在收回時在複數不同狀態(例如除了修改之外的共用與專用等)中被修改到寫回資訊,而該第二協定可類似於一MOESI一致性協定。該儲存組件可為一快取記憶體架構階級處一快取組件。
圖3為根據本發明一具體實施例之一種示例性記憶體架構
300的方塊圖。記憶體架構300包括處理組件310(例如暫存器、正反器等)、第一階(L1)快取320、第二階(L2)快取330、第三階(L3)快取340、主記憶體350與選用的大量記憶體370。處理組件310耦接於L1快取320,其耦接於L2,依此耦接於L3快取340。L3快取耦接於主記憶體350,其依此可被耦接於選用的大量記憶體370。在一具體實施例中,第一階快取320可包括一第一階快取控制器321,第二階快取330可包括一第二階快取控制器331,第三階快取340可包括一第三階快取控制器341。該等快取控制器可包括追蹤狀態指示的目錄。
系統300的該等組件可協同運作來實作多個儲存階級。在一具體實施例中,一L3快取包括一條線,如果其並未包含在一L2快取中。當一L2快取要求一條線時,該結果可為一命中或一錯失。如果該結果為在該L3快取中的命中,該條線被傳送到該L2快取,並在該L3快取中使其無效。如果該結果為在該L3快取中一錯失,該要求被傳送到記憶體,且該反應被傳送到該L2快取而不會分配在該L3快取中的一條線。在該L3快取中的線在自該L2快取收回時被分配。該L2快取在多種狀態(例如修改、共用、專用等)中寫回快取線,其進行未修改(例如唯讀等)資料的分配,否則其不會分配在該L3快取中,且必須自記憶體重新要求。
在一具體實施例中,當該L3快取自該L2快取接收一收回時(例如其中包括關於該條線是否被該L2快取修改的資訊),該L3快取分配該條線。該L3快取可以取代已經在該L3快取中的一條線。該經取代的線在適當時(例如如果被修改,擁有等)可被收回到另一記憶體階級(例如DRAM、援助儲存等)。
在一示例性實作中,外部追蹤該本質狀態可進行一專用財產的保存。在一具體實施例中,該L3快取可追蹤在多個L2快取中該等線的狀態。在一示例性實作中,如果一條線為數個L2快取所共用,則除了來自一L2快取的最後收回之外所有的收回皆被該L3快取所忽略。如此能夠避免該L3快取與該等其餘L2快取之間該條線的複製,其中該條線當如果該等L2快取其中每一者收回該「共用」的線時在該L3快取中的一條線被分配時即會發生複製。若不具有本系統複製避免特徵,一複製另可能導致該L3快取相對於該等L2快取成為不再專用,且亦有效地減少該L3快取的容量。
在一具體實施例中,該L3具有目錄可追蹤在該等多個L2快取中該條線的狀態,而該L3快取實作一擁有狀態(例如類似於MOESI協定等),其不會修改該等L2快取(例如MESI協定等)超越該修改而使得該等L2快取收回乾淨線到該L3快取用於在該L3快取中的分配。在該L3快取中該等L2快取之該等複製目錄能夠追蹤該條線自從其最後自DRAM提取時是否已經被該等快取中任何一者所修改,即使該等L2當中有數個可能將該條線置於該共用狀態中,該等外部複製目錄能夠追蹤該條線已經被修改,且當收回時(自該L3)其需要被寫回到其原始位置,而非安靜地被失效。
在一具體實施例中,該L2快取的該等外部複製目錄能夠區分一「乾淨共用」狀態,其可指明該條線在當收回時不需要被寫回到DRAM,以及一「髒共用」狀態,其指明在某個時間點自從其自DRAM提取之後已經被修改,因此最終需要被寫回。當該最後L2快取寫回一「髒共用」線到該L3時,該L3能夠將其分配在該L3中的該修改狀態,使得其自
該L3收回時會被寫回到DRAM,即使係收回該條線的該實際L2快取認為其僅為共用(且乾淨)。但是,如果當該最後L2寫回一「乾淨共用」線到該L3時,該L3能夠將其分配在該共用狀態(或未修改狀態),代表如果自該L3收回時其不需要被寫回到DRAM。
在一具體實施例中,DRAM頻寬的節省類似於實作在該L2階級的一MOESI協定,其不會顯著地改變該等L2快取,如同利用一MESI協定所牽涉到的情況。在一示例性實作中,一L2快取類似於一MESI協定,除了在收回時於多種狀態下對寫回或寫出線的一精緻修改,所以它們可視需要被分配在該L3中。當這些線為共用時,該等L2快取該等L3快取之間可有額外的頻寬,因為實際上僅有自一L2快取的最後收回需要傳送該條線到該L3快取。但是,因為大多數的線僅存在於僅一個代理者中,該額外的頻寬(例如對於該L3快取而非對於DRAM等)基本上較小,且當前進到DRAM時在晶粒上通常比在晶粒片外會具有非常多可使用的頻寬。因此,重要地是相較於習用的方法可保留或降低DRAM頻寬的消耗,即使晶粒上頻寬並未被保留或降低,因為晶粒上頻寬通常更可利用或有許多可用。即使有額外的頻寬消耗,該等L2快取與控制器可以保持相對地簡單(例如實作一相對簡單的協定、實作一類似於MESI的協定等)。應瞭解到當許多的詳細說明係針對L2與L3快取時,該方法可被利用與實作在多種組態中而提供多種不同的儲存組態。在一示例性實作中,該對等快取或較低階的快取可為一L1快取,而該寫回寫入分配專用下一階級快取可為一L2快取。
應瞭解到參照到一第一階級儲存或快取及一第二階級儲存或快取可被利用來指明該等階級係相對於彼此為不同,而非在一階層架構
中一絕對位置。例如,在記憶體架構300中,L1快取可為相對於一第二階L2快取的一第一階級,而L2快取可為相對於一第二階L3快取的一第一階級。在一具體實施例中,一第一階級儲存組件可為一L2快取,而該第二階級儲存組件可為一L3快取。在該L2快取中該快取線的儲存狀態可由多種組件追蹤。在該L2快取中該快取線的儲存狀態可由該L3快取追蹤。在L2中該快取線的儲存狀態可由一一致性集線器來追蹤。
許多該等具體實施例利用在一單一晶粒或晶片上的快取與追蹤來做說明,但是應瞭解到本系統與方法可利用在多種組態中。在一具體實施例中,該等系統與方法可以彈性地擴充。在一示例性實作中,組件可被分散在不同的晶片上。外部追蹤儲存狀態的一一致性集線器可在不同的晶粒或晶片上。在不同晶粒上可有多個CPU,其每一者具有不同的L2,並使用一共用記憶體做為援助儲存。該等L2的該等快取線狀態之外部追蹤可在多種組件中(例如在一網路上一晶粒上一一致性集線器、一組件或L3不需要與一L2在相同晶粒上等等)。
圖4為在其上可實作本發明之具體實施例的一種電腦系統400之具體實施例的方塊圖。電腦系統400包括中央處理單元401、主記憶體402(例如隨機存取記憶體)、具有北橋421與南橋425的晶片組420、可移除式資料儲存裝置404、輸入裝置407、訊號通訊埠408、與耦接於一顯示器470的圖形子系統450。電腦系統440包括數個通訊式耦接電腦系統400的該等組件之匯流排。通訊匯流排491(例如一前側匯流排)耦接晶片組420的北橋421到中央處理單元401。通訊匯流排492(例如一主記憶體匯流排)耦接晶片組420的北橋421到主記憶體402。通訊匯流排493(例如先進
圖形埠介面)耦接晶片組420的北橋到圖形子系統450。通訊匯流排494-497(例如一PCI匯流排)分別耦接晶片組420的南橋425到可移除式資料儲存裝置404、輸入裝置407、訊號通訊埠408。圖形子系統450包括圖形處理器451、記憶體管理單元455與圖框緩衝器459。
電腦系統400的該等組件協同運作來執行多種處理工作,並便於有效率的記憶體存取。通訊匯流排491、492、493、494、495與497傳遞資訊。中央處理器401處理資訊。主記憶體402儲存中央處理器401的資訊與指令。可移除式資料儲存裝置404亦儲存資訊與指令(例如做為一大型資訊儲存器)。輸入裝置407提供一種輸入資訊及/或指向到或反白在顯示器470上的資訊之機制。訊號通訊埠408提供與外部裝置的一通訊介面(例如與一網路的介面)。顯示裝置470根據儲存在圖框緩衝器459中的資料來顯示資訊。圖形處理器451處理來自中央處理器401的圖形命令,並提供所得到的資料到圖框緩衝器459做儲存及由顯示監視器470取得。記憶體管理單元455處理圖形處理器451與圖框緩衝器459之間的該等記憶體存取要求。應瞭解到類似的記憶體管理單元可被實作來進行對於電腦系統400的其它記憶體組件之有效率且獨立的存取要求,其中包括主記憶體402與大量資料儲存器404。
可瞭解到本發明可實作在多種具體實施例中。在一示例性實作中,本發明可應用在用於提供多種圖形應用的處理系統中,包括視訊遊戲。例如,本發明可利用在遊戲主機、個人電腦、個人數位助理、行動電話、或任何數目之用於實作一視訊遊戲的平台。亦可瞭解到對於視訊遊戲應用實作之參照為示例性,本發明並不限於這些實作。
再次地,應瞭解到當許多的詳細說明係針對L2與L3快取時,該方法可被利用與實作在多種組態中而提供多種不同的儲存組態。在一具體實施例中,僅在該L3會引進複雜度,其可為該系統的一種選用組件。
該詳細說明之部份係以一種方法的型式來呈現及討論。雖然其步驟及其順序係以描述此方法之作業在此處的圖面中做揭示,這些步驟及順序僅為範例性。具體實施例可良好地適用於執行多種其它步驟及與此處圖面之流程圖中所述之該等步驟之變化,且可以與此處所述及說明的為不同順序。
該詳細說明的一些部份係以程序、步驟、邏輯方塊、處理,以及其它可在電腦記憶體內執行對於資料位元之作業的符號表示。這些說明及表示為在資料處理技術中那些專業人士所使用的手段來最佳地傳遞他們工作的實質內容到本技術中其他專業人士。概言之,在此處的程序、電腦可執行步驟、邏輯方塊及程序等,其應視為可達到所想要結果之步驟或指令的一自我符合的順序。該等步驟包括實際數量的實際操縱。通常但非必要,這些數量可採取電子、磁性、光學或量子訊號之型式,其能夠被儲存、轉換、組合、比較,及另可在一電腦系統中操縱。其已隨時間證明了主要為了慣常用法的理由,可方便地稱這些訊號為位元、數值、元件、符號、字元、術語、數目或類似者。
但是應要注意到所有這些及類似術語係要關聯於該等適當實體數量,並僅為應用到這些數量的便利標記。除非除了在以下討論中可瞭解者之外特定地陳述,其將可瞭解到在整個討論中利用的術語,例如「處理」、「運算」、「計算」、「決定」、「顯示」、「存取」、「寫入」、「包括」、「儲
存」、「傳送」、「移動」、「關聯」、「辨識」或類似者,皆代表一電腦系統或類似的電子運算裝置之作業與處理,其可操縱及轉換表示成該電腦系統之暫存器及記憶體內實體(電子)數量的資料成為類似地表示成在電腦系統記憶體、或暫存器、或其它像是資訊儲存器、傳輸或顯示裝置內的實體數量之其它資料。
一些具體實施例可在由一或多部電腦或其它裝置所執行之電腦可執行指令(例如程式模組)的一般性內文中描述。概言之,程式模組包括例式、程式、物件、組件、資料結構等,其可執行特殊工作或實施特定的摘要資料型態。基本上,該等程式模組的功能在多種具體實施例中可視需要組合或分散。
前述本發明之特定具體實施例的說明係為了例示及說明的目的提出。它們並非要窮盡或限制本發明於所揭示的精確型式,在以上的教示之下亦明顯地有可能有許多的修正及變化。該等具體實施例係被選擇及描述來最佳地解釋本發明及其實際應用的原理,藉此使得本技術中其它專業人士可在多種具體實施例及多種修正中最佳地利用本發明,使其可適用於所考慮的特定用途。本發明之範圍係要由此處之附屬之申請專利範圍及其同等者來定義。
200‧‧‧方法
210,220,230‧‧‧方塊
Claims (20)
- 一種系統,該系統包含:一第一階級儲存組件,其中一儲存狀態指示被外部追蹤,其中一第一一致性維持方法被實作在該第一階級儲存組件處,而被外部追蹤的該儲存狀態指示可相容於一第二一致性維持方法;及一第二階級儲存組件,用於接收來自該第一階級儲存組件的資訊,並至少部份基於關聯於該第一階級儲存組件的該資訊的儲存狀態來作用在該資訊,其中該第二一致性維持方法被實作在該第二階級儲存組件處。
- 如申請專利範圍第1項之儲存系統,其中該資訊狀態為一快取線的狀態。
- 如申請專利範圍第2項之儲存系統,其中該快取線的儲存狀態由該第二階級儲存組件追蹤。
- 如申請專利範圍第2項之儲存系統,其中該快取線的儲存狀態由一一致性集線器追蹤。
- 如申請專利範圍第2項之儲存系統,其中該第一階級儲存組件為一L2快取,而該第二階級儲存組件為一L3快取。
- 如申請專利範圍第5項之儲存系統,其中在該L2快取中該快取線的儲存狀態由該L3快取追蹤。
- 如申請專利範圍第5項之儲存系統,其中該快取線的儲存狀態由一一致性集線器追蹤。
- 如申請專利範圍第5項之儲存系統,其中該L2快取考慮在一MESI狀態中的該快取線,且該L3實際上可追蹤那些已經實際上寫回到援助儲存的線。
- 如申請專利範圍第5項之儲存系統,其中在自該L2快取收回一快取線時,該L3快取實際上在適當時傳遞該快取線到該援助儲存,而在不適當時不會傳遞該快取線。
- 如申請專利範圍第5項之儲存系統,其中該L3可追蹤每一快取線的額外狀態,且其中該額外狀態指明在該L2快取中的一條線是否為髒的,且該L3目錄指明該條線要被寫回。
- 一種方法:外部地追蹤關聯於包括在一儲存階級中一儲存組件的資訊之一本質儲存狀態;基於一本地儲存狀態指示作用在該一個階級儲存組件中的資訊;及至少部份基於該資訊的該本質儲存狀態作用在另一儲存組件中接收的該資訊。
- 如申請專利範圍第11項之方法,其中該一個儲存組件並不追蹤一擁有狀態。
- 如申請專利範圍第11項之方法,其中該另一階級儲存組件接收來自該一個階級儲存組件的寫回,並基於該本質儲存狀態不理會無關的寫回。
- 如申請專利範圍第11項之方法,其中該另一階級儲存組件根據該本質儲存狀態轉送自該一個儲存組件收到的寫回。
- 一種系統,該系統包含:複數第一階級快取,其利用一基本MESI協定,以及被收回的該等複數第一階級快取寫回快取線,其中包括一髒共用快取線;及一第二階級快取,其分配在該第二階級快取中一修改狀態的一髒共用快取線,所以該髒共用快取線如果自該第二階級快取收回時被寫回到一第三階級儲存組件。
- 如申請專利範圍第15項之系統,其中該髒共用快取線如果自該第二階級快取收回時被寫回到一第三階級儲存組件,即使收回該髒共用快取線的該等複數第一階級快取之一者,係處理該髒如同僅被共用與乾淨的一共用快取線。
- 如申請專利範圍第15項之系統,其中該等複數第一階級快取其中最後一者寫回一「乾淨共用」線到該L3,且該L3將其分配在該共用狀態或未修改狀態,代表如果自該L3收回時其不需要被寫回到DRAM。
- 如申請專利範圍第15項之系統,其中該等複數第一階級快取亦會寫回專用快取線與未修改的快取線。
- 如申請專利範圍第15項之系統,其中該第二階級快取為一寫回寫入分配專用下一階級快取。
- 如申請專利範圍第15項之系統,其中該等第二階級快取線在自該等複數第一階級快取之一收回時被分配。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/725,881 US9824009B2 (en) | 2012-12-21 | 2012-12-21 | Information coherency maintenance systems and methods |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201502789A true TW201502789A (zh) | 2015-01-16 |
TWI526839B TWI526839B (zh) | 2016-03-21 |
Family
ID=50878889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102146853A TWI526839B (zh) | 2012-12-21 | 2013-12-18 | 資訊一致性維持系統與方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9824009B2 (zh) |
CN (1) | CN103885894A (zh) |
DE (1) | DE102013114256B4 (zh) |
TW (1) | TWI526839B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256514B2 (en) | 2009-02-19 | 2016-02-09 | Nvidia Corporation | Debugging and perfomance analysis of applications |
US9965395B2 (en) * | 2010-09-28 | 2018-05-08 | Texas Instruments Incorporated | Memory attribute sharing between differing cache levels of multilevel cache |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9477575B2 (en) | 2013-06-12 | 2016-10-25 | Nvidia Corporation | Method and system for implementing a multi-threaded API stream replay |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
US10108548B2 (en) * | 2014-08-19 | 2018-10-23 | MIPS Tech, LLC | Processors and methods for cache sparing stores |
JP6674085B2 (ja) * | 2015-08-12 | 2020-04-01 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10459824B2 (en) * | 2017-09-18 | 2019-10-29 | Microsoft Technology Licensing, Llc | Cache-based trace recording using cache coherence protocol data |
US11907091B2 (en) | 2018-02-16 | 2024-02-20 | Microsoft Technology Licensing, Llc | Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches |
KR20210079637A (ko) * | 2019-12-20 | 2021-06-30 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US20230099256A1 (en) * | 2021-09-29 | 2023-03-30 | Advanced Micro Devices, Inc. | Storing an indication of a specific data pattern in spare directory entries |
Family Cites Families (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4620217A (en) | 1983-09-22 | 1986-10-28 | High Resolution Television, Inc. | Standard transmission and recording of high resolution television |
US4648045A (en) | 1984-05-23 | 1987-03-03 | The Board Of Trustees Of The Leland Standford Jr. University | High speed memory and processor system for raster display |
US4901224A (en) | 1985-02-25 | 1990-02-13 | Ewert Alfred P | Parallel digital processor |
US4700319A (en) | 1985-06-06 | 1987-10-13 | The United States Of America As Represented By The Secretary Of The Air Force | Arithmetic pipeline for image processing |
US4862392A (en) | 1986-03-07 | 1989-08-29 | Star Technologies, Inc. | Geometry processor for graphics display system |
US5185856A (en) | 1990-03-16 | 1993-02-09 | Hewlett-Packard Company | Arithmetic and logic processing unit for computer graphics system |
CA2043493C (en) | 1990-10-05 | 1997-04-01 | Ricky C. Hetherington | Hierarchical integrated circuit cache memory |
US5268995A (en) | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data processor |
JPH06318060A (ja) | 1991-07-31 | 1994-11-15 | Toshiba Corp | 表示制御装置 |
JP3004108B2 (ja) | 1991-11-27 | 2000-01-31 | 株式会社東芝 | 情報処理装置 |
US5357604A (en) | 1992-01-30 | 1994-10-18 | A/N, Inc. | Graphics processor with enhanced memory control circuitry for use in a video game system or the like |
US5600584A (en) | 1992-09-15 | 1997-02-04 | Schlafly; Roger | Interactive formula compiler and range estimator |
US5488687A (en) | 1992-09-17 | 1996-01-30 | Star Technologies, Inc. | Dual resolution output system for image generators |
JP2725546B2 (ja) | 1992-12-07 | 1998-03-11 | 株式会社日立製作所 | デ−タ処理装置 |
TW241196B (zh) | 1993-01-15 | 1995-02-21 | Du Pont | |
US5392393A (en) | 1993-06-04 | 1995-02-21 | Sun Microsystems, Inc. | Architecture for a high performance three dimensional graphics accelerator |
US5579476A (en) | 1993-10-19 | 1996-11-26 | Industrial Technology Research Institute | Automatic test environment for communications protocol software |
US5487022A (en) | 1994-03-08 | 1996-01-23 | Texas Instruments Incorporated | Normalization method for floating point numbers |
US5577213A (en) | 1994-06-03 | 1996-11-19 | At&T Global Information Solutions Company | Multi-device adapter card for computer |
US5579473A (en) | 1994-07-18 | 1996-11-26 | Sun Microsystems, Inc. | Interface controller for frame buffer random access memory devices |
US5655132A (en) | 1994-08-08 | 1997-08-05 | Rockwell International Corporation | Register file with multi-tasking support |
US5604824A (en) | 1994-09-22 | 1997-02-18 | Houston Advanced Research Center | Method and apparatus for compression and decompression of documents and the like using splines and spline-wavelets |
US5701444A (en) | 1995-03-24 | 1997-12-23 | 3Dlabs Inc. Ltd. | Three-dimensional graphics subsystem with enhanced support for graphical user interface |
US5764228A (en) | 1995-03-24 | 1998-06-09 | 3Dlabs Inc., Ltd. | Graphics pre-processing and rendering system |
US5864342A (en) | 1995-08-04 | 1999-01-26 | Microsoft Corporation | Method and system for rendering graphical objects to image chunks |
US5850572A (en) | 1996-03-08 | 1998-12-15 | Lsi Logic Corporation | Error-tolerant video display subsystem |
US5777628A (en) | 1996-05-29 | 1998-07-07 | Hewlett-Packard Company | Method and apparatus for detecting cache collisions in a two dimensional memory |
US6115047A (en) | 1996-07-01 | 2000-09-05 | Sun Microsystems, Inc. | Method and apparatus for implementing efficient floating point Z-buffering |
US6173366B1 (en) | 1996-12-02 | 2001-01-09 | Compaq Computer Corp. | Load and store instructions which perform unpacking and packing of data bits in separate vector and integer cache storage |
US6496537B1 (en) | 1996-12-18 | 2002-12-17 | Thomson Licensing S.A. | Video decoder with interleaved data processing |
US5831640A (en) | 1996-12-20 | 1998-11-03 | Cirrus Logic, Inc. | Enhanced texture map data fetching circuit and method |
US6166743A (en) | 1997-03-19 | 2000-12-26 | Silicon Magic Corporation | Method and system for improved z-test during image rendering |
JP3790607B2 (ja) | 1997-06-16 | 2006-06-28 | 松下電器産業株式会社 | Vliwプロセッサ |
US5941940A (en) | 1997-06-30 | 1999-08-24 | Lucent Technologies Inc. | Digital signal processor architecture optimized for performing fast Fourier Transforms |
JP3414209B2 (ja) | 1997-07-30 | 2003-06-09 | 松下電器産業株式会社 | プロセッサ |
US5995121A (en) | 1997-10-16 | 1999-11-30 | Hewlett-Packard Company | Multiple graphics pipeline integration with a windowing system through the use of a high speed interconnect to the frame buffer |
US6345339B1 (en) * | 1998-02-17 | 2002-02-05 | International Business Machines Corporation | Pseudo precise I-cache inclusivity for vertical caches |
US6259460B1 (en) | 1998-03-26 | 2001-07-10 | Silicon Graphics, Inc. | Method for efficient handling of texture cache misses by recirculation |
JP3541669B2 (ja) | 1998-03-30 | 2004-07-14 | 松下電器産業株式会社 | 演算処理装置 |
US6862278B1 (en) | 1998-06-18 | 2005-03-01 | Microsoft Corporation | System and method using a packetized encoded bitstream for parallel compression and decompression |
US7068272B1 (en) | 2000-05-31 | 2006-06-27 | Nvidia Corporation | System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline |
JP2000047872A (ja) | 1998-08-03 | 2000-02-18 | Hitachi Ltd | 低消費電力動作機能を備えたマイクロプロセッサ |
AU5688199A (en) | 1998-08-20 | 2000-03-14 | Raycer, Inc. | System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline |
US6771264B1 (en) | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
US6407740B1 (en) | 1998-09-30 | 2002-06-18 | Sun Microsystems, Inc. | Addressable output buffer architecture |
US6483516B1 (en) | 1998-10-09 | 2002-11-19 | National Semiconductor Corporation | Hierarchical texture cache |
US7257814B1 (en) | 1998-12-16 | 2007-08-14 | Mips Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
US6222550B1 (en) | 1998-12-17 | 2001-04-24 | Neomagic Corp. | Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine |
US6333744B1 (en) | 1999-03-22 | 2001-12-25 | Nvidia Corporation | Graphics pipeline including combiner stages |
US6775830B1 (en) | 1999-09-24 | 2004-08-10 | Hitachi, Ltd. | Computer system and a program install method thereof |
US6526430B1 (en) | 1999-10-04 | 2003-02-25 | Texas Instruments Incorporated | Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing) |
US6351806B1 (en) | 1999-10-06 | 2002-02-26 | Cradle Technologies | Risc processor using register codes for expanded instruction set |
US6466222B1 (en) | 1999-10-08 | 2002-10-15 | Silicon Integrated Systems Corp. | Apparatus and method for computing graphics attributes in a graphics display system |
US6604188B1 (en) | 1999-10-20 | 2003-08-05 | Transmeta Corporation | Pipeline replay support for multi-cycle operations wherein all VLIW instructions are flushed upon detection of a multi-cycle atom operation in a VLIW instruction |
US6717577B1 (en) | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
US6411301B1 (en) | 1999-10-28 | 2002-06-25 | Nintendo Co., Ltd. | Graphics system interface |
US6353439B1 (en) | 1999-12-06 | 2002-03-05 | Nvidia Corporation | System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline |
US6417851B1 (en) | 1999-12-06 | 2002-07-09 | Nvidia Corporation | Method and apparatus for lighting module in a graphics processor |
US6198488B1 (en) | 1999-12-06 | 2001-03-06 | Nvidia | Transform, lighting and rasterization system embodied on a single semiconductor platform |
US6557022B1 (en) | 2000-02-26 | 2003-04-29 | Qualcomm, Incorporated | Digital signal processor with coupled multiply-accumulate units |
US6718542B1 (en) | 2000-04-14 | 2004-04-06 | Sun Microsystems, Inc. | Disambiguating memory references based upon user-specified programming constraints |
US6624818B1 (en) | 2000-04-21 | 2003-09-23 | Ati International, Srl | Method and apparatus for shared microcode in a multi-thread computation engine |
US6806886B1 (en) | 2000-05-31 | 2004-10-19 | Nvidia Corporation | System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline |
US6915509B1 (en) | 2000-06-28 | 2005-07-05 | Microsoft Corporation | Method and system for debugging a program |
US6636221B1 (en) | 2000-08-02 | 2003-10-21 | Ati International, Srl | Graphics processing system with enhanced bus bandwidth utilization and method therefore |
US6937245B1 (en) | 2000-08-23 | 2005-08-30 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US7002591B1 (en) | 2000-08-23 | 2006-02-21 | Nintendo Co., Ltd. | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US7034828B1 (en) | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
US6999100B1 (en) | 2000-08-23 | 2006-02-14 | Nintendo Co., Ltd. | Method and apparatus for anti-aliasing in a graphics system |
US6664958B1 (en) | 2000-08-23 | 2003-12-16 | Nintendo Co., Ltd. | Z-texturing |
JP2002073330A (ja) | 2000-08-28 | 2002-03-12 | Mitsubishi Electric Corp | データ処理装置 |
JP2002171401A (ja) | 2000-11-29 | 2002-06-14 | Canon Inc | 間引き演算命令を備えたsimd型演算装置 |
US6778181B1 (en) | 2000-12-07 | 2004-08-17 | Nvidia Corporation | Graphics processing system having a virtual texturing array |
US6411130B1 (en) | 2001-01-23 | 2002-06-25 | Micrel, Inc. | Method and system for reliably providing a lock indication |
US6791559B2 (en) | 2001-02-28 | 2004-09-14 | 3Dlabs Inc., Ltd | Parameter circular buffers |
US6542971B1 (en) | 2001-04-23 | 2003-04-01 | Nvidia Corporation | Memory access system and method employing an auxiliary buffer |
JP2002333978A (ja) | 2001-05-08 | 2002-11-22 | Nec Corp | Vliw型プロセッサ |
US6839828B2 (en) | 2001-08-14 | 2005-01-04 | International Business Machines Corporation | SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode |
US6741256B2 (en) | 2001-08-27 | 2004-05-25 | Sun Microsystems, Inc. | Predictive optimizer for DRAM memory |
US6947053B2 (en) | 2001-09-27 | 2005-09-20 | Intel Corporation | Texture engine state variable synchronizer |
EP1306810A1 (en) | 2001-10-25 | 2003-05-02 | STMicroelectronics Limited | Triangle identification buffer |
US7127482B2 (en) | 2001-11-19 | 2006-10-24 | Intel Corporation | Performance optimized approach for efficient downsampling operations |
US7158141B2 (en) | 2002-01-17 | 2007-01-02 | University Of Washington | Programmable 3D graphics pipeline for multimedia applications |
US7227556B2 (en) | 2002-03-01 | 2007-06-05 | O'driscoll Gerard | High quality antialiased lines with dual sampling pattern |
US7187383B2 (en) | 2002-03-01 | 2007-03-06 | 3D Labs Inc., Ltd | Yield enhancement of complex chips |
US6731288B2 (en) | 2002-03-01 | 2004-05-04 | 3Dlabs Inc., Ltd. | Graphics engine with isochronous context switching |
US6924808B2 (en) | 2002-03-12 | 2005-08-02 | Sun Microsystems, Inc. | Area pattern processing of pixels |
US7154502B2 (en) | 2002-03-19 | 2006-12-26 | 3D Labs, Inc. Ltd. | 3D graphics with optional memory write before texturing |
EP1495412B1 (en) | 2002-03-22 | 2012-11-28 | Alandro Consulting NY LLC | Scalable high performance 3d graphics |
DE10218916A1 (de) | 2002-04-27 | 2003-11-06 | Degussa | Verfahren zur Herstellung von Acetalen und Ketalen mit Hilfe mehrstufiger Pervaporation oder Dampfpermeation |
US6980209B1 (en) | 2002-06-14 | 2005-12-27 | Nvidia Corporation | Method and system for scalable, dataflow-based, programmable processing of graphics data |
US6809732B2 (en) | 2002-07-18 | 2004-10-26 | Nvidia Corporation | Method and apparatus for generation of programmable shader configuration information from state-based control information and program instructions |
US7656416B2 (en) | 2002-11-27 | 2010-02-02 | Ati Technologies, Inc. | Apparatus for generating anti-aliased and stippled 3d lines, points and surfaces using multi-dimensional procedural texture coordinates |
US8036475B2 (en) | 2002-12-13 | 2011-10-11 | Ricoh Co., Ltd. | Compression for segmented images and other types of sideband information |
JP4288461B2 (ja) | 2002-12-17 | 2009-07-01 | 日本電気株式会社 | 対称型画像フィルタ処理装置、プログラム、及びその方法 |
US7268779B2 (en) | 2002-12-24 | 2007-09-11 | Intel Corporation | Z-buffering techniques for graphics rendering |
KR100510131B1 (ko) | 2003-01-29 | 2005-08-26 | 삼성전자주식회사 | 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법 |
US7430654B2 (en) | 2003-07-09 | 2008-09-30 | Via Technologies, Inc. | Dynamic instruction dependency monitor and control system |
US8823718B2 (en) | 2003-11-14 | 2014-09-02 | Microsoft Corporation | Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques |
US6897871B1 (en) | 2003-11-20 | 2005-05-24 | Ati Technologies Inc. | Graphics processing architecture employing a unified shader |
US7450120B1 (en) | 2003-12-19 | 2008-11-11 | Nvidia Corporation | Apparatus, system, and method for Z-culling |
US20050134588A1 (en) | 2003-12-22 | 2005-06-23 | Hybrid Graphics, Ltd. | Method and apparatus for image processing |
US6980222B2 (en) | 2004-01-12 | 2005-12-27 | International Business Machines Corporation | Method and apparatus for implementing dynamically sizable color tables |
US8711155B2 (en) | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US20060007234A1 (en) | 2004-05-14 | 2006-01-12 | Hutchins Edward A | Coincident graphics pixel scoreboard tracking system and method |
US8860722B2 (en) | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US8736620B2 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US7199799B2 (en) | 2004-05-14 | 2007-04-03 | Nvidia Corporation | Interleaving of pixels for low power programmable processor |
US7106336B1 (en) | 2004-05-14 | 2006-09-12 | Nvidia Corporation | Method and system for deferred evaluation of transforms in graphics processors |
US7710427B1 (en) | 2004-05-14 | 2010-05-04 | Nvidia Corporation | Arithmetic logic unit and method for processing data in a graphics pipeline |
US7091982B2 (en) | 2004-05-14 | 2006-08-15 | Nvidia Corporation | Low power programmable processor |
US7298375B1 (en) | 2004-05-14 | 2007-11-20 | Nvidia Corporation | Arithmetic logic units in series in a graphics pipeline |
US7190366B2 (en) | 2004-05-14 | 2007-03-13 | Nvidia Corporation | Method and system for a general instruction raster stage that generates programmable pixel packets |
KR100865811B1 (ko) | 2004-05-14 | 2008-10-28 | 엔비디아 코포레이션 | 저전력 프로그램가능 프로세서 |
US7280112B1 (en) | 2004-05-14 | 2007-10-09 | Nvidia Corporation | Arithmetic logic unit temporary registers |
US7079156B1 (en) | 2004-05-14 | 2006-07-18 | Nvidia Corporation | Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline |
US7941645B1 (en) | 2004-07-28 | 2011-05-10 | Nvidia Corporation | Isochronous pipelined processor with deterministic control |
US7525543B2 (en) | 2004-08-09 | 2009-04-28 | Siemens Medical Solutions Usa, Inc. | High performance shading of large volumetric data using screen-space partial derivatives |
US7644255B2 (en) | 2005-01-13 | 2010-01-05 | Sony Computer Entertainment Inc. | Method and apparatus for enable/disable control of SIMD processor slices |
US20060177122A1 (en) | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Method and apparatus for particle manipulation using graphics processing |
US7412591B2 (en) | 2005-06-18 | 2008-08-12 | Industrial Technology Research Institute | Apparatus and method for switchable conditional execution in a VLIW processor |
US7659898B2 (en) | 2005-08-08 | 2010-02-09 | Via Technologies, Inc. | Multi-execution resource graphics processor |
TWI283835B (en) | 2005-08-30 | 2007-07-11 | Via Tech Inc | An adaptive method and apparatus for generating shadow using shadow volume |
US7477260B1 (en) | 2006-02-01 | 2009-01-13 | Nvidia Corporation | On-the-fly reordering of multi-cycle data transfers |
US8860721B2 (en) | 2006-03-28 | 2014-10-14 | Ati Technologies Ulc | Method and apparatus for processing pixel depth information |
US20070279408A1 (en) | 2006-06-01 | 2007-12-06 | Intersil Corporation | Method and system for data transmission and recovery |
US7849446B2 (en) | 2006-06-09 | 2010-12-07 | Oracle America, Inc. | Replay debugging |
US7928990B2 (en) | 2006-09-27 | 2011-04-19 | Qualcomm Incorporated | Graphics processing unit with unified vertex cache and shader register file |
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US8773447B1 (en) | 2006-12-08 | 2014-07-08 | Nvidia Corporation | Tag logic scoreboarding in a graphics pipeline |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US9164910B2 (en) * | 2008-02-21 | 2015-10-20 | Arm Limited | Managing the storage of data in coherent data stores |
US9035959B2 (en) * | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
CN102144218A (zh) | 2008-07-28 | 2011-08-03 | 超威半导体公司 | 可虚拟化的先进同步设备 |
US9256514B2 (en) | 2009-02-19 | 2016-02-09 | Nvidia Corporation | Debugging and perfomance analysis of applications |
WO2012103373A2 (en) * | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Variable caching structure for managing physical storage |
GB2491588A (en) * | 2011-06-06 | 2012-12-12 | St Microelectronics Res & Dev | Multiprocessor with different cache coherency protocols between different parts |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US9477575B2 (en) | 2013-06-12 | 2016-10-25 | Nvidia Corporation | Method and system for implementing a multi-threaded API stream replay |
-
2012
- 2012-12-21 US US13/725,881 patent/US9824009B2/en active Active
-
2013
- 2013-12-17 DE DE102013114256.7A patent/DE102013114256B4/de active Active
- 2013-12-18 TW TW102146853A patent/TWI526839B/zh not_active IP Right Cessation
- 2013-12-23 CN CN201310718837.5A patent/CN103885894A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US9824009B2 (en) | 2017-11-21 |
TWI526839B (zh) | 2016-03-21 |
DE102013114256B4 (de) | 2022-06-15 |
DE102013114256A1 (de) | 2014-06-26 |
US20140181404A1 (en) | 2014-06-26 |
CN103885894A (zh) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI526839B (zh) | 資訊一致性維持系統與方法 | |
KR101393933B1 (ko) | 캐시 블록 코히어런스를 위한 시스템들, 방법들, 및 디바이스들 | |
US10078590B2 (en) | Technique to share information among different cache coherency domains | |
TWI643125B (zh) | 多處理器系統及快取共用方法 | |
KR100869189B1 (ko) | 멀티-상태 캐시 코히어런스 방식의 장치, 시스템 및 방법 | |
US8230179B2 (en) | Administering non-cacheable memory load instructions | |
JP4756562B2 (ja) | 独立論理アドレス空間とそれぞれに対するアクセス管理を提供する方法および装置 | |
US6345342B1 (en) | Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line | |
JP5005631B2 (ja) | 複数のコアキャッシュ・クラスタ間の包括的共有キャッシュの提供 | |
US9176879B2 (en) | Least recently used mechanism for cache line eviction from a cache memory | |
US20110252200A1 (en) | Coherent memory scheme for heterogeneous processors | |
TW201717040A (zh) | 用於具有調適分割之一共用快取之系統及方法 | |
JP2011511989A (ja) | チップマルチプロセッサにおけるキャッシュの適応的編成方法 | |
EP3639144B1 (en) | Memory management in non-volatile memory | |
US20210191865A1 (en) | Zero value memory compression | |
KR102617154B1 (ko) | 저장된 교체 정보를 갖는 스누프 필터, 이에 대한 방법 및 희생자 전용 캐시와 스누프 필터 공유 교체 정책을 포함하는 시스템 | |
US11507517B2 (en) | Scalable region-based directory | |
US11526449B2 (en) | Limited propagation of unnecessary memory updates | |
CN113138851B (zh) | 一种数据管理方法、相关装置及系统 | |
US6374333B1 (en) | Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention | |
US10503642B2 (en) | Cache coherence directory architecture with decoupled tag array and data array | |
US11561906B2 (en) | Rinsing cache lines from a common memory page to memory | |
US20240111683A1 (en) | Dynamically altering tracking granularity in a region-based cache directory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |