SSD 表项管理概述(一)——L1、L2、L3
分类 |
名称 |
说明 |
映射表相关 |
L1 Table |
记录每个4KB用户数据在SSD上的存放物理地址; |
L2 Table |
记录每个sub L1 Table在SSD上的存放物理地址; |
|
L3 Table |
记录每个sub L2 Table在SSD上的存放物理地址; |
|
P2L Table |
是一个反向映射表,记录SBlock上的F4K对应的L4K; |
|
|
表项的总大小会跟随支持的存储容量调整,以一个1TB的存储器来说,需要一个总大小为1GB的表项来支持运作,为了减少表项操作的开销,将总表切分成较小的sub-table来操作,sub-table的大小目前定为4KB,也就是1024个Table Entry组合成一个sub-table。Sub-table需要另外的表项记录其物理存放空间,这里就形成了对表项的多层管理。通常套用了3层表项的管理方式,具体描述如下:
1、 L1 Table:大小为4KB,包含1024个Entry,每个Entry占用32b(4Bytes),记录一个4KB大小用户数据的物理位置,按照这个设计,每个L1 Table覆盖4MB的用户数据范围;L1 Table的总个数要随着存储容量来做变化;(每个L1 entry对应的是4KB用户数据,占用4B 内存空间)
2、 L2 Table:大小为4KB,包含1024个Entry,每个Entry占用32b(4Bytes),记录一个4KB 大小L1 Table的存放地址,按照这个设计,每个L2 Table覆盖1024个L1 Table,也就是覆盖4GB的用户数据范围;L2 Table的总个数要随着存储容量来做变化;(每个L2 entry对应的是一个4KB大小的L1 所对应的用户数据量,为4MB用户数据。即每一个L2对应的一个4MB用户数据,若L2 缓存为N,则对应的用户数据量为4MB*N)
3、 L3 Table:每个L3 entry对应的是一个4B的L2 Table 存放地址,若一个L2 Table的Size为1024,则一个L2 Table表示的用户数据为4G,即每个L3 entry对应的用户数据为4G,若L3 Entry有2048个,则能支持的用户容量最大能到8T。通常L3 Table的个数只有一个,每次刷表最后都会更新并下刷L3 Table;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术