开发者

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

开发者 https://www.devze.com 2022-12-26 14:22 出处:网络
Closed. This question is opinion-based. It is not currently accepting answers. 开发者_开发技巧 Want to improve this question? Update the question so it can be answered with facts and citati
Closed. This question is opinion-based. It is not currently accepting answers.
开发者_开发技巧

Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.

Closed 2 years ago.

Improve this question

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.


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.


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.


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?


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!!!


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

0

精彩评论

暂无评论...
验证码 换一张
取 消