MIPS processors : Are they still in use? Which other architecture should I learn?

Cavium Networks and Raza Microelectronics Broadcom are two large MIPS chipmakers. See MIPS Imagination Technologies' website for more info.

One thing that MIPS does and ARM doesn't is 64-bit.

Update as of 2013: Broadcom does not appear to have introduced new MIPS products since 2006, and Cavium appears to be transitioning to 64-bit ARM v8. Imagination Technologies acquired MIPS in late 2012. (Ironically, Apple, their #1 customer, were the first to market with ARM v8.)

The writing is on the wall for MIPS.


MIPS is the cleanest successful RISC. PowerPC and (32-bit) ARM have so many extra instructions (even a few operating modes, 32-bit ARM especially) that you could almost call them CISC. SPARC has a few odd features and Itanium is composed entirely of odd features. The latter two are more dead than MIPS.

So if you learn MIPS, you will be able to transfer 100% of that knowledge to other RISCs (give or take delay slots), but you still have to learn about lots of odd instructions on PPC, a whole ton-o-junk on 32-bit ARM, and register windows on SPARC. Itanium isn't RISC so it's hard to say anything, besides don't learn Itanium.

I have not studied 64-bit ARM yet but it is likely to have most of the positive qualities of MIPS, being essentially a clean-slate design.


If you're experienced in the x86(-64) world, then yes the move to a RISC processor is a good sideways move to keep your mind opening. Your questions are good ones.

Answering your second question: yes, MIPS processors are still in use. They're frequently the processors used in things like routers and other small computing appliances like that. They're also increasingly appearing in small home computing devices in Asian marketplaces (Lemote, for example). What they bring to the table over ARM is a competitive price/performance ratio and 64-bit capabilities. What ARM brings over MIPS is a much better power/performance ratio, if memory serves, and a more flexible set of options in constructing cores. SPARC is very pricey, but, to be fair, very fast. I don't know enough about the other architectures mentioned to make any useful comment. (Well, except Itanium which is basically stillborn tech that's not RISC nor CISC.)

Answering now your first question: the reason that MIPS features so prominently in books is that it is almost a perfect exemplar of a RISC system. It is a small, relatively pure RISC implementation that is easily understood and that illustrates RISC concepts well. For pedagogical purposes it is probably the best real-world architecture to show the nature of RISC, along with its warts. Other processors thought of as RISC (ARM, SPARC, Alpha, etc.) are more pragmatic and complicated, obfuscating RISC concepts with some more CISC-like enhancements for better performance or other benefits.

Finally, to answer your final question: I would recommend learning MIPS for the same reason that I recommend people learning OOP pick up Eiffel, people learning functional pick up Haskell and so on. MIPS is the purest implementation of RISC concepts that's in actual real-world use and you will be forced to contend with the RISC way of thinking and only the RISC way of thinking (for the most part) while you solve your problems with it. This will prepare your mind for the RISC approach and make it easier for you to quickly pick up ARM (my recommended second) or SPARC or any other RISC architecture out there even if you never use MIPS directly. (Although as I pointed out you may actually wind up contending with MIPS anyway.)


The reason that MIPS is taught in schools is because it is a 'classic' RISC architecture and is DLX-like, which is the kind of architecture used in the bible by Hennessy & Patterson (the god-fathers of modern RISC). It is very simple to understand in its simplicity and once you get it, moving onto other architectures is simple enough.

If you are asking for specific architectures to learn, I would say that unless you were interested in becoming a hardware guy, it may not help much aside from the knowledge factor. Most compilers abstract a lot of the hardware issues away unless you need to write very low-level code. So, a PPC/SPARC/ARM/MIPS/whatever will not really make much difference to 90% of the programmers out there.