többprocesszoros rendszerek
Többprocesszoros rendszerek közös memória
Követelmények a modern processzorok a memória sávszélessége jelentősen csökkenthető használata révén egy nagy multi-level cache. Aztán, ha ezek a kötelezettségek csökkennek, a processzorok számát lesz képes megosztani a hozzáférést a memóriát. 1980 óta a gondolat által támogatott prevalenciája mikroprocesszorok ösztönözte sok a fejlesztők a kis multiprocesszorok amelyben több processzor ugyanazt a fizikai memóriát, összekötve őket egy közös buszon. Mivel a kis méret a feldolgozók és a jelentős csökkenése a szükséges buszsávszélesség elérni, hogy a végrehajtás egy elég nagy cache, ezek a gépek váltak rendkívül költséghatékony. Az első fejlesztés ilyen gép képes befogadni az összes processzor és a cache egyetlen tábla, amelyet ezután behelyezik a hátlapon, amelyen keresztül megvalósított busz architektúra. Modern design elhelyezésére legfeljebb négy processzort egyetlen fórumon. Ábra. 10.1 egy vázlatos rajz egy ilyen gép.
Egy ilyen gép cache egyaránt tartalmazhatnak közös és privát adatokat. Személyes adatok - az adatokat, hogy használ egy processzor, míg a megosztott adatok által használt számos processzorok, lényegében a csere között. Amikor a saját adatok gyorsítótárból elem, értékük át a cache, hogy csökkentsék az átlagos elérési idő, és a szükséges sávszélességet. Mivel nem volt más processzor nem használja ezeket az adatokat, ez a folyamat megegyezik az egyprocesszoros gép egy cache memória. Ha a tárolt megosztott adatokat, a közös érték kettőzött és össze lehet foglalni több cache. Amellett, hogy csökkenti hozzáférést késleltetést és a szükséges sávszélességet adatreplikációs ilyen is hozzájárul az általános számának csökkenése cserék. Azonban, tárolt megosztott adatok egy új probléma: a koherencia cache.
Többprocesszoros cache koherencia
Az adott probléma abból adódik, hogy az érték az adatelem a memóriában tárolt két különböző processzorok, ezek a processzorok állnak csak a saját egyéni cache. Ábra. 10.3 ábrán egy egyszerű példa, hogy bemutassa ezt a problémát.
Memory koherencia probléma multiprocesszorok és input / output eszközök számos aspektusa van. Általában kis multiprocesszorok használni egy hardveres úgynevezett protokoll megoldja ezt a problémát. Az ilyen protokollok nevezik protokollok koherencia cache. Két osztály protokollok:
- Jegyzőkönyvek alapján könyvtár (directory alapú). Információ a fizikai állapotát a tároló egység tartalmazza csak egy helyen, az úgynevezett referencia (vonatkoztatási fizikailag elosztott rendszer csomópontok). Ez a megközelítés lesz szó Sec. 10.3.
- Monitoring protokollok (szaglászás). Minden gyorsítótár, amely tartalmaz egy másolatot az adatblokk a fizikai memória is van egy példánya az adott szolgáltatási információt az állapota. Nincs központi rendszer a rekordok. Jellemzően cache található egy közös (megosztott) busz, és az összes cache vezérlők figyelemmel kíséri a busz (megtekintésére is) annak megállapítására, hogy azok tartalmaznak egy példányt a blokk.
Ábra. 10.3. Illusztráció koherencia problémák cache
A többprocesszoros rendszerek mikroprocesszor a cache memória csatlakozik a központi osztott memóriát megfigyelési jegyzőkönyvek népszerű lett lehívásához az állam a cache, tudják használni a már meglévő fizikai kapcsolat - egy memória buszt.
Informális memória koherencia probléma az, hogy biztosítani kell, hogy minden adat olvasható elem visszatér az utoljára érték írni. Ez a meghatározás nem teljesen pontos, mert lehetetlen, hogy a kereslet, hogy az olvasási művelet azonnal látta, hogy a rögzített érték az adatok elem valamilyen más processzor. Ha például egy processzor írási művelet megelőzi az olvasási művelet az azonos cellában egy másik processzor egy nagyon rövid időintervallum, lehetetlen garantálni, hogy az olvasási bevallási adatok rögzített érték, hiszen ebben az időpontban, az adatok rögzítése nem is hagyja el a processzort. Az a kérdés, hogy pontosan mikor a felvett érték elérhetőnek kell lennie a processzor, amely végrehajtja az olvasás, határozza meg a kiválasztott modell koherens (konzisztens) memória állapotát és végrehajtásával kapcsolatos, a szinkronizálás a párhuzamos számítástechnika. Ezért az egyszerűség kedvéért feltesszük, hogy ehhez csak rögzíti a tranzakció értéke rekord elérhető olvasási műveletek történt egy kicsit később, hogy a rögzítésére és feldolgozására az írási művelet mindig látható a végrehajtásuk sorrendjének.
Ezzel az egyszerű meghatározása koherens memória állapotát, tudjuk garantálni a koherencia biztosítása révén, hogy a két tulajdonság:
- A művelet az olvasás egy processzor memória cella, amely követi az írási művelet azonos memóriahely másik processzor a írt értéket, amikor az olvasási és írási műveletek kellően elkülönülnek egymástól időben.
- írási műveleteket az ugyanazon a memória cella végzik szigorúan egymás után (néha azt mondják, hogy sorozatban): ez azt jelenti, hogy két egymást követő átirányítások a memóriahely fogják megfigyelni más processzorok pontosan abban a sorrendben, amelyben úgy tűnik, a CPU programot teljesítő az írási művelet.
Az első tulajdonság nyilvánvalóan összefügg a meghatározása a koherens (összefüggő), a memória állapotát: ha a processzor mindig szól csak a régi adatok értékét, azt mondanánk, hogy a memória inkoherens.
Az igény, hogy szigorúan szekvenciális írási műveletek finomabb, hanem egy nagyon fontos tulajdonság. Képzeljük el, hogy egy szigorúan szekvenciális végrehajtást írási művelet nem tartják be. Ezután a P1 processzor adatokat írhatunk egy sejtbe, majd a sejt felvenni a processzor P2. Szigorúan szekvenciális végrehajtást írási művelet biztosítja két fontos következménye van a rekord műveletek sorrendjét. Először is, ez biztosítja, hogy minden processzor az autó egy bizonyos ponton az idő fogja nézni felvételeket készítettek processzor P2. Ha a sorrend írási művelet nem tartják be, a helyzet állhat elő, amikor valamilyen processzor fogja tartani az első P2 processzor írási művelet, majd a P1 processzor írási művelet, és tárolja a rögzített értékének P1 végtelenségig. Finomabb probléma merül fel fenntartása ésszerű modell nagyságrendű program végrehajtása és a memória koherencia a felhasználó számára: képzeljük el, hogy egy harmadik processzor mindig olvasni ugyanazt a memória hely, ahol írni a feldolgozók P1 és P2; először meg kell megfigyelni az értéket írt P1, majd a rögzített érték P2. Talán soha többé nem látja a rögzített érték P1, P2 felvétel onnan olvasása előtt. Ha még azt is látja a rögzített érték P1, meg kell látni az értéket írt a P2, a későbbi olvasásra. Hasonlóképpen, bármely más processzort, amely megfigyelni írt értéket, mint a P1 és a P2, az, hogy tartsa azonos viselkedést. A legegyszerűbb módja annak, hogy ilyen tulajdonságokkal szigorú betartása mellett a sorrendben írások az összes rekordot, ugyanabban a cellában figyelhető meg ugyanabban a sorrendben. Ezt a tulajdonságot nevezzük szekvenciális végrehajtást (serialization) írási művelet (write serialization). Az a kérdés, hogy a processzor kell látni az értéket írta egy másik processzor meglehetősen bonyolult, és az észlelhető hatása a teljesítmény, különösen a nagy gépek.
Egy alternatív protokoll rekordot a lemondás frissíteni minden példányát az adatelem esetében a felvétel az adatok elem. Ez a fajta protokoll nevezik protokoll aktualizálása a felvétel (write frissítési protokoll) protokollt, vagy egy adás felvétel (write broadcast protokoll). Általában ez a protokoll, hogy csökkentse a sávszélesség-igény hasznos akkor ellenőrizze, hogy egy szót sem a megosztott objektum cache, vagy sem, nevezetesen azt, hogy az benne van a többi cache. Ha nem, akkor nincs szükség, hogy frissítse a cache a többi sugárzott, vagy frissíteni.
A különbség a teljesítmény közötti protokollok felvétel és frissíti a törlési határozza meg három jellemző:
- Több egymást követő írási műveletek egy és ugyanazon szó nem hézagos olvasási műveletek megkövetelik több művelet egy broadcast protokoll írja a frissítés, de csak egy kezdeti törlési jegyzőkönyv felhasználásával felvétel törlését.
- Jelenlétében hosszadalmas blokkokat a cache memória minden szót írva, hogy a cache egység szükséges, ha egy broadcast protokoll írja a frissítés, míg csak az első belépést bármilyen szót a mondatban kell előállítania törlési műveleteket a protokoll rekord törlését. felvétel a törlési protokoll működik szinten cache memória egység, míg a frissítés rekord protokollt kell működnie a szinten az egyes szavak (vagy bájt, ha felvételt egy byte).
- A késleltetés között írásban szava egyetlen processzor és az olvasó a mért értékek a többi processzor általában kisebb, mint ha a felvételt a frissítési rendszer, mivel a rögzített adatok azonnal lefordították egy processzort, amely végrehajtja az olvasást (feltételezzük, hogy ez a processzor egy példányát az adatok). Összehasonlításképpen, a log rögzíti a törlést a processzor végez olvasási első lemondás esetén másolat, akkor az olvasó lesz az adatok és annak felfüggesztése mindaddig, amíg a frissített példányát a blokk nem lesz elérhető, és nem tér vissza a processzort.
Amellett, hogy a visszavonás vagy megújításakor a vonatkozó másolatait a cache blokk, amely rögzítésre került, azt is meg kell tenni egy adat elem, ha a cache miss akkor jelentkezik, ha a felvételt. A cache memória write-through utolsó érték az adatelem könnyű megtalálni, mivel az összes felvett adatot mindig küldött is a memóriában, ahonnan az utolsó rögzített érték az adatelem lehet választani (jelenléte írási puffer vezethet bizonyos komplexitás).
hagyományos cache tag lehet használni, hogy végre az ellenőrzési folyamatot. Ezenfelül az előzőekben említett érvényességi bit (érvényes bit), megkönnyíti, hogy végre a törlést. Olvasás hiányzik miatt a törlést, vagy más esemény, szintén nem nehéz megérteni, mert egyszerűen képességén alapul a megfigyelés. Írási műveletek, azt is szeretném tudni, hogy van-e még más gyorsítótáras másolatai a blokk, mivel annak hiányában az ilyen másolatok, a rekordot nem lehet küldeni a busz, ami csökkenti az idő, hogy végre a felvétel, valamint a szükséges sávszélességet.
Ahhoz, hogy nyomon követni, hogy a közös blokk, tudjuk be a további állapot bit (megosztott), melyek az egyes blokk, ahogy ez történt az érvényesség bit (érvényes) és módosítása (módosított vagy piszkos) blokk. Hozzáadása status bit, amely meghatározza, hogy a megosztott blokk, akkor a kérdést, hogy a rögzítési művelet létrehoz egy törlés a protokoll a lemondás vagy broadcast műveletet a protokoll a frissítést. Ha van egy rekord a blokkban található, a „megosztott” segítségével a naplóbejegyzéseket a lemondás, a cache generál törlési művelet a buszon és védjegyek, mint egy különleges egységet (magán). Későbbi törlését a blokk, hogy a processzor nem küld tovább. Processzor exkluzív (kizárólagos) példányát cache blokk általában az úgynevezett „tulajdonos” (tulajdonos) blokk cache.
Amikor a naplóbejegyzéseket a frissítés, ha a készülék a „megosztott”, minden egyes bejegyzés ebben a blokkban kell sugározni. Ez a protokoll törlését, ha a törlést küld a működési állapotát a blokk megváltozik a „közös” és a „nem megosztható” (vagy „privát”). Később, ha egy másik processzor kéri a készülék, az állapot változik vissza „megosztott”. Mivel megfigyelése cache is látja a hibákat, tudja, ha a cache blokkot kér egy másik processzor, és annak állapota kellene „megosztott”.
emlékére az írási stratégia
Frissítés közben a memória fordítás
Ábra. 10.4. Példák megfigyelés protokollok
Ha a processzor használ többszintű cache tulajdonságaival lefedettség, akkor minden sor a fő cache áll rendelkezésre, és a másodlagos gyorsítótár. Így a megfigyelési aktivitás kapcsolatban lehet a második szintű cache, míg a legtöbb az aktív processzor lehet társítva egy primer cache. Ha ellenőrző mechanizmust hoz találatot a másodlagos gyorsítótár, akkor végre kell hajtania a választottbírósági elsődleges cache frissítéséhez az állam és lehet találni az adatokat, amelyeket egyébként felfüggesztéséhez vezet a processzor. Ezt a döntést a sok mai rendszerek, mint a multi-level cache jelentősen csökkenti a szükséges sávszélességet. Néha még az is lehet hasznos megismételni címkék a másodlagos gyorsítótár, hogy tovább csökkentsék a konfliktusok száma az aktív processzor és ellenőrzési mechanizmust.
A valós rendszerekben, sok variációját rendszerek cache koherencia, amelyik használjuk-e a rendszert alapul megszűnésének dátuma, hogy építeni a cache az alapelveket, vagy írjon-vissza, ha van egy frissítés, és a „birtoklása” van-e olyan állapotban, mint egy ez megvalósul. Ábra. 10.4 néhány protokollok felügyelete és egyes gépek, hogy használja ezeket a protokollokat.