120 likes | 241 Views
IF Stage. Reservations. Instruction Queue. on CDB in Cycle. name. b. OP. V1. Q1. V2. Q2. Instruction tag. ADD1. ADD2. ADD3. MUL1. MUL2. DIV. INT. effective address. MU1. MU2. MU3. CDB. R4. R7. R8. R11. R12. R15. F0. F3. F4. F7. F8. F11. F12. F15.
E N D
IF Stage Reservations Instruction Queue on CDB in Cycle name b OP V1 Q1 V2 Q2 Instruction tag ADD1 ADD2 ADD3 MUL1 MUL2 DIV INT effective address MU1 MU2 MU3 CDB R4 R7 R8 R11 R12 R15 F0 F3 F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 0 LD F6,34(R1) LD F6,34(R1) MU3 0 LD 34 NO r1 NO R0 R1 R2 R3 Ladebefehl kann reserviert werden. MU3
IF Stage Reservations Instruction Queue on CDB in Cycle name b OP V1 Q1 V2 Q2 Instruction tag ADD1 ADD2 ADD3 MUL1 MUL2 DIV INT effective address MU1 MU2 MU3 CDB R4 R7 R8 R11 R12 R15 F0 F3 F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 1 LD F0,45(R3) LD F0,45(R3) MU2 LD F6,34(R1) MU3 0 LD 45 NO r3 NO 0 LD r1+34 34 NO r1 NO R0 R1 R2 R3 Ladebefehl kann reserviert werden. Die effektive Adresse von MU3 berechnet sich. MU2 MU3
IF Stage Reservations Instruction Queue on CDB in Cycle name b OP V1 Q1 V2 Q2 Instruction tag ADD1 ADD2 ADD3 MUL1 MUL2 DIV INT effective address MU1 MU2 MU3 CDB 1 R4 R7 R8 R11 R12 R15 F0 F3 F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 2 MULD F0,F0,F6 0 MD MU2 MU3 MULD F0,F0,F6 MUL1 LD F0,45(R3) MU2 LD F6,34(R1) MU3 0 LD 45 NO r3 NO r3+45 0 LD r1+34 34 NO r1 NO 3 R0 R1 R2 R3 Multiplikation wird reserviert, und merkt sich als Oper-anden MU2, MU3. MU3 wird aktiv und geht im Zyklus 3 auf den CDB. MU2 berechnet seine effektive Adresse MU2 MUL1 MU3
IF Stage Reservations Instruction Queue on CDB in Cycle name b OP V1 Q1 V2 Q2 Instruction tag ADD1 ADD2 ADD3 MUL1 MUL2 DIV INT effective address MU1 MU2 MU3 CDB 1 R4 R7 R8 R11 R12 R15 F0 F3 F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 3 SUBD F8,F6,F2 A f67 0 SD MU3 SUBD F8,F6,F2 ADD1 0 MD MU2 A MU3 MULD F0,F0,F6 MUL1 LD F0,45(R3) MU2 LD F6,34(R1) MU3 0 LD 45 NO r3 NO r3+45 4 1 LD r1+34 34 NO r1 NO 3 MU3 A:=D[r1+34] R0 R1 R2 R3 Die Subtraktion wird reserviert. MU3 geht auf den CDB. MU2 wird aktiv und schreibt in 4 auf den CDB MUL1 A MU3 ADD1
IF Stage Instruction Queue on CDB in Cycle Instruction tag CDB 1 1 R4 R7 R8 R11 R12 R15 F0 F3 F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 4 DIVD F10,F0,F6 Reservations name b OP V1 Q1 V2 Q2 A f67 6 ADD1 0 SD ADD2 DIVD F10,F0,F6 DIV ADD3 0 MD B MU2 A MUL1 SUBD F8,F6,F2 ADD1 MUL2 MULD F0,F0,F6 DIV MUL1 0 DD MUL1 A INT effective address LD F0,45(R3) MU2 MU3 MU1 LD MU2 45 NO r3 NO 4 r3+45 R0 MU2 B:=D[r3+45] R1 R2 R3 Die Division wird reserviert. Da MU2 auf dem CDB liegt, uebernimmt MUL1 seinen Operanden. MU2 terminiert. Die Subtraktion startet und geht im Zyklus 6 auf den CDB. MUL1 A DIV
IF Stage Reservations Instruction Queue on CDB in Cycle name b OP V1 Q1 V2 Q2 Instruction tag ADD1 ADD2 ADD3 MUL1 MUL2 DIV INT effective address MU1 MU2 MU3 CDB 1 R4 R7 R8 R11 R12 R15 F0 F3 F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 5 ADDD F6,F8,F4 A 6 1 SD f67 f45 0 AD ADD1 ADDD F6,F8,F4 ADD2 0 MD B A 13 DIVD F10,F0,F6 DIV SUBD F8,F0,F6 ADD1 0 DD MUL1 A MULD F0,F0,F6 MUL1 R0 R1 R2 R3 Die Addition wird reserviert. Der Multiplizierer kann aktiv werden und geht in Zyklus 13 auf den CDB. MUL1 A ADD2 ADD1 DIV
IF Stage Reservations Instruction Queue on CDB in Cycle name b OP V1 Q1 V2 Q2 Instruction tag ADD1 ADD2 ADD3 MUL1 MUL2 DIV INT effective address MU1 MU2 MU3 CDB 1 1 1 R4 R7 R8 R11 R12 R15 F0 F3 F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 6 XXX…... stall A 6 0 SD f67 f45 8 0 AD ADD1 ADDD F6,F8,F4 ADD2 0 MD B A 13 DIVD F10,F0,F6 DIV SUBD F8,F0,F6 ADD1 0 DD MUL1 A MULD F0,F0,F6 MUL1 ADD1 C:=A-f67 R0 R1 R2 R3 Subtraktion endet und die Addition startet, geht also in Zyklus 8 auf den CDB. Es könnte nun kein weiterer Befehl ausgegeben werden, weil die Schlange voll ist. MUL1 A ADD2 ADD1 C DIV
IF Stage Reservations Instruction Queue on CDB in Cycle name b OP V1 Q1 V2 Q2 Instruction tag ADD1 ADD2 ADD3 MUL1 MUL2 DIV INT effective address MU1 MU2 MU3 CDB 1 1 R4 R7 R8 R11 R12 R15 F0 F3 F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 7 XXX…... f45 8 0 AD ADD1 0 MD B A 13 ADDD F6,F8,F4 ADD2 DIVD F10,F0,F6 DIV 0 DD MUL1 A MULD F0,F0,F6 MUL1 R0 R1 R2 R3 Die Operationen laufen noch. Es könnten nun ein weiterer Befehl ausgegeben werden. MUL1 A ADD2 C DIV
IF Stage Reservations Instruction Queue on CDB in Cycle name b OP V1 Q1 V2 Q2 Instruction tag ADD1 ADD2 ADD3 MUL1 MUL2 DIV INT effective address MU1 MU2 MU3 CDB 1 1 R4 R7 R8 R11 R12 R15 F0 F3 F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 8 XXX…... f45 8 0 AD ADD1 0 MD B A 13 ADDD F6,F8,F4 ADD2 DIVD F10,F0,F6 DIV 0 DD MUL1 A MULD F0,F0,F6 MUL1 ADD2 D:= C+f45 R0 R1 R2 R3 Die Addition endet. Es könnten nun ein weiterer Befehl ausgegeben werden. MUL1 ADD2 D C DIV
IF Stage Reservations Instruction Queue on CDB in Cycle name b OP V1 Q1 V2 Q2 Instruction tag ADD1 ADD2 ADD3 MUL1 MUL2 DIV INT effective address MU1 MU2 MU3 CDB 1 R4 R7 R8 R11 R12 R15 F0 F3 F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 9 XXX…... 0 MD B A 13 DIVD F10,F0,F6 DIV 0 DD MUL1 A MULD F0,F0,F6 MUL1 R0 R1 R2 R3 Für unser Beispiel geschieht nun nichts mehr bis zum Zyklus 13. Es könnten aber weitere Befehle ausgegeben werden. MUL1 D C DIV
IF Stage Reservations Instruction Queue on CDB in Cycle name b OP V1 Q1 V2 Q2 Instruction tag ADD1 ADD2 ADD3 MUL1 MUL2 DIV E INT effective address MU1 MU2 MU3 CDB 1 R4 R7 R8 R11 R12 R15 F0 F3 E F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 13 XXX…... 0 MD B A 13 DIVD F10,F0,F6 DIV 0 DD MUL1 A MULD F0,F0,F6 MUL1 MUL1 E:=B*A R0 R1 R2 R3 Die Multiplikation endet. Es könnten weitere Befehle ausgegeben werden. MUL1 D C DIV
IF Stage Reservations Instruction Queue on CDB in Cycle name b OP V1 Q1 V2 Q2 Instruction tag ADD1 ADD2 ADD3 MUL1 MUL2 DIV INT effective address MU1 MU2 MU3 CDB 1 R4 R7 R8 R11 R12 R15 F0 F3 F4 F7 F8 F11 F12 F15 Instruction Register Zyklus Nr 14 XXX…... E 38 0 DD A DIVD F10,F0,F6 DIV R0 R1 R2 R3 Nun erst kann die Division anlaufen und endet im Zyklus 38. Es könnten weitere Befehle ausgegeben werden. E D C DIV