Többprocesszoros számítástechnikai rendszerek közös buszokkal

Az MPV közös busz (Shared Memory Proccessing - multiprocesszorok osztály memória, SMP-architektúra) az összes funkcionális modulok (... A processzorok P1, P2 PM memória MP1, MP2 IPC IO eszköz UVV1, UVV2 IODMs) össze vannak kötve egy közös busz modulközi kommunikáció, amelynek szélessége egy bittől több bájtig terjedhet. A modulok között a rendszer nem rendelkezik állandó kapcsolat, információ továbbítása közötti időben megosztott. Bármelyik időpontban egyetlen forrásból származó információ csomagot továbbít a buszon keresztül. Más információforrásoknak meg kell várniuk, amíg a rendszerbusz meg nem szabadul. [10]







A rendszer főbb előnyei a közös busz intermodulus kapcsolatokkal:

- a rendszert viszonylag alacsony funkcionális komplexitás és alacsony költség jellemzi;

- a rendszer egyszerűen újrakonfigurálja a szerkezetet a funkcionális modulok hozzáadásával vagy eltávolításával.

Az ilyen rendszerek hátrányai:

- a rendszer teljesítményének korlátozása a közös busz kapacitása révén;

- a rendszer általános teljesítményének romlása, amikor modulok hozzáadásával bővül;

- a rendszer teljesítményének elvesztése a konfliktuskezeléssel kapcsolatban, amely akkor merül fel, ha több modul egyidejűleg azt állítja, hogy egy közös busz elfoglalja az információ továbbítását. Ezek a veszteségek csökkenthetők, ha az összes processzorhoz rendelkezésre álló megosztott memória mellett mindegyikük helyi (helyi, processzoros) memóriával van ellátva a legközelebbi számításokba bevont információk tárolására. A helyi memóriánál a processzorok megosztott memóriához való hozzáférésének gyakorisága csökken, ezért a konfliktusok gyakorisága és a felbontásuk idővesztése csökken;

- A közös busz meghibásodása az egész rendszer meghibásodásához vezet.

A rendszer elemeinek összekapcsolása a közös busz alapján az egyik legelterjedtebb módja annak, hogy nemcsak többprocesszoros, hanem kis teljesítményű multi-számítógépes rendszereket is felépítsenek.

Az SMP architektúra minden modern multiprocesszoros kiszolgálónak (pl. HP9000 és DEC Alpha Server AXP) egyfajta szabványt jelentett.

Az ilyen típusú gépek első fejlesztésénél a teljes processzort és a gyorsítótárat egyetlen lemezre helyezték, amelyet a hátsó panelbe helyeztünk, amellyel a busz architektúrát megvalósítottuk. A modern formatervezési minták lehetővé teszik akár négy processzor behelyezését is. Az 1. ábrán. A 2. ábra egy ilyen gép ábráját mutatja.

Egy ilyen gépben a gyorsítótár mind megosztott, mind privát adatokat tartalmazhat. A privát adatok olyan adatok, amelyeket egy processzor használ, míg a megosztott adatokat sok processzor használja, lényegében cserét biztosítva közöttük. Amikor egy privát adatot elrejt, akkor az érték átkerül a gyorsítótárba, hogy csökkentse az átlagos elérési időt, valamint a szükséges sávszélességet. Mivel egyetlen más processzor sem használja ezeket az adatokat, ez a folyamat azonos a gyorsítótárral ellátott, egyetlen processzoros gépen. Ha a megosztott adatokat gyorsítótárba helyezi, akkor a megosztott érték replikálódik, és több gyorsítótárba is beilleszthető. A hozzáférési késleltetés csökkentése és a szükséges sávszélesség csökkentése mellett ez az adatreplikáció is hozzájárul a cserék számának általános csökkentéséhez. A megosztott adatok gyorsítótárazása azonban új problémát okoz: a gyorsítótár koherenciája [11].

A szóban forgó probléma abból fakad, hogy a két különböző processzorban tárolt memóriában lévő adatelem értékét csak az egyes cache-okon keresztül lehet elérni. Az 1. ábrán. A 3.30. Ábrán egy egyszerű példa mutatja ezt a problémát.

A multiprocesszorok és I / O eszközök memória koherencia problémája számos szempontot tartalmaz. A kis multiprocesszorok tipikusan hardver mechanizmust használnak, amelyet protokollnak neveznek a probléma megoldására. Az ilyen protokollokat cache coherency protokolloknak nevezik. Az ilyen protokollok két csoportja létezik:

1. A könyvtáron alapuló protokollok (könyvtár alapú). A fizikai memóriablokk állapotára vonatkozó információ csak egy helyen található, amelyet könyvtárnak neveznek (fizikailag a könyvtár a rendszer csomópontjai között oszlik meg). Ez a megközelítés a Sec. 3.30.

2. Megfigyelési protokollok (snooping). Mindegyik gyorsítótár, amely egy bizonyos fizikai memóriablokk adatainak másolatát tartalmazza, szintén rendelkezik az állapotáról szóló szolgáltatásinformáció megfelelő másolatával. Hiányzik egy centralizált felvételi rendszer. Általában a gyorsítótárak egy megosztott buszon találhatók, és minden cache-vezérlő megnézheti a buszon (megnézheti), hogy meghatározzák-e a megfelelő blokk másolatát.







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.

2. ábra - A cache memória koherenciaproblémájának ábrázolása

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 helyes, mivel lehetetlen megkövetelni, hogy az olvasási művelet pillanatok alatt megtekintsen egy másik processzorhoz ezt az adatelemet. 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 mikor kell pontosan írt értéket elérni az olvasást végző processzor számára, a modell által választott következetes (állandó) memóriaállapot modellje határozza meg, és a párhuzamos számítások szinkronizálásának végrehajtásával jár. Ezért az egyszerűség kedvéért tegyük fel, 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ó sorrendjében végrehajtását. [12]

A következetes memóriaállapot egyszerű meghatározásával garantálhatjuk a koherenciát két tulajdonság biztosításával:

Az a memóriaegység olvasása, amelyet egy processzor egy processzort olvas, amely egy processzortól ugyanazon memóriahelyre írja az írási műveletet, megkapja a rögzített értéket, ha az olvasási és írási műveletek időben megfelelően egymástól elválnak.

írási műveleteket az ugyanazon memória cella végzik szigorúan egymás után (néha azt mondják, hogy sorozatban): ez azt jelenti, hogy a két szomszédos átirányítások a memóriahely fogják megfigyelni más processzorok pontosan abban a sorrendben, amelyben úgy tűnik, az író műveleteket végző processzor programjában.

Az első tulajdonság nyilvánvalóan összefüggésben van a koherens (állandó) memóriaállapot meghatározásával: ha a processzor mindig csak a régi adatértéket olvasná, azt mondanánk, hogy a memória inkoherens.

A szigorúan egymást követő felvételi műveletek szükségessége finomabb, de nagyon fontos is. Képzelje el, hogy az írási műveletek szigorúan következetes végrehajtását nem tartják be. Ezután a P1 processzor képes adatokat írni a cellára, majd a P2 processzor írja ezt a cellát. Az írási műveletek szigorú szekvenciális végrehajtása két fontos következményt biztosít az írási műveletek sorrendjéhez. Először is biztosítja, hogy a gép minden egyes processzora egy bizonyos időpontban megfigyelje a P2 processzor által készített felvételt. 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. Egy finomabb probléma merül fel a program végrehajtásának és a memória koherenciájának ésszerű modelljének fenntartása érdekében: képzeljük el, hogy a harmadik processzor folyamatosan ugyanazt a memóriakártyát olvasja, amelybe a P1 és P2 processzorok írják; először meg kell figyelnie a P1 által rögzített értéket, majd a P2 által rögzített értéket. Talán soha nem fogja tudni látni a P1 által rögzített értéket, mivel a P2-től származó felvétel az olvasás előtt keletkezett. Ha még a P1 által feljegyzett értéket is látja, akkor a P2 értéket a későbbi olvasás során fel kell tüntetnie. Hasonlóképpen, bármely más processzor, amely képes figyelni a P1 és P2 által írt értékeket, ugyanazt a viselkedést kell figyelembe vennie. Az ilyen tulajdonságok elérésének legegyszerűbb módja az írási műveletek sorrendjének szigorú betartása, hogy ugyanabban a cella összes rekordja ugyanabban a sorrendben figyelhető meg. Ezt a tulajdonságot az írási műveletek szekvenciális végrehajtásának (szerializációnak) nevezik (írási sorozatok). Az a kérdés, hogy mikor kell egy processzort egy másik processzor által írt értéknek látni, elég összetett, és jelentős hatással van a teljesítményre, különösen a nagygépeknél. [13]

Az írási protokoll alternatívája az adatelem összes példányának frissítése, amikor ezt az adatelemet írja. Ezt a típusú protokollt írás-frissítési protokollnak vagy írási protokollnak nevezzük. Á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 frissített gyorsítótár frissítésére vagy frissített adatok továbbítására.

A felvételi protokollok frissítéssel és törléssel történő teljesítménybeli különbségét három jellemző határozza meg:

1. 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.

2. A jelen 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).

3. A késés között a felvétel a beszéd egyetlen processzor és az olvasás a rögzített értékeket egy másik processzor jellemzően kisebb használatakor felvételi rendszer frissítése óta rögzített adatok azonnal lefordítja a processzor teljesít érték (azt feltételezzük, hogy 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.




Kapcsolódó cikkek