CZ46499A3 - Uvolňování s protokolem pro aktualizaci vyrovnávací paměti (vyklizení L2) - Google Patents

Uvolňování s protokolem pro aktualizaci vyrovnávací paměti (vyklizení L2) Download PDF

Info

Publication number
CZ46499A3
CZ46499A3 CZ99464A CZ46499A CZ46499A3 CZ 46499 A3 CZ46499 A3 CZ 46499A3 CZ 99464 A CZ99464 A CZ 99464A CZ 46499 A CZ46499 A CZ 46499A CZ 46499 A3 CZ46499 A3 CZ 46499A3
Authority
CZ
Czechia
Prior art keywords
buffer
data
bus
data item
system bus
Prior art date
Application number
CZ99464A
Other languages
English (en)
Inventor
Ravi Kumar Arimilli
John Steven Dodson
Jerry Don Lewis
Original Assignee
International Bisiness Machines Corporation
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 International Bisiness Machines Corporation filed Critical International Bisiness Machines Corporation
Publication of CZ46499A3 publication Critical patent/CZ46499A3/cs

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
    • 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
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification

Landscapes

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

Description

Oblast techniky
Vynález se týká tématu běžně udělené patentové přihlášky United States sériové č. 09/024316 (č. spisu AT997-436) nazvané Merged Vertical Cache Controller Mechanism a podané 17. února 1998, jejíž obsah je zde zahrnut odkazem.
Vynález se obecně týká vyklízení dat z vyrovnávacích pamětí v systému zpracovávajícím data a zejména vyklízení dat z vyrovnávací paměti v systému zpracovávajícím data, který má víceúrovňovou hierarchii vyrovnávacích pamětí. Ještě podrobněji se tento vynález týká vyklízení dat z jedné vyrovnávací paměti do vyrovnávací paměti logicky v řadě v systému zpracovávajícím data, který má víceúrovňovou hierarchii vyrovnávacích pamětí.
Dosavadní stav techniky
Architektura většiny současných systémů zpracovávajících data obsahuje více úrovní vyrovnávacích pamětí v hierarchii úložného prostoru. Vyrovnávací paměti jsou použity v systémech zpracovávajících data kvůli zajištění rychlejšího přístupu k často používaným datům za doby přístupu spojené se systémovou pamětí a tím zlepšení celkové výkonnosti. Vyrovnávací paměti na jakékoli úrovni v hierarchii úložného prostoru mohou být soukromé (vyhrazené pro lokální procesor) nebo sdílené (přístupné více
76 804
fr • ·· • fr fr ·
fr • · • · «
fr · • « · • · ·
fr • ·
• fr · • · fr • · • frfrfr • ·
procesorům), vyrovnávací paměti na úrovních blíže k procesorům jsou však typicky soukromé. Vyrovnávací paměti úrovně 1 (Ll), ty které jsou logicky nejblíže k procesoru, jsou typicky implementovány jako nedílná část procesoru a mohou být rozděleny na oddělenou vyrovnávací paměť pro data a pro instrukce. Vyrovnávací paměti na nižší úrovni jsou obecně implementovány jako oddělená zařízení, i když úroveň 2 (L2) může být vytvořena na stejném křemíkovém substrátu jako procesor.
V praxi mají víceúrovňové vyrovnávací paměti typicky mnohem větší velikosti, což vyvažuje stále delší zpoždění při přístupu. Menší, rychlejší vyrovnávací paměti jsou používány na úrovních v úložné hierarchii blíže k procesoru nebo procesorům, zatímco větší, pomalejší vyrovnávací paměti jsou používány na úrovních blíže k systémové paměti. Vyrovnávací paměti logicky v řadě ve víceúrovňové hierarchii vyrovnávacích pamětí jsou obecně využívány k dočasnému ukládání dat do a z vyrovnávacích pamětí ve vyšších úrovních úložné hierarchie. Při vynášení dat nebo jejich přenosu ze systémové paměti nebo pamětí na nižší úrovni úložné hierarchie do vyrovnávací paměti na vyšší úrovni v úložné hierarchii se používají pravidla pro nahrazování - typicky pravidlo nahrazení poslední dobou nejméně používaných dat ke zjištění, která místa vyrovnávací paměti by se měla použít k uložení nových dat. Tento proces, který se často nazývá jako aktualizace vyrovnávací paměti, způsobuje zápis všech změněných dat spojených s místem ve vyrovnávací paměti zvolené podle pravidel pro nahrazování (také se nazývá oběť) zpět do nižších úrovní úložné hierarchie. Proces zápisu změněných dat z oběti do systémové paměti nebo do vyrovnávací paměti nižší úrovně se nazývá uvolnění nebo vyklizení.
·* ♦· ♦· ·· *·· ··· * · · · · ♦ • « · ··♦ ··« ♦ · * · • · · ··« «9 ·*
Přístup k systémové paměti má podstatně nižší zpoždění, než je zpoždění spojené s přístupem k jakékoli z vyrovnávacích pamětí v úložné hierarchii. Například přístup k systémové paměti může vyžadovat až čtyřikrát více procesorových cyklů než je potřeba k přístupu k vyrovnávací paměti úrovně 3 (L3) a až 10-15 krát více procesorových cyklů, než se vyžaduje k přístupu do vyrovnávací paměti L2. Proto data uvolněná z vyrovnávací paměti na jakékoli úrovni hierarchie vyrovnávacích pamětí jiné než je nejnižší, jsou s výhodou zapisována do další nižší vyrovnávacích pamětí spíše než do
Například data uvolněná z vyrovnávací paměti L2 jsou typicky zapsána do vyrovnávací paměti L3 soukromou sběrnicí mezi vyrovnávacími pamětmi L2 a L3 spíše než aby se data zapisovala po celé cestě do systémové paměti.
určitou operaci je mají taková uvolnění změněných dat ve vymezené části úložné hierarchie, která není obecně přístupná jiným zařízením v multiprocesorovém systému.
úrovně hierarchie systémové paměti.
Přestože způsobem udržení zpoždění pro minimalizováno, tímto účinek
V systémech, kde jsou data uvolňována z vyrovnávací paměti L2 do vyrovnávací paměti L3 soukromou sběrnicí spojující tyto dvě vyrovnávací paměti, je potřeba kontrola opravným kódem chyb (ECC) v adresáři a vyrovnávací paměti L3 kvůli zajištění zachování integrity dat. To zvyšuje počet požadovaných bitů na sběrnici spojující tyto dvě vyrovnávací paměti. Pokud je například pro přenos dat mezi vyrovnávací pamětí L2 a L3použita 64-bitová datová sběrnice, může se vyžadovat ještě dalších 8 bitů pro kontrolu ECC, což má za následek 72-bitovou sběrnici. Tato větší sběrnice spotřebuje další oblast na substrátu a může vzniknout potřeba jejího • « ·« * ··«· • « · · · · « ··· «·· • · * · « · » ·*· *·· ·· ···· «ο ·· provozu na nižším kmitočtu než u 64-bitové sběrnice.
Byla by tudíž žádoucí schopnost vyklidit data z jedné úrovně vyrovnávací paměti do nižší úrovně vyrovnávací paměti bez požadavku soukromé sběrnice mezi těmito dvěma vyrovnávacími pamětmi nebo ECC kontroly datových přenosů mezi těmito dvěma vyrovnávacími pamětmi. Dále by bylo výhodné zajistit mechanismus pro taková vyklízení dat, která by umožnila viditelnost takových uvolnění sledovací logice jiných zařízení v multiprocesorovém systému.
Podstata vynálezu
Je tudíž jedním předmětem tohoto vynálezu zlepšit způsob a zařízení pro vyklízení dat z vyrovnávacích pamětí v systému zpracovávajícím data.
Je dalším předmětem tohoto vynálezu zlepšit způsob a zařízení pro vyklízení dat z vyrovnávací paměti v systému zpracovávajícím data, který má víceúrovňovou hierarchii vyrovnávacích pamětí.
Je dalším předmětem tohoto vynálezu zlepšený způsob a zařízení pro vyklizení dat z jedné vyrovnávací paměti do vyrovnávací paměti logicky v řadě v systému zpracovávajícím data, který má víceúrovňovou hierarchii vyrovnávacích pamětí.
Výše uvedené předměty jsou dosaženy jak bude nyní popsáno. Při uvolňování dat z první vyrovnávací paměti na úrovni jiné, než je nejnižší ve víceúrovňové hierarchií vyrovnávacích pamětí jsou data zapsána na systémovou « · · · · ♦ « « * · · · · ♦ · ·*««« *«<*·· 9 «»· ··* ♦< *··· ·· · sběrnici a z ní získána zpět do druhé vyrovnávací pamětí na nižší úrovni v hierarchii vyrovnávacích pamětí. Odstraní se tak potřeba soukromé cesty pro data mezi těmito dvěma vyrovnávacími pamětmi a druhá vyrovnávací paměť nemusí být dvojitě připojena. Zaváděcí cesta používaná k aktualizaci druhé vyrovnávací paměti se znovu použije ke zjištění vyklizených dat na systémové sběrnici. Následkem vyklizení dat z první vyrovnávací paměti systémovou sběrnicí neobsahuje druhá vyrovnávací paměť nikdy data, která jsou změněna (M) vzhledem k systémové paměti a jiná zařízení v systému s více procesory se aktualizují dříve. Potřeba kontroly kódem pro opravu chyb (ECC) se odstraní spolu s tím spojenými dodatečnými bity a lze ji nahradit jednoduchou kontrolou parity. Sběrnice do druhé vyrovnávací paměti tudíž vyžaduje méně bitů, spotřebuje menší plochu a může se provozovat na vyšším kmitočtu. Pokud se horizontální zařízení použijí ve shodě s protokolem koherence vyrovnávacích pamětí H-MESI, přecházejí rychleji ze stavu nejistoty (H) do sdíleného stavu (S).
Výše uvedené stejně tak další předměty, znaky a výhody tohoto vynálezu se ozřejmí v následujícím podrobném popisu.
Nové znaky zamýšlené charakteristiky vynálezu budou uvedeny v přiložených nárocích.
Přehled obrázků na výkresech
Vynález bude blíže vysvětlen prostřednictvím konkrétních příkladů provedení znázorněných na výkresech, na kterých představuje • * ·· ·· 49
44 4 4 4 4 4 9 4 4 · « · * 4 9 9 « • ♦ ♦ ♦ ♦ » fe ··· »»· • · · · · a · ata ata ·« a··· >a a* obr. 1 multiprocesorový data zpracovávájící systém podle upřednostňovaného provedení tohoto vynálezu;
obr. 2 logické blokové schéma mechanismu vyklízení položek z vyrovnávací paměti podle upřednostňovaného provedení tohoto vynálezu; a obr. 3 obecný vývojový diagram procesu vyklízení dat z vyrovnávací paměti na vyšší úrovni ve víceúrovňové hierarchii vyrovnávacích pamětí podle upřednostňovaného provedení tohoto vynálezu.
Příklady provedeni, vynálezu
Nyní s odkazem na obrázky a zejména s odkazem na obrázek 1 je znázorněn multiprocesorový data zpracovávající systém podle upřednostňovaného provedení tohoto vynálezu.
Systém 100 zpracovávající data je symetrický multiprocesorový (SMP) systém obsahující množství procesorů 102 a 104, které přednostně obsahují jeden z procesorů série PowerPC™ dostupných u společnosti International Business Machines of Armonk, New York. Přestože jsou ve vzorovém provedení popsány pouze dva procesory, odborníci ocení, že mohou být využity další procesory v multiprocesorovém datovém systému podle tohoto vynálezu.
Každý procesor 102 a 104 obsahuje datovou vyrovnávací paměť 106 a 108 úrovně jedna (Ll) v uvedeném pořadí a instrukční vyrovnávací paměť 110 a 112 Ll v uvedeném pořadí.
Přestože je instrukční a datová vyrovnávací paměť ve • * · * · «ο ·· ♦ · ·♦♦· vzorovém provedení znázorněna jako rozdělená, odborníci poznají, že se může implementovat sjednocená vyrovnávací paměť Ll. Aby se minimalizovalo zpoždění při přístupu k datům, může být implementována jedna nebo více dalších úrovní vyrovnávací paměti v data zpracovávajícím systému 100, jako například vyrovnávací paměť 114 a 116 úrovně dvě (L2) a vyrovnávací paměti 118 a 119 úrovně tři (L3) . Nižší úrovně vyrovnávacích pamětí - L2 a L3 jsou použity k vynášení dat do vyrovnávacích pamětí Ll a mají typicky značně větší úložný prostor avšak delší přístupovou dobu. Například datové vyrovnávací paměti 106 a 108 a instrukční paměti 110 a 112 mohou mít každá úložnou kapacitu 32kB a přístupovou dobu přibližně 1-2 procesorových cyklů. Vyrovnávací paměti 114 a 116 L2 mohou mít úložnou kapacitu 512kB, avšak přístupovou dobu 5 procesorových cyklů, zatímco vyrovnávací paměti L3 118 a 119 mohou mít úložnou kapacitu 4MB, avšak přístupovou dobu větší než 15 procesorových cyklů. Vyrovnávací paměti 114 a 116 L2 a vyrovnávací paměti 118 a 119 L3 tudíž slouží jako mezilehlý úložný prostor mezí procesory 102 a 104 a systémovou pamětí 120, která má typicky mnohem větší úložnou kapacitu, může však mít přístupovou dobu větší než 50 procesorových cyklů.
Jak počet úrovní v hierarchii vyrovnávacích pamětí, tak uspořádání hierarchie vyrovnávacích pamětí použitá v data zpracovávajícím systému 100, se může lišit. Vyrovnávací paměti 114 a 116 L2 v ukázaném příkladu jsou jednoúčelové vyrovnávací paměti připojené mezi svými příslušnými procesory 102 a 104 a systémovou pamětí 120 (systémovou sběrnicí 122). Vyrovnávací paměti 118 a 119 L3 jsou označeny jako postranní vyrovnávací paměti logicky vertikálně k vyrovnávacím pamětem 114 a 116 L2. Následkem toho mohou být data nebo instrukce vyhledány v jedné z vyrovnávacích pamětí • ♦ · ·
114 nebo 116 L2 a v jedné z vyrovnávacích pamětí 118 a 119 L3 zároveň, přestože data nebo instrukce budou získány pouze z vyrovnávací paměti 118 nebo 119 L3 pokud příslušná vyrovnávací paměť 114 nebo 116 L2 nenalezne zatímco vyrovnávací paměť 118 a nebo 119 L3 nalezne shodu. Odborníci poznají, že lze implementovat různé obměny znázorněných úrovní a uspořádání.
118
Vyrovnávací paměti 114 a 116 L2 a vyrovnávací paměti a 119 L3 jsou připojeny k systémové paměti 120 systémovou sběrnicí 122. K systémové sběrnici 122 mohou být také připojena paměťově mapovaná zařízení 124, jako například grafický adaptér zajišťující spojení se zobrazovací jednotkou (není zobrazena} a můstek 126 vstupně/výstupní (I/O) sběrnice. Můstek 126 I/O sběrnice spojuje systémovou sběrnici 122 s I/O sběrnicí 128, která může zajišťovat spojení pro I/O zařízení 130 a energeticky nezávislou paměť 132. Systémová sběrnice 122, můstek 126 I/O sběrnice a I/O sběrnice 128 tudíž tvoří vzájemné propojení spojující připojená zařízení, pro která jsou v oboru známy alternativní implementace. 1/0 zařízení 130 obsahují konvenční periferní zařízení včetně klávesnice, grafického ukazovacího zařízení jako je myš nebo kuličkový ovladač (trackball), zobrazovací jednotku a tiskárnu, které jsou připojeny rozhraním k 1/0 sběrnici 128 konvenčními adaptéry. Energeticky nezávislá paměť 132 může obsahovat jednotku pevného disku a uchovává operační systém a jiný software řídící činnost systému 100, který je zaveden do energeticky závislé systémové paměti 120 odezvou na zapnutí systému 100. Odborníci poznají, že data zpracovávající systém 100 může obsahovat mnoho dalších součástí, které nejsou zobrazeny na obrázku 1, jako například sériové a paralelní porty, připojení k sítím nebo připojeným zařízením, paměťový řadič řídící přístup k systémové paměti 120, atd. Takové úpravy a obměny jsou v duchu a rozsahu tohoto vynálezu.
Typická komunikační transakce na systémové sběrnici 122 obsahuje zdrojové návěští udávající zdroj transakce, cílové návěští, udávající zamýšleného příjemce transakce, adresu a/nebo data. Každé zařízení připojené na systémové sběrnicí 122 přednostně sleduje veškeré komunikační transakce na systémové sběrnici 122, pokud je to nezbytné tak zasahuje do komunikačních transakcí zamýšlených pro jiné příjemce a obnovuje změny v datech systémové paměti zkopírovaných v zařízení pokud to lze provést a pokud je to vhodné.
S odkazem na obrázek 2 je znázorněno logické blokové schéma mechanismu vyklízení položek vyrovnávací paměti podle upřednostňovaného provedení tohoto vynálezu. Mechanismus znázorněný pro účely vysvětlení vynálezu je znázorněn v kontextu vyrovnávacích pamětí 114 a 116 L2, vyrovnávacích pamětí 118 a 119 L3 spojených v uvedeném pořadí s vyrovnávacími pamětmi 114 a 116 L2 a systémovou sběrnicí 122 na obrázku 1. Tento vynález může být však implementován společně s jinými vyrovnávacími pamětmi ve víceúrovňové hierarchii vyrovnávacích pamětí, jako například s datovými vyrovnávacími pamětmi 106 a 108 LI a/nebo instrukčními vyrovnávacími pamětmi 110 a 112 LI. Tento vynález nepoužívá soukromou sběrnici 200 například mezi vyrovnávací pamětí 114 L2 a vyrovnávací pamětí 118 L3 používanou k uloženi dat do vyrovnávací paměti 114 L2. V tomto vynálezu jsou data uvolněná z vyrovnávací paměti 114 L2 zapsána do systémové paměti 120 normální datovou cestou 202 do systémové sběrnice 122. Vyklizená data jsou pak získána cestou 204 vyhledávací logiky do vyrovnávací paměti 118 L3. Vyklizená data mohou být také získána ze systémové sběrnice 122 cestou 206 • · vyhledávací logiky do vyrovnávací paměti 116 L2 a cestou 208 vyhledávací logiky do vyrovnávací paměti 119 L3 používané k uložení dat do vyrovnávací paměti 116 L2. Tento mechanismus vyklízení dat z vyrovnávací paměti L2 může být také implementován podle mechanismu sloučeného řadiče vertikální vyrovnávací paměti popsaném ve výše označené související aplikaci.
Zápisem uvolněných dat z vyrovnávací paměti 114 L2 na systémovou sběrnici 122 a uložením dat zpět do vyrovnávací paměti 118 L3 se odstraní potřeba soukromé nebo postranní datové cesty 200 mezi vyrovnávací pamětí 114 L2 a vyrovnávací pamětí 118 L3. Vyrovnávací paměť 114 L2 má jen jednu datovou cestu, která spojuje vyrovnávací paměť 114 L2 se systémovou sběrnicí 122. Obnovovací cesta 204 pro aktualizaci vyrovnávací paměti 118 L3 je znovu použita ke zjištění uvolněných dat z vyrovnávací paměti 114 L2. Vyrovnávací paměť pro vyrovnávací paměť 118 L3 nemusí být tudíž dvojitě zakončena. Nevyžadují se ECC kontroly v adresáři nebo vyrovnávací paměti pro vyrovnávací paměť 118 L3, což odstraňuje potřebu několika ECC bitů spojených s datovou cestou do vyrovnávací paměti 118 L3. Tyto ECC bity mohou být nahrazeny jedním paritním bitem pro všechny bity v datové cestě do vyrovnávací paměti 118 L3, což zmenší sběrnici do vyrovnávací paměti 118 L3, což bude mít za následek spotřebu menší oblasti křemíku a schopnost práce na vyšším kmitočtu. Chyba parity v ukládání vyklizených dat ze systémové sběrnice 122 se může ošetřit jako chyba, s tím že vyrovnávací paměť 118 L3 následně získá data ze systémové paměti 120.
Protože všechna uvolněná data z vyrovnávací paměti 114
L2 jsou zapisována na systémovou sběrnici 122, jsou « «
vyklizená data zapsána do systémové paměti 120 a do paměťového řadiče. Uvolnění dat systémovou sběrnicí 122 také umožňuje jiným, horizontálním zařízením sběrnice, jako například vyrovnávací paměti 116 L2 a spojené vyrovnávací paměti 119 L3, aktualizovat uvolnění dat z vyrovnávací paměti dříve, nežli ve schématech podle předchozího stavu techniky. Horizontální zařízení, která jsou připojena k vyrovnávací paměti 114 L2 pouze systémovou sběrnicí a mohou být umístěna na libovolné úrovni v hierarchii vyrovnávacích pamětí, mohou získat uvolněná data ze systémové sběrnice 122, a tím se udržet soudržná se systémovou pamětí 120 ve stejné době, kdy je vyrovnávací paměť 118 L3 použita k vyklizení dat do a z vyrovnávací paměti 114 L2.
Následkem toho, že vyrovnávací paměť 114 L2 uvolní data systémovou sběrnicí 122, nebude vyrovnávací paměť 118 L3 nikdy obsahovat data, která jsou změněna (M) vzhledem k systémové paměti 120 podle protokolu koherence vyrovnávacích pamětí MESI. Vyklizení dat z vyrovnávací paměti 114 L2 do systémové sběrnice 122 kvůli získání vyrovnávací pamětí 118 L3 a jinými horizontálními zařízeními dosahuje další výhody v systému implementujícím protokol koherence vyrovnávacích pamětí H-MESI. Jak je podrobně popsáno v U.S. patentové přihlášce sériové č. _ (č. spisu AT9-97-410), který je zde celý zahrnut odkazem, udává nejistý stav (H) protokolu koherence vyrovnávacích pamětí H-MESI, že návěští adresy uložené v poli návěští položky vyrovnávací paměti je platné, ale že spojená datová položka (např. řádka vyrovnávací paměti, nebo sektor vyrovnávací paměti) je neplatná. Protože data jsou uvolněna na systémovou sběrnici, odkud mohou být získána, může být položka vyrovnávací paměti, která je ve stavu H, aktualizována a přejít rychleji do sdíleného stavu (S) . Data jsou tudíž získávána
• to toto • · ·· to to
to * to • to to
to • to a to to to to v
to « to
• to to • toto to« • « « to • to to
horizontálními zařízeními zastarávají mnohem méně zařízeních.
v závislosti na poptávce a v takovýchto horizontálních
Nyní s odkazem na obrázek 3 je znázorněn obecnější vývojový diagram procesu uvolňování dat z vyrovnávací paměti ve vyšší úrovni víceúrovňové hierarchie vyrovnávacích pamětí podle upřednostňovaného provedení tohoto vynálezu. Proces může být implementován v data zpracovávajícím systému obsahujícím víceúrovňovou hierarchii vyrovnávacích pamětí jako je například hierarchie zobrazená na obrázcích 1 a 2. Proces začíná krokem 302, který znázorňuje označení oběti podle použitelných pravidel náhrady ve vyrovnávací paměti ve vyrovnávací paměti na úrovni v hierarchii vyrovnávacích pamětí jiné než nejnižší. Proces pak pokračuje krokem 304, který znázorňuje zápis dat ze zvolené oběti na systémovou sběrnici a pak krokem 306, který znázorňuje činnost sběrnice a zápis dat ze zvolené oběti ve vyrovnávací paměti na nižší úrovni hierarchie vyrovnávacích pamětí.
Proces dále pokračuje krokem 308, který znázorňuje zjištění toho, zda položka ve vyrovnávací paměti odpovídající vyklizeným datům vyžaduje aktualizaci v nižší vyrovnávací paměti. Pokud nikoli, proces prostě pokračuje krokem 316, který znázorňuje vyčkávání na další vyklízení vyrovnávací paměti. Pokud však nižší vyrovnávací paměť potřebuje aktualizaci, pokračuje proces ke kroku 310, který znázorňuje zjišťování, zda nastala chyba parity při sledováni vyklizeni vyrovnávací paměti ze systémové sběrnice. Pokud ano, pokračuje proces krokem 312, který znázorňuje ošetření operace získávání jako chybové a aktualizaci nižší vyrovnávací paměti ze systémové paměti. Pokud však není zjištěna žádná chyba parity, pokračuje « « v* ·«*»· * » β * · * ··· ··· v « · β · · · ··« ··♦ ·* ···♦ ·· ·# proces krokem 314, který znázorňuje aktualizaci nižší vyrovnávací paměti ze sledované činnosti sběrnice a pak krokem 316, který znázorňuje nečinnost procesu do dalšího vyklízení.
Přestože data vyklizená z vyrovnávací paměti L2 způsobují delší zpoždění v činnosti systémové sběrnice, jsou zapsána na systémovou sběrnici a poslána zpět do vyrovnávací paměti L3. To odstraňuje potřebu soukromé postranní” datové sběrnice mezi vyrovnávacími pamětmi L2 a L3. Vyžaduje se pouze jedna datová cesta z vyrovnávací paměti L2, která je připojena k systémové sběrnici a vyrovnávací paměť L3 nemusí být dvojitě zakončena. Obnovovací cesta použitá k aktualizaci vyrovnávací paměti L3 je znovu použita ke sledování vyklízených dat z vyrovnávací paměti L2 ze systémové sběrnice. Není také nutná kontrola ECC v adresáři a vyrovnávací paměti L3 a s tím spojená režie. Integrita dat může být ověřena jednoduchou kontrolou parity, způsobující jeden bit režie, přičemž chyby parity jsou ošetřovány jako chyba sledování a vyrovnávací paměť L3 je aktualizována ze systémové paměti.
Protože data z oběti L2 jsou vyklizena jejich zapsáním na systémovou sběrnici, je vyrovnávací paměť L3 vždy koherentní se systémovou pamětí a nikdy neobsahuje data, která jsou změněna vzhledem k systémové paměti. Jiná zařízení v multiprocesorovém systému se aktualizují dříve vyzvednutím vyprázdněných dat ze systémové sběrnice. Při použití protokolu koherence vyrovnávacích pamětí H-MESI přecházejí horizontální zařízení rychleji z přechodného stavu do sdíleného stavu.
Ačkoli byl vynález hlavně ukázán a popsán s odkazem na upřednostňované provedení, odborníkům bude zřejmé, že v něm lze provádět různé změny ve formě a podrobnostech bez odchýlení od duchu a rozsahu vynálezu.
Zastupuje:
Dr. Petr Kalenský v.r.
JUDr. Petr Kalenský advokát
120 00 Praha 2, Hálkova 2
IWy -

Claims (1)

  1. PATENTOVÉ NÁROKY
    1. Způsob uvolňování místa ve vyrovnávací paměti v první vyrovnávací paměti v systému zpracovávajícím data obsahující první a druhou vyrovnávací paměť logicky v řadě připojené k systémové paměti systémovou sběrnicí, obsahuj ící:
    zvolení oběti v první vyrovnávací paměti;
    zápis datové položky ze zvolené oběti do systémové paměti s použitím činnosti systémové sběrnice;
    sledování činnosti systémové sběrnice sledovací logikou pro druhou vyrovnávací paměť; a zjištění ze sledované činnosti systémové sběrnice, zda místo v druhé vyrovnávací paměti odpovídající zvolené oběti v první vyrovnávací paměti obsahuje datovou položku.
    2. Způsob podle nároku 1, vyznačující se tím, že krok zjištění ze sledované činnosti systémové sběrnice, zda místo ve vyrovnávací paměti ve druhé vyrovnávací paměti odpovídající zvolené oběti v první vyrovnávací paměti obsahuje datovou položku dále obsahuje:
    kontrolu stavu koherence spojeného s místem ve vyrovnávací paměti.
    3. Způsob podle nároku 1, vyznačující se tím, že dále obsahuje:
    odezvou na zjištění, že místo vyrovnávací paměti ve druhé vyrovnávací paměti odpovídající zvolené oběti v první vyrovnávací paměti neobsahuje datovou položku, aktualizaci místa vyrovnávací paměti ve druhé vyrovnávací paměti datovou položkou ze sledované činnosti systémové sběrnice.
    76 804
    4. Způsob podle nároku 1, vyznačující se tím, že dále obsahuje:
    odezvou na zjištění, že místo vyrovnávací paměti v druhé vyrovnávací paměti odpovídající zvolené oběti v první vyrovnávací paměti neobsahuje datovou položku, ověření sledované činnosti systémové sběrnice na chybu parity.
    5. Způsob podle nároku 4, vyznačující se tím, že dále obsahuje:
    odezvou na zjištění chyby v paritě ve sledované činností systémové sběrnice, ošetření sledované činnosti systémové sběrnice jako chyby.
    6. Způsob podle nároku 4, vyznačující se tím, že dále obsahuje:
    odezvou na zjištění chyby v paritě ve sledované činnosti systémové sběrnice, zařazení operace do fronty pro získání datové položky ze systémové paměti.
    7. Způsob podle nároku 4, vyznačující se tím, že dále obsahuje:
    odezvou na nezjištění chyby v paritě ve sledované činnosti sběrnice aktualizace místa ve vyrovnávací paměti ve druhé vyrovnávací paměti datovou položkou ze sledované činnosti systémové sběrnice.
    8. Část hierarchie úložného prostoru systému zpracovávajícího data, vyznačující se tím, že obsahuje:
    horní vyrovnávací paměť v hierarchii úložného prostoru;
    dolní vyrovnávací paměť logicky v řadě mezi horní vyrovnávací pamětí a jinými částmi hierarchie úložného β « * · · · · ««· ««· t· ««*· ·· «· prostoru;
    sběrnici připojenou k horní a dolní vyrovnávací paměti a spojující horní a dolní vyrovnávací paměť s jinými částmi hierarchie úložného prostoru;
    řídící logiku vyrovnávacích pamětí zapisující datovou položku z horní vyrovnávací paměti na sběrnici po uvolnění místa vyrovnávací paměti v horní vyrovnávací paměti obsahující datovou položku; a sledovací logiku pro dolní vyrovnávací paměť získávající datovou položku ze sběrnice;
    9. Zařízení podle nároku 8, vyznačující se tím, že dále obsahuje:
    koherenční logiku ověřující stav koherence místa vyrovnávací pamětí v nižší vyrovnávací paměti odpovídající uvolněnému místu vyrovnávací paměti v horní vyrovnávací paměti.
    10. Zařízení podle nároku 8, vyznačující se tím, že déle obsahuje:
    logiku pro ověřování parity, která ověřuje paritu datové položky získané ze sběrnice.
    11. Zařízení podle nároku 10, vyznačující se tím, že sledovací logika zařazuje do fronty operaci kvůli aktualizaci místa vyrovnávací paměti v nižší vyrovnávací paměti odpovídající uvolněnému místu vyrovnávací paměti v horní vyrovnávací paměti z jiných částí hierarchie úložného prostoru pokud je parita sledované datové položky špatná.
    12. Zařízení podle nároku 10, vyznačující se tím, že sledovací logika aktualizuje místo vyrovnávací paměti v nižší vyrovnávající paměti odpovídající uvolněnému
    A · · AA
    A A A A • a A A A A A V A A • · A A • A A A A A A A A A A A A A A A • A · AAA A ♦ • A A A »A A A
    místu vyrovnávací paměti v horní vyrovnávací paměti datovou položkou pokud je parita sledované datové položky správná.
    13. Zařízení podle nároku 8, vyznačující se tím, že řídící logika vyrovnávací paměti zapisuje datovou položku z horní vyrovnávací paměti na sběrnici po uvolnění místa vyrovnávací paměti pokud je datová položka změněna.
    14. Systém zpracovávající data, vyznačující se tím, že obsahuje:
    systémovou paměť;
    systémovou sběrnici připojenou k systémové paměti; první vyrovnávací paměť připojenou k systémové sběrnici;
    druhou vyrovnávací paměť logicky v řadě s první vyrovnávací pamětí v systému zpracovávajícím data;
    řídící jednotku vyrovnávací paměti zapisující datovou položku z uvolněného místa vyrovnávací paměti v první vyrovnávací paměti do systémové paměti činností systémové sběrnice na systémové sběrnici; a sledovací logiku pro druhou vyrovnávací paměť sledující činnost systémové sběrnice na systémové sběrnici kvůli zjištění, zda odpovídající místo vyrovnávací paměti ve druhé vyrovnávací paměti odpovídající uvolněnému místu vyrovnávací paměti v první vyrovnávací paměti vyžaduje aktualizaci.
    15. Systém zpracovávající vyznačující se tím, že obsahuje vyrovnávací paměť úrovně
    16. Systém zpracovávající vyznačující se tím, že
    data podle nároku 14, první vyrovnávací paměť dvě. data podle nároku 14, druhá vyrovnávací paměť
    obsahuje vyrovnávací paměť úrovně tři.
    «· ··
    17. Systém zpracovávající data podle nároku 14, vyznačující se tím, že první vyrovnávací paměť obsahuje vyrovnávací paměť úrovně jedna a druhá vyrovnávací paměť obsahuje vyrovnávací paměť úrovně dvě.
    18. Systém zpracovávající data podle nároku vyznačující se tím, že dále obsahuje:
    14, koherenční logiku ověřující stav koherence odpovídajícího místa vyrovnávací paměti ve druhé vyrovnávací paměti.
    19. Systém zpracovávající data podle nároku 14, vyznačující se tím, že dále obsahuje:
    logiku ověřující paritu, která ověřuje paritu datové položky získané sledováním ze systémové sběrnice.
    20. Systém zpracovávající data podle nároku 19, vyznačující se tím, že sledovací logika aktualizuje odpovídající místo vyrovnávací paměti ve druhé vyrovnávací paměti datovou položkou získanou sledováním ze systémové sběrnice pokud je parita sledované datové položky správná a zařadí operaci do fronty kvůli aktualizaci odpovídajícího místa vyrovnávací paměti ve druhé vyrovnávací paměti ze systémové paměti pokud je parita sledované datové položky nesprávná.
    Zastupuje:
    Dr. Petr Kalenský v.r.
    Seznam vztahových značek
    100 systém zpracovávající data 102, 104 procesor 106, 108 datová vyrovnávací paměť Ll 110, 112 instrukční vyrovnávací paměť Ll 114, 116 vyrovnávací paměť L2 118, 119 vyrovnávací paměť L3 120 (energeticky závislá) systémová paměť 122 systémová sběrnice 124 paměťově mapované zařízení 126 můstek 1/0 sběrnice 128 I/O sběrnice 130 I/O zařízení 132 energeticky nezávislou paměť 200 soukromá (postranní) datová cesta 204, 206, 208 cesta vyhledávací logiky
    *·· » ·· · · * • · • · ř · ··
    AJCój -lj ·· · ·« ·· · * ··
    128
CZ99464A 1998-02-17 1999-02-11 Uvolňování s protokolem pro aktualizaci vyrovnávací paměti (vyklizení L2) CZ46499A3 (cs)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/024,317 US6195729B1 (en) 1998-02-17 1998-02-17 Deallocation with cache update protocol (L2 evictions)

Publications (1)

Publication Number Publication Date
CZ46499A3 true CZ46499A3 (cs) 1999-09-15

Family

ID=21819971

Family Applications (1)

Application Number Title Priority Date Filing Date
CZ99464A CZ46499A3 (cs) 1998-02-17 1999-02-11 Uvolňování s protokolem pro aktualizaci vyrovnávací paměti (vyklizení L2)

Country Status (5)

Country Link
US (1) US6195729B1 (cs)
JP (1) JP3434462B2 (cs)
KR (1) KR100320978B1 (cs)
CZ (1) CZ46499A3 (cs)
PL (1) PL331475A1 (cs)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535958B1 (en) * 1999-07-15 2003-03-18 Texas Instruments Incorporated Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US6460114B1 (en) * 1999-07-29 2002-10-01 Micron Technology, Inc. Storing a flushed cache line in a memory buffer of a controller
US6338124B1 (en) 1999-08-04 2002-01-08 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper LRU information
US6321305B1 (en) 1999-08-04 2001-11-20 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly cancelling master allocation of read data
US6275909B1 (en) * 1999-08-04 2001-08-14 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper cache state information
US6343347B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction
US6343344B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation System bus directory snooping mechanism for read/castout (RCO) address transaction
US6353875B1 (en) 1999-08-04 2002-03-05 International Business Machines Corporation Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
US6349367B1 (en) 1999-08-04 2002-02-19 International Business Machines Corporation Method and system for communication in which a castout operation is cancelled in response to snoop responses
US6502171B1 (en) 1999-08-04 2002-12-31 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
US6324617B1 (en) 1999-08-04 2001-11-27 International Business Machines Corporation Method and system for communicating tags of data access target and castout victim in a single data transfer
US6446169B1 (en) 1999-08-31 2002-09-03 Micron Technology, Inc. SRAM with tag and data arrays for private external microprocessor bus
US6789168B2 (en) * 2001-07-13 2004-09-07 Micron Technology, Inc. Embedded DRAM cache
US6901532B2 (en) * 2002-03-28 2005-05-31 Honeywell International Inc. System and method for recovering from radiation induced memory errors
US7734582B2 (en) * 2004-11-16 2010-06-08 International Business Machines Corporation Apparatus, system, and method for cache synchronization
US20060195662A1 (en) * 2005-02-28 2006-08-31 Honeywell International, Inc. Method for deterministic cache partitioning
US7277992B2 (en) * 2005-03-22 2007-10-02 Intel Corporation Cache eviction technique for reducing cache eviction traffic
US7437597B1 (en) 2005-05-18 2008-10-14 Azul Systems, Inc. Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
WO2007094045A1 (ja) * 2006-02-14 2007-08-23 Fujitsu Limited 読み出し処理装置および読み出し方法
JP2008046685A (ja) * 2006-08-10 2008-02-28 Fujitsu Ltd 二重化システム及び系切り換え方法
US7739570B2 (en) * 2007-07-18 2010-06-15 International Business Machines Corporation System and method for increasing error checking performance by calculating CRC calculations after multiple test patterns for processor design verification and validation
US7647539B2 (en) * 2007-07-18 2010-01-12 International Business Machines Corporation System and method of testing using test pattern re-execution in varying timing scenarios for processor design verification and validation
US7661023B2 (en) * 2007-07-18 2010-02-09 International Business Machines Corporation System and method for verification of cache snoop logic and coherency between instruction & data caches for processor design verification and validation
US7747908B2 (en) * 2007-07-18 2010-06-29 International Business Machines Corporation System and method for creating different start cache and bus states using multiple test patterns for processor design verification and validation
US7689886B2 (en) * 2007-07-18 2010-03-30 International Business Machines Corporation System and method for predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification and validation
US8127192B2 (en) * 2007-07-18 2012-02-28 International Business Machines Corporation Predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification/validation in interrupt mode
US8185694B2 (en) * 2008-07-25 2012-05-22 International Business Machines Corporation Testing real page number bits in a cache directory
JP2012103826A (ja) * 2010-11-09 2012-05-31 Fujitsu Ltd キャッシュメモリシステム
US9727475B2 (en) * 2014-09-26 2017-08-08 Intel Corporation Method and apparatus for distributed snoop filtering
KR101842764B1 (ko) 2016-03-18 2018-03-28 연세대학교 산학협력단 하드웨어 가속기와 호스트 시스템 사이의 데이터 일관성 유지 장치 및 방법
US11461236B2 (en) * 2019-05-24 2022-10-04 Texas Instruments Incorporated Methods and apparatus for allocation in a victim cache system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69327643T2 (de) * 1992-12-18 2000-08-31 Advanced Micro Devices, Inc. Cachespeichersysteme
US5588131A (en) * 1994-03-09 1996-12-24 Sun Microsystems, Inc. System and method for a snooping and snarfing cache in a multiprocessor computer system
US5537575A (en) * 1994-06-30 1996-07-16 Foley; Denis System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
US5651137A (en) * 1995-04-12 1997-07-22 Intel Corporation Scalable cache attributes for an input/output bus
US5832250A (en) * 1996-01-26 1998-11-03 Unisys Corporation Multi set cache structure having parity RAMs holding parity bits for tag data and for status data utilizing prediction circuitry that predicts and generates the needed parity bits
JPH09237223A (ja) * 1996-03-02 1997-09-09 Toshiba Corp バスブリッジを用いたコンピュータシステム
US5860117A (en) * 1996-05-31 1999-01-12 Sun Microsystems, Inc. Apparatus and method to improve primary memory latencies using an eviction buffer to store write requests
US5900011A (en) * 1996-07-01 1999-05-04 Sun Microsystems, Inc. Integrated processor/memory device with victim data cache
US5875201A (en) * 1996-12-30 1999-02-23 Unisys Corporation Second level cache having instruction cache parity error control

Also Published As

Publication number Publication date
PL331475A1 (en) 1999-08-30
JPH11328015A (ja) 1999-11-30
US6195729B1 (en) 2001-02-27
KR100320978B1 (ko) 2002-01-18
KR19990072593A (ko) 1999-09-27
JP3434462B2 (ja) 2003-08-11

Similar Documents

Publication Publication Date Title
CZ46499A3 (cs) Uvolňování s protokolem pro aktualizaci vyrovnávací paměti (vyklizení L2)
US12007907B2 (en) Victim cache with write miss merging
US6249846B1 (en) Distributed data dependency stall mechanism
CN107066396B (zh) 用于操作虚拟索引的物理标记的缓存的装置及方法
TWI526829B (zh) 電腦系統、用於存取儲存裝置之方法及電腦可讀儲存媒體
US6981106B1 (en) System and method for accelerating ownership within a directory-based memory system
US7284102B2 (en) System and method of re-ordering store operations within a processor
US20080010417A1 (en) Read/Write Permission Bit Support for Efficient Hardware to Software Handover
US5708792A (en) Method and apparatus for a coherent copy-back buffer in a multipressor computer system
JPH10254773A (ja) アクセス方法、処理装置およびコンピュータ・システム
US7243194B2 (en) Method to preserve ordering of read and write operations in a DMA system by delaying read access
US9378148B2 (en) Adaptive hierarchical cache policy in a microprocessor
US6105108A (en) Method and apparatus for releasing victim data buffers of computer systems by comparing a probe counter with a service counter
KR20030024895A (ko) 캐시 코히어런트 멀티-프로세서 시스템에서 순서화된입출력 트랜잭션을 파이프라이닝하기 위한 방법 및 장치
US6202126B1 (en) Victimization of clean data blocks
US6345339B1 (en) Pseudo precise I-cache inclusivity for vertical caches
US6061765A (en) Independent victim data buffer and probe buffer release control utilzing control flag
US6950906B2 (en) System for and method of operating a cache
KR100380674B1 (ko) 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템

Legal Events

Date Code Title Description
PD00 Pending as of 2000-06-30 in czech republic