sábado, 17 de maio de 2014

ARQUITETURA CISC E RISC



Processadores RISC X Processadores CISC


Introdução


Sempre houve uma grande polêmica em torno de qual dessas plataformas é melhor. Na verdade, você já deve ter ouvido muito boatos como "Os Macs são mais rápidos por que tem chips RISC" ou algo do gênero. O objetivo deste artigo é falar um pouco sobre as duas plataformas e como elas coexistem atualmente.

Um processador CISC (Complex Instruction Set Computer, ou "computador com um conjunto complexo de instruções"), é capaz de executar várias centenas de instruções complexas diferentes, sendo extremamente versátil. Exemplos de processadores CISC são o 386 e o 486.

   Na década de 80, a tendência era construir chips com conjuntos de instruções cada vez mais complexos. Alguns fabricantes porém, resolveram seguir o caminho oposto, criando o padrão RISC (Reduced Instruction Set Computer, ou "computador com um conjunto reduzido de instruções"). Ao contrário dos complexos CISC, os processadores RISC são capazes de executar apenas algumas poucas instruções simples. Justamente por isso, os chips baseados nesta arquitetura são mais simples e muito mais baratos. Outra vantagem dos processadores RISC, é que, por terem um menor número de circuitos internos, podem trabalhar a freqüências mais altas. 


RISC e CISC





  A vantagem de uma arquitetura CISC é que já temos muitas das instruções guardadas no próprio processador, o que facilita o trabalho dos programadores, que já dispõe de praticamente todas as instruções que serão usadas em seus programas. No caso de um chip estritamente RISC, o programador já teria um pouco mais de trabalho, pois como disporia apenas de instruções simples, teria sempre que combinar várias instruções sempre que precisasse executar alguma tarefa mais complexa. Seria mais ou menos como se você tivesse duas pessoas, uma utilizando uma calculadora comum, e outra utilizando uma calculadora cientifica. Enquanto estivessem sendo resolvidos apenas cálculos simples, de soma, subtração, etc. quem estivesse com a calculadora simples poderia até se sair melhor, mas ao executar cálculos mais complicados, a pessoa com a calculadora científica disporia de mais recursos.



RISC x CISC        

    Máquinas CISC (Complex Instruction Set Computer) têm um conjunto de instruções grande, de tamanhos variáveis, com formatos complexos. Muitas dessas instruções são bastante complicadas, executando múltiplas operações quando uma única instrução é dada (por exemplo, é possível realizar um loop complexo usando apenas uma operação assembly). O problema básico com máquinas CISC é que um conjunto pequeno de instruções complexas torna o sistema consideravelmente mais lento. Os projetistas decidiram retornar a uma arquitetura mais simples, delegando ao compilador a responsabilidade de produzir código eficiente com esse novo conjunto de instruções. Máquinas que utilizam esta filosofia são chamadas de máquinas RISC.
     A arquitetura RISC (Reduced Instruction Set Computer), como o próprio nome já diz, tem como principal objetivo simplificar as instruções de modo que elas possam ser executadas mais rapidamente. Cada instrução executa apenas uma operação, que são todas do mesmo tamanho, tem poucos formatos, e todas as operações aritméticas devem ser executadas entre registradores (dados da memória não podem ser utilizados como operandos). Praticamente todos os conjuntos de instruções (para qualquer arquitetura) lançados desde 1982 têm sido RISC, ou alguma combinação entre RISC e CISC.
    Membros da família x86 de arquitetura Intel são conhecidos como máquinas CISC, enquanto que a família Pentium e processadores MIPS são conhecidos como máquinas RISC.
Vamos montar uma tabela com as principais diferenças entre as arquiteturas. Isto deveria ser suficiente para responder a maioria das questões de concurso sobre o assunto.
RISC
CISC
Múltiplos conjuntos de registradores, muitas vezes superando 256
Único conjunto de registradores, tipicamente entre 6 e 16 registradores
Três operandos de registradores permitidos por instrução (por ex., add R1, R2, R3)
Um ou dois operandos de registradores permitidos por instrução (por ex., add R1, R2)
Passagem eficiente de parâmetros por registradores no chip (processador)
Passagem de parâmetros ineficiente através da memória
Instruções de um único ciclo (ex. load e store)
Instruções de múltiplos ciclos
Controle hardwired (embutido no hardware)
Controle microprogramado
Altamente paralelizado (pipelined)
Fracamente paralelizado
Instruções simples e em número reduzido
Muitas instruções complexas
Instruções de tamanho fixo
Instruções de tamanho variável
Complexidade no compilador
Complexidade no código
Apenas instruções load e store podem acessar a memória
Muitas instruções podem acessar a memória
Poucos modos de endereçamento
Muitos modos de endereçamento

Nenhum comentário:

Postar um comentário