相关申请
本申请要求于2015年7月23日递交的序列号为14/807,621的美国非临时专利申请的优先权,其全部内容通过引用并入本申请。
本发明涉及信息处理系统,更具体地涉及信息处理系统中的输入/输出操作的流量整形,以便在优化输入/输出性能的同时满足目标的输入/输出操作的热约束(thermalconstraints)。
背景技术:
随着信息的价值和使用不断增加,个人和企业寻求更多的方式来处理和存储信息。用户可以使用的一个选项是信息处理系统。信息处理系统通常处理、编译、存储和/或通信用于商业、个人或其他目的的信息或数据,从而允许用户利用信息的价值。由于技术和信息处理的需求和要求在不同的用户或应用之间有所不同,所以信息处理系统也可以关于处理哪些信息,如何处理信息,信息处理、存储或通信的多少以及信息能够处理、存储或通信的速率或效率。信息处理系统的变化允许信息处理系统被配置为用于特定用户或特定用途,诸如金融交易处理、航空公司预订、企业数据存储或全球通信。此外,信息处理系统可以包括可被配置为处理、存储和通信信息的各种硬件和软件组件,并且可以包括一个或多个计算机系统、数据存储系统和网络系统。
随着信息处理系统中的存储设备和其他组件的时钟速度和能量消耗的增加,这些组件产生的热量作为正常操作的副作用也在增加。例如,nand发光设备(例如,固态驱动器)增加的晶体管密度和高开关速度产生大量的热量。通常,这样的设备使用不复杂的热控制,诸如响应于热阈值的交叉,简单地降低输入/输出通信的速率。
技术实现要素:
根据本公开的教导,可以减少或消除与信息处理系统中的输入/输出操作有关的热控制相关的缺点和问题。
根据本公开的实施例,信息处理系统可以包括处理器,用于接收来自在处理器上执行的操作系统的输入/输出请求的目标信息处理资源,以及热滤波器驱动器(thermalfilterdriver),其包括设置于计算机可读介质中并且可由处理器执行的指令程序。作为响应向目标信息处理资源发出的一个或多个输入/输出请求,热过滤驱动器可以被配置为对包括一个或多个输入/输出请求的输入/输出队列执行试验,并且基于试验确定对输入/输出队列进行的修改,以便在满足目标信息处理资源的热约束,同时对目标信息处理资源上的输入/输出请求的性能造成最小的影响。
根据本公开的这些和其他实施例,一种可以包括在包括对目标信息处理资源的一个或多个输入/输出请求的输入/输出队列上进行试验,并且基于该试验,确定对输入/输出队列进行的修改,以便在满足目标信息处理资源的热约束的同时对目标信息处理资源的输入/输出请求性能造成最小的影响的方法。
根据本公开的这些和其他实施例,一种可以包括非暂时计算机可读介质和在计算机可读介质上执行的计算机可执行指令,指令由处理器可读,指令在读取和执行时,用于使处理器对包括对目标信息处理资源的一个或多个输入/输出请求的输入/输出队列进行试验,并且基于该试验,确定对输入/输出队列进行的修改,以便在满足目标信息处理资源的热约束的同时对目标信息处理资源的输入/输出请求的性能造成最小的影响的制品。
根据本公开包括的附图、描述和权利要求,本公开的技术优点对于本领域技术人员来说是显而易见的。至少通过权利要求书中特别指出的要素、特征和组合来实现并完成实施例的目的和优点。
应当理解,前面的一般描述和以下详细描述都是示例和说明性的,并不限制本公开中提出的权利要求。
附图说明
可以通过参考结合附图的以下描述来获得对本发明的实施例和优点的更完整的理解,其中相同的附图标记表示相同的特征,并且其中:
图1示出了根据本公开某些实施例的示例信息处理系统的框图;
图2示出了根据本公开某些实施例的用于执行输入/输出操作的示例方法的流程图;以及
图3示出了根据本公开某些实施例的用于输入/输出操作的热过滤的示例性方法的流程图。
具体实施方式
通过参考图1-3,优选实施例及其优点可被理解,其中相同的数字用于表示相似和相应的部分。
为了本公开的目的,信息处理系统可以包括用于计算、分类、处理、发送、接收、检索、发起、切换、存储、显示、证明、检测、记录、再现、处理的任何工具或工具集合,或利用任何形式的信息、情报或数据用于商业、科学、控制、娱乐或其他目的。例如,信息处理系统可以是个人计算机、个人数字助理(pda)、消费者电子设备、网络存储设备或任何其他合适的设备,并且可以在大小、形状、性能、功能和价格上有所不同。信息处理系统可以包括存储器、一个或多个处理资源,诸如中央处理单元(“cpu”)或硬件或软件控制逻辑。信息处理系统的附加组件可以包括一个或多个存储设备,用于与外部设备通信的一个或多个通信端口以及各种输入/输出(“i/o”)设备,诸如键盘、鼠标和视频显示器。信息处理系统还可以包括一个或多个总线,其可操作以在各种硬件组件之间发送通信。
为了本公开的目的,计算机可读介质可以包括在一段时间内可以保留数据和/或指令的任何工具或工具集合。计算机可读介质可以包括但不限于诸如直接访问存储设备(例如,硬盘或软盘)、顺序访问存储设备(例如,磁带)、光盘、cd-rom、dvd、随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)和/或闪存;以及诸如电线、光纤,微波,无线电波和其他电磁和/或光载体的通信介质;和/或前述的任何组合。
为了本公开的目的,信息处理资源可以广泛地涉及信息处理系统的任何组件系统、设备或装置,包括但不限于处理器、服务处理器、基本输入/输出系统(bios)、总线、存储器,i/o设备和/或接口、存储资源、网络接口、主板和/或信息处理系统的任何其他组件和/或元件。
图1示出了根据本公开的实施例的示例信息处理系统102的框图。在一些实施例中,信息处理系统102可以包括服务器。在其他实施例中,信息处理系统102可以是个人计算机(例如,台式计算机、笔记本电脑、笔记本、平板电脑、手持设备、智能电话、个人数字助理等)。如图1所示,信息处理系统102可以包括处理器103、通信地耦合到处理器103的存储器104、通信地耦合到处理器103的存储资源110、通信地耦合到处理器103的用户接口112以及热耦合到存储资源110并且通信地耦合到处理器103的一个或多个温度传感器118。
处理器103可以包括被配置为解释和/或执行程序指令和/或处理数据的任何系统、设备或装置,并且可以包括但不限于微处理器、微控制器、数字信号处理器(dsp)、专用集成电路(asic)或被配置为解释和/或执行程序指令和/或处理数据的任何其它数字或模拟电路。在一些实施例中,处理器103可以解释和/或执行存储在存储器104和/或信息处理系统102的另一组件中的程序指令和/或处理数据。
存储器104可以通信地耦合到处理器103,并且可以包括被配置为在一段时间内保留程序指令和/或数据的任何系统、设备或装置(例如,计算机可读介质)。存储器104可以包括ram、eeprom、pcmcia卡、闪存、磁存储器、光磁存储器或在向信息处理系统102供电关闭之后保留数据的易失性或非易失性存储器的任何合适的选择和/或排列。
如图1所示,存储器104可以具有存储在其上的操作系统106。操作系统106可以是被配置为管理和/或控制硬件资源(例如,处理器103、存储器104、存储资源110、用户接口112和/或其他信息处理资源)的分配和使用的可执行指令的任何程序或可执行指令的程序的集合,并且提供这种硬件资源和由操作系统106托管的应用程序之间的接口,并且因此可以充当由信息处理系统102执行的应用程序的主机。操作系统106的有效部分可以被处理器103读取和执行,以便执行操作系统106的功能。操作系统106的示例可以包括但不限于windows、macos、unix、linux、android、ios或任何其他闭源或开源操作系统。
如图1所示,操作系统106可以包括热过滤驱动器116。热过滤驱动器116可以包括指令程序,其被配置为当由处理器103读取和执行时,提供操作系统106和存储资源110之间的接口/介面。如下面更详细地描述,驱动器116可以基于从温度传感器118通信的热信息,将通信到存储资源110的输入/输出流量整形,以便在满足存储资源110的热约束的同时保持输入/输出通信的最高可能性的性能。特别地,在热挑战(thermal-challanging)条件(如温度传感器118所示)下,过滤驱动器116可以将输入/输出流量转移到机器智能算法中,该机器智能算法连续执行试验以确定在输入/输出模式的群集上执行的最适合的输入/输出修改,以满足存储资源110的热约束,目的是在必须防止存储资源110的热故障安全机制被触发的情况下降低输入/输出通信的性能。
如图1所示,存储器104还可以包括存储在其上的热过滤数据120。如下面更详细地描述,热过滤数据120可以包括由热过滤驱动器116存储的信息,其包括关于由热过滤驱动器116制成的输入/输出队列修改的信息。这样的信息可以包括由热过滤驱动器116修改的先前队列状态、由热过滤驱动器116对这样的队列状态所做的队列修改、队列修改对输入/输出性能的影响、队列修改对热性能的影响(例如,对由温度传感器118感测到的温度的影响)和/或关于队列修改的其它信息。
虽然操作系统106和热过滤数据120被描绘为被存储在存储器104上,但在一些实施例中,操作系统106和/或热过滤数据120可以存储在存储资源110和/或另一计算机可读介质上,并且被读入存储器104以供处理器103执行。
存储资源110可以包括被配置为存储数据的任何系统、设备或装置。存储资源110可以包括一个或多个硬盘、磁带库、光盘、磁光盘、固态存储器、压缩磁盘、压缩磁盘阵列、磁盘阵列控制器和/或任何其他被配置为存储数据的系统、装置或设备。在某些实施例中,存储资源110可以包括被配置为保持和/或为一个或多个这样的设备供电的一个或多个存储器箱体。在图1所示的实施例中,存储资源110可以驻留在信息处理系统102内。然而,在其他实施例中,存储资源110可以驻留在信息处理系统102的外部(例如,可以经由网络耦合到信息处理系统102)。在特定实施例中,存储资源110可以包括具有nand闪存的固态存储器。
用户界面112可以包括用户可以通过其与信息处理系统102交互的工具或工具集合。例如,用户接口112可以允许用户将数据和/或指令输入到信息处理系统102,和/或以其它方式操纵信息处理系统102及其相关组件。用户接口112还可以允许信息处理系统102向用户通信数据,例如通过显示设备。
温度传感器118可以是被配置为将信号通信到处理器103的指示信息处理系统102内的温度的任何系统、设备或装置(例如,温度计、热敏电阻等)。在特定实施例中,温度传感器118可以感测储存资源110内和/或接近储存资源110的温度。
除了处理器103、存储器104、存储资源110、用户接口112和温度传感器118之外,信息处理系统102可以包括一个或多个其他信息处理资源。
图2示出了根据本公开的某些实施例的用于执行输入/输出操作的示例方法200的流程图。根据一些实施例,方法200可以在步骤202开始。如上所述,本公开的教导可以信息处理系统102的各种配置来实现。
在步骤202中,操作系统106可以从在操作系统106上执行的应用程序接收输入/输出请求。在步骤204中,操作系统106可向热过滤驱动器116发出用于热过滤的输入/输出请求,其在下面关于方法300更详细地进行描述。在步骤206中,可以由热过滤驱动器116修改的输入/输出请求可以被发给存储资源110。在完成步骤206之后,可以结束方法200。
尽管图2公开了关于方法200要采取的特定数量的步骤,但是可以比图2所示的步骤更多或更少的步骤执行方法200。另外,尽管图2公开了关于方法200要采取的特定顺序的步骤,但是包括方法200的步骤可以任何合适的顺序完成。
方法200可以使用信息处理系统102或可操作以实现方法200的任何其他系统来实现。在某些实施例中,方法200可以部分地或全部地在体现在计算机可读介质中的软件和/或固件中实现。
图3示出了根据本公开的某些实施例的用于对输入/输出操作进行热滤波的示例性方法300的流程图。在一些实施例中,可以使用方法300来实现方法200的步骤204。根据一些实施例,方法300可以在步骤302开始。如上所述,本公开的教导可以各种各样的信息处理系统102的配置来实现。
在步骤302中,热过滤驱动器116可以确定是否已经发生与存储资源110相关联的温度事件(例如,由温度传感器118感测到的)。在一些实施例中,温度事件可以包括与超过最大阈值温度的存储资源110相关联的温度。在这些和其他实施例中,温度事件可以包括与存储资源相关联的温度,其具有大于最大阈值速率的增加率(例如,其可以指示温度超过最大阈值温度的可能性)。此外,在一些实施例中,可以使用诸如计算温度的移动平均值或温度变化率的平滑算法来提供与温度事件的检测相关的滞后。如果发生温度事件,则方法300可以进行到步骤304。否则,在没有温度事件的情况下,方法300可以结束。
在步骤304中,热过滤驱动器116可以将存储资源110的输入/输出队列的当前状态与存储在热过滤数据120中的当前队列修改的记录进行比较。在步骤306中,热过滤驱动器116可以确定存储资源110的输入/输出队列的当前状态是否与修改的先前队列状态的记录匹配,并且是否对热性能具有正面影响。如果发生模式匹配,则方法300可以进行到步骤308。如果没有发生模式匹配,则方法300可以进行到步骤310。
在步骤308中,响应于输入/输出队列的当前状态与先前的被修改为对热性能具有正面影响的队列状态相匹配,热过滤驱动器116可以与先前队列状态匹配方式相同的方式修改输入/输出队列。另外,响应于输入/输出队列的修改,可以监视和跟踪改变热性能和输入/输出性能(例如,完成输入/输出操作的时间)的影响,以确定这种修改是否仍然是热控制的有效修改。在步骤308完成之后,方法300可以结束。
在步骤310中,响应于输入/输出队列的当前状态未能与已被修改为对热性能具有正面影响的先前队列状态匹配,热过滤驱动器116可以对输入/输出队列进行一个或多个修改。可以随机地选择这样的修改,或者可以基于与当前队列状态匹配最接近的先前队列状态的修改来选择。这样的修改可以包括但不限于将一个或多个输入/输出请求延迟、将输入/输出请求与输入/输出队列中的后续输入/输出请求合并、将输入/输出队列中的所有输入/输出请求合并、将输入/输出请求分解成单独的输入/输出请求、将输入/输出队列中的输入/输出请求进行重新排序、以及一个或多个先前列出修改的组合。
在步骤312中,热过滤驱动器116可以记录观察到的输入/输出队列当前状态的模式,并将其存储在热过滤数据120中,以及关于对输入/输出队列进行修改的信息,修改的热响应(例如,作为修改的结果,温度传感器118的温度变化)和对修改的性能响应(例如,修改的输入/输出完成时间的测量)。在步骤312完成之后,方法300可以结束。
尽管图3公开了关于方法300要采取的特定数量的步骤,但是可以比图3所示的步骤更多或更少的步骤执行方法300。另外,尽管图3公开了关于方法300要采取的特定顺序的步骤,包括方法300的步骤可以任何合适的顺序完成。
方法300可以使用信息处理系统102或可操作以实现方法300的任何其他系统来实现。在某些实施例中,方法300可以部分地或全部地在体现在计算机可读介质中的软件和/或固件中实现。
使用方法300,热过滤驱动器116可以连续地对输入/输出请求执行试验,以确定对输入/输出队列中的模式进行的修改,以便在满足存储资源110的热约束的同时对输入/输出性能提供最小的影响。
虽然上述描述考虑了对存储资源110的输入/输出请求的发生和热过滤,但是这里的方法和系统也可以应用于输入/输出请求和/或通信的目标信息处理资源,包括不是存储设备的信息处理资源。
如本文所使用的,当两个或更多元件被称为彼此“耦合”时,该术语表示这样的两个或更多元件在电子通信、热通信或机械通信中是适用的,无论是间接连接还是直接连接,无论有或没有中介元件。
本公开包括本领域普通技术人员将理解的对本文示例性实施例的所有改变、替换、变化、变更和修改。类似地,在适当的情况下,所附权利要求包括本领域普通技术人员将理解的本文示例性实施例的所有改变、替换、变化、变更和修改。此外,在所附权利要求中对适于、被安排、被配置、能够、可够操作或有效地执行特定功能的装置或系统或装置或系统的组件的参考包括该装置、系统或组件,无论其是否被激活、打开或解锁,只要该装置、系统或组件是如此适于、被安排、被配置、能够、可够操作或有效的。
本文所述的所有示例和有条件的语言旨在用于教学对象以帮助读者理解本发明人为促进本领域而贡献的公开内容和概念,并且被解释为不限于这些具体叙述的示例和条件。尽管已经详细描述了本公开的实施例,但是应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种改变、替换和更改。