CPUS, Memory, Languages

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

Post Reply
dom
Posts: 29
Joined: Tue Oct 05, 2004 7:20 pm

CPUS, Memory, Languages

Post by dom »

Hi all,
first thank all persons who contributes for the pspsdk.

I started to play with my toy, basically using wifi, main cpu and gu. I have a noob-list questions
to ask i haven't been able to answer googling, wikiing or looking here. Before you read further,
i apologize the lenght of my post and my bad english.

So we have somethat few cpus in there.
The allegrex cpu with two coprocessors FPU and VFPU
a) this allegrex cpu is not something usual in the world of mips cpu so people here are making patchs for the gcc compilers ?
b) the main cpu and FPU coprocessor are "well-known" and working great for now ? both can be coded in C with psp-gcc ?
c) the vfpu is something yet to be discovered and people here are looking at it, discovering and naming opcode ? we can code it setting the special thread attribute PSP_THREAD_ATTR_VFPU in assembly language ? (and for sure, one day with psp-vfpu-gcc ? ;-) The available opcodes that one can use to code the VFPU can be found in the source of pspsdk in binutils-2.16.1/opcodes/mips-opc.c ? in this thread http://forums.ps2dev.org/viewtopic.php? ... c&start=30
d) If one want to code the vfpu in multiple threads, he must save/load the matrix stack within each threads ?

We also have the media block cpu
e) This beast is also kind of unknown and to be discovered ?
f) People think that there is no way to code that in the official sony devkit, and that it is loaded with some kind of sony-not-available-in-kernel-programs to decode audio/video ?
g) As it is mips-R4000 we can use some R4000 opcodes ? As this is R4000-based perhaps there are unknown instructions in it ?
h) People here are also trying things with this cpu. We can code it in assembly language using the sample in sdk. (void *)0xbfc00040 is the address the ME reset vector, obviously something you feed to execute your own code. What is the memory maped here ?
i) If one want to code this, he has to take into acount that it is hard to synchronize the main cpu and the me?

And we have some memory space in there:
When coding the main cpu, we have access to the memory described in the wiki.
j) Uncached memory are part of memory that i don't want to be cached in the 16kiB main cpu cache. Cached memory are stored in the 16kiB main cpu cache and so when making computation on that data, it is likely that this is going faster than uncached ? But i must sceKernelDcacheWriteback to be sure data go back to memory ?

When coding the media block cpu, we don't have the same map memory.
k) local RAM ? 0x80000000
MMIO ? 0x04000000
main mem ? 0x08000000
uncached mem ? 0x40000000
I read this from one topic in the forum. Is this right ? MMIO stands for multimedia input/ouput ?
l) We don't have access to the VRAM within the the ME ?
m) Is the local ME RAM accessible from the main cpu (likely to be no as local stands for local ;-)?
n) and/or is there any way to read data from memstick/wifi to local me ram (without the use of main cpu and "normal ram") ?


Once again, sorry for this long malformated post, but i tried to write
down a part of all the questions i have about the psp and the pspsdk.
@+
dom
Post Reply