Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual - PDF Download grátis
Download "Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual"
Cíntia de Andrade Fidalgo
1 Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual Arquiteturas para Alto Desmpenho Prof. Sala 110 Prédio da Computação
2 Tempos de Acesso e Tamanhos de Níveis de memória Registradores 500 bytes 200ps Caches 64KB 1ns Memória Alguns GB 100ns Disco 1TB ou mais 10ms
3 Custo/GB x Tempo de Acesso
4 Tecnologias de Construção de Memórias ROM (Read Only Memory): Memória não volátil, gravada apenas uma vez no momento o processador não consegue modificá-las. Algumas podem ser apagadas eletricamente (EEPROM ). SRAM: Prioriza velocidade e capacidade Os dados não precisam ser gravados periodicamente Linhas de endereço não multiplexadas. 8 a 16 vezes mais cara que DRAM DRAM: Prioriza custo por bit e capacidade Os dados precisam ser gravados novamente após uma leitura Periodicamente precisam ser gravados (atualizados) novamente mesmo sem leitura Linhas de endereço multiplexadas.
5 Tecnologias de Construção de Memórias DRAM: DRAMs tradicionalmente tinham uma interface assíncrona com seu controlador e com isso um overhead de sincronização. Introduziu-se um sinal de clock para os chips DRAM tornando-os síncronos. Batizou-se isto de DRAM síncrona (SDRAM). DDR SDRAM: Inovação onde se transfere dados da memória na borda crescente e decrescente do sinal de clock da SDRAM, com isso duplicando a taxa. Double Data Rate(DDR) DDR2 e DDR3: Evolução da tecnologia DDR com aumento de clock e redução de voltagem nos chips DIMM (Dual Inline Memory module): Memórias, em geral, são vendidas em pequenas placas DIMM de 4 a 16 chips DRAMs e geralmente organizadas de modo a fornecerem palavras de 8 bytes.
6 Organização de uma DRAM
7 Matriz de vários bits
8 Exemplo de organização de um chip de 256KB
9 Funcionamento da DRAM Multiplexação do Endereço RAS (Row Access Strobe) CAS (Column Access Strobe) Acesso ao Dado Atualização Periódica de Dados Bits de uma linha podem ser atualizados simultaneamente Atualização é determinada pelo DRAM Controller e tipicamente demora um tempo de acesso a um dado por linha
10 Modos de Operação Modo Regular Cada acesso é definido por: RAS(Row Access Strobe) CAS (Column Access Strobe) Carregamento do Dado Modo Rápido Dados na mesma linha são acessados apenas mudando o CAS
11 Desempenho da DRAM Tempo de Acesso não uniforme devido a: Localização Atualização dos Dados Tipicamente o tempo é dividido em: RAS precharge (trp) : seleção de linha RAS-to-CAS delay (trcd) : seleção de coluna CAS latency (CL) : leitura/gravação do dado Cycle Time (tras): tempo completo médio
12 Tais valores podem ser determinados através de aplicativos específicos: RAS precharge (trp) RAS-to-CAS delay (trcd) CAS latency (CL) Cycle Time (tras)
13 Memória vem em Módulos Para facilitar o manuseio e também explorar o entrelaçamento de memória, utiliza-se módulos de memória DIMM (Dual inline memory module) 4 a 16 chips de memória Tipicamente largura de 8 bytes (64 bits) SDRAM : 168 pinos, DDR (184 pinos), DDR2 (240 pinos), DDR3 (240) Todos incompatíveis e trocas podem causar danos ao hardware (figura 168 pinos)
14 Dados de Módulos de DRAM Standard name I/O Bus clock Data transfers per second Module name Peak transfer rate 266M/s*8B/tranfser=2128MB/s DDR MHz 266 Million PC MB/s 300M/s*8B=2400MB/s DDR MHz 300 Million PC MB/s DDR MHz 333 Million PC MB/s DDR MHz 400 Million PC MB/s DDR MHz 533 Million PC MB/s DDR MHz 667 Million PC MB/s DDR MHz 800 Million PC MB/s DDR MHz 1066 Million PC MB/s DDR MHz 1333 Million PC MB/s DDR MHz 1600 Million PC MB/s
15 Técnicas para Melhorar o Desempenho da Memória Principal Opções: Aumentar largura do dados Barramento mais largo Intercalar memória Melhor tempo de acesso tecnologia de construção: clock, latência,etc. DDR (Double Data Rate), DDR2, etc.
16 Melhorando o Desempenho da Memória Principal
17 Memória Entrelaçada Memória entrelaçada permite acesso simultâneo a tantas palavras quantos forem os seus módulos independentes. Com um número suficiente de módulos, é possível haver, num dado momento, várias instruções e vários operandos em fase de recuperação e vários resultados em fase de armazenamento. É claro que, para ganho máximo, num dado momento, cada acesso à memória deve acessar módulos distintos.
18 Maior Largura do Barramento X Memória Intercalada - Exemplo Considere o seguinte sistema: Envio de Endereço: 4 clocks da CPU Acesso a palavra na Memória: 56 clocks Envio de uma palavra pelo barramento: 4 clocks Para Bloco = 1 palavra (64 bits) Tx. De Erro: 3% Penalidade : 64 clocks ( ) Média de Ciclos por Instrução(s/erro de cache): 2 Acesso a Memória/Instrução: 1,2 Para bloco =2 palavras Tx. De Erro: 2% Para bloco = 4 palavras Tx. De Erro: 1,2%
19 Exemplo (Cont.) Qual a melhoria do sistema em relação ao original com barramento simples ao utilizar : intercalação de 2 ou 4 bancos sistema com barramento duplicado Em blocos de 1,2 e 4 palavras Solução: TempoExecução+Penalidade*Tx.Erro CPI para sistema de memória de 1 palavra 2+3% *( 1,2*64) = 4,3
20 Exemplo (Cont.) Bloco de duas palavras (128 bits) barramento de 64 bits, sem intercalação: 2+2%*(1,2*2*64) =5,07 barramento de 64 bits, com intercalação (2 bancos): 2+2%*1,2* (4+56+8) =3,63 Barramento de 128 bits, sem intercalação: 2+2%*1,2*64 = 3,54
21 Efeitos da duplicação do bloco Diminuição do desempenho no sistema de barramento de 64 bits, sem intercalação De 4,3 para 5,07 Intercalação de Memória mais rápida em 1,19 vezes Speedup = 1,19 = (4,3/3,63) Duplicação do Barramento mais rápido em 1,22 vezes Speedup = 1,22 = (4,3/3,63)
22 Efeito da quadruplicação do bloco (Cont. ) Bloco de 4 palavras (256 bits) barramento de 64 bits, sem intercalação: 2+1,2%*(1,2*4*64) =5,69 barramento de 64 bits, com intercalação (4 bancos): 2+1,2%*1,2* ( ) =3,09 Barramento de 128 bits, sem intercalação: 2+1,2%*1,2*2*64 = 3,84
23 Efeito da quadruplicação do bloco Diminuição do desempenho no sistema de barramento de 64 bits, sem intercalação : De 4,3 para 5,69 A duplicação do Barramento é mais rápida apenas 1,12 vezes (4,30/3,84) Intercalação de Memória agora é a mais rápida 1,39 vezes (4,30/3,09) O custo de quadruplicar o barramento de memória pode se tornar proibitivo e não traria desempenho muito melhor Barramento de 256 bits, sem intercalação: 2+1,2%*1,2*64 = 2,92 (Ganho de 1,06 em relação a intercalação)
24 Memória Virtual
25 Memória Virtual
26 Perguntas Atualmente, memória principal é barata então pode-se manter a memória física do mesmo tamanho da memória virtual. Nessa situação, porque utilizar sistema de memória virtual? Simplicidade na Recolocação Simplifica a Proteção de Memória
27 O papel da Memória Virtual Generalidade Habilidade de executar programas maiores que a memória física Gerenciamento mais eficiente Alocação/Desalocação de blocos de tamanhos variáveis é onerosa e leva a fragmentação Proteção Regiões do espaço de endereço podem ser declaradas como: somente leitura, código executável, Flexibilidade partes de um programa podem ser colocadas em qualquer lugar na memória, sem relocação Eficência no Armazenamento Mantem na memória apenas as partes mais importantes do programa I/O Concorrente Executa outros processos, enquanto está carregando/descarregando uma página Expansiblilidade Possibilita deixar espaço no espaço virtual de endereços para que objetos/programas possam crescer Desempenho Facilita o tratamento de multiprogramming e das linguagens de alto nível
28 Memória Virtual Endereços Virtuais V= {0,1,2,3,...n-1} Endereços Físicos P = {0,1,2,3,...m-1}. Onde m < n Para cada endereço a em V pode existir um endereço em P (a ), caso contrário falha de página(acesso ao disco) Dois endereços Virtuais podem apontar para o mesmo endereço físico
29 Memória Virtual e Cache A tradução de endereço virtual deve ser feita antes ou depois da cache? Antes: Perda de desempenho por ter que fazer um acesso adicional Depois: Cache trabalharia com endereços virtuais e memória com endereços reais. Problema?
30 Cache com Endereços Virtuais Dois endereços virtuais podem mapear o mesmo endereço físico! Logo, duas entradas de cache podem conter os mesmos dados. Perda de espaço útil na cache e Problema na Atualização Acontece quando dois programas (endereços virtuais distintos) compartilham um mesmo objeto de dados. Freqüente?
31 Cache com Endereços Reais Problema de Desempenho! Colocar a Tabela de tradução em SRAM Qual o Tamanho da Tabela de Tradução? Endereço Virtual: 32 bits Endereço Real: 32 bits Bloco: 4KB Memória virtual: 4GB Tamanho da Tabela de Páginas > 5 MB Solução: Cache da tabela de páginas!
32 Hierarquia de Memória com MV
33 O funcionamento da MV
34 Quatro perguntas sobre Funcionamento da Memória Virtual (...Cache) P1: Onde um bloco pode ser inserido no nível superior (posicionamento do bloco)? P2: Como um bloco é encontrado se está no nível superior da hierarquia? P3: Que bloco deve ser substituído ao ocorrer uma falha (substituição do bloco)? P4: O que acontece em uma gravação (estratégia de gravação)?
35 Translation Look-aside Buffer (TLB) TLBs são caches, tipicamente são completamente associativas para melhorar a taxa de sucesso Entre o disco e a memória principal, o esquema de atualização é sempre write-back! Associa-se ao sistema de memória Virtual, proteção de acesso (leitura, escrita, código, etc.).
36 Fragmentação e Realocação
37 Selecionando o Tamanho de Página Razões para páginas maiores O tamanho da Tabela de Páginas é inversamente proporcional ao tamanho da página, logo economiza-se memória. Transferir páginas maiores para ou do armazenamento secundário é eficiente Páginas maiores mapeiam mais memória logo tendem a reduzir as falhas no TLB Razões para páginas menores Não desperdiçar espaço, os dados devem ser contínuos dentro de uma página Processos pequenos tendem a ser mais rápidos? Soluções Híbridas: múltiplos tamanhos de páginas Alpha: 8KB, 64KB, 512 KB, 4 MB pages Segmentação: Página de tamanho variável
38 Segmentação A segmentação, isto é, páginas de tamanho variável é usada por exemplo na arquitetura x86 Os segmentos são alocados por cada programa e por terem tamanhos diferentes cada um deve ter campo identificando seu tamanho real. A unidade de transferência entre disco e memória física (real) é o segmento. Por isso, duas trocas podem ter tamanhos diferentes
39 Resumo Memória Virtual: introduzida inicialmente para permitir a execução de programas que precisavam de muita memória Hoje: MV é importante para proteção de memória e permite que os programas usem endereços falsos. TLB são cache para a tabela de página e são importantes para obter desempenho para a máquina Caches tipicamente trabalham com endereços físicos
Sistemas de Memória IEC - ITA. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro
Sistemas de Memória Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Conceitos Úteis A cache é divida em blocos com um número fixo de palavras