Tartalomjegyzék:

Egyszerű négyirányú készlet asszociatív gyorsítótár-vezérlő tervezése VHDL-ben: 4 lépés
Egyszerű négyirányú készlet asszociatív gyorsítótár-vezérlő tervezése VHDL-ben: 4 lépés

Videó: Egyszerű négyirányú készlet asszociatív gyorsítótár-vezérlő tervezése VHDL-ben: 4 lépés

Videó: Egyszerű négyirányú készlet asszociatív gyorsítótár-vezérlő tervezése VHDL-ben: 4 lépés
Videó: fischer pórusbeton horgony FPX-I 2024, Június
Anonim
Egyszerű négyirányú készlet asszociatív gyorsítótár-vezérlő tervezése VHDL-ben
Egyszerű négyirányú készlet asszociatív gyorsítótár-vezérlő tervezése VHDL-ben

Korábbi utasításomban láttuk, hogyan kell megtervezni egy egyszerű közvetlen leképezett gyorsítótár -vezérlőt. Ezúttal egy lépéssel előre lépünk. Egy egyszerű négyirányú asszociatív gyorsítótár-vezérlőt tervezünk. Előny? Kevesebb kihagyási arány, de a teljesítmény árán. Csakúgy, mint az előző blogom, egy teljes processzort, fő memóriát és gyorsítótár -környezetet tervezünk és emulálunk a gyorsítótár -vezérlő teszteléséhez. Remélem, srácok ezt hasznos referenciaként fogják fel a fogalmak megértéséhez és a saját gyorsítótár -vezérlők megtervezéséhez a jövőben. Mivel a processzor (tesztpad) modellje és a fő memóriarendszer pontosan megegyezik az előző blogommal, nem fogom újra elmagyarázni őket. Kérjük, olvassa el az előző utasításban a részleteket ezzel kapcsolatban.

1. lépés: Specifikációk

Specifikációk
Specifikációk

Gyors áttekintés az itt bemutatott gyorsítótár -vezérlő specifikációiban:

  • Négyirányú asszociatív gyorsítótár-vezérlő (kattintson erre a linkre, ha közvetlen leképezett gyorsítótár-vezérlőt keres).
  • Egy bankos, blokkoló gyorsítótár.
  • Írási találatok írási irányelvei.
  • Írási kör szabályok az írási hibákról.
  • A fa ál-LRU (pLRU) cserepolitikája.
  • Tag Array a vezérlőn belül.
  • Konfigurálható paraméterek.

A gyorsítótár -memória és a fő memória alapértelmezett adatai megegyeznek az előző utasításommal. Kérjük, hivatkozzon rájuk.

2. lépés: A teljes rendszer RTL nézete

A teljes rendszer RTL nézete
A teljes rendszer RTL nézete

A felső modul teljes RTL -ábrázolása az ábrán látható (a processzor kivételével). A buszok alapértelmezett paraméterei a következők:

  • Minden adatbusz 32 bites busz.
  • Címbusz = 32 bites busz (de a memória itt csak 10 bitet címezhet).
  • Adatblokk = 128 bit (széles sávszélességű busz olvasáshoz).
  • Minden alkatrészt ugyanaz az óra hajt.

3. lépés: Vizsgálati eredmények

A felső modult egy tesztpad segítségével tesztelték, amely egyszerűen egy nem csővezetékes processzort modellez, ugyanúgy, mint az utolsó utasításban. A tesztpad gyakran generál olvasási/írási kéréseket a memóriába. Ez csúfolja a tipikus "Load" és "Store" utasításokat, amelyek minden processzor által végrehajtott programban gyakoriak.

A teszteredmények sikeresen ellenőrizték a Cache Controller működését. Az alábbiakban a vizsgált statisztikák láthatók:

  • Minden olvasási/írási hiányzó és találati jel helyesen lett generálva.
  • Az összes olvasási/írási művelet mind a négy módon sikeres volt.
  • A pLRU algoritmus sikeresen ellenőrizve van a gyorsítótár sorainak cseréjéhez.
  • Nem észleltek adatkonkoherencia/következetlenségi problémákat.
  • A tervezést sikeresen ellenőrizték a Maxm -hez. Óra Működési frekvencia = 100 MHz Xilinx Virtex-4 ML-403 kártyán (teljes rendszer), 110 MHz csak a gyorsítótár-vezérlőnél.
  • A blokk -RAM -okat a fő memóriára következtették. Az összes többi tömb LUT -on valósult meg.

4. lépés: Csatolt fájlok

Ehhez a bloghoz a következő fájlok vannak csatolva:

  • . HD fájlok a Cache Controller, Cache Data Array, Main Memory System.
  • Próbapad.
  • Dokumentáció a Cache Controllerről.

Megjegyzések:

  • Olvassa el a dokumentációt, hogy teljes mértékben megértse az itt bemutatott gyorsítótár -vezérlő specifikációit.
  • A kód bármilyen módosítása más moduloktól függ. Tehát a változtatásokat megfontoltan kell végrehajtani.
  • Figyeljen az összes megjegyzésre és fejlécre, amelyeket adtam.
  • Ha valamilyen oknál fogva a blokk -RAM -ok nem következtetnek a fő memóriára, CSÖKKENTJE a memória méretét, majd a címsín szélességének változása a fájlokban és így tovább. Így ugyanaz a memória megvalósítható akár LUT -okon, akár elosztott RAM -on. Ez időt és erőforrásokat takarít meg. Vagy keresse fel az adott FPGA dokumentációt, és keresse meg a kompatibilis kódot a RAM blokkolásához, és ennek megfelelően szerkessze a kódot, és használja ugyanazokat a címbusz -szélességi előírásokat. Ugyanez a technika az Altera FPGA -knál.

Ajánlott: