Abstract e AgendaComentários sobre o Conceito de LinesUso de Múltiplos Níveis de Cache nos Mainframes IBM z196Quantas Line...
Uso de Lines nos z196                                                 Caches em                                           ...
Começou no                                   System/360-85                                      JOHN LIPTAY               ...
Chip de 8 PUs do Power795  L1 I 32KB  L1D       32KB  L2 256KB  L3 32MB  CS    8TB                        L3              ...
#1 = Conceitos                                                    de Lines                                                ...
Chip dos SCs dos z1964 x 24MB = 96MBem cada Chip SC2 x SCs = 192MBem cada Book,4 Books no CEC                  Proibida có...
Chip das 4 PUs dos z196 L1 I 64KB L1D 128KB L2 1,5MB L3   24MB L4 192MB CS    3TBLineSize 256B6 em cada MCM24 PU por Book9...
#2 = Quantas Lines                                          são possíveis? L1 I 64KB L1D 128KB L2 1,5MB L3   24MB         ...
#3 = Quantas Lines                                 são necessárias?INICIALIZAÇÃO POUCO   USO                              ...
Exemplo de CPUMF em z10             Supervisor% e Problem%                       5070%?     3050%?Proibida cópia ou divu...
Exemplo de CPUMF em z10                 Cache Hit%, por Tipo                             8090%?   3050%?Proibida cópia o...
Unidades Funcionais dos z196                      demandam ainda mais Lines!     IFB               XU             IFB Inst...
#4 = Detalhes no                                           uso de Lines                 Dirty bitEndereço         Excl/Shr...
#5 = O que fazer                          para otimizar?                                   Aproximar:                     ...
4,54 3,84   20 30cm                                            #6 - Conclusões:• Os Limites Físicos impõem restrições     ...
Perguntas ? ? ?                                          Obrigado !                                orsoni@maffei.com.brTod...
Suporte:Proibida cópia ou divulgação sempermissão escrita do CMG Brasil.
Próximos SlideShares
Carregando em…5
×

CMG Brasil 2012 - Uso de Lines nos z196

1.155 visualizações

Publicada em

Apresentação de Luiz Orsoni no CMG Brasil 2012 - Uso de Lines nos processadores z196

Publicada em: Tecnologia
1 comentário
2 gostaram
Estatísticas
Notas
  • 19-Título = Jogando.net/mu Venha se divertir de verdade !!!
    [b]Ola,sou o Pr1nceMG,Divulgador oficial do Servidor de Mu online Season 6 do Brasil
    ESTÁ ON HÁ MAIS DE 5 ANOS,Produzindo sua Diversão com qualidade.
    TODOS OS SERVERS ficam ON 24 horas por dia, Sempre Buscamos o Melhor para os Gamers.
    São varios Server esperando por você :
    * MuWar' 1000x/1500x
    * Super - 10.000x ** Pvp 15.000x
    * Very Easy - 5.000x
    * Hard 100 x
    * Extreme 10x
    * Novo servidor Phoenix: Free 3000x | Vip: 4000x Phoenix
    SÓ NO http://www.jogando.net/mu VOCÊ ENCONTRA
    Os Melhores itens e kits mais tops de um server De MU Online:
    * Novas asas level 4
    * Novos Kits DEVASTADOR
    * Novos Kits DIAMOND v2 + Kit Mystical (a combinação da super força)
    * Novos Sets especiais de TIME.
    *CASTLE SIEGE AOS SÁBADOS e DOMINGOS.
    Site http://www.jogando.net/mu/
    Esperamos pela sua visita.Sejam todos muito benvindos ao nosso Servidor.
    *Um mês de grandes eventos e Promoções do dia das Crianças e Sorteio de 1 iPad e 2.000.000 de Golds!
    E obrigado pela atençao de todos voces !!!
    Conheça também animes cloud http://animescloud.com/ São mais de 20.000 mil videos online.
    By:Pr1nceMG divulgador oficial do jogando.net/mu
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
Sem downloads
Visualizações
Visualizações totais
1.155
No SlideShare
0
A partir de incorporações
0
Número de incorporações
595
Ações
Compartilhamentos
0
Downloads
0
Comentários
1
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • 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.
  • 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.
  • 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.
  • 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.
  • 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).
  • 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).
  • 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 .
  • 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]
  • 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 ?
  • 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.
  • 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.
  • 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!
  • 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.
  • 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.
  • 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.
  • 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]
  • 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 .
  • CMG Brasil 2012 - Uso de Lines nos z196

    1. 1. Abstract e AgendaComentários sobre o Conceito de LinesUso de Múltiplos Níveis de Cache nos Mainframes IBM z196Quantas Lines serão necessárias, para os Programas terem BoaPerformance?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-852 - 6min – Quantas Lines são possíveis? Caches em diversos Níveis hierárquicos3 - 4min – Quantas Lines são necessárias? Locality Effect x Padrão de Referência4 - 9min – Detalhes no uso de Lines Influência do Sistema Operacional z/OS5 - 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. 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. 3. Começou no System/360-85 JOHN LIPTAY PAK-KIN MAK CHARLES WEBB . . .Proibida cópia ou divulgação sempermissão escrita do CMG Brasil.
    4. 4. Chip de 8 PUs do Power795 L1 I 32KB L1D 32KB L2 256KB L3 32MB CS 8TB L3 L3 L3 L3Até 32 por CEC 256 PUs L3 L3 L3 L33,72 GHz 6Core4,0 GHz MaxCore4,25 GHz TurboCore4,404 GHz z105,208 GHz z196 Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
    5. 5. #1 = Conceitos de Lines BOOK 16  384Gb 16  384Gb Prot.Keys BUS 16B LINE 256B323056GB323056GB322288GB321520GB32 704GB Proibida cópia ou divulgação semHSA 16GB permissão escrita do CMG Brasil.
    6. 6. Chip dos SCs dos z1964 x 24MB = 96MBem cada Chip SC2 x SCs = 192MBem cada Book,4 Books no CEC Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
    7. 7. Chip das 4 PUs dos z196 L1 I 64KB L1D 128KB L2 1,5MB L3 24MB L4 192MB CS 3TBLineSize 256B6 em cada MCM24 PU por Book96 PU por CEC Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.
    8. 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 DUPLAL1 I 256 CACHE D CACHE IL1D 512 + TLB1I + TLB1D DAT DUPLALineSize 256B + TLB2L2 6.144L3 98.304/4 Proibida cópia ou divulgação semL4 786.432/24? permissão escrita do CMG Brasil.
    9. 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, LEVARIÁ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. 10. Exemplo de CPUMF em z10 Supervisor% e Problem% 5070%? 3050%?Proibida cópia ou divulgação sempermissão escrita do CMG Brasil.
    11. 11. Exemplo de CPUMF em z10 Cache Hit%, por Tipo 8090%? 3050%?Proibida cópia ou divulgação sempermissão escrita do CMG Brasil.
    12. 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 DUPLARU
    13. 13. #4 = Detalhes no uso de Lines Dirty bitEndereç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óriaL4? Em qual dos 4 L4 reside a Line (2 bits)Card? Em qual Central Storage? Local / OtherEndereç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. 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 sempermissão escrita do CMG Brasil.
    15. 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. 16. Perguntas ? ? ? Obrigado ! orsoni@maffei.com.brTodos os Manuais e RedBooks: © IBM Proibida cópia ou divulgação semCursos MFTS00 e MFTS30 : © MAFFEI permissão escrita do CMG Brasil. Boas
    17. 17. Suporte:Proibida cópia ou divulgação sempermissão escrita do CMG Brasil.

    ×