Taula de continguts:

Disseny d'un controlador de memòria cau simple en VHDL: 4 passos
Disseny d'un controlador de memòria cau simple en VHDL: 4 passos

Vídeo: Disseny d'un controlador de memòria cau simple en VHDL: 4 passos

Vídeo: Disseny d'un controlador de memòria cau simple en VHDL: 4 passos
Vídeo: «Развлечение с музыкой и программированием», Коннор Харрис и Стивен Крюсон 2024, Juny
Anonim
Disseny d'un controlador de memòria cau simple en VHDL
Disseny d'un controlador de memòria cau simple en VHDL

Estic escrivint aquesta informació instructiva, perquè em va costar una mica obtenir algun codi VHDL de referència per aprendre i començar a dissenyar un controlador de memòria cau. Així que vaig dissenyar un controlador de memòria cau des de zero i el vaig provar amb èxit a FPGA. Aquí he presentat un senzill controlador de memòria cau mapat directe, així com he modelat tot un sistema de memòria de processador per provar el controlador de memòria cau. Espero que us sigui útil aquesta instrucció com a referència per dissenyar els vostres propis controladors de memòria cau.

Pas 1: especificacions

Especificacions
Especificacions

Aquestes són les principals especificacions del controlador de memòria cau que dissenyarem:

  • Mapat directe. (aneu a aquest enllaç si busqueu un controlador associat de memòria cau associada)
  • Memòria cau de bloqueig única.
  • Política d'escriptura de visites d'escriptura.
  • Política d'assignació de no escriure o Política d'escriptura al voltant d'errors d'escriptura.
  • Sense memòria intermèdia d’escriptura ni altres optimitzacions.
  • S'incorpora Tag Array.

A més, també dissenyarem una memòria cau i un sistema de memòria principal.

Les especificacions predeterminades (configurables) de la memòria cau:

  • Memòria cau d'un banc de 256 bytes.
  • 16 línies de memòria cau, cada línia de memòria cau (bloc) = 16 bytes.

Les especificacions de la memòria principal:

  • Memòria de lectura / escriptura síncrona.
  • Memòria intercalada multi-banc: quatre bancs de memòria.
  • Cada mida del banc = 1 kB cadascun. Per tant, mida total = 4 kB.
  • Memòria adreçable de Word (4 bytes) amb bus d'adreces de 10 bits.
  • Amplada de banda superior per a lectura. Llegir amplada de dades = 16 bytes en un cicle de rellotge.
  • Amplada de dades d'escriptura = 4 bytes.

NOTA: comproveu la informació més recent que podeu instruir si esteu buscant un disseny de controlador de memòria cau associativa de 4 vies

Pas 2: Vista RTL de tot el sistema

Vista RTL de tot el sistema
Vista RTL de tot el sistema

La representació completa RTL del mòdul superior es mostra a la figura (excloent el processador). Les especificacions predeterminades per als autobusos són:

  • Tots els busos de dades són busos de 32 bits.
  • Bus d'adreces = Bus de 32 bits (però només la memòria pot dirigir aquí 10 bits).
  • Bloc de dades = 128 bits (Bus ample de banda ampla per llegir).
  • Tots els components són accionats pel mateix rellotge.

Pas 3: proveu l'entorn

El mòdul superior es va provar utilitzant un banc de proves, que simplement modelava un processador sense canalització (perquè no és gens fàcil dissenyar un processador complet !!). El banc de proves genera sol·licituds de lectura / escriptura de dades a la memòria amb freqüència. Això es burla de les instruccions típiques de "Carregar" i "Emmagatzemar", habituals en tots els programes executats per un processador. Els resultats de la prova han verificat correctament la funcionalitat del controlador de memòria cau. A continuació es mostren les estadístiques de prova observades:

  • Tots els senyals de lectura i escriptura Miss i Hit es van generar correctament.
  • Totes les operacions de lectura / escriptura de dades van tenir èxit.
  • No s'ha detectat cap problema d'incoherència o incoherència de dades.
  • El disseny s'ha verificat correctament per un Maxm. Freqüència de funcionament del rellotge = 110 MHz a la placa Xilinx Virtex-4 ML-403 (sistema sencer), 195 MHz només per al controlador de memòria cau.
  • Les memòries RAM de bloc es van inferir per a la memòria principal. La resta de matrius es van implementar als LUT.

Pas 4: fitxers adjunts

Els fitxers següents s’adjunten aquí amb aquest bloc:

  • Fitxers. VHD del controlador de memòria cau, matriu de dades de memòria cau, sistema de memòria principal.
  • Banc de proves.
  • Documentació sobre el controlador de memòria cau.

Notes:

  • Consulteu la documentació per obtenir una comprensió completa de les especificacions del controlador de memòria cau que es presenta aquí.
  • Qualsevol canvi en el codi depèn d'altres mòduls. Per tant, els canvis s’han de fer amb criteri. Presteu atenció a tots els comentaris i capçaleres que he fet.
  • Si per qualsevol motiu, les memòries RAM no es dedueixen per a la memòria principal, REDUEIX la mida de la memòria, seguida de canvis en l'amplada del bus d'adreces dels fitxers, etc. De manera que la mateixa memòria es pot implementar en LUT o en RAM distribuïda. Això estalviarà el temps i els recursos d’encaminament. O bé, aneu a la documentació FPGA específica i cerqueu el codi compatible per a Block RAM i editeu el codi en conseqüència i utilitzeu les mateixes especificacions d'amplada del bus d'adreces. La mateixa tècnica per als FPGA d’Altera.

Recomanat: