Daftar Isi:

Desain Kontroler Cache Asosiatif Set Empat Arah Sederhana di VHDL: 4 Langkah
Desain Kontroler Cache Asosiatif Set Empat Arah Sederhana di VHDL: 4 Langkah

Video: Desain Kontroler Cache Asosiatif Set Empat Arah Sederhana di VHDL: 4 Langkah

Video: Desain Kontroler Cache Asosiatif Set Empat Arah Sederhana di VHDL: 4 Langkah
Video: Belajar Laravel 8 | 5. Model, Collection & Controller 2024, Juni
Anonim
Desain Pengontrol Cache Asosiatif Set Empat Arah Sederhana di VHDL
Desain Pengontrol Cache Asosiatif Set Empat Arah Sederhana di VHDL

Dalam instruksi saya sebelumnya, kami melihat bagaimana merancang pengontrol cache yang dipetakan langsung sederhana. Kali ini, kita selangkah lebih maju. Kami akan merancang pengontrol cache asosiatif set empat arah sederhana. Keuntungan ? Lebih sedikit miss rate, tetapi dengan mengorbankan kinerja. Sama seperti blog saya sebelumnya, kami akan merancang dan meniru seluruh prosesor, memori utama, dan lingkungan cache untuk menguji pengontrol cache kami. Saya harap kalian menemukan ini sebagai referensi yang berguna untuk memahami konsep dan merancang pengontrol cache Anda sendiri di masa mendatang. Karena model prosesor (bangku tes) dan sistem memori utama sama persis dengan blog saya sebelumnya, saya tidak akan menjelaskannya lagi. Silakan merujuk ke instruksi sebelumnya untuk perincian tentangnya.

Langkah 1: Spesifikasi

spesifikasi
spesifikasi

Lihat cepat melalui spesifikasi Cache Controller yang disajikan di sini:

  • Empat arah Set Associative Cache Controller (buka link ini jika mencari Direct Mapped Cache Controller).
  • Single-Banked, Blocking Cache.
  • Kebijakan Write-Through tentang hit tulis.
  • Kebijakan Write-Around tentang kesalahan tulis.
  • Kebijakan Penggantian Tree Pseudo-LRU (pLRU).
  • Tag Array di dalam pengontrol.
  • Parameter yang dapat dikonfigurasi.

Spesifikasi default untuk Memori Cache dan Memori Utama sama seperti dari instruksi saya sebelumnya. Silakan merujuk ke mereka.

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: Hasil Tes

Modul Top diuji menggunakan Test Bench, yang hanya memodelkan Prosesor non-pipeline, seperti yang kami lakukan di instruksi terakhir. 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 dalam keempat cara.
  • Algoritma pLRU berhasil diverifikasi untuk penggantian saluran cache.
  • Tidak ada masalah inkoherensi/inkonsistensi data yang terdeteksi.
  • Desain berhasil diverifikasi waktu untuk Maxm. Clock Frekuensi operasi = 100 MHz di Xilinx Virtex-4 ML-403 Board (seluruh sistem), 110 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: