存储系统及其操作方法与流程

文档序号:17600331发布日期:2019-05-07 20:11阅读:181来源:国知局
存储系统及其操作方法与流程

本申请要求于2017年10月27日提交的申请号10-2017-0141380的韩国专利申请的优先权,其全部公开内容通过引用并入本文。

本公开实施例涉及存储系统及其操作方法,并且具体地,涉及其被配置为高速读取储存在缓冲存储器件中的数据的存储系统以及存储系统的操作方法。



背景技术:

非易失性存储器件可以包括多个存储块。另外,每个存储块可以包括多个存储单元,并且可以对包括在一个存储块中的存储单元执行擦除操作。

当存储系统接收到从主机输入的写入命令和逻辑地址时,存储系统可以分配与逻辑地址相对应的物理地址,并将数据写入非易失性存储器件中与物理地址相对应的储存区域。

存储系统可以将包括逻辑地址与物理地址之间的映射关系的物理-逻辑地址映射信息储存在缓冲存储器件中。另外,当从主机接收到读取命令时,存储系统可以基于储存在缓冲存储器件中的物理-逻辑地址映射信息来读取储存在非易失性存储器件中的数据,并将所读取的数据输出到主机。



技术实现要素:

实施例提供了一种能够高速读取储存在缓冲存储器件中的数据的存储系统以及存储系统的操作方法。

根据本公开的实施例,提供一种用于操作存储系统的方法,该方法包括:产生写入数据的写入请求;响应于写入请求而从缓冲存储器读取块数据;将块数据高速缓存在高速缓存存储器中;产生读取数据的读取请求;以及当读取数据被包括在已高速缓存的块数据中时,从高速缓存存储器将已高速缓存的块数据的一部分输出为读取数据。

根据本公开的实施例,提供一种用于操作存储系统的方法,该方法包括:产生写入数据的写入请求;响应于写入请求而从缓冲存储器读取第一块数据并将所读取的第一块数据高速缓存在高速缓存存储器中;产生读取数据的读取请求;响应于读取请求而从缓冲存储器读取第二块数据,并将所读取的第二块数据高速缓存在高速缓存存储器中;将已高速缓存的第二块数据的一部分输出为读取数据;基于写入数据来修改已高速缓存的第一块数据;以及在输出读取数据之后,将已修改的第一块数据写入缓冲存储器中。

根据本公开的实施例,提供一种存储系统,包括:主机接口,其被配置为从主机接收数据和逻辑地址;非易失性存储器件,其被配置为将数据储存在与映射到逻辑地址的物理地址相对应的储存区域中;缓冲存储器件,其被配置为储存逻辑地址与物理地址之间的映射信息;高速缓存存储器,其被配置为高速缓存映射信息;以及处理器,其被配置为控制缓冲存储器件和高速缓存存储器。

附图说明

现在将参考附图在下文中更全面地描述示例性实施例。然而,这些示例性实施例可以以不同形式体现,并且不应该被解释为限于本文中所阐述的实施例。相反,提供这些实施例是为了使得本公开是彻底的和完整的,并且将向本领域技术人员充分传达示例性实施例的范围。

在附图中,为了示出清楚,尺寸可能被夸大。应该理解,当元件被称为“在”两个元件“之间”时,它可以是两个元件之间的唯一元件,或者也可以存在一个或更多个中间元件。贯穿全文,相同的附图标记指代相同的元件。

图1是示出根据本公开实施例的存储系统的示图。

图2是示出根据实施例的图1的存储器控制器的示图。

图3是示出根据实施例的图1的非易失性存储器件的示图。

图4是示出根据实施例的图3的存储块的示图。

图5是示出根据实施例的动态随机存取存储器(dram)的示图。

图6是示出根据本公开实施例的缓冲存储器件的数据储存区域和奇偶校验储存区域的示图。

图7是示出根据本公开实施例的缓冲存储器件的数据写入方法的流程图。

图8是示出根据本公开实施例的缓冲存储器件的数据写入方法的流程图。

图9是示出根据本公开实施例的缓冲存储器件的数据读取方法的流程图。

图10是示出根据本公开实施例的缓冲存储器件的数据读取和写入方法的流程图。

图11是示出根据本公开实施例的缓冲存储器件的数据读取和写入方法的流程图。

图12是示出根据本公开实施例的缓冲存储器件的数据读取和写入方法的流程图。

图13是示出根据本公开实施例的缓冲存储器件的数据读取和写入方法的流程图。

图14是示出根据实施例的包括图2的存储器控制器的存储系统的示图。

图15是示出根据实施例的包括图2的存储器控制器的存储系统的示图。

图16是示出根据实施例的包括图2的存储器控制器的存储系统的示图。

图17是示出根据实施例的包括图2的存储器控制器的存储系统的示图。

具体实施方式

在下面的详细描述中,仅简单地通过例示的方式来示出和描述了本公开的某些说明性实施例。如本领域技术人员将认识到的,所描述的实施例可以以各种不同的方式进行修改,全都不脱离本公开的精神或范围。因此,附图和描述在本质上被认为是说明性的而非限制性的。

在整个说明书中,当元件被称为“连接”或“耦接”到另一元件时,它可以直接连接或耦接到另一元件,或者利用其间插入的一个或更多个中间元件来间接连接或耦接到另一元件。另外,当元件被称为“包括”组件时,这表示该元件还可以包括另一个组件,而不是排除另一个组件,除非有不同的公开。

图1是示出根据本公开实施例的存储系统1000的示图。

参考图1,存储系统1000可以包括非易失性存储器件1100(其即使在电力被切断时也保留所储存的数据)、缓冲存储器件1300(其用于暂时储存数据)以及存储器控制器1200(其在主机2000的控制下控制非易失性存储器件1100和缓冲存储器件1300)。

主机2000可以以各种通信方式中的至少一种与存储系统1000进行通信,诸如使用通用串行总线(usb)、串行at附件(sata)、高速片间(hsic)、小型计算机系统接口(scsi)、火线(firewire)、外围组件互连(pci)、pci快速(pcie)接口、非易失性存储器快速(nvme)接口、通用快闪储存器(ufs)接口、安全数字(sd)接口、多媒体卡(mmc)接口、嵌入式mmc(emmc)接口、双列直插存储器模块(dimm)接口、注册dimm(rdimm)接口、负载减小的dimm(lrdimm)接口等中的一种或更多种。

存储器控制器1200可以控制存储系统1000的整体操作,并控制主机2000与非易失性存储器件1100之间的数据交换。例如,存储器控制器1200可以响应于主机2000的请求而通过控制非易失性存储器件来对数据进行编程或读取数据。另外,存储器控制器1200可以储存包括在非易失性存储器件1100中的主存储块和子存储块的信息,并且根据为编程操作加载的数据量来控制非易失性存储器件1100对主存储块或子存储块执行编程操作。在一些实施例中,非易失性存储器件1100可以包括快闪存储器。

存储器控制器1200可以控制主机2000与缓冲存储器件1300之间的数据交换或者将用于控制非易失性存储器件1100的系统数据暂时储存在缓冲存储器件1300中。缓冲存储器件1300可以用作存储器控制器1200的工作存储器、高速缓存存储器或缓冲存储器。缓冲存储器件1300可以储存由存储器控制器1200执行的代码和命令。另外,缓冲存储器件1300可以储存由存储器控制器1200处理的数据。

存储器控制器1200可以将从主机2000输入的数据暂时储存在缓冲存储器件1300中,然后将暂时储存在缓冲存储器件1300中的数据传输到非易失性存储器件1100,由此将所传输的数据储存在非易失性存储器件1100中。

在一些实施例中,缓冲存储器件1300可以包括双倍数据速率同步动态随机存取存储器(ddrsdram)、低功率双倍数据速率4(lpddr4)sdram、图形双倍数据速率(gddr)sdram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)等。

在一些实施例中,存储系统1000可以不包括缓冲存储器件1300。在另一个实施例中,缓冲存储器件1300可以被嵌入存储器控制器1200中。当缓冲存储器件1300被配置成与存储器控制器1200分开时或当缓冲存储器件1300被嵌入存储器控制器1200中时,缓冲存储器件1300可以被称为缓冲存储器。

图2是示出根据实施例的图1的存储器控制器1200的示图。

参考图2,存储器控制器1200可以包括处理器710、高速缓存存储器720、第一错误校正码(ecc)电路730、主机接口740、第二ecc电路750、非易失性存储器件接口760、数据随机化器770、缓冲存储器件接口780和总线790。

总线790可以被配置为提供存储器控制器1200的组件之间的通道。

参考图1和图2,主机接口740被配置为在处理器710的控制下与外部主机2000进行通信。作为示例,主机接口740可以从主机2000接收写入命令、数据和与写入命令相对应的逻辑地址。另外,主机接口740可以从主机2000接收读取命令和与读取命令相对应的逻辑地址。

主机接口740可以被配置为以各种通信方式中的至少一种与主机2000进行通信,诸如使用通用串行总线(usb)、串行at附件(sata)、高速片间(hsic)、小型计算机系统接口(scsi)、火线(firewire)、外围组件互连(pci)、pci快速(pcie)接口、非易失性存储器快速(nvme)接口、通用快闪储存器(ufs)接口、安全数字(sd)接口、多媒体卡(mmc)接口、嵌入式mmc(emmc)接口、双列直插存储器模块(dimm)接口、注册dimm(rdimm)接口、负载减小的dimm(lrdimm)接口中的一种或更多种。

处理器710可以控制存储器控制器1200的整体操作,并执行一个或更多个逻辑运算。处理器710可以通过主机接口740与外部主机2000进行通信,并且通过非易失性存储器件接口760与非易失性存储器件1100进行通信。另外,处理器710可以通过缓冲存储器件接口780与缓冲存储器件1300进行通信。另外,处理器710可以控制高速缓存存储器720。

处理器710可以使从主机2000输入的多个命令排队。这样的操作被称为多队列。处理器710可以将多个排队的命令依次地传输到非易失性存储器件1100。

存储系统1000可以通过主机接口740从主机2000接收写入命令、写入数据和与写入命令对应的逻辑地址。处理器710可以响应于写入命令来分配非易失性存储器件1100的物理储存区域(写入数据将被存储在其中)。换言之,处理器710可以响应于写入命令来映射与从主机2000输入的逻辑地址相对应的物理地址。此时,物理地址可以是与非易失性存储器件1100的物理储存区域(从主机2000输入的写入数据要储存在其中)相对应的地址。

处理器710可以将逻辑地址与物理地址之间的映射信息(即,逻辑-物理地址映射信息)储存在非易失性存储器件1100中。另外,当处理器710通电时,处理器710可以将储存在非易失性存储器件1100中的逻辑-物理地址映射信息加载到缓冲存储器件1300中。

处理器710可以响应于写入命令、写入数据和逻辑地址来修改储存在缓冲存储器件1300中的逻辑-物理地址映射信息的至少一部分。另外,处理器710可以将已经储存在缓冲存储器件1300中的已修改的逻辑-物理地址映射信息重新储存在非易失性存储器件1100中。

存储系统1000可以通过主机接口740从主机2000接收读取命令和与读取命令相对应的逻辑地址。处理器710可以响应读取命令来从储存在缓冲存储器件1300中的逻辑-物理地址映射信息中确定与逻辑地址相对应的物理地址。处理器710可以读取储存在非易失性存储器件1100的储存区域(其与物理地址相对应)中的数据,然后将所读取的数据输出到主机2000。

作为另一个示例,存储系统1000可以通过主机接口740从主机2000接收读取命令和与读取命令相对应的逻辑地址。处理器710可以响应于读取命令来将储存在非易失性存储器件1100中的逻辑-物理地址映射信息加载到缓冲存储器件1300。然后,存储系统1000可以根据储存在缓冲存储器件1300中的逻辑-物理地址映射信息来确定与逻辑地址相对应的物理地址,并且读取储存在非易失性存储器件1100的储存区域(其与物理地址相对应)中的数据,然后将所读取的数据输出到主机2000。

高速缓存存储器720可以储存由处理器710执行的代码和命令。高速缓存存储器720可以储存由处理器710处理的数据。高速缓存存储器720可以包括静态ram(sram)或动态ram(dram)。

第一ecc电路730可以执行错误校正操作。第一ecc电路730可以对通过非易失性存储器件接口760要写入非易失性存储器件1100的数据执行ecc编码。ecc编码的数据可以通过非易失性存储器件接口760传输到非易失性存储器件1100。第一ecc电路730可以对通过非易失性存储器件接口760从非易失性存储器件1100接收的数据执行ecc解码。作为示例,第一ecc电路730可以是非易失性存储器件接口760的组件。

第一ecc电路730可以基于博斯-乔赫里-霍克文黑姆(bch,bose-chaudhuri-hocquenghem)码来执行ecc操作。作为另一个示例,第一ecc电路730可以基于低密度奇偶校验(ldpc)码来执行ecc操作。

第二ecc电路750可以执行错误校正操作。第二ecc电路750可以对通过缓冲存储器件接口780要写入缓冲存储器件1300的数据执行ecc编码。ecc编码的数据可以通过缓冲存储器件接口780被传输到缓冲存储器件1300。第二ecc电路750可以对通过缓冲存储器件接口780从缓冲存储器件1300接收的数据执行ecc解码。作为示例,第二ecc电路750可以是缓冲存储器件接口780的组件。

第二ecc电路750可以基于汉明码来执行ecc操作。作为另一个示例,第二ecc电路750可以基于博斯-乔赫里-霍克文黑姆(bch,bose-chaudhuri-hocquenghem)码来执行ecc操作。

非易失性存储器件接口760被配置为在处理器710的控制下与非易失性存储器件1100进行通信。非易失性存储器件接口760可以通过一个或更多个通道与非易失性存储器件1100进行命令、地址和数据的通信。

作为示例,处理器710可以使用代码来控制存储器控制器1200的操作。处理器710可以加载在存储器控制器1200中提供的来自非易失性存储器件(例如,只读存储器(ram))的代码。作为另一示例,处理器710可以通过非易失性存储器件接口760加载来自非易失性存储器件1100的代码。

数据随机化器770可以将数据随机化或将已随机化的数据去随机化。数据随机化器770可以对通过非易失性存储器件接口760要写入非易失性存储器件1100的数据执行数据随机化操作。可以通过非易失性存储器件接口760将已随机化的数据传输到非易失性存储器件1100。数据随机化器770可以对通过非易失性存储器件接口760从非易失性存储器件1100接收的数据执行数据去随机化操作。

另外,数据随机化器770可以对通过缓冲存储器件接口780要写入缓冲存储器件1300的数据执行数据随机化操作。已随机化的数据可以通过缓冲存储器件接口780传输到缓冲存储器件1300。数据随机化器770可以对通过缓冲存储器件接口780从缓冲存储器件1300接收的数据执行数据去随机化操作。

