Step 3 - TLB(全相联 + LRU)

This commit is contained in:
2026-04-14 08:19:00 +08:00
parent 4ab93d7806
commit bda18464c8
7 changed files with 322 additions and 9 deletions
+9 -9
View File
@@ -83,20 +83,20 @@
### TODO
- [ ] 新建 `TlbEntry.cs`:`VPN -> PFN` 映射及有效位
- [ ] 新建 `TlbCache.cs`:查询、更新、淘汰
- [ ] 使用 `Dictionary + LinkedList` 实现 O(1) 级 LRU
- [x] 新建 `TlbEntry.cs`:`VPN -> PFN` 映射及有效位
- [x] 新建 `TlbCache.cs`:查询、更新、淘汰
- [x] 使用 `Dictionary + LinkedList` 实现 O(1) 级 LRU
### 行为要求
- [ ] `Lookup(vpn)`:命中返回 PFN,未命中返回失败
- [ ] `InsertOrUpdate(vpn, pfn)`:已存在则更新并置为最近使用
- [ ] 超出容量时淘汰最久未使用项
- [x] `Lookup(vpn)`:命中返回 PFN,未命中返回失败
- [x] `InsertOrUpdate(vpn, pfn)`:已存在则更新并置为最近使用
- [x] 超出容量时淘汰最久未使用项
### 完成标准
- [ ] 构造用例可验证 LRU 淘汰顺序正确
- [ ] 连续访问时命中统计准确
- [x] 构造用例可验证 LRU 淘汰顺序正确
- [x] 连续访问时命中统计准确
## 5. Step 4 - 二级页表 + 缺页 + FIFO
@@ -207,4 +207,4 @@
- [x] 先完成 Step 1(参数模型 + 校验)
- [x] 紧接 Step 2(地址拆分)
- [ ] 当天收尾前完成 Step 3(TLB LRU 最小可运行)
- [x] 当天收尾前完成 Step 3(TLB LRU 最小可运行)