Satura rādītājs:

Vienkārša četrvirzienu komplekta asociatīvā kešatmiņas kontroliera dizains VHDL: 4 soļi
Vienkārša četrvirzienu komplekta asociatīvā kešatmiņas kontroliera dizains VHDL: 4 soļi

Video: Vienkārša četrvirzienu komplekta asociatīvā kešatmiņas kontroliera dizains VHDL: 4 soļi

Video: Vienkārša četrvirzienu komplekta asociatīvā kešatmiņas kontroliera dizains VHDL: 4 soļi
Video: Neel 51 Trimaran Atlantic Crossing, регата ARC - Эп.1/5 2024, Jūnijs
Anonim
Vienkārša četrvirzienu komplekta asociētā kešatmiņas kontroliera dizains VHDL
Vienkārša četrvirzienu komplekta asociētā kešatmiņas kontroliera dizains VHDL

Iepriekšējā pamācībā mēs redzējām, kā izveidot vienkāršu tieši kartētu kešatmiņas kontrolieri. Šoreiz mēs ejam soli uz priekšu. Mēs izstrādāsim vienkāršu četrvirzienu asociēto kešatmiņas kontrolieri. Priekšrocība ? Mazāk garām, bet par veiktspējas cenu. Tāpat kā mans iepriekšējais emuārs, mēs izstrādāsim un emulēsim visu procesoru, galveno atmiņu un kešatmiņas vidi, lai pārbaudītu mūsu kešatmiņas kontrolieri. Es ceru, ka jūs, puiši, to uzskatāt par noderīgu atsauci, lai izprastu jēdzienus un nākotnē izveidotu savus kešatmiņas kontrolierus. Tā kā procesora modelis (testa stends) un galvenā atmiņas sistēma ir tieši tāds pats kā mans iepriekšējais emuārs, es tos vairs nepaskaidrošu. Lūdzu, skatiet iepriekšējo pamācību, lai iegūtu sīkāku informāciju par to.

1. darbība: specifikācijas

Specifikācijas
Specifikācijas

Ātri apskatiet šeit piedāvātās kešatmiņas kontroliera specifikācijas:

  • Četrvirzienu asociētais kešatmiņas kontrolieris (dodieties uz šo saiti, ja meklējat tieši kartētu kešatmiņas kontrolieri).
  • Viena banka, bloķējoša kešatmiņa.
  • Rakstīšanas politika attiecībā uz rakstīšanas trāpījumiem.
  • Rakstīšanas apkārtrakstīšanas politika attiecībā uz rakstīšanas kļūdām.
  • Koku pseido-LRU (pLRU) nomaiņas politika.
  • Atzīmējiet masīvu kontrolierī.
  • Konfigurējami parametri.

Kešatmiņas un galvenās atmiņas noklusējuma specifikācijas ir tādas pašas kā manā iepriekšējā instrukcijā. Lūdzu, atsaucieties uz tiem.

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. Testa rezultāti

Augšējais modulis tika pārbaudīts, izmantojot testa stendu, kas vienkārši modelē procesoru bez cauruļvada, tāpat kā mēs to darījām pēdējā instrukcijā. 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 visos četros veidos.
  • pLRU algoritms ir veiksmīgi pārbaudīts kešatmiņas līniju nomaiņai.
  • 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 = 100 MHz Xilinx Virtex-4 ML-403 panelī (visa sistēma), 110 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: