CN108694138B - 控制器及其操作方法 - Google Patents
控制器及其操作方法 Download PDFInfo
- Publication number
- CN108694138B CN108694138B CN201711436377.1A CN201711436377A CN108694138B CN 108694138 B CN108694138 B CN 108694138B CN 201711436377 A CN201711436377 A CN 201711436377A CN 108694138 B CN108694138 B CN 108694138B
- Authority
- CN
- China
- Prior art keywords
- buffer
- data
- read
- memory
- memory device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
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)
Abstract
本发明涉及一种控制器,其包括:第一缓冲器,适于缓冲从存储器装置读取的数据;第二缓冲器,适于缓冲待写入到存储器装置中的数据;处理器,适于响应于读取命令来控制存储器装置以从存储器装置读取数据,并且控制第一缓冲器以缓冲读取的数据;以及缓冲器管理单元,适于响应于读取命令来在第二缓冲器当前未缓冲有待读取的数据时提供第一缓冲器的缓冲数据。
Description
相关申请的交叉引用
本申请要求于2017年4月10日提交的申请号为10-2017-0046137的韩国专利申请的优先权,其公开的全部内容通过引用并入本文。
技术领域
本发明的各个实施例涉及一种控制器,且更特别地,涉及一种用于存储器系统中的控制器及其操作方法。
背景技术
计算机环境范例已经变为可在任何时间和任何地点使用的普适计算系统。也就是说,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可用作便携式电子装置的主存储器装置或辅助存储器装置。
由于存储器系统没有移动部件,所以它们提供优良的稳定性、耐用性、高的信息存取速度以及低功耗。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
各个实施例涉及一种控制器,其能够通过最小化存储器系统的复杂性和性能劣化并最大化存储器装置的使用效率来快速且可靠地处理存储器装置的数据。
根据本发明的实施例,一种控制器可包括:第一缓冲器,适于缓冲从存储器装置读取的数据;第二缓冲器,适于缓冲待写入到存储器装置中的数据;处理器,适于响应于读取命令来控制存储器装置以从存储器装置读取数据,并且控制第一缓冲器来缓冲读取的数据;以及缓冲器管理单元,适于响应于读取命令,在第二缓冲器当前未缓冲有待读取的数据时提供第一缓冲器的缓冲数据。
缓冲器管理单元可进一步当第二缓冲器当前缓冲有待读取的数据时,提供第二缓冲器的缓冲数据。
缓冲器管理单元可进一步通过将随读取命令一起提供的地址信息与第二缓冲器的缓冲数据的地址信息进行比较来确定第二缓冲器当前是否缓冲有待读取的数据。
处理器可将随读取命令一起提供的地址信息提供给缓冲器管理单元,并且缓冲器管理单元可管理第一缓冲器的缓冲数据的地址信息和第二缓冲器的缓冲数据的地址信息。
缓冲器管理单元可在第一缓冲器缓冲读取的数据之前确定第二缓冲器当前是否缓冲有待读取的数据。
缓冲器管理单元可在第一缓冲器缓冲读取的数据之后确定第二缓冲器当前是否缓冲有待读取的数据。
根据本发明的实施例,一种控制器的操作方法,该控制器包括适于缓冲从存储器装置读取的数据的第一缓冲器和适于缓冲待被写入到存储器装置中的数据的第二缓冲器,该操作方法可包括:通过控制器的处理器,响应于读取命令来控制存储器装置以从存储器装置读取数据并且控制第一缓冲器以缓冲读取的数据;以及通过控制器的缓冲器管理单元,响应于读取命令来在第二缓冲器当前未缓冲有待读取的数据时提供第一缓冲器的缓冲数据。
提供可进一步包括:通过缓冲器管理单元,响应于读取命令来在第二缓冲器当前缓冲有待读取的数据时提供第二缓冲器的缓冲数据。
确定可进一步包括:通过缓冲器管理单元,通过将随读取命令一起提供的地址信息与第二缓冲器的缓冲数据的地址信息进行比较来确定第二缓冲器当前是否缓冲有待读取的数据。
通过处理器提供可进一步包括:将随读取命令一起提供的地址信息提供给缓冲器管理单元;并且通过缓冲器管理单元管理可进一步包括管理第一缓冲器的缓冲数据的地址信息和第二缓冲器的缓冲数据的地址信息。
确定可在控制之前执行。
确定可在控制之后执行。
根据本发明的实施例,一种存储器系统可包括可操作地联接到至少一个存储器装置的控制器,该控制器适于:从主机接收读取请求和写入请求;在将对应于写入请求的写入数据存储到至少一个存储器装置中之前,将写入数据缓冲到写入缓冲器中;基于读取命令从至少一个存储器装置读取主机请求的数据,并且将请求读取的数据缓冲到读取缓冲器中;确定请求的数据是否正被缓冲在写入缓冲器中;当请求的数据未被缓冲在写入缓冲器中时,将被缓冲在读取缓冲器中的请求读取的数据传输到主机;以及当请求的数据正被缓冲在写入缓冲器中时将被缓冲在写入缓冲器中的请求读取的数据传输到主机。
读取缓冲器和写入缓冲器可以是控制器的存储器的区域。
控制器可包括适于确定请求的数据是否正被缓冲在写入缓冲器中的缓冲器管理单元。
控制器可包括处理器,其适于:执行从主机接收读取请求和写入请求;在将对应于写入请求的写入数据存储到至少一个存储器装置之前,将写入数据缓冲到写入缓冲器中;基于读取命令从至少一个存储器装置读取主机请求的数据,并且将请求读取的数据缓冲到读取缓冲器中;确定请求的数据是否正被缓冲在写入缓冲器中;当请求的数据未被缓冲在写入缓冲器中时,将被缓冲在读取缓冲器中的请求读取的数据传输到主机;以及当请求的数据正被缓冲在写入缓冲器中时将正被缓冲在写入缓冲器中的请求读取的数据传输到主机。
根据本发明的各个实施例,控制器及其操作方法可通过最小化存储器系统的复杂性和性能劣化并且最大化存储器装置的使用效率来快速且可靠地处理存储器装置的数据。
附图说明
图1是示出根据本发明的实施例的数据处理系统的框图。
图2是示出图1所示的存储器装置的示意图。
图3是示出图1所示的存储器装置中的存储块的电路图。
图4是示出图1所示的存储器装置的3D结构的示意图。
图5是示出根据本发明的实施例的存储器系统的操作的框图。
图6是示出根据本发明的实施例的存储器系统的操作的框图。
图7是示出根据本发明的实施例的存储器系统的操作的流程图。
图8至图13是示出图1至图7所示的数据处理系统的应用示例的示意图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,注意到的是,本发明可以不同的其他实施例、形式及其变型实施,且不应被解释为限于本文所阐述的实施例。相反,提供所描述的实施例使得本公开将完整和全面并将本发明充分地传达给本发明所属领域的技术人员。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来描述各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被夸大。
将进一步理解的是,当元件被称为“连接至”或“联接到”另一元件时,它可直接在其它元件上、连接至或联接到其它元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制本发明。
如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
图1是示出根据本发明的实施例的数据处理系统100的框图。
参照图1,数据处理系统100可包括被可操作地联接至存储器系统110的主机102。
主机102可包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式电脑、游戏机、TV、投影仪等的非便携式电子装置。
存储器系统110可响应于主机102的请求操作以为主机102存储数据。存储器系统110的非限制性示例可包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用存储总线(USB)装置、通用闪存(UFS)装置、标准闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可包括嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)和微型MMC。SD卡可包括迷你-SD卡和微型-SD卡。
存储器系统110可通过各种类型的存储装置实施。包括在存储器系统110中的存储装置的非限制性示例可包括诸如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置和诸如以下的非易失性存储器装置:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM)和闪速存储器。闪速存储器可具有三维(3D)堆叠结构。
存储器系统110可包括存储器装置150和控制器130。存储器装置150可为主机120存储数据,并且控制器130可控制将数据存储到存储器装置150中。
控制器130和存储器装置150可被集成到单个半导体装置中,单个半导体装置可被包括在如上所例示的各种类型的存储器系统中。
存储器系统110的非限制性应用示例可包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、3D电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输/接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种组成元件之一。
存储器装置150可以是非易失性存储器装置,并且即使不供应电力,其也可保留其中存储的数据。存储器装置150可通过写入操作来存储从主机102提供的数据,并且通过读取操作将存储在其中的数据提供给主机102。存储器装置150可包括多个存储器管芯(未示出),每个存储器管芯包括多个平面(未示出),每个平面包括多个存储块152至156,存储块152至156中的每一个可包括多个页面,并且每个页面可包括联接到字线的多个存储器单元。
控制器130可响应于来自主机102的请求控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供给主机102,并将从主机102提供的数据存储至存储器装置150中。控制器130可控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
控制器130可包括主机接口(I/F)单元132、处理器134、错误校正码(ECC)单元138、电源管理单元(PMU)140、NAND闪速控制器(NFC)142以及存储器144,其全部通过内部总线可操作地联接。
主机接口单元132可被配置成处理主机102的命令和数据,并可通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-E)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
ECC单元138可检测并校正包括在从存储器装置150读取的数据中的错误。换言之,ECC单元138可通过在ECC编码进程期间使用的ECC代码对从存储器装置150读取的数据执行错误校正解码进程。根据错误校正解码进程的结果,ECC单元138可输出信号,例如错误校正成功/失败信号。当错误位的数量大于可校正错误位的阈值时,ECC单元138不校正错误位,并且可输出错误校正失败信号。
ECC单元138可通过诸如以下的编码调制执行错误校正:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)以及分组编码调制(BCM)。然而,ECC单元138不限于此。ECC单元138可包括用于错误校正的所有电路、模块、系统或装置。
PMU 140可提供和管理控制器130的电力。
NFC 142可用作存储器/存储接口,其用于接口连接控制器130和存储器装置150使得控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器或具体地是NAND闪速存储器时,NFC 142可在处理器134的控制下生成用于存储器装置150的控制信号并处理待被提供给存储器装置150的数据。NFC 142可用作处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,NFC 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)。
控制器130的处理器134可包括用于执行存储器装置150的坏块管理操作的管理单元(未示出)。管理单元可执行坏块管理操作,其用于检查多个存储块152至156中在编程操作期间由于NAND闪速存储器的特性发生编程失败的坏块。管理单元还可将坏块的编程失败数据写入到新的存储块。在具有3D堆叠结构的存储器装置150中,坏块管理操作可增加存储器装置150的使用效率和存储器系统110的可靠性。
图2是示出存储器装置150的示意图。
参照图2,存储器装置150可包括多个存储块BLOCK 0至BLOCK N-1,并且块BLOCK 0至BLOCK N-1中的每一个可包括多个页面,例如2M个页面,页面的数量可根据电路设计而变化。包括在各个存储块BLOCK 0至BLOCK N-1中的存储器单元可以是下列中的一个或多个:存储1位数据的单层单元(SLC)、存储2位数据的多层单元(MLC)、存储3位数据的三层单元(TLC)、存储4位数据的四层单元(QLC)、存储5位或更多位数据的多层单元等。
图3是示出存储器装置150的存储块330的电路图。
参照图3,存储块330对应于多个存储块152至156中的任一个。
参照图3,存储器装置150的存储块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可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326,并且页面缓冲器322至326中的每一个可包括多个锁存器(未示出)。
图4是示出存储器装置150的3D结构的示意图。
存储器装置150可通过2D或3D存储器装置来实施。具体地,如图4所示,存储器装置150可通过具有3D堆叠结构的非易失性存储器装置来实施。当存储器装置150具有3D结构时,存储器装置150可包括多个存储块BLK0至BLKN-1,每个存储块具有3D结构(或垂直结构)。
图5和图6是示出根据本发明的实施例的存储器系统的操作的框图。
主机102可将命令提供给存储器系统110。命令可以是写入命令和读取命令等。存储器系统110可响应于写入命令将数据编程到特定地址的区域中。存储器系统110可响应于读取命令读取被编程到特定地址的区域中的数据,并且将读取的数据提供给主机102。命令可随特定地址被一起提供。地址可包括诸如逻辑页码(LPN)的逻辑地址和诸如物理页码(PPN)的物理地址。例如,写入命令可随指示写入数据的区域的地址一起提供,读取命令可随指示读取数据的区域的地址一起提供。
控制器130可进一步包括缓冲器管理单元510。存储器144可包括用于缓冲待写入到存储器装置150中的数据的写入缓冲器520,以及用于缓冲从存储器装置150读取的数据的读取缓冲器530。存储器装置150可包括多个存储块540和550。
图5例示了写入缓冲器520将值为100、210和120的逻辑地址或逻辑页码(即,LPN100、LPN 210和LPN 120)的数据缓冲在写入缓冲器520的第一至第三槽(slot)中。此外,图5例示了读取缓冲器530将值为150、120、230和240的逻辑地址或逻辑页码(即,LPN 150、LPN120、LPN 230和LPN 240)的数据缓冲在读取缓冲器530的第一至第四槽中。
进一步地,图5例示了第一存储块540将数据存储在与值为100至150的逻辑地址或逻辑页码(即,LPN 100至LPN 150)相对应的值为1至6的物理地址或物理页码(即,PPN 1至PPN 6)的区域中,并且第二存储块550将数据存储在与值为200至250的逻辑地址或逻辑页码(即,LPN 200至LPN 250)相对应的值为7至12的物理地址或物理页码(即,PPN 7至PPN12)的区域中。
另外,图5例示了第一读取命令R1和第二读取命令R2被依次从主机102提供到存储器系统110。如图5的列表560所示,第一读取命令R1可指示对来自存储器装置150中值为100的逻辑页码(即,LPN 100)的区域的数据的读取操作,第二读取命令R2可指示对来自存储器装置150中值为200的逻辑页码(即,LPN 200)的区域的数据的读取操作。
例如,当主机102将写入命令提供给存储器系统110时,存储器系统110可将与也从主机102提供的写入命令相对应的数据缓冲到写入缓冲器520中,然后可将缓冲的数据写入到存储器装置150的存储块540和550中。在完成了将缓冲的数据写入到存储块540和550中之后,存储器系统110可更新映射数据。映射数据可表示存储器装置150的逻辑地址和物理地址之间的映射关系。映射数据可包括逻辑到物理(L2P)映射数据和物理到逻辑(P2L)映射数据。映射数据可被存储在存储器144和存储器装置150中的一个或多个中。
例如,当主机102将读取命令提供给存储器系统110时,存储器系统110可首先确定待读取的数据当前是否正被缓冲在写入缓冲器520中。当待读取的数据当前正被缓冲在写入缓冲器520中时,存储器系统110可将写入缓冲器520的缓冲数据提供给主机102。当待读取的数据当前未被缓冲在写入缓冲器520中时,存储器系统110可控制存储器装置150读取数据并将读取的数据提供给主机102。
如图5所例示的,响应于针对值为100的逻辑页码(LPN 100)的数据的第一读取命令R1,因为值为100的逻辑页码(LPN 100)的数据当前正被缓冲在写入缓冲器520的第一槽中,所以存储器系统110可从写入缓冲器520读取值为100的逻辑页码(LPN 100)的数据,并且可将读取的数据提供给主机102。
然而,如图5所例示的,当提供第二读取命令R2并且映射数据指示值为7的物理页码(PPN 7)对应于值为200的逻辑页码(LPN 200)时,响应于针对值为200的逻辑页码(LPN200)的数据的第二读取命令R2,因为值为200的逻辑页码(LPN 200)当前未被缓冲在写入缓冲器520中,所以存储器系统110可控制存储器装置150以根据映射数据从第二存储块550中值为7的物理页码(PPN 7)的区域读取值为200的逻辑页码(LPN 200)的数据,可将读取的数据缓冲到读取缓冲器530中,并且可将缓冲的数据提供给主机102。
因此,当写入缓冲器520当前未缓冲有与读取命令相关的数据时,控制存储器装置150执行读取操作由于确定待读取的数据当前是否正被缓冲在写入缓冲器520中所花费的时间而花费时间,这导致读取操作的延迟增加。
为了解决该问题,根据本发明的实施例,存储器系统110可包括缓冲器管理单元510。在下文中,将参照图5和图6描述根据本发明的实施例的存储器系统110使用缓冲器管理单元510来处理读取命令的操作。
响应于来自主机102的读取命令,存储器系统110的处理器134可控制存储器装置150以读取数据。例如,存储器系统110可响应于分别对应于值为100和200的逻辑页码(即,LPN 100和LPN 200)的第一读取命令R1和第二读取命令R2来控制存储器装置150以读取值为100的逻辑页码(即,LPN 100)的数据,然后可控制存储器装置150以读取值为200的逻辑页码(即,LPN 200)的数据。
当控制存储器装置150以读取数据时,处理器134可通过查阅L2P映射数据来将对应于所提供的逻辑页码LPN的物理页码PPN提供给存储器装置150。例如,处理器134可响应于值为100的逻辑页码(LPN 100)的第一读取命令R1,将与L2P映射数据中值为100的逻辑页码(LPN 100)相对应的值为1的物理页码(PPN 1)提供给存储器装置150,然后可响应于值为200的逻辑页码(LPN 200)的第二读取命令R2,将与L2P映射数据中值为200的逻辑页码(LPN200)相对应的值为7的物理页码(PPN 7)提供给存储器装置150。
进一步地,处理器134可将随读取命令一起从主机102提供的逻辑页码LPN提供给缓冲器管理单元510。例如,处理器134可将针对第一读取命令R1的值为100的逻辑页码(LPN100)提供给缓冲器管理单元510,然后可将针对第二读取命令R2的值为200的逻辑页码(LPN200)提供给缓冲器管理单元510。
在处理器134的控制下,存储器装置150可从存储块540和550中的提供的物理页码的区域读取数据,并且可将读取的数据提供给读取缓冲器530。例如,对于第一读取命令R1,存储器装置150可从与值为100的逻辑页码(LPN 100)相对应的值为1的物理页码(PPN 1)的区域读取数据,并且可将读取的数据提供给读取缓冲器530。例如,对于第二读取命令R2,存储器装置150可从与值为200的逻辑页码(LPN 200)相对应的值为7的物理页码(PPN 7)的区域读取数据,并且可将读取的数据提供给读取缓冲器530。
读取缓冲器530可缓冲从存储器装置150提供的数据。如图6所例示的,读取缓冲器530可分别将值为100的逻辑页码(LPN 100)的数据和值为200的逻辑页码(LPN 200)的数据缓冲在第五槽和第六槽中。
缓冲器管理单元510可通过将当前正被缓冲在写入缓冲器520的槽中的数据的逻辑页码的值与随读取命令一起从处理器134提供的逻辑页码的值进行比较来确定写入缓冲器520当前是否缓冲有响应于来自主机102的读取命令而待读取的数据。
当确定写入缓冲器520当前缓冲有响应于读取命令而待读取的数据时,缓冲器管理单元510可将缓冲的数据提供给处理器134。当确定写入缓冲器520当前未缓冲有响应于读取命令而待读取的数据时,缓冲器管理单元510可将读取缓冲器530中缓冲的数据提供给处理器134。
如图6所例示的,因为写入缓冲器520当前在第一槽中缓冲有针对第一读取命令R1待读取的值为100的逻辑页码(LPN 100)的数据,所以缓冲器管理单元510可响应于第一读取命令R1而将缓冲在写入缓冲器520的第一槽中的数据提供给处理器134。
然而,如图6所例示的,因为写入缓冲器520当前未缓冲有针对第二读取命令R2待读取的值为200的逻辑页码(LPN 200)的数据,而读取缓冲器530当前在第六槽中缓冲有值为200的逻辑页码(LPN 200)的数据,所以缓冲器管理单元510可响应于第二读取命令R2而将缓冲在读取缓冲器530的第六槽中的数据提供给处理器134。
如上所述,处理器134可以响应于读取命令迅速地控制存储器装置150读取数据,使得一将读取命令提供给存储器系统110,存储器装置150就可以执行读取操作。因此,即使当存储器144当前未缓冲有针对读取命令的数据时,存储器系统110也可迅速地对读取命令做出响应。
尽管图5和图6例示了缓冲器管理单元510在从存储器装置150读取数据并将读取的数据缓冲到读取缓冲器530中之后确定写入缓冲器520当前是否缓冲有数据,但是这仅为示例。缓冲器管理单元510可在从存储器装置150读取数据并将读取的数据缓冲到读取缓冲器530中之前,确定写入缓冲器520当前是否缓冲有数据。因此,存储器系统110可通过在完成从存储器装置150读取数据的读取操作以及将读取的数据缓冲到读取缓冲器530中的缓冲操作之前确定写入缓冲器520当前是否缓冲有数据来迅速地对读取命令做出响应。
图7是示出根据本发明的实施例的存储器系统110的操作的流程图。
参照图7,在步骤S710中,控制器130的处理器134可从主机102接收读取命令。
在步骤S720中,处理器134可响应于所提供的读取命令来控制存储器装置150以读取数据。
在步骤S730中,处理器134可将随读取命令一起从主机102提供的逻辑地址提供给缓冲器管理单元510。
在步骤S740中,缓冲器管理单元510可搜索写入缓冲器520,以便通过将当前正被缓冲在写入缓冲器520的槽中的数据的逻辑地址的值与所提供的逻辑地址的值进行比较来确定所提供的逻辑地址的数据当前是否正被缓冲在写入缓冲器520中。
在步骤S750中,缓冲器管理单元510可确定所提供的逻辑地址的数据当前是否正被缓冲在写入缓冲器520中。当确定所提供的逻辑地址的数据当前正被缓冲在写入缓冲器520中(步骤S750中为“是”)时,进程可继续进行至步骤S760,并且当确定所提供的逻辑地址的数据当前未被缓冲在写入缓冲器520中(步骤S750中为“否”)时,进程可继续进行至步骤S770。
在步骤S760中,缓冲器管理单元510可将写入缓冲器520的当前缓冲数据提供给处理器134,并且处理器134可将所提供的数据传输到主机102。也就是说,当确定从主机102提供的逻辑地址的数据当前正被缓冲在写入缓冲器520中时,缓冲器管理单元510可将写入缓冲器520的当前缓冲数据提供给主机102。
在步骤S770中,缓冲器管理单元510可将来自读取缓冲器530的与从主机102提供的逻辑地址相对应并从存储器装置150读取且然后被当前缓冲到读取缓冲器530中的数据提供给处理器134,并且处理器134可将所提供的数据传输到主机102。也就是说,当确定从主机102提供的逻辑地址的数据当前未被缓冲在写入缓冲器520中时,缓冲器管理单元510可将来自读取缓冲器530的与从主机102提供的逻辑地址相对应并从存储器装置150读取且然后被当前缓冲到读取缓冲器530中的数据提供给主机102。
图8至图13是示出图1至图7的数据处理系统的应用示例的示意图。
在图8至图13的实施例中,应当理解的是,除了各个附图中示出的元件以外,存储器控制器6120、6220、6320、6430还可包括图1、图5和图6的元件,并且可执行关于图1至图7描述的操作。图8是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的简图。具体地,图8示意性地示出包括根据实施例的存储器系统的存储卡系统。
参照图8,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
存储器控制器6120可被连接至通过非易失性存储器实施的存储器装置6130,并可访问存储器装置6130。例如,存储器控制器6120可控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可提供存储器装置6130和主机之间的接口并驱动固件以控制存储器装置6130。也就是说,存储器控制器6120可对应于存储器系统110的控制器130,并且存储器装置6130可对应于存储器系统110的存储器装置150。
因此,存储器控制器6120可包括诸如图1所示的RAM、处理单元、主机接口、存储器接口和错误校正单元的部件。存储器控制器6120可进一步包括图1所示的元件,并且执行参照图1至图7所述的操作。
存储器控制器6120可通过连接器6110与例如主机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)。存储器装置6130可包括存储器装置150中的多个管芯。
存储器控制器6120和存储器装置6130可被集成至单个半导体装置中。例如,存储器控制器6120和存储器装置6130可通过集成至单个半导体装置中构成固态驱动器(SSD)。另外,存储器控制器6120以及存储器装置6130可构成诸如以下的存储卡:PC卡(PCMCIA:个人计算机存储卡国际协会)、标准闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、SD卡(例如,SD、迷你SD、微型SD和SDHC)以及通用闪存(UFS)。
图9是示意性示出包括根据本发明的实施例的存储器系统的数据处理系统6200的另一示例的简图。
参照图9,数据处理系统6200可包括利用至少一个非易失性存储器(NVM)实施的存储器装置6230和控制存储器装置6230的存储器控制器6220。图9所示的数据处理系统6200可作为如参照图1所描述的诸如存储卡(CF、SD、微型SD等)或USB装置的存储介质。存储器装置6230可对应于存储器系统110中的存储器装置150,并且存储器控制器6220可对应于存储器系统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的数据。当RAM6222用作高速缓冲存储器时,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码、BCH码、turbo码、里德-所罗门码、卷积码、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被配置成通过各种通信协议中的一种或多种与外部装置通信,因此根据本实施例的存储器系统和数据处理系统可被应用于有线/无线电子装置或特别是移动电子装置。
图10是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的简图。具体地,图10示意性地示出SSD。
参照图10,SSD 6300可包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可对应于控制器130,并且存储器装置6340可对应于存储器装置150。
控制器6320可通过多个通道CH1至CHi连接至存储器装置6340。控制器6320可包括至少一个处理器6321、缓冲存储器6325、ECC电路6322、主机接口6324以及诸如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个闪速存储器NVM提供的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可通过诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器来实施。为便于描述,图10示出缓冲存储器6325存在于控制器6320中。然而,缓冲存储器6325可存在于控制器6320的外部。
ECC电路6322可在编程操作期间计算待被编程到存储器装置6340的数据的ECC值,在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作,并在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与诸如主机6310的外部装置的接口功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可提供应用了存储器系统110的多个SSD 6300来实施数据处理系统,例如,RAID(独立磁盘冗余阵列)系统。此时,RAID系统可包括多个SSD 6300和用于控制多个SSD6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的写入命令的RAID级别信息,在SSD6300中选择一个或多个存储器系统或SSD 6300,并将对应于写入命令的数据输出到选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的读取命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300,并将从所选择的SSD 6300读取的数据提供给主机6310。
图11是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的简图。具体地,图11示意性地示出嵌入式多媒体卡(eMMC)。
参照图11,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于图1的存储器系统110中的控制器130,并且存储器装置6440可对应于图1的存储器系统110中的存储器装置150。
控制器6430可通过多个通道与存储器装置6440连接。控制器6430可包括主机接口6431、至少一个内核6432和诸如NAND接口6433的存储器接口。
内核6432可控制eMMC 6400的全部操作,主机接口6431可提供控制器6430和主机6410之间的接口功能,并且NAND接口6433可提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可用作并行接口,例如参照图1所描述的MMC接口。此外,主机接口6431可用作串行接口,例如超高速-I/II接口。
图12是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的简图。具体地,图12示意性地示出通用闪存(UFS)系统6500。
参照图12,UFS系统6500可包括UFS主机6510、多个UFS装置6520和6530、嵌入式UFS装置6540和可移除UFS卡6550。UFS主机6510可以是有线/无线电子设备,特别是移动电子设备的应用处理器。
UFS主机6510、UFS装置6520和6530、嵌入式UFS装置6540和可移除UFS卡6550可通过UFS协议分别与外部装置,即有线/无线电子设备,特别是移动电子设备通信。UFS装置6520和6530、嵌入式UFS装置6540和可移除UFS卡6550可被实施为上面参照图1至图7描述的存储器系统110,特别是被实施为上面参照图8描述的存储卡系统6100。嵌入式UFS装置6540和可移除UFS卡6550可通过除UFS协议以外的另一协议进行通信。例如,嵌入式UFS装置6540和可移除UFS卡6550可通过诸如但不限于以下的各种卡协议进行通信:USB闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你SD和微型SD。
图13是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的简图。具体地,图13示意性地示出用户系统6600。
参照图13,用户系统6600可包括用户接口6610、存储器模块6620、应用处理器6630、网络模块6640和存储模块6650。
应用处理器6630可驱动包括在诸如操作系统(OS)的用户系统6600中的组件,并且包括控制包括在用户系统6600中的组件的控制器、接口和图形引擎。应用处理器6630可作为片上系统(SoC)被提供。
存储器模块6620可用作用户系统6600的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6620可包括诸如动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2 SDRAM、DDR3 SDRAM、低功率双倍数据速率(LPDDR)SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性随机存取存储器,或者诸如相变随机存取存储器(PRAM)、电阻式随机存取存储器(ReRAM)、磁性随机存取存储器(MRAM)和铁电随机存取存储器(FRAM)的非易失性随机存取存储器。例如,可基于堆叠式封装(POP)被封装来安装应用处理器6630和存储器模块6620。
网络模块6640可与外部装置通信。例如,网络模块6640不仅可支持有线通信,而且支持各种无线通信,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(WiMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI)等,从而可与有线/无线电子装置或特别是移动电子装置通信。因此,存储器系统和数据处理系统可应用于有线/无线电子装置。网络模块6640可被包括在应用处理器6630中。
存储模块6650可存储数据,例如从应用处理器6630提供的数据,然后将所存储的数据传输到应用处理器6630。存储模块6650可通过诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪速存储器、NOR闪速存储器和3D NAND闪速存储器的非易失性半导体存储器装置来实施,并且可被提供为诸如用户系统6600的存储卡或外部驱动器的可移除存储介质。也就是说,存储模块6650可对应于参照图1至图7描述的存储器系统110。此外,存储模块6650可被实施为参照图10至图12所述的SSD、eMMC和UFS。
用户接口6610可包括用于向应用处理器6630输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6610可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、发光二极管(LED)、有机LED(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、扬声器和电动机的用户输出接口。
此外,当存储器系统110应用于用户系统6600的移动电子装置时,应用处理器6630可控制移动电子装置的全部操作,并且网络模块6640可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6610可在移动电子装置的显示/触摸模块上显示通过应用处理器6630处理的数据或支持从触摸面板接收数据的功能。
在根据实施例的存储器系统和该存储器系统的操作方法中,数据可被编程到存储器装置的多个区域,并且当任何一个区域的数据中发生错误时,另一区域的数据可代替发生错误的数据。因此,通过仅管理对应于未进行校正错误或复制数据的实质性操作的数据的信息(地址),可保护数据免受错误的影响。
此外,本公开的操作还可被应用于诸如垃圾收集操作的操作,使得受损区域的有效数据可被与其一起存储的数据替换。因此,当收集有效数据时,可省略复制数据的操作,即省略读取数据和编程数据的操作,从而减少存储器系统在确保存储器装置的空闲空间的操作中的消耗。
虽然为了说明的目的已经描述各个实施例,但是对于本领域技术人员将显而易见的是,在不脱离如权利要求中所限定的本发明的精神和范围的情况下,可做出各种其它实施例、改变或变型。
Claims (16)
1.一种控制器,包括:
第一缓冲器,适于缓冲从存储器装置读取的数据;
第二缓冲器,适于缓冲待被写入到所述存储器装置中的数据;
处理器,适于响应于读取命令从所述存储器装置读取与所述读取命令相对应的数据,并且将所读取的数据存储在所述第一缓冲器中;以及
缓冲器管理单元,适于确定在所读取的数据存储到所述第一缓冲器中之后所述第二缓冲器当前是否缓冲有所读取的数据,并且在所述第二缓冲器当前未缓冲有所读取的数据时将存储在所述第一缓冲器中的所读取的数据提供到所述处理器。
2.根据权利要求1所述的控制器,其中,所述缓冲器管理单元进一步响应于所述读取命令,在所述第二缓冲器当前缓冲有所读取的数据时将存储在所述第二缓冲器中的所读取的数据提供到所述处理器。
3.根据权利要求1所述的控制器,其中,所述缓冲器管理单元进一步通过将随所述读取命令一起提供的地址信息与存储在所述第二缓冲器中的所读取的数据的地址信息进行比较来确定所述第二缓冲器当前是否缓冲有所读取的数据。
4.根据权利要求3所述的控制器,
其中,所述处理器将随所述读取命令一起提供的地址信息提供给所述缓冲器管理单元,并且
其中所述缓冲器管理单元管理所述第一缓冲器的所读取的数据的地址信息和所述第二缓冲器的所读取的数据的地址信息。
5.根据权利要求3所述的控制器,其中,所述缓冲器管理单元在所述第一缓冲器缓冲所读取的数据之前确定所述第二缓冲器当前是否缓冲有所读取的数据。
6.根据权利要求3所述的控制器,其中,所述缓冲器管理单元在所述第一缓冲器缓冲所读取的数据之后确定所述第二缓冲器当前是否缓冲有所读取的数据。
7.一种控制器的操作方法,所述控制器包括适于缓冲从存储器装置读取的数据的第一缓冲器和适于缓冲待被写入到所述存储器装置中的数据的第二缓冲器,所述操作方法包括:
通过所述控制器的处理器,响应于读取命令从所述存储器装置读取与所述读取命令相对应的数据;
通过所述处理器,将所读取的数据存储在所述第一缓冲器中;
通过所述控制器的缓冲管理单元,确定在所读取的数据存储在所述第一缓冲器中之后所述第二缓冲器当前是否缓冲有所读取的数据;以及
通过所述缓冲器管理单元,在所述第二缓冲器当前未缓冲有所读取的数据时将存储在所述第一缓冲器中的所读取的数据提供到所述处理器。
8.根据权利要求7所述的操作方法,其进一步包括:通过所述缓冲器管理单元,在所述第二缓冲器当前缓冲有所读取的数据时提供存储在所述第二缓冲器中的所读取的数据。
9.根据权利要求7所述的操作方法,其进一步包括:通过所述缓冲器管理单元,通过将随所述读取命令一起提供的地址信息与存储在所述第二缓冲器中的所读取的数据的地址信息进行比较来确定所述第二缓冲器当前是否缓冲有所读取的数据。
10.根据权利要求9所述的操作方法,其进一步包括:
通过所述处理器将随所述读取命令一起提供的地址信息提供给所述缓冲器管理单元;并且
通过所述缓冲器管理单元管理存储在所述第一缓冲器中的所读取的数据的地址信息和存储在所述第二缓冲器中的所读取的数据的地址信息。
11.根据权利要求9所述的操作方法,其中,所述确定在所述读取之前执行。
12.根据权利要求9所述的操作方法,其中,所述确定在所述读取之后执行。
13.一种存储器系统,其包括可操作地联接到至少一个存储器装置的控制器,
所述控制器适于:
从主机接收读取命令和写入命令;
在将对应于所述写入命令的写入数据存储到所述至少一个存储器装置中之前,将所述写入数据缓冲到写入缓冲器中;
基于所述读取命令从所述至少一个存储器装置读取所述主机请求的数据,并且将请求读取的数据缓冲到读取缓冲器中;
在所请求读取的数据缓冲到所述读取缓冲器中之后,确定所请求的数据是否正被缓冲在所述写入缓冲器中;
当所请求的数据未被缓冲在所述写入缓冲器中时,将被缓冲在所述读取缓冲器中的所请求读取的数据传输到所述主机;以及
当所请求的数据正被缓冲在所述写入缓冲器中时,将正被缓冲在所述写入缓冲器中的所请求读取的数据传输到所述主机。
14.根据权利要求13所述的存储器系统,其中,所述读取缓冲器和所述写入缓冲器是所述控制器的存储器的区域。
15.根据权利要求13所述的存储器系统,其中,所述控制器包括适于确定所请求的数据是否正被缓冲在所述写入缓冲器中的缓冲器管理单元。
16.根据权利要求13所述的存储器系统,其中,所述控制器包括处理器,所述处理器适于:
执行从所述主机接收所述读取命令和所述写入命令;
在将对应于所述写入命令的所述写入数据存储到所述至少一个存储器装置之前,将所述写入数据缓冲到所述写入缓冲器中;
基于所述读取命令从所述至少一个存储器装置读取所述主机请求的数据,并且将请求读取的数据缓冲到所述读取缓冲器中;
确定所请求的数据是否被缓冲在所述写入缓冲器中;
当所请求的数据未被缓冲在所述写入缓冲器中时,将被缓冲在所述读取缓冲器中的所请求读取的数据传输到所述主机;以及
当所请求的数据正被缓冲在所述写入缓冲器中时,将正被缓冲在所述写入缓冲器中的所请求读取的数据传输到所述主机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170046137A KR20180114417A (ko) | 2017-04-10 | 2017-04-10 | 컨트롤러 및 컨트롤러의 동작 방법 |
KR10-2017-0046137 | 2017-04-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108694138A CN108694138A (zh) | 2018-10-23 |
CN108694138B true CN108694138B (zh) | 2021-09-14 |
Family
ID=63710926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711436377.1A Active CN108694138B (zh) | 2017-04-10 | 2017-12-26 | 控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10365855B2 (zh) |
KR (1) | KR20180114417A (zh) |
CN (1) | CN108694138B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10366763B2 (en) * | 2017-10-31 | 2019-07-30 | Micron Technology, Inc. | Block read count voltage adjustment |
US11513838B2 (en) * | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread state monitoring in a system having a multi-threaded, self-scheduling processor |
KR20200046495A (ko) * | 2018-10-24 | 2020-05-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
JP2020087491A (ja) * | 2018-11-21 | 2020-06-04 | キオクシア株式会社 | 半導体記憶装置 |
KR102672193B1 (ko) * | 2018-12-12 | 2024-06-07 | 에스케이하이닉스 주식회사 | 전자 장치 |
KR102705754B1 (ko) * | 2019-03-05 | 2024-09-12 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작방법 |
KR102687354B1 (ko) * | 2019-08-01 | 2024-07-22 | 삼성전자주식회사 | 스토리지 장치 |
KR20210016684A (ko) * | 2019-08-05 | 2021-02-17 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 동작 방법 |
US11062756B2 (en) | 2019-10-14 | 2021-07-13 | Western Digital Technologies, Inc. | Extending operating temperature of storage device |
KR20220010303A (ko) * | 2020-07-17 | 2022-01-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246725A (zh) * | 2007-02-16 | 2008-08-20 | 联发科技股份有限公司 | 缓冲区管理方法 |
CN106502584A (zh) * | 2016-10-13 | 2017-03-15 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘写缓存的利用率的方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10309919B4 (de) * | 2003-03-07 | 2008-09-25 | Qimonda Ag | Pufferbaustein und Speichermodule |
KR100672148B1 (ko) * | 2005-02-17 | 2007-01-19 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치 및 그것의 페이지 버퍼 동작 방법 |
WO2009016824A1 (ja) * | 2007-08-01 | 2009-02-05 | Panasonic Corporation | 不揮発性記憶装置 |
KR101050339B1 (ko) | 2008-08-19 | 2011-07-19 | 재단법인서울대학교산학협력재단 | 플래시 메모리 장치 및 데이터 읽기 방법 |
US8677074B2 (en) * | 2008-12-15 | 2014-03-18 | Nvidia Corporation | Shared memory access techniques |
KR20110024147A (ko) * | 2009-09-01 | 2011-03-09 | 삼성전자주식회사 | 저항성 메모리 장치의 저항 드리프트를 보상할 수 있는 메모리 시스템 및 메모리 시스템의 데이터 처리 방법 |
US8760958B2 (en) * | 2012-03-15 | 2014-06-24 | Memoir Systems, Inc. | Methods and apparatus for designing and constructing multi-port memory circuits with voltage assist |
KR102002830B1 (ko) | 2012-09-28 | 2019-07-23 | 삼성전자 주식회사 | 세그먼트 클리닝 장치 및 방법 |
CN104281545B (zh) * | 2013-07-11 | 2018-02-23 | 华为技术有限公司 | 一种数据读取方法及设备 |
CN104750621B (zh) * | 2013-12-27 | 2018-04-06 | 珠海全志科技股份有限公司 | 缓存方法及控制系统 |
US9715342B2 (en) * | 2015-07-03 | 2017-07-25 | Xitore, Inc. | Apparatus, system, and method of logical address translation for non-volatile storage memory |
-
2017
- 2017-04-10 KR KR1020170046137A patent/KR20180114417A/ko unknown
- 2017-11-15 US US15/813,543 patent/US10365855B2/en active Active
- 2017-12-26 CN CN201711436377.1A patent/CN108694138B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246725A (zh) * | 2007-02-16 | 2008-08-20 | 联发科技股份有限公司 | 缓冲区管理方法 |
CN106502584A (zh) * | 2016-10-13 | 2017-03-15 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘写缓存的利用率的方法 |
Non-Patent Citations (1)
Title |
---|
交换机SSD缓存支持的数据并行优化策略的研究与实现;周昌龙;《中国优秀硕士学位论文全文数据库信息科技辑》;20160331(第2016年03期);I138-5568 * |
Also Published As
Publication number | Publication date |
---|---|
KR20180114417A (ko) | 2018-10-18 |
US20180293022A1 (en) | 2018-10-11 |
CN108694138A (zh) | 2018-10-23 |
US10365855B2 (en) | 2019-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108304141B (zh) | 存储器系统及其操作方法 | |
CN107797882B (zh) | 存储器系统及其操作方法 | |
CN107562649B (zh) | 存储器系统及其操作方法 | |
CN108694138B (zh) | 控制器及其操作方法 | |
CN107957849B (zh) | 存储器系统及其操作方法 | |
CN109947358B (zh) | 存储器系统及其操作方法 | |
CN108121665B (zh) | 存储器系统及其操作方法 | |
CN110858180B (zh) | 数据处理系统及其操作方法 | |
CN110825318B (zh) | 控制器及其操作方法 | |
CN108108308B (zh) | 存储器系统及其操作方法 | |
CN107346214B (zh) | 存储器系统及其操作方法 | |
CN109032501B (zh) | 存储器系统及其操作方法 | |
US10921998B2 (en) | Memory system and operating method thereof | |
CN110322920B (zh) | 控制器及控制器的操作方法 | |
CN108932203B (zh) | 数据处理系统和数据处理方法 | |
CN109697171B (zh) | 控制器及其操作方法 | |
CN107562653B (zh) | 存储器系统及其操作方法 | |
CN108694970B (zh) | 控制器及其操作方法 | |
CN107807887B (zh) | 存储器系统及其操作方法 | |
CN108733616B (zh) | 包括多处理器的控制器及其操作方法 | |
CN109656470B (zh) | 存储器系统及其操作方法 | |
CN110570894A (zh) | 存储器系统及该存储器系统的操作方法 | |
CN107728932B (zh) | 存储器系统及其操作方法 | |
US10203908B2 (en) | Controller, memory system and operating method thereof | |
CN110045914B (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 |