CN105630593A - 用于处理中断的方法 - Google Patents
用于处理中断的方法 Download PDFInfo
- Publication number
- CN105630593A CN105630593A CN201510824654.0A CN201510824654A CN105630593A CN 105630593 A CN105630593 A CN 105630593A CN 201510824654 A CN201510824654 A CN 201510824654A CN 105630593 A CN105630593 A CN 105630593A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- interruption
- processing
- task queue
- interrupt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
- G06F9/4837—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种用于处理中断的方法。该方法包括步骤:接收第一中断,并将第一中断分配给多个处理单元中的第一处理单元的第一任务队列;接收第二中断,并将第二中断分配给第一任务队列;在第一处理单元上处理分配给第一任务队列的第一中断;在处理第一中断的同时,从所述多个处理单元中选择将处理第二中断的第二处理单元;以及将分配给第一任务队列的第二中断传送至选择的第二处理单元的第二任务队列。
Description
相关申请的交叉引用
本申请基于并要求于2014年11月24日在韩国知识产权局提交的韩国专利申请No.10-2014-0164480的优先权,该申请的公开以引用方式并入本文中。
技术领域
本发明构思的至少一些示例实施例涉及一种用于处理中断的方法。
背景技术
如果在计算系统中产生用于数据输入/输出任务的多个中断,则操作计算系统的操作系统利用构成计算系统的各种资源处理产生的各个中断。
发明内容
在包括多处理器或多核处理器的计算系统中,期望合适地选择资源,以快速和有效地处理多个中断。因此,以计算系统的处理能力或状态为考虑来将多个中断分配给最佳的(或者说是,期望的)资源的方案是需要的。本发明构思的至少一个示例实施例提供了一种用于处理中断的方法,其可基于计算系统的处理能力或状态来选择资源以有效地处理多个中断。
根据本发明构思的至少一个示例实施例,一种用于处理中断的方法包括:接收第一中断;将第一中断分配给多个处理单元中的第一处理单元的第一任务队列;接收第二中断;将第二中断分配给第一任务队列;在第一处理单元上处理分配给第一任务队列的第一中断;基于分配在第一任务队列中的等待中断的数量和中断的发生频率确定是否利用所述多个处理单元中的与第一处理单元不同的第二处理单元来处理第二中断;从所述多个处理单元中选择第二处理单元;将分配给第一任务队列的第二中断传送至选择的第二处理单元的第二任务队列;以及在处理第一中断的同时,在所述多个处理单元中处理第二中断。
选择第二处理单元的步骤可包括:基于所述多个处理单元各自的状态选择第二处理单元。
基于所述多个处理单元各自的状态选择第二处理单元的步骤可包括:选择处于活跃状态的处理单元作为第二处理单元。
基于所述多个处理单元各自的状态选择第二处理单元的步骤可包括:选择利用率比第一处理单元的利用率更低的处理单元作为第二处理单元。
选择第二处理单元的步骤可包括:基于所述多个处理单元的任务队列各自的状态选择第二处理单元。
基于所述多个处理单元的任务队列各自的状态选择第二处理单元的步骤可包括:选择具有分配的中断数量小于分配给第一处理单元的任务队列的中断数量的任务队列的处理单元作为第二处理单元。
选择第二处理单元的步骤可包括:基于中断相对于各个处理单元的发生频率选择第二处理单元。
基于中断相对于各个处理单元的发生频率选择第二处理单元的步骤可包括:选择其中断的发生频率低于第一处理单元的中断的发生频率的处理单元作为第二处理单元。
选择第二处理单元的步骤可包括:基于所述多个处理单元各自的高速缓存状态选择第二处理单元。
基于所述多个处理单元各自的高速缓存状态选择第二处理单元的步骤可包括:选择其高速缓存缺失的发生频率小于或等于第一处理单元的高速缓存缺失的发生频率的处理单元作为第二处理单元。
选择第二处理单元的步骤可包括:在第一处理单元处于挂起状态的同时选择第二处理单元。
处理第二中断的步骤可包括:在选择的第二处理单元上处理传送至第二任务队列的第二中断。
用于处理中断的方法还可包括:从所述多个处理单元中选择第三处理单元;以及将传送至第二任务队列的第二中断传送至选择的第三处理单元的第三任务队列。
用于处理中断的方法还可包括:在选择的第三处理单元上处理传送至第三任务队列的第二中断。
第三处理单元可包括第一处理器,并且第三任务队列可为第一任务队列。
第一处理单元可包括第一中央处理单元(CPU),并且第二处理单元包括第二CPU。
第一处理单元可包括第一核,并且第二处理单元可包括第二核。
第一核和第二核可为包括在同一多核处理器中的处理器核。
根据本发明构思的至少一个示例实施例,一种用于处理中断的方法可包括:将多个中断分配给多个处理单元,所述分配步骤包括将包括第一中断和第二中断的两个或更多个中断分配给第一处理单元;以及如果所述多个中断的数量大于所述多个处理单元的数量,则利用第一处理单元处理第一中断;以及利用所述多个处理单元的第二处理单元处理第二中断。
用于处理中断的方法还可包括:在利用第一处理单元处理第一中断的同时,从所述多个处理单元中选择第二处理单元。
选择第二处理单元的步骤可包括:选择利用率比第一处理单元的利用率更低的处理单元作为第二处理单元。
选择第二处理单元的步骤可包括:选择具有分配的中断数量小于分配给第一处理单元的任务队列的中断数量的任务队列的处理单元作为第二处理单元。
选择第二处理单元的步骤可包括:选择其中断的发生频率低于第一处理单元的中断的发生频率的处理单元作为第二处理单元。
选择第二处理单元的步骤可包括:选择其高速缓存缺失的发生频率小于或等于第一处理单元的高速缓存缺失的发生频率的处理单元作为第二处理单元。
用于处理中断的方法还可包括:在利用第一处理单元处理第一中断的同时将第二中断传送至第二处理单元的任务队列。
根据本发明构思的至少一个示例实施例,一种用于处理中断的方法可包括:接收将被插入多个处理单元中的第一处理单元的第一任务队列中的第一中断;监视第一任务队列的状态;如果预先插入第一任务队列中的中断数量超过第一阈值,则从所述多个处理单元中选择第二处理单元;将第一中断插入第二处理单元的第二任务队列中;以及利用第二处理单元处理第一中断。
选择第二处理单元的步骤可包括:在利用第一处理单元处理预先插入第一任务队列中的中断的同时选择第二处理单元。
选择第二处理单元的步骤可包括:监视第二任务队列的状态;以及选择具有预先插入的中断数量等于或小于第二阈值的任务队列的处理单元作为第二处理单元。
第一阈值和第二阈值可彼此相等。
用于处理中断的方法还可包括:监视第一处理单元的状态;以及如果第一处理单元处于不活跃状态,则选择第二处理单元。
选择第二处理单元的步骤可包括:监视所述多个处理单元中的一个或多个的一个或多个状态;以及选择处于活跃状态的处理单元作为第二处理单元。
用于处理中断的方法还可包括:监视第一处理单元的利用率;以及如果第一处理单元的利用率超过第三阈值,则选择第二处理单元。
选择第二处理单元的步骤可包括:监视所述多个处理单元中的一个或多个的一个或多个利用率;以及选择其利用率等于或小于第四阈值的处理单元作为第二处理单元。
用于处理中断的方法还可包括:监视在第一处理单元中指定和接收的中断的发生频率;以及如果在第一处理单元中指定和接收的中断的发生频率超过第五阈值,则选择第二处理单元。
选择第二处理单元的步骤可包括:监视在第一处理单元中指定和接收的中断的发生频率;以及选择第二处理单元,以使得在第二处理单元中指定和接收的中断的发生频率等于或小于第六阈值。
根据本发明构思的至少一个示例实施例,一种用于处理中断的方法可包括:接收指定处于多个处理单元中的第一处理单元中的第一中断;将接收的第一中断插入第一处理单元的第一任务队列中;接收指定处于第一处理单元中的第二中断;确定第二中断相对于第一任务队列的第一处理等待时间;确定第二中断相对于所述多个处理单元中的第二处理单元的第二任务队列的第二处理等待时间;以及如果第二处理等待时间比第一处理等待时间更短,则将第二中断插入第二任务队列中。
可在利用第一处理单元处理第一中断的同时确定第一处理等待时间,并且可在利用第一处理单元处理第一中断的同时确定第二处理等待时间。
可基于预先插入第一任务队列中的中断数量或者基于预先插入第二任务队列中的中断数量来执行确定第一处理等待时间的步骤和确定第二处理等待时间的步骤中的至少一个。
可基于第一处理单元的状态或者基于第二处理单元的状态来执行确定第一处理等待时间的步骤和确定第二处理等待时间的步骤中的至少一个。
可基于中断相对于第一处理单元的发生频率或者基于中断相对于第二处理单元的发生频率来执行确定第一处理等待时间的步骤和确定第二处理等待时间的步骤中的至少一个。
根据本发明构思的至少一个示例实施例,一种用于处理中断的方法包括:通过将第一中断加至对应于第一处理单元的第一任务队列将第一中断分配给第一处理单元;通过将第二中断加至第一任务队列将第二中断分配给第一处理单元;利用第一处理单元处理第一中断;从多个处理单元中选择第二处理单元;将第二中断从第一任务队列传送至对应于第二处理单元的第二任务队列;以及在利用第一处理单元处理第一中断的同时,利用第二处理单元处理第二中断。
附图说明
通过参照附图详细描述本发明构思的示例实施例,本发明构思的示例实施例的以上和其它特征和优点将变得更加清楚。附图旨在描述本发明构思的示例实施例,并且不应被解释为限制权利要求的期望范围。除非明确指示,否则附图不应理解为按比例绘制。
图1A和图1B是解释执行根据本发明构思的至少一些示例实施例的用于处理中断的方法的计算系统的示意图;
图2是解释执行根据本发明构思的至少一个示例实施例的用于处理中断的方法的计算系统的示意图;
图3是解释根据本发明构思的至少一个示例实施例的用于处理中断的方法的示意图;
图4是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的示意图;
图5是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的示意图;
图6是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的示意图;
图7是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的示意图;
图8是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的示意图;
图9是解释包括执行根据本发明构思的至少一些示例实施例的用于处理中断的方法的多处理器的计算系统的示意图;
图10是解释包括执行根据本发明构思的至少一些示例实施例的用于处理中断的方法的多核处理器的计算系统的示意图;
图11是解释根据本发明构思的至少一个示例实施例的用于处理中断的方法的流程图;
图12是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的流程图;
图13是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的流程图;
图14是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的流程图;以及
图15至图17是可应用根据本发明构思的至少一些示例实施例的用于处理中断的方法的示例计算系统的示图。
具体实施方式
本文公开了本发明构思的详细示例实施例。然而,本文公开的特定结构性和功能性细节仅是出于描述本发明构思的示例实施例的目的的代表性细节。然而,本发明构思的示例实施例可按照许多替代形式具体实现,并且不应被理解为仅限于本文阐述的实施例。
因此,虽然本发明构思的示例实施例能够具有许多修改形式和替代形式,但是在附图中以举例的方式示出了本发明构思的实施例,并且本文将对其详细描述。然而应该理解,这不旨在将本发明构思的示例实施例限于公开的具体形式,而是相反,本发明构思的示例实施例覆盖落入本发明构思的示例实施例的范围内的所有修改形式、等同形式和替代形式。在附图的描述中,相同的附图标记始终指代相同的元件。
应该理解,虽然本文中可使用术语例如第一、第二等来描述多个元件,但是这些元件不应被这些术语限制。这些术语仅用于将一个元件与另一元件区分开。例如,第一元件可被称作第二元件,并且,相似地,第二元件可被称作第一元件,而不脱离本发明构思的示例实施例的范围。如本文所用,术语“和/或”包括相关所列项之一或多个的任何和所有组合。
应该理解,当一个元件被称作“连接至”或“结合至”另一元件时,所述一个元件可直接连接至或结合至另一元件,或者可存在中间元件。相反,当一个元件被称作“直接连接至”或“直接结合至”另一元件时,则不存在中间元件。应该按照相同的方式解释其它用于描述各元件之间的关系的词语(例如,“在……之间”与“直接在……之间”、“邻近”与“直接邻近”等)。
本文所用的术语仅是为了描述特定实施例,并且不旨在限制本发明构思的示例实施例。如本文所使用的那样,除非上下文清楚地指明不是这样,否则单数形式“一个”、“一”和“该”也旨在包括复数形式。还应该理解,当术语“包括”、“包括……的”、“包含”和/或“包含……的”用于本说明书中时,指明存在所列特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。
还应该注意,在一些替代性实施方式中,标示的功能/动作可不按照图中标示的顺序进行。例如,连续示出的两张图实际上可基本同时执行,或者有时可按照相反次序执行,这取决于所涉及的功能/动作。
本文参照本发明构思的理想实施例(和中间结构)的示意图描述本发明构思的示例性实施例。这样,作为例如制造技术和/或公差的结果,附图中的形状的变化是可预见的。因此,本发明构思的示例实施例不应理解为限于本文示出的区的具体形状,而是包括例如由制造工艺导致的形状的偏差。
虽然可能没有示出与一些剖视图对应的平面图和/或透视图,但是本文示出的器件结构的剖视图为沿着平面图中将示出的两个不同方向和/或在透视图中将示出的三个不同方向上延伸的多个器件结构提供了支持。所述两个不同方向可以彼此正交或可以彼此不正交。所述三个不同方向可包括可以与两个不同方向正交的第三方向。所述多个器件结构可集成在同一电子装置中。例如,当在剖视图中示出一器件结构(例如,存储器单元结构或晶体管结构)时,电子装置可包括多个所述器件结构(例如,存储器单元结构或晶体管结构),如将通过电子装置的平面图示出的那样。所述多个器件结构可按照阵列和/或按照二维图案排列。
图1A和图1B是解释执行根据本发明构思的至少一些示例实施例的用于处理中断的方法的计算系统的示意图。
参照图1A,执行根据本发明构思的至少一些示例实施例的用于处理中断的方法的计算系统1可包括硬件10、操作系统20和应用30。硬件10可包括处理器。如本文所用,术语‘处理器’可指例如硬件实现的具有电路的数据处理装置,该电路在物理上被结构化为执行包括例如表示为包括在程序中的代码和/或指令的操作的期望操作。上述硬件实现的数据处理装置的示例包括(但不限于)微处理器、中央处理单元(CPU)、处理器核、多处理器、专用集成电路(ASIC)和现场可编程门阵列(FPGA)。
可通过一个或多个程序限定操作系统20和应用30二者,所述程序包括由包括在硬件10中的一个或多个处理器执行的指令。因此,根据本发明构思的至少一个示例实施例,本文中描述的由操作系统20或应用30执行的操作可由执行包括在对操作系统20和/或应用30进行限定的程序中的指令的处理器来执行。根据本发明构思的至少一些示例实施例,这些程序可存储在例如同样包括在系统1中的存储装置中。
操作系统20通常通过控制硬件10和支持应用30的执行来操作计算系统1。例如,操作系统20可从应用30接收任务请求,设置用于处理请求任务的一系列任务,并且将任务分配给硬件10。此外,操作系统20可将已利用硬件10处理的所述一系列任务的结果传送给应用30。
在本发明构思的至少一些示例实施例中,操作系统20可为苹果公司的OSX、微软公司的Windows、UNIX或Linux。此外,操作系统20可为专用于移动装置的操作系统,诸如苹果公司的iOS或Google公司的Android。然而,操作系统20不限于上述示例。
根据本发明构思的至少一些示例实施例,硬件10可包括:处理单元,其示例包括(但不限于)CPU(中央处理单元)、GPU(图形处理单元)、AP(应用处理器)、CP(蜂窝处理器)或DSP(数字信号处理器);存储器,其包括ROM(只读存储器)或RAM(随机存取存储器);存储装置,其包括HDD(硬盘驱动器)或SSD(固态盘)以及其它外围装置,但不限于此。
具体地说,在本发明构思的至少一些示例实施例中,处理单元可为多处理单元12。例如,多处理单元12可为包括多个处理器(例如,多个CPU)的多处理器。可替换地,多处理单元12可为包括多个核的多核处理器。
再参照图1A,应用30可从用户接收对于数据输入/输出的用户请求,并且相对于操作系统20产生中断。操作系统20可利用中断处理程序24处理由应用30产生的中断。具体地说,操作系统20可利用中断处理程序24将用于处理中断的命令和数据传送至硬件10,并且利用硬件10处理中断。
在本发明构思的至少一些示例实施例中,可利用硬件10的多处理单元12处理中断。在这种情况下,操作系统20中的进程管理器22可执行根据本发明构思的至少一些示例实施例的用于处理中断的方法。具体地说,进程管理器22可将待处理的中断合适地分配至多处理单元12。在本发明构思的至少一些示例实施例中,可通过作为操作系统20的一部分的软件实现进程管理器22,但是其详细实现类型不限于此。例如,根据本发明构思的至少一些示例实施例,进程管理器可实现为包括在系统1中的电路,并且在物理上结构化以执行本文所述的由进程管理器22执行的操作。稍后将参照图3至图8描述进程管理器22的详细操作。
参照图1B,用户层、核心层和HW层可对应于图1A中的应用30、操作系统20和硬件10。
核心层利用常见中断程序接收中断并排除直接输入/输出以阻塞装置。然后,核心层将缓冲器传给用于输入/输出的装置驱动器并从诸如SSD(固态硬盘)的装置中读取页面。核心层的完成队列从装置接收数据或消息,并将它们传送至调度器或调度程序以将中断指定在处理单元(例如,CPU中的核)上。此后,核心层获得存储器或高速缓冲存储器上的执行结果。可以在核心层接收到完成队列中的数据之后并且在启用处理单元上的用于处理从硬件装置发生的中断的调度程序之前执行本发明构思的中断处理机构。
图2是解释执行根据本发明构思的至少一个示例实施例的用于处理中断的方法的计算系统的示意图。
参照图2,执行根据本发明构思的至少一个示例实施例的用于处理中断的方法的计算系统包括多个处理单元100、102、104和106以及分别设置在所述多个处理单元100、102、104和106中的任务队列Q1、Q2、Q3和Q4。所述多个处理单元100、102、104和106可通过总线110彼此交换数据。
在本发明构思的至少一些示例实施例中,第一处理单元100可包括第一CPU,并且第二处理单元102可包括第二CPU。此外,第三处理单元104可包括第三CPU,并且第四处理单元106可包括第四CPU。也就是说,所述多个处理单元100、102、104和106可构成一个多处理器。可替换地,根据本发明构思的至少一个示例实施例,所述多个处理单元100、102、104和106可一起仅表示包括额外CPU的多处理器的一部分。
此外,根据本发明构思的至少一些示例实施例,第一处理单元100至第四处理单元106不是CPU,而可分别为第一处理器核至第四处理器核。也就是说,所述多个处理单元100、102、104和106可为多核处理器,或者,可替换地,为多核处理器的一部分。
再参照图2,第一处理单元100可设有用于管理将由第一处理单元100执行的各任务的任务队列Q1。将由第一处理单元100执行的各任务被分配给第一处理单元100,并且在第一处理单元100执行另一任务的情况下,可将任务插入备用状态的任务队列Q1中。在第一处理单元100完成另一任务的处理的情况下,可从任务队列Q1中取出插入在任务队列Q1中的任务。然后,可通过第一处理单元100执行取出的任务。由于分别设有任务队列Q2、Q3和Q4的第二处理单元至第四处理单元(102、104和106)执行如上所述的相同操作,因此省略对其的重复解释。
在本发明构思的至少一些示例实施例中,可通过操作系统20管理任务队列Q1、Q2、Q3和Q4。也就是说,可通过操作系统20产生、保持和删除任务队列Q1、Q2、Q3和Q4。在本发明构思的至少一些示例实施例中,任务队列Q1、Q2、Q3和Q4可实现为优先队列,然而任务队列Q1、Q2、Q3和Q4不限于实现为优先队列,而是可实现为其它类型的队列。
再参照图2,将五个任务插入第一处理单元100的第一任务队列Q1中。例如,将五个中断分配给第一处理单元100的第一任务队列Q1。此外,将两个中断分配给第二任务队列Q2,并且将两个中断分配给第三处理单元104的第三任务队列Q3。此外,将一个中断分配给第四处理单元106的第四任务队列Q4。
具体地说,可将用于处理中断的一系列详细任务分配给处理单元100、102、104和106各自的任务队列Q1、Q2、Q3和Q4。然而,为了便于解释,如本文所用,将中断插入处理单元100、102、104和106的任务队列Q1、Q2、Q3和Q4中或分配给处理单元100、102、104和106的任务队列Q1、Q2、Q3和Q4的操作也被称作将用于处理中断的一系列详细任务插入处理单元100、102、104和106的任务队列Q1、Q2、Q3和Q4中或分配给处理单元100、102、104和106的任务队列Q1、Q2、Q3和Q4。
图3是解释根据本发明构思的至少一个示例实施例的用于处理中断的方法的示意图。
参照图3,在根据本发明构思的至少一个示例实施例的用于处理中断的方法中,操作系统20可接收第一中断并将第一中断分配给第一处理单元100的第一任务队列Q1。这里,例如,第一中断可为预先插入第一任务队列Q1中的中断一1、中断五5、中断七7和中断八8中的任一个,如图3所示。如以上参照图1A的描述,图3所示的中断可为例如用于执行数据输入/输出任务的中断。
接着,操作系统20可接收第二中断并将第二中断分配给第一任务队列Q1。这里,第二中断可为图3所示的中断十10,中断十10是在已经插入第一任务队列Q1中的中断一1、中断五5、中断七7和中断八8之后的由操作系统20接收的中断。
在第一处理单元100上处理分配给第一任务队列Q1的第一中断的同时,操作系统20,具体地说,进程管理器22可从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元。在该实施例中,将第三处理单元104选为用于处理第二中断的处理单元。然后,进程管理器22可将分配给第一任务队列Q1的第二中断传送至选择的第三处理单元104的第三任务队列Q3,并且可在第三处理单元104上处理传送至第三任务队列Q3的第二中断。因此,在将大量中断已经分配给第一处理单元100上的第一任务队列Q1并且第二中断的处理等待时间相当长的情况下,可将第二中断传送至另一处理单元,以可快速处理第二中断。
再参照图3,在该实施例中,从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元的步骤可包括:基于各个处理单元100、102、104和106的状态选择将处理第二中断的处理单元。
可以在考虑到诸如准备好被处理单元100、102、104和106处理的中断的数量(或者在任务队列Q1、Q2、Q3和Q4中消耗的等待时间的长度)、中断发生频率、单位时间处理中断所需的负荷、分配给处理单元100、102、104和106的任务负载以及处理单元100、102、104和106的操作状态之类的各种元素的情况下执行基于各个处理单元100、102、104和106的状态选择将处理第二中断的处理单元的步骤。这些元素可以由操作系统20或内核来设置。
作为示例,基于各个处理单元100、102、104和106的状态选择将处理第二中断的处理单元的步骤可包括:选择处于活跃状态的处理单元作为将处理第二中断的处理单元。参照图3,由于第一处理单元100、第三处理单元104和第四处理单元106处于活跃状态,但是第二处理单元102处于休眠状态,因此进程管理器22可选择第一处理单元100、第三处理单元104和第四处理单元106中的任一个作为将处理第二中断的处理单元。图3示出了选择第三处理单元104作为将处理第二中断的处理单元并且将其传送至第三任务队列Q3。
作为另一示例,基于各个处理单元100、102、104和106的状态选择将处理第二中断的处理单元的步骤可包括选择利用率比第一处理单元100的利用率更低的处理单元作为将处理第二中断的处理单元。参照图3,由于第二处理单元102、第三处理单元104和第四处理单元106的利用率U分别为0.49、0.51和0.32,因此低于第一处理单元100的利用率U(即,0.89),进程管理器22可选择第二处理单元102、第三处理单元104和第四处理单元106中的任一个作为将处理第二中断的处理单元。当进程管理器22考虑利用率U时,与图3所示的示例不同,可选择具有最低利用率U的第四处理单元106作为将处理第二中断的处理单元,并且可将第二中断传送至第四任务队列Q4。
另一方面,在本发明构思的至少一些示例实施例中,从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元的步骤可包括:在第一处理单元100处于挂起状态的同时,从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元。换句话说,在第一处理单元100处于可用状态的情况下,第二中断可不被传送至另一处理单元,而是可由第一处理单元100处理。
如上所述,按照根据本发明的各实施例的中断处理方法,与循环法中用于简单地将中断分配给多个处理单元的方法不同的是,考虑到计算系统的处理能力或硬件10的状态来将包括中断的任务分配至最佳的(或者说是期望的)资源(例如,处理单元),因此可有效和快速地执行大量任务。在使用前者的方法的情况下,在中断在单位时间内以高频率发生的重中断的情形中,将中断连续地分配给具有高处理速度的特定处理单元,因此无法避免中断挂起现象。
特别地,按照根据本发明的各实施例的中断处理方法,由于仅利用可由操作系统20或内核提供的数据(例如,线程或任务的负荷、中断传入时间间隔、每个处理单元的处理程序(Linux内核中的工作者)的状态、活跃CPU的数量、单位时间搜索用于指定中断的目标CPU所需的负荷(Linux内核中的负荷平均))来选择将处理中断的处理单元,因此无需执行额外的操作或任务(诸如对齐)来选择处理单元。
此外,可以架构独立地执行根据本发明的各实施例的中断处理方法。具体地,处理单元100、102、104和106可以根据其种类基本遵循例如符合ARM架构或x86架构的固有中断处理方法。然而,根据本发明的各实施例的中断处理方法可以由最终在将中断分配给处理单元100、102、104和106时被驱动的内核码实现,而不管架构的种类是什么,因此可以架构独立地执行。参照图1B的参考标记400,本发明构思的中断处理机构的内核码的位置直接在启用处理单元上的用于处理从硬件装置发生的中断的调度程序之前。换言之,就在通过调度程序将与中断相关联的任务指定给处理单元之前执行对处理单元(或者核)的中断分配(或确定)。因此,本发明构思的中断处理机构架构独立地向处理单元分配中断,如同架构独立地执行OS内核的调度器。
下文中,将围绕用于选择将处理第二中断的处理单元的各种方法描述根据本发明构思的至少一些示例实施例的用于处理中断的方法。
图4是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的示意图。
参照图4,在根据本发明构思的至少另一示例实施例的用于处理中断的方法中,可将第一中断和第二中断分配给第一处理单元100的第一任务队列Q1,如图3所示。然后,在处理分配给第一任务队列Q1的第一中断的同时,进程管理器22可从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元。
再参照图4,在该实施例中,从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元的步骤可包括:基于各个处理单元100、102、104和106的任务队列Q1、Q2、Q3和Q4的状态从各个处理单元100、102、104和106中选择将处理第二中断的处理单元。
作为示例,基于各个处理单元100、102、104和106的任务队列Q1、Q2、Q3和Q4的状态选择将处理第二中断的处理单元的步骤可包括:选择这样的处理单元,该处理单元的任务队列具有比分配给第一处理单元100的任务队列的中断数量更少的分配的中断的数量(或者,可替换地,全部处理单元100至106中的最小的中断数量),将其作为将处理第二中断的处理单元。参照图4,由于分配给第二处理单元102、第三处理单元104和第四处理单元106各自的任务队列Q2、Q3和Q4的中断数量分别为2、2和1,并且因此它们小于分配给第一处理单元100的任务队列Q1的中断的数量(即,4),因此进程管理器22可选择第二处理单元102、第三处理单元104和第四处理单元106中的任一个作为将处理第二中断的处理单元。图4示出了选择第四处理单元106作为将处理第二中断的处理单元,并且将第二中断传送至第四任务队列Q4。根据本发明构思的至少一个示例实施例,进程管理器22可选择包括具有最少数量的分配任务的任务队列的处理单元作为第二中断的接收者。
图5是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的示意图。
参照图5,在根据本发明构思的至少另一示例实施例的用于处理中断的方法中,可将第一中断和第二中断分配给第一处理单元100的第一任务队列Q1,如图3所示。然后,在处理分配给第一任务队列Q1的第一中断的同时,进程管理器22可从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元。
再参照图5,在该实施例中,从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元的步骤可包括:基于中断相对于处理单元100、102、104和106的发生频率从各个处理单元100、102、104和106中选择将处理第二中断的处理单元。
作为示例,基于中断相对于处理单元100、102、104和106的发生频率选择将处理第二中断的处理单元的步骤可包括:选择其中断的发生频率比第一处理单元100的中断的发生频率更低的处理单元(或者,可替换地,全部处理单元100至106中的最低的一个)作为将处理第二中断的处理单元。参照图5,由于第二处理单元102的中断的发生频率F2和第三处理单元104的中断的发生频率F3比第一处理单元100的中断的发生频率F1更低,因此进程管理器22可选择第二处理单元102和第三处理单元104中的任一个作为将处理第二中断的处理单元。图5示出了选择第二处理单元102作为将处理第二中断的处理单元,并且将第二中断传送至第二任务队列Q2。
图6是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的示意图。
参照图6,在根据本发明构思的至少另一示例实施例的用于处理中断的方法中,可将第一中断和第二中断分配给第一处理单元100的第一任务队列Q1,如图3所示。然后,在处理分配给第一任务队列Q1的第一中断的同时,进程管理器22可从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元。
再参照图6,在该实施例中,从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元的步骤可包括:基于各个处理单元100、102、104和106的高速缓存状态从各个处理单元100、102、104和106中选择将处理第二中断的处理单元。
作为示例,基于处理单元100、102、104和106的任务队列Q1、Q2、Q3和Q4的状态选择将处理第二中断的处理单元的步骤可包括:选择其高速缓存缺失的发生频率等于或小于第一处理单元100的高速缓存缺失的发生频率的处理单元(或者,可替换地,全部处理单元100至106中的最低的一个)作为将处理第二中断的处理单元。参照图6,由于当第三处理单元104和第四处理单元106处理第二中断时的高速缓存缺失的发生频率C分别是0.27和0.17,并且因此它们低于当第一处理单元100处理第二中断时的高速缓存缺失的发生频率C,因此进程管理器22可选择第三处理单元104和第四处理单元106中的任一个作为将处理第二中断的处理单元。图6示出了选择第三处理单元104作为将处理第二中断的处理单元,并且将第二中断传送至第三任务队列Q3。
图7是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的示意图。
参照图7,该实施例与如图6所示的实施例的不同在于,第四处理单元106的状态从休眠状态改变为活跃状态。在图6所示的实施例中,虽然第四处理单元106的高速缓存缺失的发生频率C为最低值0.17,但是第四处理单元106处于休眠状态,因此,不选择第四处理单元106作为将处理第二中断的处理单元。然而,在图7所示的该实施例中,第四处理单元106的状态从休眠状态改变为活跃状态,因此第四处理单元106变得更适于处理第二中断。
在这种情况下,在根据本发明构思的至少另一示例实施例的用于处理中断的方法中,进程管理器22可将已被传送至第三处理单元104的第三任务队列Q3的第二中断传送至新选择的第四处理单元106的第四任务队列Q4。因此,第四处理单元106可处理传送至第四任务队列Q4的第二中断。
另一方面,在本发明构思的至少一些示例实施例中,可将已被传送至第三处理单元104的第三任务队列Q3的第二中断再次传送至第一处理单元100的第一任务队列Q1。例如,如果在已将第二中断传送至第三处理单元104的第三任务队列Q3的状态下,第一处理单元100的状态改变以使得第一处理单元100变得更适于处理第二中断,则将已被传送至第三任务队列Q3的第二中断再次传送至第一任务队列Q1。
图8是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的示意图。
参照图8,在根据本发明构思的至少另一示例实施例的用于处理中断的方法中,可将第一中断和第二中断分配至第一处理单元100的第一任务队列Q1,如图3所示。然后,在处理分配至第一任务队列Q1的第一中断的同时,进程管理器22可从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元。
再参照图8,在该实施例中,从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元的步骤可包括:基于第二中断相对于各个处理单元100、102、104和106的任务队列Q1、Q2、Q3和Q4的处理等待时间(其中,处理等待时间是在第二中断分别被加至任务队列Q1、Q2、Q3和Q4的情况下第二中断在被处理之前将等待的时间量)从各个处理单元100、102、104和106中选择将处理第二中断的处理单元。
作为示例,进程管理器22可计算第二中断在各个处理单元100、102、104和106的任务队列Q1、Q2、Q3和Q4中的处理等待时间WT,并且随后可选择其第二中断的处理等待时间比第一处理单元100的第二中断的处理等待时间更短的处理单元(或者,可替换地,全部处理单元100至106中的最短的一个)作为将处理第二中断的处理单元。参照图8,由于第二中断在第二处理单元102的任务队列Q2和第四处理单元106的任务队列Q4中的处理等待时间分别是9和3,并且因此比第二中断在第一处理单元100的任务队列Q1中的处理等待时间10更短,因此进程管理器22可选择第二处理单元102和第四处理单元106中的任一个作为将处理第二中断的处理单元。图8示出了选择第二处理单元102作为将处理第二中断的处理单元,并且将第二中断传送至第二任务队列Q2。
图9是解释包括执行根据本发明构思的至少一些示例实施例的用于处理中断的方法的多处理器的计算系统的示意图。
参照图9,包括执行根据本发明构思的至少一些示例实施例的用于处理中断的方法的多处理器的计算系统2可包括通过总线210可彼此交换数据的第一CPU200、第二CPU202、第三CPU204和第四CPU206。因此,第一CPU至第四CPU(200、202、204和206)可设有它们固有的任务队列。
图10是解释包括执行根据本发明构思的至少一些示例实施例的用于处理中断的方法的多核处理器的计算系统的示意图。
参照图10,包括执行根据本发明构思的至少一些示例实施例的用于处理中断的方法的多核处理器的计算系统3可包括通过总线310可彼此交换数据的第一核300、第二核302、第三核304和第四核306。因此,第一核至第四核(300、302、304和306)可分别设有它们固有的任务队列。
图11是解释根据本发明构思的至少一个示例实施例的用于处理中断的方法的流程图。
参照图11,根据本发明构思的至少一个示例实施例的用于处理中断的方法可包括:将第一中断分配给多个处理单元100、102、104和106中的第一处理单元100的第一任务队列Q1(S1101);以及将第二中断分配给第一任务队列Q1(S1103)。该方法还可包括:在第一处理单元100上处理分配给第一任务队列Q1的第一中断(S1105);在处理第一中断的同时从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元(S1107);以及将分配给第一任务队列Q1的第二中断传送至选择的处理单元的任务队列(S1109)。
图12是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的流程图。
参照图12,根据本发明构思的至少另一示例实施例的用于处理中断的方法可包括:将多个中断分配给多个处理单元100、102、104和106(S1201);以及检查所述多个中断的数量是否大于所述多个处理单元100、102、104和106的数量。该方法还可包括:如果所述多个中断的数量大于所述多个处理单元100、102、104和106的数量,则利用第一处理单元100处理第一中断(S1205);将包括第一中断和第二中断的两个或更多个中断分配给第一处理单元100;从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元(S1207);以及利用选择的处理单元处理第二中断(S1209)。
在本发明构思的至少一些示例实施例中,可在利用第一处理单元100处理第一中断的同时执行从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元的步骤。另一方面,如以上参照图3至图8的描述,在本发明构思的至少一些示例实施例中,可以考虑处理单元的利用率、分配给任务队列的中断的数量、中断的发生频率和高速缓存缺失的发生频率来从所述多个处理单元100、102、104和106中选择将处理第二中断的处理单元。
在本发明构思的至少一些示例实施例中,可在利用第一处理单元100处理第一中断的同时将第二中断传送至选择的处理单元的任务队列。
图13是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的流程图。
参照图13,根据本发明构思的至少另一示例实施例的用于处理中断的方法可包括:接收将被插入多个处理单元100、102、104和106中的第一处理单元100的第一任务队列Q1中的第一中断(S1301);监视第一任务队列Q1的状态(S1303);如果预先插入第一任务队列Q1中的中断数量超过第一阈值,则从所述多个处理单元100、102、104和106中选择将处理第一中断的处理单元(S1305);以及将第一中断插入选择的处理单元的任务队列中(S1307)。在这种情况下,可从各处理单元中选择预先插入其任务队列中的中断数量等于或小于第二阈值的处理单元作为将处理第一中断的处理单元。根据本发明构思的至少一些示例实施例,第一阈值和第二阈值可彼此相等,或者,可替换地,第一阈值和第二阈值可彼此不同。第一阈值和第二阈值可分别为通过经验确定的值。
此外,在本发明构思的至少一些示例实施例中,可在利用第一处理单元100处理预先插入第一任务队列Q1中的中断的同时执行选择将处理第一中断的处理单元的步骤。
另一方面,在本发明构思的至少一些示例实施例中,该方法可包括监视第一处理单元100的状态,还可包括在第一处理单元100处于不活跃状态的情况下选择将处理第一中断的处理单元。在这种情况下,可从处于活跃状态的处理单元中选择将处理第一中断的处理单元。
另一方面,在本发明构思的至少一些示例实施例中,该方法可包括:监视第一处理单元100的利用率,还可在第一处理单元100的利用率超过第三阈值的情况下选择将处理第一中断的处理单元。在这种情况下,可从其利用率等于或小于第四阈值的处理单元中选择将处理第一中断的处理单元。第三阈值和第四阈值可分别为通过经验确定的值。
另一方面,在本发明构思的至少一些示例实施例中,所述方法可包括监视在第一处理单元100中指定和接收的中断的发生频率,还可包括在在第一处理单元100中指定和接收的中断的发生频率超过第五阈值的情况下选择将处理第一中断的处理单元。在这种情况下,可从其指定和接收的中断的发生频率等于或小于第六阈值的处理单元中选择将处理第一中断的处理单元。第五阈值和第六阈值可分别为通过经验确定的值。
图14是解释根据本发明构思的至少另一示例实施例的用于处理中断的方法的流程图。
参照图14,根据本发明构思的至少另一示例实施例的用于处理中断的方法可包括:接收指定将被插入多个处理单元100、102、104和106中的第一处理单元100中的第一中断,并且将接收的第一中断插入第一处理单元100的第一任务队列Q1中(S1401);接收指定将被插入第一处理单元100中的第二中断(S1403);计算第二中断在第一任务队列Q1中的处理等待时间(S1405);计算第二中断在所述多个处理单元100、102、104和106中的其它处理单元的任务队列中的处理等待时间(S1407);以及在第二中断在其它处理单元各自的任务队列中的处理等待时间中的至少一个比第二中断在第一任务队列Q1中的处理等待时间更短的情况下将第二中断插入其它处理单元的任务队列之一中。如本文所用,被描述为“指定将被分配给特定处理单元(或任务队列)”或“指定处于特定处理单元(或任务队列)中”的任务是例如通过操作系统20或进程管理器22实现的任务调度算法选择的将被分配给特定处理单元(或任务队列)的任务。根据本发明构思的至少一些示例实施例,即使任务一开始可被指定为将被分配给特定处理器,进程管理器也可按照以上至少参照图2至图8讨论的方式基于所述多个处理单元(例如,处理单元100至106)的属性将任务分配给不同的处理单元。
在本发明构思的至少一些示例实施例中,可在利用第一处理单元100处理第一中断的同时执行计算第二中断的处理等待时间的步骤。此外,在本发明构思的至少一些示例实施例中,计算第二中断的处理等待时间的步骤可包括:基于预先插入所述多个处理单元100、102、104和106各自的任务队列Q1、Q2、Q3和Q4中的中断数量、各个处理单元100、102、104和106的状态或者中断相对于各个处理单元100、102、104和106的发生频率来计算第二中断的处理等待时间。
根据如上所述的本发明构思的至少一些示例实施例,考虑到计算系统的处理能力或者硬件10的状态,将包括中断的任务分配给最佳的(或者说是,期望的)资源(例如,处理单元),因此可有效并快速地执行大量任务。
图15至图17是可应用根据本发明构思的至少一些示例实施例的用于处理中断的方法的示例计算系统的示图。
图15示出了平板PC1200,图16示出笔记本计算机1300,并且图17示出了智能电话1400。根据本发明构思的至少一些示例实施例的用于处理中断的方法可用于例如平板PC1200、笔记本计算机1300或者智能电话1400中的任一个中,或者作为另外的示例,可用于包括在任何装置中的任何多处理器或多核处理器中。
此外,本领域技术人员应该清楚,根据本发明构思的至少一些示例实施例的用于处理中断的方法甚至可应用于其它集成电路。也就是说,虽然指示了平板PC1200、笔记本计算机1300和智能电话1400作为根据该实施例的计算系统的示例,但是根据该实施例的计算系统的示例不限于此。在本发明构思的至少一些示例实施例中,计算系统可实现为计算机、UMPC(超级移动PC)、工作站、上网本、PDA(个人数字助理)、便携式计算机、无线电话、移动电话、电子书、PMP(便携式多媒体播放器)、便携式游戏机、导航装置、黑盒子、数码相机、3D电视机、数字音频记录仪、数字音频播放器、数字图片记录仪、数字图片播放器、数字视频记录仪或者数字视频播放器。
因此,已经描述了本发明构思的示例实施例,但是明显的是,可按照许多方式改变本发明构思的示例实施例。这些改变不应被看作脱离本发明构思的示例实施例的期望的精神和范围,并且对于本领域技术人员之一明显的是,所有这些改变旨在被包括在权利要求的范围内。
Claims (20)
1.一种用于处理中断的方法,包括步骤:
接收第一中断;
将所述第一中断分配给多个处理单元中的第一处理单元的第一任务队列;
接收第二中断;
将所述第二中断分配给所述第一任务队列;
在所述第一处理单元上处理分配给所述第一任务队列的所述第一中断;
基于分配在所述第一任务队列中的等待中断的数量和中断的发生频率确定是否利用所述多个处理单元中的与所述第一处理单元不同的第二处理单元来处理所述第二中断;
从所述多个处理单元中选择第二处理单元;
将分配给第一任务队列的第二中断传送至所选择的第二处理单元的第二任务队列;以及
在处理第一中断的同时,在所述多个处理单元中处理所述第二中断。
2.根据权利要求1所述的用于处理中断的方法,其中,选择第二处理单元的步骤包括:基于所述多个处理单元各自的状态选择所述第二处理单元。
3.根据权利要求2所述的用于处理中断的方法,其中,基于所述多个处理单元各自的状态选择所述第二处理单元的步骤包括:选择处于活跃状态的处理单元作为所述第二处理单元。
4.根据权利要求2所述的用于处理中断的方法,其中,基于所述多个处理单元各自的状态选择所述第二处理单元的步骤包括:选择利用率比所述第一处理单元的利用率更低的处理单元作为所述第二处理单元。
5.根据权利要求1所述的用于处理中断的方法,其中,选择所述第二处理单元的步骤包括:基于所述多个处理单元的任务队列各自的状态选择所述第二处理单元。
6.根据权利要求1所述的用于处理中断的方法,其中,选择所述第二处理单元的步骤包括:基于中断相对于各个处理单元的发生频率选择第二处理单元。
7.根据权利要求1所述的用于处理中断的方法,其中,选择所述第二处理单元的步骤包括:基于所述多个处理单元各自的高速缓存状态选择所述第二处理单元。
8.根据权利要求7所述的用于处理中断的方法,其中,基于所述多个处理单元各自的高速缓存状态选择所述第二处理单元的步骤包括:选择其高速缓存缺失的发生频率小于或等于所述第一处理单元的高速缓存缺失的发生频率的处理单元作为所述第二处理单元。
9.根据权利要求1所述的用于处理中断的方法,其中,选择所述第二处理单元的步骤包括:在所述第一处理单元处于挂起状态的同时选择所述第二处理单元。
10.根据权利要求1所述的用于处理中断的方法,其中,处理所述第二中断的步骤包括:在所选择的第二处理单元上处理传送至所述第二任务队列的第二中断。
11.根据权利要求1所述的用于处理中断的方法,还包括步骤:
从所述多个处理单元中选择第三处理单元;以及
将传送至所述第二任务队列的第二中断传送至所选择的第三处理单元的第三任务队列。
12.根据权利要求11所述的用于处理中断的方法,还包括步骤:
在所选择的第三处理单元上处理传送至所述第三任务队列的第二中断。
13.根据权利要求1所述的用于处理中断的方法,其中,所述第一处理单元包括第一中央处理单元,并且所述第二处理单元包括第二中央处理单元。
14.根据权利要求1所述的用于处理中断的方法,其中,所述第一处理单元包括第一核,并且所述第二处理单元包括第二核。
15.一种用于处理中断的方法,包括步骤:
将多个中断分配给多个处理单元,所述分配步骤包括将包括第一中断和第二中断的两个或更多个中断分配给第一处理单元;以及
如果所述多个中断的数量大于所述多个处理单元的数量,则
利用所述第一处理单元处理所述第一中断;以及
利用所述多个处理单元中的第二处理单元处理所述第二中断。
16.根据权利要求15所述的用于处理中断的方法,还包括步骤:
在利用所述第一处理单元处理所述第一中断的同时,从所述多个处理单元中选择所述第二处理单元。
17.根据权利要求16所述的用于处理中断的方法,其中,选择所述第二处理单元的步骤包括:选择具有这样的任务队列的处理单元作为所述第二处理单元:分配给所述任务队列的中断数量小于分配给所述第一处理单元的任务队列的中断数量。
18.根据权利要求16所述的用于处理中断的方法,其中,选择所述第二处理单元的步骤包括:选择其中断的发生频率低于所述第一处理单元的中断的发生频率的处理单元作为所述第二处理单元。
19.根据权利要求15所述的用于处理中断的方法,还包括步骤:
在利用所述第一处理单元处理所述第一中断的同时将所述第二中断传送至所述第二处理单元的任务队列。
20.一种用于处理中断的方法,包括步骤:
通过将第一中断加至对应于第一处理单元的第一任务队列来将所述第一中断分配给所述第一处理单元;
通过将第二中断加至所述第一任务队列来将所述第二中断分配给所述第一处理单元;
利用所述第一处理单元处理所述第一中断;
从多个处理单元中选择第二处理单元;
将所述第二中断从所述第一任务队列传送至对应于所述第二处理单元的第二任务队列;以及
在利用所述第一处理单元处理所述第一中断的同时,利用所述第二处理单元处理所述第二中断。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140164480A KR20160061726A (ko) | 2014-11-24 | 2014-11-24 | 인터럽트 핸들링 방법 |
KR10-2014-0164480 | 2014-11-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105630593A true CN105630593A (zh) | 2016-06-01 |
Family
ID=56010272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510824654.0A Pending CN105630593A (zh) | 2014-11-24 | 2015-11-24 | 用于处理中断的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160147532A1 (zh) |
KR (1) | KR20160061726A (zh) |
CN (1) | CN105630593A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426556A (zh) * | 2017-08-31 | 2019-03-05 | 大唐移动通信设备有限公司 | 一种进程调度方法和装置 |
CN110852422A (zh) * | 2019-11-12 | 2020-02-28 | 吉林大学 | 基于脉冲阵列的卷积神经网络优化方法及装置 |
WO2020052171A1 (zh) * | 2018-09-11 | 2020-03-19 | 深圳云天励飞技术有限公司 | 硬件系统和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1910554A (zh) * | 2004-02-20 | 2007-02-07 | 索尼计算机娱乐公司 | 多处理器系统中处理器任务迁移的方法与装置 |
CN101398772A (zh) * | 2008-10-21 | 2009-04-01 | 成都市华为赛门铁克科技有限公司 | 一种网络数据的中断处理方法及装置 |
CN101894083A (zh) * | 2009-05-22 | 2010-11-24 | 瑞萨电子株式会社 | 中断处理设备以及方法 |
CN101896887A (zh) * | 2007-12-12 | 2010-11-24 | Nxp股份有限公司 | 数据处理系统和中断处理方法 |
CN103226494A (zh) * | 2012-01-30 | 2013-07-31 | 三星电子株式会社 | 散布多个中断的方法、中断请求信号散布电路和片上系统 |
US20130247068A1 (en) * | 2012-03-15 | 2013-09-19 | Samsung Electronics Co., Ltd. | Load balancing method and multi-core system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8260996B2 (en) * | 2009-04-24 | 2012-09-04 | Empire Technology Development Llc | Interrupt optimization for multiprocessors |
US8959270B2 (en) * | 2010-12-07 | 2015-02-17 | Apple Inc. | Interrupt distribution scheme |
KR101841930B1 (ko) * | 2012-01-30 | 2018-03-26 | 삼성전자주식회사 | 인터럽트 스프레드 방법, 인터럽트 스프레드 장치 및 이를 구비하는 시스템 온-칩 |
US20140068621A1 (en) * | 2012-08-30 | 2014-03-06 | Sriram Sitaraman | Dynamic storage-aware job scheduling |
EP2782317A1 (en) * | 2013-03-18 | 2014-09-24 | Koninklijke KPN N.V. | Redirecting a client device from a first gateway to a second gateway for accessing a network node function |
US20150324234A1 (en) * | 2013-11-14 | 2015-11-12 | Mediatek Inc. | Task scheduling method and related non-transitory computer readable medium for dispatching task in multi-core processor system based at least partly on distribution of tasks sharing same data and/or accessing same memory address(es) |
-
2014
- 2014-11-24 KR KR1020140164480A patent/KR20160061726A/ko not_active Application Discontinuation
-
2015
- 2015-11-23 US US14/948,880 patent/US20160147532A1/en not_active Abandoned
- 2015-11-24 CN CN201510824654.0A patent/CN105630593A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1910554A (zh) * | 2004-02-20 | 2007-02-07 | 索尼计算机娱乐公司 | 多处理器系统中处理器任务迁移的方法与装置 |
CN101896887A (zh) * | 2007-12-12 | 2010-11-24 | Nxp股份有限公司 | 数据处理系统和中断处理方法 |
CN101398772A (zh) * | 2008-10-21 | 2009-04-01 | 成都市华为赛门铁克科技有限公司 | 一种网络数据的中断处理方法及装置 |
CN101894083A (zh) * | 2009-05-22 | 2010-11-24 | 瑞萨电子株式会社 | 中断处理设备以及方法 |
CN103226494A (zh) * | 2012-01-30 | 2013-07-31 | 三星电子株式会社 | 散布多个中断的方法、中断请求信号散布电路和片上系统 |
US20130247068A1 (en) * | 2012-03-15 | 2013-09-19 | Samsung Electronics Co., Ltd. | Load balancing method and multi-core system |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426556A (zh) * | 2017-08-31 | 2019-03-05 | 大唐移动通信设备有限公司 | 一种进程调度方法和装置 |
WO2020052171A1 (zh) * | 2018-09-11 | 2020-03-19 | 深圳云天励飞技术有限公司 | 硬件系统和电子设备 |
CN110852422A (zh) * | 2019-11-12 | 2020-02-28 | 吉林大学 | 基于脉冲阵列的卷积神经网络优化方法及装置 |
CN110852422B (zh) * | 2019-11-12 | 2022-08-16 | 吉林大学 | 基于脉冲阵列的卷积神经网络优化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20160061726A (ko) | 2016-06-01 |
US20160147532A1 (en) | 2016-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11550627B2 (en) | Hardware accelerated dynamic work creation on a graphics processing unit | |
CN106371894B (zh) | 一种配置方法、装置和数据处理服务器 | |
US8478926B1 (en) | Co-processing acceleration method, apparatus, and system | |
US9535756B2 (en) | Latency-hiding context management for concurrent distributed tasks in a distributed system | |
KR101332840B1 (ko) | 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법 | |
US8402470B2 (en) | Processor thread load balancing manager | |
WO2017070900A1 (zh) | 多核数字信号处理系统中处理任务的方法和装置 | |
KR101640848B1 (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
KR20180069807A (ko) | 동기화를 리매핑하는 것에 의한 태스크 서브그래프들의 가속화 | |
CN105630731A (zh) | 一种多cpu环境下网卡数据处理方法和装置 | |
US9378047B1 (en) | Efficient communication of interrupts from kernel space to user space using event queues | |
CN103262002A (zh) | 优化系统调用请求通信 | |
CN107562685B (zh) | 一种基于延时补偿的多核处理器核心间数据交互的方法 | |
CN106569892B (zh) | 资源调度方法与设备 | |
KR102387922B1 (ko) | 솔리드 스테이트 드라이브의 비동기 이벤트 요청 명령 처리 방법 및 시스템 | |
KR101869939B1 (ko) | 멀티-쓰레딩을 사용하는 그래픽 처리를 위한 방법 및 장치 | |
WO2016202153A1 (zh) | 一种gpu资源的分配方法及系统 | |
CN105630593A (zh) | 用于处理中断的方法 | |
WO2016202154A1 (zh) | 一种gpu资源的分配方法及系统 | |
US20120066470A1 (en) | Method and system for allocating memory to a pipeline | |
US10678744B2 (en) | Method and system for lockless interprocessor communication | |
CN112486638A (zh) | 用于执行处理任务的方法、装置、设备和存储介质 | |
US20140317627A1 (en) | Scheduling apparatus and method of dynamically setting the size of a rotating register | |
JP2018536945A (ja) | タスクをタイムベーススケジューリングする方法及び装置 | |
JP6251417B2 (ja) | ストレージシステム、及び、記憶制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160601 |
|
WD01 | Invention patent application deemed withdrawn after publication |