Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Multiple instruction, single data

From Wikipedia, the free encyclopedia
Parallel computing architecture
This articleis written like apersonal reflection, personal essay, or argumentative essay that states a Wikipedia editor's personal feelings or presents an original argument about a topic. Pleasehelp improve it by rewriting it in anencyclopedic style.(April 2017) (Learn how and when to remove this message)
This article mayrequirecleanup to meet Wikipedia'squality standards. The specific problem is:Subsubsectionclassification controversy contains near-duplicate content ofSystolic array#Classification controversy that may need consolidation. Please helpimprove this article if you can.(July 2025) (Learn how and when to remove this message)
Flynn's taxonomy
Single data stream
Multiple data streams
SIMD subcategories[1]
See also

Incomputing,multiple instruction, single data (MISD) is a type ofparallel computingarchitecture where many functional units perform different operations on the same data.Pipeline architectures belong to this type, though a purist might say that the data is different after processing by each stage in the pipeline.Fault tolerance executing the same instructions redundantly in order to detect and mask errors, in a manner known astask replication, may be considered to belong to this type. Applications for this architecture are much less common thanMIMD andSIMD, as the latter two are often more appropriate for common data parallel techniques. Specifically, they allow better scaling and use of computational resources. However, one prominent example of MISD in computing are theSpace Shuttle flight control computers.[2]

Systolic arrays

[edit]

Systolic arrays (<wavefront processors), first described byH. T. Kung andCharles E. Leiserson are an example ofMISD architecture. In a typical systolic array,parallel inputdata flows through a network of hard-wiredprocessornodes, resembling the humanbrain which combine, process,merge orsort the input data into a derived result.

Systolic arrays are often hard-wired for a specific operation, such as "multiply and accumulate", to perform massivelyparallel integration,convolution,correlation,matrix multiplication or data sorting tasks. A systolic array typically consists of a large monolithic network of primitive computingnodes, which can be hardwired or software-configured for a specific application. The nodes are usually fixed and identical, while the interconnect is programmable. More general wavefront processors, by contrast, employ sophisticated and individually programmable nodes which may or may not be monolithic, depending on the array size and design parameters. Because thewave-like propagation of data through asystolic array resembles thepulse of the human circulatory system, the name systolic was coined from medical terminology.

A significant benefit of systolic arrays is that all operand data and partial results are contained within (passing through) the processor array. There is no need to access external buses, main memory, or internal caches during each operation, as with standard sequential machines. The sequential limits on parallel performance dictated byAmdahl's law also do not apply in the same way because data dependencies are implicitly handled by the programmable node interconnect.

Therefore, systolic arrays are extremely good at artificial intelligence, image processing, pattern recognition, computer vision, and other tasks that animal brains do exceptionally well. Wavefront processors, in general, can also be very good at machine learning by implementing self-configuring neural nets in hardware.

Classification controversy

[edit]

While systolic arrays are officially classified as MISD, their classification is somewhat problematic. Because the input is typically a vector of independent values, the systolic array is notSISD. Since theseinput values are merged and combined into the result(s) and do not maintain theirindependence as they would in aSIMD vector processing unit, thearray cannot be classified as such. Consequently, the array cannot be classified as aMIMD either, since MIMD can be viewed as a mere collection of smaller SISD and SIMD machines.

Finally, because the dataswarm is transformed as it passes through the array from node to node, the multiple nodes are not operating on the same data, which makes the MISD classification amisnomer. The other reason why a systolic array should not qualify as aMISD is the same as the one which disqualifies it from the SISD category: The input data is typically a vector, not asingledata value, although one could argue that any given input vector is a single dataset.

The above notwithstanding, systolic arrays are often offered as a classic example of MISD architecture in textbooks on parallel computing and in the engineering class. If the array is viewed from the outside asatomic it should perhaps be classified asSFMuDMeR =single function, multiple data, merged result(s).[3][4][5][6]

Footnotes

[edit]
  1. ^Flynn, Michael J. (September 1972)."Some Computer Organizations and Their Effectiveness"(PDF).IEEE Transactions on Computers.C-21 (9):948–960.doi:10.1109/TC.1972.5009071.
  2. ^Spector, A.; Gifford, D. (September 1984)."The space shuttle primary computer system".Communications of the ACM.27 (9):872–900.doi:10.1145/358234.358246.S2CID 39724471.
  3. ^Michael J. Flynn, Kevin W. Rudd.Parallel Architectures. CRC Press, 1996.
  4. ^Quinn, Michael J.Parallel Programming in C with MPI and OpenMP. Boston: McGraw Hill, 2004.
  5. ^Ibaroudene, Djaffer. "Parallel Processing, EG6370G: Chapter 1, Motivation and History." St Mary's University, San Antonio, TX. Spring 2008.
  6. ^Null, Linda; Lobur, Julia (2006).The Essentials of Computer Organization and Architecture. 468: Jones and Bartlett.{{cite book}}: CS1 maint: location (link)
Models
Architecture
Instruction set
architectures
Types
Instruction
sets
Execution
Instruction pipelining
Hazards
Out-of-order
Speculative
Parallelism
Level
Multithreading
Flynn's taxonomy
Processor
performance
Types
By application
Systems
on chip
Hardware
accelerators
Word size
Core count
Components
Functional
units
Logic
Registers
Control unit
Datapath
Circuitry
Power
management
Related
General
Levels
Multithreading
Theory
Elements
Coordination
Programming
Hardware
APIs
Problems
Retrieved from "https://en.wikipedia.org/w/index.php?title=Multiple_instruction,_single_data&oldid=1299847091"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp