Arquiteturas RISC x CISC. Processadores RISC X CISC Evolução constante das linguagens de...

Post on 22-Apr-2015

162 views 7 download

Transcript of Arquiteturas RISC x CISC. Processadores RISC X CISC Evolução constante das linguagens de...

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