Satura rādītājs:

Vienkārša kešatmiņas kontroliera dizains VHDL: 4 soļi
Vienkārša kešatmiņas kontroliera dizains VHDL: 4 soļi

Video: Vienkārša kešatmiņas kontroliera dizains VHDL: 4 soļi

Video: Vienkārša kešatmiņas kontroliera dizains VHDL: 4 soļi
Video: Gaming telefons ar mākslīgo intelektu? | Konsumer #apskats 2024, Jūnijs
Anonim
Vienkārša kešatmiņas kontroliera dizains VHDL
Vienkārša kešatmiņas kontroliera dizains VHDL

Es rakstu šo pamācību, jo man bija nedaudz grūti iegūt kādu atsauces VHDL kodu, lai uzzinātu un sāktu veidot kešatmiņas kontrolieri. Tāpēc es pats no jauna izveidoju kešatmiņas kontrolieri un veiksmīgi to pārbaudīju FPGA. Šeit esmu iepazīstinājis ar vienkāršu tieši kartētu kešatmiņas kontrolieri, kā arī modelējis visu procesora-atmiņas sistēmu, lai pārbaudītu kešatmiņas kontrolieri. Es ceru, ka jums, puiši, šī pamācība ir noderīga kā atsauce, lai izstrādātu savus kešatmiņas kontrolierus.

1. darbība: specifikācijas

Specifikācijas
Specifikācijas

Šīs ir galvenās kešatmiņas kontroliera specifikācijas, kuras mēs izstrādāsim:

  • Tieši kartēts. (dodieties uz šo saiti, ja meklējat Associative Mapped Cache Controller)
  • Viena banka, bloķējoša kešatmiņa.
  • Rakstīšanas politika rakstīšanas trāpījumos.
  • Nerakstīšanas piešķiršana vai rakstīšanas apkārtējā politika rakstīšanas laikā.
  • Nav rakstīšanas bufera vai citu optimizāciju.
  • Tagu masīvs ir iekļauts.

Bez tam mēs izstrādāsim arī kešatmiņu un galveno atmiņas sistēmu.

Kešatmiņas noklusējuma (konfigurējamas) specifikācijas:

  • 256 baiti vienas bankas kešatmiņa.
  • 16 kešatmiņas līnijas, katra kešatmiņas līnija (bloks) = 16 baiti.

Galvenās atmiņas specifikācijas:

  • Sinhronā lasīšanas/rakstīšanas atmiņa.
  • Multi -banked Interleaved Memory - četras atmiņas bankas.
  • Katras bankas lielums = 1 kB. Tādējādi kopējais izmērs = 4 kB.
  • Word (4 baiti) adresējama atmiņa ar 10 bitu adreses kopni.
  • Lielāks joslas platums lasīšanai. Nolasīt datu platumu = 16 baiti vienā pulksteņa ciklā.
  • Rakstīšanas datu platums = 4 baiti.

PIEZĪME: pārbaudiet manu jaunāko pamācību, ja meklējat četrvirzienu asociatīvā kešatmiņas kontroliera dizainu

2. darbība: visas sistēmas RTL skats

RTL skats uz visu sistēmu
RTL skats uz visu sistēmu

Pilns augšējā moduļa RTL attēlojums ir parādīts attēlā (izņemot procesoru). Autobusu noklusējuma specifikācijas ir šādas:

  • Visi datu autobusi ir 32 bitu autobusi.
  • Adreses kopne = 32 bitu kopne (bet atmiņa šeit ir adresējama tikai 10 bitiem).
  • Datu bloks = 128 biti (plaša joslas platuma kopne lasīšanai).
  • Visas sastāvdaļas darbina viens un tas pats pulkstenis.

3. darbība: pārbaudiet vidi

Augšējais modulis tika pārbaudīts, izmantojot testa stendu, kas vienkārši modelē procesoru, kas nav cauruļvads (jo visa procesora projektēšana nemaz nav vienkārša!). Testa stends bieži ģenerē lasīšanas/rakstīšanas datu pieprasījumus atmiņā. Tas izsmej tipiskas "ielādes" un "veikala" instrukcijas, kas ir izplatītas visās programmās, kuras izpilda procesors. Testa rezultāti veiksmīgi pārbaudīja kešatmiņas kontroliera funkcionalitāti. Tālāk ir novērota testa statistika:

  • Visi lasīšanas/rakstīšanas garām un trāpījuma signāli tika ģenerēti pareizi.
  • Visas datu lasīšanas/rakstīšanas operācijas bija veiksmīgas.
  • Nav konstatētas datu neatbilstības/neatbilstības problēmas.
  • Dizains tika veiksmīgi pārbaudīts maksimālajam laikam. Pulkstenis Darbības biežums = 110 MHz Xilinx Virtex-4 ML-403 panelī (visa sistēma), 195 MHz tikai kešatmiņas kontrolierim.
  • Galvenajai atmiņai tika secināti bloķētie RAM. Visi pārējie masīvi tika ieviesti LUT.

4. darbība. Pievienotie faili

Šim emuāram ir pievienoti šādi faili:

  • Kešatmiņas kontroliera, kešatmiņas datu masīva, galvenās atmiņas sistēmas. VHD faili.
  • Pārbaudes stends.
  • Dokumentācija par kešatmiņas kontrolieri.

Piezīmes:

  • Izpētiet dokumentāciju, lai pilnībā izprastu šeit piedāvātās kešatmiņas kontroliera specifikācijas.
  • Jebkuras koda izmaiņas ir atkarīgas no citiem moduļiem. Tāpēc izmaiņas jāveic saprātīgi. Pievērsiet uzmanību visiem maniem komentāriem un galvenēm.
  • Ja kāda iemesla dēļ galvenajai atmiņai netiek izsecināti bloķētie operatīvie operatīvie atmiņas, MAZINIET atmiņas apjomu, kam seko adrešu kopnes platuma izmaiņas failos utt. Lai to pašu atmiņu varētu ieviest vai nu LUT, vai sadalītā RAM. Tas ietaupīs maršrutēšanas laiku un resursus. Vai arī dodieties uz īpašo FPGA dokumentāciju un atrodiet saderīgu kodu bloķēt RAM un attiecīgi rediģējiet kodu un izmantojiet tās pašas adreses kopnes platuma specifikācijas. Tāda pati tehnika Altera FPGA.

Ieteicams: