หน่วยความจำแคชเทียบกับหน่วยความจำเสมือน
ความแตกต่างระหว่างหน่วยความจำแคชและหน่วยความจำเสมือนมีอยู่ในจุดประสงค์ที่ใช้ทั้งสองนี้และการมีอยู่จริง หน่วยความจำแคชเป็นหน่วยความจำประเภทหนึ่งที่ใช้ปรับปรุงเวลาในการเข้าถึงหน่วยความจำหลัก มันอยู่ระหว่าง CPU และหน่วยความจำหลัก และสามารถมีแคชได้หลายระดับ เช่น L1, L2 และ L3 ประเภทของฮาร์ดแวร์ที่ใช้สำหรับหน่วยความจำแคชนั้นมีราคาแพงกว่า RAM (Random Access Memory) ที่ใช้สำหรับหน่วยความจำหลักมาก เนื่องจากหน่วยความจำแคชนั้นเร็วกว่ามาก ด้วยเหตุนี้ ความจุของหน่วยความจำแคชจึงมีขนาดเล็กมาก หน่วยความจำเสมือนเป็นเทคนิคการจัดการหน่วยความจำที่ใช้เพื่อใช้ RAM (หน่วยความจำหลัก) อย่างมีประสิทธิภาพ ในขณะที่ให้พื้นที่หน่วยความจำแยกต่างหากสำหรับแต่ละโปรแกรมที่ใหญ่กว่าความจุ RAM จริงจริง (หน่วยความจำหลัก)ที่นี่ใช้ฮาร์ดดิสก์เพื่อขยายหน่วยความจำ รายการใน RAM จริงจะถูกโอนไปมาด้วยฮาร์ดดิสก์
หน่วยความจำแคชคืออะไร
หน่วยความจำแคชเป็นหน่วยความจำประเภทหนึ่งที่อยู่ระหว่าง CPU (หน่วยประมวลผลกลาง) และ RAM (หน่วยความจำเข้าถึงโดยสุ่ม) วัตถุประสงค์ของหน่วยความจำแคชคือเพื่อลดเวลาในการเข้าถึงหน่วยความจำของ CPU จาก RAM หน่วยความจำแคชเร็วกว่า RAM มาก ดังนั้นเวลาในการเข้าถึงแคชจึงน้อยกว่าเวลาเข้าถึงบน RAM มาก แต่ค่าใช้จ่ายของหน่วยความจำที่ใช้สำหรับหน่วยความจำแคชนั้นสูงกว่าราคาของหน่วยความจำที่ใช้สำหรับ RAM มาก ดังนั้นความจุของหน่วยความจำแคชจึงน้อยมาก ประเภทของหน่วยความจำที่ใช้สำหรับหน่วยความจำแคชเรียกว่า SRAM (Static Random Access Memory)
เมื่อใดก็ตามที่ CPU ต้องการเข้าถึงหน่วยความจำ ก่อนอื่นต้องตรวจสอบว่าต้องการอะไรอยู่ในหน่วยความจำแคช ถ้าใช่ จะสามารถเข้าถึงได้โดยมีเวลาแฝงน้อยที่สุด หากไม่มีอยู่ในแคช เนื้อหาที่ร้องขอจะถูกคัดลอกจาก RAM ไปยังแคช จากนั้นมีเพียง CPU เท่านั้นที่จะเข้าถึงเนื้อหาจากแคชที่นี่ เมื่อคัดลอกเนื้อหาจากแคช ไม่เพียงแต่เนื้อหาในที่อยู่หน่วยความจำที่ร้องขอเท่านั้น แต่ยังคัดลอกเนื้อหาที่อยู่ใกล้เคียงไปยังแคชด้วย ดังนั้น ครั้งหน้ามีโอกาสสูงที่แคชจะเกิดขึ้นเนื่องจากโปรแกรมคอมพิวเตอร์ส่วนใหญ่เข้าถึงข้อมูลใกล้เคียงหรือข้อมูลที่เข้าถึงล่าสุดเกือบทุกครั้ง ดังนั้นเนื่องจากแคช เวลาแฝงของหน่วยความจำโดยเฉลี่ยจึงลดลง
ใน CPU มีแคชสามประเภท: แคชคำสั่งสำหรับเก็บคำสั่งโปรแกรม แคชข้อมูลสำหรับจัดเก็บรายการข้อมูล และบัฟเฟอร์มองข้ามการแปลเพื่อจัดเก็บการแมปหน่วยความจำ สำหรับแคชข้อมูล โดยทั่วไปจะมีแคชหลายระดับนั่นคือมีแคชหลายตัวเช่น L1, L2 และ L3 แคช L1 เป็นหน่วยความจำแคชที่เร็วที่สุดแต่เล็กที่สุดที่อยู่ใกล้กับ CPU มากที่สุด แคช L2 ช้ากว่า L1 แต่ใหญ่กว่า L1 และอยู่หลังแคช L1 ด้วยลำดับชั้นนี้ คุณจึงสามารถใช้เวลาเข้าถึงหน่วยความจำโดยเฉลี่ยได้ดีขึ้นโดยเสียค่าใช้จ่ายน้อยลง
หน่วยความจำเสมือนคืออะไร
หน่วยความจำเสมือนเป็นเทคนิคการจัดการหน่วยความจำที่ใช้ในระบบคอมพิวเตอร์ ไม่มีฮาร์ดแวร์ที่เรียกว่าหน่วยความจำเสมือน แต่เป็นแนวคิดที่ใช้ RAM และฮาร์ดดิสก์เพื่อให้พื้นที่ที่อยู่เสมือนสำหรับโปรแกรม RAM แรกถูกแบ่งออกเป็นส่วนๆ ที่เรียกว่าเพจ และจะถูกระบุโดยที่อยู่หน่วยความจำกายภาพ ในฮาร์ดดิสก์ ส่วนพิเศษถูกสงวนไว้ ซึ่งใน Linux เรียกว่าการสลับ และใน Windows จะเรียกว่าไฟล์เพจ เมื่อเริ่มโปรแกรม โปรแกรมจะได้รับพื้นที่ที่อยู่เสมือนที่สามารถมีขนาดใหญ่กว่าหน่วยความจำจริงจริง พื้นที่หน่วยความจำเสมือนยังถูกแบ่งออกเป็นส่วนๆ ที่เรียกว่าเพจ และแต่ละหน้าหน่วยความจำเสมือนนี้สามารถจับคู่กับเพจที่มีอยู่จริงได้ตารางที่เรียกว่าตารางหน้าติดตามการแมปนี้ เมื่อหน่วยความจำกายภาพหมดพื้นที่ สิ่งที่ต้องทำคือ ฟิสิคัลเพจบางเพจถูกผลักไปยังส่วนพิเศษนั้นในฮาร์ดดิสก์ เมื่อเพจใดๆ ถูกพุชไปยังฮาร์ดดิสก์อีกครั้ง เพจนั้นจะถูกนำไปที่หน่วยความจำกายภาพโดยวางหน้าที่เลือกอื่นจากหน่วยความจำกายภาพลงในฮาร์ดดิสก์
หน่วยความจำแคชและหน่วยความจำเสมือนต่างกันอย่างไร
• หน่วยความจำแคชเป็นหน่วยความจำประเภทหนึ่งที่ใช้ปรับปรุงเวลาในการเข้าถึงหน่วยความจำหลัก เป็นหน่วยความจำประเภทที่เร็วกว่าซึ่งอยู่ระหว่าง CPU และ RAM เพื่อลดเวลาแฝงในการเข้าถึงหน่วยความจำโดยเฉลี่ยหน่วยความจำเสมือนเป็นวิธีการจัดการหน่วยความจำซึ่งเป็นแนวคิดที่ช่วยให้โปรแกรมได้รับพื้นที่หน่วยความจำเสมือนของตัวเอง ซึ่งมากกว่า RAM จริงที่มีอยู่จริง
• หน่วยความจำแคชเป็นหน่วยความจำฮาร์ดแวร์ประเภทหนึ่งที่มีอยู่จริง ในทางกลับกัน ไม่มีฮาร์ดแวร์ที่เรียกว่าหน่วยความจำเสมือน เนื่องจากเป็นแนวคิดที่ใช้ RAM, ฮาร์ดดิสก์, หน่วยจัดการหน่วยความจำ และซอฟต์แวร์เพื่อให้เป็นหน่วยความจำเสมือน
• การจัดการหน่วยความจำแคชทำได้โดยฮาร์ดแวร์อย่างสมบูรณ์ หน่วยความจำเสมือนถูกจัดการโดยระบบปฏิบัติการ (ซอฟต์แวร์)
• หน่วยความจำแคชอยู่ระหว่าง RAM และโปรเซสเซอร์ การถ่ายโอนข้อมูลเกี่ยวข้องกับ RAM หน่วยความจำแคช และโปรเซสเซอร์ ในทางกลับกัน หน่วยความจำเสมือนเกี่ยวข้องกับการถ่ายโอนข้อมูลระหว่าง RAM และฮาร์ดดิสก์
• หน่วยความจำแคชมีขนาดเล็ก เช่น กิโลไบต์และเมกะไบต์ ในทางกลับกัน หน่วยความจำเสมือนเกี่ยวข้องกับขนาดใหญ่ที่ใช้กิกะไบต์
• หน่วยความจำเสมือนเกี่ยวข้องกับโครงสร้างข้อมูล เช่น ตารางเพจที่เก็บการแมประหว่างหน่วยความจำกายภาพและหน่วยความจำเสมือน แต่โครงสร้างข้อมูลประเภทนี้ไม่จำเป็นสำหรับหน่วยความจำแคช
สรุป:
หน่วยความจำแคชเทียบกับหน่วยความจำเสมือน
หน่วยความจำแคชใช้สำหรับปรับปรุงเวลาการเข้าถึงหน่วยความจำหลักในขณะที่หน่วยความจำเสมือนเป็นวิธีการจัดการหน่วยความจำ หน่วยความจำแคชเป็นฮาร์ดแวร์จริง แต่ไม่มีฮาร์ดแวร์ที่เรียกว่าหน่วยความจำเสมือน RAM, ฮาร์ดดิสก์ และฮาร์ดแวร์อื่นๆ ร่วมกับระบบปฏิบัติการสร้างแนวคิดที่เรียกว่า หน่วยความจำเสมือน เพื่อจัดเตรียมพื้นที่หน่วยความจำเสมือนขนาดใหญ่และแยกไว้ต่างหากสำหรับแต่ละโปรแกรม เนื้อหาในหน่วยความจำแคชได้รับการจัดการโดยฮาร์ดแวร์ ในขณะที่เนื้อหาในหน่วยความจำเสมือนได้รับการจัดการโดยระบบปฏิบัติการ