CZ20012153A3 - Elektronický deník s ověřením pro prodejní místo a způsoby jeho použití - Google Patents

Elektronický deník s ověřením pro prodejní místo a způsoby jeho použití Download PDF

Info

Publication number
CZ20012153A3
CZ20012153A3 CZ20012153A CZ20012153A CZ20012153A3 CZ 20012153 A3 CZ20012153 A3 CZ 20012153A3 CZ 20012153 A CZ20012153 A CZ 20012153A CZ 20012153 A CZ20012153 A CZ 20012153A CZ 20012153 A3 CZ20012153 A3 CZ 20012153A3
Authority
CZ
Czechia
Prior art keywords
node
transaction
local
processing
response
Prior art date
Application number
CZ20012153A
Other languages
English (en)
Inventor
Yoanna Baumgartner
Mark Edward Dean
Anna Elman
Original Assignee
International Business 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 Business Machines Corporation filed Critical International Business Machines Corporation
Publication of CZ20012153A3 publication Critical patent/CZ20012153A3/cs

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control

Description

Předložený vynález se obecně týká způsobu a zařízeni pro zpracováni dat, konkrétně zpracování dat pomocí systému s nejednotným přístupem do paměti (NUMA - Non-Uriiform Memory Access). Přesněji se předložený vynález týká zařízení pro zpracování dat a způsobu komunikace uvnitř zařízení pro zpracování dat s nejednotným přístupem do paměti, ve kterém jsou požadavky čtení promyšleně odesílány do vzdálené paměti.
Dosavadní stav techniky
Z dosavadního stavu techniky je dobře známo, že vyššího výkonu počítačového systému je možné dosáhnout spřažením výpočetního výkonu několika samostatných procesorů do tandemu. Víceprocesorové počítačové systémy mohou být navrženy na základě množství různých topologií, z nichž některé mohou být vhodnější pro konkrétní aplikace v závislosti na požadavcích na výkon a softwarovém prostředí každé z aplikací. Jednou z nejběžnějších víceprocesorových počítačových topologií je symetrická víceprocesorová konfigurace, kde několik procesorů sdílí společné prostředky, jako je systémová paměť, podsystém vstupu/výstupu, které jsou obvykle připojeny ke sdílenému systémovému propojení. Takové počítačové systémy jsou označovány jako symetrické víceprocesorové systémy, protože všechny procesory v symetrické konfiguraci mají v ideálním případě stejnou čekací dobu vzhledem k datům uloženým ve sdílené systémové paměti.
Přestože symetrické víceprocesorové počítačové systémy dovolují použití relativně jednoduché metodiky meziprocesorové komunikace a sdílení dat, mají symetrické víceprocesorové počítačové systémy omezenou škálovatelnost. Jinými slovy, zatímco je obecně očekáváno zvýšení výkonu typického symetrického víceprocesorového počítačového systému při zvětšení jeho měřítka
-2O >
(tj. přidáním dalších procesorů), vlastní omezení sběrnice, paměti, a šířky pásma vstupu/výstupu zamezují dosažení významných výhod ' rozšířením symetrického víceprocesorového systému nad rozsah daný implementací, při kterém je využití těchto sdílených prostředků optimalizováno. Vlastní symetrická topologie je tedy omezena určitým rozsahem díky omezením šířky pásma, zejména systémové paměti, při zvýšení měřítka systému. Symetrické systémy rovněž nejsou dobře škálovatelné z hlediska efektivnosti výroby. Přestože například některé komponenty mohou být optimalizovány pro použití jak v jednoprocesorových, tak v symetrických víceprocesorových počítačových systémech malých měřítek, jsou tyto komponenty často neefektivní při použití v symetrických víceprocesorových systémech velkých měřítek. Naopak komponenty navržené pro použití v symetrických víceprocesorových systémech velkých měřítek jsou nepraktické pro použití v menších systémech z hlediska jejich ceny.
V důsledku toho byla vyvinuta topologie víceprocesorových počítačových systémů, známá jako topologie s nejednotným přístupem do paměti, která adresuje řadu omezení symetrických víceprocesorových počítačových systémů za cenu přidané komplexnosti. Typický počítačový systém s nejednotným přístupem do paměti obsahuje množství propojených uzlů, z nichž každý obsahuje jeden nebo více procesorů a lokální „systémovou paměť. Takové počítačové systémy jsou označovány jako systémy s nejednotným přístupem do paměti, protože každý z procesorů má nižší čekací dobu vzhledem k datům uloženým v systémové paměti v jeho lokálním uzlu než vzhledem k datům uloženým v systémové paměti ve vzdáleném uzlu. Systémy s nejednotným přístupem do paměti mohou být dále klasifikovány jako nespojité či Spojité prostřednictvím rychlé vyrovnávací paměti, v závislosti na tom, zda je spojitost dat udržována mezi rychlými vyrovnávacími paměťmi v různých uzlech či nikoli. Komplexnost systémů s nejednotným přístupem do paměti spojitých prostřednictvím rychlé vyrovnávací paměti je z velké části- přisuzována nutnosti
003 009 Ο 3 0 Ο
9 ο α 0 ο η ο 0-0 0
Ο ®β9Ο ·) β 0 0 Ο Ο 9 » Ο 3 0 1 ’ Ο -Ο Ο Ο Π Ο Ο Ο ~ Ο Ο '·> ο rj Ο -? Ο ·0 Ο Ο · Ό Ί další komunikace hardware vyžadované pro údržbu spojitosti dat nejen mezi různými úrovněmi rychlé vyrovnávací paměti a systémové paměti uvnitř každého uzlu ale rovněž mezi rychlou vyrovnávací a systémovou pamětí různých uzlů. Počítačové systémy s nejednotným přístupem do paměti však řeší omezení škálovatelnosti běžných symetrických víceprocesorových počítačových systémů díky tomu, že každý uzel uvnitř systému s nejednotným přístupem do paměti může být implementován jako menší symetrický víceprocesorový systém. Komponenty sdílené uvnitř každého uzlu mohou tedy být optimalizovány pro použití pouze několika málo procesory, zatímco celý systém využívá výhod vyplývajících z dostupnosti souběžnosti velkého měřítka při zachování relativně nízké čekací doby.
Základní výkonnostní charakteristikou v případě systémů s nejednotným přístupem do paměti spojitých prostřednictvím rychlé vyrovnávací paměti je čekací doba spojená s komunikačními transakcemi přenášenými pomocí propojení spojujícího uzly. Zejména transakce čtení, které jsou zdaleka nejrozšířenějším typem transakcí, mohou mít dvojnásobnou čekací dobu při přístupu k datům rezidentním v systémové paměti vzdáleného systému v porovnání s transakcemi čtení při přístupu k datům rezidentním v systémové paměti lokálního systému. Vzhledem k relativně dlouhé čekací době spojené s transakcemi čtení vysílanými na propojení uzlů oproti transakcím čtení na lokálních propojeních je užitečné a žádoucí redukovat čekací dobu transakcí čtení vysílaných přes propojení uzlů.
Podstata vynálezu
Předložený vynález vytváří dle prvního hlediska počítačový systém zahrnující: propojení uzlů; a alespoň jeden lokální uzel pro zpracování a vzdálený uzel pro zpracování, z nichž každý je připojen ke zmíněnému propojení uzlů, zmíněný lokální uzel pro zpracování obsahující lokální propojení, procesor a systémovou paměť připojené k lokálnímu propojení a řadič uzlu vložený mezi ·> o zmíněné lokální propojení a zmíněné propojení uzlu, vyznačující se tím, že zmíněný řadič uzlu promyšleně odesílá dotazovací transakci přijatou ze zmíněného lokálního propojení zmíněnému vzdálenému uzlu pro zpracování pomocí zmíněného propojení uzlů a kde zmíněný řadič ovládá odezvu na zmíněnou dotazovací transakci přijatou ze zmíněného vzdáleného uzlu pro zpracování ve shodě s provedením zmíněné dotazovací transakce ve zmíněném lokálním uzlu pro zpracování.
Dle druhého hlediska předložený vynález vytváří způsob komunikace v počítačovém systému obsahujícím propojení uzlů, které spojuje alespoň lokální uzel pro zpracování a vzdálený uzel pro zpracování, zmíněný lokální uzel pro zpracování obsahující lokální propojení, procesor a systémovou paměť připojené k lokálnímu propojení a řadič uzlu vložený mezi zmíněné lokální propojení a zmíněné propojení uzlu, vyznačující se tím, že zahrnuje: promyšlené odeslání dotazovací transakce přijaté ze zmíněného lokálního propojení zmíněnému vzdálenému uzlu pro zpracování pomocí zmíněného propojení uzlů; a jako odezva na přijetí odezvy na zmíněnou dotazovací transakci od zmíněného vzdáleného uzlu pro zpracování, ve zmíněném lokálním uzlu pro zpracování, ovládání zmíněné odezvy na zmíněnou dotazovací transakci ve shodě s provedením zmíněné dotazovací transakce ve zmíněném lokálním uzlu pro zpracování.
Nové znaky charakterizující vynález jsou dále popsány v připojených patentový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:
Obr.l představuje příklad provedení systému s nejednotným přístupem do paměti podle předloženého vynálezu;
Obr.2 představuje detailní blokové schéma řadiče uzlu znázorněného na obr.l;
*
-50br.3A a 3B představuji logické ·?
diagramy postupu, které o
9 společně znázorňují přiklad způsobu zpracování dotazovacích transakcí, ve kterých požadavky čtení ve zdrojovém uzlu pro zpracování jsou promyšleně předávány vzdálenému uzlu pro zpracování; a
0br.4A - obr.4D společně znázorňují příklad scénáře zpracování v souladu se způsobem znázorněným na obr.3A a obr.3B.
Příklady provedení vynálezu přihlédnutím k výkresům zejména k obr.l, bude nyní popsán příklad provedení systému s nejednotným přístupem do paměti podle předloženého vynálezu. Znázorněné provedení může být realizováno například jako pracovní stanice, server nebo mainframe počítač. Jak je znázorněno, počítačový systém zahrnuje určitý počet (N>2) uzlů pro zpracování 8a-8n, které jsou vzájemně propojeny pomocí uzlového propojení 22. Každý z uzlů pro zpracování 8a-8n může zahrnovat M (M>0) procesorů 10., lokální propojení 16 a systémovou paměť 18., ke které je přistupováno pomocí paměťového řadiče 17. Procesory lOa-lOm jsou přednostně (ale nikoli nezbytně) identické a mohou zahrnovat procesor typu
PowerPC™, dodávaných firmou International Business Machines (IBM), Armonk, New York. Kromě registrů, logiky toku instrukcí a prováděcích jednotek pro spouštění programových instrukcí, které jsou obecně označovány jako jádro procesoru 12, každý z procesorů lOa-lOm zahrnuje rovněž hierarchii vnitřních vyrovnávacích pamětí, která je využívána pro zavádění dat do připojeného jádra procesoru 12 ze systémových pamětí 18.. Každá z hierarchií vyrovnávacích pamětí 14 může obsahovat například vyrovnávací paměť úrovně 1 (LI cache) a vyrovnávací paměť úrovně 2 (L2 cache) o kapacitách 8-32 kB (LI), respektive 1-16 MB (L2).
Každý z uzlů pro zpracování 8a-8n dále zahrnuje odpovídající řadič uzlu 20 připojený mezi lokální propojení 16 a uzlové propojení 22. Každý řadič uzlu 20 slouží jako lokální zástupce '> ·.·>
o o vzdálených uzlů pro zpracováni 8. prováděním alespoň dvou funkcí. Za prvé každý z řadičů uzlu 20 prohledává přidružené lokální propojení 16 a usnadňuje přenos lokálních komunikačních transakcí ke vzdáleným uzlům pro zpracováni 8.. Za druhé každý z řadičů uzlu 20 prohledává komunikační transakce na uzlovém propojení 22 a ovládá významné komunikační transakce na přidruženém lokálním propojeni 16. Komunikace na . každém lokálním propojení 16 je řízena rozhodovacím řadičem 24. Rozhodovací řadiče 24 regulují přístup k lokálním propojením 16 na základě signálů požadavků sběrnice generovaných procesory 10 a sestavuji spojité odezvy pro prohledané komunikační transakce na lokálních propojeních 16, jak je blíže popsáno níže.
Lokální propojení je spojeno pomocí mezisběrnicového přemostění 26 k mezisběrnici 30, která může být implementována např. jako lokální PCI sběrnice. Mezisběrnicové přemostění 26 poskytuje jednak cestu s nízkou dobou odezvy, kterou procesory 10 mohou přímo přistupovat ke vstupním/výstupním zařízením 32 a k paměťovým zařízením 34, která jsou mapována k paměti sběrnice a/nebo k prostorům 1/0 adres a dále cestu s velkou šířkou pásma, pomocí které mohou vstupni/výstupní zařízení 32 a paměťová zařízení 34 přistupovat k systémové paměti. Vstupni/výstupní zařízení 32 mohou zahrnovat například zobrazovací zařízení, klávesnici, grafický kurzor anebo sériové či paralelní porty pro připojení k externím sítím nebo připojeným zařízením. Paměťová zařízení mohou zahrnovat optické či magnetické disky které poskytují stálé médium pro uložení operačního systému a aplikačního software.
Všechny procesory 10 v sytému s nejednotným přístupem do paměti 6 sdílejí jediný fyzický paměťový prostor, což znamená, že každá fyzické adrese náleží jediné paměťové místo v jedné ze systémových pamětí 18. Celkový obsah systémové paměti, ke které může být obecně přistupováno libovolným z procesorů 10 systému s nejednotným přístupem do paměti 6, může tedy být nahlížen jakožto rozdělený mezi systémové paměti 18. Například podle ilustrativního provedení předloženého vynálezu, majícího čtyři uzly pro zpracování 8., může mít systému s nejednotným přístupem do paměti 16 GB fyzického adresového prostoru obsahujícího jednak paměťovou oblast pro obecné použití, jednak rezervovanou paměťovou oblast. Paměťová oblast pro obecné použití je rozdělena do segmentů o velikosti 500 MB, přičemž každému ze čtyř uzlů pro zpracování 8_ je přiřazen každý čtvrtý segment. Rezervovaná paměťová oblast, o velikosti přibližně 2 GB obsahuje oblasti řízeni systému, periferní paměť a oblasti vstupu/výstupu, které jsou přiřazeny každému z příslušných uzlů pro zpracování 8_.
Pro účely předloženého popisu uzel pro zpracování 8^, který ve své systémové paměti 18 ukládá specifické údaje, je nazýván domovským uzlem těchto údajů; oproti tomu ostatní uzly pro zpracování 8a-8n jsou nazývány vzdálenými uzly vzhledem k těmto specifickým údajům.
Protože data uložená v libovolné systémové paměti 18 mohou být vyžadována, přistupována a modifikována libovolným z procesorů 10 systému s nejednotným přístupem do paměti 6, systém s nejednotným přístupem do paměti 6 implementuje protokol spojité vyrovnávací paměti pro udržení spojitosti mezi vyrovnávacími paměťmi stejného uzlu pro zpracování i mezi vyrovnávacími paměťmi různých uzlů pro zpracováni. Systém s nejednotným přístupem do paměti 6 je tedy správně klasifikován jako počítačový systém s nejednotným přístupem do paměti se spojitou vyrovnávací paměti (CC-NUMA systém). Implementovaný protokol spojité vyrovnávací paměti je z hlediska implementace závislý a může představovat například známý protokol typu MESI (Modifikovaný, Výhradní, Sdílený, Neplatný ~ angl. MESI = Modified, Exclusive, Shared, Invalid) nebo jeho variantu. Dále se předpokládá, že hierarchie vyrovnávacích paměti 14 a rozhodovací řadiče 24 implementují běžný MESI protokol, ze kterého řadiče uzlů 20 rozpoznají stavy M, S a I a považují stav E za stav vnořený do stavu M z důvodu korektnosti. To znamená, že řadiče uzlů 20 považují data držená výhradně vzdálenou vyrovnávací
-8pamětí za modifikovaná ať už tato data jsou či nejsou aktuálně modifikována.
Lokální propojení 16 a uzlová propojení 22 mohou být implementována pomoci libovolné architektury vysílání výzev založené na sběrnici, přepínači či architektury nepoužívající vysíláni výzev založené na přepínači. Avšak podle přednostního provedení je alespoň uzlové propojení 22 implementováno jako propojeni nepoužívající vysílání výzev založené na přepínači, řízené komunikačním protokolem 6xx, vyvinutým společností IBM Corporation. Lokální propojení 16 a uzlové propojení 22 dovolují rozdělené transakce, což znamená, že neexistuji žádné pevné časové vztahy mezi držením adres a dat, zahrnující komunikační transakci a že datové pakety mohou být řazeny odlišně než přiřazené adresové pakety. Využití lokálních propojení 16 a uzlového propojení 22 je rovněž přednostně zvýšeno pomocí zřetězených komunikačních transakci, což dovoluje zařazeni následující komunikační transakce před hlavni program předchozí komunikační transakce přijímající odezvy spojitosti od každého příjemce.
Nezávisle na typu či typech propojovacích architektur, které jsou implementovány, alespoň tři typy „paketů (paket je zde všeobecně užit jako diskrétní jednotka informace) - adresa, data, a odezva spojitosti - jsou užity pro přenos informací mezi uzly pro zpracování 8. pomocí uzlového propojení 22 a mezi vyhledávači pomoci lokálních propojení 16. S přihlédnutím k tab.I a tab.I je dále učiněn přehled významných polí a definic pro adresové, respektive datové pakety.
Tab.I
Název pole Popis
Address <0:7> Modifikační bity definující atributy komunikační transakce pro spojitost, dočasné zobrazeni a ochranu
Address <7:15> Identifikátor použitý pro identifikaci všech paketů v rámci komunikační transakce
Address <16:63> Část adresy indikující fyzickou, virtuální nebo I/O adresu v rámci požadavku
AParity <0:2> Indikuje paritu adresových bitů <0:63>
TDescriptors Indikuje rozsah a typ komunikační transakce
7
O o
O í 3 »0
0930 Π
0 0o
Ί 9'i .3 33 íon'>
9 00
9 00
O O 00
5 00
93
0 3.-}
O > 0 0 O 9
Tab.II
Název pole Popis
Data <0:127> Data transakci čteni a zápisu
Data Parity <0:15> Indikuje paritu pro datové řádky <0:127>
DTag <16:63> Identifikátor použitý pro vzájemné přiřazení datového paketu a adresového paketu
Dvalid <0:2> Indikuje, zda pole Data a DTag obsahují platné informace
Jak je patrné z tab.I a tab.II, za účelem povolení uzlu příjemce či vyhledávače určit komunikační transakci, ke které každý paket náleží, je každý paket v komunikační transakci identifikován pomocí identifikátoru transakce. Znalcům v oboru je zřejmé, že další logika řízení toku a přiřazené signály řízeni toku mohou být použity pro regulaci využiti omezených komunikačních zdrojů.
V každém z uzlů pro zpracováni 13 jsou odezvy stavu a spojitosti komunikovány mezi každým vyhledávačem a lokálním rozhodovacím řadičem 24. Vedení signálů uvnitř lokálních propojení 16, které jsou využívány pro komunikaci stavu a spojitosti jsou shrnuta níže v tab.III.
Tab.III
Název signálu Popis
AstatOut <0:l> Kódované signály uplatňované každým sběrnicovým přijímačem za účelem indikace informací řízení toku nebo chybových informací rozhodovacímu řadiči
Astatln <0:1> Kódované signály uplatňované rozhodovacím řadičem jako odezva zaznamenání signálů AstatOut uplatňovaných sběrnicovými řadiči
ArespOut <0:2> Kódované signály uplatňované každým sběrnicovým přijímačem za účelem indikace informace spojitosti rozhodovacímu řadiči
Arespln <0:2> Kódované signály uplatňované rozhodovacím řadičem jako odezva zaznamenání signálů ARespOut uplatňovaných sběrnicovými řadiči
Odezvy stavu a spojitosti vysílané pomocí vedení AResp a AStat lokálních propojení 16 mají přednostně pevný, avšak programovatelný časový vztah vůči příslušným adresovým paketům. Například AStatOut volby, které dávají předběžnou indikaci, zda
-10každý vyhledávač úspěšně přijal adresový paket vyslaný na lokální propojení 16 či nikoli, mohou být vyžadovány ve druhém cyklu, následně po přijetí adresového paketu. Rozhodovací řadič 24 kompiluje AStatOut volby a poté provádí volbu AStatln o pevný, avšak programovatelný počet (např. 1) cyklů později. Možné volby
AStat jsou shrnuty níže v tab.IV.
Tab.IV
AStat volba Význam
Null Nečinnost
Ack Transakce přijata vyhledávačem
Error Chyba parity detekována v transakci
Retry Nový pokus provedeni transakce, obvykle z důvodu řízení toku
Následně po periodě AStatln mohou být vyžadovány volby AStatOut o pevný, avšak programovatelný počet cyklů (např. 2) později. Rozhodovací řadič 24 zároveň kompiluje volby ARespOut každého vyhledávače a doručí volbu ARespIn, přednostně během následujícího cyklu. Možné volby AResp přednostně obsahují odezvy spojitosti shrnuté v tabulce V.
Tab.V
Odezva spojitosti Význam
Retry Zdroj požadavku se musí pokusit znovu provést transakci - obvykle z důvodů řízeni toku
Modified intervention Vedení je modifikováno ve vyrovnávací paměti a bude předáno žadateli
Shared Vedení je vedeno jako sdílené ve vyrovnávací paměti
Null Vedení je ve vyrovnávací paměti neplatné
ReRun Vyhledaný požadavek má dlouhou dobu odezvy a zdroj požadavku bude instruován za účelem nového spuštění transakce později
Volba ReRun, která je obvykle prováděna řadičem uzlu 20, indikuje, že vyhledaný požadavek má dlouhou dobu odezvy a že zdroj požadavku bude instruován za účelem nového spuštění transakce později. V porovnáni s volbou Retry AResp volba ReRun
0
ftΟ
Φ9 οο
Ο :·) činí příjemce transakce, který zvolil volbu ReRun (a nikoli původce transakce) zodpovědného za způsobení nového pozdějšího spuštění komunikační transakce.
Na obr.2 je znázorněno detailní blokové schéma řadiče uzlu 20 systém s nejednotným přístupem do paměti 6 z obr.1. Jak je z obr. 2 patrné, každý řadič uzlu 2_0, který je zapojen mezi lokálním propojením 16 a uzlovým propojením 22, obsahuje přijímací jednotku transakcí 40, vysílací jednotku transakcí 42, přijímací jednotku dat 44 a vysílací jednotku dat £6. Přijímací jednotka transakcí 40, vysílací jednotka transakcí 42, přijímací jednotka dat 44 a vysílací jednotka dat 46 mohou být implementovány například jako programovatelné pole logických členů nebo aplikačně specifické integrované obvody. Jak je naznačeno, adresové a datové cesty řadičem uzlu 20 jsou rozdvojeny, přičemž adresové (a koherenční) pakety jsou zpracovávány přijímací jednotkou transakcí 40 a vysílací jednotkou transakcí 42 a datové pakety jsou zpracovávány přijímací jednotkou dat 44 a vysílací jednotkou dat 46.
Přijímací jednotka transakcí 40, která je určena pro zastavení transakčního toku z uzlového propojení 22, zodpovídá za přijetí adresových a koherenčních paketů z uzlového propojení 22, provádění transakcí v lokálním propojení 16 a předávání odezev vysílací jednotce transakcí 42. Přijímací jednotka transakcí £0 obsahuje multiplexer odezev 52, který přijímá pakety z uzlového propojení 22 a předává vybrané pakety hlavní sběrnici 54 a logice koherenční odezvy 56 uvnitř vysílací jednotky transakcí 42. Jako odezvu na přijetí adresového paketu z multiplexeru odezev 52 může hlavní sběrnice 54 iniciovat komunikační transakci na svém lokálním propojení 16, která je shodná či odlišná od typu komunikační transakce, indikované přijatým adresovým paketem.
Vysílací jednotka transakcí 42, která je označena svým názvem je průchodištěm pro transakce, tekoucí do uzlového propojení 22, obsahuje vyrovnávací paměť 60 s více vstupy, do které jsou dočasně ukládány atributy komunikačních transakcí,
5 * 0 b r, O
3 3 o -3 a o o
Λ
!9 d a 0 n ' i 0 o a O 9 <3 n
3 a 7 σ O .-·) O O O
0-3 « * -7 b 0 O ODí1 0
předávaných uzlovému propojení 22, které mají být provedený. Atributy transakcí, uložené na vstupu vyrovnávací paměti 60 přednostně obsahují alespoň adresu (obsahující označení) transakce, typ transakce a počet očekávaných odezev spojitosti. Každý ze vstupů vyrovnávací paměti má přiřazen stav, který může být nastaven jako může být smazán, nebyla vyřízena, propojení 22 s přijímací jednotkou transakcí 40 za
Null, označující, že vstup vyrovnávací paměti
ReRun, označující, že předávání adresových jednotka nebo
Kromě vysílací transakce stále paketů uzlovému interaguje účelem zpracování transakcí transakcí požadavků paměti a vydává příkazy přijímací jednotce dat 44 a vysílací jednotce dat 46 za účelem řízení přenosu dat mezi lokálním propojením 16 a uzlovým propojením 22. Vysílací jednotka transakci 42 rovněž implementuje zvolený (tj. MSI) koherenční protokol pro uzlové propojení 22 pomocí logiky koherenční odezvy a udržuje koherenční adresář 50 pomocí řídicí logiky adresáře 58.
Koherenční adresář 50 udržuje údaje o adresách systémové paměti dat (např. řádky vyrovnávací paměti) předané do vyrovnávacích pamětí ve vzdálených uzlech, pro které je lokální uzel pro zpracování domovským uzlem. Označení adresy pro každý řádek vyrovnávací paměti je uloženo společně s identifikátorem každého ze vzdálených uzlů pro zpracování, majícím kopii řádku vyrovnávací paměti a koherenční stav řádku vyrovnávací paměti v každém takovém vzdáleném uzlu pro zpracování. Možné koherenční stavy pro vstupy koherenčního adresáře 50 jsou shrnuty v tab.VI.
3
-13aa
Ο06 10
3ο
0 3Ο
3
30
Ο Ο~> D ο Ο Ο ο ο
3 η'>
3·3 Ο ηο οο
ΟΟ
Ο -3
Ο Ο 3 Ο ·>
Tab.VI
Stav koherenčního adresáře Možný (é) stav(y) lokální vyrovnávací paměti Možný(é) stav(y) vzdálené vyrovnávací paměti Význam
Modifikovaný (M) I Μ, E nebo I Řádek vyrovnávací paměti může být modifikován ve vzdáleném uzlu vzhledem k systémové paměti v domovském uzlu
Sdílený (S) S nebo I S nebo I Řádek vyrovnávací paměti může být držen nevýhradně ve vzdáleném uzlu
Neplatný (I) Μ, E, S nebo I I Řádek vyrovnávací paměti není držen žádným vzdáleným uzlem
Nevyřízený sdílený S nebo I S nebo I Řádek vyrovnávací paměti je v procesu invalidace ve vzdáleném uzlu
Nevyřízený modifikovaný I Μ, E nebo I Řádek vyrovnávací paměti, který může být modifikován vzdáleně, je v procesu zpětného zápisu do systémové paměti v domovském uzlu, případně s invalidaci ve vzdáleném uzlu
Jak je patrné z tab.VI, znalost koherenčnich stavů řádků vyrovnávací paměti držených vzdálenými uzly pro zpracováni, je nepřesná. Tato nepřesnost vyplývá ze skutečnosti, že řádek vyrovnávací paměti držený vzdáleně může provést přechod ze stavu S do stavu I, z E do I, nebo z E do M bez oznámeni této skutečnosti řadiči uzlu 20 domácího uzlu.
Na obr.3A a obr.3B jsou znázorněny dva logické diagramy postupu, které společně znázorňují přiklad způsobu zpracování transakcí požadavku čtení podle předloženého vynálezu. S přihlédnutím k obr.3A, začíná proces v bloku 70 a poté pokračuje blokem 72, který zobrazuje procesor 10a uzlu pro zpracování 8_a, provádějící transakci požadavku čteni v jeho lokálním propojeni 16. Transakce požadavku čtení je přijata řadičem uzlu 20 a zbytek vyhledávačů připojených k lokálnímu propojení 16 uzlu pro zpracování 8a. Jako odpověď na přijetí požadavku čtení vyhledávače ovládají volby AStatOut, které jsou
-14zkompilovány rozhodovacím řadičem 24 za účelem vygenerování volby AStatln, jak je znázorněno v bloku 74. Před tím, než řadič uzlu 20 poskytne volbu Ack AStatOut pro povoleni provedení požadavku čtení, řadič uzlu 20 přidělí vstup čteni a prázdný vstup ve vyrovnávací paměti 60, pokud požadavek čtení specifikuje adresu v paměti 18 vzdáleného systému. Jak bude popsáno níže, alokováním obou vstupů je řadič uzlu 20 schopen promyšleně předat požadavek čtení domovskému uzlu požadovaného řádku vyrovnávací paměti a správně provést odezvu na požadavek ctěni nezávisle na výsledku následné volby AResp v uzlu pro zpracování 8a.
S přihlédnutím k bloku 76, pokud volba AStatln vygenerovaná v bloku 74 je Retry , pak je požadavek čtení nevyhnutelně zrušen, existující přidělené vstupy ve vyrovnávací paměti 60 jsou uvolněny a poté se proces vrací do bloku 72, který byl popsán. V tomto případě procesor 10a musí znovu provést požadavek čtení později. Pokud však volba AStatln generovaná v bloku 74 není Retry, proces pokračuje z bloku 76 do bloku 78, který znázorňuje řadič uzlu 20, určující na základě odkazu do paměťové mapy, zda jeho uzel pro zpracování 8. je či není domovským uzlem prd požadavek čtení, proces pokračuje do bloku 100.
S přihlédnutím k bloku 80, vyhledávače uvnitř uzlu pro zpracování 8a následně poskytnou své ARespOut volby, které rozhodovací řadič 24 zkompiluje za účelem vygenerování volby ARespIn. Pokud koherenční adresář 50 indikuje, že řádek vyrovnávací paměti identifikovaný adresou specifikovanou v požadavku čtení je předán do alespoň jednoho vzdáleného uzlu pro zpracování 8_, řadič uzlu 20 provede volbu ReRun, pokud obsluha požadavku čtení vyžaduje komunikaci se vzdáleným uzlem pro zpracování 8.. Například pokud koherenční adresář 50 indikuje,) že požadovaný řádek vyrovnávací paměti je modifikován (Modified) ve vzdáleném uzlu pro zpracování j3, obsluha požadavku čtení způsobí předání požadavku čtení do vzdáleného uzlu pro zpracování 8^. Podobně pokud koherenční adresář 50 indikuje, že požadovaný řádek vyrovnávací paměti je sdílen (Shared) ve * 9
O
-15- g .9 9 9 O OO9 5 0 0 5 O 5 9 0 ·Λ 9 950^ a o O O o -) 9 5 0 > O 0 ' o O 9 .1 O 0 O í: 0 9 n o 0^0 o '
vzdáleném uzlu pro zpracování 8_, obsluha požadavku čtení
se záměrem modifikace (RWITM) způsobí vyslání příkazu zrušení
(Kill) do vzdáleného uzlu pro zpracováni (3 za účelem invalidace vzdálené kopie či kopií požadovaného řádku vyrovnávací paměti. Jak je patrné z bloku 82, pokud volba ARespIn není ReRun, proces pokračuje blokem 90, který je popsán níže; pokud volba ARespIn je ReRun, proces pokračuje v bloku 84.
Blok 84 znázorňuje řadič uzlu 20 vysílající pomocí uzlového propojení 22, příslušnou transakci jednomu či více vzdáleným uzlům pro zpracování 8_, které předaly požadovaný řádek do vyrovnávací paměti. Jak bylo uvedeno výše, transakci může být buď příkaz vyrovnávací paměti (např. Kill) nebo transakce požadavku čtení. Proces poté iteruje v bloku 86 dokud není přijata odezva řadičem uzlu 20, z každého ze vzdálených uzlů pro zpracování 8^, do kterého byla transakce vyslána v bloku 84. Následně po přijetí odpovídajícího počtu odezev , který může zahrnovat přijetí kopie požadovaného řádku vyrovnávací paměti, řadič uzlu 20 vysílá požadavek ReRun na lokálním propojení 16 instruující požadující procesor 10a ke znovuprovedení požadavku čtení. Jak je patrné z bloku 88, požadující procesor 10a odpovídá na požadavek ReRun znovuprovedením transakce požadavku čtení na lokálním propojení 16. Následně po periodách AStat a AResp je požadavek čtení obsloužen v bloku 90./ buď pomocí řadiče uzlu 20, poskytujícího kopii požadovaného řádku vyrovnávací paměti přijatou ze vzdáleného uzlu pro zpracování 8_ nebo pomocí jiného lokálního vyhledávače v uzlu pro zpracování 8a (např. paměťového řadiče 17 nebo hierarchie vyrovnávacích pamětí 14) poskytujícího požadovaný řádek vyrovnávací paměti. Poté je proces ukončen v bloku 150.
S přihlédnutím k bloku 100, pokud řadič uzlu 20 uzlu pro zpracování 8a určí, že uzel pro zpracování 8a není domovským uzlem pro požadovaný řádek vyrovnávací paměti, řadič uzlu 20 promyšleně předá transakci požadavku čtení vzdálenému uzlu pro zpracování 8_, který je domovským uzlem pro požadovaný řádek vyrovnávací paměti. Jak je patrné z obr.3A, požadavek čtení je
O O ϋ 0 0 9 0 o 5 ·. *>9 n o ·' j O O 3 O O 3 ® o o o o o o o >
OD O O O O Λ 0· O O předán řadičem uzlu 20 alespoň souběžně s periodou ARespIn a je přednostně předán okamžitě po přijetí volby AStatIn z rozhodovacího řadiče 24 a před periodou ARespOut. Když je požadavek čtení předán, stav vstupu čtení ve vyrovnávací paměti 60 je aktualizován na ReRun. Poté, jak je patrné z bloku 102, vyhledávače poskytnou své volby ARespOut, které rozhodovací řadič 24 zkompiluje za účelem vygenerování volby ARespIn. Následně, jak je znázorněno v bloku 110 a blocích následujících, domácí uzel poskytne odezvu na požadavek čtení a řadič uzlu 20 obsluhuje odezvu v souladu s volbou ARespIn pro požadavek čtení v uzlu pro zpracování 8a.
Pokud volba ARespIn je Retry požadavek čtení nevyhnutelně zrušen v uzlu pro zpracování 8a. Jako odezva na přijetí ARespIn volby Retry, je stav vstupů zápisu a čtení přidělených ve vyrovnávací paměti 60 aktualizován na Null. Proces poté pokračuje přes bloky 110 do bloků 112 a 114, které znázorňují řadič uzlu 20, čekající na přijetí požadovaného řádku vyrovnávací paměti z domácího uzlu a rušící řádek vyrovnávací paměti poté co je přijat jako odezva na stav Null vstupu čtení ve vyrovnávací paměti 60. Proces je poté ukončen v bloku 150.
Pokud volba ARespIn je Modified Intervention, může být požadavek čtení obsluhován lokálně- v uzlu pro zpracování 8a bez využití (neaktuálních) dat z domácího uzlu. Jako odezva na přijetí ARespIn volby Modified Intervention je tedy stav vstupu čtení ve vyrovnávací paměti 60 aktualizován na Null a proces pokračuje v bloku 102 a dále přes bloky 110 a 120 do bloku 122. Blok 122 znázorňuje vyhledávač, který provedl volbu Modified Intervention během periody ARespOut, poskytující požadovaný řádek vyrovnávací paměti v lokálním propojení 16 uzlu pro zpracování 8a. Koherenční stav požadovaného řádku vyrovnávací paměti ve vyhledávači, poskytujícím požadovaný řádek vyrovnávací pamětije poté aktualizován z Modified na Shared. Jako odezva na přijetí požadovaného řádku vyrovnávací paměti požadující procesor 10a naplní požadovaný řádek vyrovnávací paměti do .své hierarchie
-17α ο -λ a ο ο οίη η -5 Λ
Ο <» -J 4 9 Ο η ·>
Ο Ο Ο Ο 3 Ο 0 0 Ο
Ο ο Ο Ο Ο Ο
Ο ϋ 7 ο ο η ο ο
910 3
Ο 0 03
Ο 0Ο
0 Ο '>
Ο0'0 ο ο ο ο ο ο vyrovnávacích pamětí 14, jak je patrné z bloku 124. Kromě toho řadič uzlu 20 zachytí požadovaný řádek vyrovnávací paměti z lokálního propojení 16 a provede transakci přepis prázdným, obsahující řádek vyrovnávací paměti, do domácího uzlu za účelem aktualizace systémovou paměť 18 domácího uzlu modifikovaným řádkem vyrovnávací paměti, jak je znázorněno v bloku 126. Proces poté pokračuje do bloku 112, který již byl popsán.
Koherenční protokol, implementovaný počítačovým systémem & může volitelně podporovat sdílený zásah, t j. obsluhu transakce požadavku čtení pomocí místní hierarchie vyrovnávacích pamětí 14, která udržuje požadovaný řádek vyrovnávací paměti ve stavu sdílení (tj. Shared Intervention), volba vyhledávače Shared předává požadovaný řádek vyrovnávací paměti lokálnímu propojení 16, jak je znázorněno v bloku 132. Jako odezva na přijetí požadovaného řádku vyrovnávací paměti, požadující procesor 10a nahraje požadovaný řádek vyrovnávací paměti do své hierarchie vyrovnávacích pamětí 14, jak je znázorněno v bloku 134. Jelikož není vyžadována obnova systémové paměti 18, stavy vstupů pro čtení a zápis vyhrazené ve vyrovnávací paměti 60 jsou obnoveny na Null a proces je v bloku 150 ukončen.
Konečně pokud je volba ARespIn pro dotazovací transakci v uzlu pro zpracování 8a ReRun, stav vstupu pro zápis ve vyrovnávací paměti 60 je obnoven na Null a stav vstupu pro čtení je nastaven na ReRun. Poté proces pokračuje do bloku 102 a dále přes bloky 110, 120, 130 do bloku 142, který znázorňuje řadič uzlů 20 uzlu pro zpracování 8a, čekající na přijetí požadovaného řádku vyrovnávací paměti z domovského uzlu. Jako odezvu na přijetí požadovaného řádku vyrovnávací paměti z domovského uzlu přes propojení uzlů 22 řadič uzlů 20 vyšle požadovaný řádek žádajícímu procesoru 10a přes lokální propojení 16, jak je znázorněno v bloku 144. Jako odezvu na přijetí požadovaného řádku vyrovnávací paměti žádající procesor 10a nahraje požadovaný řádek vyrovnávací paměti do své hierarchie 14, jak je znázorněno v bloku 146. Proces poté končí v bloku 150.
o ·> □ 3 o n
O' 3 0 0 0 O no o o □ r, o o o □π o O O O O » O O 0 3» ·)
·) f) O O O O 0 9r,
-18- ” 09 90
Na obr.3B je znázorněno logické schéma postupu ilustrující zpracování transakce, přijaté z jiného uzlu pro zpracování, domovským uzlem. Jak je patrné proces začíná blokem 160 a poté pokračuje do bloku 162, který znázorňuje rozhodování, zda domovský uzel přijal transakci z jiného uzlu pro zpracování či nikoli přes propojení uzlů 22. Pokud ne, proces iteruje v bloku 162, dokud není přijata transakce z jiného uzlu pro zpracování 8.. Jako odezvu na přijetí transakce řadičem uzlů 20 domovského uzlu ze vzdáleného uzlu pro zpracování 8 proces pokračuje v bloku 164, který znázorňuje řadič uzlů 20 domovského uzlu, vysílající transakci přijatou v bloku 162 místním propojením 16 domovského uzlu. Jak je patrné z rozhodovacího bloku 170, pokud transakce uskutečněná v místním propojení 16 je transakcí čtení, proces pokračuje blokem 172, který znázorňuje požadavek čtení, obsluhovaný vyhledávačem, který poskytuje kopii požadovaného řádku vyrovnávací paměti řadiči uzlů 20 domovského uzlu. Jako odezvu na přijetí . požadovaného řádku vyrovnávací paměti řadič uzlů 20 vysílá požadovaný řádek žádajícímu uzlu pro zpracování 8. přes propojení uzlů 22, jak je znázorněno v bloku 174. Poté je proces ukončen v bloku 190.
Pokud je v bloku 164 transakce předaná v místním propojení 16 domovského uzlu transakcí zápisu (např. zápis s vymazáním), proces pokračuje přes bloky 170 a 180 do bloku 184, který znázorňuje paměťový řadič 17 obnovující systémovou paměť 18. řádkem vyrovnávací paměti obsaženým v transakci zápisu. Proces následně končí v bloku 190. Pokud není transakce předaná v místním propojení 16 domovského uzlu transakcí zápisu ani transakcí čtení, domovský uzel provede akci/akce znázorněné v bloku 182 a proces je ukončen v bloku 190. Akcemi, které mohou být uskutečněny jako odezva na transakci jinou než je transakce čtení či zápisu, mohou být například obnova stavů spojitosti řádků vyrovnávací paměti udržované v hierarchiích vyrovnávací paměti 14 domovského uzlu.
*
-19Na obr.4A-4D je znázorněn příklad scénáře podle předloženého vynálezu. Za účelem jasnosti je příklad scénáře zpracování vysvětlen níže, s využitím zjednodušeného znázornění počítačového systému 6 majícího dva uzly pro zpracování 8a a 8b, z nichž každý obsahuje dva procesory 10a a 10b. Stav spojitosti požadovaného řádku vyrovnávací paměti je indikován uvnitř hierarchie vyrovnávacích pamětí 14 každého z procesorů 10 a uvnitř koherenčního adresáře 50 domovského uzlu 8a.
Jak je patrné z obr.4A, procesor 10b uzlu pro zpracování 8b nejprve provede požadavek čtení řádku vyrovnávací paměti, který je neplatný (Invalid, není obsažen) v jeho hierarchii vyrovnávací paměti 14. Jako odezvu na přijetí požadavku čtení řadič uzlů 20 uzlu pro zpracování 8b promyšleně vyšle požadavek čtení uzlu pro zpracování 8a, který je domovským uzlem řádku vyrovnávací paměti specifikovaného v požadavku čtení. Po promyšleném předání požadavku čtení do uzlu pro zpracování 8a procesor 10a provede volbu Modified Intervention během doby ARespOut, protože jeho hierarchie vyrovnávací paměti 14 udržuje požadovaný řádek vyrovnávací paměti ve stavu Modified. Rozhodovací řadič uzlu pro zpracování 8b kompiluje volby ARespOut a poskytuje ARespIn volbu Modified Intervention každému z vyhledávačů v uzlu pro zpracování 8b.
Jak je dále znázorněno v obr.4B, řadič uzlů 20 uzlu pro zpracování 8a přijme promyšleně předaný požadavek čtení a provede požadavek čtení ve svém lokálním propojení 16. Jak je patrné z obr.4B, řadič uzlů 20 provede volbu Null během doby ARespOut jako odezvu na koherenční adresář 50 indikující, že řádek vyrovnávací paměti specifikovaný v požadavku čtení je modifikován (Modified) v uzlu pro zpracování 8b. Řadič uzlů 20, rozpoznávající tuto zvláštní podmínku, dovolí provedení požadavku čtení jak bude dále popsáno s přihlédnutím k obr.4D.
Jak je znázorněno v obr.4C, nezávisle na (a buď před, souběžně nebo následně po) promyšleném předání požadavku čtení uzlu pro zpracování 8a, procesor 10a uzlu pro zpracování 8b o O $ o o .·>
-20o o o o o o »
0 0 0 o o
O ·> 0 Λ o o ?
0300 řádku řádku vyrovnávací paměti ve své hierarchii 14 na Shared. Jako odezvu na vyhledání vyrovnávací paměti, žádající procesor 10b řádek vyrovnávací paměti do své hierarchie 14 a nastaví přiřazený koherenční stav na odpovídá na požadavek čtení předáním požadovaného vyrovnávací paměti místnímu propojení 16 a obnovením koherenčního stavu požadovaného vyrovnávací paměti požadovaného řádku nahraje požadovaný vyrovnávací paměti,
Shared. Dále řadič uzlů 20 uzlu pro zpracováni 8b zachytí ádek vyrovnávací paměti a provede transakci zápisu prázdným obsahující modifikovaný řádek vyrovnávací paměti do uzlu pro zpracování 8a. Jako odezvu na přijetí transakce zápisu prázdným řadič uzlů 20 uzlu pro zpracování 8a provede zápis prázdným do systémové paměti 18 přes své místní propojení 16. uzlu 8a poté provede obnovu modifikovanými daty.
Jak je znázorněno v obr.4D,
Systémová paměť odpovídáj icího domovského řádku paměti nezávisle na (a buď před, souběžně nebo následně po) obnovení paměti znázorněném v obr.4A, systémová paměť 18 uzlu pro zpracování 8a odpovídá na požadavek požadovaného řádku zpracování zpracování
8a přes
8a poté uzlů 20 čtení předáním potenciálně neaktuální kopie vyrovnávací paměti řadiči uzlů 20 uzlu pro místní propojení 16. Řadič uzlů 20 uzlu pro předá kopii požadovaného řádku vyrovnávací paměti řadiči uzlu pro zpracování 8b, který zruší řádek vyrovnávací paměti jako odezvu na požadavek čtení označený jako Null ve své vyrovnávací paměti 60.
Jak bylo popsáno, předložený vynález vytváří vylepšený počítačový sytém s nejednotným přístupem do paměti a vylepšenou komunikační metodiku v počítačovém sytému s nejednotným přístupem V souladu š předloženým vynálezem je transakce čtení promyšleně předána vzdálenému (tj . domovskému) zpracování přes propojení uzlů před čtení může být obsluhován lokálně uzlu pro zpracování. Když vzdálený uzel do paměti. požadavku uzlu pro požadavek vzdáleného zjištěním zda bez zákroku pro zpracování odpoví na promyšleně předaný požadavek čtení, požadující uzel pro »
-21zpracování obslouží odezvu v souladu s místní odezvou spojitosti pro požadavek čtení. Tímto způsobem může být dramaticky snížena doba odezvy komunikačních transakcí.
Jak bylo rovněž popsáno, vynález vytváří počítačový systém s nejednotným přístupem do paměti, obsahující alespoň místní uzel pro zpracování a vzdálený uzel pro zpracování, z nichž každý je spojen s propojením uzlů. Místní uzel pro zpracování obsahuje místní propojení, procesor a systémovou paměť spojené s místním propojením a řadič uzlů vložený mezi místní propojení a propojení uzlů. Jako odezvu na přijetí požadavku čtení z místního propojení řadič uzlů promyšleně vyšle požadavek čtení vzdálenému uzlu pro zpracování přes propojení uzlů. Poté jako odezvu na přijetí odezvy na požadavek čtení ze vzdáleného uzlu pro zpracování řadič uzlů řídí odezvu v souladu s rozlišením požadavku čtení v místním uzlu pro zpracování. Například podle jednoho scénáře zpracování data obsažená v odezvě přijaté ze vzdáleného uzlu pro zpracování jsou smazána řadičem uzlů, pokud požadavek čtení přijal Modified Intervention odezvu spojitosti v místním uzlu pro zpracování.
společná advokátní kancelář VŠETEČKA zelený švorčík kalensky a partneři
120 00 Praha 2, Hálkova 2 Česká republika
• -s 9 « O > 0 0 O ··) 0 9 b 0 O 0 9 9 O Ů
-22- 090 99000 09 > 0 99 ^0 Ί 9 <3 0 0 0 9 9 ') 3 3 9 0 0 0 0 9'0 o a n o o o on. o o o o o o
PATENTOVÉ NÁROKY

