首页> 中国专利> 具有主机周转时间的预测器引擎的存储设备

具有主机周转时间的预测器引擎的存储设备

摘要

一种由存储设备访问数据的方法包括向主机发出对主机存储器的DMA读取请求。估计主机周转时间。该主机周转时间是发出该DMA读取请求时和来自该DMA读取请求的请求数据的初始数据分组从该主机到达该存储设备时之间的时间间隔。初始化该存储设备的数据路径以将该DMA读取请求的该请求数据传输到该存储设备的设备缓冲器。该数据路径的初始化在发出该DMA读取请求之后开始并在所估计的主机周转时间结束时完成。从该主机接收该请求数据。利用该数据路径将所接收的请求数据传输到该设备缓冲器。

著录项

  • 公开/公告号CN113196253A

    专利类型发明专利

  • 公开/公告日2021-07-30

    原文格式PDF

  • 申请/专利权人 西部数据技术公司;

    申请/专利号CN201980083845.2

  • 发明设计人 N·哈拉里谢克特;S·班尼斯提;

    申请日2019-12-18

  • 分类号G06F13/28(20060101);

  • 代理机构11205 北京同立钧成知识产权代理有限公司;

  • 代理人杨贝贝;臧建明

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 12:02:28

说明书

相关申请的交叉引用

本专利申请要求2019年5月30日提交的美国专利申请16/427,076的优先权,该美国专利申请转让给本文的受让人,并且全文以引用方式并入本文。

背景技术

技术领域

实施方案总体涉及具有非易失性存储器的存储设备访问主机的主机存储器的方法和装置。

NVM快速(NVMe)是用于主机的软件应用程序和存储设备的非易失性存储器之间的通信的寄存器级接口协议。NVMe逻辑部件包括允许存储设备访问主机的主系统存储器的直接存储器访问(DMA)块。DMA读取操作是指从主机主存储器读取数据并将其写入到存储设备,并且DMA写入操作是指从存储设备获取数据并将其写入到主机。例如,可以执行DMA读取操作以获取从主机主存储器内的提交队列读取的数据。

在DMA读取操作中,主机周转时间是指从存储设备向主机发送读取数据请求时直到数据从主机到达存储设备为止的时间间隔。激活存储设备的数据路径以开始所接收的数据从主机到存储设备的设备缓冲器的数据传输。数据从设备缓冲器传输到存储设备的非易失性存储器。从初始化数据路径到激活数据路径的延迟时间导致存储设备的性能退化或效率降低。

因此,需要改进的存储设备和用于由存储设备访问数据的方法。

发明内容

在一个实施方案中,一种由存储设备访问数据的方法包括:向主机发出对主机存储器的直接存储器访问(DMA)读取请求。初始化该存储设备的数据路径以将该DMA读取请求的请求数据传输到该存储设备的设备缓冲器。在发出该DMA读取请求之后并且在接收到所接收的请求数据的初始数据分组之前开始该数据路径的初始化。从该主机接收该请求数据。利用该数据路径将所接收的请求数据传输到该存储设备的该设备缓冲器。

在另一个实施方案中,一种由存储设备访问数据的方法包括:向主机发出对主机存储器的DMA读取请求。估计主机周转时间。该主机周转时间是发出该DMA读取请求时和来自该DMA读取请求的请求数据的初始数据分组从该主机到达该存储设备时之间的时间间隔。初始化该存储设备的数据路径以将该DMA读取请求的该请求数据传输到该存储设备的设备缓冲器。该数据路径的初始化在发出该DMA读取请求之后开始并在所估计的主机周转时间结束时完成。从该主机接收该请求数据。利用该数据路径将所接收的请求数据传输到该设备缓冲器。

在一个实施方案中,一种存储设备包括:非易失性存储器和设备控制器。该设备控制器包括主机接口、数据路径、计数器、统计收集器和预测器引擎装置。该数据路径包括DMA模块和设备缓冲器。该设备控制器可操作来:通过该DMA模块向主机发出对主机存储器的DMA读取请求;通过该计数器对该DMA读取请求的实际主机周转时间进行计数;通过该统计收集器收集与该DMA读取请求相关的一个或多个参数;通过该预测器引擎装置估计所估计的主机周转时间;并且初始化该存储设备的该数据路径以将该DMA读取请求的该请求数据传输到该设备缓冲器。该数据路径的初始化在发出该DMA读取请求之后开始并且在该主机周转时间即将结束时完成。从该主机接收该请求数据。利用该数据路径将所接收的请求数据传输到该设备缓冲器。

附图说明

因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。

图1是包括连接到存储设备的主机的系统的一个实施方案的示意图。

图2A示出了针对存储设备对主机的DMA读取请求初始化存储设备的数据路径的一种方法的时间间隔,其中在向主机发出DMA读取请求时初始化数据路径。

图2B示出了针对存储设备对主机的DMA读取请求初始化存储设备的数据路径的另一种方法的时间间隔,其中一旦请求数据的初始分组到达存储设备,就初始化数据路径。

图2C示出了针对存储设备对主机的DMA读取请求初始化存储设备的数据路径的又一种方法的时间间隔,其中利用所估计的主机周转时间来初始化数据路径。

图3是估计初始化存储设备的数据路径的时间的方法的某些实施方案的示意图。

为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。

具体实施方式

在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。

实施方案涉及具有非易失性存储器的存储设备访问主机的主机存储器的方法和装置。存储设备可以通过直接存储器访问(DMA)读取请求来访问主机存储器。提供了存储设备在DMA读取请求操作期间的高性能和高效率。

图1是包括连接到用于主机150的存储设备102(诸如固态驱动器(SSD))的主机150的系统100的一个实施方案的示意图。系统100还可以包括连接主机150和存储设备102的交换机或网桥。

主机150可以利用包括在存储设备102中的非易失性存储器(NVM)106来写入和读取数据,诸如用于长期存储器存储。存储设备102可以是内部存储驱动器,诸如笔记本硬盘驱动器或台式机硬盘驱动器。存储设备102可以是可移除的大容量存储设备,诸如但不限于,手持式可移除存储器设备,诸如存储卡(例如,安全数字(SD)卡、微安全数字(micro-SD)卡、或多媒体卡(MMC))或通用串行总线(USB)设备。存储设备102可以采用嵌入在主机150中的嵌入式大容量存储设备(诸如eSD/eMMC嵌入式闪存驱动器)的形式。存储设备102还可以是任何其他类型的内部存储设备、可移除存储设备、嵌入式存储设备、外部存储设备或网络存储设备。

主机150可以包括各种各样的设备,诸如计算机服务器、附网存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板计算机(即“智能”平板电脑)、机顶盒、电话手机(即“智能”电话)、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备和汽车应用(即地图绘制、自主驾驶)。在某些实施方案中,主机150包括具有处理单元或能够处理数据的任何形式的硬件的任何设备,包括通用处理单元、专用硬件(诸如专用集成电路(ASIC))、可配置硬件(诸如现场可编程门阵列(ASIC))、或由软件指令、微代码或固件配置的任何其他形式的处理单元。

主机150包括连接到主机存储器空间160的中央处理单元(CPU)152,诸如DRAM或其他主存储器。应用程序可以存储到存储器空间160,以便由主机150的部件执行。主机存储器空间160可以包括主机队列162,诸如命令提交队列和命令完成队列。主机存储器空间160可以包括数据缓冲器,诸如供存储设备102使用的主机存储器缓冲器164。

存储设备102包括用于主机150的存储设备接口153之间的通信的主机接口101。主机接口101和存储设备接口153在通信协议下操作,该通信协议诸如外围部件快速接口(PCIe)、串行高级技术附件(SATA)、串行附接SCSI(SAS)、通用闪存存储(UFS)和其他合适的串行通信协议。存储设备102和主机150之间的链路可以是任何适当的对应链路,诸如PCIe链路、SATA链路、SAS链路或UFS链路。链路可以是一个通道到三十二个通道,这取决于连接存储设备102和主机150的可用物理装置的数量。链路和通道数量通常在存储设备102的初始化期间被设置。

存储设备102的NVM 106被配置用于作为非易失性存储器空间的信息的长期存储,并且在通电/断电循环后保留信息。NVM 106可由NAND闪存存储器的一个或多个管芯组成。非易失性存储器的其他示例包括相变存储器、ReRAM存储器、MRAM存储器、磁介质(包括叠瓦式磁记录)、光盘、软盘、电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和其他固态存储器。磁介质非易失性存储器可为存储设备102中的一个或多个磁盘。每个盘片可以包含由一个或多个数据轨道组成的一个或多个区域。NVM 106可包括一种或多种类型的非易失性存储器。

存储设备102包括设备控制器110,该设备控制器管理存储设备102的操作,诸如写入到NVM 106和从该NVM读取。设备控制器110可以包括一个或多个处理器,该一个或多个处理器可以是多核处理器。设备控制器110可以在NVM快速(NVMe)协议下进行操作,但其他协议也是适用的。NVME协议是为SSD开发的用于对通过PCIe接口连接的主机和存储设备进行操作的通信接口/协议。NVMe协议提供用于在存储设备102和主机150之间传输数据的命令提交队列和命令完成队列。命令提交队列和命令完成队列通常存储在主机存储器160中。命令(诸如读取命令和写入命令)由主机软件置于提交队列中,并且由存储设备获取以供执行。由存储设备控制器将完成项置于相关联的完成队列中,以通知主机命令的完成。

设备控制器110包括数据路径120。数据路径120包括直接存储器访问模块122、安全引擎124、设备缓冲器126和非易失性存储器(NVM)接口128。直接存储器访问模块122可以在没有来自主机150的CPU 152参与的情况下访问主机存储器160以对主机存储器160执行读取操作和写入操作。安全引擎124通过加密待写入到NVM 106的数据、解密从NVM 106读取的数据、奇偶校验和/或其他数据保护机制来保护数据传输。数据的加密和解密涉及编码过程和解码过程,该编码过程和解码过程可以涉及编码和解码期间的多次迭代。设备缓冲器126用于在存储设备102的操作期间进行短期存储或临时存储。设备缓冲器126可以包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)和其他形式的易失性存储器。设备缓冲器126用于通过NVM接口128高速缓存待写入到非易失性存储器和从非易失性存储器读取的数据。设备缓冲器126还可以用于存储元数据,诸如闪存转换层表。

存储设备102包括计数器132、统计收集器134和预测器引擎136。计数器132测量从存储设备102发出DMA读取请求到主机接口101接收到请求数据的初始数据分组的实际主机周转时间。统计收集器134收集关于DMA读取请求操作的参数的统计信息。统计收集器134可以收集以下参数中的一个或多个:平均主机周转时间、接口连接主机和存储设备的联网构架结构、主机存储设备接口类型、主机存储设备通信协议类型、存储设备的主机接口速度、主机和存储设备之间的链路的通道数量、事务的分组大小、跨主机和存储设备之间的链路的电流应力、其他合适参数以及它们的组合。

预测器引擎136使用统计收集器134的所收集的统计信息来估计从存储设备102发出DMA读取请求到主机接口101估计接收到请求数据的初始数据分组的所估计的主机周转时间。所估计的主机周转时间由设备控制器110用来在由DMA模块122发出DMA读取请求之后并且在接收到请求数据的初始数据分组之前初始化数据路径120。此时初始化数据路径120减少了数据路径120的初始化完成和接收到请求数据的初始数据分组之间的滞后时间,并且允许在初始化用于DMA读取请求的数据路径之前将数据路径120用于其他操作和其他线程。例如,数据路径120可用于主机存储器缓冲器164的主机存储器缓冲器操作。又如,数据路径120可用于安全引擎124的安全操作。例如,安全引擎124可以对从主机150读取以传输到NVM 106的数据执行编码操作。

设备控制器110执行计算机可读程序代码(例如,软件或固件)可执行指令(在本文中称为“指令”)。指令可由控制器110的各种部件执行,这些部件诸如处理器、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器、嵌入式微控制器以及控制器110的其他部件。

指令存储在非暂态计算机可读存储介质中。在某些实施方案中,指令存储在存储设备102的非暂态计算机可读存储介质中,诸如只读存储器或NVM 106中。可以在没有从主机150添加的输入或指示的情况下执行存储在存储设备102中的指令。在其他实施方案中,从主机150发射指令。控制器110被配置有用于执行本文所述和附图所示的各种功能的硬件和指令。

图2A示出了针对存储设备对主机的DMA读取请求(诸如存储设备102向图1的主机150或其他合适的存储设备发出DMA读取请求)初始化存储设备的数据路径的一种方法210的时间间隔。方法210在向主机发出DMA读取请求时初始化数据路径。

方法210通过向主机发出DMA读取请求211开始。在存储设备向主机发出DMA读取请求211的时刻,开始存储设备的内部数据路径初始化212。在内部数据路径初始化212的时间间隔期间,数据路径锁定213在数据路径引擎被锁定的时间间隔内发生,直到来自主机的请求数据215到达存储设备为止。当来自主机的请求数据215到达存储设备时,数据路径被解锁并成为活动数据路径216以处理和传输所接收的数据,诸如加密请求数据并将数据传输到设备缓冲器。存储设备等待从发出DMA读取请求211到接收到请求数据215的主机周转时间214才能通过活动数据路径216处理和传输所接收的数据。在数据路径锁定213和活动数据路径216的时间间隔期间,发生数据路径阻塞217,其中数据路径不能由存储设备的其他部件或其他线程使用。例如,在数据路径阻塞217期间,数据路径受到阻塞而无法进行主机存储器缓冲器传输或存储设备的内部安全操作。数据路径(诸如图1的数据路径120)在其中向前传播操作的数据值的流水线架构中操作。数据路径可以处置流水线的不同阶段处的多个操作。当发生数据路径阻塞217时,数据路径的部件(诸如地址寄存器和控制寄存器)处置请求数据215的处理和传输不能与其他操作一起输入到数据路径的流水线中。

方法210提供存储设备的高性能但低效率。性能是随时间推移DMA读取请求从主机接口通过数据路径到达设备缓冲器的数据量。效率是数据路径对DMA读取请求线程以及其他线程的利用率。由于内部数据路径引擎被提前初始化并等待请求数据,因此提供了高性能。一旦请求数据到达,数据路径引擎就在具有很少或没有延迟的情况下开始处理请求数据。由于内部数据路径引擎在数据路径锁定213和活动数据路径216期间不能进行任何其他任务,因此在数据路径阻塞217期间提供了低效率。内部数据路径效率是数据路径初始化212和活动数据路径216之和除以数据路径阻塞217的时间间隔。由于内部数据路径效率是主机周转时间214的函数,因此方法210的内部数据路径效率低下。

图2B示出了针对存储设备对主机的DMA读取请求(诸如存储设备102向图1的主机150或其他合适的存储设备发出DMA读取请求)初始化存储设备的数据路径的另一种方法220的时间间隔。一旦请求数据的初始分组到达存储设备,方法220就初始化数据路径。

方法220通过向主机发出DMA读取请求221开始。在来自主机的请求数据225到达存储设备的时刻,开始存储设备的内部数据路径初始化222。在内部数据路径初始化222的时间间隔期间,发生数据路径锁定223。在内部数据路径初始化222完成时,数据路径被解锁并成为活动数据路径226以处理和传输所接收的数据,诸如加密请求数据并将数据传输到设备缓冲器。存储设备等待从发出DMA读取请求221到接收到请求数据225的主机周转时间224才能开始数据路径初始化222。在完成数据路径初始化222之后,活动数据路径226处理和传输所接收的数据。在数据路径锁定223和活动数据路径226的时间间隔期间,发生数据路径阻塞227,其中数据路径不能由存储设备的其他部件或其他线程使用。例如,在数据路径阻塞227期间,数据路径受到阻塞而无法进行主机存储器缓冲器传输和存储设备的内部安全操作。

方法220提供存储设备的高效率但低性能。由于数据路径锁定223的时间间隔较短并且仅仅等于完成数据路径初始化222所需的时间,因此在数据路径阻塞227期间提供了高效率。内部数据路径效率是数据路径初始化222和活动数据路径226之和除以数据路径阻塞227的时间间隔。由于内部数据路径效率不是主机周转时间224的函数,因此方法220的内部数据路径效率接近或者等于100%。由于内部数据路径在请求数据到达222时尚未准备好,因此提供了低性能。作为替代,存储驱动器必须等待活动数据路径226的数据路径初始化222完成的时间间隔才能开始处理和传输请求数据225。

图2C示出了针对存储设备对主机的DMA读取请求(诸如存储设备102向图1的主机150或其他合适的存储设备发出DMA读取请求)初始化存储设备的数据路径的又一种方法230的时间间隔。方法230利用所估计的主机周转时间来在存储设备发出DMA读取请求之后并且在存储设备接收到请求数据的初始数据分组之前开始数据路径的初始化。

方法230通过向主机发出DMA读取请求231开始。在自发出读取请求231起大于零的第一时间间隔241之后并且在自存储设备从主机接收到请求数据235起大于零的第二时间间隔242之前,开始存储设备的内部数据路径初始化232。在内部数据路径初始化232的时间间隔期间,发生数据路径锁定233。存储设备利用对从发出DMA读取请求231到接收到请求数据235的主机周转时间234的估计值来开始数据路径初始化232。存储设备在发出读取请求231之后等待第一时间间隔241,使得数据路径初始化232的完成在存储设备即将接收到请求数据235时发生。针对DMA读取请求的数据路径初始化232可以涉及初始化内部地址、数据大小、加密密钥、数据向量、其他部件以及它们的组合。

当来自主机的请求数据235到达存储设备时,数据路径被解锁并成为活动数据路径236以处理和传输所接收的数据,诸如加密请求数据并将数据传输到设备缓冲器。在数据路径初始化232完成和接收到请求数据235之间具有很少或没有时间滞后的情况下发生活动数据路径236。在数据路径锁定233和活动数据路径236的时间间隔期间,发生数据路径阻塞237,其中数据路径不能由存储设备的其他部件或其他线程使用。例如,在数据路径阻塞237期间,数据路径受到阻塞而无法进行主机存储器缓冲器传输和存储设备的内部安全操作。通过缩短数据路径锁定233来缩短数据路径阻塞237允许数据路径与其他操作一起输入以流过流水线,从而增加总体数据路径吞吐量。

方法230提供高性能和高效率。由于数据路径初始化232在请求数据235即将到达时完成,因此提供了高性能。自数据路径开始处理和传输请求数据235起具有很少或没有时间滞后。由于数据路径锁定233的时间间隔较短并且大约等于完成数据路径初始化232所需的时间,因此在数据路径阻塞237期间提供了高效率。内部数据路径效率是数据路径初始化232和活动数据路径236之和除以数据路径阻塞237的时间间隔。通过使数据路径初始化232在主机周转时间234结束时或在接近主机周转时间结束时完成,方法230的内部数据路径效率可接近或者等于100%。数据路径锁定233的时间间隔与数据路径初始化232的时间间隔相似减少了数据路径阻塞237的时间间隔。

存储设备的设备控制器可以包括计数器以测量从自存储设备发出DMA读取请求和从主机接收到请求数据的主机周转时间。存储设备的设备控制器可以包括收集历史已完成DMA读取请求操作的参数的统计收集器。统计收集器可以收集以下参数中的一个或多个:平均主机周转时间、接口连接主机和存储设备的联网构架结构、主机存储设备接口类型、主机存储设备通信协议类型、存储设备的主机接口速度、主机和存储设备之间的链路的通道数量、事务的分组大小、跨主机和存储设备之间的链路的电流应力、其他合适参数以及它们的组合。

存储设备的设备控制器可以包括预测器引擎以确定开始初始化数据路径236的时间。预测器引擎可以是指由统计收集器收集的一个或多个参数。在一个实施方案中,预测器引擎基于设备控制器的当前操作模式使用平均周转时间。当前操作模式可以包括以下参数中的一个或多个:接口连接主机和存储设备的联网构架结构、主机存储设备接口类型、主机存储设备通信协议类型、存储设备的主机接口速度、主机和存储设备之间的链路的通道数量、事务的分组大小、跨主机和存储设备之间的链路的电流应力、其他合适参数以及它们的组合。

接口连接主机和存储设备的联网构架结构详述连接主机和存储设备的拓扑结构,诸如连接主机和存储设备的网络节点、交换机和网桥。特定主机接口可以与特定数据速率传输相关联。例如,在PCIe接口中,PCIe接口的每一代(即,Gen1、Gen2、Gen3、Gen4和Gen5)均可以与特定速度相关联。主机接口和存储设备接口之间的链路的通道数量可以与特定速度相关联。例如,在PCIe接口中,串行通道的数量可以是1个、2个、4个、8个、16个或32个。通道数量越多,对应的数据传输速率就越大。分组大小描述读取请求的分组大小以及一个或多个数据分组中的请求数据的有效载荷的大小。通常,与较小分组大小相比,更大分组大小可以与更长主机周转时间相关联。当前未完成命令描述主机接口和存储设备接口之间的链路上的其他未完成命令的数量。例如,如果存在大量其他未完成命令,则跨链路的这些其他未完成命令的完成命令可由于跨链路增加的应力、流量或数据而增加用于DMA读取请求的请求数据的主机周转时间。存储控制器的操作模式的一个或多个参数可以与平均主机周转时间相关联,该平均主机周转时间由统计收集器基于已完成事务的收集参数定期更新。

