Memória koherencia protokoll multi-processzoros rendszerekbe

OData támogatás
Konzulens:
Dr. Kollár Ernő
Elektronikus Eszközök Tanszéke

A feladatom a multiprocesszoros rendszerekben fellépő memória koherencia probléma megismerése, valamint a problémát kezelő memória koherencia protokoll tervezése volt. A diplomatervemben definiálom a koherencia problémát, bemutatom a koherencia protokoll tervezéséhez szükséges háttérismereteket és részletesen ismertetem az általam tervezett protokollt.

A dolgozatomban elsőként a cache memóriákat tekintem át. Itt kitérek a memóriák által alkalmazott leképezési módszerekre és írási stratégiákra, amelyek segítségével meg lehet határozni, hogy a koherencia protokollnak bizonyos eseményeket hogyan kell kezelnie. Ezt követően rátérek a cache koherencia protokollok összefoglaló bemutatására. Ehhez először a multiprocesszoros rendszerek tervezésének néhány sajátosságáról írok (multiprocesszor idealizmusok, memória szerkezetek kialakítási lehetőségei), majd bemutatom a koherencia protokollok alapvető típusait és a koherencia fenntartásának különböző megközelítéseit. A dolgozat részletesebb leírást tartalmaz a MESI típusú koherencia protokollokról, amelyet az általam tervezett rendszer is alkalmaz.

A multiprocesszoros rendszerekben kulcsfontosságú, hogy a közös memóriát hogy alakítják ki. Az ezzel kapcsolatos ismereteket a közös memória konzisztencia modellek és a különböző memória megvalósítások leírásában foglalom össze. A konzisztencia modellek azt határozzák meg, hogy a multiprocesszoros rendszerekben elvárt szekvenciális konzisztenciát milyen szigorral szándékozunk betartani. A különböző közös memória megvalósításokról szóló fejezetben pedig bemutatok néhány modellt, amelyek a tradicionális koherencia protokolloktól radikálisan eltérően kezelik a memória koherencia problémát.

Az elméleti ismeretek összefoglalása után a dolgozatban az általam tervezett protokollt ismertetem. A rendszer áttekintésében leírom a rendszerben fellépő eseményeket, a MESI koherencia protokollom állapotait, állapotátmeneteit, a választott memória struktúrákat, valamint az architektúra moduljainak általános szerepét. A koherencia protokollt egy nyolc magos rendszerhez terveztem, amelyben fő szempont volt a rendszer további bővíthetősége. Erre az általam használt könyvtár-alapú cache koherencia protokoll megfelelő lehetőséget biztosít.

Az architektúra fő elemei a processzor magok mellett megtalálható cache memóriák és cache memória kontrollerek, valamint a közös memória és a hozzá tartozó koherencia kontroller. A koherencia protokollt megvalósító logikát a cache memória kontrollerek és a koherencia kontroller tartalmazza, amelyeket külön-külön fejezetben részletesen ismertetek. A koherencia protokoll megfelelő működését igazoló szimulációs eredményeket egy külön fejezet tartalmazza. A szimulációkat a koherencia könyvtárhoz tartozó logika által kezelt utasítások alapján csoportosítottam.

A rendszert Verilog hardver leíró nyelv használatával terveztem, a szimulációkat pedig szintén HDL testbench segítségével állítottam össze.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.