ท่อส่งคำสั่งคืออะไร?

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

ประวัติโปรเซสเซอร์ในการสั่งซื้อ

ในคอมพิวเตอร์ยุคแรกๆ CPU ไม่ได้ใช้ไปป์ไลน์คำสั่ง ใน CPU เหล่านี้ การดำเนินการรอบเดียวแต่ละครั้งจำเป็นต้องเกิดขึ้นสำหรับทุกคำสั่ง ซึ่งหมายความว่าต้องใช้เวลาห้ารอบสัญญาณนาฬิกาในการประมวลผลคำสั่งโดยเฉลี่ยทั้งหมดก่อนที่จะเริ่มคำสั่งถัดไป การดำเนินการบางอย่างอาจไม่จำเป็นต้องเขียนผลลัพธ์ใดๆ ลงในรีจิสเตอร์ หมายความว่าสามารถข้ามขั้นตอนการเข้าถึงหน่วยความจำและการเขียนกลับได้

ท่อส่งคำสั่งคืออะไร?

ในโปรเซสเซอร์ย่อยสเกลาร์ที่ไม่มีไพพ์ไลน์ แต่ละส่วนของแต่ละคำสั่งจะถูกดำเนินการตามลำดับ

มีปัญหาแฝงอยู่ แต่เมื่อเรียกใช้คำสั่งทั้งหมดตามลำดับก่อนที่จะสามารถไปยังคำสั่งถัดไปได้ ปัญหาคือแคชพลาด CPU เก็บข้อมูลที่กำลังประมวลผลอยู่ในการลงทะเบียน ซึ่งสามารถเข้าถึงได้ด้วยเวลาแฝงหนึ่งรอบ ปัญหาคือว่ารีจิสเตอร์นั้นเล็กเพราะมันติดตั้งอยู่ในคอร์โปรเซสเซอร์ CPU ต้องไปแคช L1 ที่ใหญ่กว่าแต่ช้ากว่า หากยังไม่ได้โหลดข้อมูล หากไม่มีจะต้องไปที่แคช L2 ที่ใหญ่กว่าและช้ากว่าอีกครั้ง ขั้นตอนต่อไปคือแคช L3; ตัวเลือกสุดท้ายคือ RAM ของระบบ แต่ละตัวเลือกเหล่านี้ต้องใช้รอบ CPU มากขึ้นเรื่อยๆ ในการตรวจสอบ

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

ท่อส่ง RISC แบบคลาสสิก

RISC ย่อมาจาก Reded Instruction Set Computer เป็นรูปแบบของการออกแบบโปรเซสเซอร์ที่เพิ่มประสิทธิภาพโดยการทำให้การถอดรหัสแต่ละคำสั่งง่ายขึ้น สิ่งนี้เปรียบเทียบกับ CISC หรือ Complex Instruction Set Computer ซึ่งออกแบบชุดคำสั่งที่ซับซ้อนมากขึ้น ทำให้จำเป็นต้องใช้คำสั่งน้อยลงในการทำงานเดียวกัน

การออกแบบ RISC แบบคลาสสิกประกอบด้วยไปป์ไลน์คำสั่ง แทนที่จะเรียกใช้ขั้นตอนคำสั่งใด ๆ จากห้าขั้นตอนในรอบใด ๆ ไปป์ไลน์อนุญาตให้ดำเนินการทั้งห้าขั้นตอน แน่นอน คุณไม่สามารถเรียกใช้ทั้งห้าขั้นตอนของหนึ่งคำสั่งในหนึ่งรอบได้ แต่คุณสามารถจัดคิวคำสั่งต่อเนื่องกันห้าคำสั่งโดยมีค่าชดเชยหนึ่งสเตจ ด้วยวิธีนี้ คำสั่งใหม่จะเสร็จสมบูรณ์ในแต่ละรอบสัญญาณนาฬิกา ให้ประสิทธิภาพที่เพิ่มขึ้น 5 เท่าสำหรับความซับซ้อนของคอร์ที่เพิ่มขึ้นค่อนข้างต่ำ

ท่อส่งคำสั่งคืออะไร?

ในโปรเซสเซอร์ไปป์ไลน์แบบสเกลาร์ แต่ละขั้นตอนของการดำเนินการตามคำสั่งสามารถทำได้หนึ่งครั้งต่อรอบสัญญาณนาฬิกา สิ่งนี้ทำให้ได้ปริมาณงานสูงสุดของหนึ่งคำสั่งที่สมบูรณ์ต่อรอบ

โปรเซสเซอร์ที่ไม่มีไปป์ไลน์สามารถเป็นสเกลาร์ย่อยได้เท่านั้น เนื่องจากไม่สามารถดำเนินการคำสั่งที่สมบูรณ์หนึ่งคำสั่งต่อรอบได้ ด้วยไปป์ไลน์ห้าขั้นตอนหลักนี้ คุณสามารถสร้าง CPU แบบสเกลาร์ที่สามารถดำเนินการตามคำสั่งสำหรับทุกกระบวนการ ด้วยการสร้างไพพ์ไลน์ที่กว้างขวางยิ่งขึ้น คุณสามารถสร้างซีพียูระดับซูเปอร์สเกลาร์ที่สามารถดำเนินการได้มากกว่าหนึ่งคำสั่งต่อรอบสัญญาณนาฬิกา แน่นอนว่ายังคงมีปัญหาที่อาจเกิดขึ้น

ยังคงเป็นลำดับ

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

โซลูชันเหล่านี้สามารถทำงานได้บนโปรเซสเซอร์ที่ไม่ได้ไปป์ไลน์ แต่จำเป็นสำหรับโปรเซสเซอร์ซูเปอร์สเกลาร์ที่รันมากกว่าหนึ่งคำสั่งต่อสัญญาณนาฬิกา ตัวทำนายสาขายังมีประโยชน์อย่างมากเนื่องจากสามารถพยายามทำนายผลลัพธ์ของคำสั่งที่มีผลลัพธ์ที่เป็นไปได้มากกว่าหนึ่งรายการ และดำเนินการต่อโดยสมมติว่าถูกต้อง เว้นแต่จะพิสูจน์เป็นอย่างอื่น

บทสรุป

ไปป์ไลน์ช่วยให้สามารถใช้ความสามารถที่แตกต่างกันทั้งหมดของโปรเซสเซอร์ในทุกรอบ ทำสิ่งนี้ได้โดยการเรียกใช้ขั้นตอนต่าง ๆ ของคำสั่งต่าง ๆ พร้อมกัน สิ่งนี้ไม่ได้เพิ่มความซับซ้อนให้กับการออกแบบ CPU เลยแม้แต่น้อย นอกจากนี้ยังเป็นการปูทางเพื่อให้มีคำสั่งมากกว่าหนึ่งคำสั่งในการดำเนินการขั้นตอนเดียวต่อรอบ



Leave a Comment

วิธีการโคลนฮาร์ดไดรฟ์

วิธีการโคลนฮาร์ดไดรฟ์

ในยุคดิจิทัลสมัยใหม่ ที่ข้อมูลเป็นทรัพย์สินที่มีค่า การโคลนฮาร์ดไดรฟ์บน Windows อาจเป็นกระบวนการที่สำคัญสำหรับหลายๆ คน คู่มือที่ครอบคลุมนี้

วิธีแก้ไขไดรเวอร์ WUDFRd ไม่สามารถโหลดบน Windows 10 ได้

วิธีแก้ไขไดรเวอร์ WUDFRd ไม่สามารถโหลดบน Windows 10 ได้

คุณกำลังเผชิญกับข้อความแสดงข้อผิดพลาดขณะบูตเครื่องคอมพิวเตอร์ซึ่งระบุว่าไดรเวอร์ WUDFRd ไม่สามารถโหลดบนคอมพิวเตอร์ของคุณได้ใช่หรือไม่?

วิธีแก้ไขรหัสข้อผิดพลาด NVIDIA GeForce Experience 0x0003

วิธีแก้ไขรหัสข้อผิดพลาด NVIDIA GeForce Experience 0x0003

คุณพบประสบการณ์รหัสข้อผิดพลาด NVIDIA GeForce 0x0003 บนเดสก์ท็อปของคุณหรือไม่? หากใช่ โปรดอ่านบล็อกเพื่อดูวิธีแก้ไขข้อผิดพลาดนี้อย่างรวดเร็วและง่ายดาย

Roomba Stops, Sticks and Turns Around – Fix

Roomba Stops, Sticks and Turns Around – Fix

Fix a problem where your Roomba robot vacuum stops, sticks, and keeps turning around.

วิธีลบ GPU ออกจากพีซีที่ใช้ Windows ในปี 2023

วิธีลบ GPU ออกจากพีซีที่ใช้ Windows ในปี 2023

คุณจำเป็นต้องลบ GPU ออกจากพีซีของคุณหรือไม่? เข้าร่วมกับฉันในขณะที่ฉันอธิบายวิธีลบ GPU ออกจากพีซีของคุณในคำแนะนำทีละขั้นตอนนี้

วิธีการติดตั้ง NVMe SSD ในเดสก์ท็อปและแล็ปท็อป

วิธีการติดตั้ง NVMe SSD ในเดสก์ท็อปและแล็ปท็อป

ซื้อ NVMe M.2 SSD ใหม่ แต่ไม่รู้ว่าจะติดตั้งอย่างไร? อ่านเพื่อเรียนรู้วิธีติดตั้ง NVMe SSD บนแล็ปท็อปหรือเดสก์ท็อป

Logic Bomb คืออะไร?

Logic Bomb คืออะไร?

ลอจิกบอมบ์คือเหตุการณ์ด้านความปลอดภัยที่ผู้โจมตีดำเนินการล่าช้า อ่านต่อเพื่อหาข้อมูลเพิ่มเติม

SoC คืออะไร?

SoC คืออะไร?

หากคุณเคยดูภายในพีซีทาวเวอร์ คุณจะเห็นว่ามีส่วนประกอบต่างๆ มากมาย แล็ปท็อปทั่วไปของคุณมีส่วนประกอบที่เหมือนกันเป็นส่วนใหญ่

การเข้ารหัสแบบอสมมาตรคืออะไร?

การเข้ารหัสแบบอสมมาตรคืออะไร?

อัลกอริธึมการเข้ารหัสแบบอสมมาตรใช้สองคีย์ที่แตกต่างกัน คีย์หนึ่งใช้สำหรับเข้ารหัสและอีกคีย์หนึ่งสำหรับถอดรหัส

Steam Deck: วิธีฟอร์แมตการ์ด SD

Steam Deck: วิธีฟอร์แมตการ์ด SD

Steam Deck มีตัวเลือกพื้นที่เก็บข้อมูลสามแบบ: 64GB eMMC, 256GB NVMe SSD และ 512GB NVMe SSD ขึ้นอยู่กับคลังเกมของคุณและขนาดของเกม