SlideShare uma empresa Scribd logo
1 de 99
Baixar para ler offline
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
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
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
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
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
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
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
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
Arquiteturas Paralelas
Multiple Instruction,
Multiple Data (MIMD)
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 5 / 40
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Sistemas Multicore
Organiza¸c˜ao
L2 Compartilhada
Ex: Intel Core Duo
Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 24 / 40
Sistemas Multicore
Organiza¸c˜ao
L2 Compartilhada
Ex: Intel Core Duo
L3 Compartilhada
Ex: Intel Core i7
Fonte: [2] Fonte: [2]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 24 / 40
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Sistemas Multithread
Exemplo
Ou, alternativamente, em um quadricore, sem
multithreading, com 4 n´ucleos superescalares
Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 31 / 40
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
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
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
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
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
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
Sistemas Multithread
Exemplo
Fonte: Adaptado de [1]
A pipeline ´e esvaziada e
a nova thread rodada
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 32 / 40
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
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
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
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
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
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
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
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
Arquiteturas Paralelas
Single Instruction, Multiple
Data (SIMD)
Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 34 / 40
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Semelhante a (ACH2055) Arquitetura de Computadores - Aula 11

(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08Norton Trevisan Roman
 
(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01Norton Trevisan Roman
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia J Chaves Silva
 
(ACH2044) Sistemas Operacionais - Aula 02
(ACH2044) Sistemas Operacionais - Aula 02(ACH2044) Sistemas Operacionais - Aula 02
(ACH2044) Sistemas Operacionais - Aula 02Norton Trevisan Roman
 
(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17Norton Trevisan Roman
 
164519997 curso-de-redes-laercio-vasconcelos-capitulo-01
164519997 curso-de-redes-laercio-vasconcelos-capitulo-01164519997 curso-de-redes-laercio-vasconcelos-capitulo-01
164519997 curso-de-redes-laercio-vasconcelos-capitulo-01Marco Guimarães
 
(ACH2044) Sistemas Operacionais - Aula 03
(ACH2044) Sistemas Operacionais - Aula 03(ACH2044) Sistemas Operacionais - Aula 03
(ACH2044) Sistemas Operacionais - Aula 03Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20Norton Trevisan Roman
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Charles Fortes
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Thiago Rondon
 
Redes 1 - Sockets em C#
Redes 1 - Sockets em C#Redes 1 - Sockets em C#
Redes 1 - Sockets em C#Marcelo Charan
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopAlexei Znamensky
 
REDE LOCAL - COMPLETO
REDE LOCAL - COMPLETOREDE LOCAL - COMPLETO
REDE LOCAL - COMPLETOElizeu Ferro
 
Desenvolvendo aplicações Web escaláveis com PHP
Desenvolvendo aplicações Web escaláveis com PHPDesenvolvendo aplicações Web escaláveis com PHP
Desenvolvendo aplicações Web escaláveis com PHPElton Minetto
 
Unidade 3.2 instalação do sistemas operacionais livres
Unidade 3.2   instalação do sistemas operacionais livresUnidade 3.2   instalação do sistemas operacionais livres
Unidade 3.2 instalação do sistemas operacionais livresJuan Carlos Lamarão
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dadosSuissa
 

Semelhante a (ACH2055) Arquitetura de Computadores - Aula 11 (20)

(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08
 
(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia
 
(ACH2044) Sistemas Operacionais - Aula 02
(ACH2044) Sistemas Operacionais - Aula 02(ACH2044) Sistemas Operacionais - Aula 02
(ACH2044) Sistemas Operacionais - Aula 02
 
OpenSolaris a Céu Aberto
OpenSolaris a Céu AbertoOpenSolaris a Céu Aberto
OpenSolaris a Céu Aberto
 
(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17
 
Cygwin
CygwinCygwin
Cygwin
 
164519997 curso-de-redes-laercio-vasconcelos-capitulo-01
164519997 curso-de-redes-laercio-vasconcelos-capitulo-01164519997 curso-de-redes-laercio-vasconcelos-capitulo-01
164519997 curso-de-redes-laercio-vasconcelos-capitulo-01
 
(ACH2044) Sistemas Operacionais - Aula 03
(ACH2044) Sistemas Operacionais - Aula 03(ACH2044) Sistemas Operacionais - Aula 03
(ACH2044) Sistemas Operacionais - Aula 03
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.
 
Cluster
ClusterCluster
Cluster
 
Redes 1 - Sockets em C#
Redes 1 - Sockets em C#Redes 1 - Sockets em C#
Redes 1 - Sockets em C#
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl Workshop
 
REDE LOCAL - COMPLETO
REDE LOCAL - COMPLETOREDE LOCAL - COMPLETO
REDE LOCAL - COMPLETO
 
Desenvolvendo aplicações Web escaláveis com PHP
Desenvolvendo aplicações Web escaláveis com PHPDesenvolvendo aplicações Web escaláveis com PHP
Desenvolvendo aplicações Web escaláveis com PHP
 
Unidade 3.2 instalação do sistemas operacionais livres
Unidade 3.2   instalação do sistemas operacionais livresUnidade 3.2   instalação do sistemas operacionais livres
Unidade 3.2 instalação do sistemas operacionais livres
 
Protocolo FTP e DNS
Protocolo FTP e DNSProtocolo FTP e DNS
Protocolo FTP e DNS
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (20)

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
 

Último

Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOAulasgravadas3
 
Atividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxAtividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxDianaSheila2
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfFernandaMota99
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 

Último (20)

Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
 
Atividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxAtividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptx
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdf
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 

(ACH2055) Arquitetura de Computadores - Aula 11

  • 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
  • 9. Arquiteturas Paralelas Multiple Instruction, Multiple Data (MIMD) Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 5 / 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
  • 47. Sistemas Multicore Organiza¸c˜ao L2 Compartilhada Ex: Intel Core Duo Fonte: [2] Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 24 / 40
  • 48. Sistemas Multicore Organiza¸c˜ao L2 Compartilhada Ex: Intel Core Duo L3 Compartilhada Ex: Intel Core i7 Fonte: [2] Fonte: [2] Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 24 / 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
  • 68. Sistemas Multithread Exemplo Ou, alternativamente, em um quadricore, sem multithreading, com 4 n´ucleos 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
  • 75. Sistemas Multithread Exemplo Fonte: Adaptado de [1] A pipeline ´e esvaziada e a nova thread rodada 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
  • 84. Arquiteturas Paralelas Single Instruction, Multiple Data (SIMD) Norton Trevisan Roman (norton@usp.br) 6 de dezembro de 2019 34 / 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