Daftar Isi:

Desain Pengontrol Cache Sederhana di VHDL: 4 Langkah
Desain Pengontrol Cache Sederhana di VHDL: 4 Langkah

Video: Desain Pengontrol Cache Sederhana di VHDL: 4 Langkah

Video: Desain Pengontrol Cache Sederhana di VHDL: 4 Langkah
Video: Binary and Seven Segment Decoders dalam VHDL 2024, Juni
Anonim
Desain Pengontrol Cache Sederhana di VHDL
Desain Pengontrol Cache Sederhana di VHDL

Saya menulis instruksi ini, karena saya merasa agak sulit untuk mendapatkan beberapa referensi kode VHDL untuk belajar dan mulai merancang pengontrol cache. Jadi saya merancang pengontrol cache sendiri dari awal, dan mengujinya dengan sukses di FPGA. Saya telah menyajikan pengontrol cache sederhana yang dipetakan langsung di sini, serta memodelkan seluruh Sistem Memori Prosesor untuk menguji Pengontrol Cache. Saya harap Anda menemukan instruksi ini berguna sebagai referensi untuk merancang pengontrol cache Anda sendiri.

Langkah 1: Spesifikasi

spesifikasi
spesifikasi

Berikut adalah spesifikasi utama dari Cache Controller yang akan kita rancang:

  • Dipetakan Langsung. (buka tautan ini jika mencari Associative Mapped Cache Controller)
  • Single-Banked, Blocking Cache.
  • Kebijakan Write-Through tentang Hit Write.
  • Alokasi No-Write atau Write Around Policy pada Write misses.
  • Tidak ada Buffer Tulis atau pengoptimalan lainnya.
  • Tag Array Dimasukkan.

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

Spesifikasi default (dapat dikonfigurasi) dari Memori Cache:

  • 256 Bytes Single-Banked Cache.
  • 16 Cache Lines, setiap Cache Line (Block) = 16 Bytes.

Spesifikasi dari Memori Utama:

  • Memori Baca/Tulis Sinkron.
  • Memori Interleaved multi-bank - empat bank memori.
  • Setiap ukuran bank = masing-masing 1 kB. Jadi, ukuran total = 4 kB.
  • Memori yang dapat dialamatkan Word (4 Bytes) dengan Bus Alamat 10-bit.
  • Bandwidth Lebih Tinggi untuk Baca. Baca Data Width = 16 Bytes dalam satu siklus clock.
  • Tulis Lebar Data = 4 Bytes.

CATATAN: periksa instruksi saya yang lebih baru jika Anda mencari desain pengontrol cache asosiatif 4 arah

Langkah 2: Tampilan RTL dari Seluruh Sistem

Tampilan RTL dari Seluruh Sistem
Tampilan RTL dari Seluruh Sistem

Representasi RTL lengkap dari Modul Atas ditunjukkan pada Gambar (tidak termasuk prosesor). Spesifikasi standar untuk bus adalah:

  • Semua Bus Data adalah Bus 32-bit.
  • Bus Alamat = Bus 32-bit (Tetapi hanya 10 bit yang dapat dialamatkan di sini oleh Memori).
  • Blok Data = 128 bit (Bus Bandwidth Lebar untuk Baca).
  • Semua komponen digerakkan oleh jam yang sama.

Langkah 3: Lingkungan Uji

Modul Top diuji menggunakan Test Bench, yang hanya memodelkan Prosesor non-pipelined (Karena merancang seluruh prosesor sama sekali tidak mudah !!). Test Bench sering menghasilkan permintaan Baca/Tulis Data ke Memori. Ini mengolok-olok instruksi "Muat" dan "Simpan", umum di semua program yang dijalankan oleh prosesor. Hasil pengujian berhasil memverifikasi fungsionalitas Cache Controller. Berikut ini adalah statistik pengujian yang diamati:

  • Semua sinyal Baca/Tulis Nona dan Hit dihasilkan dengan benar.
  • Semua operasi Baca/Tulis Data berhasil.
  • Tidak ada masalah inkoherensi/inkonsistensi data yang terdeteksi.
  • Desain berhasil diverifikasi waktu untuk Maxm. Clock Frekuensi operasi = 110 MHz di Xilinx Virtex-4 ML-403 Board (seluruh sistem), 195 MHz untuk Cache Controller saja.
  • Blok RAM disimpulkan untuk Memori Utama. Semua array lain diimplementasikan pada LUT.

Langkah 4: File Terlampir

File berikut dilampirkan di sini dengan blog ini:

  • File. VHD dari Cache Controller, Cache Data Array, Sistem Memori Utama.
  • bangku tes.
  • Dokumentasi pada Cache Controller.

Catatan:

  • Baca dokumentasi untuk pemahaman penuh tentang spesifikasi Cache Controller yang disajikan di sini.
  • Setiap perubahan dalam kode memiliki ketergantungan pada modul lain. Jadi, perubahan harus dilakukan dengan bijaksana. Perhatikan semua komentar dan header yang saya berikan.
  • Jika karena alasan apa pun, Block RAM tidak disimpulkan untuk Memori Utama, MENGURANGI ukuran memori, diikuti dengan perubahan lebar bus alamat di seluruh file dan seterusnya. Sehingga memori yang sama dapat diimplementasikan baik pada LUT maupun RAM Terdistribusi. Ini akan menghemat waktu dan sumber daya perutean. Atau, Buka dokumentasi FPGA spesifik dan temukan kode yang kompatibel untuk Block RAM dan edit kode yang sesuai, dan gunakan spesifikasi lebar bus alamat yang sama. Teknik yang sama untuk FPGA Altera.

Direkomendasikan: