Buscar

Estrutura e Função do Processador

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

ESTRUTURA E FUNÇÃO DO PROCESSADOR
Organização de Registradores
Nome: Jeniffer Genoatto Vanzin
Sistemas de Informação – UFGD
Profº Murilo Táparo
“Grupo 4”
Sumário
Registradores Visíveis ao Usuário
Registradores de propósito geral
Registradores de dados
Registradores de endereço
Segmento
Índice
Topo da Pilha
Registradores de códigos de condição
Projeto do Registrador
Registrador Controle de Estado
Exemplo de busca de instrução
Resultados de cálculos
Exemplo Organização Registradores
ORGANIZAÇÃO DE REGISTRADORES
Dentro da CPU, existe um conjunto de registradores que funciona como um nível da hierarquia de memória acima da memória acima da memória principal e da cache, esses registradores tem duas funções: 
Registradores visíveis para o usuário: possibilita minimizar referências à memória, pela otimização de uso de registradores.
Registradores de controle de estado: usados pela unidade de controle para controlar as operações da CPU e por programas privilegiados controlando a execução de programas. 
Registradores visíveis para o usuário
São aqueles que podem ser referenciados pela linguagem de máquina que a CPU executa.
Registradores de propósito geral
Registradores de dados
Registradores de endereço
Registradores de códigos de condição
Registradores de propósito geral, como sugere é aquele que pode ser usado em várias funções, qualquer registrador desse tipo pode conter um operando para qualquer código de operação, mas existem exceções, por exemplo, podem existir registradores dedicados para operações sobre números de ponto flutuante e operações sobre pilha, ou ainda para endereçamento (indireto via registrador ou por deslocamento).
Registradores de dados podem ser usados apenas para conter dados e não podem ser usados para cálculo de endereços.
Registradores de endereço até certo ponto podem ser usados como registradores de propósito geral ou podem dedicados para um determinado modo de endereçamento, sendo os exemplos:
Registradores de segmento: máquinas que possuem endereçamento segmentado, onde este segmento significa uma posição de memória definida para determinado tipo de registrador isto é, o endereço base de segmento significa que o endereço apontado por este registrador é definido a partir de uma determinada posição específica por um sistema operacional, podendo existir múltiplos registradores, por exemplo, um para o sistema operacional e um para o processo corrente.
Registradores de índice: são usados para endereçamento indexado, possivelmente com auto indexação.
Apontador de topo da pilha: se houver endereçamento de operandos na pilha visível, então esta será alocada na memória e existirá um registrador dedicado que aponta para o topo da pilha, possibilitando endereçamento implícito, não precisando de operando explicito para empilhar e desempilhar.
O projeto do conjunto de registradores envolve diversas questões. Uma questão importante é decidir o tipo do registrador a ser utilizado, pois podem afetar o projeto de conjunto de instruções, Com o uso de registradores especializados, o tipo de registrador referenciado como operando de uma instrução geralmente é implícito, sendo determinado pelo código de operação. Por outro lado, essa especialização limita a flexibilidade de programação, a tendência atual é, usar registradores especializados. Outra questão é o número de registradores a serem disponibilizados, uma vez que mais registradores requer maior número de bits para o operando. Um pequeno número de registradores resulta em mais referências à memória, mas o uso de um número muito grande de registradores não reduz substancialmente o número de referências à memória. 
Códigos de condição: bits atualizados pelo hardware da Cpu como resultado de operações, podem retornar valores positivos, negativos ou overflow. Normalmente fazem parte de um registrador de controle, ou organizados em mais máquinas. 
Registradores de Controle de Estado; são empregados para controlar a operação da CPU, não são visíveis ao usuário, mas podem ser visíveis as instruções de máquina executada em modo de controle ou de SO. Quatro registradores essências para a execução de instruções:
Contador de programa (PC): endereço da instrução a ser buscada.
Registrador de instrução (IR): ultima instrução buscada.
Registrador de endereçamento à memória (MAR): endereço de uma posição de memória.
Registrador de armazenamento temporário de dados (MBR): palavra de dados a ser escrita na memória ou a palavra lida mais recentemente.
Tipicamente, o contador de programa é atualizado pela cru depois de cada busca de instrução, de modo que ele sempre indique a próxima instrução a ser executada. Uma instrução de desvio ou de salto também modifica o conteúdo do contador de programa. A instrução buscada é carregada no IR, onde o código de operação e as referências a operando são analisadas. A troca de dados com a memória é feita usando o MAR e o MBR. Em um sistema com barramento, o MAR é conectado diretamente ao barramento de endereço e o MBR, ao barramento de dados. Registradores visíveis ao usuário, por sua vez, trocam dados com o MBR. Os quatro registradores relacionados anteriormente são usados para transferência de dados entre a cru e a memória. Dentro do CPU, os dados devem ser apresentados à ULA para processamento. A ULA pode ter acesso direto ao MBR e aos registradores visíveis para o usuário. Alternativamente, podem existir registradores adicionais para armazenamento temporário de dados, que servem como registradores de entrada e de saída da ULA e trocam dados com o MBR e os registradores visíveis para o usuário. Todo projeto da cru inclui um registrador, ou conjunto de registradores, frequentemente conhecido como palavra de estado de programa (PSW), que contém informação de estado.
Tipicamente, o registrador PSW contém códigos de condição e outras informações de estado, incluindo os seguintes campos:
Sinal: contém o bit de sinal do resultado da última operação aritmética.
Zero: atualizado com valor 1 se o resultado da última operação for O.
'Vai-um': atualizado com valor 1 se uma operação resultar em um 'vai-um' para fora do bit de ordem superior (adição) ou em um 'vem-um' para o bit de ordem superior
(Subtração). É usado por operações aritméticas de múltiplas palavras.
Igual: atualizado com valor 1 se uma comparação lógica resultar em igualdade.
Overflow: usado para indicar overflow aritmético.
Habilitar/desabilitar interrupção: usada para habilitar ou desabilitar interrupções.
Supervisor: indica se a cru está executando em modo supervisor ou em modo de usuário. Certas instruções privilegiadas apenas podem ser executadas no modo supervisor, assim como certas áreas de memória apenas podem ser acessadas no modo supervisor.
O projeto de urna CPU pode também incluir outros registradores relacionados ao estado e ao controle. Além do registrador PSW, deve existir um registrador que aponta para um bloco de memória que contém informação de estado adicional (por exemplo, blocos de controle de processo).
Diversos fatores devem ser considerados no projeto da organização de registradores de controle e de estado. Urna questão-chave é o suporte para o sistema operacional, se o projetista da CPU tem entendimento funcional sobre o sistema operacional a ser usado, a organização dos registradores pode ser feita razoavelmente de acordo com o sistema operacional, outra questão importante é alocação de informação de controle entre registradores e memória, sendo incumbência do projetista decidir quais informações ficaram nos registradores e quais ficaram na memória, considerando velocidade e uso de máquina.
Exemplo Organização Registradores
O Motorola MC68000 (Stritter, 1979) e o Intel 8086 (Morse, 1978), ambos microprocessadores de 16Bits. O C68000 divide seus registradores de 32 bits em oito registradores de dados e nove registradores de endereço. Os oito registradores de dados são usados principalmente paramanipulação de dados, mas também corno registradores índice. O tamanho dos registradores permite operar dados de 8, 16 ou 32 bits, conforme determinado pelo código de operação. Os registradores de endereço contêm endereços de 32 bits (sem segmentação); dois desses registradores são também usados como apontadores de pilha, um para o usuário e outro para o sistema operacional, dependendo do modo de execução corrente. Esses dois registradores são ambos identificados pelo número 7, urna vez que apenas um pode ser usado de cada vez. O MC68000 inclui também um contador de programa de 32 bits e um registrador de estado de 16 bits.
O Intel 8086 adota uma abordagem diferente para a organização dos registradores. Todo registrador é de uso especial, embora alguns também possam ser de propósito geral. O 8086 contém quatro registradores de dados de 16 bits, que podem ser endereçados em unidades de 16 bits ou byte a byte, e quatro outros registradores de 16 bits, usados como apontadores e registradores índice. Os registradores de dados podem ser usados como propósito geral em algumas instruções, sendo, em outras, usados implicitamente. Por exemplo, uma instrução de multiplicação usa sempre o acumulador. Os quatro registradores apontadores são também usados implicitamente em diversas operações; cada um contém um deslocamento relativo ao início de um segmento. Existem também quatro registradores de segmento de 16 bits, dos quais três são usados de modo dedicado e implícito, para indicar o segmento da instrução corrente (útil para instruções de desvio), um segmento de dados e um segmento de pilha. O uso desses registradores de modo dedicado e implícito proporciona uma codificação mais compacta, ao custo de uma flexibilidade mais reduzida. O 8086 inclui também um contador de programa e um conjunto de bits de estado e de controle.
Referências 
STALLINGS, W. "Arquitetura e Organização de Computadores, Edição 5." (2005) – Páginas de 430 a 436, Capitulo 11.

Outros materiais