A gyorsítótár koherenciája
Több tároló a megosztott memóriaforráshoz
A gyorsítótár-koherencia a gyorsítótár tulajdonsága. azaz a megosztott erőforrás helyi gyorsítótárában tárolt adatok sértetlenségét jelenti. A gyorsítótár koherenciája a memória koherenciájának speciális esete.
Amikor a rendszerben lévő ügyfelek megosztott erőforrás-gyorsítótárazást használnak, például a memóriát, az adatok esetleges következetlensége esetén problémák adódhatnak. Ez különösen igaz a processzorokra egy többprocesszoros rendszerben. Az ábra „Néhány cache erőforrás megosztott memória”, ha az ügyfél a tetején egy példányát blokk memória a korábbi olvasási és az alsó ügyfél megváltoztatja a memória egy, egy példányát az adatok cache-ben a felső ügyfél elavul, ha nem használják a módosítás vagy minden értesítés ellenőrizze a változtatásokat. A gyorsítótár-koherencia az ilyen konfliktusok kezelésére és a különböző gyorsítótárak közötti konzisztencia fenntartására készült.
A koherencia meghatározza az olvasási és nyilvántartási viselkedést ugyanazon a memóriahelyen. A gyorsítótárat koherensnek hívják, ha a következő feltételek teljesülnek:
- Ha a P processzor ír egy értéket egy X változó, a következő alkalommal, amikor olvassa az X, akkor meg kell, hogy a korábban rögzített érték, ha az írás és olvasás X a többi processzor nem ír H. Ez az állapot társul megőrzése sorrendjét a program végrehajtása. ezt egy egyszálú architektúra esetében kell elvégezni.
- Az X változó P 1> processzor általi olvasásának működése. a következő, miután a másik P 2> processzort X-ben vettük fel, vissza kell állítanunk a regisztrált értéket, ha a többi processzor nem változtatta meg X-et a két művelet között. Ez a feltétel határozza meg a memória koherens láthatóságának fogalmát.
- Az ugyanazon memóriahelyen lévő bejegyzéseknek egymás után kell lenniük. Más szóval, ha a két processzor van rögzítve a X változó két érték: A, akkor B - nem lehet a helyzet, ha olvasás processzort, hogy megkapja az első érték a B, majd A.
Ilyen körülmények között feltételezzük, hogy az olvasási és írási műveletek azonnal megtörténnek. Ez azonban nem fordul elő a gyakorlatban a memória késése és más architektúra jellemzői miatt. A P 1> processzor által végrehajtott változtatások. a P 2> processzor nem látható. ha az olvasás a felvétel után nagyon rövid idő után következett be. A memória-konzisztencia modell határozza meg, hogy a rögzített érték mikor olvasható le más szálról.
Cache-koherencia mechanizmusok
- Koherencia a könyvtár használatával. 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).
- A koherencia a snooping használatával. Az egyes fizikai memóriablokkok adatainak egy példányát tartalmazó gyorsítótárnak az állapotáról szóló szolgáltatásinformáció megfelelő másolata is van. 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 megállapíthassák-e, tartalmaz-e a megfelelő blokk másolatát.
- Lehallgatás (snarfing). Amikor ki egy cache adatok felülírása a memóriában, a többi vezérlők fogadni a jelet a változás ( „lehallgatott” az információt az adatok megváltozását), és ha szükséges, módosítsa a vonatkozó adatokat a saját cache.
Az elosztott megosztott memória-rendszerek hasonló mechanizmusokat használnak a laza összekapcsolt rendszerek memóriablokkjainak helyességének fenntartása érdekében.
Koherencia Támogatási Protokollok
A koherencia-támogatási protokollok felelősek a rendszer összes gyorsítótár közötti adatok helyességének megőrzéséért: megosztott megosztott memória. A protokoll támogatja a memória koherenciáját a kiválasztott modell (en: konzisztencia modell) szerint. A legtöbb mikroprocesszoros hardver protokoll megfelel az en: szekvenciális konzisztencia modellnek. és a megosztott memória rendszerekben elosztott szoftveres protokollok gyakran megfelelnek a modelleknek: kibocsátás konzisztencia vagy en: gyenge konzisztencia.
Modulok és protokollok a gyorsítótár-koherencia támogatására: