« Arquitetura do PlayStation 2 (index)

Arquitetura do PlayStation 2

Chapter 3: CPU


Índice

  1. O líder
  2. Uma escolha de memória reconhecida
  3. Prevenindo contratempos passados
  4. Outras partes interessantes

No coração deste console encontramos um potente conjunto encapsulado chamado Emotion Engine ou 'EE' desenvolvido pela Sony e rodando a ~294,91 MHz . Este chipset contém múltiplos componentes, um deles sendo a CPU principal. O restante dos componentes está à disposição da CPU para acelerar algumas tarefas.

O líder

O núcleo principal é uma CPU compatível com MIPS R5900 com vários aperfeiçoamentos. Este é o primeiro chip que começa a executar instruções quando o console é ligado. O processador fornece os seguintes recursos:

O núcleo é complementado com uma unidade de ponto flutuante dedicada (identificada como 'COP1') que acelera operações com números de ponto flutuante de 32 bits (também conhecidos como floats em C). É um bloco peculiar visto que ele não obedece ao padrão IEEE 754, mais evidente com sua falta de infinity (computado como 0 no lugar) .

Uma escolha de memória reconhecida

Próximo ao Emotion Engine estão dois blocos de 16 MB de RAM, dando um total de 32 MB de memória principal. O tipo de memória usado é RDRAM (déjà vu!) que é acessado por um barramento de 16 bits.

Image
Design da memória do Emotion Engine. Você consegue adivinhar onde o congestionamento vai surgir.

À primeira vista, isso pode parecer um pouco decepcionante, considerando que o barramento interno do Emotion Engine tem uma largura de até 128 bits. Porém, os chips de RAM foram estrategicamente posicionados seguindo a arquitetura dual-channel, que consiste em conectar ambos os chips usando dois barramentos independentes de 16 bits (um barramento por chip) para melhorar a vazão de dados. A configuração resultante fornece uma vazão teórica de 3,2 GB/sec, portanto pode ter certeza que latência de memória não é um problema neste console!

Em um canto do Emotion Engine há um poderoso Controlador DMA ou 'DMAC' que transfere dados entre a memória principal e o Scratchpad (memória de rascunho); ou entre a memória principal e qualquer componente dentro do EE.

Transferências de dados são feitas em lotes de 128 bits, mas aqui fica a parte interessante: a cada oito lotes, o barramento principal é temporariamente desbloqueado. Isso deixa uma pequena janela de tempo para realizar outras transferências DMA em paralelo (até dez) ou deixar a CPU usar o barramento principal. Esse modus operandi é chamado slice mode e é um dos vários modos disponíveis nesta unidade DMA. Tenha em mente que enquanto o slice mode reduz paradas no barramento principal, ele o faz ao custo de desacelerar a transferência geral do DMA.

Prevenindo contratempos passados

Quer queiramos ou não, com a quantidade de tráfego ocorrendo dentro do Emotion Engine, esse design vai eventualmente sofrer as consequências da arquitetura de memória unificada ou 'UMA' (Unified Memory Architecture). Isto é: múltiplos componentes independentes tentando acessar a memória principal ao mesmo tempo, causando congestionamento. Bem, para corrigir esses problemas, a Sony aliviou o uso constante de memória com os seguintes métodos:

Isso soa muito conveniente em aplicações que podem se beneficiar da cache, mas e em certas tarefas, como a manipulação de Display Lists, que não devem usar a cache de forma alguma? Por sorte, a CPU fornece um modo de acesso alternativo chamado UnCached, que usa apenas o Write Back Buffer. Portanto, ciclos não serão desperdiçados corrigindo a cache (resultados de cache misses).

Além disso, o modo UnCached accelerated também está disponível. Este adiciona um buffer para acelerar a leitura de endereços contínuos na memória.

Outras partes interessantes

Dentro do mesmo encapsulamento do Emotion Engine, há ainda um outro processador chamado Unidade de Processamento de Imagem ou 'IPU' (Image Processing Unit), desta vez feito para descompressão de imagens. Como sucessor do MDEC, a IPU pode ser útil quando um jogo precisa decodificar um filme MPEG2 sem travar a CPU principal.

De forma resumida, o jogo envia fluxos de imagens comprimidas para a IPU (com sorte utilizando DMA) os quais são então decodificados em um formato que a GPU pode exibir. O sistema operacional do PS2 também depende da IPU para fornecer reprodução de DVDs.

Finalmente, a IPU também opera em texturas de alta resolução comprimidas, o que economiza uso de CPU e reduz grandes transferências.


Previous: 2. Uma breve introdução

Next: 4. Co-CPUs


Rodrigo Copetti © 2026 RSS Feed

Mudar para a edição moderna

Início · Artigos · Suporte · Sobre o autor · Sobre o site