Obsah:

Návrh jednoduchého štvorsmerového radiča asociatívnej vyrovnávacej pamäte vo VHDL: 4 kroky
Návrh jednoduchého štvorsmerového radiča asociatívnej vyrovnávacej pamäte vo VHDL: 4 kroky

Video: Návrh jednoduchého štvorsmerového radiča asociatívnej vyrovnávacej pamäte vo VHDL: 4 kroky

Video: Návrh jednoduchého štvorsmerového radiča asociatívnej vyrovnávacej pamäte vo VHDL: 4 kroky
Video: Найджел Марш: Как достичь баланса между работой и жизнью 2024, November
Anonim
Návrh jednoduchého štvorsmerového radiča asociatívnej vyrovnávacej pamäte vo VHDL
Návrh jednoduchého štvorsmerového radiča asociatívnej vyrovnávacej pamäte vo VHDL

V mojom predchádzajúcom návode sme videli, ako navrhnúť jednoduchý priamo mapovaný radič vyrovnávacej pamäte. Tentokrát sa posunieme o krok vpred. Navrhneme jednoduchý štvorsmerový radič asociatívnej vyrovnávacej pamäte. Výhoda? Menej chybovosti, ale za cenu výkonu. Rovnako ako v mojom predchádzajúcom blogu by sme navrhli a emulovali celý procesor, hlavnú pamäť a prostredie vyrovnávacej pamäte, aby sme otestovali náš radič vyrovnávacej pamäte. Dúfam, že to považujete za užitočnú referenciu na pochopenie konceptov a navrhnutie vlastných radičov vyrovnávacej pamäte v budúcnosti. Keďže model pre procesor (testovací stôl) a hlavný pamäťový systém sú úplne rovnaké ako môj predchádzajúci blog, nebudem ich viac vysvetľovať. Bližšie informácie o ňom nájdete v predchádzajúcom návode.

Krok 1: Špecifikácia

technické údaje
technické údaje

Stručný prehľad špecifikáciami ovládača vyrovnávacej pamäte uvedených tu:

  • Štvorcestný radič asociatívnej vyrovnávacej pamäte (kliknite na tento odkaz, ak hľadáte radič priamej mapovanej vyrovnávacej pamäte).
  • Jednosmerná, blokovacia vyrovnávacia pamäť.
  • Zásady prepísania zápisov.
  • Pravidlá pre zápis pri zmeškaní zápisu.
  • Politika výmeny stromu Pseudo-LRU (pLRU).
  • Tag Array v ovládači.
  • Konfigurovateľné parametre.

Predvolené špecifikácie pre vyrovnávaciu pamäť a hlavnú pamäť sú rovnaké ako z môjho predchádzajúceho návodu. Obráťte sa na nich.

Krok 2: RTL pohľad na celý systém

RTL pohľad na celý systém
RTL pohľad na celý systém

Kompletná RTL reprezentácia horného modulu je zobrazená na obrázku (okrem procesora). Predvolené špecifikácie pre autobusy sú:

  • Všetky dátové zbernice sú 32-bitové zbernice.
  • Adresa zbernice = 32-bitová zbernica (Pamäť tu však môže adresovať iba 10 bitov).
  • Dátový blok = 128 bitov (širokopásmová zbernica na čítanie).
  • Všetky komponenty sú poháňané rovnakými hodinami.

Krok 3: Výsledky testu

Horný modul bol testovaný pomocou testovacej stolice, ktorá jednoducho modeluje nep pipeline procesor, rovnako ako v minulom návode. Testovacia lavica často generuje požiadavky na čítanie/zápis údajov do pamäte. To sa vysmieva typickým pokynom „Načítať“a „Uložiť“, ktoré sú bežné vo všetkých programoch vykonávaných procesorom.

Výsledky testu úspešne overili funkčnosť ovládača vyrovnávacej pamäte. Nasledujú pozorované testovacie štatistiky:

  • Všetky signály čítanie/zápis slečny a zásahu boli vygenerované správne.
  • Všetky operácie s údajmi čítania/zápisu boli úspešné vo všetkých štyroch smeroch.
  • Algoritmus pLRU je úspešne overený na nahradenie riadkov vyrovnávacej pamäte.
  • Neboli zistené žiadne problémy s nesúladom/nekonzistentnosťou údajov.
  • Dizajn bol úspešne načasovaný pre Maxm. Taktovacia frekvencia činnosti = 100 MHz na doske Xilinx Virtex-4 ML-403 (celý systém), 110 MHz pre samotný radič vyrovnávacej pamäte.
  • Blokové pamäte RAM boli odvodené z hlavnej pamäte. Všetky ostatné polia boli implementované na LUT.

Krok 4: Priložené súbory

K tomuto blogu sú priložené nasledujúce súbory:

  • Súbory. VHD programu Cache Controller, Cache Data Array, Main Memory System.
  • Testovacia lavica.
  • Dokumentácia k radiču vyrovnávacej pamäte.

Poznámky:

  • Prejdite si dokumentáciu, aby ste úplne porozumeli špecifikáciám ovládača vyrovnávacej pamäte, ktoré sú tu uvedené.
  • Akékoľvek zmeny v kóde závisia od iných modulov. Zmeny by sa preto mali vykonávať uvážlivo.
  • Venujte pozornosť všetkým komentárom a hlavičkám, ktoré som uviedol.
  • Ak z akéhokoľvek dôvodu nie sú blokové pamäte RAM odvodené pre hlavnú pamäť, ZNÍŽTE veľkosť pamäte, potom nasledujú zmeny v šírkach adresovej zbernice v súboroch a podobne. Rovnakú pamäť je teda možné implementovať buď na LUT alebo na distribuovanú RAM. Šetrí to čas a zdroje smerovania. Alebo choďte na konkrétnu dokumentáciu FPGA, nájdite kompatibilný kód pre blok RAM a upravte kód podľa toho a použite rovnakú špecifikáciu šírky adresovej zbernice. Rovnaká technika pre Altera FPGA.

Odporúča: