Você está na página 1de 48

Arquitetura e Organização de

Computadores II

Arquiteturas de Construção de
Processadores
CISC – RISC - EPIC

Prof. Nelmar P. Gomes 2009 1


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


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 2009 3


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 2009 4


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


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 2009 6


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


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


Freqüência Dinâmica Relativa
Ocorrência Instrução de Máquina Referência à Memória
Dinâmica (Média Ponderada) (Média Ponderada)
Comando Pascal C Pascal C Pascal C
Atribuição 45 38 13 13 14 15
Repetição 5 3 42 32 33 26
Chamada 15 12 31 33 44 45
Condicional 29 43 11 21 7 13
Desvio - 3 - - - -
Outros 6 1 3 1 2 1

Prof. Nelmar P. Gomes 2009 9


Operandos
 Grande ocorrência de variáveis escalares
simples
 Otimização é o mecanismo de
armazenamento e acesso a variáveis
escalares

Pascal C Média
Constante Inteira 16 23 20
Variável Escalar 58 53 55
Vetor/Registro 26 24 25
Prof. Nelmar P. Gomes 2009 10
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 2009 11


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


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 2009 13


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 2009 14


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


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 2009 16


Sobreposição de Janelas de
Registradores RISC

Prof. Nelmar P. Gomes 2009 17


Registradores RISC X Cache
CISC
 Grande Banco de Registradores  Cache
 Todas as variáveis escalares locais  Variáveis escalares locais
usadas recentemente
 Variáveis individuais  Blocos de memória
 Variáveis globais designadas pelo  Variáveis globais usadas
compilador recentemente
 Operações de  Operações de
salvamento/restauração baseadas salvamento/restauração
na profundidade de aninhamento baseadas no algoritmo de
de procedimentos substituição de cache
 Endereçamento de registrador  Endereçamento de memória

Prof. Nelmar P. Gomes 2009 18


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 2009 19
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 2009 20
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 2009 21


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 2009 22


Abordagem de Coloração de
Grafos

Prof. Nelmar P. Gomes 2009 23


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 2009 24
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 2009 25


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 2009 26


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 2009 27


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 2009 28
Effects of Pipelining

a) Execução seqüencial
b) Diagrama pipeline com dois caminhos

c) Diagrama de pipeline com três caminhos


c) Diagrama de pipeline com quatro caminhos
Prof. Nelmar P. Gomes 2009 29
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 2009 30


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 2009 31


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 2009 32


Arquitetura EPIC

Prof. Nelmar P. Gomes 2009 33


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 2009 34


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 2009 35
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 2009 36


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 2009 37


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 2009 38
Organização da Arquitetura
EPIC - Registradores

Prof. Nelmar P. Gomes 2009 39


Organização da Arquitetura
EPIC

Prof. Nelmar P. Gomes 2009 40


Instruções EPIC
Bundle de instruções

Formato das instruções

Tipos de instruções

Prof. Nelmar P. Gomes 2009 41


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 2009 42


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 2009 43


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 2009 44


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 2009 45


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 2009 46
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 2009 47


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

Prof. Nelmar P. Gomes 2009 48