存储器系统、操作存储器系统的方法以及数据处理系统

文档序号:1003493 发布日期:2020-10-23 浏览:24次 >En<

阅读说明:本技术 存储器系统、操作存储器系统的方法以及数据处理系统 (Memory system, method of operating memory system, and data processing system ) 是由 姜寭美 于 2019-12-26 设计创作,主要内容包括:本公开涉及存储器系统、操作存储器系统的方法以及数据处理系统。存储器系统包括:适用于存储映射信息的存储器设备;以及控制器,适用于将映射信息的一部分存储在映射高速缓存中,并且基于存储在映射高速缓存中的映射信息来访问存储器设备,或基于与来自主机的访问请求一起选择性地被提供的物理地址来访问存储器设备,其中映射高速缓存包括适用于存储与写入命令对应的映射信息的写入映射高速缓存,以及适用于存储与读取命令对应的映射信息的读取映射高速缓存,并且其中控制器向主机提供从读取映射高速缓存输出的映射信息。(The present disclosure relates to memory systems, methods of operating memory systems, and data processing systems. The memory system includes: a memory device adapted to store mapping information; and a controller adapted to store a portion of the mapping information in a mapping cache and to access the memory device based on the mapping information stored in the mapping cache or based on a physical address selectively provided with an access request from the host, wherein the mapping cache includes a write mapping cache adapted to store mapping information corresponding to a write command and a read mapping cache adapted to store mapping information corresponding to a read command, and wherein the controller provides the mapping information output from the read mapping cache to the host.)

存储器系统、操作存储器系统的方法以及数据处理系统

相关申请的交叉引用

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

技术领域

本公开的实施例涉及存储器系统和操作存储器系统的方法,并且更具体地涉及用于从包括在数据处理系统中的存储器系统向主机或计算设备提供映射信息的装置和方法。

背景技术

计算机环境范例已转移到无处不在的计算,这使得计算系统能够随时随地被使用。结果,诸如移动电话、数码相机和膝上型计算机的便携式电子设备的使用迅速增加。这些便携式电子设备各自使用具有一个或多个存储器设备的存储器系统来存储数据。存储器系统可以用作便携式电子设备的主存储器系统或辅助存储器系统。

由于存储器系统没有机械驱动部分,因此它们提供诸如出色的稳定性和耐用性、高信息访问速度以及低功耗的优点。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器设备、具有各种接口的存储器卡、固态驱动器(SSD)等。

发明内容

本公开的实施例针对能够通过使用主机的资源来高效地处理数据的存储器系统、以及操作存储器系统的方法。

根据本发明的一个实施例,存储器系统包括:适用于存储映射信息的存储器设备;以及控制器,适用于将映射信息的一部分存储在映射高速缓存中,并且基于存储在映射高速缓存中的映射信息来访问存储器设备,或基于与来自主机的访问请求一起选择性地被提供的物理地址来访问存储器设备,其中映射高速缓存包括适用于存储与写入命令对应的映射信息的写入映射高速缓存,以及适用于存储与读取命令对应的映射信息的读取映射高速缓存,并且其中控制器向主机提供从读取映射高速缓存输出的映射信息。

根据本发明的另一实施例,用于操作存储器系统的方法包括:将映射信息存储在存储器设备中;以及将映射信息的一部分存储在映射高速缓存中;基于存储在映射高速缓存中的映射信息来访问存储器设备,或基于与来自主机的访问请求一起选择性地被提供的物理地址来访问存储器设备;当访问请求针对写入操作时,将与写入操作对应的映射信息存储在写入映射高速缓存中,以及当访问请求针对读取操作时,将与读取操作对应的映射信息存储在读取映射高速缓存中;以及向主机提供从读取映射高速缓存输出的映射信息。

根据本发明的又一实施例,数据处理系统包括:适用于存储映射信息并基于映射信息访问用户数据的存储器系统;以及主机,适用于从存储器系统接收映射信息,将所接收的映射信息存储在主机存储器中,并基于映射信息向存储器系统提供访问请求,其中存储器系统包括:映射高速缓存;以及适用于存储映射信息的一部分的控制器,其中映射高速缓存包括:适用于存储与写入命令对应的映射信息的写入映射高速缓存、以及适用于存储与读取命令对应的映射信息的读取映射高速缓存;并且其中控制器向主机提供从读取映射高速缓存输出的映射信息。

附图说明

图1图示了根据本公开的一个实施例的包括存储器系统的数据处理系统。

图2图示了根据本公开的一个实施例的数据处理系统。

图3和图4图示了根据本公开的一个实施例的其中主机将元数据存储在主机存储器中的一个示例。

图5图示了根据本公开的一个实施例的在数据处理系统中的主机与存储器系统之间的事务的第一示例。

图6是描述根据本公开的一个实施例的主机和存储器系统的第一操作的流程图。

图7是描述根据本公开的一个实施例的存储器系统的操作的流程图。

图8A图示了根据本公开的实施例的映射高速缓存的结构。

图8B是描述根据本公开的一个实施例的通过使用映射高速缓存来处理映射信息的操作的流程图。

图9至图14B图示了根据本公开的实施例的映射信息处理操作。

图15图示了根据本公开的一个实施例的在数据处理系统中的主机与存储器系统之间的事务的第二示例。

图16图示了根据本公开的一个实施例的主机和存储器系统的第二操作。

图17图示了根据本公开的一个实施例的主机和存储器系统的第三操作。

图18图示了根据本公开的一个实施例的主机和存储器系统的第四操作。

具体实施方式

下面将参考附图更详细地描述本公开的示例性实施例。然而,本发明可以以不同的形式体现,并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例以使得本公开将是透彻和完整的,并将向本领域技术人员充分传达本发明的范围。贯穿本公开,在本发明的各个附图和实施例中,相同的附图标记指代相同的部分。

图1图示了根据本公开的一个实施例的数据处理系统100。

参考图1,数据处理系统100可以包括主机102和存储器系统110。

主机102可以包括各种便携式电子设备中的任何便携式电子设备、或各种非便携式电子设备中的任何非便携式电子设备。便携式电子设备可以包括移动电话、MP3播放器、膝上型计算机等,并且非便携式电子设备可以包括台式计算机、游戏机、电视(TV)、投影仪等。

主机102可以包括至少一个操作系统(OS),其可以管理和控制主机102的整体功能和操作,并使用数据处理系统100或存储器系统110提供主机102和用户之间的操作。OS可以支持与使用目的和用户的使用对应的功能和操作。例如,根据主机102的移动性,可以将OS划分为通用OS和移动OS。根据用户的环境,可以将通用OS划分为个人OS和企业OS。

存储器系统110可以响应于主机102的请求,而操作来存储用于主机102的数据。存储器系统110可以包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用存储总线(USB)设备、通用闪速存储(UFS)设备、紧凑型闪速(CF)卡、智能媒体卡(SMC)、个人计算机存储器卡国际协会(PCMCIA)卡、存储器棒等中的任一者。MMC可以包括嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)、微型MMC等。SD卡可以包括迷你SD卡、微型SD卡等。

存储器系统110可以利用各种类型的存储设备来实现。这样的存储设备可以包括但不限于:诸如动态随机访问存储器(DRAM)和静态RAM(SRAM)的易失性存储器设备;以及诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电式RAM(FRAM)、相变式RAM(PRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM或ReRAM)、闪速存储器等的非易失性存储器设备。闪速存储器可以具有3维(3D)堆叠结构。

存储器系统110可以包括控制器130和存储器设备150。

控制器130和存储器设备150可以集成到单个半导体设备中。例如,控制器130和存储器设备150可以集成为一个半导体设备,来构成固态驱动器(SSD)。当存储器系统110用作SSD时,可以改进连接到存储器系统110的主机102的操作速度。此外,控制器130和存储器设备150可以集成为一个半导体设备,来构成存储器卡。例如,控制器130和存储器设备150可以构成诸如以下的存储器卡:个人计算机存储器卡国际协会(PCMCIA)卡、紧凑型闪速(CF)卡、智能媒体(SM)卡、存储器棒、多媒体卡(MMC)(诸如尺寸减小的MMC(RS-MMC)或微型MMC)、包括迷你SD卡、微型SD卡或SDHC卡的安全数字(SD)卡、或通用闪速存储(UFS)设备。

存储器设备150可以是即使不供电也可以保持存储在其中的数据的非易失性存储器设备。存储器设备150可以在写入操作中存储由主机102提供的数据,并且在读取操作中将存储在其中的数据提供给主机102。存储器设备150可以包括多个存储器块,多个存储器块中的每一个可以包括多个页面,并且页面中的每一个可以包括耦合到字线的多个存储器单元。在一个实施例中,存储器设备150可以是闪速存储器。闪速存储器可以具有3维(3D)堆叠结构。

控制器130可以响应于来自主机102的请求而控制存储器设备150。例如,控制器130可以将从存储器设备150读取的数据提供给主机102,并且将由主机102提供的数据存储在存储器设备150中。对于该操作,控制器130可以控制存储器设备150的读取、编程(或写入)和擦除操作。

控制器130可以包括主机接口(I/F)132、处理器134、存储器I/F 142和存储器144。

主机I/F 132可以被配置为处理主机102的命令和数据,并且可以使用各种接口协议中的一个或多个与主机102通信,各种接口协议诸如为:通用串行总线(USB)、多媒体卡(MMC)、快速***组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串行附接的SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型盘接口(ESDI)、集成驱动电子设备(IDE)等。

主机I/F 132可以借助被称为主机接口层(HIL)的固件而被驱动,以与主机102交换数据。

存储器I/F 142可以用作存储器/存储接口,其用于将控制器130和存储器设备150接口连接,以使得控制器130响应于来自主机102的请求来控制存储器设备150。当存储器设备150是闪速存储器(例如,NAND闪速存储器)时,在处理器134的控制下,存储器I/F 142可以生成用于存储器设备150的控制信号,并对待提供给存储器设备150的数据进行处理。存储器I/F 142可以作为用于处理控制器130和存储器设备150之间的命令和数据的接口(例如,NAND闪速接口)来工作。具体地,存储器I/F 142可以支持控制器130和存储器设备150之间的数据传输。

可以借助被称为闪速接口层(FIL)的固件来驱动存储器I/F 142,以与存储器设备150交换数据。

处理器134可以控制存储器系统110的整体操作。处理器134可以驱动固件,以控制存储器系统110的整体操作。固件可以称为闪速转译层(FTL)。而且,处理器134可以利用微处理器或中央处理单元(CPU)来实现。

而且,控制器130可以借助使用处理器134来对存储器设备150执行后台操作。例如,对存储器设备150执行的后台操作可以包括垃圾收集(GC)操作、磨损均衡(WL)操作、映射刷新操作或坏块管理操作。

存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。

存储器144可以由易失性存储器来体现。例如,存储器144可以由静态随机访问存储器(SRAM)或动态随机访问存储器(DRAM)来体现。存储器144可以设置在控制器130之内或之外。图1例示了设置在控制器130内的存储器144。在另一实施例中,存储器144可以由外部易失性存储器来体现,该外部易失性存储器具有在存储器144和控制器130之间传输数据的存储器接口。

如上所述,存储器144可以存储在主机102和存储器设备150之间执行数据写入/读取操作所需的数据、以及当执行数据写入/读取操作时的数据。为了存储这样的数据,存储器144可以包括编程存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。

图1示出了包括映射高速缓存146的存储器144。映射高速缓存146可以存储映射信息。映射信息可以用于将逻辑地址映射到物理地址。将参考图3详细描述映射信息。映射高速缓存146可以在处理器134的控制下存储映射信息。由于映射高速缓存146具有有限的存储空间,因此它可以存储在存储器设备150中存储的映射信息中的一些。例如,映射高速缓存146可以存储用于新近处理的数据的映射信息。在另一示例中,映射高速缓存146可以存储用于频繁处理的数据的映射信息。映射高速缓存146可以根据先进先出(FIFO)方案来存储映射信息。

尽管在附图中未示出,但是控制器130还可包括错误校正码(ECC)单元和功率管理单元(PMU)。

ECC单元可以处理从存储器设备150读取的数据或待编程在存储器设备150中的数据,以检测和校正从存储器设备150读取的数据的故障比特,并且ECC单元可以包括ECC编码器和ECC解码器。

ECC编码器可以对待编程在存储器设备150中的数据执行ECC编码操作,以生成添加到数据的奇偶校验比特。数据和奇偶校验比特可以存储在存储器设备150中。当读取存储在存储器设备150中的数据时,ECC解码器可以检测并校正从存储器设备150读取的数据中包括的故障比特。

ECC单元可以借助使用以下中的一个或多个的编码调制来执行错误校正:低密度奇偶校验检查(LDPC)码、Bose-Chaudhri-Hocquenghem(BCH)码、turbo码、Reed-Solomon码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、块编码调制(BCM)等。然而,ECC单元不限于任何特定的结构。ECC单元可以包括用于错误校正的所有电路、模块、系统或设备。

PMU可以提供并管理控制器130的功率。

图2图示了根据本公开的一个实施例的图1的数据处理系统100。

特别地,在图2中更详细地描述了图1的存储器系统110中的控制器130。

参考图2,控制器130可以包括主机接口单元132、闪速转译层(FTL)单元40、存储器接口单元142和存储器144。FTL单元40可以在图1的处理器134中实现。

尽管在图2中未图示,但是根据本公开的一个实施例,图1中描述的ECC单元可以被包括在闪速转译层(FTL)单元40中。根据本公开的另一实施例,ECC单元可以被实现为控制器130中的单独的模块、电路或固件。

主机接口单元132可以与主机102交换命令和数据。例如,主机接口单元132可以包括:命令队列56,用于顺序地存储从主机102传输的命令、数据等,然后按照它们被存储的顺序将它们输出;缓冲器管理器52,能够对从命令队列56传输的命令、数据等进行分类,或者调整命令、数据等的处理顺序;以及事件队列54,用于将事件顺序地传送给FTL单元40,以处理从缓冲器管理器52传输的命令、数据等。

从主机102传输的命令和数据可以是具有相同特性并被连续传送的多个命令和数据,或者可以是具有不同特性并以混合顺序传输的多个命令和数据。例如,可以传送用于读取数据的多个命令,或者可以交替地传送读取命令和编程命令。

主机接口单元132可以首先将从主机102传输的命令、数据等顺序地存储在命令队列56中,然后主机接口单元132可以基于从主机102传输的命令、数据等的特性来预测控制器130将执行什么操作,并且可以基于预测来确定命令、数据等的处理顺序或优先级。

而且,根据从主机102传输的命令、数据等的特性,主机接口单元132中的缓冲器管理器52可以确定是否要在存储器144中存储命令、数据等,或者是否要将命令、数据等传输到闪速转译层(FTL)单元40。事件队列54可以从缓冲器管理器52接收需要由存储器系统或控制器130根据命令、数据等内部执行和处理的事件,并且然后按照接收的顺序将事件传输到FTL单元40。

根据本公开的一个实施例,FTL单元40可以包括:用于管理从事件队列54接收的事件的主机请求管理器(HRM)46;用于管理映射信息的映射管理器(MM)44;用于执行垃圾收集操作或磨损均衡操作的状态管理器42;以及用于对存储器设备150中的块执行命令的块管理器48。

例如,主机请求管理器46可以通过使用映射管理器44和块管理器48,来处理从主机接口单元132接收的读取命令和编程命令以及根据事件的请求。主机请求管理器46可以向映射管理器44发送查询请求,以检测与请求的逻辑地址对应的物理地址,并针对物理地址,通过将闪速读取命令传输到存储器接口单元142来处理读取命令。同时,主机请求管理器46可以通过将编程请求传输到块管理器48,来将数据编程在存储器设备150的空块的特定页面中,然后通过将针对编程请求的映射更新请求传输到映射管理器44,来更新用于逻辑-物理地址映射的映射信息。

在本文中,块管理器48可以将由主机请求管理器46、映射管理器44和状态管理器42请求的编程请求转换为用于存储器设备150的编程请求,以管理存储器设备150中的块。为了将图1的存储器系统110的编程或写入性能最大化,块管理器48可以收集编程请求,并且将针对多平面和一次性编程操作的闪速编程请求传输到存储器接口单元142。而且,各种未完成的闪速编程请求可以被传输到存储器接口单元142,以将多通道和多方向闪速控制器的并行处理最大化。

同时,块管理器48可以根据有效页面的数量来管理闪速块,当需要自由块时选择并删除不包括有效页面的块,并且当需要进行垃圾收集操作时选择包括最少数量的有效页面的块。为了块管理器48获取足够数量的自由块,状态管理器42可以通过从牺牲块收集有效数据、将所收集的有效数据移入空块中、并擦除存储在牺牲块中的数据,来对牺牲块执行垃圾收集操作。

当块管理器48向状态管理器42提供关于牺牲块的信息时,状态管理器42可以首先检查牺牲块的所有页面,以确定页面中的每个页面是否有效。例如,在状态管理器42标识被编程在每个页面的备用(其是带外(OOB)的)区域中的逻辑地址、并且然后将页面的实际地址与映射到从映射管理器44的查询请求获得的逻辑地址的实际地址进行比较时,可以确定每个页面的有效性。状态管理器42可以针对每个有效页面将编程请求传输到块管理器48。当编程操作完成时,映射管理器44可以更新映射表。

映射管理器44可以管理映射表,并处理由主机请求管理器46和状态管理器42生成的请求(诸如查询请求、更新请求等)。映射管理器44可以将整个映射表存储在闪速存储器中,并根据存储器144的容量来将映射项高速缓存。当在处理查询和更新请求时发生映射高速缓存错失时,映射管理器44可以将读取命令传输到存储器接口单元142,以加载存储在存储器设备150中的映射表。当映射管理器44的脏高速缓存块的数量超过预定阈值时,映射管理器44可以将编程请求传输到块管理器48,以创建干净高速缓存块并将脏映射表存储在存储器设备150中。

同时,当执行垃圾收集操作时,主机请求管理器46可以针对页面的相同逻辑地址来对最新版本的数据进行编程,并在状态管理器42复制有效页面时同时发出更新请求。当状态管理器42在有效页面的复制没有正常完成之前请求映射更新时,映射管理器44可以不更新映射表。映射管理器44可以仅在最新的映射表仍表示先前的实际地址时才执行映射更新来确保准确性。

存储器设备150可以包括多个存储器块,该多个存储器块可以包括存储一比特数据的单层级单元(SLC)存储器块和/或存储多比特数据的多层级单元(MLC)存储器块。SLC存储器块可以包括由在一个存储单元中存储一比特数据的存储器单元实现的多个页面。SLC存储器块可以具有高的数据处理速度和高的耐用性。另一方面,MLC存储器块可以包括由在一个存储器单元中存储多比特数据(例如,两个或更多比特的数据)的存储器单元实现的多个页面。MLC存储器块可以具有比SLC存储器块更大的数据存储空间。换言之,MLC存储器块可以是高度集成的。

存储器设备150不仅可以包括MLC存储器块(其中每个MLC存储器块包括由能够在一个存储器单元中存储两比特数据的存储器单元实现的多个页面),而且还可以包括三层级单元(TLC)存储器块(其中每个TLC存储器块包括由能够在一个存储器单元中存储三比特数据的存储器单元实现的多个页面)、四层级单元(QLC)存储器块(其中每个QLC存储器块包括由能够在一个存储器单元中存储四比特数据的存储器单元实现的多个页面)、和/或多个层级单元存储器块(其中每个多个层级单元存储器块包括由能够在一个存储器单元中存储五比特或更多比特数据的存储器单元实现的多个页面)。

根据本公开的一个实施例,包括在存储器系统110中的控制器130可以检查多个通道(或通路)的状态,特别是检查包括在存储器设备150中的多个存储器裸片和控制器130之间的通道(或通路)状态;或者多个存储器系统中的任意存储器系统(例如,主存储器系统)的控制器可以检查用于多个存储器系统的多个通道(或通路)的状态,特别是检查主存储器系统与其他存储器系统(即,从存储器系统)之间的通道(或通路)的状态。换言之,可以检查用于存储器设备150的存储器裸片的多个通道(或通路)或用于多个存储器系统的多个通道(或通路)是否处于繁忙状态、就绪状态、活动状态、空闲状态、正常状态、异常状态等中的任一个。在本文中,根据本公开的实施例,具有正常状态中的就绪状态或空闲状态的通道(或通路)可以被确定为最佳通道(或通路)。具体地,在本发明的实施例中,在多个通道(或通路)中,可以将可用容量在正常范围中的通道(或通路)或操作水平在正常范围中的通道(或通路)确定为最佳通道。在本文中,可以基于通道(或通路)的操作时钟、功率水平、电流/电压水平、操作定时、温度水平等,来确定通道(或通路)的操作水平。

此外,根据本公开的一个实施例,作为一个示例,假设与从主机102接收的多个写入命令对应的写入数据被存储在控制器130的存储器144中包括的缓冲器/高速缓存中,并且然后在编程操作中,存储在缓冲器/高速缓存中的数据被编程并存储在存储器设备150中包括的多个存储器块中。此时,根据用于将数据编程到存储器设备150中的编程操作,来更新映射信息,并且将经更新的映射信息存储在存储器设备150中包括的多个存储器块中。简言之,作为一个示例,描述了响应于从主机102接收的多个写入命令而执行编程操作的情况。

根据本公开的一个实施例,提供了以下情况:检查与来自主机102、针对存储在存储器设备150中的数据的多个读取命令对应的数据的映射信息,从存储器设备150读取与读取命令对应的数据,将所读取的数据存储在控制器130的存储器144中包括的缓冲器/高速缓存中,并且当从主机102提供存储在缓冲器/高速缓存中的数据时,执行与从主机102接收的读取命令对应的读取操作。

此外,根据本公开的实施例,提供了以下情况:从主机102接收针对存储器设备150中包括的存储器块的多个擦除命令,检查与擦除命令对应的存储器块,擦除存储在所检查的存储器块中的数据,更新与所擦除的数据对应的映射信息,并且然后将经更新的映射信息存储在存储器设备150中包括的存储器块中。简言之,作为示例,考虑并且描述了执行与从主机102接收的多个擦除命令对应的擦除操作的情况。

此外,根据本公开的一个实施例,提供了以下情况:如上所述,从主机102接收多个写入命令、多个读取命令和多个擦除命令,并基于所接收的命令,执行多个编程操作、多个读取操作和多个擦除操作。

此外,为了便于描述,作为示例,描述了控制器130可以在根据本公开实施例的存储器系统110中执行命令操作的情况。然而,如上所述,控制器130中包括的处理器134可以使用FTL来执行命令操作。例如,根据本公开的实施例,控制器130可以将与从主机102接收的写入命令对应的用户数据和元数据编程并存储在存储器设备150中包括的多个存储器块中的任意存储器块中,从存储器设备150中包括的多个存储器块中的任意存储器块中读取与从主机102接收的读取命令对应的用户数据和元数据,并向主机102提供所读取的用户数据和元数据,或者从存储器设备150中包括的多个存储器块中的任意存储器块中擦除与从主机102接收的擦除命令对应的用户数据和元数据。

在本文中,元数据可以包括关于在编程操作中存储在存储器块中的数据的逻辑至物理(L2P)信息和物理至逻辑(P2L)信息。元数据还可以包括关于与从主机102接收的命令对应的命令数据的信息、关于与命令对应的命令操作的信息、关于对其执行命令操作的存储器设备150的存储器块的信息、以及与命令操作对应的映射信息。换言之,元数据可以包括与从主机102接收的命令对应的除用户数据以外的所有其他信息和数据。

当控制器130执行与从主机102接收的多个命令对应的多个命令操作时(例如,当控制器130从主机102接收多个写入命令时),控制器130可以执行与写入命令对应的编程操作。在这种情况下,可以将与写入命令对应的用户数据写入并存储在存储器设备150的存储器块中,例如,写入并存储在存储器设备150的存储器块之中的、其中已执行擦除操作的空存储器块、开放存储器块或自由存储器块中。用于在存储器块中存储的用户数据的逻辑地址和物理地址之间的映射信息(即,存储逻辑信息的L2P映射表),以及用于存储用户数据的存储器块的物理地址和逻辑地址之间的映射信息(即,存储物理信息的P2L映射表),被写入并存储在存储器设备150的存储器块之中的空存储器块、开放存储器块或自由存储器块中。

在本文中,当控制器130从主机102接收写入命令时,控制器130可以将与写入命令对应的用户数据写入并存储在存储器块中,并且将元数据存储在存储器块中,该元数据包括关于存储在存储器块中的用户数据的映射信息。具体地,控制器130可以生成并更新元数据的元区段(即,映射信息的映射区段中的L2P区段和P2L区段),并且然后将它们存储在存储器设备150的存储器块中。在本文中,存储在存储器设备150的存储器块中的映射区段可以被加载到控制器130中所包括的存储器144中,以更新映射区段。

当从主机102接收多个写入命令时,可以检查用于存储器设备150的多个通道(或通路)的状态,特别是可以检查耦合到存储器设备150中包括的多个存储器裸片的通道(或通路)的状态,然后可以独立地确定与通道(或通路)的状态对应的最佳传输通道(或传输通路)和最佳接收通道(或接收通路)。根据本公开的实施例,与写入命令对应的用户数据和元数据可以借助最佳传输通道(或传输通路)传输至存储器设备150的对应存储器裸片,并通过执行编程操作来存储,并且对存储器设备150的对应存储器裸片进行的编程操作的结果可以借助最佳接收通道(或接收通路)从存储器设备150的对应存储器裸片被接收,并被提供给主机102。

此外,当控制器130从主机102接收多个读取命令时,控制器130可以从存储器设备150读取与读取命令对应的数据,将所读取的数据存储在控制器130的存储器144中所包括的缓冲器/高速缓存中,并将存储在缓冲器/高速缓存中的数据提供给主机102。

当控制器130从主机102接收多个读取命令时,可以检查用于存储器设备150的通道(或通路)的状态,特别是可以检查与存储器设备150中包括的存储器裸片耦合的通道(或通路)的状态,然后可以独立地确定与通道(或通路)的状态对应的最佳传输通道(或传输通路)和最佳接收通道(或接收通路)。根据本公开的实施例,针对与读取命令对应的用户数据和元数据的读取请求可以借助最佳传输通道(或传输通路)传输到存储器设备150的对应存储器裸片,以执行读取操作,并且对存储器设备150的对应存储器裸片进行的读取操作的结果(即,与读取命令对应的用户数据和元数据)可以借助最佳接收通道(或接收通路)从存储器设备150的对应存储器裸片被接收,并被提供给主机102。

另外,当控制器130从主机102接收多个擦除命令时,控制器130可以检测存储器设备150的与擦除命令对应的存储器块,然后对检测到的存储器块执行擦除操作。

根据本公开的实施例,当从主机102接收多个擦除命令时,可以检查用于存储器设备150的通道(或通路)的状态,特别是可以检查耦合到存储器设备150中包括的存储器裸片的通道(或通路)的状态,并且然后可以独立地确定与通道(或通路)的状态对应的最佳传输通道(或传输通路)和最佳接收通道(或接收通路)。根据本公开的实施例,可以借助最佳传输通道(或传输通路),将针对存储器设备150的存储器裸片中与擦除命令对应的存储器块的擦除请求传输到存储器设备150的对应存储器裸片,以执行擦除操作,并且对存储器设备150的对应存储器裸片进行的擦除操作的结果还可以借助最佳接收通道(或接收通路)从存储器设备150的对应存储器裸片被接收,并被提供给主机102。

在存储器系统110中,当从主机102接收多个命令(例如,多个写入命令、多个读取命令和多个擦除命令)时,特别是当如上所述顺序地且同时地接收多个命令时,可以检查用于存储器设备150的通道(或通路)的状态,并且然后可以独立地确定与通道(或通路)的状态对应的最佳传输通道(或传输通路)和最佳接收通道(或接收通路),并且可以请求存储器设备150借助最佳传输通道(或传输通路)执行与多个命令对应的命令操作,特别是可以请求存储器设备150在存储器设备150中包括的多个存储器裸片中执行对应的命令操作,并且可以借助最佳接收通道(或接收通路)从存储器设备150的存储器裸片接收命令操作的操作结果。根据本公开的实施例,通过将借助最佳传输通道(或传输通路)传输的命令与借助最佳接收通道(或接收通路)接收的操作结果进行匹配,存储器系统110可以向主机102提供对从主机102接收的命令的响应。

控制器130可以检查用于存储器设备150的多个通道(或通路)的状态,特别是存储器设备150中包括的多个存储器裸片和控制器130之间的通道(或通路)的状态,并且然后控制器130可以独立地确定用于存储器设备150的最佳传输通道(或传输通路)和最佳接收通道(或接收通路)。控制器130还可检查用于多个存储器系统的多个通道(或通路)的状态,特别是主存储器系统和其他存储器系统之间的通道(或通路)状态,例如主存储器系统和从存储器系统之间的通道(或通路)状态,并且然后控制器130可以独立地确定用于存储器系统的最佳传输通道(或传输通路)以及最佳接收通道(或接收通路)。换言之,根据本公开的实施例,控制器130可以检查用于存储器设备150的存储器裸片的通道(或通路),或者检查用于存储器系统的通道(或通路)的状态是否是繁忙状态、就绪状态、活动状态、空闲状态、正常状态或异常状态。例如,控制器130可以将正常状态中的就绪状态或空闲状态的通道(或通路)确定为最佳通道(或通路)。具体地,根据本公开的实施例,在通道(或通路)之中,其可用容量在正常范围中并且其操作水平在正常范围中的通道(或通路)可以被确定为最佳通道。在本文中,可以基于通道(或通路)的操作时钟、功率水平、电流/电压水平、操作定时、温度水平等,来确定通道(或通路)的操作水平。另外,根据本公开的实施例,可以基于每个存储器系统的信息(例如,每个存储器系统的命令操作的能力,即,被包括在每个存储器系统中的控制器130和存储器设备150中的命令操作的能力),来确定多个存储器系统之中的主存储器系统。能力可以包括命令操作的性能能力、处理能力、处理速度和处理时延。在本文中,可以借助存储器系统之间的竞争来确定主存储器系统。例如,可以基于主机102与存储器系统之间的耦合排名、借助竞争来确定主存储器系统。

为了在存储器设备150中存储或读取主机102请求的数据,存储器系统110可以将由主机102使用的文件系统映射到存储器设备150的存储空间。例如,根据主机102所使用的文件系统的与数据对应的地址可以被称为“逻辑地址”或“逻辑块地址”,并且存储器设备150的存储空间中的与数据对应的地址可以被称为“物理地址”或“物理块地址”。

当主机102利用读取命令将逻辑地址传输到存储器系统110时,存储器系统110可以搜索与逻辑地址对应的物理地址,并且然后输出被存储在与搜索到的物理地址对应的存储空间中的数据。在该操作期间,在存储器系统110搜索与从主机102传输的逻辑地址对应的物理地址的同时,可以执行映射。

当主机102提前知道所映射的数据(在下文中称为“映射信息”)时,可以减少存储器系统110输出与由主机102传输的读取命令对应的数据所需的时间。

图3和图4图示根据本公开的一个实施例的其中主机将元数据存储在主机存储器中的一个示例。参考图3和图4,将描述其中主机102将元数据存储在主机存储器106中的一个示例。

参考图3,主机102可以包括主机处理器104、主机存储器106和主机控制器接口108。存储器系统110可以包括控制器130和存储器设备150。控制器130可以包括主机接口132、逻辑块160、存储器接口142和存储器144。参考图3描述的控制器130和存储器设备150可以对应于参考图1和图2描述的控制器130和存储器设备150。

在下文中,将基于图3所示的控制器130和存储器设备150与参考图1和图2描述的控制器130和存储器设备150之间的技术差异来提供描述。特别地,图3的控制器130中的逻辑块160可以对应于上文参考图2描述的闪速转译层(FTL)单元40。然而,根据一些实施例,控制器130中的逻辑块160可以进一步执行在闪速转译层(FTL)单元40中未执行的角色和功能。

在图3中,与存储器系统110相比,主机处理器104可以具有更高的性能,并且主机存储器106可以具有更大的容量。与存储器系统110不同,主机处理器104和主机存储器106的优势可以在于:它们具有较少的空间约束,并且主机处理器104和主机存储器106的硬件可以被升级。因此,存储器系统110可以利用主机102的资源,以提高操作效率。

随着存储器系统110可以存储的数据量的增加,与存储在存储器系统110中的数据对应的元数据的量也可以增加。由于存储器系统110中的控制器130可以将元数据加载到其中的存储器144的空间有限,因此元数据量的增加可能是控制器130的操作的负担。例如,由于存储器144中的空间约束,控制器130可以加载元数据中的一些、但不是全部。当主机102访问的元数据未被包括在部分加载的元数据中、并且加载的元数据中的一些被更新时,控制器130可能必须从存储器设备150读取主机102访问的元数据,并将经更新的所加载的元数据存储在存储器设备150中。这些操作对于控制器130执行主机102所需的读取或写入操作可能是必要的,并且可能劣化存储器系统110的操作性能。

主机102中包括的主机存储器106的存储空间可以比控制器130可以使用的存储器144的存储空间大数十倍至数千倍。因此,存储器系统110可以将控制器130使用的元数据166传输到主机存储器106,使得可以将主机存储器106用作用于由存储器系统110执行的地址转译过程的高速缓存存储器。在这种情况下,主机102可以不利用命令来将逻辑地址传输到存储器系统110,并且可以基于存储在主机存储器106中的元数据166,将逻辑地址转译为物理地址,并且然后将物理地址连同命令传输到存储器系统110。因此,在这种情况下,存储器系统110可以省略用于将逻辑地址转译为物理地址的映射过程,并且基于从主机102传输的物理地址,来访问存储器设备150。结果,可以减轻控制器130使用存储器144时发生的操作负担,并因此可以显著提高存储器系统110的操作效率。

同时,即使存储器系统110将元数据166传输到主机102,存储器系统110仍可以管理(例如,更新、擦除、生成等)成为元数据166的参考的源。由于存储器系统110中的控制器130可以根据存储器设备150的操作状态来执行诸如垃圾收集操作和磨损均衡操作的后台操作、并确定存储器设备150中的物理位置(物理地址),因此可以在控制器130的控制下改变数据在存储器设备150中的物理地址。因此,存储器系统110可以负责管理成为元数据166的参考的源。

换言之,当在管理元数据166的过程中确定存储器系统110需要校正或更新传输到主机102的元数据166时,存储器系统110可以请求主机102更新元数据166。响应于存储器系统110的请求,主机102可以更新存储在主机存储器106中的元数据166。通过这种方式,可以使得存储在主机存储器106中的元数据166保持最新。因此,即使主机控制器接口108使用存储在主机存储器106中的元数据166来执行地址映射,也不会引起操作上的问题。

同时,存储在主机存储器106中的元数据166可以包括用于检测与逻辑地址对应的物理地址的映射信息。参考图2,讲逻辑地址和物理地址彼此匹配的元数据可以包括:用于检测与逻辑地址对应的物理地址的映射信息、和用于检测与物理地址对应的逻辑地址的映射信息。用于检测与物理地址对应的逻辑地址的映射信息可以主要用于存储器系统110的内部操作,并且因此当主机102在存储器系统110中存储数据或从存储器系统110读取与特定逻辑地址对应的数据时,可以不使用该映射信息。

在管理(创建、擦除、更新等)映射信息的同时,存储器系统110中的控制器130可以将映射信息存储在存储器设备150中。由于主机存储器106是易失性存储器,因此当主机102和存储器系统110中发生电源中断时,存储在主机存储器106中的元数据166可能丢失。因此,存储器系统110中的控制器130可以不仅保持存储在主机存储器106中的元数据166是最新的,而且还将最新的映射信息存储在存储器设备150中。

参考图3和图4,当元数据166被存储在主机存储器106中时,将描述主机102的用于从存储器系统110读取数据的操作。

功率可以被供应到主机102和存储器系统110,并且主机102和存储器系统110可以互锁。当主机102和存储器系统110互锁时,存储在存储器设备150中的元数据L2P MAP可以被传输到主机存储器106。

当主机处理器104生成读取命令时,读取命令可以被传输到主机控制器接口108。在接收到读取命令之后,主机控制器接口108可以将与读取命令对应的逻辑地址传输到主机存储器106。基于主机存储器106中存储的元数据L2P MAP,主机控制器接口108可以检测与逻辑地址对应的物理地址。

主机控制器接口108可以将读取命令Read CMD连同物理地址传输到存储器系统110中的控制器130。控制器130可以基于所接收的读取命令Read CMD和物理地址来访问存储器设备150。可以将存储在存储器设备150中的与物理地址对应的位置处的数据传输到主机102。

根据本公开的实施例的控制器130可以省略从主机102接收逻辑地址并搜索与逻辑地址对应的物理地址的过程。特别地,在控制器130搜索物理地址的过程中,可以省略通过访问存储器设备150来读取元数据的操作。通过这种方式,主机102读取存储在存储器系统110中的数据的过程可以变得更快。

图5图示了根据本公开的一个实施例的在数据处理系统中的主机102与存储器系统110之间的事务的第一示例。

参考图5,存储映射信息MAP INFO的主机102可以将读取命令传输到存储器系统110,该读取命令包括逻辑地址LBA和物理地址PBA。当在主机存储器106中存在关于与逻辑地址LBA对应的物理地址PBA的信息时,主机102可以将包括逻辑地址LBA和物理地址PBA的读取命令传输到存储器系统110。但是,当在主机存储器106中不存在关于与逻辑地址LBA对应的物理地址PBA的信息时,主机102可以将仅包括逻辑地址LBA的读取命令传输到存储器系统110。

尽管图5作为一个示例描述了读取命令,但是本发明的概念和精神可以应用于主机102可以传输到存储器系统110的写入命令或擦除命令。

图6是描述根据本公开的实施例的主机102和存储器系统110的第一操作的流程图。具体地,图6描述了主机102和存储器系统110之间的特定操作。主机102传输包括逻辑地址LBA和物理地址PBA的命令COMMAND,并且存储器系统110接收命令COMMAND。

在S612处,在用户的请求下,主机102可以生成包括逻辑地址LBA的命令COMMAND。

在S614处,主机102可以检查在主机存储器106中存储的映射信息中是否存在与逻辑地址LBA对应的物理地址PBA。

当在映射信息中不存在与逻辑地址LBA对应的物理地址PBA时(在S614处的“否”),则在S618处,主机102可以向存储器系统110发出仅包括逻辑地址LBA的命令COMMAND。

相反,当在映射信息中存在与逻辑地址LBA对应的物理地址PBA时(在S616处的“是”),则在S616处,主机102可以将物理地址PBA添加到包括逻辑地址LBA的命令COMMAND。

然后,在S618处,主机102可以向存储器系统110提供包括逻辑地址LBA和物理地址PBA的命令COMMAND。

在S622处,存储器系统110可以接收从主机102提供的命令COMMAND。

在S624处,存储器系统110可以检查所接收的命令COMMAND是否包括物理地址PBA。

当所接收的命令COMMAND不包括物理地址PBA时(在S624处的“否”),则在S632处,存储器系统110可以在存储器144或存储器设备150中搜索与所接收的命令COMMAND中包括的逻辑地址LBA对应的物理地址PBA。存储器系统110的物理地址搜索操作可以参考图7进行详细描述。

相反,当所接收的命令COMMAND包括物理地址PBA时(在S624处的“是”),则在S626处,存储器系统110可以检查物理地址PBA是否有效。

存储器系统110可以将映射信息传输到主机102,并且基于由存储器系统110传输的映射信息,主机102可以将物理地址PBA包括在命令COMMAND中。但是,在存储器系统110将映射信息传输到主机102之后,可以改变并更新由存储器系统110管理的映射信息。这样,当映射信息为脏的时,由主机102传送到存储器系统110的物理地址PBA可能不被原样使用。因此,存储器系统110可以能够确定包括在所接收的命令COMMAND中的物理地址PBA是否有效。例如,存储器系统110可以单独管理脏映射信息。作为另一示例,存储器系统110可以将从主机102提供的物理地址PBA与存储在存储器系统110中的物理地址进行比较,以确定物理地址PBA的有效性。然而,这仅是示例,并且本发明的概念和精神可以不限于此。

当包括在所接收的命令COMMAND中的物理地址PBA有效时(在S626处的“是”),在S630处,存储器系统110可以通过使用物理地址PBA来执行与命令COMMAND对应的操作。

相反,当包括在所接收的命令COMMAND中的物理地址PBA无效时(在S626处的“否”),在S628处,存储器系统110可以丢弃包括在所接收的命令COMMAND中的物理地址PBA。

在S632处,存储器系统110可以搜索与包括在所接收的命令COMMAND中的逻辑地址LBA对应的物理地址。

图7是描述根据本公开的一个实施例的存储器系统的操作的流程图。特别地,图7具体图示了图6中所示的操作S632。

返回参考图6,当从主机102提供的命令COMMAND不包括物理地址PBA时,或者当即使命令COMMAND包括物理地址PBA、但是物理地址PBA无效时,在S632处,存储器系统110可以搜索与命令COMMAND中包括的逻辑地址LBA对应的物理地址。

首先,在S701处,存储器系统110可以确定在图1所示的存储器144的映射高速缓存146中是否命中了物理地址。换言之,存储器系统110可以检查关于物理地址的信息是否被存储在映射高速缓存146中。

当在映射高速缓存146中未命中物理地址时(在S701处的“否”),在S703处,存储器系统110可以在存储器设备150中检测物理地址。具体而言,存储器系统110可以针对与从主机102提供的命令COMMAND中包括的逻辑地址LBA对应的物理地址来搜索存储器设备150。此后,存储器系统110可以将搜索到的物理地址存储在映射高速缓存146中。

然后,当命令COMMAND是读取命令时,在S705处,存储器系统110可以基于从存储器设备150搜索的物理地址来读取数据。

另一方面,当在映射高速缓存146中命中物理地址时(在S701处的“是”),在S705处,存储器系统110可以基于存储在映射高速缓存146中的物理地址来读取数据。

当物理地址被存储在映射高速缓存146中时,存储器系统110可以跳过针对物理地址搜索存储器设备150的操作。结果,存储器系统110可以能够根据读取命令来高效地执行读取操作。当映射高速缓存146存储大量映射信息时,存储器系统110可以高效地执行读取操作。但是,映射高速缓存146可能具有有限的存储容量。因此,存储器系统110可能必须选择性地将映射信息存储在映射高速缓存146中,以高效地执行读取操作。例如,存储器系统110可以将频繁使用的映射信息存储在映射高速缓存146中。

根据本公开的实施例的存储器系统110可以包括具有能够选择性地存储映射信息的结构的映射高速缓存146。

图8A图示了根据本公开的一个实施例的图1所示的映射高速缓存146的结构。

映射高速缓存146可以包括写入映射高速缓存830和读取映射高速缓存850。映射高速缓存146可以将映射信息存储在写入映射高速缓存830和读取映射高速缓存850中。图8A图示了充满映射信息的写入映射高速缓存830和读取映射高速缓存850。映射高速缓存146可以根据向其输入映射信息的顺序,而将映射信息选择性地存储在两个映射高速缓存830和850中。

写入映射高速缓存830和读取映射高速缓存850可以具有不同的尺寸。写入映射高速缓存830和读取映射高速缓存850中的每一个的尺寸可以指代存储映射信息的空间。映射高速缓存越大,可以存储的映射信息越多。图8A示例性地图示了具有第一尺寸的写入映射高速缓存830和具有第二尺寸的读取映射高速缓存850。

不同性质的映射信息可以分别被存储在写入映射高速缓存830和读取映射高速缓存850中。例如,写入映射高速缓存830可以存储与写入命令(CMD)对应的映射信息,而读取映射高速缓存850可以存储与读取命令(CMD)对应的映射信息。

写入映射高速缓存830和读取映射高速缓存850可以根据LRU(最不新近使用)方案来存储映射信息。图8A图示了基于LRU方案实现写入映射高速缓存830和读取映射高速缓存850的一个示例。写入映射高速缓存830和读取映射高速缓存850的MRU(最新近使用)端部MRU_END可以指示最新近被访问的映射信息的位置。在写入映射高速缓存830和读取映射高速缓存850中示出的LRU端部LRU_END可以指示最长时间前被访问的映射信息的位置。

当未高速缓存在映射高速缓存146中的新映射信息根据写入命令或读取命令被访问、并且因此被新存储在第一高速缓存(其是写入映射高速缓存830或读取映射高速缓存850)中时,新的映射信息可以被存储在第一高速缓存的MRU端部MRU_END处。当第一高速缓存的空间不足以存储新映射信息时,位于第一高速缓存的LRU端部LRU_END处的映射信息可以被输出到外部。

当根据同类命令再次访问存储在第一高速缓存中的某些映射信息时,可以将该某些映射信息移动到第一高速缓存的MRU端部MRU_END。

当根据异类命令再次访问存储在第一高速缓存中的某些映射信息时,根据该异类命令,可以将该某些映射信息移动到第二高速缓存的MRU端部MRU_END。当第二高速缓存的空间不足以存储该某些映射信息时,可以将位于第二高速缓存的LRU端部LRU_END处的映射信息输出到外部。当存储在第一高速缓存中的某些映射信息被移动到第二高速缓存的MRU端部MRU_END时,高速缓存在第一高速缓存中的映射信息的量可以减少。

参考图8A,第一至第三映射信息M1至M3可以按照它们被访问的顺序存储在写入映射高速缓存830中。当与写入命令对应的新的映射信息被输入到映射高速缓存146(MAP IN)时,存储在写入映射高速缓存830的LRU端部LRU_END的第一映射信息M1可以被输出到映射高速缓存146的外部(MAP OUT)。然后可以将新的映射信息存储在写入映射高速缓存830中。

读取映射高速缓存850可以按照它们被访问的顺序存储第四至第八映射信息M4至M8。基于相同的原理,当与读取命令对应的新映射信息被输入到映射高速缓存146(MAP IN)时,存储在读取映射高速缓存850的LRU端部LRU_END处的第四映射信息M4可以被输出到映射高速缓存146的外部(MAP OUT)。然后可以将新的映射信息存储在读取映射高速缓存850中。

同时,与映射高速缓存146中剩余的映射信息相比,可能不经常访问位于写入映射高速缓存830或读取映射高速缓存850的LRU端部LRU_END处并且然后被输出的映射信息。然而,所输出的映射信息新近被存储在映射高速缓存146中,并且因此与未新近存储在映射高速缓存146中的映射信息相比,可能更频繁地访问所输出的映射信息。

当将映射信息存储在映射高速缓存146中时,主机102可以最快的速度访问存储器设备150。当将映射信息存储在主机102的主机存储器106中时,主机102可以以次快的速度访问存储器设备150。当映射信息被存储在存储器设备150中时,主机102可以以最慢的速度访问存储器设备150。

所输出的映射信息可以是从写入映射高速缓存830输出的映射信息和从读取映射高速缓存850输出的映射信息。

与未新近存储在映射高速缓存146中的映射信息相比,从写入映射高速缓存830输出的映射信息更有可能被再次访问以进行写入操作。然而,每当执行写入操作时,都可以改变映射信息。因此,当存储器系统110将从写入映射高速缓存830输出的映射信息传输到主机102时,每当通过写入操作在存储器系统110中更新映射信息时,主机102可能必须更新映射信息。结果,主机102可能具有很大的负担。因此,存储器系统110可以不向主机102提供从写入映射高速缓存830输出的映射信息。

另一方面,与未新近存储在映射高速缓存146中的映射信息相比,从读取映射高速缓存850输出的映射信息更有可能被再次访问以进行读取操作。每当执行读取操作时,可以不改变映射信息。因此,即使存储器系统110将从读取映射高速缓存850输出的映射信息传输到主机102,主机102不更新映射信息的可能性很高。因此,存储器系统110可以向主机102提供从读取映射高速缓存850输出的映射信息。主机102可以通过基于映射信息提供读取命令和物理地址,来更快地执行读取操作。

图8B是描述根据本公开的一个实施例的通过使用映射高速缓存来处理映射信息的操作的流程图。图8B仅示出了将映射信息存储在映射高速缓存中的过程。

在S801处,存储器系统110可以从主机102接收读取命令或写入命令。主机102可以向存储器系统110选择性地提供与读取命令或写入命令对应的映射信息、连同读取命令或写入命令。

在S803处,存储器系统110可以输入与读取命令或写入命令对应的映射信息。具体而言,存储器144的映射高速缓存146可以在处理器134的控制下接收映射信息。在下文中,为了便于说明,所输入的映射信息可以被称为“目标映射信息”。

在S805处,确定主机102向存储器系统110提供读取命令还是写入命令。当主机102向存储器系统110提供读取命令时(在S805处的“否”),在S807处,存储器系统110可以检查读取映射高速缓存850中是否存在用于存储目标映射信息的空的空间。

当在读取映射高速缓存850中不存在空的空间时(在S807处的“否”),在S809处,映射高速缓存146可以向外部输出旧映射信息,旧映射信息是存储在读取映射高速缓存850中的映射信息中最旧的信息。可以将最旧映射信息提供给主机102,并且稍后将参考图15至图18来详细描述对所输出的旧映射信息的处理。

然后,在S811处,映射高速缓存146可以将目标映射信息存储在读取映射高速缓存850中。映射高速缓存146可以根据LRU方案将目标映射信息存储在读取映射高速缓存850中。

另一方面,当在读取映射高速缓存850中存在空的空间时(在S807处的“是”),在S811处,映射高速缓存146可以在不输出旧映射信息的情况下,将目标映射信息存储在读取映射高速缓存850中。映射高速缓存146可以根据LRU方案将目标映射信息存储在读取映射高速缓存850中。

当主机102向存储器系统110提供写入命令时(在S805处的“是”),在S813处,存储器系统110可以检查在写入映射高速缓存830中是否存在用于存储目标映射信息的空的空间。

当在写入映射高速缓存830中不存在空的空间时(在S813处的“否”),在S815处,映射高速缓存146可以向外部输出旧映射信息,旧映射信息是存储在写入映射高速缓存830中的映射信息中的最旧信息。所输出的最旧映射信息可以被删除。

然后,在S817处,映射高速缓存146可以将目标映射信息存储在写入映射高速缓存830中。映射高速缓存146可以根据LRU方案将目标映射信息存储在写入映射高速缓存830中。

另一方面,当在写入映射高速缓存830中存在空的空间时(在S813处的“是”),在S817处,映射高速缓存146可以在不输出旧映射信息的情况下,将目标映射信息存储在写入映射高速缓存830中。映射高速缓存146可以根据LRU方案将目标映射信息存储在写入映射高速缓存830中。

在下文中,通过利用图8A中所示的映射高速缓存146的结构,将参考图9至图14B来描述输入和输出映射信息的过程。如图8A所示,假设与写入命令对应的第一至第三映射信息M1至M3被存储在写入映射高速缓存830中,并且与读取命令对应的第四至第八映射信息M4至M8被存储在读取映射高速缓存850中。还假设映射高速缓存146存储新近访问的映射信息。然而,这至多是单纯的示例,并且本发明的概念和精神不限于此。

图9图示了根据本公开的一个实施例的映射信息处理操作。图9示出了用于在映射高速缓存146中存储新映射信息(例如,与读取命令对应的第九映射信息M9)的存储器系统110的操作。

参考图9,第九映射信息M9可以被输入到映射高速缓存146。映射高速缓存146可能必须将第九映射信息M9存储在读取映射高速缓存850中。然而,读取映射高速缓存850可能充满了第四至第八映射信息M4至M8。因此,映射高速缓存146可以将第四映射信息M4输出到映射高速缓存146的外部,第四映射信息M4是存储在读取映射高速缓存850中的最旧信息。映射高速缓存146可以将第九映射信息M9存储在读取映射高速缓存850中。根据LRU方案,第九映射信息M9可以被存储在MRU端部MRU_END处,作为最新近访问的映射信息。当输出第四映射信息M4时,第五至第八映射信息M5至M8可朝向LRU端部LRU_END移位,并且因此成为第五至第九映射信息M5至M9中的最旧信息的第五映射信息M5可以被存储在LRU端部LRU_END处。

存储器系统110可以向主机102提供从映射高速缓存146输出的第四映射信息M4。然后,主机102可以将第四映射信息M4存储在主机存储器106中。备选地,当第四映射信息M4已存储在主机存储器106中时,主机102可以基于从存储器系统110接收的第四映射信息M4,来更新存储在主机存储器106中的映射信息。将参考图15至图18来提供其详细描述。

图10图示了根据本公开的一个实施例的映射信息处理操作。图10示出了用于在映射高速缓存146中存储新的映射信息(例如,与写入命令对应的第九映射信息M9)的存储器系统110的操作。

参考图10,第九映射信息M9可以输入到映射高速缓存146。映射高速缓存146可能必须将第九映射信息M9存储在写入映射高速缓存830中。然而,写入映射高速缓存830可能充满了第一至第三映射信息M1至M3。因此,映射高速缓存146可以将第一映射信息M1输出到映射高速缓存146的外部,第一映射信息M1是存储在写入映射高速缓存830中的最旧信息。之后,第二和第三映射信息M2和M3可以朝向LRU端部LRU_END移位,并且然后映射高速缓存146可以将第九映射信息M9存储在写入映射高速缓存830中。

存储器系统110可以删除从映射高速缓存146输出的第一映射信息M1。

图11A和图11B图示了根据本公开的一个实施例的映射信息处理过程。图11A和图11B图示了当存储器系统110响应于读取命令访问存储在读取映射高速缓存850中的第七映射信息M7时,第七映射信息M7的移动路径。

第七映射信息M7可以根据LRU方案被存储在读取映射高速缓存850中,作为最新近访问的映射信息。参考图11B,映射高速缓存146可以将存储在读取映射高速缓存850中的第七映射信息M7移动到MRU端部MRU_END。

图11B图示了其中第七映射信息M7移动到MRU端部MRU_END的状态。先前存储在MRU端部MRU_END处的第八映射信息M8可以是次新近访问的映射数据。因此,可以改变第八映射信息M8的存储位置。结果,第七映射信息M7的存储位置可以改变为第八映射信息M8在读取映射高速缓存850中的先前存储位置。

图12A和图12B图示了根据本公开的一个实施例的映射信息处理过程。图12A和图12B图示了当存储器系统110响应于写入命令而访问存储在写入映射高速缓存830中的第二映射信息M2时,第二映射信息M2的移动路径。

根据LRU方案,第二映射信息M2可以被存储在写入映射高速缓存830中,作为最新近访问的映射信息。参考图12B,映射高速缓存146可以将存储在写入映射高速缓存830中的第二映射信息M2移动到MRU端部MRU_END。图12B图示了其中第二映射信息M2移动到MRU端部MRU_END的状态。先前存储在MRU端部MRU_END处的第三映射信息M3可以是次新近访问的映射数据。因此,可以改变第三映射信息M3的存储位置。结果,第二映射信息M2的存储位置可以改变为第三映射信息M3在写入映射高速缓存830中的先前存储位置。

图13A和图13B图示了根据本公开的一个实施例的映射信息处理过程。图13A和图13B图示了当存储器系统110响应于读取命令而访问存储在写入映射高速缓存830中的第二映射信息M2时,第二映射信息M2的移动路径。

根据LRU方案,第二映射信息M2可以被存储在读取映射高速缓存850中,作为最新近访问的映射信息。参考图13B,映射高速缓存146可以将存储在写入映射高速缓存830中的第二映射信息M2移动到读取映射高速缓存850的MRU端部MRU_END。参考图13B,映射高速缓存146可以移除存储在写入映射高速缓存830中的第二映射信息M2,并且将第二映射信息M2存储在读取映射高速缓存850的MRU端部MRU_END处。

图13B图示了其中第二映射信息M2移动到读取映射高速缓存850的MRU端部MRU_END的状态。在图13B中,第二尺寸的读取映射高速缓存850可以充满映射信息。因此,映射高速缓存146可以将存储在读取映射高速缓存850中的LRU端部LRU_END处的第四映射信息M4输出到映射高速缓存146的外部。之后,映射高速缓存146可以将第二映射信息M2存储在读取映射高速缓存850的MRU端部MRU_END处。此外,通过从写入映射高速缓存830移除第二映射信息M2,可以在写入映射高速缓存830中生成空的空间。

存储器系统110可以向主机102提供从映射高速缓存146输出的第四映射信息M4。然后,主机102可以将第四映射信息M4存储在主机存储器106中。备选地,当第四映射信息M4已存储在主机存储器106中时,主机102可以基于从存储器系统110接收的第四映射信息M4,来更新存储在主机存储器106中的映射信息。稍后将参考图15至图18来提供其详细描述。

图14A和图14B图示了根据本公开的一个实施例的映射信息处理过程。图14A和图14B图示了当存储器系统110响应于写入命令而访问存储在读取映射高速缓存850中的第六映射信息M6时,第六映射信息M6的移动路径。

