Xtensa架构学习——3.5 内存

本文介绍了Xtensa架构在内存管理方面的内容,包括高速缓存配置下处理器对地址的解释,以及没有区域保护和MMU选项时的虚拟到物理地址转换规则。处理器可以推测性取出指令,但存在特定的限制,如最后64字节内不能更改保护或缓存属性。同时,当实现了窗口寄存器选项时,软件需要避免在230(1 GB)边界最后16个字节内放置指令。对于小端和大端取址语义,建议查阅手册或进行讨论。
3.5 内存
Xtensa ISA基于32位虚拟和物理内存地址,可为指令和数据提供2^32或4GB地址空间。
3.5.1 内存寻址

图3-6显示了使用高速缓存配置时处理器对地址的解释示例。所有字段的宽度都是可配置的,并且在某些情况下,宽度可能为零(特别是,现在总是有零忽略位)。如果页面大小小于缓存的单个路径的大小,并且使用了物理标签,则缓存索引和缓存标签将重叠。


没有区域保护选项或MMU选项,虚拟地址和物理地址是相同的; 如果物理地址配置为小于虚拟地址,虚拟地址仅通过截断映射到物理地址(忽略高位)。通过区域保护选项或MMU选项,虚拟页码被转换为物理页码。

没有区域保护选项或MMU选项,虚拟到物理转换的正式定义如下(注意环参数被忽略):


第4.6.5节描述了MMU选项的解释。核心ISA支持小端(PC兼容)和大端(互联网兼容)地址模型作为配置参数。在本手册中:
msbFirst = 1是大端。
msbFirst = 0是小端。
3.5.2 寻址模式
核心指令集实现 寄存器+立即寻址模式。核心ISA不会实现自动增量存储或索引加载。但是,这种寻址模式对于协处理器是可能的。例如,浮点协处理器选项实现索引以及立即寻址模式。
3.5.3 程序计数器
32位程序计数器(PC)保存一个字节地址,可以寻址4GB的虚拟内存以获得指令。但是,当配置了窗口寄存器选项时,寄存器窗口调用指令仅存储返回地址的低30位。寄存器窗口返回指令保持PC的两个最高有效位不变。因此,使用寄存器窗口指令调用的子程序必须与调用放置在相同的1GB地址区域中。(窗口寄存器是啥???)
3.5.4取指令
本节使用第2章的符
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值