Atualmente há duas tecnologias de projeto de processadores empregadas pelo mercado:
- Sistema com conjuntos de instruções complexo
(Complex Instruction Set Computer CISC);
- Sistema com conjunto de instruções reduzido
(Reduced Instruction Set Computer RISC).
Definição Complex Instruction Set Computer "CISC":
É a arquitetura que é capaz de executar um conjunto complexo de instruções,sua interpretação era feita através de microinstruções, e com isso a sua execução é mais lenta.
Apesar de um processador CISC ser capaz de executar centenas de instruções diferentes, apenas algumas são usadas freqüentemente.O uso de microprogramação era uma característica que permitia aos projetistas implementar instruções complexas em hardware.
Outras características dessa arquitetura são a redução de custos globais do sistema, redução dos custos de desenvolvimento de software e da quantidade dos mesmos, diminui a distância entre a linguagem humana e de máquina, aumenta a eficiência dos programas escritos em linguagem de alto nível,melhora a compactação do código facilitando a detecção e correção de erros.
Definição Reduced Instruction Set Computer RISC:
Com a tentativa de minimizar a distância entre o que a máquina podia realizar e entre o que a programação de alto nível exigia foi criado um outro tipo de processador que privilegiava instruções mais simples, denominado como RISC(Reduced Instrunction Set Computer).
Essa arquitetura diferentemente da arquitetura CISC,mais antiga, possuía uma redução no número de instruções que era em torno de 50, já que uma máquina CISC continha em torno de 200 a 300 instruções.Outra grande vantagem dessa arquitetura e que a sua execução era feita diretamente no hardware, o que resultou em uma maior velocidade na execução das instruções.Isso ocorria porque a arquitetura RISC somente fazia uso das instruções CISC que eram utilizadas com mais frequência(instruções simples).
Por outro lado a desvantagem dessa arquitetura era que não havia compatibilidade com os computadores e softwares da época.
Formato das Instruções:
Cada instrução consiste num grupo de bits que pode ser dividido em duas partes:
• a primeira parte indica o que é a instrução e como será executada,
sendo constituída de um só campo;
• a segunda parte refere-se ao(s) dado(s) que será(ão) manipulado(s)
na operação, podendo ser constituída por mais de um campo.
Exemplo de campos :
Instrução para adição de dois valores (operandos 1 e 2), indicando o endereço
(operando 3) a ser armazenado o resultado: OP3 ← OP1 + OP2
Instrução para adição de dois valores (operandos 1 e 2), armazenandose o
resultado no local do operando 1: OP1 ← OP1 + OP2
Utilizando-se o acumulador para armazenar inicialmente um dos operandos e
depois armazenar o resultado da soma: ACC ACC + OP
Tamanho das instruções:
A definição dos códigos de operação do conjunto de instruções de um processador pode ser feita por duas maneiras:
• instruções com C.Op. de tamanho fixo;
• instruções com C.Op. de tamanho variável.
Tipos de Instruções:
No caso de implementação de instruções com um C.Op. de tamanho variável, há a possibilidade de redução de espaço ocupado na MP, já que permite a codificação de um número maior de instruções usando uma menor quantidade de bits.
Esse tipo de implementação permite maior versatilidade entre as quantidades de bits do código de operação e as dos campos operandos, criando um conjunto de instruções com maior número de instruções, com quantidades diferentes de operandos, sem aumentar em demasia o tamanho total das instruções.
Podemos, então, classificar as instruções de máquina nos seguintes tipos, dependendo da sua funçã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.
Ciclo de Instrução