首页 / 专利库 / 人工智能 / 机器人 / 机器人控制系统 / 控制器 / 控制器及其操作方法

控制器及其操作方法

阅读:540发布:2020-10-28

专利汇可以提供控制器及其操作方法专利检索,专利查询,专利分析的服务。并且提供了一种对 存储器 装置进行控制的 控制器 的操作方法。该操作方法可以包括:确定被包括在包括 请求 映射数据的请求映射区段中的多个映射数据的缓存顺序;从存储器装置请求请求映射区段;在基于缓存顺序确定的标记区域中标记数据;以缓存顺序缓存从存储器装置读取的多个映射数据;以及根据存储在标记区域中的数据是否被改变,从缓存的数据获取请求映射数据。,下面是控制器及其操作方法专利的具体信息内容。

1.一种对存储器装置进行控制的控制器的操作方法,所述操作方法包括:
确定被包括在包括请求映射数据的请求映射区段中的多个映射数据的缓存顺序;
从所述存储器装置请求所述请求映射区段;
在基于所述缓存顺序确定的标记区域中标记数据;
以所述缓存顺序缓存从所述存储器装置读取的所述多个映射数据;以及根据存储在所述标记区域中的所述数据是否改变来从所缓存的数据获取所述请求映射数据。
2.根据权利要求1所述的操作方法,其中所述缓存顺序的确定是基于所述请求映射数据在所述请求映射区段内所处的位置来执行的。
3.根据权利要求2所述的操作方法,其中所述缓存顺序包括以下项中的一项:所述多个映射数据在所述请求映射区段中所处的顺序(正向顺序)和所述多个映射数据所处的所述顺序的反向(反向顺序)。
4.根据权利要求3所述的操作方法,其中所述缓存顺序的确定包括:
当所述请求映射数据所处的所述位置是在所述请求映射区段的前半部分中时,将所述缓存顺序设置为所述正向顺序;以及
当所述请求映射数据所处的所述位置是在所述请求映射区段的后半部分中时,将所述缓存顺序设置为所述反向顺序。
5.根据权利要求3所述的操作方法,其中所述多个映射数据分别对应于多个连续的逻辑地址。
6.根据权利要求5所述的操作方法,其中所述缓存顺序包括以下项中的一项:与所述多个映射数据的逻辑地址顺序相对应的所述正向顺序和与所述逻辑地址顺序的反向相对应的所述反向顺序。
7.根据权利要求1所述的操作方法,进一步包括:周期性地检查存储在所述标记区域中的所述数据是否被改变。
8.根据权利要求7所述的操作方法,其中周期性地检查存储在所述标记区域中的所述数据是否被改变是通过轮询来执行的。
9.根据权利要求1所述的操作方法,进一步包括:在所述请求映射数据被缓存之后,确定要在其中缓存映射数据的高速缓存区域作为所述标记区域。
10.根据权利要求1所述的操作方法,进一步包括:
从主机接收访问请求;
基于所获取的请求映射数据将所述访问请求中包含的逻辑地址转换为所述存储器装置的物理地址;以及
响应于所述访问请求,访问所述存储器装置的经转换的所述物理地址。
11.一种用于对存储器装置进行控制的控制器,包括:
高速缓存,适于缓存映射数据;
闪存转换层(FTL),适于:
确定被包括在包括请求映射数据的请求映射区段中的多个映射数据的缓存顺序,从所述存储器装置请求所述请求映射区段,并且在基于所述缓存顺序确定的标记区域中标记数据;以及
存储器接口,适于以所述缓存顺序缓存从所述存储器装置读取的所述多个映射数据,其中所述FTL根据存储在所述标记区域中的所述数据是否改变来从所述高速缓存获取所述请求映射数据。
12.根据权利要求11所述的控制器,其中所述FTL基于所述请求映射数据在所述请求映射区段内所处的位置来确定所述缓存顺序。
13.根据权利要求12所述的控制器,其中所述缓存顺序包括以下项中的一项:所述多个映射数据在所述请求映射区段中所处的顺序(正向顺序)和所述多个映射数据所处的所述顺序的反向(反向顺序)。
14.根据权利要求13所述的控制器,
其中当所述请求映射数据所处的所述位置是在所述请求映射区段的前半部分中时,所述FTL将所述缓存顺序设置为所述正向顺序,并且当所述请求映射数据所处的所述位置是在所述请求映射区段的后半部分中时,所述FTL将所述缓存顺序设置为所述反向顺序。
15.根据权利要求13所述的控制器,其中所述多个映射数据分别对应于多个连续的逻辑地址。
16.根据权利要求15所述的控制器,其中所述缓存顺序包括以下项中的一项:与所述多个映射数据的逻辑地址顺序相对应的所述正向顺序和与所述逻辑地址顺序的反向相对应的所述反向顺序。
17.根据权利要求11所述的控制器,其中所述FTL周期性地检查存储在所述标记区域中的所述数据是否被改变。
18.根据权利要求17所述的控制器,其中所述FTL通过轮询周期性地检查存储在所述标记区域中的所述数据是否被改变。
19.根据权利要求11所述的控制器,其中所述FTL在所述请求映射数据被缓存之后确定要向其中缓存映射数据的高速缓存区域作为标记区域。
20.根据权利要求11所述的控制器,其中所述FTL基于所获取的请求映射数据将访问请求中包含的逻辑地址转换为所述存储器装置的物理地址,并且响应于所述访问请求,访问所述存储器装置的经转换的所述物理地址。
21.一种操作包括高速缓存的控制器的方法,所述方法包括:
确定分别对应于多个映射数据的逻辑地址的正向顺序或反向顺序作为缓存顺序,所述多个映射数据包括以所述正向顺序顺序地布置在请求映射区段内的请求映射数据;
在根据所述缓存顺序将所述映射数据缓存到所述高速缓存中时,检测缓存在所述高速缓存中的所述映射数据的后续映射数据;以及
获取所述请求映射数据。
22.根据权利要求21所述的方法,当所述请求映射数据的位置在所述请求映射区段的后半部分内时,将所述反向顺序确定为所述缓存顺序。

说明书全文

控制器及其操作方法

[0001] 相关申请的交叉引用
[0002] 本申请要求于2018年8月31日提交的韩国专利申请No.10-2018-0103739的优先权,该申请通过引用整体并入本文。

技术领域

[0003] 本公开的各种实施例总体涉及控制器。特别地,实施例涉及对存储器装置进行控制的控制器的操作方法。

背景技术

[0004] 计算机环境范例已经转变为普适计算,其使计算系统能够随时随地使用。结果,诸如移动电话数码相机和膝上型计算机之类的便携式电子装置的使用已经迅速地增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
[0005] 由于它们没有移动部件,因此存储器系统提供诸如优异的稳定性和耐用性、高信息访问速度和低功耗的优点。具有这些优点的存储器系统的示例包括:通用串行总线(USB)存储器装置、具有各种接口的存储卡、以及固态驱动器(SSD)。发明内容
[0006] 各种实施例涉及能够通过从存储器装置快速地获取映射数据来改善存储器系统的访问性能的控制器及其操作方法。
[0007] 在一个实施例中,提供了一种对存储器装置进行控制的控制器的操作方法。该操作方法可以包括:确定被包括在包括请求映射数据的请求映射区段中的多个映射数据的缓存顺序;从存储器装置请求请求映射区段;在基于缓存顺序确定的标记区域中标记数据;以缓存顺序缓存从存储器装置读取的多个映射数据;以及根据存储在标记区域中的数据是否改变来从缓存的数据获取请求映射数据。
[0008] 在一个实施例中,一种用于对存储器装置进行控制的控制器可以包括:高速缓存,适于高速缓存映射数据;闪存转换层(FTL),适于确定被包括在包括请求映射数据的请求映射区段中的多个映射数据的缓存顺序,从存储器装置请求请求映射区段,并且在基于缓存顺序确定的标记区域中标记数据;以及存储器接口,适于以缓存顺序缓存从存储器装置读取的多个映射数据,其中FTL根据存储在标记区域中的数据是否改变来从高速缓存获取请求映射数据。
[0009] 在一个实施例中,一种操作包括高速缓存的控制器的方法,该方法包括:确定分别对应于多个映射数据的逻辑地址的正向顺序或反向顺序作为缓存顺序,多个映射数据包括以正向顺序顺序地布置在请求映射区段内的请求映射数据;在根据缓存顺序将映射数据缓存到高速缓存中时,检测缓存在高速缓存中的映射数据的后续映射数据;获取请求映射数据。
[0010] 当请求映射数据的位置在请求映射区段的后半部分内时,可以将反向顺序确定为缓存顺序。附图说明
[0011] 图1示意性地示出了根据一个实施例的包括控制器的存储器系统。
[0012] 图2示意性地示出了根据一个实施例的根据控制器的控制进行操作的存储器装置的
[0013] 图3是示出其中FTL从存储器装置获取请求映射数据的过程的图。
[0014] 图4示意性地示出了存储器接口的结构。
[0015] 图5是示出根据一个实施例的FTL的操作的流程图
[0016] 图6A至6C是示出根据一个实施例的FTL的操作的图。
[0017] 图7是示出根据一个实施例的包括控制器的存储器系统的操作的流程图。
[0018] 图8是示出根据一个实施例的FTL的操作的流程图。
[0019] 图9至10C是示出根据一个实施例的FTL的操作的图。
[0020] 图11是示出根据一个实施例的包括控制器的存储器系统的操作的流程图。
[0021] 图12至20示意性地示出了根据各种实施例的包括存储器系统的数据处理系统的示例。

具体实施方式

[0022] 将参考附图详细描述各种实施例。以下描述集中于根据实施例的元件和操作;省略对公知技术细节的描述,以免不必要地模糊实施例的主题。
[0023] 应当理解,尽管在本文中可以使用术语“第一”、“第二”、“第三”等来描述各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,下面描述的第一元件也可以被称为第二元件或第三元件。
[0024] 将进一步理解,当元件被称为“连接到”或“耦合到”另一元件时,它可以直接地在另一元件上、连接到或耦合到另一元件、或者可能存在一个或多个中间元件。另外,还应理解,当元件被称为在两个元件“之间”时,它可以是两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。除非另有说明或上下文另有指出,否则无论是直接还是间接连接/耦合,两个元件之间的通信可以是有线的或无线的。
[0025] 如本文所使用的,除非上下文另有明确指出,否则单数形式也可以包括复数形式,反之亦然。除非另有说明或从上下文清楚地指向单数形式,否则本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”。
[0026] 将进一步理解,当在本说明书中使用时,术语“包括”、“包含”、“含有”和“具有”指定所陈述的元件的存在,并且不排除存在或添加一个或多个其它元件。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和所有组合。
[0027] 还应注意,在整个说明书中,对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这样的短语的不同引用不一定是针对相同的实施例。
[0028] 在下文中,将参考附图详细描述本公开的各种实施例。
[0029] 图1示意性地示出了根据一个实施例的包括控制器130的数据处理系统100。
[0030] 参考图1,数据处理系统100可以包括主机102和存储器系统110。存储器系统110可以根据主机102的请求将数据存储在其中或输出存储在其中的数据。
[0031] 主机102可以包括各种便携式电子装置(诸如,移动电话、MP3播放器和膝上型计算机)中的任何一种,或者各种非便携式电子装置(诸如,台式计算机、游戏机、电视(TV)和投影仪)中的任何一种。
[0032] 主机102可以包括至少一个操作系统(OS),操作系统可以管理和控制主机102的整体功能和操作,并且使用数据处理系统100或存储器系统110在主机102与用户之间提供操作。OS可以支持与用户的使用目的和用途相对应的功能和操作。例如,根据主机102的移动性,OS可以被划分为通用OS和移动OS。根据用户的环境,通用OS可以被划分为个人OS和企业OS。例如,被配置为支持向一般用户提供服务的功能的个人OS可以包括Windows和Chrome,并且被配置为保护和支持高性能的企业OS可以包括Windows服务器、Linux和Unix。此外,被配置为支持向用户提供移动服务的功能和系统的省电功能的移动OS可以包括Android、iOS和Windows Mobile。主机102可以包括多个OS,并且执行OS以在存储器系统110上执行与用户请求相对应的操作。
[0033] 存储器系统110可以操作以响应于主机102的请求而存储用于主机102的数据。存储器系统110的非限制性示例包括:固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用存储总线(USB)装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可以包括:嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)和/或微型MMC。SD卡可以包括迷你SD卡和/或微型SD卡。
[0034] 存储器系统110可以由各种类型的存储装置实现。这样的存储装置的示例可以包括但不限于:易失性存储器装置,诸如DRAM动态随机存取存储器(DRAM)和静态RAM(SRAM);以及非易失性存储器装置,诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM或ReRAM)以及闪存。闪存可以具有三维(3D)堆叠结构。
[0035] 存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储用于主机102的数据,并且控制器130可以控制向存储器装置150中的数据存储。
[0036] 控制器130和存储器装置150可以集成到单个半导体器件中,该半导体器件可以被包括在上面例示的各种类型的存储器系统中的任何一种存储器系统中。例如,控制器130和存储器装置150可以集成为一个半导体器件以构成固态驱动器(SSD)。当存储器系统110被用作SSD时,可以提高连接到存储器系统110的主机102的操作速度。在另一个实施例中,控制器130和存储器装置150可以集成为一个半导体器件以构成存储卡,诸如个人计算机存储卡国际协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)(包括缩小尺寸的MMC(RS-MMC)和微型MMC)、安全数字(SD)卡(包括迷你SD、微型SD和SDHC)、或通用闪存(UFS)装置。
[0037] 存储器系统110的非限制性应用实例包括:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络书写板、平板计算机、无线电话、移动电话、智能手机、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑匣子、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频录音机、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境中发送/接收信息的装置、构成家庭网络的各种电子装置中的一种电子装置、构成计算机网络的各种电子装置中的一种电子装置、构成远程信息处理网络的各种电子装置中的一种电子装置、射频识别(RFID)装置、或构成计算机系统的各种部件中的一种部件。
[0038] 存储器装置150可以是非易失性存储器装置,并且即使没有供电也可以保持存储在其中的数据。存储器装置150可以存储通过写入操作从主机102提供的数据,并且通过读取操作将存储在其中的数据提供给主机102。存储器装置150可以包括多个存储器块152、154、156,每个存储器块可以包括多个页面,并且每个页面可以包括耦合到字线的多个存储器单元。在一个实施例中,存储器装置150可以是闪存。闪存可以具有三维(3D)堆叠结构。
[0039] 将参考图2更详细地描述存储器装置150的结构。
[0040] 控制器130可以响应于来自主机102的请求来控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供给主机102,并且将从主机102提供的数据存储到存储器装置150中。针对这个操作,控制器130可以控制存储器装置150的读取、写入、编程和擦除操作。
[0041] 控制器130可以包括:主机接口(I/F)132、处理器134、诸如NAND闪存控制器(NFC)的存储器I/F 142、经由内部总线可操作地耦合的存储器144。
[0042] 主机接口132可以被配置为处理主机102的命令和数据,并且可以通过各种接口协议(诸如,通用串行总线(USB)、多媒体卡(MMC)、外围部件互连-快速(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小磁盘接口(ESDI)和集成驱动电子装置(IDE))中的一种或多种协议与主机102通信。
[0043] 存储器I/F 142可以用作用于对接控制器130和存储器装置150的存储器/存储接口,使得控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪存或具体地是NAND闪存时,存储器I/F 142可以在处理器134的控制下生成用于存储器装置150的控制信号并且处理要提供给存储器装置150的数据。存储器I/F 142可以用作用于处理控制器130与存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,存储器I/F 142可以支持控制器130与存储器装置150之间的数据传输。
[0044] 存储器I/F 142可以包括ECC部件(未示出)。
[0045] ECC部件可以检测并校正从存储器装置150读取的数据中包含的错误。换句话说,ECC部件可以通过在ECC编码过程期间使用的ECC码对从存储器装置150读取的数据执行纠错解码过程。根据纠错解码过程的结果,ECC部件可以输出信号(例如,纠错成功/失败信号)。当错误位的数目大于可校正错误位的阈值时,ECC部件可以不校正错误位,而是可以输出错误校正失败信号。
[0046] ECC部件可以通过编码调制(诸如,低密度奇偶校验(LDPC)码、Bose-Chaudhri-Hocquenghem(BCH)码、Turbo码、里德-所罗码(Reed-Solomon)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)和块编码调制(BCM))执行纠错。然而,纠错不限于任何特定技术,并且ECC部件不限于任何特定结构。这样,ECC部件可以包括用于合适的纠错的任何和所有电路、模块、系统或装置。
[0047] 存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可以响应于来自主机102的请求而控制存储器装置150执行读取、写入、编程和擦除操作。控制器130可以将从存储器装置150读取的数据提供给主机102,可以将从主机102提供的数据存储到存储器装置150中。存储器144可以存储用于控制器130和存储器装置150执行这些操作所需的数据。
[0048] 存储器144可以由易失性存储器实现。例如,存储器144可以由静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)实现。存储器144可以布置在控制器130内或外。图1示出了布置在控制器130内的存储器144。在另一个实施例中,存储器144可以由外部易失性存储器实现,外部易失性存储器具有在存储器144与控制器130之间传输数据的存储器接口。
[0049] 如上所述,存储器144可以存储在主机102与存储器装置150之间执行数据写入/读取操作所需的数据以及当执行数据写入/读取操作时的数据。如图1所示,存储器144可以包括高速缓存146。
[0050] 处理器134可以控制存储器系统110的整体操作。具体地,处理器134可以响应于来自主机102的写入或读取请求来控制对存储器装置150的编程或读取操作。如图1所示,FTL 136可以作为处理器134中的固件被驱动。处理器134可以用微处理器或中央处理单元(CPU)来实现。
[0051] 存储器装置150(例如,闪存装置)可以不支持重写功能。由存储器装置150执行的擦除操作的单位可以大于写入操作的单位。因此,当存储器装置150更新存储在其中的数据时,存储器装置可以不对存储对应的数据的区域执行擦除操作,而是使现有的数据无效并将新数据存储在另一存储区域中。在这种情况下,主机102的逻辑地址可能与存储器装置150的物理地址不一致。
[0052] 当从主机102接收逻辑地址时,FTL 136可以将逻辑地址转换为物理地址。因此,控制器130可以响应于来自主机102的访问请求而访问存储器装置150的物理地址。
[0053] 用于将逻辑地址与物理地址相关联的映射数据(例如,逻辑到物理(L2P)数据)可以存储在存储器装置150中。FTL 136可以从存储器装置150获取映射数据,以便将逻辑地址转换为物理地址。
[0054] 存储器装置150可以基于映射区段存储多个映射数据。存储器装置150可以存储多个映射区段。在本说明书中,FTL 136所需的映射数据被定义为请求映射数据,并且包括请求映射数据的映射区段被定义为请求映射区段。
[0055] FTL 136可以控制存储器接口142以从存储器装置150获取请求映射数据。存储器接口142可以响应于FTL 136的控制来控制存储器装置150读取请求映射区段。存储器接口142可以将从存储器装置150读取的请求映射区段缓存到高速缓存146中。FTL 136可以从缓存的请求映射区段获取请求映射数据。
[0056] 被包括在请求映射区段中的多个映射数据可以以缓存顺序被缓存,缓存顺序可以是预定的。因此,在完全缓存所有映射数据之前,可以将请求映射数据缓存到高速缓存146中。当请求映射数据被缓存时,即使在整个请求映射区段完全被缓存之前,FTL 136也可以获取请求映射数据。将参考图3至7详细描述这种情况。
[0057] 根据一个实施例,在将映射区段缓存到高速缓存146中时,FTL 136可以基于位于请求映射区段中的请求映射数据的偏移来确定缓存顺序。在对请求映射数据进行请求时,FTL 136可以基于所确定的缓存顺序标记在高速缓存146内确定的标记区域中的数据。即使在整个请求映射区段被完全缓存之前(例如,即使当小于请求映射区段的一半已经被缓存时),FTL 136可以根据存储在标记区域中的标记数据是否已经被改变,来获取请求映射数据。根据一个实施例,FTL 136可以快速获取请求映射数据,从而提高存储器系统110的访问性能。
[0058] 图2示意性地示出了根据一个实施例的根据控制器130的控制进行操作的存储器装置150。
[0059] 参考图2,存储器装置150可以包括多个存储器块BLOCK0至BLOCKN-1,例如,BLOCK0(210)、BLOCK1(220)、BLOCK2(230)至BLOCKN-1(240)。存储器块210、220、230和240中的每个存储器块可以包括多个页面(例如,2M个页面),其数目可以根据电路设计而变化。例如,在一些应用中,存储器块中的每个存储器块可以包括M个页面。每个页面可以包括耦合到多个字线WL的多个存储器单元。
[0060] 此外,存储器装置150可以包括多个存储器块,其可以包括每个存储1位数据的单层单元(SLC)的SLC存储器块和/或每个存储2位数据的多层单元(MLC)的MLC存储器块。SLC存储器块可以包括由在一个存储器单元中存储一位数据的存储器单元实现的多个页面。SLC存储器块可以具有快速数据操作性能和高耐用性。另一方面,MLC存储器块可以包括由在一个存储器单元中存储多位数据(例如,两位或多位数据)的存储器单元实现的多个页面。MLC存储器块可以具有比SLC存储器块更大的数据存储空间。换句话说,MLC存储器块可以高度集成。具体地,存储器装置150不仅可以包括MLC存储器块,每个MLC存储器块包括由能够在一个存储器单元中存储两位数据的存储器单元实现的多个页面,而且可以包括更高存储容量的MLC存储器块(例如:三层单元(TLC)存储器块,每个TLC存储器块包括由能够在一个存储器单元中存储三位数据的存储器单元实现的多个页面;四层单元(QLC)存储器块,每个QLC存储器块包括由能够在一个存储器单元中存储四位数据的存储器单元实现的多个页面;和/或更高层单元存储器块,每个更高层单元存储器块包括由能够在一个存储器单元中存储五位或更多位数据的存储器单元实现的多个页面)。
[0061] 根据本发明的实施例,存储器装置150被描述为非易失性存储器(诸如,闪存(例如,NAND闪存))。然而,存储器装置150可以实现为相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM或ReRAM)、铁电随机存取存储器(FRAM)、自旋矩转移磁随机存取存储器(STT-RAM或STT-MRAM)中的任何一个存储器。
[0062] 存储器块210、220、230和240可以存储通过编程操作从主机102传输的数据,并且通过读取操作将存储在其中的数据传输到主机102。
[0063] 图3是示出了其中FTL 136从存储器装置150获取请求映射数据的过程的图。
[0064] 存储器装置150可以存储多个映射区段。图3示出了第一至第四映射区段Map Segment1至Map Segment4被存储在存储器块152中。
[0065] 映射区段中的每个映射区段可以包括多个映射数据。例如,一个映射区段可以包括多个连续逻辑地址上的多个映射数据。一个映射区段可以被存储在存储器块的一个或多个页面中。单个映射数据可以具有数据总线的大小,即一个字。然而,映射区段和映射数据的大小不限于此。图3示出了一个映射区段(例如,第一映射区段Map Segment1)被存储在存储器块152的一个页面中并且包括八个映射数据Map Data1至Map Data8。
[0066] FTL 136可以向存储器接口142提供描述符,以便获取请求映射数据。描述符可以指示对存储器接口142需要处理以便控制存储器装置150的工作进行描述的工作顺序。存储器接口142可以响应于描述符控制存储器装置150读取包括请求映射数据的请求映射区段。
[0067] 描述符可以包括:存储器装置150的物理地址,对应于存储请求映射区段的位置;以及高速缓存146的高速缓存地址,从存储器装置150读取的映射区段要被缓存在高速缓存
146中。物理地址可以预先存储在存储器144中。FTL 136可以从存储器144获取在其中存储请求映射区段的存储器装置150的物理地址,以便提供描述符。
[0068] 通过示例的方式,将请求映射区段是第一映射区段Map Segment1并且请求映射数据是第一映射区段Map Segment1的第四映射数据Map Data4的情况作为示例进行描述。
[0069] 存储器接口142可以响应于描述符将从存储器装置150读取的第一映射区段Map Segment1缓存到第一高速缓存区域302中。具体地,存储器接口142可以以预定的缓存顺序缓存被包括在第一映射区段Map Segment1中的多个映射数据。图3的第一高速缓存区域302可以对应于被包括在描述符中的高速缓存地址。
[0070] 在一个实施例中,存储器接口142可以使用内部ECC部件(未示出)对读取的第一映射区段执行纠错,并且以缓存顺序将校正的第一映射区段Map Segment1缓存到第一高速缓存区域302中。
[0071] 图4示意性地示出了参考图3描述的存储器接口142的结构。
[0072] 存储器接口142可以包括进行内部操作所需的寄存器。例如,存储器接口142可以包括描述符队列寄存器402、地址寄存器406和字计数寄存器408。
[0073] 描述符队列寄存器402可以对从FTL 136接收的描述符进行排队。存储器接口142可以将描述符号码分配给所接收的描述符,并且将分配的号码提供给FTL 136。在图4的示例中,指示针对第一映射区段Map Segment1的读取请求的描述符Load Map Segment1可以在描述符队列寄存器402中排队,并且可以将描述符号码“1”分配给描述符Load Map Segment1。
[0074] 地址寄存器406可以存储高速缓存地址,高速缓存地址指示当前正被缓存的数据的高速缓存位置。当请求映射区段的缓存开始时,存储器接口142可以在描述符队列寄存器402内初始地存储高速缓存地址,高速缓存地址指示从其开始缓存的起始高速缓存位置。例如,字计数寄存器408可以基于字来存储剩余要被缓存的映射数据的大小。
[0075] 在图3的示例中,起始高速缓存地址可以对应于第一高速缓存区域302的起始地址。每当一个字的映射数据被缓存到高速缓存146中时,由于请求映射区段的映射数据被缓存到高速缓存146中,因此存储器接口142可以增加在地址寄存器406中的高速缓存地址的值,并且减小在字计数寄存器408中的要缓存的剩余映射数据大小的值。然后,存储器接口142可以缓存具有字大小的后续映射数据。
[0076] 存储器接口142可以重复减小要在字计数寄存器408中缓存的剩余映射数据大小的值的操作,直到这样的值变为“0”(即,直到所有的映射数据被缓存在高速缓存146中)。换句话说,存储器接口142可以以确定的缓存顺序将多个映射数据缓存到第一高速缓存区域302中。
[0077] 缓存顺序可以与多个映射数据在请求映射区段中所处的顺序相同。
[0078] 例如,当请求映射区段包括在多个连续逻辑地址上的多个映射数据时,存储器接口142可以以连续逻辑地址的顺序缓存多个映射数据。
[0079] 在图4的示例中,存储器接口142可以顺序地将第一至第八映射数据(例如,Map Data1、Map Data2、……Map Data7和Map Data8)缓存到第一高速缓存区域302中,同时改变地址寄存器406和字计数寄存器408内的值。
[0080] FTL 136可以访问高速缓存146的第一高速缓存区域302并且获取第四映射数据或请求映射数据。
[0081] 在请求映射区段的所有映射数据被完全缓存之前,第四映射数据或请求映射数据可以已经被缓存在高速缓存146中。然而,根据相关技术,只有当确认了请求映射区段的多个映射数据被完全缓存并且描述符的操作被完成时,FTL 136才访问高速缓存146以获取请求映射数据。
[0082] 具体地,当描述符队列寄存器402中排队的个体描述符的操作完成时,存储器接口142可以向FTL 136提供指示操作完成的响应。例如,当存储器接口142通过改变描述符队列寄存器402内的响应字段(“响应”)的数据来提供响应时,FTL 136可以根据存储器映射的输入/输出(MMIO)方法来访问描述符队列寄存器402,并且确认描述符的操作是否完成。
[0083] 可能发生如下情况,即使在完成第一描述符的操作之前,分配给请求请求映射数据的第一描述符的描述符号码被分配给了第二描述符。在这种情况下,FTL 136可能不确认第一描述符的操作是否完成。仅在确认第二描述符的操作完成之后,FTL 136才可以访问高速缓存146以获取请求映射数据。根据相关技术,存储器系统110的访问性能可能降低。
[0084] 因此,即使在确认描述符的操作(即,对请求映射区段进行缓存的缓存操作)完成之前,FTL 136可以检查请求映射数据是否被缓存然后获取请求映射数据。
[0085] 图5是示出了根据一个实施例的FTL 136的操作的流程图。图6A至6C是示出了根据一个实施例的FTL 136的操作的图。
[0086] 图5至6C示出了请求映射区段是第一映射区段Map Segment1并且请求映射数据是第四映射数据Map Data4的情况。
[0087] 参考图5和6A,FTL 136可以在步骤S502处从存储器装置150请求包括请求映射数据的请求映射区段。如上所述,FTL 136可以向存储器接口142提供包括物理地址以及高速缓存地址的描述符,物理地址指示存储器装置150内的请求映射区段的存储位置,高速缓存地址指示用于缓存请求映射区段的第一高速缓存区域302。
[0088] 如参考图3和4所述,存储器接口142可以以预定的缓存顺序将多个映射数据缓存到第一高速缓存区域302中。例如,存储器接口142可以按照多个映射数据在请求映射区段中所处的顺序将多个映射数据缓存到第一高速缓存区域302中。
[0089] 因此,可以基于缓存顺序确定第四映射数据或请求映射数据将要缓存到其中的高速缓存区域,因此还可以根据缓存顺序确定指示高速缓存区域的高速缓存地址。
[0090] 在步骤S504处,FTL 136可以在请求映射数据已经被缓存之后,确定要向其中缓存后续映射数据的标记区域604。例如,当第四映射数据是请求映射数据时,可以将要缓存第五映射数据的高速缓存区域确定为标记区域604。如上所述确定缓存顺序和高速缓存区域,从而可以标识和确定标记区域。然后,FTL 136可以标记标记区域604。标记的数据是用于检查映射数据是否被缓存在高速缓存区域中的标记。
[0091] 可以通过将虚拟数据存储在标记区域604中来执行标记。
[0092] 在步骤S506处,FTL 136可以检查存储在标记区域604中的数据是否已经被改变。
[0093] FTL 136可以周期性地检查数据是否已经被改变。
[0094] FTL 136可以使用轮询方法检查数据是否已经被改变。
[0095] 图6B和6C示出了已经在标记区域604中执行了标记之后,从第一映射数据以缓存顺序将映射数据缓存到第一高速缓存区域302中。
[0096] 具体地,图6B示出了第一至第四映射数据被缓存在第一高速缓存区域302中,并且虚拟数据在标记区域604内尚未改变。
[0097] 具体地,图6C示出了第五映射数据被进一步缓存到第一高速缓存区域302内的标记区域604中,因此标记区域604的虚拟数据被改变为第五映射数据。当检查存储在标记区域604中的数据已经被改变为映射数据时,它可以指示根据缓存顺序缓存第四映射数据。
[0098] 因此,当确定存储在标记区域604中的数据已经改变时,FTL 136可以在步骤S508处访问第一高速缓存区域302以获取第四映射数据或请求映射数据。
[0099] 图7是示出了根据一个实施例的包括控制器130的存储器系统110的操作的流程图。
[0100] 在步骤S702处,FTL 136可以向存储器接口142提供描述符,该描述符请求包括请求映射数据的请求映射区段。描述符可以包括指示存储器装置150内的请求映射区段的存储位置的物理地址,以及指示第一高速缓存区域302的高速缓存地址。
[0101] 在步骤S704处,FTL 136可以根据高速缓存146中的可以预先确定的缓存顺序,将要在请求映射数据之后向其中缓存后续映射数据的高速缓存区域确定为标记区域604,并且然后标记标记区域604。
[0102] 在步骤S706处,FTL 136可以周期性地检查存储在标记区域604中的数据是否被改变。在一个实施例中,FTL 136可以周期性地轮询高速缓存146。
[0103] 在步骤S708处,存储器接口142可以控制存储器装置150响应于描述符来读取请求映射区段。
[0104] 在步骤S710处,存储器装置150可以响应于存储器接口142的控制来读取请求映射区段,并且在步骤S712处将请求映射区段提供给存储器接口142。
[0105] 在步骤S714处,存储器接口142可以以缓存顺序将读取请求映射区段缓存到高速缓存146中。在一个实施例中,存储器接口142可以使用内部ECC部件(未示出)对读取请求映射区段执行纠错,并且以缓存顺序将校正的请求映射区段缓存到高速缓存146中。
[0106] 当通过周期性检查(步骤S706)确定虚拟数据已经改变时,FTL 136可以在步骤S716处从高速缓存146获取请求映射数据。
[0107] 响应于主机102的访问请求,FTL 136可以执行步骤S702至S716的操作。结果,FTL 136可以获取请求映射数据,并且将主机102的访问请求中包含的逻辑地址转换成存储器装置150的物理地址。FTL 136可以响应于访问请求而访问存储器装置150的转换后的物理地址。
[0108] 即使在FTL 136获取请求映射数据之后,存储器接口142可以对映射区段执行缓存操作,以便完全缓存整个映射区段。
[0109] FTL 136可以在请求请求映射区段的同时在标记区域604中标记虚拟数据,并且检查标记的虚拟数据是否被改变。因此,即使在整个请求映射区段被完全缓存之前,FTL 136可以检查请求映射数据是否被缓存。因此,FTL 136可以快速地获取请求映射数据,从而提高存储器系统110的访问性能。
[0110] 在图3的示例中,请求映射数据是第一映射数据区段Map Segment1的第八映射数据Map Data8。例如,当存储器接口142以多个映射数据在请求映射区段中所处的顺序将多个映射数据缓存到第一高速缓存区域302中时,可以最终缓存第八映射数据。
[0111] 当请求映射数据根据缓存顺序是请求映射区段内的最末映射数据时,FTL 136不能设置标记区域,因为在请求映射数据被缓存之后没有要向其中缓存映射数据的高速缓存区域。在这种情况下,仅当在请求映射区段完全被缓存之后确定描述符的操作完成时,FTL 136才可以获取请求映射区段内的请求映射数据或最末映射数据。
[0112] 此外,当请求映射数据存储在请求映射区段中的位置在请求映射区段的后半部分中时,存储器接口142可以在缓存请求映射区段的至少前半部分之后获取请求映射数据。
[0113] 根据一个实施例,基于请求映射数据在请求映射区段中所处的位置(例如,偏移),存储器接口142可以将缓存顺序设置为多个映射数据在请求映射区段中所处的顺序(正向顺序)或者多个映射数据所处的顺序的反向(反向顺序)。基于设置的缓存顺序,存储器接口142可以在请求映射数据被缓存之后标记要向其中缓存映射数据的高速缓存区域,其是标记区域。然后,存储器接口142可以根据存储在标记区域中的虚拟数据是否被改变来获取请求映射数据。将参考图4和图8至11详细描述本实施例。
[0114] 返回参考图4,存储器接口142可以以多个映射数据在请求映射区段中所处的顺序缓存多个映射数据,同时改变地址寄存器406和字计数寄存器408的值。
[0115] 在图3的示例中,起始高速缓存地址可以对应于第一高速缓存区域302的起始地址。每当缓存一个字大小的映射数据时,存储器接口142可以增加地址寄存器406的值并且减小字计数寄存器408的值。然后,存储器接口142可以缓存后续映射数据。
[0116] 对于另一实施例,起始高速缓存地址可以对应于第一高速缓存区域302的最末地址。在这种情况下,每当具有字大小的每个映射数据被缓存时,存储器接口142可以减小地址寄存器406的值并且减小字计数寄存器408的值。然后,存储器接口142可以缓存后续映射数据。
[0117] 存储器接口142可以重复减小字计数寄存器408的值的操作,直到字计数寄存器408的值变为“0”,即,直到所有要被缓存的数据被完全缓存。换句话说,存储器接口142可以以多个映射数据在请求映射区段中所处的顺序的相反顺序将多个映射数据缓存到第一高速缓存区域302中。
[0118] 例如,当单个映射数据对应于字大小时,每当单个映射数据被缓存时,存储器接口142可以增加地址寄存器406的值并且减小字计数寄存器408的值。然后,存储器接口142可以缓存下一个映射数据。
[0119] 在一个实施例中,当请求映射区段包括多个连续逻辑地址上的多个映射数据时,存储器接口142可以以逻辑地址的顺序的相反顺序缓存多个映射数据。
[0120] 简而言之,在改变地址寄存器406和字计数寄存器408的值的同时,存储器接口142可以以逻辑地址的正向顺序或反向顺序将被包括在第一映射区段中的多个映射数据缓存到第一高速缓存区域302中。也就是说,参考映射区段内的多个映射数据的逻辑地址,缓存顺序可以是正向顺序或反向顺序。
[0121] 如上面参考图3和4所述,无论正向顺序和反向顺序作为缓存顺序,相应映射数据的高速缓存位置的布置可以被预先确定为逻辑地址的正向顺序。即使当多个映射数据以反向顺序被缓存时,多个映射数据被缓存在高速缓存中的位置可以与多个映射数据在请求映射区段中所处的位置不同。也就是说,无论多个映射数据是以正向顺序还是反向顺序被缓存,相同的映射数据可以被缓存在相同的高速缓存位置。以正向顺序缓存多个映射数据的情况和以反向顺序缓存多个映射数据的情况仅在首先缓存哪个映射数据方面不同。
[0122] 图8是示出了根据一个实施例的FTL 136的操作的流程图。
[0123] 图9至10C是示出了根据一个实施例的FTL 136的操作的图。
[0124] 通过示例的方式,描述了请求映射区段是第一映射区段Map Segment1并且请求映射数据是第八映射数据Map Data8的情况。
[0125] 在步骤S802处,在从存储器装置150请求请求映射区段之前,FTL 136可以确定请求映射区段将要被缓存到第一高速缓存区域302中的缓存顺序。
[0126] 如参考图4所述,缓存顺序可以是多个映射数据在请求映射区段中所处的顺序或该顺序的反向顺序。
[0127] FTL 136可以基于请求映射数据在请求映射区段中所处的位置(例如,偏移)来确定缓存顺序。
[0128] 参考图9,可以根据其逻辑地址将多个映射数据从第一映射区段Map Segment1内的第一位置处的第一映射数据Map Data1至最末位置处的第八映射数据Map Data8顺序地布置。基于第一位置和最末位置,可以确定中间位置。在图9的示例中,位于请求映射区段Map Segment1的前半部分内的映射数据是第一至第四映射数据(Map Data1至Map Data4),并且位于请求映射区段Map Segment1的后半部分内的映射数据是第五至第八映射数据(Map Data5至Map Data8)。
[0129] 当请求映射数据在请求映射区段Map Segment1中所处的位置在请求映射区段Map Segment1的前半部分内时,可以将缓存顺序确定为请求映射区段Map Segment1的映射数据的逻辑地址的正向顺序。
[0130] 相反,当请求映射数据在请求映射区段Map Segment1中所处的位置在请求映射区段Map Segment1的后半部分内时,可以将缓存顺序确定为请求映射区段Map Segment1的映射数据的逻辑地址的反向顺序。也就是说,当请求映射数据是图9的示例中的第五至第八映射数据中的任何一个映射数据时,FTL 136可以确定缓存顺序指示以从第八映射数据开始的反向顺序缓存数据。
[0131] 在步骤S804处,FTL 136可以从存储器装置150请求包括请求映射数据的请求映射区段。FTL 136可以向存储器接口142提供包括物理地址以及高速缓存地址的描述符,物理地址指示存储器装置150内的请求映射区段的存储位置,高速缓存地址指示用于缓存请求映射区段以及确定的缓存顺序的第一高速缓存区域302。
[0132] 在步骤S806处,FTL 136可以在请求映射数据被缓存之后根据确定的缓存顺序确定要向其中缓存后续映射数据的标记区域,并且然后在标记区域中标记数据。
[0133] 参考图10A,根据确定的缓存顺序(即,来自第八映射数据Map Data8的逻辑地址的反向顺序),FTL 136可以将用于第七映射数据Map Data7的高速缓存区域确定为标记区域1004。然后,FTL 136可以在标记区域1004中标记数据。
[0134] 在一个实施例中,FTL 136可以通过将虚拟数据存储在标记区域1004中来执行标记。
[0135] 虚拟数据与映射数据区分开,以便不与映射数据混淆。
[0136] 在步骤S808处,FTL 136可以检查存储在标记区域1004中的数据是否被改变。
[0137] 在一个实施例中,FTL 136可以周期性地检查数据是否被改变。
[0138] 在一个实施例中,FTL 136可以通过轮询方法检查数据是否被改变。
[0139] 图10B和10C示出了已经在标记区域1004中执行了标记之后,以从第八映射数据开始的缓存顺序将映射数据缓存到第一高速缓存区域302中。
[0140] 具体地,图10B示出了第八映射数据被缓存在第一高速缓存区域302中,并且虚拟数据在标记区域1004内尚未被改变。
[0141] 具体地,图10C示出了第七映射数据被进一步缓存在第一高速缓存区域302内的标记区域1004中,因此标记区域1004的虚拟数据被改变为第七映射数据。当确定存储在标记区域1004中的数据已经被改变为映射数据时,它可以指示根据在步骤S802处确定的缓存顺序来缓存第八映射数据。
[0142] 因此,当检查存储在标记区域1004中的数据的改变时,FTL 136可以在步骤S810处访问高速缓存146以获取第八映射数据或请求映射数据。
[0143] 图11是示出了根据一个实施例的包括控制器130的存储器系统110的操作的流程图。
[0144] 在步骤S1102处,FTL 136可以在从存储器装置150请求映射区段之前确定缓存顺序。
[0145] 如上所述,FTL 136可以将缓存顺序设置为多个映射数据在请求映射区段中所处的顺序或该顺序的反向顺序。
[0146] 在步骤S1104处,FTL 136可以向存储器接口142提供描述符,该描述符请求包括请求映射数据的请求映射区段。描述符可以包括指示存储器装置150内的请求映射区段的存储位置的物理地址,以及指示第一高速缓存区域302以及确定的缓存顺序的高速缓存地址。
[0147] 在步骤S1106处,FTL 136可以根据高速缓存146中的缓存顺序,将要在请求映射数据之后向其中缓存后续映射数据的高速缓存区域确定为标记区域1004,并且然后标记标记区域604。可以基于确定的缓存顺序来确定要在请求映射数据之后向其中缓存后续映射数据的标记区域604。
[0148] 在步骤S1108处,FTL 136可以周期性地检查存储在标记区域1004中的数据是否被改变。在一个实施例中,FTL 136可以周期性地轮询高速缓存146。
[0149] 在步骤S1110处,存储器接口142可以响应于描述符来控制存储器装置150以读取请求映射区段。
[0150] 在步骤S1112处,存储器装置150可以响应于存储器接口142的控制来读取请求映射区段,并且在步骤S1114处将请求映射区段提供给存储器接口142。
[0151] 在步骤S1116处,存储器接口142可以以在步骤S1102处确定的缓存顺序将读取请求映射区段缓存到高速缓存146中。在一个实施例中,存储器接口142可以使用内部ECC部件(未示出)对读取映射区段执行纠错,并且以确定的缓存顺序将校正的请求映射区段缓存到高速缓存146中。
[0152] 当通过周期性检查(步骤S1108)确定标记区域1004的虚拟数据已经改变时,FTL 136可以在步骤S1118处从高速缓存146获取请求映射数据。
[0153] FTL 136可以响应于主机102的访问请求而执行步骤S1102至S1118的操作。结果,FTL 136可以获取请求映射数据,并且将包含在主机102的访问请求中的逻辑地址转换为存储器装置150的物理地址。FTL 136可以响应于访问请求而访问存储器装置150的转换后的物理地址。
[0154] 即使在FTL 136获取请求映射数据之后,存储器接口142可以对映射区段执行缓存操作,以便完全缓存整个映射区段。
[0155] 根据一个实施例,FTL 136可以在请求映射数据的同时基于请求映射数据在请求映射区段中所处的位置(例如,偏移)来确定缓存顺序。FTL 136可以标记基于所确定的缓存顺序确定的标记区域。FTL 136可以根据存储在标记区域中的数据是否改变来获取请求映射数据。
[0156] 根据一个实施例,当被包括在请求映射区段中的多个映射数据中的少于一半的映射数据被缓存时,FTL 136可以获取请求映射数据。也就是说,FTL 136可以快速地获取请求映射数据,从而提高存储器系统110的访问性能。
[0157] 图12至20是示意性地示出了根据各种实施例的图1至11的数据处理系统的应用示例的图。
[0158] 图12是示意性地示出了根据一个实施例的包括控制器的数据处理系统的图。图12示意性地示出了可以应用控制器的存储卡系统6100。
[0159] 参考图12,存储卡系统6100可以包括存储器控制器6120、存储器装置6130和连接器6110。
[0160] 更具体地,存储器控制器6120可以连接到由非易失性存储器(NVM)实现的存储器装置6130,并且被配置为访问存储器装置6130。例如,存储器控制器6120可以被配置为控制存储器装置6130的读取、写入、擦除和后台操作。存储器控制器6120可以被配置为在存储器装置6130与主机(未示出)之间提供接口,并且驱动用于控制存储器装置6130的固件。即,存储器控制器6120可以对应于参考图1描述的存储器系统110的控制器130,并且存储器装置6130可以对应于参考图1描述的存储器系统110的存储器装置150。
[0161] 因此,如图1所示,存储器控制器6120可以包括随机存取存储器(RAM)、处理器、主机接口、存储器接口和纠错部件。
[0162] 存储器控制器6120可以通过连接器6110与外部装置(例如,图1的主机102)通信。例如,如参考图1所述,存储器控制器6120可以被配置为通过各种通信协议(诸如,通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI快速(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小磁盘接口(EDSI)、集成驱动电子装置(IDE)、火线、通用闪存(UFS)、无线保真(Wi-Fi或WiFi)和蓝牙)中的一种或多种通信协议与外部装置通信。因此,存储器系统和数据处理系统可以应用于有线和/或无线电子装置,尤其是移动电子装置。
[0163] 存储器装置6130可以由非易失性存储器实现。例如,存储器装置6130可以由各种非易失性存储器装置(诸如,可擦除和可编程ROM(EPROM)、电可擦除和可编程ROM(EEPROM)、NAND闪存、NOR闪存、相变RAM(PRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)和自旋力矩转移磁RAM(STT-RAM))中的任何一种存储器装置实现。
[0164] 存储器控制器6120和存储器装置6130可以被集成到单个半导体器件中。例如,存储器控制器6120和存储器装置6130可以被集成以形成固态驱动器(SSD)。在另一实施例中,存储器控制器6120和存储器装置6130可以形成存储卡(诸如,PC卡(例如,个人计算机存储卡国际协会(PCMCIA)))、紧凑型闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD和SDHC)和/或通用闪存(UFS)。
[0165] 图13是示意性地示出了根据一个实施例的包括控制器的数据处理系统6200的另一示例的图。
[0166] 参考图13,数据处理系统6200可以包括具有一个或多个非易失性存储器(NVM)的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。如参考图1所述,数据处理系统6200可以用作存储介质(例如,存储卡(CF、SD、微型SD等)或USB装置)。存储器装置6230可以对应于图1所示的存储器系统110中的存储器装置150,并且存储器控制器6220可以对应于图1所示的存储器系统110中的控制器130。
[0167] 存储器控制器6220可以响应于主机6210的请求来控制对存储器装置6230的读取、写入或擦除操作,并且存储器控制器6220可以包括一个或多个中央处理单元(CPU)6221、缓冲存储器(诸如,随机存取存储器(RAM)6222)、主机接口6224和存储器接口(诸如,NVM接口6225)。
[0168] CPU 6221可以控制对存储器装置6230的整体操作,例如,读取、写入、文件系统管理和坏页面管理操作。可以根据CPU 6221的控制来操作RAM 6222,并且将其用作工作存储器、缓冲存储器或高速缓存存储器。当RAM 6222被用作工作存储器时,由CPU 6221处理的数据可以暂时存储在RAM 6222中。当RAM 6222被用作缓冲存储器时,RAM 6222可以用于缓冲从主机6210传送到存储器装置6230的数据或者从存储器装置6230传送到主机6210的数据。当RAM 6222被用作高速缓存存储器时,RAM 6222可以辅助存储器装置6230以高速进行操作。
[0169] 存储器控制器6220可以通过主机接口6224与主机6210交换数据,并且通过NVM接口6225与存储器装置6230交换数据。主机接口6224可以通过并行高级技术附件(PATA)总线、串行高级技术附件(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、外围部件互连-快速(PCIe)或NAND接口连接到主机6210。存储器控制器6220可以具有利用诸如无线保真(WiFi)或长期演进(LTE)的移动通信协议的无线通信功能。存储器控制器6220可以连接到外部装置(例如,主机6210或另一外部装置),然后与外部装置交换数据。具体地,由于存储器控制器6220被配置为通过各种通信协议中的一个或多个通信协议与外部装置通信,所以存储器系统和数据处理系统可以应用于有线和/或无线电子装置,尤其是移动电子装置。
[0170] 图14是示意性地示出根据一个实施例的包括控制器的数据处理系统的另一示例的图。图14示意性地示出了可以应用存储器系统的固态驱动器(SSD)6300。
[0171] 参考图14,SSD 6300可以包括控制器6320和存储器装置6340,存储器装置6340包括多个非易失性存储器(NVM)。控制器6320可以对应于图1的存储器系统110中的控制器130,并且存储器装置6340可以对应于图1的存储器系统中的存储器装置150。
[0172] 更具体地,控制器6320可以通过与存储器装置6340中的相应组NVM相关联的多个信道CH1至Chi连接到存储器装置6340。控制器6320可以包括一个或多个处理器6321、主机接口6324、缓冲存储器6325以及存储器接口(例如,非易失性存储器接口6326)。
[0173] 缓冲存储器6325可以暂时地存储从主机6310提供的数据或从被包括在存储器装置6340中的多个闪存NVM提供的数据,或者暂时存储多个闪存NVM的元数据(例如,包括映射表的映射数据)。缓冲存储器6325可以由各种易失性存储器(诸如,动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM和图形RAM(GRAM))或非易失性存储器(诸如,铁电RAM(FRAM)、电阻RAM(RRAM或ReRAM)、自旋转移力矩磁RAM(STT-MRAM)和相变RAM(PRAM))中的任何存储器来实现。作为示例,图10示出了缓冲存储器6325存在于控制器6320中。然而,缓冲存储器6325可以在控制器6320外部。
[0174] 主机接口6324可以提供与外部装置(例如,主机6310)的接口功能,并且非易失性存储器接口6326可以提供与通过多个信道连接的存储器装置6340的接口功能。
[0175] 此外,可以提供应用了图1的存储器系统110的多个SSD 6300以体现数据处理系统(例如,独立磁盘冗余阵列(RAID)系统)。RAID系统可以包括多个SSD 6300以及用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可以根据多个RAID级别(即,从SSD 6300中的主机6310提供的写入命令的RAID级别信息)选择一个或多个存储器系统或SSD 6300,并且将与写入命令相对应的数据输出到所选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取命令时,RAID控制器可以根据多个RAID级别(即,从SSD 6300中的主机6310提供的读取命令的RAID级别信息)选择一个或多个存储器系统或SSD 6300,并且将从所选择的SSD 6300读取的数据提供给主机6310。
[0176] 图15是示意性地示出了根据一个实施例的包括控制器的数据处理系统的另一示例的图。图15示意性地示出了可以应用存储器系统的嵌入式多媒体卡(eMMC)6400。
[0177] 参考图15,eMMC 6400可以包括控制器6430和由一个或多个NAND闪存实现的存储器装置6440。控制器6430可以对应于图1的存储器系统110中的控制器130,并且存储器装置6440可以对应于图1的存储器系统110中的存储器装置150。
[0178] 更具体地,控制器6430可以通过多个信道连接到存储器装置6440。控制器6430可以包括一个或多个核6432、主机接口(I/F)6431和存储器接口(例如,NAND接口(I/F))6433。
[0179] 核6432可以控制eMMC 6400的整体操作,主机接口6431可以提供控制器6430与主机6410之间的接口功能,并且NAND接口6433可以提供存储器装置6440与控制器6430之间的接口功能。例如,主机接口6431可以用作并行接口(例如,如参考图1所述的MMC接口)。此外,主机接口6431可以用作串行接口(例如,超高速(UHS)-I和/或UHS-II接口)。
[0180] 如上所述,已经参考图12至15描述的存储器控制器6120、存储器控制器6220、控制器6320和控制器6430中的每个控制器可以包括一个或多个处理器和一个或多个存储器元件。处理器中的每个处理器可以确定缓存顺序,并且在请求映射数据被缓存之后要向其中缓存映射数据的高速缓存区域中标记数据,同时请求映射数据。然后,处理器可以检查标记的数据是否被改变,并且即使在包括请求映射数据的映射区段的一半映射区段被完全缓存之前获取请求映射数据,这使得可以提高存储器系统的访问性能。
[0181] 图16至19是示意性地示出根据一个或多个实施例的包括存储器系统的数据处理系统的其它示例的图。图16至19示意性地示出了可以应用存储器系统的通用闪存(UFS)系统。
[0182] 参考图1至15描述的根据各种实施例的存储器系统可以应用于参考图16至19描述的UFS。
[0183] 参考图16至19,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卡。
[0184] 相应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中,可以以参考图13至15描述的数据处理系统6200、SSD 6300或eMMC 6400的形式实现UFS装置6520、6620、6720和6820,并且可以以参考图12描述的存储卡系统6100的形式实现UFS卡6530、6630、6730和6830。
[0185] 此外,在UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可以通过UFS接口(例如,MIPI(移动行业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议))彼此通信。此外,UFS装置
6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可以通过除UFS协议之外的各种协议(例如,通用存储总线(USB)闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你SD和/或微型SD)彼此通信。
[0186] 在图16中所示的UFS系统6500中,主机6510、UFS装置6520和UFS卡6530中的每个可以包括统一协议。主机6510可以执行切换操作以便与UFS装置6520和UFS卡6530通信。具体地,主机6510可以通过链路层切换(例如,符合统一协议的L3切换)与UFS装置6520或UFS卡6530通信。UFS装置6520和UFS卡6530可以通过主机6510的符合统一协议的链路层切换来彼此通信。在图16的实施例中,作为示例示出了其中一个UFS装置6520和一个UFS卡6530连接到主机6510的配置。然而,在另一实施例中,多个UFS装置和UFS卡可以并行或以星形的形式连接到主机6510,并且多个UFS卡可以并行或以星形的形式连接到UFS装置6520,或者串行或以链的形式连接到UFS装置6520。
[0187] 在图17中所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可以包括统一协议,并且主机6610可以通过执行切换操作的切换模块6640(例如,通过执行符合统一协议的链路层切换(例如L3切换)的切换模块6640)与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可以通过符合统一协议的切换模块6640的链路层切换来彼此通信。在图17的实施例中,作为示例示出了其中一个UFS装置6620和一个UFS卡6630连接到切换模块6640的配置。然而,在另一实施例中,多个UFS装置和UFS卡可以并行或以星形的形式连接到切换模块6640,并且多个UFS卡可以串行或以链的形式连接到UFS装置6620。
[0188] 在图18中示出的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可以包括统一协议。主机6710可以通过执行切换操作的切换模块6740(例如,通过执行符合统一协议的链路层切换(例如,L3切换)的切换模块6740)与UFS装置6720或UFS卡6730通信。UFS装置6720和UFS卡6730可以通过符合统一协议的切换模块6740的链路层切换彼此通信,并且切换模块6740可以与UFS装置6720作为一个模块被集成在UFS装置6720内部或外部。在图18的实施例中,作为示例示出了其中一个UFS装置6720和一个UFS卡6730连接到切换模块
6740的配置。然而,在另一实施例中,均包括切换模块6740和UFS装置6720的多个模块可以并行或以星形的形式连接到主机6710,或者串行或以链的形式彼此连接。此外,多个UFS卡可以并行或以星形的形式连接到UFS装置6720。
[0189] 在图19中所示的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个可以包括M-PHY和统一协议。UFS装置6820可以执行切换操作以便与主机6810和UFS卡6830通信。具体地,UFS装置6820可以通过在用于与主机6810通信的M-PHY和统一协议模块和用于与UFS卡6830通信的M-PHY和统一协议模块之间的切换操作(例如,通过目标标识符(ID)切换操作)来与主机6810或UFS卡6830通信。主机6810和UFS卡6830可以通过UFS装置6820的M-PHY与统一协议之间的目标ID切换来彼此通信。在图19的实施例中,作为示例示出了其中一个UFS装置6820连接到主机6810并且一个UFS卡6830连接到UFS装置6820的配置。然而,在另一实施例中,多个UFS装置可以并行或以星形的形式连接到主机6810,或者串行或以链的形式连接到主机6810,并且多个UFS卡可以并行或以星形的形式连接到UFS装置6820,或者串行或以链的形式连接到UFS装置6820。
[0190] 图20是示意性地示出了根据一个实施例的包括存储器系统的数据处理系统的另一示例的图。图20是示意性地示出了可以应用存储器系统的用户系统6900的图。
[0191] 参考图20,用户系统6900可以包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940和存储模块6950。
[0192] 更具体地,应用处理器6930可以驱动被包括在用户系统6900(例如,操作系统(OS))中的部件,并且包括对被包括在用户系统6900中的部件进行控制的控制器、接口和图形引擎。应用处理器6930可以被提供为片上系统(SoC)。
[0193] 存储器模块6920可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920可以包括易失性随机存取存储器(RAM)(诸如,动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR3SDRAM或LPDDR3SDRAM)或者非易失性RAM(诸如,相变RAM(PRAM)、电阻RAM(ReRAM)、磁阻RAM(MRAM)或铁电RAM(FRAM))。例如,可以基于堆叠式封装(PoP)来封装和安装应用处理器6930和存储器模块6920。
[0194] 网络模块6940可以与外部装置通信。例如,网络模块6940不仅可以支持有线通信,而且可以支持各种无线通信协议(诸如,码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(Wimax)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI)),从而与有线/无线电子装置或特别是移动电子装置通信。因此,根据本发明的实施例的存储器系统和数据处理系统可以应用于有线/无线电子装置。网络模块6940可以被包括在应用处理器6930中。
[0195] 存储模块6950可以存储数据(例如,从应用处理器6930接收的数据),然后可以将存储的数据发送到应用处理器6930。存储模块6950可以由非易失性半导体存储器装置(诸如,相变RAM(PRAM)、磁RAM(MRAM)、电阻RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存)实现,并且被提供为可移除存储介质(诸如,用户系统6900的存储卡或外部驱动器)。存储模块6950可以对应于参考图1描述的存储器系统110。此外,存储模块6950可以被实现为如上参考图14至19所述的SSD、eMMC和UFS。
[0196] 在一个实施例中,存储模块6950可以包括执行以下动作的装置:确定缓存顺序,在请求映射数据被缓存之后要向其中缓存映射数据的高速缓存区域中标记数据,并且检查标记的数据是否被改变,以便快速地获取请求映射数据。
[0197] 用户接口6910可以包括一个或多个接口,用于向应用处理器6930输入数据或命令或者将数据输出到外部装置。例如,用户接口6910可以包括键盘、小键盘、按钮、触摸面板、触摸屏触摸板、触摸球、相机、麦克陀螺仪传感器、振动传感器和压电元件,以及用户输出接口(诸如,液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电动机)。
[0198] 此外,当图1的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可以控制移动电子装置的整体操作,并且网络模块6940可以用作用于控制与外部装置的有线和/或无线通信的通信模块。用户接口6910可以在移动电子装置的显示/触摸模块上显示由处理器6930处理的数据,或者支持从触摸面板接收数据的功能。
[0199] 根据本发明的实施例,提供了可以通过从存储器装置快速地获取映射数据来改善存储器系统的访问性能的控制器,以及其操作方法。
[0200] 尽管已经说明和描述了各种实施例,但是根据本公开,对于本领域技术人员来说明显的是,在不脱离所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和修改
相关专利内容
标题 发布/更新时间 阅读量
控制器 2020-05-13 750
一种具有锁止控制机构的室内控制器 2020-05-11 757
压路机左右手油门联动分配控制器 2020-05-11 125
高集成控制器 2020-05-11 504
一种无级自锁手油门控制器 2020-05-11 793
NFC控制器 2020-05-13 472
搅拌车控制器 2020-05-12 13
软轴控制器 2020-05-11 529
压力控制器 2020-05-11 248
汽车控制器支座 2020-05-12 100
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