We began this brief chapter with an often-used classification of computing systems by Flynn. Single-instruction, multiple-data (SIMD) systems can exploit replicated execution units to effect the same operation on multiple data values in parallel. In contrast, ordinary single-instruction, single-data (SISD) systems must accomplish everything sequentially. We outlined what may be called small-scale SIMD operations that the Itanium instruction set directly supports. Integer parallel instructions support selected operations on eight bytes or four words or two double words in parallel. We cited illustrative instruction sequences for integer multiplication. Floating-point parallel instructions support selected operations on two single-precision quantities in parallel. We described the Itanium instructions that perform locked read-modify-write operations on integer data in memory. Those instructions provide a basis for developing semaphores and other synchronization primitives for operating systems. |