Tachyon: Difference between revisions
EmilDalalyan (talk | contribs) (Correction of the formatting) |
CelesteBlue (talk | contribs) No edit summary |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[File:PSP CXD2962GG.jpg|thumb|PSP CXD2962GG]] | [[File:PSP CXD2962GG.jpg|thumb|PSP CXD2962GG]] | ||
<b>Tachyon</b> is the codename of the PSP main CPU SoC IC. It is a Sony custom-made LSI which holds the main CPU (Allegrex), the VFPU coprocessor, the Media Engine CPU and its embedded DRAM, the Graphics Engine, the AVC decoder, the Virtual Mobile Engine DSP, the [[Kirk]] and [[Spock]] crypto engines, and the 4KB embedded mask ROM which holds the [[ | <b>Tachyon</b> is the codename of the PSP main CPU SoC IC. It is a Sony custom-made LSI which holds the main CPU (Allegrex), the VFPU coprocessor, the Media Engine CPU and its embedded DRAM, the Graphics Engine, the AVC decoder, the Virtual Mobile Engine DSP, the [[Kirk]] and [[Spock]] crypto engines, and the 4KB embedded mask ROM which holds the [[iplloader]] and routines to boot into service mode. | ||
Tachyon has one primary CPU core which is responsible for running the [[XMB]] and games, and a second CPU core (<i>[[ | Tachyon has one primary CPU core which is responsible for running the [[XMB]] and games, and a second CPU core (<i>[[Media Engine]]</i>) which implements the audio and video decoding functionality of the PSP. | ||
== Main Core "SC" == | == Main Core "SC" == | ||
See [[Allegrex]]. | |||
== Media Engine == | == Media Engine == | ||
See [[Media Engine]]. | |||
== Virtual Mobile Engine == | |||
See [[Virtual Mobile Engine]]. | |||
== Graphics Engine == | == Graphics Engine == | ||
: <i>See main article: <b>[[Graphics]]</b></i> | |||
== Memory mapping == | == Memory mapping == | ||
Line 96: | Line 35: | ||
| 0x08000000 || 0x087FFFFF || 0x00800000 (<i>8MiB</i>) || Allegrex Kernel memory (RAM) | | 0x08000000 || 0x087FFFFF || 0x00800000 (<i>8MiB</i>) || Allegrex Kernel memory (RAM) | ||
|- | |- | ||
| 0x08800000 || | | 0x08800000 || 0x09FFFFFF || 0x01800000 (<i>24MiB</i>) || Allegrex User memory (RAM) | ||
|- | |- | ||
| 0x1C000000 || ? || ? || Hardware registers | | 0x1C000000 || ? || ? || Hardware registers | ||
Line 126: | Line 65: | ||
|- | |- | ||
|} | |} | ||
== PSP-1000 VFPU bug == | |||
PSP-1000 CPU has broken <code>ulv.q</code> instruction, that causes FPU registers corruption. | |||
You can see more about it [https://sites.google.com/a/davidgf.es/davidgf-net/home/psp-dev/vfpu-test?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F here]. | |||
== Versions == | == Versions == |
Latest revision as of 21:32, 17 June 2024
Tachyon is the codename of the PSP main CPU SoC IC. It is a Sony custom-made LSI which holds the main CPU (Allegrex), the VFPU coprocessor, the Media Engine CPU and its embedded DRAM, the Graphics Engine, the AVC decoder, the Virtual Mobile Engine DSP, the Kirk and Spock crypto engines, and the 4KB embedded mask ROM which holds the iplloader and routines to boot into service mode.
Tachyon has one primary CPU core which is responsible for running the XMB and games, and a second CPU core (Media Engine) which implements the audio and video decoding functionality of the PSP.
Main Core "SC"[edit | edit source]
See Allegrex.
Media Engine[edit | edit source]
See Media Engine.
Virtual Mobile Engine[edit | edit source]
Graphics Engine[edit | edit source]
- See main article: Graphics
Memory mapping[edit | edit source]
This memory mapping is shared by the SC, the GE & the ME, except the VRAM which is accessible only by the SC and the GE.
Start | End | Size | Description |
---|---|---|---|
0x00010000 | 0x00013FFF | 0x00004000 (16KiB) | Allegrex Scratchpad |
0x04000000 | 0x041FFFFF | 0x00200000 (2MiB) | Graphics Engine VRAM |
0x08000000 | 0x087FFFFF | 0x00800000 (8MiB) | Allegrex Kernel memory (RAM) |
0x08800000 | 0x09FFFFFF | 0x01800000 (24MiB) | Allegrex User memory (RAM) |
0x1C000000 | ? | ? | Hardware registers |
0x1FC00000 | 0x1FDFFFFF | 0x00200000 | MIPS Reset Vector |
0x1FE00000 | ? | ? | Hardware registers |
See Hardware Registers for details about the hardware registers.
Access can be cached & privileged or not by changing the first 4 bits (31-28 bits) of the address using this virtual memory mapping:
Address | Name | Is it cached? | Permission | Description |
---|---|---|---|---|
0x00000000 | KU0 | Cached | User/Supervisor/Kernel | Main memory |
0x40000000 | KU1 | Uncached | User/Supervisor/Kernel | Often used for VRAM |
0x80000000 | K0 | Cached | Kernel | Main kernel memory |
0xA0000000 | K1 | Uncached | Kernel | Mainly used for hardware registers |
0xC0000000 | K2/KS | Cached | Supervisor/Kernel | Usage unknown/unconfirmed |
0xE0000000 | K3 | Cached | Kernel | Usage unknown/unconfirmed |
PSP-1000 VFPU bug[edit | edit source]
PSP-1000 CPU has broken ulv.q
instruction, that causes FPU registers corruption.
You can see more about it here.
Versions[edit | edit source]
PSP-1000[edit | edit source]
- CPU and DDR are discrete ICs on the motherboard
- 32 MiB main memory (DDR)
- 2 MiB Media Engine memory (eDRAM)
PSP-2000 and later[edit | edit source]
- DDR is brought into the CPU's package
- 64 MiB main memory (DDR)
- 4 MiB Media Engine memory (eDRAM)