Flynn Taxonomy

Flynn taxonomy is a classification of computer architecture that divides different architectures depending on the pluralism of instruction and data streams and threads. Practically the instructions number refers to the number of arithmetic logic units (ALU) working together, and data refers to the registers data being processed by the ALU.

Single instruction stream single data stream like the traditional uniprocessors that fetches single instruction stream to single datum. SISD architecture could be found in Intel 8080 and ASC processors’ instruction sets[1].

Single Instruction, Multiple Data (SIMD) SIMD architectures have multiple arithmetic logic units and all these units are managed by a single control processor[2] [3]. It’s important to know that SIMD doesn’t apply different parallel arithmetic logic instructions to the array of data that it processes, but it perform the same instruction.

The book “CompTIA A+ Certification”[4] of Glen Clarke and Edward Tetz gives a very simple example to explain SIMD: five toddlers are messing up in a room and you want them to stop, you may have two ways to tell them to stop, either to go to every one of them and explain to him to stop (SISD), or to shout loudly and everybody will stop directly (SIMD).

Most of us have heard about the Pentium processors from the last 90’s. Starting from Pentium pro[5] (also known as Pentium I) until core i7[6] you may find SIMD architecture (you can find the instruction set for any processor details in Intel website or any benchmarking website to check it’s classification in Flynn taxonomy).

 

MIMD or multiple instruction streams multiple data streams could be seen in distributed systems or in the multi-core Superscalar processors, which is a type of processors that are highly supporting instruction-level parallelism. Superscalar processor can be considered as a SISD processor but with being multi-core processor its classification differs to MIMD classification.

Vector processors (SIMD architecture) is a type of processors that has appeared in the 70’s and ended up by the 90’s it was doing an instruction on a single dimensional array so it optimizes the performance. Unlike the Scalar processor (SISD architecture) that processes one instruction on one unit of data at a time. Superscalar combines the both concepts together and executes single instruction on single unit of data but it has a set of processing units working simultaneously.

MIMD architecture could be seen in some of core i7 processors and in XEON Intel processors.

Multiple instruction streams single data (MISD) is another rare category of units that take instructions from multiple resources working on the same data. Like multiple types of algorithms trying to solve single coded message.

MISD architecture is a rare architecture that could only be found in a very few examples. One of the real life examples is Hydra computer in Carnegie Mellon University in 1971. Similarly the concept could be found in VLIW computers (very long instruction word computers) where the word size is very long, so instead of dividing the word into smaller words, the instructions are given to the same word. VLIW computer was invented in Yale University 1981[7].

____________________________________________________

[1] Sajjan G. Shiva, “Computer Organization, Design, and Architecture, Fourth Edition”, Taylor and Francis group, 2007, Page 592

[2] Introduction to Parallel Processing, Section 3, math.udel.edu

[3] Sajjan G. Shiva, “Computer Organization, Design, and Architecture, Fourth Edition”, Taylor and Francis group, 2007, Page 592

[4] Glen E. Clarke, Edward Tetz, “CompTIA A+ Certification All-In-One Desk Reference For Dummies”, Wiley publishing Inc., 2007, page 131

[5] Glen E. Clarke, Edward Tetz, “CompTIA A+ Certification All-In-One Desk Reference For Dummies”, Wiley publishing Inc., 2007, page 131

[6] Intel, Intel® Core™ i5-750 Processor.

[7] Henry M. Levy, Capability-Based Computer Systems, “The Hydra System“, Digital Equipment Corporation 1984, Chapter 6, Page 103