CN107526543A - 形性存储设备 - Google Patents

形性存储设备 Download PDF

Info

Publication number
CN107526543A
CN107526543A CN201710455905.1A CN201710455905A CN107526543A CN 107526543 A CN107526543 A CN 107526543A CN 201710455905 A CN201710455905 A CN 201710455905A CN 107526543 A CN107526543 A CN 107526543A
Authority
CN
China
Prior art keywords
flash memory
physical flash
memory block
bit error
retention time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710455905.1A
Other languages
English (en)
Other versions
CN107526543B (zh
Inventor
I.S.崔
奇亮奭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN107526543A publication Critical patent/CN107526543A/zh
Application granted granted Critical
Publication of CN107526543B publication Critical patent/CN107526543B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals

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)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明提供一种固态驱动器,其根据使用固态驱动器中的存储的应用的要求来选择物理快闪存储器块以及擦除和编程方法。固态驱动器中的磨损跟踪器对编程和擦除周期进行计数,并且固态驱动器中的原始比特错误率跟踪器监视从固态驱动器读取的数据中的原始比特错误率。所述应用向固态驱动器提供关于可允许保留时间和关于平均响应时间的要求,所述可允许保留时间与由所述应用存储的数据的预期存储时间相对应,并且所述平均响应时间与对于所述快闪存储器的编程次数和读取次数相对应。固态驱动器识别适于满足所述要求的物理快闪存储器块,并且从所识别的物理快闪存储器块当中向所述应用分配存储空间。

Description

形性存储设备
技术领域
根据本发明的实施例的一个或多个方面涉及快闪存储器,并且更具体地,涉及用于调整快闪存储器设备的操作以适应各种情形的系统和方法。
背景技术
快闪存储器是其中数据的保留时间可以取决于各种因素的一种形式的持久性存储设备。例如,快闪存储器单元(flash memory cell)中的数据的保留时间可以取决于该单元已经经历的编程和擦除周期的数量、所使用的擦除方法、和所使用的编程方法。使用快闪存储器的各种应用可以具有不同的要求,例如,一些应用要求非常长的保留时间,而其它应用仅仅要求较短的保留时间。对于仅仅要求较短的保留时间的应用,以提供较长的保留时间的方式来操作快闪存储器可能不是有利的,这会导致例如降低的性能。
因此,存在对于用于调整快闪存储器设备的操作以适应各种情形的系统和方法的需求。
发明内容
本公开的实施例的各方面专注于一种固态驱动器,其根据使用所述固态驱动器中的存储的应用的要求来选择物理快闪存储器块以及擦除和编程方法。固态驱动器中的磨损跟踪器可以对编程和擦除周期进行计数,并且固态驱动器中原始比特错误率跟踪器可以监视从固态驱动器读取的数据中的原始比特错误。所述应用可以向固态驱动器提供关于可允许保留时间和关于平均响应时间的要求,所述可允许保留时间与由所述应用存储的数据的预期存储时间相对应,并且所述平均响应时间与对于所述快闪存储器的编程次数和读取次数相对应。固态驱动器可以识别适于满足所述要求的物理快闪存储器块,并且可以从所识别的物理快闪存储器块当中向所述应用分配存储空间。
根据本发明的实施例,提供了一种用于分配连接到主机的固态驱动器中的快闪存储器的部分的方法,该快闪存储器包括多个物理快闪存储器块,所述方法包括:对快闪存储器执行多个读取操作,一个或多个读取操作包括纠错码解码操作,所述纠错码解码操作产生比特错误计数;从多个比特错误计数计算针对所述多个物理快闪存储器块中的一个或多个的原始比特错误率;对针对所述多个物理快闪存储器块中的每一个执行的编程和擦除周期进行计数;对于多个编程方法中的每一个,针对一个或多个物理快闪存储器块,从所述原始比特错误率以及编程和擦除周期的数量,来计算以下各项:平均响应时间,和估计的可允许保留时间;从运行在主机上的第一应用接收要求的第一集合;针对一个或多个物理快闪存储器块,确定其是否适于满足要求的第一集合;形成物理快闪存储器块的第一列表,所述第一列表中的物理快闪存储器块适于满足要求的第一集合;从第一应用接收对存储空间的分配的请求;以及向所述应用分配来自第一列表的第一物理快闪存储器块。
在一个实施例中,所述多个编程方法包括:利用第一步长的递增步进脉冲编程方法;和利用第二步长的递增步进脉冲编程方法,第一步长大于第二步长。
在一个实施例中,要求的第一集合包括所要求的可允许保留时间和所要求的平均响应时间。
在一个实施例中,所述针对一个或多个物理快闪存储器块确定其是否适于满足要求的第一集合的步骤包括:针对所述多个编程方法中的任何编程方法确定:所计算的平均响应时间是否小于所要求的平均响应时间;以及所计算的估计的可允许保留时间是否大于所要求的可允许保留时间。
在一个实施例中,所述方法包括擦除第一物理快闪存储器块。
在一个实施例中,所述第一物理快闪存储器块的擦除包括:当浅擦除过程的预测效果是第一物理快闪存储器块仍然适于满足要求的第一集合时,采用浅擦除过程;以及当浅擦除过程的预测效果是第一物理快闪存储器块不再适于满足要求的第一集合时,采用正常擦除过程。
在一个实施例中,针对一个或多个物理快闪存储器块的、对所估计的可允许保留时间的计算包括:对作为保留时间的函数的比特错误计数执行线性拟合;以及如果线性拟合超过最大可接受的原始比特错误率,则计算与该线性拟合关联的保留时间。
在一个实施例中,所述最大可接受的原始比特错误率是每一百比特一个比特错误。
在一个实施例中,所述方法包括:从运行在主机上的第二应用接收与要求的第一集合不同的要求的第二集合;针对一个或多个物理快闪存储器块,确定其是否适于满足要求的第二集合;形成物理快闪存储器块的第二列表,所述第二列表中的物理快闪存储器块适于满足要求的第二集合;从第二应用接收对存储空间的分配的请求;以及向所述应用分配来自第二列表的第二物理快闪存储器块。
在一个实施例中,所述方法包括擦除第二物理快闪存储器块。
在一个实施例中,第二物理快闪存储器块的擦除包括:当浅擦除过程的预测效果是第一物理快闪存储器块仍然适于满足要求的第一集合时,采用浅擦除过程;以及当浅擦除过程的预测效果是第一物理快闪存储器块不再适于满足要求的第一集合时,采用正常擦除过程。
根据本发明的实施例,提供了一种固态驱动器,包括:存储控制器,所述存储控制器包括处理单元;和快闪存储器,包括多个物理快闪存储器块,每个物理快闪存储器块包括多个物理页面,所述存储控制器包括:形性引擎,包括:NAND控制器;保持预测器;磨损跟踪器;和原始比特错误率跟踪器;以及存储虚拟器,其包括:虚拟存储表格;地址转换块;和聚类引擎;所述NAND控制器被配置为对所述快闪存储器执行多个读取操作,一个或多个读取操作包括纠错码解码操作,所述纠错码解码操作产生比特错误计数;所述原始比特错误率跟踪器被配置为针对所述多个物理快闪存储器块中的一个或多个、从多个比特错误计数计算原始比特错误率;所述磨损跟踪器被配置为对针对所述多个物理快闪存储器块中的一个或多个执行的编程和擦除周期进行计数;所述聚类引擎被配置为对于多个编程方法中的每一个,针对一个或多个物理快闪存储器块,从所述原始比特错误率以及编程和擦除周期的数量来计算以下各项:平均响应时间,和估计的可允许保留时间;所述虚拟存储表格被配置为从运行在主机上的第一应用接收要求的第一集合;所述聚类引擎被配置为从虚拟存储表格接收要求的第一集合,以及针对一个或多个物理快闪存储器块确定其是否适于满足要求的第一集合;所述聚类引擎被配置为形成物理快闪存储器块的第一列表,所述第一列表中的物理快闪存储器块适于满足要求的第一集合;所述聚类引擎被配置为从第一应用接收对存储空间的分配的请求;以及所述聚类引擎被配置为向所述应用分配来自第一列表的第一物理快闪存储器块。
在一个实施例中,所述多个编程方法包括:利用第一步长的递增步进脉冲编程方法;和利用第二步长的递增步进脉冲编程方法,第一步长大于第二步长。
在一个实施例中,要求的第一集合包括所要求的可允许保留时间和所要求的平均响应时间。
在一个实施例中,所述针对一个或多个物理快闪存储器块确定其是否适于满足要求的第一集合包括:针对所述多个编程方法中的任何编程方法确定:所计算的平均响应时间是否小于所要求的平均响应时间;以及所计算的估计的可允许保留时间是否大于所要求的可允许保留时间。
在一个实施例中,所述NAND控制器还被配置为擦除第一物理快闪存储器块。
在一个实施例中,第一物理快闪存储器块的擦除包括:当浅擦除的预测结果是第一物理快闪存储器块仍然适于满足要求的第一集合时,采用浅擦除过程;以及当浅擦除的预测结果是第一物理快闪存储器块不再适于满足要求的第一集合时,采用正常擦除过程。
在一个实施例中,所述针对所述多个物理快闪存储器块中的一个或多个的对作为性能度量的函数的估计的可允许保留时间的计算包括:对作为保留时间的函数的比特错误计数执行线性拟合;以及如果线性拟合超过最大可接受的原始比特错误率,则计算与该线性拟合关联的保留时间。
在一个实施例中,所述最大可接受的原始比特错误率是每一百比特一个比特错误。
在一个实施例中,所述虚拟存储表格还被配置为从运行在所述主机上的第二应用接收与要求的第一集合不同的要求的第二集合;所述聚类引擎还被配置为:从虚拟存储表格接收要求的第二集合,并且针对一个或多个物理快闪存储器块确定其是否适于满足要求的第二集合;形成物理快闪存储器块的第二列表,所述第二列表中的物理快闪存储器块适于满足要求的第二集合;从第二应用接收对存储空间的分配的请求;以及向所述应用分配来自第二列表的第二物理快闪存储器块。
本发明的示例实施例可以针对各种情形来适当地调整快闪存储器设备的操作。因此,示例实施例可以在设备的性能和寿命方面带来好处。
附图说明
图1A是作为保留时间的函数的原始比特错误率的图形;
图1B是作为编程和擦除周期的数量的函数的原始比特错误率的图形;
图2A是根据本发明的实施例的电压步进序列(voltage step sequence)的示图;
图2B是根据本发明的实施例的电压步进序列的示图;
图3A是根据本发明的实施例的用于已编程状态和已擦除状态的电压分布的图形;
图3B是根据本发明的实施例的用于已编程状态和已擦除状态的电压分布的图形;
图4是根据本发明的实施例的作为保留时间的函数的原始比特错误率的图形;
图5A是硬盘驱动器的四轴特性的示图;
图5B是根据本发明的实施例的固态驱动器的四轴特性的示图;
图5C是根据本发明的实施例的固态驱动器的四轴特性的示图;
图5D是根据本发明的实施例的固态驱动器的四轴特性的示图;
图6是根据本发明的实施例的主机和固态驱动器的框图;
图7是根据本发明的实施例的形性系统的框图;
图8是根据本发明的实施例的形性引擎的框图;
图9是根据本发明的实施例的存储虚拟器的框图;
图10A是根据本发明的实施例的具有多个薄聚类引擎的系统的框图;和
图10B是根据本发明的实施例的具有多个厚聚类引擎的系统的框图。
具体实施方式
下面结合附图阐述的详细描述被意图作为对于根据本发明提供的形性(morphic)存储设备的示例实施例的描述,并且不被意图代表其中可以构建或者利用本发明的仅有形式。该描述结合所说明的实施例来阐述本发明的特征。然而,将理解,可以通过意图被包含在本发明的精神和范围内的其它实施例来实现相同或者等同的功能和结构。如在本文中的别处所表示的,相似的元素标号意图指示相似的元素或特征。
诸如固态驱动器的快闪存储器设备是具有在一些方面与诸如硬盘驱动器的其它持久性存储器设备不同的特性的持久性存储器设备。在快闪存储器中,浮置栅极上的电荷可以用来存储信息,并且所述电荷可以随着时间而从浮置栅极泄露,导致所存储的信息的丢失或部分丢失。而且,数据随着时间而丢失的程度取决于若干因素。
参考图1A,从快闪存储器读取的数据的原始比特错误率可以,如图所示,取决于保留时间,即,数据被写入时和数据被读取时之间的时间。所述比特错误率还可以取决于设备的性质,由不同的制造商制造的设备表现出不同的比特错误率,该比特错误率是保留时间的函数。
参考1B,原始比特错误率可以不仅仅取决于保留时间,还取决于快闪存储器已经经受的(subjected to)编程和擦除周期的数量,随着编程和擦除周期的数量增加,快闪存储器在更长的时间段里存储数据的能力下降。在图1B中,曲线105示出3年保留比特错误率,曲线110示出1年保留比特错误率,曲线115示出3月保留比特错误率,曲线120示出3星期保留比特错误率,曲线125示出3天保留比特错误率,曲线130示出编程干扰比特错误率,曲线135示出1天保留比特错误率,曲线140示出读取比特错误率,并且曲线145示出擦除比特错误率。
参考图2A和图2B,当递增步进脉冲编程(ISPP)被使用时,用于编程操作的步长(step size)可以影响能够被放置在浮置栅极上的电荷的精度。因此,在所有其它因素都相等的情况下,使用的步长越小,原始比特错误率越低。然而,更小的步长的使用可以导致编程操作花费更长时间来完成。
参考图3A和图3B,使用浅擦除过程来擦除存储器(图3B)与正常擦除过程(图3A)相比可以导致延长的寿命(也就是说,在大量的编程和擦除周期之后,较长的可允许保留时间),所述浅擦除过程倾向于使存储器的劣化小于正常擦除过程。如这里所使用的,所述“可允许保留时间”是在维持可接受的原始比特错误率的同时、数据可以被留下存储在快闪存储器中的时间。
可允许保留时间可以取决于可接受的原始比特错误率;在一些实施例中,可接受的原始比特错误率是10-6,也就是说,每一百万个比特有一个错误。然而,对于具有相同历史的设备而言,与使用正常擦除过程相比,使用浅擦除过程可以在任何给定的编程和擦除周期期间导致更高的比特错误率,因为浅擦除过程可以缩小能够被存储在浮置栅极上的电荷值的范围。
因而,可以考虑到所应用的保留时间要求来选择编程和擦除过程。例如,一些应用(诸如网络高速缓存)可能要求仅仅几天的保留时间,而其它应用可能要求一年或更长的保留时间。例如,对于要求仅仅几天的保留时间的应用,使用已经经受大量的编程和擦除周期的快闪存储器的物理块或许是可接受的,或者使用具有大步长的ISPP或许是可能的。
参考图4,例如,快闪存储器的物理块和提供较长可允许保留时间415的擦除和编程过程(由原始比特错误率曲线410表示的)可以用于预计将被留下来长时间存储的数据。可以使用提供较短的可允许保留时间的过程425(例如,浅擦除过程或者具有大步长的ISPP)来处理对其而言较短的可允许保留时间420就足够的数据。
参考图5A-图5D,诸如硬盘驱动器或者固态驱动器的持久性存储设备可以具有若干相关特性。例如,在吞吐量或者延迟方面,或者在执行读取操作、擦除操作、或者写入(或者编程)操作所需要的时间方面,这样的设备可以提供给定水平的性能(“Perf。”)。
对于固态驱动器,完成擦除操作或者编程操作所需要的时间可以显著不同于(例如,长于)完成读取操作所需要的时间,并且平均响应时间可以用来表示设备的性能的特征。可以从读取时间、擦除时间和编程时间来计算这个平均响应时间,并且可以考虑到对于被写入的每条数据的读取的数量的典型比率、和用于降低较长的擦除时间和编程时间的影响的缓解措施(诸如,缓冲)的使用,来计算所述平均响应时间。
在一些实施例中,平均响应时间可以如下定义:
其中Nread和Nwrite分别是在指定时间段(例如,10秒)上由基准测试(benchmarkingtest)执行的读取和写入的数量,并且其中Treadi和Twritei分别是在所述测试期间的第i读取时间和第i写入时间。
设备可以具有一定的寿命,对于硬盘驱动器而言,可以通过移动部件所经历的磨损速率来确定所述寿命,并且对于固态驱动器而言,可以通过由编程和擦除周期导致的劣化来确定所述寿命。设备可以具有容量(“Cap.”)和可允许保留时间(“Ret.”),所述容量(“Cap.”)也就是设备能够存储的数据的最大量。
从图5A和图5B可以看出,例如,与固态驱动器相比,硬盘驱动器可以具有更大的容量和更长的保留时间,但是更短的寿命和更慢的响应时间(也就是说,更差的性能)。类似地,从图5C和图5D可以看出,与固态驱动器的默认特性(图5C)相比,第一应用(“app1”,图5D)可以具有高性能要求和短保留时间要求,并且第二应用(“app2”,图5D)可以具有低性能要求和长保留时间要求。
参考图6,在一个实施例中,主机610可以连接到固态驱动器615,并且可以将固态驱动器615用于持久性存储。固态驱动器615可以是被配置为提供持久性存储的封装(enclosure)中的独立(self-contained)单元。
固态驱动器615可以通过存储接口(例如,通过通常被主机610用于存储操作的连接器和协议)连接到主机610。所述连接器和协议可以遵照,例如,串行高级技术附件(Serial Advanced Technology Attachment,SATA),光纤通道,串行连接SCSI(SerialAttached SCSI,SAS),非易失性存储器快速(Non Volatile Memory Express,NVMe)等等,或者遵照更通用的接口,诸如以太网或通用串行总线(Universal Serial Bus,USB)。
固态驱动器615中的快闪存储器620可以被组织成物理快闪存储器块630(或者“闪存块”或者“快闪存储器块”)和物理页面635。物理快闪存储器块630可以是在一个操作中可擦除的存储器的最小单元,并且物理页面635可以是在一个操作中能够被写入的存储器的最小单元。每个物理快闪存储器块630可以包括多个物理页面635。
主机610可以与海量存储设备交互,所述海量存储设备具有针对逻辑页码的存储访问请求,例如请求将数据存储在任何逻辑页码处的页面中,请求读取存储在任何逻辑页码处的页面中的数据,或者请求擦除存储在任何逻辑页码处的页面中的数据。对于固态驱动器615,静态逻辑到物理(L-P)映射可以不被使用,因为读取/写入尺寸和擦除尺寸之间的差异决定了将数据从一个物理位置不断地移动到另一物理位置的垃圾控制机制,因此,存在对于动态L-P映射的需求。
闪存转换层(flash translation layer)可以将逻辑页码动态地转换或者映射到物理页码。当在任何逻辑页码处的页面中的数据上覆写新数据时,接下来闪存转换层可以将当前与该逻辑页码相对应的物理页面635标记为无效(而不是擦除包含这个物理页面635的物理快闪存储器块630),更新从逻辑页码到物理页面635的映射以便将所述逻辑页码映射到新的物理页面635,并且将所述新数据写入所述新的物理页面635。闪存转换层可以实施在运行在固态驱动器615中的存储控制器625(例如,微控制器)上的软件中。
可以利用纠错码来对从主机610接收的用于编程到快闪存储器620中的数据进行编码,并且当从快闪存储器620读取数据时,可以利用纠错码解码操作来处理读取的原始(raw)数据,该纠错码解码操作可以产生错误被纠正的解码数据和比特错误计数(即,通过纠错码解码操作已纠正的比特错误的数量的计数)。
偶尔闪存转换层可以执行被称为“垃圾收集”的操作。在这个操作中,在物理快闪存储器块630中剩余的有效物理页面635已经被移动到一个或多个其它物理快闪存储器块630中的物理页面635以后,包含已经被标记为无效的物理页面635的大比例(例如,超过设置的阈值的比例)的任何物理快闪存储器块630可以被擦除,以使得最新擦除的物理快闪存储器块630可用于新数据的写入。
多个应用可以在主机610中运行(例如,执行),并且可以生成可以被发送到固态驱动器615的输入/输出(I/O)请求(例如,擦除请求、编程(写入)请求、和读取请求)。每个这样的应用可以具有对持久性存储的特性的要求,例如,规定最大可接受的平均响应时间和最小可允许保留时间的要求。
在一些实施例中,这些要求可以被固态驱动器615用来确定哪些快闪存储器块630可以被用于存储用于应用的数据,并且可以被固态驱动器615用来选择,例如,将在写入用于所述应用的数据时使用的步长。
当每个应用开始运行时,其可以向固态驱动器615注册,从而向固态驱动器615标识它自身并且将它的存储要求发送到固态驱动器615。以这种方式,固态驱动器615可以保证由任何应用生成的输入/输出请求都以满足该应用的要求的方式来处理。固态驱动器615的、根据可应用的要求对输入/输出请求自适应地做出响应的品质,将在本文中被称为“形性(morphic)”。
参考图7,在一些实施例中,根据来自应用的请求,形性引擎710和存储虚拟器715可以在存储控制器625中被采用,以向所述应用分配快闪存储器。形性引擎710可以连接到NAND闪存接口720以处理由应用经由存储虚拟器715发送的输入/输出(I/O)请求。
参考图8,在一些实施例中,形性引擎710可包括原始比特错误率(RBER)跟踪器810、磨损跟踪器815、保留预测器820和NAND控制器825。
原始比特错误率跟踪器810可以监视每个物理快闪存储器块630的原始比特错误率。原始比特错误率跟踪器810可以通过在每次响应于主机请求而从快闪存储器读取数据时跟踪比特错误计数来实现这个监视。在一些实施例中,比特错误计数可以作为额外的条目被记录在闪存转换层中。
当例如在某些时候在物理快闪存储器块630中尚未执行主机请求的读取操作时,原始比特错误率跟踪器810还可以执行“采样”读取操作(也就是说,并非源于主机请求的读取操作)以获得物理快闪存储器块630中的原始比特错误率的更新的测量。以这种方式,原始比特错误率跟踪器810可以随着时间而创建列出针对每个物理快闪存储器块630的所观察到的比特错误率的表格。
在一些实施例中,所述表格可以具有用于每个物理快闪存储器块630的多个条目,例如,用于利用使用大步长的ISPP编程的存储器单元的第一观察到的原始比特错误率、和用于利用使用小步长的ISPP编程的存储器单元的第二观察到的原始比特错误率。所述表格可以被存储在非易失性存储器中(例如,存储在快闪存储器620中),从而在对于固态驱动器615的电力供应被暂时中断时该表格被保存(preserve)。
磨损跟踪器815可以监视在快闪存储器上执行的编程操作和擦除操作,并且对针对每个物理快闪存储器块630执行的编程和擦除周期的数量进行计数。在一些实施例中,还出于磨损均衡(wear-leveling)的目的,在闪存转换层中,所执行的编程和擦除周期的数量可以被跟踪。以这种方式,磨损跟踪器815可以随着时间而创建列出(针对每个物理快闪存储器块630)已经在物理快闪存储器块630上执行的编程和擦除周期的数量的表格。
在一些实施例中,所述表格可以具有用于每个物理快闪存储器块630的多个条目,例如,使用浅擦除过程执行的编程和擦除周期的第一计数、和使用正常擦除过程执行的编程和擦除周期的单独的第二计数。所述表格可以被存储在非易失性存储器中(例如,存储在快闪存储器620中),从而在对于固态驱动器615的电力供应被暂时中断时该表格被保存。
保留预测器820可以用来针对各种擦除和编程方法中的每一个来估计每个物理快闪存储器块630的可允许保留时间。在一个实施例中,保留预测器820可以对比特错误率执行线性拟合(或者指数拟合),所述比特错误率是(如从原始比特错误率跟踪器810报告的)保留时间的函数,并且保留预测器820可以计算可允许保留时间,所述可允许保留时间是在这个拟合的原始比特错误率等于阈值(也就是说,最大可接受的原始比特错误率(例如,每一百万比特一个比特错误)时的保留时间的值。在一些实施例中,保留预测器820可以参考由磨损跟踪器815生成的所述表格来计算可允许保留时间。在一些实施例中,所述阈值可以是可编程变量。
NAND控制器825可以是可以与快闪存储器620直接交互的驱动器例程,其发布(issue)块级(block level)和页面级(page level)的读取、写入、和擦除命令。NAND控制器825可以处理在从快闪存储器620读取的原始数据中检测和纠正比特错误的纠错码解码算法。NAND控制器825还可以将信息从保留预测器820转发到存储虚拟器715。NAND控制器825还可以提供对擦除过程(例如,使用了浅擦除还是正常擦除)和编程过程(例如,将在采用ISPP的编程操作中采用的步长)的控制。
参考图9,在存储虚拟器715中,虚拟存储表格910可以针对在固态驱动器615处注册的每个应用来存储要求的集合,其指示例如最大可接受的平均响应时间和最小可允许保留时间。所述要求还可以包括容量要求,其指示多少个块将潜在地被所述应用使用。
聚类引擎(clustering engine)915可以从虚拟存储表格910接收信息并且可以生成用于在固态驱动器615处注册的每个应用的聚类列表(cluster list),所述聚类是根据保留预测器820的计算而适于满足各个应用的要求的物理快闪存储器块630的集合,并且所述聚类列表是所述聚类中的物理快闪存储器块630的列表。
地址转换块920(其可以是闪存转换层的一部分)可以维护将逻辑页面地址映射到快闪存储器620中的物理页面地址的交叉参考表格。
每次作为一个或多个聚类中的成员的物理快闪存储器块630被擦除时,聚类引擎915都可以重新评估所述物理快闪存储器块630是否保持具有成为所述聚类中的成员的资格(该资格潜在地已经被另外的编程和擦除周期影响),并且可以相应地更新所述聚类和聚类列表。
当物理快闪存储器块630适于满足与聚类相对应的应用的要求时,也就是说,当对于一些编程方法而言(例如,对于将在ISPP中使用的一些步长而言),应用的平均响应时间要求和可允许保留时间要求两者都被并行或者同时满足时,物理快闪存储器块630可以被认为具有成为所述聚类中的成员的资格。
如果应用具有对于可用的物理快闪存储器块630中的任何一个而言都太过严格(stringent)的要求,则最接近满足所述要求的一个或多个物理快闪存储器块630可以被认为具有成为用于所述应用的聚类中的成员的资格。在这种情形中,所述应用可以被警告不满足它的要求的物理快闪存储器块630正被分配给它。这个确定可以考虑到物理快闪存储器块630已经经历的编程和擦除周期的历史来做出,该历史包括,如果物理快闪存储器块630是被新擦除的,那么最近的擦除是使用浅擦除过程还是正常擦除过程来执行的。
在一些实施例中,在垃圾收集期间,正通过垃圾收集回收的块的擦除可以被推迟,直到该块被分配给特定的应用。在这个实施例中,当如果块是使用正常擦除来擦除的、则该块将适于满足与聚类相对应的应用的要求时,聚类引擎915可以将该块包括在该聚类中。在块被分配给应用之后,如果浅擦除足以允许该块满足所述应用的要求,则可以使用浅擦除来擦除该块;否则,使用正常擦除来擦除该块。
在任何操作中,当应用做出对持久性存储的分配的请求时,所述请求可以被虚拟存储表格910接收,所述虚拟存储表格910可以向聚类引擎915做出对于一个或多个有资格的物理快闪存储器块630(也就是说,满足所述应用的要求的物理快闪存储器块630)的列表的请求。然后地址转换块920可以在有资格的物理快闪存储器块630中的一个或多个内分配由所述应用请求的(多个)存储区域,并且可以更新从逻辑页码到物理页码的映射。
当所述应用随后将数据写入固态驱动器615时,可以使用与应用的要求一致的编程参数来执行编程操作(例如,具有满足平均响应时间要求足够大并且满足可允许保留时间要求足够小的步长的ISPP)。
参考图10A和图10B,在一些实施例中,多个固态驱动器615可以连接在一起,以形成向主机610提供存储的逻辑存储层。在这样的实施例中,共享聚类信息以使得可以根据所述聚类信息来做出存储分配决定,可能是有帮助的。
例如,在图10A中,如果应用(通过存储接口1010和第二接口1015)做出对于大量存储的分配请求,则维护由固态驱动器615的各个薄聚类引擎1025生成的聚类列表的副本的集中式聚类引擎1020,可以从固态驱动器615中的一个或多个中的一个或多个有资格的物理快闪存储器块630分配空间。
在图10B的实施例中,每个固态驱动器615可以包括厚聚类引擎1030,其可以维护除了它自己的聚类列表之外的、其它厚聚类引擎1030中的每一个的聚类列表的副本。在这个实施例中,当固态驱动器615(通过存储接口1010和第二接口1015)接收到对于超出了固态驱动器615的有资格的物理快闪存储器块630内的可用量的存储量的分配请求时,所述固态驱动器615可以将该未满足分配要求的请求传播到另一固态驱动器615(如果该另一固态驱动器615不能够接纳该未满足分配要求的请求,则其进而可以将该请求传播到又一固态驱动器615)。
考虑到前述内容,固态驱动器615可以通过调整擦除参数和编程参数、以及选择适应应用的要求的物理快闪存储器块630,来高效满足各种应用的存储要求。以这种方式,例如,长保留时间可以被提供给要求长保留时间的应用,并且更短的保留时间可以与例如相应的性能的提高一起被提供给仅仅要求更短的保留时间的应用。
根据这里描述的本发明的实施例的固态驱动器615和/或任何其它相关设备或者组件可以利用任何合适的硬件、固件(例如专用集成电路)、软件、或者它们的合适的组合来实施。例如,固态驱动器615的各种组件可以被形成在一个集成电路(IC)芯片上或者形成在分开的IC芯片上。另外,固态驱动器615的各种组件可以被实施在柔性印刷电路薄膜、带载封装(TCP)、或者印刷电路板(PCB)上,或者与固态驱动器615形成在相同的基底上。
另外,固态驱动器615的各种组件可以是在一个或多个计算设备中的一个或多个处理器上运行的、执行计算机程序指令并且与其它系统组件交互以执行这里描述的各种功能的进程或者线程。计算机程序指令可以被存储在存储器中,所述存储器可以被实施在使用诸如例如随机访问存储器(RAM)的标准存储器设备的计算设备中。所述计算机程序指令还可以被存储在其它非瞬时性计算机可读介质(诸如,例如,CD-ROM、闪存驱动器等等)中。
并且,本发明所属领域普通技术人员应该认识到,各种计算设备的功能可以组合或者集成到单一计算设备中,或者特定计算设备的功能可以分布在一个或多个其它计算设备之间,而不脱离本发明的示范性实施例的范围。
存储控制器625可以是处理电路自身,或者可以包括处理电路。术语“处理电路”在本文中被期望包括被用来处理数据或数字信号的硬件、固件、和软件的任何组合。处理电路硬件可以包括,例如,专用集成电路(application specific integrated circuit,ASIC)、通用或者专用中央处理单元(central processing unit,CPU)、数字信号处理器(digitalsignal processors,DSP)、图形处理单元(graphics processing unit,GPU)和诸如现场可编程门阵列(field programmable gate array,FPGA)的可编程逻辑器件。
在如这里所使用的处理电路中,每个功能可以要么由被配置(也就是说,硬连线)为执行该功能的硬件执行,要么由被配置为执行存储在非瞬时性存储介质中的指令的更通用的硬件(诸如CPU)执行。处理电路可以被制造在单一印刷布线板(printed wiringboard,PWB)上,或者分布在若干个互连的PWB上。处理电路可以包含其它处理电路;例如,处理电路可以包括在PWB上互连的两个处理电路,FPGA和CPU。
将理解,虽然术语“第一”、“第二”、“第三”等等可以在这里用来描述各种元素、组件、区、层和/或分区,但是这些元素、组件、区、层、和/或分区不应该被这些术语限制。这些术语仅仅被用来区分一个元素、组件、区、层或者分区与另一个元素、组件、区、层或者分区。因此,以上讨论的第一元素、组件、区、层或分区可以被命名为第二元素、组件、区、层或分区,而不脱离本发明构思的精神和范围。
空间相对术语,诸如“在...之下”、“在...下”、“低于”、“下面”、“在...上”、“更上的”等等,可以在这里被使用以方便用来描述如附图中所示的一个元素或特征与另一(多个)元素或者(多个)特征的关系的描述。将理解,这样的空间相对术语意图包含除了附图中描绘的朝向之外的、正被使用或操作的设备的其它朝向。例如,如果附图中的设备被翻转,则被描述为在其它元素或特征“下”、“之下”或“下面”的元素将被朝向所述其它元素或特征“上”。因此,示例术语“在...下”和“下面”能够包含“在...上”的朝向和“在...下”的朝向两者。所述设备可以另外朝向(例如,旋转90度或者朝向其它朝向),并且这里所使用的空间相对描述符应该被相应地解释。此外,还将理解,当层被称为“在”两个层“之间”时,所述层可以是所述两个层之间的仅有的层,或者也可以存在一个或多个插入其间的层。
这里所使用的术语仅仅用于描述特殊实施例的目的,并且不意图对本发明构思进行限制。如这里所使用的,术语“基本上”、“关于”、和另外相似的术语被用作接近度的术语,而不用作程度的术语,并且意图说明将被本发明所属领域的普通技术人员所识别的测量的或者计算的值中的固有偏差。如这里所使用的,术语“主要组件”意味着构成在重量上构成合成物的至少一半的组件,并且当术语“主要部分”被应用到多个项目时,意味着所述项目的至少一半。
如这里所使用的,单数形式“一”也意图包括复数形式,除非上下文清楚地另外指示。还将理解,当术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整体、步骤、操作、元素、和/或组件的存在,但是不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或它们的组的存在或者添加。如这里所使用的,术语“和/或”包括相关联的列出的项目中的一个或多个的任何组合和所有组合。当诸如“...中的至少一个”的表达在一列元素之后时,其修改整个列表的元素,并且不是修改所述列表的单个元素。另外,当描述本发明构思的实施例时,“可以”的使用是指“本发明的一个或多个实施例”。并且,术语“示范性””意图指代示例或者例示。如这里所使用的,术语“使用”、“使用了”、和“被使用”可以分别与术语“利用”、“利用了”和“被利用”同义地考虑。
将理解,当元素或者层被称为“在”另一元素或者层“上”,“连接到”、“耦合到”另一元素或者层,或者与另一元素或层“相邻”时,所述元素或者层可以直接在另一元素或者层上,直接连接到、直接耦合到另一元素或者层,或者与另一元素或层紧邻,或者可以存在一个或多个插入其间的元素或者层。相反,当元素或者层被称为“直接在”另一元素或者层“上”,“直接连接到”、“直接耦合到”另一元素或者层,或者“紧邻”另一元素或者层时,不存在插入其间的元素或者层。
这里叙述的任何数值范围意图包括归入所叙述的范围内的具有相同数值精度的全部子范围。例如,范围“1.0到10.0”意图包括所叙述的最小值1.0和所叙述的最大值10.0之间的(并且包括这两者)全部子范围,也就是说,具有等于或者大于1.0的最小值和等于或小于10.0的最大值,诸如,例如,2.4到7.6。这里叙述的任何最大数值限制都意图包括归入其中的所有更低的数值限制,并且在本说明书中叙述的任何最小的数值限制意图归入其中的所有更高的数值限制。
虽然已经在本文中具体地描述和示出了形性存储设备的示例实施例,但是许多修改和变化对本领域技术人员将是清楚的。因此,将理解,根据本发明的远离构建的形性存储设备可以以与这里所具体描述的那样不同地具体实现。本发明还被定义在所附权利要求书及其等同物中。

Claims (20)

1.一种用于分配连接到主机的固态驱动器中的快闪存储器的部分的方法,该快闪存储器包括多个物理快闪存储器块,所述方法包括:
对快闪存储器执行多个读取操作,所述多个读取操作包括纠错码解码操作,所述纠错码解码操作产生多个比特错误计数;
从所述多个比特错误计数中,针对所述多个物理快闪存储器块中的一个或多个,计算原始比特错误率;
对针对所述多个物理快闪存储器块中的每一个执行的编程和擦除周期进行计数;
对于多个编程方法中的每一个,针对所述多个物理快闪存储器块中的一个或多个,从所述原始比特错误率和所计数的编程和擦除周期的数量中,计算以下各项:
平均响应时间,和
估计的可允许保留时间;
从运行在主机上的第一应用接收要求的第一集合;
基于所述平均响应时间和估计的可允许保留时间,确定所述多个物理快闪存储器块中的一个或多个是否适于满足要求的第一集合;
形成适于满足要求的第一集合的物理快闪存储器块的第一列表;
从第一应用接收对存储空间的分配的请求;以及
向第一应用分配来自第一列表的第一物理快闪存储器块。
2.如权利要求1所述的方法,其中,所述多个编程方法包括:
利用第一步长的递增步进脉冲编程ISPP方法;和
利用第二步长的ISPP方法,
其中,第一步长大于第二步长。
3.如权利要求1所述的方法,其中,要求的第一集合包括所要求的可允许保留时间和所要求的平均响应时间。
4.如权利要求3所述的方法,其中,所述确定所述多个物理快闪存储器块中的一个或多个是否适于满足要求的第一集合包括:
针对所述多个编程方法中的任何编程方法确定:
所计算的平均响应时间是否小于所要求的平均响应时间;以及
所计算的估计的可允许保留时间是否大于所要求的可允许保留时间。
5.如权利要求1所述的方法,还包括擦除第一物理快闪存储器块。
6.如权利要求5所述的方法,其中,所述第一物理快闪存储器块的擦除包括:
当预测到通过浅擦除过程第一物理快闪存储器块仍然适于满足要求的第一集合时,采用浅擦除过程;以及
当预测到通过浅擦除过程第一物理快闪存储器块不再适于满足要求的第一集合时,采用正常擦除过程。
7.如权利要求1所述的方法,其中,针对所述多个物理快闪存储器块中的一个或多个、对所述平均响应时间和估计的可允许保留时间的计算包括:
对作为保留时间的函数的比特错误计数执行线性拟合;以及
如果线性拟合超过最大可接受的原始比特错误率,则计算与该线性拟合关联的保留时间作为估计的可允许保留时间。
8.如权利要求7所述的方法,其中,所述最大可接受的原始比特错误率是每一百比特一个比特错误。
9.如权利要求1所述的方法,还包括:
从运行在主机上的第二应用接收与所述要求的第一集合不同的要求的第二集合;
基于所述平均响应时间和估计的可允许保留时间,确定所述多个物理快闪存储器块中的一个或多个是否适于满足要求的第二集合;
形成适于满足要求的第二集合的物理快闪存储器块的第二列表;
从第二应用接收对存储空间的分配的请求;以及
向第二应用分配来自第二列表的第二物理快闪存储器块。
10.如权利要求9所述的方法,还包括擦除第二物理快闪存储器块。
11.如权利要求10所述的方法,其中,第二物理快闪存储器块的擦除包括:
当预测到通过浅擦除过程第二物理快闪存储器块仍然适于满足要求的第二集合时,采用浅擦除过程;以及
当预测到通过浅擦除过程第二物理快闪存储器块不再适于满足要求的第二集合时,采用正常擦除过程。
12.一种固态驱动器,包括:
快闪存储器,包括多个物理快闪存储器块,每个物理快闪存储器块包括多个物理页面;以及
存储控制器,包括:
形性引擎,包括:
NAND控制器;
磨损跟踪器;和
原始比特错误率跟踪器;以及
存储虚拟器,包括:
虚拟存储表格;和
聚类引擎;
所述NAND控制器被配置为对所述快闪存储器执行多个读取操作,所述多个读取操作包括纠错码解码操作,所述纠错码解码操作产生多个比特错误计数;
所述原始比特错误率跟踪器被配置为从所述多个比特错误计数中针对所述多个物理快闪存储器块中的一个或多个计算原始比特错误率;
所述磨损跟踪器被配置为对针对所述多个物理快闪存储器块中的一个或多个执行的编程和擦除周期进行计数;
所述聚类引擎被配置为对于多个编程方法中的每一个,针对所述多个物理快闪存储器块中的一个或多个,从所述原始比特错误率和所计数的编程和擦除周期的数量中计算以下各项:
平均响应时间,和
估计的可允许保留时间;
所述虚拟存储表格被配置为从运行在主机上的第一应用中接收要求的第一集合;
所述聚类引擎还被配置为:
从虚拟存储表格接收要求的第一集合,
基于所述平均响应时间和估计的可允许保留时间,确定所述多个物理快闪存储器块中的一个或多个是否适于满足要求的第一集合;
形成适于满足要求的第一集合的物理快闪存储器块的第一列表;
从第一应用接收对存储空间的分配的请求;以及
向第一应用分配来自第一列表的第一物理快闪存储器块。
13.如权利要求12所述的固态驱动器,其中,所述多个编程方法包括:
利用第一步长的递增步进脉冲编程ISPP方法;和
利用第二步长的ISPP方法,
其中,第一步长大于第二步长。
14.如权利要求12所述的固态驱动器,其中,要求的第一集合包括所要求的可允许保留时间和所要求的平均响应时间。
15.如权利要求14所述的固态驱动器,其中,所述聚类引擎还被配置为通过以下步骤来确定所述多个物理快闪存储器块中的一个或多个是否适于满足要求的第一集合:
针对所述多个编程方法中的任何编程方法确定:
所计算的平均响应时间是否小于所要求的平均响应时间;以及
所计算的估计的可允许保留时间是否大于所要求的可允许保留时间。
16.如权利要求12所述的固态驱动器,其中,所述NAND控制器还被配置为擦除第一物理快闪存储器块。
17.如权利要求16所述的固态驱动器,其中,所述NAND控制器还被配置为通过以下步骤来擦除第一物理快闪存储器块:
当预测到通过浅擦除过程第一物理快闪存储器块仍然适于满足要求的第一集合时,采用浅擦除过程;以及
当预测到通过浅擦除过程第一物理快闪存储器块不再适于满足要求的第一集合时,采用正常擦除过程。
18.如权利要求12所述的固态驱动器,其中,所述聚类引擎还被配置为通过以下步骤针对所述多个物理快闪存储器块中的一个或多个,计算作为性能度量的函数的所述估计的可允许保留时间:
对作为保留时间的函数的比特错误计数执行线性拟合;以及
如果线性拟合超过最大可接受的原始比特错误率,则计算与该线性拟合关联的保留时间作为所述估计的可允许保留时间。
19.如权利要求18所述的固态驱动器,其中,所述最大可接受的原始比特错误率是每一百万比特一个比特错误。
20.如权利要求12所述的固态驱动器,其中:
所述虚拟存储表格还被配置为从运行在所述主机上的第二应用接收与所述要求的第一集合不同的要求的第二集合;
所述聚类引擎还被配置为:
从虚拟存储表格接收要求的第二集合,
基于所述平均响应时间和估计的可允许保留时间,确定所述多个物理快闪存储器块中的一个或多个是否适于满足要求的第二集合;
形成适于满足要求的第二集合的物理快闪存储器块的第二列表;
从第二应用接收对存储空间的分配的请求;以及
向第二应用分配来自第二列表的第二物理快闪存储器块。
CN201710455905.1A 2016-06-20 2017-06-16 形性存储设备 Active CN107526543B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662352509P 2016-06-20 2016-06-20
US62/352,509 2016-06-20
US15/242,433 2016-08-19
US15/242,433 US10055159B2 (en) 2016-06-20 2016-08-19 Morphic storage device

Publications (2)

Publication Number Publication Date
CN107526543A true CN107526543A (zh) 2017-12-29
CN107526543B CN107526543B (zh) 2022-02-01

Family

ID=60659470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710455905.1A Active CN107526543B (zh) 2016-06-20 2017-06-16 形性存储设备

Country Status (5)

Country Link
US (2) US10055159B2 (zh)
JP (1) JP6847764B2 (zh)
KR (2) KR102477581B1 (zh)
CN (1) CN107526543B (zh)
TW (2) TWI699647B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108845765A (zh) * 2018-05-31 2018-11-20 郑州云海信息技术有限公司 一种nand数据读取方法、系统、设备及存储介质
CN116469442A (zh) * 2022-03-23 2023-07-21 武汉置富半导体技术有限公司 芯片数据保持时间的预测方法、装置及存储介质

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US10275165B2 (en) * 2016-09-12 2019-04-30 Toshiba Memory Corporation Memory controller
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US12039165B2 (en) 2016-10-04 2024-07-16 Pure Storage, Inc. Utilizing allocation shares to improve parallelism in a zoned drive storage system
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10949113B2 (en) * 2018-01-10 2021-03-16 SK Hynix Inc. Retention aware block mapping in flash-based solid state drives
US11132133B2 (en) * 2018-03-08 2021-09-28 Toshiba Memory Corporation Workload-adaptive overprovisioning in solid state storage drive arrays
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US10656847B2 (en) 2018-05-10 2020-05-19 International Business Machines Corporation Mitigating asymmetric transient errors in non-volatile memory by proactive data relocation
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11163452B2 (en) * 2018-09-24 2021-11-02 Elastic Flash Inc. Workload based device access
JP7178916B2 (ja) 2019-01-29 2022-11-28 キオクシア株式会社 メモリシステムおよび制御方法
JP2020149123A (ja) * 2019-03-11 2020-09-17 キオクシア株式会社 メモリシステム、及びメモリシステムの制御方法
US11086705B2 (en) * 2019-03-18 2021-08-10 International Business Machines Corporation Managing the reliability of pages in non-volatile random access memory
US11288007B2 (en) * 2019-05-16 2022-03-29 Western Digital Technologies, Inc. Virtual physical erase of a memory of a data storage device
KR102680521B1 (ko) * 2019-06-18 2024-07-04 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
KR20210088916A (ko) 2020-01-07 2021-07-15 에스케이하이닉스 주식회사 이전에 발생한 에러 분석을 통해 에러대응동작을 선택하기 위한 메모리 시스템 및 메모리 시스템을 포함하는 데이터 처리 시스템
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11354190B2 (en) * 2020-08-13 2022-06-07 Western Digital Technologies, Inc. Using over provisioning space for selectively storing block parity
KR20220021167A (ko) * 2020-08-13 2022-02-22 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US20220365707A1 (en) * 2021-05-12 2022-11-17 Samsung Electronics Co., Ltd. System and method for fine granular retention control in storage devices
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490154A (en) * 1991-12-04 1996-02-06 U.S. Philips Corporation Method of and circuit arrangement for decoding RS-coded data signals
US20050081080A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Error recovery for data processing systems transferring message packets through communications adapters
US20080288814A1 (en) * 2007-05-16 2008-11-20 Jun Kitahara Apparatus for detecting and recovering from data destruction caused in an unaccessed memory cell by read, and method therefor
US20090319859A1 (en) * 2008-06-24 2009-12-24 Sandisk Il Ltd. Method and apparatus for error correction according to erase counts of a solid-state memory
US7903806B1 (en) * 2000-01-05 2011-03-08 Canoga Perkins Corp. Expert call analyzer and next generation telephony network configuration system
US20130246878A1 (en) * 2012-03-15 2013-09-19 Sandisk Technologies Inc. Statistical distribution based variable-bit error correction coding
CN103329103A (zh) * 2010-10-27 2013-09-25 Lsi公司 用于基于闪存的数据存储的自适应ecc技术
CN103917964A (zh) * 2011-11-02 2014-07-09 国立大学法人东京大学 存储控制器和数据存储装置
US20140269048A1 (en) * 2013-03-12 2014-09-18 Lsi Corporation Retention detection and/or channel tracking policy in a flash memory based storage system
US20150286528A1 (en) * 2014-04-04 2015-10-08 Lsi Corporation Error correction code (ecc) selection in nand flash controllers with multiple error correction codes
WO2015155860A1 (ja) * 2014-04-09 2015-10-15 株式会社日立製作所 情報記憶装置及び情報記憶装置の制御方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7593259B2 (en) * 2006-09-13 2009-09-22 Mosaid Technologies Incorporated Flash multi-level threshold distribution scheme
JP2009163782A (ja) * 2007-12-13 2009-07-23 Toshiba Corp 半導体記憶装置
JP2009251627A (ja) * 2008-04-01 2009-10-29 Panasonic Corp メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
US8464143B2 (en) 2009-01-12 2013-06-11 Board Of Regents Of The Nevada System Of Higher Education Error detection method
US8433985B2 (en) 2010-03-29 2013-04-30 Intel Corporation Error correction mechanisms for flash memories
US8489855B2 (en) 2010-05-07 2013-07-16 Ocz Technology Group Inc. NAND flash-based solid state drive and method of operation
US9170933B2 (en) 2010-06-28 2015-10-27 International Business Machines Corporation Wear-level of cells/pages/sub-pages/blocks of a memory
JP2013047913A (ja) * 2011-08-29 2013-03-07 Toshiba Corp 情報処理装置、情報処理装置の制御方法、制御ツール、及びホスト装置
US9251019B2 (en) 2012-05-29 2016-02-02 SanDisk Technologies, Inc. Apparatus, system and method for managing solid-state retirement
US20130346812A1 (en) * 2012-06-22 2013-12-26 Micron Technology, Inc. Wear leveling memory using error rate
US8862810B2 (en) 2012-09-27 2014-10-14 Arkologic Limited Solid state device write operation management system
JP5528525B2 (ja) * 2012-11-19 2014-06-25 京セラ株式会社 携帯情報端末
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9122589B1 (en) 2013-06-28 2015-09-01 Emc Corporation Data storage system with unified system cache
US9195401B2 (en) 2014-02-18 2015-11-24 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment
JP6174502B2 (ja) * 2014-02-21 2017-08-02 株式会社ゼンリン 経路探索装置、経路探索方法、コンピュータプログラム、および、データ構造
US9916237B2 (en) * 2014-12-12 2018-03-13 Sandisk Technologies Llc Model based configuration parameter management
US20160180953A1 (en) * 2014-12-22 2016-06-23 Sandisk Technologies Inc. Predicting memory data loss based on temperature accelerated stress time
US20170160338A1 (en) 2015-12-07 2017-06-08 Intel Corporation Integrated circuit reliability assessment apparatus and method

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490154A (en) * 1991-12-04 1996-02-06 U.S. Philips Corporation Method of and circuit arrangement for decoding RS-coded data signals
US7903806B1 (en) * 2000-01-05 2011-03-08 Canoga Perkins Corp. Expert call analyzer and next generation telephony network configuration system
US20050081080A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Error recovery for data processing systems transferring message packets through communications adapters
US20080288814A1 (en) * 2007-05-16 2008-11-20 Jun Kitahara Apparatus for detecting and recovering from data destruction caused in an unaccessed memory cell by read, and method therefor
US20090319859A1 (en) * 2008-06-24 2009-12-24 Sandisk Il Ltd. Method and apparatus for error correction according to erase counts of a solid-state memory
CN103329103A (zh) * 2010-10-27 2013-09-25 Lsi公司 用于基于闪存的数据存储的自适应ecc技术
CN103917964A (zh) * 2011-11-02 2014-07-09 国立大学法人东京大学 存储控制器和数据存储装置
US20130246878A1 (en) * 2012-03-15 2013-09-19 Sandisk Technologies Inc. Statistical distribution based variable-bit error correction coding
US20140269048A1 (en) * 2013-03-12 2014-09-18 Lsi Corporation Retention detection and/or channel tracking policy in a flash memory based storage system
US20150286528A1 (en) * 2014-04-04 2015-10-08 Lsi Corporation Error correction code (ecc) selection in nand flash controllers with multiple error correction codes
WO2015155860A1 (ja) * 2014-04-09 2015-10-15 株式会社日立製作所 情報記憶装置及び情報記憶装置の制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108845765A (zh) * 2018-05-31 2018-11-20 郑州云海信息技术有限公司 一种nand数据读取方法、系统、设备及存储介质
CN108845765B (zh) * 2018-05-31 2021-06-29 郑州云海信息技术有限公司 一种nand数据读取方法、系统、设备及存储介质
CN116469442A (zh) * 2022-03-23 2023-07-21 武汉置富半导体技术有限公司 芯片数据保持时间的预测方法、装置及存储介质
CN116469442B (zh) * 2022-03-23 2024-05-03 武汉置富半导体技术有限公司 芯片数据保持时间的预测方法、装置及存储介质

Also Published As

Publication number Publication date
KR20170142841A (ko) 2017-12-28
TW201800945A (zh) 2018-01-01
US20170364298A1 (en) 2017-12-21
US10489075B2 (en) 2019-11-26
US20190018604A1 (en) 2019-01-17
KR20230004358A (ko) 2023-01-06
CN107526543B (zh) 2022-02-01
JP6847764B2 (ja) 2021-03-24
TWI699647B (zh) 2020-07-21
KR102477581B1 (ko) 2022-12-14
TWI708143B (zh) 2020-10-21
US10055159B2 (en) 2018-08-21
JP2017228287A (ja) 2017-12-28
TW202040366A (zh) 2020-11-01
KR102546244B1 (ko) 2023-06-22

Similar Documents

Publication Publication Date Title
CN107526543A (zh) 形性存储设备
US9921956B2 (en) System and method for tracking block level mapping overhead in a non-volatile memory
TWI652679B (zh) 記憶體控制器、記憶體系統及控制方法
US20190179698A1 (en) Managing Data Arrangement in a Super Block
US9483404B2 (en) Write admittance policy for a memory cache
CN106708423B (zh) 多模存储管理系统
US9990279B2 (en) Page-level health equalization
CN104216665B (zh) 多层单元固态硬盘的存储管理方法
CN114072774A (zh) 数据存储系统中的块模式切换
US9632926B1 (en) Memory unit assignment and selection for internal memory operations in data storage systems
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
DE112020002792B4 (de) Verschleissorientierte blockmodusumwandlung in nichtflüchtigen speichern
CN108984429A (zh) 具有缓冲器占有期管理的数据存储设备
CN103635968A (zh) 包含存储器系统控制器的设备和相关方法
CN107003942A (zh) 对用于增强存储设备的性能和持久性的解除映射命令的处理
CN102576330A (zh) 具有持久化无用单元收集机制的存储系统
US10997080B1 (en) Method and system for address table cache management based on correlation metric of first logical address and second logical address, wherein the correlation metric is incremented and decremented based on receive order of the first logical address and the second logical address
CN103985411A (zh) 待调度验证的非易失性写入缓冲器数据保留
CN105468291B (zh) 动态及静态磨损均衡控制方法及装置
EP2984570A1 (en) Multiprocessor system with independent direct access to bulk solid state memory resources
US9793929B2 (en) Data packing for compression-enabled storage systems
CN103650054A (zh) 包含存储器系统控制器的设备和相关方法
US10482009B1 (en) Use of a logical-to-logical translation map and a logical-to-physical translation map to access a data storage device
WO2015134941A1 (en) Multiprocessor system with independent direct access to bulk solid state memory resources
DE112020003290B4 (de) Datenplatzierung in einer schreib-cache-architektur, die eine lesehitze-datenaufteilung unterstützt

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