I initially ran into this doubt while trying to figure out whether a pipelined / super-scalar CPU is SISD, SIMD, MISD or MIMD. I did later read from Wikipedia (SISD article) that:
"According to Michael J. Flynn, SISD can have concurrent processing characteristics. Pipelined processors and superscalar processors are common examples found in most modern SISD computers."
Also from Wikipedia (MISD article):
"Pipeline architectures belong to this [MISD] type, though a purist might say that the data is different after processing by each stage in the pipeline."
So, is it correct to conclude that:
1) The requirement for 'Single Instruction Stream' processing is that there is only a single high-level thread of execution.
2) Just because instruction level parallelism in a thread is exploited, it cannot be considered 'Multiple Instruction Stream' processing.
What about the term 'Single Data Stream'?
Can someone say what the data stream for the following MIPS assembly code is:
addi $s1,$s0,4
lw $t0,0($s0)
add $s2,$s0,$s1
Is it a 'Single Data Stream'? Does this situation change if the system exploits instruction-level parallelism?