CZ20012154A3 - Architektura přerušení pro systém zpracování dat s neuniformním paměťovým přístupem (numa) - Google Patents

Architektura přerušení pro systém zpracování dat s neuniformním paměťovým přístupem (numa) Download PDF

Info

Publication number
CZ20012154A3
CZ20012154A3 CZ20012154A CZ20012154A CZ20012154A3 CZ 20012154 A3 CZ20012154 A3 CZ 20012154A3 CZ 20012154 A CZ20012154 A CZ 20012154A CZ 20012154 A CZ20012154 A CZ 20012154A CZ 20012154 A3 CZ20012154 A3 CZ 20012154A3
Authority
CZ
Czechia
Prior art keywords
interrupt
processor
level
external
domain
Prior art date
Application number
CZ20012154A
Other languages
English (en)
Inventor
Gary Dale Carpenter
Philippe Louis Debacker
Mark Edward Dean
David Brian Glasco
Ronald Lynn Rockhold
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 CZ20012154A3 publication Critical patent/CZ20012154A3/cs

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Description

Oblast techniky
Tento vynález se obecně týká zpracováni dat a podrobněji zpracování dat v systémech zpracování dat s neuniformním paměťovým přístupem, zkr. NUMA (z angl. Nonuniform Memory Access). Zvláště pak se tento vynález týká architektury přerušeni pro systémy zpracováni dat NUMA.
Dosavadní stav techniky
V počítačových systémech se přerušeni využívá k tomu, aby upozornilo procesor na výskyt události, která vyžaduje speciální ošetření. Přerušeni lze například využit k požadováni služby od přijímajícího procesoru, hlášeni chybového stavu nebo prostě k přenášeni informaci mezi zařízeními. V jednoprocesorových počítačových systémech je podpora přerušeni přerušení jsou
V multiprocesorových další úroveň poměrně ošetřována počítačových složitosti, protože jednoduchá, neboť všechna jediným systémech je zde procesorem.
však vzniká nutné použít mechanismus pro nasměrování přerušení k ošetřeni příslušnému procesoru či procesorům.
V běžných počítačových systémech se symetrickými multiprocesory (SMP) se přerušení ošetřují různými způsoby, které využívají hardwarové i softwarové mechanismy. Počítačový systém SMP typicky používá globální řadič
82 041 přerušeni k výběru procesoru k obsluze přerušeni podle priority přerušeni a priority procesu (pokud nějaká existuje) probíhajícího na každém procesoru. Řadič přerušení tedy porovná prioritu přerušení s prioritami procesů probíhajících na procesorech a vybere jako obsluhující procesor takový procesor, který provádí proces, jenž má nižší prioritu než přerušení. Jelikož jsou procesory v SMP poměrně pevně propojeny, stanovení priorit procesů a přesměrování přerušení k obsluhujícímu procesoru lze dosáhnout pomocí zařízení, které využívá buďto sdíleného systémového propojení nebo vyhrazených spojů pro přerušení.
V současné době se objevila topologie multiprocesorového počítačového systému, známá jako neuniformní paměťový přístup (NUMA). Typický počítačový systém NUMA může obsahovat uzlové propojení s vysokou latencí, k němuž je připojeno několik víceprocesorových uzlů, z nichž každý obsahuje lokální systémovou paměť. Protože více procesorů v počítačovém systému NUMA není pevně propojeno, běžné- mechanismy obsluhy SMP přerušení a přenosu nelze v počítačových systémech NUMA aplikovat přímo. Je tedy zřejmé, že v počítačových systémech NUMA je potřebný mechanismus správy přerušení, který zajišťuje účinné mechanismy pro směrování a komunikaci přerušení.
Podstata vynálezu
Počítačový systém s neuniformním paměťovým přístupem (NUMA) obsahuje alespoň dva uzly spojené uzlovým propojením, kde alespoň jeden z uzlů obsahuje procesor pro obsluhu přerušení. Podle tohoto vynálezu, architektura přerušení počítačového systému NUMA, který obsahuje jak hardwarové, • · tak softwarové součásti, rozděluje počítačový systém NUMA na domény vnějšího přerušení, takže vnější přerušení je vždy předáváno procesoru v té doméně vnějšího přerušení, v niž se přerušení vyskytuje. Přestože každá taková doména vnějšího přerušení obsahuje typicky pouze jediný uzel, lze implementovat vedení přerušení (interrupt channelling) nebo slévání přerušení (interrupt funelling) k nasměrováni vnějších přerušení přes hranice uzlů k předání procesoru.
Po předání procesoru se může spustit k obsluze vnějšího přerušení na jakémkoli procesoru v systému software správy přerušení. Architektura přerušení tohoto vynálezu ve srovnání s dřívějšími technickými metodami výhodně umožňuje softwaru správy přerušení pohotovou obsluhu vnějších přerušení snížením velikosti dotazovacího řetězce (stromu) správy přerušení.
Kromě vnějších přerušení architektura přerušeni podle tohoto vynálezu podporuje meziprocesorová přerušení, zkr. IPI (z angl. Inter-Processor Interrupt), kterými může jakýkoli procesor přerušit sám sebe nebo jeden či více procesorů v počítačovém systému NUMA. IPI jsou aktivována zapsáním do paměťově mapovaných registrů v globální systémové paměti, což usnadňuje přenos IPI přes hranice uzlů a dovoluje všesměrovým IPI spustit se prostým vysláním jedné transakce zápisu každému uzlu obsahujícímu procesor, který se má přerušit.
Architektura přerušení podle tohoto vynálezu se objevuje od malých počítačových systémů NUMA obsahujících několik uzlů po velké systémy obsahující stovky uzlů. Hardware přerušení v každém uzlu je také rozmístěn za účelem škálovatelnosti, přičemž součásti hardwaru komunikují * · transakcemi přerušeni, které jsou přenášeny sdílenými komunikačními cestami (tj . lokální sběrnice a propojení).
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 obr. 1 vzorové provedení počítačového systému NUMA, se kterým může být tento vynález výhodně proveden;
obr. 2 vzorové provedení mapy fyzické paměti, kterou může používat počítačový systém NUMA znázorněný na obr. 1;
obr. 3A, 3B vzorová provedení registru zdrojové konfigurace přerušení a registru nevyřešených přerušení ve zdrojové jednotce přerušení, zkr. ISU (z angl. Interrupt Source Unit), podle tohoto vynálezu;
obr. 4 podrobnější blokové schéma cílové jednotky přerušení, zkr. IDU (z angl. Interrupt Destination Unit), podle tohoto vynálezu;
obr. 5 logický vývojový diagram vyšší úrovně pro práci
ISU podle tohoto vynálezu;
obr. 6 logický vývojový diagram vyšší úrovně pro práci
IDU podle tohoto vynálezu;
obr. 7 logický vývojový diagram vyšší úrovně pro názorné provedení konfigurační rutiny, která konfiguruje zdroje přerušení podle tohoto vynálezu;
logický vývojový diagram vyšší úrovně znázorňující práci softwaru správy přerušení první úrovně, zkr.
FLIH (z angl. First Level
Interrupt Handler) podle tohoto vynálezu.
Příklady provedení vynálezu
1.0 Přehled počítačového systému NUMA
Pokud jde o obrázky, zejména pak o obr. 1, je zde uvedeno vzorové provedení počítačového systému NUMA podle tohoto vynálezu. Uvedené provedení lze realizovat např. jako pracovní stanici, server nebo samočinný počítač. Podle obrázku počítačový systém 6 NUMA obsahuje několik N (N^2) zpracovávajících uzlů 8a-8n, jež jsou propojeny uzlovým propojením 22. Každý zpracovávající uzel 8a-8n obsahuje M (M^O) procesorů 10. Pokud se nacházejí uvnitř zpracovávajícího uzlu, jsou procesory lOa-lOm přednostně identické a mohou obsahovat procesor z řady procesorů PowerPC od společnosti International Business Machines (IBM), Armonk, New York (PowerPC je ochranná známka společnosti IBM) . Kromě registrů, logiky toku instrukcí a prováděcích jednotek využívaných k provádění instrukcí programu, což se souhrnně označuje jako jádro 12 procesoru, obsahuje také každý procesor lOa-lOm na čipu hierarchii 14 cache pamětí, která se používá k předčerpávání dat ze systémových pamětí 18 pro příslušné jádro 12 procesoru. Každá hierarchie 14 cache může obsahovat např. mezipaměť — · · cache první úrovně (LI) a mezipaměť cache druhé úrovně (L2), které mají kapacity 8-32 kilobytů, resp. 1-16 megabytů. Protože data uložená v každé systémové paměti 18 mohou být požadována, čtena a změněna kterýmkoliv procesorem 10 v počítačovém systému 6 NUMA, počítačový systém 6 NUMA implementuje především protokol soudržnosti cache (např. změněná, exkluzivní, sdílená, neplatná, zkr. MESI z angl. Modified, Exclusive, Shared, Invalid, nebo nějaká varianta předchozího) k zajištění soudržnosti jednak mezi cache ve stejném zpracovávajícím uzlu, jednak mezi cache z různých zpracovávajících uzlů.
Podle obrázku zpracovávající uzly 8a-8n dále obsahují příslušný uzlový řadič 20, zapojený mezi lokální propojení 16 a uzlové propojení 22. Každý uzlový řadič 20 slouží jako lokální zprostředkovatel pro vzdálené zpracovávající uzly 8. tím, že plní alespoň dvě funkce. Za prvé, každý uzlový řadič sleduje příslušné lokální propojení 16 a ulehčuje přenos lokálních komunikačních transakcí ke vzdáleným zpracovávajícím uzlům 8.. Za druhé, každý uzlový řadič 20 sleduje komunikační transakce na uzlovém propojení 22 a ovládá odpovídající komunikační transakce na příslušném lokálním propoj ení
16. Komunikace na každém lokálním propoj ení je řízena přidělovačem 24.
Přidělovače 24 reguluj í přístup k lokálnímu propojení na základě požadování sběrnice, které vysílají procesory
10, a sestavuj í souvislé odezvy pro sledované komunikační transakce na lokálních propojeních 16.
Přístup do každé systémové paměti 18 v počítačovém systému 6 NUMA je regulován příslušným řadičem 17 paměti, zkr. MC (z angl. Memory Controller). Kromě soustavy obvodů, která přijímá a obsluhuje žádosti o čtení a zápis vysílané procesory lOa-lOm, uzlovým řadičem 20 a jinými zařízeními v daném zpracovávajícím uzlu _8, obsahuje řadič 17 paměti také cílovou jednotku 19 přerušení (IDU), která obsahuje, jak je popsáno níže, několik registrů a příslušnou logiku, které usnadňují směrování a správu přerušení.
Lokální propojení 16 je spojeno prostřednictvím můstku 26 mezilehlé sběrnice s mezilehlou sběrnicí 30, kterou lze například implementovat jako lokální PCI (z angl. Peripheral Component Interconnect, periferní propojení komponent) sběrnici. Můstek 26 mezilehlé sběrnice zajišťuje jednak cestu s nízkou latencí, kterou mohou procesory 10 přímo přistupovat k zařízením typu V/V zařízení 32 a paměťová zařízení 34 namapovaným v paměti sběrnice nebo ve V/V adresových prostorech, jednak cestu velmi širokého pásma, kterou mohou V/V zařízení 32 a paměťová zařízení 34 přistupovat do systémové paměti 18. V/V zařízení 32 mohou zahrnovat např. zobrazovací zařízení, klávesnici, grafický ukazatel a sériové a paralelní porty pro připojení k externím sítím či připojeným zařízením. Naopak paměťová zařízení 34 mohou zahrnovat optické či magnetické disky, které zajišťují energeticky nezávislý ukládací prostor pro operační systém a aplikační software.
V/V zařízení 32 i paměťová zařízení 34 (stejně jako další mimoprocesorové součásti počítačového systému 6 NUMA) mohou generovat přerušení za několika účely včetně signalizace přijetí nějakého vstupu, hlášení chybového stavu, atd., spoji 35 požadování přerušení. Tato přerušení, která jsou dále zmíněna jako vnější přerušení kvůli zdůraznění, že tato přerušení jsou generována jinou součástí než procesor 10, jsou shromažďována jednou či několika zdrojovými jednotkami 28a, 28b přerušení (ISU). I když jsou
ISU 28a a 28b z důvodu zřetelnosti zobrazeny odděleně, mohou být také začleněny do sady čipů, které tvoři můstek 26 mezilehlé sběrnice. Jak je podrobněji popsáno níže, ISU 28 směrují vnější přerušení k IDU 19, která poté předává vnější a jiná přerušení k obsloužení lokálním procesorům 10 spojem 36 požadování přerušení.
Lokální propojení 16 a uzlové propojení 22 lze realizovat pomocí jakékoliv sběrnicové přenosové struktury, přepínačové přenosové struktury, přepínačové nepřenosové struktury nebo architektury hybridního propojení, která obsahuje sběrnicové i přepínačové složky. Bez ohledu na použitou architekturu propojení, lokální propojení 16 a uzlové propojení 22 podporují především rozdělené transakce, což znamená, že časování adresových a datových částí komunikačních transakcí je nezávislé. Kvůli umožnění identifikace, která data a adresy náleží dané komunikační transakci, se oba adresové a datové pakety, jež společně tvoří transakci, přednostně označují stejnou jmenovkou transakce.
Každý procesor 10 a každé další zařízení připojené na lokální propojení 16., je přednostně jedinečně identifikováno v počítačovém systému 6 NUMA celosystémovým identifikátorem zařízení, který je tvořen složením uzlového identifikátoru toho zpracovávajícího uzlu 8., v němž se zařízení nachází, a lokálního identifikátoru zařízení. Například v provedení, ve kterém jsou maximálně 4 zpracovávající uzly 8 a ke každému lokálnímu propojení 16 lze připojit nejvýše 8 zařízení, lze použít pětibitového identifikátoru zařízení; dva bity vyšších řádů pro uzlový identifikátor a tři bity nižších řádů pro lokální identifikátor zařízení. Každý uzlový identifikátor je přednostně uložen v registru přísíušného uzlového řadiče 20 a lokální identifikátory jsou přednostně uloženy v registrech identifikace zařízení, u každého zařízeni, které je připojeno k lokálnímu propojení 16. Každého takového celosystémového identifikátoru zařízení lze výhodně použít jako bitovou část vyšších řádů u každé jmenovky transakce, která je generována příslušným zařízením, tak, že je zajištěna jedinečnost jmenovky transakce v počítačovém systému 6 NUMA.
1.1 Mapa fyzické paměti
Na obr. 2 je znázorněna vzorová mapa fyzické paměti, kterou lze využívat v provedení počítačového systému _6 NUMA se čtyřmi zpracovávajícími uzly _8, z nichž každý obsahuje systémovou paměť 18. V provedení znázorněném na obr. 2 sdílí všechna zařízení počítačového systému 6 NUMA společný 16 gigabytový (GB) fyzický adresový prostor 50 zahrnující jednak oblast 52 paměti pro všeobecné účely jednak oblasti 54 systémového řízení a periferií. Každá fyzická adresa v oblasti 52 paměti pro všeobecné účely je vyčleněna pouze pro jedno fyzické místo v jedné ze systémových pamětí 18. Ve znázorněném provedení je oblast 52 paměti pro všeobecné účely rozdělena do 512 MB segmentů, kde je každému ze zpracovávajících uzlů 8_ přidělen každý čtvrtý segment. Zpracovávající uzel 8_, jenž uchovává ve své systémové paměti 18 určitý údaj, se označuje jako domovský uzel pro tento údaj; naopak ostatní zpracovávající uzly 8a-8n se označuji jako vzdálené uzly vzhledem k tomuto určitému údaji.
Oblasti 54 systémového řízení a periferií, stále ještě na obr. 2, které obsahují 2 GB fyzických adres v uvedeném provedení, zahrnují 256 MB oblast 56 systémového řízení,
0,5 GB prostoru 58 pro periferní V/V, 1 GB prostor 60 paměti • · ·· periferii a oblast 62 pro zavedení systému, zkr. IPL (z angl. Initial Program Load). Oblast 62 IPL obsahuje adresy vyhrazené k přidělení až 256 MB pro kód IPL (tj. zaváděcí kód), který je typicky uložen v paměti ROM. Kód IPL obsahuje zavaděč operačního systému, jako např. Advanced Interactive Executive (AIX), který je dodáván společností IBM. Podle obrázku je 0,5 GB prostoru 58 pro periferní V/V rozděleno mezi stejně velké segmenty 62, z nichž každý je přidělen příslušnému zpracovávajícímu uzlu 8_. Prostor 60 paměti periferií je rozdělen obdobně do stejně velkých 256 MB segmentů 66, z nichž každý je alokován pro příslušný zpracovávající uzel £.
Stejně jako prostor 58 pro periferní V/V a prostor 60 pro paměť periferií obsahuje i oblast 56 systémového řízení množství segmentů 70, z nichž každý je vyhrazen pro příslušný zpracovávající uzel £. V uvedeném provedení obsahuje každý segment 70 adresový prostor velikosti 64 MB. Kromě adres určených k uložení řídících informací o uzlu obsahuje každý segment 70 oblasti systémového řízení také fyzické adresy vyhrazené pro registry přerušení v IDU 19 a ISU 28 příslušného zpracovávajícího uzlu 8L Jak bude popsáno níže, právě tyto paměťově mapované registry paměti jsou využívány tímto vynálezem k přijímání a směrování vnějších přerušení, vyvolávání meziprocesorových přerušení a směrování přerušení mezi zpracovávajícími uzly £.
2.0 Přehled architektury přerušeni
Architektura přerušení podle tohoto vynálezu umožňuje alespoň tři různé třídy přerušení. Za prvé jsou to vnitřní přerušení, která jsou spouštěna vnitřní činností procesoru.
Vnitřní přerušení mohou být vyvolána např. programovou
• · • · ·· ··
• · · ♦ · • · ·
Ί · -· · -L ± · · · · · • · • ·· · ·
« · • ♦ ♦ · ·
• · • · · ·
• · · · • · ·· ··
výjimkou nebo přetečením/podtečením
Za druhé, jak bylo uvedeno jako vně generována zařízeními časovače, které leží registru ve vnitřním výše, vnější přerušení např. V/V procesorů.
Za třetí, meziprocesorová jedním procesorem procesoru. mohou být systémové tento vynález podporuje také (IPI), která jsou generována přerušení jiného procesoru.
přerušení za účelem
V upřednostňovaném provedení tohoto vynálezu umožňuje počítačový systém 6 NUMA podporu vnějších přerušení a IPI pomocí architektury přerušení, která se shoduje s rozšířením standardu OpenPIC (z angl. Open Processor Interrupt Controller) . OpenPIC je např. popsán ve studii OpenPIC Programmable Interrupt Controller (PIC) Register Interface Specification Revision 1.2, vydané v říjnu 1995 společnostmi Advanced Micro Devices, lne. a Cyrix, lne. a uvedené zde odkazem. I když je upřednostňována slučitelnost s OpenPIC, tento vynález lze použít pro jakýkoliv systém, který má paměťově mapované registry řízení přerušení, které jsou v celém systému jedinečné.
Architektura přerušení podle tohoto vynálezu zahrnuje jak hardwarové, tak softwarové součásti, které jsou popsány níže.
2.1 Hardware architektury přerušení
Navzdory konvenčnímu OpenPIC a jiným implementacím SMP přerušení, které typicky využívají globálního řadiče přerušení obsluhujícího jedinou doménu přerušení, v počítačovém systému 6 NUMA si každý zpracovávající uzel 8_ vytvoří vlastní doménu vnějších přerušení, kde každá doména vnějších přerušení má vlastní příslušnou IDU 19 a jednu či
více ISU 28, jak je znázorněno na obr. 1. ISU 28 vytvářejí rozhraní systému přerušeni pro zdroje přerušení a IDU 19 vytváří rozhraní' mezi systémem přerušení a procesory 10. K zajištění účinné správy přerušení a minimalizace přenosu přerušení mezi doménami přerušení jsou vnější přerušení přijatá ISU 28 přenášena s využitím paketů přerušení, které jsou rozesílány přes lokální propojení 16 (a mezilehlou sběrnici 30, v závislosti na implementaci) pouze té IDU 19 ležící ve stejné doméně přerušení (tj. stejném zpracovávajícím uzlu 8_) , vybaven procesorem 10, pokud je zpracovávající uzel _8 který je nastaven k obsluze přerušení.
Přenos konfiguračních informací, meziprocesorových přerušení, potvrzení přerušení, příkazů ukončení přerušení a jiných informací týkajících se přerušení mezi doménami přerušení je však podporován přes paměťově mapované registry v IDU 19, čímž je umožněno celosystémové využití prostředků přerušení v každém zpracovávajícím uzlu 8_.
2.1.1 Složky zdrojové jednotky přerušeni (ISU)
Na obr. 3A a 3B jsou znázorněna vzorová provedení registru zdrojové konfigurace přerušení, resp. registru nevyřešených přerušení v každé zdrojové jednotce přerušení (ISU). Každá ISU 28 přednostně obsahuje alespoň jeden takový registr 72 zdrojové konfigurace přerušení na každý zdroj přerušení a jeden registr 82 nevyřešených přerušení pro všechny zdroje přerušení podporované danou ISU 28.
Nejprve co se týče obr. 3A, každý registr 72 zdrojové konfigurace obsahuje vektorové pole 73 označující vektor přerušení pro příslušný zdroj přerušení, rezervované pole 7 4 vektoru přerušení, které může uložit dodatkové bity pro které udává ·· ·*»· • · · ·· • ···· ·· • · · · · ·· • · · » ♦· ·· ···· označeni vektoru přerušení, a pole 75 priorit, prioritu přerušení generovanou příslušným zdrojem přerušení. Ve vzorovém provedení jsou priority přerušení v rozsahu od 0, což je nejnižší priorita, do 15, což je nejvyšší priorita. Možnosti přerušení jsou přednostně jedinečné v každé doméně přerušení. Každá doména přerušení tak má přednostně jenom jedno přerušení úrovně 1, ale v počítačovém systému 6 NUMA může být až N přerušení úrovně 1. Samozřejmě lze využít technologických postupů z předchozího stavu techniky k umožnění sdílení přerušení tak, že několik zdrojů přerušení v jednom zpracovávajícím uzlu 8_ sdílí stejnou úroveň přerušení.
Registr 72 zdrojové konfigurace přerušení dále obsahuje dvě rezervovaná pole 76 a 7 9, senzorový bit 77 pro označení toho, zda byl signál přerušení spuštěn hranově nebo hladinově, bit 78 polarity pro označení toho, zda je přerušení aktvní na nižší úrovni (neboli negativní hrany) nebo aktivní na vyšší úrovni (neboli pozitivní hrany), bit 80 aktivity (ACT) označující, zda vektorové pole 73 a pole 75 priority jsou používána a nemohou být změněna, a pole 73 masky (MSK) , které umožňuje a znemožňuje jednotce ISU 28 přijetí přerušení generovaných příslušným zdrojem přerušení. Jako odezvu na přijetí přerušení od konkrétního zdroje přerušení spojem požadování přerušení tedy ISU může určit odkazem na příslušný registr 72 zdrojové konfigurace oprávnění a prioritu přerušení pro zdroj přerušení a stejně tak identifikátor pro vektor přerušení spojený s daným přerušením.
Jakmile bylo vnější přerušení přijato a posouzeno jednotkou ISU 28, ISU 28 nastaví bit v registru 82 nevyřešených přerušení na obr. 3B. Tento bit, který
4444 ·♦ ·4
4 44 4
4 44
4 44
44 4
Λ 4 jedinečně přísluší zdroji přerušení, značí, že daný zdroj přerušení má nevyřešené přerušení. V provedení na obr. 3B tedy každá ISU 28 může podporovat maximálně 16 zdrojů přerušení.
2.1.2 Složky cílové jednotky přerušení (IDU)
Na obr. 4 je znázorněno podrobnější blokové schéma představující IDU 19 v řadiči 17 paměti zpracovávajícího uzlu _8. Znázorněné provedení IDU 19 je slučitelné s OpenPIC a obsahuje tři různé oblasti registrů, globální registry 90, per-procesorové registry 92 a registry 133 příkazů meziprocesorových přerušení (IPI), z nichž každý se nachází v segmentu 70 oblasti systémového řízení zpracovávajícího uzlu na ofsetech (definovaných pomocí OpenPIC) od bázových adres specifikovaných v registru 102 globální konfigurace. Pro účely zjednodušení adresace je ofset mezi bázovou adresou a začátkem segmentu 7 0 oblasti systémového řízení zpracovávajícího uzlu přednostně stejný pro všechny IDU 19. Např. ve vzorovém provedení počítačového systému _6 NUMA se čtyřmi zpracovávajícími uzly 8., z nichž každý obsahuje čtyři procesory 10, které společně sdílí 16GB prostor fyzické paměti, mohou být adresové bity 30-63 definovány rozsahem 000000000h-3FFFFFFFFh, kde oblast 56 systémového řízení leží na A30..A63 OEOOOOOOOh-OEFFFFFFFh. Pokud číslo uzlu přiřazené zpracovávajícímu uzlu 8. je definováno na A36. .A37 s tím, že čísla uzlů jsou v rozmezí bOO-bll, pak segment 7 0 oblasti systémového řízení zpracovávajícího uzlu 8. s číslem uzlu bOl se bude nacházet na A30..A63 0E4000000h-0E4FF’FFFFh.
Ve všech segmentech 70 oblasti systémového řízení se bázová adresa registrů v IDU 19 bude nacházet na běžném přidělovacím ofsetu jako například OOOCOOOOh. Bázovou adresu registrů IDU 19 v rámci čísla uzlu bOl tedy lze získat po přičteni 0E4000000h k OOOCOOOOOh, což dává 0E4C00000h.
Jednotlivé prostory registrů a registry v IDU 19 v rámci čísla uzlu bOl potom lze adresovat s využitím ofsetů definovaných pomocí OpenPIC následovně:
220000h Pomocí OpenPIC vytvořený ofset bázové adresy specifikované v registru 102 globální konfigurace na per-procesorové registry 120 procesoru blO v uzlu bOl
+ 0E4C00000h bázová fyzická adresa registrů v IDU 19 v rámci čísla uzlu bOl
0E4C220000h fyzická adresa per-procesorových registrů 120 procesoru blO v uzlu bOl
0040h Pomocí OpenPIC vytvořený ofset adresy per-procesorových registrů 120 na port 0 příkazů IPI
+ 0E4C220000h = fyzická adresa per-procesorových registrů 120 procesoru blO v uzlu číslo bOl
0E4C220040h fyzická adresa per-procesorových registrů 120 procesoru blO v uzlu číslo bOl
Podle obr. 4, globální registry 90 v každé IDU 19 zahrnují registr 100 hlášení charakteristiky ke čtení i zápisu, registr 102 globální konfigurace ke čtení i ziápisu, registr 104 identifikace výrobce pouze ke čtení, jeden registr 106 vektoru meziprocesorového přerušení (IPI) pro
9 každý port příkazů IPI (popsaný níže) ke čtení i zápisu, registr 108 nevlastního vektoru ke čtení i zápisu a registr 110 inicializace procesoru ke čtení i zápisu. Globální registry 90 jsou definovány pomocí OpenPIC a obsahují následující informace:
Registr 100 hlášení charakteristiky: celkový počet zdrojů přerušení detekovaných kódem IPL ve zpracovávajícím uzlu a celkový počet podporovaných procesorů pro daný zpracovávající uzel.
Registr 102 globální konfigurace: bázová adresa oblasti globálních registrů pro zpracovávající uzel.
Registr 104 identifikace výrobce: označuje výrobce čipu integrovaného obvodu, který obsahuje IDU 19, a číslo verze.
Registry 106 vektorů IPI: vektor a informace o prioritě pro každý příslušný registr IPI ve zpracovávajícím uzlu.
Registr 108 nevlastního vektoru: vektor, který je vrácen, pokud je přijato potvrzení přerušení od procesoru a není žádné nevyřešené přerušení pro daný procesor.
Registr 110 inicializace procesoru: signály nového zavedení softwaru pro každý procesor, který je v daném zpracovávajícím uzlu podporován.
Protože v počítačovém systému 6 NUMA jsou globální registry 90 sdílené všemi procesory 10, využívají se rutiny pro nastavení a správu přerušení softwaru ve vrstvě PAL operačního systému AIX, aby se zachovala soudržnost mezi globálními registry 90 ve všech zpracovávajících uzlech 8a17*
• 4 • 4
* 4 4
— · 4 4 ♦ 4 44
4 444 4 4 f 4 4
4 4 4 4
4 4 • 9 • 4
4
4
4 * 4
4
8n. Aktualizace registrů, do nichž je povolen zápis, jiných než registr 110 inicializace procesoru je prováděno procesorem, který vyšle na své lokální propojení 16 N oddělených transakcí zápisu. Transakce zápisu mířící do lokální IDU 19 jsou přijaty a obslouženy lokálním řadičem 17 paměti. Zbytek transakcí zápisu je lokálním uzlovým řadičem 20 předán uzlovým řadičům 20 ostatních zpracovávajících uzlů 8, které obratem pošlou transakce zápisu přes lokální propojení 16 své příslušné IDU 19. Přístup do globálních registrů 90 je regulován globálním softwarovým zámkem, aby bylo zaručeno, že v daném čase upravuje globální registry 90 pouze jediný procesor 10. Během úprav globálních registrů 90 jsou všechna přerušení maskována, dokud se neprovedou úpravy v každém zpracovávajícím uzlu 8^ aby se předešlo vysílání přerušení se starými nastaveními. Načtení hodnoty z globálních registrů 90 vyžaduje provést čtení lokální kopie globálních registrů 90, protože všechny globální registry 90 jsou synchronizovány.
Per-procesorové registry 92, stále ještě na obr. 4, obsahují M sad 120 registrů, jednu pro každý procesor 10, který může být podporován zpracovávajícím uzlem EL Perprocesorové registry 92 jsou také definované pomocí OpenPIC a každá sada 120 registrů zahrnuje registr 122 priorit současné úlohy ke čtení i zápisu, registr 124 potvrzení přerušení pouze ke čtení a registr 126 ukončení přerušení pouze ke čtení. Sadu 120 registrů pro konkrétní procesor lze nalézt, jak bylo popsáno výše, s využitím bázové adresy obsažené v registru 102 globální konfigurace, identifikátoru procesoru a ofsetu vytvořeného pomocí OpenPIC. Perprocesorové registry 120 mají následující funkce:
Registr 122 priorit současné úlohy: udává relativní úlohovou
prioritu současné úlohy pokud se neobsluhuji žádná přerušení. K vyvolání přerušení procesoru musí být priorita přerušení vyšší než priorita současné úlohy pro daný procesor.
Registr 124 potvrzení přerušení: pokud je čten softwarem pro potvrzení přerušení, hardware dodá vektor přerušení nevyřešeného přerušení pro příslušný procesor; pokud není žádné nevyřešené přerušení, je dodán nevlastní vektor přerušení.
Registr 126 ukončení přerušení, zkr. EOI (z angl. End Of Interrupt): sem software zapisuje příkaz k vydání EOI nejvyššímu obsluhovanému přerušení pro procesor, který vydal příkaz EOI. Zápisem do registru EOI pro vnější přerušení způsobí, že řadič 17 paměti vyvolá na lokálním propojení 16 transakci přerušení EOI.
Třetí oblast registrů v každé IDU 19 je sada registrů 133 příkazů IPI, která zahrnuje jeden registr příkazů IPI pro každou úroveň IPI přerušení, což je 4 v systémech vyhovujících OpenPIC. Každý registr 133 příkazů IPI obsahuje alespoň M bitů, kde pozice každého bitu odpovídá procesorovému identifikátoru jednoho z M lokálních procesorů 10. Zapsání b'l' do konkrétní bitové pozice v registru 133 příkazů IPI způsobí vydání IPI příslušné úrovně stanovenému procesoru 10, jak je popsáno níže. Stav těchto N sad registrů 133 příkazů IPI je hromadně udržován softwarem pro správu přerušení v hlavní sadě registrů příkazů IPI v oblasti paměti pro všeobecné účely. Pokud např. každý ze čtyř zpracovávajících uzlů 8. ve vzorovém počítačovém systému 6 NUMA podporuje maximálně 8 procesorů, pak každá hlavní sada 4 udržovaných registrů příkazů IPI může mít 32 bitů, • · kde bity 0-7 odpovídají procesorům 0-7 zpracovávajícího uzlu 0, bity 8-15 odpovídají procesorům 0-7 zpracovávajícího uzlu 1, atd.
Kromě globálních registrů 90, per-procesorových registrů 92 a registrů 133 příkazů IPI popsaných výše může každá IDU 19 také obsahovat zdroje přerušení globálního časovače a další registry definované pomoci OpenPIC či jiné registry.
2.1.3 Práce zdrojové jednotky přerušení (ISU)
Na obr. 5 je znázorněn logický vývojový diagram vyšší úrovně práce jednotky ISU 28 podle tohoto vynálezu. Podle obrázku začíná proces v bloku 140 jako reakce na přijetí vstupu jednotkou ISU 28 a poté pokračuje do bloku 142. Jestliže je vstupem paket přerušení obdržený ze sběrnice (tj . z lokálního propojení 16 nebo mezilehlé sběrnice 30) , pokračuje proces do bloku 152, který bude popsán níže. Pokud je však vstupem vnější přerušení (tj . zdrojem přerušení je vznesen požadavek na spoj požadování přerušení), pokračuje proces z bloku 142 do bloku 144, který znázorňuje, jak ISU 28 přistupuje do příslušného registru 72 zdrojové konfigurace přerušení, aby danému přerušení přiřadila úroveň. ISU 28 pak v bloku 146 určí pohledem do registru 72 zdrojové konfigurace přerušení, zda jsou přerušení na úrovni obdrženého vnějšího přerušení právě maskována nebo ne. Jak je zmíněno výše, v upřednostňovaném provedení tohoto vynálezu je v daném čase v každém zpracovávajícím uzlu 8. aktivní nejvýše jedno přerušení jakékoliv dané úrovně. Jestliže přerušení na úrovni přijatého vnějšího přerušení jsou maskována, ISU 28 neprovede zatím žádnou další akci a zdroj přerušení musí pokračovat ve vznášení požadavku na • 4.4 · ♦ · 44 • 4 · ·· • 4 4 ··
spoj 35 požadováni přerušení nebo vznést požadavek později. Pak se proces vrátí do bloku 142. Pokud se ale v bloku 14 6 určí, že přerušení na úrovni přijatého přerušení nejsou maskována, ISU 28 pošle paket přerušení lokálním propojením 16 (případně mezilehlou sběrnicí 80) k lokální IDU 19 s udáním úrovně přerušení vektoru přerušení, jak je znázorněno v bloku 150. Navíc ISU 28 zamaskuje přerušení na úrovni přijatého přerušení. Proces se potom vrátí z bloku 150 do bloku 142, který již byl popsán. Pokud tedy není povoleno vedení přerušení, jak je popsáno níže, jsou všechna vnější přerušení předávána softwaru hardwarem v tom zpracovávajícím uzlu 8., ve kterém se vnější přerušení vyskytla.
Co se týče bloku 152, odezvou na přijetí paketu přerušení na sběrnici ISU 28 určí, zda má nějaké nevyřešené přerušení na úrovni stanovené v paketu přerušení. Pokud nemá, je paket přerušení, který bude zpracován jinou ISU 28, ignorován a proces se vrátí do bloku 142. Pokud se v bloku 152 určí, že ISU 28 má na úrovni stanovené v paketu přerušení nějaké nevyřešené přerušení, proces pokračuje do bloku 160. Blok 160 představuje rozhodování, zda transakce přerušení přijatá jednotkou ISU 28 je či není transakcí EOI nebo zrušení přerušení. V kladném případě proces postoupí do bloku 162, který znázorňuje, jak ISU 28 smaže masku přerušení na úrovni stanovené v transakci přerušení ze sběrnice. Pak se proces vrátí do bloku 142, který byl popsán výše.
Jestliže ISU 28 v bloku 160 naopak určí, že transakce přerušení přijatá ze sběrnice není transakcí EOI ani zrušení přerušení, postoupí proces do bloku 170, který představuje rozhodování, zda transakce přerušení přijatá ze sběrnice je
či není transakci opakovaného vyslání, která požaduje, aby ISU 28 znovu později vyslala přerušení na stanovené úrovni. Pokud paket přerušení přijatý ze sběrnice není transakcí opakovaného vyslání či jinak definovaný paket přerušení, postoupí proces do bloku 172, který zobrazuje ISU 28, jak provádí funkci správy příslušné chyby. Pokud však transakce přerušení přijatá ze sběrnice je transakcí opakovaného vyslání, pak proces postoupí do bloku 174. Blok 174 představuje ISU 28, která čeká po dobu časového intervalu v závislosti na implementaci (např. předem stanovený počet hodinových cyklů) než znovu vyšle paket přerušení k jednotce IDU 1_9/· jak je znázorněno v bloku 150.
2.1.4 Práce cílové jednotky přerušení (IDU)
Na obr. 6 je znázorněn logický vývojový diagram vyšší úrovně práce jednotky IDU 19, když zpracovává své vstupy. Jak je vyznačeno, proces začíná v bloku 180 jako reakce na přijetí vstupu jednotkou IDU 19 a poté pokračuje do bloku 182. Blok 182 znázorňuje, jak jednotka IDU 19 určuje, zda je vstupem paket požadování přerušení vydaný jednotkou ISU 28. Pokud ne, postoupí proces do bloku 200, který je popsán níže. Pokud ale je vstupem paket požadování přerušení vydaný jednotkou ISU 28, pokračuje proces do bloku 184, který představuje rozhodování, zda úroveň přerušení stanovená v paketu požadování přerušení je (1) vyšší než úroveň přerušení stanovená v registru 122 priorit současné úlohy některého z procesorů 10, který právě neobsluhuje přerušení, v lokálním zpracovávajícím uzlu .8,nebo (2) dostatečně vysoká k získání záznamu ve frontě 130 nevyřešených přerušení procesoru 10. Pokud není, postoupí proces do bloku 186. Blok 186 znázorňuje jednotku IDU 19, jak vysílá na lokální propojení 16 paket opětovného vyslání přerušení, který je přijat a zpracován jednotkou ISU 28, jak je popsáno výše podle obr. 5. Podobný paket opětovného vyslání přerušení může být přerušení než nově poslán, ve frontě přij até je plná, z fronty přerušení vytlačeno nového přerušení.
jak je znázorněno v bloku 188, 130 nevyřešených přerušení přerušení a fronta 130 což způsobí, že nevyřešené 130 nevyřešených přerušení pokud má nižší úroveň nevyřešených přerušení je ve prospěch
Po průchodu bloky 184 a 188 pokračuje proces do bloku 190, který znázorňuje IDU 19, jak vznáší požadavek na spoj 36 požadování přerušení toho procesoru 10, jemuž bylo přerušení zařazeno do fronty v bloku 184. Navíc, jak znázorňuje blok 192, IDU 19 nastaví v registru 122 priorit
současné úlohy příznak „nevyřešeno pro úroveň daného
přerušení a nastaví příznak „aktivní pro přerušený
procesor. Pak se proces vrátí do bloku 182, který již byl
popsán.
Vrátíme-li se do bloku 182, pak pokud vstup přij atý
jednotkou IDU 19 není paket požadování přerušení, IDU 19 v bloku 200 rozhodne, zda přijatá vstupující transakce je transakcí potvrzení přerušení (ACK) vyslanou na lokální propojení 16 lokálním procesorem 10 k potvrzení přijetí přerušení. Pokud není, pokračuje proces do bloku 220, který je popsán níže. Pokud však vstup přijatý jednotkou IDU 19 je transakcí potvrzení přerušení, pak proces pokračuje do bloku 202, který znázorňuje, jak IDU 19 ukončuje svůj požadavek na spoj 36 požadování přerušení a přesune nevyřešené přerušení z fronty 130 nevyřešených přerušení do fronty 132 přerušení obsluhovaných procesorem tím, že uloží alespoň úroveň přerušení jako zápis do fronty obsluhovaných přerušení. Jak je znázorněno v bloku 204, IDU 19 poté vyšle lokálním
propojením 16 transakci přerušení, která obsahuje úroveň přerušení a vektor přerušení, obsluhujícímu procesoru 10. Jestliže je jednotkou IDU 19 z nějakého důvodu přijata transakce přerušení přerušení procesoru pro daný dodán
ACK a neexistuje žádné vysílající procesor 10, nevlastní vektor přerušení nevyřešené je tomuto obsažený v registru 108 nevlastního vektoru. Poté se proces vrátí do bloku 182.
Po .obsloužení přerušení vydá obsluhující procesor 10 jednotce IDU 19 transakci zápisu konce přerušení (EOI), jak je znázorněno na obr. 6, kde proces postoupí z bloku 182 do bloku 200, poté do bloku 220 a poté do bloku 222. Blok 222 zobrazuje, jak IDU 19 zruší příznak „nevyřešeno pro úroveň přerušení obsaženou v transakci zápisu EOI. Jak je uvedeno v bloku 228, IDU 19 také vyšle transakci EOI na lokální propojení 16 ke smazání bitu, který byl danému přerušení nastaven v registru 82 nevyřešených přerušení ve zdrojové jednotce ISU 28, jak bylo popsáno výše podle bloků 160 a 162 na obr. 5. Jak je znázorněno v bloku 224, pokud je ve frontě 130 nevyřešených přerušení přerušeného procesoru 10 přítomno jiné přerušení, je procesor 10 na přerušení ve frontě upozorněn a proces postoupí do bloku 190, který již byl popsán. Jinak pokud pro přerušený procesor 10 nejsou žádná další nevyřešená přerušení, IDU 19 smaže příznak „aktivní v jednotce IDU 19 pro přerušený procesor 10, jak znázorňuje blok 226. Poté se proces vrátí do bloku 182.
Pokud vstupující transakce přijatá jednotkou IDU 19, stále ještě na obr. 6, není požadavkem přerušení, tra.nsakcí ACK nebo transakcí EOI, IDU 19 v bloku 240 určí, zda vstupující transakce je transakcí zápisu, která směřuje do registru 133 příkazů IPI. Pokud ne, proces postoupí do bloků • · • · · · · ·♦· Σ Σ Σ
- 24 -ί ···· ♦ ......· ί ·~ ~ · · * * * * * Μ ··· · ·· ·· ·· ···
260-264, které představuji IDU 19, jak provádí další zpracování, jestliže je daný vstup platný, jinak provádí příslušnou činnost zotavení z chyb. Pokud je však vstup transakcí zápisu směřující do registru 133 příkazů IPI, pak ISU 19 rozezná vstup jako spouštěč pro IPI.
Na rozdíl od výše popisovaných vnějších přerušení, IPI může být generováno kterýmkoliv procesorem 10 v počítačovém systému 6 NUMA a může směřovat k sobě samému či k jednomu nebo více dalším procesorům 10 v počítačovém systému 6 NUMA. Takových IPI se typicky využívá k asynchronnímu předávání zpráv mezi procesy běžícími na různých procesorech 10. Aby mohla být přerušení IPI podporována, nastavující software spuštěný při zavedení systému napřed inicializuje úroveň každého ze čtyř podporovaných IPI. Během činnosti počítačového systému _6 NUMA potom zdrojový procesor 10 vybere cílový procesor či procesory 10 jako příjemce zprávy, přičemž v registru 122 priorit současné úlohy tohoto procesoru je udána prahová úroveň IPI každého cílového procesoru 10. Zdrojový procesor 10 pomocí konfiguračních informací a prahové úrovně IPI každého z cílových procesorů určí, které přerušení IPI využije k přerušení zvolených cílových procesorů 10. Zdrojový procesor 10 poté uloží zprávu do oblasti sdílené paměti, k níž lze přistupovat pomocí registru 106 vektoru IPI příslušného vybranému IPI. Nakonec zdrojový procesor 10 vyšle transakci zápisu každému zpracovávajícímu uzlu jB, který obsahuje cílový procesor 8_, přičemž každá takováto transakce zápisu směřuje k příslušnému registru 133 příkazů IPI.
Jak bylo pojednáno výše, právě tato transakce zápisu je dekódována jednotkou IDU 19 v bloku 240 na obr. 6. Z bloku 240 postoupí proces do bloku 242, který znázorňuje IDU 19, ·· jak určuje, jaká priorita (úroveň) přísluší danému cílovému registru 133 příkazů IPI, a jaké procesory 10 přijímají přerušení této úrovně např. pohledem do registrů 106 vektorů IPI. Jakmile jsou určeny lokální cílové procesory 10, IDU 19 vznese požadavek na spoj požadování přerušení cílových procesorů 10, nastaví příznak „nevyřešeno pro úroveň přerušení daného IPI a nastaví příznak „aktivní pro cílový procesor 10, jak je uvedeno v blocích 244 a 24 6. Poté se proces vrací do bloku 182.
2.1.5 Vedení přerušení (Interrupt Channelling)
Pro některá použití počítačového systému _6 NUMA může být výhodné rozšíření určitých zdrojů jako např. systémové paměti 18, V/V zařízení 32 nebo paměťových zařízení 34, aniž by se rozšířily zpracovávající zdroje počítačového systému 6 NUMA. V takových případech je žádoucí přidat jeden či více uzlů 8. navíc, které neobsahují žádné procesory 10. Avšak vzhledem k výše popsanému rozdělení počítačového systému 6 NUMA na uzlové domény přerušení je zapotřebí mechanismus ke správě vnějších přerušení, která jsou generována zdroji přerušení v uzlech 8. bez procesorů. Podle upřednostňovaného provedení tohoto vynálezu, je dosaženo správy vnějších přerušení, která jsou generována zdroji přerušení v uzlech 13 bez procesorů, pomocí vedení přerušení.
Aby se uskutečnilo vedení přerušení, lokální IDU 19 (pokud je přítomna) je nečinná a uzlový řadič 20 každého uzlu 8 bez procesorů je nastaven do předávacího módu, ve kterém uzlový řadič 20 uzlu 8. bez procesorů přijímá pakety přerušení pocházející z lokálních ISU 28 a předává tyto pakety přerušení určenému „pěstounskému uzlu 8i, který obsahuje alespoň jeden procesor 10 a jednu IDU 19. Tento • · • · · ···· · · předávací mód může být řízen např. registrem režimu v segmentu 70 oblasti systémového řízení uzlu bez procesoru, který je zapsán konfiguračním softwarem při zavádění systému, přičemž registr režimu obsahuje řídící bit režimu a identifikátor pěstounského uzlu.
Jako reakci na přijetí transakcí přerušení předaných přes uzlové propojení 22 spustí uzlový řadič 20 pěstounského uzlu 8_ tyto transakce na svém lokálním propojení 16. IDU 19 v pěstounském uzlu 8_ poté požaduje pakety přerušení a předá přerušení popsáno j ednotkou zdrojovým S využitím j ednotky v doméně k obsloužení lokálním procesorům 10, jak bylo přerušení generované 8 jsou též vysílány _8 bez procesorů, zdroje přerušení a procesorů uzlu 8 uzlu takto bez výše. Jakékoliv pakety
IDU 19 v pěstounském uzlu jednotkám ISU 28 v vedení přerušení jsou
ISU vzdálených uzlů _8 přerušení určeného pěstounského se spravují s využitím stejných typů jaké se používají ke správě vnějších v pěstounském uzlu 8_. Využitím obsaženy a vnější transakcí přerušení možností přerušení přerušení generovaných neomezujícího přenosu v uzlovém propojení 22 mohou výhodně existovat souběžné vztahy „pěstounský uzel-„svěřený uzel bez porušení nezávislosti domén.
Zvláštní případ vedení přerušení během zavedení systému se nazývá slévání přerušení (interrupt funnelling) . Při slévání přerušení jsou všechna vnější přerušení v počítačovém systému NUMA dočasně směrována ke hlavnímu procesoru, což je první, který bude nastaven. Poté, co byly nastaveny zbývající procesory a jsou tudíž schopné obsluhovat přerušení, je uplatněno rozdělení do domén přerušení.
• · · • ·
2.2 Software přerušeni
Na obr. 7 je logický vývojový diagram vyšší úrovně, který znázorňuje část konfigurační rutiny pro konfiguraci zdrojů přerušení podle tohoto vynálezu. Jak je znázorněno, část konfigurační rutiny zobrazená na obr. 7 začíná v bloku 300, přednostně poté, co proběhl počáteční tesť POST (z angl. Power On Šelf Test) a další kód hardwarové inicializace nižší úrovně, a pak pokračuje blokem 302. Blok 302 znázorňuje konfigurační rutinu, jak zjišťuje, které uzly £ počítačového systému _6 NUMA obsahují zařízení schopná generovat vnější přerušení. Dále, v bloku 304, konfigurační rutina prozkoumá každé zařízení schopné generovat vnější přerušení, aby určila úroveň přerušení, kterou každé takové zařízení bude chtít využívat. Konfigurační rutina vyřeší konflikty, pokud jsou, mezi zařízeními a přidělí úrovně každému z přerušení daných zařízení. Proces pokračuje z bloku 304 do bloku 310, který znázorňuje konfigurační rutinu, jak pro každou příslušnou úroveň přerušení vytváří v paměti pro všeobecné účely, datovou strukturu, která uvádí všechna zařízení, která by mohla generovat vnější přerušení na dané úrovni přerušení, uzlový identifikátor každého zařízení a fyzickou adresu každého z registrů daného zařízení. V závislosti na implementačně specifikovaných podrobnostech lze další informace užitečné pro správu přerušení také uložit v každé datové struktuře.
Konfigurační rutina pak nastaví hardware v každém uzlu 8_, jak je uvedeno v blocích 312-334. Poté, co konfigurační rutina vybere uzel £ v bloku 312, konfigurační rutina určí, zda vybraný uzel 8_ obsahuje procesor 10. Pokud ne, konfigurační rutina implementuje vedení přerušení tím, že vyřadí IDU 19 ve vybraném uzlu £, jak je zobrazeno v bloku • 9 ·
• · • 999
99
99
9999 ·· uzlový řadič 20, např.
- 28 9
330, a patřičně nastaví ISU 28 zapsáním hodnot do paměťově mapovaných registrů. Jak je popsáno výše, konfigurace uzlového řadiče 20 zahrnuje nastavení bitu předávacího módu a specifikaci pěstounského uzlu 8. v předávacím registru režimu. Navíc konfigurační registr přednostně zapíše uzlový identifikátor vybraného uzlu 8. do uzlového identifikačního registru v uzlovém řadiči 20. Poté proces postoupí do bloku 334, který znázorňuje, jak konfigurační rutina určuje, zda zbývají nějaké další uzly k nastavení. Pokud ano, proces se vrací do bloku 312, ve kterém konfigurační registr vybere další uzel 8. ke zpracování.
Co se týče bloku 320, pokud konfigurační rutina určí, že uzel 8. vybraný v bloku 312 obsahuje procesor 10, postoupí proces do bloku 322. Blok 322 znázorňuje, jak konfigurační rutina nastavuje procesor (y) 10, jednotku IDU 19, jednotku/y ISU 28 a uzlový řadič 20 ve vybraném uzlu 8.. Jak je uvedeno, konfigurace přednostně obsahuje zapsání uzlového identifikátoru do uzlového identifikačního registru v uzlovém řadiči 20 a zapsání vlastního identifikátoru každého procesoru do vnitřního identifikačního registru procesoru. Poté proces pokračuje do bloku 334 a pokud zbývají ke zpracování další uzly 8., pokračuje ostatními aktivitami nastavování a konfigurace v bloku 336.
Na obr. 8 je logický vývojový diagram vyšší úrovně, který znázorňuje způsob, jakým software správce přerušení první úrovně, zkr. FLIH (z angl. First Level Interrupt Handler) napomáhá obsloužení přerušení, které bylo předáno procesoru 10 jednotkou IDU 19. Podle znázornění začíná proces v bloku 400 jako reakce na vznesení požadavku na spoj požadování přerušení jednotkou IDU 19, jak bylo pojednáno ·· · • · · —φ φφφφ · • ·
ΦΦΦ · ·« φφ·β • · · ·· • ♦ · ·· ·« • · · · · ·· • · · · ·· • Φ φφ φφ výše v souvislosti s obr. 6. Jako reakci na vznesení požadavku na spoj požadování přerušení obdrží procesor 10 výjimku a skočí na správce přerušení první úrovně, který začíná v bloku 402. Blok 402 znázorňuje procesor 10, který pracuje pod řízením FLIH, jak vysílá transakci potvrzení (ACK) přerušení jednotce IDU 19, aby získal úroveň přerušení a vektor přerušení, které má být obslouženo. FLIH také v bloku 403 určí, zda je přerušení IPI nebo vnější přerušení. Pokud je přerušení IPI, proces postoupí do bloku 405, který znázorňuje, jak obsluhující procesor 10 čte z oblasti sdílené paměti dané IPI úrovně zprávu od přerušujícího procesoru 10. Poté proces postoupí do bloku 410, který je popsán níže.
Vrátíme-li se k bloku 403, jako reakce na určení, že přerušení předané procesoru 10 je vnější přerušení, postoupí proces do bloku 404. V bloku 404 zamaskuje FLIH přerušení od jednotky IDU 19, pokud je to implementací vyžadováno, a obdrží softwarový zámek na jakékoliv exkluzivní zdroje přerušení potřebné k obsloužení daného přerušení. Poté FLIH pošle úroveň přerušení a ukazatel příslušnou na datovou strukturu dané úrovně přerušení správci přerušení druhé úrovně, zkr. SLIH (z angl. Second Level Interrupt Handler), jak je uvedeno v bloku 406.
Jak ocení odborníci, SLIH je rutina spravující přerušení, která provádí operace potřebné k obsloužení přerušení generovaného konkrétním zařízením. Protože mnoho zdrojů přerušení může generovat stejnou úroveň přerušení, jsou tyto rutiny SLIH typicky zřetězeny a tvoři dotazovací řetězec, takže pokud je zpracováván dotazovací řetězec SLIH, každá rutina SLIH se dotazuje svého příslušného (nebo svých příslušných) zařízení, aby určila, zda je zařízení zdrojem
• · 99 ·*
• · · • · 9 9 ·
• · · • 9 • · · • *
«1·· • · · • · • · ·
• · • · • · • ·
• · · « 99 • a ·· ·
přerušeni, a pokud ano, provede operace nutné k obsluze přerušení. Tento vynález uznává, že latence správy přerušení je vysoce závislá na délce dotazovacího řetězce, který je zase závislý na počtu úrovní externích přerušení a počtu potenciálních zdrojů přerušení v počítačovém systému NUMA. Pokud tedy počítačový systém 6 NUMA má pouze 16 úrovní externích přerušení a počet potenciálních zdrojů přerušení v počítačovém systému 6 NUMA je vysoký, bude vysoká latence správy přerušení. Aby se docílilo lepší latence správy přerušení, omezuje tento vynález počet SLIH v dotazovacím řetězci eliminací zdrojů v jednom či více uzlech jakožto kandidátů na zdroj přerušení.
V prvním provedení je počet SLIH v dotazovacím řetězci omezen tím, že FLIH namapuje úroveň přerušení jako úroveň přerušení specifickou pro daný uzel (nebo nadřazenou úrověň), která je tvořena zřetězením (či jiným sloučením) uzlového identifikátoru, ve kterém se přerušení vyskytlo a který je znám procesoru 10, jenž přerušení obdržel, s konvenční úrovní přerušení. Každá taková úroveň přerušení specifická pro daný uzel by měla odpovídající datovou strukturu přerušení, vytvořenou v paměti konfigurační rutinou, kde by datová struktura uváděla pouze ta zařízení v příslušném uzlu (t j . doméně přerušení), která by mohla generovat vnější přerušení dané úrovně. Úroveň přerušení předaná první rutině SLIH v dotazovacím řetězci v bloku 406 by byla úroveň přerušení specifická pro daný uzel, ukazatel předaný rutině SLIH v bloku 406 by ukazoval na datovou strukturu úrovně specifické pro daný uzel a dotazovací řetězec by zahrnoval SLIH příslušné zařízením, která jsou uvedena v datové struktuře přerušení specifického pro daný uzel. Toto první provedení je výhodné v tom, že může být souběžně spuštěno několik správců přerušení stejné úrovně na ; f · · * · · • · ♦ · · · · • ·· · · · · · ··· · ·· ·'· ®· ··· procesorech 10 na různých uzlech aniž by vznikaly konflikty (nebo by musely být uděleny zámky) ohledně zdrojů obsluhujících přerušení, avšak vyžaduje, aby rutiny FLIH a SLIH rozeznaly úrovně přerušení specifické pro dané uzly.
Počet SLIH v dotazovacím řetězci může být eventuálně omezen podle druhého provedení, ve kterém sama FLIH předává podmnožinu datové struktury přerušení rutině SLIH, kde tato podmnožina datové struktury přerušení uvádí pouze zařízení, která mají stejný uzlový identifikátor jako procesor, jemuž je vnější přerušení předáváno. Jelikož se neberou v úvahu zařízení v jiných uzlech, bude pravděpodobně dotazovací řetězec SLIH kratší. Jakékoliv z těchto provedení lze využít společně s vedením přerušení popsaným výše, v tomto případě datová struktura sestavená konfigurační rutinou pro doménu přerušení bude obsahovat zařízení v rámci pěstounského uzlu i svěřeného uzlu.
V každém případě jakmile bylo předáno řízeni první SLIH v dotazovacím řetězci, čeká FLIH na dokončení obsluhy přerušení, jak je uvedeno v bloku 408. Je důležité, že jakmile bylo přerušení předáno dotazovacímu řetězci rutin SLIH, může operační systém rozvrhnout spuštění těchto SLIH na jakémkoliv procesoru 10 v počítačovém systému 6 NUMA a může vybrat jiný procesor 10 ke spuštění SLIH v reakci na vyvažování čtení, afinitu dat nebo jiná kritéria. Po skončení rutiny SLIH příslušné zdroji přerušení je vrácena kontrola rutině FLIH v procesoru 10, který původně přerušení obdržel, a ten pošle jednotce IDU 19 EOI transakci, která udává úroveň obsluhovaného přerušení, jak je uvedeno v bloku 410 a popsáno výše v souvislosti s blokem 220 na obr. 6.
Poté FLIH skončí v bloku 412.
• · ♦ · ·
- 22.h • · ··♦ » to ♦
Jak bylo popsáno, tento vynález zajišťuje architekturu přerušení pro počítačový systém NUMA. Architektura přerušení, jež zahrnuje složky hardwaru i softwaru může být obecně popsána jako rozdělení počítačového systému NUMA do domén vnějších přerušení tak, že vnější přerušení je vždy předáváno procesoru v té doméně vnějšího přerušení, v níž se přerušení vyskytuje. I když každá taková doména vnějších přerušení typicky obsahuje pouze jediný uzel, lze implementovat vedení přerušení nebo slévání přerušení ke směrování vnějších přerušení přes hranice uzlů Po předání procesoru, j akémkoliv přerušení.
procesoru procesoru v systému se muže software
Architektura přerušení pro předání spustit na k obsloužení podle tohoto vynálezu výhodně umožňuje softwaru obsloužit vnější přerušení dotazovacího řetězce (stromu) správy přerušení tím, že se omezí promptně velikost správy přerušení v porovnání s metodami podle předchozího stavu techniky. Kromě vnějších přerušení podporuje architektura přerušení podle tohoto vynálezu meziprocesorová přerušení (IPI), jimiž může jakýkoliv procesor přerušit sám sebe nebo jeden či více procesorů v systému. Tento vynález využívá paměťově mapovaných registrů ke spouštění IPI, což usnadňuje přenos IPI přes hranice uzlů a umožňuje spustit všesměrová IPI prostým vysláním jedné transakce zápisu každému uzlu obsahujícímu procesor, který má být přerušen. Je důležité, že architekturu přerušení podle tohoto vynálezu lze škálovat od malých počítačových systémů NUMA obsahujících několik uzlů po velké systémy obsahující stovky uzlů. Hardware přerušení v každém uzlu je také rozmístěn za účelem škálovatelnosti, přičemž hardwarové součásti komunikují transakcemi přerušení, které jsou přenášeny sdílenými komunikačními cestami (tj. lokální sběrnice a propojení).
4· ® ·4
- 133.:-.
4· ·4
I když byl tento vynález popsán s ohledem na provedení vyhovující OpenPIC, je dobré si uvědomit, že tento vynález není omezen na systémy vyhovující OpenPIC. Navíc, přestože byly aspekty tohoto vynálezu popsány systém, který spouští software vynálezu, je dobré si uvědomit, alternativně implementovat jako pro využití v počítačovém funkce tohoto vynálezu, celou řadou nosičů signálu, které s ohledem na počítačový řídící způsob tohoto že tento vynález lze počítačový programový systému. Programy, které lze dodávat počítačovému zahrnují, bez produkt určuj i systému omezení, nezapisovatelná paměťová média (např. CD-ROM), zapisovatelná paměťová média (např. floppy disky, harddisky, EEPROM) a komunikační média jako jsou např. počítačové a telefonní sítě. Je dobré si tudíž uvědomit, že takovéto nosiče signálu, pokud nesou či kódují instrukce čtené počítačem, které řídí funkce tohoto vynálezu, představují alternativní provedení tohoto vynálezu.
Zastupuje:
JUDr. Petr Kalenský advokát
120 00 Praha 2, Hálkova 2
• « · • · ·

Claims (1)

  1. PATENTOVÉ
    NÁROKY
    1. Systém zpracováni dat, vyznačující se tím, že obsahuje množství domén přerušení, z nichž každá obsahuje alespoň jeden z množství propojených zpracovávajících uzlů, kde každá doména přerušení obsahuje alespoň jeden procesor schopný přijímat vnější přerušení a alespoň jeden zdroj přerušení schopný generovat vnější přerušení, přičemž každé z množství domén přerušení má příslušný hardware přerušení, který přijímá vnější přerušení generovaná alespoň jedním zdrojem přerušení a předává vnější přerušení alespoň jednomu procesoru, přičemž alespoň jeden procesor spouští software správy přerušení, který může obsluhovat přerušení předaná jednak procesoru ve stejné doméně přerušení jako je alespoň tento jeden procesor jednak procesoru v jiné doméně přerušeni než je alespoň tento jeden procesor.
    2. Systém zpracování dat podle nároku 1, vyznačující se tím, že hardware v každé z mnoha domén přerušení obsahuje cílovou jednotku přerušení, která předává přerušení procesorům pouze ve své doméně přerušení, a alespoň jednu zdrojovou jednotku přerušení, která přijímá přerušení od zdrojů přerušení.
    3. Systém zpracování dat podle nároku 2, vyznačující se tím, že cílová jednotka přerušení a zdrojová jednotka přerušení posílají informace o přerušení sdíleným propojením.
    4. Systém zpracování dat podle nároku 2,
    82 041 • · 4 · • · ·
    - 23.h • · • · · * vyznačující se tím, že alespoň pro jednu doménu přerušeni z množství domén přerušeni jsou alespoň cílová jednotka přerušení a jedna zdrojová jednotka přerušení umístěny v jiných zpracovávajících uzlech v množství propojených zpracovávajících uzlů.
    5. Systém zpracování dat podle nároku 4, vyznačující se tím, že jeden z množství propojených zpracovávajících uzlů, obsahující alespoň jednu zdrojovou jednotku přerušení, neobsahuje žádné procesory pro přijímání vnějších přerušení.
    Systém vyznačující s přerušení obsahuje zpracování e tím, že dat alespoň množství zdrojových podle nároku 2, jedna z množství domén jednotek přerušení.
    zpracování dat s tím, že mapovaný doménami přerušení registr, přerušení.
    obsahuje využívaný podle nároku 1, hardware přerušení v každé globálně přístupný paměťově k přenosu přerušení mezi
    8.
    Systém vyznáčující zpracování se tím, že mapovaný registr přerušení.
    se využívá dat podle nároku 7, globálně přístupný paměťově k přenosu meziprocesorových
    9. Systém z z
    X C X vy z na ču j zpracování tím, mapovanému příslušná přístupného přerušení má každé dat podle nároku 7, globálně přístupnému paměťově z domén přerušení je přidělena fyzická adresa globálně registru každé z domén oblasti paměti přidělené že registru fyzická paměťově mapovaného jednotný ofset od adresa • · • · · · · φ zpracovávajícímu uzlu, který obsahuje globálně přístupný paměťově mapovaný registr.
    10. Způsob správy vnějšího přerušení v systému zpracování dat, vyznačující se tím, že způsob obsahuj e:
    zřízení množství domén přerušení z nichž každá obsahuje alespoň jedno z množství propojených zpracovávajících uzlů, kde každá doména přerušení obsahuje alespoň jeden procesor schopný přijímat vnější přerušení a alespoň jeden zdroj přerušení schopný generovat vnější přerušení, přičemž každá z množství domén přerušení má příslušný hardware přerušení;
    v konkrétní doméně přerušení z množství domén přerušení přijetí vnějšího přerušení generovaného alespoň jedním zdrojem přerušení v hardwaru přerušení a předání vnějšího přerušení alespoň jednomu procesoru pomocí hardwaru přerušení;
    spuštění, alespoň jedním procesorem v konkrétní doméně přerušení, softwaru správy přerušení, který může obsloužit vnější přerušení předané alespoň jednomu procesoru a vnější přerušení předané procesoru v jiné doméně z množství domén přerušení než v konkrétní doméně přerušení.
    11.
    Způsob tím, že hardware cílovou jednotku obsahuj e podle nároku 10, vyznačující se přerušení v každé z mnoha domén přerušení jednotku přerušení přerušení, přičemž přijímání vnějšího a alespoň jednu vněj šího alespoň vněj šího alespoň přij ímání přerušení předávání přerušení obsahuj e zdrojovou přerušení jednou zdrojovou jednotkou přerušení a přerušení obsahuje předávání vnějšího jednomu procesoru s využitím cílové jednotky přerušení
    12. Způsob podle nároku 11, vyznačující tím že dále obsahuje předáváni informací o přerušení mezi cílovou jednotkou přerušení a zdrojem přerušení sdíleným propoj ením.
    13. Způsob podle nároku 12, vyznačující se tím, že alespoň pro jednu doménu přerušení z množství domén přerušení obsahuje předávání informace o přerušení sdíleným propojením, které propojuje alespoň dva z množství zpracovávajících uzlů.
    že zřizování množství domén přerušení obsahuje tím, zřizování alespoň jedné domény přerušení, v níž jeden z množství propojených zpracovávajících uzlů obsahuje alespoň jednu zdrojovou jednotku přerušení a žádné procesory pro přijímání vnějších přerušení.
    15. Způsob podle nároku 11, vyznačující se tím, že zřizování množství domén přerušení obsahuje zřízení alespoň jedné z množství domén přerušení obsahující množství zdrojových jednotek přerušení.
    16. Způsob podle nároku 10, vyznačující se tím, že dále obsahuje přenos přerušení mezi doménami přerušení využitím globálně přístupného paměťově mapovaného registru v hardwaru přerušení.
    17. Způsob podle nároku 16, vyznačující se tím, že přenos přerušení mezi doménami přerušení obsahuje přenos meziprocesorových přerušení mezi doménami přerušení.
    18. Způsob podle nároku 16, tím, že dále obsahuje:
    vyznačující.
    * ♦ ···>··· • · · · · · · ·· ·
    - ?8· -* · · ··· · ·· * U···· ♦ · ·· · · « 9· • · · · · · · ·« ··· · ·· ·· · · « · · přiděleni globálně přístupnému paměťově mapovanému registru každé domény přerušení příslušnou fyzickou adresu, přičemž fyzická adresa globálně přístupného paměťově mapovaného registru každé domény přerušení má jednotný ofset od oblasti paměti přidělené zpracovávajícímu uzlu, který obsahuje globálně přístupný paměťově mapovaný registr.
    19. Způsob zpracování přerušení v systému zpracování dat, který obsahuje množství propojených uzlů, kde každý z množství propojených uzlů obsahuje zařízení, které generuje přerušení, a zařízení ve více uzlech mohou generovat přerušení stejné úrovně, přičemž způsob se vyznačuje tím, že odezvou na předání přerušení procesoru k obsloužení, přičemž přerušení má nějakou úroveň, získání seznamu zařízení schopných generovat přerušení této úrovně;
    dotázání se pouze zařízení ze seznamu, která jsou umístěna ve stejné doméně přerušení jako procesor, aby se zjistilo, které zařízení ze seznamu generovalo přerušení.
    20. Způsob podle nároku 19, vyznačující se tím, že dále obsahuje poté spuštění správce přerušení spojeného s identifikovaným zařízením.
    21. Způsob podle nároku 19, vyznačující se tím, že dále obsahuje:
    před předáním přerušení vytvoření a uložení seznamu do prostoru globální paměti, přístupného všem z množství propojených uzlů.
    22. Způsob podle nároku 21, vyznačující se tím, že seznam obsahuje pouze zařízení v jediné doméně přerušení.
    ··' ·· · · .9 99 • · · · ·· · · ♦ · — ® Q· -A 9 9 9 99 9 99
    9f ^9999 9 9 9 9 9 9 9 99 • · 9 9 9 9 9 99 ♦·· · 99 99 99999
    23. Systém zpracování dat, vyznačující se tím, že obsahuje množství propojených uzlů, přičemž každý z množství propojených uzlů obsahuje zařízení, které generuje přerušení, a zařízení na více uzlech mohou generovat přerušení stejné úrovně, přičemž alespoň jeden z množství propojených uzlů obsahuje procesor; a software správy přerušení uložený v systému zpracování dat a spustitelný procesorem, přičemž software správy přerušení, odezvou na to, že je předáno procesoru přerušení mající nějakou úroveň, získá seznam zařízení schopných generovat přerušení dané úrovně a dotazuje se pouze zařízení v daném seznamu, která se nacházejí ve stejné doméně přerušení.jako daný procesor, aby zjistil, které zařízení ze seznamu generovalo dané přerušení.
    24. Systém zpracování dat podle nároku 23, vyznačující se tím, že software správy přerušení je správce přerušení první úrovně, přičemž systém zpracování dat dále obsahuje správce přerušení druhé úrovně uloženého v systému zpracování dat a spustitelného procesorem, kde správce přerušení druhé úrovně je psojen se zařízením a správce přerušení první úrovně volá správce přerušení druhé úrovně k obsluze identifikovaného zařízení.
    25. Systém zpracování dat podle nároku 23, vyznačující se tím, že dále obsahuje prostor globální paměti přístupný všem z množství propojených uzlů, přičemž seznam je uložen v prostoru globální paměti před předáním přerušení.
    26. Systém zpracování dat podle nároku 25, • · — 40·-· ♦ ···· · · · • · «··»··· ··· · ·· ·· · » 9·· vyznačující se tím, že seznam obsahuje pouze zařízeni v jediné doméně přerušení.
    27. Programový produkt pro použití systémem zpracování dat, který obsahuje množství propojených uzlů, přičemž každý z množství propojených uzlů obsahuje zařízení generující přerušení a zařízení ve více uzlech mohou generovat přerušení stejné úrovně, kde alespoň jeden z mnoha propojených uzlů obsahuje procesor, přičemž programový produkt se vyznačuje tím, že obsahuje:
    počítačem využitelné médium ; a software správy přerušení zakódovaný na počítačem využitelném médiu a spustitelný systémem zpracování dat, přičemž software správy přerušení, odezvou na to, že je procesoru předáno přerušení mající nějakou úroveň, získá seznam zařízení schopných generovat přerušení dané úrovně a dotazuje se pouze zařízení v seznamu, umístěných ve stejné doméně přerušení jako procesor, aby zjistil, které zařízení ze seznamu generovalo dané přerušení.
    28. Programový produkt podle nároku 27, vyznačující se tím, že software správy přerušení je správce přerušení první úrovně, přičemž programový produkt dále obsahuje správce přerušení druhé úrovně zakódovaný na počítačem využitelném médiu, kde správce přerušení druhé úrovně je spojen se zařízením, a správce přerušení první úrovně volá správce přerušení druhé úrovně k obsluze identifikovaného zařízení.
    29. Programový produkt podle nároku 27, vyznačující se tím, že dále obsahuje konfigurační rutinu, zakódovanou na počítačem využitelném médiu, která vytváří seznam v prostoru globální paměti přístupném všem • ♦ z množství propojených uzlům před předáním daného přerušení.
    30. Programový produkt podle nároku 29, vyznačující se tím, že konfigurační rutina obsahuje v seznamu pouze zařízení v jediné doméně přerušení.
    Zastupuje:
    Dr. Petr Kalenskýv. r.
    • φ φφ·· ·· φφ φ ·φ φ φ φ φ· • · φ φφ • · ·φ φφ φφ
    1/9 • · ···· • · <N
    Q advokát
    m CQ m eo CD m m m cd CD CD CD o CD CD CD CM o co co sj- CM o
    3/9 /Vw>7- Wý rv t yv <
    • ·
    *—( Pm I—( £ Η-1 P P o O H H M w w > > r“H H H CO CO O M Pí O § )—i & 1—( p P O O H H VEK VEK o (N H H <Z) CO Φ REG
    4/9 \
    a
    1—< Ph l·—< & ’p p N N :s 1 Pu Ph T—< en f—1 H CO CZ) O Φ § w Ph & »P °P N N < s Pm Ph o (N H H CO co REG1 a
    • 4 • · • · 4 ·
    5/9
    .. • ·' 99 9 9 9 9. ·· • - • « v 9 · 4 ♦ • 44 • 4 ···· • · · • · 9 9 9 • · 4 · 9 4 • 4 99 99
    Ρΐ/ΊΟΟ'Ι'-^^ ···
    7/9
    8/9
    9/9
    402
    VYDEJ TRANSAKCI POTVRZENÍ PŘERUŠENÍ JEDNOTCE IDU ZA ÚČELEM ZÍSKÁNÍ ÚROVNĚ PŘERUŠENÍ A VEKTORU PŘERUŠENÍ
    ANO
    405
    ČTI ZPRÁVU Z OBLASTI PAMĚTI IPI
    V
    410
CZ20012154A 1998-12-17 1999-11-30 Architektura přerušení pro systém zpracování dat s neuniformním paměťovým přístupem (numa) CZ20012154A3 (cs)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/213,998 US6148361A (en) 1998-12-17 1998-12-17 Interrupt architecture for a non-uniform memory access (NUMA) data processing system

Publications (1)

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

Family

ID=22797380

Family Applications (1)

Application Number Title Priority Date Filing Date
CZ20012154A CZ20012154A3 (cs) 1998-12-17 1999-11-30 Architektura přerušení pro systém zpracování dat s neuniformním paměťovým přístupem (numa)

Country Status (13)

Country Link
US (1) US6148361A (cs)
EP (1) EP1141829B1 (cs)
JP (1) JP3606551B2 (cs)
KR (1) KR100457146B1 (cs)
CN (1) CN1128406C (cs)
AT (1) ATE232313T1 (cs)
AU (1) AU1397600A (cs)
CA (1) CA2349662C (cs)
CZ (1) CZ20012154A3 (cs)
DE (1) DE69905287T2 (cs)
HU (1) HUP0104536A3 (cs)
PL (1) PL348253A1 (cs)
WO (1) WO2000036505A1 (cs)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151688A (en) * 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
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
FR2792087B1 (fr) * 1999-04-07 2001-06-15 Bull Sa Procede d'amelioration des performances d'un systeme multiprocesseur comprenant une file d'attente de travaux et architecture de systeme pour la mise en oeuvre du procede
US6421775B1 (en) * 1999-06-17 2002-07-16 International Business Machines Corporation Interconnected processing nodes configurable as at least one non-uniform memory access (NUMA) data processing system
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US6615253B1 (en) 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US6339832B1 (en) * 1999-08-31 2002-01-15 Accenture Llp Exception response table in environment services patterns
US6742015B1 (en) 1999-08-31 2004-05-25 Accenture Llp Base services patterns in a netcentric environment
US6578068B1 (en) 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US6601192B1 (en) 1999-08-31 2003-07-29 Accenture Llp Assertion component in environment services patterns
US6502213B1 (en) * 1999-08-31 2002-12-31 Accenture Llp System, method, and article of manufacture for a polymorphic exception handler in environment services patterns
US6601234B1 (en) 1999-08-31 2003-07-29 Accenture Llp Attribute dictionary in a business logic services environment
US6549949B1 (en) 1999-08-31 2003-04-15 Accenture Llp Fixed format stream in a communication services patterns environment
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6571282B1 (en) 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
US6640238B1 (en) 1999-08-31 2003-10-28 Accenture Llp Activity component in a presentation services patterns environment
US6640249B1 (en) 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
US6640244B1 (en) 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
US6430643B1 (en) * 1999-09-02 2002-08-06 International Business Machines Corporation Method and system for assigning interrupts among multiple interrupt presentation controllers
US6591348B1 (en) * 1999-09-09 2003-07-08 International Business Machines Corporation Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
US6564277B1 (en) * 1999-09-30 2003-05-13 Silicon Graphics, Inc. Method and system for handling interrupts in a node controller without attached processors
US6529999B1 (en) * 1999-10-27 2003-03-04 Advanced Micro Devices, Inc. Computer system implementing system and method for ordering write operations and maintaining memory coherency
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
US6799317B1 (en) * 2000-06-27 2004-09-28 International Business Machines Corporation Interrupt mechanism for shared memory message passing
US6826619B1 (en) 2000-08-21 2004-11-30 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6487643B1 (en) 2000-09-29 2002-11-26 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6772298B2 (en) 2000-12-20 2004-08-03 Intel Corporation Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US6791412B2 (en) 2000-12-28 2004-09-14 Intel Corporation Differential amplifier output stage
US7234029B2 (en) * 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US6721918B2 (en) 2000-12-29 2004-04-13 Intel Corporation Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect
TW499795B (en) * 2001-03-19 2002-08-21 Realtek Semiconductor Corp PCI extended function interface and the PCI device using the same
US20020178313A1 (en) * 2001-03-30 2002-11-28 Gary Scott Paul Using software interrupts to manage communication between data processors
US6775730B2 (en) * 2001-04-18 2004-08-10 Sony Corporation System and method for implementing a flexible interrupt mechanism
JP3807250B2 (ja) * 2001-05-18 2006-08-09 日本電気株式会社 クラスタシステム、コンピュータ及びプログラム
US6988155B2 (en) * 2001-10-01 2006-01-17 International Business Machines Corporation Aggregation of hardware events in multi-node systems
US6968411B2 (en) * 2002-03-19 2005-11-22 Intel Corporation Interrupt processing apparatus, system, and method
US7130948B2 (en) * 2002-08-02 2006-10-31 Bian Qiyong B Flexible interrupt handling methods for optical networking apparatuses with multiple multi-protocol optical networking modules
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
US7529875B2 (en) * 2003-08-20 2009-05-05 International Business Machines Corporation Assigning interrupts for input/output (I/O) devices among nodes of a non-uniform memory access (NUMA) system
US7117285B2 (en) * 2003-08-29 2006-10-03 Sun Microsystems, Inc. Method and system for efficiently directing interrupts
US20050198421A1 (en) * 2004-03-08 2005-09-08 Nalawadi Rajeev K. Method to execute ACPI ASL code after trapping on an I/O or memory access
EP1596305B1 (en) * 2004-05-11 2007-07-11 STMicroelectronics Limited Interrupt handling system
US20050283554A1 (en) * 2004-06-22 2005-12-22 General Electric Company Computer system and method for queuing interrupt messages in a device coupled to a parallel communication bus
TWI256591B (en) * 2004-08-11 2006-06-11 Benq Corp Method of reducing interrupts
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
CN100397375C (zh) * 2005-12-02 2008-06-25 北京中星微电子有限公司 多中断处理单元的中断处理的装置和方法
JP4441592B2 (ja) * 2006-02-16 2010-03-31 セイコーエプソン株式会社 並列処理装置及び排他制御方法
US7424563B2 (en) * 2006-02-24 2008-09-09 Qualcomm Incorporated Two-level interrupt service routine
JP4971676B2 (ja) * 2006-04-28 2012-07-11 ルネサスエレクトロニクス株式会社 割り込み制御回路及び割り込み制御方法
US20080086575A1 (en) * 2006-10-06 2008-04-10 Annie Foong Network interface techniques
US8645668B2 (en) 2007-01-11 2014-02-04 Sony Corporation Information processing apparatus, information processing method and computer program
JP2008192128A (ja) * 2007-01-11 2008-08-21 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8296490B2 (en) * 2007-06-29 2012-10-23 Intel Corporation Method and apparatus for improving the efficiency of interrupt delivery at runtime in a network system
US8332595B2 (en) * 2008-02-19 2012-12-11 Microsoft Corporation Techniques for improving parallel scan operations
WO2009134217A1 (en) * 2008-04-28 2009-11-05 Hewlett-Packard Development Company, L.P. Method and system for generating and delivering inter-processor interrupts in a multi-core processor and in certain shared-memory multi-processor systems
US8024504B2 (en) * 2008-06-26 2011-09-20 Microsoft Corporation Processor interrupt determination
US20090327556A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Processor Interrupt Selection
US7996497B2 (en) 2008-06-30 2011-08-09 International Business Machines Corporation Method of handling duplicate or invalid node controller IDs in a distributed service processor environment
US7996548B2 (en) 2008-12-30 2011-08-09 Intel Corporation Message communication techniques
US8645596B2 (en) * 2008-12-30 2014-02-04 Intel Corporation Interrupt techniques
US8140817B2 (en) * 2009-02-24 2012-03-20 International Business Machines Corporation Dynamic logical partition management for NUMA machines and clusters
US7996595B2 (en) * 2009-04-14 2011-08-09 Lstar Technologies Llc Interrupt arbitration for multiprocessors
US8260996B2 (en) * 2009-04-24 2012-09-04 Empire Technology Development Llc Interrupt optimization for multiprocessors
US8321614B2 (en) * 2009-04-24 2012-11-27 Empire Technology Development Llc Dynamic scheduling interrupt controller for multiprocessors
US8255603B2 (en) * 2009-08-14 2012-08-28 Advanced Micro Devices, Inc. User-level interrupt mechanism for multi-core architectures
US8234431B2 (en) * 2009-10-13 2012-07-31 Empire Technology Development Llc Interrupt masking for multi-core processors
US8478877B2 (en) * 2010-02-24 2013-07-02 Oracle International Corporation Architecture-aware allocation of network buffers
US8738860B1 (en) * 2010-10-25 2014-05-27 Tilera Corporation Computing in parallel processing environments
CN105302577B (zh) * 2015-11-26 2019-05-07 上海兆芯集成电路有限公司 驱动执行单元的机器码产生方法以及装置
WO2017135950A1 (en) * 2016-02-04 2017-08-10 Hewlett Packard Enterprise Development Lp Memory register interrupt based signaling and messaging
US10496572B1 (en) * 2017-03-06 2019-12-03 Apple Inc. Intracluster and intercluster interprocessor interrupts including a retract interrupt that causes a previous interrupt to be canceled
JP6902948B2 (ja) * 2017-07-13 2021-07-14 日立Astemo株式会社 車両制御装置
US10838760B2 (en) * 2017-11-29 2020-11-17 Nxp Usa, Inc. Systems and methods for interrupt distribution
CN108549578B (zh) * 2017-12-25 2020-02-07 贵阳忆芯科技有限公司 一种中断聚合装置及其方法
US11611617B2 (en) * 2019-06-16 2023-03-21 Purdue Research Foundation Distributed data store with persistent memory
WO2022036536A1 (en) * 2020-08-18 2022-02-24 Intel Corporation Improving memory training performance by utilizing compute express link (cxl) device-supported memory
US11556485B1 (en) 2021-08-31 2023-01-17 Apple Inc. Processor with reduced interrupt latency
CN117311833B (zh) * 2023-11-29 2024-02-23 苏州元脑智能科技有限公司 一种存储控制方法、装置、电子设备及可读存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4769768A (en) * 1983-09-22 1988-09-06 Digital Equipment Corporation Method and apparatus for requesting service of interrupts by selected number of processors
US4914571A (en) * 1987-06-15 1990-04-03 International Business Machines Corporation Locating resources in computer networks
JP2855298B2 (ja) * 1990-12-21 1999-02-10 インテル・コーポレーション 割込み要求の仲裁方法およびマルチプロセッサシステム
EP0602858A1 (en) * 1992-12-18 1994-06-22 International Business Machines Corporation Apparatus and method for servicing interrupts in a multiprocessor system
CA2123447C (en) * 1993-09-20 1999-02-16 Richard L. Arndt Scalable system interrupt structure for a multiprocessing system
US5568644A (en) * 1995-05-05 1996-10-22 Apple Computer, Inc. Method and apparatus using a tree structure for the dispatching of interrupts
US5606703A (en) * 1995-12-06 1997-02-25 International Business Machines Corporation Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures

Also Published As

Publication number Publication date
JP2000181886A (ja) 2000-06-30
JP3606551B2 (ja) 2005-01-05
CA2349662A1 (en) 2000-06-22
WO2000036505A1 (en) 2000-06-22
AU1397600A (en) 2000-07-03
HUP0104536A3 (en) 2002-08-28
CN1128406C (zh) 2003-11-19
DE69905287D1 (de) 2003-03-13
CA2349662C (en) 2003-02-18
HUP0104536A2 (hu) 2002-03-28
US6148361A (en) 2000-11-14
PL348253A1 (en) 2002-05-20
KR100457146B1 (ko) 2004-11-16
ATE232313T1 (de) 2003-02-15
KR20010087404A (ko) 2001-09-15
EP1141829B1 (en) 2003-02-05
EP1141829A1 (en) 2001-10-10
CN1330782A (zh) 2002-01-09
DE69905287T2 (de) 2003-10-30

Similar Documents

Publication Publication Date Title
CZ20012154A3 (cs) Architektura přerušení pro systém zpracování dat s neuniformním paměťovým přístupem (numa)
TWI543073B (zh) 用於多晶片系統中的工作調度的方法和系統
US8484307B2 (en) Host fabric interface (HFI) to perform global shared memory (GSM) operations
US7797588B2 (en) Mechanism to provide software guaranteed reliability for GSM operations
US5282272A (en) Interrupt distribution scheme for a computer bus
US6289424B1 (en) Method, system and computer program product for managing memory in a non-uniform memory access system
US7966454B2 (en) Issuing global shared memory operations via direct cache injection to a host fabric interface
US7877436B2 (en) Mechanism to provide reliability through packet drop detection
TWI547870B (zh) 用於在多節點環境中對i/o 存取排序的方法和系統
US20100269027A1 (en) User level message broadcast mechanism in distributed computing environment
TWI541649B (zh) 用於多晶片系統的晶片間互連協定之系統與方法
TW201539190A (zh) 用於多節點系統中的記憶體分配的方法和裝置
US8615586B2 (en) Discovery of logical images at storage area network endpoints
JP2003178039A (ja) 分散共有仮想メモリーとその構成方法
JP2006040285A (ja) パーティショニングされたデバイス間の通信
TW201543218A (zh) 具有多節點連接的多核網路處理器互連之晶片元件與方法
US8255913B2 (en) Notification to task of completion of GSM operations by initiator node
US20090199046A1 (en) Mechanism to Perform Debugging of Global Shared Memory (GSM) Operations
US7640549B2 (en) System and method for efficiently exchanging data among processes
US8275947B2 (en) Mechanism to prevent illegal access to task address space by unauthorized tasks
US20090199182A1 (en) Notification by Task of Completion of GSM Operations at Target Node
US8141084B2 (en) Managing preemption in a parallel computing system
US8214604B2 (en) Mechanisms to order global shared memory operations
JP2006040284A (ja) パーティショニングされたデバイス間の通信
JPH065524B2 (ja) 記憶装置管理方法