Talaan ng mga Nilalaman:

Disenyo ng isang Simpleng Four-way Set Associative Cache Controller sa VHDL: 4 na Hakbang
Disenyo ng isang Simpleng Four-way Set Associative Cache Controller sa VHDL: 4 na Hakbang

Video: Disenyo ng isang Simpleng Four-way Set Associative Cache Controller sa VHDL: 4 na Hakbang

Video: Disenyo ng isang Simpleng Four-way Set Associative Cache Controller sa VHDL: 4 na Hakbang
Video: CS50 2014 - Week 7, continued 2024, Hunyo
Anonim
Disenyo ng isang Simpleng Four-way Set Associative Cache Controller sa VHDL
Disenyo ng isang Simpleng Four-way Set Associative Cache Controller sa VHDL

Sa dati kong itinuro, nakita namin kung paano magdisenyo ng isang simpleng direktang naka-map na cache controller. Sa oras na ito, sumusulong na tayo sa hakbang. Magdidisenyo kami ng isang simpleng naka-set na apat na magkakasamang cache controller. Kalamangan? Mas kaunting rate ng miss, ngunit sa gastos ng pagganap. Tulad ng aking nakaraang blog, magdidisenyo at gumagaya kami ng isang buong processor, pangunahing memorya at cache na kapaligiran upang subukan ang aming cache controller. Inaasahan kong makita mo ito bilang isang kapaki-pakinabang na sanggunian upang maunawaan ang mga konsepto at idisenyo ang iyong sariling mga cache controler sa hinaharap. Dahil ang modelo para sa processor (bench ng pagsubok) at ang pangunahing sistema ng memorya ay eksaktong kapareho ng aking nakaraang blog, hindi ko na ulit ipapaliwanag ang mga ito. Mangyaring mag-refer sa nakaraang itinuro para sa mga detalye tungkol dito.

Hakbang 1: Mga pagtutukoy

Mga pagtutukoy
Mga pagtutukoy

Mabilis na pagtingin sa pamamagitan ng mga pagtutukoy ng Cache Controller na ipinakita dito:

  • Four-way Set Associative Cache Controller (pumunta sa link na ito kung naghahanap para sa Direct Mapped Cache Controller).
  • Single-Banked, Blocking Cache.
  • Patakaran sa Sumusulat sa Pamamagitan ng mga hit sa pagsulat.
  • Isulat-Paikot na Patakaran sa mga miss miss.
  • Patakaran sa Pagpalit ng Tree Pseudo-LRU (pLRU).
  • I-tag ang Array sa loob ng controller.
  • Mga configure na parameter.

Ang mga default na detalye para sa Cache Memory at Pangunahing memorya ay pareho sa mula sa dati kong itinuro. Mangyaring mag-refer sa kanila.

Hakbang 2: Pagtingin sa RTL ng Buong System

RTL View ng Buong System
RTL View ng Buong System

Ang kumpletong representasyon ng RTL ng Nangungunang Modyul ay ipinapakita sa Larawan (hindi kasama ang processor). Ang mga default na detalye para sa mga bus ay:

  • Ang lahat ng mga Data Bus ay 32-bit na Bus.
  • Address Bus = 32-bit Bus (Ngunit 10 bits lamang ang maaaring addresses dito ng Memory).
  • Data Block = 128 bits (Malapad na Bandwidth Bus para Basahin).
  • Ang lahat ng mga bahagi ay hinihimok ng parehong orasan.

Hakbang 3: Mga Resulta sa Pagsubok

Ang Nangungunang Modyul ay nasubok gamit ang isang Test Bench, na simpleng mga modelo ng isang hindi pipelined na Proseso, tulad ng ginawa namin sa huling itinuro. Bumubuo ang Test Bench ng Basahin / Sumulat ng mga kahilingan sa Data sa memorya nang madalas. Nilolokohan nito ang tipikal na mga tagubilin na "Mag-load" at "Tindahan", karaniwan sa lahat ng mga programa na naisagawa ng isang processor.

Matagumpay na na-verify ng mga resulta sa pagsubok ang pagpapaandar ng Cache Controller. Ang sumusunod ay sinusunod ang mga istatistika ng pagsubok:

  • Lahat ng Basahin / Isulat ang mga signal ng Miss at Hit ay nabuo nang tama.
  • Lahat ng operasyon ng Basahin / Sumulat ng data ay matagumpay sa lahat ng apat na paraan.
  • Matagumpay na na-verify ang pLRU algorithm para sa kapalit ng mga linya ng cache.
  • Walang napansin na mga problema sa hindi pagkakasundo / hindi pagkakapare-pareho ng data.
  • Ang Disenyo ay matagumpay na na-verify ang tiyempo para sa isang Maxm. Clock Frequency ng operasyon = 100 MHz sa Xilinx Virtex-4 ML-403 Board (buong system), 110 MHz para sa Cache Controller lamang.
  • Ang mga block RAM ay pinaghihinalaan para sa Pangunahing memorya. Ang lahat ng iba pang mga pag-array ay ipinatupad sa LUTs.

Hakbang 4: Nakalakip na Mga File

Ang mga sumusunod na file ay nakakabit dito sa blog na ito:

  • . VHD file ng Cache Controller, Cache Data Array, Pangunahing System ng Memory.
  • Bench ng Pagsubok.
  • Dokumentasyon sa Cache Controller.

Mga Tala:

  • Dumaan sa dokumentasyon para sa buong pag-unawa sa mga pagtutukoy ng Cache Controller na ipinakita dito.
  • Ang anumang mga pagbabago sa code ay may pagpapakandili sa iba pang mga module. Kaya, ang mga pagbabago ay dapat gawin judiciously.
  • Bigyang pansin ang lahat ng mga puna at header na ibinigay ko.
  • Kung sa anumang kadahilanan, ang mga Block RAM ay hindi hinuha para sa Pangunahing memorya, Bawasan ang laki ng memorya, na sinusundan ng mga pagbabago sa mga lapad ng address bus sa mga file at iba pa. Upang ang parehong memorya ay maaaring ipatupad alinman sa LUTs o Ipamahagi RAM. Ito ay makatipid sa oras ng paggalaw at mga mapagkukunan. O kaya, Pumunta sa tukoy na dokumentasyon ng FPGA at hanapin ang katugmang code para sa Block RAM at i-edit ang code nang naaayon, at gamitin ang parehong mga pagtutukoy ng lapad ng address ng bus. Parehong pamamaraan para sa Altera FPGAs.

Inirerekumendang: