Arquitetura e Organização de Computadores: Ciclo de Instrução e Endereçamento
Classificado em Inglês
Escrito em em
português com um tamanho de 8,5 KB
Arquitetura e Organização de Computadores
É composto por (ou processo de):
Unidade de Controle: responsável pelo gerenciamento das instruções e pela determinação do tipo de memória principal de cada instrução.
ULA: responsável pela realização das operações lógicas e aritméticas.
Conjunto de Barramentos: interliga vários componentes.
Registradores: armazenam temporariamente os dados e as duas entradas da ULA.
A ULA é o elemento do computador que executa as operações aritméticas e lógicas sobre os dados. Todos os outros elementos do computador (unidades de controle, registradores, memória e E/S) servem principalmente para dar à ULA os dados a serem processados e para receber os resultados das operações realizadas.
Elementos de uma Instrução de Máquina
Código de Operação: especifica a operação a ser realizada. A operação é especificada por um código binário.
Fonte de operandos: representa uma ou mais fontes de operandos que constituem entrada para a operação.
Destino dos operandos: indica onde a operação deve produzir um resultado.
Endereço da próxima instrução: indica à CPU onde deve buscar a próxima instrução.
Localização dos Operandos
Os operandos de origem e destino podem estar localizados na:
- Memória principal ou virtual
- CPU (registradores)
- Dispositivos de entrada e saída
Representação das 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, a instrução é lida em um registrador de instrução (IR) da CPU. A CPU deve ser capaz de extrair os vários campos da instrução para realizar a operação requerida.
Tipos de Instrução
- Carregar o conteúdo da posição 513 da memória em um registrador.
- Adicionar o conteúdo da posição 514 da memória ao registrador.
- Armazenar o conteúdo do registrador na posição 513 da memória.
Uma linguagem de alto nível requer várias instruções de máquina. Esse processo de conversão ocorre porque as operações de máquina são básicas e envolvem a movimentação de dados entre a memória e os registradores.
* Um computador deve ter um conjunto de instruções que permita ao usuário realizar qualquer tarefa de processamento. Ou seja, devem ser considerados os comandos disponíveis em uma linguagem de programação de alto nível, pois devem ser traduzidos para a 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 desvio.
Números de Endereço
Uma das maneiras tradicionais de descrever uma arquitetura é em termos do número de endereços contidos em cada instrução.
Qual é o número máximo de endereços necessário em uma instrução?
No máximo, são necessários três endereços: dois para os operandos e um para o resultado.
Números de Endereço (continuação)
Instruções com apenas um endereço são mais simples. Porém, é necessário um endereço implícito, chamado acumulador (AC), que armazena um dos operandos ou o resultado. Nestes casos, são necessárias 8 instruções.
Impacto do número de endereços nas instruções:
Instruções com menos endereços resultam em instruções mais simples e menos primitivas. Se o número de instruções por programa é maior, o programa é mais extenso e, em tempo de execução, mais complexo. As máquinas modernas empregam, em sua maioria, instruções com dois ou três endereços. Há ainda outra questão: decidir se um endereço refere-se a uma posição de memória ou a um registrador.
Modos de Endereçamento
Endereçamento imediato: o operando é especificado com um valor contido na própria instrução.
- Utilização: usado para definir e utilizar constantes ou atribuir valores iniciais a variáveis.
- Vantagem: não requer acesso à memória.
- Limitação: o tamanho do operando é limitado pelo tamanho do campo de endereço.
Endereçamento direto: o campo de endereço contém o endereço do operando.
- Utilização: esse modo foi comum nas primeiras gerações de computadores e hoje é encontrado em pequenos computadores.
- Vantagem: requer apenas um acesso à memória.
- Limitação: espaço de endereçamento limitado.
Endereçamento indireto: nesse modo, o campo especificado não é o endereço do operando, mas um endereço de uma palavra na memória que contém o endereço do operando.
- Vantagem: uma palavra tem N bits, e o espaço de endereçamento é de 2N.
- Desvantagem: dois acessos à memória.
Endereçamento por registrador: é semelhante ao endereçamento direto, porém a diferença é que o campo de endereço refere-se a um registrador, e não a um endereço de memória.
- Vantagens: o tamanho do campo de endereço na instrução é pequeno e não há acesso à memória.
- Desvantagem: espaço de endereçamento limitado.
Endereçamento indireto via registrador: é semelhante ao endereçamento indireto, com a diferença de que o campo de endereço refere-se a um registrador, e não a uma posição de memória. Vantagens e desvantagens: idem ao endereçamento indireto. Porém, o endereçamento via registrador requer menos acessos à memória que o endereçamento indireto.
Endereçamento por deslocamento: combina as capacidades do endereçamento direto e do endereçamento via registrador. Existem três tipos:
- Endereçamento relativo
- Endereçamento base-registrador
- Indexação
Endereçamento por pilha: é um endereçamento implícito. Nesse modo, as instruções de máquina não acessam diretamente a memória, operando implicitamente sobre o topo da pilha.
Organização do Processamento
- Busca da instrução: a CPU lê uma instrução da memória.
- Interpretação da instrução: a instrução é decodificada para determinar a ação requerida.
- Busca dos dados: a execução da instrução pode requerer uma leitura da memória ou de um módulo de E/S.
- Processamento de dados: a execução da instrução pode requerer uma operação aritmética ou lógica sobre os dados.
- Escrita de dados: os resultados da execução podem requerer a escrita em um módulo de memória ou de E/S.
Organização de Registradores
Registradores visíveis ao usuário: possibilitam ao programador minimizar as referências à memória na montagem de programas, pela otimização do uso dos registradores.
Registradores não visíveis ao usuário: são utilizados pelas unidades de controle para controlar a CPU e por programas privilegiados do sistema operacional, ou para controlar a execução dos programas.
Registradores de Propósito Geral
Esse tipo de registrador pode ser usado por programas para diversas funções, ou seja, é ortogonal ao código de operação. Qualquer registrador de propósito geral pode conter qualquer código de operação.
Registradores de Dados
Os registradores podem conter apenas dados e não podem ser empregados no cálculo do endereço do operando.
Ciclo de Instrução
- Busca: lê a instrução da memória externa para a CPU.
- Execução: interpreta o código e realiza a operação indicada.
- Interrupção: se as interrupções estiverem habilitadas e ocorrer uma interrupção, salva-se o estado do processo atual e atende-se a interrupção.