Abstrações em Arquitetura de Computadores
Abstrações em Arquitetura de Computadores
[Link]
2
PCS 3612 - 2024 © CBM
A civilização avança ampliando o número de operações importantes que
podem ser realizadas sem se pensar nelas.
3
PCS 3612 - 2024 © CBM
Introdução
Seção 1.1 do livro texto
4
PCS 3612 - 2024 © CBM
A revolução dos computadores
5
PCS 3612 - 2024 © CBM
Possibilidade de novas aplicações
● Computadores em automóveis
○ de controles a entretenimento
1990 x 2022
● Telefones celulares
○ mudanças nos serviços disponíveis
● Projeto do genoma humano
○ requisitos X custo dos equipamentos
● World Wide Web
○ Tim Berners-Lee publica ideias iniciais sobre o que se tornaria a WWW em 1989
○ Não existia quando a primeira edição do livro texto foi publicada
● Motores de busca (Search engines)
○ AltaVista - 1995
○ Google - 1998
○ (search é diferente de research apesar de ambos serem traduzidos como pesquisa)
6
PCS 3612 - 2024 © CBM
Classes de computadores tradicionais
Servidores
● Dependem de rede para acesso
● Podem lidar com tarefas específicas
(computação científica) ou múltiplas
tarefas simultâneas (servidor web)
● Ênfase: alta capacidade, desempenho e
confiabilidade
7
PCS 3612 - 2024 © CBM
Era pós PC
8
PCS 3612 - 2024 © CBM
O que você irá aprender
9
PCS 3612 - 2024 © CBM
Entendendo desempenho
● Algoritmo
○ Determina número operações executadas
● Linguagem de programação, compilador, arquitetura
○ Determina número de instruções de máquina executadas para cada operação
● Processador e sistema de memória
○ Determina quão rápido as instruções são executadas
● Sistema de E/S (incluindo sistema operacional)
○ Determina quão rápido as operações de E/S são executadas
10
PCS 3612 - 2024 © CBM
Verifique você mesmo
11
PCS 3612 - 2024 © CBM
Sete grandes ideias sobre arquitetura de
computadores
Seção 1.2 do livro texto
12
PCS 3612 - 2024 © CBM
Sete grandes ideias sobre arquitetura de
computadores
13
PCS 3612 - 2024 © CBM
E a Lei de Moore ainda importa?
14
PCS 3612 - 2024 © CBM
Sistemas de
Programação??
Abaixo do programa
Seção 1.3 do livro texto
15
PCS 3612 - 2024 © CBM
Visão em camadas (abstração)
● Software de Aplicações
○ escrito em linguagem de alto nível (HLL)
● Sistema de software
○ Fornece serviços normalmente úteis
○ Compilador:
■ traduz código em HLL para linguagem de máquina
○ Sistema Operacional (SO):
■ código de serviço
■ lidar com E/S
■ gerenciamento de memória e armazenamento
■ agendamento de tarefas e compartilhamento de recursos
● Hardware
○ Processador, memória, controlador de E/S
16
PCS 3612 - 2024 © CBM
Níveis de programação
17
PCS 3612 - 2024 © CBM
Sob as tampas
Seção 1.4 do livro texto
18
PCS 3612 - 2024 © CBM
Componentes de um computador
19
PCS 3612 - 2024 © CBM
Através do espelho
20
PCS 3612 - 2024 © CBM
Buffer de atualização de varredura
Figure 1.6 Each coordinate in the frame buffer on the left determines the shade of the
corresponding coordinate for the raster scan CRT display on the right. Pixel (X0, Y0) contains the
bit pattern 0011, which is a lighter shade on the screen than the bit pattern 1101 in pixel (X1, Y1).
21
PCS 3612 - 2024 © CBM
Touchscreen
● Dispositivo pós-PC
● Substitui teclado e mouse
● Podem ser do tipo resistivo ou capacitivo
○ Maioria dos tablets e smartphones usam capacitivos
○ Capacitivo permite múltiplos toques simultaneamente
22
PCS 3612 - 2024 © CBM Foto: TechTudo
Apple iPhone XS Max
23
PCS 3612 - 2024 © CBM
Apple iPhone XS Max
FIGURE 1.9 The processor integrated circuit inside the A12 package. The size of chip is 8.4 by 9.91 mm, and it was manufactured
originally in a 7-nm process (see Section 1.5). It has two identical ARM processors or cores in the lower middle of the chip, four
small cores on the lower right of the chip, a graphics processing unit (GPU) on the far right (see Section 6.6), and a domain-specific
accelerator for neural networks (see Section 6.7) called the NPU on the far left. In the middle are second-level cache memory (L2)
banks for the big and small cores (see Chapter 5). At the top and bottom of the chip are interfaces to the main memory (DDR 25
PCS 3612 - 2024 © CBM DRAM). (Courtesy TechInsights, [Link])
Abstrações
26
PCS 3612 - 2024 © CBM
Um lugar seguro para os dados
● Hierarquia de memória
● Memória primária (ou principal)
○ volátil = perde instruções e dados ao ser desligada
○ DRAM
● Memória secundária
○ Não volátil
○ HD (disco magnético)
○ Memória flash / SSD
○ Disco óptico (CDROM, DVD)
Fonte da imagem:
[Link]
[Link]
27
PCS 3612 - 2024 © CBM
Comunicação (ou redes)
28
PCS 3612 - 2024 © CBM
Tecnologias para construção de
processadores e memórias
Seção 1.5 do livro texto
29
PCS 3612 - 2024 © CBM
Tecnologias para processadores
Figure 1.10 Relative performance per unit cost of technologies used in computers over time. Source: Computer Museum, Boston,
with 2020 extrapolated by the authors.
30
PCS 3612 - 2024 © CBM
Tecnologias de memória
Figure 1.11 Growth of capacity per DRAM chip over time. The y-axis is measured in kibibits (210 bits). The DRAM industry
quadrupled capacity almost every three years, a 60% increase per year, for 20 years. In recent years, the rate has slowed down
and is somewhat closer to doubling every three years. With the slowing of Moore’s Law and difficulties in reliable manufacturing of
smaller DRAM cells given the challenging aspect ratios of their three-dimensional structure.
31
PCS 3612 - 2024 © CBM
Fabricação de CIs
Figure 1.12 The chip manufacturing process. After being sliced from the silicon ingot, blank wafers are put through 20 to 40 steps to
create patterned wafers (see Figure 1.13). These patterned wafers are then tested with a wafer tester, and a map of the good parts is made.
Next, the wafers are diced into dies (see Figure 1.9). In this figure, one wafer produced 20 dies, of which 17 passed testing. (X means the
die is bad.) The yield of good dies in this case was 17/20, or 85%. These good dies are then bonded into packages and tested one more
time before shipping the packaged parts to customers. One bad packaged part was found in this final test.
32
PCS 3612 - 2024 © CBM
10th Gen Intel Core processors
Figure 1.13 A 12-inch (300mm) wafer this 10nm wafer contains 10th Gen Intel® Core™ processors, code-named “Ice Lake” (Courtesy
Intel). The number of dies on this 300 mm (12 inch) wafer at 100% yield is 506. According to AnandTech1, each Ice Lake die is 11.4 by 10.7 mm.
The several dozen partially rounded chips at the boundaries of the wafer are useless; they are included because it’s easier to create the masks
used to pattern the silicon. This die uses a 10-nanometer technology, which means that the smallest features are approximately 10 nm in size,
although they are typically somewhat smaller than the actual feature size, which refers to the size of the transistors as “drawn” versus the final
manufactured size. 33
PCS 3612 - 2024 © CBM
Custo do circuito integrado
34
PCS 3612 - 2024 © CBM
Desempenho
Seção 1.6 do livro texto
35
PCS 3612 - 2024 © CBM
Desempenho
36
PCS 3612 - 2024 © CBM
Desempenho
Figure 1.14 The capacity, range, and speed for a number of commercial airplanes. The last column shows the rate at which the airplane
transports passengers, which is the capacity times the Cruising speed (ignoring range and takeoff and landing times).
37
PCS 3612 - 2024 © CBM
Métricas de desempenho
● Tempo de Resposta
○ Quanto tempo demora para executar uma tarefa
○ Ex.: tempo de execução de um programa
● Vazão (throughput)
○ Trabalho total feito por unidade de tempo
○ Ex.: tarefas/transações/… por hora
38
PCS 3612 - 2024 © CBM
Desempenho relativo
● Exemplo:
○ Tempo para executar um programa é 10 s em A e 15 s em B
40
PCS 3612 - 2024 © CBM
Comando time
41
PCS 3612 - 2024 © CBM
perf stat
42
PCS 3612 - 2024 © CBM
Exemplo: Usando o perf para otimização
Quem é o vilão?
43
PCS 3612 - 2024 © CBM
Exemplo: Usando o perf para otimização
44
PCS 3612 - 2024 © CBM
Exemplo: Usando o perf para otimização
Mais rápido?
45
PCS 3612 - 2024 © CBM
Ferramenta: Compiler Explorer – [Link]
46
PCS 3612 - 2024 © CBM
Desempenho da CPU
47
PCS 3612 - 2024 © CBM
Exemplo
48
PCS 3612 - 2024 © CBM
Exemplo
49
PCS 3612 - 2024 © CBM
Desempenho da instrução
50
PCS 3612 - 2024 © CBM
Exemplo
51
PCS 3612 - 2024 © CBM
Exemplo
52
PCS 3612 - 2024 © CBM
Mais detalhes sobre CPI
53
PCS 3612 - 2024 © CBM
Exemplo
Classe A B C
CPI 1 2 3
Sequência de código 1 2 1 2
Sequência de código 2 4 1 1
54
PCS 3612 - 2024 © CBM
Exemplo
CPI 1 2 3
Sequência de código 1 2 1 2
Sequência de código 2 4 1 1
● Que sequência executa mais instruções? Qual será mais rápida? Qual é a CPI
para cada sequência?
○ Sequência 1: IC = 5
■ Ciclos de clock = 2×1 + 1×2 + 2×3 = 10 → CPI = 10/5 = 2
○ Sequência 2: IC = 6
■ Ciclos de clock = 4×1 + 1×2 + 1×3 = 9 → CPI = 9/6 = 1,5
55
PCS 3612 - 2024 © CBM
Resumindo o desempenho
56
PCS 3612 - 2024 © CBM
A barreira de potência
Seção 1.7 do livro texto
57
PCS 3612 - 2024 © CBM
Tendências
Figure 1.16 Clock rate and power for Intel x86 microprocessors over nine generations and 36 years. The Pentium 4 made a dramatic
jump in clock rate and power but less so in performance. The Prescott thermal problems led to the abandonment of the Pentium 4 line. The Core
2 line reverts to a simpler pipeline with lower clock rates and multiple processors per chip. The Core i5 pipelines follow in its footsteps.
● Na tecnologia CMOS:
● Problemas:
○ reduzir ainda mais a tensão causa vazamento nos transistores
○ técnicas para remover muito calor são muito caras
59
PCS 3612 - 2024 © CBM
Passando de processadores para
multiprocessadores
Seção 1.8 do livro texto
60
PCS 3612 - 2024 © CBM
Desempenho do processador
limitado por:
(1) potência,
ideias arquiteturais e (2) paralelismo disponível
influenciado pela organizacionais avançadas em nível de instrução e
tecnologia (pipelining, ILP, ...) (3) latência de memória
Figure 1.17 Growth in processor performance since the mid-1980s. This chart plots performance relative to the VAX 11/780 as measured by the SPECint
benchmarks (see Section 1.11). Prior to the mid-1980s, processor performance growth was largely technology driven and averaged about 25% per year. The increase in
growth to about 52% since then is attributable to more advanced architectural and organizational ideas. The higher annual performance improvement of 52% since the
mid-1980s meant performance was about a factor of seven larger in 2002 than it would have been had it stayed at 25%. Since 2002, the limits of power, available
instruction-level parallelism, and long memory latency have slowed uniprocessor performance recently, to about 3.5% per year.
61
PCS 3612 - 2024 © CBM
Como melhorar o desempenho?
● Processadores multicore
○ mais de um processador por chip
○ melhor vazão, mas não tempo de execução!
● Requer programação paralela explícita
○ Paralelismo a nível de instrução:
■ Hardware executa múltiplas instruções de uma vez
■ Escondida do programador
○ É difícil realizar programação orientada a desempenho
■ além de correto, precisa ser rápido
○ É difícil conseguir balanceamento de carga entre tarefas
○ É preciso reduzir a comunicação e overhead de sincronização
62
PCS 3612 - 2024 © CBM
Benchmarking do Intel Core I7
Seção 1.9 do livro texto
63
PCS 3612 - 2024 © CBM
SPEC Benchmark
64
PCS 3612 - 2024 © CBM
SPEC CPU Benchmark
65
PCS 3612 - 2024 © CBM
SPEC CINT2017 no Intel Xeon
66
Figure 1.18 SPECspeed 2017 Integer benchmarks running on a 1.8 GHz Intel Xeon E5-2650L. As the equation on page 35 explains, execution time is
the product of the three factors in this table: instruction count in billions, clocks per instruction (CPI), and clock cycle time in nanoseconds. SPECratio is
simply the reference time, which is supplied by SPEC, divided by the measured execution time. The single number quoted as SPECspeed 2017 Integer is
the geometric mean of the SPECratios. SPECspeed 2017 has multiple input files for perlbench, gcc, x264, and xz. For this figure, execution time and total
clock cycles are the sum running times of these programs for all inputs.
67
PCS 3612 - 2024 © CBM
SPECpower no Intel Xeon
68
Figure 1.19 SPECpower_ssj2008 running on a dual socket 2.2 GHz Intel Xeon Platinum 8276L with 192 GiB
of DRAM and one 80 GB SSD disk.
69
PCS 3612 - 2024 © CBM
Multiplicação de matrizes em Python
● Código em Python
○ sem utilizar bibliotecas otimizadas, pois o objetivo é mostrar as diferenças de linguagens entre
Python e C
70
PCS 3612 - 2024 © CBM
Otimização e desempenho
Figure 1.20 Optimizations of matrix multiply program in Python in the next five chapters of this book.
71
PCS 3612 - 2024 © CBM
Falácias e armadilhas
Seção 1.11 do livro texto
72
PCS 3612 - 2024 © CBM
Falácias e armadilhas
● Exemplo:
○ programa é executado em 100s, com multiplicações que demoram 80s. Para executá-lo 5
vezes mais rápido, quando devemos melhorar a multiplicação?
não existe n!
● Corolário: torne o caso comum rápido!
73
PCS 3612 - 2024 © CBM
Falácias e armadilhas
74
PCS 3612 - 2024 © CBM
Falácias e armadilhas
75
PCS 3612 - 2024 © CBM
Verifique você mesmo
76
PCS 3612 - 2024 © CBM
Comentários Finais
Seção 1.12 do livro texto
77
PCS 3612 - 2024 © CBM
Comentários Finais
78
PCS 3612 - 2024 © CBM
PCS3612: Organização e Arquitetura de Computadores I
[Link]