管理不对称存储器系统的写性能的制作方法

文档序号:9583647阅读:241来源:国知局
管理不对称存储器系统的写性能的制作方法
【技术领域】
[0001] 本文献一般地涉及管理不对称存储器系统中的写性能。
【背景技术】
[0002] 计算机系统通常使用用于存储数据的存储器模块。通过包括诸如闪速存储器的非 易失性计算机存储器的存储卡来实现存储器模块中的一些。

【发明内容】

[0003] 本公开描述了用于管理基于非易失性随机存取存储器(NVRAM)的存储子系统的 写性能的方法和系统。
[0004] 在一个方面,一些实施方式包括管理包括非易失性随机存取存储器(NVRAM)装置 的基于所托管的NVRAM的存储子系统的方法。所述方法包括:在主机计算装置上的装置驱 动器处接收写请求,每个写请求均请求将数据的相应单元写入基于NVRAM的存储子系统; 将写请求分类为写请求的子群组,其中,各个子群组内的写请求是互斥的;确认所述基于 NVRAM的存储子系统的多个NVRAM装置中的每一个的负载状况;根据所述基于NVRAM的存 储子系统的NVRAM装置的所确认的负载状况,识别用于处理所述写请求的特定子群组的、 在至少一个NVRAM装置上的目标位置;通过将数据的对应单元写入所述基于NVRAM的存储 子系统的所述至少一个NVRAM装置上的所识别的目标位置来处理所述写请求的特定子群 组。
[0005] 实施方式可包括以下特征中的一个或多个。处理所述写请求的特定子群组可包括 将被归类在写请求的子群组中的一个中的第一写请求的数据的相应单元写入第一目标位 置处,并且将被归类在写请求的子群组中的另一个中的第二写请求的数据的相应单元写入 第二目标位置处,其中,所述第一目标位置和所述第二目标位置被分开存储器位置的距离, 否则在写入所述第一写请求和所述第二写请求的数据的相应单元之前,数据被存储在所述 存储器位置内。
[0006] 处理所述写请求的特定子群组还可包括将被归类在写请求的第一子群组内的写 请求的数据的对应单元投影成在被写入之后具有有效期的第一分布,并且将被归类在写请 求的第二子群组内的写请求的数据的对应单元投影成在被写入之后具有有效期的第二分 布,其中,所述第一分布和所述第二分布在统计学上互不相同。多个自发性或统计学测试可 用于确定两个分布从统计学上说是否不同,例如,斯氏t检验、AN0VA分析等。
[0007] 将写请求分类成写请求的子群组可包括以数据的相应单元的第一大小分布来产 生写请求的第一子群组;以数据的相应单元的第二大小分布来产生写请求的第二子群组, 其中,所述第一大小分布和所述第二大小分布在统计学上彼此不同。
[0008] 将写请求分类成写请求的子群组可包括以第一到达时间分布产生在所述装置驱 动器处接收的写请求的第一子群组;以第二到达时间分布产生在所述装置驱动器处接收的 写请求的第二子群组,其中,所述第一到达时间分布和所述第二到达时间分布在统计学上 彼此不同。
[0009] 将写请求分类成写请求的子群组可包括产生来自线程的一个群组的写请求的特 定子群组,所述线程的一个群组与在托管基于NVRAM的存储系统的计算装置上的特定应用 相关联。
[0010] 将写请求分类成写请求的子群组可包括将写请求分类成写请求的第一子群组和 写请求的第二子群组,并且其中,所述第一子群组中的写请求请求写入比所述第二子群组 中的写请求的数据的相应单元更快改变的数据的相应单元。
[0011] 所述的方法还可包括:改进因将多个写请求的数据的相应单元写入所述基于NVRAM的存储子系统而造成的写放大开销。改进所述写放大开销可包括通过将接收到的写 请求分类来减少已经被重新定位的数据的聚集量,其中数据被重新定位以释放所述至少一 个NVRAM装置上的至少一个位置,以便所述基于NVRAM的存储子系统处理在已经接收到多 个I/O访问请求之后到达的至少一个写请求。
[0012] 所述方法还可包括:从候选擦除块的池中选择启用擦除块,所述启用擦除块包括 用于容纳特定写请求的数据的相应单元的多于一个写页。选择所述启用擦除块可以基于所 述候选擦除块中的每一个上的有效数据的量。选择所述启用擦除块可以基于所述启用擦除 块上的负载分布。选择所述启用擦除块可以基于特定写请求的数据的相应单元的预期寿 命。
[0013] 所述方法还可包括:跟踪所述候选擦除块的池中的候选擦除块中的每一个的擦除 计数,其中所述擦除计数指示所述擦除块已经经历擦除操作的次数。所述方法可另外包括: 响应于候选擦除块的指示所述候选擦除块已经经历小于候选擦除块的池的平均擦除操作 的50%的擦除计数,选择用于容纳数据的相应写页的擦除块。
[0014] 所述方法还可包括跟踪与每个候选擦除块相关联的硬件资源的利用,其中,选择 所述启用擦除块使得所有候选擦除块的相应利用变得相互分歧更少。所述硬件资源可包括 适于在选自候选擦除块的池中的启用擦除块上执行读写操作的直接存储器访问(DMA)通 道。
[0015] 将多个写请求分类成写请求的子群组包括确定所述多个写请求中的特定写请求 是时延敏感还是吞吐量敏感。当写请求是将在接收时被处理时,写请求是时延敏感的。当 数据的相应单元将伴随确证被写入时,写请求是吞吐量敏感的。确定特定写请求是延时敏 感还是吞吐量敏感还可包括:确认每所述特定写请求要写入的数据的相应单元的块大小; 识别发布所述写请求的应用进程或线程。
[0016] 所述方法还可包括基于确定所述特定写请求是时延敏感的,将所述特定写请求调 度成向所述基于NVRAM的存储子系统的异步写,其中,所述异步写是通过将数据的相应单 元发送到中间易失性存储,并且无需确证该写请求的数据的相应单元已经被完全写入所述 基于NVRAM的存储子系统的所述至少一个NVRAM装置上的所述目标位置而被执行;基于确 定所述特定写请求是吞吐量敏感的,将所述特定写请求调度成向所述基于VNRAM的存储子 系统的同步写,其中,所述同步写是通过阻断已经发布所述特定写请求的、在托管所述基于 NVRAM的存储子系统的计算装置上的应用进程或线程,直到数据的相应单元已经被完全写 入所述基于NVRAM的存储子系统的所述至少一个NVRAM装置而被执行的。
[0017] 被确定为时延敏感的写请求的数据的相应单元的大小可小于被确定为吞吐量敏 感的写请求的数据的相应单元的大小,其中被归类为时延敏感的写请求的子群组可包括由 所述主机计算装置上的应用进程或线程的第一集合发出的写请求,其中被归类为吞吐量敏 感的写请求的子群组可包括由所述主机计算装置上的应用进程或线程的第二集合发布的 写请求,其中所述应用进程或线程的第一集合的大小可小于所述应用进程或线程的第二集 合的大小。
[0018] 被确定为吞吐量敏感的写请求的数据的相应单元的大小可大于被确定为时延敏 感的写请求的数据的相应单元的大小。被归类为时延敏感的写请求的子群组可包括由所述 主机计算装置上的应用进程或线程的第一集合发布的写请求。被归类为吞吐量敏感的写请 求的子群组可包括由所述主机计算装置上的应用进程或线程的第二集合发布的写请求。所 述应用进程或线程的第二集合的大小明显大于所述应用进程或线程的第一集合的大小。
[0019] 所述方法还可包括:将确认的负载状况与负载阈值进行比较,基于产生所确认的 负载状况在所述负载阈值内的比较,通过所述基于NVRAM的存储子系统上的中间易失性存 储,作为异步写来写入数据的对应单元,其中,所述异步写可通过向所述中间易失性存储 发送数据的相应单元,并且无需确证写请求的数据的相应单元已经被完全写入所述基于 NVRAM的存储子系统的所述至少一个NVRAM装置上的所述目标位置而被执行;基于产生所 确认的负载状况超过所述负载阈值的比较,通过所述基于NVRAM的存储子系统上的所述中 间易失性存储,作为同步写来所述数据的对应单元,或者绕过所述基于NVRAM的存储子系 统上的所述中间易失性存储,其中,所述同步写通过阻断已经发布写请求的、在所述主机计 算装置上的应用进程或线程,直到数据的相应单元已经被完全写入所述基于NVRAM的存储 子系统的至少一个NVRAM装置而被执行。
[0020] 确认所述基于NVRAM的存储子系统的特定NVRAM装置的负载状况包括确定以下中 的至少一个:在所述特定NVRAM装置处的挂起的I/O访问请求的数目、具有I/O访问积压的 应用进程或线程的数目、在所述特定NVRAM装置上的物理单元的可用性、或挂起的写请求 的队列占用比率。
[0021] 确认所述队列占用比率可涉及特定NVRAM装置上的控制器处的挂起的写请求的 队列或者上面安装至少一个NVRAM装置的主机计算装置上的装置驱动器处的挂起的写请 求的队列。所述队列占用比率可检测写请求的特定队列是否超过录入的阈值数目。
[0022] 在另一个方面,一些实施方式包括一种包括基于非易失性随机存取存储器 (NVRAM)的存储子系统的系统。所述基于NVRAM的存储子系统包括至少一个NVRAM装置,其 中所述基于NVRAM的存储子系统与主机计算装置进行通信,其中所述基于NVRAM的存储子 系统被构造成:从所述主机计算装置接收写请求,每个写请求均请求将数据的相应单元写 入所述基于NVRAM的存储子系统,其中所述基于NVRAM的存储子系统包括至少一个NVRAM 装置;将所述写请求分类为写请求的子群组,其中各个子群组内的写请求是互斥的;确认 所述基于NVRAM的存储子系统的多个NVRAM装置中的每一个的负载状况;根据所述基于 NVRAM的存储子系统的至少一个NVRAM装置的所确认的负载状况,识别用于处理写请求的 特定子群组的、在所述至少一个NVRAM装置上的目标位置;通过将数据的对应单元写入在 所述至少最后一个NVRAM装置上的所识别的目标位置来处理所述写请求的特定子群组。
[0023] 实施方式可包括以下特征中的一个或多个。所述基于NVRAM的存储子系统还可包 括所述至少一个NVRAM装置上的中间易失性存储和由控制器提供的逻辑保障机制,其中所 述由控制器提供的逻辑保障机制可在所述基于NVRAM的存储子系统意外断电的情况下,将 所述中间易失性存储中的数据内容写入所述至少一个NVRAM装置上的闪存介质。
[0024] 所述基于NVRAM的存储子系统还可被构造成:将所确认的负载状况与负载阈值进 行比较;基于产生所确认的负载状况在所述负载阈值内的比较,通过所述基于NVRAM的存 储子系统上的中间易失性存储,作为异步写来写入数据的对应单元,其中,所述异步写可通 过向所述中间易失性存储发送数据的相应单元,并且无需确证写请求的所述数据的相应单 元已经被完全写入所述基于NVRAM的存储子系统的所述至少一个NVRAM装置上的所述目标 位置而被执行;以及基于产生所确认的负载状况超过所述负载阈值的比较,通过所述基于 NVRAM的存储子系统上的所述中间易失性存储,作为同步写来写入数据的对应单元,或者绕 过所述基于NVRAM的存储子系统上的所述中间易失性存储,其中,所述同步写通过阻断已 经发布写请求的、在所述主机计算装置上的应用进程或线程,直到数据的相应单元已经被 完全写入所述基于NVRAM的存储子系统的所述至少一个NVRAM装置而被执行。所述基于 NVRAM的存储子系统进一步包括适于处理写请求的直接存储器存取(DMA)通道。
[0025] 以上技术的实施方式包括方法、计算机程序产品和系统。计算机程序产品适当地 在非暂时性机器可读介质中实现并且包括一个或多个处理器可执行的指令。这些指令被构 造成使得一个或多个处理器执行上述动作。
[0026] 所述系统包括一个或多个处理器和能由一个或多个处理器执行的、嵌入非暂时性 机器可读介质中的指令。这些指令当被执行时被构造成使得一个或多个处理器执行上述动 作。
[0027] 在附图和下面的描述中阐述了本说明书中描述的主题的一个或多个方面的细节。 根据描述、附图和权利要求,主题的其它特征、方面和优点将变得清楚。
【附图说明】
[0028] 图1A是图示根据一些实施方式的主机计算装置和NVRAM的图。
[0029] 图1B是示出根据一些实施方式的示例NVRAM的图。
[0030] 图2是根据一些实施方式的具有多级控制器的NVRAM装置的图。
[0031] 图3是根据一些实施方式的监视度量并且报告I/O错误的流程图。
[0032] 图4是根据一些实施方式的将带缺陷的物理区映射到NVRAM上的方法的流程图。
[0033] 图5是根据一些实施方式的减小写放大开销的方法的流程图。
[0034] 图6是基于每个入站(in-bound)写请求的相应特性而差异调度入站写请求的方 法的流程图。
[0035] 图7是图示根据一些实施方式的对NVRAM的I/O操作的时延的时序图。
[0036] 图8是基于目标NVRAM装置的负载状况而差异调度入站写请求的方法的流程图。
[0037] 各种附图中的相同附图标记指示相同的元件。
【具体实施方式】
[0038] 诸如N0R或NAND闪存装置的非易失性存储器装置可被配置成充当用于企业数据 存储和互联网数据中心应用的存储类装置。这种数据存储应用可包括例如备份文件服务 器、响应于用户查询的大型数据库应用、提供在线白页服务的分布式目录服务、与云计算关 联以提供某种形式的云服务的其它应用。在一些数据存储应用中,NOR和NAND闪存装置可 用作机械旋转的介质存储装置的附属物。
[0039] 相比于SRAM或DRAM,这些非易失性存储器装置(NVMD)不需要恒定的刷新电流来 保持存储在闪存介质存储器单元上的数据内容。例如,NVMD可在没有刷新电流的情况下将 数据内容保持数十年。另一方面,这些NVMD装置上所存储的数据内容可以或者可以不以 其它类型存储器(诸如,易失性存储器)的粒度被访问。以上已经提到了两种类型的闪速 存储器,即,NAND和N0R。这两种类型的闪速存储器具有各单元的不同基础的逻辑门布置。 NAND闪速存储器可按块(或页)进行写和读,这些块(或页)通常比整个装置的大小小得 多,但比单个字节大得多。相比之下,N0R闪速存储器可允许将被单独写入或读取的单个机 器字(字节)。另外,NVMD可包括诸如相变存储器的新兴类型的存储器。
[0040] 在这些NVMD上,每个I/O操作的时延可取决于非易失性存储器装置的密度或处理 技术以及特定区域中的薄弱(或劣化)的存在,如以下说明的。
[0041] 在这些NVMD上,闪速存储器使用浮栅晶体管将数据存储在个体存储器单元中。已 经开发出各种存储器单元技术,包括,例如单层单元(SLC)和多层单元(MLC)。SLC可具有 两种可能的状态,进而编码一位数据。通过闪存单元的阈值电压Vt确定"0"或"1"。可通 过闪存单元的浮栅上增加的电荷量来操纵阈值电压。基于SLC存储器单元的闪速存储器芯 片可被称为SLC闪速存储器。相比之下,MLC可允许使用每单元相同数目的晶体管来存储 更多的位。基于MLC存储器单元的闪速存储器芯片可被称为MLC闪速存储器。一些MLC单 元可编码两位信息,S卩,"11"、"10"、"01"和"00"。编码是通过特定闪存单元的阈值电压¥七 的进一步细分来确定的,其进而是通过特定闪存单元的浮栅上增加的电荷量来操纵的。值 得注意,一些闪存单元可编码多于两位的信息。事实上,一些闪存单元可通过阈值电压范围 的更进一步的细分来编码例如三位的信息。这个数目增加的状态减少了分离编码状态的阈 值电压的余量的量。减少的余量导致MLC闪速存储器上的诸如读写的I/O操作相比于在可 比较尺寸的SLC闪速存储器上出现更多错误的情况增加。被设计用于相对低I/O错误率的 MLC闪速存储器有时被称为企业级MLC(eMLC)闪速存储器。
[0042] SLC和MLC的读取速度可以是可比较的。对闪存单元的电荷层的读取使用电压比 较器来比较阈值电压。因此,SLC和MLC之间的架构差异没有影响感测。通常,闪存的读取 速度是由使用哪个控制器来确定的。
[0043] SLC闪速存储器可具有更快的写速度、更低的功耗和更高的单元耐久性的优点。由 于更快的传递速度和更长的寿命,SLC闪存技术被用于高性能存储卡中。然而,因为SLC闪 速存储器每单元存储的数据较少,所以其存储的每兆字节要花费更高成本来制造。
[0044] 相比之下,MLC闪速存储器的主要益处可包括由于数据密度较高,其每存储单元的 成本较低。然而,相比于可比较尺寸的SLC闪速存储器,MLC闪速存储器会更容易有I/O错 误。可依赖于更复杂的错误检测和校正算法来处理这些I/O错误。相比于可比较尺寸的 SLC闪速存储器,MLC闪速存储器的其它缺陷可包括较低的写速度和擦除速度、较少数目的 编程-擦除周期和较高的功耗。
[0045] 因此,SLC闪速存储器倾向于提供比可比较尺寸的MLC闪速存储器更快的存储器 存取。然而,相比于可比较的MLC装置,SLC装置通常提供每单位成本更小的容量。因出现 I/O错误的可能性增加,MLC装置相对于SLC可能经历噪声更多的I/O特性。
[0046] -旦特定类型的NVMD被构造为存储类装置,这些非易失性存储器装置的性能就 可以是特定于操作的。如本文中针对这个应用使用的,适于存储类应用的这些非易失性存 储器装置可被称为非易失性随机存取存储器(NVRAM),与没有向存储器提供随机存取、仅仅 能在通过机械旋转和扫描臂访问的柱面、磁头和扇区中串行化存储的动态随机存取存储器 (DRAM)和硬盘装置(HDD)区分开。在这个背景下,可在这个应用中可互换地使用NVRAM和 NVMD〇
[0047] NVRAM装置可快得多地(例如,比具有旋转盘和机械臂阵列以访问特定的柱面、磁 头、或扇区的硬盘装置快不止一百倍)执行某些种类的存储器操作(例如,读操作)。但是, 非易失性存储器装置可具有导致不仅比与动态随机存取存储器(DRAM)相关联的操作慢而 且也比其它NVRAM操作慢的其它存储器操作的物理限制。例如,NVRAM装置的写操作和擦 除操作可比NVRAM装置上的读操作慢得多。I/O访问时间的这种
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1