A MOESI egy mikroprocesszor gyorsítótár - koherenciát támogató protokoll , amely magában foglalja a többi protokollban használt összes lehetséges állapotot. Az általánosan használt MESI protokoll állapotai mellé egy ötödik "Owned" állapot került hozzáadásra, ami azt jelenti, hogy az adatok módosítva és megosztottak ( módosítva és megosztottak ). Ezzel elkerülhető, hogy a módosított adatokat visszaírják a fő memóriába, mielőtt a rendszer többi processzora elolvashatná azokat. Az adatokat még a memóriába kell írni, de ezzel a protokollal ez a visszaírás késleltethető.
AMD Opteron mikroprocesszorok használják.
Az AMD64 Architecture Programmer's Manual 2. kötet 'Rendszerprogramozás' [1] szerint minden gyorsítótár sora az alábbi öt állapot valamelyikében van:
Módosított A módosított állapotú gyorsítótár sor a legfrissebb, helyes adatokat tartalmazza. A fő memóriában lévő adatok másolata elavult és érvénytelen, és egyetlen más processzor sem rendelkezik másolattal az adatokról. A gyorsítótár sorban lévő adatok kérés vagy állapotváltozás nélkül újra módosíthatók. Az állapot Kizáróra változhat, amikor a megváltozott adatok a fő memóriába kerülnek. Tulajdonos A tulajdonolt állapotban lévő gyorsítótár sor a legfrissebb, helyes adatokat tartalmazza. A Saját állapot hasonló a Megosztott állapothoz , mivel a többi processzornak másolata lehet a legfrissebb és leghelyesebb adatokról. A megosztott állapottól eltérően azonban előfordulhat, hogy a fő memóriában lévő másolat elavult és hibás. Csak az egyik processzornak lehet ez a gyorsítótár sora Saját állapotban , a többi processzor csak megosztott állapotban . A gyorsítótár sor átválthat Módosított állapotba , miután a többi processzorban lévő összes megosztott másolat aktualitását (kényszerített áttérés az Érvénytelen állapotba ) eltávolították, vagy Megosztott állapotba , amikor a módosított adatokat a fő memóriába írják. Kizárólagos A kizárólagos állapotú gyorsítótár sor a legfrissebb, helyes adatokat tartalmazza. A főmemóriában lévő másolat az adatok legfrissebb, helyes másolatát is tartalmazza. Más processzornak nincs másolata az adatokról a gyorsítótárában. Az állapot bármikor módosulhat Módosítva a gyorsítótár-sor tartalmának módosításához. Ezenkívül az állapot bármikor Érvénytelenre változhat . Megosztva A megosztott állapotban lévő gyorsítótár sor a legfrissebb, helyes adatokat tartalmazza. A rendszer többi processzora rendelkezhet az adatok másolataival megosztott állapotban. A főmemóriában lévő másolat az adatok legfrissebb, helyes másolatát is tartalmazza, ha más processzor nem rendelkezik ezzel a gyorsítótárral a tulajdonolt állapotban. A gyorsítótár ebbe a sorába tilos írni, és kizárólagos állapotba kell állítani, míg az összes többi megosztott másolat Érvénytelen állapotba van állítva . Ezenkívül az állapot bármikor Érvénytelenre változhat . Nem releváns (érvénytelen) A megosztott gyorsítótár sor nem tartalmaz érvényes adatokat. Az adatok megfelelő másolatai lehetnek a fő memóriában vagy egy másik processzor gyorsítótárában.Bármely gyorsítótár-pár esetén egy adott gyorsítótár sor következő állapotai megengedettek:
M | O | E | S | én | |
---|---|---|---|---|---|
M | ![]() |
![]() |
![]() |
![]() |
![]() |
O | ![]() |
![]() |
![]() |
![]() |
![]() |
E | ![]() |
![]() |
![]() |
![]() |
![]() |
S | ![]() |
![]() |
![]() |
![]() |
![]() |
én | ![]() |
![]() |
![]() |
![]() |
![]() |
Ez a protokoll az egyszerűbb MESI-protokoll szövődményeként elkerüli, hogy a gyorsítótár-sorok változásait a fő memóriába írják, hogy egy másik processzor elolvashassa azokat. A birtokolt állapot lehetővé teszi a processzor számára, hogy a módosított adatokat közvetlenül egy másik processzorhoz továbbítsa.
Ha egy processzor egy saját gyorsítótár-sorba szeretne írni, értesítenie kell a többi processzort, amely megosztja az adott gyorsítótár-sort. Megvalósítástól függően vagy kérhető az összes megosztott másolat Érvénytelen állapotba állítása (és a másolatának a módosított állapotba való átvitele), vagy kérhető a másolatok frissítése új adatokkal (a saját példány Saját állapotban marad).