บัฟเฟอร์ Lookaside การแปลคืออะไร

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

ทำไมความเร็วหน่วยความจำจึงสำคัญ?

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

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

หน่วยความจำเสมือนมาเพื่อทำให้ทุกอย่างยุ่งเหยิง

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

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

ป้อนบัฟเฟอร์ที่มองข้ามการแปล

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

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

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

หมายเหตุ: มีแผนการที่แตกต่างกันสำหรับการขับไล่ TLB บางคนอาจใช้แบบแผนเข้าก่อนออกก่อนหรือแบบ FIFO ผู้อื่นอาจใช้แบบแผนใช้บ่อยน้อยที่สุดหรือแบบ LFU

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

บทสรุป

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

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



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 ขึ้นอยู่กับคลังเกมของคุณและขนาดของเกม