Microcomputadores Prof. Marcelo GonG onçalves Rubinstein Depto. de Eletrônica e Telecomunicações Faculdade de Engenharia Universidade do Estado do Rio de Janeiro
Introdução Aplicações de microcomputadores divididas em dois ramos a partir da década de 70 Computadores pessoais de uso geral Ferramentas versáteis Microcontroladores dedicados Programados uma única vez pelos fabricantes Computador digital Combinação de dispositivos e circuitos digitais que podem realizar uma sequência programada de operações Programa é a sequência de instruções
Analogia com a operação dos computadores (fonte: Tocci)
Organização BásicaB Cinco unidades essenciais (fonte: Tocci)
Organização BásicaB Unidade Lógica e Aritmética Onde são realizadas as operações lógicas e aritméticas Unidade de Memória Armazena grupos de dígitos binários (palavras) que podem representar instruções (programas) e dados Unidade de Entrada e Unidade de Saída Realizam a comunicação como meio exterior através de dispositivos periféricos Unidade de Controle Cérebro do computador; identifica a tarefa a ser executada e envia sinais às outras unidades
Estrutura TípicaT Elementos básicos de um microcomputador (fonte: Tocci)
Estrutura TípicaT Estrutura típica de um microcomputador (fonte: Tocci)
Processador Cérebro do computador Também conhecido como CPU Sua função é executar instruções Constituído de Unidade de controle Busca instruções na memória principal e determina o tipo de cada instrução Unidade lógica e aritmética Realiza um conjunto de operações necessárias à execução de instruções Registradores Memória pequena e de alta velocidade
Processador Registrador é constituído de n flip-flops, cada flip-flop armazenando um bit PC (Program Counter): aponta para a próxima instrução a ser buscada na memória para ser executada IR (Instruction Register): armazena a instrução que está sendo executada Outros de uso geral ou específico
Processador Execução de instruções Dividida em passos Busca da próxima instrução na memória e armazenamento da instrução em IR Atualização de PC Determinação do tipo de instrução do IR Caso necessário, busca dos dados que estão na memória e armazenamento dos mesmos em registradores Execução da instrução Caso necessário, armazenamento do resultado na memória Sequência conhecida como ciclo da buscadecodificação-execução
Processador Execução de instruções Unidade de controle dispara cada um dos passos Registradores armazenam temporariamente dados e instruções Unidade lógica e aritmética trata os dados e permite a atualização dos apontadores
Processador exemplo mov A,B CPU 8080 simplificada (adaptado de Brafman) B. End. Int (16) B. Dados Int (8) PC (16) DC (16) R3 (16) A (8) B (8) RE (16) RD (8) M E M IR (8) VI (8) SP (16) T1 (8) T2 (8) RD/WR UC F (1) ULA
Processador busca na memória CPU 8080 simplificada (adaptado de Brafman) B. End. Int (16) B. Dados Int (8) PC (16) DC (16) R3 (16) A (8) B (8) RE (16) RD (8) M E M IR (8) VI (8) SP (16) T1 (8) T2 (8) RD/WR UC F (1) ULA
Processador busca na memória CPU 8080 simplificada (adaptado de Brafman) B. End. Int (16) B. Dados Int (8) PC (16) DC (16) R3 (16) A (8) B (8) RE (16) RD (8) M E M IR (8) VI (8) SP (16) T1 (8) T2 (8) RD/WR UC F (1) ULA
Processador busca na memória CPU 8080 simplificada (adaptado de Brafman) B. End. Int (16) B. Dados Int (8) PC (16) DC (16) R3 (16) A (8) B (8) RE (16) RD (8) M E M IR (8) VI (8) SP (16) T1 (8) T2 (8) RD/WR UC F (1) ULA
Processador busca na memória CPU 8080 simplificada (adaptado de Brafman) B. End. Int (16) B. Dados Int (8) PC (16) DC (16) R3 (16) A (8) B (8) RE (16) RD (8) M E M IR (8) VI (8) SP (16) T1 (8) T2 (8) RD/WR UC F (1) ULA
Processador busca na memória CPU 8080 simplificada (adaptado de Brafman) B. End. Int (16) B. Dados Int (8) PC (16) DC (16) R3 (16) A (8) B (8) RE (16) RD (8) M E M IR (8) VI (8) SP (16) T1 (8) T2 (8) RD/WR UC F (1) ULA
Processador determ. de instrução CPU 8080 simplificada (adaptado de Brafman) B. End. Int (16) B. Dados Int (8) PC (16) DC (16) R3 (16) A (8) B (8) RE (16) RD (8) M E M IR (8) VI (8) SP (16) T1 (8) T2 (8) RD/WR UC F (1) ULA
Processador execução da instrução CPU 8080 simplificada (adaptado de Brafman) B. End. Int (16) B. Dados Int (8) PC (16) DC (16) R3 (16) A (8) B (8) RE (16) RD (8) M E M IR (8) VI (8) SP (16) T1 (8) T2 (8) RD/WR UC F (1) ULA
Memória Onde os programas e os dados são armazenados Sua unidade básica é o bit É formada por um conjunto de células (ou posições) O número de bits de uma célula é chamado palavra Células referenciadas por um endereço Classificada em Memória primária Dispositivos semicondutores acessados diretamente pelo processador Memória secundária Dispositivos de armazenamento magnético ou ótico
Memória Primária ria Classificada Quanto à função em Memória de programas Memória de dados Quanto à volatilidade Permanente ou não-volátil: manutenção das informações independe de alimentação externa Volátil Memória volátil + bateria = memória permanente Ex.: BIOS
Memória Primária ria Classificada Quanto ao tipo de acesso Memória somente de leitura ROM (Read Only Memory) PROM (Programmable ROM): pode ser gravada uma única vez ( fusíveis ) Memória quase sempre de leitura EPROM (Erasable PROM): gravação feita pelo projetista (até ~ 100 vezes) e apagamento é por ultravioleta EEPROM (Electrical EPROM): gravação pode ser feita umas 10.000 vezes e apagamento se dá por pulsos elétricos
Memória Primária ria Classificada Quanto ao tipo de acesso Memória de leitura e escrita: imprecisamente chamada de RAM (Random Access Memory) DRAM (Dynamic RAM): células são como capacitores que mantém a carga por alguns milissegundos (refresh) SRAM (Static RAM): usam circuitos parecidos com FFs D e possuem uma capacidade de armazenamento menor que as RAMs dinâmicas Flash: tipo de EEPROM mais rápida, na qual a gravação pode ser feita umas 10.000 vezes
Memória Primária ria Tipos de memória (fonte: Tanenbaum) @ 2000-2001 by Prentice-Hall, Inc.
Memória Primária ria Tempo de acesso Tempo entre o processador colocar o endereço e a resposta da memória no barramento de dados DRAM: 60 a 70 ns SRAM: 10 a 20 ns Flash: 100 ns
Exemplo de ROM (fonte: Tocci)
Exemplo de ROM simples Conversor de código a diodo (adaptada de Brafman) Vcc Vcc Entrada Saída A1 0 A0 0 D1 1 D0 0 0 0 1 1 0 A0 1 1 0 1 1 A1 2 1 1 0 0 3 D0 D1
PROM PROM (adaptada de Brafman) Vcc VGrav Vcc VGrav MUX MUX A0 A1 0 1 2 VGrav = 12,5 ou 21V VGrav > Vcc IGrav > Icc Dx = 0 para queimar o fusível 3 Grav Grav D0 D1
EPROM Processo de programação geralmente é realizado por um circuito programador de EPROM Em estado normal o transistor não conduz e a célula tem um nível lógico 1 Vcc MOS Adaptado de Brafman Apagamento com ultravioleta leva de 15 a 20 minutos
EPROM Ex.: 2732 4K x 8, 4 x 8 = 32 12 linhas de endereços 8 linhas de dados CE e OE/Vpp usados para escolha do modo Modos Leitura/verificação, inibição da saída, standby (consumo de potência é reduzido) e programação
EEPROM Apagamento e programação podem ser feitos no próprio circuito Pode-se apagar e escrever bytes individuais (operação de escrita em um endereço dura geralmente 5 ms) Ex.: 2864 8K x 8 CE e OE e WE usados para escolha do modo Modos Leitura, escrita e standby Toda escrita deve ser precedida de um apagamento
Flash Possuem tempos curtos de apagamento e escrita As mais novas usam um apagamento por setor (ex.: grupos de 512 bytes) Tempo de escrita típico de 10µs por byte Ex.: 28F256A 32K x 8 CE e OE e WE usados para escolha do modo Modos Leitura, escrita e standby
Exemplo de RAM (fonte: Tocci)
SRAM Usadas para construir bancos de cache devido ao seu preço e velocidade Ex.: 6264C (Async SRAM, CMOS) 8k x 8 WE, CS1, CS2 e OE usados para a escolha do modo Modos Leitura, escrita, desabilita saída e standby
Ciclo de leitura da SRAM t RC t ACC = tempo de acesso t RC = tempo do ciclo de leitura B. End Endereço R/W CS Saída de dados para o barramento Z t ACC Dados Z
Ciclo de escrita da SRAM t WC t DS = tempo de setup t DH = tempo de hold t WC = tempo do ciclo de escrita B. End Endereço R/W CS Entrada de dados para o barramento Z t DS Dados t DH
DRAM Dados nas células de memória devem ser continuamente acessados ou restaurados Classificação N x B, B = 1, 4 ou 8, onde N é o número de locais endereçáveis e B é o número de bits de cada local Linhas de endereços multiplexadas Endereço de linha: bits mais significativos Endereço de coluna: bits menos significativos Sinais RAS e CAS informam à memória qual a parte do endereço está sendo enviada
DRAM Controlador de memória dinâmica RAS Relacionado à temporização, gera os sinais de controle para interfacear a memória com a CPU Controlador de memória dinâmica CAS A WE Memória dinâmica Está nos chipsets da placa mãe RAS = Row Address Strobe CAS = Column Address Strobe D Q
DRAM Memória dinâmica de 4Mbits (adaptada de Zelenovsky) RAS CAS WE Controle da memória dinâmica Circuito de precarga A 0 A 10 Decod. de linha 2048 Matriz de células de memória 2048 Buffer de dado Q D Decod. de coluna
DRAM Célula de memória: transistor + capacitor Refresca todas as células de coluna para cada linha selecionada Para uma memória de 4 Mbits, o ciclo completo (todas as linhas) é da ordem de 32 ms Podem existir Arranjos retangulares: menos linhas que colunas, o que dá uma folga no refresco Divisão em matrizes menores: ex.: 4 Mbits em 4 matrizes de 512 x 1024, nas quais para cada acesso seria buscado um bit de cada matriz
DRAM Memórias antigas não havia alta impedância, logo usava-se um tristate na saída Q (a) Nas memórias mais novas Q tem alta impedância (b) Em outras memórias, D e Q estão em curto na própria memória (c) Em geral nas memórias N x 4 e N x 8 por economia de pinos D D D DQ Q D j Q D j Q D j (a) (b) (c)
Ciclo de leitura da DRAM Capacitor perde um pouco de sua carga, logo o dado precisa ser reescrito. Essa operação chama-se precarga e é feita automaticamente CAS habilita o buffer de saída t ACC t Recuperação RAS CAS A Linha Coluna R/W Q Z Dado Z
Ciclo de escrita (antecipada) da DRAM WE antes do CAS Descida do CAS transfere o dado para dentro da DRAM RAS CAS A Linha Coluna WE D Dado a ser escrito Q Z
WE depois do CAS RAS Ciclo de escrita (atrasada) da DRAM Descida do WE transfere o dado para dentro da DRAM Driver de saída acionado brevemente (CAS em nível baixo e WE em nível alto), não pode-se conectar D e Q CAS A Linha Coluna WE D Dado a ser escrito Q Dado inválido
DRAM Ciclo de refresh Pode ocorrer em uma leitura, uma escrita ou em um refresh específico Controlador quando acessa uma linha para executar um refresh deve obedecer as restrições de tempo da leitura e da escrita Existem três tipos de refresh RAS-only refresh Hidden refresh CAS before RAS
Ciclo de RAS-only da DRAM Controlador usa RAS para enviar endereços à DRAM e deve lembrar-se de quais linhas foram acessadas Buffer de saída nunca é habilitado RAS CAS A Linha Linha
Ciclo de hidden refresh da DRAM Após um ciclo normal de leitura é inserido um refresh Usado em CPUs antigas por ser lento Antes de terminar o ciclo de leitura, RAS e CAS estão em nível baixo. O controlador pulsa RAS, fazendo com que a memória gere internamente um endereço de linha Consome mais energia pois o buffer de saída está ativo leitura refresh RAS CAS A Linha Coluna Linha Q Z Dado Z
Ciclo de CAS before RAS da DRAM Um novo endereço é gerado internamente pela memória para refresh, cada vez que a linha RAS sobe e desce RAS CAS
Expansão do tamanho da palavra (fonte: Tocci)
Expansão da capacidade (fonte: Tocci)
Bibliografia A. S. Tanenbaum, Organização Estruturada de Computadores, 4ª edição, LTC Editora, 2001 D. A. Patterson e J. L. Hennessy, Organização e Projeto de Computadores, 2ª edição, LTC Editora, 2000 D. A. Patterson Transparências do curso de Arquitetura e Engenharia de Computadores, 1997 ( UCB) Tocci, R. J., Widmer, N. S., Sistemas Digitais: Princípios e Aplicações, 8ª edição, Pearson Education do Brasil, 2003 R. Zelenovsky e A. Mendonça, PC: Um Guia Prático de Hardware e Interfaceamento, 3ª edição, MZ Editora, 2002 Brafman Transparências do curso de Organização de Computadores (UFRJ)