用于数字信号处理器的共享中断控制方法及系统转让专利

申请号 : CN201410720684.2

文献号 : CN104484159B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 卢西恩·科德雷斯库威廉·C·安德森

申请人 : 高通股份有限公司

摘要 :

本发明涉及用于数字信号处理器的共享中断控制方法及系统。本发明揭示用于数字信号处理器的设计及使用的技术,其包括(但不限于)在通信(例如,CDMA)系统中处理传输。所揭示的方法及系统通过在中断寄存器中接收在统计上不确定的中断类型的多个中断且然后使多个处理线程与所述中断寄存器相关联以从所述中断寄存器接收所述中断来处理多线程处理器中出现的中断。所述方法及系统屏蔽至少一子组所述多个处理线程以在所述子组内的所述线程中的每一者内仅接收所述多个中断中的一个或一个以上预定类型的中断,从而根据与特定线程相关联的所述屏蔽在每一线程的基础上控制对所述多个中断的所述处理。

权利要求 :

1.一种用于处理多线程处理器(40)中出现的中断的方法(160),其包含以下步骤:

在中断寄存器(128)中接收(162)多个中断,所述多个中断中的每一者都对应于多个外部中断(120)中的一者,其中所述外部中断包含随机发生的通用中断,其中针对经接收的所述多个中断的每一者设定所述中断寄存器(128)的各个位以表明所述多个中断的各个中断待定;

使多个处理线程与存储在屏蔽寄存器(134)中的一个或多个屏蔽相关联(164),其中所述屏蔽允许单独地将所述多个外部中断(120)的每一者屏蔽掉,其中,如果在所述屏蔽中设定了特定位,则启用所述外部中断(120)的对应中断;

针对所述多个处理线程中的每一者,如果所述处理线程已启用中断处理且所述处理线程不是经配置以处理内部例外的例外处理程序,则通过使用所述中断寄存器(128)的内容与所述屏蔽寄存器(134)的内容的逻辑AND来确定(166,168,174)所述处理线程能够处理经接收的所述多个中断的一者;

确定(170)所述多个处理线程的至少一子组,其中确定(170)所述多个处理线程的至少一子组的所述步骤包含使用所述屏蔽以便在所述子组中的每一所述线程内部接收经启用的所述外部中断的经接收的所述多个中断的仅一者,从而根据与特定的所述线程相关联的所述屏蔽在每一线程的基础上控制对所述多个中断的处理。

2.如权利要求1所述的方法,其进一步包含在线程处理所述中断中的所述一者的情况下将所述中断的经接收的一者从所述中断寄存器(128)中清除的步骤。

3.如权利要求2所述的方法,其进一步包含在所述中断的处理期间停用处理所述中断中的所述一者的所述线程的步骤。

4.如权利要求1所述的方法,其进一步包含使用多个软件指令嵌套所述多个中断的所述处理的步骤。

5.如权利要求1所述的方法,其进一步包含随机接收所述中断中具有不可屏蔽性质的任一者以在所述多个线程中的任一者中进行处理的步骤。

6.一种用于支持个人电子装置操作的数字信号处理器(40),所述数字信号处理器(40)包括:

用于在中断寄存器(128)中接收多个中断的装置,所述多个中断中的每一者都对应于多个外部中断(120)中的一者,其中所述外部中断包含随机发生的通用中断,其中针对经接收的所述多个中断的每一者设定所述中断寄存器(128)的各个位以表明所述多个中断的各个中断待定;

用于使多个处理线程与存储在屏蔽寄存器(134)中的一个或多个屏蔽相关联的装置,其中所述屏蔽允许单独地将所述多个外部中断(120)的每一者屏蔽掉,其中,如果在所述屏蔽中设定了特定位,则启用所述外部中断(120)的对应中断;

用于针对所述多个处理线程中的每一者,如果所述处理线程已启用中断处理且所述处理线程不是经配置以处理内部例外的例外处理程序,则通过使用所述中断寄存器(128)的内容与所述屏蔽寄存器(134)的内容的逻辑AND来确定(166,168,174)所述处理线程能够处理经接收的所述多个中断的一者的装置;

用于确定(170)所述多个处理线程的至少一子组的装置,其中确定(170)所述多个处理线程的至少一子组包含使用所述屏蔽以便在所述子组中的每一所述线程内部接收经启用的所述外部中断的经接收的所述多个中断的仅一者,从而根据与特定的所述线程相关联的所述屏蔽在每一线程的基础上控制对所述多个中断的处理。

7.如权利要求6所述的数字信号处理器,其进一步包含用于在线程处理所述中断中的所接收一者的情况下将所述中断中的所述一者从所述中断寄存器清除的装置。

8.如权利要求6所述的数字信号处理器,其进一步包含用于在所述中断的处理期间停用处理所述中断中的所述一者的所述线程的装置。

9.如权利要求6所述的数字信号处理器,其进一步包含用于使用多个软件指令嵌套所述多个中断的所述处理的装置。

10.如权利要求6所述的数字信号处理器,其进一步包含用于随机接收所述中断中具有不可屏蔽性质的任一者以在所述多个线程中的任一者中进行处理的装置。

11.一种具有计算机可读程序代码的计算机可用媒介,所述计算机可读程序代码在由数字信号处理器(40)执行时致使所述数字信号处理器(40)实施权利要求1至5中的任一者的所述方法的步骤。

说明书 :

用于数字信号处理器的共享中断控制方法及系统

[0001] 分案申请
[0002] 本发明专利申请是申请日为2006年10月18日,申请号为200680046815.7,以及发明名称为“用于数字信号处理器的共享中断控制方法及系统”的发明专利申请案的分案申请。

技术领域

[0003] 所揭示的标的物涉及数据通信。更特定来说,本揭示内容涉及一种用于数字信号处理器的新颖及经改善的共享中断控制方法及系统。

背景技术

[0004] 电子装备及支持软件应用程序越来越多地涉及信号处理。家庭影院、计算机图形学、医学成像及电信均依赖信号处理技术。信号处理需要复杂但重复算法中的快速数学。许多应用需要实时计算,即信号是时间的连续函数,其必须被取样并转换为数字供数值处理。因此,处理器必须在样本到达时执行对所述样本实施离散计算的算法。数字信号处理器(DSP)的架构经优化以处置所述算法。良好的数字处理引擎的特性包括快速、灵活的算术计算单元、到达及来自所述计算单元的不受限制数据流、所述计算单元中的扩增精确度及动态范围、双重地址产生器、高效的程序定序及易于编程。
[0005] DSP技术的一种有前景应用包括通信系统,例如支持用户之间通过卫星或陆地链路进行话音及数据通信的码分多址(CDMA)系统。CDMA技术在多址通信系统中的使用揭示于标题为“使用卫星或陆地中继器的扩展频谱多址通信系统(SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS)”的第4,901,307号美国专利及标题为“用于在CDMA蜂窝式手机系统中产生波形的系统及方法(SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSET SYSTEM)”的第5,103,459号美国专利中,其两者均受让予所请求标的物的受让人。
[0006] CDMA系统通常经设计以符合一个或一个以上标准。一种所述第一代标准是“用于双模式宽带扩展频谱蜂窝式系统的TIA/EIA/IS-95终端-基站兼容性标准”,所述标准在下文中称作IS-95标准。所述IS-95 CDMA系统能够传输话音数据及包数据。可更高效地传输包数据的新一代标准是由名称为“第三代合作伙伴计划”(3GPP)的联盟提供的且体现于可公开获得的一组文件中,所述组文件包括第3G TS 25.211、3G TS 25.212、3G TS 25.213及3G TS 25.214号文件。3GPP标准在下文中称作W-CDMA标准。
[0007] 因为DSP既定用于实时系统中的操作,因此高效、精巧及可预测的中断处置对于DSP至关重要。上下文切换应非常快速。像浮点族等高级DSP支持完整组替代寄存器,从而允许上下文的单循环切换以支持中断处置。高级DSP除内部中断之外还可支持至少四个或更多个独立的外部中断。此类装置中的中断延迟可保持为仅几个循环且必须可预测。中断还应可嵌套且可优先化。此外,应容易地实时启用及停用特定中断。
[0008] 在习用DSP的情况下,中断处置在每一处理器的基础上发生,或在多线程处理器的情况下,其在每一线程的基础上发生。在某些多线程DSP中,每一处理器及每一线程中断处置两者均可能存在。遗憾的是,在每一处理器或每一线程处理的情况下,硬件设计及编程上的不必要及不需要复杂性产生。在每一处理器及每一线程处置两者的情况下,甚至可能出现更大的复杂性。
[0009] 因此,需要一种用于在多线程DSP中处理中断的方法及系统,其避免每一处理器及每一线程硬件设计及软件编程复杂性。

发明内容

[0010] 本发明揭示为数字信号处理器提供共享中断控制方法及系统的技术,所述技术改善数字信号处理器的操作及对数字信号处理器指令的高效使用两者,以处理个人计算机、个人数字助理、无线手持机及类似电子装置的越来越强健的软件应用程序,以及提高相关联的数字处理器速度及服务质量。
[0011] 根据所揭示标的物的一个方面,提供一种用于数字信号处理器的共享中断控制方法及系统,所述数字信号处理器在中断寄存器中接收在统计上不确定的中断类型的多个中断。所述方法及系统使多个处理线程与所述中断寄存器相关联以从所述中断寄存器接收所述中断。然后,屏蔽所述多个处理线程,以在所述线程中的每一者内仅接收所述多个中断中的一个或一个以上预定类型的中断,从而根据与特定线程相关联的屏蔽在每一线程的基础上控制对所述多个中断的处理。
[0012] 根据所揭示标的物的另一方面,提供一种用于在服务多个线程的数字信号处理器中处理外部中断的方法及系统,所述方法及系统包括使中断控制器与多个处理器管线线程相关联。所述过程进一步在所述中断控制器中接收第一外部中断,所述第一外部中断是任意类型。然后,所述过程使第一屏蔽与所述第一外部中断相关联以启用一组所述多个处理器管线线程来接受所述第一外部中断。然后,所揭示的标的物将所述第一外部中断引导到能够接受所述第一外部中断及所述第一屏蔽的第一可用处理器管线线程。然后,所述方法及系统允许在所述中断控制器中接收第二外部中断。所述第二外部中断可以是任意类型且使第二屏蔽与所述第二外部中断相关联以启用一组所述多个处理器管线线程来接受所述第二外部中断。将所述第二外部中断引导到能够接受所述第二外部中断及所述第二屏蔽的下一可用处理器管线线程。此过程可重复且所揭示的系统准许在外部中断串流到达所述中断控制器供所述数字信号处理器进行处理时重复所述接收步骤、所述关联步骤及所述引导步骤,从而向所述组的所述多个处理器管线线程中的每一者提供呈分布流形式的任意外部中断及关联屏蔽的流。
[0013] 从本文所提供的说明将明了所揭示标的物的这些及其它优点以及额外新颖特征。此发明内容的目的并非是对所请求标的物的全面说明,而是提供对本标的物的功能性的简短概述。在检查以下图式及详细说明之后,所属领域的技术人员将明了本文所提供的其它系统、方法、特征及优点。所有所述额外系统、方法、特征及优点既定包括在此说明中,且在随附权利要求书的范围内。

附图说明

[0014] 结合图式阅读下文所述的详细说明,将更加明了所揭示标的物的特征、性质及优点,所有图式中相同的参考字符对应地进行标识,图式中:
[0015] 图1是可实施本实施例的通信系统的简化方块图;
[0016] 图2图解说明用于实施本实施例的教示的DSP架构;
[0017] 图3提供数字信号处理器的一个实施例的架构方块图,所述数字信号处理器提供所揭示标的物的技术优点;
[0018] 图4提供本揭示内容的事件处置的功能性方块图;
[0019] 图5显示用于所揭示标的物的屏蔽寄存器格式;
[0020] 图6提供用于所揭示标的物的待定中断寄存器格式;
[0021] 图7提供图解说明所揭示标的物的某些新颖功能的简化流程图。

具体实施方式

[0022] 实施例
[0023] 所揭示的标的物是用于数字信号处理器的共享中断控制方法及系统,所述方法及系统实际上应用于涉及本文所呈现益处可能对其有利的任何类型的多线程处理的数字信号处理应用。一种所述应用出现在电信中,且特定来说出现在采用一个或一个以上数字信号处理电路的无线手持机中。出于解释此种无线手持机如何使用的目的,图1提供通信系统10的简化方块图,所述系统可实施所揭示中断处理方法及系统的所提供实施例。在传输器单元12处,通常以块为单位将数据从数据源14发送到传输(TX)数据处理器16,所述传输数据处理器将所述数据格式化、编码及处理以产生一个或一个以上模拟信号。然后,将模拟信号提供到传输器(TMTR)18,所述传输器将所述基带信号调制、滤波、放大及上变频以产生经调制的信号。然后,经由天线20将所述经调制的信号传输到一个或一个以上接收器单元。
[0024] 在接收器单元22处,所传输的信号由天线24接收并提供到接收器(RCVR)26。在接收器26内,将所述所接收的信号放大、滤波、下变频、解调制及数字化以产生同相(I)及(Q)样本。然后,所述样本由接收(RX)数据处理器28解码及处理以恢复所传输的数据。接收器单元22处的解码及处理是以与传输器单元12处实施的编码及处理兼容的方式实施的。然后,将已恢复的数据提供到数据汇30。
[0025] 上述信号处理支持话音、视频、包数据的传输、消息传送及其它类型的单向通信。双向通信系统支持双向数据传输。然而,为简明起见图1中而未显示其它方向的信号处理。
通信系统10可以是码分多址(CDMA)系统、时分多址(TDMA)通信系统(例如,GSM系统)、频分多址(FDMA)通信系统或支持用户之间通过陆地链路进行话音及数据通信的其它多址通信系统。在具体实施例中,通信系统10是符合W-CDMA标准的CDMA系统。
[0026] 图2图解说明可充当图1的传输数据处理器16及接收数据处理器28的DSP 40架构。再次,强调DSP 40仅表示可高效地使用本文所提供教示及概念的大量可行数字信号处理器实施例中的一个实施例。因此,在DSP 40中,线程T0:T5(参考编号42至52)含有来自不同线程的指令集。电路54表示指令存取机构且用于提取线程T0:T5的指令。电路54的指令排入指令队列56中。指令队列56中的指令准备发布到处理器管线66中(见下文)。发布逻辑电路58可从指令队列56中选择单个线程,例如线程T0。读取所选线程的寄存器堆60并将所读取的数据发送到槽0至槽3的执行数据路径62。在此实例中,槽0至槽3提供用于本实施例中的包分组组合。
[0027] 来自执行数据路径62的输出去往寄存器堆写入电路64,还经配置以适应个别线程T0:T5,以返回DSP 40的操作的结果。因此,从电路54开始且在到达寄存器堆写入电路64之前根据各个线程来划分的数据路径形成处理管线66。
[0028] 本实施例可采用使用具有多达六个线程T0至T5的单个微处理器的异构元素处理器(HEP)系统的混合。处理器管线66具有六个级,以匹配从电路54将数据项目提取到寄存器60及64所需要的最小数量的处理器循环。DSP 40在处理器管线66内同时执行不同线程T0:
T5的指令。也就是说,DSP 40提供6个独立的程序计数器、用于区别处理器管线66内线程T0:
T5的指令的内部标记机构及触发线程切换的机构。线程切换开销从零到仅几个循环而变化。
[0029] 因此,DSP 40提供设计用于在各种各样的信号、图像及视频处理应用上具有高性能及低功率的通用数字信号处理器。图3提供DSP 40架构的简要概述,其包括所揭示标的物的一个表现形式的相关联指令集架构的某些方面。DSP 40架构的实施方案支持交错多线程(IMT)。在此执行模型中,硬件通过交错来自管线中的不同线程的指令来支持多个硬件线程T0:T5的同时执行。此特性允许DSP 40包括主动的时钟频率,同时仍维持高的核心及存储器利用率。IMT在不需要昂贵的补偿机构(例如,无序执行、广泛转发网络等)的前提下提供高通量。此外,DSP 40可包括IMT的变化形式,例如M.Ahmed等人在标题为“可变交错的多线程处理器方法及系统(Variable Interleaved Multithreaded Processor Method and System)”及“用于在多线程处理器中进行可变线程分配及切换的方法及系统(Method and System for Variable Thread Allocation and Switchine in a Multithreaded Processor)”的共同转让的美国专利申请案中揭示的那些变化形式及新颖方法。
[0030] 特定来说,图3提供单个线程的编程模型的一个实施例的架构方块图,其可采用所揭示标的物的教示,包括用于数字信号处理器的共享中断控制方法及系统。方块图70描绘从AXI总线74接收指令的专用指令高速缓存器72,所述指令包括到达线程T0:T5的定序器76、用户控制寄存器78及管理控制寄存器80的混杂16位及32位指令。定序器76向S-管线单元82、M-管线单元84、Ld-管线86及Ld/St-管线单元88提供混合双向超标量体系结构指令及四向VLIW指令。AXI总线74还通过共享数据高速缓存器90将LD/ST指令传递到线程T0:T5。借助外部DMA主装置96,共享数据TCM 98传递LD/ST指令,所述LD/ST指令进一步流到线程T0:
T5。MSM专有控制器102从AHB外围设备总线100与T0:T5传递中断引脚,包括中断控制器指令、调试指令及定时指令。全局控制寄存器104与线程T0:T5传递控制寄存器指令。
[0031] 图4提供本揭示内容的事件处置的功能性方块图。在事件处理程序架构110中,MSM专有块112包括中断控制器块114、调试及性能监视器块116及定时器块118。MSM专有块110向全局控制寄存器122提供十六(16)个通用中断120且向事件处置寄存器126提供不可屏蔽的中断(NMI)124。全局控制寄存器122包括IPEND寄存器128、向量基寄存器130、模式控制寄存器132。16个中断类型129可从IPEND寄存器128去往事件处置寄存器126。向量基寄存器130可向事件处置寄存器126发送20个中断131,而模式控制寄存器132可向事件处置寄存器
126提供1x6个重置中断133。
[0032] 事件处置寄存器126包括中断屏蔽(MASK)寄存器134,其向过程事件寄存器136提供屏蔽数据。过程事件寄存器136还接收内部例外请求,包括TLB未命中、错误及陷阱指令请求。来自全局控制寄存器122的通信与通用指令寄存器(R0-R31)90及管理控制寄存器80发生。
[0033] 因此,使用所揭示标的物的中断处理包括三种类型的外部指令,其包括软重置中断133、通用可屏蔽中断120、129及131以及不可屏蔽中断124。有16个可屏蔽通用中断在所有所述线程之间共享。当所述16个通用中断120中的一者升起时,设定全局IPEND寄存器128中的对应位以表明此中断待定。线程通过将所述全局IPEND寄存器与所述本地IMASK寄存器逻辑AND来确定其是否能够处理中断。
[0034] 如果线程T0:T5(a)已使中断启用(IE=1)且(b)未在例外处理程序中(EX=0),且(c)(IPEND & IMASK)的结果为非零,那么所述线程可处理中断。然后,所述线程将有资格处理所述中断。在一个以上中断待定的情况下,所述优先级为中断0(最高优先级)到中断15(最低优先级)。当全局中断到来且在IPEND中标记时,所述六个硬件线程中的任一者可潜在地服务所述中断。所述有资格进行所述中断的硬件线程组中的仅一者将处理所述中断。
[0035] 所揭示标的物的重要方面受益于所述有资格线程及可屏蔽中断的随机性。即,无法确定所述有资格线程中的哪一者将服务所述中断,因为所述过程及任何既定类型的中断的到达是随机的。所述硬件将从所述有资格组选择线程,所述线程将被中断,且所述中断随后将被从IPEND寄存器128中清除,使得将无其它线程服务所述中断。
[0036] 所述软件可通过适当的IMASK寄存器134编程将特定中断引导到特定的硬件线程。举例来说,如果仅硬件线程T1:T5具有用于中断6组的MASK位,那么仅硬件线程T1:T5可接收所述中断。当中断由线程接受时,所述机器将首先清除IPEND寄存器128中的适当位。然后,将针对所选择的线程停用中断,将设定所述例外位以表明所述线程现在处于管理模式,SSR中的原因字段将填充有中断编号,且所述机器将跳到所述适当的中断服务例行程序。
[0037] 图5的一个实施例显示用于所揭示标的物的屏蔽寄存器格式140,其包括用于含有所述特定屏蔽的IMASK位0到15。可为本实施例保留位16到31,同时准许所述建立。因此,屏蔽寄存器140含有所述屏蔽的16个位的读取/写入字段142,从而允许软件单独地将所述16个外部中断120中的每一者从中断控制器114屏蔽掉。如果设定屏蔽字段142中的特定位,那么所述16个外部中断120的对应中断启用且将被此线程接受。另一选择为,如果所述位被清除,那么所述对应中断将不被接受。
[0038] 图6提供所揭示标的物的一个实施例的IPEND寄存器格式150的实例。特定来说,IPEND寄存器格式150包括所保留的字段152(其可在稍后的版本中加以填充)及IPEND寄存器位字段154(其含有通用中断类型位)。在IPEND寄存器位字段154中,位0采取指示最高优先级中断类型的1值。最低优先级中断类型可由采取值1的位15指示。可存在用于指示不同通用中断类型的其它方式,所有所述方式与所主张标的物的教示相一致。
[0039] 图7提供用于图解说明所揭示标的物在确定特定线程T0:T5可处理既定中断类型的某些新颖功能的流程图160。流程图160以步骤162开始,在此点处中断控制器1 14向通用控制寄存器122的IPEND寄存器128提供至少一子组的16个通用中断类型120。在步骤164处,IMASK寄存器134可存储用于与DSP 40的各个线程T0:T5相关联的一个或一个以上屏蔽。因此,在IPEND含有一个或一个以上通用中断类型120且IMASK寄存器134潜在地存储对应的屏蔽的情况下,流程图160在询问166处首先确定是否针对特定的线程启用线程中断处理。然后,在询问168处,所述过程确定所述特定线程并非作为例外处理程序操作。在询问170处,在进行IPEND寄存器128与IMASK寄存器134的逻辑AND之后,所述结果是否为非零的测试发生,从而确定IPEND寄存器128与IMASK寄存器134内容之间的匹配。如果非零结果发生,那么所述流程继续到步骤172,在此处所述特定线程处理对应于所述特定屏蔽的中断。如果询问166、168或170中的任一者的测试失败,那么处理去往步骤174,在此处过程流程160确定所述线程不能处理正被检查的中断。
[0040] 用于实施所揭示标的物的共享中断处置功能的一个实施例的实例性伪码可如本文所提供。用于服务中断的硬件行为图解说明于以下伪码中:
[0041] //start can be any random#0-5
[0042] //loop over all threads
[0043] for(thread=NEXT(start);thread!=start;thread=NEXT(thread);){[0044] //loop over all the interrupts in priority order
[0045] for(IntNum=0;IntNum<16;IntNum++){
[0046] //if the thread is qualified for this interrupt
[0047] if((IPEND[IntNum]&IMASK[thread][IntNum])&& IE[thread])
[0048] {
[0049] //take the interrupt
[0050] IPEND[IntNum]=0;//the Interrupt is serviced
[0051] EX[Thread]=1;//put thread in supervisor mode
[0052] ELR[Thread]=PC;//save return PC
[0053] SSR[Thread].CAUSE=IntNum;
[0054] PC[Thread]=(EVB)|((IntNum+16)<<2)//jump to ISR
[0055] return;//done for this cycle
[0056] }
[0057] }
[0058] }
[0059] 本实施例可能不支持DSP 40硬件中的中断的自动嵌套。然而,可通过在接收中断之后首先将所有相关信息保存到管理堆栈而在软件控制下实施嵌套。然后,所述过程可重新启用中断,实施所述相关ISR任务,然后停用中断,回复到上下文,且返回。所述过程的实例可用于以下:
[0060] ISR_w_nesting:
[0061] CRSWAP(R29,SGPR0)//swap user stack pointer and supervisor stack[0062] ALLOCFRAME(#32)//saves FP,LR,sets FP,adds to SP
[0063] MEMD(SP+#0)=R1:0//save some user registers on supervisor stack[0064] R0=ELR
[0065] R1=SSR
[0066] MEMD(SP+#8)=R1:0//save SSR:ELR on supervisor stack
[0067] CRSWAP(P29,SGPR0)//swap back user and supervisor stack pointers[0068] //at this point all context is saved on the supervisor stack[0069] //and SGPR0 is the adjusted supervisor stack pointer.
[0070] R0=#0x4 //100b
[0071] R1=insert(r1,#3,#16)//set UM=0,EX=0,IE=1
[0072] SSR=R1//now in supervisor mode,interrupts enabled
[0073] ..//do ISR task//....
[0074] //now,we want to restore and return
[0075] DI//disable interrupts
[0076] CRSWAP(R29,SGPR0)//swap user stack pointer and supervisor stack[0077] R1:0=MEMD(SP+#8)//restore SSR:ELR
[0078] ELR=R0
[0079] SSR=R1
[0080] R1:0=MEMD(SP+#0)//restore user R1:0
[0081] DEALLOCFRAME
[0082] CRSWAP(R29,SGPR0)//swap back user and supervisor stack pointers[0083] RTE //return from exeeption,sets EX=0
[0084] 软件中断指令(SWI)致使规定的中断被投寄于IPEND寄存器128中。此指令的目的是允许线程彼此中断。当一个线程执行SWI指令时,其通过正常的外部中断机构处理。将响应于所述SWI指令而中断来自所述有资格线程组的随机硬件线程。此指令可用于构建软件抽象,例如分叉()(fork())、合并()(join())等。
[0085] 所述软重置中断是不可屏蔽的且在每一线程的基础上操作。所述六个线程中的每一者均存在一个重置中断输入。所述子系统中断控制器可单独地重置线程。用于将软重置中断触发到特定线程的准确方法是中断控制器专有的,然而,一种导致软重置例外的方式是调用从关闭(OFF)模式到管理模式上的转换。在接收到所述不可屏蔽的软重置中断之后,所述线程将清理所述SSR寄存器,且跳到所述重置向量。
[0086] 在不可屏蔽中断(NMI)124的情况下,事件处置电路110可随机选择所述六个线程T0:T5中的一者且将NMI 124输送到所述线程。然后,所选择的线程将实施以下动作:
[0087] ELR=PC//save PC in the exception link register
[0088] SSR[EX]=1//set exception bit in SSR
[0089] SSR[CAUSE]=#NMI//set reason to NMI
[0090] PC=(EVB)|(1<<2)
[0091] 注意不应将任一NMI 124视为可恢复的中断。如果线程T0:T5在事件处理程序内部且NMI 124发生,那么ELR及CAUSE寄存器将被重写,从而不可能返回到所述原始中断或导致例外的码。
[0092] 本文所述的处理特征及功能可以各种方式实施。举例来说,不仅DSP 40可实施上述操作,而且本实施例可实施于专用集成电路(ASIC)、微控制器、微处理器或设计用于实施本文所述功能的其它电子电路中。因此,提供对优选实施例的以上说明旨在使所属技术领域的技术人员能够制造或使用所请求的标的物。所属技术领域的技术人员将易于了明了对这些实施例的各种修改,且本文所界定的一般原理可在不使用创新能力的情况下适用于其它实施例。因此,本文并非打算将所请求标的物限定为本文显示的实施例,而是将赋予其与本文所揭示的原理及新颖特征相一致的最宽广范围。