SlideShare uma empresa Scribd logo
1 de 41
Abstract + Agenda
Contribuições dos Múltiplos Níveis de Cache e Data Bus Path Lengths
Comentários sobre os Conceitos de Paralelismo em PipeLines
Que Features auxiliam o aumento do Paralelismo?
Qual a influência que se pode esperar dos Hábitos de Programação?
O que pode ser feito, para Otimizar Programas e Melhorar a Performance?
1 - 11min – Contribuição dos Caches no Paralelismo
Caches em diversos Níveis hierárquicos
2 - 10min – Conceitos de Paralelismo em PipeLines
Evolução, desde o /360-91
3 - 6min – Detalhes de Features Tecnológicas:
Super Escalar, Virtual Registers, Out Of Order
Fetch&Execution
4 - 5min – Exemplos no uso de PipeLines
Bons e Maus hábitos de Programação
5 - 8min – O que se pode fazer para otimizar?
1min Opções de Compiladores [C/C++, PL/I, COBOL]
1min Traces e Opções de DeBugging
6min CPUMF + HIS dão “feed-back”
6 - 5min – Conclusões, Agradecimentos e Perguntas
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Mistério ou Tecnologia?
Paralelismo!
#1 = Contribuição dos Caches
#2 = Múltiplas PipeLines
#3 = Quais Features contribuem?
#4 = Boas e Más Práticas
#5 = Que fazer para otimizar?
#6 = Conclusões
Caches em
Diversos Níveis!
Código
Auto
alterável?
Traces?
DeBugging?
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
#1 = Contribuição
dos Caches
Aplicação:
FORTRAN IV H
COBOL
Assembler F
Linkage Editor
SORT
Heat Transfer
Data Reduction
Curve Fitting
Integral Evaluation
Matrix Eingenvalue
Differential
Equation
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Chip dos 2 SCs dos zEC12
4 x 48MB=192MB
em cada Chip SC
2 x SCs = 384MB
em cada Book,
4 Books no CEC
= 1,536GB
125Acessos
Simultâneos!
Measures 28.4 x 23.9 mm
CMOS 13S 32nm SOI technology, with 15 layers of metal
Has 3.3 billion transistors and 2.1 billion cells for eDRAM
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Caches nas 6 PUs dos zEC12
L1 I 64KB
L1D 96KB
L2 I 1MB
L2D 1MB
L3 48MB
L4 384MB
CS 3TB
LineSize 256B
6 cada MCM
36 PU por Book
144 PU por CEC
120 no máximo
101 CPUs
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
S/360 Data Paths
zSeries 16 Bytes
S/360-65 8 Bytes
S/360-50 4 Bytes
S/360-40 2 Bytes
S/360-30 1 Byte
LR L %
? ? ?
1 3 8
3 4 13
8 12 37
22 32 100
MicroSeg
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
z9/z990 Data Paths:
4 acessos por
Memory Card
Bi-Direcional
16 Bytes/ciclo
Protection Key
Separado
M a s . . .
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
#2 = Múltiplas PipeLines
no z196
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Exemplo de 1.992!
1
2
3
...
Execução possível graças a:
Exemplo para um ES/9000-711: (~ 1.992) - ‘Look Ahead’ de Instr. e Dados
Suponha o seguinte conjunto de Instruções, - Pipeline de Instruções (32!)
onde as setas representam dependência - Execução Múltipla (9 ALUs!)
dos resultados de instruções anteriores: - Execução fora da sequência
LABEL OPCD OPERANDOS ExUs: CICLO CICLO CICLO CICLO
CALCULAR L 5,CAMPO 585
A 5,VALOR 5A5
L 9,TESTE 589
L 7,PARM 587
MH 9,FATOR 4C9
S 5,CONSTANT 5B5
C 5,LIMITE 595
CONTINUA EQU *
Resultado: CORRETO, executando 7 Instruções em apenas 4 Ciclos
Notar: Instruções L 9,TESTE e L 7,PARM executadas antes da anterior: A 5,VALOR
As 3 Instruções executadas no primeiro Ciclo necessitaram 3 ExUs, uma para cada
Isto só foi possível porque todas as instruções e seus dados estavam disponíveis
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Sequenciamento de 7 e 9
Instruções
Ciclos:
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Comparando z10, z196 e
zEC12
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
DUPLA
DUPLA
BHT
PHT
BTB
DAT
+
TLB2
L1 I 64KB
L1D 128KB
L2 1,5MB
L3 24MB
L4 192MB
L1 I 64KB=256
L1D 128KB=512
CACHE I
+ TLB1I
CACHE D
+ TLB1D
3 54
Execution Units do z196
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Execution Units do zEC12
CACHE I
+ TLB1I CACHE D
+ TLB1D
3 73
DAT
+
TLB2
BHT
PHT
BTB
DUPLA
DUPLA
16KB
L3 48MB
L4 384MB
L1 I 64KB= 256
L1D 96KB= 384
L2 I 1MB=4.096
L2D 1MB=4.096
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
#3 = Quais Features
contribuem?
0 – Multiple Queues
1 – Virtual Registers
2 – 1MB Pages/Frames
3 – 2GB Pages/Frames
4 – TLB1I e TLB1D
com Selective Purge
5 – TLB2 para os
demais Caches
6 – Non Quiescing SSKE
7 – Interlocked Access
8 – High Word Facility
9 – Transactional Execution
IFB XU
TLB
ICM
ISU
IDU
DUPLA DUPLA
RU
IFB Instruction Fetch & Branch
prediction
ICM Instruction Cache & Merge
IDU Instruction Decode Unit
ISU Instruction Sequence Unit
FXU FiXed-point Unit
BFU Binary & Hex Floating-point Unit
DU Decimal Unit
LSU Load-Store Unit for Operands
XU Translation Unit (DAT)
RU Recovery Unit
Unidades Funcionais dos z196
Paralelismo para até 5 Instruções!
CPUMF
3 Decoded
5 Finished
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Glossário:
Unidades Funcionais dos zEC12
Paralelismo para até 7 Instruções!
CPUMF
3 Decoded
7 Finished
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
#4 = Boas e Más Práticas
Não usar as Boas significa…
. . .
DO;
. . .
IF ENDFILE THEN DO;
. . .
END;
. . .
IF ERRO THEN DO;
. . .
END;
. . .
IF RARAMENTE THEN DO;
. . .
END;
. . .
WHILE ( NOT ( FIM ) );
. . .
. . .
IF TIPO=1001 THEN DO;
. . .
END;
. . .
IF TIPO=2193 THEN DO;
. . .
END;
. . .
IF TIPO=1001 THEN DO;
. . .
END;
. . .
ELSE DO;
PUT ‘REGISTRO NÃO PROCESSADO’;
PUT ‘TIPO INVÁLIDO, FOI IGNORADO’;
END;
. . .
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Código Auto Alterável!
The L2 directory maintains the consistency between the L1
caches. If, for example, a cache line is owned by both I-
cache and D-cache and a store operation is executed, the
D-cache requests exclusive ownership of the cache line
from the L2. Before the L2 grants exclusivity, the L2 sends
an invalidation request to the I-cache so that stores into
the instruction stream are recognized. Once the store is
completed, the updated instruction text can be refetched
by the I-cache causing the D-cache to lose exclusivity again.
MVI NOP+1,X’F0’ OPEN (MVI PARMLIST,X’??’)
MVI NOP+1,X’00’ LOAD SVC 8SVC 122 x’7A’
ST R,*+4 ! ! ! ORG CSECT+N*256
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
#5 = O que fazer
para otimizar?
Aproximar:
 Códigos
 Variáveis