作为示例,存储器控制器1200的总线790可以包括控制总线和数据总线。数据总线可以被配置为在存储器控制器1200中传输数据,而控制总线可以被配置为在存储器控制器1200中传输诸如命令和地址的控制信息。数据总线和控制总线彼此分开,并且可以彼此不干扰或不互相影响。总线790可以耦接到处理器710、高速缓存存储器720、第一ecc电路730、主机接口740、第二ecc电路750、非易失性存储器件接口760、数据随机化器770和缓冲存储器件接口780。

缓冲存储器件接口780可以被配置为在处理器710的控制下与缓冲存储器件1300进行通信。缓冲存储器件接口780可以通过一个或更多个通道与缓冲存储器件1300对命令、地址和数据进行通信。

高速缓存存储器720可以高速缓存储存在缓冲存储器件1300中的逻辑-物理地址映射信息。当数据被写入缓冲存储器件1300时,高速缓存存储器720可以暂时储存已写入的数据。另外,当读取储存在缓冲存储器件1300中的数据时,高速缓存存储器720可以暂时储存所读取的数据。

处理器710可以响应于从主机2000输入的写入命令和逻辑地址来分配与逻辑地址相对应的物理地址,并且修改逻辑-物理地址映射信息的至少一部分。另外,处理器710可以将已修改的逻辑-物理地址映射信息暂时储存在高速缓存存储器720中,以将逻辑-物理地址映射信息写入缓冲存储器件1300。换言之,在处理器710的控制下,在将逻辑-物理地址映射信息写入缓冲存储器件1300之前,高速缓存存储器720可以暂时储存已修改的逻辑-物理地址映射信息。

另外,处理器710可以使用第二ecc电路750对高速缓存在高速缓存存储器720中的逻辑-物理地址映射信息执行ecc编码操作,或者使用数据随机化器770对高速缓存在高速缓存存储器720中的逻辑-物理地址映射信息执行数据随机化操作。处理器710可以将ecc编码的逻辑-物理地址映射信息或数据随机化的逻辑-物理地址映射信息写入缓冲存储器件1300。

处理器710可以响应于从主机2000输入的读取命令和逻辑地址来从缓冲存储器件1300读取与逻辑地址相对应的逻辑-物理地址映射信息。处理器710可以使用第二ecc电路750对所读取的逻辑-物理地址映射信息执行ecc解码操作,或者可以使用数据随机化器770对所读取的逻辑-物理地址映射信息执行数据去随机化操作。

另外,处理器710可以高速缓存从缓冲存储器件1300读取的逻辑-物理地址映射信息。换言之,高速缓存存储器720可以在处理器710的控制下暂时储存所读取的逻辑-物理地址映射信息。

处理器710可以基于错误解码的逻辑-物理地址映射信息或数据去随机化的逻辑-物理地址映射信息来读取储存在非易失性存储器件1100中的数据。

图3是示出根据实施例的图1的非易失性存储器件1100的示图。

参考图3,非易失性存储器件1100可以包括储存数据的存储单元阵列100。非易失性存储器件1100可以包括外围电路200,该外围电路200被配置为执行用于将数据储存在存储单元阵列100中的编程操作、用于输出已储存的数据的读取操作以及用于擦除已储存的数据的擦除操作。非易失性存储器件1100可以包括控制逻辑300,该控制逻辑300在存储器控制器(例如,图1的存储器控制器1200)的控制下控制外围电路200。

存储单元阵列100可以包括多个存储块mb1至mbm(m是正整数),每个存储块110包括多个存储单元。局部线ll和位线bl1至bln(n是正整数)可以耦接到存储块mb1至mbm。例如,局部线ll可以包括第一选择线、第二选择线以及布置在第一选择线与第二选择线之间的多个字线。另外,局部线ll还可以包括布置在第一选择线与字线之间以及第二选择线与字线之间的虚设线。这里,第一选择线可以是源极选择线,而第二选择线可以是漏极选择线。例如,局部线ll可以包括字线、漏极和源极选择线以及源极线。例如,局部线ll还可以包括虚设线。例如,局部线ll还可以包括管线。局部线ll可以分别耦接到存储块mb1到mbm,并且位线bl1到bln可以共同耦接到存储块mb1到mbm。存储块mb1至mbm可以以二维结构或三维结构来实现。例如,存储单元可以在具有二维结构的存储块mb1至mbm中沿与衬底的顶表面平行的方向来布置。例如,存储单元可以在具有三维结构的存储块mb1至mbm中沿与衬底的表面(例如,顶表面)垂直的方向来布置。

外围电路200可以被配置为在控制逻辑300的控制下执行选中的存储块110的编程操作、读取操作和擦除操作。例如,在控制逻辑300的控制下,外围电路200可以向第一选择线、第二选择线和字线中的一个或更多个提供验证电压和/或通过电压,将第一选择线、第二选择线和字线选择性地放电,并且验证与字线之中的选定字线耦接的存储单元。例如,外围电路200可以包括电压产生电路210、行解码器220、页缓冲器组230、列解码器240、输入/输出电路250和感测电路260。

电压产生电路210可以响应于操作信号op_cmd来产生用于编程操作、读取操作和擦除操作的各种操作电压vop。另外,电压产生电路210可以响应于操作信号op_cmd而将局部线ll选择性地放电。例如,电压产生电路210可以在控制逻辑300的控制下产生编程电压、验证电压、通过电压、导通电压、读取电压、擦除电压、源极线电压等。

行解码器220可以响应于行地址radd来将操作电压vop传输到与选定存储块110耦接的局部线ll。

页缓冲器组230可以包括耦接到位线bl1至bln的多个页缓冲器pb1至pbn。例如,每一个页缓冲器231可以耦接到位线bl1到bln中的对应一个。页缓冲器pb1至pbn可以响应于页缓冲器控制信号pbsignals而操作。例如,页缓冲器pb1至pbn可以分别暂时储存通过位线bl1至bln接收到的数据,或者分别在读取操作或验证操作中感测位线bl1至bln的电压或电流。

列解码器240可以响应于列地址cadd来在输入/输出电路250与页缓冲器组230之间传输数据。例如,列解码器240可以通过数据线dl与页缓冲器pb1至pbn交换数据,或者通过列线cl与输入/输出电路250交换数据。

输入/输出电路250可以将从存储器控制器(例如,图1的存储器控制器1200)接收的命令cmd和地址add传输到控制逻辑300,或与列解码器240交换数据data。

在读取操作和验证操作中,感测电路260可以响应于许可比特位vry_bit<#>来产生参考电流,并且通过将从页缓冲器组230接收到的感测电压vpb与由参考电流产生的参考电压进行比较来输出通过信号pass或失败信号fail。

控制逻辑300可以通过响应于命令cmd和地址add而输出操作信号op_cmd、行地址radd、页缓冲器控制信号pbsignals和许可比特位vry_bit<#>来控制外围电路200。另外,控制逻辑300可以响应于通过信号pass或失败信号fail来判断验证操作是已经通过还是失败。

在非易失性存储器件1100的操作中,每个存储块110可以是擦除操作的单位。换言之,可以对每个存储块110执行擦除操作,使得包括在存储块110中的多个存储单元被同时擦除,并且多个存储单元中的各个存储单元可以不被选择性地擦除。

图4是示出根据实施例的图3的存储块(或第一存储块)110的示图。

