CN111078148A - 基于ssd的缓存方法、装置、ssd和计算机可读存储介质 - Google Patents

基于ssd的缓存方法、装置、ssd和计算机可读存储介质 Download PDF

Info

Publication number
CN111078148A
CN111078148A CN201911298314.3A CN201911298314A CN111078148A CN 111078148 A CN111078148 A CN 111078148A CN 201911298314 A CN201911298314 A CN 201911298314A CN 111078148 A CN111078148 A CN 111078148A
Authority
CN
China
Prior art keywords
read
cache
write instruction
ssd
common
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.)
Granted
Application number
CN201911298314.3A
Other languages
English (en)
Other versions
CN111078148B (zh
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.)
Jiangsu Xinsheng Intelligent Technology Co ltd
Original Assignee
Jiangsu Xinsheng Intelligent Technology 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 Jiangsu Xinsheng Intelligent Technology Co ltd filed Critical Jiangsu Xinsheng Intelligent Technology Co ltd
Priority to CN201911298314.3A priority Critical patent/CN111078148B/zh
Publication of CN111078148A publication Critical patent/CN111078148A/zh
Application granted granted Critical
Publication of CN111078148B publication Critical patent/CN111078148B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例提供的基于SSD的缓存方法、装置、SSD和计算机可读存储介质,涉及固态硬盘领域,所述方法应用于SSD,SSD具有至少一个内存和至少一个存储单元;SSD的内存具有普通存储空间和缓存存储空间,普通存储空间用于缓存待写入存储单元的数据;和/或,由存储单元预读取的数据;其包括:接收IO读写指令;若IO读写指令为普通IO读写指令,则针对普通存储空间进行数据写入或读取;若IO读写指令为缓存IO读写指令,则针对缓存存储空间进行数据写入或读取。通过将SSD的一部分内存作为高速缓存空间,缓存IO数据只需从内存读写,不通过flash,性能比普通IO更高,保证数据快速读写的同时,也避免了SSD上的flash颗粒被频繁读写,延长了SSD使用寿命。

Description

基于SSD的缓存方法、装置、SSD和计算机可读存储介质
技术领域
本发明涉及固态硬盘领域,具体而言,涉及一种基于SSD的缓存方法、装置、SSD和计算机可读存储介质。
背景技术
现有技术中,基于复用SATA IO中逻辑地址(Logic Block Address,LBA)高bit位实现SSD多路高速缓存的方法大体有以下两种:
一种是使用SATA标准协议命令,该协议定义了write/read buffer命令以及write/read buffer dma命令以支持存储设备充当临时缓存。该命令集存在以下缺点:使用的protocol为可编程输入输出模式(Programming Input/Output Model,PIO)或直接内存存取(Direct Memory Access,DMA),IO性能不高。
另一种是将SATA SSD整盘作为缓存设备,该做法存在以下缺点:当作为缓存设备时,SSD上的flash颗粒会被频繁读写,flash的寿命会快速消耗,导致SSD寿命较短。
发明内容
有鉴于此,本发明的目的在于提供一种基于SSD的缓存方法、装置、SSD和计算机可读存储介质。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供一种基于SSD的缓存方法,应用于SSD,所述SSD具有至少一个内存和至少一个存储单元;所述SSD的内存具有普通存储空间和缓存存储空间,所述普通存储空间用于缓存待写入所述存储单元的数据;和/或,由所述存储单元预读取的数据;所述方法包括:
接收IO读写指令;所述IO读写指令具有缓存标志,所述缓存标志用于表征所述IO读写指令为普通IO读写指令或缓存IO读写指令;
若所述IO读写指令为所述普通IO读写指令,则针对所述普通存储空间进行数据写入或读取;
若所述IO读写指令为所述缓存IO读写指令,则针对所述缓存存储空间进行数据写入或读取。
在可选的实施方式中,所述缓存存储空间具有至少两个子缓存区间;每个所述子缓存区间具有对应的缓存ID;所述IO读写指令还具有目标子缓存区间对应的缓存ID;则所述若所述IO读写指令为所述缓存IO读写指令,则针对所述缓存存储空间进行数据写入或读取的步骤,包括:
若是缓存IO读指令,则根据所述缓存ID获取对应的目标子缓存区间,从所述目标子缓存区间中读取数返回给主机;
若是缓存IO写指令,则根据所述缓存ID获取对应的目标子缓存区间,将主机下发的数据写入到所述目标子缓存区间。
在可选的实施方式中,接收IO读写指令的步骤之后,包括:
判断所述IO读写指令为所述普通IO读写指令还是所述缓存IO读写指令;
若所述IO读写指令的缓存标志为第一值,则确定所述IO读写指令为所述普通IO读写指令;
若所述IO读写指令的缓存标志为第二值,则确定所述IO读写指令为所述缓存IO读写指令。
在可选的实施方式中,针对所述缓存存储空间进行数据写入或读取的步骤,包括:
若是普通IO读指令,则从flash上读取数返回给主机;
若是普通IO写指令,则将主机写入的数据存储到flash。
第二方面,本发明实施例提供一种基于SSD的缓存装置,应用于SSD,所述SSD具有至少一个内存和至少一个存储单元;所述SSD的内存具有普通存储空间和缓存存储空间,所述普通存储空间用于缓存待写入所述存储单元的数据;和/或,由所述存储单元预读取的数据;所述装置包括:
接收模块,用于接收IO读写指令;所述IO读写指令具有缓存标志,所述缓存标志用于表征所述IO读写指令为普通IO读写指令或缓存IO读写指令;
处理模块,用于所述IO读写指令为所述普通IO读写指令时,针对所述普通存储空间进行数据写入或读取;
以及还用于所述IO读写指令为所述缓存IO读写指时,针对所述缓存存储空间进行数据写入或读取。
在可选的实施方式中,所述缓存存储空间具有至少两个子缓存区间;每个所述子缓存区间具有对应的缓存ID;所述IO读写指令还具有目标子缓存区间对应的缓存ID;
所述处理模块,还用于接收到缓存IO读指令时,根据所述缓存ID获取对应的目标子缓存区间,从所述目标子缓存区间中读取数返回给主机;
以及还用于接收到缓存IO写指令时,根据所述缓存ID获取对应的目标子缓存区间,将主机下发的数据写入到所述目标子缓存区间。
在可选的实施方式中,判断模块,用于判断所述IO读写指令为所述普通IO读写指令还是所述缓存IO读写指令;
若所述IO读写指令的缓存标志为第一值,则确定所述IO读写指令为所述普通IO读写指令;
若所述IO读写指令的缓存标志为第二值,则确定所述IO读写指令为所述缓存IO读写指令。
在可选的实施方式中,所述处理模块,还用于接收到普通IO读指令时,从flash上读取数返回给主机;
以及还用于接收到普通IO写指令时,将主机写入的数据存储到flash。
第三方面,本发明实施例提供一种SSD,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式任一所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的基于SSD的缓存方法。
本发明实施例提供的基于SSD的缓存方法、装置、SSD和计算机可读存储介质,所述方法应用于SSD,SSD具有至少一个内存和至少一个存储单元;SSD的内存具有普通存储空间和缓存存储空间,普通存储空间用于缓存待写入存储单元的数据;和/或,由存储单元预读取的数据;其包括:接收IO读写指令;IO读写指令具有缓存标志,缓存标志用于表征IO读写指令为普通IO读写指令或缓存IO读写指令;若IO读写指令为普通IO读写指令,则针对普通存储空间进行数据写入或读取;若IO读写指令为缓存IO读写指令,则针对缓存存储空间进行数据写入或读取。通过将SSD的一部分内存作为高速缓存空间,缓存IO数据只需从内存读写,不通过flash,性能比普通IO更高,保证数据快速读写的同时,也避免了SSD上的flash颗粒被频繁读写,延长了flash的使用寿命,进而延长了SSD使用寿命。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的IO命令集中高16位的逻辑地址示意图。
图2示出了本发明实施例提供的一种基于SSD的缓存方法的流程示意图。
图3示出了本发明实施例提供的另一种基于SSD的缓存方法的流程示意图。
图4示出了本发明实施例提供的一种基于SSD的缓存装置的功能模块图。
图5示出了本发明实施例提供的一种SSD的方框示意图。
图标:10-缓存标志位;20-缓存存储空间;30-普通存储空间;100-基于SSD的缓存装置;110-接收模块;120-处理模块;130-判断模块;200-SSD;210-处理器;220-存储器。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
现有技术中,基于复用SATA IO中逻辑地址(Logic Block Address,LBA)高bit位实现SSD多路高速缓存的方法大体有以下两种:
一种是使用SATA(Serial ATA)标准协议命令,该协议定义了write/read buffer命令以及write/read buffer dma命令以支持存储设备充当临时缓存。该命令集存在以下缺点:使用的protocol为可编程输入输出模式(Programming Input/Output Model,PIO)或直接内存存取(Direct Memory Access,DMA),IO性能不高,只能使用一路缓存,不能支持多路缓存。
另一种是将SATA SSD整盘作为缓存设备,该做法存在以下缺点:当作为缓存设备时,SSD上的flash颗粒会被频繁读写,flash的寿命会快速消耗,导致SSD寿命较短。
因此,本发明提出一种将SATA SSD用作高速缓存的存储方式,SATA标准协议支持28bit以及48bit两种LBA长度的命令集,这两种命令集可以访问的SSD容量大小是不同的。本发明复用SATA协议IO命令集中的48位LBA的高16位作为I/O高速缓存标志位以及多路缓存;在不影响SSD正常业务情况下,区分普通IO和缓存IO。
在SSD内部从内存中划分部分空间用于高速缓存空间,根据SSD内存大小灵活规划可支持的缓存路数和单路缓存大小,如:根据需要支持的缓存路数n划分为n个子缓存区间。
需要说明的是,内存中的数据断电后不保存。
请参照图1,为本发明实施例提供的IO命令集中高16位的逻辑地址示意图。
最高位为缓存标志(cache flag)位10,次高15bit为缓存存储空间20,低32bit为普通存储空间30。
缓存标志位10用于标志该IO是缓存IO还是普通IO。
缓存存储空间20用于全部作为高速缓存空间,或缓存存储空间20的一部分空间作为高速缓存空间,高速缓存空间具有至少两个子缓存区间,每个子缓存区间具有对应的缓存ID(cache ID),每个子缓存区间为一路缓存。
低32bit作为普通LBA(Common LBA)。
请参照图2,为本发明实施例提供的一种基于SSD的缓存方法的流程示意图。
需要说明的是,本实施例所提供的基于SSD的缓存方法,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。
步骤101,接收IO读写指令。
步骤102,若IO读写指令为普通IO读写指令,则针对普通存储空间进行数据写入或读取。
需要说明的是,普通存储空间会写入存储单元,即flash。
步骤103,若IO读写指令为缓存IO读写指令,则针对缓存存储空间进行数据写入或读取。
在本实施例中,SSD先接收IO读写指令,由于IO读写指令具有缓存标志,根据该缓存标志确定该IO读写指令为普通IO读写指令还是缓存IO读写指令;若IO读写指令为普通IO读写指令,则针对普通存储空间进行数据写入或读取;若IO读写指令为缓存IO读写指令,则针对缓存存储空间进行数据写入或读取。通过将SSD的一部分内存作为高速缓存空间,缓存IO数据只需从内存读写,不通过flash,性能比普通IO更高,保证数据快速读写的同时,也避免了SSD上的flash颗粒被频繁读写,延长了flash的使用寿命,进而延长了SSD使用寿命。
请参照图3,为本发明实施例提供的另一种基于SSD的缓存方法的流程示意图。
步骤201,接收IO读写指令。
SSD接收不同值的LBA缓存标志(cache flag)的IO读写指令。
步骤202,判断IO读写指令为普通IO读写指令还是缓存IO读写指令。
根据缓存标志的值来判断IO读写指令为普通IO读写指令还是缓存IO读写指令。
步骤203,若IO读写指令的缓存标志为第一值,则确定IO读写指令为普通IO读写指令。
当SSD接收到一个LBA cache flag为0的IO读写指令时,该IO读写指令当做普通IO读写指令进行处理,并进一步执行步骤204。
步骤204,针对普通存储空间进行数据写入或读取。
需要说明的是,步骤204包括两个子步骤,本步骤中未提及之处将在其子步骤中进行详细的阐述。
子步骤204-1,若是普通IO读指令,则从flash上读取数返回给主机。
子步骤204-2,若是普通IO写指令,则将主机写入的数据存储到flash。
步骤205,若IO读写指令的缓存标志为第二值,则确定IO读写指令为缓存IO读写指令。
当SSD接收到一个LBA cache flag为1的IO读写指令时,该IO读写指令当做缓存IO读写指令进行处理。
步骤206,若是缓存IO读指令,则根据缓存ID获取对应的目标子缓存区间,从目标子缓存区间中读取数返回给主机。
缓存存储空间的每位都对应一个缓存ID,如当缓存ID为m时,则目标子缓存区间为缓存存储空间第m位。
需要说明的是,步骤206包括两个子步骤,本步骤中未提及之处将在其子步骤中进行详细的阐述。
子步骤206-1,若是缓存IO读指令,则根据缓存ID获取对应的目标子缓存区间,从目标子缓存区间中读取数返回给主机。
若是缓存IO读指令,当缓存ID为m时,则从缓存存储空间中的第m个子缓存区间中取出数据返回到主机。
子步骤206-2,若是缓存IO写指令,则根据缓存ID获取对应的目标子缓存区间,将主机下发的数据写入到目标子缓存区间。
若是缓存IO写指令,当缓存ID为m时,将主机下发的数据写入缓存存储空间中的第m个子缓存区间中。
综上所述,本发明实施例提供的基于SSD的缓存方法、装置、SSD和计算机可读存储介质,所述方法应用于SSD,SSD具有至少一个内存和至少一个存储单元;SSD的内存具有普通存储空间和缓存存储空间,普通存储空间用于缓存待写入存储单元的数据;和/或,由存储单元预读取的数据;其包括:接收IO读写指令;IO读写指令具有缓存标志,缓存标志用于表征IO读写指令为普通IO读写指令或缓存IO读写指令;若IO读写指令为普通IO读写指令,则针对普通存储空间进行数据写入或读取;若IO读写指令为缓存IO读写指令,则针对缓存存储空间进行数据写入或读取。通过将SSD的一部分内存作为高速缓存空间,缓存IO数据只需从内存读写,不通过flash,性能比普通IO更高,保证数据快速读写的同时,也避免了SSD上的flash颗粒被频繁读写,延长了flash的使用寿命,进而延长了SSD使用寿命。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种基于SSD的缓存装置的实现方式。进一步地,请参阅图4,图4为本发明实施例提供的一种基于SSD的缓存装置的功能模块图。需要说明的是,本实施例所提供的基于SSD的缓存装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该基于SSD的缓存装置100包括:接收模块110、处理模块120及判断模块130。
可以理解的,在一种实施例中,通过接收模块110执行步骤201。
可以理解的,在一种实施例中,通过处理模块120执行步骤203、步骤204、步骤205及步骤206。
可以理解的,在一种实施例中,通过判断模块130执行步骤202。
请参阅图5,图5为本发明实施例提供的一种SSD的方框示意图。
SSD200,包括处理器210和存储器220,所述存储器220存储有能够被所述处理器210执行的机器可执行指令,所述处理器210可执行所述机器可执行指令以实现上述的基于SSD的缓存方法。
其中,存储器用于存储程序或者数据。所述存储器可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于SSD的缓存方法,其特征在于,应用于SSD,所述SSD具有至少一个内存和至少一个存储单元;所述SSD的内存具有普通存储空间和缓存存储空间,所述普通存储空间用于缓存待写入所述存储单元的数据;和/或,由所述存储单元预读取的数据;所述方法包括:
接收IO读写指令;所述IO读写指令具有缓存标志,所述缓存标志用于表征所述IO读写指令为普通IO读写指令或缓存IO读写指令;
若所述IO读写指令为所述普通IO读写指令,则针对所述普通存储空间进行数据写入或读取;
若所述IO读写指令为所述缓存IO读写指令,则针对所述缓存存储空间进行数据写入或读取。
2.根据权利要求1所述的方法,其特征在于,所述缓存存储空间具有至少两个子缓存区间;每个所述子缓存区间具有对应的缓存ID;所述IO读写指令还具有目标子缓存区间对应的缓存ID;则所述若所述IO读写指令为所述缓存IO读写指令,则针对所述缓存存储空间进行数据写入或读取的步骤,包括:
若是缓存IO读指令,则根据所述缓存ID获取对应的目标子缓存区间,从所述目标子缓存区间中读取数返回给主机;
若是缓存IO写指令,则根据所述缓存ID获取对应的目标子缓存区间,将主机下发的数据写入到所述目标子缓存区间。
3.根据权利要求1所述的方法,其特征在于,接收IO读写指令的步骤之后,包括:
判断所述IO读写指令为所述普通IO读写指令还是所述缓存IO读写指令;
若所述IO读写指令的缓存标志为第一值,则确定所述IO读写指令为所述普通IO读写指令;
若所述IO读写指令的缓存标志为第二值,则确定所述IO读写指令为所述缓存IO读写指令。
4.根据权利要求1所述的方法,其特征在于,针对所述缓存存储空间进行数据写入或读取的步骤,包括:
若是普通IO读指令,则从flash上读取数返回给主机;
若是普通IO写指令,则将主机写入的数据存储到flash。
5.一种基于SSD的缓存装置,其特征在于,应用于SSD,所述SSD具有至少一个内存和至少一个存储单元;所述SSD的内存具有普通存储空间和缓存存储空间,所述普通存储空间用于缓存待写入所述存储单元的数据;和/或,由所述存储单元预读取的数据;所述装置包括:
接收模块,用于接收IO读写指令;所述IO读写指令具有缓存标志,所述缓存标志用于表征所述IO读写指令为普通IO读写指令或缓存IO读写指令;
处理模块,用于所述IO读写指令为所述普通IO读写指令时,针对所述普通存储空间进行数据写入或读取;
以及还用于所述IO读写指令为所述缓存IO读写指时,针对所述缓存存储空间进行数据写入或读取。
6.根据权利要求5所述的装置,其特征在于,所述缓存存储空间具有至少两个子缓存区间;每个所述子缓存区间具有对应的缓存ID;所述IO读写指令还具有目标子缓存区间对应的缓存ID;
所述处理模块,还用于接收到缓存IO读指令时,根据所述缓存ID获取对应的目标子缓存区间,从所述目标子缓存区间中读取数返回给主机;
以及还用于接收到缓存IO写指令时,根据所述缓存ID获取对应的目标子缓存区间,将主机下发的数据写入到所述目标子缓存区间。
7.根据权利要求5所述的装置,其特征在于,
判断模块,用于判断所述IO读写指令为所述普通IO读写指令还是所述缓存IO读写指令;
若所述IO读写指令的缓存标志为第一值,则确定所述IO读写指令为所述普通IO读写指令;
若所述IO读写指令的缓存标志为第二值,则确定所述IO读写指令为所述缓存IO读写指令。
8.根据权利要求5所述的装置,其特征在于,
所述处理模块,还用于接收到普通IO读指令时,从flash上读取数返回给主机;
以及还用于接收到普通IO写指令时,将主机写入的数据存储到flash。
9.一种SSD,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求1-4任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的基于SSD的缓存方法。
CN201911298314.3A 2019-12-17 2019-12-17 基于ssd的缓存方法、装置、ssd和计算机可读存储介质 Active CN111078148B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911298314.3A CN111078148B (zh) 2019-12-17 2019-12-17 基于ssd的缓存方法、装置、ssd和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911298314.3A CN111078148B (zh) 2019-12-17 2019-12-17 基于ssd的缓存方法、装置、ssd和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111078148A true CN111078148A (zh) 2020-04-28
CN111078148B CN111078148B (zh) 2022-10-14

Family

ID=70314849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911298314.3A Active CN111078148B (zh) 2019-12-17 2019-12-17 基于ssd的缓存方法、装置、ssd和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111078148B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115904257A (zh) * 2023-02-24 2023-04-04 浪潮电子信息产业股份有限公司 一种ssd的管理方法、系统、服务器、装置及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100211731A1 (en) * 2009-02-19 2010-08-19 Adaptec, Inc. Hard Disk Drive with Attached Solid State Drive Cache
CN103970675A (zh) * 2013-01-29 2014-08-06 Lsi公司 用于使引导操作系统加速的快速引导列表
CN105630699A (zh) * 2015-04-15 2016-06-01 上海磁宇信息科技有限公司 一种使用mram的固态硬盘及读写缓存管理方法
CN106020723A (zh) * 2016-05-19 2016-10-12 记忆科技(深圳)有限公司 一种简化NVMe固态硬盘的方法
CN107168657A (zh) * 2017-06-15 2017-09-15 深圳市云舒网络技术有限公司 一种基于分布式块存储的虚拟磁盘分层缓存设计方法
CN109144419A (zh) * 2018-08-20 2019-01-04 浪潮电子信息产业股份有限公司 一种固态硬盘内存读写方法及系统
CN110058819A (zh) * 2019-04-19 2019-07-26 深圳忆联信息系统有限公司 基于可变缓存管理机制的主机命令处理方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100211731A1 (en) * 2009-02-19 2010-08-19 Adaptec, Inc. Hard Disk Drive with Attached Solid State Drive Cache
CN103970675A (zh) * 2013-01-29 2014-08-06 Lsi公司 用于使引导操作系统加速的快速引导列表
CN105630699A (zh) * 2015-04-15 2016-06-01 上海磁宇信息科技有限公司 一种使用mram的固态硬盘及读写缓存管理方法
CN106020723A (zh) * 2016-05-19 2016-10-12 记忆科技(深圳)有限公司 一种简化NVMe固态硬盘的方法
CN107168657A (zh) * 2017-06-15 2017-09-15 深圳市云舒网络技术有限公司 一种基于分布式块存储的虚拟磁盘分层缓存设计方法
CN109144419A (zh) * 2018-08-20 2019-01-04 浪潮电子信息产业股份有限公司 一种固态硬盘内存读写方法及系统
CN110058819A (zh) * 2019-04-19 2019-07-26 深圳忆联信息系统有限公司 基于可变缓存管理机制的主机命令处理方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115904257A (zh) * 2023-02-24 2023-04-04 浪潮电子信息产业股份有限公司 一种ssd的管理方法、系统、服务器、装置及存储介质

Also Published As

Publication number Publication date
CN111078148B (zh) 2022-10-14

Similar Documents

Publication Publication Date Title
CN106354615B (zh) 固态硬盘日志生成方法及其装置
US8595451B2 (en) Managing a storage cache utilizing externally assigned cache priority tags
US8850105B2 (en) Method for controlling memory system, information processing apparatus, and storage medium
US20160306588A1 (en) Solid state disk and data moving method
EP3142014B1 (en) Method, device and user equipment for reading/writing data in nand flash
US11157399B2 (en) Data storage devices and data processing methods with dynamic programming scheme
WO2016048405A1 (en) Unmap storage space
CN103838676B (zh) 数据存储系统、数据存储方法及pcm桥
US20160110107A1 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
CN112328507B (zh) 根据取消映射命令管理快闪转换层表更新的存储器子系统
KR102113212B1 (ko) 플래시 메모리 시스템 및 그 제어 방법
US20220138096A1 (en) Memory system
KR20140147017A (ko) 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하기 위한 시스템 및 방법
US20130179627A1 (en) Method for managing buffer memory, memory controllor, and memory storage device
US9524236B1 (en) Systems and methods for performing memory management based on data access properties
CN112835828A (zh) 用于非连续源及目的地存储器地址的直接存储器存取(dma)命令
US10445199B2 (en) Bad page management in storage devices
CN111078148B (zh) 基于ssd的缓存方法、装置、ssd和计算机可读存储介质
US8930626B1 (en) Cache management system and method
CN112099731B (zh) 数据储存装置与数据处理方法
KR20220049028A (ko) 배터리 부족 상태 동안 메모리 서브 시스템에서의 가비지 수집
KR20170111196A (ko) 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
TW201624490A (zh) 記憶體裝置及非暫態電腦可讀取記錄媒體
KR20190081770A (ko) 문자 종류 개수에 기반한 데이터 구분 방법, 데이터 분류기 및 스토리지 시스템
CN109002265B (zh) 一种数据处理的方法以及相关装置

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
GR01 Patent grant
GR01 Patent grant