Unidade de Controlo
1
CPU – esquema geral (revisão)
Processador
Palavra de controlo
Unidade
de Controlo
Datapath
Estado (flags)
End. Dados
Leitura/Escrita
Memória
R/W
2
Unidade de controlo

Gera as palavras de controlo que definem o que é feito
no datapath

As palavras de controlo são geradas de acordo com as
instruções dadas num programa

Tipicamente podem ser seguidas duas arquitecturas

Unidade de controlo uni-ciclo


Fetch e execução feitos no mesmo ciclo
Unidade de controlo multi-ciclo

Tipicamente um ciclo para o fetch seguido de um número variável de
ciclos para a execução
3
Unidade de controlo uni-ciclo

Durante um único ciclo do processador
efectuam-se os seguintes passos :

Leitura da instrução que está na posição de memória
indicada pelo registo Program Counter (PC) – fetch

Descodificação da instrução (para determinar quais os
sinais de controlo a aplicar ao datapath)

Execução da instrução

No final do ciclo…


…Incrementa-se o valor de PC ou, …
…no caso de haver um salto, carrega-se em PC o endereço
de destino do salto
4
Unidade de controlo uni-ciclo
Unidade de controlo
Load / INC
Controlo de
saltos
PC
Memória de
programa
Memória de dados
Descodificador
de Endereços
Leitura/Escrita
Tipo
de salto
Descodificador
de Instruções
Palavra de Controlo
Datapath
Bits de estado (flags)
5
Unidade de controlo uni-ciclo

Considerações

Unidade de controlo simples

Basicamente, a cada instrução do programa vai
corresponder a uma palavra de controlo a aplicar ao
datapath

Restrições:

Exige separação entre memória de dados e memória de
instruções (para fazer o fetch e a execução no mesmo ciclo)

O formato das instruções tem que ser muito regular para
facilitar a descodificação

O tempo de duração de cada ciclo fica muito dependente dos
tempos de acesso às memórias
6
Unidade de controlo multi-ciclo

Cada instrução do programa requer tipicamente mais do
que um ciclo para a sua execução

A cada instrução do programa vai corresponder uma
sequência de várias micro-instruções

Estas sequências são obtidas através…

…de um circuito sequencial que vai gerando as palavras de
controlo


Arquitectura Hardwired
…de um “micro-programa” que define a sequência de
micro-instruções correspondente à instrução a executar.

Arquitectura Microprogramada
7
Unidade de controlo multi-ciclo

Por cada instrução:

Ciclo de fetch:


A instrução que está na posição de memória indicada pelo PC é lida
para um registo especial, designado por Instruction Register (IR)
O opcode da instrução irá fazer com que a unidade de controlo
siga uma sequência de estados pré-definida

Dada por um circuito sequencial (hardwired) , ou por uma sequência
de palavras de controlo em memória (microprogramada)

Em cada um desses estados aplica-se uma palavra de controlo
ao datapath

Cada estado corresponde a um ciclo do sinal de relógio – podem
assim haver vários ciclos para a execução
8
Unidade de controlo multi-ciclo

Arquitectura Hardwired
Unidade de controlo
Load / INC
PC
Memória de dados
e programa
IR
Descodificador
de Endereços
Leitura/Escrita
Circuito
Sequencial
Palavra de Controlo
Bits de estado (flags)
Datapath
9
Unidade de controlo multi-ciclo

Arquitectura Multiprogramada
Unidade de controlo
Load / INC
Memória
de dados
e programa
PC
Descodificador
de Endereços
IR
Opcode? Micro-endereço
MUX
Controlo de Load / INC
micro-saltos
S
Micro-PC
Leitura/Escrita
Memória de
controlo
(ROM)
Palavra de Controlo
Bits de estado (flags)
Datapath
10
Unidade de controlo multi-ciclo

Considerações


UC mais complexa, mas mais flexível:

Não exige separação entre memórias para programa e dados

No caso da unidade microprogramada, é fácil substituir ou
acrescentar novas instruções ao conjunto de instruções
Permite uma execução mais eficiente de instruções
mais complicadas


Que corresponderiam a várias instruções uni-ciclo, cada uma
exigindo um acesso à memória para efectuar o fetch
Modelo mais próximo dos processadores actuais
11
Unidade de controlo do MAC-1

Arquitectura (simplificada)
Mux
INC
MPC
ROM 256 x 32
N
Z
Lógica de
micro saltos
C
S
N
A
D
F
H
L L
R W L R
D A
D R E C
R R
R
B
R
A
A
D
D
R
12
Unidade de controlo do MAC-1

Estrutura das palavras de controlo
31
S
A
0
C
N
D
F
H
L L
R W L
D A
D R E
R R
C
B
A
ADDR
CND – controlo de saltos:
00 – sem salto
01 – salta se N = 1 (resultado negativo)
10 – salta se Z = 1 (resultado nulo)
11 – salto incondicional
ADDR – endereço de salto no micro-programa (8 bits)
Restantes sinais – aplicam-se ao datapath
13
Datapath do processador MAC-1
RC
RB RA
4
4
4
LE
(0)
PC
31
(1)
AC
S
A
(2)
SP
(3)
IR
(4)
TMP
(5)
-1
(6)
+1
(7)
Amask
(8)
SMask
0
C
N
D
F
H
L L
R W L
D A
D R E
R R
C
B
A
ADDR
Estrutura da palavra de controlo
LAR
BUS B
MAR
BUS A
(...)
MDR
Endereços
Dados
0 Mux 1
SA
LDR
N
Z
F
H 2
WR
RD
ALU
2
Nota:
Deslocamento
Amask tem o valor ‘0FFF’
BUS C
SMask tem o valor ’00FF’
14
Unidade de controlo do MAC-1

Exemplo:

Vamos supor que se pretende executar a instrução
LODD x

O efeito da instrução é AC ← M[x] e o formato é:
0
0
0
Opcode
(4 bits)

0
x
x
x
x
x
x
x
x
x
x
x
x
Posição de memória a ler
(12 bits)
Após o fetch, a instrução encontra-se carregada no
registo de instruções (IR). A execução começa a partir
desse ponto
15
Unidade de controlo do MAC-1

Exemplo (cont.)

Em primeiro lugar, há que carregar o endereço x no
registo MAR, mas tal não se consegue fazer num
único ciclo
TMP ← IR & Amask
# Amask tem o valor ‘0FFF’
MAR ← TMP

Depois do endereço a aceder estar no registo MAR,
lê-se a memória e o resultado virá em MDR. Para
finalizar transfere-se de MDR para AC
MDR ← M[MAR]
AC ← MDR
16
Unidade de controlo do MAC-1

Exemplo (fim)


Em suma, a seguinte sequência de micro-instruções:
TMP ← IR & Amask
# obter o endereço x
MAR ← TMP
# colocar no registo de endereços
MDR ← M[MAR]
# ler o conteúdo do endereço
AC ← MDR
# transferir para o acumulador
4 palavras de controlo, o que implica 4 ciclos para
executar a instrução
17
Download

ppt