Live data from Hacker News

Is MIPS Dead? Lawsuit, Bankruptcy, Maintainers Leaving and More

cnx-software.com

61–70 of 95 posts

Re: Is MIPS Dead? Lawsuit, Bankruptcy, Maintainers Leaving and More

#61

I don't think MIPS is going to completely disappear as long as Linux works on it. Someone somewhere in some country will keep making them as long as the licensing situation is more favorable for whatever use than ARM or x86. If the owning company is going bankrupt that means making MIPS CPUs will be cheaper than ARM or x86.

I was under the impression what MIPS was open sourced, in which case "owner" company should be irrelevant?

Not so; there was a short-lived initiative to work towards some kind of open release, but it came to nothing. The article mentions that.

Re: Is MIPS Dead? Lawsuit, Bankruptcy, Maintainers Leaving and More

#62
post #45
post #33

Earlier quoted context omitted.

MIPS is typically seen in computer architecture class because it is simple and regular (at least the original version seen in class). However, for Assembly programming, MIPS, like (almost?) all RISC instructions sets, is tedious. Give me any CISC with a generous range of addressing modes, and I take any day over MIPS/RISC. We can make a parallel between those low-level ISA and high-level languages: a language like Li…

Well I don't think most people these days are interacting with assembly by hand-writing programs. The real users of ISAs now are compiler authors, and the simpler and regular languages seem better for them. So is there some other reason (other than inertia) that RISC isn't practical?

I think this is what VLIW exposed. Real world optima are a union of hardware, microarch, compiler, and software optima.

Even a global optimum for one is unlikely to be an efficient solution for all.

Re: Is MIPS Dead? Lawsuit, Bankruptcy, Maintainers Leaving and More

#63

Earlier quoted context omitted.

There's nothing much that's CISC-like about ARM, MIPS or RISC-V. Even many μC architectures are closer to "RISC" than "CISC", though there's at least some room for exceptions there.

> There's nothing much that's CISC-like about ARM, I struggle to think that ARM can really be called reduced-instruction after neon or so.

Why? NEON operates on registers, so the load-store principle is still fully in effect. And it maps directly to special-purpose hardware.

Re: Is MIPS Dead? Lawsuit, Bankruptcy, Maintainers Leaving and More

#65
post #33

Earlier quoted context omitted.

MIPS is typically seen in computer architecture class because it is simple and regular (at least the original version seen in class). However, for Assembly programming, MIPS, like (almost?) all RISC instructions sets, is tedious. Give me any CISC with a generous range of addressing modes, and I take any day over MIPS/RISC. We can make a parallel between those low-level ISA and high-level languages: a language like Li…

Traditional addressing modes have been largely abandoned because modern architectures are based on the load-store principle. Simplicity has little to do with it, and referring to that whole shift in design as "complex" vs. "simple" instruction sets is a bit of a misnomer. Besides, well-designed architectures are not exactly lacking in ease-of-use.

This is only "sort of" true.

First, mod-r/m addressing on x86 is fairly traditional and can often save considerable calculation over a "simpler" addressing mode (given the opportunities for add-and-scale operations).

Second, treating x86 machines as load/store architectures passes up the opportunity to achieve improved code density and increased execution bandwidth from "microfusion" - this is when a operation (e.g. "add") is done with a memory operand. Microfusion, for those not familiar with it, allows two "micro-ops" (aka uops) that originate from the same instruction to be "fused" - that is, issued and retired together (even though they are executed separately).

This can occasionally - in code that has already been militantly tuned to an inch of its life - yield speedups, as Skylake and similar can only issue and retire 4 uops per cycle. However, there are 8 execution ports (of which only 4 do traditional 'computation'). Carefully designed code can take advantage of the fact that issue/retire are in the "fused domain" while execute is "unfused domain" - so you can sometimes get 4 computations and 1 load per cycle even on a 4-issue machine.

I was trained on MIPS and Alpha, so of course old habits die hard, and it's always tempting to go old school and design everything to act as if the underlying machine is a load-store architecture. However, this (a) isn't necessary on x86 and (b) often won't be faster.

The other blow against load-store is that a modern o-o-o architecture can hoist the load and separate it from the use anyway - and it doesn't have to consume a named register to do it (it will use a physical register, of course, but x86 has way more physical registers than it has names for registers). This of course is a bigger deal for the rather impoverished register count of x86 so it is, in the words of a former Intel colleague on a different topic, a "cure for a self-inflicted injury".

Re: Is MIPS Dead? Lawsuit, Bankruptcy, Maintainers Leaving and More

#66

Earlier quoted context omitted.

There's nothing much that's CISC-like about ARM, MIPS or RISC-V. Even many μC architectures are closer to "RISC" than "CISC", though there's at least some room for exceptions there.

> There's nothing much that's CISC-like about ARM, I struggle to think that ARM can really be called reduced-instruction after neon or so.

RISC has never been about reduced number of instructions, but their complexity. A SIMD extension built around load/store architecture is quite compatible with the principles of RISC, despite the fact that such an extension might have very numerous instructions.

Re: Is MIPS Dead? Lawsuit, Bankruptcy, Maintainers Leaving and More

#67
post #52

Earlier quoted context omitted.

It's also a hindrance to in-order implementations that have a different number of branch delay cycles (e.g. different number of pipeline stages or instructions taking a variable number of cycles) than the original implementation. Branch delay slots were a somewhat clever solution to reduce the complexity of the original implementation, but they baked implementation details into the ISA and became problematic when the…

> they baked implementation details into the ISA and became problematic when the implementation details changed. Same reason why stuff like VLIW has failed to catch on. These things are so dependent on specific hardware implementation details that one can hardly call them general-purpose ISA's anymore.

Moderns GPUs are VLIW machines.

Re: Is MIPS Dead? Lawsuit, Bankruptcy, Maintainers Leaving and More

#68
post #7

Earlier quoted context omitted.

> IIRC, Windows NT was developed on a MIPS machine to ensure that inadvertent x86 dependencies did not sneak into the code. Not MIPS. Windows NT was initially developed on a more obscure RISC architecture, Intel i860. It was later ported to MIPS though.

And ported to DEC Alpha too! It's one of my weirdly favorite ports of NT just because of how little use I believe it ever actually got.

I've seen live Alpha installations of windows NT driving RIPs at large format printing shops in the 90s. It was also not unheard of at VMS shops.

Re: Is MIPS Dead? Lawsuit, Bankruptcy, Maintainers Leaving and More

#70

Earlier quoted context omitted.

> they baked implementation details into the ISA and became problematic when the implementation details changed. Same reason why stuff like VLIW has failed to catch on. These things are so dependent on specific hardware implementation details that one can hardly call them general-purpose ISA's anymore.

Moderns GPUs are VLIW machines.

DSPs as well.
Post reply on HN