CN110457230B - 存储器系统及其操作方法 - Google Patents

存储器系统及其操作方法 Download PDF

Info

Publication number
CN110457230B
CN110457230B CN201811586152.9A CN201811586152A CN110457230B CN 110457230 B CN110457230 B CN 110457230B CN 201811586152 A CN201811586152 A CN 201811586152A CN 110457230 B CN110457230 B CN 110457230B
Authority
CN
China
Prior art keywords
memory
write command
command
sequential
threshold
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
Application number
CN201811586152.9A
Other languages
English (en)
Other versions
CN110457230A (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 CN110457230A publication Critical patent/CN110457230A/zh
Application granted granted Critical
Publication of CN110457230B publication Critical patent/CN110457230B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • 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
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提供了一种存储器系统的操作方法。该操作方法包括确定当前提供的写入命令是顺序写入命令还是随机写入命令;当确定写入命令是顺序写入命令时,基于在先前垃圾收集操作之后提供的数据的总容量是否超过顺序命令阈值来执行垃圾收集操作;以及当确定写入命令是随机写入命令时,基于设定数量的当前提供命令之中的顺序写入命令的数量是否大于或等于预定数量以及在先前垃圾收集操作之后提供的数据的总容量是否超过顺序命令阈值,来执行垃圾收集操作。

Description

存储器系统及其操作方法
相关申请的交叉引用
本申请要求于2018年5月8日提交的申请号为10-2018-0052523的韩国专利申请的优先权,其公开内容通过引用而整体并入本文。
技术领域
本发明的实施例总体涉及一种存储器系统。特别地,实施例涉及一种能够通过使用存储器装置处理数据的存储器系统及该存储器系统的操作方法。
背景技术
新兴的计算机环境范例是普适计算,即可随时随地使用的计算系统。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储数据的一个或多个存储器装置的存储器系统。在这种电子装置中的存储器系统可用作主存储器装置或辅助存储器装置。
因为存储器系统不具有移动部件,所以它们提供优异的稳定性和耐用性、高信息访问速度和低功耗的优点。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态硬盘(SSD)。
发明内容
本发明的各种实施例涉及一种能够确定命令的连续性的存储器系统以及方法。
根据本发明的实施例,一种存储器系统的操作方法包括:确定当前提供的写入命令是顺序写入命令还是随机写入命令;当确定写入命令是顺序写入命令时,基于在先前垃圾收集操作之后提供的数据的总容量是否超过顺序命令阈值来执行垃圾收集操作;以及当确定写入命令是随机写入命令时,基于设定数量的当前提供命令之中的顺序写入命令的数量是否大于或等于预定数量以及在先前垃圾收集操作之后提供的数据的总容量是否超过顺序命令阈值,来执行垃圾收集操作。
根据本发明的实施例,一种存储器系统,包括:存储器装置,适于存储数据;以及控制器,适于控制存储器装置,其中控制器确定当前提供的写入命令是顺序写入命令还是随机写入命令;当确定写入命令是顺序写入命令时,基于在先前垃圾收集操作之后提供的数据的总容量是否超过顺序命令阈值来执行垃圾收集操作;以及当确定写入命令是随机写入命令时,基于设定数量的当前提供命令之中的顺序写入命令的数量是否大于或等于预定数量以及在所述先前垃圾收集操作之后提供的数据的总容量是否超过顺序命令阈值,来执行垃圾收集操作。
根据本发明的实施例,一种存储器系统的操作方法包括:确定当前提供的写入命令是顺序写入命令还是随机写入命令;当确定写入命令是顺序写入命令时,基于在先前垃圾收集操作之后提供的命令的总量是否超过顺序命令阈值来执行垃圾收集操作;以及当确定写入命令是随机写入命令时,基于设定数量的当前提供命令之中的顺序写入命令的数量是否大于或等于预定数量以及在所述先前垃圾收集操作之后提供的命令的总数量是否超过顺序命令阈值,来执行所述垃圾收集操作。
根据本发明的实施例,一种存储器系统包括:存储器装置,适于存储数据;以及控制器,适于控制存储器装置,其中控制器确定当前提供的写入命令是顺序写入命令还是随机写入命令;当写入命令是顺序写入命令时,基于在先前垃圾收集操作之后提供的命令的总量是否超过顺序命令阈值来执行垃圾收集操作;以及当写入命令是随机写入命令,并且当前提供的多个命令之中的顺序写入命令的数量大于或等于设置数量时,基于命令的总数量是否超过顺序命令阈值来执行垃圾收集操作。
根据本发明的实施例,一种存储器系统包括:存储器装置,适于存储数据;以及控制器,适于控制存储器装置,其中控制器接收写入命令;确定写入命令是顺序写入命令还是随机写入命令;基于写入命令的确定类型、设定数量的接收命令之中的顺序写入命令的数量是否超过可允许数量以及存储在存储器装置中的写入数据的量来执行垃圾收集操作。
附图说明
图1是示出根据本发明的实施例的数据处理系统的框图。
图2是示出根据本发明的实施例的存储器装置的示图。
图3是示出根据本发明的实施例的存储器装置中的存储块的存储器单元阵列的电路图。
图4是示出根据本发明的实施例的存储器装置的三维(3D)结构的示图。
图5是示出存储器系统的操作的流程图。
图6是示出根据本发明的实施例的存储器系统的框图。
图7是示出根据本发明的实施例的存储器系统的操作的流程图。
图8A至图8C是示出根据本发明的实施例的存储器系统的框图。
图9至图17是示出根据本发明的各种实施例的数据处理系统的示例性应用的示图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,本公开的元件和特征可以以不同于本文公开的元件和特征来配置或布置。因此,本发明不限于本文阐述的实施例。相反,提供所描述的实施例使得本公开完整和全面,并且将本发明充分地传达给本发明所属领域的技术人员。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。注意的是,对“实施例”、“另一实施例”等的参考不一定仅意味着一个实施例,并且对任意这种短语的不同参考不一定是针对相同实施例。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在本文使用以描述各种元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与另外具有相同或相似名称的另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,在一个示例中的第一元件也可在另一示例中被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地示出实施例的特征,比例可能已经被夸大。当元件被称为“连接至”或“联接到”另一元件时,应该理解的是,前者可直接连接至或联接到后者,或者前者通过一个或多个中间元件电连接或电联接至后者。除非另有说明或上下文另有指示,否则无论是直接连接或联接还是间接连接或联接的两个元件之间的通信可以是有线的或无线的。
另外,还将理解的是,当元件被称为在两个元件“之间”时,两个元件之间可以仅有一个元件或也可存在一个或多个中间元件。
本文使用的术语仅是描述特定实施例的目的,并不旨在限制本发明。
如本文使用的,单数形式也旨在包括复数形式,反之亦然,除非上下文另有清楚地说明。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有限定,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域中普通技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开的上下文和相关领域中的含义一致的含义并且将不以理想化或过于正式的意义来解释,除非本文如此明确地限定。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
也应注意的是,在一些情况下,对相关领域的技术人员显而易见的是,结合一个实施例描述的特征或元件可单独使用或与另一实施例的其它特征或元件结合使用,除非另有明确说明。
图1是示出根据本发明的实施例的数据处理系统100的框图。
参照图1,数据处理系统100可包括被可操作地联接至存储器系统110的主机102。
主机102可包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任何一种或诸如台式计算机、游戏机、电视(TV)和投影仪的各种非便携式电子装置中的任何一种。
主机102可包括至少一个操作系统(OS),其可管理和控制主机102的全部功能和操作,并且使用数据处理系统100或存储器系统110来提供主机102和用户之间的操作。OS可支持与用户的目的和使用相对应的功能和操作。例如,根据主机102的移动性,OS可被划分为通用OS和移动OS。根据用户的环境,通用OS可被分为个人OS和企业OS。例如,配置为支持向一般用户提供服务的功能的个人OS可包括Windows和Chrome,以及被配置为保护和支持高性能的企业OS可包括Windows服务器、Linux和Unix。此外,被配置为支持向用户提供移动服务的功能和系统的省电功能的移动OS可包括Android、iOS和Windows Mobile。主机102可包括多个OS,并且执行OS以对存储器系统110执行与用户请求相对应的操作。
存储器系统110可响应于主机102的请求操作,以存储用于主机102的数据。存储器系统110的非限制性示例可包括固态硬盘(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用存储总线(USB)装置、通用闪存(UFS)装置、标准闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可包括嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)和微型-MMC等。SD卡可包括迷你-SD卡和微型-SD卡。
存储器系统110可通过各种类型的存储装置来实施。这种存储装置的示例可包括但不限于诸如DRAM动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置和诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置。闪速存储器可具有三维(3D)堆叠结构。
存储器系统110可包括控制器130和存储器装置150。存储器装置150可存储用于主机102的数据,并且控制器130可控制将数据存储到存储器装置150中。
控制器130和存储器装置150可被集成到单个半导体装置中,其中单个半导体装置可被包括在如上所例示的各种类型中的任意一个的存储器系统中。例如,控制器130和存储器装置150可集成为一个半导体装置来构成固态硬盘(SSD)。当存储器系统110用作SSD时,可提高连接到存储器系统110的主机102的操作速度。另外,控制器130和存储器装置150可集成为一个半导体装置来构成存储卡。例如,控制器130和存储器装置150可构成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)卡,标准闪存卡(CF),智能媒体(SM)卡,记忆棒,包括尺寸减小的MMC(RS-MMC)和微型-MMC的多媒体卡(MMC),包括迷你-SD、微型-SD和SD高容量(SDHC)的安全数字(SD)卡,或通用闪存(UFS)装置。
存储器系统110的非限制性应用示例可包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传输/接收信息的装置、构成家庭网络的各种电子装置中的一个、构成计算机网络的各种电子装置中的一个、构成远程信息处理的各种电子装置中的一个、射频识别(RFID)装置或构成计算系统的各种部件中的一个。
存储器装置150可以是即使不供应电力,也保留存储的数据的非易失性存储器装置。存储器装置150可通过写入操作来存储从主机102提供的数据,并且通过读取操作将存储在其中的数据提供至主机102。存储器装置150可包括多个存储块152、154、156……(在下文中,称为“存储块152至156”),多个存储块152-156中的每一个可包括多个页面。多个页面中的每一个可包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是闪速存储器。闪速存储器可具有三维(3D)堆叠结构。
因为稍后将参照图2至图4详细描述包括3D堆叠结构实施例的存储器装置150的结构,因此在此省略对该方面的进一步描述。
控制器130可响应于来自主机102的请求控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供至主机102,并将从主机102提供的数据存储至存储器装置150中。对于该操作,控制器130可控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
控制器130可包括主机接口(I/F)132、处理器134、错误校正码(ECC)部件138、电源管理单元(PMU)140、存储器接口I/F 142(或者NAND闪速控制器(NFC))以及存储器144,其全部通过内部总线可操作地联接。
主机接口132可被配置成处理主机102的命令和数据。主机接口132可通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
ECC部件138可检测并且校正从存储器装置150读取的数据中包含的错误。换言之,ECC部件138可通过在ECC编码进程期间使用的ECC代码对从存储器装置150读取的数据执行错误校正解码进程。根据错误校正解码进程的结果,ECC部件138可输出信号,例如错误校正成功/失败信号。当错误位的数量大于可校正错误位的阈值时,ECC部件138可不校正错误位,并且替代地,可输出错误校正失败信号。
ECC部件138可通过诸如低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、涡轮码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等的编码调制执行错误校正操作。然而,ECC部件138不限于任何特定的结构。ECC部件138可包括用于适当错误校正的所有电路、模块、系统或装置。
PMU 140可提供和管理控制器130的电力。
存储器I/F 142可用作用于将控制器130和存储器装置150接口连接的存储器/存储接口,使得控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器(具体地是NAND闪速存储器)时,存储器I/F 142可在处理器134的控制下生成用于存储器装置150的控制信号并处理待被提供至存储器装置150的数据。存储器I/F142可用作用于处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,存储器I/F 142可支持控制器130和存储器装置150之间的数据传输。
存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可响应于来自主机102的请求控制存储器装置150执行读取操作、写入操作、编程操作和擦除操作。控制器130可将从存储器装置150读取的数据提供至主机102并可将从主机102提供的数据存储到存储器装置150中。存储器144可存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可通过易失性存储器来实施。例如,存储器144可通过静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。存储器144可设置在控制器130内部或外部。图1示出了设置在控制器130内部的存储器144,但这仅是示例。在实施例中,存储器144可通过具有在存储器144和控制器130之间传输数据的存储器接口的外部易失性存储器来实施。
处理器134可控制存储器系统110的全部操作。处理器134可驱动固件来控制存储器系统110的全部操作。固件可被称为闪存转换层(FTL)。而且,处理器134可被实施为微处理器或中央处理单元(CPU)。
例如,控制器130可通过处理器134在存储器装置150中执行由主机102请求的操作,其中处理器134被实施为微处理器或CPU。换言之,控制器130可执行与从主机102或其它来源接收的命令相对应的命令操作。控制器130可执行前台操作作为与从主机102接收到的命令相对应的命令操作。例如,控制器130可执行对应于写入命令的编程操作、对应于读取命令的读取操作、对应于擦除命令的擦除操作以及与设置参数命令或设置特征命令相对应的参数设置操作。
控制器130可通过处理器134对存储器装置150执行后台操作,其中处理器134被实施为微处理器或CPU。对存储器装置150执行的后台操作可包括:将存储在存储器装置150的存储块152至156之中的一些存储块中的数据复制到其它存储块并进行处理的操作,例如垃圾收集(GC)操作;在存储块152至156之间或这种存储块的数据之间的交换操作,例如损耗均衡(WL)操作;将存储在控制器130中的映射数据存储在存储块152至156中的操作,例如映射清除(flush)操作;或者管理存储器装置150的坏块的操作,例如在存储块152至156之中检测坏块并进行处理的坏块管理操作。
参照图2至图4详细描述根据本发明的实施例的存储器系统的存储器装置。
图2是示出根据本发明的实施例的存储器装置,例如图1的存储器装置150的示图。图3是示出存储器装置150中的存储块的存储器单元阵列的示例性配置的电路图。图4是示出存储器装置150的三维(3D)结构的示意图。
参照图2,存储器装置150可包括多个存储块0至N-1,例如,存储块0(BLOCK0)210、存储块1(BLOCK1)220、存储块2(BLOCK2)230以及存储块N-1(BLOCKN-1)240。存储块210、220、230和240中的每一个可包括多个页面,例如2M个页面,页面的数量可根据电路设计而变化。例如,在一些应用中,存储块中的每一个可包括M个页面。页面中的每一个可包括联接到多个字线WL的多个存储器单元。
而且,存储器装置150可包括多个存储块,其中存储块可包括存储1位数据的单层单元(SLC)存储块和/或存储2位数据的多层单元(MLC)存储块。SLC存储块可包括由在一个存储器单元中存储一位数据的存储器单元实现的多个页面。SLC存储块可具有较快的数据操作性能和高耐用性。另一方面,MLC存储块可包括由在一个存储器单元中存储多位数据,例如两位或更多位数据的存储器单元实现的多个页面。MLC存储块可具有比SLC存储块更大的数据存储空间。换言之,MLC存储块可被高度集成。特别地,存储器装置150可包括MLC存储块,其中MLC存储块中的每一个包括由在一个存储器单元中能够存储两位数据的存储器单元实现的多个页面,而且包括具有每个存储两个以上的位的存储器单元的其它存储块。例如,存储器装置150可以包括三层单元(TLC)存储块、四层单元(QLC)存储块和/或多层单元存储块等,三层单元(TLC)存储块中的每一个包括由在一个存储器单元中能够存储三位数据的存储器单元实现的多个页面,四层单元(QLC)存储块中的每一个包括由在一个存储器单元中能够存储四位数据的存储器单元实现的多个页面,多层单元存储块中的每一个包括由在一个存储器单元中能够存储五位或更多位数据的存储器单元实现的多个页面。
根据本发明的实施例,存储器装置150被描述为非易失性存储器,诸如闪速存储器,例如NAND闪速存储器。然而,存储器装置150可被实现为以下中的任何一种:相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM或ReRAM)、铁电随机存取存储器(FRAM)、自旋转移扭矩磁性随机存取存储器(STT-RAM或STT-MRAM)。
存储块210、220、230和240可通过编程操作来存储从主机102传输的数据,并且通过读取操作来将所存储的数据传输到主机102。
参照图3,存储块330可对应于包括在存储器系统110的存储器装置150中的多个存储块152至156中的任意一个。存储块330可包括联接到多个相应位线BL0至BLm-1的多个单元串340。每个列的单元串340可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元MC0至MCn-1可被串联地被联接在漏极选择晶体管DST和源极选择晶体管SST之间。在实施例中,存储器单元晶体管MC0至MCn-1中的每一个可通过能够存储多位数据信息的MLC来实施。单元串340中的每一个可被电联接到多个位线BL0至BLm-1中的相应位线。例如,如图3所示,第一单元串联接到第一位线BL0,并且最后单元串联接到最后位线BLm-1。
虽然图3示出了NAND闪速存储器单元,但是本发明不限于此。注意的是,存储器单元可以是NOR闪速存储器单元或者包括其中组合了两个或更多个类型存储器单元的混合闪速存储器单元。还应注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置,或者包括作为电荷存储层的绝缘层的电荷撷取闪速(CTF)存储器装置。
存储器装置150可进一步包括提供字线电压的电压供给310,字线电压包括根据操作模式供应至字线的编程电压、读取电压和通过电压。电压供给310的电压产生操作可由控制电路(未示出)来控制。在控制电路的控制下,电压供给310可选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择的存储块的字线中的一个,并且按需要将字线电压提供给所选择的字线和未选择的字线。
存储器装置150可包括由控制电路控制的读取和写入(读取/写入)电路320。在验证/正常读取操作期间,读取/写入电路320可用作用于从存储器单元阵列读取数据的读出放大器。在编程操作期间,读取/写入电路320可用作根据待被存储在存储器单元阵列中的数据驱动位线的写入驱动器。在编程操作期间,读取/写入电路320可从缓冲器(未示出)接收待被存储到存储器单元阵列中的数据,并根据接收的数据驱动位线。读取/写入电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器(PB)322至326。页面缓冲器322至326中的每一个可包括多个锁存器(未示出)。
存储器150可由2D或3D存储器装置来实施。特别地,如图4所示,存储器装置150可由具有3D堆叠结构的非易失性存储器装置来实施。当存储器装置150具有3D结构时,存储器装置150可包括多个存储块BLK0至BLKN-1。图4示出图1所示的存储器装置150的存储块152至156。存储块152至156中的每一个可以3D结构(或垂直结构)来实现。例如,存储块152至156可以是具有在例如x轴方向、y轴方向和z轴方向的第一至第三方向上延伸的尺寸的三维结构。
包括在存储器装置150中的每个存储块330可包括在第二方向上延伸的多个NAND串NS以及在第一方向和第三方向上延伸的多个NAND串NS(未示出)。NAND串NS中的每一个可联接到位线BL、至少一个串选择线SSL、至少一个接地选择线GSL、多个字线WL、至少一个虚拟字线DWL(未示出)和共源线CSL,并且NAND串NS中的每一个可包括多个晶体管结构TS(未示出)。
简而言之,存储器装置150的存储块152至156之中的每个存储块330可联接到多个位线BL、多个串选择线SSL、多个接地选择线GSL、多个字线WL、多个虚拟字线DWL以及多个共源线CSL。每个存储块330可包括多个NAND串NS。而且,在每个存储块330中,一个位线BL可联接到多个NAND串NS,以在一个NAND串NS中实现多个晶体管。而且,每一个NAND串NS的串选择晶体管SST可联接到相应位线BL,并且每一个NAND串NS的接地选择晶体管GST可联接到共源线CSL。存储器单元MC可被设置在每一个NAND串NS的串选择晶体管SST和接地选择晶体管GST之间。换言之,多个存储器单元可被实现在存储器装置150的存储块152至156的存储块152的每一个存储块中。参照图5至图8详细描述根据本发明的实施例的存储器系统中的关于存储器装置的数据处理操作,特别是当执行与多个命令相对应的多个命令操作时执行的数据处理操作。
图5是示出存储器系统110的操作的流程图。
通常,非易失性存储器装置不支持重写操作。因此,当更新存储在存储器装置150的页面中的数据时,存储器装置150使存储现有数据的页面无效,并且将待更新的数据写入到新的页面。为了防止存储器系统110的效率由于无效页面的增加而劣化,控制器130可以执行作为后台操作的垃圾收集操作。
具体地,垃圾收集操作包括下列的一系列进程:选择包括无效页面的存储块作为牺牲块、将存储在牺牲块中的有效数据复制到目标块的空页面并且擦除牺牲块的数据以生成空闲块。
可以基于在先前垃圾收集操作之后写入到存储器装置150的数据的总容量是否超过阈值来执行垃圾收集操作。
当频繁地执行随机写入操作时,可能由于数据碎片化而使有效页面分散,并且可能增加垃圾收集操作的必要性。因此,当由控制器130接收的命令是随机写入命令时,即使在先前垃圾收集操作之后写入小容量的数据,控制器130也可以控制存储器装置150执行垃圾收集操作。
换言之,控制器130可以将与随机写入命令相关的垃圾收集操作的阈值设置为小于与顺序写入命令相关的垃圾收集操作的阈值。在下面的本发明的各种实施例中,与随机写入命令相关的垃圾收集操作的阈值可以被定义为随机命令阈值,并且与顺序写入命令相关的垃圾收集操作的阈值可以被定义为顺序命令阈值。例如,控制器130可以将顺序命令阈值设置为100MB并且将随机命令阈值设置为10MB。
图5是示出图1的存储器系统110的操作的示例的流程图。
参照图5,在步骤S502中,控制器130可以从主机102接收命令。
在步骤S504中,控制器130可以确定当前从主机102接收的命令是否是顺序写入命令。
当确定当前接收的命令是顺序写入命令(在步骤S504中为“是”)时,在步骤S506中,控制器130可以确定在先前垃圾收集操作之后写入的数据的总容量是否超过顺序命令阈值。
当确定写入数据的总容量超过顺序命令阈值(在步骤S506中为“是”)时,在步骤S510中,控制器130可以执行垃圾收集操作。
当确定写入数据的总容量未超过顺序命令阈值(在步骤S506中为“否”)时,控制器130可以完成相应操作。
例如,可以在先前垃圾收集操作之后提供多个写入命令,使得总共50MB的数据被写入。在当前提供的写入命令是对10MB数据的顺序写入命令时,可以确定写入数据的总容量未超过100MB的顺序命令阈值。因此,控制器130可以在不执行垃圾收集操作的情况下完成相应操作。
当确定当前接收的命令是随机写入命令(即,在步骤S504中为“否”)时,在步骤S508中,控制器130可以确定在先前垃圾收集操作之后写入的数据的总容量是否超过随机命令阈值。
当确定写入数据的总容量超过随机命令阈值(在步骤S508中为“是”)时,在步骤S510中,控制器130可以执行垃圾收集操作。
当确定写入数据的总容量未超过随机命令阈值(在步骤S508中为“否”)时,控制器130可以完成相应操作。
如上所述,当仅基于在先前垃圾收集操作之后写入的数据的总容量和当前接收的命令来确定是否执行垃圾收集操作时,即使在连续提供顺序命令时提供单个随机写入命令,也可能立即执行垃圾收集操作。
在上面的示例中,在先前垃圾收集操作之后,可以仅连续地提供顺序命令作为多个写入命令,使得可以写入总共50MB的数据。
然而,当随后提供了单个随机写入命令时,因为作为步骤S504的确定结果,当前命令是随机写入命令,所以控制器130执行步骤S508。
在步骤S508中,控制器130可以确定写入数据的总容量超过10MB的随机命令阈值。因此,在步骤S510中,可以执行垃圾收集操作。
当在连续操作期间临时提供了随机写入命令时,垃圾收集操作可能通过临时随机写入命令而被不必要地执行,从而可能使存储器系统110的性能劣化。
可能存在在连续地提供顺序写入命令时提供了随机写入命令的各种情况。例如,即使当主机102根据连续工作量提供命令时,也可能临时地提供与文件系统数据有关的命令。另外,即使当主机102继续提供顺序写入命令时,顺序写入命令也在命令队列中被重新排列,并且写入操作的地址的连续性发生劣化,从而可以确定当前提供的写入命令是随机写入命令。
为了解决这样的问题,根据本发明的实施例,即使在连续地提供顺序写入命令时临时提供了随机写入命令,也可以通过防止垃圾收集操作由于临时随机写入命令而被不必要地执行,来提高存储器系统110的性能。
图6是示出根据本发明的实施例的存储器系统110的框图。
参照图6,存储器系统110可以包括控制器130和存储器装置150。控制器130可以包括确定部件610和存储器630。确定部件610可以利用适于执行本文描述的进程的硬件、软件、固件或其组合来实施。在实施例中,确定部件利用图1中所示的处理器134来实施。
确定部件610可以基于接收到的写入命令是顺序写入命令还是随机写入命令并且基于写入数据的总容量是否超过阈值,来确定是否执行垃圾收集操作。另外,确定部件610可以确定设定数量的当前提供命令之中的顺序写入命令的数量是否大于或等于预定数量,这将在下面描述。
存储器630可以存储接收到的写入命令是顺序写入命令还是随机写入命令的确定结果。
根据本发明的实施例,确定部件610可以对应于上面参照图1描述的处理器134,存储器630可以对应于上面参照图1描述的存储器144。
图7是示出根据本发明的实施例的存储器系统,例如图6的存储器系统110的操作的流程图。
图8A至图8C是示出根据本发明的实施例的存储器系统,例如图6的存储器系统110的框图。
参照图7,在步骤S702中,控制器130可以从主机102接收写入命令。
控制器130可以与写入命令一起接收起始地址(写入地址)和写入数据,以开始写入操作。例如,当写入地址为‘0’并且写入数据的大小为‘5’块大小时,控制器130可以控制存储器装置150对从起始写入地址‘0’至最后写入地址‘4’范围内的地址执行写入操作,从起始写入地址‘0’至最后写入地址‘4’范围内的地址为‘5’个写入数据的块。块大小是可以写入至一个地址的写入数据的大小。
在步骤S704中,控制器130的确定部件610可以确定当前提供的写入命令是否是顺序写入命令。
在当前写入地址与先前执行的写入操作的最后写入地址连续时,确定部件610可以确定当前提供的写入命令是顺序写入命令。例如,当先前起始写入地址为‘0’,先前写入数据的大小为‘5’,当前写入地址为‘5’,并且当前写入数据的大小为‘5’时,因为基于先前提供的写入命令的写入操作的最后地址是‘4’,所以当前写入地址可以被认为与先前执行的写入操作的最后写入地址连续。因此,确定部件610可以确定当前提供的写入命令是顺序写入命令。
当确定当前提供的写入命令是顺序写入命令(在步骤S704中为“是”)时,确定部件610可以将确定结果存储在存储器630中。此外,在步骤S706中,确定部件610可以确定在先前垃圾收集操作之后写入到存储器装置150的数据的总量或总容量是否超过顺序命令阈值。
图8A示出了存储在存储器630中的确定结果指示当前提供的写入命令是顺序写入命令的情况。图8A中所示的阴影线的“顺序”块表示该确定结果。
再次参照图7,当在先前垃圾收集操作之后写入到存储器装置150的数据的总容量超过顺序命令阈值(在步骤S706中为“是”)时,在步骤S712中,控制器130控制存储器装置150执行垃圾收集操作。
当确定在先前垃圾收集操作之后写入到存储器装置150的数据的总容量未超过顺序命令阈值(在步骤S706中为“否”)时,控制器130完成相应操作。
当确定当前提供的写入命令是随机写入命令(在步骤S704中为“否”)时,确定部件610可以将确定结果存储在存储器630中。然后,在步骤S708中,确定部件610可以确定设定数量的当前提供命令之中的顺序写入命令的数量是否大于或等于预定数量。具体地,存储器630可以存储设定数量的当前提供命令,并且确定部件610可以参考存储在存储器630中的步骤S704的确定结果来确定顺序写入命令的数量是否大于或等于预定数量。
图8B示出了存储在存储器630中(在步骤S704中获得)的确定结果指示当前提供的写入命令是随机写入命令的情况。
图8B中所示的阴影线的“随机”块表示该确定结果。
图8C示出了确定部件610参考存储在存储器630中的确定结果来在步骤S708中执行确定的情况。
图8C中所示的由虚线定义的框中的阴影线表示设定数量的确定结果。
例如,存储器630可以存储针对100个当前提供命令的步骤S704的确定结果。也就是说,存储器630可以存储100个当前提供命令中的每一个的类型(顺序写入或随机写入)的指示。当预定数量大约为90时,确定部件610可以参考所存储的100个命令的结果来确定100个当前提供命令之中的顺序写入命令的数量是否大于或等于90。
再次参照图7,当确定设定数量的当前提供命令之中的顺序写入命令的数量小于预定数量(在步骤S708中为“否”)时,在步骤S710中,确定部件610可以确定在先前垃圾收集操作之后写入到存储器装置150的数据的总容量是否超过随机命令阈值。
当确定在先前垃圾收集操作之后写入到存储器装置150的数据的总容量超过随机命令阈值(在步骤S710中为“是”)时,在步骤S712中,控制器130控制存储器装置150执行垃圾收集操作。
当确定在先前垃圾收集操作之后写入到存储器装置150的数据的总容量未超过随机命令阈值(在步骤S710中为“否”)时,控制器130完成相应操作。
当确定设定数量的当前提供命令之中的顺序写入命令的数量大于或等于预定数量(在步骤S708中为“是”)时,在步骤S706中,即使当前提供的写入命令是随机写入命令,确定部件610也可以确定在先前垃圾收集操作之后写入到存储器装置150的数据的总容量是否超过顺序命令阈值。因此,仅当在步骤S706中确定写入到存储器装置150的数据的总容量超过顺序命令阈值时,才可以在步骤S712执行垃圾收集操作。
换言之,即使在连续操作期间临时生成了随机写入命令,垃圾收集操作也可不通过临时随机写入命令而被不必要地执行。
因此,根据本发明的实施例,因为防止了不必要地执行垃圾收集操作,所以可以提高存储器系统110的性能。
如上所述,在步骤S706和步骤S710中,确定部件610可以确定在先前垃圾收集操作之后写入到存储器装置150的数据的总容量是否超过顺序命令阈值和随机命令阈值。
根据本发明的实施例,在步骤S706和S710中,确定部件610可以确定在先前垃圾收集操作之后提供的命令的总数量是否超过阈值。
下面将参照图9至图17详细描述可以由包括如上参照图1至图8C描述的存储器装置150和控制器130的存储器系统110形成的数据处理系统和电子装置。
图9是示出包括根据实施例的存储器系统的数据处理系统的示图。图9示出了可以应用存储器系统的存储卡系统6100。
参照图9,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可被连接至通过非易失性存储器(NVM)实施的存储器装置6130,并被配置成访问存储器装置6130。例如,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130和主机(未示出)之间的接口连接并驱动固件以控制存储器装置6130。也就是说,存储器控制器6120可对应于参照图1描述的存储器系统110的控制器130,并且存储器装置6130可对应于参照图1描述的存储器系统110的存储器装置150。
因此,存储器控制器6120可包括随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正部件。
存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1所述,存储器控制器6120可被配置成通过诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WIFI以及蓝牙。因此,根据实施例的存储器系统和数据处理系统可应用于有线和/或无线电子装置,或者特别是移动电子装置。
存储器装置6130可通过非易失性存储器来实施。例如,存储器装置6130可利用诸如以下的各种非易失性存储器装置中的任何一种来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器6120和存储器装置6130可被集成至单个半导体装置中。例如,存储器控制器6120和存储器装置6130可被集成为形成固态硬盘(SSD)。此外,存储器控制器6120以及存储器装置6130可形成诸如以下的存储卡:个人计算机(PC)卡(个人计算机存储卡国际协会卡(PCMCIA))、标准闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、数字安全(SD)卡(例如,SD、迷你SD、微型SD和SDHC)和/或通用闪存(UFS)。
图10是示意性地示出根据实施例的包括存储器系统的数据处理系统6200的另一示例的示图。
参照图10,数据处理系统6200可包括具有一个或多个非易失性存储器(NVM)的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图10中所示的数据处理系统6200可用作诸如存储卡(例如,CF、SD、微型SD等)或USB装置的存储介质,如参照图1描述的。存储器装置6230可对应于图1所示的存储器系统110中的存储器装置150,并且存储器控制器6220可对应于图1所示的存储器系统110中的控制器130。
存储器控制器6220可响应于主机6210的请求控制对存储器装置6230的读取操作、写入操作或擦除操作。存储器控制器6220可包括一个或多个中央处理单元(CPU)6221、诸如随机存取存储器(RAM)6222的缓冲存储器、错误校正码(ECC)电路6223、主机接口6224以及诸如NVM接口6225的存储器接口。
CPU 6221可控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理操作和坏页面管理操作。RAM 6222可根据CPU 6221的控制来操作,并且用作工作存储器、缓冲存储器或高速缓冲存储器。当RAM 6222用作工作存储器时,由CPU 6221处理的数据可以临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可用于缓冲从主机6210传输到存储器装置6230或从存储器装置6230传输到主机6210的数据。当RAM 6222用作高速缓冲存储器时,RAM 6222可辅助存储器装置6230以高速运转。
ECC电路6223可对应于图1所示的控制器130的ECC部件138。如参照图1所述,ECC电路6223可生成用于校正从存储器装置6230提供的数据的失效位或错误位的错误校正码(ECC)。ECC电路6223可对被提供给存储器装置6230的数据执行错误校正编码,由此形成具有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。ECC电路6223可使用奇偶校验位来校正错误。例如,如参照图1所述,ECC电路6223可使用低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、涡轮码、里德-所罗门码、卷积码、递归系统码(RSC)或诸如网格编码调制(TCM)或分组编码调制(BCM)的编码调制来校正错误。
存储器控制器6220可通过主机接口6224向主机6210传输数据和/或接收来自主机6210的数据,并通过NVM接口6225向存储器装置6230传输数据/接收来自存储器装置6230的数据。主机接口6224可通过并行高级技术附件(PATA)总线、串行高级技术附件(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、高速外围组件互连(PCIe)或NAND接口而连接到主机6210。存储器控制器6220可利用诸如WiFi或长期演进(LTE)的移动通信协议具有无线通信功能。存储器控制器6220可以连接到外部装置,例如主机6210或另一外部装置,并且然后将数据传输到外部装置/从外部装置接收数据。特别地,由于存储器控制器6220被配置成通过各种通信协议中的一种或多种与外部装置进行通信,因此存储器系统和数据处理系统可应用于有线和/或无线电子装置,特别是移动电子装置。
图11是示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。图11示出应用了存储器系统的固态硬盘(SSD)6300。
参照图11,SSD 6300可包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可对应于图1的存储器系统110中的控制器130,并且存储器装置6340可对应于图1的存储器系统中的存储器装置150。
更具体地,控制器6320可通过多个通道CH1至CHi连接至存储器装置6340。控制器6320可包括一个或多个处理器6321、缓冲存储器6325、错误校正码(ECC)电路6322、主机接口6324和例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个闪速存储器NVM提供的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可由诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM和图形RAM(GRAM)的易失性存储器实现,或者由诸如铁电RAM(FRAM)、电阻式RAM(RRAM或ReRAM)、自旋转移扭矩磁性RAM(STT-MRAM)和相变RAM(PRAM)的非易失性存储器实现。例如,图11示出缓冲存储器6325设置在控制器6320中。然而,缓冲存储器6325可处于控制器6320的外部。
ECC电路6322可在编程操作期间计算待被编程到存储器装置6340的数据的错误校正码(ECC)值,在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作,并在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与诸如主机6310的外部装置的接口功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可提供应用了图1的存储器系统110的多个SSD 6300来实施数据处理系统,例如,独立磁盘冗余阵列(RAID)系统。RAID系统可包括多个SSD 6300和用于控制多个SSD6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的写入命令的RAID级别信息,在SSD6300中选择一个或多个存储器系统或SSD6300,并将对应于写入命令的数据输出到选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的读取命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300,并将从所选择的SSD 6300读取的数据提供给主机6310。
图12是示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。图12示出应用了存储器系统的嵌入式多媒体卡(eMMC)6400。
参照图12,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于图1的存储器系统110中的控制器130,并且存储器装置6440可对应于图1的存储器系统110中的存储器装置150。
更具体地,控制器6430可通过多个通道连接至存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口(I/F)6431和诸如NAND接口(I/F)6433的存储器接口。
内核6432可控制eMMC 6400的全部操作,主机接口6431可提供控制器6430和主机6410之间的接口功能,并且NAND接口6433可提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可用作并行接口,例如参照图1所描述的MMC接口。此外,主机接口6431可用作串行接口,例如超高速(UHS)-I或UHS-II接口。
图13至图16是示出根据一个或多个实施例的包括存储器系统的数据处理系统的示例的示图。图13至图16示出可以应用了存储器系统的通用闪速存储(UFS)系统。
参照图13至图16,UFS系统6500、6600、6700和6800可分别包括主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830。主机6510、6610、6710和6810可用作有线和/或无线电子装置或特别是移动电子装置的应用处理器。UFS装置6520、6620、6720和6820可用作嵌入式UFS装置。UFS卡6530、6630、6730和6830可用作外部嵌入式UFS装置或可移除UFS卡。
各个UFS系统6500、6600、6700和6800中的主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS协议与外部装置通信,例如有线和/或无线电子装置特别是移动电子装置通信。UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可由图1所示的存储器系统110实现。例如,在UFS系统6500、6600、6700和6800中,UFS装置6520、6620、6720和6820可参照图10至图12描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730和6830可以参照图9描述的存储卡系统6100的形式来实施。
此外,在UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过例如移动产业处理器接口(MIPI)中的MIPI M-PHY或MIPI统一协议(UniPro)的UFS接口彼此通信。此外,UFS装置6520、6620、6720和6820与UFS卡6530、6630、6730和6830可通过除UFS协议以外的各种协议中的任意一个,例如通用串行总线(USB)闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你-SD和微型-SD彼此通信。
在图13所示的UFS系统6500中,主机6510、UFS装置6520以及UFS卡6530中的每一个可包括UniPro。主机6510可执行交换操作,以便与UFS装置6520和UFS卡6530通信。特别地,主机6510可通过例如UniPro处的L3交换的链路层交换与UFS装置6520或UFS卡6530通信。UFS装置6520和UFS卡6530可通过主机6510的UniPro处的链路层交换来彼此通信。在图13中,为了清楚起见,示出一个UFS装置6520和一个UFS卡6530连接到主机6510的配置。然而,多个UFS装置和UFS卡可并联或以星型形式连接至主机6510,并且多个UFS卡可并联或以星型形式连接至UFS装置6520,或者串联或以链型形式连接至UFS装置6520。
在图14所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可包括UniPro,并且主机6610可通过执行交换操作的交换模块6640,例如,通过在UniPro处执行链路层交换例如L3交换的交换模块6640,与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可通过UniPro处的交换模块6640的链路层交换来彼此通信。在图14中,为了清楚起见,示出一个UFS装置6620和一个UFS卡6630连接到交换模块6640的配置。然而,多个UFS装置和UFS卡可并联或以星型形式连接至交换模块6640,并且多个UFS卡可串联或以链型形式连接至UFS装置6620。
在图15所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可包括UniPro。主机6710可通过执行交换操作的交换模块6740,例如通过在UniPro处执行例如L3交换的链路层交换的交换模块6740,与UFS装置6720或UFS卡6730通信。UFS装置6720和UFS卡6730可通过交换模块6740在UniPro处的链路层交换来彼此通信,并且交换模块6740可在UFS装置6720内部或外部与UFS装置6720集成为一个模块。在图15中,为了清楚起见,示出一个UFS装置6720和一个UFS卡6730连接到交换模块6740的配置。然而,每个都包括交换模块6740和UFS装置6720的多个模块可并联或以星型形式连接至主机6710,或者串联或以链型形式彼此连接。此外,多个UFS卡可并联或以星型形式连接至UFS装置6720。
在图16所示的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个可包括M-PHY和UniPro。UFS装置6820可执行交换操作,以便与主机6810和UFS卡6830通信。特别地,UFS装置6820可以通过用于与主机6810通信的M-PHY和UniPro模块之间的交换操作和用于与UFS卡6830通信的M-PHY和UniPro模块之间的交换操作,例如通过目标标识符(ID)交换操作,来与主机6810或UFS卡6830通信。主机6810和UFS卡6830可通过UFS装置6820的M-PHY和UniPro模块之间的目标ID交换来彼此通信。在图16中,为了清楚起见,示出一个UFS装置6820连接到主机6810和一个UFS卡6830连接到UFS装置6820的配置。然而,多个UFS装置可并联或以星型形式连接至主机6810,或串联或以链型形式连接至主机6810,并且多个UFS卡可并联或以星型形式连接至UFS装置6820,或串联或以链型形式连接至UFS装置6820。
图17是示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。图17示出了可能应用了存储器系统的用户系统6900。
参照图17,用户系统6900可包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940、存储模块6950。
更具体地,应用处理器6930可以驱动包括在例如操作系统(OS)的用户系统6900中的部件,并且包括控制用户系统6900中包括的部件的控制器、接口、图形引擎。应用处理器6930可被设置为片上系统(SoC)。
存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6920可包括诸如动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR)SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM或LPDDR3 SDRAM的易失性随机存取存储器(RAM),或诸如相变RAM(PRAM)、电阻式RAM(ReRAM)、磁阻RAM(MRAM)或铁电RAM(FRAM)的非易失性RAM。例如,可基于叠层封装(POP)来封装和安装应用处理器6930和存储器模块6920。
网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,还可支持诸如以下的各种无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(Wimax)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与有线/无线电子装置或特别是移动电子装置通信。因此,存储器系统和数据处理系统可应用于有线/无线电子装置。网络模块6940可被包括在应用处理器6930中。
存储模块6950可存储数据,例如从应用处理器6930接收到的数据,并且将存储的数据传输到应用处理器6930。存储模块6950可由诸如以下的非易失性半导体存储器装置实现:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存,并且存储模块6950可被设置为诸如用户系统6900的存储卡或外部驱动器的可移除存储介质。存储模块6950可对应于参照图1描述的存储器系统110。此外,存储模块6950可被实施为如上参照图11至图16所述的SSD、eMMC和UFS。
用户接口6910可包括用于将数据或命令输入到应用处理器6930或用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、发光二极管(LED)、扬声器和监控器的用户输出接口。
此外,当图1的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作,并且网络模块6940可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示由处理器6930处理的数据或支持从触摸面板接收数据的功能。
虽然已经针对具体实施例示出并描述了本发明,但是对于本领域技术人员显而易见的是,根据本公开,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可进行各种改变和修改。

Claims (12)

1.一种存储器系统的操作方法,包括:
基于当前提供的写入命令的地址确定当前提供的写入命令是顺序写入命令还是随机写入命令;
当在先前垃圾收集操作之后提供的数据的量超过阈值时,执行垃圾收集操作,
其中,所述存储器系统在当前提供的写入命令是顺序写入命令时,将所述阈值确定为顺序命令阈值;在当前提供的写入命令是随机写入命令并且设定数量的当前提供命令之中的顺序写入命令的数量大于或等于预定数量时,将所述阈值确定为所述顺序命令阈值;并且在当前提供的写入命令是随机写入命令并且设定数量的当前提供命令之中的顺序写入命令的数量小于预定数量时,将所述阈值确定为随机命令阈值,所述随机命令阈值小于所述顺序命令阈值。
2.根据权利要求1所述的操作方法,进一步包括:
存储通过确定所述当前提供的写入命令是顺序写入命令还是随机写入命令而获得的结果。
3.根据权利要求1所述的操作方法,其中执行所述垃圾收集操作包括:
选择包括无效页面的存储块作为牺牲块;
将存储在所述牺牲块中的有效数据复制到目标块的空页面中;以及
擦除所述牺牲块的数据以生成空闲块。
4.一种存储器系统,包括:
存储器装置,存储数据;以及
控制器,控制所述存储器装置,
其中所述控制器基于当前提供的写入命令的地址确定当前提供的写入命令是顺序写入命令还是随机写入命令;当在先前垃圾收集操作之后提供的数据的量超过阈值时,执行垃圾收集操作;
在当前提供的写入命令是顺序写入命令时,将所述阈值确定为顺序命令阈值;在当前提供的写入命令是随机写入命令并且设定数量的当前提供命令之中的顺序写入命令的数量大于或等于预定数量时,将所述阈值确定为所述顺序命令阈值;并且在当前提供的写入命令是随机写入命令并且设定数量的当前提供命令之中的顺序写入命令的数量小于预定数量时,将所述阈值确定为随机命令阈值,所述随机命令阈值小于所述顺序命令阈值。
5.根据权利要求4所述的存储器系统,其中所述控制器包括:
存储器,存储所确定的结果。
6.根据权利要求4所述的存储器系统,其中所述控制器通过选择包括无效页面的存储块作为牺牲块、将存储在所述牺牲块中的有效数据复制到目标块的空页面中以及擦除所述牺牲块的数据以生成空闲块,来执行所述垃圾收集操作。
7.一种存储器系统的操作方法,包括:
基于当前提供的写入命令的地址确定当前提供的写入命令是顺序写入命令还是随机写入命令;
当在先前垃圾收集操作之后提供的命令的数量超过阈值时,执行垃圾收集操作;以及
其中,所述存储器系统在当前提供的写入命令是顺序写入命令时,将所述阈值确定为顺序命令阈值;在当前提供的写入命令是随机写入命令并且设定数量的当前提供命令之中的顺序写入命令的数量大于或等于预定数量时,将所述阈值确定为所述顺序命令阈值;并且在当前提供的写入命令是随机写入命令并且设定数量的当前提供命令之中的顺序写入命令的数量小于预定数量时,将所述阈值确定为随机命令阈值,所述随机命令阈值小于所述顺序命令阈值。
8.根据权利要求7所述的操作方法,进一步包括:
存储通过确定所述当前提供的写入命令是顺序写入命令还是随机写入命令而获得的结果。
9.根据权利要求7所述的操作方法,其中执行所述垃圾收集操作包括:
选择包括无效页面的存储块作为牺牲块;
将存储在所述牺牲块中的有效数据复制到目标块的空页面中;以及
擦除所述牺牲块的数据以生成空闲块。
10.一种存储器系统,包括:
存储器装置,存储数据;以及
控制器,控制所述存储器装置,
其中所述控制器基于当前提供的写入命令的地址确定当前提供的写入命令是否是顺序写入命令;当在先前垃圾收集操作之后提供的命令的数量超过阈值时,执行垃圾收集操作;在当前提供的写入命令是顺序写入命令时,将所述阈值确定为顺序命令阈值;在当前提供的写入命令是随机写入命令并且设定数量的当前提供命令之中的顺序写入命令的数量大于或等于预定数量时,将所述阈值确定为所述顺序命令阈值;并且在当前提供的写入命令是随机写入命令并且设定数量的当前提供命令之中的顺序写入命令的数量小于预定数量时,将所述阈值确定为随机命令阈值,所述随机命令阈值小于所述顺序命令阈值。
11.根据权利要求10所述的存储器系统,其中所述控制器包括:
存储器,存储所确定的结果。
12.根据权利要求10所述的存储器系统,其中所述控制器通过选择包括无效页面的存储块作为牺牲块、将存储在所述牺牲块中的有效数据复制到目标块的空页面中以及擦除所述牺牲块的数据以生成空闲块,来执行所述垃圾收集操作。
CN201811586152.9A 2018-05-08 2018-12-25 存储器系统及其操作方法 Active CN110457230B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180052523A KR20190128392A (ko) 2018-05-08 2018-05-08 메모리 시스템 및 메모리 시스템의 동작방법
KR10-2018-0052523 2018-05-08

Publications (2)

Publication Number Publication Date
CN110457230A CN110457230A (zh) 2019-11-15
CN110457230B true CN110457230B (zh) 2023-12-05

Family

ID=68464718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811586152.9A Active CN110457230B (zh) 2018-05-08 2018-12-25 存储器系统及其操作方法

Country Status (3)

Country Link
US (1) US11099981B2 (zh)
KR (1) KR20190128392A (zh)
CN (1) CN110457230B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11429296B2 (en) * 2020-06-01 2022-08-30 Western Digital Technologies, Inc. Storage system, host, and method for extended and imaginary logical-to-physical address mapping
KR20210157157A (ko) 2020-06-19 2021-12-28 삼성전자주식회사 메모리 컨트롤러의 구동방법, 호스트의 구동방법 및 스토리지 장치
KR20220122064A (ko) 2021-02-26 2022-09-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11797228B2 (en) 2021-06-24 2023-10-24 Western Digital Technologies, Inc. Efficient handling of background operations for improving sustained performance of host reads and writes
CN113608702A (zh) * 2021-08-18 2021-11-05 合肥大唐存储科技有限公司 一种实现数据处理的方法、装置、计算机存储介质及终端
TWI793932B (zh) * 2021-12-21 2023-02-21 建興儲存科技股份有限公司 固態儲存裝置及其相關的寫入控制方法
US20240070063A1 (en) * 2022-08-30 2024-02-29 Micron Technology, Inc. Sequential garbage collection

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001013238A1 (en) * 1999-08-19 2001-02-22 Sun Microsystems, Inc. Train-algorithm-based garbage collector employing farthest-forward-car indicator
JP2001229024A (ja) * 2000-01-06 2001-08-24 Internatl Business Mach Corp <Ibm> 基本キャッシュ・ブロックを利用したマイクロプロセッサ
CN101349963A (zh) * 2007-07-19 2009-01-21 三星电子株式会社 固态盘控制器及其数据处理方法
US8250316B2 (en) * 2006-06-06 2012-08-21 Seagate Technology Llc Write caching random data and sequential data simultaneously
WO2017088185A1 (zh) * 2015-11-27 2017-06-01 华为技术有限公司 一种存储设备存储数据的方法及存储设备
CN107918566A (zh) * 2016-10-10 2018-04-17 爱思开海力士有限公司 存储器系统及其操作方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120125950A (ko) 2011-05-09 2012-11-19 소니 주식회사 플래시 메모리 장치, 메모리 제어 장치, 메모리 제어 방법, 스토리지 시스템
US8990509B2 (en) * 2012-09-24 2015-03-24 Hewlett-Packard Development Company, L.P. Accelerated path selection based on number of write requests and sequential trend
CN104298606A (zh) * 2013-07-17 2015-01-21 光宝科技股份有限公司 固态存储装置中垃圾搜集动作的控制方法
TWI526830B (zh) * 2013-11-14 2016-03-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI610171B (zh) * 2016-03-22 2018-01-01 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
KR20190099879A (ko) 2018-02-20 2019-08-28 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102583592B1 (ko) 2018-03-27 2023-10-06 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR102571747B1 (ko) 2018-04-06 2023-08-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20190120573A (ko) 2018-04-16 2019-10-24 에스케이하이닉스 주식회사 메모리 시스템, 데이터 처리 시스템 및 메모리 시스템의 동작 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001013238A1 (en) * 1999-08-19 2001-02-22 Sun Microsystems, Inc. Train-algorithm-based garbage collector employing farthest-forward-car indicator
JP2001229024A (ja) * 2000-01-06 2001-08-24 Internatl Business Mach Corp <Ibm> 基本キャッシュ・ブロックを利用したマイクロプロセッサ
US8250316B2 (en) * 2006-06-06 2012-08-21 Seagate Technology Llc Write caching random data and sequential data simultaneously
CN101349963A (zh) * 2007-07-19 2009-01-21 三星电子株式会社 固态盘控制器及其数据处理方法
WO2017088185A1 (zh) * 2015-11-27 2017-06-01 华为技术有限公司 一种存储设备存储数据的方法及存储设备
CN107918566A (zh) * 2016-10-10 2018-04-17 爱思开海力士有限公司 存储器系统及其操作方法

Also Published As

Publication number Publication date
US20190347197A1 (en) 2019-11-14
US11099981B2 (en) 2021-08-24
KR20190128392A (ko) 2019-11-18
CN110457230A (zh) 2019-11-15

Similar Documents

Publication Publication Date Title
CN110399311B (zh) 存储器系统及该存储器系统的操作方法
CN108255739B (zh) 存储器系统及其操作方法
CN107643985B (zh) 存储器系统及其操作方法
CN107562649B (zh) 存储器系统及其操作方法
US10866898B2 (en) Method and apparatus for migrating data between nonvolatile main memory and first or second caches
CN109947358B (zh) 存储器系统及其操作方法
CN107491396B (zh) 存储器系统及其操作方法
CN110457230B (zh) 存储器系统及其操作方法
CN110347330B (zh) 存储器系统及其操作方法
CN110321069B (zh) 存储器系统及其操作方法
US20180074718A1 (en) Memory system and method for operating the same
CN108108308B (zh) 存储器系统及其操作方法
CN109390003B (zh) 存储器系统及其操作方法
CN110750207B (zh) 存储器系统及其操作方法
CN110197692B (zh) 存储器系统及其操作方法
CN109697171B (zh) 控制器及其操作方法
CN110032471B (zh) 存储器系统及其操作方法
US20200042242A1 (en) Controller and operation method thereof
CN110489271B (zh) 存储器系统及其操作方法
CN110765029B (zh) 控制器及用于操作该控制器的方法
CN109656470B (zh) 存储器系统及其操作方法
CN109933468B (zh) 存储器系统及其操作方法
US10761912B2 (en) Controller including multi processor and operation method thereof
CN108241470B (zh) 控制器及其操作方法
US20200210295A1 (en) Memory system and operating method thereof

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