İçindekiler:
Video: VHDL'de Basit Dört Yönlü Küme İlişkili Önbellek Denetleyicisi Tasarımı: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Önceki talimatımda, basit bir doğrudan eşlenmiş önbellek denetleyicisinin nasıl tasarlanacağını gördük. Bu sefer bir adım öne geçiyoruz. Basit bir dört yollu küme ilişkisel önbellek denetleyicisi tasarlayacağız. Avantaj? Daha az kayıp oranı, ancak performans pahasına. Tıpkı önceki blogum gibi, önbellek denetleyicimizi test etmek için tüm işlemciyi, ana belleği ve önbellek ortamını tasarlıyor ve öykünüyor olacaktık. Umarım bunu kavramları anlamak ve gelecekte kendi önbellek denetleyicilerinizi tasarlamak için faydalı bir referans olarak bulursunuz. İşlemci modeli (test tezgahı) ve ana bellek sistemi önceki blogumla tamamen aynı olduğu için onları tekrar açıklamayacağım. Bununla ilgili ayrıntılar için lütfen önceki talimata bakın.
Adım 1: Özellikler
Burada sunulan Önbellek Denetleyicisinin özelliklerine hızlı bir bakış:
- Dört Yönlü Set İlişkili Önbellek Denetleyicisi (Doğrudan Eşlenmiş Önbellek Denetleyicisi arıyorsanız bu bağlantıya gidin).
- Tek Bankalı, Engelleme Önbelleği.
- Yazma isabetlerinde Yazma Politikası.
- Yazma kayıplarına ilişkin Etrafında Yazma Politikası.
- Ağaç Sözde LRU (pLRU) Değiştirme Politikası.
- Denetleyici içindeki Etiket Dizisi.
- Yapılandırılabilir parametreler.
Önbellek ve Ana Bellek için varsayılan özellikler, önceki talimatımdakiyle aynıdır. Lütfen onlara bakın.
Adım 2: Tüm Sistemin RTL Görünümü
Üst Modülün tam RTL gösterimi Şekilde gösterilmektedir (işlemci hariç). Otobüsler için varsayılan özellikler şunlardır:
- Tüm Veri Yolları 32 bit Veri Yollarıdır.
- Adres Yolu = 32-bit Bus (Ancak burada sadece 10 bit Bellek tarafından adreslenebilir).
- Veri Bloğu = 128 bit (Okuma için Geniş Bant Genişliği Veriyolu).
- Tüm bileşenler aynı saat tarafından çalıştırılır.
Adım 3: Test Sonuçları
Üst Modül, tıpkı son talimatta yaptığımız gibi, basit bir şekilde ardışık düzenlenmemiş bir İşlemciyi modelleyen bir Test Tezgahı kullanılarak test edildi. Test Tezgahı, Belleğe sık sık Veri Okuma/Yazma istekleri üretir. Bu, bir işlemci tarafından yürütülen tüm programlarda yaygın olan tipik "Yükle" ve "Depola" talimatlarıyla alay eder.
Test sonuçları, Önbellek Denetleyicisinin işlevselliğini başarıyla doğruladı. Gözlemlenen test istatistikleri aşağıdadır:
- Tüm Okuma/Yazma Iskalama ve Vuruş sinyalleri doğru şekilde oluşturuldu.
- Tüm Okuma/Yazma Verileri işlemleri dört şekilde de başarılı oldu.
- pLRU algoritması, önbellek satırlarının değiştirilmesi için başarıyla doğrulandı.
- Veri tutarsızlığı/tutarsızlık sorunu tespit edilmedi.
- Tasarım, bir Maxm için başarıyla zamanlama doğrulandı. Saat Çalışma Frekansı = Xilinx Virtex-4 ML-403 Board'da (tüm sistem) 100 MHz, yalnızca Önbellek Denetleyicisi için 110 MHz.
- Ana Bellek için blok RAM'ler çıkarıldı. Diğer tüm diziler LUT'lerde uygulandı.
4. Adım: Ekli Dosyalar
Aşağıdaki dosyalar bu blogla birlikte buraya eklenmiştir:
- Önbellek Denetleyicisi, Önbellek Veri Dizisi, Ana Bellek Sisteminin. VHD dosyaları.
- Test tezgahı.
- Önbellek Denetleyicisi ile ilgili belgeler.
Notlar:
- Burada sunulan Önbellek Denetleyicisinin özelliklerini tam olarak anlamak için belgeleri inceleyin.
- Koddaki herhangi bir değişikliğin diğer modüllere bağımlılığı vardır. Bu nedenle, değişiklikler makul bir şekilde yapılmalıdır.
- Verdiğim tüm yorumlara ve başlıklara dikkat edin.
- Herhangi bir nedenle, Ana Bellek için Blok RAM'ler çıkarılmazsa, belleğin boyutunu AZALTIN, ardından dosyalar arasındaki adres veriyolu genişliklerinde değişiklikler vb. Böylece aynı bellek LUT'larda veya Dağıtılmış RAM'de uygulanabilir. Bu, yönlendirme süresinden ve kaynaklardan tasarruf sağlayacaktır. Veya, belirli FPGA belgelerine gidin ve Blok RAM için uyumlu kodu bulun ve buna göre kodu düzenleyin ve aynı adres veri yolu genişliği özelliklerini kullanın. Altera FPGA'lar için aynı teknik.
Önerilen:
Arduino Tabanlı Kendin Yap Oyun Denetleyicisi - Arduino PS2 Oyun Denetleyicisi - DIY Arduino Gamepad ile Tekken Oynamak: 7 Adım
Arduino Tabanlı Kendin Yap Oyun Denetleyicisi | Arduino PS2 Oyun Denetleyicisi | Tekken'i DIY Arduino Gamepad ile Oynamak: Merhaba arkadaşlar, oyun oynamak her zaman eğlencelidir ama kendi DIY özel oyun Controller'ınızla oynamak daha eğlencelidir. Bu yüzden bu talimatta arduino pro micro kullanarak bir oyun Controller yapacağız
VHDL'de Programlanabilir Kesinti Denetleyicisi Tasarımı: 4 Adım
VHDL'de Programlanabilir Kesinti Denetleyicisi Tasarımı: Bu blogda aldığım yanıtlardan çok etkilendim. Arkadaşlar, blogumu ziyaret ettiğiniz ve bilgilerimi sizinle paylaşmam için beni motive ettiğiniz için teşekkür ederim. Bu sefer, tüm SOC'lerde gördüğümüz başka bir ilginç modülün tasarımını sunacağım -- Interrupt C
VHDL'de Basit Bir Önbellek Denetleyicisi Tasarımı: 4 Adım
VHDL'de Basit Bir Önbellek Denetleyicisinin Tasarımı: Bu talimatı yazıyorum, çünkü bir önbellek denetleyicisi tasarlamaya başlamak ve öğrenmek için bazı referans VHDL kodunu almayı biraz zor buldum. Bu yüzden kendim sıfırdan bir önbellek denetleyicisi tasarladım ve FPGA üzerinde başarıyla test ettim. bende p
VHDL ve Verilog'da Basit Bir VGA Denetleyici Tasarımı: 5 Adım
VHDL ve Verilog'da Basit Bir VGA Denetleyici Tasarımı: Bu talimatta, RTL'de basit bir VGA Denetleyici tasarlayacağız. VGA Denetleyici, VGA ekranlarını çalıştırmak için tasarlanmış dijital devredir. Görüntülenecek çerçeveyi temsil eden Çerçeve Arabelleğinden (VGA Bellek) okur ve gerekli
YABC - Bir Başka Blynk Denetleyicisi - IoT Bulut Sıcaklık ve Nem Denetleyicisi, ESP8266: 4 Adım
YABC - Yine Bir Başka Blynk Denetleyici - IoT Bulut Sıcaklık ve Nem Denetleyicisi, ESP8266: Merhaba Yapımcılar, Geçenlerde evde mantar yetiştirmeye başladım, İstiridye mantarları, ancak evde Fermenter için bu denetleyicilerden 3x'e zaten sahibim, eşim şimdi de bu Kombucha işini yapıyor ve Isı Termostatı olarak