00 PSP Hardware Spec, Memory Map, Register
00 PSP Hardware Spec
원문 : http://kkamagui.springnote.com/pages/1062052
참고 : http://wiki.ps2dev.org/psp:hardware_specifications
들어가기 전에...
- 이 글은 kkamagui에 의해 작성된 글입니다.
- 마음껏 인용하시거나 사용하셔도 됩니다. 단 출처(http://kkamagui.tistory.com, http://kkamagui.springnote.com)는 밝혀 주십시오.
- 기타 사항은 kkakkunghehe at daum.net 이나 http://kkamagui.tistory.com으로 보내주시면 반영하겠습니다.
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
-
UMD
5.Ports
-
Serial-Port (RS-232)
- 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.
History
Last edited on 04/12/2008 15:55 by kkamagui
Comments (0)