Arquitetura de Computadores: Processador, Instruções e Endereçamento
Classificado em Computação
Escrito em em português com um tamanho de 8,49 KB
Componentes do Processador
- Unidade de Controle: responsável pela busca das instruções na memória principal e pela determinação do tipo de cada instrução.
- ULA: responsável pela realização das operações lógicas e aritméticas.
- Conjunto de Barramento: interliga os diversos componentes.
- Registradores: alimentam as duas entradas da ULA.
A ULA é a parte do computador que de fato executa as operações aritméticas e lógicas sobre os dados. Todos os outros elementos do computador — Unidade de Controle, registradores, memória, E/S — servem, principalmente, para trazer os dados a serem processados pela ULA e receber os resultados das operações efetuadas.
Elementos de Instruções de Máquina
- Código de Operação: especifica a operação a ser efetuada. A operação é especificada por um código binário.
- Referência a Operando-Fonte: a operação pode envolver um ou mais operandos-fonte, que constituem dados de entrada para a operação.
- Referência a Operando de Destino: a operação pode produzir um resultado.
- Endereço da Próxima Instrução: indica onde a CPU deve buscar a próxima instrução.
Localização dos Operandos
Os operandos-fonte e destino podem estar localizados na:
- Memória principal ou virtual
- Registrador da CPU
- Dispositivos de Entrada e Saída
Representação de Instruções
Cada instrução é representada por uma sequência de bits. Na maioria dos conjuntos de instruções, é usado mais de um formato de instrução. Durante a execução, uma instrução é lida em um registrador de instruções (IR) da CPU. A CPU deve ser capaz de extrair os dados de vários campos da instrução e efetuar a operação requerida.
Tipos de Instruções
- Carregar um registrador com o conteúdo da posição de memória 513.
- Adicionar o conteúdo da posição de memória 514 ao registrador.
- Armazenar o conteúdo do registrador na posição de memória 513.
Uma única instrução em linguagem de alto nível exige várias instruções de máquina. Isso ocorre porque na linguagem de máquina as operações são expressas de maneira básica e envolvem a movimentação de dados de e para registradores.
Um computador deve ter um conjunto de instruções que permita ao usuário formular qualquer tarefa de processamento de dados. Ou, considerar os comandos disponíveis em uma linguagem de programação de alto nível, pois qualquer programa deve ser traduzido para linguagem de máquina.
Principais Tipos de Instrução
- Processamento de Dados: instruções aritméticas e lógicas.
- Armazenamento de Dados: instruções de memória.
- Movimentação de Dados: instruções de E/S.
- Controle: instruções de teste e de desvio.
Número de Endereços em Instruções
Uma das maneiras tradicionais de descrever uma arquitetura é em termos do número de endereços contidos em cada instrução.
Máximo de Endereços por Instrução
No máximo dois endereços para referenciar os operandos e um endereço para o resultado.
Instruções com Um Endereço
Instruções com apenas um endereço são ainda mais simples. Porém, é necessário usar um endereço implícito chamado acumulador (AC). Ele contém um dos operandos e também armazena o resultado. Neste caso, são necessárias 8 instruções.
Impacto: Nº de Endereços vs. Nº de Instruções
Poucos endereços por instrução resultam em instruções de menor extensão e mais primitivas. Se o número de instruções por programa é maior, resulta em maior tempo de execução e em programas mais complexos. A maioria das máquinas modernas emprega instruções de dois ou três endereços. Outra questão importante é decidir se um endereço se refere a uma posição de memória ou a um registrador.
Endereçamento Imediato
- Utilização: Usado para definir e usar constantes ou para atribuir valores iniciais em variáveis.
- Vantagem: Não requer qualquer acesso à memória.
- Limitação: O tamanho do operando é limitado ao tamanho do campo de endereço.
Endereçamento Direto
- Descrição: O campo de endereço contém o endereço efetivo do operando.
- Utilização: Esse tipo era comum nas primeiras gerações de computadores e hoje é encontrado em computadores de pequeno porte.
- Vantagem: Requer apenas um acesso à memória.
- Limitação: Espaço de endereçamento.
Endereçamento Indireto
- Descrição: Nesse modo, no campo de endereço é especificado o endereço de uma palavra de memória, que contém o endereço do operando.
- Vantagem: Se uma palavra tem N bits, o espaço de endereçamento tem tamanho 2N.
- Desvantagem: Dois acessos à memória.
Endereçamento de Registrador
- Descrição: Esse modo é similar ao endereçamento indireto, porém a diferença é que o campo de endereço se refere a um registrador e não a um endereço na memória.
- Vantagens: O tamanho do campo de endereço requerido na instrução é pequeno e não requer nenhum acesso à memória.
- Desvantagem: Tem espaço de endereçamento limitado.
Endereçamento Indireto via Registrador
É análogo ao endereçamento indireto, a única diferença é que o campo de endereço se refere a um registrador e não a uma posição de memória. Vantagem e desvantagem: Idem ao endereçamento indireto. Porém, o endereçamento via Registrador requer um acesso a menos que o endereçamento indireto.
Endereçamento por Deslocamento
Combina as capacidades do endereçamento direto e indireto via registrador. Existem três tipos:
- Endereçamento Relativo
- Via Registrador-Base
- Indexação
Endereçamento Pilha
Esse modo de endereçamento é considerado implícito. As instruções de máquina não precisam fazer acesso à memória, operando implicitamente sobre o topo da pilha.
Organização do Processador
- Busca de Instrução: A CPU lê uma instrução da memória.
- Interpretação de Instrução: A instrução é decodificada para determinar a ação requerida.
- Busca de Dados: A execução de uma instrução pode requerer uma leitura de dados da memória ou de um módulo de E/S.
- Processamento de Dados: A execução de uma instrução pode requerer efetuar uma operação aritmética ou lógica sobre os dados.
- Escrita de Dados: Os resultados da execução podem requerer escrever dados na memória ou em um módulo de E/S.
Organização de Registradores
- Registradores Visíveis para o Usuário: Possibilitam ao programador de linguagem de montagem minimizar referências à memória, pela otimização do uso de registradores.
- Registradores Não Visíveis para o Usuário: São usados pela unidade de controle para controlar a operação da CPU e por programas privilegiados do sistema operacional para controlar a execução de programas.
Registradores de Propósito Geral
Este tipo de registrador pode ser usado pelo programador para várias funções, ou seja, é ortogonal ao código de operação. Qualquer registrador de propósito geral pode conter um operando para qualquer código de operação.
Registradores de Dados
Registradores que podem ser usados apenas para conter dados e não podem ser empregados no cálculo de endereços de operandos.
Ciclo de Instrução da CPU
- Busca: Lê a próxima instrução da memória para a CPU.
- Execução: Interpreta o código de operação e efetua a operação indicada.
- Interrupção: Se as interrupções estão habilitadas e ocorreu uma interrupção, salva o estado do processo atual e processa a interrupção.