27

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.

claws
  • 52,236
  • 58
  • 146
  • 195
  • There are still many android MIPS tablets nowadays – phuclv Oct 06 '13 at 15:12
  • @LưuVĩnhPhúc Example please? Googling around I see that it is in fact supported since 2009, but the first result was a press release about disappointing sales. I've certainly never seen one in the wild and as an Android developer I've assumed that native ARM code won't lock anyone out. – Potatoswatter Oct 08 '13 at 03:16
  • @Potatoswatter: At least there's some [news](http://linuxgizmos.com/new-mips-warrior-processors-may-target-android/) just a few months ago http://liliputing.com/2013/01/ingenic-jz4780-is-a-dual-core-mips-cpu-for-android-tablets.html, may be you're at different google result because of region. Most MIPS devices today are cheap tablets for China or India so you'll have less chance to seen one http://www.androidcentral.com/mips-announces-125-jelly-bean-tablet http://techcrunch.com/2011/12/05/99-chinese-tablet-is-mips-based-runs-android-4-0/ – phuclv Oct 08 '13 at 11:50
  • There are many apps have native version for MIPS such as MX player, and there is still MIPS system image on AVD Manager, so it's less likely to be abandoned in the near future – phuclv Oct 08 '13 at 11:51

7 Answers7

35

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.

Potatoswatter
  • 134,909
  • 25
  • 265
  • 421
  • There are other archs with delay slots (e.g. ARC, SuperH, SPARC etc.), though in many you can control if you want the slot or not. Also, since you're editing, you should also fix the 64-bit part :) – Igor Skochinsky Mar 21 '13 at 12:45
  • 2
    Explain downvote? I will happily add information to the contrary of the point presently made, if I have some. – Potatoswatter Oct 07 '13 at 00:34
  • Great answer. Also means that my computer organization and design class might be useful after all. BTW, mips was doing 64bit before ARM was. MIPS wanted to be up to date enough for practical use, so it invested in the technology before ARM was barely used at all. – violet_white Feb 22 '14 at 21:59
  • +1 for don't learn Itanium. I did. I came to the conclusion that it's mostly an attempt to create a fully patented CPU, one where no operation could be tainted by prior art (or experience), when an alternate approach that had never been done before was available. Of course, I said such things in jest, with my tongue fully in-cheek, but like all good jokes, there is a kernel of truth in it. – Edwin Buck Jan 27 '17 at 15:16
13

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.)

JUST MY correct OPINION
  • 35,674
  • 17
  • 77
  • 99
9

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.

sybreon
  • 3,128
  • 18
  • 19
  • 5
    I disagree a little (not enough for a -1). It is, in my opinion, **always** useful for developers to have a feel for what's going on under the hood while they're working on detailing their metaphorical automobiles. **Any** programmer I meet who can't turn on the assembly language output of their compiler (or equivalent in the case of things like the JVM or Erlang's VM or the like) and semi-competently read what's going on is not a developer I want to work with or have working under me. (Or above me, for that matter.) – JUST MY correct OPINION May 09 '10 at 06:31
  • 6
    We're talking about similar but not the same thing - knowing the assembly language is not equal to knowing the hardware architecture (pipelines, cache architectures, special function units...) However, I agree with you that a good developer needs to have working knowledge of what is under the hood, I just don't think that they need to know every nut and bolt in the engine. – sybreon May 11 '10 at 16:29
4

This is just speculation. Information is taken from Wikipedia article on MIPS.

  • MIPS originated in an academic environment (Stanford), not a commercial one. The people in such an environment are much more likely to write textbooks than people who work at a company.
  • In the 1990s, MIPS became licensable. Combined with the decent/good performance per dollar at the time, this lead to relatively wide adoption in the embedded market (ARM has the same story).

I managed to find a graph of the embedded processor market share, although it's only RISC processors during the 1990s. Note the big chunk that is MIPS. I suspect ARM has blown MIPS out of the water in terms of market share by now, but I don't have the numbers.

Dietrich Epp
  • 205,541
  • 37
  • 345
  • 415
2

The Playstation 2 had a MIPS CPU. The PS3 uses the Cell, which looks like a POWER variant, and the XBox 360 uses a PowerPC, too.

ARM seems to be getting especially popular in mobile devices, and PowerPC is still huge in embedded systems, especially automotive. You can even find the occasional M68k if you look in the right device.

MIPS is probably popular because it's a real architecture, but still relatively simple. It's arguably (one of?) the first modern RISC architecture(s). (Even I could figure it out!)

It really depends on what you want to learn, and why. Just for fun? To build an embedded device? To write a compiler? To write your own assembly code? To stretch your mind?

Ken
  • 756
  • 4
  • 7
1

The MIPS CPU is taught as the "basic" RISC architecture processor because it was one of the first very successful RISC processors. SGI had several computer systems built upon this processor family, such as the Onyx and several others. It was also used in a few MPP (Massively Parallel Processor) computers in the mid/later 1980 to the late 1990s.

As someone previously mentioned, the code was easy to learn and once you learned it, it was easy to move on to more "complex" RISC instruction based processors such as the Alpha, SPARC, ARM, IBM Power PC to name a few. It's note worthy to mention, HP also produced a RISC processor in the 1980's which went on to power some of their commercial computer systems.

The MIPS processor is still around today, the MIPS64 I-Class, based on the MIPS-V processor is the latest version of the processor that I am aware of; produced by Imagination Technologies. From my understanding, this and new MIPS processors such as the R14K and R16K are based upon the R10K architecture.

In my younger days, I had the fortune to work on a 16 processor SGI Onyx Reality Engine II, with MIPS R10k upgraded processors. Having worked mainly on UNIX SVR4 32 bit CISC systems, I was shocked that most of the commands were exactly the same. It took me a couple of days to learn the coding differences, going from CISC to RISC, but after that, it was very easy!!!

J. Simons
  • 11
  • 3
1

I would like to add that today you will see Chinese companies use MIPS, including notably Ingenic Semiconductor, which targets consumer markets, and Loongson Technology, which is involved in consumer products and supercomputers.

You can also find them in modern low-cost microcontrollers like the Microchip PIC32M line even when other manufacturers use ARM or their own IS (ex. Atmel AVR).

qwr
  • 9,525
  • 5
  • 58
  • 102