Obsah:
- Krok 1: Specifikace
- Krok 2: RTL pohled na celý systém
- Krok 3: Výsledky testu
- Krok 4: Připojené soubory
Video: Návrh jednoduchého čtyřcestného řadiče asociativní mezipaměti ve VHDL: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
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
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
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:
Adaptér řadiče Sega Genesis na USB za kroky 2: 4 USD
Adaptér řadiče Sega Genesis na USB za 2 $: Tento adaptér umožňuje ovladač Sega Genesis / Mega Drive emulovat duální gamepady XBox 360 pro použití s retroarchem nebo jiným softwarem. Pro elektroniku používá modrou pilulku stm32f103c8t6 kompatibilní s Arduino. Složení: stm32f103c8t6 blue pilltwo DB9 m
Návrh programovatelného řadiče přerušení ve VHDL: 4 kroky
Návrh programovatelného řadiče přerušení ve VHDL: Jsem ohromen druhem odpovědí, které dostávám v tomto blogu. Díky, lidi, že jste navštívili můj blog a motivovali mě, abych se s vámi podělil o své znalosti. Tentokrát představím návrh dalšího zajímavého modulu, který vidíme ve všech SOC - Interrupt C
Návrh jednoduchého řadiče mezipaměti ve VHDL: 4 kroky
Návrh jednoduchého řadiče mezipaměti ve VHDL: Píši tento návod, protože jsem zjistil, že je trochu obtížné získat nějaký referenční kód VHDL, abych se naučil a začal navrhovat řadič mezipaměti. Navrhl jsem tedy řadič mezipaměti sám od nuly a úspěšně jej otestoval na FPGA. Mám p
Design jednoduchého VGA řadiče ve VHDL a Verilog: 5 kroků
Návrh jednoduchého VGA řadiče ve VHDL a Verilogu: V tomto návodu navrhneme jednoduchý VGA řadič v RTL. VGA Controller je digitální obvod navržený pro řízení VGA displejů. Čte z vyrovnávací paměti snímků (paměť VGA), která představuje snímek, který má být zobrazen, a generuje potřebný
Návrh UART ve VHDL: 5 kroků
Design UART in VHDL: UART znamená Universal Asynchronous Receiver Transmitter. Je to nejpopulárnější a nejjednodušší sériový komunikační protokol. V tomto návodu se naučíte, jak navrhnout modul UART ve VHDL