| OCR Text |
Show 2 1.1 Instructions and Data Modern electronic computers essentially operate by manipulating one set of bits to pro-duce another set. The manipulation usually involves applying zero or more logic primitives to each of the bits. The set of logic primitives involved is referred to as an Instruction and the set of bits is referred to as Data. In the classic von Neumann model of computation a computer runs an infinite loop offetching an instruction, executing it, then fetching another instruction, and so on. This can be represented by the following code fragment : loop fetch next instruction increment instruction counter execute instruction end_loop At the outset, the above loop may seem to imply a single instru~tion and a single data per cycle, but, nevertheless, that need not be the case. In fact, it is the multiplicity of instructions and data that provides for an interesting method of classifying computer systems. This method, introduced by Michael J. Flynn in the sixties, is based on whether a computer system employs single or multiple instructions and data to carry one cycle of computation. Based on this method the useful classes today are as follows: 1.1.1 Single Instruction Single Data (SISD) This is the well-known sequential computer, in which a central processing unit (CPU) controls the execution of a single instruction applied to a single piece of data in every cycle. 1.1.2 Single Instruction Multiple Data (SIMD) This is the vector architecture where vector registers hold a "vector" of data such as the row or a column of a matrix or a similar data structure and then the one instruction is simultaneously executed on all of the registers, thereby transforming the vector in a single atomic operation. This can also be viewed as some form of parallelism. |