存储器控制器及用于管理存储器的方法与流程

文档序号:11233788阅读:409来源:国知局
存储器控制器及用于管理存储器的方法与流程

相关申请的交叉引用

本申请要求在2016年3月3日提交的申请号为10-2016-0025661的韩国专利申请的优先权,通过引用将其全部内容并入本文。

本发明的示例性实施例总体涉及一种半导体设计技术,并且更特别地,涉及一种存储器控制器和用于管理存储器的方法。



背景技术:

计算机环境范例已经变成可以在任意时间和任意地点使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用持续快速增加。这些便携式电子装置通常使用具有用于存储数据的一个或多个半导体存储器装置的存储器系统(也被称为数据存储装置)。存储器系统可以被用作便携式电子装置的主存储器装置或辅助存储器装置。

由于存储器系统没有活动部件,因此它们可以提供优异的稳定性、耐久性、高信息访问速度和低功耗。存储器系统的示例包括通用串行总线(usb)存储器装置、具有各种接口的存储卡和固态驱动器(ssd)。



技术实现要素:

本发明的实施例涉及用于存储器系统的存储器控制器和用于有效管理包括在存储器系统中的半导体存储器的存储区域的方法。

根据本发明的实施例,用于管理存储器的方法可以包括:接收来自主机的写入请求;基于根据来自主机的写入请求的从主机接收的数据的数据特征信息,在存储器的多个内部存储区域中选择内部存储区域;生成包括根据写入请求的数据的数据特征信息的元数据;以及将元数据与数据一起存储在所选择的内部存储区域中。

该方法可以进一步包括:在将数据与元数据一起存储在所选择的内部存储区域中之后,接收用于从主机接收的数据的读取请求;基于根据读取请求的数据的数据特征信息,在多个内部存储区域中选择一个内部存储区域;从所选择的内部存储区域中读出对应于根据读取请求的数据的元数据,其中所选择的内部存储区域基于根据读取请求的数据的数据特征信息来选择;确定包括在读取元数据内的根据写入请求的数据的数据特征信息与根据读取请求的数据的数据特征信息是否相同;以及当包括在读取元数据内的根据写入请求的数据的数据特征信息与根据读取请求的数据的数据特征信息相同时,从所选择的内部存储区域中读出根据读取请求的数据,其中所选择的内部存储区域基于根据读出请求的数据的数据特征信息来选择。

该方法还可以进一步包括:当包括于读取元数据内的根据写入请求的数据的数据特征信息与根据读取请求的数据的数据特征信息不相同时,不读取根据读取请求的数据。

该方法还可以进一步包括:将数据特征不符(discrepancy)和读取失败信息传送至主机。

将元数据与数据一起存储在所选择的内部存储区域中可以包括:检查数据的大小和元数据的大小的总和是否大于所选择的内部存储区域的空白空间的大小,其中所选择的内部存储区域基于根据写入请求的数据的数据特征信息来选择。

检查数据的大小和元数据的大小的总和是否大于所选择的内部存储区域的空白空间的大小,其中所选择的内部存储区域基于根据写入请求的数据的数据特征信息来选择,可以包括:计算对应于总和的地址区域的大小,并将计算的地址区域的大小与对应于所选择的内部存储区域的空白空间的所选择的地址区域的大小进行比较,其中所选择的内部存储区域基于根据写入请求的数据的数据特征信息来选择;当计算的地址区域的大小大于所选择的地址区域的大小时,确定总和的大小大于所选择的内部存储区域的大小;以及当计算的地址区域的大小不大于所选择的地址区域的大小时,确定总和的大小不大于所选择的内部存储区域的大小。

将元数据与数据一起存储在所选择的内部存储区域中可以进一步包括:当数据的大小和元数据的大小的总和不大于所选择的内部存储区域的空白空间的大小时,将数据和元数据存储在所选择的内部存储区域中,其中所选择的内部存储区域基于根据写入请求的数据的数据特征信息来选择。

将元数据与数据一起存储在所选择的内部存储区域中可以进一步包括:当数据的大小和元数据的大小的总和大于所选择的内部存储区域的空白空间的大小时,不将数据和元数据存储在所选择的内部存储区域中,其中所选择的内部存储区域基于根据写入请求的数据的数据特征信息来选择。

将元数据与数据一起存储在所选择的内部存储区域中可以进一步包括:当数据的大小和元数据的大小的总和大于所选择的内部存储区域的空白空间的大小时,将溢出和存储失败信息传送至主机。

根据本发明的实施例,存储器控制器可以包括:存储器;以及处理器。处理器可以适于:将存储器的存储区域划分为多个内部存储区域;基于根据来自主机的写入请求的数据的数据特征信息在多个内部存储区域中选择一个内部存储区域;生成包括根据写入请求的数据的数据特征信息的元数据;以及将元数据与数据一起存储在所选择的内部存储区域中。

处理器可以进一步适于:当在将数据与元数据一起存储在所选择的内部存储区域中之后,从主机接收用于数据的读取请求时,基于根据读取请求的数据的数据特征信息在多个内部存储区域中选择一个内部存储区域;从所选择的内部存储区域中读出对应于根据读取请求的数据的元数据,其中所选择的内部存储区域基于根据读取请求的数据的数据特征信息来选择,并确定包括在读取元数据内的根据写入请求的数据的数据特征信息与根据读取请求的数据的数据特征信息是否相同;以及当包括在读取元数据内的根据写入请求的数据的数据特征信息与根据读取请求的数据的数据特征信息相同时,从所选择的内部存储区域中读出根据读取请求的数据,其中所选择的内部存储区域基于根据读取请求的数据的数据特征信息来选择。

处理器可以进一步适于:当包括在读取元数据内的根据写入请求的数据的数据特征信息与根据读取请求的数据的数据特征信息不相同时,不读取根据读取请求的数据。

处理器可以进一步适于:将数据特征不符和读取失败信息传送至主机。

处理器可以进一步适于:检查数据的大小和元数据的大小的总和是否大于所选择的内部存储区域的空白空间的大小,其中所选择的内部存储区域基于根据写入请求的数据的数据特征信息来选择。

处理器可以进一步适于通过包括:计算对应于总和的地址区域的大小,并将计算的地址区域的大小与对应于所选择的内部存储区域的空白空间的选择的地址区域的大小进行比较,其中所选择的内部存储区域基于根据写入请求的数据的数据特征信息来选择;当计算的地址区域的大小大于所选择的地址区域的大小时,确定总和的大小大于所选择的内部存储区域的大小;以及当计算的地址区域的大小不大于所选择的地址区域的大小时,确定总和的大小不大于所选择的内部存储区域的大小,来检查数据的大小和元数据的大小的总和是否大于所选择的内部存储区域的空白空间的大小,其中所选择的内部存储区域基于根据写入请求的数据的数据特征信息来选择。

处理器可以进一步适于:当数据的大小和元数据的大小的总和不大于所选择的内部存储区域的空白空间的大小时,将数据和元数据存储在所选择的内部存储区域中,其中所选择的内部存储区域基于根据写入请求的数据的数据特征信息来选择。

处理器可以进一步适于:当数据的大小和元数据的大小的总和大于所选择的内部存储区域的空白空间的大小时,不将数据和元数据存储在所选择的内部存储区域中,其中所选择的内部存储区域基于根据写入请求的数据的数据特征信息来选择。

处理器可以进一步适于:当数据的大小和元数据的大小的总和大于所选择的内部存储区域的空白空间的大小时,将溢出和存储失败信息传送至主机。

附图说明

通过参照附图详细描述本发明的特定实施例,本发明的上述和其它特征和优点对本发明所属领域的技术人员将是更显而易见的,在附图中:

图1为根据本发明的实施例的包括存储器系统的数据处理系统的简化图。

图2示出了图1所示的存储器系统的组成元件中的存储器。

图3示出了图2的存储器如何与主机的使用方法相关。

图4示出了根据本发明的实施例的存储器管理方法。

图5a和图5b为示出根据本发明的实施例的图4的存储器管理方法的操作的流程图。

具体实施方式

下面将参照附图更详细地描述本发明的各种实施例。然而,本发明可以不同形式被实施,并且不应当被解释为限定于本文所述的实施例。更确切地说,提供这些实施例以使本公开将是全面和完整的,并且将会充分传达本发明至本领域内技术人员。

应当理解的是,尽管术语“第一”、“第二”、“第三”等可以在本文中用于描述各种元件,但这些元件不被这些术语限制。这些术语用于区分一个元件与另一个元件。因此,在不脱离本发明的精神和范围的情况下,下文所述的第一元件还可以被称作第二元件或第三元件。

附图不一定按比例绘制,且在一些情况下,为了更清楚地说明实施例的各种元件,比例可能已经被放大。例如,在附图中,为了便于说明,元件的尺寸和元件之间的间隔与实际尺寸和间隔相比可以被放大。

将进一步理解的是,当元件被称为“连接到”或“联接到”另一元件时,其可以直接地在其它元件上、连接到或联接到其它元件,或可以存在一个或多个中间元件。此外,还将理解的是,当元件被称作在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者还可以存在一个或多个中间元件。

本文使用的术语只是为了描述特定实施例,而并不旨在限定本发明。如本文所使用的,除非上下文另有清楚地说明,否则单数形式也旨在包括复数形式。将进一步理解的是,当用于本说明书时,术语“包括”、“包括有”、“包含”和“包含有”指定存在所陈述的元件,但并不排除一个或多个其它元件的存在或加入。如本文所使用的,术语“和/或”包括一个或多个相关的所列项目的任意以及所有组合。

在以下说明中,为了提供本发明的全面的理解,许多具体的细节被提出。本发明可以在没有一些或所有这些具体细节的情况下被实施。在其它实例中,为了避免不必要地模糊本发明,众所周知的进程结构和/或进程没有被详细描述。

也应注意的是,在一些实例中,如对相关领域的技术人员明显的是,结合一个实施例描述的特征或元件可以单独使用或与另一个实施例的其它特征或元件组合使用,除非另有特别说明。

下文中,将参照附图详细描述本发明的各种实施例。在本公开全文中,本发明的各个附图和实施例中相同的附图标记指代相同的部件。

现在参照图1,根据本发明的实施例,包括存储器系统110的数据处理系统100被提供。数据处理系统100可以包括可操作地联接到存储器系统的主机102。

主机102可以包括诸如移动电话、mp3播放器和笔记本电脑的便携式电子装置或诸如台式电脑、游戏机、电视机(tv)和投影机的固定的电子装置。

存储器系统110可以响应于来自主机102的请求操作。特别地,存储器系统110可以存储待被主机102访问的数据。存储器系统110可以用作主机102的主存储器系统或辅助存储器系统。根据待与主机102电联接的主机接口的协议,存储器系统110可以被实施为各种存储装置中的任何一种。例如,存储器系统110可以实施为固态驱动器(ssd)、多媒体卡(mmc)、嵌入式mmc(emmc)、缩小尺寸的mmc(rs-mmc)和微型mmc、安全数字(sd)卡、迷你sd和微型sd、通用串行总线(usb)存储装置、通用闪速存储(ufs)装置、标准闪存(cf)卡、智能媒体(sm)卡、记忆棒等。

存储器系统110的存储装置可以实施为诸如动态随机存取存储器(dram)和静态随机存取存储器(sram)的易失性存储器装置,或诸如只读存储器(rom)、掩模型rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电随机存取存储器(fram)、相变ram(pram)、磁阻式ram(mram)和电阻式ram(rram)的非易失性存储器装置可以可以可以可以。

存储器系统110可以包括用于存储待被主机102访问的数据的存储器装置150和用于控制存储器装置150的操作及其与主机的接合的控制器130。

控制器130和存储器装置150可以被集成到单个半导体装置中。例如,控制器130和存储器装置150可以被集成到被配置为固态驱动器(ssd)的单个半导体装置中。当存储器系统110被用作ssd时,与存储器系统110电联接的主机102的操作速度可以显著增加。

控制器130和存储器装置150可以被集成到被配置为存储卡的单个半导体装置中。控制器130和存储器装置150可以被集成到被配置为诸如个人计算机存储卡国际协会(pcmcia)卡,标准闪存(cf)卡,智能媒体(sm)卡(smc),记忆棒,多媒体卡(mmc),rs-mmc和微型-mmc,安全数字(sd)卡,迷你-sd、微型-sd和sdhc以及通用闪速存储(ufs)装置的存储卡的单个半导体装置中标准闪存。

再如,存储器系统110可以被配置为计算机、超级移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航装置、黑盒子、数码相机、数字多媒体广播(dmb)播放器、三维(3d)电视机、智能电视机、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储器、能够在无线环境下传送和接收信息的装置、配置家庭网络的各种电子装置中的一种、配置计算机网络的各种电子装置中的一种、配置远程信息处理网络的各种电子装置中的一种、rfid装置或配置计算系统的各种组成元件中的一种的存储装置。

在实施例中,存储器装置150可以是能够甚至当电源中断时保留存储在其中的数据的非易失性存储器装置。存储器装置150可以在写入操作期间存储由主机102提供的数据,并且还可以在读取操作期间将存储数据提供给主机102。存储器装置150可以包括多个存储块152、154和156。存储块152、154和156中的每个可以包括多个页面。每个页面可以包括多个存储器单元。在实施例中,页面包括被联接到相同字线的多个存储器单元。在实施例中,存储器装置150可以是具有三维(3d)堆栈结构的闪速存储器。

控制器130可以响应于从主机102接收的请求控制存储器装置150。控制器130可以控制存储器装置150的操作,例如包括读取、写入、编程和擦除操作。例如,控制器130可以响应于从主机102接收的读取请求将从存储器装置150读取的数据提供给主机102。而且,例如,控制器130可以响应于从主机102接收的编程(写入)请求,存储从主机102提供给存储器装置150的数据。

根据图1所示的实施例,控制器130可以包括主机接口单元132、处理器134、错误校正码(ecc)单元138、电源管理单元(pmu)140、nand闪速控制器(nfc)142和存储器144。

主机接口单元132可以处理由主机102提供的命令和数据,并可以通过诸如通用串行总线(usb)、多媒体卡(mmc)、高速外设组件互连(pci-e)、串列scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)和集成驱动电路(ide)的各种接口协议中的至少一种与主机102通信。

ecc单元138可以检测和校正在读取操作期间从存储器装置150读取的数据中的错误。当误码(errorbit)的数量大于或等于可校正误码的阈值数量时,ecc单元138可不校正误码,并且ecc单元138可以输出指示校正误码失败的错误校正失败信号。

ecc单元138可以基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格母(bose-chaudhuri-hocquenghem,bch)码、turbo码、里德-所罗门(reed-solomon,rs)码、卷积码、递归系统码(rsc)、格形码调制(tcm)、分组编码调制(bcm)等。ecc单元138可以包括适于错误校正操作的所有电路、系统或装置。

pmu140可以提供和管理用于控制器130的电力,即用于包括在控制器130内的组成元件的电力。pmu在本领域内是众所周知的,因此省略了其进一步的细节。任何适合的pmu可以被采用。

nfc142是当存储器装置150为nand闪速存储器装置时,控制器130和存储器装置150之间适合的存储器接口的示例。nfc142提供接口以使控制器130响应于来自主机102的请求控制存储器装置150。nfc142还可以在处理器134的控制下生成用于存储器装置150的控制信号并处理数据。当存储器装置150不是nand闪速存储器装置时,可以采用本领域中许多众所周知的存储器接口中的不同的适合的接口。

存储器144可以作为存储器系统110和控制器130的工作存储器,并存储用于驱动存储器系统110和控制器130的数据。控制器130可以响应于来自主机102的请求控制存储器系统150。例如,控制器130可以将从存储器装置150读取的数据提供给主机102,并将由主机102提供的数据存储在存储器装置150中。当控制器130控制存储器装置150的操作时,存储器144可以存储被控制器130和存储器装置150用于诸如读取、写入、编程和擦除操作的操作的数据。

存储器144可以利用易失性存储器实施。例如,存储器144可以利用静态随机存取存储器(sram)或动态随机存取存储器(dram)实施。如上所述,存储器144可以存储被主机102和存储器装置150用于读取和写入操作的数据。为了存储数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。

处理器134可以控制存储器系统110的操作。例如,处理器134可以响应于来自主机102的写入请求或读取请求,控制用于存储器装置150的写入操作或读取操作。处理器134可以驱动被称为闪存转换层(ftl)的固件,以控制存储器系统110的操作。例如,处理器134可以利用微处理器或中央处理单元(cpu)实施。

管理单元(未示出)可以被包括在处理器134中以用于对存储器装置150执行坏块管理。例如,管理单元可以发现包含在存储器装置150内的处于不利于进一步使用的情况中的坏存储块,并对坏存储块执行坏块管理。当存储器装置150是闪速存储器(例如,nand闪速存储器)时,由于nand逻辑功能的特性,在写入操作(即,编程操作)期间可能发生编程失败。在坏块管理期间,可以将编程失败的存储块或坏存储块的数据编程到新的存储块中。由于编程失败导致的坏块可以使存储器装置150的利用效率和存储器系统110的整体可靠性严重恶化。因此,可以包括可靠的坏块管理。

图2示出了图1所示的存储器系统110的存储器144的配置示例。更具体地,图2示出了如何组织图1所示的存储器系统110的构成元件中的存储器144的存储区域。

如参照图1所述的,存储器144可以用于多种目的。例如,存储器144可以存储在主机102和存储器装置150之间执行数据写入操作所需要的数据。对于另一个示例,存储器144可以存储在主机102和存储器装置150之间执行数据读取操作所需要的数据。存储器144可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器和映射缓冲器以存储在主机102和存储器装置150之间执行数据写入操作和数据读取操作所需要的数据。

包括在存储器系统110中的存储器144的存储区域可以根据主机102如何使用存储器系统110,被划分为多个内部存储区域。例如,如图2所示,存储器144的存储区域可以根据主机102如何使用存储器系统110,被划分为五个内部存储区域,即第一内部存储区域1441、第二内部存储区域1442、第三内部存储区域1443、第四内部存储区域1444和第五内部存储区域1445。如所示出的,第一内部存储区域1441可以为寄存器区域register,其用于临时存储在存储器系统110的内部传送的数据或信号。第二内部存储区域1442可以为数据存储内存(storagememory)区域data,其用于在主机102和存储器装置150之间的写入操作和/或读取操作期间存储数据。第三内部存储区域1443可以为缓冲器区域buffer,其用于在主机102和存储器装置150之间的写入操作和/或读取操作期间缓冲数据。第四内部存储区域1444可以为主要存储器区域main,其用于存储用于控制存储器系统110的内部中的操作的固件代码。第五内部存储区域1445可以为链接(link)区域link,其用于存储地址映射表。

