Explicitly parallel instruction computing
   HOME

TheInfoList



OR:

Explicitly parallel instruction computing (EPIC) is a term coined in 1997 by the HP–Intel alliance to describe a computing paradigm that researchers had been investigating since the early 1980s. This paradigm is also called ''Independence'' architectures. It was the basis for
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
and HP development of the Intel
Itanium Itanium (; ) is a discontinued family of 64-bit computing, 64-bit Intel microprocessors that implement the Intel Itanium architecture (formerly called IA-64). The Itanium architecture originated at Hewlett-Packard (HP), and was later jointly dev ...
architecture, and HP later asserted that "EPIC" was merely an old term for the Itanium architecture. EPIC permits microprocessors to execute software instructions in parallel by using the
compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
, rather than complex on- die circuitry, to control parallel instruction execution. This was intended to allow simple performance scaling without resorting to higher
clock frequencies Clock rate or clock speed in computing typically refers to the frequency at which the clock generator of a Microprocessor, processor can generate Clock signal, pulses used to Synchronization (computer science), synchronize the operations of it ...
.


Roots in VLIW

By 1989, researchers at HP recognized that
reduced instruction set computer In electronics and computer science, a reduced instruction set computer (RISC) is a computer architecture designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a com ...
(RISC) architectures were reaching a limit at one
instruction per cycle In computer architecture, instructions per cycle (IPC), commonly called instructions per clock, is one aspect of a processor's performance: the average number of instructions executed for each clock cycle. It is the multiplicative inverse of ...
. They began an investigation into a new architecture, later named EPIC. The basis for the research was
VLIW Very long instruction word (VLIW) refers to instruction set architectures that are designed to exploit instruction-level parallelism (ILP). A VLIW processor allows programs to explicitly specify instructions to execute in parallel computing, para ...
, in which multiple operations are encoded in every instruction, and then processed by multiple execution units. One goal of EPIC was to move the complexity of instruction scheduling from the CPU hardware to the software
compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
, which can do the instruction scheduling statically (with help of trace feedback information). This eliminates the need for complex scheduling circuitry in the CPU, which frees up space and power for other functions, including additional execution resources. An equally important goal was to further exploit
instruction-level parallelism Instruction-level parallelism (ILP) is the Parallel computing, parallel or simultaneous execution of a sequence of Instruction set, instructions in a computer program. More specifically, ILP refers to the average number of instructions run per st ...
(''ILP'') by using the compiler to find and exploit additional opportunities for parallel execution. ''VLIW'' (at least the original forms) has several short-comings that precluded it from becoming mainstream: * VLIW
instruction set In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, s ...
s are not
backward compatible In telecommunications and computing, backward compatibility (or backwards compatibility) is a property of an operating system, software, real-world product, or technology that allows for interoperability with an older legacy system, or with inpu ...
between implementations. When wider implementations (more
execution unit In computer engineering, an execution unit (E-unit or EU) is a part of a processing unit that performs the operations and calculations forwarded from the instruction unit. It may have its own internal control sequence unit (not to be confused w ...
s) are built, the instruction set for the wider machines is not backward compatible with older, narrower implementations. * Load responses from a
memory hierarchy In computer architecture, the memory hierarchy separates computer storage into a hierarchy based on response time. Since response time, complexity, and capacity are related, the levels may also be distinguished by their performance and contr ...
which includes
CPU cache A CPU cache is a hardware cache used by the central processing unit (CPU) of a computer to reduce the average cost (time or energy) to access data from the main memory. A cache is a smaller, faster memory, located closer to a processor core, whi ...
s and
DRAM Dram, DRAM, or drams may refer to: Technology and engineering * Dram (unit), a unit of mass and volume, and an informal name for a small amount of liquor, especially whisky or whiskey * Dynamic random-access memory, a type of electronic semicondu ...
do not have a deterministic delay. This makes static scheduling of load instructions by the compiler very difficult. EPIC architecture evolved from VLIW architecture, but retained many concepts of the
superscalar A superscalar processor (or multiple-issue processor) is a CPU that implements a form of parallelism called instruction-level parallelism within a single processor. In contrast to a scalar processor, which can execute at most one single in ...
architecture.


Moving beyond VLIW

''EPIC'' architectures add several features to get around the deficiencies of VLIW: * Each group of multiple software instructions is called a ''bundle''. Each of the bundles has a
stop bit Asynchronous serial communication is a form of serial communication in which the communicating endpoints' interfaces are not continuously synchronized by a common clock signal. Synchronization ( clock recovery) is done by data-embedded signal ...
indicating if this set of operations is depended upon by the subsequent bundle. With this capability, future implementations can be built to issue multiple bundles in parallel. The dependency information is calculated by the compiler, so the hardware does not have to perform operand dependency checking. * A software prefetch instruction is used as a type of data prefetch. This prefetch increases the chances for a cache hit for loads, and can indicate the degree of temporal locality needed in various levels of the cache. * A speculative load instruction is used to speculatively load data before it is known whether it will be used (bypassing control dependencies), or whether it will be modified before it is used (bypassing data dependencies). * A check load instruction aids speculative loads by checking whether a speculative load was dependent on a later store, and thus must be reloaded. The ''EPIC'' architecture also includes a ''grab-bag'' of architectural concepts to increase ''ILP'': * Predicated execution is used to decrease the occurrence of branches and to increase the
speculative execution Speculative execution is an optimization (computer science), optimization technique where a computer system performs some task that may not be needed. Work is done before it is known whether it is actually needed, so as to prevent a delay that woul ...
of instructions. In this feature, branch conditions are converted to predicate registers which are used to kill results of executed instructions from the side of the branch which is not taken. * Delayed exceptions, using a not a thing bit within the general purpose registers, allow speculative execution past possible exceptions. * Very large architectural
register file A register file is an array of processor registers in a central processing unit (CPU). The instruction set architecture of a CPU will almost always define a set of registers which are used to stage data between memory and the functional units on ...
s avoid the need for
register renaming In computer architecture, register renaming is a technique that abstracts logical processor register, registers from physical registers. Every logical register has a set of physical registers associated with it. When a machine language instructio ...
. * Multi-way branch instructions improve branch prediction by combining many alternative branches into one bundle. The
Itanium Itanium (; ) is a discontinued family of 64-bit computing, 64-bit Intel microprocessors that implement the Intel Itanium architecture (formerly called IA-64). The Itanium architecture originated at Hewlett-Packard (HP), and was later jointly dev ...
architecture also added rotating register files, a tool useful for
software pipelining In computer science, software pipelining is a technique used to optimize loops, in a manner that parallels hardware pipelining. Software pipelining is a type of out-of-order execution, except that the reordering is done by a compiler (or in the ...
since it avoids having to manually unroll and rename registers.


Other research and development

There have been other investigations into EPIC architectures that are not directly tied to the development of the Itanium architecture: *The
IMPACT Impact may refer to: * Impact (mechanics), a large force or mechanical shock over a short period of time * Impact, Texas, a town in Taylor County, Texas, US Science and technology * Impact crater, a meteor crater caused by an impact event * Imp ...
project at
University of Illinois at Urbana–Champaign The University of Illinois Urbana-Champaign (UIUC, U of I, Illinois, or University of Illinois) is a public land-grant research university in the Champaign–Urbana metropolitan area, Illinois, United States. Established in 1867, it is the f ...
, led by Wen-mei Hwu, was the source of much influential research on this topic. *The PlayDoh architecture from HP-labs was another major research project. *
Gelato Gelato (; ; ) refers to a specific type of ice cream of Italian origin. In Italian, ''Gelato'' is the common word for all types of ice cream. Artisanal gelato in Italy generally contains 6–9% butterfat, which is lower than other styles of ...
was an open source development community in which academic and commercial researchers worked to develop more effective compilers for Linux applications running on Itanium servers.


See also

*
Complex instruction set computer A complex instruction set computer (CISC ) is a computer architecture in which single instructions can execute several low-level operations (such as a load from memory, an arithmetic operation, and a memory store) or are capable of multi-step ...
(CISC) *
Reduced instruction set computer In electronics and computer science, a reduced instruction set computer (RISC) is a computer architecture designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a com ...
(RISC) * Minimal instruction set computer (MISC) *
Very long instruction word Very long instruction word (VLIW) refers to instruction set architectures that are designed to exploit instruction-level parallelism (ILP). A VLIW processor allows programs to explicitly specify instructions to execute in parallel, whereas conve ...
(VLIW) * No instruction set computing *
One-instruction set computer A one-instruction set computer (OISC), sometimes referred to as an ultimate RISC, reduced instruction set computer (URISC), is an abstract machine that uses only one instructionobviating the need for a machine language opcode. With a judicious cho ...
* Computer architecture *
Superscalar A superscalar processor (or multiple-issue processor) is a CPU that implements a form of parallelism called instruction-level parallelism within a single processor. In contrast to a scalar processor, which can execute at most one single in ...
*
Wide-issue A wide-issue architecture is a computer processor that issues more than one instruction per clock cycle. They can be considered in three broad types: * Statically-scheduled superscalar architectures execute instructions in the order presented; ...


References


External links


Historical background for EPIC
* Mark Smotherman (2002)
Understanding EPIC Architectures and Implementations
{{DEFAULTSORT:Explicitly Parallel Instruction Computing Instruction processing Very long instruction word computing