CN115220664A - Ssd映射表与用户数据保存同步方法、装置、计算机设备及存储介质 - Google Patents
Ssd映射表与用户数据保存同步方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115220664A CN115220664A CN202210997533.6A CN202210997533A CN115220664A CN 115220664 A CN115220664 A CN 115220664A CN 202210997533 A CN202210997533 A CN 202210997533A CN 115220664 A CN115220664 A CN 115220664A
- Authority
- CN
- China
- Prior art keywords
- mapping table
- write
- time stamp
- last copy
- user data
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及SSD映射表与用户数据保存同步方法、装置、计算机设备及存储介质,该方法,包括:获取主机下发的读写请求;判断读写请求是否触发映射表保存;获取当前写入点时间戳信息;主机掉电;主机上电,获取映射表保存区最后一份拷贝数据;获取用户数据保存区写入信息;判断写入信息中的时间戳是否大于最后一份拷贝数据中的时间戳;判断写入信息中的时间戳是否等于最后一份拷贝数据中的时间戳;读取写入点物理页;判断写入点物理页是否均写入用户数据;最后一份拷贝数据有效,基于其内保存的映射表进行恢复,响应主机下发的读写请求。本发明在映射表保存时可以不中断用户数据的读写,极大地提升了性能一致性。
Description
技术领域
本发明涉及SSD映射表技术领域,尤其是指SSD映射表与用户数据保存同步方法、装置、计算机设备及存储介质。
背景技术
SSD(固态硬盘)已经被广泛应用于各种场合,目前在PC市场,已经逐步替代传统的HDD,从可靠性和性能方面为用户提供较好的体验。
SSD内部使用NAND作为数据存储的介质,主机访问SSD基于逻辑地址(LBA),而SSD内部维持一个逻辑到物理地址的映射表(L2P表),用以指示对应的逻辑地址数据存放的物理地址。对于主机命令,其携带LBA地址信息,SSD内部会将其转换为LPA地址(如LBA0-7对应LPA0,LBA8-15对应LPA1…);同时在内存中维护的L2P表,其索引为LPA,值为GPPA(物理NAND地址)。如果是读命令,则根据LPA地址查询内存中的L2P表,即可得到存放数据的物理地址GPPA,进而可以发起对应地址的读,并将数据返回主机;如果是写命令,则SSD内部会分配物理地址用于存储相关数据,并将对应的物理地址更新到L2P表中对应的LPA索引处。
现有SSD中,在内存中会维护一份逻辑地址到物理地址的映射表,以便加速主机读写命令的地址查询、更新。
由于内存在掉电时其内容会丢失,故一般需要周期性地将内存中的映射表保存到NAND上,而映射表的写入(生效)和用户数据的写入(生效)是有依赖性的:必须用户数据写入/生效,才能写入/生效对应的映射表,否则会导致恢复时出现读取未写入的用户数据的异常。为达成这个目标,在进行映射表写入时,需要暂停处理主机的读写,且将已经提交到后端NAND的操作完成,然后再进行映射表的写入,完成后再恢复对主机的读写处理。该过程称为同步,用以保障用户数据和映射表的写入顺序,而该过程中需要暂停主机读写请求的处理,回收已经提交的请求,故而导致主机性能会出现短暂的下降,极大地影响了性能一致性。
发明内容
本发明的目的在于克服现有技术的不足,提供SSD映射表与用户数据保存同步方法、装置、计算机设备及存储介质。
为了解决上述技术问题,本发明采用如下技术方案:
第一方面,本实施例提供了一种SSD映射表与用户数据保存同步方法,包括以下步骤:
获取主机下发的读写请求;
判断读写请求是否触发映射表保存;
若读写请求触发映射表保存,则获取当前写入点时间戳信息;
将需要保存的映射表及当前写入点时间戳信息保存到NAND映射表保存区;
主机掉电;
主机上电,获取映射表保存区最后一份拷贝数据;
获取用户数据保存区写入信息;
比较最后一份拷贝数据中的时间戳和写入信息中的时间戳;
判断写入信息中的时间戳是否大于最后一份拷贝数据中的时间戳;
若写入信息中的时间戳未大于最后一份拷贝数据中的时间戳,则判断写入信息中的时间戳是否等于最后一份拷贝数据中的时间戳;
若写入信息中的时间戳等于最后一份拷贝数据中的时间戳,则读取最后一份拷贝数据中各个DIE对应的写入点物理页;
判断各个DIE对应的写入点物理页是否均写入用户数据;
若各个DIE对应的写入点物理页均写入用户数据,则最后一份拷贝数据有效,基于其内保存的映射表进行恢复,响应主机下发的读写请求。
其进一步技术方案为:所述获取当前写入点时间戳信息步骤中,写入点时间戳信息包括物理块编号,物理块时间戳及各个DIE的写入点物理页编号。
其进一步技术方案为:所述判断写入信息中的时间戳是否等于最后一份拷贝数据中的时间戳步骤之后,还包括:若写入信息中的时间戳不等于最后一份拷贝数据中的时间戳,则最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据,并跳转执行所述获取用户数据保存区写入信息。
其进一步技术方案为:所述判断各个DIE对应的写入点物理页是否均写入用户数据步骤之后,还包括:若各个DIE对应的写入点物理页未均写入用户数据,则跳转执行所述最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据。
第二方面,本实施例提供了一种SSD映射表与用户数据保存同步装置,包括:第一获取单元,第一判断单元,第二获取单元,保存单元,掉电单元,上电获取单元,第三获取单元,比较单元,第二判断单元,第三判断单元,读取单元,第四判断单元及恢复响应单元;
所述第一获取单元,用于获取主机下发的读写请求;
所述第一判断单元,用于判断读写请求是否触发映射表保存;
所述第二获取单元,用于若读写请求触发映射表保存,则获取当前写入点时间戳信息;
所述保存单元,用于将需要保存的映射表及当前写入点时间戳信息保存到NAND映射表保存区;
所述掉电单元,用于主机掉电;
所述上电获取单元,用于主机上电,获取映射表保存区最后一份拷贝数据;
所述第三获取单元,用于获取用户数据保存区写入信息;
所述比较单元,用于比较最后一份拷贝数据中的时间戳和写入信息中的时间戳;
所述第二判断单元,用于判断写入信息中的时间戳是否大于最后一份拷贝数据中的时间戳;
所述第三判断单元,用于若写入信息中的时间戳未大于最后一份拷贝数据中的时间戳,则判断写入信息中的时间戳是否等于最后一份拷贝数据中的时间戳;
所述读取单元,用于若写入信息中的时间戳等于最后一份拷贝数据中的时间戳,则读取最后一份拷贝数据中各个DIE对应的写入点物理页;
所述第四判断单元,用于判断各个DIE对应的写入点物理页是否均写入用户数据;
所述恢复响应单元,用于若各个DIE对应的写入点物理页均写入用户数据,则最后一份拷贝数据有效,基于其内保存的映射表进行恢复,响应主机下发的读写请求。
其进一步技术方案为:所述第二获取单元中,写入点时间戳信息包括物理块编号,物理块时间戳及各个DIE的写入点物理页编号。
其进一步技术方案为:还包括:校验跳转单元,用于若写入信息中的时间戳不等于最后一份拷贝数据中的时间戳,则最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据,并跳转执行所述获取用户数据保存区写入信息。
其进一步技术方案为:还包括:跳转单元,用于若各个DIE对应的写入点物理页未均写入用户数据,则跳转执行所述最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据。
第三方面,本实施例提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如上述所述的SSD映射表与用户数据保存同步方法。
第四方面,本实施例提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如上述所述的SSD映射表与用户数据保存同步方法。
本发明与现有技术相比的有益效果是:在映射表保存时可以不中断用户数据的读写,极大地提升了性能一致性。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为SSD典型读写场景的示意图;
图2为现有读写过程中触发映射表保存的场景示意图;
图3为本发明实施例提供的SSD映射表与用户数据保存同步方法的流程示意图;
图4为本发明实施例提供的SSD映射表与用户数据保存同步方法的应用场景示意图一;
图5为本发明实施例提供的SSD映射表与用户数据保存同步方法的应用场景示意图二;
图6为本发明实施例提供的SSD映射表与用户数据保存同步装置的示意性框图;
图7为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1所示的SSD典型的读写流程:
主机发送命令给到SSD硬件模块;
SSD硬件模块PCIe/NVMe接收到命令后,转交给固件模块处理;
SSD固件前端模块将命令分割成映射单元(典型如4KB);
提交操作请求到缓冲区管理模块,分配读写缓冲区;
如果为写命令,则根据所分配的缓冲区,建立与主机的数据传输,且在完成数据传输后告知主机命令完成;
如果为读命令,则提交操作请求到映射表管理模块;
映射表管理模块负责根据逻辑地址分配对应的物理地址(写命令)或者把逻辑地址转换成NAND物理地址(读命令);
提交操作请求到后端模块,后端模块根据物理地址发起对NAND读/写请求;
等待NAND读/写操作请求完成;
如果为读命令,数据Ready(准备完毕)后,启动数据从NAND Cache Register(NAND内存)到主机的传输。
请参阅图2所示的读写过程中触发映射表保存的场景:
随着主机读写请求的累计,导致内存中的映射表很多表项自最近一次保存以来发生了变化,如果某一时刻掉电,需要通过扫描相应的用户区域来重建,耗时较长,为保障掉电后重建的时间,会周期性触发将映射表部分保存到NAND上,当触发映射表保存时,为了保障用户数据与映射表数据的写入/生效顺序,需要严格同步;
映射表管理模块暂停主机读写命令处理;
等待所有已经提交后端模块的NAND读写请求处理完成(保障用户数据完成写入/生效);
启动映射表保存到NAND存储区(映射表数据写入/生效);
映射表管理模块恢复主机读写命令处理。
其中,在映射表保存的过程中,需要做特定的同步动作,导致主机的命令处理被中断,进而导致性能的波动。
请参阅图3所示的具体实施例,本发明公开了一种SSD映射表与用户数据保存同步方法,包括以下步骤:
S1,获取主机下发的读写请求;
S2,判断读写请求是否触发映射表保存;若读写请求未触发映射表保存,则返回执行所述获取主机下发的读写请求;
S3,若读写请求触发映射表保存,则获取当前写入点时间戳信息;
在一具体实施例中,S3步骤中,写入点时间戳信息包括物理块编号,物理块时间戳及各个DIE的写入点物理页编号。
S4,将需要保存的映射表及当前写入点时间戳信息保存到NAND映射表保存区;
在一具体实施例中,在S4步骤之后,还包括:循环执行S1-S4步骤。
S5,主机掉电;
S6,主机上电,获取映射表保存区最后一份拷贝数据;
S7,获取用户数据保存区写入信息;
在一具体实施例中,S7步骤中,写入信息包括写入点物理块编号,物理块时间戳及各个DIE的写入点物理页编号。
S8,比较最后一份拷贝数据中的时间戳和写入信息中的时间戳;
具体地,比较最后一份拷贝数据中的时间戳和写入信息中的时间戳,即比较两个时间戳,哪一个更早或哪一个更晚。
具体地,物理块时间戳:对应用户数据区写入点物理块的时间戳,为单调增长的整数,可以直接比较大小,将拷贝数据中时间戳和当前用户数据区写入点的时间戳的物理块时间进行比较,即可。
S9,判断写入信息中的时间戳是否大于最后一份拷贝数据中的时间戳;若写入信息中的时间戳大于最后一份拷贝数据中的时间戳,则跳转执行所述最后一份拷贝数据有效,基于其内保存的映射表进行恢复,响应主机下发的读写请求。
具体地,通过判断写入信息中的时间戳与最后一份拷贝数据中的时间戳哪个更晚。
S10,若写入信息中的时间戳未大于最后一份拷贝数据中的时间戳,即写入信息中的时间戳不晚于最后一份拷贝数据中的时间戳,则判断写入信息中的时间戳是否等于最后一份拷贝数据中的时间戳;若写入信息中的时间戳不等于最后一份拷贝数据中的时间戳,则最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据,并跳转执行所述获取用户数据保存区写入信息,即S14步骤;
具体地,校验最后一份拷贝数据的前一份拷贝数据指的是将前述的校验过程再来一次,只不过把映射区的拷贝从最后一个换成前一个。
S11,若写入信息中的时间戳等于最后一份拷贝数据中的时间戳,即写入信息中的时间戳与最后一份拷贝数据中的时间戳相同,则读取最后一份拷贝数据中各个DIE对应的写入点物理页;
S12,判断各个DIE对应的写入点物理页是否均写入用户数据;若各个DIE对应的写入点物理页未均写入用户数据,则跳转执行所述最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据。
S13,若各个DIE对应的写入点物理页均写入用户数据,则最后一份拷贝数据有效,基于其内保存的映射表进行恢复,响应主机下发的读写请求。
具体地,基于其内保存的映射表进行恢复指的是将映射表保存区的内容读取到内存中。响应主机下发的读写请求指的是处理主机读写命令,具体的参考图1的主机读写过程,此处应该不需要重复。
请参阅图4所示的应用场景示意图,SSD物理组成,包括:DIE,独立操作单元,其内包含多个物理块;Block,物理块,独立擦除单元,其内包含多个物理页;Page,物理页,最小读写单元,其被写入后再次覆写前必须擦除整个物理块;一个SSD内部由多个DIE组成,以提升容量以及并发性能,为便于说明,本发明以两个DIE进行说明:DIE0以及DIE1;
SSD内部NAND分为多个区域,至少包含如下:
用户数据保存区,用以存储用户数据;
映射表保存区,用以存储映射表数据;
用户数据保存区,任意时刻的用户数据写入点由每个DIE下一个物理块组成,如图中所示的Block X,进一步地,为了表征数据写入的先后顺序,会有一个用户数据时间戳,对应TS_X(该时间戳为单调递增的,每次新分配一组物理块会递增对应的时间戳信息);
映射表保存区,每个完整的Copy(拷贝数据)包含数个物理页,每个物理页的组成如下:
内存L2P表中部分映射表项:其在最近一次保存后发生过变化;
用户区时间戳,用以表示映射表保存时,对应的用户数据区写入点的位置,需要注意的是,由于在映射表管理模块与后端模块存在异步操作,当记录写入点信息时,其对应的用户数据区的物理位置已经被分配但可能尚未完成写入;
映射表Copy的用户区时间戳格式进一步地包含如下信息:
写入点物理块编号指的是用户数据区写入点的物理块编号;
物理块时间戳指的是对应用户数据区写入点物理块的时间戳;
各个DIE写入点物理块当前写入的Page编号:DIE 0 Page X/DIE 1 Page Y。
当触发映射表保存时,无需特别的同步操作,通过在映射表保存的拷贝中同步保存用户区时间戳信息,可以并行地完成映射表保存和后端的用户数据读写,而映射表与用户数据的同步遗留到后续掉电发生恢复时,才进行判断处理。主机掉电过程是较为稀少的,将频繁的保存时的同步转移到稀少的恢复时的同步,可极大地提升运行过程中的性能一致性。
请参阅图5所示的应用场景示意图,异常掉电再上电后的处理流程:
映射表保存区最近两份拷贝的用户数据区时间戳信息如下:
Copy N:
用户数据区写入点物理块编号X;
用户数据区写入点物理块写入点时间戳TS_X;
用户数据区写入点物理页:DIE 0,Page 1;DIE 1,Page 1;
Copy N+1:
用户数据区写入点物理块编号X;
用户数据区写入点物理块写入点时间戳TS_X;
用户数据区写入点物理页:DIE 0,Page 4;DIE 1,Page 4。
用户数据区的当前写入点为:
当前写入点物理块编号X;
当前写入点物理块写入点时间戳TS_X;
用户数据区写入点物理页:DIE 0,Page 4;DIE 1,Page 3。
在此场景下,映射表保存区COPY N+1中,对应的DIE 1,Page 4的映射表已经生效,而在实际的用户数据区,对应的DIE 1,Page 4尚未完成写入(仍然为空),如果错误地使用COPY N+1进行恢复,则会导致用户数据指向空白物理页,进而导致异常。
在本发明中,可以先读取映射表拷贝中保存的用户数据区对应的DIE的物理页,如果为空,则说明当前映射表COPY无效,回退到上一个映射表拷贝(COPY N)进行尝试;而COPYN指向的用户数据区写入点的物理页均为非空,则说明有效,可以使用其进行映射表恢复。
本发明在映射表保存时可以不中断用户数据的读写,极大地提升了性能一致性。
请参阅图6所示,本发明还公开了一种SSD映射表与用户数据保存同步装置,包括:第一获取单元10,第一判断单元20,第二获取单元30,保存单元40,掉电单元50,上电获取单元60,第三获取单元70,比较单元80,第二判断单元90,第三判断单元100,读取单元110,第四判断单元120及恢复响应单元130;
所述第一获取单元10,用于获取主机下发的读写请求;
所述第一判断单元20,用于判断读写请求是否触发映射表保存;
所述第二获取单元30,用于若读写请求触发映射表保存,则获取当前写入点时间戳信息;
所述保存单元40,用于将需要保存的映射表及当前写入点时间戳信息保存到NAND映射表保存区;
所述掉电单元50,用于主机掉电;
所述上电获取单元60,用于主机上电,获取映射表保存区最后一份拷贝数据;
所述第三获取单元70,用于获取用户数据保存区写入信息;
所述比较单元80,用于比较最后一份拷贝数据中的时间戳和写入信息中的时间戳;
所述第二判断单元90,用于判断写入信息中的时间戳是否大于最后一份拷贝数据中的时间戳;
所述第三判断单元100,用于若写入信息中的时间戳未大于最后一份拷贝数据中的时间戳,则判断写入信息中的时间戳是否等于最后一份拷贝数据中的时间戳;
所述读取单元110,用于若写入信息中的时间戳等于最后一份拷贝数据中的时间戳,则读取最后一份拷贝数据中各个DIE对应的写入点物理页;
所述第四判断单元120,用于判断各个DIE对应的写入点物理页是否均写入用户数据;
所述恢复响应单元130,用于若各个DIE对应的写入点物理页均写入用户数据,则最后一份拷贝数据有效,基于其内保存的映射表进行恢复,响应主机下发的读写请求。
其中,所述第二获取单元30中,写入点时间戳信息包括物理块编号,物理块时间戳及各个DIE的写入点物理页编号。
其中,该装置还包括:校验跳转单元140,用于若写入信息中的时间戳不等于最后一份拷贝数据中的时间戳,则最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据,并跳转执行所述获取用户数据保存区写入信息。
其中,该装置还包括:跳转单元,用于若各个DIE对应的写入点物理页未均写入用户数据,则跳转执行所述最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述SSD映射表与用户数据保存同步装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述SSD映射表与用户数据保存同步装置可以实现为一种计算机程序的形式,该计算机程序可以在如图7所示的计算机设备上运行。
请参阅图7,图7是本申请实施例提供的一种计算机设备的示意性框图;该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图7,该计算机设备500包括通过***总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作***5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种SSD映射表与用户数据保存同步方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种SSD映射表与用户数据保存同步方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
步骤S1,获取主机下发的读写请求;
步骤S2,判断读写请求是否触发映射表保存;
步骤S3,若读写请求触发映射表保存,则获取当前写入点时间戳信息;
步骤S4,将需要保存的映射表及当前写入点时间戳信息保存到NAND映射表保存区;
步骤S5,主机掉电;
步骤S6,主机上电,获取映射表保存区最后一份拷贝数据;
步骤S7,获取用户数据保存区写入信息;
步骤S8,比较最后一份拷贝数据中的时间戳和写入信息中的时间戳;
步骤S9,判断写入信息中的时间戳是否大于最后一份拷贝数据中的时间戳;
步骤S10,若写入信息中的时间戳未大于最后一份拷贝数据中的时间戳,则判断写入信息中的时间戳是否等于最后一份拷贝数据中的时间戳;
步骤S11,若写入信息中的时间戳等于最后一份拷贝数据中的时间戳,则读取最后一份拷贝数据中各个DIE对应的写入点物理页;
步骤S12,判断各个DIE对应的写入点物理页是否均写入用户数据;
步骤S13,若各个DIE对应的写入点物理页均写入用户数据,则最后一份拷贝数据有效,基于其内保存的映射表进行恢复,响应主机下发的读写请求。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机***中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述的SSD映射表与用户数据保存同步方法。该存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述的方法。该程序指令包括以下步骤:
步骤S1,获取主机下发的读写请求;
步骤S2,判断读写请求是否触发映射表保存;
步骤S3,若读写请求触发映射表保存,则获取当前写入点时间戳信息;
步骤S4,将需要保存的映射表及当前写入点时间戳信息保存到NAND映射表保存区;
步骤S5,主机掉电;
步骤S6,主机上电,获取映射表保存区最后一份拷贝数据;
步骤S7,获取用户数据保存区写入信息;
步骤S8,比较最后一份拷贝数据中的时间戳和写入信息中的时间戳;
步骤S9,判断写入信息中的时间戳是否大于最后一份拷贝数据中的时间戳;
步骤S10,若写入信息中的时间戳未大于最后一份拷贝数据中的时间戳,则判断写入信息中的时间戳是否等于最后一份拷贝数据中的时间戳;
步骤S11,若写入信息中的时间戳等于最后一份拷贝数据中的时间戳,则读取最后一份拷贝数据中各个DIE对应的写入点物理页;
步骤S12,判断各个DIE对应的写入点物理页是否均写入用户数据;
步骤S13,若各个DIE对应的写入点物理页均写入用户数据,则最后一份拷贝数据有效,基于其内保存的映射表进行恢复,响应主机下发的读写请求。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
上述实施例为本发明较佳的实现方案,除此之外,本发明还可以其它方式实现,在不脱离本技术方案构思的前提下任何显而易见的替换均在本发明的保护范围之内。
Claims (10)
1.SSD映射表与用户数据保存同步方法,其特征在于,包括以下步骤:
获取主机下发的读写请求;
判断读写请求是否触发映射表保存;
若读写请求触发映射表保存,则获取当前写入点时间戳信息;
将需要保存的映射表及当前写入点时间戳信息保存到NAND映射表保存区;
主机掉电;
主机上电,获取映射表保存区最后一份拷贝数据;
获取用户数据保存区写入信息;
比较最后一份拷贝数据中的时间戳和写入信息中的时间戳;
判断写入信息中的时间戳是否大于最后一份拷贝数据中的时间戳;
若写入信息中的时间戳未大于最后一份拷贝数据中的时间戳,则判断写入信息中的时间戳是否等于最后一份拷贝数据中的时间戳;
若写入信息中的时间戳等于最后一份拷贝数据中的时间戳,则读取最后一份拷贝数据中各个DIE对应的写入点物理页;
判断各个DIE对应的写入点物理页是否均写入用户数据;
若各个DIE对应的写入点物理页均写入用户数据,则最后一份拷贝数据有效,基于其内保存的映射表进行恢复,响应主机下发的读写请求。
2.根据权利要求1所述的SSD映射表与用户数据保存同步方法,其特征在于,所述获取当前写入点时间戳信息步骤中,写入点时间戳信息包括物理块编号,物理块时间戳及各个DIE的写入点物理页编号。
3.根据权利要求1所述的SSD映射表与用户数据保存同步方法,其特征在于,所述判断写入信息中的时间戳是否等于最后一份拷贝数据中的时间戳步骤之后,还包括:若写入信息中的时间戳不等于最后一份拷贝数据中的时间戳,则最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据,并跳转执行所述获取用户数据保存区写入信息。
4.根据权利要求3所述的SSD映射表与用户数据保存同步方法,其特征在于,所述判断各个DIE对应的写入点物理页是否均写入用户数据步骤之后,还包括:若各个DIE对应的写入点物理页未均写入用户数据,则跳转执行所述最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据。
5.SSD映射表与用户数据保存同步装置,其特征在于,包括:第一获取单元,第一判断单元,第二获取单元,保存单元,掉电单元,上电获取单元,第三获取单元,比较单元,第二判断单元,第三判断单元,读取单元,第四判断单元及恢复响应单元;
所述第一获取单元,用于获取主机下发的读写请求;
所述第一判断单元,用于判断读写请求是否触发映射表保存;
所述第二获取单元,用于若读写请求触发映射表保存,则获取当前写入点时间戳信息;
所述保存单元,用于将需要保存的映射表及当前写入点时间戳信息保存到NAND映射表保存区;
所述掉电单元,用于主机掉电;
所述上电获取单元,用于主机上电,获取映射表保存区最后一份拷贝数据;
所述第三获取单元,用于获取用户数据保存区写入信息;
所述比较单元,用于比较最后一份拷贝数据中的时间戳和写入信息中的时间戳;
所述第二判断单元,用于判断写入信息中的时间戳是否大于最后一份拷贝数据中的时间戳;
所述第三判断单元,用于若写入信息中的时间戳未大于最后一份拷贝数据中的时间戳,则判断写入信息中的时间戳是否等于最后一份拷贝数据中的时间戳;
所述读取单元,用于若写入信息中的时间戳等于最后一份拷贝数据中的时间戳,则读取最后一份拷贝数据中各个DIE对应的写入点物理页;
所述第四判断单元,用于判断各个DIE对应的写入点物理页是否均写入用户数据;
所述恢复响应单元,用于若各个DIE对应的写入点物理页均写入用户数据,则最后一份拷贝数据有效,基于其内保存的映射表进行恢复,响应主机下发的读写请求。
6.根据权利要求5所述的SSD映射表与用户数据保存同步装置,其特征在于,所述第二获取单元中,写入点时间戳信息包括物理块编号,物理块时间戳及各个DIE的写入点物理页编号。
7.根据权利要求5所述的SSD映射表与用户数据保存同步装置,其特征在于,还包括:校验跳转单元,用于若写入信息中的时间戳不等于最后一份拷贝数据中的时间戳,则最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据,并跳转执行所述获取用户数据保存区写入信息。
8.根据权利要求7所述的SSD映射表与用户数据保存同步装置,其特征在于,还包括:跳转单元,用于若各个DIE对应的写入点物理页未均写入用户数据,则跳转执行所述最后一份拷贝数据无效,校验最后一份拷贝数据的前一份拷贝数据。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-4中任一项所述的SSD映射表与用户数据保存同步方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如权利要求1-4中任一项所述的SSD映射表与用户数据保存同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210997533.6A CN115220664A (zh) | 2022-08-19 | 2022-08-19 | Ssd映射表与用户数据保存同步方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210997533.6A CN115220664A (zh) | 2022-08-19 | 2022-08-19 | Ssd映射表与用户数据保存同步方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115220664A true CN115220664A (zh) | 2022-10-21 |
Family
ID=83616171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210997533.6A Pending CN115220664A (zh) | 2022-08-19 | 2022-08-19 | Ssd映射表与用户数据保存同步方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115220664A (zh) |
-
2022
- 2022-08-19 CN CN202210997533.6A patent/CN115220664A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE48736E1 (en) | Memory system having high data transfer efficiency and host controller | |
US10983955B2 (en) | Data unit cloning in memory-based file systems | |
CN108431783B (zh) | 访问请求处理方法、装置及计算机*** | |
US9081692B2 (en) | Information processing apparatus and method thereof | |
CN108733306B (zh) | 一种文件合并方法及装置 | |
CN101840362A (zh) | 一种改进的写时拷贝快照的实现方法和装置 | |
KR20050088078A (ko) | 메모리 압축된 머신을 모핑하는 방법 및 장치 | |
US10754785B2 (en) | Checkpointing for DRAM-less SSD | |
CN106294205B (zh) | 缓存数据处理方法及装置 | |
US11960396B2 (en) | Method and computer program product for performing data writes into a flash memory | |
CN111563052A (zh) | 降低读延时的缓存方法、装置、计算机设备及存储介质 | |
CN111324303A (zh) | Ssd垃圾回收方法、装置、计算机设备及存储介质 | |
JP2017527877A (ja) | フラッシュメモリから/フラッシュメモリへデータを読み取る/書き込むための方法および装置、ならびにユーザ機器 | |
EP4044015A1 (en) | Data processing method and apparatus | |
CN114780448A (zh) | 数据快速拷贝的方法、装置、计算机设备及存储介质 | |
WO2021062982A1 (zh) | 管理hmb内存的方法、装置、计算机设备及存储介质 | |
CN116755625A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN116225334A (zh) | 一种冷热数据存储方法、装置以及介质 | |
WO2016206070A1 (zh) | 一种文件更新方法及存储设备 | |
CN110928890B (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
WO2023193630A1 (zh) | 一种峰值检测方法、装置、计算机设备和存储介质 | |
CN108958657B (zh) | 一种数据存储方法、存储设备及存储*** | |
US20230142948A1 (en) | Techniques for managing context information for a storage device | |
CN112395215A (zh) | DRAM-less固态硬盘映射表管理方法、装置、计算机设备及存储介质 | |
CN111597066A (zh) | Ssd修复方法、装置、计算机设备及存储介质 |
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 |