图2所示的结构仅是示例,并且存储器144的存储区域可以根据主机102如何使用存储器系统110被划分为比第一至第五内部存储区域1441-1445更多的内部存储区域或更少的内部存储区域,并被管理。在图2所示的实施例中,作为示例,假设第一存储区域1441的大小为64kb,第二存储区域1442的大小为384kb,第三存储区域1443的大小为32kb,第四存储区域1444的大小为32kb,第五存储区域1445的大小为48kb。然而,应当注意,可以根据设计改变每个内部存储区域的大小。

图3示出了图2的存储器144如何与图1的主机102的操作相关。

参照图3,多个操作function<1:8>在主机102中被执行。包括在存储器系统110中的存储器144的存储区域被划分为分别对应于操作function<1:8>的多个内部存储区域1441、1442、1443、1444和1445。

首先,为了说明的目的,假设在主机102中执行共8个操作function<1:8>。本文中,8个操作function<1:8>可以为从/向存储器系统110的存储器装置150的读取/写入/擦除数据的操作,以及测试、调试、编码和校验存储器系统110的操作。简言之,操作function<1:8>可以表示由主机102执行、用于控制存储器系统110的所有操作。

本文中,在主机102中执行的多个操作function<1:8>被示为八个操作,但这是为了方便描述。应当注意,比8个操作更多或更少的操作可以在主机中被执行。

同样,如参照图2所述的,包括在存储器系统110中的存储器144被假设为包括第一至第五内部存储区域1441、1442、1443、1444和1445。

本文中,进一步假设,在主机102中执行的第一操作function<1>(1)期间,只有存储器144的存储区域的第一内部存储区域1441被访问。换言之,假设在主机102中执行的第一操作function<1>期间,数据被输入至存储器144的存储区域的第一内部存储区域1441或从存储器144的存储区域的第一内部存储区域1441输出,且没有数据被输入至其余第二至第五内部存储区域1442、1443、1444和1445/从其余第二至第五内部存储区域1442、1443、1444和1445输出。

同样,假设,如箭头2-1和2-2所表示的,在主机102中执行的第二操作function<2>期间,只有存储器144的存储区域的第一内部存储区域1441和第二内部存储区域1442被访问。换言之,可以假设在主机102中执行的第二操作function<2>期间,数据被输入至存储器144的存储区域的第一内部存储区域1441和第二内部存储区域1442/从存储器144的存储区域的第一内部存储区域1441和第二内部存储区域1442输出,且数据不被输入至第三至第五内部存储区域1443、1444和1445/不从第三至第五内部存储区域1443、1444和1445输出。

同样,假设,如箭头3-1和3-2所表示的,在主机102中执行的第三操作function<3>期间,只有存储器144的存储区域的第二内部存储区域1442和第四内部存储区域1444被访问。换言之,可以假设在主机102中执行的第三操作function<3>期间,数据被输入至存储器144的存储区域的第二内部存储区域1442和第四内部存储区域1444/从存储器144的存储区域的第二内部存储区域1442和第四内部存储区域1444输出,且数据不被输入至第一内部存储区域1441、第三内部存储区域1443和第五内部存储区域1445/不从第一内部存储区域1441、第三内部存储区域1443和第五内部存储区域1445输出。

同样,假设在主机102中执行的第四操作function<4>(4)期间,只有存储器144的存储区域的第二内部存储区域1442被访问。换言之,可以假设在主机102中执行的第四操作function<4>期间,数据被输入至存储器144的存储区域的第二内部存储区域1442/从存储器144的存储区域的第二内部存储区域1442输出,且数据不被输入至第一内部存储区域1441、第三内部存储区域1443、第四内部存储区域1444和第五内部存储区域1445/不从第一内部存储区域1441、第三内部存储区域1443、第四内部存储区域1444和第五内部存储区域1445输出。

同样,假设在主机102中执行的第五操作function<5>(5-1和5-2)期间,只有存储器144的存储区域的第二内部存储区域1442和第五内部存储区域1445被访问。换言之,可以假设在主机102中执行的第五操作function<5>期间,数据被输入至存储器144的存储区域的第二内部存储区域1442和第五内部存储区域1445/从存储器144的存储区域的第二内部存储区域1442和第五内部存储区域1445输出,且数据不被输入至第一内部存储区域1441、第三内部存储区域1443和第四内部存储区域1444/不从第一内部存储区域1441、第三内部存储区域1443和第四内部存储区域1444输出。

同样,假设在主机102中执行的第六操作function<6>(6-1和6-2)期间,只有存储器144的存储区域的第二内部存储区域1442和第五内部存储区域1445被访问。换言之,可以假设在主机102中执行的第六操作function<6>期间,数据被输入至存储器144的存储区域的第二内部存储区域1442和第五内部存储区域1445/从存储器144的存储区域的第二内部存储区域1442和第五内部存储区域1445输出,且数据不被输入至第一内部存储区域1441、第三内部存储区域1443和第四内部存储区域1444/不从第一内部存储区域1441、第三内部存储区域1443和第四内部存储区域1444输出。

同样,假设在主机102中执行的第七操作function<7>(7)期间,只有存储器144的存储区域的第三内部存储区域1443被访问。换言之,可以假设在主机102中执行的第七操作function<7>期间,数据被输入至存储器144的存储区域的第三内部存储区域1443/从存储器144的存储区域的第三内部存储区域1443输出,且数据不被输入至第一内部存储区域1441、第二内部存储区域1442、第四内部存储区域1444和第五内部存储区域1445/不从第一内部存储区域1441、第二内部存储区域1442、第四内部存储区域1444和第五内部存储区域1445输出。

同样,假设在主机102中执行的第八操作function<8>(8)期间,只有存储器144的存储区域的第四内部存储区域1444被访问。换言之,可以假设在主机102中执行的第八操作function<8>期间,数据被输入至存储器144的存储区域的第四内部存储区域1444/从存储器144的存储区域的第四内部存储区域1444输出,且数据不被输入至第一内部存储区域1441、第二内部存储区域1442、第三内部存储区域1443和第五内部存储区域1445/不从第一内部存储区域1441、第二内部存储区域1442、第三内部存储区域1443和第五内部存储区域1445输出。

上述在主机102中执行的操作function<1:8>中的每个操作可以通过根据操作的特征选择并访问包括在存储器144中的多个内部存储区域1441、1442、1443、1444和1445中的预定的内部存储区域而被执行。

因此,可以看出,可以为在主机102中执行的操作中的至少一个访问内部存储区域。

例如,如图3所示,当在主机102中执行第一操作function<1>或第二操作function<2>时,访问存储器144的存储区域的第一内部存储区域1441,并将数据data<0:1>存储在第一内部存储区域1441中。

同样,当在主机102中执行第二操作function<2>、第三操作function<3>、第四操作function<4>、第五操作function<5>或第六操作function<6>时,访问存储器144的存储区域的第二内部存储区域1442,并将数据data<2:6>存储在第二内部存储区域1442中。

同样,当在主机102中执行第七操作function<7>时,访问存储器144的存储区域的第三内部存储区域1443,并将数据data<7>存储在第三内部存储区域1443中。

同样,当在主机102中执行第三操作function<3>或第八操作function<8>时,访问存储器144的存储区域的第四内部存储区域1444,并将数据data<8:9>存储在第四内部存储区域1444中。

同样,当在主机102中执行第五操作function<5>或第六操作function<6>时,访问存储器144的存储区域的第五内部存储区域1445,并将数据data<10:11>存储在第五内部存储区域1445中。

如上所述,根据每个操作的特征,可以通过在主机102中执行的多个操作function<1:8>中的一个、两个或更多个操作访问包括在存储器144中的内部存储区域1441、1442、1443、1444和1445中的每一个。

同时,存储器系统110不知道是什么操作使数据data<0:11>存储在包括在存储器144中的内部存储区域1441、1442、1443、1444和1445中。仅主机102可以知道是什么操作使数据data<0:11>存储在包括在存储器144中的内部存储区域1441、1442、1443、1444和1445中。

例如,通过可以在主机102中被执行的多个操作function<1:8>中的第二操作function<2>、第三操作function<3>、第四操作function<4>、第五操作function<5>或第六操作function<6>,数据data<2:6>可以被存储到包括在存储器系统110中的存储器114的存储区域的第二内部存储区域1442中。在本文中,什么数据通过哪个操作被存储在第二内部存储区域1442中在主机102中是已知的。然而,存储器系统110不知道主机102的哪个操作使数据data<2:6>存储在存储器144的第二内部存储区域1442中。

在本文中,当在主机102中执行的操作function<1:8>被无错误地正常处理时,因为主机102知道什么数据data<0:11>被存储在存储器144的内部存储区域1441、1442、1443、1444和1445中并适当地管理数据data<0:11>,所以存储器系统110是否知道什么数据data<0:11>被存储在存储器144的内部存储区域1441、1442、1443、1444和1445中并不重要。

然而,在主机102中被无错误地正常处理的操作function<1:8>只是理想的情况。现实是由于主机102中未知的原因,操作function<1:8>中的某些可能不能被正常处理。

如果在主机102中执行的操作function<1:8>中的某些发生失败并且由此关于什么数据data<0:11>被存储在存储器144的内部存储区域1441、1442、1443、1444和1445中的信息丢失,则存储在内部存储区域1441、1442、1443、1444和1445的某些内部存储区域中的数据可能被错误地管理,这可导致存储器系统110的异常操作。

图4示出了根据本发明的实施例的存储器管理方法。图4的方法可以应用于图1-图3的存储器144。例如,可以通过图1中存储器控制器130的处理器134执行图4的方法。

参照图4,如上参照图3所述的,在主机102中执行多个操作function<1:8>。包括在存储器系统110中的存储器144的存储区域被划分为对应于操作function<1:8>的多个内部存储区域(例如,5个内部存储区域1441、1442、1443、1444和1445)。

与如上参照图3的描述相比,现将元数据m<1:8>与数据data<0:11>一起存储在存储器144的内部存储区域1441、1442、1443、1444和1445中。

首先,可以假设在主机102中执行共8个操作function<1:8>。本文中,8个操作function<1:8>可以为从/向存储器系统110的存储器装置150的读取/写入/擦除数据的操作,以及测试、调试、编码和校验存储器系统110的操作。简言之,主机102中执行的操作function<1:8>表示由主机102执行的用以控制存储器系统110的所有操作。

本文中,主机102中执行的多个操作function<1:8>被示为八个操作,但这是为了方便描述,并且执行比8个操作更多的操作或更少的操作也是可能的。

如参照图2和图3所述的,包括在存储器系统110中的存储器144包含第一至第五内部存储区域1441、1442、1443、1444和1445。换言之,根据存储器系统110的使用将存储器144的存储区域划分为多个内部存储区域1441、1442、1443、1444和1445的操作在主机102中被首先执行。

随后,当主机102请求存储器系统110将数据data<0:11>写入存储器系统110的存储器144中时,存储器系统110执行基于根据从主机102传送的写入请求的数据data<0:11>的数据特征信息,在存储器144的内部存储区域1441、1442、1443、1444和1445中选择一个内部存储区域的操作。

在存储器144的内部存储区域1441、1442、1443、1444和1445中的一个内部存储区域基于从主机102传送的写入数据data<0:11>的数据特征信息被选择之后,生成包括写入数据data<0:11>的数据特征信息的元数据m<1:8>,然后将生成的元数据m<1:8>与写入数据data<0:11>一起存储在选择的内部存储区域中。

在示出的示例中,从主机102传送的写入数据data<0:11>的数据特征信息可以是关于当写入数据data<0:11>被写入存储器装置中时,在主机102中执行的操作function<1:8>中的哪个操作将被执行的信息。

例如,当第一操作function<1>在主机102中被执行且主机102请求存储器系统110将数据data<0:11>写入存储器144中时,数据data<0:11>的数据特征信息为表示第一操作function<1>在主机102中被执行的信息。因此,对应于第一操作function<1>,选择存储器144的内部存储区域1441、1442、1443、1444和1445中的第一内部存储区域1441。随后,包括指示第一操作function<1>在主机102中被执行的信息的第一元数据m1被生成并与从主机102传送的数据data<0:11>一起被存储在第一内部存储区域1441中。

同样,当第二操作function<2>在主机102中被执行且主机102请求存储器系统110将数据data<0:11>写入存储器144中时,数据data<0:11>的数据特征信息为表示第二操作function<2>在主机102中被执行的信息。因此,对应于第二操作function<2>,在存储器144的内部存储区域1441、1442、1443、1444和1445中选择第一内部存储区域1441与第二内部存储区域1442之间的一个内部存储区域。随后,包括指示第二操作function<2>在主机102中被执行的信息的第二元数据m2被生成并与从主机102传送的数据data<0:11>一起存储在第一内部存储区域1441与第二内部存储区域1442之间选择的内部存储区域中。在本文中,第二元数据m2和从主机102传送的数据data<0:11>是存储在第一内部存储区域1441中还是第二内部存储区域1442中基于如何在主机102中执行第二操作function<2>来决定。

同样,当第三操作function<3>在主机102中被执行且主机102请求存储器系统110将数据data<0:11>写入存储器144中时,数据data<0:11>的数据特征信息为表示在主机102中执行第三操作function<3>的信息。因此,对应于第三操作function<3>,在存储器144的内部存储区域1441、1442、1443、1444和1445中选择第二内部存储区域1442与第四内部存储区域1444之间的一个内部存储区域。随后,包括指示第三操作function<3>在主机102中被执行的信息的第三元数据被生成并与从主机102传送的数据data<0:11>一起被存储在第二内部存储区域1442与第四内部存储区域1444之间选择的内部存储区域中。在本文中,第三元数据m3和从主机102传送的数据data<0:11>是存储在第二内部存储区域1442中还是第四内部存储区域1444中基于如何在主机102中执行第三操作function<3>来决定。。

另外,当第四操作function<4>在主机102中被执行且主机102请求存储器系统110将数据data<0:11>写入存储器144中时,数据data<0:11>的数据特征信息为表示在主机102中执行第四操作function<4>的信息。因此,对应于第四操作function<4>,在存储器144的内部存储区域1441、1442、1443、1444和1445中选择第二内部存储区域1442。随后,包括指示第四操作function<4>在主机102中被执行的信息的第四元数据m4被生成并与从主机102传送的数据data<0:11>一起被存储在第二内部存储区域1442中。

同样,当第五操作function<5>在主机102中被执行且主机102请求存储器系统110将数据data<0:11>写入存储器144中时,数据data<0:11>的数据特征信息为表示在主机102中执行第五操作function<5>的信息。因此,对应于第五操作function<5>,在存储器144的内部存储区域1441、1442、1443、1444和1445中选择第二内部存储区域1442与第五内部存储区域1445之间的一个内部存储区域。随后,包括指示第五操作function<5>在主机102中被执行的信息的第五元数据m5被生成并与从主机102传送的数据data<0:11>一起被存储在第二内部存储区域1442与第五内部存储区域1445之间选择的内部存储区域中。在本文中,第五元数据m5和从主机102传送的数据data<0:11>是存储在第二内部存储区域1442中还是第五内部存储区域1445中基于如何在主机102中执行第五操作function<5>来决定。

同样,当第六操作function<6>在主机102中被执行且主机102请求存储器系统110将数据data<0:11>写入存储器144中时,数据data<0:11>的数据特征信息为表示在主机102中执行第六操作function<6>的信息。因此,对应于第六操作function<6>,在存储器144的内部存储区域1441、1442、1443、1444和1445中选择第二内部存储区域1442与第五内部存储区域1445之间的一个内部存储区域>。随后,包括指示第六操作function<6>在主机102中被执行的信息的第六元数据m6被生成并与从主机102传送的数据data<0:11>一起被存储在第二内部存储区域1442与第五内部存储区域1445之间选择的内部存储区域中。本文中,第六元数据m6和从主机102传送的数据data<0:11>是存储在第二内部存储区域1442中还是第五内部存储区域1445中基于如何在主机102中执行第六操作function<6>来决定。

同样,当第七操作function<7>在主机102中被执行且主机102请求存储器系统110将数据data<0:11>写入存储器144中时,数据data<0:11>的数据特征信息为表示在主机102中执行第七操作function<7>的信息。因此,对应于第七操作function<7>,在存储器144的内部存储区域1441、1442、1443、1444和1445中选择第三内部存储区域1443。随后,包括指示第七操作function<7>在主机102中被执行的信息的第七元数据m7与从主机102传送的数据data<0:11>一起被存储在第三内部存储区域1443中。

同样,当第八操作function<8>在主机102中被执行且主机102请求存储器系统110将数据data<0:11>写入存储器144中时,数据data<0:11>的数据特征信息为表示在主机102中执行第八操作function<8>的信息。因此,对应于第八操作function<8>,在存储器144的内部存储区域1441、1442、1443、1444和1445中选择第四内部存储区域1444。随后,包括指示第八操作function<8>在主机102中被执行的信息的第八元数据m8被生成并与从主机102传送的数据data<0:11>一起被存储在第四内部存储区域1444中。

总之,当从主机102传送的写入数据data<0:11>被接收时,存储器系统110生成包括从主机102传送的写入数据data<0:11>的数据特征信息的元数据m<1:8>,并将生成的元数据m<1:8>与从主机102传送的写入数据data<0:11>的数据特征信息一起存储在存储器144中。因此,存储器144的内部存储区域1441、1442、1443、1444和1445中的每一个不仅存储数据data<0:11>,而且还存储表示存储数据data<0:11>对应什么操作的元数据m<1:8>。

同时,以上描述的是假设从主机102向存储器系统110的存储器144传送并存储在存储器系统110的存储器144中的数据data<0:11>的数量为12个数据data<0:11>,并且第零数据data0对应于主机102中的第一操作function<1>;第一数据data1和第二数据data2对应于主机102中的第二操作function<2>;第三数据data3和第八数据data8对应于主机102中的第三操作function<3>;第四数据data4对应于主机102中的第四操作function<4>;第五数据data5和第十数据data10对应于主机102中的第五操作function<5>;第六数据data6和第十一数据data11对应于主机102中的第六操作function<6>;第七数据data7对应于主机102中的第七操作function<7>;以及第九数据data9对应于主机102中的第八操作function<8>。然而,以上描述只不过是示例。实际上难以预测从主机102传送给存储器144的数据data<0:11>对应于主机102的操作function<1:8>中的什么操作。当数据data<0:11>的数据特征信息与数据data<0:11>一起从主机102传送给存储器系统110时,存储器系统110仅将数据data<0:11>的数据特征信息包括在元数据m<1:8>中,并将包括数据特征信息的元数据m<1:8>存储在存储器144中。可以通过图1中的存储器控制器130的处理器134执行图4的方法。

参照图5a,根据本发明的实施例,在图4的存储器管理方法中,当用于数据data<0:11>的写入请求从主机102被传送时执行的操作被详细描述。

首先,在步骤s10中,存储器系统110的存储器144的存储区域被划分为多个内部存储区域,例如图4中所示的5个内部存储区域1441、1442、1443、1444和1445。

在步骤s20中,当在步骤s10之后主机102请求存储器系统110将数据data<0:11>写入存储器系统110的存储器144中时,基于从主机102传送的写入数据data<0:11>的数据特征信息在存储器144的多个内部存储区域1441、1442、1443、1444和1445中选择一个内部存储区域。

在步骤s30中,包括写入数据data<0:11>的数据特征信息的元数据m<1:8>被生成,并且生成的元数据m<1:8>与写入数据data<0:11>一起被存储在选择的内部存储区域中。

下文中,更详细地描述步骤s30中的操作。步骤s30包含步骤s31、s32、s33和s34。

步骤s31中,包括从主机102传送的写入数据data<0:11>的数据特征信息的元数据m<1:8>被生成。由于上面已经参照图4描述了写入数据data<0:11>的数据特征信息,因此这里省略了对其的进一步描述。

步骤s32中,将写入数据data<0:11>的大小和步骤s31中生成的元数据m<1:8>的大小的总和与在步骤s20中被选择的所选择的内部存储区域1441、1442、1443、1444或1445的空白空间的大小进行比较。

当步骤s32中的结果是,写入数据data<0:11>的大小和步骤s31中生成的元数据m<1:8>的大小的总和不大于所选择的内部存储区域1441、1442、1443、1444或1445的空白空间的大小时,在步骤s33中将写入数据data<0:11>和步骤s31的操作中生成的元数据m<1:8>存储在步骤s20中选择的所选择的内部存储区域1441、1442、1443、1444或1445的空白空间中。

当步骤s32中的结果是,写入数据data<0:11>的大小和步骤s31中生成的元数据m<1:8>的大小的总和大于所选择的内部存储区域的空白空间的大小时,写入数据data<0:11>和在步骤s31的操作中生成的元数据m<1:8>不被存储在所选择的内部存储区域(其在步骤s20中被选择)的空白空间中。因此,在步骤s34中将溢出和存储失败信息传送给主机102。

返回参照图4,现在将描述步骤s31-s34的操作的示例。

首先,可以假设在主机102中执行第三操作function<3>并且请求将第三数据data3写入存储器144的第二内部存储区域1442中。在步骤s31中,第三数据data3的数据特征信息被生成为第三元数据m3。第三数据data3的数据特征信息为表示将请求被写入存储器144的第二内部存储区域1442中的第三数据data3通过在主机102中执行的第三操作function<3>传送至存储器系统110的信息。

在第三数据data3的数据特征信息被生成为第三元数据m3之后,在步骤s32中确定第三数据data3的大小和第三元数据m3的大小的总和是否大于第二内部存储区域1442的空白空间的大小。

当第三数据data3的大小和第三元数据m3的大小的总和不大于第二内部存储区域1442的空白空间的大小时,在步骤s33中将第三数据data3和第三元数据m3存储在第二内部存储区域1442中。

当第三数据data3的大小和第三元数据m3的大小的总和大于第二内部存储区域1442的空白空间的大小时,在步骤s34中不将第三数据data3和第三元数据m3存储在第二内部存储区域1442中,而是将溢出和存储失败信息传送至主机102。

本文中,传送至主机102的溢出和存储失败信息表示第三数据data3因为在主机102中执行的第三操作function<3>中出现了不可预知的错误而不能被存储在存储器144中。换言之,可以通知主机102,在主机102中执行的第三操作function<3>的写入操作中已经出现问题,因此,主机102可以适当地处理该问题。

在下文中,详细描述步骤s32的操作。步骤s32包括步骤s321、s322、s323和s324。

在步骤s321中,计算对应于写入数据data<0:11>和在步骤s31的操作中生成的元数据m<1:8>的总和的地址区域的大小。

在步骤s322中,将步骤s321中计算的地址区域的大小与对应于步骤s20中选择的所选择的内部存储区域1441、1442、1443、1444或1445的空白空间的地址区域的大小进行比较。

当在步骤s323中,步骤s321中计算的地址区域的大小小于对应于步骤s20中选择的所选择的内部存储区域1441、1442、1443、1444或1445的空白空间的地址区域的大小时,在步骤s33中将第三数据data3和第三元数据m3写入第二内部存储区域1442中。

当结果是在步骤s324中,步骤s321中计算的地址区域的大小大于对应于步骤s20中选择的所选择的内部存储区域1441、1442、1443、1444或1445的空白空间的地址区域的大小时,在步骤s34中,不将第三数据data3和第三元数据m3写入第二内部存储区域1442中,而是将溢出和存储失败信息传送至主机102。

参照图5b,根据本发明的实施例,在图4的存储器管理方法中,当用于数据data<0:11>的读取请求从主机102被传送时执行的操作被详细描述。

首先,如上参照图4和图5a所述的,在步骤s10中,根据主机102的操作将存储器系统110的存储器144的存储区域划分为多个内部存储区域,例如五个内部存储区域1441、1442、1443、1444和1445。

当在步骤s10之后,主机102请求存储器系统110从存储器系统110的存储器144中读取数据data<0:11>时,在步骤s40中基于根据从主机102传送的读取请求的数据data<0:11>的数据特征信息,在存储器144的内部存储区域1441、1442、1443、1444和1445中选择一个内部存储区域。

在步骤s50中,从在步骤s40中选择的所选择的内部存储区域中读取对应于请求读取的数据data<0:11>的元数据m<1:8>。换言之,步骤s50的操作是,在将根据从主机102传送的读取请求的数据data<0:11>从所选择的内部存储区域1441、1442、1443、1444或1445中读出之前,从在步骤s40中选择的所选择的内部存储区域1441、1442、1443、1444或1445中读出对应于请求读取的数据data<0:11>的元数据m<1:8>。

随后,在步骤s60中,确定根据从主机102传送的写入请求通过步骤s30的操作被存储并包括在于步骤s50中读取的元数据m<1:8>内的数据data<0:11>的数据特征信息与根据从主机102传送的读取请求的数据data<0:11>的数据特征信息是否相同。

当根据从主机102传送的写入请求通过步骤s30的操作被存储并且包括在于步骤s50中读取的元数据m<1:8>内的数据data<0:11>的数据特征信息与根据从主机102传送的读取请求的数据data<0:11>的数据特征信息相同(步骤s60,是)时,在步骤s80中从所选择的内部存储区域1441、1442、1443、1444或1445中读出根据从主机102传送的读取请求的数据data<0:11>。

当根据从主机102传送的写入请求通过步骤s30的操作被存储并且包括在于步骤s50中读取的元数据m<1:8>中的数据data<0:11>的数据特征信息与根据从主机102传送的读取请求的数据data<0:11>的数据特征信息不相同(步骤s60,否)时,在步骤s70中不从所选择的内部存储区域1441、1442、1443、1444或1445中读出根据从主机102传送的读取请求的数据data<0:11>并将数据特征不符和读取失败信息传送至主机102。

再次参照图4,以下借助于示例描述步骤s40-s80的操作。

首先,可以假设数据data<0:11>如图4中所示被存储在存储器144的多个内部存储区域1441、1442、1443、1444和1445中。而且,可以假设正常情况为当在主机102中执行第三操作function<3>时请求从存储器144中读出第三数据data3,异常情况为当在主机102中执行第三操作function<3>时请求从存储器144中读出第四数据data4。

由于根据从主机102传送的读取请求的第三数据data3和第四数据data4两者均存储在存储器144的内部存储区域1441、1442、1443、1444和1445中的第二内部存储区域1442中,因此在步骤s40中选择第二内部存储区域1442。

在步骤s40中选择第二内部存储区域1442之后,在步骤s50中从第二内部存储区域1442中读出对应于第三数据data3的第三元数据m3和对应于第四数据data4的第四元数据m4。本文中,由主机102请求读取的第三数据data3和第四数据data4在步骤s50中不被读取。

在步骤s50中读取第三元数据m3之后,作为第一操作,在步骤s60中确定根据从主机102传送的写入请求通过步骤s30的操作存储并且包括在第三元数据m3内的第三数据data3的数据特征信息与根据从主机102传送的读取请求的第三数据data3的数据特征信息是否相同。同样地,在步骤s50中读取第四元数据m4之后,作为第二操作,在步骤s60中确定根据从主机102传送的写入请求通过步骤s30的操作存储并包括在第四元数据m4内的第四数据data4的数据特征信息与根据从主机102传送的读取请求的第四数据data4的数据特征信息是否相同。

在下文中,描述步骤s60的第一操作。

首先,包括在对应于存储在存储器144的第二内部存储区域1442中的第三数据data3的第三元数据m3内的根据从主机102传送的写入请求的第三数据data3的数据特征信息表示在主机102中执行第三操作function<3>。

同样,由于当主机102执行第三操作function<3>时第三数据data3被请求读取,因此根据从主机102传送的读取请求的第三数据data3的数据特征信息表示在主机102中执行第三操作function<3>。

这表明,根据从主机102传送的写入请求并包括在对应于存储在存储器144的第二内部存储区域1442中的第三数据data3的第三元数据m3内的第三数据data3的数据特征信息与根据从主机102传送的读取请求的第三数据data3的数据特征信息相同(步骤s60,是)。因此,在步骤s80中,从步骤s40中选择的所选择的第二内部存储区域1442中读出根据从主机102传送的读取请求的第三数据data3。

在下文中,描述步骤s60的第二操作。

首先,包括在对应于存储在存储器144的第二内部存储区域1442中的第四数据data4的第四元数据m4内的根据从主机102传送的写入请求的第四数据data4的数据特征信息表示在主机102中执行第四操作function<4>。

同样,由于当主机102执行第三操作function<3>时第四数据data4被请求读取,因此根据从主机102传送的读取请求的第四数据data4的数据特征信息表示在主机102中执行第三操作function<3>。

这表明,根据从主机102传送的写入请求并且包括在对应于存储在存储器144的第二内部存储区域1442中的第四数据data4的第四元数据m4内的第四数据data4的数据特征信息与根据从主机102传送的读取请求的第四数据data4的数据特征信息不相同(步骤s60,否)。因此,在步骤s70中,不从步骤s40中选择的所选择的第二内部存储区域1442中读出根据从主机102传送的读取请求的第四数据data4,并将数据特征不符和读取失败信息传送至主机102。

本文中,在步骤s70中传送至主机102的数据特征不符和读取失败信息通知主机102:在主机102中执行的第三操作function<3>中出现不可预知的错误,并且不能通过第三操作function<3>读取的第四数据data4试图被读取。换言之,通过步骤s70的操作,主机102可以被通知:问题已经出现在主机102中执行的第三操作function<3>的读取操作中,且主机102可以适当地处理该问题。

根据本发明的实施例,当主机请求存储器系统将数据写入存储器系统的存储器中时,将根据来自主机的写入请求而待被存储的数据的数据特征信息作为元数据与写入数据一起被存储。

当根据来自主机的写入请求存储的数据被请求读取时,可以将根据读取请求所存储的数据的数据特征信息与包括在元数据内的根据写入请求的存储数据的数据特征信息进行比较。通过数据特征信息的比较,由此可以检测错误的读取请求。

虽然已经参照特定的实施例描述了本发明,但对本领域技术人员显而易见的是,在不脱离如所附权利要求书限定的本发明的精神和范围的情况下可以做出各种改变和变型。

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