Pipeline
- ไปป์ไลน์(Pipeline) คือ การทํางานแบบคาบเกี่ยวกัน (overlap) โดยการแบ่งซีพียูออกเป็นส่วนย่อยๆ แล้วแบ่งงานกันรับผิดชอบ- เดิมไปป์ไลน์เป็นเทคนิคของสถาปัตยกรรมแบบ RISC ต่อมานํามาใช้กับสถาปตยกรรมแบบ CISC
- แบ่งเป็นภาคหลัก ๆ คือ ภาคเฟ็ตช์คําสั่ง (Instruction Fetch)
- ภาคการถอดรหัสคําสั่ง (Instruction Decode)
- ภาครับข้อมูล (Get Operands)
- ภาคเอ็กซิคิวต์ (Execute)
- ภาคเขียนผลลัพธ์ (Write Result)
ปัญหาที่เกิดจาก pipeline คือ
1.Structural Hazards : เกิดจากการขัดแย้งเมื่อ hardware ไม่สามารถรองรับการรวมชุดคำ สั่งพร้อมกันในเวลาเดียวกัน เกิดการทับซ้อนกันเมื่อมีการ execute
2.Data Hazards : เกิดจากการทีชุดคำสั่งทับซ้อนกัน ไม่สามารถที่จะ execute
3.Control Hazard : pipe line ที่แยกชุดคำสั่งไม่สามารถควบคุมสัญญาณได้
Pipeline hazard
เหตุการณ์ที่อาจเกิดผลกระทบอย่างรุนแรงกับผลลัพธ์ที่ออกมาได้เนื่องจากคำสั่งบางคําสั่งจะมีการเขียนผลลัพธ์ลงบนตัว Operand บางตัวที่ต้องถูกอ่านค่าจากอีกคำสั่งหนึ่ง
ประเภทของการเกิด Pipeline hazard
1.Data hazard
2.Branch hazard
1.Data hazard
“Read after write” หรือ RAW Data hazard
100: add r0, r2, r4
104: sub r3, r0, r1
- Write after write (WAW)
- Write after read (WAR)
- เปรียบเทียบ RAW, WAW และ WAR
RAW WAW WAR
1. add r0, r1, r2 1. add r0, r1, r2 1. add r2, r1, r0
2. sub r4, r3, r0 2. sub r0, r4, r5 2. sub r0, r3, r4
2.Branch hazard
- Branch delay
- ระบบจะต้องเก็บข้อมูลบางอย่างเอาไว้เช่น แอดเดรสของชุดคําสั่งก่อนและหลังที่จะพบปัญหา branch delay หรือค่า PC ของชุดคําสั่งถัดจากคำสั่ง branch ควรจะเป็นค่าใด
- หน่วยความจําแคช มักจะใช้ branch prediction ที่เรียกว่าBranch Target Buffer (BTB) เข้ามาทํางานร่วมกันใน
- ชิพของโปรเซสเซอร์
โครงสร้าง CPU ของ Laptop ที่มีอยู่
CPU = Intel Core i7-2670QM (2.0 GHz, 6 MB L3 Cache, up to 2.90 GHz)
Chipset = Mobile Intel? HM67 Express
