O trabalho prático da disciplina constitui em implementar uma ferramenta de simulação de memórias cache, que receba como entrada configurações de memórias cache, além endereços (em formato binário) aleatoriamente gerados. Como referência, são apresentados ao final da página um conjunto de ferramentas (tools) de simulação de diversas características de memórias cache. A ferramenta a ser desenvolvida deve contemplar: Mapeamento: o Direto o Totalmente Associativo ? 4 tipos de algoritmo de substituição de dados na cache (no mapeamento associativo): o Randômico o Contador o LFU o LRU ? Tamanho de memória cache, memória principal e tamanho de blocos parametrizável: o Tamanho memória principal: 128KB, 256KB o Tamanho cache: 16KB, 32KB, 64KB o Tamanho dos blocos: 2B, 4B, 8B, 16B, 32B ? Endereçamento calculado automaticamente com os parâmetros citados no item anterior. ? Os valores dos dados contidos na memória principal são iguais ao valor endereço da posição mas convertido para um número Hexadecimal de 8 bytes. o Ex: Posição 110000000000000100 contém o valor: 00030004 Arquivo de entrada: Exemplo de Arquivo de Entrada: 256KB 64KB 2B Direto NULL 000000000001111101 000000110001111101 001110000001111101 Arquivo de Saída: Exemplo de Arquivo de Saída: 420 1304 00000000,00000001,00000002,00000003 FFFFFFFC,FFFFFFFD,FFFFFFFE,FFFFFFFF Instruções para o trabalho: ? Poderá ser feito em qualquer linguagem de programação. ? OBRIGATORIAMENTE o trabalho terá que ler o arquivo no formato fornecido e gerar uma saída também no formato fornecido. Trabalhos que não lerem esse formato ou não gerarem a saída conforme indicado, não serão avaliados. ? OBRIGATORIAMENTE deverá ser entregue um tutorial (arquivo README.txt) de como compilar e executar o programa. Outra informações importantes: ? Trabalho pode ser feito em grupos de até 2 pessoas. ? Data para entrega do artigo e apresentação da implementação: 3/Julho/2019