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

具有用于实现内部固态驱动器操作的外部软件执行的固态驱动器制造技术

技术编号:30207283 阅读:16 留言:0更新日期:2021-09-29 09:08
描述了一种方法。该方法包括执行来自计算系统的系统存储器的固态驱动器程序代码,以执行固态驱动器的垃圾收集、损耗均衡和逻辑块地址到物理块地址的转换例程中的任一项/全部,该固态驱动器耦合到系统存储器是其组件的计算系统。算系统。算系统。

【技术实现步骤摘要】
具有用于实现内部固态驱动器操作的外部软件执行的固态驱动器


[0001]本专利技术的领域大体涉及计算科学,并且更具体地,涉及具有用于实现内部固态驱动器操作的外部软件执行的固态驱动器。

技术介绍

[0002]随着云计算、“大数据”、人工智能和其他计算密集型环境的兴起,大容量存储装置正呈现为整体计算系统性能的关键的组件。因此,计算系统设计者一直在寻找减少延时、增加吞吐量、优化功率、和/或提供大容量存储设备的鲁棒性的方法。
附图说明
[0003]可以从结合以下附图的具体实施方式中获得对本专利技术的更好的理解,其中:
[0004]图1示出了具有固态驱动器的传统的计算系统;
[0005]图2示出了具有固态驱动器的改进的计算系统;
[0006]图3示出了由在系统存储器外执行的固态驱动器程序代码采用的数据结构;
[0007]图4示出了计算系统。
具体实施方式
[0008]图1示出了传统的多处理器计算机系统100。如图1所观察到的,计算机系统包括多个通用的、专用的和/或可重配置的处理核心101_1至101_N。处理核心中的每一个通常包括多个指令执行流水线,其中,这些流水线中的每一个都有其自己的专用L1高速缓存(为了便于说明,在图1中未示出)或便笺式存储器(scratch

pad memory)。每个处理核心还包括为其指令执行流水线提供服务的L2高速缓存102_1至102_N。处理核心101通过网络103互连到彼此、到L3高速缓存104(其为处理核心提供服务)、到系统存储器控制器105和外围控制集线器106。
[0009]如本领域中已知的,如果通过流水线中的一个执行的程序代码的线程需要不在流水线的寄存器空间中的数据,则该程序代码将执行存储器存取指令,该指令指定了所需的数据的存储器地址。不是立即从系统存储器107(也被称为“主”存储器)中提取数据,系统将替代地在流水线的L1高速缓存中查找数据项。如果该项不在L1高速缓存中,则系统接下来将查看流水线在其上被实例化的核心的L2高速缓存。如果该项不在L2高速缓存中,则系统将在L3高速缓存104中查找该数据项。如果该项不在L3高速缓存104中,则它将经由系统存储器控制器105(也被称为主存储器控制器105)从系统存储器107中提取该项。
[0010]各个核心的L1和L2高速缓存以及L3高速缓存104都是高速缓存一致的。高速缓存一致性是利用协议实现的(例如,在每个高速缓存位置处执行的修改的独占共享无效(MESI)协议),以确保系统不会写入两个不同的版本的数据项。在这里,由于流水线和/或核心中的一个或多个上的多个执行软件线程可能同时期望相同的数据,意图是利用新的信息
更新它,因此高速缓存一致性协议有效地防止两个不同的软件线程利用不同的数据写入数据的两个不同的实例。
[0011]如图1所观察到的,在各个核心上正在执行的线程中的每一个在系统存储器107中都有其自己的专用操作空间或“占用空间”108_1至108_M。通常,针对系统当前正在执行的每个软件应用,都存在这样的占用空间。每个占用空间108通常包括其对应的线程的程序代码指令和数据。然而,线程的占用空间通常不包含可以被执行的所有程序代码或可以由该线程操作的所有数据。因此,程序代码和/或存储器的页面从大容量存储装置109中被调出(call up),并根据需要被写入线程的占用空间中(通常不包括写回大容量存储装置以给新页面腾出空间的线程的占用空间中的其他页面)。
[0012]随着云计算、“大数据”、人工智能和其他计算密集型环境的兴起,大容量存储装置109逐渐呈现为整体计算系统性能的关键组件。在这里,许多软件应用需要访问远远超过在主存储器107中的应用的占用空间108的分配的数据量。因此,往往存在从大容量存储装置109中频繁地调用页面(如图1所观察到的,利用耦合到外围控制集线器(PCH)106的多个大容量存储设备110_1至110_X来实现大容量存储装置)。可以从大容量存储装置109中提取这样的页面的速度越快,应用将暂缓等待数据的页面从大容量存储装置109中被提取并被输入到系统存储器107中的风险就越小。
[0013]另外,为了再次满足针对大量数据的整体增长的需求,大容量存储设备自身110_1至110_X(例如,固态驱动器(SSD))的存储容量随着每一代新产品而稳定增长。
[0014]然而,增长的SSD容量的问题是每个SSD都预期支持的功能增加。在这里,每个SSD通常包括控制器和相关联的存储器,以执行监督SSD的操作的逻辑111_1至111_X。这种监督通常包括:1)损耗均衡(wear leveling);2)垃圾收集;以及3)逻辑块地址(LBA)到物理块地址(PBA)的转换。
[0015]如果SSD的物理存储介质块/单元(例如,NAND闪存、三维交叉点非易失性随机存取存储器(NVRAM)(例如,来自Intel公司的Optane
TM
存储器、来自Micron的QuantX
TM
存储器等))被太频繁地写入,则它们可能会劣化/磨损。因此,在执行损耗均衡时,SSD控制器逻辑111将跟踪其块中已经被最频繁地写入的块,并且在超过某个阈值时,将中断SSD操作以从其当前的块中读取“热”数据并将其写入到已经不那么频繁地写入的其他块中。
[0016]为了将热数据写入另一个块,必须首先“清理”另一个块。因此,为了支持损耗均衡,SSD控制器逻辑111还执行垃圾收集。垃圾收集是这样的过程:识别其数据陈旧(例如,其数据被移动到了另一个块)或几乎不被访问的块并准备将其用新数据盖写。在被识别的陈旧的块的情况下,块被擦除并被放置在要新近地被写入的合格的块的空闲列表上。在其数据不是陈旧的但几乎不被访问的块的情况下,该块的数据被读取并写入另一个块。该块然后被擦除并放置在空闲列表上。
[0017]因为SSD控制器逻辑111交换或改变存储有特定数据的物理块,所以SSD控制器逻辑111还执行LBA到PBA的地址转换。在这里,当较大的主机计算机系统期望访问数据的一个或多个特定页面时,它利用LBA识别数据。SSD控制器然后将LBA转换为数据实际驻留的SSD内的物理块。在这里,每当损耗均衡操作使得数据移动到不同的块时,就需要更新LBA到PBA表以反映SSD内的数据的新的物理位置。
[0018]不幸的是,随着SSD的存储容量的不断扩大,它们的损耗均衡、垃圾收集和LBA到
PBA的转换变得越来越计算密集,这转而又从主机的角度影响了SSD延时。即,随着每一代新的SSD,制造“更快的”SSD变得越来越困难。相反,与SSD的前几代相比,SSD存在表现出更长的平均读取/写入延时的风险。
[0019]更进一步,将计算密集型功能集成到SSD中以用于由SSD控制器执行会增加SSD功耗。因此,由于SSD存储容量扩大,SSD变得越来越慢,并且越来越耗电。
[0020]针对集成到系统中的每个SSD,SSD设备驱动程序软件实例通常被“插入到本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算系统,包括:多个处理核心;系统存储器控制器;外围控制集线器;耦合到所述外围控制集线器的固态驱动器;以及,耦合到所述系统存储器控制器的系统存储器,所述系统存储器包括用于在所述固态驱动器内执行以下操作中的任一项的程序代码:损耗均衡;垃圾收集;逻辑块地址(LBA)到物理块地址(PBA)的转换;用于带宽仲裁的所述固态驱动器的协商;介质块包装;冗余;错误检测;错误校正;数据刷新;加密;所述固态驱动器内的硬件加速器的配置;配置所述固态驱动器内的队列的深度和/或服务速率;以及,探听命令队列并且将用于所述固态驱动器的多个命令合并为单个命令。2.根据权利要求1所述的计算系统,其中,所述程序代码用于对所述固态驱动器内的寄存器空间进行编程。3.根据权利要求2所述的计算系统,其中,所述寄存器空间用于实现以下操作中的任一项:i)启用所述固态驱动器内的存储器芯片;以及,ii)启用所述固态驱动器内的静态的或动态的硬件加速器。4.根据权利要求2所述的计算系统,其中,所述寄存器空间用于指示以下各项中的任一项:i)所述错误检测是否要被启用;ii)所述错误检测的类型;以及,ii)要启用或/和应用的控制器状况或状态。5.根据权利要求1所述的计算系统,其中,所述程序代码能够被改换用途以用于由所述计算系统内的以下硬件单元中的任一项执行:通用处理核心;图形处理单元;现场可编程门阵列(FPGA);人工智能单元;以及,网络单元。6.根据权利要求1所述的计算系统,其中,所述程序代码用于顺序地启用所述固态驱动
器内的组件以在所述固态驱动器的启动期间通过所述固态驱动器实现阶梯功耗曲线。7.根据权利要求1所述的计算系统,其中,所述系统存储器包括用于所述计算系统的其他固态驱动器的程序代码的其他相应的实例,所述程序代码和程序代码的实例中的每一个被设计为将其相应的固态驱动器的命令队列暴露给更高级别的软件。8.根据权利要求7所述的计算系统,进一步包括存储在所述系统存储器中的负载均衡程序代码,以有利于向所述固态驱动器中的其命令队列占用较少的固态驱动器发送存储命令,而不是向所述固态驱动器中的其命令队列占用较多的固态驱动器发送存储命令。9.根据权利要求1所述的计算系统,其中,当向所述固态驱动器发送读取命令或编程命令时,所述外围控制集线器向所述固态驱动器发送物理块地址。10.一种方法,包括:执行来自计算系统的系统存储器的固态驱动器程序代码,以针对耦合到所述计算系统的固态驱动器执行以下操作中的任一项/全部:损耗均衡;垃圾收集;逻辑块地址(LBA)到物理块地址(PBA)的转换;用于带宽仲裁的所述固态驱动器的协商;介质块包装;冗余;...

【专利技术属性】
技术研发人员:J
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1