Reduzir:
 Jumps
 Calls
 SVCs
Eliminar:
 Traces
 DeBugging
Algoritmos!
PrefetchData?
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Exemplo deExemplo de CPUMF + HISCPUMF + HIS z196z196
Supervisor e Problem
States
VERTICAL HIGHs
VERTICAL LOWs
ZIIPs
CICLE TIME das z196: 0,192.012 ns
MELHOR= 12% 12% 11% 11% 10% 10%
Mínimo: 4,31 0,83 5,69 1,09 4,91 0,94
Média: 4,88 0,94 6,38 1,22 5,47 1,05
Máximo: 5,61 1,08 7,58 1,45 6,06 1,16
PIOR= 15% 15% 19% 19% 11% 11%
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Exemplo deExemplo de CPUMF + HISCPUMF + HIS z10z10
Instruction e Data Cache Hit%
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
#6 - Conclusões:
• Os Limites Físicos impõem restrições
• Opções de Compiladores . . .
• Otimizar Códigos, aproveitando as
vantagens já existentes!
• Objetivar “Desperdício ZERO” !
4,54 3,84 20 30cm
CycleTime ns GHz
z196 0,192 5,208 Freqüência: > 5,6%
Ciclo: < 7,3%
zEC120,178 5,5 Capacidade > 50%
3,64
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Perguntas ? ? ?
Obrigado !
orsoni@maffei.com.br
BoasTodos os Manuais e RedBooks: © IBM
Cursos MFTS00 e MFTS30 : © MAFFEI
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Se necessário
exibir, estes
dados mostram
que, não
necessariamente,
os maiores
valores
individuais
apontam a PU
mais “produtiva”
ou mais rápida.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
www.amd.com
Notar a semelhança Tecnológica
no agrupamento das Unidades e a
presença dos Caches L2 no chip.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
© 1998 Advanced Micro Devices, Inc. All rights reserved.
DUPLA Ponto Fixo
Notar a distribuição das Unidades, seu
sequenciamento e os TLBs em cada Cache.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
© 1998 Advanced Micro Devices, Inc. All rights reserved.
AMD-K6(TM) 3D Processor Simulation CD-ROM
1.0 License Agreement
---------------------------------------------------------------------
© Copyright 1997, 1998, Advanced Micro Devices, Inc.
Advanced Micro Devices, Inc. ("AMD") hereby grants
you permission to use, copy, and distribute documents,
related graphics, and software delivered from this AMD
CD-ROM ("Materials") provided that you (1) include both
the above copyright notice and this permission notice
in all copies; (2) do not modify the Materials; (3) use the
Materials for non-commercial purposes within your
organization only; and (4) with respect to software
Materials, do not decompile, reverse engineer, or
disassemble such software.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 00: Início de um
“Stream” [16 bytes] de
Instruções (realmente,
sobreposto à execução
do “Stream” anterior).
Notar a disposição das
várias Unidades:
Instruction Buffer,
Decoders, Scheduler e
das Execution Units:
Load, Store, Branch,
Floating e Fixed Point,
todas trabalhando em
Paralelo.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 01: O
Instruction Buffer
recebe um novo
“Stream” de 16 bytes.
[Pretende-se
esclarecer que há
décadas que não se
executa mais uma
Instrução por vez, mas
sim, ativa-se em
paralelo vários
Circuitos “dedicados”:
Load, Store, Branch,
Ponto Fixo e Flutuante]
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 02: As duas
primeiras Instruções
são Decodificadas em
2 Micro Operações e
mais 2 NOPs, porque o
Decodificador sempre
produz quatro µOps
(Op Quad).
As Instruções 3 e 4 não
puderam ser
Decodificadas porque
ambos Decodificadores
Short estavam
‘ocupados’ com as
Instruções 1 e 2.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 03: Transferido o
primeiro Op Quad para
o Scheduler, a
Instrução 3 resulta em
2 µOps e a Instrução 4
em mais um µOp e um
NOP.
NOPs são sempre
terminados no
Scheduler e não são
“executados”.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 04: O Op Quad
vem para o Scheduler
e novo Op Quad é
formado com as
Instruções 5 e 6 +NOP.
O Scheduler “agendou”
a Instrução 1 para a
Unidade X de
Registrador e a
Instrução 2 para a
obtenção do Operando
na Load Unit.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 05: O Op Quad
vem para o Scheduler
e novo Op Quad é
formado com as
Instruções 7 e 8 +NOP,
esvaziando o I-Buffer,
que já se prepara para
receber novo “Stream”.
Oito Instruções (16
bytes) Decodificadas
em 5 Ciclos.
O Scheduler “agendou”
a Instrução 3 para a
Unidade X de
Registrador e a mesma
Instrução 3 para a
obtenção do Operando
na Load Unit.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 06: O último Op
Quad vem para o
Scheduler , que tem a
capacidade de receber
6 Op Quads (24 µOp).
Terminada a execução
da Instrução 1.
O Scheduler “agendou”
a Instrução 4 para a
Unidade X de
Registrador, a
Instrução 5 para a
Unidade Y de
Registrador e a mesma
Instrução 5 para a
obtenção do Operando
na Load Unit.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 07: Terminada a
execução da Instrução
2, mas a Instrução 4
não pode ser
executada, porque
depende do resultado
da Instrução 3, ainda
obtendo Operando,
então, retorna ao
Scheduler, que
“agendou” a Instrução
3 para a Unidade X de
Registrador, a
Instrução 6 para a
Unidade Y de
Registrador e a
Instrução 7 para a
obtenção do Operando
na Load Unit.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 08:
Encaminhadas a
Instrução 3 para a
Unidade X de Inteiros
e a Instrução 6 para a
Unidade Y de Inteiros,
permitindo “agendar”
novamente a Instrução
4 (Reg X), a Instrução
5 (Reg Y) e ainda a
Instrução 8 para a
obtenção do Operando
na Load Unit.
[Observar que foi
“removida” no
Scheduler a Instrução
3, ‘liberando” a 4]
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 09: Terminadas
as execuções das
Instruções 3 e 6, esta
Fóra de Ordem!
A Instrução 8 (última
deste “Stream”) é
agendada para a
Unidade Reg X,
enquanto processam
em paralelo as
Instruções 4, 5 e 7.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 10: Terminadas
as execuções das
Instruções 4, 5 e 7.
Mas a Instrução 8 não
conseguiu completar
no Reg X, porque seu
Operando não veio a
tempo (pode ter havido
um Cache Miss), então
retorna ao Scheduler!
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 11: Obtido o
Operando, a Instrução
8 é novamente
“agendada” para o Reg
X.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 12: Terminada a
execução da Instrução
8.
As 8 Instruções foram
Decodificadas em 5
Ciclos e foram
Executadas nos 7
Ciclos seguintes,
apesar da ocorrência
de dependências e
misses.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 13: Neste último
Ciclo todas as
Instruções foram
“Completadas” e o
Scheduler é
“esvaziado” (na
realidade, esteve
sendo completado
com Instruções [Op
Quads] do próximo
“Stream”, em todos os
Ciclos anteriores.

Mais conteúdo relacionado

Mais procurados

Cloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresCloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresJoao Galdino Mello de Souza
 
ZIIP, ZAAP, ZEDC, SMT-2. EVOLUÇÃO E REVOLUÇÃO por Jorge Henrique Souza Areia...
ZIIP, ZAAP, ZEDC, SMT-2.  EVOLUÇÃO E REVOLUÇÃO por Jorge Henrique Souza Areia...ZIIP, ZAAP, ZEDC, SMT-2.  EVOLUÇÃO E REVOLUÇÃO por Jorge Henrique Souza Areia...
ZIIP, ZAAP, ZEDC, SMT-2. EVOLUÇÃO E REVOLUÇÃO por Jorge Henrique Souza Areia...Joao Galdino Mello de Souza
 
Configurando uma rede local com acesso internet
Configurando uma rede local com acesso  internetConfigurando uma rede local com acesso  internet
Configurando uma rede local com acesso internetTiago
 
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni
 

Mais procurados (6)

Cloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresCloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
 
ZIIP, ZAAP, ZEDC, SMT-2. EVOLUÇÃO E REVOLUÇÃO por Jorge Henrique Souza Areia...
ZIIP, ZAAP, ZEDC, SMT-2.  EVOLUÇÃO E REVOLUÇÃO por Jorge Henrique Souza Areia...ZIIP, ZAAP, ZEDC, SMT-2.  EVOLUÇÃO E REVOLUÇÃO por Jorge Henrique Souza Areia...
ZIIP, ZAAP, ZEDC, SMT-2. EVOLUÇÃO E REVOLUÇÃO por Jorge Henrique Souza Areia...
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Configurando uma rede local com acesso internet
Configurando uma rede local com acesso  internetConfigurando uma rede local com acesso  internet
Configurando uma rede local com acesso internet
 
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
 
Redes
RedesRedes
Redes
 

Destaque

Sun Spot Zig Bee
Sun Spot Zig BeeSun Spot Zig Bee
Sun Spot Zig BeeLuiz Thiago
 
Ubuntu o projeto e a comunidade
Ubuntu   o projeto e a comunidadeUbuntu   o projeto e a comunidade
Ubuntu o projeto e a comunidadeLuiz Thiago
 
ESTUDO DE CASO PARA ALTA DISPONIBILIDADE EM AMBIENTES DE WEB HOSTING
ESTUDO DE CASO PARA ALTA DISPONIBILIDADE EM AMBIENTES DE WEB HOSTINGESTUDO DE CASO PARA ALTA DISPONIBILIDADE EM AMBIENTES DE WEB HOSTING
ESTUDO DE CASO PARA ALTA DISPONIBILIDADE EM AMBIENTES DE WEB HOSTINGLuiz Thiago
 
Cloud computing infraestrutura sem stress
Cloud computing   infraestrutura sem stressCloud computing   infraestrutura sem stress
Cloud computing infraestrutura sem stressLuiz Thiago
 
Arch Linux – Simplesmente Linux
Arch Linux – Simplesmente LinuxArch Linux – Simplesmente Linux
Arch Linux – Simplesmente LinuxLuiz Thiago
 
Por trás da porta verde!
Por trás da porta verde!Por trás da porta verde!
Por trás da porta verde!Luiz Thiago
 

Destaque (8)

Ubuntu Kung Fu
Ubuntu Kung FuUbuntu Kung Fu
Ubuntu Kung Fu
 
Sun Spot Zig Bee
Sun Spot Zig BeeSun Spot Zig Bee
Sun Spot Zig Bee
 
Ubuntu o projeto e a comunidade
Ubuntu   o projeto e a comunidadeUbuntu   o projeto e a comunidade
Ubuntu o projeto e a comunidade
 
ESTUDO DE CASO PARA ALTA DISPONIBILIDADE EM AMBIENTES DE WEB HOSTING
ESTUDO DE CASO PARA ALTA DISPONIBILIDADE EM AMBIENTES DE WEB HOSTINGESTUDO DE CASO PARA ALTA DISPONIBILIDADE EM AMBIENTES DE WEB HOSTING
ESTUDO DE CASO PARA ALTA DISPONIBILIDADE EM AMBIENTES DE WEB HOSTING
 
Ehtical Hacking
Ehtical HackingEhtical Hacking
Ehtical Hacking
 
Cloud computing infraestrutura sem stress
Cloud computing   infraestrutura sem stressCloud computing   infraestrutura sem stress
Cloud computing infraestrutura sem stress
 
Arch Linux – Simplesmente Linux
Arch Linux – Simplesmente LinuxArch Linux – Simplesmente Linux
Arch Linux – Simplesmente Linux
 
Por trás da porta verde!
Por trás da porta verde!Por trás da porta verde!
Por trás da porta verde!
 

Semelhante a Caches e Paralelismo

Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos OrsoniTendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos OrsoniJoao Galdino Mello de Souza
 
CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196Rodrigo Campos
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICAlexandre Brandão Lustosa
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Intel Software Brasil
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Luciano Palma
 
Resumo comandos cisco
Resumo comandos ciscoResumo comandos cisco
Resumo comandos ciscoAllan Alencar
 
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Joao Galdino Mello de Souza
 
Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...
Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...
Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...Joao Galdino Mello de Souza
 
Virtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesVirtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesJoao Galdino Mello de Souza
 
TradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaTradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaJose Ricardo Maia Moraes
 
Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em Processadores, por Luiz Carlos OrsoniTendências Tecnológicas em Processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em Processadores, por Luiz Carlos OrsoniJoao Galdino Mello de Souza
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Intel Software Brasil
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalhoRafael Cruz
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Rodrigo Campos
 
Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...
Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...
Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...Joao Galdino Mello de Souza
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoFabio Telles Rodriguez
 
Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelPablo Mariano
 

Semelhante a Caches e Paralelismo (20)

Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos OrsoniTendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
 
Por dentro da z14
Por dentro da z14Por dentro da z14
Por dentro da z14
 
CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PIC
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
Resumo comandos cisco
Resumo comandos ciscoResumo comandos cisco
Resumo comandos cisco
 
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
 
Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...
Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...
Estudo de Planejamento e Performance na consolidação de CECs Mainframe. Gusta...
 
Virtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesVirtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno Domingues
 
TradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaTradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da Latencia
 
Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em Processadores, por Luiz Carlos OrsoniTendências Tecnológicas em Processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalho
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
 
Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...
Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...
Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgel
 

Mais de Rodrigo Campos

Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsRodrigo Campos
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014Rodrigo Campos
 
7Masters Webops in the Cloud
7Masters Webops in the Cloud7Masters Webops in the Cloud
7Masters Webops in the CloudRodrigo Campos
 
Otimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalOtimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalRodrigo Campos
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance AnalysisRodrigo Campos
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetroRodrigo Campos
 
Devops at Walmart GeC Brazil
Devops at Walmart GeC BrazilDevops at Walmart GeC Brazil
Devops at Walmart GeC BrazilRodrigo Campos
 
Disk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environmentsDisk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environmentsRodrigo Campos
 
Cloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosCloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosRodrigo Campos
 
The good, the bad and the big... data
The good, the bad and the big... dataThe good, the bad and the big... data
The good, the bad and the big... dataRodrigo Campos
 
CMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamCMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamRodrigo Campos
 
A Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTA Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTRodrigo Campos
 
Racionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRacionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRodrigo Campos
 
SDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumSDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumRodrigo Campos
 
AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012Rodrigo Campos
 
Isolamento de Recursos na Nuvem
Isolamento de Recursos na NuvemIsolamento de Recursos na Nuvem
Isolamento de Recursos na NuvemRodrigo Campos
 
Cloud Computing at Academia UOL
Cloud Computing at Academia UOLCloud Computing at Academia UOL
Cloud Computing at Academia UOLRodrigo Campos
 

Mais de Rodrigo Campos (20)

Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOps
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014
 
7Masters Webops in the Cloud
7Masters Webops in the Cloud7Masters Webops in the Cloud
7Masters Webops in the Cloud
 
14 guendert pres
14 guendert pres14 guendert pres
14 guendert pres
 
Large and Giant Pages
Large and Giant PagesLarge and Giant Pages
Large and Giant Pages
 
Otimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalOtimização holistica de ambiente computacional
Otimização holistica de ambiente computacional
 
13 coelho final-pres
13 coelho final-pres13 coelho final-pres
13 coelho final-pres
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance Analysis
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetro
 
Devops at Walmart GeC Brazil
Devops at Walmart GeC BrazilDevops at Walmart GeC Brazil
Devops at Walmart GeC Brazil
 
Disk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environmentsDisk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environments
 
Cloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosCloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e Desafios
 
The good, the bad and the big... data
The good, the bad and the big... dataThe good, the bad and the big... data
The good, the bad and the big... data
 
CMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamCMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry Tuddenham
 
A Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTA Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOT
 
Racionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRacionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na Nuvem
 
SDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumSDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + Quantum
 
AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012
 
Isolamento de Recursos na Nuvem
Isolamento de Recursos na NuvemIsolamento de Recursos na Nuvem
Isolamento de Recursos na Nuvem
 
Cloud Computing at Academia UOL
Cloud Computing at Academia UOLCloud Computing at Academia UOL
Cloud Computing at Academia UOL
 

Caches e Paralelismo

  • 1. Abstract + Agenda Contribuições dos Múltiplos Níveis de Cache e Data Bus Path Lengths Comentários sobre os Conceitos de Paralelismo em PipeLines Que Features auxiliam o aumento do Paralelismo? Qual a influência que se pode esperar dos Hábitos de Programação? O que pode ser feito, para Otimizar Programas e Melhorar a Performance? 1 - 11min – Contribuição dos Caches no Paralelismo Caches em diversos Níveis hierárquicos 2 - 10min – Conceitos de Paralelismo em PipeLines Evolução, desde o /360-91 3 - 6min – Detalhes de Features Tecnológicas: Super Escalar, Virtual Registers, Out Of Order Fetch&Execution 4 - 5min – Exemplos no uso de PipeLines Bons e Maus hábitos de Programação 5 - 8min – O que se pode fazer para otimizar? 1min Opções de Compiladores [C/C++, PL/I, COBOL] 1min Traces e Opções de DeBugging 6min CPUMF + HIS dão “feed-back” 6 - 5min – Conclusões, Agradecimentos e Perguntas
  • 2. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Mistério ou Tecnologia? Paralelismo! #1 = Contribuição dos Caches #2 = Múltiplas PipeLines #3 = Quais Features contribuem? #4 = Boas e Más Práticas #5 = Que fazer para otimizar? #6 = Conclusões Caches em Diversos Níveis! Código Auto alterável? Traces? DeBugging?
  • 3. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. #1 = Contribuição dos Caches Aplicação: FORTRAN IV H COBOL Assembler F Linkage Editor SORT Heat Transfer Data Reduction Curve Fitting Integral Evaluation Matrix Eingenvalue Differential Equation
  • 4. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Chip dos 2 SCs dos zEC12 4 x 48MB=192MB em cada Chip SC 2 x SCs = 384MB em cada Book, 4 Books no CEC = 1,536GB 125Acessos Simultâneos! Measures 28.4 x 23.9 mm CMOS 13S 32nm SOI technology, with 15 layers of metal Has 3.3 billion transistors and 2.1 billion cells for eDRAM
  • 5. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Caches nas 6 PUs dos zEC12 L1 I 64KB L1D 96KB L2 I 1MB L2D 1MB L3 48MB L4 384MB CS 3TB LineSize 256B 6 cada MCM 36 PU por Book 144 PU por CEC 120 no máximo 101 CPUs
  • 6. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. S/360 Data Paths zSeries 16 Bytes S/360-65 8 Bytes S/360-50 4 Bytes S/360-40 2 Bytes S/360-30 1 Byte LR L % ? ? ? 1 3 8 3 4 13 8 12 37 22 32 100 MicroSeg
  • 7. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. z9/z990 Data Paths: 4 acessos por Memory Card Bi-Direcional 16 Bytes/ciclo Protection Key Separado M a s . . .
  • 8. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. #2 = Múltiplas PipeLines no z196
  • 9. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Exemplo de 1.992! 1 2 3 ... Execução possível graças a: Exemplo para um ES/9000-711: (~ 1.992) - ‘Look Ahead’ de Instr. e Dados Suponha o seguinte conjunto de Instruções, - Pipeline de Instruções (32!) onde as setas representam dependência - Execução Múltipla (9 ALUs!) dos resultados de instruções anteriores: - Execução fora da sequência LABEL OPCD OPERANDOS ExUs: CICLO CICLO CICLO CICLO CALCULAR L 5,CAMPO 585 A 5,VALOR 5A5 L 9,TESTE 589 L 7,PARM 587 MH 9,FATOR 4C9 S 5,CONSTANT 5B5 C 5,LIMITE 595 CONTINUA EQU * Resultado: CORRETO, executando 7 Instruções em apenas 4 Ciclos Notar: Instruções L 9,TESTE e L 7,PARM executadas antes da anterior: A 5,VALOR As 3 Instruções executadas no primeiro Ciclo necessitaram 3 ExUs, uma para cada Isto só foi possível porque todas as instruções e seus dados estavam disponíveis
  • 10. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Sequenciamento de 7 e 9 Instruções Ciclos:
  • 11. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Comparando z10, z196 e zEC12
  • 12. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. DUPLA DUPLA BHT PHT BTB DAT + TLB2 L1 I 64KB L1D 128KB L2 1,5MB L3 24MB L4 192MB L1 I 64KB=256 L1D 128KB=512 CACHE I + TLB1I CACHE D + TLB1D 3 54 Execution Units do z196
  • 13. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Execution Units do zEC12 CACHE I + TLB1I CACHE D + TLB1D 3 73 DAT + TLB2 BHT PHT BTB DUPLA DUPLA 16KB L3 48MB L4 384MB L1 I 64KB= 256 L1D 96KB= 384 L2 I 1MB=4.096 L2D 1MB=4.096
  • 14. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. #3 = Quais Features contribuem? 0 – Multiple Queues 1 – Virtual Registers 2 – 1MB Pages/Frames 3 – 2GB Pages/Frames 4 – TLB1I e TLB1D com Selective Purge 5 – TLB2 para os demais Caches 6 – Non Quiescing SSKE 7 – Interlocked Access 8 – High Word Facility 9 – Transactional Execution
  • 15. IFB XU TLB ICM ISU IDU DUPLA DUPLA RU IFB Instruction Fetch & Branch prediction ICM Instruction Cache & Merge IDU Instruction Decode Unit ISU Instruction Sequence Unit FXU FiXed-point Unit BFU Binary & Hex Floating-point Unit DU Decimal Unit LSU Load-Store Unit for Operands XU Translation Unit (DAT) RU Recovery Unit Unidades Funcionais dos z196 Paralelismo para até 5 Instruções! CPUMF 3 Decoded 5 Finished Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Glossário:
  • 16. Unidades Funcionais dos zEC12 Paralelismo para até 7 Instruções! CPUMF 3 Decoded 7 Finished Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
  • 17. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. #4 = Boas e Más Práticas Não usar as Boas significa… . . . DO; . . . IF ENDFILE THEN DO; . . . END; . . . IF ERRO THEN DO; . . . END; . . . IF RARAMENTE THEN DO; . . . END; . . . WHILE ( NOT ( FIM ) ); . . . . . . IF TIPO=1001 THEN DO; . . . END; . . . IF TIPO=2193 THEN DO; . . . END; . . . IF TIPO=1001 THEN DO; . . . END; . . . ELSE DO; PUT ‘REGISTRO NÃO PROCESSADO’; PUT ‘TIPO INVÁLIDO, FOI IGNORADO’; END; . . .
  • 18. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Código Auto Alterável! The L2 directory maintains the consistency between the L1 caches. If, for example, a cache line is owned by both I- cache and D-cache and a store operation is executed, the D-cache requests exclusive ownership of the cache line from the L2. Before the L2 grants exclusivity, the L2 sends an invalidation request to the I-cache so that stores into the instruction stream are recognized. Once the store is completed, the updated instruction text can be refetched by the I-cache causing the D-cache to lose exclusivity again. MVI NOP+1,X’F0’ OPEN (MVI PARMLIST,X’??’) MVI NOP+1,X’00’ LOAD SVC 8SVC 122 x’7A’ ST R,*+4 ! ! ! ORG CSECT+N*256
  • 19. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. #5 = O que fazer para otimizar? Aproximar:  Códigos  Variáveis Reduzir:  Jumps  Calls  SVCs Eliminar:  Traces  DeBugging Algoritmos! PrefetchData?
  • 20. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Exemplo deExemplo de CPUMF + HISCPUMF + HIS z196z196 Supervisor e Problem States VERTICAL HIGHs VERTICAL LOWs ZIIPs CICLE TIME das z196: 0,192.012 ns MELHOR= 12% 12% 11% 11% 10% 10% Mínimo: 4,31 0,83 5,69 1,09 4,91 0,94 Média: 4,88 0,94 6,38 1,22 5,47 1,05 Máximo: 5,61 1,08 7,58 1,45 6,06 1,16 PIOR= 15% 15% 19% 19% 11% 11%
  • 21. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Exemplo deExemplo de CPUMF + HISCPUMF + HIS z10z10 Instruction e Data Cache Hit%
  • 22. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. #6 - Conclusões: • Os Limites Físicos impõem restrições • Opções de Compiladores . . . • Otimizar Códigos, aproveitando as vantagens já existentes! • Objetivar “Desperdício ZERO” ! 4,54 3,84 20 30cm CycleTime ns GHz z196 0,192 5,208 Freqüência: > 5,6% Ciclo: < 7,3% zEC120,178 5,5 Capacidade > 50% 3,64
  • 23. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Perguntas ? ? ? Obrigado ! orsoni@maffei.com.br BoasTodos os Manuais e RedBooks: © IBM Cursos MFTS00 e MFTS30 : © MAFFEI
  • 24. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Se necessário exibir, estes dados mostram que, não necessariamente, os maiores valores individuais apontam a PU mais “produtiva” ou mais rápida.
  • 25. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte www.amd.com Notar a semelhança Tecnológica no agrupamento das Unidades e a presença dos Caches L2 no chip.
  • 26. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte © 1998 Advanced Micro Devices, Inc. All rights reserved. DUPLA Ponto Fixo Notar a distribuição das Unidades, seu sequenciamento e os TLBs em cada Cache.
  • 27. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte © 1998 Advanced Micro Devices, Inc. All rights reserved. AMD-K6(TM) 3D Processor Simulation CD-ROM 1.0 License Agreement --------------------------------------------------------------------- © Copyright 1997, 1998, Advanced Micro Devices, Inc. Advanced Micro Devices, Inc. ("AMD") hereby grants you permission to use, copy, and distribute documents, related graphics, and software delivered from this AMD CD-ROM ("Materials") provided that you (1) include both the above copyright notice and this permission notice in all copies; (2) do not modify the Materials; (3) use the Materials for non-commercial purposes within your organization only; and (4) with respect to software Materials, do not decompile, reverse engineer, or disassemble such software.
  • 28. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 00: Início de um “Stream” [16 bytes] de Instruções (realmente, sobreposto à execução do “Stream” anterior). Notar a disposição das várias Unidades: Instruction Buffer, Decoders, Scheduler e das Execution Units: Load, Store, Branch, Floating e Fixed Point, todas trabalhando em Paralelo.
  • 29. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 01: O Instruction Buffer recebe um novo “Stream” de 16 bytes. [Pretende-se esclarecer que há décadas que não se executa mais uma Instrução por vez, mas sim, ativa-se em paralelo vários Circuitos “dedicados”: Load, Store, Branch, Ponto Fixo e Flutuante]
  • 30. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 02: As duas primeiras Instruções são Decodificadas em 2 Micro Operações e mais 2 NOPs, porque o Decodificador sempre produz quatro µOps (Op Quad). As Instruções 3 e 4 não puderam ser Decodificadas porque ambos Decodificadores Short estavam ‘ocupados’ com as Instruções 1 e 2.
  • 31. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 03: Transferido o primeiro Op Quad para o Scheduler, a Instrução 3 resulta em 2 µOps e a Instrução 4 em mais um µOp e um NOP. NOPs são sempre terminados no Scheduler e não são “executados”.
  • 32. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 04: O Op Quad vem para o Scheduler e novo Op Quad é formado com as Instruções 5 e 6 +NOP. O Scheduler “agendou” a Instrução 1 para a Unidade X de Registrador e a Instrução 2 para a obtenção do Operando na Load Unit.
  • 33. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 05: O Op Quad vem para o Scheduler e novo Op Quad é formado com as Instruções 7 e 8 +NOP, esvaziando o I-Buffer, que já se prepara para receber novo “Stream”. Oito Instruções (16 bytes) Decodificadas em 5 Ciclos. O Scheduler “agendou” a Instrução 3 para a Unidade X de Registrador e a mesma Instrução 3 para a obtenção do Operando na Load Unit.
  • 34. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 06: O último Op Quad vem para o Scheduler , que tem a capacidade de receber 6 Op Quads (24 µOp). Terminada a execução da Instrução 1. O Scheduler “agendou” a Instrução 4 para a Unidade X de Registrador, a Instrução 5 para a Unidade Y de Registrador e a mesma Instrução 5 para a obtenção do Operando na Load Unit.
  • 35. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 07: Terminada a execução da Instrução 2, mas a Instrução 4 não pode ser executada, porque depende do resultado da Instrução 3, ainda obtendo Operando, então, retorna ao Scheduler, que “agendou” a Instrução 3 para a Unidade X de Registrador, a Instrução 6 para a Unidade Y de Registrador e a Instrução 7 para a obtenção do Operando na Load Unit.
  • 36. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 08: Encaminhadas a Instrução 3 para a Unidade X de Inteiros e a Instrução 6 para a Unidade Y de Inteiros, permitindo “agendar” novamente a Instrução 4 (Reg X), a Instrução 5 (Reg Y) e ainda a Instrução 8 para a obtenção do Operando na Load Unit. [Observar que foi “removida” no Scheduler a Instrução 3, ‘liberando” a 4]
  • 37. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 09: Terminadas as execuções das Instruções 3 e 6, esta Fóra de Ordem! A Instrução 8 (última deste “Stream”) é agendada para a Unidade Reg X, enquanto processam em paralelo as Instruções 4, 5 e 7.
  • 38. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 10: Terminadas as execuções das Instruções 4, 5 e 7. Mas a Instrução 8 não conseguiu completar no Reg X, porque seu Operando não veio a tempo (pode ter havido um Cache Miss), então retorna ao Scheduler!
  • 39. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 11: Obtido o Operando, a Instrução 8 é novamente “agendada” para o Reg X.
  • 40. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 12: Terminada a execução da Instrução 8. As 8 Instruções foram Decodificadas em 5 Ciclos e foram Executadas nos 7 Ciclos seguintes, apesar da ocorrência de dependências e misses.
  • 41. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Suporte Ciclo 13: Neste último Ciclo todas as Instruções foram “Completadas” e o Scheduler é “esvaziado” (na realidade, esteve sendo completado com Instruções [Op Quads] do próximo “Stream”, em todos os Ciclos anteriores.

Notas do Editor

  1. Abstract e Agenda para a Apresentação no CMG Brasil – São Paulo, 07 de Agosto de 2.013 Esta Palestra de 45 minutos procurará apresentar os Conceitos de Paralelismo nos MainFrames IBM, devidos aos Caches e PipeLines, e não pretende ser um Tutorial. Serão comentados os Data Paths e PipeLines , as Possibilidades e Limitações , convergindo para Recomendações objetivando obter um melhor Desempenho nas Máquinas.
  2. Iniciamos mostrando alguns Conceitos de Paralelismo nos Caches e nas PipeLines , sua origem no System/360 Modelo 91 em 1.9 68 e o Estado da Arte em chips modernos, como os das Máquinas IBM z 196 e z EC12 , indicando a sua tendência . Após mostrarmos os Conceitos, apresentaremos algumas das possibilidades , estimulando o raciocínio do que necessitaremos fazer, para que os Programas tenham boa Performance. Recomendações, em linhas gerais, são dadas ao final, objetivando otimizar Programas e Dados.
  3. No Projeto inicial , devido a John Liptay , a IBM decidiu usar Caches de 16 ou 32KB, e Robert Tomasulo introduziu PipeLines no Modelo 91 . Cada linha na Tabela acima representa algum Tipo de Uso (Compilação, Utilitário, Cálculos Científicos, etc.) dos Modelos do S/360, comparados ao Modelo 65 . Utilizando apenas Tecnologia mais recente, os Modelos 75 conseguiam 20-80% melhor Performance, mas devidos aos Caches, os Modelos 85 conseguiam 220-380% melhor! Usando Caches e PipeLines, os Modelos 91 , 1ºs Super Escalares, eram 240-1290% melhores!
  4. Cada Book contém um MCM que possui 6 chips sêxtuplos de Processadores, mais os 2 chips de S torage C ontrollers, detalhado acima. Em cada SC , o Cache de nível 4 é dividido em 4 partes (O L4 é logicamente organizado como 16 bancos de endereços e com associatividade 24 -way) de 48MB , permitindo até 125 acessos simultâneos . Além de servirem os até 36 Processadores do MCM , os SC s também se comunicam com a Memória Local no Book e com os seus semelhantes em outros tres Books, e atendem toda demanda de Transferência de Dados de I/O, para até 1.024 Canais de Dados (256/zOS). Outras funções importantes também ficam aí, tal como o TOD ( T ime O f D ay Clock).
  5. Detalhamento do chip de PU s das novas zEC12: Cada PU-Core conta com 64 KB de Cache L1 para Instruções e sua respectiva TLB1 I , mais 96 KB de Cache L1 para Dados e sua respectiva TLB1 D , mais Caches Separados e Privativos L 2I e L 2D , de 1 MB cada um. O grupo de 6 PUs do chip compartilha um Cache L3 de 48 MB, procurando reduzir tráfego externo. Cada Co Processador de Criptografia+Compressão de Dados é dedicado e tem um Cache de 16 KB. Observar a área ocupada pelos Caches: ~80%!
  6. Detalhe da evolução do Barramento de Dados e sua influência em termos de Performance, pois um Data Path mais “largo” demandará menos Ciclos de Memória (que são maiores que os Ciclos de Processador [ pclks ]). Cabe questionar: Quantos ciclos demora a Instrução mais rápida ? Quando falamos de Paralelismo , devemos intuir que algumas Instruções demandarão zero ciclos , pois serão executadas em paralelo com outras Instruções, ou com Instruções mais “lentas” . Execução fora de Ordem significa aproveitar todas as possíveis “brechas”, encaixando aí a Execução das Instruções que forem passíveis de Execução.
  7. As Figuras dos Technical Book dos z9 e dos z990 detalham que o barramento é de 16 bytes, necessitando 16 Ciclos para transferir cada Line de 256 Bytes, e exibe as Chaves de Proteção de Memória em separado . Embora Chaves de Proteção de Memória sejam manipuladas em separado, em Barramentos separados, e existam até 4 barramentos servindo cada ‘Cartão’ de Memória, uma dada PU pode vir a depender de apenas um deles!
  8. Na Página 1:7 do IBM J RES &amp; DEV VOL 56 NO 1/2 PAPER 1 JANUARY/MARCH 2012 , no Artigo “IBM zEnterprise 196 Microprocessor and Cache Subsystem” de F. BUSABA et al, encontramos a Figura acima. Ela ilustra como se relacionam os Circuitos que implementam as PipeLines, destacando-se em azul , as 6 PipeLines de Execução de Instruções, capazes de Completar até 5 Instruções por Ciclo de Máquina ( até 7 na zEC12 ).
  9. Exemplo de Execução em Paralelo e Fora de Ordem , possíveis nos MainFrames da Geração ES/9000, lançados pela IBM cerca de 1.9 92 : Seu Instruction Fetch possuía uma Queue de 32 entradas, permitindo que Decodificasse e preparasse para Execução, até 32 Instruções Possuindo várias Execution Units e com 9 ALUs (Unidades Aritméticas e Lógicas), era possível executar até 4 Instruções de Ponto Fixo, mais 4 Instruções de Ponto Flutuante e uma Instrução de Comprimento Variável Memória a Memória, como as Instruções de Movimento e Operandos Decimal Compactado. Não havia “ Imprecise Interrupt”, como nos System/360 Modelos 91 .
  10. A primeira Figura acima está na Página 729 do IBM J RES &amp; DEV VOL 36 NO 4 JULY 1992 , no Artigo “ Design of the IBM Enterprise System / 9000 ”, de John Liptay . Na Página 1:10 do IBM J RES &amp; DEV VOL 56 NO 1/2 PAPER 1 JANUARY/MARCH 2012 , no Artigo “IBM zEnterprise 196 Microprocessor and Cache Subsystem” de F. BUSABA et al, encontramos a segunda Figura acima. Ela procura esclarecer como ocorre o Sequenciamento destas 9 Instruções na z196. Devido ao fato de que estas Instruções BCT , LM e MVC devem ser “quebradas” em 2 , 7 e 3 Micro Operações, respectivamente, ocorre uma ‘paralização’ ( Stall ou Spin ) na PipeLine, não obstante ela estar rendendo seu máximo .
  11. Na Página 85 do IBM zEnterprise EC12 Technical Guide sg248049.pdf encontramos a Figura acima [ligeiramente fora de Escala!]. Ela compara a evolução destas 7 Instruções, que exibem dependência entre si, nas três últimas Gerações de Máquinas: z10 (IN Order), z196 (Out Of Order, até 5 ) e zEC12 (Out Of Order, até 7 Instruções por Ciclo).
  12. Nesta MicroFotografia de PU do z196 estão destacadas as várias Unidades Funcionais, seus limites e relacionamentos. Ver Glossário destas Unidades, no Slide 15 . Decidido pela IFB o que “fetchar”, as Instruções na ICM migram do Cache L1 I para a IDU via buffers, de onde são Decodificadas e entregues à ISU , que detecta dependências e, sendo possível , as entrega a uma das duas LSU , ou uma das duas FXU , ou à BFU ou à DU (além de Ponto Flutuante, as duas últimas Unidades também executam Multiplicação e Divisão de Ponto Fixo e Decimal, respectivamente). Todo Operando é manipulado pela LSU , onde se encontra o Cache L1 D , e seus Endereços Virtuais são Traduzidos para Reais na XU , pela DAT+TLB .
  13. Nesta MicroFotografia de PU do zEC12 estão destacadas as várias Unidades Funcionais, seus limites e relacionamentos. Glossário no Slide 15 . Decidido pela IFU o que “fetchar”, as Instruções na ICM migram do Cache L1 I para a IDU via buffers, de onde são Decodificadas e entregues à ISU , que detecta dependências e, sendo possível , as entrega a uma das duas LSU , ou uma das duas FXU , ou à BFU ou à DU (além de Ponto Flutuante, as duas últimas Unidades também executam Multiplicação e Divisão de Ponto Fixo e Decimal, respectivamente). Todo Operando é manipulado pela LSU , onde se encontra o Cache L1 D , e seus Endereços Virtuais são Traduzidos para Reais na XU , pela DAT+TLB (observar a adição dos Caches L2 I e L2 D ).
  14. Sem pretender descrever minuciosamente todas as Features , destacamos: 0 – Multiple Queues 1 – Virtual Registers 2 – 1MB Pages/Frames 3 – 2GB Pages/Frames 4 – TLB 1I e TLB 1D com Selective Purge 5 – TLB 2 para os demais Caches 6 - Non Quiescing SSKE 7 – Interlocked Access 8 – High Word Facility 9 – Transactional Execution
  15. Os circuitos da parte superior trabalham “ In Order”, enquanto que os circuitos da parte inferior, após a ISU , trabalham “ Out Of Order”, se possível . Para manter seu Cycle Time, a Tecnologia atual restringe o Cache de Instruções do Nível 1 a apenas 64KB , ou seja, apenas 256 Lines. Da mesma forma, o Cache de Dados de Nível 1 possui apenas 128KB , ou seja, apenas 512 Lines.
  16. A obtenção de Operandos e a Execução de Instruções, após a ISU , são feitas “ Out Of Order”, se possível . Para manter seu Cycle Time, a Tecnologia atual restringe o Cache de Instruções do Nível 1 a apenas 64KB , ou seja, apenas 256 Lines. Da mesma forma, o Cache de Dados de Nível 1 possui apenas 96KB , ou seja, apenas 384 Lines. Entretanto, os Caches L2I e L2D colocados dentro do Chip destas PUs, oferecem mais 1MB , ou 4.096 Lines, cada um , aumentado as possibilidades de Paralelismo .
  17. Exemplo de Programa que trata condições infrequentes no meio do Código, causando ineficiência devido ao baixo uso das Lines. Outro Exemplo, que demanda várias instruções de Comparação, em várias Lines, ineficientemente atingindo seu eventual objetivo.
  18. Na Página 1:5 do IBM J RES &amp; DEV VOL 56 NO 1/2 PAPER 1 JANUARY/MARCH 2012 , no Artigo “IBM zEnterprise 196 Microprocessor and Cache Subsystem” de F. BUSABA et al, encontramos o Texto acima. Ele atesta a grande in eficiência dos Códigos Auto Alteráveis (a Line tem que ser invalidada no L1 I , copiada “Exclusive” no L1 D , alterada , copiada pro L1 I , invalidada no L1 D e finalmente, executada a próxima Instrução!). Além dos Códigos Auto Alteráveis, Códigos não Alteráveis, porém “misturados” com Variáveis nas mesmas Lines, produzem o mesmo efeito!
  19. Para obter vantagens , devemos escolher as melhores Opções dos Compiladores e: Aproximar : Códigos e Variáveis Reduzir : Jumps, Calls e SVCs Eliminar : Traces e Opções de DeBugging Além de implementar os melhores Algoritmos! As Opções de PrefetchData devem ser estudadas com muito cuidado, devido à possibilidade de que os dados PreFetched venham a desabrigar Lines ainda úteis, nos Caches cada vez menores , considerando a sempre crescente vazão das PUs.
  20. Os dados destas Planilhas foram obtidos através das ferramentas CPUMF (disponível a partir das máquinas z10 ) e a STC HIS ( H ardware I nstrumentation S ervices). Neste Exemplo , observamos que PUs do mesmo CEC, na mesma LPAR e com a mesma Carga, têm comportamento diferente , rendendo menos ou mais , dependendo dos respectivos Códigos (bons ou maus, ‘leves’ ou ‘pesados’, etc.) que estejam executando. Estima-se que a “disputa” por Lines seja proporcional a estes valores.
  21. Na Planilha acima vemos o impacto , no Código Executável , nos Dados e TLB s, pelo uso de PUs dedicadas (Vertical High ) em Código Otimizado, situação mais próxima do ‘ normal ’. Na Planilha central vemos as consequências das PUs compartilhadas (Vertical Low), quando menos de 10% dos dados vieram dos Caches e mais de 50% vieram da Memória Central de Outros Books , e as Traduções de TLBs demandaram mais de mil Ciclos! Na Planilha abaixo, focamos as Lines que foram ‘ Changed ’, nos Caches L1 I e L1 D , ajudando a entender os impactos negativos dos Códigos Auto Alteráveis. Daí decorre que as Lines são usadas muito menos do que o que esperado.
  22. Como o limite desta Tecnologia se aproxima rapidamente , é aconselhável que alguns Analistas iniciem uma “Caça ao Desperdício”, para eliminar , ou pelo menos reduzir , todo consumo in desejável e des necessário! Compiladores, como o C/C++, já oferecem a possibilidade de gerar Código específico para a Arquitetura de uma dada máquina, otimizando a execução deste mesmo Código. Outras facilidades já estão disponíveis há tempos nas novas Máquinas, aguardando serem ativadas em benefício dos Usuários.
  23. Agradecemos a oportunidade, oferecida pelo CMG Brasil , de trazer este assunto e seus Conceitos à consideração da Comunidade Acadêmica e dos Profissionais responsáveis pelas disciplinas de Análise de Performance e Plan ejamento de Cap acidade. À disposição para Perguntas e eventuais esclarecimentos adicionais, obrigado. Se desejar maiores detalhes e/ou quiser trocar informações, favor contatar : [email_address]
  24. Caches nos Processadores AMD.
  25. PipeLines nos Processadores AMD-K6II .
  26. Mensagem de CopyRight do Simulador AMD.