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

文档序号:6594761阅读:205来源:国知局
专利名称:用于在多线程处理器中分配中断的方法及系统的制作方法
技术领域
本文中所揭示的发明性概念的实施例大体上涉及数据处理系统的领域。更明确地 说,本文中所揭示的发明性概念的实施例涉及在多线程处理器中分配中断。
背景技术
多线程处理器可包括两个或两个以上线程以增加任务可被处理的速度。线程可为 任务在其上被处理的硬件。任务可为与系统功能(例如,应用程序或程序)相关联的指令 序列。一些应用程序或程序可同时与两个或两个以上任务相关联。线程可通过执行与任务 相关联的指令序列而处理或执行所述任务。一个线程可在另一线程处理另一任务的同时处理一个任务。处理阶段可包括提取 (以获得与任务相关联的指令)、解码(以将指令分解为操作及操作数)、从寄存器文件检索 操作数、执行所述指令及写回结果。可针对任务中的下一指令重复所述过程,直到任务的所 有指令均被执行为止。每一任务可与优先级相关联且基于所述优先级而指派给线程。举例 来说,软件可将优先级指派给每一任务,且调度器可确定具有最高优先级的下一任务以提 供准备好处理任务的线程。线程还可能够处理中断。中断可为与来自系统装置或由软件产生的中断处理程序 相关联的通知。中断处理程序可为作为未调度任务的例程。当接收到中断时,可由多线程处 理器的任何线程处理所述中断。举例来说,可在提取阶段处将所述中断处理程序提供给第 一线程,而不管所述线程当前是否正处理任务的指令或其它线程是否处于等待模式(即, 不在处理任何任务)。处理所述中断包括线程停止对任务的指令的处理且处理与中断处理 程序相关联的指令序列。停止处理其当前任务以处理中断的线程可例如通过处理高优先级任务而为高优 先级线程。如果一个或一个以上线程处于等待模式或处理低优先级的线程可用以处理中 断,则需要高优先级线程继续处理高优先级任务且不针对中断来停止其处理。因此,需要用于多线程处理器的系统及过程,其可分配中断以减少来自当其它线 程可用以处理中断时在高优先级线程上执行中断的开销。

发明内容
在一实施例中,描述一种多线程处理器。所述多线程处理器包括中断模块及用于 执行任务的线程。每一线程可执行任务。所述中断模块可识别所述线程中的每一者的优先 级且至少基于其优先级而将中断指派给所述线程中的一者。提及此说明性实施例不是为了限制或定义本文中所揭示的发明性概念,而是为了 提供实例以帮助理解所述发明性概念。在审阅完整申请案之后,本发明的其它方面、优点及 特征将变得显而易见,完整申请案包括以下部分


具体实施方式
及权利要求书。

在参考附图阅读以下具体实施方式
时,可较好地理解本文中所揭示的发明性概念 的这些及其它特征、方面及优点,在附图中图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。在特定实施例中,电源5M耦合到芯片上系统502。显示器508、输入装置510、扬声器 516、麦克风518、无线天线522及电源5 可在所述芯片上系统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。存储器拟4及订户身份 模块(SIM)卡626也可耦合到所述数字基带处理器604。另外,如图6的总图所示,数码相 机6 可耦合到所述数字基带处理器604。在示范性实施例中,所述数码相机6 为电荷耦 合装置(CCD)相机或互补金属氧化物半导体(CM0Q相机。如图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。小键盘肪4可耦合到所述 模拟基带处理器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。放大器7M可耦合到所述语音编 解码器722,且单声道扬声器7 可耦合到所述放大器724。图7的总图进一步说明耦合到 所述语音编解码器722的单声道头戴耳机728。在特定实施例中,所述单声道头戴耳机7 包括麦克风。无线局域网络(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)SOO的示范性实施例的图。如图所示,所述 PDA800包括包含数字信号处理器(DSP) 804的芯片上系统802。触摸屏控制器806及显示 控制器808耦合到所述DSP 804。另外,触摸屏显示器810耦合到所述触摸屏控制器806且 耦合到所述显示控制器808。图8的总图还指示小键盘812可耦合到所述DSP 804。在特定实施例中,立体声音频编解码器拟6可耦合到所述DSP 804。第一立体声放 大器拟8可耦合到所述立体声音频编解码器拟6且第一立体声扬声器830可耦合到所述第 一立体声放大器828。另外,麦克风放大器832可耦合到所述立体声音频编解码器拟6且麦 克风834可耦合到所述麦克风放大器832。图8的总图进一步展示可耦合到所述立体声音 频编解码器拟6的第二立体声放大器836及可耦合到所述第二立体声放大器836的第二立 体声扬声器838。在特定实施例中,立体声头戴受话器840也可耦合到所述立体声音频编解 码器拟6。图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为液晶显示器(IXD)。小键盘910可耦合到所述DSP904。如图9的总图中进一步描绘,快闪存储器912及只读存储器(R0M)914可耦合到所 述DSP 904。另外,在特定实施例中,音频编解码器916可耦合到所述DSP 904。放大器918 可耦合到所述音频编解码器916,且单声道扬声器920可耦合到所述放大器918。图9的总 图进一步指示麦克风输入922及立体声输入拟4也可耦合到所述音频编解码器916。在特 定实施例中,立体声头戴受话器拟6也可耦合到所述音频编解码器916。USB端口拟8及智能卡930可耦合到所述DSP 904。另外,电源932可耦合到所述 芯片上系统902且可将电力提供给所述音频文件播放器900的各种组件。如图9的总图中所指示,显示器908、小键盘910、单声道扬声器920、麦克风输入 922、立体声输入924、立体声头戴受话器拟6、USB端口拟8及电源932在芯片上系统902的外部且耦合到芯片上系统902上的一个或一个以上组件。在特定实施例中,DSP904包括处 理器单元962(如参考图2或图3所描述),所述处理器单元962可将中断分配给线程且减 少开销(例如,由中断处理引起的等待时间)且/或允许较早执行高优先级任务。举例来 说,DSP 904可为多线程处理器,其中可基于线程正在处理的任务的优先级而向每一线程指 派优先级。处理器单元962可接收中断且基于每一线程(例如,不在处理任务的线程或低 优先级线程)的优先级而确定将所述中断发送到其以进行处理的线程。^M本文中所揭示的发明性概念的实施例的前述描述已仅出于说明及描述的目的而 呈现,且不希望为详尽的或将本文中所揭示的发明性概念限于所揭示的精确形式。在不脱 离本文中所揭示的发明性概念的精神及范围的情况下,所属领域的技术人员容易明白众多 修改及改编。
权利要求
1.一种多线程处理器,其包含多个线程,所述多个线程中的每一者能够执行任务;及中断模块,其经配置以识别所述多个线程中的每一者的优先级且至少基于所述多个线 程中的一者的所述优先级而将中断指派给所述多个线程中的所述一者。
2.根据权利要求1所述的多线程处理器,其中线程的所述优先级对应于正由所述线程 执行的任务的优先级。
3.根据权利要求1所述的多线程处理器,其进一步包含多个寄存器,所述多个寄存器中的每一者对应于所述多个线程中的一者,所述多个寄 存器经配置以存储线程优先级;及优先级编码器,其耦合到所述多个寄存器,所述优先级编码器经配置以向所述中断模 块识别所述多个线程中的具有最低优先级的一者。
4.根据权利要求3所述的多线程处理器,其中所述中断模块经配置以通过将所述中断 分配给所述多个线程中的所述具有所述最低优先级的一者来将所述中断指派给所述多个 线程中的所述具有所述最低优先级的一者,其中所述多个线程中的所述具有所述最低优先 级的一者经配置以停止处理任务且处理所述中断。
5.根据权利要求4所述的多线程处理器,其中所述中断与中断处理程序相关联;且其 中所述多个线程中的所述具有所述最低优先级的一者经配置以通过处理所述中断处理程 序来处理所述中断。
6.根据权利要求1所述的多线程处理器,其中所述中断模块经配置以通过确定所述多 个线程中的一者或一者以上是否处于等待模式且确定所述多个线程中的所述处于等待模 式的一者或一者以上中的每一者的最低优先级来识别所述多个线程中的每一者的所述优 先级;且其中所述中断模块经配置以将所述中断指派给所述多个线程中的具有所述最低优先级的一者。
7.根据权利要求1所述的多线程处理器,其中所述中断模块经配置以基于所述多个线 程的所述优先级而识别所述多个线程中的处于等待模式的一者且将所述中断指派给所述 多个线程中的所述处于等待模式的一者。
8.根据权利要求1所述的多线程处理器,其中所述多线程处理器安置于便携式通信装 置中。
9.一种方法,其包含在第一线程上执行第一任务;在第二线程上执行第二任务;基于所述第一任务的优先级而确定所述第一线程的第一优先级;基于所述第二任务的优先级而确定所述第二线程的第二优先级;接收具有中断优先级的中断;及基于所述中断优先级、第一优先级及第二优先级而分配所述中断。
10.根据权利要求9所述的方法,其进一步包含识别处于等待模式的第三线程;且其中分配所述中断是基于所述第三线程处于等待模式,且包含将所述中断指派给所述第三线程。
11.根据权利要求9所述的方法,其中分配所述中断包含 确定所述第一优先级高于所述第二优先级;停止所述第二任务;及将所述中断提供给所述第二线程以进行处理。
12.根据权利要求11所述的方法,其中分配所述中断包含 确定所述中断优先级高于所述第二优先级。
13.根据权利要求11所述的方法,其进一步包含由所述第二线程通过处理与所述中断相关联的中断处理程序来处理所述中断。
14.根据权利要求9所述的方法,其中分配所述中断包含确定所述中断优先级低于所述第一优先级及所述第二优先级;及 将所述中断分配给队列。
15.一种处理器单元,其包含 执行模块,其包含第一线程,其经配置以执行与第一优先级相关联的第一任务; 第一寄存器,其经配置以存储对应于所述第一优先级的第一线程优先级; 第二线程,其经配置以执行与第二优先级相关联的第二任务;及 第二寄存器,其经配置以存储对应于所述第二优先级的第二线程优先级;及 中断模块,其经配置以接收中断且部分地基于所述第一线程优先级及所述第二优先级 而确定所述中断的分配。
16.根据权利要求15所述的处理器单元,其中所述中断模块经配置以 确定中断优先级高于所述第一线程优先级;及通过将所述中断提供给所述第一线程而将所述中断分配给所述第一线程, 其中所述第一线程经配置以停止处理所述第一任务且处理所述中断。
17.根据权利要求16所述的处理器单元,其中所述执行模块经配置以存储所述第一任 务且修改所述第一优先级以使其对应于所述中断优先级。
18.根据权利要求16所述的处理器单元,其中所述第一线程通过处理与所述中断相关 联的中断处理程序来处理所述中断。
19.根据权利要求15所述的处理器单元,其中所述执行模块包含配置成处于等待模式 的第三线程及经配置以存储指示所述等待模式的第三线程优先级的第三寄存器;且其中所述中断模块经配置以基于所述第三优先级而将所述中断分配给所述第三线程。
20.根据权利要求15所述的处理器单元,其中所述处理器单元安置于便携式通信装置中。
全文摘要
本发明描述一种能够分配中断的多线程处理器。在一个实施例中,所述多线程处理器包括中断模块及用于执行任务的线程。所述中断模块可基于正由所述线程执行的任务的任务优先级而识别每一线程的优先级,且至少基于其优先级而将中断指派给线程。
文档编号G06F9/48GK102150135SQ200980135727
公开日2011年8月10日 申请日期2009年9月16日 优先权日2008年9月19日
发明者卢奇安·科德雷斯库, 埃里克·詹姆斯·普隆迪克 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1