CN109101185A - 固态存储设备及其写命令和读命令处理方法 - Google Patents

固态存储设备及其写命令和读命令处理方法 Download PDF

Info

Publication number
CN109101185A
CN109101185A CN201710470720.8A CN201710470720A CN109101185A CN 109101185 A CN109101185 A CN 109101185A CN 201710470720 A CN201710470720 A CN 201710470720A CN 109101185 A CN109101185 A CN 109101185A
Authority
CN
China
Prior art keywords
subcommand
data
physical address
read command
continuous
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
CN201710470720.8A
Other languages
English (en)
Other versions
CN109101185B (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.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze 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 Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Priority to CN201710470720.8A priority Critical patent/CN109101185B/zh
Publication of CN109101185A publication Critical patent/CN109101185A/zh
Application granted granted Critical
Publication of CN109101185B publication Critical patent/CN109101185B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请公开了固态存储设备及其写命令和读命令处理方法,写命令处理方法包括:接收写命令;将写命令拆分为多个子命令;为单个的子命令或连续的两个或更多子命令分配连续的物理地址;将子命令对应的数据写入为子命令分配的物理地址。本申请的实施例将写命令拆分为子命令,并为单个或多个子命令分配连续的物理地址,以便使逻辑地址连续的数据放置在连续的物理地址上,以充分利用存储介质的读写能力,提高了固态存储设备的读写性能。

Description

固态存储设备及其写命令和读命令处理方法
技术领域
本申请涉及存储设备技术领域,尤其涉及固态存储设备及其写命令和读命令处理方法。
背景技术
参看图1,展示了存储设备100的框图。存储设备100同主机相耦合,用于为主机提供存储能力。主机与存储设备100之间可通过多种方式相耦合,耦合方式包括但不限于例如SATA、IDE、USB、PCIE、NVMe(NVM Express)、SAS、以太网、光纤通道、无线通信网络等。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备100包括接口110、控制部件120、一个或多个NVM(非易失存储器,Non-Volatile Memory)芯片130,可选地,存储设备100还包括固件存储器140。接口110可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件120用于控制在接口110、NVM芯片130以及固件存储器140之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址的映射、擦除均衡、坏块管理等。可通过软件、硬件、固件或其组合的多种方式实现控制部件120。控制部件120可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application Specific Integrated Circuit,应用专用集成电路)或者其组合的形式。控制部件120也可以包括处理器或者控制器。控制部件120在运行时从固件存储器140加载固件。固件存储器140可以是NOR闪存、ROM、EEPROM,也可以是NVM芯片130的部分。NAND闪存、相变存储器、FeRAM、MRAM等是常见的NVM。
存储器目标(Target)是NAND闪存封装内的共享芯片使能(CE,Chip En able)信号的一个或多个逻辑单元(Logic Unit)。每个逻辑单元具有逻辑单元号(LUN,Logic UnitNumber)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/Documen ts/Products/Other%20Documents/ONFI3_0Gold.ashx获得的“Open NAND Flash Interface Specification(Revision 3.0)”中,提供了关于目标(target)、逻辑单元、LUN、平面(Plane)的含义,其为现有技术的一部分。
存储介质上通常按页来存储和读取数据。而按块来擦除数据。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。物理页中可以包括多个数据段,数据段具有指定的尺寸,例如4096或4416字节。
在固态存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在现有技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。
FTL表包括多个FTL表条目(或称表项)。在一个例子中,每个FTL表条目中记录了一个逻辑页地址与一个物理页的对应关系。在另一个例子中,每个FTL表条目中记录了连续的多个逻辑页地址与连续的多个物理页的对应关系。在又一个例子中,每个FTL表条目中记录了逻辑块地址与物理块地址的对应关系。在依然又一个实施例中,FTL表中记录逻辑块地址与物理块地址的映射关系,和/或逻辑页地址与物理页地址的映射关系。
在处理来自主机的读命令时,固态存储设备利用读命令中携带的逻辑地址从FTL表中获得对应的物理地址,并依据物理地址向NVM芯片发出读请求,并接收NVM芯片响应于读请求输出的数据。在处理来自主机的写命令时,固态存储设备为写命令分配物理地址,在FTL表中记录写命令的逻辑地址与分配的物理地址的对应关系,并依据分配的物理地址向NVM芯片发出写请求。
一些固态存储设备中还提供备用电源,当发生意外断电时,由备用电源向存储设备提供临时的电能,用于备份FTL表等元数据以及处理尚未完成的命令。备用电源包括超级电容、铝电容、钽聚合物电容、锂电池等。将要备份的数据写入固态存储设备提供的日志区。固态存储设备再次上电时,从日志区恢复所备份的元数据。
将FTL表的一个条目的物理地址对应的数据部分称为数据帧。数据帧的大小例如是4K字节。
主机发送给固态存储设备的IO命令的最小可寻址单元称为数据单元,数据单元的大小是例如512字节或1K字节。在一条IO命令中可访问多个(例如,1-256)数据单元。
固态存储设备采用NVM芯片作为存储介质。NVM芯片的存储单元有多种类型,例如,SLC(Single Level Cell,单级存储单元)、MLC(Multiple Level Cell,多级存储单元)与TLC(Triple Level Cell,三级存储单元)等。NVM芯片的物理页包括不同类型,例如,SLC页、MLC MSB(Most Significant Bit)页、MLC LSB(Least Significant Bit)页、TLC MSB(MostSignificant Bit)页、TLC(Triple Level Cell)CSB(Central Significant Bit)页、TLCLSB(Least Significant Bit)页。MLC MSB页的每个比特存储在MLC存储单元的最高位,MLCLSB页的每个比特存储在MLC存储单元的最低位,TLC MSB页的每个比特存储在TLC存储单元的最高位,TLC CSB页的每个比特存储在TLC存储单元的中间位,TLC LSB页的每个比特存储在TLC存储单元的最低位。一些NVM芯片还将同一存储单元上的两个或更多物理页的写入操作组合在一起。在固态存储设备中,依据物理地址可识别所访问的NVM芯片的物理页的类型。
发明内容
物理页的数据段、FTL表条目对应的数据帧与主机发送的IO命令访问的数据单元具有不同的大小。现在技术中,将IO命令拆分为多个子命令,每个子命令访问的数据大小为FTL表条目对应的数据帧大小,将多个FTL表数据帧组合为物理页大小并向物理页写入数据,或者根据数据帧从物理页读出数据。
本申请的实施例解决了按数据帧读写物理页的方法无法充分利用存储介质的读写能力,进而限制了固态存储设备的读写性能的技术问题。
本申请的目的在于提供固态存储设备及其写命令和读命令处理方法,以充分利用存储介质的读写能力,提高固态存储设备的读写性能。
根据本申请的第一方面,提供了根据本申请第一方面的第一写命令处理方法,包括:
接收写命令;
将写命令拆分为多个子命令;
为单个的子命令或连续的两个或更多子命令分配连续的物理地址;
将子命令对应的数据写入为子命令分配的物理地址。
根据本申请的第一方面的第一写命令处理方法,提供了根据本申请第一方面的第二写命令处理方法,其中,子命令访问的逻辑地址范围由一个或多个数据帧提供;其中物理地址指示数据帧在非易失性存储器中的存储位置。
根据本申请的第一方面的第二写命令处理方法,提供了根据本申请第一方面的第三写命令处理方法,其中,子命令访问的数据量小于或等于非易失性存储器的物理页所能容纳的数据量,物理页容纳至少一个数据帧。
根据本申请的第一方面的第二写命令处理方法,提供了根据本申请第一方面的第四写命令处理方法,其中,子命令访问的数据量小于非易失性存储器的物理页所能容纳的数据量,物理页容纳至少两个数据帧。
根据本申请的第一方面的第一至第四写命令处理方法之一,提供了根据本申请第一方面的第五写命令处理方法,其中,连续的物理地址指示非易失性存储器的同一个物理页,连续的两个或多个子命令访问的数据量小于或等于物理页所能容纳的数据量。
根据本申请的第一方面的第一至第五写命令处理方法之一,提供了根据本申请第一方面的第六写命令处理方法,其中,子命令访问的数据量小于或等于非易失性存储器芯片的单一的读命令所能读取的数据量。
根据本申请的第一方面的第六写命令处理方法,提供了根据本申请第一方面的第七写命令处理方法,其中,连续的两个或多个子命令访问的数据量小于或等于非易失性存储器芯片的单一的读命令所能读取的数据量。
根据本申请的第一方面的第一至第七写命令处理方法之一,提供了根据本申请第一方面的第八写命令处理方法,其中,子命令的逻辑地址按闪存转换层表指示的逻辑地址的边界对齐。
根据本申请的第一方面的第一至第八写命令处理方法之一,提供了根据本申请第一方面的第九写命令处理方法,其中,写命令的子命令数量被记录,方法还包括:
响应于每个子命令完成,将子命令数量递减;
响应于子命令数量为0,识别出写命令被处理完成。
根据本申请的第一方面的第一至第九写命令处理方法之一,提供了根据本申请第一方面的第十写命令处理方法,其中,还包括:
为子命令分配存储空间,用于接收写命令对应的数据;
响应于将子命令对应的数据被写入非易失性存储器,释放子命令对应的数据所占用的存储空间。
根据本申请的第一方面的第一至第十写命令处理方法之一,提供了根据本申请第一方面的第十一写命令处理方法,其中,
第一中央处理器接收写命令;
第一中央处理器将写命令拆分为多个子命令;
第二中央处理器为单个的子命令或连续的两个或更多子命令分配连续的物理地址;
第二中央处理器指示将子命令对应的数据写入为子命令分配的物理地址。
根据本申请的第一方面的第十一写命令处理方法,提供了根据本申请第一方面的第十二写命令处理方法,其中,第二中央处理器指示介质接口控制器将子命令对应的数据写入为子命令分配的物理地址。
根据本申请的第一方面的第十一或十二写命令处理方法,提供了根据本申请第一方面的第十三写命令处理方法,其中,还包括:第一中央处理器识别写命令被处理完成。
根据本申请的第一方面的第十一至第十三写命令处理方法之一,提供了根据本申请第一方面的第十四写命令处理方法,其中,还包括:
第一中央处理器为写命令或子命令分配存储空间;
第二中央处理器释放写命令或子命令访问的数据所占用的存储空间。
根据本申请的第一方面的第十二或十三写命令处理方法,提供了根据本申请第一方面的第十五写命令处理方法,其中,还包括:
第一中央处理器为写命令或子命令分配存储空间;
介质接口控制器释放写命令或子命令访问的数据所占用的存储空间。
根据本申请的第一方面的第一写命令处理方法,提供了根据本申请第一方面的第十六写命令处理方法,其中,多个物理页形成页条带,页条带包括用于存储用户数据的物理页和用于存储校验数据的物理页,依据用于存储用户数据的物理页为子命令分配物理地址。
根据本申请的第一方面的第十六写命令处理方法,提供了根据本申请第一方面的第十七写命令处理方法,其中,包括:当页条带中仅剩一个数据帧未被分配时,向尚未被分配的数据帧填充数据,并根据填充数据生成校验数据,将校验数据写入用于存储校验数据的物理页。
根据本申请的第一方面的第十六写命令处理方法,提供了根据本申请第一方面的第十八写命令处理方法,其中,若在指定时间内未生成页条带的校验数据,则向页条带中尚未被分配的所有数据帧填充数据。
根据本申请的第一方面的第十六写命令处理方法,提供了根据本申请第一方面的第十九写命令处理方法,其中,若接收到关闭页条带的指示,则向页条带中尚未被分配的所有数据帧填充数据。
根据本申请的第一方面的第十六写命令处理方法,提供了根据本申请第一方面的第二十写命令处理方法,其中,若页条带中仅剩一个物理页尚未被分配,则向尚未被分配的物理页填充数据。
根据本申请的第二方面,提供了根据本申请第二方面的第一读命令处理方法,包括:
接收读命令;
将读命令拆分为多个子命令;
获取多个子命令所访问的物理地址;
若两个或更多子命令的物理地址连续,则组合物理地址连续的两个或多个子命令;
依据连续的物理地址读取数据。
根据本申请的第二方面的第一读命令处理方法,提供了根据本申请第二方面的第二读命令处理方法,其中,子命令访问的逻辑地址范围由一个数据帧提供;其中物理地址指示数据帧在非易失性存储器中的存储位置。
根据本申请的第二方面的第二读命令处理方法,提供了根据本申请第二方面的第三读命令处理方法,其中,被组合的两个或多个子命令访问的数据量小于或等于物理页所能容纳的数据量。
根据本申请的第二方面的第二读命令处理方法,提供了根据本申请第二方面的第四读命令处理方法,其中,被组合的两个或多个子命令访问的数据量小于或等于非易失性存储器芯片的单一的读命令所能读取的数据量。
根据本申请的第二方面的第一至第四读命令处理方法之一,提供了根据本申请第二方面的第五读命令处理方法,其中,若相邻的子命令访问的物理地址不连续,或者若读命令指示无须组合子命令,或者若读命令只包含一个未被处理的子命令,则依据子命令所访问的物理地址读取数据。
根据本申请的第二方面的第一至第五读命令处理方法之一,提供了根据本申请第二方面的第六读命令处理方法,其中,若请求两个或多个子命令的物理地址,在指定时间内至少一个子命令的请求失败,则依据请求成功的子命令所访问的物理地址读取数据。
根据本申请的第二方面的第一至第六读命令处理方法之一,提供了根据本申请第二方面的第七读命令处理方法,其中,若请求两个子命令的物理地址均成功,且两个子命令的物理地址连续,则组合两个子命令,形成连续的物理地址,并依据连续的物理地址以非易失性存储器的单一的读命令读取数据。
根据本申请的第二方面的第一至第七读命令处理方法之一,提供了根据本申请第二方面的第八读命令处理方法,其中,其中读命令的子命令数量被记录,方法还包括:
响应于每个子命令完成,将子命令的数量递减;
响应于子命令的数量为零,识别出读命令被处理完成。
根据本申请的第二方面的第一至第八读命令处理方法之一,提供了根据本申请第二方面的第九读命令处理方法,其中,还包括:
为子命令分配存储空间,用于接收读命令对应的数据;
响应于子命令对应的数据被提供给主机,释放子命令对应的数据所占用的存储空间。
根据本申请的第二方面的第一至第九读命令处理方法之一,提供了根据本申请第二方面的第十读命令处理方法,其中,包括:
第一中央处理器接收读命令,并将读命令发送给第二中央处理器;
第二中央处理器将读命令拆分为多个子命令;
第二中央处理器获取子命令所访问的物理地址;
若两个或更多子命令所访问的物理地址连续,则第二中央处理器组合物理地址连续的两个或多个子命令;
第二中央处理器依据连续的物理地址读取数据。
根据本申请的第二方面的第十读命令处理方法,提供了根据本申请第二方面的第十一读命令处理方法,其中,第二中央处理器指示介质接口控制器依据连续的物理地址读取数据
根据本申请的第二方面的第十或第十一读命令处理方法,提供了根据本申请第二方面的第十二读命令处理方法,其中,第一中央处理器识别读指令被处理完成。
根据本申请的第二方面的第十至第十二读命令处理方法,提供了根据本申请第二方面的第十三读命令处理方法,其中,还包括:
第二中央处理器为读命令或子命令分配存储空间;
第一中央处理器释放读命令或子命令访问的数据所占用的存储空间。
根据本申请的第二方面的第十三读命令处理方法,提供了根据本申请第二方面的第十四读命令处理方法,其中,介质接口控制器为读命令或子命令分配存储空间。
根据本申请的第三方面,提供了根据本申请第三方面的固态存储设备,包括控制部件和NVM芯片;该控制部件用于执行上述的读命令处理方法和写命令处理方法。
根据本申请的第四方面,提供了根据本申请第四方面的包括程序的存储介质,当该程序被载入处理器执行时,使得该处理器执行上述的读命令处理方法和写命令处理方法。
本申请的技术方案获得的有益效果如下:
(1)本申请的实施例将写命令拆分为子命令,并为单个或连续的多个子命令分配连续的物理地址,以便使逻辑地址连续的数据放置在连续的物理地址上,以充分利用存储介质的读写能力,提高了固态存储设备的读写性能。
(2)本申请的实施例利用至少两个中央处理器协同合作来处理写命令,减轻了中央处理器的负担,提高了写命令处理速度;利用不同的中央处理器进行存储资源的分配和释放,缩短了存储资源被占用的时间,提高了存储资源的利用率。
(3)本申请的实施例将读命令拆分为多个子命令,并将物理地址连续的子命令组合起来,利用单一读命令从连续的物理地址读取数据,相对于通过多个读命令分别读出多个数据帧中的数据,利用单一读命令读出多个数据帧中的数据所需的时间明显缩短,提高了固态存储设备的读写性能。
(4)本申请的实施例利用至少两个中央处理器协同合作来处理读命令,减轻了中央处理器的负担,提高了读命令处理速度;利用不同的中央处理器进行存储资源的分配和释放,缩短了存储资源被占用的时间,提高了存储资源的利用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为存储设备的框图。
图2为根据本申请实施例的数据在存储介质上的组织方式;
图3为根据本申请实施例一的写命令处理方法的流程图;
图4为根据本申请实施例二的写命令处理方法的流程图;
图5为根据本申请实施例三的数据在存储介质上的组织方式;
图6为根据本申请实施例四的读命令处理方法的流程图;以及
图7为根据本申请实施例五的读命令处理方法的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2为根据本申请实施例的数据在存储介质上的组织方式。作为举例,存储介质为NVM芯片。如图2所示,NVM芯片提供了多个物理页,包括MLC LSB页0、MLC MSB页0、MLC LSB页1、MLC MSB页1、MLC LSB页2、MLC MSB页2、MLC LSB页3与MLC MSB页3。在一些物理页上已写入了数据。
图2中,用“DF”指示数据帧,数据帧的位置指示了数据帧在物理页上的排列。例如,数据帧DF0与数据帧DF1在图2中的位置相邻,意味着数据帧DF0与数据帧DF1具有相邻的物理地址。物理地址指示数据帧在非易失性存储器中的存储位置。而数据帧DF0与数据帧DF1的编号相邻,意味着在为数据帧分配物理地址时,同时或连续地为数据帧DF0与数据帧DF1分配物理地址。类似地,数据帧DF6与数据帧DF7具有相邻的物理地址,在分配物理地址时,同时或连续地为数据帧DF6与数据帧DF7分配物理地址。
MLC MSB页2最后的数据帧DU指示该数据帧为填充的数据,而非用户数据。在FTL表中,例如,没有任何表条目的物理地址指示了MLC MSB页2的数据帧DU。MLC LSB页2的数据帧DF10同填充数据帧DU相邻,意味着在通过FTL表分配物理地址时,仅为数据帧DF10分配了物理地址,并且由于例如缺乏更多用户要写入的数据,而生成了填充数据帧DU,用来填满MLCLSB页2。
实施例一
图3为本申请实施例一提供的写命令处理方法的流程图。如图3所示,写命令处理方法包括如下步骤:
响应于接收写命令,将写命令拆分为多个子命令(310)。
为单个子命令或连续的两个或更多子命令分配连续的物理地址(320)。
将子命令对应的数据写入为子命令分配的物理地址(330)。
步骤310中,按写命令的逻辑地址范围,将写命令分为一个或多个子命令。
作为一个实施例,写命令访问的逻辑地址范围小于一个数据帧所指示的逻辑地址范围,在这种情况下,步骤320中,分配一个数据帧即可容纳该写命令。例如,数据帧大小为4KB,而写命令向该4KB范围中的2KB写入数据。
作为另一个实施例,写命令访问的逻辑地址范围大于一个数据帧的逻辑地址范围。该实施例中,步骤320中,将写命令拆分为多个子命令时,作为一个例子,每个子命令所访问的逻辑地址范围不超过一个数据帧所对应的逻辑地址范围,也就是说,子命令访问的逻辑地址范围由一个数据帧提供。可选地,写命令所对应的逻辑地址空间可以连续,也可以不连续。子命令的逻辑地址空间可以连续,也可以不连续。
作为一个例子,写命令访问1KB-10KB的逻辑地址空间,而每个数据帧对应4KB的地址空间。将写命令拆分成子命令S1、子命令S2和子命令S3。子命令S1访问1KB-3KB的大小为3KB逻辑地址范围,子命令S2访问4KB-7KB的大小为4KB的逻辑地址范围,子命令S3访问8KB-10KB的大小为3KB的地址范围。
作为另一个例子,写命令访问2-9KB的LBA范围,将写命令拆分为3个子命令。为第一子命令分配1个数据帧,用于容纳2-3KB LBA范围的数据,为第二子命令分配1个数据帧,用于容纳4-7KB LBA范围的数据,为第三子命令分配1个数据帧,用于容纳8-9KB LBA范围的数据。
优选地,子命令的逻辑地址按闪存转换层(FTL)表指示的逻辑地址的边界对齐。例如,数据帧所对应的逻辑地址空间大小为4KB,数据帧所对应的逻辑地址范围均按4KB对齐,即数据帧的起始地址位于4KB的整数倍地址处,例如,0、4KB、8KB。将不同子命令的逻辑地址边界对齐,方便准确快速地将完成写命令。
优选地,子命令访问的数据量小于或等于NVM芯片的物理页所能容纳的数据量,该物理页容纳至少一个数据帧。
在该实施例中,根据子命令访问的LBA范围,将连续的尚未被写入数据的物理地址分配给连续的两个或更多个子命令。子命令连续,指子命令访问的逻辑地址连续,和/或子命令由同一写命令拆分得到。
例如,为上述的子命令S1分配数据帧DF0(也参看图2),为上述的子命令S2分配数据帧DF1,为上述的子命令S3分配数据帧DF6。又例如,为上述的第一子命令分配数据帧DF4,为上述的第二子命令分配数据帧DF5,为上述的第三子命令分配数据帧DF8。
优选地,连续的两个或更多个子命令访问的数据量不超过NVM芯片的物理页所能容纳的数据量,物理页容纳至少两个数据帧。也就是说,为连续的子命令分配的连续的物理地址指示NVM芯片的同一个物理页,使得写命令不跨越不同的物理页。
可选地,连续的两个或多个子命令访问的数据量小于或等于NVM芯片的单一的读命令所能读取的数据量,或NVM芯片的单一的读命令所能读取的最大数据量,使得连续的子命令可通过单一的读命令一次性读出。
作为又一个实施例,写命令访问的逻辑地址范围大于一个数据帧的逻辑地址范围。该实施例中,将写命令拆分为多个子命令时,子命令访问的逻辑地址范围由多个(两个或更多个)数据帧提供,例如子命令访问的逻辑地址范围为数据帧的逻辑地址范围的整数倍。
例如,写命令访问0-10KB的LBA范围,将写命令拆分为2个子命令,子命令1访问0-7KB LBA范围的数据,子命令2访问8-10KB LBA范围。由对应0-3KB以及4-7KB LBA范围的两个数据帧容纳子命令1的数据,由对应8-11KB LBA范围的数据帧容纳子命令2的数据。又例如,写命令访问1-20KB的LBA范围,将写命令拆分为2个子命令,子命令3访问1-7KB LBA范围的数据,子命令4访问8-15KB LBA范围,子命令5访问16-20KB LBA范围。由对应0-3KB以及4-7KB LBA范围的两个数据帧容纳子命令3的数据,由对应8-11KB以及12-15KB LBA范围的两个数据帧容纳子命令4的数据,由对应16KB-19KB以及20KB-23KB LBA范围的两个数据帧容纳子命令5的数据。
优选地,子命令访问的数据量小于NVM芯片的物理页所能容纳的数据量,该物理页容纳至少两个数据帧。
在该实施例中,在步骤320中,为子命令分配连续的物理地址。
例如,请见图2,为上述的子命令1分配连续的数据帧DF0与数据帧DF1的物理地址,为上述的子命令2分配数据帧DF6的物理地址。这样,为写命令的子命令1分配了连续的物理地址。而子命令2只需要1个数据帧,不刻意为子命令2分配连续的物理地址。可选地,将图2中的数据帧DF7填充数据,用来填满MLC MSB页0。
又例如,为上述的子命令3分配数据帧DF4与数据帧DF5的物理地址,为上述的子命令4分配数据帧DF8与数据帧DF9的物理地址。这样,为写命令的子命令分配了连续的物理地址。
可选地,子命令访问的数据量小于或等于NVM芯片的物理页所能容纳的数据量,物理页容纳至少一个所述数据帧。
可选地,子命令访问的数据量小于或等于NVM芯片的单一的读命令所能读取的数据量。作为一个例子,NVM芯片的单一的读命令所能读取的最大数据量为两个数据帧。以及使得每个子命令的逻辑地址范围对应于两个数据帧。并为每个子命令分配物理地址连续的数据帧。
该实施例中,选地,为连续的两个或更多子命令分配连续的物理地址。
可选地,连续的两个或多个子命令访问的数据量不超过NVM芯片的物理页所能容纳的数据量,使得写命令不跨越不同的物理页。
可选地,连续的两个或多个子命令访问的数据量为单一NVM芯片读命令所能读取的数据量,或单一NVM芯片读命令所能读取的最大数据量。
将写命令对应的数据写入为子命令分配的物理地址(330)。当写命令的所有子命令都处理完成,该写命令处理完成,并向主机或命令发起方指示写命令处理完成。
可选地,在步骤310中,写命令的子命令数量被记录。响应于每个子命令完成,将子命令数量递减。响应于子命令数量为0,识别出写命令被处理完成。当写命令的所有子命令都处理完成,该写命令处理完成,固态存储设备向主机或命令发起方指示写命令处理完成。
可选地,在步骤310中,还为子命令分配存储空间,用于接收写命令对应的数据。
响应于步骤330中将子命令对应的数据被写入NVM芯片,释放子命令对应的数据所占用的存储空间,从而减少写命令或其子命令占用存储空间的时间,提高存储空间利用率。
本实施例中,将写命令拆分为多个子命令,并为每个子命令分配连续的物理地址,该物理地址为一个或多个连续的数据帧,充分利用存储介质的读写能力,提高了固态存储设备的读写性能。
实施例二
图4为根据本申请实施例二提供的写命令处理方法的流程图。该实施例中,由两个中央处理器(CPU)协同处理写命令。
如图4所示,该实施例的写命令处理方法包括如下步骤:
响应于第一中央处理器(CPU 0)接收写命令,CPU 0将写命令拆分为多个子命令(410)。
第二中央处理器(CPU 1)为单个的子命令或连续的两个或更多子命令分配连续的物理地址(420);
CPU1指示将子命令对应的数据写入为子命令分配的物理地址(430)。
作为一个实施例,对于每个写命令,由CPU 0为写命令或其各个子命令分配存储资源,用于接收写命令访问的数据;而在CPU 1将子命令访问的数据写入NVM芯片后,由CPU 1释放该写命令或其各个子命令访问的数据所占用的存储空间。被释放的存储空间可被CPU0重新分配。
可选地,CPU 0还用于识别从写命令拆分出的每个子命令是否处理完成。
在写命令处理过程中,通过一个CPU进行存储资源的分配,而由与该CPU协同处理写命令的另一个CPU进行NVM芯片的访问和存储资源的释放,相对于利用同一个CPU分配存储资源并释放存储资源的情况,这样的处理方法缩短了存储资源被占用的时间,提高了存储资源的利用率。
作为另一个实施例,CPU 1负责物理地址的分配(420),由介质接口控制器或CPU 2根据子命令实施对NVM芯片的访问,并且在完成对NVM芯片的访问后由介质接口控制器或CPU 2释放写命令或其各个子命令访问的数据所占用的存储资源。在中国专利申请CN201610009789.6、CN201510253428.1、
CN201610861793.5、CN201611213755.5、CN201611213754.0中提供了多种介质接口控制器,也可使用现有技术中的访问闪存等NVM的介质接口控制器。
实施例三
图5为根据本申请实施例三提供的数据在存储介质上的组织方式。NVM芯片提供的多个物理页组成页条带。例如,MLC MSB页0、MLC MSB页1、MLC MSB页2与MLC MSB页3组成页条带510;MLC LSB页0、MLC LSB页1、MLC LSB页2与MLC LSB页3组成页条带520。页条带中的一部分物理页存储用户数据,而另一部分物理页用于存储根据页条带内的所有用户数据计算得到的校验数据。图5中,MLC LSB页3和MLC MSB页3分别用于存储页条带510和页条带520的校验数据。
在实施例三中,从页条带上存储用户数据的物理页(如页条带510中的MLC MSB页0、MLC MSB页1、MLC MSB页2,页条带520中的MLC LSB页0、MLC LSB页1、MLC LSB页2)为子命令分配物理地址。图5中,数据帧DU指示该数据帧为填充的数据。
当页条带的存储用户数据的物理页的数据帧(或数据段)接近耗尽时(例如,页条带中仅剩1个物理页的1个数据帧(或数据段)未被分配给子命令),向尚未被分配的数据帧填充数据,从而可以生成用于该数据帧的校验数据并将校验数据写入用于存储校验数据的物理页。
通过向数据帧填充数据以尽快完成对页条带的校验数据的计算,减少对用于计算校验数据的资源的占用时间,提高资源利用率。
可选地,在用户的写命令数据较少时,更早或更多的向数据帧填充数据。例如,当在指定时间内(例如,1毫秒)未生成页条带的校验数据,则向页条带中尚未被分配的所有数据帧填充数据。
可选地,响应于接收到来自用户或其他部件的关闭页条带或可以关闭页条带的指示,向页条带中尚未被分配的所有数据帧填充数据。
可选地,若页条带中仅剩一个物理页尚未被分配子命令,则向尚未被分配的物理页或数据帧填充数据。
该实施例以页条带为单位对写命令进行处理,通过填充数据快速完成页条带的写入,加快了写命令的处理速度。
实施例四
图6为根据本申请实施例四提供的读命令处理方法的流程图。如图6所示,该实施例的读命令处理方法包括如下步骤:
从主机或其他命令发起方接收读命令(610)。
将读命令拆分为多个子命令(620)。
从FTL表获取多个子命令所访问的物理地址(630)。
步骤620中,根据读命令访问的逻辑地址,将读命令拆分为多个子命令。每个子命令访问的逻辑地址范围由一个数据帧提供,子命令访问的数据量或逻辑地址范围同数据帧的大小相同。
例如,读命令访问0-10KB的LBA范围,将读命令拆分为3个子命令,子命令9访问0-3KB LBA范围的数据,子命令10访问4-7KB LBA范围,子命令11访问8-10KB的LBA范围。
步骤630中,读命令及其子命令指示逻辑地址,通过FTL表获取同子命令的逻辑地址对应的物理地址。
若相邻的两个子命令的物理地址连续,则将这两个子命令组合,并依据组合后的两个子命令所访问的连续的物理地址以NVM芯片的单一的读命令读取数据。
可选地,若两个或更多子命令的物理地址连续,则组合物理地址连续的两个或多个子命令(650)。
依据连续的物理地址从NVM芯片读取数据(660)。
优选地,被组合的两个或多个子命令访问的数据量小于或等于物理页所能容纳的数据量,避免读命令跨越不同的物理页导致的读取问题。
例如,每个子命令访问一个数据帧,物理页能容纳4个数据帧的数据量,则在步骤650中最多组合相邻的四个子命令。
优选地,被组合的两个或多个子命令访问的数据量小于或等于单一的NVM芯片的单一的读命令所能读取的数据量或单一的读命令所能读取的最大数据量,避免无法将所有数据一次性读出造成的差错。
例如,每个子命令访问一个数据帧,而单一的读命令所能读取的最大数据量对应两个数据帧的数据量,那么在步骤650中最多组合相邻的两个子命令。
作为一个实施例,在步骤640,若两个或更多子命令的物理地址不连续,则执行步骤670,依据每个子命令所访问的物理地址读取数据。
作为另一个实施例,若读命令中指示了无须组合子命令,或者读命令的未被处理的子命令仅有一个,导致步骤640无须或无法对多个子命令进行组合,则执行步骤670。
可选地,在步骤620,读命令的子命令数量被记录。
响应于每个子命令完成,将子命令数量递减。响应于子命令数量为0,识别出读命令被处理完成。当读命令的所有子命令都处理完成,该读命令处理完成,固态存储设备向主机或命令发起方指示读命令处理完成。
可选地,还为子命令分配存储空间,用于接收读命令对应的数据;响应于子命令对应的数据被提供给主机,释放子命令对应的数据所占用的存储空间。
可选地,若因存储器访问接口繁忙或访问的FTL表条目被锁定等原因而暂时无法获取一个子命令的物理地址,则不再检查该子命令是否与其相邻的子命令访问连续的物理地址,在获取了物理地址后,依据子命令所访问的物理地址,从NVM芯片读取数据(670)。例如,若请求两个或多个子命令的物理地址,在指定时间内存在一个或几个子命令的请求失败,则不对这些子命令的物理地址进行组合,直接执行步骤670,依据请求成功的子命令所访问的物理地址读取数据。
本实施例中,将读命令拆分为多个子命令,并将物理地址连续的子命令组合起来,并依据连续的物理地址读取数据,相对于通过多个读命令分别读出多个数据帧中的数据,利用单一读命令读出多个数据帧中的数据所需的时间明显缩短,提高了固态存储设备的读写性能。
实施例五
图7为根据本申请实施例五提供的读命令处理方法的流程图。该实施例中,由两个中央处理器(CPU)协同处理读命令。
如图7所示,该实施例的写命令处理方法包括如下步骤:
第一中央处理器(CPU 0)接收读命令,并将读命令发送给第二中央处理器(CPU 1)(710)。CPU 1将读命令拆分为多个子命令(720)。CPU 1获取子命令所访问的物理地址(730)。若两个或更多子命令所访问的物理地址连续,CPU1组合物理地址连续的两个或多个子命令(740)。CPU1依据连续的物理地址读取数据(750)。
进一步地,CPU 0将读出的数据提供给主机或读命令发出方,并识别读命令是否被处理完成。
作为一个实施例,对于每个读命令,由CPU 1为读命令或其各个子命令分配存储资源,用于接收从NVM芯片获取的数据;CPU 0将从NVM芯片获取的数据提供给主机或读命令发出方后,由CPU 0释放读命令或其子命令访问的数据所占用的存储空间。被释放的存储空间可被CPU 1重新分配。
在读命令处理过程中,通过一个CPU进行NVM芯片的访问和存储资源的分配,而由与该CPU协同处理写命令的另一个CPU进行存储资源的释放,相对于利用同一个CPU分配存储资源并释放存储资源的情况,这样的处理方法缩短了存储资源被占用的时间,提高了存储资源的利用率。
作为另一个实施例,CPU 1指示介质接口控制器或CPU 2处理从NVM芯片读出数据的过程,由介质接口控制器或CPU 2为读出的数据分配存储资源,而由CPU 0释放所分配的存储资源。
在读命令处理过程中,通过CPU 0进行读命令的接收、读取数据的传输、存储空间的释放,CPU 1进行物理地址的获取和组合、CPU2进行存储空间的分配以及数据的读取,相对于利用同一个CPU处理读命令的情况,这样的处理方法缩短了存储资源被占用的时间,提高了存储资源的利用率。
本申请的技术方案获得的有益效果如下:
(1)本申请的实施例将写命令拆分为子命令,并为单个子命令或连续的多个子命令分配连续的物理地址,以便使逻辑地址连续的数据放置在连续的物理地址上,以充分利用存储介质的读写能力,提高了固态存储设备的读写性能。
(2)本申请的实施例利用至少两个中央处理器协同合作来处理写命令,减轻了中央处理器的负担,提高了写命令处理速度;利用不同的中央处理器进行存储资源的分配和释放,缩短了存储资源被占用的时间,提高了存储资源的利用率。
(3)本申请的实施例将读命令拆分为多个子命令,并将物理地址连续的子命令组合起来,利用单一读命令从连续的物理地址读取数据,相对于通过多个读命令分别读出多个数据帧中的数据,利用单一读命令读出多个数据帧中的数据所需的时间明显缩短,提高了固态存储设备的读写性能。
(4)本申请的实施例利用至少两个中央处理器协同合作来处理读命令,减轻了中央处理器的负担,提高了读命令处理速度;利用不同的中央处理器进行存储资源的分配和释放,缩短了存储资源被占用的时间,提高了存储资源的利用率。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种写命令处理方法,包括:
接收写命令;
将所述写命令拆分为多个子命令;
为单个的所述子命令或连续的两个或更多所述子命令分配连续的物理地址;
将所述子命令对应的数据写入为所述子命令分配的物理地址。
2.根据权利要求1所述的写命令处理方法,其特征在于,所述子命令访问的逻辑地址范围由一个或多个数据帧提供;其中所述物理地址指示数据帧在非易失性存储器中的存储位置。
3.根据权利要求1-2中任一项所述的写命令处理方法,其特征在于,所述写命令的子命令数量被记录,所述方法还包括:
响应于每个所述子命令完成,将所述子命令数量递减;
响应于所述子命令数量为0,识别出所述写命令被处理完成。
4.根据权利要求1-3中任一项所述的写命令处理方法,其特征在于,
第一中央处理器接收所述写命令;
所述第一中央处理器将所述写命令拆分为多个子命令;
所述第二中央处理器为单个的所述子命令或连续的两个或更多所述子命令分配连续的物理地址;
所述第二中央处理器指示将所述子命令对应的数据写入为所述子命令分配的物理地址。
5.根据权利要求4所述的写命令处理方法,其特征在于,还包括:
所述第一中央处理器为所述写命令或所述子命令分配存储空间;
所述第二中央处理器释放所述写命令或所述子命令访问的数据所占用的存储空间。
6.一种读命令处理方法,包括:
接收读命令;
将所述读命令拆分为多个子命令;
获取所述多个子命令所访问的物理地址;
若两个或更多所述子命令的物理地址连续,则组合物理地址连续的所述两个或多个子命令;
依据连续的所述物理地址读取数据。
7.根据权利要求6所述的读命令处理方法,其特征在于,若相邻的所述子命令访问的物理地址不连续,或者若所述读命令指示无须组合子命令,或者若所述读命令只包含一个未被处理的子命令,则依据所述子命令所访问的物理地址读取数据。
8.根据权利要求6或7所述的读命令处理方法,其特征在于,若请求两个所述子命令的物理地址均成功,且两个所述子命令的物理地址连续,则组合所述两个子命令,形成连续的物理地址,并依据所述连续的物理地址以非易失性存储器的单一的读命令读取数据。
9.根据权利要求6-8中任一项所述的读命令处理方法,其特征在于,包括:
第一中央处理器接收读命令,并将所述读命令发送给第二中央处理器;
所述第二中央处理器将所述读命令拆分为多个子命令;
所述第二中央处理器获取所述子命令所访问的物理地址;
若两个或更多所述子命令所访问的物理地址连续,则所述第二中央处理器组合物理地址连续的所述两个或多个子命令;以及
所述第二中央处理器依据连续的所述物理地址读取数据。
10.一种固态存储设备,包括控制部件和NVM芯片;所述控制部件用于执行根据权利要求1-9之一所述的方法。
CN201710470720.8A 2017-06-20 2017-06-20 固态存储设备及其写命令和读命令处理方法 Active CN109101185B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710470720.8A CN109101185B (zh) 2017-06-20 2017-06-20 固态存储设备及其写命令和读命令处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710470720.8A CN109101185B (zh) 2017-06-20 2017-06-20 固态存储设备及其写命令和读命令处理方法

Publications (2)

Publication Number Publication Date
CN109101185A true CN109101185A (zh) 2018-12-28
CN109101185B CN109101185B (zh) 2023-08-11

Family

ID=64795717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710470720.8A Active CN109101185B (zh) 2017-06-20 2017-06-20 固态存储设备及其写命令和读命令处理方法

Country Status (1)

Country Link
CN (1) CN109101185B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007853A (zh) * 2019-01-30 2019-07-12 青岛镕铭半导体有限公司 一种Nandflash命令处理方法、装置、终端及存储介质
CN111522505A (zh) * 2020-04-03 2020-08-11 杭州宏杉科技股份有限公司 Raid重建过程中的数据处理方法及装置
CN111522510A (zh) * 2020-04-22 2020-08-11 杭州宏杉科技股份有限公司 命令处理方法及装置
CN111580742A (zh) * 2019-08-30 2020-08-25 上海忆芯实业有限公司 使用加速器处理读(Get)/Put(写)请求的方法及其信息处理系统
CN112015672A (zh) * 2020-08-28 2020-12-01 北京浪潮数据技术有限公司 一种存储系统中数据处理方法、装置、设备及存储介质
CN112214157A (zh) * 2019-07-10 2021-01-12 慧荣科技股份有限公司 主机输出输入命令的执行装置及方法及计算机可读取存储介质
CN114791790A (zh) * 2022-06-22 2022-07-26 北京得瑞领新科技有限公司 Ssd读性能优化方法、装置、存储介质及存储设备
CN114896182A (zh) * 2022-05-11 2022-08-12 地平线(上海)人工智能技术有限公司 存储装置、方法、电子设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070656A1 (en) * 2008-09-12 2010-03-18 Atto Technology, Inc. System and method for enhanced load balancing in a storage system
CN102193748A (zh) * 2010-03-18 2011-09-21 株式会社东芝 控制器、数据存储装置以及程序产品
WO2012019475A1 (zh) * 2010-08-13 2012-02-16 中兴通讯股份有限公司 一种rldramsio访问控制方法和装置
CN103098034A (zh) * 2010-07-28 2013-05-08 Fusion-Io股份有限公司 用于条件和原子存储操作的装置、系统和方法
CN103218270A (zh) * 2013-03-11 2013-07-24 北京忆恒创源科技有限公司 具有多个固态盘的计算机
US20140195725A1 (en) * 2013-01-08 2014-07-10 Violin Memory Inc. Method and system for data storage
CN104484135A (zh) * 2014-12-23 2015-04-01 浙江宇视科技有限公司 一种快速数据读取方法及装置
US9170938B1 (en) * 2013-05-17 2015-10-27 Western Digital Technologies, Inc. Method and system for atomically writing scattered information in a solid state storage device
CN105122220A (zh) * 2013-03-15 2015-12-02 西部数据技术公司 固态驱动器中的原子写入命令支持
US20160117105A1 (en) * 2014-10-27 2016-04-28 Sandisk Enterprise Ip Llc Method and System for Throttling Bandwidth Based on Temperature

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070656A1 (en) * 2008-09-12 2010-03-18 Atto Technology, Inc. System and method for enhanced load balancing in a storage system
CN102193748A (zh) * 2010-03-18 2011-09-21 株式会社东芝 控制器、数据存储装置以及程序产品
CN103098034A (zh) * 2010-07-28 2013-05-08 Fusion-Io股份有限公司 用于条件和原子存储操作的装置、系统和方法
WO2012019475A1 (zh) * 2010-08-13 2012-02-16 中兴通讯股份有限公司 一种rldramsio访问控制方法和装置
US20140195725A1 (en) * 2013-01-08 2014-07-10 Violin Memory Inc. Method and system for data storage
CN103218270A (zh) * 2013-03-11 2013-07-24 北京忆恒创源科技有限公司 具有多个固态盘的计算机
CN105122220A (zh) * 2013-03-15 2015-12-02 西部数据技术公司 固态驱动器中的原子写入命令支持
US9170938B1 (en) * 2013-05-17 2015-10-27 Western Digital Technologies, Inc. Method and system for atomically writing scattered information in a solid state storage device
US20160117105A1 (en) * 2014-10-27 2016-04-28 Sandisk Enterprise Ip Llc Method and System for Throttling Bandwidth Based on Temperature
CN104484135A (zh) * 2014-12-23 2015-04-01 浙江宇视科技有限公司 一种快速数据读取方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
MINGDI XUE等: "NVM-Accelerated Metadata Management for Flash-Based SSDs", IEEE *
李洁琼;冯丹;: "网络磁盘阵列中基于任务排队的多用户请求动态调度策略", 计算机科学, no. 04 *
王芳,冯丹,张江陵: "RAID中基于聚/散的命令合并的相关问题研究", no. 06 *
蔡晓乐;张亚棣;李亚晖;海钰琳;: "基于区域页级映射的闪存转换层设计", 微电子学与计算机, no. 04 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007853B (zh) * 2019-01-30 2022-06-28 镕铭微电子(济南)有限公司 一种Nandflash命令处理方法、装置、终端及存储介质
CN110007853A (zh) * 2019-01-30 2019-07-12 青岛镕铭半导体有限公司 一种Nandflash命令处理方法、装置、终端及存储介质
CN112214157A (zh) * 2019-07-10 2021-01-12 慧荣科技股份有限公司 主机输出输入命令的执行装置及方法及计算机可读取存储介质
CN112214157B (zh) * 2019-07-10 2023-11-03 慧荣科技股份有限公司 主机输出输入命令的执行装置及方法及存储介质
CN113138724A (zh) * 2019-08-30 2021-07-20 上海忆芯实业有限公司 使用加速器处理读(Get)/Put(写)请求的方法及其信息处理系统
CN111580742A (zh) * 2019-08-30 2020-08-25 上海忆芯实业有限公司 使用加速器处理读(Get)/Put(写)请求的方法及其信息处理系统
CN111522505B (zh) * 2020-04-03 2022-08-02 杭州宏杉科技股份有限公司 Raid重建过程中的数据处理方法及装置
CN111522505A (zh) * 2020-04-03 2020-08-11 杭州宏杉科技股份有限公司 Raid重建过程中的数据处理方法及装置
CN111522510A (zh) * 2020-04-22 2020-08-11 杭州宏杉科技股份有限公司 命令处理方法及装置
CN111522510B (zh) * 2020-04-22 2022-08-09 杭州宏杉科技股份有限公司 命令处理方法及装置
CN112015672A (zh) * 2020-08-28 2020-12-01 北京浪潮数据技术有限公司 一种存储系统中数据处理方法、装置、设备及存储介质
CN114896182A (zh) * 2022-05-11 2022-08-12 地平线(上海)人工智能技术有限公司 存储装置、方法、电子设备和存储介质
CN114896182B (zh) * 2022-05-11 2023-10-20 地平线(上海)人工智能技术有限公司 存储装置、方法、电子设备和存储介质
CN114791790A (zh) * 2022-06-22 2022-07-26 北京得瑞领新科技有限公司 Ssd读性能优化方法、装置、存储介质及存储设备

Also Published As

Publication number Publication date
CN109101185B (zh) 2023-08-11

Similar Documents

Publication Publication Date Title
CN109101185A (zh) 固态存储设备及其写命令和读命令处理方法
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
CN106354615B (zh) 固态硬盘日志生成方法及其装置
CN107957958A (zh) 存储器系统及其操作方法
CN105683953B (zh) 支持加速数据库操作的数据存储设备
CN111078582B (zh) 基于模式调整映射段的存储器系统及其操作方法
US20160124843A1 (en) Memory system and non-transitory computer readable recording medium
CN107908571B (zh) 一种数据写入方法、闪存装置及存储设备
KR20170105760A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN108228473A (zh) 通过动态地传送存储器范围分配的负载平衡
CN110389908A (zh) 存储器系统、数据处理系统和存储器系统的操作方法
KR102595233B1 (ko) 데이터 처리 시스템 및 그것의 동작 방법
US11868246B2 (en) Memory system and non-transitory computer readable recording medium
WO2015176664A1 (zh) 一种数据操作的方法、设备和系统
CN108664213A (zh) 基于分布式缓存的原子写命令处理方法与固态存储设备
CN109164976A (zh) 利用写缓存优化存储设备性能
CN110489056A (zh) 控制器以及包括该控制器的存储器系统
CN109471819A (zh) 为来自主机的读取请求提供短的读取响应时间的存储设备
CN109388333A (zh) 降低读命令处理延迟的方法与装置
CN109426453A (zh) 数据存储装置及其操作方法
CN109840048A (zh) 存储命令处理方法及其存储设备
CN109213425A (zh) 利用分布式缓存在固态存储设备中处理原子命令
CN108877862A (zh) 页条带的数据组织以及向页条带写入数据的方法与装置
CN108664212A (zh) 固态存储设备的分布式缓存
CN108664214A (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
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.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Xu Haiping

Inventor after: Zhang Zhiqing

Inventor after: Wang Shuke

Inventor after: Qin Hanzhang

Inventor after: Cai Shunan

Inventor before: Xu Haiping

Inventor before: Zhang Zhiqing

Inventor before: Wang Shuke

Inventor before: Qin Hanzhang

Inventor before: Cai Shunan

GR01 Patent grant
GR01 Patent grant