Sisällysluettelo:

Yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen suunnittelu VHDL: ssä: 4 vaihetta
Yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen suunnittelu VHDL: ssä: 4 vaihetta

Video: Yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen suunnittelu VHDL: ssä: 4 vaihetta

Video: Yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen suunnittelu VHDL: ssä: 4 vaihetta
Video: Yksinkertaisen säkkipilli 2024, Joulukuu
Anonim
Yksinkertaisen nelisuuntaisen assosiatiivisen välimuistiohjaimen suunnittelu VHDL: ssä
Yksinkertaisen nelisuuntaisen assosiatiivisen välimuistiohjaimen suunnittelu VHDL: ssä

Aiemmassa ohjeessani näimme kuinka suunnitella yksinkertainen suoraan kartoitettu välimuistiohjain. Tällä kertaa mennään askel eteenpäin. Suunnittelemme yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen. Etu? Vähemmän menetysprosenttia, mutta suorituskyvyn hinnalla. Aivan kuten edellinen blogini, suunnittelimme ja emuloimme koko prosessorin, päämuistin ja välimuistiympäristön testataksemme välimuistiohjaimemme. Toivon, että pidätte tätä hyödyllisenä viittauksena käsitteiden ymmärtämiseen ja omien välimuistiohjainten suunnitteluun tulevaisuudessa. Koska prosessorin malli (testipenkki) ja päämuistijärjestelmä ovat täsmälleen samat kuin edellinen blogini, en aio selittää niitä uudelleen. Katso lisätietoja edellisestä ohjeesta.

Vaihe 1: Tekniset tiedot

Tekniset tiedot
Tekniset tiedot

Katso nopeasti tässä esitetyt välimuistiohjaimen tekniset tiedot:

  • Nelisuuntainen yhdistetyn välimuistin ohjain (siirry tästä linkistä, jos etsit suoraa kartoitettua välimuistiohjainta).
  • Yhden pankin estovälimuisti.
  • Kirjoituskäytäntö kirjoitusosumille.
  • Kirjoituspolitiikka kirjoitusvirheitä varten.
  • Pseudo-LRU (pLRU) -puun korvauskäytäntö.
  • Tag Array ohjaimessa.
  • Konfiguroitavat parametrit.

Välimuistin ja päämuistin oletusasetukset ovat samat kuin edellisessä ohjeessani. Viitatkaa niihin.

Vaihe 2: RTL -näkymä koko järjestelmästä

RTL -näkymä koko järjestelmästä
RTL -näkymä koko järjestelmästä

Kuvassa on esitetty ylämoduulin täydellinen RTL -esitys (lukuun ottamatta prosessoria). Bussien oletusasetukset ovat:

  • Kaikki tietoväylät ovat 32-bittisiä.
  • Osoiteväylä = 32-bittinen väylä (mutta vain 10 bittiä voidaan käsitellä täällä muistilla).
  • Datalohko = 128 bittiä (laajakaistainen väylä lukemista varten).
  • Kaikkia komponentteja ohjaa sama kello.

Vaihe 3: Testitulokset

Ylämoduulia testattiin käyttämällä testipenkkiä, joka yksinkertaisesti mallinnetaan ei-putkiprosessoria, aivan kuten teimme viime ohjeessa. Testipenkki luo luku-/kirjoitusdatapyyntöjä muistiin usein. Tämä pilkkaa tyypillisiä "Lataa" ja "Tallenna" -ohjeita, jotka ovat yleisiä kaikissa suorittimen suorittamissa ohjelmissa.

Testitulokset varmistivat välimuistiohjaimen toimivuuden. Seuraavat testitilastot ovat havaittuja:

  • Kaikki luku-/kirjoitushäiriö- ja osuma -signaalit luotiin oikein.
  • Kaikki luku-/kirjoitusdatatoiminnot onnistuivat kaikilla neljällä tavalla.
  • pLRU -algoritmi on vahvistettu onnistuneesti välimuistilinjojen korvaamiseksi.
  • Tietojen epäjohdonmukaisuus-/epäjohdonmukaisuusongelmia ei havaittu.
  • Suunnittelun ajoitus vahvistettiin onnistuneesti Maxm: lle. Kello Toimintataajuus = 100 MHz Xilinx Virtex-4 ML-403 -kortilla (koko järjestelmä), 110 MHz pelkällä välimuistiohjaimella.
  • Lohkomuistit pääteltiin päämuistia varten. Kaikki muut taulukot toteutettiin LUT -laitteilla.

Vaihe 4: Liitetyt tiedostot

Seuraavat tiedostot on liitetty tähän blogiin:

  • . HDHD -tiedostot välimuistiohjaimesta, välimuistitiedostoista, päämuistijärjestelmästä.
  • Testipenkki.
  • Välimuistiohjaimen dokumentaatio.

Huomautuksia:

  • Käy läpi asiakirjat, jotta ymmärrät täydellisesti tässä esitetyt välimuistiohjaimen tekniset tiedot.
  • Kaikki koodin muutokset ovat riippuvaisia muista moduuleista. Muutokset on siis tehtävä harkiten.
  • Kiinnitä huomiota kaikkiin antamiisi kommentteihin ja otsikoihin.
  • Jos jostain syystä Estä RAM -muistia ei päätellä päämuistia varten, PIENENNÄ muistin kokoa, minkä jälkeen muuttuvat osoiteväylän leveydet tiedostoissa ja niin edelleen. Jotta sama muisti voidaan toteuttaa joko LUT -laitteissa tai hajautetussa RAM -muistissa. Tämä säästää reititysaikaa ja resursseja. Tai, siirry tiettyyn FPGA -dokumentaatioon ja etsi yhteensopiva koodi Block RAM -muistiin ja muokkaa koodia vastaavasti ja käytä samoja osoiteväyläleveyksiä. Sama tekniikka Altera FPGA -laitteille.

Suositeltava: