Circuitos Integrados Nível da Lógica Digital (Aula 7) Circuitos Lógicos Digitais Básicos Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 CIs (chips/pastilhas) Agrupa portas lógicas Pastilhas de silício DIP (Dual Inline Package) Invóculo c/ 2 linhas de pinos Tipos (de acordo c/ a densidade) SSI (Small-Scale Integration ): 1-10 portas MSI (Medium ): 10-100 LSI (Large ): 100-100.000 VLSI (Very-large ): > 100.000 ULSI (Utra Large...): > 1.000.000 A tecnologia atual permitiria então colocar 5x10 6 de portas NAND em um chip Por que não produzir chips genéricos deste tipo Agradecimentos: Camilo Calvi - LPRM/DI/UFES 2 Circuitos Combinacionais Circuitos com várias entradas e várias saídas, em que as saídas dependem apenas dos valores presentes das entradas Sem memória Ex.: Função Maioria Multiplexadores (1) Um Multiplexador (MUX) é um circuito com 2 n entradas de Dados n entradas de Controle (i.e. código de n bits) uma saída de dados O código de n bits das entradas de controle efetua a seleção de uma das entradas de dados. A entrada selecionada é roteada (selecionada) para a saída. n = 2 n = 3 3 4
Multiplexadores (2) Multiplexadores podem também ser considerados conjuntos (módulos) combinacionais universais Função Maioria Multiplexadores (3) Exemplo de aplicação: Conversão paralelo-série de dados de 8 bits Transferência de 8 linhas de entrada para 1 linha de saída 8 bits em paralelo nas entradas Alternar sequencialmente os valores de 000 até 111 nas linhas de controle Os bits da entrada são colocados em série na saída Usado na implementação de um teclado Conceito usado em telecomunicações 5 6 Multiplexadores (4) Controle e roteamento de sinais - Controla qual dispositivo entre a cpu e os canais de dados, pode fazer acesso à memória Demultiplexadores (1) Inverso de um multiplexador Um Demultiplexador (Distribuidor) possui única linha de entrada de dados n entradas de controle 2 n saídas Roteia o sinal presente em sua para uma de suas, de acordo com o código de n bits das entradas de controle (variáveis de seleção). Se o valor binário nas linhas de controle for k, a k-ésima saída é selecionada. O MUX e DMUX selecionam o caminho de dados. 7 8
Demultiplexadores (2) Decodificadores (1) Um Decodificador é um circuito que recebe na entrada um número de n bits, utilizando-o para selecionar exatamente uma das suas 2 n linhas de saída. Uma palavra de código de entrada ativa apenas a linha de saída associada. As outras permanecem desativadas. No máximo, uma saída binária (y i, por exemplo) é igual a 1 Converte um código binário para um código 1-entre-2 n Cada linha de saída é associada exclusivamente a uma palavra de código correspondente. Um decodificador binário e a porta OR formam um conjunto universal. Um decodificador binário é usado para identificar e habilitar um elemento dentre um conjunto de elementos codificados. Eg: seleção de um dentre vários chips Memória c/ 4 chips -> 2 bits mais significativos selecionam o chip através de um decodificador 9 10 Decodificadores (2) Decodificadores (3) 11 12
Decodificadores (4) Escolha de uma célula para operação de leitura/escrita. Decodificadores (5) Determinar a operação especificada em uma instrução 13 14 Codificadores (1) Codificadores (2) Realiza a função inversa de decodificador. Converte um código 1-entre-2 n para um código binário. Possui 2 n entradas No máximo, uma das entradas (x i, por exemplo) pode ser igual a 1 n saídas Entrada adicional (enable - E) Saída adicional (active A, Módulo ativo) permite detectar a situação em que nenhuma das entradas está 15 16
Codificador de Prioridade (1) Codificador de Prioridade (2) Um Codificador de Prioridade pode ter diversas entradas com o valor 1. A saída representa, em um código binário, o índice da entrada de mais alta prioridade que tem o valor 1. A prioridade é uma ordenação fixa implementada pelo codificador. Pode ser construído utilizando-se 2 subsistemas: Subsistema de Resolução de Prioridade (determina a entrada de maior prioridade, mantendo-a com valor 1 e mudando para 0 as demais entradas que tenham valor 1) Codificador Binário 17 18 Codificador de Prioridade (4) Usado na interrupção de computadores Resolver pedidos de interrupção a um processador usando um codificador de prioridades Comparadores (1) Um circuito Comparador compara duas palavras que lhe são entregues na entrada. Princípio baseado na porta XOR (EXCLUSIVE OR) Coloca 0 na saída se suas entradas forem iguais Coloca 1 na saída se forem diferentes Uma porta NOR indica o resultado da comparação Se as duas palavras forem iguais Todas as saídas da XOR serão 0 19 20
Comparadores (2) Circuitos Aritméticos Deslocadores (Shifters) A saída é a entrada deslocada de 1 bit A linha de controle C determina a direção do deslocamento 0 para a esquerda e 1 para a direita Existem também redes de comparadores em que a saída pode assumir valores do conjunto (G,E,S) (Greater, Equal, Smaller) 21 22 Deslocadores (2) Somadores (1) Não se pode imaginar um computador sem um somador Meio-Somador Adequado para somar os bits de mais baixa ordem de duas palavras 23 24
Somadores (2) Somador Completo Observe que ele é formado por dois meio-somadores Somadores (3) Somadores de 16 ou de 32 bits Somador com Carry Propagado (Transporte Propagado) Basta replicar 16 ou 32 vezes o somador completo de 1 bit O vai-1 de uma posição é usado como vem-1 da posição seguinte O vem-1 da posição mais à direita deve ser fixado em 0 A soma não se completa até que o carry tenha percorrido todo o caminho entre a posição do bit mais à direita e a posição do bit mais à esquerda (há um retardo associado) 25 26 Somadores (4) Somador de Transporte Antecipado Determina os valores de todos os vem-1 para os módulos somadores completos (Gerador de Transporte Antecipado - GTA) Em seguida, computa simultaneamente todos os bits do resultado Unidades Lógicas Aritméticas ULAs (1) Um circuito único, presente em muitos processadores, que realiza as operações lógicas básicas (AND, OR, NOT,...) e operações aritméticas, de acordo com valores de linhas de Seleção de Função. ULAs de 1 bit podem ser agrupadas em ULAs de quantos bits sejam necessários 27 28
ULAs (2) ENA: enable A ENB: enable B INVA: invert A Unidades Lógicas Aritméticas ULAs (3) Sinais de entrada (A 0..7 e B 0..7 ). Sinais de Controle (F 0 e F 1 ). Sinais de Saída (O 0..1 ). O sinal INC incrementa o resultado de 1 unidade Possibilitando somas como: (A + 1) e (A + B + 1). 29 30 Unidades Lógicas Aritméticas ULAs (4) Parte do datapath (busca da próxima instrução) palavras de 32bits, células de 1 byte Unidades Lógicas Aritméticas ULAs (5) Exemplo muito simples de um datapath (caminho de dados) Load: lw $rt, offset($rs) Register rt <- MEM[rs+offset] Instruction <- MEM[PC] PC <- PC + 4 ADD 4 PC ADDR Memory RD Instruction 31 32
Clocks (1) Um clock é um circuito que emite uma série de pulsos do mesmo tamanho, a intervalos precisos entre pulsos consecutivos. Período do Clock: intervalo de tempo entre duas transições consecutivas dos pulsos do clock Os clocks são utilizados para se estabelecer relações de tempo necessárias na ocorrência de eventos O período do clock pode ser dividido em sub-períodos Se há vários eventos ocorrendo em um mesmo período de clock e eles precisam ser ordenados Clocks (2) Sinais de clock são simétricos O tempo Gasto no estado alto é igual ao tempo gasto no estado baixo Para gerar pulsos assimétricos, basta colocar como entrada de uma porta AND o sinal de clock o sinal com retardo 1. Transição positiva de C1 2. Transição negativa de C1 3. Transição positiva de C2 4. Transição negativa de C2 33 34 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 35