ARM vs. MIPS, dual core vs. single core plus stripped coprocessor, apples vs. oranges. The PSP is also clocked at 222MHz by default. And as was already mentioned, developers only have access to 32MB of those 64MB RAM, and even then, they need to compensate for the slow as molasses mass storage.Well I was including both 333 MHz processors as well.
That and only 64 MB of RAM/4 MB of VRAM. That's the same amount the slim PSP has.
http://www.edepot.com/reviews_sony_psp.html#PSP_Hardware
ARM vs. MIPS, dual core vs. single core plus stripped coprocessor, apples vs. oranges. The PSP is also clocked at 222MHz by default. And as was already mentioned, developers only have access to 32MB of those 64MB RAM, and even then, they need to compensate for the slow as molasses mass storage.
It's been a long time since I studied the MIPS architecture, but surely there is, in effect, only a 1-cycle "additional stall" if you don't have a useful instruction to put in the delay slot?ARM vs MIPS is much less of a relevant comparison than the particular CPU architectures in question, ie ARM11 vs Allegrex. Both are single issue and execute most non-FPU instructions in one cycle, with the major exception being that ARM11 has branch prediction while Allegrex has delayed branches that always imply at least a 1-cycle additional stall (but the mispredict cost on ARM11 is much worse, and its predictor isn't that great).
It's been a long time since I studied the MIPS architecture, but surely there is, in effect, only a 1-cycle "additional stall" if you don't have a useful instruction to put in the delay slot?
Assuming the 2x266MHz ARM11 reveal is correct, we still don't know if user code would be allowed on the second core. It isn't on the DS, afterall (or PSP, which I guess is what you implied by it being "stripped")
PSP having an earlier clocking restriction of 222MHz is irrelevant. Games have been allowed 333MHz for years. If Sony wanted to they could also update the firmware to allow trusted developers access to the second core and RAM used as UMD cache on the 2000+ models, but it's pretty late to try such a thing
I actually expect the 3DS to use a dual ARM11MPCore which developers have access to, as well as an additional ARM9 core for background tasks like Spotpass and Streetpass.Assuming the 2x266MHz ARM11 reveal is correct, we still don't know if user code would be allowed on the second core. It isn't on the DS, afterall (or PSP, which I guess is what you implied by it being "stripped")
The second core on the DS has always been a lower clocked cheaper CPU (in comparison to the main gaming CPU), same goes for Wii (Starlet). I'd be suprised if their isn't a lower clocked ARM7/9 in their with both ARM11 cores being used for games.
By the way, by stripped I think he's saying that the second CPU core in PSP isn't identical to the first, but instead a stripped down version. I'm not personally sure how true that is but that's how I read it (I think the second core has no FPU?, but I'm not sure about the specifics).
wsippel said:I actually expect the 3DS to use a dual ARM11MPCore which developers have access to, as well as an additional ARM9 core for background tasks like Spotpass and Streetpass.
wsippel said:And the PSP Media Engine is not a full blown second CPU core, no matter if or how it's accessible. The VPU was removed, it has no access to the VRAM, and there's no cache coherency, just to name a few examples.
wsippel said:On the other hand, maybe the rumored 3DS specs are completely wrong. It seems to be proven now that there was, in fact, an early version of the 3DS devkit based on Tegra. Tegra uses ARM11MPCore. After Nintendo switched to DMP, they might have switched to a different CPU as well.
Thanks - as I said it's been many years since I looked at MIPS devices, but I did do quite a bit of development on a TI DSP which had branches with 3 delay slots.Only for the original 5-stage pipeline in the first implementations.
Initially, I was going to agree with you but, having thought more about it, I can't see that it is a problem to have an ISA that has, say, 1 delay-slot branches. In effect it is equivalent to any non-branch instruction having the option to also branch (based on an earlier instruction).Again, MIPS is an instruction set, not a CPU design, which is precisely why mechanisms like delay slots aren't a great idea.
Thanks - as I said it's been many years since I looked at MIPS devices, but I did do quite a bit of development on a TI DSP which had branches with 3 delay slots.
Initially, I was going to agree with you but, having thought more about it, I can't see that it is a problem to have an ISA that has, say, 1 delay-slot branches. In effect it is equivalent to any non-branch instruction having the option to also branch (based on an earlier instruction).
There is nothing, AFAICS, preventing an actual CPU then also implementing prediction and/or out-of-order instruction execution, and/or predication given sufficient silicon budget. <shrug>
Anecdotal evidence, but I havent had much problem filling branch delay-slots (MIPS)Delay slots are good when the alternative is an unavoidable cost per branch, but they're not exactly without consequence. If you can't fill them that's a wasted cycle and adds to code size, and a lot of the time they can't be filled. Platforms with annulment like SPARC could potentially avoid this, but it'd be complex to make them behave like anything more than delay slot branches with an implicit NOP placed.
Yeah this is the most annoying issue.Another annoyance with delay slots is that they make exception handling trickier, for both hardware and software. On SPARC you have to go through a ritual of restoring both the PC and next PC. The C6x is so heavily delay slotted that you pretty much have to turn off interrupts when using code that isn't intentionally heavily crippled to be interrupt safe.
DS and DSi are the only Nintendo handhelds that have had second processors running auxiliary/interface code for the main game. I'm not familiar with Starlet, but is it programmable or does it just run off of a ROM?
Well GameBoy didn't really have any need for a second processor due to the fact there was no interface outside of the game itself. Ever since Nintendo started creating handhelds/consoles with basic OS's (DS/Wii) they've used a second lower clocked CPU to run them.
Starlet is an ARM9 CPU (243Mhz AFAIK) inside Wii's GPU, I'm no Wii dev so I don't know much about the CPU, but it seems its similar in prupose/use to the second CPU in the DS.
DS games don't run what I could consider an OS, regardless of Nintendo's terminology. Just some peripheral abstraction libraries. Starlet is more or less the same, although it also does security. I don't know what you mean by interface outside of the game itself, do you mean hardware abstraction?
Probably the biggest reason why DS has an ARM7 is to execute GBA games on. From there it made sense to incorporate it into other aspects of the design. The situation on Wii is kind of in reverse - they use another CPU + glue logic to abstract the new peripherals away from the Broadway chip, so it can work without running code on it in Gamecube mode.