Isi kandungan:

Reka bentuk Pengawal Cache Mudah dalam VHDL: 4 Langkah
Reka bentuk Pengawal Cache Mudah dalam VHDL: 4 Langkah

Video: Reka bentuk Pengawal Cache Mudah dalam VHDL: 4 Langkah

Video: Reka bentuk Pengawal Cache Mudah dalam VHDL: 4 Langkah
Video: Grille Board for Hidden Door and Background Wall 2024, Jun
Anonim
Reka bentuk Pengawal Cache Mudah di VHDL
Reka bentuk Pengawal Cache Mudah di VHDL

Saya menulis arahan ini, kerana saya agak sukar untuk mendapatkan beberapa kod VHDL rujukan untuk belajar dan mula merancang pengawal cache. Oleh itu, saya merancang sendiri pengawal cache dari awal, dan berjaya mengujinya di FPGA. Saya telah menunjukkan pengawal cache langsung yang dipetakan sederhana di sini, dan juga memodelkan keseluruhan Sistem Memori Prosesor untuk menguji Pengawal Cache. Saya harap anda semua mendapat petunjuk yang berguna ini sebagai rujukan untuk merancang pengawal cache anda sendiri.

Langkah 1: Spesifikasi

Spesifikasi
Spesifikasi

Ini adalah spesifikasi utama Cache Controller yang akan kami rancang:

  • Pemetaan Langsung. (pergi ke pautan ini jika mencari Pengawal Cache Bersekutu Bersekutu)
  • Single-Banks, Blocking Cache.
  • Dasar Tulis Melalui Hits tulis.
  • No-Write peruntukkan atau Dasar Tulis Sekitar mengenai kesalahan yang ditulis.
  • Tiada Penulis Tulis atau pengoptimuman lain.
  • Tag Array Diperbadankan.

Selain itu, kami akan merancang Cache Memory dan Main Memory System juga.

Spesifikasi lalai (dapat dikonfigurasi) Memori Cache:

  • 256 Bytes Cache Satu Bank.
  • 16 Garis Cache, setiap Garis Cache (Blok) = 16 Bait.

Spesifikasi Memori Utama:

  • Memori Baca / Tulis segerak.
  • Memori Interleaved berbilang bank - empat bank memori.
  • Setiap ukuran bank = 1 kB setiap satu. Oleh itu, jumlah keseluruhan = 4 kB.
  • Memori beralamat Word (4 Bytes) dengan Bus Alamat 10-bit.
  • Lebar Jalur Lebih Tinggi untuk Baca. Baca Lebar Data = 16 Bait dalam satu pusingan jam.
  • Tulis Lebar Data = 4 Bait.

CATATAN: periksa arahan baru saya jika anda mencari reka bentuk pengawal cache bersekutu 4 arah

Langkah 2: Paparan RTL Keseluruhan Sistem

RTL Paparan Keseluruhan Sistem
RTL Paparan Keseluruhan Sistem

Perwakilan RTL lengkap Modul Teratas ditunjukkan dalam Rajah (tidak termasuk pemproses). Spesifikasi lalai untuk bas adalah:

  • Semua Bas Data adalah Bas 32-bit.
  • Bus Alamat = Bas 32-bit (Tetapi hanya 10 bit yang boleh dialamatkan di sini oleh Memory).
  • Blok Data = 128 bit (Bas Lebar Lebar Lebar untuk Dibaca).
  • Semua komponen didorong oleh jam yang sama.

Langkah 3: Persekitaran Uji

Modul Teratas diuji menggunakan Test Bench, yang hanya memodelkan Prosesor tanpa pipelin (Kerana merancang keseluruhan pemproses sama sekali tidak mudah !!). Bangku Ujian menghasilkan permintaan Data Baca / Tulis ke Memori dengan kerap. Ini mengolok-olok arahan "Muat" dan "Simpan" yang biasa, yang biasa berlaku di semua program yang dijalankan oleh pemproses. Hasil ujian berjaya mengesahkan fungsi Cache Controller. Berikut adalah statistik ujian yang diperhatikan:

  • Semua isyarat Baca / Tulis Miss dan Hit dihasilkan dengan betul.
  • Semua operasi Baca / Tulis Data berjaya.
  • Tiada masalah ketidakkonsistenan / ketidakkonsistenan data yang dikesan.
  • Reka bentuk berjaya disahkan masa untuk Maxm. Jam Frekuensi operasi = 110 MHz di Papan Xilinx Virtex-4 ML-403 (keseluruhan sistem), 195 MHz untuk Cache Controller sahaja.
  • RAM blok disimpulkan untuk Memori Utama. Semua susunan lain dilaksanakan pada LUT.

Langkah 4: Fail Terlampir

Fail berikut dilampirkan di sini dengan blog ini:

  • . VHD fail Cache Controller, Cache Data Array, Main Memory System.
  • Bangku Ujian.
  • Dokumentasi pada Cache Controller.

Catatan:

  • Baca dokumentasi untuk memahami sepenuhnya spesifikasi Cache Controller yang dibentangkan di sini.
  • Sebarang perubahan dalam kod bergantung pada modul lain. Jadi, perubahan harus dilakukan secara bijaksana. Perhatikan semua komen dan tajuk yang telah saya berikan.
  • Sekiranya atas sebab apa pun, RAM Blok tidak disimpulkan untuk Memori Utama, KURANGKAN ukuran memori, diikuti dengan perubahan lebar bus alamat di seluruh fail dan sebagainya. Supaya memori yang sama dapat dilaksanakan sama ada pada LUT atau RAM Teragih. Ini akan menjimatkan masa dan sumber penghalaan. Atau, Pergi ke dokumentasi FPGA tertentu dan cari kod yang sesuai untuk Blok RAM dan edit kod yang sesuai, dan gunakan spesifikasi lebar bus alamat yang sama. Teknik yang sama untuk Altera FPGAs.

Disyorkan: