4. Módulo 1
Aulas
1. Introdução.
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O Power Wall
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas
5. Módulo 1
Aulas
1. Introdução.
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O Power Wall
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas
6. Evolução da
indústria de
computadores
“Se a indústria de transporte tivesse
acompanhado o ritmo da indústria de
computadores, por exemplo, hoje
poderíamos viajar de Nova York a
Londres em um segundo por um
centavo.”
(Patterson e Hennessy,2018)
7. Áreas onde a
ciência da
computação
se destacou
nos últimos
anos
Automóveis
Telefones celulares
Projeto do Genoma Humano
World Wide Web
Mecanismos de procura na Web
8. Classes de aplicações de computadores
SUPERCOMPUTERS
SERVERS
DATA CENTERS
CLOUD COMPUTERS
PERSONAL
COMPUTERS
PERSONAL
MOBILE
DEVICES
EMBEDDED
(EMBARCADOS)
Mercado dominado pela
Intel (Xeon)
Mercado dominado pela
Arm e seu ecossistema
Mercado pulverizado
Forte presença da Arm
LINUX LINUX MS WINDOWS ANDROID/iOS
Bare Metal
RTOS
LINUX
Mercado dominado pela
Intel (Xeon)
Mercado dominado pela
Intel (Corei5/7/9)
10. O que pode ser
feito para
melhorar o
desempenho de
um programa de
computador?
Algoritmo
• Determina o número de operações executadas.
Linguagem de programação , compilador e
arquitetura
• Determina o número de instruções de máquina,
executadas por operação.
Sistema de processador e memória
• Determina quão rápidas as instruções são executadas.
Sistema de Entrada/Saída
(incluindo Sistema Operacional )
• Determina quão rápido as operações de E/S são
executadas.
11. Módulo 1
Aulas
1. Introdução
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O Power Wall
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas
12. Grandes
ideias em
arquitetura de
computadores
1. Projetar considerando a Lei de Moore.
2. Usar a abstração para simplificar o projeto.
3. Fazer o caso mais comum o mais rápido.
4. Melhorar o desempenho pelo uso do paralelismo.
5. Melhorar o desempenho pelo uso do pipelining.
6. Melhorar o desempenho pelo uso da predição.
7. Hierarquia de memórias.
8. Melhorar a confiabilidade pelo uso da redundância.
15. Módulo 1
Aulas
1. Introdução.
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O Power Wall
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas
16. Níveis de abstração
em sistemas de
computação.
• Software aplicativo
• Escrito em linguagem de alto nível (LAN).
• Software de sistema
• Compilador: traduz LAN em Código de
máquina.
• Sistema operacional: fornece serviços para
a camada anterior:
• Manipulação de entrada/saída.
• Gerenciamento de memória e
armazenamento.
• Escalonamento de tarefas e
compartilhamento de recursos.
• Hardware
• Processador, memória, controladores de E/S
(I/O).
18. Níveis de
programação
• Linguagem de programação
• Nível de abstração próximo do
domínio do problema.
• Provê produtividade e portabilidade.
• Linguagem de montagem (Assembly)
• Representação textual das instruções.
• Representação do hardware
• Dígitos binários (bits).
• Instruções e dados codificados.
20. Módulo 1
Aulas
1. Introdução.
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O muro da energia ( Power Wall )
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas
22. Desmontando um Apple iPad 2 A1395(*)
Tela LCD com sensor capacitivo
Bateria 3.8 V, 25 Watt-hora
Placas eletrônicas
(*) Lançado em março de 2011
Fonte: www.ifixit.com
2
1
3
4 5
23. O que tem dentro de uma CPU
• O processador , do ponto de vista lógico, tem dois componentes principais:
• O datapath: circuitos que realizam as operações com os dados (lógicas, aritméticas e
transferências ).
• A unidade de controle que coordena o datapath, a memória e os dispositivos de I/O de
acordo com cada instrução.
• Adicionalmente podemos encontrar em uma CPU os seguintes
componentes:
• Memória cache uma certa quantidade de memória SRAM rápida para acesso imediato
dos dados.
• Diversos circuitos de interface (DDR, USB, Flash ,etc ).
• Circuitos de alimentação (Power management )
26. Armazenamento de dados
• Memória VOLÁTIL
( usada como memória principal )
• Os dados e as instruções são perdidos
quando a energia é desligada.
• Memória NÃO-VOLÁTIL
( usada como memória secundária )
• Disco magnético (HD)
• Memória Flash (SSD)
• Discos ópticos (CDROM, DVD)
27. Redes
• Pra que serve:
• Comunicação,
• compartilhamento de recursos,
• acesso remoto.
• Local area network (LAN): Ethernet
• Wide area network (WAN): a Internet
• Redes sem fio (Wireless network):
WiFi, Bluetooth
28. Módulo 1
Aulas
1. Introdução.
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O muro da energia ( Power Wall )
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas
29. Desempenho relativo por custo unitário de tecnologias
usadas em computadores no decorrer do tempo
(válvula eletrônica)
30. Crescimento da capacidade por chip
de DRAM no decorrer do tempo
A indústria de DRAM quadruplicou a capacidade a cada 3 anos, cerca de 60% por ano, por 20 anos.
Nos anos recentes, a taxa caiu para aproximadamente o dobro a cada dois ou 3 anos.
31. Fabricação de Circuitos Integrados
• Yield (rendimento): proporção de dies bons em relação ao total do wafer.
FRONTEND
BACKEND
33. Ecossistema de fabricação de semicondutores
Chipless
IDM=Integrated Device Manufacturer
OSAT = Outsourced Semiconductor Assembly and Test
Concepção Projeto
Fabricação (Frontend)
(Frontend)
Encapsulamento e Teste
Teste (Backend)
Suporte ao Cliente Exemplo de empresas
IDM , FABBED , FULL FAB Intel, Samsung,SK Hynix, Micron, TI, Microchip,NXP,…
FABLESS FABLESS Broadcom, Qualcomm, Nvidia, AMD, Apple,Xilinx,…
SAT SMART Modular Brazil,…
FAB TSMC,GlobalFoundries, UMC, SMIC, XFAB,SilTerra,…
OSAT ASE,Amkor,JCET,SPIL,Powertech,HANA Micron, …
ISA RISC-V ORG, Arm
IP PROVIDER Arm,Synopsys,Cadence, CEVA,IMEC,SiFive,Chipus,…
IC DESIGN HOUSE Faraday, S3,SiFive,Chipus,…
34. Wafer do Intel Core i7
• Wafer de 300mm (12 polegadas), 280
chips, Tecnologia 32nm
• Cada chip tem 20.7 x 10.5 mm
36. Custo de
circuito
integrado
Custo por die =
Custo por wafer
Dies por wafer × Yield
Dies por wafer ≈ Área do wafer Área do die
Yield =
1
(1 + (Defeitos por área × Área do die/2))2
37. Considerações
importantes
sobre a
fabricação de
circuitos
integrados
1. Um fator-chave para determinar o custo de
um circuito integrado é o volume de
produção.
2. Com alto volumes, o processo de fabricação
pode ser ajustado para um projeto
particular, aumentando o yield.
3. As máscaras usadas para fazer um chip são
caras, portanto o custo por chip é menor
para volumes maiores.
4. Os custos de engenharia no
desenvolvimento (NRE) são altos e
independente do volume, portanto o NRE
por die é menor em alto volume de
produção.
38. Módulo 1
Aulas
1. Introdução.
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O muro da energia ( Power Wall )
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas
39. Conceitos
básicos
Quanto tempo leva para executar uma tarefa.
Tempo de
resposta
Total do trabalho executado por unidade
de tempo
•Por exemplop: tarefas ou transações por hora.
Taxa de transferência
(Throughput )
41. Clock da CPU
Circuitos digitais síncronos precisam de um sinal periódico
(onda quadrada) para funcionar.
Clock (ciclos)
Transferênica
de dados e execução
Atualização doestado
Periodo
do Clock
42. Tempo da CPU
Tempo da CPU = Quantidade de ciclos de clock da CPU x Tempo de Ciclo de Clock
Tempo da CPU =
Taxa do Clock (frequência)
Ciclos de Clock da CPU
• O Desempenho pode ser melhorado por:
• Reduzir o número de ciclos de clock;
• Aumentar a taxa do clock (frequência );
• O desenvolvedor de hardware frequentemente tem o
compromisso entre a frequênica do clock e o número de
ciclos.
43. Quantidade de Instruções (QDI)
e
Clocks por Instrução (CPI)
• Quantidade de instruções para um programa:
• Determinado pelo programa, pela ISA e pelo compilador.
• CPI médio
• Determinado pelo hardware da CPU;
• Se instruções diferentes tiverem CPI diferentes:
• O CPI médio é afetado pelo mix de instruções.
Ciclos de clock = Quantidade de instruções x Média dos Ciclos Por Instrução
Ciclos de clock = QDI x CPI
Tempo de CPU = QDI x CPI x Tempo do Ciclo de Clock
Tempo da CPU =
Taxa do Clock (frequência)
QDI x CPI
44. CPI em mais detalhes
• Se diferentes classes de instrução levam diferentes números de ciclos:
C𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑐𝑙𝑜𝑐𝑘 =
i=1
n
(CPIi × 𝑄𝐷𝐼)
CPI médio ponderado
CPI =
𝐶𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑐𝑙𝑜𝑐𝑘
𝑄𝐷𝐼
=
i=1
n
CPIi ×
𝑄𝐷𝐼𝑖
𝑄𝐷𝐼
Frequência relativa
45. Resumo sobre Desempenho
Desempenho depende de:
1. Algoritmos: afeta a quantidade de instruções e possívelmente o CPI.
2. Linguagem de programação: afeta a quantidade de instruções e o CPI.
3. Compiler: afeta a quantidade de instruções e o CPI.
4. Instruction set architecture: afeta a quantidade de instruções, o CPI e o Tempo de CPU
𝑻𝒆𝒎𝒑𝒐 𝒅𝒆 𝑪𝑷𝑼 =
𝑰𝒏𝒔𝒕𝒓𝒖çõ𝒆𝒔
𝑷𝒓𝒐𝒈𝒓𝒂𝒎𝒂
×
𝑪𝒊𝒄𝒍𝒐𝒔 𝒅𝒆 𝒄𝒍𝒐𝒄𝒌
𝑰𝒏𝒔𝒕𝒓𝒖çõ𝒆𝒔
×
𝑺𝒆𝒈𝒖𝒏𝒅𝒐𝒔
𝑪𝒊𝒄𝒍𝒐𝒔 𝒅𝒆 𝑪𝒍𝒐𝒄𝒌
46. Módulo 1
Aulas
1. Introdução.
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O muro da energia ( Power Wall )
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas
48. Frequência de clock versus potência de
microprocessadores Intel x86 em 8 gerações (30 anos)
Destaques:
• Pentium 4 : deu um salto em frequência e potênicia, que não foi correspondido pelo desempenho. Os
problemas com o projeto Prescott, levaram ao fim da família Pentium4.
• Core 2 : reverteu com pipeline simples e frequências mais baixas e múltiplos processadores por chip.
• Core i5 : seguiu a mesma linha do Core 2.
50. • Não é mais possível l reduzir a tensão.
• Não é possível remover mais calor.
Como melhorar o desempenho ????
O “Power
Wall”
51. Módulo 1
Aulas
1. Introdução.
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O muro da energia ( Power Wall )
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas
55. Multiprocessadores
• Microprocessadores multicore:
• Mais de uma CPU por circuito integrado
• Requer programação paralela explícita
• Comparando com o paralelismo no nível de instrução:
• O hardware executa múltiplas instruções em
paralelo.
• Não visíveis para para o programador.
• É difícil :
• Programar para melhorar o desempenho
• Balanceamento de carga.
• Otimizar comunicação e sincronismo.
56. Módulo 1
Aulas
1. Introdução.
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O muro da energia ( Power Wall )
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas
57. SPEC
Benchmark
de CPU
• SPEC ( Standard Performance Evaluation Corporation )
É uma corporação sem fins lucrativos formada para estabelecer, manter
e endossar benchmarks padronizados e ferramentas para avaliar o
desempenho e a eficiência energética para a mais nova geração de
sistemas de computação. A SPEC desenvolve suítes de benchmark e
também analisa e publica os resultados apresentados por nossas
organizações membros e outros licenciados de benchmark.
• A partir de 1989 as versões indicam o ano em que foram criadas,
começando com o SPEC89. A versão mais atual é a SPEC CPU 2017.
Projetado para fornecer medições de desempenho que podem ser
usadas para comparar cargas de trabalho de computação intensiva em
diferentes sistemas de computador, SPEC CPU 2017 contém 43
benchmarks organizados em quatro conjuntos: SPECspeed 2017
Integer, SPECspeed 2017 Floating Point, SPECrate 2017 Integer e
SPECrate 2017 Floating Point. SPEC CPU 2017 também inclui uma
métrica opcional para medir o consumo de energia.
59. SPEC Power Benchmark
• Consumo de energia do servidor em diferentes níveis de workload:
• Desempenho: ssj_ops/sec
• Potência: Watts (Joules/sec)
Overall ssj_ops per Watt =
i=0
10
ssj_opsi
i=0
10
poweri
61. Outros benchmark
• Linpack
Usado na avaliação de supercomputadores (https://www.top500.org/project/linpack/)
• Coremark
CoreMark é um benchmark simples, mas sofisticado, projetado especificamente para
testar a funcionalidade de um núcleo de processador. A execução do CoreMark produz
uma pontuação de número único que permite aos usuários fazer comparações rápidas
entre os processadores.
62. Módulo 1
Aulas
1. Introdução.
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O muro da energia ( Power Wall )
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas
63. Armadilha: Lei de Amdahl
• Melhorar apenas uma característica do computador e esperar
uma melhoria global no desempenho.
20 =
80
𝑛
+ 20 Sem efeito!
Timproved =
Taffected
improvement factor
+ Tunaffected
Exemplo: multiplicação está presente em 80% dos casos
Quanta melhoria é necessária na multiplicação para ter um desempenho global 5 vezes melhor ?
Corolário: faça com que o caso mais comum seja executado mais rápido
64. 64
Lei de Amdahl
By Daniels220 at English Wikipedia, CC BY-SA 3.0,
https://commons.wikimedia.org/w/index.php?curid=6678551
65. 65
Escala de Dennard
Escala de Dennard, também conhecida
como escala de MOSFET, é uma lei de
escala baseada em um artigo de 1974
co-escrito por Robert H. Dennard.
Originalmente formulado para MOSFETs,
afirma, grosso modo, que à medida que
os transistores ficam menores, sua
densidade de potência permanece
constante, de modo que o uso de
energia permanece proporcional à área.
Power = alpha * CFV2
♦ alpha – percent time switched
♦ C = capacitance
♦ F = frequency
♦ V = voltage
66. Falácia: Baixo consumo em modo inativo
• Look back at i7 power benchmark
• At 100% load: 258W
• At 50% load: 170W (66%)
• At 10% load: 121W (47%)
• Google data center
• Mostly operates at 10% – 50% load
• At 100% load less than 1% of the time
• Consider designing processors to make power proportional to
load
67. Armadilha: MIPS como métrica de desempenho
• MIPS: Milhões de Instruções Por Segundo
• Não leva em consideração
• Diferenças entre ISAs de computadores.
• Diferenças de complexidade entre as instruções.
MIPS =
Instruction count
Execution time × 106
=
Instruction count
Instruction count × CPI
Clock rate
× 106
=
Clock rate
CPI × 106
CPI varia entre programas de uma CPU
68. Módulo 1
Aulas
1. Introdução.
2. Grandes ideas em arquitetura de computadores.
3. Níveis de abstração em sistemas de computação.
4. Estrutura genérica de um computador.
5. Tecnologias para construir processadores e memórias
6. Desempenho
7. O muro da energia ( Power Wall )
8. Dos uniprocessadores para os multiprocessadores
9. Mundo real: avaliação comparativa do Intel Core i7
10. Falácias e armadilhas