# PlayStation 2

## Integrantes 
| Nome                                          |  Matrícula  |
|-----------------------------------------------|-------------|
| João Victor Max Bisinotti de Oliveira         | 170069991   |
| Francisco Mizael Santos da Silva              | 180113321   |

## 1. Objetivos

O objetivo deste trabalho é realizar uma análise técnica de um sistema embarcado de mercado. O sistema escolhido é o console de videogame PlayStation 2 (PS2), produto desenvolvido pela Sony e lançado originalmente em 2000. A análise busca compreender os componentes de hardware que constituem este sistema, suas funcionalidades principais, suas interfaces e capacidades tecnológicas, bem como relacioná-lo com outros produtos similares da mesma categoria.

## 2. Seleção do sistema embarcado

O sistema embarcado escolhido é o PlayStation 2, um console de sexta geração da Sony. Por ser um produto de mercado amplamente difundido e documentado, permite uma análise aprofundada de sua arquitetura embarcada.

![PS2](./assets/ps2.png) 

## 3. Informações a serem levantadas sobre o sistema

**Produto em estudo:** PlayStation 2 (PS2)

**Funções principais:** Execução de jogos eletrônicos distribuídos em mídias ópticas (CD-ROM e DVD-ROM), reprodução de mídia (DVDs de vídeo e CDs de áudio), retrocompatibilidade com jogos do PlayStation original via hardware dedicado (IOP) e emulação de áudio (SPU) pelo Emotion Engine.

**Aplicações:** Entretenimento eletrônico doméstico, plataforma de jogos interativos 2D e 3D, reprodução multimídia.

**Segmento de mercado:** Consoles de videogame domésticos (6ª Geração), eletrônicos de consumo.

### **Listagem de características**:

### **Visão geral da arquitetura**

A arquitetura do console se mostra bem consolidada e apresenta algumas inovações tecnológicas junto aos consoles da mesma geração. Seu processador Emotion Engine, introduziu o processamento vetorial pesado direto no console, também introduziu o uso de mídias digitais como o DVD, foi o primeiro console a adotar a retrocompatibilidade com seu console de geração anterior, além de um design modularizado e expansivo.
![PlacaMae](./assets/PlacaMae.png)

*Figura 1: Placa-mãe com partes rotuladas*

1. **Unidade de processamento**:

    ![EE](./assets/EmotionEngine.png) 
    
    *Figura 2: Diagrama da Emotion Engine*
   
   - **CPU Principal:**
    
      - Núcleo customizado compatível com MIPS R5900 (baseado em MIPS III, com instruções MIPS IV com um barramento interno de 64-bits e SIMD proprietárias Sony "Multimedia Instructions").
         
      - Clock: ~294.91 MHz (até 299 MHz em revisões posteriores).
         
      - Arquitetura RISC 64 bits, superescalar de duas vias.
         
      - Cache L1: 16 KB para instruções, 8 KB para dados (com prefetch).
         
      - Memória Rápida Interna: 16 KB de Scratchpad RAM.
         
      - Unidade de Ponto Flutuante (FPU - COP1): Acelera cálculos de 32 bits, mas com comportamento não-padrão (não totalmente compatível com IEEE 754).

   - **FPU (float point unit)**: A unidade de ponto flutuante é responsável por operações com ponto flutuante, no EE(emotion engine) ela é integrada ao processador.

   - **Graphic Interface(GI)**: unidade responsável por interfacear a saída das VPUs com um chip próprio para todo o processamento interno, o ‘GS’ (Graphics Synthesizer).
        ![GSIGS](./assets/GS.png) 
        
        *Figura 3: Diagrama da Graphics Synthesizer*
   
   - **Memory interface**: Unidade responsável por acessar a memória ram principal do sistema.
        ![MI](./assets/Memory.png) 
        
        *Figura 4: Diagrama da Memory Interface*

   - **Co-processadores Vetoriais (VPUs):** Componentes cruciais para o desempenho gráfico 3D.
      
        ![VP0](./assets/VP0.png) 
        
        *Figura 5: Diagrama da VP0*
      
      - **VPU0:** Auxiliar da CPU principal, pode operar em Micromode (independente, executando microcódigo) ou Macromode (como co-processador direto da CPU - COP2). Possui 4KB de VU Mem e 4KB de MicroMemória.
         
        ![VP1](./assets/VP1.png)
        
        *Figura 6: Diagrama da VP1*
      
      - **VPU1:** Versão aprimorada da VPU0 (16KB VU Mem, 16KB MicroMemória), com Unidade de Função Elementar (EFU) para acelerar funções trigonométricas/exponenciais. Opera apenas em Micromode. Conectada mais diretamente à interface gráfica (GS), ideal para processamento de geometria e geração de Display Lists.
         
      - Ambas otimizadas para operações com vetores de 4 floats, essenciais para transformações geométricas e efeitos. Permitem técnicas como geração procedural de conteúdo.
         
   - **Unidade de Processamento de Imagem (IPU):** Sucessora do MDEC do PS1. Dedicada à descompressão de vídeo MPEG2 (para DVDs e FMVs de jogos) e texturas comprimidas. O processador IPU, com o objetivo de realizar compressão de imagens, e diminuir a latência e dependência da CPU principal,  exerce um papel fundamental no fluxo de imagens que a GPU realiza a descompressão para então serem renderizadas. O sistema operacional do playstation 2 também depende da IPU para fornecer reprodução de DVDs
      
   - **Controlador DMA (DMAC):** Unidade potente para transferências de dados de alta velocidade (10 canais) entre a memória principal e os componentes do EE (Scratchpad, VPUs, IPU) ou periféricos, utilizando modos como *slice mode* para otimizar o uso do barramento, que no DMAC apresenta 128-bits.

   - **System Interface(SI)**: Adotando uma interface de I/O especializada, a system interface (SIF) que se comunica com o subsistema de entrada/saída, por meio de suas próprias DMA’s trocam dados entre si referente às portas frontais, ao controlador de DVD, à SPU2, à BIOS ROM e ao slot da placa.


   - **Referências**: [^1]

2. **Memória**: 

   - **Memória Principal**: 32 MB de RDRAM (Rambus DRAM).

      - Organizada em arquitetura dual-channel (2 barramentos de 16 bits) para atingir alta largura de banda.

      - Largura de banda teórica: 3.2 GB/s, crucial para alimentar o Emotion Engine.

   - **Memória Gráfica (dentro do GS)**: 4 MB de eDRAM (embedded DRAM) de alta velocidade, conectada por barramentos largos (ex: 1024 bits para escrita), minimizando a necessidade de acesso à RAM principal durante a renderização.

   - **Memória de Som (dentro da SPU2)**: 2 MB de SDRAM.

   - **Memória do IOP**: 2 MB SDRAM (nas primeiras versões com CPU MIPS R3000A) ou 4MB SDRAM (nas versões com PowerPC Deckard).

   - **Cache/Scratchpad**: Conforme detalhado na seção da CPU (L1 I/D, Scratchpad). As VPUs também possuem suas memórias dedicadas (VU Mem, MicroMemory).

   - **Referências**: [^1]

3. **Sistema Operacional**:

   - BIOS (4MB ROM): Contém o Kernel básico (gerencia hardware, threads, chamadas de sistema) e o OSDSYS (interface gráfica do sistema - menu principal, navegador de Memory Card).

   - Carrega módulos para o IOP controlar periféricos específicos.

   - Processo de boot: 
      1. Carrega um kernel direto na memória principal que lida diretamente com as system calls e fornece suporte a multi-threading. 
      2. Inicia o processador IOP que lida com o hardware do console sendo colocado em um estado de “aguardando comando” e dar acesso ao shell interativo ao usuário, que a partir deste momento, pode manipular dados do *memory card*, configurar data e hora do sistema, entre outras informações do sistema.
    
        ![SH1](./assets/Shell1.jpg) 
        
        *Figura 7: Shell interativo para pesquisa no sistema*
        
        ![SH2](./assets/Shell2.jpg) 
        
        *Figura 8: Shell interativo para manipular dados do memory card**
        
        ![SH3](./assets/Shell3.jpg) 
        
        *Figura 9: Shell interativo para mudar data e hora*

   - **Referências**: [^1]

4. **Sensores e Atuadores**:

   - **Sensores**: apresenta apenas dois sensores em sua arquitetura.
      - Sensor Infravermelho (IR) para controle remoto em modelos Slim.
      - Sensor de remoção de mídia do leitor

   - **Atuadores**: Motores de vibração no controle DualShock 2.
    ![Controle](./assets/Controle.png) 
    
    *Figura 10: Controle DualShock*


   - **Referências**: [^1]

5. **Interfaces de Comunicação com fio**:

   - 2 Portas de Controle PS2 (proprietárias).

   - USB 1.1 (2 portas).

   - i.Link (IEEE 1394 / FireWire): Em modelos FAT iniciais, para conexão de consoles.

   - Saída Multi A/V: Analógica (Vídeo Composto, S-Video, RGB, Componente) e Áudio Estéreo.

   - Saída Áudio Digital Óptica (S/PDIF).

   - Slot PC Card (modelos FAT iniciais) ou Expansion Bay (modelos FAT posteriores): Para instalação do Network Adaptor (Ethernet e/ou Modem) e conexão de HDD IDE/ATA.

   - Porta Ethernet RJ-45 (embutida nos modelos Slim e via Network Adaptor nos FAT).
    
    ![Eth](./assets/Eth.jpg) 
    
    *Figura 11: porta Ethernet*
    
    ![Adp](./assets/RedeADpter.png)
    
    *Figura 12: Adaptor Ethernet*
   
   - **Referências**: [^1], [^2]

6. **Interfaces de Comunicação sem fio**:

   - Nativas: Receptor IR (modelos Slim).
    
   - Não Nativas: Suporte via adaptadores USB de terceiros (ex: Wi-Fi).
    
    
   - **Referências**: [^1]

7. **Unidades de Entrada/Saída (I/O)**:

   - Drive Óptico: Leitor de CD-ROM e DVD-ROM.

   - 2 Portas de Controle.

   - 2 Slots de Memory Card.

   - 2 Portas USB.

   - Saídas de Áudio/Vídeo (Multi A/V, Óptica).

   - Portas de Rede/Modem/HDD (variável conforme modelo e acessórios).

   - **Referências**: [^1], [^2]

8. **Fonte de Energia e Sistema de Alimentação**:

   - Fonte interna (maioria dos modelos FAT) ou externa (modelos Slim e alguns FAT finais).

   - Alimentação AC direta.

   - Sistema de reset via botão físico.

   - **Referências**: [^1]

9. **Firmware e Atualizações**:

   - Firmware principal (BIOS/Kernel) armazenado na ROM de 4MB.

   - Não possui mecanismo oficial de atualização de firmware pelo usuário. Atualizações de software (drivers IOP, etc.) podiam vir em discos de jogos ou utilitários (como o disco de configuração de rede).

   - **Referências**: [^1]

10. **Unidade de Proteção e Segurança**:

    - MagicGate: Tecnologia de criptografia usada nos Memory Cards do PS2 para controle de cópia de saves.

    - Proteção de Região: Para jogos em DVD e filmes em DVD.

    - Verificação de autenticidade dos discos (Wobble Groove em CDs, dados DNAS para online).

    - **Referências**: [^1]

11. **Armazenamento Externo**:

    - Memory Cards PS2 (8 MB padrão, com MagicGate). Compatível com Memory Cards PS1.
    ![MC](./assets/MemoryCard.png) 
    
    *Figura 13: Memory card*
    

    - Unidade de Disco Rígido (HDD) IDE/ATA: Opcional, instalado via Expansion Bay e Network Adaptor (modelos FAT) para instalação de jogos (reduzir loading) e conteúdo adicional.

    - **Referências**: [^1]

12. **Interface com o Usuário (UI)**:

    - Menu principal (OSDSYS) carregado da BIOS: Navegação entre Memory Card e configurações do console, vistos na Figura 7, 8 e 9.
    
    - Interface primária definida pelo software do jogo em execução.

    - **Referências**: [^1]

## 4. Artigos acadêmicos relacionados

### 4.1. Artigos científicos que detalham tecnologias que viabilizam a existência do produto
1. YEAGER, Daniel. The MIPS R10000 superscalar microprocessor. 1996. Disponível em: [https://cseweb.ucsd.edu/classes/wi13/cse240a/pdf/04/MIPS_R10K.pdf](https://cseweb.ucsd.edu/classes/wi13/cse240a/pdf/04/MIPS_R10K.pdf).
   - **Resumo**: O artigo apresenta o processador MIPS R10000, um microprocessador superscalar com execução fora de ordem, projetado para minimizar a latência de acesso à memória e otimizar o desempenho em aplicações com baixa localidade. Ele busca e decodifica até quatro instruções por ciclo, possui execução especulativa e caches não bloqueantes, permitindo que outras instruções continuem sendo executadas mesmo durante falhas de cache. A arquitetura inclui unidades de execução independentes, janelas de instruções amplas e controle modular para lidar com a complexidade do paralelismo dinâmico.

2. SHIROTA, Riichiro; SAKUI, Koji. NAND flash memory created from the very beginning. JSAP Review, 2023. DOI: 10.11470/jsaprev.230103. Disponível em: (https://www.jstage.jst.go.jp/article/jsaprev/2023/0/2023_230103/_pdf)[https://www.jstage.jst.go.jp/article/jsaprev/2023/0/2023_230103/_pdf]. Acesso em: 28 abr. 2025.
    - **Resumo**: O artigo faz uma revisão histórica e técnica completa do desenvolvimento da memória flash NAND, desde sua invenção na Toshiba nos anos 1980 até seu uso mais moderno e atual, como por exemplo em SD cards, SSDs etc. O foco está em mostrar os desafios superados e as inovações que tornaram a NAND uma tecnologia essencial.

3. GEERTS, Femke Lucienne. Saving the Game is Shaping the Game: Defining and Understanding the Save Mechanic. 2017. Dissertação (Graduação) – University of Amsterdam. Disponível em: (https://gamehacking.org/faqs/VPUThesis.pdf)[https://gamehacking.org/faqs/VPUThesis.pdf] ou via arquivo pessoal. Acesso em: 28 abr. 2025.
    - **Resumo**: A dissertação analisa como a mecânica de salvar jogos (save mechanic) influencia a narrativa e a experiência do jogador nos videogames.

4. HANAYAMA, Masaru. Archiving Solution with Optical Disc. In: Archiving 2012 Final Program and Proceedings. Society for Imaging Science and Technology, 2012. p. 96–101. Disponível em: (https://library.imaging.org)[https://library.imaging.org]. Acesso em: 28 abr. 2025.
    - **Resumo**: O artigo discute o uso de discos ópticos (como CD, DVD e Blu-ray) como uma solução eficaz e confiável para arquivamento de longo prazo de dados digitais. Embora possuam menor capacidade e velocidade em comparação a HDDs e fitas magnéticas.

### 4.2. Artigos científicos sobre aplicação uso do produto
1. GONZÁLEZ, Jesús; HERNÁNDEZ, Ángel L. Use of the Sony PlayStation 2 to motivate university students into learning embedded systems. In: Conference on Engineering Education. 2004. Disponível em: [https://www.researchgate.net/publication/265195129](https://www.researchgate.net/publication/265195129). 
   - **Resumo**:  O artigo relata a experiência da Universidade de Granada ao utilizar o PlayStation 2 como plataforma de ensino para sistemas embarcados. A familiaridade dos alunos com o console, aliado ao seu baixo custo e capacidade de processamento paralelo, motivou o uso em laboratório. Os estudantes aplicaram técnicas como balanceamento de carga e uso das unidades vetoriais, resultando em maior interesse e desempenho acadêmico.
2. LOZANO, Manuel M. The Emotion Engine: An examination of the vector-processing unit in the PlayStation 2. 2004. Disponível em: [https://gamehacking.org/faqs/VPUThesis.pdf](https://gamehacking.org/faqs/VPUThesis.pdf).
   - **Resumo**: O artigo avalia o potencial do PlayStation 2 como plataforma de computação científica, explorando como suas capacidades de aceleração gráfica — voltadas a operações vetoriais — podem ser aplicadas a cálculos científicos. Utilizando Linux e ferramentas de desenvolvimento open source fornecidas pela Sony, os autores investigam a viabilidade do uso de hardware de videogame para fins científicos.
3. HOWES, Lee W. et al. Comparing FPGAs to graphics accelerators and the PlayStation 2 using a unified source description. In: International Conference on Field Programmable Logic and Applications (FPL 2006), Madrid, Spain, 28–30 ago. 2006. Disponível em: [https://ieeexplore.ieee.org/document/4100965](https://ieeexplore.ieee.org/document/4100965).
   - **Resumo**: O artigo compara o desempenho de FPGAs, GPUs e unidades vetoriais do PlayStation 2 utilizando uma linguagem unificada baseada no compilador ASC. Três algoritmos foram implementados: simulação de Monte Carlo, transformada rápida de Fourier (FFT) e soma ponderada. Os resultados indicam que GPUs são mais adequadas para simulações Monte Carlo, PS2 para somas ponderadas e FPGAs se beneficiam de otimizações específicas facilitadas pelo ASC.
4. KORANNE, S. A high performance SIMD framework for design rule checking on Sony's PlayStation 2 Emotion Engine platform. In: International Symposium on Signals, Circuits and Systems (SCS 2003). San Jose, CA, USA, 22-24 mar. 2004.  Disponível em: [https://ieeexplore.ieee.org/document/1283702](https://ieeexplore.ieee.org/document/1283702).
   - **Resumo**: O artigo apresenta uma arquitetura de verificação de regras de projeto (DRC) baseada em SIMD, implementada nas unidades vetoriais da Emotion Engine do PlayStation 2. A solução processa geometrias em todos os ângulos e converte regras de verificação em instruções otimizadas para execução paralela, alcançando milhões de operações por segundo em tarefas de análise de layout.

## 5. Produtos relacionados

| Produto       | Ano  | CPU                                | Memória RAM                                       | Armazenamento                        | Mídia                      | Interfaces                                      |
| :------------ | :--- | :--------------------------------- | :------------------------------------------------ | :----------------------------------- | :------------------------- | :---------------------------------------------- |
| PlayStation 2 | 2000 | MIPS R5900 "Emotion Engine" (~299 MHz) | 32 MB RDRAM (+ 4MB eDRAM para vídeo)              | Cartão de Memória (8MB+), HDD (Opcional) | CD/DVD                     | USB 1.1, FireWire (i.LINK)                      |
| Dreamcast     | 1998 | Hitachi SH-4 (200 MHz)             | 16 MB SDRAM (+ 8MB VRAM, 2MB Sound RAM)         | VMU (Visual Memory Unit)             | GD-ROM                     | Serial, Modem (integrado)                       |
| Xbox          | 2001 | Intel Pentium III (Custom, 733 MHz) | 64 MB DDR SDRAM (Unificada)                       | HDD Interno (8 ou 10 GB)             | DVD                        | Ethernet (10/100), USB 1.1 (Conector Proprietário) |
| GameCube      | 2001 | IBM PowerPC "Gekko" (485 MHz)      | **40 MB Total** (24 MB 1T-SRAM + 16 MB ARAM/DRAM) | Cartão de Memória (Proprietário)     | MiniDVD (Proprietário)     | Portas Seriais de Alta Vel., Portas Memory Card |


Esses produtos representam diferentes abordagens às arquiteturas de consoles da época. O PlayStation 2 destacou-se pelo uso de CPU especializada e suporte a vídeo em DVD, sendo o console mais vendido de todos os tempos.

- Referências: [^1], [^3], [^4], [^5], [^6]

## 6. Referências
[^1]: Rodrigo Copetti. *PlayStation 2 Architecture*. Disponível em: [https://www.copetti.org/writings/consoles/playstation-2/](https://www.copetti.org/writings/consoles/playstation-2/)

[^2]: Sony Interactive Entertainment. *PlayStation 2 User's Guide (SCPH-90002/90003/90004)*. Disponível em: [https://www.playstation.com/content/dam/global_pdc/en/corporate/support/manuals/ps2-docs/scph-90004/SCPH-90002CB_90003CB_PS2_UG_EN.pdf](https://www.playstation.com/content/dam/global_pdc/en/corporate/support/manuals/ps2-docs/scph-90004/SCPH-90002CB_90003CB_PS2_UG_EN.pdf)

[^3]: Rodrigo Copetti. *Dreamcast Architecture*. Disponível em: [https://www.copetti.org/writings/consoles/dreamcast/](https://www.copetti.org/writings/consoles/dreamcast/)

[^4]: Rodrigo Copetti. *GameCube Architecture*. Disponível em: [https://www.copetti.org/writings/consoles/gamecube/](https://www.copetti.org/writings/consoles/gamecube/)

[^5]: Rodrigo Copetti. *Xbox Architecture*. Disponível em: [https://www.copetti.org/writings/consoles/xbox/](https://www.copetti.org/writings/consoles/xbox/)

[^6]: *Saiba quais são os consoles mais vendidos da história* Disponível em: [https://gogamers.gg/gamepedia/consoles-mais-vendidos/](https://gogamers.gg/gamepedia/consoles-mais-vendidos/)