UNIVERSIDADE FEDERAL DOSEMI-ÁRIDO SEMI-ÁRIDO UNIVERSIDADE FEDERALRURAL RURAL DO DEPARTAMENTO DE DE CIÊNCIAS NATURAIS DEPARTAMENTO CIÊNCIASEXATAS EXATAS E E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores 04 - Memória Principal I Prof. Sílvio Fernandes Exemplo análogo Agente secreto 89 O assassinato de um líder mundial está para acontecer O agente secreto 89 deve descobrir quantos dias faltam para o assassinato Ele tem um contato com essa informação Para ninguém descobrir essa informação foi espalhada por uma série de 10 caixas postais Há 10 chaves e um conjunto de instruções para decifrar informação 2 Exemplo análogo Agente secreto 89 (Conjunto de instruções) 1. A informação em cada uma das caixas está escrita em código. 2. Abra a caixa 1 primeiro e execute a instrução localizada lá. 3. Continue pelas caixas restantes, em sequência, a menos que seja instruído do contrário. 4. Uma das caixas está preparada para explodir quando for aberta. 3 Exemplo análogo Caixas postais com mensagens codificadas Caixa 1 Caixa 2 Caixa 3 Caixa 4 Caixa 5 Caixa 6 Caixa 7 Caixa 8 Caixa 9 Caixa 10 4 Exemplo análogo Caixas postais com mensagens codificadas 1. Some o número armazenado na caixa (9) ao seu número de código de agente secreto. Caixa 2 Caixa 3 Caixa 4 Caixa 5 Caixa 6 Caixa 7 Caixa 8 Caixa 9 Caixa 10 5 Exemplo análogo Caixas postais com mensagens codificadas 1. Some o número armazenado na caixa (9) ao seu número de código de agente secreto. Caixa 2 Caixa 3 Caixa 4 Caixa 5 Caixa 6 Caixa 7 Caixa 8 9. 11 Caixa 10 6 Exemplo análogo Caixas postais com mensagens codificadas 1. Some o número armazenado na caixa (9) ao seu número de código de agente secreto. No. Agente = 89 No. Armazenado em (9) = 11 Caixa 2 Caixa 3 Caixa 4 Caixa 5 Caixa 6 Caixa 7 Caixa 8 89 + 11 = 100 9. 11 Caixa 10 7 Exemplo análogo Caixas postais com mensagens codificadas 1. Some o número armazenado na caixa (9) ao seu número de código de agente secreto. 2. Divida o resultado anterior pelo número armazenado na caixa (10). Caixa 3 Caixa 4 Caixa 5 Caixa 6 Caixa 7 Caixa 8 Resultado anterior = 100 No. Armazenado em (10) = ? 100 / ? = ? 9. 11 Caixa 10 8 Exemplo análogo Caixas postais com mensagens codificadas 1. Some o número armazenado na caixa (9) ao seu número de código de agente secreto. 9. 11 2. Divida o resultado anterior pelo número armazenado na caixa (10). Caixa 3 Caixa 4 Caixa 5 Caixa 6 Caixa 7 Caixa 8 Resultado anterior = 100 No. Armazenado em (10) = 2 100 / 2 = 50 10. 2 9 Exemplo análogo Caixas postais com mensagens codificadas 1. Some o número armazenado na caixa (9) ao seu número de código de agente secreto. 2. Divida o resultado anterior pelo número armazenado na caixa (10). Resultado anterior = 50 No. Armazenado em (8) = ? 50 - ? = ? 3. Subtraia o número armazenado na caixa (8). Caixa 4 9. 11 Caixa 5 Caixa 6 Caixa 7 Caixa 8 10. 2 10 Exemplo análogo Caixas postais com mensagens codificadas 1. Some o número armazenado na caixa (9) ao seu número de código de agente secreto. 2. Divida o resultado anterior pelo número armazenado na caixa (10). Resultado anterior = 50 No. Armazenado em (8) = 30 50 - 20 = 30 3. Subtraia o número armazenado na caixa (8). Caixa 4 Caixa 6 Caixa 5 8. 20 Caixa 7 9. 11 10. 2 11 Exemplo análogo Caixas postais com mensagens codificadas 1. Some o número armazenado na caixa (9) ao seu número de código de agente secreto. 2. Divida o resultado anterior pelo número armazenado na caixa (10). 3. Subtraia o número armazenado na caixa (8). 4. Se o resultado anterior não for igual a 30, vá para a caixa (7). Caso contrário continue para a próxima caixa. Resultado anterior = 30 Caixa 6 Caixa 5 8. 20 Caixa 7 9. 11 10. 2 Conjunto Instruções - Sílvio Fernandes 12 Exemplo análogo Caixas postais com mensagens codificadas 1. Some o número armazenado na caixa (9) ao seu número de código de agente secreto. 2. Divida o resultado anterior pelo número armazenado na caixa (10). 3. Subtraia o número armazenado na caixa (8). 4. Se o resultado anterior não for igual a 30, vá para a caixa (7). Caso contrário continue para a próxima caixa. 5. Subtraia 13 do resultado anterior Caixa 7 9. 11 Resultado anterior = 30 30 - 13 = 17 Caixa 6 8. 20 10. 2 13 Exemplo análogo Caixas postais com mensagens codificadas 1. Some o número armazenado na caixa (9) ao seu número de código de agente secreto. 2. Divida o resultado anterior pelo número armazenado na caixa (10). 3. Subtraia o número armazenado na caixa (8). 4. Se o resultado anterior não for igual a 30, vá para a caixa (7). Caso contrário continue para a próxima caixa. 5. Subtraia 13 do resultado anterior 6. Retorne para o quartel-general para receber mais instruções. Caixa 7 9. 11 Resultado anterior = 17 8. 20 10. 2 14 Exemplo análogo Caixas postais com mensagens codificadas 1. Some o número armazenado na caixa (9) ao seu número de código de agente secreto. 2. Divida o resultado anterior pelo número armazenado na caixa (10). 3. Subtraia o número armazenado na caixa (8). 4. Se o resultado anterior não for igual a 30, vá para a caixa (7). Caso contrário continue para a próxima caixa. 5. Subtraia 13 do resultado anterior 6. Retorne para o quartel-general para receber mais instruções. 7. 8. 20 9. 11 BOMBA! 10. 2 Resultado anterior = 17 15 Exemplo análogo Caixas postais com mensagens codificadas Quem ou que é o agente secreto? E o conjunto das caixas postais? Os números de cada caixa? 16 Exemplo análogo Caixas postais com mensagens codificadas Quem ou que é o agente secreto? E o conjunto das caixas postais? Computador que executa as instruções Memória contendo instruções (caixas de 1 a 6) e dados (8 a 10). Caixa 7 sem equivalentes nos computadores Os números de cada caixa? Endereços das posições de memória 17 Memória Principal Nos primeiros computadores as memórias de acesso aleatório eram uma matriz de loops ferromagnéticos em forma de anel (núcleos) Hoje, o uso de chips semicondutores para memória principal é quase universal 18 Memória Principal Organização Elemento básico = célula de memória Apresentam 2 estados estáveis (ou semiestáveis) Capazes de ser escritas, para definir o estado Capazes de ser lidas, para verificar o estado 19 Tecnologia de Semicondutores Tipo de memória Categoria Mecanismo de apagamento Mecanismo de escrita Volatilidade Memória de Acesso Aleatório (RAM) Memória de Leitura e escrita Eletricamente, em Nível de Byte Eletricamente Volátil Memória Apenas de Leitura (ROM) ROM Programável (PROM) Máscaras Memória apenas de leitura PROM Apagável (EPROM) Memória Flash PROM Eletricamente Apagável (EEPROM) Não é possível Luz UV, em nível de pastilha Memória Principalmente de leitura Eletricamente, em nível de Blocos Não-volátil Eletricamente Eletricamente, em nível de Bytes 20 Memórias RAM RAM dinâmica (DRAM) Células armazenam dados com a carga de capacitores É necessário um circuito de regeneração (refresh) Usada na Memória Principal RAM estática (SRAM) Valores são armazenados usando configurações de flipflops com portas lógicas Não é necessário o circuito de regeneração Usada na Memória Cache 21 Memórias ROM Memória somente leitura Não volátil, mesmo sem nenhuma fonte de energia Aplicações Bibliotecas de funções de uso frequente Programas do sistema Tabelas de função Tamanho moderado pois os dados não precisam ser armazenados em dispositivos secundários 22 Memórias ROM Tipos ROM programável (PROM) Mais barata que a ROM Pode ser escrita (eletricamente) apenas uma vez Necessário um equipamento especial para o processo de escrita ou “programação” Somente de leitura e apagável (EPROM) Lida e escrita eletricamente Antes da escrita todas as células de armazenamento são apagados através da exposição à luz ultravioleta intensa Mais cara que a PROM 23 Memórias ROM Tipos Somente de leitura programável eletronicamente (EEPROM) e apagável Escrita pode ser feita somente nos bytes endereçados sem modificar os demais Mais cara que a EPROM e menos densa Flash Intermediária entre a EPROM e EEPROM tanto no custo quanto na funcionalidade Usa tecnologia elétrica de apagamento 24 Lógica do chip Memórias semicondutoras vem em chips empacotados que contêm um array de células de memória Para mem. semicondutoras uma das principais questões de projeto é o no. de bits de dados que podem ser lidos/escritos de cada vez Em um extremo o arranjo físico de células no array é o mesmo que o arranjo lógico de palavras de memória 25 Exemplos de Arranjos Físicos das Células Exemplo #01: arranjo físico é igual ao arranjo lógico das palavras na memória – tal como é percebido pelo processador 8 bits EPROM de 8 Mbits (ou 1 MB) P0 P1 P2 1M Palavras P3 P4 ... P220 - 1 26 Exemplos de Arranjos Físicos das Células Formato da pastilha do Exemplo #01: 32 pinos 1,5 cm2 Pinos de endereço Pinos de Dados Pino de Terra A19 A16 A15 A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 Vss 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 Vcc A18 A17 A14 A13 A8 A9 A11 Vpp A10 CE D7 D6 D5 D4 D3 Pino de alimentação Pinos de endereço Pino de programação Chip Enable Pinos de Dados 27 Exemplos de Arranjos Físicos das Células Exemplo #02: arranjo em matrizes quadradas contendo grupos de células (16 Mb = 4 arrays 2048 elementos) 2048 colunas DRAM de 16 Mbits (ou 2 MB) ... ... 2048 linhas ... ... ... ... ... 11 Decodificador de linha ... 11 MUX Decodificador de coluna 11 4 28 Exemplos de Arranjos Físicos das Células Formato da pastilha do Exemplo #02: 16 pinos Pino de Alimentação Pinos de Dados Write Enable Row Address Strobe Number of Chip Pinos de endereço Pino de Alimentação Vcc D0 D1 WE RAS NC A10 A0 A1 A2 A3 Vcc 1 2 3 4 5 6 7 8 9 10 11 12 24 23 22 21 20 19 18 17 16 15 14 13 Vss D3 D2 CAS OE A9 A8 A7 A6 A5 A4 Vss Pino de Terra Pinos de Dados Column Address Strobe Output Enable Pinos de endereço Pino de Terra 29 Exemplos de Arranjos Físicos das Células O arranjo em matrizes quadradas de grupos de células possibilita pastilhas mais densas A adição de uma linha de endereço faz com que a quantidade de linhas e colunas da matriz seja duplicada A capacidade total de memória da pastilha é, portanto, quadruplicada 30 Organização em Módulos Se um chip de RAM contém apenas 1 bit por palavra, então claramente precisamos de pelo menos um número de chips igual ao número de bits por palavra A seguir um módulo de memória consistindo em 256 K palavras de 8 bits Para 256 K, um endereço de 18 bits é necessário O endereço é apresentado a 8 chips de 256 K x 1 bit, cada um oferecendo a entrada/saída de 1 bit 31 Organização em Módulos Pastilha #01 256 K x 1 bit DRAM de 256 KB 512 linhas ... 9 ... ... ... ... ... ... MAR 512 colunas ... MBR Decodificador de Coluna ... 7 ... ... 1 2 ... 512 colunas 9 ... ... ... 512 linhas 8 ... ... ... ... ... Decodificador de Coluna Pastilha #08 32 Organização em Módulos Essa organização funciona desde que o tamanho da memória seja igual ao número de bits por chip No caso em que um memória maior é necessária, um array de chips é necessário A seguir uma memória consistindo em 1M palavras por 8 bits por palavra Temos 4 colunas de chips, cada coluna contendo 256 K palavras Para 1 M palavra, 20 linhas de endereços são necessários 33 CE 1/512 CE 1/512 CE C1 1/512 1/512 B1 1/512 A1 1/512 MAR 1/512 Organização em Módulos CE D1 1/512 9 MBR 1/512 CE 1/512 CE C2 1/512 1/512 1/512 B2 CE D2 2 1/512 ... CE A2 1/512 1/512 1 9 Habilitação de Grupo CE 1/512 Grupo A Grupo B Grupo C Grupo D C8 1/512 1/512 B8 1/512 CE A8 1/512 2 1/512 8 D8 CE 1/512 CE 1/512 DRAM de 1 MB 34 Formas de Encapsulamento Módulos DIP (Dual Inline Package) Usados em PCs antigos (XTs, 286s e os primeiros 386) Soldados diretamente na placa mãe ou encaixados individualmente em soquetes disponíveis na placa Upgrade de memória ou substituição de módulos era difícil 35 Formas de Encapsulamento Módulos SIMM (Single Inline Memory Module) 30 vias 8 MB 72 vias 8 MB 36 Formas de Encapsulamento Módulos DIMM (Dual Inline Memory Module) Possuem contatos em ambos os lados do módulo Têm 168 vias Trabalham com palavras de 64 bits 37 Formas de Encapsulamento Comparação entre os tamanhos: Módulo DIMM Módulo SIMM de 72 vias Módulo SIMM de 30 vias 38 Evolução Tecnológica em DRAMs Memórias Regulares Memórias FPM Memórias EDO Memórias SDRAM Memórias DDR Memórias DDR2 39 Memórias Regulares Primeiro tipo de memória usado em PCs Acesso era feito enviando primeiro o endereço da linha e em seguida o endereço da coluna Eram fabricadas inicialmente com tempos de acesso de 150 ns; depois foram fabricadas com tempos de acesso de 120, 100 e 80 ns, para operação com o 286 Utilizadas em computadores XT, 286 e em alguns dos primeiros 386 Eram encontradas apenas sob a forma de módulos DIP 40 Memórias Regulares 41 Memórias FPM (Fast Page Mode) Transferem dados em rajadas de 4 palavras em uma mesma linha, ou página Baseadas na idéia de que os dados são gravados sequencialmente na memória Encontradas na forma de módulos SIMM de 30/72 vias e com tempos de acesso de 80, 70 e 60 ns Foram usadas em computadores 386, 486 e nos primeiros Pentium Tempos de acesso podem também ser dados em termos de ciclos de clock da placa mãe por exemplo, 5-3-3-3 em um barramento operando a 66 MHz 42 Memórias FPM (Fast Page Mode) 43 Memórias FPM (Fast Page Mode) Uma nova operação de leitura só pode ser iniciada quando a operação anterior é encerrada Pequeno atraso imposto 44 Memórias EDO (Extended Data Output) Caracterizadas pela existência de um pipeline interno à memória São mais rápidas que as memórias FPM Uma nova leitura pode ser iniciada sem que a leitura atual tenha terminado por exemplo, 5-2-2-2 em um barramento operando a 66 MHz (ganho de 25 %) Fabricadas com tempos de acesso de 70, 60 e 50 ns, encapsuladas em módulos SIMM de 72 vias 45 Memórias EDO (Extended Data Output) 46 Memórias SDRAM (Synchronous DRAM) As memórias anteriores trabalham em seus próprios ritmos, independentemente do clock da placa mãe Uma FPM projetada para funcionar em placas para processadores 386 e 486 (25/33 MHz) funciona perfeitamente em placas para processadores Pentium (66 MHz) Por isso, elas são tidas como memórias assíncronas Todas as ações em uma memória SDRAM estão sincronizadas com a borda de subida do sinal de clock da placa mãe 47 Memórias SDRAM (Synchronous DRAM) Estrutura: SDRAM de 4M x 4 bits = 2 MB CLK CS# WE# CAS# RAS# Lógica de Controle Buffer de Linha Registrador de Modo Lógica de Controle de Banco Decodificador de Linha Decodificador de Linha CKE Buffer de Entrada DQ0 ... DQ3 2048x1024x4 2048x1024x4 Buffer de Saída Decodificador deDecodificador Coluna de Coluna Buffer de Coluna 48 Memórias SDRAM (Synchronous DRAM) Configuração através do Registrador de Modo Habilitar (ou não) escrita em rajadas Definir o tamanho das rajadas (quantidade de palavras) Definir o tipo das rajadas (sequenciais ou intercaladas) Definir a latência do CAS etc 49 Memórias SDRAM (Synchronous DRAM) BA A10 A9 A8 A7 A6 A5 A4 M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0 Reservado WB Código de Op. Latência do CAS A3 BT A2 A1 A0 Tamanho da rajada Tamanho da rajada M2 M1 M0 M3 = 0 M3 = 1 M3 Tipo da rajada 000 1 1 0 Sequencial 001 2 2 1 Intercalada 010 4 4 011 8 8 100 Reservado Reservado 101 Reservado Reservado 110 Reservado Reservado 111 Pág.completa Reservado 50 Memórias SDRAM (Synchronous DRAM) BA A10 A9 A8 A7 A6 A5 A4 M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0 Reservado WB Código de Op. Latência do CAS A3 A2 A1 A0 BT Tamanho da rajada M9 Modo de escrita em rajada M6 M5 M4 Latência do CAS 0 Tamanho de rajada programado 000 Reservado 1 Escrita em uma só posição 001 1 010 2 011 3 100 Reservado M8 M7 M6-M0 Modo de operação 101 Reservado 00 definido Normal 110 Reservado - - Reservados 111 Reservado 51 Memórias SDRAM (Synchronous DRAM) Configuração do Registrador de Modo se dá através do comando LOAD MODE REGISTER Outros comandos: COMAND INHIBIT NOP Inibe a execução de comandos na SDRAM Previne a emissão de comandos indesejáveis durante estados de espera ACTIVE Abre (ativa) uma linha de um banco para acesso subsequente BA: endereço do banco A0-A10: endereço da linha no banco 52 Memórias SDRAM (Synchronous DRAM) CLK • Comando ACTIVE CKE CS# RAS# CAS# Don’t care WE# A0-A10 Endereço da Linha BA Endereço do Banco 53 Memórias SDRAM (Synchronous DRAM) Outros comandos (cont.): PRECHARGE BURST TERMINATE Trunca uma rajada em uma operação de leitura ou escrita AUTO REFRESH Desativa uma linha aberta em um banco Regenera os dados SELF REFRESH Regenera os dados na ausência do clock SDRAM provê seu próprio sinal de clock interno READ/WRITE 54 Leitura/escrita de dados Memórias SDRAM (Synchronous DRAM) CLK CKE CS# RAS# • Comando READ CAS# WE# A0-A9 Endereço da Coluna A10 Habilitar/desa bilitar auto precharge BA Endereço do Banco Don’t care 55 Memórias SDRAM (Synchronous DRAM) CLK COMANDOS READ DQ DADOS Don’t care NOP NOP DADOS Indefinido Comando READ com Latência do CAS (CL) = 1 56 Memórias SDRAM (Synchronous DRAM) CLK COMANDOS READ NOP DQ DADOS Don’t care NOP NOP DADOS Indefinido Comando READ com Latência do CAS (CL) = 2 57 Memórias SDRAM (Synchronous DRAM) CLK COMANDOS READ NOP NOP DQ NOP DADOS Don’t care NOP DADOS Indefinido Comando READ com Latência do CAS (CL) = 3 58 Memórias SDRAM (Synchronous DRAM) Comparação entre SDRAM de 12 ns e EDO de 60ns: Barramento operando em 66 MHz: SDRAM: 5+1+1+1 = 8 ciclos em 4 acessos EDO: 5+2+2+2 = 11 ciclos em 4 acessos Conclusão: SDRAM é 30% mais rápida que a EDO Barramento operando em 82 MHz: SDRAM: 5+1+1+1 = 8 ciclos em 4 acessos EDO: 6+3+3+3 = 15 ciclos em 4 acessos Conclusão: SDRAM é 47 % mais rápida que a EDO 59 Parâmetros de Especificação CL/tRCD/tRP/tRAS/CMD CL : intervalo de tempo entre a ativação do CAS e a recepção dos dados tRCD: tempo compreendido entre a ativação do RAS e a ativação do CAS tRP: tempo requerido entre o término do acesso de uma linha e o início do acesso a uma outra tRAS: tempo decorrido da recepção do sinal de seleção de linha no terminal RAS até a sua ativação propriamente dita CMD: define o tempo compreendido entre a seleção de um banco (CS – Chip Select) e a emissão de um comando ACTIVE 60 Parâmetros de Especificação CLK ACTIVE COMANDOS NOP NOP READ/ WRITE NOP tRCD Don’t care Visualização do parâmetro tRCD 61 Parâmetros de Especificação CLK tRP READ COMANDOS ENDEREÇOS PRE CHARGE NOP NOP BANCO a, COL n BANCO a, COL m DADOS DQ Don’t care READ DADOS Indefinido Visualização do parâmetro tRP 62 Parâmetros de Especificação Exemplo: 2-2-2-5-T1 CL = 2 (ciclos) tRCD = 2 (ciclos) tRP = 2 (ciclos) tRAS = 5 (ciclos) CMD = 1 (ciclo) Parâmetros gravados no módulo Podem ser mudados via SETUP do BIOS Configuração do Registrador de Modo 63 Parâmetros de Especificação Memórias SDRAM são especificadas também de acordo com a frequência nominal do barramento, na forma PCxxx Exemplos PC66 → 66 MHz PC100 → 100 MHz PC133 → 133 MHz 64 Memórias DDR (Double Data Rate) Também chamadas de DDR SDRAM Transferência de dados se dá na borda de subida e na borda de descida do clock Os módulos DIMM DDR e SDRAM são muito semelhantes, diferenciando-se em: SDRAM Módulo tem 168 terminais Chanfro duplo DDR Módulo tem 184 terminais Chanfro único 65 Memórias DDR CLK COMANDOS DQ READ NOP NOP DADOS NOP DADOS DADOS NOP DADOS Don’t care Comando READ com Latência do CAS = 2 Valores usuais para CL: 2, 2.5 e 3 66 Memórias DDR2 Transferem dados nas bordas de subida e descida do sinal de clock (como as DDR) Diferenças entre DDR, DDR2 e DDR3 Versões encontradas no mercado DDR: 266 MHz, 333 MHz e 400 MHz DDR2: 533 MHz, 677 MHz e 800 MHz DDR3: 1066MHz (2x533) ou 1333MHz (2x667) Alimentação DDR: 2,5 V DDR2: 1,8 V DDR3: 1,5 V 67 Memórias DDR2 Diferenças entre DDR2 e DDR (cont.): Encapsulamento: DDR: Módulos DIMM possuem 184 terminais DDR2: Módulos DIMM possuem 240 terminais 68 Memórias DDR2 Diferenças entre DDR2 e DDR (cont.): Arranjos dos chips nos módulos: DDR: Arranjos TSOP (Thin Small-Output Package) DDR2: Arranjos BGA (Ball Grid Array) 69 Parâmetros de Especificação DDR(2)xxx/PC(2)yyyy xxx é o dobro da frequência nominal de clock suportada pelo chip de memória, em MHz yyyy é a taxa de transferência máxima alcançada pelo módulo de memória, em MB/s Exemplos: DDR400 → 200 MHz; PC3200 → 3200 MB/s DDR2-667 → 333 MHz; PC2-5400 → 5336 MB/s Parâmetros gravados no módulo 70 Referências • STALLINGS, W. Arquitetura e organização de computadores: projeto para o desempenho. 8. ed. Prentice Hall, 2009. • DELGADO, J.; RIBEIRO, C. Arquitetura de Computadores. 2 ed. LTC, 2009. • PATTERSON, D. A. ; HENNESSY, J.L. Organização e projeto de computadores – a interface hardware software. 3. ed. Editora Campus, 2005. 71