Claims (12)

1. Počítačový systém zahrnující:
propojení uzlů; a alespoň jeden lokální uzel pro zpracování a vzdálený uzel pro zpracování, z nichž každý je připojen ke zmíněnému propojení uzlů, zmíněný lokální uzel pro zpracování obsahující lokální propojení, procesor a systémovou paměť připojené k lokálnímu propojení a řadič uzlu vložený mezi zmíněné lokální propojení a zmíněné propojení uzlu, vyznačující se tím, že zmíněný řadič uzlu promyšleně odesílá dotazovací transakci přijatou ze zmíněného lokálního propojení zmíněnému vzdálenému uzlu pro zpracování pomocí zmíněného propojení uzlů a kde zmíněný řadič ovládá odezvu na zmíněnou dotazovací transakci přijatou ze zmíněného vzdáleného uzlu pro zpracování ve shodě s provedením zmíněné dotazovací transakce ve zmíněném lokálním uzlu pro zpracování.
2. Počítačový systém podle nároku 1, zmíněný vzdálený uzel pro zpracování propojení a řadič uzlu vložený a zmíněné lokální propojení, kde promyšleně vzdáleného dotazovací transakce mezi vyznačující se tím, že dále zahrnuje lokální propojení uzlů přijetí zmíněné uzlu zmíněného zmíněné dotazovací uzlu pro zpracování transakci na zmíněné jako odezva na zmíněný řadič předá zmíněnou promyšlenou propojení zmíněného vzdáleného uzlu pro zpracování.
3. Počítačový systém podle nároku
1, vyznačující se tím, že:
zmíněný zpracování;
počítačový systém dále zahrnuje třetí uzel pro zmíněná dotazovací transakce obsahuje adresu; a zmíněný určuje řadič uzlu zmíněného prvního uzlu pro zpracování cílový uzel pro zpracování zmíněné promyšleně vyslané
-23dotazovací transakce alespoň částečně s odezvou na zmíněnou adresu obsaženou ve zmíněné dotazovací transakci.
4. Počítačový systém podle nároku 1, vyznačující se tím, že zmíněný řadič uzlu zmíněného lokálního uzlu pro zpracování smaže data přijatá ze zmíněného vzdáleného uzlu pro zpracování jako odezvu na zmíněnou dotazovací transakci, pokud zmíněná dotazovací transakce přijme modifikovaný nebo sdílený zásah koherenční odezvy ve zmíněném lokálním uzlu pro zpracování.
5. Počítačový systém podle nároku 1, kde zmíněný vzdálený uzel pro zpracování obsahuje systémovou paměť, vyznačující se tím, že zmíněný řadič uzlu zmíněného lokálního uzlu pro zpracování promyšleně odesílá zmíněnou dotazovací transakci zmíněnému vzdálenému uzlu pro zpracování jako odezvu na stanovení, že zmíněná dotazovací transakce specifikuje adresu přiřazenou zmíněné systémové paměti ve zmíněném vzdáleném uzlu pro zpracování.
6. Počítačový systém podle nároku 1, lokálního uzlu zmíněného přijatá ze ke zmíněnému zmíněného vyznačující se tím, že uzlu pro vzdáleného lokálnímu zmíněný řadič poskytuje data zpracování až lokálního uzlu pro zpracování, přijme koherenční odezvu ve zpracování, udávající, provedena lokálně.
pokud zmíněná zmíněném propojení dotazovací lokálním že zmíněná dotazovací zpracování uzlu pro zmíněného transakce uzlu pro transakce nemůže být počítačovém systému obsahujícím propojení alespoň lokální uzel pro zpracování, zmíněný lokální lokální propojení, procesor a zpracování uzel pro systémovou
7. Způsob komunikace v uzlů, které spojuje a vzdálený uzel pro zpracování obsahující paměť připojené k lokálnímu propojení a řadič uzlu vložený mezi zmíněné lokální propojení a zmíněné propojení uzlu, vyznačující se tím, že zahrnuje:
o o
-24promyšlené odesláni dotazovací transakce přijaté ze zmíněného lokálního propojení zmíněnému vzdálenému uzlu pro zpracování pomocí zmíněného propojení uzlů; a jako odezva na přijetí odezvy na zmíněnou dotazovací transakci od zmíněného vzdáleného uzlu pro zpracování, ve zmíněném lokálním uzlu pro zpracování, ovládání zmíněné odezvy na zmíněnou dotazovací transakci ve shodě s provedením zmíněné dotazovací transakce ve zmíněném lokálním uzlu pro zpracování.
8. Způsob podle nároku 7, vyznačující se tím, že dále zahrnuje:
jako odezvu na přijetí zmíněné promyšlené dotazovací transakce ve zmíněném vzdáleném uzlu pro zpracování, předání zmíněné promyšlené dotazovací transakce lokálnímu propojení zmíněného vzdáleného uzlu pro zpracování.
9. Způsob podle nároku 7, vyznačující se tím, že zmíněný počítačový systém dále zahrnuje třetí uzel pro zpracování a zmíněná dotazovací transakce obsahuje adresu,, zmíněný způsob dále zahrnující:
určení cílového uzlu pro zpracování zmíněné promyšleně vyslané dotazovací transakce alespoň částečně s odezvou na zmíněnou adresu obsaženou ve zmíněné dotazovací transakci.
10. Způsob podle nároku 7, vyznačující se tím, že ovládání zmíněné odezvy zahrnuje smazání dat přijatých ze zmíněného vzdáleného uzlu pro zpracování, pokud zmíněná dotazovací transakce přijme modifikovaný nebo sdílený zásah koherenční odezvy ve zmíněném lokálním uzlu pro zpracování.
11. Způsob podle nároku 7, zmíněný vzdálený uzel pro zpracování obsahující systémovou paměť, vyznačující se tím, že promyšlené odeslání dotazovací transakce zahrnuje promyšlené odeslání zmíněné dotazovací transakce zmíněnému vzdálenému uzlu pro zpracování jako odezvy na stanovení, že zmíněná dotazovací
I
O‘3· no
O9
O 0 9 0 O
·.'>O
0Ω-99 ť> ·>
transakce specifikuje adresu přiřazenou zmíněné systémové paměti ve zmíněném vzdáleném uzlu pro zpracování.
12. Způsob podle nároku 7, vyznačující se tím, že ovládání zmíněné odezvy zahrnuje poskytnutí dat přijatých ze zmíněného vzdáleného uzlu pro zpracování až ke zmíněnému lokálnímu propojení zmíněného lokálního uzlu pro zpracování, pokud zmíněná dotazovací transakce přijme koherenční odezvu ve zmíněném lokálním uzlu pro zpracování, udávající, že zmíněná dotazovací transakce nemůže být provedena lokálně.
CZ20012153A 1998-12-15 1999-12-10 Elektronický deník s ověřením pro prodejní místo a způsoby jeho použití CZ20012153A3 (cs)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/211,351 US6338122B1 (en) 1998-12-15 1998-12-15 Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node

