arquiteturas risc x cisc. processadores risc x cisc evolução constante das linguagens de...

24
Arquiteturas RISC x CISC

Upload: internet

Post on 22-Apr-2015

162 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: 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)

Arquiteturas RISC x CISC

Page 2: 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)

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

Page 3: 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)

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)

Page 4: 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)

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

Page 5: 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)

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

Page 6: 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)

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

Page 7: 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)

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

Page 8: 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)

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

Page 9: 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)

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.

Page 10: 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)

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)

Page 11: 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)

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)

Page 12: 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)

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

Page 13: 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)

Processadores RISC X CISC

Algumas observações de Patterson

Page 14: 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)

Processadores RISC X CISC

Algumas observações de Patterson

Page 15: 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)

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

Page 16: 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)

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)

Page 17: 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)

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

Page 18: 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)

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

Page 19: 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)

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

Page 20: 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)

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

Page 21: 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)

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

Page 22: 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)
Page 23: 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)

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

Page 24: 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)

RISC X CISC

Atualmente as arquiteturas trazem um “híbrido” entre RISC e CISC