Better late than never
Thursday, February 7, 2013 2:49:41 PM
- official cg6 documentation, including the geometry unit
- official SX documentation ( the graphics processor built into the SS10SX's and SS20's memory controllers ) - complete with instruction set description. Claims to be preliminary and predates the SS20 ( it's dated 1990 ) but most information in there appears to be accurate.
- a firmware loader and some code for the cg12 - maybe we can get some acceleration out of that one as well
We pretty much know how to deal with a cg6, while the matrix / geometry unit is interesting it's not something that's useful for basic 2D acceleration.
The SX manual more or less confirms what we knew and/or guessed about the SX - it's a vector processor with plenty of internal registers ( 128 of them, 32bit wide, with the first 8 having special purposes ), it can access all physical memory ( well, it is built into the memory controller ) but apparently no SBus space. The CPU is supposed to feed it instructions, one or two at a time, there are two sets of mappable registers - one for kernel use, one for userland with parts read only ( things like boundary checking, otherwise userland could use the SX to access arbitrary memory ). The manual documents most of the register bits ( I found some that are set by SX but which the manual claims are unused, that's not all that surprising though, the manual is a few years older than ( and therefore a few revisions behind ) the hardware I'm using ).
SX turns out to be a vector processor, not some sort of SIMD unit as we initially suspected. The good thing about that is the fact that most instructions take a count of how many times to repeat the operation on successive registers and/or memory locations, that way we can read or write up to 32 registers or do up to 16 other operations with a single instruction, that way limit the number of instructions the CPU has to send. Now these operations don't all run at the same time - SX has two ALUs, so there is some parallelism but not a whole lot. On the other hand, MBus CPUs aren't exactly fast by today's standard either, so whatever we can offload to SX will probably help.













