Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

IA-64

From Wikipedia, the free encyclopedia
Microprocessor instruction set architecture
Not to be confused withx86-64, AMD's 64-bit extension of the IA-32 ISA.
Intel Itanium architecture
DesignerHP andIntel
Bits64-bit
Introduced2001
DesignEPIC
TypeLoad–store
EncodingFixed
BranchingCondition register
EndiannessSelectable
Registers
General-purpose128 (64 bits plus 1trap bit; 32 are static, 96 useregister windows); 64 1-bit predicate registers
Floating-point128

IA-64 (Intel Itanium architecture) is theinstruction set architecture (ISA) of the discontinuedItanium family of 64-bitIntelmicroprocessors. The basic ISA specification originated atHewlett-Packard (HP), and was subsequently implemented by Intel in collaboration with HP. The first Itanium processor,codenamedMerced, was released in 2001.

The Itanium architecture is based on explicitinstruction-level parallelism, in which thecompiler decides which instructions to execute in parallel. This contrasts withsuperscalar architectures, which depend on the processor to manage instruction dependencies at runtime. In all Itanium models, up to and includingTukwila, cores execute up to sixinstructions per cycle.

In 2008, Itanium was the fourth-most deployed microprocessor architecture forenterprise-class systems, behindx86-64,Power ISA, andSPARC.[1]

In 2019, Intel announced the discontinuation of the last supported CPUs for the IA-64 architecture.Microsoft Windows versions from Server 2003[2] to Server 2008 R2[3] supported IA-64; later versions did not support it. TheLinux kernel supported it for much longer but dropped support by version 6.7 in 2024 (while still supported in Linux 6.6LTS). Only a few other operating systems, such asHP-UX,OpenVMS, andFreeBSD, ever supported IA-64; HP-UX's support ended in December 2025; OpenVMS still supports it, but FreeBSD discontinued support in FreeBSD 11.

History

[edit]
The Intel Itanium architecture

Development

[edit]

In 1989, HP began to become concerned thatreduced instruction set computing (RISC) architectures were approaching a processing limit at oneinstruction per cycle. Both Intel and HP researchers had been exploring computer architecture options for future designs and separately began investigating a new concept known asvery long instruction word (VLIW)[4] which came out of research byYale University in the early 1980s.[5]

VLIW is a computer architecture concept (like RISC andCISC) where a single instruction word contains multiple instructions encoded in one very long instruction word to facilitate the processor executing multipleinstructions in each clock cycle. Typical VLIW implementations rely heavily on sophisticated compilers to determine at compile time which instructions can be executed at the same time and the proper scheduling of these instructions for execution and also to help predict the direction of branch operations. The value of this approach is to do more useful work in fewer clock cycles and to simplify processor instruction scheduling and branch prediction hardware requirements, with a penalty in increased processor complexity, cost, and energy consumption in exchange for faster execution.

Production

[edit]

During this time, HP had begun to believe that it was no longer cost-effective for individual enterprise systems companies such as itself to develop proprietary microprocessors. Intel had also been researching several architectural options for going beyond the x86 ISA to address high-end enterprise server and high-performance computing (HPC) requirements.

Intel and HP partnered in 1994 to develop the IA-64 ISA, using a variation of VLIW design concepts which Intel namedexplicitly parallel instruction computing (EPIC). Intel's goal was to leverage the expertise HP had developed in their early VLIW work along with their own to develop a volume product line targeted at the aforementioned high-end systems that could be sold to all original equipment manufacturers (OEMs), while HP wished to be able to purchase off-the-shelf processors built using Intel's volume manufacturing and contemporary process technology that were better than their PA-RISC processors.

Intel took the lead on the design and commercialization process, while HP contributed to the ISA definition, the Merced/Itanium microarchitecture, and Itanium 2. The original goal year for delivering the first Itanium family product, Merced, was 1998.[4]

Marketing

[edit]

