CN113744783A - 分区名称空间(zns)驱动器中的写入数据传送调度 - Google Patents
分区名称空间(zns)驱动器中的写入数据传送调度 Download PDFInfo
- Publication number
- CN113744783A CN113744783A CN202110366821.7A CN202110366821A CN113744783A CN 113744783 A CN113744783 A CN 113744783A CN 202110366821 A CN202110366821 A CN 202110366821A CN 113744783 A CN113744783 A CN 113744783A
- Authority
- CN
- China
- Prior art keywords
- data
- zone
- command
- die
- storage device
- 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
- 238000013500 data storage Methods 0.000 claims description 74
- 239000000872 buffer Substances 0.000 claims description 33
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/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]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0653—Monitoring storage devices or 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/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/0658—Controller construction 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开大体上涉及调度用于分区名称空间(ZNS)的区附加命令。并非基于区附加命令大小来调度数据传送,数据传送调度是基于存储器装置页组块。每一区附加命令首先与存储器装置裸片相关联且在相关裸片队列中排队。具有页的大小的数据组块是针对每一待决裸片从主机装置获取的。当获取所述数据组块时,定时器被激活,且仅一旦所述定时器期满才就允许获取用于特定裸片的下一数据组块。所述定时器的值被设置成小于将数据组块写入到所述裸片所必需的时间。
Description
技术领域
本公开的实施例大体上涉及用于分区名称空间(zoned namespace,ZNS)的区附加命令的高效数据传送管理。
背景技术
分区名称空间(ZNS)是其中数据存储装置限制对顺序区的写入的存储新方向。ZNS希望通过使主机写入模式与内部装置几何形状对准且减少对不直接关联于主机写入的装置侧写入的需要,来减少装置侧写入放大和过度提供。
ZNS提供许多益处,包含:由于每固态驱动器(SSD)的最小DRAM要求而减少成本;由于对NAND介质的过度提供的需要减小带来的潜在节省;通过减少写入放大带来的较好SSD使用寿命;显著减少的时延;显著改进的处理量;以及实现强软件和硬件生态系统的标准化接口。
通常,在ZNS环境中,与每一区附加命令相关联的数据传送大小是块大小(例如,NAND块大小)或多个完整块大小(即,不小于整个块的大小)。例如NAND块的块驻留在单个NAND裸片中。存储器装置并行性涉及并行存取多个NAND裸片。为了增加并行性,需要并行存取更多NAND裸片。为了高效地使用存储器装置并行性,在具有交错数据传送的同时应当并行执行许多区附加命令。否则,将显著增加写入高速缓存缓冲器以便利用存储器装置。
因此,此项技术中需要具有区附加命令的更高效管理的ZNS装置。
发明内容
本公开大体上涉及调度用于分区名称空间(ZNS)的区附加命令。并非基于区附加命令大小来调度数据传送,数据传送调度是基于存储器装置页组块。每一区附加命令首先与存储器装置裸片相关联且在相关裸片队列中排队。具有页的大小的数据组块是针对每一待决裸片从主机装置获取的。当获取数据组块时,定时器被激活,且仅一旦定时器期满才就允许获取用于特定裸片的下一数据组块。定时器的值被设置成小于将数据组块写入到裸片所必需的时间。
在一个实施例中,一种数据存储装置包括:存储器装置,其具有多个存储器裸片;以及控制器,其耦合到存储器装置,其中控制器被配置成:接收多个区附加命令;从主机装置获取用于每一区附加命令的数据,其中用于每一区附加命令的获取的数据少于与所述多个区附加命令中的个别区附加命令相关联的全部数据;以及将获取的数据写入到存储器装置。
在另一实施例中,一种数据存储装置包括:存储器装置,其包含多个裸片;以及控制器,其耦合到存储器装置,其中控制器被配置成:接收与所述多个裸片中的第一裸片相关联的第一区附加命令;接收与所述多个裸片中的第二裸片相关联的第二区附加命令;获取第一区附加命令数据的第一组块;获取第二区附加命令数据的第一组块;将第一区附加命令数据的第一组块写入到第一裸片;将第二区附加命令数据的第一组块写入到第二裸片;以及获取第一区附加命令数据的第二组块,其中第一区附加命令数据的第二组块是在预定时间周期之后获取的;且其中所述预定时间周期小于将第一区数据的第一组块写入到第一裸片所必需的时间周期。
在另一实施例中,一种数据存储装置包括:存储器装置;控制器,其耦合到存储器装置;以及用以获取与区附加命令相关联的数据的构件,所述用以获取与区附加命令相关联的数据的构件耦合到存储器装置,其中获取的数据具有等于存储器装置的裸片的页大小的大小,且其中与区附加命令相关联的数据具有大于存储器装置的裸片的页大小的大小。
附图说明
为了可以详细地了解本发明的上述特征,上文简短概述的本发明可以参考实施例加以更具体地描述,其中一些实施例在附图中图解说明。然而,应注意,附图只是说明本发明的典型实施例且因此不应视为限制本发明的范围,因为本发明可以承认其它同等有效的实施例存在。
图1是示出根据本公开的一个或多个技术的具有可以充当用于主机装置的存储装置的存储装置的存储系统的示意性框图。
图2A是传统SSD的装置控制的示意性图示。
图2B是根据实施例的ZNS SSD的装置控制的示意性图示。
图3是区附加命令的示意性图示。
图4是根据一个实施例的用于ZNS SSD的状态图的示意性图示。
图5是根据一个实施例的区名称空间结构的示意性图示。
图6是ZNS非交错数据传送的示意性图示。
图7是根据一个实施例的ZNS交错和优化数据传送的示意性图示。
图8是根据一个实施例的剖析区附加命令的示意性图示。
图9是示出根据一个实施例的在ZNS装置中交错和优化数据传送的方法的流程图。
为了便于理解,在可能的情况下已经使用相同的元件符号表示图中共有的相同元件。预期一个实施例中公开的元件可有利地在其它实施例上利用而不需特定叙述。
具体实施方式
在下文中,参考本公开的实施例。然而,应理解,本公开不限于所描述的特定实施例。实际上,涵盖以下特征和元件(不管是否与不同实施例有关)的任何组合以实施和实践本公开。此外,尽管本公开的实施例可实现优于其它可能解决方案和/或优于现有技术的优点,但特定优势是否是由给定实施例实现并不限制本公开。因此,以下方面、特征、实施例及优点仅为说明性的且不认为是所附权利要求书的元件或限制,除非明确地叙述于权利要求中。同样,对“本公开”的提及不应解释为本文中所公开的任何发明性主题的一般化,且不应认为是所附权利要求书的元件或限制,除非明确地叙述于权利要求中。
本公开大体上涉及调度用于分区名称空间(ZNS)的区附加命令。并非基于区附加命令大小来调度数据传送,数据传送调度是基于存储器装置页组块。每一区附加命令首先与存储器装置裸片相关联且在相关裸片队列中排队。具有页的大小的数据组块是针对每一待决裸片从主机装置获取的。当获取数据组块时,定时器被激活,且仅一旦定时器期满才就允许获取用于特定裸片的下一数据组块。定时器的值被设置成小于将数据组块写入到裸片所必需的时间。
图1是示出根据本公开的一个或多个技术的存储系统100的示意性框图,其中数据存储装置106可以充当用于主机装置104的存储装置。举例来说,主机装置104可以利用数据存储装置106中包含的NVM 110来存储和检取数据。主机装置104包括主机DRAM 138。在一些实例中,存储系统100可以包含可以作为存储阵列操作的多个存储装置,例如数据存储装置106。举例来说,存储系统100可以包含被配置为廉价/独立磁盘冗余阵列(RAID)的多个数据存储装置106,其共同充当用于主机装置104的大容量存储装置。
存储系统100包含主机装置104,所述主机装置可以将数据存储到一个或多个存储装置和/或从一个或多个存储装置检取数据,所述存储装置例如数据存储装置106。如图1中所图示,主机装置104可以经由接口114与数据存储装置106通信。主机装置104可以包括广泛范围的装置中的任一种,包含计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即,膝上型计算机)计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手持机、所谓的“智能”平板、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置,及类似物。
数据存储装置106包含控制器108、非易失性存储器110(NVM 110)、电力供应器111、易失性存储器112、接口114,和写入缓冲器116。在一些实例中,数据存储装置106可以包含图1中为清晰起见而未示出的额外组件。举例来说,数据存储装置106可以包含印刷电路板(PCB),数据存储装置106的组件机械地附接到所述印刷电路板且所述印刷电路板包含电互连数据存储装置106的组件的导电迹线或类似物。在一些实例中,数据存储装置106的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些实例标准形状因数包含(但不限于)3.5"数据存储装置(例如,HDD或SSD)、2.5"数据存储装置、1.8"数据存储装置、外围组件互连(PCI)、PCI扩展(PCI-X)、PCI高速(PCIe)(例如,PCIe x1、x4、x8、x16、PCIe微型卡、MiniPCI等)。在一些实例中,数据存储装置106可以直接耦合(例如,直接焊接)到主机装置104的母板。
数据存储装置106的接口114可以包含用于与主机装置104交换数据的数据总线和用于与主机装置104交换命令的控制总线中的一个或两个。接口114可以根据任何合适的协议操作。举例来说,接口114可以根据以下协议中的一个或多个操作:高级技术附接(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤通道协议(FCP)、小型计算机系统接口(SCSI)、串联附接SCSI(SAS)、PCI和PCIe、非易失性存储器高速(NVMe)、OpenCAPI、GenZ、高速缓冲存储器相干接口加速器(CCIX)、开放通道SSD(OCSSD),或类似物。接口114的电连接(例如,数据总线、控制总线或这两者)电连接到控制器108,从而提供主机装置104与控制器108之间的电连接,允许在主机装置104与控制器108之间交换数据。在一些实例中,接口114的电连接还可以准许数据存储装置106从主机装置104接收电力。举例来说,如图1中所图示,电力供应器111可以经由接口114从主机装置104接收电力。
数据存储装置106包含NVM 110,其可以包含多个存储器装置或存储器单元。NVM110可以被配置成存储和/或检取数据。举例来说,NVM 110的存储器单元可以从控制器108接收数据和指示存储器单元存储数据的消息。类似地,NVM 110的存储器单元可以从控制器108接收指示存储器单元检取数据的消息。在一些实例中,存储器单元中的每一个可以称为裸片。在一些实例中,单个物理芯片可以包含多个裸片(即,多个存储器单元)。在一些实例中,每一存储器单元可以被配置成存储相对大量的数据(例如,128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TB等)。
在一些实例中,NVM 110的每一存储器单元可以包含任何类型的非易失性存储器装置,例如快闪存储器装置、相变存储器(PCM)装置、电阻式随机存取存储器(ReRAM)装置、磁阻式随机存取存储器(MRAM)装置、铁电随机存取存储器(F-RAM)、全息存储器装置,和任何其它类型的非易失性存储器装置。
NVM 110可以包括多个快闪存储器装置或存储器单元。快闪存储器装置可包含基于NAND或NOR的快闪存储器装置,且可基于用于每一快闪存储器单元的晶体管的浮动栅极中含有的电荷而存储数据。在NAND快闪存储器装置中,快闪存储器装置可划分成可划分成多个页的多个块。特定存储器装置内的多个块中的每一块可包含多个NAND单元。NAND单元的行可使用字线来电连接以限定多个页的一页。多个页中的每一个中的相应单元可电连接到相应位线。此外,NAND快闪存储器装置可以是2D或3D装置,且可以是单电平单元(SLC)、多电平单元(MLC)、三电平单元(TLC)或四电平单元(QLC)。控制器108可将数据写入到页层级处的NAND快闪存储器装置且从页层级处的NAND快闪存储器装置读取数据,以及从块层级处的NAND快闪存储器装置擦除数据。
数据存储装置106包含电力供应器111,其可以对数据存储装置106的一个或多个组件提供电力。当在标准模式中操作时,电力供应器111可以使用由例如主机装置104的外部装置提供的电力对所述一个或多个组件提供电力。举例来说,电力供应器111可以使用经由接口114从主机装置104接收的电力对所述一个或多个组件提供电力。在一些实例中,电力供应器111可以包含被配置成当在关断模式中操作时对所述一个或多个组件提供电力的一个或多个电力存储组件,在所述关断模式中例如停止从外部装置接收电力。以此方式,电力供应器111可以充当机载备用电源。所述一个或多个电力存储组件的一些实例包含(但不限于)电容器、超级电容器、电池,及类似物。在一些实例中,所述一个或多个电力存储组件可以存储的电力量可以随着所述一个或多个电力存储组件的成本和/或大小(例如,面积/体积)而变。换句话说,在所述一个或多个电力存储组件存储的电力量增加时,所述一个或多个电力存储组件的成本和/或大小也增加。
数据存储装置106还包含可供控制器108用于存储信息的易失性存储器112。易失性存储器112可以包括一个或多个易失性存储器装置。在一些实例中,控制器108可以使用易失性存储器112作为高速缓冲存储器。举例来说,控制器108可以将高速缓冲存储的信息存储于易失性存储器112中直到高速缓冲存储的信息被写入到非易失性存储器110为止。如图1中所图示,易失性存储器112可以消耗从电力供应器111接收的电力。易失性存储器112的实例包含(但不限于)随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM),和同步动态RAM(SDRAM(例如,DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4、LPDDR4及类似物))。
数据存储装置106包含可以管理数据存储装置106的一个或多个操作的控制器108。举例来说,控制器108可以管理从NVM 110的数据读取和/或对其的数据写入。在一些实施例中,当数据存储装置106从主机装置104接收到写入命令时,控制器108可以发起数据存储命令以将数据存储到NVM 110且监视数据存储命令的进展。控制器108可以确定存储系统100的至少一个操作特性,且将所述至少一个操作特性存储到NVM 110。在一些实施例中,当数据存储装置106从主机装置104接收到写入命令时,控制器108在将与写入命令相关联的数据发送到NVM 110之前将所述数据临时存储于内部存储器或写入缓冲器116中。
图2A和2B是根据各种实施例的SSD的装置控制的示意性图示。在一个实施例中,图2A和图2B的闪存装置可以是图1的数据存储装置106的NVM 110。此外,根据各种实施例,图2A和图2B的闪存装置可以是多电平单元,例如SLC、MLC、TLC、QLC或未列出的多电平单元的任何其它反复。图2A和图2B的块存储装置的每一正方形表示可用于数据存储的块。加阴影正方形或块表示所述块包括数据。数据可以是用户数据、XOR或奇偶校验数据、装置元数据,或将存储于SSD的闪存中的任何其它合适的数据。
图2A是传统SSD的装置控制的示意性图示。SSD从例如应用程序1、应用程序2和应用程序3等多个应用程序接收数据。数据存储于SSD的闪存中。在SSD中,存储装置控制数据放置。数据循序地写入到闪存,使得来自每一应用程序的数据可以按数据接收的次序写入。因为来自每一应用程序的数据可能贯穿顺序写入是随机的,所以时延可能增加且处理量可能受阻。
图2B是ZNS SSD的装置控制的示意性图示。类似于图2A,SSD从例如应用程序1、应用程序2和应用程序3等多个应用程序接收数据。数据存储于SSD的闪存中。在SSD中,应用程序或例如图1的主机装置104的主机控制区中的数据放置。SSD的闪存被分割成各种相等容量区。区可以被视为并行单元,其中主机装置104可以将工作负载或数据引导到特定并行单元(即,主机具有闪存的块存取)。举例来说,与应用程序1相关联的数据位于第一区中,而与应用程序2相关联的数据位于第二区中,且与应用程序3相关联的数据位于第三区中。由于区供给,与传统SSD装置控制的时延相比时延减少且与传统SSD装置控制的处理量相比处理量改进。
图3是区附加命令的示意性图示。例如图1的主机装置104的主机隐式地或显式地打开区。主机装置104将若干区附加命令发出到同一地址。例如图1的数据存储装置106的存储装置负责从主机装置104填充数据且通知主机装置104在用于每一命令的区内数据确切写入于何处。写入到例如图1的NVM 110的NVM的数据的位置存储于例如图1的易失性存储器112的易失性存储器和NVM 110中的逻辑到物理(L2P)表内。L2P表包括指向存储例如用户数据的数据的一个或多个逻辑块地址(LBA)的指针。
如图3中所图示,区中的每一块是4K大小。术语“块”用于示例性目的且不限于4K大小。数据存储装置106按4K Write0、8K Write1和16K Write2的次序接收三个写入命令(即,三个区附加命令)。此外,区的写入指针(WP)对应于用于写入命令的下一可用位置。在图3中,4K Write0写入到第一块,且新写入指针位置是第二块的开始处(即,区中的4K大小位置处)。在Write0写入到第一块之后,8K Write1写入到下一可用块,占用接下来两个块(即,两个4K大小块)。更新写入指针以反映用于下一写入命令的区的16K大小位置。最后16KWrite2命令写入到接下来四个块(即,四个4K大小块)。更新写入指针以反映28K的总计区大小,其中下一写入命令将写入到28K大小位置。在每一位置,经由与每一区附加命令相关联的完成消息以区中的写入数据的确切位置更新主机。虽然按上方的次序例示,但同时接收的写入命令可以按任何次序(即,无序)循序地写入,使得由于ZNS环境而在区中Write2可以在Write0之前写入。
图4是根据一个实施例的用于ZNS SSD的状态图的示意性图示。在图4中,各种区状态(ZS)是空(即,ZSE:空)、隐式地打开(即,ZSIO:隐式地打开)、显式地打开(即,ZSEO:显式地打开)、关闭(即,ZSC:关闭)、充满(即,ZSF:充满)、只读(即,ZSRO:只读),和离线(即,ZSO:离线)。用于区的通用流动路径可以是从空状态到打开状态,所述打开状态可以是隐式地打开或显式地打开。从打开状态,区可以处于使得ZNS充满的容量。在充满状态之后,可以擦除区内容,这使ZNS复位到空。
在例如图1的控制器108的控制器通电或复位事件之后每一区的初始状态由每一区的区特性决定。举例来说,区状态ZSE:空由指向区中的最低LBA(即,区开始LBA)的有效写入指针(WP)表示。区状态ZSC:关闭由不指向区中的最低LBA的WP表示。区状态ZSF:充满是在最近区条件是充满的情况下的初始状态。区状态ZSRO:只读是在最近区条件是只读的情况下的初始状态。区状态ZSO:离线是在最近区条件是离线的情况下的初始状态。
区可以具有任何总容量或总大小,例如256MiB或512MiB。然而,每一区的小部分可能是不可写入数据的,但仍可以被读取,例如每一区的存储XOR数据、元数据和一个或多个排除擦除块的部分。举例来说,如果区的总容量是512MiB,那么区容量(ZCAP)可以是470MiB,这是可用于写入数据的容量,而42MiB不可用于写入数据。区的ZCAP等于或小于总区存储容量或总区存储大小。例如图1的数据存储装置106或图2B的SSD的存储装置可以在区复位之后即刻确定每一区的ZCAP。举例来说,例如图1的控制器108的控制器可以确定每一区的ZCAP。存储装置可以当区复位时确定区的ZCAP。
当区为空(即,ZSE:空)时,所述区不含数据(即,区中无擦除块当前存储数据)且写入指针(WP)位于区开始LBA(ZSLBA)(即,WP=0)。ZSLBA指代区的开始(即,区的第一NAND位置)。写入指针表示存储装置的区中的数据写入的位置。一旦对空区调度写入或如果主机发出区打开命令(即,ZSIO:隐式地打开或ZSEO:显式地打开),则所述区切换到打开和作用中区。区管理(ZM)命令可用以在均为作用中状态的区打开状态与区关闭状态之间移动区。如果区处于作用中,那么区包括可以写入的打开块,且可以为主机提供在作用中状态中的建议时间的描述。控制器108包括ZM(未图示)。区元数据可以存储于ZM和/或控制器108中。
术语“写入到”包含当用户数据尚未填充全部可用NAND位置时在擦除块中的0或多个NAND位置和/或擦除块中的部分填充的NAND位置上编程用户数据。NAND位置可以是如图2A和2B中参考的闪存位置。术语“写入到”还可包含由于内部驱动处置需要(打开块数据保持问题,因为错误的位在打开擦除块上更快速地累积)将区移动到充满(即,ZSF:充满),数据存储装置106由于资源约束、例如要跟踪太多打开区或发现缺陷状态等等而关闭或填充区,或例如图1的主机装置104的主机装置因为例如不再存在要发送到驱动器的数据、计算机关断、主机上的错误处置、用于跟踪的有限主机资源等等问题而关闭区。
作用中区可以是打开(即,ZSIO:隐式地打开或ZSEO:显式地打开)或关闭(即,ZSC:关闭)。打开区是准备被写入且当前已分配资源的空或部分充满的区。通过写入命令或区附加命令从主机装置接收的数据可以被编程到当前未填充有先前数据的打开擦除块。关闭区是在进行中的基础上当前不从主机接收写入的空或部分充满的区。区从打开状态移动到关闭状态允许控制器108向其它任务再分配资源。这些任务可以包含(但不限于)打开的其它区、其它常规非区区域,或其它控制器需要。
在打开和关闭区中,写入指针指向区中在ZSLBA与区的最后LBA的末尾之间的某处的位置(即,WP>0)。作用中区可以按ZM的指定或如果对所述区调度写入而在打开和关闭状态之间切换。另外,ZM可以将作用中区复位以清除或擦除存储于区中的数据,使得区切换回到空区。一旦作用中区充满,区就切换到充满状态。充满区是完全填充有数据的区,且不再有可用块供写入数据(即,WP=区容量(ZCAP))。在充满区中,写入指针指向区的可写入容量的末尾。仍可以执行存储于充满区中的数据的读取命令。
ZM可以复位充满区(即,ZSF:充满),调度存储于区中的数据的擦除以使得所述区切换回到空区(即,ZSE:空)。当充满区复位时,所述区可以不立即清除数据,但可以将所述区标记为准备进行写入的空区。然而,复位区必须在切换到打开和作用中区之前被擦除。区可以在ZM复位与ZM打开之间的任何时间擦除。在复位区之后,数据存储装置106可以即刻确定复位区的新ZCAP且更新区元数据中的可写入ZCAP属性。离线区是不可用于写入数据的区。离线区可以是充满状态、空状态,或部分充满状态而不在作用中。
由于复位区清除或调度存储于所述区中的全部数据的擦除,因此避免对个别擦除块的垃圾收集的需要,从而改进数据存储装置106的总体垃圾收集过程。数据存储装置106可以标记一个或多个擦除块用于擦除。当新区将要形成且数据存储装置106预期ZM打开时,被标记用于擦除的所述一个或多个擦除块随后可以被擦除。数据存储装置106可以进一步在擦除块的擦除之后即刻决定且创建区的物理备份。因此,一旦新区打开且选择擦除块以形成区,则擦除块将已经被擦除。此外,每当区复位时,就可以选择用于LBA的新次序和用于区的写入指针,从而使所述区能够容许接收并非顺序次序的命令。可以任选地断开写入指针以使得命令可以写入到针对所述命令指示的任何开始LBA。
控制器108每区提供T区作用中限制(ZAL)值。在各种实施例中,ZAL也可以适用于块和/或流。每一区被指派ZAL值,所述ZAL值表示打开区可以保持打开的时间。在标准存储装置中,在相关区由主机装置104使用(即,存储装置从主机接收针对相关区的写入或读取命令)的整个时间中ZAL值是固定的。ZAL值由名称空间的每一区共享(即,全局ZAL值)。所述ZAL值对应于的时间是在区中已累积不可接受的量的位错误之前的时间的最大值。主机装置104或数据存储装置106可以在达到ZAL值之前关闭区以避免累积不可接受的量的位错误。
如果区作用中限制是非零值,那么控制器可以将ZSIO:隐式地打开、ZSEO:显式地打开或ZSC:关闭状态中的区转变为ZSF:充满状态。当区转变到ZSIO:隐式地打开状态或ZSEO:显式地打开状态时,以秒计的内部定时器启动,使得主机装置104或数据存储装置106辨识何时超过ZAL值。如果超过ZAL值或时间限制,那么控制器108可以警告主机装置104区需要完成(即,区需要处于容量)或使区转变到ZSF:充满状态。当主机装置104被警告区需要完成时,区完成建议字段被设置成1且区信息改变事件报告给主机装置104。当区转变到ZSF:充满状态时,由控制器完成区字段被设置成1且区信息改变事件报告给主机装置104。因为ZAL值是用于存储装置的每一区的全局参数,所以区可能过早地关闭而带来并非最佳的存储驱动器操作或较晚关闭而带来不可接受的量的位错误累积,这可能导致数据存储装置的完整性减小。位错误的不可接受的累积还可以导致数据存储装置的性能减小。全局ZAL参数是静态参数且可以基于主机可能面对的状况的最差估计。
图5是根据一个实施例的区名称空间结构500的示意性图示。区名称空间结构500包含多个NAND通道502a-502n,其中每一NAND通道502a-502n包含一个或多个裸片504a-504n。每一NAND通道502a-502n可以具有专用硬件(HW)接口,使得每一NAND通道502a-502n独立于另一NAND通道502a-502n。所述一个或多个裸片504a-504n中的每一个包含一个或多个擦除块508a-508n。区名称空间结构500还包含一个或多个区506a-506n,其中每一区506a-506n包含来自所述多个裸片中的每一个的一个或多个擦除块508a-508n。在一个实施例中,所述多个区中的每一个的大小是相等的。在另一实施例中,所述多个区中的每一个的大小是不相等的。在又一实施例中,一个或多个区的大小是相等的且剩余一个或多个区的大小是不相等的。
举例来说,第一区506a包含来自每一NAND通道502a-502n的每一裸片504a-504n的第一擦除块508a和第二擦除块508b。区506a-506n可以包含来自每一裸片504a-504n的两个擦除块508a-508n,使得当对裸片504a-504n和/或区506a-506n读取或写入数据时两个擦除块508a-508n增加并行性。在一个实施例中,区可以包含来自每一裸片的偶数个擦除块。在另一实施例中,区可以包含来自每一裸片的奇数个擦除块。在又一实施例中,区可以包含来自一个或多个裸片的一个或多个擦除块,其中所述一个或多个擦除块可以不从一个或多个裸片选择。
此外,与到区506a-506n的每一区附加命令相关联的数据传送大小可以是擦除块的大小,以利用NAND并行性且优化到NAND特征的区附加命令。如果与区附加命令相关联的数据传送大小(例如,写入大小)小于最小传送大小(例如,写入大小),例如擦除块的大小,那么区附加命令可以保持在缓冲器处,例如图1的写入缓冲器116,直到保持在缓冲器处的所述一个或多个区附加命令聚合为最小传送大小。当并行执行所述一个或多个区附加命令时,数据传送与每一区附加命令交错以便最小化写入高速缓存缓冲器(例如,写入缓冲器116)的大小。
图6是ZNS非交错数据传送的示意性图示。ZNS非交错数据传送被示出为在一时间周期内的数据传送。在图6中,四个区附加命令发送到存储装置以写入到区。与所述四个区附加命令中的每一个相关联的数据的大小是1MB。举例来说,与第一区附加命令相关联的数据的大小是1MB,与第二区附加命令相关联的数据的大小是1MB,等等。
用于区附加命令中的每一个的数据在例如PCIe总线的数据总线上传送,其中例如图1的控制器108的控制器对将写入到相应区的裸片中的相应位置的区附加命令进行排队。在数据总线上用于第一区附加命令的1MB的第一数据的传送可以花费约0.14毫秒。列出的时间值并不希望是限制,而是提供实施例的实例。在用于第一区附加命令的第一数据的传送已完成之后,可传送与第二区附加命令相关联的第二数据,且用于第三区附加命令的第三数据是同样的,以此类推。
在数据总线上传送用于区附加命令的数据之后,数据被传送和编程到NAND接口。数据到NAND接口的编程以NAND页粒度发生,例如约32KB、约64KB、约96KB或未列出的任何其它适当大小。每一数据编程操作可以花费约2毫秒,其中写入1MB的数据可以花费约20毫秒。举例来说,考虑写入1MB的数据的时间比获取将写入的数据的时间(即,0.14毫秒)大得多。在写入之前,内部地高速缓冲存储全部获取的数据。由于获取数据的时间比写入数据的时间小得多,因此将高速缓冲存储大量数据,从而必须极大的高速缓冲存储器大小。为了与先前获取的命令并行地开始下一命令的执行,高速缓冲存储器将充分大以确保当与第一获取命令相关联的全部数据被高速缓冲存储时高速缓冲存储器将不会变为充满。如果高速缓冲存储器未充满,那么可并行地获取第二命令且编程到不同裸片。由于获取与写入之间的极大时间差,因此将必需极大的内部高速缓冲存储器来并行地编程不同裸片。
在图6中,控制器接收各自到不同裸片的四个区附加命令。举例来说,第一区附加命令用于到第一裸片0的第一数据,第二区附加命令用于到第二裸片1的第二数据,第三区附加命令用于到第三裸片2的第三数据,且第四区附加命令用于到第四裸片3的第四数据。在当前实施例中,控制器具有四个可用写入缓冲器,使得在接收与四个区附加命令相关联的数据之后,可执行每一命令。如果接收到与第五数据相关联的第五区附加命令,那么第五区附加命令在控制器缓冲器(例如,写入高速缓存缓冲器)中排队直到写入缓冲器被释放。然而,由于用于每一区附加命令的数据大小是1MB,因此许多区附加命令可以存储于控制器缓冲器中,因此增加写入高速缓存缓冲器所需的大小。写入高速缓存缓冲器的额外大小增加成本且需要更多功率用于操作。
图7是根据一个实施例的ZNS交错和优化数据传送的示意性图示。ZNS交错和优化数据传送示出在一时间周期内的数据传送。在图7中,四个区附加命令发送到存储装置以写入到区。与所述四个区附加命令中的每一个相关联的数据的大小是1MB。举例来说,与第一区附加命令相关联的数据的大小是1MB,与第二区附加命令相关联的数据的大小是1MB,等等。然而,与四个区附加命令中的每一个相关联的数据被分割成较小大小,例如96KB的NAND页大小。列出的大小并不希望是限制性的,而是提供实施例的实例。因为数据被分割成96KB的大小,所以高速缓存缓冲器大小(假定四个可用缓冲器)是4*96KB=384KB。然而,如果数据未被分割成较小数据组块,那么高速缓存缓冲器的总大小是4MB或4,096KB。
针对每一待决裸片从主机获取每一96KB数据组块,其中待决裸片与区附加命令相关联。当获取数据组块,例如与第一区附加命令相关联的96KB数据组块时,定时器被激活。定时器从预定值倒计时,使得当定时器期满时,可获取用于同一区附加命令的下一数据组块。
举例来说,用于第一区附加命令的第一数据具有第一定时器,用于第二区附加命令的第二数据具有第二定时器,用于第三区附加命令的第三数据具有第三定时器,且用于第四区附加命令的第四数据具有第四定时器。来自与同一裸片相关联的命令的下一96KB数据组块可仅在与所述裸片相关联的定时器期满之后获取。举例来说,当用于第一区附加命令的第一96KB数据组块的定时器期满时,可获取用于第一区附加命令的第二96KB数据组块且编程到裸片0。因为数据传送大小是在较小区段中编程,所以可以实现高性能和NAND利用率而不会增加存储装置内的写入高速缓存缓冲器大小。
图8是根据一个实施例的剖析区附加命令的框图800的示意性图示。剖析区附加命令的框图800包含区附加命令剖析802、裸片关联804、一个或多个裸片806a-806n,和数据传送调度器812。
区附加命令剖析802可以将与区附加命令相关联的数据分割为较小数据组块,例如在图7的说明中。例如图1的控制器108的控制器可以包含裸片关联804,其中控制器将数据写入到相应裸片806a-806n。举例来说,如果接收到用于第一裸片的第一区附加命令和用于第二裸片的第二区附加命令,那么控制器裸片关联804将分配的数据分拨到每一相应裸片。
所述一个或多个裸片806a-806n各自具有编程定时器808和附加命令FIFO 810。当第一数据组块写入到第一裸片806a时,用于所述第一裸片806a的编程定时器808开始倒计时。在一个实施例中,将定时器初始化到约2.2毫秒,其可以是NAND编程时间。当编程定时器808期满时,附加命令FIFO 810队列中的下一数据组块,例如用于第一裸片806a的第二数据组块,可写入到同一裸片,例如第一裸片806a。在此时间期间,存储装置具有足够时间将数据编程到NAND裸片,使得当数据正被编程到NAND裸片时下一数据组块将在内部高速缓存缓冲器中可用。区附加数据传送调度器812利用轮循调度方案将数据写入到每一NAND裸片。然而,轮循调度方案适用于具有在队列中的待决区附加命令和0的编程定时器值的数据组块。
在数据组块通过区附加数据传送调度器812之后,数据组块传递到读取DMA 814。数据可以在读取DMA 814之后传送到主机存储器816或到写入高速缓存缓冲器818。当数据通过写入高速缓存缓冲器818时,数据组块通过加密引擎820以及编码器和XOR产生器822,然后写入到相关NAND裸片824。
图9是示出根据一个实施例的在ZNS装置中交错和优化数据传送的方法900的流程图。在框902处,存储装置接收区附加命令。存储装置在框904处使区附加命令与相关裸片关联且将区附加命令排队到相关裸片队列。在框906处,控制器确定裸片编程定时器值是否为0,其中0的裸片编程定时器值与期满定时器对应。如果裸片编程定时器不等于0,那么区附加命令保持于裸片队列中。
然而,如果裸片编程定时器是0,那么控制器在框908处将请求发送到仲裁器以从主机存储器获取页大小。在框910处准予请求之后,定时器被激活,其中控制器在框912处确定与尚未从主机存储器获取的区附加命令相关联的数据的剩余大小。然而,如果在框910处未准予请求,那么方法900在框906处关于剩余数据重新开始。在框914处,如果与区附加命令相关联的数据的大小是0,那么方法900完成。然而,如果与区附加命令相关联的数据的大小不是0,那么方法900在框906处关于剩余数据重新开始。
通过交错等效于页大小而不是完整块的数据组块中的区附加命令的数据传送,实现高性能存储器装置利用率而无需增加写入高速缓存缓冲器大小。
在一个实施例中,一种数据存储装置包括:存储器装置,其具有多个存储器裸片;以及控制器,其耦合到存储器装置,其中控制器被配置成:接收多个区附加命令;从主机装置获取用于每一区附加命令的数据,其中用于每一区附加命令的获取的数据少于与所述多个区附加命令中的个别区附加命令相关联的全部数据;以及将获取的数据写入到存储器装置。用于每一区附加命令的获取的数据是具有等于页的大小的数据组块。控制器还被配置成从主机装置获取用于每一区附加命令的额外数据且将额外数据写入到存储器装置。获取用于每一区附加命令的额外数据是在写入用于每一区附加命令的获取的数据的完成之前约5微秒发生。控制器还被配置成在从主机装置获取用于每一区附加命令的数据之后即刻激活定时器。每一区附加命令与所述多个裸片中的相异裸片相关联。与所述多个裸片中的特定裸片相关联的区附加命令的额外数据是在将原始获取的数据写入到特定裸片的完成之前约5微秒获取的。控制器还被配置成针对所述多个裸片中获取数据所针对的每一裸片激活定时器。
在另一实施例中,一种数据存储装置包括:存储器装置,其包含多个裸片;以及控制器,其耦合到存储器装置,其中控制器被配置成:接收与所述多个裸片中的第一裸片相关联的第一区附加命令;接收与所述多个裸片中的第二裸片相关联的第二区附加命令;获取第一区附加命令数据的第一组块;获取第二区附加命令数据的第一组块;将第一区附加命令数据的第一组块写入到第一裸片;将第二区附加命令数据的第一组块写入到第二裸片;以及获取第一区附加命令数据的第二组块,其中第一区附加命令数据的第二组块是在预定时间周期之后获取的;且其中所述预定时间周期小于将第一区数据的第一组块写入到第一裸片所必需的时间周期。控制器还被配置成在获取第一区附加命令数据的第一组块之后即刻激活与第一裸片相关联的定时器,其中所述定时器被配置成在所述预定时间周期中运行。第一区附加命令数据的第一组块具有等于第一裸片的页大小的大小。数据存储装置还包括写入缓冲器,其中所述写入缓冲器被配置成存储用于所述多个裸片的数据。写入缓冲器被配置成存储等效于用于所述多个裸片中的每一裸片的数据页的值的大小的数据。控制器被配置成循序地获取第一区附加命令数据的第一组块和获取第二区附加命令数据的第一组块。控制器被配置成在获取第二区附加命令数据的第一组块之后获取第一区附加命令数据的第二组块。
在另一实施例中,一种数据存储装置包括:存储器装置;控制器,其耦合到存储器装置;以及用以获取与区附加命令相关联的数据的构件,所述用以获取与区附加命令相关联的数据的构件耦合到存储器装置,其中获取的数据具有等于存储器装置的裸片的页大小的大小,且其中与区附加命令相关联的数据具有大于存储器装置的裸片的页大小的大小。数据存储装置还包括定时构件,其中所述定时构件耦合到存储器装置。数据存储装置还包括用以等待获取与区附加命令相关联的额外数据的构件,其中所述用以等待的构件耦合到存储器装置。数据存储装置还包括耦合于存储器装置与控制器之间的写入缓冲器。写入缓冲器被定大小以存储大小等于用于存储器装置的每一裸片的一个页大小的数据。
虽然前述内容是针对本公开的实施例,但可以设计出本公开的其它及另外实施例而这些实施例不脱离本公开的基本范围,且本公开的范围由所附的权利要求书决定。
Claims (20)
1.一种数据存储装置,包括:
存储器装置,所述存储器装置具有多个存储器裸片;以及
控制器,所述控制器耦合到所述存储器装置,其中所述控制器被配置成:
接收多个区附加命令;
从主机装置获取用于每一区附加命令的数据,其中用于每一区附加命令的获取的数据少于与所述多个区附加命令中的个别区附加命令相关联的全部所述数据;以及
将所述获取的数据写入到所述存储器装置。
2.根据权利要求1所述的数据存储装置,其中用于每一区附加命令的所述获取的数据是具有等于页的大小的数据组块。
3.根据权利要求1所述的数据存储装置,其中所述控制器还被配置成从所述主机装置获取用于每一区附加命令的额外数据且将所述额外数据写入到所述存储器装置。
4.根据权利要求3所述的数据存储装置,其中获取用于每一区附加命令的额外数据是在写入用于每一区附加命令的所述获取的数据的完成之前约5微秒发生。
5.根据权利要求1所述的数据存储装置,其中所述控制器还被配置成在从所述主机装置获取用于每一区附加命令的数据之后即刻激活定时器。
6.根据权利要求1所述的数据存储装置,其中每一区附加命令与所述多个裸片中的相异裸片相关联。
7.根据权利要求6所述的数据存储装置,其中与所述多个裸片中的特定裸片相关联的区附加命令的额外数据是在将原始获取的数据写入到所述特定裸片的完成之前约5微秒获取的。
8.根据权利要求7所述的数据存储装置,其中所述控制器还被配置成针对所述多个裸片中获取数据所针对的每一裸片激活定时器。
9.一种数据存储装置,包括:
存储器装置,所述存储器装置包含多个裸片;以及
控制器,所述控制器耦合到所述存储器装置,其中所述控制器被配置成:
接收与所述多个裸片中的第一裸片相关联的第一区附加命令;
接收与所述多个裸片中的第二裸片相关联的第二区附加命令;
获取第一区附加命令数据的第一组块;
获取第二区附加命令数据的第一组块;
将第一区附加命令数据的所述第一组块写入到所述第一裸片;
将第二区附加命令数据的所述第一组块写入到所述第二裸片;以及
获取第一区附加命令数据的第二组块,其中第一区附加命令数据的所述第二组块是在预定时间周期之后获取的;且其中所述预定时间周期小于将第一区数据的所述第一组块写入到所述第一裸片所必需的时间周期。
10.根据权利要求9所述的数据存储装置,其中所述控制器还被配置成在获取第一区附加命令数据的所述第一组块之后即刻激活与所述第一裸片相关联的定时器,其中所述定时器被配置成在所述预定时间周期中运行。
11.根据权利要求9所述的数据存储装置,其中第一区附加命令数据的所述第一组块具有等于所述第一裸片的页大小的大小。
12.根据权利要求9所述的数据存储装置,还包括写入缓冲器,其中所述写入缓冲器被配置成存储用于所述多个裸片的数据。
13.根据权利要求12所述的数据存储装置,其中所述写入缓冲器被配置成存储等效于用于所述多个裸片中的每一裸片的数据页的值的大小的数据。
14.根据权利要求9所述的数据存储装置,其中所述控制器被配置成循序地获取第一区附加命令数据的所述第一组块和获取第二区附加命令数据的所述第一组块。
15.根据权利要求14所述的数据存储装置,其中所述控制器被配置成在获取第二区附加命令数据的所述第一组块之后获取第一区附加命令数据的所述第二组块。
16.一种数据存储装置,包括:
存储器装置;
控制器,所述控制器耦合到所述存储器装置;以及
用以获取与区附加命令相关联的数据的构件,所述用以获取与区附加命令相关联的数据的构件耦合到所述存储器装置,其中获取的数据具有等于所述存储器装置的裸片的页大小的大小,且其中与所述区附加命令相关联的数据具有大于所述存储器装置的所述裸片的所述页大小的大小。
17.根据权利要求16所述的数据存储装置,还包括定时构件,其中所述定时构件耦合到所述存储器装置。
18.根据权利要求16所述的数据存储装置,还包括用以等待获取与所述区附加命令相关联的额外数据的构件,其中所述用以等待的构件耦合到所述存储器装置。
19.根据权利要求16所述的数据存储装置,还包括耦合于所述存储器装置与所述控制器之间的写入缓冲器。
20.根据权利要求19所述的数据存储装置,其中所述写入缓冲器被定大小以存储大小等于用于所述存储器装置的每一裸片的一个页大小的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/888,271 US20210373809A1 (en) | 2020-05-29 | 2020-05-29 | Write Data-Transfer Scheduling in ZNS Drive |
US16/888,271 | 2020-05-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113744783A true CN113744783A (zh) | 2021-12-03 |
Family
ID=78706290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110366821.7A Pending CN113744783A (zh) | 2020-05-29 | 2021-04-06 | 分区名称空间(zns)驱动器中的写入数据传送调度 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210373809A1 (zh) |
CN (1) | CN113744783A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891412A (zh) * | 2024-03-14 | 2024-04-16 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的坏块映射方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11481136B1 (en) * | 2021-04-14 | 2022-10-25 | Western Digital Technologies, Inc. | Very low sized zone support for storage devices |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104903842A (zh) * | 2012-12-31 | 2015-09-09 | 桑迪士克科技股份有限公司 | 用于在非易失性存储器中的异步裸芯操作的方法和系统 |
CN106372001A (zh) * | 2015-07-23 | 2017-02-01 | 株式会社东芝 | 内存系统 |
US20180373450A1 (en) * | 2017-06-27 | 2018-12-27 | Western Digital Technologies, Inc. | Geometry-aware command scheduling |
CN110088723A (zh) * | 2017-03-24 | 2019-08-02 | 西部数据技术公司 | 用于对提交队列和完成队列进行处理并且做出仲裁的系统和方法 |
US20190265909A1 (en) * | 2018-02-28 | 2019-08-29 | Micron Technology, Inc. | Latency-based Scheduling of Command Processing in Data Storage Devices |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200089407A1 (en) * | 2019-11-22 | 2020-03-19 | Intel Corporation | Inter zone write for zoned namespaces |
-
2020
- 2020-05-29 US US16/888,271 patent/US20210373809A1/en not_active Abandoned
-
2021
- 2021-04-06 CN CN202110366821.7A patent/CN113744783A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104903842A (zh) * | 2012-12-31 | 2015-09-09 | 桑迪士克科技股份有限公司 | 用于在非易失性存储器中的异步裸芯操作的方法和系统 |
CN106372001A (zh) * | 2015-07-23 | 2017-02-01 | 株式会社东芝 | 内存系统 |
CN110088723A (zh) * | 2017-03-24 | 2019-08-02 | 西部数据技术公司 | 用于对提交队列和完成队列进行处理并且做出仲裁的系统和方法 |
US20180373450A1 (en) * | 2017-06-27 | 2018-12-27 | Western Digital Technologies, Inc. | Geometry-aware command scheduling |
US20190265909A1 (en) * | 2018-02-28 | 2019-08-29 | Micron Technology, Inc. | Latency-based Scheduling of Command Processing in Data Storage Devices |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891412A (zh) * | 2024-03-14 | 2024-04-16 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的坏块映射方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210373809A1 (en) | 2021-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11126378B1 (en) | Rate limit on the transitions of zones to open | |
KR102569783B1 (ko) | 비순차적 구역 네임스페이스들 | |
US11520660B2 (en) | Storage devices hiding parity swapping behavior | |
US11599304B2 (en) | Data aggregation in ZNS drive | |
CN112148627A (zh) | 针对分区命名空间的分区形成 | |
US20200409601A1 (en) | Hold of Write Commands in Zoned Namespaces | |
US11500727B2 (en) | ZNS parity swapping to DRAM | |
CN114730604A (zh) | 动态zns开放分区活动限制 | |
US11194521B1 (en) | Rate limit on the transitions of streams to open | |
US11372543B2 (en) | Zone-append command scheduling based on zone state | |
CN114385235A (zh) | 使用主机内存缓冲的命令排出 | |
CN114730290A (zh) | 将变化日志表移动至与分区对准 | |
CN117043753A (zh) | Zns设备中的不同写入优先级 | |
CN113744783A (zh) | 分区名称空间(zns)驱动器中的写入数据传送调度 | |
CN116888585A (zh) | 用于简单复制命令的基于高速缓存的流 | |
US11853565B2 (en) | Support higher number of active zones in ZNS SSD | |
US11138066B1 (en) | Parity swapping to DRAM | |
CN116897341A (zh) | 隐含流 | |
CN114746835A (zh) | 用中间填充保持分区开放 | |
US20240111426A1 (en) | Data Storage Device That Detects and Releases Bottlenecks In Hardware | |
WO2024063821A1 (en) | Dynamic and shared cmb and hmb allocation | |
WO2024097493A1 (en) | Write buffer linking for easy cache reads | |
CN114730287A (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 |