CN101896887A - 数据处理系统和中断处理方法 - Google Patents
数据处理系统和中断处理方法 Download PDFInfo
- Publication number
- CN101896887A CN101896887A CN2008801201551A CN200880120155A CN101896887A CN 101896887 A CN101896887 A CN 101896887A CN 2008801201551 A CN2008801201551 A CN 2008801201551A CN 200880120155 A CN200880120155 A CN 200880120155A CN 101896887 A CN101896887 A CN 101896887A
- Authority
- CN
- China
- Prior art keywords
- task
- processing unit
- interruption
- key component
- handling system
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出了一种数据处理系统,包括:至少两个处理单元(100、101、102),每一个均用于执行多个任务;以及中断处理单元(200),用于接收将要由所述数据处理系统处理的中断,并且用于将所述中断分发给所述至少两个处理单元(100、101、102)之一。被分发了所述中断的处理单元(100、101、102)停止执行当前任务,并且处理所述中断。所述中断处理单元(200)适用于确定所述处理单元(100、101、102)是否正在执行任务的关键部分(CS)。其中所述中断处理单元(200)将所述中断分发给处理单元(100、101、102)没有执行任务的关键部分(CS)的一个处理单元。
Description
技术领域
本发明涉及一种数据处理系统和中断处理方法。
背景技术
在包括多个处理器或处理单元的数据处理系统中,即在多处理器系统中,每一个处理器或处理单元可以适用于处理或执行任务。任务还可以包括任务,而这些任务需要实时处理,因为这些任务具有与其处理相关联的严格最终期限。在这种数据处理系统中,可能发生必须由处理器之一处理的中断。为了能够处理所述中断,停止或中断当前处理的任务。例如,如果处理器正在执行某些实时任务并且如果中断了该处理,实时任务的处理可能不能满足实时要求。这可能导致调度等待时间的增加,在某些多媒体应用中应该避免这种增加。
具体地,如果在数据处理系统中存在多个处理器,典型地,并非所有处理器都将执行实时任务,使得可以通过另外的处理器处理中断。
US2003/0105798A1涉及基于中断特性的中断分发方案,例如装置或接口的优先级、在不同处理器上运行的线程或应用程序的优先级。
US2002/0166018涉及一种中断的动态路由和优先级分配。通过对至少一个寄存器编程来动态地控制中断控制器。
US6,877,057B2教导了一种中断在处理器电路板上的单元和任意扩展槽上的器件上的均匀分发。
US2003/0200250A1涉及一种基于像中断服务例行程序的执行时间那样的运行时间统计的、中断服务例程ISR对于处理器的动态重新分配。
然而,在根据现有技术的中断分发中,不包括有关任务的信息,所述信息是等待处理器时间以及与在中断处理和分发期间在处理器上的执行过程的状态有关的信息。
发明内容
本发明的目的是提供一种数据处理系统和中断处理方法,具有改善的和更有效的中断处理能力。
该目的是通过根据权利要求1的数据处理系统和根据权利要求5的方法实现的。
因此,提出了一种数据处理系统,所述数据处理系统包括:至少两个处理单元,每一个均用于执行多个任务;以及中断处理单元,用于接收将要由所述数据处理系统处理的中断,并且用于将所述中断分发给所述至少两个处理单元之一。被分发了所述中断的处理单元停止执行其当前任务,并且处理所述中断。所述中断处理单元适用于确定所述处理单元是否正在执行任务的关键部分。所述中断处理单元将所述中断分发给没有执行任务的关键部分的处理单元之一。
根据本发明的一个方面,所述中断处理单元确定任务是否正在等待被当前正在执行任务的关键部分的处理单元处理。将所述中断分发给不具有等待在当前任务之后被处理的任务的处理单元。
根据本发明的另外方面,所述中断处理单元确定执行任务的关键部分的剩余执行时间。然后,将所述中断分发给具有小剩余执行时间的处理单元。
根据本发明的另外方面,设置多个标志,所述标志每一个均与处理单元之一相关联,用于表示所述处理单元是否正在执行任务的关键部分。所述中断处理单元适用于监测所述多个标志,以确定要将中断分发给哪个处理单元。
本发明也涉及数据处理系统中的中断处理方法。所述数据处理系统包括:至少两个处理单元,每一个均用于执行多个任务;以及中断处理单元,用于接收将要处理的中断,并且用于将所述中断分发给所述至少两个处理单元之一。被分发了所述中断的处理单元停止当前执行,并且处理所述中断。所述中断处理单元确定所述处理单元是否正在执行任务的关键部分。所述中断处理单元将所述中断分发给没有执行任务的关键部分的处理单元之一。
本发明涉及一种提供数据处理系统的思想,所述数据处理系统包括多个处理单元和中断处理单元,用于在数据处理系统中处理和分发中断。将所述中断分发给不执行任务的关键部分的处理单元之一。如果所有处理器都在执行任务的关键部分,可选地,可以选择这些处理器中的不关联有等待在当前执行的任务之后被执行的任务的一个处理器。如果所有处理单元都正在执行任务的关键部分,并且具有等待或未决的任务,那么可选地,可以选择正在执行关键部分、但是该关键部分中的剩余执行时间较小的处理器。因此,如果在数据处理系统中存在中断,中断处理单元可以检查是否有处理器没有执行任务的关键部分。如果在该系统中存在没有执行任务的关键部分的至少一个处理器,可选择该处理器,并且可以将中断分配给该处理器。然而,如果所有处理器都在执行任务的关键部分,那么中断处理单元可以检查在关键部分的执行末端是否有任务正在等待。换句话说,确定是否存在没有任务正在等待的处理器。如果不是任一个处理单元都满足这种条件,那么确定在关键部分中具有小剩余执行时间的处理器。
利用根据本发明的数据处理系统,可以提高实时任务的性能,并且可以减小实时任务错过最终期限的可能性。
在从属权利要求中描述了本发明的另外方面。
附图说明
现在将参考附图更加详细地描述本发明实施例的优点。
图1示出了根据第一实施例的数据处理系统的示意性方框图。
具体实施方式
图1示出了根据第一实施例的数据处理系统的示意性方框图。例如,所述数据处理系统包括三个处理单元100、101、102和中断处理单元200。应该注意的是,数据处理系统也可以包括多于三个处理单元和多于一个中断处理单元。所述中断处理单元200接收中断I并且与每一个处理单元100、101、102相耦合,用于将所接收到的中断I分发给处理单元100、101、102之一。每一个处理单元100、101、102将分别处理或执行任务P1、P2、P3。每一个处理单元100-102可以包括程序计数器PC300,所述程序计数器300也可以用于存储正在由处理单元100-102处理或执行的当前指令的地址。执行迹线(execution trace)ET表示正在由处理单元100、101、102执行的程序计数器PC的进展。在由处理单元100-102执行的每一个代码中,可以存在关键部分CS。该关键部分CS的执行对于在要求范围内执行的任务是关键的,这种要求可以是实时要求。因此,应该仔细确保不会中断关键部分CS代码的执行。
这里作为示意性示例,第一处理单元100当前工作在关键部分CS,第二处理单元101还没有到达其代码的关键部分CS,而第三处理单元已经执行了关键部分CS。
如果第一处理单元100执行第一任务T1,并且第一任务的执行已经进入到关键部分CS,第二任务T2可以等待由第一处理单元执行。可选地,第二任务T2也可以具有比第一任务T1更高的优先级。先前,第二任务T2将不能够取代第一任务T1的处理,除非第一任务T1的执行已经离开了关键部分CS。
然而,如果中断发生在数据处理系统中,并且如果该将该中断分配给第一处理单元100,在第一处理单元100没有执行第一任务T1的关键部分之前,不能开始所述中断处理。可以在第一任务T1的关键部分的执行末端开始所述中断处理,然而这可能导致较高优先级任务T2的处理延迟。如果第一任务、甚至第二任务T1、T2涉及实时任务的执行,可能错失执行的最终期限。
另一方面,第二和第三处理单元101、102当前并没有执行任务的关键部分CS。因此,可以将任意中断分发给第二或第三处理单元101、102,而不会对其处理带来任何负面影响。
因此,中断处理单元200可以向当前没有执行任务的关键部分CS的处理单元100、101、102之一动态地分配中断。如果每一个处理单元均正在执行任务的关键部分CS,那么选择没有任务(可能具有较高的优先级)等待执行的处理器来处理所述中断,使得可以处理中断。另外或可选地,选择正在执行任务的关键部分、但是执行的预期时间较小的处理单元。
此外,中断处理单元200也可以考虑每一个处理单元的先前的和/或统计中断服务例行程序的执行时间。另外,可以考虑中断服务的优先级。此外,可以考虑系统中正在运行的线程的优先级和处理器的优先级。可以考虑上下文切换(context switch)、高速缓存闪烁(cache flashing)等中断的效果。也可以考虑处理单元的理想时间。
如果处理器进入关键部分的执行,处理器可以对此事实设置标志。可以对其他状态设置更多标志,例如等待处理器的高优先级任务。中断处理单元200可以能够监测每一个处理器标志,并且可以使用所述标志确定将所述中断分配给谁。
上述处理单元可以实现为相同的处理器或处理单元,使得实现对称多处理器系统。
根据本发明,描述了一种中断处理机制,所述中断处理机制不但包含中断的优先处理、而且包含向合适处理器之一的中断分发。在可用处理器之间的中断分发可以是基于对不执行任务的关键部分的处理器、执行任务的关键部分但是没有任务等待处理器退出关键部分的处理器、以及正在执行关键部分但是执行的期待时间较小的处理器之一的确定。在这些情况下,可以将中断分配给所述处理单元。
应该注意的是上述实施例说明而并非限制本发明,并且本领域普通技术人员能够在不脱离所附权利要求范围的情况下设计许多替换实施例。在权利要求中,放置在括号中的任意参考符号不应该解释为限制权利要求。词语“包括”不排除除了权利要求中所列举的之外的元件和步骤的存在。对元件数目的不明确限定并不排除存在多个这种元件。在枚举了几种装置的设备权利要求中,可以通过同一个硬件来实现这几个装置。唯一的事实在于在相互不同的从属权利要求中记载的特定措施不表示不能有利地使用这些措施的组合。
另外,权利要求中的任意参考符号不应该解释限制权利要求的范围。
Claims (5)
1.一种数据处理系统,包括:
至少两个处理单元(100、101、102),每一个均用于执行多个任务;以及
中断处理单元(200),用于接收将要由所述数据处理系统处理的中断,并且用于将所述中断分发给所述至少两个处理单元(100、101、102)之一;
其中被分发了所述中断的处理单元(100、101、102)停止执行当前任务,并且处理所述中断;
其中所述中断处理单元(200)适用于确定处理单元(100、101、102)是否正在执行任务的关键部分(CS),其中所述中断处理单元(200)将所述中断分发给处理单元(100、101、102)中没有执行任务的关键部分(CS)的一个处理单元。
2.根据权利要求1所述的数据处理系统,其中所述中断处理单元(200)适用于确定是否有任务正在等待被当前正在执行任务的关键部分(CS)的处理单元(100、101、102)处理,其中将所述中断分发给不具有等待在当前任务之后被处理的任务的处理单元(100、101、102)。
3.根据权利要求2所述的数据处理系统,其中所述中断处理单元(200)适用于确定执行任务的关键部分(CS)的剩余执行时间,其中将所述中断分发给具有小剩余执行时间的处理单元(100、101、102)。
4.根据权利要求1至3中任一项所述的数据处理系统,包括:
多个标志,所述多个标志中的每一个均与处理单元(100、101、102)之一相关联,用于表示处理单元(100、101、102)是否正在执行任务的关键部分(CS),
其中所述中断处理单元(200)适用于监测所述多个标志,以确定要将所述中断分发给哪个处理单元(100、101、102)。
5.一种数据处理系统中的中断处理方法,所述数据处理系统包括:至少两个处理单元(100、101、102),每一个均用于执行多个任务;以及中断处理单元(200),用于接收将要由所述数据处理系统处理的中断,并且用于将所述中断分发给所述至少两个处理单元(100、101、102)之一,所述方法包括以下步骤:
停止执行当前任务,并且处理所述中断;
确定处理单元(100、101、102)是否正在执行任务的关键部分(CS);以及
将所述中断分发给处理单元(100、101、102)中没有执行任务的关键部分(CS)的一个处理单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07122966.0 | 2007-12-12 | ||
EP07122966 | 2007-12-12 | ||
PCT/IB2008/055146 WO2009074946A1 (en) | 2007-12-12 | 2008-12-08 | Data processing system and method of interrupt handling |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101896887A true CN101896887A (zh) | 2010-11-24 |
Family
ID=40443715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008801201551A Pending CN101896887A (zh) | 2007-12-12 | 2008-12-08 | 数据处理系统和中断处理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8386684B2 (zh) |
EP (1) | EP2235630A1 (zh) |
CN (1) | CN101896887A (zh) |
WO (1) | WO2009074946A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630593A (zh) * | 2014-11-24 | 2016-06-01 | 三星电子株式会社 | 用于处理中断的方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5173714B2 (ja) * | 2008-09-30 | 2013-04-03 | ルネサスエレクトロニクス株式会社 | マルチスレッドプロセッサ及びその割り込み処理方法 |
KR101610828B1 (ko) * | 2009-09-23 | 2016-04-08 | 삼성전자주식회사 | 멀티코어 프로세서의 인터럽트 온/오프 관리 장치와 방법 |
JP5308383B2 (ja) * | 2010-03-18 | 2013-10-09 | パナソニック株式会社 | 仮想マルチプロセッサシステム |
US9772960B2 (en) * | 2012-10-11 | 2017-09-26 | Wind River Systems, Inc. | System and method for operating system aware low latency interrupt handling |
CN106055402A (zh) * | 2016-07-20 | 2016-10-26 | 青岛海信电器股份有限公司 | 一种中断的处理方法及装置 |
US10423550B2 (en) | 2017-10-25 | 2019-09-24 | International Business Machines Corporation | Managing efficient selection of a particular processor thread for handling an interrupt |
CN111316237B (zh) * | 2017-10-31 | 2024-03-15 | 上海诺基亚贝尔股份有限公司 | 用于实时虚拟网络功能编排的方法、装置和系统 |
CN111026529B (zh) * | 2019-11-26 | 2023-08-01 | 蚂蚁财富(上海)金融信息服务有限公司 | 分布式任务处理系统的任务停止方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007077539A1 (en) * | 2006-01-04 | 2007-07-12 | Nxp B.V. | Methods and system for interrupt distribution in a multiprocessor system |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2474200B1 (fr) * | 1980-01-22 | 1986-05-16 | Bull Sa | Procede et dispositif d'arbitrage des conflits d'acces entre une requete asynchrone et un programme en section critique |
US5179707A (en) | 1990-06-01 | 1993-01-12 | At&T Bell Laboratories | Interrupt processing allocation in a multiprocessor system |
DE69223303T2 (de) * | 1991-09-27 | 1998-06-18 | Sun Microsystems Inc | Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen |
US5918057A (en) * | 1997-03-20 | 1999-06-29 | Industrial Technology Research Institute | Method and apparatus for dispatching multiple interrupt requests simultaneously |
JP3008896B2 (ja) * | 1997-06-16 | 2000-02-14 | 日本電気株式会社 | 共有バス型マルチプロセッサシステムの割り込み負荷分散システム |
US6918117B2 (en) * | 2001-02-08 | 2005-07-12 | International Business Machines Corporation | Apparatus and method for dynamic load balancing of multiple cryptographic devices |
US6952749B2 (en) * | 2001-05-02 | 2005-10-04 | Portalplayer, Inc. | Multiprocessor interrupt handling system and method |
US6799236B1 (en) * | 2001-11-20 | 2004-09-28 | Sun Microsystems, Inc. | Methods and apparatus for executing code while avoiding interference |
US7328294B2 (en) * | 2001-12-03 | 2008-02-05 | Sun Microsystems, Inc. | Methods and apparatus for distributing interrupts |
US6877057B2 (en) * | 2002-01-25 | 2005-04-05 | Dell Products L.P. | Information handling system with dynamic interrupt allocation apparatus and methodology |
US7028302B2 (en) * | 2002-04-24 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | System and method for automatically tuning a multiprocessor computer system |
US7191349B2 (en) * | 2002-12-26 | 2007-03-13 | Intel Corporation | Mechanism for processor power state aware distribution of lowest priority interrupt |
US7590982B1 (en) * | 2003-12-17 | 2009-09-15 | Vmware, Inc. | System and method for virtualizing processor and interrupt priorities |
US7917910B2 (en) * | 2004-03-26 | 2011-03-29 | Intel Corporation | Techniques to manage critical region interrupts |
US7953906B2 (en) * | 2007-02-20 | 2011-05-31 | Ati Technologies Ulc | Multiple interrupt handling method, devices and software |
KR101610828B1 (ko) * | 2009-09-23 | 2016-04-08 | 삼성전자주식회사 | 멀티코어 프로세서의 인터럽트 온/오프 관리 장치와 방법 |
-
2008
- 2008-12-08 EP EP08858693A patent/EP2235630A1/en not_active Ceased
- 2008-12-08 WO PCT/IB2008/055146 patent/WO2009074946A1/en active Application Filing
- 2008-12-08 CN CN2008801201551A patent/CN101896887A/zh active Pending
- 2008-12-08 US US12/747,523 patent/US8386684B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007077539A1 (en) * | 2006-01-04 | 2007-07-12 | Nxp B.V. | Methods and system for interrupt distribution in a multiprocessor system |
Non-Patent Citations (1)
Title |
---|
GIROIR D ET AL.: "Interrupt dispatching method for multiprocessing system", 《IBM TECHNICAL DISCLOSURE》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630593A (zh) * | 2014-11-24 | 2016-06-01 | 三星电子株式会社 | 用于处理中断的方法 |
Also Published As
Publication number | Publication date |
---|---|
US8386684B2 (en) | 2013-02-26 |
EP2235630A1 (en) | 2010-10-06 |
WO2009074946A1 (en) | 2009-06-18 |
US20110106995A1 (en) | 2011-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101896887A (zh) | 数据处理系统和中断处理方法 | |
KR101746018B1 (ko) | 비대칭 실행 유닛들의 효율적인 스케줄링을 위한 방법 및 장치 | |
CN100504827C (zh) | 在次序混乱的dma命令队列中建立命令次序 | |
US9772879B2 (en) | System and method for isolating I/O execution via compiler and OS support | |
US9858115B2 (en) | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium | |
US9880875B2 (en) | Apparatus and method for hardware-based task scheduling | |
US20150121387A1 (en) | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium | |
US20090177829A1 (en) | Interrupt redirection with coalescing | |
US9904554B2 (en) | Checkpoints for a simultaneous multithreading processor | |
US10318456B2 (en) | Validation of correctness of interrupt triggers and delivery | |
US8261049B1 (en) | Determinative branch prediction indexing | |
EP2270652B1 (en) | Priority circuit for dispatching instructions in a superscalar processor having a shared reservation station and processing method | |
CN103019848A (zh) | 一种pci总线非向量中断实现方法 | |
CN102193828B (zh) | 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目 | |
EP4386554A1 (en) | Instruction distribution method and device for multithreaded processor, and storage medium | |
CN112789593A (zh) | 一种基于多线程的指令处理方法及装置 | |
US8117425B2 (en) | Multithread processor and method of synchronization operations among threads to be used in same | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 | |
CN103765399A (zh) | 在多核系统中分配中断的方法和设备 | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
CN112673354A (zh) | 一种系统状态检测方法、系统状态装置及终端设备 | |
KR20130094889A (ko) | 실시간 운영체제의 태스크 스케줄링 방법 | |
US11023241B2 (en) | Systems and methods for selectively bypassing address-generation hardware in processor instruction pipelines | |
US20080288952A1 (en) | Processing apparatus and device control unit | |
CN107239417B (zh) | 基于异步事件框架机制处理低速外设访问的系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101124 |