具有可指派通用寄存器组的处理器的制作方法

文档序号:6348499阅读:143来源:国知局
专利名称:具有可指派通用寄存器组的处理器的制作方法
技术领域
本申请案涉及微处理器,例如微控制器,且特定来说涉及微处理器或微控制器中所使用的中断控制器。
背景技术
微处理器且特定来说微控制器使用中断控制器来管理多个可能中断源及程序异常处置。中断通常在程序的顺序处理中请求异常。如果处置此中断请求,那么将发生中断服务例程(ISR)的执行。ISR允许程序恰当地处置相应中断源,因此移除中断的请求。然而,进入及退出相应ISR需要上下文保存及恢复。上下文保存及恢复将称作由所述程序执行以确保微处理器以与其在发生中断请求之前相同的状态返回到所述程序的顺序处理的任何操作。此上下文保存及恢复还将称作中断延迟,且将测量为从上下文保存或恢复的第一操作发生的时间开始且在上下文保存及恢复的最后操作发生时结束的时间的单位。ISR 内容保存将称作报头且上下文恢复将称作后同步信号。特定来说,报头可包括与微处理器或微控制器的中央处理单元(CPU)相关联的寄存器组。寄存器组或寄存器堆通常与CPU的算术逻辑单元(ALU)组合使用以对这些寄存器中所存储的数据或地址执行算术及/或逻辑以及数据/地址移动操作。因此,即使此种寄存器组通常被视为CPU的一部分,但出于此申请案的目的,可将术语寄存器组或寄存器堆与术语CPU分开使用。然而,不应从使用这些术语的方式推断出任何限制。寄存器组可在CPU内或外部。ISR的报头或后同步信号可具有变化程度的延迟。因此,具有高ISR延迟的高频率中断请求可消耗大量处理器时间。为减少ISR延迟,微处理器或微控制器可具有用于ISR的单独寄存器组,其称作影子寄存器组。举例来说,微芯片(Microchip)制造的32位微控制器PIC32MX3XX/4XX具有每当服务最高可指派中断优先级时自动切换到影子寄存器组的处理器核心。然而,此已知系统不灵活且可难以调适用于控制管理多个中断源的系统。因此,需要一种更灵活的系统。

发明内容
根据一实施例,一种处理器可包含中央处理单元(CPU);第一 CPU寄存器组;第二 CPU寄存器组;多路复用器逻辑,其用于将所述第一或所述第二 CPU寄存器组与所述CPU 耦合;及控制逻辑,其用于控制所述多路复用器逻辑以在接收到多个中断信号中的至少一者后即刻从所述第一 CPU寄存器组切换到所述第二 CPU寄存器组,其中多个中断信号中的所述至少一者必须满足可编程于所述控制逻辑内的条件。
根据另一实施例,所述条件可为中断优先级。根据又一实施例,所述条件可为中断识别。根据再一实施例,所述处理器可包含多个第二CPU寄存器组。根据另一实施例,所述多路复用器可选择所述第一 CPU寄存器组或所述第二 CPU寄存器组中的一者。根据又一实施例,所述处理器可进一步包含用以选择所述多个第二 CPU寄存器组中的一者的另一多路复用器。根据再一实施例,所述处理器可进一步包含用于确定所述条件的可编程配置寄存器。根据另一实施例,所述处理器可进一步包含用于确定多个条件的多个可编程配置寄存器。根据又一实施例,所述处理器可进一步包含用于选择多个预定指派中的一者的至少两个可编程配置寄存器,每一指派将所述多个第二 CPU寄存器组中的一者与一条件相关联。 根据再一实施例,所述第一配置寄存器可启用或停用可编程数目个可用第二寄存器组且所述第二寄存器组确定所述多个第二寄存器组中的至少一者的指派。根据又一实施例,所述处理器可为具有八个寄存器堆组的微控制器。根据另一实施例,一种用于提供具有中央处理单元(CPU)寄存器组的处理器的方法可包含以下步骤编程用于从第一 CPU寄存器组切换到第二 CPU寄存器组的条件;选择所述第一 CPU寄存器组;及在接收到多个中断信号中的至少一者之后选择所述第二 CPU寄存器组,其中多个中断信号中的所述至少一者满足所述条件。根据所述方法的又一实施例,所述条件可为中断优先级。根据所述方法的再一实施例,所述条件可为中断识别。根据所述方法的又一实施例,所述选择所述第二 CPU寄存器组的步骤包含选择多个第二 CPU寄存器组中的一者。根据所述方法的再一实施例,所述编程条件的步骤可包含将数据写入到至少一个配置寄存器中。根据所述方法的又一实施例, 所述编程条件的步骤可包含将数据写入到多个配置寄存器中。根据所述方法的再一实施例,所述方法可进一步包含确定第二 CPU寄存器组到条件的多个指派且依据至少第一参数及所述条件选择所述指派中的一者的步骤。根据所述方法的又一实施例,所述方法可进一步包含第二参数,其中所述第一参数确定可用第二寄存器组的数目且所述第二参数确定所述多个第二寄存器组中的至少一者的指派。根据所述方法的再一实施例,所述处理器为具有八个寄存器堆组的微控制器。


通过结合附图参照下文说明可获得对本发明及其优点的更全面理解,附图中图1是具有可指派影子寄存器组的微处理器或微控制器的第一实施例的示意性框图;图2是多个影子寄存器组的可能实施方案的示意性框图;图3是多个影子寄存器组的另一可能实施方案的示意性框图;图4是用于选择影子寄存器组的可能控制逻辑的示意性框图;图5是显示依据配置寄存器的内容的可能指派的指派表。虽然已参照本发明的实例性实施例描绘、描述及界定了本发明的各实施例,但此参照并不意味着限定本发明,且不应推断出存在此限定。所揭示的标的物能够在形式及功能上具有大量修改、替代及等效形式,所属领域的技术人员将会联想到这些修改、替代及等效形式并受益于本发明。所描绘及所描述的本发明的各实施例仅为实例,而并非是对本发明范围的穷尽性说明。
具体实施例方式根据各种实施例,微处理器或微控制器可装备有用于多个影子寄存器组的选择系统以改善系统性能且降低装置功率。根据本发明的教示,用户可指派哪一可指派中断优先级将接收影子寄存器组。可在(但不限于)编译时间选择影子组指派以允许编译器产生与优先级相关联的正确序言及结尾。具有一个以上通用寄存器组的集成电路装置(例如,微控制器)可使用至少一个可指派通用寄存器组,以用于允许软件开发者将通用寄存器组与中断优先级等级相关联。 通过能够将通用寄存器组与中断优先级等级相关联,相关联通用寄存器(寄存器组)能够减少中断延迟,而不管中断优先级等级如何。此对于处置以高频率发生但可能未被指派最高优先级的中断可非常有用。图1显示具有可指派影子寄存器组的微处理器或微控制器的第一实施例。中央处理单元(CPU) 110借助多路复用器逻辑150耦合到主寄存器组120或影子寄存器组130。此外,中断控制器140根据所指派的优先级处置多个中断源。可经由一个或一个以上控制线 160将优先级用信号发送到CPU 110。使用控制信号160来控制多路复用器逻辑150。此外,使用一个或一个以上信号170来将一个或一个以上相应中断信号馈送到CPU 110。可使用软件来配置一组影子寄存器130以将优先级等级映射到一个或一个以上通用寄存器影子组。为此,可使用配置寄存器180来个别地将优先级等级指派给一个或一个以上影子寄存器堆130。举例来说,当中断到达中断控制器140时,多路复用器逻辑150 依据配置寄存器180的编程将用户指定的影子组130呈现给CPU 110以用于服务到达的中断。举例来说,第一中断可正在以IMHz的速率发生且另一中断可正在以5kHz的速率发生。根据一个情景,所述5kHz中断必须能够中断所述1MHz,因此必须被设定到较高优先级等级。为节约CPU 110带宽,例如通过在序言/结语期间于主寄存器组120与影子寄存器组130之间切换,用户可期望将影子寄存器组130指派给所述IMHz中断的相同优先级。在此情景中应注意,将所述IMHz中断升高到最高优先级等级在此情况下并非选项。在常规系统中,仅所述5kHz中断将能够使用影子寄存器堆。然而,根据各种实施例,可使影子寄存器堆130的使用与优先级等级同步。根据另一实施例,使用配置寄存器来特定识别中断源,例如特定中断向量,当执行此中断源的相应ISR时会将影子寄存器堆指派给所述中断源。根据此实施例,仅单个中断将致使切换到影子寄存器堆组130,而当使用优先级等级时,此种切换将针对被指派到相应优先级的任一中断发生。图2显示提供多个影子寄存器堆组135a. . η的另一实施例。此处,可使用额外多路复用器逻辑240来选择影子寄存器堆组13 中的一者或可扩展多路复用器逻辑140以选择主寄存器堆组120或所述多个影子寄存器堆组135a. . η中的一者。在此实施例中,可使用用于每一寄存器堆组135a. . η的多个配置寄存器^Oa. . η或用于预界定指派的一组寄存器,如下文将更详细地解释。图3显示其中影子寄存器堆组130且任选地主寄存器堆组120体现于包含多个寄存器堆组页330a. . η的存储器310内的又一实施例。在此实施例中,使用可含有一个或一个以上配置寄存器的控制单元340来设定寄存器堆指针320。在此实施例中,页330a可经配置以形成主寄存器堆组且页330b. . η可形成多个影子寄存器堆。控制单元340依据中断源或中断优先级等级自动将寄存器堆指针320切换到经预先编程的页,如上文所描述。图4显示控制多个影子寄存器堆的特定指派的另一实施例。在此实施例中,使用与选择逻辑430耦合的停用或启用寄存器410及选择寄存器420。选择逻辑430进一步从中断控制器接收优先级信息且输出控制信号供多路复用器选择所述影子寄存器组中的一者。 借助停用/启用寄存器410,举例来说,可限制可使用影子寄存器堆组的数目。举例来说,如果体现八个额外影子寄存器堆组,那么可使用八位寄存器410的每一位来特定启用或停用所述多个影子堆寄存器组中的一者。接着可使用选择寄存器420将可用寄存器特定指派给特定优先级等级。根据一个实施例,举例来说,可使用依据可用寄存器的数目的某些固定指派且可使用选择寄存器420来选择不同指派。图5显示供在具有八个中断优先级等级0到7及八个额外影子堆寄存器组0到7 的系统中使用的可能指派表。停用/启用寄存器410可具有用以启用1、2、4或八个影子寄存器堆组的3个位[2:0]。在此实施例中,值“111”选择单个影子寄存器堆,“110”选择两个影子寄存器堆组,“ 100”选择四个影子寄存器堆组,且“000”选择八个影子寄存器堆组。 选择寄存器也可具有三个位[2:0]以提供八个不同指派。根据此实施例,使用选择寄存器 420及停用寄存器410来选择经预先编程的指派,如图5中所示。根据另一实施例,可以不同方式布置所述表。举例来说,所述指派可根据特定要求而不同。在其它实施例中,所述表可不包括如图5中所示的第一及最后行。如果可用影子组的数目为1,如通过设定停用寄存器410 =“111”所示,那么任何优先级等级将导致切换到影子寄存器堆组0。如果可用影子寄存器堆组的数目为2,如通过设定停用寄存器410 =“110”所示,那么此实施例允许八个不同设定,其中每一设定将影子寄存器堆组1指派给单个优先级,而所有其它优先级使用影子堆寄存器组0。如果可用影子组的数目为4,如通过设定停用寄存器410 = “ 100”所示,那么此实施例允许六个不同设定,其中每一设定具有优先级等级6及7分别到影子寄存器堆组2及3的固定指派及影子寄存器堆组0及1的可变指派。此处,可将影子寄存器堆组1指派给优先级0到5中的一者,而剩余优先级使用影子堆寄存器组0。最后,如果可用影子组的数目为8,如通过设定停用寄存器410 = “000”所示,那么每一优先级等级0到7将导致切换到相应影子寄存器堆组0到7。应注意,举例来说,如果优先级等级0表示主程序,那么影子寄存器堆组0可为主寄存器堆。因此,主寄存器堆与影子寄存器堆之间没有必要存在差别。此外,如在图5中可见,即使所示表特别有用,但其仅给出提供优先级等级到不同影子寄存器堆组的不同更多或更少固定指派的一个特定实例。此表可太具限制性或太复杂且可根据各种其它实施例设计更复杂或较不复杂的指派。因此,本发明极适于实施所述目标并获得所提及以及那些其中固有的结果及优点。虽然所属领域的技术人员可做出众多改变,但此些改变均涵盖于所附权利要求书所界定的本发明的精神内。
权利要求
1.一种处理器,其包含中央处理单元(CPU);第一 CPU寄存器组;第二 CPU寄存器组;多路复用器逻辑,其用于将所述第一或所述第二 CPU寄存器组与所述CPU耦合;控制逻辑,其用于控制所述多路复用器逻辑以在接收到多个中断信号中的至少一者后即刻从所述第一 CPU寄存器组切换到所述第二 CPU寄存器组,其中多个中断信号中的所述至少一者必须满足可编程于所述控制逻辑内的条件。
2.根据权利要求1所述的处理器,其中所述条件为中断优先级。
3.根据权利要求1所述的处理器,其中所述条件为中断识别。
4.根据权利要求1所述的处理器,其包含多个第二CPU寄存器组。
5.根据权利要求4所述的处理器,其中所述多路复用器选择所述第一CPU寄存器组或选择所述第二 CPU寄存器组中的一者。
6.根据权利要求4所述的处理器,其进一步包含用以选择所述多个第二CPU寄存器组中的一者的另一多路复用器。
7.根据权利要求1所述的处理器,其进一步包含用于确定所述条件的可编程配置寄存ο
8.根据权利要求4所述的处理器,其进一步包含用于确定多个条件的多个可编程配置寄存器。
9.根据权利要求4所述的处理器,其进一步包含用于选择多个预定指派中的一者的至少两个可编程配置寄存器,每一指派将所述多个第二 CPU寄存器组中的一者与一条件相关联。
10.根据权利要求9所述的处理器,其中所述第一配置寄存器启用或停用可编程数目个可用第二寄存器组且所述第二寄存器组确定所述多个第二寄存器组中的至少一者的指派。
11.根据权利要求10所述的处理器,其中所述处理器为具有八个寄存器堆组的微控制O
12.一种用于提供具有中央处理单元(CPU)寄存器组的处理器的方法,其包含以下步骤编程用于从第一 CPU寄存器组切换到第二 CPU寄存器组的条件;选择所述第一 CPU寄存器组;及在接收到多个中断信号中的至少一者之后选择所述第二 CPU寄存器组,其中多个中断信号中的所述至少一者满足所述条件。
13.根据权利要求12所述的方法,其中所述条件为中断优先级。
14.根据权利要求12所述的方法,其中所述条件为中断识别。
15.根据权利要求12所述的方法,其中所述选择所述第二CPU寄存器组的步骤包含选择多个第二 CPU寄存器组中的一者。
16.根据权利要求12所述的方法,其中所述编程条件的步骤包含将数据写入到至少一个配置寄存器中。
17.根据权利要求15所述的方法,其中所述编程条件的步骤包含将数据写入到多个配置寄存器中。
18.根据权利要求15所述的方法,其进一步包含确定第二CPU寄存器组到一条件的多个指派且依据至少第一参数及所述条件选择所述指派中的一者的步骤。
19.根据权利要求18所述的方法,其进一步包含第二参数,其中所述第一参数确定可用第二寄存器组的数目且所述第二参数确定所述多个第二寄存器组中的至少一者的指派。
20.根据权利要求19所述的方法,其中所述处理器为具有八个寄存器堆组的微控制ο
全文摘要
本发明揭示一种处理器,其具有中央处理单元(CPU);第一CPU寄存器组;第二CPU寄存器组;多路复用器逻辑,其用于将所述第一或所述第二CPU寄存器组与所述CPU耦合;及控制逻辑,其用于控制所述多路复用器逻辑以在接收到多个中断信号中的至少一者后即刻从所述第一CPU寄存器组切换到所述第二CPU寄存器组,其中多个中断信号中的所述至少一者必须满足可编程于所述控制逻辑内的条件。
文档编号G06F13/26GK102334108SQ201080009765
公开日2012年1月25日 申请日期2010年4月12日 优先权日2009年4月13日
发明者泰勒·奈·博迪, 约瑟夫·特斯, 罗伯特·肖恩·贾斯蒂斯 申请人:密克罗奇普技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1