Learn free · topic 231
SISD, SIMD, MISD and MIMD
There are four types of instructions to pull data i.e., SISD, SIMD, MISD and MIMD.
- SISD: Single Instruction Stream and Single Data Stream
- SIMD: Single Instruction Stream and Multiple Data Stream
- MISD: Multiple Instruction Stream and Single Data Stream
- MIMD: Multiple Instruction Stream and Multiple Data Stream
Before we jump into understanding all above mentioned techniques, let’s first understand what is a Core in a machine or in a computer or in a server etc.?
A CPU Core is built of billions of microscopic transistors to process instructions passed to it. One instruction is handled by One core, if someone needs multitasking or multiple instruction in parallel, minimum 2 cores are required.
We know when we insert or load data in a computer or server or in a node, it gets saved in hard disk. We won’t go in to details how it is stored on the hard disk. We can imagine when we write something on paper, consider the same way, data is saved in a hard disk.
Referring to this same example i.e., data written on a paper let’s try to understand SISD, SIMD, MISD and MIMD.
Single Instruction Stream and Single Data Stream (SISD)
SISD works just like a traditional human. Humans can read a single letter or word at one time. Same way, old CPUs with SISD method used to read one data one by one.
In this technique, if there is an instruction/ query to find all the ‘A’ written on the page, it will read and return each ‘A’, sequentially. This method takes a lot of time to process 100s or 1000s of data point as each data stream get processed one by one. What if there is Gigabyte and Terabyte of pages of data 😊?
Single Instruction Stream and Multiple Data Stream (SIMD)
SIMD solves this problem of reading each letter or word one by one. It starts processing or reading in parallel where e.g., if there is an instruction/ query to find how many letters ‘A’ is written on a paper, SIMD starts reading all ‘A’ in parallel and can return all ‘A’, in much quick manner as compared to SISD.
Multiple Instruction Stream and Single Data Stream (MISD)
Next challenge was to send multiple instructions to read same pieces of information. In other words, if multiple instructions are sent to read all the ‘A’ then each instruction is processed one by one, sequentially. Means, if there are 100s or 1000s of instructions then processing all the instructions to read ‘A’ would take a lot of time.
Multiple Instruction Stream and Multiple Data Stream (MIMD)
Another scenario is to read all the ‘B’ along with ‘A’, means multiple instructions/ queries to ready different set of information. MIMD supports his behavior so multiple instructions can be processed in parallel to read multiple data elements.
Please note all above multi-instructions or multi-data reads are based on number of cores available in a computer or server or in a node.
Finished reading? Test yourself with 10 questions on this topic.
Go to the questions →From I Am Datapedia! by Mustafa Qizilbash, published here free by the author. Nothing about your reading is stored.