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 apenasuma 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.
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 estore) 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
Fonte: http://waltercunha.com/blog/index.php/2009/08/30/risc-x-cisc/