组会纪要
对每周五开会和平时讨论内容的总结整理
8.5 组会
上周任务
- 测试 tpftl 模块
问题总结
- 因 mac 架构问题,导致无法使用模拟器
- 内存中表项写回 flash 时机:设置阈值即可
- 连接 VPN
下周任务
- 连所里服务器继续测试
7.29 组会
上周任务
- 编写代码
- 主要完成了与 flash 的读写相关逻辑
- 优化了读写相关逻辑
问题总结
l2p_table_entry l2p_get_l2p_entry(l2p_table_index lsn, u32 opcode, u32 is_searched)
写操作时要在 flash 中分配一个空闲页,然后建立逻辑地址到物理地址的映射。
通过该 API 进行写操作时,写的数据在哪?
下周任务
- 继续编写代码
7.22 组会
上周任务
- 看 12 篇论文并总结
下周任务
- 继续编写代码
7.15 组会
上周任务
- 继续编写代码
问题总结
下周任务
7.7 组会
请假
7.1 组会
上周任务
- 编写 tp_l2p 模块代码
- 学习模拟器的使用
- 修改文档
问题总结
- 修改了部分结构体,新增了部分函数
- TP 结点数量设置为 1M 个,总结点数量最大也为 1M 个
- 如何读取和写入 flash(API)
- LRU 的计数器问题
- LRU 可用访问次数来实现
下周任务
- 继续编写模块代码
6.23 组会
上周完成
- 完成 TPFTL 设计文档
- 文档用 Latex 完成并推送到 doc 仓库
6.17 组会
- 完善 l2p 优化,使用 TPFTL 方案
- 增加函数接口设计,结构体设计和全局变量
(是否要重新开分支)
问题总结
- 用数组会浪费空间,改成链表。
- list.h 链表结构体的使用
6.10 组会
- 搜集 HPCA 2015-2022 年相关论文并上传到仓库
- 阅读 Eurosys2015 那篇论文,TPFTL
- 阅读 Handbook,了解代码整体框架
- 提出 cache 优化方案
下周工作
将 DFTL 方案改成 TPFTL,加上函数接口设计,结构体设计,和全局变量
6.2 组会
- 和大家讨论 C 语言代码规范
- 搜集 HPCA MSST 2012-2014 年相关论文并上传到仓库
- 开始阅读 l2p 相关代码
下周工作
- 继续阅读 l2p 代码
- 阅读 Eurosys2015 那篇论文
- 完成 cache 设计方案
5.30 代码规范
5.27 组会
阅读相关论文,学习了解 DFTL 的结构和原理
- 将闪存块分为数据块和翻译块,前者存放真正的数据,后者存放存放映射表,并且是在闪存的固定位置
- 根据工作运行情况将映射表动态调入 SRAM
- 先查找 SRAM 中的 CMT(Cached Mapping Table),若未找到,再根据 GTD(Global Translation Directory,类似于二级页表)将闪存中的表替换到 SRAM 中,类似于分页机制中的 TLB
- Cache 采用写回法,当表项替换出去的时候将其最新值写入闪存中
学习了解 SLC Cache 相关内容
下周工作
- C 语言代码规范文档讨论
- 阅读 standard v3 仓库代码的 l2p 模块
5.20 组会
进度
学习《深入浅出SSD》1.4, 2.1, 3.1 和第四章的相关内容,对 SSD 有个大致的了解,以及对 SSD 的核心 FTL 有个基本了解(深入浅出SSD(一) 深入浅出SSD(二))
阅读相关论文,了解 FTL 中虚拟地址映射、垃圾回收、磨损均衡等核心技术
自己学了一点其他的知识
遇到的问题:刚开始阅读论文,速度较慢
建议:论文阅读关注背景、评测部分,理解论文里的思想
未来工作:L2P 优化,DFTL