CN102150135B - 用于在多线程处理器中分配中断的方法及系统 - Google Patents

用于在多线程处理器中分配中断的方法及系统 Download PDF

Info

Publication number
CN102150135B
CN102150135B CN200980135727.8A CN200980135727A CN102150135B CN 102150135 B CN102150135 B CN 102150135B CN 200980135727 A CN200980135727 A CN 200980135727A CN 102150135 B CN102150135 B CN 102150135B
Authority
CN
China
Prior art keywords
thread
priority
interrupt
task
interruption
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.)
Active
Application number
CN200980135727.8A
Other languages
English (en)
Other versions
CN102150135A (zh
Inventor
埃里克·詹姆斯·普隆迪克
卢奇安·科德雷斯库
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN102150135A publication Critical patent/CN102150135A/zh
Application granted granted Critical
Publication of CN102150135B publication Critical patent/CN102150135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor

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)
  • Telephone Function (AREA)

Abstract

本发明描述一种能够分配中断的多线程处理器。在一个实施例中,所述多线程处理器包括中断模块及用于执行任务的线程。所述中断模块可基于正由所述线程执行的任务的任务优先级而识别每一线程的优先级,且至少基于其优先级而将中断指派给线程。

Description

用于在多线程处理器中分配中断的方法及系统
技术领域
本文中所揭示的发明性概念的实施例大体上涉及数据处理系统的领域。更明确地说,本文中所揭示的发明性概念的实施例涉及在多线程处理器中分配中断。
背景技术
多线程处理器可包括两个或两个以上线程以增加任务可被处理的速度。线程可为任务在其上被处理的硬件。任务可为与系统功能(例如,应用程序或程序)相关联的指令序列。一些应用程序或程序可同时与两个或两个以上任务相关联。线程可通过执行与任务相关联的指令序列而处理或执行所述任务。
一个线程可在另一线程处理另一任务的同时处理一个任务。处理阶段可包括提取(以获得与任务相关联的指令)、解码(以将指令分解为操作及操作数)、从寄存器文件检索操作数、执行所述指令及写回结果。可针对任务中的下一指令重复所述过程,直到任务的所有指令均被执行为止。每一任务可与优先级相关联且基于所述优先级而指派给线程。举例来说,软件可将优先级指派给每一任务,且调度器可确定具有最高优先级的下一任务以提供准备好处理任务的线程。
线程还可能够处理中断。中断可为与来自系统装置或由软件产生的中断处理程序相关联的通知。中断处理程序可为作为未调度任务的例程。当接收到中断时,可由多线程处理器的任何线程处理所述中断。举例来说,可在提取阶段处将所述中断处理程序提供给第一线程,而不管所述线程当前是否正处理任务的指令或其它线程是否处于等待模式(即,不在处理任何任务)。处理所述中断包括线程停止对任务的指令的处理且处理与中断处理程序相关联的指令序列。
停止处理其当前任务以处理中断的线程可例如通过处理高优先级任务而为高优先级线程。如果一个或一个以上线程处于等待模式或处理低优先级的线程可用以处理中断,则需要高优先级线程继续处理高优先级任务且不针对中断来停止其处理。
因此,需要用于多线程处理器的系统及过程,其可分配中断以减少来自当其它线程可用以处理中断时在高优先级线程上执行中断的开销。
发明内容
在一实施例中,描述一种多线程处理器。所述多线程处理器包括中断模块及用于执行任务的线程。每一线程可执行任务。所述中断模块可识别所述线程中的每一者的优先级且至少基于其优先级而将中断指派给所述线程中的一者。
提及此说明性实施例不是为了限制或定义本文中所揭示的发明性概念,而是为了提供实例以帮助理解所述发明性概念。在审阅完整申请案之后,本发明的其它方面、优点及特征将变得显而易见,完整申请案包括以下部分:附图说明、具体实施方式及权利要求书。
附图说明
在参考附图阅读以下具体实施方式时,可较好地理解本文中所揭示的发明性概念的这些及其它特征、方面及优点,在附图中:
图1为说明向处理器线程分配中断的处理器单元的实例的总图。
图2为说明图1的处理器单元的实施例的总图。
图3为说明图1的处理器单元的第二实施例的总图。
图4为说明用于向处理器线程分配中断的示范性过程的流程图。
图5为说明可包括处理器单元的实施例的实例便携式通信装置的总图。
图6为说明可包括处理器单元的实施例的实例蜂窝式电话的总图。
图7为说明可包括处理器单元的实施例的实例无线因特网协议电话的总图。
图8为说明可包括处理器单元的实施例的实例便携式数字助理的总图。
图9为说明可包括处理器单元的实施例的实例音频文件播放器的总图。
具体实施方式
贯穿整个描述,出于解释的目的,阐述众多特定细节以便提供对本文中所揭示的发明性概念的透彻理解。然而,所属领域的技术人员将容易明白,可在不具有这些特定细节中的一些特定细节的情况下实践本文中所揭示的发明性概念。在其它例子中,以框图形式展示众所周知的结构及装置以避免混淆本文中所揭示的发明性概念的基本原理。
本文中所揭示的发明性概念的实施例涉及能够基于线程优先级而向线程分配中断的多线程处理器。线程的优先级可基于所述线程是否正执行任务及/或其正执行的任务的优先级。在一些实施例中,每一任务的优先级由软件产生且由多线程处理器的处理器单元接收。当线程正执行任务时,所述线程的优先级可对应于其正执行的任务。当线程处于等待模式(即,不在执行任务)时,其优先级可对应于可能的最低优先级。在一些实施例中,例如“1”及“0”等两个优先级用以指示线程正执行任务(“1”)或处于等待模式(“0”),且基于所述优先级而分配中断(例如,分配给处于等待模式且与“0”相关联的线程)。
任务可包括彼此相关联的指令序列。处理器线程可通过处理与任务相关联的指令中的每一者而执行所述任务。多线程处理器可通过处理与一个线程上的一个任务相关联的指令序列及与另一线程上的另一任务相关联的指令序列而同时执行两个或两个以上任务。
多线程处理器的处理器单元可接收中断且基于线程的优先级而确定线程以提供所述中断。举例来说,所述处理器单元可识别处于等待模式的线程,或者如果多线程处理器中的所有线程均正执行任务,则识别具有最低优先级的线程。所述处理器单元可将中断指引到经识别的线程。
中断可为与从装置或系统软件接收的未调度事件(例如,中断处理程序)相关联的通知。举例来说,中断处理程序可为包括待由线程处理的指令序列的未调度任务。在一些实施例中,所述中断包括优先级。处理器单元可基于线程的优先级及中断的优先级而确定是否要停止执行中的任务。举例来说,处理器单元可确定中断优先级是否高于线程的优先级。如果中断优先级高于线程优先级,则可停止具有最低优先级的线程且可将中断提供给所述线程。如果中断优先级低于线程,则可将中断排入队列,直到线程完成执行其当前任务为止或者直到已执行了优先级高于中断的任务为止。通过基于线程优先级来分配中断,某些处理器单元实施例可减少开销(例如,由中断处理引起的等待时间)且/或允许较早执行高优先级任务。
根据一些实施例的多线程处理器可用处理系统的用以在执行任务期间存取数据的各种组件来实施。图1展示包括处理器单元102的多线程处理器的一个实施例的实施方案的框图,所述处理器单元102用于将与中断处理程序101相关联的中断100分配给处理器线程。在一些实施例中,处理器单元102包括例如任务队列中的任务或其它任务等可执行任务104,每一任务包括待由处理器线程执行的指令序列。可在执行模块106中执行与任务相关联的指令,执行模块106包括若干线程及与每一线程相关联的存储所述相关联线程的优先级的寄存器或其它临时存储组件。执行模块106可包括任何数目的线程(例如,有限数目的线程)。每一线程可例如通过执行与任务相关联的指令序列而执行任务。处理器单元102还可包括中断模块108,所述中断模块108能够确定线程以提供中断或以其它方式确定中断100及其相关联的中断处理程序101的分配。
每一任务可与优先级(例如,由操作系统指派的优先级)相关联。处理器单元102或软件(例如,操作系统)可使用所述优先级来确定何时在线程上执行任务。在一些实施例中,同时接收若干任务且基于所述任务的优先级而将所述任务提供给有限数目的线程。可在与低优先级相关联的任务之前执行与高优先级相关联的任务。
处理器单元102可耦合到存储器管理单元110及辅助所述处理器单元102执行任务的资源112。在执行期间,处理器单元102可经由所述存储器管理单元110存取资源112。举例来说,处理器单元102可提供对来自资源112的数据、指令、操作数或其它信息的请求。存储器管理单元110可例如通过使用翻译旁视缓冲器或其它组件以提供处理器单元102搜寻的信息所在的存储器位置的物理地址来管理对资源112的存取。
可接收来自系统装置(例如,资源112或其它)的中断100,且其相关联的中断处理程序101可由处理器单元102执行。中断模块108经配置以基于执行模块106中的线程的优先级而分配中断100,例如通过停止相对较低优先级线程或识别处于等待模式的线程以执行中断。
处理器单元102的实施例可包括用以在线程当中分配中断的各种组件,包括将中断分配给处于等待模式的线程及/或基于线程及等待执行的任务的优先级而分配中断的组件。图2及图3说明经配置以分配中断的处理器单元的实施方案的实施例。图2说明使用经定标的线程优先级向处于等待模式的线程分配中断的实例。图3说明基于两选择优先级向线程分配中断的实例。
图2中的处理器单元102为包括具有若干线程202的执行模块的多线程处理器。出于说明性目的,线程202包括六个线程A到F。可使用任何数目的线程。执行模块还包括存储所述线程202中的每一者的优先级的线程寄存器204A到204F。每一线程寄存器与线程相关联。举例来说,线程寄存器204A对应于线程202A。当线程正执行任务时,对应于所述任务优先级的优先级存储于与所述线程相关联的寄存器中。当所述线程完成或以其它方式停止执行任务时,相关联寄存器中的优先级改变成“空”。为“空”的优先级可对应于可能的最低优先级。当所述线程获得另一任务来执行时,对应于所述任务的优先级的优先级存储于相关联的寄存器中。
在一些实施例中,寄存器存储识别优先级的值的一个或一个以上位。任何优先级标度可用以表示相对线程优先级。在图2中所说明的实施例中,使用在“1”与“99”之间的数字,其中较小数字表示较高优先级。举例来说,线程寄存器204A包括为“5”的优先级,其表示线程202A的相对优先级。线程寄存器204B包括为“25”的优先级,其表示线程202B的相对优先级且指示线程202A具有比线程202B高的优先级。线程寄存器204C包括为“空”的优先级,其指示线程202C当前不在执行任务且处于等待模式。出于示范性目的而使用包括用以指示线程优先级值的数值及“空”的标度,且可使用相对线程优先级及处于等待模式的线程的任何识别。
执行模块还包括耦合到线程寄存器204的优先级编码器206。所述优先级编码器206可经配置以接收线程寄存器204中的优先级且确定包括最低优先级的寄存器。在所展示的实施例中,优先级编码器206确定与包括“空”(由于其为最低优先级)的寄存器相关联的线程。举例来说,线程寄存器204可各自将与所述线程寄存器相关联的线程的优先级及识别提供给优先级编码器206。在图2所示的实施例中,线程寄存器204C包括“空”且由优先级编码器206识别为具有最低优先级的线程。
将由优先级编码器206识别的线程提供给中断模块208,所述中断模块208经配置以基于从优先级编码器206接收的优先级信息分配中断。在一些实施例中,优先级编码器206连续地将优先级信息提供给中断模块208。在其它实施例中,优先级编码器206在从中断模块208接收到对优先级信息的请求之后将所述优先级信息提供给所述中断模块208。
中断模块208可接收中断且将其分配给线程202中的一者。在一些实施例中,中断模块208确定中断的优先级且除从优先级编码器206接收的线程优先级之外还使用所述中断优先级来分配中断。在其它实施例中,中断模块208在不确定中断的优先级的情况下分配中断。中断模块208可通过识别具有最低优先级的线程(例如,处于等待模式的线程)而分配中断,且将所述中断提供给所识别的线程。举例来说,由于线程202C为最低优先级线程(因为其处于等待模式),所以中断模块208识别线程202C且将中断提供给线程202C。线程202C在不干扰其它线程(例如,高优先级线程)的执行的情况下执行中断。
如果所有线程202均正在执行任务,则中断模块208还可经配置以向低优先级线程提供中断。低优先级线程可停止执行任务且通过执行与所述中断相关联的中断处理程序的指令而开始处理所述中断。举例来说,如果线程202C正执行具有为“17”的优先级的任务,则优先级编码器206识别线程202E(因为其具有最低优先级)且将202E的识别提供给中断模块208。中断模块208可停止在线程202E中执行的任务且接收中断以执行。举例来说,线程202E可停止执行与任务相关联的指令序列的指令且开始执行与中断相关联的中断处理程序的指令。线程202E在不干扰较高优先级线程的情况下执行中断。可中止在线程202E中正式执行的任务,直到一线程完成执行且准备好执行另一任务为止。
在一些实施例中,可基于较简单线程优先级(例如,指示线程处于等待模式或正执行任务的线程优先级)而分配中断。图3说明处理器单元102的实施例,所述处理器单元102包括具有线程302A到302F及对应于线程302A到302F的线程寄存器304A到304F的执行模块。线程寄存器304A到304F各自包括用以指示每一线程的优先级的“1”或“0”。“1”可指示相关联的线程当前正执行任务,且“0”可指示相关联的线程处于等待模式。举例来说,线程寄存器304A、304C、304D及304F各自包括“1”,从而指示相关联的线程302A、302C、302D及302F正执行任务。线程寄存器304B及304E各自包括“0”,从而指示相关联的线程302B及302E不在执行任务且处于等待模式。
线程寄存器304A到304F耦合到向中断模块308识别线程优先级的优先级编码器306。在一些实施例中,优先级编码器306经配置以基于来自线程寄存器304A到304F的优先级而向中断模块308识别处于等待模式的一个或一个以上线程。举例来说,在图3所示的实施例中,优先级编码器306可向中断模块308识别线程302B及302E。中断模块308可将中断提供给所识别的线程302B或302E中的一者,其中可在无需当前正处理任务的线程停止并接受所述中断的情况下处理所述中断。
在一些实施例中,所有线程302A到302F可能均正在处理任务且线程寄存器304A到304F中的每一者可包括“1”,从而指示每一相关联线程当前正处理任务。优先级编码器306可经配置以将所有线程302A到302F均正在处理任务的指示提供给中断模块308。中断模块308可将中断及其中断处理程序提供给线程302A到302F中的一者。所述线程可停止处理其任务且通过执行与其中断处理程序相关联的指令而开始处理所述中断。
如以上所描述,可实施各种方法以在多线程处理器中分配中断。分配方法的某些实施例可基于线程优先级、中断优先级及/或任务队列中的任务的优先级而分配中断。图4说明根据一个实施例的基于线程优先级及中断优先级而分配中断的示范性中断分配方法。
所述方法可在框402处开始,此时处理器单元接收用于执行的任务及每一任务的优先级。所述任务可从软件程序或其它系统应用程序接收,且包括由多线程处理器中的线程执行的指令序列。每一任务的优先级可由例如操作系统等系统软件确定。在一些实施例中,处理器单元包括经配置以当接收到每一任务时确定每一任务的优先级的逻辑。
在框404中,在线程上执行每一任务。假定任务的数目超过可用于执行任务的线程的数目。在一些实施例中,调度器识别每一任务的优先级且将最高优先级任务首先提供给线程以供执行。
在框406中,处理器单元基于任务优先级而识别每一线程的优先级。在一些实施例中,处理器单元监视线程且识别在每一线程上执行的任务的优先级。每一线程的优先级可对应于在所述线程上执行的任务的优先级。处理器单元还可识别处于等待模式的线程的优先级。处理器单元可将每一线程的优先级存储于与所述线程相关联的寄存器中。
在框408中,处理器单元从系统装置或软件应用程序接收中断且确定其优先级。所述中断可与作为未调度任务的中断处理程序相关联。在一些实施例中,中断优先级与中断一起接收。举例来说,当创建中断时,例如操作系统等系统软件将优先级指派给所述中断。在其它实施例中,处理器单元通过存取存储器或其它系统组件而检索中断的优先级。
在框410中,处理器单元中的中断模块确定中断优先级是否高于至少一个线程。在一些实施例中,中断模块接收线程中的每一者的优先级且将其与中断优先级进行比较。如果中断优先级高于至少一个线程,则在框412中,识别具有最低优先级的线程,停止处理其任务,且将与所述中断相关联的中断处理程序提供给所述具有最低优先级的线程。如果中断优先级不高于至少一个线程,则在框414中,将所述中断存储于队列中。所述方法返回到框410以确定中断优先级是否高于至少一个线程,且继续进行,直到中断优先级高于至少一个线程为止。在一些实施例中,将中断存储于队列中,且当线程可用且所述中断为所述队列中的最高优先级的中断及/或任务时,将所述中断提供给线程。
包括上述特征的实例装置
能够将中断分配给处理器线程的处理器单元可包括于任何类型的处理器(例如,数字信号处理器)中。图5到图9的总图说明可并入有处理器单元以用于将中断分配给多线程处理器的线程的实例装置。
图5为说明便携式通信装置500的示范性实施例的图。如图5的总图中所说明,所述便携式通信装置包括包含数字信号处理器(DSP)504的芯片上系统502。图5的总图还展示耦合到所述DSP 504及显示器508的显示控制器506。此外,输入装置510耦合到所述DSP 504。如图所示,存储器512耦合到所述DSP 504。另外,编码器/解码器(编解码器)514可耦合到所述DSP 504。扬声器516及麦克风518可耦合到所述编解码器514。
图5的总图进一步说明耦合到数字信号处理器504及无线天线522的无线控制器520。在特定实施例中,电源524耦合到芯片上系统502。显示器508、输入装置510、扬声器516、麦克风518、无线天线522及电源524可在所述芯片上系统502的外部。然而,每一者可耦合到所述芯片上系统502的组件。
在特定实施例中,DSP 504包括处理器单元562(如参考图2或图3所描述),所述处理器单元562可将中断分配给线程且减少开销(例如,由中断处理引起的等待时间)且/或允许较早执行高优先级任务。举例来说,DSP 504可为多线程处理器,其中可基于线程正在处理的任务的优先级而向每一线程指派优先级。处理器单元562可接收中断且基于每一线程(例如,不在处理任务的线程或低优先级线程)的优先级而确定将所述中断发送到其以进行处理的线程。
图6为说明蜂窝式电话600的示范性实施例的图。如图所示,蜂窝式电话600包括芯片上系统602,芯片上系统602包括耦合在一起的数字基带处理器604及模拟基带处理器606。在特定实施例中,所述数字基带处理器604为数字信号处理器。如在图6的总图中所说明,显示控制器608及触摸屏控制器610耦合到所述数字基带处理器604。又,在芯片上系统602外部的触摸屏显示器612耦合到所述显示控制器608及所述触摸屏控制器610。
图6的总图进一步说明视频编码器614(例如,逐行倒相(PAL)编码器、循序色彩记忆(SECAM)编码器或国家电视系统委员会(NTSC)编码器)耦合到所述数字基带处理器604。另外,视频放大器616耦合到所述视频编码器614及所述触摸屏显示器612。而且,视频端口618耦合到所述视频放大器616。通用串行总线(USB)控制器620耦合到所述数字基带处理器604。而且,USB端口622耦合到所述USB控制器620。存储器624及订户身份模块(SIM)卡626也可耦合到所述数字基带处理器604。另外,如图6的总图所示,数码相机628可耦合到所述数字基带处理器604。在示范性实施例中,所述数码相机628为电荷耦合装置(CCD)相机或互补金属氧化物半导体(CMOS)相机。
如图6的总图中进一步说明,立体声音频编解码器630可耦合到所述模拟基带处理器606。此外,音频放大器632可耦合到所述立体声音频编解码器630。在示范性实施例中,第一立体声扬声器634及第二立体声扬声器636耦合到所述音频放大器632。麦克风放大器638也可耦合到所述立体声音频编解码器630。另外,麦克风640可耦合到所述麦克风放大器638。在特定实施例中,调频(FM)无线电调谐器642可耦合到所述立体声音频编解码器630。FM天线644可耦合到所述FM无线电调谐器642。另外,立体声头戴受话器646可耦合到所述立体声音频编解码器630。
图6的总图进一步说明可耦合到所述模拟基带处理器606的射频(RF)收发器648。RF开关650可耦合到所述RF收发器648及RF天线652。小键盘654可耦合到所述模拟基带处理器606。而且,具有麦克风的单声道头戴耳机656可耦合到所述模拟基带处理器606。另外,振动器装置658可耦合到所述模拟基带处理器606。图6的总图还展示可耦合到所述芯片上系统602的电源660。在特定实施例中,所述电源660为将电力提供给蜂窝式电话600的各种组件的直流(DC)电源。另外,在特定实施例中,所述电源为可再充电DC电池或从耦合到交流(AC)电源的AC/DC转换器得出的DC电源。
如图6的总图中所描绘,触摸屏显示器612、视频端口618、USB端口622、相机628、第一立体声扬声器634、第二立体声扬声器636、麦克风640、FM天线644、立体声头戴受话器646、RF开关650、RF天线652、小键盘654、单声道头戴耳机656、振动器658及电源660可在芯片上系统602的外部。在特定实施例中,数字基带处理器604可包括处理器单元662(如参考图2或图3所描述),所述处理器单元662可将中断分配给线程且减少开销(例如,由中断处理引起的等待时间)且/或允许较早执行高优先级任务。举例来说,DSP 604可为多线程处理器,其中可基于线程正在处理的任务的优先级而向每一线程指派优先级。处理器单元662可接收中断且基于每一线程(例如,不在处理任务的线程或低优先级线程)的优先级而确定将所述中断发送到其以进行处理的线程。
图7为说明无线因特网协议(IP)电话700的示范性实施例的图。如图所示,所述无线IP电话700包括芯片上系统702,所述芯片上系统702包括数字信号处理器(DSP)704。显示控制器706可耦合到所述DSP 704,且显示器708耦合到所述显示控制器706。在示范性实施例中,所述显示器708为液晶显示器(LCD)。图7进一步展示小键盘710可耦合到所述DSP 704。
快闪存储器712可耦合到所述DSP 704。同步动态随机存取存储器(SDRAM)714、静态随机存取存储器(SRAM)716及电可擦除可编程只读存储器(EEPROM)718也可耦合到所述DSP 704。图7的总图还展示发光二极管(LED)720可耦合到所述DSP 704。另外,在特定实施例中,语音编解码器722可耦合到所述DSP 704。放大器724可耦合到所述语音编解码器722,且单声道扬声器726可耦合到所述放大器724。图7的总图进一步说明耦合到所述语音编解码器722的单声道头戴耳机728。在特定实施例中,所述单声道头戴耳机728包括麦克风。
无线局域网络(WLAN)基带处理器730可耦合到所述DSP 704。RF收发器732可耦合到所述WLAN基带处理器730,且RF天线734可耦合到所述RF收发器732。在特定实施例中,蓝牙控制器736也可耦合到所述DSP 704,且蓝牙天线738可耦合到所述控制器736。图7的总图还展示USB端口740也可耦合到所述DSP 704。此外,电源742耦合到所述芯片上系统702且将电力提供给所述无线IP电话700的各种组件。
如图7的总图中所指示,显示器708、小键盘710、LED 720、单声道扬声器726、单声道头戴耳机728、RF天线734、蓝牙天线738、USB端口740及电源742可在芯片上系统702的外部且耦合到芯片上系统702的一个或一个以上组件。在特定实施例中,DSP 704包括处理器单元762(如参考图2或图3所描述),所述处理器单元762可将中断分配给线程且减少开销(例如,由中断处理引起的等待时间)且/或允许较早执行高优先级任务。举例来说,DSP 704可为多线程处理器,其中可基于线程正在处理的任务的优先级而向每一线程指派优先级。处理器单元762可接收中断且基于每一线程(例如,不在处理任务的线程或低优先级线程)的优先级而确定将所述中断发送到其以进行处理的线程。
图8为说明便携式数字助理(PDA)800的示范性实施例的图。如图所示,所述PDA800包括包含数字信号处理器(DSP)804的芯片上系统802。触摸屏控制器806及显示控制器808耦合到所述DSP 804。另外,触摸屏显示器810耦合到所述触摸屏控制器806且耦合到所述显示控制器808。图8的总图还指示小键盘812可耦合到所述DSP 804。
在特定实施例中,立体声音频编解码器826可耦合到所述DSP 804。第一立体声放大器828可耦合到所述立体声音频编解码器826且第一立体声扬声器830可耦合到所述第一立体声放大器828。另外,麦克风放大器832可耦合到所述立体声音频编解码器826且麦克风834可耦合到所述麦克风放大器832。图8的总图进一步展示可耦合到所述立体声音频编解码器826的第二立体声放大器836及可耦合到所述第二立体声放大器836的第二立体声扬声器838。在特定实施例中,立体声头戴受话器840也可耦合到所述立体声音频编解码器826。
图8的总图还说明可耦合到所述DSP 804的802.11控制器842及可耦合到所述802.11控制器842的802.11天线844。此外,蓝牙控制器846可耦合到所述DSP 804,且蓝牙天线848可耦合到所述蓝牙控制器846。USB控制器850可耦合到所述DSP 804,且USB端口852可耦合到所述USB控制器850。另外,智能卡854(例如,多媒体卡(MMC)或安全数字卡(SD))可耦合到所述DSP 804。另外,电源856可耦合到所述芯片上系统802且可将电力提供给所述PDA 800的各种组件。
如图8的总图中所指示,显示器810、小键盘812、IrDA端口822、数码相机824、第一立体声扬声器830、麦克风834、第二立体声扬声器838、立体声头戴受话器840、802.11天线844、蓝牙天线848、USB端口852及电源856可在芯片上系统802的外部且耦合到芯片上系统802上的一个或一个以上组件。在特定实施例中,DSP 804包括处理器单元862(如参考图2或图3所描述),所述处理器单元862可将中断分配给线程且减少开销(例如,由中断处理引起的等待时间)且/或允许较早执行高优先级任务。举例来说,DSP 804可为多线程处理器,其中可基于线程正在处理的任务的优先级而向每一线程指派优先级。处理器单元862可接收中断且基于每一线程(例如,不在处理任务的线程或低优先级线程)的优先级而确定将所述中断发送到其以进行处理的线程。
图9为说明音频文件播放器(例如,MP3播放器)900的示范性实施例的图。如图所示,所述音频文件播放器900包括包含数字信号处理器(DSP)904的芯片上系统902。显示控制器906可耦合到所述DSP 904,且显示器908耦合到所述显示控制器906。在示范性实施例中,所述显示器908为液晶显示器(LCD)。小键盘910可耦合到所述DSP904。
如图9的总图中进一步描绘,快闪存储器912及只读存储器(ROM)914可耦合到所述DSP 904。另外,在特定实施例中,音频编解码器916可耦合到所述DSP 904。放大器918可耦合到所述音频编解码器916,且单声道扬声器920可耦合到所述放大器918。图9的总图进一步指示麦克风输入922及立体声输入924也可耦合到所述音频编解码器916。在特定实施例中,立体声头戴受话器926也可耦合到所述音频编解码器916。
USB端口928及智能卡930可耦合到所述DSP 904。另外,电源932可耦合到所述芯片上系统902且可将电力提供给所述音频文件播放器900的各种组件。
如图9的总图中所指示,显示器908、小键盘910、单声道扬声器920、麦克风输入922、立体声输入924、立体声头戴受话器926、USB端口928及电源932在芯片上系统902的外部且耦合到芯片上系统902上的一个或一个以上组件。在特定实施例中,DSP904包括处理器单元962(如参考图2或图3所描述),所述处理器单元962可将中断分配给线程且减少开销(例如,由中断处理引起的等待时间)且/或允许较早执行高优先级任务。举例来说,DSP 904可为多线程处理器,其中可基于线程正在处理的任务的优先级而向每一线程指派优先级。处理器单元962可接收中断且基于每一线程(例如,不在处理任务的线程或低优先级线程)的优先级而确定将所述中断发送到其以进行处理的线程。
总则
本文中所揭示的发明性概念的实施例的前述描述已仅出于说明及描述的目的而呈现,且不希望为详尽的或将本文中所揭示的发明性概念限于所揭示的精确形式。在不脱离本文中所揭示的发明性概念的精神及范围的情况下,所属领域的技术人员容易明白众多修改及改编。

Claims (15)

1.一种多线程处理器,其包含:
执行模块,其经配置以执行多个线程,所述多个线程中的每个线程能够执行对应的任务;
优先级编码器,其经耦合以提供所述多个线程中的最低优先级线程的指示,所述最低优先级线程具有基于所述多个线程中的每个线程的相应优先级的最低优先级,其中所述优先级解码器经配置以从多个寄存器中的相应寄存器接收所述多个线程中的每个线程的所述相应优先级;以及
中断模块,其经配置以接收所述最低优先级线程的所述指示且将中断指派给所述最低优先级线程;
其中所述中断模块经配置以通过确定所述多个线程中的一者或一者以上是否处于等待模式且确定正执行任务的线程的所述最低优先级来识别所述多个线程中的每一者的所述优先级。
2.根据权利要求1所述的多线程处理器,其中线程的所述优先级对应于正由所述线程执行的任务的优先级。
3.根据权利要求1所述的多线程处理器,其中所述中断模块经配置以通过将所述中断分配给最低优先级线程来将所述中断指派给所述最低优先级线程,且其中所述最低优先级线程经配置以停止处理相应任务且处理所述中断。
4.根据权利要求3所述的多线程处理器,其中所述中断与中断处理程序相关联,其中所述最低优先级线程经配置以通过处理所述中断处理程序来处理所述中断。
5.根据权利要求1所述的多线程处理器,其中所述多线程处理器安置于便携式通信装置中。
6.一种用于操作多线程处理器的方法,所述方法包含:
在第一线程上执行第一任务;
在第二线程上执行第二任务;
基于所述第一任务的第一任务优先级而确定所述第一线程的第一线程优先级;
基于所述第二任务的第二任务优先级而确定所述第二线程的第二线程优先级;
接收具有中断优先级的中断;
通过优先级编码器而向中断模块指示,多个线程中的最低优先级线程,所述最低优先级线程具有基于所述多个线程中的每个线程的相应线程优先级的最低线程优先级,其中所述线程优先级包含所述第一线程优先级和所述第二线程优先级,且其中所述优先级编码器经配置以从多个寄存器中的相应寄存器接收所述多个线程中的每个线程的所述相应线程优先级;及
通过所述中断模块来将所述中断分配给所述最低优先级线程;
其中所述中断模块经配置以通过确定所述多个线程中的一者或一者以上是否处于等待模式且确定正执行任务的线程的所述最低优先级来识别所述多个线程中的每一者的线程优先级。
7.根据权利要求6所述的方法,其中分配所述中断包含:
基于处于所述最低线程优先级的所述第二线程优先级而停止所述第二任务;及
将所述中断提供给所述第二线程以进行处理。
8.根据权利要求7所述的方法,其中分配所述中断包含确定所述中断优先级是高于所述第二线程优先级的优先级。
9.根据权利要求7所述的方法,其进一步包含由所述第二线程通过处理与所述中断相关联的中断处理程序来处理所述中断。
10.根据权利要求6所述的方法,其中分配所述中断包含:
确定所述中断优先级是否低于所述第一线程优先级及所述第二线程优先级的优先级;及
响应于确定所述中断优先级是低于的所述第一线程优先级和所述第二线程优先级的优先级而将所述中断分配给队列。
11.一种处理器单元,其包含:
中断模块,其经配置以接收中断且将所述中断分配给最低优先级线程;及执行模块,其经配置以执行第一线程和第二线程,其中
所述第一线程经配置以执行与第一优先级相关联的第一任务;
所述第二线程经配置以执行与第二优先级相关联的第二任务;
所述执行模块包含:
第一寄存器,其经配置以存储对应于所述第一优先级的第一线程优先级;
第二寄存器,其经配置以存储对应于所述第二优先级的第二线程优先级;及
优先级编码器,其经配置以基于多个线程中的每个线程的相应线程优先级而向所述中断模块指示所述最低优先级线程,其中所述多个线程包括所述第一线程和所述第二线程,且其中所述优先级编码器经配置以从多个寄存器中的相应寄存器接收所述多个线程中的每个线程的所述相应线程优先级;
其中所述中断模块经配置以通过确定所述多个线程中的一者或一者以上是否处于等待模式且确定正执行任务的线程的所述最低优先级来识别所述多个线程中的每一者的所述优先级。
12.根据权利要求11所述的处理器单元,其中所述中断模块经配置以:
确定中断优先级是否是高于所述第一线程优先级的优先级,其中所述第一线程优先级对应于所述最低优先级;及
当所述中断优先级是高于所述第一线程优先级的中断优先级时,通过将所述中断提供给所述第一线程而将所述中断分配给所述第一线程,其中所述第一线程经配置以停止处理所述第一任务且处理所述中断。
13.根据权利要求12所述的处理器单元,其中所述执行模块经配置以存储所述第一任务且修改所述第一线程优先级以使其对应于所述中断优先级。
14.根据权利要求12所述的处理器单元,其中所述第一线程通过处理与所述中断相关联的中断处理程序来处理所述中断。
15.根据权利要求11所述的处理器单元,其中所述处理器单元安置于便携式通信装置中。
CN200980135727.8A 2008-09-19 2009-09-16 用于在多线程处理器中分配中断的方法及系统 Active CN102150135B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/233,688 2008-09-19
US12/233,688 US8656145B2 (en) 2008-09-19 2008-09-19 Methods and systems for allocating interrupts in a multithreaded processor
PCT/US2009/057123 WO2010033569A1 (en) 2008-09-19 2009-09-16 Methods and systems for allocating interrupts in a multithreaded processor

