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

U mojim prethodnim uputama vidjeli smo kako dizajnirati jednostavan kontroler predmemorije s izravnim preslikavanjem. Ovaj put idemo korak naprijed. Dizajnirat ćemo jednostavan četverosmjerni set asocijativnih kontrolera predmemorije. Prednost? Manje propuštanja, ali po cijenu performansi. Baš kao i na mom prethodnom blogu, dizajnirali bismo i emulirali cijeli procesor, glavnu memoriju i predmemoriju kako bismo testirali naš predmemorski kontroler. Nadam se da ćete ovo smatrati korisnom referencom za razumijevanje koncepata i oblikovanje vlastitih kontrolera predmemorije u budućnosti. Budući da su model procesora (testni sto) i glavni memorijski sustav potpuno isti kao i na mom prethodnom blogu, neću ih ponovno objašnjavati. Za detalje u vezi s tim pogledajte prethodna uputstva.
Korak 1: Specifikacije

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

Cjeloviti RTL prikaz gornjeg modula prikazan je na slici (isključujući procesor). Zadane specifikacije za autobuse su:
- Svi podatkovni sabirnici su 32-bitni sabirnici.
- Adresna sabirnica = 32-bitna sabirnica (ali memorija može adresirati samo 10 bita).
- Blok podataka = 128 bita (sabirnica široke propusnosti za čitanje).
- Sve komponente pokreću isti sat.
Korak 3: Rezultati ispitivanja
Vrhunski modul testiran je pomoću Test Bencha, koji jednostavno modelira procesor bez cjevovoda, baš kao što smo to učinili u prošloj uputi. 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 ispitivanja uspješno su potvrdili funkcionalnost Cache Controllera. Slijedi statistika ispitivanja:
- Svi signali propuštanja i pisanja čitanja/pisanja ispravno su generirani.
- Sve operacije čitanja/pisanja podataka bile su uspješne na sva četiri načina.
- pLRU algoritam uspješno je verificiran za zamjenu linija predmemorije.
- Nisu otkriveni problemi nekoherentnosti/nedosljednosti podataka.
- Dizajn je uspješno provjerio vrijeme za Maxm. Sat Frekvencija rada = 100 MHz na Xilinx Virtex-4 ML-403 ploči (cijeli sustav), 110 MHz samo za Cache Controller.
- Za glavnu memoriju zaključeno je da su blokirani RAM -ovi. Svi ostali nizovi implementirani su na LUT -ovima.
Korak 4: Priložene datoteke
Sljedeće datoteke su priložene ovdje uz ovaj blog:
- . VHD datoteke Cache Controllera, Cache Data Array, Main Memory System.
- Testna klupa.
- Dokumentacija o Cache Controller -u.
Bilješke:
- 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 se iz bilo kojeg razloga ne blokiraju RAM -ovi za glavnu memoriju, 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 ili distribuiranoj RAM -u. Time ćete uštedjeti vrijeme i resurse usmjeravanja. Ili idite na posebnu dokumentaciju o FPGA -i 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čeni:
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 vam momci što ste posjetili moj blog i motivirali me da svoje znanje podijelim s vama. Ovaj put ću predstaviti dizajn još jednog zanimljivog modula koji vidimo u svim SOC -ovima - Interrupt C
Dizajn jednostavnog upravljača predmemorijom u VHDL -u: 4 koraka

Dizajn jednostavnog upravljača predmemorijom 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 projektiranje 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 majstora 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 digitalni sklop dizajniran za pogon VGA zaslona. Č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