A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquiteturas e Redes de Computadores

Apresentações semelhantes


Apresentação em tema: "Arquiteturas e Redes de Computadores"— Transcrição da apresentação:

1 Arquiteturas e Redes de Computadores
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.

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)

3 Medida de desempenho, Arquiteturas Básicas
Aula 1: Tecnologias, Medida de desempenho, Arquiteturas Básicas

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)

5 Quadro comparativo: Desktop, servidores, móveis e embarcados

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.

7 Gráfico da melhora de largura de banda versus latência

8 Evolução dos processadores Intel x86 (IA-32)

9 Evolução da memória

10 Evolução da tecnologia de redes

11 Evolução da tecnologia de discos rígidos (magnéticos)

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.

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.

14 Custo de circuito integrado
AMD Opteron Wafer de 300 mm contem 117 chips em um processo de 90 nm

15 Custo de circuito integrado
a é um parâmetro que corresponde à medida de complexidade de fabricação. Para os processos CMOS em 2006, uma boa estimativa = 4.

16 Evolução do desempenho de CPUs (tendências)
dissipação pequeno paralelismo a ser explorado latência de memória crescimento com a melhoria da arquitetura e organização crescimento apenas com a tecnologia de chips

17

18 Tópicos de Arquitetura de Computadores
Armazenamento e Entrada/Saída discos, fitas RAID Tecnologias emergentes “Interleaving” Protocolos de Dutos DRAM Coerência, Bandwidth, Latência Hierarquia de Memória L2 Cache L1 Cache Endereçamento, Proteção, Manipulação de exceção VLSI Arquitetura de Instruções Pipeline, solução para conflitos, Superescalar, Reordenamento, Previsão, Especulação, Vetor, DSP Paralelismo ao nível de instruções

19 Tópicos de Arquitetura de Computadores
Memória Compartilhada, Passagem de Mensagem Paralelismo de Dados P M P M P M P M ° ° ° Interface de Rede S Rede de Interconexões Chaveamento -Processador-Memória Topologias, Roteamento, “Bandwidth”, Latência, Confiabilidade Multiprocessadores, multicores, paralelismo ao nível de thread, paralelismo ao nível de dados, redes e Interconexões

20 Desempenho (e Custo) Tempo para rodar uma tarefa (TempoEx)
Fastest for 1 person? Which takes less time to transport 470 passengers? 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

21 Desempenho (e Custo) "X é n vezes mais rápido que Y" significa
TempoEx(Y) Desempenho(X) = TempoEx(X) Desempenho(Y) 1350 / 610 = 2.2X 286,700/ 178, X TempoEx = tempo de execução

22 Lei de Amdahl Mostra como calcular o speedup devido a uma melhoria E:
TempoEx sem E Desempenho com E Speedup(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

23 Lei de Amdahl TempoExnovo = TempoExvelho x (1 - Fraçãomelhorada) Fraçãomelhorada Speedupmelhorada 1 TempoExvelho TempoExnovo Speedupglobal = = (1 - Fraçãomelhorada) + Fraçãomelhorada Speedupmelhorada Speedupmelhorada  Speedup da fração melhorada

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 TempoExnovo = Speedupglobal =

25 Lei de Amdahl 1 Speedupglobal = = 1.053 0.95
Instruções de ponto flutuante são melhoradas para rodar 2X mais rápido; mas apenas 10% das instruções são FP TempoExnovo = TempoExvelho x ( /2) = 0.95 x TempoExvelho 1 Speedupglobal = = 1.053 0.95

26 Medidas de desempenho Aplicação Respostas por mês
Operações por segundo Linguagem de Programação Compilador (milhões) de Instruções por segundo: MIPS (milhões) de operações FP por segundo: MFLOP/s ISA Fluxo de dados Megabytes por segundo Controle Unidades funcionais Ciclos por segundo (taxa de clock) Transistores Fios Pinos

27 Cálculo do tempo de CPU (em segundos)
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

28 CPI - Ciclos Por Instrução médio
CPI = (Tempo CPU * Freqüência de Clock) / Num.Instruções = Num.Ciclos / Num.Instruções “CPIi - Ciclos por Instrução da classe i ” n Tempo CPU = Tempo Ciclo * S CPI * I i i i = 1 I i = número de instruções da classe i Fi = fração de Instruções da classe i n CPI = S CPI * F onde F = I i i i i i = 1 Num. Instruções

29 Exemplo: Calcular CPI Maquina Base Op Fração CPIi prod. (% Tempo)
ALU (33%) Load (27%) Store (13%) Branch (27%) CPI = 1.5 Mix Tipico

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

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/)

32 Instruction Set Architecture (ISA)
software instruction set hardware

33 Evolução do conjunto de instruções
Acumulador ú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 (B ) (IBM ) Máquinas com Registradores de Propósito Geral Conjunto Complexo de Instruções Arquitetura Load/Store (CDC 6600, Cray ) (Vax, Intel ) RISC (Mips,Sparc,HP-PA,IBM RS6000, )

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

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

36 PROCESSADOR PILHA pilha Operandos são elementos de uma pilha MEMÓRIA

37 ACUMULADOR PROCESSADOR acumulador O operando implícito é o
conteúdo do acumulador. memória O operand explícito é um elemento de memória MEMÓRIA

38 REGISTRADOR-MEMÓRIA PROCESSADOR Os operandos podem ser registrador
de registradores ou de memória registrador operandos memória MEMÓRIA

39 REGISTRADOR-REGISTRADOR (LOAD-STORE)
PROCESSADOR load registrador Operandos registrador REGISTRADOR-REGISTRADOR (LOAD-STORE) Os operandos são de registradores MEMÓRIA store

40 Número de operandos de memória
(m,n) onde m = operando de memória, n = total de operandos Operandos de memória em instruções aritméticas típicas Máximo de operandos em instruções aritméticas Exemplos 2 3 IBM RT-PC SPARC, MIPS, HP-PA, Power-PC, ALPHA 1 PDP-10, M6800, IBM360, INTEL 80X86 IBM360RS PDP-11, National 32x32, IBM-360SS, VAX NEC S1 VAX

41 (0,3) Registrador-Registrador
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

42 (1,2) Registrador-Memória
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)

43 (3,3) Memória-Memória 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

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

45 Modos típicos de endereçamento
exemplo significado uso registrador 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 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]

46 Modos típicos de endereçamento (cont.)
exemplo significado uso Indireto por memória Add 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]] escalado Add R1,100(R2)[R3] Regs[R1]  Regs[R1] + Mem[100+Regs[R2]+ Regs[R3]*d]

47 Benchmark mostra a importância de cada modo

48 Porcentagem de uso de operandos imediatos

49 Tamanho dos operandos no SPEC2000

50 Uso de instruções na arquitetura x86 em 5 códigos SpecInt92

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


Carregar ppt "Arquiteturas e Redes de Computadores"

Apresentações semelhantes


Anúncios Google