2007-12-19

Why I love RISC

All the Laws of Nature are relatively simple: this is a reason why I used to love physics when I attended the Lyceum.
The greatness of simplicity and modularity applied to computers led me to love RISC architectures (for hardware) and UNIX systems (for software).
When I started learning the x86 Assembly language and I discovered that every instruction can belong from one to 17 (seventeen!) bytes I was shocked; there is an interesting comment about this written by Hennessy and Patterson in their books.

When studying RISC architectures the first ones encountered by the students are always MIPS (for its simplicity and orthogonality) and SPARC (for the idea of adding register windows to minimize accesses to memory); they are still my preferred ones.

To have an idea of which architectures are most widely used today you can have a look at the GCC cross-compilers maintained by Julien Lemoine on his site speedblue.org.
His page of the unstable packages for Debian reports the following architectures:
  • alpha
  • arm
  • hppa
  • ia64
  • m68k
  • mips
  • mipsel
  • powerpc
  • powerpc64
  • s390
  • sparc
  • sparc64
  • x86-64
As you can easily see, MIPS and SPARC have a great part here with 2 different targets each (MIPS is split by endianess and SPARC by register bit number).

Other important RISC architectures here being ARM and PowerPC.
For some reasons I do not like ARM cores:
  1. for a long period of time their cores have been an extension of the Intel monopoly under the names StrongARM and XScale (I have a PXA270 in my iPAQ);
  2. their strict IP protection policy made impossible for amateurs to access internals and to write their own HDL models (I remember a module named nnARM disappearing from OpenCores after developers received a letter from ARM lawyers);
  3. there are even too many implementation in current technological gadgets (this interesting article on EETimes explains that there could be up to 8 different ARM cores inside each Apple iPhones), and I love diversity as opposed to monopolies.
The last important RISC architecture is PowerPC (or POWER for IBM): after the switch of Apple Macs to use Intel micros their best implementation is in the Cell microprocessor of the Sony PlayStation 3 and in IBM POWER6 servers, while Motorola uses them in several embedded devices.
PowerPC cores could have changed the history of computers - but they didn't. So I'm always I bit sad when I have to talk about them.

The next step will be to see which architectures are actively supported by the Linux kernel.