Publications (1)

Publication Number Publication Date
CZ20012153A3 true CZ20012153A3 (cs) 2001-09-12

Family

ID=22786571

Family Applications (1)

Application Number Title Priority Date Filing Date
CZ20012153A CZ20012153A3 (cs) 1998-12-15 1999-12-10 Elektronický deník s ověřením pro prodejní místo a způsoby jeho použití

Country Status (16)

Country Link
US (1) US6338122B1 (cs)
EP (1) EP1153349B1 (cs)
KR (1) KR100465583B1 (cs)
CN (1) CN1157659C (cs)
AT (1) ATE236431T1 (cs)
AU (1) AU1672500A (cs)
CA (1) CA2349569C (cs)
CZ (1) CZ20012153A3 (cs)
DE (1) DE69906585T2 (cs)
ES (1) ES2196893T3 (cs)
HU (1) HUP0104577A3 (cs)
IL (2) IL142265A0 (cs)
PL (1) PL348859A1 (cs)
RU (1) RU2220444C2 (cs)
TW (1) TW446883B (cs)
WO (1) WO2000036514A1 (cs)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999032589A1 (en) * 1997-12-19 1999-07-01 Unilever N.V. Olive oil containing food composition
US6546429B1 (en) * 1998-09-21 2003-04-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry
US6591307B1 (en) * 1999-11-09 2003-07-08 International Business Machines Corporation Multi-node data processing system and method of queue management in which a queued operation is speculatively cancelled in response to a partial combined response
JP2001167077A (ja) * 1999-12-09 2001-06-22 Nec Kofu Ltd ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
US6938128B1 (en) 2000-07-20 2005-08-30 Silicon Graphics, Inc. System and method for reducing memory latency during read requests
US8635410B1 (en) 2000-07-20 2014-01-21 Silicon Graphics International, Corp. System and method for removing data from processor caches in a distributed multi-processor computer system
US6678798B1 (en) * 2000-07-20 2004-01-13 Silicon Graphics, Inc. System and method for reducing memory latency during read requests
US6915387B1 (en) 2000-07-20 2005-07-05 Silicon Graphics, Inc. System and method for handling updates to memory in a distributed shared memory system
US6810467B1 (en) * 2000-08-21 2004-10-26 Intel Corporation Method and apparatus for centralized snoop filtering
US20020078118A1 (en) * 2000-12-19 2002-06-20 Cone Robert W. Network interface application specific integrated circuit to allow direct attachment for an appliance,such as a printer device
US7234029B2 (en) * 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US6799217B2 (en) * 2001-06-04 2004-09-28 Fujitsu Limited Shared memory multiprocessor expansion port for multi-node systems
US7206879B2 (en) * 2001-11-20 2007-04-17 Broadcom Corporation Systems using mix of packet, coherent, and noncoherent traffic to optimize transmission between systems
US7394823B2 (en) * 2001-11-20 2008-07-01 Broadcom Corporation System having configurable interfaces for flexible system configurations
US6748479B2 (en) 2001-11-20 2004-06-08 Broadcom Corporation System having interfaces and switch that separates coherent and packet traffic
DE50113128D1 (de) * 2001-12-03 2007-11-22 Infineon Technologies Ag Datenübertragungseinrichtung
US6959372B1 (en) * 2002-02-19 2005-10-25 Cogent Chipware Inc. Processor cluster architecture and associated parallel processing methods
US7085866B1 (en) * 2002-02-19 2006-08-01 Hobson Richard F Hierarchical bus structure and memory access protocol for multiprocessor systems
US7107409B2 (en) * 2002-03-22 2006-09-12 Newisys, Inc. Methods and apparatus for speculative probing at a request cluster
US7103725B2 (en) * 2002-03-22 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing with early completion and delayed request
US7107408B2 (en) * 2002-03-22 2006-09-12 Newisys, Inc. Methods and apparatus for speculative probing with early completion and early request
US7653790B2 (en) * 2002-05-13 2010-01-26 Glasco David B Methods and apparatus for responding to a request cluster
US7395379B2 (en) * 2002-05-13 2008-07-01 Newisys, Inc. Methods and apparatus for responding to a request cluster
US6993631B2 (en) * 2002-05-15 2006-01-31 Broadcom Corporation L2 cache maintaining local ownership of remote coherency blocks
US6965973B2 (en) * 2002-05-15 2005-11-15 Broadcom Corporation Remote line directory which covers subset of shareable CC-NUMA memory space
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US7003631B2 (en) * 2002-05-15 2006-02-21 Broadcom Corporation System having address-based intranode coherency and data-based internode coherency
US7251698B2 (en) * 2002-05-28 2007-07-31 Newisys, Inc. Address space management in systems having multiple multi-processor clusters
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US6865595B2 (en) * 2002-05-28 2005-03-08 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7155525B2 (en) * 2002-05-28 2006-12-26 Newisys, Inc. Transaction management in systems having multiple multi-processor clusters
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US6959364B2 (en) * 2002-06-28 2005-10-25 Intel Corporation Partially inclusive snoop filter
US7296121B2 (en) * 2002-11-04 2007-11-13 Newisys, Inc. Reducing probe traffic in multiprocessor systems
US7346744B1 (en) 2002-11-04 2008-03-18 Newisys, Inc. Methods and apparatus for maintaining remote cluster state information
US7003633B2 (en) * 2002-11-04 2006-02-21 Newisys, Inc. Methods and apparatus for managing probe requests
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
EP1426866A1 (en) * 2002-12-06 2004-06-09 Sun Microsystems, Inc. A method to reduce memory latencies by performing two levels of speculation
US7917646B2 (en) * 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
US7111128B2 (en) 2002-12-19 2006-09-19 Intel Corporation Hierarchical virtual model of a cache hierarchy in a multiprocessor system
US7334089B2 (en) * 2003-05-20 2008-02-19 Newisys, Inc. Methods and apparatus for providing cache state information
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7577727B2 (en) * 2003-06-27 2009-08-18 Newisys, Inc. Dynamic multiple cluster system reconfiguration
US7337279B2 (en) * 2003-06-27 2008-02-26 Newisys, Inc. Methods and apparatus for sending targeted probes
US7117419B2 (en) * 2003-08-05 2006-10-03 Newisys, Inc. Reliable communication between multi-processor clusters of multi-cluster computer systems
US7159137B2 (en) * 2003-08-05 2007-01-02 Newisys, Inc. Synchronized communication between multi-processor clusters of multi-cluster computer systems
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US7103823B2 (en) 2003-08-05 2006-09-05 Newisys, Inc. Communication between multi-processor clusters of multi-cluster computer systems
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US7822929B2 (en) * 2004-04-27 2010-10-26 Intel Corporation Two-hop cache coherency protocol
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
US7395381B2 (en) * 2005-03-18 2008-07-01 Intel Corporation Method and an apparatus to reduce network utilization in a multiprocessor system
US8037465B2 (en) * 2005-09-30 2011-10-11 Intel Corporation Thread-data affinity optimization using compiler
US20110004732A1 (en) * 2007-06-06 2011-01-06 3Leaf Networks, Inc. DMA in Distributed Shared Memory System
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
WO2012029163A1 (ja) * 2010-09-02 2012-03-08 富士通株式会社 ノードコントローラ、ノードコントローラの制御方法及びコンピュータシステム
US8635412B1 (en) 2010-09-09 2014-01-21 Western Digital Technologies, Inc. Inter-processor communication
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9158670B1 (en) 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
WO2012149812A1 (zh) * 2011-10-27 2012-11-08 华为技术有限公司 一种防止节点控制器死锁的方法及节点控制器
WO2013154549A1 (en) 2012-04-11 2013-10-17 Hewlett-Packard Development Company, L.P. Prioritized conflict handling in a system
US9465740B2 (en) 2013-04-11 2016-10-11 Apple Inc. Coherence processing with pre-kill mechanism to avoid duplicated transaction identifiers
US9925492B2 (en) * 2014-03-24 2018-03-27 Mellanox Technologies, Ltd. Remote transactional memory
FR3021773B1 (fr) * 2014-05-27 2017-10-06 Bull Sas Interrogation speculative en memoire centrale d'un systeme multiprocesseur
US9658963B2 (en) * 2014-12-23 2017-05-23 Intel Corporation Speculative reads in buffered memory
US10642780B2 (en) 2016-03-07 2020-05-05 Mellanox Technologies, Ltd. Atomic access to object pool over RDMA transport network
US10552367B2 (en) 2017-07-26 2020-02-04 Mellanox Technologies, Ltd. Network data transactions using posted and non-posted operations
US10613980B2 (en) * 2017-12-19 2020-04-07 International Business Machines Corporation Coherence protocol providing speculative coherence response to directory probe
US10713169B2 (en) 2018-01-17 2020-07-14 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
US10387310B2 (en) 2018-01-17 2019-08-20 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
US10579527B2 (en) 2018-01-17 2020-03-03 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
GR20180100189A (el) * 2018-05-03 2020-01-22 Arm Limited Δικτυο επεξεργασιας δεδομενων με συμπυκνωση ροης για μεταφορα δεδομενων μεσω streaming
US11068407B2 (en) 2018-10-26 2021-07-20 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction
US10884740B2 (en) 2018-11-08 2021-01-05 International Business Machines Corporation Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads
US11119781B2 (en) 2018-12-11 2021-09-14 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a fronting load
US11106608B1 (en) 2020-06-22 2021-08-31 International Business Machines Corporation Synchronizing access to shared memory by extending protection for a target address of a store-conditional request
US11693776B2 (en) 2021-06-18 2023-07-04 International Business Machines Corporation Variable protection window extension for a target address of a store-conditional request

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02205963A (ja) 1989-01-27 1990-08-15 Digital Equip Corp <Dec> 読取中断処理
JPH06282528A (ja) 1993-01-29 1994-10-07 Internatl Business Mach Corp <Ibm> データ転送方法及びそのシステム
US5950226A (en) * 1996-07-01 1999-09-07 Sun Microsystems, Inc. Multiprocessing system employing a three-hop communication protocol
US5958019A (en) * 1996-07-01 1999-09-28 Sun Microsystems, Inc. Multiprocessing system configured to perform synchronization operations
US5892970A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. Multiprocessing system configured to perform efficient block copy operations
US5878268A (en) 1996-07-01 1999-03-02 Sun Microsystems, Inc. Multiprocessing system configured to store coherency state within multiple subnodes of a processing node
US5754877A (en) * 1996-07-02 1998-05-19 Sun Microsystems, Inc. Extended symmetrical multiprocessor architecture

