MMU在VxWorks中的Vx600Core MMU原理与地址转换详解

5星 · 超过95%的资源 需积分: 9 58 下载量 47 浏览量 更新于2024-09-11 收藏 109KB DOC 举报
MPC8640 MMU在VxWorks环境下的理解主要涉及到了地址转换机制和内存管理策略。该平台的核心技术是MMU(Memory Management Unit),它支持三种地址转换模式:页地址转换(4KB页面)、块地址转换(128KB-256MB块)和实地址转换(无转换,逻辑地址等于物理地址)。在MMU关闭状态下,逻辑地址直接对应物理地址,而当MMU启用时,会通过BAT(Block Address Table)进行地址转换。 MMU通过比较BAT表来实现地址映射,BAT表由8组项组成,其中4个用于指令和4个用于数据。这些表项存储在SPR(特殊用途寄存器)528-SPR543中,由BSP(Boot Strap Program)中的sysBatDesc数组配置。然而,VxWorks推荐避免将内存地址同时映射为页地址和块地址,因为这可能导致内存空间冲突。在SP8240的BSP中,所有8个BAT表项都被用来映射FLASH地址,以避免与页地址映射冲突。 页地址转换涉及到段描述符和页描述符,逻辑地址首先通过段描述符判断是否为页地址。如果是,系统会生成一个52位的虚拟地址,MMU利用TLB(Translation Lookaside Buffer,缓存)快速查找与虚拟地址对应的物理地址。如果没有找到匹配,就通过内存中的页表进行查找。BSP通过sysPhysMemDesc数组初始化页表(PTE,Page Table Entry),VxWorks通常使用页方式进行内存地址映射,从而实现内存保护功能。 内存的页划分可以在程序启动时预先指定,也可以通过sysPhysMemDesc数组动态设置,这样使得内存保护可以根据需要灵活调整。因此,页表的大小可能会随着内存保护策略的变化而变化。VxWorks为PPC8240提供了页表的最小大小限制,例如,当内存容量为8M时,至少需要64K的页表。当内存容量增大到16M,页表的最小大小会相应增加,以满足内存管理的需求。 理解并有效利用MPC8640 MMU在VxWorks环境中的工作原理对确保系统的稳定性和性能至关重要,特别是内存管理和地址转换的优化配置。