CN111916142A - 存储器控制器以及操作存储器控制器的方法 - Google Patents

存储器控制器以及操作存储器控制器的方法 Download PDF

Info

Publication number
CN111916142A
CN111916142A CN201911296036.8A CN201911296036A CN111916142A CN 111916142 A CN111916142 A CN 111916142A CN 201911296036 A CN201911296036 A CN 201911296036A CN 111916142 A CN111916142 A CN 111916142A
Authority
CN
China
Prior art keywords
count value
error correction
power consumption
count
program
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
CN201911296036.8A
Other languages
English (en)
Other versions
CN111916142B (zh
Inventor
韩昌铉
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN111916142A publication Critical patent/CN111916142A/zh
Application granted granted Critical
Publication of CN111916142B publication Critical patent/CN111916142B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0653Monitoring storage devices or systems
    • 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/12Programming 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/30Power supply circuits
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Electrotherapy Devices (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Read Only Memory (AREA)

Abstract

本申请提供一种存储器控制器以及操作存储器控制器的方法。该存储器控制器可以包括:编程擦除计数器,被配置成对对存储器装置执行的编程和擦除操作的数量进行计数,并且然后生成当前编程/擦除计数值;错误校正计数器,被配置成对用于校正对存储器装置执行的操作中的错误的错误校正的数量进行计数,并且然后生成当前错误校正计数值;以及功耗预测器,被配置成基于当前编程/擦除计数值来预测未来编程/擦除计数值,预测包括存储器装置和存储器控制器的存储装置的未来功耗,未来功耗对应于预测编程/擦除计数值,并且将关于预测功耗的信息输出到主机。

Description

存储器控制器以及操作存储器控制器的方法
相关申请的交叉引用
本申请要求于2019年5月10日提交的申请号为10-2019-0055133的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,并且更特别地,涉及一种存储器控制器以及操作该存储器控制器的方法。
背景技术
存储装置在诸如计算机、智能电话或智能平板的主机装置的控制下存储数据。存储装置的示例包括将数据存储在磁盘中的硬盘驱动器(HDD),以及将数据存储在半导体存储器中的基于半导体的装置,诸如固态驱动器(SSD)或存储卡。
基于半导体的存储装置通常可以包括存储数据的存储器装置和控制数据在该存储器装置中的存储的存储器控制器。存储器装置可以被分类成易失性存储器和非易失性存储器。非易失性存储器的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变随机存取存储器(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)以及铁电RAM(FRAM)。
发明内容
本公开的各个实施例涉及一种预测存储装置的功耗并且将关于预测功耗的信息输出至主机的存储器控制器以及操作存储器控制器的方法。
本发明的实施例可以提供一种用于控制存储数据的存储器装置的存储器控制器。该存储器控制器可以包括:编程擦除计数器,被配置成对对存储器装置执行的编程和擦除操作的数量进行计数,并且然后生成当前编程/擦除计数值;错误校正计数器,被配置成对用于校正对存储器装置执行的操作中的错误的错误校正的数量进行计数,并且然后生成当前错误校正计数值;以及功耗预测器,被配置成基于当前编程/擦除计数值来预测未来编程/擦除计数值,预测包括存储器装置和存储器控制器的存储装置的未来功耗,未来功耗对应于预测编程/擦除计数值,并且将关于预测功耗的信息输出到主机。
本发明的实施例可以提供一种用于控制存储数据的存储器装置的存储器控制器。该存储器控制器可以包括:编程擦除计数器,被配置成对对存储器装置执行的编程和擦除操作的数量进行计数,并且然后生成当前编程/擦除计数值;错误校正计数器,被配置成对用于校正对存储器装置执行的操作中的错误的错误校正的数量进行计数,并且然后生成当前错误校正计数值;以及功耗预测器,被配置成将接收到当前编程/擦除计数值的时间点设置为参考时间点,预测包括存储器装置和存储器控制器的存储装置的未来功耗,未来功耗对应于基于参考时间点确定的预测时间点,并且将关于预测功耗的信息输出到主机。
本发明的实施例可以提供一种操作存储器控制器的方法,该存储器控制器用于控制存储数据的存储器装置。该方法可以包括:对对存储器装置执行的编程和擦除操作的数量进行计数,并且然后生成当前编程/擦除计数值;对用于校正对存储器装置执行的操作中的错误的错误校正的数量进行计数,并且然后生成当前错误校正计数值;基于当前编程/擦除计数值和当前错误校正计数值预测包括存储器装置和存储器控制器的存储装置的未来功耗;并且将关于预测功耗的信息输出到主机。
本发明的实施例可以提供一种操作存储器控制器的方法,该存储器控制器用于控制存储数据的存储器装置。该方法可以包括:将参考表存储在控制器中,参考表具有编程/擦除(PE)计数条目,每个PE计数条目包括关于相应PE计数的错误校正(ECC)计数和功耗(PC)的字段;并且向主机提供在大于与当前测量的ECC计数相对应的PC的值的PC的值之中被选择为预测PC的PC的值,其中PE计数是对存储器装置的存储器单元执行PE操作的次数,其中ECC计数是对存储器装置中存储的数据执行的错误校正操作的平均次数,并且其中PC是由控制器和存储器装置关于错误校正操作所消耗的功率量。
从结合以下参考的下列详细描述中,本发明的这些和其它优点和特征对于本发明所属领域的技术人员将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储装置的框图。
图2是描述存储装置的功耗的示图。
图3是示出根据本发明的实施例的图1的存储器控制器的配置的示图。
图4是描述与编程/擦除计数值相对应的错误校正计数值的示图。
图5是示出参考表的示例的示图。
图6是示出参考表的示例的示图。
图7是描述根据存储装置的性能确定的错误校正计数值的示图。
图8A和图8B是示出基于参考表生成的调整表的示例的示图。
图9A和图9B是示出基于参考表生成的调整表的示例的示图。
图10是示出根据本发明的实施例的图1的存储器装置的结构的框图。
图11是示出图10的存储器单元阵列的实施例的示图。
图12是示出根据本发明的实施例的图11的存储块BLKa的电路图。
图13是示出根据本发明的实施例的图11的存储块BLK1至BLKz的存储块BLKb的电路图。
图14是根据本发明的实施例的存储器控制器的操作的流程图。
图15是根据本发明的实施例的存储器控制器的操作的流程图。
图16是根据本发明的实施例的存储器控制器的操作的流程图。
图17是示出根据本发明的实施例的图1的存储器控制器的实施例的示图。
图18是示出应用根据本发明的实施例的存储装置的存储卡系统的框图。
图19是示出应用根据本发明的实施例的存储装置的固态驱动器(SSD)系统的示例的框图。
图20是示出应用根据本发明的实施例的存储装置的用户系统的框图。
具体实施方式
本说明书或申请中引入的本公开的实施例中的具体结构或功能描述仅用于描述本公开的实施例。该描述不应被解释为限于本说明书或申请中描述的实施例。
现在将基于实施例详细描述本公开。然而,本公开可以以许多不同的形式实施,并且不应该被解释为仅限于本文阐述的实施例,而是应该被解释为涵盖落入本公开的构思和技术范围内的修改方案、等同方案或替换方案。然而,这并不旨在将本公开限制为特定实践模式,并且将理解的是,不脱离本公开的精神和技术范围的所有改变方案、等同方案和替代方案都被涵盖在本公开中。
将理解的是,虽然可在本文中使用术语“第一”和/或“第二”以描述各个元件,但是这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一个元件区分开。例如,在不脱离本公开的教导的情况下,以下讨论的第一元件可以称为第二元件。类似地,第二元件也可称为第一元件。
将理解的是,当元件被称为“联接”或“连接”到另一元件时,它可直接联接或连接到其它元件,或者在该元件和其它元件之间可存在中间元件。相反,应理解的是,当元件被称为“直接联接”或“直接连接”到另一元件时,不存在中间元件。应以相同的方式来解释描述元件之间的关系的其它表达,诸如“在……之间”、“直接在......之间”、“与……相邻”或“与……直接相邻”。
本文使用的术语仅用于描述特定实施例的目的,而不旨在限制。在本公开中,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。将进一步理解的是,当在本说明书中使用时,术语“包括”、“包含”、“具有”等指定所陈述特征、整数、步骤、操作、元件、组件和/或其组合的存在,但并不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
除非另外定义,否则本文使用的包括技术和科学术语的所有术语具有与本公开所属领域的普通技术人员通常理解的相同的含义。将进一步理解的是,本文使用的术语应被理解为具有与它们在本说明书的上下文和相关领域中的含义一致的含义并且将不以理想化或过于形式化的意义来解释,除非本文明确地如此限定。
将省略对本领域技术人员公知的功能和结构的详细描述,以避免模糊本公开的主题。这旨在省略不必要的描述以使本公开的主题清楚。
现在将在下文中参照附图更充分地描述本公开的各个实施例,使得本领域的普通技术人员可以容易地实现本公开的技术构思。
图1是示出根据本发明的实施例的存储装置50的框图。
参照图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)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡和记忆棒。
存储装置50可以以各种类型的封装形式中的任意一种来制造。例如,存储装置50可以被制造为诸如下列的各种类型的封装形式中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
存储器控制器200可以控制存储装置50的全部操作。
当电力被供应至存储装置50时,存储器控制器200可以运行固件(FW)。当存储器装置100是闪速存储器装置时,存储器控制器200可以运行诸如闪存转换层(FTL)的固件以控制主机300和存储器装置100之间的通信。
存储器控制器200可以包括编程擦除计数器210。编程擦除计数器210可以对对存储器装置执行的编程和擦除操作的数量进行计数。编程擦除计数器210可以对编程和擦除操作的数量进行计数,并且然后生成并存储编程/擦除计数值PE_COUNT。编程擦除计数器210可以将编程/擦除计数值PE_COUNT输出到功耗预测器240。
当存储器装置中包括的存储器单元被编程并且然后被擦除时,编程擦除计数器210可以生成编程/擦除计数值PE_COUNT。也就是说,当在已经对存储器装置执行编程操作之后完成擦除操作时,编程擦除计数器210可以对编程和擦除操作的数量进行计数。
在实施例中,编程擦除计数器210可以对对存储器装置100中包括的多个存储器单元中的每一个执行编程操作和擦除操作的次数进行计数。可选地,编程擦除计数器210可以对对存储器装置100中包括的多个存储块中的每一个执行编程操作和擦除操作的次数进行计数。针对多个存储块中的每一个计数的编程/擦除计数值PE_COUNT可以是多个存储块中的每一个中包括的存储器单元的编程/擦除计数值PE_COUNT的平均值。在实施例中,编程擦除计数器210可以将对对存储器装置中包括的所有存储器单元执行的编程操作和擦除操作的数量的平均值确定为编程/擦除计数值PE_COUNT。
存储器控制器200可以包括错误校正器220。错误校正器220可以校正对存储器装置100执行的每个操作中的错误。例如,当存储器装置100执行操作时,编程操作或读取操作可能由于存储器单元的劣化等而失败。错误校正器220可以执行用于校正失败操作的错误校正操作。
在实施例中,错误校正器220可以输出指示已校正错误的错误校正信息ECC_INF。错误校正信息ECC_INF指示直到对存储器装置100执行的操作完成为止校正错误的次数(即,错误校正操作的数量)。每当对存储器装置100执行的操作完成时,错误校正器220可以输出错误校正信息ECC_INF。因此,为了完成对存储器装置100执行的一个操作而执行的错误校正的数量可以包括在错误校正信息ECC_INF中。
在实施例中,错误校正器220可以将错误校正信息ECC_INF输出到错误校正计数器230。错误校正计数器230可以接收错误校正信息ECC_INF,并且然后对错误校正的数量进行计数。
存储器控制器200可以包括错误校正计数器230。错误校正计数器230可以对用于校正对存储器装置100执行的每个操作中的错误的错误校正的数量进行计数。错误校正计数器230可以生成并存储其中对错误校正的数量进行计数的错误校正计数值ECC_COUNT。错误校正计数器230可以将错误校正计数值ECC_COUNT输出到功耗预测器240。
例如,错误校正计数器230可以从错误校正器220接收错误校正信息ECC_INF。错误校正计数器230可以基于错误校正信息ECC_INF对错误校正的数量进行计数,并且然后生成错误校正计数值ECC_COUNT。
在实施例中,错误校正计数器230可以对执行的错误校正的数量进行计数直到对存储器装置100执行的操作完成为止。也就是说,由于每当对存储器装置100执行的操作中的错误被校正或每当对存储器装置100执行的操作完成时,错误校正器220输出错误校正信息ECC_INF,因此错误校正计数器230可以接收错误校正信息ECC_INF,并且然后生成错误校正计数值ECC_COUNT。可以累加地生成错误校正计数值ECC_COUNT。
存储器控制器200可以包括功耗预测器240。功耗预测器240可以接收功耗预测请求PCP_REQ。功耗预测请求PCP_REQ可以是用于预测将由存储装置消耗的功率量的请求。
功耗预测器240可以在从主机接收到功耗预测请求PCP_REQ时或者响应于在存储器控制器200中提供的内部请求来预测将由存储装置消耗的功率量(功耗)。功耗预测器240可以通过预测待由存储装置消耗的功率量(即,功耗),将关于预测功耗PRE_PC的信息输出到主机300。功耗预测器240可以将关于存储装置的当前功耗的信息和预测功耗PRE_PC一起输出到主机300。也就是说,功耗预测器240可以基于存储装置的当前功耗来预测将由存储装置消耗的功率量(即,功耗),并且可以将关于预测功耗的信息输出到主机。存储装置的当前功耗可以基于从错误校正计数器230输出的错误校正计数值ECC_COUNT来确定。
例如,功耗预测器240可以从编程擦除计数器210接收当前编程/擦除计数值PE_COUNT。而且,功耗预测器240可以从错误校正计数器230接收当前错误校正计数值ECC_COUNT。基于编程/擦除计数值PE_COUNT和错误校正计数值ECC_COUNT,功耗预测器240可以预测未来功耗,未来功耗即为将由包括存储器装置100和存储器控制器200的存储装置50消耗的功率量。
在实施例中,功耗预测器240可以基于编程/擦除计数值PE_COUNT预测未来编程/擦除计数值PE_COUNT,并且可以预测包括存储器装置100和存储器控制器200的存储装置50的未来功耗,该未来功耗对应于预测编程/擦除计数值PE_COUNT。可选地,功耗预测器240可以将接收到当前编程/擦除计数值PE_COUNT的时间点设置为参考时间点,并且可以预测包括存储器装置和存储器控制器的存储装置的未来功耗,该未来功耗对应于基于参考时间点确定的预测时间点。
预测功耗PRE_PC可以是在存储装置50从主机300接收到功耗预测请求PCP_REQ或者从存储器控制器200内部接收到功耗预测请求PCP_REQ之后存储装置50的未来功耗。自从从主机300接收到功耗预测请求PCP_REQ以来经过的时间可以是预测时间点。
功耗预测器240可以将与预测时间点相对应的存储装置50的预测功耗PRE_PC输出到主机300。
功耗预测器240可以存储关于存储装置50的电力被接通的时间的信息,以便确定预测时间点。功耗预测器240可以将在存储装置50的电力被接通之后从编程擦除计数器210接收到当前编程/擦除计数值PE_COUNT的时间点设置为参考时间点,以便预测功耗。功耗预测器240可以将从参考时间点起经过的时间点设置为预测时间点。
存储器装置100可以存储数据。存储器装置100响应于存储器控制器200的控制进行操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元。单个存储块可以包括多个页面。在实施例中,页面可以是将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。存储块可以是擦除数据的单位。
在实施例中,存储器装置100可以采取诸如以下的许多可选形式:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率第四代(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可以被实施为三维(3D)阵列结构。本公开不仅可以应用于电荷存储层由导电浮栅(FG)形成的闪速存储器装置100,而且还可以应用于电荷存储层由绝缘层形成的电荷撷取闪存(CTF)存储器装置。
在实施例中,存储器装置100中包括的存储器单元中的每一个可以被实施为存储一个数据位的单层单元(SLC)。可选地,存储器装置100中包括的存储器单元中的每一个可以被实施为存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
存储器装置100可以从存储器控制器200接收命令和地址,并且可以访问由地址选择的存储器单元阵列的区域。也就是说,存储器装置100对由地址选择的区域执行与命令相对应的操作。例如,存储器装置100可以执行写入操作(即编程操作)、读取操作以及擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以擦除由地址选择的区域中存储的数据。
存储器装置100可以在存储器控制器200的控制下使用设置操作电压执行编程操作或擦除操作。
在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且可以将逻辑块地址(LBA)转换为物理块地址(PBA),该物理块地址指示包括在存储器装置100中并且将存储数据的存储器单元的地址。此外,存储器控制器200可以将建立逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系的映射信息存储在缓冲存储器中。
存储器控制器200可以控制存储器装置100使得响应于从主机300接收的请求执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将编程命令、物理块地址(PBA)和数据提供至存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和物理块地址(PBA)提供至存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和物理块地址(PBA)提供至存储器装置100。
在实施例中,存储器控制器200可以在没有从主机300接收请求的情况下自主地生成编程命令、地址和数据,并且可以将生成的编程命令、地址和数据传送至存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供至存储器装置100,以便执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以使用交错方案控制存储器装置100,以提高操作性能。
主机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,图2的横轴指示自存储装置的电力被接通以来经过的时间。图2的纵轴指示由存储装置消耗的功率量(即,功耗)。在实施例中,图2的纵轴上的功耗可以是流经存储器装置的电流量。因此,在图2中,纵轴的单位可以是“mW”或“mA”。
可以确定指示由存储装置消耗的功率量的功耗,使得功耗的情况被划分为存储器控制器执行错误校正操作的情况和存储器控制器不执行错误校正操作的情况。当存储器控制器不执行错误校正操作时,可以使存储装置的功耗在预定范围内。
在实施例中,当存储器控制器不执行错误校正操作时,存储装置的功耗可以落在从100至150的范围内。由存储装置消耗的功率量可以平均为100,但是当在特定时间内执行大量操作时,由存储装置消耗的功率量可能会超过100。然而,当存储器控制器不执行错误校正操作时,功耗可能不会超过150。因此,存储装置可能会在预定范围,即从100至150的范围内消耗功率,从而执行稳定操作。
在图2中,在除时间tx和ty之外的所有时间,存储装置的功耗都保持在范围从100至150的值,并且因此存储装置可以稳定地操作。当存储装置不执行错误校正操作时,功耗保持的范围可以是除了从100至150的范围之外的可变范围。也就是说,当存储装置不执行错误校正操作时,功耗的最大值和最小值可能会改变。
在实施例中,当存储装置执行错误校正操作时,存储装置的功耗可能超过150。也就是说,与由存储装置执行的其它操作不同,可能在错误校正操作中消耗大量功率。在错误校正操作期间,存储器控制器中包括的固件运行防御算法,从而消耗大量功率。而且,随着存储装置执行更多的错误校正操作,存储装置消耗更大量的功率。
由于存储器装置中包括的每个存储器单元的特性,随着对存储器单元执行的编程和擦除操作的数量增加,存储器单元可能会进一步劣化。可选地,随着在存储器单元中存储的位的数量更大,更多的存储器单元可能会劣化。也就是说,用于存储两个数据位的多层单元(MLC)可能比用于存储单个数据位的单层单元(SLC)更劣化。而且,用于存储三个数据位的三层单元(TLC)可能比用于存储两个数据位的多层单元(MLC)进一步劣化。
当存储器单元劣化时,存储器单元中存储的数据中的错误发生率可能增加。为了校正在存储器单元中存储的数据中的错误,存储器控制器可以运行防御算法。
在实施例中,在存储器控制器中包括的固件可以运行防御算法。防御算法的示例可以包括诸如博斯-查德胡里-霍昆格姆码(BCH码)算法和低密度奇偶校验(LDPC)码算法的错误校正算法。
随着在存储器装置中包括的存储器单元更严重地劣化,可能会更频繁地执行防御算法,即错误校正操作。当存储器控制器执行更多的错误校正操作时,存储装置的功耗可能增加。也就是说,当存储器控制器执行更多的错误校正操作时,存储装置的未来功耗可能与错误校正操作的增加数量成比例地增大。
因此,对存储器装置中包括的存储器单元执行的编程和擦除操作的数量增加,并且存储器单元劣化。随着存储器单元劣化,存储器控制器频繁运行防御算法,因此由存储器控制器执行的错误校正的数量可能增加。随着由存储器控制器执行的错误校正的数量增加,存储装置的功耗可能增加。
在图2中,时间点tx和ty可以是存储器控制器执行错误校正操作的时间点。因此,存储装置在时间点tx和ty的功耗可能大于执行其它操作时产生的功耗。因此,当存储器控制器执行错误校正操作时,存储装置的功耗可能很高。
在实施例中,由存储器控制器执行的错误校正的数量越多,存储装置的功耗越高。也就是说,随着对存储器装置中包括的存储器单元执行的编程和擦除操作的数量增加,可能消耗更多的功率。
图3是示出图1的存储器控制器的配置的示图。
参照图3,存储器控制器可以包括编程擦除计数器210、错误校正器220、错误校正计数器230和功耗预测器240。
编程擦除计数器210可以对对存储器装置执行的编程和擦除操作的数量进行计数。由编程擦除计数器210计数的值可以是编程/擦除计数值PE_COUNT。也就是说,编程擦除计数器210可以通过对对存储器装置执行的编程和擦除操作的数量进行计数生成编程/擦除计数值PE_COUNT。
编程擦除计数器210可以存储每当对存储器装置中包括的存储器单元中的每一个执行的编程操作和擦除操作时所计数的编程/擦除计数值PE_COUNT。也就是说,每当每个存储器单元被编程和擦除时,可以累加编程/擦除计数值PE_COUNT。
例如,可以分别对存储器装置中包括的多个存储器单元进行编程或擦除。编程擦除计数器210可以将从存储器装置中包括的每个存储器单元的编程到存储器单元的擦除的单个时段计数为“1”。也就是说,当存储器装置中包括的多个存储器单元中的任意一个被编程并且然后被擦除时,编程擦除计数器210可以将编程/擦除计数值PE_COUNT增加“1”。此后,当相同的存储器单元再次被编程并且然后被擦除时,编程擦除计数器210可以将编程/擦除计数值PE_COUNT增加到“2”,依此类推。
因此,编程擦除计数器210可以对对存储器单元执行的编程和擦除操作的数量进行累加并计数。针对每个存储器单元累加的编程/擦除计数值PE_COUNT可以存储在编程擦除计数器210中。当功耗预测器240从主机接收到功耗预测请求PCP_REQ,或者当从存储器控制器200的内部接收到功耗预测请求PCP_REQ时,存储的编程/擦除计数值PE_COUNT可以作为当前编程/擦除计数值PE_COUNT而被输出到功耗预测器240。
在实施例中,编程擦除计数器210可以对对存储器装置中包括的多个存储器单元中的每一个执行的编程和擦除操作的数量进行计数。编程擦除计数器210可以存储针对存储器装置中包括的多个存储器单元中的每一个所计数的编程/擦除计数值PE_COUNT。编程/擦除计数值PE_COUNT可以是存储器装置中包括的多个存储器单元之中的任意一个的平均编程/擦除计数值。或者,编程/擦除计数值PE_COUNT可以是存储器装置中包括的多个存储器单元的平均编程/擦除计数值。在另一实施例中,编程/擦除计数值PE_COUNT可以是存储器装置中包括的多个存储器单元的最大编程/擦除计数值和最小编程/擦除计数值的平均值。
在实施例中,编程擦除计数器210可以对对存储器装置中包括的多个存储块中的每一个执行的编程和擦除操作的数量进行计数。针对多个存储块中的每一个计算的编程/擦除计数值PE_COUNT可以是多个存储块中的每一个中包括的多个存储器单元的编程/擦除计数值PE_COUNT的平均值。针对每个存储块累加的编程/擦除计数值PE_COUNT可以存储在编程擦除计数器210中。
在实施例中,编程擦除计数器210可以将通过对存储器装置中包括的多个存储器单元的各个编程/擦除计数值求和并且将该和除以存储器单元的数量而获得的平均值确定为编程/擦除计数值PE_COUNT。通过对存储器装置中包括的多个存储器单元的编程和擦除计数值的数量求和并且将该和除以存储器单元的数量而获得的平均值可以存储在编程擦除计数器210中。
错误校正器220可以校正对存储器装置执行的每个操作中的错误。对存储器装置执行的操作可以是编程(写入)操作、读取操作或擦除操作。特别地,当存储器装置执行读取操作时,从存储器装置读取的数据可能是错误数据。也就是说,在存储器装置中存储的数据和读取数据可能不匹配。当在存储器装置中存储的数据与读取数据不匹配时,错误校正器220可以运行用于校正错误的错误校正算法。错误校正算法可以包括错误校正码。在实施例中,错误校正算法的示例可以包括博斯-查德胡里-霍昆格姆码(BCH码)算法和低密度奇偶校验(LDPC)码算法。错误校正算法可以包括除了以上示例之外的各种算法。
错误校正器220可以将错误校正信息ECC_INF输出到错误校正计数器230。错误校正信息ECC_INF可以包括指示已校正错误的信息。例如,当对存储装置执行的操作失败时,错误校正器220可以完成错误校正操作,然后输出指示已校正相应错误的错误校正信息ECC_INF。错误校正信息ECC_INF可以包括关于对存储器装置执行的每个操作的信息以及指示直到对存储器装置执行的操作完成之前校正错误的次数(即,错误校正的数量)的信息。
在实施例中,当对存储器装置执行的操作完成时,错误校正器220可以将错误校正信息ECC_INF输出到错误校正计数器230。也就是说,为了完成对存储器装置100执行的一个操作而校正错误的次数可以包括在错误校正信息ECC_INF中。
特别地,当对存储器装置执行的编程和擦除操作的数量变多时,错误校正器220校正错误的次数可能更大。而且,当对存储器装置执行读取操作时,错误校正器220校正错误的次数可以变得比在执行其它操作时发生的更多。
错误校正计数器230可以对用于校正对存储器装置执行的每个操作中的错误的错误校正的数量进行计数。由错误校正计数器230计数的值可以是错误校正计数值ECC_COUNT。
例如,错误校正计数器230可以从错误校正器220接收错误校正信息ECC_INF,然后可以对错误校正的数量进行计数。也就是说,错误校正计数器230可以接收错误校正信息ECC_INF,然后生成错误校正计数值ECC_COUNT。错误校正计数器230可以存储所生成的错误校正计数值ECC_COUNT。当功耗预测器240从主机接收到功耗预测请求PCP_REQ,或者当从存储器控制器200的内部接收到功耗预测请求PCP_REQ时,存储的错误校正计数值ECC_COUNT可以作为当前错误校正计数值ECC_COUNT被输出到功耗预测器240。
在实施例中,由于错误校正信息ECC_INF包括直到对存储器装置执行的操作完成为止错误校正发生的数量,所以错误校正信息ECC_INF可以包括针对对存储器装置执行的每个操作校正错误的次数。因此,错误校正计数器230可以接收错误校正信息ECC_INF,然后可以对错误校正的数量进行累加并计数。也就是说,可以累加错误校正信息ECC_INF中包括的错误校正的数量,然后可以生成错误校正计数值ECC_COUNT。所生成的错误校正计数值ECC_COUNT可以存储在错误校正计数器230中。
功耗预测器240可以根据预测时间点预测存储装置的未来功耗。预测时间点可以是从编程擦除计数器210接收到当前编程/擦除计数值PE_COUNT的参考时间点起经过的时间点。
例如,当从主机接收到功耗预测请求PCP_REQ,或者当从存储器控制器200的内部接收到功耗预测请求PCP_REQ时,功耗预测器240可以预测存储装置的未来功耗。功耗预测请求PCP_REQ可以是用于输出预测功耗PRE_PC的请求,预测功耗PRE_PC是根据预测时间点对存储装置的未来功耗的预测值。
当从主机接收到功耗预测请求PCP_REQ,或者当从存储器控制器200的内部接收到功耗预测请求PCP_REQ时,功耗预测器240可以从编程擦除计数器210接收当前编程/擦除计数值PE_COUNT。而且,功耗预测器240可以从错误校正计数器230接收当前错误校正计数值ECC_COUNT。
功耗预测器240可以基于当前编程/擦除计数值PE_COUNT和当前错误校正计数值ECC_COUNT预测存储装置的未来功耗。功耗预测器240可以基于参考表预测存储装置的未来功耗。参考表可以包括分别与多个编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT和预期功耗值。在存储装置的初始化步骤中,参考表可以存储在功耗预测器240中。以下将参照图5详细描述参考表。
在实施例中,功耗预测器240可以基于当前编程/擦除计数值PE_COUNT预测未来编程/擦除计数值PE_COUNT,并且可以预测包括存储器装置100和存储器控制器200的存储装置50的未来功耗,该未来功耗对应于预测编程/擦除计数值PE_COUNT。可选地,功耗预测器240可以将接收到编程/擦除计数值PE_COUNT的时间点设置为参考时间点,并且可以预测包括存储器装置和存储器控制器的存储装置的未来功耗,该未来功耗对应于基于参考时间点确定的预测时间点。
功耗预测器240可以将接收到当前编程/擦除计数值PE_COUNT的时间点设置为参考时间点。功耗预测器240可以预测与预测时间点相对应的未来功耗,该预测时间点是从参考时间点起经过的时间点。也就是说,功耗预测器240可以基于参考表中包括的分别与多个编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT和预期功耗值,预测在参考时间点之后的未来编程/擦除计数值PE_COUNT。
此后,功耗预测器240可以将参考表内的与预测编程/擦除计数值PE_COUNT相对应的预期功耗确定为与预测时间点相对应的预测功耗PRE_PC。也就是说,功耗预测器240可以基于存储装置的当前功耗预测将由存储装置随后消耗的未来功耗,并且可以将关于预测功耗的信息输出到主机。
功耗预测器240可以接收当前编程/擦除计数值PE_COUNT,然后将当前编程/擦除计数值PE_COUNT设置为与参考时间点相对应的参考编程/擦除计数值PE_COUNT。参考时间点之后的编程/擦除计数值PE_COUNT大于参考编程/擦除计数值PE_COUNT。因此,功耗预测器240可以将关于预期功耗的信息作为预测功耗PRE_PC和预测时间点一起输出,其中预期功耗与大于参考编程/擦除计数值PE_COUNT的至少一个编程/擦除计数值PE_COUNT相对应。
功耗预测器240可以响应于功耗预测请求PCP_REQ而输出关于预测功耗PRE_PC的信息。预测功耗PRE_PC可以是与预测时间点相对应的存储装置的未来功耗。预测功耗PRE_PC可以是与在预测时间点的预测编程/擦除计数值PE_COUNT相对应的未来功耗。功耗预测器240还可以与预测功耗PRE_PC一起输出预测错误校正计数值ECC_COUNT。
图4是描述与编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT的示图。
参照图4,图4的横轴指示编程/擦除计数值PE_COUNT。编程/擦除计数值PE_COUNT可以是通过将从存储器装置中包括的每个存储器单元的编程到存储器单元的擦除的时段计数为“1”而累加的值。图4的纵轴指示错误校正计数值ECC_COUNT。错误校正计数值ECC_COUNT可以是通过从错误校正器220接收错误校正信息ECC_INF来计数的值。也就是说,错误校正计数值ECC_COUNT可以是通过累加当存储器装置执行每个操作时执行的错误校正操作的数量而获得的值。在图4中,编程/擦除计数值PE_COUNT可以对应于各个错误校正计数值ECC_COUNT。
在图4中,随着编程/擦除计数值PE_COUNT增加,错误校正计数值ECC_COUNT也可以增加。由于存储器装置中包括的每个存储器单元的特性,随着对存储器单元执行的编程和擦除操作的数量增加,存储器单元可能进一步劣化。可选地,随着在存储器单元中存储的位的数量更大,更多的存储器单元可能会劣化。存储器单元的劣化可指对每个存储器单元执行的操作中发生错误的可能性可能增加。因此,随着编程/擦除计数值PE_COUNT增加,错误校正计数值ECC_COUNT显示增加的趋势。
图4指示与编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT的平均值。对于各个存储器装置、各个存储块或各个存储器单元,与编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT可以变化。
通常,随着编程/擦除计数值PE_COUNT增加,错误校正计数值ECC_COUNT也可能增加。而且,当编程/擦除计数值PE_COUNT小于1500时,错误校正计数值ECC_COUNT可以适度增加,但是,从编程/擦除计数值PE_COUNT达到1500的时间点起,错误校正计数值ECC_COUNT可能会更急剧增加。这表明,随着编程/擦除计数值PE_COUNT增加,由存储器单元的劣化引起的错误校正操作的数量,即由存储器控制器中的固件运行防御算法的次数增加,并且因此错误校正计数值ECC_COUNT可能急剧增加。随着错误校正计数值ECC_COUNT增加,存储装置的功耗可能增加。
因此,随着编程/擦除计数值PE_COUNT增加,错误校正计数值ECC_COUNT也可能增加。而且,随着错误校正计数值ECC_COUNT增加,存储装置的功耗可能增加。也就是说,由于编程/擦除计数值PE_COUNT与错误校正计数值ECC_COUNT成比例关系,并且错误校正计数值ECC_COUNT与存储装置的功耗成比例关系,因此编程/擦除计数值PE_COUNT和存储装置的功耗可能成比例关系。
在实施例中,当编程/擦除计数值PE_COUNT为500时,错误校正计数值ECC_COUNT可以为10。当编程/擦除计数值PE_COUNT为1000时,错误校正计数值ECC_COUNT可以为50。当编程/擦除计数值PE_COUNT为1500时,错误校正计数值ECC_COUNT可以为300。当编程/擦除计数值PE_COUNT为2000时,错误校正计数值ECC_COUNT可以为400。当编程/擦除计数值PE_COUNT为2500时,错误校正计数值ECC_COUNT可以为1000。当编程/擦除计数值PE_COUNT为3000时,错误校正计数值ECC_COUNT可以为3000。与每个编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT可以是根据相应编程/擦除计数值PE_COUNT测得的错误校正计数值ECC_COUNT的平均值。
由于错误校正计数值ECC_COUNT可以根据编程/擦除计数值PE_COUNT来确定,因此存储器控制器中包括的功耗预测器240可以预测与编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT,然后可以预测存储装置的功耗。也就是说,在已从主机接收到请求之后,功耗预测器240可以预测与在参考表内且大于当前编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT,并且可以预测与预测错误校正计数值ECC_COUNT相对应的未来功耗值。
图5是示出参考表的示例的示图。
参照图4和图5,图5是示出将图4的曲线型参考表示出为典型表格的示例的示图。在存储装置的初始化操作期间,参考表可以存储在存储器控制器200中。参考表中包括的编程/擦除计数值PE_COUNT可以包括除了图5中包括的编程/擦除计数值PE_COUNT之外的各种编程/擦除计数值PE_COUNT。
参考表的第一列指示编程/擦除计数值PE_COUNT,参考表的第二列指示与编程/擦除计数值PE_COUNT相对应的平均错误校正计数值AVECC_COUNT,并且参考表的第三列指示与平均错误校正计数值AVECC_COUNT相对应的预期功耗。参考表的第一列和第二列可以基于图4的值来配置。也就是说,参考表的第一列和第二列可以使用如图4所示的编程/擦除计数值PE_COUNT和与编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT来配置。
每个编程/擦除计数值PE_COUNT可以是通过对对存储器装置执行的编程和擦除操作的数量进行计数而获得的值。编程/擦除计数值PE_COUNT可以是通过将从存储器装置中包括的每个存储器单元的编程到存储器单元的擦除的时段计数为“1”而累加的值。图5的编程/擦除计数值PE_COUNT可以是在存储装置的电力被接通之后所累加的编程/擦除计数值PE_COUNT。也就是说,编程/擦除计数值PE_COUNT可以随着时间的推移而增加。
在实施例中,参考表可以包括图4的编程/擦除计数值PE_COUNT之中的500、1000、1500、2000、2500和3000。在实施例中,参考表中包括的编程/擦除计数值PE_COUNT可以改变。
在参考表内,平均错误校正计数值AVECC_COUNT可以是与编程/擦除计数值PE_COUNT相对应的值。平均错误校正计数值AVECC_COUNT可以是通过从多个存储器装置中的每一个中包括的错误校正器220接收错误校正信息ECC_INF而计数的值的平均值。也就是说,平均错误校正计数值AVECC_COUNT可以是通过对当存储器装置执行操作时对多个存储器装置执行的错误校正操作的数量进行累加而计数的值的平均值。
参照图4和图5,随着编程/擦除计数值PE_COUNT增加,与编程/擦除计数值PE_COUNT相对应的平均错误校正计数值AVECC_COUNT可以增加。其原因在于,由于存储器装置中包括的每个存储器单元的特性,随着对存储器单元执行的编程和擦除操作的数量增加或随着在存储器单元中存储的位的数量更大,存储器单元可能会进一步劣化。随着存储器单元劣化,在对存储器装置执行的操作中将发生错误的可能性增加,因此平均错误校正计数值AVECC_COUNT可能会随着编程/擦除计数值PE_COUNT增加而增加。
在参考表的实施例中,与在编程/擦除计数值PE_COUNT之中的500相对应的平均错误校正计数值AVECC_COUNT可以是10。与在编程/擦除计数值PE_COUNT之中的1000相对应的平均错误校正计数值AVECC_COUNT可以是50。与在编程/擦除计数值PE_COUNT之中的1500相对应的平均错误校正计数值AVECC_COUNT可以是300。与在编程/擦除计数值PE_COUNT之中的2000相对应的平均错误校正计数值AVECC_COUNT可以是400。与在编程/擦除计数值PE_COUNT之中的2500相对应的平均错误校正计数值AVECC_COUNT可以是1000。与在编程/擦除计数值PE_COUNT之中的3000相对应的平均错误校正计数值AVECC_COUNT可以是3000。
参考表的第三列可以使用与平均错误校正计数值AVECC_COUNT相对应的预期功耗值来配置。预期功耗是指当存储装置执行操作时所消耗的功率量。也就是说,预期功耗可以包括在存储器装置和存储器控制器的操作中所预期的所有功耗。
在由存储装置执行的操作之中的错误校正操作中消耗的功率量可以大于在其它操作中消耗的功率量。因此,预期功耗可以基于错误校正的数量来确定。随着编程/擦除计数值PE_COUNT增加,存储装置频繁地执行错误校正操作。因此,由于频繁执行错误校正操作,错误校正的数量增加,使得编程/擦除计数值PE_COUNT可以增加,并且因而预期功耗也可以增加。
第三列中的预期功耗可以根据平均错误校正计数值AVECC_COUNT来确定。也就是说,随着平均错误校正计数值AVECC_COUNT增加,预期功耗,也就是被预测将由存储装置消耗的功率量增加。因此,随着平均错误校正计数值AVECC_COUNT增加,预期功耗也可以增加。此外,当平均错误校正计数值AVECC_COUNT急剧增加时,预期功耗也可能会急剧增加。
在参考表的实施例中,与平均错误校正计数值AVECC_COUNT之中的10、50和300相对应的预期功耗可以是300。也就是说,当平均错误校正计数值AVECC_COUNT适度地增加时,存储装置的预期功耗可以保持在一定值。
在参考表的实施例中,与平均错误校正计数值AVECC_COUNT之中的400相对应的预期功耗可以是350。在参考表的实施例中,与平均错误校正计数值AVECC_COUNT之中的1000相对应的预期功耗可以是370。在参考表的实施例中,与平均错误校正计数值AVECC_COUNT之中的3000相对应的预期功耗可以是400。也就是说,当平均错误校正计数值AVECC_COUNT急剧增加时,预期功耗可以增加。
图6是示出参考表的示例的示图。
参照图4、图5和图6,与图5的参考表不同,图6是示出将图4的曲线型参考表示出为基于时间TIME的典型表格的示例的示图。在存储装置的初始化操作期间,参考表可以存储在存储器控制器200中。参考表中包括的时间TIME可以包括除了图6中指示的时间TIME之外的各种时间。
参考表的第一列指示时间TIME,参考表的第二列指示与时间TIME相对应的平均错误校正计数值AVECC_COUNT,并且参考表的第三列指示与平均错误校正计数值AVECC_COUNT相对应的预期功耗。参考表的第一列和第二列可以基于图4的值来配置。也就是说,参考表的第一列和第二列可以使用与编程/擦除计数值PE_COUNT相对应的时间TIME和如图4所示的、与编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT来配置。
在从主机接收到功耗预测请求PCP_REQ之后,或者当从存储器控制器200的内部接收到功耗预测请求PCP_REQ时,功耗预测器240可以从编程擦除计数器210接收当前编程/擦除计数值PE_COUNT。也就是说,功耗预测器240可以从编程擦除计数器210接收当前编程/擦除计数值PE_COUNT,以便输出与功耗预测请求PCP_REQ相对应的预测功耗PRE_PC。
当从编程擦除计数器210接收到当前编程/擦除计数值PE_COUNT时,功耗预测器240可以存储关于接收到当前编程/擦除计数值PE_COUNT的时间点的信息。接收到当前编程/擦除计数值PE_COUNT的时间点可以是参考时间点。关于参考时间点的信息可以存储在功耗预测器240中。
在实施例中,功耗预测器240可以存储关于存储装置的电力被接通的时间的信息。此后,功耗预测器240可以存储关于接收到当前编程/擦除计数值PE_COUNT的时间点的信息。接收到当前编程/擦除计数值PE_COUNT的时间点可以是参考时间点。也就是说,参考时间点可以是在存储装置的电力被接通之后功耗预测器240接收当前编程/擦除计数值PE_COUNT的时间点。因此,功耗预测器240可以计算从存储装置的电力被接通的时间点至接收到编程/擦除计数值PE_COUNT的时间点的时段,可以将计算的时间设置为参考时间点,并且可以存储关于参考时间点的信息。
参考表中的参考时间点是第一参考时间点t_ref1。也就是说,功耗预测器240接收到当前编程/擦除计数值PE_COUNT的时间可以是第一参考时间点t_ref1。因此,功耗预测器240可以将第一参考时间点t_ref1设置为参考时间点。也就是说,第一参考时间点t_ref1可以是在存储装置被导通之后功耗预测器240接收到当前编程/擦除计数值PE_COUNT的时间点。
在图6中,功耗预测器240在第一参考时间点t_ref1接收到当前编程/擦除计数值PE_COUNT“1500”。功耗预测器240可以将第一参考时间点t_ref1设置为参考时间点。也就是说,第一参考时间点t_ref1可以是在存储装置被导通之后功耗预测器240接收到当前编程/擦除计数值PE_COUNT的时间点。
在实施例中,参考表可以包括参考时间点和预测时间点。
在图6中,参考时间点可以是第一参考时间点t_ref1,并且从参考时间点预测的预测时间点可以是t_ref1-2*ta、t_ref1-ta、t_ref1+ta、t_ref1+2*ta或t_ref1+3*ta。也就是说,图4的编程/擦除计数值PE_COUNT可以对应于时间TIME,并且与时间TIME相对应的平均错误校正计数值AVECC_COUNT可以包括在参考表中。
在实施例中,各个预测时间点之间的间隔长度可以基于参考表的编程/擦除计数值PE_COUNT和当前编程/擦除计数值PE_COUNT来确定。
例如,在图6的参考表中,与第一参考时间点t_ref1相对应的参考编程/擦除计数值PE_COUNT可以是1500,并且图5的参考表内小于参考编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT可以是500和1000。因此,参考表内小于参考编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT的数量为2。
由于参考表内小于参考表中的参考编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT的数量为2,因此编程/擦除计数值PE_COUNT之间的间隔长度可以是通过将从存储装置的导通至参考时间点的持续时间除以“3”而获得的值。因此,可以确定范围从存储装置被导通的时间点到编程/擦除计数值PE_COUNT达到500的时间点的间隔长度、编程/擦除计数值PE_COUNT从500改变为1000期间的间隔长度以及编程/擦除计数值PE_COUNT从1000改变为1500期间的间隔长度。
当确定编程/擦除计数值PE_COUNT之间的间隔长度时,功耗预测器240可以确定与参考表中包括的多个编程/擦除计数值PE_COUNT相对应的预测时间点。在实施例中,编程/擦除计数值PE_COUNT之间的间隔长度可以是“ta”。
因此,与编程/擦除计数值PE_COUNT 500相对应的时间TIME可以是t_ref1-2*ta,与编程/擦除计数值PE_COUNT 1000相对应的时间TIME可以是t_ref1-ta,与编程/擦除计数值PE_COUNT 2000相对应的时间TIME可以是t_ref1+ta,与编程/擦除计数值PE_COUNT 2500相对应的时间TIME可以是t_ref1+2*ta,并且与编程/擦除计数值PE_COUNT 3000相对应的时间TIME可以是t_ref1+3*ta。也就是说,基于参考时间点,可以确定用户的使用模式,并且因此可以预测与用户随后的使用时间,也就是预测时间点相对应的功耗。
平均错误校正计数值AVECC_COUNT可以是与时间TIME相对应的值。平均错误校正计数值AVECC_COUNT可以是通过从多个存储器装置中的每一个中包括的错误校正器220接收错误校正信息ECC_INF而计数的值的平均值。也就是说,平均错误校正计数值AVECC_COUNT可以是通过对在存储器装置执行操作时对多个存储器装置执行的错误校正操作的数量进行累加而计数的值的平均值。
参照图4和图6,随着时间TIME增加,与时间TIME相对应的平均错误校正计数值AVECC_COUNT可以增加。其原因在于,由于存储器装置中包括的存储器单元的特性,存储器单元可能随着时间推移而劣化。随着存储器单元劣化,对存储器装置执行的每个操作中将发生错误的可能性增加,因此平均错误校正计数值AVECC_COUNT可以随着时间TIME的增加而增加。
在参考表的实施例中,与预测时间点之中的时间点t_ref1-2*ta相对应的平均错误校正计数值AVECC_COUNT可以为10。与预测时间点之中的时间点t_ref1-ta相对应的平均错误校正计数值AVECC_COUNT可以为50。与第一参考时间点t_ref1相对应的平均错误校正计数值AVECC_COUNT可以为300。与预测时间点之中的时间点t_ref1+ta相对应的平均错误校正计数值AVECC_COUNT可以为400。与预测时间点之中的时间点t_ref1+2*ta相对应的平均错误校正计数值AVECC_COUNT可以为1000。与预测时间点之中的时间点t_ref1+3*ta相对应的平均错误校正计数值AVECC_COUNT可以为3000。
第三列可以使用与平均错误校正计数值AVECC_COUNT相对应的预期功耗值来配置。预期功耗可以指当存储装置执行操作时预测将消耗的功率量。也就是说,预期功耗可以被确定为包括在存储器装置和存储器控制器的操作中所预期的所有功耗。
在由存储装置执行的操作之中的错误校正操作中消耗的功率量可以大于在其它操作中消耗的功率量。因此,预期功耗可以基于错误校正的数量来确定。随着电力被接通之后的时间TIME推移,存储器装置频繁地执行错误校正操作。随着频繁地执行错误校正操作,错误校正操作的数量增加,使得随着电力已接通之后的时间推移,预期功耗可以增加。
第三列中的预期功耗可以根据平均错误校正计数值AVECC_COUNT来确定。也就是说,随着平均错误校正计数值AVECC_COUNT增加,预期功耗,也就是被预测将由存储装置消耗的功率量增加。因此,随着平均错误校正计数值AVECC_COUNT增加,预期功耗也可以增加。此外,当平均错误校正计数值AVECC_COUNT急剧增加时,预期功耗也可以急剧增加。
在参考表的实施例中,与平均错误校正计数值AVECC_COUNT之中的10、50和300相对应的预期功耗可以是300。也就是说,当平均错误校正计数值AVECC_COUNT适度地增加时,存储器装置的预期功耗可以保持在一定值。
在参考表的实施例中,与平均错误校正计数值AVECC_COUNT之中的400相对应的预期功耗可以是350。在参考表的实施例中,与平均错误校正计数值AVECC_COUNT之中的1000相对应的预期功耗可以是370。在参考表的实施例中,与平均错误校正计数值AVECC_COUNT之中的3000相对应的预期功耗可以是400。也就是说,当平均错误校正计数值AVECC_COUNT急剧增加时,预期功耗可以增加。
响应于来自主机的功耗预测请求PCP_REQ或者从存储器控制器200的内部接收的功耗预测请求PCP_REQ,功耗预测器240可以输出预测功耗PRE_PC。功耗预测器240可以将预测功耗PRE_PC与预测时间点一起输出到主机。
在实施例中,当由错误校正计数器230计数的当前错误校正计数值ECC_COUNT匹配与参考表中包括的参考编程/擦除计数值PE_COUNT相对应的平均错误校正计数值AVECC_COUNT或落入在平均错误校正计数值AVECC_COUNT的一定范围内时,功耗预测器240可以基于参考表将关于预测时间点和与该预测时间点相对应的预期功耗的信息输出到主机。
功耗预测器240可以基于参考时间点将关于与至少一个预测时间点相对应的预测功耗PRE_PC的信息输出到主机。在实施例中,功耗预测器240可以将以下中的至少一个输出到主机:一对预测时间点t_ref1+ta和与预测时间点t_ref1+ta相对应的预期功耗350、一对预测时间点t_ref1+2*ta和与预测时间点t_ref1+2*ta相对应的预期功耗370以及一对预测时间点t_ref1+3*ta和与预测时间点t_ref1+3*ta相对应的预期功耗400。
图7是描述根据存储装置的性能确定的错误校正计数值ECC_COUNT的示图。
参照图4和图7,图7的横轴指示编程/擦除计数值PE_COUNT。编程/擦除计数值PE_COUNT可以是通过将从存储器装置中包括的每个存储器单元的编程到存储器单元的擦除的时段计数为“1”而累加的值。图7的纵轴指示错误校正计数值ECC_COUNT。错误校正计数值ECC_COUNT可以是通过从错误校正器220接收错误校正信息ECC_INF来计数的值。也就是说,错误校正计数值ECC_COUNT可以是通过累加当存储器装置执行每个操作时执行的错误校正操作的数量而计数的值。在图7中,编程/擦除计数值PE_COUNT可以对应于各个错误校正计数值ECC_COUNT。
在图4和图7中,分别与多个编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT可以是错误校正计数值ECC_COUNT的平均值。因此,根据存储装置的性能,分别与多个编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT可以改变。也就是说,根据存储装置的性能,每个错误校正计数值ECC_COUNT可以改变。
除了图7中的点A和点B外,图7的曲线图与图4的曲线图相同,因此将基于图7的点A和点B进行描述。
图7的点A和点B中的每一个指示当由错误校正计数器230计数的当前错误校正计数值ECC_COUNT与参考表中的与参考编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT不相同时或当计数的错误校正计数值ECC_COUNT未落入一定范围内时。在这种情况下,功耗预测器240可以通过调整参考表中包括的与多个编程/擦除计数值PE_COUNT中的至少一个相对应的错误校正计数值ECC_COUNT和预期功耗来生成调整表。
图7的点A指示当从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT是1500并且从错误校正计数器230接收的当前错误校正计数值ECC_COUNT是50时。也就是说,图7的点A指示当由错误校正计数器230计数的当前错误校正计数值ECC_COUNT与参考表中的与参考编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT不相同时。
在参考表中,即使与参考编程/擦除计数值PE_COUNT 1500相对应的错误校正计数值ECC_COUNT为300,从错误校正计数器230接收的当前错误校正计数值ECC_COUNT可以为50。也就是说,根据存储装置的性能,针对相同编程/擦除计数值PE_COUNT的当前错误校正计数值ECC_COUNT可能相对于参考编程/擦除计数值PE_COUNT较小。当前错误校正计数值ECC_COUNT相对于参考编程/擦除计数值PE_COUNT较小可以指虽然对存储器装置已执行相同数量的编程和擦除操作(即,参考编程/擦除计数值PE_COUNT),但是已执行相对较少数量的错误校正操作。
当执行较少数量的错误校正操作时,功耗预测器240可以调整参考表,并且然后生成调整表。可选地,功耗预测器240可以将调整功耗作为预测功耗PRE_PC输出,而无需生成调整表。稍后将参照图8详细描述当执行较少数量的错误校正操作时所生成的调整表。
图7的点B指示当从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT是1000并且从错误校正计数器230接收的当前错误校正计数值ECC_COUNT是300时。也就是说,图7的点B指示当由错误校正计数器230计数的当前错误校正计数值ECC_COUNT与参考表中的与参考编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT不相同时。
在参考表中,即使与参考编程/擦除计数值PE_COUNT 1000相对应的错误校正计数值ECC_COUNT为50,从错误校正计数器230接收的当前错误校正计数值ECC_COUNT可以为300。也就是说,根据存储装置的性能,针对相同编程/擦除计数值PE_COUNT的当前错误校正计数值ECC_COUNT可能相对于参考编程/擦除计数值PE_COUNT较大。当前错误校正计数值ECC_COUNT相对于参考编程/擦除计数值PE_COUNT较大可以指虽然对存储器装置已执行相同数量的编程和擦除操作(即,参考编程/擦除计数值PE_COUNT),但是已执行相对较多数量的错误校正操作。
当执行较多数量的错误校正操作时,功耗预测器240可以调整参考表,并且然后生成调整表。可选地,功耗预测器240可以将调整功耗作为预测功耗PRE_PC输出,而无需生成调整表。稍后将参照图9详细描述当执行较多数量的错误校正操作时所生成的调整表。
图8A和图8B是示出基于参考表生成的调整表的示例的示图。
参照图8A和图8B,图8A示出通过调整包括参考时间点和预测时间点的时间TIME以及与参考时间点和预测时间点相对应的错误校正计数值ECC_COUNT和预期功耗值而生成的调整表,该参考时间点和预测时间点是响应于从主机接收的功耗预测请求PCP_REQ或者响应于从存储器控制器200的内部接收的功耗预测请求PCP_REQ而设置。图8B示出通过调整与当前编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT和预期功耗值而生成的调整表。
在图8A中,参考时间点可以是第一参考时间点t_ref1。在实施例中,参考时间点可以是在存储装置被导通之后功耗预测器240从编程擦除计数器210接收当前编程/擦除计数值PE_COUNT的时间点。当从编程擦除计数器210接收当前编程/擦除计数值PE_COUNT时,功耗预测器240可以将接收到当前编程/擦除计数值PE_COUNT的时间点设置为参考时间点。
在图8A的调整表中,可以将与参考时间点t_ref1相对应的错误校正计数值ECC_COUNT调整为由错误校正计数器230计数的当前错误校正计数值ECC_COUNT(“50”)。
由于图6的参考表中的与参考时间点t_ref1相对应的错误校正计数值ECC_COUNT(“300”)与由错误校正计数器230计数的当前错误校正计数值ECC_COUNT(“50”)不同,因此可以将与参考时间点相对应的错误校正计数值ECC_COUNT(“300”)调整为实际计数的错误校正计数值ECC_COUNT,也就是由错误校正计数器230计数的当前错误校正计数值ECC_COUNT(“50”)。
在实施例中,由于从错误校正计数器230接收的当前错误校正计数值ECC_COUNT为50,因此可以将与参考时间点t_ref1相对应的错误校正计数值ECC_COUNT调整为50。
另外,在调整表中,可以将与参考时间点相对应的预期功耗调整为与图6的参考表中的与由错误校正计数器230计数的当前错误校正计数值ECC_COUNT相对应的预期功耗。也就是说,由于功耗可以基于错误校正计数值ECC_COUNT来确定,因此可以参照参考表来调整与调整错误校正计数值ECC_COUNT相对应的预期功耗。
在调整表的实施例中,由于与参考时间点相对应的错误校正计数值ECC_COUNT已经被调整为50,并且参考表中的与预先测量的错误校正计数值ECC_COUNT 50相对应的预期功耗为300,因此可以将与参考时间点相对应的预期功耗调整为300。
基于与参考时间点相对应的调整错误校正计数值ECC_COUNT和调整功耗,可以在调整表内调整与至少一个预测时间点相对应的错误校正计数值ECC_COUNT和预期功耗。功耗预测器240可以调整与至少一个预测时间点相对应的错误校正计数值ECC_COUNT和预期功耗。
在实施例中,参考表中的大于调整错误校正计数值ECC_COUNT50的错误校正计数值ECC_COUNT可以是300、400、1000和3000。大于调整错误校正计数值ECC_COUNT的错误校正计数值ECC_COUNT可以被调整为与各个预测时间点相对应的值。
因此,在调整表中,可以将与预测时间点t_ref1+ta相对应的错误校正计数值ECC_COUNT调整为300,可以将与预测时间点t_ref1+2*ta相对应的错误校正计数值ECC_COUNT调整为400,并且可以将与预测时间点t_ref1+3*ta相对应的错误校正计数值ECC_COUNT调整为1000。
当调整与预测时间点相对应的错误校正计数值ECC_COUNT时,可以在调整表内调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值。由于功耗值是根据错误校正计数值ECC_COUNT来确定的,因此可以参照参考表来调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值。
在调整表的实施例中,可以将与调整错误校正计数值ECC_COUNT 300相对应的预期功耗值调整为300,可以将与调整错误校正计数值ECC_COUNT 400相对应的预期功耗值调整为350,并且可以将与调整错误校正计数值ECC_COUNT 1000相对应的预期功耗值调整为370。
当调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值时,调整表的生成可以完成。
当生成调整表时,功耗预测器240可以输出关于预测时间点和分别与预测时间点相对应的预期功耗值的信息。也就是说,功耗预测器240可以响应于功耗预测请求PCP_REQ输出关于预测时间点t_ref1+ta、t_ref1+2*ta和t_ref1+3*ta中的至少一个以及与该至少一个预测时间点相对应的预期功耗的信息。
在实施例中,功耗预测器240可以预测存储装置在预测时间点t_ref1+ta的未来功耗为300,存储装置在预测时间点t_ref1+2*ta的未来功耗为350,以及存储装置在预测时间点t_ref1+3*ta的未来功耗为370,并且将关于预测功耗PRE_PC的信息输出到主机。预测功耗PRE_PC可以是调整表内的与每个预测时间点相对应的预期功耗。
在图8B中,功耗预测器240可以通过与从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT相对应地调整参考表内的错误校正计数值ECC_COUNT和预期功耗值来生成调整表。可以生成调整表,使得参考时间点和预测时间点被包括或排除。
例如,在图8B的调整表中,可以将与从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT调整为由错误校正计数器230计数的当前错误校正计数值ECC_COUNT。
由于图5的参考表中与从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT(“1500”)相对应的平均错误校正计数值AVECC_COUNT(“300”)与由错误校正计数器230计数的当前错误校正计数值ECC_COUNT(“50”)不同,因此可以将与参考编程/擦除计数值PE_COUNT(“1500”)相对应的错误校正计数值ECC_COUNT调整为实际计数的错误校正计数值ECC_COUNT,也就是由错误校正计数器230计数的当前错误校正计数值ECC_COUNT(“50”)。
在实施例中,由于从错误校正计数器230接收的当前错误校正计数值ECC_COUNT为50,因此可以将与参考编程/擦除计数值PE_COUNT 1500相对应的错误校正计数值ECC_COUNT调整为50。
而且,在调整表中,可以将与在参考时间点从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT相对应的预期功耗调整为图5的参考表中与由错误校正计数器230计数的当前错误校正计数值ECC_COUNT相对应的预期功耗。也就是说,由于功耗可以基于错误校正计数值ECC_COUNT来确定,因此可以参照参考表来调整与调整错误校正计数值ECC_COUNT相对应的预期功耗。
在调整表的实施例中,由于与当前编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT已被调整为50,并且图5的参考表中与错误校正计数值ECC_COUNT 50相对应的预期功耗为300,因此可以将与参考编程/擦除计数值PE_COUNT相对应的预期功耗调整为300。
基于与参考编程/擦除计数值PE_COUNT相对应的调整错误校正计数值ECC_COUNT和调整功耗,可以在调整表内调整与至少一个编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT和预期功耗。功耗预测器240可以调整与至少一个编程/擦除计数值PE_COUNT相对应的预先测量的错误校正计数值ECC_COUNT和预期功耗。
在实施例中,参考表中大于调整错误校正计数值ECC_COUNT 50的错误校正计数值ECC_COUNT可以是300、400、1000和3000。大于调整错误校正计数值ECC_COUNT的错误校正计数值ECC_COUNT可以被调整为分别与大于参考编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT相对应的值。
因此,在调整表中,可以将与大于参考编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT之中的编程/擦除计数值PE_COUNT 2000相对应的错误校正计数值ECC_COUNT调整为300、可以将与编程/擦除计数值PE_COUNT 2500相对应的错误校正计数值ECC_COUNT调整为400,并且可以将与编程/擦除计数值PE_COUNT3000相对应的错误校正计数值ECC_COUNT调整为1000。
当调整与大于参考编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT时,可以在调整表内调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值。由于功耗值根据错误校正计数值ECC_COUNT来确定,因此可以参照参考表来调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值。
在调整表的实施例中,与调整错误校正计数值ECC_COUNT 300相对应的预期功耗可以是300,与调整错误校正计数值ECC_COUNT400相对应的预期功耗可以是350,并且与调整错误校正计数值ECC_COUNT 1000相对应的预期功耗可以是370。
当调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值时,调整表的生成可以完成。
由于调整表中分别与相同编程/擦除计数值PE_COUNT相对应的功耗值小于参考表中分别与编程/擦除计数值PE_COUNT相对应的功耗值,图8的调整表可以是包括当存储装置的性能优良时与编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT和功耗值的调整表。
当生成调整表时,功耗预测器240可以输出调整表中关于与编程/擦除计数值PE_COUNT中的至少一个相对应的功耗的信息。
在实施例中,功耗预测器240可以预测存储装置在编程/擦除计数值PE_COUNT为1500和2000时的未来功耗为300,存储装置在编程/擦除计数值PE_COUNT为2500时的未来功耗为350,以及存储装置在编程/擦除计数值PE_COUNT为3000时的未来功耗为370,并且将关于预测功耗PRE_PC的信息输出到主机。预测功耗PRE_PC可以是调整表内的与每个预测时间点相对应的预期功耗。
图9A和图9B是示出基于参考表生成的调整表的示例的示图。
参照图9A和图9B,图9A示出通过调整包括参考时间点和预测时间点的时间TIME以及与参考时间点和预测时间点相对应的错误校正计数值ECC_COUNT和预期功耗值而生成的调整表,该参考时间点和预测时间点响应于从主机接收的功耗预测请求PCP_REQ或者响应于从存储器控制器200的内部接收的功耗预测请求PCP_REQ而设置。图9B示出通过调整与当前编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT和预期功耗值而生成的调整表。
在图9A中,参考时间点可以是第二参考时间点t_ref2。在实施例中,参考时间点可以是在存储装置被导通之后功耗预测器240从编程擦除计数器210接收到当前编程/擦除计数值PE_COUNT的时间点。当从编程擦除计数器210接收到当前编程/擦除计数值PE_COUNT时,功耗预测器240可以将接收到当前编程/擦除计数值PE_COUNT的时间点设置为参考时间点。
与第二参考时间点t_ref2相对应的当前编程/擦除计数值PE_COUNT,也就是参考编程/擦除计数值PE_COUNT可以为1000。参考表中的大于参考编程/擦除计数值PE_COUNT即1000的编程/擦除计数值PE_COUNT可以是1500、2000、2500和3000。
在图9A的调整表中,可以将与参考时间点t_ref2相对应的错误校正计数值ECC_COUNT调整为由错误校正计数器230计数的当前错误校正计数值ECC_COUNT(“300”)。
由于图6的参考表中与参考时间点相对应的错误校正计数值ECC_COUNT(“50”)与由错误校正计数器230计数的当前错误校正计数值ECC_COUNT(“300”)不同,因此可以将与参考时间点相对应的错误校正计数值ECC_COUNT(“50”)调整为实际计数的错误校正计数值ECC_COUNT,也就是由错误校正计数器230计数的当前错误校正计数值ECC_COUNT(“300”)。
在实施例中,由于从错误校正计数器230接收的当前错误校正计数值ECC_COUNT为300,因此可以将与参考时间点t_ref2相对应的错误校正计数值ECC_COUNT调整为300。
而且,在调整表中,可以将与参考时间点相对应的预期功耗调整为图6的参考表中与由错误校正计数器230计数的当前错误校正计数值ECC_COUNT相对应的预期功耗。也就是说,由于功耗可以基于错误校正计数值ECC_COUNT来确定,因此可以参照参考表来调整与调整错误校正计数值ECC_COUNT相对应的功耗。
在调整表的实施例中,由于与参考时间点相对应的错误校正计数值ECC_COUNT已被调整为300,并且图6的参考表中与错误校正计数值ECC_COUNT 300相对应的预期功耗为300,所以可以将与参考时间点相对应的预期功耗调整为300。
基于与参考时间点相对应的调整错误校正计数值ECC_COUNT和调整功耗,可以在调整表内调整与至少一个预测时间点相对应的错误校正计数值ECC_COUNT和预期功耗。功耗预测器240可以调整与至少一个预测时间点相对应的错误校正计数值ECC_COUNT和预期功耗。
在实施例中,参考表中大于调整错误校正计数值ECC_COUNT300的错误校正计数值ECC_COUNT可以是400、1000、3000和6000。大于调整错误校正计数值ECC_COUNT的错误校正计数值ECC_COUNT可以被调整为与各个预测时间点相对应的值。
因此,在调整表中,可以将与预测时间点t_ref2+tb相对应的错误校正计数值ECC_COUNT调整为400,可以将与预测时间点t_ref2+2*tb相对应的错误校正计数值ECC_COUNT调整为1000,可以将与预测时间点t_ref2+3*tb相对应的错误校正计数值ECC_COUNT调整为3000,并且可以将与预测时间点t_ref2+4*tb相对应的错误校正计数值ECC_COUNT调整为6000。
当调整与各个预测时间点相对应的错误校正计数值ECC_COUNT时,可以在调整表内调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值。由于功耗值根据错误校正计数值ECC_COUNT来确定,因此可以参照参考表来调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值。
在调整表的实施例中,可以将与调整错误校正计数值ECC_COUNT 400相对应的预期功耗调整为350,可以将与调整错误校正计数值ECC_COUNT 1000相对应的预期功耗调整为370,可以将与错误校正计数值ECC_COUNT 3000相对应的预期功耗调整为400,并且可以将与调整错误校正计数值ECC_COUNT 6000相对应的预期功耗调整为450。
当调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值时,调整表的生成可以完成。
当生成调整表时,功耗预测器240可以输出关于预测时间点和分别与预测时间点相对应的功耗值的信息。也就是说,功耗预测器240可以响应于功耗预测请求PCP_REQ输出关于预测时间点t_ref2+tb、t_ref2+2*tb、t_ref2+3*tb和t_ref1+4*tb中的至少一个以及与该至少一个预测时间点相对应的预期功耗的信息。
在实施例中,功耗预测器240可以预测存储装置在预测时间点t_ref2+tb的未来功耗为350,存储装置在预测时间点t_ref2+2*tb的未来功耗为370,存储装置在预测时间点t_ref2+3*tb的未来功耗为400,以及存储装置在预测时间点t_ref2+4*tb的未来功耗为450,并且将关于预测功耗PRE_PC的信息输出到主机。预测功耗PRE_PC可以是调整表内与每个预测时间点相对应的预期功耗。
在图9B中,功耗预测器240可以通过与从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT相对应地调整错误校正计数值ECC_COUNT和预期功耗值来生成调整表。可以生成调整表,使得参考时间点和预测时间点被包括或排除。
例如,在图9B的调整表中,可以将与从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT调整为由错误校正计数器230计数的当前错误校正计数值ECC_COUNT。
由于图5的参考表中与从编程擦除计数器210接收的编程/擦除计数值PE_COUNT(“1000”)相对应的平均错误校正计数值AVECC_COUNT(“50”)与由错误校正计数器230计数的当前错误校正计数值ECC_COUNT(“300”)不同,因此可以将与参考编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT调整为实际计数的错误校正计数值ECC_COUNT,也就是由错误校正计数器230计数的当前错误校正计数值ECC_COUNT(“300”)。
在调整表的实施例中,由于与参考编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT已被调整为300,并且参考表中与平均错误校正计数值AVECC_COUNT 300相对应的预期功耗为300,因此可以将与参考编程/擦除计数值PE_COUNT相对应的预期功耗调整为300。
基于与参考编程/擦除计数值PE_COUNT相对应的调整错误校正计数值ECC_COUNT和调整功耗,可以在调整表内调整与至少一个编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT和预期功耗。功耗预测器240可以调整分别与至少一个编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT和预期功耗。
在实施例中,参考表中大于调整错误校正计数值ECC_COUNT 300的错误校正计数值ECC_COUNT可以是400、1000、3000和6000。大于调整错误校正计数值ECC_COUNT的错误校正计数值ECC_COUNT可以被调整为分别与大于参考编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT相对应的值。
因此,在调整表中,可以将与大于参考编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT之中的编程/擦除计数值PE_COUNT 1500相对应的错误校正计数值ECC_COUNT调整为400、可以将与编程/擦除计数值PE_COUNT 2000相对应的错误校正计数值ECC_COUNT调整为1000,可以将与编程/擦除计数值PE_COUNT 2500相对应的错误校正计数值ECC_COUNT调整为3000,并且可以将与编程/擦除计数值PE_COUNT 3000相对应的错误校正计数值ECC_COUNT调整为6000。
当调整与大于参考编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT时,可以在调整表内调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值。由于功耗值根据错误校正计数值ECC_COUNT来确定,因此可以参照参考表来调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值。
在调整表的实施例中,可以将与调整错误校正计数值ECC_COUNT 400相对应的预期功耗调整为350,可以将与调整错误校正计数值ECC_COUNT 1000相对应的预期功耗调整为370,可以将与调整错误校正计数值ECC_COUNT 3000相对应的预期功耗调整为400,并且可以将与调整错误校正计数值ECC_COUNT 6000相对应的预期功耗值调整为450。
当调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值时,调整表的生成可以完成。
由于调整表中分别与相同编程/擦除计数值PE_COUNT相对应的功耗值大于参考表中分别与编程/擦除计数值PE_COUNT相对应的功耗值,因此图9的调整表可以是包括当存储装置的性能差时与编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT和功耗值的调整表。
当生成调整表时,功耗预测器240可以输出预测表中关于与编程/擦除计数值PE_COUNT中的至少一个相对应的预测时间点,以及与预测时间点相对应的预期功耗的信息。
也就是说,功耗预测器240可以响应于功耗预测请求PCP_REQ输出关于与编程/擦除计数值PE_COUNT 1500、2000、2500和3000中的至少一个相对应的预测时间点以及与预测时间点相对应的预期功耗的信息。
在实施例中,功耗预测器240可以预测存储装置在编程/擦除计数值PE_COUNT为1500时的未来功耗为350,可以预测存储装置在编程/擦除计数值PE_COUNT为2000时的未来功耗为370,可以预测存储装置在编程/擦除计数值PE_COUNT为2500时的未来功耗为400,并可以预测存储装置在编程/擦除计数值PE_COUNT为3000时的未来功耗为450,并且将关于预测功耗PRE_PC的信息输出到主机。预测功耗PRE_PC可以是调整表内与每个预测时间点相对应的预期功耗。
图10是示出图1的存储器装置的结构的框图。
参照图10,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑125。
存储器单元阵列110包括多个存储块BLK1至BLKz。存储块BLK1至BLKz通过行线RL联接到地址解码器121,并且通过位线BL1至BLm联接到读取和写入电路123。存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。
可以使用存储器单元阵列110中包括的存储器单元,其中根据存储器单元的使用目的,存储器单元被划分为多个块。与控制存储器装置100所需的各种类型的设置信息相对应的系统信息可以存储在多个块中。
第一至第z存储块BLK1至BLKz中的每一个包括多个单元串。第一至第m单元串分别联接到第一至第m位线BL1至BLm。第一至第m单元串中的每一个包括漏极选择晶体管、多个串联联接的存储器单元和源极选择晶体管。漏极选择晶体管DST联接到漏极选择线DSL。第一至第n存储器单元分别联接到第一至第n字线WL1至WLn。源极选择晶体管SST联接到源极选择线SSL。漏极选择晶体管DST的漏极联接到相应位线。第一至第m单元串的漏极选择晶体管分别联接到第一至第m位线BL1至BLm。源极选择晶体管SST的源极联接到共源线CSL。在实施例中,共源线CSL可以共同联接到第一至第z存储块BLK1至BLKz。漏极选择线DSL、第一至第n字线WL1至WLn以及源极选择线SSL包括在行线RL中。漏极选择线DSL、第一至第n字线WL1至WLn和源极选择线SSL由地址解码器121控制。共源线CSL由控制逻辑125控制。第一至第m位线BL1至BLm由读取和写入电路123控制。
外围电路120可以包括地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124以及控制逻辑125。
地址解码器121通过行线RL联接到存储器单元阵列110。地址解码器121可以在控制逻辑125的控制下进行操作。地址解码器121通过控制逻辑125接收地址ADDR。
在实施例中,存储器装置100的编程操作和读取操作均以页面为单位来执行。
在编程和读取操作期间,由控制逻辑125接收的地址ADDR可以包括块地址和行地址。地址解码器121可以对接收的地址ADDR之中的块地址解码。地址解码器121响应于经解码的块地址选择存储块BLK1至BLKz中的一个。
地址解码器121可以对接收的地址ADDR之中的行地址解码。响应于经解码的行地址,地址解码器121将从电压生成器122提供的电压施加到行线RL,并且然后选择所选择存储块的一个字线。
在擦除操作期间,地址ADDR包括块地址。地址解码器121可以对块地址解码,并且响应于经解码的块地址来选择一个存储块。可以对一个存储块的全部或部分执行擦除操作。
在部分擦除操作期间,地址ADDR可以包括块地址和行地址。地址解码器121响应于经解码的块地址选择存储块BLK1至BLKz中的一个。
地址解码器121可以对接收的地址ADDR之中的行地址解码。响应于经解码的行地址,地址解码器121将从电压生成器122提供的电压施加到行线RL,并且然后选择所选择存储块的至少一条字线。
在实施例中,地址解码器121可以包括块解码器、字线解码器、地址缓冲器等。
电压生成器122可以使用提供至存储器装置100的外部电源电压来生成多个电压。电压生成器122在控制逻辑125的控制下操作。
在实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压用作存储器装置100的操作电压。
在实施例中,电压生成器122可以使用外部电源电压或内部电源电压来生成多个电压。例如,电压生成器122可以包括用于接收内部电源电压的多个泵浦容器,并且可以在控制逻辑125的控制下通过选择性地启用多个泵浦容器来生成多个电压。生成的电压被施加到由地址解码器121选择的字线。
在编程操作期间,电压生成器121可以生成高电压编程脉冲和低于编程脉冲的通过脉冲。在读取操作期间,电压生成器121可以生成读取电压和高于读取电压的通过电压。在擦除操作期间,电压生成器121可以生成擦除电压。
读取和写入电路123包括第一至第m页面缓冲器PB1至PBm。该第一至第m页面缓冲器PB1至PBm分别通过第一至第m位线BL1至BLm联接至存储器单元阵列110。第一至第m页面缓冲器PB1至PBm在控制逻辑125的控制下操作。
第一至第m页面缓冲器PB1至PBm执行与数据输入/输出电路124的数据通信。在编程操作期间,第一至第m页面缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收待存储的数据DATA。
在编程操作期间,当编程脉冲被施加到每个所选择字线时,第一至第m页面缓冲器PB1至PBm可以将通过输入/输出电路124接收的数据通过位线BL1至BLm传输到所选择存储器单元。可以基于所传输的数据来对所选择页面的存储器单元进行编程。与被施加编程允许电压(例如,接地电压)的位线联接的存储器单元可以具有增加的阈值电压。与被施加编程禁止电压(例如,电源电压)的位线联接的存储器单元的阈值电压可以保持。在编程验证操作期间,第一至第m页面缓冲器可以通过位线BL1至BLm从所选择存储器单元读取页面数据。
在读取操作期间,读取和写入电路123可以通过位线BL从所选择页面中的存储器单元读取数据,并且可以将读取数据输出到数据输出/输出电路124。在擦除操作期间,读取和写入电路123可以允许位线BL1至BLm浮置(float)。
在实施例中,读取和写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124响应于控制逻辑125的控制进行操作。在编程操作期间,数据输入/输出电路124从外部控制器(未示出)接收待存储的数据DATA。
控制逻辑125联接到地址解码器121、电压生成器122、读取和写入电路123以及数据输入/输出电路124。控制逻辑125可以控制存储器装置100的全部操作。控制逻辑125从外部控制器接收命令CMD和地址ADDR。控制逻辑125可以响应于命令CMD控制地址解码器121、电压生成器122、读取和写入电路123以及数据输入/输出电路124。
图11是示出图10的存储器单元阵列的实施例的示图。
参照图11,存储器单元阵列110包括多个存储块BLK1至BLKz。每个存储块可以具有三维(3D)结构。每个存储块包括堆叠在衬底上的多个存储器单元。这种存储器单元布置在正X(+X)方向、正Y(+Y)方向和正Z(+Z)方向上。下面将参照图12和图13详细地描述每个存储块的结构。
图12是示出图11的存储块BLK1至BLKz中的任意一个存储块BLKa的电路图。
参照图12,存储块BLKa包括多个单元串CS11至CS1m以及CS21至CS2m。在实施例中,单元串CS11至CS1m和CS21至CS2m中的每一个可以形成为“U”型。在存储块BLKa中,m个单元串布置在行方向(即正(+)X方向)上。在图12中,示出两个单元串布置在列方向(即正(+)Y方向)上。然而,该示出是为了方便描述,并且将理解的是,可以在列方向布置三个或更多个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每一个包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT和至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可以分别具有类似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可以包括沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层。在实施例中,可以对每个单元串设置用于提供沟道层的柱(pillar)。在实施例中,可以对每个单元串设置用于提供沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST连接在共源线CSL和存储器单元MC1至MCp之间。
在实施例中,布置在相同行中的单元串的源极选择晶体管联接至在行方向上延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管联接至不同的源极选择线。在图12中,第一行中的单元串CS11至CS1m的源极选择晶体管联接至第一源极选择线SSL1。第二行中的单元串CS21至CS2m的源极选择晶体管联接至第二源极选择线SSL2。
在实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以共同联接至单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可以被划分成第一至第p存储器单元MC1至MCp以及第p+1至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp沿与正(+)Z方向相反的方向顺序布置,并且串联地连接在源极选择晶体管SST和管道晶体管PT之间。第p+1至第n存储器单元MCp+1至MCn沿+Z方向顺序布置,并且串联地连接在管道晶体管PT和漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第p+1至第n存储器单元MCp+1至MCn通过管道晶体管PT彼此联接。每个单元串的第一至第n存储器单元MC1至MCn的栅极分别联接到第一至第n字线WL1至WLn。
每个单元串的管道晶体管PT的栅极联接至管线PL。
每个单元串的漏极选择晶体管DST连接在相应位线与存储器单元MCp+1至MCn之间。行方向上的单元串的漏极选择晶体管联接至在行方向上延伸的漏极选择线。第一行中的单元串CS11至CS1m的漏极选择晶体管联接至第一漏极选择线DSL1。第二行中的单元串CS21至CS2m的漏极选择晶体管联接至第二漏极选择线DSL2。
布置在列方向上的单元串联接至在列方向上延伸的位线。在图12中,第一列中的单元串CS11和CS21联接至第一位线BL1,第m列中的单元串CS1m和CS2m联接到第m位线BLm。
布置在行方向上的单元串中联接至相同字线的存储器单元构成单个页面。例如,在第一行中的单元串CS11至CS1m之中的、联接至第一字线WL1的存储器单元构成单个页面。在第二行中的单元串CS21至CS2m之中的、联接至第一字线WL1的存储器单元构成单个附加页面。可以通过选择漏极选择线DSL1和DSL2中的任意一个来选择在单个行的方向上布置的单元串。可以通过选择字线WL1至WLn中的任意一个从所选择单元串中选择单个页面。
在实施例中,可以设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。另外,布置在行方向上的单元串CS11至CS1m或CS21至CS2m之中偶数编号的单元串可以分别联接至偶数位线,并且布置在行方向上的单元串CS11至CS1m或CS21至CS2m之中奇数编号的单元串可以分别联接至奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的一个或多个可以用作虚设存储器单元。例如,可以设置一个或多个虚设存储器单元以减小源极选择晶体管SST和存储器单元MC1至MCp之间的电场。可选地,设置一个或多个虚设存储器单元以减小漏极选择晶体管DST和存储器单元MCp+1至MCn之间的电场。随着设置更多的虚设存储器单元,存储块BLKa的操作可靠性提高,但是存储块BLKa的大小增加。随着设置更少的虚设存储器单元,存储块BLKa的大小减小,但是存储块BLKa的操作可靠性可能会劣化。
为了有效地控制一个或更多个虚设存储器单元,虚设存储器单元中的每一个可以具有所需的阈值电压。在执行存储块BLKa的擦除操作之前或之后,可以对全部或一些虚设存储器单元执行编程操作。当在已执行编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到与各个虚设存储器单元联接的虚设字线的电压,因而虚设存储器单元可以具有所需的阈值电压。
图13是示出图11的存储块BLK1至BLKz中的任意一个存储块BLKb的示例的电路图。
参照图13,存储块BLKb包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个在正Z(+Z)方向上延伸。单元串CS11'至CS1m'和CS21'至CS2m'中的每一个包括堆叠在存储块BLKb下面的衬底(未示出)上的至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST连接在共源线CSL和存储器单元MC1至MCn之间。布置在相同行中的单元串的源极选择晶体管联接到相同的源极选择线。布置在第一行中的单元串CS11'至CS1m'的源极选择晶体管联接至第一源极选择线SSL1。布置在第二行中的单元串CS21'至CS2m'的源极选择晶体管联接至第二源极选择线SSL2。在实施例中,单元串CS11'至CS1m'和CS21'至CS2m'的源极选择晶体管可以共同联接到单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn串联地连接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极分别联接至第一至第n字线WL1至WLn。
每个单元串的漏极选择晶体管DST连接在相应位线和存储器单元MC1至MCn之间。布置在行方向上的单元串的漏极选择晶体管联接至在行方向上延伸的漏极选择线。第一行中的单元串CS11'至CS1m'的漏极选择晶体管联接至第一漏极选择线DSL1。第二行中的单元串CS21'至CS2m'的漏极选择晶体管联接至第二漏极选择线DSL2。
因此,除了管道晶体管PT不包括在每个单元串中之外,图13的存储块BLKb具有与图12的存储块BLKa的等效电路类似的等效电路。
在实施例中,可以设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。另外,布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'之中的偶数编号的单元串可以分别联接至偶数位线,并且布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'之中的奇数编号的单元串可以分别联接至奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的一个或多个可以用作虚设存储器单元。例如,设置一个或多个虚设存储器单元以减小源极选择晶体管SST和存储器单元MC1至MCn之间的电场。可选地,设置一个或多个虚设存储器单元以减小漏极选择晶体管DST和存储器单元MC1至MCn之间的电场。随着设置更多的虚设存储器单元,存储块BLKb的操作可靠性提高,但是存储块BLKb的大小增加。随着设置更少的虚设存储器单元,存储块BLKb的大小减小,但是存储块BLKb的操作可靠性可能劣化。
为了有效地控制一个或更多个虚设存储器单元,虚设存储器单元中的每一个可以具有所需的阈值电压。在执行存储块BLKb的擦除操作之前或之后,可以对全部或一些虚设存储器单元执行编程操作。当在已执行编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到与各个虚设存储器单元联接的虚设字线的电压,因而虚设存储器单元可以具有所需的阈值电压。
图14是根据本发明的实施例的存储器控制器的操作的流程图。
参照图14,在步骤S1401中,功耗预测器240可以从主机或从存储器控制器200的内部接收功耗预测请求PCP_REQ。功耗预测请求PCP_REQ可以是预测存储装置的未来功耗的请求。响应于功耗预测请求PCP_REQ,功耗预测器240可以预测存储装置的未来功耗。
在步骤S1403中,功耗预测器240可以确定存储装置的当前功耗。
在实施例中,在已接收到功耗预测请求PCP_REQ之后,功耗预测器240可以从编程擦除计数器210接收当前编程/擦除计数值PE_COUNT并从错误校正计数器230接收当前错误校正计数值ECC_COUNT。功耗预测器240可以接收当前编程/擦除计数值PE_COUNT,然后将当前编程/擦除计数值PE_COUNT设置为与参考时间点相对应的参考编程/擦除计数值PE_COUNT。
功耗预测器240可以基于当前错误校正计数值ECC_COUNT和参考表来确定存储装置的当前功耗。也就是说,参考表中与当前错误校正计数值ECC_COUNT相对应的功耗可以被确定为存储装置的当前功耗。
在步骤S1405中,功耗预测器240可以基于当前功耗预测未来功耗。
例如,功耗预测器240可以将在存储装置50被导通之后从编程擦除计数器210接收到当前编程/擦除计数值PE_COUNT的时间点设置为参考时间点。功耗预测器240可以将从参考时间点起经过的时间点设置为预测时间点。也就是说,预测时间点可以是从接收到当前编程/擦除计数值PE_COUNT的参考时间点起经过预定时间的时间点。
当确定预测时间点时,功耗预测器240可以基于参考表中包括的分别与多个编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT和预期功耗值,预测在参考时间点之后的编程/擦除计数值PE_COUNT。此后,功耗预测器240可以选择参考表内与预测编程/擦除计数值PE_COUNT相对应的预期功耗作为与预测时间点相对应的未来功耗。
在步骤S1407中,功耗预测器240可以将预测功耗输出到主机。预测功耗可以是与功耗预测请求相对应的响应。在实施例中,功耗预测器240可以基于存储装置的当前功耗预测将由存储装置随后消耗的未来功耗,并且可以将关于预测功耗的信息输出到主机。
例如,功耗预测器240可以将关于与大于参考编程/擦除计数值PE_COUNT的至少一个编程/擦除计数值PE_COUNT相对应的未来功耗的信息作为预测功耗PRE_PC,与预测时间点一起输出到主机。
图15是根据本发明的实施例的存储器控制器的操作的流程图。
参照图15,在步骤S1501中,功耗预测器240可以从编程擦除计数器210接收当前编程/擦除计数值PE_COUNT,并从错误校正计数器230接收当前错误校正计数值ECC_COUNT。当前编程/擦除计数值PE_COUNT可以是通过对对存储器装置执行的编程和擦除操作的数量进行计数而获得的值。当前错误校正计数ECC_COUNT可以是通过对直到对存储器装置执行的每个操作完成为止执行的错误校正的数量进行计数而获得的值。功耗预测器240可以基于当前编程/擦除计数值PE_COUNT和当前错误校正计数值ECC_COUNT预测存储装置的未来功耗。
在实施例中,根据用户使用存储装置的模式,编程/擦除计数值PE_COUNT可以变化。也就是说,当用户在相同参考时间点期间存储大量数据时,编程/擦除计数值PE_COUNT可能很大。可选地,当用户在相同参考时间点期间存储少量数据时,编程/擦除计数值PE_COUNT可能很小。因此,功耗预测器240可以基于在参考时间点已经过之后接收的当前编程/擦除计数值PE_COUNT来确定用户当前使用存储装置的模式。
在步骤S1503中,可以确定当前错误校正计数值是否与参考表中的错误校正计数值相同。可以从错误校正计数器接收当前错误校正计数值。参考表中的错误校正计数值可以是平均错误校正计数值。
例如,功耗预测器240可以确定由错误校正计数器230计数的当前错误校正计数值是否与参考表中的平均错误校正计数值相同。参考表中的平均错误校正计数值可以是与参考表中的参考编程/擦除计数值PE_COUNT相对应的错误校正计数值。
例如,参考表可以基于多个编程/擦除计数值PE_COUNT和分别与多个编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT来生成。但是,根据存储装置的性能,关于当前编程/擦除计数值PE_COUNT,由错误校正计数器230计数的当前错误校正计数值和参考表中的每个错误校正计数值可能彼此不同。因此,功耗预测器240可以根据由错误校正计数器230计数的当前错误校正计数值与参考表中关于当前编程/擦除计数值PE_COUNT的错误校正计数值是否相同来确定是否利用参考表。
当当前错误校正计数值与参考表中关于当前编程/擦除计数值PE_COUNT的错误校正计数值相同时,进程进行至步骤S1505。当当前错误校正计数值与参考表中关于当前编程/擦除计数值PE_COUNT的错误校正计数值不相同时,进程进行至步骤S1507。
在步骤S1505中,关于当前编程/擦除计数值PE_COUNT,功耗预测器240可以基于参考表输出关于预测功耗的信息。由于由错误校正计数器230计数的当前错误校正计数值与参考表中关于当前编程/擦除计数值PE_COUNT的错误校正计数值相同,因此功耗预测器240不需要生成调整表。因此,功耗预测器240可以基于参考表确定预测时间点,并且可以将关于与预测时间点相对应的预期功耗的信息作为预测功耗输出。可选地,功耗预测器240可以基于参考表将关于与当前编程/擦除计数值PE_COUNT相对应的预期功耗的信息作为预测功耗输出。
在步骤S1507中,功耗预测器240可以基于调整表输出关于预测功耗的信息。由于由错误校正计数器230计数的当前错误校正计数值与参考表中关于当前编程/擦除计数值PE_COUNT的错误校正计数值不同,因此功耗预测器240可以生成调整表。功耗预测器240可以调整与参考编程/擦除计数值PE_COUNT相对应的错误校正计数值和预期功耗,并且可以基于调整表内调整错误校正计数值和调整功耗来生成调整表。当生成调整表时,功耗预测器240可以从调整表中输出编程/擦除计数值PE_COUNT中的至少一个以及关于与该至少一个编程/擦除计数值PE_COUNT相对应的预期功耗的信息,或者可以从调整表中输出关于预测时间点和与该预测时间点相对应的预期功耗的信息。
图16是根据本发明的实施例的存储器控制器的操作的流程图。
参照图15和图16。图16详细示出生成调整表的方法的顺序。也就是说,图16是详细示出图15的步骤S1507的示图。
在步骤S1601中,功耗预测器240可以在参考表内将与从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT调整为从错误校正计数器230接收的当前错误校正计数值ECC_COUNT。
例如,由于参考表中与从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT与由错误校正计数器230计数的当前错误校正计数值ECC_COUNT不同,因此可以将参考表内与从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT调整为实际计数的错误校正计数值ECC_COUNT,也就是由错误校正计数器230计数的当前错误校正计数值ECC_COUNT。
当调整与从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT时,可以将参考表内与从编程擦除计数器210接收的编程/擦除计数值PE_COUNT相对应的预期功耗调整为与调整错误校正计数值ECC_COUNT相对应的预期功耗。
在步骤S1603中,可以调整参考表内与大于从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT中的至少一个相对应的错误校正计数值ECC_COUNT和预期功耗。可以基于与从编程擦除计数器210接收的当前编程/擦除计数值PE_COUNT相对应的调整错误校正计数值ECC_COUNT和调整功耗来调整参考表内分别与编程/擦除计数值PE_COUNT相对应的错误校正计数值ECC_COUNT和预期功耗值。因此,可以调整与可以预测编程/擦除计数值PE_COUNT中的至少一个的预测时间点相对应的错误校正计数值ECC_COUNT和预期功耗。
例如,基于参考表,参考表中大于调整错误校正计数值ECC_COUNT的错误校正计数值ECC_COUNT可以对应于大于参考编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT。此后,参照参考表,可以调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值。当调整分别与调整错误校正计数值ECC_COUNT相对应的预期功耗值时,调整表的生成可以完成。
在步骤S1605中,可以输出针对各个编程/擦除计数值PE_COUNT确定的调整功耗值。例如,功耗预测器240可以从调整表输出调整表中大于参考编程/擦除计数值PE_COUNT的编程/擦除计数值PE_COUNT中的至少一个,也就是预测编程/擦除计数值PE_COUNT,以及关于与该至少一个编程/擦除计数值PE_COUNT相对应的未来功耗的信息,或者可以从调整表输出关于预测时间点和与预测时间点相对应的未来功耗的信息。可以根据预测编程/擦除计数值PE_COUNT来确定预测时间点。
图17是示出图1的存储器控制器的实施例的示图。
存储器控制器1000联接到主机和存储器装置。响应于从主机接收的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可被配置成控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以提供存储器装置和主机之间的接口连接。存储器控制器1000可以运行用于控制存储器装置的固件。
参照图17,存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正器(错误校正码:ECC)1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
图17的错误校正器(ECC)1030可以执行由图3的错误校正器220执行的操作。
总线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可以使从存储器装置接收的数据去随机化。例如,处理器1010可以使用去随机化种子使从存储器装置接收的数据去随机化。经去随机化的数据可以被输出至主机。
在实施例中,处理器1010可以运行软件或固件来执行随机化操作和去随机化操作。
存储器缓冲器1020可以用作处理器1010的工作存储器、高速缓冲存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010运行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
错误校正器1030可以执行错误校正。错误校正器1030可以基于待通过存储器接口1060被写入到存储器装置的数据执行错误校正码(ECC)编码。经ECC编码的数据可以通过存储器接口1060被传输至存储器装置。错误校正器1030可以基于通过存储器接口1060从存储器装置接收的数据执行ECC解码。在示例中,错误校正器1030可以作为存储器接口1060的组件被包括在存储器接口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。
在实施例中,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000中设置的非易失性存储器装置(例如,ROM)加载代码。在实施例中,处理器1010可以通过存储器接口1060从存储器装置加载代码。
在实施例中,存储器控制器1000的总线1070可以分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000中传送数据,并且控制总线可以被配置为在存储器控制器1000中传送诸如命令或地址的控制信息。数据总线和控制总线可以彼此隔离,并且可以既不相互干扰也也不相互影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、错误校正器1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图18是示出应用根据本发明的实施例的存储装置的存储卡系统的框图。
参照图18,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以提供存储器装置2200和主机之间的接口连接。存储器控制器2100可以运行用于控制存储器装置2200的固件。存储器装置2200可以以与上面参照图10描述的存储器装置100相同的方式实施。
在实施例中,存储器控制器2100可以包括诸如RAM、处理器、主机接口、存储器接口和错误校正器的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可以通过诸如下列的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(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可以被集成到单个半导体装置中以配置存储卡。例如,存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中以配置诸如下列的存储卡:PC卡(个人计算机存储卡国际协会:PCMCIA)、紧凑型闪存(CF)卡、智能媒体卡(SM或SMC)、记忆棒,多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)或者通用闪存(UFS)。
图19是示出应用根据本发明的实施例的存储装置的固态驱动器(SSD)系统的示例的框图。
参照图19,SSD系统3000可以包括主机3100和SSD 3200。SSD 3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过电源连接器3002接收电力PR。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)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及高速非易失性存储器(NVMe)接口。
辅助电源3230可以通过电源连接器3002联接到主机3100。辅助电源3230可以被供应以来自主机3100的电力PR并且可以被充电。当来自主机3100的电力供应未平稳执行时,辅助电源3230可以供应SSD3200的电力。在实施例中,辅助电源3230可以定位在SSD 3200内部或定位在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的非易失性存储器。
图20是示出应用根据本发明的实施例的存储装置的用户系统的框图。
参照图20,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户界面4500。
应用处理器4100可以运行包括在用户系统4000中的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可以包括用于控制包括在用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDARM、LPDDR2 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可以包括多个非易失性存储器装置,多个非易失性存储器装置中的每一个可以以与上面参照图10至图13描述的存储器装置相同的方式操作。存储模块4400可以以与上面参照图1中描述的存储装置50相同的方式操作。
用户接口4500可以包括将数据或指令输入至应用处理器4100或将数据输出到外部装置的接口。在实施例中,用户接口4500可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电装置的用户输入接口。用户接口4500可以进一步包括诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器的用户输出接口。
根据本公开,提供一种预测存储装置的功耗并且将关于预测功耗的信息输出至主机的存储器控制器以及操作存储器控制器的方法。
虽然出于说明性目的已经公开本公开的各个实施例,但是本领域技术人员将理解的是,可以进行各种修改、添加和替换。因此,本公开的范围必须由所附权利要求和权利要求的等同方案来限定,而不是由前面的描述来限定。
虽然已经公开了本公开的实施例,但是本领域技术人员将理解的是,在不脱离本公开的范围和精神的情况下,可以进行各种修改、添加和替换。
在以上讨论的实施例中,可选择性地执行或跳过所有步骤。另外,每个实施例中的步骤可以不总以给定顺序来执行,并且可以随机地执行。此外,本说明书和附图中公开的实施例旨在帮助本领域的普通技术人员更清楚地理解本公开,而不是旨在限制本公开的范围。换言之,本公开所属领域的普通技术人员将能够容易地理解,基于本公开的技术范围可以进行各种修改。
已经参照附图描述本公开的实施例,并且在说明书中使用的特定术语或词语应当根据本公开的精神来解释,而不限制本公开的主题。应理解的是,本文描述的基本发明构思的许多变化和修改仍将落入如所附权利要求书及其等同方案所限定的本公开的精神和范围内。

Claims (25)

1.一种存储器控制器,用于控制存储器装置,所述存储器控制器包括:
编程擦除计数器,对对所述存储器装置执行的编程和擦除操作的数量进行计数,并且然后生成当前编程/擦除计数值;
错误校正计数器,对用于校正对所述存储器装置执行的操作中的错误的错误校正的数量进行计数,并且然后生成当前错误校正计数值;以及
功耗预测器:
基于所述当前编程/擦除计数值来预测未来编程/擦除计数值;
预测包括所述存储器装置和所述存储器控制器的存储装置的未来功耗,所述未来功耗对应于预测编程/擦除计数值;并且
将关于预测功耗的信息输出到主机。
2.根据权利要求1所述的存储器控制器,进一步包括错误校正器,所述错误校正器执行错误校正并且输出指示已校正所述错误的错误校正信息。
3.根据权利要求2所述的存储器控制器,其中所述错误校正计数器基于所述错误校正信息对所述错误校正的数量进行计数。
4.根据权利要求1所述的存储器控制器,进一步包括参考表,所述参考表包括与编程/擦除计数值相对应的平均错误校正计数值和预期功耗。
5.根据权利要求4所述的存储器控制器,其中当所述当前错误校正计数值与所述参考表内与所述当前编程/擦除计数值相对应的平均错误校正计数值相同时,所述功耗预测器基于所述参考表来预测所述未来功耗。
6.根据权利要求4所述的存储器控制器,其中当所述当前错误校正计数值与所述参考表内与所述当前编程/擦除计数值相对应的平均错误校正计数值不同时,所述功耗预测器通过调整所述参考表内与所述编程/擦除计数值中的至少一个相对应的所述平均错误校正计数值和所述预期功耗来生成调整表。
7.根据权利要求6所述的存储器控制器,其中所述调整表被配置以使:
将与所述当前编程/擦除计数值相对应的所述平均错误校正计数值调整为所述当前错误校正计数值,并且
将与所述当前编程/擦除计数值相对应的所述预期功耗调整为所述参考表内与所述当前错误校正计数值相对应的预期功耗。
8.根据权利要求7所述的存储器控制器,其中所述功耗预测器基于与所述当前编程/擦除计数值相对应的调整错误校正计数值和调整功耗来调整与所述预测编程/擦除计数值相对应的所述平均错误校正计数值和所述预期功耗。
9.一种存储器控制器,用于控制存储数据的存储器装置,所述存储器控制器包括:
编程擦除计数器,对对所述存储器装置执行的编程和擦除操作的数量进行计数,并且然后生成当前编程/擦除计数值;
错误校正计数器,对用于校正对所述存储器装置执行的操作中的错误的错误校正的数量进行计数,并且然后生成当前错误校正计数值;以及
功耗预测器:
将接收到所述当前编程/擦除计数值的时间点设置为参考时间点;
预测包括所述存储器装置和所述存储器控制器的存储装置的未来功耗,所述未来功耗对应于基于所述参考时间点确定的预测时间点;并且
将关于预测功耗的信息输出到主机。
10.根据权利要求9所述的存储器控制器,进一步包括参考表,所述参考表包括与预测时间点相对应的平均错误校正计数值和预期功耗。
11.根据权利要求10所述的存储器控制器,其中所述功耗预测器基于所述参考时间点来确定与所述参考表中包括的所述平均错误校正计数值中的至少一个相对应的所述预测时间点。
12.根据权利要求10所述的存储器控制器,其中所述功耗预测器:
当所述当前错误校正计数值与所述参考表内与所述参考时间点相对应的所述平均错误校正计数值相同时,基于所述参考表来预测与所述预测时间点相对应的所述未来功耗;并且
当所述当前错误校正计数值与所述参考表内与所述参考时间点相对应的所述平均错误校正计数值不同时,通过调整所述参考表内与所述预测时间点中的至少一个相对应的所述平均错误校正计数值和所述预期功耗来生成调整表。
13.根据权利要求12所述的存储器控制器,其中所述调整表被配置以使:
将与所述参考时间点相对应的所述平均错误校正计数值调整为所述当前错误校正计数值,
将与所述参考时间点相对应的所述预期功耗调整为所述参考表内与所述当前错误校正计数值相对应的预期功耗,并且
基于与所述参考时间点相对应的调整错误校正计数值和调整功耗来调整与所述预测时间点相对应的所述平均错误校正计数值和所述预期功耗。
14.一种操作存储器控制器的方法,所述存储器控制器用于控制存储器装置,所述方法包括:
对对所述存储器装置执行的编程和擦除操作的数量进行计数,并且然后生成当前编程/擦除计数值;
对用于校正对所述存储器装置执行的操作中的错误的错误校正的数量进行计数,并且然后生成当前错误校正计数值;
基于所述当前编程/擦除计数值和所述当前错误校正计数值来预测包括所述存储器装置和所述存储器控制器的存储装置的未来功耗;并且
将关于预测功耗的信息输出到主机。
15.根据权利要求14所述的方法,其中当所述存储器装置接收到指示在对所述存储器装置执行的操作中的错误已通过所述错误校正被校正的错误校正信息时,对所述错误校正计数值进行计数。
16.根据权利要求14所述的方法,其中预测所述未来功耗包括预测参考表内与多个编程/擦除计数值中的至少一个相对应的未来功耗,所述参考表包括与至少一个编程/擦除计数值中的每一个相对应的平均错误校正计数值和预期功耗。
17.根据权利要求16所述的方法,进一步包括:
将接收到所述当前编程/擦除计数值的时间点设置为参考时间点;并且
将所述当前编程/擦除计数值设置为与所述参考时间点相对应的参考编程/擦除计数值。
18.根据权利要求17所述的方法,进一步包括基于所述参考时间点来确定与所述参考表中包括的编程/擦除计数值中的至少一个相对应的预测时间点。
19.根据权利要求18所述的方法,其中预测所述未来功耗包括当所述当前错误校正计数值与所述参考表内与所述当前编程/擦除计数值相对应的所述平均错误校正计数值相同时,基于所述参考表预测与所述预测时间点相对应的未来功耗。
20.根据权利要求18所述的方法,其中预测所述未来功耗进一步包括当所述当前错误校正计数值与所述参考表内与所述当前编程/擦除计数值相对应的所述平均错误校正计数值不同时,通过调整所述参考表内与所述编程/擦除计数值中的至少一个相对应的所述平均错误校正计数值和所述预期功耗来生成调整表。
21.根据权利要求20所述的方法,其中生成所述调整表包括通过将与所述当前编程/擦除计数值相对应的所述平均错误校正计数值调整为所述当前错误校正计数值来生成所述调整表。
22.根据权利要求21所述的方法,其中生成所述调整表包括通过将与所述当前编程/擦除计数值相对应的所述预期功耗调整为所述参考表内与所述当前错误校正计数值相对应的预期功耗来生成所述调整表。
23.根据权利要求22所述的方法,其中生成所述调整表包括基于与所述当前编程/擦除计数值相对应的调整错误校正计数值和调整功耗来调整与至少一个预测时间点相对应的所述平均错误校正计数值和所述预期功耗。
24.根据权利要求23所述的方法,其中将关于所述预测功耗的信息输出到所述主机包括输出关于所述调整表内与大于所述当前编程/擦除计数值的编程/擦除计数值中的至少一个相对应的预测时间点以及与所述预测时间点相对应的预期功耗的信息。
25.一种控制器的操作方法,所述控制器用于控制存储器装置,所述操作方法包括:
将参考表存储在所述控制器中,所述参考表具有编程/擦除计数的条目,即PE计数的条目,每个PE计数条目包括关于相应PE计数的错误校正计数即ECC计数和功耗即PC的字段;并且
向主机提供在大于与当前测量的ECC计数相对应的PC的值的PC的值之中被选择为预测PC的PC的值,
其中所述PE计数是对所述存储器装置的存储器单元执行的PE操作的次数,
其中所述ECC计数是对所述存储器装置中存储的数据执行的错误校正操作的平均次数,并且
其中所述PC是由所述控制器和所述存储器装置关于错误校正操作所消耗的功率量。
CN201911296036.8A 2019-05-10 2019-12-16 存储器控制器以及操作存储器控制器的方法 Active CN111916142B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190055133A KR102601152B1 (ko) 2019-05-10 2019-05-10 메모리 컨트롤러 및 그 동작 방법
KR10-2019-0055133 2019-05-10

Publications (2)

Publication Number Publication Date
CN111916142A true CN111916142A (zh) 2020-11-10
CN111916142B CN111916142B (zh) 2023-12-08

Family

ID=73045827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911296036.8A Active CN111916142B (zh) 2019-05-10 2019-12-16 存储器控制器以及操作存储器控制器的方法

Country Status (3)

Country Link
US (1) US11010226B2 (zh)
KR (1) KR102601152B1 (zh)
CN (1) CN111916142B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103026259A (zh) * 2010-08-04 2013-04-03 索尼公司 接收设备、接收方法和移动终端
CN104298488A (zh) * 2014-09-29 2015-01-21 上海兆芯集成电路有限公司 循环预测器指导的循环缓冲器
JP2016086521A (ja) * 2014-10-24 2016-05-19 日本電信電話株式会社 消費電力予測方法および装置
CN106688042A (zh) * 2014-12-05 2017-05-17 桑迪士克科技有限责任公司 用于数据刷新的部分块擦除
CN107799149A (zh) * 2016-08-29 2018-03-13 爱思开海力士有限公司 数据存储装置及其操作方法
US20190033931A1 (en) * 2017-07-27 2019-01-31 Oracle International Corporation Temperature based frequency throttling
US20190065089A1 (en) * 2017-08-31 2019-02-28 Micron Technology, Inc. Memory device with power management
CN109634527A (zh) * 2018-12-12 2019-04-16 华中科技大学 一种ssd内实现的闪存寿命预测方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101506655B1 (ko) * 2008-05-15 2015-03-30 삼성전자주식회사 메모리 장치 및 메모리 데이터 오류 관리 방법
JP5596143B2 (ja) 2010-06-29 2014-09-24 パナソニック株式会社 不揮発性記憶システム、メモリシステム用の電源回路、フラッシュメモリ、フラッシュメモリコントローラ、および不揮発性半導体記憶装置
US8737136B2 (en) * 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
EP2633409A4 (en) * 2010-10-27 2014-07-23 Lsi Corp ADAPTIVE ECC TECHNIQUES FOR FLASH MEMORY AND BASED ON DATA STORAGE
US8745318B2 (en) * 2011-06-28 2014-06-03 Seagate Technology Llc Parameter tracking for memory devices
KR20130061967A (ko) * 2011-12-02 2013-06-12 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
KR102065664B1 (ko) * 2013-08-09 2020-01-13 삼성전자 주식회사 메모리 장치의 열화 상태 추정 방법 및 이를 이용한 메모리 시스템에서의 웨어 레벨링 방법
KR20150087646A (ko) 2014-01-22 2015-07-30 삼성전자주식회사 불 휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
KR102250423B1 (ko) * 2015-01-13 2021-05-12 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102222444B1 (ko) * 2015-03-05 2021-03-04 삼성전자주식회사 전력 상태 정보를 사용하는 저장 장치 및 그것의 동작 방법
KR102445390B1 (ko) 2015-09-02 2022-09-21 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR102281751B1 (ko) * 2015-10-01 2021-07-27 에스케이하이닉스 주식회사 플래시 메모리 시스템 동작 방법
KR20200099441A (ko) * 2019-02-14 2020-08-24 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
JP2020144958A (ja) * 2019-03-05 2020-09-10 キオクシア株式会社 メモリシステムおよび方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103026259A (zh) * 2010-08-04 2013-04-03 索尼公司 接收设备、接收方法和移动终端
CN104298488A (zh) * 2014-09-29 2015-01-21 上海兆芯集成电路有限公司 循环预测器指导的循环缓冲器
JP2016086521A (ja) * 2014-10-24 2016-05-19 日本電信電話株式会社 消費電力予測方法および装置
CN106688042A (zh) * 2014-12-05 2017-05-17 桑迪士克科技有限责任公司 用于数据刷新的部分块擦除
CN107799149A (zh) * 2016-08-29 2018-03-13 爱思开海力士有限公司 数据存储装置及其操作方法
US20190033931A1 (en) * 2017-07-27 2019-01-31 Oracle International Corporation Temperature based frequency throttling
US20190065089A1 (en) * 2017-08-31 2019-02-28 Micron Technology, Inc. Memory device with power management
CN109634527A (zh) * 2018-12-12 2019-04-16 华中科技大学 一种ssd内实现的闪存寿命预测方法

Also Published As

Publication number Publication date
CN111916142B (zh) 2023-12-08
KR102601152B1 (ko) 2023-11-13
US20200356430A1 (en) 2020-11-12
US11010226B2 (en) 2021-05-18
KR20200129947A (ko) 2020-11-18

Similar Documents

Publication Publication Date Title
US10884922B2 (en) Storage device and method of operating the same
US11037639B2 (en) Memory controller and method of operating the same for processing the failed read operation
US11194736B2 (en) Memory controller having improved map data access performance and method of operating the same
US10910045B2 (en) Storage device having improved cache performance and method of operating the same
US11099745B2 (en) Storage device and operating method thereof
CN111105836B (zh) 存储装置及其操作方法
CN112435703A (zh) 存储装置及其操作方法
US10650897B2 (en) Storage device and method for operating the same
US11017865B2 (en) Memory controller determining optimal read voltage and operating method thereof
CN111580744B (zh) 存储器控制器及其操作方法
CN111338979B (zh) 存储器控制器及其操作方法
US10910047B2 (en) Storage device and method of operating the same
CN110827873B (zh) 存储器控制器
US10861569B1 (en) Memory device and method of operating the memory device
US11086541B2 (en) Memory system, memory controller, and operating method
CN114388038A (zh) 存储器设备及其操作方法
CN114360593A (zh) 存储装置及其操作方法
CN111916142B (zh) 存储器控制器以及操作存储器控制器的方法
CN111580745A (zh) 存储装置及操作存储装置的方法
US11688464B2 (en) Storage device and method of operating the same
CN112306734A (zh) 存储装置及其操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant