Universidade de Brasília Sistemas Digitais (recapitulando) Organização e Arquitetura de Computadores
WWWebster Dictionary Main Entry: in for mat ics Pronunciation: "in-f&r-'ma-tiks Function: noun plural but singular in construction Etymology: International Scientific Vocabulary information + -ics Date: circa 1967 chiefly British : INFORMATION SCIENCE Main Entry: information science Function: noun Date: 1960 : the collection, classification, storage, retrieval, and dissemination of recorded knowledge treated both as a pure and as an applied science
Petit Robert Informatique n.f. Science de l information; ensemble des techniques de la collecte, du tri, de la mise en memóire, de la transmission et de l utilisation des informations traitées automatiquemente à l aide de programmes (logiciels) mis en œuvre sur ordinateurs. Aurélio Eletrônico Verbete: informática S. f. 1. Ciência que visa ao tratamento da informação através do uso de equipamentos e procedimentos da área de processamento de dados [q. v.]
Objetivo Apresentar os dispositivos que permitem o armazenamento e a implementação de operações envolvendo informação:...
Processadores Roteiro FPGA Circuitos integrados programáveis Operações sobre a informação Representação da informação
Representação da informação Analógica Digital
Na representação digital, um valor é representado por uma seqüência finita de símbolos chamados dígitos. O número e o tipo dos símbolos determina o custo e o desempenho da implementação física do sistema digital. O mais comum é o sistema binário, composto pelos símbolos 0 e 1. As seqüências de 1 dígito são chamadas bits e as de 8 dígitos são chamadas bytes.
Codificação de inteiros com sinal Codificação de reais: ponto flutuante Codificação de texto.
Codificação de inteiros com sinal Código sinal-módulo Código complemento de um Código complemento de dois Se o bit mais significativo é zero, o número é positivo, se é 1, o número é negativo.
Código sinal-módulo Com n bits -(2 n-1-1)... +(2 n-1-1) +0 = 00000000 (n = 8) -0 = 10000000 (n = 8) +57 = 00111001 (n = 8) -57 = 10111001 (n = 8)
Código complemento de um O complemento de um, de um número binário, é igual ao inverso do número: todos os 1s do número são substituídos por 0s e vice-versa. Nesta codificação, um número negativo é representado pelo complemento de um do equivalente positivo.
Código complemento de um -(2 n-1-1)... +(2 n-1-1) +0 = 00000000 (n = 8) -0 = 11111111 (n = 8) +57 = 00111001 (n = 8) -57 = 11000110 (n = 8)
Código complemento de um 42-19 23 00101010-00010011 00010111 Problema na subtração 00101010 11101100 + 100010110 1 + 00010111
Código complemento de dois O código complemento de dois de um número binário é igual ao complemento de um mais um. Na representação de complemento de dois de inteiros com sinal, um inteiro negativo é codificado pelo complemento de dois do mesmo número positivo.
Código complemento de dois -(2 n-1 )... +(2 n-1-1) +0 = 00000000 (n = 8) +57 = 00111001 (n = 8) -57 = 11000111 (n = 8)
Código complemento de dois 42-19 23 00101010-00010011 00010111 00101010 11101101 + 00010111
Codificação de reais. Ponto flutuante A seqüência de bits que representa um número de ponto flutuante é dividida em três partes: sinal, mantissa e expoente ponto_flutuante = ±1 x mantissa x 2 expoente
Codificação de reais. Ponto flutuante 6.75 = 1_2 2 + 1_2 1 + 0_2 0 + 1_2-1 + 1_2-2 6.75 = 110.11 = + 1.1011 _ 2 2 0 1011000000 00010
Codificação de texto. ASCII: American Standard Code for Information Interchange 00001101 retorno 00100100 $ 01000001 A 01100001 a EBCDIC: Extended Binary Code Decimal Interchange Code IBM UNICODE...
Operações sobre a informação. Implementação de funções lógicas combinatórias Uma porta lógica é o dispositivo físico que implementa uma função lógica básica. Como todas as funções lógicas podem ser expressas como combinações de três operações (NOT, AND e OR), basta construir portas lógicas destas três funções. Qualquer outra função pode ser implementada por uma combinação destas portas.
NOT Inversão ou complementação lógica a a 0 1 1 0 a a a a
AND Produto ou interseção lógica a b a2b 0 0 0 0 1 0 1 0 0 1 1 1 a b a b a2b
OR Soma ou união lógica a b a+b 0 0 0 0 1 1 1 0 1 1 1 1 a b b a a + b
EXCLUSIVE-OR ou XOR z = ab + ab a b a+b a b 0 0 0 0 1 1 1 0 1 1 1 0 a b a+b
Multiplexador z = k0 ab + k1ab + k2ab + k3ab Função universal a b z 0 0 k0 0 1 k1 1 0 k2 1 1 k3 k 0 = 0, k 1 = 1, k 2 = 1, k 3 = 0: XOR k0 0 k1 1 k2 2 k3 3 a b z z = 0( ab) + 1( ab) + 1( ab) + 0( ab) = ab + ab
Exemplo: Full adder Um somador completo é uma função lógica que realiza a soma de dois bits X i e Y i, mais um bit para o carry-in C i ( vai um de entrada). Produz um bit de resultado, S i, e um bit C i+1 para o carry-out ( vai um de saída). A adição de dois números de n bits é implementada pela conexão em cascata de n full adders: X n-1 Y n-1 X 1 Y 1 X 0 Y 0 C n full adder C n-1 C 2 full adder C 1 full adder C 0 S n-1 S 1 S 0
Implementação de funções lógicas combinatórias Na base de qualquer implementação de uma porta lógica, eletrônica ou outra, está a chave: dispositivo binário simples no qual um sinal de entrada X comanda um sinal de saída Z. input X output Z
Operações sobre a informação. Implementação de funções lógicas combinatórias X Z
Operações sobre a informação. Implementação de funções lógicas combinatórias Transistor MOS dreno gate X Z fonte
Operações sobre a informação. Implementação de funções 1 lógicas combinatórias Z NAND X1 X2 0
Operações sobre a informação. Sistemas seqüenciais Diferentemente dos sistemas combinatórios, onde a informação de saída em dado instante depende exclusivamente da informação de entrada naquele momento, o comportamento de sistemas seqüenciais depende da seqüência de entradas durante um período de tempo. Sistemas sequenciais síncronos utilizam um sinal chamado relógio como referência de tempo.
Flip-flop D Elemento mais comum para armazenamento de variáveis de estado D Ck Q D Q Ck Q
Registradores Um conjunto de flip-flops D compartilhando o mesmo sinal de relógio é chamado registrador. D 0 1 Q D CK Ck LOAD
Máquina seqüencial entradas δ saídas f flip - flops estado_presente estado_futuro Ck A síntese de uma máquina seqüencial se reduz à síntese de dois sistemas combinatórios, as funções f e δ: estado_futuro = f (estado_presente, entradas) saídas = δ (estado_presente, entradas)
Operações sobre a informação. Memórias Matriz bi-dimensional utilizada para armazenar bits de informação. Cada linha da memória, identificada por um endereço único, é chamada word. O acesso à informação, tanto na entrada (write) quanto na saída (read) é feito palavra por palavra. ROM (Read-Only Memory): não volátil RAM (Random-Access Memory): volátil
ROM Mask ROM PROM EPROM EEPROM PROM 16Kx16
RAM 64K x 18 Synchronous Cache RAM Static RAM (SRAM) dynamic RAM (DRAM)
PIC: Circuitos integrados programáveis Hand-made Full-custom (ASIC) ASIC: Application Specific Integrated Circuits Semi-custom Standard Standard cells Mask programable Field programable Gate array ROM PROM PAL PLA CPLD FPGA
Circuitos lógicos programáveis PLD (Programable Logic Device) CPLD (Complex Programable Logic Device) FPGA (Field-programable gate array)
PLD Programable Logic Device Toda função lógica pode ser expressa como uma soma de m produtos. circuito lógico combinatório entradas AND array OR array saídas produtos lógicos Uma porta OR de m entradas e m portas AND de até n entradas são suficientes para implementar qualquer função lógica combinatória.
FPGA Field-programable gate array Array de células lógicas numa infraestrutura de interconexões. CLBs - configurable logic blocks
FPGA
Processadores Um processador é um recurso de hardware necessário para a execução de um algoritmo para processamento de informação. Unidade de controle. Seqüenciamento do algoritmo. Unidade de processamento. Memória (registradores) e elementos de processamento (operadores). entradas de controle entrada de dados Ck unidade de controle controles estado unidade de processamento saídas de controle saída de dados
Exemplo Diagrama de blocos de um processador: componentes típicos Ck start lógica combinatória flip - flops controle 20 data 0 status signal data ocount mask temp inport 32 and + shifter comparador done 6 outport
Referências Mange, D., Tomassini, M. (1998) Bio-Inspired Computing Machines. Towards Novel Computation Architectures. Capítulo 2. Presses polytechniques et universitaires romandes. Prof. Dr. Rainer Brück http://www.rs.unisiegen.de/institut/courses/fpga/script_en/page1.html, Universität GH Siegen, Institut für Rechnerstrukturen.
Leitura complementar Organização Estruturada de Computadores Capítulo 3 {3.1, 3.2, 3.3} Andrew S. Tanenbaum Prentice/Hall do Brasil