CN111149083A - 支持低延时操作的ssd架构 - Google Patents
支持低延时操作的ssd架构 Download PDFInfo
- Publication number
- CN111149083A CN111149083A CN201880063608.5A CN201880063608A CN111149083A CN 111149083 A CN111149083 A CN 111149083A CN 201880063608 A CN201880063608 A CN 201880063608A CN 111149083 A CN111149083 A CN 111149083A
- Authority
- CN
- China
- Prior art keywords
- region
- volatile memory
- mode
- ssd
- zone
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 188
- 238000012423 maintenance Methods 0.000 claims abstract description 123
- 238000004891 communication Methods 0.000 claims abstract description 25
- 239000007787 solid Substances 0.000 claims abstract description 4
- 238000013403 standard screening design Methods 0.000 claims description 38
- 238000000034 method Methods 0.000 claims description 36
- 230000003247 decreasing effect Effects 0.000 claims 3
- 238000002955 isolation Methods 0.000 description 195
- 238000010586 diagram Methods 0.000 description 23
- 238000011084 recovery Methods 0.000 description 17
- 238000012937 correction Methods 0.000 description 16
- 238000005192 partition Methods 0.000 description 11
- 238000013519 translation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
- 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/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/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
-
- 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/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
- 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)
- Read Only Memory (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
在一个实施例中,一种固态驱动器SSD包括:多个非易失性存储器裸片,其通信地布置在一或多个通信通道中,所述多个非易失性存储器裸片中的每一者包括多个物理块;一或多个通道控制器,其分别通信地耦合到所述一或多个通信通道;及存储器控制器,其经由所述一或多个通道控制器通信地耦合到所述多个非易失性存储器裸片,其中所述存储器控制器经配置以:(i)将所述多个非易失性存储器裸片中的第一裸片的所述多个物理块仅指派给第一区且(ii)将所述多个非易失性存储器裸片中的第二裸片的所述多个物理块仅指派给第二区;在第一操作模式中对所述第一区仅执行读取操作;且在所述第一操作模式中对所述第一区执行读取操作的同时在第二操作模式中对所述第二区执行写入操作或维护操作。
Description
相关申请案的交叉参考
本申请案是2017年11月1日申请的第15/800,742号申请案的延续且基于并主张2017年8月7日申请的第62/542,108号临时申请案的权益,所述申请案的全部内容以引用方式并入本文中。
技术领域
本发明大体上涉及固态驱动器(SSD)架构,且更特定来说,涉及支持低延时操作的SSD架构。
背景技术
常规上,SSD架构及设计主要专注于获得用于输入及输出(I/O)操作(即,读取及写入数据)的高平均带宽或处理量。与传统磁性存储装置(例如硬盘驱动器(HDD))相比,SSD能够执行的I/O操作每秒比HDD快数百甚至数千倍。此类常规SSD能够通过其架构中的并行性获得此高平均带宽。
SSD通常包括布置成耦合到由通道控制器控制的通道的群组的数个非易失性存储器裸片,例如NAND快闪存储器。例如,128个非易失性存储器裸片经布置为由八个裸片组成的十六个群组,每一群组经耦合到通道。通常选择来自非易失性存储器裸片中的每一者的物理存储块以创建用于一或多个主机装置(例如计算机或存储设备)的逻辑块或超级块,以分别写入数据及读取数据。从非易失性存储器裸片中的每一者选择物理块以形成超级块允许跨所有通道并行存取所有非易失性存储器裸片,从而实现最大带宽或处理量。裸片可进一步组织成多个“平面”(每一裸片包括两个、四个或更多个平面),其中每一平面可并行处理I/O操作。
尽管此SSD架构最大化SSD的带宽或处理量,但这个架构还遭受影响I/O延时(即,完成I/O操作所花费的时间量)的数个问题。由于非易失性存储器裸片的物理限制,每个非易失性存储器裸片的每个平面的仅单个物理块一次可执行一个I/O操作,这导致同一非易失性存储器裸片的同一平面的不同物理块的I/O操作之间的冲突,其中I/O操作必须等待直到同一平面中的不同块的先前操作已完成为止。相关地,因为每个通道控制器存在多个非易失性存储器裸片,所以在通道控制器处也可能存在不同超级块的I/O操作的命令之间的冲突,原因在于通道的共享性质,其中在任何时间在控制器与任何非易失性存储器裸片之间仅进行一次数据传送,从而导致在SSD的每一通道控制器处出现瓶颈。
除来自主机的I/O操作之外,SSD还必须在SSD的整个生命周期期间执行维护操作,例如垃圾收集,以合并有效数据且擦除无效数据以创建自由区域以供写入新数据,并执行数据可靠性操作以读取存储在非易失性存储器裸片中的数据且根据需要重写数据以确保数据不会由于非易失性存储器裸片(例如NAND快闪存储器裸片)的性质而随时间推移丢失。这些维护操作根据需要在SSD的整个生命周期期间的通常不确定的时间进行且持续达不确定时间段,这不可避免地导致与通道控制器及非易失性存储器裸片两者处的主机I/O操作的冲突。这些冲突(由于主机I/O操作或SSD维护操作)导致不一致且不可预测的SSD延时性能。
例如,典型主机读取操作在无任何冲突的情况下可能需要70μs到100μs之间的任何时间来完成。然而,如果存在冲突,那么读取操作的延时可能大大增加。如果非易失性存储器裸片当前正被写入,那么读取操作将与已进行的写入(编程)操作冲突,且将必须等待直到写入操作完成才能执行读取操作。在这种情况下,对于TLC NAND存储器,读取操作的延时可能翻倍到2500μs到3000μs。更糟糕的是,如果当前正执行维护操作(例如需要读取、写入及擦除操作所有这三者的垃圾收集),那么到当前经历维护的非易失性存储器裸片的物理块的读取操作的延时可能要大得多—在毫秒范围内以完成读取操作。这个问题在跨大量SSD存储数据的数据中心或存储中心环境中进一步恶化,所述大量SSD由多个主机应用程序不断存取(即,不断写入及读取SSD),从而大大增加在I/O操作与维护操作之间发生冲突的可能性。考虑到数据中心的存储需要不断增加且基于云及基于网络的应用程序的日益普及,由专注于实现高平均带宽的常规SSD架构提供不一致且不可预测的SSD性能不再足以满足此类消费者的当前需求及要求。
因此,需要一种支持低延时操作以提供一致且可预测的I/O操作及性能的改进式SSD架构。
发明内容
在一个实施例中,一种固态驱动器(SSD)包括:多个非易失性存储器裸片,其通信地布置在一或多个通信通道中,所述多个非易失性存储器裸片中的每一者包括多个物理块;一或多个通道控制器,其分别通信地耦合到所述一或多个通信通道;及存储器控制器,其经由所述一或多个通道控制器通信地耦合到所述多个非易失性存储器裸片,其中所述存储器控制器经配置以:(i)将所述多个非易失性存储器裸片中的第一裸片的所述多个物理块仅指派给第一区且(ii)将所述多个非易失性存储器裸片中的第二裸片的所述多个物理块仅指派给第二区;在第一操作模式中对所述第一区仅执行读取操作;且在所述第一操作模式中对所述第一区执行读取操作的同时在第二操作模式中对所述第二区执行写入操作或维护操作。在一个实施例中,所述第一区及所述第二区中的至少一者包括一或多个通信通道中的所述非易失性存储器裸片中的每一者的所述多个物理块。在一个实施例中,所述第一区及所述第二区中的至少一者包括来自所述一或多个通信通道中的每一者的一或多个非易失性存储器裸片的所述多个物理块。
在一个实施例中,所述存储器控制器进一步经配置以在所述第一区及所述第二区中的至少一者内创建一或多个命名空间。在一个实施例中,所述存储器控制器进一步经配置以:维护所述第一区及所述第二区中的每一者的维护计数器;当所述对应区处于所述第一操作模式时使所述维护计数器单调递减;且当所述对应区处于所述第二操作模式时使所述维护计数器单调递增。在一个实施例中,当所述对应维护计数器高于第一阈值时所述第一区及所述第二区中的每一者在所述第一操作模式中操作,且当所述对应维护计数器低于第二阈值时所述第一区及所述第二区中的每一者在所述第二操作模式中操作。在一个实施例中,所述存储器控制器进一步经配置以:维护所述第一区及所述第二区中的每一者的维护计数器;当所述对应区处于所述第一操作模式时使所述维护计数器单调递增;且当所述对应区处于所述第二操作模式时使所述维护计数器单调递增减。在一个实施例中,当所述对应维护计数器低于第一阈值时所述第一区及所述第二区中的每一者在所述第一操作模式中操作,且在所述对应维护计数器高于第二阈值的情况下所述第一区及所述第二区中的每一者在所述第二操作模式中操作。
在一个实施例中,一种操作SSD的方法包括:将多个非易失性存储器裸片中的第一裸片仅指派给第一区,所述多个非易失性存储器裸片通信地布置在一或多个通信通道中,所述多个非易失性存储器裸片中的每一者包括多个物理块;将所述多个非易失性存储器裸片中的第二裸片仅指派给第二区;在第一操作模式中对所述第一区仅执行读取操作;及在所述第一操作模式中对所述第一区执行读取操作的同时在第二操作模式中对所述第二区执行写入操作或维护操作。在一个实施例中,所述第一区及所述第二区中的至少一者包括一或多个通信通道中的所述非易失性存储器裸片中的每一者的所述多个物理块。在一个实施例中,所述第一区及所述第二区中的至少一者包括来自所述一或多个通信通道中的每一者的一或多个非易失性存储器裸片的所述多个物理块。在一个实施例中,所述方法进一步包括在所述第一区及所述第二区中的至少一者内创建一或多个命名空间。在一个实施例中,所述方法进一步包括:维护所述第一区及所述第二区中的每一者的维护计数器;当所述对应区处于所述第一操作模式时使所述维护计数器单调递减;及当所述对应区处于所述第二操作模式时使所述维护计数器单调递增。在一个实施例中,所述方法进一步包括:当所述对应维护计数器高于第一阈值时在所述第一操作模式中操作所述第一区及所述第二区;及当所述对应维护计数器低于第二阈值时在所述第二操作模式中操作所述第一区及所述第二区。在一个实施例中,所述方法进一步包括:维护所述第一区及所述第二区中的每一者的维护计数器;当所述对应区处于所述第一操作模式时使所述维护计数器单调递增;及当所述对应区处于所述第二操作模式时使所述维护计数器单调递减。在一个实施例中,所述方法进一步包括:当所述对应维护计数器低于第一阈值时在所述第一操作模式中操作所述第一区及所述第二区;及当所述对应维护计数器高于第二阈值时在所述第二操作模式中操作所述第一区及所述第二区。
附图说明
图1是根据本发明的一个实施例的SSD的结构的框图。
图2a是根据本发明的一个实施例的支持低延时操作的SSD架构的框图。
图2b是根据本发明的各种实施例的两个隔离区配置的框图。
图3是根据本发明的一个实施例的支持低延时操作的SSD架构的操作的时序图。
图4是根据本发明的各种实施例的对应于支持低延时操作的两个SSD架构的读取延时的曲线。
图5a及5b是根据本发明的各种实施例的SSD内的隔离区的分配的框图。
图5c到5e是根据本发明的各种实施例的SSD内的隔离区的各种配置的框图。
图6是根据本发明的一个实施例的隔离区内的命名空间的各种配置的框图。
图7是根据本发明的一个实施例的支持低延时操作的SSD架构内的数据流的框图。
图8是根据本发明的一个实施例的用于在SSD内配置隔离区及命名空间的方法步骤的流程图。
图9是根据本发明的一个实施例的各自具有支持低延时操作的架构的SSD的阵列的操作的时序图。
图10是根据本发明的一个实施例的用于SSD的低延时操作的方法步骤的流程图。
图11是根据本发明的一个实施例的用于通过SSD处置读取数据错误的方法步骤的流程图。
图12是根据本发明的一个实施例的用于通过连接到一或多个SSD的主机装置处置读取数据错误的方法步骤的流程图。
具体实施方式
第1部分:I/O确定性及支持I/O确定性以实现低延时操作的SSD架构
图1是根据本发明的一个实施例的SSD 100的结构的框图。如图1中所展示,SSD存储器控制器120通过主机接口110与一或多个主机装置或主机应用(未展示)通信。主机装置可包括任何合适装置,例如计算机或存储设备。SSD 100包含易失性存储器130及非易失性存储器裸片阵列140两者。易失性存储器装置130及非易失性存储器裸片阵列140分别与SSD存储器控制器120通信124及122。
非易失性存储器裸片阵列140包括可经布置在与SSD存储器控制器120通信122的一或多个通道中的非易失性存储器裸片142a到d、144a到d、146a到d及148a到d。虽然图1中展示16个非易失性存储器裸片142a到d、144a到d、146a到d及148a到d,但SSD 100的非易失性存储器裸片阵列140可包括布置在与SSD存储器控制器120通信122的一或多个通道中的任何合适数目个非易失性存储器裸片140。在一个实施例中,易失性存储器装置130包括易失性存储器DRAM缓冲器。易失性存储器装置130不需要是单一类型的单个装置,且可包括能够为SSD 100提供易失性存储器缓冲器的不同类型的多个装置。在一个实施例中,非易失性存储器裸片142a到d、144a到d、146a到d及148a到d包括NAND快闪存储器。
图2a是根据本发明的一个实施例的支持低延时操作的SSD架构的框图。如图2a中所展示,跨8个通道(CH0到CH7)布置32个非易失性存储器裸片,其中4个非易失性存储器裸片经耦合到每一通道。图2a的SSD架构包含通过从同一通道及相邻通道(由类似阴影表示)上的非易失性存储器裸片中的每一者选择所有物理块而形成的超级块,而非通过跨所有8个通道从非易失性存储器裸片中的每一者选择物理块而形成的超级块(如现有技术中所进行的那样)。这些超级块中的每一者在SSD内形成隔离区,所述隔离区相对不受SSD的其它区中的活动影响。因此,如图2a中所展示,前两个(从左到右开始)通道上的非易失性存储器裸片的物理块包括隔离区202,接下来两个通道中的非易失性存储器裸片的物理块包括隔离区204,且隔离区206及208依此类推。
通过使用来自(若干)相同通道中的相同非易失性存储器裸片的物理块来配置超级块以形成隔离区(例如图2a中所展示),可最小化或完全避免非易失性存储器裸片及通道控制器处的I/O操作冲突,从而允许SSD的更低延时、更大可预测性及更一致I/O性能。当然,与现有技术配置相比,以图2a中所展示的方式配置超级块减少SSD的最大可能处理量,这是因为图2a的隔离区202、204、206及208并未利用所有8个可用通道来实现对所有非易失性存储器裸片的最大并行存取。然而,这种折衷在图2a中所展示的架构中通过以下步骤来抵消:跨每个隔离区202、204、206及208的两个通道从非易失性存储器裸片中的每一者选择物理块,由此利用每个隔离区的两个通道控制器来处置主机I/O操作。
下文将更详细地说明使用这个架构选择及布置物理块以形成隔离区并且在SSD内聚合隔离区及数据流。
图2b是根据本发明的各种实施例的两个隔离区配置220及230的框图。如图2b中所展示,跨四个通道CH0到CH3布置16个非易失性存储器裸片210a到210d、212a到212d、214a到214d及216a到216d,其中每个通道有四个非易失性存储器裸片。与图2a中所展示的配置类似,隔离区220包括通道CH0的非易失性存储器裸片210a到210d及通道CH1的非易失性存储器裸片212a到212d的物理块中的每一者。而且,如先前关于图2a所说明,隔离区220最小化非易失性存储器裸片210a到d及212a到d以及通道CH0及CH1的通道控制器两者处的I/O操作冲突来以最大I/O处理量为代价实现更低延时及更可预测操作。
替代地,隔离区230包括通道CH0的非易失性存储器裸片210a及210b的物理块中的每一者、通道CH1的非易失性存储器裸片212a及212b的物理块中的每一者、通道CH2的非易失性存储器裸片214a及214b的物理块中的每一者以及非易失性存储器裸片216a及216b的物理块中的每一者,而非选择一个通道或多个通道的所有非易失性存储器裸片的物理块中的每一者,例如图2b中所展示的隔离区220或图2a中所展示的隔离区202、204、206及208。
与隔离区220相比,隔离区230将具有改进的I/O处理量,这是因为其跨所有四个通道CH0到CH3提供对来自非易失性存储器裸片的物理块的并行存取,而非限于在隔离区220的情况下的两个通道CH0及CH1。然而,在隔离区230的物理块配置下,假设SSD的其它区类似地配置为隔离区230(即,包括来自跨通道CH0到CH3的非易失性存储器裸片的物理块中的每一者)(例如包括通道CH0的非易失性存储器裸片210c及210d的物理块、通道CH1的非易失性存储器裸片212c及212d的物理块、通道CH2的非易失性存储器裸片214c及214d的物理块以及通道CH3的非易失性存储器裸片216c及216d的物理块的隔离区),那么通道CH0到CH3的通道控制器处可存在一些I/O操作冲突。隔离区230中的非易失性存储器裸片的I/O操作可能与同一通道上的其它类似配置的隔离区的其它非易失性存储器裸片的I/O操作冲突(即,通道冲突),从而可能引起一些不可预测I/O性能且高于预期的延时。
如下文将更详细地说明,通过对隔离区及SSD的操作的管理,对于利用隔离区220的配置或隔离区230的配置的SSD架构,可最小化或避免非易失性存储器裸片及通道控制器两者处的I/O操作的冲突。此外,SSD架构不必仅包括单个隔离区配置(即,如同隔离区220的唯一隔离区或如同隔离区230的唯一隔离区),而且可包括包含一或多个通道的非易失性存储器裸片的每一物理块的隔离区(与隔离区220类似)及包含跨多个通道的非易失性存储器裸片的每一物理块的隔离区(与隔离区230类似)。
图3是根据本发明的一个实施例的支持低延时操作的SSD架构的操作的时序图300。如图3中所展示,根据图2a及2b中所展示及所描述的各种配置的隔离区在一定时间段内以两种不同模式操作—确定性模式302及非确定性或维护模式304。在确定性模式302中,隔离区仅执行读取操作,所述读取操作如先前所说明以最小延时相对快速地完成(例如,对于TLC NAND快闪存储器通常在60μs到100μs之间)的。在一个实施例中,当隔离区处于确定性模式302时,用于隔离区的写入命令在SSD的存储器控制器中排队直到隔离区进入非确定性模式304为止。在另一实施例中,主机装置知道隔离区处于确定性模式302且不将写入命令发出到隔离区直到隔离区进入非确定性模式304为止。
因为隔离区包括给定非易失性存储器裸片的所有物理块,所以确定性模式302期间的读取操作将不受SSD内在非易失性存储器裸片层级处的其它隔离区中的其它I/O操作及维护操作影响。此外,如果隔离区以与如图2b中所展示的隔离区220或如图2a中所展示的隔离区202到208相同的方式配置,那么还避免通道控制器冲突,这是因为隔离区将具有用于非易失性存储器裸片的(若干)专用通道控制器。因此,当在确定性模式302中操作时,隔离区的I/O性能将是确定性的,其中在这种模式中以最小延时完成读取操作。
因为在确定性模式302期间在隔离区中执行读取操作,所以对隔离区执行维护操作的需要将相应地增加。另外,对于隔离区挂起的写入操作可能积累在主机应用程序处(如果在确定性模式302期间仅执行读取操作)。因而,在处于确定性模式302中达一定时段之后,一旦阈值水平的维护任务变得必要,隔离区就将进入非确定性模式304。在非确定性模式304中,隔离区将执行维护任务及写入操作。虽然有可能,但没有必要在隔离区重新进入确定性模式302之前执行所有维护任务及写入操作。在一个实施例中,一旦已完成阈值水平的维护任务,隔离区就可从非确定性模式304进入确定性模式302。
以这种方式,隔离区将在确定性模式302与非确定性模式304之间来回切换。下文将更详细地说明隔离区的确定性及非确定性操作以及SSD内部及外部的多个隔离区之间的协调。
图4是根据本发明的各种实施例的对应于支持低延时操作的两个SSD架构的读取延时的曲线。如图4中所展示,描绘三个读取延时曲线402、404及406。读取延时曲线402对应于现有技术的SSD架构,其中拾取跨所有通道来自每一非易失性存储器裸片的物理块以形成逻辑块(超级块)。读取延时曲线404对应于图2b中所展示的SSD架构,其中与隔离区230的配置类似,SSD的隔离区包括跨所有通道的非易失性存储器裸片的每一物理块。最后,读取延时曲线406对应于图2a及2b中所展示的SSD架构,由此与图2a中所展示的隔离区202到208或图2b中所展示的隔离区220的配置类似,SSD的隔离区包括来自一或多个通道的所有非易失性存储器裸片的每一物理块。
使用相同测试系统及参数(即,相同处理器、主板、操作系统及工作负载)测量由所有三个读取延时曲线402、404及406表示的数据。对于读取延时曲线404及406,SSD架构包括四个隔离区,其中一个隔离区处于确定性模式(即,仅读取操作),而剩余三个隔离区都仅执行写入操作。通过测量隔离区在确定性模式中的读取操作延时来生成读取延时曲线404及406。
如图4中所展示,对于读取延时曲线402,90%读取操作的读取延时跨越从约100μs到5ms的宽延时范围。99%读取操作的延时进一步增加到约10ms,且99.9%及99.99%读取操作的延时变得更糟,所述读取操作需要近20ms来完成。虽然10ms到30ms的读取操作可看似具有相对低的发生可能性(即,每一千次到一万次读取操作中有一个),但典型SSD每秒将发生数万次或数十万次I/O操作,这意味着在每秒操作期间,极有可能的是多次读取操作将花费10ms到30ms。读取延时曲线402的显著增加的延时可归因于读取操作由于现有技术的SSD架构而与非易失性存储器裸片层级及通道控制器两者处的其它I/O操作及维护操作冲突,如先前在背景技术中所说明。此外,在其中操作处于“超规模”的数据中心(即,例如为网页提供服务的操作分散为数千个服务器当中的数千个子操作,其中聚合数千个子操作的结果)中,延时异常值的千分之一可能性意味着每个操作都将被延迟。
读取延时曲线404展示相对于读取延时曲线402的显著改进,其中90%读取操作的读取延时小于约400μs,且99.99%读取操作的读取延时小于约1100μs。读取延时曲线404展示相对于读取延时曲线402改进约十五倍(15x),其中变动范围要小得多。读取延时曲线404展示几乎保证读取操作在约1100μs内完成,且大多数读取操作(99%)是在约700μs内完成。因此,与现有技术的SSD架构相比,对应于读取延时曲线404的SSD架构(其中与图2b的隔离区230的配置类似,SSD的隔离区包括跨所有通道的非易失性存储器裸片的每一物理块)提供低得多的读取延时操作及更可预测的确定性操作。
然而,如读取延时曲线404中所展示,在更高百分比的操作下读取延时仍增加。读取延时的增加可归因于由于这个SSD架构的隔离区的配置所致的通道控制器处的冲突(即,与图2b的隔离区230的配置类似,SSD的隔离区包括跨所有通道的非易失性存储器裸片的每一物理块)。如先前所说明,在这个SSD架构下,处于确定性模式的隔离区的读取操作在通道控制器层级处排在其它隔离区的写入操作之后,这是因为多个隔离区共享同一通道控制器,且因此处于确定性模式的隔离区的读取操作必须在被执行之前等待所述操作完成。
读取延时曲线406持续改进读取延时的趋势,其中90%读取操作的读取延时在约100μs与180μs之间。99%、99.9%及99.99%读取延时分别在200μs、220μs及280μs下达到最大值,在99.9999%读取操作中逐渐减少略多于300μs。与读取延时曲线404相比,读取延时曲线406展示相对于读取延时曲线402改进五十倍(50倍)以上且变动范围甚至更小,其中99.99999%读取操作在约100μs与300μs之间完成。与对应于读取延时曲线404的SSD架构(其如上文所说明已相对于对应于读取延时曲线402的现有技术的SSD架构大大改进)相比,对应于读取延时曲线406的SSD架构具有改进的低延时操作及确定性行为,因为对应于读取延时曲线406的SSD架构未跨给定通道扩展多个隔离区,因此避免通道控制器层级以及非易失性存储器裸片层级处的冲突。
因而,与对应于读取延时曲线404的SSD架构类似,与现有技术的SSD架构相比,对应于读取延时曲线406的SSD架构还提供低延时操作及可预测确定性操作。
第2部分:SSD架构内的隔离区、命名空间及数据流
图5a是根据本发明的一个实施例的SSD的非易失性存储器阵列中的多个超级块的框图。图5a的非易失性存储器阵列包含八个通道(CH0到CH7),其中四个非易失性存储器裸片(D0到D3)通过通道总线(未展示)耦合到每一通道。每一非易失性存储器裸片包含多个物理块(未展示)。在SSD的初始启动期间,固件将非易失性存储器阵列的物理块映射到四个超级块502、504、506及508中。超级块502、504、506及508中的每一者是已被指派非易失性存储器阵列中的多个物理块的逻辑块。超级块502包含通道CH0及CH1的裸片D0到D3上的所有物理块。超级块504包含通道CH2及CH3的裸片D0到D3上的所有物理块。超级块506包含通道CH4及CH5的裸片D0到D3上的所有物理块。超级块508包含通道CH6及CH7的裸片D0到D3上的所有物理块。超级块502、504、506及508中的每一者具有相同数目个物理块,其在图5a实施例中提供512GB(约0.5TB)的存储容量。尽管图5a实施例中的每一超级块包含两个通道上的所有非易失性存储器裸片,但包含任何数目个通道上的所有非易失性存储器裸片的超级块在本发明的范围内。
在SSD的初始启动期间,固件还将超级块502、504、506、508中的每一者指派给隔离区。隔离区可含有一或多个超级块且每一超级块可属于仅一个隔离区。例如,在一个实施例中,固件将超级块502指派给隔离区510且将超级块504及超级块506指派给隔离区520。在这个实施例中,隔离区510具有512GB的存储容量且固件控制维护操作,例如独立于非易失性存储器阵列中的所有其它隔离区的维护操作指派给隔离区510的物理块的垃圾收集及可靠性操作。例如,在垃圾收集期间,将要擦除的物理块中的有效数据的页移动到隔离区510内的另一物理块。在这个实施例中,隔离区520具有1TB的存储容量(超级块504的512GB存储容量加上超级块506的512GB存储容量)。固件控制独立于非易失性存储器阵列中的所有其它隔离区的维护操作指派给隔离区520的物理块的维护操作。由于超级块502、504、506及508中的每一者具有两个专用通道,因此超级块502、504、506、508中的一者上的I/O操作及维护操作不会在超级块502、504、506、508中的任一其它者上的I/O操作中引入任何延时。
图5b是根据本发明的一个实施例的SSD的非易失性存储器阵列中的多个超级块的框图。图5b的非易失性存储器阵列包含八个通道(CH0到CH7),其中两个非易失性存储器裸片(D0到D1)通过通道总线(未展示)耦合到每一通道。每一非易失性存储器裸片包含多个物理块(未展示)。在SSD的初始启动期间,固件将非易失性存储器阵列的物理块映射到四个超级块512、514、516及518中。超级块512、514、516及518中的每一者是已被指派非易失性存储器阵列中的多个物理块的逻辑块。超级块512包含通道CH0及CH1的非易失性存储器裸片D0到D1上的所有物理块。超级块514包含通道CH2及CH3的非易失性存储器裸片D0到D1上的所有物理块。超级块516包含通道CH4及CH5的非易失性存储器裸片D0到D1上的所有物理块。超级块518包含通道CH6及CH7的非易失性存储器裸片D0到D1上的所有物理块。超级块512、514、516及518中的每一者具有相同数目个物理块,其在图5b实施例中提供256GB(约0.25TB)的存储容量。
在SSD的初始启动期间,固件还将超级块512、514、516、518中的每一者指派给隔离区。隔离区可含有一或多个超级块且每一超级块可属于仅一个隔离区。例如,在一个实施例中,固件将超级块512指派给隔离区530且将超级块514、超级块516及超级块518指派给隔离区540。在这个实施例中,隔离区530具有256GB的存储容量且隔离区540具有768GB的存储容量(超级块514、超级块516及超级块518中的每一者具有256GB存储容量)。
如上文结合图5a及5b所描述,SSD的固件创建均匀大小的多个超级块且接着分配所述超级块以创建各种大小的隔离区。以这种方式,可以各种配置将SSD的总存储容量组织到一或多个隔离区中以满足不同用户的需要。图5c到5e是根据本发明的各种实施例的SSD内的超级块及隔离区的各种配置的框图。图5c的SSD的非易失性存储器阵列包含四个隔离区560、562、564及566,其中每一隔离区由一个超级块组成,所述超级块包含耦合到两个通道的所有非易失性存储器裸片上的所有物理块。图5d的SSD的非易失性存储器阵列包含三个隔离区570、572及574。隔离区570及572中的每一者由一个超级块组成,所述超级块包含耦合到两个通道的所有非易失性存储器裸片上的所有物理块:隔离区570包含通道CH0及CH1的非易失性存储器裸片D0到D3上的所有物理块且隔离区572包含通道CH2及CH3的非易失性存储器裸片D0到D3上的所有物理块。隔离区574由两个超级块组成,即包含通道CH4及CH5的非易失性存储器裸片D0到D3上的所有物理块的第一超级块及包含通道CH6及CH7的非易失性存储器裸片D0到D3上的所有物理块的第二超级块。图5e的SSD的非易失性存储器阵列包含包括四个超级块的一个隔离区580。
图6是根据本发明的一个实施例的隔离区内的命名空间的各种配置的框图。在一个实施例中,SSD中的每一隔离区经配置为命名空间。例如,4TB SSD可经配置为四个1TB隔离区,其中每一1TB隔离区被定义为单个1TB命名空间。但在其它实施例中,命名空间被定义为分配给隔离区的物理块的子组,如图6中所展示。SSD的隔离区610包含物理块的命名空间612、命名空间614、命名空间616及未分配部分618。SSD的隔离区620包含物理块的命名空间622、命名空间624及未分配部分628。SSD的隔离区630包含物理块的命名空间632及未分配部分638。为了维持隔离区的优点,命名空间612、614、616、622、624及632中的每一者含在单个隔离区内。例如,在隔离区610的命名空间612中发生的维护操作(例如垃圾收集)将不会影响隔离区630的命名空间632中的读取操作。未分配部分618、628及638中的每一者可分别分配给其对应隔离区610、620及630内的一或多个命名空间。
图7是根据本发明的一个实施例的支持低延时操作的SSD架构内的数据流的框图。SSD架构包含但不限于主机接口层710、数据高速缓冲存储器715、快闪存储器管理器层725、快闪存储器转译层720、地址映射表730、快闪存储器接口层735、快闪存储器接口层740、四个双通道控制器745、750、755及760及非易失性存储器阵列770。非易失性存储器阵列770包含隔离区772、隔离区774、隔离区776及隔离区778。隔离区772、774、776及778中的每一者包括超级块,所述超级块包含耦合到两个通道的所有非易失性存储器裸片上的所有物理块。地址映射表730存储非易失性存储器阵列770中的物理块的地址到逻辑超级块及隔离区的指派。双通道控制器745管理经由隔离区772的两个通道的通信,双通道控制器750管理经由隔离区774的两个通道的通信,双通道控制器755管理经由隔离区776的两个通道的通信,且双通道控制器760管理经由隔离区778的两个通道的通信。在图7实施例中,隔离区772、774、776及778中的每一者对应于命名空间。在其它实施例中,非易失性存储器阵列可包含其它数目个通道,例如四个或十六个,且SSD架构可包含单通道控制器,每个通道控制器用于非易失性存储器阵列的每一通道。
非易失性存储器阵列770的四个隔离区772、774、776及778作为四个独立“数据管道”而允许SSD管理一或多个主机装置或应用程序(未展示)与非易失性存储器阵列770之间的数据交换,使得主机应用程序与一个隔离区之间的数据交换不会干扰另一主机应用程序与不同隔离区之间的数据交换。数据高速缓冲存储器715(其是例如SSD的DRAM的易失性存储器中的一组存储器位置)独立地高速缓冲用于每一隔离区的命令及数据。快闪存储器转译层720独立于彼此而管理写入到隔离区772或从隔离区772读取的数据702、写入到隔离区774或从隔离区774读取的数据704、写入到隔离区776或从隔离区776读取的数据706及写入到隔离区778或从隔离区778读取的数据708。例如,要写入到隔离区772的数据702通过快闪存储器转译层720路由到快闪存储器接口层735及双通道控制器745。类似地,从隔离层776读取的数据706通过双通道控制器755及快闪存储器接口层740路由,且快闪存储器转译层720致使数据706存储在数据高速缓冲存储器715的适当区域中。
图8是根据本发明的一个实施例的用于在SSD的非易失性存储器阵列中创建超级块及隔离区的方法步骤的流程图。在步骤802中,SSD的固件检测到SSD是第一次被启动或起动(即,初始启动)。在步骤804中,固件读取先前编程到固件中的配置文件以识别要在非易失性存储器阵列中创建的每一超级块及每一隔离区的容量。每一超级块的容量由SSD制造商定义且基于SSD的总存储容量(例如,1TB、2TB或4TB)而变动。可自定义配置文件中所定义的每一隔离区的容量以满足用户的要求。例如,用户可能想要创建相等大小的多个隔离区,或可能想要创建其中每一隔离区具有不同大小的多个隔离区。在步骤806中,固件为每一超级块选择适当数目个通道。适当数目个通道可取决于SSD的硬件架构。在一个实施例中,固件为每一超级块选择两个通道。在步骤808中,固件将非易失性存储器阵列的物理块指派给每一超级块以满足配置文件中所提出的超级块要求且为每一逻辑超级块创建单独物理块列表。在一个实施例中,固件选择两个相邻通道且将所述两个通道上的每一非易失性存储器裸片的每一物理块指派给第一超级块。接着,固件选择接下来的两个相邻通道且将所述两个通道上的每一非易失性存储器裸片的每一物理块指派给第二超级块。固件以这种方式继续直到非易失性存储器阵列的所有物理块已被指派给超级块为止。固件创建指派给每一超级块的物理块的地址列表且将这些单独列表存储在地址映射表中。
在步骤810中,固件将超级块指派给隔离区且将指派存储在表中。固件将超级块指派给隔离区以便满足配置文件中所提出的隔离区容量。通常,每一隔离区包含一或多个超级块。例如,在一个实施例中,固件将一个超级块指派给多个隔离区中的每一者使得隔离区的数目等于超级块的数目;此实施例是在图5c中展示。在另一实施例中,固件将一个超级块指派给第一隔离区,将一个超级块指派给第二隔离区,且将两个超级块指派给第三隔离区;此实施例是在图5d中展示。在任选步骤812中,固件将隔离区指派给命名空间识别符。在一个实施例中,固件将每一隔离区指派给单独命名空间识别符,使得SSD中的命名空间的数目与隔离区的数目匹配。在另一实施例中,在SSD的初始启动之后的某个时间定义命名空间。如上文结合图6所描述,可在单个隔离区内定义多个命名空间。
第3部分:SSD的低延时操作
图9是根据本发明的一个实施例的各自具有支持低延时操作的架构的SSD 910、920及930的阵列的操作的时序图。为了简化说明,图9的时序图展示SSD 910、920及930中的每一者内的单个隔离区的操作。然而,结合图9的时序图所展示及所描述的操作不限于此,且同样适用于SSD内的三个隔离区或跨一或多个SSD扩展。
SSD 910、920及930的隔离区可以如上文结合图2a、2b、5a到e所描述的方式配置,其中与如图2a中所展示的隔离区202到208及如图2b中所展示的隔离区220类似,物理块来自一或多个通道的非易失性存储器裸片中的每一者,或与如图2b中所展示的隔离区230类似,物理块跨多个通道来自非易失性存储器裸片。与先前关于图3所描述的操作类似,SSD910、920及930隔离区中的每一者在以确定性模式902操作的时段与以非确定性(即,维护)模式904操作的时段之间交替。如先前所论述,在确定性模式902中隔离区仅执行读取操作,且在非确定性模式904中隔离区执行维护任务(例如,垃圾收集)且执行在处于确定性模式902时已针对隔离区积累的写入操作。
如图9中所展示,在任何给定时间点,SSD 910、920及930的隔离区中的至少一者处于确定性模式902以提供确定性读取操作。在SSD 910、920及930的隔离区中的每一者具有相同数据的副本的情况下(这通常在数据中心及存储中心环境中发生以确保关键数据的足够冗余及备份),图9中所展示的SSD 910、920及930的操作保证可随时确定性地读取的数据的至少一个副本。在其它实施例中(其中为了提供冗余而采用擦除编码且将数据写入N个编码片段中使得需要任何M个片段(其中M<N)才能够重建数据),SSD的操作确保可随时确定性地读取N个SSD中的M个。另外,可对隔离区执行必要维护及写入,而不会干扰数据的确定性读取操作。SSD 910、920及930的操作特别适合大型数据中心或存储中心环境,其中多个装置同时不断地从SSD读取数据及将数据写入到SSD。
虽然图9中展示三个隔离区/SSD 910、920及930,但结合图9的时序图所展示及所描述的操作同样不限于此且可根据本发明的各种实施例在一或多个SSD中的两个或更多个隔离区中实施。例如,在单个SSD内的两个隔离区用于存储数据副本的情况下,则一个隔离区应处于确定性模式以执行数据的读取操作,而另一隔离区在非确定性模式中经历维护及/或执行写入操作。类似地,在跨两个SSD的四个隔离区用于存储数据副本的情况下,例如在任何时间点多达三个隔离区可处于非确定性模式,而剩余的一或多个隔离区处于确定性模式以提供读取操作。然而,可优选地操作SSD使得两个或更多个隔离区始终在确定性模式中操作以提供读取数据错误处置的灵活性,如下文将更详细地描述。
图10是根据本发明的一个实施例的用于SSD的低延时操作的方法步骤1000的流程图。为了简化说明,方法步骤1000是关于SSD内的单个隔离区进行描述,且可类似地应用于与本发明的各种实施例一致的SSD或SSD阵列的其它隔离区。如图10中所展示,在步骤1002中,隔离区进入确定性模式。在步骤1004处,从隔离区读取数据。在步骤1006中,使隔离区的一或多个维护计数器递减。在一个实施例中,维护计数器跟踪隔离区中的读取操作次数且维护计数器的起始值是可在需要维护操作之前执行的读取操作的典型次数。在这个或其它实施例中,维护计数器跟踪时间增量,针对隔离区排队的写入操作次数,或读取操作次数、写入操作次数及/或时间增量的组合。在步骤1008中,进行维护计数器的检查以确定维护计数器是否低于指示需要对隔离区执行维护的最小阈值。如果维护计数器仍高于最小阈值,那么仍不需要执行维护且隔离区可继续处理读取命令并在步骤1004处再次读取数据。
然而,如果维护计数器低于指示需要对隔离区执行维护的最小阈值,那么在步骤1010中,隔离区进入非确定性模式。在步骤1012中,隔离区执行维护操作及所积累写入操作。在步骤1014中,随着执行维护操作,维护计数器对应地增加。在步骤1016中,检查维护计数器以确定是否已执行足够维护操作且隔离区可返回到在确定性模式中操作。如果是,那么隔离区在步骤1002处重新进入确定性模式且重复方法步骤1000。如果否,那么在步骤1012处再次执行额外维护操作及写入操作。
维护计数器可以任何合适方式实施,例如在一个实施例中作为状态寄存器实施。在一个实施例中,状态寄存器随着在步骤1004及1006处从隔离区读取数据而单调递减,且随着在步骤1012及1014处执行维护及写入操作而单调增加。另外,维护计数器随着在步骤1004处执行读取操作而在步骤1006处递减且随着在步骤1012处执行维护操作而在步骤1014处递增并不重要。在另一实施例中,维护计数器随着在步骤1004处执行读取操作而递增且随着在步骤1012处执行维护操作而递减。在这个实施例中,步骤1008处的检查将确定维护计数器是否高于指示需要对隔离区执行维护的最大阈值,且步骤1016处的检查将确定维护计数器是否低于指示已执行足够维护操作且隔离区可返回到在确定性模式中操作的可接受阈值。
在一个实施例中,隔离区在步骤1008处确定维护计数器低于最小阈值时不会在步骤1010处自动地从确定性操作模式转变为非确定性操作模式,且在步骤1016处确定维护计数器高于可接受阈值时不会在步骤1002处从非确定性操作模式转变为确定性操作模式。相反,主机装置可经配置以设置隔离区的操作模式(即,确定性或非确定性)。在这个实施例中,SSD将关于隔离区何时将需要维护的估计提供到主机装置。
例如,当确定维护计数器低于最小阈值时,SSD可向主机装置发送向主机指示将需要在一定时间段内或在一定次数的读取操作内对隔离区执行维护的通知。接着,主机装置可协调隔离区进入非确定性模式的时序以对存储相同数据副本的其它隔离区执行维护操作,以确保可确定性地从另一隔离区存取数据副本同时以如先前结合图9所说明的方式对当前隔离区执行维护。
此外,一旦已执行足够维护及写入操作且维护计数器高于可接受阈值,SSD就可将另一通知发送到主机装置,所述另一通知向主机指示隔离区已准备好恢复在确定性模式中操作且主机装置可与具有相同数据副本且需要维护的其它隔离区协调隔离区或命名空间从非确定性模式重新进入确定性模式的时序。在一个实施例中,主机装置不需要等待来自SSD的指示以将隔离区的操作模式从确定性模式改变为非确定性模式,或反之亦然,且可取决于存储相同数据副本的各种隔离区的维护需要而这样做。在一个实施例中,主机装置定期检查SSD的维护计数器以确定隔离区是否需要维护,而非SSD将指示发送到主机。在另一实施例中,主机在任何给定时间根据读取及写入操作的工作负载平衡进入/离开确定性模式。例如,当读取操作占优势时可选择确定性模式,或当写入操作占优势时选择非确定性模式。在另一实施例中,主机基于维护计数器阈值估计确定性模式及非确定性模式的持续时间并仅基于时间调度隔离区在模式之间的切换,而且使用当前维护计数器值来创建此调度的例外。
第4部分:读取数据错误处置
在一个实施例中,SSD(例如图1的SSD 100)经配置以实施多个级别的错误校正以辅助正确地从非易失性存储器阵列读取数据。错误校正级别在所需处理资源的复杂度及数量方面有所不同。SSD 100的控制器120经配置以从最低错误校正复杂度等级开始将错误校正应用于从非易失性存储器的页面读取的数据,且如果数据未成功地恢复,那么应用下一更高错误校正级别直到成功地恢复数据或耗尽可用错误校正且认为数据不可恢复为止。在一个实施例中,按复杂度增加的顺序的错误校正技术级别包含硬决策低密度奇偶校验(LDPC)、一或多个级别的软决策LDPC及四重逐行编码(QSBC)。其它类型的错误校正编码(例如BCH(Bose-Chaudhuri-Hocquenghem)分组码)也在本发明的范围内。应用多个级别的错误校改进SSD成功地读取数据的能力,但可能引入显著延时。
如上文结合图9所描述,数据中心通常将多个数据副本存储在SSD内的不同隔离区或命名空间内及/或相同或不同地理位置的不同SSD中。在此环境中,主机应用程序能够从任何可用的不同位置读取数据。如果一个SSD、隔离区或命名空间的读取命令不成功,即,读取命令返回错误,那么主机应用程序可尝试从另一位置读取相同数据。例如,如果SSD 910返回读取命令的错误,那么可从SSD 920或SSD 930读取数据。
在一个实施例中,控制器120的固件经配置以使主机应用程序能够选择对应于错误校正级别的具有典型读取延时的最大读取恢复级别。主机应用程序可为特定SSD、隔离区或命名空间的所有读取命令选择最大读取恢复级别及其相关读取延时,或个别地为每一读取命令进行选择。如果主机应用程序选择低于SSD的控制器能够具有的最高错误校正级别的最大读取恢复级别,那么SSD将比应用所有级别的错误校正更早地返回读取错误。接着,主机应用程序可尝试从另一SSD、隔离区或命名空间读取数据。如果主机应用程序未通过选择读取命令的最大读取恢复级别来“选择加入”,那么SSD将以增加的复杂度级别应用错误校正技术直到已成功地读取数据或耗尽错误校正技术为止。表1中列出读取恢复级别及相关联读取延时的集合的一个实施例。
表1
读取恢复级别 | ECC | 平均时间 |
“0” | 硬决策LDPC | 100μs |
“1” | 软决策LDPC | 200μs |
“2” | QSBC | 1ms |
图11是根据本发明的一个实施例的用于通过SSD处置读取数据错误的方法步骤1100的流程图。在步骤1102中,SSD的固件识别从主机应用程序接收的读取命令的最大读取恢复级别。在一个实施例中,SSD、隔离区或命名空间先前已经配置以对所有读取命令使用最大读取恢复级别。在另一实施例中,主机应用程序个别地选择每一读取命令的最大读取恢复级别。在步骤1104中,SSD执行包含适用错误校正级别的读取命令。例如,如果主机应用程序选择表1中的读取恢复级别“1”,那么SSD将首先对数据应用硬决策LDPC技术,且如果未成功地恢复数据,那么将应用软决策LDPC技术。在步骤1106中,SSD的固件确定数据是否已在其相关联读取延时内以最大读取恢复级别成功地读取。如果成功地恢复数据,那么在步骤1108中,SSD将读取完成写入到主机应用程序的完成队列。如果未成功地恢复数据,那么在步骤1110中,SSD将读取错误报告给主机应用程序的完成队列。
图12是根据本发明的一个实施例的用于通过连接到一或多个SSD的主机应用程序处置读取数据错误的方法步骤1200的流程图。在步骤1202中,主机应用程序设置读取命令的最大读取恢复级别。在另一实施例中,主机应用程序全局地设置发出到特定命名空间、隔离区或SSD的所有读取命令的最大读取恢复级别。在步骤1204中,主机应用程序将读取命令发出到SSD中的命名空间。在步骤1206中,主机应用程序检查其完成队列以确定SSD是否返回所请求数据的不可校正错误或某个其它错误响应。如果SDD返回错误,那么在步骤1208中,主机应用程序确定所请求数据的另一副本是否存储在另一命名空间、隔离区或SSD中。如果是,那么所述方法返回到步骤1202,其中主机应用程序尝试从另一命名空间读取数据。如果在步骤1208中主机应用程序确定数据的另一副本在另一命名空间中不可用,例如如果不存在数据的其它副本或另一数据位置未经历电源故障,那么在步骤1210中,主机应用程序确定是否有更高读取恢复级别可用。如果所述命名空间没有更高读取恢复级别可用,那么所述方法结束(读取命令作为错误返回)。如果更高读取恢复级别可用,那么在步骤1212中,主机应用程序选择更高读取恢复级别,其可为可用的最高错误校正级别。接着,所述方法返回到步骤1204。
本发明的各个方面的其它目的、优点及实施例对于本发明领域技术人员来说将是显而易见的且在说明书及附图的范围内。例如但不限于,可与本发明一致地重新布置结构或功能元件或重新排序方法步骤。类似地,根据本发明的原理可应用于其它实例,所述其它实例即使在此未详细地描述也将在本发明的范围内。
Claims (23)
1.一种固态驱动器SSD,其包括:
多个非易失性存储器裸片,其通信地布置在一或多个通信通道中,所述多个非易失性存储器裸片中的每一者包括多个物理块;
一或多个通道控制器,其分别通信地耦合到所述一或多个通信通道;及
存储器控制器,其经由所述一或多个通道控制器通信地耦合到所述多个非易失性存储器裸片,其中所述存储器控制器经配置以:
(i)将所述多个非易失性存储器裸片中的第一裸片的所述多个物理块仅指派给第一区且(ii)将所述多个非易失性存储器裸片中的第二裸片的所述多个物理块仅指派给第二区,
在第一操作模式中对所述第一区仅执行读取操作,且
在所述第一操作模式中对所述第一区执行读取操作的同时在第二操作模式中对所述第二区执行写入操作或维护操作。
2.根据权利要求1所述的SSD,其中所述第一区及所述第二区中的至少一者包括一或多个通信通道中的所述非易失性存储器裸片中的每一者的所述多个物理块。
3.根据权利要求1所述的SSD,其中所述第一区及所述第二区中的至少一者包括来自所述一或多个通信通道中的每一者的一或多个非易失性存储器裸片的所述多个物理块。
4.根据权利要求1所述的SSD,其中所述存储器控制器进一步经配置以在所述第一区及所述第二区中的至少一者内创建一或多个命名空间。
5.根据权利要求1所述的SSD,其中所述存储器控制器进一步经配置以:
维护所述第一区及所述第二区中的每一者的维护计数器,
当所述对应区处于所述第一操作模式时使所述维护计数器单调递减,且
当所述对应区处于所述第二操作模式时使所述维护计数器单调递增。
6.根据权利要求5所述的SSD,其中当所述对应维护计数器高于第一阈值时所述第一区及所述第二区中的每一者在所述第一操作模式中操作,且当所述对应维护计数器低于第二阈值时所述第一区及所述第二区中的每一者在所述第二操作模式中操作。
7.根据权利要求1所述的SSD,其中所述存储器控制器进一步经配置以:
维护所述第一区及所述第二区中的每一者的维护计数器,
当所述对应区处于所述第一操作模式时使所述维护计数器单调递增,且
当所述对应区处于所述第二操作模式时使所述维护计数器单调递减。
8.根据权利要求7所述的SSD,其中当所述对应维护计数器低于第一阈值时所述第一区及所述第二区中的每一者在所述第一操作模式中操作,且在所述对应维护计数器高于第二阈值的情况下所述第一区及所述第二区中的每一者在所述第二操作模式中操作。
9.一种存储设备,其包括:
多个SSD,所述多个SSD中的每一者包括:
多个非易失性存储器裸片,其通信地布置在一或多个通信通道中,所述多个非易失性存储器裸片中的每一者包括多个物理块;
一或多个通道控制器,其分别通信地耦合到所述一或多个通信通道;及
存储器控制器,其经由所述一或多个通道控制器通信地耦合到所述多个非易失性存储器裸片,其中所述存储器控制器经配置以:
(i)将所述多个非易失性存储器裸片中的第一裸片的所述多个物理块仅指派给第一区且(ii)将所述多个非易失性存储器裸片中的第二裸片的所述多个物理块仅指派给第二区,
在第一操作模式中对所述第一区仅执行读取操作,且
与所述第一操作模式同时,在第二操作模式中对所述第二区执行写入操作或维护操作。
10.根据权利要求9所述的存储设备,其中所述多个SSD的所述第一区及所述第二区中的至少一者包括一或多个通信通道中的所述非易失性存储器裸片中的每一者的所述多个物理块。
11.根据权利要求9所述的存储设备,其中所述多个SSD的所述第一区及所述第二区中的至少一者包括来自所述一或多个通信通道中的每一者的一或多个非易失性存储器裸片的所述多个物理块。
12.根据权利要求9所述的存储设备,其中所述多个SSD中的每一者的所述存储器控制器进一步经配置以:
维护所述多个SSD的所述第一区及所述第二区中的每一者的维护计数器,
当所述对应区处于所述第一操作模式时使所述维护计数器单调递减,且
当所述对应区处于所述第二操作模式时使所述维护计数器单调递增。
13.根据权利要求12所述的存储设备,其中当所述对应维护计数器高于第一阈值时所述多个SSD的所述第一区及所述第二区中的每一者在所述第一操作模式中操作,且当所述对应维护计数器低于第二阈值时所述多个SSD的所述第一区及所述第二区中的每一者在所述第二操作模式中操作。
14.根据权利要求9所述的存储设备,其中所述多个SSD中的每一者的所述存储器控制器进一步经配置以:
维护所述多个SSD的所述第一区及所述第二区中的每一者的维护计数器,
当所述对应区处于所述第一操作模式时使所述维护计数器单调递增,且
当所述对应区处于所述第二操作模式时使所述维护计数器单调递减。
15.根据权利要求14所述的存储设备,其中当所述对应维护计数器低于第一阈值时所述多个SSD的所述第一区及所述第二区中的每一者在所述第一操作模式中操作,且当所述对应维护计数器高于第二阈值时所述多个SSD的所述第一区及所述第二区中的每一者在所述第二操作模式中操作。
16.一种操作SSD的方法,所述方法包括:
将通信地布置在一或多个通信通道中的多个非易失性存储器裸片中的第一裸片仅指派给第一区,所述多个非易失性存储器裸片中的每一者包括多个物理块;
将所述多个非易失性存储器裸片中的第二裸片仅指派给第二区;
在第一操作模式中对所述第一区仅执行读取操作;及
在所述第一操作模式中对所述第一区执行读取操作的同时在第二操作模式中对所述第二区执行写入操作或维护操作。
17.根据权利要求16所述的方法,其中所述第一区及所述第二区中的至少一者包括一或多个通信通道中的所述非易失性存储器裸片中的每一者的所述多个物理块。
18.根据权利要求16所述的方法,其中所述第一区及所述第二区中的至少一者包括来自所述一或多个通信通道中的每一者的一或多个非易失性存储器裸片的所述多个物理块。
19.根据权利要求16所述的方法,其进一步包括:
在所述第一区及所述第二区中的至少一者内创建一或多个命名空间。
20.根据权利要求16所述的方法,其进一步包括:
维护所述第一区及所述第二区中的每一者的维护计数器;
当所述对应区处于所述第一操作模式时使所述维护计数器单调递减;及
当所述对应区处于所述第二操作模式时使所述维护计数器单调递增。
21.根据权利要求20所述的方法,其进一步包括:
当所述对应维护计数器高于第一阈值时在所述第一操作模式中操作所述第一区及所述第二区;及
当所述对应维护计数器低于第二阈值时在所述第二操作模式中操作所述第一区及所述第二区。
22.根据权利要求16所述的方法,其进一步包括:
维护所述第一区及所述第二区中的每一者的维护计数器;
当所述对应区处于所述第一操作模式时使所述维护计数器单调递增;及
当所述对应区处于所述第二操作模式时使所述维护计数器单调递减。
23.根据权利要求22所述的方法,其进一步包括:
当所述对应维护计数器低于第一阈值时在所述第一操作模式中操作所述第一区及所述第二区;及
当所述对应维护计数器高于第二阈值时在所述第二操作模式中操作所述第一区及所述第二区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410746629.4A CN118605808A (zh) | 2017-08-07 | 2018-08-06 | 支持低延时操作的ssd架构 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762542108P | 2017-08-07 | 2017-08-07 | |
US62/542,108 | 2017-08-07 | ||
US15/800,742 | 2017-11-01 | ||
US15/800,742 US11294594B2 (en) | 2017-08-07 | 2017-11-01 | SSD architecture supporting low latency operation |
PCT/IB2018/001039 WO2019030571A1 (en) | 2017-08-07 | 2018-08-06 | SSD ARCHITECTURE SUPPORTING LOW LATENCY OPERATION |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410746629.4A Division CN118605808A (zh) | 2017-08-07 | 2018-08-06 | 支持低延时操作的ssd架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111149083A true CN111149083A (zh) | 2020-05-12 |
CN111149083B CN111149083B (zh) | 2024-06-28 |
Family
ID=65231623
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880063608.5A Active CN111149083B (zh) | 2017-08-07 | 2018-08-06 | 支持低延时操作的ssd架构 |
CN202410746629.4A Pending CN118605808A (zh) | 2017-08-07 | 2018-08-06 | 支持低延时操作的ssd架构 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410746629.4A Pending CN118605808A (zh) | 2017-08-07 | 2018-08-06 | 支持低延时操作的ssd架构 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11294594B2 (zh) |
EP (1) | EP3665560B1 (zh) |
JP (1) | JP7258849B2 (zh) |
CN (2) | CN111149083B (zh) |
WO (1) | WO2019030571A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
GB2545503B (en) * | 2015-12-18 | 2020-04-08 | Imagination Tech Ltd | Lossy data compression |
KR102410671B1 (ko) * | 2017-11-24 | 2022-06-17 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치를 제어하는 호스트 장치, 및 스토리지 장치의 동작 방법 |
CN109901782A (zh) * | 2017-12-07 | 2019-06-18 | 上海宝存信息科技有限公司 | 数据储存装置与数据储存方法 |
US10776263B2 (en) * | 2018-06-27 | 2020-09-15 | Seagate Technology Llc | Non-deterministic window scheduling for data storage systems |
US10909030B2 (en) | 2018-09-11 | 2021-02-02 | Toshiba Memory Corporation | Enhanced trim command support for solid state drives |
US10949120B2 (en) * | 2019-02-19 | 2021-03-16 | Intel Corporation | Host defined bandwidth allocation for SSD tasks |
US10789015B2 (en) * | 2019-03-01 | 2020-09-29 | Micron Technology, Inc. | Background operations in memory |
CN110888592B (zh) * | 2019-05-15 | 2023-09-15 | 天津大学深圳研究院 | 基于延迟ssd系统智能并行资源利用的请求调度方法及系统 |
US11940929B2 (en) * | 2019-05-24 | 2024-03-26 | Texas Instruments Incorporated | Methods and apparatus to reduce read-modify-write cycles for non-aligned writes |
US11256621B2 (en) * | 2019-06-25 | 2022-02-22 | Seagate Technology Llc | Dual controller cache optimization in a deterministic data storage system |
US11416161B2 (en) | 2019-06-28 | 2022-08-16 | Western Digital Technologies, Inc. | Zone formation for zoned namespaces |
US11023138B2 (en) * | 2019-06-28 | 2021-06-01 | Western Digital Technologies, Inc. | Management operations in predictable latency mode |
CN112233715B (zh) * | 2019-07-15 | 2024-06-18 | 美光科技公司 | 用于存储器系统的维护操作 |
US11249648B2 (en) * | 2019-07-26 | 2022-02-15 | Kioxia Corporation | Transfer and processing unit for IOD SSD |
US11704056B2 (en) | 2019-07-26 | 2023-07-18 | Kioxia Corporation | Independent set data lanes for IOD SSD |
US11016829B2 (en) | 2019-07-26 | 2021-05-25 | Toshiba Memory Corporation | Two-layered deterministic interprocess communication scheduler for input output determinism in solid state drives |
US11474726B2 (en) * | 2019-09-04 | 2022-10-18 | SK Hynix Inc. | Memory system, memory controller, and operation method thereof |
US11416171B2 (en) | 2020-01-07 | 2022-08-16 | Western Digital Technologies, Inc. | Dynamic predictive latency attributes |
US11204839B2 (en) | 2020-02-20 | 2021-12-21 | SK Hynix Inc. | Memory system with low-latency read recovery and method of operating the memory system |
US11556279B2 (en) * | 2020-08-21 | 2023-01-17 | Samsung Electronics Co., Ltd. | System device, and method for memory interface including reconfigurable channel |
US20220261182A1 (en) * | 2021-02-17 | 2022-08-18 | SK Hynix Inc. | Superblock linkage systems and method for asymmetric die packages |
US11561713B2 (en) * | 2021-03-11 | 2023-01-24 | Western Digital Technologies, Inc. | Simplified high capacity die and block management |
US12050807B2 (en) * | 2021-04-23 | 2024-07-30 | EMC IP Holding Company, LLC | Memory management system and method |
CN117321934A (zh) * | 2021-07-04 | 2023-12-29 | 迈凌有限公司 | 具有2阶fec保护的pmd到tc-mac接口 |
KR20230039127A (ko) | 2021-09-13 | 2023-03-21 | 에스케이하이닉스 주식회사 | Ssd에 포함된 존의 병렬성을 탐지하는 장치 및 그 동작 방법 |
US11853565B2 (en) * | 2021-10-01 | 2023-12-26 | Western Digital Technologies, Inc. | Support higher number of active zones in ZNS SSD |
TWI780003B (zh) * | 2022-02-15 | 2022-10-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
US11880604B2 (en) | 2022-05-12 | 2024-01-23 | Western Digital Technologies, Inc. | Read fused groups with uniform resource allocation |
US11922036B2 (en) | 2022-05-12 | 2024-03-05 | Western Digital Technologies, Inc. | Host data stream assignment with space-leveling across storage block containers |
US11941273B2 (en) | 2022-05-12 | 2024-03-26 | Western Digital Technologies, Inc. | Variable capacity Zone Namespace (ZNS) flash storage data path |
Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777933A (zh) * | 2010-01-29 | 2010-07-14 | 中国科学院空间科学与应用研究中心 | 机群链路的加密跳码扩频信号生成与捕获系统 |
US20100250826A1 (en) * | 2009-03-24 | 2010-09-30 | Micron Technology, Inc. | Memory systems with a plurality of structures and methods for operating the same |
US20110197045A1 (en) * | 2010-02-10 | 2011-08-11 | Kabushiki Kaisha Toshiba | Memory system |
WO2012084523A2 (en) * | 2010-12-22 | 2012-06-28 | Nagravision S.A. | System and method to enforce utility meter security |
CN102591593A (zh) * | 2011-12-28 | 2012-07-18 | 华为技术有限公司 | 一种混合存储模式的切换方法、装置及系统 |
CN102763090A (zh) * | 2010-01-28 | 2012-10-31 | 索尼爱立信移动通讯有限公司 | 用于利用nand存储器件同时读写的系统和方法 |
CN103339617A (zh) * | 2011-02-02 | 2013-10-02 | 美光科技公司 | 存储器系统中的至少半自主模块及其方法 |
CN103635968A (zh) * | 2011-05-31 | 2014-03-12 | 美光科技公司 | 包含存储器系统控制器的设备和相关方法 |
CN104008775A (zh) * | 2013-02-27 | 2014-08-27 | 闪矽公司 | 多次可规划非易失性查找表及输出位产生方法 |
US20140281160A1 (en) * | 2013-03-14 | 2014-09-18 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor storage apparatus |
US8898373B1 (en) * | 2011-06-29 | 2014-11-25 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
CN104335159A (zh) * | 2012-02-29 | 2015-02-04 | 赛门铁克公司 | 间隔控制复制 |
US20150120993A1 (en) * | 2013-10-31 | 2015-04-30 | Fujitsu Limited | Information processing apparatus, storage device control circuit, and storage device control method |
CN104813408A (zh) * | 2012-12-14 | 2015-07-29 | 桑迪士克科技股份有限公司 | 跟踪对非易失性存储器的区域的读访问 |
WO2015145552A1 (ja) * | 2014-03-24 | 2015-10-01 | 株式会社日立製作所 | 不揮発メモリデバイス、及び、不揮発メモリデバイスを有するストレージ装置 |
CN105653202A (zh) * | 2014-09-26 | 2016-06-08 | Hgst荷兰有限公司 | 一种用于逻辑存储管理的多级方案 |
US20170046256A1 (en) * | 2015-08-11 | 2017-02-16 | Ocz Storage Solutions, Inc. | Pool level garbage collection and wear leveling of solid state devices |
CN106489134A (zh) * | 2014-06-02 | 2017-03-08 | 美光科技公司 | 用于在可扩展存储器系统协议中包封数据的系统及方法 |
JP2017054483A (ja) * | 2015-09-08 | 2017-03-16 | ソニー株式会社 | メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法 |
US20170123666A1 (en) * | 2015-10-30 | 2017-05-04 | Sandisk Technologies Inc. | System and method for managing maintenance scheduling in a non-volatile memory |
US20170123707A1 (en) * | 2015-10-29 | 2017-05-04 | Micron Technology, Inc. | Memory cells configured in multiple configuration modes |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977805B2 (en) * | 2009-03-25 | 2015-03-10 | Apple Inc. | Host-assisted compaction of memory blocks |
US8331123B2 (en) | 2009-09-21 | 2012-12-11 | Ocz Technology Group, Inc. | High performance solid-state drives and methods therefor |
US8699277B2 (en) | 2011-11-16 | 2014-04-15 | Qualcomm Incorporated | Memory configured to provide simultaneous read/write access to multiple banks |
US10146482B2 (en) * | 2014-08-01 | 2018-12-04 | Toshiba Memory Corporation | Global error recovery system |
US10289475B2 (en) * | 2015-01-21 | 2019-05-14 | Toshiba Memory Corporation | Memory system |
JP6779838B2 (ja) * | 2017-06-28 | 2020-11-04 | キオクシア株式会社 | メモリシステムおよび制御方法 |
-
2017
- 2017-11-01 US US15/800,742 patent/US11294594B2/en active Active
-
2018
- 2018-08-06 EP EP18793261.1A patent/EP3665560B1/en active Active
- 2018-08-06 CN CN201880063608.5A patent/CN111149083B/zh active Active
- 2018-08-06 WO PCT/IB2018/001039 patent/WO2019030571A1/en unknown
- 2018-08-06 JP JP2020507072A patent/JP7258849B2/ja active Active
- 2018-08-06 CN CN202410746629.4A patent/CN118605808A/zh active Pending
-
2022
- 2022-03-21 US US17/700,321 patent/US12032438B2/en active Active
-
2024
- 2024-07-08 US US18/765,622 patent/US20240362111A1/en active Pending
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100250826A1 (en) * | 2009-03-24 | 2010-09-30 | Micron Technology, Inc. | Memory systems with a plurality of structures and methods for operating the same |
CN102763090A (zh) * | 2010-01-28 | 2012-10-31 | 索尼爱立信移动通讯有限公司 | 用于利用nand存储器件同时读写的系统和方法 |
CN101777933A (zh) * | 2010-01-29 | 2010-07-14 | 中国科学院空间科学与应用研究中心 | 机群链路的加密跳码扩频信号生成与捕获系统 |
US20110197045A1 (en) * | 2010-02-10 | 2011-08-11 | Kabushiki Kaisha Toshiba | Memory system |
WO2012084523A2 (en) * | 2010-12-22 | 2012-06-28 | Nagravision S.A. | System and method to enforce utility meter security |
CN103339617A (zh) * | 2011-02-02 | 2013-10-02 | 美光科技公司 | 存储器系统中的至少半自主模块及其方法 |
CN103635968A (zh) * | 2011-05-31 | 2014-03-12 | 美光科技公司 | 包含存储器系统控制器的设备和相关方法 |
US8898373B1 (en) * | 2011-06-29 | 2014-11-25 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
CN102591593A (zh) * | 2011-12-28 | 2012-07-18 | 华为技术有限公司 | 一种混合存储模式的切换方法、装置及系统 |
CN104335159A (zh) * | 2012-02-29 | 2015-02-04 | 赛门铁克公司 | 间隔控制复制 |
CN104813408A (zh) * | 2012-12-14 | 2015-07-29 | 桑迪士克科技股份有限公司 | 跟踪对非易失性存储器的区域的读访问 |
CN104008775A (zh) * | 2013-02-27 | 2014-08-27 | 闪矽公司 | 多次可规划非易失性查找表及输出位产生方法 |
US20140281160A1 (en) * | 2013-03-14 | 2014-09-18 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor storage apparatus |
US20150120993A1 (en) * | 2013-10-31 | 2015-04-30 | Fujitsu Limited | Information processing apparatus, storage device control circuit, and storage device control method |
WO2015145552A1 (ja) * | 2014-03-24 | 2015-10-01 | 株式会社日立製作所 | 不揮発メモリデバイス、及び、不揮発メモリデバイスを有するストレージ装置 |
CN106489134A (zh) * | 2014-06-02 | 2017-03-08 | 美光科技公司 | 用于在可扩展存储器系统协议中包封数据的系统及方法 |
CN105653202A (zh) * | 2014-09-26 | 2016-06-08 | Hgst荷兰有限公司 | 一种用于逻辑存储管理的多级方案 |
US20170046256A1 (en) * | 2015-08-11 | 2017-02-16 | Ocz Storage Solutions, Inc. | Pool level garbage collection and wear leveling of solid state devices |
JP2017054483A (ja) * | 2015-09-08 | 2017-03-16 | ソニー株式会社 | メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法 |
US20170123707A1 (en) * | 2015-10-29 | 2017-05-04 | Micron Technology, Inc. | Memory cells configured in multiple configuration modes |
US20170123666A1 (en) * | 2015-10-30 | 2017-05-04 | Sandisk Technologies Inc. | System and method for managing maintenance scheduling in a non-volatile memory |
Non-Patent Citations (2)
Title |
---|
MOON, SANGWHAN: "Reliability of SSD storage systems", 《TEXAS A&M UNIVERSITY》, 31 December 2015 (2015-12-31) * |
梅飞;曹强;: "SSDKV:一种SSD友好的键值对存储系统", 计算机工程与科学, no. 07, 15 July 2016 (2016-07-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN118605808A (zh) | 2024-09-06 |
US20190042150A1 (en) | 2019-02-07 |
US12032438B2 (en) | 2024-07-09 |
US20220214834A1 (en) | 2022-07-07 |
US20240362111A1 (en) | 2024-10-31 |
US11294594B2 (en) | 2022-04-05 |
CN111149083B (zh) | 2024-06-28 |
EP3665560A1 (en) | 2020-06-17 |
JP2020529684A (ja) | 2020-10-08 |
JP7258849B2 (ja) | 2023-04-17 |
EP3665560B1 (en) | 2024-03-20 |
WO2019030571A1 (en) | 2019-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111149083B (zh) | 支持低延时操作的ssd架构 | |
JP7366795B2 (ja) | メモリシステムおよび制御方法 | |
JP5256149B2 (ja) | Hdd障害からの高速データ回復 | |
CN112148525B (zh) | 实现更快且经过调节的装置初始化时间 | |
US11868652B2 (en) | Utilization based dynamic shared buffer in data storage system | |
US9122629B2 (en) | Elastic cache with single parity | |
US10254981B2 (en) | Adaptive health grading for a non-volatile memory | |
US9898215B2 (en) | Efficient management of page retirement in non-volatile memory utilizing page retirement classes | |
US9047200B2 (en) | Dynamic redundancy mapping of cache data in flash-based caching systems | |
US9524116B1 (en) | Reducing read-after-write errors in a non-volatile memory system using an old data copy | |
KR20130092482A (ko) | 신뢰성 있는 ssd를 위한 효율적인 raid 기법 | |
US20160239205A1 (en) | Hybrid solid state drive (ssd) using pcm or other high performance solid-state memory | |
WO2020250071A1 (en) | Wear-aware block mode conversion in non-volatile memory | |
US20150052329A1 (en) | Memory control device, host computer, information processing system and method of controlling memory control device | |
US9952978B2 (en) | Method for improving mixed random performance in low queue depth workloads | |
US20190278486A1 (en) | Storage system, data management method, and data management program | |
KR102347841B1 (ko) | 메모리제어장치 및 메모리제어장치의 동작 방법 | |
JP2012248110A (ja) | マルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法 | |
JP2014052978A (ja) | 不揮発性半導体メモリの制御方法及びメモリシステム | |
US11288197B2 (en) | Method and apparatus for performing pipeline-based accessing management in a storage server | |
Ma et al. | Log-roc: Log structured raid on open-channel ssd | |
US11797183B1 (en) | Host assisted application grouping for efficient utilization of device resources | |
KR20240053298A (ko) | 호스트와 메모리 시스템에서 맵데이터를 관리하는 장치 및 방법 | |
JP2009080549A (ja) | ディスクアレイ制御装置およびデータ配置方法 | |
JP2013161132A (ja) | 半導体記憶装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |