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;