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 没有找到匹配的条目,则会发生硬件表遍历。
TLB Maintenance Operations
{:8:} 跟着硬汉哥学znyq 现在拿哪里的开发板做实验呢,是准备以后用zynq但是不用外置ram来搞么? ndx1986 发表于 2021-12-29 16:42
现在拿哪里的开发板做实验呢,是准备以后用zynq但是不用外置ram来搞么?
现在还没用板子,最近在学习A9内核,等学差不多了再在板子上操作。
页:
[1]