Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Organização de Computadores I DCC006 Prof. Omar Paranaiba Vilela Neto Aula 12 – Memória 2 Memórias: Revisão • Pode ser definida como um local para armazenamento de informações, onde as duas únicas ações possíveis são a leitura e a escrita • A informação pode ser representada pelo bit ou por um conjunto de n bits que possuem um endereço definido • Em um sistema computacional, temos diferentes tipos de memórias, para diferentes finalidades, que se interligam de forma estruturada e que formam o subsistema de memória 3 • Usuários desejam memórias rápidas e grande! SRAM tempo de acesso são 2 - 25ns e custam de $4000 a $10000 por GB. DRAM tempo de acesso são 60-120ns e custam de $100 to $200 por GB. Disco tempo de acesso 10 to 20 milhões ns e custam $.50 to $2 por GB. • Sugere a construção de uma hierarquia de memória Explorando a Hierarquia de Memórias 2004 CPU Level n Level 2 Level 1 Levels in the memory hierarchy Increasing distance from the CPU in access time Size of the memory at each level 4 Explorando a Hierarquia de Memórias 5 Explorando a Hierarquia de Memórias • Os dados contidos num nível mais próximo do processador são sempre um sub-conjunto dos dados contidos no nível anterior • O nível mais baixo contém a totalidade dos dados Disco Memória Principal Cache 6 • SRAM: – valores são armazenados em pares de portas invertidas – rápidas mas ocupam mais espaços que as DRAM (4 to 6 transistores) • DRAM: – valores são armazenados como uma carga em capacitor (deve ser refrescada) – menor mas mais lentas que as SRAM (fator de 5 to 10) Memórias: Revisão B A A B Word line Pass transistor Capacitor Bit line 7 Localidade • Princípio que faz com que ter uma hierarquia de memória seja uma boa idéia • Se um item é referenciado, Localidade temporal : ele tende a ser referenciado de novo, logo Localidade espacial: itens próximos tendem a ser referenciados de novo, logo. Porque um código tem localidade? • Nosso foco inicial: dois níveis (superior, inferior) – bloco: unidade mínima de dado – acerto: dado requisitado está no nível superior – falta: dado requisitado NÃO está no nível superior 8 Cache • Memória rápida e de pequena capacidade • Guarda somente os itens que serão referenciados com frequência em determinado momento • Para tal, explora os conceitos de Localidade Temporal e de Localidade Espacial • Tais itens podem ser tanto dados, como instruções 9 Cache C ache C P U M em ória P rincipal Transferência de words Transferência de blocos 10 • Dois pontos importantes: – Como sabemos se um item de dado está no cache? – Se esta, como o encontramos? • Nosso primeiro exemplo: – O tamanho do bloco é de uma palavra de dado – “mapeado diretamente” Para cada item de dado no nível mais baixo(inferior), existe exatamente uma locação na cache, onde ele possa estar. e.g., muitos itens no nível inferior dividem locações no nível superior Cache 11 • Mapeamento: o endereço é o módulo do número de blocos no cache Cache Mapeado Diretamente 00001 00101 01001 01101 10001 10101 11001 11101 00 0 Cache Memory 00 1 01 0 01 1 10 0 10 1 11 0 11 1 12 • Para o MIPS: De qual tipo de localidade estamos tirando vantagem? Cache Mapeado Diretamente Address (showing bit positions) 20 10 Byte offset Valid Tag DataIndex 0 1 2 1021 1022 1023 Tag Index Hit Data 20 32 31 30 13 12 11 2 1 0 13 • Exemplo Cache Mapeado Diretamente Cache Inicialmente Vazia 14 • Exemplo Cache Mapeado Diretamente Primeiro Dado 15 • Exemplo Cache Mapeado Diretamente Segundo Dado 16 • Exemplo Cache Mapeado Diretamente Terceiro Dado 17 • Exemplo Cache Mapeado Diretamente Quarto Dado 18 • Exemplo Cache Mapeado Diretamente Quinto Dado 19 • Tirando vantagem da localidade espacial: Cache Mapeado Diretamente Address (showing bit positions) 16 12 Byte offset V Tag Data Hit Data 16 32 4K entries 16 bits 128 bits Mux 32 32 32 2 32 Block offsetIndex Tag 31 16 15 4 32 1 0 20 • Acertos de Leitura – é o que queremos! • Faltas de Leitura – para a CPU, buscar o bloco na memória, liberar para o cache, recomeçar(restart) • Acertos de escrita: – podemos substituir dados no cache e na memória, (write- through) – escrever o dado apenas no cache (write-back the cache later) • Faltas de escrita : – ler o bloco inteiro no cache, e então escrever a palavra Acertos vs. Faltas 21 Fazer a leitura de múltiplas palavras mais fácil, pelo uso de bancos de memória • Pode ficar ainda mais complicado... Pontos importantes do Hardware CPU Cache Bus Memory a. One-word-wide memory organization CPU Bus b. Wide memory organization Memory Multiplexor Cache CPU Cache Bus Memory bank 1 Memory bank 2 Memory bank 3 Memory bank 0 c. Interleaved memory organization 22 Pontos importantes do Hardware CPU Cache Bus Memory a. One-word-wide memory organization CPU Bus b. Wide memory organization Memory Multiplexor Cache CPU Cache Bus Memory bank 1 Memory bank 2 Memory bank 3 Memory bank 0 c. Interleaved memory organization Exemplo 1 ciclo de clock de barramento para enviar endereço 15 ciclos de clock de barramento para cada acesso a DRAM 1 ciclo de clock de barramento para enviar uma palavra Cache de 4 palavras 23 Pontos importantes do Hardware CPU Cache Bus Memory a. One-word-wide memory organization CPU Bus b. Wide memory organization Memory Multiplexor Cache CPU Cache Bus Memory bank 1 Memory bank 2 Memory bank 3 Memory bank 0 c. Interleaved memory organization Exemplo 1 + 4 x 15 + 4 x 1 = 65 cilcos de clock 24 Pontos importantes do Hardware CPU Cache Bus Memory a. One-word-wide memory organization CPU Bus b. Wide memory organization Memory Multiplexor Cache CPU Cache Bus Memory bank 1 Memory bank 2 Memory bank 3 Memory bank 0 c. Interleaved memory organization Exemplo 1 + 2 x 15 + 2 x 1 = 33 cilcos de clock 25 Pontos importantes do Hardware CPU Cache Bus Memory a. One-word-wide memory organization CPU Bus b. Wide memory organization Memory Multiplexor Cache CPU Cache Bus Memory bank 1 Memory bank 2 Memory bank 3 Memory bank 0 c. Interleaved memory organization Exemplo 1 + 1 x 15 + 4 x 1 = 20 cilcos de clock 26 Desempenho • Modelo simplificado: Tempo de execução = (ciclos execução+ciclos parada) × tempo ciclo Ciclos parada = No. instruções × taxa de faltas × penalidade por falta • Dois modos de se aumentar o desempenho: – decrescer a razão de faltas – decrescer a penalidade por faltas O que acontece se nós aumentarmos o tamanho do bloco? 27 • Aumentando o tamanho do bloco tende a decrescer a taxa de faltas: • Usar caches divididos (níveis) porque há mais localidade espacial: Desempenho 1 KB 8 KB 16 KB 64 KB 256 KB 256 40% 35% 30% 25% 20% 15% 10% 5% 0% M is s ra te 64164 Block size (bytes) Program gcc 1 6.1% 2.1% 5.4% 4 2.0% 1.7% 1.9% spice 1 1.2% 1.3% 1.2% 4 0.3% 0.6% 0.4% words miss rate rate miss rate Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27
Compartilhar