CN100351825C - 带有优先中断控制器的移动通信设备 - Google Patents

带有优先中断控制器的移动通信设备 Download PDF

Info

Publication number
CN100351825C
CN100351825C CNB028120817A CN02812081A CN100351825C CN 100351825 C CN100351825 C CN 100351825C CN B028120817 A CNB028120817 A CN B028120817A CN 02812081 A CN02812081 A CN 02812081A CN 100351825 C CN100351825 C CN 100351825C
Authority
CN
China
Prior art keywords
interrupt
interrupt request
microprocessor
priority
request
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.)
Expired - Fee Related
Application number
CNB028120817A
Other languages
English (en)
Other versions
CN1516838A (zh
Inventor
S·卡恩
N·K·于
H·潘
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 CN1516838A publication Critical patent/CN1516838A/zh
Application granted granted Critical
Publication of CN100351825C publication Critical patent/CN100351825C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

提供用于移动通信设备内带有中断控制器的微处理器系统。外围处理单元产生中断请求以发送到微处理器。微处理器有通过中断当前处理并实现与中断请求相关的中断服务程序而响应中断请求的元件。中断控制器从外围处理单元接收到达微处理器的中断请求,并为微处理器对中断请求优先级化。通过提供中断控制器以为微处理器对中断请求优先级化,微处理器因此不需要为对中断请求信号优先级化而花费许多内部资源。

Description

带有优先中断控制器的移动通信设备
                           本发明背景
发明领域
本发明涉及移动通信设备诸如用于码分多址(CDMA)无线系统的无线电话特别涉及其中使用的微处理系统。
相关技术描述
CDMA是处理语音或数据通信的无线通信系统。简单地说,CDMA内,数字化的语音或数据信号被分为不连续分组并一起发射以获得总体最优传输带宽。在接收时,分组经重组并转换回语音或数据信号。为CDMA传输准备声音或数据信号,无线电话包括多种专用硬件元件以实现CDMA专用功能。例子包括数字信号处理器(DSP)声码器用于数字化语音信号,编码器用于对信号编码用于差错检测以及纠正,交织器用于对经编码信号的部分实现交织以获得信号发送时间分集而因此减少传输功率要求,以及调制器用于调制经交织信号以接着通过无线电天线传输。为将接收到的CDMA信号转换回语音或数据信号,无线电话包括其它专用的CDMA硬件组件诸如CDMA解调器以对接收到的无线电信号解调,解交织器用于解交织以及CDMA解码器用于将经解码的信号解码以抽取语音或数据信号。
在无线电话内,各种CDMA接收和发射组件是中央微处理器控制的外围组件。为实现它们的各种功能,外围组件一般必须要微处理器为它们实现操作,诸如将数据从中央存储器系统转移到外围设备。如果这样,外围组件将中断请求信号发送到微处理器指明微处理器要替外围设备实现的特定操作。响应中断请求,微处理器挂起当前微处理器操作并检取执行与特定中断请求相关的预存储的中断服务程序。在数据获取中断请求情况下,中断服务程序准备并发送合适的存储器访问信号到存储器系统以获得被请求的数据并将数据转发到发出中断请求的外围设备。一般,存储不同的中断服务程序用于每个不同的可能由微处理器处理的中断请求。
微处理器周期性地扫描多个中断请求线以检测外围元件发出的中断请求。多个中断请求可能在同一时间在中断线上由微处理器接收到。因此,微处理器包括内部元件以对请求作优先级排定。微处理器首先通过获取并执行与此相关的中断服务而处理最高优先级的中断信号。如果这时接收到有更高优先级的中断请求,则微处理器中断先前的中断请求处理以响应新的更高优先级的请求。当微处理器接收到多个中断请求时,多种中断服务可能需要“嵌套”在微处理器内以等待所有中断请求最终被处理。因此,微处理器不仅要优先级化同时收到的中断请求信号,还要将新收到的中断请求信号的相对优先级与先前收到的中断请求信号的相对优先级相比。在最新无线电话技术中,其中多个外围设备进发操作,在每个时钟周期内微处理器可能接收到许多中断请求信号,因此,微处理器可能需要很多的资源以处理信号的优先级化。可能需要提供复杂的软件和硬件,且与设计、测试和调试硬件和软件相关的费用可能增加无线电话的总体费用。而且,对安装了微处理器的整个系统的改变,诸如改变系统内的中断请求的整体优先级方案,可能需要修改微处理器的中断请求优先级部分,更增加了系统的设计、调试以及测试费用。而且,如果需要微处理器实现复杂的优先级协议,可能会在中断请求信号的接收和对应的中断服务程序执行间产生较大的延时。结果是会降低总体系统性能。为了补偿,能增加微处理器的时钟速度,但同时会增加功耗,这在移动无线电话内时特别不期望看到的。
在许多传统的包括内部中断请求优先级化的硬件或软件的微处理器内的另一问题是可能需要相当多的微处理器资源以处理多种嵌套的中断服务程序,特别当中断请求信号一个接着一个被接收情况下。简单地说,当接收到有高优先级的新中断请求信号时,与微处理器的当前处理过程相关的“环境”存储在环境存储寄存器内。在完全处理了新中断请求后,微处理器恢复存储环境并继续处理先前的中断请求。恢复与先前中断服务程序相关的环境的过程称为“跳转”操作。然而,在带有生成多个中断请求的多个外围元件的系统状态内,微处理器可能立即接收高优先权的中断请求。结果是,在刚将资源分配给与较低优先级请求相关的恢复环境后,微处理器必须立即重新保存环境并响应新的中断请求。所以,大量的处理时间或导致与新接收到的中断请求相关的中断服务程序的更长延时或要求微处理器进一步增加时钟速度。因此,会影响整个系统的效率或无线电话的总体功耗。
但是,另外一个与许多提供内部中断请求优先级化的软件或硬件的传统微处理器相关的问题是,为尽可能地节省功率,微处理器经常需要切换到电源关闭模式,在该模式下,微处理器功耗减少或没有功耗。然而,在接收到任何新的中断请求时,微处理器必须加电以确定中断请求的优先级然后确定中断请求需要立即经处理或是否微处理器能回到电源关闭模式并稍后处理中断请求。因此,即使没有足够高的优先级以正当加电微处理器的中断请求也会导致对微处理器加电,至少加电足够长时间以访问接收到的中断请求的优先级。因此,不能进一步节省功耗。
相应地,期望能提供一种经改善的基于微处理器的系统以用于无线电话或其它移动通信设备,能提供处理中断请求经改善的系统和方法,且特别是省去微处理器要内部优先级化中断请求的必要。本发明的发明主要是要满足这些需要。
                      本发明概述
根据本发明的一方面,中断控制器用于移动通信设备的微处理器系统内。外围处理单元产生中断请求以发送到微处理器。微处理器有用于通过中断当前处理并实现与中断请求相关的中断服务程序而响应中断请求的元件。中断控制器接收从外围处理单元到微处理器的中断请求并为微处理器对中断请求优先级化。
通过提供中断控制器以为微处理器优先级化中断请求,微处理器因此不需要将许多内部资源分配给对中断请求信号优先级化。相应地,取决于特定的实现,可能在微处理器内获得或是增强效率或是增强功率节省。而且,由于减少了省去了微处理器内部对中断请求信号优先级化的需要,微处理器的硬件和软件可以根据特定实现而被简化,因此减少了相关的设计、调试以及测试费用并减少了在微处理器所在的整个系统的中断请求结构改变时要修改微处理器的必要。
在示范实施例中,中断控制器包括中断资源接口单元以接收从外围处理单元到微处理器的请求。中断优先级化单元从接收到的中断请求中标识出有最高优先级的中断请求。微处理器通知单元通知微处理器关于最高优先级的中断请求。中断通知单元包括中断分级单元以存储最高优先级的中断请求;以及中断传输单元以将通知信号发射到微处理器指明新的中断请求存储在中断分级单元内。例如中断分级单元是中断向量寄存器且通知信号是IRQ信号。
在示范实施例中,微处理器包括中断通知信号接收单元和中断访问单元以读取中断分级单元内存储的新中断请求。环境存储单元存储微处理器的当前环境。中断堆栈控制器确定是否正在执行当前的中断服务程序,如果是,则将与此相关的中断请求存储在中断堆栈内。中断服务程序执行单元获取并执行与新的中断请求值相关的中断服务程序。中断服务程序执行单元还检测中断服务程序的完成,确定中断分级单元是否包含另一新中断请求,如果是,则执行与新中断请求相关的中断服务程序,且如果不是,则获取存储在中断堆栈顶部的中断请求,如果存在的话,以及环境存储单元内保存的相应环境,并根据该环境继续执行。
另外,在示范实施例中,中断控制器包括中断服务程序跟踪单元以跟踪与当前由微处理器处理的中断请求相关的优先级,如果有的话,以及中断堆栈跟踪单元以跟踪与存储在微处理器的中断堆栈顶部的中断请求相关的优先级,如果有的话。控制单元控制中断通知单元以在中断分级单元内存储中断控制器接收到的最高优先级的中断请求,这只有在与此相关的优先级高于存储在微处理器的中断堆栈顶部的中断请求,如果有的话,相关的优先级情况下发生。控制单元还控制中断发送单元以将通知信号发送到微处理器,这只有在与此相关的优先级高于与当前正在由微处理器处理的中断请求,如果有的话,相关的优先级情况下。当微处理器的中断访问单元访问中断分级单元时,中断服务程序跟踪单元检测中断分级单元是否包含中断请求,如果是这样,则将在中断服务程序跟踪单元内跟踪到的最高优先级重设为由中断堆栈跟踪单元当前跟踪的最高优先级,如果不是,则去除中断服务程序跟踪单元内跟踪的最高优先级。当中断访问单元访问中断分级单元时,中断服务程序跟踪单元检测中断分级单元是否包含中断请求,如果是,则将在中断服务程序跟踪单元内跟踪到的最高优先级重设为由中断请求存储单元内存储的中断请求的最高优先级,如果不是,则去除中断服务程序跟踪单元内跟踪的最高优先级。
在示范实施例内,通过在中断控制器内跟踪微处理器的中断堆栈状态以及通过跟踪中断控制器内微处理器正在处理的中断服务程序的状态,中断控制器能将中断请求转发到微处理器使得最小化跳转操作的次数以及需要由微处理器实现的环境转换的数量。因此,取决于特定实现,可能在微处理器内获得效率的增强或功率节省。
提供了本发明的方法和装置的实施例。本发明的多种其它好处的多种实施例或是在以下经描述或是连同附图的详细描述而变得明显。
                     附图的简要描述
图1是根据本发明的示范实施例配置用于移动无线通信设备的带有中断控制器的ASIC的有关元件模块图。
图2是图1的系统的微处理器和中断控制器的有关元件的模块图。
图3是说明图2的微处理器和中断控制器用于处理由中断控制器优先级化的中断的方法的流程图。
图4说明根据用于实现图3的方法的特定示范实施例而配置的中断控制器。
图5说明资源接口单元的有关电路元件和图4的中断等级分段单元的一个。
图6说明在图4的优先级控制器内的轮流(round-robin)调度电路的相关电路元件。
图7说明图6的轮流调度电路使用的轮流指针。
图8说明图4的优先级控制器的IRQ发生器有关的电路元件。
图9是说明连到图4的中断控制器的微处理器内的对中断请求的示范处理图。
图10是说明由连到图4的中断控制器的微处理器对中断请求的另一处理图。
图11是说明图4的中断控制器内产生的经选择的信号的时序的时序图,其中带有两级优先权的中断请求在接收到带有四级优先权的中断请求后被接收。
图12是说明图4的中断控制器内产生的经选择的信号的时序图,其中带有六级优先权的中断请求在接收到带有四级优先权的中断请求后被接收。
图13是说明由图4的中断控制器产生的经选择的信号的时序图,其中两个相等优先级的中断请求相继被接收。
图14说明图4的优先级控制器内用于生成加电中断信号以发射到与中断控制器相连的微处理器的有关电路元件。
                     示范实施例的详细描述
参考附图描述本发明的最优和示范实施例。本发明首先参考在CDMA无线电话的语音和数据ASIC内使用的中断控制器而描述。然而,本发明的原则可应用于其它系统。
图1说明用于诸如用在CDMA无线通信系统内的无线电话的移动无线通信设备内的语音和数据ASIC 100。语音和数据ASIC包括处理无线电话的电话功能的电路。虽然未示出,但无线电话可能包括其它ASIC或其它集成电路用于实现其它功能。例如,如果无线电话用作智能电话以提供PDA功能以及无线电话功能,则可能提供分开的ASIC以控制PDA功能。或者,所有功能可能集成在一个ASIC内。
为处理无线电话的无线电话功能,ASIC包括微处理器102以控制声音和数据ASIC功能。例如,微处理器可能是精简指令集计算(RISC)微处理器,诸如Arm,Inc TM提供的ARM 7TDMITM微处理器,ARM 7TDMI和Arm,Inc都是ArmInc的商标。在其它实现中,使用其它微处理器,例如复杂指令集计算(CISC)微处理器。在ASIC内提供多种外围元件,一般标为104,以实现特定的CDMA无线电话功能。
系统总线106连接微处理器和多种CDMA外围元件。在使用中,微处理器通过系统总线控制各种CDMA外围元件以实现各种与处理CDMA无线通信有关的功能,诸如将从基站(未示出)接收到的CDMA信号转换成声音信号以通过无线电话的扬声器输出或将从无线电话的麦克风接收来的声音信号转换为CDMA信号以发送到基站。为实现这些和其它功能,微处理器和外围元件或在ASIC上的内部存储系统108内,或在由一个或多个SRAM、DRAM或装在ASIC外部的无线电话内的闪存芯片组成的外部存储系统110内存储数据或其它信息。一般,数据或其它需要快速访问的信息,诸如与实时电话呼叫处理相关的数据等存储在内部存储器系统内以能快速访问。不需要快速访问的数据,诸如不用于实时功能的数据,存储在外部存储器系统内。内部存储器接口单元115将微处理器的内部存储器系统与外围CDMA元件通过系统总线106相连。外部存储器接口单元117将外部存储器系统与微处理器和外围CDMA元件也是通过系统总线106而相连。
ASIC 100还包括中断控制器119,它为微处理器对由外围元件发送的中断请求优先级化,然后每次转发一个经优先级化的中断请求到微处理器。为此,中断控制器通过中断线121连到每个外围元件和存储器接口单元。在要详细描述的示范实施例中,四十根中断线连到中断控制器的输入。
通过为微处理器优先级化中断请求,相应地减少了微处理器的硬件和软件的复杂度,使得微处理器的设计、测试和调试能更有效。影响中断请求信号的系统修改,诸如带有新中断请求线的新外围元件的添加,能简单地通过修改或替换中断控制器而实现,而不需要修改微处理器本身。而且,如以下将详细描述的,中断控制器将中断信号传送到微处理器使得能最小化微处理器需要的环境切换次数。通过减少微处理器实现的环境切换的数量,微处理器因此而能更有效,使得微处理器能在给定时间段内实现更多的指令或使得微处理器能以减少的时钟速率运行而同时在给定的时间段内实现一样数量的操作从而节省了功耗。
另外,中断控制器在接收到中断请求时,确定微处理器是否处在电源关闭模式,如果是,是否中断请求的优先级足够大能正当加电微处理器。如果是,则中断控制器将合适的信号转发到微处理器以加电微处理器使得微处理器能处理并响应中断请求。如果不是,中断控制器只存储待决的中断请求直到微处理器随后加电。这样,通过使得微处理器保持更长时间电源关闭状态而获得改善的功率节省。可以理解,没有中断控制器,微处理器不管请求的优先级可能需要对每个中断请求而加电。通过中断控制器还获得了许多其它的好处。
现在简单地考虑ASIC 100的CDMA外围元件,它将中断请求发送到微处理器,为传输信号,提供了声码器114,这可以作为DSP被配置以将它通过麦克风(未示出)接收到的声音信号转化为数字化的符号或其它分组信息。声码器的一例在美国专利号5414796中得到描述。CDMA编码器116对声码器生成的符号编码以实现差错纠正和检测。一例编码器是美国专利号5848102内描述的网格编码器。CDMA交织器118将编码后的信号交织以提供时间分集从而减少传输功率。示范交织器在美国专利号5633881内得到描述。CDMA调制器120对交织后信号进行调制以通过天线(未示出)进行随后的传输。CDMA调制器的实现在美国专利号5102459和4901307内得到描述。为处理接收到的信号,CDMA解调器122对信号解调,解交织器124对信号解交织以去除任何先前交织的影响,CDMA解码器126对信号解码以抽取其中编码的语音或数据信号。示范解调器在美国专利号5602833内有描述。示范解交织器在前述的美国专利号5633881内有描述。示范解码器在前述的美国专利号5848102内有描述。另一示范解码器在美国专利号5710784内有描述。前述的每个专利在此引入作为参考,至少以提供各个CDMA外围元件实现功能相关的信息。对语音通信,经解码的声音信号通过扬声器(未示出)输出到用户的电话。对数据通信,经解码的数据信号进一步由电话的其它元件处理,诸如例如使用网页浏览程序、电子邮件程序等显示。
参考图2描述为微处理器接收并对中断请求优先级化的中断控制器的相关元件以及微处理器处理中断请求的相关元件。从多个外围元件来的中断请求通过中断线121由中断控制器的中断资源接口电源130接收。中断请求然后经转发到中断优先级化单元132,它根据预定的优先级协议对中断请求优先级化。在以下描述的示范实施例内,优先级化是在系统初始时通过将优先级分配给每个输入中断线而实现的。例如,中断资源线#1被分配以优先级等级三。而中断资源线#2被分配以优先级等级一,更高的优先级等级标明更高的优先级。然而可能使用其它优先协议。最优设计是灵活性且软件可编程的。
中断请求以及它们相关的优先级等级然后被转发到中断通知单元134,它处理中断请求以确定是否要立即通知微处理器有关最高优先级的中断请求。如果两个或更多的中断请求共享相同最高优先级,则通知单元134使用轮流调度单元136以选择相等优先级的中断请求的一个以先作处理。也能使用其它的在相等优先级的中断请求之间进行选择的技术或协议。在控制单元138的控制下,通知单元然后确定微处理器当前是否处于电源关闭模式。如果是,则控制单元确定中断请求是否有足够的优先级以正当加电微处理器。如果是,则控制单元激活微处理器加电初始单元140,它将合适信号转发到微处理器以通过微处理器的功率控制单元143对微处理器加电。加电信号可能在以下将描述的IRQ或FRQ线上被转发,或可能通过专用加电线发射,不分开示出了。如果选择的中断请求未被授权触发微处理器的加电操作,则选择的中断请求以及所有其它的中断请求,存储在存储单元142内以在微处理器在接收到随后更高优先级的中断请求而最终加电后作相继处理。确定特定中断请求是否被授权触发微处理器的加电操作可能例如通过检查中断请求的优先级而实现。例如,只有带有五或更高的优先级的中断请求能被设计为有足够高的优先级被授权加电微处理器,而比这优先级低的中断请求无权开启微处理器。但是可以理解,可能使用其它方法和协议以确定未决的中断请求是否能触发微处理器的加电操作。接下来,假设微处理器已被加电了。
在已经识别了单个中断请求以转发到微处理器,中断通知单元下一步确定是否要立即通知微处理器关于该中断请求或要等到先前转发的中断请求处理完成后再发出通知。中断通知单元作出该决定的方式会在以下参考示例而描述,其中在中断控制器处一次接收到几个中断请求。在接收到第一个中断请求后,不管其优先权,中断通知单元在中断分级单元144内存储中断请求,然后触发IRQ发生器以将IRQ信号发射到微处理器,它通过IRQ接收机148接收信号。为对此响应,微处理器在IRQ控制器152控制下使用中断访问单元150读取中断分级单元内存储的中断请求。在接收中断请求时,微处理器的中断服务程序执行单元154检索预存的与从中断服务程序存储单元156来的中断请求相关的中断服务程序。取决于接收到的中断请求,例如,中断服务程序可能要求微处理器从外部存储器传输数据到内部存储器,反之亦然。另一例子是,中断请求可能要求微处理器读取移动电话用户通过键盘(未示出)输入的键盘输入。可能在存储单元156内存储许多由微处理器执行的不同中断服务程序。在此不列出所有可能的中断服务程序。
因此,微处理器中断其正常的处理并因此执行中断服务程序。为允许微处理器在中断服务程序完成后继续正常处理,微处理器还在环境存储控制器160的控制下在环境存储寄存器158内存储微处理器环境。微处理器的定义微处理器当前环境的特定值随每个处理器而不同且可能根据由微处理器在接收到中断前执行的特定操作而变化。一般,微处理器的环境是由微处理器在多个内部执行寄存器内维持的值定义的。在任何情况下,环境是通过获取存储在这些寄存器内的值和将这些值存储在环境存储寄存器158内而保存的。因此,为恢复先前的环境,环境存储寄存器内的值被转移回执行寄存器。微处理器存储并恢复微处理器的环境的方式可能完全根据传统技术实现,在此不作进一步描述。
假设在执行中断服务程序时没有接收到附加的中断请求,则在中断服务程序完成时,微处理器根据在环境存储寄存器内存储的值而存储先前环境。当接收到第二个中断请求时,中断控制器在中断分级单元内存储第二中断请求并将IRQ转发到微处理器,它获取并处理第二中断请求的中断服务程序。
然而,如果在微处理器处理第一个中断请求时接收到第二中断请求且第二中断请求比第一中断请求的优先级高,则中断控制器在中断分级单元内存储第二中断请求并立即将IRQ转发到微处理器。作为响应,微处理器保存与第一中断请求相关的中断服务程序环境,然后获取并处理与第二中断请求相关的中断服务程序。而且,除存储与第一中断服务程序相关的环境外,微处理器还在中断堆栈控制器164控制下在中断堆栈162内存储第一中断请求本身。这使得微处理器能获取先前的中断请求以及其环境并继续对它的处理。可以理解,如果接收到了多个更高优先级的中断请求,则多个中断请求被存储在堆栈内且多个环境被存储在环境存储寄存器内,即较低优先级的中断服务程序被嵌套在微处理器内。最终,每个中断请求从堆栈中读出,获取其环境并继续处理,直到所有中断均经处理,然后继续正常处理。
因此,如果中断控制器接收到新的中断请求而微处理器正在处理较低优先级的中断请求,则微处理器受中断控制器的控制立即处理新的中断请求。如果中断控制器接收到新的中断请求而微处理器正在处理等价或更高优先级的中断请求,则新的中断请求被存储在分级单元内但微处理器不会马上被通知新的中断请求。在完成了任何特定的中断请求处理后,微处理器首先检查中断分级单元以确定它是否包含要处理的新中断而且如果有,则微处理器获取新中断并处理该中断,而不管在中断堆栈内是否有未决的中断。然而如果中断分级单元不包含新中断请求,则微处理器获取中断堆栈顶部的中断请求并继续处理该中断请求。因此,在中断服务程序完成时,在开始处理它自己内部堆栈内的任何未决中断请求前,微处理器自动处理存储在中断分级单元内的中断请求。如果在实行中断服务程序时接收到IRQ信号,则微处理器在处理与当前中断服务程序相关的中断请求前和在处理任何在其内部堆栈内维持的中断请求前自动处理与新IRQ信号相关的中断请求。
为使微处理器能这样操作,中断控制器使用微处理器堆栈跟踪单元170跟踪存储在微处理器的中断堆栈内的中断请求的优先级。中断控制器还使用微处理器服务跟踪单元172跟踪当前由微处理器处理的中断请求的优先级(即当前“服务”的中断请求)。无论何时中断控制器接收到新的中断请求,中断通知单元将新的中断请求的优先级与堆栈跟踪单元和服务跟踪单元跟踪的最高优先级比较。如果新中断请求优先级比当前微处理器服务的中断请求的优先级更高,则中断控制器在中断分级单元内存储新中断请求并发射IRQ到微处理器。如果新中断请求优先级比当前微处理器服务的中断请求的优先级低或相等,但要比中断分级单元内的最高优先级高,则不立即转发IRQ到微处理器。这是由于如果发出IRQ,则会引起微处理器的IRQ接收机响应并引起微处理器再次保存环境,因此影响了性能。因此,新的中断请求只是存储在中断分级单元内以使得微处理器能在完成当前中断请求处理后访问新的中断请求。如果新中断请求与微处理器的中断堆栈内的中断请求的最高优先级相等或更低,则中断控制器不在中断存储寄存器内存储新的中断请求,且不发送IRQ到微处理器。结果是,在完成当前处理后,微处理器会访问堆栈并继续在中断堆栈顶部的中断请求的处理。最终,由于存储在中断堆栈内的中断请求经处理且从堆栈中移去,则在微处理器它完成当前中断服务程序后会获取新中断请求的优先级并进行处理。如果获取多于一个新中断请求,则较低优先级的中断请求维持在中断通知单元的存储单元142内直到微处理器接收到更高优先级的中断请求。可以理解,如果微处理器当前有多个中断服务程序嵌套且如果中断控制器接收到多个新中断请求,则较低的中断请求可能在转发到微处理器进行处理前停留相当多个时钟周期。在一些情况下,微处理器响应更高的优先级中断而执行的中断服务程序会要求微处理器清除其它所有的未决中断请求。如果这样,则存储在中断堆栈内的中断请求以及与此相关的环境从微处理器对应的寄存器内清除。另外,微处理器将转发控制信号到中断控制器,使得中断控制器擦去任何存储的未决中断请求。然而,除非实行该种中断重设操作,否则所有中断控制器接收到的中断请求会被转发到微处理器并在那儿得到处理。
中断控制器在步骤200接收中断请求并将请求存储在内部存储寄存器内。中断控制器然后在步骤202识别带有最高优先权的中断请求。如值得注意的,可能使用轮流协议或其它协议以在带有相等优先权的中断请求中选择。在步骤204处,中断控制器确定微处理器是否当前正在处理中断请求。例如,该决定是通过访问由中断控制器的服务跟踪单元内存储的信息而实现的。如果微处理器当前不处理中断,则在步骤206中断控制器将IRQ发送到微处理器。下一步,在步骤208处,在步骤202处选择的中断请求存储在中断分级单元内以为微处理器将来获取。此后中断控制器内的执行回到步骤200。
然而,如果在步骤204处中断控制器确定微处理器正在处理中断请求,则在步骤210,中断控制器确定在步骤202处识别的新中断请求是否比正在处理的中断请求有更高的优先级。如果是,则步骤206和208通知微处理器新中断请求。如果不是,则在步骤212处,中断控制器确定是否新的中断请求的优先权比在微处理器堆栈顶部的中断请求的优先权高。如果是,则在步骤208处新中断请求存储在中断分级单元内使得微处理器能接着在完成当前中断服务程序后获取该中断请求。如果不是,则在步骤214中断控制器在存储寄存器内部存储新中断请求(以及所有其它的)以作进一步处理并回到步骤200。
在微处理器内,在步骤216处的正常处理在步骤218处接收到IRQ时被挂起。在步骤220处,存储微处理器的环境。然后,在步骤222处微处理器读取由中断控制器在步骤208处存储的中断请求。步骤224开始,微处理器处理新的中断请求。在处理时,在步骤226微处理器监控IRQ输入线以检测任何新的IRQ信号。如果检测到新的IRQ,执行回到步骤218,其中接收新IRQ,且当前环境再次在步骤220被保存,先前的环境也嵌套在此。而且,在步骤220处,先前的中断请求存储在中断堆栈内。新中断请求然后在步骤224开始经处理。如果在中断请求处理期间,没有检测到另外的IRQ,则中断请求的处理在步骤228处完成。之后,在步骤230处,微处理器访问中断控制器的中断分级单元以确定是否在步骤208处在此存储了新的中断请求。如果在步骤232处微处理器确定在此存储了中断请求,则执行回到步骤222,其中接收并处理新的中断请求。如果在步骤232处在中断分级单元内没有找到中断请求,则在步骤234处微处理器下一步确定是否由任何中断请求留在中断堆栈内。如果有,则在步骤236处实现获取堆栈顶部的中断请求,恢复与此相关的环境,执行回到步骤224以处理该中断请求。如果在步骤234处在中断堆栈内没有剩余中断请求,则微处理器在步骤238处继续正常处理,获取与正常处理相关的环境。
因此,图3概括了中断控制器和微处理器响应各个中断请求信号的接收而执行的步骤。或者,步骤的其它特定序列可能根据本发明的原则而实现。
参考剩余的附图,描述中断控制器的一特定实施例。中断控制器如上描述地操作。因此,由其余附图的中断控制器实现的操作不会详细描述。而只描述中断控制器的相关细节。如在图4说明的,特定示范系统的中断控制器300例如使用到中断资源单元302的接口通过四十根输入线接收ISRs的中断服务请求。到中断资源单元的接口输出四十比特的向量,其中每个中断资源线与一个比特相关。每个加有中断信号的中断资源线在四十比特向量内由在相应比特位置内的二进制值1表示。一组四十个优先级寄存器304表示与每个中断资源线相关的优先级。例如,可以容纳总共八个优先级。一组八个中断等级分段单元306将从接口单元302接收来的向量与从优先级寄存器304来的优先级值组合以输出八个四十比特向量,每个优先级一个向量,每个向量只标识带有相应优先级的这些中断信号。八个中断分段向量转发到优先级控制器308,它以以上描述的方式处理向量内表出的中断请求。在优先级控制器内提供轮流调度单元以从一组等价优先级的中断请求中选出一个中断请求。
在其它功能中,优先级控制器308确定选择的最高优先级的中断请求是否立即存储在中断向量内以转发到微处理器并确定是否要立即发送IRQ信号到微处理器。如果中断服务请求要转发给微处理器,则选择的中断请求通过在四十比特向量(INT_VECTOR)内设定相应的比特而被标识。优先级控制器还接收FIQ中断请求并立即将它们发送到微处理器。另外,优先级控制器确定微处理器是否当前处在电源关闭模式,并且如果选择的中断请求有足够高的优先级以正当加电微处理器,则优先级控制器转发合适的信号(通过图4未示出的加电连接线)到微处理器(也未示出)。为确定是否要立即将最高优先级中断请求存储在中断向量内并确定是否要立即将IRQ发射到微处理器,优先级控制器使用IN_STACK以及IN_SERVICE寄存器(图8说明)以分别跟踪微处理器的中断堆栈以及由微处理器执行的中断服务程序的状态。优先级控制器的内部元件会关于其余的附图连同关于本发明的中断控制器的整体功能的上述描述更详细地经描述。
图5说明接口资源单元302的相关电路元件以及中断等级分段单元306的一个。四十个输入线(int_src(0)到int_src(39))上的ISRs与BCLK状态时钟信号)同步,并被IRQ_MASK寄存器内的对应比特屏蔽。输入信号由四十个边缘检测器同步,其中输入信号(图5中的irq_sync(0)到irq_sync(39))的上升缘产生一个与时钟信号BCLK同步的信号。四十个3比特优先寄存序列(在图4中标明为src_0_priority到src_39_priority)提供经编程的与每个子系统相关的优先等级。八个中断等级分段从优先级寄存器读取四十个经同步的ISRs以及它们对应的优先等级,并输出一个四十比特的特定等级的中断状态向量(图2中标为int_status)以及所有其参数比特的0R。IRQ_STATUS寄存器记录从四十个输出线来的ISRs(在图4中标明为int_src(0)到int_src(39))。经同步的ISRs在对应的ISR信号存在时使IRQ_STATUS寄存器块内的四十个1比特寄存器使能。当控制器对ISR提供了完整的服务或当重写事件出现取消了所有未解决的ISRs时,每个IRQ_STATUS寄存器比特允许独立同步重设。中断分段3060将经编程的3比特资源优先级与“000”比较,其结果与对应的经屏蔽的IRQ_STATUS比特取“或”。四十个比特等级向量经生成以指明在每个特定优先等级处的四十个资源的请求状态。该向量的OR还作为在每个特定优先等级处的总体中断请求而输出。控制器接收四十个指明请求资源的比特状态向量并且是从中断分段来的OR。
图6说明为中断向量选择的轮流调度电路以及为生成IRQ/FIQ信号的单元。对在同一优先等级编程的资源,轮流调度方案用于在竞争资源间分配优先级。八个锁存器(如图6标出的rr_pointer_0到rr_pointer_7)用于指向有不同等级的最高优先级的子系统。如上所述,八个优先中断等级编码为3比特向量(在图6中标为level_request)以指明最高优先请求等级。优先等级3比特向量选择中断状态向量(level_0_statis到level_7_status)以及对应的指针(rr_pointer_0到rr_pointer_7)。优先等级3比特向量还用于量化特定rr_pointer寄存器的使能引线。轮流调度电路,最好是带有四十到六个优先级的编码器以及六比特加法器的左旋转器,在对对应于优先等级的信号操作并生成mux selected_status信号。通过左旋选定的指针值保证了旋转器输出的MSB有最高优先权。优先级编码器对旋转器输出编码,其中在MSB的请求编码为“000000”,且在LSB处的请求经编码为“010111”=39。编码器输出然后通过用于mux选择信号的六比特加法器而被调整。中断向量寄存器在下一BCLK边缘处对编码器输出实行锁存。
图7说明上述轮流调度方案的一例。两个圆内的四十个框代表四十个从四十个子系统发送ISRs的输入线。外部圆代表图6的selected_status向量,它指明中断是否正在等待特定子系统。rr_pointer指向最高优先级的未决中断。例如,在初始后指针指向0号子系统,然后跳转到三号资源,它在待决的中断信号中有最高优先级。在服务了3号子系统后,指针经更新使得它指向4号子系统由于它是选择等级的下一最高优先级中断。轮流调度方案随着指针在四十个子系统周围旋转而继续。
图8说明了图4的优先控制器内的IRQ发生器。第一个八比特标志IN_SERVICE寄存器指明嵌套的ISRs继续保留在微处理器内下而微处理器正在服务更高优先级的ISRs。IN_SERVICE寄存器的每个比特指明是否对应的优先等级在微处理器内有一个嵌套的ISR。由于可以嵌套多个ISRs,在IN_SERVICE寄存器内的多个比特可能处在“1”状态。第二个八比特标记寄存器IN_STACK指明压入微处理器的中断堆栈的优先等级。例如在比特5的‘1’指明优先等级5的ISR被压入中断堆栈,这是因为微处理器正忙于优先级大于或等于5的ISR。IN_SERVICE标记和IN_STACK标记的组合消除了不必要的环境切换周期。微处理器在服务完一个ISR后读取中断向量以确定是否还有一个ISR处于待决,该ISR有比刚完成的ISR更低或相同的优先等级以及比堆栈顶部ISR优先级高。如果这样,微处理器直接跳转到新的中断向量位置而不需要恢复环境。如果没有待决的ISRs或正在服务的ISR被更高等级的ISR中断,则在INT_VECTOR处的中断向量内存储特定值NON_VECTOR。
在INT_VECTOR上的NON_VECTOR指示是通过将最高请求等级和由IN_STACK表示的堆栈的顶部等级相比较而生成的。如果存在等级比堆栈的顶部(待决=‘1’)等级高的请求ISR,则微处理器在它返回前执行更高优先等级的ISR。微处理器当它完成对ISR的服务时总是读取INT_VECTOR,并跳转至新的另一有效INT_VECTOR位置直到没有优先级比栈顶部高的ISR在待决。在这时候,待决=‘0’且特定值NO_VECTOR在INT_VECTOR被返回。当有比IN_SERVICE堆栈寄存器内最高优先级更高的优先级的ISR时,发出irq_int信号。在图6中,irq_int信号时在IRQ锁存前的信号。
微处理器读取INT_VECTOR寄存器会引起中断控制器通过清除对应由微处理器完成的ISR等级的比特而更新IN_SERVICE标记寄存器。在微处理器跳转到读取合理的INT_VECTOR值后,中断控制器还可能设定与ISR等级对应的比特。IN_SERVICE_next向量是由图8说明的多路复用器(mux)和四个处理单元组成的组合逻辑的输出。处理单元实现以下表格中的指令:
  service_clr_proc:PROCESS(in_service)
  BEGIN
   in_service_clr<=in_service;
   IF(in_service(7)=‘1’)THEN
     in_service_clr(7)<=‘0’;
   ELSIF(in_service(6)=‘1’)THEN
    in_service_clr(6)<=‘0’;
   ELSIF(in_service(5)=‘1’)THEN
    in_service_clr(5)<=‘0’;
   ELSIF(in_service(4)=‘1’)THEN
    in_service_clr(4)<=‘0’;
   ELSIF(in_service(3)=‘1’)THEN
    in_service_clr(3)<=‘0’;
   ELSIF(in_service(2)=‘1’)THEN
    in_service_clr(2)<=‘0’;
   ELSIF(in_service(1)=‘1’)THEN
    in_service_clr(1)<=‘0’;
   ELSIF(in_service(0)=‘1’)THEN
    in_service_clr(0)<=‘0’;
   END IF;
  END PROCESS;
service_set_proc:PROCESS(in_service_for_set,int_levels
BEGIN
 in_service_set<=in_service_for_set;
 IF(int_levels(7)=‘1’)THEN
   in_service_set(7)<=‘1’;
 ELSIF(int_levels(6)=‘1’)THEN
  in_service_set(6)<=‘1’;
 ELSIF(int_levels(5)=‘1’)THEN
  in_service_set(5)<=‘1’;
 ELSIF(int_levels(4)=‘1’)THEN
  in_service_set(4)<=‘1’;
 ELSIFnt_levels(3)=‘1’)THEN
  in_service_set(3)<=‘1’;
 ELSIF(int_levels(2)=‘1’)THEN
  in_service_set(2)<=‘1’;
 ELSIF(int_levels(1)=‘1’)THEN
  in_service_set(1)<=‘1’;
 ELSIF(int_levels(0)=‘1’)THEN
  in_service_set(0)<=‘1’;
 END IF;
END PROCESS
stack_push_proc:PROCESS(in_service,in_stack)
BEGIN
 in_stack_push<=in_stack
 IF(in_service(6)=‘1’)THEN
  in_stack_push(7)<=‘1’;
 ELSIF(in_service(5)=‘1’)THEN
  in_stack_push(6)<=‘1’;
 ELSIF(in_service(4)=‘1’)THEN
  in_stack_push(5)<=‘1’;
 ELSIF(in_service(3)=‘1’)THEN
  in_stack_push(4)<=‘1’;
 ELSIF(in_service(2)=‘1’)THEN
  in_stack_push(3)<=‘1’;
 ELSIF(in_service(1)=‘1’)THEN
  in_stack_push(2)<=‘1’;
 ELSIF(in_service(0)=‘1’)THEN
  in_stack_push(1)<=‘1’;
 ELSE
  in_stack_push(0)<=‘1’;
 END IF;
END PROCESS;
stack_pop_proc:PROCESS(in_stack)
BEGIN
 in_stack_pop<=in_stack
 IF(in_stack(7)=‘1’)THEN
  in_stack_pop(7)<=‘0’;
 ELSIF(in_stack(6)=‘1’)THEN
  in_stack_pop(6)<=‘0’;
 ELSIF(in_stack(5)=‘1’)THEN
  in_stack_pop(5)<=‘0’;
 ELSIF(in_stack(4)=‘1’)THEN
  in_stack_pop(4)<=‘0’;
 ELSIF(in_stack(3)=‘1’)THEN
  in_stack_pop(3)<=‘0’;
 ELSIF(in_stack(2)=‘1’)THEN
  in_stack_pop(2)<=‘0’;
 ELSIF(in_stack(1)=‘1’)THEN
  in_stack_pop(1)<=‘0’;
 ELSIF(in_stack(0)=‘1’)THEN
  in_stack_pop(0)<=‘0’;
 ENC IF;
END PROCESS;
                             表1
参考图9-10的时序图,当发出IRQ时,微处理器分支连到IRQ处理机。微处理器下一步保存环境,读取中断向量索引并跳转到合适的ISR跳转表格位置。在每个ISR末尾,微处理器再次读取中断向量寄存器。如果检测到NON_VECTOR值,则微处理器恢复环境并回到先前嵌套的ISR。如果微处理器检测到有效的中断向量索引,则它丢弃刚完成的ISR的环境而跳转到新的ISR位置。该处理继续直到服务了所有的ISR。图9的时序图说明了四个ISRs的服务(等级2、等级5、等级3、等级4)而不需要如上所述的不必要的环境切换。等级2的ISR首先被接收引起主程序环境的保存。等级2ISR在从INT_VECTOR读取等级5的ISR时被服务,这时控制器跳到服务等级5的ISR并保存等级2的ISR环境。在完成等级5的ISR服务时,控制器读取INT_VECTOR,并跳到下一更低的待决ISR,等级3的ISR,并对它提供服务。在服务等级3的ISR期间,从INT_VECTOR读取等级4的ISR,引起控制器保存等级3的ISR环境并开始服务等级4的ISR。当完成了对等级4的ISR的服务,控制器读取INT_VECTOR并通过恢复等级3环境而回到对等级3的ISR的服务。当完全完成了对等级3的ISR的服务,控制器读取INT_VECTOR并通过恢复等级2的ISR环境而回到对等级2的ISR的服务。在完全完成了对先前嵌套的等级2的ISR服务后,控制器读取INT_VECTOR并通过恢复主程序环境回到主程序。
在图10内提供了图9的时序图的细微变体,它说明了不需要环境切换而服务四个ISRs(等级2、等级5、等级4、等级3)。当控制器接收到等级2的ISR时,主程序被中断且在服务前保存其环境。在本例中,等级5的ISR在完全服务等级2的ISR前被接收。当等级5的ISR在INT_VECTOR内连同伴随的跳转指令被读取时,等级2的ISR的环境被保存且控制器开始服务等级5的ISR。在服务等级5的ISR期间,等级4的ISR和等级3的ISR由控制器接收。在完成等级5的ISR的服务后,INT_VECTOR被读取,且控制器跳转到下一最低的待决ISR即等级4的ISR。等级4的ISR被服务,INT_VECTOR被读取,控制器跳到服务等级3的ISR,这是下一最低等待ISR。等级3的ISR被服务,INT_VECTOR被读取且自下一最低待决的ISR以来,嵌套等级2的ISR,返回指令恢复等级2的ISR环境。等级2的ISR随后被完全服务且INT_VECTOR被服务,且由于没有任何等级的待决ISRs,返回指令恢复主程序环境,主程序继续操作。
图11是信号时序图,其中优先等级4的中断服务程序之后是从ISRs的初始脉冲来的优先等级为2的中断服务程序直到环境被恢复。图12是信号时序图,其中优先等级4的中断服务程序之后是优先等级为6的中断服务程序。优先等级6的ISR在完全服务优先等级4的ISR前发出IRQ,因此将IST嵌套在微处理器内。图13是信号时序图其中从两个不同源来的中断服务程序的优先等级均为4。
图14说明用于生成由图6的中断控制器输出的电源关闭模式中断信号(powerup_int)的边缘检测器逻辑。IRQ/FIQ生成与BCLK时钟同步。因此,时钟和功率单元操作整个系统不能直接发送IRQ/FIQ信号以退出微处理器的电源关闭或休眠模式。从中断源捕获异步脉冲(async_pulse_0到async_pulse_39),它用于发信号使微处理器退出电源关闭模式。对应的IRQ/FIQ屏蔽用于规定哪个中断能引起微处理器关闭电源。
虽然说明描述了本发明的一特定形式,但很明显可以有多种修改且不偏离本发明的精神和范围。相应地,除了本发明的权利要求书以外,这不是为了限制本发明。

Claims (43)

1.一种用在移动通信设备内的系统,所述的系统其特征在于包括:
微处理器,带有通过中断当前处理并执行与中断请求相关的中断服务程序而响应中断请求的元件;
外围处理单元,带有生成要发送到微处理器的中断请求的元件;以及
中断控制器,带有接收从外围处理单元到微处理器的中断请求并为微处理器优先级化中断请求的元件,
其中所述中断控制器包括:
中断资源接口单元,用以接收从外围处理单元到微处理器的中断请求;
中断优先级化单元,用以在接收到的中断请求中识别有最高优先级的中断请求;以及
中断通知单元,用以通知微处理器关于最高优先级的中断请求,
其中所述中断通知单元包括:
中断分段单元,以存储代表最高优先级的中断请求的值;以及
中断传输单元,用于发送通知信号到微处理器,指明新中断请求存储在中断分段单元中,
其中所述微处理器包括:
中断通知信号接收单元;
中断访问单元,用以读取存储在中断分段单元内的代表新的中断请求的值;
环境存储单元,用以保存微处理器的当前环境;
中断堆栈控制器,用以确定是否正在执行当前中断服务程序,并且如果是则在中断堆栈内存储与此相关的中断请求;以及
中断服务程序执行单元,用以执行与从中断分段单元读取的新的中断请求值相关的中断服务程序,其中中断服务程序执行单元还检测中断服务程序的完成,确定中断分段单元是否包含其它代表中断请求的值,如果是,则执行与从中断分段单元内读取的中断请求值相关的中断服务程序,否则,则获取存储在中断堆栈顶部的中断请求以及环境存储单元内保存的环境,并根据该环境继续执行。
2.如权利要求1所述的系统,其特征在于中断分段单元是中断向量寄存器。
3.如权利要求1所述的系统,其特征在于通知信号是IRQ信号。
4.如权利要求1所述的系统,其特征在于中断控制器还包括:
中断服务程序跟踪单元,用以跟踪与微处理器当前正在处理的中断请求相关的优先级;
中断堆栈跟踪单元,用以跟踪与存储在微处理器的中断堆栈顶部的中断请求相关的优先级;以及
控制单元,用于:
控制所述中断通知单元以仅当与由中断控制器接收到的中断请求相关的优先级高于与存储在微处理器的中断堆栈顶部的中断请求相关的优先级时,在中断分段单元内存储代表由中断控制器接收到的最高优先级的中断请求的值;以及
控制所述中断传输单元仅当与由中断控制器接收到的中断请求相关的优先级高于与当前正由微处理器处理的中断请求相关的优先级时,发送通知信号。
5.如权利要求4所述的系统,其特征在于所述的中断服务程序跟踪单元另外跟踪其它存储于微处理器的中断堆栈内的中断请求的优先级。
6.如权利要求5所述的系统,其特征在于中断服务程序跟踪单元在微处理器的中断访问单元访问中断分段单元时检测中断分段单元是否包含中断请求,如果是,则将中断服务程序跟踪单元内跟踪的最高优先级重设为由中断堆栈跟踪单元当前跟踪的最高优先级,如果不是,则去除在中断服务程序跟踪单元内跟踪的最高优先级。
7.如权利要求4所述的系统,其特征在于所述的中断服务程序跟踪单元另外还跟踪与先前由微处理器获取但未完全处理的中断请求相关的优先级。
8.如权利要求7所述的系统,其特征在于中断服务程序跟踪单元当中断访问单元访问中断分段单元时检测中断分段单元是否包含中断请求,如果是,则将中断服务程序跟踪单元内跟踪的最高优先级重设为存储在中断分段单元内的中断请求的优先级,如果不是,则去除在中断服务程序跟踪单元内跟踪的最高优先级。
9.如权利要求5所述的系统,其特征在于所述的中断堆栈跟踪单元包括带有对于每个优先级有至少一比特的IN_STACK寄存器。
10.如权利要求7所述的系统,其特征在于所述的中断服务程序跟踪单元包括带有对于每个优先级有至少一比特的IN_SERVICE寄存器。
11.如权利要求1所述的系统,其特征在于所述的中断优先级化单元从多个优先级等级确定中断请求的相对优先级。
12.如权利要求11所述的系统,其特征在于所述的中断资源接口单元连到多个单个中断线,每个携带有分开的中断请求;以及
其中所述的中断优先级化单元包括优先级化寄存器,它维持与每个所述的单个中断线相关的预定优先级,以及多个中断等级分段单元,它根据接收到的中断的中断请求线将预定优先级与接收到的中断请求相关联。
13.如权利要求12所述的系统,其特征在于提供多个所述的中断等级分段单元,每个相应的优先级对应其中一个中断等级分段单元,每个中断等级分段单元接收代表所有中断请求的值,并输出只代表带有相应优先级的那些中断请求的值。
14.如权利要求12所述的系统,其特征在于所述的中断优先级化单元包括轮流选择单元以在每个优先级的一组中断中选择一个中断。
15.如权利要求1所述的系统,其特征在于微处理器包括功率控制单元而且其中中断控制器另外包括加电初始单元以识别被授权触发加电微处理器的接收到的中断请求,并触发功率控制单元以对接收到一个所述的请求时响应而对微处理器加电。
16.如权利要求1所述的系统,其特征在于所述的中断优先级化单元区别IRQ和FIQ请求,且其中中断通知单元独立于IRQ请求通知微处理器FIQ请求。
17.一种用于移动通信设备内的系统,所述的系统其特征在于包括:
微处理器,带有通过中断当前处理并执行与中断请求相关的中断服务程序而响应中断请求的元件;
外围处理单元,带有生成要发送到微处理器的中断请求的元件;以及
中断控制器,带有:
接收到微处理器的中断请求的装置,所述的中断请求请求微处理器中断当前处理并实行与中断请求相关的中断服务程序;
从接收到的中断请求中识别最高优先级的中断请求的装置;以及
通知微处理器关于最高优先级的中断请求的装置,
其中所述的通知微处理器的装置包括:
中断存储装置以存储代表最高优先级的中断请求的值;以及
将通知信号发送到微处理器的装置,指明新的中断请求存储在中断存储装置中,
其中所述微处理器包括:
接收通知信号的装置;
中断访问装置以读取存储在中断存储装置内的代表新中断请求的值;
保存微处理器的当前环境的装置;
确定是否正在执行当前中断服务程序的装置,如果是,则在中断堆栈中存储与此相关的中断请求;
执行与从中断存储装置读取的新的中断请求值相关的中断服务程序的装置;
其中,用于执行的装置还检测中断服务程序完成,并且
确定中断控制器的中断存储装置是否包含另一代表中断请求的值,如果是,则执行与从中断存储装置读取的中断请求值相关的中断服务程序,如果不是,则获取存储在中断堆栈顶部的中断请求以及保存在用于保存微处理器的当前环境的装置内的环境,并继续根据该环境执行。
18.如权利要求17所述的系统,其特征在于中断控制器还包括:
中断服务程序跟踪装置,用于跟踪与由当前由微处理器处理的中断请求相关的优先级;
中断堆栈跟踪装置,用于跟踪与存储在微处理器的中断堆栈顶部的中断请求相关的优先级;
控制装置,用于控制所述的用于通知微处理器的装置,仅当与由中断控制器接收到的中断请求相关的优先级高于与存储在微处理器的中断堆栈的顶部的中断请求相关的优先级时,在中断存储装置内存储代表由中断控制器接收到的最高优先级的中断请求的值,并且
用于控制所述的将通知信号发送到微处理器的装置以仅当与由中断控制器接收到的中断请求相关的优先级高于与当前正在被微处理器处理的中断请求相关的优先级时,发送通知信号。
19.如权利要求18所述的系统,其特征在于所述的中断服务程序跟踪装置另外跟踪存储在微处理器的中断堆栈内的其它中断请求的优先级。
20.如权利要求19所述的系统,其特征在于中断服务程序跟踪装置还用于当中断访问装置访问中断存储装置时检测中断存储装置是否包括中断请求,如果是,则将在中断服务程序跟踪装置内跟踪到的最高优先级重设为中断堆栈跟踪装置当前跟踪的最高优先级,如果不是,去除在中断服务程序跟踪装置跟踪的最高优先级。
21.如权利要求18所述的系统,其特征在于所述的中断服务程序跟踪装置另外跟踪先前由微处理器接收但未经完全处理的中断请求。
22.如权利要求21所述的系统,其特征在于中断服务程序跟踪装置还用于当中断访问装置访问中断存储装置时检测中断存储装置是否包含中断请求,如果有,则将在中断服务程序跟踪装置内跟踪到的最高优先级重设为存储在中断存储装置内的中断请求的优先级,如果不是,去除在中断服务程序跟踪装置跟踪的最高优先级。
23.如权利要求19所述的系统,其特征在于所述的中断堆栈跟踪装置包括带有对于每个优先级有至少一比特的寄存器。
24.如权利要求21所述的系统,其特征在于所述中断服务程序跟踪装置包括带有对于每个优先级有至少一比特的寄存器。
25.如权利要求17所述的系统,其特征在于所述用于从接收到的中断请求中识别最高优先级的中断请求的装置还用于在多个优先级中确定中断请求的相对优先级。
26.如权利要求25所述的系统,其特征在于所述的用于接收到微处理器的中断请求的装置被连到多个单个中断线,每个携带分开的中断请求,以及
其中所述用于从接收到的中断请求中识别最高优先级的中断请求的装置还包括用于维持与每个所述的单个中断线相关的预定优先级的装置,以及用于根据接收到中断的中断清求线而将预定优先级与接收到的中断请求相关的装置。
27.如权利要求26所述的系统,其特征在于所述的用于根据接收到中断的中断请求线而将预定优先级与接收到的中断请求相关的装置包括多个中断等级分段装置,每个相应的优先级对应一个中断等级分段装置,每个用于接收代表所有中断请求的值并输出只代表具有相应的优先级的那些中断请求的值。
28.如权利要求26所述的系统,其特征在于所述的在接收到的中断请求中识别最高优先级的中断请求的装置包括从一组具有相等优先级的中断中选择一个中断。
29.如权利要求28所述的系统,其特征在于选择具有相等优先级中的一个中断的装置是轮流选择单元。
30.如权利要求17所述的系统,其特征在于微处理器包括进入电源关闭模式的装置,且其中中断控制器另外包括用于识别被授权触发微处理器加电的接收到的中断请求并响应接收到一个所述的请求而加电微处理器的装置。
31.如权利要求17所述的系统,其特征在于所述的从接收到的中断请求中识别最高优先级的中断请求的装置还用于区别IRQ和FIQ请求,以及
其中所述的用于通知微处理器关于最高优先级的中断请求的装置独立于IRQ请求通知微处理器FIQ请求。
32.一种用于移动通信设备内的中断控制器和微处理器的方法,所述的微处理器包括通过中断当前处理并执行与中断请求相关的中断服务程序而响应中断请求的元件,所述的方法其特征在于包括以下步骤:
使用中断控制器接收到微处理器的中断请求;
使用中断控制器在接收到的中断请求中识别最高优先级的中断请求;
通知微处理器关于最高优先级的中断请求;
在中断存储设备内存储代表最高优先级的中断请求的值;
将通知信号发送到微处理器指明新的中断请求存储在中断存储设备内;
接收通知信号;
由中断访问设备在中断存储设备内读取代表新中断请求的值;
保存微处理器的当前环境;
确定是否正在执行一当前的中断服务程序,如果是,则在中断堆栈内存储与此相关的中断请求;
执行与从中断存储设备读出的新中断请求值相关的中断服务程序;
检测中断服务程序的完成;以及
确定中断控制器的中断存储设备是否包含另一代表中断请求的值,如果是,则执行与从中断存储设备读出的中断请求值相关的中断服务程序,如果不是,在获取存储在中断堆栈顶部的中断请求以及在保存微处理器的当前环境的步骤中所保存的环境,并根据该环境继续执行。
33.如权利要求32所述的方法,其特征在于还包括由中断控制器实行的步骤:
跟踪与当前由微处理器在中断服务程序跟踪设备内处理的中断请求相关的优先级;
用中断堆栈跟踪设备跟踪与存储在微处理器的中断堆栈顶部的中断请求相关的优先级;
仅当与由中断控制器接收到的中断请求相关的优先级高于与存储在微处理器的中断堆栈顶部的中断请求相关的优先级时,在中断存储设备内存储由中断控制器接收到的代表最高优先级的中断请求的值;以及
仅当与由中断控制器接收到的中断请求相关的优先级高于与当前由微处理器处理的中断请求相关的优先级时,将通知信号发射到微处理器。
34.如权利要求33所述的方法,其特征在于还包括跟踪存储在微处理器的中断堆栈内的其它中断请求的优先级的步骤。
35.如权利要求34所述的方法,其特征在于跟踪与当前由微处理器在中断服务程序跟踪设备内处理的中断请求相关的优先级的步骤包括检测当中断访问设备访问中断存储设备时中断存储设备是否包含中断请求的步骤,如果是,则将在中断服务程序跟踪设备内跟踪的最高优先级重设为中断堆栈跟踪设备内当前跟踪的最高优先级,如果不是,则去除中断服务程序跟踪设备内跟踪的最高优先级。
36.如权利要求33所述的方法,其特征在于还包括跟踪与先前由微处理器获取但未完全处理的中断请求相关的优先级的步骤。
37.如权利要求36所述的方法,其特征在于跟踪与当前由微处理器在中断服务程序跟踪设备内处理的中断请求相关的优先级的步骤包括检测当中断访问设备访问中断存储设备时中断存储设备是否包含中断请求的步骤,如果是,则将在中断服务程序跟踪设备内跟踪的最高优先级重设为在中断存储设备内的中断请求的优先级,如果不是,则去除中断服务程序跟踪设备内跟踪的最高优先级。
38.如权利要求32所述的方法,其特征在于所述的在接收到的中断请求识别最高优先级的中断请求的步骤包括从多个优先级确定中断请求的相对优先级。
39.如权利要求38所述的方法,其特征在于所述的接收到微处理器的中断请求的步骤包括同时接收从多个单个中断线来的信号的步骤,每个中断线携带分开的中断请求,以及
其中所述的从多个优先级确定中断请求的相对优先级的步骤包括维持与每个所述的单个中断线相关的预定的优先级以及根据接收到中断的中断请求线而将预定的优先级与接收到的中断请求相关联的步骤。
40.如权利要求39所述的方法,其特征在于所述的根据接收到的中断请求的中断请求线而将预定优先级与接收到的中断请求相关联的步骤包括将所述信号路由通过多个中断等级分段单元的步骤,每个相应的优先级对应一个中断等级分段单元,每个用于接收代表所有中断请求的值并输出代表那些只带有相应优先级的中断请求的值。
41.如权利要求39所述的方法,其特征在于如果有多于一个的具有相等优先级的待决的中断请求,所述的在接收到的中断请求中识别最高优先级的中断请求的步骤包括通过轮流选择过程选择具有相等优先级的中断中的一个的步骤。
42.如权利要求32所述的方法,其特征在于微处理器另外实现进入电源关闭模式的步骤,其中中断控制器另外实现识别被授权触发微处理器加电的接收到的中断请求并响应接收到一个所述的请求后加电微处理器的步骤。
43.如权利要求32所述的方法,其特征在于在接收到的中断请求中识别最高优先级的中断请求的步骤包括区别IRQ和FIQ请求的步骤且其中在所述的通知微处理器关于最高优先级的中断请求的步骤中以独立于IRQ请求通知微处理器FIQ请求。
CNB028120817A 2001-05-10 2002-05-03 带有优先中断控制器的移动通信设备 Expired - Fee Related CN100351825C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/853,333 US6807595B2 (en) 2001-05-10 2001-05-10 Mobile communication device having a prioritized interrupt controller
US09/853,333 2001-05-10

Publications (2)

Publication Number Publication Date
CN1516838A CN1516838A (zh) 2004-07-28
CN100351825C true CN100351825C (zh) 2007-11-28

Family

ID=25315750

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028120817A Expired - Fee Related CN100351825C (zh) 2001-05-10 2002-05-03 带有优先中断控制器的移动通信设备

Country Status (6)

Country Link
US (1) US6807595B2 (zh)
CN (1) CN100351825C (zh)
HK (1) HK1064758A1 (zh)
MX (1) MXPA03010233A (zh)
TW (1) TWI250752B (zh)
WO (1) WO2002093391A1 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7757094B2 (en) * 2001-02-27 2010-07-13 Qualcomm Incorporated Power management for subscriber identity module
US7370217B2 (en) * 2001-11-16 2008-05-06 Intel Corporation Regulating file system device access
US20030204655A1 (en) * 2002-04-24 2003-10-30 Schmisseur Mark A. Prioritizing vector generation in interrupt controllers
DE60210990D1 (de) * 2002-11-19 2006-06-01 St Microelectronics Srl Verfahren zur Erzeugung von Unterbrechungsbefehlen in einem Mikroprozessorsystem und bezügliches Prioritätsunterbrechungssteuerungsgerät
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7870346B2 (en) 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7219182B2 (en) * 2003-03-10 2007-05-15 Marvell International Ltd. Method and system for using an external bus controller in embedded disk controllers
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7813273B2 (en) * 2003-05-14 2010-10-12 At&T Intellectual Property I, Lp Soft packet dropping during digital audio packet-switched communications
KR100528476B1 (ko) * 2003-07-22 2005-11-15 삼성전자주식회사 컴퓨터 시스템의 인터럽트 처리 장치
US20050021894A1 (en) * 2003-07-24 2005-01-27 Renesas Technology America, Inc. Method and system for interrupt mapping
US7607133B2 (en) * 2004-02-11 2009-10-20 Arm Limited Interrupt processing control
WO2005124564A1 (en) * 2004-06-15 2005-12-29 Koninklijke Philips Electronics N.V. Interrupt scheme for bus controller
CN100389411C (zh) * 2005-05-18 2008-05-21 大唐移动通信设备有限公司 在嵌入式实时操作系统中实现逻辑中断优先级的方法
JP4250162B2 (ja) * 2005-09-16 2009-04-08 シャープ株式会社 データ処理装置
CN100437394C (zh) * 2006-04-14 2008-11-26 华为技术有限公司 一种硬件单元的控制方法
US9032127B2 (en) * 2006-09-14 2015-05-12 Hewlett-Packard Development Company, L.P. Method of balancing I/O device interrupt service loading in a computer system
US9946668B1 (en) * 2007-01-10 2018-04-17 The Mathworks, Inc. Automatic prioritization of interrupts in a modeling environment
EP2075696A3 (en) * 2007-05-10 2010-01-27 Texas Instruments Incorporated Interrupt- related circuits, systems and processes
DE102007031529B4 (de) * 2007-07-06 2010-07-22 Texas Instruments Deutschland Gmbh Elektronisches Gerät und Verfahren zum Umschalten einer CPU von einer ersten in eine zweite Betriebsart
TWI357257B (en) 2007-10-19 2012-01-21 Mstar Semiconductor Inc Information processing system and related method t
GB2454885B (en) * 2007-11-21 2012-06-06 Advanced Risc Mach Ltd Interrupt jitter suppression
US7730248B2 (en) * 2007-12-13 2010-06-01 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems and processes
EP2098957A1 (en) * 2008-03-07 2009-09-09 Siemens Aktiengesellschaft Notifying a client on server disconnection in a MES system
US8255602B2 (en) * 2008-09-09 2012-08-28 Texas Instruments Incorporated Effective mixing real-time software with a non-real-time operating system
US8244947B2 (en) * 2009-02-20 2012-08-14 Qualcomm Incorporated Methods and apparatus for resource sharing in a programmable interrupt controller
US8490107B2 (en) 2011-08-08 2013-07-16 Arm Limited Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels
US9065897B2 (en) * 2013-12-10 2015-06-23 Seyed Ahmad Haghgou System and method for blocking unauthorized outgoing call on a communication network
CN105183541B (zh) * 2015-08-10 2019-07-12 上海斐讯数据通信技术有限公司 一种中断响应方法及系统
CN107526534B (zh) * 2016-06-21 2020-09-18 伊姆西Ip控股有限责任公司 管理存储设备的输入输出(i/o)的方法和设备
KR20180083688A (ko) * 2017-01-13 2018-07-23 삼성전자주식회사 애플리케이션 프로세서 및 집적 회로
CN108182930B (zh) * 2017-12-18 2021-12-10 福建星网视易信息系统有限公司 音效处理方法、设备及音视频点播系统
US11360544B2 (en) * 2018-10-03 2022-06-14 Google Llc Power management systems and methods for a wearable computing device
US11106463B2 (en) 2019-05-24 2021-08-31 Texas Instruments Incorporated System and method for addressing data in memory
KR102340871B1 (ko) * 2019-11-25 2021-12-20 주식회사 알티스트 인터럽트 처리 장치 및 방법
CN112199669B (zh) * 2020-09-25 2022-05-17 杭州安恒信息技术股份有限公司 一种检测rop攻击的方法和装置
US11442879B2 (en) * 2021-01-07 2022-09-13 Foundation Of Soongsil University-Industry Cooperation Interrupt request processing device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421027A (en) * 1991-08-12 1995-05-30 Motorola, Inc. Method and apparatus for generating a pin interrupt request in a digital data processor using a dual function data direction register
US5530875A (en) * 1993-04-29 1996-06-25 Fujitsu Limited Grouping of interrupt sources for efficiency on the fly
US5603035A (en) * 1991-08-22 1997-02-11 Telemecanique Programmable interrupt controller, interrupt system and interrupt control process
US5894577A (en) * 1993-09-22 1999-04-13 Advanced Micro Devices, Inc. Interrupt controller with external in-service indication for power management within a computer system
CN1294707A (zh) * 1998-01-21 2001-05-09 英特尔公司 处理多个电平触发和边沿触发中断的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5057997A (en) 1989-02-13 1991-10-15 International Business Machines Corp. Interruption systems for externally changing a context of program execution of a programmed processor
IE61336B1 (en) 1989-10-02 1994-11-02 Sportables Limited A method for controlling the operation of a computer to handle interrupts

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421027A (en) * 1991-08-12 1995-05-30 Motorola, Inc. Method and apparatus for generating a pin interrupt request in a digital data processor using a dual function data direction register
US5603035A (en) * 1991-08-22 1997-02-11 Telemecanique Programmable interrupt controller, interrupt system and interrupt control process
US5530875A (en) * 1993-04-29 1996-06-25 Fujitsu Limited Grouping of interrupt sources for efficiency on the fly
US5894577A (en) * 1993-09-22 1999-04-13 Advanced Micro Devices, Inc. Interrupt controller with external in-service indication for power management within a computer system
CN1294707A (zh) * 1998-01-21 2001-05-09 英特尔公司 处理多个电平触发和边沿触发中断的方法和装置

Also Published As

Publication number Publication date
US20020184423A1 (en) 2002-12-05
CN1516838A (zh) 2004-07-28
WO2002093391A1 (en) 2002-11-21
HK1064758A1 (en) 2005-02-04
MXPA03010233A (es) 2004-05-21
TWI250752B (en) 2006-03-01
US6807595B2 (en) 2004-10-19

Similar Documents

Publication Publication Date Title
CN100351825C (zh) 带有优先中断控制器的移动通信设备
CN1066900C (zh) 无线电话的节电式扩展等待方式的操作方法和设备
CN1025401C (zh) 蜂窝式通信系统中的多址联接处理
CN1203696C (zh) 移动通信系统的位置登录方法和装置
CN1787677A (zh) 无线电波状态监视方法和小区重选择方法及其设备
CN1901705A (zh) 基带芯片及基于基带芯片的移动终端实现多模切换的方法
CN1520067A (zh) 信道决定方法及其使用的无线电台站和终端设备
CN1498009A (zh) 无线通信终端
CN101060412A (zh) 以太网电源系统、控制单元、主控模块及以太网电源供电方法
CN1905399A (zh) 一种实现2g网络电调天线集中控制的方法及系统
CN1342382A (zh) 无线基站装置和无线通信方法
CN1701320A (zh) 可重新配置的信号处理模块
CN1555616A (zh) 无线终端装置及其接收操作控制程序
CN1205145A (zh) 信息包收发装置及信息包接收装置
CN100346285C (zh) 处理器芯片与存储控制系统及方法
CN1570907A (zh) 多处理器系统
CN105208611A (zh) 一种减小电路域回落重定向接通延时的方法及装置
CN1338882A (zh) 用于移动无线网中通信业务负荷控制的方法
CN1266955C (zh) Td-scdma系统的无线链路恶化检测与恶化处理方法
CN1174591C (zh) 模式匹配装置
CN1823541A (zh) 通信系统、通信单元和其中的能力节省方法
CN1625854A (zh) 移动台
CN101076163A (zh) Td-scdma/3g/4g终端的dsp固件系统
CN1203706C (zh) 接收电路,具有接收电路的移动终端和接收数据的方法
CN1630293A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1064758

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1064758

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20071128

Termination date: 20210503