Sadržaj:

Dizajn jednostavnog četverosmjernog asocijativnog upravljača predmemorije u VHDL-u: 4 koraka
Dizajn jednostavnog četverosmjernog asocijativnog upravljača predmemorije u VHDL-u: 4 koraka

Video: Dizajn jednostavnog četverosmjernog asocijativnog upravljača predmemorije u VHDL-u: 4 koraka

Video: Dizajn jednostavnog četverosmjernog asocijativnog upravljača predmemorije u VHDL-u: 4 koraka
Video: Section 9 2024, Lipanj
Anonim
Dizajn jednostavnog četverosmjernog asocijativnog upravljača predmemorije u VHDL-u
Dizajn jednostavnog četverosmjernog asocijativnog upravljača predmemorije u VHDL-u

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

Tehnički podaci
Tehnički podaci

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

RTL Pogled na cijeli sustav
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: