Índice:
- Etapa 1: Especificações
- Etapa 2: Visualização RTL de todo o sistema
- Etapa 3: Resultados do teste
- Etapa 4: arquivos anexados
Vídeo: Projeto de um controlador de cache associativo conjunto de quatro vias simples em VHDL: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Em meu instrutível anterior, vimos como projetar um controlador de cache mapeado direto simples. Desta vez, damos um passo à frente. Estaremos projetando um controlador de cache associativo de conjunto de quatro vias simples. Vantagem? Menos taxa de falhas, mas ao custo de desempenho. Assim como em meu blog anterior, estaríamos projetando e emulando um processador inteiro, memória principal e ambiente de cache para testar nosso controlador de cache. Espero que vocês achem isso uma referência útil para entender os conceitos e projetar seus próprios controladores de cache no futuro. Como o modelo do processador (bancada de teste) e o sistema de memória principal são exatamente os mesmos do meu blog anterior, não irei explicá-los novamente. Consulte as instruções anteriores para obter detalhes a respeito.
Etapa 1: Especificações
Dê uma olhada rápida nas especificações do Controlador de Cache apresentadas aqui:
- Controlador de cache associativo definido de quatro vias (acesse este link se estiver procurando por Controlador de cache mapeado diretamente).
- Cache de bloqueio único em banco único.
- Política de gravação direta em ocorrências de gravação.
- Política de Write-Around sobre erros de gravação.
- Política de substituição do Tree Pseudo-LRU (pLRU).
- Tag Array dentro do controlador.
- Parâmetros configuráveis.
As especificações padrão para Cache Memory e Main Memory são as mesmas do meu instrutível anterior. Consulte-os.
Etapa 2: Visualização RTL de todo o sistema
A representação RTL completa do Módulo Superior é mostrada na Figura (excluindo o processador). As especificações padrão para os barramentos são:
- Todos os barramentos de dados são barramentos de 32 bits.
- Barramento de endereço = Barramento de 32 bits (mas apenas 10 bits são endereçáveis aqui pela memória).
- Bloco de dados = 128 bits (Wide Bandwidth Bus for Read).
- Todos os componentes são acionados pelo mesmo relógio.
Etapa 3: Resultados do teste
O Top Module foi testado usando um Test Bench, que simplesmente modela um processador não pipeline, assim como fizemos no último instrutível. O Test Bench gera solicitações de leitura / gravação de dados para a memória com freqüência. Isso simula as instruções típicas de "Carregar" e "Armazenar", comuns em todos os programas executados por um processador.
Os resultados do teste verificaram com sucesso a funcionalidade do Controlador de Cache. A seguir estão as estatísticas de teste observadas:
- Todos os sinais Read / Write Miss e Hit foram gerados corretamente.
- Todas as operações de leitura / gravação de dados foram bem-sucedidas em todas as quatro maneiras.
- O algoritmo pLRU foi verificado com sucesso para a substituição de linhas de cache.
- Não foram detectados problemas de incoerência / inconsistência de dados.
- O tempo do projeto foi verificado com sucesso para um Maxm. Freqüência de operação do clock = 100 MHz na placa Xilinx Virtex-4 ML-403 (sistema completo), 110 MHz somente para o controlador de cache.
- Bloco de RAMs foram inferidos para a memória principal. Todas as outras matrizes foram implementadas em LUTs.
Etapa 4: arquivos anexados
Os seguintes arquivos estão anexados aqui com este blog:
- Arquivos. VHD de controlador de cache, matriz de dados de cache, sistema de memória principal.
- Bancada.
- Documentação no controlador de cache.
Notas:
- Percorra a documentação para um entendimento completo das especificações do Controlador de Cache apresentadas aqui.
- Quaisquer alterações no código dependem de outros módulos. Portanto, as alterações devem ser feitas de forma criteriosa.
- Preste atenção a todos os comentários e cabeçalhos que eu dei.
- Se, por qualquer motivo, os blocos de RAM não forem inferidos para a memória principal, REDUZA o tamanho da memória, seguido por alterações nas larguras do barramento de endereço entre os arquivos e assim por diante. Para que a mesma memória possa ser implementada em LUTs ou RAM distribuída. Isso economizará tempo e recursos de roteamento. Ou vá para a documentação específica do FPGA e encontre o código compatível para Block RAM e edite o código de acordo, e use as mesmas especificações de largura de barramento de endereço. Mesma técnica para Altera FPGAs.
Recomendado:
Controlador de semáforo Arduino usando LED RBG - 4 vias: 3 etapas
Controlador de semáforo Arduino usando LED RBG | 4-Way: neste post, você aprenderá como fazer um controlador de semáforo Arduino. Este controlador de semáforo será usado para controlar o fluxo do tráfego. Eles podem ser aplicados em áreas de alto tráfego para evitar bloqueios de tráfego ou acidentes
Quatro tortas - o novo Raspberry Pi 4 - Destaques e projeto de celebração !: 6 etapas
Four Pies - the New Raspberry Pi 4 - Highlights & Celebration Project !: Abaixo, uma rápida visão geral do conteúdo. Vídeo de apresentação e apresentação Pie Pi 3.14 Pies Result
Projeto de um controlador de cache simples em VHDL: 4 etapas
Projeto de um controlador de cache simples em VHDL: Estou escrevendo este instrutível, porque achei um pouco difícil obter algum código VHDL de referência para aprender e começar a projetar um controlador de cache. Portanto, desenvolvi um controlador de cache do zero e testei-o com sucesso em FPGA. Eu tenho p
Projeto de um controlador VGA simples em VHDL e Verilog: 5 etapas
Projeto de um controlador VGA simples em VHDL e Verilog: Neste instrutível, vamos projetar um controlador VGA simples em RTL. O controlador VGA é o circuito digital projetado para controlar monitores VGA. Ele lê o Frame Buffer (memória VGA) que representa o quadro a ser exibido e gera a nece
Interruptores de três e quatro vias - Como funcionam: 6 etapas
Switches de três e quatro vias - como funcionam: Embora um switch de três vias seja muito simples para muitos que visitam Instructables.com, é um mistério para muitos outros. Entender como o circuito funciona satisfaz a curiosidade. Também pode ajudar a diagnosticar um interruptor de três vias que não funciona porque alguém