dependency อันแรก ไม่สามารถทำการ Forward ทันทีได้จึงเกิด Stall เนื่องจาก Data Hazard
ส่วนอันต่อมาคือ divf f1, f8, f7 ไม่เกิด Stall เพราะมีการสร้าง nop มาขั้นก่อน
divf f2, f9, f7 นั้นเราไม่สามารถทำ Floating Point ได้พร้อมกันจึงเกิด Stall [Structural Hazard]
ส่วนอันต่อมาคือ divf f1, f8, f7 ไม่เกิด Stall เพราะมีการสร้าง nop มาขั้นก่อน
divf f2, f9, f7 นั้นเราไม่สามารถทำ Floating Point ได้พร้อมกันจึงเกิด Stall [Structural Hazard]
หลังจาก divf f1, f8, f7 ทำงานเสร็จ divf f2, f9, f7 สามารถทำงานต่อได้ทันที [divf ใช้เวลา 19 CC] แต่บรรทัดต่อมาเกิด Data Hazard ขึ้นทำให้มันเกิด Stall รอจนกว่า divf f2, f9, f7 เสร็จ
** S-stall => Structural , R-stall => Raw [CC : Clock Cycles]
** S-stall => Structural , R-stall => Raw [CC : Clock Cycles]
เมื่อทำงานเสร็จ addf f3, f1, f2 จึงจะทำงาน ส่วนบรรทัดต่อมาจะถูก Stall อีกครั้งเนื่องจากเกิด Data Hazard กับ f3 ส่วนเมื่อ divf f10, f3, f7 ทำงาน divf อันต่อมาก็จะทำงานไม่ได้ Structural Hazard และเป็นเช่นนี้กับ divf อันต่อมาด้วย
แต่mulf ใช้ CC เพียง 5 ซึ่งน้อยว่า divf
**T-stall => Trap
ไม่มีความคิดเห็น:
แสดงความคิดเห็น