处理自适应中断的方法和装置、主机、I/O设备和系统与流程

文档序号:11950087阅读:249来源:国知局
处理自适应中断的方法和装置、主机、I/O设备和系统与流程

本申请要求2015年5月27日向韩国知识产权局提交的第10-2015-0073927号韩国专利申请的权益,其公开通过引用整体并入本文。

技术领域

本发明构思涉及用于处理中断的方法和装置,而且更具体地,涉及用于处理自适应中断以提高系统性能的方法和装置。



背景技术:

一般情况下,当在包括主机和I/O设备的计算系统中产生大量中断时,相当量的中央处理单元(CPU)周期被主机消耗以处理中断。因此,计算系统的性能可能下降,或者消耗许多能量的中断风暴可能发生。



技术实现要素:

本发明构思提供处理中断的方法,其根据中断处理在主机中消耗少量的中央处理单元(CPU)周期并且减小输入/输出(I/O)延迟。

本发明构思提供处理中断的装置,其根据中断处理消耗少量的CPU周期并且减小I/O延迟。

本发明构思提供处理中断的主机,其根据中断处理消耗少量的CPU周期并且减小I/O延迟。

本发明构思提供处理中断的I/O设备,其根据中断处理消耗少量的CPU周期并且减小I/O延迟。

本发明构思提供处理中断的系统,其根据中断处理消耗少量的CPU周期并且减小I/O延迟。

根据本发明构思的一方面,提供了一种处理自适应中断的方法,该方法包括:当至少一个I/O设备的至少一个因子值超过第一阈值条件时,将所述至少一个I/O设备设置到自适应掩蔽模式,所述至少一个因子值与计算系统的工作负荷相关联,所述计算系统包括所述至少一个I/O设备;当I/O提交事件之间的时间间隔小于第一阈值时,执行用于被设置到自适应掩蔽模式的所述至少一个I/O设备的中断掩蔽处理;以及在发生了所述至少一个I/O提交事件的线程中,根据中断掩蔽处理来处理对于未处理的中断的响应。

根据本发明构思的另一方面,提供了一种处理自适应中断的装置,该装置包括:处理器;以及存储器,该存储器存储指令,该指令在被处理器执行时配置处理器:基于关于计算系统的工作负荷的至少一个因子值,将至少一个I/O设备选择性地设置到自适应掩蔽模式,该系统包括所述至少一个I/O设备;确定被设置到自适应掩蔽模式的至少一个I/O设备的I/O提交事件之间的时间间隔等于或小于阈值;基于在阈值间隔内是否发生I/O提交事件,将所述至少一个I/O设备设置到中断掩蔽启用状态,将所述至少一个I/O设备保持在中断掩蔽启用状态,或者将所述至少一个I/O设备从中断掩蔽启用状态切换到中断掩蔽禁用状态;以及基于所述至少一个I/O设备被设置到中断掩蔽启用状态的确定,防止由所述至少一个I/O设备生成的中断信号被输出到主机的CPU,以使得中断信号是未处理的中断。

根据本发明构思的另一方面,提供了一种主机,包括:第一处理器,被配置为基于I/O提交线程和从I/O设备接收的中断信号执行中断例程;以及第二处理器,被配置为基于计算系统的工作负荷确定是否将I/O设备设置到自适应掩蔽模式,计算系统包括主机和I/O设备,所述第二处理器还被配置为当I/O设备被设置到自适应掩蔽模式并且I/O设备的I/O提交事件之间的时间间隔小于第一阈值时时,防止中断信号被发送到CPU,其中对于未处理的中断的响应是在I/O提交线程中处理的,其中未处理的中断是在执行中断掩蔽处理的时间段内未被处理的中断。

根据本发明构思的另一方面,提供了一种I/O设备,包括:存储器设备;存储器控制器,被配置为根据从主机接收的I/O提交事件将数据写入存储器设备,从存储器设备读取数据,并且在执行了有关I/O提交事件的操作之后生成中断信号;以及处理器,被配置为当由存储器控制器在每个经过的时间单位所生成的中断的数目超过第一阈值时,将I/O设备设置到自适应掩蔽模式,所述处理器还被配置为当被设置到自适应遮蔽模式的I/O设备的I/O提交事件之间的时间间隔小于第二阈值时,防止中断信号被输出到主机。

根据本发明构思的另一方面,提供了计算系统,包括:主机;以及一个或多个I/O设备,其中主机被配置为将输入/输出(I/O)提交事件发送到一个或多个I/O设备,并且基于从一个或多个I/O设备接收的中断信号来处理中断,其中一个或多个I/O设备被配置为执行有关从主机接收的I/O提交事件的操作并且基于完成操作而生成中断信号,其中所述系统还包括处理器,被配置为基于关于计算系统的工作负荷的至少一个因子值,将一个或多个I/O设备选择性地设置到自适应掩蔽模式,所述处理器被配置为当一个或多个I/O设备的I/O提交事件之间的时间间隔小于第一阈值时,防止由被设置到自适应遮蔽模式的一个或多个I/O设备生成的中断信号被输出到主机,并且其中在主机的I/O提交上下文中处理在执行中断掩蔽处理的时间段内未被处理的未处理的中断的响应。

根据本发明构思的另一方面,提供了一种方法,包括:当I/O设备的至少一个因子值至少满足第一阈值条件时,将I/O设备选择性地设置到自适应掩蔽模式,所述至少一个因子值与计算系统的工作负荷相关联,所述计算系统包括I/O设备;以及当I/O设备被设置到自适应掩蔽模式而且被设置到自适应掩蔽模式的I/O设备的I/O提交事件之间的时间间隔小于第一阈值时,选择性地防止由I/O设备生成的中断信号被输出到主机。

从这里提供的描述,更多的应用领域将变得显而易见。发明内容中的描述和具体示例仅用于说明的目的,并非意在限制本公开的范围。

附图说明

根据以下结合附图的详细描述,本发明构思的示例实施例将更容易理解,在附图中:

图1示出了根据一些示例实施例的根据第一类型的中断结合(interrupt coalescing)方法的中断信号的生成状态;

图2示出了根据一些示例实施例的根据第二类型的中断结合方法的中断信号的生成状态;

图3示出了根据一些示例实施例的根据第三类型的中断结合方法的中断信号的生成状态;

图4示出了根据一些示例实施例的根据第一至第三类型的中断结合方法生成的中断延迟的示例;

图5示出根据一些示例实施例的计算系统的结构的示例;

图6示出了根据一些示例实施例的计算系统的结构的另一示例;

图7示出了根据一些示例实施例的计算系统的结构的另一示例;

图8示出了根据一些示例实施例的计算系统的结构的另一示例;

图9示出了根据一些示例实施例的计算系统的结构的另一示例;

图10示出了图5、图7和图8的I/O设备的示例;

图11示出了图10的存储器控制器的详细结构;

图12示出了图6和图9的I/O设备的示例;

图13示出了图12的存储器控制器的示例;

图14示出了图12的存储器控制器的另一示例;

图15示出了图10和图12的非易失性存储器芯片的结构的示例;

图16示出了图15的存储单元阵列的示例;

图17示出了包括在图15的存储单元阵列中的第一存储块的电路图;

图18示出了根据一些示例实施例的处理自适应中断的装置的结构的示例;

图19示出了根据一些示例实施例的包括在用于处理自适应中断的装置中的主机的主要结构;

图20示出了根据一些示例实施例的在系统中在中断掩蔽启用状态下处理中断的过程;

图21示出了根据一些示例实施例的关于用于解释处理自适应中断的操作的主要信号的时序图;

图22示出了根据一些示例实施例的在使用了处理自适应中断的方法的情况下的中断延迟;

图23示出了根据一些示例实施例的处理自适应中断的方法的流程图;

图24示出了将I/O设备设置到自适应掩蔽模式的操作的详细流程图,其中该操作被包括在图23的方法中;

图25示出了执行中断掩蔽处理的操作的详细流程图,其中该操作被包括在图23的方法中;以及

图26示出了处理对于未处理的中断的响应的操作的详细流程图,其中该操作被包括在图23的方法中。

具体实施方式

将参照附图详细描述一个或多个示例实施例。然而,示例实施例可以以各种形式具体实施,并且不应当被解释为仅限于所示实施例。而是,提供这些示出的实施例作为示例以使得本公开是全面和完整的,并且向本领域的技术人员充分传达本公开的构思。因此,相对于一些示例实施例可以不描述已知的方法、元件和技术。除非另有说明,贯穿附图和书面描述,相同的参考符号表示相同的元件,并且因此描述将不再被重复。

虽然,这里可以用术语“第一”、“第二”、“第三”等来描述各种元件、部件、区、层和/或部分,但是,这些元件、部件、区、层和/或部分不应该被这些术语限制。这些术语只被用于区分一个元件、部件、区、层或部分与另一个元件、部件、区、层或部分。因此,以下讨论的第一元件、部件、区域、层或部分也可以被称为第二元件、部件、区域、层或部分而不脱离本公开的范围。

这里可以使用空间相对术语,诸如“在…之下”、“在…下面”、“下方”、“在…下方”、“在…之上”、“上方”等等来描述如附图中所示的一个元件或者特征与(多个)其它元件或特征的关系。将理解的是,这些空间相对术语旨在除了图中所描绘的方位之外还包含设备在使用或操作中的不同方位。例如,如果将图中的设备翻转,则被描述为“在”其它元件或特征“下面”或“之下”或“下方”的元件将定位在其它元件或特征的“之上”。这样,术语“在…下面”和“在…下方”可以包含“在…上面”和“在…下面”两个方位。可由使该设备朝向其它方向(旋转90度或者定位在其它方位)并且应该据此解释这里所使用的空间相对描述文字。此外,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间唯一的元件,或者可以存在一个或多个其它中间元件。

如这里所使用的,单数形式“一”、“一个”、“该”旨在同样包括复数形式,除非上下文清楚给出相反的指示。还应该理解的是,当术语“包含”、“包括”在本说明书中使用时指定所陈述特征、整体、步骤、操作、元件和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组的存在或添加。如这里所使用的,术语“和/或”包括一个或多个关联的列出项的所有组合。如这里所使用,当“中的至少一个”出现在元件的列表之后时,它修饰元件的整个列表,而不是修饰该列表的各个元件。此外,术语“示范性”意指示例或说明。

应当理解,当元件被称为在另一元件或层“之上”、“连接到”、“耦接到”或“邻近于”另一元件时,该元件可以直接在所述另一元件之上、“连接到”、“耦接到”或“邻近于”所述另一元件,或者可以存在一个或多个其他居间的元件。相比之下,当称一个元件“直接在”另一元件“之上”、“直接连接到”、“直接耦接到”或“直接邻近于”另一元件时,不存在居间元件。

除非特别定义,否则这里使用的所有术语(包括技术和科学术语)具有本发明所属的领域的普通技术人员所通常理解的含义。诸如在通常使用的词典中定义的那些术语应当被解释为具有与相关领域的背景下的含义一致的含义,并且不会被在理想化或过度正式的意义上解释,除非这里明确说明。

示例实施例可以参照可以结合在下面更详细地讨论单元/或设备实现的操作的动作和符号表示(例如,以流程图表、流程图、数据流图、结构图、框图等的形式)来描述。虽然以特别的方式讨论,但是在特定块中指定的功能或操作可以与在流程图中指定的流、流程图等不同地执行。例如,被示出为在两个连续块中顺序执行的功能或操作实际上可以同时执行,或者在某些情况下以相反的顺序执行。

根据一个或多个示例实施例的单元和/或设备可以使用硬件、软件和/或它们的组合来实现。例如,硬件设备可以使用处理电路来实现,所述处理电路诸如,但不限于,处理器、中央处理单元(CPU)、控制器、算术逻辑单元(ALU)、数字信号处理器、微型计算机、场可编程门阵列(FPGA)、片上系统(SoC)、可编程逻辑单元、微处理器或能够以限定的方式响应和执行指令的任何其它设备。

软件可以包括计算机程序代码、程序代码、指令或它们的一些组合,以用于独立地或共同地指示或配置硬件设备根据需要进行操作。计算机程序和/或程序代码可以包括程序或计算机可读指令、软件组件、软件模块、数据文件、数据结构和/或类似物,其能够由一个或多个硬件设备执行,诸如如上所述的硬件设备中的一个或多个。程序代码的示例既包括由编译器生成的机器代码,又包括使用解释器执行的高级语言代码。

例如,当硬件设备是计算机处理设备(例如,处理器、中央处理单元(CPU)、控制器、算术逻辑单元(ALU)、数字信号处理器、微型计算机、微处理器等)时,计算机处理设备可以被配置为根据程序代码,通过执行算术、逻辑和输入/输出操作来实施程序代码。当程序代码被加载到计算机处理设备中时,计算机处理设备可以被编程以执行程序代码,从而将计算机处理设备转换为专用计算机处理设备。在更具体的示例中,当程序代码被加载到处理器中时,处理器被编程以执行程序代码和与其对应的操作,从而将处理器转换为专用处理器。

软件和/或数据可以被永久或暂时地实施在任何类型的机器、组件、物理或虚拟设备、或计算机存储介质或设备中,其能够向硬件设备提供指令或数据或者被硬件设备解释。软件也可以分布在网络耦合的计算机系统上,以使得软件以分布方式存储和执行。特别地,例如,软件和数据可以由包括这里讨论的有形的或非临时性的计算机可读存储介质的一个或多个计算机可读记录介质存储。

根据一个或多个示例实施例,计算机处理设备可以被描述为包括执行各种操作和/或功能以增加描述的清晰度的各种功能单元。然而,计算机处理设备并不旨在限于这些功能单元。例如,在一个或多个示例实施例中,一个功能单元的各种操作和/或功能可以由其他功能单元的执行。此外,计算机处理设备可以在没有将计算机处理单元的操作和/或功能子划分为这些各种功能单元的情况下,执行各个功能单元的操作和/或功能。

根据一个或多个示例实施例的单元和/或设备还可以包括一个或多个存储设备。一个或多个存储设备可以是有形的或非临时性的计算机可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、永久大容量存储设备(诸如磁盘驱动器)、固态(例如,NAND闪存)设备和/或任何其他类似的能够存储和记录数据的数据存储机制。一个或多个存储设备可以被配置为存储用于一个或多个操作系统和/或用于实现这里所描述的示例实施例的计算机程序代码、程序代码、指令或它们的一些组合。计算机程序代码、程序代码、指令或它们的一些组合也可以使用驱动机构从单独的计算机可读存储介质被加载到一个或多个存储设备和/或一个或多个计算机处理设备。这种单独的计算机可读存储介质可以包括通用串行总线(USB)闪存驱动器、记忆棒、蓝光/DVD/CD-ROM驱动器、存储卡和/或其他类似的计算机可读存储介质。计算机程序代码、程序代码、指令或它们的某些组合可以经由网络接口,而不是经由本地计算机可读存储介质,从远程数据存储设备被加载到一个或多个存储设备和/或一个或多个计算机处理设备。此外,计算机程序代码、程序代码、指令、或它们的一些组合可以从远程计算系统被加载到一个或多个存储设备和/或一个或多个处理器,所述远程计算系统被配置为通过网络传送和/或分布计算机程序代码、程序代码、指令或它们的一些组合。远程计算系统可以经由有线接口、空中接口和/或任何其他类似的介质来传送和/或分布的计算机程序、程序代码、指令或它们的一些组合。

一个或多个硬件设备、一个或多个存储设备和/或计算机程序代码、程序代码、指令或它们的一些组合可以为了示例实施例的目的被专门设计和构建,或者它们可以是为了示例实施例的目的被改变和/或修改的已知设备。

硬件设备,诸如计算机处理设备,可以运行操作系统(OS)和在OS上运行的一个或多个软件应用。计算机处理设备还可以响应于软件的执行而访问、存储、操纵、处理和创建数据。为了简单起见,一个或多个示例实施例可以被例示出一个计算机处理设备;然而,本领域技术人员将理解,硬件设备可以包括多个处理元件和多个类型的处理元件。例如,硬件设备可以包括多个处理器或者一个处理器和一个控制器。此外,其他处理配置是可能的,例如并行处理器。

虽然参照具体示例和附图进行描述,但是本领域普通技术人员可以根据描述以各种方式做出示例实施例的修改、添加和替代。例如,所描述的技术可以以与所描述的方法的顺序不同的顺序来执行,和/或部件,诸如所描述的系统、架构、设备、电路等可以被连接或结合为不同于上述方法,或者结果可以通过其他组件或等同来适当实现。

将描述多种类型的中断结合方法以改善包括主机和一个或多个输入/输出(I/O)的计算系统因为从I/O设备产生的相当数量的中断所引起的性能下降的中断风暴。

图1示出了根据一些示例实施例的根据第一类型的中断结合方法的中断信号的生成状态。

第一类型的中断结合方法被用于针对设置数目的收集的中断来生成中断一次。详细地,第一类型的中断结合方法是当指示在I/O设备中生成的中断的数目的计数值等于设置值时将中断信号发送到主机的方法。

图1示出了这样的情况:针对I/O设备内的每十个内部中断生成外部中断信号一次,然后将生成的外部中断信号发送到主机。即,每当在I/O设备中生成的中断的数目等于10、20和30时,外部中断信号可以被生成并发送到主机。因此,中断的数目的减少率可以是10:1。

根据第一类型的中断结合方法,当生成内部中断的频率很低时,一些内部中断和外部中断之间的延迟增加,并且因此,对于一些中断的处理可能被显著地延迟。

图2示出了根据一些示例实施例的根据第二类型的中断结合方法的中断信号的生成状态。

第二类型的中断结合方法被用于在所收集的中断(例如,在期望的(或者,可替换地,预定的)时间段(TX)期间收集中断)后的设置的时间量之后生成中断一次。即,第二类型的中断结合方法是当在第一内部中断被生成的时间点后经过了设置的时间量时,将中断发送到外部的方法。

图2示出的是,在自第一内部中断被生成的时间点开始过去经过的时间单位(TX)之后,外部中断信号被生成,然后被发送到主机。

根据第二类型的中断结合方法,当生成内部中断的频率很低时,中断减少效率降低。另外,内部中断和外部中断之间的延迟增加到期望的(或者,可替换地,预定的)时间单位,并且因此,对于一些中断的处理可能被延迟。

图3示出了根据一些示例实施例的根据第三类型的中断结合方法的中断信号的生成状态。

第三类型的中断结合方法是使用第一类型的中断结合方法和第二类型的中断结合方法的混合方法。

图3示出了这样的情况:中断结合根据内部中断的数目(“量”)来执行,但是,当在生成第一内部中断的时间点后过去了经过的时间单位TX时,外部中断被生成而不管所生成的外部内部中断的数目。

第一类型、第二类型和第三类型的中断结合方法有效减少了所生成的外部中断的数目,但是一些内部中断的延迟可能增加。

图4示出了根据一些示例实施例的根据第一类型、第二类型和第三类型的中断结合方法生成的中断延迟的示例。参照图4,内部中断事件和外部中断之间的延迟可以大于在执行了中断结合的一些示例实施例中的内部中断事件和外部中断之间的一个或多个延迟。

一些示例实施例包括处理自适应中断以便校正第一至第三类型的中断结合方法的上述不足之处的方法。

包括在一些示例实施例中的方法的基本概念如下。

在一些示例实施例中,处理电路周期,其可以包括中央处理单元(CPU)周期,可以基于中断的数目来确定。当生成的内部中断的数目较小时,主机可以消耗少量的中央处理单元(CPU)周期,并且因此,中断对系统的影响可以较小。结果,中断延迟的增加可以被防止或最小化。

在一些示例实施例中,I/O设备中生成的中断的数目较大,因为I/O命令提交频繁在主机中发生。在从主机输入了大量的命令时,I/O设备可以是被动设备并且可以生成许多中断事件。因此,中断掩蔽可以基于I/O命令提交发生的时间间隔来控制。

在一些示例实施例中,中断不必由主机在中断处理装置上下文中处理。因此,中断可以在其中执行了I/O命令提交的线程上下文中被处理。例如,根据快速非易失性存储器(EVMe)标准(它是外围组件快速互连(PCIe)固态驱动器(SSD)标准),I/O提交可以通过将命令插入到提交队列(SQ)来执行。中断处理,也就是说,响应处理,可以通过从完成队列(CQ)出队相关响应来执行。因此,根据本发明构思的处理自适应中断的方法,命令可以被插入到在其中执行了I/O提交的线程中的提交队列SQ,然后存在于完成队列CQ中的未处理的响应可以在与以上上下文相同的上下文中被处理而无需切换上下文。

根据一些示例实施例的处理适应性中断的方法将在下面描述。

图5示出根据一些示例实施例的计算系统1000A的结构的示例。

如图5所示,计算系统1000A可以包括主机100A和I/O设备200A。

计算系统1000A可以是个人计算机(PC)、机顶盒、数字相机、导航设备、移动设备、智能卡系统等。I/O设备200A可以是存储设备、SSD、智能卡等。

主机100A和I/O设备200A彼此电连接。各种接口规范可以被应用于在主机100A和I/O设备200A之间使用的接口。例如,可以使用通用闪存(UFS)接口、嵌入式多媒体卡(eMMC)接口、串行高级技术附件(SATA)接口、快速串行高级技术附件(SATAe)接口,小型计算机系统接口(SCSI)、快速小型计算机系统(SCSIe)接口、NVMe接口、PCI接口、PCIe接口等。

主机100A向I/O设备200A发送基于要被执行的任务而发出的命令CMD。例如,由主机100A发出的命令CMD可以包括写命令或读命令。主机100A发送要被存储在I/O设备200A中的数据DATA或接收从I/O设备200A读取的数据DATA。在完成了从主机100A接收的命令的执行之后,I/O设备200A向主机100A发送中断信号INT。

主机100A包括自适应中断处理模块(AIPM)101。AIPM 101可以包括用于执行图23、图24、图25和图26的流程图的软件或硬件。

如本文所述,AIPM可以包括一个或多个硬件设备,其被配置为实现将I/O设备选择性地设置为自适应掩蔽模式、执行中断掩蔽处理、处理对于至少一个中断的至少一个未处理响应中的一个或多个,以及它们的一些组合。AIPM可以包括一个或多个计算机处理设备,其中一个或多个计算机处理设备中的每一个被配置为实现将一个I/O设备选择性地设置到自适应掩蔽模式、执行中断掩蔽处理、处理对于至少一个中断的至少一个未处理响应中的一个或多个,以及它们的一些组合。在一些示例实施例中,AIPM包括一个或多个存储设备,其包括一个或多个存储器,存储可由计算机处理设备执行以使得计算机处理设备实现将一个I/O设备选择性地设置到自适应掩蔽模式、执行中断掩蔽处理、处理对于至少一个中断的至少一个未处理响应中的一个或多个,以及它们的一些组合的程序代码。

在一些示例实施例中,AIPM 101支持当关于计算系统1000A的工作负荷的至少一个因子值超过最初设置的第一阈值条件时,将I/O设备200A设置为处于自适应掩蔽模式。

如本文所述,应该理解的是,“设置到”一个模式的设备可以被互换地称为“处于”该模式、“被设置为处于”该模式,等等。例如,将I/O设备200A设置为处于自适应掩蔽模式可以被互换地称为将I/O设备200A设置到自适应掩蔽模式。此外,当被设置到自适应掩蔽模式时,I/O设备200A可以被称为“处于”自适应掩蔽模式。

在一些示例实施例中,AIPM 101支持当被设置到自适应掩蔽模式的I/O设备200A的I/O提交事件发生的时间间隔小于第一阈值时,执行中断掩蔽处理。在一些示例实施例中,AIPM 101支持在其中发生了I/O提交事件的线程中处理对于未处理的中断的响应,其中该未处理的中断没有在执行了中断掩蔽处理的时间段内被处理。

当从I/O设备200A接收到的、在每个经过的时间单位所生成的中断信号INT的数目超过第二阈值时,AIPM 101可以执行将I/O设备200A设置到自适应掩蔽模式的操作。

当主机100A的工作负荷、所消耗的电力和检测到的温度中的至少一个超过第一阈值时,AIPM 101可以执行将I/O设备200A设置到自适应掩蔽模式的操作。

当I/O提交事件发生时,AIPM 101可以执行将已经被设置到自适应掩蔽模式的I/O设备200A设置到中断掩蔽启用状态,或保持在中断掩蔽启用状态的操作。当在从第N(其中,N是等于或大于1的整数)个I/O提交事件发生的时间点到阈值时间点的时间段内第(N+1)个I/O提交事件没有发生时,AIPM 101可以执行将I/O设备200A设置到中断掩蔽禁用状态的操作。在I/O设备被设置到中断掩蔽禁用状态的情况下,中断掩蔽处理可以被跳过。

当在处于自适应掩蔽模式的I/O设备200A从当前状态被切换到中断掩蔽禁用状态之后在主机100B中发生了关于I/O设备200A的I/O提交事件时,AIPM 101可以执行将I/O设备200A从中断掩蔽禁用状态再次切换到中断掩蔽启用状态的操作。

当I/O设备200A被设置到中断掩蔽启用状态时,AIPM 101可以忽略从I/O设备200A接收到的中断信号INT。即,主机100A中到中断上下文的切换可以响应于从被设置到中断掩蔽启用状态的I/O设备200A接收到中断信号INT而被阻断。

主机100A的AIPM 101可以响应于由保持在中断掩蔽禁用状态的I/O设备200A所生成的中断信号INT在非掩蔽模式下执行处理中断的操作。即,在被切换到中断上下文后,主机100A可以响应于从被设置到中断掩蔽禁用状态的I/O设备200A接收到的中断信号INT来执行中断处理例程。

当在I/O设备200A被设置到自适应掩蔽模式之后关于主机100A的工作负荷的一个或多个因子值在由第二阈值条件设置的范围之内时,AIPM 101可以执行将I/O设备200A从自适应掩蔽模式切换到非掩蔽模式的操作。详细地,当由被设置到自适应掩蔽模式的I/O设备200A在每个经过的时间单位生成的中断的数目小于第三阈值时,I/O设备200A的模式从自适应掩蔽模式被切换到非掩蔽模式。这里,非掩蔽模式是对于中断信号不执行掩蔽处理的模式。

在发生了I/O提交事件的线程上下文中,主机100A可以支持用于执行将有关I/O提交事件的命令插入到提交队列的任务和根据中断掩蔽处理来处理对于I/O设备200A的内部中断的未处理响应的任务的功能。例如,在发生了I/O提交事件的线程上下文中,主机100A可以执行将有关I/O提交事件的命令插入到提交队列的任务,然后执行处理对于如上被存储在相同上下文中的完成队列中的、I/O设备200A的内部中断的未处理响应的任务。

用于确定是否将非掩蔽模式切换到自适应掩蔽模式的第二阈值可以被设置为等于用于确定是否将自适应掩蔽模式切换到非掩蔽模式的第三阈值。

第三阈值可以小于第二阈值。将第三阈值设置为小于第二阈值可以防止当由I/O设备200A在每个经过的时间单位生成的中断的数目略大于或略小于第二阈值时在自适应掩蔽模式和非掩蔽模式之间的频繁切换。

图6示出了根据一些示例实施例的计算系统1000B的结构的另一示例。

如图6所示,计算系统1000B可以包括主机100B和I/O设备200B。

在图5的计算系统1000A中,AIPM 101被包括在主机100A中,但是在图6的计算系统1000B中,AIPM 201被包括在I/O设备200B中。

计算系统1000B可以是PC、机顶盒、数字相机、导航设备、移动设备、智能卡系统等。I/O设备200B可以是存储设备、SSD、智能卡等。

主机100B和I/O设备200B彼此电连接。各种接口规范可以被应用于在主机100B和I/O设备200B之间使用的接口。例如,可以使用UFS接口、eMMC接口、SATA接口、SATAe接口,SCSI、SCSIe接口、NVMe接口、PCI接口、PCIe接口等。

主机100B向I/O设备200B发送基于要被执行的任务而发出的命令CMD。由主机100B发出的命令CMD可以包括写命令或读命令。主机100B发送要被存储在I/O设备200B中的数据DATA或接收从I/O设备200B读取的数据DATA。在完成了从主机100B接收的命令的执行之后,I/O设备200B向主机100B发送中断信号INT。

I/O设备200B包括AIPM 201。AIPM 201仅仅是一个示例,并且可以包括用于执行根据图23到图26的流程图的操作的软件或硬件。

在一些示例实施例中,AIPM 201支持当关于计算系统1000B的工作负荷的至少一个因子值超过最初设置的第一阈值条件时,将I/O设备200B设置为自适应掩蔽模式。在一些示例实施例中,AIPM 201支持当被设置到自适应掩蔽模式的I/O设备200B的I/O提交事件发生的时间间隔小于第一阈值时,执行中断掩蔽处理。在一些示例实施例中,AIPM 201支持处理对于其中发生了I/O提交事件的线程中的未处理的中断的响应,其中该未处理的中断没有在执行了中断掩蔽处理的时间段内被处理。作为另一示例,AIPM 201可以支持当有关计算系统1000B的工作负荷的至少一个因子值超过最初设置的第一阈值条件时将I/O设备200B设置到自适应掩蔽模式的操作,以及当被设置到自适应掩蔽模式的I/O设备200A的I/O提交事件发生的时间间隔小于第一阈值时执行中断掩蔽处理的操作。在发生了I/O提交事件的线程中处理对于未处理的中断(其没有在中断掩蔽处理的时间段内被处理)的响应可以由主机100B支持。

当根据由I/O设备200B处理的事件在每个经过的时间单位所生成的中断信号INT的数目超过第二阈值时,AIPM 201可以执行将I/O设备200B设置到自适应掩蔽模式的操作。

当主机100B的工作负荷、所消耗的电力和检测到的温度中的至少一个超过第一阈值条件时AIPM 201可以执行将I/O设备200B设置到自适应掩蔽模式的操作。

当由进入了自适应掩蔽模式的I/O设备200B接收到I/O提交事件时,AIPM 201可以执行将I/O设备200B的状态改变到保持中断掩蔽启用状态的中断掩蔽启用状态的操作。

当由I/O设备200B接收到I/O提交事件时,AIPM 201可以执行将处于自适应掩蔽模式的I/O设备200B设置到中断掩蔽启用状态,或保持在中断掩蔽启用状态的操作。此外,当在从接收到第N(其中,N是等于或大于1的整数)个I/O提交事件的时间点到阈值时间点的时间段内没有接收到第(N+1)个I/O提交事件时,AIPM 201可以执行将I/O设备200B设置到中断掩蔽禁用状态的操作。在I/O设备被设置到中断掩蔽禁用状态的情况下,中断掩蔽处理可以被跳过。

当在I/O设备200B的状态被设置到中断掩蔽禁用状态之后从主机100B接收到I/O提交事件时,AIPM 201可以执行将I/O设备200B再次设置到中断掩蔽启用状态的操作。

当I/O设备200B被设置到中断掩蔽启用状态时,AIPM 201可以防止由I/O设备200B生成的内部中断信号INT_IN被输出到主机100B。当I/O设备200B被设置到中断掩蔽禁用状态时,AIPM 201可以允许由I/O设备200B生成的内部中断信号INT_IN被输出到主机100B。也就是说,从I/O设备200B输出到主机100B的外部中断信号INT_EX可以是由被设置到中断掩蔽禁用状态的I/O设备200B生成的内部中断信号INT_IN。

当在I/O设备200B被设置到自适应掩蔽模式之后关于主机100B的工作负荷的一个或多个因子值落入第二阈值条件时,AIPM 201执行将I/O设备200B的模式从自适应掩蔽模式切换到非掩蔽模式的操作。详细地,当由被设置到自适应掩蔽模式的I/O设备200B在每个经过的时间单位生成的内部中断信号INT_IN的数目小于第三阈值时,I/O设备200B的模式从自适应掩蔽模式被切换到非掩蔽模式。

主机100B可以基于从I/O设备200B接收到的中断信号INT来执行处理中断的操作。如上所述,从I/O设备200B接收到的中断信号INT是从被设置到中断掩蔽禁用状态的I/O设备200B输出的外部中断信号INT_EX。例如,当接收到中断信号INT时,主机100B停止当前执行的上下文,并且将上下文切换到中断上下文从而执行中断处理例程。

在发生了I/O提交事件的线程上下文中,主机100B支持用于执行将有关I/O提交事件的命令插入到提交队列的任务和根据中断掩蔽处理来处理对于I/O设备200B的内部中断的未处理响应的任务的功能。例如,在发生了I/O提交事件的线程上下文中,主机100B执行将有关I/O提交事件的命令插入到提交队列的任务,然后执行处理对于如上被存储在相同上下文中的完成队列中的、I/O设备200B的内部中断的未处理响应的任务。

图7示出了根据一些示例实施例的计算系统2000A的结构的另一示例。

如图7所示,计算系统2000A可以包括主机2100A和I/O设备2200A。

主机2100A包括处理器2110A、存储器2120A、I/O控制器2130A、I/O桥2140A、主机总线2150A和I/O总线2160A。I/O设备块2200A包括I/O设备2210-1到2210-M。

计算系统2000A可以是PC、机顶盒、数字相机、导航设备、移动设备、智能卡系统、服务器系统等。包括在I/O设备块2200A中的I/O设备2210-1到2210-M可以包括存储设备、SSD、智能卡等。

处理器2110A可以包括电路、接口或程序代码,所有这些都被用于控制形成计算系统2000A的组件的操作。例如,处理器2110A可以包括CPU、ARM或专用集成电路(ASIC)。

存储器2120A可以包括存储被用于操作计算系统2000A的数据、指令或程序代码的静态随机存取存储器(SRAM)或动态RAM(DRAM)。而且,存储器2120A可以包括非易失性存储器。存储器2120A存储用于执行根据图23到图26的流程图来处理自适应中断的方法的软件程序(即,AIPM_SW 2120A-1)。

处理器2110A可以通过执行存储在存储器2120A中的程序来控制形成计算系统2000A的组件的操作。处理器2110A可以通过执行存储在存储器2120A中的软件程序(即,AIPM_SW 2120A-1),根据图23到图26的流程图来处理自适应中断。

I/O控制器2130A控制I/O设备块2200A的I/O设备2210-1到2210M。I/O控制器2130A从处理器2110A接收I/O命令,并且基于接收到的I/O命令来控制I/O设备2210-1到2210-M。此外,I/O控制器2130A向处理器2110A发送从I/O设备2210-1到2210-M接收的中断信号。

在主机总线2150A中,形成主机2100A组件彼此电连接。形成主机2100A的组件可以经由主机总线2150A彼此交换数据和信号。

I/O桥2140A可以控制用于主机2100A和I/O设备2210-1到2210-M之间的数据通信的信道。I/O设备2210-1到2210-M是通过I/O总线2160A彼此电连接。I/O桥2140A和I/O总线2160A可以分别具体实施为PCIe桥和PCIe总线。

数据和信号可以通过I/O总线2160A在主机2100A和I/O设备2210-1到2210-M之间交换。例如,主机2100A可以经由I/O总线2160A从I/O设备2210-1到2210-M接收中断信号。

I/O设备2210-1到2210M在处理了从主机2100A接收的I/O命令之后向主机2100A发送中断信号。

由I/O设备2210-1到2210-M发送的中断信号经由I/O桥2140A和I/O控制器2130A被发送到处理器2110A。

处理器2110A通过执行存储在存储器2120A中的程序(即,AIPM_SW 2120A-1)来处理以下自适应中断。

处理器2110A当关于主机2100A的工作负荷的至少一个因子值超过第一阈值条件时执行将I/O设备设置到自适应掩蔽模式的操作,当被设置到自适应掩蔽模式的I/O设备200A的I/O提交事件之间的时间间隔小于第一阈值时执行中断掩蔽处理的操作,而且在其中发生了I/O提交事件的线程中执行处理对于未处理的中断(其没有在执行了中断掩蔽处理的时间段内被处理)的响应的操作。

处理器2110A执行将分别从I/O设备2210-1到2210-M接收到的在每个经过的时间单位所生成的中断信号INT的数目与第二阈值进行比较的操作,以及当从I/O设备2210-K接收到的在每个经过的时间单位所生成的中断信号INT的数目超过第二阈值时将I/O设备2210-K设置到自适应掩蔽模式的操作。作为另一示例,当工作负荷、所消耗的电力和检测到的温度中的至少一个超过第一阈值条件时,处理器2110A可以执行将I/O设备2210-K设置到自适应掩蔽模式的操作。

当I/O提交事件发生时,处理器2110A可以执行将已经处于自适应掩蔽模式的I/O设备2210-K设置到中断掩蔽启用状态,或保持在中断掩蔽启用状态的操作。此外,当在从第N(其中,N是等于或大于1的整数)个I/O提交事件发生的时间点到阈值时间点的时间段内第(N+1)个I/O提交事件没有发生时,处理器2110A执行将I/O设备2210-K设置到中断掩蔽禁用状态的操作。当I/O设备处于中断掩蔽禁用状态时,中断掩蔽处理被跳过。

当在I/O设备2210-K的状态被设置到中断掩蔽禁用状态之后发生了关于I/O设备2210-K的I/O提交事件时,处理器2110A执行将I/O设备2210-K再次设置到中断掩蔽启用状态的操作。

处理器2110A忽略从被设置到中断掩蔽启用状态的I/O设备2210-K接收到的中断信号INT。即,到中断上下文的切换可以响应于从被设置到中断掩蔽启用状态的I/O设备2210-K接收到的中断信号INT被阻断。

处理器2110A响应于由保持在中断掩蔽禁用状态的I/O设备2210-K所生成的中断信号INT在非掩蔽模式下执行处理中断的操作。即,在被切换到中断上下文后,处理器2110A响应于从被设置到中断掩蔽禁用状态的I/O设备2210-K接收到的中断信号INT来执行中断处理例程。

当在I/O设备2210-K被设置到自适应掩蔽模式之后关于主机2100A的工作负荷的一个或多个因子值在第二阈值条件之内时,处理器2110A执行将I/O设备2210-K从自适应掩蔽模式切换到非掩蔽模式的操作。详细地,当由被设置到自适应掩蔽模式的I/O设备2210-K在每个经过的时间单位生成的中断的数目小于第三阈值时,I/O设备2210-K的模式从自适应掩蔽模式被切换到非掩蔽模式。这里,非掩蔽模式是对于中断信号不执行掩蔽处理的模式。

然后,在发生了I/O提交事件的线程上下文中,处理器2110A执行将有关I/O提交事件的命令插入到提交队列的任务和根据中断掩蔽处理来处理对于I/O设备2210-K的内部中断的未处理响应的任务。例如,在发生了I/O提交事件的线程上下文中,处理器2110A执行将有关I/O提交事件的命令插入到提交队列的任务,然后执行处理对于如上被存储在相同上下文中的完成队列中的、I/O设备2210-K的内部中断的未处理响应的任务。

图8示出了根据一些示例实施例的计算系统2000B的结构的另一示例。

如图8所示,计算系统2000B可以包括主机2100B和I/O设备块2200B。

主机2100B包括处理器2110B、存储器2120B、I/O控制器2130B、I/O桥2140B、主机总线2150B和I/O总线2160B。I/O设备块2200B包括I/O设备2210-1到2210-M。

在图8的计算系统2000B中,I/O控制器2130B包括AIPM 2130B-1。在一些示例实施例中,AIPM 2130B-1包括处理器。处理器2110B可以被称为“第一处理器”,而且包括在AIPM 2130B-1中的处理器可以被称为“第二处理器”。作为参考,在计算系统2000A中,自适应中断是通过使用存储在存储器2120A中的程序AIPM_SW 2120A-1来处理的。

将描述不同于图7的处理器和I/O控制器的处理器2110B和I/O控制器2130B。

包括在I/O控制器2130B中的AIPM 2130B-1可以包括被用于根据图23到图26的流程图来执行操作的软件或硬件。

AIPM 2130B-1当关于主机2100B的工作负荷的至少一个因子值超过初始设置的第一阈值条件时执行将I/O设备设置到自适应掩蔽模式的操作,当被设置到自适应掩蔽模式的I/O设备的I/O提交事件之间的时间间隔小于第一阈值时执行中断掩蔽处理的操作,而且在其中发生了I/O提交事件的线程中执行处理对于未处理的中断(其没有在执行了中断掩蔽处理的时间段内被处理)的响应的操作。AIPM 2130B-1当关于主机2100B的工作负荷的至少一个因子值超过初始设置的第一阈值条件时执行将I/O设备设置到自适应掩蔽模式的操作,而且当被设置到自适应掩蔽模式的I/O设备的I/O提交事件之间的时间间隔小于第一阈值时执行中断掩蔽处理的操作。在其中发生了I/O提交事件的线程中执行处理对于未处理的中断(其没有在执行了中断掩蔽处理的时间段内被处理)的响应的操作可以由主机2110B执行。

AIPM 2130B-1执行将分别从I/O设备2210-1到2210-M接收到的在每个经过的时间单位所生成的中断信号INT的数目与第二阈值进行比较的操作,以及当从I/O设备2210-K接收到的在每个经过的时间单位所生成的中断信号INT的数目超过第二阈值时将I/O设备2210-K设置到自适应掩蔽模式的操作。作为另一示例,当工作负荷、所消耗的电力和检测到的温度中的至少一个超过第一阈值条件时,AIPM 2130B-1可以执行将I/O设备2210-K设置到自适应掩蔽模式的操作。

当I/O提交事件发生时,AIPM 2130B-1执行将处于自适应掩蔽模式的I/O设备2210-K设置到中断掩蔽启用状态,或保持在中断掩蔽启用状态的操作。此外,当在从第N(其中,N是等于或大于1的整数)个I/O提交事件发生的时间点到阈值时间点的时间段内第(N+1)个I/O提交事件没有发生时,AIPM 2130B-1执行将I/O设备2210-K设置到中断掩蔽禁用状态的操作。在中断掩蔽禁用状态下,中断掩蔽处理被跳过。

当在I/O设备2210-K的状态被设置到中断掩蔽禁用状态之后从处理器2100B接收到关于I/O设备2210-K的I/O提交事件时,AIPM 2130B-1执行将I/O设备2210-K再次设置到中断掩蔽启用状态的操作。

AIPM 2130B-1可以对从被设置到中断掩蔽启用状态的I/O设备2210-K接收到的中断信号INT执行掩蔽处理。即,AIPM 2130B-1防止从被设置到中断掩蔽启用状态的I/O设备2210-K接收到的中断信号INT被输出到处理器2110B。

AIPM 2130B-1向处理器2110B发送由保持在中断掩蔽禁用状态的I/O设备2210-K所生成的中断信号INT。因此,在被切换到中断上下文后,处理器2110B响应于从被设置到中断掩蔽禁用状态的I/O设备2210-K接收到的中断信号INT来执行中断处理例程。

当在I/O设备2210-K被设置到自适应掩蔽模式之后关于主机2100B的工作负荷的一个或多个因子值在第二阈值条件之内时,AIPM 2130B-1执行将I/O设备2210-K从自适应掩蔽模式切换到非掩蔽模式的操作。详细地,当由被设置到自适应掩蔽模式的I/O设备2210-K在每个经过的时间单位生成的中断的数目小于第三阈值时,I/O设备2210-K的模式从自适应掩蔽模式被切换到非掩蔽模式。

然后,在发生了I/O提交事件的线程上下文中,AIPM 2130B-1执行将有关I/O提交事件的命令插入到提交队列的任务和根据中断掩蔽处理来处理对于I/O设备2210-K的内部中断的未处理响应的任务。作为另一示例,在发生了I/O提交事件的线程上下文中,处理器2110B执行将有关I/O提交事件的命令插入到提交队列的任务,然后执行处理对于如上被存储在相同上下文中的完成队列中的、I/O设备2210-K的内部中断的未处理响应的任务。

图9示出了根据一些示例实施例的计算系统2000C的结构的另一示例。

如图9所示,计算系统2000C可以包括主机2100C和I/O设备块2200C。

主机2100C包括处理器2110C、存储器2120C、I/O控制器2130C、I/O桥2140C、主机总线2150C和I/O总线2160C。I/O设备块2200C包括I/O设备2210-1’到2210-M’。

在图7的计算系统2000A和图8的计算系统2000B中,主机2100A和2100B包括用于处理自适应中断的程序AIPM_SW 2120A-1或AIPM 2130B-1。与此相比,在计算系统2000C中,AIPM-1 2211-1到AIPM-M 2211-M分别被包括在I/O设备2210-1’到2210-M’中。

形成图9的主机2100C的组件的基本操作与参展图7和图8描述的组件的基本操作相同,并且因此重复的描述将被省略。

分别被包括在I/O设备2210-1’到2210-M’中的AIPM-1 2211-1到AIPM-M 2211-M操作如下。

为方便起见,将描述由包括在I/O设备2210-K’中的AIPM-K 2211-K执行的操作。

AIPM-K 2211-K当关于工作负荷的至少一个因子值超过第一阈值条件时支持将I/O设备2210-K’设置到自适应掩蔽模式的操作,当被设置到自适应掩蔽模式的I/O设备2210-k’的I/O提交事件之间的时间间隔小于第一阈值时执行中断掩蔽处理的操作,而且在其中发生了I/O提交事件的线程中执行处理对于未处理的中断(其没有在执行了中断掩蔽处理的时间段内被处理)的响应的操作。作为另一示例,AIPM-K 2211-K当关于工作负荷的至少一个因子值超过初始设置的第一阈值条件时支持将I/O设备2210-K’设置到自适应掩蔽模式的操作,而且当被设置到自适应掩蔽模式的I/O设备2210-K’的I/O提交事件之间的时间间隔小于第一阈值时执行中断掩蔽处理的操作。在其中发生了I/O提交事件的线程中处理对于未处理的中断(其没有在执行了中断掩蔽处理的时间段内被处理)的响应的操作可以由主机2100C的处理器2110C支持。

当根据由I/O设备2210-K’处理的事件在每个经过的时间单位所生成的内部中断信号INT_IN的数目超过第二阈值时,AIPM-K 2211-K执行将I/O设备2210-K’设置到自适应掩蔽模式的操作。

当工作负荷、所消耗的电力和检测到的温度中的至少一个超过第一阈值条件时,AIPM-K 2211-K可以执行将I/O设备2210-K’设置到自适应掩蔽模式的操作。

当从主机2100C接收到I/O提交事件时,AIPM-K 2211-K执行将处于自适应掩蔽模式的I/O设备2210-K’设置到中断掩蔽启用状态,或保持在中断掩蔽启用状态的操作。此外,当在从第N(其中,N是等于或大于1的整数)个I/O提交事件发生的时间点到阈值时间点的时间段内没有接收到第(N+1)个I/O提交事件时,AIPM-K 2211-K可以执行将I/O设备2210-K’设置到中断掩蔽禁用状态的操作。在中断掩蔽禁用状态下,中断掩蔽处理被跳过。

当在I/O设备2210-K’被设置到中断掩蔽禁用状态之后从主机2100C接收到I/O提交事件时,AIPM-K 2211-K执行将I/O设备2210-K’再次设置到中断掩蔽启用状态的操作。

AIPM-K 2211-K防止由I/O设备2210-K’生成的内部中断信号INT_IN被输出到主机2100C。AIPM-K 2211-K允许由被设置到中断掩蔽禁用状态的I/O设备2210-K’生成的内部中断信号INT_IN被输出到主机2100C。即,从I/O设备2210-K’输出到主机2100C的外部中断信号INT_EX变为由被设置到中断掩蔽禁用状态的I/O设备2210-K’生成的内部中断信号INT_IN。

当在I/O设备2210-K’被设置到自适应掩蔽模式之后关于主机2100C的工作负荷的一个或多个因子值在第二阈值条件之内时,AIPM-K 2211-K执行将I/O设备2210-K’的模式从自适应掩蔽模式切换到非掩蔽模式的操作。详细地,当由被设置到自适应掩蔽模式的I/O设备2210-K’在每个经过的时间单位生成的中断的数目小于第三阈值时,I/O设备2210-K’的模式从自适应掩蔽模式被切换到非掩蔽模式。

主机2100C基于从I/O设备2210-K’接收到的中断信号INT执行处理中断的操作。如上所述,从I/O设备2210-K’接收到的中断信号INT是由被设置到中断掩蔽禁用状态的I/O设备2210-K’输出的外部中断信号INT_EX。例如,当接收到中断信号INT时,主机2100C的处理器2110C停止当前正在处理的上下文的执行,并且通过将上下文切换到中断上下文来执行中断处理例程。

在关于被设置到自适应掩蔽模式的I/O设备2210-K’的I/O提交事件发生在其中的线程上下文中,处理器2110C支持用于执行将有关I/O提交事件的命令插入到提交队列的任务和根据中断掩蔽处理来处理对于I/O设备2210-K’的内部中断的未处理响应的任务的功能。例如,在关于I/O设备2210-K’的I/O提交事件发生在其中的线程上下文中,主机2100C执行将有关I/O提交事件的命令插入到提交队列的任务,然后执行处理对于如上被存储在相同上下文中的完成队列中的、I/O设备2210-K’的内部中断的未处理响应的任务。

图10示出了图5、图7和图8的I/O设备200A或2210-1到2210-M的示例。

图10示出了可以作为图5、图7和图8的I/O设备200A或2210-1到2210-M的示例的SSD 200A-1的框图。

参照图10,SSD 200A-1包括存储器控制器210A和存储器设备220。

存储器控制器210A可以基于从主机接收到的命令来执行控制存储器设备220的操作。存储器控制器210A根据从主机接收到的命令,控制对经由通道CH1到CHM连接的存储器设备220的编程(或写)、读和擦除操作。在有关从主机接收到的命令的操作被完成之后,存储器控制器210A向主机发送中断信号。即,在根据从主机接收到的命令的、有关SSD 200A-1中的内部事件被完成之后,用于通知完成的中断信号被发送到主机。

存储器设备220可以包括一个或多个非易失性存储器芯片NVM 220-1。应用于存储器设备220的非易失性存储器芯片NVM 220-1可以包括闪存芯片、相变随机存取存储器(PRAM)芯片、铁电RAM(FRAM)芯片、磁RAM(MRAM)等。作为另一示例,存储器设备220可以是至少一个非易失性存储器芯片和至少一个易失性存储器芯片的组合,或者可以是至少两种类型的非易失性存储器芯片的组合。

图11示出了图10的存储器控制器210A的详细结构。

如图11所示,存储器控制器210A包括处理器211A、RAM 212A、主机接口213A、存储器接口214A和总线215A。

存储器控制器210A的组件经由总线215A彼此电连接。

处理器211A可以通过使用存储在RAM 212A中的程序代码和数据来总体控制SSD 200A-1操作。当SSD 200A-1被初始化时,处理器211A可以读存储在存储器设备220中的、控制SSD 200A-1的操作所需的程序代码和数据,并且可以将其加载到RAM 212A。

处理器211A可以根据从主机接收到的命令执行读操作或写操作。处理器211A在根据从主机接收到的命令完成读操作或写操作之后,生成内部中断信号。内部中断信号经由主机接口213A被发送到主机。因此,从SSD 200A-1输出到主机的外部中断信号与内部中断信号相同。

经由主机接口213A从主机接收到的数据或者经由存储器接口214A从存储器设备220接收到的数据被存储在RAM 212A中。另外,由处理器211A处理的数据可以被存储在RAM 212A中。

主机接口213A包括与连接到存储器控制器210A的主机的数据交换协议,并且是存储器控制器210A和主机之间的接口。主机接口213A可以被具体实施为ATA接口、SATA接口、并行高级技术附件(PATA)接口、通用串行总线(USB)接口、串行连接小型计算机系统(SAS)接口、SCSI接口、eMMC接口、UFS接口、PCI接口和PCIe接口。然而,主机接口213A不限于此。主机接口213A可以根据处理器211A的控制从主机接收命令或数据或向主机发送数据。另外,主机接口213A可以根据处理器211A的控制向主机发送中断信号。

存储器接口214A电连接到存储器设备220。根据处理器211A的控制,存储器接口214A可以向存储器设备220发送命令、地址和数据,或者可以从存储器设备220接收数据。存储器接口214A可以支持NAND闪存或NOR闪存。存储器接口214A可以通过多个通道执行软件或硬件交错操作。

图12示出了图6和图9的I/O设备200B或2210-1’到2210-M’的示例。

图12示出了可以作为图6和图9的I/O设备200B或2210-1’到2210-M’的示例的SSD 200B-1的框图。

参照图12,SSD 200B-1包括存储器控制器210B和存储器设备220。

存储器控制器210B可以基于从主机接收到的命令来执行存储器设备220。存储器控制器210B根据从主机接收到的命令,控制对通过多个通道CH1到CHM连接的存储器设备220的编程(或写)、读和擦除操作。

存储器控制器210B包括AIPM 201-1。AIPM 201-1可以包括被用于根据图23、图24、图25和图26的流程图执行操作的软件或硬件。

存储器控制器210B可以基于AIPM 201-1执行以下操作。

AIPM 201-1支持当关于SSD 200B-1的工作负荷的至少一个因子值超过第一阈值条件时将SSD 200B-1设置到处于自适应掩蔽模式的操作,当在SSD 200B-1被设置到自适应掩蔽模式的时间段中由SSD 200B-1接收到的I/O提交事件之间的时间间隔小于第一阈值时执行中断掩蔽处理的操作,以及在其中发生了I/O提交事件的线程中处理对于未处理的中断(其没有在执行了中断掩蔽处理的时间段内被处理)的响应的操作。作为另一示例,AIPM 201-1被设计为支持当有关SSD 200B-1的工作负荷的至少一个因子值超过最初设置的第一阈值条件时将SSD 200B-1设置到自适应掩蔽模式的操作,以及当被设置到自适应掩蔽模式的I/O设备的I/O提交事件之间的时间间隔小于第一阈值时执行中断掩蔽处理的操作。在发生了I/O提交事件的线程中处理对于未处理的中断(其没有在中断掩蔽处理的时间段内被处理)的响应可以由主机支持。

当根据由SSD 200B-1处理的事件所生成的内部中断信号INT_IN的数目超过第二阈值时,AIPM 201-1执行将SSD 200B-1设置到自适应掩蔽模式的操作。

当SSD 200B-1的工作负荷、所消耗的电力和检测到的温度中的至少一个超过第一阈值条件时,AIPM 201-1可以执行将SSD 200B-1设置到自适应掩蔽模式的操作。

当接收到I/O提交事件时,AIPM 201-1可以执行将处于自适应掩蔽模式的I/O设备设置到中断掩蔽启用状态,或保持在中断掩蔽启用状态的操作。当在从接收到第N(其中,N是等于或大于1的整数)个I/O提交事件的时间点到阈值时间点的时间段内没有接收到第(N+1)个I/O提交事件时,AIPM 201-1执行将I/O设备设置到中断掩蔽禁用状态的操作。在中断掩蔽禁用状态下,中断掩蔽处理被跳过。

当在SSD 200B-1的状态被设置到中断掩蔽禁用状态之后从主机接收到I/O提交事件时,AIPM 201-1执行将SSD 200B-1再次设置到中断掩蔽启用状态的操作。这里,从主机接收到I/O提交事件指的是从主机接收到命令。

AIPM 201-1防止由SSD 200B-1生成的内部中断信号INT_IN在SSD 200B-1被设置到中断掩蔽启用状态的时间段内被输出到主机。在SSD 200B-1被设置到中断掩蔽禁用状态的时间段内,AIPM 201-1允许由SSD 200B-1生成的内部中断信号INT_IN被输出到主机。即,在SSD 200B-1被设置到中断掩蔽禁用状态的时间段内,由SSD 200B-1输出到主机100B的外部中断信号INT_EX变为由SSD 200B-1生成的内部中断信号INT_IN。这里,内部中断信号INT_IN是在有关从主机接收到的命令被完成之后生成的。

当关于被设置到自适应掩蔽模式的SSD 200B-1的工作负荷的至少一个因子值在第二阈值条件之内时,AIPM 201-1执行将SSD 200B-1的模式从自适应掩蔽模式切换到非掩蔽模式的操作。详细地,当由被设置到自适应掩蔽模式的SSD 200B-1在每个经过的时间单位生成的内部中断INT_IN的数目小于第三阈值时,SSD 200B-1的模式从自适应掩蔽模式被切换到非掩蔽模式。

存储器设备220已经参照图10进行了描述,并且因此重复的描述将被省略。

图13示出了图12的存储器控制器210B’的示例。

如图13所示,存储器控制器210B’包括处理器211B’、RAM 212B’、主机接口213B’、存储器接口214B’和总线215B’。

形成存储器控制器210B的组件经由总线215B’彼此连接。

处理器211B’可以通过使用存储在RAM 212B’中的程序代码和数据来总体控制SSD 200B-1的操作。当SSD 200B-1被初始化时,处理器211B’可以读存储在存储器设备220中的、控制SSD 200B-1的操作所需的程序代码和数据,并且可以将其加载到RAM 212B’。尤其是,用于执行处理自适应中断的方法的软件程序AIPM_SW 212B-1被存储在RAM 212B’中。

经由主机接口213B’从主机接收到的数据或者经由存储器接口214B’从存储器设备220接收到的数据被存储在RAM 212B’中。可替代地,由处理器211B’处理的数据可以被存储在RAM 212B’中。

处理器211B’通过执行存储在RAM 212B’中的软件程序AIPM_SW 212B-1处理以下自适应中断。

处理器211B’当关于SSD 200B-1的工作负荷的至少一个因子值超过第一阈值条件时执行将SSD 200B-1设置到自适应掩蔽模式的操作,当被设置到自适应掩蔽模式的SSD 200B-1的I/O提交事件之间的时间间隔小于第一阈值时执行中断掩蔽处理的操作,而且在其中发生了I/O提交事件的线程中执行处理对于未处理的中断(其没有在执行了中断掩蔽处理的时间段内被处理)的响应的操作。

当在每个经过的时间单位所生成的中断信号INT的数目超过第二阈值时,处理器211B’可以执行将SSD 200B-1设置到自适应掩蔽模式的操作。作为另一示例,当SSD 200B-1的工作负荷、所消耗的电力和检测到的温度中的至少一个超过第一阈值条件时,处理器211B’可以执行将SSD 200B-1设置到自适应掩蔽模式的操作。

当I/O提交事件发生时,处理器211B’执行将处于自适应掩蔽模式的SSD 200B-1设置到中断掩蔽启用状态,或保持在中断掩蔽启用状态的操作。此外,当在从第N(其中,N是等于或大于1的整数)个I/O提交事件发生的时间点到阈值时间点的时间段内第(N+1)I/O个提交事件没有发生时,处理器211B’执行将SSD 200B-1设置到中断掩蔽禁用状态的操作。在中断掩蔽禁用状态下,中断掩蔽处理被跳过。

当在SSD 200B-1的状态被设置到中断掩蔽禁用状态之后接收到I/O提交事件时,处理器211B’执行将SSD 200B-1再次设置到中断掩蔽启用状态的操作。

当SSD 200B-1被设置到中断掩蔽启用状态时,处理器211B’防止中断信号被输出到主机。当SSD 200B-1被设置到中断掩蔽禁用状态时,处理器211B’允许中断信号被输出到主机。

当在SSD 200B-1被设置到自适应掩蔽模式之后关于SSD 200B-1的工作负荷的一个或多个因子值在第二阈值条件之内时,处理器211B’执行将SSD 200B-1的模式从自适应掩蔽模式切换到非掩蔽模式的操作。详细地,当在SSD 200B-1被设置到自适应掩蔽模式之后在每个经过的时间单位生成的中断的数目小于第三阈值时,SSD 200B-1的模式从自适应掩蔽模式被切换到非掩蔽模式。

主机接口213B’和存储器接口214B’与图11的主机接口213B和存储器接口214A基本相同,并且因此其描述将被省略。

图14示出了图12的存储器控制器的另一示例210B”。

如图14所示,存储器控制器210B”包括处理器211B”、RAM 212B”、主机接口213B”、存储器接口214B”、总线215B”和AIPM 2116B”。AIPM 2116B”可以包括处理器和存储器中的一个或多个。

存储器控制器210B”的组件经由总线215B”彼此电连接。

处理器211B”可以通过使用存储在RAM 212B”中的程序代码和数据来总体控制SSD 200B-1的操作。当SSD 200B-1被初始化时,处理器211B”可以读存储在存储器设备220中的、控制SSD 200B-1的操作所需的程序代码和数据,并且可以将其加载到RAM 212B”。

经由主机接口213B”从主机接收到的数据或者经由存储器接口214B”从存储器设备220接收到的数据被存储在RAM 212B”中。另外,由处理器211B”处理的数据可以被存储在RAM 212B”中。

AIPM 2116B”可以包括用于执行处理自适应中断的操作的软件或硬件。AIPM 2116B”可以包括用于处理图8中所示的自适应中断的装置10。

AIPM 2116B”执行当关于SSD 200B-1的工作负荷的至少一个因子值超过最初设置的第一阈值条件时将SSD 200B-1设置到处于自适应掩蔽模式的操作,以及当在被设置到自适应掩蔽模式的SSD 200B-1的I/O提交事件之间的时间间隔小于第一阈值时执行中断掩蔽处理的操作。

当处理器211B”在每个经过的时间单位生成的中断信号INT的数目超过第二阈值时,AIPM 2116B”将SSD 200B-1设置到自适应掩蔽模式。作为另一示例,当SSD 200B-1的工作负荷、所消耗的电力和检测到的温度中的至少一个超过第一阈值时,AIPM 2116B”可以执行将SSD 200B-1设置到自适应掩蔽模式的操作。

当在SSD 200B-1被允许为自适应掩蔽模式的时间段内发生了I/O提交事件时,AIPM 2116B”执行将处于自适应掩蔽模式的SSD 200B-1设置到中断掩蔽启用状态,或保持在中断掩蔽启用状态的操作。此外,当在从第N(其中,N是等于或大于1的整数)个I/O提交事件发生的时间点到阈值时间点的时间段内没有第(N+1)个I/O提交事件发生时,AIPM 2116B”执行将SSD 200B-1设置到中断掩蔽禁用状态的操作。在中断掩蔽禁用状态下,中断掩蔽处理被跳过。

当在SSD 200B-1被设置到中断掩蔽禁用状态之后接收到I/O提交事件时,AIPM 2116B”执行将SSD 200B-1再次设置到中断掩蔽启用状态的操作。

当SSD 200B-1被设置到中断掩蔽启用状态时,AIPM 2116B”防止中断信号被输出到主机。当SSD 200B-1被设置到中断掩蔽禁用状态时,AIPM 2116B”允许中断信号被输出到主机。

当在SSD 200B-1被设置到自适应掩蔽模式之后关于SSD 200B-1的工作负荷的至少一个因子值在第二阈值条件之内时,AIPM 2116B”执行将SSD 200B-1的模式从自适应掩蔽模式切换到非掩蔽模式的操作。详细地,当在SSD 200B-1被设置到自适应掩蔽模式之后在每个经过的时间单位生成的中断的数目小于第三阈值时,SSD 200B-1的模式从自适应掩蔽模式被切换到非掩蔽模式。

主机接口213B”和存储器接口214B”与图11的主机接口213A和存储器接口214A基本相同,并且因此其重复描述将被省略。

图15示出了图10和图12的非易失性存储器芯片NVM 220-1的结构的示例。

参照图15,非易失性存储器芯片220-1可以包括存储单元阵列221、控制逻辑222、电压发生器223、行译码器224和页缓冲器225。下文中,包括在非易失性存储器芯片220-1中的组件将在下面描述。

存储单元阵列221可以被连接到串选择线SSL、字线WL和地选择线GSL,并且也可以连接到位线BL。存储单元阵列221可以包括图17的存储单元MC,其排列在字线WL和位线BL彼此交叉的区域中。

当擦除电压被施加到存储单元阵列221时,存储单元MC处于擦除状态,并且当编程电压被施加到存储单元阵列221时,存储单元MC处于编程状态。在这种情况下,每个存储单元MC可以处于擦除状态和第一到第n编程状态P1到Pn中的一个,所述第一到第n编程状态P1到Pn通过阈值电压分类的。

这里,n可以是等于或大于2的自然数。例如,当存储单元MC是2比特电平单元时,n可以等于3。作为另一示例,当存储单元MC是3比特电平单元时,n可以等于7。作为另一示例,当存储单元MC是4比特电平单元时,n可以等于15。存储单元MC可以包括多电平单元。然而,本发明构思不限于此,并且存储单元MC可以包括单电平单元。

控制逻辑222可以基于从存储器控制器接收的命令CMD、地址ADDR和控制信号CTRL输出各种控制信号,以便将输入写入存储单元阵列221或者从存储单元阵列221读数据。因此,控制逻辑222可以总体控制非易失性存储器芯片220-1的操作。

从控制逻辑222输出的控制信号可以被提供给电压发生器223、行译码器224和页缓冲器225。详细地,控制逻辑222可以向电压发生器223提供电压控制信号CTRL_vol、向行译码器224提供行地址X_ADDR、而且向页缓冲器225提供列地址Y_ADDR。

电压发生器223可以基于电压控制信号CTRL_vol来生成用于对存储单元阵列221执行编程、读和擦除操作的各种电压。详细地,电压发生器223可以生成用于驱动字线WL的第一驱动电压VWL、用于驱动串选择线SSL的第二驱动电压VSSL、以及用于驱动地选择线GSL的第三驱动电压VGSL。

在这种情况下,第一驱动电压VWL可以是编程电压(或写电压)、读取电压、擦除电压、通过电压或程序校验电压。另外,第二驱动电压VSSL可以是串选择电压,即,开电压或关电压。此外,第三驱动电压VGSL可以是地选择电压,即,开电压或关电压。

行译码器224经由字线WL连接到存储单元阵列221,并且可以响应于从控制逻辑222接收到的行地址X_ADDR来激活一些字线WL。详细地,当执行读操作时,行译码器224可以将读电压施加到所选择的字线WL,并且可以将通过电压施加到未选择的字线WL。

当执行编程操作时,行译码器224可以将编程电压施加到所选择的字线WL,并且可以将通过电压施加到未选择的字线WL。

页缓冲器225可以通过位线BL被连接到存储单元阵列221。详细地,当执行读操作时,页缓冲器225操作为感应放大器,并且因此可以输出存储在存储单元阵列221中的数据DATA。当执行编程操作时,页缓冲器225操作为写驱动器,并且因此可以输入要被存储在存储单元阵列221中的数据DATA。

图16示出了图15的存储单元阵列221的示例。

参照图16,存储单元阵列221可以是闪存单元阵列。在这种情况下,存储单元阵列221包括存储块BLK1到BLKa(其中,a是等于或大于2的整数),存储块BLK1到BLKa中的每一个包括页PAGE1到PAGEb(其中,b是等于或大于2的整数),并且页PAGE1到PAGEb中的每一个包括扇区SEC1到SECc(其中,c是等于或大于2的整数)。为方便起见,图16示出了存储块BLK1的页PAGE0到PAGEb和扇区SEC1到SECc,但是其它存储块BLK2到BLKa可以具有与存储块BLK1相同的结构。

图17示出了包括在图16的存储单元阵列221中的第一存储块BLK1a的电路图。

参照图17,第一存储块BLK1a可以是具有垂直结构的NAND闪存。在这种情况下,图16的存储块BLK1到BLKa中的每一个可以如图17所示来具体实施。在图17中,第一方向将被称作x方向,而且第二方向将被称为y方向,而且第三方向将被称作z方向。然而,本发明构思不限于此,并且第一到第三方向可以被改变。

第一存储块BLK1a可以包括单元串CST、字线WL、位线BL、地选择线GSL1和GLS2、串选择线SSL1和SSL2、和公共源极线CSL。这里,单元串CST的数目、字线WL的数目、位线BL的数目、地选择线GSL1和GLS2的数目、以及串选择线SSL1和SSL2的数目可以根据示例实施例而变化。

单元串CST可以包括串联连接在位线BL和公共源极线CSL之间的串选择晶体管SST、存储单元MC和地选择晶体管GST。然而,本发明构思不限于此。根据另一示例性实施例中,单元串CST可以进一步包括至少一个虚拟单元。根据另一示例性实施例中,单元串CST还可以包括至少两个串选择晶体管SST或至少两个地选择晶体管GST。

此外,单元串CST可以沿第三方向(z方向)延伸。详细地,单元串CST可以沿垂直于衬底的方向(z方向)延伸。因此,包括单元串CST的存储块BLK1a可以被称为垂直方向上的NAND闪存。因为单元串CST沿垂直于衬底的方向(z方向)延伸,所以存储单元阵列221的集成度可以得到提高。

字线WL沿第一和第二方向(x和y方向)延伸,并且字线可以分别连接到相应的存储单元MC。因此,在相同层中沿第一方向和第二方向(x和y方向)彼此相邻排列的存储单元MC可以被连接到相同字线WL。详细地,每一个字线WL被连接到存储单元MC的栅极,并且可以控制存储单元MC。在这种情况下,存储单元MC可以存储数据,并且可以根据所连接的字线WL的控制被编程、读或擦除。

位线BL可以沿第一方向(在x方向)延伸,并且可以连接到串选择晶体管SST。因此,沿第一方向(在x方向)彼此相邻排列的串选择晶体管SST可以连接到相同位线BL。详细地,每个位线BL可以连接到串选择晶体管SST的漏极。

串选择线SSL1和SSL2沿第二方向(沿y方向)延伸,并且可以被连接到串选择晶体管SST。因此,沿第二方向(沿y方向)彼此相邻排列的串选择晶体管SST可以连接到相同的串选择线SSL1或SSL2。详细地,每个串选择线SSL1或SSL2可以连接到串选择晶体管SST的栅极并且可以控制串选择晶体管SST。

地选择线GSL1和GSL2沿第二方向(y方向)延伸,并且可以连接到地选择晶体管GST。因此,沿第二方向(y方向)彼此相邻排列的地选择晶体管GST可以连接到相同的地选择线GSL1或GSL2。详细地,每个地选择线GSL1或GSL2可以连接到地选择晶体管GST的栅极并且可以控制地选择晶体管GST。

此外,包含在各个单元串CST中的地选择晶体管GST可以连接到公共源极线CSL。详细地,公共源极线CSL可以连接到地选择晶体管GST的源极。

沿第二方向(y方向)彼此相邻排列、并且连接到相同的字线WL和相同的串选择线SSL1或SSL2的存储单元MC可以被称为页PAGE。例如,共同连接到第一字线WL1和第一串选择线SSL1、并且沿第二方向(y方向)彼此相邻排列的存储单元MC可以被称为第一页PAGE1。另外,共同连接到第一字线WL1和第二串选择线SSL2、并且沿第二方向(y方向)彼此相邻排列的存储单元MC可以被称为第二页PAGE2。

为了对存储单元MC执行编程操作,0V可以被施加到位线BL,开电压可以被施加到串选择线SSL,而且关电压可以被施加到地选择线GSL。开电压可以等于或大于串选择晶体管SST的阈值电压以便导通串选择晶体管SST,而且关电压可以小于地选择晶体管GST的阈值电压以便截止地选择晶体管GST。此外,编程电压可以被施加到所选择的存储单元MC,而且通过电压可以被施加到未选择的存储单元MC。当施加编程电压时,电荷可以通过F-N隧道被注入到存储单元MC。通过电压可以大于存储单元MC的阈值电压。

为了对存储单元MC执行擦除操作,擦除电压可以被施加到存储单元MC的主体,而且0V可以被施加到字线WL。因此,存储在存储单元MC中的数据可以被立即擦除。

图18示出了根据一些示例实施例的处理自适应中断的装置10的结构的示例。

图18示出了用于处理自适应中断的装置10的框图,该装置10包括图5、图6、图8和图9的计算系统1000A、1000B、2000B和2000C的主机或I/O设备中所排列的AIPM 110、210、2130-1或2211-1到2211-N中包括的设备。

如图18所示,用于处理自适应中断的装置10包括模式确定单元11、定时器电路12、中断掩蔽管理单元13和中断输出处理单元14。

模式确定单元11基于有关系统的工作负荷的因子值f1到fi,确定是否开启/关闭I/O设备的自适应掩蔽模式。

模式确定单元11可以计算在连接到主机的每个I/O设备中在每个经过的时间单位生成的中断的数目,当在I/O设备中在每个经过的时间单位生成的中断的数目超过第一阈值时可以生成用于开启I/O设备的自适应掩蔽模式的开信号,并且当所计算的在I/O设备中在每个经过的时间单位生成的中断的数目小于第一阈值时可以生成用于关闭I/O设备的自适应掩蔽模式的关信号。当系统的工作负荷、所消耗的电力和检测到的温度中的至少一个超过了最初设置的阈值条件时,模式确定单元11可以生成用于确定开启自适应掩蔽模式的模式确定信号S1,或者当系统的工作负荷、所消耗的电力和检测到的温度中的至少一个没有超过阈值条件时,可以生成用于确定关闭自适应掩蔽模式的模式确定信号S1。自适应掩蔽模式的关闭状态是非掩蔽模式,并且对应于非掩蔽模式。应该理解的是,开启或关闭I/O设备的自适应掩蔽模式可以被称为将I/O设备选择性地设置到自适应掩蔽模式。参照图21,时间段P0和P2对应于非掩蔽模式,而且时间段P1对应于自适应掩蔽模式。

定时器电路12包括定时器12-1和后处理单元12-2。

每当在被设置到自适应掩蔽模式的I/O设备中发生I/O提交事件时,定时器12-1测量从初始设置值T_st开始的时间。

当定时器12-1测量的时间达到目标值T_tar时,后处理单元12-2生成掩蔽关控制信号S2。相应地,当在从第N(其中,N是等于或大于1的整数)个I/O提交事件发生的时间点到阈值时间点T_tar(即,目标值T_tar)的时间段内在被设置到自适应掩蔽模式的I/O设备中第(N+1)个I/O提交事件没有发生时,后处理单元12-2生成掩蔽关控制信号S2。

因此,定时器电路12可以执行测量被设置到自适应掩蔽模式的I/O设备的I/O提交事件之间的时间间隔是等于还是小于阈值间隔的操作。

基于从模式确定单元11接收到的模式确定信号S1,当由处于中断掩蔽禁用状态的I/O设备接收到I/O提交事件信号时,中断掩蔽管理单元13生成用于将处于自适应掩蔽模式的I/O设备从中断掩蔽禁用状态切换到中断掩蔽启用状态的掩蔽信号S3。可替换地,在中断掩蔽启用状态下,中断掩蔽管理单元13生成用于保持中断掩蔽启用状态的掩蔽信号S3。

当从定时器电路12接收到掩蔽关控制信号S2时,中断掩蔽管理单元13生成用于将I/O设备的状态从中断掩蔽启用状态切换到中断掩蔽禁用状态的掩蔽信号S3。例如,当从定时器电路12接收到有关I/O设备2210-K的掩蔽关控制信号S2时,中断掩蔽管理单元13生成用于将I/O设备2210-K的状态从中断掩蔽启用状态切换到中断掩蔽禁用状态的掩蔽信号S3。

参照图18,基于掩蔽信号S3,在自适应掩蔽模式的时间段P1中,I/O设备被设置到或者中断掩蔽启用状态或者中断掩蔽禁用状态。当在从第N(其中,N是等于或大于1的整数)个I/O提交事件发生的时间点到阈值时间点T_tar(即,目标值T_tar)的时间段内第(N+1)个I/O提交事件没有发生时,I/O设备的状态被切换到中断掩蔽禁用状态。图21中的超时期间T0的开始点和停止点分别对应于目标值T_tar和初始设置值T_st。

中断输出处理单元14选择性地输出由各个I/O设备基于由中断掩蔽管理单元13为I/O设备生成的掩蔽信号S3所生成的中断信号INT_IN。详细地,在中断掩蔽启用状态下在生成掩蔽信号S3的时间段中,中断输出处理单元14防止由各个I/O设备生成的中断信号INT_IN被输出到主机的CPU(或处理器)。此外,在中断掩蔽禁用状态下在生成掩蔽信号S3的时间段中,中断输出处理单元14允许由各个I/O设备生成的中断信号INT_IN被输出到主机的CPU(或处理器)。

因此,由中断输出处理单元14输出的中断信号INT_EX变为在中断掩蔽启用状态下在生成掩蔽信号S3的时间段中输入的中断信号INT_IN。

参照图21,在指示中断掩蔽启用状态的掩蔽启用状态的高时间段中,由I/O设备生成的内部中断信号的输出被阻止。内部中断信号具有与内部事件信号相同的含义。也就是说,尽管在指示中断掩蔽启用状态的掩蔽启用状态的高时间段中生成了内部中断信号,但是外部中断信号External Int.(外部中断)不被输出。在指示中断掩蔽禁用状态的掩蔽启用状态的低时间段中,内部中断信号作为外部中断信号External Int.被输出。

图19示出了根据一些示例实施例的包括在用于处理自适应中断的装置10中的主机100’的主要结构。

主机100’包括I/O控制器101、I/O完成处理装置102、完成队列CQ 103、I/O提交处理装置104和提交队列SQ 105。I/O控制器101可以包括自适应中断处理模块AIPM 10。

在掩蔽启用状态下,I/O控制器101阻止中断信号INT_I/O(1)到INT_I/O(M),所述中断信号INT_I/O(1)到INT_I/O(M)是从通过用于处理自适应中断的装置10连接到主机100’的I/O设备分别接收的。即,在掩蔽禁用状态下,从I/O控制器101输出到I/O设备的中断信号INT_EX(1)到INT_EX(M)变为分别从I/O设备接收到的中断信号INT_I/O(1)到INT_I/O(M)。

主机100’可以基于从I/O控制器101输出的中断信号INT_EX(1)到INT_EX(M)来执行中断处理。主机100’可以基于中断信号INT_EX(1)到INT_EX(M)在中断处理装置上下文中执行中断处理。

在自适应掩蔽模式下,主机100’可以通过使用I/O提交处理装置104来处理对于未处理的中断(其没有在掩蔽启用状态下被处理)的响应。

根据I/O提交线程发到I/O设备的命令信息被插入到提交队列SQ 105。即,发到I/O设备的命令信息被存储在提交队列SQ 105中。

在I/O设备中已经被完全执行的命令信息被存储在完成队列CQ 103中。I/O完成处理装置102可以通过I/O控制器101接收在I/O设备中已经被完全执行的命令信息,并且可以将其存储在完成队列CQ 103中。

在其中发生了I/O提交事件的线程上下文中,I/O提交处理装置104执行将有关I/O提交事件的命令插入到提交队列SQ 105中的任务以及处理对于未处理的中断(其没有在掩蔽启用状态下被处理)的响应的任务。

I/O提交处理装置104在其中发生了I/O提交事件的线程上下文中执行将有关I/O提交事件的命令插入到提交队列SQ 105中的任务,然后在相同的线程上下文中执行处理对于未处理的中断(其被存储在完成队列CQ 103中)的响应的任务。详细地,I/O提交处理装置104在其中发生了I/O提交事件的线程上下文中执行探听完成队列CQ的操作,从而执行处理对于未处理的中断(其没有在中断掩蔽启用状态下被处理且被存储在完成队列CQ 103中)的响应的任务。

作为另一示例实例,I/O提交处理装置104可以在其中发生了I/O提交事件的线程上下文中经由I/O完成处理装置102执行探听完成队列CQ的操作。在这种情况下,I/O完成处理装置102可以执行处理对于未处理的中断(其没有在中断掩蔽启用状态下被处理且被存储在完成队列CQ 103中)的响应的任务。

因此,处理对于未处理的中断(其没有在中断掩蔽启用状态下被处理且被存储在完成队列CQ 103中)的响应的任务可以在其中发生了I/O提交事件的线程上下文中执行。

图21示出的是,在其中发生了I/O提交事件的线程上下文中处理内部事件,该内部事件因为外部中断信号External Int.未被生成所以在掩蔽启用状态的高时间段未被处理。作为参考,因为外部中断信号External Int.未被生成所以未被处理的内部事件被存储在完成队列CQ 103中。

图20示出了根据一些示例实施例的在系统100”中在中断掩蔽启用状态下处理中断的过程。

参照图20,系统100”可以被划分为用户区、内核区和硬件区。

正在执行的上下文Context_1到Context_J被包括在用户区中,I/O提交处理装置123-1和I/O完成处理装置123-2被包括在内核区中,而且I/O设备124-1到124-M被包括在硬件区中。I/O提交处理装置123-1和I/O完成处理装置123-2可以被包括在安装在设备驱动器123中的程序中。

例如,当在包括在用户区中的上下文Context_1中,在被设置为中断掩蔽启用状态的I/O设备中生成I/O提交线程时,内核区中的I/O提交处理装置123-1对包括在硬件区中的I/O设备124-1执行I/O提交操作。I/O提交处理装置123-1通过I/O完成处理装置123-2执行探听I/O设备124-1中的完成队列的操作而无需切换上下文。如果在I/O设备124-1中的完成队列中存在未处理的事件,则由I/O完成处理装置123-2处理对未处理事件的响应。

图21示出了根据一些示例实施例的关于用于解释处理自适应中断的操作的主要信号的时序图。

参照图21,在I/O设备被设置到自适应掩蔽模式之后,在I/O提交上下文中处理四个内部事件。最终,内部事件未被生成为外部中断。对于在I/O设备被设置到自适应掩蔽模式之后生成的第五内部事件,下一I/O提交未在阈值时间间隔T0内被处理,并且因此,第五内部事件未在I/O提交上下文中被处理。因此,超时发生在阈值时间间隔T0中,并且生成了外部中断,从而在主机的中断上下文中处理外部中断。

在图21中,内部事件和下一I/O提交之间的时间延迟由括号指示。已经发现,对于所有内部事件的时间延迟不超过T0。

图22示出了根据一些示例实施例的在使用了处理自适应中断的方法的情况下的中断延迟。图22示出了对于在第二I/O提交发生之后立即发生了指示第一提交完成的内部事件的被掩蔽的内部事件中的时间延迟而言不好的情况。然而,即使在这种情况下,也生成了超过超时期间T0的时间延迟。

然后,下面将参照图23、图24、图25和图26的流程图来描述处理自适应中断的方法,其由各种类型的计算系统来执行并且包括图5到图9的示例实施例。将理解的是,被描述为实现下面将参照图23、图24、图25和图26的流程图描述的一个或多个方法的系统可以包括自适应中断处理模块、经由程序代码的执行来实现自适应中断处理模块的一个或多个部分的系统、它们的一些组合等,即使未明确地这样陈述。

图23示出了根据一些示例实施例的处理自适应中断的方法的流程图。

在操作S110中,当关于系统的工作负荷的至少一个因子值超过最初设置的第一阈值条件时,系统允许I/O设备进入自适应掩蔽模式。当在每个经过的时间单位所生成的中断的数目超过第二阈值时,系统可以将I/O设备设置到自适应掩蔽模式。

在操作S120中,当被设置到自适应掩蔽模式的I/O设备的I/O提交事件之间的时间间隔小于第一阈值时,系统执行中断掩蔽处理。当在从第N(其中,N是等于或大于1的整数)个I/O提交事件发生的时间点到阈值时间点的时间段内第(N+1)个I/O提交事件没有发生时,系统执行将处于自适应掩蔽模式的I/O设备设置到中断掩蔽禁用状态的操作。在中断掩蔽禁用状态下,中断掩蔽处理被跳过。然后,当在I/O设备的状态被设置到中断掩蔽禁用状态之后在I/O设备中发生了I/O提交事件时,系统执行将I/O设备再次设置到中断掩蔽启用状态的操作。

在操作S130中,在发生了I/O提交事件的线程上下文中,系统根据中断掩蔽处理执行处理对于未处理的中断的响应的操作。系统可以在发生了I/O提交事件的线程上下文中,执行将有关I/O提交事件的命令插入到提交队列的任务,以及根据中断掩蔽处理来处理对于未处理的中断的响应的任务。

图24示出了图23中所示的将I/O设备设置到自适应掩蔽模式的操作S110的详细流程图。

在操作S111中,系统收集关于工作负荷的一个或多个因子值。例如,关于包括在系统中的每个I/O设备的工作负荷、所消耗的电力和检测到的温度中的至少一个的一个或多个因子值可以被收集。作为另一示例,在包括在系统中的每个I/O设备中在每个经过的时间单位生成的中断的数目可以被收集,因为I/O设备的工作负荷可以基于在每个经过的时间单位生成的中断的数目来估计。

在操作S112中,系统基于所收集的因子值来确定将每个I/O设备设置到自适应掩蔽模式的条件是否得到满足。系统可以确定在系统所包括的I/O设备当中是否存在其工作负荷、所消耗的电力和检测到的温度中的至少一个超过了阈值条件的I/O设备。作为另一示例,系统可以确定在系统所包括的I/O设备当中是否存在其在每个经过的时间单位生成的中断的数目超过第二阈值的I/O设备。

在操作S113中,系统将满足将每个I/O设备设置到自适应掩蔽模式的条件的I/O设备设置到自适应掩蔽模式。系统所包括的I/O设备当中的、其工作负荷、所消耗的电力和检测到的温度中的至少一个超过了阈值条件的I/O设备可以被设置到自适应掩蔽模式。作为另一示例,系统所包括的I/O设备当中的、其在每个经过的时间单位生成的中断的数目超过第二阈值的I/O设备可以被设置到自适应掩蔽模式。

在操作S114中,系统允许不满足上述条件的I/O设备被设置到非掩蔽模式。

图25示出了图23中的处理中断掩蔽的操作S120的详细流程图。

在操作S121中,系统确定当I/O设备处于自适应掩蔽模式时是否发生I/O提交事件。详细地,作出关于被设置到自适应掩蔽模式的I/O设备的I/O提交事件是否发生的确定。

在操作S121中作出确定之后,在操作S122中,系统确定当关于I/O设备的I/O提交事件发生时I/O设备是否被设置到中断掩蔽启用状态。

在操作S122中作出确定之后,在操作S123中,当被设置到自适应掩蔽模式的I/O设备未处于中断掩蔽启用状态时,系统将I/O设备的状态切换到中断掩蔽启用状态。因此,由于I/O提交事件的发生,被设置到自适应掩蔽模式的I/O设备的状态被切换到中断掩蔽启用状态。

在操作S122中作出确定之后,当被设置到自适应掩蔽模式的I/O设备被设置到中断掩蔽启用状态时,执行操作S125。

另外,在操作S121中作出确定之后,当关于被设置到自适应掩蔽模式的I/O设备的I/O提交事件发生时,在操作S124中,与I/O设备相对应的定时器从初始设置值T_st开始操作。

系统将已经处于自适应掩蔽模式的I/O设备设置到中断掩蔽启用状态并且设置定时器以基于I/O提交事件开始操作之后,在操作S125中,系统确定定时器是否已经达到目标值T_tar。

在操作S125中作出确定之后,在操作S126中,系统将其定时器已经达到目标值T_tar的I/O设备设置到中断掩蔽禁用状态,这意味着I/O设备的状态从中断掩蔽启用状态被切换到中断掩蔽禁用状态,因为在从第N(其中,N是等于或大于1的整数)个I/O提交事件发生的时间点到阈值时间点T0的时间段内第(N+1)个I/O提交事件没有发生。阈值时间点T0对应于T_tar到T_st。

在操作S125中作出确定之后,在操作S127中,系统允许被设置到中断掩蔽启用状态且包括未达到目标值T_tar的定时器的I/O设备保持在中断掩蔽启用状态。当在I/O设备被设置到自适应掩蔽模式的时间段中,I/O提交事件之间的时间间隔小于阈值时间点T0时,系统允许I/O设备保持在中断掩蔽启用状态。

图26示出了图23中的处理对于未处理的中断的响应的操作S130的详细流程图。

在操作S131中,系统确定在处于中断掩蔽启用状态的I/O设备中是否发生I/O提交事件。

在操作S132中,当在被设置到中断掩蔽启用状态的I/O设备中发生了I/O提交事件时,系统执行将有关I/O提交事件的命令插入到I/O提交处理装置中的提交队列中的操作。

在操作S133中,系统执行探听I/O提交处理装置中的完成队列以及对于未处理的中断的响应的操作。

因此,系统可以在被设置到中断掩蔽启用状态的I/O设备中在发生了I/O提交事件的线程上下文中执行将有关I/O提交事件的命令插入到提交队列中的任务,然后在相同的上下文中执行处理存储在完成队列中的响应的任务。

虽然已经参照本发明构思的示范性实施例具体示出和描述了本发明构思,但是可以理解,可以在形式和细节上做出各种改变而不脱离所附权利要求的精神和范围。

前面的描述是出于举例和描述的目的提供的。它不旨在穷尽或限制本公开。特定示例实施例的单个元件或特征通常并不限于该特定实施例,而是在适用时可以互换,并且可以在所选择的实施例中使用,即使没有具体示出或描述。实施例也可以以许多方式变化。这样的变化不应被视为脱离本公开,并且所有这样的修改旨在被包括在本公开的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1