ADD R2, R3, R1 ADD R4, R5, R1 ADD R6, R7, R1 ADD R8, R9, R1 ...
Also, at start of the CPU cycle, the ID stage selects R4 and R5 to be copied into the A and B registers.
Also, at the end of the CPU cycle, A is updated to R4 and B is updated to R5.
Also, at the end of the CPU cycle, the instruction (ADD R1, R2, R3) is moved into IR(MEM), ADD R4, R5, R1 is moved into IR(EX) and instruction ADD R6, R7, R1 is fetched into IR(ID)
Also, at start of the CPU cycle, the ID stage selects R6 and R7 to be copied into the A and B registers.
Also, at the end of the CPU cycle, A is updated to R6 and B is updated to R7.
Also, at the end of the CPU cycle, the instruction (ADD R1, R2, R3) is moved into IR(WB), ADD R4, R5, R1 is moved into IR(MEM), instruction ADD R6, R7, R1 is moved into IR(EX) and instruction ADD R8, R9, R1 is fetched into IR(ID)
So the execution of every instruction will be correct even these instructions are processed simultaneously !!!
Well, not quite... we will find some problems in the basic pipelined CPU later....
But before we pick on the basic pipelined CPU, let's look at how the basic pipelined CPU execute the other types of instructions...