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

文档序号:15517754发布日期:2018-09-25 18:45阅读:153来源:国知局

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

本公开的各个实施例涉及一种存储器系统及其操作方法。



背景技术:

近来,计算机环境范例已经变为允许用户在任何时间任何地点访问计算机系统的普适计算环境。因此,诸如移动电话、数码相机、膝上型计算机等的便携式电子装置的使用正在急剧增长。便携式电子装置通常采用使用存储器装置的存储器系统来存储数据。存储器系统可用作便携式电子装置的主存储器装置或辅助存储器装置。

因为存储装置不包括机械驱动单元,因此它具有优良的稳定性和耐久性。此外,存储器装置的优点在于它可快速地访问数据并消耗少量的电力。具有这些优点的存储装置的非限制性示例包括通用串行总线(usb)存储器装置、具有各种接口的存储卡以及固态驱动器(ssd)。



技术实现要素:

本公开的实施例涉及一种用于快速的缓存器搜索的存储器控制器、存储器系统以及用于操作该存储器系统的方法。

根据本发明的实施例,存储器系统可包括:存储器装置;以及控制器,其包括联接在主机和存储器装置之间并包括多个存储区域的缓存器,用于基于分层地表示多个存储区域的位图信息来确定在多个存储区域中对应于主机请求的地址信息的存储区域是否存在于缓存器中。

控制器可将多个存储区域划分成多个范围,该多个范围中的每一个都包括至少两个存储区域,并生成分层地(hierachically)表示多个范围和多个存储区域的位图信息。

位图信息可包括1层位(1-levelbit)和2层位,并且1层位可分别对应于多个范围,2层位可分别对应于包括在多个范围中的每一个中的存储区域。

控制器可响应于来自主机的写入请求或读取请求来更新位图信息。

当控制器确定在缓存器中不存在对应于根据写入请求的地址信息的存储区域时,控制器可将数据缓存在缓存器中,并且基于缓存的结果来设置位图信息的相应位的值。

当数据从缓存器被刷新到存储器装置时,控制器可清除位图信息的相应位的值。

当控制器确定在缓存器中存在对应于根据读取请求的地址信息的存储区域时,控制器可读取被存储在缓存器中的根据读取请求的数据并将数据传输至主机。

根据本发明的另一实施例,存储器控制器可包括:缓存器,其联接在主机和存储器装置之间并包括多个存储区域;以及处理器,其适于基于分层地表示多个存储区域的位图信息来确定在多个存储区域中对应于主机请求的地址信息的存储区域是否存在于缓存器中。

处理器可将多个存储区域划分成多个范围,该多个范围中的每一个都包括至少两个存储区域,并生成分层地表示多个范围和多个存储区域的位图信息。

位图信息可包括1层位和2层位,并且1层位可分别对应于多个范围,2层位可分别对应于包括在多个范围中的每一个中的存储区域。

处理器可响应于来自主机的写入请求或读取请求来更新位图信息。

当处理器确定在缓存器中不存在对应于根据写入请求的地址信息的存储区域时,处理器可将数据缓存在缓存器中,并且基于缓存的结果来设置位图信息的相应位的值。

当数据从缓存器被刷新到存储器装置时,处理器可清除位图信息的相应位的值。

当处理器确定在缓存器中存在对应于根据读取请求的地址信息的存储区域时,处理器可根据读取请求读取被存储在缓存器中的数据并将数据传输至主机。

根据本发明的另一实施例,一种包括缓存器的存储器控制器的操作方法,该缓存器被联接在主机和存储器装置之间并包括多个存储区域,该方法可包括:接收来自主机的请求;以及基于分等级地表示多个存储区域的位图信息来确定在多个存储区域中对应于包括在请求中的地址信息的存储区域是否存在于缓存器中。

该方法可进一步包括:将多个存储区域划分成多个范围,该多个范围中的每一个都包括至少两个存储区域,并生成分层地表示多个范围和多个存储区域的位图信息。

位图信息可包括1层位和2层位,并且1层位可分别对应于多个范围,2层位可分别对应于包括在多个范围中的每一个中的存储区域。

该方法可进一步包括:响应于来自主机的写入请求或读取请求来更新位图信息。

更新位图信息可包括:当在缓存器中不存在对应于根据写入请求的地址信息的存储区域时,将数据缓存在缓存器中,并且基于缓存的结果来设置位图信息的相应位的值。

更新位图信息可进一步包括:当在缓存器中存在对应于根据读取请求的地址信息的存储区域时,读取存储在缓存器中的根据读取请求的数据并将数据传输至主机。

附图说明

通过以下参照附图的详细描述,本发明的上述和其它特征及优点将对本发明所属领域的技术人员变得更加显而易见,其中:

图1是说明根据本公开的实施例的包括存储器系统的数据处理系统的框图;

图2是说明图1所示的存储器系统中采用的存储器装置的示例性配置的示意图;

图3是说明图2所示的存储器装置中的存储块的存储器单元阵列的示例性配置的电路图;

图4是说明图2所示的存储器装置的示例性三维结构的示意图;

图5是说明包括根据本公开的实施例的存储器系统的数据处理系统的框图;

图6说明根据本公开的实施例的划分多个存储区域的示例;

图7a说明根据本公开的实施例的用于缓存器搜索的位图结构的示例;

图7b说明根据本公开的实施例的用于缓存器搜索的位图结构的另一示例;

图8是说明根据本公开的实施例的控制器的操作的流程图;

图9是说明根据本公开的实施例的控制器的操作的流程图;并且

图10至图18是示意性说明根据本公开的各个实施例的图1所示的数据处理系统的应用示例的简图。

具体实施方式

以下将参照附图更详细地描述本发明的示意性实施例。然而,本发明可以不同的形式实施,并不应被解释为受限于本文所阐述的实施例。相反地,提供这些实施例以便使本公开将是彻底且完整的,并且将本发明的范围完全地传达给本领域的技术人员。在整个本公开中,在本发明的各个附图和实施例中的相同的附图标记表示相同的部件。

在下文中,将参照附图详细描述本发明的各个实施例。

图1是说明根据本公开的实施例的包括存储器系统110的数据处理系统100的框图。

参照图1,数据处理系统100可包括可操作地联接至存储器系统110的主机102。

主机102可以是包括诸如移动电话、mp3播放器和膝上型计算机的便携式电子装置或诸如台式电脑、游戏机、电视(tv)和投影仪的非便携式电子装置的任何适用的电子装置。主机102可包括至少一个操作系统(os),并且os可管理和控制主机102的全部功能和操作,并还使用数据处理系统100或存储器系统110提供主机102和用户之间的操作。os可支持对应于用户的使用目的和用途的功能和操作。例如,根据主机102的移动性,os可被划分为普通os和移动os。普通os可根据用户的环境被划分为个人os和企业os。例如,配置为支持向普通用户提供服务的功能的个人os可包括windows和chrome,配置为保护和支持高性能的企业os可包括windows服务器、linux和unix。此外,配置为支持向用户提供移动服务和系统省电功能的移动os可包括android、ios和windowsmobile。主机102可包括一个或多个os。主机102可执行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可由各种类型的存储装置实施。包括在存储器系统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)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传输/接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、无线射频识别(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)码、涡轮码、里德-所罗门(reed-solomon)码、卷积码、递归系统码(rsc)、网格编码调制(tcm)以及分组编码调制(bcm)。然而,ecc单元138不限于此。ecc单元138可包括用于错误校正的所有电路、模块、系统或装置。

pmu140可提供和管理控制器130的电力。

当存储器装置是nand闪速存储器时,nfc142可用作用于接口连接控制器130和存储器装置150使得控制器130响应于来自主机102的请求来控制存储器装置150的存储器/存储接口。当存储器装置150是闪速存储器或具体地是nand闪速存储器时,nfc142可在处理器134的控制下生成用于存储器装置150的控制信号并处理待被提供给存储器装置150的数据。nfc142可用作处理控制器130和存储器装置150之间的命令和数据的例如nand闪存接口的接口。具体地,nfc142可支持控制器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的坏块管理操作的管理单元(未示出)。管理单元可执行用于检查包括在存储器装置150中的多个存储块152至156中在编程操作期间由于nand闪速存储器的特性发生编程失败的坏块的坏块管理操作。管理单元可将坏块的编程失败数据写入新的存储块。在具有3d堆叠结构的存储器装置150中,坏块管理操作可能降低存储器装置150的使用效率和存储器系统110的可靠性。因此,需要更可靠地执行坏块管理操作。

图2是说明图1所示的存储器系统110中采用的存储器装置150的示例性配置的示意图。

参照图2,存储器装置150可包括多个存储块0至n-1,并且块0至n-1中的每一个可包括多个页面,例如2m个页面。页面的数量可根据电路设计而变化。包括在各个存储块0至n-1中的存储器单元可以是下列中的一个或多个:存储1位数据的单层单元(slc)、存储2位数据的多层单元(mlc)、存储3位数据也被称为三层单元(tlc)的mlc、存储4位数据也被称为四层单元(qlc)的mlc或存储5位或更多位数据的mlc。

图3是说明图2所示的存储器装置150中的存储块的存储器单元阵列的示例性配置的电路图。

参照图3,可对应于包括在存储器系统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可包括分别对应于列或位线,或者列对或位线对的多个页面缓冲器322至326,并且页面缓冲器322至326中的每一个可包括多个锁存器(未示出)。

图4是说明图2所示的存储器装置150的示例性三维(3d)结构的示意图;

存储器装置150可通过二维(2d)或三维(3d)存储器装置来实施。具体地,如图4所示,存储器装置150可通过具有3d堆叠结构的非易失性存储器装置实施。当存储器装置150具有3d结构时,存储器装置150可包括每一个都具有3d结构或垂直结构的多个存储块blk0至blkn-1。

如上所述,存储器控制器可存储在主机和存储器装置之间执行数据写入操作和数据读取操作所需的数据,以及用于在将被统称为缓存器的缓冲器或高速缓存器中的数据写入操作和数据读取操作的数据。当写入请求或读取请求从主机被接收时,存储器控制器可搜索缓存器以找出是否存在最近被访问的数据。如果许多数据被存储在缓存器中,则缓存器搜索时间可能会变长。此外,写入延迟或读取延迟可能根据存储在缓存器中的数据量而变得不规律。

例如,当使用读取缓存器时,虽然不会发生缓存命中,但是因为存储在缓存器中的数据量较大,所以用于读取操作的缓存器搜索时间可能变长,并且较长的缓存器搜索时间可能影响读取延迟。举另一示例,当使用写入缓存器时,收集尽可能多的数据并将收集的数据写入存储器装置例如nand存储器装置中可能是有利的。然而,用于写入操作的缓存器搜索时间可能变长。即使不会发生缓存命中,写入缓存器搜索时间也可能大幅影响读取延迟。

因此,本发明的以下实施例提供了一种快速地搜索缓存器的方法。根据快速地搜索缓存器的方法,可减少缓存器搜索时间,并且读取或写入延迟可通过使用分层的位图结构并基于逻辑范围而不是逻辑地址来搜索缓存器而被确保在统一水平上。

图5是说明根据本公开的实施例的包括存储器系统510的数据处理系统500的框图。

参照图5,数据处理系统500可包括主机50和存储器系统510。存储器系统510可包括控制器520和存储器装置530。主机50和存储器系统510可以是分别对应于图1所示的主机102和存储器装置110的组成元件。控制器520和存储器装置530可以是分别对应于图1所示的控制器130和存储器装置150的组成元件。关于图5所示的组成元件的描述不是限制性的,而仅用于说明。

控制器520可响应于来自主机50的请求控制存储器装置530。例如,控制器520可将从存储器装置530读取的数据提供给主机50,并将从主机50供应的用于写入操作的数据存储在存储器装置530中。控制器520可包括缓存器522和处理器524。缓存器522和处理器524可以是分别对应于图1所示的存储器144和处理器134的组成元件。

处理器524可控制存储器系统510的一般操作。处理器524可驱动被称为闪速转换层(ftl)的固件来控制存储器系统510的一般操作。

处理器524可与存储器装置530一起执行对应于从主机50接收到的命令或请求的操作。例如,处理器524可响应于来自主机50的写入请求来控制对存储器装置530的写入操作。对于另一示例,处理器524可响应于来自主机50的读取请求来控制对存储器装置530的读取操作。特别地,处理器524可执行下面描述的缓存器搜索操作。

缓存器522可以是联接在主机50和存储器装置530之间的控制器520的操作存储器,并且存储与控制器520的操作有关的数据。例如,当控制器130响应于来自主机102的请求而对存储器装置150执行诸如读取操作、写入操作或擦除操作的操作时,缓存器522可存储相关的用户数据和/或映射数据。此处,映射数据可以是表示存储区域,例如存储用户数据的存储器装置530的页面的信息。缓存器522也可被称为程序存储器、数据存储器、写入缓冲器/缓存器、读取缓冲器/缓存器、数据缓冲器/缓存器或映射缓冲器/缓存器。缓存器522可由诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)的易失性存储器形成。如图所示,缓存器522可被包括在控制器520的内部。然而,与附图不同,它还可以设置在控制器520的外部。

当从主机50接收到写入请求时,处理器524可将对应于接收到的写入请求的用户数据存储或缓存在缓存器522中,然后将存储的用户数据传输至存储器装置530并将用户数据存储在存储器装置530中。存储的用户数据可使用缓存器复制或缓存器刷新被传输至存储器装置530。此外,处理器524可生成与用户数据的写入操作有关的映射数据,并将映射数据存储在缓存器522中。

当从主机50接收到读取请求时,处理器524可从缓存器522或存储器装置530中读取对应于接收到的读取请求的用户数据,并将读取的用户数据传输至主机50。如果对应于接收到的读取请求的用户数据被存储在缓存器522中,则处理器524可将存储的用户数据传输至主机50。否则,如果对应于接收到的读取请求的用户数据未被存储在缓存器522中,则处理器524可从存储器装置530读取用户数据,将读取的用户数据存储在缓存器522中,然后将存储的用户数据传输至主机50。

在各个实施例中,当从主机50接收到写入请求或读取请求时,控制器520可搜索缓存器522来判定在缓存器522中是否存在对应于接收到的请求的数据。控制器520能够基于分层地表示包括在存储器装置530中的多个存储区域的位图信息来搜索缓存器522。简而言之,处理器524可搜索缓存器522并判定在存储器装置530中的多个存储区域之中是否存在对应于主机50请求的例如逻辑块地址lba的地址信息的存储区域。此处,当存在对应于地址信息的存储区域时,意味着,对应于地址信息的数据被存储在缓存器522中。

图6说明根据本公开的实施例的划分多个存储区域610的示例。例如,图6所示的存储区域610可以是包括在图5所示的缓存器522中的存储区域。

参照图6,存储区域610可包括n个区域,并且地址可被分别设置成对应于n个存储区域610。例如,可为区域0设置地址0。可为区域1设置地址1。可为区域2设置地址2。可为区域3设置地址3。可为区域(n-4)设置地址(n-4)。可为区域(n-3)设置地址(n-3)。可为区域(n-2)设置地址(n-2)。可为区域(n-1)设置地址(n-1)。在各个实施例中,存储区域的每一个可被设置成对应于主机50请求的逻辑块地址lba或表示包括在存储器装置530中的存储器区域的物理块地址pba的页面,或被设置成适当大小的存储器区域。

存储区域610可被划分为多个层。例如,存储区域610可被划分为第一层620和第二层630。第一层620可包括多个范围621至624。范围621至624可包括m个范围。范围621至624中的每一个可包括至少两个或更多个存储区域。例如,范围0621可包括存储区域610的四个存储区域区域0至区域3。范围1622可包括存储区域610的四个存储区域区域4至区域7。范围2623可包括存储区域610的四个存储区域区域8至区域11。范围(m-1)624可包括存储区域610的四个存储区域区域(n-4)至区域(n-1)。

第二层630可包括分别对应于范围621至624的存储区域631至634。存储区域631至634中的每一个可包括四个存储区域区域0至区域3。

如上所述,存储区域610被划分为多个层,以便快速地搜索缓存器522。也就是说,根据本公开的实施例,不是基于诸如地址的存储区域搜索缓存器522,而是在第一层中,基于具有比存储区域大的大小的范围来执行缓存器搜索操作,然后在第二层中,基于存储区域来执行缓存器搜索操作。尽管图6示出包括在缓存器522中的存储区域被分层地划分为两个层的示例,但是本公开的精神和概念可类似地应用于其中存储区域被分层地划分为通过适当大小确定的多个层的其他情况。

图7a说明根据本公开的实施例的用于缓存器搜索的位图结构的示例。尽管图7a示出由于图5所示的缓存器522为32gb装置并且缓存器522被分成两个层而被分层的两个层的位图结构,但是本公开的实施例不限于两个层。

参照图7a,位图710可包括1层位图712和2层位图714。1层位图712可包括具有位0至位31的32个位。简而言之,1层位图712可使用4字节或32位变量。1层位图712的每一个位可对应于例如1gb的范围,其包括缓存器522中包括的存储区域中的预定数量的区域。位0可对应于0gb和1gb之间的范围。位1可对应于1gb和2gb之间的范围。位2可对应于2gb和3gb之间的范围。位3可对应于3gb和4gb之间的范围。当数据以相应的范围被存储时,相应范围的位的值可被设置为“1”。

2层位图714可以存在作为低于1层位图712的层。例如,2层位图714可包括从位0至位15的16位。简而言之,2层位图714可使用2字节或16位变量。

当2层位图714为16位时,2层位图714中的每一个位可对应于例如64mb的预定区域。位0可对应于0和64mb之间的区域。位1可对应于64mb和128mb之间的区域。位2可对应于128mb和192mb之间的区域。位3可对应于192mb和256mb之间的区域。当数据以相应的区域被存储时,相应区域的位的值可被设置为“1”。

如上所述,当32gbsram用作缓存器522,并且32位用作1层位图712,16位用作2层位图714时,该sram可高达68字节(=4字节(或32位)+{64字节(或32×16位)}),并且可用于缓存器搜索操作。

图7b说明根据本公开的实施例的用于缓存器搜索的位图结构的另一示例。尽管图7b示出由于图5所示的缓存器522为32gb装置并且缓存器522被分成两个层而被分层的两个层的位图结构,但是本发明的实施例不限于两个层。

参照图7b,位图720可包括1层位图722和2层位图724。1层位图722可包括具有位0至位31的32个位。简而言之,1层位图722可使用4字节或32位变量。1层位图722中的每一个位可对应于例如1gb的范围,其包括在缓存器522中包括的存储区域中的预定数量的区域。位0可对应于0gb和1gb之间的范围。位1可对应于1gb和2gb之间的范围。位2可对应于2gb和3gb之间的范围。位3可对应于3gb和4gb之间的范围。当数据以相应的范围被存储时,相应范围的位的值可被设置为“1”。

2层位图724可以存在作为低于1层位图722的层。例如,2层位图724可包括从位0至位7的8位。简而言之,2层位图724可使用1字节或8位变量。

当2层位图724为8位时,2层位图724中的每一个位可对应于例如128mb的预定区域。位0可对应于0mb和128mb之间的区域。位1可对应于128mb和256mb之间的区域。位2可对应于256mb和384mb之间的区域。位3可对应于384mb和512mb之间的区域。当数据以相应的区域被存储时,相应区域的位的值可被设置为“1”。

如上所述,当32gbsram用作缓存器522,并且32位用作1层位图722,8位用作2层位图724时,高达36字节(=4字节(或32位)+{32字节(或32×8位)})的sram可用于缓存器搜索操作。

根据本公开的实施例,存储器系统510中的控制器520可以多层位图例如二层位图来表示缓存器522,并且基于对应于预定区域的范围通过使用位图来搜索缓存器522。控制器520可通过减小用于搜索缓存器522的数据结构的大小来减少对缓存器522的搜索时间。此外,随着数据缓存量的变化,对缓存器522的搜索时间可能变化,并且也可去除读取延迟变得不规律的现象。

图8是说明根据本公开的实施例的控制器的操作的流程图。图8示出图5中所示的控制器520或处理器524对存储器装置530执行的写入操作。

参照图8,控制器520可在操作810处判定是否从主机50接收到写入请求。

当确定从主机50接收到写入请求时,控制器520可在操作820处基于分层的位图信息来搜索缓存器522。控制器520可在操作830处确定是否存在对应于地址信息例如包括在对缓存器522的写入请求中的lba的存储区域。

根据本公开的各个实施例,如图6所示,当包括在缓存器522中的存储区域被划分成每一个都包括至少两个存储区域的多个范围时,分层的位图信息可分层地表示多个范围和多个存储区域。当如图7a或7b所示分层的位图包括两层的位图时,1层位可分别对应于范围,并且2层位可分别对应于被包括在每一个范围中的存储区域。

当确定在缓存器522中不存在对应于包括在写入请求中的地址信息的存储区域时,控制器520可在操作840处将与写入请求一起接收的数据缓存在缓存器522中。随后,控制器520可在操作850处通过设置位值例如“1”来更新位图信息,“1”表示与写入数据的缓存相关的存储区域和范围。

随后,控制器520可在操作860处将缓存在缓存器522中的数据传输至存储器装置530。例如,控制器520可通过缓存器复制或缓存器刷新来将缓存在缓存器522中的数据传输至存储器装置530。然后,存储器装置530可将接收到的写入数据存储在存储区域,例如对应于包括在写入请求中的地址信息例如lba的pba。

当数据从缓存器522被刷新到存储器装置530时,控制器520可通过清除位图信息的相应位的值来更新位图信息。

图9是说明根据本公开的实施例的控制器的操作的流程图。图9的操作流程可对应于图5中的控制器520或处理器524对存储器装置530执行的读取操作。

参照图9,控制器520可在操作910处确定是否从主机50接收到读取请求。

当确定从主机50接收到读取请求时,控制器520可在操作920处基于分层的位图信息搜索缓存器522,并且在操作930处确定在缓存器522中是否存在对应于包括在读取请求中的地址信息例如lba的存储区域。

根据本公开的各个实施例,如图6所示,当包括在缓存器522中的存储区域被划分成每一个都包括至少两个存储区域的多个范围时,分层的位图信息可分层地表示多个范围和多个存储区域。当如图7a或7b所示分层的位图包括两层位图时,1层位可分别对应于范围,并且2层位可分别对应于包括在每一个范围中的存储区域。

控制器520可在操作940处基于关于在缓存器522中是否存在对应于包括在读取请求中的地址信息例如lba的存储区域的确定结果来执行数据读取操作。

当确定在缓存器522中存在对应于包括在读取请求中的地址信息例如lba的存储区域时,控制器520可读取存储在缓存器522的相应区域中的数据。否则,当确定在缓存器522中不存在对应于包括在读取请求中的地址信息的存储区域时,控制器520可读取存储在存储器装置530的相应区域中的数据,该相应区域是对应于包括在读取请求中的地址信息例如lba的存储区域例如pba,并且将读取的数据存储在缓存器522中。

控制器520可在操作950处将从缓存器522或存储器装置530读取的读取数据传输至主机50。

在下文中,将参照图10至图18更详细地描述设置有存储器系统110的数据处理系统和电子设备,该存储器系统110包括根据实施例参照图1至图9描述的存储器装置150和控制器130。

图10至图18是示意性说明根据本公开的各个实施例的图1的数据处理系统的应用示例的简图。

图10是示意性说明包括根据本公开的实施例的存储器系统的数据处理系统的另一示例的简图。图10示意性说明了应用根据实施例的存储器系统的存储卡系统。

参照图10,存储卡系统6100可包括连接器6110、存储器控制器6120和存储器装置6130。

更具体地,存储器控制器6120可被连接到通过非易失性存储器实施的存储器装置6130,并被配置成访问存储器装置6130。例如,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130和主机之间的接口并驱动固件以控制存储器装置6130。也就是说,存储器控制器6120可对应于参照图1描述的存储器系统110的控制器130,并且存储器装置6130可对应于参照图1描述的存储器系统110的存储器装置150。

因此,存储器控制器6120可包括随机存取存储器(ram)、处理单元、主机接口、存储器接口和错误校正单元。存储器控制器6120可进一步包括图5所示的元件。

存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1所述,存储器控制器6120可被配置成通过诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(emmc)、外围组件互连(pci)、高速pci(pcie)、高级技术附件(ata)、串行ata、并行ata、小型计算机系统接口(scsi)、增强型小型磁盘接口(edsi)、电子集成驱动器(ide)、火线、通用闪存(ufs)、无线保真(wi-fi)以及蓝牙。因此,根据实施例的存储器系统和数据处理系统可应用于有线/无线电子装置,或者特别是移动电子装置。

存储器装置6130可通过非易失性存储器来实施。例如,存储器装置6130可通过诸如以下的各种非易失性存储器装置来实施:可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、nand闪速存储器、nor闪速存储器、相变ram(pram)、电阻式ram(reram)、铁电ram(fram)以及自旋转移力矩磁性ram(stt-mram)。存储器装置6130可包括如图1的存储器装置150中的多个管芯。

存储器控制器6120和存储器装置6130可被集成至单个半导体装置中。例如,存储器控制器6120和存储器装置6130可通过集成至单个半导体装置中构成固态驱动器(ssd)。此外,存储器控制器6120以及存储器装置6130可构成诸如以下的存储卡:例如个人计算机存储卡国际协会(pcmcia)的pc卡,标准闪存(cf)卡,智能媒体卡(例如,sm和smc),记忆棒,多媒体卡(例如,mmc、rs-mmc、微型mmc和emmc),例如sd、迷你sd、微型sd和sdhc的sd卡以及通用闪存(ufs)。

图11是示意性说明包括根据本公开的实施例的存储器系统的数据处理系统的另一示例的简图。

参照图11,数据处理系统6200可包括具有一个或多个非易失性存储器(nvm)的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图11所示的数据处理系统6200可用作如参照图1所描述的诸如cf、sd、微型sd等的存储卡或usb装置的存储介质。存储器装置6230可对应于图1所示的存储器系统110中的存储器装置150,并且存储器控制器6220可对应于图1所示的存储器系统110中的控制器130。

存储器控制器6220可响应于来自主机6210的请求控制对存储器装置6230的读取操作、写入操作或擦除操作,并且存储器控制器6220可包括中央处理器(cpu)6221、作为缓冲存储器6222的随机存取存储器(ram)、错误校正码(ecc)电路6223、主机接口6224以及作为存储器接口6225的nvm接口。

cpu6221可控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理操作和坏页面管理操作。ram6222可根据cpu6221的控制来操作且用作工作存储器、缓冲存储器或缓存器。当ram6222用作工作存储器时,通过cpu6221处理的数据可被临时存储在ram6222中。当ram6222用作缓冲存储器时,ram6222可用于缓冲从主机6210传输至存储器装置6230的数据或从存储器装置6230传输至主机6210的数据。当ram6222用作缓存器时,ram6222可辅助低速存储器装置6230以高速运行。

ecc电路6223可对应于图1所示的控制器130的ecc单元138。如参照图1所述,ecc电路6223可生成用于校正从存储器装置6230提供的数据的失效位或错误位的错误校正码。ecc电路6223可对提供给存储器装置6230的数据执行错误校正编码,从而形成具有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ecc电路6223可对从存储器装置6230输出的数据执行错误校正解码。此时,ecc电路6223可使用奇偶校验位来校正错误。例如,如上参照图1所述,ecc电路6223可使用包括诸如以下的编码调制的任何适当的方法来校正错误:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格姆(bose-chaudhri-hocquenghem,bch)码、涡轮码、里德-所罗门(rs)码、卷积码、递归系统码(rsc)、网格编码调制(tcm)或分组编码调制(bcm)。

存储器控制器6220可通过主机接口6224向主机6210传输数据/接收来自主机6210的数据,并通过nvm接口6225向存储器装置6230传输数据/接收来自存储器装置6230的数据。主机接口6224可通过诸如以下的各种接口协议中的至少一种连接到主机6210:并行高级技术附件(pata)总线、串行高级技术附件(sata)总线、小型计算机系统接口(scsi)、通用串行总线(usb)、高速外围组件互连(pcie)或nand接口。存储器控制器6220可利用诸如无线保真(wifi)或长期演进(lte)的移动通信协议具有无线通信功能。存储器控制器6220可连接到外部装置,例如主机6210或另一个外部装置,然后向外部装置传输数据/接收来自外部装置的数据。特别地,由于存储器控制器6220被配置成通过各种通信协议中的一种或多种与外部装置进行通信,因此根据实施例的存储器系统和数据处理系统可应用于有线/无线电子装置或特别是移动电子装置。

图12是示意性说明包括根据本公开的实施例的存储器系统的数据处理系统的另一示例的简图。图12示意性说明应用根据实施例的存储器系统的固态驱动器(ssd)6300。

参照图12,ssd6300可包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可对应于图1和图5的存储器系统110中的控制器130,并且存储器装置6340可对应于图1的存储器系统中的存储器装置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)的非易失性存储器来实现。为便于描述,图12说明了缓冲存储器6325存在于控制器6320内部。然而,缓冲存储器6325可存在于控制器6320外部。

ecc电路6322可在编程操作期间计算待被编程到存储器装置6340的数据的ecc值,在读取操作期间基于ecc值对从存储器装置6340读取的数据执行错误校正操作,并在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。

主机接口6324可提供与外部装置例如主机6310的接口功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。

此外,可提供应用了图1的存储器系统110的多个ssd6300来实施数据处理系统,例如,独立磁盘冗余阵列(raid)系统。此时,raid系统可包括多个ssd6300和用于控制多个ssd6300的raid控制器。当raid控制器响应于从主机6310提供的写入命令执行编程操作时,raid控制器可根据多个raid级别,即,从主机6310提供的写入命令的raid级别信息,在ssd6300中选择一个或多个存储器系统或ssd6300,并将对应于写入命令的数据输出到所选择的ssd6300。此外,当raid控制器响应于从主机6310提供的读取命令执行读取操作时,raid控制器可根据多个raid级别,即,从主机6310提供的读取命令的raid级别信息,在ssd6300中选择一个或多个存储器系统或ssd6300,并将从所选择的ssd6300读取的数据提供给主机6310。

图13是示意性说明包括根据本公开的实施例的存储器系统的数据处理系统的另一示例的简图。图13示意性说明应用了根据实施例的存储器系统的嵌入式多媒体卡(emmc)。

参照图13,emmc6400可包括控制器6430和通过一个或多个nand闪速存储器实施的存储器装置6440。控制器6430可对应于图1的存储器系统110中的控制器130,并且存储器装置6440可对应于图1的存储器系统110中的存储器装置150。

更具体地,控制器6430可通过多个通道连接到存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口6431和诸如nand接口6433的存储器接口。

内核6432可控制emmc6400的全部操作,主机接口6431可提供控制器6430和主机6410之间的接口功能,并且nand接口6433可提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可用作并行接口,例如参照图1所描述的mmc接口。此外,主机接口6431可用作诸如超高速等级1(uhs-i)/uhs等级2(uhs-ii)和通用闪存(ufs)接口的串行接口。

图14至图17是示意性说明包括根据本公开的实施例的存储器系统的数据处理系统的其它示例的简图。图14至图17示意性地说明了应用根据实施例的存储器系统的通用闪存(ufs)系统。

参照图14至图17,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可以参照图11至图13描述的数据处理系统6200、ssd6300或emmc6400的形式来实施,并且ufs卡6530、6630、6730和6830可参照图10描述的存储卡系统6100的形式来实施。

此外,在ufs系统6500、6600、6700和6800中,主机6510、6610、6710和6810,ufs装置6520、6620、6720和6820以及ufs卡6530、6630、6730和6830可通过ufs接口,例如,移动行业处理器接口(mipi)中的mipim-phy和mipi统一协议(unipro)彼此通信。此外,ufs装置6520、6620、6720和6820与ufs卡6530、6630、6730和6830可通过除ufs协议以外的各种协议,例如,usb闪存驱动器(ufd)、多媒体卡(mmc)、安全数字(sd)、迷你sd和微型sd彼此通信。

在图14所示的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处的链路层交换来彼此通信。在实施例中,为便于描述,已经例示了其中一个ufs装置6520和一个ufs卡6530连接到主机6510的配置。然而,多个ufs装置和ufs卡可并联或以星形形式连接到主机6510,并且多个ufs卡可并联或以星形形式连接到ufs装置6520,或者串联或以链的形式连接到ufs装置6520。

在图15所示的ufs系统6600中,主机6610、ufs装置6620和ufs卡6630中的每一个可包括unipro,并且主机6610可通过交换模块6640执行交换操作,例如,通过交换模块6640在unipro处执行链路层交换,例如l3交换,与ufs装置6620或ufs卡6630通信。ufs装置6620和ufs卡6630可通过unipro处的交换模块6640的链路层交换来彼此通信。在实施例中,为便于描述,已经例示了其中一个ufs装置6620和一个ufs卡6630连接到交换模块6640的配置。然而,多个ufs装置和ufs卡可并联或以星形形式连接到交换模块6640,并且多个ufs卡可串联或以链的形式连接到ufs装置6620。

在图16所示的ufs系统6700中,主机6710、ufs装置6720和ufs卡6730中的每一个可包括unipro,并且主机6710可通过交换模块6740执行交换操作,例如通过交换模块6740在unipro处执行链路层交换,例如l3交换,与ufs装置6720或ufs卡6730通信。此时,ufs装置6720和ufs卡6730可通过unipro处的交换模块6740的链路层交换来彼此通信,并且交换模块6740可在ufs装置6720内部或外部与ufs装置6720集成为一个模块。在实施例中,为便于描述,已经例示了其中一个ufs装置6720和一个ufs卡6730连接到交换模块6740的配置。然而,每一个都包括交换模块6740和ufs装置6720的多个模块可并联或以星形形式连接到主机6710,或者串联或以链的形式彼此连接。此外,多个ufs卡可并联或以星形形式连接到ufs装置6720。

在图17所示的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交换来彼此通信。在实施例中,为便于描述,已经例示了其中一个ufs装置6820连接到主机6810且一个ufs卡6830连接到ufs装置6820的配置。然而,多个ufs装置可并联或以星形形式连接到主机6810,或串联或以链的形式连接到主机6810,并且多个ufs卡可并联或以星形形式连接到ufs装置6820,或串联或以链的形式连接到ufs装置6820。

图18是示意性说明包括根据本公开的实施例的存储器系统的数据处理系统的另一示例的简图。图18是示意性说明应用了根据实施例的存储器系统的用户系统的简图。

参照图18,用户系统6900可包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。

更具体地,应用处理器6930可驱动包括在用户系统6900中的诸如os的部件,并且包括控制包括在用户系统6900中的组件的控制器、接口和图形引擎。应用处理器6930可作为片上系统(soc)被提供。

存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或缓存存储器。存储器模块6920可包括诸如动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、双倍数据速率(ddr)sdram、ddr2sdram、ddr3sdram、低功率双倍数据速率(lpddr)sdram、lpddr2sdram和lpddr3sdram的易失性随机存取存储器,或者诸如相变随机存取存储器(pram)、电阻式随机存取存储器(reram)、磁性随机存取存储器(mram)和铁电随机存取存储器(fram)的非易失性随机存取存储器。例如,可基于堆叠式封装(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闪存和3dnand闪存的非易失性半导体存储器装置来实施,并且可被提供为诸如用户系统6900的存储卡或外部驱动器的可移除存储介质。存储模块6950可对应于参照图1描述的存储器系统110。此外,存储模块6950可被实施为如上参照图12至图17所述的ssd、emmc和ufs。

用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(lcd)、有机发光二极管(oled)显示装置、有源矩阵oled(amoled)显示装置、led、扬声器和电动机的用户输出接口。

此外,当图1的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作,并且网络模块6940可作为用于控制与外部装置的有线和/或无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示通过处理器6930处理的数据或支持从触摸面板接收数据的功能。

虽然已经针对具体实施例描述了本发明,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可进行其它各种实施例、改变和修改。

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