arquitetura e organizaÇÃo de computadores taxonomia …
Post on 01-Jan-2022
3 Views
Preview:
TRANSCRIPT
ARQUITETURA E ORGANIZAÇÃODE COMPUTADORES
Taxonomia de Flynn
CLASSIFICANDO OS COMPUTADORES
A taxonomia de Flynn é uma classificação de arquiteturas de computadores, proposta por Michael J. Flynn em 1966.
O sistema de classificação ficou preso e tem sido usado como uma ferramenta no design de processadores modernos e suas funcionalidades.
Desde o surgimento das unidades centrais de processamento multiprocessamento (CPUs), um contexto de multiprogramação evoluiu como uma extensão do sistema de classificação.
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 2
VISITANDO A TAXONOMIA DE FLYNN
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 3
* SD (Single Data) MD (Multiple Data)
SI
(Single
Instruction)
SISD (Máquinas von Neumann) SIMD (Máquinas Vetoriais)
MI
(Multiple
Instruction)
MISD (Sem representante /
Arquiteturas Sistólicas)
MIMD (Multiprocessadores e
Multicomputadores)
*[Flynn, 1972]
**[De Rose, 2003]
*
*
*
*
*
*
*
*
VISITANDO A TAXONOMIA DE FLYNN
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 4
* SD (Single Data) MD (Multiple Data)
SI
(Single
Instruction)
SISD (Máquinas von Neumann) SIMD (Máquinas Vetoriais)
MI
(Multiple
Instruction)
MISD (Sem representante /
Arquiteturas Sistólicas)
MIMD (Multiprocessadores e
Multicomputadores)
*
*
*
*
*
*
*
*
*[Flynn, 1972]
**[De Rose, 2003]
MONOCICLO VS. PIPELINE
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 5
Tempo
REGIM DM REGALU
2 4 6 8 10 12 14 16 18
REGIM DM REGALU
Ordem de
ExecuçãoMono-ciclo
ALUREGIM DM REG
ALUREGIM DM REG
ALUREGIM DM REG
Pipelined
Tempo 2 4 6 8 10 12 14 16 18
Ordem de
Execução
SINGLE CORE - PIPELINING
Sem Paralelismo.
Reuso do hardware.
CPI ideal = 1 (após encher o pipeline).
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 6
Como resolvemos:
- Dependência de recursos?
- Dependência de dados?
ALUREGIM DM REG
ALUREGIM DM REG
ALUREGIM DM REG
Pipelined
2 4 6 8 10 12 14 16 18
Ordem de
Execução
ALUREGIM DM REG
SINGLE CORE - PIPELINE SUPERSCALAR
Pipelining continua ativo
IPC ideal >1
ILP Paralelismo de instruções.
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 7
ALUREGIM DM REG
ALUREGIM DM REG
ALUREGIM DM REG
ALUREGIM DM REG
CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8
Tempo
SINGLE CORE - PIPELINE SUPERSCALAR O³ (OUT-OF-ORDER)
Início do Paralelismo (ILP – Instruction Level Parallelism)
Busca, decodificação e execução de mais de uma instrução por ciclo.
Paralelismo agressivo com despacho e execução fora-de-ordem (OOO).
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 8
Memory Interface
Pre-Decode
FetchDecode/
Rename
PC
Inst
r. Ca
che
Inst
r. Bu
ffer
ROB
Disp
atch
Data
Cac
he
Int Queue
FP Queue
Int unit
FP unit
FP unit
Int unit
Int unit
Int Reg
File
FP Reg
File
PROCESSADORES VLIW
Compilador entende de arquitetura.
Controle e despacho simplificados.
Não mantém retro-compatibilidade.
Menor densidade do código (muitos nops).
Requer muitas portas de acesso a dados (cache).
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 9
Instruction Fetch
dest
src
src
dest
src
src
dest
src
src
Register File Read
ExecutionUF UF UF
D-Cache
I-Cache
Register File
State Update
Very Long Instruction Word
...
...
PROCESSADORES VLIW
Superescalar VLIW
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 10
Compilador
CPU
UF UF UF UF
CPUInstruction
Scheduler
UF UF UF UF
Compilador
TAXONOMIA DE FLYNN
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 11
* SD (Single Data) MD (Multiple Data)
SI
(Single
Instruction)
SISD (Máquinas von Neumann) SIMD (Máquinas Vetoriais)
MI
(Multiple
Instruction)
MISD (Sem representante /
Arquiteturas Sistólicas)
MIMD (Multiprocessadores e
Multicomputadores)
*[Flynn, 1972]
**[De Rose,
2003]
*
*
*
*
*
*
*
*
MÁQUINAS SIMD
Processador opera sobre vetores de dados
Controle único
1 Contador de programa
1 Bloco de controle
1 Instrução sendo executada
Múltiplas unidades de execução (blocos operacionais)
ALU
Registradores de dados
Registradores de endereço
Memória de dados local
Interconexões com unidades vizinhas
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 12
MÁQUINAS SIMD (2)
Processador hospedeiro SISD
Executa operações sequenciais
Calcula endereços
Acessa memória de instruções
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 13
Unidade Execução
Unidade Execução
Unidade Execução
Unidade Execução
Fluxo Dados
Fluxo Dados
Fluxo Dados
Fluxo Dados
Fluxo Instruções
EFICIÊNCIA DE ARQUITETURAS SIMD
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 14
UF0 UF1 UF2 UF3
i8? i8?
i4? i4?
i0i1i2i3 (br) if (id % 2 == 0) goto i8i4i5i6i7i8i9i10
EFICIÊNCIA DE ARQUITETURAS SIMD
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 15
UF0 UF1 UF2 UF3
Halt! Halt!
i4-i7 i4-i7
Tem
po d
e e
xecu
ção
UF0 UF1 UF2 UF3
i8... i8...i8... i8...
i0i1i2i3 (br) if (id % 2 == 0) goto i8i4i5i6i7i8i9i10
EFICIÊNCIA DE ARQUITETURAS SIMD
SIMD são eficientes quando processam arrays em laços “for”
Eficientes quando aplicação tem paralelismo de dados massivo
SIMD são ineficientes em aplicações do tipo “case”
Cada unidade de execução executa operação diferente, dependendo do dado
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 16
UF0 UF1 UF2 UF3
Halt! Halt!
i4-i7 i4-i7
Tem
po d
e e
xecu
ção
UF0 UF1 UF2 UF3
i8... i8...i8... i8...
PROCESSADORES VETORIAIS
Caso aplicado de máquinas SIMD
“processador vetorial” com pipeline associado a um processador hospedeiro escalar convencional
Processador vetorial … Busca dados vetoriais de “registradores vetoriais” ou diretamente da memória
Executa operações sobre os vetores através de 1 ou mais pipelines funcionais paralelos
Exemplo: Cray C-90 Registrador vetorial tem 64 x 64 bits
2 pipelines funcionais vetoriais
Outras máquinas vetoriais Convex C3, DEC VAX 9000, Fujitsu VP2000, Hitachi S-810, IBM 390/VF
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 17
PROCESSADORES VETORIAIS
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 18
Cro
ss-B
ar
Main
Memory
Unit #0
Main
Memory
Unit #1
Main
Memory
Unit #31
Main
Memory
Unit #2
Main
Mem
ory
Acc
ess
Co
ntr
ol Vector Unit x 8
Load/
Store
Mask
Register
Mask
Logical
Multiply
Add/Shift
Divide
Scalar Unit
I-Cache
D-Cache
Scalar
Register
Main
Memory
Unit #3
Vector
Register
Scalar
Pipeline
[Earth
Simulator]
EARTH SIMULATOR (BUILT BY NEC $500MI)NO. 1 SYSTEM FROM JUNE 2002 TO JUNE 2004
DSDB - INFRAESRUTURA COMPUTACIONAL 19
EARTH SIMULATOR (BUILT BY NEC)NO. 1 SYSTEM FROM JUNE 2002 TO JUNE 2004
DSDB - INFRAESRUTURA COMPUTACIONAL 20
INSTRUÇÕES SIMD
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 21
INSTRUÇÕES SIMD
Máquinas SISD/SIMD têm uma mistura de instruções SISD e SIMD
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 22
y3 y2 y1 y0
x3 x2 x1 x0
OP OP OP OP
x3 x2 x1 x0
Fonte 1
Fonte 2
Destino
EXEMPLOS
Mult/Add
Compares
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 23
73 2 5 6
51 3 5 23
> > > >
000...0 111...1 000...0 111.1
Fonte 1
Fonte 2
Destino
y3 y2 y1 y0
x3 x2 x1 x0
x x x x
(x3*y3)+(x2*y2) (x1*y1)+(x0*y0)
Fonte 1
Fonte 2
Destino
INTEL MMX – 8X64 BITS REGISTRADORES
(8bits x 8) Packed Bytes
(16bits x 4) Packed Words
(32bits x 2) Packed Doublewords
(64bits x 1) Packed Quadword
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 24
b7 b6 b5 b4 b3 b2 b1 b0
b3 b2 b1 b0
b1 b0
b0
INTEL SSE - 8X128 BITS REGISTRADORES
128-Bit Packed Double-Precision FP
128-Bit Packed Byte Integers
128-Bit Packed Word Integers
128-Bit Packed Doubleword Integers
128-Bit Packed Quadword Integers
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 25
REGISTRADORES X86 (INTEL/AMD)
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 26
MM0/ST0MM1/ST1MM2/ST2MM3/ST3MM4/ST4MM5/ST5MM6/ST6MM7/ST7
Extensão Multimedia e
Registradores de Ponto-Flutuante
Fluxo SIMD
Registradores de Extensão SSE
XMM0XMM1XMM2XMM3XMM4XMM5XMM6XMM7XMM8XMM9XMM10XMM11XMM12XMM13XMM14XMM15
SSE/AVX-128 suportam loads de 128 bits
AVX-256 suporta load de 256 bits
AVX-512 carrega até 512 bits (64 bytes!!!)
USANDO OPERAÇÕES VETORIAIS COM INTRINSICS
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 27https://software.intel.com/sites/landingpage/IntrinsicsGuide/
USANDO OPERAÇÕES VETORIAIS COM INTRINSICS
__m128 _mm_add_ps (__m128 a, __m128 b)
Synopsis
__m128 _mm_add_ps (__m128 a, __m128 b)
#include "xmmintrin.h"
Instruction: addps xmm, xmm
CPUID Flags: SSE
Description:
Add packed single-precision (32-bit) floating-point elements in a and b, and store the
results in dst.
Operation
FOR j := 0 to 3
i := j*32
dst[i+31:i] := a[i+31:i] + b[i+31:i]
ENDFOR
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 28https://software.intel.com/sites/landingpage/IntrinsicsGuide/
Performance
Architecture Latency Throughput (CPI)
Skylake 4 0.5
Broadwell 3 1
Haswell 3 1
Ivy Bridge 3 1
USANDO OPERAÇÕES VETORIAIS COM INTRINSICS
#include "xmmintrin.h"
void main() {
__m128 a, b, c;
float va[128], vb[128], vc[128];
for (int i=0; i<128; i+=4) {
a = _mm_load_ps(&va[i]);
b = _mm_load_ps(&vb[i]);
c = _mm_add_ps(a, b);
_mm_store_ps(&vc[i], c);
}
}
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 29https://software.intel.com/sites/landingpage/IntrinsicsGuide/
Performance
Architecture Latency Throughput (CPI)
Skylake 4 0.5
Broadwell 3 1
Haswell 3 1
Ivy Bridge 3 1
TAXONOMIA DE FLYNN
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 30
* SD (Single Data) MD (Multiple Data)
SI
(Single
Instruction)
SISD (Máquinas von Neumann) SIMD (Máquinas Vetoriais)
MI
(Multiple
Instruction)
MISD (Sem representante /
Arquiteturas Sistólicas)
MIMD (Multiprocessadores e
Multicomputadores)
*[Flynn, 1972]
**[De Rose,
2003]
*
*
*
*
*
*
*
*
PROCESSADORES SISTÓLICOS
Considerado por alguns autores como máquinas MISD
Processamento “data-flow” Cada processador executa operação quando dados de entrada estão disponíveis
Processadores elementares Executam operação única, não programáveis
Aplicações em processamento digital de sinais Processamento de imagens, voz, ...
Integração num único chip
São utilizados em: Em sistemas eletrônicos dedicados
Como unidade funcional especializada de um processador hospedeiro convencional
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 31
PROCESSADORES SISTÓLICOS
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 32
Dados Soma Dados Multiplicação Dados Derivada X Dados Derivada Y
Resultado
Mesmo Dado
Múltiplas Instruções
TAXONOMIA DE FLYNN – MIMD
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 33
SD (Single Data) MD (Multiple Data)
SI
(Single
Instruction)
SISD (Máquinas von Neumann) SIMD (Máquinas Array)
MI
(Multiple
Instruction)
MISD (Sem representante até
agora / Arquiteturas Sistólicas)
MIMD (Multiprocessadores e
Multicomputadores)
*[Flynn, 1972]
**[De Rose, 2003]
MULTI-PROCESSORS
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 34
Multiprocessadores
Máquina UMAEspaço de
Endereçamento
Proc
Cache
Interconexão
Memória Principal
Proc
Cache
I/O
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Multiprocessadores
Máquina NUMAEspaço de
Endereçamento
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Mem. Mem. Mem. Mem. Mem. Mem.
Interconexão I/O
Multicomputadores
Cluster de Máquinas
Espaço de
Endereçamento
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Mem. Mem. Mem. Mem. Mem. Mem.
InterconexãoI/O I/O I/O I/O I/O I/O
[Stallings, 2005]
ESPAÇO DE ENDEREÇAMENTO PRIVADO VS. COMPARTILHADO
Espaço privado
Cada processador tem sua visão da memória.
Cada um terá sua variável privada.
Comunicação através da troca de mensagens (mais lento).
Normalmente não ocorrerá condições de corrida.
Espaço compartilhado
Todos os processadores tem a mesma visão da memória.
Mesma variável pode ser visível para todos.
Comunicação por variável compartilhada (mais rápido).
Haverá naturalmente condições de corrida (recursos compartilhados).
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 35
MULTI-PROCESSORS
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 36
Multiprocessadores
Máquina UMAEspaço de
Endereçamento
Proc
Cache
Interconexão
Memória Principal
Proc
Cache
I/O
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Multiprocessadores
Máquina NUMAEspaço de
Endereçamento
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Mem. Mem. Mem. Mem. Mem. Mem.
Interconexão I/O
Multicomputadores
Cluster de Máquinas
Espaço de
Endereçamento
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Mem. Mem. Mem. Mem. Mem. Mem.
InterconexãoI/O I/O I/O I/O I/O I/O
[Stallings, 2005]
CLUSTER DE MÁQUINAS
Conhecidos como COW/NOW: Cluster/Network of Workstations.
Paralelismo: Bastante claro em nível de processos.
Diversos espaços de endereçamento.
SO para cada máquina: Linux ou proprietário.
Tecnologias de Rede: Ethernet, Myrinet, InfiniBand.
Escalonador de Jobs: Globus, OAR Cigri.
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 37
MULTI-PROCESSORS
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 38
Multiprocessadores
Máquina UMAEspaço de
Endereçamento
Proc
Cache
Interconexão
Memória Principal
Proc
Cache
I/O
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Multiprocessadores
Máquina NUMAEspaço de
Endereçamento
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Mem. Mem. Mem. Mem. Mem. Mem.
Interconexão I/O
Multicomputadores
Cluster de Máquinas
Espaço de
Endereçamento
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Mem. Mem. Mem. Mem. Mem. Mem.
InterconexãoI/O I/O I/O I/O I/O I/O
[Stallings, 2005]
MÁQUINAS NUMA
Na arquitetura NUMA as partições dos Cores e as memórias são agrupadas em Nós
Uma máquina pode ter vários Nós NUMA, dependendo do modelo e quantidade de memória/processadores
A latência de acesso de um processador com a memória dentro de um Nó NUMA é muito baixa, pois o barramento torna eficiente o acesso dentro do mesmo Nó
Entretanto o acesso do processador de um Nó X para a memória em um Nó Y é maior pois é necessário atravessar a interconexão que liga os diversos Nós
Pode parecer insignificante esta penalidade entretanto em acessos intensivos de memória a Nós remotos pode ter grande impacto no desempenho do sistema
A razão da diferença de latência entre o nodo local e um nodo remoto é chamado de NUMA factor.
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 39
MÁQUINAS NUMAMAPEAMENTO DE ENDEREÇOS
Diferentes tipos de mapeamento de endereço para os nodos NUMA podem ser adotados:
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 40
0
4
8
…
1
5
9
…
2
6
10
…
3
7
11
…
0
1
2
…
10
11
12
…
20
21
22
…
30
31
32
…
0
~
4
20
…
5
~
9
…
10
~
14
…
15
~
19
…
Entrelaçado Linear Bloco Entrelaçado
MÁQUINAS NUMA
Exemplo de NUMA com capacidade total de 400 páginas de memória
Cada nó contém um quadro de páginas contíguo
Considerando as latências: Caches/Memória igual a 𝐦 𝒄𝒊𝒄𝒍𝒐𝒔
Interconexão/link igual a 𝐧 𝒄𝒊𝒄𝒍𝒐𝒔
O custo de acesso do Proc 0 acessar:
Páginas 0~99 = m 𝑐𝑖𝑐𝑙𝑜𝑠
Páginas 100~299 = n +m 𝑐𝑖𝑐𝑙𝑜𝑠
Páginas 300~399 = 2n +m 𝑐𝑖𝑐𝑙𝑜𝑠
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 41
Proc 0
Cache
Proc 1
Cache
Mem.
0-99
Mem.
100-199
Interconexão
Proc 2
Cache
Proc 3
Cache
Mem.
200-299
Mem.
300-399
Interconexão
Interconexão
Interconexão
MÁQUINAS NUMANON-UNIFORM MEMORY ACCESS
COMA (Cache Only Memory Architecture)
Formado com memórias cache de alta capacidade.
Coerência é obtida em hardware com a atualização simultânea em múltiplos nós dos dados.
CC-NUMA (Cache Coherent NUMA)
Coerência de cache é garantida pelo hardware.
NCC-NUMA (Non-Cache Coherent NUMA)
Não existe garantia de coerência da cache ou não existe cache.
SC-NUMA (Software Coherent NUMA) /DSM.
Coerência de cache é garantida em software.
NORMA ou NCC-NUMA com coerência por software.
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 42[Stallings, 2005]
[De Rose, 2003]
MULTI-PROCESSORS
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES 43
Multiprocessadores
Máquina UMAEspaço de
Endereçamento
Proc
Cache
Interconexão
Memória Principal
Proc
Cache
I/O
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Multiprocessadores
Máquina NUMAEspaço de
Endereçamento
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Mem. Mem. Mem. Mem. Mem. Mem.
InterconexãoI/O
Multicomputadores
Cluster de Máquinas
Espaço de
Endereçamento
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Proc
Cache
Mem. Mem. Mem. Mem. Mem. Mem.
Interconexão
I/O I/O I/O I/O I/O I/O
[Stallings, 2005]
top related