Mündəricat:
- Addım 1: Xüsusiyyətlər
- Addım 2: Bütün Sistemin RTL Görünüşü
- Addım 3: Test Nəticələri
- Addım 4: Əlavə edilmiş fayllar
Video: VHDL-də Sadə Dörd Yollu Assosiativ Keş Nəzarətçisinin Dizaynı: 4 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Əvvəlki təlimatımda, sadə bir xəritəli önbellek nəzarətçisinin necə dizayn ediləcəyini gördük. Bu dəfə bir addım irəli gedirik. Sadə dörd yollu assosiativ önbelleğe nəzarətçi dizayn edəcəyik. Üstünlük? Daha az qaçırma dərəcəsi, amma performans bahasına. Öncəki blogumda olduğu kimi, önbellek nəzarətçimizi sınamaq üçün bütün bir prosessoru, əsas yaddaşı və önbellek mühitini dizayn edib təqlid edərdik. Ümid edirəm ki, uşaqlar bunu anlayışları başa düşmək və gələcəkdə öz önbellek nəzarətçilərinizi hazırlamaq üçün faydalı bir istinad olaraq tapacaqsınız. Prosessor (test dəzgahı) modeli və əsas yaddaş sistemi əvvəlki bloqumla tam eyni olduğundan, bunları bir daha izah etməyəcəyəm. Bununla bağlı ətraflı məlumat üçün zəhmət olmasa əvvəlki təlimata baxın.
Addım 1: Xüsusiyyətlər
Burada təqdim olunan Önbellek Denetleyicisinin xüsusiyyətlərinə sürətli baxın:
- Dörd Yollu Assosiativ Keş Nəzarətçisi (Birbaşa Eşlenen Önbellek Denetleyicisi axtarırsınızsa bu linkə daxil olun).
- Tək Banklı, Bloklama Önbelleği.
- Yazılan hitlərə dair yazma siyasəti.
- Yazma səhvləri ilə əlaqədar Ətraflı Yazma Siyasəti.
- Tree Pseudo-LRU (pLRU) dəyişdirmə siyasəti.
- Nəzarətçi içərisində Etiket Array.
- Konfiqurasiya edilə bilən parametrlər.
Önbellek Yaddaşı və Əsas Yaddaş üçün standart xüsusiyyətlər əvvəlki təlimatımla eynidir. Zəhmət olmasa onlara müraciət edin.
Addım 2: 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: Test Nəticələri
Üst Modul, son təlimatda etdiyimiz kimi, boru kəmərsiz bir Prosessorun modelləri olan bir Test Tezgahı ilə sınaqdan keçirildi. 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ı dörd yolla da uğurlu alındı.
- pLRU alqoritmi önbellek xətlərinin dəyişdirilməsi üçün uğurla təsdiqlənir.
- 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ə 100 MHz (bütün sistem), yalnız Cache Controller üçün 110 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ə:
VHDL -də proqramlaşdırıla bilən kəsilmə nəzarətçisinin dizaynı: 4 addım
VHDL -də proqramlaşdırıla bilən kəsilmə nəzarətçisinin dizaynı: Bu bloqda aldığım cavablar məni boğur. Bloqumu ziyarət etdiyiniz və biliklərimi sizinlə bölüşməyim üçün motivasiya etdiyiniz üçün təşəkkür edirəm. Bu dəfə bütün SOC -da gördüyümüz başqa bir maraqlı modulun dizaynını təqdim edəcəyəm - Interrupt C
VHDL -də sadə bir önbellek nəzarətçisinin dizaynı: 4 addım
VHDL -də Sadə Keş Nəzarətçisinin Dizaynı: Mən bu təlimatı yazıram, çünki bir önbelleğe nəzarətçi dizaynını öyrənmək və dizayn etməyə başlamaq üçün VHDL -ə istinad etmək çətin idi. 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. Məndə p
VHDL və Verilogda sadə bir VGA nəzarətçisinin dizaynı: 5 addım
VHDL və Verilogda Sadə VGA Nəzarətçisinin Dizaynı: Bu təlimatda RTL -də sadə bir VGA Nəzarətçisi dizayn edəcəyik. VGA Controller, VGA ekranlarını idarə etmək üçün hazırlanmış rəqəmsal bir dövrdür. Görüntülən çərçivəni təmsil edən Frame Buferdən (VGA Yaddaş) oxuyur və lazım olanları yaradır
Üç Yollu və Dörd Yollu Şalterlər-Necə İşləyir: 6 Addım
Üç Yollu və Dörd Yollu Şalterlər-Necə Çalışırlar: Üç yollu keçid Instructables.com saytına daxil olanların çoxu üçün çox sadə olsa da, bir çoxları üçün sirrdir. Dövrənin necə işlədiyini başa düşmək marağı təmin edir. Kimsə işləmədiyi üçün işləməyən üç tərəfli keçid diaqnozuna da kömək edə bilər
Arduino üçün sadə iki yollu motor idarəetmə: 4 addım
Arduino üçün sadə 2 yollu Motor İdarəçiliyi: XƏBƏRDARLIQ: Bu bir motoru idarə etmək üçün təhlükəsiz bir yol deyil. Hər bir I/O pin yalnız 40 mA cərəyanı idarə edə bilər. H-Bridge və ya bu xətlər boyunca bir şey istifadə etməyi məsləhət görürəm. Sadə dedikdə, sürət nəzarətindən istifadə etmək istəmirəm. Ancaq motoru birbaşa idarə edin