CN114730248A - 对分区转变为开放的速率限制 - Google Patents
对分区转变为开放的速率限制 Download PDFInfo
- Publication number
- CN114730248A CN114730248A CN202080079833.5A CN202080079833A CN114730248A CN 114730248 A CN114730248 A CN 114730248A CN 202080079833 A CN202080079833 A CN 202080079833A CN 114730248 A CN114730248 A CN 114730248A
- Authority
- CN
- China
- Prior art keywords
- partition
- open
- volatile memory
- active
- partitions
- 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
- 238000005192 partition Methods 0.000 title claims abstract description 489
- 230000007704 transition Effects 0.000 title description 2
- 230000015654 memory Effects 0.000 claims description 151
- 230000008859 change Effects 0.000 claims description 18
- 210000004027 cell Anatomy 0.000 claims 20
- 210000000352 storage cell Anatomy 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 8
- 238000012005 ligant binding assay Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000037081 physical activity Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/064—Management of blocks
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开整体涉及操作存储设备的方法。该存储设备包括控制器,该控制器包括第一随机存取存储器(RAM1)、第二随机存取存储器(RAM2)和被划分为多个分区的存储单元。该控制器将主机局限为可以一次处于开放和活动状态的分区的最大数量。开放分区可以在预先确定的时间量到期后切换到关闭状态,反之亦然。开放分区的该最大数量基于临时RAM1缓冲器中的空间量和用于进行以下操作的一个或多个时间量:生成奇偶校验数据、将该奇偶校验数据从该RAM2复制到该RAM1、更新该奇偶校验数据、将分区从该开放和活动状态切换到该关闭状态。
Description
相关申请的交叉引用
本专利申请要求2020年5月27日提交的美国申请号16/885,073的优先权,该专利申请全文以引用方式并入本文。
背景技术
技术领域
本公开的实施方案整体涉及存储设备,诸如固态驱动器(SSD)。
相关领域的描述
存储设备诸如SSD可用于需要相对低延迟和高容量存储的应用中的计算机中。例如,SSD可表现出比硬盘驱动器(HDD)更低的延迟,尤其是对于随机读取和写入而言。通常,SSD的控制器接收将数据从主机设备读取或写入到存储器设备的命令。数据被读取并写入存储器设备中的一个或多个擦除块。这些擦除块中的每个擦除块与逻辑块地址相关联,使得SSD和/或主机设备知道存储数据的位置。一个或多个擦除块可通过其相应的逻辑块地址分组在一起以形成多个分区。
由于存储设备接收到将数据写入特定分区的命令,因此将与该命令相关联的该数据写入存储器设备,并且针对该数据同时生成奇偶校验数据以保护该数据。然后将该奇偶校验数据存储在存储设备内的易失性存储器中。然而,由于易失性存储器昂贵,因此存储设备通常包括非常有限量的易失性存储器,诸如SRAM和DRAM。由于多个分区可以同时开放,因此写入易失性存储器的数据会占用许多宝贵的易失性存储器空间,这可能减少可用于其他数据的易失性存储器的量,或者可能需要在存储设备中包括更大量的易失性存储器。此外,在各种易失性存储器之间传输数据可能需要很长时间,从而导致存储设备的写入延迟。
因此,需要一种在存储设备中生成和存储数据的新方法。
发明内容
本公开整体涉及操作存储设备的方法。该存储设备包括控制器,该控制器包括第一随机存取存储器(RAM1)、第二随机存取存储器(RAM2)和被划分为多个分区的存储单元。该控制器将主机局限为可以一次处于开放和活动状态的分区的最大数量。开放分区可以在预先确定的时间量到期后切换到关闭状态,反之亦然。开放分区的该最大数量基于临时RAM1缓冲器中的空间量和用于进行以下操作的一个或多个时间量:生成奇偶校验数据、将该奇偶校验数据从该RAM2复制到该RAM1、更新该奇偶校验数据、将分区从该开放和活动状态切换到该关闭状态。
在一个实施方案中,存储设备包括非易失性存储单元,其中该非易失性存储单元的容量被划分为多个分区。该非易失性存储单元包括多个管芯,并且该多个管芯中的每个管芯包括多个擦除块。该存储设备还包括第一易失性存储器单元和耦接到该非易失性存储单元和该第一易失性存储器单元的控制器。该控制器包括第二易失性存储器单元,其中该控制器被配置成:设置开放和活动分区的最大数量,并且接收将数据写入该多个分区中的一个或多个开放和活动分区的一个或多个第一命令。该控制器被进一步配置成:接收将数据写入第一分区的一个或多个第二命令,其中第一分区处于关闭或资源节省较低性能内部状态;将最近最少使用的开放和活动分区改变为该关闭或资源节省较低性能内部状态;并且将第一分区改变为开放和活动状态。
在另一个实施方案中,存储设备包括非易失性存储单元,其中该非易失性存储单元的容量被划分为多个分区。该非易失性存储单元包括多个管芯,并且该多个管芯中的每个管芯包括多个擦除块。该存储设备还包括第一易失性存储器单元和耦接到该非易失性存储单元和该第一易失性存储器单元的控制器。该控制器包括第二易失性存储器单元,其中该控制器被配置成:设置开放和活动分区的最大数量;接收将数据写入该多个分区中的一个或多个开放和活动分区的一个或多个命令;并且在第二易失性存储器单元中的一个或多个临时位置中的临时位置中生成针对第一开放和活动分区的新的第一奇偶校验数据。该控制器被进一步配置成将针对第一开放和活动分区的先前的第一奇偶校验数据从第一易失性存储器单元复制到第二易失性存储器单元中的第一位置。该控制器还被配置成用第二易失性存储器单元中的新的第一奇偶校验数据来更新先前的第一奇偶校验数据,其中生成该新的第一奇偶校验数据、复制该先前的第一奇偶校验数据以及更新该先前的第一奇偶校验数据所花费的时间量确定开放和活动分区的最大数量。
在另一个实施方案中,存储设备包括非易失性存储单元,其中该非易失性存储单元的容量被划分为多个分区。该非易失性存储单元包括多个管芯,并且该多个管芯中的每个管芯包括多个擦除块。该存储设备还包括第一易失性存储器单元和耦接到该非易失性存储单元和该第一易失性存储器单元的控制器。该控制器包括第二易失性存储器单元,其中该第二易失性存储器包括一个或多个临时位置。该控制器被配置成:设置开放和活动分区的最大数量,其中基于第二易失性存储器中的临时位置的数量来确定开放和活动分区的最大数量;并且接收将数据写入该多个分区中的一个或多个开放和活动分区的一个或多个第一命令。该控制器被进一步配置成:在第二易失性存储器单元中的第一临时位置中生成针对第一开放和活动分区的新的第一奇偶校验数据;在接收到将数据写入关闭分区的一个或多个第二命令后,将第二开放和活动分区改变为关闭或资源节省较低性能内部状态;并且将该关闭分区改变为开放和活动状态。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1是示出根据一个实施方案的存储系统的示意框图。
图2A示出了根据一个实施方案的在存储设备中利用的分区命名空间。
图2B示出了根据一个实施方案的针对图2A的存储设备的分区命名空间的状态图。
图3A至图3D示出了根据各种实施方案的生成和/或更新对应于易失性存储器中的各种分区的数据的示意性框图。
图4示出了根据各种实施方案的在存储设备中随时间更新飞行中数据的示意图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开整体涉及操作存储设备的方法。该存储设备包括控制器,该控制器包括第一随机存取存储器(RAM1)、第二随机存取存储器(RAM2)和被划分为多个分区的存储单元。该控制器将主机局限为可以一次处于开放和活动状态的分区的最大数量。开放分区可以在预先确定的时间量到期后切换到关闭状态,反之亦然。开放分区的该最大数量基于临时RAM1缓冲器中的空间量和用于进行以下操作的一个或多个时间量:生成奇偶校验数据、将该奇偶校验数据从该RAM2复制到该RAM1、更新该奇偶校验数据、将分区从该开放和活动状态切换到该关闭状态。
图1是示出根据本公开的一种或多种技术的存储系统100的示意性框图,其中存储设备106可以用作主机设备104的存储设备。例如,主机设备104可以利用包括在存储设备106中的存储单元110(诸如非易失性存储器)来存储和检索数据。例如,存储单元110可以是任何类型的非易失性存储器,诸如MRAM、NAND、NOR或HDD。在以下描述中,出于简化和示例性目的,存储单元110被称为非易失性存储器(NVM)110。主机设备104包括主机DRAM 138。在一些示例中,存储系统100可以包括可作为存储阵列操作的多个存储设备,诸如存储设备106。例如,存储系统100可以包括多个存储设备106,其被配置作为共同用作主机设备104的大容量存储设备的廉价/独立磁盘(RAID)冗余阵列。
存储系统100包括主机设备104,该主机设备可以向一个或多个存储设备诸如存储设备106存储数据和/或从其检索数据。如图1所示,主机设备104可以经由接口114与存储设备106通信。主机设备104可以包括多种设备中的任何一种,包括计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手机诸如所谓的“智能”电话、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。
存储设备106包括控制器108、NVM 110、电源111、第一随机存取存储器(RAM)或易失性存储器112,诸如动态随机存取存储器(DRAM)和接口114。控制器108可包括奇偶校验引擎或XOR引擎124和第二RAM或易失性存储器118,诸如静态随机存取存储器(SRAM)。XOR引擎124是一种奇偶校验引擎,并且出于示例性目的被称为XOR引擎。然而,XOR引擎124可以包括奇偶校验引擎包括的其他实施方案。在以下描述中,出于简化和示例性目的,第一RAM或易失性存储器112被称为DRAM,并且第二RAM或易失性存储器118被称为SRAM。在一些示例中,为了清楚起见,存储设备106可以包括图1中未示出的附加部件。例如,存储设备106可以包括印刷电路板(PCB),存储设备106的部件机械地附接到该印刷电路板,并且该印刷电路板包括电互连存储设备106的部件等的导电迹线。在一些示例中,存储设备106的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些示例性标准形状因数包括但不限于2.5”数据存储设备(例如,HDD或SSD)、2.5”数据存储设备、1.8”数据存储设备、外围部件互连(PCI)、PCI扩展(PCI-X)、PCI Express(PCIe)(例如,PCIe x1、x4、x8、x16、PCIe Mini卡、MiniPCI等)。在一些示例中,存储设备106可以直接耦接(例如,直接焊接)到主机设备104的母板。
存储设备106的接口114可以包括用于与主机设备104交换数据的数据总线和用于与主机设备104交换命令的控制总线中的一者或两者。接口114可以根据任何合适的协议操作。例如,接口114可以根据以下协议中的一个或多个协议来操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤信道协议(FCP)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、PCI、PCIe、非易失性存储器标准(NVMe)、OpenCAPI、GenZ、高速缓存相干接口加速器(CCIX)、计算快速链接(CXL)、开放信道SSD(OCSSD)等。接口114的电连接(例如,数据总线、控制总线或两者)电连接到控制器108,从而提供主机设备104与控制器108之间的电连接,允许在主机设备104与控制器108之间交换数据。在一些示例中,接口114的电连接还可以允许存储设备106从主机设备104接收电力。例如,如图1所示,电源111可以经由接口114从主机设备104接收电力。
存储设备106包括NVM 110,该NVM可以包括多个存储器设备或存储器单元。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闪存存储器设备擦除数据。
NVM 110的一部分可被格式化为逻辑块,使得NVM 110的容量被划分为多个分区。分区中的每个分区包括NVM 110的多个物理块或擦除块,并且该擦除块中的每个擦除块与多个逻辑块相关联。该逻辑块中的每个逻辑块与唯一LBA或扇区相关联。分区中的每个分区可具有与NVM 110的一个或多个擦除块的容量对准的尺寸。当控制器108从诸如主机设备104接收命令时,控制器108可以从与NVM 110的多个擦除块相关联的多个逻辑块读取数据以及将数据写入该多个逻辑块。
存储设备106包括电源111,其可以向存储设备106的一个或多个部件提供电力。当以标准模式操作时,电源111可以使用由外部设备诸如主机设备104提供的电力向一个或多个部件供电。例如,电源111可以使用经由接口114从主机设备104接收的电力向一个或多个部件供电。在一些示例中,电源111可以包括一个或多个电力存储部件,其被配置成当以关闭模式操作时向一个或多个部件供电,诸如在停止从外部设备接收电力的情况下。以这种方式,电源111可以用作机载备用电源。一个或多个电力存储部件的一些示例包括但不限于电容器、超级电容器、电池等。在一些示例中,可由一个或多个电力存储部件存储的电量可以是一个或多个电力存储部件的成本和/或尺寸(例如,面积/体积)的函数。换言之,随着由一个或多个电力存储部件存储的电量增加,一个或多个电力存储部件的成本和/或尺寸也增加。
存储设备106还包括易失性存储器112,该易失性存储器可由控制器108用来存储信息。易失性存储器112可以包括一个或多个易失性存储器设备。在一些示例中,控制器108可以使用易失性存储器112作为高速缓存。例如,控制器108可以将高速缓存的信息存储在易失性存储器112中,直到高速缓存的信息被写入非易失性存储器110。如图1所示,易失性存储器112可以消耗从电源111接收的电力。易失性存储器112的示例包括但不限于RAM、DRAM、SRAM和同步动态RAM(SDRAM(例如,DDRI、DDR2、DDR3、DDR3L、LPDDR3、DDR4、LPDDR4、DDR5、LPDDR5等))。如图1所示,易失性存储器可以消耗从电源111接收的电力。
各种类型的易失性存储器可用于不同的访问属性。例如,DRAM 112可被布置用于更长的突发访问,以改善相同访问总线的带宽(BW)。或者,DRAM 112可用于较小的访问,使得随机的小访问可具有更好的延迟。控制器108包括附加的可选SRAM和/或嵌入式MRAM126。嵌入式MRAM 126是可在另一实施方案中使用的另一替代存储器。类似地,可针对不同的设计目的优化对MRAM 126的访问,但是SSD控制器108中嵌入式MRAM 126的数量可能对成本敏感。因此,选择多少数据和哪些数据进入高级非易失性存储器和高级易失性存储器将受制于系统权衡。
存储设备106包括控制器108,其可以管理存储设备106的一个或多个操作。例如,控制器108可经由切换模式(TM)总线128管理从NVM 110读取数据和/或将数据写入该NVM。在一些实施方案中,当存储设备106从主机设备104接收写入命令时,控制器108可以发起数据存储命令以将数据存储到该NVM 110并且监测数据存储命令的进度。控制器108可以确定存储系统100的至少一个操作特性,并且将至少一个操作特性存储到该NVM 110。在一些实施方案中,当存储设备106从主机设备104接收到写入命令时,控制器108在将数据发送到NVM 110之前将与该写入命令相关联的数据临时存储在内部存储器或缓冲器(未示出)中。
控制器108可包括XOR引擎124,该XOR引擎具有生成XOR奇偶校验信息的逻辑和/或特征。异或(XOR)奇偶校验信息可用于改善存储设备106的可靠性,诸如使得其能够对往返于NVM写入失败或读取失败的数据进行数据恢复,或者使得其能够进行数据恢复以防电力丢失。可通过使用基于存储到存储设备106的数据生成或计算的XOR奇偶校验信息来提供可靠性。数据可经过XOR引擎124写入到NVM 110。XOR引擎124可生成要写入到SRAM 118的奇偶校验流。SRAM 118和DRAM 112可各自包含可将数据写入的多个区域。可以将与分区相关联的数据从SRAM 118中的SRAM区域122a-122n复制到DRAM 112中的DRAM区域116a-116n,反之亦然。
SRAM 118和DRAM 112各自单独包括一个或多个管芯。该一个或多个管芯中的每个管芯都包括一个或多个存储组,存储组由一个或多个存储库构成。该存储库由行和页构成。控制器108中的SRAM 118可在逻辑上或物理上分成不同的SRAM区或区域122a-122n,以供控制器108使用。类似地,DRAM 112可在逻辑上或物理上分成不同的DRAM区或区域116a-116n,以供控制器108使用。控制器108内的MRAM可在逻辑上或物理上分成不同的MRAM区或区域(未示出)。MRAM的外部附件通常具有供应商特定的结构和访问权限,此处不做介绍。
图2A示出了根据一个实施方案的在存储设备200中使用的分区命名空间(ZNS)202视图。存储设备200可以将ZNS 202视图呈现给主机设备。图2B示出了根据一个实施方案的存储设备200的ZNS 202的状态图250。存储设备200可以是图1的存储系统100的存储设备106。存储设备200可以具有一个或多个ZNS 202,并且每个ZNS 202可以是不同的大小。除一个或多个分区命名空间202之外,存储设备200还可以包括一个或多个常规的命名空间。此外,ZNS 202可以是用于SAS的分区块命令(ZBC)和/或用于SATA的分区设备ATA命令集(ZAC)。由于可能的逻辑与物理活动之间的关系,主机侧分区活动可与分区驱动器中的介质活动更直接地相关。
在存储设备200中,ZNS 202是可被格式化成逻辑块使得容量被划分为多个分区206a-206n(统称为分区206)的NVM的数量。NVM可以是图1的存储单元或NVM 110。分区206中的每个分区包括存储器单元或NVM 204的多个物理块或擦除块(未示出),并且这些擦除块中的每个擦除块与多个逻辑块(未示出)相关联。分区206中的每个分区可以具有与NVM或NAND器件的一个或多个擦除块的容量对准的大小。当控制器208从诸如主机设备(未示出)或主机设备的提交队列接收命令时,控制器208可从与ZNS 202的多个擦除块(EB)相关联的多个逻辑块读取数据并将数据写入该多个逻辑块。该逻辑块中的每个逻辑块与唯一LBA或扇区相关联。
在一个实施方案中,NVM 204为NAND器件。该NAND器件包括一个或多个管芯。该一个或多个管芯中的每个管芯包括一个或多个平面。该一个或多个平面中的每个平面包括一个或多个擦除块。该一个或多个擦除块中的每个擦除块包括一条或多条字线(例如,256条字线)。该一条或多条字线中的每条字线可以在一个或多个页面中寻址。例如,MLC NAND管芯可使用上页面和下页面来达到整个字线的每个单元中的两个位(例如,每页16KiB)。此外,可以以等于或小于完整页面的粒度访问每个页面。控制器可以用户数据粒度逻辑块地址(LBA)大小512字节频繁地访问NAND。因此,如在下文描述中所提及的,NAND位置等于512字节的粒度。因此,LBA大小为512字节并且MLC NAND的两个页面的页面大小为16KiB,这导致每个字线32个LBA。然而,NAND位置大小不旨在进行限制,并且仅用作示例。
当将数据写入擦除块时,在分区206内对应地更新一个或多个逻辑块,以跟踪数据在NVM 204内的位置。数据可一次写入一个分区206,直到分区206变满,或写入多个分区206,使得多个分区206可部分变满。类似地,当将数据写入特定分区206时,数据可以按NAND位置的顺序逐页或逐字线地一次一块地写入多个擦除块,直到移动到相邻块(即,写入第一擦除块直到在移动到第二擦除块之前第一擦除块变满),或者可以按NAND位置的顺序逐页或逐字线地一次多块地写入多个擦除块,以平行的方式部分填充每个块(即,在写入每个擦除块的第二NAND位置或页面之前写入每个擦除块的第一NAND位置或页面)。每个NAND位置的这种顺序编程是许多NAND EB的典型非限制性要求。
当控制器208选择将存储每个分区的数据的擦除块时,控制器208将能够在分区开放时间选择擦除块,或者可以在达到填充该特定擦除块的第一字线的需要时选择擦除块。当利用上述在开始下一个擦除块之前完全填充一个擦除块的方法时,这可能更加有差别。控制器208可以使用时间差来在即时基础上选择更理想的擦除块。将哪个擦除块分配和指派给每个分区及其连续LBA的决定可以在控制器208内针对零个或多个并行分区一直发生。
分区206中的每个分区与分区起始逻辑块地址(ZSLBA)或分区起始扇区相关联。ZSLBA是分区206中的第一可用LBA。例如,第一分区206a与ZaSLBA相关联,第二分区206b与ZbSLBA相关联,第三分区206c与ZcSLBA相关联,第四分区206d与ZdSLBA相关联,并且第n分区206n(即最后一个分区)与ZnSLBA相关联。每个分区206由其ZSLBA标识,并且被配置成接收顺序写入(即,以接收写入命令的顺序将数据写入NVM110)。
当将数据写入分区206时,将写入指针210推进或更新为指向或指示分区206中的下一个可用块,以跟踪下一个写入起始点(即,先前写入的完成点等于后续写入的起始点)。因此,写入指针210指示对分区206的后续写入将在何处开始。后续写入命令是“分区附加”命令,其中与该后续写入命令相关联的数据在写入指针210指示为下一个起始点的位置处附加到分区206。可以将分区206内的LBA的排序列表存储用于写入排序。每个分区206可以具有其自身的写入指针210。因此,当接收到写入命令时,分区由其ZSLBA标识,并且写入指针210确定在所识别的分区内数据的写入开始的位置。
图2B示出了针对图2A的ZNS 202的状态图250。在状态图250中,每个分区可以处于不同状态,诸如空的、活动的、满的或脱机。当分区为空的时,该分区不含数据(即,分区中的任何擦除块当前均未存储数据),并且写入指针位于ZSLBA(即,WP=0)处。一旦向分区调度写入或由主机发出分区开放命令后,空分区将切换到开放和活动分区。分区管理(ZM)命令可用于在分区开放和分区关闭状态(都是活动状态)之间移动分区。如果分区是活动的,则该分区包括可写入的开放块,并且可向主机提供活动状态下的推荐时间的描述。控制器208包括ZM。分区元数据可存储在ZM和/或控制器208中。
术语“写入”包括当用户数据尚未填充所有可用NAND位置时,在擦除块中的0个或更多个NAND位置和/或擦除块中的部分填充NAND位置上编程用户数据。术语“写入”还可以包括由于以下原因而将分区移动至满的:内部驱动器处理需要(因为错误位在开放的擦除块上更快地累积而导致的开放块数据保持问题),存储设备200由于资源限制(像太多开放分区要跟踪或已发现的缺陷状态等等)而关闭或填充分区,或者主机设备因为诸如没有更多数据要发送给驱动器、计算机关闭、主机上的错误处理、用于跟踪的有限主机资源等等问题而关闭分区。
活动分区可以是开放的或关闭的。开放分区是已准备好写入并具有当前已分配资源的空分区或部分填满分区。利用写入命令或分区附加命令从主机设备接收的数据可被编程到当前未填充先前数据的开放的擦除块。已关闭分区是当前未从主机持续不断地接收写入的空分区或部分填满分区。分区的关闭状态是资源节省较低性能内部状态。分区从开放状态移动到关闭状态允许控制器308将资源重新分配给其他任务。这些任务可包括但不限于其他开放的分区、其他常规的非分区区域、或其他控制器需要。
在开放分区和关闭分区中,写入指针指向分区中位于ZSLBA和分区的最后LBA的末端之间的某个位置(即,WP>0)。活动分区可根据由ZM进行的指定在开放和关闭状态之间切换,或者在将写入调度到分区时进行该切换。另外,ZM可重置活动分区以清除或擦除存储在分区中的数据,使得该分区切换回空分区。一旦活动分区已满,该分区就会切换到满的状态。满的分区是完全填充有数据的分区,并且没有用于写入数据的更多可用扇区或LBA(即,WP=分区容量(ZCAP))。在满的分区中,写入指针指向该分区的可写入容量的末端。仍可执行满的分区中存储的数据的读取命令。
分区可具有任何总的容量,诸如256MiB或512MiB。然而,每个分区的一小部分可能无法访问以将数据写入,但仍可以被读取,诸如每个分区的存储奇偶校验数据的一部分和一个或多个被排除的擦除块。例如,如果分区206的总容量是512MiB,那么ZCAP可以是470MiB,这是可用于将数据写入的容量,而42MiB不可用于写入数据。分区的可写入容量(ZCAP)等于或小于总分区存储容量。存储设备200可以在分区重置后确定每个分区的ZCAP。例如,控制器208或ZM可以确定每个分区的ZCAP。存储设备200可以在分区重置时确定该分区的ZCAP。
ZM可重置满的分区,从而调度对存储在该分区中的数据的擦除,使得该分区切换回空分区。在重置满的分区时,尽管该分区可能标记为可供写入的空分区,但该分区的数据可能不被立即清除。但是,在切换到开放和活动分区之前,必须擦除重置的分区。可在ZM重置和ZM开放之间的任何时间擦除分区。在重置分区时,存储设备200可确定重置分区的新ZCAP并更新分区元数据中的可写入ZCAP属性。脱机分区是无法将数据写入的分区。脱机分区可处于满的状态、空状态或处于部分满的状态而不处于活动状态。
由于重置分区会清除存储在分区中的所有数据或调度对存储在分区中的所有数据的擦除,因此消除了对各个擦除块进行垃圾回收的需要,从而改善了存储设备200的整体垃圾回收过程。存储设备200可以标记一个或多个擦除块以用于擦除。当将要形成新分区并且存储设备200预计ZM开放时,则可以擦除被标记用于擦除的一个或多个擦除块。存储设备200还可以在擦除这些擦除块后决定和创建该分区的物理支持。因此,一旦新分区被开放并且擦除块被选择以形成分区,该擦除块将被擦除。此外,每次重置分区时,可选择分区206的LBA和写入指针210的新顺序,从而使分区206能够容忍不按顺序接收命令。可以任选地关闭写入指针210,使得可以将命令写入为该命令指示的任何起始LBA。
重新参考图2A,当主机发送写入命令以向分区206写入数据时,控制器208拉入写入命令并将写入命令标识成对新打开分区206的写入。控制器208选择一组EB以存储与新开放分区206的写入命令相关联的数据,并且新开放分区206切换到活动分区206。该写入命令可以是用于写入新数据的命令,或者是将有效数据移动到另一个分区以用于垃圾回收目的的命令。控制器208被配置为从由主机设备填充的提交队列中DMA读取新命令。
在刚切换到活动分区206的空分区206中,将数据指派给分区206和该分区206的始于ZSLBA的一组相关联顺序LBA,因为写入指针210将与ZSLBA相关联的逻辑块指示为第一可用逻辑块。可以将该数据写入一个或多个擦除块或已经针对分区206的物理位置分配的NAND位置。在已将与写入命令相关联的数据写入分区206之后,写入指针210被更新为指向可用于主机写入的下一个LBA(即,第一写入的完成点)。来自该主机写入命令的写入数据被顺序地编程到擦除块中被选择用于分区的物理支持的下一个可用NAND位置中。
例如,控制器208可接收对第三分区206c的第一写入命令,或第一分区附加命令。主机按顺序识别分区206的哪个逻辑块用来写入与第一命令相关联的数据。然后将与第一命令相关联的数据写入第三分区206c中的如写入指针210所指示的第一或下一个可用LBA,并且将写入指针210推进或更新为指向可用于主机写入的下一个可用LBA(即,WP>0)。如果控制器208接收到对第三分区206c的第二写入命令,或第二分区附加命令,则与第二写入命令相关联的数据被写入第三分区206c中的由写入指针210识别的下一可用LBA。一旦将与第二命令相关联的数据写入第三分区206c,则写入指针210再次推进或更新为指向可用于主机写入的下一个可用LBA。重置第三分区206c将写入指针210移动回到ZcSLBA(即,WP=0),并且该第三分区206c切换到空分区。
图3A至图3D示出了根据各种实施方案的生成和/或更新对应于易失性存储器中的各种分区的数据的示意性框图。图1的系统100的各方面将根据图3A至图3D进行使用。在以下描述中,出于简化和示例性目的,将非易失性存储单元110称为NVM,将第一RAM或易失性存储器112(即,第一RAM1)称为DRAM,并且将第二RAM或易失性存储器118(即,第二RAM2)称为SRAM。
数据存储设备300可以是图1中描述的存储设备106或图2A的存储设备200,并且非易失性存储器(NVM)306可以是图1的系统100中描述的非易失性存储器110。可以通篇利用术语诸如NAND来描述非易失性存储器110。这种术语并非旨在进行限制,而是提供参考的可能实施方案的示例。控制器302可以是图1的系统100中描述的控制器108,XOR引擎304可以是图1的系统100中描述的XOR引擎124,SRAM 308可以是图1的系统100中描述的SRAM 118,并且DRAM 312可以是图1的DRAM 112。
通篇利用短语“奇偶校验数据”作为飞行中数据的示例,并非旨在进行限制,因为其他形式的飞行中数据可以是相关的。换句话说,以下示例中讨论的奇偶校验数据是飞行中数据,并且可以包括未写入的主机数据。未写入的用户数据或主机数据可以包括较小长度或较小量的数据(例如,小于一个或多个字线的大小),这些数据被存储在停放位置或缓冲器中(诸如SRAM区域310m)直到数据的聚合大小达到最小大小(例如,一个或多个字线的大小),在这种情况下,将未写入的用户数据写入NVM 110。
视为飞行中数据的奇偶校验数据被认为是奇偶校验缓冲器,并且可以保护由于数据损坏、错误位传输、电力丢失和数据丢失的其他原因导致的数据丢失。例如,奇偶校验数据可以在SRAM中生成或更新,并且在复制到NVM 306之前临时存储在SRAM 308和/或DRAM312中。此外,例如,在电力故障的情况下,位于存储设备(诸如图1的存储设备300)内的电容器(未示出)可以存储足够量的能量以将数据从DRAM 312编程到NVM 306,从而有助于防止数据丢失。
在图3A至图3D中,分区由“Wxx”表示,其中“x”表示分区ID。在SRAM区域310a-310n中使用“Wxx”限定分区ID表示控制器302已接收到将数据写入分区的写入命令并且将更新针对对应分区的奇偶校验数据。然而,在DRAM区域314a-314n中使用“Wxx”限定分区ID表示奇偶校验数据已在SRAM区域310a-310n中成功更新,并且已从相关的SRAM区域310a-310n写入DRAM区域314a-314n。SRAM区域310a-310n和DRAM区域314a-314n可以是与分区相关的任何合适的大小,如上文所描述的。
此外,在下文所讨论的实施方案中,SRAM 308可以包括专用于与写入命令相关联的分区的奇偶校验数据的临时缓冲器或“高速暂存区”的一定量的空间。在一些实施方案中,该临时缓冲器可以包括约一个SRAM区域310n到约五个SRAM区域310n-4-310n或多于五个SRAM区域310n-4-310n。存储在临时SRAM区域310n-4-310n中的数据可以被短时间存储。SRAM 308还包括多个非临时SRAM区域310a-310f,在该多个非临时SRAM区域中,数据可以被长时间存储。列出的临时和非临时的SRAM区域310a-310n的数量并非旨在进行限制,而是提供可能实施方案的示例。
针对分区的奇偶校验数据还可以由星号(*)或单引号或角分符号(‘)表示。星号(*)表示针对分区的新奇偶校验数据已从XOR引擎304编程到SRAM 118中的临时缓冲器,但尚未更新存储从DRAM区域314a-314n复制的针对该分区的相关奇偶校验数据的SRAM区域310a-310n。单引号或角分符号(‘)是指包括与到SRAM 308的临时缓冲器的写入命令相关联的更新的奇偶校验数据的分区。
数据存储设备300可以将主机(诸如图1的主机设备104)局限或限制为处于开放和活动状态的并行分区的最大数量。例如,处于开放活动状态的分区的最大数量可以被局限为约128个分区到约1024个分区。活动分区是指如图2B中所讨论的可供写入或复制数据的分区。开放状态描述正在接收写入命令的分区,而关闭状态或资源节省较低性能内部状态描述当前未接收写入命令的分区。分区的关闭状态是资源节省较低性能内部状态。
在自上次切换分区的状态以来预先确定的时间量已经到期(诸如约0.5秒至约1秒、1秒至约5秒或约0.5秒至约5秒)之后,控制器302允许主机发送将数据写入关闭分区的写入命令。然后,控制器302将所识别的关闭分区切换到开放和活动状态,并且切换最近最少使用的开放分区(例如,在最长时间量中未接收到写入命令的分区)。因此,不超过处于开放和活动状态的并行分区的最大数量。上文列出的预先确定的时间量和处于开放和活动状态的分区的最大数量并非旨在进行限制,而是提供可能实施方案的示例。
用于分区的开放状态和关闭或资源节省较低性能内部状态之间的切换需要ZNS,如图2A至图2B中所讨论的。NVM 306的开放状态和活动的分区的最大数量可以等于SRAM308临时缓冲器位置的数量。如果接收到中断与开放分区相关联的当前写入命令或具有比该当前写入命令更高优先级的写入命令,或者如果预先确定的时间量已经到期或过去,则控制器302可以将活动和开放的分区交换到关闭分区。
通常,如下文进一步所讨论的,将数据写入分区的命令由控制器302接收,XOR引擎304在临时SRAM区域310a-310n中为该命令生成奇偶校验数据。同时,如果针对分区的先前的奇偶校验数据存在于DRAM 312中,则将该先前的奇偶校验数据复制到SRAM区域310a-310f(例如,数据可以被长期存储的非临时SRAM区域)。一旦先前的奇偶校验数据处于SRAM区域310a-310f中,就用存储在临时SRAM区域310n-4-310n中的新奇偶校验数据来更新先前的奇偶校验数据。然后将所更新的奇偶校验数据从SRAM 308复制到DRAM区域314a-314n。
从DRAM区域314a-314n到SRAM区域310a-310n的数据传输速度可以比XOR引擎304到SRAM 308的临时缓冲器的写入速度更慢,或反之亦然。临时缓冲器中的空间量以及用于进行以下操作的时间量共同确定开放和活动分区的最大数量:为SRAM 308的临时缓冲器位置中的写入命令生成新奇偶校验数据、将先前的奇偶校验数据从DRAM 312复制到SRAM308、用SRAM 308中的新奇偶校验数据来更新先前的奇偶校验数据,以及将分区从开放和活动状态切换到关闭或资源节省较低性能内部状态。因此,用于进行以下操作的时间量可以与将分区从开放和活动状态切换到关闭或资源节省较低性能内部状态所花费的时间量成比率匹配:为SRAM 308的临时缓冲器位置中的写入命令生成新奇偶校验数据、将先前的奇偶校验数据从DRAM 312复制到SRAM 308,以及/或者用SRAM 308中的新奇偶校验数据来更新先前的奇偶校验数据。在本文的实施方案中,临时缓冲器由五个SRAM区域310n-4-310n构成,并且开放状态和活动分区的最大数量是五个分区。
如图3A所示,在接收到将数据写入第二分区和第五分区的一个或多个命令后,将针对第二分区W02*和第五分区W05*的新奇偶校验数据分别写入第二临时SRAM区域310n-3和第五临时SRAM区域310n。图3A还示出了存储在SRAM 308和DRAM 312两者中的针对第二分区W02’的所更新的奇偶校验或奇偶校验数据。换句话说,用SRAM 308中的第二分区W02*的新奇偶校验数据来更新针对第二分区的先前的奇偶校验数据并且将其复制到DRAM 312作为更新的第二奇偶校验或奇偶校验数据W02’。在更新针对分区的先前的奇偶校验数据后,可以将该分区的新奇偶校验数据从临时SRAM区域擦除。因此,针对第一分区W01’的更新的奇偶校验或奇偶校验数据存储在第一SRAM区域310a和DRAM 312中;然而,针对第一分区的对应的新奇偶校验数据已从临时SRAM区域(例如,第一临时SRAM区域310n-4)擦除。
当控制器302接收到将数据写入第三分区的第一写入命令时,XOR引擎304将针对第一写入命令的与第三分区W03*相关联的新奇偶校验数据写入第三临时SRAM区域310n-2或可用的第一临时缓冲器位置。控制器302同时将针对第三分区W03的先前的奇偶校验数据从DRAM区域314c复制到可用的SRAM区域310c,如图3A中314c和310c之间的箭头所示。
当控制器302接收到将数据写入第四分区的第二写入命令时,XOR引擎304将针对第二写入命令的与第四分区W04*相关联的新奇偶校验数据写入第四SRAM区域310n-1或可用的第一临时缓冲器位置。控制器302同时将针对第四分区W04的先前的奇偶校验数据从DRAM区域314d复制到可用的SRAM区域310d,如图3A中314d和310d之间的箭头所示。因此,如图3A所示,第一分区到第五分区当前处于开放和活动状态。由于第一分区到第五分区当前处于开放和活动状态,主机可以主机想要的速度和顺序发送主机想要数量的将数据写入第一分区到第五分区的命令。
在图3B中,用与第三分区W03*相关联的新奇偶校验来将与第三分区W03相关的先前的奇偶校验数据更新为第三SRAM区域310c中的更新的第三奇偶校验数据W03’。在用针对第一写入命令的新奇偶校验数据来更新针对第三分区W03’的先前的奇偶校验数据后,可以将针对第一命令的与第三分区W03*相关联的新奇偶校验数据从第三临时SRAM区域310n-2擦除。可以在任何SRAM区域310a-310n中更新针对分区的先前的奇偶校验数据。
用与第四分区W04*相关联的新奇偶校验来将与第四分区W04相关联的先前的奇偶校验数据更新为第四SRAM区域310d中的更新的第四奇偶校验数据W04’。在用针对第二写入命令的新奇偶校验数据来更新针对第四分区W04’的先前的奇偶校验数据后,可以将针对第二命令的与第四分区W04*相关联的新奇偶校验数据从第四临时SRAM区域310n-1或可用的第一临时缓冲器位置擦除。同时,将与存储在第五SRAM区域310e中的第五分区W05’相关联的更新的奇偶校验数据复制到第五DRAM区域314e作为第五更新的奇偶校验数据W05’。
然后控制器302接收将数据写入关闭的第六分区的第三写入命令。由于当前满足开放状态和活动的分区的最大数量(即,第一分区到第五分区),因此控制器302由于第一分区是最近最少使用的分区、接收到写入关闭分区的第三写入命令以及自上次切换分区的状态以来预先确定的时间量到期而关闭第一分区。在关闭第一分区后(即,将第一分区切换到资源节省较低性能内部状态),可以将与第一分区相关联的奇偶校验数据从SRAM 308擦除。XOR引擎304生成针对第三命令的与第六分区W06*相关联的奇偶校验数据,并且将与第六分区W06*相关联的生成的奇偶校验数据写入第一临时SRAM区域310n-4或可用的第一临时缓冲器位置。如果与第六分区相关联的先前的奇偶校验数据存储在DRAM 312中,则然后将与第六分区相关联的该先前的奇偶校验数据从DRAM 312复制到SRAM 308。
如果存储在临时SRAM区域310n-4-310n中的奇偶校验数据尚未被擦除,控制器302接收到的将数据写入关闭的第七分区的第四写入命令可以保留在控制器302内的缓冲器(未示出)中,直到临时SRAM区域310n-4-310n可用。在约0.5秒至约5秒的预先确定的时间量过去后,控制器将最近最少使用的分区(也就是第二分区)从开放和活动状态切换到关闭或资源节省较低性能内部状态并且将第七分区切换到开放和活动状态。在关闭第二分区后,可以将与第二分区相关联的奇偶校验数据从SRAM 308擦除。针对第四命令的与第七分区W07*相关联的新奇偶校验数据由XOR引擎304生成并且被写入第二临时SRAM区域310n-3。如果与第七分区相关联的先前的奇偶校验数据存储在DRAM 312中,则然后将与第七分区相关联的该先前的奇偶校验数据从DRAM 312复制到SRAM 308。
因此,如图3B所示,第三分区到第七分区当前处于开放和活动状态。由于第三分区到第七分区当前处于开放和活动状态,主机可以主机想要的速度和顺序发送主机想要数量的将数据写入第三分区到第七分区的命令。
在图3C中,将与第三分区W03’相关联的所更新的奇偶校验数据和与第四分区W04’相关联的所更新的奇偶校验数据从SRAM 308复制到DRAM 312。用相应的新奇偶校验数据W06*来将与第六分区W06相关联的先前的奇偶校验数据更新为第一SRAM区域310a中的更新的第六奇偶校验数据W06’。在用针对第三写入命令的新奇偶校验数据来更新针对第六分区W06’的先前的奇偶校验数据后,可以将针对第三命令的与第六分区W06*相关联的新奇偶校验数据从第一临时SRAM区域310n-4擦除。
用对应的新奇偶校验数据W07*来将与第七分区W07相关联的先前的奇偶校验数据更新为第二SRAM区域310b中的更新的第七奇偶校验数据W07’。在用针对第四写入命令的新奇偶校验数据来更新针对第七分区W07’的先前的奇偶校验数据后,可以将与针对第四命令的第七分区W07*相关联的新奇偶校验数据从第二临时SRAM区域310n-3擦除。如果第六分区或第七分区或第六分区的先前的奇偶校验数据尚未存在,则与第六分区W06*相关联的新奇偶校验数据或与第七分区W07*相关联的新奇偶校验数据可以移动到任何非临时SRAM区域(例如,SRAM区域310a-310f)。
在图3D中,控制器302接收将数据写入第一分区的第五写入命令。由于第一分区先前被切换到关闭或资源节省较低性能内部状态,因此在自上次切换分区的状态以来预先确定的时间量过去后,控制器302将当前处于开放和活动状态的最近最少使用的分区(也就是第三分区)切换到关闭或资源节省较低性能内部状态。然后,控制器302将第一分区从关闭或资源节省较低性能内部状态切换到开放和活动状态。XOR引擎304生成针对第五写入命令的与第一分区W01*相关联的新奇偶校验数据,并且将该新奇偶校验数据写入第三SRAM区域310n-2或可用的第一临时缓冲器位置。同时,将与第一分区W01’相关联的先前的奇偶校验数据从DRAM 312复制到第三SRAM区域310c。
控制器302接收将数据写入第二分区的第六写入命令。由于第二分区先前被切换到关闭或资源节省较低性能内部状态,因此在自上次切换分区的状态以来预先确定的时间量过去后,控制器302将当前处于开放和活动状态的最近最少使用的分区(也就是第四分区)切换到关闭或资源节省较低性能内部状态。然后,控制器302将第二分区从关闭或资源节省较低性能内部状态切换到开放和活动状态。
如果自将第三分区切换到关闭或资源节省较低性能内部状态并且将第一分区切换到开放和活动状态以来预先确定的时间量尚未到期,则在关闭第四分区并且重新开放第二分区之前,控制器302将等待直到预先确定的时间量已经过去或到期。XOR引擎304生成针对第六命令的与第二分区W02*相关联的新奇偶校验数据,并且将该新奇偶校验数据写入第四临时SRAM区域310n-1或可用的第一临时缓冲器位置。同时,将与第二分区W02’相关联的先前的奇偶校验数据从DRAM 312复制到第四SRAM区域310d。
因此,当接收到将数据写入先前关闭分区的新写入命令时,控制器302开放分区使得可以将该新写入命令写入该分区。然而,如果已达到开放和活动分区的最大数量,则在将最近最少使用的分区改变为关闭或资源节省较低性能内部状态之前,控制器302将等待直到预先确定的时间量已经过去。在将最近最少使用的分区改变为关闭或资源节省较低性能内部状态之后,然后控制器302可以将相关分区改变为开放和活动状态。由于将数据复制到SRAM 308并且将数据从SRAM复制到DRAM 312需要时间,因此选择开放和活动分区的最大数量来最小化任何写入延迟。
将与第六分区W06’相关联的所更新的奇偶校验数据复制到可用DRAM区域,诸如第六DRAM区域314f。将与第七分区W07’相关联的所更新的奇偶校验数据复制到可用的DRAM区域,诸如DRAM区域314n-4。因此,如图3D所示,第一分区、第二分区、第五分区、第六分区和第七分区当前处于开放和活动状态。由于第一分区、第二分区、第五分区、第六分区和第七分区当前处于开放和活动状态,主机可以主机想要的速度和顺序发送主机想要数量的将数据写入第一分区、第二分区、第五分区、第六分区和第七分区的命令。
图4示出了根据一个实施方案的在存储设备中随时间更新飞行中数据(诸如奇偶校验数据)的示意图400。图4的存储设备可以是图1的存储设备106。与在上述示例中一样,奇偶校验数据将用作飞行中数据的示例。下面使用的时间是代表性的,并且可在几秒或几分钟内发生。将第一分区的写入命令示出为水平条纹块,将第二分区的写入命令示出为垂直条纹块,将第三分区的写入命令示出为向上的斜条纹块,并且将第四分区的写入命令示出为向下的斜条纹块。例如,第一写入命令434是将数据写入第一分区,第二写入命令442是将数据写入第二分区,并且第三写入命令450是将数据写入第三分区。第四写入命令450a是将数据写入第四分区,并且第四写入命令450b是将数据写入第一分区。
在当前实施方案中,控制器包括用于存储主机写入命令的三个可用控制器RAM或缓冲器区域404a、404b、404c和用于存储奇偶校验数据的三个可用奇偶校验RAM或缓冲器区域406a、406b、406c。控制器缓冲器区域404a、404b、404c和奇偶校验缓冲器区域406a、406b、406c可以是图1的122a-122n的任何SRAM区域。控制器缓冲区域404a、404b、404c存储尚未写入NVM的数据。存储设备还包括用于奇偶校验数据存储的四个可用RAM区域408a、408b、408c、408d,其中每个区域对应于分区,使得第一RAM区域408a对应于第一分区,第二RAM区域408b对应于第二分区,第三RAM区域408c对应于第三分区,第四RAM区域408d对应于第四分区。上文为每个部件列出的区域数量并非旨在进行限制,而是提供可能的实施方案的示例。
在时间1,控制器接收将数据写入第一分区的第一主机写入命令402。将第一主机写入命令402临时存储在第一控制器缓冲器区域404a中。在将针对第一分区的第一主机写入命令402的数据写入NVM之前或期间,XOR引擎124在奇偶校验缓冲器区域406a中为针对第一分区的第一主机写入命令402生成第一奇偶校验数据。
在时间2,该控制器接收将数据写入第二分区的第二主机写入命令410。将第二主机写入命令410临时存储在第二控制器缓冲器区域404b中。在将针对第二分区的第二主机写入命令410的数据写入NVM之前或期间,XOR引擎124在奇偶校验缓冲器区域406b中为针对第二分区的第二主机写入命令410生成第二奇偶校验数据。
在时间3,该控制器接收将数据写入第三分区的第三主机写入命令418。将第三主机写入命令418临时存储在第三控制器缓冲器区域404c中。在将针对第三分区的第三主机写入命令418的数据写入NVM之前或期间,XOR引擎124在奇偶校验缓冲器区域406c中为针对第三分区的第三主机写入命令418生成第三奇偶校验数据。
在时间4a,该控制器接收将数据写入第四分区的第四主机写入命令426a。将第四主机写入命令426a的数据写入第一控制器缓冲器区域404a。在从时间1至时间3中,存储在第一控制器缓冲器区域404a中的先前的写入命令(诸如第一主机写入命令402)已成功写入NVM,并且第一控制器缓冲器区域404a中的数据可以被新主机写入命令(诸如第四主机写入命令426a)的数据覆盖。然后将针对第一主机写入命令402的第一奇偶校验数据写入RAM区域408a,并且XOR引擎124在奇偶校验缓冲器区域406a中为第四主机写入命令426a生成第四奇偶校验数据。如果接收到将数据写入第一分区的第五主机写入命令,则将把第一奇偶校验数据从RAM区域408a复制回奇偶校验缓冲器区域406a-406c。
然而,如果控制器接收到先前已被写入的分区的第四主机写入命令(诸如将数据写入第一分区的第四主机写入命令426b),则在时间4b,将第四主机写入命令426b的数据写入第一控制器缓冲器区域404a。在从时间1至时间3中,先前存储在第一控制器缓冲器区域404a(例如,第一主机写入命令402)中的数据已成功写入NVM。然而,如果先前的写入命令的数据仍正在被写入NVM,则第四主机写入命令426b临时保留在控制器缓冲器(例如,临时SRAM区域310n-4至区域310n)中,直到向NVM的传输已完成。然后,XOR引擎124在奇偶校验缓冲器区域406a中为第四主机写入命令426b生成第四奇偶校验数据。因此,奇偶校验缓冲器区域406a包括针对第一主机写入命令402的第一奇偶校验数据和针对第四主机写入命令426b的第四奇偶校验数据两者。
在时间4b期间,由于奇偶校验缓冲器区域406a仍正在将针对第一主机写入命令402的第一奇偶校验数据存储到第一分区,因此控制器能够没有延迟地更新第一分区的奇偶校验数据以包括第四主机写入命令426b的奇偶校验数据,不同于在时间4a期间。此外,通过在将数据从奇偶校验缓冲器复制到RAM区域之前,等待直到接收到下一个主机写入命令,可以更少次数将数据复制到奇偶校验缓冲器区域并且将数据从奇偶校验缓冲器区域复制到RAM区域。由于将数据传输到奇偶校验缓冲器区域并且将数据从奇偶校验缓冲器区域传输到RAM区域需要时间,因此等待将数据从奇偶校验缓冲器区域复制到RAM区域允许存储设备以更快且更高效的方式来工作。
通过基于将相关数据复制到DRAM区域并且将相关数据从DRAM区域复制到SRAM区域、将针对写入命令的与分区相关联的奇偶校验数据写入SRAM中的临时缓冲器位置以及更新与分区相关联的先前的奇偶校验数据所花费的时间量设置开放和活动分区的最大数量,可以提高存储器设备的效率。由于主机可以没有延迟地发送将数据写入开放和活动分区的无限的写入命令,因此选择开放和活动的分区的最大数量来最小化任何写入延迟。由于SRAM速度快但更昂贵,并且DRAM速度较慢但更便宜,因此DRAM和SRAM的使用都得到了更好的优化,从而减少了任何DRAM存取处罚。
因此,通过将开放分区的最大数量基于以下量中的一个或多个量:为SRAM的临时缓冲器位置中的写入命令生成新奇偶校验数据的时间量、将先前的奇偶校验数据从DRAM复制到SRAM的时间量、用SRAM中的新奇偶校验数据来更新先前的奇偶校验数据的时间量、将分区从开放和活动状态切换到关闭或资源节省较低性能内部状态的时间量和临时缓冲器中的空间量,存储设备可以最快、最流畅且最高效的方式工作。此外,通过仅在预先确定的时间量已经过去之后局限主机开放新的分区,存储设备具有足够的时间将数据复制到DRAM并且将数据从DRAM复制到SRAM,从而进一步消除写入命令的延迟。
在一个实施方案中,存储设备包括非易失性存储单元,其中该非易失性存储单元的容量被划分为多个分区。该非易失性存储单元包括多个管芯,并且该多个管芯中的每个管芯包括多个擦除块。该存储设备还包括第一易失性存储器单元和耦接到该非易失性存储单元和该第一易失性存储器单元的控制器。该控制器包括第二易失性存储器单元,其中该控制器被配置成:设置开放和活动分区的最大数量,并且接收将数据写入该多个分区中的一个或多个开放和活动分区的一个或多个第一命令。该控制器被进一步配置成:接收将数据写入第一分区的一个或多个第二命令,其中第一分区处于关闭或资源节省较低性能内部状态;将最近最少使用的开放和活动分区改变为该关闭或资源节省较低性能内部状态;并且将第一分区改变为开放和活动状态。
该控制器被进一步配置成在将最近最少使用的开放和活动分区改变为关闭或资源节省较低性能内部状态之前确定哪一个开放和活动分区是最近最少使用的。基于将最近最少使用的分区改变为关闭或资源节省较低性能内部状态并且将第一分区改变为开放和活动状态所花费的时间量来确定开放和活动分区的最大数量。该控制器被进一步配置成在预先确定的时间量已经到期之后,将最近最少使用的分区改变为关闭或资源节省较低性能内部状态并且将第一分区改变为开放和活动状态。第二易失性存储器是SRAM单元,并且第一易失性存储器是DRAM单元,并且其中该SRAM单元包括一个或多个临时位置,以用于为所接收的一个或多个第一命令和所接收的一个或多个第二命令生成新奇偶校验数据。基于SRAM单元中的临时位置的数量来确定开放和活动分区的最大数量。该控制器被进一步配置成:在SRAM单元中的第一临时位置中生成针对第一分区的新的第一奇偶校验数据;在生成新的第一奇偶校验数据时,将针对第一开放和活动分区的先前的第一奇偶校验数据从DRAM单元复制到SRAM单元中的第一位置;用SRAM单元中的新的第一奇偶校验数据来更新先前的第一奇偶校验数据;并且当SRAM单元的控制器缓冲器区域被填满容量时,将所更新的第一奇偶校验数据从SRAM单元复制到DRAM单元,该控制器缓冲器区域临时存储要被写入非易失性存储单元的数据。基于生成新的第一奇偶校验数据、复制先前的第一奇偶校验数据以及更新先前的第一奇偶校验数据所花费的时间量来进一步确定开放和活动分区的最大数量。
在另一个实施方案中,存储设备包括非易失性存储单元,其中该非易失性存储单元的容量被划分为多个分区。该非易失性存储单元包括多个管芯,并且该多个管芯中的每个管芯包括多个擦除块。该存储设备还包括第一易失性存储器单元和耦接到该非易失性存储单元和该第一易失性存储器单元的控制器。该控制器包括第二易失性存储器单元,其中该控制器被配置成:设置开放和活动分区的最大数量;接收将数据写入该多个分区中的一个或多个开放和活动分区的一个或多个命令;并且在第二易失性存储器单元中的一个或多个临时位置中的临时位置中生成针对第一开放和活动分区的新的第一奇偶校验数据。该控制器被进一步配置成将针对第一开放和活动分区的先前的第一奇偶校验数据从第一易失性存储器单元复制到第二易失性存储器单元中的第一位置。该控制器还被配置成用第二易失性存储器单元中的新的第一奇偶校验数据来更新先前的第一奇偶校验数据,其中生成该新的第一奇偶校验数据、复制该先前的第一奇偶校验数据以及更新该先前的第一奇偶校验数据所花费的时间量确定开放和活动分区的最大数量。
该控制器被进一步配置成:在接收到将数据写入第二分区的一个或多个第二命令后,确定第一开放和活动分区是这些开放和活动分区中的最近最少使用的分区,其中该第二分区处于关闭或资源节省较低性能内部状态;将第一开放和活动分区改变为关闭或资源节省较低性能内部状态;并且将第二分区改变为开放和活动状态。基于将第一分区改变为关闭或资源节省较低性能内部状态以及将第二分区改变为开放和活动状态所花费的时间量来确定开放和活动分区的最大数量。该控制器被进一步配置成仅在预先确定的时间量已经到期之后,将最近最少使用的分区改变为关闭或资源节省较低性能内部状态。该控制器包括一个或多个控制器缓冲器区域,并且将数据写入该多个分区中的该一个或多个开放和活动分区的所接收的一个或多个命令将该一个或多个控制器缓冲器区域的容量填满。基于第二易失性存储器单元中的临时位置的数量来确定开放和活动分区的最大数量。该第二易失性存储器是SRAM单元并且该第一易失性存储器是DRAM单元。
在另一个实施方案中,存储设备包括非易失性存储单元,其中该非易失性存储单元的容量被划分为多个分区。该非易失性存储单元包括多个管芯,并且该多个管芯中的每个管芯包括多个擦除块。该存储设备还包括第一易失性存储器单元和耦接到该非易失性存储单元和该第一易失性存储器单元的控制器。该控制器包括第二易失性存储器单元,其中该第二易失性存储器包括一个或多个临时位置。该控制器被配置成:设置开放和活动分区的最大数量,其中基于第二易失性存储器中的临时位置的数量来确定开放和活动分区的最大数量;并且接收将数据写入该多个分区中的一个或多个开放和活动分区的一个或多个第一命令。该控制器被进一步配置成:在第二易失性存储器单元中的第一临时位置中生成针对第一开放和活动分区的新的第一奇偶校验数据;在接收到将数据写入关闭分区的一个或多个第二命令后,将第二开放和活动分区改变为关闭或资源节省较低性能内部状态;并且将该关闭分区改变为开放和活动状态。
该控制器被进一步配置成在生成新的第一奇偶校验数据时,将针对第一开放和活动分区的先前的第一奇偶校验数据从第一易失性存储器单元复制到第二易失性存储器单元中的第一位置。该控制器还被配置成用第二易失性存储器单元中的新的第一奇偶校验数据来更新先前的第一奇偶校验数据。基于生成新的第一奇偶校验数据、复制先前的第一奇偶校验数据以及更新该先前的第一奇偶校验数据所花费的时间量,以及将第二开放和活动分区改变为关闭或资源节省较低性能内部状态以及将该关闭分区改变为开放和活动状态所花费的时间量,来进一步确定开放和活动分区的最大数量。该控制器被进一步配置成确定第二开放和活动分区是最近最少使用的开放和活动分区。该控制器被进一步配置成在预先确定的时间量已经到期之后,将开放和活动分区改变为关闭或资源节省较低性能内部状态,其中该预先确定的时间量为约0.5秒至约5秒,并且其中基于该预先确定的时间量来进一步确定开放和活动分区的最大数量。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。
Claims (20)
1.一种存储设备,所述存储设备包括:
非易失性存储单元,其中所述非易失性存储单元的容量被划分为多个分区,并且其中所述非易失性存储单元包括多个管芯,所述多个管芯中的每个管芯包括多个擦除块;
第一易失性存储器单元;和
控制器,所述控制器耦接到所述非易失性存储单元和所述第一易失性存储器单元,所述控制器包括第二易失性存储器单元,其中所述控制器被配置为:
设置开放和活动分区的最大数量;
接收将数据写入所述多个分区中的一个或多个开放和活动分区的一个或多个第一命令;
接收将数据写入第一分区的一个或多个第二命令,其中所述第一分区处于关闭或资源节省较低性能内部状态;
将最近最少使用的开放和活动分区改变为所述关闭或资源节省较低性能内部状态;以及
将所述第一分区改变为开放和活动状态。
2.根据权利要求1所述的存储设备,其中所述控制器被进一步配置成在将所述最近最少使用的开放和活动分区改变为所述关闭或资源节省较低性能内部状态之前确定哪一个开放和活动分区是最近最少使用的。
3.根据权利要求1所述的存储设备,其中基于将所述最近最少使用的分区改变为所述关闭或资源节省较低性能内部状态以及将所述第一分区改变为开放和活动状态所花费的时间量来确定开放和活动分区的所述最大数量。
4.根据权利要求1所述的存储设备,其中所述控制器被进一步配置成在预先确定的时间量已经到期之后,将所述最近最少使用的分区改变为所述关闭或资源节省较低性能内部状态并且将所述第一分区改变为开放和活动状态。
5.根据权利要求1所述的存储设备,其中所述第二易失性存储器是SRAM单元,并且所述第一易失性存储器是DRAM单元,并且其中所述SRAM单元包括一个或多个临时位置,以用于为所接收的一个或多个第一命令和所接收的一个或多个第二命令生成新奇偶校验数据。
6.根据权利要求5所述的存储设备,其中基于所述SRAM单元中的临时位置的数量来确定开放和活动分区的所述最大数量。
7.根据权利要求6所述的存储设备,其中所述控制器被进一步配置成:
在所述SRAM单元中的第一临时位置中生成针对所述第一分区的新的第一奇偶校验数据;
在生成所述新的第一奇偶校验数据时,将针对所述第一开放和活动分区的先前的第一奇偶校验数据从所述DRAM单元复制到所述SRAM单元中的第一位置;
用所述SRAM单元中的所述新的第一奇偶校验数据来更新所述先前的第一奇偶校验数据;以及
当所述SRAM单元的控制器缓冲器区域被填满容量时,将所更新的第一奇偶校验数据从所述SRAM单元复制到所述DRAM单元,所述控制器缓冲器区域临时存储要被写入所述非易失性存储单元的数据。
8.根据权利要求7所述的存储设备,其中基于所述生成所述新的第一奇偶校验数据、复制所述先前的第一奇偶校验数据以及更新所述先前的第一奇偶校验数据所花费的时间量来进一步确定开放和活动分区的所述最大数量。
9.一种存储设备,所述存储设备包括:
非易失性存储单元,其中所述非易失性存储单元的容量被划分为多个分区,并且其中所述非易失性存储单元包括多个管芯,所述多个管芯中的每个管芯包括多个擦除块;
第一易失性存储器单元;和
控制器,所述控制器耦接到所述非易失性存储单元和所述第一易失性存储器单元,所述控制器包括第二易失性存储器单元,其中所述控制器被配置为:
设置开放和活动分区的最大数量;
接收将数据写入所述多个分区中的一个或多个开放和活动分区的一个或多个命令;
在所述第二易失性存储器单元中的一个或多个临时位置中的临时位置中生成针对第一开放和活动分区的新的第一奇偶校验数据;
将针对所述第一开放和活动分区的先前的第一奇偶校验数据从所述第一易失性存储器单元复制到所述第二易失性存储器单元中的第一位置;以及
用所述第二易失性存储器单元中的所述新的第一奇偶校验数据来更新所述先前的第一奇偶校验数据,其中所述生成所述新的第一奇偶校验数据、复制所述先前的第一奇偶校验数据以及更新所述先前的第一奇偶校验数据所花费的时间量确定开放和活动分区的所述最大数量。
10.根据权利要求9所述的存储设备,其中所述控制器被进一步配置成:
在接收到将数据写入第二分区的一个或多个第二命令后,确定所述第一开放和活动分区是所述开放和活动分区中的最近最少使用的分区,其中所述第二分区处于关闭或资源节省较低性能内部状态;
将所述第一开放和活动分区改变为所述关闭或资源节省较低性能内部状态;以及
将所述第二分区改变为开放和活动状态。
11.根据权利要求10所述的存储设备,其中基于将所述第一分区改变为所述关闭或资源节省较低性能内部状态以及将所述第二分区改变为开放和活动状态所花费的时间量来确定开放和活动分区的所述最大数量。
12.根据权利要求10所述的存储设备,其中所述控制器被进一步配置成仅在预先确定的时间量已经到期之后,将所述最近最少使用的分区改变为所述关闭或资源节省较低性能内部状态。
13.根据权利要求10所述的存储设备,其中所述控制器包括一个或多个控制器缓冲器区域,并且其中将数据写入所述多个分区中的所述一个或多个开放和活动分区的所接收的一个或多个命令将所述一个或多个控制器缓冲器区域的容量填满。
14.根据权利要求9所述的存储设备,其中基于所述第二易失性存储器单元中的临时位置的数量来确定开放和活动分区的所述最大数量。
15.根据权利要求9所述的存储设备,其中所述第二易失性存储器是SRAM单元并且所述第一易失性存储器是DRAM单元。
16.一种存储设备,所述存储设备包括:
非易失性存储单元,其中所述非易失性存储单元的容量被划分为多个分区,并且其中所述非易失性存储单元包括多个管芯,所述多个管芯中的每个管芯包括多个擦除块;
第一易失性存储器单元;和
控制器,所述控制器耦接到所述非易失性存储单元和所述第一易失性存储器单元,所述控制器包括第二易失性存储器单元,所述第二易失性存储器包括一个或多个临时位置,其中所述控制器被配置成:
设置开放和活动分区的最大数量,其中基于所述第二易失性存储器中的临时位置的数量来确定开放和活动分区的所述最大数量;
接收将数据写入所述多个分区中的一个或多个开放和活动分区的一个或多个第一命令;
在所述第二易失性存储器单元中的第一临时位置中生成针对第一开放和活动分区的新的第一奇偶校验数据;
在接收到将数据写入关闭分区的一个或多个第二命令后,将第二开放和活动分区改变为关闭或资源节省较低性能内部状态;以及
将所述关闭分区改变为开放和活动状态。
17.根据权利要求16所述的存储设备,其中所述控制器被进一步配置成:
在生成所述新的第一奇偶校验数据时,将针对所述第一开放和活动分区的先前的第一奇偶校验数据从所述第一易失性存储器单元复制到所述第二易失性存储器单元中的第一位置;以及
用所述第二易失性存储器单元中的所述新的第一奇偶校验数据来更新所述先前的第一奇偶校验数据。
18.根据权利要求17所述的存储设备,其中基于所述生成所述新的第一奇偶校验数据、复制所述先前的第一奇偶校验数据以及更新所述先前的第一奇偶校验数据所花费的时间量,以及将所述第二开放和活动分区改变为所述关闭或资源节省较低性能内部状态以及将所述关闭分区改变为开放和活动状态所花费的时间量,来进一步确定开放和活动分区的所述最大数量。
19.根据权利要求16所述的存储设备,其中所述控制器被进一步配置成确定所述第二开放和活动分区是最近最少使用的开放和活动分区。
20.根据权利要求16所述的存储设备,其中所述控制器被进一步配置成在预先确定的时间量已经到期之后,将开放和活动分区改变为所述关闭或资源节省较低性能内部状态,其中所述预先确定的时间量为约0.5秒至约5秒,并且其中基于所述预先确定的时间量来进一步确定开放和活动分区的所述最大数量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/885,073 US11126378B1 (en) | 2020-05-27 | 2020-05-27 | Rate limit on the transitions of zones to open |
US16/885,073 | 2020-05-27 | ||
PCT/US2020/066116 WO2021242318A1 (en) | 2020-05-27 | 2020-12-18 | Rate limit on the transitions of zones to open |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114730248A true CN114730248A (zh) | 2022-07-08 |
Family
ID=77749295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080079833.5A Pending CN114730248A (zh) | 2020-05-27 | 2020-12-18 | 对分区转变为开放的速率限制 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11126378B1 (zh) |
CN (1) | CN114730248A (zh) |
DE (1) | DE112020005060T5 (zh) |
WO (1) | WO2021242318A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11126378B1 (en) * | 2020-05-27 | 2021-09-21 | Western Digital Technologies, Inc. | Rate limit on the transitions of zones to open |
KR20220046299A (ko) * | 2020-10-07 | 2022-04-14 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
KR20220060372A (ko) * | 2020-11-04 | 2022-05-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11520500B2 (en) | 2021-03-19 | 2022-12-06 | Micron Technology, Inc. | Managing capacity reduction when downshifting multi-level memory cells |
US11307931B1 (en) * | 2021-03-19 | 2022-04-19 | Micron Technology, Inc. | Using zones to manage capacity reduction due to storage device failure |
US11733884B2 (en) | 2021-03-19 | 2023-08-22 | Micron Technology, Inc. | Managing storage reduction and reuse with failing multi-level memory cells |
US11650881B2 (en) | 2021-03-19 | 2023-05-16 | Micron Technology, Inc. | Managing storage reduction and reuse in the presence of storage device failures |
US11520656B2 (en) | 2021-03-19 | 2022-12-06 | Micron Technology, Inc. | Managing capacity reduction and recovery due to storage device failure |
US11892909B2 (en) | 2021-03-19 | 2024-02-06 | Micron Technology, Inc. | Managing capacity reduction due to storage device failure |
US20220300195A1 (en) * | 2021-03-22 | 2022-09-22 | Micron Technology, Inc. | Supporting multiple active regions in memory devices |
US11750457B2 (en) * | 2021-07-28 | 2023-09-05 | Dell Products L.P. | Automated zoning set selection triggered by switch fabric notifications |
US12093566B2 (en) * | 2022-03-01 | 2024-09-17 | Micron Technology, Inc. | Memory controller for managing raid information |
US11907582B2 (en) | 2022-03-14 | 2024-02-20 | Western Digital Technologies, Inc. | Cloud storage device implementing composite zoned namespace architecture |
US11853611B2 (en) * | 2022-03-14 | 2023-12-26 | Western Digital Technologies, Inc. | Network interface card implementing composite zoned namespace architecture |
US11954367B2 (en) | 2022-06-15 | 2024-04-09 | Western Digital Technologies, Inc. | Active time-based command prioritization in data storage devices |
KR20240105075A (ko) * | 2022-12-28 | 2024-07-05 | 삼성전자주식회사 | 호스트가 접근 가능한 랜덤 기입 영역을 지원하는 스토리지 장치 및 그 동작 방법 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7949845B2 (en) | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
US8046522B2 (en) | 2006-12-26 | 2011-10-25 | SanDisk Technologies, Inc. | Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks |
US8250333B2 (en) | 2009-01-05 | 2012-08-21 | Sandisk Technologies Inc. | Mapping address table maintenance in a memory device |
US9619474B2 (en) * | 2011-03-31 | 2017-04-11 | EMC IP Holding Company LLC | Time-based data partitioning |
US9684455B2 (en) | 2013-03-04 | 2017-06-20 | Seagate Technology Llc | Method and apparatus for sequential stream I/O processing |
US9836232B1 (en) | 2015-09-30 | 2017-12-05 | Western Digital Technologies, Inc. | Data storage device and method for using secondary non-volatile memory for temporary metadata storage |
WO2017216887A1 (ja) | 2016-06-15 | 2017-12-21 | 株式会社日立製作所 | 情報処理システム |
US10838805B2 (en) | 2018-02-23 | 2020-11-17 | Micron Technology, Inc. | Generating parity data based on a characteristic of a stream of data |
KR20200108650A (ko) | 2019-03-11 | 2020-09-21 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US11023313B2 (en) | 2019-09-27 | 2021-06-01 | Dell Products L.P. | Look-aside RAID controller storage-device-assisted data update system |
JP7353934B2 (ja) * | 2019-11-19 | 2023-10-02 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US20200089407A1 (en) | 2019-11-22 | 2020-03-19 | Intel Corporation | Inter zone write for zoned namespaces |
KR20210077467A (ko) * | 2019-12-17 | 2021-06-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것을 포함하는 데이터 처리 시스템 |
US11126378B1 (en) * | 2020-05-27 | 2021-09-21 | Western Digital Technologies, Inc. | Rate limit on the transitions of zones to open |
-
2020
- 2020-05-27 US US16/885,073 patent/US11126378B1/en active Active
- 2020-12-18 WO PCT/US2020/066116 patent/WO2021242318A1/en active Application Filing
- 2020-12-18 DE DE112020005060.2T patent/DE112020005060T5/de active Pending
- 2020-12-18 CN CN202080079833.5A patent/CN114730248A/zh active Pending
-
2021
- 2021-09-02 US US17/465,391 patent/US11640266B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210397383A1 (en) | 2021-12-23 |
US11640266B2 (en) | 2023-05-02 |
US11126378B1 (en) | 2021-09-21 |
WO2021242318A1 (en) | 2021-12-02 |
DE112020005060T5 (de) | 2022-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11640266B2 (en) | Rate limit on the transitions of zones to open | |
CN113196226B (zh) | 固态驱动器中的分区命名空间 | |
CN113179658B (zh) | 非顺序分区命名空间 | |
US11520660B2 (en) | Storage devices hiding parity swapping behavior | |
CN113168374B (zh) | 写入命令在分区命名空间中的保持 | |
CN112148627A (zh) | 针对分区命名空间的分区形成 | |
US11500727B2 (en) | ZNS parity swapping to DRAM | |
US11194521B1 (en) | Rate limit on the transitions of streams to open | |
CN114730290A (zh) | 将变化日志表移动至与分区对准 | |
CN117043753A (zh) | Zns设备中的不同写入优先级 | |
US20240220155A1 (en) | Solution for Super Device Imbalance in ZNS SSD | |
US11520523B2 (en) | Data integrity protection of ZNS needs | |
CN114746835A (zh) | 用中间填充保持分区开放 | |
US11853565B2 (en) | Support higher number of active zones in ZNS SSD | |
US11847337B2 (en) | Data parking for ZNS devices | |
US11853571B2 (en) | Storage devices hiding parity swapping behavior | |
CN118901052A (zh) | 基于存储设备热负载的受控系统管理 | |
US11138066B1 (en) | Parity swapping to DRAM | |
CN116897341A (zh) | 隐含流 | |
US20210333996A1 (en) | Data Parking for SSDs with Streams | |
CN114730605A (zh) | 用于存储设备的加权读取命令和开放块定时器 | |
US11561717B2 (en) | Data integrity protection of SSDs utilizing streams |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240827 Address after: California, USA Applicant after: SanDisk Technology Co. Country or region after: U.S.A. Address before: California, USA Applicant before: Western Digital Technologies, Inc. Country or region before: U.S.A. |