Você está na página 1de 7

A organizao e arquitetura do microprocessador IBM Power5

Rodrigo Santos de Souza Escola de Informtica Universidade Catlica de Pelotas (UCPEL) Rua Flix da Cunha, 412, CEP: 96010-000
rsouza@ucpel.tche.br

Resumo. Esse trabalho apresenta as caractersticas do microprocessador POWER5, explicando brevemente seu esquema geral de funcionamento, paralelismo, previso de desvio, gerenciamento de memria, bem como as caractersticas fsicas e as tecnologias utilizadas pelo microprocessador.

1. Introduo
O microprocessador Power5 um processador RISC de 64 bits da IBM. Foi desenvolvido introduzindo-se melhorias no seu antecessor, o Power4, com o intuito de aumentar a performance. Um dos objetivos do seu projeto era de manter a compatibilidade em relao aos dois processadores, no somente os programas compilados para o Power 4 deviam executar corretamente, mas as otimizaes feitas nas aplicaes deveriam continuar vlidas. Assim como o seu antecessor, o Power5 apresenta dois cores no mesmo chip, e alteraes no seu design, como na localizao da cache L3, permitiram o aumento do poder de processamento. Foi introduzido o paralelismo em nvel de thread com duas vias para cada core, o que acarreta um aproveitamento maior de cada ciclo de clock e dos recursos do sistema, e com isso um ganho de desempenho. Este texto trs as principais caractersticas do Power5 e discute as principais mudanas em relao ao Power4 que acarretaram em um ganho de desempenho.

2. Viso geral do chip


O Power5 a segunda gerao de processadores da IBM que incorpora dois processadores RISC de 64 bits idnticos no mesmo chip. Possui 276 milhes de transistores por chip e ocupando uma rea de 389mm2. Foi construdo utilizando a tecnologia IBM de semicondutores 130 nanmetros e Silicon-On-Insulator (SOI), que diminui as capacitncias e consequentemente um aumento de performance. Apresenta uma maior capacidade de processamento que seu antecessor e possui uma arquitetura de sistema que permite uma alta largura de banda de comunicao com a memria. Cada core possui mltiplas unidades de execuo e cache L1 prpria de instrues e dados. Possui cache L2 compartilhada entre ambas CPUs, e tambm o diretrio e o controlador da cache L3, no entanto a cache L3 propriamente, foi deixada fora do chip devido as suas dimenses fsicas (ver Figura 2). Alm disso, o chip abriga tambm controladores de memria e unidade de controle distribuda. A unidade de controle proporciona a interconexo entre os diferentes chips para uso em sistemas de memria compartilhada.

Apresenta tambm caches maiores se comparado ao Power4 (1.9 MB L2 e 36 MB L3), que reduz a necessidade de acesso memria e aumenta o cache hit e por conseqncia o desempenho como um todo. A maior eficincia de uso dos recursos devido as caractersticas multithread e o elevado clock causam um alto consumo de energia. Para minimizar isso e deixar a dissipao de calor em nveis aceitveis, o Power5 possui gerencia Dinmica de potncia (Dynamic Power Management) que reduz o consumo de energia sem perda de desempenho significativa. O Power5 aumentou a escalabilidade SMP para at 64 vias. Para evitar que este aumento do trfego sature a interconexo da unidade de controle, a cache L3 opera com um barramento prprio, um para leitura e outro para escrita (ver Figura 1). Isso no s reduz a latncia no acesso a esta cache, mas tambm libera a unidade de controle do trfego correspondente. O controlador de memria, que no Power4 era um chip prprio, foi integrado ao chip do Power5, fazendo ligao diretamente com a cache L2 e no mais com a L3, reduzindo drasticamente a latncia no acesso memria (ver Figura 1).

Figura 1. Organizao da cache

3. Gerncia de memria
O Power5 trabalha com trs nveis de memria cache alm da memria principal. Fisicamente a cache de nvel 1 (L1) fica localizada dentro de cada core. A cache de nvel 2 fica fora dos cores e a cache de nvel 3 (L3) fica fora do chip devido as suas dimenses (ver Figura 2). A cache L1 separada em cache de dados e de instrues. A parte de instrues tem 64Kbytes e associatividade de 2 vias. A parte de dados tem 32Kbytes e associatividade de 4 vias.

Figura 2. Chip Power5

A cache L2 possui 1,875 MB e compartilhada pelos dois cores processadores. dividida em trs partes (ou slice), cada uma possui 10 vias set-associative com classe de congruncia 512 e 128 bytes por linha. As partes so idnticas e possuem cada uma o seu controlador que pode ser acessado independentemente por cada core. O endereo fsico de acesso determina o slice da cache em que a linha desejada est localizada. O terceiro nvel da cache, a cache L3, tem 36MB de memria e fica localizado fora do chip devido ao seu tamanho fsico, porm dentro do chip tem um diretrio da cache L3 para que a cache somente seja acessada se realmente o dado desejado estiver nela. Dentro do chip tambm fica o controlador da cache reduzindo os atrasos causados no acesso a controladores externo. A L3 implementada usando 3 slices, uma para cada slice da cache L2. Cada slice de 12 vias set-associative, com classe de congruncia 4096 com linhas de 256 bytes com dois setores de 128 bytes para equiparar ao tamanho das linhas da cache L2. O acesso a cache L3 se d atravs de dois barramentos 16-bytewide separados, um para leitura e outro pra escrita que operam na metade da freqncia do processador. A comunicao entre a memria principal e o controlador que fica dentro do chip, se d atravs de dois barramentos unidirecionais com os mdulos DDR ou DDR2 dependendo do modelo do processador. Os dados lidos do barramento so 16-byte-wide e escritos 8-byte-wide.

4. Pipeline de instrues
O Power5 foi desenvolvido para suportar paralelismo em nvel de threads, mais especificamente simultneos multithread (SMT) que ser tratado na sesso 5, no entanto o seu pipeline idntico ao do seu antecessor o Power4. O modelo de execuo fora de ordem com um mximo de oito instrues despachadas a cada ciclo. So oito as unidades de execuo existentes: duas unidades para operaes com ponto flutuante, duas de loadstore, duas para operaes com ponto fixo, uma para branch e uma para operaes lgicas. A figura 3 mostra o pipeline do processador Power 5. Os estgios IF, IC e BP correspondem a predio de fetching e branch. Do estgio D0 at o GD feita a decodificao das instrues e so formados os grupos. No MP so determinadas as dependncias. Durante o ISS as instrues so despachadas apropriadamente para a unidade de execuo, ento l os registradores no estgio RF, executa a instruo no EX e escreve os resultados nos registradores adequados no estgio WB. Para que a instruo possa ser finalizada necessrio que todas as instrues do seu grupo sejam tambm finalizadas, isto feito nos estgios Xfer e CP. Na sesso 5 este processo ser descrito com mais detalhes. Dividir os pipelines em vrios estgios so uma estratgia utilizada para aumentar a freqncia de operao do processador e diminuir o tempo total de cada instruo. O efeito contrrio que isso traz que uma previso de desvio errada acarreta numa perca de muitas instrues que j estiverem no pipeline. Para minimizar este problema, o Power5 tem um mecanismo sofisticado de previso dinmica de desvio, atravs da utilizao de trs tabelas de histrico. Duas delas so usadas para previso de desvio usando os mecanismos de Previso Bimodal e Correlacionada e a terceira usada para informar qual dos dois mtodos o mais provvel de estar correto. As instrues so executadas fora de ordem, por isso necessrio guardar a ordem do programa para todas instrues que esto no pipeline. Com o objetivo de minimizar a lgica necessria para guardar ordem de um grande nmero de instrues, so formados grupos. Os grupos so seguidos individualmente durante o fluxo de instrues, isto , o estado da mquina mantido por grupo e no por instrues individuais. As instrues so despachadas um grupo por vez. Quando o grupo despachado as informaes de controle do grupo so gravados na tabela GCT (Group Completion Table) que pode armazenar at 20 grupos. Assim que as instrues so finaliza esta informao gravada na tabela GCT que mantida at que o grupo seja retirado, isto , at que todas as instrues do grupo tenham sido executadas.

Figura 3. Pipeline do Power5 - (IF: instruction fetch; IC: instruction cache; BP: branch predict; D0: decode stage 0; Xfer: transfer; GD: group dispatch; MP: mapping; ISS: instruction issue; RF: register file read; EX: execute; EA: compute address; DC: data caches; F6: six-cycle floating-point execution pipe; Fmt: data format; WB: write back; CP: group commit)

5. Paralelismo em nvel de thread


Em processadores superescalares convencionais, apenas uma thread executada por vez, e embora o paralelismo exista em nvel de instrues, e processador fica ocioso em muitos ciclos devido a eventos de longa latncia como os acessos a memria devido a situaes de cache miss. A implementao de multithread em nvel de hardware diminui estes ciclos perdidos, pois enquanto uma thread est parada devido a um evento de longa latncia, o processador pode executar uma outra thread. Para o sistema operacional, um processamento a multithread visto de forma semelhante a um processamento simtrico. Existe basicamente trs mtodos de implementao de paralelismo multithread em nvel de processador: coarse-grain multithread, fine-grain multithread e simultneous multithread (SMT), que o mtodo que o processador Power5 utiliza. No mtodo coarse-grain multithread somente uma thread executa a cada instante de tempo. Quando esta thread encontra um evento de longa latncia, como um cache miss, o hardware troca para a outra thread que passa a usar os recursos do processador. J no mtodo fine-grain a thread trocada a cada ciclo independente de alguma delas estar aguardando um estado de longa latncia ou no. O mtodo simultneos multithread, que implementado no Power5, tambm faz a troca de thread a cada ciclo, porm quando uma delas encontra um estado de longa latncia o hardware troca a execuo para a outra thread e desta forma tem-se uma espcie de misto dos dois mtodos anteriores, fazendo uso das vantagens de cada um. O Power5 suporta dois modos de operao: simultaneos multithread (SMT) ou single thread (ST). No modo SMT dois contadores de programa (PC) so usados, um para cada thread, de modo as instrues so buscadas alternadamente para uma thread e outra. Similarmente, as predies de desvio tambm so feitas de forma alternada entre as threads. No modo ST apenas um contador de programa usado e as instrues so buscadas para esta thread em todos os ciclos. A execuo na forma multithread descritas abaixo.

Aps carregar o contador de programa com o endereo da prxima instruo, at oito instrues podem ser buscadas na cache de instrues a cada ciclo. A cache de instrues compartilhada pelas duas threads. Em um dado ciclo, instrues de uma mesma thread so buscadas e ento verificada a existncia de algum branch entre as instrues. Se algum for encontrado a direo do branch prevista utilizando-se as trs tabelas de previso de branches, que tambm so compartilhadas entre as threads. Depois que as instrues so buscadas, so colocadas em dois buffers de instrues separados, um para cada thread (ver Figura 4). Cada um deles pode ter at 24 instrues. Baseado na prioridade das threads, at cinco instrues so buscadas no buffer e os grupos so formados. Cada grupo s possui instrues de uma mesma thread e todas so decodificadas em paralelo. Quando os recursos necessrios ao grupo esto disponveis, o grupo despachado na ordem do programa. Depois do despacho, feita a renomeao e o mapeamento dos registradores lgicos para os fsicos. Todos os registradores fsicos so compartilhados pelas duas threads. Feitas todas as renomeaes, as instrues so colocadas nas filas de despacho. As informaes de cada grupo de instrues despachado so gravadas numa tabela (GCT) para que possa ser controlada a finalizao de cada instruo do grupo e posteriormente reordenar as instrues na ordem real do programa. Assim que os dados de entrada das instrues esto disponveis, elas so delegadas para a execuo. Para a delegao no existe distino entre instrues de diferentes threads, prioridades ou grupos. At oito instrues podem ser delegadas ao mesmo tempo, uma em cada unidade de execuo. Ento realizada a execuo e em seguida so gravados os resultados nos registradores fsicos. Quando todas as instrues de um grupo tiverem sido finalizadas, ento o grupo todo liberado.

Figura 4. Fluxo de Instrues

6. Consideraes finais
O processador Power5 uma evoluo do Power4 que trs como principal caracterstica o uso de simultaneous multithread (SMT) com o intuito de fazer um melhor aproveitamento dos recursos de hardware disponveis. Outras mudanas significativas foram realizadas que resultaram em um maior desempenho que o Power4, mesmo quando utilizado em modo single thread. A melhora na tecnologia dos semicondutores, a utilizao de barramento exclusivo para a cache L3 e o aumento das caches propiciou um ganho significativo de desempenho.

Referncias
Sinharoy, B., Kalla, R. N., Tendler, J. M., Eickemeyer, R., J. and Joyner, J.,B. (2005) POWER5 system microarchitecture, In IBM J. Res. & Dev. vol. 49 num. 4/5, p. 505-521 Kalla, R., Sinharoy, B., Tendler, J. M., (2004) IBM Power5 Chip: A dual-core Multithreaded Processor, Micro, IEEE, Vol. 24, Issue 2, p. 40 47 Tendler, J. M., Dodson, S., Fields, S., Le, H., Sinharoy, B. (2001) POWER4 System Microarchitecture, Technical White Paper, IBM Server Group, http://www03.ibm.com/servers/eserver/pseries/hardware/whitepapers/power4.pdf