CN111309654B - 存储装置及操作存储装置的方法 - Google Patents
存储装置及操作存储装置的方法 Download PDFInfo
- Publication number
- CN111309654B CN111309654B CN201910893831.9A CN201910893831A CN111309654B CN 111309654 B CN111309654 B CN 111309654B CN 201910893831 A CN201910893831 A CN 201910893831A CN 111309654 B CN111309654 B CN 111309654B
- Authority
- CN
- China
- Prior art keywords
- read
- workload
- memory
- state
- memory device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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/0703—Error 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/0706—Error 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/073—Error 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
-
- 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/0703—Error 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/0793—Remedial or corrective actions
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
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 Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本公开涉及一种存储器控制器。该存储器控制器控制包括多个存储器单元的存储器装置。存储器控制器可包括:工作负载确定电路,被配置成当对存储器单元执行的读取操作失败时,基于用于读取多个存储器单元的最佳读取电压来确定指示存储器装置的操作模式的工作负载状态;以及操作环境设置电路,被配置成基于工作负载状态来设置存储器装置的操作环境。
Description
相关申请的交叉引用
本申请要求于2018年12月11日提交的申请号为10-2018-0159496的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,且更特别地,涉及一种存储装置和操作该存储装置的方法。
背景技术
存储装置在诸如计算机或智能电话的主机装置的控制下存储数据。存储装置可包括存储数据的存储器装置和控制该存储器装置的存储器控制器。这种存储器装置可以是易失性存储器装置或非易失性存储器装置。
易失性存储器装置仅在供应电力时存储数据;当电力供应中断时,丢失所存储的数据。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
即使在电力供应中断时,非易失性存储器装置也保持所存储的数据。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)以及闪速存储器。
发明内容
本公开的各个实施例涉及一种存储装置及操作该存储装置的方法,该存储装置提供针对用户工作环境而进行优化的固件。
本公开的实施例可提供一种存储器控制器,用于控制包括多个存储器单元的存储器装置,该存储器控制器包括:工作负载确定电路,被配置成当对存储器单元执行的读取操作失败时,基于用于读取多个存储器单元的最佳读取电压来确定指示存储器装置的操作模式的工作负载状态;以及操作环境设置电路,被配置成基于工作负载状态来设置存储器装置的操作环境。
本公开的实施例可提供一种操作存储器控制器的方法,该存储器控制器用于控制包括多个存储器单元的存储器装置,该方法包括:当对存储器单元执行的读取操作失败时,设置用于读取多个存储器单元的最佳读取电压;基于该最佳读取电压来确定指示存储器装置的操作模式的工作负载状态;并且基于工作负载状态来设置存储器装置的操作环境。
本公开的实施例可提供一种存储装置。该存储装置可包括:存储器装置,该存储器装置包括多个存储器单元并被配置成对多个存储器单元执行读取操作;以及存储器控制器,被配置成当读取操作失败时,基于用于读取多个存储器单元的最佳读取电压来确定指示存储器装置的操作模式的工作负载状态,并且被配置成基于工作负载状态来设置存储器装置的操作环境。
本公开的实施例可提供一种存储装置。该存储装置可包括:存储器装置,被配置成利用参考读取电压来执行读取操作;以及存储器控制器,包括多个缓冲器和命令队列,并且被配置成,当在设定时段期间执行读取操作多于设定次数时,基于默认参考读取电压与最后参考读取电压之间的差值来执行第一操作和第二操作中的至少一个,其中第一操作是调整将缓冲器分配为读取缓冲器和写入缓冲器的操作,其中第二操作是调整在命令队列中排队的命令的顺序以使排队的命令之中的读取命令优先的操作,并且其中最后参考读取电压用于最后执行的读取操作。
附图说明
图1是示出根据本公开的实施例的存储装置的示图。
图2是示出存储器单元的阈值电压分布和最佳读取电压的改变的示图。
图3是示出最佳读取电压与默认读取电压之间的偏移量(offset)的示图。
图4是示出用于确定工作负载状态的存储器控制器的操作的示图。
图5是示出用于存储指示根据偏移量所确定的工作负载状态的工作负载参考信息的工作负载表的示图。
图6是示出用于确定最终工作负载状态的实施例的示图。
图7是示出用于控制操作环境的存储器控制器的操作的示图。
图8是说明用于根据最终工作负载状态来存储缓冲器控制信息和命令队列控制信息的操作环境设置表的示图。
图9是说明根据本公开的实施例的写入缓冲器和读取缓冲器的数量的调整的示图。
图10是说明根据实施例的命令队列中存储的命令待被输出到存储器装置的顺序的改变的示图。
图11是示出根据本公开的实施例的存储器控制器的全部操作的流程图。
图12是示出根据本公开的实施例的由存储器控制器执行的工作负载状态确定操作的流程图。
图13是示出根据本公开的实施例的由存储器控制器执行的调整读取缓冲器的数量的操作的流程图。
图14是示出根据本公开的实施例的由存储器控制器执行的改变命令输出顺序的操作的流程图。
图15是示出根据本公开的实施例的存储器控制器的操作的流程图。
图16是示出图1的存储器控制器的实施例的示图。
图17是示出根据本公开的实施例的应用存储装置的存储卡系统的框图。
图18是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)系统的框图。
图19是示出根据本公开的实施例的应用存储装置的用户系统的框图。
具体实施方式
本文呈现的具体结构和功能描述针对本公开的实施例。然而,本发明不限于所提供的具体描述或本文描述的任何实施例。
虽然详细地描述了各个实施例,但本发明不限于任何特定的实施例。相反,本发明涵盖不脱离本公开的精神和技术范围的所有修改方案、等同方案、可选方案和替代方案。
将理解的是,虽然可在本文中使用术语“第一”和/或“第二”来识别各个元件,但是这些元件不应受这些术语限制。这些术语仅用于将一个元件与否则具有相同或相似名称的另一元件区分开。例如,在不脱离本公开的教导的情况下,一个实例中的第一元件在另一实例中可被称为第二元件。
将理解的是,当元件被称为“联接”或“连接”到另一元件时,其可以直接联接或连接到另一元件,或者在其间可存在一个或多个中间元件。相反地,应理解的是,当元件被称为“直接联接”或“直接连接”到另一元件时,不存在中间元件。诸如“在......之间”、“直接在......之间”、“相邻于”或“直接相邻于”的解释元件之间的关系的其它表述应以相同的方式解释。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制。在本公开中,除非上下文另有明确说明,否则单数形式旨在包括复数形式,反之亦然。将进一步理解的是,当在本说明书中使用时,术语“包括”、“包含”、“具有”等指定所陈述的特征、整数、步骤、操作、元件、组件和/或其组合的存在,但并不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
除非另有定义,否则本文使用的包括技术和科学术语的所有术语具有与本公开所属领域的普通技术人员通常理解的相同的含义。将进一步理解的是,本文使用的术语应当被解释为具有与其在本说明书和相关技术的背景下的含义一致的含义,并且不以理想化或过于形式化的意义来解释,除非本文中明确地这样定义。
省略对本领域技术人员公知的功能和结构的详细描述,以避免模糊本公开的主题。这旨在使本公开的主题清晰。
下面参照附图更全面地描述本公开的各个实施例,附图中示出了本公开的优选实施例,使得本领域技术人员能够实践本发明。在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
图1是示出根据本公开的实施例的存储装置的示图。
参照图1,存储装置50可包括存储器装置100和存储器控制器200。存储装置50可在诸如以下的主机300的控制下存储数据:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板个人计算机(PC)或车载信息娱乐系统。
根据作为与主机300通信的方案的主机接口,存储装置50可被配置成各种类型的存储装置中的任意一种。例如,存储装置50可被实施为固态驱动器(SSD),诸如MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你SD或微型SD的安全数字卡,通用存储总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-e或PCIe)卡型存储装置,紧凑式闪存(CF)卡,智能媒体卡和/或记忆棒。
存储装置50可以诸如以下的各种类型的封装形式中的任意一种来制造:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)以及晶圆级堆叠封装(WSP)。
存储器装置100可存储数据。存储器装置100响应于存储器控制器200的控制来进行操作。存储器装置100可包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。存储器单元阵列可包括多个存储块。每个存储块可包括多个存储器单元。单个存储块可包括多个页面。在实施例中,每个页面可以是将数据存储在存储器装置100中或者读取存储器装置100中存储的数据的单位。存储块可以是擦除数据的单位。在实施例中,存储器装置100可采取诸如以下的许多可选形式:双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式RAM(RRAM)、相变存储器(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)或自旋转移力矩RAM(STT-RAM)。在本说明书中,在存储器装置100是NAND闪速存储器的背景下描述本发明的特征和方面。
存储器装置100可从存储器控制器200接收命令和地址,并且可访问存储器单元阵列中由地址选择的区域。也就是说,存储器装置100可对由地址选择的区域执行对应于命令的操作。例如,存储器装置100可执行写入操作(即,编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可擦除由地址选择的区域中存储的数据。
存储器控制器200控制存储装置50的全部操作。
当向存储装置50供应电力时,存储器控制器200可运行固件(FW)。当存储器装置100是闪速存储器装置时,存储器控制器200可运行诸如用于控制主机300和存储器装置100之间的通信的闪存转换层(FTL)的固件。
在实施例中,存储器控制器200可从主机300接收数据和逻辑块地址(LBA),并且将逻辑块地址转换为物理块地址(PBA),该物理块地址(PBA)指示存储器装置100中待存储数据的存储器单元的地址。
存储器控制器200可控制存储器装置100,从而响应于从主机300接收的请求执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可向存储器装置100提供编程命令、物理块地址和数据。在读取操作期间,存储器控制器200可向存储器装置100提供读取命令和物理块地址。在擦除操作期间,存储器控制器200可向存储器装置100提供擦除命令和物理块地址。
在实施例中,存储器控制器200可自主生成编程命令、地址和数据,并且可将它们传输到存储器装置100,而不管来自主机300的请求。例如,存储器控制器200可向存储器装置100提供命令、地址和数据以便执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
在实施例中,存储器控制器200可控制至少两个存储器装置100。在这种情况下,存储器控制器200可基于交错方案来控制存储器装置100,以提高操作性能。交错方案可以是在重叠的时间段中操作多个存储器装置100的操作方法。
在实施例中,存储器控制器200可包括工作负载确定电路210和操作环境设置电路220。
工作负载确定电路210可使用最佳读取电压来确定指示存储器装置100的操作模式的工作负载状态。可设置最佳读取电压,以便在使用默认读取电压读取存储器单元失败时读取存储器单元。工作负载状态可指示当前操作模式是否包括比默认操作模式更多的读取操作的执行。
工作负载确定电路210可使用偏移量来确定工作负载状态,该偏移量为最佳读取电压与默认读取电压之间的差值。随着偏移量变大,工作负载状态可指示执行更多的读取操作的操作模式。
每当对存储器单元的读取操作失败时,工作负载确定电路210可保存样本工作负载状态。该样本工作负载状态可以是基于读取操作失败时所使用的偏移量而确定的工作负载状态。
当保存的样本工作负载状态的数量等于或大于参考数量时,工作负载确定电路210可确定最终工作负载状态。该最终工作负载状态可以是多个所保存的样本工作负载状态之中对应于最大偏移量的样本工作负载状态。工作负载确定电路210可向操作环境设置电路220提供该最终工作负载状态。在提供最终工作负载状态之后,工作负载确定电路210可删除该多个所保存的样本工作负载状态。
操作环境设置电路220可基于最终工作负载状态来设置存储器装置的操作环境。
在实施例中,操作环境设置电路220可基于最终工作负载状态来调整缓冲器组中包括的读取缓冲器和写入缓冲器的数量。操作环境设置电路220可根据最终工作负载状态来增加读取缓冲器的数量。操作环境设置电路220可将写入缓冲器的数量减少与读取缓冲器增加的数量相同的数量。操作环境设置电路220可减少写入缓冲器的数量,直到写入缓冲器的数量达到写入缓冲器的阈值数量。写入缓冲器的阈值数量可以是存储器装置的写入操作所需的写入缓冲器的最小数量。
在其它实施例中,操作环境设置电路220可改变在命令队列中顺序排队的命令待被输出到存储器装置的顺序。命令队列中的命令可以命令被排队的顺序被输出到存储器装置。当命令的排队顺序改变时,命令待被输出到存储器装置的输出顺序也可改变。
操作环境设置电路220可改变在命令队列中排队的命令的排队顺序,使得基于最终工作负载状态,读取命令早于写入命令地被输出到存储器装置。读取命令最初可能晚于写入命令排队。详细地,操作环境设置电路220可改变命令队列中命令的排队顺序,使得命令队列中的读取命令中的至少一个先于写入命令而输出。写入命令最初早于该至少一个读取命令而在命令队列中排队,或者处于比该至少一个读取命令更高的顺序位置。
在实施例中,操作环境设置电路220可被配置成,当根据最终工作负载状态调整的写入缓冲器的数量达到写入缓冲器的阈值数量时,改变命令队列中命令的排队顺序,以改变排队命令的输出顺序。
主机300可使用诸如以下的各种通信方法中的至少一种来与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)通信方法。
图2是示出存储器单元的阈值电压分布和最佳读取电压的改变的示图。
参照图2,存储器单元指示一个存储器单元存储两个数据位的多层单元(MLC)。多层单元可具有对应于擦除状态E或第一至第三编程状态PV1至PV3中任意一个的状态。
图(a)示出具有正常阈值电压分布的多层单元。在具有正常阈值电压分布的多层单元的情况下,可在对应于各个状态的阈值电压分布之间确保足够的裕量。读取裕量可以是可设置读取电压的阈值电压分布之间的间隔,以便将相邻状态彼此区分开。
在图(a)中,第一至第三默认读取电压Vrd1至Vrd3可以是用于将擦除状态E与第一至第三编程状态PV1至PV3彼此区分开的读取电压。第一默认读取电压Vrd1可用于将擦除状态E与第一编程状态PV1区分开。第二默认读取电压Vrd2可用于将第一编程状态PV1与第二编程状态PV2区分开。第三默认读取电压Vrd3可用于将第二编程状态PV2与第三编程状态PV3区分开。
图(b)示出一种分布,在该分布中,与正常阈值电压分布相比,多层单元的阈值电压分布的右边沿由于诸如编程干扰或读取干扰的各种因素而向右延伸并偏移。在这种情况下,在对应于各个状态的阈值电压分布之间可能无法确保足够的读取裕量。
当使用参照图(a)描述的第一至第三默认读取电压Vrd1至Vrd3来读取多层单元时,读取数据中包括的错误位的数量可能增加,因此读取操作将失败的概率可能增加。
可根据对使用读取电压而读取的数据执行的错误校正解码是已经通过还是已经失败来确定读取操作是已经通过还是已经失败。当错误校正解码已经通过时,读取操作可以通过。当错误校正解码已经失败时,读取操作可能失败。
可基于所读取的数据中错误位的数量和可由错误校正解码器校正的位的数量之间比较的结果来确定错误校正解码是已经通过还是已经失败。当读取数据中错误位的数量小于或等于可由错误校正解码器校正的位的数量时,错误校正解码可以通过。当读取数据中错误位的数量大于可由错误校正解码器校正的位的数量时,错误校正解码可能失败。
错误位的数量表示根据存储器单元的编程状态,待被读取为ON单元但被读取为OFF单元的存储器单元的数量,或者待被读取为OFF单元但被读取为ON单元的存储器单元的数量。可校正的位的数量表示可由错误校正解码器恢复到原始位的错误位的数量。
因此,为了减小读取操作将失败的概率,可将用于读取多层单元的读取电压的电平相对于默认读取电压调整一偏移量。该偏移量可以是由于各种原因而待被加上或减去以便改变读取电压的电压。
在实施例中,第一至第三最佳读取电压Vro1_R至Vro3_R可相对于以上参照图(a)描述的第一至第三默认读取电压Vrd1至Vrd3调整正偏移量。
当使用第一至第三最佳读取电压Vro1_R至Vro3_R读取具有右边沿相比正常阈值电压分布向右延伸并偏移的阈值电压分布的存储器单元时,可减少错误位的数量,因此可减小读取操作将失败的概率。
图(c)示出一种分布,在该分布中,与正常阈值电压分布相比,多层单元的阈值电压分布的左边沿由于诸如存储器单元的保持的各种因素而向左延伸并偏移。在这种情况下,在对应于各个状态的阈值电压分布之间可能无法确保足够的读取裕量。
当使用参照图(a)描述的第一至第三默认读取电压Vrd1至Vrd3来读取多层单元时,读取数据中错误位的数量可能增加,因此读取操作将失败的概率可能增加。
在实施例中,第一至第三最佳读取电压Vro1_L至Vro3_L可相对于以上参照图(a)描述的第一至第三默认读取电压Vrd1至Vrd3调整负偏移量。
当使用第一至第三最佳读取电压Vro1_L至Vro3_L读取具有左边沿相比正常阈值电压分布向左延伸并偏移的阈值电压分布的存储器单元时,可减少错误位的数量,因此可减小读取操作将失败的概率。
图3是示出偏移量的示图,该偏移量为最佳读取电压与默认读取电压之间的差值。
参照图3,横轴表示阈值电压,并且纵轴表示存储器单元的数量。
在图3中,存储器单元具有对应于第一编程状态PV1和第二编程状态PV2中的任意一个的状态。可设置默认读取电压Vrd2来将第一编程状态PV1与第二编程状态PV2区分开。
存储器单元的阈值电压分布的右边沿可能由于诸如编程干扰或读取干扰的各种因素而向右延伸并偏移。在实施例中,存储器单元的阈值电压分布的右边沿向右延伸并偏移的宽度可在图(a)、(b)和(c)的顺序上增加。
在实施例中,当对应于第一编程状态PV1的阈值电压分布的右边沿如图(a)所示延伸和偏移时,第一最佳读取电压Vro2_1可用于将第一编程状态PV1与第二编程状态PV2区分开。此处,第一最佳读取电压Vro2_1可以是在对应于第一编程状态PV1并且其右边沿在图(a)中示出的阈值电压分布与对应于第二编程状态PV2的阈值电压分布相交的点处的电压。
当对应于第一编程状态PV1的阈值电压分布的右边沿如图(b)所示延伸和偏移时,第二最佳读取电压Vro2_2可用于将第一编程状态PV1与第二编程状态PV2区分开。此处,第二最佳读取电压Vro2_2可以是在对应于第一编程状态PV1并且其右边沿在图(b)中示出的阈值电压分布与对应于第二编程状态PV2的阈值电压分布相交的点处的电压。
当对应于第一编程状态PV1的阈值电压分布的右边沿如图(c)所示延伸和偏移时,第三最佳读取电压Vro2_3可用于将第一编程状态PV1与第二编程状态PV2区分开。此处,第三最佳读取电压Vro2_3可以是在对应于第一编程状态PV1并且其右边沿在图(c)中示出的阈值电压分布与对应于第二编程状态PV2的阈值电压分布相交的点处的电压。
偏移量可以是默认读取电压与最佳读取电压之间的差值。当最佳读取电压大于默认读取电压时,相应的偏移量可具有正值。随着存储器单元的阈值电压分布的右边沿向右延伸并偏移的宽度增加,最佳读取电压的量值可以增加。随着最佳读取电压的量值增加,相应的偏移量的量值可以增加。
在实施例中,第一偏移量Offset1可以是通过从第一最佳读取电压Vro2_1中减去默认读取电压Vrd2而获得的值。第二偏移量Offset2可以是通过从第二最佳读取电压Vro2_2中减去默认读取电压Vrd2而获得的值。第三偏移量Offset3可以是通过从第三最佳读取电压Vro2_3中减去默认读取电压Vrd2而获得的值。Offset3可以大于Offset2,Offset2可以大于Offset1。
图4是示出用于确定工作负载状态的存储器控制器的操作的示图。
参照图4,存储器控制器200可进一步包括读取失败控制器230。
在实施例中,工作负载确定电路210可包括工作负载表211、工作负载状态确定电路212、状态信息存储装置213和状态信息计数器214。
工作负载表211可存储工作负载参考信息,工作负载参考信息包括基于偏移量和多个工作负载参考值之间比较的结果所确定的工作负载状态。工作负载状态可以是存储器装置的操作模式。详细地,工作负载状态可指示当前操作模式是否是执行比存储器装置的默认操作模式中更多的读取操作的操作模式。
偏移量可以是最佳读取电压与默认读取电压之间的差值。最佳读取电压可以是被设置成当使用默认读取电压读取存储器单元失败时读取存储器单元的读取电压。随着偏移量更大时,工作负载状态可指示执行更多的读取操作的操作模式。
工作负载状态确定电路212可计算由读取失败控制器230提供的最佳读取电压与默认读取电压之间的偏移量。每当使用默认读取电压读取存储器单元的操作失败时,可从读取失败控制器230提供最佳读取电压。
工作负载状态确定电路212可将多个样本工作负载状态保存在状态信息存储装置213中。样本工作负载状态可以是基于偏移量和工作负载参考信息而确定的工作负载状态。工作负载状态确定电路212可不将代表默认状态的样本工作负载状态保存在状态信息存储装置213中。
工作负载状态确定电路212可响应于由状态信息计数器214提供的状态输出信号来确定最终工作负载状态。最终工作负载状态可以是保存在状态信息存储装置213中的多个样本工作负载状态之中对应于最大偏移量的样本工作负载状态。工作负载状态确定电路212可响应于状态输出信号,将最终工作负载状态提供到以上参照图1描述的操作环境设置电路220。当最终工作负载状态被提供到操作环境设置电路220时,工作负载状态确定电路212可删除包括保存在状态信息存储装置213中的多个样本工作负载状态的工作负载状态信息。
状态信息存储装置213可存储包括多个样本工作负载状态的工作负载状态信息。状态信息存储装置213可从工作负载状态确定电路212接收样本工作负载状态,并保存该样本工作负载状态。状态信息存储装置213可在工作负载状态确定电路212的控制下删除工作负载状态信息。
状态信息计数器214可对保存在状态信息存储装置213中的样本工作负载状态的数量进行计数。当所存储的样本工作负载状态的数量等于或大于参考数量时,状态信息计数器214可生成状态输出信号,并将该状态输出信号提供到工作负载状态确定电路212。
当使用默认读取电压读取存储器单元的操作失败时,读取失败控制器230可设置最佳读取电压,以用于读取存储器单元。每当读取存储器单元的操作失败时,读取失败控制器230可将所设置的最佳读取电压提供到工作负载状态确定电路212。
图5是示出用于存储指示根据偏移量所确定的工作负载状态的工作负载参考信息的工作负载表的示图。
参照图5,工作负载参考信息可包括多个工作负载参考值。工作负载参考信息可指示分别对应于多个参考间隔的工作负载状态。多个参考间隔基于多个工作负载参考值来确定。偏移量x可以是最佳读取电压Vro与默认读取电压Vrd之间的差值。
在图5中,工作负载参考信息可包括第一至第四工作负载参考值Ref_1至Ref_4。存在四(4)种可能的工作负载状态:默认状态和第一至第三读取密集状态RI_1至RI_3。每个读取密集状态可指示执行比存储器装置的默认操作模式更多的读取操作被执行的操作模式。此外,较高编号的读取密集状态可指示执行比对应于较低编号的读取密集状态的操作模式更多的读取操作的操作模式。工作负载参考信息中的工作负载参考值的数量和读取密集状态的数量不限于本实施例中描述的数量。
在基于第一至第四工作负载参考值Ref_1至Ref_4而确定的多个参考间隔之中,可根据偏移量所属的参考间隔来确定工作负载状态。
例如,当偏移量x大于0且小于第一工作负载参考值Ref_1时,工作负载状态可以是默认状态。当偏移量x等于或大于第一工作负载参考值Ref_1且小于第二工作负载参考值Ref_2时,工作负载状态可以是第一读取密集状态RI_1。当偏移量x等于或大于第二工作负载参考值Ref_2且小于第三工作负载参考值Ref_3时,工作负载状态可以是第二读取密集状态RI_2。当偏移量x等于或大于第三工作负载参考值Ref_3且小于第四工作负载参考值Ref_4时,工作负载状态可以是第三读取密集状态RI_3。
在实施例中,当工作负载状态是第一读取密集状态RI_1时,存储器装置的操作模式可以是执行比工作负载状态是默认状态的情况下更多的读取操作的模式。当工作负载状态是第二读取密集状态RI_2时,存储器装置的操作模式可以是执行比工作负载状态是第一读取密集状态RI_1的情况下更多的读取操作的模式。当工作负载状态是第三读取密集状态RI_3时,存储器装置的操作模式可以是执行比工作负载状态是第二读取密集状态RI_2的情况下更多的读取操作的模式。
图6是示出用于确定最终工作负载状态的实施例的示图。
参照图6,可基于以上参照图5描述的输入偏移量和工作负载参考信息来确定最终工作负载状态。
在图6中,可输入第一至第四偏移量。工作负载参考信息可包括第一至第三工作负载参考值Ref_1至Ref_3。第一工作负载参考值Ref_1可以是1。第二工作负载参考值Ref_2可以是1.3。第三工作负载参考值Ref_3可以是1.6。样本工作负载状态的参考数量可以是3。输入偏移量的数量、工作负载参考值的数量和样本工作负载状态的参考数量不限于本实施例。
第一偏移量可以是0.5。因此,因为第一偏移量小于第一工作负载参考值Ref_1,所以工作负载状态可以是默认状态。第二偏移量可以是1.1。因为第二偏移量等于或大于第一工作负载参考值Ref_1且小于第二工作负载参考值Ref_2,所以工作负载状态可以是第一读取密集状态RI_1。第三偏移量可以是1.2。因为第三偏移量等于或大于第一工作负载参考值Ref_1且小于第二工作负载参考值Ref_2,所以工作负载状态可以是第一读取密集状态RI_1。第四偏移量可以是1.4。因为第四偏移量等于或大于第二工作负载参考值Ref_2且小于第三工作负载参考值Ref_3,所以工作负载状态可以是第二读取密集状态RI_2。
以上参照图4描述的状态信息存储装置213可保存针对输入偏移量所确定的样本工作负载状态,但可能不会保存工作负载状态是默认状态的样本工作负载状态。
例如,因为针对第一偏移量所确定的工作负载状态是默认状态,所以该工作负载状态可能不会被保存在状态信息存储装置213中。因为基于第二至第四偏移量所确定的工作负载状态都不是默认状态,所以这些工作负载状态可被保存在状态信息存储装置213中。
当保存在状态信息存储装置213中的样本工作负载状态的数量等于或大于样本工作负载状态的参考数量时,可确定最终工作负载状态。最终工作负载状态可以是所保存的样本工作负载状态之中对应于最大偏移量的样本工作负载状态。
例如,在第二至第四偏移量之中,第四偏移量为1.4,其是最大值,因此可将对应于第四偏移量的样本工作负载状态确定为最终工作负载状态。此处,最终工作负载状态可以是第二读取密集状态RI_2。
图7是示出用于控制操作环境的例如存储器控制器200的存储器控制器的操作的示图。
参照图7,除了操作环境设置电路220之外,存储器控制器200可进一步包括缓冲器组240和命令队列250。
在实施例中,操作环境设置电路220可包括操作环境控制器221和操作环境设置表222。
操作环境控制器221可从参照图4描述的工作负载状态确定电路212接收最终工作负载状态。操作环境控制器221可基于所接收的最终工作负载状态,使用操作环境设置表222中存储的缓冲器控制信息来控制缓冲器组240。操作环境控制器221可基于所接收的最终工作负载状态,使用操作环境设置表222中存储的命令队列控制信息来控制命令队列250。
操作环境控制器221可包括缓冲器控制器221a和命令队列控制器221b。
缓冲器控制器221a可响应于缓冲器控制信号来调整缓冲器组240中包括的读取缓冲器和写入缓冲器的数量。缓冲器控制信号可基于最终工作负载状态和缓冲器控制信息来确定。
在实施例中,缓冲器控制器221a可响应于缓冲器控制信号将写入缓冲器设置为读取缓冲器。在这种情况下,可增加缓冲器组240中包括的读取缓冲器的数量,并且可减少缓冲器组240中包括的写入缓冲器的数量。在实施例中,缓冲器控制器221a可响应于缓冲器控制信号将读取缓冲器设置为写入缓冲器。在这种情况下,可增加缓冲器组240中包括的写入缓冲器的数量,并且可减少读取缓冲器的数量。
也就是说,缓冲器控制器221a可响应于基于最终工作负载状态的缓冲器控制信号增加缓冲器组240中包括的读取缓冲器的数量。缓冲器控制器221a可响应于基于最终工作负载状态的缓冲器控制信号减少缓冲器组240中包括的写入缓冲器的数量。缓冲器控制器221a可减少写入缓冲器的数量,直到写入缓冲器的数量达到写入缓冲器的阈值数量,该阈值数量可以是存储器装置的写入操作所需的写入缓冲器的最小数量。
命令队列控制器221b可响应于命令队列控制信号来改变命令队列250中命令的排队顺序,以改变排队命令的输出顺序。命令队列控制信号可基于最终工作负载状态和命令队列控制信息来确定。
命令队列控制器221b可基于最终工作负载状态改变命令队列250中命令的排队顺序,使得读取命令先于写入命令输出到存储器装置。读取命令最初可以晚于写入命令而在命令队列250中排队。
详细地,命令队列控制器221b可改变命令队列250中命令的排队顺序,使得在命令队列250中排队的读取命令中的至少一个先于最初排队在该至少一个读取命令之前或早于该至少一个读取命令排队的写入命令输出。
在实施例中,命令队列控制器221b可被配置成,当由缓冲器控制器221a根据最终工作负载状态调整的写入缓冲器的数量达到写入缓冲器的阈值数量时,改变命令队列250中命令的排队顺序。命令的原始排队顺序可以是它们被接收或存储在命令队列250中的连续顺序。
操作环境设置表222可存储缓冲器控制信息和命令队列控制信息。缓冲器控制信息可涉及对缓冲器组240中读取缓冲器或写入缓冲器的数量的调整。命令队列控制信息可涉及命令在命令队列250中排队的顺序,该顺序也指示这些命令待被输出到存储器装置的顺序。
缓冲器组240可包括多个读取缓冲器和多个写入缓冲器。读取缓冲器中的每一个可包括用于存储数据的多个锁存电路。为了将从以上参照图1描述的存储器装置读取的数据输出到主机,每个读取缓冲器可临时存储读取数据。写入缓冲器中的每一个可包括用于存储数据的多个锁存电路。为了将从主机接收的数据存储在存储器装置中,每个写入缓冲器可临时存储所接收的数据。
命令队列250可对顺序接收的命令进行排队。命令队列250可将顺序接收和存储的命令以命令排队的顺序输出到存储器装置,直到排队顺序如本文所说明的那样改变。当命令的排队顺序改变时,命令待被输出到存储器装置的顺序也可改变。
图8是说明用于根据最终工作负载状态来存储缓冲器控制信息和命令队列控制信息的操作环境设置表的示图。
参照图8,缓冲器控制信息Buffer_CI可指示对缓冲器组中包括的读取缓冲器或写入缓冲器的数量的调整。命令队列控制信息CMD queue_CI可指示命令队列中的命令待被输出到存储器装置的顺序或序列。
在图8中,当最终工作负载状态是第一读取密集状态RI_1时,缓冲器控制信息可以是第一缓冲器控制信息Buffer_CI1。当最终工作负载状态是第一读取密集状态RI_1时,命令队列控制信息可以是第一命令队列控制信息CMD queue_CI1。
类似地,当最终工作负载状态指示第二至第五读取密集状态RI_2至RI_5时,缓冲器控制信息可以分别是第二至第五缓冲器控制信息Buffer_CI2至Buffer_CI5。当最终工作负载状态指示第二至第五读取密集状态RI_2至RI_5时,命令队列控制信息可以分别是第二至第五命令队列控制信息CMD queue_CI2至CMD queue_CI5。
可基于根据最终工作负载状态确定的缓冲器控制信息来调整缓冲器组中包括的读取缓冲器或写入缓冲器的数量。基于根据最终工作负载状态确定的命令队列控制信息,可改变命令队列中命令的排队顺序。
例如,当最终工作负载状态在从第一读取密集状态RI_1到第五读取密集状态RI_5的方向上改变时,存储器装置的操作模式可以是执行更多读取操作的模式。因此,随着缓冲器控制信息在从第一缓冲器控制信息Buffer_CI1到第五缓冲器控制信息Buffer_CI5的方向上改变,可进一步增加缓冲器组中包括的读取缓冲器的数量。可进一步减少缓冲器组中包括的写入缓冲器的数量。类似地,随着命令队列控制信息在从第一命令队列控制信息CMDqueue_CI1到第五命令队列控制信息CMD queue_CI5的方向上改变,在命令队列中的命令之中,更多的读取命令可先于最初早于该读取命令排队的写入命令输出到存储器装置。
图9是说明根据实施例的写入缓冲器和读取缓冲器的数量的调整的示图。
参照图9,缓冲器组240可包括多个读取缓冲器和多个写入缓冲器。在实施例中,缓冲器组240可包括八个缓冲器。然而,这仅仅是示例;缓冲器组240中可包括任何适当数量的缓冲器。
如图9的部分(a)所示,当最终工作负载状态是默认状态时,缓冲器组240可包括四(4)个读取缓冲器RB1至RB4和四(4)个写入缓冲器WB1至WB4。更常规地,当最终工作负载状态是默认状态时,缓冲器组240包含初始设置数量的读取缓冲器和初始设置数量的写入缓冲器,初始设置数量不限于四个。可在制造过程中分别确定读取缓冲器的初始设置数量和写入缓冲器的初始设置数量。读取缓冲器和写入缓冲器的初始设置数量可以相同或不同。
如图9的部分(b)所示,当最终工作负载状态是第一读取密集状态ReadIntensive_1时,缓冲器组240可包括五(5)个读取缓冲器RB1至RB5和三(3)个写入缓冲器WB1至WB3。
如图9的部分(c)所示,当最终工作负载状态是第二读取密集状态ReadIntensive_2时,缓冲器组240可包括六(6)个读取缓冲器RB1至RB6和两(2)个写入缓冲器WB1和WB2。此处,指示存储器装置的写入操作所需的写入缓冲器的最小数量的写入缓冲器的阈值数量可以是2。
也就是说,在对应于默认状态、第一读取密集状态Read Intensive_1和第二读取密集状态Read Intensive_2的最终工作负载状态的顺序中,可增加缓冲器组240中包括的读取缓冲器RB的数量,并且可减少缓冲器组240中包括的写入缓冲器WB的数量。然而,写入缓冲器WB的数量可以不减少到低于写入缓冲器的阈值数量。
图10是说明根据实施例的命令队列中命令的排队顺序的改变的示图。
参照图10,命令队列250可对顺序输入到其中的命令进行排队。命令队列250可根据可被改变的命令的排队顺序来将顺序接收和存储的命令输出到存储器装置。当命令队列250中命令的排队顺序改变时,排队命令的输出顺序也可改变。在图10的实施例中,命令队列250存储六个命令:三个读取命令和三个写入命令。然而,命令队列250中存储的命令的数量和类型不限于这种配置。
在图10中,命令队列250可顺序地接收和存储第一读取命令RC_1、第一写入命令WC_1、第二读取命令RC_2、第二写入命令WC_2、第三读取命令RC_3和第三写入命令WC_3。因此,在命令队列250中排队的命令可以与它们被接收和存储的相同顺序输出到存储器装置。
如图10的表(a)所示,当最终工作负载状态是默认状态时,命令可以第一读取命令RC_1、第一写入命令WC_1、第二读取命令RC_2、第二写入命令WC_2、第三读取命令RC_3和第三写入命令WC_3的顺序从命令队列输出到存储器装置。
如图10的表(b)所示,当最终工作负载状态是第一读取密集状态Read Intensive_1时,命令可以第一读取命令RC_1、第二读取命令RC_2、第一写入命令WC_1、第三读取命令RC_3、第二写入命令WC_2和第三写入命令WC_3的顺序从命令队列输出到存储器装置。也就是说,与最终工作负载状态是默认状态的情况(表(a))相比,第二读取命令RC_2可先于第一写入命令WC_1输出到存储器装置,并且第三读取命令RC_3可先于第二写入命令WC_2输出到存储器装置。
如图10的表(c)所示,当最终工作负载状态是第二读取密集状态Read Intensive_2时,命令可以第一读取命令RC_1、第二读取命令RC_2、第三读取命令RC_3、第一写入命令WC_1、第二写入命令WC_2和第三写入命令WC_3的顺序从命令队列输出到存储器装置。也就是说,与最终工作负载状态是第一读取密集状态的情况(表(b))相比,第三读取命令RC_3可先于第一写入命令WC_1输出到存储器装置。
也就是说,随着最终工作负载状态向增强的读取密集方向转变,早于最初排队在读取命令之前的写入命令而输出的读取命令的数量增加。
图11是示出根据本公开的实施例的例如存储器控制器200的存储器控制器的全部操作的流程图。
参照图11,在步骤S1101中,存储器控制器可使用最佳读取电压来确定工作负载状态。详细地,存储器控制器可基于偏移量和工作负载参考值之间比较的结果来确定工作负载状态,该偏移量为最佳读取电压与默认读取电压之间的差值。
在步骤S1103中,存储器控制器可基于所确定的工作负载状态来设置操作环境。详细地,存储器控制器可基于工作负载状态来调整缓冲器组中包括的读取缓冲器和写入缓冲器的数量。存储器控制器可基于工作负载状态来改变在命令队列中排队的命令的顺序,该顺序指示命令待被输出到存储器装置的顺序。
图12是示出根据本公开的实施例的由例如存储器控制器200的存储器控制器执行的工作负载状态确定操作的流程图。
参照图12,在步骤S1201中,当使用默认读取电压读取存储器单元的读取操作失败时,存储器控制器可感测读取失败。
在步骤S1203中,当感测到读取失败时,存储器控制器可基于默认读取电压来设置最佳读取电压。最佳读取电压可以是用于读取读取操作已失败的存储器单元的电压。
在步骤S1205中,存储器控制器可计算偏移量,该偏移量为最佳读取电压与默认读取电压之间的差值。
在步骤S1207中,存储器控制器可基于偏移量与多个工作负载参考值之间的比较结果,确定对应于偏移量所属间隔的工作负载状态是否是默认状态。当确定该工作负载状态是默认状态时,进程终止;否则,进程进行到步骤S1209。
在步骤S1209中,存储器控制器可将基于偏移量所确定的工作负载状态保存为样本工作负载状态。每当在S1201中感测到读取失败且在S1205中计算的偏移量不属于对应于默认状态的间隔时,可保存样本工作负载状态。因此,可保存一个或多个样本工作负载状态,直到所保存的样本工作负载状态的数量等于或大于样本工作负载状态的参考数量。
在步骤S1211中,存储器控制器可对所保存的样本工作负载状态的数量进行计数。
在步骤S1213中,存储器控制器可确定所保存的样本工作负载状态的数量是否等于或大于样本工作负载状态的参考数量。当样本工作负载状态的数量等于或大于样本工作负载状态的参考数量时,进程进行到步骤S1215;否则该进程终止。
在步骤S1215中,存储器控制器可基于包括所保存的样本工作负载状态的工作负载状态信息来确定最终工作负载状态。最终工作负载状态可以是所保存的样本工作负载状态之中对应于最大偏移量的样本工作负载状态。存储器控制器可在确定最终工作负载状态之后删除工作负载状态信息。
图13是示出根据本公开的实施例的由例如存储器控制器200的存储器控制器执行的调整读取缓冲器的数量的操作的流程图。
参照图13,在步骤S1301中,存储器控制器可基于最终工作负载状态来生成缓冲器控制信号。
在步骤S1303中,存储器控制器可响应于所生成的缓冲器控制信号来调整缓冲器组中包括的读取缓冲器的数量。
图14是示出根据本公开的实施例的由例如存储器控制器200的存储器控制器执行的改变命令输出顺序的操作的流程图。
参照图14,在步骤S1401中,存储器控制器可基于最终工作负载状态来生成命令队列控制信号。
在步骤S1403中,存储器控制器可响应于所生成的命令队列控制信号来改变命令队列中命令的排队顺序。详细地,可改变排队顺序,使得在命令队列中排队的读取命令先于最初早于该读取命令排队的写入命令输出。
图15是示出根据本公开的实施例的例如存储器控制器200的存储器控制器的操作的流程图。
参照图15,在步骤S1501中,存储器控制器可基于最终工作负载状态来调整读取缓冲器的数量和写入缓冲器的数量。
在步骤S1503中,存储器控制器可确定写入缓冲器的数量是否等于写入缓冲器的阈值数量,该阈值数量代表所需的写入缓冲器的最小数量。当确定写入缓冲器的数量等于写入缓冲器的阈值数量时,进程进行到步骤S1505;否则,该进程返回到步骤S1501。
在步骤S1505中,存储器控制器可基于最终工作负载状态来改变在命令队列中排队的命令的顺序。
图16是示出图1的存储器控制器的实施例的示图。
参照图16,存储器控制器1000联接到主机和存储器装置,例如,联接到图1的主机300和存储器装置100。响应于从主机接收的请求,存储器控制器1000可访问存储器装置。例如,存储器控制器1000可被配置成控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可提供存储器装置与主机之间的接口。存储器控制器1000可运行用于控制存储器装置的固件。
存储器控制器1000可包括处理器1010、存储器缓冲器1020、错误校正码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可提供存储器控制器1000的组件之间的通道。
处理器1010可控制存储器控制器1000的全部操作,并且可执行逻辑操作。处理器1010可通过主机接口1040与外部主机通信,并且还通过存储器接口1060与存储器装置通信。进一步地,处理器1010可通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可通过将存储器缓冲器1020用作工作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
处理器1010可执行闪存转换层(FTL)的功能。处理器1010可通过FTL将由主机提供的逻辑块地址(LBA)转换成物理块地址(PBA)。FTL可使用映射表接收LBA并将LBA转换成PBA。根据映射单元,可使用通过FTL执行的各种地址映射方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可将从主机接收的数据随机化。例如,处理器1010可使用随机化种子来将从主机接收的数据随机化。可将经随机化的数据作为待存储的数据提供到存储器装置,并且可将其编程在存储器单元阵列中。
处理器1010可在读取操作期间将从存储器装置接收的数据去随机化(derandomize)。例如,处理器1010可使用去随机化种子将从存储器装置接收的数据去随机化。经去随机化的数据可被输出到主机。
在实施例中,处理器1010可运行软件或固件以执行随机化和去随机化操作。
存储器缓冲器1020可用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可存储由处理器1010运行的代码和命令。存储器缓冲器1020可存储由处理器1010处理的数据。存储器缓冲器1020可包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可执行错误校正。ECC电路1030可基于待通过存储器接口1060写入到存储器装置的数据来执行错误校正码(ECC)编码。经ECC编码的数据可通过存储器接口1060传送到存储器装置。ECC电路1030可基于通过存储器接口1060从存储器装置接收的数据来执行ECC解码。ECC电路1030可作为其组件而被设置在存储器接口1060中。
主机接口1040可在处理器1010的控制下与外部主机通信。主机接口1040可使用诸如以下的各种通信方法中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)通信方法。
缓冲器控制电路1050可在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可在处理器1010的控制下与存储器装置通信。存储器接口1060可通过通道与存储器装置交换命令、地址和数据。
在实施例中,存储器控制器1000可不包括存储器缓冲器1020和缓冲器控制电路1050。也就是说,可单独设置这些组件中的一个或两者,或者可将它们的功能分布在存储器控制器1000内。
在实施例中,处理器1010可使用代码来控制存储器控制器1000的操作。处理器1010可从设置在存储器控制器1000中的非易失性存储器装置(例如,ROM)加载代码。在实施例中,处理器1010可通过存储器接口1060从存储器装置加载代码。
在实施例中,存储器控制器1000的总线1070可被划分成控制总线和数据总线。数据总线可被配置成在存储器控制器1000中传输数据,控制总线可被配置成在存储器控制器1000中传输诸如命令或地址的控制信息。数据总线和控制总线可彼此隔离,以便既不互相干扰也不互相影响。数据总线可联接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图17是示出应用根据本公开的实施例的存储装置的存储卡系统的框图。
参照图17,存储卡系统2000可包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可访问存储器装置2200。例如,存储器控制器2100可控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可提供存储器装置2200与主机之间的接口。存储器控制器2100可运行用于控制存储器装置2200的固件。存储器控制器2100可以与上面参照图1描述的存储器控制器200相同的方式来实施。
在实施例中,存储器控制器2100可包括诸如RAM、处理器、主机接口、存储器接口和ECC电路的组件。
存储器控制器2100可通过连接器2300与外部装置通信。存储器控制器2100可基于特定的通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可由这些通信协议中的至少一种来限定。
在实施例中,存储器装置2200可被实施成诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)或自旋力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可被集成到单个半导体装置中以配置诸如以下的存储卡:PC卡(个人计算机存储卡国际协会:PCMCIA)、紧凑式闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)或通用闪存(UFS)。
图18是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)系统的框图。
参照图18,SSD系统3000可包括主机3100和SSD 3200。SSD 3200可通过信号连接器3001与主机3100交换信号SIG,并且可通过电源连接器3002接收电力PWR。SSD 3200可包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
根据本公开的实施例,SSD控制器3210可执行上面参照图1描述的存储器控制器200的功能。
SSD控制器3210可响应于从主机3100接收的信号SIG来控制多个闪速存储器3221至322n。在实施例中,信号SIG可以是基于主机3100和SSD 3200的接口的信号。例如,信号SIG可以是由诸如以下的各种接口中的至少一种限定的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及高速非易失性存储器(NVMe)接口。
辅助电源3230可通过电源连接器3002联接到主机3100。辅助电源3230可被供应来自主机3100的电力PWR并且可被充电。当来自主机3100的电力的供应未平稳执行时,辅助电源3230可供应SSD 3200的电力。在实施例中,辅助电源3230可被设置在SSD 3200内。在另一实施例中,辅助电源3230可以是在SSD 3200之外的单独组件。例如,辅助电源3230可被设置在主板中,并且可向SSD 3200供应辅助电力。
缓冲存储器3240可服务SSD 3200。例如,缓冲存储器3240可临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可被实施为诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的各种易失性存储器中的任意一种或诸如FRAM、ReRAM、STT-MRAM和PRAM的各种非易失性存储器中的任意一种。
图19是示出根据本公开的实施例的应用存储装置的用户系统的框图。
参照图19,用户系统4000可包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可运行包括在用户系统4000中的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可包括用于控制包括在用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可被设置为片上系统(SoC)。
存储器模块4200可用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可被实施为诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM和LPDDR3 SDRAM的各种易失性RAM中的任意一种,或者被实施为诸如PRAM、ReRAM、MRAM和FRAM的各种非易失性RAM中的任意一种。在实施例中,应用处理器4100和存储器模块4200可基于堆叠封装(POP)被封装到单个半导体封装中。
网络模块4300可与外部装置通信。例如,网络模块4300可支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi通信的无线通信。在实施例中,网络模块4300可包括在应用处理器4100中。
存储模块4400可存储数据。例如,存储模块4400可存储从应用处理器4100接收的数据。可选地,存储模块4400可将存储在存储模块4400中的数据传输到应用处理器4100。在实施例中,存储模块4400可被实施为诸如以下的非易失性半导体存储器装置:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可被设置为可移动存储介质(即,可移动驱动器),诸如用户系统4000的存储卡或外部驱动器。
在实施例中,存储模块4400可包括多个非易失性存储器装置,每个非易失性存储器装置可以与上面参照图1描述的存储器装置100相同的方式操作。存储模块4400可以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可包括将数据或指令输入到应用处理器4100或将数据输出到外部装置的接口。在实施例中,用户接口4500可包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500可进一步包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器。
根据本公开的实施例,提供了一种存储装置及操作该存储装置的方法,该存储装置提供针对用户工作环境进行优化的固件。
虽然已经公开了本公开的各个实施例,但本领域的技术人员鉴于本公开将理解的是,在不脱离本发明的范围和精神的情况下,可进行各种修改、添加和替换。因此,本发明的范围由所附权利要求及其等同方案来限定,而非由之前的描述来限定。
在上述实施例中,在一些情况下,可选择性地执行或跳过一个或多个步骤。另外,可不总是按照给定的顺序来顺序地执行步骤,并且可随机执行步骤。此外,本文公开的实施例旨在帮助本领域的普通技术人员更清楚地理解本发明,而不是旨在限制本发明的范围。换言之,本公开所属领域的普通技术人员将能够容易地理解,基于本公开的技术范围,可以进行各种修改。
已经参照附图描述了本公开的实施例,并且在说明书中使用的特定术语或词语应当根据本发明的精神来解释,而不限制本发明的主题。应当理解的是,本文描述的基本发明构思的许多变化和修改仍将落入如所附权利要求及其等同方案中限定的本发明的精神和范围内。
Claims (19)
1.一种存储器控制器,所述存储器控制器控制包括多个存储器单元的存储器装置,所述存储器控制器包括:
工作负载确定电路,当对所述存储器单元执行的读取操作失败时,基于用于读取所述多个存储器单元的最佳读取电压来确定指示所述存储器装置的操作模式的工作负载状态;以及
操作环境设置电路,基于所述工作负载状态来设置所述存储器装置的操作环境,
其中所述操作环境设置电路基于所述工作负载状态来调整读取缓冲器的数量和写入缓冲器的数量。
2.根据权利要求1所述的存储器控制器,其中所述工作负载状态指示在所述操作模式中是否执行比在默认操作模式中更多的读取操作。
3.根据权利要求2所述的存储器控制器,其中所述工作负载确定电路基于偏移量来确定所述工作负载状态,所述偏移量是默认读取电压和基于所述默认读取电压所确定的所述最佳读取电压之间的差值。
4.根据权利要求3所述的存储器控制器,其中所述工作负载确定电路包括:
工作负载表,存储工作负载参考信息,所述工作负载参考信息指示分别对应于多个参考间隔的多个工作负载状态;
工作负载状态确定电路,基于所述多个参考间隔之中的选择参考间隔来确定多个样本工作负载状态;
状态信息存储装置,存储指示所述多个样本工作负载状态的工作负载状态信息;以及
状态信息计数器,对所述多个样本工作负载状态进行计数以生成计数数量。
5.根据权利要求4所述的存储器控制器,其中所述状态信息计数器在所述计数数量等于或大于参考数量时生成状态输出信号。
6.根据权利要求5所述的存储器控制器,
其中所述工作负载状态确定电路响应于所述状态输出信号来确定最终工作负载状态,并将所述工作负载状态提供到所述操作环境设置电路,并且
其中所述最终工作负载状态是所述多个样本工作负载状态之中对应于具有最大偏移量的参考间隔的样本工作负载状态。
7.根据权利要求2所述的存储器控制器,进一步包括:
缓冲器组,包括多个读取缓冲器和多个写入缓冲器;以及
命令队列,使命令排队并将所述命令输出到所述存储器装置。
8.根据权利要求7所述的存储器控制器,其中所述操作环境设置电路包括:
操作环境设置表,存储关于读取缓冲器的数量或写入缓冲器的数量的调整的缓冲器控制信息,并且存储指示在所述命令队列中排队的所述命令的排队顺序的命令队列控制信息;
缓冲器控制器,基于所述缓冲器控制信息和最终工作负载状态来调整所述读取缓冲器的数量或所述写入缓冲器的数量;以及
命令队列控制器,基于所述命令队列控制信息和所述最终工作负载状态来调整所述排队顺序。
9.根据权利要求8所述的存储器控制器,其中所述命令队列控制器调整所述排队顺序,使得所述命令中的至少一个读取命令先于最初早于所述至少一个读取命令排队的写入命令输出到所述存储器装置。
10.一种操作存储器控制器的方法,所述存储器控制器控制包括多个存储器单元的存储器装置,所述方法包括:
当对所述存储器单元执行的读取操作失败时,设置用于读取所述多个存储器单元的最佳读取电压;
基于所述最佳读取电压来确定指示所述存储器装置的操作模式的工作负载状态;并且
基于所述工作负载状态来设置所述存储器装置的操作环境,
其中设置所述存储器装置的操作环境包括基于所述工作负载状态来调整读取缓冲器的数量和写入缓冲器的数量。
11.根据权利要求10所述的方法,其中所述工作负载状态指示在所述操作模式中是否执行比在默认操作模式中更多的读取操作。
12.根据权利要求11所述的方法,其中确定所述工作负载状态包括基于偏移量来确定所述工作负载状态,所述偏移量是默认读取电压和基于所述默认读取电压所确定的所述最佳读取电压之间的差值。
13.根据权利要求11所述的方法,其中调整所述读取缓冲器的数量和所述写入缓冲器的数量包括增加所述读取缓冲器的数量和减少所述写入缓冲器的数量。
14.根据权利要求13所述的方法,进一步包括在所述写入缓冲器的数量达到写入缓冲器的阈值数量时,调整命令队列中命令的排队顺序。
15.一种存储装置,包括:
存储器装置,包括多个存储器单元并对所述多个存储器单元执行读取操作;以及
存储器控制器,当所述读取操作失败时,基于用于读取所述多个存储器单元的最佳读取电压来确定指示所述存储器装置的操作模式的工作负载状态,并且基于所述工作负载状态来设置所述存储器装置的操作环境,
其中所述存储器控制器基于所述工作负载状态来调整读取缓冲器的数量和写入缓冲器的数量。
16.根据权利要求15所述的存储装置,其中所述工作负载状态指示在所述操作模式中是否执行比在默认操作模式中更多的读取操作。
17.根据权利要求16所述的存储装置,其中所述存储器控制器基于偏移量来确定所述工作负载状态,所述偏移量是默认读取电压和基于所述默认读取电压所确定的所述最佳读取电压之间的差值。
18.根据权利要求17所述的存储装置,其中所述存储器控制器进一步基于所述工作负载状态来调整命令队列中命令的排队顺序。
19.一种存储装置,包括:
存储器装置,利用参考读取电压来执行读取操作;以及
存储器控制器,包括多个缓冲器和命令队列,并且当在设定时段期间执行所述读取操作多于设定次数时,基于默认参考读取电压与最后参考读取电压之间的差值来执行第一操作和第二操作中的至少一个,
其中所述第一操作是调整将所述缓冲器分配为读取缓冲器和写入缓冲器的操作,
其中所述第二操作是调整在所述命令队列中排队的命令的顺序以使所排队的命令之中的读取命令优先的操作,并且
其中所述最后参考读取电压用于最后执行的读取操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0159496 | 2018-12-11 | ||
KR1020180159496A KR102653661B1 (ko) | 2018-12-11 | 2018-12-11 | 저장 장치 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309654A CN111309654A (zh) | 2020-06-19 |
CN111309654B true CN111309654B (zh) | 2023-08-01 |
Family
ID=70971823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910893831.9A Active CN111309654B (zh) | 2018-12-11 | 2019-09-20 | 存储装置及操作存储装置的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11204698B2 (zh) |
KR (1) | KR102653661B1 (zh) |
CN (1) | CN111309654B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021086583A (ja) * | 2019-11-29 | 2021-06-03 | キヤノン株式会社 | 情報処理装置、制御装置および制御装置の制御方法 |
US11726704B2 (en) * | 2020-03-31 | 2023-08-15 | Kioxia Corporation | Buffer optimization for solid-state drives |
US12086455B2 (en) * | 2020-10-08 | 2024-09-10 | Seagate Technology Llc | Data storage system with workload-based asymmetry compensation |
CN114093408A (zh) * | 2020-10-20 | 2022-02-25 | 长江存储科技有限责任公司 | 存储器的读取方法以及电压补偿装置 |
KR20230063508A (ko) | 2021-11-02 | 2023-05-09 | 삼성전자주식회사 | 멀티 테넌시를 지원하는 스토리지 장치 및 이의 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101740128A (zh) * | 2008-11-10 | 2010-06-16 | 三星电子株式会社 | 非易失性存储设备、存储卡和系统、及确定读电压的方法 |
CN102027455A (zh) * | 2008-05-13 | 2011-04-20 | 拉姆伯斯公司 | 用于存储器器件的分式编程命令 |
CN102376368A (zh) * | 2010-07-07 | 2012-03-14 | 马维尔国际贸易有限公司 | 对快闪存储器系统中递进读取的最优参考电压的确定 |
US9653157B1 (en) * | 2015-12-02 | 2017-05-16 | SK Hynix Inc. | Memory system and operating method thereof |
CN108573722A (zh) * | 2017-03-13 | 2018-09-25 | 三星电子株式会社 | 操作非易失性存储器件的方法和非易失性存储器件 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008225894A (ja) | 2007-03-13 | 2008-09-25 | Toshiba Corp | Sdramコントローラ |
KR101498669B1 (ko) | 2007-12-20 | 2015-03-19 | 삼성전자주식회사 | 반도체 메모리 시스템 및 그것의 액세스 방법 |
KR101434404B1 (ko) | 2008-07-30 | 2014-08-29 | 삼성전자주식회사 | 파라미터를 추출하는 불휘발성 메모리 장치 및 그것을포함하는 불휘발성 메모리 시스템 |
KR101826140B1 (ko) * | 2011-08-04 | 2018-03-22 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템 |
KR20130110970A (ko) * | 2012-03-30 | 2013-10-10 | 에스케이하이닉스 주식회사 | 리드 전압 생성회로, 이를 포함하는 메모리 및 메모리 시스템 |
KR102114234B1 (ko) * | 2013-10-22 | 2020-05-25 | 에스케이하이닉스 주식회사 | 데이터 저장 시스템 및 그것의 동작 방법 |
KR101699377B1 (ko) * | 2014-07-02 | 2017-01-26 | 삼성전자주식회사 | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR20160143371A (ko) * | 2015-06-05 | 2016-12-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
KR102420588B1 (ko) * | 2015-12-04 | 2022-07-13 | 삼성전자주식회사 | 비휘발성 메모리 장치, 메모리 시스템, 비휘발성 메모리 장치의 동작 방법 및 메모리 시스템의 동작 방법 |
JP2019164850A (ja) * | 2018-03-19 | 2019-09-26 | 東芝メモリ株式会社 | メモリシステム |
-
2018
- 2018-12-11 KR KR1020180159496A patent/KR102653661B1/ko active IP Right Grant
-
2019
- 2019-08-15 US US16/541,741 patent/US11204698B2/en active Active
- 2019-09-20 CN CN201910893831.9A patent/CN111309654B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102027455A (zh) * | 2008-05-13 | 2011-04-20 | 拉姆伯斯公司 | 用于存储器器件的分式编程命令 |
CN101740128A (zh) * | 2008-11-10 | 2010-06-16 | 三星电子株式会社 | 非易失性存储设备、存储卡和系统、及确定读电压的方法 |
CN102376368A (zh) * | 2010-07-07 | 2012-03-14 | 马维尔国际贸易有限公司 | 对快闪存储器系统中递进读取的最优参考电压的确定 |
US9653157B1 (en) * | 2015-12-02 | 2017-05-16 | SK Hynix Inc. | Memory system and operating method thereof |
CN108573722A (zh) * | 2017-03-13 | 2018-09-25 | 三星电子株式会社 | 操作非易失性存储器件的方法和非易失性存储器件 |
Also Published As
Publication number | Publication date |
---|---|
KR20200071602A (ko) | 2020-06-19 |
KR102653661B1 (ko) | 2024-04-03 |
US11204698B2 (en) | 2021-12-21 |
US20200183592A1 (en) | 2020-06-11 |
CN111309654A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309654B (zh) | 存储装置及操作存储装置的方法 | |
CN107179996B (zh) | 数据存储装置和其操作方法 | |
US8843697B2 (en) | Operating method of data storage device | |
CN111752857B (zh) | 存储器控制器及操作存储器控制器的方法 | |
US8812775B2 (en) | System and method for controlling nonvolatile memory | |
US11307803B2 (en) | Storage device for suspending program operation and performing read operation and operating method thereof | |
US9977735B2 (en) | Data storage device and operating method thereof | |
US20190324903A1 (en) | Storage cache management | |
CN111208937B (zh) | 存储器控制器及其操作方法 | |
US20220057938A1 (en) | Memory controller and operating method thereof | |
TW202215228A (zh) | 儲存裝置及操作該儲存裝置的方法 | |
US11360886B2 (en) | Storage device and operating method thereof | |
KR102544162B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN111338995B (zh) | 数据存储装置及操作数据存储装置的方法 | |
US10817192B2 (en) | Data storage apparatus selecting memory block group based on interleaving index and operating method thereof | |
CN112447234B (zh) | 存储器控制器及其操作方法 | |
CN111309247B (zh) | 存储器系统及其操作方法 | |
CN111143255B (zh) | 存储装置及其操作方法 | |
KR20220130526A (ko) | 메모리 시스템 및 그 동작 방법 | |
US10657046B2 (en) | Data storage device and operating method thereof | |
KR20220077689A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN111580745A (zh) | 存储装置及操作存储装置的方法 | |
US11537514B2 (en) | Data storage device and operating method thereof | |
US20200117390A1 (en) | Data storage device and operating method thereof | |
KR20230166612A (ko) | 메모리 컨트롤러 및 그 동작 방법 |
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 |