【技术实现步骤摘要】
一种基于ZNS固态硬盘的数据管理方法
[0001]本申请属于固态硬盘应用
,特别涉及一种基于
ZNS
协议的固态硬盘的内部数据存储方法和
Flush
机制
。
技术介绍
[0002]传统的
SSD
中都有核心的
FTL
算法,包含
LBA
地址映射,磨损平衡
wear leveling,
垃圾回收
GC
,数据保持
data retation
等方面的功能
。
这些算法运行时会占用
CPU
时间,毫无疑问会在一定程度上影响固态硬盘的
IO
性能,特别是涉及到擦除
Nand
的
GC
操作,影响会更显著
。
[0003]除了
IO
性能,传统的
SSD
盘在处理映射时常常使用
LBA
‑
PPA
的映射方式,即使用一个
4Byte
大小的
LBA
代表一块
4KB
大小的
PPA
物理地址,而把这些映射关系存放在内存时需要占用非常大的空间,例如一个
8T
的盘需要
8GB
的内存来存放映射表,硬件成本非常高
。
[0004]为了解决以上传统
SSD
的痛点,
ZNS
协议对 >SSD
的操作作了些规定,例如在
Zone
内部只能顺序写等
。
正是这些协议中的规定简化了
SSD
的使用场景,使得
FTL
算法不再必不可少
。
基于
ZNS
的
SSD
不再需要内部
GC
,也不再需要
LBA
‑
PPA
一一对应的映射表,即提高了
IO
性能又节省了硬件成本
。
[0005]但是除了地址映射表外,
SSD
中还有标志用户数据有效性的
Trim
表,该表每一个
bit
表示一个
4KB
用户区域数据是否有效,同样的一个
8T
需要
8TB/4KB/8
=
256MB
大小的
Trim
表
。
如此大小的
Trim
表完整的写入到
Nand
中会占用多个
Page
,降低了刷表的效率以及增加了软件设计的复杂度
。
[0006]所以带有编解码压缩还原算法的
ZNS SSD
节省硬件上
DDR
的开销,也缩减了内部数据量,从而减小了软件设计的复杂度,以及提高
Flush
效率
。
技术实现思路
[0007]本专利技术的目的是提供一种带有编解码压缩还原模块和数据校验模块的
ZNS
固态硬盘内部数据存储方法,以及一种
ZNS
固态硬盘内部数据的
Flush
机制
。
[0008]具体地,一种
ZNS
固态硬盘内部数据存储方法,其特征在于:符合
ZNS
协议的固态硬盘,包含内部数据区;其中,内部数据区包含
Zone
的相关管理信息,用户
Trim
信息,以及各种
Host
命令记录;编解码还原模块,使用霍夫曼算法;数据校验模块,数据校验模块,将准备存储到
Nand
的内部数据进行
CRC
计算,连同
CRC
值一起写入
Nand Page
;
CRC
算法可以是纯软件加速或
FPGA
等硬件加速
。
[0009]进一步地,内部数据区,包含
Zone
的信息,用户
Trim
信息,
Host
命令操作信息;其中
Zone
的信息包括如
ZNS
协议中所述
Zone Open Source、Active Source
信息,
Zone
状态信息,
Zone
容量信息,
Zone
起始
LBA
信息,
Zone wp
信息;其中
Zone
的状态包括
EMPTY
,
IMPLICITLY_OPEN
,
EXPLICITLY_OPEN
,
CLOSE
,
READ_ONLY
,
FULL,OFFLINE
;其中
Host
命令操作包括如
ZNS
协议中所述
Zone Append
,
Zone Receive
,
Zone Send
等
。
[0010]进一步地,数据编解码压缩还原模块,对内部数据进行霍夫曼编解码压缩或者还原,解码压缩或者还原的方式是纯软件加速或
FPGA
等硬件加速
。
[0011]进一步地,编解码压缩还原模块,将准备存储到
Nand
的数据先通过模块的霍夫曼编码算法压缩数据量;将准备从
Nand
中读出来的数据先通过模块霍夫曼解码还原数据
。
[0012]进一步地,数据校验模块,数据流从
SSD
到
Dram
时,数据校验模块计算出
CRC
值并填充后将数据传递给编解码压缩还原模块进行数据压缩;数据流从
Dram
到
SSD
时,数据校验模块从编解码压缩还原模块取得还原后的数据,并进行
CRC
校验检查数据正确性
。
[0013]一种
ZNS
固态硬盘的内部数据
Flush
方法,在响应来自
Host
的
NVMe
相关命令后触发,其特征在于:
[0014]S1、
接收的指令为包括但不限于
Zone Apend、Zone Send、Zone Receive
等命令时,根据命令附带参数修改相关
Zone
的运行时状态和信息,这些数据运行时保存在
DDR
或者
Dtcm
等
Sram
中加速
CPU
的访问,在需要
Flush Segment
本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.
一种
ZNS
固态硬盘内部数据存储方法,其特征在于:符合
ZNS
协议的固态硬盘,包含内部数据区;其中,内部数据区包含
Zone
的相关管理信息,用户
Trim
信息,以及各种
Host
命令记录;编解码还原模块,使用霍夫曼算法;数据校验模块,数据校验模块,将准备存储到
Nand
的内部数据进行
CRC
计算,连同
CRC
值一起写入
Nand Page
;
CRC
算法可以是纯软件加速或
FPGA
等硬件加速
。2.
根据权利要求1所述的一种
ZNS
固态硬盘内部数据存储方法,其特征在于:内部数据区,包含
Zone
的信息,用户
Trim
信息,
Host
命令操作信息;其中
Zone
的信息包括如
ZNS
协议中所述
Zone Open Source、Active Source
信息,
Zone
状态信息,
Zone
容量信息,
Zone
起始
LBA
信息,
Zone wp
信息;其中
Zone
的状态包括
EMPTY
,
IMPLICITLY_OPEN
,
EXPLICITLY_OPEN
,
CLOSE
,
READ_ONLY
,
FULL,OFFLINE
;其中
Host
命令操作包括如
ZNS
协议中所述
Zone Append
,
Zone Receive
,
Zone Send
等
。3.
根据权利要求1所述的一种
ZNS
固态硬盘内部数据存储方法,其特征在于:数据编解码压缩还原模块,对内部数据进行霍夫曼编解码压缩或者还原,解码压缩或者还原的方式是纯软件加速或
FPGA
等硬件加速
。4.
根据权利要求3所述的一种
ZNS
固态硬盘内部数据存储方法,其特征在于:编解码压缩还原模块,将准备存储到
Nand
的数据先通过模块的霍夫曼编码算法压缩数据量;将准备从
Nand
中读出来的数据先通过模块霍夫曼解码还原数据
。5.
根据权利要求1所述的一种
ZNS
固态硬盘内部数据存储方法,其特征在于:数据校验模块,数据流从
SSD
到
Dram
时,数据校验模块计算出
CRC
值并填充后将数据传递给编解码压缩还原模块进行数据压缩;数据流从
Dram
到
SSD
时,数据校验模块从编解码压缩还原模块取得还原后的数据,并进行
CRC
校验检查数据正确性
。6.
一种
ZNS
固态硬盘的内部数据
Flush
方法,在响应来自
Host
的
NVMe
相关命令后触发,其特征在于:
S1、
接收的指令为包括但不限于
Zone Apend、Zone Send、Zone Receive
等命令时,根据命令附带参数修改相关
Zone
的运行时状态和信息,这些数据运行时保存在
DDR
或者
【专利技术属性】
技术研发人员:张仡,刘兴斌,
申请(专利权)人:武汉麓谷科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。