Professional Documents
Culture Documents
4.1 Introdução
• Decodificador:
• Entrada: código de n bits, Cn-1, ..., C1, C0.
• m = 2n linhas de saída, S(2n-1), ..., S1, S0.
• Cada linha de saída é associada exclusivamente a uma palavra de
código correspondente.
• Uma palavra de código de entrada ativa apenas a linha de saída
associada. As outras permanecem desativadas.
• Exemplo de aplicação: seleção de um dentre vários chips.
Cn-1, ..., C1, C0
S0
C1 S1
Decodificador
n-para-2n C0
S2
S3
S(2n-1), ..., S1, S0
(a) (b)
• Multiplexador:
• Entradas: m = 2n linhas de entrada, Dn-1, ..., D1, D0.
• Entradas de controle código de n bits Cn-1, ..., C1, C0.. Seleciona uma
das 2n entradas.
• Saída, S: assume o estado lógico da entrada selecionada pelo código.
• Exemplo de aplicação: transferência de vários barramentos de
entrada para um barramento de saída.
Dm-1, ...,D0 Cn-1, ...,C0 D0
D1
Multiplexador S
de n Entradas D2
D3
S
C1 C0
(a) (b)
• Comparador:
• Entradas: duas palavras de n bits, A = An-1, .., A0 e B = Bn-1, .., B0.
• Saída, S = 1, se A = B, S = 0, caso contrário.
• Exemplo de aplicação: na ULA, para ativar bits do registrador de
STATUS.
A0
An-1,...,A0 Bn-1,...,B0 B0
A1
B1 A=B
Comparador A2 S
de n bits B2
A=B A3
S B3
(a) (b)
• Deslocador:
• Entrada: uma palavra de n bits, D = Dn-1, .., D0.
• Entrada de controle C: define direção de deslocamento. Exemplo:
deslocamento à direita C = 1, deslocamento à esquerda C = 0.
• Saída: uma palavra S = Sn-1, .., S0 correspondente à palavra de
entrada deslocada de um bit à esquerda ou à direita de acordo com C.
D3 D2 D1 D0
C
S3 S2 S1 S0
• Somador:
• Entradas: duas palavras de n bits, A = An-1, .., A0 e B = Bn-1, .., B0.
• Saída: uma palavra S = Sn-1, .., S0 = soma binária de A e B.
• Entrada auxiliar: Vem-1, proveniente de outro somador de ordem
menos significativa.
• Saída auxiliar: Vai-1, para outro somador de ordem mais
significativa.
Vem-1
Si
Ai
Bi
Vai-1
(a)
A B Vem-1 S Vai-1
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
(b)
An-1,...,A0 Bn-1,...,B0
Vem-1
Somador
de n bits
Vai-1
Sn-1, .., S0 = A + B
(c)
• Relógio:
CK1
Atraso CK2
• Latches e Flip-Flops:
D Q D Q D Q
0 0
CK 1 1 CK
(a) (b)
• Registradores:
Barramento de Entrada
D0 D1 D2 D3 D4 D5 D6 D7
CK
OE
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
Barramento de Saída
Barramento de Barramento de
entrada C (16 bits) Registrador de 16 bits saída A (16 bits)
Barramento de
saída B (16 bits)
CK OEA OEB
Figura 4.9. Exemplo de registrador de 16 bits com um barramento de
entrada e dois barramentos de saída.
Arquitetura de Computadores
• Memória:
BARRAMENTO
Dn-1, ..., D1, D0 Via de dados
Memória
Ak-1, ..., A1, A0 Via de endereços mxn
Dados de Entrada
D2 D1 D0
D Q D Q D Q
CK CK CK
A1 A0
Seleção
Palavra 00
D Q D Q D Q
CK CK CK
Seleção
Palavra 01
D Q D Q D Q
CK CK CK
Seleção
Palavra 10
D Q D Q D Q
CK CK CK
Seleção
Palavra 11
CS.RD =
Habilitação
de Escrita
CS
RD
OE
S2 S1 S0
CS.RD.OE =
Habilitação de Saída
4.4 Barramento
Controlador
Memória de Processador
Barramento de Memória
Barramento
Barramento E/S
• Largura do Barramento:
Via de Controle
Processador Memória
Via de Endereços
Via de Dados
• Temporização do Barramento:
• Barramento Síncrono:
• Possui um relógio mestre (oscilador a cristal que gera uma onda
quadrada de freqüência estável).
• Todas as operações do barramento são sincronizadas pelo relógio.
• Funciona "em malha aberta". Não há interação direta entre mestre
e escravo.
• Todas as operações levam um número inteiro de ciclos do relógio
(Ciclos do Barramento).
• Vantagem: barato e de fácil implementação. Muito utilizado.
• Desvantagem: pares mestre-escravo mais rápidos ficam limitados
ao ciclo do barramento.
• Exemplo de operação de leitura:
• Características do sistema: Barramento de 40 MHz (ciclo de
25 ns). Tempo de leitura da memória após o endereço
estabilizar no barramento igual a 40 ns. Três ciclos para a
operação de leitura.
• Sinais de controle (observação: # denota ativo baixo):
• Φ = relógio.
• ADDRESS: sinais de endereçamento.
• DATA = dados a transferir.
• MREQ#: requisição de referência à memória.
• RD#: ativo = leitura, inativo = escrita.
• WAIT# = sinaliza estado de espera até que a memória
consiga atender à requisição.
• Operação:
• A operação é disparada pela transição positiva do relógio
no primeiro ciclo T1.
• O processador coloca o endereço na via de endereços.
• Após estabilização de ADDRESS, disparado pela transição
negativa de T1, o processador ativa MREQ# e RD#.
• No início de T2, a memória ativa WAIT#, sinalizando que
não tem condições de fornecer o dado neste ciclo.
• Na transição positiva de T3, a memória desativa WAIT#,
sinalizando que o dado será disponibilizado neste ciclo. A
memória coloca o dado DATA na via de dados.
• Na transição negativa de T3 o processador lê o dado no
barramento, desativando MREQ# e RD#.
Arquitetura de Computadores
Φ
TAD
ADDRESS Endereço
DATA Dado
TM
TDS TMH
MREQ#
TML
RD# TRH
TRL
TDH
WAIT#
• Barramento Assíncrono:
ADDRESS Endereço
MREQ#
RD#
MSYN#
DATA Dado
SSYN#
• Arbitragem de Barramento:
REQUEST
Árbitro
GRANT
1 2 3 4 5
(a)
REQUEST 1
REQUEST 2
Árbitro GRANT 1
GRANT 2
1 2 3 4 5
(b)
• Arbitragem Descentralizada:
• Não existe a figura do árbitro. O processo de arbitragem é
distribuído entre todos os dispositivos.
• Esquema baseado em múltiplas linhas de requisição:
• Cada dispositivo dispõe de uma linha de requisição própria,
com um determinado nível de prioridade.
• Todas os dispositivos monitoram todas as linhas de requisição.
• Se um determinado dispositivo fez uma requisição, saberá a
todo momento se existe algum outro dispositivo com maior
prioridade requisitando o barramento.
• De acordo com a sua prioridade, o dispositivo tem condições
de saber se pode ou não pode tomar posse do barramento.
• Desvantagem: a necessidade de uma linha de requisição por
dispositivo limita o número de dispositivos que podem ser
conectados ao barramento.
Arquitetura de Computadores
REQUEST1
REQUEST2
REQUEST3
REQUEST4
1 2 3 4
+VCC
1 2 3 4 5
• Transferência em Bloco:
• Mais eficiente do que transmitir uma palavra por vez.
• No primeiro ciclo da transferência, o mestre ativa um sinal de
controle BLOCK# para requisitar transferência em bloco e coloca
no barramento o valor de um contador que informa ao escravo o
tamanho do bloco .
• Em resposta, a cada ciclo, o escravo coloca uma palavra no
barramento, decrementando o contador até o mesmo zerar.
T1 T2 T3 T4 T5 T6
ADDRESS Endereço
MREQ#
RD#
WAIT#
BLOCK#
• Transferência em Interrupções:
• Quando dois ou mais dispositivos solicitam interrupção através
do barramento, é necessário um sistema de arbitragem, com
atribuição de prioridades. A solução mais comum é utilizar um
árbitro centralizado, um chip Controlador de Interrupções.
• Exemplo: Controlador de Interrupção 8259.
• O controlador dispõe de registradores internos que podem ser
lidos ou escritos pelo processador usando sinais do barramento
RD# (ReaD), WR# (Write), CS# (Chip Select), A0#, etc.
• Os registradores internos podem ser escritos para escolher
modos de operação, mascarar interrupções, etc.
• Oito entradas de interrupção IRx recebem pedidos de
interrupção de dispositivos com diferentes prioridades.
• Quando uma ou mais entradas IRx são ativadas, o controlador
ativa o sinal de interrupção do processador INT (INTerrupt).
• Processador em condições de atender interrupção ativa sinal
INTA# (INTerrupt Acknowledge) de confirmação para o
controlador.
• Controlador informa ao processador qual foi o dispositivo
mais prioritário dentre aqueles que solicitaram interrupção,
colocando o seu número na via de dados.
• O processador usa este número para indexar o vetor de
interrupção e, a partir deste, executar a Rotina de Serviço de
Interrupção (RSI) do dispositivo correspondente. Ao fim da
RSI, o processador escreve um código apropriado no
controlador, de modo a avisá-lo que está pronto para atender
outras interrupções.
• Em resposta, o controlador desativa INT (desde que não exista
uma outra interrupção pendente).
INT IR0
INTA# IR1
Controlador IR2
RD# IR3
Processador de Interrupção
WR# IR4
8259A
CS# IR5
A0# IR6
D0-D7
IR7
• Entrada/Saída Paralela:
Driver
Entrada Buffer Via de
Paralela Dados
INT/ CA 1
IRQA Status CA 2
(CRA)
Control
Data BUS Buffer
(DDRA)
Data Direction
D0-D7 BUS Input
Peripheral
Control Interface A PA0-PA7
CS0
Peripheral
CS1 Chip Select Interface B PB0-PB7
CS2
RS0
Resister Select Data Direction
RS1
R/W (DDRB)
EN Control
RESET (CRB)
INT/ CB 1
IRQB Status CB 2
Data BUS
D0-D7 CA 1
RS0 CA 2
RS1
CS0
CS2 P PA0-PA7
I
CS1 A PB0-PB7
EN
R/W
RESET CB 1
IRQA
IRQB CB 2
+5V
Address BUS
Control BUS
CS#
A0-A1 Porta A
RD# PIO
8255A
WR# Porta B
RESET
Porta C
D0-D7
Control Word
PA
Data BUS Register
D[7...0] PB
Buffer&
PC
Multiplexer
CW
Processor Data BUS
Group A
PA[7...0]
Port A
Group A
Port C PC[7...4]
Upper
A[1...0]
Processor Processor Control Group B
RDn Read/Write Port C PB[7...0]
WRn Control Lower
CSn
Reset
Group B
Port B PB[7...0]
• Entrada/Saída Serial:
E/S Paralela
1 Conversor
Via de 0 Saída Serial
Paralelo
Dados 1
1 Serial
Via de Buffer
Endereços
Conversor Entrada Serial
Via de Serial
Controle Paralelo Controle
Externo
MPU
8251
TxRDY TxD
TxE Transmiter TxC
RxRDY RxD
Receiver RxC
SYNDET
Data BUS
D0-7
Transfer
RESET
CLK
C/D
RD
WR Control
DSR
Modem DTR
Control CTS
RTS
CS
Control BUS
Address BUS
Data BUS
8251
UART
RxD User
TxD
Linha Função
CS Chip Select (device)
SYNDET Synchronous mode
RxC Receiver clock
RxD Receiver data (serial in)
TxC Transmitter clock
TxD Transmitter data (serial out)
TxDRY Transmitter ready (to accept data)
TxE Transmitter empty
RxRDY Receiver ready (character ready)
DO-D7 Data bus
RESET Resets device to idle mode
CLK Internal clock
C/D During read selects status or data to be input to CPU
During write interprets data as command or data
RD UART gates status or data on data bus
WR UART accept command or data from data bus
Modem control
DSR Data set ready
DTR Data terminal ready
CTS Clear to send
RTS Request to send
C/D RD WR CS Operação
0 0 1 0 8251 para Data Bus (Read)
0 1 0 0 Data Bus para 8251 (Write)
1 0 1 0 Status para Data Bus
1 1 0 0 Data Bus para Control
— — — 1 Data Bus para Tri-State
• Operação de Saída:
• A operação da USART é iniciada através de uma palavra de
controle que seta o modo de transmissão (síncrono ou
assíncrono).
• O próximo byte seta o tamanho da palavra e bits de controle
de transmissão adicionais.
• O tamanho da palavra a ser transmitida pode ser de 5 a 8 bits.
• A transferência é iniciada através de um procedimento de
hand-shake. O receptor precisa sinais de temporização,
providos por um relógio externo. Estes sinais são
sincronizados com os bits transmitidos, de modo a o receptor
poder reconhecê-los.
• O relógio externo é fornecido pelo gerador de taxa de baud e
deve ser ajustado para o modo de operação do periférico.
• Hand-shake:
• Computador ativa DTR, informando que está ligado.
• Em resposta, periférico ativa DSR.
• Quando o computador deseja enviar dados, ativa RTS.
• Periférico em condição de receber dados ativa CTS.
• Computador escreve dado no 8251.
• Módulo de transmissão serializa o dado, anexando
automaticamente um bit de inicio, dois bits de parada e um bit
de paridade.
• O receptor analisa os bits que chegam e checa a paridade,
convertendo o dado serial para a forma paralela.
• Para receber dados, a interface USART faz um polling da
entrada de dados serial a uma taxa 16 vezes mais rápida do
que a taxa de transmissão.
• Quando um nível baixo é detectado, o hardware espera oito
ciclos de polling para verificar se a linha está em nível baixo
após meio período de bit. Caso afirmativo, um bit é lido a cada
16 ciclos de polling.
• Ao final do byte, checa-se se bit de parada está em nível alto.
Se o byte é recebido sem problemas, um bit de flag é setado ou
o software de aplicação é interrompido.
• A palavra recebida é armazenada em um registrador do
receptor para posterior processamento pelo periférico.
Arquitetura de Computadores
0 8K 16 K 24 K 32 K 40 K 48 K 56 K 64 K
A15
A15
• Chip Processador:
• CPU em um chip.
• Pinos de um processador:
• Pinos de dados (entrada e saída): conectados à via de dados. Um
processador com n pinos de dados pode ler ou escrever uma
palavra de n bits numa única operação. Valores típicos: n = 8, 16,
32, 36 e 64.
• Pinos de endereço (saída): conectados à via de endereços. Um
processador com m pinos de endereço pode endereçar até 2m
posições de memória. Valores típicos: n = 16, 20, 32 e 64.
• Pinos de controle (entrada ou saída): conectados à via de controle.
• Controle de barramento (entrada ou saída): comandam
operações de leitura e escrita.
• Arbitragem de barramento (entrada ou saída): necessários para
regular o acesso ao barramento e evitar conflitos quando dois
ou mais dispositivos disputam a posse do mesmo.
• Interrupções (entrada): usados por dispositivos de E/S para
sinalizar pedidos de serviço de interrupção.
• Outros: Vcc, terra, clock, status, Reset, sinalização para co-
processador, etc.
Vcc
Endereços
Dados
Processador Outros
Controle do barramento
Arbitragem do barramento
Interrupções
• Caminho de Dados:
CAMINHO DE DADOS
Memória de Barramento
Rascunho do Sistema
Unidade
de
Controle
ULA
• Memória de Rascunho:
• Vias Internas:
R1 (n bits) OE1
R2 (n bits) CK2
CPU BARRAMENTO
Via de Saída MAR Via de
Endereços OE Endereços
CKA
RD
WR
Via de Saída CKB MBR
Dados Via de
Dados
f0 = A ULA
f1 = A∧B
A
B f2 = A∨B MUX
(k.n) f(A,B)
f3 = A⊕B para
.
. . (n)
.
. . .
. . Lógica
de CC
fk-1 = A+B Status
Vem-1 Vai-1
• Unidade de Controle:
I Bi
W
C
Z
Ki Ji
CK Flip-Flop i
Qi
Gi
Gi-1
R
Bi
(a)
(b)
Figura 4.39. Registrador controlado: a) Estágio. b) Esquema funcional.
Arquitetura de Computadores
• Observações:
• Apenas um dos sinais de controle (W, R, I, C, ou Z)
deve estar ativo de cada vez, (ou todos desativados).
• Qi0 = Estado anterior do flip-flop i.
• X' = not X
Registrador X
de n bits Wx,Rx
Registrador
W,R,I,C,Z Controlado
de n bits Registrador Y
de n bits Wy,Ry
Somador
de n bits
Registrador
WA,RA,ZA Acumulador
de n bits
(0) Estado de
espera
Todos os sinais de
controle = 0
S=0
S=? 0
S=0
S=1 S=1
(1) AC ← 0
RC ← 0
1
S=1
ZA = Z = 1 S=0
S=1 2
S=?
S = Irrelevante
S=0
(2) RC ← RX 3
Rx = W = 1
S = Irrelevante
(3) AC ← RC 4
R = WA = 1
(4) RC ← RY 5
Ry = W = 1
(5) AC ← AC+RC 6
R = WA = 1
(6) RX ← AC
RA = Wx = 1
(a) (b)
S
Q2 Q2 Q2
Lógica Lógica Lógica
Q1 Q1 Q1
Q0 Q0 Q0
CK
(c)
S Gerador de Q2
Seqüência de Q2'
Estados da Q1
Q1'
Unidade de Q0
CK
Controle Q0'
(d)
Chave
Q2
Vcc S
Gerador de Q2'
Seqüência de
Estados da Q1
Unidade de Q1'
Controle Q0
CK Q0'
Z, ZA Rx W R, WA Ry W x, R A
ZA Rx W R, WA Ry Wx, RA
S
Dispositivo
de Partida
D0 Q0 D1 Q1 D2 Q2 D3 Q3 D4 Q4 D5 Q5
CK
C1 Decodificador
C0
Gerador de seqüência 0
Gerador de seqüência 1
Gerador de seqüência 2
Gerador de seqüência 3
CK
Registrador de Contador
IPC de Programa
(6 bits) E,R/W#
Memória RAM
TB
Via de Dados
(8 bits)
Registrador de Instruções
OPCODE Instrução
00 Parar (STOP)
01 Somar conteúdo de Endereço a AC (ADD END)
10 Subtrair conteúdo de Endereço de AC (SUB END)
11 Transferir de AC para Endereço (STORE END)
X
Vcc
Partir
OP CODE (2 bits) D
Q
Decodificador TPC
de Instruções D
Q
00 11 01 10 IPC,
E,R/W#,
TB
BUSCA
D D D EXECUÇÃO
STOP Q Q Q
R/W# C
D D
Q Q
WA I
D
Q
WA
• Conjunto de Instruções:
• Modos de Endereçamento:
• Caminho de Dados:
- Memória de rascunho.
- ULA alimentada a partir da memória de rascunho por duas vias de 8 bits
(A e B) através de dois Latches de 8 bits (Latch A e Latch B).
- Via S (saída de dados) de 8 bits. Alimenta a memória de rascunho a
partir da saída da ULA.
- O caminho de dados é ligado ao mundo externo através do barramento
do sistema, interfaceado por dois registradores: Registrador de
Endereços da Memória (RE) e Registrador de Dados da Memória (RD),
conectados respectivamente à via de endereços (de 5 bits) e à via de
dados (de 8 bits).
• Vias Internas:
Sinais de controle
do caminho de ST
dados
C.O. OP.
Memória RI
Principal
Via de endereços RE
32 × 8 bits
CP
Via de dados
RD
AC
Latch A Latch B
ULA Z
• Sinais de Controle:
UNIDADE DE CONTROLE
Busca de Instruções:
Decodificação de Instruções:
Execução de Instruções:
START
Seqüência
de Busca
100 Teste de AC
Seqüência JUMPZ X
101 STOP
ST