Intel's product marketing and industry engagement efforts were substantial and achieved design wins with the majority of enterprise server OEMs, including those based on RISC processors at the time. Industry analysts predicted that IA-64 would dominate in servers, workstations, and high-end desktops, and eventually supplant both RISC and CISC architectures for all general-purpose applications.[6][7]Compaq andSilicon Graphics decided to abandon further development of theAlpha andMIPS architectures respectively in favor of migrating to IA-64.[8]

By 1997, it was apparent that the IA-64 architecture and the compiler were much more difficult to implement than originally thought, and the delivery of Itanium began slipping.[9] Since Itanium was the first ever EPIC processor, the development effort encountered more unanticipated problems than the team was accustomed to. In addition, the EPIC concept depended on compiler capabilities that had never been implemented before, so more research was needed.[10]

Several groups developed operating systems for the architecture, includingMicrosoft Windows,Unix andUnix-like systems such asLinux,HP-UX,FreeBSD,Solaris,[11][12][13]Tru64 UNIX,[8] andMonterey/64[14] (the last three were canceled before reaching the market). In 1999, Intel led the formation of an open-source industry consortium to port Linux to IA-64 they named "Trillium" (and later renamed "Trillian" due to a trademark issue), which was led by Intel and includedCaldera Systems,CERN,Cygnus Solutions, Hewlett-Packard, IBM,Red Hat,SGI,SuSE,TurboLinux andVA Linux Systems. As a result, a working IA-64 Linux was delivered ahead of schedule and was the first OS to run on the new Itanium processors.

Intel announced the official name of the processor,Itanium, on October 4, 1999.[15] Within hours, the nameItanic had been coined on aUsenet newsgroup as apun on the nameTitanic, the "unsinkable"ocean liner that sank on its maiden voyage in 1912.[16]

The very next day on 5th October 1999, AMD announced their plans to extend Intel's x86 instruction set to include a fully downward compatible 64-bit mode, additionally revealing AMD's newly coming x86 64-bit architecture, which the company had already worked on, to be incorporated into AMD's upcoming eighth-generation microprocessor, code-namedSledgeHammer.[17] AMD also signaled a full disclosure of the architecture's specifications and further details to be available in August 2000.[18]

As AMD was never invited to be a contributing party for the IA-64 architecture and any kind of licensing seemed unlikely, AMD'sAMD64 architecture-extension was positioned from the beginning as an evolutionary way to add64-bit computing capabilities to the existing x86 architecture, while still supporting legacy 32-bit x86code, as opposed to Intel's approach of creating an entirely new, completely x86-incompatible 64-bit architecture with IA-64.

End of life

[edit]

In January 2019, Intel announced that Kittson would be discontinued, with a last order date of January 2020, and a last ship date of July 2021.[19][20] In November 2023, IA-64 support was removed from theLinux kernel and is since then maintainedout-of-tree.[21][22][23]

Architecture

[edit]

Intel has extensively documented the Itaniuminstruction set[24] and the technical press has provided overviews.[6][9]

The architecture has been renamed several times during its history. HP originally called itPA-WideWord. Intel later called itIA-64, thenItanium Processor Architecture (IPA),[25] before settling onIntel Itanium Architecture, but it is still widely referred to asIA-64.

It is a 64-bit register-rich explicitly parallel architecture. The base data word is 64 bits, byte-addressable. Thelogical address space is 264 bytes. The architecture implementspredication,speculation, andbranch prediction. It uses variable-sized register windowing for parameter passing. The same mechanism is also used to permit parallel execution of loops. Speculation, prediction, predication, and renaming are under control of the compiler: each instruction word includes extra bits for this. This approach is the distinguishing characteristic of the architecture.

The architecture implements a large number of registers:[26][27][28]

  • 128 general integerregisters, which are 64-bit plus one trap bit ("NaT", which stands for "not a thing") used forspeculative execution. 32 of these are static, the other 96 are stacked using variably-sizedregister windows, or rotating for pipelined loops.gr0 always reads 0.
  • 128floating-point registers. The floating-point registers are 82 bits long to preserve precision for intermediate results. Instead of a dedicated "NaT" trap bit like the integer registers, floating-point registers have a trap value called "NaTVal" ("Not a Thing Value"), similar to (but distinct from)NaN. These also have 32 static registers and 96 windowed or rotating registers.fr0 always reads +0.0, andfr1 always reads +1.0.
  • 64 one-bit predicate registers. These have 16 static registers and 48 windowed or rotating registers.pr0 always reads 1 (true).
  • 8 branch registers, for the addresses of indirect jumps.br0 is set to the return address when a function is called withbr.call.
  • 128 special purpose (or "application") registers, which are mostly of interest to the kernel and not ordinary applications. For example, one register calledbsp points to the second stack, which is where the hardware will automatically spill registers when the register window wraps around.

Each 128-bit instruction word is called abundle, and contains threeslots each holding a 41-bitinstruction, plus a 5-bittemplate indicating which type of instruction is in each slot. Those types are M-unit (memory instructions), I-unit (integer ALU, non-ALU integer, or long immediate extended instructions), F-unit (floating-point instructions), or B-unit (branch or long branch extended instructions). The template also encodesstops which indicate that a data dependency exists between data before and after the stop. All instructions between a pair of stops constitute aninstruction group, regardless of their bundling, and must be free of many types of data dependencies; this knowledge allows the processor to execute instructions in parallel without having to perform its own complicated data analysis, since that analysis was already done when the instructions were written.

Within each slot, all but a few instructions are predicated, specifying a predicate register, the value of which (true or false) will determine whether the instruction is executed. Predicated instructions which should always execute are predicated onpr0, which always reads as true.

The IA-64 assembly language and instruction format was deliberately designed to be written mainly by compilers, not by humans. Instructions must be grouped into bundles of three, ensuring that the three instructions match an allowed template. Instructions must issue stops between certain types of data dependencies, and stops can also only be used in limited places according to the allowed templates.

Instruction execution

[edit]

The fetch mechanism can read up to two bundles per clock from the L1cache into the pipeline. When the compiler can take maximum advantage of this, the processor can execute six instructions per clock cycle. The processor has thirty functional execution units in eleven groups. Each unit can execute a particular subset of theinstruction set, and each unit executes at a rate of one instruction per cycle unless execution stalls waiting for data. While not all units in a group execute identical subsets of the instruction set, common instructions can be executed in multiple units.

The execution unit groups include:

  • Six general-purpose ALUs, two integer units, one shift unit
  • Four data cache units
  • Six multimedia units, two parallel shift units, one parallel multiply, onepopulation count
  • Two 82-bit floating-pointmultiply–accumulate units, twoSIMD floating-point multiply–accumulate units (two 32-bit operations each)[29]
  • Three branch units

Ideally, the compiler can often group instructions into sets of six that can execute at the same time. Since the floating-point units implement amultiply–accumulate operation, a single floating-point instruction can perform the work of two instructions when the application requires a multiply followed by an add: this is very common in scientific processing. When it occurs, the processor can execute fourFLOPs per cycle. For example, the 800 MHz Itanium had a theoretical rating of 3.2 GFLOPS and the fastest Itanium 2, at 1.67 GHz, was rated at 6.67 GFLOPS.

In practice, the processor may often be underutilized, with not all slots filled with useful instructions due to e.g. data dependencies or limitations in the available bundle templates. The densest possible code requires 42.6 bits per instruction, compared to 32 bits per instruction on traditional RISC processors of the time, and no-ops due to wasted slots further decrease the density of code. Additional instructions for speculative loads and hints for branches and cache are impractical to generate optimally, because a compiler cannot predict the contents of the different cache levels on a system running multiple processes and taking interrupts.

Memory architecture

[edit]

From 2002 to 2006, Itanium 2 processors shared a common cache hierarchy. They had 16 KB of Level 1 instruction cache and 16 KB of Level 1 data cache. The L2 cache was unified (both instruction and data) and is 256 KB. The Level 3 cache was also unified and varied in size from 1.5 MB to 24 MB. The 256 KB L2 cache contains sufficient logic to handlesemaphore operations without disturbing the mainarithmetic logic unit (ALU).

Main memory is accessed through abus to an off-chipchipset. The Itanium 2 bus was initially called the McKinley bus, but is now usually referred to as the Itanium bus. The speed of the bus has increased steadily with new processor releases. The bus transfers 2×128 bits per clock cycle, so the 200 MHz McKinley bus transferred 6.4 GB/s, and the 533 MHz Montecito bus transfers 17.056 GB/s[30]

Architectural changes

[edit]
"Intel VT-i" redirects here. For the x86 virtualization extensions, seeIntel VT-x.

Itanium processors released prior to 2006 had hardware support for theIA-32 architecture to permit support for legacy server applications, but performance for IA-32 code was much worse than for native code and also worse than the performance of contemporaneous x86 processors. In 2005, Intel developed theIA-32 Execution Layer (IA-32 EL), a software emulator that provides better performance. With Montecito, Intel therefore eliminated hardware support for IA-32 code.

In 2006, with the release ofMontecito, Intel made a number of enhancements to the basic processor architecture including:[31]

  • Hardware multithreading: Each processor core maintains context for two threads of execution. When one thread stalls during memory access, the other thread can execute. Intel calls this "coarse multithreading" to distinguish it from the "hyper-threading technology" Intel integrated into somex86 andx86-64 microprocessors.
  • Hardware support forvirtualization: Intel added Intel Virtualization Technology (Intel VT-i), which provides hardware assists for core virtualization functions. Virtualization allows a software "hypervisor" to run multiple operating system instances on the processor concurrently.
  • Cache enhancements: Montecito added a split L2 cache, which included a dedicated 1 MB L2 cache for instructions. The original 256 KB L2 cache was converted to a dedicated data cache. Montecito also included up to 12 MB of on-die L3 cache.

See also

[edit]

References

[edit]
  1. ^Morgan, Timothy (2008-05-27)."The Server Biz Enjoys the X64 Upgrade Cycle in Q1".IT Jungle.Archived from the original on 2016-03-03. Retrieved2008-10-29.
  2. ^"Windows Server 2003 - BetaWiki".
  3. ^https://betawiki.net/wiki/Windows_Server_2008_R2
  4. ^ab"Inventing Itanium: How HP Labs Helped Create the Next-Generation Chip Architecture".HP Labs. June 2001. Archived fromthe original on 2012-03-04. Retrieved2007-03-23.
  5. ^Fisher, Joseph A. (1983). "Very Long Instruction Word architectures and the ELI-512".Proceedings of the 10th annual international symposium on Computer architecture. International Symposium on Computer Architecture. New York, NY, USA:Association for Computing Machinery (ACM). pp. 140–150.doi:10.1145/800046.801649.ISBN 0-89791-101-6.
  6. ^abDe Gelas, Johan (2005-11-09)."Itanium–Is there light at the end of the tunnel?".AnandTech. Archived fromthe original on 2012-05-03. Retrieved2007-03-23.
  7. ^Takahashi, Dean (2009-05-08)."Exit interview: Retiring Intel chairman Craig Barrett on the industry's unfinished business".VentureBeat.Archived from the original on 2018-04-21. Retrieved2009-05-17.
  8. ^ab"Itanium: A cautionary tale".Tech News on ZDNet. 2005-12-07. Archived fromthe original on 2008-02-09. Retrieved2007-11-01.
  9. ^abShankland, Stephen (1999-07-08)."Intel's Merced chip may slip further".CNET News.Archived from the original on 2012-10-24. Retrieved2008-10-16.
  10. ^"Microprocessors — VLIW, The Past"(PDF).NY University. 2002-04-18.Archived(PDF) from the original on 2018-06-27. Retrieved2018-06-26.
  11. ^Vijayan, Jaikumar (1999-09-01)."Solaris for IA-64 coming this fall".Computerworld. Archived fromthe original on 2000-01-15.
  12. ^Wolfe, Alexander (1999-09-02)."Core-logic efforts under way for Merced".EE Times. RetrievedOctober 26, 2025.
  13. ^"Sun Introduces Solaris Developer Kit for Intel to Speed Development of Applications On Solaris; Award-winning Sun Tools Help ISVs Easily Develop for Solaris on Intel Today".Business Wire. 1998-03-10. Archived fromthe original on 2004-09-20. Retrieved2008-10-16.
  14. ^"Next-generation chip passes key milestone".CNET News.com. 1999-09-17. Archived fromthe original on 2011-08-09. Retrieved2007-11-01.
  15. ^Kanellos, Michael (1999-10-04)."Intel names Merced chip Itanium".CNET News.com.Archived from the original on 2015-12-30. Retrieved2007-04-30.
  16. ^Finstad, Kraig (1999-10-04)."Re:Itanium".Newsgroupcomp.sys.mac.advocacy. Retrieved2013-12-19.
  17. ^"AMD Discloses New Technologies At Microporcessor Forum" (Press release). AMD. October 5, 1999. Archived fromthe original on March 8, 2012. RetrievedAugust 15, 2022.
  18. ^"AMD Releases x86-64 Architectural Specification; Enables Market Driven Migration to 64-Bit Computing" (Press release). AMD. August 10, 2000. Archived fromthe original on March 8, 2012. RetrievedAugust 15, 2022.
  19. ^Anton Shilov (January 31, 2019)."Intel to Discontinue Itanium 9700 'Kittson' Processor, the Last of the Itaniums".AnandTech. Archived fromthe original on April 16, 2019. RetrievedApril 16, 2019.
  20. ^"Product Change Notification"(PDF). January 30, 2019.Archived(PDF) from the original on February 1, 2019. RetrievedMay 9, 2019.
  21. ^Larabel, Michael (2 November 2023)."Intel Itanium IA-64 Support Removed With The Linux 6.7 Kernel".www.phoronix.com. Phoronix. Retrieved4 November 2023.
  22. ^"linux-ia64".GitHub. RetrievedOctober 1, 2024.Maintenance and development of the Linux operating system for Intel Itanium architecture (IA-64)
  23. ^"EPIC Linux". RetrievedOctober 1, 2024.
  24. ^"Intel Itanium Architecture Software Developer's Manual". Archived fromthe original on 2019-04-08. Retrieved2019-04-08.
  25. ^"HPWorks Newsletter". September 2001. Archived fromthe original on 2008-11-20. Retrieved2008-01-24.
  26. ^Chen, Raymond (2015-07-27)."The Itanium processor, part 1: Warming up".Archived from the original on 2018-11-01. Retrieved2018-10-31.
  27. ^Chen, Raymond (2015-07-28)."The Itanium processor, part 2: Instruction encoding, templates, and stops".Archived from the original on 2018-11-01. Retrieved2018-10-31.
  28. ^Chen, Raymond (2015-07-29)."The Itanium processor, part 3: The Windows calling convention, how parameters are passed".Archived from the original on 2018-11-01. Retrieved2018-10-31.
  29. ^Sharangpani, Harsh; Arora, Ken (2000). "Itanium Processor Microarchitecture".IEEE Micro. pp. 38–39.
  30. ^Cataldo, Anthony (2001-08-30)."Intel outfits Itanium processor for faster runs".EE Times.Archived from the original on 2020-08-01. Retrieved2020-01-19.
  31. ^"Intel product announcement".Intel web site. Archived fromthe original on November 7, 2007. Retrieved2007-05-16.

External links

[edit]
Lists
Microarchitectures
IA-32 (32-bit x86)
x86-64 (64-bit)
x86ULV
Current products
x86-64 (64-bit)
Discontinued
BCD oriented (4-bit)
pre-x86 (8-bit)
Earlyx86 (16-bit)
x87 (externalFPUs)
8/16-bit databus
8087 (1980)
16-bit databus
80C187
80287
80387SX
32-bit databus
80387DX
80487
IA-32 (32-bit x86)
x86-64 (64-bit)
Other
Related
Authority control databases: NationalEdit this at Wikidata
Retrieved from "https://en.wikipedia.org/w/index.php?title=IA-64&oldid=1330699371"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp