存储器系统及其操作方法
阅读说明:本技术 存储器系统及其操作方法 (Memory system and operating method thereof ) 是由 吴用锡 于 2019-12-13 设计创作,主要内容包括:本公开提供一种存储器系统,该存储器系统联接到多个主机,每个主机包括FTL。该存储器系统可以包括:控制器,适于当设置了对来自多个主机中的任意一个主机的写入请求的写入锁定时,仅允许从该任意一个主机接收写入请求;以及存储器装置,由控制器控制,并且适于根据来自该任意一个主机的写入请求执行写入操作,其中该控制器包括:锁定管理器,适于根据存储器装置中是否设置了锁定来设置写入锁定并且在写入操作完成时释放写入锁定;以及同步管理器,适于根据写入操作是否成功执行,控制除该任意一个主机之外的其他主机的FTL的FTL元数据的同步。(The present disclosure provides a memory system coupled to a plurality of hosts, each host including an FTL. The memory system may include: a controller adapted to allow only a write request to be received from any one of the plurality of hosts when a write lock for the write request from the any one host is set; and a memory device controlled by the controller and adapted to perform a write operation according to a write request from the arbitrary one of the hosts, wherein the controller includes: a lock manager adapted to set a write lock according to whether a lock is set in the memory device and release the write lock when the write operation is completed; and a synchronization manager adapted to control synchronization of FTL metadata of FTLs of hosts other than the arbitrary one host according to whether the write operation is successfully performed.)
相关申请的交叉引用
本申请要求于2019年1月15日提交的申请号为10-2019-0005162的韩国专利申请的优先权和权益,该韩国专利申请通过引用全部并入本文。
技术领域
示例性实施例涉及一种存储器系统及其操作方法。
背景技术
计算机环境范例已经转向云计算,并且正在向使得能够随时随地使用计算系统的普适计算发展。诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。这样的存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
使用半导体存储器装置的存储器系统由于不具有移动部件而提供诸如优异的稳定性、耐用性、高信息访问速度和低功耗的优点。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
该申请文件的实施例涉及一种具有改善的性能特征的计算环境。在一些实施例中,本公开的系统和操作方法被实施为支持诸如闪存转换层(FTL)元数据的主机元数据的同步,以保持共享存储器系统的多个主机对与存储器系统相关联的FTL中的变化进行更新。
在实施例中,提供了一种存储器系统。该存储器系统可以包括:多个存储区域,每个存储区域可由多个主机访问;存储器,存储用于使文件系统适应由多个存储区域限制的约束的可执行指令;以及处理器,与存储器通信,可执行指令由处理器执行时使处理器:从主机中待访问多个存储区域中的至少一个存储区域的一个主机接收对操作的请求;在确定当前没有对待访问的至少一个存储区域的锁定时,设置对待访问的至少一个存储区域的锁定;更新文件系统元数据以匹配由主机中访问至少一个存储区域的一个主机使用的文件系统元数据;并且更新与至少一个存储区域相关联的文件系统元数据的版本值。
在实施例中,提供了一种存储器系统。该存储器系统可以包括:多个存储区域,每个存储区域可由多个主机访问;存储器,存储用于使文件系统适应由多个存储区域限制的约束的可执行指令;以及处理器,与存储器通信,可执行指令由处理器执行时使处理器:从主机中的一个主机接收访问多个存储区域中的至少一个存储区域的请求,该请求包括对多个存储区域中的至少一个存储区域的锁定请求;确定锁定请求和主机中的另一个主机当前设置的另一锁定之间是否存在冲突;并且在确定不存在冲突时,针对至少一个存储区域设置锁定。
在实施例中,提供了一种存储器系统,该存储器系统联接到多个主机,每个主机包括闪存转换层(FTL)。该存储器系统可以包括:控制器,适于当设置了对来自多个主机中的任意一个主机的写入请求的写入锁定时,仅允许从该任意一个主机接收写入请求;以及存储器装置,由控制器控制,并且适于根据来自该任意一个主机的写入请求执行写入操作,其中该控制器包括:锁定管理器,适于当接收到写入锁定请求时,根据存储器装置中是否设置了锁定来设置写入锁定,并且当写入操作完成时释放写入锁定;以及同步管理器,适于根据写入操作是否成功执行,控制除该任意一个主机之外的其他主机的FTL的FTL元数据的同步。
在实施例中,提供了一种存储器系统的操作方法,该存储器系统联接到多个主机,每个主机包括FTL。该操作方法可以包括:当从多个主机中的任意一个主机接收到写入锁定请求时,根据存储器装置中是否设置了锁定来设置写入锁定;当设置了写入锁定时,仅从该任意一个主机接收写入请求,并根据该写入请求执行写入操作;当写入操作完成时释放写入锁定;并且根据写入操作是否成功执行,控制除该任意一个主机之外的其他主机的FTL的FTL元数据的同步。
附图说明
图1示意性地示出了提供多个用户访问共享存储器系统的计算环境100的示例。
图2示意性地示出了包括开放通道存储器系统以支持多端口的计算环境100的示例。
图3示意性地示出了基于实施例的计算环境100的结构。
图4A和图4B示出了基于一些实施例的存储器装置和与该存储器装置通信的多个主机的启动操作。
图5A至图5D示出了基于一些实施例的如何执行多个主机的写入操作。
图6A和图6B示出了基于一些实施例的多个主机的读取操作。
图7示意性地示出了基于一些实施例的可以包括在存储器装置和多个主机中的数据。
图8示意性地示出了支持单根I/O虚拟化(SR-IOV)的开放通道存储器系统与主机通信的计算环境100的示例。
图9示意性地示出了基于本公开技术的一些实施例而实施的用户系统。
具体实施方式
该申请文件中公开的技术可以在实施例中实施以提供电子系统和方法,该电子系统和方法除其他特征和优点外,还支持共享存储器系统的多个主机的主机元数据的同步。
图1示意性地示出了提供多个用户访问共享存储器系统的计算环境100的示例。
在计算环境100中,主机110与存储器系统130通信。在一些实施例中,主机100可以将存储器系统130用作主机100的数据存储装置。
主机110的示例可以包括诸如移动电话、MP3播放器和膝上型计算机的无线电子装置(例如,便携式电子装置)或者诸如台式计算机、游戏机、TV和投影仪的有线电子装置。
存储器系统130可以应主机110的请求存储数据。存储器系统130可以用作主机110的主存储器装置或辅助存储器装置。存储器系统130可以包括一种或多种类型的存储装置。计算环境100还可以为主机110提供主机接口协议以与包括存储装置的其他装置接口连接。
存储器系统130可以包括存储器装置170和用于控制存储器装置170的控制器150。存储器装置170可以表示主机可以访问以便主机可以在存储器装置170中临时或持久地存储数据的数据存储区域。
存储器装置170可以包括诸如闪速存储器装置的非易失性存储器装置。闪速存储器可以将数据存储在构成存储器单元阵列的存储器单元晶体管中。在一些实施例中,闪速存储器可以是NAND闪速存储器装置。闪速存储器可以被组织成管芯、平面、块和页面的分层结构。在实施例中,闪速存储器可以包括多个管芯,并且每个管芯可以一次接收一个命令。每个管芯可以包括多个平面,并且多个平面可以并行地处理由管芯接收的命令。每个平面可以包括多个块。在一些实施例中,以块为基础执行擦除操作,并且以页面为基础执行编程(写入)操作和读取操作。
闪速存储器可以提供高读取速度。但是,由于闪速存储器不支持重写操作,因此在编程操作之前需要擦除操作,以便将数据写入闪速存储器。当主机110使用包括闪速存储器的存储器系统130时,文件系统控制如何将数据存储到存储器系统130以及从存储器系统130检索数据。硬盘驱动器已经成为关键的存储装置,因此硬盘驱动器的文件系统被用作通用文件系统。具有闪速存储器装置的存储器系统可以利用这样的通用文件系统,但是由于诸如擦除块和损耗均衡的多个原因,这样的通用文件系统并不是最佳的。例如,如上所述,在闪速存储块可以被写入之前,闪速存储块需要被擦除,因此具有闪速存储器装置的存储器系统需要具有与擦除块相关联的信息,而硬盘驱动器则不需要该信息。因此,可以在通用文件系统和闪速存储器之间使用闪存转换层(FTL)。在一些实施例中,当要更新存储在闪速存储器装置的某个块中的数据时,FTL将改变后的数据的新副本写入新块(例如,擦除的块),并重新映射与写入操作相关联的地址。为了将数据写入闪速存储器,FTL还可以将文件系统的逻辑地址映射到闪速存储器的物理地址。
控制器150可以包括主机接口152、处理器154、存储器156和存储器接口158。
主机接口152可以支持主机110和存储器系统130之间的接口连接。例如,主机110和存储器系统130可以通过端口电联接。例如,主机接口152可以使用诸如PCI-E(高速外围组件互连)、SAS(串列SCSI)或SATA(串行高级技术附件)的接口协议从主机110接收命令以及将命令传送到主机110。主机接口152可以支持主机110和存储器系统130之间的数据输入/输出。
存储器156还可以存储与存储器系统130的操作相关联的数据。在一些实施例中,存储器156可以存储可执行指令。存储器156可以包括缓冲器或高速缓存以存储这种数据。
存储器接口158可以支持控制器150和存储器装置170之间的接口连接。当存储器装置170是闪速存储器时,存储器接口158可以生成用于控制存储器装置170的控制信号并将所生成的控制信号传送到存储器装置170,并且用作闪存控制器的处理器154可以管理控制信号的流动。存储器接口158可以支持控制器150和存储器装置170之间的数据输入/输出。
存储器接口158可以包括ECC编码器和ECC解码器(未示出)。ECC编码器可以向待被编程到存储器装置170的数据添加奇偶校验位,并且ECC解码器可以使用奇偶校验位来检测和校正从存储器装置170读取的一个或多个错误数据位。
处理器154可以控制存储器系统130的全部操作。
在实施例中,主机接口152和存储器接口158可以被加载到包括存储器156和处理器154的运行系统。又例如,主机接口152和存储器接口158可以被实施为诸如现场可编程门阵列(FPGA)的硬件装置。
在本公开技术的一些实施例中,可以在诸如基于主机的固态驱动器(SSD)和开放通道SSD的各种平台中实施存储器系统130。应注意的是,在本申请文件的上下文中,术语“开放通道SSD”可以表示由多个主机共享的任意数据存储装置。利用开放通道SSD,向主机110公开诸如关于通道和存储空间的信息的内部信息,使得主机110可以有效地使用开放通道SSD的资源。例如,内部信息可以包括关于诸如管芯、平面、块和页面的分层结构的信息。
使用开放通道SSD作为存储装置的主机110可以包括FTL,以基于内部信息通过将文件系统的逻辑地址直接转换为存储器装置170的物理地址来访问存储器装置170。在该申请文件中,FTL的元数据可以被称为FTL元数据。FLT元数据可以包括用于存储物理地址和逻辑地址之间的映射的地址映射表以及指示每个块是否为开放块的块状态信息。
在一些实施例中,在将数据写入物理块地址之前,主机110可以基于内部信息和FTL元数据控制开放通道SSD 130的存储器装置170以将数据临时存储在内部存储器中,直到写入数据的大小达到一个页面大小为止。随后,主机110将逻辑地址映射到相应的物理地址,并将写入请求发送到开放通道SSD。
如上所述,术语“开放通道SSD”可以表示由多个主机共享的任意数据存储装置。开放通道SSD的示例可以包括向与其通信的任意主机110公开其FTL元数据的任意存储器系统。
基于一些实施例的存储器系统130可以是开放通道存储器系统。使用存储器系统130作为存储装置的主机110可以包括文件系统112、FTL 114、存储器116和装置驱动器118。应注意的是,在本申请文件的上下文中,术语“开放通道存储器系统”可以表示由多个主机共享的任意数据存储装置。
如上所述,文件系统控制如何将数据存储到存储器系统以及从存储器系统检索数据。作为示例,文件系统112可以管理操作系统(OS)的数据结构。文件系统112可以基于逻辑地址来指定存储器系统130中待存储数据的物理位置。
如上所述,FTL 114可以基于FTL元数据生成与逻辑地址和物理地址之间的映射相关联的地址映射信息。FTL 114可以基于FTL元数据将文件系统112的逻辑地址转换成存储器系统130的物理地址。
FTL 114可以生成读取命令和写入命令,以便控制存储器装置170的前台操作。
FTL 114可以执行与存储器装置170有关的后台操作。FTL 114可以通过将存储块的有效页面中的数据复制到空闲块中并擦除那些存储块来执行垃圾收集操作。
如果将数据太频繁地写入同一地址,则诸如NAND闪存的半导体存储器装置会磨穿(wear out)。FTL 114可以实施损耗均衡,以确保数据擦除和写入在存储介质上均匀分布。此外,FTL 114可以在执行坏块管理的同时执行地址映射,使得主机110不访问坏块。
存储器116可以存储主机110的操作数据。例如,存储器116可以存储用于FTL 114的操作的存储器装置170的FTL元数据。
装置驱动器118可以控制联接到主机110的存储器系统130。例如,装置驱动器118可以将由FTL 114生成的命令传送到存储器系统130,以控制存储器装置170的读取操作和写入操作。装置驱动器118可以使用诸如主机接口152的接口协议来支持主机110和存储器系统130之间的数据输入/输出。
在实施例中,文件系统112、FTL 114和装置驱动器118可以被加载到包括主机110的存储器116和主机110的处理器(未示出)的运行系统。又例如,文件系统112、FTL 114和装置驱动器118可以被实施为诸如FPGA的硬件装置。
图2示意性地示出了包括开放通道存储器系统以支持多端口的计算环境100的示例。
计算环境100可以包括存储器系统130和多个主机。存储器系统130可以包括控制器150和存储器装置170。
在实施例中,存储器系统130可以是支持多端口接口的开放通道存储器系统。
由于存储器系统130支持多端口,所以多个处理器中的每一个可以通过相应的一个或多个端口独立地通信,并且共享存储器系统130的资源。
例如,存储器系统130可以支持双端口接口。如图2所示,第一主机110a和第二主机110b可以分别通过双端口中的一个通信,并共享存储器系统130的资源。
由于存储器系统130是开放通道存储器系统,所以第一主机110a和第二主机110b中的每一个可以访问存储器装置170的物理地址。为了使第一主机110a和第二主机110b中的每一个通过地址转换访问存储器装置170,第一主机110a可以包括第一FTL 114a,第二主机110b可以包括第二FTL 114b。
当第一主机110a的FTL将逻辑地址映射到物理地址以将数据写入存储器系统130时,FTL元数据的一部分可以被更新以反映该映射。在该申请文件中,更新FTL元数据可以包括更新地址映射表。在第一主机110a的映射导致FTL元数据被更新的情况下,第二主机110b将以错误的地址映射结束,除非所更新的FTL元数据反映在第二主机110b的内部FTL元数据中。
在本公开技术的实施例中,存储器系统130可以控制多个主机,使得可以以不同的时序执行来自不同主机的读取请求或写入请求。在本公开技术的一些实施例中,存储器系统130可以维持读取锁定和/或写入锁定,以防止多个主机同时访问存储器系统130。例如,当从多个主机中的第一主机110a接收到写入锁定请求时,存储器系统130可以基于存储器装置170的锁定状态来设置写入锁定,从第一主机110a接收写入请求,并且执行写入操作。
当设置了写入锁定时,即使从第二主机110b接收到写入锁定请求或读取锁定请求,存储器系统130也可以阻止写入锁定请求或读取锁定请求,直到释放写入锁定为止。当写入操作完成时,存储器系统130可以释放写入锁定,并且将多个主机与存储器系统130的内部FTL元数据同步。例如,当写入操作完成并且存储器系统130释放与第一主机110a相关联的写入锁定时,存储器系统130将所有其他主机的FTL元数据(例如,地址映射表)与第一主机110a的所更新的元数据(存储器系统130的所更新的元数据)同步。
这样,存储器系统130可以防止多个主机同时执行写入操作或同时执行写入操作和读取操作。此外,存储器系统130可以通过同步各个主机的FTL元数据来防止多个主机具有不同的元数据(例如,不同的映射表)。例如,存储器系统130可以防止主机从错误的地址读取不期望的数据或者对已经写入数据的错误的存储区域执行写入操作,从而提高计算环境100的可靠性。
图3示意性地示出了基于实施例的计算环境100的结构。
计算环境100可以包括存储器系统130和联接到存储器系统130的多个主机。为了便于描述,图3示出了存储器系统130仅与第一主机110a和第二主机110b通信。
第一主机110a可以包括第一文件系统112a、第一FTL 114a、第一装置驱动器118a和第一存储器116a。图3所示的元件可以与图1所示的元件相同或相似。在这个意义上,第一文件系统112a、第一FTL 114a、第一存储器116a和第一装置驱动器118a可以分别对应于图1所示的文件系统112、FTL 114、存储器116和装置驱动器118。
第一存储器116a可以存储第一主机110a的操作数据。具体地,第一存储器116a可以存储用于第一FTL 114a的地址转换的FTL元数据。第一文件系统112a、第一FTL 114a和第一装置驱动器118a可以被加载到第一主机110a中的第一存储器116a和/或处理器(未示出)。
第二主机110b可以包括第二文件系统112b、第二FTL 114b、第二装置驱动器118b和第二存储器116b。如上所述,图3所示的元件可以与图1所示的元件相同或相似。在这个意义上,第二文件系统112b、第二FTL 114b、第二存储器116b和第二装置驱动器118b可以分别对应于图1所示的文件系统112、FTL 114、存储器116和装置驱动器118。
存储器系统130可以是能够支持多端口的开放通道存储器系统。存储器系统130可以包括存储器装置170和用于控制存储器装置170的控制器150。
在实施例中,控制器150可以包括主机接口152、处理器154、存储器156、存储器接口158、锁定管理器160和同步管理器162。主机接口152、处理器154、存储器156和存储器接口158可以对应于图1所示的主机接口152、处理器154、存储器156和存储器接口158。
在实施例中,存储器装置170可以对应于图1中所示的存储器装置170。存储器装置170可以存储FTL元数据。存储器装置170可以存储反映存储器装置170的当前地址映射信息和块状态信息的FTL元数据。存储器装置170可以是即使在电源中断时也可以保留FTL元数据的非易失性存储器装置。
在实施例中,锁定管理器160可以基于每个主机的锁定请求在存储器装置170中设置写入锁定或读取锁定。当某个主机设置了写入锁定时,控制器150可以仅允许相应主机的写入请求。当某个主机设置了读取锁定时,控制器150可以仅允许相应主机的读取请求。
在实施例中,锁定管理器160可以在存储器装置170的相同存储区域中仅设置一个写入锁定。也就是说,锁定管理器160可以控制不同时对相同存储区域执行多个写入操作。
在实施例中,锁定管理器160可以不同时在相同存储区域中设置读取锁定和写入锁定。也就是说,锁定管理器160可以控制不同时对相同存储区域执行写入操作和读取操作。
在另一实施例中,锁定管理器160可以同时在相同区域中设置两个或更多个读取锁定。也就是说,锁定管理器160可以允许同时对相同存储区域执行多个读取操作。
在实施例中,存储区域可以对应于整个存储器装置170。也就是说,锁定管理器160可以控制存储器系统130,使得在存储器装置170中执行某个写入操作的同时不在存储器装置170中执行另一写入操作和另一读取操作。如将在下面参照图4A至图6B所讨论的,锁定管理器160可以基于某个主机的锁定请求来设置对整个存储器装置170的写入锁定或读取锁定。
在实施例中,存储器装置170可以包括多个存储区域。例如,当存储区域对应于存储器装置170的一个存储块并且正在对存储器装置170的某个存储块执行写入操作时,锁定管理器160可以控制存储器装置170,使得不能对存储器装置170的该同一存储块执行另一写入操作和另一读取操作,但是可以对存储器装置170的另一存储块执行另一写入操作和另一读取操作。如将在下面参照图7所讨论的,锁定管理器160可以针对存储器装置170的每个区域设置写入锁定或读取锁定。
同步管理器162可以控制多个主机和存储器系统130的FTL元数据的同步。例如,当在响应于第一主机110a的写入请求的存储器系统130的写入操作已经完成之后释放写入锁定时,同步管理器162可以将写入锁定释放信号传送到多个主机。在一些实施例中,同步管理器162可以将所更新的FTL元数据传送到第二主机110b。
图4A和图4B示出了基于本公开技术的一些实施例的存储器系统130、第一主机110a和第二主机110b的启动操作。
图4A是示出图3所示的存储器系统130、第一主机110a和第二主机110b的启动操作的流程图。
图4B示意性地示出了可以存储在图3所示的存储器系统130、第一主机110a和第二主机110b中的初始数据。具体地,图4B示出了可以存储在第一主机110a中包括的第一存储器116a、第二主机110b中包括的第二存储器116b、存储器系统130的控制器150中包括的存储器156以及存储器装置170中的数据。图4B中省略了可以包括在计算环境100中的其他组件。
参照图4A,当第一主机110a通电时,在步骤S402中,基于存储在内部只读存储器(ROM)(未示出)中的启动加载程序中包括的命令重置第一主机110a的内部系统。第一主机110a可以检查第一主机110a和存储器系统130之间的通信是否成功建立。
在步骤S404中,第一主机110a可以从例如存储器系统130的非易失性存储装置接收启动图像。启动图像可以指示允许关联的硬件启动的计算机文件。例如,启动图像可以包括用于启动第一文件系统112a、第一FTL 114a和第一装置驱动器118a的命令和数据。
在步骤S406中,第一主机110a的处理器(未示出)可以基于启动图像中包括的命令来运行操作系统(OS)。OS可以包括图3所示的第一文件系统112a、第一FTL 114a和第一装置驱动器118a。
类似于步骤S402至S406中第一主机110a的操作,在步骤S408至S412中,第二主机110b可以重置内部系统,从存储器系统130接收启动图像,并且基于所接收的启动图像运行包括第二文件系统112b、第二FTL 114b和第二装置驱动器118b的OS。
在步骤S414中,存储器系统130可以基于从第一主机110a和第二主机110b接收的主机信息,将与当前正在使用存储器系统130的主机相关联的主机信息存储在存储器156中。
在步骤S416中,存储器系统130可以操作诸如锁定管理器160和同步管理器162的内部组件。例如,主机接口152、存储器接口158、锁定管理器160和同步管理器162可以被实施为固件,并且固件操作可以由处理器154执行。
在步骤S418中,存储器系统130可以重置存储在存储器装置170中的FTL元数据的版本值。
FTL元数据的版本值可以用于同步由各个主机更新的FTL元数据。每个主机可以将内部存储器中存储的FTL元数据的版本值与存储器156中存储的版本值进行比较,以检查主机的FTL元数据是否是最新版本。当主机的FTL元数据不是最新版本时,需要同步以将FTL元数据更新为最新版本。
如图4B所示,基于存储器156中的主机状态信息(例如,“激活”和“版本1”),存储器系统130知道:第一主机110a或第二主机110b被激活;以及重置之后的FTL元数据的版本值。锁定状态可以指示在存储器系统130中是否设置了读取锁定和写入锁定。
如图4A所示,在步骤S420和S422中,存储器系统130可以将存储在存储器装置170中的FTL元数据以及FTL元数据的版本值传送到第一主机110a和第二主机110b。
如图4B所示,第一存储器116a和第二存储器116b可以存储从存储器系统130接收的FTL元数据以及FTL元数据的版本值。
如下面参照图5A至图7所描述的,在执行参照图4A和图4B描述的启动操作之后,与存储器系统130通信的各个主机的FTL元数据可以被同步。
图5A至图5D示出了基于本公开技术的一些实施例的如何执行第一主机110a和第二主机110b的写入操作。
如图5A所示,在步骤S502中,当在第一主机110a中生成写入数据时,第一存储器116a的写入缓冲器在开始对存储器系统130的写入操作之前保持写入数据。为了便于描述,以下将第一主机110a生成的写入数据称为第一写入数据。
在实施例中,主机可以基于一定数据大小执行写入操作,因此主机的写入缓冲器保持写入数据直到写入数据达到一定数据大小。在另一实施例中,存储器系统130可以具有写入数据缓冲器,以在对主存储区域进行写入操作之前临时存储写入数据。在步骤S504中,当写入缓冲器中的第一写入数据的大小达到足以执行写入操作的大小时,第一FTL 114a可以通过将第一写入数据的逻辑地址映射到待写入第一写入数据的物理地址来生成第一地址映射信息。在一些实施例中,用于对存储器系统130的写入操作的数据大小可以是存储器装置170的一个页面。在一些其他实施例中,可以基于包括在超级块中的块的数量、可以通过单触发编程来编程的页面的数量以及一个页面的大小来选择用于对存储器系统130的写入操作的数据大小。
在一些实施例中,当开放块关闭并且第一写入数据将被写入新的开放块时,第一FTL 114a可以更新块状态信息。
在步骤S506中,第一FTL 114a可以通过第一装置驱动器118a将第一写入锁定请求传送到存储器系统130。
在步骤S508中,存储器系统130的锁定管理器160可以响应于第一写入锁定请求来确定存储器装置170的锁定状态。锁定管理器160可以访问存储器156以确定锁定状态。
当步骤S508的确定结果指示已经设置了读取锁定和写入锁定中的任意一个时,存储器系统130可以不响应于第一写入锁定请求设置写入锁定,直到释放锁定为止。将在步骤S534至S566中详细描述当存储器系统130在设置了锁定时接收到写入锁定请求时的操作。
当步骤S508的确定结果指示当前没有设置读取锁定或写入锁定时,在步骤S510中,锁定管理器160可以设置写入锁定以执行第一写入操作。一旦响应于来自第一主机110a的写入锁定请求而设置了写入锁定,则控制器150可以仅允许从第一主机110a接收写入请求。
在步骤S512中,锁定管理器160可以通过主机接口152将指示已经设置写入锁定的写入锁定设置信号传送到第一主机110a。
在步骤S514中,第一FTL 114a可以通过第一装置驱动器118a将请求存储器系统130将第一写入数据写入存储器装置170的第一写入请求传送到存储器系统130。
在实施例中,第一写入请求可以包括第一写入命令、第一写入数据和第一更新FTL元数据。第一更新FTL元数据可以指示已经被更新以写入第一写入数据的第一主机110a的FTL元数据的一部分。第一更新FTL元数据可以包括第一地址映射信息。例如,第一地址映射信息可以包括已经由第一主机110a执行第一写入请求而更新的映射表。当块状态信息被更新时,第一更新FTL元数据还可以包括块状态信息的更新部分。
在步骤S516中,处理器154可以通过存储器接口158将第一写入命令、包括在第一更新FTL元数据中的物理地址和第一写入数据传送到存储器装置170。
如图5B所示,在步骤S502至S516的操作之后,第一主机110a设置了写入锁定,并且FTL元数据的版本值被设置为1。由于尚未执行第一写入操作,因此即使接收到第一更新FTL元数据,但尚未更新存储器系统130的第一更新FTL元数据。第一存储器116a和第二存储器116b的内部FTL元数据也可以具有版本值1。
在步骤S518中,存储器装置170可以响应于第一写入命令将第一写入数据写入到物理地址。
当第一写入操作完成时,在步骤S520中,存储器装置170可以通过存储器接口158将写入操作完成信号传送到控制器150。写入操作完成信号的示例可以包括写入操作成功信号和写入操作失败信号。
当控制器150接收到写入操作成功信号时,同步管理器162可以将第一更新FTL元数据反映到存储在存储器装置170中的FTL元数据中,并更新存储在存储器156中的FTL元数据的版本值。
如图5C所示,当执行了步骤S518时,存储在存储器装置170中的FTL元数据被更新并且FTL元数据的版本值被更新。在一些实施例中,存储在第一存储器116a中的FTL元数据的版本值在该阶段保持不变。
在第一写入操作失败的情况下,不更新存储在存储器装置170中的FTL元数据。因此,当第一写入操作失败时,FTL元数据的版本值保持不变。
在步骤S522中,锁定管理器160可以释放第一主机110a设置的写入锁定。
在步骤S524和S526中,锁定管理器160可以将指示写入锁定已经被释放的写入锁定释放信号传送到第一主机110a和第二主机111b。
在步骤S528中,在接收到写入锁定释放信号时,第一主机110a可以确定存储在第一存储器116a中的FTL元数据的版本值是否与存储在存储器156中的FTL元数据的版本值一致。当版本值彼此不一致时,需要更新FTL元数据,因此第一主机110a可以使存储在第一存储器116a中的FTL元数据更新为第一更新FTL元数据,并且可以更新版本值,使得存储在存储器156中的版本值与存储在第一存储器116a中的版本值匹配。
在步骤S530中,在接收到写入锁定释放信号时,第二主机110b可以确定存储在第二存储器116b中的FTL元数据的版本值与存储在存储器156中的FTL元数据的版本值是否一致。当版本值彼此不一致时,在步骤S532中,第二主机110b可以从存储器系统130接收第一更新FTL元数据,并且可以通过反映第一更新FTL元数据来更新存储在第二存储器116b中的FTL元数据,并更新版本值,使得存储在存储器156中的版本值与存储在第二存储器116b中的版本值匹配。
FTL元数据中的地址映射信息经常更新,而块状态信息不经常更新。在实施例中,地址映射信息的版本值(例如,地址映射表的版本)和块状态信息的版本值被分别维护。在这种情况下,同步管理器162可以分别更新地址映射信息的版本值和块状态信息的版本值。第一主机110a和第二主机110b可以将其地址映射信息和块状态信息的版本值与存储在存储器156中的版本值进行比较,并且独立地同步其地址映射信息和块状态信息。
如图5D所示,在完成步骤S532之后,释放了写入锁定,更新了存储器系统130中的FTL元数据的版本值,并且第一更新FTL元数据导致第一存储器116a和第二存储器116b的FTL元数据被更新。
第二主机110b可以生成第二写入数据。在步骤S534中,第二存储器116b的写入缓冲器在开始对存储器系统130的写入操作之前保持第二写入数据。在步骤S536中,第二FTL114b可以执行第二写入数据的逻辑地址和待写入第二写入数据的物理地址之间的映射,并生成第二更新FTL元数据。
在步骤S538中,第二FTL 114b可以通过第二装置驱动器118a将第二写入锁定请求传送到存储器系统130。
在步骤S540中,锁定管理器160可以响应于第二写入锁定请求,确定存储在存储器156中的存储器装置170的锁定状态。当在第一主机110a和存储器系统130正在执行步骤S510至S522的操作的同时执行步骤S538的操作时,锁定管理器160可以通知第二主机110b在存储器装置170中设置了锁定。因此,不允许第二主机110b访问存储器装置170。
在实施例中,在步骤S542中,锁定管理器160可以使第二写入锁定请求在存储器156中排队,并且第二主机110b等待直到写入锁定被释放为止。
在步骤S522中释放写入锁定并且在步骤S524、S526和S532中将信号传送到各个主机之后,在步骤S544中,锁定管理器160可以响应于排队的第二写入锁定请求来设置写入锁定。由于响应于来自第二主机110b的写入锁定请求而设置了写入锁定,因此控制器150可以仅允许从第二主机110b接收写入请求。
在步骤S546中,锁定管理器160可以通过主机接口152将写入锁定设置信号传送到第二主机110b。
在步骤S548中,第二主机110b可以将第二写入请求传送到存储器系统130。在一些实施例中,第二写入请求可以包括第二写入命令、第二写入数据和第二更新FTL元数据。第二更新FTL元数据可以指示在步骤S536中更新的FTL元数据。由于第二主机110b的FTL元数据在步骤S530中被更新,因此如果必要,第二FTL 114b可以通过再次执行地址映射来重新生成第二更新FTL元数据。
步骤S550至S566可以对应于步骤S516至S532。简而言之,在步骤S550至S566中,存储器系统130可以响应于第二写入命令将第二写入数据写入到包括在第二更新FTL元数据中的物理地址,并且可以在写入操作完成时释放写入锁定。当存储器系统130将写入锁定释放信号传送到每个主机时,主机可以通过比较FTL元数据的版本值来同步FTL元数据。
在实施例中,当步骤S540的确定结果指示在存储器系统130中设置了锁定时,在步骤S542中,锁定管理器160可以将写入锁定失败信号传送到第二主机110b,而不是使写入锁定请求排队。然后,第二主机110b可以重新传送第二写入锁定请求。
在实施例中,当步骤S540的确定结果指示在存储器系统130中设置了锁定时,根据预定标准,锁定管理器160可以执行步骤S542的操作或者可以传送写入锁定失败信号。
例如,锁定管理器160可以在直到释放写入锁定为止所需的估计时间小于阈值时,执行步骤S542的操作,或者当估计时间等于或大于阈值时,将写入锁定失败信号传送到第二主机110b。
锁定管理器160可以基于写入数据的大小和垃圾收集所需的时间来决定写入时间。锁定管理器160可以基于写入时间、存储器系统130的写入操作开始的时间以及当前时间来计算估计时间。
图6A和图6B示出了基于一些实施例的多个主机的读取操作。
如图6A所示,当第一文件系统112a旨在读取存储在存储器系统130中的数据时,在步骤S602中,第一FTL 114a可以通过参考FTL元数据将待读取的数据的逻辑地址转换为物理地址。为了便于描述,下文将该物理地址称为第一物理地址。
在步骤S604中,第一FTL 114a可以通过第一装置驱动器118a将第一读取锁定请求传送到存储器系统130。
在步骤S606中,锁定管理器160可以基于存储器156的锁定状态来确定存储器系统130中当前是否设置了锁定。
当步骤S606的确定结果指示存储器系统130中设置了写入锁定时,存储器系统130可以不允许第一主机110a的读取操作,直到释放写入锁定为止。
在实施例中,当存储器系统130中设置了写入锁定时,锁定管理器160可以将读取锁定失败信号传送到主机。在另一实施例中,当存储器系统130中设置了写入锁定时,锁定管理器160可以使第一读取锁定请求排队。在又一实施例中,锁定管理器160可以根据预定标准选择性地执行传送读取锁定失败信号的操作和使第一读取锁定请求排队的操作。例如,预定标准可以包括释放写入锁定所需的估计时间是否小于阈值。
另一方面,当步骤S606的确定结果指示设置了读取锁定或未设置锁定时,在步骤S608中,存储器系统130可以响应于第一读取锁定请求来设置第一主机110a的读取锁定。当设置了读取锁定时,控制器150可以仅允许从第一主机110a接收读取请求。
在步骤S610中,锁定管理器160可以通过主机接口152将指示设置了读取锁定的读取锁定设置信号传送到第一主机110a。
在步骤S612中,第一FTL 114a可以通过第一装置驱动器118a将请求存储器系统130读取存储在第一物理地址中的数据的第一读取请求传送到存储器系统130。第一读取请求可以包括第一读取命令和第一物理地址。
在步骤S614中,处理器154可以通过存储器接口158将第一读取命令和第一物理地址传送到存储器装置170。
在步骤S616中,存储器装置170可以响应于第一读取命令来读取存储在第一物理地址中的第一读取数据。
当在步骤S616中存储器装置170成功读取了第一读取数据时,在步骤S618中,存储器装置170可以将第一读取数据传送到控制器150。
在步骤S620中,存储器接口158可以将第一读取数据缓冲或临时存储在存储器156中。
在步骤S622中,处理器154可以将第一读取数据传送到第一主机110a。
在步骤S624中,锁定管理器160可以释放第一主机110a设置的读取锁定。
当在步骤S616中存储器装置170未能读取第一读取数据时,处理器154可以将失败信号传送到第一主机110a,并且锁定管理器160可以在步骤S624中释放第一主机110a设置的读取锁定。
由于多个主机与同一存储器系统通信,因此每个主机可以在存储器系统正在执行来自另一主机的另一读取请求的同时生成其自己的读取请求。例如,第二主机110b可以在正在执行第一主机110a的第一读取请求的同时生成第二读取请求。在步骤S626中,第二FTL114b可以通过参考FTL元数据将逻辑地址转换为物理地址。为了便于描述,以下将该物理地址称为第二物理地址。
在步骤S628中,第二装置驱动器118a可以将第二读取锁定请求传送到存储器系统130。
在步骤S630中,锁定管理器160可以基于存储器156的锁定状态来确定存储器系统130中当前是否设置了锁定。
在第一主机110a设置了读取锁定的情况下,在执行步骤S608至S624的操作的同时,接收到第二读取锁定请求。由于在执行读取操作时FTL元数据可以不变,因此可以在执行第一读取命令操作的同时执行第二读取命令操作。
因此,在步骤S632中,锁定管理器160可以设置第二主机110b的读取锁定。在步骤S632中,由于设置了第一主机110a和第二主机110b的读取锁定,因此控制器150可以仅允许从第一主机110a和第二主机110b接收读取请求。
如图6B所示,在执行步骤S632的操作之后,设置了第一主机110a和第二主机110b的读取锁定。
在步骤S634中,锁定管理器160可以将读取锁定设置信号传送到第二主机110b。
在步骤S636中,第二FTL 114b可以将第二读取请求传送到存储器系统130。
在本公开技术的一些实施例中,步骤S638至S648可以对应于步骤S614至S624。在实施例中,在步骤S638至S648中,处理器154可以将第二读取命令和第二物理地址传送到存储器装置170,存储器装置170可以响应于第二读取命令来读取存储在第二物理地址中的第二读取数据,并且当读取操作成功完成时将第二读取数据传送到控制器150。存储器接口158可以将第二读取数据缓冲或临时存储在存储器156中。当处理器154将第二读取数据传送到第二主机110b时,锁定管理器160可以释放第二主机110b设置的读取锁定。
为了便于描述,尽管存储器装置170被示为在步骤S616的第一读取操作完成之后执行步骤S640的第二读取操作,但是存储器装置170可以同时执行第一读取操作与第二读取操作。例如,第一物理地址和第二物理地址属于不同的管芯,第一读取操作和第二读取操作可以并行执行,因此存储器装置170可以同时执行第一读取操作与第二读取操作。
即使在多于一个主机尝试访问相同物理地址的情况下,本公开技术的一些实施例也可以提供优化的性能。在上面讨论的示例中,当第一读取命令操作完成时,如果将通过排队的第二读取命令访问的第二物理地址与第一物理地址相同,则可以将基于第一读取命令通过存储器接口158读出并缓冲的第一读取数据通过主机接口152传送到第二主机110b。
通过示例而非限制的方式,图5A和图6A示出了每个主机将读取锁定请求或写入锁定请求传送到存储器系统130,然后在从存储器系统130接收到指示已经设置锁定的锁定设置信号之后,将读取命令或写入命令传送到存储器系统130。在其他实施例中,只要以有序方式管理优先级队列,主机就可以将读取命令或写入命令传送到存储器系统130,而不管锁定设置信号。
在实施例中,每个主机可以将包括写入锁定请求的写入命令传送到存储器系统130。类似地,每个主机可以将包括读取锁定请求的读取命令传送到存储器系统130。
例如,当主机将写入命令以及FTL元数据和写入数据传送到存储器系统130时,存储器系统130可以检查锁定状态。当那时没有设置锁定时,存储器系统130可以设置写入锁定并执行写入操作。存储器系统130可以响应于写入命令来检查锁定状态,并且当存在另一主机设置的锁定时,将写入锁定失败信号传送给主机。
图7示意性地示出了基于一些实施例的可以包括在存储器装置和多个主机中的数据。
在计算环境100中,第一主机110a和第二主机110b可以与存储器系统130通信并使用存储器系统130。第一主机110a和第二主机110b可以分别包括文件系统112a和112b、FTL114a和114b、存储器116a和116b以及装置驱动器118a和118b。存储器系统130可以包括控制器150和存储器装置170。控制器150可以包括主机接口152、处理器154、存储器156、存储器接口158、锁定管理器160和同步管理器162。
存储器装置170可以包括多个存储区域。例如,一个存储区域可以包括一个或多个块或一个或多个页面。
在实施例中,锁定管理器160可以针对存储器系统130的每个存储区域设置或释放锁定。存储器156可以存储各个存储区域的读取锁定状态和写入锁定状态。图7示出了用于存储表的存储器156的示例,该表包括指示存储区域的索引字段和指示各个存储区域的读取锁定状态和写入锁定状态的锁定状态字段。
同步管理器162可以同步存储器系统130的FTL元数据。在实施例中,同步管理器162可以对应于图3所示的同步管理器162。例如,当一个存储区域对应于一个块时,第一主机110a可以生成第一更新FTL元数据以将第一写入数据写入存储器系统130。当包括在第一更新FTL元数据中的物理地址是第一块内的地址时,第一主机110a可以传送用于访问存储器装置170的第一块的第一写入锁定请求。
当第一块中未设置读取锁定和写入锁定时,锁定管理器160可以响应于第一写入锁定请求来设置写入锁定。
在一些实施例中,即使在第二主机对第二块设置了写入锁定的情况下,第一块的FTL元数据也不被更新。因此,当锁定管理器160确定没有对存储器装置170的第一块设置锁定时,锁定管理器160可以基于第一写入锁定请求来设置第一主机对第一块的写入锁定。
在对第二块的写入操作成功完成之后,写入锁定被释放,并且同步管理器162更新FTL元数据的版本值,并将写入锁定释放信号传送到多个主机。响应于写入锁定释放信号,第一主机110a和第二主机110b可以确定存储在第一存储器116a和第二存储器116b中的FTL元数据的版本值是否与存储在存储器156中的FTL元数据的版本值一致并且同步FTL元数据。
图8示意性地示出了支持单根I/O虚拟化(SR-IOV)的开放通道存储器系统与主机通信的计算环境100的示例。
在实施例中,存储器系统130可以是支持SR-IOV的开放通道存储器系统。
存储器系统130可以包括控制器150和存储器装置170。控制器150可以包括主机接口152、处理器154、存储器156、存储器接口158、锁定管理器160和同步管理器162。
一个或多个主机110可以与存储器系统130通信并使用存储器系统130。主机110可以使用多个虚拟机。由于存储器系统130支持SR-IOV,因此即使主机110通过单个物理端口进行通信,主机110内的多个虚拟机也可以独立地将命令传送到存储器系统130并与存储器系统130通信数据。
由于存储器系统130是开放通道存储器系统,因此多个虚拟机可以独立地执行FTL操作以使用物理地址访问存储器系统130。在一些实施例中,多个虚拟机中的每一个可以使用其自己的文件系统、FTL和装置驱动器。
在一些实施例中,主机110可以操作第一虚拟机810a和第二虚拟机810b。第一虚拟机810a和第二虚拟机810b可以被加载到主机110的存储器(未示出)和主机110内的处理器(未示出)。
第一虚拟机810a可以执行与第一文件系统812a、第一FTL 814a和第一装置驱动器818a相关联的操作,并且第二虚拟机810b可以执行与第二文件系统812b、第二FTL 814b和第二装置驱动器818b相关联的操作。
第一虚拟机810a和第二虚拟机810b可以执行由第一FTL 814a和第二FTL 814b提供的操作,以将文件系统的逻辑地址分别直接转换为物理地址,从而访问存储器系统130。主机110内的存储器(未示出)可以存储第一FTL 814a和第二FTL 814b的操作数据。为了便于描述,图8示出了第一存储器816a存储第一FTL 814a的FTL元数据,第二存储器816b存储第二FTL 814b的FTL元数据。在其他实施例中,第一存储器816a和第二存储器816b可以是相同的存储器装置。
由于多个虚拟机独立地向存储器系统130写入数据并更新内部FTL元数据,因此当各个虚拟机的内部FTL元数据彼此不同步时,虚拟机可能导致错误。例如,虚拟机可能通过从错误的地址读取不期望的数据或通过对已经写入数据的存储区域执行写入操作而导致错误。
在实施例中,当接收到多个虚拟机之间的第一虚拟机810a的写入锁定请求时,存储器系统130可以基于存储器装置170的锁定状态来设置写入锁定,从第一虚拟机810a接收写入命令、写入数据和更新的FTL元数据,并且执行写入操作。
当写入操作完成时,存储器系统130可以释放写入锁定,并且使多个虚拟机和存储器系统130的FTL元数据同步。以这种方式,存储器系统130可以防止虚拟机从错误的地址读取不期望的数据或者对已经写入数据的存储区域执行写入操作。因此,可以提高计算环境100的可靠性。
图9示意性地示出了基于本公开技术的一些实施例而实施的用户系统。
参照图9,用户系统6900可以包括用户接口6910a和6910b、存储器模块6920a和6920b、应用处理器6930a和6930b、网络模块6940a和6940b以及存储模块6950。
存储模块6950可以存储数据,例如从应用处理器6930a和6930b接收的数据,然后可将所存储的数据传送到应用处理器6930a和6930b。存储模块6950可以由诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存的非易失性半导体存储器装置实施,并且可以被提供为用户系统6900的诸如存储卡或外部驱动器的可移除存储介质。
存储模块6950可以对应于参照图1至图8描述的存储器系统130。基于一些实施例而实施的存储模块6950可以基于存储模块6950中是否设置了锁定来设置写入锁定,当从应用处理器6930a接收到第一写入锁定请求时,在写入锁定状态下使用从应用处理器6930a接收的写入命令、写入数据和更新的FTL元数据执行写入操作,在写入操作完成时释放写入锁定,并且控制多个应用处理器6930a和6930b与存储模块6950的内部FTL元数据同步。
多个应用处理器6930a和6930b可以对应于参照图1至图8描述的第一主机110a和第二主机110b。更具体地,应用处理器6930a和6930b可以执行与用户系统6900中包括的例如操作系统(OS)的组件相关联的指令,并且包括控制用户系统6900中包括的组件的控制器、接口和图形引擎。应用处理器6930a和6930b可以被设置为片上系统(SoC)。
存储器模块6920a和6920b可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920a和6920b可以包括诸如动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR)SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2SDRAM或LPDDR3 SDRAM的易失性随机存取存储器(RAM),或者诸如相变RAM(PRAM)、电阻式RAM(ReRAM)、磁阻RAM(MRAM)或铁电RAM(FRAM)的非易失性RAM。例如,可以基于堆叠封装(PoP)来封装并安装应用处理器6930a和存储器模块6920a、以及应用处理器6930b和存储器模块6920b。
网络模块6940a和6940b可以与外部装置通信。例如,网络模块6940a和6940b可以支持有线通信或无线通信。无线通信方案的示例包括码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(WiMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与有线/无线电子装置或特别是移动电子装置通信。因此,基于本公开技术的实施例的存储器系统、主机系统和计算环境可以被应用于有线/无线电子装置。网络模块6940a可以被包括在应用处理器6930a中,并且网络模块6940b可以被包括在应用处理器6930b中。
用户接口6910a可以包括用于在应用处理器6930a和外部装置之间通信数据和/或命令的接口。用户接口6910b可以包括用于在应用处理器6930b和外部装置之间通信数据和/或命令的接口。例如,用户接口6910可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
在本公开技术的一些实施例中,存储器系统可以包括:多个存储区域,每个存储区域可由多个主机访问;存储器,存储用于使文件系统适应由一个或多个存储区域所限制的约束的可执行指令;以及处理器,与存储器通信以从存储器读取可执行指令,从而从主机中待访问多个存储区域中的至少一个存储区域的一个主机接收对操作的请求;在确定当前没有对待访问的至少一个存储区域的锁定时,设置对待访问的至少一个存储区域的锁定;更新文件系统元数据以匹配由主机中访问至少一个存储区域的一个主机使用的文件系统元数据;并且更新与至少一个存储区域相关联的文件系统元数据的版本值。
可执行指令进一步包括使处理器进行以下操作的指令:使主机中请求对由主机中的一个主机正在访问的至少一个存储区域的操作的另一个主机排队。可执行指令进一步包括使处理器进行以下操作的指令:使主机中的另一个主机排队以在主机中的一个主机完成操作时向主机中的另一个主机发送锁定释放信号。
可执行指令进一步包括使处理器进行以下操作的指令:使主机中的另一个主机排队以将所更新的文件系统元数据和所更新的版本值通知给主机中的另一个主机,该主机中的另一个主机请求对主机中的一个主机正在访问的至少一个存储区域的操作。可执行指令进一步包括使处理器进行以下操作的指令:使主机中的另一个主机排队以在从主机中的一个主机接收到对操作的请求时发送文件系统元数据的当前版本值。
锁定包括写入锁定和读取锁定中的至少一个,写入锁定和读取锁定分别指示至少一个存储区域进行写入操作和读取操作。这里,文件系统元数据包括由闪存转换层(FTL)使用的元数据。文件系统元数据包括:地址映射表,存储物理地址和与所请求的操作相关联的逻辑地址之间的映射。文件系统元数据进一步包括:块状态信息,指示至少一个存储区域是否可用于写入操作。由主机中的访问至少一个存储区域的一个主机所使用的文件系统元数据包括用于执行所请求的操作的地址映射表。
在本公开技术的一些实施例中,存储器系统可以包括:多个存储区域,每个存储区域可由多个主机访问;存储器,存储用于使文件系统适应由一个或多个存储区域限制的约束的可执行指令;以及处理器,与存储器通信以从存储器读取可执行指令,从而从主机中的一个主机接收访问多个存储区域中的至少一个存储区域的请求,该请求包括对多个存储区域中的至少一个存储区域的锁定请求;确定锁定请求和主机中的另一个主机当前设置的另一锁定之间是否存在冲突;并且在确定不存在冲突时,针对至少一个存储区域设置锁定。
这里,确定是否存在冲突包括:确定主机中的一个主机的锁定请求和主机中的另一个主机当前设置的另一锁定是否都针对多个存储区域中的至少一个存储区域的写入操作。在这种情况下,可执行指令进一步包括使处理器进行以下操作的指令:在确定主机中的一个主机的锁定请求和主机中的另一个主机当前设置的另一锁定都针对写入操作时,使主机中的一个主机所请求的写入操作排队,以防止主机中的一个主机访问至少一个存储区域。可执行指令进一步包括使处理器进行以下操作的指令:在与主机中的另一个主机设置的另一锁定相关联的操作完成时,更新文件系统元数据以匹配由主机中的另一个主机使用的文件系统元数据,并更新与主机中的另一个主机设置的另一锁定相关联的文件系统元数据的版本值。
可执行指令进一步包括使处理器进行以下操作的指令:将所更新的文件系统元数据和所更新的版本值通知给主机中请求对主机中的另一个主机正在访问的至少一个存储区域的操作的一个主机。可执行指令进一步包括使处理器进行以下操作的指令:在与主机中的另一个主机设置的另一锁定相关联的操作完成时,向主机中的一个主机发送锁定释放信号的指令。
此外,确定是否存在冲突包括:确定主机中的一个主机的锁定请求和主机中的另一个主机当前设置的另一锁定是否都针对多个存储区域中的至少一个存储区域的读取操作。在这种情况下,可执行指令进一步包括使处理器进行以下操作的指令:使主机中的一个主机访问至少一个存储区域。
文件系统元数据包括由闪存转换层(FTL)使用的元数据。文件系统元数据包括:地址映射表,存储物理地址和与所请求的操作相关联的逻辑地址之间的映射。
在本公开技术的实施例中,可以提供一种计算环境,该计算环境能够支持与存储器系统通信的多个主机中包括的FTL元数据的同步。
尽管出于说明性目的描述了各个实施例,但是对于本领域技术人员来说将显而易见的是,在不脱离如所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:主机自适应存储器装置优化