EA869
Arquitetura de Computadores
Faculdade de Engenharia Elétrica e de Computação (FEEC)
Universidade Estadual de Campinas (UNICAMP)
Prof. Levy Boccato
1
Recordando
Problema
Estruturas
de dados
Representação
numérica
Algoritmo
Nível
Conceitual
Linguagem
Assembly
Hierarquia
de
linguagens
Como está
organizado o
hardware de um
computador?
Hardware
ARQUITETURA DE COMPUTADORES
2
Introdução
 Objetivos:
 Conhecer
os
processadores.
principais
aspectos
da
arquitetura
de
 Conhecer
as características de cada componente desta
arquitetura.
 Projetar uma máquina simples.
 O que é um computador?
 Seguindo o espírito da máquina universal de Turing, é uma máquina
cuja função é ler e executar instruções.
3
Introdução
 Instrução de máquina:
 Identifica uma operação elementar que o processador é capaz de
realizar.
 Nela, o processador deve encontrar referências quanto:
I.
II.
à operação que deve realizar – soma, subtração, movimentação de dados
etc.
aos operandos envolvidos – onde estão os dados que desejamos
manipular?
 A linguagem simbólica oferece uma maneira visualmente mais
atraente para descrever uma instrução.

Exemplo:
0010
0001
Código da operação
Identificação
do primeiro operando
A leitura do código da operação deve
desencadear no processador uma
sequência de ações, através de sinais de
controle, que ativem os elementos do
circuito responsáveis por realizar uma
soma, tendo como entrada os operandos
identificados na instrução.
Instrução: ADD r1, r5
0101
Identificação
do segundo operando
r1 ← r1 + r5
4
Introdução
 Tendo este entendimento inicial acerca das instruções, daremos
início ao estudo da arquitetura e organização de computadores.
 Quais componentes devem existir em um computador?
5
Introdução
 Tendo este entendimento inicial acerca das instruções, daremos
início ao estudo da arquitetura e organização de computadores.
 Quais componentes devem existir em um computador?
Processador
Gabinete
Sistema
operacional
Memória
Placa mãe
Disco rígido
Monitor
Jogos
6
Arquitetura de computadores
7
Arquitetura de computadores
8
Registradores
 O que são? Elementos de armazenamento de informação.
 O que armazenam? 1 palavra de informação – Ex.: ARM: 32 bits.
 Características:
 Estão localizados dentro do processador e são de rápido acesso.
 Realizam algumas operações sincronizadas com o relógio (clock) do sistema.
 Como são construídos?
 Um registrador de n bits é formado pela ligação de n flip-flops, cada um
armazenando 1 bit de informação, sincronizados pelo mesmo relógio.
Flip-flops?
REGISTRADOR
9
Registradores
 Flip-flops: circuitos digitais que atuam como uma memória de 1 bit.
FLIP-FLOP D
Mantém o estado anterior a
cada pulso do relógio.
FLIP-FLOP JK
Além de manter o estado anterior, ele pode
setar (1), resetar (0) ou complementar a
saída a cada pulso do clock.
Tabela Verdade
J
K
Q
0
0
Q
0
1
0
D Q
1
0
1
0
0
1
1
Q’
1
1
Tabela Verdade
Operação
Sensíveis ao nível
Sensíveis à borda de subida
Sensíveis à borda de descida
10
Registradores
 Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
 Transferência de dados: o registrador envia (leitura) ou recebe (escrita)
dados do barramento.
 Lembrar que cada operação é sincronizada com o relógio do sistema.
W
Clock
Comando
Operação
W
REG ← (BAR)
R
BUS ← (REG)
R
REGISTRADOR
11
Registradores
 Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
 Transferência de dados: o registrador envia (leitura) ou recebe (escrita)
dados do barramento.
 Lembrar que cada operação é sincronizada com o relógio do sistema.
Comando
Operação
W
REG ← (BAR)
R
BUS ← (REG)
Barramento
Clock
W
K
...
Clock
R
CLK
Ai
K
J
...
J
Bi
Controle de acesso
ao barramento via
tri-state
...
12
Registradores
 Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
 Complementação: o registrador recebe seus bits complementados.
 Exemplo: registrador de 4 bits – 0110 se torna 1001.
W
Clock
Comando
Operação
C
REG ← (REG)
R
C
REGISTRADOR
13
Registradores
 Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
 Deslocamento: o registrador recebe seus bits deslocados.
 Exemplo: registrador de 4 bits – 0110 se torna 0011.
W
Clock
Comando
Operação
D
REG ← SHIFT(REG)
R
C
D
REGISTRADOR
14
Registradores
 Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
 Incrementa/Decrementa: o registrador recebe os seus bits somados ou
subtraídos por 1.
 Exemplo: registrador de 4 bits (incremento) – 0110 se torna 0111.
W
Clock
Comando
Operação
I/D
REG ← (REG) +/- 1
R
C
D
I/D
REGISTRADOR
15
Registradores
 Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
 Set/Reset: o registrador recebe 1 (set) ou 0 (reset) em todos os seus bits.
 Exemplo: registrador de 4 bits (set) – 0110 se torna 1111.
W
Clock
Comando
Operação
S/R
REG ← 1/0
R
C
D
I/D
REGISTRADOR
S/R
16
Registradores
 Registrador sensível a múltiplos comandos:
 Responde a múltiplos sinais de controle.
 Cuidado: somente um sinal de controle pode estar ativo a cada pulso de
relógio.
Barramento de dados
W
R
C
D
I/D
S/R
Circuito de múltiplos comandos
Clock
REGISTRADOR
17
Registradores
 Exemplo:
Barramento
Barramento
W
Z
C
K
CLK
J
FFi
Qi
W
R
C
Z
CLK
R
Registrador Sensível a Múltiplos Comandos (Sinais de Controle)
W - Transferir do barramento para o registrador (Write)
R - Transferir do registrador para o barramento (Read)
C - Complementar o registrador
Z - Zerar o registrador
18
Arquitetura de computadores
19
Unidade Lógico-Aritmética
 ULA: responsável pela execução de todas as operações sobre os
dados.
 Características: suas entradas e saídas de dados, bem como a
operação que pode realizar, estão diretamente relacionadas à
instrução (Assembly).
 Estrutura:
Registrador
de estado
Flags
Informa o estado do
processador após a
última operação
realizada pela UAL.
Entrada de dados
Σ
Comandos da
unidade de controle
Saída de dados
(Resultados)
20
Unidade Lógico-Aritmética
 ULA: responsável pela execução de todas as operações sobre os
dados.
 Classificação:
depende de como devem ser especificados os
operandos e resultados na instrução (Assembly).




Máquina de zero endereços:
Máquina de 1 endereço:
Máquina de 2 endereços:
Máquina de 3 endereços:
CO
CO
Op. 1
CO
Op. 1
Op. 2
CO
Op. 1
Op. 2
Registrador
de estado
Flags
Informa o estado do
processador após a
última operação
realizada pela UAL.
Op. 3
Entrada de dados
Σ
Comandos da
unidade de controle
Saída de dados
(Resultados)
21
Unidade Lógico-Aritmética
 Máquina de zero endereços
 Formato da instrução: CO
 Exemplo: ADD
 Funcionamento: stack machines – todas as operações envolvem as
posições no topo da pilha.
Calculadora HP
Exemplo?
dado2
dado1
FLAGS
Saída
Σ
x
x
x
Pilha
22
Unidade Lógico-Aritmética
 Máquina de 1 endereço
 Formato da instrução: CO
Op. 1
 Exemplo: ADD R1
 Funcionamento: toda operação está baseada em um registrador
implícito – Acc (acumulador).
Acc ← (Acc) operação (Op. 1)
Exemplo: Intel 8085 (década de 70)
Op. 1
FLAGS
Saída
Σ
Acc
23
Unidade Lógico-Aritmética
 Máquina de 2 endereços
 Formato da instrução: CO
Op. 1
Op. 2
 Exemplo: ADD R1, R2
 Funcionamento: não há mais necessidade de registradores auxiliares;
o resultado da operação é armazenado em um dos operandos.
Op. x ← (Op. 1) operação (Op. 2)
Exemplo: Intel-64 (déc. 90/00)
FLAGS
R2
R1
Op. 2
Op. 1
Saída
Σ
24
Unidade Lógico-Aritmética
 Máquina de 3 endereços
 Formato da instrução: CO
Op. 1
Op. 2
Op. 3
 Exemplo: ADD R1, R2, R3
 Funcionamento: há operandos específicos para os dados de entrada e
um registrador para receber a saída.
Op. 1 ← (Op. 2) operação (Op. 3)
Exemplo: ARM
FLAGS
R2
R3
Op. 2
Op. 3
Saída
Σ
R1
Qual a diferença
prática no uso de
máquina de
diferentes
endereços?
25
Unidade Lógico-Aritmética
 Importante: a opção de projeto por uma máquina de 1, 2 ou
3 endereços tem implicações no tamanho de cada instrução,
no tamanho e inteligibilidade dos programas preparados
em linguagem simbólica (Assembly), na velocidade, no custo,
na configuração de memória, etc.
26
Arquitetura de computadores
27
Barramentos
 Conhecendo os registradores e a unidade de operações lógico-
aritméticas, vamos entender como a informação navega através
das unidades do nosso computador. Vamos falar dos barramentos.
 Barramentos:
 São ligações (caminhos elétricos) entre diferentes módulos ou partes
de um sistema computacional.
 A fim de reduzir o número de conexões entre os módulos, criam-se
canais ou dutos compartilhados.
 Aspectos:



Mecânicos.
Elétricos – nível de tensão, corrente suportada.
Protocolo – acordo que rege como o barramento deve ser utilizado.
28
Barramentos
 Barramentos:
 Funcionamento:
 Ao transferir dados entre duas unidades de um computador via um barramento,

devemos nos atentar ao fato do barramento não armazenar dados.
Na prática, isso significa que ao transferir um dado, uma unidade deve ter seu sinal de
Read acionado no mesmo pulso de relógio que uma outra unidade aciona seu sinal de
Write.
Vejamos...
RR1 WR1
RR2 WR2
0
0
1
1
1
0
0
0
R1
R2
29
Máquina Simples
 Já conhecemos três elementos fundamentais em um computador:
 Registradores;
 Unidade lógico-aritmética;
 Barramentos.
 Vamos, então, montar uma máquina bastante simples de fazer
contas.
30
Máquina Simples
RE
we
ACC
n
𝑛
IT
wT
RT
wA CT
RA ZT
TMPn
R1n
WR1
RR1
R2n
WR2
RR2
Sinais de controle
W - transferir do barramento para o registrador
Exemplo: WR1 indica a operação R1  (bus)
CT - complementar o conteúdo do registrador TMP
Isto é, CT dispara a operação TMP  (TMP)’
R - transferir do registrador para o barramento
Exemplo: RA indica a operação bus  (Acc)
ZT - zerar (reset) o registrador TMP
Isto é, ZT indica a operação TMP  "0"
W- transferir a saída do somador para o Acc
R2n ,R1n - registradores de dados com n bits
R- transferir o conteúdo do registrador Acc
para a entrada do n
TMPn - registrador de complemento/incremento com
n bits
IT - incrementar o conteúdo do registrador TMP. Accn - registrador acumulador com n bits
Isto é, IT aciona a operação TMP  (TMP) + 1
Considere que a ULA apenas realiza adições e que os dados de entrada estão
nos registradores R1 e R2. Como podemos construir uma arquitetura que
execute a seguinte operação: R1 ← (R1) – (R2)?
31
Máquina Simples
IT
wT
RT
CT
ZT
Agora
temos nossa
primeira
máquina de
calcular!
TMPn
𝑛
Vamos então
executar passo a
passo a operação:
R1 ← (R1) - (R2)
RE
we
R1n
WR1
RR1
R2n
WR2
RR2
ACC
n
wA
RA
32
Máquina Simples
R1 ← (R2) - (R1)
Passos
Pulso
do
relógio
1.
Transferir
o
conteúdo de R2 para
Acc
1
Sinais
de
controle
RR2 ,
WA
Microoperação
IT
wT
RT
CT
ZT
bus ← (R2)
Acc ← (bus)
2.
Transferir
o
conteúdo de R1 para
TMP
2
RR1 , WT
bus ← (R1)
TMP ← (bus)
3. Complementar TMP
3
C
TMP ← (TMP)
101
110
010
111
T
IT
WR1
RR1
001 R2n
WR2
RR2
TMP ← (TMP) + 1
4. Imcrementar TMP
4
5. Somar: ULA recebe
valores e faz a soma
5
RE , RT
6. Armazenar a soma
no Acc
6
WE
Acc ← (ULA)
7. Armazenar
final em R1
7
RA , WR1
Acc ← (ULA)
valor
010 R1n
ULA ← (Acc) + (TMP)
RE
we
wA
RA
33
Arquitetura de computadores
34
Memória
 Responsável
pelo
armazenamento
de
dados
e
instruções
(programas).
 Capaz de guardar grandes blocos de palavras (na ordem de
gigabytes).
 Conceitos básicos:
Quantos bits (b)
precisa ter o campo
de endereço para
endereçar n
palavras?
0 110 1011...
Palavra de m bits
1
2b ≥ n
2
3
Memória de n
palavras
..
Quantos dados
distintos uma
palavra consegue
representar?
n
2m
35
Memória
 Acesso: a unidade de controle do processador solicita o acesso a
um determinado endereço e a memória envia o conteúdo deste
endereço ao local apropriado.
 Dois registradores auxiliares: REM e RDM.
Como?
CPU
3
LEITURA DE UM DADO DA MEMÓRIA
Registrador de
Endereço da
Memória (REM)
0 110 1101...
1
2
3
..
n
568765
Registrador de
Dados da
Memória
(RDM)
CICLO DE LEITURA
1. REM ← end
2. RDM ← ((REM))
ou
RDM ← (m)
3. CPU ← (RDM)
36
Memória
 Acesso: a unidade de controle do processador solicita o acesso a
um determinado endereço e a memória envia o conteúdo deste
endereço ao local apropriado.
Conhecendo os ciclos
 Dois registradores auxiliares: REM e RDM.
de leitura e escrita,
CPU
3
ESCRITA DE UM DADO DA
MEMÓRIA
Registrador de
Endereço da
Memória (REM)
0 110 1111...
1
2
3
568765
..
n
porque o acesso a um
registrador é menos
custoso?
Registrador de
Dados da
Memória
(RDM)
CICLO DE ESCRITA
1. REM ← end
2. RDM ←(CPU)
3. (REM) ← (RDM)
ou
m ← (RDM)
37
Memória
 Considerações:
 A memória que constantemente se comunica com o processador é chamada de
memória principal (comumente conhecida como memória RAM).
 RAM significa memória de acesso aleatório (random access memory). O termo
aleatório refere-se à capacidade de acessarmos qualquer posição em qualquer
momento com a mesma facilidade, em contraste com as antigas fitas magnéticas.
 Uma característica importante das RAMs é o fato de as operações de escrita
consumirem o mesmo tempo de uma operação de leitura. Uma operação de escrita
em uma ROM (read-only memory), por sua vez, consome um tempo
consideravelmente superior que o de uma leitura.
 RAMs também são voláteis – os dados se perdem quando a alimentação é removida
(ao desligar o computador).
 Por isso, a memória RAM sempre recebe do disco (HD) o programa a ser executado.
 Um outro tipo de memória RAM, conhecida como memória cache, pode ser
colocada entre o processador e a memória principal com o objetivo de tornar o
acesso aos dados mais rápido.

Ela guarda um subconjunto dos dados que mais recente ou mais frequentemente têm sido utilizados.
38
Arquitetura de computadores
39
Unidade de Controle


O funcionamento correto do computador depende do correto acionamento de todos os sinais
de controle do hardware, conforme exigido por cada operação (instrução). A unidade de
controle é a responsável por gerenciar as operações de um processador.
O que ela deve fazer?
1.
2.
3.

Buscar a próxima instrução na memória principal.
Decodificar a instrução.
Acionar sequencialmente os respectivos sinais de controle que farão com que a operação desejada seja
executada.
Para cumprir estas tarefas, a unidade de controle conta com as seguintes estruturas auxiliares:
Registrador PC
(Contador de Programa)
Indica o endereço da
próxima instrução a ser
executada
Registrador de Instrução
(RI)
Armazena a instrução
para a decodificação
Controlador
Lê a instrução que está
em RI, decodifica e ativa
sequencialmente os
sinais de controle
apropriados
Operação Básica
0
PC
0
REM
ADD R1
1
2
RI
3
..
Controlador
...
sinais de controle
n
RDM
40
Unidade de Controle

Para compreendermos mais detalhadamente como a unidade de controle busca e executa as
instruções, precisamos conhecer os diferentes tipos de instrução disponíveis em um
processador.

Instrução de máquina = sequência de bits armazenada na memória principal, identificando a
operação e os dados envolvidos.
ARM: CO Rd Rn Op2

Vejamos alguns exemplos de instruções de máquina. Vamos tentar entender quais dados elas
manipulam:
Não há dados na instrução.
ADD R1,R2,R3
R1 ← (R2) + (R3)
Todos eles encontram-se nos registradores.
ADD R1,R2, #4
R1 ← (R2) + 4
A instrução possui um dado: o valor 4 (# indica que o
valor é um imediato presente na própria instrução).
ADD R1, R2, 4
R1 ← (R2) + (4)
A instrução indica que um dos operandos está no
endereço 4 da memória.
41
Unidade de Controle
 Porém, nem sempre uma instrução de máquina completa ocupa apenas
uma palavra de memória.
 No caso do processador ARM, qualquer instrução é formada por 32 bits,
o que equivale a uma única palavra de memória. Mas isto nem sempre
acontece.
 Instrução de 1 palavra: SUB R1, R2, #3
R1 ← (R2) - 3
 Instrução de 2 palavras: SUB R1, R2, #3
R1 ← (R2) - 3
C. O.
dado
Agora que sabemos
como são as
instruções, vamos
entender melhor
como a unidade de
controle as executa.
 Instrução de 3 palavras: SUB R1, 4, #3
C. O.
R1 ← (4) - 3
end
dado
42
Unidade de Controle




A execução de uma instrução é dividida em ciclos de máquina (CM).
Um ciclo de máquina corresponde a uma sequência de microoperações que são executadas,
caracterizando uma operação mais complexa.
A execução de uma instrução pode ser composta por vários ciclos de máquina, que por sua vez
são formados por diversas microoperações, as quais determinam o sequenciamento dos sinais
de controle.
Duas fases são necessárias para a execução de uma instrução:

Fase de busca: compreende o CM para busca e leitura do C.O. da instrução (ciclo de busca). As
microoperações envolvidas são idênticas para qualquer instrução.
 Fase de execução: compreende a execução dos CMs necessários para a leitura das palavras restantes da
instrução (se existirem – ciclo de leitura) e da efetiva execução da operação identificada (ciclo de
execução). Esta fase é específica para cada instrução.
Quais ciclos são
necessários para a
execução das
seguintes
instruções?
Vamos ver essas
fases mais
detalhadamente...
Exemplos:
SUB R1 , R2, 2
C. O.
R1 ← (R2) – (2)
end
1. Ciclo de Busca
2. Ciclo de execução
ADD R1 , R2 , #3
C. O.
R1 ← (R2) + 3
1. Ciclo de Busca
dado
2. Ciclo de Leitura
3. Ciclo de execução
43
Unidade de Controle
 Exemplo: vamos supor que o computador irá executar a seguinte instrução:
STA 3
Acc ← (end)
 A instrução de máquina possui o seguinte formato:
C. O.
end
Carregando os dados na
memória e nos
registradores...
PC
0
REM
0
STA
1
3
2
RI
3
150615
..
Controlador
...
sinais de controle
n
Acc
RDM
44
Unidade de Controle
STA 3
Buscar o C.O.
e levá-lo para
o controlador
FASE DE BUSCA
Acc ← (end)
C. O.
Pulso
Microoperação
1
REM ← (PC)
2
RDM ← ((REM) ou (m)
PC ← (PC) + 1
3
RI ← (RDM)
end
PC
01
REM
CICLO
DE
BUSCA
0
STA
1
3
2
RI
3
150615
..
Controlador
...
sinais de controle
n
Acc
RDM
STA
45
Unidade de Controle
FASE DE EXECUÇÃO
STA 3
Acc ← (end)
Pulso
Microoperação
1
REM ← (PC)
2
RDM ← ((REM) ou (m)
PC ← (PC) + 1
3
RI ← (RDM)
C. O.
end
PC
12
REM
0
RI
STA
Controlador
...
sinais de controle
CICLO
DE
LEITURA
0
STA
1
3
2
3
150615
..
n
Acc
RDM
STA
3
46
Unidade de Controle
STA 3
Realiza as
microoperações
para executar a
instrução
FASE DE EXECUÇÃO
Acc ← (end)
C. O.
Pulso
Microoperação
1
REM ← (RI.end)
2
RDM ← ((REM)) ou (m)
3
Acc ← (RDM)
end
PC
2
REM
1
RI
CICLO DE
EXECUÇÃO
0
STA
1
3
2
3
3
Controlador
...
sinais de controle
150615
..
n
Acc
RDM
3
150615
47
Projeto de um computador
 Finalmente analisamos cada um dos componentes básicos de um
computador.
 Vamos, então, dar um passo mais ousado: projetar uma máquina de
executar instruções.
 A base para este projeto será a pequena máquina de calcular que vimos
durante a discussão sobre a ULA.
48
Computador simples
REM
E
habilita
Memória
RAM
PC
R/W
Leitura/
escrita
64x8
IPC
Incrementa PC
RDM
UC
transf. reg./barr.
TRB
TBR
RI
transf. barr./reg.
TB
Transf. do barr.
MEMÓRIA
IT
wT
RT
CT
ZT
TMPn
Controlador
...
𝑛
RE
we
B
a
r
r
a
m
e
n
t
o
ACC
n
wA
RA
49
Computador simples
PC
E
habilita
Memória
REM
IPC
Incrementa PC
RAM
6 bits
Transf. do PC
TPC
R/W
Leitura/
escrita
64x8
REM
endereço 6 bits
8 bits
TRI
RDM
Transf. do RI
6 bits
transf. reg./barr.
TRB
TBR
RI
transf. barr./reg.
8 bits
8 bits
TB
Transf. do barr.
IT
wT
RT
CT
ZT
2 bits
8 bits
B
a
r
r
a
m
e
n
t
TMPn
Controlador
...
...
TB TPC TRI
IT wT RT CT
ZT
IPC
Para finalizar,
Acabamos de montar
vamoso circuito digital
de nosso
próprio computador.
dimensionar
os
barramentos!
𝑛
o
8 bits
RE
we
ACC
n
wA
RA
50
Computador simples
PC
E
habilita
Memória
REM
IPC
Incrementa PC
RAM
6 bits
Transf. do PC
TPC
R/W
Leitura/
escrita
64x8
REM
endereço 6 bits
8 bits
TRI
RDM
Transf. do RI
6 bits
transf. reg./barr.
TRB
TBR
RI
transf. barr./reg.
8 bits
8 bits
TB
Transf. do barr.
IT
wT
RT
CT
ZT
2 bits
8 bits
B
a
r
r
a
m
e
n
t
TMPn
Controlador
...
...
TB TPC TRI
IT wT RT CT
ZT
IPC
 Quantas instruções diferentes este processador
consegue executar?
CO – 2 bits: portanto, no máximo 4 instruções
𝑛
o
8 bits
RE
we
ACC
n
wA
RA
51
Computador simples
PC
E
habilita
Memória
REM
IPC
Incrementa PC
RAM
6 bits
Transf. do PC
TPC
R/W
Leitura/
escrita
64x8
REM
endereço 6 bits
8 bits
TRI
RDM
Transf. do RI
6 bits
transf. reg./barr.
TRB
TBR
RI
transf. barr./reg.
8 bits
8 bits
TB
Transf. do barr.
IT
wT
RT
CT
ZT
2 bits
8 bits
B
a
r
r
a
m
e
n
t
TMPn
Controlador
...
...
TB TPC TRI
IT wT RT CT
 Por exemplo:
Código
ZT
Mnemônico
IPC
𝑛
o
Instrução
00
STOP
01
ADD
10
SUB end
Subtrair do Acc o conteúdo do endereço
11
STA
Transf. o conteúdo do Acc para endereço
8 bits
Parar
end
end
Somar ao Acc o conteúdo do endereço
RE
we
ACC
n
wA
RA
52
Computador simples
PC
E
habilita
Memória
REM
IPC
Incrementa PC
RAM
6 bits
Transf. do PC
TPC
R/W
Leitura/
escrita
64x8
REM
endereço 6 bits
8 bits
TRI
RDM
Transf. do RI
6 bits
transf. reg./barr.
TRB
TBR
RI
transf. barr./reg.
8 bits
8 bits
TB
Transf. do barr.
IT
wT
RT
CT
ZT
2 bits
8 bits
B
a
r
r
a
m
e
n
t
TMPn
Controlador
...
...
TB TPC TRI
IT wT RT CT
ZT
IPC
Considerando que as instruções ocupam uma
única palavra de memória, vamos acompanhar a
execução da instrução:
ADD end
Acc ← Acc + (end)
𝑛
o
8 bits
RE
we
ACC
n
wA
RA
53
Computador simples
PC
REM
2
IPC
Incrementa PC
3
R/W
Leitura/
escrita
5 20
REM
TPC
E
habilita
4
6 bits
Transf. do PC
2 ADD 5
endereço 6 bits
8 bits
TRI
RDM
Transf. do RI
6 bits
transf. reg./barr.
TRB
TBR
RI
transf. barr./reg.
8 bits
8 bits
TB
Transf. do barr.
IT
wT
RT
CT
ZT
2 bits
8 bits
B
a
r
r
a
m
e
n
t
TMPn
Controlador
...
...
TB TPC TRI
IT wT RT CT
ZT
IPC
𝑛
o
Considere as condições iniciais dadas na arquitetura.
8 bits
RE
we
ACC
15
wA
RA
54
PC
2 ADD 5
3
4
5 20
32
IPC
Incrementa PC
6 bits
REM
Transf. do PC
TPC
endereço 6 bits
2
TRI
8 bits
Transf. do RI
RI
Transf. do barr.
RDM
ADD
20 5
6 bits
TB
R/W
Leitura/
escrita
transf. reg./barr.
TRB
TBR
transf. barr./reg.
8 bits
8 bits
ADD 5
E
habilita
TMP
IT
wT
RT
CT
ZT
2 bits
8 bits
20
B
a
r
r
a
m
e
n
t
Controlador
IT wT RT CT
ZT
Pulso
...
... TB TPC TRI
IPC
Microoperação
SCs
1
REM ← (PC)
TPC
2
RDM ← ((REM)) ; PC ← (PC) + 1
E, R, IPC
3
RI ← (RDM)
TRB , TB
4
REM ← (RI.end)
TRI
5
RDM ← ((REM))
E, R
6
TMP ← (RDM)
7
∑ ← (ACC) + (TMP)
B
U
S
C
A
35
o
8 bits
ACC
RE
we
15
wA
RA
TRB, WT
RT, RE
8
ACC ← (∑ )
55
WE
E
habilita
PC
IPC
Incrementa PC
6 bits
R/W
Leitura/
escrita
REM
Transf. do PC
TPC
endereço 6 bits
8 bits
TRI
Transf. do RI
6 bits
RDM
transf. reg./barr.
TRB
TBR
RI
8 bits
8 bits
TB
transf. barr./reg.
TMP
Transf. do barr.
IT
wT
RT
CT
ZT
2 bits
8 bits
B
a
r
r
a
m
e
n
t
o
Controlador
IT wT RT CT
ZT
...
... TB TPC TRI
IPC
Agora já sabemos como projetar um
processador simples e como os dados se
movimentam pelo circuito digital durante a
execução de uma instrução de máquina.
Falta apenas um último detalhe: como os
sinais de controle são adequadamente
sequenciados? Quem é responsável por
esta tarefa?
Controlador
8 bits
ACC
RE
we
wA
RA
56
Controlador
 O controlador é o elemento responsável por acionar sequencialmente os sinais de
controle apropriados para que uma determinada instrução seja executada.
 Circuito digital = máquina de estados finitos – deve garantir que em cada ciclo de
relógio, o conjunto correto de sinais de controle é acionado.
 Uma implementação possível – e relativamente simples – baseia-se no uso de flipflops D.
1 TRI
2 E, R
3 TRB, WT
4 RT, RE
5 WE
Por exemplo, seja a instrução ADD end
O ciclo de execução se dá através dos sinais
de controle:
Uma possível implementação com FFs seria:
TRI
S
D2
Q2
D1
Q1
FF1
Relógio
CLK
D5
Q5
D4
Q4
D3
Q3
WE
RT , RE
TRB , WT
E,R
FF2
FF3
FF4
FF5
CLK
CLK
CLK
CLK
57
Controlador
 Poderíamos estender este procedimento para as quatro instruções do nosso
processador. Assim, o hardware do controlador corresponderia ao seguinte circuito
digital:
Quais as
vantagens e
desvantagens
deste tipo de
controlador?
58
Controlador
 O controlador apresentado foi implementado de forma específica para o conjunto
de instruções do processador (hardwired).
 Vantagem: otimização (ganho em velocidade).
 Porém, em processadores com muitas instruções, este tipo de implementação acaba
se tornando custosa, já que exige muito hardware.
 Além disso, uma vez definido como cada instrução é executada a partir dos sinais
de controle, não é mais possível alterá-la, já que está “impressa” no próprio
hardware – pouco flexível.
Existe alguma alternativa
para a construção do
controlador?
 Uma possibilidade é aplicar novamente a ideia de programa armazenado, mas
agora dentro do próprio controlador.
 Um “programa”, armazenado dentro do controlador, contém a sequência de
“instruções” responsável pela ativação dos sinais de controle que garantem a
execução de uma instrução de máquina (e.g., ADD).
Computadores Microprogramados
59
Controlador
 Historicamente, a escolha por um tipo de abordagem de projeto
do controlador dá origem a dois grupos de processadores:
Arquiteturas com
controle via
hardware
RISC
Processadores ARM
Arquiteturas com
controle via
microprogramação
CISC
Processadores Intel
Vamos então conhecer um pouco melhor estes dois conceitos de
projeto...
60
RISC e CISC
 CISC (complex instruction set computer):
 Conjunto rico de instruções complexas, semelhantes aos comandos de
linguagens de alto nível.
 Suporte a diversos modos de endereçamento.
 Um conjunto de instruções complexo faz sentido ao menos de
dois pontos de vista:
 Reduzir o “gap semântico” entre linguagem de máquina e linguagem
de alto nível, o que tende a simplificar sobremaneira o projeto de um
compilador.
 Aprimorar o desempenho por meio da criação de programas mais
enxutos em termos de instruções simbólicas de baixo nível.
 Neste contexto, a opção de projeto via microprogramação se mostra
bastante elegante.
61
RISC e CISC
 CISC:
Memórias eram
lentas e caras
Aplicações foram
ficando mais
complexas
Década de
70
Códigos deveriam
ser muito simples
Reduzir o gap entre
a linguagem de
programação e as
instruções de
máquina
Solução
Aumento do custo
para produção de
software
Surgimento da
microprogramação:
Sofisticar o uso da
linguagem Assembly
criando as instruções
complexas
CISC
62
RISC e CISC
 CISC:
Foco no Hardware
Instruções Complexas
Microprogramação
A
complexidade
da
programação é transferida para
o hardware.
Conjunto
grande
de
instruções que podem ser
executadas pelo hardware.
- Técnica que permite
implementar as instruções
complexas a partir de um
pequeno repertório de
instruções simples.
- Formadas pela combinação
de instruções simples.
- Expectativa: programas mais
enxutos – menos memória
para armazenar o código.
63
RISC e CISC
 CISC:
Vantagens
•
Otimiza o uso da memória RAM.
•
Aproxima a programação do
hardware, simplificando o software.
•
Possui grande quantidade de
instruções capazes de executar
várias operações de “alto nível”.
Desvantagens
•
Instruções muitas vezes são
demoradas e levam vários
ciclos de relógio para serem
executadas.
•
Dificuldade
em
explorar
eficientemente a ideia de
pipeline e/ou paralelismo entre
instruções.
•
Dificuldade em testar, detectar
e
corrigir
erros
nos
microprogramas.
64
RISC e CISC
 RISC (reduced instruction set computer):
 Instruções simples e padronizadas.
 Privilegia o uso de dados armazenados em registradores.
 Ênfase na otimização da pipeline de instruções – facilitada pelo perfil
do conjunto de instruções.
 Expectativa: hardware mais simples (hardwired), alcançando menor
consumo, menor tamanho e maior eficiência.
 A abordagem RISC surgiu a partir da observação de que muitas vezes
as premissas do movimento CISC não se verificavam. As vantagens
de se ter instruções mais complexas nem sempre se concretizavam,
uma vez que as instruções mais básicas (e.g., de movimentação de
dados) eram as mais frequentes nos programas gerados pelos
compiladores.
65
RISC e CISC
 RISC (reduced instruction set computer):
Hardware Simples
-
Não há necessidade de um
núcleo de processamento
para
executar
microinstruções.
Instruções Simples
Memória
-
Executadas em um número
reduzido de ciclos de
relógio.
-
Uso
intenso
registradores
internos.
de
-
Tamanho fixo: facilita a
pipeline.
-
-
Endereçamento simples.
Acesso
restrito
à
memória
principal
(apenas instruções de
load e store).
66
RISC e CISC
 RISC (reduced instruction set computer):
Vantagens
Desvantagens
-
Velocidade: menos acesso a memória,
pipeline.
-
Necessidade de muita memória
interna (registradores, cache).
-
Simplicidade do hardware: controle
direto, instruções simples.
-
Dificuldade de executar os sistemas
operacionais desenhados para o
conceito CISC.
 Apesar desta discussão ser interessante, o que se percebe é uma
convergência ou fertilização cruzada entre as duas tendências.

Por exemplo, modelos originalmente CISC olharam com atenção a questões
tradicionalmente ligadas à vertente RISC, como o uso mais intenso de
registradores e uma ênfase no projeto da pipeline.
67
Créditos
 Este material está baseado nas notas de aula elaboradas pelo
Prof. Léo Pini e pelo aluno de doutorado Tiago Novaes.
68