12.1 Classification of Computing Systems

The early development of computing hardware produced many one-of-a-kind designs that would certainly be difficult to classify for modern contexts. We mentioned the von Neumann and Harvard architectural treatments of memory as one very early design difference that still echoes today. More recently, the antipodal CISC and RISC design difference has provided another criterion for classification.

The inclusion of multiple processors has become standard in server systems and high-end workstations, and that feature has long roots in attempted classifications. In 1972, Flynn defined a problem as a stream (or sequence) of requests for service (or resources). A stream of requests can be specified as a program. Similarly, a stream of data is involved as a program executes.

Flynn proposed that analysis of the efficiency of computing systems for different applications could proceed from a correlation of the dimensionality of the instruction stream and the data stream, most simply whether each is single or multiple, as shown in Table 12-1.The SISD and SIMD categories are the most relevant to our present purposes. Overall, a personal computer is usually a single instruction stream, single data stream (SISD) computing system. It has one CPU, which processes a single data stream according to a single sequence of instructions.

In contrast, a single instruction stream, multiple data stream (SIMD) system would require simultaneous access to N data sets. This also suggests that data addressing of the N data sets would be partially implicit for example, some N adjacent elements in an array.

One important type of scientific supercomputer, such as the CRAY-1® and its successors, is an SIMD computing system. When mathematical operations on vectors and arrays are to be performed by a program, a special version of the compiler (e.g., FORTRAN) produces an instruction stream that controls an array processor feature of the computer hardware. Floating-point additions or multiplications take place in that hardware on several adjacent data elements simultaneously i.e., N additions at one time or N multiplications at some other time.

Table 12-1. Flynn's Qualitative Classification of Computing Systems

Acronym

Instruction Stream(s)

Data Stream(s)

SISD

single

single

SIMD

single

multiple

MISD[*]

multiple

single

MIMD

multiple

multiple

[*] The MISD category has seldom been considered for actual system designs.

We note, in passing, that the CRAY-1 had some characteristics analogous to the Itanium architecture. It lacked full hardware support for integer multiplication and division. Its floating-point operations included addition, subtraction, and multiplication. In lieu of full hardware support, floating-point division relied upon software refinement of a hardware-produced reciprocal approximation.

Intel Corporation introduced streaming single-instruction, multiple-data extensions (SSE) into IA-32 architecture in later implementations of the Pentium processor. These provide a few 128-bit registers where up to four single-precision floating-point operations can proceed simultaneously. These new instructions add some SIMD characteristics to an architecture that is outwardly SISD.

This represents a shift of emphasis from Flynn's focus on the computing system to a new focus on elaborations of the instruction set. That is, advanced IA-32 systems incorporate some SIMD instructions.

We shall see below that the Itanium architecture specifies certain parallel forms of floating-point instructions capable of executing two single-precision floating-point operations simultaneously in an F-type execution unit. The manuals describing the Itanium architecture do not use the SIMD language, however perhaps because N is only 2, not 4 as for the SSE extensions to IA-32 architecture.

A second major type of supercomputer system, generally applied to work on different types of scientific problems than those where CRAY-like systems excel, consists of massively parallel clusters that fall into Flynn's multiple-instruction stream, multiple data stream (MIMD) category. Sometimes these are simply clusters of inexpensive workstation-class processors running a parallelized version of Linux, much as RAID arrays are composed of large numbers of independent disk drives operated in some cooperative parallel fashion.



ItaniumR Architecture for Programmers. Understanding 64-Bit Processors and EPIC Principles
ItaniumR Architecture for Programmers. Understanding 64-Bit Processors and EPIC Principles
ISBN: N/A
EAN: N/A
Year: 2003
Pages: 223

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net