SlideShare una empresa de Scribd logo
1 de 17
Abstract e Agenda
Comentários sobre o Conceito de Lines
Uso de Múltiplos Níveis de Cache nos Mainframes IBM z196
Quantas Lines serão necessárias, para os Programas terem Boa
Performance?
Qual a influência que se pode esperar dos Sistemas Operacionais z/OS?
O que fazer, então, para Otimizar Programas e Melhorar a Performance?

1 - 11min – Conceitos de Lines
                 Evolução, desde o /360-85
2 - 6min – Quantas Lines são possíveis?
                 Caches em diversos Níveis hierárquicos
3 - 4min – Quantas Lines são necessárias?
                 Locality Effect x Padrão de Referência
4 - 9min – Detalhes no uso de Lines
                 Influência do Sistema Operacional z/OS
5 - 10min – O que fazer para otimizar?
         2min    Opções de Compiladores [C/C++]
         3min    Traces e Opções de DeBugging
         5min    CPUMF + HIS dão “feed-back”
6 - 5min – Conclusões, Agradecimentos e Perguntas
Uso de Lines nos z196
                                                 Caches em
                                                  Diversos
#1 = Conceitos de Lines                            Níveis?
#2 = Quantas Lines são possíveis?
#3 = Quantas Lines são necessárias? z/OS?
#4 = Detalhes no uso de Lines
#5 = O que fazer para otimizar?
                                 Traces?
#6 = Conclusões                 DeBugging?
              Proibida cópia ou divulgação sem
              permissão escrita do CMG Brasil.
Começou no
                                   System/360-85
                                      JOHN LIPTAY
                                      PAK-KIN MAK
                                      CHARLES WEBB
                                      . . .




Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Chip de 8 PUs do Power795

  L1 I 32KB
  L1D       32KB
  L2 256KB
  L3 32MB
  CS    8TB
                        L3              L3               L3   L3
Até 32 por CEC
   256 PUs
                        L3              L3               L3   L3
3,72 GHz 6Core
4,0 GHz MaxCore
4,25 GHz TurboCore

4,404 GHz z10
5,208 GHz z196

                      Proibida cópia ou divulgação sem
                      permissão escrita do CMG Brasil.
#1 = Conceitos
                                                    de Lines
                                                     BOOK
                                                        16 
                                                        384Gb
                                                        16 
                                                        384Gb
                                                        Prot.Keys

                                                     BUS 16B
                                                     LINE 256B


323056GB
323056GB
322288GB
321520GB
32 704GB   Proibida cópia ou divulgação sem
HSA 16GB    permissão escrita do CMG Brasil.
Chip dos SCs dos z196



4 x 24MB = 96MB
em cada Chip SC

2 x SCs = 192MB
em cada Book,

4 Books no CEC




                  Proibida cópia ou divulgação sem
                  permissão escrita do CMG Brasil.
Chip das 4 PUs dos z196


 L1 I 64KB
 L1D 128KB
 L2 1,5MB
 L3   24MB
 L4 192MB
 CS    3TB

LineSize 256B

6 em cada MCM
24 PU por Book
96 PU por CEC
                 Proibida cópia ou divulgação sem
                 permissão escrita do CMG Brasil.
#2 = Quantas Lines
                                          são possíveis?
 L1 I 64KB
 L1D 128KB
 L2 1,5MB
 L3   24MB          BHT
 L4 192MB
                    PHT
                    BTB           3          4              5
                                                             DUPLA


L1 I     256                              CACHE D
                          CACHE I
L1D      512              + TLB1I         + TLB1D
                                DAT                      DUPLA
LineSize 256B                    +
                               TLB2
L2      6.144
L3     98.304/4       Proibida cópia ou divulgação sem
L4    786.432/24?     permissão escrita do CMG Brasil.
#3 = Quantas Lines
                                 são necessárias?
INICIALIZAÇÃO


 POUCO   USO                                       MAS
 MUITO USO      64KB são 256 Lines: Suficientes???
    LOOPS       Locality of Effect
                Jump Around, Self Modifying Code!
NEVER MIND...   Calls, SVCs, LE
VARIÁVEIS +++
                128KB são 512 Lines: Suficientes???
                Padrão de Referência
                Buffers, RENT TLBs!
                Cache Unfriendly . . .
VARIÁVEIS ---

                Proibida cópia ou divulgação sem
                permissão escrita do CMG Brasil.
Exemplo de CPUMF em z10
             Supervisor% e Problem%
                       5070%?     3050%?




Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Exemplo de CPUMF em z10
                 Cache Hit%, por Tipo
                             8090%?   3050%?




Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Unidades Funcionais dos z196
                      demandam ainda mais Lines!

     IFB               XU             IFB Instruction Fetch & Branch prediction

                                                  ICM Instruction Cache & Merge

                       TLB                            IDU Instruction Decode Unit

                                                   ISU Instruction Sequence Unit

                                                            FXU FiXed-point Unit
             ICM
                                             BFU Binary & Hex Floating-point Unit

                                                                 DU Decimal Unit

       IDU                                     LSU Load-Store Unit for Operands




                                5 Finished
                                3 Decoded
                                                       XU Translation Unit (DAT)

                                                               RU Recovery Unit



                       ISU
                                               CPUMF

               DUPLA         DUPLA
RU
#4 = Detalhes no
                                           uso de Lines

                 Dirty bit
Endereço         Excl/Shr
 Físico           L.R.U.                       256 Bytes
                   PKey

             “Dirty” bit              Algo foi alterado na Line
             Excl/Shared              A PU requisitou Exclusividade
             L.R.U.                   A Menos Recentemente Usada
             Prot. Key                Chave de Proteção de Memória

L4?         Em   qual   dos 4 L4 reside a Line (2 bits)
Card?       Em   qual   Central Storage? Local / Other
Endereço?   Em   qual   Endereço Absoluto?
LP?         Em   qual   Partição Lógica?


                    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.
4,54 3,84   20 30cm

                                            #6 - Conclusões:

• Os Limites Físicos impõem restrições
       CycleTime      ns    GHz
       z10            0,227 4,404 Freqüência: > 18%
       z196           0,192 5,208 Ciclo:      < 15%
                                  Capacidade:> 60%


• Opções de Compiladores . . .
• Otimizar Códigos, aproveitando as
    vantagens já existentes!
• Objetivar “Desperdício ZERO!”
             Proibida cópia ou divulgação sem
                permissão escrita do CMG Brasil.
Perguntas ? ? ?

                                          Obrigado !

                                orsoni@maffei.com.br


Todos os Manuais e RedBooks: © IBM Proibida cópia ou divulgação sem
Cursos MFTS00 e MFTS30 : © MAFFEI permissão escrita do CMG Brasil.    Boas
Suporte:




Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.

Más contenido relacionado

Destacado

Tesis pregrado CARACTERÍSTICAS DE LAS ESTRATEGIAS DE COMPRENSIÓN LECTORA UTI...
Tesis pregrado  CARACTERÍSTICAS DE LAS ESTRATEGIAS DE COMPRENSIÓN LECTORA UTI...Tesis pregrado  CARACTERÍSTICAS DE LAS ESTRATEGIAS DE COMPRENSIÓN LECTORA UTI...
Tesis pregrado CARACTERÍSTICAS DE LAS ESTRATEGIAS DE COMPRENSIÓN LECTORA UTI...
Milenka Cubillos
 
Latihan 5 puzzle
Latihan 5 puzzleLatihan 5 puzzle
Latihan 5 puzzle
fafa111283
 
Belaukiant Aukso Amžiaus.Pirmasis tomas.2015.10.12
Belaukiant Aukso Amžiaus.Pirmasis tomas.2015.10.12Belaukiant Aukso Amžiaus.Pirmasis tomas.2015.10.12
Belaukiant Aukso Amžiaus.Pirmasis tomas.2015.10.12
Darius Radkevicius
 

Destacado (20)

Modelo osi
Modelo osiModelo osi
Modelo osi
 
GRUPO 1-20
GRUPO 1-20GRUPO 1-20
GRUPO 1-20
 
Topologias Físicas De Redes
Topologias Físicas De RedesTopologias Físicas De Redes
Topologias Físicas De Redes
 
Interoperabilidade
InteroperabilidadeInteroperabilidade
Interoperabilidade
 
Cablagem de rede
Cablagem de redeCablagem de rede
Cablagem de rede
 
Topologias Fisicas de rede
Topologias Fisicas de redeTopologias Fisicas de rede
Topologias Fisicas de rede
 
Tipologias de rede
Tipologias de redeTipologias de rede
Tipologias de rede
 
Steve Price: Teaching
Steve Price: TeachingSteve Price: Teaching
Steve Price: Teaching
 
Tolerância na Blogosfera
Tolerância na BlogosferaTolerância na Blogosfera
Tolerância na Blogosfera
 
Tesis pregrado CARACTERÍSTICAS DE LAS ESTRATEGIAS DE COMPRENSIÓN LECTORA UTI...
Tesis pregrado  CARACTERÍSTICAS DE LAS ESTRATEGIAS DE COMPRENSIÓN LECTORA UTI...Tesis pregrado  CARACTERÍSTICAS DE LAS ESTRATEGIAS DE COMPRENSIÓN LECTORA UTI...
Tesis pregrado CARACTERÍSTICAS DE LAS ESTRATEGIAS DE COMPRENSIÓN LECTORA UTI...
 
Politische Kommunikation 09
Politische Kommunikation 09Politische Kommunikation 09
Politische Kommunikation 09
 
Steve Price: Simple Good Design Thinking (GDT)
Steve Price: Simple Good Design Thinking (GDT)Steve Price: Simple Good Design Thinking (GDT)
Steve Price: Simple Good Design Thinking (GDT)
 
Latihan 5 puzzle
Latihan 5 puzzleLatihan 5 puzzle
Latihan 5 puzzle
 
Belaukiant Aukso Amžiaus.Pirmasis tomas.2015.10.12
Belaukiant Aukso Amžiaus.Pirmasis tomas.2015.10.12Belaukiant Aukso Amžiaus.Pirmasis tomas.2015.10.12
Belaukiant Aukso Amžiaus.Pirmasis tomas.2015.10.12
 
Singapore Map
Singapore MapSingapore Map
Singapore Map
 
Curved Arrows Flat
Curved Arrows FlatCurved Arrows Flat
Curved Arrows Flat
 
Cmas 4 matt 1 18 25 slides 122213
Cmas 4 matt 1 18 25 slides 122213Cmas 4 matt 1 18 25 slides 122213
Cmas 4 matt 1 18 25 slides 122213
 
Social Web und gesellschaftspolitische Utopien
Social Web und gesellschaftspolitische UtopienSocial Web und gesellschaftspolitische Utopien
Social Web und gesellschaftspolitische Utopien
 
Helena Farrall - Faculdade de Ciências e Tecnologia / UNL
Helena Farrall - Faculdade de Ciências e Tecnologia / UNLHelena Farrall - Faculdade de Ciências e Tecnologia / UNL
Helena Farrall - Faculdade de Ciências e Tecnologia / UNL
 
CSI approach to your Production Management
CSI approach to your Production ManagementCSI approach to your Production Management
CSI approach to your Production Management
 

Similar a CMG Brasil 2012 - Uso de Lines nos z196

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
Joao Galdino Mello de Souza
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalho
Rafael Cruz
 
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
Joao Galdino Mello de Souza
 
Augusto loureiro sistemas microprocessados
Augusto loureiro   sistemas microprocessadosAugusto loureiro   sistemas microprocessados
Augusto loureiro sistemas microprocessados
Lorena Barreto
 

Similar a CMG Brasil 2012 - Uso de Lines nos z196 (20)

Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? 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 Orsoni
 
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniZ13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
 
Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?
 
Cache Associativity: Qual a importância deste Conceito? por Luiz Carlos Orson...
Cache Associativity: Qual a importância deste Conceito? por Luiz Carlos Orson...Cache Associativity: Qual a importância deste Conceito? por Luiz Carlos Orson...
Cache Associativity: Qual a importância deste Conceito? por Luiz Carlos Orson...
 
Detalhes internos da z14/Otimização de códigos - por Luiz Carlos Orsoni (MAFFEI)
Detalhes internos da z14/Otimização de códigos - por Luiz Carlos Orsoni (MAFFEI)Detalhes internos da z14/Otimização de códigos - por Luiz Carlos Orsoni (MAFFEI)
Detalhes internos da z14/Otimização de códigos - por Luiz Carlos Orsoni (MAFFEI)
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalho
 
Arm Cortex
Arm CortexArm Cortex
Arm Cortex
 
Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?
 
Debate sobre IPV6 - Portal IP News
Debate sobre IPV6 - Portal IP NewsDebate sobre IPV6 - Portal IP News
Debate sobre IPV6 - Portal IP News
 
Grupo Binário - IPV6
Grupo Binário - IPV6Grupo Binário - IPV6
Grupo Binário - IPV6
 
Behind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM Brasil
Behind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM BrasilBehind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM Brasil
Behind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM Brasil
 
Aula 08 instalação de hardware
Aula 08 instalação de hardwareAula 08 instalação de hardware
Aula 08 instalação de hardware
 
IPv6 – a Internet precisa dele para continuar crescendo
IPv6 – a Internet precisa dele para continuar crescendoIPv6 – a Internet precisa dele para continuar crescendo
IPv6 – a Internet precisa dele para continuar crescendo
 
Lua em transmissões ao vivo
Lua em transmissões ao vivoLua em transmissões ao vivo
Lua em transmissões ao vivo
 
Os Slots
Os SlotsOs Slots
Os Slots
 
Ficha de trabalho 1
Ficha de trabalho 1Ficha de trabalho 1
Ficha de trabalho 1
 
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
 
Augusto loureiro sistemas microprocessados
Augusto loureiro   sistemas microprocessadosAugusto loureiro   sistemas microprocessados
Augusto loureiro sistemas microprocessados
 
Montagem manutenção de computadores
Montagem manutenção de computadoresMontagem manutenção de computadores
Montagem manutenção de computadores
 

Más de Rodrigo Campos

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
Rodrigo Campos
 
Cloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosCloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e Desafios
Rodrigo 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 Tuddenham
Rodrigo 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 Nuvem
Rodrigo Campos
 

Más 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
 
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
 
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
 

CMG Brasil 2012 - Uso de Lines nos z196

  • 1. Abstract e Agenda Comentários sobre o Conceito de Lines Uso de Múltiplos Níveis de Cache nos Mainframes IBM z196 Quantas Lines serão necessárias, para os Programas terem Boa Performance? Qual a influência que se pode esperar dos Sistemas Operacionais z/OS? O que fazer, então, para Otimizar Programas e Melhorar a Performance? 1 - 11min – Conceitos de Lines Evolução, desde o /360-85 2 - 6min – Quantas Lines são possíveis? Caches em diversos Níveis hierárquicos 3 - 4min – Quantas Lines são necessárias? Locality Effect x Padrão de Referência 4 - 9min – Detalhes no uso de Lines Influência do Sistema Operacional z/OS 5 - 10min – O que fazer para otimizar? 2min Opções de Compiladores [C/C++] 3min Traces e Opções de DeBugging 5min CPUMF + HIS dão “feed-back” 6 - 5min – Conclusões, Agradecimentos e Perguntas
  • 2. Uso de Lines nos z196 Caches em Diversos #1 = Conceitos de Lines Níveis? #2 = Quantas Lines são possíveis? #3 = Quantas Lines são necessárias? z/OS? #4 = Detalhes no uso de Lines #5 = O que fazer para otimizar? Traces? #6 = Conclusões DeBugging? Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
  • 3. Começou no System/360-85 JOHN LIPTAY PAK-KIN MAK CHARLES WEBB . . . Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
  • 4. Chip de 8 PUs do Power795 L1 I 32KB L1D 32KB L2 256KB L3 32MB CS 8TB L3 L3 L3 L3 Até 32 por CEC 256 PUs L3 L3 L3 L3 3,72 GHz 6Core 4,0 GHz MaxCore 4,25 GHz TurboCore 4,404 GHz z10 5,208 GHz z196 Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
  • 5. #1 = Conceitos de Lines BOOK 16  384Gb 16  384Gb Prot.Keys BUS 16B LINE 256B 323056GB 323056GB 322288GB 321520GB 32 704GB Proibida cópia ou divulgação sem HSA 16GB permissão escrita do CMG Brasil.
  • 6. Chip dos SCs dos z196 4 x 24MB = 96MB em cada Chip SC 2 x SCs = 192MB em cada Book, 4 Books no CEC Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
  • 7. Chip das 4 PUs dos z196 L1 I 64KB L1D 128KB L2 1,5MB L3 24MB L4 192MB CS 3TB LineSize 256B 6 em cada MCM 24 PU por Book 96 PU por CEC Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
  • 8. #2 = Quantas Lines são possíveis? L1 I 64KB L1D 128KB L2 1,5MB L3 24MB BHT L4 192MB PHT BTB 3 4 5 DUPLA L1 I 256 CACHE D CACHE I L1D 512 + TLB1I + TLB1D DAT DUPLA LineSize 256B + TLB2 L2 6.144 L3 98.304/4 Proibida cópia ou divulgação sem L4 786.432/24? permissão escrita do CMG Brasil.
  • 9. #3 = Quantas Lines são necessárias? INICIALIZAÇÃO POUCO USO MAS MUITO USO 64KB são 256 Lines: Suficientes??? LOOPS Locality of Effect Jump Around, Self Modifying Code! NEVER MIND... Calls, SVCs, LE VARIÁVEIS +++ 128KB são 512 Lines: Suficientes??? Padrão de Referência Buffers, RENT TLBs! Cache Unfriendly . . . VARIÁVEIS --- Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
  • 10. Exemplo de CPUMF em z10 Supervisor% e Problem% 5070%? 3050%? Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
  • 11. Exemplo de CPUMF em z10 Cache Hit%, por Tipo 8090%? 3050%? Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
  • 12. Unidades Funcionais dos z196 demandam ainda mais Lines! IFB XU IFB Instruction Fetch & Branch prediction ICM Instruction Cache & Merge TLB IDU Instruction Decode Unit ISU Instruction Sequence Unit FXU FiXed-point Unit ICM BFU Binary & Hex Floating-point Unit DU Decimal Unit IDU LSU Load-Store Unit for Operands 5 Finished 3 Decoded XU Translation Unit (DAT) RU Recovery Unit ISU CPUMF DUPLA DUPLA RU
  • 13. #4 = Detalhes no uso de Lines Dirty bit Endereço Excl/Shr Físico L.R.U. 256 Bytes PKey “Dirty” bit Algo foi alterado na Line Excl/Shared A PU requisitou Exclusividade L.R.U. A Menos Recentemente Usada Prot. Key Chave de Proteção de Memória L4? Em qual dos 4 L4 reside a Line (2 bits) Card? Em qual Central Storage? Local / Other Endereço? Em qual Endereço Absoluto? LP? Em qual Partição Lógica? Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
  • 14. #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.
  • 15. 4,54 3,84 20 30cm #6 - Conclusões: • Os Limites Físicos impõem restrições CycleTime ns GHz z10 0,227 4,404 Freqüência: > 18% z196 0,192 5,208 Ciclo: < 15% Capacidade:> 60% • Opções de Compiladores . . . • Otimizar Códigos, aproveitando as vantagens já existentes! • Objetivar “Desperdício ZERO!” Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
  • 16. Perguntas ? ? ? Obrigado ! orsoni@maffei.com.br Todos os Manuais e RedBooks: © IBM Proibida cópia ou divulgação sem Cursos MFTS00 e MFTS30 : © MAFFEI permissão escrita do CMG Brasil. Boas
  • 17. Suporte: Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Notas del editor

  1. Abstract e Agenda para a Apresentação no CMG Brasil – São Paulo, 14 de Agosto de 2.012 Esta Palestra de 45 minutos procurará apresentar os Conceitos de Lines em Caches de Múltiplos níveis, como nos MainFrames IBM z196, mas não pretende ser um Tutorial. Serão analisadas a Evolução das Lines , suas Possibilidades e Limitações , convergindo para Recomendações que objetivem obter melhor Desempenho nas Máquinas.
  2. Iniciamos mostrando alguns Conceitos de Lines em Caches, sua origem no System/360 Modelo 85 em 1.9 68 e sua Evolução e Estado da Arte em chips modernos, como os das Máquinas IBM Power 795 e z 196 , indicando a sua tendência . Após mostrarmos quantas Lines são possíveis , estimulamos o raciocínio de quantas seriam necessárias , para os Programas terem boa Performance. Recomendações, em linhas gerais, são dadas ao final, objetivando otimizar Programas e Dados.
  3. No Projeto inicial , descrito por John Liptay , a IBM decidiu usar Caches de 16 ou 32KB, divididos em 16 setores e com Lines de 64 bytes, obtendo CacheHits da ordem de 80% . Se apenas a Tecnologia do Mod 75 permitia que fosse de 30 a 80% mais rápido que o Mod 65 , os Caches do Mod 85 permitiam que fosse de 220 a 380% mais rápido! [até 540% , com o Dispositivo Opcional de Multiplicação Rápida] A última coluna da Tabela mostra o que se podia obter graças à adição de Pipelines no Mod 91 , a primeira máquina Super Escalar: de 240 a 1.290% ! Tecnologia muito promissora.
  4. Esta Micro Fotografia do RedBook do Power7 , está aqui apenas a título de comparação , completando a Tendência na Evolução de Lines. São até 8 PUs no Chip, mais seus respectivos Caches: L1 I (32KB), L1 D (32KB), L 2 (256KB) e L 3 (32MB), acessando a Memória de até 8TB. Nela, foram destacadas as áreas ocupadas pelos Cores, com seus respectivos Caches L1 I e L1 D , os Caches externos L2 e, ocupando a maior área, o Cache compartilhado de nível 3 , num CEC de até 32 chips, ou 256 PUs. Mencionamos as Freqüências em que operam estas Máquinas, comparando-as com a z10 e a z196 , descrita detalhadamente, a seguir.
  5. Começamos por exibir um CEC z196 aberto, apenas para localizar os 4 Books, mostrando seus Modelos e respectivos Limites de Memória. No centro, vê-se como os 4 Caches de nível 4 se interligam em estrela , e como se conectam aos Boards de Memória, em cada Book. Detalha que o barramento é de 16 bytes, necessitando 16 Ciclos para transferir cada Line de 256 Bytes e menciona Chaves de Proteção. Ao focalizar o MCM ( M ulti C hip M odule), faremos a seguir um Zoom nos chips de SC ( S torage C ontroller) e PU ( P rocessing U nits).
  6. Cada Book contém um MCM que possui 6 chips quádruplos de Processadores, mais os 2 chips de Storage Controllers, detalhado acima. Em cada SC , o Cache de nível 4 é dividido em 4 partes de 24MB, permitindo acesso simultâneo . Além de servirem os até 24 Processadores do MCM , os SC s também se comunicam com a Memória Local no Book e com os seus semelhantes em outros 3 Books, e atendem toda demanda de Transferência de Dados de I/O, para até 1.024 Canais de Dados. Outras funções importantes também ficam aí, tal como o ETR ( E xternal T imer R eference).
  7. Detalhamento do chip de PU s da máquina z196: Cada PU conta com 64 KB de Cache L1 para Instruções e sua respectiva TLB1 I , mais 128 KB de Cache L1 para Dados e sua respectiva TLB1 D , mais um Cache Unificado Privativo L 2 de 1,5 MB. O grupo de 4 PUs do chip compartilha um Cache L3 de 24 MB, procurando reduzir tráfego externo. Cada um dos 2 Co Processadores de Criptografia e Compressão de Dados tem 2 Caches de 16 KB. Observar a área ocupada pelos Caches: ~80%! Faremos, a seguir, um Zoom para “dentro” dos circuitos das PUs no chip, analisando seus componentes e observando os Caches de Nível 1 .
  8. 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 12 . Para manter seu Cycle Time, a Tecnologia atual restringe o Cache de Instruções do Nível 1 a apenas 64KB , ou seja, 256 Lines. Da mesma forma, o Cache de Dados de Nível 1 possui apenas 128KB , ou seja, 512 Lines. Cabe perguntar: Serão suficientes ? [Estes valores são os mesmos para as máquinas z10 , mas ambos tinham 256KB nas máquinas z9 e anteriores de menor Cycle Time]
  9. Analisando um Programa “ normal ”, vemos que: As Rotinas de Inicialização , geralmente, são pequenas e não revisitadas (Datas, Arquivos); A maior parte do Código é de pouco uso, porém, geralmente, revisitada (CALL, PERFORM, BASR); O núcleo do Código, que nos interessa otimizar , geralmente é pequeno e muito usado, envolvendo “Loops” e a parte principal do Algoritmo; Há Códigos com partes que raramente são necessárias (Rotinas de Exceção, ON UNITs); Quanto às Constantes e Variáveis , geralmente há um pequeno grupo muito usado e a grande maioria pouco usada e bem dispersa . Repete-se a pergunta: Serão suficientes ?
  10. Os dados destas Planilhas foram obtidos através das ferramentas CPUMF (disponível nas máquinas z10 e z196 somente) e a STC HIS ( H ardware I nstrumentation S ervices). No primeiro e segundo Exemplos, observamos a máquina executando Funções do Sistema Operacional Servidor, em estado de Supervisor , da ordem de 70% do tempo ativo , de forma que os Códigos dos Usuários foram responsáveis por 30% do uso de CPU. No terceiro exemplo, em Partição Lógica menor e mais otimizada, vemos que o estado de Supervisor e de Problema praticamente se equilibram em 50% . Estima-se que a “disputa” por Lines seja proporcional a estas percentagens.
  11. Observando agora em relação aos Caches+TLBs: No primeiro Exemplo vemos o impacto , no Código Executável , nos Dados e TLB s, pelo uso de PUs dedicadas e compartilhadas , pois menos de 10% dos dados vieram dos Caches e as Traduções de TLBs usaram mais de mil Ciclos! No segundo Exemplo, 99% das Instruções e mais de 50% dos Dados provém dos Caches. Nos demais Exemplos, 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 menos do que o que foi antecipado anteriormente.
  12. Observar que a parte de cima é feita “ In Order”, enquanto que a parte de baixo, após a ISU , é feita “ Out Of Order”, se possível . 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 é Traduzido pela XU+TLB . Estas Funções dos PipeLines demandam mais Lines!
  13. Sugerimos as TAGs (ou Atributos!) que precisam ser anexadas a cada Line: Se foi alterada , necessitando ser copiada prá Memória, ou não; [PU In validation Broadcast!] Se foi solicitada com Exclusividade por uma PU, ou pode ser compartilhada por outras PUs; Se se trata da menos recentemente usada, indicando que poderá ser substituída no Cache; Para facilitar a conferência com a PSW Key, cada Line “carrega” consigo a Protection Key; Todos os componentes necessários para diferenciar o Endereço fisicamente no CEC.
  14. 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.
  15. 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.
  16. 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]
  17. Detalhes de uma Apresentação sobre o percentual de uso das Lines de Caches por Códigos conhecidos (BenchMark). Como nem todo byte das Lines são usados pelos Códigos, o resultado é baixa eficiência. Daí decorre a recomendação de juntar o mais possivelmente, tanto Códigos quanto Dados .