Arquiteturas RISC x CISC
Processadores RISC X CISC
Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)
Surgimento de novos paradigmas como a OO, Orientação a Componentes, Orientação a Eventos, etc
Linguagens tendem a evoluir para facilitar a vida do ser humano
Processadores RISC X CISC
Um único comando de uma Linguagem de Alto Nível pode significar muito e gerar muitas instruções de máquina no código-objeto
Consequência: O trabalho do compilador se torna mais difícil (os compiladores devem ser mais complexos)
Processadores RISC X CISC
Linguagens de programação de altonível (LAN) cada vez mais poderosas ecomplexas Problema
gap semântico: enorme distância semântica entre as operações disponíveis em linguagens de alto nível e as operações disponibilizadas pelo hardware de computadores
Processadores RISC X CISC
Decisão tomada pelos fabricantes (DEC e IBM): Aumentar o número de instruções de máquina em seus processadores
O objetivo era “fechar” o gap semântico e facilitar a vida dos compiladores
No início da década de 80 este tipo de arquitetura foi chamado de CISC
Processadores RISC X CISC
CISC: Complex Instruction Set Computers
Ou: Processadores com conjunto de instruções complexo
Em alguns processadores a quantidade de instruções ultrapassa 300
Processadores RISC X CISC
Apesar de ter começado com processadores de grande porte, a Intel e a AMD adotaram o CISC em suas arquiteturas
A arquitetura x86 pode ser considerada um projeto CISC
Processadores RISC X CISC
Algumas pesquisas surgiram na época para tentar ajudar na redução do gap semântico
A ideia era estudar o comportamento dos programas escritos na LAN
Processadores RISC X CISC
Um dos estudos mais famosos foi o de Knuth em 1971. Ele observou o comportamento de vários programas escritos em Fortran.
Processadores RISC X CISC
O estudo de Knuth mostrou que grande parte das instruções existentes nos programas , em média, resultam em muitas instruções de atribuições (Assign).
Ou seja, a transferência de dados pode tornar os programas lentos (principalmente se envolver leitura em memória)
Processadores RISC X CISC
Deveria-se então ter uma preocupação em otimizar as instruções que consumiam mais tempo (como o assign) em vez de se preocupar em construir instruções mais complexas (que eram raramente usadas)
Processadores RISC X CISC
Novos estudos surgiram, culminando com o trabalho de Patterson em 1982 que descrevia uma nova arquitetura que foi chamada de RISC (Reduced Instruction Set Computer)
Criava um processador com pequeno (reduzido) conjunto de instruções
Processadores RISC X CISC
Algumas observações de Patterson
Processadores RISC X CISC
Algumas observações de Patterson
Implicações
Arquitetura com um conjunto de instruções mais próximo das instruções de LAN não era eficiente
Um suporte mais eficiente para LAN poderia ser obtido por meio da otimização das características responsáveis por maior consumo de tempo de execução de programas em LAN
Implicações
Grande número de registradores Otimizar referências a operandos,
reduzindo o número de referências à memória
Projeto de pipeline otimizados com previsão de desvios Devido a alta taxa de ocorrência de
instruções de desvio condicional e de chamada de procedimento
Conjunto de instruções simplificado (reduzido)
For (i = n; i<0; i--){} loop: LOAD endi, R1 SUB #1, R1, R1 STORE R1, endi CMP #0, R1 JNZ loop
For (i = n; i<0; i--){} loop: DBNZ endi, loop
DBNZ: Decrement and Branch if not zero
Por que CISC?
Simplificação do compilador? Instruções de máquinas complexas são
difíceis de ser usadas A otimização do código é difícil
Programas menores? Menos memória Deixou de ser vantagem pois memória
está barata Instruções CISC podem parecer pequenas
no formato simbólico mas podem ocupar mais bits
Por que CISC?
Programas mais rápidos? Unidade de controle mais complexa Microprograma ocupa muito espaço
na memória de controle
Não é muito claro que a tendência no sentido de conjunto de instruções complexas seja adequada
Características da Arquitetura RISC
Uma instrução por ciclo de máquina Um ciclo de máquina é definido como o
tempo requerido para buscar 2 operandos em regs. executar uma op. na ULA e armazenar o resultado em um registrador
Operações de registrador para registrador Operações simples de carga e
armazenamento para acesso à memória
Características da Arquitetura RISC
Modos de endereçamento simples Formatos de instruções simples
Pequeno número de formatos diferentes Tamanho da instrução é fixo
Não é necessária a microprogramação
RISC X CISC
Projetos RISC podem se beneficiar com a inclusão de algumas características CISC PowerPC
Projetos CISC podem se beneficiar com a inclusão de algumas características RISC Pentium II
RISC X CISC
Atualmente as arquiteturas trazem um “híbrido” entre RISC e CISC
Top Related