By: aaron spink (aaronspink.delete@this.notearthlink.net), May 17, 2013 8:55 pm
Room: Moderated Discussions
Björn R. Björnsson (bjorn.ragnar.delete@this.gmail.com) on May 17, 2013 6:34 pm wrote:
> ISA isn't everything but if you get it sufficiently wrong it can kill your architecture in the long
> run. I'm thinking particularly of earlier RISC designs, which made high memory efficiency nearly
> impossible due to lack of byte addressing and inefficient instruction coding, things that were killers
> once the speed of CPU cores and memory began to diverge in earnest. The lack of integer divide,
> etc. The last could easily have been fixed efficiently with a fast emulator trap (we saw such things
> later). It felt as if these ISA designers had never done any real world programming.
>
Eh? Those weren't the flaws of the early RISC ISAs. Most of the flaws of the early RISC ISAs was exposing fundamental micro-architectural details into the ISA. Examples included branch delay slots (MIPS, SPARC, PA-RISC) and load delay slots (MIPS). And personally I would probably add rotating register-files to the list.
Things like lack of byte addressing and lack of integer divide are extremely minor and in many cases have little to no impact.
> ISA isn't everything but if you get it sufficiently wrong it can kill your architecture in the long
> run. I'm thinking particularly of earlier RISC designs, which made high memory efficiency nearly
> impossible due to lack of byte addressing and inefficient instruction coding, things that were killers
> once the speed of CPU cores and memory began to diverge in earnest. The lack of integer divide,
> etc. The last could easily have been fixed efficiently with a fast emulator trap (we saw such things
> later). It felt as if these ISA designers had never done any real world programming.
>
Eh? Those weren't the flaws of the early RISC ISAs. Most of the flaws of the early RISC ISAs was exposing fundamental micro-architectural details into the ISA. Examples included branch delay slots (MIPS, SPARC, PA-RISC) and load delay slots (MIPS). And personally I would probably add rotating register-files to the list.
Things like lack of byte addressing and lack of integer divide are extremely minor and in many cases have little to no impact.