Memória Nível da Lógica Digital (Aula 8) Memória Nível Lógico A memória é usada para armazenar tanto instruções a serem executadas quanto os dados usados na execução de algumas dessas instruções Para se criar uma memória de 1 bit, precisamos de um circuito que de alguma forma seja capaz de lembrar valores anteriores que lhe foram fornecidos como entrada. Esse circuito deve guardar esses valores anteriores, possuindo assim uma memória Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Agradecimentos: Camilo Calvi - LPRM/DI/UFES 2 Circuito combinacional x sequencial Latches (1) Circuito combinacional A saída depende apenas de uma combinação das entradas Circuito seqüencial A saída depende, além de uma combinação das entradas, de uma combinação das variáveis de estado do sistema, ou seja, de variáveis que identifiquem o estado em que o sistema se encontrava Isso significa que o sistema necessita possuir (memorizar) o estado atual para alcançar o estado seguinte Latch SR (Set/Reset) Pode ser construído com portas NOR ou NAND Ao contrário dos circuitos combinacionais, as saídas do latch não são determinadas unicamente pelas entradas correntes (nesse caso, depende das saídas anteriores). Duas entradas (S e R) e duas saídas complementares (Q e Q): Suponha inicialmente R e S iguais a 0, e: (a) Q = 0 e (b) Q = 1 S (setting) -> quando for 1, leva o latch para o nível lógico 1 R (resetting) -> quando for 1, leva o latch para o nível lógico 0 3 4
Latches (2) Latch SR (Set/Reset) Para R = S = 0, o latch tem dois estados estáveis, dependendo do valor em Q Estado 0 (Q=0) ou 1 (Q=1) Quando S vai para 1, o latch passará para o estado 1 (Q = 1) O estado em que o latch estava anteriormente NÃO importa Qdo S retorna para 0, o latch continuará em estado 1 Quando R vai para 1, o latch vai para 0 (Q = 0) O estado em que o latch estava anteriormente NÃO importa Qdo R retorna para 0, o latch continuará em estado 0 Esse circuito lembra qual das duas entradas (S ou R) esteve pela última vez em 1. Latches (3) Latches SR com Clock Em algumas situações, deseja-se que o latch só troque de estado em instantes determinados, de acordo com um sinal de clock. Com o clock em 0, as saídas das portas AND são 0, e o latch não muda seu estado. Com o clock em 1, o latch passa a ser sensível às entradas S e R O efeito das portas AND é anulado 5 6 Latches (4) Latches SR com Clock Posso utilizar outros sinais ao invés do clock para prover a sensibilidade do circuito a S e R. Habilitação e Strobe Quando S e R assumirem ao mesmo tempo valor 1. O único estado consistente para S = R = 1 é Q = Q = 0. Comportamento não-determinístico: se ambas as entradas retornarem simultaneamente ao estado 0, o latch salta para um de seus dois estados estáveis Latches (5) Latches Tipo D com Clock Quando o clock for 1, o valor corrente na entrada D é amostrado e armazenado no latch, implementando a memória de 1 bit. Para D igual a 1, Q será 1. Para D igual a 0, Q será 0. Em outras palavras, quando o clock for 1, o valor corrente de D é amostrado e armazenado no latch Uma maneira interessante para anular a essa ambigüidade do latch SR é não deixar que ela ocorra (por exemplo, com latch tipo D). 7 8
Flip-Flops (1) Latches são circuitos sensíveis ao nível A mudança do estado ocorre quando o clock assume valor 1 Flip-Flops são circuitos sensíveis à transição A mudança do estado ocorre durante a transição de 0 para 1 (transição positiva) ou de 1 para 0 (transição negativa). Flip-Flops (2) Uma maneira prática de se projetar um flip-flop é gerar um pulso muito curto na subida do sinal do clock. Esse pulso poderia alimentar a entrada de clock do latch D. Uma maneira de se implementar seria, por exemplo: A saída da porta AND não será sempre 0? 9 10 Flip-Flops (3) Flip-Flops (4) O inversor tem um retardo de propagação muito pequeno, mas que não é zero, e esse retardo é que faz o circuito funcionar. Analisando os sinais em a, b, c e d: a: um sinal de clock b: clock invertido com atraso (~ 5 ns) c: sinal de clock d: saída da porta AND, com retardo relativo à porta AND : retardo de propagação do inversor Flip-Flop tipo D Podem haver duas entradas adicionais Preset Clear 11 12
Registradores (1) Flip-Flops podem ser agrupados para formarem, por exemplo, registradores e memórias principais. Registradores (2) Um registrador de n bits é um conjunto de n elementos de memória ou célula de 1 bit (flip-flops) Vetor de bits. Habilitação de Escrita Flip-flop octal 13 14 Registradores (3) Organização da Memória (1) Data Input Address RD ou W Clock Clear Chip Select n m Seleção de linha Data Output n Flip-flops e registradores são úteis. Entretanto, deseja-se utilizar memórias de maior capacidade e capaz de endereçar palavras individualmente. Organização de memória que seja estendível à quantidade de memória que se queira. Diagrama de uma memória de 4 palavras de 3 bits Operações de leitura e escrita são realizadas em uma palavra completa Apesar de capacidade próxima ao registrador octal, ela necessita de menos pinos (14 ao invés de 20), e é facilmente estendido 15 16
Organização da Memória (2) Entradas (8 linhas): Dados (I 0.. 2 ): 3 linhas Endereços (A 0.. 1 ): 2 linhas Controle: CS (chip selection habilitação do chip) RD (read operação de leitura/escrita) OE (output enable habilita a saída) Saídas (3 linhas): Dados (O 1.. 3 ) Organização da Memória (3) Célula de 1 bit Habilitação de Chip AND Habilitação de Escrita AND Habilitação de Saída AND Habilitação de Chip 17 18 Organização da Memória (4) Buffer (chaves eletrônicas) Dispositivos de Três Estados Podem ter na saída 0, 1 ou nenhum dos dois valores (circuito em aberto) Buffer Não-Inversor (a) Nível alto no control (b) e nível baixo no control (c) Organização da Memória (5) Há necessidade de um circuito externo para fazer com que CS assuma o estado alto junto com RD, quando a operação for de leitura e, para uma operação de escrita, CS deve ser alto e RD baixo. As linhas de endereço devem indicar quais palavras devem ler lidas ou escritas. Decodificador Na escrita, as linhas de saída não são usadas, e as de entrada carregadas na palavra de memória selecionada. CS.RD -> alto Na leitura, as linhas de entrada de dados não são usadas. A palavra selecionada é colocada na linha de saída. CS.RD -> baixo Na prática, os bits de entrada e de saída podem passar pelo mesmo barramento. 19 20
Organização da Memória (6) A memória de quatro palavras de 3 bits (4x3) pode ser facilmente estendida para tamanhos maiores Por exemplo, para estendê-la para 4 x 8? Chips de Memória (1) Maneiras diferentes de se organizar um chip de 4Mbits CS: Chip Select Habilitação do Chip WE: Write Enable Habilitação de Operação de Escrita OE: Output Enable Habilitação de Saída RAS: Row Address Strobe Habilitação de Endereço de Linha CAS: Column Address Strobe Habilitação de Endereço de Coluna Por exemplo, para estendê-la para 8 x 3? O que pode ser dito quanto ao número de palavras da memória? E o número de bits da palavra? 2048x2048 bits 21 22 Chips de Memória (2) Chips de Memória (3) SRAMs (RAMs estáticas) Construídas a partir de circuitos semelhantes aos flip-flops D básicos 6 transistores por bit Ordem de poucos nanosegundos DRAMs (RAMs dinâmicas) Matriz de bits Cada célula contendo um transistor e um capacitor Alta densidade de integração Refresh Ordem de dezenas de nanosegundos SDRAM Projeto híbrido 23 24
Chips de Memória (4) Uma ROM de 4 palavras de 4 bits Referências Andrew S. Tanenbaum, Organização Estruturada de Computadores, 5ª edição, Prentice-Hall do Brasil, 2007. John L. Hennessy and David A. Patterson, Arquitetura de Computadores: Uma Abordagem Quantitativa. 3ª edição. Editora Campus, 2003. Milos Ercegovac, Tomas Lang, Jaime H. Moreno. Introdução aos Sistemas Digitais. Bookman Porto Alegre, 2000 ISBN 85-7307-698-4 25 26