Barrier หน่วยความจำคืออะไร?

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

หยุดชะงักในการสั่งซื้อ

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

ผลกระทบด้านประสิทธิภาพของแผงท่อส่งอาจไม่เลวร้ายนัก แต่ก็ค่อนข้างรุนแรงเช่นกัน ตัวอย่างเช่น โดยทั่วไปแคช L1 สามารถส่งคืนผลลัพธ์ตามลำดับขนาดของรอบ CPU 5 รอบ แคช L2 อาจใช้เวลา 20 รอบ L3 ประมาณ 200 รอบ และ RAM ของระบบประมาณ 400 รอบ เนื่องจาก CPU อาจทำงานที่ความเร็วประมาณ 5GHz นั่นคือ 5 พันล้านรอบสัญญาณนาฬิกาต่อวินาที แม้แต่ 400 รอบก็ไม่เลว (0.000008%) แต่ถ้าคุณมีคำแนะนำมากมายที่จำเป็นในการอ้างอิงข้อมูลในระดับแคชที่ลึกลงไปอีก ผลกระทบสะสมอาจทำให้การทำงานช้าลงอย่างเห็นได้ชัด

การดำเนินการนอกคำสั่งและการเปลี่ยนชื่อทะเบียน

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

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

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

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

อุปสรรคของหน่วยความจำ

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

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

อุปสรรคด้านหน่วยความจำอาจมาพร้อมกับประสิทธิภาพการทำงานที่ลดลง นี่เป็นเพราะป้องกันไม่ให้ตัวกำหนดตารางเวลาของ CPU เพิ่มประสิทธิภาพส่วนเฉพาะของโฟลว์คำสั่ง สิ่งนี้จะเพิ่มโอกาสของการหยุดทำงานของท่อ

บทสรุป

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

สิ่งกีดขวางหน่วยความจำบังคับให้ตัวกำหนดตารางเวลาของ CPU ตรวจสอบให้แน่ใจว่าคำสั่งเสร็จสิ้นก่อนคำสั่งใด ๆ หลังจากสิ่งกีดขวาง สิ่งนี้จะป้องกันการทำงานของหน่วยความจำจากการเรียงลำดับใหม่ นอกจากนี้ยังป้องกันไม่ให้ 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 ขึ้นอยู่กับคลังเกมของคุณและขนาดของเกม