Re: after SIMD implementation, is it still a RISC?



Terje Mathisen <terje.mathisen@xxxxxxxxxxxxx> writes:
Even with my possibly (probably?) biased x86 background, I really don't
think having Load-Op should disqualify an architecture from being "RISC":

No RISC architecture has it, and "load/store-architecture" is deemed
as one of the defining properties of RISC, so I think the jury has
decided on that. The reasons are probably:

* Separating the load from the operation allows the compiler to
schedule the load earlier and schedule something else in the load
delay slot.

* RISCs have more registers, so they can keep more variables in
registers, avoiding the need to access them in memory, so load-operate
instructions would see less usage.

* Typical RISC instruction formats have only one register left in a
memory-format instruction; that register would have to serve as both
source and destination of the operation, making register allocation in
the compiler more complicated. Alternatively, one would have to
shorten the offset in the memory-format instructions to make room for
an additional register.

This is a sufficiently common pattern that it is worthwhile to allow
this instruction type simply to save code bandwidth.

AFAIK even Thumb does not have load-operate instructions, so they did
not think it worthwhile.

IMHO RISC should be about making cpus simple enough that you can say
they "obviously have no bugs", rather than "no obvious bugs", but
history has shown that they are all definitely in the second category
anyway. :-(

RISC was about speed, not (particularly) correctness.

- anton
--
M. Anton Ertl Some things have to be seen to be believed
anton@xxxxxxxxxxxxxxxxxxxxxxxxxx Most things have to be believed to be seen
http://www.complang.tuwien.ac.at/anton/home.html
.



Relevant Pages

  • Re: To RISC or not to RISC
    ... Me thinks RISC based processor is boring to program in assembly. ... fixed-length instructions, really intended to program in HLL. ... The only processor with a vast set of register that I know is a VLIW, ... I don't get that 'assembly' feeling when I'm coding for example ARM. ...
    (alt.lang.asm)
  • Re: Microcontroller ... which one ??
    ... > RISC is not a language. ... > instructions on the AVR are one cycle. ... Also, the PIC has a single working register, ... the PIC needs to load them into the W register (four cycles) ...
    (sci.electronics.design)
  • Re: IBM 45nm -- new or licensed from Intel?
    ... However this increases power consumption for all fetches, ... all instructions). ... I had the impression that 2-way for a RISC was 1 general integer FU ... x86compilers for lower-end, embedded systems?) ...
    (comp.arch)
  • Re: PIC vs ARM assembler (no flamewar please)
    ... The whole point of RISC is to be able to make a more efficient implementation - it is an architectural design philosophy aimed at making small and fast implementations. ... Thus the 68k is far from typical CISC, and is much more in the middle. ... The 68k can handle both operands of an ALU instruction in memory, ... Another example of the simplifications is that the CF no longer supports byte or word sizes for most operations - about the only instructions that support sizes other than the native 32 bits are MOVEs. ...
    (comp.arch.embedded)
  • Re: Optimization Questions
    ... cycles you'd save would be more than offset by the cycles you'd burn ... instructions go through port 0 and port 1. ... a 16-bit register, writing one afterwards will be fast. ... Pre-read the value in EAX ...
    (comp.lang.asm.x86)