next up previous contents index
Next: การเปรียบเทียบการทำงานแบบวงรอบเดียวกับแบบไพพ์ลายน์ Up: การเพิ่มประสิทธิภาพโดยเทคนิคไพพ์ลายน์ Previous: เป้าประสงค์   Contents   Index

กล่าวนำ

เทคนิคไพพ์ลายน์ (Pipeline) เป็นเทคนิคที่สำคัญในการประมวลผลคำสั่งที่สามารถเลื่อมซ้อนกันได้ ซึ่งเทคนิคนี้เป็นเทคนิคที่สำคัญที่ทำให้โปรเซสเซอร์สามารถทำงานได้เร็วขึ้น

เพื่อช่วยในการเข้าใจเราจะทำการเปรียบเทียบเชิงนัยกับการทำไพพ์ลายน์กับการทำความสะอาดเสื้อผ้า การทำความสะอาดเสื้อผ้าโดยใช้เครื่องมีขั้นตอนดังต่อไปนี้

  1. นำเสื้อผ้าที่ยังไม่ได้ซักมาใส่ลงในเครื่องซักผ้า
  2. เมื่อซักผ้าเสร็จ นำผ้าจากเครื่องซัก ในไปใส่ในเครื่องอบแห้ง
  3. เมื่ออบแห้งดีแล้ว นำผ้าออกจากเครื่องเพื่อนำมาพับเก็บ
  4. นำผ้าที่พับเก็บมาใส่ในตู้ให้เรียบร้อย

เมื่อดำเนินการตามขั้นตอนเสร็จสิ้น คนอื่นสามารถเริ่มซักผ้าของตนเองต่อไปได้

วิธีการไพพ์ลายน์สามารถลดเวลาการทำงานได้ดังแสดงในรูปที่ 6.1 เมื่อทำการซักผ้าเสร็จในเครื่องซักผ้าและนำมาใส่เครื่องอบ ผู้ที่รอบริการอยู่สามารถนำผ้าของตนเองเข้าซักได้ทันทีโดยไม่ต้องรอให้เสร็จทั้งกระบวนการ เมื่ออบผ้าชุดแรกเสร็จ สามารถนำผ้าชุดที่สองเข้าอบ และนำผ้าชุดที่สามเข้าซักได้ จากนั้น เมื่อพับผ้าชุดแรกเสร็จนำใส่ตู้ เราสามารถพับผ้าชุดที่สอง อบชุดที่สาม และซักผ้าชุดที่สี่ไปพร้อมกัน ในแต่ละขั้นตอนเรียกว่า ``สเตท'' (Stage) ในการทำไพพ์ลายน์ เวลาที่ใช้ในการซักผ้าในแต่ละชุดไม่ได้ลดลง แต่ในเวลาที่เท่ากันวิธีการไพพ์ลายน์สามารถทำงานให้ประสบความสำเร็จได้มากขึ้น ซึ่งเป็นการเพิ่มอัตราความสำเร็จของงานต่อเวลา

Figure 6.1: การเปรียบเทียบเชิงอุปมาในการทำไพพ์ลายน์ของการซักผ้า
\includegraphics[width=6in]{fig/Chapter_6/Figure_6.1.eps}

ถ้าในทุกสเตทของการทำงานใช้ระยะเวลาเท่ากัน และมีประมาณงานเพียงพอที่จะทำงานในระยะเวลานั้นๆ ประสิทธิภาพที่เพิ่มขึ้นของไพพ์ลายน์ (Speedup) เท่ากับจำนวนสเตทของไพพ์ลายน์ จากตัวอย่างที่มีสี่สเตท ระบบซักผ้าแบบไพพ์ลายน์มีความเร็วเพิ่มขึ้นเป็นสี่เท่า การซักผ้า 20 ตะกร้าโดยเทคนิคไพพ์ลายน์ใช้เวลาเป็น 5 เท่าของการซักหนึ่งตะกร้า การซักผ้า 20 ตะกร้าโดย ทำให้เสร็จทีละตะกร้าใช้เวลาเป็น 20 เท่าของการซักหนึ่งตะกร้า ในรูป 6.1 มี Speedup ที่ได้เท่ากับ 2.3 เนื่องจากไพพ์ลายน๎ยังไม่เต็ม ในการทำงานเมื่อเวลาผ่านไป Speedup ที่ได้จะมีค่าใกล้เคียง 4 มากขึ้น

เมื่อนำวิธีการเดียวกันมาใช้งานกับโปรเซสเซอร์ เราสามารถแบ่งการทำงานได้เป็น 5 ขั้นตอน

  1. Fetch Instruction จากหน่วยความจำ
  2. Read Register และ ทำการ Decode คำสั่ง
  3. Execute หรือ Calculate Address
  4. Access Memory
  5. Write Result ในรีจีสเตอร์

ดังนั้นโปรเเซสเซอร์ MIPS แบบไพพ์ลายน์ในบทนี้จะมี 5 สเตท



Subsections

Vara Varavithya 2006-11-06