03 - AOC II - Cisc - Risc - Epic

48
Prof. Nelmar P. Gomes 2009 Prof. Nelmar P. Gomes 2009 1 1 Arquitetura e Organização de Computadores II Arquiteturas de Construção de Processadores CISC – RISC - EPIC

Transcript of 03 - AOC II - Cisc - Risc - Epic

Page 1: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 11

Arquitetura e Organização de Computadores II

Arquiteturas de Construção de Processadores

CISC – RISC - EPIC

Page 2: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 22

Maiores Avanços em Computadores (1)� O conceito de família

� IBM Sistema/360 – 1964 => Sistema Z/11.1� DEC PDP-8� Diferentes implementações da mesma arquitetura

� Unidade de controle microprogramada� Sugerida por Wilkes - 1951� Produzida pela IBM na linha S/360 - 1964

� Memória Cache� IBM S/360 modelo 85 – 1968 (comercialmente)

Page 3: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 33

Maiores Avanços em Computadores (2)

� Microprocessadores� Intel 4004 1971

� Pipeline� Introdução do paralelismo na natureza

seqüencial de programas em linguagens de máquina

� Múltiplos processadores

Page 4: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 44

O Próximo Passo - RISC� RISC - Reduced Instruction Set Computer

� Elementos básicos� Grande número de registradores de propósito

geral ou uso de tecnologias de compilação na otimização do uso de registradores.

� Conjunto de instruções simples e limitado� Enfoque na otimização da pipeline de instruções

Page 5: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 55

Força dirigida para CISC� CISC - Complexed Instruction Set Computer� Custo de software excedeu o custo de hardware� Desenvolvimento de linguagens de alto nível (HLL)� Gap semântico

� Distância semântica entre as operações disponíveis em HLL e as operações disponibilizadas pelo hardware

� A solução:� Grandes conjuntos de instruções� Mais modos de endereçamento� Implementação de diversos comandos de HLL no hardware

Page 6: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 66

Objetivos do CISC� Facilitar a tarefa de desenvolver compiladores

� Melhorar a eficiência da execução de programas� Operações complexas em micro-código

� Oferecer suporte para HLLs mais complexos

Page 7: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 77

Características de Execução� Operações realizadas� Operandos usados� Organização das instruções para execução� Estudos foram feitos baseados em programas

escritos em HLLs� Resultados são baseados em medições

dinâmicas, coletadas durante a execução de programas.

Page 8: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 88

Operações� Comando predominante (Atribuição)

� Transferência de dados

� Comando condicionais (IF, LOOP)� Controle do seqüenciamento de instruções

� Chamada/Retorno de Procedimento é que consome mais tempo em programas em HLL

� Algumas instruções em HLL executam muitas operações em código de máquina

Page 9: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 99

Freqüência Dinâmica RelativaOcorrência Instrução de Máquina Referência à MemóriaDinâmica (Média Ponderada) (Média Ponderada)

Comando Pascal C Pascal C Pascal CAtribuição 45 38 13 13 14 15Repetição 5 3 42 32 33 26Chamada 15 12 31 33 44 45Condicional 29 43 11 21 7 13Desvio - 3 - - - -Outros 6 1 3 1 2 1

Page 10: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 1010

Operandos� Grande ocorrência de variáveis escalares

simples� Otimização é o mecanismo de

armazenamento e acesso a variáveis escalares

Pascal C MédiaConstante Inteira 16 23 20Variável Escalar 58 53 55Vetor/Registro 26 24 25

Page 11: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 1111

Chamadas de Procedimentos� Consomem muito tempo

� Depende do número de parâmetros passados

� Depende do nível de aninhamento

� Mais variáveis locais

Page 12: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 1212

Implicações� Suporte mais eficaz para HLLs obtido pela

otimização do desempenho das características responsáveis por maior consumo de tempo de execução

� Maior número de registradores� Referência a operando

� Cuidado no projeto de Pipeline de instruções� Alta taxa de desvios condicionais

� Conjunto Simplificado(reduzido) de instruções

Page 13: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 1313

Grande Banco de Registradores RISC� Solução de Software

� Requer que o compilador aloque os registradores� Alocação baseada nas variáveis mais usadas em

um determinado período de tempo� Uso de algoritmos sofisticados de análise de

programas

� Solução de Hardware� Maior quantidade de registradores� Mais variáveis armazenadas em registradores por

um maior período de tempo

Page 14: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 1414

Registradores para Variáveis Locais RISC

� Armazena variáveis escalares locais em registradores

� Reduz o acesso à memória� Problema que chamadas de procedimentos

(funções) mudam de local� Parâmetros devem ser passados para o

procedimento chamado� Resultados devem ser passados do

procedimento para o programa que o chamou

Page 15: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 1515

Janelas de Registradores RISC

� Somente poucos parâmetros� Faixa relativamente estreita de

chamadas� Uso de vários conjuntos pequenos de

registradores� Chamadas são guardadas em conjuntos

diferentes de registradores

Page 16: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 1616

Janelas de Registradores RISC cont.� Três áreas para cada conjunto de

registradores� Registradores de Parâmetros� Registradores Locais� Registradores Temporários� Registradores temporários de um nível são,

fisicamente, os mesmos que os registradores de parâmetro do próximo nível inferior

� Essa sobreposição permite a passagem de parâmetros sem a movimentação real de dados

Page 17: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 1717

Sobreposição de Janelas de Registradores RISC

Page 18: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 1818

Registradores RISC X CacheCISC

� Grande Banco de Registradores� Todas as variáveis escalares locais

� Variáveis individuais� Variáveis globais designadas pelo

compilador� Operações de

salvamento/restauração baseadas na profundidade de aninhamentode procedimentos

� Endereçamento de registrador

� Cache� Variáveis escalares locais

usadas recentemente� Blocos de memória� Variáveis globais usadas

recentemente� Operações de

salvamento/restauração baseadas no algoritmo de substituição de cache

� Endereçamento de memória

Page 19: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 1919

Otimização do Uso de Registradores baseada em Compiladores

� Assume um pequeno número de registradores (16-32)

� Otimização do uso de registradores éresponsabilidade do compilador

� Programa em HLL não contém referência explícita a registradores� geralmente – linguagem C – registrador int

� Alocação em registradores simbólicos ou virtuais para cada variável candidata

� Compilador mapeia um número ilimitado de registradores simbólicos para um número fixo de registradores reais

Page 20: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 2020

Otimização do Uso de Registradores baseada em Compiladores - cont

� Registradores simbólicos cujos usos não se sobrepõem podem compartilhar um mesmo registrador real

� Se parte do programa manipular uma quantidade de dados maior que o número de registradores reais, alguns desses dados são armazenados em memória

Page 21: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 2121

Otimização do Uso de Registradores baseada em Compiladores - cont

� A questão fundamental da tarefa de otimização é decidir quais dados devem ser alocados em registradores em cada ponto da execução do programa

� A técnica mais usada em compiladores RISC é conhecida como coloração de grafos

� Originalmente desenvolvida na disciplina de topologia

Page 22: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 2222

Coloração de Grafos� Dado um grafo constituído de nós e arestas� Atribuir cores aos nós � Nós adjacente devem ter cores diferentes� Use o mínimo de cores diferentes� Nós são os registradores simbólicos� Se dois registradores estão ativos durante um mesmo

trecho de um programa, eles são conectados por uma aresta, que representa uma interferência entre eles

� Procura-se colorir o gráfico com n cores onde n é o número de registradores reais

� Nós que não puderem ser coloridos devem ser alocados em memória

Page 23: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 2323

Abordagem de Coloração de Grafos

Page 24: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 2424

Por que CISC? (1)� Simplificação de Compiladores?

� Disputa… (instruções de máquina X linguagens de alto nível)

� Instruções de máquina complexas difíceis de explorar� Dificuldade de otimizar o código gerado

� Programas Menores?� Programas consomem menor espaço de memória,

mas…� Memória atualmente é barata� Portanto, a vantagem mais importante é contribuir

para melhorar o desempenho

Page 25: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 2525

Por que CISC? (2)

� Programas Rápidos?� Favorecem o uso de instruções simples� Unidade de controle mais complexa� Memória de controle de micro-programa maior� Qualquer desses fatores aumenta o tempo de

execução de instruções simples

� Isto está mostrando claramente que CISC é uma solução apropriada

Page 26: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 2626

Características RISC

� Uma instrução por ciclo� Operações de Registrador para registrador� Modos de endereçamento simples� Formatos de instruções simples (tamanho

fixo)� Projetado diretamente no hardware (sem

micro-código)

Page 27: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 2727

RISC x CISC

� Não existe vantagem clara� Muitos projetos atualmente se

incorporam das duas tecnologias� Exemplo: PowerPC e Pentium II

Page 28: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 2828

Pipelining RISC� Maioria das instruções são registrador para registrador� Duas fases de execução:

� I: Busca de instrução� E: Execução

� Realiza uma operação da ULA, com entrada e saída em registradores

� Para carga e armazenamento� I: Busca de Instrução� E: Execução

� Cálculo do Endereço de Memória� D: Memória

� Operação de registrador para memória ou memória para registrador

Page 29: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 2929

Effects of Pipelining

a) Execução seqüencial

c) Diagrama de pipeline com três caminhos

b) Diagrama pipeline com dois caminhos

c) Diagrama de pipeline com quatro caminhos

Page 30: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3030

Controvérsia RISC (1)

� Quantitativos� Comparam tamanho e velocidade de

execução de programas em máquinas RISC e CISC que usem tecnologia comparável

� Qualitativos� Examinam questões tais como suporte a

HLL e uso ideal da tecnologia VLSI

Page 31: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3131

Controvérsia RISC (2)� Problemas ao se fazer as comparações

� Não existe um para de máquinas RISC e CISC comparáveis� Em termos de ciclo de vida, custo, nível de tecnologia, complexidade

de circuito, suporte de S.O. ...

� Não existe um conjunto de programas de teste definitivo� Dificuldade me separar efeitos do hardware e efeitos

devidos ao desenvolvimento de compiladores� A maioria das análises comparativas em máquinas RISC

foram feitas em máquinas “experimentais” e não em produtos comerciais

� Grande parte das máquinas comerciais RISC, Têm uma mistura de tecnologias RISC e CISC

Page 32: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3232

Arquitetura EPIC� Os processadores EPIC são descritos

pelo próprio fabricante (Intel) como processadores de alto desempenho

� Destinados a equipar servidores� para uso em sistemas comerciais de larga

escala� ou aplicações técnicas que exigem alto

desempenho (High Performance Computing)

Page 33: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3333

Arquitetura EPIC

Page 34: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3434

Arquitetura EPIC� Resultado da colaboração entre Intel e HP� Início em 94 nos laboratórios da HP� Produto final a família de processadores

Itanium� Este processador é o segundo de uma linha

anteriormente denominada pela Intel como IA-64

� A arquitetura recebeu o nome de EPIC, (Explicitly Parallel Instruction Computing)

Page 35: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3535

Arquitetura EPIC

� Consiste de uma coleção de novas idéias que vão muito além da largura de dados de 64 bits

� Estes novos conceitos foram aplicados numa abordagem do tipo “começar de novo” ao projeto do microprocessador, mas que ainda manteve um elo com os respectivos legados de Intel e HP

Page 36: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3636

Arquitetura EPIC

� Provê compatibilidade binária com o conjunto de instruções IA-32

� Inclui suporte para executar uma mistura de aplicações IA-32 e aplicações IA-64 Itanium em SOs baseados em Itanium

Page 37: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3737

Arquitetura EPIC� Os conceitos básicos da arquitetura são:

� Paralelismo de nível de instrução explícito nas instruções de máquina, ao invés de ser determinado pelo processador no momento da execução

� Palavras de instrução longas ou muito longas (LIW / VLIW)

� Predicação de desvio (não é o mesmo que previsão de desvio)

� Carga especulativa

Page 38: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3838

Organização da Arquitetura EPIC

� Grande número de registradores� 128 registradores

� para números inteiros, valores lógicos e uso geral

� 128 registradores � de ponto flutuante e uso gráfico

� 64 registradores de predicado� de 1 bit

� Múltiplas unidades de execução� Máquina comercial típica provê 4 pipelines paralelas� A arquitetura IA-64 é implementada com 8 ou mais

unidades

Page 39: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3939

Organização da Arquitetura EPIC - Registradores

Page 40: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 4040

Organização da Arquitetura EPIC

Page 41: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 4141

Instruções EPIC

Bundle de instruções

Formato das instruções

Tipos de instruções

Page 42: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 4242

Características do Conjunto de Instruções

� Paralelismo Explícito:� Mecanismos de sinergia (esforço

simultâneo) entre o compilador e o processador;

� Recursos massivos para tomar vantagem do paralelismo no nível de instrução;

� Suporte para várias unidades de execução e portas de memória.

Page 43: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 4343

Características do Conjunto de Instruções� Características que aumentam o

paralelismo no nível de instrução:� Especulação (o que minimiza o impacto da

latência de memória);� Predication (que remove branches);� Pipeline de software para loops (com baixo

overhead);� Predição de branches para minimizar o

custo dos branches.

Page 44: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 4444

Características do Conjunto de Instruções

� Melhorias focadas no aumento da performance de software:� Suporte especial para modularidade de

software;� Alta performance na arquitetura de ponto

flutuante;� instruções específicas de multimídia.

Page 45: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 4545

Predicação de Desvio� Diferente de previsão de desvio

� Técnica em que o compilador determina quais instruções podem ser executadas em paralelo

� Compilador elimina desvios do programa utilizando execução condicional� Exemplo: Em linguagem de alto nível o uso de if-then-else

Page 46: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 4646

Carga Especulativa� Habilita o processador a carregar dados da

memória antes que sejam necessários no programa

� Evita atrasos de latência de memória� Adia o relato de exceções, até que isso seja

necessário� É usado o termo hoist (içar) para se referir à

mudança de posição de uma instrução de carga para um ponto anterior no fluxo de instruções

Page 47: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 4747

Leitura Complementar� Stallings, Willian– Arquitetura e Organização de Computadores –

5ed. São Paulo: Makron Books, 2002. Capítulo 12 � IMPACT: Página da Universidade de Illinois, onde existem

diversos artigos sobre o assunto� Intel Corporation; “Intel Itanium Architecture Software

Developer's Manual. Volume 1: Application Architecture”; Revision 2.1; Oct 2002

� Intel Corporation; "Intel Itanium2 Processor Hardware Developer's Manual"; Aug 2002

� Intel Corporation, “Intel Itanium2 Processor Reference Manual for Software Development and Optimization”; Oct 2002

Page 48: 03 - AOC II - Cisc - Risc - Epic

Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 4848

Leitura Complementar� “EPIC: Explicitly Parallel Instruction Computing”, Michael S.

Schlansker and B.Ramakrishna Rau, Computer, Feb 2000.� Hewlett Packard Technical White Paper, “Inside the Intel

Itanium2 Processor: an Itanium Processor Family member for balanced performance over a wide range of applications”; July 2002