TW201502789A - 資訊一致性維持系統與方法 - Google Patents

資訊一致性維持系統與方法 Download PDF

Info

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
Application number
TW102146853A
Other languages
English (en)
Other versions
TWI526839B (zh
Inventor
Anurag Chaudhary
Guillermo Juan Rozas
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of TW201502789A publication Critical patent/TW201502789A/zh
Application granted granted Critical
Publication of TWI526839B publication Critical patent/TWI526839B/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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches 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. 如申請專利範圍第1項之儲存系統,其中該資訊狀態為一快取線的狀態。
  3. 如申請專利範圍第2項之儲存系統,其中該快取線的儲存狀態由該第二階級儲存組件追蹤。
  4. 如申請專利範圍第2項之儲存系統,其中該快取線的儲存狀態由一一致性集線器追蹤。
  5. 如申請專利範圍第2項之儲存系統,其中該第一階級儲存組件為一L2快取,而該第二階級儲存組件為一L3快取。
  6. 如申請專利範圍第5項之儲存系統,其中在該L2快取中該快取線的儲存狀態由該L3快取追蹤。
  7. 如申請專利範圍第5項之儲存系統,其中該快取線的儲存狀態由一一致性集線器追蹤。
  8. 如申請專利範圍第5項之儲存系統,其中該L2快取考慮在一MESI狀態中的該快取線,且該L3實際上可追蹤那些已經實際上寫回到援助儲存的線。
  9. 如申請專利範圍第5項之儲存系統,其中在自該L2快取收回一快取線時,該L3快取實際上在適當時傳遞該快取線到該援助儲存,而在不適當時不會傳遞該快取線。
  10. 如申請專利範圍第5項之儲存系統,其中該L3可追蹤每一快取線的額外狀態,且其中該額外狀態指明在該L2快取中的一條線是否為髒的,且該L3目錄指明該條線要被寫回。
  11. 一種方法:外部地追蹤關聯於包括在一儲存階級中一儲存組件的資訊之一本質儲存狀態;基於一本地儲存狀態指示作用在該一個階級儲存組件中的資訊;及至少部份基於該資訊的該本質儲存狀態作用在另一儲存組件中接收的該資訊。
  12. 如申請專利範圍第11項之方法,其中該一個儲存組件並不追蹤一擁有狀態。
  13. 如申請專利範圍第11項之方法,其中該另一階級儲存組件接收來自該一個階級儲存組件的寫回,並基於該本質儲存狀態不理會無關的寫回。
  14. 如申請專利範圍第11項之方法,其中該另一階級儲存組件根據該本質儲存狀態轉送自該一個儲存組件收到的寫回。
  15. 一種系統,該系統包含:複數第一階級快取,其利用一基本MESI協定,以及被收回的該等複數第一階級快取寫回快取線,其中包括一髒共用快取線;及一第二階級快取,其分配在該第二階級快取中一修改狀態的一髒共用快取線,所以該髒共用快取線如果自該第二階級快取收回時被寫回到一第三階級儲存組件。
  16. 如申請專利範圍第15項之系統,其中該髒共用快取線如果自該第二階級快取收回時被寫回到一第三階級儲存組件,即使收回該髒共用快取線的該等複數第一階級快取之一者,係處理該髒如同僅被共用與乾淨的一共用快取線。
  17. 如申請專利範圍第15項之系統,其中該等複數第一階級快取其中最後一者寫回一「乾淨共用」線到該L3,且該L3將其分配在該共用狀態或未修改狀態,代表如果自該L3收回時其不需要被寫回到DRAM。
  18. 如申請專利範圍第15項之系統,其中該等複數第一階級快取亦會寫回專用快取線與未修改的快取線。
  19. 如申請專利範圍第15項之系統,其中該第二階級快取為一寫回寫入分配專用下一階級快取。
  20. 如申請專利範圍第15項之系統,其中該等第二階級快取線在自該等複數第一階級快取之一收回時被分配。
TW102146853A 2012-12-21 2013-12-18 資訊一致性維持系統與方法 TWI526839B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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