在整个存储设备的复位或断电中,统计收集器可以将所收集参数的所收集数据存储在非易失性存储器中,使得预测器引擎可以在整个复位或断电中使用所存储的统计数据。在其他模式下,统计收集器可以在整个复位或断电中以零状态开始,并且在存储设备的操作期间更新状态。在其他模式下,统计收集器可以在整个复位或断电中以工厂或用户输入状态开始,并且在存储设备的操作期间用已完成事务的收集参数更新初始状态。

预测器引擎利用来自统计收集器的所收集参数来估计请求读取数据的初始分组将到达存储设备的时间。存储设备的设备控制器在所估计的请求数据到达时间之前开始初始化数据路径。在某些实施方案中,存储设备的设备控制器使用所估计的时间来确定开始数据路径初始化232的时间,使得数据路径初始化的完成对应于请求读取数据的初始分组到达存储设备的时间。

由于数据路径可以用于与DMA读取请求231分开的其他部件和其他线程中,因此方法230提供数据路径的高效率。例如,数据路径可以用于主机的主机存储器缓冲器和存储设备之间的主机存储器缓冲器传输中。数据路径的安全引擎可以解密来自存储设备的NVM的数据以用于存储到主机存储器缓冲器。又如,数据路径可以用于存储设备的内部安全操作中。由于数据的加密和解密所需的特殊密钥,因此安全引擎需要时间来针对每个线程进行初始化。

在其他实施方案中,预测器引擎可以使用机加工学习而不是所估计的主机周转时间来开始初始化数据路径,使得数据路径的初始化在即将接收到请求数据时完成。

图3是估计初始化存储设备的数据路径(诸如图1的存储设备的数据路径120或其他合适数据路径)的时间的方法300的某些实施方案的示意图。在框310处,存储设备向主机发出DMA读取请求。在框312处,激活存储设备的计数器以确定从发出DMA读取请求到存储设备从主机接收到请求数据的时间。计数器可以与DMA读取请求的完成超时机制所使用的计数器相同。

在框314处,存储设备的预测器引擎估计请求数据的初始数据分组将到达主机接口的主机周转时间以及初始化数据路径的时间,使得数据路径初始化的完成对应于初始数据分组到达的时间。例如,所估计的主机周转时间减去数据路径初始化时间可以用作开始用于框310的DMA读取请求的数据路径初始化的时间间隔。预测器引擎可以利用与主机周转时间相关的一个或多个参数来确定所估计的主机周转时间。例如,参数可以包括联网构架结构、主机存储设备接口类型、主机存储设备通信协议类型、主机接口速度、主机和存储设备之间的链路的通道数量、DMA请求的分组大小、跨主机和存储设备之间的链路的电流应力、先前事务的平均主机周转时间以及它们的组合。统计收集器可以收集一个或多个参数以供预测器引擎使用。存储设备的模式的平均主机周转时间可以由统计收集器确定

在框316处,存储设备等待框314的所确定的时间。如果所确定的等待时间尚未消逝,则在框318处,存储设备将数据路径用于一个或多个其他线程。在某些实施方案中,设备控制器可以框316的时间间隔来确定是否执行其他线程的操作。如果在接收到来自DMA读取请求的请求数据的估计时间之前不能执行其他线程的操作,则推迟数据路径上的其他线程的操作。

如果所确定的等待时间已消逝,则在框320处,存储设备初始化数据路径。在框322处,由存储设备接收请求数据。如果预测器引擎准确地估计主机周转时间,则数据路径初始化将在框322处请求数据即将到达存储设备时完成。如果数据路径初始化稍早于或稍晚于请求的初始数据分组的到达而完成,则总效率仍然为高,因为与方法210相比,数据路径初始化完成和接收到请求数据的初始数据分组之间的时间滞后减少了。

在某些实施方案中,如果预测器引擎不准确地估计主机周转时间并且存储设备在请求数据的初始数据分组到达时仍然等待初始化数据路径。存储设备可以在接收到请求数据的初始数据分组时立即开始初始化数据路径,而无需在框316处等待由预测器引擎在框314处确定的全部时间量。

一旦在框322处请求数据的初始数据分组到达,框312的激活的计数器就停止。计数器的实耗时间表示实际主机周转时间。在框326处,来自框324的实际主机周转时间用于以更新的平均主机周转时间更新统计收集器。方法300的一个或多个框可以按其他次序执行,可以同时执行,可以并行执行并且/或者可以省略。

图3示出估计初始化存储设备的数据路径的时间的方法300的框的一个序列的仅一个实施方案。在方法300的其他实施方案中,可以删除、可以添加和/或可以按其他顺序执行一个或多个框。

实施方案涉及具有非易失性存储器的存储设备访问主机的主机存储器的方法和装置。存储设备可以通过直接存储器访问(DMA)读取请求来访问主机存储器。提供了存储设备在DMA读取请求操作期间的高性能和高效率。在某些实施方案中,通过在DMA读取请求的请求数据即将到达时完成数据路径的初始化来提供高性能。自数据路径开始处理和传输请求数据起具有很少或没有时间滞后。在某些实施方案中,由于用于DMA读取请求的数据路径锁定的时间间隔较短并且大约等于完成数据路径初始化所需的时间,因此提供了高效率。其他线程可以在用于DMA读取请求的数据路径初始化之前由数据路径执行。

在一个实施方案中,一种由存储设备访问数据的方法包括:向主机发出对主机存储器的直接存储器访问(DMA)读取请求。初始化该存储设备的数据路径以将该DMA读取请求的请求数据传输到该存储设备的设备缓冲器。在发出该DMA读取请求之后并且在接收到所接收的请求数据的初始数据分组之前开始该数据路径的初始化。从该主机接收该请求数据。利用该数据路径将所接收的请求数据传输到该存储设备的该设备缓冲器,

在另一个实施方案中,一种由存储设备访问数据的方法包括:向主机发出对主机存储器的DMA读取请求。估计主机周转时间。该主机周转时间是发出该DMA读取请求时和来自该DMA读取请求的请求数据的初始数据分组从该主机到达该存储设备时之间的时间间隔。初始化该存储设备的数据路径以将该DMA读取请求的该请求数据传输到该存储设备的设备缓冲器。该数据路径的初始化在发出该DMA读取请求之后开始并在所估计的主机周转时间结束时完成。从该主机接收该请求数据。利用该数据路径将所接收的请求数据传输到该设备缓冲器。

在一个实施方案中,一种存储设备包括:非易失性存储器和设备控制器。该设备控制器包括主机接口、数据路径、计数器、统计收集器和预测器引擎装置。该数据路径包括DMA模块和设备缓冲器。该设备控制器可操作来:通过该DMA模块向主机发出对主机存储器的DMA读取请求;通过该计数器对该DMA读取请求的实际主机周转时间进行计数;通过该统计收集器收集与该DMA读取请求相关的一个或多个参数;通过该预测器引擎装置估计所估计的主机周转时间;并且初始化该存储设备的该数据路径以将该DMA读取请求的该请求数据传输到该设备缓冲器。该数据路径的初始化在发出该DMA读取请求之后开始并且在该主机周转时间即将结束时完成。从该主机接收该请求数据。利用该数据路径将所接收的请求数据传输到该设备缓冲器。

下表1是由统计收集器收集的参数的示例。参数的数值取决于影响主机和存储设备的单个系统的参数的多种因素。统计收集器可以收集其他配置和其他参数。平均周转时间可以在完成操作之后更新。表1可以表示由统计收集器收集的表的一部分,其中全表跨其他参数和其他模式扩展,这些其他参数和其他模式诸如其他接口速度、其他数量的通道、其他分组大小和其他当前未完成命令。

对图2A至图2C的方法210、220、230进行ASIC模拟以比较存储设备的性能和效率。存储设备通过具有四个通道的链路的PCIe Gen4主机接口利用NVMe通信。主机周转时间为约1μsec。主机接口上的未完成请求的数量为约64个。DMA读取请求的事务的分组大小为512B。

方法210具有高性能但低效率。方法220具有低性能但高效率。方法230具有高性能和高效率。在一些情况下,由于数据路径的初始化的完成稍微早于来自DMA读取请求的请求数据的初始数据分组的到达,因此方法230的效率小于100%。

虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号