当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于减少未对齐的写入操作的写入放大的缓冲器制造技术

技术编号:28945261 阅读:19 留言:0更新日期:2021-06-18 21:57
本文的示例涉及一种存储系统,该存储系统分别处理相对于来自存储设备的可取回分段是对齐的和未对齐的写入操作的部分。针对未对齐的部分,缓冲器可以用于存储未对齐的可取回分段,并且利用提供有写入操作的内容来更新这些段。与写入请求相关联的内容的对齐的部分可以被直接地写入到存储介质或覆写缓冲器中出现的对应的可取回分段。表或阵列可以跟踪与缓冲器中或存储装置中的内容相对应的逻辑块地址。缓冲器中的内容可以被保存在缓冲器中,而不会被备份或持久化到存储装置,直到发生诸如断电或缓冲器中的空间不足之类的触发事件。

【技术实现步骤摘要】
用于减少未对齐的写入操作的写入放大的缓冲器
技术介绍
固态驱动器(SSD)可以包括非易失性存储器管芯的一个或多个封装。在一些实现方式中,管芯由存储器单元组成,存储器单元被组织成页,并且页被组织成块。存储器单元可以存储信息的一个或多个位。针对存储装置访问请求,基于NAND的SSD可以使用间接表,该间接表提供逻辑地址的逻辑块地址到物理块地址(L2P)的转换(例如,逻辑块地址(LBA)到NAND物理块地址(PBA)的转换)。附图说明图1描绘了系统的示例。图2描绘了示例表格式。图3描绘了用于处理要被写入到存储装置的内容的对齐的和未对齐的部分的过程。图4描绘了用于标识缓冲器中的槽位的指针的格式。图5描绘了用于管理缓冲器清理的过程。图6描绘了系统。图7描绘了数据中心环境。具体实施方式在具有可访问存储装置或存储器的计算机系统中,各种操作系统(OS)以5xxB(例如,512B、520B和528B)或4xxxB(例如,4096B和4160B)的LBA扇区大小发出写入请求(其中B表示字节)。在可预见的将来,预期LBA扇区大小不会增长,但是可以取决于文件系统(FS)的规格而改变。在一些示例中,SSD使用4千位字节(KiB)间接单元(IU)大小以将LBA映射到介质(例如,NAND闪存)的物理地址。以4KiB(4096字节)间接单元(IU)粒度且每个条目4字节存储NAND物理块地址的L2P表对于SSD逻辑存储器容量的每十亿字节(GiB)而言消耗1兆字节(MiB)的易失性存储器空间。L2P表因此使用1GiB的易失性存储器用于1太字节(TiB)SSD项目标识符(其中SSD具有1TiB逻辑容量,而其物理容量可能更大),并且16GiB的易失性存储器用于16TiBSSD(具有用于存储用户数据的16TiB的NAND的SSD)。随着SSD容量的增长,IU大小预期增长到16KiB以及甚至64KiB。随着IU大小的增长,针对可用的易失性存储器(或用于存储L2P表的其他介质)的要求也会增长,但是针对表的可用的存储器空间可能会受到限制。当写入请求的LBA范围与IU开始和结束地址边界未对齐时,会发生不对齐的主机写入。换言之,当写入请求的开始和结束LBA范围与IU的相应的开始和结束LBA不对应时,会发生不对齐的或未对齐的写入请求。相比之下,当写入请求的开始和结束LBA范围与IU的相应的开始和结束LBA范围相对应时,会发生对齐的写入请求。写入放大指代被写入到存储介质的数据量除以与写入请求相关联的数据量。未对齐的写入可以引入高于一(1)的SSD写入放大(WA)。随着IU大小继续增加,来自未对齐的写入请求的写入放大将进一步增加。例如,除了与数据读取、数据修改、数据写入(读取-修改-写入)操作相关联的性能损失(例如,NAND页读取时间)之外,对具有4KiBIU的SSD的一个512B主机写入将被放大8倍。例如,如果IU大小为4KiB并且主机只向LBA0(单个扇区)写入,则写入是未对齐的。IU0(LBA0到LBA7)的读取发生,LBA0的数据利用来自主机的数据被更新,然后LBA0到LBA7利用更新后的LBA0被写回到介质。由于一个LBA对应于被写入到存储装置的8个LBA,因此这个示例具有为8的放大倍数。作为另一示例,如果IU大小为4KiB并且主机只向LBA1-LBA8写入,则写入是未对齐的。IU0(LBA0到LBA7)的读取发生,LBA1-LBA7的数据利用来自主机的数据被更新,然后LBA0到LBA7利用更新后的LBA1-LBA7被写回到介质。IU1(LBA8到LBA15)的第二读取发生,LBA8的数据被更新,然后写入LBA8到LBA15利用更新后的LBA8被写入到存储装置。注意,在一些情况下,IU0和IU1可以被读取,LBA1-LBA8被更新,并且更新后的IU0和IU1被写入到介质。由于8个LBA对应于被写入到存储装置的16个LBA,因此这个示例具有为2的放大倍数。另一示例提供了与IU0对齐的LBA0-LBA7的数据写入。LBA0-LBA7的数据被直接写入到介质,而无需读取-修改-写入。由于8个LBA的写入对应于被写入到存储装置的8个LBA,因此这个示例具有为1的放大倍数。各种实施例提供了主机写入的不对齐的部分到缓冲器的传输,以尝试减少SSD写入放大(WA)并改进性能。例如,各种实施例使用表或阵列来标识存储在存储装置中的可取回分段(例如,IU)是否在缓冲器中被复制。缓冲器可以用于存储可取回分段,并且数据写入的未对齐的内容会覆写缓冲器中的所存储的可取回分段。用户不需要手动将LBA映射到缓冲器,但可以这样做。相反,控制器可以检测主机写入的不对齐的部分,并将其自动地映射到缓冲器。缓冲器中的内容可以被保存在缓冲器中,而不会被备份或持久化到存储装置,直到诸如断电或缓冲器中的空间不足之类的触发事件的发生为止。在不损失一般性的情况下,集成存储器缓冲器(IMB)可以用作缓冲器的示例。然而,各种实施例可以提供其他形式的缓冲器,例如,持久性存储器区域(PMR)、非易失性双列直插式存储器模块(NVDIMM)、持久性存储器(例如,)等。此外,一些实现方式可以在SSD内部和/或在高速缓存控制器中(以硬件和/或主机软件)实现缓冲器。针对以许多未对齐的写入为特征的工作负载,各种实施例可以提供高达2-10倍的SSD级写入放大减少。不需要(但是可以)对逻辑块大小进行主机级改变,并且可以在不进行修改的情况下实现与现有的或未来的主机系统的兼容性同时尝试减少写入放大。可以在不进行任何主机级改变(包括设备驱动程序、文件系统和主机应用)的情况下实现性能益处。图1描绘了系统的示例。在一些示例中,主机系统100可以包括或访问处理器102和存储器104以执行应用、操作系统、文件系统或虚拟化执行环境。操作系统可以是例如:操作系统、专有的类UNIX操作系统或使用Linux内核的变型的开源类UNIX操作系统、或虚拟化执行环境可以至少包括虚拟机或容器。虚拟机(VM)可以是运行操作系统和一个或多个应用的软件。VM可以由规范、配置文件、虚拟磁盘文件、非易失性随机存取存储器(NVRAM)设置文件和日志文件来定义,并且由主机计算平台的物理资源来支持。VM可以是被安装在模仿专用硬件的软件上的操作系统(OS)或应用环境。终端用户在虚拟机上具有与他们将在专用硬件上具有的体验相同的体验。称为管理程序(hypervisor)的专门的软件完全地模拟PC客户端或服务器的CPU、存储器、硬盘、网络和其他硬件资源,从而使得虚拟机能够共享资源。管理程序可以模拟彼此隔离的多个虚拟硬件平台,从而允许虚拟机在同一底层物理主机上运行Linux和Windows服务器操作系统。容器可以是应用、配置和依赖关系的软件封装,因此应用可以在一个计算环境上与另一计算环境可靠地运行。容器可以共享被安装在服务器平台上的操作系统,并且作为独立的进程运行。容器可以是软件封装,其包含软件所需要的一切以运行例如系统工具、库和设置。容器没有像传统的软件程序那样被安装,这些软件程序允本文档来自技高网...

【技术保护点】
1.一种装置,包括:/n存储器,以及/n控制器,其用于接收写入请求,其中:/n基于所述写入请求具有不包含整个能够取回区域的相关联的内容,对在所述存储器中的缓冲器进行配置以存储能够取回区域和所述相关联的内容,并且/n基于所述写入请求具有包含整个能够取回区域的相关联的内容并且所述能够取回区域没有被存储在所述缓冲器中,将与所述写入请求相关联的内容提供给存储介质而不是所述缓冲器。/n

【技术特征摘要】
20191212 US 16/712,7031.一种装置,包括:
存储器,以及
控制器,其用于接收写入请求,其中:
基于所述写入请求具有不包含整个能够取回区域的相关联的内容,对在所述存储器中的缓冲器进行配置以存储能够取回区域和所述相关联的内容,并且
基于所述写入请求具有包含整个能够取回区域的相关联的内容并且所述能够取回区域没有被存储在所述缓冲器中,将与所述写入请求相关联的内容提供给存储介质而不是所述缓冲器。


2.根据权利要求1所述的装置,其中,所述控制器用于:
基于所述写入请求具有包含整个能够取回区域的相关联的内容并且所述能够取回区域被存储在所述缓冲器中,将所述相关联的内容存储在所述缓冲器中。


3.根据权利要求1所述的装置,其中,所述控制器用于:
基于所述写入请求具有包含整个能够取回区域但是不包含第二整个能够取回区域的相关联的内容而进行以下操作:
基于包含整个能够取回区域的所述相关联的内容没有被存储在所述缓冲器中,将所述相关联的内容的包含整个能够取回区域的一部分存储在所述存储介质中,并且
将所述相关联的内容的不包含所述第二整个能够取回区域的一部分存储到所述缓冲器中。


4.根据权利要求1所述的装置,其中,所述控制器用于:
更新表以标识所述存储介质中的与被写入到所述存储介质的内容相关联的地址。


5.根据权利要求1所述的装置,其中,所述控制器用于:
访问表以确定能够取回区域是否被存储在所述缓冲器中。


6.根据权利要求5所述的装置,其中,所述表包括至少一个条目,并且当条目用于指示能够取回区域被存储在所述缓冲器中时,所述条目包括具有特定值的令牌。


7.根据权利要求6所述的装置,其中,当条目指代被存储在所述缓冲器中的能够取回区域时,所述条目包括到存储所述缓冲器的存储器的偏移,所述偏移用于指示所述能够取回区域的开始存储位置。


8.根据权利要求5所述的装置,其中,当条目指示能够取回区域没有被存储在所述缓冲器中而是被存储在所述存储介质中时,所述条目不包括具有特定值的令牌,并且包括内容在所述存储介质中的开始存储位置。


9.根据权利要求1所述的装置,其中,所述能够取回区域包括至少一个间接单元(IU)。


10.根据权利要求1所述的装置,其中,所述缓冲器的使用用于减少写入放大,其中,写入放大包括被写入到存储介质的内容量除以与所述写入请求相关联的内容量。


11.根据权利要求1所述的装置,其中,所述控制器用于:
基于条件,将内容从所述缓冲器刷新到所述存储介质,并且更新表以指示内容被存储在所述存储介质中。


12.根据权利要求11所述的装置,其中,所述条件包括以下各项中...

【专利技术属性】
技术研发人员:李鹏J·B·卡恩S·N·特丽卡
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1