量产表也定义了许多其他信息,片选数、每片上Block数、传地址的周期之类的。
3.1.2 索引表
索引表的位置通过量产表找到,其中包含了U盘的ZONG索引表、缓存表、分区信息。
索引表也定义了如当前正在执行的操作、当前zone表索引号,正在处理的缓存块之类的状态信息,流加密模式结构、密码提示、已经尝试密保答案次数等加密相关信息。
其中zone索引表定义的数组大小为128。
3.1.3 Zone表
这个表是个特殊处理的结果,代码中将512块定义成一组,加上32字节的ECC信息就成为一个zone。每个zone中存的就是这512个逻辑块对于的物理块号。这个表是提供大容量存储逻辑地址物理地址映射关系的核心表。
3.1.4 缓存块相关表
有三个表缓存交换表,缓存块映射关系表、缓存块页表。
缓存交换表内置于索引表中,共预留16个缓存块空间,记录了16个缓存块地址,临时用的1个交换块地址,以及每个缓存块映射关系。
缓存块映射关系表记录缓存块对应的逻辑块的zone索引和zone内块地址;块内的页对应关系:是否连续、下个可写空白页,缓存块的页索引表所在的页。
缓存块页表当缓存块中的页对应的逻辑页不是连续的时候就需要这个表来维护块内页对应关系,该表预留了256个信息空间,用于描述一个缓存块中的页对应关系。具体记录了逻辑页对应缓存块中页号的关系数组,并且还定义了相应的256个标识,指示逻辑页是否被更新过,也就表示某一页最新的数据是在原来的块中还是在缓存块中,这里有冗余,实际代码中有事通过标志位判断的也有是通过对应地址是否为0xFF来判断的。每个缓存块都有一个,也即有16组。