Você está na página 1de 69

EEI21 - TDM_II – Técnicas Digitais e de

Microprocessadores
Arquitetura básica de Processador
Marchando para o aprendizado

1
Literaturas sugeridas

2
Observe:
Nível
Problema Algoritmo Conceitual

Estruturas Linguagem Hierarquia


de dados Assembly de
linguagens

Representação
numérica
Como está
organizado o
Hardware
hardware de um
computador?

3
ARQUITETURA DE COMPUTADORES
Introdução - Aprofundamento
Objetivos:

 Conhecer os principais aspectos da arquitetura de


processadores.

 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.

4
 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. à operação que deve realizar – soma, subtração, movimentação de dados
etc.
II. 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 0101


Código da operação Identificação Identificação
do primeiro operando do segundo 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 Instrução: ADD r1, r5 r1 ← r1 + r5
circuito responsáveis por realizar uma
soma, tendo como entrada os operandos
identificados na instrução.
5
 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?

6
 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?

Memória
Processador Placa mãe

Gabinete Disco rígido


Monitor

Sistema Jogos
operacional

7
Arquitetura de computadores

8
Arquitetura de computadores

9
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
10
Registradores
 Flip-flops: circuitos digitais que atuam como uma memória de 1 bit.

FLIP-FLOP D FLIP-FLOP JK
Mantém o estado anterior a Além de manter o estado anterior, ele pode
cada pulso do relógio. setar (1), resetar (0) ou complementar a
saída a cada pulso do clock.

Tabela Verdade
J K Q
0 0 Q
Tabela Verdade
0 1 0
D Q 1 0 1
0 0 1 1 Q’
1 1
Operação
Sensíveis ao nível
Sensíveis à borda de subida
Sensíveis à borda de descida 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)

W R

Clock 12
REGISTRADOR
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 CLK J K J

... Ai ... Bi
...

Clock Controle de acesso


R ao barramento via
tri-state 13
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.

Comando Operação
C REG ← (REG)

W R C

Clock 14
REGISTRADOR
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.

Comando Operação
D REG ← SHIFT(REG)

W R C D

Clock 15
REGISTRADOR
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.

Comando Operação
I/D REG ← (REG) +/- 1

W R C D I/D

Clock 16
REGISTRADOR
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.

Comando Operação
S/R REG ← 1/0

W R C D I/D S/R

Clock 17
REGISTRADOR
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.

W R C D I/D S/R
Barramento de dados

Circuito de múltiplos comandos

Clock REGISTRADOR

18
Registradores
 Exemplo:

Qi

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
19
Z - Zerar o registrador
Arquitetura de computadores

20
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 Entrada de dados


de estado
Comandos da
Flags Σ
unidade de controle
Informa o estado do
processador após a Saída de dados
última operação (Resultados)
realizada pela ULA.

21
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: CO = opcode -> código de operação
 Máquina de 1 endereço (operando) = op.: CO Op. 1
 Máquina de 2 endereços: CO Op. 1 Op. 2
 Máquina de 3 endereços: CO Op. 1 Op. 2 Op. 3

Registrador Entrada de dados


de estado
Comandos da
Flags Σ
unidade de controle
Informa o estado do
processador após a Saída de dados
última operação (Resultados)
realizada pela UAL.

22
Unidade Lógico-Aritmética
 Máquina de zero endereços
 Formato da instrução: opcode
 Exemplo: ADD (adição)
 Funcionamento: stack machines – todas as operações envolvem as
posições no topo da pilha.

Exemplo? Calculadora HP

dado2

dado1
Saída x
FLAGS Σ
x
x
Pilha
23
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 24
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)

R2 R1
Op. 2 Op. 1

FLAGS Σ
Saída

25
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)
R2 R3
Exemplo: ARM Op. 2 Op. 3
Qual a diferença
prática no uso de
máquina de
diferentes
endereços?
FLAGS Σ
Saída

R1 26
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.

27
Arquitetura de computadores

28
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.

29
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 30
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.

31
Máquina Simples
R∑ IT
w∑ wT TMP R1n WR1
ACCn RT
RR1
wA n R2n WR2
CT
RA RR2
ZT

Sinais de controle
W ‑ transferir do barramento para o registrador CT ‑ complementar o conteúdo do registrador TMP
Exemplo: WR1 indica a operação R1  (bus) Isto é, CT dispara a operação TMP  (TMP)

R ‑ transferir do registrador para o barramento ZT ‑ zerar (reset) o registrador TMP


Exemplo: RA indica a operação bus  (Acc) 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 TMPn ‑ registrador de complemento/incremento com


para a entrada do n
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)? 32
Máquina Simples
IT
wT TMP
Agora RT
n
temos nossa CT
ZT
primeira
máquina de
R1n WR1
calcular! RR1

R2n WR2
RR2

Vamos então
executar passo a
passo a operação: R∑
w∑
R1 ← (R1) - (R2) ACCn
wA
RA

33
Máquina Simples
R1 ← (R2) - (R1)

Passos Pulso Sinais


IT
do de Micro operação
relógio controle wT
RT 101
110
010
1. Transferir o bus ← (R2) CT
conteúdo de R2 para 1 RR2 , WA Acc ← (bus) ZT
Acc

2. Transferir o
bus ← (R1) 010 R1n WR1
conteúdo de R1 para 2 RR1 , WT TMP ← (bus) RR1
TMP

111
001 R2n
3. Complementar TMP 3 CT TMP ← (TMP) WR2
RR2
4. Imcrementar TMP 4 IT TMP ← (TMP) + 1

5. Somar: ULA recebe


valores e faz a soma 5 R∑ , RT ULA ← (Acc) + (TMP)
R∑
w∑
6. Armazenar a soma
6 W∑ Acc ← (ULA)
no Acc wA
RA
7. Armazenar valor
final em R1 7 RA , WR1 (R1) ← (ULA)

34
Arquitetura de computadores

35
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 Quantos dados
3 distintos uma
palavra consegue
.. representar?
Memória de n
n
palavras 36
2 m
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.
Obs.: REM = registrador de endereço e RDM = registrador de dados

LEITURA DE UM DADO DA MEMÓRIA Como?


CPU
3 0 110 1101... Registrador de
Registrador de Dados da
Endereço da 1 Memória CICLO DE LEITURA
Memória (REM)
2
(RDM) 1. REM ← end

568765 2. RDM ← ((REM))


3
ou
.. RDM ← (m)
n 3. CPU ← (RDM)

37
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. Conhecendo os ciclos
de leitura e escrita,
porque o acesso a um
registrador é menos
ESCRITA DE UM DADO DA custoso?
MEMÓRIA
CPU
3 0 110 1111... Registrador de
Registrador de
Endereço da 1
Dados da CICLO DE ESCRITA
Memória
Memória (REM)
2
(RDM) 1. REM ← end
2. RDM ←(CPU)
3
3. (REM) ← (RDM)
..
568765 ou
n m ← (RDM)
38
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.
39
Arquitetura de computadores

40
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. Buscar a próxima instrução na memória principal.
2. Decodificar a instrução.
3. 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 Operação Básica
(Contador de Programa)
Indica o endereço da
próxima instrução a ser PC 0 ADD R1
executada
0 1
REM
Registrador de Instrução 2
(RI)
Armazena a instrução RI 3
para a decodificação
..
Controlador n
Lê a instrução que está Controlador
em RI, decodifica e ativa RDM
sequencialmente os ...
sinais de controle 41
sinais de controle
apropriados
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.
A instrução possui um dado: o valor 4 (# indica que o
ADD R1,R2, #4 R1 ← (R2) + 4 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.

42
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

Agora que sabemos


 Instrução de 2 palavras: SUB R1, R2, #3 como são as
instruções, vamos
C. O.
R1 ← (R2) - 3 entender melhor
dado como a unidade de
controle as executa.
 Instrução de 3 palavras: SUB R1, 4, #3

C. O.
R1 ← (4) - 3 end
dado 43
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 Vamos ver essas
execução das fases mais
seguintes detalhadamente...
instruções?

Exemplos:
SUB R1 , R2, 2 R1 ← (R2) – (2) ADD R1 , R2 , #3 R1 ← (R2) + 3
C. O. end C. O. 1. Ciclo de Busca
2. Ciclo de Leitura
1. Ciclo de Busca dado
3. Ciclo de execução 44
2. Ciclo de execução
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 STA
0 1 3
REM
2
RI 3 150615
..
n
Controlador Acc
... RDM
sinais de controle 45
Unidade de Controle Buscar o C.O.
e levá-lo para
FASE DE BUSCA
Acc ← (end) o controlador
STA 3
Pulso Micro operação
C. O.
end 1 REM ← (PC)
CICLO
2 RDM ← ((REM) ou (m) DE
PC ← (PC) + 1 BUSCA
3 RI ← (RDM)

PC 0 STA
01 1 3
REM
2
RI 3 150615
..
n
Controlador Acc
... RDM
46
sinais de controle STA
Unidade de Controle
FASE DE EXECUÇÃO
STA 3 Acc ← (end) Pulso Micro operação
C. O. 1 REM ← (PC)
end CICLO
2 RDM ← ((REM) ou (m) DE
PC ← (PC) + 1 LEITURA
3 RI ← (RDM)

PC 0 STA
12 1 3
REM

0 2
RI 3 150615
STA ..
n
Controlador Acc
... RDM
47
sinais de controle STA
3
Unidade de Controle Realiza as
microoperações
para executar a
FASE DE EXECUÇÃO instrução
STA 3 Acc ← (end)
C. O.
Pulso Micro operação

end 1 REM ← (RI.end)


2 RDM ← ((REM)) ou (m) CICLO DE
3 Acc ← (RDM) EXECUÇÃO

Lembrar que é LDA!!!

PC 0 STA
2 1 3
REM

1 2
RI 3 150615
3
..
n
Controlador Acc
... RDM
48
sinais de controle 3
150615
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.

 Uma simulação:

http://www.peterhigginson.co.uk/lmc/

49
Computador simples REM
Memória
E
habilita

RAM
PC R/W
64x8 Leitura/
IPC
Incrementa PC escrita
RDM transf. reg./barr.
TRB
UC
TBR
RI transf. barr./reg.

TB
Transf. do barr. IT
wT TMP B
RT n a
CT r
ZT r

MEMÓRIA Controlador a
m
e
... n
t
o

RE
we ACCn
wA
RA
50
Computador simples PC Memória
E
habilita
REM
IPC
Incrementa PC
RAM
6 bits R/W
REM 64x8 Leitura/
Transf. do PC
TPC endereço 6 bits escrita
8 bits
TRI RDM transf. reg./barr.
Transf. do RI TRB
6 bits TBR
RI 8 bits transf. barr./reg.

8 bits
TB
Transf. do barr. IT
wT TMP B
2 bits RT n a
8 bits CT r
ZT r
Controlador a
m
e
...
n
IT wT RT CT ZT ... TB TPC TRI t
IPC o

8 bits
Para finalizar,
Acabamos de montar
vamoso circuito digital RE
we
de nosso próprio computador.
dimensionar os ACCn
wA
barramentos! RA 51
Computador simples PC Memória
E
habilita
REM
IPC
Incrementa PC
RAM
6 bits R/W
REM 64x8 Leitura/
Transf. do PC
TPC endereço 6 bits escrita
8 bits
TRI RDM transf. reg./barr.
Transf. do RI TRB
6 bits TBR
RI 8 bits transf. barr./reg.

8 bits
TB
Transf. do barr. IT
wT TMP B
2 bits RT n a
8 bits CT r
ZT r
Controlador a
m
e
...
n
IT wT RT CT ZT ... TB TPC TRI t
IPC o

 Quantas instruções diferentes este processador 8 bits

consegue executar? RE
CO – 2 bits: portanto, no máximo 4 we ACCn
instruções wA
RA 52
Computador simples PC Memória
E
habilita
REM
IPC
Incrementa PC
RAM
6 bits R/W
REM 64x8 Leitura/
Transf. do PC
TPC endereço 6 bits escrita
8 bits
TRI RDM transf. reg./barr.
Transf. do RI TRB
6 bits TBR
RI 8 bits transf. barr./reg.

8 bits
TB
Transf. do barr. IT
wT TMP B
2 bits RT n a
8 bits CT r
ZT r
Controlador a
m
e
...
n
IT wT RT CT ZT ... TB TPC TRI t
IPC
 Por exemplo: o

Código Mnemônico Instrução


8 bits
00 STOP Parar
RE
01 ADD end Somar ao Acc o conteúdo do endereço we ACCn
10 SUB end Subtrair do Acc o conteúdo do endereço wA
RA 53
11 STA end Transf. o conteúdo do Acc para endereço
Computador simples PC Memória
E
habilita
REM
IPC
Incrementa PC
RAM
6 bits R/W
REM 64x8 Leitura/
Transf. do PC
TPC endereço 6 bits escrita
8 bits
TRI RDM transf. reg./barr.
Transf. do RI TRB
6 bits TBR
RI 8 bits transf. barr./reg.

8 bits
TB
Transf. do barr. IT
wT TMP B
2 bits RT n a
8 bits CT r
ZT r
Controlador a
m
e
...
n
IT wT RT CT ZT ... TB TPC TRI t
IPC o
Considerando que as instruções ocupam uma
única palavra de memória, vamos acompanhar a 8 bits

execução da instrução: RE
we ACCn
ADD end Acc ← Acc + (end)
wA
RA 54
Computador simples PC 2 ADD 5
E
habilita
REM
IPC 2 3
Incrementa PC

4
6 bits R/W
Transf. do PC REM 5 20 Leitura/
TPC endereço 6 bits escrita
8 bits
TRI RDM transf. reg./barr.
Transf. do RI TRB
6 bits TBR
RI 8 bits transf. barr./reg.

8 bits
TB
Transf. do barr. IT
wT TMP B
2 bits RT n a
8 bits CT r
ZT r
Controlador a
m
e
...
n
IT wT RT CT ZT ... TB TPC TRI t
IPC o
Considere as condições iniciais dadas na arquitetura.
8 bits

RE ACC
we
15
wA
RA 55
E
PC habilita
2 ADD 5
IPC
Incrementa PC
32 3
6 bits 4
R/W
REM
Transf. do PC 5 20 Leitura/
TPC endereço 6 bits escrita
TRI
2 8 bits
RDM transf. reg./barr.
Transf. do RI TRB
6 bits ADD
20 5 TBR
transf. barr./reg.
RI 8 bits

8 bits
TB ADD 5 TMP
Transf. do barr. IT
wT
2 bits RT 20 B
a
8 bits CT r
ZT r
Controlador a
m
e
... n
IT wT RT CT ZT ... TB TPC TRI t
IPC B 35 o

Pulso Microoperação SCs U


8 bits
1 REM ← (PC) TPC S ACC
2 RDM ← ((REM)) ; PC ← (PC) + 1 E, R, IPC C RE
we
3 RI ← (RDM) TRB , TB
A 15 wA
RA
4 REM ← (RI.end) TRI
5 RDM ← ((REM)) E, R
6 TMP ← (RDM) TRB, WT
56
7 ∑ ← (ACC) + (TMP) RT, RE 8 ACC ← (∑ ) WE
E
PC habilita

IPC
Incrementa PC

6 bits
R/W
REM Leitura/
Transf. do PC
TPC endereço 6 bits escrita
8 bits
TRI RDM transf. reg./barr.
Transf. do RI TRB
6 bits TBR
RI 8 bits transf. barr./reg.

8 bits
TB TMP
Transf. do barr. IT
wT B
2 bits RT a
8 bits CT r
ZT r
Controlador a
m
e
...
n
IT wT RT CT ZT ... TB TPC TRI t
IPC o

Agora já sabemos como projetar um 8 bits


processador simples e como os dados se ACC
movimentam pelo circuito digital durante a RE
we
execução de uma instrução de máquina.
wA
Falta apenas um último detalhe: como os RA
sinais de controle são adequadamente
sequenciados? Quem é responsável por
esta tarefa?
57
Controlador
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 flip-
flops D.

Por exemplo, seja a instrução ADD end 1 TRI


2 E, R
O ciclo de execução se dá através dos sinais 3 TRB, WT
de controle: 4 RT, RE
5 WE
Uma possível implementação com FFs seria:

TRI E,R TRB , WT RT , RE WE

S D1 D2 D3 Q3 D4 Q4 D5 Q5
Q1 Q2

FF1 FF2
FF3 FF4 FF5
CLK CLK CLK CLK CLK

Relógio
58
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?

59
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).
60
Computadores Microprogramados
Controlador
 Historicamente, a escolha por um tipo de abordagem de projeto
do controlador dá origem a dois grupos de processadores:

Arquiteturas com Arquiteturas com


controle via controle via
hardware microprogramação

RISC CISC
Processadores ARM Processadores Intel

Vamos então conhecer um pouco melhor estes dois conceitos de


projeto...
61
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.
62
RISC e CISC
CISC:

Aplicações foram Reduzir o gap entre


Memórias eram ficando mais a linguagem de
lentas e caras complexas programação e as
instruções de
máquina

Década de
Solução CISC
70

Aumento do custo
Códigos deveriam Surgimento da
para produção de
ser muito simples microprogramação:
software Sofisticar o uso da
linguagem Assembly
criando as instruções
complexas 63
RISC e CISC
CISC:

Foco no Hardware Instruções Complexas Microprogramação

- Conjunto grande de - Técnica que permite


- A complexidade da
instruções que podem ser implementar as instruções
programação é transferida para
executadas pelo hardware. complexas a partir de um
o hardware.
pequeno repertório de
- Formadas pela combinação instruções simples.
de instruções simples.

- Expectativa: programas mais


enxutos – menos memória
para armazenar o código.

64
RISC e CISC
CISC:

Vantagens Desvantagens

• Otimiza o uso da memória RAM. • Instruções muitas vezes são


demoradas e levam vários
• Aproxima a programação do ciclos de relógio para serem
hardware, simplificando o software. executadas.

• Possui grande quantidade de • Dificuldade em explorar


instruções capazes de executar várias eficientemente a ideia de
operações de “alto nível”. pipeline e/ou paralelismo entre
instruções.

• Dificuldade em testar, detectar


e corrigir erros nos
microprogramas.

65
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.
66
RISC e CISC
RISC (reduced instruction set computer):

Hardware Simples Instruções Simples Memória

- Não há necessidade de um - Executadas em um número - Uso intenso de


núcleo de processamento reduzido de ciclos de registradores internos.
para executar relógio.
microinstruções. - Acesso restrito à
- Tamanho fixo: facilita a memória principal
pipeline. (apenas instruções de
load e store).
- Endereçamento simples.

67
RISC e CISC
RISC (reduced instruction set computer):

Vantagens Desvantagens

- Velocidade: menos acesso a memória, - Necessidade de muita memória


pipeline. interna (registradores, cache).

- Simplicidade do hardware: controle - Dificuldade de executar os sistemas


direto, instruções simples. 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.
68
Atividades
Trabalhar em lista de exercícios.
Trabalhar em simuladores:
 Little Man Computer - http://www.peterhigginson.co.uk/lmc/
 NEANDER - http://www.inf.ufrgs.br/arq/wiki/doku.php?id=neander

 SIMUPROC - https://simuproc.uptodown.com/windows

69