« Arquitetura do Sega Saturn (index)

Arquitetura do Sega Saturn

Chapter 3: CPU


Índice

  1. As ramificações
  2. A Sega não está satisfeita
  3. O produto final
  4. Uma escolha dividida de memória
  5. O terceiro (sim, mais um) processador

Assim como seus competidores mais próximos, que estiveram cheios de opções ao longo da febre do RISC, a Sega precisou passar por todos os dilemas de escolher um novo fornecedor que pudesse erguer a próxima geração de jogos (inclusive aqueles com capacidades "3D"). No final, a empresa optou por uma CPU recente, cujo criador estava desesperado atrás de algum adotante: a Hitachi SuperH, ou "SH".

Ainda que, de início, a nova criação da Hitachi tenha focado em aplicativos embarcados, ela estreou artifícios modernos, como :

Além disso, o SuperH apresenta um novo conjunto de instruções, chamado SuperH ISA, o qual, mesmo com a adoção do design RISC, tem todas as suas instruções no tamanho de 16 bits. Isso é uma surpresa, pois essa CPU opera com palavras de 32 bits, portanto seria esperado que as instruções tivessem o mesmo comprimento. Ainda assim, a Hitachi conseguiu encaixar seu conjunto de instruções usando metade do tamanho. Esse formato não apenas reduz o tamanho dos programas: como a CPU busca por instruções em lotes de 32 bits, ela pode captar duas instruções num único ciclo. Num geral, essa técnica de comprimir o conjunto de instruções ajudou a lidar com uma preocupação comum das arquiteturas baseadas em RISC, chamada "densidade de código". Essas arquiteturas acabavam requerindo mais instruções (e, portanto, mais memória) para executar as mesmas tarefas do que sistemas não RISC.

As ramificações

Por outro lado, as desvantagens dos designs RISC ainda estão presentes no SuperH, como os hazards de controle. Por consequência, os programas precisam incluir espaços para atraso de desvio condicional, para evitar erros de cálculo. Para remediar a situação, o SuperH possui instruções de atraso de desvio condicional, que são instruções de desvio pré-equipadas com um espaço de atraso .

Hazards de dados também estão presentes, mas não são resolvidos pelo programador ou pelo compilador: a CPU automaticamente irá reter a pipeline quando for necessário.

A Sega não está satisfeita

No entanto, nada disso impediu a Sega de manifestar sua insatisfação com o produto final. Isso ocorreu principalmente por causa do pequeno multiplicador de 16 bits, percebido como um funil para o processamento de grandes quantidades de dados (uma nova necessidade dos jogos 3D). Por isso, a Hitachi sintetizou uma segunda revisão, com uma unidade multiplicadora estendida e outros requisitos da lista da Sega , o que levou a uma nova CPU chamada SH-2.

Image
Os dois chips SH-2 encontrados no Sega Saturn

Ainda assim, a Sega não pôde ficar parada após ouvir a escolha de CPU que seus competidores haviam feito. Ela pediu à Hitachi que aumentasse a taxa de clock do SH-2 — uma tarefa impossível uma vez que o chip estivesse pronto para fabricação. Por sorte, a Hitachi tinha outro truque na manga: multiprocessamento. Durante a fase de pesquisa do SH, o time havia adicionado circuitos mínimos capazes de permitir que o SH funcionasse com outros SHs dentro de um mesmo sistema ao mesmo tempo. Ao ouvir isso, a Sega decidiu que o Sega Saturn teria uma configuração de dois chips. E o resto é história.

O produto final

Com as origens explicadas, vamos dar uma olhada no produto entregue.

O console tem não uma, mas duas CPUs Hitachi SH-2 rodando a ~28.63 MHz cada . Ainda que sejam idênticas fisicamente, elas funcionam num estado master-slave, onde a primeira deve enviar comandos para a segunda. É possível que atinjam certo grau de paralelismo, ainda que ambas dividam o mesmo barramento externo (o que pode levar a congestionamento).

A Hitachi preparou diferentes variantes do SH-2 e as vendeu como parte de uma série chamada "SH7600". Todas elas possuem :

O chip específico selecionado para este console, o "SH7604", contém as seguintes adições :

É importante ressaltar que ter duas CPUs não quer dizer que os jogos irão rodar duas vezes mais rápido! Na prática, porém, isso requer uma programação muito complexa, que administre com eficiência CPUs que dividam o mesmo barramento. Portanto, o uso organizado do cache tem um papel crucial nesse console.

Uma escolha dividida de memória

O Sega Saturn contém um total de 2 MB de RAM para uso geral, chamada Work RAM (WRAM). Esses dois mega são divididos entre dois blocos bem diferentes:

O terceiro (sim, mais um) processador

Parece que, surpreendentemente, duas CPUs SH-2 ainda não eram o bastante para a Sega. Então, para acelerar o processamento de vetores (ao custo de maior complexidade), o console abriga um coprocessador adicional, o Saturn Control Unit, ou "SCU".

É um chip composto de dois módulos :

Pelo lado positivo, a SCU vem com 32 KB de SRAM para uso local. Do lado negativo, a SCU não é capaz de acessar a WRAM-L.


Previous: 2. Uma breve introdução

Next: 4. Gráficos


Rodrigo Copetti © 2026 RSS Feed

Mudar para a edição moderna

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