Arquitetura
de
Computadores
Prof. Rogério Moreira
2020
Livro-texto
Módulo 1
Introdução &
Conceitos básicos
Prof. Rogério Moreira
2020
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
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
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)
Á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
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)
A era pós-PC
Produção
mundial
(milhões de
unidades)
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.
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
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.
14
Lei de Moore
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
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).
Conceito : bare metal
HARDWARE
Software
aplicativo
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.
MATRIOSKAS CEBOLA
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
Componentes
de um
computador MEMÓRIA
UNIDADE DE
CONTROLE
DATAPATH
COMPUTADOR
PROCESSADOR
CPU
SAÍDA
ENTRADA
PERIFÉRICOS
2
1
3
4
5
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
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 )
Dentro do
Processador
Apple A5
Aplicativos
Bibliotecas
Sistema Operacional
Hardware
Aplicativos
Bibliotecas
Sistema
Operacional
Hardware
ISA
ISA
ISA
Chamadas de sistema
Chamadas de API
API
ABI
ISA
Adaptado de Prof. Fazal Rehman Shamil – T4Tutorials.com
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)
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
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
Desempenho relativo por custo unitário de tecnologias
usadas em computadores no decorrer do tempo
(válvula eletrônica)
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.
Fabricação de Circuitos Integrados
• Yield (rendimento): proporção de dies bons em relação ao total do wafer.
FRONTEND
BACKEND
Fases de projeto de Circuitos Integrados
32
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,…
Wafer do Intel Core i7
• Wafer de 300mm (12 polegadas), 280
chips, Tecnologia 32nm
• Cada chip tem 20.7 x 10.5 mm
Tamanhos padronizados de wafer
Tamanho do wafer
Espessura
típica
[μm]
Ano de
introdução
Peso
[gramas]
Die
(100 mm2
)
por wafer
Polegadas mm
1 25 1960
2 51 275 1969
3 76 375 1972
4 100 525 1976 10 56
5 125 625 1981
6 150 675 1983
8 200 725 1992 53 269
12 300 775 2002 125 640
18 450 925 2014 342 1490
27 675 nd futuro
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
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.
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
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 )
Desempenho relativo
Desempenhox =
Tempo de execuçãox
1
Desempenhox
Tempo de execuçãox
= = n
Tempo de execuçãoy
Desempenhoy
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
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.
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
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
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
𝑻𝒆𝒎𝒑𝒐 𝒅𝒆 𝑪𝑷𝑼 =
𝑰𝒏𝒔𝒕𝒓𝒖çõ𝒆𝒔
𝑷𝒓𝒐𝒈𝒓𝒂𝒎𝒂
×
𝑪𝒊𝒄𝒍𝒐𝒔 𝒅𝒆 𝒄𝒍𝒐𝒄𝒌
𝑰𝒏𝒔𝒕𝒓𝒖çõ𝒆𝒔
×
𝑺𝒆𝒈𝒖𝒏𝒅𝒐𝒔
𝑪𝒊𝒄𝒍𝒐𝒔 𝒅𝒆 𝑪𝒍𝒐𝒄𝒌
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
47
Lei de Moore
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.
Potência em tecnologia CMOS
Po𝑡ê𝑛𝑐𝑖𝑎 = Ca𝑟𝑔𝑎 𝑐𝑎𝑝𝑎𝑐𝑖𝑡𝑖𝑣𝑎 × 𝑇𝑒𝑛𝑠ã𝑜2 × Frequê𝑛𝑐𝑖𝑎
×1000
×30 5V → 1V
• Não é mais possível l reduzir a tensão.
• Não é possível remover mais calor.
Como melhorar o desempenho ????
O “Power
Wall”
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
Desempenho do uniprocessador
Restrições:
 potência,
 paralelismo no nível das
instruções,
 latência de memória.
53
54
Lei de Moore
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.
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
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.
CINT2006 for Intel Core i7 920
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
Exemplo de SPECpower_ssj2008 para o Intel Xeon X5650
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.
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
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
Lei de Amdahl
By Daniels220 at English Wikipedia, CC BY-SA 3.0,
https://commons.wikimedia.org/w/index.php?curid=6678551
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
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
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
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

Módulo 1.pptx

  • 1.
  • 2.
  • 3.
    Módulo 1 Introdução & Conceitosbásicos Prof. Rogério Moreira 2020
  • 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 “Sea 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ênciada 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çõesde 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)
  • 9.
  • 10.
    O que podeser 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.
  • 14.
  • 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 emsistemas 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).
  • 17.
    Conceito : baremetal HARDWARE Software aplicativo
  • 18.
    Níveis de programação • Linguagemde 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.
  • 19.
  • 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
  • 21.
    Componentes de um computador MEMÓRIA UNIDADEDE CONTROLE DATAPATH COMPUTADOR PROCESSADOR CPU SAÍDA ENTRADA PERIFÉRICOS 2 1 3 4 5
  • 22.
    Desmontando um AppleiPad 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 temdentro 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 )
  • 24.
  • 25.
    Aplicativos Bibliotecas Sistema Operacional Hardware Aplicativos Bibliotecas Sistema Operacional Hardware ISA ISA ISA Chamadas desistema Chamadas de API API ABI ISA Adaptado de Prof. Fazal Rehman Shamil – T4Tutorials.com
  • 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 queserve: • 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 porcusto unitário de tecnologias usadas em computadores no decorrer do tempo (válvula eletrônica)
  • 30.
    Crescimento da capacidadepor 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 CircuitosIntegrados • Yield (rendimento): proporção de dies bons em relação ao total do wafer. FRONTEND BACKEND
  • 32.
    Fases de projetode Circuitos Integrados 32
  • 33.
    Ecossistema de fabricaçãode 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 IntelCore i7 • Wafer de 300mm (12 polegadas), 280 chips, Tecnologia 32nm • Cada chip tem 20.7 x 10.5 mm
  • 35.
    Tamanhos padronizados dewafer Tamanho do wafer Espessura típica [μm] Ano de introdução Peso [gramas] Die (100 mm2 ) por wafer Polegadas mm 1 25 1960 2 51 275 1969 3 76 375 1972 4 100 525 1976 10 56 5 125 625 1981 6 150 675 1983 8 200 725 1992 53 269 12 300 775 2002 125 640 18 450 925 2014 342 1490 27 675 nd futuro
  • 36.
    Custo de circuito integrado Custo pordie = 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 levapara 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 )
  • 40.
    Desempenho relativo Desempenhox = Tempode execuçãox 1 Desempenhox Tempo de execuçãox = = n Tempo de execuçãoy Desempenhoy
  • 41.
    Clock da CPU Circuitosdigitais 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 Tempoda 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 maisdetalhes • 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 Desempenhodepende 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
  • 47.
  • 48.
    Frequência de clockversus 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.
  • 49.
    Potência em tecnologiaCMOS Po𝑡ê𝑛𝑐𝑖𝑎 = Ca𝑟𝑔𝑎 𝑐𝑎𝑝𝑎𝑐𝑖𝑡𝑖𝑣𝑎 × 𝑇𝑒𝑛𝑠ã𝑜2 × Frequê𝑛𝑐𝑖𝑎 ×1000 ×30 5V → 1V
  • 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
  • 52.
    Desempenho do uniprocessador Restrições: potência,  paralelismo no nível das instruções,  latência de memória.
  • 53.
  • 54.
  • 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.
  • 58.
    CINT2006 for IntelCore i7 920
  • 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
  • 60.
    Exemplo de SPECpower_ssj2008para o Intel Xeon X5650
  • 61.
    Outros benchmark • Linpack Usadona 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 deAmdahl • 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 ByDaniels220 at English Wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=6678551
  • 65.
    65 Escala de Dennard Escalade 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 consumoem 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 comomé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