Section 3 ½ Concurrency: Single-Processor System 261
point in memory. Resolution of the identity of the interrupting I/O device is through polling.
A critical measure of performance is interrupt response time, the time between an I/O device's requesting the attention of the Pc by posting an interrupt and the Pc's executing the first instruction of a program to service that I/O device. The selection of the interrupt scheme to employ in a computer is a function of a cost/response-time tradeoff. If response time is critical, computer implementations contain several register sets selectable by the interrupt scheme. Thus the time to switch the context (i.e., the state of the interrupted program) under program control is significantly reduced.
Processor-Memory
Another area of overlap in the traditional machine is between the processor and memory. For any given technology, memory speed is less than that of processor speed. This is partly due to the delays in accessing a word from a large memory array and partly to delays imposed by the processor-memory bus protocol. Thus ways have been developed to cut down memory-to-processor delays. Many of these schemes are based on using a memory that is of multiple word width (e.g., 2 words or 4).
One mechanism is to prefetch instructions so that the next instruction is available as soon as the processor is ready. Prefetching is implemented by fetching a block of instructions and storing them in an instruction buffer. The block can be transferred simultaneously (see the subsection Memory below) or sequentially (the next sequential instruction is fetched during the execution of the current instruction). In an n-instruction buffer, a block of instructions is kept in the local instruction buffer. Table 2 depicts
Table 2 Concurrency in Machines Treated in This Book
Overlap |
|||||
Processor-I/O |
Processor-memory |
Processor |
Memory |
Parallelism |
|
IBM S/360-91 |
Interrupts |
Instruction prefetch : eight 64-bit words |
10-or more-stage pipe 3 arithmetic units |
16-way interleaving 64-bit word access |
Parallel by word |
CDC 6600 |
Interrupts in peripheral processing units |
Instruction prefetch: eight 60-bit words |
10 arithmetic units |
32-way interleaving 60-bit word access |
Parallel by word |
STARAN |
Interrupts |
User-controlled page loading: 512-4096 32-bit words |
3-stage pipe |
Separate data and |
Serial by bit Parallel by bit slice |
TI ASC |
Interrupts |
Instruction prefetch: eight 32-bit words Operand prefetch: eight 32-bit words |
4-stage pipe for instructions 8-stage pipes for arithmetic units |
8-way interleaving 256-bit word access |
Parallel by word Multiple control units |
Iliac IV |
Interrupts |
Instruction prefetch : eight 64-bit words |
2-stage fetch/execute pipe |
8-way interleaving 512-bit word access |
Separate data and Parallel by word instruction memories 64 lockstep functional units |
CRAY-1 |
Interrupts |
Instruction prefetch : 64 16-bit words |
12 arithmetic units |
16-way interleaving 64-bit word access |
Parallel by word |