Documentos de Académico
Documentos de Profesional
Documentos de Cultura
g06 Powerpc Texto
g06 Powerpc Texto
Bruno Luis Goncalves Dilly ra015584 Luis Felipe Strano Moraes ra016681
Rodolfo Baslio Vick ra017255
2 Performace e Benchmarks 5
5 Pipeline 12
5.1 Descricao dos pipelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6 Memoria 13
7 Entrada e sada 14
1
1 Introducao
1.1 Historia
A historia do PowerPC se inicia com a arquitetura Power, da IBM, introduzida com o RISC
System/6000 no incio de 1990. O design foi inspirado pelos ja existentes processadores RISC,
como o IBM 801 e a arquitetura MIPS. O microprocessador POWER original, uma das primeiras
implementacoes superescalar RISC, foi um design multi-chip de alta performance. Logo a IBM
percebeu que seria necessario um microprocessador single-chip para a linha RS/6000 tanto maquinas
lower-end quanto high-end, e iniciou sua producao. Em 1991 a IBM constatou que seu design
poderia se tornar um microprocessador usado por toda a industria.
Entao a IBM se aproximou da Motorola com o objetivo de colaborar no desenvolvimento de
uma famlia de microprocessadores single-chip baseados na arquitetura POWER. Logo depois, a
Apple, como uma das maiores clientes de microprocessadores para desktop da Motorola, se uniu ao
debate. Esta colaboracao entre as tres empresas passou a ser conhecida como AIM (Apple, IBM,
e Motorola).
Para a Motorola, o POWER parecia um negocio inacreditavel. Isto os permitiu vender uma
CPU RISC poderosa e amplamente testada com pouco investimento em design por sua parte. Isto
tambem a manteve proxima a Apple, e parecia oferecer a possibilidade de se aproximar tambem a
IBM, que poderia comprar versoes menores ao inves de produzir seus proprios.
Neste momento, a Motorola ja possuia seu proprio design RISC na forma do 88000 que estava
fraco no mercado. Uma causa para sua falha foi a falta de compatibilidade com sua famosa serie
68000 serie, tambem usada no Apple Macintosh.
De qualquer forma, o 88000 ja estava em producao, e a Apple (como outras) ja tinham maquinas
rodando-o. Se o novo POWER single-chip pudesse ser comparado de alguma forma ao nvel de
hardware com o 88000, isto permitiria que ambas, Apple e Motorola, colocassem as maquinas no
mercado de forma muito mais rapida.
A especificacao PowerPC (Performance Computing) foi o resultado desses varios requerimentos.
Todos pareciam ganhar:
A IBM conseguiu a CPU single-chip que eles estavam procurando
A Apple ficou com uma das mais poderosas CPUs RISC do mercado, e notoriedade devido
ao nome da IBM
A Motorola conseguiu um chip RISC atualizado de graca, um com potencial para permiti-la
vende-lo para muitas companias, incluindo a Apple e a IBM.
2
Instrucoes de ponto flutuante extra devido as ordens da Apple
Uma especificacao completa de 64-bit, que mantem compatibilidade com o mode 32-bit
Instrucoes POWER mais exoticas foram removidas, algumas podendo ser emuladas pelo sis-
tema operacional caso necessario.
Endian-modes
No modo Little-Endian, os 3 bits de ordem mais baixa do endereco efetivo sao usados para
fazer um OU exclusivo com um valor de 3 bits selecionado pelo comprimento do operando. Isto
nao e o mesmo que ser verdadeiramente little-endian, e pode ter problemas quando comunicar com
dispositivos externos.
Em teoria a ordem do byte do processador pode ser alternado em tempo de execucao para supor-
tar tanto programas Big-endian e Little-Endian simultaneamente, e de fato isto torna possvel roo-
dar um programa em um modo e tratar as execoes (ex.: o sistema operacional) em outro.Praticamente,
seria difcil devido a interacao com dispositivos externos que possuem sua propria ordenacao de byte.
Um efeito colateral interessante desta implementacao e que o programa pode gravar um valor
64-bit (o maior formato de operando) para um endereco A enquanto em um modo endian, modos
alternados, e quando o valor e lido de volta de A isto sera identico, mesmo que o processador esteja
agora em um modo de ordem de byte oposta.
603 notebooks
603e
604
604e
750 (PowerPC G3) (1997) 233 MHz e 266 MHz, 740, 745, 755
7400 (PowerPC G4) (1999) 350 MHz, 7410 usa AltiVec, uma extensao SIMD do PPC specs
original
3
970 (PowerPC G5) (2003) implementacao 64-bit derivada do IBM POWER4 melhorada com
VMX (AltiVec compatvel com extensoes SIMD), nas velocidades 1.4 GHz, 1.6 GHz, 1.8 GHz,
2.0 GHz e 2.5 GHz
POWER4+ processador IBM (clocking entre 1.0 e 1.9 GHz) que e usado nos servidores
Regatta (RS/6000 ou pSeries)
1.4.1 IBM
401
405: MMU, ethernet, serial, PCI, SRAM, SDRAM; NPe405 adiciona mais dispositivos de
rede
1.4.2 Motorola
MPC 860/8xx (PowerQUICC)
4
1.5 Sistemas Operacionais suportados
MacOS X - http://www.apple.com/macosx
MacOS - http://www.apple.com
Linux - http://penguinppc.org
NetBSD - http://www.netbsd.org
Solaris - http://www.sun.com
2 Performace e Benchmarks
A arquitetura PowerPC e uma das mais bem sucedidas da atualidade. Para verificar isso basta
fazer uma visita ao site Top500 e notar que 5 dos 10 computadores mais rapidos do mundo de
acordo com a lista deles sao baseados nesta arquitetura (incluindo o primeiro computador da lista,
o BlueGene/L da propria IBM, composto de 32768 processadores PowerPC 440 de 0.7 GHz cada).
Figura 1: SpecINT95
5
Figura 2: SpecFP95
Bit inicial
Tipo 0 6 11 16 21 22 26 30 31
D opcode dest/fonte fonte/dest imediato
X opcode dest/fonte fonte/dest fonte opcode extendido
XO opcode dest/fonte fonte/dest fonte OE opcode extendido Rc
A opcode dest/fonte fonte/dest fonte fonte opcode extendido Rc
BD opcode BO BI BD AA LK
I opcode LI AA LK
Principais formatos de instrucoes do PowerPC
6
BD : campo imediato que armazena o deslocamento do desvio (inteiro de 14 bits com sinal
em complemento de 2)
BI : campo que indica um bit do CR para ser usado como condicao num desvio condicional
LK : campo que especifica se o registrador link deve ser modificado (para chamadas de sub-
rotinas)
3.2 Instrucoes
Segue na tabela abaixo algumas instrucoes do PowerPC :
7
Mnemonico Instrucao Descricao Formato
add add[o][.] RT,RA,RB Soma dois registradores (RA e RB) e arma- XO
zena num terceiro (RT)
addi addi RT,RA,SI Soma um registrador (RA) a um imediato (SI) D
e armazena em outro registrador (RT)
and and[.] RA,RS,RB Faz o AND logico de dois registradores (RS X
e RB) e armazena o resultado no registrador
RA
b b[l][a] destino Desvia a execucao para destino I
bc bc[l][a] BO,BI,destino Desvia condicionalmente a execucao para des- B
tino
cmp cmp BF,L,RA,RB Compara os registradores RA e RB (ou so- X
mente metade deles caso L=0) e guarda o re-
sultado no bit BF do registrador de condicao
divd divd[o][.] RT,RA,RB Divide o registrador RA pelo RB e armazena XO
o resultado em RT. O resto nao e devolvido
lwz lwz RT,D(RA) Carrega a palavra armazenada em RA + D na D
parte menos significativa de RT e zera o resto
mulli RT,RA,SI Multiplica o registrador RA pelo imediato SI D
(com extensao de sinal) e armazena a metade
menos significativa no registrador RT
neg neg [o][.] RT,RA Nega (usando complemento de 2) o valor de XO
RA e armazena no registrador RT
or or[.] RA,RS,RB Faz o OR logico de dois registradores (RS e X
RB) e armazena o resultado no registrador RA
slw slw[.] RA,RS,RB Desloca para a esquerda a metade menos sig- X
nificativa de RS pela quantidade indicada nos
6 bits menos significativos de RB e salva em
RA
srw srw[.] RA,RS,RB Desloca para a direita a metade menos signi- X
ficativa de RS pela quantidade indicada nos
6 bits menos significativos de RB e salva em
RA
stw stw RS,D(RA) O valor da parte menos significativa de RS e D
armazenado em RA + D
subf subfb[o][.] RT,RA,RB Soma o registrador RB com o complemento XO
de 2 do registrador RA e armazena em RT
xor xor[.] RA,RS,RB Faz o XOR logico de dois registradores (RS X
e RB) e armazena o resultado no registrador
RA
Principais instrucoes do PowerPC
8
por f realizam operacoes com numero em ponto flutuante) e variantes destas instrucoes que nao
foram apresentadas por falta de espaco.
unidade de controle;
unidade de carga/descarga;
9
Figura 3: Arquitetura do PowerPC 604
Outro exemplo e a arquitetura do Power G4, descrita pela figura 2, que possui os seguintes
componentes:
unidade de carga/descarga;
10
Figura 4: Arquitetura do Power G4
Novamente vamos utilizar o PowerPC 604 como exemplo para explicar as ULAs e unidade de
ponto flutuante.
11
diferente de zero, deve ser salvo, sao necessarios mais de 23 ciclos, devido ao processo de acerto a
representacao.
4.3 Datapath
Vamos agora descrever o datapath dos 3 principais tipos de instrucoes, utilizando a figura 1 da
arquitetura do PowerPC 604. Os tres principais tipos sao: instrucoes de salto, aritmeticas e de
acesso a memoria (nesse caso ao cache).
Inicialmente, numa instrucao de salto, a instrucao e lida do cache de instrucoes e e executada
o fetch dela. Apos isso, o novo endereco ja e calculado na ULA simples e a instrucao e identificada
como a de um salto. Se for um salto incondicional, o novo endereco e calculado e o PC e atualizado.
Se for um condicional, a ULA simples verifica a condicao e, se necessario, o PC e atualizado.
Ja numa instrucao aritmetica, a instrucao e lida do cache de instrucoes e e executada o fetch
dela. Apos isso, o novo endereco ja e calculado na ULA simples e a instrucao e identificada como
aritmetica. Nisso, os registradores ja foram lidos (os gerais no caso de inteiros ou os registradores
de ponto flutuante no caso de instrucoes de ponto flutuante). Apos isso, a operacao e calculada e
o resultado e salvo no registrador de destino (do mesmo tipo dos operadores).
Ja numa instrucao de memoria, a instrucao e lida do cache de instrucoes e e executada o fetch
dela. Apos isso, o novo endereco ja e calculado na ULA simples e a instrucao e identificada como
de acesso a memoria. Nesse ponto os registradores ja foram lidos e o imediato ja esta na ULA
simples. O valor da memoria a ser acessado e calculado e o dado e lido da cache de memoria (todo
acesso a memoria e feita na verdade pela cache). O valor e entao salvo no registrador de destino.
5 Pipeline
Os processadores da famlia PowerPC possuem quatro pipelines diferentes no processador, separados
pelo tipo de instrucao ao qual pertence. Sao eles:
12
A precisao simples e dupla de operacao de ponto flutuante sao processadas por seis estagios
de pipeline (este e o pipeline com maior numero de estagios do processador). Como no pipeline
anterior, o primeiro e o segundo estagios tratam da busca e decodificao. A fase de execucao consiste
de tres estagios:
Para executar as instrucoes de carga ou descarga, os primeiros dois estagios do pipeline tratam
da busca e da decodificacao. O terceiro estagio calcula o endereco para o elemento a ser acessado. O
quarto estagio envolve o acesso a cache, seguido do estagio que escreve os valores nos registradores.
A tabela abaixo demonstra a execucao dos pipelines.
Intrucoes de salto
Fetch Decodificacao
Execucao
Predicao
Instrucoes de inteiros
Fetch Decodificacao Execucao Escrita
Instrucoes de carga/descarga
Fetch Decodificacao Geracao do Acesso ao Escrita
endereco cache
Instrucoes de ponto flutuante
Fetch Decodificacao Estagio 1 Estagio 2 Estagio3 Escrita
Pipelines do PowerPC
6 Memoria
O PowerPC 604 oferece suporte para cache de segundo nvel, de 256Kb ou 512Kb, que fica em
um chip separado mas no mesmo encapsulamento do processador, o que permite que o tempo de
acesso seja reduzido. Alem disso o numero de pinos do involucro e minimizado, pois os pinos do da
memoria secundaria estao dentro do involucro de ceramica.E utilizado o esquema mais convencional
de SRAMs encapsuladas separadamente.
Tambem sao utilizadas algumas tecnicas para reduzir a penalidade por falta:
13
Caractersticas PowerPC 604
Endereco virtual 52 bits
Endereco fsico 32 bits
Tamanho da pagina 4 Kb, selecionavel, e 256 Mb
Organizacao da TLB Uma TLB para instrucoes e uma TLB para
dados. Ambas associativas por conjunto com
2 posicoes. Substituicao segundo o algoritmo
LRU. Ambas com 128 entradas. As faltas da
TLB sao tratadas por hardware.
TLB do PowerPC
7 Entrada e sada
A figura abaixo descreve a interface entre o processador e os perifericos a ele conectados. Pode-se
perceber que o processador possui barramentos com dois componentes: com o cache de segundo
nvel e com o PCI Bridge. O PCI bridge faz a ponte entre o processador e os demais perifericos e
com a memoria e o controlador de memoria.
Os perifericos no barramento do PCI Bridge sao os seguintes:
portas PCI;
ISA Bridge, com barramento com o controlador de som, dispositivos de entrada e sada
padrao, as portas ISA e o X-Bus;
14
Figura 5: Descricao da entrada e sada nos processadores PowerPC
15
Referencias
[1] Patterson, D. A. e Hennessy, J. L.: Organizacao e projeto de computadores - A interface
HARDWARE/SOFTWARE
[2] IBM: The PowerPC architecture: A specification for a new family of RISC processors
16