dap.s98 1 disciplina: arquiteturas e redes de computadores parte 1: arquitetura bibliografia...
TRANSCRIPT
DAP.S98 1
DISCIPLINA:Arquiteturas e Redes de Computadores
PARTE 1: Arquitetura
Bibliografia
Principal:John L. Hennessy & David A. Patterson – Computer Architecture – A Quantitative Approach, 4th Ed., Morgan Kaufmann Publishers, USA, 2007.Tradução – Editora Campus
Complementar: David A. Patterson & John L. Hennessy – Computer Organization & Design – The Hardware/Software Interface, 3rd Ed., Morgan Kaufmann Publishers, USA, 2005.Tradução – Editora Campus
DAP.S98 2
AVALIAÇÃO
• 1 prova de suficiência
• 1 prova no meio do semestre
• 1 prova no fim do semestre
• (o conceito final é a média com o conceito relativo à matéria de redes)
DAP.S98 3
Aula 1: Tecnologias, Medida de desempenho,
Arquiteturas Básicas
DAP.S98 4
Os laptops de hoje são melhores que os supercomputadores de 1970
1970’s: máquinas comerciais - mainframes & minicomputadores
1980’s: computadores pessoais, mainframes maiores
1990’s: laptop & handheld, supercomputadores usando microprocessadores
2000’s: 3 segmentos dominantes desktop (com pequenas diversidades) servidores (moderadamente diferentes) móveis e embarcados (enorme diversidade)
DAP.S98 5
Quadro comparativo: Desktop, servidores, móveis e
embarcados
DAP.S98 6
Tendências Tecnológicas(Resumo)
Largura de banda latência
Lógica 2x em 3 anos 1/2 em 3 anos
DRAM 4x em 3 anos 1/2 em 10 anos
Disco 4x em 3 anos 1/2 em 10 anos
Largura de banda (bandwidth) ou throughtput é a quantidade total de trabalho feito em determinado tempo (ex. Megabytes por segundo).
Latência, ou tempo de resposta, é o tempo entre o início e o fim de um evento como milisegundos para um acesso ao disco.
DAP.S98 7
Gráfico da melhora de largura de banda versus latência
DAP.S98 8
Evolução dos processadores Intel x86 (IA-32)
DAP.S98 9
Evolução da memória
DAP.S98 10
Evolução da tecnologia de redes
DAP.S98 11
Evolução da tecnologia de discos rígidos (magnéticos)
DAP.S98 12
Tendências na alimentação dos circuitos integrados
• A energia é dissipada em forma de calor e precisa ser removida
• Para os chips CMOS o consumo de energia tem sido na comutação de transistores (alimentação dinâmica):
Logo a potência e a energia dinâmica são bastante diminuídas reduzindo-se a voltagem, logo as voltagens caíram de 5V a pouco mais de 1V em 20 anos.
DAP.S98 13
Exemplo
• Alguns microprocessadores são projetados para ter voltagem ajustável de modo que uma redução de 15% na voltagem pode resultar em uma redução de 15% na frequência. Qual seria o impacto sobre a potência dinâmica?
• Resposta: como a capacitância é inalterada, a resposta é a razão das voltagens e frequências:
portanto a potência reduz para 60% da original.
DAP.S98 14
Custo de circuito integrado
AMD Opteron
Wafer de 300 mm contem 117 chips em um processo de 90 nm
DAP.S98 15
Custo de circuito integrado
é um parâmetro que corresponde à medida de complexidade de fabricação. Para os processos CMOS em 2006, uma boa estimativa = 4.
DAP.S98 16
Evolução do desempenho de CPUs (tendências)
1978
dese
mpe
nho
1990 2000
0
10
100
1000
10.000
25%/ano
52%/ano
20%/ano
dissipação pequeno paralelismo a ser exploradolatência de memória
crescimento apenas com a tecnologia de chips
crescimento com a melhoria da arquitetura e organização
DAP.S98 17
DAP.S98 18
Tópicos de Arquitetura de Computadores
Arquitetura de Instruções
Pipeline, solução para conflitos,Superescalar, Reordenamento, Previsão, Especulação,Vetor, DSP
Endereçamento,Proteção,Manipulação de exceção
L1 Cache
L2 Cache
DRAM
discos, fitas
Coerência,Bandwidth,Latência
Tecnologias emergentes“Interleaving”Protocolos de Dutos
RAID
VLSI
Armazenamento e Entrada/Saída
Hierarquia de Memória
Paralelismo ao nível de instruções
DAP.S98 19
Tópicos de Arquitetura de Computadores
M
Rede de InterconexõesS
PMPMPMP° ° °
Topologias,Roteamento,“Bandwidth”,Latência,Confiabilidade
Interface de Rede
Memória Compartilhada,Passagem de MensagemParalelismo de Dados
Chaveamento -Processador-Memória
Multiprocessadores, multicores,paralelismo ao nível de thread,paralelismo ao nível de dados,redes e Interconexões
DAP.S98 20
Desempenho (e Custo)
• Tempo para rodar uma tarefa (TempoEx)– Tempo de Execução, tempo de resposta, latência
• Tarefas por dia, hora, semana, segundo, ns … (Desempenho)
– Throughput, bandwidth
DAP.S98 21
Desempenho (e Custo)
"X é n vezes mais rápido que Y" significa
TempoEx(Y) Desempenho(X)
--------- = ---------------TempoEx(X) Desempenho(Y)
TempoEx = tempo de execução
DAP.S98 22
Lei de AmdahlMostra como calcular o speedup devido a uma melhoria E: TempoEx sem E Desempenho com ESpeedup(E) = ------------- = ------------------- TempoEx com E Desempenho sem E
TempoEx – tempo de execução
Supor que a melhoria E acelera uma fração F da tarefa por um fator S, e que o restante da tarefa não seja afetada
parte a melhorar
DAP.S98 23
Lei de Amdahl
TempoExnovo = TempoExvelho x (1 - Fraçãomelhorada) + Fraçãomelhorada
Speedupglobal =TempoExvelho
TempoExnovo
Speedupmelhorada
=1
(1 - Fraçãomelhorada) + Fraçãomelhorada
Speedupmelhorada
Speedupmelhorada Speedup da fração melhorada
DAP.S98 24
Lei de Amdahl
• Instruções de ponto flutuante são melhoradas para rodar 2X mais rápido; mas apenas 10% das instruções são FP
Speedupglobal =
TempoExnovo =
DAP.S98 25
Lei de Amdahl
• Instruções de ponto flutuante são melhoradas para rodar 2X mais rápido; mas apenas 10% das instruções são FP
Speedupglobal = 1
0.95= 1.053
TempoExnovo = TempoExvelho x (0.9 + 0.1/2) = 0.95 x TempoExvelho
DAP.S98 26
Medidas de desempenho
Compilador
Linguagem de Programação
Aplicação
Fluxo de dadosControle
Transistores Fios Pinos
ISA
Unidades funcionais
(milhões) de Instruções por segundo: MIPS(milhões) de operações FP por segundo: MFLOP/s
Ciclos por segundo (taxa de clock)
Megabytes por segundo
Respostas por mêsOperações por segundo
DAP.S98 27
Cálculo do tempo de CPU (em segundos)
Tempo CPU = Segundos = Instruções x Ciclos x Segundos
Programa Programa Instrução Ciclo
Tempo CPU = Segundos = Instruções x Ciclos x Segundos
Programa Programa Instrução Ciclo
Tempo em segundos para a execução do programa =
Número de instruções do programa x
Número de ciclos por instrução (CPI) x
Tempo em segundos de um ciclo, ou período de um ciclo
DAP.S98 28
CPI - Ciclos Por Instrução médio
Tempo CPU = Tempo Ciclo * CPI * Ii = 1
n
i i
CPI = CPI * F onde F = I i = 1
n
i i ii
Num. Instruções
I i = número de instruções da classe i
Fi = fração de Instruções da classe i
CPI = (Tempo CPU * Freqüência de Clock) / Num.Instruções = Num.Ciclos / Num.Instruções
“CPI - Ciclos por Instrução médio”
“CPIi - Ciclos por Instrução da classe i ”
DAP.S98 29
Exemplo: Calcular CPI
Mix Tipico
Maquina Base
Op Fração CPIi prod. (% Tempo)
ALU 0.5 1 .5 (33%)
Load 0.2 2 .4 (27%)
Store 0.1 2 .2 (13%)
Branch 0.2 2 .4 (27%)
CPI = 1.5
DAP.S98 30
BENCHMARKS - Programas para avaliação de desempenho
Ex: SPEC - System Performance Evaluation Cooperative • Primeiro turno em 1989
– 10 programas produzindo um único número (“SPECmarks”)
• Segundo turno em 1992– SPECInt92 (6 programas em inteiros) e SPECfp92 (14 programas
em ponto flutuante)
• Terceiro turno em 1995– Novo conjunto de programas: SPECint95 (8 programas em
inteiros) e SPECfp95 (10 programas em ponto flutuante)
• Quarto e quinto turno em 2000 e 2006, atualizando o conjunto de programas anteriores
DAP.S98 31
SPEC CPU2006
• CINT2006 para medir e comparar o desempenho de processamento de inteiros, e
(http://www.spec.org/cpu2006/CINT2006/)
• CFP2006 para medir e comparar o desempenho de processamento ponto-flutuante.
(http://www.spec.org/cpu2006/CFP2006/)
DAP.S98 32
Instruction Set Architecture (ISA)
instruction set
software
hardware
DAP.S98 33
Evolução do conjunto de instruçõesAcumulador único (EDSAC 1950)
Acumulador + Regs. Indice(Manchester Mark I, IBM 700 series 1953)
Separação do Modelo de Programação da Implementação
Baseado na linguagem de alto-nível Conceito de família(B5000 1963) (IBM 360 1964)
Máquinas com Registradores de Propósito Geral
Conjunto Complexo de Instruções Arquitetura Load/Store
RISC
(Vax, Intel 432 1977-80) (CDC 6600, Cray 1 1963-76)
(Mips,Sparc,HP-PA,IBM RS6000, . . .1987)
DAP.S98 34
Evolução do conjunto de Instruções
• Os avanços importantes na arquitetura de computadores são tipicamente associados aos marcos no projeto do conjunto de instruções
– Ex: Pilhas vs Registradores de Uso Geral (System 360)
• As decisões de projeto devem levar em conta:– Tecnologia
– Organização de máquina
– Linguagens de programação
– Tecnologia de compilador
– Sistemas operacionais
• E essas decisões, por seu lado, os influenciam
DAP.S98 35
Tipos de arquiteturas do conjunto de instruções quanto ao uso de
operandos em instruções aritméticas
a) pilha
b) acumulador
c) registrador-memória
d) registrador-registrador
DAP.S98 36
PILHA
PROCESSADOR
MEMÓRIA
pilha
Operandos são elementos de uma pilha
DAP.S98 37
ACUMULADOR
MEMÓRIA
PROCESSADOR
acumulador
memória
O operando implícito é o conteúdo do acumulador.
O operand explícito é um elemento de memória
DAP.S98 38
REGISTRADOR-MEMÓRIA
PROCESSADOR
MEMÓRIA
registrador
memória
operandos
Os operandos podem ser de registradores ou de memória
DAP.S98 39
REGISTRADOR-REGISTRADOR(LOAD-STORE)
PROCESSADOR
MEMÓRIA
Operandos load
store
registradorregistrador
Os operandos são de registradores
DAP.S98 40
Número de operandos de memória
Operandos de memória em instruções aritméticas típicas
Máximo de operandos em instruções aritméticas
Exemplos
0 2
3
IBM RT-PC
SPARC, MIPS, HP-PA, Power-PC, ALPHA
1 2
3
PDP-10, M6800, IBM360, INTEL 80X86
IBM360RS
2 2
3
PDP-11, National 32x32, IBM-360SS, VAX
NEC S1
3 3 VAX
(m,n) onde m = operando de memória, n = total de operandos
DAP.S98 41
RISC puro
Vantagens: codificação de instrução simples de comprimento fixo
decodificação simples desde que haja poucos tipos de instrução modelo simples de geração de código
CPI de instruções tendem a ser uniforme exceto para instruções de memória mas existem apenas: load e store
Desvantagens: número de instruções num programa tende a ser alto
algumas instruções são curtas – perdendo bits de instrução
(0,3) Registrador-Registrador
DAP.S98 42
Risc evoluído e também CISC antigo novas máquinas RISC capazes de realizar loads especulativos
Instruções de ALU Registrador – Memória
Vantagens:• acesso de dados de memória, sem instrução de carga anterior• formato de instrução é relativamente simples• densidade de código é melhorado sobre o modelo (0,3)
Desvantagens:• operandos não são equivalentes – operando fonte pode ser destruído• a necessidade de campo de endereço de memória pode limitar o número de registradores• CPI varia (se a palavra de memória estiver no cache L0, não tão ruim)
(1,2) Registrador-Memória
DAP.S98 43
Modelo de CISC complexo • atualmente ( e provavelmente para sempre) extinto• ações mais complexas de memórias são possíveis,
mas não diretamente ligadas à ALU
Vantagens:• mais compacto• não usa registradores para valores temporários
( boa idéia para dados como “streaming media”)
Desvantagens:• grande variação no tamanho de instrução • grande variação no CPI• agrava o gargalo de memória
(3,3) Memória-Memória
DAP.S98 44
Modos de endereçamento
Um aspecto importante para o projeto de um ISA
• tem impacto na complexidade do hardware (HW)
• a complexidade do HW afeta o CPI e o tempo de ciclo
• endereço usado = endereço efetivo
• endereço efetivo pode ser para a memória ou registradores - tipicamente dependente da posição na instrução - em alguns modos, múltiplos campos são combinados - endereçamento de registradores são mais simples
DAP.S98 45
Modos típicos de endereçamento
modo exemplo significado usoregistrador Add R4,R3 Regs[R4] Regs[R4] +
Regs[R3]Todas as operações de ALU RISC
imediato Add R4,#3 Regs[R4] Regs[R4] + 3 Para pequenas constanes
deslocamento Add R4, 100(R1) Regs[R4] Regs[R4] + Mem[100+Regs[R1]]
Para acesso a variáveis locais
Indireto por registrador
Add R4, (R1) Regs[R4] Regs[R4] + Mem[Regs[R1]]
apontadores
Indexado Add R3, (R1+R2) Regs[R3] Regs[R3] + Mem[Regs[R1]+Regs[R2]]
Acesso a vetores: R1 é a base e R2 o índice
Direto ou absoluto
Add R1, (1001) Regs[R1] Regs[R1] + Mem[1001]
DAP.S98 46
Modos típicos de endereçamento (cont.)
modo exemplo significado usoIndireto por memória
Add R1,@R3 Regs[R1] Regs[R1] +Mem[Mem[ Regs[3]]]
autoincremento Add R1,(R2)+ Regs[R1] Regs[R1] +Mem[Regs[R2]];Regs[R2] Regs[R2]+d
Acesso a vetores
autodecremento Add R1,-(R2) Regs[R2] Regs[R2] – d;Regs[R1] Regs[R1] + Mem[Regs[R2]]
Acesso a vetores
escalado Add R1,100(R2)[R3] Regs[R1] Regs[R1] + Mem[100+Regs[R2]+Regs[R3]*d]
Acesso a vetores
DAP.S98 47
Benchmark mostra a importância de cada modo
DAP.S98 48
Porcentagem de uso de operandos imediatos
DAP.S98 49
Tamanho dos operandos no SPEC2000
DAP.S98 50
Uso de instruções na arquiteturax86 em 5 códigos SpecInt92
DAP.S98 51
Conclusão: atualmente predominam as máquinas do tipo registrador-memória
Motivo: de certa forma, responsabilidade da IBM• Fabricante dominante nessa fase do campeonato• Existem muitas técnicas de compilação
Provavelmente é a escolha certa• Software tem mais tempo de vida que hardware• Softwares existem a décadas• Hardware é substituído a cada 2 a 4 anos
Tecnologia de compilações é importante• Atualmente está bem avançado para máquinas registrador-memória