วันพุธที่ 10 สิงหาคม พ.ศ. 2554

Pipeline


Pipeline คือ เทคนิคทำให้คำสั่งหลายๆ คำสั่งทำงานพร้อมๆ กัน แต่ละส่วนจะทำงานให้เสร็จในส่วนของมัน แต่ละส่วนจะทำงานต่างกัน แต่ละส่วนเรียกว่า "Pipe Stage" และแต่ละส่วนจะทำงานต่อเนื่องเป็นทอด ๆ เขาเลยเปรียบเทียบ pipeline กับสายพานเครื่องจักรไงครับ เวลาที่ใช้เคลื่อนที่จากส่วนหนึ่ง (Pipe Stage) ไปยังอีกส่วนหนึ่ง เราเรียกว่า "Machine Cycle" เนืองจากทุกๆ ส่วนทำงานพร้อมกันดังนั้น ค่า Machine Cycle จะดูจากเวลาที่ใช้ใน Pipe Stage ที่ช้าที่สุด

...เป้าหมายสูงสุดของ Pipeline ก็คือ ต้องการให้ความยาวของ Pipeline แต่ละขั้นตอนเกิดความสมดุล ถ้าขั้นตอนแต่ละขั้นตอนสมดุลกันแล้วเวลาที่ใช้ต่อ 1 คําสั่งใน Pipeline จะเท่ากับการใช้ Pipeline จะส่งผลทําให้เวลาการทํางานต่อคําสั่ง 1 คําสั่งลดลง

...ดังนั้น ถ้ามีจำนวน Pipeline เยอะๆ ก็จะช่วยให้การประมวลผลคำสั่งได้เร็วยิ่งขึ้นไงครับ แต่ทั้งนี้ก็ขึ้นอยู่กับการออกแบบ Pipeline และองค์ประกอบอื่นๆ ด้วย เพราะว่าคำอธิบายการทำงานมันก็เป็นแค่ทฤษฎี

...จริงๆ มันก็คือ การออกแบบขั้นตอนการประมวลต่อ 1 คำสั่งให้ใช้เวลาน้อยที่สุดอ่ะครับ จะได้ไม่เปลือง Clock และถ้ามีหลายๆ Pipeline มันก็จะช่วยประมวลผลพร้อมๆ กัน ทำให้เพิ่มความเร็วในการประมวลได้ครับ ไม่จำเป็นต้องเพิ่มความถี่สัญญาณนาฬิกา (Clock) ให้สูงเสมอไป

ไม่มีความคิดเห็น:

แสดงความคิดเห็น