参考图4,在第一选择线与第二选择线之间彼此平行布置的多个字线可以耦接到第一存储块110。这里,第一选择线可以是源极选择线ssl,而第二选择线可以是漏极选择线dsl。更具体地,第一存储块110可以包括耦接在相应位线bl1至bln与源极线sl之间的多个存储串st。位线bl1至bln可以分别耦接至存储串st,并且存储串st可以共同耦接至源极线sl。存储串st可以彼此基本相同地配置,因此与第一位线bl1耦接的存储串st将作为示例来详细描述。

存储串st可以包括在源极线sl和第一位线bl1之间彼此串联耦接的源极选择晶体管sst、多个存储单元f1至f16以及漏极选择晶体管dst。在一个存储串st中可以包括至少一个源极选择晶体管sst和至少一个漏极选择晶体管dst,并且在一个存储串st中可以包括其数目大于图4中所示的存储单元f1至f16的数目的存储单元。

源极选择晶体管sst的源极可以耦接到源极线sl,而漏极选择晶体管dst的漏极可以耦接到第一位线bl1。存储单元f1至f16可以串联耦接在源极选择晶体管sst与漏极选择晶体管dst之间。包括在不同存储串st中的源极选择晶体管sst的栅极可以共同耦接到源极选择线ssl,包括在不同存储串st中的漏极选择晶体管dst的栅极可以共同耦接到漏极选择线dsl,包括在不同存储串st中的一组存储单元f1至f16的栅极可以共同耦接到多个字线wl1至wl16中对应的一个字线。耦接到同一字线并包括在不同存储串st中的一组存储单元(例如,存储单元f3)可以是物理页ppg。因此,物理页ppg的数量对应于第一存储块110中的字线wl1至wl16的数量。

一个存储单元mc可以储存一个比特位的数据。这通常被称为单电平单元(slc)。在这种情况下,一个物理页ppg可以储存一个逻辑页(lpg)数据。一个lpg数据可以包括其数量与在一个物理页ppg中包括的单元的数量相对应的数据比特位。另外,一个存储单元mc可以储存两个比特位或更多个比特位的数据。这通常称为多电平单元(mlc)。在这种情况下,一个物理页ppg可以储存两个或更多个lpg数据。

当存储单元储存两个比特位数据时,一个物理页ppg可以包括两个页pg。此时,一页pg可以储存一个lpg数据。一个存储单元可以根据已储存的数据而具有多个阈值电压中的任意一个,并且在一个物理页ppg中包括的多个页pg可以使用阈值电压中的差值来表示。

包括在一个物理页ppg中的多个存储单元可以被同时编程。换言之,非易失性存储器件(例如,图3的非易失性存储器件1100)可以以物理页ppg为单位执行编程操作。包括在一个存储块110中的多个存储单元可以被同时擦除。换言之,非易失性存储器件1100可以以存储块110为单位执行擦除操作。作为示例,为了更新储存在第一存储块中的数据的一部分,在储存在第一存储块中的全部数据被读取并且整个数据之中需要被更新的数据被修改后,整个数据可以在第二存储块中被再次编程。

图5是示出根据实施例的dram1305的示图。

参考图5,缓冲存储器件(例如,图1的缓冲存储器件1300)可以包括至少一个dram1305。dram1305可以包括存储单元阵列510、行解码器520、感测放大器电路(或感测放大器电路)530、列解码器540、控制逻辑550、命令解码器560、模式寄存器组(mrs)电路570、地址缓冲器580、数据输入/输出电路590和刷新电路500。

存储单元阵列510是其中在行方向和列方向上布置有多个存储单元的数据储存器。存储单元阵列510可以包括多个dram存储单元,并且当断电时储存在dram存储单元中的数据可以消失。基于储存在选定存储单元中的电荷分布,感测放大器电路530可通过感测并放大位线对之间的电压差来读取储存在存储单元阵列510中的数据。

基于地址信号add,将通过数据输入/输出电路590输入的数据data写入存储单元阵列510中。基于地址信号add从存储单元阵列510读取的数据data通过数据输入/输出电路590被输出到dram1305外部的一个或更多个电路元件。地址信号add被输入到地址缓冲器580以指定数据将被写入或读取的存储器。地址缓冲器580暂时储存从外部输入的地址信号add。

数据输入/输出电路590可以通过存储器参考电压焊盘(未示出)接收从外部设备输入的参考电压vref_m。参考电压vref_m可以是用于判断数据信号指示逻辑高值还是逻辑低值的电压。

行解码器520对从地址缓冲器580输出的地址信号add中的行地址进行解码,以指定与将要输入或输出数据的存储单元耦接的字线。即,行解码器520在数据写入模式或数据读取模式下通过对从地址缓冲器580输出的行地址进行解码来使能对应的字线。

列解码器540对从地址缓冲器580输出的地址信号add中的列地址进行解码,以指定与将要输入或输出数据的存储单元耦接的位线。

命令解码器560接收从外部施加的命令信号cmd,并且对命令信号cmd进行解码,由此在内部产生已解码的命令信号。mrs电路570响应于地址信号add和用于指定dram1305的操作模式的mrs命令来设置内部模式寄存器。控制逻辑550可以响应于从命令解码器输出的命令来控制图1的缓冲存储器件1300的操作。例如,由命令解码器560解码的命令信号包括mrs命令和从命令解码器560输出的命令。

刷新电路500可以控制储存在存储单元阵列510中包括的每一个dram存储单元中的数据的刷新操作。

此外,尽管在图5中未示出,dram1305还可以包括产生时钟信号的时钟电路以及接收从外部施加的电源电压并且基于接收到的电源电压来产生内部电压或者分配所产生的内部电压和所接收到的电源电压中至少一个的电源电路等。

图6是示出根据本公开实施例的缓冲存储器件(例如,图1的缓冲存储器件1300)的数据储存区域和奇偶校验储存区域的示图。

参考图6,缓冲存储器件1300的存储单元阵列(例如,图5的存储单元阵列510)可以包括第一块区域810和第二块区域820以及第一奇偶校验区域811和第二奇偶校验区域821。此外,第一块区域810可以包括第一区段至第n区段801-1至80n-1,并且第二块区域820可以包括第一区段至第n区段801-2至80n-2。

第一块数据可以被储存在第一块区域810中,而通过使用ecc电路(例如,图2的第二ecc电路750)对第一块数据执行ecc编码操作而产生的第一奇偶校验数据可以被储存在第一奇偶校验区域811中。例如,第一块数据可以是关于非易失性存储器件(例如,图3的非易失性存储器件1100)的物理-逻辑地址映射信息。此外,第二块数据可以被储存在第二块区域820中,而通过使用第二ecc电路750对第二块数据执行ecc编码操作而产生的第二奇偶校验数据可以被储存在第二奇偶校验区域821中。换言之,储存在第一块区域810和第二块区域820中的块数据可以是对其执行ecc编码操作或ecc解码操作的单位。

作为示例,储存在第一块区域810和第二块区域820的每一个块区域中的块数据可以具有128字节的大小。此外,与128字节的块数据相对应的奇偶校验数据可以具有2字节的大小。换言之,第二ecc电路750可以通过对128字节的块数据执行ecc编码来产生2字节的奇偶校验数据。

当产生将数据写入缓冲存储器件1300的第一块区域810中的写入请求时,处理器710可以将数据暂时高速缓存在高速缓存存储器720中,并使用第二ecc电路750对数据执行ecc编码操作。换言之,当从处理器710产生将数据写入缓冲存储器件1300的第一块区域810中的写入请求时,高速缓存存储器720可以在处理器710的控制下暂时高速缓存数据,并且第二ecc电路750可以在处理器710的控制下对高速缓存在高速缓存存储器720中的数据执行ecc编码操作。

此时,ecc编码的数据可以包括块数据和奇偶校验数据。处理器710可以将高速缓存在高速缓存存储器720中的块数据写入缓冲存储器件1300的第一块区域810中,并将奇偶校验数据写入第一奇偶校验区域811中。

当产生将区段数据写入缓冲存储器件1300的第一块区域810的第一区段801-1中的写入请求时,处理器710可以读取储存在第一块区域810中的块数据和储存在第一奇偶校验区域811中的奇偶校验数据,并且通过控制第二ecc电路750来基于所读取的块数据和奇偶校验数据执行ecc解码操作。另外,处理器710可以将ecc解码的块数据高速缓存在高速缓存存储器720中。然后,处理器710可以将与第一区段801-1相对应的已高速缓存的块数据的一部分修改为要写入的区段数据。处理器710可以通过控制第二ecc电路750对已修改的块数据执行ecc编码操作,并且将ecc编码的块数据和奇偶校验数据分别写入缓冲存储器件1300的第一块区域810和第一奇偶校验区域811。作为示例,储存在第一区段801-1至第n区段80n-1中的每一个区段中的数据可以具有2字节的大小。换言之,处理器710可以在缓冲存储器件1300中以具有2字节大小的数据单位来执行写入操作或读取操作。当处理器710将数据(例如,与第一区段801-1相对应的区段数据)以小于ecc编码单位的单位写入如上所述的缓冲存储器件1300中时,写入操作可以通过读取-修改写入操作来执行。

当产生读取储存在缓冲存储器件1300的第一块区域810的第一区段801-1中的区段数据的读取请求时,处理器710可以读取储存在第一块区域810中的块数据和储存在第一奇偶校验区域811中的奇偶校验数据,并且使用第二ecc电路750来基于所读取的块数据和奇偶校验数据执行ecc解码操作。换言之,第二ecc电路750可以在处理器710的控制下基于所读取的块数据和奇偶校验数据执行ecc解码操作。

此外,处理器710可以将ecc解码的块数据高速缓存在高速缓存存储器720中。高速缓存存储器720可以在处理器710的控制下将与第一区段801-1相对应的已高速缓存的数据的一部分作为区段数据输出到处理器710。

图7是图示根据本公开实施例的缓冲存储器件(例如,图1的缓冲存储器件1300)的数据写入方法的流程图。

参考图7,在步骤s701,处理器(例如,图2的处理器710)可以产生将块数据写入缓冲存储器件1300的块区域(例如,图6的块区域810和820之一)中的写入请求。此时,块数据可以具有与块区域810和820中的每个块区域的储存容量相对应的数据大小。

当从主机(例如,图1的主机2000)输入针对非易失性存储器件1100的数据写入命令时,处理器710可以产生针对缓冲存储器件1300的写入请求。当从主机2000接收到针对非易失性存储器件1100的写入命令、数据和逻辑地址时,存储系统1000可以响应于写入命令来分配非易失性存储器件1100中与逻辑地址相对应的物理地址。从主机2000输入的数据可以被写入与物理地址相对应的储存区域。例如,处理器710可以产生将包括逻辑地址与物理地址之间的映射关系的逻辑-物理地址映射信息写入缓冲存储器件1300中的写入请求。

在步骤s702,响应于在步骤s701产生的写入请求,可以将块数据高速缓存在高速缓存存储器720中。

然后,在步骤s703,可以对高速缓存在高速缓存存储器720中的块数据执行ecc编码操作。ecc编码操作可以由ecc电路(例如,图2的第二ecc电路750)执行。此外,ecc编码的数据可以包括块数据和奇偶校验数据。在步骤s704,可以将ecc编码的块数据和奇偶校验数据分别写入缓冲存储器件1300的块区域(例如,块区域810和820中的一个)和对应的奇偶校验区域(例如,奇偶校验区域811和821中的一个)中。

图8是示出根据本公开实施例的缓冲存储器件(例如,图1的缓冲存储器件1300)的数据写入方法的流程图。

参考图8,在步骤s801,处理器(例如,图2的处理器710)可以产生将区段数据(或写入数据)写入缓冲存储器件1300的块区域(图6的第一块区域810)的区段(例如,图6的第一区段801-1)中的写入请求。在步骤s802,处理器710可以响应于写入请求而读取储存在缓冲存储器件1300的第一块区域810中的块数据和储存在第一奇偶校验区域811中的奇偶校验数据。

在步骤s803,ecc电路(例如,图2的第二ecc电路750)可以在处理器710的控制下基于所读取的块数据和所读取的奇偶校验数据来执行ecc解码操作。在步骤s804,高速缓存存储器720在处理器710的控制下高速缓存ecc解码的块数据。

在步骤s805,处理器710可以将与第一区段801-1相对应的已高速缓存的块数据的一部分修改为区段数据。在步骤s806,第二ecc电路750可以在处理器710的控制下对包括区段数据的已修改的块数据执行ecc编码操作。例如,ecc编码的数据可以包括包含区段数据的已修改的块数据以及与已修改的块数据相对应的奇偶校验数据。

在步骤s807,缓冲存储器件1300可以在处理器710的控制下将ecc编码的块数据和奇偶校验数据分别写入缓冲存储器件1300的第一块区域810和第一奇偶校验区域811中。

当产生针对具有比ecc编码操作的单位小的单位的数据的写入请求时,可以通过读取-修改写入操作来执行这样的写入请求。

图9是示出根据本公开实施例的缓冲存储器件(例如,图1的缓冲存储器件1300)的数据读取过程900的流程图。

参考图9,在步骤s901,处理器(例如,图2的处理器710)可以产生读取储存在块区域(例如,图6的第一块区域810)的区段(例如,图6的第一区段801-1)中的区段数据的读取请求。

当从主机(例如,图1的主机2000)输入针对非易失性存储器件(例如,图1的非易失性存储器件1100)的读取命令时,处理器710可以产生针对缓冲存储器件1300的读取请求。当从主机2000接收到针对非易失性存储器件1100的读取命令和逻辑地址时,存储系统(例如,图1的存储系统1000)可以响应于读取命令来读取储存在缓冲存储器件1300中的数据以确定非易失性存储器件1100中与逻辑地址相对应的物理地址。例如,储存在缓冲存储器件1300中的数据可以包括关于映射到逻辑地址的物理地址的信息(即,逻辑-物理地址映射信息)。在这种情况下,处理器710可以产生从缓冲存储器件1300读取包括逻辑地址与物理地址之间的映射关系的逻辑-物理地址映射信息的读取请求。换言之,在步骤s901的读取请求可以通过上述过程来产生。

在步骤s902,响应于读取请求,处理器710可以读取储存在缓冲存储器件1300的第一块区域810中的块数据和储存在缓冲存储器件1300的第一奇偶校验区域811中的奇偶校验数据。

在步骤s903,ecc电路(例如,图2的第二ecc电路750)可以在处理器710的控制下基于所读取的块数据和所读取的奇偶校验数据来执行ecc解码操作。在步骤s904,高速缓存存储器720可以在处理器701的控制下高速缓存ecc解码的块数据。

然后,在步骤s905,可以将高速缓存存储器720中的与储存在第一区段801-1中的区段数据相对应的已高速缓存的块数据的一部分输出到处理器710。

图10是示出根据本公开实施例的缓冲存储器件(例如,图1的缓冲存储器件1300)的数据读取和写入过程1000的流程图。

参考图10,在步骤s1001,处理器(例如,图2的处理器710)可以产生将第一区段数据写入缓冲存储器件1300的第一块区域(例如,图6的第一块区域810)的区段(例如,图6的第一区段801-1)中的写入请求。在步骤s1002,处理器710可以响应于写入请求而读取储存在缓冲存储器件1300的第一块区域810中的第一块数据和储存在第一奇偶校验区域811中的第一奇偶校验数据。

在步骤s1003,ecc电路(例如,图2的第二ecc电路750)可以在处理器710的控制下基于所读取的第一块数据和所读取的第一奇偶校验数据来执行ecc解码操作。在步骤s1004,高速缓存存储器(例如,图2的高速缓存存储器720)可以在处理器710的控制下高速缓冲ecc解码的第一块数据。

然后,在s1005处,处理器710可以产生读取储存在第二块区域(例如,图6的第二块区域820)的区段(例如,图6的第二区段802-2)中的第二区段数据(或读取数据)的读取请求。

在步骤s1006,处理器710可以将与第一区段801-1相对应的已高速缓存的第一块数据的一部分修改为第一区段数据。在步骤s1007,第二ecc电路750可以在处理器710的控制下对包括第一区段数据的已修改的第一块数据执行ecc编码操作。例如,ecc编码的数据可以包括包含第一区段数据的已修改的第一块数据以及与已修改的第一块数据相对应的第一奇偶校验数据。在另一个示例中,步骤s1006可以在步骤s1005之前执行。

在步骤s1008,缓冲存储器件1300可以在处理器710的控制下将ecc编码的第一块数据和第一奇偶校验数据分别写入缓冲存储器件1300的第一块区域810和第一奇偶校验区域811中。

在步骤s1009,处理器710可以响应于读取请求来读取储存在缓冲存储器件1300的第二块区域820中的第二块数据和储存在缓冲存储器件1300的第二奇偶校验区域821中的第二奇偶校验数据。

在步骤s1010,第二ecc电路750可以在处理器710的控制下基于所读取的第二块数据和所读取的第二奇偶校验数据来执行ecc解码操作。在步骤s1011,高速缓存存储器720可以在处理器710的控制下将ecc解码的第二块数据高速缓存。

然后,在步骤s1012,将储存在高速缓存存储器720中的与储存在第二块区域820的第二区段802-2中的第二区段数据相对应的已高速缓存的第二块数据的一部分输出到处理器710。

图11是示出根据本公开实施例的缓冲存储器件(例如,图1的缓冲存储器件1300)的数据读取和写入过程1150的流程图。

参考图11,在s1101处,处理器(例如,图2的处理器710)可以产生将第一区段数据写入缓冲存储器件1300的第一块区域(例如,图6的第一块区域810)的区段(例如,图6的第一区段801-1)中的写入请求。

当从主机(例如,图1的主机2000)输入针对存储器件(例如,非易失性存储器件1100)的数据写入命令时,可以产生来自处理器710的针对缓冲存储器件1300的写入请求。当从主机2000接收到针对非易失性存储器件1100的写入命令、数据和逻辑地址时,存储系统(例如,图1的存储系统1000)可以使写入命令排队。另外,存储系统1000可以响应于写入命令而分配非易失性存储器件1100中与逻辑地址相对应的物理地址。此时,从主机2000输入的数据可以被写入与物理地址相对应的储存区域。例如,可以从处理器710产生将包括逻辑地址与物理地址之间的映射关系的逻辑-物理地址映射信息写入缓冲存储器件1300中的写入请求。

在步骤s1102,处理器710可以响应于写入请求而读取储存在缓冲存储器件1300的第一块区域810中的第一块数据和储存在缓冲存储器件1300的第一奇偶校验区域811中的第一奇偶校验数据。

在步骤s1103,ecc电路(例如,图2的第二ecc电路750)可以基于从第一块区域810读取的第一块数据和从第一奇偶校验区域811读取的第一奇偶校验数据来执行ecc解码操作。在步骤s1104,高速缓存存储器720可以在处理器710的控制下高速缓存ecc解码的第一块数据。

然后,在步骤s1105,处理器710可以产生读取储存在第二块区域(例如,图6的第二块区域820)的区段(例如,图6的第二区段802-2)中的第二区段数据的读取请求。

当从主机2000输入针对非易失性存储器件1100的读取命令时,可以产生来自处理器710的针对缓冲存储器件1300的读取请求。当从主机2000接收到针对非易失性存储器件1100的读取命令和逻辑地址时,存储系统1000可以使读取命令排队。此外,存储系统1000可以响应于读取命令来读取储存在缓冲存储器件1300中的数据以确定非易失性存储器件1100的与逻辑地址相对应的物理地址。此时,储存在缓冲存储器件1300中的数据可以包括关于映射到逻辑地址的物理地址的信息(即,逻辑-物理地址映射信息)。例如,可以从处理器710产生从缓冲存储器件1300中读取包括逻辑地址与物理地址之间的映射关系的逻辑-物理地址映射信息的读取请求。

存储系统1000可以首先处理已排队的写入命令与已排队的读取命令之间的读取命令。换言之,存储系统1000可以基于给定的优先顺序来处理多个已排队的命令,使得存储系统1000首先处理具有较高优先级的命令(例如,读取命令)。

在步骤s1106,处理器710可以响应读取请求来读取储存在缓冲存储器件1300的第二块区域820中的第二块数据和储存在缓冲存储器件1300的第二奇偶校验区域821中的第二奇偶校验数据。

在步骤s1107,第二ecc电路750可以在处理器710的控制下基于所读取的第二块数据和所读取的第二奇偶校验数据来执行ecc解码操作。在步骤s1108,高速缓存存储器720可以在处理器710的控制下高速缓存ecc解码的第二块数据。

然后,在步骤s1109,可以将与储存在第二块区域820的第二区段802-2中的第二区段数据相对应的已高速缓存的第二块数据的一部分输出到处理器710。

在步骤s1110,处理器710可以将与第一区段801-1相对应的已高速缓存的第一块数据的一部分修改为第一区段数据。在步骤s1111,第二ecc电路750可以在处理器710的控制下对包括第一区段数据的已修改的第一块数据执行ecc编码操作。例如,ecc编码的数据可以包括包含第一区段数据的已修改的第一块数据以及与已修改的第一块数据相对应的第一奇偶校验数据。

作为另一个示例,步骤s1110可以在步骤s1104和步骤s1105之间执行。

在步骤s1112,缓冲存储器件1300可以在处理器710的控制下将ecc编码的第一块数据和第一奇偶校验数据分别写入缓冲存储器件1300的第一块区域810和第一奇偶校验区域811中。

当从主机2000输入读取命令和逻辑地址时,存储系统1000可以读取储存在缓冲存储器件1300中的逻辑-物理地址映射信息,并且从所读取的逻辑-物理地址映射信息确定与逻辑地址相对应的物理地址。然后,存储系统1000可以基于物理地址来读取储存在非易失性存储器件1100中的数据,并且将所读取的数据输出到主机2000。作为示例,存储系统1000读取储存在缓冲存储器件1300中的逻辑-物理地址映射信息可能要花费很长时间,并且因此存储系统1000的读取性能可能恶化。因此,期望存储系统1000高速读取储存在缓冲存储器件1300中的逻辑-物理地址映射信息。

如上所述,与写入请求相比,存储系统1000优先处理读取请求,从而可以减少读取请求之后的延时。结果,可以提高存储系统1000的读取性能。

图12是示出根据本公开实施例的缓冲存储器件(例如,图1的缓冲存储器件1300)的数据读取和写入过程1250的流程图。

参考图12,在步骤s1201,处理器(例如,图2的处理器710)可以产生将第一区段数据写入缓冲存储器件1300的块区域(例如,图6的第一块区域810)的区段(例如,图6的第一区段801-1)的写入请求。在步骤s1202,处理器710可以响应于写入请求而读取储存在缓冲存储器件1300的第一块区域810中的第一块数据和储存在缓冲存储器件1300的第一奇偶校验区域811中的第一奇偶校验数据。

在步骤s1203,ecc电路(例如,图2的第二ecc电路750)可以基于从第一块区域810读取的第一块数据和从第一奇偶校验区域811读取的第一奇偶校验数据来执行ecc解码操作。在步骤s1204,高速缓存存储器(例如,图2的高速缓存存储器720)可以在处理器710的控制下高速缓存ecc解码的第一块数据。

然后,在步骤s1205,处理器710可以产生读取储存在区段(例如,图6的第一块区域810的第二区段802-1或第二块区域820的第二区段802-2)中的第二区段数据的读取请求。

在步骤s1206,处理器710可以检查请求读取的第二区段数据是否已经被高速缓存在高速缓存存储器720中。当第二区段数据已经被高速缓存在高速缓存存储器720中时,即,在高速缓存命中时(对应于步骤s1206的“是”),在步骤s1207,高速缓存存储器720可以立即将储存在其中的ecc解码的第一块数据之中的第二区段数据输出到处理器710。换言之,请求读取的第二区段数据是储存在第一块区域810的第二区段802-1中的数据,而不是储存在第二块区域820的第二区段802-2中的数据。

在步骤s1208,处理器710可以将与第一区段801-1相对应的已高速缓存的第一块数据的一部分修改为第一区段数据。在步骤s1209,第二ecc电路750可以在处理器710的控制下对包括第一区段数据的已修改的第一块数据执行ecc编码操作。例如,ecc编码的数据可以包括包含第一区段数据的已修改的第一块数据以及与已修改的第一块数据相对应的第一奇偶校验数据。在另一个示例中,步骤s1208可以在步骤s1204与步骤s1205之间执行。结果,可以在步骤s1207之后立即执行步骤s1209。

在步骤s1210,缓冲存储器件1300可以在处理器710的控制下将ecc编码的第一块数据和第一奇偶校验数据分别写入缓冲存储器件1300的第一块区域810和第一奇偶校验区域811中。

当高速缓存存储器720包含要读取的第二区段数据时,即,在高速缓存命中时(对应于步骤s1206的“是”),过程1250在步骤s1210之后完成。写入请求和读取请求两者都可以通过上述步骤来执行。

当请求读取的第二区段数据不存在于高速缓存存储器720中的已高速缓存的第一块数据中时,即,在高速缓存未命中时(对应于步骤s1206的“否”),步骤s1208、s1209和s1210可以在不执行步骤s1207的情况下执行。例如,请求读取的第二区段数据是储存在第二块区域820的第二区段802-2中的数据,而不是储存在第一块区域810的第二区段802-1中的数据。

然后,在步骤s1211,可以读取储存在第二块区域820中包括请求读取的第二区段数据的第二块数据和储存在第二奇偶校验区域821中的第二奇偶校验数据。

在步骤s1212,第二ecc电路750可以在处理器710的控制下基于所读取的第二块数据和所读取的第二奇偶校验数据来执行ecc解码操作。在步骤s1213,高速缓存存储器720可以在处理器710的控制下高速缓存ecc解码的第二块数据。

然后,在步骤s1214,可以将储存在高速缓存存储器720中的ecc解码的第二块数据之中的第二区段数据输出到处理器710。

当高速缓存存储器720不包含要读取的第二区段数据时,即在高速缓存未命中时(对应于步骤s1206的“否”),过程1250在步骤s1214之后完成。写入请求和读取请求两者都可以通过上述步骤来执行。

如上所述,当响应于读取请求而要读取的数据存在于存储系统1000响应于写入请求已经从缓冲存储器件1300读取并且储存在高速缓存存储器720中的数据之中时,即,在高速缓存命中时,存储系统1000可以直接从高速缓存存储器720输出要被读取的数据,而不是执行从缓冲存储器件1300读取数据的单独操作。因此,可以减少读取请求之后的延时。结果,可以提高存储系统1000的读取性能。

图13是示出根据本公开实施例的缓冲存储器件(例如,图1的缓冲存储器件1300)的数据读取和写入过程1350的流程图。

参考图13,在步骤s1301,处理器(例如,图2的处理器710)可以产生将第一区段数据写入缓冲存储器件1300的块区域(例如,图6的第一块区域810)的区段(例如,图6的第一区段801-1)中的写入请求。在步骤s1302,处理器710可以响应于写入请求而读取储存在缓冲存储器件1300的第一块区域810中的第一块数据以及储存在缓冲存储器件1300的第一奇偶校验区域811中的第一奇偶校验数据。

在步骤s1303,ecc电路(例如,图2的第二ecc电路750)可以基于从第一块区域810读取的第一块数据和从第一奇偶校验区域811读取的第一奇偶校验数据来执行ecc解码操作。在步骤s1304,高速缓存存储器720可以在处理器710的控制下高速缓存ecc解码的第一块数据。

然后,在步骤s1305,处理器710可以产生读取储存在区段(例如,图6的第一块区域810的第二区段802-1或第二块区域820的第二区段802-2)中的第二区段数据的读取请求。

在步骤s1306,处理器710可以检查请求读取的第二区段数据是否已经被高速缓存在高速缓存存储器720中。当第二区段数据已经被高速缓存在高速缓存存储器720中时,即,在高速缓存命中时(对应于步骤s1306的“是”),在步骤s1307,高速缓存存储器720可以将储存在其中的ecc解码的第一块数据之中的第二区段数据输出到处理器710。换言之,请求读取的第二区段数据是储存在第一块区域810的第二区段802-1中的数据,而不是储存在第二块区域820的第二区段802-2中的数据。

在步骤s1312,处理器710可以将与第一区段801-1相对应的已高速缓存的第一块数据的一部分修改为第一区段数据。在步骤s1313,第二ecc电路750可以在处理器710的控制下对包括第一区段数据的已修改的第一块数据执行ecc编码操作。例如,ecc编码的数据可以包括包含第一区段数据的已修改的第一块数据以及与已修改的第一块数据相对应的第一奇偶校验数据。在另一个示例中,步骤s1312可以在步骤s1304与步骤s1305之间执行。结果,可以在步骤s1311之后立即执行步骤s1313。

在步骤s1314,缓冲存储器件1300可以在处理器710的控制下将ecc编码的第一块数据和第一奇偶校验数据分别写入缓冲存储器件1300的第一块区域810和第一奇偶校验区域811中。

当高速缓存存储器720包含要读取的第二区段数据时,即,在高速缓存命中时(对应于步骤s1306的“是”),过程1350在步骤s1314之后完成。写入请求和读取请求两者都可以通过上述步骤来执行。

当请求读取的第二区段数据不存在于高速缓存存储器720中的已高速缓存的第一块数据中时,即,在高速缓存未命中时(对应于步骤s1306的“否”),步骤s1308、s1309、s1310和s1311可以在不执行步骤1307的情况下执行。在步骤s1308,可以读取储存在第二块区域820中包括请求读取的第二区段数据的第二块数据和储存在第二奇偶校验区域821中的第二奇偶校验数据。

在步骤s1309,第二ecc电路750可以在处理器710的控制下基于所读取的第二块数据和所读取的第二奇偶校验数据来执行ecc解码操作。在步骤s1310,高速缓存存储器720可以在处理器710的控制下高速缓存ecc解码的第二块数据。

然后,在步骤s1311,可以将储存在高速缓存存储器720中的ecc解码的第二块数据之中的第二区段数据输出到处理器710。

步骤s1312至s1314可以在步骤s1311之后执行。当高速缓存存储器720不包含要读取的第二区段数据时,即,在高速缓存未命中时(对应于步骤s1306的“否”),过程1350在步骤s1314之后完成。写入请求和读取请求两者都可以通过上述步骤来执行。

如上所述,当响应于读取请求而要读取的数据存在于存储系统1000响应于写入请求已经读取并且储存在高速缓存存储器720中的数据之中时,即,在高速缓存命中时,存储系统1000可以从高速缓存存储器720中输出要读取的数据,而不是执行从缓冲存储器件1300读取数据的单独操作。因此,可减少读取请求之后的延时。结果,可以提高存储系统1000的读取性能。

此外,在高速缓存未命中时,与写入请求相比,存储系统1000优先处理读取请求,从而可以减少读取请求之后的延时。结果,可以提高存储系统1000的读取性能。

图14是示出根据实施例的包括图2的存储器控制器1200的存储系统30000的示图。

参考图14,存储系统30000可以被实现为蜂窝电话、智能电话、平板电脑、个人数字助理(pda)或无线通信设备。存储系统30000可以包括非易失性存储器件1100和能够控制非易失性存储器件1100的操作的存储器控制器1200。存储器控制器1200可以在处理器3100的控制下控制非易失性存储器件1100的数据访问操作(例如,编程操作、擦除操作或读取操作)。

在非易失性存储器件1100中被编程的数据可以在存储器控制器1200的控制下通过显示器3200输出。

无线电收发器3300可以通过天线ant传输/接收无线电信号。例如,无线电收发器3300可以将通过天线ant接收的无线电信号转换为可以由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号,并将处理后的信号传输给存储器控制器1200或显示器3200。存储器控制器1200可以在非易失性存储器件1100中对由处理器3100处理的信号进行编程。此外,无线电收发器3300可以将从处理器3100输出的信号转换为无线电信号,并且通过天线ant将转换后的无线电信号输出到外部设备。输入设备3400是能够输入用于控制处理器3100的操作的控制信号或要由处理器3100处理的数据的设备,并且可以被实现为诸如触摸板或电脑鼠标、小键盘或键盘的指示设备。处理器3100可以控制显示器3200的操作,使得可以通过显示器3200输出从存储器控制器1200输出的数据、从无线电收发器3300输出的数据或从输入设备3400输出的数据。

在一些实施例中,能够控制非易失性存储器件1100的操作的存储器控制器1200可以被实现为处理器3100的一部分,或者被实现为与处理器3100分离的芯片。另外,存储器控制器1200可以用图2所示的存储器控制器来实现。

图15是示出根据实施例的包括图2的存储器控制器1200的存储系统40000的示图。

参考图15,存储系统40000可以被实现为个人计算机(pc)、平板电脑、上网本、电子阅读器、个人数字助理(pda)、便携式多媒体播放器(pmp)、mp3播放器或者mp4播放器。

存储系统40000可以包括非易失性存储器件1100和能够控制非易失性存储器件1100的数据处理操作的存储器控制器1200。

处理器4100可以根据通过输入设备4200输入的数据来经由显示器4300输出储存在非易失性存储器件1100中的数据。例如,输入设备4200可以被实现为诸如触摸板或者电脑鼠标、键盘或键盘的指示设备。

处理器4100可以控制存储系统40000的整体操作,并且控制存储器控制器1200的操作。在一些实施例中,能够控制非易失性存储器件1100的操作的存储器控制器1200可以被实现为处理器4100的一部分,或者被实现为与处理器4100分离的芯片。另外,存储器控制器1200可以用图2中所示的存储器控制器来实现。

图16是示出根据实施例的包括图2的存储器控制器1200的存储系统50000的示图。

参考图16,存储系统50000可以被实现为图像处理设备,例如数字照相机、具有附接到其上的数字照相机的移动终端、具有附接到其上的数字照相机的智能电话或具有附接到其上的数字照相机的平板电脑。

存储系统50000可以包括非易失性存储器件1100及能够控制非易失性存储器件1100的数据处理操作(例如,编程操作、擦除操作或读取操作)的存储器控制器1200。

存储系统50000的图像传感器5200可以将光学图像转换成数字信号,并且转换后的数字信号可以被传输到处理器5100或存储器控制器1200。在处理器5100的控制下,转换后的数字信号可以经由显示器5300输出,或者通过存储器控制器1200储存在非易失性存储器件1100中。另外,储存在非易失性存储器件1100中的数据可以在处理器5100或者存储器控制器1200的控制下经由显示器5300输出。

在一些实施例中,能够控制非易失性存储器件1100的操作的非易失性存储器控制器1200可以被实现为处理器5100的一部分,或者被实现为与处理器5100分离的芯片。另外,存储器控制器1200可以用图2所示的存储器控制器来实现。

图17是示出根据实施例的包括图2的存储器控制器1200的存储系统70000的示图。

参考图17,存储系统70000可以被实现为存储卡或智能卡。存储系统70000可以包括非易失性存储器件1100、存储器控制器1200和卡接口7100。

存储器控制器1200可以控制非易失性存储器件1100与卡接口7100之间的数据交换。在一些实施例中,卡接口7100可以是安全数字(sd)卡接口或多媒体卡(mmc)接口,但是本公开不限于此。另外,存储器控制器1200可以用图2所示的存储器控制器来实现。

卡接口7100可以根据主机60000的协议对主机60000与存储器控制器1200之间的数据交换进行交互。在一些实施例中,卡接口7100可以支持通用串行总线(usb)协议和芯片间(ic)-usb协议。这里,卡接口7100可以表示能够支持由主机60000使用的协议的硬件、嵌入在硬件中的软件或者信号传输方案。

当存储系统70000耦接到主机60000(诸如pc、平板pc、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒)的主机接口6200时,主机接口6200可以在微处理器6100的控制下通过卡接口7100和存储器控制器1200执行与非易失性存储器件1100的数据通信。

根据本公开,在存储系统的操作中,可以使用高速缓存存储器来减少读取储存在缓冲存储器件中的数据所需的时间。

本文已经公开了示例性实施例,并且尽管使用了特定术语,但是它们仅被用于并且将仅被解释为一般性和描述性的意义,而不是为了限制性的目的。在一些情况下,对于本领域技术人员而言显而易见的是,本申请提交时,结合特定实施例描述的特征、特性和/或元件可以单独使用或与其它实施例描述的特征、特性和/或元件组合使用,除非另外具体指出。因此,本领域技术人员将理解的是,在不脱离如所附权利要求中所阐述的本公开的精神和范围的情况下,可以进行形式和细节上的各种改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1