Hacker News new | comments | show | ask | jobs | submit login

He disagreed with their technical staff about how to design a mainframe.

The technical staff said that the operating system should run on microcode to abstract away the hardware. That way it would be easier for customers to migrate to new hardware as it became available. And they could easily add a new instruction if they needed to.

Gene said that it would be an order of magnitude faster if it ran directly on the hardware, and it wasn't that hard to support that API going forward.

Both proved right. Gene built computers that were massively faster than IBM's and perfectly compatible. IBM then added an instruction in micro-code and made all of their software use it. Gene's installed base all crashed on IBM's new code, while IBM's was fine. The US government launched an anti-trust lawsuit, which wound up binding IBM's hands for many years after.

IBM mainframes today still run on micro-code. And it still makes them massively slower than they need to be, but with better backwards compatibility. The mainframe world depends on a lot of programs from the 1960s and 1970s that runs, unchanged, today. Everyone else is using native instructions and runs faster.




I think you imply this, but to make it explicit: IBM mainframes run some instructions in microcode, others are native. The ones that are native are not slowed down by the existence of the microcode engine.

IBM analyzed programs-in-use to figure out which instructions bottlenecked real programs. These were the ones prioritized into native hardware. Others, where the bottleneck wasn't the central processor--like moving a block of memory from one location to another--were executed in microcode (at least back in the day: I was one of the engineers on the S/390 microcode engine.)


A good opportunity to mention the Popek-Goldberg criteria. If Amdahl's machines had been able to efficiently trap on the use of the new instruction (and execute a workaround using their existing instruction set) they might have been OK. Depends what the instruction was used for. Popek-Goldberg discusses the case where you want to virtualise your hardware: instruction set design becomes really important.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: