O objetivo do trabalho foi a implementação de uma cache que utilize mapeamento direto.
PS: Os subcircuitos criados foram omitidos visando tornar o readme conciso.
O processador utilizado foi desenvolvido no trabalho de conclusão da disciplina de Arquitetura I. No entanto, foram realizadas adaptações como a adição de um novo registrador no banco, alterações no tamanho dos campos das instruções do conjunto de instruções, entre outras.
A cache possui 8 linhas, cada uma composta de 4 palavras de 16 bits cada. Logo, o tamanho da cache é de 512 bits ou 64 bytes.
A política de escrita adotada foi a de escrita direta (write-through).
Nesse sentido, as operações de escrita são realizadas na memória principal e na cache, de modo que ambas sempre estão atualizadas.
Tendo em vista que o componente “Memória RAM” do Logisim possui apenas um barramento de saída e que a comunicação entre a memória principal e a cache é por blocos de quatro palavras, a criação de uma memória principal que possibilitasse tal comunicação foi necessária.
À luz das características supracitadas, combinamos quatro componentes “Memória RAM” do Logisim visando permitir a comunicação via bloco entre memória principal e cache.
Para validarmos a cache, utilizamos o programa disponibilizado no documento do trabalho.
As memórias do Logisim armazenam as instruções em hexadecimal, por conseguinte, era necessária a conversão das instruções para tal formato.
Diante disso, criei uma pequena interface para agilizar esse processo.
Por exemplo as instruções do tipo I:
Disposição da quantidade de bits de cada campo:
3 3 4 6
addi $r2, $r1, $4
Campos em binário:
001 010 0001 000100
Campos em decimal:
1 2 1 4
Ao final do programa, os valores finais das posições da memória referentes às variáveis de soma (soma1 à soma5) são, respectivamente, 155, 155, 310, 75 e 516.
Valores os quais estavam presentes nas respectivas posições em cada uma das nossas submemórias ao final da execução.
Dessa forma, foi possível validar a corretude da cache.
PATTERSON, David, HENNESSY, John .Organização e Projeto de Computadores: Interface Hardware/Software. 4° Edição. Rio de Janeiro, Editora Elsevier, 2014.
STALLINGS, William. Arquitetura e Organização de Computadores. 10ª Edição. São Paulo: Pearson Pratice Hall, 2010.