0% acharam este documento útil (0 voto)
4 visualizações79 páginas

Abstrações em Arquitetura de Computadores

O documento apresenta o Capítulo 1 do curso PCS3612, abordando abstrações e tecnologias computacionais, incluindo a evolução da arquitetura de computadores e a importância da Lei de Moore. Discute as classes de computadores, desempenho, e os componentes essenciais de um sistema computacional, além de introduzir conceitos como paralelismo e hierarquia de memórias. O texto também explora as novas aplicações e a era pós-PC, destacando a relevância de dispositivos móveis e computação em nuvem.

Enviado por

Kirby Gamer
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
4 visualizações79 páginas

Abstrações em Arquitetura de Computadores

O documento apresenta o Capítulo 1 do curso PCS3612, abordando abstrações e tecnologias computacionais, incluindo a evolução da arquitetura de computadores e a importância da Lei de Moore. Discute as classes de computadores, desempenho, e os componentes essenciais de um sistema computacional, além de introduzir conceitos como paralelismo e hierarquia de memórias. O texto também explora as novas aplicações e a era pós-PC, destacando a relevância de dispositivos móveis e computação em nuvem.

Enviado por

Kirby Gamer
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

PCS3612: Organização e Arquitetura de Computadores I

Abstrações e tecnologias computacionais - Cap 1


Profa. Dra. Cíntia Borges Margi
Prof. Dr. Thales Paiva

PCS - Departamento de Engenharia de Computação e Sistemas Digitais


Escola Politécnica da Universidade de São Paulo

[Link]

PCS 3612 - 2024 © CBM


Livro texto

● Capítulo 1: Abstrações e Tecnologias Computacionais


○ “Computer Organization and Design RISC-V Edition: The Hardware Software Interface”, David A. Patterson &
John L. Hennessy, 2ª edição (28 abril 2021), Morgan Kaufmann Publishers
● Tópicos:
○ Introdução
○ Sete grandes ideias sobre arquitetura de computadores
○ Por trás do programa
○ Sob as tampas
○ Tecnologias para construção de processadores e memórias
○ Desempenho
○ A barreira de potência
○ Passando de processadores para multiprocessadores
○ Benchmarking do Intel Core I7
○ Multiplicação de matrizes em Python
○ Falácias e armadilhas
○ Comentários Finais

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.

Alfred North Whitehead, Uma Introdução à Matemática, 1911

3
PCS 3612 - 2024 © CBM
Introdução
Seção 1.1 do livro texto

4
PCS 3612 - 2024 © CBM
A revolução dos computadores

● Progresso na tecnologia de computadores


○ Inicialmente sustentada pela Lei de Moore
○ Hoje sustentada por aceleradores de domínio específico
● Computadores são pervasivos
● 3ª revolução: informação
○ depois da agricultura e indústria
○ impulsionada pela computação e sua evolução

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

Personal Computer (PC) Computadores Embarcados


● Propósito geral ● Escondidos como componentes
● Usado por um indivíduo
● Usados em aplicações específicas
● Uso de programas de terceiros
● Ênfase: bom desempenho a baixo custo ● Restrições de consumo de energia,
● Existem há 40 anos desempenho e preço

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

● Personal Mobile Device (PMD)


○ Operam com bateria
○ Conecta a Internet
○ Centenas de dólares
○ Smart phones, tablets
● Cloud computing
○ Warehouse Scale Computers
(WSC)
○ Software as a Service (SaaS)
○ Parte do software executa em PMD
Figure 1.2 The number manufactured per year of tablets and smart phones, which
reflect the post-PC era, versus personal computers and traditional cell phones. Smart e parte na nuvem
phones represent the recent growth in the cell phone industry, and they passed PCs in 2011.
PCs, tablets, and traditional cell phone categories are declining. The peak volume years are ○ Amazon and Google
2011 for cell phones, 2013 for PCs, and 2014 for tablets. PCs fell from 20% of total units
shipped in 2007 to 10% in 2018.

8
PCS 3612 - 2024 © CBM
O que você irá aprender

● Como os programas são traduzidos para linguagem de máquina


○ E como o hardware o executa
● O que é a interface hardware/software
● O que determina o desempenho de um programa
○ E como pode ser melhorado
● Como projetistas de hardware aumentam o desempenho
● O que é processamento paralelo

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

● 1. O número de processadores embarcados vendidos a cada ano supera, e muito, o


número de processadores para PC e até mesmo pós-PC. Você pode confirmar ou
negar isso com base em sua própria experiência? Tente contar o número de
processadores embarcados na sua casa. Compare esse número com o número de
computadores convencionais em sua casa.
● 2. Como mencionado anteriormente, tanto o software quanto o hardware afetam o
desempenho de um programa. Você pode pensar em exemplos nos quais cada um
dos fatores a seguir é o responsável pelo gargalo no desempenho?
○ O algoritmo escolhido
○ A linguagem de programação ou compilador
○ O sistema operacional
○ O processador
○ O sistema de E/S e os dispositivos

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

● Use abstrações para simplificar o projeto


● Torne o caso comum veloz
● Desempenho via paralelismo
● Desempenho via pipelining
● Desempenho via predição
● Hierarquia de memórias
● Estabilidade (dependability) via redundância

13
PCS 3612 - 2024 © CBM
E a Lei de Moore ainda importa?

● Em edições anteriores havia uma oitava grande ideia na lista: Projete


pensando na Lei de Moore
○ Mas foi removida nesta edição do livro texto
● “os recursos do circuito integrado dobram a cada 18 a 24 meses”
○ “Cramming more components onto integrated circuits”, Gordon E. Moore, 1965, disponível em
[Link]
○ Projetos podem durar anos, os recursos disponíveis por chip mudam significativamente entre o
início e o final do projeto → onde estará a tecnologia???
○ influenciou projetos por mais de 50 anos
● Lei de Moore “morreu”?
○ Desenvolvimento de semicondutores é mais lento
○ Novas estratégias de projeto são necessárias!

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

● Linguagem de alto nível


○ mais próximo do domínio do problema
○ provê produtividade e portabilidade
● Linguagem Assembly
○ representação textual das instruções
● Representação para Hardware
○ bits
○ instruções e dados codificados

17
PCS 3612 - 2024 © CBM
Sob as tampas
Seção 1.4 do livro texto

18
PCS 3612 - 2024 © CBM
Componentes de um computador

● Mesmos componentes para qualquer


tipo de computador
○ Servidores
○ PCs
○ Computadores embarcados
● E/S inclui:
○ Dispositivos para interface com usuário
○ Dispositivos de armazenamento
○ Adaptadores de rede

19
PCS 3612 - 2024 © CBM
Através do espelho

● Monitor de cristal líquido (LCD):


○ tecnologia de vídeo usando uma fina camada de polímeros líquidos que podem ser usados
para transmitir ou bloquear a luz conforme uma corrente seja ou não aplicada
● Monitor de matriz ativa:
○ monitor de cristal líquido usando um transistor para controlar a transmissão da luz em cada
pixel individual
● Pixel:
○ é o menor elemento individual da imagem
○ A tela é composta de centenas de milhares a milhões de pixels, organizados em uma matriz

20
PCS 3612 - 2024 © CBM
Buffer de atualização de varredura

● Buffer de atualização de varredura ou buffer de quadros


○ armazena o mapa de bits, ou seja, a imagem a ser representada na tela
○ o padrão de bits de cada pixel é lido para o monitor gráfico a uma certa taxa de atualização

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

FIGURE 1.7 Components of the


Apple iPhone XS Max cell phone.
At the left is the capacitive multitouch
screen and LCD display. Next to it is
the battery. To the far right is the
metal frame that attaches the LCD to
the back of the iPhone. The small
components in the center are what
we think of as the computer; they are
not simple rectangles to fit compactly
inside the case next to the battery.
Figure 1.8 shows a close-up of the
board to the left of the metal case,
which is the logic printed circuit
board that contains the processor
and memory.
(Courtesy TechIngishts,
[Link])

23
PCS 3612 - 2024 © CBM
Apple iPhone XS Max

FIGURE 1.8 The logic board of


Apple iPhone XS Max in
Figure 1.7. The large integrated
circuit in the middle is the Apple
A12 chip, which contains two
large and four small ARM
processor cores that run at 2.5
GHz, as well as 2 GiB of main
memory inside the package.
Figure 1.9 shows a photograph
of the processor chip inside the
A12 package. A similar-sized
chip on a symmetric board that
attaches to the back is a 64 GiB
flash memory chip for
nonvolatile storage. The other
chips on the board include the
power management integrated
controller and audio amplifier
chips. (Courtesy TechIngishts,
[Link])
24
PCS 3612 - 2024 © CBM
Processador A12

● Fluxo de dados (datapath)


○ executa operações no dado
● Controle
○ sequencia o fluxo de dados, memória,
...
● Memória cache
○ Memória SRAM rápida e pequena
para acesso imediato a dados

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

● Abstrações ajudam a tratar complexidade


○ Esconde detalhes de nível mais baixo
● Conjunto de instruções da arquitetura (Instruction Set Architecture - ISA)
○ Interface hardware/software
● Interface binária da aplicação
○ ISA mais interface de sistema de software
● Implementação
○ Detalhes subjacentes e interface

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)

● Comunicação, compartilhamento de recursos, acesso não local


● Diversos padrões e tecnologias:
○ Redes locais (LAN)
■ Ethernet
○ Redes de longa distância (WAN)
■ Associadas a Internet
○ Redes sem fio:
■ WiFi (IEEE 802.11)
■ Bluetooth

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

● Tecnologia eletrônica continua a evoluir


○ Aumento de capacidade e desempenho
○ Redução de custo

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

● Relação não linear entre área e taxa de defeitos


○ custo do wafer e área são fixos
○ taxa de defeitos depende do processo de manufatura
○ Área do die determinada pelo projeto da arquitetura e do circuito

34
PCS 3612 - 2024 © CBM
Desempenho
Seção 1.6 do livro texto

35
PCS 3612 - 2024 © CBM
Desempenho

● Mas o que é desempenho?


● Dicionário (Oxford):
○ substantivo masculino
○ 1. ação ou efeito de desempenhar(-se).
○ 2. cumprimento de obrigação ou de promessa; execução.
○ 3. maneira como atua ou se comporta alguém ou algo, avaliada em termos de eficiência, de
rendimento.
■ "o d. do governo, de um atleta, de uma máquina"
○ …

36
PCS 3612 - 2024 © CBM
Desempenho

● Vamos começar com um exemplo


○ Qual aeronave tem o melhor 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

● Como o tempo de resposta e vazão são afetadas por:


○ Trocar o processador por versão mais rápida?
○ Adicionar mais processadores?

38
PCS 3612 - 2024 © CBM
Desempenho relativo

● Desempenho de uma máquina é o recíproco do tempo de execução:

● A máquina X é n vezes mais rápida do que a Y:

● Exemplo:
○ Tempo para executar um programa é 10 s em A e 15 s em B

→ A é 1,5 vezes mais rápida do que B


39
PCS 3612 - 2024 © CBM
Medindo o tempo de execução

● Elapsed real time (ou wall time)


○ Tempo de resposta total, incluindo todos os aspectos
■ Processamento, E/S, overhead do SO, tempo em idle
○ Determina desempenho do sistema
● Tempo (de execução) de CPU
○ Tempo gasto processando uma dada tarefa
■ Desconta tempo de E/S e compartilhamento com outras tarefas
○ Composto por:
■ tempo de CPU do usuário: tempo gasto no programa
■ tempo de CPU do sistema: tempo gasto a favor do programa
○ Diferentes programas são afetados de maneira diferente pelo desempenho de CPU e sistema
● Por que é útil saber tempo de CPU e não só Wall time?

40
PCS 3612 - 2024 © CBM
Comando time

● Real: se refere ao tempo decorrido entre a execução e


a conclusão do comando (total ou elapsed)
● User: é o tempo de processador no modo usuário
● Sys: é o tempo de processador usado pelo sistema
(kernel)
● ACCURACY: The elapsed time is not collected
atomically with the execution of the program; as a
result, in bizarre circumstances (if the time command
gets stopped or swapped out in between when the
program being timed exits and when time calculates
how long it took to run), it could be much larger than
the actual execution time.
● Como o tempo real pode ser menor que o user?

41
PCS 3612 - 2024 © CBM
perf stat

● Dados mais detalhados


○ Trocas de contexto
○ Page faults
○ Branch-misses
○ Cache-misses
○ …
● Útil para investigar
otimizações de baixo
nível

42
PCS 3612 - 2024 © CBM
Exemplo: Usando o perf para otimização

● O problema: contar números ímpares numa sequência aleatória

Quem é o vilão?

43
PCS 3612 - 2024 © CBM
Exemplo: Usando o perf para otimização

● O problema: contar números ímpares numa sequência aleatória

2x mais rápido sem branch!

44
PCS 3612 - 2024 © CBM
Exemplo: Usando o perf para otimização

Mais rápido?

gcc -O3 pode gerar instruções SIMD

45
PCS 3612 - 2024 © CBM
Ferramenta: Compiler Explorer – [Link]

46
PCS 3612 - 2024 © CBM
Desempenho da CPU

● Tempo de execução da CPU = Ciclos de clock da CPU * Tempo do ciclo de


clock
● Tempo de execução da CPU = Ciclos de clock da CPU / Taxa de clock

● Desempenho melhora se:


○ reduzir o número de ciclos necessários para um programa
○ aumentar a taxa de clock (frequência)
○ diminuir o tempo do clock (período)

47
PCS 3612 - 2024 © CBM
Exemplo

● Computador A: clock = 2GHz, Tempo de CPU = 10s


● Projetando Computador B
○ Meta: tempo de CPU = 6 s
○ Possível aumentar clock, mas isso causa 20% de aumento no número de ciclos de clock
● Qual o clock do computador B?

48
PCS 3612 - 2024 © CBM
Exemplo

● Computador A: clock = 2GHz, Tempo de CPU = 10s


● Projetando Computador B
○ Meta: tempo de CPU = 6 s
○ Possível aumentar clock, mas isso causa 20% de aumento no número de ciclos de clock
● Qual o clock do computador B?
○ Taxa de clock de B = Ciclos de clock de B / Tempo de CPU de B = 1,2 * Ciclos de clock de A / 6
s
○ Ciclos de clock de A = Time de CPU de A * Taxa de clock de A = 10 s * 2 GHz = 20 * 10⁹
○ Taxa de clock de B = 1,2 * 20 * 10⁹ / 6 = 2,4 * 10⁹
○ Taxa de clock de B = 4 GHz

49
PCS 3612 - 2024 © CBM
Desempenho da instrução

● Um determinado programa exigirá


○ um determinado número de instruções de máquina
■ determinada pelo programa, ISA e compilador
○ um determinado número de ciclos
■ determinado pelo hardware da CPU
■ se diferentes instruções possuem CPI diferentes, então a CPI média é afetada pela
mistura de instruções
○ um determinado número de ciclos de clock
● Assim temos:

○ onde:
■ IC = contador de instruções (instruction count)
■ CPI = ciclos de clock por instrução

50
PCS 3612 - 2024 © CBM
Exemplo

● 2 implementações da mesma ISA.


● Programa X:
○ A - tempo de ciclo de clock 250 ps e CPI 2,0
○ B - tempo de ciclo de clock 500 ps e CPI 1,2
● Qual máquina é mais rápida para X e quanto?

51
PCS 3612 - 2024 © CBM
Exemplo

● 2 implementações da mesma ISA.


● Programa X:
○ A - tempo de ciclo de clock 250 ps e CPI 2,0
○ B - tempo de ciclo de clock 500 ps e CPI 1,2
● Qual máquina é mais rápida para X e quanto?
○ TCPU = IC * CPI * Tempo do ciclo de clock
○ TCPU A = IC * 2,0 * 250 ps = IC * 500 ps
○ TCPU B = IC * 1,2 * 500 ps = IC * 600 ps

○ Logo, A é 20% mais rápida

52
PCS 3612 - 2024 © CBM
Mais detalhes sobre CPI

● Se diferentes classes de instruções demoram número de ciclos diferentes

● CPI média é afetada pela mistura de instruções, então é uma média


ponderada usando as frequências relativas

53
PCS 3612 - 2024 © CBM
Exemplo

● Sequência de código compilada usando instruções nas classes A, B, C

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

● Que sequência executa mais instruções?


● Qual será mais rápida? Qual é a CPI para cada sequência?

54
PCS 3612 - 2024 © CBM
Exemplo

● Sequência de código compilada usando instruções nas classes A, B, C


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

● 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

● Desempenho depende de:


○ Algoritmo: afeta IC, talvez CPI
○ Linguagem de programação: afeta IC, CPI
○ Compilador: afeta IC, CPI
○ Arquitetura do Conjunto de Instruções (ISA): afeta IC, CPI, TCPU

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:

Cresceu 30 vezes! Redução de 5 V Cresceu 1.000 vezes!


para 1 V
58
PCS 3612 - 2024 © CBM
Reduzindo Potência

● Assuma que uma nova CPU tem:


○ 85% da carga capacitiva de uma CPU antiga
○ redução de 15% na tensão e na frequência

● Problemas:
○ reduzir ainda mais a tensão causa vazamento nos transistores
○ técnicas para remover muito calor são muito caras

Power Wall (ou Barreira de Potência)


● Então como melhorar o desempenho??

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

● Benchmark é um conjunto de programas usados para medir o desempenho de


um computador
○ Supostamente representam a carga de trabalho típica de um usuário
● Standard Performance Evaluation Corp (SPEC)
○ [Link]
○ Fundada por fabricantes de computadores.
○ Objetivo: conjunto padronizado de benchmarks para avaliar desempenho
○ Atualmente existem benchmarks para CPU, E/S, Web, …

64
PCS 3612 - 2024 © CBM
SPEC CPU Benchmark

● Tempo para executar uma seleção de programas


○ Foco no desempenho da CPU, E/S desprezível
● Normalizado relativo a uma máquina de referência
● Consolidado com a média geométrica das taxas de desempenho:
○ CINT2006 (integer) e CFP2006 (floating-point)

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.

PCS 3612 - 2024 © CBM


Benchmark de potência SPEC

● Consumo de potência de servidores em diferentes níveis de carga de trabalho


○ divididos em incrementos de 10%
○ Desempenho: ssj_ops/sec
○ Potência (power): Watts (Joules/sec)

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.

PCS 3612 - 2024 © CBM


Mais rápido: multiplicação de matrizes
Seção 1.10 do livro texto

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

● Armadilha: esperar que a melhoria de um aspecto de um computador


aumente o desempenho geral por uma quantidade proporcional ao tamanho
da melhoria.

● 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

● Falácia: Os computadores com pouca utilização demandam menos potência.


○ Lembrando do benchmark de potência do i7:
■ Carga de 100%: 258 W
■ Carga de 50%: 170 W (66%)
■ Carga de 10%: 121 W (47%)
○ Datacenter do Google:
■ Opera tipicamente em carga de 10% – 50%.
■ Carga de 100% menos de 1% do tempo
● Falácia: Projetar para o desempenho e projetar para a eficiência de energia
são objetivos não relacionados.
○ Parte otimizada consome mais energia mas reduz tempo de execução → reduz consumo de
energia total

74
PCS 3612 - 2024 © CBM
Falácias e armadilhas

● Armadilha: Usar um subconjunto da equação de desempenho como uma


métrica de desempenho.
○ MIPS: Millions of Instructions Per Second
○ Não considera:
■ Diferenças no conjunto de instruções (ISA) entre computadores
■ Diferenças na complexidade das instruções

○ CPI varia entre os programas em uma dada CPU!

75
PCS 3612 - 2024 © CBM
Verifique você mesmo

Considere as seguintes medidas de desempenho para um programa:

a. Que computador tem a avaliação MIPS mais alta?

b. Qual computador é mais rápido?

76
PCS 3612 - 2024 © CBM
Comentários Finais
Seção 1.12 do livro texto

77
PCS 3612 - 2024 © CBM
Comentários Finais

● Relação custo/desempenho está melhorando!


○ Devido ao desenvolvimento da tecnologia subjacente
● Camadas hierárquicas de abstração
○ Tanto em hardware como em software
● Instruction set architecture (ISA)
○ A interface hardware/software
● Tempo de Execução: melhor medida de desempenho
○ Vazão é boa quando ISA é o mesmo!
● Potência (power) é um fator limitante
○ Uso de paralelismo para melhorar o desempenho

78
PCS 3612 - 2024 © CBM
PCS3612: Organização e Arquitetura de Computadores I

Abstrações e tecnologias computacionais - Cap 1


Profa. Dra. Cíntia Borges Margi

PCS - Departamento de Engenharia de Computação e Sistemas Digitais


Escola Politécnica da Universidade de São Paulo

[Link]

PCS 3612 - 2024 © CBM

Você também pode gostar