背景技术:
固态驱动器(ssd)是使用集成电路组件作为存储器来持久存储数据的数据存储设备。ssd可以耦合到主机计算系统,例如个人计算机或服务器,其中主机计算系统执行对ssd的输入/输出(i/o)操作,并且其中i/o操作可以包括向ssd写入数据以及从ssd读取数据。
当从主机计算系统向ssd传输i/o操作并且将i/o操作的处理结果从ssd返回到主机计算系统时,将针对往返行程花费的总时间称为i/o操作的等待时间(latency)。换句话说,等待时间指的是主机计算系统在其间等待从ssd接收i/o操作的结果的时间间隔或延迟(delay)。在特定系统,等待时间测量机制在主机计算系统内实现。在这样的机制中,主机计算系统测量向ssd或耦合到主机计算系统的其他存储设备发送的i/o操作的等待时间。
附图说明
现在参考附图,在整个附图中相同的附图标记表示相对应的部件。
图1描绘了根据特定实施例其中诸如ssd的存储设备耦合到主机的计算环境的框图;
图2描绘了根据特定实施例示出存储设备如何记录i/o操作的等待时间的框图;
图3描绘了根据特定实施例示出存储设备如何维持等待时间配置文件的框图,其中等待时间配置文件记录了以不同的等待时间间隔处理i/o操作的数目;
图4描绘了根据特定实施例示出从存储设备向主机返回等待时间配置文件的框图;
图5描绘了根据特定实施例示出测量并向主机报告存储设备的输入和输出操作的等待时间的第一流程图;
图6描绘了根据特定实施例示出测量并向主机报告存储设备的输入和输出操作的等待时间的第二流程图;以及
图7描绘了根据特定实施例包括固态驱动器的设备或计算设备的框图。
具体实施方式
如果主机计算系统用于测量从主机计算系统向存储设备传输的i/o操作的等待时间,则测量的等待时间会受到由在主机计算系统中执行以测量等待时间的资源密集型程序消耗的时间影响。此外,将主机计算系统耦合到存储设备的耦合组件会增加所测量的i/o操作的等待时间。将由于存储设备导致的等待时间与由主机计算系统的操作系统、存储结构、主机背板等引起的等待时间分开会是困难的。而且,在主机计算系统中测量等待时间会使用可以更好地用于其它任务的软件和硬件资源。由主机计算系统进行的这样的等待时间测量会受到系统软件开销和在存储设备之外引入的噪声影响。
在特定实施例中,ssd可以记录其自身的等待时间并且这可以允许主机计算系统在不消耗资源的情况下确定i/o操作的等待时间,并且有助于调试等待时间问题。在特定实施例中,ssd可以记录接收读取/写入命令(即,i/o操作)的时间以及同样该命令被完成并通过总线发送回主机计算系统的时间。然后,可以将这一针对每一i/o操作计算的等待时间放置在各种存储空间(bucket)中并且进行计数,其中,每一存储空间是等待时间间隔。可以根据请求向主机计算系统传送等待时间存储空间和i/o计数。从而,在特定实施例中,不消耗主机资源来测量等待时间。
在以下描述中,参考构成本申请一部分并描绘若干实施例的附图。可以理解的是,可以利用其他实施例并且可以进行结构性和操作性改变。
图1描绘了根据特定实施例的计算环境100的框图,其中诸如具有一个或多个非易失性存储器芯片104a…104n的ssd102的存储设备耦合到主机106。非易失性存储器芯片(也被称为封装)可以包括一个或多个管芯,其中管芯是可以独立执行命令或报告状态的最小单位。每一管芯可以包括一个或多个平面,其中在每一平面上可以发生相同的、并发的操作。每一平面可以包括多个块,块是可以被擦除的最小单位。每一块可以包括多个页,页是可以被编程的最小单位。
固态驱动器102可以由诸如包括在非易失性存储器芯片104a…104n中的nand存储器的非易失性存储器、nor存储器或某一其它合适的非易失性存储器组成。在特定实施例中,固态驱动器102可以能够存储若干太字节的数据或更多。特定实施例可以应用于其他类型的非易失性存储器、相变存储器(pcm)、三维交叉点存储器、电阻存储器、纳米线存储器、铁电晶体管随机存取存储器(fetram)、并入了记忆电阻技术的磁阻随机存取存储器(mram)存储器、旋转移矩(stt)-mram、字节可寻址随机存取非易失性存储器等等。在特定实施例中,除了固态驱动器之外,存储设备102可以由某一其它类型的设备组成。例如,在特定实施例中,存储设备102可以由磁盘驱动器、磁带驱动器等组成。
在特定实施例中,主机106可以由任意适当的计算设备组成,例如个人计算机、大型机、电话设备、智能电话、存储控制器、刀锋计算机、具有存储器的处理器等。主机106可以被称为主机计算系统或计算设备。主机106可以通过总线(例如外围组件互连(pcie)、串行高级技术附件(sata)、串行连接小型计算机系统接口(sas))或诸如互联网、存储区域网络(san)、局域网(land)等的网络与ssd102通信。可以在2013年8月由俄勒冈州比佛顿的sata国际组织(sata-io)发布的名称为“串行ata规范,修订版3.2”的公开文本中找到sata规范的进一步细节。在另一示例中,接口和/或互连协议可以遵守nvme(快速非易失性存储器主机控制器接口)和/或与上述nvme兼容。可以在2014年11月3日由nvmexpresstm工作组发布的名称为“nvmexpresstm,修订版1.2”中找到nvme的进一步细节、和/或该规范的更早和/或更晚版本(nvmexpress是nvmexpress,inc.的商标)。
在图1中,已经示出固态驱动器102在主机106的外部。在可选实施例中,固态驱动器102可以包含在主机106的底架内。主机106可以具有与固态驱动器102交互以执行i/o操作的操作系统108。
固态驱动器102包括以固件、硬件、软件或其任意组合实现的控制器110。可以以固件、硬件、软件或其任意组合来实现控制器110等待时间测量和报告逻辑112。
在图1中描绘的特定实施例中,等待时间测量和报告逻辑112测量由固态驱动器102处理的i/o操作的等待时间并且以周期性的间隔或者响应于来自主机106的请求而向主机106报告该i/o操作的等待时间。i/o操作可以包括对非易失性芯片104a…104n中的一个或多个执行读取操作的请求或者对非易失性存储器芯片104a…104n中的一个或多个执行写入操作的请求。
图2描绘了根据特定实施例示出存储设备如何记录i/o操作的等待时间的框图200。在特定实施例中,在存储设备内执行的等待时间测量和报告逻辑112执行在图2中示出的操作。
主机(经由附图标记202示出)可以向存储设备(经由附图标记204示出)发送读取或写入命令,其中经由附图标记206示出读取或写入命令的传输。主机(经由附图标记202示出)可以通过诸如pcie、sata、sas等的总线、或者通过诸如互联网、san、lan等的网络向存储设备(经由附图标记204示出)发送读取或写入命令。例如,pcie是高速i/o总线,其中多条线路可以组合其数据传输能力以从主机向存储设备发送读取或写入命令,而sata可以使用高速串行线缆从主机向存储设备发送读取或写入命令。在根据sata快速规范修订版3.2使用接口的特定实施例中,组合了sata和pcie总线的接口可以用于从主机向存储设备发送读取或写入命令。存储设备记录时间戳208,以指示存储设备从主机接收读取或写入命令的时间。在特定实施例中,时间戳208指示存储设备接收读取或写入命令的全部的时间。例如,在读取命令的情况下,时间戳208可以记录存储设备何时接收到读取命令的最后字节,并且在写入命令的情况下,时间戳208可以记录存储设备何时接收到要被写入的数据的最后字节。在替代实施例中,与接收读取或写入命令相关的其他指示可以用于将接收读取或写入命令的时间记录在时间戳208中。由于存储设备具有内部时钟,该内部时钟可以用于确定用于记录时间戳的时间。
然后,存储设备处理该读取或写入命令,并且随后存储设备(经由附图标记210示出)向主机(经由附图标记212示出)发送对读取或写入命令的响应214。响应214包括经由对读取或写入命令的处理而生成的数据。响应214中包含的数据可以具有相当大的尺寸(例如,在读取命令的情况下)。例如,在特定实施例中,响应包括多个数据字节(例如,响应于读取命令的一个或多个千字节的数据、一个或多个兆字节的数据等)。在对读取命令做出响应时,存储设备在由存储设备传输在对于来自主机的读取命令的响应中包含的数据的最后字节的时间处记录时间戳216。在对来自主机的写入命令做出响应时,存储设备将数据的最后字节发送到主机的时间记录在时间戳216中,以向主机通知所请求的要通过写入命令进行写入的数据已经被写入到非易失性存储器芯片104a…104n。响应于写入请求而发送的数据的字节数目通常比响应于读取请求而发送的数据的字节数目要小。响应于写入请求,所发送的数据的字节数目可以仅向主机通知写入操作已经在存储设备中完成,而响应于读取请求,所发送的数据的字节数目将会包括从存储设备读取的数据。
图3描绘了根据特定实施例示出存储设备如何维持等待时间配置文件的框图300,其中等待时间配置文件记录以不同的等待时间间隔处理的i/o操作的数目。在特定实施例中,在存储设备中执行的等待时间测量和报告逻辑112执行图3中示出的操作。
时间戳216和时间戳208之间的差是读取或写入命令的等待时间。由于时间戳216是存储设备发送在针对主机的响应中包含的数据的最后字节的时间,因此,等待时间不仅取决于执行从非易性存储器芯片104a…104n读取数据或者向非易性存储器芯片104a…104n写入数据的时间,而且还取决于到主机的数据传输的大小。取决于所读取或写入的数据量,等待时间在读取和写入操作之间也可能不同。在上文的示例中,如果时间戳208是“6:32”并且“时间戳”208是“5:56”(如先前在图2中示出的),则如经由附图标记302示出的,针对读取或写入操作的等待时间是“0:36”,并且通过在存储设备中执行的等待时间测量和报告逻辑112来计算这一等待时间。时间戳208、214和差302的单位可以是时间的任何单位,例如微妙、毫秒、纳秒等。
由于可能存在成千上万的、数十万的、或者更多的i/o操作,所以存储针对每一i/o操作的单独的等待时间可能需要存储设备中大量的存储空间。为了减少用于记录等待时间所需要的存储空间的量,存储设备可以按照表格或某一其它数据结构的形式来维持多个i/o操作的等待时间配置文件304。例如,可以按照特定等待时间间隔(例如,毫秒、微秒或某一其他单位)来维护等待时间。在图3中,在等待时间配置文件304中存在位于0和99之间的每10个时间单位(例如,毫秒或微秒或某一其他时间单位)10个等待时间间隔,以及在100个时间单位上捕获所有等待时间的另一等待时间间隔。等待时间间隔也可以被称为等待时间范围。
等待时间测量和报告逻辑112可以将“0:36”的时间戳差(即,经由附图标记306示出的等待时间)映射到经由附图标记308示出的等待时间间隔“30-39”,且针对这一等待时间间隔“30-39”使命令计数310自增1,并且在更新的等待时间配置文件314中经由附图标记312示出自增了的命令计数。因而,针对每一等待时间间隔(即,等待时间范围),在等待时间配置文件中记录落入该等待时间间隔中的主机i/o操作的数目。
随着存储设备接收到越来越多的i/o操作,等待时间配置文件被更新。在任何的时间点,等待时间配置文件指示具有落入每一等待时间间隔中的等待时间的i/o命令的数目。
图4描绘了根据特定实施例示出从存储设备向主机返回等待时间配置文件的框图400。在特定实施例中,利用存储设备执行的等待时间测量和报告逻辑112执行在图4中示出的操作。
在特定实施例中,在主机(附图标记402)向存储设备(附图标记406)发送(附图标记404)多个i/o操作404之后,主机可以请求来自存储设备的等待时间配置文件。响应于接收到该请求,存储设备(附图标记408)将等待时间配置文件412返回到(经由附图标记410示出)主机(附图标记414)。等待时间配置文件412示出20、120i/o命令具有落入0和9个时间单位之间的等待时间(附图标记416),103、130i/o命令具有落入40-49个时间单位之间的等待时间(附图标记418),并且没有i/o命令具有100或更多个时间单位的等待时间(附图标记420)。
因而,图1-4描绘了特定实施例,其中,存储设备计算多个i/o操作的等待时间,并构成等待时间配置文件,在等待时间配置文件中维持处于不同的等待时间间隔的i/o操作的数目的计数。响应于来自主机的请求,存储设备将该等待时间配置文件传输到主机。
图5描绘了根据特定实施例示出测量并报告由存储设备102进行的输入和输出操作的等待时间的流程图500。在特定实施例中,利用存储设备102执行的等待时间测量和报告逻辑112执行在图5中示出的操作。
控制开始于框502,其中存储设备102(例如,ssd)利用等待时间间隔和具有落入该等待时间间隔中的等待时间的i/o操作的相应数目来初始化等待时间配置文件,其中针对每一等待时间间隔的i/o操作的数目被初始地设置为零(如在图3中在等待时间配置文件304中示出的)。
存储设备102从主机106接收(在框504)i/o命令(即,i/o操作)。存储设备102通过记录接收i/o命令的时间(被称为第一记录时间)并且通过记录向主机106传输i/o命令的结果的时间(被称为第二记录时间)来计算(在框506)i/o命令的等待时间,并根据两个记录的时间来计算时间差。如果i/o命令是读取操作,则两个记录的时间中的第二个时间是由主机请求的数据的最后块从存储设备发送到主机的时间。如果i/o命令是写入命令,则两个记录的时间中的第二个时间是存储设备向主机回应的在存储设备中完成写入操作的时间。第一记录的时间是i/o命令整个被存储设备接收的时间。因而,等待时间是第二记录时间和第一记录时间之间的差。在可选实施例中,可以记录用于测量存储设备的等待时间的其它时间。
控制进行到框508,其中存储设备102确定所计算的等待时间落入其内的等待时间间隔并使针对该等待时间间隔的i/o操作的数目自增1(如在图3中示出的)。随后,存储设备102确定(在框510)主机106是否请求了等待时间配置文件。如果为是,则存储设备102将该等待时间配置文件传输到(在框512)主机106。如果为否,则控制进行到框504,其中,存储设备102从主机106接收另一i/o命令。
应该注意的是,存储设备102可以并行地处理多于一个i/o操作并且可以针对多个i/o操作并行地计算等待时间且可以并行地更新等待时间配置文件。
图6描绘了根据特定实施例示出测量并报告由存储设备102进行的输入和输出操作的等待时间的第二流程图600。在特定实施例中,利用存储设备执行的等待时间测量和报告逻辑112执行在图6中示出的操作。
控制开始于框602,其中,存储设备102测量从主机106接收的一个或多个输入/输出(i/o)操作的一个或多个等待时间。存储设备102将所测量的一个或多个等待时间映射(在框604)到在等待时间配置文件中维持的一个或多个等待时间范围。响应于来自主机106的请求,存储设备102通过经由等待时间配置文件向主机传输关于一个或多个等待时间的信息(在框606)。
因此,图1-6描绘了特定实施例,其中针对存储设备102中的多个i/o操作生成等待时间配置文件。响应于来自主机106的请求(例如,通过pcie接口的一个或多个线路或者通过sata接口从主机106向存储设备102发送的请求),通过pcie接口的一个或多个线路或者通过sata接口由存储设备向主机106传输等待时间配置文件。其它接口可以用于在主机106和存储设备102之间进行通信。结果,等待时间配置文件不受主机106中的延迟或者经由主机106和存储设备102之间的耦合元件的延迟影响。
所描述的操作可以被实现为使用标准的编程和/或工程技术来产生软件、固件、硬件或其任何组合的方法、装置或计算机程序产品。所描述的操作可以被实现为维持在“计算机可读存储介质”中的代码,其中处理器可以从计算机可读存储介质读取并执行代码。计算机可读存储介质包括电子电路、存储材料、无机材料、有机材料、生物材料、外壳、壳体、涂层和硬件中的至少一个。计算机可读存储介质可以包括但不限于磁性存储介质(例如,硬盘驱动、软盘、磁带等)、光学存储装置(cd-rom、dvd、光盘等)、易失性和非易失性存储设备(例如,eeprom、rom、prom、ram、dram、sram、闪存、固件、可编程逻辑等)、固态设备(ssd)等。实现所描述的操作的代码可以进一步以在硬件设备(例如,集成电路芯片、可编程门阵列(pga)、专用集成电路(asic)等)中实现的硬件逻辑来实现。又进一步地,实现所描述的操作的代码可以以“传输信号”实现,其中传输信号可以通过空间或通过诸如光纤、铜线等的传输介质传播。在其中编码有代码或逻辑的传输信号可以进一步包括无线信号、卫星传输、无线电波、红外信号、蓝牙等。嵌入在计算机可读存储介质上的程序代码可以作为传输信号从发送站或计算机向接收站或计算机进行传输。计算机可读存储介质不仅仅由传输信号组成。本领域普通技术人员将认识到,可以对这一配置进行多种修改,并且该制品可以包括本领域已知的适当的信息承载介质。
用于执行针对特定实施例的方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写。流程图和框图中的框可以通过计算机程序指令来实现。
图7描绘了根据特定实施例包括主机106(主机106至少包括处理器)和固态驱动器102的系统700的框图。例如,在特定实施例中,系统700可以是具有均包括在系统700中的主机106和固态驱动器102的计算机(例如,膝上型计算机、台式计算机、平板电脑、蜂窝电话或任何其他适当的计算设备)。例如,在特定实施例中,系统700可以是包括固态驱动器102的膝上型计算机。系统700可以包括电路702,电路702在特定实施例中可以至少包括处理器704。系统700还可以包括存储器706(例如,易失性存储设备)、以及存储装置708。存储装置708可以包括固态驱动器102或包含非易失性存储设备(例如,eeprom、rom、prom、闪存、固件、可编程逻辑等)的其他驱动器或设备。存储装置708还可以包括磁盘驱动器、光盘驱动器、磁带驱动器等。存储装置708可以包括内部存储设备、附接的存储设备和/或网络可访问存储设备。系统700可以包括程序逻辑710,该程序逻辑710包含可以被加载到存储器706中并由处理器704或电路702执行的代码712。在特定实施例中,包含代码712的程序逻辑710可以被存储在存储装置708中。在特定的其他实施例中,程序逻辑710可以被实现在电路702中。因此,尽管图7示出了与其他元件分离的程序逻辑710,但是程序逻辑710可以被实现在存储器706和/或电路702中。系统700还可以包括显示器(例如,液晶显示器(lcd)、发光二极管(led)显示器、阴极射线管(crt)显示器、触摸屏显示器、或任何其他适当的显示器)。系统700还可以包括一个或多个输入设备716,例如键盘、鼠标、游戏操作杆、触控板、或任何其他适当的输入设备)。在系统700中还可以发现除了在图7中示出的这些之外的其他组件或设备。
特定实施例可以涉及一种用于由人或集成计算机可读代码的自动化处理将计算指令部署到计算系统中的方法,其中使得与计算系统结合的代码能够执行所描述的实施例的操作。
除非以其它方式明确指出,术语“一实施例”、“实施例”、“多个实施例”、“所述实施例”、“这些实施例”、“一个或多个实施例”、“一些实施例”和“一个实施例”指的是“一个或多个(并非全部)实施例”。
除非以其它方式明确指出,术语“包含”、“包括”、“具有”及其各种变化指的是“包括但不限于”。
除非以其它方式明确指出,所列举的项目清单并不暗含这些项目中的任何一些或全部是相互排斥的。
除非以其它方式明确指出,术语“一”、“一个”以及“所述”指的是“一个或多个”。
除非以其它方式明确指出,彼此通信的设备不需要彼此连续地通信。此外,彼此通信的设备可以直接通信或通过一个或多个中间媒介间接通信。
对具有彼此通信的若干组件的实施例的描述并不暗含着要求所有这些组件。相反,描述了各种可选的组件以描绘各种各样的可能实施例。
进而,尽管按照先后顺序描述了过程步骤、方法步骤、算法等,但是方法和算法可以被配置为以可选的顺序工作。换句话说,可以被描述的步骤的任何顺序或次序未必指示要求以该顺序执行这些步骤。本申请中描述的过程的步骤可以以任何实际的顺序执行。进而,一些步骤可以被同时执行。
当在本申请中描述单个设备或物品时,显而易见的是,可以代替单个设备/物品而使用多于一个的设备/物品(无论它们是否协作)。类似地,在本申请中描述多于一个设备或物品(无论它们是否协作)的情况下,显而易见的是,可以代替多于一个设备或物品而使用单个设备/物品,或者可以使用不同数目的设备/物品而不是所示出数目的设备或程序。设备的功能和/或特征可以可选地通过未被明确描述为具有这样的功能/特征的一个或多个其他设备实现。因而,其他实施例无需包括设备本身。
可能已经在附图中描绘的至少特定操作示出了以特定顺序发生的特定事件。在可选实施例中,可以以不同的顺序来执行某些操作、对某些操作进行修改或移除。此外,可以将步骤添加到上文描述的逻辑中并且仍然符合所描述的实施例。进而,在本申请中描述的操作可以顺序地发生或者可以并行地处理特定操作。再进一步地,可以通过单个处理单元或通过分布式处理单元来执行操作。
已经出于描绘和描述的目的呈现了前述对各种实施例的描述。这并不意在是穷举的或受限于所公开的精确形式。根据上文的教导能够做出许多修改和变化。
示例
以下的示例与进一步的实施例有关。
示例1是一种用于测量存储设备的等待时间的方法。存储设备测量从主机接收的一个或多个输入/输出(i/o)操作的一个或多个等待时间。存储设备向主机传输关于一个或多个等待时间的信息。
在示例2中,示例1的主题可以包括所述存储设备是固态驱动器(ssd)。
在示例3中,示例2的主题可以包括由ssd记录从主机接收i/o操作的第一时间;由ssd记录向主机发送对于i/o操作的响应的第二时间;以及将i/o操作的等待时间确定为在第二时间和第一时间之间的持续时间。
在示例4中,示例3的主题可以包括维持多个等待时间范围;以及确定所述一个或多个i/o操作中有多少个i/o操作具有落入所述多个等待时间范围中的每个等待时间范围内的等待时间,以生成针对ssd的等待时间配置文件。
在示例5中,示例4的主题可以包括响应于来自主机的请求,ssd向主机传输等待时间配置文件。
在示例6中,示例1的主题可以包括将测量的一个或多个等待时间映射到在等待时间配置文件中维持的一个或多个等待时间范围,其中经由等待时间配置文件将所述测量的一个或多个等待时间传输到主机,以向主机传输关于所述一个或多个等待时间的信息。
在示例7中,示例1的主题可以包括在存储设备中执行对一个或多个等待时间的所有测量并且在主机中不执行对一个或多个等待时间的测量。
在示例8中,示例7的主题可以包括通过在存储设备中而不是在主机中测量一个或多个等待时间,对一个或多个等待时间的测量不包括由在主机中执行的处理的外来影响引入的延迟。
示例9是一种装置,其包括多个非易失性存储器芯片;以及耦合到所述多个非易失性存储器芯片的控制器,其中所述控制器操作为:测量从主机接收的一个或多个输入/输出(i/o)操作的一个或多个等待时间;以及向主机传输关于一个或多个等待时间的信息。
在示例10中,示例9的主题可以包括所述装置包含固态驱动器(ssd)。
在示例11中,示例10的主题可以包括所述控制器进一步操作为:记录从主机接收i/o操作的第一时间;记录ssd向主机发送对于i/o操作的响应的第二时间;以及将i/o操作的等待时间确定为在第二时间和第一时间之间的持续时间。
在示例12中,示例11的主题可以包括所述控制器进一步操作为:维持多个等待时间范围;以及确定所述一个或多个i/o操作中有多少个i/o操作具有落入所述多个等待时间范围中的每个等待时间范围内的等待时间,以生成针对ssd的等待时间配置文件。
在示例13中,示例12的主题可以包括所述控制器进一步操作为:响应于来自主机的请求,向主机传输等待时间配置文件。
在示例14中,示例9的主题可以包括将测量的一个或多个等待时间映射到在等待时间配置文件中维持的一个或多个等待时间范围,其中经由等待时间配置文件将所述测量的一个或多个等待时间传输到主机,以向主机传输关于一个或多个等待时间的信息。
在示例15中,示例9的主题可以包括在存储设备中执行对于一个或多个等待时间的所有测量并且在主机中不执行对于一个或多个等待时间的测量。
在示例16中,示例15的主题可以包括通过在存储设备中而不是在主机中测量一个或多个等待时间,对一个或多个等待时间的测量不包括由在主机中执行的过程的外来影响引入的延迟。
示例17是一种系统,所述系统包括固态驱动器(ssd)、显示器以及耦合到所述固态驱动器和所述显示器的处理器,所述固态驱动器包括多个非易失性存储器芯片,其中所述ssd操作为:测量从主机接收的一个或多个输入/输出(i/o)操作的一个或多个等待时间;以及向主机传输关于一个或多个等待时间的信息。
在示例18中,示例9的主题可以包括所述主机被包含在系统中并且被耦合到ssd,并且所述处理器被包含在所述主机中。
在示例19中,示例18的主题可以包括所述ssd进一步操作为:记录从主机接收i/o操作的第一时间;记录ssd向主机传输对于i/o操作的响应的第二时间;以及将i/o操作的等待时间确定为在第二时间和第一时间之间的持续时间。
在示例20中,示例19的主题可以包括所述ssd进一步操作为:维持多个等待时间范围;以及确定一个或多个i/o操作中有多少个i/o操作具有落入所述多个等待时间范围中的每个等待时间范围内的等待时间,以生成针对ssd的等待时间配置文件。
在示例21中,示例20的主题可以包括所述ssd进一步操作为:响应于来自主机的请求,向主机传输等待时间配置文件。
在示例22中,示例17的主题可以包括将测量的一个或多个等待时间映射到在等待时间配置文件中维持的一个或多个等待时间范围,其中经由等待时间配置文件将所述测量的一个或多个等待时间传输到主机,以向主机传输关于一个或多个等待时间的信息。
在示例23中,示例17的主题可以包括在存储设备中执行对一个或多个等待时间的所有测量以及在主机中不执行对一个或多个等待时间的测量。
在示例24中,示例23的主题可以包括通过在存储设备中而不是在主机中测量一个或多个等待时间,对一个或多个等待时间的测量不包括由在主机中执行的过程的外来影响引入的延迟。