eric2013 发表于 2021-12-25 01:13:40

ZYNQ双核A9开启MMU后内存访问步骤(2021-12-25)

当处理器内存访问时,MMU:

1. 在相关指令或数据 Micro TLB中的请求虚拟地址,当前 ASID 和安全状态中查找。

2. 如果Micro TLB 中存在未命中,则查找主TLB中请求的虚拟地址,当前 ASID 和安全状态。

3. 如果主 TLB 中存在未命中,则执行硬件转换表遍历。MMU 可能找不到全局映射或(a mapping for the currently selected ASID with a matching non-secure TLB ID (NSTID) for the virtual address in the TLB)。在这种情况下,如果 硬件TTB 中的 PD0 或 PD1 位启用了转换表,则执行转换表控制寄存器。如果转换表遍历被禁用,处理器返回一个部分转换过错。

如果 MMU 找到匹配的 TLB 条目,它会使用条目中的信息,如下所示:

1. 访问权限位和域决定是否启用访问。如果匹配条目未通过权限检查,MMU 发出内存中止信号。

2. TLB 条目和 CP15 c10 重映射寄存器中指定的内存区域属性控制cache and write buffer,

a. Secure or non-secure
b. Shared or not
c. Normal memory, device, or strongly-ordered

3. MMU 将虚拟地址转换为用于内存访问的物理地址。如果 MMU 没有找到匹配的条目,则会发生硬件表遍历。



eric2013 发表于 2021-12-25 01:24:02

TLB Maintenance Operations



morning_enr6U 发表于 2021-12-26 21:09:22

{:8:}

abcde1224 发表于 2021-12-28 10:00:38

跟着硬汉哥学znyq

ndx1986 发表于 2021-12-29 16:42:18

现在拿哪里的开发板做实验呢,是准备以后用zynq但是不用外置ram来搞么?

eric2013 发表于 2021-12-29 16:53:47

ndx1986 发表于 2021-12-29 16:42
现在拿哪里的开发板做实验呢,是准备以后用zynq但是不用外置ram来搞么?

现在还没用板子,最近在学习A9内核,等学差不多了再在板子上操作。
页: [1]
查看完整版本: ZYNQ双核A9开启MMU后内存访问步骤(2021-12-25)