ฉันกำลังเรียนรู้เกี่ยวกับวิธีการทำงานของ CPU ในระดับฮาร์ดแวร์และบางสิ่งที่กำลังจะเกิดขึ้นคือองค์กรหน่วยความจำ จากสิ่งที่ฉันเรียนรู้ (และโปรดแก้ไขสิ่งที่ไม่ถูกต้องให้ฉันด้วย) คุณสามารถจัดหน่วยความจำได้สองวิธีดังต่อไปนี้:
หน่วยความจำที่จัดเรียงเป็นไบต์: แต่ละแอดเดรสบนบัสแอดเดรสชี้ไปยังตำแหน่งหน่วยความจำที่เก็บไบต์ (8 บิต)
หน่วยความจำที่มีการจัดระบบ Word: แต่ละที่อยู่บนบัสแอดเดรสชี้ไปยังตำแหน่งหน่วยความจำที่เก็บคำ (หลายตัวจาก 8 บิต)
กล่าวอีกนัยหนึ่งหน่วยความจำที่จัดระเบียบไบต์สามารถเข้าถึงตำแหน่งหน่วยความจำใด ๆ ที่เป็นขอบเขตไบต์ในขณะที่หน่วยความจำจัดระเบียบคำสามารถเข้าถึงตำแหน่งหน่วยความจำที่เป็นขอบเขตคำ
ตอนนี้ที่นี่ฉันมีปัญหา ฉันกำลังเรียนเพื่อรับกลางภาคและฉันกำลังดูงานที่ผ่านมาและคำถามต่อไปนี้เกิดขึ้น:
รับชุดโมดูลหน่วยความจำที่มีที่อยู่ 20 บิตและอินเตอร์เฟสข้อมูล 8 บิต เราจำเป็นต้องสร้างหน่วยความจำหลักที่มีหน่วยความจำหลักเป็น 4 ไบต์สำหรับซีพียูสถาปัตยกรรมข้อมูล 16 บิต
ตอนนี้ฉันรู้แล้วว่าเราต้องสร้างหน่วยความจำหลักโดยใช้โมดูลหน่วยความจำที่ให้ ในการเริ่มต้นเราต้องค้นหาความจุของแต่ละโมดูลหน่วยความจำที่ได้รับจาก
2 ^ m * n โดย m คือแอดเดรสบัสเป็นบิตและ n คือบัสข้อมูลเป็นบิต สิ่งนี้ให้ความจุ 2 ^ 20 * 8 = 1MBytes สำหรับแต่ละโมดูลหน่วยความจำ
ตอนนี้เราต้องหาจำนวนหน่วยความจำที่ต้องการ ค่อนข้างง่ายและพบได้ดังนี้: 4MB / 1MB = 4 modules
ตอนนี้ส่วนที่ฉันดูเหมือนจะไม่เข้าใจหน่วยความจำควรถูกจัดเรียงเป็นไบต์ แต่บัสข้อมูลจากหน่วยความจำหลักคือ 16 บิต ฉันจะออกแบบหน่วยความจำที่มีการจัดระเบียบแบบไบต์ได้อย่างไรหากการเข้าถึงแต่ละครั้งให้คำหนึ่งคำ? การจัดระเบียบไบต์ไม่ได้หมายความว่าให้ที่อยู่แล้วมันเป็นไปได้หรือไม่ที่จะเข้าถึงไบต์นั้น ๆ ในหน่วยความจำ เป็นไปได้อย่างไรที่จะต้องมีการออกแบบโมดูลหน่วยความจำในลักษณะที่ให้บัสข้อมูลขนาด 16 บิต นี่คือทางออกสำหรับคำถาม โปรดอธิบายให้ฉันทราบอย่างละเอียดว่าเหตุใดหน่วยความจำหลักได้รับการออกแบบด้วยวิธีนี้และวิธีการเข้าถึงแต่ละไบต์เป็นไปได้อย่างไร
ขอบคุณ.