Tópicos Contexto geral Desempenho Arquitectura do conjunto de instruções
Aspectos gerais de arquitecturas de computadores
João Canas Ferreira
Março de 2004
João Canas Ferreira Aspectos gerais de arquitecturas de computadores Tópicos
Contexto geral Desempenho Arquitectura do conjunto de instruções
Contexto geral
Áreas de aplicação Tecnologia
Desempenho
Medir e descrever o desempenho Benchmarks
Princípios básicos do projecto de computadores Aspectos quantitativos
Arquitectura do conjunto de instruções
Características dos conjuntos de instruções Modos de endereçamento
Tópicos
Contexto geral
Desempenho Arquitectura do conjunto de instruções
Áreas de aplicação
Tecnologia
Tendências de mercado
Desktop computing
Gama 1000–10000 Euros
Optimizar a razão desempenho/custo
Servidores
Substituem mainframes
Atributos: disponibilidade, escalabilidade, débito
Computadores embebidos
Incluídos em outros produtos: fornos micro-ondas, telemóveis, etc.
Atributos: preço, execução em tempo-real, memória, potência Grande gama de preços
João Canas Ferreira Aspectos gerais de arquitecturas de computadores
Tópicos
Contexto geral
Desempenho Arquitectura do conjunto de instruções
Áreas de aplicação
Tecnologia
Prejuízos por downtime
Perdas anuais (106 $) com downtime de
Aplicação Prejuízo por
hora (103 $) 1% 0.5% 0.1% Corretagem 6450 565 283 56.5 Autor. C. Cred. 2600 228 114 22.8 Envio encomendas 150 13 6.6 1.3 Home shopping 113 9.9 4.9 1.0 Vendas p/catálogo 90 7.9 3.9 0.8 Reservas de avião 89 7.9 3.9 0.8 [Valores de 2000]
Tópicos
Contexto geral
Desempenho Arquitectura do conjunto de instruções
Áreas de aplicação
Tecnologia
Características das três áreas
Atributo Desktop Servidores Embutidos
Preço sistema ($) 103–104 104–107 10–105
Preço CPU ($) 100–1000 200–2000 0.20–200
CPUs /ano [2000] 15× 107 4× 106 3× 108 (*) Aspectos críticos
custo/de-sempenho, desempenho gráfico débito, dispo-nibilidade, es-calabilidade preço, consu-mo de potên-cia
(*) Apenas processadores de 16 e 32 bits.
João Canas Ferreira Aspectos gerais de arquitecturas de computadores
Tópicos
Contexto geral
Desempenho Arquitectura do conjunto de instruções
Áreas de aplicação
Tecnologia
Tendências tecnológicas
Circuitos integrados
densidade de transístores: ↑ 35% ao ano (4× em 4 anos) dimensão da pastilha: ↑ 10%-20% ao ano
resultado: no de transístores ↑ 55% ao ano (2× em 18 meses)
Memória DRAM
densidade ↑ 40%–60% ao ano (4× em 3–4 anos) tempo de leitura ↓ 30% em 10 anos
largura de banda ↑ 33% em 5 anos
Discos magnéticos
densidade ↑ 100% ao ano (4× em 2 anos) tempo de acesso ↓ 33% em 10 anos
Redes de comunicações
Ethernet: 10 Mb → 100 Mb em 10 anos; 100 Mb → 1 Gb em 5 anos
Tópicos Contexto geral
Desempenho
Arquitectura do conjunto de instruções
Medir e descrever o desempenho
Benchmarks
Princípios básicos do projecto de computadores Aspectos quantitativos
O que se deve medir?
➥ O que significa “é mais rápido que. . . ” ?
O que se pretende medir? Tempo de resposta, débito ? Definição:
n = tempo_execuçãoy tempo_execuçãox
➥ A máquina X é n vezes mais rápida que a máquina Y.
desempenho = 1
tempo_execução n =
desempenhox desempenhoy
➥ O computador mais rápido é aquele que executa a mesma quantidade de trabalho num intervalo mais curto.
João Canas Ferreira Aspectos gerais de arquitecturas de computadores
Tópicos Contexto geral
Desempenho
Arquitectura do conjunto de instruções
Medir e descrever o desempenho
Benchmarks
Princípios básicos do projecto de computadores Aspectos quantitativos
Tempo de resposta ou tempo transcorrido
tempo de resposta ou tempo transcorrido
Tempo total entre início e fim da tarefa incluindo todos os factores (sistema operativo, etc.)
tempo de CPU
Não inclui tempo gasto com outros processos ou à espera de dados.
Nota: As medidas não são sempre fiáveis ou exactas. tempo de utilizador
tempo de sistema > time prog arg1 arg2 90.7u 12.9s 2:39 65% 65% = (90.7+12.9)/159
➥ Usar tempo de utilizador ou tempo de CPU? Existem bons argumentos para ambos. . .
Tópicos Contexto geral
Desempenho
Arquitectura do conjunto de instruções
Medir e descrever o desempenho
Benchmarks
Princípios básicos do projecto de computadores Aspectos quantitativos
Benchmarks
Benchmark = indicação de altitude, cota de nível [Dic. PE] Tendência actual: usar um conjunto padronizado de programas para avaliar o desempenho.
Que programas?
sintéticos / núcleos de programas / programas completos
Qual o peso de cada programa?
Condições de execução?
SPEC: Standard Performance Evaluation Corporation http://www.spec.org
PC benchmarks: Ziff Davies, www.etestinglabs.com/benchmarks http://directory.google.com/Top/Computers/Performance_and_ Capacity/Benchmarking/
João Canas Ferreira Aspectos gerais de arquitecturas de computadores
Tópicos Contexto geral
Desempenho
Arquitectura do conjunto de instruções
Medir e descrever o desempenho
Benchmarks
Princípios básicos do projecto de computadores Aspectos quantitativos
Comparar e sumariar o desempenho
Tempos (s) Pesos A B C P(1) P(2) P(3) Prog. 1 1.00 10.00 20.00 0.50 0.909 0.999 Prog. 2 1000.00 100.00 20.00 0.50 0.091 0.001 Méd. arit. p(1) 500.50 55.00 20.00 Méd. arit. p(2) 91.91 18.19 20.00 Méd. arit. p(3) 2.00 10.09 20.00 pi = 1 tempoi ×ni=1 1 tempoi Os conjuntos de pesos P(2) e P(3) são inversamente proporcionais ao tempo de execução (em A e B, res-pectivamente).
Tópicos Contexto geral
Desempenho
Arquitectura do conjunto de instruções
Medir e descrever o desempenho Benchmarks
Princípios básicos do projecto de computadores
Aspectos quantitativos
Cinco princípios básicos
1. Melhorar o caso mais frequente (simples)
Nota: o caso frequente é muitas vezes o mais simples.
2. Lei de Amdahl
O aumento de desempenho a ganhar de uma dada melhoria está limitado pela fração de tempo em que a melhoria pode ser efectivamente aplicada.
3. Equação de desempenho do CPU
Texec = Ninstr × tciclo × CPI
4. Princípio da localidade (proximidade)
90% do tempo em 10% do código (já foi 80%-20%)
localidade espacial e "localidade temporal"
5. Explorar o paralelismo
João Canas Ferreira Aspectos gerais de arquitecturas de computadores
Tópicos Contexto geral
Desempenho
Arquitectura do conjunto de instruções
Medir e descrever o desempenho Benchmarks
Princípios básicos do projecto de computadores
Aspectos quantitativos
A lei de Amdahl
O aumento de desempenho a ganhar de uma dada melhoria está limitado pela fração de tempo em que a melhoria pode ser
efectivamente aplicada.
Speedup= Desempenho com melhoria Desempenho sem melhoria
Fracção do tempo original que beneficia da melhoria: Fenh
Ganho proporcionado pela melhoria: Senh = Tmelhor/Ta Tempo de execução: Tnovo = To × (1 − Fenh) + Fenh Senh Speedup total: Stotal = 1
Tópicos Contexto geral
Desempenho
Arquitectura do conjunto de instruções
Medir e descrever o desempenho Benchmarks
Princípios básicos do projecto de computadores
Aspectos quantitativos
Equação de desempenho do CPU
Texec = no de ciclos do programa× Tciclo
Ciclos por instrução CPI = no total de ciclos do programaN
instr
Texec = Ninstr × tciclo × CPI
Os três parâmetros são interdependentes, porque tecnologias de base também o são.
Tempo de ciclo tecnologia de hardware e organização
CPI organização e ACI
No de instruções ACI e tecnologia de compilação
João Canas Ferreira Aspectos gerais de arquitecturas de computadores
Tópicos Contexto geral Desempenho
Arquitectura do conjunto de instruções
Características dos conjuntos de instruções
Modos de endereçamento Valores imediatos
Arquitecturas de conjuntos de instruções
1. Arquitectura do conjunto de instruções: a parte de um computador que o programador/compilador “vê”.
2. Ordenamento conceptual (classificação).
3. Adaptação à área de utilização (DSP, multimédia: MMX, SSE, AltiVec. . . ).
4. Compatibilidade “binária”: benção ou desgraça?
5. Descendência histórica.
Blaauw, Gerrit A.; Brooks, Jr., Frederick P., "Computer Architecture: Concepts and Evolution", Addison-Wesley, 1997 (Cota: 004.2/BLAg/COM)
Tópicos Contexto geral Desempenho
Arquitectura do conjunto de instruções
Características dos conjuntos de instruções
Modos de endereçamento Valores imediatos
Classificação de conjuntos de instruções
A maneira de armazenar dados internos é o critério mais básico de diferenciação.
pilha (stack architecture)
acumulador (accumulator architecture)
conjunto de registos de uso genérico
João Canas Ferreira Aspectos gerais de arquitecturas de computadores
Tópicos Contexto geral Desempenho
Arquitectura do conjunto de instruções
Características dos conjuntos de instruções
Modos de endereçamento Valores imediatos
Origem dos operandos
Mem. Max. ops. Arquitectura Exemplos
0 3 reg-reg Alpha, MIPS, SPARC
1 2 reg-mem IBM 360/370, Intel 80x86
2 2 mem-mem VAX
3 3 mem-mem VAX
Tipo Vantagens Desvantagens
reg-reg Codificação simples, compri-mento único. Geração de código simplificada. Duração similar.
Número de instruções superior. Programas maiores.
reg-mem Acesso a dados sem “load” em separado. Tendem a ter boa co-dificação de formatos.
Operandos não são equivalentes. Duração varia com a localização dos operandos. Pode restringir o número de registos codificáveis. mem-mem Compacto. Não desperdiça
re-gistos com resultados temporá-rios.
Comprimento de instruções muito variável. Complexidade de instruções muito variável. Acesso a memória é crítico.
Tópicos Contexto geral Desempenho
Arquitectura do conjunto de instruções
Características dos conjuntos de instruções
Modos de endereçamento
Valores imediatos
Modos de endereçamento
Modo Exemplo Significado
registo add R4, R3 r[R4]:=r[R4]+r[R3]
imediato add R4,#3 r[R4]+3
deslocamento add R4,100(R1) r[R4]:=r[R4]+mem[100+r[R1]] registo indirecto add R4,(R1) r[R4]:=r[R4]+mem[r[R1]]
indexado add R3,(R1+R2) r[R3]:=r[R3]+mem[r[R1]+r[R2]] directo add R1,(1001) r[R1]:=r[R1]+mem[1001]
mem indirecto add R1,@(R3) r[r1]:=r[r1]+mem[mem[r[R3]]] auto-incremento add R1,(R2)+ r[R1]:=r[R1]+mem[r[R2]]
r[R2]:=r[R2]+d auto-decremento add R1,-(R2) r[R2]:=r[R2]-d
r[R1]:=r[R1]+mem[r[R2]]
escalado add R1,200(R2)[R3] r[R1]:=r[R1]+mem[200+r[R2]+r[3]*d]
João Canas Ferreira Aspectos gerais de arquitecturas de computadores
Tópicos Contexto geral Desempenho
Arquitectura do conjunto de instruções
Características dos conjuntos de instruções
Modos de endereçamento
Valores imediatos
Frequência de modos de endereçamento
Tópicos Contexto geral Desempenho
Arquitectura do conjunto de instruções
Características dos conjuntos de instruções
Modos de endereçamento
Valores imediatos
Gama de deslocamentos
Processador Alpha: CINT2000 (inteiros) e CFP2000 (vírgula flutuante) são subconjuntos de SPEC CPU2000.
João Canas Ferreira Aspectos gerais de arquitecturas de computadores
Tópicos Contexto geral Desempenho
Arquitectura do conjunto de instruções
Características dos conjuntos de instruções Modos de endereçamento
Valores imediatos
Utilização de operandos imediatos
Tópicos Contexto geral Desempenho
Arquitectura do conjunto de instruções
Características dos conjuntos de instruções Modos de endereçamento
Valores imediatos
Distribuição de valores imediatos
Programas e processador são os mesmos da folha anterior. O processador Alpha só suporta valores imediatos até 16 bits.