Publications (2)

Publication Number Publication Date
CN102150135A CN102150135A (zh) 2011-08-10
CN102150135B true CN102150135B (zh) 2015-02-11

Family

ID=41258767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980135727.8A Active CN102150135B (zh) 2008-09-19 2009-09-16 用于在多线程处理器中分配中断的方法及系统

Country Status (9)

Country Link
US (1) US8656145B2 (zh)
EP (1) EP2347334B1 (zh)
JP (2) JP5575774B2 (zh)
KR (1) KR101346135B1 (zh)
CN (1) CN102150135B (zh)
HR (1) HRP20161316T1 (zh)
SM (1) SMT201600453B (zh)
TW (1) TW201023043A (zh)
WO (1) WO2010033569A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739242B (zh) * 2009-11-27 2013-07-31 深圳中微电科技有限公司 一种流数据处理方法及流处理器
CN101976206B (zh) * 2010-10-28 2016-04-20 北京中星微电子有限公司 一种中断处理方法和装置
US8713235B2 (en) * 2011-05-02 2014-04-29 Fairchild Semiconductor Corporation Low latency interrupt collector
KR20130021637A (ko) * 2011-08-23 2013-03-06 삼성전자주식회사 멀티 코어 시스템의 인터럽트 할당 방법 및 장치
DE102012220365A1 (de) * 2011-11-10 2013-05-16 Nvidia Corp. Aufgabe-Thread-Feld-Granularität-Ausführung-Präemption
US9411641B2 (en) * 2012-10-04 2016-08-09 Lawrence J. Dickson Method and apparatus implemented in processors for real-time scheduling and task organization based on response time order of magnitude
US10089142B2 (en) * 2013-08-21 2018-10-02 Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh Dynamic task prioritization for in-memory databases
US9460033B2 (en) * 2013-12-27 2016-10-04 Cavium, Inc. Apparatus and method for interrupt collecting and reporting status and delivery information
US9417876B2 (en) * 2014-03-27 2016-08-16 International Business Machines Corporation Thread context restoration in a multithreading computer system
US9396089B2 (en) 2014-05-30 2016-07-19 Apple Inc. Activity tracing diagnostic systems and methods
US9665398B2 (en) * 2014-05-30 2017-05-30 Apple Inc. Method and apparatus for activity based execution scheduling
US9760511B2 (en) * 2014-10-08 2017-09-12 International Business Machines Corporation Efficient interruption routing for a multithreaded processor
US9753766B2 (en) * 2014-11-25 2017-09-05 Raytheon Company Apparatus and method for allocating resources using prioritization of requests and updating of requests
US10248463B2 (en) * 2015-02-13 2019-04-02 Honeywell International Inc. Apparatus and method for managing a plurality of threads in an operating system
US20180203813A1 (en) * 2015-09-29 2018-07-19 Shannon Systems Ltd. Methods for processing return entities associated with multiple requests in single interrupt service routine thread and apparatuses using the same
CN107193761B (zh) * 2016-03-15 2021-07-27 厦门旌存半导体技术有限公司 队列优先级仲裁的方法与装置
US10069949B2 (en) 2016-10-14 2018-09-04 Honeywell International Inc. System and method for enabling detection of messages having previously transited network devices in support of loop detection
US10261799B2 (en) 2017-02-28 2019-04-16 International Business Machines Corporation Programmatic implicit multithreading
US20200110635A1 (en) 2017-07-05 2020-04-09 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
CN109583577B (zh) 2017-09-29 2021-04-23 上海寒武纪信息科技有限公司 运算装置及方法
CN107578014B (zh) 2017-09-06 2020-11-03 上海寒武纪信息科技有限公司 信息处理装置及方法
CN109213581B (zh) * 2017-07-05 2021-06-08 上海寒武纪信息科技有限公司 一种数据处理装置和方法
CN109478144B (zh) * 2017-07-05 2021-12-14 上海寒武纪信息科技有限公司 一种数据处理装置和方法
US10810086B2 (en) 2017-10-19 2020-10-20 Honeywell International Inc. System and method for emulation of enhanced application module redundancy (EAM-R)
KR102408961B1 (ko) * 2017-10-23 2022-06-13 삼성전자주식회사 처리가 지연되고 있는 태스크의 처리 방법 및 이를 지원하는 전자 장치
US10423550B2 (en) * 2017-10-25 2019-09-24 International Business Machines Corporation Managing efficient selection of a particular processor thread for handling an interrupt
TWI639955B (zh) * 2017-11-06 2018-11-01 晨星半導體股份有限公司 多處理器系統及其處理器管理方法
KR102442921B1 (ko) 2017-12-11 2022-09-13 삼성전자주식회사 디지털 시그널 프로세서(dsp)의 태스크 관리 효율을 높일 수 있는 전자 장치
US20190196867A1 (en) * 2017-12-21 2019-06-27 Qualcomm Incorporated System and method of priority-based interrupt steering
US10783026B2 (en) 2018-02-15 2020-09-22 Honeywell International Inc. Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor
US10691490B2 (en) * 2018-07-06 2020-06-23 Apple Inc. System for scheduling threads for execution
CN109117260B (zh) * 2018-08-30 2021-01-01 百度在线网络技术(北京)有限公司 一种任务调度方法、装置、设备和介质
KR102644719B1 (ko) 2023-04-07 2024-03-08 메티스엑스 주식회사 다중 스레드의 비동기적인 실행이 가능한 매니코어 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041377A (en) * 1996-08-20 2000-03-21 Compaq Computer Corporation Method and apparatus for distributing interrupts in a scalable symmetric multiprocessor system without changing the bus width or bus protocol
CN1802635A (zh) * 2003-04-14 2006-07-12 皇家飞利浦电子股份有限公司 资源管理方法以及设备
US20060200826A1 (en) * 2005-03-01 2006-09-07 Seiko Epson Corporation Processor and information processing method

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636944A (en) * 1984-01-17 1987-01-13 Concurrent Computer Corporation Multi-level priority micro-interrupt controller
US4804348A (en) 1987-08-05 1989-02-14 Bondi Francesco Animated toy puppet theater
US5197138A (en) * 1989-12-26 1993-03-23 Digital Equipment Corporation Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
JPH04302353A (ja) * 1991-03-29 1992-10-26 Toshiba Corp 対称形マルチプロセッサ計算機のタイマ割込み方式
US5515538A (en) * 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
JPH06159941A (ja) 1992-11-24 1994-06-07 Kawasaki Steel Corp 電気炉水冷式出滓口構造
US5511200A (en) * 1993-12-01 1996-04-23 Intel Corporation Method and apparatus for providing an enhanced programmable priority interrupt controller
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6295573B1 (en) * 1999-02-16 2001-09-25 Advanced Micro Devices, Inc. Point-to-point interrupt messaging within a multiprocessing computer system
US8041754B1 (en) * 2000-01-22 2011-10-18 Intel Corporation Establishing thread priority in a processor or the like
JP4302353B2 (ja) 2002-01-25 2009-07-22 マスプロ電工株式会社 保安器
JP2005004562A (ja) 2003-06-13 2005-01-06 Canon Inc マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム
US7774585B2 (en) * 2003-11-12 2010-08-10 Infineon Technologies Ag Interrupt and trap handling in an embedded multi-thread processor to avoid priority inversion and maintain real-time operation
US7487503B2 (en) * 2004-08-12 2009-02-03 International Business Machines Corporation Scheduling threads in a multiprocessor computer
US8195922B2 (en) 2005-03-18 2012-06-05 Marvell World Trade, Ltd. System for dynamically allocating processing time to multiple threads
US7260663B2 (en) * 2005-04-07 2007-08-21 International Business Machines Corporation System and method for presenting interrupts
US7552236B2 (en) * 2005-07-14 2009-06-23 International Business Machines Corporation Routing interrupts in a multi-node system
US7702889B2 (en) * 2005-10-18 2010-04-20 Qualcomm Incorporated Shared interrupt control method and system for a digital signal processor
US7913255B2 (en) * 2005-10-20 2011-03-22 Qualcomm Incorporated Background thread processing in a multithread digital signal processor
JP4222370B2 (ja) * 2006-01-11 2009-02-12 セイコーエプソン株式会社 デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
US20070266231A1 (en) 2006-05-15 2007-11-15 Huey-Tyug Chua Portable Electronic Device and Method for Loading Resource Data of the Portable Electronic Device
US7870372B2 (en) * 2006-08-14 2011-01-11 Marvell World Trade Ltd. Interrupt handling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041377A (en) * 1996-08-20 2000-03-21 Compaq Computer Corporation Method and apparatus for distributing interrupts in a scalable symmetric multiprocessor system without changing the bus width or bus protocol
CN1802635A (zh) * 2003-04-14 2006-07-12 皇家飞利浦电子股份有限公司 资源管理方法以及设备
US20060200826A1 (en) * 2005-03-01 2006-09-07 Seiko Epson Corporation Processor and information processing method

Also Published As

Publication number Publication date
SMT201600453B (it) 2017-01-10
HRP20161316T1 (hr) 2017-02-10
CN102150135A (zh) 2011-08-10
US8656145B2 (en) 2014-02-18
KR101346135B1 (ko) 2013-12-31
EP2347334A1 (en) 2011-07-27
JP2012503254A (ja) 2012-02-02
US20100077399A1 (en) 2010-03-25
EP2347334B1 (en) 2016-09-14
WO2010033569A1 (en) 2010-03-25
JP2014179119A (ja) 2014-09-25
JP5792351B2 (ja) 2015-10-07
TW201023043A (en) 2010-06-16
KR20110081987A (ko) 2011-07-15
JP5575774B2 (ja) 2014-08-20

Similar Documents

Publication Publication Date Title
CN102150135B (zh) 用于在多线程处理器中分配中断的方法及系统
KR100746797B1 (ko) 프로세서 및 정보처리 방법
JP2012503254A5 (zh)
KR101798369B1 (ko) 휴대용 디바이스에서 동기적 태스크 디스패치를 위한 시스템 및 방법
KR100746796B1 (ko) 프로세서 및 정보처리 방법
JP5280521B2 (ja) 分岐予測における使用のためのマルチモードレジスタファイル
CN101960433B (zh) 用于高速缓冲存储器线替代的系统和方法
JP4609113B2 (ja) プロセッサ
CN116578422A (zh) 资源分配方法和电子设备
US20180262983A1 (en) Mobile terminal and working method thereof
US20110283083A1 (en) Configuring Surrogate Memory Accessing Agents Using Non-Priviledged Processes
CN111666146A (zh) 多任务并发处理方法及装置
CN112988338B (zh) 应用切换方法、装置、存储介质及电子设备
CN112673354B (zh) 一种系统状态检测方法、系统状态装置及终端设备
CN112860352A (zh) 一种应用程序的加载方法、装置、存储介质及终端
JP5017784B2 (ja) プロセッサ及びこのプロセッサ適用される割込み処理制御方法
CN113568737B (zh) 硬件资源分配方法及装置
JP4389797B2 (ja) プロセッサおよび情報処理方法
CN117149391A (zh) 线程管理方法、装置及电子设备
CN117785429A (zh) 中断信息的处理方法、装置、设备及存储介质
KR20190045001A (ko) 처리가 지연되고 있는 태스크의 처리 방법 및 이를 지원하는 전자 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant