ความแตกต่างที่สำคัญระหว่างที่อยู่ตรรกะและที่อยู่จริงคือ CPU สร้างที่อยู่ตรรกะระหว่างการทำงานของโปรแกรมในขณะที่ที่อยู่จริงคือตำแหน่งในหน่วยหน่วยความจำ
พูดง่ายๆ ก็คือ CPU จะสร้างที่อยู่ตรรกะหรือที่อยู่เสมือน จากมุมมองของโปรแกรมที่กำลังรันอยู่ ดูเหมือนว่าไอเท็มจะอยู่ที่แอดเดรสที่ให้ไว้โดยแอดเดรสแบบลอจิคัล หน่วยหน่วยความจำสังเกตที่อยู่ทางกายภาพ นอกจากนี้ยังอนุญาตให้เข้าถึงเซลล์หน่วยความจำเฉพาะในหน่วยความจำหลักโดยบัสข้อมูล
โลจิคัลแอดเดรสคืออะไร
CPU สร้างที่อยู่ตรรกะ จากมุมมองของโปรแกรมที่กำลังรันอยู่ ดูเหมือนว่าไอเท็มจะอยู่ที่แอดเดรสที่ให้ไว้โดยแอดเดรสแบบลอจิคัล โปรแกรมแอปพลิเคชันที่ทำงานบนคอมพิวเตอร์ไม่เห็นที่อยู่จริง พวกเขาทำงานโดยใช้ที่อยู่แบบลอจิคัลเสมอ พื้นที่ที่อยู่แบบลอจิคัลคือชุดของที่อยู่แบบลอจิคัลซึ่งโปรแกรมสร้างขึ้น จำเป็นต้องจับคู่ที่อยู่แบบลอจิคัลกับที่อยู่จริงก่อนใช้งาน อุปกรณ์ฮาร์ดแวร์ Memory Management Unit (MMU) จัดการกระบวนการแมปนี้
แผนการทำแผนที่ MMU
MMU ทำตามแผนการทำแผนที่หลายแบบในรูปแบบแผนที่ที่ง่ายที่สุด ค่าในการลงทะเบียนการย้ายตำแหน่งจะถูกเพิ่มไปยังที่อยู่เชิงตรรกะแต่ละรายการที่สร้างโดยโปรแกรมแอปพลิเคชันก่อนที่จะส่งไปยังหน่วยความจำ นอกจากนี้ยังมีวิธีการที่ซับซ้อนอื่นๆ ในการสร้างแผนที่ การผูกที่อยู่ (เช่น การจัดสรรคำสั่งและข้อมูลลงในที่อยู่หน่วยความจำ) สามารถเกิดขึ้นได้สามครั้ง
รูปที่ 01: ที่อยู่เชิงตรรกะและทางกายภาพ
ประการแรก อาจเกิดขึ้นได้ในเวลาคอมไพล์ หากทราบตำแหน่งหน่วยความจำจริงล่วงหน้า และสิ่งนี้จะสร้างโค้ดสัมบูรณ์ในเวลาคอมไพล์นอกจากนี้ยังสามารถเกิดขึ้นได้ในขณะโหลดหากไม่ทราบตำแหน่งหน่วยความจำล่วงหน้า สำหรับสิ่งนี้ จำเป็นต้องสร้างโค้ดที่สามารถระบุตำแหน่งใหม่ได้ในเวลาคอมไพล์ นอกจากนี้ การเชื่อมโยงที่อยู่อาจเกิดขึ้นได้ในเวลาดำเนินการ สิ่งนี้ต้องการการสนับสนุนฮาร์ดแวร์สำหรับการแมปที่อยู่ ในการรวมที่อยู่เวลาและเวลาในการคอมไพล์ ที่อยู่แบบลอจิคัลและฟิสิคัลจะเหมือนกัน แต่ขั้นตอนนี้แตกต่างออกไปเมื่อมีการผูกที่อยู่ในช่วงเวลาดำเนินการ
ที่อยู่จริงคืออะไร
หน่วยหน่วยความจำสังเกตที่อยู่จริงหรือที่อยู่จริง อนุญาตให้บัสข้อมูลเข้าถึงเซลล์หน่วยความจำเฉพาะในหน่วยความจำหลัก MMU จับคู่ที่อยู่ตรรกะกับที่อยู่จริง ตัวอย่างเช่น การใช้รูปแบบการแมปที่ง่ายที่สุด ซึ่งเพิ่มค่าการลงทะเบียนการย้ายตำแหน่ง (สมมติว่าค่าในการลงทะเบียนคือ y) ค่าไปยังที่อยู่ทางลอจิคัล ช่วงที่อยู่แบบลอจิคัลตั้งแต่ 0 ถึง x จะจับคู่กับช่วงที่อยู่จริง y ถึง x+ y.
นอกจากนี้ยังเรียกว่าพื้นที่ที่อยู่จริงของโปรแกรมนั้น ที่อยู่เชิงตรรกะทั้งหมดต้องถูกจับคู่กับที่อยู่จริงก่อนจึงจะสามารถใช้ได้
ความแตกต่างระหว่างที่อยู่ตรรกะและที่อยู่ทางกายภาพคืออะไร
ที่อยู่ตรรกะกับที่อยู่ทางกายภาพ |
|
ที่อยู่ตรรกะคือที่อยู่ของรายการที่ปรากฏจากมุมมองของโปรแกรมแอปพลิเคชันที่กำลังดำเนินการ | ที่อยู่ทางกายภาพคือที่อยู่หน่วยความจำที่แสดงในรูปของเลขฐานสองบนวงจรแอดเดรสบัส เพื่อให้บัสข้อมูลเข้าถึงเซลล์จัดเก็บข้อมูลเฉพาะของหน่วยความจำหลัก หรือรีจิสเตอร์ของหน่วยความจำที่แมป I /O อุปกรณ์ |
การมองเห็น | |
ผู้ใช้สามารถดูที่อยู่ตรรกะของโปรแกรม | ผู้ใช้ไม่สามารถดูที่อยู่จริงของโปรแกรม |
วิธีการสร้าง | |
CPU สร้างที่อยู่ตรรกะ | MMU คำนวณที่อยู่ทางกายภาพ |
การเข้าถึง | |
ผู้ใช้สามารถใช้ที่อยู่ตรรกะเพื่อเข้าถึงที่อยู่จริง | ผู้ใช้ไม่สามารถเข้าถึงที่อยู่จริงได้ |
สรุป – ที่อยู่ตรรกะเทียบกับที่อยู่ทางกายภาพ
ความแตกต่างระหว่างที่อยู่ตรรกะและที่อยู่จริงคือ CPU สร้างที่อยู่ตรรกะเมื่อโปรแกรมทำงานในขณะที่ที่อยู่จริงคือตำแหน่งในยูนิตหน่วยความจำ ที่อยู่ทางลอจิคัลทั้งหมดจะต้องถูกแมปเป็นที่อยู่จริงก่อนที่ MMU จะสามารถใช้งานได้ ที่อยู่ทางกายภาพและทางลอจิคัลจะเหมือนกันเมื่อใช้เวลาคอมไพล์และรวมที่อยู่เวลาในการโหลด แต่จะต่างกันเมื่อใช้การรวมที่อยู่เวลาดำเนินการ