Abstract + Agenda
Contribuições dos Múltiplos Níveis de Cache e Data Bus Path Lengths
Comentários sobre os Conceitos de Pa...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Mistério ou Tecnologia?
Paralelismo!
#1 = Contribuição d...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
#1 = Contribuição
dos Caches
Aplicação:
FORTRAN IV H
COB...
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
...
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
L...
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...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
z9/z990 Data Paths:
4 acessos por
Memory Card
Bi-Direcio...
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:
...
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
L...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Execution Units do zEC12
CACHE I
+ TLB1I CACHE D
+ TLB1D...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
#3 = Quais Features
contribuem?
0 – Multiple Queues
1 – ...
IFB XU
TLB
ICM
ISU
IDU
DUPLA DUPLA
RU
IFB Instruction Fetch & Branch
prediction
ICM Instruction Cache & Merge
IDU Instruct...
Unidades Funcionais dos zEC12
Paralelismo para até 7 Instruções!
CPUMF
3 Decoded
7 Finished
Proibida cópia ou divulgação ...
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…
. ....
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Código Auto Alterável!
The L2 directory maintains the co...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
#5 = O que fazer
para otimizar?
Aproximar:
 Códigos
 V...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Exemplo deExemplo de CPUMF + HISCPUMF + HIS z196z196
Sup...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Exemplo deExemplo de CPUMF + HISCPUMF + HIS z10z10
Instr...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
#6 - Conclusões:
• Os Limites Físicos impõem restrições
...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Perguntas ? ? ?
Obrigado !
orsoni@maffei.com.br
BoasTodo...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Se necessário
exibir, estes
dados mostram
que, não
neces...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
www.amd.com
Notar a semelhança Tecnológica
no ag...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
© 1998 Advanced Micro Devices, Inc. All rights r...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
© 1998 Advanced Micro Devices, Inc. All rights r...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 00: Início de um
“Stream” [16 bytes] de
In...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 01: O
Instruction Buffer
recebe um novo
“S...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 02: As duas
primeiras Instruções
são Decod...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 03: Transferido o
primeiro Op Quad para
o ...
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 ...
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 ...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 06: O último Op
Quad vem para o
Scheduler ...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 07: Terminada a
execução da Instrução
2, m...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 08:
Encaminhadas a
Instrução 3 para a
Unid...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 09: Terminadas
as execuções das
Instruções...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 10: Terminadas
as execuções das
Instruções...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 11: Obtido o
Operando, a Instrução
8 é nov...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 12: Terminada a
execução da Instrução
8.
A...
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Suporte
Ciclo 13: Neste último
Ciclo todas as
Instruções...
Próximos SlideShares
Carregando em…5
×

Mistério ou tecnologia? Paralelismo!

1.634 visualizações

Publicada em

Apresentação realizada no CMG Brasil 2013

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Mistério ou tecnologia? Paralelismo!

  1. 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. 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. 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. 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. 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. 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. 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. 8. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. #2 = Múltiplas PipeLines no z196
  9. 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. 10. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Sequenciamento de 7 e 9 Instruções Ciclos:
  11. 11. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Comparando z10, z196 e zEC12
  12. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×