I've been programming for x86 & x86-64 in assembly language for few months. Now, I want to move on to some different kind of processors.
MIPS, SPARC, PowerPC, Itanium, ARM of these I found ARM is being widely use. But the books I see that tutorials & books teach about MIPS more than all these other architectures.
Why is MIPS so popular? Are MIPS processors still in use? Which architecture should I go for?
My background:
I'm a student in Electronics dept. I'm also a high level programmer.
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).
MIPS is a load/store architecture (also known as a register-register architecture); except for the load/store instructions used to access memory, all instructions operate on the registers.
The MIPS processor, designed in 1984 by researchers at Stanford University, is a RISC (Reduced Instruction Set Computer) processor. Compared with their CISC (Complex Instruction Set Computer) counterparts (such as the Intel Pentium processors), RISC processors typically support fewer and much simpler instructions.
1. Short for Microprocessor without Interlocked Pipelined Stages, MIPS is a microprocessor architecture using the RISC instruction set, introduced in 1985.
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.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With