Obsah:

Návrh jednoduchého čtyřcestného řadiče asociativní mezipaměti ve VHDL: 4 kroky
Návrh jednoduchého čtyřcestného řadiče asociativní mezipaměti ve VHDL: 4 kroky

Video: Návrh jednoduchého čtyřcestného řadiče asociativní mezipaměti ve VHDL: 4 kroky

Video: Návrh jednoduchého čtyřcestného řadiče asociativní mezipaměti ve VHDL: 4 kroky
Video: Provoz kotle s termostatickým směšovacím ventilem TSV B a akumulační nádrží 2024, Prosinec
Anonim
Návrh jednoduchého čtyřcestného řadiče asociativní mezipaměti ve VHDL
Návrh jednoduchého čtyřcestného řadiče asociativní mezipaměti ve VHDL

V mém předchozím pokynu jsme viděli, jak navrhnout jednoduchý přímý mapovaný řadič mezipaměti. Tentokrát se posuneme o krok napřed. Budeme navrhovat jednoduchý čtyřcestný řadič asociativní mezipaměti. Výhoda? Méně chyb, ale za cenu výkonu. Stejně jako v předchozím blogu bychom navrhli a emulovali celý procesor, hlavní paměť a prostředí mezipaměti, abychom otestovali náš řadič mezipaměti. Doufám, že to považujete za užitečný odkaz pro pochopení konceptů a návrh vlastních řadičů mezipaměti v budoucnu. Protože model pro procesor (testovací lavice) a hlavní paměťový systém jsou úplně stejné jako můj předchozí blog, nebudu je znovu vysvětlovat. Podrobnosti o tom naleznete v předchozím pokynu.

Krok 1: Specifikace

Specifikace
Specifikace

Rychlý pohled na specifikace ovladače mezipaměti uvedené zde:

  • Čtyřcestný řadič asociativní mezipaměti (přejděte na tento odkaz, pokud hledáte řadič přímé mapované mezipaměti).
  • Jednosměrná, blokovací mezipaměť.
  • Zásady přepisování požadavků na zápis.
  • Politika zápisu kolem zápisu zmeškaných zápisů.
  • Zásady nahrazování stromu Pseudo-LRU (pLRU).
  • Tag Array v řadiči.
  • Konfigurovatelné parametry.

Výchozí specifikace pro mezipaměť a hlavní paměť jsou stejné jako z mého předchozího pokynu. Obraťte se na ně.

Krok 2: RTL pohled na celý systém

RTL pohled na celý systém
RTL pohled na celý systém

Kompletní RTL reprezentace horního modulu je zobrazena na obrázku (kromě procesoru). Výchozí specifikace pro autobusy jsou:

  • Všechny datové sběrnice jsou 32bitové.
  • Adresa sběrnice = 32bitová sběrnice (Paměť zde však může adresovat pouze 10 bitů).
  • Datový blok = 128 bitů (širokopásmová sběrnice pro čtení).
  • Všechny komponenty jsou poháněny stejnými hodinami.

Krok 3: Výsledky testu

Horní modul byl testován pomocí testovací lavice, která jednoduše modeluje nepipelinovaný procesor, stejně jako jsme to udělali v posledním instrukčním programu. Testovací lavice často generuje požadavky na čtení/zápis dat do paměti. To zesměšňuje typické pokyny „Načíst“a „Uložit“, běžné ve všech programech spuštěných procesorem.

Výsledky testu úspěšně ověřily funkčnost řadiče mezipaměti. Níže jsou uvedeny pozorované zkušební statistiky:

  • Všechny signály čtení/zápisu Miss and Hit byly generovány správně.
  • Všechny operace čtení/zápisu dat byly úspěšné ve všech čtyřech směrech.
  • Algoritmus pLRU je úspěšně ověřen pro výměnu mezipaměti.
  • Nebyly zjištěny žádné problémy s nesoudržností/nekonzistencí dat.
  • Design byl úspěšně načasován pro Maxm. Taktovací frekvence provozu = 100 MHz na desce Xilinx Virtex-4 ML-403 (celý systém), 110 MHz pouze pro Cache Controller.
  • Blokové RAM byly odvozeny pro hlavní paměť. Všechna ostatní pole byla implementována na LUT.

Krok 4: Připojené soubory

K tomuto blogu jsou připojeny následující soubory:

  • Soubory. VHD Cache Controller, Cache Data Array, Main Memory System.
  • Testovací lavice.
  • Dokumentace k řadiči mezipaměti.

Poznámky:

  • Projděte si dokumentaci, abyste plně porozuměli zde uvedeným specifikacím řadiče mezipaměti.
  • Jakékoli změny v kódu jsou závislé na jiných modulech. Změny by tedy měly být provedeny uvážlivě.
  • Věnujte pozornost všem komentářům a nadpisům, které jsem uvedl.
  • Pokud z nějakého důvodu nejsou blokové paměti RAM odvozeny pro hlavní paměť, SNÍŽTE velikost paměti, následované změnami šířek adresové sběrnice napříč soubory atd. Stejnou paměť lze tedy implementovat buď na LUT nebo na distribuovanou RAM. Tím ušetříte čas a prostředky směrování. Nebo přejděte na konkrétní dokumentaci FPGA, najděte kompatibilní kód pro Block RAM a podle toho upravte kód a použijte stejné specifikace šířky adresové sběrnice. Stejná technika pro Altera FPGA.

Doporučuje: