Exophase said:
Great, the instruction set/architecture is totally documented, so I don't see what will stop compilers or at least assemblers from being made, if they aren't already available.
If performance of GCC on Blackfin is any indication I'm thinking we might want to write ASM for this one.
gcc is not very good for VLIW architectures... And that DSP is a VLIW beast so indeed asm might be the only way to go. But then you will need an optimizing assembler, because there are many things you wouldn't like to do by hands such as static scheduling which is mandatory for correct execution.
Anyway as you wrote this is totally documented, we just need some people to work on the tools
I'd love to see more optimizing assemblers, personally (although I might be crazy enough to try to do some static scheduling of this magnitude myself.. it'd be kind of nice having an assembler which gave you a report on the utilization of the units as you went through, so you could hand tweak it)
So far I'm very impressed with C64x compared to Blackfin. 8 unit blocks of four different types, so it already has 2x redundancy for every operation, and a lot of them can handle the same basic things. It also has predication which I imagine is a major win for a platform that hates branching, and unlike Blackfin it has a ton of general purpose 32bit registers (32x2, great).. Undeniably it has several DSP features, but at its heart it almost feels more like a mobile Itanium.
Not suited for general purpose code that has a lot of branches and not a lot of inherent parallel execution, but I bet if it has a few pivotal instructions that it could pull off some very efficient rendering code for 2D emulators (even DS and Saturn have a ton of 2D hardware)