
Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37

U mom prethodnom uputstvu vidjeli smo kako dizajnirati jednostavan kontroler predmemorije s direktnim mapiranjem. Ovaj put idemo korak dalje. Dizajnirat ćemo jednostavan četverosmjerni set asocijativnih kontrolera predmemorije. Prednost? Manje grešaka, ali po cijenu performansi. Baš kao i na mom prethodnom blogu, dizajnirali bismo i emulirali cijeli procesor, glavnu memoriju i okruženje predmemorije kako bismo testirali naš predmemorski kontroler. Nadam se da ćete ovo smatrati korisnom referencom za razumijevanje koncepata i dizajniranje vlastitih kontrolera predmemorije u budućnosti. Budući da su model za procesor (testni sto) i glavni memorijski sistem potpuno isti kao i na mom prethodnom blogu, neću ih ponovo objašnjavati. Za detalje o tome pogledajte prethodna uputstva.
Korak 1: Specifikacije

Brzo pogledajte specifikacije Cache Controllera predstavljene ovdje:
- Četverosmjerni set pridruženog kontrolera predmemorije (idite na ovu vezu ako tražite kontroler izravno preslikanog predmemorije).
- Jednoručni, predmemorija koja blokira.
- Politika pisanja o uspjesima pisanja.
- Politika pisanja oko pogrešaka pri pisanju.
- Politika zamjene pseudo-LRU (pLRU) stabla.
- Tag Array unutar kontrolera.
- Parametri koji se mogu konfigurirati.
Zadane specifikacije za keš memoriju i glavnu memoriju iste su kao u mojim prethodnim uputama. Obratite im se.
Korak 2: RTL pogled na cijeli sistem

Kompletan RTL prikaz gornjeg modula prikazan je na slici (isključujući procesor). Zadane specifikacije za autobuse su:
- Sve sabirnice podataka su 32-bitne sabirnice.
- Adresna magistrala = 32-bitna sabirnica (ali memorija može adresirati samo 10 bita).
- Blok podataka = 128 bita (sabirnica širokog propusnog opsega za čitanje).
- Sve komponente pokreću isti sat.
Korak 3: Rezultati testa
Vrhunski modul je testiran pomoću Test Bench-a, koji jednostavno modelira procesor bez cjevovoda, baš kao što smo to radili u prošlim uputama. Testna ploča često generira zahtjeve za čitanje/pisanje podataka u memoriju. Ovo ismijava tipične upute "Učitaj" i "Spremi", uobičajene u svim programima koje izvodi procesor.
Rezultati testa uspješno su potvrdili funkcionalnost Cache Controllera. Slijedi statistika testa:
- Svi propušteni i hitni signali za čitanje/pisanje pravilno su generirani.
- Sve operacije čitanja/pisanja podataka bile su uspješne na sva četiri načina.
- pLRU algoritam je uspješno verifikovan za zamjenu linija predmemorije.
- Nisu otkriveni problemi nekoherentnosti/nedosljednosti podataka.
- Dizajn je uspješno verificiran za Maxm. Takt Frekvencija rada = 100 MHz na Xilinx Virtex-4 ML-403 ploči (cijeli sistem), 110 MHz samo za Cache Controller.
- Za glavnu memoriju zaključeno je da su blokirani RAM -ovi. Svi ostali nizovi su implementirani na LUT -ovima.
Korak 4: Priložene datoteke
Sljedeći fajlovi su priloženi ovdje uz ovaj blog:
- . VHD datoteke Cache Controllera, Cache Data Array, Main Memory System.
- Test Bench.
- Dokumentacija o Cache Controller -u.
Napomene:
- Pregledajte dokumentaciju za potpuno razumijevanje ovdje prikazanih specifikacija Cache Controllera.
- Sve promjene u kodu ovise o drugim modulima. Dakle, promjene treba obaviti razumno.
- Obratite pažnju na sve komentare i zaglavlja koja sam dao.
- Ako iz bilo kojeg razloga za glavnu memoriju nije zaključeno blokiranje RAM -a, SMANJITE veličinu memorije, nakon čega slijede promjene širine sabirnice adresa po datotekama itd. Tako da se ista memorija može implementirati bilo na LUT -ovima bilo na distribuiranoj RAM -u. Ovo će uštedjeti vrijeme i resurse usmjeravanja. Ili idite na posebnu FPGA dokumentaciju i pronađite kompatibilan kod za Blokiranje RAM -a i prema tome uredite kôd te upotrijebite iste specifikacije širine sabirnice adresa. Ista tehnika za Altera FPGAs.
Preporučuje se:
Dizajn programabilnog kontrolera prekida u VHDL -u: 4 koraka

Dizajn programabilnog kontrolera prekida u VHDL -u: Oduševljen sam vrstama odgovora koje dobivam na ovom blogu. Hvala momci što ste posjetili moj blog i motivirali me da podijelim svoje znanje s vama. Ovaj put ću predstaviti dizajn još jednog zanimljivog modula koji vidimo u svim SOC -ovima - Interrupt C
Dizajn jednostavnog kontrolera predmemorije u VHDL -u: 4 koraka

Dizajn jednostavnog kontrolera predmemorije u VHDL -u: Pišem ovo uputstvo, jer mi je bilo malo teško nabaviti neki referentni VHDL kôd za učenje i započeti dizajniranje kontrolera predmemorije. Stoga sam sam dizajnirao predmemorijski kontroler od nule i uspješno ga testirao na FPGA. Imam p
Dizajn I2C Master u VHDL -u: 5 koraka

Dizajn I2C Master -a u VHDL -u: U ovom uputstvu se raspravlja o dizajniranju jednostavnog I2C master -a u VHDL -u. NAPOMENA: kliknite na svaku sliku da biste vidjeli cijelu sliku
Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu: 5 koraka

Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu: U ovom uputstvu ćemo dizajnirati jednostavan VGA kontroler u RTL -u. VGA kontroler je digitalno kolo dizajnirano za pogon VGA ekrana. Čita iz Frame Buffer -a (VGA memorija) koji predstavlja okvir za prikaz i generira potrebno
Dizajn SPI Master -a u VHDL -u: 6 koraka

Dizajn SPI Master -a u VHDL -u: U ovom uputstvu, dizajnirat ćemo SPI Bus Master od nule u VHDL -u