Out Of Order Execution คืออะไร?

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

สเกลาร์ย่อยเป็นสเกลาร์ระดับสูง

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

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

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

การรักษาไปป์ไลน์ที่ป้อนด้วยข้อมูล

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

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

การพึ่งพาที่สำคัญ

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

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

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

บทสรุป

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



Leave a Comment

ถ้า Powerbeats Pro ของคุณไม่ชาร์จในเคสจะทำอย่างไร

ถ้า Powerbeats Pro ของคุณไม่ชาร์จในเคสจะทำอย่างไร

ถ้า Powerbeats Pro ของคุณไม่ชาร์จ ให้ใช้แหล่งพลังงานอื่นและทำความสะอาดหูฟังของคุณ โปรดเปิดเคสขณะชาร์จหูฟังของคุณ

Canon Pixma MG5220: สแกนโดยไม่ต้องใช้หมึก

Canon Pixma MG5220: สแกนโดยไม่ต้องใช้หมึก

วิธีการเปิดใช้งานการสแกนบน Canon Pixma MG5220 เมื่อคุณหมดหมึก.

5 เหตุผลที่ทำให้แล็ปท็อปของคุณร้อนเกินไป

5 เหตุผลที่ทำให้แล็ปท็อปของคุณร้อนเกินไป

ค้นหาสาเหตุบางประการที่ทำให้แล็ปท็อปของคุณร้อนเกินไป พร้อมทั้งเคล็ดลับและกลยุทธ์ในการหลีกเลี่ยงปัญหานี้และทำให้เครื่องของคุณเย็นลง

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

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

คุณกำลังเตรียมตัวสำหรับคืนแห่งการเล่นเกมที่จะยิ่งใหญ่ – คุณเพิ่งซื้อ “Star Wars Outlaws” บนบริการสตรีมมิ่ง GeForce Now ค้นพบวิธีแก้ไขข้อผิดพลาด GeForce Now รหัส 0xC272008F เพื่อให้คุณกลับมาเล่นเกม Ubisoft ได้อีกครั้ง

พื้นฐานการพิมพ์ 3D: เคล็ดลับการบำรุงรักษาสำหรับเครื่องพิมพ์ 3D ของคุณ

พื้นฐานการพิมพ์ 3D: เคล็ดลับการบำรุงรักษาสำหรับเครื่องพิมพ์ 3D ของคุณ

การดูแลรักษาเครื่องพิมพ์ 3D ของคุณมีความสำคัญมากเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ต่อไปนี้เป็นเคล็ดลับสำคัญที่ต้องคำนึงถึง.

พื้นฐานการพิมพ์ 3D: เช็คลิสต์การบำรุงรักษาที่ต้องอ่าน

พื้นฐานการพิมพ์ 3D: เช็คลิสต์การบำรุงรักษาที่ต้องอ่าน

การรักษาอุปกรณ์ให้ในสภาพดีเป็นสิ่งจำเป็น นี่คือเคล็ดลับที่มีประโยชน์ในการรักษาเครื่องพิมพ์ 3D ของคุณให้อยู่ในสภาพที่ดีที่สุด

วิธีการใช้ AirPods กับโทรศัพท์ Samsung

วิธีการใช้ AirPods กับโทรศัพท์ Samsung

หากคุณไม่แน่ใจว่าจะซื้อ AirPods สำหรับโทรศัพท์ Samsung ของคุณหรือไม่ คู่มือนี้สามารถช่วยได้อย่างแน่นอน คำถามที่ชัดเจนที่สุดคือทั้งสองรุ่นสามารถทำงานร่วมกันได้หรือไม่

วิธีปิดเสียงชัตเตอร์ของกล้อง – Galaxy S 21 Plus

วิธีปิดเสียงชัตเตอร์ของกล้อง – Galaxy S 21 Plus

ถ่ายภาพเหมือนนินจาและปิดเสียงชัตเตอร์บน Galaxy S21 Plus ของคุณ นอกจากนี้ ดูว่าคุณสามารถทำอะไรได้บ้างหากคุณไม่มีตัวเลือกนี้

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

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

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

Pi-hole คืออะไร?

Pi-hole คืออะไร?

เรียนรู้เกี่ยวกับ Pi-hole ตัวบล็อกโฆษณาที่ทำงานที่ระดับ DNS ซึ่งสามารถบล็อกโฆษณาได้ทั่วทั้งเครือข่ายของคุณ และวิธีการติดตั้งและใช้งานได้อย่างง่ายดาย