Taula de continguts:

Disseny d'un controlador de memòria cau associatiu conjunt de quatre vies en VHDL: 4 passos
Disseny d'un controlador de memòria cau associatiu conjunt de quatre vies en VHDL: 4 passos

Vídeo: Disseny d'un controlador de memòria cau associatiu conjunt de quatre vies en VHDL: 4 passos

Vídeo: Disseny d'un controlador de memòria cau associatiu conjunt de quatre vies en VHDL: 4 passos
Vídeo: «Развлечение с музыкой и программированием», Коннор Харрис и Стивен Крюсон 2024, De novembre
Anonim
Disseny d’un controlador de memòria cau associatiu de set canals senzill en VHDL
Disseny d’un controlador de memòria cau associatiu de set canals senzill en VHDL

A la meva instrucció anterior, vam veure com dissenyar un controlador de memòria cau mapat directe. Aquesta vegada, fem un pas endavant. Dissenyarem un senzill controlador de memòria cau associativa de quatre vies. Avantatge ? Menys taxa d’errors, però a costa del rendiment. Igual que el meu bloc anterior, dissenyaríem i emularíem un processador sencer, memòria principal i entorn de memòria cau per provar el nostre controlador de memòria cau. Espero que us sembli una referència útil per entendre els conceptes i dissenyar els vostres propis controladors de memòria cau en el futur. Com que el model per al processador (banc de proves) i el sistema de memòria principal són exactament els mateixos que el meu bloc anterior, no els tornaré a explicar. Consulteu les instruccions anteriors per obtenir més informació al respecte.

Pas 1: especificacions

Especificacions
Especificacions

Vista ràpida a través de les especificacions del controlador de memòria cau que es presenten aquí:

  • Establir controlador de memòria cau associatiu de quatre direccions (aneu a aquest enllaç si busqueu un controlador de memòria cau assignat directament).
  • Memòria cau de bloqueig única.
  • Política d’escriptura sobre els hits d’escriptura.
  • Política de redacció sobre falles d'escriptura.
  • Política de substitució de l'arbre Pseudo-LRU (pLRU).
  • Etiqueta matriu dins del controlador.
  • Paràmetres configurables.

Les especificacions predeterminades per a la memòria cau i la memòria principal són les mateixes que les que es van instruir anteriorment. Consulteu-los.

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: Resultats de les proves

El mòdul superior es va provar utilitzant un banc de proves, que simplement modelava un processador no canalitzat, tal com vam fer a la darrera instrucció. 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 de les quatre maneres.
  • L'algorisme pLRU es verifica amb èxit per a la substitució de línies de memòria cau.
  • No s'han detectat problemes d'incoherència o incoherència de dades.
  • El disseny s'ha verificat correctament per un Maxm. Freqüència de funcionament del rellotge = 100 MHz a la placa Xilinx Virtex-4 ML-403 (sistema sencer), 110 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: