CN112559193A - 一种基于主机内存空间的区域信息表管理方法 - Google Patents
一种基于主机内存空间的区域信息表管理方法 Download PDFInfo
- Publication number
- CN112559193A CN112559193A CN202011615842.XA CN202011615842A CN112559193A CN 112559193 A CN112559193 A CN 112559193A CN 202011615842 A CN202011615842 A CN 202011615842A CN 112559193 A CN112559193 A CN 112559193A
- Authority
- CN
- China
- Prior art keywords
- ssd
- host
- data
- memory
- domain information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种基于主机内存空间的区域信息表管理方法,本方法通过引入主机内存使用技术,扩展了SSD的缓存空间,节省了SSD的布线面积和成本,有着明显的经济收益。其次本专利根据技术需要提供了整体的运行和上下电维护方法,保证设计具有可行性。与传统域命名空间固态硬盘相比,可以明显节省DDR使用,缩小硬件成本、盘的PCB面积与整盘功耗,保证了上下电过程的可靠性,对工程实践提供了一种可行的方法。
Description
技术领域
本发明涉及一种SSD区域信息管理方法,具体是一种基于主机内存空间的区域信息表管理方法。
背景技术
固态硬盘(SSD)的存储组件采用Nand Flash,随着Nand flash的堆叠层数及单个cell可表示位数的增加,寿命也会不断降低。传统的SSD产品用户数据落盘顺序大概率是随机的,长时间运行就会有物理存储块(block)内的用户数据是无效的。为了回收物理块给新数据使用,就需要引入垃圾回收的策略。而垃圾回收过程中的数据搬移会造成用户数据写放大,增加了nand颗粒的擦写次数,天然减少使用寿命。为了优化上层文件系统与盘侧的重复垃圾回收算法、减少写入放大对寿命的影响,改善存储系统性能,一种基于区域命名空间技术(zoned namespace, ZNS) SSD成为一种新的技术趋势。ZNS SSD核心思想是通过文件系统与SSD的联动配合,将SSD部分闪存转换层(Flash Translation Layer,FTL)的功能交给上层系统执行,由主机(HOST)维护所写逻辑地址(LBA)数据的有效性,并保证所有LBA顺序写入每一个open zone中。当一个区域(zone)写满后,主机直接使用区域复位(zonereset)命令对其进行擦除,可以节省SSD本身的垃圾回收流程,从而降低了SSD的写入放大效应,减小整盘替换空间,提高了整盘的使用寿命和性能,压缩开发成本。
在ZNS SSD固件开发过程中,需要定义区域信息(zone info)结构体表来记录每一个zone的状态、写指针、属性等,以便管理和维护zone的使用。例如设计每个区域信息的大小为16字节,一个4T容量的SSD需要使用10000个zone,整个zone info table的大小就是150K字节的量级。传统的设计方法是将该信息存储在SSD的缓存中,并在上电或下电时进行恢复或者保存。但是随着SSD容量向8T、16T增加,会导致SSD缓存空间的增大。这不仅会占用更多的缓存空间,还会带来功耗和成本的增加。
发明内容
为了有效地解决上述问题、兼顾系统设计的硬件成本,本发明提出了一种基于主机内存空间(Host Memory Buffer, HMB)的区域信息表管理方法。
为了解决所述技术问题,本发明采用的技术方案是:一种基于主机内存空间的区域信息表管理方法,包括以下步骤:
S01)、配置SSD的主机内存空间功能,SSD向主机申请一块内存空间,设计一硬件逻辑单元以保证SSD的CPU可直接域信息存放到主机内存空间中,在不进行重启或者关机的情况下,本内存空间不被释放;
S02)、数据更新时,CPU可直接发起读、修改或写的请求;
S03)、在SSD下电的时候,将主机端保存的域信息表全部存到SSD的nor flash中,在SSD上电的时候,先想主机申请内存空间,然后在将保存于nor flash中的域信息表恢复到主机的内存空间中。
进一步的,所述硬件逻辑单元为互联模块,互联模块将CPU发出的本地访存地址转换成主机端地址,并将数据请求发送到SSD接口界面端口上,通过接口控制器(如PCIe)形成数据包传递到主机内存中。
进一步的,所述硬件逻辑单元为DMA单元,DMA单元将CPU发出的本地访存地址转换成主机端地址,并将数据请求发送到SSD接口界面所在总线桥上,将数据传递到接口,通过PCIe接口的数据包传递到主机内存中。进一步的,首次上电时,在SSD上电初始化流程中,CPU以域为单位将域信息表初始化为特定值,所述特定值用于表示所有的域处于空状态。
进一步的,非首次上电时,将保存在nor flash中的数据表读到SSD的读写缓存buffer中,再通过硬件逻辑单元搬移到主机分配好的内存中。
进一步的,SSD运行过程中,若域信息表的状态跟随数据读写发生改变,CPU通过硬件逻辑单元将本地最新的域信息传送到主机内存中。
进一步的,下电时,将正在使用的域空间关闭,并封存数据,将需要更新的域信息数据利用硬件逻辑单元更新到主机的内存中,然后将主机内存中所有的域信息通过DMA单元批量读到SSD内部的写缓存中,再存入nor flash的对应空间中。
进一步的,设置定期刷写,保证域信息表在nor flash中有旧版本备份,旧版本的更新采用如下策略:1、对应的zone发生了状态更新时,将对应的域信息刷写到nor flash中;2、当发生复位时,在复位处理流程里将数据全部回刷到nor flash中。
本发明的有益效果是:本发明通过引入主机内存使用技术,扩展了SSD的缓存空间,节省了SSD的布线面积和成本,有着明显的经济收益。其次本专利根据技术需要提供了整体的运行和上下电维护方法,保证设计具有可行性。与传统域命名空间固态硬盘相比,可以明显节省DDR使用,缩小硬件成本、盘的PCB面积与整盘功耗,保证了上下电过程的可靠性,对工程实践提供了一种可行的方法。
附图说明
图1为本发明的系统框图;
图2为本方法正常运行及掉电时的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
实施例1
本实施例公开一种基于主机内存空间的区域信息表管理方法,包括域信息状态机流转维护、上下电管理的整体设计方法。ZNS SSD中lba域是固件管理的最小单元。域信息包含域状态(state)、写指针(write pointer, WP)、标识号(ID)等。这些zone信息都需要记录并进行管理。一个zone的大小由SSD厂商自行决定,将整块固态硬盘划分为N个zone,那么域信息表的大小即为16*N个字节。
如图1所示,本方法首先配置SSD的HMB功能,SSD向Host申请一块内存单元,设计一芯片硬件逻辑单元使得SSD的CPU可以直接将zone信息存放到Host内存单元中。在域信息数据需要更新时,CPU直接发起读-改-写的操作。在SSD下电的时候,需要将host端保存的域信息表全部保存到SPI nor flash中。在SSD上电的时候,先向主机申请HMB空间,然后再将保存于Flash内的信息表恢复到主机系统的内存空间中。这种域信息的管理控制方法,不仅可以充分利用主机多余的内存资源,节省SSD的内存消耗和功耗,降低整体的硬件设计成本,还可以获得动态的资源配置能力,扩展SSD的内存空间范围。
针对传输域信息表的大小,硬件逻辑单元有两种实现方式,当用于CPU小量数据传输,硬件逻辑单元采用互联模块,当用于上下电时的大批量数据传输,硬件逻辑单元采用DMA模块。
两种实现方式的工作过程分别为:互联模块将CPU发出的本地访存地址转换成主机端地址,并将数据请求发送到SSD接口界面端口上,通过接口控制器(如PCIe)形成数据包传递到主机内存中。
所述硬件逻辑单元为DMA单元,DMA单元将CPU发出的本地访存地址转换成主机端地址,并将数据请求发送到SSD接口界面所在总线桥上,将数据传递到接口,通过PCIe接口的数据包传递到主机内存中。进一步的,首次上电时,在SSD上电初始化流程中,CPU以域为单位将域信息表初始化为特定值,所述特定值用于表示所有的域处于空状态。
如图2所示,本实施例所述方法具体包括以下步骤:
A、根据nvme协议,在nvme identify字段中的HMPRE(Host Memory BufferPreferred Size)字段和HMMIN(Host Memory Buffer Minimum Size)字段,声明SSD需要Host分配的内存大小,分配的内存可以给SSD当ram buffer使用,简称Host Memory Buffer(HMB);
B、进一步,Host根据盘声明的size分配内存,并通过set feature将内存地址告知SSD;在不进行重启或者关机的情况下,该内存不会被释放;
C、为方便CPU在正常运行时可以直接读写主机内存地址,需要SSD主控芯片内部设计硬件逻辑单元,实现CPU快速更新域信息表(此时更新数据块会以zone为单位);具体的是该硬件单元会将CPU发出的本地访存地址转换成主机端地址,并此数据请求发送到SSD接口界面所在总线桥上,将数据传递到接口模块控制器,通过接口控制器生成数据包传递到主机内存中。
D、如果是首次上电,则在SSD上电初始化流程中,CPU以域为单位将域信息表范围初始化为特定值,这些特定值能够表示所有的zone处于空状态
E、如果是非首次上电,则将保存在nor flash中的数据表读到SSD的读写缓存buffer中,再通过DMA单元大批量快速搬移到主机分配好的内存中,写入到主机内存中;
F、在SSD运行过程中,随着数据读写的发生,域信息表的状态会需要经常性修改,CPU可以通过硬件模块将本地最新的域信息传送到主机内存中;
G、下电时,首先需要将正在使用的域空间(还未关闭)进行关闭,并封存数据,将小部分需要更新的域信息数据利用硬件逻辑更新到主机的内存中,之后需要将主机内存里所有的域信息通过DMA大批量读到SSD内部的写缓存中,再存入flash的对应空间中。
H、考虑到使用过程中可能会出现异常掉电。本方案制定了定期刷写的方法,保证域信息表在flash中会有旧版本备份。此旧版本的更新采用如下策略:
1、在对应的zone发生了状态更新时需要将对应的域信息所在对应块刷写到norflash中。
2、当发生复位reset时,需要在reset处理流程里将数据全部回刷到nor flash中。
以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。
Claims (8)
1.一种基于主机内存空间的区域信息表管理方法,其特征在于:包括以下步骤:
S01)、配置SSD的主机内存空间功能,SSD向主机申请一块内存空间,设计一硬件逻辑单元以保证SSD的CPU将域信息存放到主机内存空间中,在不进行重启或者关机的情况下,本内存空间不被释放;
S02)、数据更新时,SSD CPU直接发起读、修改或写的请求;
S03)、在SSD下电的时候,将主机端保存的域信息表全部存到SSD的nor flash中,在SSD上电的时候,先向主机申请内存空间,然后再将保存于nor flash中的域信息表恢复到主机的内存空间中。
2.根据权利要求1所述的基于主机内存空间的区域信息表管理方法,其特征在于:所述硬件逻辑单元为互联模块,互联模块将CPU发出的本地访存地址转换成主机端地址,并将数据请求发送到SSD接口界面端口上,通过接口控制器形成数据包传递到主机内存中。
3.根据权利要求1所述的基于主机内存空间的区域信息表管理方法,其特征在于:所述硬件逻辑单元为DMA单元,DMA单元将CPU发出的本地访存地址转换成主机端地址,并将数据请求发送到SSD接口界面所在总线桥上,将数据传递到接口,通过PCIe接口的数据包传递到主机内存中。
4.根据权利要求1所述的基于主机内存空间的区域信息表管理方法,其特征在于:首次上电时,在SSD上电初始化流程中,CPU以域为单位将域信息表初始化为特定值,所述特定值用于表示所有的域处于空状态。
5.根据权利要求1所述的基于主机内存空间的区域信息表管理方法,其特征在于:非首次上电时,将保存在nor flash中的数据表读到SSD的读写缓存buffer中,再通过DMA单元搬移到主机分配好的内存中。
6.根据权利要求1所述的基于主机内存空间的区域信息表管理方法,其特征在于:SSD运行过程中,若域信息表的状态跟随数据读写发生改变,CPU通过硬件逻辑单元将本地最新的域信息传送到主机内存中。
7.根据权利要求1所述的基于主机内存空间的区域信息表管理方法,其特征在于:下电时,将正在使用的域空间关闭,并封存数据,将需要更新的域信息数据利用硬件逻辑单元更新到主机的内存中,然后将主机内存中所有的域信息通过DMA单元批量读到SSD内部的写缓存中,再存入nor flash的对应空间中。
8.根据权利要求1所述的基于主机内存空间的区域信息表管理方法,其特征在于:设置定期刷写,保证域信息表在nor flash中有旧版本备份,旧版本的更新采用如下策略:1、对应的zone发生了状态更新时,将对应的域信息刷写到nor flash中;2、当发生复位时,在复位处理流程里将数据全部回刷到nor flash中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011615842.XA CN112559193A (zh) | 2020-12-31 | 2020-12-31 | 一种基于主机内存空间的区域信息表管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011615842.XA CN112559193A (zh) | 2020-12-31 | 2020-12-31 | 一种基于主机内存空间的区域信息表管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559193A true CN112559193A (zh) | 2021-03-26 |
Family
ID=75034828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011615842.XA Pending CN112559193A (zh) | 2020-12-31 | 2020-12-31 | 一种基于主机内存空间的区域信息表管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559193A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686372A (zh) * | 2022-11-07 | 2023-02-03 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘zrwa功能的数据管理的方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630405A (zh) * | 2015-04-29 | 2016-06-01 | 上海磁宇信息科技有限公司 | 一种存储系统及采用该存储系统的读写方法 |
CN108021511A (zh) * | 2017-11-22 | 2018-05-11 | 深圳忆联信息系统有限公司 | 一种ssd性能提升的方法及ssd |
US20180136875A1 (en) * | 2016-11-15 | 2018-05-17 | Samsung Electronics Co., Ltd. | Method and system for managing host memory buffer of host using non-volatile memory express (nvme) controller in solid state storage device |
CN110502455A (zh) * | 2018-05-18 | 2019-11-26 | 杭州海康威视数字技术股份有限公司 | 数据存储方法及系统 |
CN110968529A (zh) * | 2019-11-28 | 2020-04-07 | 深圳忆联信息系统有限公司 | 无缓存固态硬盘的实现方法、装置、计算机设备及存储介质 |
US20200167274A1 (en) * | 2019-12-20 | 2020-05-28 | Intel Corporation | Zoned namespace with zone grouping |
CN111240601A (zh) * | 2020-01-19 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种分区空间的超级块确定方法、装置、设备及存储介质 |
US20200393974A1 (en) * | 2020-08-27 | 2020-12-17 | Intel Corporation | Method of detecting read hotness and degree of randomness in solid-state drives (ssds) |
-
2020
- 2020-12-31 CN CN202011615842.XA patent/CN112559193A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630405A (zh) * | 2015-04-29 | 2016-06-01 | 上海磁宇信息科技有限公司 | 一种存储系统及采用该存储系统的读写方法 |
US20180136875A1 (en) * | 2016-11-15 | 2018-05-17 | Samsung Electronics Co., Ltd. | Method and system for managing host memory buffer of host using non-volatile memory express (nvme) controller in solid state storage device |
CN108021511A (zh) * | 2017-11-22 | 2018-05-11 | 深圳忆联信息系统有限公司 | 一种ssd性能提升的方法及ssd |
CN110502455A (zh) * | 2018-05-18 | 2019-11-26 | 杭州海康威视数字技术股份有限公司 | 数据存储方法及系统 |
CN110968529A (zh) * | 2019-11-28 | 2020-04-07 | 深圳忆联信息系统有限公司 | 无缓存固态硬盘的实现方法、装置、计算机设备及存储介质 |
US20200167274A1 (en) * | 2019-12-20 | 2020-05-28 | Intel Corporation | Zoned namespace with zone grouping |
CN111240601A (zh) * | 2020-01-19 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种分区空间的超级块确定方法、装置、设备及存储介质 |
US20200393974A1 (en) * | 2020-08-27 | 2020-12-17 | Intel Corporation | Method of detecting read hotness and degree of randomness in solid-state drives (ssds) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686372A (zh) * | 2022-11-07 | 2023-02-03 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘zrwa功能的数据管理的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884630B2 (en) | Storage system | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8230161B2 (en) | Data backup method for a flash memory and controller and storage system using the same | |
CN107656875B (zh) | 作为系统盘的固态硬盘缩短上电时间的方法及系统 | |
CN106990977B (zh) | 主机看到的设备固件更新效果的管理 | |
TWI596480B (zh) | 記憶體儲存系統及其中控裝置、管理方法與斷電復原方法 | |
TWI467371B (zh) | 記憶體模組及其利用方法、電腦程式與電腦可讀式媒體 | |
WO2016119617A1 (zh) | 一种存储设备坏块的处理方法、装置及存储设备 | |
TWI459400B (zh) | 記憶體儲存裝置、及其記憶體控制器與電源控制方法 | |
TW201502783A (zh) | 用以執行無原子元資料之電力故障安全快取的技術 | |
KR20060047704A (ko) | 비휘발성 메모리 캐시 성능 향상 | |
CN104423888A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN105718530A (zh) | 文件存储系统及其文件存储控制方法 | |
CN105630705A (zh) | 数据存储装置及使用块替换表的读写方法 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
US8819387B2 (en) | Memory storage device, memory controller, and method for identifying valid data | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
CN105630408A (zh) | 一种集成mram的固态硬盘控制芯片及固态硬盘 | |
CN105630701A (zh) | 数据存储装置及使用不可用页表或不可用块表的读写方法 | |
CN112559193A (zh) | 一种基于主机内存空间的区域信息表管理方法 | |
US11416403B2 (en) | Method and apparatus for performing pipeline-based accessing management in storage server with aid of caching metadata with hardware pipeline module during processing object write command | |
CN105630704A (zh) | 存储装置及使用基于块的逻辑物理地址对照表的读写方法 | |
TW201525693A (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111338846B (zh) | 一种基于多核恢复l2p表的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210326 |
|
RJ01 | Rejection of invention patent application after publication |