INHOUDSOPGAWE:
- Stap 1: Spesifikasies
- Stap 2: RTL -aansig van die hele stelsel
- Stap 3: Toetsresultate
- Stap 4: aangehegte lêers
Video: Ontwerp van 'n eenvoudige vierweg-stel assosiatiewe kasbeheerder in VHDL: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
In my vorige instruksies het ons gesien hoe om 'n eenvoudige direkte gekarteerde kasbeheerder te ontwerp. Hierdie keer beweeg ons 'n stap vorentoe. Ons ontwerp 'n eenvoudige assosiatiewe kasbestuurder met vier rigtings. Voordeel? Minder misvermindering, maar ten koste van prestasie. Net soos my vorige blog, ontwerp en emuleer ons 'n hele verwerker, hoofgeheue en kasomgewing om ons kasbeheerder te toets. Ek hoop dat u dit as 'n nuttige verwysing vind om die konsepte te verstaan en in die toekoms u eie kasbeheerders te ontwerp. Aangesien die model vir verwerker (toetsbank) en die hoofgeheue stelsel presies dieselfde is as my vorige blog, sal ek dit nie weer verduidelik nie. Raadpleeg die vorige instruksies vir meer inligting hieroor.
Stap 1: Spesifikasies
Kyk vinnig na die spesifikasies van die Cache Controller wat hier aangebied word:
- Assosiatiewe kasbestuurder met vier rigtings (gaan na hierdie skakel as u op soek is na Direct Mapped Cache Controller).
- Enkelbank, blokkerende kas.
- Deurleesbeleid oor skryf treffers.
- Skryf-rond beleid oor skryf-missies.
- Tree Pseudo-LRU (pLRU) vervangingsbeleid.
- Tag Array binne die beheerder.
- Opstelbare parameters.
Die standaard spesifikasies vir die kasgeheue en die hoofgeheue is dieselfde as my vorige instruksies. Verwys asseblief na hulle.
Stap 2: RTL -aansig van die hele stelsel
Die volledige RTL -voorstelling van die boonste module word in die figuur getoon (die verwerker uitgesluit). Die standaard spesifikasies vir die busse is:
- Alle databusse is 32-bis-busse.
- Adresbus = 32-bis-bus (maar slegs 10 bisse kan hier deur die geheue aangespreek word).
- Datablok = 128 bis (Wide Bandwidth Bus for Read).
- Alle komponente word deur dieselfde klok aangedryf.
Stap 3: Toetsresultate
Die topmodule is getoets met behulp van 'n toetsbank, wat net 'n nie-pyplynverwerker modelleer, net soos ons in die laaste instruksies gedoen het. Die toetsbank genereer gereeld lees-/skryfdata -versoeke na die geheue. Dit bespot tipiese instruksies "Laai" en "Stoor", wat algemeen voorkom in alle programme wat deur 'n verwerker uitgevoer word.
Die toetsresultate het die funksie van die kasgeheue -kontroleerder suksesvol geverifieer. Hier volg die toetsstatistieke:
- Alle Lees/Skryf Mej en tref seine is korrek gegenereer.
- Alle lees-/skryfdatabewerkings was op al vier maniere suksesvol.
- pLRU -algoritme is suksesvol geverifieer vir die vervanging van kaslyne.
- Geen probleme met onsamehangendheid/inkonsekwentheid van data bespeur nie.
- Die ontwerp is suksesvol vir 'n maksimum tydsberekening van tydsberekening. Klok Gereedheid van werking = 100 MHz in Xilinx Virtex-4 ML-403 Board (hele stelsel), 110 MHz vir Cache Controller alleen.
- Blok -RAM's is vir die hoofgeheue afgelei. Alle ander skikkings is op LUT's geïmplementeer.
Stap 4: aangehegte lêers
Die volgende lêers word hier by hierdie blog aangeheg:
- . VHD -lêers van Cache Controller, Cache Data Array, Hoofgeheue -stelsel.
- Toetsbank.
- Dokumentasie oor kasbestuurder.
Notas:
- Lees die dokumentasie deur vir 'n volledige begrip van die spesifikasies van die Cache Controller wat hier aangebied word.
- Enige veranderinge in die kode is afhanklik van ander modules. Die veranderinge moet dus oordeelkundig gedoen word.
- Gee aandag aan al die opmerkings en opskrifte wat ek gegee het.
- As daar vir een of ander rede geen blok -RAM's vir die hoofgeheue afgelei word nie, VERMINDER die grootte van die geheue, gevolg deur veranderinge in adresbuswydtes oor die lêers, ensovoorts. Sodat dieselfde geheue op LUT's of verspreide RAM geïmplementeer kan word. Dit bespaar die routyd en hulpbronne. Of gaan na die spesifieke FPGA -dokumentasie en vind die versoenbare kode vir Block RAM en wysig die kode dienooreenkomstig, en gebruik dieselfde spesifikasies vir die adresbuswydte. Dieselfde tegniek vir Altera FPGA's.
Aanbeveel:
Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL: 4 stappe
Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL: Ek is oorweldig deur die soort reaksies wat ek op hierdie blog kry. Dankie ouens dat julle my blog besoek het en my gemotiveer het om my kennis met julle te deel. Hierdie keer bied ek die ontwerp aan van nog 'n interessante module wat ons in alle SOC's sien - Interrupt C
Ontwerp van 'n eenvoudige kasbeheerder in VHDL: 4 stappe
Ontwerp van 'n eenvoudige cache -beheerder in VHDL: ek skryf hierdie instruksies, want dit was 'n bietjie moeilik om 'n verwysing -VHDL -kode te kry om te leer en 'n kasbestuurder te begin ontwerp. Ek het dus self 'n kasbeheerder ontwerp en dit met sukses op FPGA getoets. Ek het p
Ontwerp van I2C Master in VHDL: 5 stappe
Ontwerp van I2C Master in VHDL: In hierdie instruksies word die ontwerp van 'n eenvoudige I2C master in VHDL bespreek.OPMERKING: klik op elke prent om die volledige prent te sien
Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog: 5 stappe
Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog: In hierdie instruksies gaan ons 'n eenvoudige VGA -beheerder in RTL ontwerp. VGA Controller is die digitale stroombaan wat ontwerp is om VGA -skerms aan te dryf. Dit word gelees uit die raambuffer (VGA -geheue), wat die raam verteenwoordig wat vertoon moet word, en genereer
Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele: 5 stappe
Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele: Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele