Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Sistemas Digitais Aula 21 Memo´ria Eduardo Peixoto Departamento de Engenharia Ele´trica Faculdade de Tecnologia Universidade de Bras´ılia 1 / 1 Suma´rio Aula 21 ROM - Read-Only Memory Estrutura Interna da ROM ROMs Comerciais Static RAM Dynamic RAM 2 / 1 Memo´ria Todo circuito sequencial tem um tipo de memo´ria, pois todo latch ou flip-flop armazena 1 bit de informac¸a˜o. No entanto, costumamos chamar de memo´ria bits que esta˜o armazenados de maneira estruturada, usualmente com um enderec¸o e um dado. 3 / 1 ROM - Read-Only Memory ROM - Read-Only Memory 4 / 1 ROM - Read-Only Memory Uma ROM e´ um circuito combinacional com n entradas e b sa´ıdas. As entradas sa˜o chamadas de enderec¸os e as sa´ıdas sa˜o chamadas de dados. Uma ROM e´ um tipo de memo´ria na˜o-vola´til, isto e´, seu conteu´do e´ preservado mesmo que o circuito seja desenergizado. 2 n ×b ROM A0 A1 D0 A2 D1 An–2 Db–1 An–1 address inputs data outputs 5 / 1 ROM - Read-Only Memory Como a ROM e´ um circuito combinacional, ela na˜o e´ uma memo´ria no sentido estrito. Em termos de circuito, podemos pensar em uma ROM como um circuito combinacional qualquer. No entanto, podemos pensar que a informac¸a˜o e´ armazenada na ROM quando ela e´ produzida (ou programada). 6 / 1 ROM - Read-Only Memory Podemos usar uma ROM para realizar uma lo´gica combinacional qualquer. Considere a tabela a seguir (um decodificador 2-para-4 com um controle de polaridade da sa´ıda): Inputs Outputs A2 A1 A0 D3 D2 D1 D0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 7 / 1 ROM - Read-Only Memory E´ comum especificarmos o conteu´do de uma ROM escrevendo o seu conteu´do em hexadecimal. No exemplo: Adress Data 0 E 1 D 2 B 3 7 4 1 5 2 6 4 7 8 8 / 1 ROM - Read-Only Memory Podemos implementar essa tabela com o circuito: I0 (A0) (A1) (A2) I1 POL Y0 (D0) (D1) (D2) (D3) Y1 Y2 Y3 9 / 1 ROM - Read-Only Memory Podemos usar os dados armazenados em uma ROM para implementar func¸o˜es lo´gicas complexas. Por exemplo, um circuito o´timo para um multiplicador de duas palavras de 4 bits necessitaria de 36 termos-produto. A0 A1 D0 A2 A3 A4 A5 A6 A7 P0 P1 P2 P3 P4 P5 P6 P7 D1 D2 D3 D4 D5 D6 D7 Y0 Y1 Y2 Y3 X0 X1 X2 X3 multiplicand multiplier product 256 ×8 ROM 10 / 1 ROM - Read-Only Memory Pore´m, ele pode ser facilmente implementado por uma ROM 256× 8 com a tabela (podemos escrever um pequeno programa em C para fazer a tabela): Table 10-3 Hexadecimal text file specifying the contents of a 4 × 4 multiplier ROM. 00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 20: 00 02 04 06 08 0A 0C 0E 10 12 14 16 18 1A 30: 00 03 06 09 0C 0F 12 15 18 1B 1E 21 24 27 40: 00 04 08 0C 10 14 18 1C 20 24 28 2C 30 34 50: 00 05 0A 0F 14 19 1E 23 28 2D 32 37 3C 41 60: 00 06 0C 12 18 1E 24 2A 30 36 3C 42 48 4E 70: 00 07 0E 15 1C 23 2A 31 38 3F 46 4D 54 5B 80: 00 08 10 18 20 28 30 38 40 48 50 58 60 68 90: 00 09 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 A0: 00 0A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 B0: 00 0B 16 21 2C 37 42 4D 58 63 6E 79 84 8F C0: 00 0C 18 24 30 3C 48 54 60 6C 78 84 90 9C D0: 00 0D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 E0: 00 0E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 F0: 00 0F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 11 / 1 Estrutura Interna da ROM Estrutura Interna da ROM 12 / 1 Estrutura Interna da ROM O mecanismo que a ROM usa para guardar o bit de informac¸a˜o varia dependendo da tecnologia. Na maioria delas, a ROM utiliza diodos (ou transistores) para armazenar o bit. R 5V F B A A B F 0 0 0 0 1 0 1 0 0 1 1 1 13 / 1 Estrutura Interna da ROM A ROM do exemplo anterior poderia ser constru´ıda como: D0 0 1 0 0 D2 D3 +5 V +5 V U1 74x138 ROW0_L HIGH HIGH HIGH HIGH HIGH LOW HIGH HIGH R R ROW1_L ROW2_L ROW3_L ROW4_L ROW5_L ROW6_L ROW7_L 74HC14 D0_L D1_L D2_L D3_L G2A G1 G2B Y0 Y1 Y2 Y3 6 15 14 13 1 3 5 9 8 6 4 2 4 5 B A C A1 A01 0 1 A2 Y4 Y5 Y6 Y7 1 12 11 10 9 7 2 3 D1 U2 U2 U2 U2 HIGH LOW HIGH HIGH 14 / 1 Estrutura Interna da ROM A intersec¸a˜o entre uma linha de palavra e uma linha de bit corresponde a um bit de “memo´ria”. Se um diodo for colocado nessa intersec¸a˜o, um bit 1 e´ armazenado. Caso contra´rio, um bit 0 e´ armazenado. Assim, podemos “programar” essa memo´ria inserindo e removendo diodos! 15 / 1 Estrutura Interna da ROM O antigo computador DEC-PDP 11 funcionava dessa forma. Ele vinha acompanhado de 512 diodos para a programac¸a˜o do bootstrap module. 16 / 1 Estrutura Interna da ROM 17 / 1 Decodificac¸a˜o Bidimensional Para construir uma ROM 128× 1 seria necessa´rio um decodificador 7-para-128, o que iria precisar de 128 NANDs de 7 entradas, ale´m de 14 buffers e inversores com um fan-out de 64 cada um. 18 / 1 Decodificac¸a˜o Bidimensional Existem ROMs com milho˜es de bits. Seria invia´vel utilizar um decodificador 20-para-1.048.576. Ao inve´s disso, elas utilizam uma estrutura mais inteligente. 19 / 1 Decodificac¸a˜o Bidimensional +5 V 3-to-8 decoder 0 1 2 3 1 0 2 A5 A4 A6 A1 A0 A2 A3 S1 16-to-1 multiplexer D0 Y S0 S2 S3 4 5 6 7 R 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 20 / 1 Decodificac¸a˜o Bidimensional Assim, uma ROM com 1M × 1 poderia ser realizada com um decodificador 10-para-1024 e um multiplexador 1024-para-1. O que seria muito mais simples do que um decodificador 20-para-1.048.576. 21 / 1 Decodificac¸a˜o Bidimensional Podemos usar esse esquema para fazer uma ROM 32K × 8. 64-to-1 mux 64-to-1 mux 64-to-1 mux 64-to-1 mux 64-to-1 mux 64-to-1 mux 64-to-1 mux 64-to-1 mux A6 A7 A8 A9 A10 A11 A12 A13 A14 A0 A1 A2 A3 A4 A5 9-to-512 decoder 512 ×64 a��a� D7 D6 D5 D4 D3 D2 D1 D0 512 ×64 a��a� 512 ×64 a��a� 512 ×64 a��a� 512 ×64 a��a� 512 ×64 a��a� 512 ×64 a��a� 512 ×64 a��a� 22 / 1 Estrutura Interna da ROM A maioria das ROMs utiliza transistores no lugar de diodos. R 5V F B A A B F 0 0 1 0 1 0 1 0 0 1 1 0 23 / 1 Estrutura Interna da ROM decoderaddress inputs V DD active-high decoder outputs active-low bit lines, pulled LOW if transistor present data to inverting output buffers R 24 / 1 ROMs Comerciais ROMs Comerciais 25 / 1 ROMs Comerciais O tipo mais simples de ROM e´ chamada de mask programmable ROMs ou, simplesmente, mask ROMs. Neste tipo de ROM o projetista faz uma ma´scara e entrega ao fabricante, que a usa para fabricar o chip de uma ROM com aquelas interconexo˜es. O prec¸o deste tipo de ROM faz com que ela so´ seja via´vel em projetos de larga escala. 26 / 1 ROMs Comerciais Uma programmable read-only memory (PROM) resolve este problema de uma forma bastante simples: o chip e´ feito com todos os diodos (ou transistores) conectados. Ale´m disso, um pequeno fus´ıvel e´ utilizado para desconectar esses diodos/transistores. Selecionando uma determinada linha de dados, e aplicando uma tensa˜o mais alta em um pino especial (de 10V a 30V), o fus´ıvel e´ destru´ıdo, mudando o valor do bit armazenado. Como o fus´ıvel e´ destru´ıdo, ela so´ pode ser escrita uma vez, em um processo trabalhoso. Pore´m, isso pode ser feito em pequena escala. 27 / 1 ROMs Comerciais Circuito para uma EPROM. Coluna Linha R 5V 28 / 1 ROMs Comerciais Outro tipo de ROM e´ a erasable programmable read-only memory (EPROM). Similar a` PROM, o chip vem de fa´brica com todos os transistores conectados. Pore´m, ao inve´s de utilizar fus´ıveis, a EPROM utiliza transistores do tipo floating-gate, que podem ser desativados utilizando uma tensa˜o mais alta. A vantagem da EPROM e´ que o conteu´do da ROM pode ser apagado (retornando ao estado original) expondo o chip a luz ultravioleta por um determinado tempo. 29 / 1 ROMs Comerciais 30 / 1 ROMs Comerciais 31 / 1 ROMs Comerciais Finalmente temos a electrically erasable programmable read-only memory (EEPROM). Similar a` EPROM, pore´m os bits podem ser escritos e apagados eletricamente. EEPROMs de grande capacidade permitem que apenas blocos inteiros possam ser apagados (ao inve´s de bits individuais). Isso aumenta muito a velocidade da memo´ria, e da´ nome a esse tipo de memo´ria: memo´ria flash (um bloco pode ser apagado “in a flash”). 32 / 1 ROMs Comerciais 33 / 1 ROMs vs Circuit Design Vantagens da ROM: Mais ra´pidas para circuitos de maior complexidade. Sua func¸a˜o pode ser facilmente modificada. Desvantagens da ROM: Para circuitos mais simples, a ROM e´ mais cara e gasta mais energia. Para func¸o˜es com muitas entradas (25+) a implementac¸a˜o em ROM pode ficar impratica´vel. Ex.: Somador de 16 bits. 34 / 1 Read/Write Memory Read/Write Memory 35 / 1 Read/Write Memory Read/Write Memory e´ o nome dado a memo´rias que podem ser lidas e escritas. A maior parte hoje e´ do tipo RAM - Random Access Memory. O nome vem do fato de que o tempo de escrita/leitura independe do enderec¸o. 36 / 1 Serial Access Memory Chamamos de serial access memory (ou sequential access memory - SAM) o tipo de memo´ria onde uma localizac¸a˜o particular esta´ imediatamente acess´ıvel, pore´m outras posic¸o˜es precisam de passos adicionais para acesso. Exemplos incluem HD, CDs, m´ıdia magne´tica... 37 / 1 Memo´ria Vola´til Uma RAM e´ um tipo de memo´ria vola´til - uma vez que o circuito e´ desenergizado, os dados sa˜o perdidos. Pore´m, existem dois tipos principais de RAM: Static RAMs: uma vez que um bit e´ escrito em uma posic¸a˜o, ele permanece armazenado enquanto o chip estiver energizado. Dynamic RAMs: o dado precisa ser re-escrito periodicamente ou ele desaparece. 38 / 1 Static RAMs 2 n × A0 A1 DOUT0 DOUT1 An–1 address inputs DIN0 DIN1 DINb–1 DOUTb–1 CS OE WE data inputs data outputs control inputs 39 / 1 Static RAMs OUT IN S���� D Q C W��� IN S�� W� OUT 40 / 1 Static RAMs IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� IN OUT ��� D�� � D�� � DOUT1 DOUT0 � 3��3� decoder D �� � D �� � DIN1 DIN0 bit line w��� ���ff 0 1 � �� 1 0 4 5 6 7 A � A1 A0 fiflffi� C ffi� � flffi� fi!ffi� � � flffi� 41 / 1 Static RAMs Alguns cuidados devem ser tomados: Os dados sa˜o armazenados em latches! Logo, os tempos de setup e hold devem ser respeitados. O enderec¸o deve ser mantido esta´tico durante a escrita, sob o risco do dado se espalhar para outros enderec¸os. 42 / 1 Dynamic RAMs Os latches sa˜o constru´ıdos com muitos transistores, o que na˜o e´ ideal quando queremos aumentar a densidade da memo´ria. O ideal seria usar apenas um transistor para cada bit armazenado. Pore´m, na˜o e´ poss´ıvel fazer elementos biesta´veis com apenas um transistor. A soluc¸a˜o e´ mudar um pouco o circuito. 43 / 1 Dynamic RAMs word line bit line 44 / 1 Dynamic RAMs O bit e´ armazenado na forma de carga naquele pequeno capacitor. Isso ocasiona alguns problemas: A leitura destro´i o bit gravado! Logo, o dado deve ser re-escrito sempre que ele e´ lido. Uma corrente de fuga descarrega esse capacitor - ele esquece o bit que foi gravado! A soluc¸a˜o e´ utilizar um refresh: a memo´ria e´ re-escrita o tempo todo (a cada 20 a 60 ms). Isto quer dizer que a memo´ria na˜o esta´ dispon´ıvel todo o tempo. Pore´m, como o tempo de leitura/escrita e´ muito menor do que o tempo de refresh, a memo´ria esta´ dispon´ıvel na maior parte do tempo (+99%). 45 / 1 Dynamic RAMs VCC LOW 1 written0 stored refresh refresh refresh time Vcap 46 / 1 Exerc´ıcios Exerc´ıcios Desenhe o esquema´tico do circuito descrito pela tabela verdade abaixo utilizando apenas um decodificador 4-para-16 e alguns diodos. Linha W X Y Z F1 F2 F3 F4 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1 2 0 0 1 0 1 1 0 0 3 0 0 1 1 0 0 1 0 4 0 1 0 0 0 0 1 0 5 0 1 0 1 0 1 0 1 6 0 1 1 0 1 1 1 0 7 0 1 1 1 1 0 1 0 8 1 0 0 0 0 0 0 0 9 1 0 0 1 1 1 0 1 10 1 0 1 0 1 1 0 0 11 1 0 1 1 1 0 0 1 12 1 1 0 0 0 0 0 0 13 1 1 0 1 0 1 1 1 14 1 1 1 0 1 1 0 0 15 1 1 1 1 1 0 1 1 47 / 1 Exerc´ıcios Exerc´ıcios Desenhe o esquema´tico do circuito descrito pela tabela verdade abaixo utilizando apenas um decodificador 2-para-4, alguns multiplexadores 4-para-1 e alguns diodos. Linha W X Y Z F1 F2 F3 F4 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1 2 0 0 1 0 1 1 0 0 3 0 0 1 1 0 0 1 0 4 0 1 0 0 0 0 1 0 5 0 1 0 1 0 1 0 1 6 0 1 1 0 1 1 1 0 7 0 1 1 1 1 0 1 0 8 1 0 0 0 0 0 0 0 9 1 0 0 1 1 1 0 1 10 1 0 1 0 1 1 0 0 11 1 0 1 1 1 0 0 1 12 1 1 0 0 0 0 0 0 13 1 1 0 1 0 1 1 1 14 1 1 1 0 1 1 0 0 15 1 1 1 1 1 0 1 1 48 / 1
Compartilhar