This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:multiasm:cs:chapter_3_5 [2025/01/04 17:07] – [MISD] ktokarz | en:multiasm:cs:chapter_3_5 [2025/12/02 13:28] (current) – [SIMT] ktokarz | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Processor Taxonomies, SISD, SIMD, MIMD ====== | ====== Processor Taxonomies, SISD, SIMD, MIMD ====== | ||
| - | As we already know the processor executes instructions which can process the data. We can consider two streams flowing through the processor. | + | As we already know, the processor executes instructions which can process the data. We can consider two streams flowing through the processor. |
| + | Taxonomies as proposed by Flynn are presented in Table{{ref> | ||
| + | |||
| + | <table taxonomies> | ||
| + | < | ||
| + | |||
| + | | Basic taxonomies | ||
| + | | ::: | ::: | **Single** | ||
| + | ^ Instruction streams | ||
| + | | ::: | **Multiple** | ||
| + | </ | ||
| ===== SISD ===== | ===== SISD ===== | ||
| - | Single Instruction Single Data processor is a classical processor with a single control unit and a single execution unit. It can fetch a single instruction | + | Single Instruction Single Data processor is a classical processor with a single control unit and a single execution unit. It can fetch a single instruction |
| ===== SIMD ===== | ===== SIMD ===== | ||
| - | Single Instruction Multiple Data is an architecture in which one instruction stream can perform calculations on multiple data streams. Good examples of implementation of such architecture are all vector instructions (called also SIMD instructions) like MMX, SSE, AVX, and 3D-Now in x64 Intel and AMD processors. Modern ARM processors also implement SIMD instructions which perform vectorised operations. | + | Single Instruction Multiple Data is an architecture in which one instruction stream can perform calculations on multiple data streams. Good examples of implementation of such architecture are all vector instructions (called also SIMD instructions) like MMX, SSE, AVX, and 3D-Now in x64 Intel and AMD processors. Modern ARM processors also implement SIMD instructions, which perform vectorised operations. |
| ===== MIMD ===== | ===== MIMD ===== | ||
| - | Multiple Instruction Multiple Data is an architecture in which many control units operate on multiple streams of data. These are all architectures with more than one processor (multi-processor architectures). MIMD architectures include multi-core processors like modern x64, ARM and even ESP32 SoCs. This also includes distributed systems, using common shared memory or even a distributed but shared memory. | + | Multiple Instruction Multiple Data is an architecture in which many control units operate on multiple streams of data. These are all architectures with more than one processor (multi-processor architectures). MIMD architectures include multi-core processors like modern x64, ARM and even ESP32 SoCs. This also includes |
| ===== MISD ===== | ===== MISD ===== | ||
| - | Multiple Instruction Single Data. At first glance, | + | Multiple Instruction Single Data. At first glance, |
| ===== SIMT ===== | ===== SIMT ===== | ||
| - | Single Instruction Multiple Threads. Originally defined as the subset of SIMD. In modern construction, Nvidia uses this execution model in their G80 architecture ((https:// | + | Single Instruction Multiple Threads. Originally defined as the subset of SIMD. The difference between SIMD and SIMT is that in pure SIMD, a single instruction operates on all elements of the vector in the same way. In SIMT, selected threads can be activated or deactivated. Instructions and data are processed only on the active threads, while the data remains unchanged on inactive threads. |
| + | |||
| + | We can find SIMT in modern constructions. | ||
| + | ((https:// | ||
| + | In x64 architecture, | ||