The first computers used so-called von Neumann processor architectures, which provide a single instruction stream and a single data stream to a processor. The processor sequentially executes each instruction, acting on data in a single storage area. Such classical processors are known as single instruction single data (SISD) processors. As processor clock speeds have increased, SISD architecture has presented an obstacle to achieving high processing throughput. Many computer programs include groups or blocks of instructions which can be executed in parallel rather than singly. Therefore, computer scientists have developed other architectures, including a family of parallel processing models.