A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

 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.

Apresentações semelhantes


Apresentação em tema: " 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."— Transcrição da apresentação:

1

2  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

3  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)

4 Linguagens de programação de alto nível (LAN) cada vez mais poderosas e complexas 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

5  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

6  CISC: Complex Instruction Set Computers  Ou: Processadores com conjunto de instruções complexo  Em alguns processadores a quantidade de instruções ultrapassa 300

7  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

8  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

9  Um dos estudos mais famosos foi o de Knuth em 1971. Ele observou o comportamento de vários programas escritos em Fortran.

10  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)

11  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)

12  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

13  Algumas observações de Patterson

14

15  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

16  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)

17 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

18  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

19  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

20  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

21  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

22

23  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

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


Carregar ppt " 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."

Apresentações semelhantes


Anúncios Google