根据LRU方案,第六映射信息M6可以被存储在写入映射高速缓存830中,作为最新近访问的映射信息。参考图14B,映射高速缓存146可以将存储在读取映射高速缓存850中的第六映射信息M6移动到写入映射高速缓存830的MRU端部MRU_END。参考图14B,映射高速缓存146可以移除存储在读取映射高速缓存850中的第六映射信息M6,并且将第六映射信息M6存储在写入映射高速缓存830的MRU端部MRU_END处。

图14B图示了其中第六映射信息M6移动到写入映射高速缓存830的MRU端部MRU_END的状态。在图14B中,第一尺寸的写入映射信息高速缓存830可以充满映射信息。因此,映射高速缓存146可以将存储在写入映射高速缓存830的LRU端部LRU_END处的第一映射信息M1输出到映射高速缓存146的外部。映射高速缓存146可以将第六映射信息M6存储在写入映射高速缓存830的MRU端部MRU_END处。此外,通过从读取映射高速缓存850移除第六映射信息M6,可以在读取映射高速缓存850中生成空的空间。

存储器系统110可以删除从映射高速缓存146输出的第一映射信息M1。

图9至图14B图示了存储新近访问的映射信息的映射高速缓存146。然而,实施例不限于此。在另一实施例中,映射高速缓存146可以根据最不频繁使用(LFU)方案来存储最频繁访问的映射信息。

图15图示了根据本公开的一个实施例的在数据处理系统中的主机102与存储器系统110之间的事务的第二示例。

参考图15,存储器系统110可以将映射信息MAP INFO传输到主机102。存储器系统110可以基于对主机102的命令COMMAND的响应RESPONSE,来传输映射信息MAP INFO。特别地,如上面参考图9至图13B所描述的,存储器系统110可以向主机102提供从读取映射高速缓存850输出的映射信息。

对用于传输映射信息的响应可以没有特别限制。例如,存储器系统110可以通过使用与读取命令对应的响应、与写入命令对应的响应或与擦除命令对应的响应,将映射信息传输到主机102。

存储器系统110和主机102可以基于单位格式来交换命令和响应,该单位格式是根据预定协议设置的。例如,响应的格式可以包括基本报头、由于主机102传输的命令的成功或失败而产生的命令、以及表示存储器系统110的状态的附加信息。存储器系统110可以在响应中包括映射信息,并将包括映射信息的响应传输给主机102。

图16图示了根据本公开的一个实施例的主机102和存储器系统110的第二操作。具体地,图16图示了如下过程:其中主机102向存储器系统110请求映射信息,并且存储器系统110响应于来自主机102的请求而传输映射信息。

参考图16,可以在主机102中发生对映射信息的需求。例如,当主机102可以分配空间来存储映射信息时,或者当期望数据响应于命令而快速地输入到存储器系统110或从存储器系统110中快速地输出时,可以发生对映射信息的需求。而且,在用户的请求下,主机102中可以发生对映射信息的需求。

主机102可以向存储器系统110请求映射信息,并且存储器系统110可以响应于来自主机102的请求来准备映射信息。根据本公开的实施例,主机102可以特定地请求存储器系统110所需的映射信息。同时,根据本公开的另一实施例,主机102可以向存储器系统110请求映射信息,但是提供哪个映射信息可以由存储器系统110确定。

存储器系统110可以将准备的映射信息传输到主机102。主机102可以将从存储器系统110传输的映射信息存储在内部存储空间(例如,图3中描述的主机存储器106)中。

通过使用所存储的映射信息,主机102可以在命令中包括物理地址PBA,并且将包括物理地址PBA的命令传输到存储器系统110。存储器系统110可以基于命令中包括的物理地址PBA来执行对应操作。

图17图示了根据本公开的一个实施例的主机102和存储器系统110的第三操作。具体地,图17图示了如下过程:其中存储器系统110请求主机102以传输映射信息,并且主机102响应于存储器系统110的请求而接收映射信息。

参考图17,存储器系统110可以通知主机102传输映射信息。响应于关于从存储器系统110传输的映射信息的通知,主机102可以确定是否可以在主机102中存储映射信息。当主机102可以接收从存储器系统110传输的映射信息时,主机102可以允许存储器系统110将映射信息上传到主机102。存储器系统110可以准备映射信息,并且然后将映射信息传输到主机102。

随后,主机102可以将所接收的映射信息存储在内部存储空间(例如,图3中描述的主机存储器106)中。主机102可以基于所存储的映射信息来执行映射操作,并且在待传输到存储器系统110的命令中包括物理地址PBA。

存储器系统110可以检查从主机102传输的命令是否包括物理地址PBA,并且当从主机102传输的命令包括物理地址PBA时,存储器系统110可以基于物理地址PBA来执行与命令对应的操作。

关于映射信息的传输,图16的操作与图17的操作的不同之处可以在于,上面参考图16描述的主机102和存储器系统110的第二操作最初由主机102来执行,而上面参考图17描述的主机102和存储器系统110的第三操作最初由存储器系统110来执行。根据本公开的实施例,存储器系统110和主机102可以根据操作环境,选择性地使用参考图16和图17描述的传输映射信息的方法。

图18图示了根据本公开的一个实施例的主机102和存储器系统110的第四操作。具体地,图18图示了如下情况:其中当主机102和存储器系统110互锁时,存储器系统110将映射信息传输到主机102。

在S1862处,存储器系统110可以完成与从主机102传输的命令COMMAND对应的操作。

在与命令COMMAND对应的操作完成之后,在S1864处,在将与命令COMMAND对应的响应RESPONSE传输给主机之前,存储器系统110可以检查是否存在待传输至主机102的映射信息。

当不存在待传输到主机102的映射信息时(在S1864处的“否”),在S1866处,存储器系统110可以传输响应RESPONSE,该响应RESPONSE包括关于与从主机102传输的命令COMMAND对应的操作是否完成(成功或失败)的信息。

同时,当存储器系统110具有待传输到主机102的映射信息时(S1864处的“是”),在S1868处,存储器系统110可以检查是否做出了传输映射信息的通知。在本文中,通知可以类似于上面参考图17描述的通知。

当存储器系统110试图传输映射信息、但是存储器系统110未提前通知主机102映射信息的传输时(在S1868处的“否”),在S1870处,存储器系统110可以将通知添加到响应RESPONSE,并将该响应RESPONSE传输到主机102。

相反,当已做出传输映射信息的通知时(在S1868处的“是”),在S1872处,存储器系统110可以将映射信息添加到响应RESPONSE。

随后,在S1874处,存储器系统110可以将包括映射信息的响应RESPONSE传输到主机102。

在S1842处,主机102可以接收从存储器系统110传输的响应RESPONSE、包括通知的响应RESPONSE WITH NOTICE、以及包括映射信息的响应RESPOSNE WITH MAP INFO中的至少一个。

在S1844处,主机102可以检查所接收的响应是否包括通知。

当所接收的响应包括通知时(在S1844处的“是”),在S1846处,主机102可以准备接收和存储稍后可以传输的映射信息。

随后,在S1852处,主机102可以检查与先前命令对应的响应。例如,主机102可以检查响应,来查看先前命令的结果是成功还是失败。

相反,当所接收的响应不包括通知时(在S1844处的“否”),在S1848处,主机102可以检查响应是否包括映射信息。

当响应不包括映射信息时(在S1848处的“否”),在S1852处,主机102可以检查与先前命令对应的响应。

相反,当所接收的响应包括映射信息时(在S1848处的“是”),在S1850处,主机102可以将响应中包括的映射信息存储在主机102的内部存储空间中,或者更新已存储在主机102中的映射信息。

根据本公开的实施例的包括映射高速缓存146的存储器系统110可以将频繁访问的映射信息或新近访问的映射信息存储在映射高速缓存146中。换言之,存储器系统110可以将针对频繁或新近经历读取和写入操作的数据的映射信息存储在映射高速缓存146中,从而减少从存储器设备150加载映射信息的负担。存储器系统110然后可以向主机102仅提供存储在映射高速缓存146中的写入映射高速缓存830或读取映射高速缓存850中的映射信息。写入映射高速缓存830和读取映射高速缓存850可被实现为具有不同尺寸。特别地,存储器系统110可以不向主机102提供针对频繁或新近对其执行写入操作的数据的映射信息。结果,存储器系统110可以通过减少提供给主机102的映射信息的量来减少主机102上的负担。

根据本公开的实施例,存储器系统可以在映射高速缓存中高效地搜索映射信息,并向主机选择性地提供经更新的映射信息。

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

41页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于被访问次数的数据缓存方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类