Arquiteturas RISC vs CISC: Evolução e Diferenças
Classificado em Computação
Escrito em em
português com um tamanho de 3,28 KB
A abordagem mais comum para a comparação entre RISC e CISC é listar as características de ambas e colocá-las “lado a lado”, discutindo como cada uma influencia o desempenho. Esta abordagem é correta ao comparar tecnologias contemporâneas, como sistemas operativos ou placas de vídeo, mas falha ao analisar o debate entre RISC e CISC. Estas não são apenas tecnologias, mas sim filosofias de projeto de CPU — estratégias para atingir objetivos definidos perante problemas específicos.
Na aplicação destas estratégias, os projetistas consideraram as limitações tecnológicas da época. Compreender essas restrições é a chave para entender ambas as arquiteturas, exigindo um contexto histórico para além de simples benchmarks.
Para entender a evolução das arquiteturas RISC e CISC, é necessário analisar o estado da VLSI, memória e compiladores nos anos 70 e início dos anos 80.
Memória e Armazenamento
Nos anos 70, a tecnologia de armazenamento impactou profundamente o projeto de CPUs. Computadores utilizavam memória magnética, cara e lenta. Mesmo com a introdução da RAM, o custo permanecia proibitivo. O alto custo da memória e a lentidão do armazenamento secundário tornaram a escrita de código um desafio crítico.
RISC (Reduced Instruction Set Computer)
A arquitetura RISC caracteriza-se por possuir um conjunto reduzido de instruções de máquina, executadas diretamente pelo hardware. Na sua maioria, estas instruções não acessam a memória principal, trabalhando diretamente com um grande número de registradores. Isto permite uma execução rápida e facilita a implementação de pipelining.
CISC (Complex Instruction Set Computer)
No início dos anos 70, compiladores eram limitados e a memória era cara. A corrente predominante defendia que a solução para a "crise do software" seria transferir a complexidade do software para o hardware. Se uma função era comum, ela deveria ser implementada diretamente no hardware, que era visto como um recurso barato em comparação ao tempo do programador.
As principais razões para promover a arquitetura CISC incluíam:
- Reduzir as dificuldades na escrita de compiladores;
- Reduzir o custo global do sistema;
- Reduzir custos de desenvolvimento e manutenção de software;
- Reduzir a diferença semântica entre linguagens de alto nível e a máquina;
- Melhorar a compactação do código e facilitar a detecção de erros.
Com a evolução tecnológica, o microcódigo tornou-se mais rápido, levando ao crescimento dos conjuntos de instruções. Contudo, o aumento da complexidade trouxe problemas: microprogramas maiores tornaram-se difíceis de testar e propensos a erros. Estas dificuldades levaram investigadores a questionar se a implementação de instruções complexas era o melhor uso dos recursos (transistores) disponíveis.
Atualmente, a diferença entre processadores RISC e CISC já não reside apenas no tamanho do conjunto de instruções, mas na arquitetura global. As nomenclaturas RISC e CISC tornaram-se menos descritivas da realidade moderna, onde o foco principal é a velocidade de execução e a fiabilidade do software.