CN110321057A - 具有增强io性能确定性的缓存的存储设备 - Google Patents
具有增强io性能确定性的缓存的存储设备 Download PDFInfo
- Publication number
- CN110321057A CN110321057A CN201810264435.5A CN201810264435A CN110321057A CN 110321057 A CN110321057 A CN 110321057A CN 201810264435 A CN201810264435 A CN 201810264435A CN 110321057 A CN110321057 A CN 110321057A
- Authority
- CN
- China
- Prior art keywords
- cache unit
- unit
- data
- caching
- cache
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 39
- 230000002708 enhancing effect Effects 0.000 title abstract description 3
- 238000013507 mapping Methods 0.000 claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 30
- 239000000872 buffer Substances 0.000 claims description 103
- 238000003672 processing method Methods 0.000 claims description 34
- 238000000034 method Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 18
- 238000012423 maintenance Methods 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 239000007787 solid Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 241001269238 Data Species 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241001212789 Dynamis Species 0.000 description 1
- 238000005299 abrasion Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 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
- 239000000284 extract Substances 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229940044442 onfi Drugs 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/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/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
本申请公开了具有增强IO性能确定性的缓存的存储设备,包括如下步骤:获取写命令,为写命令访问的第一逻辑地址分配第一缓存单元;将写命令的数据写入第一缓存单元;则在缓存映射表中记录写命令的第一逻辑地址与第一缓存单元描述符的对应关系;向主机指示写命令处理完成。
Description
技术领域
本申请涉及存储设备,尤其涉及在存储设备中提供缓存来提升IO处理性能的确定性。
背景技术
图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Techno logy 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(Dynami c 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表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。
NVMe协议中还定义了命名空间(namespace,NS)。大小为n的命名空间是具有从0到n-1的逻辑块地址的逻辑块集合。通过命名空间ID(Namespace ID,NSID)能够唯一标识命名空间。命名空间可以在主机/NVMe控制器之间共享。主机通过单一NVMe控制器能够访问不同命名空间。不同主机也可通过多个NVMe控制器访问相同的命名空间。
发明内容
固态存储设备希望提升IO确定性(I/O Determinism),从而以基本一致的性能处理各个IO请求,降低IO请求之间的冲突,减少IO请求处理延迟的波动。
根据本申请的第一方面,提供了根据本申请第一方面的第一写命令处理方法,其中,包括如下步骤:获取写命令,为写命令访问的第一逻辑地址分配第一缓存单元;将写命令的数据写入第一缓存单元;则在缓存映射表中记录写命令的第一逻辑地址与第一缓存单元描述符的对应关系;向主机指示写命令处理完成。
根据本申请的第一方面的第一写命令处理方法,提供了根据本申请第一方面的第二写命令处理方法,其中,若写命令命中第二缓存单元,还将第二缓存单元的数据复制到第一缓存单元。
根据本申请的第一方面的第二写命令处理方法,提供了根据本申请第一方面的第三写命令处理方法,其中,将第二缓存单元的有效数据复制到第一缓存单元,其中有效数据是第二缓存单元已被写入且未被所述写命令所覆盖的数据。
根据本申请的第一方面的第二或三写命令处理方法,提供了根据本申请第一方面的第四写命令处理方法,其中,还包括:若写命令数据的大小同缓存单元的大小不同,则判断写命令是否命中第二缓存单元;
根据本申请的第一方面的第四写命令处理方法,提供了根据本申请第一方面的第五写命令处理方法,其中,若写命令数据的大小同缓存单元的大小相同,则无须判断写命令是否命中第二缓存单元。
根据本申请的第一方面的第二或四写命令处理方法,提供了根据本申请第一方面的第六写命令处理方法,其中,依据缓存映射表中是否存在第一逻辑地址与第二缓存单元的对应关系来判断写命令是否命中第二缓存单元。
根据本申请的第一方面的第六写命令处理方法,提供了根据本申请第一方面的第七写命令处理方法,其中,若写命令命中第二缓存单元,则将第二缓存单元与第一逻辑地址的对应关系从缓存映射表删除。
根据本申请的第一方面的第一至七中任一项的读命令处理方法,提供了根据本申请第一方面的第八写命令处理方法,其中,为第一逻辑地址分配缓存描述符,缓存描述符中记录了第一缓存单元的索引,从而为写命令访问的第一逻辑地址分配第一缓存单元。
根据本申请的第一方面的第一至八中任一项的读命令处理方法,提供了根据本申请第一方面的第九写命令处理方法,其中,缓存单元描述符中记录了缓存单元的状态。
根据本申请的第二方面,提供了根据本申请第二方面的第一读命令处理方法,其中,包括如下步骤:获取读命令及读命令所访问的第二逻辑地址;判断读命令是否命中缓存单元;若命中缓存单元,根据第二逻辑地址从命中的缓存单元获取数据作为对该读命令的响应。
根据本申请的第二方面的第一读命令处理方法,提供了根据本申请第二方面的第二读命令处理方法,其中,包括,若未命中缓存单元,从非易失性存储器获取数据作为对该读命令的响应。
根据本申请的第二方面的第一或二读命令处理方法,提供了根据本申请第二方面的第三读命令处理方法,其中,依据缓存映射表中是否有条目记录了读命令访问的第二逻辑地址来判断读命令是否命中缓存单元。
根据本申请的第二方面的第一或二读命令处理方法,提供了根据本申请第二方面的第四读命令处理方法,其中,依据缓存映射表中记录了第二逻辑地址的条目是否具有有效的缓存描述符来判断读命令的第二逻辑地址是否命中缓存单元。
根据本申请的第二方面的第一至四中任一项的读命令处理方法,提供了根据本申请第二方面的第五读命令处理方法,其中,在从命中的缓存单元读出数据前,将缓存描述符中记录的该缓存单元的引用计数递增。
根据本申请的第二方面的第一至五中任一项的读命令处理方法,提供了根据本申请第二方面的第六读命令处理方法,其中,缓存描述符与缓存单元一一对应,缓存描述符中记录了同其对应的缓存单元的逻辑地址。
根据本申请的第二方面的第一至四中任一项的读命令处理方法,提供了根据本申请第二方面的第七读命令处理方法,其中,一个或多个缓存描述符不具有被分配的缓存单元。
根据本申请的第二方面的第一读命令处理方法,提供了根据本申请第二方面的第八读命令处理方法,其中,在从命中的缓存单元读出数据完成后,将缓存单元描述符中记录的该缓存单元的引用计数递减。
根据本申请的第三方面,提供了根据本申请第三方面的第一控制部件,其中,包括主机接口、缓存映射单元、缓存管理单元和介质接口;主机接口用于同主机交换命令与数据;缓存管理单元与主机接口耦合,用于管理外部存储器中的缓存单元;缓存映射单元与缓存管理单元耦合,用于根据缓存管理单元的指示为IO命令的逻辑地址分配缓存描述符;介质接口与缓存管理单元耦合,用于将从缓存单元接收的数据发送给非易失性存储器芯片,和/或从非易失性存储器芯片中读出数据。
根据本申请的第三方面的第一控制部件,提供了根据本申请第三方面的第二控制部件,其中,缓存管理单元将IO命令要写入的数据通过主机接口传输到外部存储器中的缓存单元中。
根据本申请的第三方面的第一或二控制部件,提供了根据本申请第三方面的第三控制部件,其中,如权利要求18-19中任一项的控制部件,其特征在于,缓存管理单元将缓存单元中的数据经由介质接口传输到非易失性存储器中。
根据本申请的第三方面的第一至三中任一项的控制部件,提供了根据本申请第三方面的第四控制部件,其中,缓存管理单元从缓存单元中获取IO命令要读取的数据,并通过主机接口发送给主机。
根据本申请的第三方面的第一至四中任一项的控制部件,提供了根据本申请第三方面的第五控制部件,其中,缓存管理单元从非易失性存储器中获取数据,并传输到外部存储器中的缓存单元或通过主机接口发送给主机。
根据本申请的第三方面的第一至五中任一项的控制部件,提供了根据本申请第三方面的第六控制部件,其中,包括缓存描述符表,缓存描述符表记录了多个缓存描述符,缓存管理单元维护缓存描述符表。
根据本申请的第三方面的第六控制部件,提供了根据本申请第三方面的第七控制部件,其中,缓存描述符记录了缓存单元在外部存储器中的地址、缓存单元的状态和/或缓存单元中有效数据的位置。
根据本申请的第三方面的第六或七控制部件,提供了根据本申请第三方面的第八控制部件,其中,缓存描述符记录待处理的一个或多个访问缓存单元的任务。
根据本申请的第三方面的第六至八中任一项的控制部件,提供了根据本申请第三方面的第九控制部件,其中,缓存描述符记录了所服务的IO命令的逻辑地址。
根据本申请的第三方面的第六至九中任一项的控制部件,提供了根据本申请第三方面的第十控制部件,其中,缓存描述符对应至多一个缓存单元,通过在缓存描述符中记录缓存单元的地址而指示缓存描述符与缓存单元之间的对应关系。
根据本申请的第三方面的第九或十控制部件,提供了根据本申请第三方面的第十一控制部件,其中,缓存描述符与缓存单元一一对应。
根据本申请的第三方面的第一至十一控制部件,提供了根据本申请第三方面的第十二控制部件,其中,包括缓存映射表,缓存映射表与缓存映射单元耦合;缓存映射单元维护缓存映射表,缓存映射表包括条目,条目记录了存储设备的逻辑地址与缓存描述符的对应关系。
根据本申请的第三方面的第十二控制部件,提供了根据本申请第三方面的第十三控制部件,其中,缓存映射表条目记录了缓存描述符ID,根据缓存描述符ID唯一寻址缓存描述符。
根据本申请的第三方面的第十三控制部件,提供了根据本申请第三方面的第十四控制部件,其中,缓存映射表是哈希表;哈希表的条目以逻辑地址为索引,而以分配给逻辑地址的缓存描述符ID为同索引对应的值。
根据本申请的第三方面的第十二控制部件,提供了根据本申请第三方面的第十五控制部件,其中,采用KV存储来提供缓存映射表;以逻辑地址为KV存储的键,以分配给逻辑地址的缓存描述符ID为同键对应的值。
根据本申请的第三方面的第十二至十五中任一项的控制部件,提供了根据本申请第三方面的第十六控制部件,其中,缓存映射表记录的逻辑地址的数量或缓存描述符的数量小于存储设备的逻辑地址空间的逻辑地址的数量。
根据本申请的第三方面的第十二控制部件,提供了根据本申请第三方面的第十七控制部件,其中,缓存映射单元根据需要为逻辑地址分配对应的缓存描述符。
根据本申请的第三方面的第十二至十七中任一项的控制部件,提供了根据本申请第三方面的第十八控制部件,其中,若缓存描述符被用尽或缓存映射表被耗尽,缓存映射单元延迟对缓存管理单元的响应,在出现可用的缓存描述符或缓存映射表条目后,根据缓存管理单元的指示,为逻辑地址分配可用的缓存描述符或缓存映射表条目。
根据本申请的第三方面的第一至十七中任一项的控制部件,提供了根据本申请第三方面的第十九控制部件,其中,缓存映射单元向缓存管理单元指示指定的逻辑地址在缓存映射表中是否有记录。
根据本申请的第三方面的第一控制部件,提供了根据本申请第三方面的第二十控制部件,其中,IO命令指示物理地址,缓存管理单元向缓存映射单元指示物理地址,缓存映射单元为IO命令指示的物理地址分配缓存描述符。
根据本申请的第三方面的第二十控制部件,提供了根据本申请第三方面的第二十一控制部件,其中,对于访问指示存储设备的物理地址的IO命令,使用物理地址访问非易失性存储器芯片。
根据本申请的第三方面的第二十一控制部件,提供了根据本申请第三方面的第二十二控制部件,其中,对IO命令的物理地址进行映射,获得映射后的地址,用来访问非易失性存储器芯片。
根据本申请的第三方面的第一至二十二中任一项的控制部件,提供了根据本申请第三方面的第二十三控制部件,其中,如权利要求18-39的控制部件,其特征在于,缓存单元具有多个可能的状态,状态包括空闲、占用/不一致、占用/一致、淘汰中和/或解除绑定状态;空闲状态指示缓存单元未被使用,空闲状态的缓存单元中未缓存有效数据;占用/不一致状态指示缓存单元中已经存储了数据,并且该数据未被写入非易失性存储器芯片中;响应于淘汰过程开始,缓存单元进入淘汰中状态,其中淘汰指示将占用不一致状态的缓存单元所缓存的数据写入非易失性存储器芯片的过程;占用/一致状态指示淘汰过程已结束,缓存单元所缓存的数据被写入非易失性存储器芯片;解除绑定状态指示缓存映射表中没有任何条目记录的缓存描述符中记录了该缓存单元的地址。
根据本申请的第三方面的第二十三控制部件,提供了根据本申请第三方面的第二十四控制部件,其中,对于处于占用/一致状态的缓存单元,若缓存映射表被更新,且缓存映射表中没有任何条目记录的缓存描述符中记录了处于占用或一致状态的缓存单元的地址,则处于占用/一致状态的缓存单元的状态变为空闲状态。
根据本申请的第三方面的第一至二十三中任一项的控制部件,提供了根据本申请第三方面的第二十五控制部件,其中,缓存描述符记录了缓存单元的引用计数,引用计数为0指示缓存单元未被引用。
根据本申请的第三方面的第二十五控制部件,提供了根据本申请第三方面的第二十六控制部件,其中,响应于使用处于占用/不一致、占用/一致或淘汰状态的第一缓存单元响应读命令,使第一缓存单元的引用计数递增;响应于读命令处理完成,使第一缓存单元的引用计数递减。
根据本申请的第三方面的第二十五或二十六控制部件,提供了根据本申请第三方面的第二十七控制部件,其中,响应于缓存单元被填充数据,使缓存单元的引用计数递增;响应于淘汰过程开始,使缓存单元的引用计数递增;响应于淘汰过程完成,使缓存单元的引用计数递减。
根据本申请的第三方面的第二十三至二十七中任一项的控制部件,提供了根据本申请第三方面的第二十八控制部件,其中,对于处于占用/不一致、占用/一致或淘汰中状态的缓存单元,若缓存单元的引用计数非0,且由于缓存映射表被更新,若缓存映射表中没有任何条目记录的缓存描述符中记录了处于占用/不一致、占用/一致或淘汰中状态的缓存单元的地址,则将处于占用/不一致、占用/一致或淘汰中状态的缓存单元设置为解除绑定状态。
根据本申请的第三方面的第二十三至二十八控制部件,提供了根据本申请第三方面的第二十九控制部件,其中,处于解除绑定状态的缓存单元,响应于其引用计数递减到0,该缓存单元的状态变为空闲状态。
根据本申请的第三方面的第一至二十九中任一项的控制部件,提供了根据本申请第三方面的第三十控制部件,其中,缓存管理单元接收写命令,获取写命令所访问的第一逻辑地址,并指示缓存映射单元为第一逻辑地址分配缓存描述符;缓存管理单元将写命令的数据写入第一缓存单元,在缓存映射表中记录写命令的第一逻辑地址与第一缓存单元描述符的对应关系。
根据本申请的第三方面的第三十控制部件,提供了根据本申请第三方面的第三十一控制部件,其中,缓存管理单元判断写命令命中第二缓存单元,将第二缓存单元的数据复制到第一缓存单元。
根据本申请的第三方面的第三十控制部件,提供了根据本申请第三方面的第三十二控制部件,其中,缓存管理单元将第二缓存单元的有效数据复制到第一缓存单元,其中有效数据是第二缓存单元已被写入且未被所述写命令覆盖的数据。
根据本申请的第三方面的第三十一或三十二控制部件,提供了根据本申请第三方面的第三十三控制部件,其中,还包括,缓存管理单元判断写命令数据的大小同缓存单元的大小不同,则判断写命令是否命中第二缓存单元。
根据本申请的第三方面的第三十一至三十三中任一项的控制部件,提供了根据本申请第三方面的第三十四控制部件,其中,缓存管理单元判断写命令数据的大小同缓存单元的大小相同,则无须判断写命令是否命中第二缓存单元。
根据本申请的第三方面的第一至二十八中任一项的控制部件,提供了根据本申请第三方面的第三十五控制部件,其中,缓存管理单元获取读命令及读命令所访问的逻辑地址;缓存管理单元将获取的读命令的第二逻辑地址提供给缓存映射单元,缓存映射单元指示第二逻辑地址是否命中缓存单元;若第二逻辑地址命中缓存单元,缓存管理单元根据该逻辑地址从命中的缓存单元获取数据作为对该读命令的响应。
根据本申请的第三方面的第三十五控制部件,提供了根据本申请第三方面的第三十六控制部件,其中,若第二逻辑地址未命中缓存单元,缓存管理单元从非易失性存储器获取数据作为对该读命令的响应。
根据本申请的第三方面的第三十四五控制部件,提供了根据本申请第三方面的第三十七控制部件,其中,在从命中的缓存单元读出数据前,缓存管理单元使缓存描述符中记录的第二缓存单元的引用计数递增;在从命中的缓存单元读出数据完成后,缓存管理单元使缓存单元描述符中记录的第二缓存单元的引用计数递减。
根据本申请的第四方面,提供了根据本申请第四方面的第一存储设备,其中,包括控制部件、非易失性存储器和外部存储器,所述控制部件为根据本申请第三方面的第一至三十六控制部件。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请提供的现有技术中固态存储设备的内部结构示意图;
图2为本申请实施例的固态存储设备的内部结构示意图;
图3为本申请实施例的逻辑地址(LBA)与缓存单元的对应关系;
图4为本申请实施例的缓存单元的状态图;
图5为根据本申请实施例的处理写命令的流程图;
图6为根据本申请又一实施例的处理写命令的流程图;
图7为根据本申请实施例的处理读命令的流程图;
210—主机接口;220—介质接口;240—缓存映射单元;
242—缓存映射表;260—缓存管理单元;262—缓存描述符表;
270—后端处理单元。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2展示了根据本申请实施例的固态存储设备的框图。固态存储设备的控制部件包括主机接口210、缓存映射单元240、缓存管理单元260、后端处理单元270和用于访问NVM芯片105的介质接口220。
主机接口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维护缓存描述符表262(或缓存描述符池)。缓存描述符表260记录了多个缓存描述符。缓存描述符的一个或多个记录了对应的缓存单元在DRAM 110中的地址、缓存单元的状态和/或缓存单元中有效数据的位置。
可选地,缓存描述符记录了对应的缓存单元在NVRAM中的地址。在例如申请号为201810094060.2、申请日为2018年1月31日、发明名称为“非易失随机访问存储器及其提供方法”的中国专利申请中描述了NVRAM。
可选地,缓存描述符还记录在该缓存描述符上待处理的一个或多个任务(例如,用于将对应的缓存单元的数据写入NVM芯片的任务)。可选地,缓存描述符中还记录其所服务的IO命令的逻辑地址(记为LBA)。
每个缓存描述符对应至多一个缓存单元,通过在缓存描述符中记录缓存单元的地址而在缓存描述符与缓存单元之间建立对应关系。一个或多个缓存描述符没有对应的缓存单元。可选地,缓存描述符与缓存单元一一对应。
控制部件还耦合到外部存储器(例如,DRAM)110。
参看图2,外部存储器110的部分空间(缓存单元0、缓存单元1……缓存单元7)被用作缓存。缓存单元具有指定的大小。例如,缓存单元指定大小为512字节、1KB、2KB、4KB等。
缓存管理单元260管理缓存单元的分配和使用。
示例性地,对于写命令,在缓存管理单元260的指示下,将要写入的数据通过主机接口210从主机传输到外部存储器110中的缓存单元,以及还将缓存单元中的数据通过介质接口220传输到NVM芯片105。
具体地,缓存管理单元260将缓存单元中的数据经由后端处理单元270,通过介质接口220传输到NVM芯片105。
示例性地,对于读命令,CPU识别缓存单元是否命中,若缓存单元命中,在CPU的指示下,从缓存单元获取数据发送给主机。若缓存单元未命中,从NVM芯片105获取数据发送给主机。
后端处理单元270包括FTL模块,用于将IO命令的逻辑地址转换为物理地址。后端处理单元270还对NVM芯片及其上的数据实施管理,提供磨损均衡、垃圾回收等服务。
缓存映射单元240维护缓存映射表242。缓存映射表242包括多个条目,每个条目记录了存储设备的逻辑地址(LBA,Logical Block Address)与缓存描述符的对应关系。
示例性地,图2中的缓存映射表条目记录缓存描述符ID,根据缓存描述符ID唯一寻址缓存描述符。
缓存映射表242记录的逻辑地址(LBA)是存储设备的逻辑地址空间的子集,且缓存映射表242所能记录的逻辑地址(LBA)的数量或容量远小于存储设备的逻辑地址空间。
缓存映射表的条目中,逻辑地址(LBA)与缓存描述符没有固定的映射关系,而是缓存映射单元240根据需要,为逻辑地址(LBA)分配对应的缓存描述符,并将逻辑地址(LBA)与为其分配的缓存描述符的ID记录在缓存映射表242的条目中。
示例性地,缓存管理单元260响应于收到写命令,获取写命令所访问的逻辑地址(LBA),并指示缓存映射单元240为逻辑地址分配缓存描述符。
具体地,缓存映射单元240获取可用的缓存描述符,在缓存映射表242的条目中记录写命令的逻辑地址(LBA)与所获取的缓存描述符的对应关系,以完成为逻辑地址(LBA)分配缓存描述符。
缓存管理单元260还指示缓存映射单元240释放一个或多个已被分配的缓存描述符。被释放的缓存描述符可被分配给其他逻辑地址(LBA)。同一逻辑地址(LBA)在缓存映射表242至多出现一次,从而缓存映射表242中不会为同一LBA记录两个或更多的条目。
缓存映射表242所能记录的逻辑地址(LBA)的数量或缓存描述符的数量远小于存储设备的逻辑地址空间的逻辑地址(LBA)的数量,缓存映射单元240为每个收到的逻辑地址(LBA)分配缓存描述符,使得缓存管理单元260无须考虑缓存映射表242的容量,并体验到几乎数量无限的缓存描述符数量。
作为一个实施例,缓存描述符被用尽而没有可用的缓存描述符,或者缓存映射表被耗尽而无法添加新的条目时,缓存映射单元240延迟对缓存管理单元260的响应,并在缓存描述符或缓存映射表条目被释放后,将缓存管理单元260请求的逻辑地址(LBA)用新释放的缓存描述符或缓存映射表条目来响应。
理论上,在任意时刻,存储设备正在处理的IO命令(on the fly IO)的数量是有限的,缓存描述符表242只要能容纳大于这些正在处理的IO命令所对应的条目,就能随时响应缓存管理单元260的分配缓存描述符的请求。
缓存映射单元240还向缓存管理单元260指示指定的逻辑地址(LBA)在缓存映射表242中是否有记录。指定的逻辑地址(LBA)在缓存映射表242中有记录,意味着访问该逻辑地址(LBA)的IO命令可能命中了缓存。
示例性地,缓存单元的大小为4KB,逻辑地址(LBA)所指示的地址范围也是4KB,而IO命令访问的数据单元的粒度可能是逻辑地址(LBA)所指示的地址范围中的512字节,此时,IO命令的逻辑地址(LBA)在缓存映射表242中有记录,但未必意味着对应的缓存单元中记录了该IO命令要访问的数据。
图3展示了根据本申请实施例的逻辑地址(LBA)与缓存单元的对应关系。固态存储设备向主机展示了可访问的逻辑地址(LBA)。在图3中,沿逻辑地址递增的方向,逻辑地址空间被分为多个区域(302、304……324),每个区域所指示的地址范围是例如4KB。缓存管理单元260接收的IO命令中指示了要访问的逻辑地址(LBA)。
缓存映射单元240为逻辑地址(LBA)分配缓存描述符。对于指定的逻辑地址(LBA),缓存映射单元240可使用任意可用的缓存描述符分配给该逻辑地址(LBA)。
示例性地,缓存映射单元240寻找可用的缓存描述符,并在缓存映射表242的条目中记录该逻辑地址(LBA)与找到的可用缓存描述符的对应关系。
示例性地,将缓存描述符0分配给逻辑地址(LBA)302,而将缓存描述符1分配给逻辑地址(LBA)324。
示例性地,缓存映射单元240采用哈希表来提供缓存映射表242。哈希表以逻辑地址(LBA)为索引,而以分配给其的缓存描述符ID为同索引对应的值。
示例性地,缓存映射单元240采用KV存储来提供缓存映射表242。KV存储以逻辑地址(LBA)为键(K),而以分配给其的缓存描述符ID为同键(K)对应的值(V)。
缓存描述符同缓存单元是例如一一对应。缓存描述符中记录了同其对应的缓存单元的地址。
可选地,一个或多个缓存描述符不具有被分配的缓存单元。
可选地,固态存储设备向主机展示了可访问的物理地址。IO命令指示物理地址。以同图3所示的将逻辑地址区域分配给缓存描述符的相同或相似策略,将物理地址区域映射到缓存描述符。对于访问指示固态存储设备的物理地址的IO命令,可使用物理地址直接访问NVM芯片,而无须使用FTL表。可选地,对IO命令的物理地址进行映射,以获得映射后的地址,并用来访问NVM芯片。
图4展示了根据本申请实施例的缓存单元的状态图。缓存单元具有多个可能的状态。缓存描述符记录与其对应的缓存单元的状态。
参看图4,缓存单元的状态包括“空闲”、“占用/不一致”、“占用/一致”、“淘汰中”和/或“解除绑定”状态。
“空闲”状态指示的是该缓存单元未被使用,“空闲”状态的缓存单元中未缓存有效数据。当向“空闲”状态的缓存单元写入了数据,并且该缓存单元对应的缓存描述符被记录在缓存映射表之后,缓存单元变为“占用/不一致”状态,以指示缓存单元中已经存储了数据,并且该数据尚未被写入NVM芯片。
将“占用/不一致”状态的缓存单元所缓存的数据写入NVM芯片的过程称为“淘汰”。
响应于“淘汰”过程开始,缓存单元进入“淘汰中”状态。
响应于缓存单元“淘汰”过程的结束,缓存单元所缓存的数据被写入NVM芯片,缓存单元进入“占用/一致”状态,此时缓存单元中缓存的数据同NVM芯片中的数据一致,从而该缓存单元中缓存的数据可被丢弃。
处于“占用/一致”状态的缓存单元,由于缓存映射表被更新(记录了该缓存单元的地址的缓存描述符所在的缓存映射表条目被更新),若缓存映射表中没有任何条目记录的缓存描述符中记录了该缓存单元的地址,则该缓存单元的状态变为“空闲”状态。
缓存单元的描述符为缓存单元维护引用计数,其初始值为例如0,指示缓存单元未被引用。例如,对于处于“占用/不一致”、“占用/一致”或“淘汰中”状态的缓存单元,缓存管理单元260可使用这些缓存单元响应读命令,每开始响应一次读命令,使缓存单元的引用计数递增;响应于读命令处理完成,使缓存单元的引用计数递减。依然作为举例,响应于缓存单元被填充数据,使缓存单元的引用计数递增;响应于“淘汰”过程开始,使缓存单元的引用计数递增;响应于“淘汰”过程完成,使缓存单元的引用计数递减。
对于“占用/不一致”、“占用/一致”或“淘汰中”状态的缓存单元,若其引用计数非0,且由于缓存映射表被更新(记录了该缓存单元的地址的缓存描述符所在的缓存映射表条目被更新),若缓存映射表中没有任何条目记录的缓存描述符中记录了该缓存单元的地址,则将该缓存单元设置为处于“解除绑定”状态。
处于“解除绑定”状态的缓存单元,响应于其引用计数递减到0,该缓存单元的状态变为“空闲”状态。
可选地,缓存单元还具有其他状态。
图5是根据本申请实施例的处理写命令的流程图。
也参看图2,缓存管理单元260从主机接口210接收到写命令,获取写命令所访问的逻辑地址(LBA)(510)。
并指示缓存映射单元240为该逻辑地址分配缓存描述符。
无论缓存映射表242中是否已记录了同该逻辑地址对应的条目,缓存映射单元240都为该逻辑地址分配新的缓存描述符,新分配的描述符中记录了新分配的缓存单元的索引。以及若缓存映射表242中原本记录了同该逻辑地址对应的条目(也称为写命令命中了该条目对应的缓存单元),还将该条目从缓存映射表242中移除,从而该条目所记录的缓存单元的状态有可能变为“解除绑定”状态。
缓存管理单元260指示向新分配的缓存单元写入写命令所对应的数据(520)。
缓存管理单元260判断写命令是否命中缓存映射表条目对应的缓存单元(530)。
若写命令命中了缓存映射表条目对应的缓存单元,还将被命中缓存单元中未被写命令重写的数据复制到新分配的缓存单元(540)。例如,缓存单元的大小为4KB,写命令所命中的缓存单元的0-3KB地址空间被写入数据,写命令要向该缓存单元对应的逻辑地址的0-2KB范围写入数据,那么该缓存单元中未被该写命令重写的数据的位于逻辑地址范围2-3KB,将这部分地址空间的数据复制到新分配的单元。
无论写命令是否命中缓存单元,接下来,更新缓存映射表,在缓存映射表242中记录写命令的逻辑地址与新分配的缓存描述符的索引(<逻辑地址,新分配的缓存单元描述符>)(550)。以及在新分配的缓存描述符中记录其对应的缓存单元进入“占用/不一致”状态。
缓存管理单元260向主机指示写命令处理完成(560)。根据本申请的实施例,即使写命令要写入的数据小于NVM芯片写操作的最小写入量,也在将数据写入缓存单元后向主机指示写命令处理完成。由于省去了从NVM芯片读出数据以凑齐NVM芯片写操作的最小写入量的过程,降低了写命令的处理延迟,也使不同写命令的处理时间的差异变小,从而提高了写命令处理性能的确定性。
图6是根据本申请又一实施例的处理写命令的流程图。
缓存管理单元260从主机接口210接收到写命令,获取写命令所访问的逻辑地址(LBA),并指示缓存映射单元240为该逻辑地址分配缓存描述符(610)。
缓存管理单元260指示向新分配的缓存单元写入写命令所对应的数据(620)。
判断写命令要写入的数据同缓存单元的大小是否相同(例如,缓存单元的大小为4KB,则判断写命令要写入的数据的大小是否为4KB)(630)。
若写命令数据的大小同缓存单元的大小不同(630),则判断写命令是否命中缓存映射表条目对应的缓存单元(第二缓存单元)(640)。若写命令命中了缓存映射表条目对应的第二缓存单元,缓存管理单元260还将被命中的第二缓存单元中未被写命令重写的数据复制到新分配的缓存单元(650)。例如,缓存单元的大小为4KB,写命令所命中的缓存单元的0-3KB地址空间被写入数据,写命令要向该缓存单元对应的逻辑地址的0-2KB范围写入数据,那么该缓存单元中未被该写命令重写的数据的位于逻辑地址范围2-3KB,将这部分地址空间的数据复制到新分配的单元。
若写命令要写入的数据的大小同缓存单元的大小相同(630),则无须判断写命令是否命中第二缓存单元,而转向步骤660。
无论写命令是否命中缓存单元,接下来,更新缓存映射表,在缓存映射表242中记录写命令的逻辑地址与新分配的缓存描述符的索引(<逻辑地址,新分配的缓存单元描述符>)(660)。以及在新分配的缓存描述符中记录其对应的缓存单元进入“占用/不一致”状态。
向主机指示写命令处理完成(670)。
图7是根据本申请实施例的处理读命令的流程图。
缓存管理单元260从主机接口210收到读命令,获取读命令所访问的逻辑地址(LBA)(710)。
缓存管理单元260判断读命令是否命中缓存单元(720)。
缓存管理单元260将读命令访问的逻辑地址提供给缓存映射单元240,以查询该逻辑地址是否命中了缓存单元。缓存映射单元240依据缓存映射表242中是否有条目记录了该逻辑地址,或者记录了该逻辑地址的条目是否具有有效的缓存描述符,而识别该逻辑地址是否命中缓存单元。
若该逻辑地址未命中缓存单元,缓存管理单元260将读命令转交给后端处理单元270处理(730)。
若该逻辑地址命中了缓存单元,缓存管理单元260依据该逻辑地址访从被命中的缓存单元获取数据作为对该读命令的响应(740)。可选地,在从被命中的缓存单元读出数据前,还将缓存单元描述符中记录的该缓存单元的引用计数递增(750);以及在从被命中的缓存单元读出数据完成后,还将缓存单元描述符中记录的该缓存单元的引用计数递减(760)。
本申请实施例还提供一种包括程序代码的程序,当被载入主机并在主机上执行时,所述程序使主机的处理器执行上面提供的根据本申请实施例的方法之一。
应该理解,框图和流程图的每个框以及框图和流程图的框的组合可以分别由包括计算机程序指令的各种装置来实施。这些计算机程序指令可以加载到通用计算机、专用计算机或其他可编程数据控制设备上以产生机器,从而在计算机或其他可编程数据控制设备上执行的指令创建了用于实现一个或多个流程图框中指定的功能的装置。
这些计算机程序指令还可以存储在可以引导计算机或其他可编程数据控制设备的计算机可读存储器中从而以特定方式起作用,从而能够利用存储在计算机可读存储器中的指令来制造包括用于实现一个或多个流程图框中所指定功能的计算机可读指令的制品。计算机程序指令还可以加载到计算机或其他可编程数据控制设备上以使得在计算机或其他可编程数据控制设备上执行一系列的操作操作,从而产生计算机实现的过程,进而在计算机或其他可编程数据控制设备上执行的指令提供了用于实现一个或多个流程图框中所指定功能的操作。
因而,框图和流程图的框支持用于执行指定功能的装置的组合、用于执行指定功能的操作的组合和用于执行指定功能的程序指令装置的组合。还应该理解,框图和流程图的每个框以及框图和流程图的框的组合可以由执行指定功能或操作的、基于硬件的专用计算机系统实现,或由专用硬件和计算机指令的组合实现。
虽然当前发明参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
这些实施方式所涉及的、从上面描述和相关联的附图中呈现的教导获益的领域中的技术人员将认识到这里记载的本申请的很多修改和其他实施方式。因此,应该理解,本申请不限于公开的具体实施方式,旨在将修改和其他实施方式包括在所附权利要求书的范围内。尽管在这里采用了特定的术语,但是仅在一般意义和描述意义上使用它们并且不是为了限制的目的而使用。
Claims (10)
1.一种写命令处理方法,其特征在于,包括如下步骤:
获取写命令,为写命令访问的第一逻辑地址分配第一缓存单元;
将写命令的数据写入第一缓存单元;
则在缓存映射表中记录写命令的第一逻辑地址与第一缓存单元描述符的对应关系;
向主机指示写命令处理完成。
2.根据权利要求1的写命令处理方法,其特征在于,若写命令命中第二缓存单元,还将第二缓存单元的数据复制到第一缓存单元。
3.根据权利要求2的写命令处理方法,其特征在于,将第二缓存单元的有效数据复制到第一缓存单元,其中有效数据是第二缓存单元已被写入且未被所述写命令所覆盖的数据。
4.如权利要求2或3的写命令处理方法,其特征在于,若写命令数据的大小同缓存单元的大小相同,则无须判断写命令是否命中第二缓存单元。
5.一种读命令处理方法,其特征在于,包括如下步骤:
获取读命令及读命令所访问的第二逻辑地址;
判断读命令是否命中缓存单元;
若命中缓存单元,根据第二逻辑地址从命中的缓存单元获取数据作为对该读命令的响应。
6.一种控制部件,其特征在于,包括主机接口、缓存映射单元、缓存管理单元和介质接口;
主机接口用于同主机交换命令与数据;
缓存管理单元与主机接口耦合,用于管理外部存储器中的缓存单元;
缓存映射单元与缓存管理单元耦合,用于根据缓存管理单元的指示为IO命令的逻辑地址分配缓存描述符;
介质接口与缓存管理单元耦合,用于将从缓存单元接收的数据发送给非易失性存储器芯片,和/或从非易失性存储器芯片中读出数据。
7.如权利要求6的控制部件,其特征在于,包括缓存映射表,缓存映射表与缓存映射单元耦合;缓存映射单元维护缓存映射表,缓存映射表包括条目,条目记录了存储设备的逻辑地址与缓存描述符的对应关系。
8.如权利要求6的控制部件,其特征在于,IO命令指示物理地址,缓存管理单元向缓存映射单元指示物理地址,缓存映射单元为IO命令指示的物理地址分配缓存描述符。
9.如权利要求6或7的控制部件,其特征在于,缓存单元具有多个可能的状态,状态包括空闲、占用/不一致、占用/一致、淘汰中和/或解除绑定状态;
空闲状态指示缓存单元未被使用,空闲状态的缓存单元中未缓存有效数据;
占用/不一致状态指示缓存单元中已经存储了数据,并且该数据未被写入非易失性存储器芯片中;
响应于淘汰过程开始,缓存单元进入淘汰中状态,其中淘汰指示将占用不一致状态的缓存单元所缓存的数据写入非易失性存储器芯片的过程;
占用/一致状态指示淘汰过程已结束,缓存单元所缓存的数据被写入非易失性存储器芯片;
解除绑定状态指示缓存映射表中没有任何条目记录的缓存描述符中记录了该缓存单元的地址。
10.一种存储设备,其特征在于,包括控制部件、非易失性存储器和外部存储器,所述控制部件为根据权利要求6-9的控制部件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810264435.5A CN110321057A (zh) | 2018-03-28 | 2018-03-28 | 具有增强io性能确定性的缓存的存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810264435.5A CN110321057A (zh) | 2018-03-28 | 2018-03-28 | 具有增强io性能确定性的缓存的存储设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110321057A true CN110321057A (zh) | 2019-10-11 |
Family
ID=68109985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810264435.5A Pending CN110321057A (zh) | 2018-03-28 | 2018-03-28 | 具有增强io性能确定性的缓存的存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110321057A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765055A (zh) * | 2019-11-01 | 2021-05-07 | 北京忆芯科技有限公司 | 存储设备的控制部件 |
CN112988623A (zh) * | 2019-12-17 | 2021-06-18 | 北京忆芯科技有限公司 | 加速sgl处理的方法与存储设备 |
CN113986137A (zh) * | 2021-10-28 | 2022-01-28 | 英韧科技(上海)有限公司 | 存储装置和存储系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576333A (zh) * | 2009-10-05 | 2012-07-11 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
CN102693198A (zh) * | 2012-05-12 | 2012-09-26 | 北京忆恒创源科技有限公司 | Dma传输方法及系统 |
CN104166634A (zh) * | 2014-08-12 | 2014-11-26 | 华中科技大学 | 一种固态盘系统中的映射表缓存管理方法 |
US20160266793A1 (en) * | 2015-03-12 | 2016-09-15 | Kabushiki Kaisha Toshiba | Memory system |
CN107797760A (zh) * | 2016-09-05 | 2018-03-13 | 北京忆恒创源科技有限公司 | 基于缓存优化写命令处理的方法、装置与驱动器 |
-
2018
- 2018-03-28 CN CN201810264435.5A patent/CN110321057A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576333A (zh) * | 2009-10-05 | 2012-07-11 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
CN102693198A (zh) * | 2012-05-12 | 2012-09-26 | 北京忆恒创源科技有限公司 | Dma传输方法及系统 |
CN104166634A (zh) * | 2014-08-12 | 2014-11-26 | 华中科技大学 | 一种固态盘系统中的映射表缓存管理方法 |
US20160266793A1 (en) * | 2015-03-12 | 2016-09-15 | Kabushiki Kaisha Toshiba | Memory system |
CN107797760A (zh) * | 2016-09-05 | 2018-03-13 | 北京忆恒创源科技有限公司 | 基于缓存优化写命令处理的方法、装置与驱动器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765055A (zh) * | 2019-11-01 | 2021-05-07 | 北京忆芯科技有限公司 | 存储设备的控制部件 |
CN112988623A (zh) * | 2019-12-17 | 2021-06-18 | 北京忆芯科技有限公司 | 加速sgl处理的方法与存储设备 |
CN113986137A (zh) * | 2021-10-28 | 2022-01-28 | 英韧科技(上海)有限公司 | 存储装置和存储系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8321639B2 (en) | Command tracking for direct access block storage devices | |
JP7010667B2 (ja) | メモリシステムおよび制御方法 | |
US10296250B2 (en) | Method and apparatus for improving performance of sequential logging in a storage device | |
CN108595349B (zh) | 大容量存储设备的地址转换方法与装置 | |
CN110389709A (zh) | 顺序流检测与数据预读 | |
CN109164976A (zh) | 利用写缓存优化存储设备性能 | |
US11269783B2 (en) | Operating method for data storage device | |
WO2016123748A1 (zh) | 一种闪存存储系统及其读写、删除方法 | |
CN110321057A (zh) | 具有增强io性能确定性的缓存的存储设备 | |
CN108664213A (zh) | 基于分布式缓存的原子写命令处理方法与固态存储设备 | |
CN109144885A (zh) | 固态存储设备的垃圾回收方法与固态存储设备 | |
KR20150142583A (ko) | 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법 | |
CN108228483A (zh) | 处理原子写命令的方法和设备 | |
CN109947669A (zh) | Kv存储设备的地址转换方法与系统 | |
CN109213423A (zh) | 基于地址屏障无锁处理并发io命令 | |
CN109840048A (zh) | 存储命令处理方法及其存储设备 | |
CN115048034A (zh) | 用于sgl的存储空间映射方法及其装置 | |
CN110515861A (zh) | 处理刷写命令的存储设备及其方法 | |
CN109213425A (zh) | 利用分布式缓存在固态存储设备中处理原子命令 | |
CN108664212A (zh) | 固态存储设备的分布式缓存 | |
CN108664214A (zh) | 用于固态存储设备的分布式缓存的掉电处理方法与装置 | |
CN111290975A (zh) | 使用统一缓存处理读命令与预读命令的方法及其存储设备 | |
CN111290974A (zh) | 用于存储设备的缓存淘汰方法与存储设备 | |
US20230120184A1 (en) | Systems, methods, and devices for ordered access of data in block modified memory | |
CN106205707A (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 |