Arquiteturas RISC e CISC - ime.usp.bradao/COMPUTADORESRISC2018.pdf · RISC e CISC Adão de Melo...

Post on 09-Nov-2018

233 views 2 download

Transcript of Arquiteturas RISC e CISC - ime.usp.bradao/COMPUTADORESRISC2018.pdf · RISC e CISC Adão de Melo...

1

Arquiteturas RISC e CISC

Adão de Melo Neto

2

Arquitetura RISC Arquitetura RISC.

– É um das inovações mais importantes e interessantes.

– RISC significa uma arquitetura com um conjunto reduzido de instruções (“Reduced Instruction Set Computer”).

– A maioria dos projetos RISC compartilham os seguintes elementos básicos:• Grande número de registradores de propósito geral.• Um conjunto de instruções simples e limitado• Enfoque na otimização da pipeline de instruções

3

Arquitetura RISC

4

Porque CISC ? Características da execução de instrução

– Uma das evoluções em computação foi a invenção das linguagens de programação. Na época, o custo do software era elevado, devido ao limitado número de programadores disponíveis uma vez que era difícil programar nas linguagens alto nível existentes. O software além de caro era pouco confiável, devido esta dificuldade.

– Resposta dos pesquisadores e da indústria • Desenvolver linguagens de programação de alto nível cada vez mais poderosas e

complexas, facilitando o desenvolvimento dos softwares.

– Novo problema que surge (o gap semântico)• A distância semântica entre as operações disponíveis em linguagem de alto-nível e as

operações disponibilizadas pelo hardware dos computadores (linguagem de máquina).

5

Porque CISC ? Características da execução de instruções

– Resposta ao problema (do gap semântico)

• Desenvolvimento de arquiteturas que diminuíssem a distância entre as instruções de linguagens de alto nível e as instruções de máquina (em assembly), ou seja uma arquitetura com grande número de instruções em assembly, parecidas com as instruções em alto nível

– As característica destas arquiteturas incluem:

• Grande conjunto de instruções

• Muitos modos de endereçamento.

• Uso intensivo da microprogramação

6

LINGUAGEM DE MÁQUINA x MICROPROGRAMA Microprogramação

– É uma linguagem específica da máquina, capaz de executar um conjunto específico de instruções em linguagem de máquina.

– O processador tem alguma memória embutida (tipicamente ROM) que contém grupos de instruções de microcódigo. Quando uma instrução em linguagem de máquina chega ao processador central, o processador executa a série correspondente de instruções em microcódigo.

Linguagem de máquina (linguagem assembly)– É a linguagem binária que pode ser executada diretamente pela unidade de controle.

UC

7

Porque CISC ? Esses complexos conjuntos de instruções (em linguagem de máquina)

tinham o seguinte objetivo:

– Facilitar o desenvolvimento de compiladores– Melhorar a eficiência na execução de programas, com a

implementação de sequencia de operações em microcódigo– Oferecer suporte para linguagens de alto nível cada vez mais

complexas. No entanto, enquanto isso ..... eram realizados estudos para determinar as

características e os padrões de execução de instruções de máquinas geradas por linguagens de alto nível.

8

Porque RISC ? Para entender a linha de raciocínio adotada pelos

defensores do RISC vamos examinar a características da execução de instruções em linguagem de alto-nível (aspectos que devem ser examinados)

9

Comportamento de programas em linguagem de alto-nível

COMANDOS MAIS FREQUENTES– Vários estudos foram realizados para analisar o comportamento de programas de alto-nível.

• O tipo de comando predominante é o de atribuição:– Isto sugere que a transferência de dados simples são de grande importância.

• Existe grande predominância de comandos condicionais e laços de repetição (IF , LOOP):– São implementados em linguagem de máquina que utilizam algum tipo de comparação e

instruções de desvio

10

COMANDOS QUE CONSOMEM MAIS TEMPO– A chamadas de procedimento consomem mais tempo na execução de um programa típico em linguagem de alto-nível.

Comportamento de programas em linguagem de alto-nível

11

FREQUENCIA DAS CHAMADAS DE PROCEDIMENTO– São bastante comuns nas linguagens de alto-nível.

• Isto sugere que estas operações são as que consomem mais tempo de execução de código obtido pela compilação de programas.

– Em 98% das chamadas, o número de argumentos é inferior a 6.

– Em 92% das chamadas de procedimento são utilizadas menos que seis variáveis locais.– É raro ocorrer longa sequencia de chamadas e retorno de procedimentos.

Comportamento de programas em linguagem de alto-nível

12

Porque RISC ? Conclusão dos defensores da Arquitetura RISC

– A tentativa da construção de uma arquitetura com conjunto de instruções mais próxima das linguagens de alto-nível não era a estratégia mais efetiva. e sim por a otimização do desempenho das características responsáveis pelo maior consumo de tempo de execução de programas típicos em linguagens de alto nível.

13

Porque RISC ? O argumento de que A CISC contribui para simplificação dos compiladores

tem sido combatido pelo projetistas de arquitetura RISC.– Instruções de máquina complexas são difíceis de serem utilizadas. Como prova disso, a

maioria dos códigos gerados por um compilador são simples e não complexas.– Fica mais difícil otimizar o código em linguagem de máquinagerado, para reduzir seu

tamanho, o número de instruções executadas e o desempenho do pipeline de instruções.

A suposição de que na arquitetura CISC deve produzir programas menores e mais baratos tem sido combatido pelo projetistas de arquitetura RISC..– Um programa CISC expresso em linguagem de máquina pode ter um menor número de

instruções, mas o número de bits de memória que ocupa pode não ser significativamente menor.

14

Porque RISC ? Outra suposição é a de que na arquitetura CISC a execução de

instruções seria mais rápida. Os compiladores para arquiteturas CISC tendem a favorecer instruções mais simples e portanto isso pode não ser verdade.

15

Arquitetura RISC A arquitetura RISC toma como premissa que o desempenho pode ser

melhorado com:

– a redução do número de referência à memória, a custa de uma grande número de referência a registradores.

• Por isso o grande número de registradores, ou técnicas de compilação que otimize o uso de registradores.

– Cuidadosa atenção ao uso de pipeline de instruções.

• Devido a alta taxa de instrução de desvio condicional e chamadas de procedimentos.

– Uso de um conjunto reduzido de instruções

• Conclusão ainda não tão óbvia.

16

Arquitetura RISC

– As arquiteturas possuem as seguintes características

1) Uma instrução por ciclo

2) Operações de registrador para registrador.

3) Modos de endereçamento simples

4) Formatos de instrução simples

17

Arquitetura RISC– 1) Uma instrução por ciclo de máquina

• Ciclo de máquina é o tempo para buscar dois operandos em registradores, executar uma operação da ULA e armazenar o resultado em um registrador.

• As instruções podem ser executadas diretamente pelo hardware da máquina (existe pouco ou nenhuma necessidade de uso de microcódigo)

18

Arquitetura RISC

– 2) Operações de registrador para registrador• No que se refere ao acesso à memória (que demanda tempo) há apenas

operações simples de CARGA (memóriaprocessador) e ARMAZENAMENTO (processador memoria).

• Isso encoraja a otimização do uso de registradores.• Exemplos:

– O VAX possui 25 tipos de instruções ADD diferentes– Em uma arquitetura RISC existe apenas 01 ou 02 instruções ADD

RISC (SPARC)CISC (VAX)

19

Arquitetura RISC

– 3) Uso de modos de endereçamento simples• Quase todas as instruções usam modo de endereçamento direto por

registrador. Isso simplifica o conjunto de instruções e a unidade de controle

20

Arquitetura RISC

– 4) Formato de instruções simples• Geralmente é usado apenas um formato de instrução ou um pequeno

número de formatos diferentes.

• Exemplo SUB X (ACC = ACC –X) apenas ao invés de diversos variantes como SUB X,Y ( X = X-Y) e SUB X,Y,Z ( X = Y-Z)

• Isso simplifica o conjunto de instruções e a unidade de controle

21

Arquitetura RISC

– Os principais benefícios da arquitetura .• Compiladores otimizados podem ser desenvolvidos.

• As maiorias das instruções geradas por um compilador são simples e com isso a técnica pipeline pode ser aplicada com mais frequência

• Com o advento de tecnologias LSI e VLSI uma única pastilha pode conter um processador completo. Como [e ifícil desenvolver um processador VLSI, o conjunto reduzido de instruções facilita este processo.

• Uso de UC controlada por hardware ao invés de por micro instruções.

22

CISC x RISC

– Projetos RISC beneficiam-se da inclusão de algumas características RISC (e vice-versa).

– Não existe RISC ou CISC puro atualmente.• O PENTIUM inclui algumas características RISC• O Power PC inclui algumas características CISC

CISC x RISC

23