CN111562883A - 固态硬盘的缓存管理***、方法、装置 - Google Patents
固态硬盘的缓存管理***、方法、装置 Download PDFInfo
- Publication number
- CN111562883A CN111562883A CN202010339988.XA CN202010339988A CN111562883A CN 111562883 A CN111562883 A CN 111562883A CN 202010339988 A CN202010339988 A CN 202010339988A CN 111562883 A CN111562883 A CN 111562883A
- Authority
- CN
- China
- Prior art keywords
- unit
- cache
- target
- state
- cache unit
- 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
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本请求指令公开了一种固态硬盘的缓存管理***、方法、装置。该***包括:固态硬盘控制器,包括控制器前端、控制器后端以及缓存管理单元;半导体闪存,与控制器后端连接,用于向控制器后端发送数据,和/或接收控制器后端通过缓存单元传输的数据;外部设备,与控制器前端连接,用于向控制器前端发送数据,和/或接收控制器前端通过缓存单元传输的数据。通过本请求指令,解决了相关技术中固态硬盘的缓存管理方法仅适用简单场景、且占用资源多的问题。
Description
技术领域
本请求指令涉及固态硬盘技术领域,具体而言,涉及一种固态硬盘的缓存管理***、方法、装置。
背景技术
固态硬盘(SSD,Solid State Drive)是采用半导体闪存(NAND Flash)作为介质的存储设备,其中的主控器和半导体颗粒是SSD的核心组成部分,在SSD和外设进行数据传输时,需要通过SSD控制器对缓存单元进行管理。
在SSD控制器中,每个缓存单元一般对应片外DRAM或者片上RAM的一段连续空间,例如4Kbytes或8Kbytes等,相关技术中存在通过CPU对缓存单元进行管理的方法,但速度慢,占用CPU资源。随着SSD每秒读写性能的不断提升,对数据缓存单元的数量和效率有更高的要求,也对缓存单元的管理提出了更高的要求。传统采用软件管理数据缓存单元的方法已经不能满足需求,相关技术中出现了通过硬件管理缓存单元的方法,具体地,为每个缓存配置一个标志位,根据请求指令和释放操作对该标志位进行清0或置1操作,通过标识为是否为0或1判断缓存状态,该标志位只有单bit,不能表示缓存的中间状态,只适用于比较简单的场合,不能完全覆盖SSD的应用场景,另外,当缓存单元管理数量巨大时,例如超过4K时,则硬件资源占用率过高而形成瓶颈,难以在芯片设计中实现等缺点。
针对相关技术中固态硬盘的缓存管理方法仅适用简单场景、且占用资源多的问题,目前尚未提出有效的解决方案。
发明内容
本请求指令提供一种固态硬盘的缓存管理***、方法、装置,以解决相关技术中固态硬盘的缓存管理方法仅适用简单场景、且占用资源多的问题。
根据本请求指令的一个方面,提供了一种固态硬盘的缓存管理***。该***包括:固态硬盘控制器,包括控制器前端、控制器后端以及缓存管理单元,其中,控制器前端和控制器后端之间通过缓存单元传输数据,缓存管理单元用于分别接收控制器前端、控制器后端发出的请求指令,并在接收到请求指令后根据向量表和索引表查询空闲缓存单元,将空闲缓存单元调度给请求指令对应的端口,其中,向量表中的每个单元的值对应索引表中的一行缓存单元的占用状态,索引表中以矩阵的形式记录每个缓存单元的占用状态;半导体闪存,与控制器后端连接,用于向控制器后端发送数据,和/或接收控制器后端通过缓存单元传输的数据;外部设备,与控制器前端连接,用于向控制器前端发送数据,和/或接收控制器前端通过缓存单元传输的数据。
可选地,固态硬盘控制器还包括中央处理器,中央处理器通过缓存单元分别与控制器前端、控制器后端传输数据,缓存管理单元还用于接收中央处理器发出的请求指令,并在接收到请求指令后根据索引表和向量表查询空闲缓存单元,将空闲缓存单元调度给中央处理器。
根据本请求指令的一个方面,提供了一种固态硬盘的缓存管理方法,应用上述固态硬盘的缓存管理***。该方法包括:接收目标模块发出的请求指令,其中,请求指令用于请求分配空闲缓存单元,目标模块为固态硬盘的缓存管理***中的以下之一模块:控制器前端、控制器后端以及中央处理器;查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元,其中,向量表中的每个单元的值对应索引表中的一行缓存单元的占用状态,索引表中以矩阵的形式记录了每个缓存单元的占用状态;在向量表中的目标单元对应的目标存储区内存在空闲缓存单元的情况下,在索引表中查询目标存储区内的空闲缓存单元的位置,得到目标空闲缓存单元;将目标空闲缓存单元调度给目标模块。
可选地,在目标模块为多个的情况下,在接收目标模块发出的请求指令之后,该方法还包括:对多个目标模块发出的请求指令按照优先级进行排序,得到目标顺序;将目标空闲缓存单元调度给目标模块包括:将依次查询得到的目标空闲缓存单元按照目标顺序调度给多个目标模块。
可选地,在接收目标模块发出的请求指令之前,该方法还包括:启动固态硬盘的缓存管理***,并获取各个缓存单元的状态;基于各个缓存单元的状态初始化状态表,其中,索引表中以矩阵的形式记录了每个缓存单元的状态,状态至少包括以下之一:空闲态、申请态以及传输态;基于状态表中各个缓存单元的状态,初始化索引表中各个缓存单元的占用状态;基于索引表中各个缓存单元的占用状态,初始化向量表中的各个单元的值。
可选地,查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元包括:从向量表的第一个单元开始,选取预设个数的单元进行查询;在预设个数的单元中存在预设值对应的单元时,返回第一个预设值对应的单元的位置,并将查询指针定位到第一个预设值对应的单元;在预设个数的单元中不存在预设值对应的单元时,返回空值,并将查询指针定位到预设个数的单元中最后一个单元的下一个单元。
可选地,在将目标空闲缓存单元调度给目标模块之后,该方法还包括:基于各个缓存单元的变化状态更新状态表;基于更新后的状态表中各个缓存单元的状态,更新索引表中各个缓存单元的占用状态;基于更新后的索引表中各个缓存单元的占用状态,更新向量表中的各个单元的值。
可选地,基于各个缓存单元的变化状态更新状态表包括:在目标缓存单元被请求指令后,将目标缓存单元的状态从空闲态更新为申请态;在将数据从第一目标模块转移到目标缓存单元的过程中,将目标缓存单元的状态从申请态更新为第一传输态;在将数据从目标缓存单元转移到第二目标模块的过程中,将目标缓存单元的状态从第一传输态更新为第二传输态;在目标缓存单元完成数据传输后,将目标缓存单元的状态从第二传输态更新为空闲态。
可选地,在接收目标模块发出的请求指令之前,该方法还包括:启动固态硬盘的缓存管理***,并初始化类型表,其中,类型表中以矩阵的形式记录了每个缓存单元被请求指令执行的操作类型;在将目标空闲缓存单元调度给目标模块之后,该方法还包括:确定目标模块发出的请求指令对应的操作类型;基于请求指令对应的操作类型更新类型表。
可选地,该方法还包括:当索引表的一行缓存单元中的最后一个空闲缓存单元被调度后,在查询向量表之前,对向量表中目标单元之前的单元进行屏蔽,其中,目标单元对应索引表的一行缓存单元。
根据本请求指令的另一方面,提供了一种固态硬盘的缓存管理装置。该装置包括:接收单元,用于接收目标模块发出的请求指令,其中,请求指令用于请求分配空闲缓存单元,目标模块为固态硬盘的缓存管理***中的以下之一模块:控制器前端、控制器后端以及中央处理器;第一查询单元,用于查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元,其中,向量表中的每个单元的值对应索引表中的一行缓存单元的占用状态,索引表中以矩阵的形式记录了每个缓存单元的占用状态;第二查询单元,用于在向量表中的目标单元对应的目标存储区内存在空闲缓存单元的情况下,在索引表中查询目标存储区内的空闲缓存单元的位置,得到目标空闲缓存单元;调度单元,用于将目标空闲缓存单元调度给目标模块。
为了实现上述目的,根据本请求指令的另一方面,提供了一种存储介质,存储介质包括存储的程序,其中,程序执行上述任意一种固态硬盘的缓存管理方法。
为了实现上述目的,根据本请求指令的另一方面,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一种固态硬盘的缓存管理方法。
通过本请求指令,通过固态硬盘控制器,包括控制器前端、控制器后端以及缓存管理单元,其中,控制器前端和控制器后端之间通过缓存单元传输数据,缓存管理单元用于分别接收控制器前端、控制器后端发出的请求指令,并在接收到请求指令后根据向量表和索引表查询空闲缓存单元,将空闲缓存单元调度给请求指令对应的端口,其中,向量表中的每个单元的值对应索引表中的一行缓存单元的占用状态,索引表中以矩阵的形式记录每个缓存单元的占用状态;半导体闪存,与控制器后端连接,用于向控制器后端发送数据,和/或接收控制器后端通过缓存单元传输的数据;外部设备,与控制器前端连接,用于向控制器前端发送数据,和/或接收控制器前端通过缓存单元传输的数据,解决了相关技术中固态硬盘的缓存管理方法仅适用简单场景、且占用资源多的问题。通过在请求指令后,根据向量表以及索引表查询空闲缓存单元,并返回给请求指令对应的模块,进而达到了缓存管理方法适用多种缓存场景且减小占用资源的效果。
附图说明
构成本请求指令的一部分的附图用来提供对本请求指令的进一步理解,本请求指令的示意性实施例及其说明用于解释本请求指令,并不构成对本请求指令的不当限定。
在附图中:
图1是根据本请求指令实施例提供的固态硬盘的缓存管理***的示意图;
图2是根据本请求指令实施例提供的固态硬盘的缓存管理方法的流程图;
图3是根据本请求指令实施例提供的固态硬盘的缓存管理方法中状态表的示意图;
图4是根据本请求指令实施例提供的固态硬盘的缓存管理方法中索引表的示意图;
图5是根据本请求指令实施例提供的固态硬盘的缓存管理方法中向量表的示意图;
图6是根据本请求指令实施例提供的固态硬盘的缓存管理方法中状态表、索引表、向量表和类型表的更新示意图;以及
图7是根据本请求指令实施例提供的固态硬盘的缓存管理装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本请求指令中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本请求指令。
为了使本技术领域的人员更好地理解本请求指令方案,下面将结合本请求指令实施例中的附图,对本请求指令实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本请求指令一部分的实施例,而不是全部的实施例。基于本请求指令中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本请求指令保护的范围。
需要说明的是,本请求指令的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本请求指令的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本请求指令的实施例,提供了一种固态硬盘的缓存管理方法。
图1是根据本请求指令实施例的固态硬盘的缓存管理***的示意图。如图1所示,该***包括:
固态硬盘控制器,包括控制器前端、控制器后端以及缓存管理单元,其中,控制器前端和控制器后端之间通过缓存单元传输数据,缓存管理单元用于分别接收控制器前端、控制器后端发出的请求指令,并在接收到请求指令后根据向量表和索引表查询空闲缓存单元,将空闲缓存单元调度给请求指令对应的端口,其中,向量表中的每个单元的值对应索引表中的一行缓存单元的占用状态,索引表中以矩阵的形式记录每个缓存单元的占用状态。
半导体闪存,与控制器后端连接,用于向控制器后端发送数据,和/或接收控制器后端通过缓存单元传输的数据。
外部设备,与控制器前端连接,用于向控制器前端发送数据,和/或接收控制器前端通过缓存单元传输的数据。
需要说明的是,控制器后端(BE,Back End)对应于半导体闪存(NAND FLASH)的接口处理器,控制器前端(FE,Front End)对应于外部设备的接口处理器,例如主机的接口处理器,缓存管理单元负责缓存单元的管理,全过程不需要CPU参与管理,完全由硬件进行申请,更新和释放。
具体地,实际工作中存在多种类型的缓存操作,例如,主机进行读操作时,首先由BE端发起缓存单元申请,缓存管理单元中的申请处理模块首先会对向量表进行查询操作,查询表中每bit是否存在空闲缓存单元,如果存在,则转向索引表查找具体的空闲缓存单元,假如向量表中找到的空闲位置为A,而索引表对应A地址的32bit空闲位置为B,则该空闲缓存单元的编号即为{A,B},将空闲缓存单元的编号{A,B}返给对应模块BE。
进一步地,BE接收到空闲缓存单元后,将数据由NANDFLASH搬移至对应的空闲缓存单元后,并对该缓存单元进行更新操作,同时通知FE将该数据传输至主机。当FE传输完该缓存单元的数据后,再次对缓存单元的占用状态进行更新,变为空闲,也即,则该缓存单元被释放。
可选地,在本请求指令实施例提供的固态硬盘的缓存管理***中,固态硬盘控制器还包括中央处理器,中央处理器通过缓存单元分别与控制器前端、控制器后端传输数据,缓存管理单元还用于接收中央处理器发出的请求指令,并在接收到请求指令后根据索引表和向量表查询空闲缓存单元,将空闲缓存单元调度给中央处理器。
需要说明的是,绝大部分情况下,中央处理器不参与缓存单元的管理,但在一些异常情况下,例如,通过缓存单元从NANDFLASH传输过来的数据出错时,需要中央处理器通过缓存控制单元的接口将该缓存单元强制释放,再例如,存在中央处理器需要自用缓存的情况,也可以通过缓存控制单元申请空闲的缓存单元。
通过本申请实施例,采用状态表和类型表等RAM表的方式进行缓存单元的管理,可以适应SSD控制器中大量不同类型的缓存场景,且完全由硬件完成缓存单元的分配和释放,具有配置灵活,扩展性高,资源占用少的问题,解决了传统方法中采用CPU进行管理负荷高的缺点。
图2是根据本请求指令实施例的固态硬盘的缓存管理方法的流程图,应用上述固态硬盘的缓存管理***。如图2所示,该方法包括以下步骤:
步骤S201,接收目标模块发出的请求指令,其中,请求指令用于请求分配空闲缓存单元,目标模块为固态硬盘的缓存管理***中的以下之一模块:控制器前端、控制器后端以及中央处理器。
具体地,外部设备或半导体闪存需要进行读写操作时,控制器后端以及控制器前端会向缓存管理单元申请空闲缓存单元,在中央处理器需要传输数据时,也可以申请空闲缓存单元。
可选地,在本请求指令实施例提供的固态硬盘的缓存管理方法中,在接收目标模块发出的请求指令之前,该方法还包括:启动固态硬盘的缓存管理***,并获取各个缓存单元的状态;基于各个缓存单元的状态初始化状态表,其中,索引表中以矩阵的形式记录了每个缓存单元的状态,状态至少包括以下之一:空闲态、申请态以及传输态;基于状态表中各个缓存单元的状态,初始化索引表中各个缓存单元的占用状态;基于索引表中各个缓存单元的占用状态,初始化向量表中的各个单元的值。
需要说明的是,在进行缓存单元的管理时,至少需要构造三块RAM表,状态表、索引表以及向量表。
具体地,假设需要管理的缓存单元数为N(假定N为32的整数倍,满足N=M*32,M=1,2…),状态表用于指示当前缓存单元具体状态,如图3所示,可以用2bit表示当前缓存单元所运行的状态,此时状态表大小为M*64,每个缓存单元对应状态可以包含以下四种状态:00-空闲态,01-申请态,10-传输1态,11-传输2态,状态的迁移主要由模块的申请以及更新来确定。
索引表由状态表来确定,如图4所示,索引表用于指示当前缓存单元是否空闲,索引表大小为M*32,即表的深度是M,数据位宽是32bit,每一bit对应缓存单元的当前状态,0为占用,1为空闲,当缓存单元状态为00时,会将第一块索引表RAM对应bit置0,其它状态则置1。
此外,为了快速查询到空闲的缓存单元,根据索引表构造向量表,如图5所示,向量表中的一个单元的值对应索引表中一行缓存单元的状态,例如,向量表长度为M,每一个单元对应索引表中一个地址的32bit状态,如果32bit中有一个或以上的缓存单元空闲,则对该单元对应bit置1,表示当前单元中有缓存单元可用。
在上电时,需对RAM表进行初始化操作,可以由中央处理器配置当前实际可用的缓存单元数,在状态表中,对实际可用的缓存单元数对应bit置00,表示对应的缓存单元处于空闲态,而对剩余的部分置11,表示不可用。在状态表更新的同时,也将索引表中的对应bit进行更新,具体地,1表示空闲,0表示不可用。对索引表RAM进行更新操作时,同时会对向量表进行更新,具体地,向量表中第一个单元的值为1,表明索引表第一行中存在空闲的缓存单元。
为了准确地显示各类缓存操作的类型,可选地,在本请求指令实施例提供的固态硬盘的缓存管理方法中,在接收目标模块发出的请求指令之前,该方法还包括:启动固态硬盘的缓存管理***,并初始化类型表,其中,类型表中以矩阵的形式记录了每个缓存单元被请求指令执行的操作类型;在将目标空闲缓存单元调度给目标模块之后,该方法还包括:确定目标模块发出的请求指令对应的操作类型;基于请求指令对应的操作类型更新类型表。
需要说明的是,由于在SSD控制器中,存在多种操作,包括主机读,主机写4K对齐/4K非对齐,cache读等,缓存管理单元中还可以包括类型表,用于指示当前缓存单元申请类型,具体地,当有8种类型的缓存单元申请,则每个缓存单元类型需要采用3bit来对应,此时表的大小为M*96。
为了表示缓存单元申请,在类型表中为每种类型的缓存单元设置一个标志位,在上电启动时,由于未对缓存单元执行任何操作,可以将类型表中的标志位均初始化为0值,当接收到控制器前端、控制器后端以及中央处理器的请求指令时,可以更新申请表中各个缓存单元的标识位。
此外,还需要说明的是,如果缓存单元管理比较简单,也可以无需类型表,只用一块索引表来实现缓存管理。
步骤S202,查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元,其中,向量表中的每个单元的值对应索引表中的一行缓存单元的占用状态,索引表中以矩阵的形式记录了每个缓存单元的占用状态。
步骤S203,在向量表中的目标单元对应的目标存储区内存在空闲缓存单元的情况下,在索引表中查询目标存储区内的空闲缓存单元的位置,得到目标空闲缓存单元。
需要说明的是,空闲缓存单元的查询工作主要通过向量表和索引表来完成,在接收到请求指令后,缓存管理单元中的申请处理模块首先会对向量表进行查询操作,查找表中每bit是否存在空闲缓存单元,如果存在,则转向索引表查找具体的空闲单元,假如向量表中找到的空闲位置为A,而索引表对应A地址的32bit的空闲缓存单元的空闲位置为B,则该空闲缓存单元的编号即为{A,B}。
为了提高查询速度,可选地,在本请求指令实施例提供的固态硬盘的缓存管理方法中,查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元包括:从向量表的第一个单元开始,选取预设个数的单元进行查询;在预设个数的单元中存在预设值对应的单元时,返回第一个预设值对应的单元的位置,并将查询指针定位到第一个预设值对应的单元;在预设个数的单元中不存在预设值对应的单元时,返回空值,并将查询指针定位到预设个数的单元中最后一个单元的下一个单元。
具体地,如图5所示,向量表长度为M,每次选取其中Q个bit进行查找,查找其中第一个bit为1的位置,返回值函数为bsf(Q)。当Q中第一个bit为1时,返回1,当Q个bit全为0时,bsf会直接返回Q+1。
此外,当到达向量表末端时,选取时会根据位置将向量表首尾进行拼接,假设当前向量表指针位置为P,则下一次查找时查询指针所指位置nextP为:若p+bsf(Q)≤M,nextP=P+bsf(Q),若p+bsf(Q)>M,nextP=P-M+bsf(Q)。
步骤S204,将目标空闲缓存单元调度给目标模块。
具体地,将目标空闲缓存单元调度给目标模块,目标模块即可通过目标空闲缓存单元进行相应的数据传输。
可选地,在本请求指令实施例提供的固态硬盘的缓存管理方法中,在目标模块为多个的情况下,在接收目标模块发出的请求指令之后,该方法还包括:对多个目标模块发出的请求指令按照优先级进行排序,得到目标顺序;将目标空闲缓存单元调度给目标模块包括:将依次查询得到的目标空闲缓存单元按照目标顺序调度给多个目标模块。
需要说明的是,在缓存单元不足时,为了满足更重要的数据传输工作,缓存管理单元中的申请处理模块会对来自控制器前端、后端以及中央处理器模块的申请进行仲裁,根据优先级给予相应的空闲缓存单元。
本请求指令实施例提供的固态硬盘的缓存管理方法,通过接收目标模块发出的请求指令,其中,请求指令用于请求分配空闲缓存单元,目标模块为固态硬盘的缓存管理***中的以下之一模块:控制器前端、控制器后端以及中央处理器;查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元,其中,向量表中的每个单元的值对应索引表中的一行缓存单元的占用状态,索引表中以矩阵的形式记录了每个缓存单元的占用状态;在向量表中的目标单元对应的目标存储区内存在空闲缓存单元的情况下,在索引表中查询目标存储区内的空闲缓存单元的位置,得到目标空闲缓存单元;将目标空闲缓存单元调度给目标模块,解决了相关技术中固态硬盘的缓存管理方法仅适用简单场景、且占用资源多的问题。通过在请求指令后,根据向量表以及索引表查询空闲缓存单元,并返回给请求指令对应的模块,进而达到了缓存管理方法适用多种缓存场景且减小占用资源的效果。
数据传输的过程中存在不同状态的缓存单元,可选地,在本请求指令实施例提供的固态硬盘的缓存管理方法中,在将目标空闲缓存单元调度给目标模块之后,该方法还包括:基于各个缓存单元的变化状态更新状态表;基于更新后的状态表中各个缓存单元的状态,更新索引表中各个缓存单元的占用状态;基于更新后的索引表中各个缓存单元的占用状态,更新向量表中的各个单元的值。
需要说明是,在数据传输的过程中,存在空闲缓存单元被申请到的状态,还存在传输完缓存单元被释放的状态下,以及正在传输的状态。因而,缓存管理单元中的状态处理模块会根据缓存单元的状态对状态表和类型表进行更新,同时,状态表的更新同时会对应索引表的更新,索引表中对应单元会被改写占用状态,相应的,向量表也会被更新。
数据传输的过程中每个缓存单元的状态是动态变化的,可选地,在本请求指令实施例提供的固态硬盘的缓存管理方法中,基于各个缓存单元的变化状态更新状态表包括:在目标缓存单元被请求指令后,将目标缓存单元的状态从空闲态更新为申请态;在将数据从第一目标模块转移到目标缓存单元的过程中,将目标缓存单元的状态从申请态更新为第一传输态;在将数据从目标缓存单元转移到第二目标模块的过程中,将目标缓存单元的状态从第一传输态更新为第二传输态;在目标缓存单元完成数据传输后,将目标缓存单元的状态从第二传输态更新为空闲态。
需要说明的是,如图6所示,当控制器前端、后端以及中央处理器发出请求指令后,缓存管理单元中的申请处理模块会接收指令并进行空闲缓存单元的调度。当控制器前端、后端以及中央处理器申请到缓存单元后,缓存管理单元中的状态处理模块会对缓存单元进行数据传输操作,对该缓存单元进行更新操作,此时缓存单元会跳转到传输1/传输2状态,状态表对应的缓存单元状态将会被更新,相应的目标模块检查对应编号缓存单元的状态,当确认数据就绪后,进行搬移操作。
进一步地,该操作完成后,由该目标模块再次对缓存单元进行更新,该缓存单元将被释放,缓存单元的释放同样由状态处理模块完成,具体地,首先将状态表对应单元改为空闲态,同时类型表也改为默认值,状态表更新时,索引表对应缓存单元bit置1,同时,将向量表对应bit也置1。此后,在接收到请求指令后,缓存管理单元才会命中该单元进行缓存单元查找与分配。
由于索引表和向量表的更新速度较慢,可选地,在本请求指令实施例提供的固态硬盘的缓存管理方法中,该方法还包括:当索引表的一行缓存单元中的最后一个空闲缓存单元被调度后,在查询向量表之前,对向量表中目标单元之前的单元进行屏蔽,其中,目标单元对应索引表的一行缓存单元。
具体地,当索引表中一个地址的最后一个单元被占用时,由于向量表还来不及更新,进行查询时,向量表会认为索引表中还存在可用缓存单元,因此在索引表中,对当前申请编号对应bit位置以下的单元会进行屏蔽,当高bit对应缓存单元被申请且剩余高bit位缓存单元被占用时,向量表中的查找地址会跳入下一地址。
此外,当索引表比较小时,若仅剩最后一个空闲缓存单元,则由于索引表和向量表更新较慢,可能该编号对应的缓存单元会被再次申请到,因此,对上次申请的编号地址进行屏蔽,确保对应的缓存单元不会被再次申请。
通过本申请实施例,避免了索引表以及状态表更新较慢导致同一缓存单元被重复申请的问题。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本请求指令实施例还提供了一种固态硬盘的缓存管理装置,需要说明的是,本请求指令实施例的固态硬盘的缓存管理装置可以用于执行本请求指令实施例所提供的用于固态硬盘的缓存管理方法。以下对本请求指令实施例提供的固态硬盘的缓存管理装置进行介绍。
图7是根据本请求指令实施例的固态硬盘的缓存管理装置的示意图,应用上述的固态硬盘的缓存管理***。如图7所示,该装置包括:接收单元10、第一查询单元20、第二查询单元30和调度单元40。
具体地,接收单元10,用于接收目标模块发出的请求指令,其中,请求指令用于请求分配空闲缓存单元,目标模块为固态硬盘的缓存管理***中的以下之一模块:控制器前端、控制器后端以及中央处理器。
第一查询单元20,用于查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元,其中,向量表中的每个单元的值对应索引表中的一行缓存单元的占用状态,索引表中以矩阵的形式记录了每个缓存单元的占用状态。
第二查询单元30,用于在向量表中的目标单元对应的目标存储区内存在空闲缓存单元的情况下,在索引表中查询目标存储区内的空闲缓存单元的位置,得到目标空闲缓存单元。
调度单元40,用于将目标空闲缓存单元调度给目标模块。
本请求指令实施例提供的固态硬盘的缓存管理装置,通过接收单元10接收目标模块发出的请求指令,其中,请求指令用于请求分配空闲缓存单元,目标模块为固态硬盘的缓存管理***中的以下之一模块:控制器前端、控制器后端以及中央处理器;第一查询单元20查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元,其中,向量表中的每个单元的值对应索引表中的一行缓存单元的占用状态,索引表中以矩阵的形式记录了每个缓存单元的占用状态;第二查询单元30在向量表中的目标单元对应的目标存储区内存在空闲缓存单元的情况下,在索引表中查询目标存储区内的空闲缓存单元的位置,得到目标空闲缓存单元;调度单元40将目标空闲缓存单元调度给目标模块,解决了相关技术中固态硬盘的缓存管理方法仅适用简单场景、且占用资源多的问题,通过在请求指令后,根据向量表以及索引表查询空闲缓存单元,并返回给请求指令对应的模块,进而达到了缓存管理方法适用多种缓存场景且减小占用资源的效果。
可选地,在本请求指令实施例提供的固态硬盘的缓存管理装置中,该装置还包括:排序单元,用于在目标模块为多个的情况下,在接收目标模块发出的请求指令之后,对多个目标模块发出的请求指令按照优先级进行排序,得到目标顺序;调度单元40还用于将目标空闲缓存单元调度给目标模块包括:将依次查询得到的目标空闲缓存单元按照目标顺序调度给多个目标模块。
可选地,在本请求指令实施例提供的固态硬盘的缓存管理装置中,该装置还包括:获取单元,用于在接收目标模块发出的请求指令之前,启动固态硬盘的缓存管理***,并获取各个缓存单元的状态;第一初始化单元,用于基于各个缓存单元的状态初始化状态表,其中,索引表中以矩阵的形式记录了每个缓存单元的状态,状态至少包括以下之一:空闲态、申请态以及传输态;第二初始化单元,用于基于状态表中各个缓存单元的状态,初始化索引表中各个缓存单元的占用状态;第三初始化单元,用于基于索引表中各个缓存单元的占用状态,初始化向量表中的各个单元的值。
可选地,在本请求指令实施例提供的固态硬盘的缓存管理装置中,第一查询单元20包括:查询模块,用于从向量表的第一个单元开始,选取预设个数的单元进行查询;第一返回模块,用于在预设个数的单元中存在预设值对应的单元时,返回第一个预设值对应的单元的位置,并将查询指针定位到第一个预设值对应的单元;第二返回模块,用于在预设个数的单元中不存在预设值对应的单元时,返回空值,并将查询指针定位到预设个数的单元中最后一个单元的下一个单元。
可选地,在本请求指令实施例提供的固态硬盘的缓存管理装置中,该装置还包括:第一更新单元,用于在将目标空闲缓存单元调度给目标模块之后,基于各个缓存单元的变化状态更新状态表;第二更新单元,用于基于更新后的状态表中各个缓存单元的状态,更新索引表中各个缓存单元的占用状态;第三更新单元,用于基于更新后的索引表中各个缓存单元的占用状态,更新向量表中的各个单元的值。
可选地,在本请求指令实施例提供的固态硬盘的缓存管理装置中,第一更新单元包括:第一更新模块,用于在目标缓存单元被请求指令后,将目标缓存单元的状态从空闲态更新为申请态;第二更新模块,用于在将数据从第一目标模块转移到目标缓存单元的过程中,将目标缓存单元的状态从申请态更新为第一传输态;第三更新模块,用于在将数据从目标缓存单元转移到第二目标模块的过程中,将目标缓存单元的状态从第一传输态更新为第二传输态;第四更新模块,用于在目标缓存单元完成数据传输后,将目标缓存单元的状态从第二传输态更新为空闲态。
可选地,在本请求指令实施例提供的固态硬盘的缓存管理装置中,该装置还包括:第四初始化单元,用于在接收目标模块发出的请求指令之前,启动固态硬盘的缓存管理***,并初始化类型表,其中,类型表中以矩阵的形式记录了每个缓存单元被请求指令执行的操作类型;第四更新单元,用于在将目标空闲缓存单元调度给目标模块之后,确定目标模块发出的请求指令对应的操作类型;基于请求指令对应的操作类型更新类型表。
可选地,在本请求指令实施例提供的固态硬盘的缓存管理装置中,该装置还包括:屏蔽单元,用于当索引表的一行缓存单元中的最后一个空闲缓存单元被调度后,在查询向量表之前,对向量表中目标单元之前的单元进行屏蔽,其中,目标单元对应索引表的一行缓存单元。
所述固态硬盘的缓存管理装置包括处理器和存储器,上述接收单元10、第一查询单元20、第二查询单元30和调度单元40等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中固态硬盘的缓存管理方法仅适用简单场景、且占用资源多的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述固态硬盘的缓存管理方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述固态硬盘的缓存管理方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:接收目标模块发出的请求指令,其中,请求指令用于请求分配空闲缓存单元,目标模块为固态硬盘的缓存管理***中的以下之一模块:控制器前端、控制器后端以及中央处理器;查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元,其中,向量表中的每个单元的值对应索引表中的一行缓存单元的占用状态,索引表中以矩阵的形式记录了每个缓存单元的占用状态;在向量表中的目标单元对应的目标存储区内存在空闲缓存单元的情况下,在索引表中查询目标存储区内的空闲缓存单元的位置,得到目标空闲缓存单元;将目标空闲缓存单元调度给目标模块。本文中的设备可以是服务器、PC、PAD、手机等。
本请求指令还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收目标模块发出的请求指令,其中,请求指令用于请求分配空闲缓存单元,目标模块为固态硬盘的缓存管理***中的以下之一模块:控制器前端、控制器后端以及中央处理器;查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元,其中,向量表中的每个单元的值对应索引表中的一行缓存单元的占用状态,索引表中以矩阵的形式记录了每个缓存单元的占用状态;在向量表中的目标单元对应的目标存储区内存在空闲缓存单元的情况下,在索引表中查询目标存储区内的空闲缓存单元的位置,得到目标空闲缓存单元;将目标空闲缓存单元调度给目标模块。
本领域内的技术人员应明白,本请求指令的实施例可提供为方法、***、或计算机程序产品。因此,本请求指令可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本请求指令可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本请求指令是参照根据本请求指令实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本请求指令的实施例可提供为方法、***或计算机程序产品。因此,本请求指令可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本请求指令可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本请求指令的实施例而已,并不用于限制本请求指令。对于本领域技术人员来说,本请求指令可以有各种更改和变化。凡在本请求指令的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本请求指令的权利要求范围之内。
Claims (13)
1.一种固态硬盘的缓存管理***,其特征在于,包括:
固态硬盘控制器,包括控制器前端、控制器后端以及缓存管理单元,其中,所述控制器前端和所述控制器后端之间通过缓存单元传输数据,所述缓存管理单元用于分别接收所述控制器前端、所述控制器后端发出的请求指令,并在接收到所述请求指令后根据向量表和索引表查询空闲缓存单元,将所述空闲缓存单元调度给所述请求指令对应的端口,其中,所述向量表中的每个单元的值对应所述索引表中的一行缓存单元的占用状态,所述索引表中以矩阵的形式记录每个缓存单元的所述占用状态;
半导体闪存,与所述控制器后端连接,用于向所述控制器后端发送数据,和/或接收所述控制器后端通过所述缓存单元传输的数据;
外部设备,与所述控制器前端连接,用于向所述控制器前端发送数据,和/或接收所述控制器前端通过所述缓存单元传输的数据。
2.根据权利要求1所述的***,其特征在于,所述固态硬盘控制器还包括中央处理器,所述中央处理器通过所述缓存单元分别与所述控制器前端、所述控制器后端传输数据,所述缓存管理单元还用于接收所述中央处理器发出的请求指令,并在接收到所述请求指令后根据所述索引表和所述向量表查询所述空闲缓存单元,将所述空闲缓存单元调度给所述中央处理器。
3.一种固态硬盘的缓存管理方法,应用权利要求2所述的固态硬盘的缓存管理***,其特征在于,包括:
接收目标模块发出的请求指令,其中,所述请求指令用于请求分配空闲缓存单元,所述目标模块为所述固态硬盘的缓存管理***中的以下之一模块:控制器前端、控制器后端以及中央处理器;
查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元,其中,所述向量表中的每个单元的值对应所述索引表中的一行缓存单元的占用状态,所述索引表中以矩阵的形式记录了每个缓存单元的所述占用状态;
在所述向量表中的目标单元对应的目标存储区内存在空闲缓存单元的情况下,在所述索引表中查询所述目标存储区内的所述空闲缓存单元的位置,得到目标空闲缓存单元;
将所述目标空闲缓存单元调度给所述目标模块。
4.根据权利要求3所述的方法,其特征在于,在所述目标模块为多个的情况下,在接收目标模块发出的请求指令之后,所述方法还包括:
对多个所述目标模块发出的请求指令按照优先级进行排序,得到目标顺序;
将所述目标空闲缓存单元调度给所述目标模块包括:将依次查询得到的所述目标空闲缓存单元按照所述目标顺序调度给多个所述目标模块。
5.根据权利要求3所述的方法,其特征在于,在接收目标模块发出的请求指令之前,所述方法还包括:
启动所述固态硬盘的缓存管理***,并获取各个缓存单元的状态;
基于所述各个缓存单元的状态初始化状态表,其中,所述索引表中以矩阵的形式记录了每个缓存单元的状态,所述状态至少包括以下之一:空闲态、申请态以及传输态;
基于所述状态表中各个缓存单元的状态,初始化所述索引表中各个缓存单元的所述占用状态;
基于所述索引表中各个缓存单元的所述占用状态,初始化所述向量表中的各个单元的值。
6.根据权利要求3所述的方法,其特征在于,查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元包括:
从所述向量表的第一个单元开始,选取预设个数的单元进行查询;
在所述预设个数的单元中存在预设值对应的单元时,返回第一个所述预设值对应的单元的位置,并将查询指针定位到第一个所述预设值对应的单元;
在所述预设个数的单元中不存在所述预设值对应的单元时,返回空值,并将所述查询指针定位到所述预设个数的单元中最后一个单元的下一个单元。
7.根据权利要求5所述的方法,其特征在于,在将所述目标空闲缓存单元调度给所述目标模块之后,所述方法还包括:
基于各个缓存单元的变化状态更新所述状态表;
基于更新后的所述状态表中各个缓存单元的状态,更新所述索引表中各个缓存单元的占用状态;
基于更新后的所述索引表中各个缓存单元的占用状态,更新所述向量表中的各个单元的值。
8.根据权利要求7所述的方法,其特征在于,基于各个缓存单元的变化状态更新所述状态表包括:
在目标缓存单元被请求指令后,将所述目标缓存单元的状态从所述空闲态更新为所述申请态;
在将数据从第一目标模块转移到所述目标缓存单元的过程中,将所述目标缓存单元的状态从所述申请态更新为第一传输态;
在将数据从所述目标缓存单元转移到第二目标模块的过程中,将所述目标缓存单元的状态从所述第一传输态更新为第二传输态;
在所述目标缓存单元完成数据传输后,将所述目标缓存单元的状态从所述第二传输态更新为所述空闲态。
9.根据权利要求5所述的方法,其特征在于,在接收目标模块发出的请求指令之前,所述方法还包括:
启动所述固态硬盘的缓存管理***,并初始化类型表,其中,所述类型表中以矩阵的形式记录了每个缓存单元被请求指令执行的操作类型;
在将所述目标空闲缓存单元调度给所述目标模块之后,所述方法还包括:确定所述目标模块发出的所述请求指令对应的操作类型;
基于所述请求指令对应的操作类型更新所述类型表。
10.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述索引表的一行缓存单元中的最后一个空闲缓存单元被调度后,在查询所述向量表之前,对所述向量表中目标单元之前的单元进行屏蔽,其中,所述目标单元对应所述索引表的一行缓存单元。
11.一种固态硬盘的缓存管理装置,应用权利要求2所述的固态硬盘的缓存管理***,其特征在于,包括:
接收单元,用于接收目标模块发出的请求指令,其中,所述请求指令用于请求分配空闲缓存单元,所述目标模块为所述固态硬盘的缓存管理***中的以下之一模块:控制器前端、控制器后端以及中央处理器;
第一查询单元,用于查询向量表中的每个单元对应的存储区内是否存在空闲缓存单元,其中,所述向量表中的每个单元的值对应所述索引表中的一行缓存单元的占用状态,所述索引表中以矩阵的形式记录了每个缓存单元的所述占用状态;
第二查询单元,用于在所述向量表中的目标单元对应的目标存储区内存在空闲缓存单元的情况下,在所述索引表中查询所述目标存储区内的所述空闲缓存单元的位置,得到目标空闲缓存单元;
调度单元,用于将所述目标空闲缓存单元调度给所述目标模块。
12.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求3至10中任意一项所述的固态硬盘的缓存管理方法。
13.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求3至10中任意一项所述的固态硬盘的缓存管理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010339988.XA CN111562883B (zh) | 2020-04-26 | 2020-04-26 | 固态硬盘的缓存管理***、方法、装置 |
PCT/CN2020/127181 WO2021218101A1 (zh) | 2020-04-26 | 2020-11-06 | 固态硬盘的缓存管理***、方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010339988.XA CN111562883B (zh) | 2020-04-26 | 2020-04-26 | 固态硬盘的缓存管理***、方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111562883A true CN111562883A (zh) | 2020-08-21 |
CN111562883B CN111562883B (zh) | 2021-09-07 |
Family
ID=72070562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010339988.XA Active CN111562883B (zh) | 2020-04-26 | 2020-04-26 | 固态硬盘的缓存管理***、方法、装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111562883B (zh) |
WO (1) | WO2021218101A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021218101A1 (zh) * | 2020-04-26 | 2021-11-04 | 北京泽石科技有限公司 | 固态硬盘的缓存管理***、方法、装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117423366B (zh) * | 2023-12-14 | 2024-03-15 | 武汉麓谷科技有限公司 | 一种用于ssd固态硬盘的上电回路 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727395A (zh) * | 2008-10-17 | 2010-06-09 | 深圳市朗科科技股份有限公司 | 闪存设备的管理***、方法及闪存设备 |
CN102063377A (zh) * | 2009-11-16 | 2011-05-18 | 联发科技股份有限公司 | 存储介质的数据存取管理方法及存储控制器 |
CN102609360A (zh) * | 2012-01-12 | 2012-07-25 | 华为技术有限公司 | 一种数据处理方法、装置及*** |
CN104461393A (zh) * | 2014-12-09 | 2015-03-25 | 华中科技大学 | 一种闪存存储器的混合映射方法 |
CN104794070A (zh) * | 2015-04-23 | 2015-07-22 | 南京道熵信息技术有限公司 | 基于动态非覆盖raid技术的固态闪存写缓存***及方法 |
CN105205015A (zh) * | 2015-09-29 | 2015-12-30 | 联想(北京)有限公司 | 一种数据存储方法及存储设备 |
CN109614348A (zh) * | 2017-09-13 | 2019-04-12 | Arm有限公司 | 缓存行状态 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101650130B1 (ko) * | 2010-05-14 | 2016-08-24 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 카피-백 방법 |
CN108496161A (zh) * | 2017-09-29 | 2018-09-04 | 深圳市大疆创新科技有限公司 | 数据缓存装置及控制方法、数据处理芯片、数据处理*** |
CN108255420A (zh) * | 2017-12-22 | 2018-07-06 | 深圳忆联信息***有限公司 | 一种固态硬盘缓存管理方法及固态硬盘 |
CN108549610B (zh) * | 2018-03-27 | 2021-02-23 | 深圳忆联信息***有限公司 | 一种NVMe扩展的实现方法及固态硬盘 |
CN110175000A (zh) * | 2019-05-24 | 2019-08-27 | 深圳忆联信息***有限公司 | 基于固态硬盘的读写性能提升方法、装置和计算机设备 |
CN111562883B (zh) * | 2020-04-26 | 2021-09-07 | 北京泽石科技有限公司 | 固态硬盘的缓存管理***、方法、装置 |
-
2020
- 2020-04-26 CN CN202010339988.XA patent/CN111562883B/zh active Active
- 2020-11-06 WO PCT/CN2020/127181 patent/WO2021218101A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727395A (zh) * | 2008-10-17 | 2010-06-09 | 深圳市朗科科技股份有限公司 | 闪存设备的管理***、方法及闪存设备 |
CN102063377A (zh) * | 2009-11-16 | 2011-05-18 | 联发科技股份有限公司 | 存储介质的数据存取管理方法及存储控制器 |
CN102609360A (zh) * | 2012-01-12 | 2012-07-25 | 华为技术有限公司 | 一种数据处理方法、装置及*** |
CN104461393A (zh) * | 2014-12-09 | 2015-03-25 | 华中科技大学 | 一种闪存存储器的混合映射方法 |
CN104794070A (zh) * | 2015-04-23 | 2015-07-22 | 南京道熵信息技术有限公司 | 基于动态非覆盖raid技术的固态闪存写缓存***及方法 |
CN105205015A (zh) * | 2015-09-29 | 2015-12-30 | 联想(北京)有限公司 | 一种数据存储方法及存储设备 |
CN109614348A (zh) * | 2017-09-13 | 2019-04-12 | Arm有限公司 | 缓存行状态 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021218101A1 (zh) * | 2020-04-26 | 2021-11-04 | 北京泽石科技有限公司 | 固态硬盘的缓存管理***、方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021218101A1 (zh) | 2021-11-04 |
CN111562883B (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210349665A1 (en) | Latency-based Scheduling of Command Processing in Data Storage Devices | |
CN104915151B (zh) | 多虚拟机***中一种主动共享的内存超量分配方法 | |
US20190370043A1 (en) | Cooperative memory management | |
US20120151125A1 (en) | Data processing method for nonvolatile memory system | |
CN101344861B (zh) | 一种智能卡内存管理方法 | |
US11151155B2 (en) | Memory use in a distributed index and query system | |
CN103384877A (zh) | 包括闪存的存储***和存储控制方法 | |
KR20210095690A (ko) | 리소스 관리 방법과 장치, 전자 디바이스 및 기록 매체 | |
CN102667714B (zh) | 支持访问由操作***环境外的资源提供的功能的方法和*** | |
US11740812B2 (en) | Data storage device idle time processing | |
CN111562883B (zh) | 固态硬盘的缓存管理***、方法、装置 | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
US20180039523A1 (en) | Information processing system that determines a memory to store program data for a task carried out by a processing core | |
CN110109868A (zh) | 用于索引文件的方法、装置和计算机程序产品 | |
CN110858162A (zh) | 内存管理方法及装置、服务器 | |
CN110162396A (zh) | 内存回收方法、装置、***和存储介质 | |
CN111181874B (zh) | 一种报文处理方法、装置及存储介质 | |
CN104216834A (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
CN117076341A (zh) | 数据存储方法、装置、计算机设备及计算机可读存储介质 | |
US11252457B2 (en) | Multimedia streaming and routing apparatus and operation method of the same | |
CN111400032A (zh) | 一种资源分配的方法及装置 | |
CN116578416A (zh) | 一种基于gpu虚拟化的信号级仿真加速方法 | |
CN113778688B (zh) | 内存管理***、内存管理方法、内存管理装置 | |
US10372470B2 (en) | Copy of memory information from a guest transmit descriptor from a free pool and assigned an intermediate state to a tracking data structure | |
CN113343045B (zh) | 一种数据缓存方法及网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200810 Address after: Room 203-1, 2 / F, building 1, yard 1, Shangdi East Road, Haidian District, Beijing 100089 Applicant after: Beijing Zeshi Technology Co.,Ltd. Applicant after: Zeshi Technology (Wuhan) Co., Ltd Address before: Room 203-1, 2 / F, building 1, yard 1, Shangdi East Road, Haidian District, Beijing 100089 Applicant before: Beijing Zeshi Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |