Sistemas de Memória II José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2014-11-21 José Costa (DEI/IST) Sistemas de Memória II 1 Sumário Hierarquia de Memória Organização de Sistemas de Cache José Costa (DEI/IST) Sistemas de Memória II 2 Hierarquia de Memória UCP Cache L1 Cache L2 Memória Primária Memória Secundária Tempos médios nos acessos às várias memórias José Costa (DEI/IST) Sistemas de Memória II 3 Localidade Localidade temporal: se é feito um acesso a um determinado endereço de memória, é muito provável que haja um novo acesso a este mesmo endereço num futuro próximo Localidade espacial: se é feito um acesso a um determinado endereço de memória, é muito provável que haja um novo acesso a um endereço próximo deste Exemplo for(i=0; i < 100; i++) a[i] = 0.0; José Costa (DEI/IST) Sistemas de Memória II 4 Caches Como a cache tem menor dimensão que a memória principal, só uma pequena fracção da totalidade do conteúdo da memória está presente, em cada momento, na cache Sucesso (hit): Quando num acesso o endereço está na cache Falta (miss) : Quando num acesso o endereço não está na cache Politicas de substituição: Para maximizar número de sucessos, substituir menos usados por mais usados José Costa (DEI/IST) Sistemas de Memória II 5 Exempo do Uso de Caches Tempo execução das instruções e CPI? Um dado processador funciona a 500 MHz Faz um acesso à memória de dados em cada instrução Cada instrução demora: 3 ciclos de relógio a ser executada + 1 ciclo de acesso à memória Memória primária tem um tempo de acesso médio de 70ns Usando uma cache com tempo de acesso igual a 2ns Hit rate de 95% José Costa (DEI/IST) Sistemas de Memória II 6 Dimensionamento das Caches No dimensionamento de uma cache para um sistema de memória, é necessário considerar dois factores fundamentais: Velocidade da cache - condiciona a velocidade máxima de funcionamento do sistema Dimensão da cache - condiciona a taxa de sucesso e, consequentemente, o número de acessos à memória principal A melhor solução provém do compromisso entre estes dois factores. José Costa (DEI/IST) Sistemas de Memória II 7 Memória Virtual Permite que o processador não fique limitado à memória instalada no sistema Todo o processamento da UCP usa endereços virtuais É necessário traduzir esse endereço Unidade de Gestão de Memória (UGM) ou MMU José Costa (DEI/IST) Sistemas de Memória II 8 Unidade de Gestão de Memória 1 2 3 4 a UCP coloca no barramento de endereços o endereço virtual onde pretende aceder a UGM traduz este endereço para um endereço físico é realizado um acesso à cache para testar se este endereço físico lá se encontra; caso se encontre na cache, o acesso de leitura ou escrita termina aqui caso contrário, é realizado um acesso à memória primária. José Costa (DEI/IST) Sistemas de Memória II 9 Organização de Sistemas de Cache Mapeamento de dados em cache a cache tem necessariamente um menor número de posições que a memória Dimensionamento dos blocos da cache melhor uso possível da localidade espacial dos acessos a dados. Política de Substituição maximizar a exploração que é feita das localidades temporais Políticas de escrita processador pode prosseguir a execução de um programa sem que a operação de escrita tenha terminado afecta dados em memória que podem ser acedidos por outros dispositivos José Costa (DEI/IST) Sistemas de Memória II 10 Mapeamento de Dados em Caches Caches de mapeamento direto Caches totalmente associativas Caches com vias de associatividade José Costa (DEI/IST) Sistemas de Memória II 11 Mapeamento Direto 31 10 9 Etiqueta Etiqueta 0 Índice Índice Etiquetas Dados = Sucesso José Costa (DEI/IST) Sistemas de Memória II Dados 12 Caches Totalmente Associativas Etiqueta Etiquetas Dados = Etiquetas Dados = Etiquetas Dados = Dados Dados Sucesso José Costa (DEI/IST) ... Sistemas de Memória II Dados Dados 13 Vias de Associatividade Conjunto de caches de mapeamento direto Melhor de dois mundos Cache de mapeamento direto tem 1 via de associatividade Cache totalmente associativa tem M vias de associatividade M - número de posições da cache Cache com 4096 posições usará: 12 bits de índice se for mapeamento direto 10 bits de indice se tiver 4 vias de associatividade nenhum bit de índice se for totalmente associativa Como é escolhida qual a via onde vai ser escrito o novo valor? José Costa (DEI/IST) Sistemas de Memória II 14 Blocos de Cache Útil para usar o princípio de localidade Permite mapeamento para a cache de blocos de posições consecutivas de memória Endereço é dividido em três partes a etiqueta, o índice e o deslocamento dentro do bloco Cache com 4096 posições com blocos de 16 posições 31 12 11 Etiqueta 4 3 0 Índice Deslocamento José Costa (DEI/IST) Sistemas de Memória II 15 Blocos de Cache Etiqueta Índice Deslocamento 0000000h 0000001h Cache 0000002h 0000003h Etiqueta 1FC0FE1h 0000h Dados 1 2 E F 00h 1FC0FE2h 01h 1FC0FE3h 02h 256 blocos Memória 0 3FFFFF9h FDh 3FFFFFAh 3FFFFFBh 1FC0h FEh 3FFFFFCh 3FFFh FFh 3FFFFFDh 3FFFFFEh 3FFFFFFh José Costa (DEI/IST) Sistemas de Memória II 16 Blocos de Cache Etiqueta Índice Deslocamento Dados Descodificador Etiquetas = Multiplexador Sucesso José Costa (DEI/IST) Sistemas de Memória II Dados 17 Blocos de Cache Etiqueta Índice Deslocamento Dados Etiquetas Dados Descodificador Etiquetas Multiplexador = Multiplexador Codificador = Hit José Costa (DEI/IST) Sistemas de Memória II Multiplexador Dados 18 Políticas de Substituição Quando há um miss quais os dados que se substitui na cache? Não faz sentido nas caches de mapeamento direto Least Recently Used (LRU) difícil de implementar em hardware em caches com muitas vias de associatividade Aleatória - não é má Outras... José Costa (DEI/IST) Sistemas de Memória II 19 Políticas de Escrita Quando os dados estão em cache Write-back Write-through Quando os dados não estão em cache Write-allocate No-write-allocate Geralmente, caches write-back são do tipo write-allocate, e caches write-through são do tipo no-write-allocate José Costa (DEI/IST) Sistemas de Memória II 20 Bits de Controlo Dirty bit necessário nas caches write-back Valid bit no início todos os dados são inválidos outros dispositivos podem ter alterado posições de memória mudanças de contexto em multi-processamento Outros... José Costa (DEI/IST) Sistemas de Memória II 21 Sumário Hierarquia de Memória Organização de Sistemas de Cache José Costa (DEI/IST) Sistemas de Memória II 22 Referências Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, G. Arroz, J. Monteiro, A. Oliveira, Secções 13.2, 13.3 José Costa (DEI/IST) Sistemas de Memória II 23 Próxima Aula Sistemas de Memória (cont.) José Costa (DEI/IST) Sistemas de Memória II 24