Intel Itanium

From DisNCord Community Wiki
Jump to navigation Jump to search

Intel Itanium (also called IA64[1], IA-64[2], I64[3], PA-WW[4] and IPF[5]) is a 64-bit processor architecture and corresponding processor family created by HP and Intel during the 90s and first released in 2001. Shipping with a significant delay, Itanium achieved moderate success between years 2002 and 2006, then slowly faded into obscurity, only kept alive for HP's Integrity platform running HP-UX, before it was finally discontinued in 2021[6]. Its most prominent feature is the use of VLIW-like explicit parallelism (EPIC), where the compiler selects which instructions should be run in parallel (instead of the CPU itself, as is common in RISC).

In the late 90s, Itanium was believed to be a revolutionary concept that will take over most areas on computing; because of that, many hardware and software vendors planned to support it, often abandoning their original architecture and porting their operating system to Itanium. These include IBM, SGI, DEC/Compaq, Bull, HP, SuperMicro, Sun, Dell, Tandem and Secure64. This led to Itanium being viewed by some as an unfortunate mistake that killed most RISC platforms[7] or even a conspiracy by Intel.

Itanium CPUs can be generally divided into three generations: Itanium 1, Itanium 2 and Itanium 9xxx. The 2001 Itanium 1, codenamed Merced, didn't deliver the expected performance - not many machines were made before it being replaced with Itanium 2 a year later. Itanium 2, codenamed McKinley, caught up and was adopted by many vendors including IBM, Dell and SGI, but that didn't last very long. Since the release of the first 9xxx CPU, codenamed Montecito, only SGI and Inspur continued to produce Itanium hardware, the latter going as far as 95xx Poulson CPUs in the Inspur TianSuo K1[8].

History

From Merced to Kittson.

Operating systems

Itanium-based systems support HP-UX (version 11.20 and higher), OpenVMS (8.0 and higher), Linux and SourceT Micro OS. In the past, it also supported Windows (from XP to Server 2008 R2), FreeBSD (from 5.0 to 10.4), NonStop OS and AIX (version 5L, also known by its codename Monterey). Unlike x86, Itanium support both big endian and little endian mode, which is used by many operating systems to keep their endianness the same as on other platforms. An exception to this is AIX, which is little endian on Itanium.

Compilers

GCC, MSVC, Open64, HP C (DEC), HP C/aCC, Intel C Compiler. Performance. Java.

Virtualization

On HP-UX, HP provides a hypervisor called Integrity Software Machines (also HPVM), capable of running HP-UX and OpenVMS, and for version 4.2 and older also Linux and Windows (later versions drop emulated IO and keep only paravirtualized IO, which is not supported outside HP-UX and VMS). On Linux, KVM and Xen are supported, but both were removed eventually, hence you need an older kernel for them.

The capabilities of virtualization on Itanium depend on whether your CPU has VT-I or not. Without VT-i, you can run Linux, Windows and HP-UX in HPVM, and Linux in Xen PV (only older versions with PV guest support). VT-i gives you in addition OpenVMS support on HPVM, together with KVM and Xen HV on Linux.

RHEL 5 can be easily used for both PV and HV Xen:

# subscription-manager repos --enable=rhel-5-server-vt-rpms
# subscription-manager repos --enable=rhel-5-server-supplementary-rpms
# yum install xen kernel-xen virt-manager libvirt libvirt-python python-virtinst xen-ia64-guest-firmware

Emulators

Itanium is one of the few architectures that does not have full QEMU host emulation support to this day. There is a qemu-system-ia64 to be used together with KVM[9], but with no CPU emulation. A DisNCord project related to AIX on Itanium is dedicated to implementing Merced guest support on QEMU. Another effort consists primarily of qemu-ia64 user target emulation, with an incomplete host target[10].

Originally, an emulator called ski was developed by HP to be used when real hardware was non-existent or rare[11]. It is able to run both IA-32 and IA-64 code, but it has some issues that make it impractical to use. The software was not updated for many years, leading to its user emulation to lack syscalls and making it tricky to compile on modern systems. Full host emulation is present, but very minimal, no real hardware is emulated, hence the guest OS has to specifically support the hardware emulated by ski. Also it ships with no firmware, which has to be provided together with a "bootloader" by the OS. While the Linux technically supports being built for ski and it has been run on ski as late as 2017[12], the build is broken for newer kernels.

Simics, a commercial emulator supporting multiple architectures, emulates Itanium, more specifically a Merced machine with a part of 82460GX chipset's functionality[13]. Its system emulation is more complete than that of ski, but it also supports only Linux, at least officially that is.

There is also an emulator from Intel called SoftSDV that can boot Windows and Linux[14], however it is not publicly available,

References