Arquitetura de Computadores Operação da Unidade de Controle

Propaganda
28/9/2010
Operação da Unidade de
Controle
Arquitetura de Computadores
Unidade de Controle – Funcionamento e
Implementação
Unidade de controle: parte do processador
responsável por comandar a execução de
instruções
Realiza as operações de execução através de
sinais de controle:
◦ Sinais externos ao processador para comandar a
transferência de dados entre o processador e a
memória ou módulos de E/S
Prof. Marcos Quinet
Universidade Federal Fluminense – P.U.R.O.
◦ Sinais internos ao processador para mover
dados entre registradores, comandar a ULA na
execução de uma determinada função e controle
de outras operações internas
2
Entradas para a Unidade de
Controle
Elementos da execução de um
programa
A execução de uma instrução envolve uma sequência
de subpassos, denominados ciclos (geralmente,
busca, indireto, execução e interrupção)
Cada ciclo é composto de uma sequência de uma ou
mais
operações
fundamentais,
denominadas
microoperações
Microoperações são operações bastante simples, por
exemplo, transferência de dados entre registradores,
transferência de dados entre um registrador e um
barramento ou uma operação simples da ULA
3
4
1
28/9/2010
Microoperações
Tarefas da Unidade de Controle
Tarefas realizadas pela Unidade de Controle:
◦ Cuida para que o processador execute
microoperações
na sequência apropriada,
determinada pelo programa em execução
◦ Geração dos sinais de controle que causam a
execução de cada microoperação
Sinais de controle causa a abertura e
fechamento de portas lógicas, resultando nas
transferência de dados e operações da ULA
Na discussão sobre pipeline, havíamos
discutido em aumentar os benefícios desta
técnica decompondo as instruções em ciclos
menores
Cada um destes subciclos envolve uma série
de passos, chamados de microoperações
Serão examinadas a seguir as microoperações
que ocorrem em cada um dos ciclos de
execução de um programa
5
6
Ciclo de Busca
Ciclo de busca
Ciclo de busca: ocorre no início de cada ciclo
de instrução; quatro registradores estão
envolvidos:
◦ Registrador de endereço de memória (MAR);
◦ Registrador de armazenamento temporário de
dados (MBR);
◦ Contador de programa (PC);
◦ Registrador de instrução (IR).
7
No início do ciclo de busca, o endereço da
próxima instrução está no PC. Ocorre a seguinte
sequência de eventos:
◦ O endereço no PC é movido para o MAR (único
registrador ligado as linhas de endereço do
barramento de sistema);
◦ A unidade de controle gera um comando de leitura
(READ)
◦ O resultado aparece no barramento de dados;
◦ O resultado é copiado do barramento de dados
para o MBR;
8
2
28/9/2010
Ciclo de busca (cont.)
Exemplo
◦ O contador de instruções é incrementado, ficando
pronto para a próxima instrução;
◦ OBS: As ações de ler da memória e incrementar o
PC podem ser feitas simultaneamente;
◦ O conteúdo do MBR é movido para o registrador
de instruções, deixando a MBR livre para um
possível ciclo de endereçamento indireto à
memória.
MAR
MAR
MBR
MBR
PC
0000000001100100
IR
PC
0000000001100100
0000000001100100
IR
AC
AC
Início
Primeiro passo
MAR
0000000001100100
MAR
0000000001100100
MBR
0001000000100000
MBR
0001000000100000
PC
0000000001100110
PC
0000000001100110
IR
0001000000100000
IR
AC
AC
Segundo passo
Terceiro passo
9
Ciclo de busca
10
Tempo de microoperações
Um ciclo de busca consiste em três passos e
quatro
microoperações,
que
envolvem
movimentação de dados de/para registradores
Se as movimentações de dados não interferem
umas com as outras, podem ser executadas em
um mesmo passo (mesmo tn)
◦ t1: MAR ← (PC)
◦ t2: MBR ← (memória)
◦
PC ← (PC) +1
◦ t3: IR ← (MBR)
11
t – unidade de tempo/ciclo de clock
Supomos que existe um relógio que, para
propósitos de temporização, emite pulsos
regularmente espaçados
Um pulso define uma unidade de tempo
Cada microoperação é realizada dentro do
intervalo de uma unidade de tempo
No exemplo anterior, a terceira microoperação
foi agrupada com a segunda, ou poderia ter sido
agrupada com a quarta
12
3
28/9/2010
Ciclo indireto
Agrupamento de microoperações
Podem ocorrer, desde que respeitadas duas regras
básicas:
Após buscar uma instrução, são buscados os
operandos fonte
A sequência apropriada de eventos deve ser seguida
No caso da instrução especificar um endereço
indireto, um ciclo indireto deve preceder o ciclo
de execução, como no exemplo a seguir:
Devem ser evitados conflitos; não se deve tentar ler e
escrever em um mesmo registrador em uma mesma
unidade de tempo
no exemplo, MAR ← (PC) deve preceder MBR ← (memória)
◦ MAR ← (IRendereço) - campo de endereço do IR
◦ MBR ← (memória)
◦ IRendereço ← (MBRendereço)
No exemplo, MBR ← (memória) & IR ← (MBR) não podem
ocorrer na mesma unidade de tempo
E ainda, a operação PC ← (PC)+1 envolve uma adição,
logo, envolve a ULA, o que pode envolver microoperações
adicionais
O registrador de instruções termina da mesma
forma que estaria se tivesse sido utilizado o
endereçamento direto
13
14
Ciclo de interrupção
Ciclo de interrupção
◦ Conteúdo do PC é transferido para o MBR;
Após completado o ciclo de interrupção, é feito
um teste para determinar a ocorrência de
alguma interrupção habilitada
◦ MAR é carregado com o endereço onde o conteúdo
do PC deve ser salvo;
◦ No mesmo ciclo, o PC é carregado com o endereço
de início da rotina de tratamento de interrupção;
Um ciclo de interrupção pode ser exemplificado
com as seguintes microoperações:
◦ É armazenado na memória o MBR, que contém o
antigo valor do PC.
◦ t1: MBR ←(PC)
◦ t2: MAR ← endereço de salvamento
◦
PC ← endereço de rotina
◦ t3: memória ← (MBR)
15
Outras operações que ocorrem durante uma
interrupção, como as envolvidas na troca de
contexto, são feitas pelo manipulador de
interrupções, não através de microoperações
16
4
28/9/2010
Ciclo de execução
Ciclo de execução
Diferente dos ciclos anteriores, que são simples
e previsíveis, o ciclo de execução pode ser
diferente para cada instrução
Em uma máquina com N códigos de operação
distintos, podem existir N sequências diferentes
de microoperações
◦ t1: MAR ← (IRendereço)
◦ t2: MBR ← (memória)
◦ t3: R1 ← R1 + (MBR)
Ex.1: ADD R1, X
◦ Soma o conteúdo da posição de memória X ao
registrador R1, armazenando neste o resultado
O campo de endereço contido em IR é
carregado no registrador MAR;
A posição de memória referenciada é lida;
Os conteúdos de R1 e MBR são somados pela
ULA.
Podem
ser
necessárias
microoperações
adicionais para extrair de IR a especificação do
registrador referenciado e armazenar E/S da
ULA em registradores intermediários
17
18
Ciclo de execução
Controle do processador
Ex. 2: ISZ X
◦ Incrementa em 1 o conteúdo da posição de
memória X e salta a próxima instrução se o
resultado for zero
◦ t1: MAR ← (IRendereço)
◦ t2: MBR ← (memória)
◦ t3: MBR ← (MBR) + 1
◦ t4: memory ← (MBR)
◦
if (MBR) == 0 then PC ← (PC) + 1
Requisitos funcionais para o projeto
implementação de uma unidade de controle:
e
1. Definir os elementos básicos do processador;
são eles:
ULA;
Registradores;
Caminhos de dados internos (movimentação de
dados entre registradores e a ULA);
Caminhos de dados externos (movimentação
de dados entre registradores à memória e E/S);
Unidade de controle.
19
20
5
28/9/2010
Requisitos funcionais
2.
Requisitos funcionais
Descrever as microoperações que o processador
deve executar; estão divididas nas seguintes
categorias:
Tranferência de dados entre registradores;
Transferência de dados de um registrador para
uma interface externa;
Transferência de dados de uma unidade externa
para um registrador;
Execução de operação lógica ou aritmética,
usando registradores como E/S.
Determinar as funções que a unidade de controle
deve realizar para realizar a execução das
microoperações. A UC realiza duas tarefas
básicas:
3.
Sequenciamento: a UC dirige o processador na
execução de uma série de microoperações, na
sequência apropriada
Execução: a UC faz com
microinstrução seja executada
que
cada
A Unidade de controle opera através dos sinais
de controle
21
22
Sinais de controle
Sinais de controle
Entradas da Unidade de Controle:
◦ Relógio: é executada uma microoperação (ou
conjunto paralelizado) por ciclo de clock
Entradas da Unidade de Controle (cont.):
◦ Barramento de controle: o controle de
barramento do sistema envia sinais como os de
interrupção e reconhecimento
◦ Registrador de instrução: armazena o código da
instrução corrente, usado para determinar as
microoperações a serem executadas durante o
ciclo de execução
◦ Códigos de condição: usados para determinar o
estado do processador e resultados de operações
realizadas anteriormente
23
24
6
28/9/2010
Implementação da Unidade de
Controle
Sinais de controle
Saídas da unidade de controle:
◦ Internos ao processador: são sinais responsáveis
por duas operações: movimentação de dados
entre registradores e ativação de funções
específicas da ULA
◦ Para o barramento de controle: também são dois
tipos de sinais de controle, para a memória e para
módulos de E/S
25
Muitas técnicas disponíveis, mas pertencentes a
uma das categorias
◦ Implementação por hardware;
◦ Implementação microprogramada;
A implementação em hardware tem seu uso
limitado devido aos seguintes fatores:
◦ Lógica de sequenciamento e microoperação muito
complexa;
◦ Dificuldade em projetar e testar;
◦ Projeto inflexível;
◦ Dificuldade em adicionar novas instruções.
26
7
Download