Epstein Files Full PDF

CLICK HERE
Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
Flag Counter
  1. World Encyclopedia
  2. Single instruction, multiple data - Wikipedia
Single instruction, multiple data - Wikipedia
From Wikipedia, the free encyclopedia
(Redirected from SIMD)
Type of parallel processing
"SIMD" redirects here. For the cryptographic hash function, see SIMD (hash function). For the Scottish statistical tool, see Scottish index of multiple deprivation.
See also: SIMD within a register and Single instruction, multiple threads
This article's factual accuracy may be compromised due to out-of-date information. Please help update this article to reflect recent events or newly available information. (March 2017)
Flynn's taxonomy
Single data stream
  • SISD
  • MISD
Multiple data streams
  • SIMD
  • MIMD
SIMD subcategories[1]
  • Array processing (SIMT)
  • Pipelined processing (packed SIMD)
  • Associative processing (predicated/masked SIMD)
See also
  • SPMD
  • MPMD
Single instruction, multiple data

Single instruction, multiple data (SIMD) is a type of parallel computing (processing) in Flynn's taxonomy. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneously. SIMD can be internal (part of the hardware design) and it can be directly accessible through an instruction set architecture (ISA), but it should not be confused with an ISA.

Such machines exploit data level parallelism, but not concurrency: there are simultaneous (parallel) computations, but each unit performs exactly the same instruction at any given moment (just with different data). A simple example is to add many pairs of numbers together, all of the SIMD units are performing an addition, but each one has different pairs of values to add. SIMD is especially applicable to common tasks such as adjusting the contrast in a digital image or adjusting the volume of digital audio. Most modern central processing unit (CPU) designs include SIMD instructions to improve the performance of multimedia use. In recent CPUs, SIMD units are tightly coupled with cache hierarchies and prefetch mechanisms, which minimize latency during large block operations. For instance, AVX-512-enabled processors can prefetch entire cache lines and apply fused multiply-add operations (FMA) in a single SIMD cycle.

Confusion between SIMT and SIMD

[edit]
See also: SIMD within a register; Single instruction, multiple threads; and Vector processor
ILLIAC IV Array overview, from ARPA-funded Introductory description by Steward Denenberg, July 15, 1971[2]

SIMD has three different subcategories in Flynn's 1972 Taxonomy, one of which is single instruction, multiple threads (SIMT). SIMT should not be confused with software threads or hardware threads, both of which are task time-sharing (time-slicing). SIMT is true simultaneous parallel hardware-level execution, such as in the ILLIAC IV.

SIMD should not be confused with Vector processing, characterized by the Cray 1 and clarified in Duncan's taxonomy. The difference between SIMD and vector processors is primarily the presence of a Cray-style SET VECTOR LENGTH instruction.

History

[edit]

The first known operational use to date of SIMD within a register was the TX-2, in 1958. It was capable of 36-bit operations and two 18-bit or four 9-bit sub-word operations.

The first commercial use of SIMD instructions was in the ILLIAC IV, which was completed in 1972.

Vector supercomputers of the early 1970s such as the CDC Star-100 and the Texas Instruments ASC could operate on a "vector" of data with a single instruction. Vector processing was especially popularized by Cray in the 1970s and 1980s. Vector processing architectures are now considered separate from SIMD computers: Duncan's Taxonomy includes them whereas Flynn's Taxonomy does not, due to Flynn's work (1966, 1972) pre-dating the Cray-1 (1977). The complexity of Vector processors however inspired a simpler arrangement known as SIMD within a register.

The first era of modern SIMD computers was characterized by massively parallel processing-style supercomputers such as the Thinking Machines Connection Machine CM-1 and CM-2. These computers had many limited-functionality processors that would work in parallel. For example, each of 65,536 single-bit processors in a Thinking Machines CM-2 would execute the same instruction at the same time, allowing, for instance, to logically combine 65,536 pairs of bits at a time, using a hypercube-connected network or processor-dedicated RAM to find its operands. Supercomputing moved away from the SIMD approach when inexpensive scalar multiple instruction, multiple data (MIMD) approaches based on commodity processors such as the Intel i860 XP became more powerful, and interest in SIMD waned.[3]

The current era of SIMD processors grew out of the desktop-computer market rather than the supercomputer market. As desktop processors became powerful enough to support real-time gaming and audio/video processing during the 1990s, demand grew for this type of computing power, and microprocessor vendors turned to SIMD to meet the demand.[4] This resurgence also coincided with the rise of DirectX and OpenGL shader models, which heavily leveraged SIMD under the hood. The graphics APIs encouraged programmers to adopt data-parallel programming styles, indirectly accelerating SIMD adoption in desktop software. Hewlett-Packard introduced Multimedia Acceleration eXtensions (MAX) instructions into PA-RISC 1.1 desktops in 1994 to accelerate MPEG decoding.[5] Sun Microsystems introduced SIMD integer instructions in its "VIS" instruction set extensions in 1995, in its UltraSPARC I microprocessor. MIPS followed suit with their similar MDMX system.

The first widely deployed desktop SIMD was with Intel's MMX extensions to the x86 architecture in 1996. This sparked the introduction of the much more powerful AltiVec system in the Motorola PowerPC and IBM's POWER systems. Intel responded in 1999 by introducing the all-new SSE system. Since then, there have been several extensions to the SIMD instruction sets for both architectures. Advanced vector extensions AVX, AVX2 and AVX-512 are developed by Intel. AMD supports AVX, AVX2, and AVX-512 in their current products.[6]

Disadvantages

[edit]

With SIMD, an order of magnitude increase in code size is not uncommon, when compared to equivalent scalar or equivalent vector code, and an order of magnitude or greater effectiveness (work done per instruction) is achievable with Vector ISAs.[7]

ARM's Scalable Vector Extension takes another approach, known in Flynn's Taxonomy more commonly known today as "Predicated" (masked) SIMD. This approach is not as compact as vector processing but is still far better than non-predicated SIMD. Detailed comparative examples are given at Vector processor § Vector instruction example.

Chronology

[edit]
SIMD supercomputer examples excluding vector processors
Year Example
1974 ILLIAC IV - an Array Processor comprising scalar 64-bit PEs
1974 ICL Distributed Array Processor (DAP)
1976 Burroughs Scientific Processor
1981 Geometric-Arithmetic Parallel Processor from Martin Marietta (continued at Lockheed Martin, then at Teranex and Silicon Optix)
1983–1991 Massively Parallel Processor (MPP), from NASA/Goddard Space Flight Center
1985 Connection Machine, models 1 and 2 (CM-1 and CM-2), from Thinking Machines Corporation
1987–1996 MasPar MP-1 and MP-2
1991 Zephyr DC from Wavetracer
2001 Xplor from Pyxsys, Inc.

Hardware

[edit]

CPUs

[edit]

Small-scale (64 or 128 bits) SIMD became popular on general-purpose CPUs in the early 1990s and continued through 1997 and later with Motion Video Instructions (MVI) for Alpha. SIMD instructions can be found, to one degree or another, on most CPUs, including IBM's AltiVec and Signal Processing Engine (SPE) for PowerPC, Hewlett-Packard's (HP) PA-RISC Multimedia Acceleration eXtensions (MAX), Intel's MMX and iwMMXt, Streaming SIMD Extensions (SSE), SSE2, SSE3 SSSE3 and SSE4.x, AMD's 3DNow!, ARC's ARC Video subsystem, SPARC's VIS and VIS2, Sun's MAJC, ARM's Neon technology, MIPS' MDMX (MaDMaX) and MIPS-3D.

Intel's AVX-512 SIMD instructions process 512 bits of data at once.

Coprocessors

[edit]

The IBM, Sony, Toshiba co-developed Cell processor's Synergistic Processing Element's (SPE's) instruction set is heavily SIMD based.

Some, but not all, GPUs are SIMD-based. AMD GPUs since the TeraScale (microarchitecture) are SIMD-based, a feature that has remained in the 2020s microartectures RDNA and CDNA,[8] with a layer of single instruction, multiple threads (SIMT) above.[9] On the other hand, Nvidia's CUDA architectures use scalar cores with SIMT.[10]

Philips, now NXP, developed several SIMD processors named Xetal. The Xetal has 320 16-bit processor elements especially designed for vision tasks.

Apple's M1 and M2 chips also incorporate SIMD units deeply integrated with their GPU and Neural Engine, using Apple-designed SIMD pipelines optimized for image filtering, convolution, and matrix multiplication. This unified memory architecture helps SIMD instructions operate on shared memory pools more efficiently. (The CPU part implements ordinary NEON).

Software

[edit]
The ordinary tripling of four 8-bit numbers. The CPU loads one 8-bit number into R1, multiplies it with R2, and then saves the answer from R3 back to RAM. This process is repeated for each number.
The SIMD tripling of four 8-bit numbers. The CPU loads 4 numbers at once, multiplies them all in one SIMD-multiplication, and saves them all at once back to RAM. In theory, the speed can be multiplied by 4.

SIMD instructions are widely used to process 3D graphics, although modern graphics cards with embedded SIMD have largely taken over this task from the CPU. Some systems also include permute functions that re-pack elements inside vectors, making them especially useful for data processing and compression. They are also used in cryptography.[11][12][13] The trend of general-purpose computing on GPUs (GPGPU) may lead to wider use of SIMD in the future. Recent compilers such as LLVM, GNU Compiler Collection (GCC), and Intel's ICC offer aggressive auto-vectoring options. Developers can often enable these with flags like -O3 or -ftree-vectorize, which guide the compiler to restructure loops for SIMD compatibility.

Adoption of SIMD systems in personal computer software was at first slow, due to a number of problems. One was that many of the early SIMD instruction sets tended to slow overall performance of the system due to the re-use of existing floating point registers. Other systems, like MMX and 3DNow!, offered support for data types that were not interesting to a wide audience and had expensive context switching instructions to switch between using the FPU and MMX registers. Compilers also often lacked support, requiring programmers to resort to assembly language coding.

SIMD on x86 had a slow start. The introduction of 3DNow! by AMD and SSE by Intel confused matters somewhat, but today the system seems to have settled down (after AMD adopted SSE) and newer compilers should result in more SIMD-enabled software. Intel and AMD now both provide optimized math libraries that use SIMD instructions, and open source alternatives like libSIMD, SIMDx86 and SLEEF have started to appear (see also libm).[14]

Apple Computer had somewhat more success, even though they entered the SIMD market later than the rest. AltiVec offered a rich system and can be programmed using increasingly sophisticated compilers from Motorola, IBM and GNU, therefore assembly language programming is rarely needed. Additionally, many of the systems that would benefit from SIMD were supplied by Apple itself, for example iTunes and QuickTime. However, in 2006, Apple computers moved to Intel x86 processors. Apple's APIs and development tools (XCode) were modified to support SSE2 and SSE3 as well as AltiVec. Apple was the dominant purchaser of PowerPC chips from IBM and Freescale Semiconductor. Even though Apple has stopped using PowerPC processors in their products, further development of AltiVec is continued in several PowerPC and Power ISA designs from Freescale and IBM.

SIMD within a register, or SWAR, is a range of techniques and tricks used for performing SIMD in general-purpose registers on hardware that does not provide any direct support for SIMD instructions. This can be used to exploit parallelism in certain algorithms even on hardware that does not support SIMD directly.

Programmer interface

[edit]

It is common for publishers of the SIMD instruction sets to make their own C and C++ language extensions with intrinsic functions or special datatypes (with operator overloading) guaranteeing the generation of vector code. Intel, AltiVec, and ARM NEON provide extensions widely adopted by the compilers targeting their CPUs. (More complex operations are the task of vector math libraries.)

The GNU C Compiler takes the extensions a step further by abstracting them into a universal interface that can be used on any platform by providing a way of defining SIMD datatypes.[15] The LLVM Clang compiler also implements the feature, with an analogous interface defined in the IR.[16] Rust's packed_simd crate (and the experimental std::simd) uses this interface, and so does Swift 2.0+.

C++ has an experimental interface std::experimental::simd that works similarly to the GCC extension. LLVM's libcxx seems to implement it.[citation needed] For GCC and libstdc++, a wrapper library that builds on top of the GCC extension is available.[17]

Microsoft added SIMD to .NET in RyuJIT.[18] The System.Numerics.Vector package, available on NuGet, implements SIMD datatypes.[19] Java also has a new proposed API for SIMD instructions available in OpenJDK 17 in an incubator module.[20] It also has a safe fallback mechanism on unsupported CPUs to simple loops.

Instead of providing an SIMD datatype, compilers can also be hinted to auto-vectorize some loops, potentially taking some assertions about the lack of data dependency. This is not as flexible as manipulating SIMD variables directly, but is easier to use. OpenMP 4.0+ has a #pragma omp simd hint.[21] This OpenMP interface has replaced a wide set of nonstandard extensions, including Cilk's #pragma simd,[22] GCC's #pragma GCC ivdep, and many more.[23]

An example of the use of platform-specific, generic vector-based, and generic hint-based interfaces is "SIMD everywhere", a collection of C/C++ headers implementing of platform-specific intrinsics for other platforms (e.g. SSE intrinsics for ARM NEON).[24]

SIMD multi-versioning

[edit]

Consumer software is typically expected to work on a range of CPUs covering multiple generations, which could limit the programmer's ability to use new SIMD instructions to improve the computational performance of a program. The solution is to include multiple versions of the same code that uses either older or newer SIMD technologies, and pick one that best fits the user's CPU at run-time (dynamic dispatch). There are two main camps of solutions:

  • Function multi-versioning (FMV): a subroutine in the program or a library is duplicated and compiled for many instruction set extensions, and the program decides which one to use at run-time.
  • Library multi-versioning (LMV): the entire programming library is duplicated for many instruction set extensions, and the operating system or the program decides which one to load at run-time.

FMV, manually coded in assembly language, is quite commonly used in a number of performance-critical libraries such as glibc and libjpeg-turbo. Intel C++ Compiler, GNU Compiler Collection since GCC 6, and Clang since clang 7 allow for a simplified approach, with the compiler taking care of function duplication and selection. GCC and clang requires explicit target_clones labels in the code to "clone" functions,[25] while ICC does so automatically (under the command-line option /Qax). The Rust programming language also supports FMV. The setup is similar to GCC and Clang in that the code defines what instruction sets to compile for, but cloning is manually done via inlining.[26]

As using FMV requires code modification on GCC and Clang, vendors more commonly use library multi-versioning: this is easier to achieve as only compiler switches need to be changed. Glibc supports LMV and this functionality is adopted by the Intel-backed Clear Linux project.[27]

SIMD on the web

[edit]

In 2013 John McCutchan announced that he had created a high-performance interface to SIMD instruction sets for the Dart programming language, bringing the benefits of SIMD to web programs for the first time. The interface consists of two types:[28]

  • Float32x4, 4 single precision floating point values.
  • Int32x4, 4 32-bit integer values.

Instances of these types are immutable and in optimized code are mapped directly to SIMD registers. Operations expressed in Dart typically are compiled into a single instruction without any overhead. This is similar to C and C++ intrinsics. Benchmarks for 4×4 matrix multiplication, 3D vertex transformation, and Mandelbrot set visualization show near 400% speedup compared to scalar code written in Dart.

Intel announced at IDF 2013 that they were implementing McCutchan's specification for both V8 and SpiderMonkey.[29] However, by 2017, SIMD.js was taken out of the ECMAScript standard queue in favor of pursuing a similar interface in WebAssembly.[30] Support for SIMD was added to the WebAssembly 2.0 specification, which was finished on 2022 and became official in December 2024.[31] LLVM's autovectoring, when compiling C or C++ to WebAssembly, can target WebAssembly SIMD to automatically make use of SIMD, while SIMD intrinsic are also available.[32]

Commercial applications

[edit]

It has generally proven difficult to find sustainable commercial applications for SIMD-only processors in general-purpose computing.

One that has had some measure of success is the GAPP, which was developed by Lockheed Martin and taken to the commercial sector by their spin-off Teranex. The GAPP's recent incarnations have become a powerful tool in real-time video processing applications like conversion between various video standards and frame rates (NTSC to/from PAL, NTSC to/from high-definition television (HDTV) formats, etc.), deinterlacing, image noise reduction, adaptive video compression, and image enhancement.

A more ubiquitous application for SIMD is found in video games: nearly every modern video game console since 1998 has incorporated a SIMD processor somewhere in its architecture. The PlayStation 2 was unusual in that one of its vector-float units could function as an autonomous digital signal processor (DSP) executing its own instruction stream, or as a coprocessor driven by ordinary CPU instructions. 3D graphics applications tend to lend themselves well to SIMD processing as they rely heavily on operations with 4-dimensional vectors. Microsoft's Direct3D 9.0 now chooses at runtime processor-specific implementations of its own math operations, including the use of SIMD-capable instructions.

A later processor that used vector processing is the Cell processor used in the PlayStation 3, which was developed by IBM in cooperation with Toshiba and Sony. It uses a number of SIMD processors (a non-uniform memory access (NUMA) architecture, each with independent local store and controlled by a general purpose CPU) and is geared towards the huge datasets required by 3D and video processing applications. It differs from traditional ISAs by being SIMD from the ground up with no separate scalar registers.

Ziilabs produced an SIMD type processor for use on mobile devices, such as media players and mobile phones.[33]

Larger scale commercial SIMD processors are available from ClearSpeed Technology, Ltd. and Stream Processors, Inc. ClearSpeed's CSX600 (2004) has 96 cores each with two double-precision floating point units while the CSX700 (2008) has 192. Stream Processors is headed by computer architect Bill Dally. Their Storm-1 processor (2007) contains 80 SIMD cores controlled by a MIPS CPU.

See also

[edit]
  • Streaming SIMD Extensions, MMX, SSE2, SSE3, Advanced Vector Extensions, AVX-512
  • Instruction set architecture
  • Flynn's taxonomy
  • SIMD within a register (SWAR)
  • Single program, multiple data (SPMD)
  • OpenCL

References

[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. ^ "Archived copy" (PDF). Archived from the original (PDF) on 2024-04-27.{{cite web}}: CS1 maint: archived copy as title (link)
  3. ^ "MIMD1 - XP/S, CM-5" (PDF).
  4. ^ Conte, G.; Tommesani, S.; Zanichelli, F. (2000). "The long and winding road to high-performance image processing with MMX/SSE". Proc. Fifth IEEE Int'l Workshop on Computer Architectures for Machine Perception. doi:10.1109/CAMP.2000.875989. hdl:11381/2297671. S2CID 13180531.
  5. ^ Lee, R.B. (1995). "Realtime MPEG video via software decompression on a PA-RISC processor". digest of papers Compcon '95. Technologies for the Information Superhighway. pp. 186–192. doi:10.1109/CMPCON.1995.512384. ISBN 0-8186-7029-0. S2CID 2262046.
  6. ^ "AMD Zen 4 AVX-512 Performance Analysis On The Ryzen 9 7950X Review". www.phoronix.com. Retrieved 2023-07-13.
  7. ^ Patterson, David; Waterman, Andrew (18 September 2017). "SIMD Instructions Considered Harmful". SIGARCH.
  8. ^ Lam, Chester. "GCN, AMD's GPU Architecture Modernization". chipsandcheese.com.
  9. ^ Lam, Chester. "Hot Chips 34 – AMD's Instinct MI200 Architecture". chipsandcheese.com. On both NVIDIA and AMD, matrix instructions break the SIMT abstraction model and work across a whole wavefront (or "warp" on NVIDIA).
  10. ^ "Version 2.3 8/27/2009 OpenCL Programming Guide for the CUDA Architecture" (PDF).
  11. ^ RE: SSE2 speed, showing how SSE2 is used to implement SHA hash algorithms
  12. ^ Salsa20 speed; Salsa20 software, showing a stream cipher implemented using SSE2
  13. ^ Subject: up to 1.4x RSA throughput using SSE2, showing RSA implemented using a non-SIMD SSE2 integer multiply instruction.
  14. ^ "SIMD library math functions". Stack Overflow. Retrieved 16 January 2020.
  15. ^ "Vector Extensions". Using the GNU Compiler Collection (GCC). Retrieved 16 January 2020.
  16. ^ "Clang Language Extensions". Clang 11 documentation. Retrieved 16 January 2020.
  17. ^ "VcDevel/std-simd". VcDevel. 6 August 2020.
  18. ^ "RyuJIT: The next-generation JIT compiler for .NET". 30 September 2013.
  19. ^ "The JIT finally proposed. JIT and SIMD are getting married". 7 April 2014.
  20. ^ "JEP 338: Vector API".
  21. ^ "SIMD Directives". www.openmp.org.
  22. ^ "Tutorial pragma simd". CilkPlus. 18 July 2012. Archived from the original on 4 December 2020. Retrieved 9 August 2020.
  23. ^ Kruse, Michael. "OMP5.1: Loop Transformations" (PDF).
  24. ^ "simd-everywhere/simde: Implementations of SIMD instruction sets for systems which don't natively support them". GitHub. SIMD Everywhere. 6 November 2025.
  25. ^ "Function multi-versioning in GCC 6". lwn.net. 22 June 2016.
  26. ^ "2045-target-feature". The Rust RFC Book.
  27. ^ "Transparent use of library packages optimized for Intel® architecture". Clear Linux* Project. Retrieved 8 September 2019.
  28. ^ John McCutchan. "Bringing SIMD to the web via Dart" (PDF). Archived from the original (PDF) on 2013-12-03.
  29. ^ "SIMD in JavaScript". 01.org. 8 May 2014.
  30. ^ "tc39/ecmascript_simd: SIMD numeric type for EcmaScript". GitHub. Ecma TC39. 22 August 2019. Retrieved 8 September 2019.
  31. ^ "Wasm 2.0 Completed - WebAssembly".
  32. ^ "Using SIMD with WebAssembly". Emscripten 4.0.11-git (dev) documentation.
  33. ^ "ZiiLABS ZMS-05 ARM 9 Media Processor". ZiiLabs. Archived from the original on 2011-07-18. Retrieved 2010-05-24.

External links

[edit]
  • SIMD architectures (2000)
  • Cracking Open The Pentium 3 (1999)
  • Short Vector Extensions in Commercial Microprocessor
  • Article about Optimizing the Rendering Pipeline of Animated Models Using the Intel Streaming SIMD Extensions
  • "Yeppp!": cross-platform, open-source SIMD library from Georgia Tech
  • Introduction to Parallel Computing from LLNL Lawrence Livermore National Laboratory Archived 2013-06-10 at the Wayback Machine
  • v
  • t
  • e
Processor technologies
Models
  • Abstract machine
  • Stored-program computer
  • Finite-state machine
    • with datapath
    • Hierarchical
    • Deterministic finite automaton
    • Queue automaton
    • Cellular automaton
    • Quantum cellular automaton
  • Turing machine
    • Alternating Turing machine
    • Universal
    • Post–Turing
    • Quantum
    • Nondeterministic Turing machine
    • Probabilistic Turing machine
    • Hypercomputation
    • Zeno machine
  • Belt machine
  • Stack machine
  • Register machines
    • Counter
    • Pointer
    • Random-access
    • Random-access stored program
Architecture
  • Microarchitecture
  • Von Neumann
  • Harvard
    • modified
  • Dataflow
  • Transport-triggered
  • Cellular
  • Endianness
  • Memory access
    • NUMA
    • HUMA
    • Load–store
    • Register/memory
  • Cache hierarchy
  • Memory hierarchy
    • Virtual memory
    • Secondary storage
  • Heterogeneous
  • Fabric
  • Multiprocessing
  • Cognitive
  • Neuromorphic
Instruction set
architectures
Types
  • Orthogonal instruction set
  • CISC
  • RISC
  • Application-specific
  • EDGE
    • TRIPS
  • VLIW
    • EPIC
  • MISC
  • OISC
  • NISC
  • ZISC
  • VISC architecture
  • Quantum computing
  • Comparison
    • Addressing modes
Instruction
sets
  • Motorola 68000 series
  • VAX
  • PDP-11
  • x86
  • ARM
  • Stanford MIPS
  • MIPS
  • MIPS-X
  • Power
    • POWER
    • PowerPC
    • Power ISA
  • Clipper architecture
  • SPARC
  • SuperH
  • DEC Alpha
  • ETRAX CRIS
  • M32R
  • Unicore
  • Itanium
  • OpenRISC
  • RISC-V
  • MicroBlaze
  • LMC
  • System/3x0
    • S/360
    • S/370
    • S/390
    • z/Architecture
  • Tilera ISA
  • VISC architecture
  • Epiphany architecture
  • Others
Execution
Instruction pipelining
  • Pipeline stall
  • Operand forwarding
  • Classic RISC pipeline
Hazards
  • Data dependency
  • Structural
  • Control
  • False sharing
Out-of-order
  • Scoreboarding
  • Tomasulo's algorithm
    • Reservation station
    • Re-order buffer
  • Register renaming
  • Wide-issue
Speculative
  • Branch prediction
  • Memory dependence prediction
Parallelism
Level
  • Bit
    • Bit-serial
    • Word
  • Instruction
  • Pipelining
    • Scalar
    • Superscalar
  • Task
    • Thread
    • Process
  • Data
    • Vector
  • Memory
  • Distributed
Multithreading
  • Temporal
  • Simultaneous
    • Hyperthreading
    • Simultaneous and heterogenous
  • Speculative
  • Preemptive
  • Cooperative
Flynn's taxonomy
  • SISD
  • SIMD
    • Array processing (SIMT)
    • Pipelined processing
    • Associative processing
    • SWAR
  • MISD
  • MIMD
    • SPMD
Processor
performance
  • Transistor count
  • Instructions per cycle (IPC)
    • Cycles per instruction (CPI)
  • Instructions per second (IPS)
  • Floating-point operations per second (FLOPS)
  • Transactions per second (TPS)
  • Synaptic updates per second (SUPS)
  • Performance per watt (PPW)
  • Cache performance metrics
  • Computer performance by orders of magnitude
Types
  • Central processing unit (CPU)
  • Graphics processing unit (GPU)
    • GPGPU
  • Vector
  • Barrel
  • Stream
  • Tile processor
  • Coprocessor
  • PAL
  • ASIC
  • FPGA
  • FPOA
  • CPLD
  • Multi-chip module (MCM)
  • System in a package (SiP)
  • Package on a package (PoP)
By application
  • Embedded system
  • Microprocessor
  • Microcontroller
  • Mobile
  • Ultra-low-voltage
  • ASIP
  • Soft microprocessor
Systems
on chip
  • System on a chip (SoC)
  • Multiprocessor (MPSoC)
  • Cypress PSoC
  • Network on a chip (NoC)
Hardware
accelerators
  • Coprocessor
  • AI accelerator
  • Graphics processing unit (GPU)
  • Image processor
  • Vision processing unit (VPU)
  • Physics processing unit (PPU)
  • Digital signal processor (DSP)
  • Tensor Processing Unit (TPU)
  • Secure cryptoprocessor
  • Network processor
  • Baseband processor
Word size
  • 1-bit
  • 4-bit
  • 8-bit
  • 12-bit
  • 15-bit
  • 16-bit
  • 24-bit
  • 32-bit
  • 48-bit
  • 64-bit
  • 128-bit
  • 256-bit
  • 512-bit
  • bit slicing
  • others
    • variable
Core count
  • Single-core
  • Multi-core
  • Manycore
  • Heterogeneous architecture
Components
  • Core
  • Cache
    • CPU cache
    • Scratchpad memory
    • Data cache
    • Instruction cache
    • replacement policies
    • coherence
  • Bus
  • Clock rate
  • Clock signal
  • FIFO
Functional
units
  • Arithmetic logic unit (ALU)
  • Address generation unit (AGU)
  • Floating-point unit (FPU)
  • Memory management unit (MMU)
    • Load–store unit
    • Translation lookaside buffer (TLB)
  • Branch predictor
  • Branch target predictor
  • Integrated memory controller (IMC)
    • Memory management unit
  • Instruction decoder
Logic
  • Combinational
  • Sequential
  • Glue
  • Logic gate
    • Quantum
    • Array
Registers
  • Processor register
  • Status register
  • Stack register
  • Register file
  • Memory buffer
  • Memory address register
  • Program counter
Control unit
  • Hardwired control unit
  • Instruction unit
  • Data buffer
  • Write buffer
  • Microcode
  • ROM
  • Counter
Datapath
  • Multiplexer
  • Demultiplexer
  • Adder
  • Multiplier
    • CPU
  • Binary decoder
    • Address decoder
    • Sum-addressed decoder
  • Barrel shifter
Circuitry
  • Integrated circuit
    • 3D
    • Mixed-signal
    • Power management
  • Boolean
  • Digital
  • Analog
  • Quantum
  • Switch
Power
management
  • PMU
  • APM
  • ACPI
  • Dynamic frequency scaling
  • Dynamic voltage scaling
  • Clock gating
  • Performance per watt (PPW)
Related
  • History of general-purpose CPUs
  • Microprocessor chronology
  • Processor design
  • Digital electronics
  • Hardware security module
  • Semiconductor device fabrication
  • Tick–tock model
  • Pin grid array
  • Chip carrier
  • v
  • t
  • e
Parallel computing
General
  • Distributed computing
  • Parallel computing
  • Parallel algorithm
  • Massively parallel
  • Cloud computing
  • High-performance computing
  • Multiprocessing
  • Manycore processor
  • GPGPU
  • Computer network
  • Systolic array
Levels
  • Bit
  • Instruction
  • Thread
  • Task
  • Data
  • Memory
  • Loop
  • Pipeline
Multithreading
  • Temporal
  • Simultaneous (SMT)
  • Simultaneous and heterogenous
  • Speculative (SpMT)
  • Preemptive
  • Cooperative
  • Clustered multi-thread (CMT)
  • Hardware scout
Theory
  • PRAM model
  • PEM model
  • Analysis of parallel algorithms
  • Amdahl's law
  • Gustafson's law
  • Cost efficiency
  • Karp–Flatt metric
  • Slowdown
  • Speedup
Elements
  • Process
  • Thread
  • Fiber
  • Instruction window
  • Array
Coordination
  • Multiprocessing
  • Memory coherence
  • Cache coherence
  • Cache invalidation
  • Barrier
  • Synchronization
  • Application checkpointing
Programming
  • Stream processing
  • Dataflow programming
  • Models
    • Implicit parallelism
    • Explicit parallelism
    • Concurrency
  • Non-blocking algorithm
Hardware
  • Flynn's taxonomy
    • SISD
    • SIMD
      • Array processing (SIMT)
      • Pipelined processing
      • Associative processing
    • MISD
    • MIMD
  • Dataflow architecture
  • Pipelined processor
  • Superscalar processor
  • Vector processor
  • Multiprocessor
    • symmetric
    • asymmetric
  • Memory
    • shared
    • distributed
    • distributed shared
    • UMA
    • NUMA
    • COMA
  • Massively parallel computer
  • Computer cluster
    • Beowulf cluster
  • Grid computer
  • Hardware acceleration
APIs
  • Ateji PX
  • Boost
  • Chapel
  • HPX
  • Charm++
  • Cilk
  • Coarray Fortran
  • CUDA
  • Dryad
  • C++ AMP
  • Global Arrays
  • GPUOpen
  • MPI
  • OpenMP
  • OpenCL
  • OpenHMPP
  • OpenACC
  • Parallel Extensions
  • PVM
  • pthreads
  • RaftLib
  • ROCm
  • UPC
  • TBB
  • ZPL
Problems
  • Automatic parallelization
  • Cache stampede
  • Deadlock
  • Deterministic algorithm
  • Embarrassingly parallel
  • Parallel slowdown
  • Race condition
  • Software lockout
  • Scalability
  • Starvation
  •  Category: Parallel computing
Authority control databases: National Edit this at Wikidata
  • United States
  • Israel
Retrieved from "https://teknopedia.ac.id/w/index.php?title=Single_instruction,_multiple_data&oldid=1339684544"
Categories:
  • Classes of computers
  • Digital signal processing
  • Flynn's taxonomy
  • Parallel computing
  • SIMD computing
Hidden categories:
  • CS1 maint: archived copy as title
  • Articles with short description
  • Short description is different from Wikidata
  • Articles with obsolete information from March 2017
  • All Wikipedia articles in need of updating
  • All articles with unsourced statements
  • Articles with unsourced statements from March 2023
  • Webarchive template wayback links

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id