Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:multiasm:cs:chapter_3_5 [2025/01/06 13:51] – [Table] ktokarzen: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. Stream of instructions which passes through the control unit, and stream of data processed by the execution unit. In 1966 Michael Flynn proposed the taxonomies to define different processors' architectures. Flynn classification is based on the number of concurrent instruction (or control) streams and data streams available in the architecture.+As we already knowthe processor executes instructions which can process the data. We can consider two streams flowing through the processor. A stream of instructions which passes through the control unit, and stream of data processed by the execution unit. In 1966Michael Flynn proposed the taxonomies to define different processors' architectures. Flynn classification is based on the number of concurrent instruction (or control) streams and data streams available in the architecture. 
 +Taxonomies as proposed by Flynn are presented in Table{{ref>taxonomies}} 
 + 
 +<table taxonomies> 
 +<caption>Processor taxonomies by Flynn</caption> 
 + 
 +| Basic taxonomies                |^ Data streams             || 
 +| :::                             | :::       | **Single**        | **Multiple** 
 +^ Instruction streams  | **Single**    | SISD          | SIMD      | 
 +| :::                  | **Multiple**  | MISD          | MIMD      | 
 +</table>
  
 ===== 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 at one cycle and perform single calculation. Mature PC computers based on 8086, 80286 or 80386 processors or some modern small-scale microcontrollers like AVR are examples of such an architecture.+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 in one cycle and perform single calculation. Mature PC computers based on 8086, 80286 or 80386 processors or some modern small-scale microcontrollers like AVRare examples of such an architecture.
  
 ===== 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 instructionswhich perform vectorised operations.
  
 ===== MIMD ===== ===== MIMD =====
Line 12: Line 22:
  
 ===== MISD ===== ===== MISD =====
-Multiple Instruction Single Data. At first glance, they seem illogical, but these are machines where the certainty of correct calculations is crucial and required for the security of the system operation. Such an approach can be found in applications like space shuttle computers.+Multiple Instruction Single Data. At first glance, it seems illogical, but these are machines where the certainty of correct calculations is crucial and required for the security of the system operation. Such an approach can be found in applications like space shuttle computers.
  
 ===== 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  +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. 
- +
-| Taxonomies                      |^ Data streams             || +
-| :::                             | :::       ^ Single        ^ Multiple +
-^ Instruction streams  ^ Single    | SISD          | SIMD      | +
-| :::                  ^ Multiple  | MISD          | MIMD      | +
  
-((https://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf)) where multiple independent threads execute concurrently using a single instruction. +We can find SIMT in modern constructions. Nvidia uses this execution model in their G80 architecture  
 +((https://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf))where multiple independent threads execute concurrently using a single instruction.  
 +In x64 architecture, the new vector instructions have masked variants, in which an operation can be turned on or off for selected vector elements. This is done by an additional operand called a mask or predicates.
en/multiasm/cs/chapter_3_5.1736171474.txt.gz · Last modified: 2025/01/06 13:51 by ktokarz
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0