Registradores de uma CPU

Prof. Eduardo Appel Eng.DSc.
appel@upf.tche.br

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].
7 6 5 4 3 2 1 0
No. do bit Acumulador

• Denominação dos registradores • Função dos registradores • Características dos registradores • Utilização dos registradores

CPU

Acumulador

Arquitetura e Organização de Computadores

1

Arquitetura e Organização de Computadores

2

Registradores de uma CPU - Acumulador
• 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

Registradores de uma CPU
Contador de Dados (CD)

• 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 4

Arquitetura e Organização de Computadores

3

Registradores de uma CPU
Registro de Instrução (I)

Registradores de uma CPU
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 5

• 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

O conteúdo dos outros registradores são desconhecidos. • A CPU então incrementa o conteúdo do PC. • A CPU então incrementa o conteúdo do PC. 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). o conteúdo do byte de memória endereçado pelo PC é lido da memória.Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 9C 0401 Instrução 2 Instrução 1 Memória de Programa A CD I PC Memória de Dados 0A30H 0A31H 0A32H 7A 2F Arquitetura e Organização de Computadores 9 Arquitetura e Organização de Computadores 10 Registradores de uma CPU. aparecendo no registro de Instrução.Utilização • Para entendermos a utilização dos registradores da CPU voltaremos ao programa da adição binária. • Primeiro.Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 9C 0402 Instrução 2 Instrução 1 Memória de Programa A 0A00 CD I PC Memória de Dados 0A30H 0A31H 0A32H 7A 2F Arquitetura e Organização de Computadores 12 2 . faz a lógica da CPU implementar 2 passos.Registradores de uma CPU.Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 0400 Instrução 2 Instrução 1 Memória de Programa A CD I PC Memória de Dados 0A30H 0A31H 0A32H 7A 2F Arquitetura e Organização de Computadores 7 Arquitetura e Organização de Computadores 8 Registradores de uma CPU. Registradores de uma CPU.Utilização • O código 9C. • Em seguida. • Inicialmente o PC contém 0400H. 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. o endereço da primeira palavra de instrução do programa na memória. • Cada passo do programa será tratado como uma instrução. • Os dados contidos nas palavras de memória de endereço 0A30H e 0A31H são inicialmente 7AH e 2FH. • A CPU incrementa novamente o conteúdo do PC. mas é armazenado no byte mais alto do contador de dados (CD). assegurando assim que o conteúdo desta palavra de memória seja interpretado como um código de instrução. Arquitetura e Organização de Computadores 11 Registradores de uma CPU.

• Na Instrução 1. ou dado literal. O conteúdo dos bytes de memória 0401H e 0402H foram carregados no registrador CD. • O código de instrução 9CH. que aparece imediatamente após um código de instrução de um programa na memória. Registradores de uma CPU. • O código de instrução necessita de dados que o seguisse imediatamente. é chamado dado imediato.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). e então incrementa o PC.Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Registradores de uma CPU. para ser interpretado como um código de instrução. Registradores de uma CPU. os bytes de memória 0401H e 0402H contêm o dado imediato 0A30H.Utilização • Após a execução da Instrução 1. Este tipo de dado. • O conteúdo do byte lido é armazenado no registrador de Instrução (I).Registradores de uma CPU.Utilização • A execução da Instrução 1 foi completada. Arquitetura e Organização de Computadores 14 Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 9C 0403 Instrução 2 0A30 Instrução 1 Memória de Programa A CD I PC Memória de Dados 0A30H 0A31H 0A32H 7A 2F Arquitetura e Organização de Computadores 13 Registradores de uma CPU.Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 Instrução 2 7A 40 0404 Instrução 1 Memória de Programa A 0A30 CD I PC Memória de Dados 0A30H 0A31H 0A32H 7A 2F Arquitetura e Organização de Computadores 17 Arquitetura e Organização de Computadores 18 3 . lido da posição 0400H. identifica a maneira pela qual o dado imediato 0A30H deve ser interpretado pela CPU. a CPU busca (ou lê) o conteúdo do byte de memória endereçado por PC (0403H).Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 40 0404 Instrução 2 0A30 Instrução 1 Memória de Programa A CD I PC Memória de Dados 0A30H 0A31H 0A32H 7A 2F Arquitetura e Organização de Computadores 15 Arquitetura e Organização de Computadores 16 Registradores de uma CPU.

• A primeira etapa lê o código de instrução para o registro I. • A terceira etapa carrega o byte baixo de CD. • A Instrução 3 é uma repetição da Instrução 1. • A segunda etapa lê 0AH do byte 0405H e armazena no byte alto do registro CD. sendo que o dado imediato 0A30H é substituído por 0A31H.Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 Instrução 2 7A 9C 0405 Instrução 1 Memória de Programa A 0A30 CD I PC Memória de Dados 0A30H 0A31H 0A32H 7A 2F Arquitetura e Organização de Computadores 20 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).Utilização Endereço do byte de memória 0400H Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 Instrução 2 7A 9C 0406 Instrução 1 Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 Instrução 2 7A 9C 0407 Instrução 1 0401H 0402H Memória de Programa A 0A30 CD PC Memória de Programa 0403H 0404H 0405H 0406H 0407H 0408H A 0A31 CD I PC I Memória de Dados 0A30H 0A31H 0A32H 7A 2F Memória de Dados 0A30H 0A31H 0A32H 7A 2F Arquitetura e Organização de Computadores 21 Arquitetura e Organização de Computadores 22 Registradores de uma CPU. que contém o código de instrução para a Instrução 3.Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 Instrução 2 7A 0A31 80 0408 Instrução 1 Memória de Programa A CD I PC Memória de Dados 0A30H 0A31H 0A32H 7A 2F Arquitetura e Organização de Computadores 23 Arquitetura e Organização de Computadores 24 4 . a CPU começa automaticamente carregando o conteúdo do byte de memória endereçado por PC no registro I. • Como nas instruções anteriores.Registradores de uma CPU. Como na Instrução 1 os registradores sofrerão mudanças em três etapas. Registradores de uma CPU.Utilização • A Instrução 3 completou sua execução e a execução da Instrução 4 já pode ter início.Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Registradores de uma CPU. Arquitetura e Organização de Computadores 19 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). • Contador de Dados:armazena endereços para operações de leitura/escrita na memória.Registradores de uma CPU. • 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. Arquitetura e Organização de Computadores 30 Arquitetura e Organização de Computadores 29 5 .Utilização • A Instrução 4 completou agora sua execução. • Registro de Instrução:armazena códigos de instrução.Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 7A 7A16 + 2F16 = A916 7A 2F Instrução 3 Instrução 2 A9 80 0408 Instrução 1 Memória de Programa A 0A31 CD PC I Memória de Dados 0A30H 0A31H 0A32H Arquitetura e Organização de Computadores 25 Arquitetura e Organização de Computadores 26 Registradores de uma CPU. • O passo 1 busca o código de instrução de maneira usual.Resumo Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 Instrução 2 A9 60 0409 Instrução 1 Memória de Programa A 0A31 CD PC I Memória de Dados 0A30H 0A31H 0A32H 7A A9 • Acumulador: armazena por curto prazo um conjunto de bits. • O passo 2 armazena o acumulador no byte de memória endereçado por CD. Registradores de uma CPU.Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Byte de Memória 9C 0A 30 40 9C 0A 31 80 60 Instrução 4 Instrução 5 Instrução 3 Instrução 2 A9 60 0409 Instrução 1 Memória de Programa A 0A31 CD I PC Memória de Dados 0A30H 0A31H 0A32H 7A 2F Arquitetura e Organização de Computadores 27 Arquitetura e Organização de Computadores 28 Registradores de uma CPU.Utilização Endereço do byte de memória 0400H 0401H 0402H 0403H 0404H 0405H 0406H 0407H 0408H Registradores de uma CPU. • Contador de Programa:armazena endereços da palavra de memória da qual o código de instrução será lido. Registradores de uma CPU.