Intel to Discontinue Itanium 9700 ‘Kittson’ Processor, the Last of the Itaniums
anandtech.com
anandtech.com
On the other hand, Itanium was ugly, but had its charm and uniqueness. Itanium is what EFI was first developed for. Itanium is where the C++ ABI got started.
Itanium being discontinued further reduces mainstream CPUs to the most boring, safe designs possible: IA32/amd64. ARM was kinda quirky (conditional execution, barrel shifter), but those were slowly neutered (by introducing Thumb), and then totally thrown out of the window with aarch64. SPARC is dead. PA-RISC is dead. RISC-V is new and promising, but is also the most pragmatic and safe design of an ISA ever. The Mill CPU is interesting, but is underfunded and I don't think it will ever be taped out.
Similar as with OS research (think: Solaris, Plan9/Inferno), researchy and experimental CPU ISAs seem to be a thing of the past now.
I don't think it's fair to say Kernel research is a thing of the past.
There’s nothing in it for anyone else.
Although I'm a little worried about driver performance, especially in cases when there's just ~100 microseconds time for the driver to react.
Giving Android away to OEMs is in large part a vector to get the Play store, Chrome, Maps, and their monetizable services and data scarfing on the device.
But some OEMs don't bundle everything. Think of the de-Googled Android variant ran by the Kindle Fire series, or the Chinese phones that include local stores and service providers that work there instead. Google can try to bludgeon them into playing ball with the trademark and various over-the-top agreements, but they can't stop them from saying "We'll take AOSP and make our own version and call it FireOS."
With full licensing control up and down the stack, they can close that door much tighter.
Also, similarly to Apple, GCC just got removed from Android.
Only the kernel is left.
Reading between the lines of some Joe Duffy posts, I think Midori was a victim of rise to power from WinDev after that whole Longhorn/Vista history, only to end with UWP slowly getting back all the .NET features that they decided to throw away on the initial version of WinRT.
Apparently post .NET Core 3.0 there will be some changes happening to .NET Native. It was briefly mentioned at Connect 2018, but they didn't wanted to precise what exactly.
The funniest part of Itanium for me was that it was supposedly helpful to compilers. Yet the compiler people I knew did not like to use the "helpful" parts of the ISA. The loop unrolling stuff got in the way of software pipelining, for example.
Mill is an example of a processor that's actually helpful to compilers, because its design is being led by an actual compiler person.
Well that kinda was the concept - but they greatly underestimated the difficulty of producing a "sufficiently smart compiler". If VLIW had worked it would have greatly simplified processor design, no (or at least much less) need to worry about cleverly handling out-of-order execution for example. That in turn would have meant e.g. bigger L1 caches because you would have the die space to play with, or more execution units, or whatever.
It didn't work out and Intel did make some stupid decisions along the way (also underestimating the importance of backwards compatibility with existing code - not only binaries, but you also needed to be able to compile existing source well) but it was worth a punt, and maybe will be again someday - maybe a DL-based compiler could produce good VLIW code? Maybe a new (or old) language will be more amenable to VLIW compilation than C?
I would say certainly, given Fran Allen's point of view on C compilers.
Somewhere around 3 disciplines? Nobody's using your system.
Such was the paradoxical brilliance of SQL and Excel. By limiting knowledge scope, they greatly enhanced utilization (and thereby utility).
Not sure it presents much of an advantage over any of the existing architectures, or RISC-V, though.
I am no expert on this, but my personal impression is that projects of this kind slowly try to migrate towards RISC-V.
There are some forked versions of the main zlib library with MIPS optimisations in them that really fly, but nothing that has ever hit upstream, and I'm not crazy enough to want to rely on unpatched/unsupported code like that.
Mind you, if nothing beyond the smallest silicon processes turns out to be practical then we might see attention turning back to re-thinking CPU architecture, but until then I think a lot of money will be spent looking at materials and manufacturing over interesting ISAs.
There are a lot of reasons. Open source, cloud providers, etc. But a big one is that you can't just depend on CMOS process shrinks to make processors faster. Therefore, your new design isn't necessarily going to be eclipsed by whatever new x86 CPU comes out in 12 months.
Real mode, Mod R/M and SIB byte encoding weirdness, REX prefixes, 80-bit floats, parity flag, hard-wired registers for shifts/multiplies/divisions, builtin CRC32 over the wrong polynomial, Pascal calling convention support, binary-coded decimal, high halves of 16-bit registers, MMX overlap with x87 floating point, etc. etc.
This is completely off topic, but I've seen things like the "^W^W" a few times before, and I don't know what it means.
Is this a weird encoding mismatch thing? is it from some editor/system that people instinctively type? Is it from some other forum which has a strange markup syntax for something?
'^W' is what would appear instead if you weren't in a readline/emacs editor, but instead a dumb line terminal. Thus, leaving '^W' behind makes it look like you didn't realize what you just corrected is still visible.
It's a joke. I've now explained and ruined it.
I've used Linux daily for like 15 years now, and I know about control characters, but since I never really used emacs (or readline beyond the copy+pasted command here or there) I just completely missed the meaning.
This readline behavior follows a Unix tty driver. I'm not sure off the top of my head which one introduced it. I don't think it was on xenix but am pretty sure some 4.x bsd had it.
In Unix line editors it is traditionally used to mean 'erase the previous word'.
See also documentation for ASCII (http://www.robelle.com/smugbook/ascii.html for example) for origins of ^C, ^D, ^S, etc.
And the RISC (possibly DEC Alpha "inspired") - https://en.wikipedia.org/wiki/Sunway_SW26010
As an aside, Merced too forever for Intel to tape out. Part of the agreements between HP and Intel was that they needed to ship chips for HP. As a result, Intel had to fab some of the last PA-RISC chips due to the schedule slip and contractual obligations.
I worked on some Itanium system software once upon a time.
I could argue it was doomed from the beginning as well for various technical reasons given how the industry evolved. But there's at least an argument that better time to market might have been enough to get established as a dominant 64-bit architecture.
Itanium was also, in many ways, designed for a world where ILP, rather than TLP, ruled. That distinction wouldn't become terribly important for a few more years but it would have eventually. Intel made a number of decisions in this vein. See also NetBurst Architecture. (An Intel exec told me, at some point after it had become obvious that multi-core was the future, that Microsoft had really pressured Intel to go down the few/fast cores route.)
If we switch from the "Every year the clock rate goes up 30%" model to "50% more cores every year", you're going to trigger the "recompile the universe" event. This is an esistential-level threat for the Microsoft of 15 years ago.
Microsoft's biggest selling point for years was the backwards compatibility. Keep running that old software forever, and the magic of Intel running the clock up means it still gets faster every year.
If that train stops, you may well think "if I have to rebuild anyway to support many-cores, why not do so on Linux?"
I'd be curious to hear why that had that outlook. Wasn't HP still doing gangbuster's business at that point? Or was it something else besides having the financial resources?
Fast-forward and now Linux is dominant and who even uses HP-UX or the other proprietary UNIXes?
It had 32 64bit FP registers that could also be used as 64 32bit registers or 16 128bit registers. For the time this was novel.
What is EFI here - extensible firmware interface? If so what is the connection between that and Itanium?
I think the i432 would be a worthy challenger to that title
Intel was writing architectural checks (bit-aligned instructions, capability-based permissions, "everything is an object") they couldn't cash (very, very bad performance).
I'm a software guy, so naturally I took a course in VLSI design in college. It was fun. This was maybe a year before the iAPX 432 was canceled; our teacher had some sample chips embedded in clear plastic, gewgaws handed out at some conference he'd been to. He passed them around one day in class, and they were huge and there were like four of them in the processor chipset. And I remember thinking "how the heck is that thing going to be fast with all that off-chip traffic?" And of course it wasn't.
Elliot Organick, of Multics fame, wrote a book about the 432 architecture. I just found it on my bookshelf and leafed through it again; I'd forgotten that all of his code examples were in Ada (another "big bet" at the time).
I’m legit confused. Are those supposed to be good things.
Well it may be a dumpster fire, but it is the finest, most consistent flame we've gotten from the firmware dumpster; which is why it is fast becoming the only standard firmware interface in actual use. UEFI is fast becoming the standard for ARMv8, it's creeping back to ARMv7, and it's becoming popular with RISC-V.
You will either learn to love it, or you will suffer forever. Mark my words, UEFI will still be booting your machine in 2040, when the President is literally a deep fake controlled by a troika of Jack Dorsey, Jeff Bezos, and Priscilla Chan.
We really just wanted a nice clean 64-bit BIOS, with all the datatypes 64-bit. The BIOS is pretty decent if you strip out redundant interfaces, segmentation, and never-used functionality. Adding extra functionality to firmware is madness. Firmware needs to initialize key hardware like RAM, load a boot loader, and get out of the way. Firmware doesn't need to be practically an OS.
The old 16-bit BIOS was actually working OK. Sure, it was nasty to program for, but almost nobody had to deal with that.
IMHO, as someone who cares about security, that's not necessarily a bad thing. (I do lament the passing of tagged architectures, but that ship sailed a long, long time ago.)
Solaris with SPARC ADI, Android with the upcoming ARM Memory Extensions are two examples of it.
https://www.pcmag.com/article2/0,2817,2339629,00.asp
> The MIPS chip, the DEC Alpha (perhaps the fastest chip of its era), and anything else in the pipeline were all cancelled or deemphasized. Why? Because Itanium was the future for all computing. Why bother wasting money on good ideas that didn't include it?
> The failure of this chip to do anything more than exist as a niche processor sealed the fate of Intel—and perhaps the entire industry, since from 1997 to 2001 everyone waited for the messiah of chips to take us all to the next level.
> It did that all right. It took us to the next level. But we didn't know that the next level was below us, not above. The next level was the basement, in fact. Hopefully Intel won't come up with any more bright ideas like the Itanium. We can't afford to excavate another level down.
AMD might well not exist. But, except for HP, the big Unix vendors mostly hedged their bets anyway. The large Japanese companies who also backed Itanium never were going to make the investments to break out beyond Japan.
Intel's good luck and heavy investment in shrinking node sizes also made it impossible for niche companies to keep up. They were doomed to be slow power hogs in their attempt to keep up with commodity x86 processors.
I'm stating this because I can't tell what you mean by:
"wasted effort went into Itanium. But we ended up with x86-64"
What I last statement meant was we ended up by an industry dominated by 64-bit x86 anyway in spite of all the effort that went into an alternative 64-bit architecture. So we’d probably be in a similar place had Intel just decided Itanium was a bad idea from the start.
it’s safe to say that Intel has some sort of contingency plan going back quite a while. Some analysts even thought they saw features in Pentium that suggested 64-bit readiness.
But it wasn’t until Opteron’s success and its adoption by esp. HP and Dell that Intel felt they needed to make their 64 bit extensions plan public.
Random aside: Itanic was HP's brainchild that was adopted and refined at Intel (and far from all of Intel was excited about that). Having experienced a VLIW that _didn't_ suck (the internal engine of Transmeta's Astro 2/Efficieon) I'm sad that EPIC/Itanic gives VLIW as bad name. However, the future belongs to RISC-V.
His schtick seems to be "angry man shouting about how new things suck."
He is the bizarro world version of Steven Levy: his default is why something is bad, instead of seeing the possibilities.
Itanium was really good at raw performance as long as you could write hand tuned math kernels or kept working with the compiler team to optimize code for your kernel. Took me a while, but I got 97% efficiency with single core DGEMM.
Were a lot of people trying? It was a pretty difficult platform to get hold of and tinker with.
It's kind of like trying to use a GPU for general purpose computation. Itanium should have been a coprocessor.
So, a lot like coding for the GPU. Makes sense, given that the low-level architecture is so similar... And it might explain why VLIW itself is not so widely used anymore. AIUI, even the Mill proposed architecture (which boils down to VLIW + lots of tricks to cheaply improve performance on typical workloads) has a hardware-dependent, low-level "compilation" step that's quite reminiscent of what a GPU driver has to do.
I’m also curious how this could have gone a generation later: Itanium performance was critically dependent on compilers in an era where they were expensive and every vendor made their own, and the open source movement was just taking off. It seems like things could have gone much better if that’d been, say, LLVM backend & tools and higher level libraries where someone could get updates without licensing costs and wouldn’t be in the common 90s situation of needing to choose between the faster compiler and the more correct one.
In my experience, it's pretty widely accepted that VLIW (and EPIC) can achieve high performance and efficiency on highly regular tasks such as GEMM and FFT. That's why VLIW has been and continues to be popular for DSPs. The struggle for VLIW is general purpose code that doesn't necessarily have that same kind of regularity.
I have to admit that as a DEC alpha user starting in 1993 (using OSF/1), and also one of the main FreeBSD/alpha port authors, the itanium being phased out fills me with joy.
Parallel Alpha systems are a pain to deal with, because they lack a form of expected synchronization that every other processor has: automatic data dependency barriers. On every other platform, if you initialize or otherwise write to a value, then make a pointer point to that value, you can expect that anyone reading through that pointer gets the initialized/new value. But on Alpha, another CPU can get the new value of the pointer and then the uninitialized/old value of what it points to.
Alpha is the sole reason why the Linux kernel "smp_read_barrier_depends" barrier exists and code has to use it; on every other platform, that barrier is a no-op.
I'd guess that back when the alpha memory model was designed multiprocessors were quite rare, and designers didn't have such a clear picture of the tradeoffs that we do today (not saying today's understanding is perfect, just that it's better than what we had 30 years ago), and chose the weakest possible model they could come up with in order to not constrain future designers.
Around the time that the Itanium project was announced (and had presumably been being worked on behind the scenes for quite a while) was when Compaq bought DEC. HP wouldn't buy Compaq until about 5 years later. So Itanium was already well underway by the time switching to Alpha would have been a remote possibility.
The sweet spot technically for me was probably later Solaris with things like zones and dtrace that nobody else had. The popularity of Solaris also made it much easier to find help from other people, Makefiles that just worked, SSL accelerator boards, etc. Ask anyone that worked with zones, for example, and we find all the buzz about docker and linux containers quite funny.
I probably hated AIX the most. It was tantalizingly close to other Unix implementations, but with enough differences that things would sort-of work, but not really. To be fair, there was a "right" way to do things that worked, but I was naturally trying to use knowledge I already had. It was also the platform most likely to bomb out when trying to compile open source software. Lots of tweaking makefiles, environment variables, compiler flags, etc, to get things to work. They had a sysadmin tool called "smitty" that I particularly hated.
I’m not really old enough to be an actual grey beard, but I got just enough hands-on experience with late-period Big Commercial Unix to feel like I at least swept floors and fetched coffee in the exclusive club. Cool, even if it was frustrating at times.
I guess that is the thing: we’ve settled into a monoculture that makes me deeply uncomfortable. NeXT won the desktop, but there’s only implementation. And Linux won the server. But in the meantime, I feel like only OpenBSD is credibly providing public infrastructure that everyone uses.
I kind of worry that we’re heading toward a world in which nobody really understands the guts of the systems that sit underneath modern cloud / containerized services. Furthermore, because that stuff isn’t as exciting as the Javascript framework de jure, the amount of innovation happening in the lower layers is nonexistent.
Edit: Well, also the security implications of the Linux/x86 monoculture.
Really? Mac OS has maybe 15% desktop market share.
In fact, I tend to develop on it since if it works on AIX it will be portable enough to work other places. That said, I like xlc performance but I despise its weird command line options. I mostly just use gcc on AIX also.
I do prefer smit to things like HP-UX sam, but I'm accustomed to IBM overengineering. ;)
One day I got an Itanium from Microsoft. It was fun to play with. Sadly I was forbidden from opening the server. It was so alpha that adjusting the clock would kill the server. It never went very far due to being so alpha.
Even though I haven't had to deal with Solaris in about a decade, and it being safe to do killall, it took me ages to break out of the habit of doing:
ps waxu | grep "[p]ython" | awk {'print $2'} | xargs killSo, intended for use by shutdown(1M) and nothing else. It's basically a completely different utility to the Linux one. They just happen to, unfortunately, share the same name.
AIX, if I remember right - it could have been HP/UX, seemed to be the one with the most broken out as extra cost options, like cc etc.
So Aix was the only UNIX where I was using import libraries and having to explicitly export which symbols should have been public.
The early 64-bit PC hardware was server grade, intended for NT and Linux. That set a standard, and then gradually people moved away from junk like Windows 98SE and Windows ME. Hardware bugs no longer had such an easy time hiding in a flood of software crashes.
https://www.pcworld.com/article/3196353/data-center/hpe-offe...
https://www.theregister.co.uk/2012/06/08/hp_ux_on_x86_projec...
We used it for a Clipper based management application.
My first task was bringing back to life our school labs network, so that we could use it for that application, got to love those coaxial cable terminators.
Man. So many memories of walking around the school with a cable tester trying to find where the ring had been broken this time.
I was so glad to see that ring network be retired.
I worked for an egovernment company several years ago. A state (county?) agency built a service with us, and wouldn't expose the actual database to us, just an SNA supporting interface. We were essentially scraping the data. Messy, unsanitised data. I really didn't envy the developer who looked after that particular application.
But now...you’re working on a product that is widely mocked and has no future, yet releases are still being made. How depressing...what causes someone to stay on?
Making spare parts for the B-52, or maintaining security fixes for Solaris (which has its fanatic fans) can be rewarding, no question. But to work on the Itanium any time in the last decade must have been soul-sucking.
Not everyone's identity is based on what they work on.
In that time frame, it wasn't clear that horizontal scale out architecture (aka "the cloud") was going to dominate, and that scale up systems were going the way of the mainframe. The thinking was that there would always be a healthy balance of scale out vs scale up, and btw, HP alone did $30B+ revenue yearly on scale up with very slow decline, just like the mainframe market, which is still $10B+, even today.
To put that in today's terms, if you pitched a startup with a $30B TAM, VCs will definitely be returning your emails.
So no, it wasn't embarrassing to talk about working on IPF any moreso than it would be to talk about POWER today. It's just another CPU architecture with some interesting properties but ultimately failed in the market place. Just like Transmeta or Lisp Machines.
What should be embarrassing, but clearly is not, is to slag off entire industries not knowing shit about them.
Edit: I think working on B-52 parts would be an amazingly fun job.
it comes from the people you are working with, and the people you are serving as customers, and whether these stakeholders are being treated well and having their needs met.
Intel and HP (where the people "supporting and incrementally enhancing" itanium hw & sw work) are very much Silicon Valley companies.
I've met lots of engineers who are deeply passionate, but I've also met plenty for whom it's really just a job.
http://www.oracle.com/us/corporate/features/itanium-346707.h...
I can see why it failed to gain mass traction, but that’s a shame. IA-64 was so innovative.
Intel knew that the x86 architecture was limited in time, and tried to kill it off with the the 64-bit Itanium.
AMD had a different plan, and released 64-bit capable x86 processors, obstructing Intel’s plans to dominate with Itanium. I think this is key to why Itanium never caught on, and why writing software for it is so hard.
Wikipedia has an updated version as well: https://upload.wikimedia.org/wikipedia/commons/8/88/Itanium_...