Përmbajtje:

Dizajnimi i një Kontrolluesi të Simuluar të Cache Asociative me Katër Drejtime në VHDL: 4 Hapa
Dizajnimi i një Kontrolluesi të Simuluar të Cache Asociative me Katër Drejtime në VHDL: 4 Hapa

Video: Dizajnimi i një Kontrolluesi të Simuluar të Cache Asociative me Katër Drejtime në VHDL: 4 Hapa

Video: Dizajnimi i një Kontrolluesi të Simuluar të Cache Asociative me Katër Drejtime në VHDL: 4 Hapa
Video: CS50 2015 - Week 9 2024, Dhjetor
Anonim
Dizajnimi i një Kontrolluesi të Thjeshtë të Asociuar të Cache me katër drejtime në VHDL
Dizajnimi i një Kontrolluesi të Thjeshtë të Asociuar të Cache me katër drejtime në VHDL

Në udhëzimet e mia të mëparshme, ne pamë se si të krijojmë një kontrollues të thjeshtë të cache të hartuar drejtpërdrejt. Këtë herë, ne bëjmë një hap përpara. Ne do të krijojmë një kontrollues të thjeshtë të asociuar të cache me katër drejtime. Avantazh? Më pak humbje, por me koston e performancës. Ashtu si blogu im i mëparshëm, ne do të krijonim dhe imitonim një procesor të tërë, memorie kryesore dhe mjedis cache për të testuar kontrolluesin tonë të cache. Shpresoj që ju ta gjeni këtë si një referencë të dobishme për të kuptuar konceptet dhe për të hartuar kontrolluesit tuaj të cache në të ardhmen. Meqenëse modeli për procesorin (stola e provës) dhe sistemi kryesor i kujtesës janë saktësisht të njëjta me blogun tim të mëparshëm, nuk do t'i shpjegoj përsëri. Ju lutemi referojuni udhëzimit të mëparshëm për detaje në lidhje me të.

Hapi 1: Specifikimet

Specifikimet
Specifikimet

Shikoni shpejt përmes specifikimeve të Kontrolluesit të Cache të paraqitur këtu:

  • Kontrolluesi i Asociativit të Cache-it me katër drejtime (shkoni te kjo lidhje nëse kërkoni Kontrollues Cache të Hartuar Direkt).
  • Single-Banked, Blocking Cache.
  • Shkruajeni Politikën e Shkrimit të Hiteve.
  • Shkruaj-Rreth Politikës për shkrimet e gabimeve.
  • Politika e Zëvendësimit të Pemëve Pseudo-LRU (pLRU).
  • Etiketa Array brenda kontrolluesit.
  • Parametrat e konfigurueshëm.

Karakteristikat e paracaktuara për Cache Memory dhe Main Memory janë të njëjta me ato të mëparshme të mësueshme. Ju lutemi referojuni atyre.

Hapi 2: Pamja RTL e të gjithë sistemit

Pamja RTL e të gjithë sistemit
Pamja RTL e të gjithë sistemit

Paraqitja e plotë RTL e Modulit të Lartë është treguar në Figurë (duke përjashtuar procesorin). Karakteristikat e paracaktuara për autobusët janë:

  • Të gjitha autobusët e të dhënave janë autobusë 32-bit.
  • Bus Bus Adresa = Bus 32-bit (Por vetëm 10 bit janë të adresueshëm këtu nga Memoria).
  • Blloku i të dhënave = 128 bit (Autobus me gjerësi brezi për lexim).
  • Të gjithë përbërësit drejtohen nga e njëjta orë.

Hapi 3: Rezultatet e testit

Moduli i lartë u testua duke përdorur një Test Bench, i cili thjesht modelon një Procesor jo të tubacioneve, ashtu siç bëmë në udhëzuesin e fundit. Pankina e Testimit gjeneron kërkesa për të lexuar/shkruar të dhëna në kujtesë shpesh. Kjo tallet me udhëzimet tipike "Load" dhe "Store", të zakonshme në të gjitha programet e ekzekutuara nga një procesor.

Rezultatet e testit verifikuan me sukses funksionalitetin e Cache Controller. Më poshtë janë statistikat e testimit të vëzhguara:

  • Të gjitha sinjalet Lexo/Shkruaj Miss dhe Hit u krijuan në mënyrë korrekte.
  • Të gjitha operacionet e leximit/shkrimit të të dhënave ishin të suksesshme në të katër mënyrat.
  • Algoritmi pLRU është verifikuar me sukses për zëvendësimin e linjave të cache.
  • Nuk u zbuluan probleme të mospërputhjes/mospërputhjes së të dhënave.
  • Dizajni u verifikua me sukses për një Maxm. Frekuenca e orës së funksionimit = 100 MHz në bordin Xilinx Virtex-4 ML-403 (i gjithë sistemi), 110 MHz vetëm për Cache Controller.
  • RAM -et e bllokut u konkluduan për Kujtesën Kryesore. Të gjitha vargjet e tjera u zbatuan në LUT.

Hapi 4: Skedarët e bashkangjitur

Skedarët e mëposhtëm janë bashkangjitur këtu me këtë blog:

  • . Skedarët VHD të Cache Controller, Cache Data Array, Main Memory System.
  • Stol provë.
  • Dokumentacioni mbi Cache Controller.

Shënime:

  • Kaloni nëpër dokumentacionin për të kuptuar plotësisht specifikimet e Cache Controller të paraqitur këtu.
  • Çdo ndryshim në kod ka varësi nga modulet e tjerë. Pra, ndryshimet duhet të bëhen me maturi.
  • Kushtojini vëmendje të gjitha komenteve dhe titujve që kam dhënë.
  • Nëse për ndonjë arsye, RAM -et e Bllokut nuk konkludohen për Kujtesën Kryesore, Zvogëloni madhësinë e kujtesës, e ndjekur nga ndryshimet në gjerësinë e autobusit të adresave nëpër skedarë etj. Kështu që e njëjta memorie mund të zbatohet ose në LUT ose RAM të shpërndarë. Kjo do të kursejë kohën dhe burimet e drejtimit. Ose, Shkoni te dokumentacioni specifik FPGA dhe gjeni kodin e përputhshëm për Block RAM dhe modifikoni kodin në përputhje me rrethanat, dhe përdorni të njëjtat specifikime të gjerësisë së autobusit të adresave. E njëjta teknikë për Altera FPGA.

Recommended: