00 PSP Hardware Spec

원문 :  http://kkamagui.springnote.com/pages/1062052

참고 : http://wiki.ps2dev.org/psp:hardware_specifications

 

들어가기 전에...

 

1.CPU

1.1 Main CPU

  • Allegrex CPU

    • MIPS r4000 32-bit core 1-333mhz
    • 16kib I-Cache & D-Cache

      • 64-byte line length
      • 2-way set associative, LRU
    • No TLB
    • 7-stage pipeline
    • 32 32-bit registers
  • FPU (COP1)

    • 32-bit single precision
    • 32 32-bit registers
    • IEEE 754 compliant
    • Sqrt (28 cycles), div(28 cycles), most others 1 cycle
  • VFPU (COP2)

    • Vector FPU “Macromode only”
    • Designed for vector and matrix ops
    • 128 32-bit registers

      • Reconfigurable as scalar, vector or matrix
      • IEEE 754 Single precision float
    • Can also handle 32-bit int, 16-bit int, 8-bit int, half float
    • vmmul.z vd, vs, vt - 4×4 matrix/vector multiply, 22 cycles

 

1.2 Sub CPU

  • Media Block CPU

    • MIPS r4000-based core
    • 2MB Embedded DRAM
    • VME - Virtual Mobile Engine

      • Reconfigurable processor to decode audio & video
      • ATRAC3plus & MP3 for music

        • ATRAC3plus & ADPCM for games but not MP3 due to licensing issues
    • AVC H.264 engine

      • MPEG-4 Hardware accelerator
      • Up to 720x480x30fps

        • Libraries support 480x272x29.97fps

 

2.Bus

  • Main bus shared by CPU and Graphics Engine(GE)
  • CPU only has level-1 cache, recomend minimizing memory usage
  • Cache miss ~70 cycles
  • VRAM read ~44 cycles

    • contention with GE
  • Scratchpad read ~38 cycles

 

3.Graphic Engine

  • 2MB Embedded DRAM
  • Supports Lighting, skinning (8 weights), morphing, subdivision, pixel operations
  • Operates at bus speed (default 111mhz)
  • 3.5GB/s Bus bandwidth
  • 444 Mpixels/sec fill rate
  • 23 Mploys/sec T&L

 

4.Storage

 

5.Ports

  • USB-Port

 

6.Memory Map

 

Base Address   Length                      Description

------------------------------------------------------------------
0×00010000    0×00004000 (16 KiB)   Allegrex Scratchpad
0×04000000    0×00200000 (2 MiB)   Ge VRAM

0×08000000    0×00800000 (8 MiB)    Allegrex Kernel memory
0×08800000    0×01800000 (24 MiB)  Allegrex User memory

------------------------------------------------------------------

0×44000000    0×00200000 (2 MiB)    Ge VRAM (Cache Through)
0×48800000    0×01800000 (24 MiB)   Allegrex User memory (CacheThrough)

0×88000000    0×00800000 (8 MiB)    Allegrex Kernel memory (???)

 

IMPORTANT

To get uncached reads and writes, OR your pointers with 0×40000000 (for example, the location of the Ge VRAM then becomes 0×44000000). When writing to VRAM or feeding data to the GE (graphics chip) through display lists in main memory, this is VERY important. Not doing so will cause unpredictable behaviour and hanging because the graphics chip may miss your END and FINISH commands since they might still be sitting in the cache.

이 글은 스프링노트에서 작성되었습니다.

+ Recent posts