03 - AOC II - Cisc - Risc - Epic
-
Upload
randerson-afonso -
Category
Documents
-
view
627 -
download
1
Transcript of 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
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)
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 1717
Sobreposição de Janelas de Registradores RISC
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
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
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
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
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
Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 2323
Abordagem de Coloração de Grafos
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
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
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)
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
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
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
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
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
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)
Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3333
Arquitetura 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)
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
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
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
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
Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 3939
Organização da Arquitetura EPIC - Registradores
Prof. Nelmar P. Gomes 2009Prof. Nelmar P. Gomes 2009 4040
Organização da Arquitetura 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
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.
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.
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.
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
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
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
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