Mündəricat:

VHDL -də sadə bir önbellek nəzarətçisinin dizaynı: 4 addım
VHDL -də sadə bir önbellek nəzarətçisinin dizaynı: 4 addım

Video: VHDL -də sadə bir önbellek nəzarətçisinin dizaynı: 4 addım

Video: VHDL -də sadə bir önbellek nəzarətçisinin dizaynı: 4 addım
Video: #Kurikulumun prinsipləri,növləri. Kamranlı Elnurə wp: 055-926-06-36 2024, Noyabr
Anonim
VHDL -də sadə bir önbellek nəzarətçisinin dizaynı
VHDL -də sadə bir önbellek nəzarətçisinin dizaynı

VHDL kodunu öyrənmək və önbelleğe nəzarətçi hazırlamağa başlamaq üçün bir az çətin olduğunu gördüyüm üçün bu təlimatı yazıram. Beləliklə, özüm sıfırdan bir önbelleğe nəzarətçi hazırladım və FPGA -da uğurla sınadım. Burada sadə birbaşa xəritələnmiş önbellek nəzarətçisini təqdim etdim, eyni zamanda önbelleği yoxlamaq üçün bütün bir Prosessor-Yaddaş Sistemini modelləşdirdim. Ümid edirəm uşaqlar, bu önəmli məlumatı öz önbellek kontrollerlerinizi dizayn etmək üçün bir faydalı olaraq tapacaqsınız.

Addım 1: Xüsusiyyətlər

Xüsusiyyətlər
Xüsusiyyətlər

Dizayn edəcəyimiz Cache Controller -in əsas xüsusiyyətləri bunlardır:

  • Birbaşa Xəritəçəkmə. (Assosiativ Mapping Cache Controller axtarırsınızsa bu linkə daxil olun)
  • Tək Banklı, Bloklama Önbelleği.
  • Yazma xitlərində yazma siyasəti.
  • Yazma əldən verməmək üçün Yazma Yoxlama və ya Ətrafına Yazma Siyasəti.
  • Yazı Tamponu və ya digər optimallaşdırmalar yoxdur.
  • Tag Array daxil edilmişdir.

Bundan əlavə, bir Önbellek Yaddaşı və Əsas Yaddaş Sistemi də dizayn edəcəyik.

Önbellek Yaddaşının standart (konfiqurasiya edilə bilən) xüsusiyyətləri:

  • 256 Bayt Tək Banklı Önbellek.
  • 16 Önbellek Xətti, hər Cache Xətti (Blok) = 16 Bayt.

Əsas Yaddaşın xüsusiyyətləri:

  • Sinxron Oxuma/Yazma Yaddaşı.
  • Çox banklı Interleaved Yaddaş - dörd yaddaş bankı.
  • Hər bir bankın ölçüsü = 1 kB. Beləliklə, ümumi ölçü = 4 kB.
  • 10 bitlik ünvan avtobusu ilə Word (4 bayt) ünvanlı yaddaş.
  • Oxumaq üçün daha yüksək bant genişliyi. Məlumat Genişliyi = 16 Bayt bir saat dövrəsində oxuyun.
  • Məlumat Genişliyi = 4 Bayt yazın.

DİQQƏT: 4 tərəfli assosiativ önbelleğe nəzarətçi dizaynı axtarırsınızsa, yeni təlimatımı yoxlayın

Addım 2: Bütün Sistemin RTL Görünüşü

Bütün Sistemin RTL Görünüşü
Bütün Sistemin RTL Görünüşü

Üst Modulun tam RTL nümayişi Şəkildə göstərilmişdir (prosessor istisna olmaqla). Avtobuslar üçün standart xüsusiyyətlər:

  • Bütün Məlumat Avtobusları 32 bitlik Avtobuslardır.
  • Ünvan Avtobusu = 32 bitlik Avtobus (Ancaq burada yalnız 10 bit Yaddaş tərəfindən ünvanlanır).
  • Məlumat Bloku = 128 bit (Oxunmaq üçün Geniş Bant Genişliyi Avtobusu).
  • Bütün komponentlər eyni saatla idarə olunur.

Addım 3: Ətraf mühiti sınayın

Üst Modul, boru kəmərsiz bir prosessoru modelləşdirən bir Test Bench istifadə edərək sınaqdan keçirildi (Çünki bütün prosessorun dizaynı heç də asan deyil !!). Test Bench tez -tez Yaddaşa Məlumat Oxu/Yazma sorğuları yaradır. Bu, prosessor tərəfindən icra edilən bütün proqramlarda ümumi olan "Yüklə" və "Saxla" təlimatlarını lağa qoyur. Test nəticələri Cache Controller funksiyasını uğurla yoxladı. Aşağıda müşahidə olunan test statistikası verilmişdir:

  • Bütün Oxu/Yaz Miss və Hit siqnalları düzgün yaradılmışdır.
  • Bütün Məlumatların Oxunması/Yazılması əməliyyatları uğurlu alındı.
  • Məlumat uyğunsuzluğu/uyğunsuzluq problemi aşkarlanmadı.
  • Dizayn bir Maxm üçün uğurla təsdiqləndi. İşləmə tezliyi = Xilinx Virtex-4 ML-403 lövhəsində 110 MHz (bütün sistem), yalnız Cache Controller üçün 195 MHz.
  • Blok RAM -lar Əsas Yaddaş üçün çıxarıldı. Bütün digər seriallar LUT -lərdə tətbiq edilmişdir.

Addım 4: Əlavə edilmiş fayllar

Aşağıdakı fayllar bu blogla birlikdə burada əlavə olunur:

  • Cache Controller, Cache Data Array, Ana Yaddaş Sisteminin. VHD faylları.
  • Test bench.
  • Cache Controller sənədləri.

Qeydlər:

  • Burada təqdim olunan Önbellek Denetleyicisinin xüsusiyyətlərini tam başa düşmək üçün sənədlərdən keçin.
  • Koddakı hər hansı bir dəyişiklik digər modullardan asılıdır. Buna görə dəyişikliklər ağıllı şəkildə aparılmalıdır. Verdiyim bütün şərhlərə və başlıqlara diqqət yetirin.
  • Hər hansı bir səbəbdən, Blok RAM -lar Əsas Yaddaş üçün nəticə çıxarmırsa, yaddaşın ölçüsünü azaldın, sonra fayllar arasında ünvan avtobusu genişliyində dəyişikliklər edin və s. Eyni yaddaş ya LUT -lərdə, ya da Paylanmış RAM -da tətbiq oluna bilər. Bu, marşrutlaşdırma vaxtına və mənbələrə qənaət edəcəkdir. Və ya xüsusi FPGA sənədlərinə gedin və Block RAM üçün uyğun kodu tapın və buna uyğun olaraq kodu düzəldin və eyni ünvan avtobus genişliyi xüsusiyyətlərindən istifadə edin. Altera FPGA'lar üçün eyni texnika.

Tövsiyə: