1
1 CPU TLB MMU 支持
在学习并尝试本章节前,你需要具有以下环境和能力:
(1) 较为熟练使用 Vivado 工具。
(2) 一定的汇编编程能力。
通过本章节的学习,你将获得:
(1) TLB 的结构,及其设计方法。
(2) TLB 相关寄存器、指令和例外的知识
在本章节的学习过程中,你可能需要查阅:
(1) MIPS 官方手册。
实验提醒:
(1) 在实现 TLB 相关 CP0 寄存器时,注意各域的读写属性,对于固定为 0 的,表示忽略写入,读出永远为 0。
(2) TLB 结构里只有一个 G 位,但 EntryLo0 和 EntryLo1 各有 1 个 G 位。在执行 TLBWI 时,需要 EntryLo0 和
EntryLo1 的 G 位都是 1,才将 TLB 对应项的 G 位置 1;在执行 TLBR 时,则是将 TLB 对应项的 G 位读出
同时赋值到 EntryLo0 和 EntryLo1 的 G 位。
(3) 如果 TLB 结构里的 G 位为 1,表示在进行查找时,不需要对比进程号 ASID。
(4) 在执行 TLBWI 时,需要将 EntryHi.ASID 写入到 TLB 项结构里的 ASID;在执行 TLBR 时,则是将 TLB
项结构里的 ASID 读入到 EntryHi.ASID。
(5) 在 fetch/load/store 执行需要查找 TLB 进行虚实转换时,虚拟地址与 TLB 项里的 VPN2 比较,与 TLB 项里
ASID 比较的是 EntryHi.ASID。也就是 EntryHi.ASID 记录着当前进程的 ID 号。
(6) 在执行 TLBP 指令时,如果未查找到,需要将 Index 的最高位置为 1。
(7) 注意 Kseg0 和 Kseg1 段是 unmapped 的空间,对其进行访问不需要查找 TLB,目前直接访问即可。也就是
对虚拟地址 0xbfc00000 访问就是对物理地址 0x1fc00000 访问。
(8) TLB 的虚实转换可以将虚拟页转换到任意物理页,比如可以将虚拟地址 0x00000000 转换到物理地址
0x1fc00000,这是由软件维护的页表决定的,不需要 CPU 关心。
1.1 实验目的
1. 深入理解基于 TLB 的存储管理机制
2. 掌握 TLB 软硬件交互的界面和流程
1.2 实验设备
1. 装有 Xilinx Vivado、MIPS 交叉编译环境的计算机一台。
2. 龙芯体系结构教学实验箱(Artix-7)一套。
1.3 实验任务
将 myCPU 里的存储管理机制更改为 TLB 映射方式。
第一阶段需要完成:
(1) CPU 增加 TLBR、TLBWI、TLBP 指令。
评论0
最新资源