1. Arquitetura de Computadores
ACH2055
Aula 11 – Processadores Multicore, Multithread
e Vetoriais
Norton Trevisan Roman
(norton@usp.br)
6 de dezembro de 2019
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 1 / 40
2. Arquiteturas Paralelas
Paralelismo em N´ıvel de Tarefa
At´e agora vimos casos de paralelismo em n´ıvel de
instru¸c˜ao
Base para pipeline e multiescalar
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 2 / 40
3. Arquiteturas Paralelas
Paralelismo em N´ıvel de Tarefa
At´e agora vimos casos de paralelismo em n´ıvel de
instru¸c˜ao
Base para pipeline e multiescalar
H´a contudo um outro tipo de paralelismo: o
paralelismo em n´ıvel de tarefa
O ato de rodar uma tarefa (em vez de uma ´unica instru¸c˜ao)
em paralelo a outra
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 2 / 40
4. Arquiteturas Paralelas
Paralelismo em N´ıvel de Tarefa
At´e agora vimos casos de paralelismo em n´ıvel de
instru¸c˜ao
Base para pipeline e multiescalar
H´a contudo um outro tipo de paralelismo: o
paralelismo em n´ıvel de tarefa
O ato de rodar uma tarefa (em vez de uma ´unica instru¸c˜ao)
em paralelo a outra
Para que esta seja implementado, precisamos
replicar recursos do hardware
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 2 / 40
5. Arquiteturas Paralelas
Classifica¸c˜ao dos Sistemas (Taxonomia de Flynn)
SISD (single instruction, single data stream)
Um ´unico processador executa um ´unico fluxo de instru¸c˜oes
operando em um ´unico fluxo de dados
Ex: Um uniprocessador (j´a visto)
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 3 / 40
6. Arquiteturas Paralelas
Classifica¸c˜ao dos Sistemas (Taxonomia de Flynn)
SISD (single instruction, single data stream)
Um ´unico processador executa um ´unico fluxo de instru¸c˜oes
operando em um ´unico fluxo de dados
Ex: Um uniprocessador (j´a visto)
SIMD (single instruction, multiple data stream)
Um ´unico fluxo de instru¸c˜oes, em que a mesma instru¸c˜ao ´e
aplicada a m´ultiplos fluxos de dados
Ex: Processadores vetoriais (mais adiante veremos)
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 3 / 40
7. Arquiteturas Paralelas
Classifica¸c˜ao dos Sistemas (Taxonomia de Flynn)
MISD (multiple instruction, single data stream)
Um conjunto de processadores executa diferentes sequˆencias
de instru¸c˜oes, operando na mesma sequˆencia de dados
Essa estrutura n˜ao foi implementada comercialmente
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 4 / 40
8. Arquiteturas Paralelas
Classifica¸c˜ao dos Sistemas (Taxonomia de Flynn)
MISD (multiple instruction, single data stream)
Um conjunto de processadores executa diferentes sequˆencias
de instru¸c˜oes, operando na mesma sequˆencia de dados
Essa estrutura n˜ao foi implementada comercialmente
MIMD (multiple instruction, multiple data stream)
Um conjunto de processadores simultaneamente executa
diferentes sequˆencias de instru¸c˜oes em diferentes conjuntos
de dados
Arquiteturas multicore atuais
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 4 / 40
10. Processadores MIMD
SMP – Shared Memory Processors
Exemplo de MIMD s˜ao
os processadores de
mem´oria
compartilhada
Shared Memory
Processors (SMPs), pois
compartilham uma
mem´oria comum
Tamb´em conhecidos como
Symmetric
Multiprocessors
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 6 / 40
11. SMP – Shared Memory Processors
Caracter´ısticas
Possuem 2 ou mais
processadores similares
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 7 / 40
12. SMP – Shared Memory Processors
Caracter´ısticas
Possuem 2 ou mais
processadores similares
Estes compartilham da
mesma mem´oria e E/S
Via barramento ou outro
esquema de interconex˜ao
Tempo de acesso `a
mem´oria
aproximadamente igual
para cada processador
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 7 / 40
13. SMP – Shared Memory Processors
Caracter´ısticas
Todos os processadores
podem executar as
mesmas fun¸c˜oes
Da´ı o termo “sim´etrico”
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 8 / 40
14. SMP – Shared Memory Processors
Caracter´ısticas
Todos os processadores
podem executar as
mesmas fun¸c˜oes
Da´ı o termo “sim´etrico”
Com isso, a falha de um
processador n˜ao para o
sistema
Os demais podem continuar
o trabalho
Naturalmente, com
desempenho reduzido
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 8 / 40
15. SMP – Shared Memory Processors
Caracter´ısticas
O S.O. deve fornecer o
ferramental necess´ario
para explorar o
paralelismo
Cabe ao S.O. escalonar
processos ou threads
dentre os processadores
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 9 / 40
16. SMP – Shared Memory Processors
Problema
Em sua organiza¸c˜ao
com barramento (ao
lado), h´a redu¸c˜ao de
desempenho
Como toda referˆencia `a
mem´oria passa pelo
barramento, o tempo de
seu ciclo (seu per´ıodo)
limita a velocidade do
sistema
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 10 / 40
17. SMP – Shared Memory Processors
Solu¸c˜ao
Para melhorar o
desempenho,
adicionamos um cache
a cada processador
Tipicamente em 2 n´ıveis,
um no mesmo chip do
processador (L1) e outro
(L2) dentro ou fora desse
chip Fonte: [2]
Alguns processadores tamb´em utilizam um 3o
cache (L3)
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 11 / 40
18. SMP – Shared Memory Processors
Coerˆencia de Cache
Cada cache local
cont´em uma imagem
de uma por¸c˜ao da
mem´oria
Se uma palavra for
alterada em um dos
caches, pode invalidar sua
c´opia no outro
Problema da coerˆencia
de cache
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 12 / 40
19. SMP – Shared Memory Processors
Coerˆencia de Cache
Nesse caso, o hardware
precisa avisar os demais
processadores que uma
atualiza¸c˜ao aconteceu
Solu¸c˜oes baseadas em
hardware s˜ao conhecidas
como protocolos de
coerˆencia de cache
Ex: MESI (Modified,
Exclusive, Shared, Invalid)
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 13 / 40
20. SMP – Shared Memory Processors
Comunica¸c˜ao
A comunica¸c˜ao entre
processadores se d´a via
vari´aveis
compartilhadas na
mem´oria
Com todos os
processadores capazes de
acessar qualquer
localiza¸c˜ao na mem´oria Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 14 / 40
21. SMP – Shared Memory Processors
Comunica¸c˜ao
Isso contudo n˜ao os
impede de rodar tarefas
independentes
Cada uma acessando sua
pr´opria regi˜ao do espa¸co
de endere¸camento virtual
Vide ACH2044 – Sistemas
Operacionais Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 15 / 40
22. SMP – Shared Memory Processors
Sincroniza¸c˜ao
Esse compartilhamento
traz um problema
Um processador pode
come¸car a trabalhar com
um dado antes do outro
ter terminado
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 16 / 40
23. SMP – Shared Memory Processors
Sincroniza¸c˜ao
Esse compartilhamento
traz um problema
Um processador pode
come¸car a trabalhar com
um dado antes do outro
ter terminado
´E necess´ario ent˜ao um
mecanismo de
coordena¸c˜ao
Fonte: [2]
Tamb´em chamado de sincroniza¸c˜ao
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 16 / 40
24. SMP – Shared Memory Processors
Sincroniza¸c˜ao
A sincroniza¸c˜ao ´e feita
por meio de instru¸c˜oes
fornecidas pelo
hardware
Na forma de vari´aveis de
trava (lock) para exclus˜ao
m´utua
Estas precisam ser
capazes de ler e modificar
um local de mem´oria de
forma atˆomica
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 17 / 40
25. SMP – Shared Memory Processors
Sincroniza¸c˜ao
Em geral feita via troca
atˆomica
atomic swap
Troca de valores entre um
registrador e um local de
mem´oria, feita como se
fossem uma ´unica
opera¸c˜ao
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 18 / 40
26. SMP – Shared Memory Processors
Sincroniza¸c˜ao
Em geral feita via troca
atˆomica
atomic swap
Troca de valores entre um
registrador e um local de
mem´oria, feita como se
fossem uma ´unica
opera¸c˜ao
Em MIPS, isso ´e feito
Fonte: [2]
via load linked (ll) e store conditional (sc)
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 18 / 40
27. SMP – Shared Memory Processors
Troca Atˆomica
Usamos ent˜ao um par de instru¸c˜oes no qual a
segunda retorna um valor que diz se o par foi
executado como se fosse atˆomico
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 19 / 40
28. SMP – Shared Memory Processors
Troca Atˆomica
Usamos ent˜ao um par de instru¸c˜oes no qual a
segunda retorna um valor que diz se o par foi
executado como se fosse atˆomico
ll $r1, desl($r2)
Carrega o conte´udo de desl($r2) em $r1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 19 / 40
29. SMP – Shared Memory Processors
Troca Atˆomica
Usamos ent˜ao um par de instru¸c˜oes no qual a
segunda retorna um valor que diz se o par foi
executado como se fosse atˆomico
ll $r1, desl($r2)
Carrega o conte´udo de desl($r2) em $r1
sc $r3, desl($r2)
Armazena $r3 no endere¸co desl($r2)
Se o conte´udo de desl($r2) mudou antes de sc armazenar,
ent˜ao ele falha e $r3 ← 0, do contr´ario, $r3 ← 1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 19 / 40
30. SMP – Shared Memory Processors
Troca Atˆomica: Exemplo
la¸co: add $t0,$zero,$s4
ll $t1,0($s1)
sc $t0,0($s1)
beq $t0,$zero,la¸co
add $s4,$zero,$t1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 20 / 40
31. SMP – Shared Memory Processors
Troca Atˆomica: Exemplo
$s1 cont´em o en-
dere¸co de nossa vari´avel
compartilhada. Quere-
mos intercambiar seu
valor com o de $s4
la¸co: add $t0,$zero,$s4
ll $t1,0($s1)
sc $t0,0($s1)
beq $t0,$zero,la¸co
add $s4,$zero,$t1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 20 / 40
32. SMP – Shared Memory Processors
Troca Atˆomica: Exemplo
Carregamos $t0 com o va-
lor de $s4, que queremos
armazenar na vari´avel
la¸co: add $t0,$zero,$s4
ll $t1,0($s1)
sc $t0,0($s1)
beq $t0,$zero,la¸co
add $s4,$zero,$t1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 20 / 40
33. SMP – Shared Memory Processors
Troca Atˆomica: Exemplo
Copiamos o conte´udo
da vari´avel compar-
tilhada para $t1
la¸co: add $t0,$zero,$s4
ll $t1,0($s1)
sc $t0,0($s1)
beq $t0,$zero,la¸co
add $s4,$zero,$t1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 20 / 40
34. SMP – Shared Memory Processors
Troca Atˆomica: Exemplo
Tentamos armazenar o
conte´udo de $s4 nela. Se
conseguirmos, $t0 ← 1,
se falharmos, $t0 ← 0
la¸co: add $t0,$zero,$s4
ll $t1,0($s1)
sc $t0,0($s1)
beq $t0,$zero,la¸co
add $s4,$zero,$t1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 20 / 40
35. SMP – Shared Memory Processors
Troca Atˆomica: Exemplo
Verificamos ent˜ao se
conseguimos, tentando no-
vamente em caso de falha
la¸co: add $t0,$zero,$s4
ll $t1,0($s1)
sc $t0,0($s1)
beq $t0,$zero,la¸co
add $s4,$zero,$t1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 20 / 40
36. SMP – Shared Memory Processors
Troca Atˆomica: Exemplo
Ao conseguirmos, copi-
amos o valor que estava
na vari´avel para $s4
la¸co: add $t0,$zero,$s4
ll $t1,0($s1)
sc $t0,0($s1)
beq $t0,$zero,la¸co
add $s4,$zero,$t1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 20 / 40
37. SMP – Shared Memory Processors
Troca Atˆomica: Exemplo
Podemos agora usar
$s4 como quisermos
la¸co: add $t0,$zero,$s4
ll $t1,0($s1)
sc $t0,0($s1)
beq $t0,$zero,la¸co
add $s4,$zero,$t1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 20 / 40
38. SMP – Shared Memory Processors
Troca Atˆomica: Exemplo
Ao final dessa sequˆencia,
o conte´udo de $s4 e da
vari´avel compartilhada
foram trocados sem
ter havido interven¸c˜ao
de outro processador
la¸co: add $t0,$zero,$s4
ll $t1,0($s1)
sc $t0,0($s1)
beq $t0,$zero,la¸co
add $s4,$zero,$t1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 20 / 40
39. SMP – Shared Memory Processors
Troca Atˆomica: Exemplo
Com a vantagem de n˜ao
precisarmos travar o
acesso `a mem´oria pelos
demais processadores
la¸co: add $t0,$zero,$s4
ll $t1,0($s1)
sc $t0,0($s1)
beq $t0,$zero,la¸co
add $s4,$zero,$t1
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 20 / 40
40. Processadores MIMD
Sistemas Multiprocessadores
SMPs s˜ao uma forma comum de sistema
multiprocessador
Sistemas com m´ultiplos processadores e um m´etodo para
comunica¸c˜ao entre eles
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 21 / 40
41. Processadores MIMD
Sistemas Multiprocessadores
SMPs s˜ao uma forma comum de sistema
multiprocessador
Sistemas com m´ultiplos processadores e um m´etodo para
comunica¸c˜ao entre eles
Esses processadores podem estar organizados na
forma de chips separados dentro do sistema
Como vimos nas ilustra¸c˜oes at´e agora...
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 21 / 40
42. Processadores MIMD
Sistemas Multiprocessadores
SMPs s˜ao uma forma comum de sistema
multiprocessador
Sistemas com m´ultiplos processadores e um m´etodo para
comunica¸c˜ao entre eles
Esses processadores podem estar organizados na
forma de chips separados dentro do sistema
Como vimos nas ilustra¸c˜oes at´e agora...
Ou na forma de m´ultiplos n´ucleos no mesmo chip
Processadores assim s˜ao denominados multicore
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 21 / 40
43. Processadores MIMD
Sistemas Multicore
Consistem de m´ultiplas c´opias de um processador
dentro de um mesmo chip
Cada c´opia sendo denominada um n´ucleo ou core
Interconectadas por um barramento ou outro mecanismo de
comunica¸c˜ao
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 22 / 40
44. Processadores MIMD
Sistemas Multicore
Consistem de m´ultiplas c´opias de um processador
dentro de um mesmo chip
Cada c´opia sendo denominada um n´ucleo ou core
Interconectadas por um barramento ou outro mecanismo de
comunica¸c˜ao
Usados para rodar diferentes tarefas de forma
simultˆanea, ou uma mesma tarefa mais r´apido
Com a vantagem de consumirem menos energia que
alternativas mais complexas, como superescalar por exemplo
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 22 / 40
45. Sistemas Multicore
Organiza¸c˜ao
Cache L1 Dedicada
Ex: ARM11 MPCore
Fonte: [2]
L1-D → Dados
L1-I → Instru¸c˜oes
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 23 / 40
46. Sistemas Multicore
Organiza¸c˜ao
Cache L1 Dedicada
Ex: ARM11 MPCore
Cache L2 Dedicada
Ex: AMD Opteron
Fonte: [2]
L1-D → Dados
L1-I → Instru¸c˜oes Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 23 / 40
49. Processadores MIMD
Sistemas Multithread
Um conceito alternativo relacionado a MIMD ´e o de
multithreading
O compartilhamento de unidades funcionais, em um ´unico
processador, por m´ultiplas linhas de execu¸c˜ao (threads)
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 25 / 40
50. Processadores MIMD
Sistemas Multithread
Um conceito alternativo relacionado a MIMD ´e o de
multithreading
O compartilhamento de unidades funcionais, em um ´unico
processador, por m´ultiplas linhas de execu¸c˜ao (threads)
Para isso, devemos replicar alguns componentes do
processador
Seu PC, arquivos de registradores, ponteiro da pilha etc
Um conjunto separado para cada thread
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 25 / 40
51. Processadores MIMD
Sistemas Multithread
Um conceito alternativo relacionado a MIMD ´e o de
multithreading
O compartilhamento de unidades funcionais, em um ´unico
processador, por m´ultiplas linhas de execu¸c˜ao (threads)
Para isso, devemos replicar alguns componentes do
processador
Seu PC, arquivos de registradores, ponteiro da pilha etc
Um conjunto separado para cada thread
Al´em de permitir a r´apida mudan¸ca entre threads
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 25 / 40
52. Sistemas Multithread
Funcionamento
Em essˆencia, o fluxo de
instru¸c˜oes ´e dividido em
v´arios fluxos menores
As threads, que ent˜ao s˜ao
executadas em paralelo
Fonte: https://www.tutorialspoint.com/
operating_system/os_multi_threading.htm
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 26 / 40
53. Sistemas Multithread
Funcionamento
Em essˆencia, o fluxo de
instru¸c˜oes ´e dividido em
v´arios fluxos menores
As threads, que ent˜ao s˜ao
executadas em paralelo
As m´ultiplas threads
em um processo
compartilham dos
mesmos recursos
Fonte: https://www.tutorialspoint.com/
operating_system/os_multi_threading.htm
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 26 / 40
54. Sistemas Multithread
Paralelismo em N´ıvel de Thread
O grau com que um
processo pode ser
quebrado em m´ultiplas
threads simultˆaneas
define seu n´ıvel de
Paralelismo em N´ıvel
de Thread Fonte: https://www.tutorialspoint.com/
operating_system/os_multi_threading.htm
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 27 / 40
55. Sistemas Multithread
Abordagens para multithreading
Entrela¸cada (ou fine-grained multighreading)
O processador troca de thread a cada ciclo de clock (ou
seja, a cada instru¸c˜ao)
Fonte: [4]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 28 / 40
56. Sistemas Multithread
Abordagens para multithreading
Entrela¸cada (ou fine-grained multighreading)
Frequentemente usa Round-Robin para selecionar as threads,
pulando quem estiver parada (stall) naquele ciclo de clock
Fonte: [4]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 28 / 40
57. Sistemas Multithread
Abordagens para multithreading
Entrela¸cada (ou fine-grained multighreading)
Frequentemente usa Round-Robin para selecionar as threads,
pulando quem estiver parada (stall) naquele ciclo de clock
Fonte: [4]
A thread selecionada pode
ent˜ao ser decodificada,
e seguir na pipeline
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 28 / 40
58. Sistemas Multithread
Abordagens para multithreading
Entrela¸cada (ou fine-grained multighreading)
Frequentemente usa Round-Robin para selecionar as threads,
pulando quem estiver parada (stall) naquele ciclo de clock
Fonte: [4]
Note que cada uma
acessa um conjunto
distinto de registradores
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 28 / 40
59. Sistemas Multithread
Abordagens para multithreading
Entrela¸cada (ou fine-grained multighreading)
Vantagem: aumenta a vaz˜ao, executando outras threads
quando uma estiver parada
Fonte: [4]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 28 / 40
60. Sistemas Multithread
Abordagens para multithreading
Entrela¸cada (ou fine-grained multighreading)
Desvantagem: reduz a velocidade de threads individuais,
pois cada thread ser´a atrasada pela execu¸c˜ao das demais
Fonte: [4]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 28 / 40
61. Sistemas Multithread
Abordagens para multithreading
Bloqueada (ou coarse-grained multighreading)
O processador executa a mesma thread at´e ocorrer um
evento que cause grande atraso, como um cache miss
Fonte: [4]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 29 / 40
62. Sistemas Multithread
Abordagens para multithreading
Bloqueada (ou coarse-grained multighreading)
Vantagem: n˜ao necessita de mudan¸ca r´apida a cada ciclo,
nem atrasa a execu¸c˜ao de threads individuais
Fonte: [4]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 29 / 40
63. Sistemas Multithread
Abordagens para multithreading
Bloqueada (ou coarse-grained multighreading)
Desvantagem: pequenos stalls atrasam o processo, exigindo
que o processador esvazie a pipeline
Fonte: [4]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 29 / 40
64. Sistemas Multithread
Abordagens para multithreading
Simultˆanea (SMT)
Em um ´unico ciclo, as instru¸c˜oes s˜ao expedidas, a partir de
m´ultiplas threads, para as m´ultiplas unidades funcionais de
um processador superescalar
Combina assim multithreading de hardware com arquitetura
superescalar
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 30 / 40
65. Sistemas Multithread
Abordagens para multithreading
Simultˆanea (SMT)
Em um ´unico ciclo, as instru¸c˜oes s˜ao expedidas, a partir de
m´ultiplas threads, para as m´ultiplas unidades funcionais de
um processador superescalar
Combina assim multithreading de hardware com arquitetura
superescalar
Das 3, a ´unica abordagem realmente simultˆanea
As demais envolvem a mudan¸ca de uma thread a outra, usando
diferentes registradores, mas indo para a mesma ALU
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 30 / 40
66. Sistemas Multithread
Abordagens para multithreading
Simultˆanea (SMT)
Em um ´unico ciclo, as instru¸c˜oes s˜ao expedidas, a partir de
m´ultiplas threads, para as m´ultiplas unidades funcionais de
um processador superescalar
Combina assim multithreading de hardware com arquitetura
superescalar
Das 3, a ´unica abordagem realmente simultˆanea
As demais envolvem a mudan¸ca de uma thread a outra, usando
diferentes registradores, mas indo para a mesma ALU
Paralelismo assim s´o ´e visto com multiprocessadores
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 30 / 40
67. Sistemas Multithread
Exemplo
Considere 4 threads rodando em 4 processadores
superescalares
Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 31 / 40
69. Sistemas Multithread
Exemplo
Ou, alternativamente, em um quadricore, sem
multithreading, com 4 n´ucleos superescalares
Fonte: [1]
A cada ciclo, cada n´ucleo ´e capaz
de rodar 4 instru¸c˜oes simultˆaneas
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 31 / 40
70. Sistemas Multithread
Exemplo
Ou, alternativamente, em um quadricore, sem
multithreading, com 4 n´ucleos superescalares
Fonte: [1]
Embora a falta de paralelismo
em n´ıvel de instru¸c˜ao n˜ao per-
mita sempre haver 4 rodando
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 31 / 40
71. Sistemas Multithread
Exemplo
Ou, alternativamente, em um quadricore, sem
multithreading, com 4 n´ucleos superescalares
Fonte: [1]
Existem pequenos stalls, devidos
a dependˆencias entre instru¸c˜oes
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 31 / 40
72. Sistemas Multithread
Exemplo
Ou, alternativamente, em um quadricore, sem
multithreading, com 4 n´ucleos superescalares
Fonte: [1]
E grandes stalls, decorrentes,
por exemplo, de cache miss
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 31 / 40
73. Sistemas Multithread
Exemplo
Fonte: Adaptado de [1]
Agora considere as mes-
mas 4 threads rodando
em um processador su-
perescalar com suporte
multithread
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 32 / 40
74. Sistemas Multithread
Exemplo
Fonte: Adaptado de [1]
Na abordagem bloque-
ada, apenas grandes
stalls for¸cam a troca da
thread
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 32 / 40
76. Sistemas Multithread
Exemplo
Fonte: Adaptado de [1]
Como estava vazia, a
nova thread gasta um
tempo para preencher
a pipeline (custo de
inicializa¸c˜ao)
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 32 / 40
77. Sistemas Multithread
Exemplo
Fonte: Adaptado de [1]
Na abordagem en-
trela¸cada, a cada ciclo
de clock uma thread
diferente ´e escalonada
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 32 / 40
78. Sistemas Multithread
Exemplo
Fonte: Adaptado de [1]
Eliminando assim cus-
tos advindos de stalls,
embora mantendo o
advindo da falta de pa-
ralelismo em n´ıvel de
instru¸c˜ao
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 32 / 40
79. Sistemas Multithread
Exemplo
Fonte: Adaptado de [1]
Al´em de adicionar um
custo de troca de th-
read a cada ciclo, n˜ao
mostrado aqui
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 32 / 40
80. Sistemas Multithread
Exemplo
Fonte: Adaptado de [1]
Na abordagem si-
multˆanea, s˜ao explora-
dos tanto o paralelismo
em n´ıvel de instru¸c˜ao
quanto da thread
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 32 / 40
81. Sistemas Multithread
Exemplo
Fonte: Adaptado de [1]
Com m´ultiplas threads
usando os espa¸cos de
expedi¸c˜ao no mesmo
ciclo de clock
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 32 / 40
82. Multicore com Multithread
Implementa¸c˜ao de Sistemas Multicore
Superescalar
Cada n´ucleo corresponde a um processador superescalar
Ex: Intel Core Duo
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 33 / 40
83. Multicore com Multithread
Implementa¸c˜ao de Sistemas Multicore
Superescalar
Cada n´ucleo corresponde a um processador superescalar
Ex: Intel Core Duo
SMT
Cada n´ucleo implementa multithreading simultˆanea
Ex: Intel Core i7
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 33 / 40
85. Processadores SIMD
Processadores SIMD operam em vetores de dados
Uma ´unica instru¸c˜ao pode, por exemplo, adicionar 64
n´umeros enviando-os a 64 ALUs num ´unico ciclo de clock
Essa mesma tarefa, em um computador de prop´osito geral,
exigiria a itera¸c˜ao sobre cada elemento do arranjo
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 35 / 40
86. Processadores SIMD
Processadores SIMD operam em vetores de dados
Uma ´unica instru¸c˜ao pode, por exemplo, adicionar 64
n´umeros enviando-os a 64 ALUs num ´unico ciclo de clock
Essa mesma tarefa, em um computador de prop´osito geral,
exigiria a itera¸c˜ao sobre cada elemento do arranjo
Da´ı sua denomina¸c˜ao “vetorial”
Originalmente, de arranjo, embora a arquitetura em arranjo
n˜ao inclu´ısse processamento escalar, sendo um dispositivo
perif´erico
Processadores vetoriais fazem tanto processamento vetorial
quanto escalar, ainda que sejam otimizados para vetorial
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 35 / 40
87. Processadores SIMD
Nesse tipo de arquitetura, a execu¸c˜ao em paralelo
responde a uma ´unica instru¸c˜ao
E esta trabalha com vetores de dados
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 36 / 40
88. Processadores SIMD
Nesse tipo de arquitetura, a execu¸c˜ao em paralelo
responde a uma ´unica instru¸c˜ao
E esta trabalha com vetores de dados
Dependem, contudo, da existˆencia de paralelismo
em n´ıvel de dados
A possibilidade de se executar a mesma opera¸c˜ao em dados
independentes
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 36 / 40
89. Processadores SIMD
Implementa¸c˜oes atuais de SIMD
Extens˜oes Multim´ıdia
Multimedia Extension (MMX)
N˜ao cobriremos aqui
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 37 / 40
90. Processadores SIMD
Implementa¸c˜oes atuais de SIMD
Extens˜oes Multim´ıdia
Multimedia Extension (MMX)
N˜ao cobriremos aqui
Arquitetura Vetorial
Nasceram em supercomputadores, ainda hoje presentes
Ex: X86 - AVX-512
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 37 / 40
91. Arquitetura Vetorial – Organiza¸c˜ao
ALU com Pipeline
Decomp˜oe as opera¸c˜oes de ponto flutuante em
est´agios
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 38 / 40
92. Arquitetura Vetorial – Organiza¸c˜ao
ALU com Pipeline
De modo a que diferentes est´agios operem em
diferentes conjuntos de dados
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 38 / 40
93. Arquitetura Vetorial – Organiza¸c˜ao
ALU com Pipeline
Assim, dois vetores de n´umeros s˜ao apresentados
sequencialmente ao primeiro est´agio
Fonte: [2]Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 38 / 40
94. Arquitetura Vetorial – Organiza¸c˜ao
ALU com Pipeline
Na medida em que procede na pipeline, diferentes
conjuntos operar˜ao concorrentemente
Fonte: [2]Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 38 / 40
95. Arquitetura Vetorial – Organiza¸c˜ao
ALU com Pipeline
O ganho s´o ocorre com vetores, pois n˜ao h´a ganho
em opera¸c˜oes individuais
Fonte: [2]Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 38 / 40
96. Arquitetura Vetorial – Organiza¸c˜ao
ALUs Paralelas
A unidade de controle direciona os dados a cada
ALU, de modo a que rodem em paralelo
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 39 / 40
97. Arquitetura Vetorial – Organiza¸c˜ao
ALUs Paralelas
Isso ´e feito via Round-Robin, at´e que todos os
elementos dos vetores sejam processados
Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 39 / 40
98. Arquitetura Vetorial – Organiza¸c˜ao
ALUs Paralelas
Tamb´em ´e poss´ıvel usar pipelining em cada ALU
paralela
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 39 / 40
99. Referˆencias
1 Patterson, D.A.; Hennessy, J.L. (2013): Computer Organization and
Design: The Hardware/Software Interface. Morgan Kaufmann. 5a
ed.
2 Stallings, W (2010): Computer Organization and Architecture: Designing
for Performance. Prentice Hall. 8a
ed.
3 Harris, D.M.; Harris, S.L.: Digital Design and Computer Architecture.
Morgan Kaufmann. 2a
ed.
4 CS203 – Advanced Computer Architecture. UC-Riverside
https://slideplayer.com/slide/12804206/
5 Kopp, C.: Vector Processing Futures
https://www.ausairpower.net/OSR-0600.html
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 40 / 40