Also Published As

Publication number Publication date
AU1672500A (en) 2000-07-03
IL142265A (en) 2007-06-03
DE69906585T2 (de) 2004-02-12
HUP0104577A3 (en) 2003-11-28
PL348859A1 (en) 2002-06-17
RU2220444C2 (ru) 2003-12-27
CA2349569C (en) 2005-04-05
US6338122B1 (en) 2002-01-08
TW446883B (en) 2001-07-21
KR20010101193A (ko) 2001-11-14
CN1330783A (zh) 2002-01-09
ES2196893T3 (es) 2003-12-16
EP1153349B1 (en) 2003-04-02
WO2000036514A1 (en) 2000-06-22
IL142265A0 (en) 2002-03-10
CN1157659C (zh) 2004-07-14
EP1153349A1 (en) 2001-11-14
CA2349569A1 (en) 2000-06-22
ATE236431T1 (de) 2003-04-15
KR100465583B1 (ko) 2005-01-13
HUP0104577A2 (hu) 2002-03-28
DE69906585D1 (de) 2003-05-08

Similar Documents

Publication Publication Date Title
CZ20012153A3 (cs) Elektronický deník s ověřením pro prodejní místo a způsoby jeho použití
JP3661761B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)データ処理システム
JP3644587B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム
US8281081B2 (en) Shared memory architecture
US8103835B2 (en) Low-cost cache coherency for accelerators
US6141692A (en) Directory-based, shared-memory, scaleable multiprocessor computer system having deadlock-free transaction flow sans flow control protocol
US7856534B2 (en) Transaction references for requests in a multi-processor network
CN101625664B (zh) 满足部分写和非监听存取之间的存储器排序要求
KR100925572B1 (ko) 상이한 길이의 캐시 위치 내의 캐시 코히어런시를 위한시스템, 방법, 프로세스 및 장치
JPH10149342A (ja) プリフェッチ動作を実行するマルチプロセス・システム
JPH1185710A (ja) サーバ装置およびファイル管理方法
JPH10143483A (ja) ミグラトリ・データ・アクセス・パターンを検出し、効果的に提供するように構成されたマルチプロセスシステム
US20050144399A1 (en) Multiprocessor system, and consistency control device and consistency control method in multiprocessor system
JPH10143476A (ja) プリフェッチ動作を開始するソフトウエアを実行するマルチプロセス・システム
JPH10143477A (ja) Numaモードにおける読取り−共有トランザクションのための強化ブロッキング・メカニズムを含むマルチプロセス・システム
JPH10214230A (ja) 応答カウントを含むコヒーレンシー・プロトコルを採用したマルチプロセッサ・システム
JPH10134014A (ja) 3ホップ通信プロトコルを用いたマルチプロセス・システム
KR20000005690A (ko) 잠재적인제3노드트랜잭션을버퍼에기록하여통신대기시간을감소시키는비균일메모리액세스(numa)데이터프로세싱시스템
TWI386810B (zh) 多處理器系統以目錄為主之資料傳輸協定
CN1116641C (zh) 用于避免因冲突的失效事务而造成的活锁的方法和系统
US20200334168A1 (en) Virtual memory pool within a network which is accessible from multiple platforms
JP7419261B2 (ja) ストリーミングデータ転送のためのフロー圧縮を用いたデータ処理ネットワーク
US7725660B2 (en) Directory for multi-node coherent bus
US7669013B2 (en) Directory for multi-node coherent bus
US6636948B2 (en) Method and system for a processor to gain assured ownership of an up-to-date copy of data