[go: nahoru, domu]

Jump to content

Heterogeneous Element Processor

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Dysprosia (talk | contribs) at 07:15, 24 April 2004 (bt). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Heterogeneous Element Processor (HEP) was introduced by Denelcor in 1982 as the world's first commercial MIMD computer. A HEP system, as the name implies, was pieced together from many heterogeneous components -- processors, data memory modules, and I/O modules. The components were connected via a switched network.

A single processor in a HEP system (up to sixteen could be connected) was rather unconventional; via a "program status word (PSW) queue," up to fifty processes could be maintained in hardware at once. The eight-statge instruction pipeline allowed instructions from eight different processes to proceed at once. In fact, only one instruction from a given process was allowed to be present in the pipeline at any point in time; therefore, the full processor throughput of 10 MIPS could only be achieved when eight or more processes were active; no single process could achieve throughput greater than 1.25 MIPS.

The processes were classified as either user-level or supervisor-level; user-level processes could create supervisor-level processes, which were used to manage user-level processes and perform I/O. Processes of the same class must be grouped into one of seven user tasks and seven supervisor tasks; tasks could be grouped further into jobs, which were able to run on multiple processors.

Each processor, in addition to the PSW queue and instruction pipeline, contained instruction memory, 2,048 64-bit general purpose registers and 4,096 constant registers. Constant registers were differentiated by the fact that only supervisor processes could modify their contents. Interestingly, the processors themselves contained no data memory; instead, data memory modules could be separately attached to the switched network.

The HEP implemented a type of mutual exclusion in which all registers and all locations in data memory had associated "empty" and "full" states. Reading from a location set the state to "empty," while writing to it set the state to "full." A programmer could allow processes to halt after trying to read from an empty location or write to a full location, enforcing critical sections.

The switched network between elements resembles, in many ways, a modern computer network. On the network are sets of nodes, each of which has three links. When a packet arrives at a node, it consults a routing table and attempts to forward the packet closer to its destination. If a node becomes congested, any incoming packets are passed on without routing. Packets treated in such a manner have their priority level increased; when several packets vie for a node, a packet with a higher priority level will be routed before one with the same priority level.