CN110389709A - 顺序流检测与数据预读 - Google Patents
顺序流检测与数据预读 Download PDFInfo
- Publication number
- CN110389709A CN110389709A CN201810355427.1A CN201810355427A CN110389709A CN 110389709 A CN110389709 A CN 110389709A CN 201810355427 A CN201810355427 A CN 201810355427A CN 110389709 A CN110389709 A CN 110389709A
- Authority
- CN
- China
- Prior art keywords
- address
- read
- flow descriptors
- hit
- sequential
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 73
- 238000003860 storage Methods 0.000 claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 36
- 230000004044 response Effects 0.000 claims abstract description 23
- 230000003014 reinforcing effect Effects 0.000 claims description 9
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 13
- 239000007787 solid Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 241001269238 Data Species 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000017702 response to host Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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
- 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/0629—Configuration or reconfiguration of storage 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了顺序流检测与预读的方法与存储设备。所提供的顺序流检测方法,包括:响应于第一读命令访问的地址命中了多个顺序流描述符中的第一顺序流描述符,用第一读命令访问的地址更新第一顺序流描述符记录的地址;指示对第一顺序流描述符对应的第一顺序流实施预读。
Description
技术领域
本申请涉及存储系统,更具体地,涉及检测访问连续地址空间的多个读命令所形成的顺序流,以及根据对顺序流的检测执行数据预读。
背景技术
图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial AttachedSCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component InterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
在固态存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。
存储设备用于处理IO命令。IO命令可以被发送给存储设备(例如,磁盘、固态硬盘、U盘、光盘等)、存储服务器或存储系统(诸如云存储)。若多条IO命令所访问的地址是连续的或近似连续的,则称这些IO命令属于相同的顺序流。
每条IO命令携带或指示要访问的数据的地址(逻辑地址或物理地址)。每条IO命令要访问的数据的长度可以是固定长度,也可以变化。主机访问存储设备时,诸如应用程序的数据访问方可能将大块数据访问拆分成多条IO命令,并发送给存储设备。主机中还会存在多个访问存储设备的应用和/或多个操作系统(诸如,虚拟机),这导致来个多个访问方的IO命令被交织,进而使得原本对连续地址的访问变得不连续。
图2A示出了来自多个应用的IO命令被提供给存储设备的示意图。
在主机中有多个应用,应用A产生访问连续地址的多条IO命令(例如,IO命令A1与A2),这些IO命令属于顺序流A。作为举例,应用A的这些IO命令来自对大尺寸视频文件的复制。应用B产生访问连续地址的多条IO命令(例如,IO命令B1与B2),这些IO命令属于顺序流B。主机中的应用还产生了访问其他地址空间的多条IO命令(例如图2A中的IO命令S,E,D,C,这些IO命令属于顺序流C)。在操作系统、驱动程序、设备接口和/或总线上,多个IO命令被组织为与原来不同的顺序,并被存储设备所接收。作为举例,存储设备以A1、B1、C与B2的顺序接收到IO命令。
图2B展示了来自多个应用的数据的在存储设备上的数据放置的示意图。
存储设备以A1、B1、C与B2的顺序接收到IO命令,并将这些IO命令按照接收IO命令的顺序,将IO命令(以写命令为例)访问的数据写入到存储介质中。在图2B的例子中,IO命令A1、B1、C、B2被分配给连续的物理地址,导致原本在访问连续逻辑地址的多条IO命令(诸如IO命令A1与A2,或IO命令B1与B2)所对应的数据在存储介质中被分散而非连续地存储。
存储设备还提供预读机制。例如,响应于主机访问地址A1,存储设备预测主机随后将很可能继续访问同地址A1连续或临近的地址A2,从而存储设备先于接收主机的读命令而从地址A2读取数据,并缓存从地址A2读出的数据,以响应主机随后可能发出的读命令。
发明内容
需要在存储设备中提供改进的顺序流检测与预读能力,以提供更低的访问延迟与更好的服务质量。
根据本申请的第一方面,提供了根据本申请第一方面的第一顺序流检测方法,包括:响应于第一读命令访问的地址命中了多个顺序流描述符中的第一顺序流描述符,用第一读命令访问的地址更新第一顺序流描述符记录的地址;指示对第一顺序流描述符对应的第一顺序流实施预读。
根据本申请第一方面的第一顺序流检测方法,提供了根据本申请第一方面的第二顺序流检测方法,还包括:响应于第一读命令访问的地址未命中多个顺序流描述符中的任何一个,识别第一读命令中访问的地址是否命中多个候选顺序流描述符中的任何一个。
根据本申请第一方面的第二顺序流检测方法,提供了根据本申请第一方面的第三顺序流检测方法,还包括:响应于第一读命令访问的地址命中了多个候选顺序流描述符中的第一候选顺序流描述符,用第一的命令访问的地址更新第一候选顺序流描述符记录的地址并递增第一候选顺序流描述符记录的命中次数。
根据本申请第一方面的第三顺序流检测方法,提供了根据本申请第一方面的第四顺序流检测方法,还包括:用第一候选顺序流描述符记录的地址与命中次数,更新多个顺序流描述符中的第二顺序流描述符。
根据本申请第一方面的第四顺序流检测方法,提供了根据本申请第一方面的第五顺序流检测方法,其中第二顺序流描述符是多个顺序流描述符中命中次数最小的顺序流描述符。
根据本申请第一方面的第一至第五顺序流检测方法之一,提供了根据本申请第一方面的第六顺序流检测方法,其中响应于第一读命令访问的地址命中了多个顺序流描述符中的第一顺序流描述符,还递增第一顺序流描述符记录的命中次数。
根据本申请第一方面的第六顺序流检测方法,提供了根据本申请第一方面的第七顺序流检测方法,其中响应于第一读命令访问的地址未命中多个顺序流描述符中的任何一个,也未命中多个候选顺序流描述符中的任何一个,递减多个顺序流描述符的每个的命中次数,与多个候选顺序流描述符的每个的命中次数。
根据本申请第一方面的第一至第七顺序流检测方法之一,提供了根据本申请第一方面的第八顺序流检测方法,其中若读命令访问的地址同第一顺序流描述符记录的地址相同、相重叠和/或相邻近,则识别出读命令访问的地址命中了第一顺序流描述符。
根据本申请第一方面的第二至第五顺序流检测方法之一,提供了根据本申请第一方面的第九顺序流检测方法,其中若读命令访问的地址同第一候选顺序流描述符记录的地址相同、相重叠和/或相邻近,则识别出读命令访问的地址命中了第一候选顺序流描述符。
根据本申请第一方面的第二至第五或第九顺序流检测方法之一,提供了根据本申请第一方面的第十顺序流检测方法,还包括:响应于获取第一读命令,根据第一读命令访问的地址更新近期IO命令地址集合。
根据本申请第一方面的第十顺序流检测方法,提供了根据本申请第一方面的第十一顺序流检测方法,其中根据第一读命令访问的地址生成第一元素,将第一元素添加到近期IO命令地址集合,其中第一元素记录了第一读命令访问的地址与初始化的命中次数。
根据本申请第一方面的第十顺序流检测方法,提供了根据本申请第一方面的第十二顺序流检测方法,其中若第一读命令访问的地址命中了近期IO命令地址集合的第二元素,递增第二元素的命中次数。
根据本申请第一方面的第十一顺序流检测方法,提供了根据本申请第一方面的第十三顺序流检测方法,还包括:从近期IO命令地址集合删除第二元素,以容纳第一元素。
根据本申请第一方面的第十至第十三顺序流检测方法之一,提供了根据本申请第一方面的第十四顺序流检测方法,还包括:用近期IO命令地址集合的元素记录的地址与命中次数,更新多个候选顺序流描述符中的第二候选顺序流描述符。
根据本申请第一方面的第十四顺序流检测方法,提供了根据本申请第一方面的第十五顺序流检测方法,还包括:第二候选顺序流描述符是多个候选顺序流描述符中命中次数最小的顺序流描述符。
根据本申请的第二方面,提供了根据本申请第二方面的第一预读方法,包括:响应于收到对第一顺序流描述符对应的第一顺序流实施预读的指示,对根据本次预读起始地址与本地预读大小参数实施预读。
根据本申请第二方面的第一预读方法,提供了根据本申请第二方面的第二预读方法,其中根据本申请第一方面提供的顺序流检测方法之一,得到对第一顺序流描述符对应的第一顺序流实施预读的指示。
根据本申请第二方面的第一或第二预读方法,提供了根据本申请第二方面的第三预读方法,还包括:将预读得到的数据存储在一个或多个缓存单元。
根据本申请第二方面的第三预读方法,提供了根据本申请第二方面的第四预读方法,其中若读命令命中了缓存单元,根据强化的策略确定本次预读起始地址与本地预读大小参数,若读命令未命中缓存单元,根据谨慎的策略确定本次预读起始地址与本地预读大小参数。
根据本申请第二方面的第三预读方法,提供了根据本申请第二方面的第五预读方法,其中若读命令访问的地址非临近于对第一顺序流上次预读的地址范围,根据谨慎的策略确定本次预读起始地址与本地预读大小参数;若读命令访问的地址临近于对第一顺序流上次预读的地址范围,且读命令访问的数据大小近似于上次预读的数据大小,根据强化的策略确定本次预读起始地址与本地预读大小参数。
根据本申请第二方面的第五预读方法,提供了根据本申请第二方面的第六预读方法,其中若读命令访问的地址临近于对第一顺序流上次预读的地址范围,且读命令访问的数据大小非近似于上次预读的数据大小,根据谨慎的策略确定本次预读起始地址与本地预读大小参数。
根据本申请第二方面的第三预读方法,提供了根据本申请第二方面的第七预读方法,其中若读命令访问的地址非临近于对第一顺序流上次预读的地址范围,且读命令命中了缓存单元,根据第一谨慎的策略确定本次预读起始地址与本地预读大小参数;若读命令访问的地址非临近于对第一顺序流上次预读的地址范围,且读命令未命中缓存单元,根据第二谨慎的策略确定本次预读起始地址与本地预读大小参数;其中第二谨慎的策略比第一谨慎的策略更加谨慎。
根据本申请第二方面的第三预读方法,提供了根据本申请第二方面的第八预读方法,其中若读命令访问的地址临近于对第一顺序流上次预读的地址范围,根据强化的策略确定本次预读起始地址与本地预读大小参数,若读命令访问的地址非临近于对第一顺序流上次预读的地址范围,根据谨慎的策略确定本次预读起始地址与本地预读大小参数。
根据本申请第二方面的第五到第八预读方法之一,提供了根据本申请第二方面的第九预读方法,其中根据强化的策略确定本次预读起始地址与本地预读大小参数包括,相对于上次预读数据的大小,在本地预读中增加预读的数据大小,和/或相对于上次预读的起始地址更远的地址实施预读。
根据本申请第二方面的第五到第九预读方法之一,提供了根据本申请第二方面的第十预读方法,其中根据谨慎的策略确定本次预读起始地址与本地预读大小参数包括,相对于上次预读数据的大小,在本地预读中减少预读的数据大小,和/或将读命令访问的地址范围的末尾作为本次预读的起始地址。
根据本申请的第三方面,提供了根据本申请一种存储设备,其特征在于,包括控制部件与非易失性存储器,所述控制部件实施根据本申请第一方面的顺序流检测方法之一或根据本申请第二方面的预读方法之一。
根据本申请的第四方面,提供了根据本申请第四方面的一种存储设备,其特征在于,包括控制部件与非易失性存储器,所述控制部件实施根据本申请第一方面的顺序流检测方法之一或根据本申请第二方面的预读方法之一。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请提供的现有技术中固态存储设备的示意图;
图2A示出了来自多个应用的IO命令被提供给存储设备的示意图;
图2B展示了来自多个应用的数据的在存储设备上的数据放置的示意图;
图3是对写命令实施顺序流检测示意图;
图4展示了根据本申请实施例的存储设备的框图;
图5展示了根据本申请实施例的顺序流描述符与候选顺序流描述符;
图6展示了根据本申请实施例检测顺序流的流程图;
图7展示了根据本申请又一实施例的顺序流描述符、候选顺序流描述符与近期IO命令地址集合;
图8展示了根据本申请又一实施例检测顺序流的流程图;
图9A展示了根据本申请实施例的实施预读的流程图;
图9B展示了根据本申请又一实施例的实施预读的流程图;以及
图10展示了根据本申请又一实施例的顺序流检测与预读的流程图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图3是对写命令实施顺序流检测示意图。作为举例,在存储设备中对接收到的写命令实施顺序流检测。从访问存储设备的多个写命令中,检测出访问连续地址的写命令所形成的顺序流A、顺序流B以及访问的地址不具有顺序性的多个写命令(由C、D、E、…S指示)(也称为随机流)。并且,为顺序流A分配存储介质上的连续物理地址(例如,数据块1),为顺序流B分配存储介质上的连续物理地址(例如,数据块2),将随机流写入到数据块3。当顺序流A对应的数据生命周期完成而被更新或无效时(例如,当顺序流A对应大尺寸视频文件时,该视频文件被删除),数据块1中的数据都变为无效,并使得在回收数据块1时,无需将数据块中的有效数据进行搬移(因为数据块1中不存在有效数据,或有效数据较少),从而降低了写放大。此外,顺序流中的数据也可能被连续读取。例如,当顺序流A对应大尺寸视频文件时,数据块1中对应于A1、A2、A3与A4的数据很可能被连续读取。因而对于存储顺序流的数据块1,在响应读命令时,可以在接收到后续的读命令前,预读后续的数据,从而降低对后续读读命令的响应时间。在申请号为201610169011.1、发明名称为顺序流检测方法与装置的中国专利申请中,提供了实施顺序流检测的多种实施例。将其全文通过引用并入本申请。
图4展示了根据本申请实施例的存储设备的框图。根据本申请实施例的存储设备对读命令实施顺序流检测,并依据检测结果进行预读。
参看图4,存储设备的控制部件204包括主机接口210、用于访问NVM芯片105的介质接口220、缓存管理单元260、后端处理单元270、顺序流检测单元250与预读单元255。
主机接口210用于同主机交换命令与数据。例如,主机与存储设备通过NVMe/PCIe协议通信,主机接口210处理PCIe协议数据包,提取出NVMe协议命令,并向主机返回NVMe协议命令的处理结果。
缓存管理单元260耦合到主机接口210,用于接收主机发送给存储设备的IO命令,并尽力利用一个或多个缓存单元来服务所接收的IO命令,以提升IO命令被存储设备处理的性能的确定性。
缓存管理单元260还将缓存单元中的数据通过后端处理单元270写入NVM芯片(105),和/或从NVM芯片(105)读出数据填充缓存单元。
可选地,缓存单元260将接收的IO命令的部分(例如,未命中缓存单元的读命令)转交给后端处理单元270处理,而不使用缓存单元来服务这些IO命令。
后端处理单元270接收IO命令(IO命令形态因缓存管理单元260的处理而发生变化,这里为了表达简洁而统称为IO命令),并访问一个或多个NVM芯片。
可选地,后端处理单元270利用现有技术处理IO命令,或者利用将来产生的技术处理IO命令。
可选地,缓存管理单元260维护缓存描述符表(或缓存描述符池)。缓存描述符表260记录了多个缓存描述符。缓存描述符的一个或多个记录了对应的缓存单元在DRAM 110中的地址、缓存单元的状态和/或缓存单元中有效数据的位置。在例如申请号为201810264435.5、发明名称为“具有增强IO性能确定性的缓存的存储设备”、申请日为2018年3月28日的中国专利申请中描述了利用缓存管理单元260来提供缓存。在申请号为201610819411.2、201610819400.4、201710219096.4与201710219077.1中也提供了用于存储设备的缓存。
控制部件还耦合到外部存储器(例如,DRAM)110。
继续参看图4,外部存储器110的部分空间(缓存单元0、缓存单元1……缓存单元7)被用作缓存。缓存单元具有指定的大小。例如,缓存单元指定大小为512字节、1KB、2KB、4KB等。
缓存管理单元260管理缓存单元的分配和使用。示例性地,对于写命令,在缓存管理单元260的指示下,将要写入的数据通过主机接口210从主机传输到外部存储器110中的缓存单元,以及还将缓存单元中的数据通过介质接口220传输到NVM芯片105。例如,缓存管理单元260将缓存单元中的数据经由后端处理单元270,通过介质接口220传输到NVM芯片105。
对于读命令,缓存管理单元260识别缓存单元是否命中。若缓存单元命中,在缓存管理单元260的指示下,从缓存单元获取数据发送给主机。若缓存单元未命中,从NVM芯片105获取数据发送给主机。
后端处理单元270包括FTL模块,用于将IO命令的逻辑地址转换为物理地址。后端处理单元270还对NVM芯片及其上的数据实施管理,提供磨损均衡、垃圾回收等服务。
可选地,存储设备向主机暴露物理地址空间,诸如遵循(开放通道SSD,OpenChannel SSD,OCSSD)协议的物理地址空间。从而在IO命令中指示要访问的物理地址。从而后端处理单元270无须使用FTL模块进行从逻辑地址到物理地址的转换。
继续参看图4,主机接口210还耦合到顺序流检测单元250。顺序流检测单元250也接收主机发送给存储设备的IO命令,或者可选地接收IO命令访问的逻辑地址/物理地址(简称为IO命令访问的地址)。顺序流检测单元依据接收的IO命令的地址识别出一个或多个顺序流,并向预读单元255指示所识别出的顺序流。预读单元255对所识别出的顺序流实施预读,对顺序流上随后可能出现的读命令要读取的数据提前实施预读,并将读出的数据存储在缓存单元中。可选地,预读单元255读出的数据也由缓存管理单元260管理。缓存管理单元260为预读的数据分配缓存单元,并在缓存描述符表中记录被预读的逻辑地址/物理地址以及存储了预读数据的缓存单元的索引。可选地,由不同于缓存管理单元260的其他缓存管理单元或顺序流检测单元250管理对预读数据的缓存。
响应于从主机接口接收了读命令,缓存管理单元260、其他缓存管理单元或顺序流检测单元250还检查读命令要读取的数据是否命中了预读数据的缓存。
图5展示了根据本申请实施例的顺序流描述符与候选顺序流描述符。顺序流检测单元250维护顺序流描述符与候选顺序流描述符。顺序流描述符指示了被顺序流检测单元250识别出的顺序流,而候选顺序流描述符指示候选的顺序流。
作为举例,顺序流描述符有一个或多个。图5中展示了2个顺序流描述符(510与512)。候选顺序流描述符有一个或多个。图5中展示了4个候选顺序流描述符(540、542、544与546)。可以理解地,顺序流检测单元250可维护其他数量的顺序流描述符与候选顺序流描述符。
顺序流描述符用于描述被识别出的顺序流。作为举例,顺序流描述符通过地址(读命令访问的地址)与命中次数来描述顺序流。进一步地,顺序流描述符还通过预读起始地址与预读数据大小来进一步描述顺序流。依然可选地,顺序流描述符还记录IO命令读取数据的大小。
顺序流描述符记录的命中次数,是该顺序流描述符所描述的顺序流在其生命周期内,命中该顺序流的读命令的个数。读命令命中顺序流的情形包括,例如,读命令访问的地址同顺序流描述符记录的地址相同、相重叠和/或相邻近(两个地址的差小于指定阈值)。
顺序流描述符记录的预读起始地址,是根据该顺序流描述符所做的上一次预读操作所读取数据的起始地址(逻辑地址或物理地址)。顺序流描述符记录的预读数据大小,是根据该顺序流描述符所做的上一次预读操作所读取数据的大小。
候选顺序流描述符记录同顺序流描述符相同或相似的内容。
图6展示了根据本申请实施例检测顺序流的流程图。
顺序流检测单元250(也参看图4)从主机接口210获取读命令(可选地,读命令访问的地址)(610),判断读命令访问的地址是否命中顺序流(620)。通过比较读命令访问的地址与顺序流描述符所记录的地址来判断读命令访问的地址是否命中顺序流。例如,读命令访问的地址为A1,而顺序流描述符510记录的地址为A2,若A1与A2相同、相重叠(对应于地址为范围的情况)和/或相临近(A1与A2的差的绝对值小于阈值),则确定读命令访问的地址A1命中顺序流510。可选地,将读命令访问的地址同顺序流检测单元250所维护的顺序流描述符的每个(510与512)所记录的地址作比较,以识别读命令访问的地址是否命中顺序流描述符所代表的顺序流的任何一个。
对于读命令访问的地址命中的顺序流描述符(例如,顺序流描述符510),更新该被命中的顺序流描述符(630),例如将顺序流描述符510记录的地址替换为读命令访问的地址(A1),以及将顺序流描述符所记录的命中次数递增。
若读命令访问的地址(A1)未命中所维护的顺序流描述符的任何一个,判断读命令访问的地址是否命中候选顺序流(650)。通过比较读命令访问的地址与候选顺序流描述符所记录的地址来判断读命令访问的地址是否命中候选顺序流。
若读命令访问的地址命中了候选顺序流描述符(例如,候选顺序流描述符540),更新该被命中的候选顺序流描述符(660),例如将候选顺序流描述符540记录的地址替换为读命令访问的地址(A1),以及将候选顺序流描述符所记录的命中次数递增。进一步地,对于更新后的被命中候选顺序流描述符,还识别该候选顺序流描述符是否满足升级为顺序流描述符的条件(670)。例如,若候选顺序流描述符所记录的命中次数超过阈值(例如,5、10或100),候选顺序流描述符所记录的命中次数大于其他所有候选顺序流描述符所记录的命中次数,或者候选顺序流描述符所记录的命中次数大于一个或多个顺序流描述符所记录的命中次数,对候选顺序流描述符所对应的候选的顺序流进行升级。根据待被升级的候选顺序流描述符更新顺序流描述符之一(680)。例如选择所记录的命中次数最低的顺序流描述符(510),或者尚未被使用的顺序流描述符,用待被升级的候选顺序流描述符(540)所记录的地址与命中次数,替换被选择的顺序流描述符(510)的地址与命中次数,以将候选顺序流升级为是顺序流。
可选地或进一步地,为升级候选顺序流描述符,还降级被选择的顺序流描述符(例如顺序流描述符510)。用被降级的顺序流描述符(510)的地址与命中次数,更新被升级的候选顺序流描述符(540)。通过在将顺序流描述符降级为候选顺序流描述符,为该候选顺序流描述符提供了再次被升级为顺序流描述符的机会。
需要说明地,在对根据图6的实施例的描述中,没有仔细地区分顺序流与顺序流描述符,也没有仔细地区分候选顺序流与候选顺序流描述符。这是为了说明简便、清楚的目的,所属领域技术人员将能够理解其含义。顺序流描述符可以是例如存储器中的一段存储空间所容纳的用于描述顺序流的数据,这段存储空间可被修改从而使顺序流描述符被更新。顺序流描述符通过其记录的数据指示了顺序流(例如,地址与命中次数)。从而读命令的地址命中了顺序流描述符,也被理解为命中了顺序流描述符所指示的顺序流;将候选顺序流描述符升级为顺序流描述符,也被理解为将候选顺序流描述符所指示的候选顺序流升级为顺序流;将顺序流描述符降级为候选流描述符,也被理解为将顺序流描述符所指示的顺序流降级为候选顺序流。
在一种可选的实施方式中,若读命令访问的地址未命中任何候选顺序流描述符,选择候选顺序流描述符之一来容纳由读命令访问的地址所指示的候选顺序流。例如,选择候选顺序流描述符中命中次数最小的候选顺序流描述符,或者选择距上次被更新最久的候选顺序流描述符。在选出的候选顺序流描述符中记录读命令访问地址,并初始化命中次数。在又一种可选的实施方式中,若读命令访问的地址未命中任何候选顺序流描述符,不在任何候选顺序流描述符中记录读命令的地址。
图7展示了根据本申请又一实施例的顺序流描述符、候选顺序流描述符与近期IO命令地址集合。顺序流检测单元250维护顺序流描述符、候选顺序流描述符与近期IO命令地址集合。顺序流描述符指示了被顺序流检测单元250识别出的顺序流,而候选顺序流描述符指示候选的顺序流,近期IO命令的地址集合以集合的存储空间为限在集合的每个元素中容纳近期所接收的读命令的地址及其被命中的次数。可选地,近期IO命令的地址集合是排序的,按IO命令的地址被接收的顺序排序。从而当集合满时,将指示最早接收的IO命令的集合元素从集合中删除以获得存储空间容纳新的元素。
作为举例,近期IO命令的地址集合的每个元素记录了IO命令(读命令)的地址以及可选地该地址被命中的次数(也称为该元素被命中的次数)。近期IO命令的地址集合容纳指定数量的元素。对于接收的IO命令,若近期IO命令的地址集合有空闲空间,根据IO命令访问的地址生成元素添加到近期IO命令的地址集合。若近期IO命令的地址集合没有空闲空间,按近期IO命令的地址集合的元素排序,将最早被添加到近期IO命令的地址集合的元素删除以获得空间空间。可选地或进一步地,从近期IO命令的地址集合删除元素时,还考虑元素的被命中次数。可选地,为将生成的元素添加到近期IO命令的地址集合,遍历近期IO命令的地址集合的各元素,以查找在近期IO命令的地址集合中是否存在将被该IO命令访问的地址命中的元素。若近期IO命令的地址集合中存在被IO命令访问的地址命中的元素,将该元素的被命中次数递增。若近期IO命令的地址集合中不存在被IO命令访问的地址命中的元素,则根据该IO命令访问的地址生成元素,并添加到近期IO命令的地址集合中。
在指定条件满足或指定情况发生时,近期IO命令的地址集合中的元素被升级为候选顺序流(并得到候选顺序流描述符)。指定条件包括例如近期IO命令的地址集合中的元素的被命中次数大于指定阈值,近期IO命令的地址集合的元素的被命中次数大于候选顺序流描述符的被命中次数等。
图8展示了根据本申请又一实施例检测顺序流的流程图。
顺序流检测单元250(也参看图4)从主机接口210获取读命令(可选地,读命令访问的地址)(810),判断读命令访问的地址是否命中顺序流(820)。
对于读命令访问的地址命中的顺序流描述符(例如,顺序流描述符510),更新该被命中的顺序流描述符(830)。
若读命令访问的地址(A1)未命中所维护的顺序流描述符的任何一个,判断读命令访问的地址是否命中候选顺序流(850)。
若读命令访问的地址命中了候选顺序流描述符(例如,候选顺序流描述符540),更新该被命中的候选顺序流描述符(860)。进一步地,对于更新后的被命中候选顺序流描述符,还识别该候选顺序流描述符是否满足升级为顺序流描述符的条件(870)。根据待被升级的候选顺序流描述符更新顺序流描述符之一(880)。
在一种可选的实施方式中,若读命令访问的地址未命中任何候选顺序流描述符,根据读命令访问的地址更新近期IO命令的地址集合(852)。例如,根据读命令访问的地址生成近期IO命令的地址集合的元素,在生成的近期IO命令的地址集合元素中记录了读命令的地址,以及初始化该地址被命中的次数(例如,为1)。可选地,为将生成的元素添加到近期IO命令的地址集合,还遍历近期IO命令的地址集合的各元素,以查找在近期IO命令的地址集合中是否存在将被该读命令的地址命中的元素。若近期IO命令的地址集合中存在被读命令的地址命中的元素,将该元素的被命中次数递增。
进一步地,对于更新后的近期IO命令的地址集合,还识别近期IO命令的地址集合中被更新的元素是否满足升级为候选顺序流描述符的条件(854)。根据待被升级的元素更新候选顺序流描述符之一(856)。例如,根据待被升级的元素的地址与被命中次数,更新被选择的候选顺序流描述符。以及可选地或进一步地,对于被选择的顺序流描述符,根据其中记录的地址与被命中次数生成近期IO命令的地址集合的元素,并将生成的元素添加到近期IO命令的地址集合。
可选地或进一步地,响应于近期IO命令的地址集合的元素被升级为候选顺序流,还转向步骤870,对于更新后的被命中候选顺序流描述符,还识别该候选顺序流描述符是否满足升级为顺序流描述符的条件。
图9A展示了根据本申请实施例的实施预读的流程图。
根据本申请的实施例,在顺序流检测单元250维护了有效的顺序流描述符时,预读单元255执行预读操作。存在有效的顺序流描述符,意味着当前存在被识别出且有效的顺序流。顺序流描述符是动态的,相应地,顺序流也是动态的。在任何时刻,可能存在0个、1个或多个顺序流。预读单元255对存在的顺序流实施预读。
作为举例,响应于从主机接口获取的读命令(910)命中了顺序流或者响应于识别出新的顺序流(有候选顺序流被升级为顺序流),而实施预读。顺序流检测单元250,依据从主机接口获取的读命令命中了顺序流,或者识别出新的顺序流(有候选顺序流被升级为顺序流),向预读单元255提供预读指示。可选地,顺序流检测单元250还从被命中的顺序流描述符或新升级的顺序流描述符中获取预读起始地址与预读数据大小。顺序流描述符中记录的预读起始地址与预读大小是在该顺序流描述符所指示的顺序流上所执行的上次预读操作的起始地址与预读大小。
若读命令命中了顺序流,顺序流检测单元250或缓存管理单元260还识别读命令是否命中了被之前的预读操作填充的缓存单元(920)。若读命令命中了被之前的预读操作填充的缓存单元,从被命中的缓存单元获取数据作为对读命令的响应,以及还强化对该顺序流上所实施的预读(930)。强化对该顺序流上所实施的预读,意味着增加预读的数据大小,和/或在顺序流相对当前地址更远的地址开始实施预读。例如预读单元255根据读命令访问的地址的结尾地址与上次预读的结尾地址的较大者作为本次预读的起始地址,以及将上次预读的大小或者上次预读的大小的倍数作为本次预读的大小。以及可选地,本地预读大小不应超过指定的最大值。若读命令命中了顺序流,但读命令未命中被之前的预读操作填充的缓存单元,则以谨慎地实施对该顺序流上的预读(925)。谨慎地实施对该顺序流上的预读,意味限制预读数据大小,和/或在顺序流相对当前地址较近的地址开始实施预读。例如,预读单元255根据读命令访问的地址的结尾地址作为本次预读的起始地址,而将指定大小作为本次预读的大小。可选地,响应于识别出新的顺序流,也谨慎地实施对该顺序流上的预读。
在可选的实施方式中,若读命令命中了顺序流,顺序流检测单元250或缓存管理单元260还识别读命令访问的地址是否临近于上次预读的地址范围。读命令访问的地址临近于上次预读的地址范围,意味着读命令访问的地址处于上次预读的地址范围内,或距离上次预读的地址范围的边界小于指定阈值,也意味着上次预读操作发生了积极的作用,所预读的顺序很可能被真实的读命令所访问。若读命令命访问的地址临近于上次预读的地址范围,强化对该顺序流上所实施的预读。若读命令访问的地址并非临近于上次预读的地址范围,谨慎地实施对该顺序流上的预读。
依然可选地,对存在的顺序流实施预读,而不以存在读命令命中顺序流为前提。对于存在的顺序流,即使没有读命令命中顺序流,也谨慎地实施对该顺序流上的预读。
以及预读单元255根据本次预读的起始地址与本次预读的大小,实施预读操作(940)。通过例如向后端处理单元270发出预读命令来实施预读操作。根据预读操作从NVM芯片105读出的数据被存储在缓存单元中。以及顺序流检测单元250还根据本次预读的起始地址与本次预读的大小更新顺序流描述符中的预读起始地址与预读大小。
图9B展示了根据本申请又一实施例的实施预读的流程图。
根据图9B的实施例,预读单元255对顺序流描述符指示的顺序流实施预读。
作为举例,响应于从主机接口获取的读命令(950)命中了顺序流,且读命令访问的地址临近于上次预读的地址范围(960),则强化对该顺序流上所实施的预读。若读命令命访问的地址并非临近于上次预读的地址范围,谨慎地实施对该顺序流上的预读(965)。
在可选的实施方式中,响应于在步骤960识别出读命令访问的地址远离于上次预读的地址范围,进一步识别读命令是否命中了被之前的预读操作填充的缓存单元。若读命令未命中了被之前的预读操作填充的缓存单元,转向步骤965,以谨慎地实施对该顺序流上的预读。若读命令命中了被之前的预读操作填充的缓存单元,意味着之前的预读操作是有效的,只是预读的地址范围过远而偏离了后续可能的读命令,因而转向步骤975,根据谨慎的预读策略确定本次预读的大小。
在依然可选的实施方式中,响应于在步骤960识别出读命令访问的地址临近于上次预读的地址范围,还判断读命令访问的数据大小与上次预读的数据大小的关系(970)。例如,若读命令访问的数据大小与上次预读的数据大小接近,也意味着上次预读发挥了积极作用,且因预读引起的读带宽浪费较少,因而强化对该顺序流上所实施的预读,特别是根据强化的策略确定本次预读的大小(972)。例如,将本次预读的大小设置为同上次预读的大小相同或比上次预读的大小更大。可选地,若读命令访问的数据大小显著大于上次预读的数据大小,也采用强化的策略确定本次预读的大小。
回到步骤970,若读命令访问的数据大小显著小于上次预读的数据大小,意味着上次预读发挥了消极作用,预读的数据未得到充分利用,导致因预读引起的读带宽浪费较多,因而根据谨慎的预读策略确定本次预读的大小(975)。例如,将本次预读的大小设置为比上次预读的大小更小。
以及在步骤980,由于读命令访问的地址临近于上次预读的地址范围,因而采取强化的策略确定本次预读的起始地址。例如预读单元255根据读命令访问的地址的结尾地址与上次预读的结尾地址的较大者作为本次预读的起始地址。
以及预读单元255根据本次预读的起始地址与本次预读的大小,实施预读操作(990)。
图10展示了根据本申请又一实施例的顺序流检测与预读的流程图。
顺序流检测单元250(也参看图4)从主机接口210获取读命令(可选地,读命令访问的地址)(1010),根据读命令访问的地址更新近期IO命令的地址集合(1020)。例如,根据读命令访问的地址生成近期IO命令的地址集合的元素,在生成的近期IO命令的地址集合元素中记录了读命令的地址,以及初始化该地址被命中的次数(例如,为1),并将生成的元素添加到近期IO命令的地址集合。
可选地,为将生成的元素添加到近期IO命令的地址集合,还遍历近期IO命令的地址集合的各元素,以查找在近期IO命令的地址集合中是否存在将被该读命令的地址命中的元素。若近期IO命令的地址集合中存在被读命令的地址命中的元素,将该元素的被命中次数递增。
判断读命令访问的地址是否命中顺序流(1030)。若读命令访问的地址命中的顺序流描述符(例如,顺序流描述符510),更新该被命中的顺序流描述符(1040)。
以及接下来根据被命中的顺序流描述符实施预读(1045)。例如,顺序流检测单元250向预读单元255指示被命中的顺序流描述符。可选地,还向预读单元255提供(步骤1010获取的)IO命令是否命中了缓存单元(或者命中的缓存单元的数量)、上次预读的起始地址与上次预读的大小。
预读单元255根据顺序流检测单元250提供的信息实施预读。例如,根据如图9A或图9B展示的实施例的流程处理预读。可以理解地,图9A与图9B为了清楚的目的展示了获取IO命令的步骤(910与950),预读单元255实施预读而无须再次获取IO命令。
继续参看图10,若读命令访问的地址未命中所维护的顺序流描述符的任何一个(1030),判断读命令访问的地址是否命中候选顺序流(1050)。
若读命令访问的地址命中了候选顺序流描述符(1050),更新该被命中的候选顺序流描述符(1060)。进一步地,对于更新后的被命中候选顺序流描述符,还识别该候选顺序流描述符是否满足升级为顺序流描述符的条件(1070)。若满足升级条件,根据待被升级的候选顺序流描述符更新顺序流描述符之一(1080)。对于因升级而新生成的顺序流描述符,根据新升级顺序流描述符实施预读(1045)。
若读命令访问的地址未命中候选顺序流描述符(1050),在此情况下,读命令访问的地址未命中顺序流描述符与候选顺序流描述符的任何一个。统计读命令访问的地址未命中顺序流描述符与候选顺序流描述符的任何一个的次数。若该次数大于指定阈值(1090),意味着当前识别的顺序流与候选顺序流与实际情况偏差较大,更新所有顺序流描述符与候选顺序流描述符的命中次数(1095)。例如将命中次数减半,将命中次数减去指定值,或将命中次数按比例减少。
本申请实施例还提供一种包括程序代码的程序,当被载入主机并在主机上执行时,所述程序使主机的处理器执行上面提供的根据本申请实施例的方法之一。
应该理解,框图和流程图的每个框以及框图和流程图的框的组合可以分别由包括计算机程序指令的各种装置来实施。这些计算机程序指令可以加载到通用计算机、专用计算机或其他可编程数据控制设备上以产生机器,从而在计算机或其他可编程数据控制设备上执行的指令创建了用于实现一个或多个流程图框中指定的功能的装置。
这些计算机程序指令还可以存储在可以引导计算机或其他可编程数据控制设备的计算机可读存储器中从而以特定方式起作用,从而能够利用存储在计算机可读存储器中的指令来制造包括用于实现一个或多个流程图框中所指定功能的计算机可读指令的制品。计算机程序指令还可以加载到计算机或其他可编程数据控制设备上以使得在计算机或其他可编程数据控制设备上执行一系列的操作操作,从而产生计算机实现的过程,进而在计算机或其他可编程数据控制设备上执行的指令提供了用于实现一个或多个流程图框中所指定功能的操作。
因而,框图和流程图的框支持用于执行指定功能的装置的组合、用于执行指定功能的操作的组合和用于执行指定功能的程序指令装置的组合。还应该理解,框图和流程图的每个框以及框图和流程图的框的组合可以由执行指定功能或操作的、基于硬件的专用计算机系统实现,或由专用硬件和计算机指令的组合实现。
虽然当前发明参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
这些实施方式所涉及的、从上面描述和相关联的附图中呈现的教导获益的领域中的技术人员将认识到这里记载的本申请的很多修改和其他实施方式。因此,应该理解,本申请不限于公开的具体实施方式,旨在将修改和其他实施方式包括在所附权利要求书的范围内。尽管在这里采用了特定的术语,但是仅在一般意义和描述意义上使用它们并且不是为了限制的目的而使用。
Claims (10)
1.顺序流检测方法,包括:
响应于第一读命令访问的地址命中了多个顺序流描述符中的第一顺序流描述符,用第一读命令访问的地址更新第一顺序流描述符记录的地址;
指示对第一顺序流描述符对应的第一顺序流实施预读。
2.根据权利要求1所述的方法,还包括:
响应于第一读命令访问的地址未命中多个顺序流描述符中的任何一个,识别第一读命令中访问的地址是否命中多个候选顺序流描述符中的任何一个。
3.根据权利2所述的方法,还包括:
响应于第一读命令访问的地址命中了多个候选顺序流描述符中的第一候选顺序流描述符,用第一的命令访问的地址更新第一候选顺序流描述符记录的地址并递增第一候选顺序流描述符记录的命中次数。
4.根据权利要求1-3之一所述的方法,其中
响应于第一读命令访问的地址命中了多个顺序流描述符中的第一顺序流描述符,还递增第一顺序流描述符记录的命中次数。
5.根据权利要求4所述的方法,其中
响应于第一读命令访问的地址未命中多个顺序流描述符中的任何一个,也未命中多个候选顺序流描述符中的任何一个,递减多个顺序流描述符的每个的命中次数,与多个候选顺序流描述符的每个的命中次数。
6.一种预读方法,包括:
响应于收到对第一顺序流描述符对应的第一顺序流实施预读的指示,对根据本次预读起始地址与本地预读大小参数实施预读。
7.根据权利要求6所述的方法,还包括:
将预读得到的数据存储在一个或多个缓存单元。
8.根据权利要求7所述的方法,其中
若读命令命中了缓存单元,根据强化的策略确定本次预读起始地址与本地预读大小参数,若读命令未命中缓存单元,根据谨慎的策略确定本次预读起始地址与本地预读大小参数。
9.根据权利要求7所述的方法,其中
若读命令访问的地址非临近于对第一顺序流上次预读的地址范围,根据谨慎的策略确定本次预读起始地址与本地预读大小参数;
若读命令访问的地址临近于对第一顺序流上次预读的地址范围,且读命令访问的数据大小近似于上次预读的数据大小,根据强化的策略确定本次预读起始地址与本地预读大小参数。
10.一种存储设备,其特征在于,包括控制部件与非易失性存储器,所述控制部件实施根据权利要求1-9之一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810355427.1A CN110389709A (zh) | 2018-04-19 | 2018-04-19 | 顺序流检测与数据预读 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810355427.1A CN110389709A (zh) | 2018-04-19 | 2018-04-19 | 顺序流检测与数据预读 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110389709A true CN110389709A (zh) | 2019-10-29 |
Family
ID=68282722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810355427.1A Pending CN110389709A (zh) | 2018-04-19 | 2018-04-19 | 顺序流检测与数据预读 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110389709A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084121A (zh) * | 2020-09-11 | 2020-12-15 | 深圳佰维存储科技股份有限公司 | 硬盘预读方法、装置、计算机可读存储介质及电子设备 |
CN113194118A (zh) * | 2021-03-29 | 2021-07-30 | 新华三大数据技术有限公司 | 一种顺序流识别方法及装置 |
WO2021238252A1 (zh) * | 2020-05-29 | 2021-12-02 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统文件局部随机预读的方法和设备 |
CN114443529A (zh) * | 2022-04-02 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 内存直接访问架构、系统、方法、电子设备和介质 |
CN117032597A (zh) * | 2023-10-09 | 2023-11-10 | 北京忆恒创源科技股份有限公司 | 数据预读处理方法及存储设备 |
CN117032595A (zh) * | 2023-10-09 | 2023-11-10 | 北京忆恒创源科技股份有限公司 | 顺序流检测方法及存储设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016264A1 (en) * | 2009-07-17 | 2011-01-20 | Kabushiki Kaisha Toshiba | Method and apparatus for cache control in a data storage device |
CN102073463A (zh) * | 2010-12-28 | 2011-05-25 | 创新科存储技术有限公司 | 流预测方法和装置及预读控制方法和装置 |
CN104134027A (zh) * | 2014-07-23 | 2014-11-05 | 华为技术有限公司 | 一种顺序流识别的方法以及装置 |
CN107229580A (zh) * | 2016-03-23 | 2017-10-03 | 北京忆恒创源科技有限公司 | 顺序流检测方法与装置 |
-
2018
- 2018-04-19 CN CN201810355427.1A patent/CN110389709A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016264A1 (en) * | 2009-07-17 | 2011-01-20 | Kabushiki Kaisha Toshiba | Method and apparatus for cache control in a data storage device |
CN102073463A (zh) * | 2010-12-28 | 2011-05-25 | 创新科存储技术有限公司 | 流预测方法和装置及预读控制方法和装置 |
CN104134027A (zh) * | 2014-07-23 | 2014-11-05 | 华为技术有限公司 | 一种顺序流识别的方法以及装置 |
CN107229580A (zh) * | 2016-03-23 | 2017-10-03 | 北京忆恒创源科技有限公司 | 顺序流检测方法与装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021238252A1 (zh) * | 2020-05-29 | 2021-12-02 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统文件局部随机预读的方法和设备 |
CN112084121A (zh) * | 2020-09-11 | 2020-12-15 | 深圳佰维存储科技股份有限公司 | 硬盘预读方法、装置、计算机可读存储介质及电子设备 |
CN112084121B (zh) * | 2020-09-11 | 2024-06-11 | 深圳佰维存储科技股份有限公司 | 硬盘预读方法、装置、计算机可读存储介质及电子设备 |
CN113194118A (zh) * | 2021-03-29 | 2021-07-30 | 新华三大数据技术有限公司 | 一种顺序流识别方法及装置 |
CN113194118B (zh) * | 2021-03-29 | 2022-05-27 | 新华三大数据技术有限公司 | 一种顺序流识别方法及装置 |
CN114443529A (zh) * | 2022-04-02 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 内存直接访问架构、系统、方法、电子设备和介质 |
CN117032597A (zh) * | 2023-10-09 | 2023-11-10 | 北京忆恒创源科技股份有限公司 | 数据预读处理方法及存储设备 |
CN117032595A (zh) * | 2023-10-09 | 2023-11-10 | 北京忆恒创源科技股份有限公司 | 顺序流检测方法及存储设备 |
CN117032595B (zh) * | 2023-10-09 | 2024-01-23 | 北京忆恒创源科技股份有限公司 | 顺序流检测方法及存储设备 |
CN117032597B (zh) * | 2023-10-09 | 2024-01-23 | 北京忆恒创源科技股份有限公司 | 数据预读处理方法及存储设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389709A (zh) | 顺序流检测与数据预读 | |
KR102584018B1 (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
CN106708423A (zh) | 多模存储管理系统 | |
CN107797759B (zh) | 访问缓存信息的方法、装置与驱动器 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN103914398B (zh) | 用以管理具有实体地址空间的存储器使用率的方法及装置 | |
CN107797760B (zh) | 一种访问缓存信息的方法、装置与固态驱动器 | |
CN109164976A (zh) | 利用写缓存优化存储设备性能 | |
CN109144885A (zh) | 固态存储设备的垃圾回收方法与固态存储设备 | |
CN109558333A (zh) | 具有可变额外存储空间(op)的固态存储设备命名空间 | |
CN109558334A (zh) | 垃圾数据回收方法及固态存储设备 | |
CN107783916A (zh) | 数据传输方法、存储控制器与清单管理电路 | |
CN108228483A (zh) | 处理原子写命令的方法和设备 | |
CN108572932A (zh) | 多平面nvm命令融合方法与装置 | |
CN110321057A (zh) | 具有增强io性能确定性的缓存的存储设备 | |
CN107229580A (zh) | 顺序流检测方法与装置 | |
CN109426436A (zh) | 基于可变长大块的垃圾回收方法与装置 | |
CN109840048A (zh) | 存储命令处理方法及其存储设备 | |
CN108877862A (zh) | 页条带的数据组织以及向页条带写入数据的方法与装置 | |
CN109815157A (zh) | 编程命令处理方法与装置 | |
CN110515861A (zh) | 处理刷写命令的存储设备及其方法 | |
CN110968527B (zh) | Ftl提供的缓存 | |
US20230120184A1 (en) | Systems, methods, and devices for ordered access of data in block modified memory | |
CN106205707A (zh) | 存储器装置 | |
CN111290974A (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 | ||
CB02 | Change of applicant information |
Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd. Address before: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information |