Pamäť výpočtových systémov. Moduly hlavného pamäťového systému

  • 21.07.2019

Klasifikácia systémov MKMD

V systéme MCMD každý procesný prvok (PE) vykonáva svoj program celkom nezávisle od iných PE. Zároveň musia prvky spracovania spolu nejako interagovať. Rozdiel v spôsobe takejto interakcie určuje podmienené delenie systémov MCMD na AC so zdieľanou pamäťou a systémy s distribuovanou pamäťou (obr. 5.7).

V systémoch so zdieľanou pamäťou, ktoré sú charakterizované ako pevne spojené, existuje zdieľaná pamäť dát a inštrukcií dostupná všetkým procesným prvkom pomocou spoločnej zbernice alebo siete spojení. Takéto systémy sa nazývajú multiprocesory. Tento typ zahŕňa symetrické multiprocesory (UMA (SMP), Symmetric Multiprocessor), systémy s nejednotným prístupom k pamäti (NUMA, Non-Uniform Memory Access) a systémy s takzvanou lokálnou pamäťou namiesto vyrovnávacej pamäte (COMA, Cache Only Memory Access). ).

Ak majú všetky procesory rovnaký prístup ku všetkým pamäťovým modulom a všetkým I/O zariadeniam a každý procesor je zameniteľný s inými procesormi, potom sa takýto systém nazýva SMP systém. V systémoch so zdieľanou pamäťou majú všetky procesory rovnaké príležitosti na prístup k jedinému adresnému priestoru. Jedna pamäť môže byť zostavená ako jeden blok alebo modulárna, ale zvyčajne je to tak.

Systémy SMP patria do architektúry UMA. Výpočtové systémy so zdieľanou pamäťou, kde sa prístup ľubovoľného procesora do pamäte vykonáva jednotne a trvá rovnaký čas, sa nazývajú systémy s jednotným prístupom do pamäte UMA (Uniform Memory Access).

Z hľadiska úrovní použitej pamäte v architektúre UMA prichádzajú do úvahy tri možnosti zostavenia multiprocesora:

Classic (iba so zdieľanou hlavnou pamäťou);

S dodatočnou lokálnou vyrovnávacou pamäťou pre každý procesor;

S dodatočnou lokálnou vyrovnávacou pamäťou pre každý procesor (obrázok 5.8).

Z hľadiska spôsobu interakcie procesorov so zdieľanými zdrojmi (pamäť a CBV) sa vo všeobecnosti rozlišujú tieto typy architektúr UMA:

So spoločným zbernicovým a časovým delením (7.9);

S priečnym spínačom;

Založené na viacstupňových sieťach.

Použitie iba jednej zbernice obmedzuje veľkosť UMA multiprocesora na 16 alebo 32 procesorov. Na získanie väčšej veľkosti je potrebný iný typ komunikačnej siete. Najjednoduchšou schémou pripojenia je priečny spínač (obrázok 5.10). Priečkové prepínače sa už desaťročia používajú na náhodné pripojenie skupiny prichádzajúcich liniek k množstvu odchádzajúcich liniek.

Priečka je neblokujúca sieť. To znamená, že procesor bude vždy spojený so správnym blokom pamäte, aj keď je už nejaká linka alebo uzol zaneprázdnený. Navyše nie je potrebné žiadne predbežné plánovanie.


Prepínače priečnych tyčí sú celkom vhodné pre stredne veľké systémy (obrázok 5.11).


Na základe prepínačov 2x2 môžete budovať viacstupňové siete. Jednou z možností je sieť omega (obrázok 5.12). Pre n procesorov a n pamäťových modulov sa vyžaduje log 2 n krokov, n / 2 prepínačov pre každý krok, čiže spolu (n / 2) log 2 n prepínačov pre každý krok. To je oveľa lepšie ako n 2 uzlov (priesečníkov), najmä pre veľké n.

Jednozbernicové multiprocesory UMA sú zvyčajne obmedzené na niekoľko desiatok procesorov, zatiaľ čo súradnicové alebo prepínacie multiprocesory vyžadujú drahý hardvér a nie sú oveľa väčšie. Ak chcete získať viac ako 100 procesorov, potrebujete iný prístup k pamäti.

Pre väčšiu škálovateľnosť multiprocesorov je prispôsobená architektúra s nejednotným prístupom do pamäte NUMA (NonUniform Memory Access). Rovnako ako multiprocesory UMA, poskytujú jednotný adresný priestor pre všetky procesory, ale na rozdiel od strojov UMA je prístup k modulom lokálnej pamäte rýchlejší ako k modulom vzdialenej pamäte.

V rámci konceptu NUMA sú implementované prístupy označované skratkami NC-NUMA a CC-NUMA.

Ak nie je skrytý čas prístupu do vzdialenej pamäte (pretože tam nie je vyrovnávacia pamäť), potom sa takýto systém nazýva NC-NUMA (No Caching NUMA - NUMA without caching) (obr.5.13).

Ak sú prítomné koherentné vyrovnávacie pamäte, systém sa nazýva CC-NUMA (Coherent Cache Non-Uniform Memory Architecture - NUMA s koherentnou vyrovnávacou pamäťou) (7.14).

Pamäť je dôležitou súčasťou výpočtových systémov. Organizácia interakcie medzi procesorom a pamäťou určuje hlavné charakteristiky výpočtového systému, ostatné prvky zabezpečujú spojenie tohto spojenia s externými zariadeniami s vonkajším svetom. Pamäť je pripojená k radiču správy pamäte (zariadeniu na správu pamäte) cez adresovú zbernicu, dátovú zbernicu a riadiacu zbernicu. Šírka dátovej zbernice určuje, koľko bitov súčasne (paralelne) možno čítať z pamäte. Každý bit (1 bit) je uložený v pamäťovom prvku. Prvky pre pamäť rôznych typov sú postavené na rôznych fyzikálnych princípoch na zaznamenávanie a ukladanie informácií. Pamäťové prvky sa spájajú do pamäťových buniek. V tomto prípade sú všetky prvky bunky adresované súčasne, rovnakým spôsobom a sú usporiadané tak, aby mohli súčasne odosielať dáta na dátovú zbernicu. Takéto spojené bunky tvoria slovo. Počet bitov dát načítaných z pamäte súčasne sa nazýva dĺžka vzorky. Na uloženie 1 bajtu slúži 8 pamäťových prvkov, osembitové pamäťové bunky sú organizované pomocou dátovej zbernice so šírkou 8 riadkov.

Pamäťové mikroobvody (čipy) sa používajú na vytváranie pamäťových modulov, ktoré sú inštalované v špeciálnych slotoch (konektoroch) počítačového systému. Teraz sú najbežnejšími modulmi DIMM pamäťové moduly s dvoma radmi kolíkov.

Šírka adresovej zbernice určuje adresný priestor, teda počet pamäťových buniek, ktoré môžu byť adresované priamo. Ak je šírka adresovej zbernice n, potom počet všetkých možných binárnych kombinácií (počet adries) bude určený ako N = 2n.

Ryža. 1. Organizácia komunikácie medzi pamäťovým systémom a procesorom

Pamäť výpočtového zariadenia môže vykonávať tri operácie:

a) uchovávanie informácií;

b) zaznamenávanie informácií;

c) čítanie informácií.

Vlastnosti pamäte:

Kapacita pamäte definuje maximálne množstvo informácií uložených v pamäti a meria sa v bitoch, bajtoch, kilobajtoch, megabajtoch, gigabajtoch, terabajtoch atď.

Špecifická kapacita je definovaná ako pomer kapacity pamäte k množstvu, ktoré je ňou fyzicky obsadená.

Hustota záznamu informácií je definovaná ako množstvo informácií na jednotku plochy informačného nosiča alebo na jednotku dĺžky informačného nosiča.

Čas prístupu do pamäte. Výkon pamäte je určený trvaním operácií pri prístupe do pamäte. Prístupový čas pre zápis a prístupový čas pre čítanie je súčet času hľadania pamäťovej bunky na danej adrese a skutočného zápisu alebo čítania, resp.

Klasifikácia pamäte:

Náhodný vstup do pamäťe

V prípade pamäte s náhodným prístupom (elektronická pamäť) čas prístupu nezávisí od umiestnenia požadovanej oblasti pamäte. Bunka sa vyberá podľa adresy pomocou elektronických obvodov.

Priamy okrúhly prístup

Pri prístupe k diskovej pamäti sa používa priamy kruhový prístup. Pamäťové médium sa neustále otáča, takže možnosť prístupu k rovnakej pamäťovej oblasti je cyklická.

Sekvenčný prístup

Sekvenčný prístup k dátam je možný pri použití magnetickej pásky ako nosiča, kde je potrebné sekvenčné skenovanie sekcií nosiča pre nájdenie požadovaných dát.

Bezadresná pamäť

Stohovacie a asociatívne úložné zariadenia možno klasifikovať ako bezadresné. Pri prístupe k neadresovanej pamäti nie je adresa bunky špecifikovaná v príkaze na prístup do pamäte. V zásobníkových pamäťových zariadeniach je adresa pamäťovej bunky sledovaná špeciálnym registrom adries. Pri prístupe k zásobníku sa nastavuje adresa z tohto registra. Pri prístupe do asociatívnej pamäte sa informácie vyhľadávajú pomocou atribútu (tagu) porovnaním tagov všetkých pamäťových buniek s asociatívnym atribútom. Asociačný prvok sa zapíše do registra špeciálnych prvkov, aby sa vykonala operácia porovnania.

Klasifikácia pamäte podľa funkčného účelu:

ROM - pamäť iba na čítanie alebo ROM (Read Only-Memory), slúžia na ukladanie trvalých údajov a pomocných programov.

RAM je superoperačné úložné zariadenie, je to súbor všeobecných registrov - RON, určených na ukladanie operandov a výsledkov operácie v procesore.

RAM - pamäť s náhodným prístupom alebo RAM (Random Access Memory - pamäť s náhodným prístupom), slúži na uloženie spustiteľného programu a prevádzkových údajov. Ak je možné pristupovať k akémukoľvek registru na zápis/čítanie na jeho adrese, potom takáto štruktúra registra tvorí RAM s náhodným prístupom.

Klasifikácia podľa spôsobu uloženia informácií:

Statická pamäť

V statických úložných zariadeniach sú LSI vyrobené na bistabilných spúšťacích pamäťových prvkoch (majú dva stabilné stavy - odtiaľ názov pamäte).

Dynamická pamäť

V zariadeniach s dynamickou pamäťou sa používajú lacnejšie LSI, v ktorých je úložným prvkom kondenzátor. Kondenzátor sa časom vybíja (to je dynamika), preto je potrebné udržiavať hodnotu potenciálu dobíjaním kondenzátora. Tento proces sa nazýva regenerácia.

Trvalá pamäť

V pamäťových zariadeniach iba na čítanie je pamäťovým prvkom vypálený tavný článok alebo polovodičová dióda, ktorá hrá úlohu zničiteľného článku. V preprogramovateľných ROM sa na záznam a ukladanie informácií používajú články vyrobené na tranzistoroch MOS s plávajúcim a izolovaným hradlom, informácie sa zaznamenávajú elektricky, keď prúd preteká zdrojovým/odtokovým kanálom, náboje sa ukladajú na hradle a uchovávajú sa tak dlho. ako chceš. Informácie sa vymažú privedením napätia iného znamienka na zdrojovú/odberovú časť v preprogramovateľnej ROM s elektrickým vymazaním alebo ožiarením ultrafialovým žiarením v ROM s ultrafialovým vymazaním.

Holografická pamäť

V holografických pamäťových zariadeniach sú informácie uložené v objeme holografického kryštálu vo forme snímky interferencie dvoch vĺn, referenčnej a informačnej. Tento sľubný typ úložného zariadenia má vysokú hustotu dát a v súčasnosti je vo vývoji.

Biologická pamäť

V biologických úložných zariadeniach sa informácie zaznamenávajú pomocou zmeny stavu organických molekúl, ktoré majú vlastnosť ukladať náboj a vymieňať si elektróny.

Pamäť na magnetickom médiu

V externých pamäťových zariadeniach na magnetických médiách sú informácie uložené vo forme úsekov feromagnetického povrchu disku alebo magnetickej pásky zmagnetizovanej v určitom smere.

Optická pamäť

V optických externých pamäťových zariadeniach sa informácie zaznamenávajú vo forme sekcií s rôznymi koeficientmi rozptylu svetla smerovaného laserového lúča.

Pamäť je jednou z hlavných súčastí každého počítača. Jeho kapacita a výkon do značnej miery určujú výkon celého počítačového systému. V tomto čísle sme sa zaoberali najdôležitejšími technológiami vytvárania a detailov organizácie pamäte.

kapitola 11

Organizácia pamäťové výpočty systémov

Vo výpočtových systémoch, ktoré spájajú veľa paralelných procesorov alebo strojov, je problém správnej organizácie pamäte jedným z najdôležitejších. Rozdiel medzi rýchlosťou procesora a pamäte bol vždy kameňom úrazu v jednoprocesorových VM. Multiprocessing VS vedie k ďalšiemu problému - problému súčasného prístupu k pamäti z niekoľkých procesorov.

Podľa toho, ako je organizovaná pamäť multiprocesorových (multipočítačových) systémov, sa rozlišujú počítačové systémy so zdieľanou pamäťou a AC s distribuovanou pamäťou. V systémy zdieľanej pamäte(často sa nazýva aj zdieľaná alebo zdieľaná pamäť) Pamäť Slnka sa považuje za komunitný zdroj a každý z procesorov má plný prístup k celému adresnému priestoru. Systémy zdieľanej pamäte sú tzv pevne zviazaný(tesne prepojené systémy). Podobná konštrukcia výpočtových systémov prebieha tak v triede SIMD, ako aj v triede MIMD. Niekedy sa na zdôraznenie tejto skutočnosti zavádzajú špeciálne podtriedy, ktoré na ich označenie používajú skratky SM-SIMD (Shared Memory SIMD) a SM-MIMD (Shared Memory MIMD).

Vo variante s distribuovanou pamäťou každý z procesorov má priradenú vlastnú pamäť. Procesory sa spájajú v siete a dokážu si v prípade potreby vymieňať dáta uložené vo svojej pamäti, pričom si navzájom prenášajú tzv správy. Tento typ lietadla je tzv voľne spojené(voľne spojené systémy). Voľne spojené systémy sa tiež nachádzajú v triede SIMD aj v triede MIMD a niekedy, aby sa zdôraznila táto vlastnosť, sú predstavené podtriedy DM-SIMD (Distributed Memory SIMD) a DM-MIMD (Distributed Memory MIMD).

V niektorých prípadoch sa nazývajú výpočtové systémy so zdieľanou pamäťou multiprocesory, a systémy s distribuovanou pamäťou - mtsltpočítače.

Rozdiel medzi zdieľanou a distribuovanou pamäťou je rozdiel v štruktúre virtuálnej pamäte, teda v tom, ako pamäť vyzerá zo strany procesora. Fyzicky je takmer každý pamäťový systém rozdelený na samostatné komponenty, ku ktorým možno pristupovať nezávisle. Spôsob, akým pamäťový subsystém interpretuje adresu bunky prijatú od procesora, je oddelený od zdieľanej pamäte. Predpokladajme napríklad, že procesor vykoná príkaz load RO, i, čo znamená "Načítať register R0 s obsahom bunky i". V prípade zdieľanej pamäte je i globálna adresa a ukazuje na rovnaké miesto pre ľubovoľný procesor. V distribuovanom pamäťovom systéme je lokálna adresa i. Ak dva procesory vykonajú príkaz load RO, i, potom každý z nich odkazuje na i-tú bunku vo svojej lokálnej pamäti, to znamená na rôzne bunky a nerovnaké hodnoty možno načítať do registrov R0.

Rozdiel medzi týmito dvoma pamäťovými systémami musí mať programátor na pamäti, pretože určuje spôsob interakcie častí paralelného programu. Vo variante so zdieľanou pamäťou stačí vytvoriť dátovú štruktúru v pamäti a odkazy na túto štruktúru preniesť do paralelných podprogramov. V systéme s distribuovanou pamäťou musíte mať kópiu zdieľaných údajov v každej lokálnej pamäti. Tieto kópie sa vytvárajú vnorením zdieľaných údajov do správ odosielaných iným procesorom.

Pamäť s striedavý adresy

Fyzicky sa pamäť výpočtového systému skladá z niekoľkých modulov (bánk), pričom podstatnou otázkou je, ako je v tomto prípade distribuovaný adresný priestor (množina všetkých adries, ktoré môže procesor vytvoriť). Jedným zo spôsobov distribúcie virtuálnych adries medzi pamäťové moduly je rozdelenie adresného priestoru do sekvenčných blokov. Ak sa pamäť skladá z NS banky, potom bunka s adresou i v prípade rozdelenia bloku bude v banke s číslom ja /n. V systéme prekladaná pamäť(prekladaná pamäť) po sebe idúce adresy sa nachádzajú v rôznych bankách: bunka s adresou i je v banke s číslom i mod NS. Povedzme napríklad, že pamäť pozostáva zo štyroch bánk, z ktorých každá má 256 bajtov. V schéme blokového adresovania budú prvej banke priradené virtuálne adresy 0-255, druhej - 256-511 atď.. V schéme so striedajúcimi sa adresami budú mať po sebe idúce bunky v prvej banke virtuálne adresy 0, 4, 8, .. .. v druhej banke - 1, 5, 9 atď. (obr. 11.1, a).

Rozdelenie adresového priestoru medzi moduly umožňuje súčasne spracovávať požiadavky na prístup do pamäte, ak zodpovedajúce adresy patria rôznym bankám, procesor môže požiadať o prístup k bunke v jednom z cyklov i a v ďalšom cykle - do bunky j. Ak ja aj sú v rôznych bankách, informácie sa budú prenášať v postupných cykloch. Cyklus sa tu vzťahuje na cyklus procesora, zatiaľ čo úplný cyklus pamäte trvá niekoľko cyklov procesora. Procesor teda v tomto prípade nemusí čakať, kým sa dokončí celý cyklus prístupu k bunke. i. Uvažovaná technika vám umožňuje zvýšiť priepustnosť: ak sa pamäťový systém skladá z

https://pandia.ru/text/78/264/images/image002_61.jpg "width =" 62 "height =" 15 "> Medzera medzi prvkami sa nazýva krok za indexom alebo Kráčať(kráčať). Jedným zaujímavým využitím tejto vlastnosti je Matrix Access. Ak je krok indexu o jeden väčší ako počet riadkov v matici, jediná požiadavka na prístup do pamäte vráti všetky diagonálne prvky matice (obrázok 11.1, b). Zodpovednosť za zabezpečenie toho, aby sa všetky získané prvky matice nachádzali v rôznych bankách, nesie programátor.

Modely pamäťovej architektúry výpočtových systémov

V rámci zdieľanej aj distribuovanej pamäte je implementovaných niekoľko modelov architektúr pamäťového systému.

DIV_ADBLOCK84 ">

Ryža. 11.3. Zdieľaná pamäť: a - kombinovanie procesorov pomocou zbernice; b - systém s lokálnymi vyrovnávacími pamäťami; v- výkon systému ako funkcia počtu procesorov na zbernici; d - multiprocesorový VS so zdieľanou pamäťou, pozostávajúci zo samostatných modulov

Alternatívna metóda konštrukcie multiprocesorového CS so zdieľanou pamäťou na báze NML je znázornená na obr. 11.3, G. Tu je hrot nahradený prepínačom, ktorý smeruje požiadavky procesora na jeden z niekoľkých pamäťových modulov. Napriek tomu, že existuje niekoľko pamäťových modulov, všetky patria do jedného virtuálneho adresného priestoru. Výhodou tohto prístupu je, že prepínač je schopný obsluhovať viacero požiadaviek paralelne. Každý procesor môže byť pripojený k vlastnému pamäťovému modulu a mať k nemu prístup maximálnou povolenou rýchlosťou. Pri pokuse o prístup k rovnakému pamäťovému modulu v rovnakom čase môže vzniknúť rivalita medzi procesormi. V tomto prípade má prístup iba jeden procesor a ostatné sú zablokované.

Bohužiaľ, architektúra UMA nie je dobre škálovateľná. Najbežnejšie systémy obsahujú 4-8 procesorov, oveľa menej často 32-64 procesorov. Okrem toho takéto systémy nemožno klasifikovať ako odolné voči chybám, pretože zlyhanie jedného procesora alebo pamäťového modulu má za následok zlyhanie celého lietadla.

Ďalším prístupom k budovaniu zdieľanej pamäte VS je nejednotný prístup k pamäti, označované ako NUM A (Non-Uniform Memory Access), stále existuje jeden adresný priestor, ale každý procesor má lokálnu pamäť. Procesor pristupuje priamo k vlastnej lokálnej pamäti, čo je oveľa rýchlejšie ako prístup k vzdialenej pamäti cez prepínač alebo sieť. Takýto systém môže byť doplnený o globálnu pamäť, potom lokálne úložné zariadenia fungujú ako rýchla vyrovnávacia pamäť pre globálnu pamäť. Takáto schéma môže zlepšiť výkon lietadla, ale nie je schopná donekonečna oddialiť vyrovnávanie priameho výkonu. Ak má každý procesor lokálnu vyrovnávaciu pamäť (obrázok 11.3.6), existuje vysoká pravdepodobnosť (p> 0.9), že požadovaný príkaz alebo údaje sú už v lokálnej pamäti. Primeraná pravdepodobnosť zásahu do lokálnej pamäte výrazne znižuje počet volaní procesora Komu globálnej pamäte a tým vedie k zvýšeniu efektívnosti. Miesto zlomu krivky výkonu (horná krivka na obr.11.3, v), bod, v ktorom je pridávanie procesorov stále účinné, sa teraz presunie do oblasti 20 procesora a tenší, kde sa krivka stáva horizontálnou, do oblasti 30 procesora.

V rámci koncepcie NUMA implementuje sa niekoľko rôznych prístupov, ktoré sa označujú skratkami SOMA,CC-NUMA a NCC-NUMA.

V architektúra iba pre vyrovnávaciu pamäť(SOMA, Cache Only Memory Architecture) lokálna pamäť každého procesora je vytvorená ako veľká vyrovnávacia pamäť pre rýchly prístup z „vlastného“ procesora. Cache všetkých procesorov sa súhrnne považujú za globálnu pamäť systému. Neexistuje žiadna skutočná globálna pamäť. Základná črta konceptu SOMA je vyjadrená v dynamike. Dáta tu nie sú staticky viazané na konkrétny pamäťový modul a nemajú jedinečnú adresu, ktorá zostáva nezmenená po celú dobu životnosti premennej. V architektúre SOMA sa dáta prenášajú do vyrovnávacej pamäte procesora, ktorý si to naposledy vyžiadal, pričom premenná nie je pevne stanovená s jedinečnou adresou a môže sa kedykoľvek nachádzať v akejkoľvek fyzickej bunke. Presun údajov z jednej lokálnej vyrovnávacej pamäte do druhej nevyžaduje účasť operačného systému na tomto procese, ale zahŕňa zložitý a drahý hardvér na správu pamäte. Na organizáciu takéhoto režimu, tzv adresáre vyrovnávacej pamäte. Všimnite si tiež, že posledná kópia položky sa nikdy neodstráni z vyrovnávacej pamäte.

Keďže v architektúre SOMA sa údaje presúvajú do lokálnej vyrovnávacej pamäte procesora vlastníka, takéto lietadlá majú významnú výkonnostnú výhodu oproti iným architektúram NUM A. Na druhej strane, ak jedna premenná alebo dve rôzne premenné ukladajú rovnakú vyrovnávaciu pamäť v jednej riadok vyžadujú dva procesory, tento riadok vyrovnávacej pamäte sa musí presúvať tam a späť medzi procesormi pri každom prístupe k údajom. Takéto efekty môžu závisieť od detailov prideľovania pamäte a viesť k nepredvídateľným situáciám.

Model cache-koherentný nejednotný prístup k pamäti(CC-NUMA, Сache Coherent Non-Uniform Memory Architecture) sa zásadne líši od modelu SOMA. Systém CC-NUMA nevyužíva vyrovnávaciu pamäť, ale obvyklú fyzicky pridelenú pamäť. Medzi pamäťovými miestami nedochádza ku kopírovaniu stránok ani údajov. Neexistuje žiadna softvérová správa. Existuje len jedna pamäťová karta s časťami fyzicky spojenými medeným káblom a inteligentným hardvérom. Hardvérová súdržnosť vyrovnávacej pamäte znamená, že na ukladanie viacerých kópií aktualizovaných údajov alebo ich prenos nie je potrebný žiadny softvér. Toto všetko zvláda hardvérová úroveň. Prístup k lokálnym pamäťovým modulom v rôznych uzloch systému je možné vykonávať súčasne a je rýchlejší ako k vzdialeným pamäťovým modulom.

Rozdiel medzi modelom s cache-inkoherentný nejednotný prístup k pamäti(NCC-NUMA, Non-Cache Coherent Non-Uniform Memory Architecture) od CC-NUMA je zrejmé už z názvu. Architektúra pamäte predpokladá jeden adresný priestor, ale neposkytuje hardvérovú konzistenciu globálnych údajov. Riadenie používania takýchto údajov spočíva výlučne na softvéri (aplikáciách alebo kompilátoroch). Napriek tejto okolnosti, ktorá sa javí ako nevýhoda architektúry, sa ukazuje ako veľmi užitočná pri zvyšovaní výkonu výpočtových systémov s pamäťovou architektúrou typu DSM, uvažovanou v časti „Modely architektúr distribuovanej pamäte“.

Vo všeobecnosti sa nazývajú AC so zdieľanou pamäťou zostavenou podľa schémy NUMA architektúry virtuálnej zdieľanej pamäte(architektúry virtuálnej zdieľanej pamäte). Tento typ architektúry, najmä CC-NUMA, bol nedávno považovaný za nezávislý a pomerne sľubný typ výpočtových systémov triedy MIMD, preto budú takéto lietadlá podrobnejšie diskutované nižšie.

Modely architektúry distribuovanej pamäte

V distribuovanom pamäťovom systéme má každý procesor svoju pamäť a môže ju iba adresovať. Niektorí autori nazývajú tento typ systémov viacpočítačové lietadlá alebo viacpočítače, zdôrazňujúc skutočnosť, že samotné stavebné kamene systému sú malé výpočtové systémy s procesorom a pamäťou. Modely architektúr distribuovanej pamäte sa zvyčajne označujú ako architektúry bez priameho prístupu k vzdialenej pamäti(NORMA, No Remote Memory Access). Tento názov vyplýva zo skutočnosti, že každý procesor má prístup len do svojej lokálnej pamäte. Prístup do vzdialenej pamäte (lokálnej pamäte iného procesora) je možný len výmenou správ s procesorom, ktorý vlastní adresovateľnú pamäť.

Táto organizácia má množstvo výhod. Po prvé, pri prístupe k dátam neexistuje konkurencia pre zbernicu ani prepínače – každý procesor dokáže naplno využiť šírku pásma komunikačnej cesty s vlastnou lokálnou pamäťou. Po druhé, absencia zdieľanej zbernice znamená, že neexistujú žiadne súvisiace obmedzenia počtu procesorov: veľkosť systému je obmedzená iba sieťou procesorov. Po tretie, odstráni sa problém súdržnosti vyrovnávacej pamäte. Každý procesor má právo nezávisle meniť svoje údaje bez obáv z porovnávania kópií údajov vo vlastnej lokálnej vyrovnávacej pamäti s vyrovnávacími pamäťami iných procesorov.

Hlavnou nevýhodou počítača s distribuovanou pamäťou je zložitosť výmeny informácií medzi procesormi. Ak niektorý z procesorov potrebuje dáta z pamäte iného procesora, musí si s týmto procesorom vymieňať správy. To vedie k dvom typom nákladov:

· Vytvorenie a odoslanie správy od jedného si vyžaduje čas! spracovateľa inému;

· Na poskytnutie odpovede na správy od iných procesorov musí prijímajúci procesor dostať požiadavku na prerušenie a vykonať procedúru na spracovanie tohto prerušenia.

Štruktúra distribuovaného pamäťového systému je znázornená na obr. 11.4. Naľavo! časti (obr.11.4, a) je zobrazený jeden procesný prvok (PE). Obsahuje) samotný procesor (P), lokálnu pamäť (M) a dva I/O radiče (Ko a KD na pravej strane (obr.11.4, b) je znázornený štvorprocesorový systém, ktorý ilustruje, ako sa správy odosielajú z jedného procesora do druhého. Vo vzťahu ku každému PE možno všetky ostatné prvky spracovania jednoducho považovať za vstupné/výstupné zariadenia. Na odoslanie správy inému PE vytvorí procesor dátový blok vo svojej lokálnej pamäti a upozorní svojho lokálneho kontrolóra na potrebu preniesť informácie do externého zariadenia. Prostredníctvom prepojovacej siete sa táto správa prepošle prijímaciemu I/O kontroléru prijímajúceho PE. Ten nájde miesto pre správu vo svojej vlastnej lokálnej pamäti a oznámi zdrojovému procesoru, že správa bola prijatá.

DIV_ADBLOCK89 ">

Zaujímavým variantom distribuovaného pamäťového systému je; Model distribuovaná zdieľaná pamäť(DSM, Distribute Shared Memory), známy aj pod iným názvom architektúra s heterogénnymiprístup k pamäti a softvérová súdržnosť(SC-NUMA, softvérovo koherentná architektúra nejednotnej pamäte). Myšlienkou tohto modelu je, že BC, ktorý je fyzicky systémom s distribuovanou pamäťou, sa vďaka operačnému systému používateľovi javí ako systém so zdieľanou pamäťou. To znamená, že operačný systém ponúka používateľovi jednotný adresný priestor, a to aj napriek tomu, že skutočný prístup do pamäte „cudzieho“ leteckého počítača je stále poskytovaný prostredníctvom výmeny správ.

Viacprocesorovýsúdržnosť cache- Pamäť

Multiprocesorový systém so zdieľanou pamäťou pozostáva z dvoch alebo viacerých nezávislých procesorov, z ktorých každý vykonáva buď časť veľkého programu, alebo nezávislý program. Všetky procesory pristupujú k pokynom a údajom uloženým v zdieľanej hlavnej pamäti. Keďže pamäť je zdieľaný zdroj, pri prístupe k nej dochádza medzi procesormi ku konkurencii, čo zvyšuje priemernú latenciu prístupu do pamäte. Na zníženie tejto latencie je každému procesoru priradená lokálna vyrovnávacia pamäť, ktorá tým, že obsluhuje prístupy k lokálnej pamäti, v mnohých prípadoch zabraňuje potrebe prístupu k zdieľanej hlavnej pamäti. Vybavenie každého procesora lokálnou vyrovnávacou pamäťou zase vedie k tzv problém súdržnosti alebo poskytovanie v súladerýchla vyrovnávacia pamäť. Podľa systému je systém koherentný, ak každá operácia čítania na nejakej adrese, vykonaná ktorýmkoľvek z procesorov, vráti hodnotu zadanú pri poslednej operácii zápisu na túto adresu, bez ohľadu na to, ktorý procesor zapisoval ako posledný.

V najjednoduchšej forme možno problém koherencie vyrovnávacej pamäte vysvetliť nasledovne (obrázok 11.5). Nechajte dva procesory Rg a Pr sú pripojené k zdieľanej pamäti cez zbernicu. Najprv oba procesory načítajú premennú NS. Kópie blokov obsahujúcich túto premennú sa prenesú z hlavnej pamäte do lokálnych vyrovnávacích pamätí oboch procesorov (obrázok 11.5, a). Potom procesor Pt vykoná operáciu zvýšenia hodnoty premennej NS za jednotku. Keďže kópia premennej je už vo vyrovnávacej pamäti tohto procesora, dôjde k zásahu do vyrovnávacej pamäte a hodnota sa zmení iba vo vyrovnávacej pamäti 1. Ak teraz procesor P2 znova vykoná operáciu čítania NS, potom dôjde aj k zásahu do vyrovnávacej pamäte a P2 dostane „starú“ hodnotu uloženú vo svojej vyrovnávacej pamäti NS(obr. 11.5, b).

Zachovanie konzistencie vyžaduje, aby sa pri zmene údajovej položky jedným z procesorov príslušné zmeny vykonali vo vyrovnávacej pamäti ostatných procesorov, kde je kópia zmenenej údajovej položky, ako aj v zdieľanej pamäti. Podobný problém sa vyskytuje, mimochodom, v jednoprocesorových systémoch, kde je niekoľko úrovní vyrovnávacej pamäte. Tu je potrebné zosúladiť obsah kešiek rôznych úrovní.

Existujú dva prístupy k riešeniu problému koherencie: softvér a hardvér. Niektoré systémy využívajú stratégie, ktoré kombinujú oba prístupy.

softvér spôsoby riešeniaProblémy súdržnosť

Softvérové ​​techniky na riešenie problému súdržnosti umožňujú zaobísť sa bez dodatočného vybavenia alebo ho minimalizovať.

ProtokolBerkeley. Protokol Berkeley bol použitý v multiprocesorovom systéme Berkeley založenom na procesoroch RISC.

Réžia zmeškania vyrovnávacej pamäte je zmiernená myšlienkou protokolu o vlastníctve linky vyrovnávacej pamäte. Vo všeobecnosti sa hlavná pamäť považuje za vlastníka všetkých dátových blokov. Pred úpravou obsahu riadka v jeho vyrovnávacej pamäti musí procesor získať vlastníctvo riadku. Tieto práva sa získavajú prostredníctvom špeciálnych operácií čítania a zápisu. Ak dôjde k vynechaniu vyrovnávacej pamäte pri prístupe k bloku, ktorý momentálne nie je vo vlastníctve hlavnej pamäte, procesor, ktorý vlastní daný riadok, zabráni čítaniu z hlavnej pamäte a napája žiadajúci procesor údajmi zo samotnej lokálnej vyrovnávacej pamäte.

Ďalším vylepšením je zavedenie zdieľaného štátu. Keď procesor zapisuje do jedného z riadkov svojej lokálnej vyrovnávacej pamäte, zvyčajne generuje signál na vyradenie kópií modifikovateľného bloku do iných vyrovnávacích pamätí. V protokole Berkeley sa signál vyradenia generuje iba vtedy, ak sú takéto kópie v iných vyrovnávacích pamätiach. To môže výrazne znížiť neproduktívnu autobusovú dopravu. Možné sú nasledujúce scenáre.

Po prvé, zakaždým, keď procesor zapisuje do svojej vyrovnávacej pamäte, meniteľný reťazec sa prepne do stavu Private Dirty (PD). Ďalej, ak je reťazec zdieľaný, na zbernicu sa odošle signál zneplatnenia a vo všetkých lokálnych cache, kde je kópia tohto dátového bloku, sa tieto kópie dostanú do stavu „neplatný“ (I, Invalid). Ak dôjde k chybe pri zápise, procesor získa kópiu bloku z vyrovnávacej pamäte aktuálneho hlavného servera požadovaného bloku. Až po týchto akciách procesor zapíše do svojej vyrovnávacej pamäte.

V prípade zmeškania vyrovnávacej pamäte na čítanie odošle procesor vlastníkovi bloku požiadavku na získanie najnovšej verzie bloku a jeho novú kópiu uvedie do stavu iba na čítanie (RO, iba na čítanie). Ak riadok vlastnil iný procesor, označí svoju kópiu bloku ako Shared Dirty (SD).

Stavový diagram protokolu Berkeley je znázornený na obr. 11.10.

Pri porovnaní protokolov s jednorazovým zápisom a Berkeley je možné poznamenať nasledovné. Oba protokoly používajú stratégiu spätného zápisu, v ktorej sú zmenené bloky uchovávané vo vyrovnávacej pamäti tak dlho, ako je to možné. Hlavná pamäť sa aktualizuje iba vtedy, keď sa z vyrovnávacej pamäte odstráni riadok. Horná hranica celkového počtu transakcií zápisu na zbernici je určená tou časťou protokolu na jeden zápis, kde je implementovaný zápis, pretože druhá stratégia generuje operáciu zápisu na zbernici s každou zmenou iniciovanou procesorom. Keďže prvá operácia zápisu v protokole s jedným zápisom je priechodná, vykoná sa, aj keď sa údaje nezdieľajú. To zavádza dodatočnú autobusovú prevádzku, ktorá sa zvyšuje so zvyšujúcou sa kapacitou vyrovnávacej pamäte. Ukázalo sa, že protokol s jedným zápisom vedie k väčšej prevádzke zbernice v porovnaní s protokolom Berkeley .







Čítací hit

Ryža. 11.10. Berkeleyho protokol

Čitateľný a aktualizovaný riadok v protokole na jeden zápis vyžaduje, aby bol riadok načítaný do vyrovnávacej pamäte, lokálne upravený vo vyrovnávacej pamäti a zapísaný späť do pamäte. Celý postup vyžaduje dve operácie na zbernici: čítanie z hlavnej pamäte (RAM) a spätný zápis do RAM. Na druhej strane protokol Berkeley je o získavaní povolení riadkov. Potom sa blok upraví vo vyrovnávacej pamäti. Ak sa k riadku pred vymazaním z vyrovnávacej pamäte nepristúpilo, cykly zbernice budú rovnaké ako v protokole pre jeden zápis. Je však pravdepodobnejšie, že linka bude vyžiadaná znova, potom z hľadiska jednej vyrovnávacej pamäte potrebuje aktualizácia linky vyrovnávacej pamäte iba jednu operáciu čítania na zbernici. Protokol Berkeley teda prenáša linky priamo medzi vyrovnávacími pamäťami, zatiaľ čo protokol na jeden zápis prenáša blok zo zdrojovej vyrovnávacej pamäte do hlavnej pamäte a potom z OP do požadujúcich vyrovnávacích pamätí, čo vedie k celkovej latencii pamäťového systému. .

ProtokolIllinois. Illinoisský protokol, ktorý navrhol Marc Papamarcos, má tiež za cieľ znížiť prevádzku zbernice a tým aj časový limit procesora pre prístup k zbernici. Tu, rovnako ako v protokole Berkeley, je myšlienka vlastníctva bloku dominantná, ale mierne upravená. V protokole Illinois je vlastníctvom akejkoľvek vyrovnávacej pamäte, ktorá obsahuje platnú kópiu bloku údajov. V tomto prípade môže mať ten istý blok viacerých vlastníkov. Keď sa tak stane, každému procesoru je priradená určitá priorita a vlastník s vyššou prioritou sa stáva zdrojom informácií.

Rovnako ako v predchádzajúcom prípade je signál zneplatnenia generovaný iba vtedy, keď sú kópie tohto bloku dostupné v iných vyrovnávacích pamätiach. Možné scenáre pre protokol Illinois sú znázornené na obr. 11.11.

Ryža. 11.11. Illinoisský protokol

Zakaždým, keď procesor zapíše do svojej vyrovnávacej pamäte, upravený reťazec sa umiestni do stavu Private Dirty (PD). Ak je dátový blok zdieľaný, na zbernicu sa odošle signál zabíjania a vo všetkých lokálnych vyrovnávacích pamätiach je kópia tohto bloku , tieto kópie sú prevedené do stavu „neplatný“ (I, Invalid). Ak dôjde k chybe pri zápise, procesor získa kópiu z vyrovnávacej pamäte aktuálneho vlastníka požadovaného bloku. Až po uvedených akciách procesor zapíše do svojej vyrovnávacej pamäte. Ako vidíte, v tejto časti je úplná zhoda s protokolom Berkeley.

V prípade zmeškania medzipamäte na čítanie odošle procesor vlastníkovi bloku požiadavku na získanie najnovšej verzie bloku a jeho novú kópiu uvedie do „exkluzívneho“ (E, Exclusive) stavu za predpokladu, že že je jediným vlastníkom radu. V opačnom prípade sa stav zmení na „zdieľaný“ (S, Shared).

Je nevyhnutné, aby bol protokol rozšíriteľný a úzko prepojený s pomerom chýbajúcich vyrovnávacej pamäte a množstvom údajov, ktoré je bežnou vlastnosťou viacprocesorového systému.

ProtokolSvetluška. Protokol navrhli Tucker a ďalší a implementovali ho do Firefly Multiprocessor Workstation, multiprocesorového systému vyvinutého vo výskumnom centre Digital Equipment Corporation.

Protokol Firefly používa aktualizačný záznam. Možné stavy riadkov vyrovnávacej pamäte sú rovnaké ako stavy protokolu Illinois (obrázok 11-12). Rozdiel je v tom, že stratégia spätného zápisu sa vzťahuje iba na riadky v stave PD alebo E, zatiaľ čo prepisovanie sa vzťahuje na riadky v stave S. Vyrovnávacie pamäte Watcher používajú na aktualizáciu svojich kópií zápis. Okrem toho, pozorovanie skrýš, ktoré v nich nájdu kópiu riadku, vyvolá špeciálnu „zdieľanú“ zbernicovú linku, aby sa kontrolér zápisu mohol rozhodnúť, do akého stavu uvedie riadok, do ktorého bol zapísaný. "Zdieľaný" riadok na čítacej vyrovnávacej pamäti slúži na informovanie lokálneho radiča vyrovnávacej pamäte, odkiaľ pochádza kópia riadku: z hlavnej pamäte alebo inej vyrovnávacej pamäte. Stav S sa teda vzťahuje iba na údaje, ktoré sa skutočne zdieľajú.

https://pandia.ru/text/78/264/images/image018_2.jpg "width =" 491 výška = 316 "height =" 316 ">

Ryža. 11.13. Dragon protokol

ProtokolMESI. Samozrejme, spomedzi známych sledovacích protokolov je najpopulárnejší protokol MESI (Modified / Exclusive / Shared / Invalid). Protokol MESI je široko používaný v komerčných mikroprocesorových systémoch, ako sú systémy založené na mikroprocesoroch Pentium a PowerPC. Možno ho teda nájsť v internej cache a externom cache radiči mikroprocesora i82490 Pentium, v procesore i860 a cache radiči MC88200 od Motoroly.

Protokol bol navrhnutý pre vyrovnávacie pamäte so spätným zápisom. Jedným z hlavných cieľov protokolu MESI je odložiť spätný zápis zapuzdrených údajov do hlavnej pamäte BC tak dlho, ako je to možné. To zlepšuje výkon systému minimalizovaním požadovaných prenosov informácií medzi vyrovnávacími pamäťami a hlavnou pamäťou. Protokol MESI priraďuje každému riadku vyrovnávacej pamäte jeden zo štyroch stavov, ktoré sú riadené dvoma stavovými bitmi MESI v značke tohto riadku. Stav vyrovnávacej pamäte môže meniť ako procesor, pre ktorý je táto vyrovnávacia pamäť lokálna, tak aj ďalšie procesory multiprocesorovej „schémy. Správa stavu riadkov vyrovnávacej pamäte môže byť priradená externým logickým zariadeniam. Jedna z verzií protokolu umožňuje použitie predtým zvažovanej schémy jednorazového zápisu.

Zdieľané(S, Shared) - riadok vyrovnávacej pamäte sa zhoduje s podobným riadkom v hlavnej pamäti (údaje sú platné) a môže byť prítomný v jednej alebo viacerých ďalších vyrovnávacích pamätiach.

Neplatné(I, Invalid) - Riadok vyrovnávacej pamäte označený ako neplatný neobsahuje žiadne platné údaje a stáva sa logicky nedostupným.

Ryža. 11.15. Postupnosť zmien stavu v protokole MESI: a - procesor 1 číta x;

b- procesor 2 číta x; c - procesor 1 urobí prvý záznam v x;

G- procesor 1 urobí ďalší záznam v x

Poradie, v ktorom riadok vyrovnávacej pamäte prechádza z jedného stavu do druhého, závisí od: aktuálneho stavu riadku, vykonávanej operácie (čítanie alebo zápis), výsledku prístupu do vyrovnávacej pamäte (úspešné alebo chybné) a napokon, či linka je zdieľaná alebo nie. Na obr. 11.14 ukazuje diagram hlavných prechodov bez zohľadnenia režimu jednorázového zápisu.

Predpokladajme, že jeden z procesorov odošle požiadavku na čítanie z riadku, ktorý sa momentálne nenachádza v jeho lokálnej vyrovnávacej pamäti (zmeškané čítanie). Žiadosť bude vysielaná cez autobus. Ak žiadna z vyrovnávacích pamätí neobsahuje kópiu požadovaného riadku, nepríde žiadna odpoveď od monitorovacích kontrolórov iných procesorov, riadok sa načíta do vyrovnávacej pamäte žiadajúceho procesora z hlavnej pamäte a kópia sa priradí stav E. Ak niektorá z lokálnych vyrovnávacích pamätí obsahuje kópiu, ktorú hľadáte, od príslušného kontroléra sledovania bude prijatá odpoveď označujúca prístup k zdieľanému reťazcu. Všetky kópie predmetnej línie vo všetkých kešách budú prenesené do stavu S, bez ohľadu na to, v akom stave boli predtým (I, E alebo S).

Keď procesor požiada o zápis do reťazca, ktorý nie je v jeho lokálnej vyrovnávacej pamäti (chyba zápisu), reťazec sa musí prečítať z hlavnej pamäte (RAM) a aktualizovať pred zavedením do vyrovnávacej pamäte. Predtým, ako môže procesor načítať riadok, musí sa uistiť, že platná verzia údajov je skutočne v hlavnej pamäti, to znamená, že žiadna upravená kópia riadku nie je v iných vyrovnávacích pamätiach. Postupnosť operácií vytvorená v tomto prípade sa nazýva číta s úmyslom upraviťcie(RWITM, Read With Intent To Modify). Ak sa v jednej z cache našla kópia požadovaného riadku a v stave M, tak procesor s touto kópiou preruší sekvenciu RWITM a prepíše riadok v OP, po čom zmení stav riadku vo svojej cache. na I. Potom sa obnoví sekvencia RWITM a vykoná sa opätovný prístup k hlavnej pamäti na prečítanie aktualizovaného riadku. Konečný stav linky bude M, v ktorom nie je jej spoľahlivejšia kópia ani v OP, ani v iných kešách. Ak kópia riadku existovala v inej vyrovnávacej pamäti a nemala stav M, potom sa takáto kópia zahodí a okamžite sa vykoná prístup do hlavnej pamäte.

Čítacia vyrovnávacia pamäť nemení stav čítaného riadku. Ak procesor vykoná prístup k zápisu na existujúcu linku v stave S, vysiela na zbernicu, aby informoval ostatné cache, aktualizuje linku vo svojej cache a nastaví ju do stavu M. Všetky ostatné kópie linky sa presunú do stavu I. Ak procesor vykonáva prístup k zápisu na riadok v stave E, jediné, čo musí urobiť, je zapísať do riadku a zmeniť jeho stav na M, keďže v systéme nie sú žiadne iné kópie riadku.

Na obr. 11.15 ukazuje typickú postupnosť udalostí v systéme dvoch procesorov požadujúcich prístup k bunke x. Prístup k akejkoľvek bunke v riadku vyrovnávacej pamäte sa považuje za prístup k celému riadku.

Znázornime fázy, keď sa procesor 2 pokúša prečítať obsah bunky x "(obr. 11.16). Najprv dôjde k chybe čítacej vyrovnávacej pamäte a procesor sa pokúsi dostať do hlavnej pamäte. Procesor 1 monitoruje zbernicu, zisťuje prístup k bunka, ktorej kópia je v jej vyrovnávacej pamäti a je in




Ryža. 11.16. Prechod zo stavu E do stavu S v protokole MESI: a- procesor 2

číta x; b - procesor 1 zapíše späť x "do hlavnej pamäte;

i - procesor 2 číta x "z hlavnej pamäte

stavu M, takže zablokuje čítanie z procesora 2. Potom procesor 1 prepíše riadok obsahujúci x "v OP a uvoľní procesor 2, aby mohol zopakovať prístup do hlavnej pamäte. Teraz procesor 2 prijme riadok obsahujúci x" a načíta ho do vašej vyrovnávacej pamäte. Obidve kópie sú označené ako S.

Doteraz sa uvažovalo o verzii protokolu MESI na jeden zápis. Ak vezmeme do úvahy jediný zápis, stavový diagram znázornený na obr. 11.14, mierne upravené. Všetky zmeškania pamäte cache pre čítanie spôsobujú prechod do stavu S. Po prvom zápise nasleduje prechod do stavu E (takzvaný prechod raz zápisu). Ďalší zásah počas zápisu znamená zmenu stavu riadku na M.

Adresárové protokoly

Adresárové koherenčné protokoly typické pre zložité viacprocesorové systémy so zdieľanou pamäťou, kde sú procesory spojené viacstupňovou hierarchickou prepojovacou sieťou. Zložitosť topológie spôsobuje, že používanie sledovacích protokolov s ich vysielacím mechanizmom je drahé a neefektívne.

Protokoly založené na adresároch zhromažďujú a sledujú informácie o obsahu všetkých lokálnych vyrovnávacích pamätí. Takéto protokoly sú zvyčajne implementované s centralizovaným radičom, ktorý je fyzicky súčasťou hlavného pamäťového radiča. Samotná referenčná kniha je uložená v hlavnej pamäti. Keď lokálny radič cache zadá požiadavku, adresárový radič zistí takúto požiadavku a vygeneruje inštrukcie potrebné na prenos dát z hlavnej pamäte alebo z inej lokálnej cache obsahujúcej najnovšiu verziu požadovaných dát. Centrálny kontrolór je zodpovedný za aktualizáciu informácií o stave lokálnych vyrovnávacích pamätí, preto musí byť upozornený na každú lokálnu akciu, ktorá by mohla ovplyvniť stav dátového bloku.

Adresár obsahuje veľa záznamov popisujúcich každé umiestnenie pamäte cache, ktoré môžu byť zdieľané systémovými procesormi. Odkaz sa vykoná vždy, keď jeden z procesorov zmení kópiu takejto bunky vo svojej lokálnej pamäti. V tomto prípade sú potrebné informácie z adresára, aby sa zneplatnili alebo aktualizovali kópie zmenenej bunky (alebo celého riadku obsahujúceho túto bunku) v iných lokálnych cache, kde sú takéto kópie dostupné.

Pre každý zdieľaný reťazec, ktorého kópiu možno umiestniť do vyrovnávacej pamäte, je v adresári, v ktorom sú uložené ukazovatele na kópiu tohto reťazca, pridelená jedna položka. Okrem toho je v každom zázname zvýraznený jeden aktualizačný bit (D), ktorý označuje, či je kópia špinavá (D = 1 - špinavá) alebo čistá (D = 0 - čistá), teda či je obsah riadku vo vyrovnávacej pamäti po načítaní pamäte. Tento bit označuje, či je procesor oprávnený zapisovať do tohto reťazca.

V súčasnosti sú známe tri spôsoby implementácie protokolov súdržnosti vyrovnávacej pamäte založené na adresároch: úplná referencia, obmedzená referencia a zreťazená referencia.

V protokole úplná referencia jeden centralizovaný adresár uchováva informácie o všetkých cache. Referencia je uložená v hlavnej pamäti.


Ryža. 11.17. Full Reference Cache Coherency Protocol

V systéme N procesorov bude každá položka adresára obsahovať N jednobitové ukazovatele. Ak existuje kópia údajov v zodpovedajúcej lokálnej vyrovnávacej pamäti, bit ukazovateľa je nastavený na 1, inak - na 0. Diagram s úplným odkazom je znázornený na obr. 11.17. To predpokladá, že v každej cache je kópia riadku. Každému riadku sú priradené dva indikátory stavu: platný bit (V, Valid) a bit vlastníctva (P, Private). Ak je informácia v riadku správna, jeho V-bit je nastavený na 1. Jediná hodnota P-bitu indikuje, že daný procesor má právo zapisovať do zodpovedajúceho riadku jeho lokálnej vyrovnávacej pamäte.

Predpokladajme, že procesor 2 zapisuje na miesto x. Pôvodne spracovateľ ešte nedostal povolenie na takýto záznam. Vytvorí požiadavku na radič adresárov a čaká na povolenie pokračovať v operácii. Ako odpoveď na požiadavku na všetky cache, kde sú kópie riadku obsahujúceho bunku x, je vydaný signál na vyradenie existujúcich kópií. Každá vyrovnávacia pamäť, ktorá prijme tento signál, resetuje bit platnosti reťazca s nulovou hodnotou (V-bit) na 0 a vráti potvrdzovací signál do radiča adresárov. Po prijatí všetkých potvrdzovacích signálov riadiaca jednotka adresára nastaví modifikačný bit (D-bit) zodpovedajúceho záznamu v adresári na jednotku a vyšle signál do procesora 2, aby umožnil zápis do bunky x. Od tohto bodu môže procesor 2 pokračovať v zapisovaní do svojej vlastnej kópie bunky x, ako aj do hlavnej pamäte, ak je v cache implementovaná schéma zápisu.

Hlavné problémy kompletného adresárového protokolu súvisia s veľkým počtom záznamov. Pre každú bunku v systémovej referencii N procesorov sa vyžaduje N + 1 bit, to znamená, že s nárastom počtu procesorov sa koeficient zložitosti lineárne zvyšuje. Kompletný adresárový protokol umožňuje každej lokálnej vyrovnávacej pamäti mať kópie všetkých zdieľaných buniek. V praxi takáto možnosť nie je vždy žiadaná - v danom okamihu je zvyčajne relevantná iba jedna alebo niekoľko kópií. V protokols obmedzenou referenciou kópie jedného riadku môžu byť len v obmedzenom počte skrýš - nemôže ich byť viac ako NS kópie reťazca, pričom počet ukazovateľov v položkách adresára sa zníži na n (n< N ). Aby bolo možné jednoznačne identifikovať vyrovnávaciu pamäť, v ktorej je uložená kópia, ukazovateľ namiesto jedného bitu by mal pozostávať z log2 N bitov a celkovej dĺžky ukazovateľov v každej položke adresára, namiesto N bitov budú rovné NSlog2N trocha. S konštantnou hodnotou NS miera rastu faktora zložitosti obmedzeného adresára so zvyšovaním veľkosti systému je nižšia ako v prípade lineárneho vzťahu.

Keď viac ako NS kópie, správca rozhodne, ktoré z kópií si ponechá a ktoré zruší, po čom sa vykonajú príslušné zmeny v indexoch záznamov v adresári.

Metóda prepojené adresáre má tiež za cieľ skomprimovať objem referenčnej knihy. Na ukladanie záznamov používa prepojený zoznam, ktorý môže byť implementovaný ako jeden prepojený (jednosmerný) a dvojito prepojený (obojsmerný).

Ryža. 11.18. Protokol koherencie zreťazenej vyrovnávacej pamäte adresára

V jednotlivo prepojenom zozname (obrázok 11.18) obsahuje každá položka adresára ukazovateľ na kópiu reťazca v jednej z lokálnych vyrovnávacích pamätí. Kópie riadkov s rovnakým názvom v rôznych systémových cache tvoria jednosmerný reťazec. Na tento účel ich značky poskytujú špeciálne pole, do ktorého sa zadáva ukazovateľ na vyrovnávaciu pamäť obsahujúcu ďalšiu kópiu reťazca. V štítku poslednej kópie retiazky je umiestnený špeciálny oddeľovač. Zreťazený odkaz umožňuje reťazce dĺžky N, teda podporuje N kópie bunky. Pri vytváraní ďalšej kópie musí byť reťaz zničená a namiesto toho musí byť vytvorená nová. Predpokladajme napríklad, že procesor 5 nemá kópiu bunky x a prejde na ňu do hlavnej pamäte. Ukazovateľ v adresári sa zmení tak, aby ukazoval na vyrovnávaciu pamäť číslo 5, a ukazovateľ vo vyrovnávacej pamäti 5 - tak, aby ukazoval na vyrovnávaciu pamäť 2. Na tento účel musí hlavný pamäťový radič spolu s požadovanými údajmi preniesť aj ukazovateľ do cache do cache pamäte 5 - pamäť s číslom 2. Až po vytvorení celej štruktúry reťazca dostane procesor 5 povolenie na prístup k bunke x. Ak procesor zapisuje do bunky, signál zneplatnenia sa odošle po ceste definovanej zodpovedajúcim reťazcom ukazovateľov. Reťazec sa musí aktualizovať, keď sa kópia vymaže z akejkoľvek vyrovnávacej pamäte.

Dvojito prepojený zoznam podporuje ukazovatele dopredu aj dozadu. To vám umožňuje efektívnejšie vkladať nové ukazovatele do reťazca alebo z neho vymazávať, ktoré už nie sú potrebné, vyžaduje si to však uloženie väčšieho počtu ukazovateľov.

Adresárové schémy trpia preťažením v centralizovanom radiči, ako aj komunikačnou réžiou v cestách medzi lokálnymi cache radičmi a centrálnym radičom. Napriek tomu sa ukazujú ako veľmi efektívne vo viacprocesorových systémoch so zložitou topológiou prepojenia medzi procesormi, kde nemožno implementovať monitorovacie protokoly.

Nižšie je uvedený stručný popis aktuálne relevantných protokolov na zabezpečenie koherencie vyrovnávacej pamäte na základe referenčnej knihy. Pre podrobné oboznámenie sa s týmito protokolmi sú uvedené odkazy na zodpovedajúce literárne zdroje.

ProtokolTang. Existuje centralizovaný globálny adresár, ktorý obsahuje úplnú kópiu všetkých informácií o adresári pre každú z lokálnych vyrovnávacích pamätí. To vedie k problému s úzkym hrdlom a tiež si vyžaduje nájdenie vhodných vstupov.

ProtokolCensier. Referenčná schéma Censier používa bitový vektor ukazovateľa na označenie, ktoré procesory uchovávajú lokálnu kópiu daného bloku pamäte. Pre každý pamäťový blok existuje takýto vektor. Nevýhody tejto metódy spočívajú v tom, že pri veľkom počte procesorov je neúčinná a navyše je na aktualizáciu riadkov vyrovnávacej pamäte potrebný prístup do hlavnej pamäte.

ProtokolArchibald. Referenčná schéma Archibald je dvojica zložitých schém pre hierarchicky organizované siete procesorov. Podrobný popis tohto protokolu nájdete v.

ProtokolStenstrom. Stenstrom manuál poskytuje šesť platných stavov pre každý dátový blok. Tento protokol je relatívne jednoduchý a vhodný pre akúkoľvek topológiu prepojenia procesorov. Referencia je uložená v hlavnej pamäti. V prípade zmeškania čítania z vyrovnávacej pamäte sa pristúpi k hlavnej pamäti, ktorá odošle správu do vyrovnávacej pamäte, ktorá vlastní blok, ak existuje. Po prijatí tejto správy vlastník vyrovnávacej pamäte odošle požadované údaje a tiež pošle správu všetkým ostatným procesorom zdieľajúcim tieto údaje, aby mohli aktualizovať svoje bitové vektory. Schéma nie je veľmi efektívna pri veľkom počte procesorov, ale v súčasnosti je to najvyspelejší a najrozšírenejší protokol založený na adresároch.

Kontrola otázky

1. Analyzujte vplyv vlastností AC so zdieľanou pamäťou a AC s distribuovanou pamäťou na vývoj softvéru. Prečo sa tieto VS nazývajú silne a slabo viazané?

2. Vysvetlite myšlienku striedania adries pamäte. Aké sú úvahy pri výbere mechanizmu prideľovania adries? Ako to súvisí s triedou architektúry BC?

3. Uveďte porovnávací popis homogénnych a heterogénnych prístupov
do pamäti.

4. Aké sú výhody architektúry SOMA?

5. Vykonajte porovnávaciu analýzu modelov s koherentným a nekoherentným prístupom k heterogénnej pamäti.

6. Formulujte výhody a nevýhody architektúry bez priameho prístupu k vzdialenej pamäti.

7. Vysvetlite význam distribuovanej a zdieľanej pamäte.

8. Rozviňte svoj príklad na ilustráciu problému koherencie vyrovnávacej pamäte.

9. Popíšte vlastnosti softvérových riešení problému koherencie, zdôraznite ich výhody a nevýhody.

10. Porovnajte techniky zápisu na zápis s odpisom a zápisom do vysielania a zdôraznite ich prednosti a nedostatky.

11. Uveďte porovnávací popis metód na zachovanie koherencie vo viacprocesorových systémoch.

12. Vykonajte porovnávaciu analýzu protokolov pozorovania, ktoré poznáte.

13. Ktorý z pozorovacích protokolov je najobľúbenejší? Zdôvodnite dôvody zvýšeného záujmu o neho.

14. Uveďte podrobný popis koherentných protokolov na základe referenčnej knihy a metód ich implementácie. Aké sú rozdiely medzi týmito protokolmi a pozorovacími protokolmi?


Od vzniku von Neumannovho počítača sa hlav Pamäť v počítačovom systéme je organizovaný ako lineárny (jednorozmerný) adresný priestor pozostávajúce zo sekvencie slov a neskorších bajtov. Vonkajšie sú organizované podobným spôsobom. Pamäť... Aj keď táto organizácia odráža špecifický použitý hardvér, nezodpovedá spôsobu, akým sa programy zvyčajne píšu. Väčšina programov je organizovaná ako moduly, z ktorých niektoré sú nemenné (len na čítanie, len na spustenie), zatiaľ čo iné obsahujú údaje, ktoré je možné zmeniť.

Ak operačný systém a Hardvér dokáže efektívne pracovať s vlastnými programami a dátami reprezentovanými modulmi, čo prináša množstvo výhod.


  1. Moduly je možné vytvárať a kompilovať nezávisle od seba, pričom všetky odkazy z jedného modulu na druhý sú vyriešené systémom za behu.

  2. Rôzne moduly môžu získať rôzne stupne ochrany (len na čítanie, iba na spustenie) za cenu veľmi miernej réžie.

  3. Je možné použiť mechanizmus, ktorý zabezpečí zdieľanie modulov rôznymi procesmi (pre prípad spolupráce procesov pri práci na jednej úlohe).
Pamäť - najdôležitejšiezdroj výpočtový systém, ktorý si vyžaduje efektívne riadenie. Napriek tomu, že v týchto dňoch Pamäť priemerný domáci počítač je tisíckrát Pamäť mainframov zo 70. rokov sa veľkosť programov zväčšuje rýchlejšie ako Pamäť... Stačí povedať len toľko operačný systém zaberá stovky MB (napr. Windows 2000 - až 30 miliónov riadkov), nehovoriac o aplikačných programoch a databázach, ktoré dokážu zabrať desiatky a stovky GB vo výpočtových systémoch.

Parafrázovaný Parkinsonov zákon hovorí: "Programy sa rozširujú, aby zaplnili všetku dostupnú pamäť na ich podporu." (hovorilo sa o OS). V ideálnom prípade by programátori chceli mať neobmedzenú veľkosť a rýchlosť. Pamäť ktorý by bol neprchavý, t.j. zachoval svoj obsah aj po vypnutí napájania a bol by tiež lacný. V skutočnosti však takáto pamäť zatiaľ neexistuje. Zároveň v ktorejkoľvek fáze vývoja technológie na výrobu úložných zariadení fungujú tieto pomerne stabilné vzťahy:


  • čím kratší je prístupový čas, tým sú bity drahšie;

  • čím vyššia je kapacita, tým nižšie sú náklady na bit;

  • čím vyššia kapacita, tým dlhší čas prístupu.
Nájsť výkon zo súčasného stavu je potrebné vychádzať nie zo samostatne odoberaných komponentov či technológií, ale vybudovať hierarchiu úložných zariadení, znázornenú na obr. 6.1. Pri pohybe zľava doprava sa stane nasledovné:

  • náklady na bit sa znížia;

  • zvýšenie kapacity;

  • zvyšuje sa prístupový čas;

  • frekvencia prístupu procesora k pamäti klesá.

Ryža. 6.1. Hierarchia pamäte

Predpokladajme CPUprístup do pamäti dvoch úrovní. Prvá úroveň obsahuje E1 slová a je charakterizovaná prístupovým časom T1 = 1 ns. Na túto úroveň CPU môže požiadať priamo. Ak však chcete získať slovo nachádza na druhej úrovni, potom sa musí najskôr preniesť do prvej úrovne. V tomto prípade nielen požadované slovo, a dátový blok obsahujúce toto slovo... Od prístupných adries CPU, majú tendenciu zhromažďovať sa v skupinách (slučky, podprogramy), CPU označuje malý, opakujúci sa súbor príkazov. Procesor teda bude pracovať s novo získaným pamäťovým blokom pomerne dlho.

Označme T 2 = 10 ns čas prístupu do druhej úrovne pamäte a P - postoj počet nájdených požadovaného slova v rýchlej pamäti k počtu všetkých hovorov. Nech je v našom príklade P = 0,95 (t. j. 95 % hovorov pripadne rýchlo Pamäť, čo je celkom reálne), potom priemer prístupový čas do pamäte sa dá zapísať takto:

Tv = 0,95 * 1 ns + 0,05 * (1 ns + 10 ns) = 1,55 ns

Tento princíp je možné aplikovať nielen na pamäť s dvoma úrovňami. V skutočnosti sa to deje. Veľkosť pamäte RAM výrazne ovplyvňuje charakter výpočtového procesu, pretože obmedzuje počet súčasne vykonávaných programov, t.j. úroveň multiprogramovania. Za predpokladu, že proces strávi nejaké p času čakaním na dokončenie operácií vstup-výstup, potom bude stupeň zaťaženia Z centrálnej procesorovej jednotky (CPU) v ideálnom prípade vyjadrený závislosťou

Z = 1 - p n, kde n je počet procesov.

Na obr. 6.2 je znázornená závislosť Z = p (n) pre rôzne čakacie doby na dokončenie operácií I/O (20 %, 50 % a 80 %) a počet procesov n. Veľký počet úloh vyžadovaných pre vysoké využitie CPU vyžaduje veľké množstvo pamäte RAM. V podmienkach, keď dostupná pamäť nestačí na zabezpečenie prijateľnej úrovne multiprogramovania, bola navrhnutá metóda organizácie výpočtového procesu, pri ktorej sa obrazy niektorých procesov, celé alebo ich časti, dočasne uložia do disk.

Je zrejmé, že má zmysel dočasne uvoľniť neaktívne procesy, ktoré čakajú na nejaké zdroje, vrátane ďalšieho časového úseku centrálneho procesora. Kým to prejde fronta vykonaním vyloženého procesu sa jeho obraz vráti z disku do operačného Pamäť... Ak sa zároveň zistí, že v pamäti RAM nie je dostatok voľného miesta, potom zapnite diskďalší proces je uvoľnený.

Takáto náhrada ( virtualizácie) RAM s diskovou pamäťou vám umožňuje zvýšiť úroveň multiprogramovania, pretože množstvo pamäte RAM už tak výrazne neobmedzuje počet súčasne bežiacich procesov. V tomto prípade môže celkové množstvo pamäte RAM obsadenej obrazmi procesov výrazne presiahnuť dostupné množstvo pamäte RAM.

V tomto prípade je aplikačný programátor vybavený virtuálnym operačným systémom Pamäť, ktorého veľkosť je oveľa väčšia ako skutočná Pamäť systému a je limitovaný len možnosťami adresovania použitého procesu (v PC na báze Pentium 2 32 = 4 GB). Vo všeobecnosti sa virtuálne (zdanlivé) nazývajú zdroj, ktorá má vlastnosti (v tomto prípade veľké množstvo OP), ktoré v skutočnosti nemá.

Virtualizácia RAM je vykonávaná súborom hardvéru a softvéru výpočtového systému (procesorové obvody a operačný systém) automaticky bez účasti programátora a neovplyvňuje logiku aplikácie.

Virtualizácia pamäť je možná na základe dvoch možných prístupov:


  • swapovanie - obrazy procesov sa vymenia na disk a vrátia sa do RAM ako celok;

  • virtuálna pamäť ( virtuálna pamäť) - časti obrázkov (segmenty, stránky, bloky atď.) procesov sa presúvajú medzi hlavnou pamäťou a diskom.
Nevýhody výmeny:

  • redundancia presúvaných údajov a tým aj spomalenie systému a neefektívne využitie pamäte;

  • nemožnosť načítať proces, ktorého virtuálny priestor presahuje dostupnú voľnú pamäť.
Cnosť výmeny na v porovnaní s virtuálnou pamäťou - menšia výdavkyčas na konverziu adries v programových kódoch, keďže sa to robí raz pri zavádzaní z disku na Pamäť(táto výhoda však môže byť zanedbateľná, pretože pri ďalšom sťahovaní sa vykoná iba časť kódu a nemusí byť potrebné kód úplne transformovať).

Virtuálna pamäť nemá uvedené nevýhody, ale jeho kľúčovým problémom je konverzia virtuálnych adries na fyzické (prečo je to problém, bude jasné neskôr, ale zatiaľ významný výdavkyčas na tento proces, ak sa neprijmú žiadne osobitné opatrenia).

Koncept virtuálnej pamäte

Vo VS s virtuálnou pamäťou sa adresný priestor (AP) procesu (obraz procesu) pri vykonávaní ukladá do externej pamäte počítača a načítava sa do reálnej pamäte po častiach dynamicky, podľa potreby, v ľubovoľnom voľnom priestore ROP. Program však o tomto nič nevie, je napísaný a vykonaný tak, ako keby bol kompletne v ROP.

Virtuálna pamäť je simuláciou pamäte RAM v externej pamäti.

Mechanizmus mapovania virtuálnych a reálnych adries vytvára medzi nimi korešpondenciu a je volaný dynamický preklad adries(DPA ).

Počítač tu už funguje ako logické zariadenie a nie ako fyzický stroj s jedinečnými vlastnosťami. DPA je podporovaný na úrovni hardvéru a firmvéru. Intel MP počnúc procesorom 386 podporujú virtuálnu pamäť.

Tento postup sa vykonáva pre počítače EC - rad 2 a vyššie, pre počítač SM - 1700, pre IBM PC - I386 a vyššie.

Pri správe virtuálnej pamäte súvislé virtuálne adresy nemusia byť súvislými skutočnými adresami (umelá súvislosť). Programátor je oslobodený od potreby brať do úvahy umiestnenie svojich postupov a údajov v ROP. Dostane príležitosť písať programy tým najprirodzenejším spôsobom, pričom vypracuje iba detaily algoritmu a štruktúru programu, pričom ignoruje špecifické vlastnosti štruktúry hardvéru.

Mechanizmus DPA predpokladá udržiavanie tabuliek zobrazujúcich, ktoré bunky IP sa momentálne nachádzajú v ROP a kde presne. Keďže jednotlivé mapovanie informačných položiek (slovo po slove alebo byte) nedáva zmysel (keďže tabuľky mapovania adries by vyžadovali ROP viac ako pre procesy), potom sa mapovanie adries vykonáva na úrovni blokov OP.

Obrázok 1... Dynamický preklad adries

problém: akú časť procesov ponechať v OP, v určitých bodoch času, pričom niektoré časti EPR sa vytlačia a iné umiestnia.

Ďalšia otázka, ktorú je potrebné vyriešiť: Ako vytvoriť veľkosť bloku?

Zväčšenie veľkosti bloku vedie k zníženiu veľkosti tabuľky mapovania blokov, ale zvyšuje čas výmeny, a naopak, zníženie veľkosti bloku vedie k zvýšeniu tabuliek a skráteniu času výmeny s externými Pamäť.

Bloky môžu mať pevnú veľkosť (stránky) a variabilnú veľkosť (segmenty). V tomto ohľade existuje štyri spôsoby usporiadania virtuálnej pamäte:

1.Dynamická organizácia stránky.

2. Organizácia segmentov.

3. Kombinovaná organizácia segment-stránka.

4. Dvojúrovňová organizácia stránky.

Virtuálne adresy v pagingových a segmentových systémoch sú dvojdielne a predstavujú usporiadaný pár (p, d), kde p- číslo bloku (stránky alebo segmentu), v ktorom sa prvok nachádza, a d- offset vzhľadom na počiatočnú adresu tohto bloku. Preklad virtuálnej adresyV = (p, d) na adresu skutočnej pamäter sa uskutočňuje nasledovne. Pri aktivácii ďalšieho procesu sa adresa tabuľky mapovania blokov tohto procesu nahrá do špeciálneho registra procesora. Podľa čísla bloku p z tabuľky mapovania blokov sa načíta riadok, v ktorom sa vytvorí súlad medzi číslami virtuálnych a fyzických stránok pre stránky načítané do RAM, alebo sa označí, že virtuálna stránka bola uvoľnená na disk. Okrem toho tabuľka stránok obsahuje kontrolné informácie, ako je príznak úpravy stránky, príznak, ktorý nemožno stiahnuť (vykladanie niektorých stránok môže byť zakázané), príznak prístupu na stránku (používa sa na počítanie počtu prístupov za určité časové obdobie). ) a ďalšie údaje generované a používané mechanizmom.virtuálna pamäť. Veľkosť posunu sa pridá k načítanej adrese fyzického umiestnenia vybraného bloku. d a vypočíta sa požadovaná skutočná adresa.

Obrázok 2 Previesť virtuálnu adresu na skutočnú pamäťovú adresu

Zvážte, aká je stratégia správy virtuálnej pamäte? Podobne ako pri riadení ROP existujú tri kategórie stratégií riadenia VI, pričom existujúcim cieľom je zredukovať čakanie na stránku a umiestniť do ROP len použité bloky.

Stratégia push , ktorý určuje, kedy sa má prepísať stránka alebo segment z externej pamäte do OP.

a) zasúvanie na požiadanie- systém očakáva odkaz na stránku / segment z prebiehajúceho procesu (prerušenie z dôvodu absencie stránky);

argumenty pre:


  • cestu vykonania programu nie je možné s istotou predpovedať;

  • zaručiť, že v OP sa nachádzajú iba nevyhnutné stránky;

  • réžia definovania požadovaných strán je minimálna;
argumenty proti:

  • stránkovanie po jednom bloku zvyšuje celkovú latenciu.
b) predvídavé tlačenie predpokladá, že systém dokáže predvídať potrebu budúceho použitia stránky/segmentu. Ak je pravdepodobnosť prístupu vysoká a existuje voľný OP, potom sa príslušné bloky prepíšu do OP.

Výhoda: skrátená čakacia doba.

V súčasnosti sa rýchlosť zariadení zvyšuje a neoptimálne riešenia nevedú k zníženiu efektívnosti výpočtových systémov.

Stratégia umiestnenia, definovanie, kam umiestniť prichádzajúcu stránku / segment. V stránkových systémoch je to triviálne: v akomkoľvek voľnom bloku (stránka má pevnú veľkosť). V segmentovaných systémoch sa používajú rovnaké stratégie ako pri reálnych OP (prvá vhodná oblasť, najvhodnejšia, najmenej vhodná).

Stratégia push (nahradenia), definovanie, ktorá stránka / segment sa má odstrániť z OP, aby sa uvoľnilo miesto pre prichádzajúcu stránku.

Tu je hlavný problém." sklz“, v ktorom je potrebné vysunutú stranu v nasledujúcom okamihu znova umiestniť do ROP.

Zvážte postupy na určenie blokov, ktoré sa majú z OP vysunúť.

a) otváranie náhodnej stránky- nepoužíva sa v reálnych systémoch;

b) stlačenie prvej prichádzajúcej stránky (FIFO- rad). Na jeho implementáciu je potrebné nastaviť časové pečiatky stránok.

Argumentovať: stránka už mala príležitosti využiť svoju šancu.

Vlastne: je pravdepodobnejšie, že nahradí aktívne používané stránky, pretože hľadanie stránok na dlhú dobu môže znamenať, že sa neustále používajú. Napríklad použitý textový editor.

v) vysunutie najdlhšie nepoužívaných strán.

Na implementáciu je potrebné implementovať aktualizovateľné časové pečiatky. Heuristický argument: - nedávna minulosť je dobrým sprievodcom do budúcnosti.

Nevýhodou sú značné náklady: neustála aktualizácia časových pečiatok.

G) tlačenie najmenej používaných stránok- predpokladá prítomnosť počítadiel stránok (menej intenzívne ako aktualizované časové pečiatky). Je to intuitívne opodstatnené, ale tiež nemusí byť racionálne.

e) vytláčanie nedávno nepoužívaných stránok- najbežnejší nízkonákladový algoritmus. Implementované s dvoma hardvérovými bitmi na stránku:

1.príznak liečby 0 - bol

1 - nebolo.

2. znak úpravy záznamu 0 - nezmenený.

1 - zmenené.

Možné sú nasledujúce kombinácie { 00,10,01,11). Ak na stránke nenastali žiadne zmeny, stránku možno jednoducho prepísať a neuložiť na disk.

Téma 3.1 Organizácia výpočtov vo výpočtových systémoch

Účel a vlastnosti lietadla. Organizácia výpočtov vo výpočtových systémoch. Paralelný počítač, pojmy toku príkazov a toku dát. Asociatívne systémy. Maticové systémy. Výpočet potrubia. Príkazový kanál, dátový kanál. Superskalarizácia.

Študent musí

vedieť:

koncepcia toku príkazov;

koncepcia toku údajov;

Typy výpočtových systémov;

Architektonické vlastnosti výpočtových systémov

Výpočtové systémy

Výpočtový systém(Slnko)- súbor vzájomne prepojených a interagujúcich procesorov alebo počítačov, periférnych zariadení a softvéru, určených na zhromažďovanie, ukladanie, spracovanie a distribúciu informácií.

Vytvorenie ozbrojených síl sleduje tieto hlavné ciele:

· Zvýšenie výkonu systému zrýchlením spracovania údajov;

· Zvýšenie spoľahlivosti a presnosti výpočtov;

· Poskytovanie doplnkových služieb užívateľovi a pod.

Téma 3.2

Klasifikácia lietadiel v závislosti od počtu príkazových a dátových tokov: SISD, SIMD, MISD, MIMD.

Klasifikácia viacprocesorových lietadiel s rôznymi spôsobmi implementácie zdieľanej pamäte: UMA, NUMA, SOMA. Porovnávacie charakteristiky, hardvérové ​​a softvérové ​​vlastnosti.

Klasifikácia viacvozových lietadiel: MPP, NDW a COW. Vymenovanie, vlastnosti, vlastnosti.

Príklady lietadiel rôznych typov. Výhody a nevýhody rôznych typov výpočtových systémov.

Klasifikácia výpočtových systémov

Charakteristickým rysom VS vo vzťahu ku klasickým počítačom je prítomnosť niekoľkých počítačov, ktoré implementujú paralelné spracovanie .

Paralelnosť vykonávania operácií výrazne zvyšuje rýchlosť systému; môže výrazne zvýšiť tak spoľahlivosť (ak dôjde k poruche jedného komponentu systému, jeho funkciu môže prevziať iná), ako aj spoľahlivosť fungovania systému, ak sa operácie duplikujú a výsledky sa porovnajú.

Výpočtové systémy možno rozdeliť do dvoch skupín:

· multi-stroj ;

· viacprocesorový .

Viacstrojový výpočtový systém pozostáva z niekoľkých samostatných počítačov. Každý počítač vo viacstrojovom systéme má klasickú architektúru a takýto systém je široko používaný. Efekt použitia takéhoto výpočtového systému však možno dosiahnuť len pri riešení problému, ktorý má špeciálnu štruktúru: treba ho rozdeliť na toľko slabo prepojených podúloh, koľko počítačov je v systéme.

Multiprocesorová architektúra predpokladá prítomnosť niekoľkých procesorov v počítači, preto je možné paralelne organizovať veľa dátových tokov a veľa inštrukčných tokov. Takto možno súčasne vykonať niekoľko fragmentov tej istej úlohy. Výhoda rýchlosti viacprocesorových výpočtových systémov oproti jednoprocesorovým je zrejmá.

Nevýhodou je možnosť konfliktných situácií, keď k rovnakej pamäťovej oblasti pristupuje viacero procesorov.

Vlastnosťou viacprocesorových počítačových systémov je prítomnosť zdieľanej RAM ako zdieľaného zdroja (obrázok 11).

Obrázok 11 - Architektúra viacprocesorového výpočtového systému

Flynnova klasifikácia

Spomedzi všetkých uvažovaných systémov klasifikácie lietadiel bola najrozšírenejšia klasifikácia navrhnutá v roku 1966 M. Flynnom. Je založená na koncepcia toku , ktorým sa rozumie postupnosť príkazových alebo dátových prvkov spracovaných procesorom. Flynn rozlišuje 4 triedy architektúr v závislosti od počtu príkazových tokov a dátových tokov:

· OKOD - single command stream - single data stream. Patria sem klasické von Neumannove VM. Nezáleží na spracovaní potrubí, preto VM 6600 so skalárnymi funkčnými zariadeniami aj 7600 s dopravníkovými spadajú do triedy OKOD.

· ICOD - tok viacerých príkazov - jeden tok údajov. V tejto architektúre viacero procesorov spracováva rovnaký dátový tok. Príkladom môže byť VS, do ktorého procesorov je privádzaný skreslený signál a každý z procesorov tento signál spracováva pomocou vlastného filtračného algoritmu. Napriek tomu si Flynn ani iní špecialisti v oblasti počítačovej architektúry zatiaľ nedokázali predstaviť skutočné lietadlo postavené na tomto princípe. Mnoho výskumníkov pripisuje dopravníkové systémy tejto triede, ale nenašlo konečné uznanie. Prítomnosť prázdnej triedy by sa nemala považovať za chybu Flynnovej klasifikácie. Takéto triedy môžu byť užitočné pri vývoji nových konceptov v teórii a praxi konštrukcie lietadla.

· OKMD - jeden tok príkazov - veľa tokov údajov - príkazy vydáva jeden riadiaci procesor a sú vykonávané súčasne na všetkých procesoroch spracovania cez lokálne dáta týchto procesorov. SIMD (jedna inštrukcia – viacero údajov)

· ICMD - veľa tokov príkazov - veľa tokov údajov - množina počítačov pracujúcich vo svojich programoch so svojimi počiatočnými údajmi. MIMD (viacnásobná inštrukcia – viacero údajov)

Flynnova klasifikačná schéma je najbežnejšia pri počiatočnom hodnotení lietadla, pretože vám okamžite umožňuje posúdiť základný princíp systému. Flynnova klasifikácia má však aj zjavné nevýhody: napríklad nemožnosť jednoznačne priradiť niektoré architektúry k tej či onej triede. Druhým nedostatkom je prílišná saturácia triedy MIMD.

Existujúce výpočtové systémy triedy MIMD tvoria tri podtriedy: symetrické multiprocesory (SMP), klastre a masívne paralelné systémy (MPP). Táto klasifikácia je založená na štruktúrno - funkčnom prístupe.

Symetrické multiprocesory pozostávajú zo sady procesorov, ktoré majú rovnaký prístup k pamäti a externým zariadeniam a fungujú pod rovnakým operačným systémom (OS). Špeciálnym prípadom SMP sú jednoprocesorové počítače. Všetky procesory SMP majú zdieľanú pamäť s jedným adresným priestorom.

Používanie SMP poskytuje nasledujúce možnosti:

· Škálovanie aplikácií pri nízkych počiatočných nákladoch aplikovaním bez konverzie aplikácií na nový, produktívnejší hardvér;

· Tvorba aplikácií v známych softvérových prostrediach;

· Rovnaký prístupový čas do celej pamäte;

· Možnosť preposielania správ s veľkou šírkou pásma;

· Podpora koherencie súboru vyrovnávacích pamätí a blokov hlavnej pamäte, nedeliteľná synchronizácia a uzamykacie operácie.

Klastrový systém je tvorený modulmi spojenými komunikačným systémom alebo zdieľanými externými pamäťovými zariadeniami, napríklad diskovými poliami.

Veľkosť klastra sa pohybuje od niekoľkých modulov až po niekoľko desiatok modulov.

V rámci zdieľanej aj distribuovanej pamäte je implementovaných niekoľko modelov architektúr pamäťového systému. Obrázok 12 zobrazuje klasifikáciu takýchto modelov používaných vo výpočtových systémoch triedy MIMD (platí aj pre triedu SIMD).

Obrázok 12 - Klasifikácia modelov pamäťových architektúr výpočtových systémov

V systémoch so zdieľanou pamäťou všetky procesory majú rovnaké príležitosti na prístup k jedinému adresnému priestoru. Jedna pamäť môže byť zostavená ako jeden blok alebo modulárna, ale zvyčajne je to tak.

Nazývajú sa výpočtové systémy so zdieľanou pamäťou, kde sa prístup ľubovoľného procesora do pamäte vykonáva jednotne a trvá rovnaký čas systémy s jednotným prístupom k pamäti a sú označované skratkou UMA (Uniform Memory Access). Toto je najbežnejšia architektúra pamäte pre paralelné VS so zdieľanou pamäťou.

Technicky systémy UMA predpokladajú prítomnosť uzla spájajúceho každý z nich NS procesorov s každým z T pamäťové moduly. Najjednoduchší spôsob konštrukcie takéhoto lietadla - kombinácia niekoľkých procesorov (P i.) s jednou pamäťou (M P) cez spoločnú zbernicu - je znázornený na obrázku 12a. . V tomto prípade si však na zbernici môže vymieňať naraz iba jeden z procesorov, to znamená, že procesory musia súťažiť o prístup k zbernici. Keď procesor Р ja, načíta príkaz z pamäte, iných procesorov P j(i ≠ j) musí počkať, kým sa pneumatika uvoľní. Ak systém obsahuje iba dva procesory, sú schopné pracovať takmer s maximálnym výkonom, pretože ich prístup k zbernici môže byť prekladaný: zatiaľ čo jeden procesor dekóduje a vykonáva inštrukciu, druhý môže použiť zbernicu na získanie ďalšej inštrukcie z pamäte. . Keď sa však pridá tretí procesor, výkon začne klesať. Keď je na zbernici desať procesorov, krivka rýchlosti zbernice (obrázok 12b) bude horizontálna, takže pridanie 11 procesorov nezlepší výkon. Spodná krivka na tomto obrázku ilustruje skutočnosť, že pamäť a zbernica majú pevnú šírku pásma určenú kombináciou doby cyklu pamäte a protokolu zbernice a vo viacprocesorovom systéme so zdieľanou zbernicou je táto šírka pásma rozdelená medzi viacero procesorov. Ak je doba cyklu procesora dlhšia ako pamäťový cyklus, na zbernicu možno pripojiť veľa procesorov. V skutočnosti je však procesor zvyčajne oveľa rýchlejší ako pamäť, takže táto schéma nie je široko používaná.

Alternatívny spôsob zostavenia multiprocesorového CS so zdieľanou pamäťou založenou na UMA je znázornený na obrázku 13c. . Tu je zbernica nahradená prepínačom, ktorý smeruje požiadavky procesora na jeden z niekoľkých pamäťových modulov. Napriek tomu, že existuje niekoľko pamäťových modulov, všetky patria do jedného virtuálneho adresného priestoru. Výhodou tohto prístupu je, že prepínač je schopný obsluhovať viacero požiadaviek paralelne. Každý procesor môže byť pripojený k vlastnému pamäťovému modulu a mať k nemu prístup maximálnou povolenou rýchlosťou. Pri pokuse o prístup k rovnakému pamäťovému modulu v rovnakom čase môže vzniknúť rivalita medzi procesormi. V tomto prípade má prístup iba jeden procesor a ostatné sú zablokované.

Bohužiaľ, architektúra UMA nie je dobre škálovateľná. Najbežnejšie systémy obsahujú 4-8 procesorov, oveľa menej často 32-64 procesorov. Okrem toho takéto systémy nemožno pripísať bezporuchový, pretože porucha jedného procesora alebo pamäťového modulu má za následok poruchu celého lietadla.

Obrázok 13 - Zdieľaná pamäť:

a) kombinovanie procesorov pomocou zbernice a systému s lokálnymi vyrovnávacími pamäťami;

b) výkon systému ako funkcia počtu procesorov na zbernici;

c) viacprocesorové lietadlo so zdieľanou pamäťou, pozostávajúce zo samostatných modulov

Ďalším prístupom k budovaniu zdieľanej pamäte VS je nejednotný prístup k pamäti , označené ako NUMA (Non-Uniform Memory Access). Tu, ako predtým, existuje jeden adresný priestor, ale každý procesor má lokálnu pamäť. Procesor pristupuje priamo k vlastnej lokálnej pamäti, čo je oveľa rýchlejšie ako prístup k vzdialenej pamäti cez prepínač alebo sieť. Takýto systém môže byť doplnený o globálnu pamäť, potom lokálne úložné zariadenia fungujú ako rýchla vyrovnávacia pamäť pre globálnu pamäť. Takáto schéma môže zlepšiť výkon lietadla, ale nie je schopná donekonečna oddialiť vyrovnávanie priameho výkonu. Vzhľadom na to, že každý procesor má lokálnu vyrovnávaciu pamäť (obrázok 13a), existuje vysoká pravdepodobnosť (p> 0.9), že požadovaný príkaz alebo údaje sú už v lokálnej pamäti. Rozumná pravdepodobnosť zásahu do lokálnej pamäte výrazne znižuje počet prístupov procesora do globálnej pamäte a tým zvyšuje efektivitu. Miesto zlomu výkonnostnej krivky (horná krivka na obrázku 13b ), bod, v ktorom je pridávanie procesorov stále účinné, sa teraz presunie do oblasti 20 procesora a bod, kde sa krivka stáva horizontálnou, sa presunie do oblasti 30 procesora.

V rámci koncepcie NUMA implementuje sa niekoľko rôznych prístupov, ktoré sa označujú skratkami SOMA, CC-NUMA a NCC-NUMA.

V architektúra iba pre vyrovnávaciu pamäť (SOMA, Cache Only Memory Architecture) lokálna pamäť každého procesora je vytvorená ako veľká vyrovnávacia pamäť pre rýchly prístup z „vlastného“ procesora. Cache všetkých procesorov sa súhrnne považujú za globálnu pamäť systému. Neexistuje žiadna skutočná globálna pamäť. Základná črta konceptu SOMA je vyjadrená v dynamike. Dáta tu nie sú staticky viazané na konkrétny pamäťový modul a nemajú jedinečnú adresu, ktorá zostáva nezmenená po celú dobu životnosti premennej. V architektúre SOMA sa dáta prenášajú do vyrovnávacej pamäte procesora, ktorý si to naposledy vyžiadal, pričom premenná nie je pevne stanovená s jedinečnou adresou a môže sa kedykoľvek nachádzať v akejkoľvek fyzickej bunke. Presun údajov z jednej lokálnej vyrovnávacej pamäte do druhej nevyžaduje účasť operačného systému na tomto procese, ale zahŕňa zložitý a drahý hardvér na správu pamäte. Na organizáciu takéhoto režimu, tzv adresáre vyrovnávacej pamäte . Všimnite si tiež, že posledná kópia položky sa nikdy neodstráni z vyrovnávacej pamäte.

Pretože v architektúre SOMA sa údaje presúvajú do lokálnej vyrovnávacej pamäte procesora vlastníka, takéto lietadlá majú významnú výkonnostnú výhodu oproti iným architektúram NUMA. Na druhej strane, ak dva procesory vyžadujú jednu premennú alebo dve rôzne premenné uložené na rovnakom riadku v rovnakej vyrovnávacej pamäti, tento riadok vyrovnávacej pamäte sa musí presúvať tam a späť medzi procesormi pri každom prístupe k údajom. Takéto efekty môžu závisieť od detailov prideľovania pamäte a viesť k nepredvídateľným situáciám.

Model cache-koherentný nejednotný prístup k pamäti (CC-NUMA, Cache Coherent Non-Uniform Memory Architecture) sa zásadne líši od modelu SOMA. Systém CC-NUMA nevyužíva vyrovnávaciu pamäť, ale obvyklú fyzicky pridelenú pamäť. Medzi pamäťovými miestami nedochádza ku kopírovaniu stránok ani údajov. Neexistuje žiadna softvérová správa. Existuje len jedna pamäťová karta s časťami fyzicky spojenými medeným káblom a inteligentným hardvérom. Hardvérová súdržnosť vyrovnávacej pamäte znamená, že na ukladanie viacerých kópií aktualizovaných údajov alebo ich prenos nie je potrebný žiadny softvér. Toto všetko zvláda hardvérová úroveň. Prístup k lokálnym pamäťovým modulom v rôznych uzloch systému je možné vykonávať súčasne a je rýchlejší ako k vzdialeným pamäťovým modulom.

Rozdiel medzi modelom s cache-inkoherentný nejednotný prístup k pamäti (NCC-NUMA, Non-Cache Coherent Non-Uniform Memory Architecture) od CC-NUMA je zrejmé už z názvu. Architektúra pamäte predpokladá jeden adresný priestor, ale neposkytuje hardvérovú konzistenciu globálnych údajov. Riadenie používania takýchto údajov spočíva výlučne na softvéri (aplikáciách alebo kompilátoroch). Napriek tejto okolnosti, ktorá sa javí ako nevýhoda architektúry, sa ukazuje ako veľmi užitočná pri zvyšovaní výkonu výpočtových systémov s pamäťovou architektúrou typu DSM, uvažovanou v časti „Modely architektúr distribuovanej pamäte“.

Vo všeobecnosti sa nazývajú AC so zdieľanou pamäťou zostavenou podľa schémy NUMA architektúry virtuálnej zdieľanej pamäte (architektúry virtuálnej zdieľanej pamäte). Tento typ architektúry, najmä CC-NUMA, bol v poslednej dobe považovaný za nezávislý a pomerne perspektívny typ výpočtových systémov triedy M1MD.

Modely architektúry distribuovanej pamäte. V distribuovanom pamäťovom systéme má každý procesor svoju pamäť a môže ju iba adresovať. Niektorí autori tento typ systémov nazývajú viacvozidlové lietadlo resp multipočítače , zdôrazňujúc fakt, že "bloky, z ktorých je systém zostavený, sú samy o sebe malé výpočtové systémy s procesorom a pamäťou. Modely architektúr s distribuovanou pamäťou sa zvyčajne označujú ako architektúra bez prím vzdialený prístup do pamäte (NORMA, No Remote Memory Access). Tento názov vyplýva zo skutočnosti, že každý procesor má prístup len do svojej lokálnej pamäte. Prístup do vzdialenej pamäte (lokálnej pamäte iného procesora) je možný len výmenou správ s procesorom, ktorý vlastní adresovateľnú pamäť.

Táto organizácia má množstvo výhod. Po prvé, pri prístupe k dátam neexistuje konkurencia pre zbernicu alebo prepínače: každý procesor môže plne využívať šírku pásma komunikačnej cesty s vlastnou lokálnou pamäťou. Po druhé, absencia zdieľanej zbernice znamená, že neexistujú žiadne súvisiace obmedzenia počtu procesorov: veľkosť systému je obmedzená iba sieťou procesorov. Po tretie, odstráni sa problém súdržnosti vyrovnávacej pamäte. Každý procesor má právo nezávisle meniť svoje údaje bez toho, aby sa musel obávať zhody kópií údajov vo vlastnej lokálnej vyrovnávacej pamäti s vyrovnávacími pamäťami iných procesorov.

Študent musí

vedieť:

Klasifikácia lietadiel;

Príklady lietadiel rôznych typov.

byť schopný:

- vyberte typ výpočtového systému v súlade s riešeným problémom.


© stránka 2015-2019
Všetky práva patria ich autorom. Táto stránka si nenárokuje autorstvo, ale poskytuje bezplatné používanie.
Dátum vytvorenia stránky: 22.07.2016