William Stallings Computer Organization And Architecture Capítulo 07 Memória Interna Características do Sistema de Memória Localização (CPU, Interna, externa) Capacidade (Tamanho da palavra, número de palavras) Unidade de Transferência (palavra, bloco) Método de Acesso (seqüêncial, direto, aleatório, associativo) Desempenho (tempo de acesso, tempo de ciclo, taxa de transferência) Tipo Físico (semicondutor, superfície magnética) Características Fisicas (volátil, não volátil, apagável ou não) Organização 2
Localização CPU Interna Externa 3 Capacidade Tamanho da palavra A unidade natural da organização.. Quantidade de Palavras ou Bytes 4
Unidade de Transferência Interna Usualmente governada pela largura do barramento de dados. Externa Usualmente um bloco que é muito maior que uma palavra. Unidade Endereçável Menor localização que pode ser unicamente endereçada. Internamente o endereçamento é feito por palavras. Em unidades de discos, blocos denominados clusters. 5 Métodos de Acesso (1) Seqüencial O acesso deve ser feito em uma seqüencia linear específica. O tempo de acesso depende da localização dos dados e da localização anterior. ex. unidade de fita (tape). Direto Blocos individuais tem endereços únicos. O acesso é feito por um salto de aproximação seguido por acesso seqüencial. O tempo de acesso depende da localização e da localização anterior. ex. discos 6
Métodos de Acesso (2) Aleatório (Random) Endereços individuais identificam localizações de maneira exata. O tempo de acesso é independente da localização ou do acesso anterior. ex. RAM Associativa Dados são localizados através de uma comparação com o conteúdo de uma porção do armazenador. O tempo de acesso é independente da localização ou do acesso anterior. ex. cache 7 Hierarquia de Memória Registradores na CPU Interna ou Memória principal Pode incluir um ou mais níveis de cache RAM Memória Externa Armazenador secundário (backing store) 8
Desempenho Tempo de acesso Tempo decorrido entre a apresentação do endereço e a obtenção do dado válido. Tempo do Ciclo de Memória. Tempo requerido pela memória para recuperação, antes do próximo acesso. Tempo de ciclo é tempo de acesso + recuperação. Taxa de Transferência Taxa em que os dados podem ser movidos. 9 Tipos Físicos Semicondutor RAM Magnético Disk & Tape, flash memory Ótico CD & DVD Outros Bubble Hologram 10
Características Físicas Declínio Volatilidade Apagável (Decay) (Volatility) (Erasable) Consumo de Energia 11 Principais objetivos de projeto de um sistema Prover capacidade de armazenagem com nível desempenho aceitável a um custo razoável 12
Quatro maneiras para alcançar o objetivo Usar uma estrutura hierárquica dos dispositivos de armazenagem. Desenvolver métodos de alocação de espaço automático para uso eficiente da memória. Através de técnicas de memória virtual, liberar o usuário das tarefas de gerenciamento de memória. Projetar a memória e sua estrutura de interconexão relacionada de maneira que o processador possa operar a uma taxa máxima ou próxima. 13 Lista Hierárquica Registers L1 Cache L2 Cache Main memory Disk cache Disk Optical Tape 14
Exemplo: Sistema de memória em dois níveis Tempo de acesso do nível um é de 1us Tempo de acesso do nível dois é de 10us Tempo médio de acesso = H(1) + (1-H)(10) us H --> taxa de acerto (hit ratio) 15 Cache Pequena quantidade de memória rápida. Localizado entre a memória principal e a CPU. Pode estar localizado internamente ao chip da CPU ou em um módulo externo. 16
Estrutura RAM/Cache Cache Bloco RAM ==> C blocos ==> K palavras ==> 2 n palavras M = 2 n / K C << M 17 Operação do Cache - Revisão CPU faz referência ao conteúdo (dados) de uma determinada posição de memória. Primeiro, efetua consulta ao cache. Se presente, obtém do cache (rápido). Se não presente, transfere o bloco requerido da memória principal para o cache. Finalmente, transfere do cache para a CPU. O cache inclui etiquetas para identificar qual bloco de memória principal está em cada seção do cache. 18
Operação de leitura do cache 19 Elementos de Projeto da Cache Tamanho da cache Função de Mapeamento Direto Associativo Associativo por Conjuntos Algoritmo de Substituição LRU, FIFO, LFU, Random Política de Escrita Write through Write back Write once Tamanho do Bloco Número de Caches Single- or two-level Unified or split Cache Size Mapping Function Replacement Algorithm Write Policy Block Size Number of Caches 20
O tamanho importa Custo Mais cache, maior é o custo. Velocidade Quanto maior for o cache, maior é a velocidade obtida (até certo ponto). Efetuar consultas de dados no cache consome tempo. Nota: Gostaríamos que o tamanho da cache fosse suficientemente pequeno, tal que, o custo médio global por bit fosse próximo do custo da memória principal e com capacidade grande o suficiente, de forma que o tempo de acesso médio global fosse próximo ao tempo do cache. 21 Organização Típica do Cache 22
Função de Mapeamento Como há um número menor de linhas cache em relação ao número de blocos da memória principal, um algorítmo faz-se necessário para mapear blocos de memória para linhas cache. Além de uma maneira para descobrir qual bloco da memória principal, em determinado momento, ocupa uma linha cache. A escolha da função de mapeamento determina como o cache está organizado. Três técnicas podem ser utilizadas: direto, associativo e associativo por conjuntos Configuração para análise: Cache de 64 KByte Bloco Cache de 4 bytes isto é, o cache tem 16k (2 14 ) linhas de 4 bytes Memória principal de 16MBytes Endereços de 24 bits (2 24 =16M) 23 Mapeamento Direto - Direct Mapping Cada bloco da memória principal mapeia sempre em uma única linha cache. isto é, se um bloco está no cache, ele deve estar em um local específico. O endereço é dividido em duas partes Os w bits menos significativos identificam uma única palavra. Os s bits mais significativos especificam um bloco de memória. Os MSBs são divididos em um campo r na linha de cache e uma etiqueta (tag) com os s-r bits (mais significativos) 24
Mapeamento Direto - Estrutura de Endereço Tag s-r Line or Slot r Word w 8 14 2 Endereço de 24 bits Identificador de palavra 2 bits (4 bytes por bloco) Identificador de bloco 22 bits 8 bit tag (= 22-14) 14 bits slot ou linha Dois blocos na mesma linha não tem a mesma etiqueta (tag) A consulta à conteúdo da cache é feita em dois passos: primeiro, identifica a linha cache e, segundo, testa a etiqueta (tag) 25 Mapeamento Direto - Cache Line Table O mapeamento é expresso como: i = j modulo m onde i = número da linha cache j = número do bloco da memória principal m = número de linhas do cache Cache line Main Memory blocks held 0 0, m, 2m, 3m 2 s -m 1 1,m+1, 2m+1 2 s -m+1... m-1 m-1, 2m-1,3m-1 2 s -1 26
Organização do Cache com Mapeamento Direto 27 Exemplo de Mapeamento Direto 28
Mapeamento Direto pros & cons Simples Baixo custo (Inexpensive) Localização fixa para um dado bloco Se um programa acessa dois blocos que mapeiam para a mesma linha cache repetidamente, é grande o número de faltas de cache. 29 Mapeamento Associativo - Associative Mapping Um bloco da memória principal pode ser carregado em qualquer linha cache. Endereços de memória são interpretados como uma etiqueta (tag) e palavra. A etiqueta unicamente identifica um bloco de memória. Toda etiqueta (tag) da linha cache é examinada por comparação (match) Pesquisar o cache é uma operação de alto custo. 30
Organização do cache totalmente Associativo 31 Exemplo de Mapeamento Associativo 32
Mapeamento Associativo - Estrutura de Endereço Tag 22 bits Word 2 bits Etiqueta (tag) de 22 bits armazenada em cada bloco de dados de 32 bits. Compara o campo Tag com cada entrada no cache para verificar se há um acerto (hit). Os dois bits menos significativos do endereço identificam qual palavra de 16 bits é requerida do bloco de dados de 32 bits. exemplo: Address Tag Data Cache line FFFFFC FFFFFC 24682468 3FFF 33 Mapeamento Associativo por Conjuntos O cache é dividido em conjuntos; Cada conjunto contém um certo número de linhas; Um determinado bloco mapeia para qualquer linha de um conjunto. ex. o bloco B j pode estar em qualquer linha do conjunto i ex.: 2 linhas por conjunto 2 way associative mapping Um dado bloco pode estar em uma linha de duas possíveis de um determinado conjunto. 34
Two Way Set Associative Cache Organization 35 Set Associative Mapping - Address Structure Tag 9 bit Set 13 bit Word 2 bit Utiliza o set field para determinar o conjunto cache alvo da busca. Compara o campo tag para verificar a presença. exemplo: Address Tag Data Set number 1FF7FFC 1FF 12345678 1FFF 0017FFC 001 11223344 1FFF 36
Two Way Set Associative Mapping Example 37 Algoritmo de Substituição (1) Mapeamento Direto Nenhuma escolha. Cada bloco tem mapeamento em uma única linha cache. Substitua esta linha. 38
Algoritmo de Substituição (2) Associativo & Associativo por Conjuntos Algoritmo implementado em hardware (speed) Least Recently Used (LRU) ex.: in 2 way set associative qual dos dois blocos é o menos recentemente usado (lru)? First-in, first-out (FIFO) substitua o bloco que está no cache a mais tempo. Least frequently used substitua o bloco que teve poucas referências no último intervalo de tempo. Random 39 Política de Escrita - Write Policy Não deve sobrescrever o bloco cache a não ser que a memória principal esteja atualizada. Múltiplas CPUs devem ter módulos caches próprios. Controladoras de I/O podem endereçar memória principal diretamente. 40
Write through Todas as escritas são efetuadas simultaneamente na cache e memória principal. Múltiplas CPUs podem monitorar o tráfego da memória principal para manter a cache local (a CPU) atualizada. Gera muito trágego. Atrasa as escritas. Remember bogus write through caches! 41 Write back Inicialmente, as atualizações são realizadas somente na cache. Cada slot cache possui um update bit que são configurados quando uma atualização ocorre. Caso o bloco venha ser substituido, uma escrita na memória principal é feita se o update bit sinalizar. Outros caches estarão fora de sincronismo. E/S deverá acessar memória principal através da cache. Nota: 15% das referências a memória são escritas. 42
Newer RAM Technology (1) Basic DRAM same since first RAM chips Enhanced DRAM Contains small SRAM as well SRAM holds last line read (c.f. Cache!) Cache DRAM Larger SRAM component Use as cache or serial buffer 43 Newer RAM Technology (2) Synchronous DRAM (SDRAM) currently on DIMMs Access is synchronized with an external clock Address is presented to RAM RAM finds data (CPU waits in conventional DRAM) Since SDRAM moves data in time with system clock, CPU knows when data will be ready CPU does not have to wait, it can do something else Burst mode allows SDRAM to set up stream of data and fire it out in block 44
SDRAM 45 Newer RAM Technology (3) Foreground reading Check out any other RAM you can find See Web site: The RAM Guide 46