Registradores de uma CPU
Registradores de uma CPU - Acumulador
• Um registrador é um local interno à CPU, onde os dados que
foram buscados na memória são armazenados.
• O registrador é um circuito lógico que tem a finalidade de reter
a curto prazo um conjunto de bits.
• Os registradores são chamados de acumuladores [A].
Prof. Eduardo Appel Eng.DSc.
[email protected]
7
• Denominação dos registradores
6
5
4
3
2
1
0
No. do bit
Acumulador
• Função dos registradores
• Características dos registradores
CPU
• Utilização dos registradores
Acumulador
Arquitetura e Organização de
Computadores
1
Contador de Dados (CD)
• A vantagem de um registrador frente a uma posição
de memória: versatilidade de movimentação de bits.
• Em um registrador de aspecto geral, tem-se a
capacidade de:
– deslocar tanto para a direita como para esquerda;
– entrada e saída paralela;
– “setar” e “resetar” bit
3
• Para podermos acessar uma palavra de dados da
memória (tanto para ler seu conteúdo, como para
armazenar dados dentro dela), precisamos identificar
seu endereço.
• Este endereço fica armazenado em um registrdor
denominado Contador de Dados [CD].
• O tamanho do CD dependerá do tamanho máximo de
memória endereçável pelo microprocessador.
• CD 8bits — 28=256 palavras de memória (endereços)
• CD 16bits — 216=65536 palavras de memória
(endereços)
Arquitetura e Organização de
Computadores
Registradores de uma CPU
Registradores de uma CPU
Registro de Instrução (I)
Contador de Programa (PC)
• Para manusear os códigos de instrução, a CPU
necessitará de um registrador para armazenar os
códigos de instrução.
• O código de instrução é armazenado no registro
denominado Registro de Instrução (I).
• A CPU sempre irá interpretar o conteúdo do registro
de instrução como sendo um código de instrução.
• Após o armazenamento dos códigos de instrução no
Registro de Instrução, inicia-se o processo de
decodificação.
Arquitetura e Organização de
Computadores
2
Registradores de uma CPU
Registradores de uma CPU - Acumulador
Arquitetura e Organização de
Computadores
Arquitetura e Organização de
Computadores
5
4
• Para poder manusear os códigos de instrução, a CPU
necessitará armazenar os endereços da palavra de
memória da qual o código de instrução será lido.
• O endereço da palavra de memória da qual o código
de instrução será lido é fornecido por um registro
denominado Contador de Programa (PC).
• O PC é análogo ao CD, porém o PC é assumido para
endereçar sempre palavras de memória de programa.
• Funcionamento: PC=PC + 1
Arquitetura e Organização de
Computadores
6
1
Registradores de uma CPU- Utilização
Registradores de uma CPU- Utilização
• Para entendermos a utilização dos registradores da CPU
voltaremos ao programa da adição binária.
• Cada passo do programa será tratado como uma
instrução.
• Inicialmente o PC contém 0400H, o endereço da primeira
palavra de instrução do programa na memória. O
conteúdo dos outros registradores são desconhecidos.
• Os dados contidos nas palavras de memória de endereço
0A30H e 0A31H são inicialmente 7AH e 2FH.
Endereço do byte
de memória
Memória de
Programa
Memória de
Dados
Arquitetura e Organização de
Computadores
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
0A31H
2F
A
Instrução 3
I
CD
PC
0400
Instrução 4
Instrução 5
Arquitetura e Organização de
Computadores
Endereço do byte
de memória
Memória de
Programa
Memória de
Dados
8
Byte de Memória
0400H
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
0A31H
2F
Instrução 1
A
Instrução 2
CD
Instrução 3
I
9C
0401
PC
Instrução 4
Instrução 5
0A32H
9
Registradores de uma CPU- Utilização
Arquitetura e Organização de
Computadores
10
Registradores de uma CPU- Utilização
Endereço do byte
de memória
• O código 9C, aparecendo no registro de Instrução, faz a
lógica da CPU implementar 2 passos.
• Primeiro, o conteúdo do byte de memória endereçado
pelo PC é lido da memória, mas é armazenado no byte
mais alto do contador de dados (CD).
• A CPU então incrementa o conteúdo do PC.
• Em seguida, o conteúdo do byte de memória endereçado
pelo novo PC é lido da memória e armazenado no byte
mais baixo do CD.
• A CPU incrementa novamente o conteúdo do PC.
Arquitetura e Organização de
Computadores
Instrução 2
Registradores de uma CPU- Utilização
• A CPU carrega o conteúdo da palavra de memória
endereçada pelo PC no registro de Instrução (I),
assegurando assim que o conteúdo desta palavra de
memória seja interpretado como um código de instrução.
• A CPU então incrementa o conteúdo do PC.
Arquitetura e Organização de
Computadores
Instrução 1
0A32H
7
Registradores de uma CPU- Utilização
Byte de Memória
0400H
11
Memória de
Programa
Memória de
Dados
Byte de Memória
0400H
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
0A31H
2F
Instrução 1
A
Instrução 2
CD
0A00
Instrução 3
I
9C
0402
PC
Instrução 4
Instrução 5
0A32H
Arquitetura e Organização de
Computadores
12
2
Registradores de uma CPU- Utilização
Registradores de uma CPU- Utilização
Endereço do byte
de memória
Memória de
Programa
Memória de
Dados
Byte de Memória
0400H
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
0A31H
2F
Instrução 1
A
Instrução 2
CD
0A30
Instrução 3
I
9C
0403
PC
Instrução 4
Instrução 5
0A32H
Arquitetura e Organização de
Computadores
• A execução da Instrução 1 foi completada. O conteúdo
dos bytes de memória 0401H e 0402H foram carregados
no registrador CD.
• O código de instrução necessita de dados que o seguisse
imediatamente. Este tipo de dado, que aparece
imediatamente após um código de instrução de um
programa na memória, é chamado dado imediato, ou
dado literal.
• Na Instrução 1, os bytes de memória 0401H e 0402H
contêm o dado imediato 0A30H.
• O código de instrução 9CH, lido da posição 0400H,
identifica a maneira pela qual o dado imediato 0A30H
deve ser interpretado pela CPU.
13
Registradores de uma CPU- Utilização
Arquitetura e Organização de
Computadores
Registradores de uma CPU- Utilização
• Após a execução da Instrução 1, a CPU busca (ou lê) o
conteúdo do byte de memória endereçado por PC
(0403H), e então incrementa o PC.
• O conteúdo do byte lido é armazenado no registrador de
Instrução (I), para ser interpretado como um código de
instrução.
Endereço do byte
de memória
Memória de
Programa
Memória de
Dados
Arquitetura e Organização de
Computadores
Byte de Memória
0400H
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
0A31H
2F
Instrução 1
A
Instrução 2
CD
0A30
Instrução 3
I
40
PC
0404
Instrução 4
Instrução 5
0A32H
15
Registradores de uma CPU- Utilização
Arquitetura e Organização de
Computadores
16
Registradores de uma CPU- Utilização
• Este código de instrução (40H) faz a CPU pegar o dado
contido no byte de memória endereçado pelo Contador
de Dados (CD) e carregá-lo no Acumulador (A).
Endereço do byte
de memória
Memória de
Programa
Memória de
Dados
Arquitetura e Organização de
Computadores
14
17
Byte de Memória
0400H
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
0A31H
2F
Instrução 1
Instrução 2
A
7A
CD
0A30
Instrução 3
Instrução 4
I
40
PC
0404
Instrução 5
0A32H
Arquitetura e Organização de
Computadores
18
3
Registradores de uma CPU- Utilização
Registradores de uma CPU- Utilização
• A instrução 2 completou sua execução e o PC já endereça
a próxima palavra de memória de programa (0404H), que
contém o código de instrução para a Instrução 3.
• A Instrução 3 é uma repetição da Instrução 1, sendo que o
dado imediato 0A30H é substituído por 0A31H. Como na
Instrução 1 os registradores sofrerão mudanças em três
etapas.
• A primeira etapa lê o código de instrução para o registro I.
• A segunda etapa lê 0AH do byte 0405H e armazena no
byte alto do registro CD.
• A terceira etapa carrega o byte baixo de CD.
Arquitetura e Organização de
Computadores
Memória de
Programa
Memória de
Dados
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
0A31H
2F
Memória de
Dados
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
0A31H
2F
A
CD
0A30
Instrução 3
Instrução 4
Memória de
Programa
I
9C
PC
0406
Instrução 5
Memória de
Dados
0A32H
Arquitetura e Organização de
Computadores
CD
I
9C
PC
0405
Instrução 4
Instrução 5
20
Byte de Memória
0400H
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
0A31H
2F
Instrução 1
Instrução 2
A
7A
CD
0A31
Instrução 3
I
9C
PC
0407
Instrução 4
Instrução 5
0A32H
21
Registradores de uma CPU- Utilização
Arquitetura e Organização de
Computadores
22
Registradores de uma CPU- Utilização
Endereço do byte
de memória
• A Instrução 3 completou sua execução e a execução da
Instrução 4 já pode ter início.
• Como nas instruções anteriores, a CPU começa
automaticamente carregando o conteúdo do byte de
memória endereçado por PC no registro I.
Memória de
Programa
Memória de
Dados
Arquitetura e Organização de
Computadores
A
7A
0A30
Instrução 3
Registradores de uma CPU- Utilização
Instrução 1
7A
Instrução 2
0A32H
Endereço do byte
de memória
Instrução 2
Instrução 1
Arquitetura e Organização de
Computadores
Byte de Memória
0400H
Memória de
Programa
Byte de Memória
0400H
19
Registradores de uma CPU- Utilização
Endereço do byte
de memória
Endereço do byte
de memória
23
Byte de Memória
0400H
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
0A31H
2F
Instrução 1
Instrução 2
A
7A
CD
0A31
Instrução 3
Instrução 4
I
80
PC
0408
Instrução 5
0A32H
Arquitetura e Organização de
Computadores
24
4
Registradores de uma CPU- Utilização
Registradores de uma CPU- Utilização
• O código de instrução 80H faz com que a CPU busque o
conteúdo da palavra de dados endereçada por CD e someo ao conteúdo do acumulador (A).
Endereço do byte
de memória
Memória de
Programa
Memória de
Dados
Arquitetura e Organização de
Computadores
27
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
Instrução 1
Instrução 2
A9
A
CD
0A31
Instrução 3
PC
0408
Instrução 4
Instrução 5
I
80
7A
7A16 + 2F16 = A916
0A30H
7A
0A31H
2F
0A32H
26
Memória de
Programa
Byte de Memória
0400H
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
0A31H
2F
Instrução 1
Instrução 2
A9
A
CD
0A31
Instrução 3
Instrução 4
I
60
PC
0409
Instrução 5
0A32H
Arquitetura e Organização de
Computadores
Registradores de uma CPU- Utilização
28
Registradores de uma CPU- Resumo
Byte de Memória
0400H
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
0A30H
7A
A9
0A31H
30
0403H
Endereço do byte
de memória
Memória de
Dados
Memória de
Dados
0402H
Registradores de uma CPU- Utilização
• A Instrução 4 completou agora sua execução.
• O conteúdo do acumulador (resultado da soma) deve ser
armazenado no byte de memória 0A31H que é o byte de
memória endereçado correntemente pelo CD.
• A Instrução 5 armazena o conteúdo de A no byte de
memória de dados 0A31H por meio de dois passos.
• O passo 1 busca o código de instrução de maneira usual.
• O passo 2 armazena o acumulador no byte de memória
endereçado por CD.
Memória de
Programa
0A
Arquitetura e Organização de
Computadores
Registradores de uma CPU- Utilização
Endereço do byte
de memória
9C
0401H
25
Arquitetura e Organização de
Computadores
Byte de Memória
0400H
Instrução 1
Instrução 2
A9
A
CD
0A31
Instrução 3
I
60
0409
PC
Instrução 4
Instrução 5
0A32H
Arquitetura e Organização de
Computadores
29
• Acumulador: armazena por curto prazo um conjunto de
bits.
• Contador de Dados:armazena endereços para operações
de leitura/escrita na memória.
• Registro de Instrução:armazena códigos de instrução.
• Contador de Programa:armazena endereços da palavra de
memória da qual o código de instrução será lido.
Arquitetura e Organização de
Computadores
30
5