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)는 밝혀 주십시오.
- 기타 사항은 mint64os at gmail.com 이나 http://kkamagui.tistory.com으로 보내주시면 반영하겠습니다.
- OS 제작에 대한 상세한 내용은 책 "64비트 멀티코어 OS 구조와 원리"를 참고하기 바랍니다.
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.
이 글은 스프링노트에서 작성되었습니다.
'PSP 홈브루(Homebrew)' 카테고리의 다른 글
PSP에 한글 출력을 시도하고 있습니다. (10) | 2008.04.28 |
---|---|
판도라 셋트를 만들려다 실패했습니다. ㅜ_ㅜ (4) | 2008.04.26 |
PSP의 커스텀펌웨어(커펌)에도 사용되는 USB 제어 코드 (6) | 2008.04.22 |
01 따라하는 PSP 홈브루 개발 - Hello World 출력 (18) | 2008.04.21 |
01 PSP 홈브루(Homebrew) 개발 환경 설치 (10) | 2008.04.15 |