O documento discute a evolução da arquitetura de processadores mainframe. As principais tendências são: 1) Máquinas super escalares com múltiplas unidades de execução; 2) Caches maiores e em múltiplos níveis; 3) Pipelines mais profundos permitindo execução fora de ordem. O documento também descreve a evolução da tecnologia CMOS e como ela permitiu aumentar a frequência e integrar mais componentes nos chips dos processadores modernos como o z196.
Lei geral de proteção de dados por Kleber Silva e Ricardo Navarro (Pise4)
Evolução de processadores mainframe
1. Abstract e Agenda Devido à aproximação dos limites físicos , os Processadores evoluem em 2 “ frentes”: Mais e maiores Caches e Pipelines mais “profundas” Esta Palestra procurará identificar estes componentes nos MainFrames, comentando como têm evoluído e qual a sua tendência [Claro está, a evolução Tecnológica reduz o Cycle Time , mas não é nosso foco] 1 - 5min – Máquinas Super Escalares Caches e Pipelines aumentam o “throughput” 2 - 5min – Mais e Maiores Caches John Liptay & alii Evolução desde o /360- 85 3 - 5min – Pipelines mais Profundas Robert Tomasulo & alii Evolução desde o /360- 91 4 - 10min – CMOS e sua evolução JLiptay & alii e CWebb & alii De “A Mainframe on a Chip” até o z196 5 - 15min – Representação atual nos equipamentos z196 CWebb & alii 6min Caches em múltiplos níveis e Chip Area Size 6min Pipeline mais ‘profunda’ e Execução Fora de Ordem (OOO) 3min CPUMF e HIS 6 - 5min – Conclusões, Perguntas e Agradecimento
2. Tendências Tecnológicas #1 = Máquinas Super Escalares #2 = Mais e Maiores Caches #3 = Pipelines mais Profundas #4 = CMOS e sua evolução #5 = ‘State of Art’ nos equipamentos z196 #6 = Conclusões Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Execução em Paralelo? Execução Fora de Ordem? O que será que tem em 80% da Área nos Chips de Processadores ?
3. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Memória de Núcleos do /360- 67 64 KB em NewCastle
4. Máquinas Não Escalares Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Instr. Fetch EXEC ....... MEM C P U I ALU
5. Máquinas Não Escalares Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. CACHE L2 Instr. Fetch EXEC ....... i MEM C P U I ALU INSTR L1 DADOS L1
6. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Máquinas Escalares ? ? ? Dezsõ Sima Kandó Polytechnik Budapest
7. #1 = Máquinas Super Escalares Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. CACHE L2 Instr. Fetch EXEC . ...... EXEC ....... EXEC ....... INSTR L1 DADOS L1 MEM C P U I I I ALU ALU ALU BHT ....... TLB1 ....... TLB2 ....... ALB ....... DA T i i i i i
9. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Efeito de Caches ( 85 ) e PipeLines ( 91 )
10. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. z9 L1 I 256KB L1 D 256KB L2 40MB z10 e z196 L1 I 64KB L1 D 128KB z10 L1.5 3MB L2 48MB #2 = Mais e Maiores Caches
12. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Comparação entre z9 e z10 #3 = Pipelines mais Profundas
13. CACHE L1.5 Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. CACHE L2 Instr. Fetch EXEC . ...... i EXEC ....... EXEC ....... INSTR L1 DADOS L1 i i MEM C P U*4 I I I BHT ....... TLB1 ....... TLB2 ....... ALB ....... DA T Diagrama Simplificado dos z10 Chip *5 ALU ALU ALU Book Book Book
14. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. PipeLine dos z10
15. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. “ A Mainframe on a Chip”
16. #4 = CMOS e sua evolução CycleTime GHz z900 1,3ns 0,769 z900 1,09 0,917 z990 0,83 1,2 z9 0,58 1,7 z10 0,227 4,404 z196 0,192 5,208 Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. PU
17. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Chip dos z900
19. #5 = ‘State of Art’ nos equipamentos z196 Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. CACHE L3 Instr. Fetch EXEC ....... EXEC ....... EXEC ....... I NSTR L1 D ADOS L1 MEM C P U CACHE L2 TLB1 I BHT PHT BTB DAT ??? EXEC ....... EXEC ....... TLB1 D CACHE L4 Chip *6 ALU ALU ALU TLB2 ALB . NonQuiesce SSKE? Partial Purge? Ex.Fora de Ordem? Virtual Registers? ALU ALU CPU CPU CPU I I I I I Book Book Book
20. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Chip dos Storage Controllers dos z196
21. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Chip das 4 PUs dos z196
22. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Chip das 8 PUs dos Power7 L1I 32KB L1D 32KB L2 256KB L3 32MB
23. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. MicroFotografia de cada PU dos z10
24. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. DUPLA DUPLA 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 CACHE I + TLB1I CACHE D + TLB1D BHT PHT BTB DAT + TLB2 MicroFotografia de cada PU dos z196
25. DUPLA DUPLA IFB ISU XU RU ICM IDU 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 Diagrama das Unidades Funcionais dos z196 <=CPUMF
26.
27. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Uma constatação, antes das Perguntas: “ A Realidade sempre é um pouquinho diferente dos Comerciais” SpinTrônica?
29. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Perguntas ? ? ? Obrigado ! [email_address] Boas Otimizações ! Todos os Manuais e RedBooks : IBM Cursos MFTS00 e MFTS30 : MAFFEI
Abstract e Agenda para a Apresentação no CMG Brasil – São Paulo, 18 de Agosto de 2.011
Focaremos os principais componentes dos modernos Hardwares: Caches e PipeLines, como apareceram nos Mainframes, e qual seu estado atual até as máquinas zEnterprise, ou z196. Fundamentaremos os conceitos com Figuras e Textos presentes em Manuais, RedBooks e Palestras da IBM.
O propósito desta Figura acima é dar idéia do quão longe ficava a Memória dos System/360. Trata-se do Modelo 67 de NewCastle, com 64KB.
Nos System/360, a Memória de Núcleos Magnéticos era lenta e longínqua , alimentando os Circuitos do Instruction Fetch, e da Execution Unit, única portadora de ALU, capaz de produzir os resultados, uma Instrução por vez. Este fato caracterizava-os como Máquinas Não Escalares. Pelo fato de trabalharem em série , ou seja, todos os circuitos aguardavam enquanto um dos componentes estava ativo, era baixo o througput. Para reduzir os tempos necessários para se obter Instruções e Operandos, ou guardá-los, na Memória, foi introduzido o conceito de Cache.
Embora os Caches cumprissem sua função, baixando os tempos em que se esperava trazer e levar Operandos para a Memória, enquanto houvesse apenas uma ALU, as máquinas continuariam sendo Não Escalares.
Este artigo do Professor Sima, Diretor do Instituto de Informática Kandó, veicula como: From the companion CD-ROM to the IEEE CS Press book, &quot;The Anatomy of a Microprocessor: A Systems Perspective,&quot; by Shriver & Smith. Esclarece que a qualificação Escalar se aplica a máquinas que executem mais de uma Instrução em Paralelo, mas decodifiquem seqüencialmente. Por outro lado, quando ambas são feitas em paralelo, a máquina é dita Super Escalar. Consideramos que todo Mainframe IBM da zSeries seja Super Escalar.
Acima tipificamos uma Máquina Super Escalar, como por exemplo uma z10 , que execute até 3 Instruções por ciclo (sem dependências e nem Delays devido aos Caches e/ou TLBs) . Notar: 1 – A Adição de Caches de nível 1, separados para Instruções (Read) e Dados (Read&Write) 2 – A existência de várias Instruções e seus Operandos, aguardando Execução em Filas 3 – Circuitos de Tradução de Endereços e suas respectivas Memórias Associativas TLBs e ALB 4 – Tabelas para acelerar Branches, como a BHT – Branch History Table
Anunciado em Jan/68 e entregue em Dez/69, o /360 Modelo 85 trouxe a novidade do Cache podendo ser solicitado em 16KB ou 32KB. Testes iniciais mostraram que, com uma Line Size de 64 bytes, um Cache de apenas 16KB permitiria encontrar nele mais de 80% dos bytes requisitados, e com 32KB, quase 90% , obtendo um grande ganho em “vazão” (de 3,2 até 4,8 vezes mais rápido). Prevalecendo a idéia de Cache, implementou-se novo nível dentro da própria CPU, reduzindo o tempo de busca, bem como dividindo o Cache L1 em Instruções e Dados, com o IF solicitando os Dados antes , para serem usados a seguir, na Execution Unit.
Este BenchMark mostra o efeito dos Caches na Performance do Modelo 85 , comparado ao 65 (sem Cache), para os dois tamanhos possíveis: 16 ou 32 KB. Observar na primeira coluna, o ganho obtido pelo Modelo 75 , também sem Cache, apenas aplicando mais recente e melhor Tecnologia, com menor Cycle Time. Na última coluna aparecem os resultados do Modelo 91 , assunto que trataremos a seguir.
Quantidade de Bytes atualmente colocadas à disposição das PUs: z9: 256KB para cada L1 (IeD), vindos de 40MB z10: 192KB de Caches IeD, mais L1.5 privado de 3MB , vindos de Cache Externo de 48MB z196: 192KB de Caches IeD, mais L2 privado de 1,5MB , mais L3 de 24MB compartilhado com as outras 3 PUs do chip, vindos de Cache Externo de 192MB Conclusão : da z10 a z196, o Cache é 4 vezes maior! Mais de 6 mil vezes, desde o /360- 85 .
Anunciado em Nov/64 e entregue em Out/67, o /360 Modelo 91 trouxe a novidade do Pipeline , permitindo execução simultânea de mais do que uma Instrução. A inclusão de várias Execution Unit, com suas ALUs, tornou possível executar mais do que uma Instrução por vez (processamento Super Escalar), colocando maior demanda na Performance dos Caches. Notar: 8 DoubleWords de PreFetch, mais duas para Execução Alternada, devido a Branches. V er a descrição de “ Imprecise Interrupts” e da Instrução BCR 15,0 no Manual “Functional Characteristics” do System /360 Modelo 91 .
Aqui temos uma comparação das PipeLines do modelo z9 com o z10 (internamente era chamado de z6 , nesta apresentação de Charles Webb, em 2007). Observar que, embora com Ciclo mais rápido, e fazendo mais coisas em Paralelo, o z10 tem mais “Penalty Cycles”. Ver no IBM Systems Journal do z10 , o conceito de FanOut.
Completamos a Figura anterior, que representou o z10 , adicionando: 1 – Cada Cache L 2 alimenta os 4 Books 2 – Todos os Canais também se servem do L 2 3 – O Cache privado L 1.5 4 – Cada chip de PU é quádruplo 5 – Existem 5 chips de PU por MCM, ou Book A Figura já ilustra as adições, ocorridas no System/370 e seguintes , como DAT, TLB em 2 níveis, ALB (AASF) e a B ranch H istory T able, que permitem acelerar decisões.
Comparado à z9 , a Pipeline da z10 é mais “profunda”, o que também pode ser detalhado no Volume do IBM Journal of Research and Development, Vol. 53 No. 1 de 2009 , do qual se recomenda a leitura.
Por volta de Março de 1.997, Charles Webb e John Liptay publicam artigos relatando terem conseguido implementar um Mainframe da Arquitetura ESA/390 em um único chip CMOS, eliminando a necessidade de refrigeração a água. Acima, as aparições destes artigos no IEEE Journal of Solid State Circuits Volume 32 Número 11 e no IBM Journal of Research and Development, Volume 41 Número 4/5.
Apenas para comparação, ilustramos acima o tamanho dos MCM – Multi Chip Modules das primeiras máquinas da Série z, como a z900, com 5 polegadas de lado (13 cm) e 20 PUs. Para ser mais rápido, o MCM da z990 tinha que ser menor, apresentando apenas 3,5 polegadas de lado (96mm), tendo chips de PUs duplos . Não houve muita diferença (95mm) para o MCM das z9, com chips de PU duplos. Nas z10 o chip de PU passa a ser quádruplo , com 5 chips por MCM, podemos ter até 20 PUs. Nas z196, o MCM reduz para apenas 83mm, com 6 chips de PUs quádruplos, 24 PUs por Book.
Apenas por curiosidade, esta Micro Fotografia retrata o chip com uma PU da z900, contendo Caches de Nível 1 de 256KB, tanto para Dados quanto para Instruções. Estas máquinas, até a z990, tinham circuitos duplicados para Decodificação e Execução das Instruções, sendo seu resultado comparado pela R-Unit, por questões de integridade (RAS). Notar circuitos separados para Execução em Ponto Fixo e Ponto Flutuante, permitindo paralelismo.
A Figura acima ilustra as conquistas deste milênio: M ulti C hip M odules do tamanho de um diskette de 3,5 polegadas (95mm), como da z9 sobreposto ao diskette e o da z10 , logo abaixo. Na Micro Fotografia das z10 ao lado, vê-se que dentro do mesmo chip estão abrigadas 4 PUs, mais 2 Co-Processadores: Crypto e Compressão de Dados, mais os Interfaces com Canais (GX) e Cache L2 e Memória Central (MC). Vê-se também a região dedicada ao Instruction Fetch e Branch Prediction, Decodificação, Execução separada para Ponto Fixo, Flutuante (Hexa e Binário) e Decimal, Load & Store Unit, Conversão de Endereços e RAS.
As novas máquinas z196 acrescentaram um Cache L 2 de 1.5MB , intermediário entre os L 1 (Instrução e Dados) e os L 3 , permitindo à PU trabalhar mais tempo in dependente dos circuitos externos e dos L 3 e L 4 . Além da implementação de Execução de até 5 Instruções, incluindo Fora de Ordem (OOO), e mais umas 100 novas Instruções, os equipamentos z196 contam com outras “maravilhas” [como Non Quiesce SSKE e Partial Purge, mais os indicadas com ? na Figura acima] cujo tempo desta Palestra não permite discorrer, mas que aconselhamos seja pesquisado nos Manuais correspondentes.
Esta Micro Fotografia dá conta do existente dentro de cada um dos 2 chips que completam a composição do MCM, tendo 96MB cada um. Lines de 256 bytes destes Caches de nível 4 são também disputadas por todos os Canais, durante as Operações de I/O, via conexão InfiniBand. Além de servirem os 6 chips de PUs do próprio Book, também se comunicam, em estrela, com os demais L4 dos outros 3 Books, caso existam. Notar circuitos para ETR e TOD.
Detalhamento da composição do chip das máquinas z196: Cada PU conta com 64 KB de Cache L1 para Instruções e sua respectiva TLB1I, mais 128 KB de Cache L1 para Dados e sua respectiva TLB1D, mais um Cache L 2 de 1,5 MB. Cada 4 PUs em cada chip, compartilham um Cache L3 de 24 MB. Cada Book possui um Cache L4 de 192 MB, compartilhado por todos os Chips e pelos Canais. Cada CoProcessador tem 2 Caches de 16 KB. Observar a área ocupada pelos Caches! 80%!
Esta Micro Fotografia do RedBook do Power7 , foi colocada aqui apenas a título de comparação e para completar a idéia de Tendência desta Evolução Tecnológica. São 8 PUs no Chip, mais seus respectivos Caches: L1I (32KB), L1D (32KB), L2 (256KB) e L3 (32MB).
Esta Micro Fotografia, da apresentação de Charles Webb, agrupa e identifica os diversos circuitos na PU da z10. Compare-se com a próxima Micro Fotografia, dos circuitos equivalentes da z196, que ganha a ISU – Instruction Sequencing Unit, que habilita a z196 a executar até 5 Instruções por ciclo e também fora de ordem . Notas: Máquinas como a ES-9000 já executavam Instruções fora de ordem, aumentando o throughput, mas este esquema não havia nas máquinas da Série z, reaparecendo agora na z196. Quanto aos Operandos, todas os processam fora de ordem.
Esta bonita Micro Fotografia mostra que: Instruções vêm do Cache L2 para a ICM , no L1I e TLB1I, sob comando da IFB , que também faz Branch Prediction: BHT+PHT+BTB. Daí são decodificadas pela IDU e seqüenciadas pela ISU , sendo então distribuídas para a LSU , que é dupla, para a FXU , também dupla, para a BFU (se Ponto Flutuante Hexadecimal ou Binário) ou para a DU (se Ponto Flutuante Decimal ou Decimal Compactado). Todo Operando necessário é movimentado pela LSU e toda Tradução de Virtual para Real é tratada pela XU , onde estão os circuitos do DAT e a TLB2. A RU garante o RAS.
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 migram do Cache L1I 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, estas duas Unidades também se encarregam de Multiplicação e Divisão). Todo Operando é manipulado pela LSU , onde se encontra o Cache L1D, e Traduzido pela XU .
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!). Alguns Compiladores 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. Continuam as pesquisas com a SpinTrônica, provavelmente a “nova” Tecnologia a substituir a atual Metodologia para fabricar circuitos.
Acima uma pequena Bibliografia do assunto SpinTrônica. Um dos objetivos desta Palestra foi tentar mostrar que, desde a introdução de PipeLines no final dos anos 60, e a conseqüente proliferação de máquinas Super Escalares, devemos nos abster de imaginar os Mainframes executando apenas uma Instrução por vez (ou por Ciclo, para aquelas que necessitam de apenas um Ciclo), mas o que ocorre é mais parecido com a foto do próximo slide . . . [Quando os vagões do Metrô param, os passageiros que conseguirem embarcar, vão. Não é bem uma fila!]
Encontro das Linhas Azul e Vermelha, na estação de Metrô da Sé, em São Paulo.
Agradecemos a oportunidade, oferecida pelo CMG Brasil, de trazer este assunto e seus Conceitos à consideração dos Profissionais responsáveis pelas disciplinas de Análise de Performance e Planejamento de Capacidade. À disposição para Perguntas e eventuais esclarecimentos adicionais, obrigado. Se desejar maiores detalhes e/ou quiser trocar informações, favor contatar : [email_address]
Violenta redução no número de Instruções geradas pelo Compilador FORTRAN, quando comparadas as Versões G, com H Extended e H Enhanced. Observar que o percentual de ganho obtido depende da Máquina e mais especificamente, do próprio Código gerado, não sendo uniforme.
Observar as grandes diferenças, devidas a diferentes opções e diferentes Bibliotecas de Suporte, bem como aos diversos Parâmetros de Otimzação para o Compilador.
Novamente um comparativo entre 4 Versões do Compilador FORTRAN, observando-se o percentual de redução na quantidade de Instruções geradas. A Mensagem destes números, que não são recentes, é a de que Otimizações são possíveis e na grande maioria das vezes, os resultados são compensadores.