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
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
Apresentar os dispositivos que permitem
o armazenamento e a implementação de
operações envolvendo informação:
. . .
Operações sobre a informação
Processadores
FPGA
Circuitos integrados
programáveis
Representação da
informação
Roteiro
Representação
da informação
Analógica
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
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
Problema na subtração42
-19
23
00101010
11101100 +
100010110
1 +
00010111
00101010
-00010011
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
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
11101101 +
00010111
00101010
-00010011
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
Codificação de reais.
Ponto flutuante
6.75 = 1_2
2+ 1_2
1+ 0_2
0+ 1_2
-1+ 1_2
-26.75 = 110.11 = + 1.1011 _ 2
2Codificaçã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
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
a
a
0
1
1
0
a
a
a
a
AND
Produto ou interseção lógica
a a2b b a b a2b 0 0 0 0 1 0 1 0 0 1 1 1
b
a
OR
Soma ou união lógica
a b a+b 0 0 0 0 1 1 1 0 1 1 1 1b
a
b
a + b
a
a
a
+b
b
EXCLUSIVE-OR ou XOR
b
a
b
a
z
=
+
b
a
a b a+b 0 0 0 0 1 1 1 0 1 1 1 0Multiplexador
ab
k
b
a
k
b
a
k
b
a
k
z
=
0+
1+
2+
3 Função universal k0 = 0, k1 = 1, k2 = 1, k3 = 0: XORb
a
b
a
ab
b
a
b
a
b
a
z
=
0
(
)
+
1
(
)
+
1
(
)
+
0
(
)
=
+
k0 0 k1 1 k2 2 k3 3 z a b a b z 0 0 k0 0 1 k1 1 0 k2 1 1 k3Exemplo: Full adder
Um somador completo é uma função lógica que realiza a
soma de dois bits X
ie 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+1para 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:
Xn-1 Yn-1 Cn-1 Cn Sn-1 full adder X0 Y0 C0 S0 full adder X1 Y1 C1 C2 S1 full adder
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.
Implementação de funções
lógicas combinatórias
input X
Operações sobre a informação.
Implementação de funções
lógicas combinatórias
Operações sobre a informação.
Implementação de funções
lógicas combinatórias
Z X gate dreno fonte Transistor MOSOperações sobre a informação.
Implementação de funções
lógicas combinatórias
NAND
1 0 Z X1 X2Operaçõ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
Flip-flop D
Elemento mais comum para armazenamento
de variáveis de estado
D Ck Q D Q Ck QRegistradores
Um conjunto de flip-flops D compartilhando o
mesmo sinal de relógio é chamado registrador.
0 1 Q D CK Ck LOAD D
Máquina seqüencial
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)
δδδδ
f
flip -flops saídas estado_presente entradas estado_futuro CkOperaçõ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
PROM 16Kx16• Mask ROM
• PROM
• EPROM
• EEPROM
RAM
• Static RAM
(SRAM)
• dynamic RAM
(DRAM)
PIC: Circuitos integrados
programáveis
Full-custom (ASIC) Hand-made Standard cells Mask programable Field programable Gate array ROM PROM PAL PLA CPLD FPGA Semi-custom StandardCircuitos lógicos programáveis
• PLD (Programable Logic Device)
• CPLD (Complex Programable Logic Device)
PLD Programable Logic Device
circuito lógico combinatório
AND array OR array
produtos lógicos
entradas saídas
Toda função lógica pode ser expressa como uma soma de
m produtos.
Uma porta OR de m entradas e m portas AND de até n entradas são suficientes para implementar qualquer função lógica
FPGA Field-programable gate array
Array de células lógicas
numa infraestrutura de interconexões.
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).
unidade de controle unidade de processamento entrada de dados saída de dados entradas de controle saídas de controle controles estado Ck
Exemplo
Diagrama de blocos de um processador: componentes típicos
data ocount mask temp and + shifter comparador lógica combinatória flip -flops Ck data ≠≠≠≠ 0 status signal controle 20 32 6 start done inport 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.uni-siegen.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