PUC-Rio Memórias: ROM, RAM, DRAM 1 Classificação de Memórias Semicondutoras PUC-Rio • Volatilidade – Volátil e Não Volátil • Acesso – Leitura e Escrita ou Somente Leitura • Tipos – RAM – DRAM – ROM – PROM – EPROM – E2PROM – FLASH Random Access Memory (static) Dynamic RAM Read Only Memory User-Programmable ROM Erasable PROM Electrically EPROM Flash E2PROM 2 Classificação de Memórias Semicondutoras PUC-Rio • Tecnologia – Bipolar – CMOS Transistores Bipolares (npn, pnp) Complementary Metal Oxide Silicon • Estrutura de Acesso – Aleatório – Disciplinado (pilha, fila, etc) • Endereçamento – bit, byte, bloco 3 PUC-Rio Características Importantes • Capacidade: mega bits, bytes – Ex: 1024 bits • Organização: M palavras de N bits – Ex: 1024x1 , 256x4 bits • Tempo de Acesso: nano segs • Consumo/Dissipação: m amp • Densidade de Integração: área do chip, # gates Bipolar CMOS Capacidade baixa alta Velocidade alta média/alta Consumo alto baixo Densidade baixa alta 4 PUC-Rio Estrutura Básica de Chips de Memória A1 Sinais de A2... Endereço células D1 An-1 D2... Memória Dados Dn-1 Sinais de Controle R/W CS 5 PUC-Rio ROM - Read Only Memory • Pré-gravadas: modo permanente ou semi-permanente • Não volátil • n sinais de endereço; 2n palavras de b bits 6 PUC-Rio Porque memória “ROM”? • Armazenamento de Programas – Boot ROM de computadores pessoais – Programas residentes em equipamentos, jogos, etc. • ROM é um circuito combinacional: truth-lookup table – pode executar qualquer função combinacional lógica – Endereço = entradas da função – Saídas = saídas da função 7 PUC-Rio Estrutura Interna da ROM • ROM = decodificador + codificador A0 endereço 2n dados b bits An-1 Decodificador Codificador 8 PUC-Rio ROM implementando: Decodificador 2-to-4 c/ controle de polaridade da saída decodificador codificador 9 PUC-Rio Multiplicador 4x4 End=36 X=6; Y=3 Endereço Conteúdo P=18=12H 10 PUC-Rio Estrutura interna da ROM 11 Decodificação em duas dimensões: PUC-Rio reduz complexidade decodificador 12 PUC-Rio 32Kx8 ROM 13 PUC-Rio ROMs modernas • 256K bytes, 1M byte, ou maior • Usa transistores MOS como chaves 14 Tipos de ROM • ROM PUC-Rio Read Only Memory – programada na fábrica através da metalização nos pontos de interconexão dos diodos • PROM User-Programmable ROM – programada pelo usuário (alta corrente) através da queima de fusível (desliga diodo); não permite alterações • EPROM Erasable PROM – programada eletronicamente; exposição a luz ultra violeta apaga o conteúdo • E2PROM Electrically EPROM – apagada e escrita eletronicamente, byte a byte • FLASH Flash E2PROM – apagada eletronicamente todo o conteúdo de uma vez15 PUC-Rio EPROM • possui floating gate MOS transistor em cada bit; • floating gate é não conectado e está cercado de material de altíssima impedância; • alta voltagem aplicada aos bits que devem ser 0, rompe isolante e armazena carga negativa no floating gate; • carga negativa previne que o transistor MOS conduza nas operações de leitura; • carga pode permanecer por 10 anos ou removida por 15-20 minutos de luz ultra violeta (bit=1); • chip possui janela de vidro para exposição à luz; 16 PUC-Rio Estrutura da EPROM floating gate é não conectado e está cercado de material de altíssima impedância carga negativa previne que o transistor MOS conduza nas operações de leitura 17 PUC-Rio EPROMs Comerciais - Chips 28 pinos 18 PUC-Rio EEPROMs, Flash PROMs • Semelhante a EPROM porém, bits podem ser apagados eletronicamente com VPP = 12 V • Floating-gate MOS transistors possuem camada fina de isolante que permite eliminar a carga através de tensão de polaridade oposta; • Pode ser reprogramada 10000 vezes; • Escrita demora muito mais que leitura: milliseconds vs. dezenas de nanosegundos; • Apagar – Byte-byte – Chip inteiro (“flash”) • FLASH PROM pode ser apagada de uma só vez, aproximando-se de um “RAM” não volátil. 19 PUC-Rio ROM: Sinais de Control e E/S Chip Select Output Enable 20 EPROM em Microprocessadores PUC-Rio 128Kx8 localizada no extremo A19=A18=A17=1 21 PUC-Rio Espaço de Endereçamento • Corresponde à capacidade de endereçamento (direto ou indireto) de um processador: 2n • Representado pelos n sinais de endereço: Ai An-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... A19 0 0 0 0 0 0 0 0 0 0 0 0 0 1 A18 0 0 0 0 0 0 0 0 0 0 0 0 1 A17 0 0 0 0 0 0 0 0 0 0 0 1 A16 0 0 0 0 0 0 0 0 0 0 1 A15 0 0 0 0 0 0 0 0 0 1 A14 0 0 0 0 0 0 0 0 1 A13 0 0 0 0 0 0 0 1 A12 0 0 0 0 0 0 1 A11 0 0 0 0 1 1 A10 0 0 0 1 0 1 A9 0 ... 1 .... 0 ... 1 A0 0 ... 1 22 1K 2K 3K 4K 8K 16K 32K 64K 128K 256K 512K 1M 2n PUC-Rio Operação da EPROM Read Output Disable Standby (35 ma) Program CE_L 0 0 1 0 OE_L/VPP 0 1 X VPP VCC 5v 5v 5v 5v OUTPUT Dout Z Z Din 23 PUC-Rio ROM - Diagramas de Tempo • Leitura • • • • • tAA - access time from address tACS - access time from chip select tOE - output-enable time tOZ - output-disable time tOH - output-hold time 24 Definição do Tempos PUC-Rio • tAA - access time from address – delay entre endereços estáveis e saídas válidas • tACS - access time from chip select – delay entre CS e saídas válidas • tOE - output-enable time – delay entre OE e CS ativados, até 3-states de saída sairem de alta impedância • tOZ - output-disable time – delay entre OE e CS desativados, até 3-states de saída entrarem em alta impedância • tOH - output-hold time – delay no qual as saídas continuam válidas após mudar 25 endereço ou após desativar CS e OE PUC-Rio Projeto • Projete um circuito para a geração e visualização em matrizes 8x8 LEDs dos caracteres de A a D, utilizando ROM (32x8). – Neste esquema cada caracter é representado por n (8) posições consecutivas da ROM: bit=1 significa pixel aceso. – O circuito deve exibir a cada instante um caracter indicado pelo seu código (2 bits) fornecido ao circuito. – As saídas da ROM devem acionar uma linha da matriz de LEDs a cada ciclo de varredura. 26 PUC-Rio Projeto • Sugestão: código caracter= end. alto; contador(8)= end. baixo; conteúdo EPROM=matriz de pixels; • ROM é lida continuamente, palavra a palavra; • Cada 8 palavras consecutivas referem-se a 8 linhas da matriz de um caracter; • Palavras subsequentes acionam linhas subsequentes na matriz; • Somente uma linha está ativa (acesa) a cada ciclo; • A sensação visual corresponde a forma do caracter. 27 PUC-Rio RAM-Memória de Leitura/Escrita • “RAM” (Random Access Memory) • Volatilidade – RAMs perdem seu conteúdo quando alimentação é removida – NVRAM = RAM + bateria (non-volatile RAM) • SRAM (Static RAM) – Memória comporta-se como latches • DRAM (Dynamic Memory) – Conteúdo da memória mantem-se por apenas alguns milisegundos – É preciso “refrescar” posições através de leitura ou escrita 28 PUC-Rio SRAM Chip Select Output Enable Write Enable (read/write_L) 29 PUC-Rio Operação da SRAM • Células de bits são latches tipo D, não flip-flops edge-triggered tipo D. – conteúdo (Q) é sensível a entrada (D) – poucos transistores por célula. • Implicações para operações de escrita: – Endereços devem estar estáveis antes de escrever. – Dado deve permanecer estável até o final da escrita. 30 PUC-Rio SRAM: Estrutura Interna 31 PUC-Rio SRAM: Linhas de controle • Chip select • Output enable • Write enable 32 PUC-Rio SRAM - Leitura • Similar a ROM tRC • • • • • • tAA - access time from address tACS - access time from chip select tOE - output-enable time tOZ - output-disable time tOH - output-hold time tRC - read cycle time 33 PUC-Rio SRAM - Escrita tWC • • • • • • • tAS - address setup time before write tAH - address hold time after write tCSW - chip select setup before end of write tWP - write pulse width tDS - data setup time before end of write tDH - data hold time after end of write tWC - write cycle time • Endereço deve estar estável antes e depois do acionamento de writeenable. • Dado é armazenado na subida de (WE & CS). 34 PUC-Rio Definição do Tempos • tAS - address setup time before write – endereço deve estar estável antes de CS e WE senão posições imprevisíveis podem ser alteradas • tAH - address hold time after write • tCSW - chip select setup before end of write • tWP - write pulse width – tempo durante o qual WE deve estar acionado para o armazenamento confiável do dado na célula • tDS - data setup time before end of write • tDH - data hold time after end of write • tR/WC - read/write cycle time – duração de um ciclo completo de leitura/escrita 35 PUC-Rio Dados bidirecionais • Usa os mesmos sinais para leitura e escrita – mais comum em RAM de vários bits – compatível para uso com barramentos bidirecionais de microprocessadores 36 PUC-Rio Chips SRAM • Similar aos chips ROM 8kx8 32kx8, 28-pin DIPs 128kx8 512kx8 32-pin DIPs 37 PUC-Rio 2114 1024 x 4 bit Static RAM 38 PUC-Rio Diagrama de Tempo 39 PUC-Rio Diagrama de Tempo 40 PUC-Rio Exemplo • Projete uma placa de memória estática (chips + decodificação de endereço) contendo 16K x 8 bits, usando os chips: – 1o. caso: 2114 (1024 x 4 bits) – 2o. caso: 2147 (4096 x 1 bit) • Capacidade total da placa = 128K bits • Número de chips necessários: – 1o. Caso = 32 – 2o. Caso = 32 • use 1 RAM 1K no lugar da 2114 e 4 RAM 1K no lugar da 2147; despreze bits. 41 PUC-Rio Solução 1o. Caso (16Kx16) U7 74LS154 A13 A12 A11 A10 E1 E0 A3 A2 A1 A0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 R/W U1 RAM1K A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 CS WE IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0 U3 RAM1K A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 CS WE IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0 U5 RAM1K A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 CS WE IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0 U2 RAM1K A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 CS WE IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0 U4 RAM1K A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 CS WE IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0 U6 RAM1K A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 CS WE IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0 42 PUC-Rio Projeto • Projete uma placa de memória RAM estática de 32K x 9bits - 8 bits de dados, com armazenamento e verificação de paridade (1 bit). • Sugestão: – veja exemplo na aula de XOR; – use a RAM 1K e implemente 32Kx16 bits (haverá desperdício de 7 bits) 43 PUC-Rio DRAM (Dynamic RAMs) • SRAMs tipicamente usam 6 transistores por célula de um bit. • DRAMs usam apenas um transistor por bit: há mais memória por área de silício • conteúdo 1/0 equivale à carga/descarga do capacitor do gate capacitor equivalente do gate do 1-bit cell transistor 44 PUC-Rio DRAM - Operação S1 S2 Operação Write Read Refresh S1 close close close S2 open close close S3 open close close Rfuga Cgate Ampl Comparador - S3 IN Circuito comum a cada coluna da matriz + Vref OUT 45 PUC-Rio DRAM - Leitura – Pré-carga de bit line até VDD/2. – Faz word_line = HIGH. – Detecta se há passagem de corrente de/para a célula (se carga < ou > VDD/2). – Conteúdo da célula é destruído na leitura. – Bit deve ser re-escrito de volta. 46 PUC-Rio DRAM - Escrita – Faz word line = HIGH. – Faz bit line = LOW ou HIGH para armazenar 0 ou 1. – Faz word line = LOW. – A carga armazenada para nível 1 vai eventualmente vazar. 47 PUC-Rio DRAM - Fuga de Carga • DRAM típica requer que cada célula seja refrescada uma vez a cada 4 a 64 ms. 48 PUC-Rio Operação da DRAM: RAS/CAS • DRAM de 2n posições de b bits • Sinais: – RAS: Row Address Strobe, – CAS: Column Address Strobe • n sinais de endereço são fornecidos ao chip de DRAM em 2 passos, usando n/2 pinos apenas: – 1o. Passo: endereço de linha na descida de RAS_L – 2o. Passo: endereço de coluna na descida de CAS_L • Método tradicional de operação de DRAM por 20 anos. • CAS_L faz papel de chip select 49 PUC-Rio DRAM-Organização Interna 64K x 1 DRAM Seleção de todas as células da mesma linha 256 C A0-A7 C C C C Matriz de Células: Circuito comum às colunas A8-A15 Leitura do bit selecionado pelo end. de coluna 50 PUC-Rio Refresh • Células são organizadas em vetores: – seleção de uma linha, efetua o refresh de todas os bits da linha • Exemplo: 2116 16Kx1bit DRAM – 128 linhas x 128 colunas – Trefresh = 2 ms; Taccess = 500 ns – requer 128 ciclos de refresh de duração de 500 ns – 1 ciclo de refresh a cada 2/128 = 15,6 µs – durante refresh processador fica em WAIT 1o. ciclo t 500 ns 15,6 µs 2o. ciclo 500 ns 15,6 µs t + Tref 500 ns 51 PUC-Rio DRAM - Leitura 52 PUC-Rio DRAM - refresh 53 PUC-Rio DRAM - Escrita 54 PUC-Rio Outros tipos de Ciclos • CAS-before-RAS – se CAS é acionado antes de RAS, chip refresca linha selecionada por um contador interno e incrementa contador; simplifica projeto; elimina contador de refresh externo. • read-modify-write – leitura seguida de escrita da mesma posição • page-mode-read – permite que uma linha inteira (page) seja lida mantendose RAS low e pulsando-se CAS; acesso mais rápido a dados que estão próximos • page-mode-write – escrita, similar a page-mode-read 55 PUC-Rio Outros tipos de Ciclos • static-column-mode read – similar a page mode; end. de coluna não é armazenado na DRAM; assim, outro bit da mesma coluna pode ser lido, mudando-se o end. de coluna sem pulsar CAS. • static-column-mode write – escrita, similar a static-column-mode read; é necessário negar CAS ou WE na mudança de endereço. • nibble-mode read – similar a page-mode; o chip de DRAM gera uma sequência de endereços a partir do endereço fornecido no início do ciclo RAS-CAS; • nibble-mode write – idem, write 56 PUC-Rio Outros Tipos de DRAM • EDRAM: Enhanced DRAM • CDRAM: cache-DRAM • SDRAM: Synchronous DRAM • RDRAM: Rambus DRAM 57 PUC-Rio Símbolos Lógicos de DRAMs 5 7 6 12 11 10 13 9 2 4 15 3 64K ×1 256K ×1 64K ×4 1M ×1 256K ×4 4164 4256 4464 41000 44256 A0 A1 A2 A3 A4 A5 A6 A7 DIN RAS CAS WE 5 7 6 12 11 10 13 9 DOUT 14 1 2 4 15 3 A0 A1 A2 A3 A4 A5 A6 A7 A8 DIN RAS CAS WE 14 13 12 11 8 7 6 10 5 DOUT 14 16 4 1 A0 A1 A2 A3 A4 A5 A6 A7 RAS CAS WE OE 5 6 7 8 2 DIO1 3 DIO2 15 DIO3 17 DIO4 10 11 12 13 14 15 1 3 16 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 DIN RAS CAS WE 6 7 8 9 11 12 13 14 15 4 DOUT 17 17 3 16 A0 A1 A2 A3 A4 A5 A6 A7 A8 RAS CAS WE OE 1 DIO1 2 DIO2 18 DIO3 19 DIO4 Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e 58