CN112559193A - 一种基于主机内存空间的区域信息表管理方法 - Google Patents

一种基于主机内存空间的区域信息表管理方法 Download PDF

Info

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
Application number
CN202011615842.XA
Other languages
English (en)
Inventor
吴斌
王璞
刘凯
孙大朋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Sinochip Semiconductors Co Ltd
Original Assignee
Shandong Sinochip Semiconductors Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Sinochip Semiconductors Co Ltd filed Critical Shandong Sinochip Semiconductors Co Ltd
Priority to CN202011615842.XA priority Critical patent/CN112559193A/zh
Publication of CN112559193A publication Critical patent/CN112559193A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5022Mechanisms 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中。
CN202011615842.XA 2020-12-31 2020-12-31 一种基于主机内存空间的区域信息表管理方法 Pending CN112559193A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115686372A (zh) * 2022-11-07 2023-02-03 武汉麓谷科技有限公司 一种基于zns固态硬盘zrwa功能的数据管理的方法

Citations (8)

* Cited by examiner, † Cited by third party
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)

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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