CN115576863A - 一种数据读写方法、存储设备及存储介质 - Google Patents
一种数据读写方法、存储设备及存储介质 Download PDFInfo
- Publication number
- CN115576863A CN115576863A CN202211110425.9A CN202211110425A CN115576863A CN 115576863 A CN115576863 A CN 115576863A CN 202211110425 A CN202211110425 A CN 202211110425A CN 115576863 A CN115576863 A CN 115576863A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- mapping table
- physical address
- storage device
- 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
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请实施例提供一种数据读写方法、存储设备及存储介质,涉及数据存储技术领域,能够提升存储设备的上下电效率。该方法应用于存储设备中的控制器,该存储设备还包括与控制器连接的第一存储器和第二存储器,该第一存储器和第二存储器均是非易失性存储器,该方法包括:接收读指令,该读指令包括第一数据的虚拟地址;响应于读指令,基于上述第二存储器存储的目标映射表,确定上述第一数据的虚拟地址对应的第一数据的物理地址;该目标映射表用于表征多个虚拟地址与第一存储器的多个物理地址的对应关系;根据第一数据的物理地址从上述第一存储器中读取第一数据。
Description
技术领域
本申请实施例涉及数据存储技术领域,尤其涉及一种数据读写方法、存储设备及存储介质。
背景技术
随着互联网技术的发展,各大厂商对存储设备的工作效率的要求也越来越高。一种存储设备的工作方法包括:当存储设备上电时,需要读取该存储设备的第一存储器(如:闪存)中的映射表,该映射表用于表征多个虚拟地址与第一存储器的多个物理地址的对应关系;并将该映射表存储在该存储设备的动态随机存取存储器(dynamic random accessmemory,DRAM)中,以使后续对第一存储器中存储的目标数据进行读写操作时,基于该映射表完成目标数据的读写操作;当该存储设备下电时,需要读取该DRAM中的映射表,并使其更新第一存储器中的映射表。
然而,上述每一次对映射表进行读写操作都需要花费大量的时间,从而降低了该存储设备的上下电效率。
发明内容
本申请实施例提供一种数据读写方法、存储设备及存储介质,能够提高存储设备的上下电效率。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种数据读写方法,该方法应用于存储设备中的控制器,该存储设备还包括与控制器连接的第一存储器和第二存储器,该第一存储器和第二存储器均是非易失性存储器;该方法包括:接收读指令,该读指令包括第一数据的虚拟地址;响应于读指令,基于该第二存储器存储的目标映射表,确定第一数据的虚拟地址对应的第一数据的物理地址;该目标映射表用于表征多个虚拟地址与上述第一存储器的多个物理地址的对应关系;根据第一数据的物理地址从第一存储器中读取第一数据。
需要说明的是,上述目标映射表是始终存储在第二存储器中的,所以在该目标映射表中读第一数据的物理地址时,直接在第二存储器中对该映射表进行读操作;由于第二存储器是非易失性存储器,所以,即使在存储设备上下电或者存储设备所在的服务器意外断电,该目标映射表中的数据也不会丢失,所以当存储设备上下电或者存储设备所在的服务器意外断电时,无需将该目标映射表写入到第一存储器中,从而提高了存储设备的上下电效率。
一种可能的实现方式中,在接收读指令之前该方法还包括:接收写指令,该写指令包括第一数据的虚拟地址;响应于上述写指令,将该第一数据存储在第一存储器中;将该第一数据的虚拟地址和上述第一数据的物理地址的对应关系存储在目标映射表中。
一种可能的实现方式中,上述方法还包括:接收修改指令,该修改指令中包括上述第一数据的虚拟地址和第二数据,其中,该第二数据为修改后的第一数据;响应于上述修改指令,在第一存储器中存储该第二数据;该第二数据的物理地址与上述第一数据的物理地址不同;将上述目标映射表中第一数据的虚拟地址对应第一数据的物理地址更新为该第二数据的物理地址。
一种可能的实现方式中,上述方法还包括:接收删除指令,该删除指令包括上述第一数据的虚拟地址;响应于该删除指令,从上述目标映射表征中删除第一数据的虚拟地址和该第一数据的物理地址的对应关系;从该第一数据的物理地址所指示的存储空间中删除上述第一数据。
上述目标映射表是始终存储在第二存储器中的,所以需要使用该目标映射表时,直接在第二存储器中对该映射表进行增/删/改/查操作;由于第二存储器是非易失性存储器,所以,即使在存储设备上下电或者存储设备所在的服务器意外断电,该目标映射表中的数据也不会丢失,所以,在存储设备上下电或者存储设备所在的服务器意外断电时,无需将该目标映射表写入到第一存储器中,从而提高了存储设备的上下电效率。
此外,由于在使用目标映射表时是直接在第二存储器中操作该目标映射表,而且第二存储器是非易失性存储器,所以该存储设备无需再设置掉电保护电路,因此,节约了存储设备的成本。
一种可能的实现方式中,上述存储设备是固态硬盘。
一种可能的实现方式中,第二存储器支持在待修改数据所在的存储空间上对该待修改数据进行修改。
一种可能的实现方式中,上述第一存储器包括闪存或持久内存PMEM;上述第二存储器包括闪存或PMEM。
由于第一存储器上存储的数据量较多,且存储设备中的控制器需要频繁的从第一存储器和DRAM之间来回读写目标映射,即控制器需要频繁的对第一存储器中的目标映射表进行读写操作,从而增大了第一存储器中出现坏块的概率;而将目标映射表存储在PMEM中,后续直接在PMEM中操作目标映射表,不但减少了第一存储器上的数据存储量,也减少了对第一存储器上的数据执行的操作次数,从而减少了坏块出现的情况,进而延长了存储设备的寿命。
第二方面,本申请实施例提供一种控制器,该控制器包括:收发模块、确定模块和读写模块;收发模块用于接收读指令,该读指令包括第一数据的虚拟地址;确定模块用于响应于该读指令,基于第二存储器存储的目标映射表,确定该第一数据的虚拟地址对应的第一数据的物理地址;该目标映射表用于表征多个虚拟地址与第一存储器的多个物理地址的对应关系;读写模块用于根据上述第一数据的物理地址从第一存储器中读取该第一数据。
一种可能的实现方式中,收发模块用于接收写指令,写指令包括第一数据的虚拟地址;读写模块用于响应于写指令,将第一数据存储在第一存储器中;读写模块还用于将第一数据的虚拟地址和第一数据的物理地址的对应关系存储在目标映射表中。
一种可能的实现方式中,收发模块用于接收修改指令,修改指令中包括第一数据的虚拟地址和第二数据,其中,第二数据为修改后的第一数据;读写模块用于响应于修改指令,在第一存储器中存储第二数据;第二数据的物理地址与第一数据的物理地址不同;读写模块还用于将目标映射表中第一数据的虚拟地址对应第一数据的物理地址更新为第二数据的物理地址。
一种可能的实现方式中,该控制器还包括删除模块;收发模块还用于接收删除指令,删除指令包括第一数据的虚拟地址;删除模块用于响应于删除指令,从目标映射表征中删除第一数据的虚拟地址和第一数据的物理地址的对应关系;删除模块还用于从第一数据的物理地址所指示的存储空间中删除第一数据。
一种可能的实现方式中,存储设备是固态硬盘。
一种可能的实现方式中,第二存储器支持在待修改数据所在的存储空间上对该待修改数据进行修改。
一种可能的实现方式中,上述第一存储器包括闪存或持久内存PMEM;第二存储器包括闪存或PMEM。
第三方面,本申请实施例提供一种控制器,包括接口和逻辑电路;其中,所述接口用于所述控制器与外部设备进行信息交互,所述逻辑电路用于执行第一方面的任一项所述的方法。
第四方面,本申请实施例提供一种存储设备,该存储设备包括:第一存储器,该第一存储器为闪存;第二存储器,该第二存储器是非易失性存储器,且支持在待修改数据所在的存储空间上对该待修改数据进行修改;控制器;该制器用于执行第一方面中任一项所述的方法。
第五方面,本申请实施例提供一种服务器,该服务器包括:处理器以及与该处理器连接的存储设备;该处理器用于向存储设备发送读写指令;该存储设备用于接收读写指令,并执行第一方面中任一项所述的方法。
第六方面,本申请实施例提供一种计算机存储介质,其上存储有计算机指令,当计算机指令在计算设备上运行时,使得计算设备执行上述第一方面及其可能的实现方式中任意之一所述的方法。
第七方面,本申请实施例提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面及其可能的实现方式中任意之一所述的方法。
应当理解的是,本申请实施例的第二方面至第七方面技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面及其对应的可能的实施方式的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种存储设备的工作方法流程示意图;
图2为本申请实施例提供的一种电子设备结构示意图;
图3为本申请实施例提供的一种存储设备的硬件结构示意图;
图4为本申请实施例提供的一种数据读取方法流程示意图;
图5为本申请实施例提供的一种数据写入方法流程示意图;
图6为本申请实施例提供的一种数据修改方法流程示意图;
图7为本申请实施例提供的一种数据删除方法流程示意图;
图8为本申请实施例提供的一种控制器的结构示意图。
具体实施方式
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一存储器和第二存储器等是用于区别不同的存储器,而不是用于描述存储器的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
随着互联网技术的发展,存储设备的应用也越发广泛,与此同时,各大厂商对存储设备的工作效率的要求也越来越高。
一种存储设备的工作方法,如图1所示,该方法应用在包括固态硬盘(solid statedisk,SSD)的电子设备(如:服务器)中,其中,该SSD为电子设备中的存储设备,该方法包括:
首先,电子设备的电源模块向SSD供电(如步骤①);此时,SSD中的掉电保护电路104执行充电动作(如步骤②),以使该掉电保护电路104中存储电量。与此同时,SSD控制器101读取闪存102中存储的映射表(如步骤③),其后向DRAM103中写入该映射(如步骤④),该DRAM103为易失性存储设备;其中,上述映射表用于表征多个虚拟地址与闪存102中的多个物理地址的对应关系。后续SSD控制器101通过更新DRAM103中映射表实现写数据的动作。
然后,SSD控制器101周期性地读取DRAM103中的映射表(如步骤⑤),并将读取的映射表写入闪存102中(如步骤⑥),从而更新闪存102中的映射表。最后,由于DRAM103为易失性存储器,即:在SSD下电后,DRAM103会丢失其上存储的所有数据,所以当电子设备下电时,先通知SSD控制器101(此时仍由电子设备的电源模块为SSD供电),以使该SSD控制器101执行步骤⑤和步骤⑥,进而使得SSD控制器101将DRAM103中的最新映射表存储在非易失性存储设备即闪存102中,随后,SSD正常下电。
此外,当电子设备发生意外断电,导致该电子设备不能为SSD供电时,掉电保护电路104充当电源为SSD供电(如步骤⑦),以使SSD控制器101执行步骤⑤和步骤⑥,以使得SSD控制器将DRAM103中的最新映射表存存储在闪存102中;随后SSD正常下电。
上述工作方法需要频繁的对映射表进行读写,如SSD上电时需要控制器101将闪存102中的映射表写入到DRAM103中,在SSD下电时需要控制器101将DRAM103中的映射表更新进闪存102中;然而每一次对映射表进行读写操作都需要花费大量的时间,从而降低了该存储设备的上下电效率。
基于此,本申请实施例提供了一种数据读写方法,该控制方法应用于存储设备中的控制器,该存储设备还包括与控制器连接的第一存储器和第二存储器,所述方法包括:接收包括第一数据的虚拟地址的读指令;然后,基于第二存储器存储的目标映射表,确定第一数据的虚拟地址对应的第一数据的物理地址,其中,该目标映射表用于表征多个虚拟地址与第一存储器的多个物理地址的对应关系;并根据第一数据的物理地址从第一存储器中读取第一数据。从而解决了因存储设备上下电时对该映射表进行的读写操作,而导致存储设备上下电效率较低的问题。因此,提高了存储设备上下电的效率。
本申请实施例提供的数据读写方法可以应用于图2所示的电子设备,该电子设备包括:处理器201和存储设备202。
处理器201用于向存储设备202发送数据读写指令。其中,处理器201可以为存储设备以外的中央处理器(Central Processing Unit,CPU)、应用处理器(applicationprocessor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP)等具有计算和收发功能的设备。
存储设备202用于接收处理器201发送的数据读写指令,并根据该数据读写指令,执行本申请实施例提供的数据读写方法,具体见下文。其中,存储设备202中用于存储数据的存储器为闪存,该存储设备202具体可以是固体硬盘SSD或U盘等具有存储能力的装置。
需要说明的是,上述该数据读写指令中包括待读写数据的虚拟地址;存储设备202根据映射表将该待读写数据的虚拟地址转换为待读写数据的物理地址;然后,存储设备202对该待读写数据的物理地址上的数据执行读写操作。其中,物理地址:放在寻址总线上的地址。放在寻址总线上,如果是读,电路根据这个地址每位的值就将相应地址的物理内存中的数据放到数据总线中传输。如果是写,电路根据这个地址每位的值就在相应地址的物理内存中放入数据总线上的内容。物理内存是以字节(8位)为单位编址的。具体的,存储设备从上级至下级可以依次划分为内存芯片、存储阵列组、存储阵列,存储行/存储列、存储单元、比特位,其中,内存颗粒、存储阵列组、存储阵列、存储行、存储了列、存储单元、比特位在内存上的地址为真实的物理地址。虚拟地址:是由编译程序生成的,是程序的逻辑地址,其地址空间的大小受到辅助存储器容量的限制;具体的,电子设备中的CPU基于分页机制将内存芯片划分为多个内存页(page),其中,内存页的地址为虚拟地址,虚拟地址需要转换后才会变为真实的物理地址。
上述存储设备202的硬件结构如图3中的存储设备所示,存储设备包括:控制器301、第一存储器302和第二存储器303,其中,第一存储器302包括:存储区域1-存储区域N。
控制器301用于接收处理器201发送的数据读指令,并响应于该读指令,基于第二存储器存储的目标映射表,确定读指令中包括的第一数据的虚拟地址对应的第一数据的物理地址,然后,根据第一数据的物理地址从第一存储器中读取第一数据。该控制器301可以为处理单元CPU,还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器等具有处理功能的装置。
需要注意的是,上述控制器301为存储设备中的控制器,而上述处理器201为存储设备以外的控制器,控制器301和处理器201为不同的控制器。
第一存储器用于将数据存储在存储区域1-N中,该第一存储器为闪存,其中,该闪存中的存储区域1-N中任意一个存储区域为一个Rank、Device、BankGroup、Bank、Row或Column对应的区域,也可以是一个存储数据的文件在SSD上对应的存储区域,还可以是一个盘,如C盘,在SSD上对应的区域。
第二存储器为非易失性存储器,且支持在待修改数据所在的存储空间上对所述待修改数据进行修改(简称:原地修改);该第二存储器具体可以为持久内存(persistentmemory,PMEM)。
本申请实施例提供的一种数据读取方法,如图4所示;该方法应用于如图2所示的电子设备(如:服务器)中,其中,该服务器中的处理器为CPU为例进行说明,该方法包括:S100-S130。
S100、CPU发送读指令。
上述读指令中包括第一数据的虚拟地址,该读指令用于读取第一数据。
S110、控制器接收读指令。
上述控制器为CPU所在的服务器中的存储设备的控制器,如上图3中的控制器301。该存储设备还包括与上述控制器连接的第一存储器,其中,第一存储器是非易失性存储器,该第一存储器为闪存。
上述存储设备还包括与上述控制器连接的第二存储器,其中,第二存储器是非易失性存储器,且该第二存储器支持原地修改;该原地修改是指在待修改数据所在的存储空间上对该待修改数据进行修改,例如:目标数据A存储在存储块A中,原地修改是指在存储块A中将目标数据A修改为目标数据B。
上述第一存储器用于存储CPU发送的待存储数据,其中,第一存储器的数据读写速度低于第二存储器的数据读写速度。
需要说明的是,上述控制器可以通过无线接口接收CPU发送的读指令,也可以通过有线接口接收CPU发送的读指令,具体本申请实施例不对控制器接收写指令的具体方式进行限定。
S120、控制器响应于读指令,基于第二存储器存储的目标映射表,确定第一数据的虚拟地址对应的第一数据的物理地址。
上述该目标映射表用于表征多个虚拟地址与第一存储器的多个物理地址的对应关系;其中,多个虚拟地址中任意两个虚拟地址不同,多个物理地址中任意两个物理地址不同,多个虚拟地址与多个物理地址具有一一对应的关系。
示例性,上述目标映射表具体如下表1所示;其中,虚拟地址1对应的物理地址为物理地址1;虚拟地址2对应的物理地址为物理地址2;虚拟地址3对应的物理地址为物理地址3。
表1
编号 | 虚拟地址 | 物理地址 |
1 | 虚拟地址1 | 物理地址1 |
2 | 虚拟地址2 | 物理地址2 |
3 | 虚拟地址3 | 物理地址3 |
上述目标映射表是存储在第二存储器中的,其中,第二存储器包括PMEM。
需要说明的是,上述第一数据的物理地址用于指示第一数据存储在第一存储器中的位置。
上述S120的具体实现包括:根据第一数据的虚拟地址在目标映射表中的多个虚拟地址中确定目标虚拟地址,该目标虚拟地址与第一数据的虚拟地址完全相同;然后,将该目标虚拟地址对应的目标物理地址确定为第一数据的物理地址。
应理解的是,存储设备每一次使用DRAM中的更新后的映射表更新第一存储器中的目标映射表时,需要在第一存储器中检索到目标映射表,然后使用更新后的目标映射表更新第一存储器上的目标映射表。或存储设备每一次将第一存储器中的目标映射表写入到DRAM中时;需要从第一存储器中读取目标映射表,然后再将读取的目标映射表写入DRAM中。由于第一存储器上存储的数据量较多,且存储设备中的控制器需要频繁的从第一存储器和DRAM之间来回读写目标映射,即控制器需要频繁的对第一存储器中的目标映射表进行读写操作,从而增大了第一存储器中出现坏块的概率;而将目标映射表存储在PMEM中,后续直接在PMEM中操作目标映射表,不但减少了第一存储器上的数据存储量,也减少了对第一存储器上的数据执行的操作次数,从而减少了坏块出现的情况,进而延长了存储设备的寿命。
S130、控制器根据第一数据的物理地址从第一存储器中读取第一数据。
应理解的是,由于第一数据是存储在第一存储器中的具体某个物理地址所指示的存储空间中,所以控制器需要通过目标映射表确定出第一数据的虚拟地址在第一存储器上对应的第一数据的物理地址,然后,将读取该第一数据的物理地址所指示的存储空间中第一数据。
需要说明的是,上述目标映射表是始终存储在第二存储器中的,所以需要根据第一数据的虚拟地址从第二存储器中的目标映射表中确定第一数据的物理地址;由于第二存储器是非易失性存储器,所以即使在存储设备上下电或者存储设备所在的服务器意外断电,该目标映射表中的数据也不会丢失,所以当存储设备上下电或者存储设备所在的服务器意外断电时,无需将该目标映射表写入到第一存储器中,从而提高了存储设备的上下电效率。
一种数据写如的方法,如图5所示,该方法包括:S140-S170。
S140、CPU发送写指令。
上述写指令中包括第一数据的虚拟地址,该写指令用于将第一数据的虚拟地址对应第一数据存储在存储设备中。
S150、控制器接收写指令。
需要说明的是,上述S150的实现方式与S110类似,具体对于S150的具体描述可以参考上述对于S110的相关描述,此处不再赘述。
S160、控制器响应于写指令,将第一数据存储在第一存储器中。
上述S160的具体实现为:根据第一数据的虚拟地址确定第一数据,然后,根据第一数据的哈希值确定第一存储器中的第一数据的物理地址,然后,将第一数据存储在第一数据的物理地址所指示的存储空间中。还可以根据其他算法确定第一数据的物理地址,并将第一数据存储在第一数据的物理地址所指示的存储空间中,具体本申请实施例不对存储第一数据的具体实现方式进行限定。
S170、控制器将第一数据的虚拟地址和第一数据的物理地址的对应关系存储在目标映射表中。
需要说明的是,上述S170中的目标映射表与S120中的目标映射表类似,具体对于S170中的目标映射表的具体描述可以参考上述对于S120中的目标映射表的相关描述,此处不再赘述。
相比将目标映射表存储在第一存储器中的方案,将目标映射表存储在PMEM中,由于PMEM与第一存储器中存储的数据量相比较小,所以后续对该目标映射表进行增删改查时效率更高,同时由于PMEM支持原地修改,所以再后续更新该目标映射表是,速度更快且占用存储资源更少。
此外,在该目标映射表中加入新的对应关系时,直接在第二存储器中对该映射表进行写操作;由于第二存储器是非易失性存储器,所以即使在存储设备上下电或者存储设备所在的服务器出现意外断电的情况,该目标映射表中的数据也不会丢失,所以在存储设备上下电或者存储设备所在的服务器意外断电时,无需将该目标映射表写入到第一存储器中,从而提高了存储设备的上下电效率。
一种数据修改的方法,如图6所示,该方法包括:S180-S210。
S180、CPU发送修改指令。
上述修改指令中包括第一数据的虚拟地址和第二数据,其中,该第二数据为修改后的第一数据。也就是说,上述修改指令用于指示存储设备中的控制器将第一数据修改为第二数据。
S190、控制器接收修改指令。
需要说明的是,上述S190的实现方式与S110类似,具体对于S190的具体描述可以参考上述对于S110的相关描述,此处不再赘述。
S200、控制器响应于修改指令,在第一存储器中存储第二数据。
上述第一存储器中存储第二数据的物理地址与存储第一数据的物理地址不同,也就是说,上述第二数据的物理地址与第一数据的物理地址不同。例如:第一数据存储在第一存储器中的存储块A中,此时,第一存储器将第二数据存储在存储块B中,其中,存储块A与存储块B是不同的存储块。
需要说明的是,上述S200的具体实现可以是根据第二数据的哈希值确定第一存储器中的第二数据的物理地址,然后,将第二数据存储在第二数据的物理地址上。该可以根据其他算法确定第二数据的物理地址,并将第二数据存储在第二数据的物理地址上,具体本申请实施例不对存储第二数据的具体实现方式进行限定。
S210、控制器将目标映射表中第一数据的虚拟地址对应第一数据的物理地址更新为第二数据的物理地址。
需要说明的是,上述第一数据的物理地址更新为第二数据的物理地址后,上述第一数据的虚拟地址对应的物理地址将为第二数据的物理地址,也就是说,此时,第一数据的虚拟地址指向第二数据的物理地址。
示例性的,如上表1,假设第一数据的虚拟地址为虚拟地址1,第一数据的物理地址为物理地址1;第二数据的物理地址为物理地址n,此时,如下表2所示,将第一虚拟地址与第一数据的物理地址的对应关系中的第一数据的物理地址更新为物理地址n。
表2
编号 | 虚拟地址 | 物理地址 |
1 | 虚拟地址1 | 物理地址n |
2 | 虚拟地址2 | 物理地址2 |
3 | 虚拟地址3 | 物理地址3 |
需要说明的是,上述目标映射表是存储在第二存储器中的,所以在该目标映射表中执行修改动作时,直接在第二存储器中对该映射表进行修改操作;由于第二存储器是非易失性存储器,所以,即使在存储设备上下电或者存储设备所在的服务器意外断电,该目标映射表中的数据也不会丢失,所以,在存储设备上下电或者存储设备所在的服务器意外断电时,无需将该目标映射表写入到第一存储器中,从而提高了存储设备的上下电效率。
一种数据删除的方法,如图7所示,该方法包括:S220-S250。
S220、CPU发送删除指令。
上述删除指令中包括第一数据的虚拟地址,该删除指令用于指示删除上述第一数据。
S230、控制器接收删除指令。
需要说明的是,上述S190的实现方式与S110类似,具体对于S190的具体描述可以参考上述对于S110的相关描述,此处不再赘述。
S240、控制器响应于删除指令,从目标映射表征中删除第一数据的虚拟地址和第一数据的物理地址的对应关系。
上述S240的具体实现为:根据第一数据的虚拟地址从目标映射表中确定目标虚拟地址,该目标虚拟地址与第一数据的虚拟地址完全相同,然后,从目标映射表中删除目标虚拟地址与目标虚拟地址具有对应关系的目标物理地址。
示例性的,如上表2所示,假设第一数据的虚拟地址为虚拟地址1,第一数据的物理地址为物理地址n;此时,从映射表中删除虚拟地址1和物理地址n的对应关系,具体如下表3所示。
表3
编号 | 虚拟地址 | 物理地址 |
1 | 虚拟地址2 | 物理地址2 |
2 | 虚拟地址3 | 物理地址3 |
在一种实现方式中,上述S240执行完毕后,第一数据的物理地址所指示的存储空间中存储的第一数据并未被删除,但由于目标映射表中已删除第一数据的虚拟地址和第一数据的物理地址的对应关系,即:不存在有虚拟地址指向该第一数据的物理地址,所以后续存储设备在进行垃圾回收时,会将该第一数据的物理地址所指示的存储空间中存储的第一数据删除。
在另一种实现方式中,控制器执行下述S250。
S250、控制器从第一数据的物理地址所指示的存储空间中删除第一数据。
上述目标映射表是始终存储在第二存储器中的,所以需要使用该目标映射表时,直接在第二存储器中对该映射表进行增/删/改/查操作;由于第二存储器是非易失性存储器,所以,即使在存储设备上下电或者存储设备所在的服务器意外断电,该目标映射表中的数据也不会丢失,所以,在存储设备上下电或者存储设备所在的服务器意外断电时,无需将该目标映射表写入到第一存储器中,从而提高了存储设备的上下电效率。
需要说明的是,本申请实施例不对上述数据读取方法、数据写入方法、数据修改方法以及数据删除方法的执行顺序进行限定。
此外,由于在使用目标映射表时是直接在第二存储器中操作该目标映射表,而且第二存储器是非易失性存储器,所以该存储设备无需再设置掉电保护电路,因此,节约了存储设备的成本。
相应地,本申请实施例提供一种控制器,该控制器用于执行上述数据读写方法中的各个步骤,本申请实施例可以根据上述方法示例对该控制器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图8示出上述实施例中所涉及的控制器的一种可能的结构示意图。如图8所示,该控制器包括:收发模块101、确定模块102和读写模块103。
收发模块101用于接收读指令;例如执行上述方法实施例中的步骤S150。
确定模块102用于响应于该读指令,基于第二存储器存储的目标映射表,确定该第一数据的虚拟地址对应的第一数据的物理地址;例如执行上述方法实施例中的步骤S160。
读写模块103用于根据上述第一数据的物理地址从第一存储器中读取该第一数据;例如执行上述方法实施例中的步骤S170。
可选的,收发模块101用于接收写指令;例如执行上述方法实施例中的步骤S110。
读写模块103用于响应于写指令,将第一数据存储在第一存储器中;并将第一数据的虚拟地址和第一数据的物理地址的对应关系存储在目标映射表中;例如执行上述方法实施例中的步骤S120-S130。
可选的,收发模块101用于接收修改指令;例如执行上述方法实施例中的步骤S190。
读写模块103用于响应于修改指令,在第一存储器中存储第二数据;并将目标映射表中第一数据的虚拟地址对应第一数据的物理地址更新为第二数据的物理地址;例如执行上述方法实施例中的步骤S200-S210。
可选的,上述控制器还包括删除模块104。
收发模块103用于接收删除指令;例如执行上述方法实施例中的步骤S230。
删除模块104用于响应于删除指令,从目标映射表征中删除第一数据的虚拟地址和第一数据的物理地址的对应关系;并从第一数据的物理地址所指示的存储空间中删除第一数据;例如执行上述方法实施例中的步骤S240-S250。
上述控制器的各个模块还可以用于执行上述方法实施例中的其他动作,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
可选的,本申请实施例提供一种控制器,该控制器包括:接口和逻辑电路;其中,所述接口用于所述控制器与外部设备进行信息交互,该逻辑电路用于执行上述数据读写方法。
需要说明的是,上述外部设备可以为控制器所在的服务器中的其他装置或模块,如该服务器中的输入输出接口;还可以为控制器所在的服务器以外的其他设备如终端设备。
可选的,本申请实施例提供一种存储设备,该存储设备包括:第一存储器、第二存储器和控制器;其中,第一存储器为闪存;第二存储器是非易失性存储器,且支持在待修改数据所在的存储空间上对该待修改数据进行修改;控制器用于执行上述数据读写方法。
可选的,本申请实施例提供一种服务器,该服务器包括:处理器以及与该处理器连接的存储设备;该处理器用于向存储设备发送读写指令;该存储设备用于接收读写指令,并执行上述数据读写方法。
可选的,本申请实施例提供一种计算机存储介质,包括计算机指令,当该计算机指令在计算设备上运行时,使得计算设备执行上述数据读写方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据读写方法,其特征在于,应用于存储设备中的控制器,所述存储设备还包括与所述控制器连接的第一存储器和第二存储器,所述第一存储器和所述第二存储器均是非易失性存储器;所述方法包括:
接收读指令,所述读指令包括第一数据的虚拟地址;
响应于所述读指令,基于所述第二存储器存储的目标映射表,确定所述第一数据的虚拟地址对应的第一数据的物理地址;所述目标映射表用于表征多个虚拟地址与所述第一存储器的多个物理地址的对应关系;
根据所述第一数据的物理地址从所述第一存储器中读取所述第一数据。
2.根据权利要求1所述的方法,其特征在于,接收读指令之前,所述方法还包括:
接收写指令,所述写指令包括所述第一数据的虚拟地址;
响应于所述写指令,将所述第一数据存储在所述第一存储器中;
将所述第一数据的虚拟地址和所述第一数据的物理地址的对应关系存储在所述目标映射表中。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收修改指令,所述修改指令中包括所述第一数据的虚拟地址和第二数据,其中,所述第二数据为修改后的第一数据;
响应于所述修改指令,在所述第一存储器中存储所述第二数据;所述第二数据的物理地址与所述第一数据的物理地址不同;
将所述目标映射表中所述第一数据的虚拟地址对应所述第一数据的物理地址更新为所述第二数据的物理地址。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
接收删除指令,所述删除指令包括所述第一数据的虚拟地址;
响应于所述删除指令,从所述目标映射表中删除所述第一数据的虚拟地址和所述第一数据的物理地址的对应关系;
从所述第一数据的物理地址所指示的存储空间中删除所述第一数据。
5.根据权利要求1-4任一项所述的方法,其特征在于;
所述存储设备是固态硬盘。
6.根据权利要求1-5任一项所述的方法,其特征在于;
所述第二存储器支持在待修改数据所在的存储空间上对所述待修改数据进行修改。
7.根据权利要求1-6任一项所述的方法,其特征在于;
所述第一存储器包括闪存或持久内存PMEM;所述第二存储器包括闪存或PMEM。
8.一种存储设备,其特征在于,所述存储设备包括:
第一存储器,所述第一存储器为闪存;
第二存储器,所述第二存储器是非易失性存储器,且支持在待修改数据所在的存储空间上对所述待修改数据进行修改;
控制器;所述控制器用于执行如权利要求1至7中任一项所述的方法。
9.一种服务器,其特征在于,包括:处理器以及与所述处理器连接的存储设备;
所述处理器,用于向所述存储设备发送读写指令;
所述存储设备,用于接收所述读写指令,并执行如权利要求1至7中任一项所述的方法。
10.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在计算设备上运行时,使得所述计算设备执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211110425.9A CN115576863A (zh) | 2022-09-13 | 2022-09-13 | 一种数据读写方法、存储设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211110425.9A CN115576863A (zh) | 2022-09-13 | 2022-09-13 | 一种数据读写方法、存储设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115576863A true CN115576863A (zh) | 2023-01-06 |
Family
ID=84580739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211110425.9A Pending CN115576863A (zh) | 2022-09-13 | 2022-09-13 | 一种数据读写方法、存储设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115576863A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116705101A (zh) * | 2023-05-23 | 2023-09-05 | 广东匠芯创科技有限公司 | 多psram颗粒芯片的数据处理方法、电子设备及存储介质 |
-
2022
- 2022-09-13 CN CN202211110425.9A patent/CN115576863A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116705101A (zh) * | 2023-05-23 | 2023-09-05 | 广东匠芯创科技有限公司 | 多psram颗粒芯片的数据处理方法、电子设备及存储介质 |
CN116705101B (zh) * | 2023-05-23 | 2023-12-19 | 广东匠芯创科技有限公司 | 多psram颗粒芯片的数据处理方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669444B2 (en) | Computing system and method for controlling storage device | |
US11467955B2 (en) | Memory system and method for controlling nonvolatile memory | |
US9164887B2 (en) | Power-failure recovery device and method for flash memory | |
US20100287217A1 (en) | Host control of background garbage collection in a data storage device | |
US9785384B2 (en) | Semiconductor storage device and method for controlling nonvolatile semiconductor memory | |
US8909895B2 (en) | Memory apparatus | |
US11675709B2 (en) | Reading sequential data from memory using a pivot table | |
US10789170B2 (en) | Storage management method, electronic device and computer readable medium | |
TW201941060A (zh) | 儲存裝置及電腦系統 | |
CN110187832B (zh) | 一种数据操作的方法、设备和系统 | |
KR20130112210A (ko) | 메모리 시스템 및 그것의 페이지 교체 방법 | |
CN112905111A (zh) | 数据缓存的方法和数据缓存的装置 | |
CN115576863A (zh) | 一种数据读写方法、存储设备及存储介质 | |
US11763899B2 (en) | Balanced three-level read disturb management in a memory device | |
CN111651124B (zh) | Ssd映射表多核分区并行重建方法、装置、设备及介质 | |
CN113407111B (zh) | 闪存控制器、闪存控制器的方法及记忆装置 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
CN112988074B (zh) | 一种存储系统管理软件适配方法及装置 | |
CN109165172B (zh) | 缓存数据处理方法及相关设备 | |
US20230093218A1 (en) | Data storage method and system, and processor | |
CN113626347B (zh) | 存储装置及其工作方法 | |
WO2022021337A1 (zh) | 闪存控制方法和装置 | |
CN114398297A (zh) | 一种基于混合地址映射的存储方法及存储装置 | |
CN114647595A (zh) | 固态硬盘及数据处理方法 | |
CN117971122A (zh) | 基于trim机制快速擦除存储数据的方法、装置和电子设备 |
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 |