COMPUTADORES COM UM CONJUNTO REDUZIDO DE …adao/COMPUTADORESRISC.pdf · compiladores tem sido...

24
1 COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES Adão de Melo Neto

Transcript of COMPUTADORES COM UM CONJUNTO REDUZIDO DE …adao/COMPUTADORESRISC.pdf · compiladores tem sido...

1

COMPUTADORES COM UM CONJUNTO

REDUZIDO DE INSTRUÇÕES

Adão de Melo Neto

2

INTRODUÇÃO Desde 1950, houveram poucas inovações significativas nas

áreas de arquitetura e organização de computadores. As

principais foram

– Conceito de Família de Computadores:

• IBM (sistema 360) em 1964 e DEC (1968).

– Unidade de controle microprogramada:

• sugerida por Wilkes, em 1961 e implementada pela IBM na linha S/360,

em 1964.

– Memória Cache

– Pipeline de Instruções

– Múltiplos processadores

3

COMPUTADORES RISC Arquitetura RISC.

– Uma 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 ou uso de tecnologia

de compilação na otimização do uso de registradores.

• Um conjunto de instruções simples e limitado

• Enfoque na otimização da pipeline de instruções

4

ARQUITETURA RISC

5

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

– Uma das evoluções mais evidentes em computação foi a invenção

das linguagens de programação.

– Houve um aumento no custo do software (devido ao limitado

número de programadores disponíveis pois uma vez que era difícil

programar nas linguagens alto nível existentes). Portanto, o

software além de caro era pouco confiável (apresentava muitos

erros).

– Resposta dos pesquisadores e da indústria

• Desenvolver linguagens de programação de alto nível cada vez mais

poderosas e complexas.

– 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 ( código em assembly).

6

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

7

Microprogramação 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

8

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

– Esses complexos conjuntos de instruções 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.

9

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)

– Operações realizadas:

10

Porque RISC ? Operações realizadas (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.

– Isto sugere que mecanismos de controle e sequenciamento de instruções é

importante.

– Conclusão: sabemos os comandos correspondentes em linguagem de

máquina usados com maior frequência e que portanto devem ser

implementados de maneira ótima.

11

Porque RISC ? Operações realizadas (comandos que consomem mais

tempo) – Os dados obtidos nas colunas 4 a 7 correspondem ao tempo efetivo gasto

na execução dos vários tipos de comandos.

– Isto sugere que as chamadas de procedimento consomem mais tempo na

execução de um programa típico em linguagem de alto-nível.

12

Porque RISC ? Chamadas de procedimentos (frequencia)

– 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 de procedimento, 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.

13

Porque RISC ? IMPLICAÇÕES

– 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 meio da 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.

14

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 gerado, 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 ou simbólica

(assembly) 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.

15

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.

16

COMPUTADORES RISC A arquitetura RISC caracteriza-se por 3 elementos:

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

17

COMPUTADORES RISC

– As arquiteturas possuem características comuns

• 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

18

COMPUTADORES 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)

19

COMPUTADORES RISC

– 2) Operações registrador para registrador

• Há apenas operações simples de CARGA e ARMAZENAMENTO para

acesso à memória.

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

• Isto simplifica o conjunto de instruções a unidade de controle.

• 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)

20

COMPUTADORES RISC

– 3) Uso de modos de endereçamento simples

• Quase todas as instruções usam modo de endereçamento simples por

registrador.

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

21

COMPUTADORES RISC

– 4) Formato de instruções simples

• Geralmente é usado apenas um formato de instrução ou um pequeno

número de formatos diferentes.

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

22

COMPUTADORES RISC

– Os principais benefícios de uma arquitetura .

• Compiladores otimizados podem ser desenvolvidos

pelo uso de instruções primitivas

• As maiorias das instruções geradas por um compilador

são simples

• A técnica pipeline pode ser aplicada com mais

• Com o advento de tecnologias LSI e VLSI uma única

pastilha pode conter um processador completo. É

difícil desenvolver um processador VLSI. Com um

conjunto reduzido de instruções isso fica mais fácil.

23

CISC x RISC

– Projetos RISC podem beneficiar-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

24