tendências tecnológicas em processadores, por luiz carlos orsoni

14
Tendências Tecnológicas em Processadores CMG Journal of Computer Resource Management Preparado por Luiz Carlos Orsoni 18 de Agosto de 2.011 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 IBM, comentando como têm evoluído e qual a sua tendência . . . [A evolução Tecnológica em Circuitos reduz o Cycle Time, mas não é nosso foco] Com esse propósito, objetiva-se esclarecer a perguntas do tipo: Execução em Paralelo? Execução Fora de Ordem? O que há em 80% da Área nos Chips de Processadores? COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL

Upload: joao-galdino-mello-de-souza

Post on 25-May-2015

515 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni

Tendências Tecnológicas em ProcessadoresCMG Journal of Computer Resource Management

Preparado por Luiz Carlos Orsoni18 de Agosto de 2.011

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 IBM, comentando como têm evoluído e qual a sua tendência . . .[A evolução Tecnológica em Circuitos reduz o Cycle Time, mas não é nosso foco]Com esse propósito, objetiva-se esclarecer a perguntas do tipo:Execução em Paralelo?Execução Fora de Ordem?O que há em 80% da Área nos Chips de Processadores?

COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL

Page 2: Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni

1 – Máquinas Super Escalares

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.

Nos primeiros 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, o througput era baixo. Para reduzir os tempos necessários para se obter Instruções e Operandos, ou guardá-los, em 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.

O artigo do Professor Sima, do qual se extraiu a Figura acima, 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.

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 Filas3 – Os Circuitos de Tradução de Endereços e suas respectivas Memórias Associativas TLBs e ALB4 – Tabelas para acelerar Branches, como a BHT – Branch History Table

2 – Mais e Maiores Caches

COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL

Page 3: Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni

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 32KB.

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 na seção 3 - PipeLines.

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 até a z196, o Cache é 4 vezes maior! Da z9 até a z196, o Cache é quase 5 vezes maior! Mais de 6 mil vezes, desde a introdução do System/360 Modelo 85.

COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL

Page 4: Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni

3 – Pipelines mais Profundas

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 Units, 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.

Ver 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, a 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 L2 alimenta os 4 Books2 – Todos os Canais também se servem do L23 – O Cache privado L1.54 – Cada chip de PU é quádruplo5 – 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 Branch History Table, que permitem acelerar decisões.

COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL

Page 5: Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni

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.

Embora não seja o nosso foco nesta Palestra, apresentsmos acima o decréscimo nos Cycle Times das máquinas da zSeries, conseqüência da evolução Tecnológica na construção de circuitos eletrônicos.

COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL

Page 6: Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni

4 – CMOS e sua evolução

Apenas para comparação, ilustramos 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 chips de PUs, dos quais até 16 CPUs.

Para ser mais rápido, o MCM da z990 tinha que ser menor, apresentando apenas 3,5 polegadas de lado (96mm), tendo 8 chips de PUs duplos, alguns dos quais só podiam ser usados uma PU por vez.

O z990 também introduziu o conceito de Book, podendo haver até 4 Books em cada CEC. Como o máximo era 12 por MCM, o z990 pode ter até 48 PUs.

Não houve muita diferença (95mm) para o MCM das z9, também 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 por Book.

Nas z196, o MCM reduz para apenas 83mm de lado, com 6 chips de PUs quádruplos, 24 PUs por Book).

COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL

Page 7: Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni

A Figura acima ilustra as conquistas deste milênio: Multi Chip Modules do tamanho de um diskette de 3,5 polegadas (95mm), como o da z9 sobreposto ao diskette e o da z10, logo abaixo.

Nas duas Figuras acima, ressaltamos em azul os Chips dedicados aos Caches L2.

Na Micro Fotografia das z10 ao lado, vê-se que dentro do mesmo chip estão abrigadas 4 PUs, mais 2 Co-Processadores para 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.

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.

COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL

Page 8: Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni

5 – ‘State of Art’ nos equipamentos z196

As novas máquinas z196 acrescentaram um Cache L2 de 1.5MB, intermediário entre os L1 (Instrução e Dados) e os L3, permitindo à PU trabalhar mais tempo independente dos circuitos externos e dos L3 e L4.

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 64KB de Cache L1 para Instruções e sua respectiva TLB1I, mais 128KB de Cache L1 para Dados e sua respectiva TLB1D, mais um Cache L2 de 1,5MB.Cada 4 PUs em cada chip, compartilham um Cache L3 de 24MB.Cada Book possui um Cache L4 de 192MB, compartilhado por todos os Chips e pelos Canais.Cada Co Processador tem 2 Caches de 16KB.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).

COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL

Page 9: Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni

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 nos 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 na Figura ao lado 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 “normais”).

Todo Operando é manipulado pela LSU, onde se encontra o Cache L1D, e Endereços são Traduzido pela XU.

COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL

Page 10: Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni

6 – Conclusões:

Limites Físicos impõem restrições Otimizar Códigos, aproveitando as vantagens

já existentes! Opções de Compiladores . . . Objetivar “Desperdício ZERO!” Novamente: SpinTrônica?

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 indesejável (e desnecessá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).

Questões: Se desejar maiores detalhes e/ou quiser trocar informações, contactar: [email protected]

Acrônimos:

o AASF Advanced Address Space Facilityo ALB Access Register Lookaside Buffero ALU Arithmetic and Logic Unito BHT Branch History Tableo Book Estrutura eletrônica onde ficam o MCM,

Memórias e as Interfaces com os Canaiso CEC Central Electronic Complexo CMOS Complementary Metal Oxide

Semiconductoro CPU Central Processing Unit, a unidade

Lógica para executar InstruçõesDAT Dynamic Address Translation, os

circuitos que traduzem endereços e usam TLBs e ALB

o ESA Enterprise System Architectureo ETR External Time Referenceo EX Execution Unito IEEE Institute of Electrical and Electronics

Engineerso IF Instruction Fetcho InfiniBand Substitui os STIs conectando Canaiso I/O Input Outputo L1 Cache de Nível 1o L1I Cache de Nível 1 para Instruçõeso L1D Cache de Nível 1 para Dadoso L1.5 Cache entre os Níveis 1 e 2o L2 Cache de Nível 2o L3 Cache de Nível 3o L4 Cache de Nível 4o MCM Multi Chip Moduleo OOO Out Of Order Instruction Executiono PU Processing Unit, os circuitos Físicoso RAS Reliability, Availability, Serviceabilityo SSKE Set Storage Key Extendedo TLB Translation Lookaside Buffero TLB1 TLB do Cache L1o TLB1I TLB do Cache L1Io TLB1D TLB do Cache L1Do TLB2 TLB dos Caches de demais níveiso TOD Time Of Day Clock

Referências Bibliográficas:

o Principles of OPeration.pdf DZ9ZR007 z/10 Ago/2.010 SA22-7832-08

o RedBooks z10 e z196 Enterprise Class Technical Guides SG 24-7516 e 7833.pdf

o IBM Journal of Research and Developmento Professor Dezsõ Sima, Kandó Polytechnik,

COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL

Page 11: Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni

Budapest, do CD-ROM que acompanha o livro "The Anatomy of a Microprocessor: A Systems Perspective," por Shriver & Smith IEEE Press

o Todos os Manuais e RedBooks: IBMo Cursos MFTS00 e MFTS30 da MAFFEI

COPYRIGHT CMG BRASIL - DIREITOS RESERVADOS AO CMG BRASIL SOBRE QUALQUER FORMA DE REPRODUÇÃO, CÓPIA E DIVULGAÇÃO DESTE MATERIAL