CN107251001A - 具有双模式中断的微控制器或微处理器 - Google Patents
具有双模式中断的微控制器或微处理器 Download PDFInfo
- Publication number
- CN107251001A CN107251001A CN201680011051.1A CN201680011051A CN107251001A CN 107251001 A CN107251001 A CN 107251001A CN 201680011051 A CN201680011051 A CN 201680011051A CN 107251001 A CN107251001 A CN 107251001A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- cpu
- microcontroller
- interruption
- register
- 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.)
- Granted
Links
- 239000013598 vector Substances 0.000 claims abstract description 49
- 230000002093 peripheral effect Effects 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims description 31
- 238000006073 displacement reaction Methods 0.000 claims description 11
- 238000004321 preservation Methods 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 5
- 238000013500 data storage Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Microcomputers (AREA)
- Bus Control (AREA)
Abstract
本发明提供一种微控制器,其具有:CPU,其具有与中断控制器耦合的至少一个中断输入;多个***装置;及模式寄存器,其包括控制所述微控制器的操作模式的至少一个位。所述微控制器经配置成以第一操作模式操作,其中在由所述微控制器的***装置断言中断之后,所述中断控制器即刻将中断信号转送到所述CPU且所述***装置设置相关联中断标志,其中所述中断致使所述CPU分支到与所述中断输入相关联的预定中断地址。在第二操作模式中,在由所述微控制器的***装置断言中断之后,所述中断控制器即刻将中断信号转送到所述CPU,且所述CPU从产生所述中断的所述***装置接收额外中断信息,其中所述额外中断信息用于产生向量地址。
Description
相关申请案的交叉参考
此申请案主张2015年3月6日申请的共同拥有的第62/129,481号美国临时专利申请案的优先权,所述美国临时专利申请案特此出于所有目的以引用的方式并入本文。
技术领域
本发明涉及微处理器或微控制器。
背景技术
微控制器是包括中央处理单元(CPU)、存储器、I/O接口及多个不同***装置(例如串行接口、模/数转换器、PWM调制器、定时器等等)的芯片上的单芯片***。一般地说,诸多应用无需大量处理电力。因此,为保持低成本,可通常无需使用任何类型的外部中断或内部中断或使用有限数目个中断来实施某些微控制器(例如具有有限量的程序存储器及数据存储器的8位微控制器),这是归因于此类中断逻辑需要裸片上的显著面积的事实。例如,制造商的基线微控制器系列可包含不包括任何中断能力或仅单个中断的装置。中型系列可经设计以允许单个中断及相关联中断控制器,所述相关联中断控制器接收多个中断且产生馈入到CPU的单个中断输入的输出信号。这些微控制器类型两者均可包括具有单个中断输入的CPU,其中当断言时致使程序执行完成当前待处理指令且接着分支到经定义地址(中断向量)(例如,地址0004h)。制造商的更高端系列的微控制器可包含具有CPU的装置,所述CPU具有:两个中断输入,一者被指派低优先级且一者被指派高优先级;以及中断控制器,其用于将来自各种源的中断分布到所述CPU的这两个中断输入。
因此,本申请案主要探讨包括具有有限数目个中断(例如,单个中断输入或两个中断输入)及具有有限中断功能性的相关联中断控制器的中央处理单元的微控制器。在诸多应用中,这可仍是不够的且必须选择更高端装置(例如,16位微控制器或32位微控制器),这是归因于8位微控制器的中断能力太具有限制性的事实。此外,如果此类微控制器意欲具有增加数目个***装置,那么中央处理单元可能由于有限中断功能性而不能够支持相关联中断功能。
发明内容
因此,需要具有经改进或更灵活中断处置的微控制器。
根据实施例,一种微控制器可包括:中央处理单元,其包括至少一个中断输入;中断控制器,其经配置以将至少一个中断信号提供到所述中央处理单元的所述至少一个中断输入;多个***装置,其与所述中央处理单元及所述中断控制器耦合;及模式寄存器,其包括控制所述微控制器的操作模式的至少一个位,其中所述微控制器经配置成以第一模式及第二模式操作,其中在所述第一操作模式中,在由所述微控制器的***装置断言中断之后,所述中断控制器将中断信号转送到所述中央处理单元且所述***装置设置相关联中断标志,其中所述中断致使所述中央处理单元分支到与所述中断输入相关联的预定中断地址,其中在所述第二操作模式中,在由所述微控制器的***装置断言中断之后,所述中断控制器将中断信号转送到所述中央处理单元且所述中央处理单元从产生所述中断的所述***装置接收额外中断信息,其中所述额外中断信息用于产生向量地址。
根据进一步实施例,在所述第二操作模式中,在接收中断之后,所述中央处理单元可经配置以在进入服务例程之前执行上下文保存,且其中在所述上下文保存之后所述中央处理单元的寄存器接收经配置以识别中断源的数据,。根据进一步实施例,所述寄存器可为算术逻辑单元的工作寄存器。根据进一步实施例,由产生中断的***装置提供的所述额外信息可用于使常数值移位,且其中所述经移位常数值经移动到所述寄存器中。根据进一步实施例,所述额外信息可为直接存储于CPU的工作寄存器中的中断号。根据进一步实施例,在所述第二操作模式中,可提供存储基地址的基址寄存器,且取决于中断源的位移地址经转送到中央处理单元,其中通过将所述向量地址加到存储于所述基址寄存器中的所述基地址而产生中断向量。根据进一步实施例,在所述第二操作模式中,微控制器可经编程以提供中断服务例程,所述中断服务例程评估工作寄存器的内容以分支到与产生所述中断的中断源相关联的相应服务例程。根据进一步实施例,在所述第一模式中,所述微控制器可经编程以提供中断服务例程,所述中断服务例程轮询特殊功能寄存器中的中断标志以确定产生所述中断的中断源。根据进一步实施例,中央处理单元可包括仅单个中断输入。根据进一步实施例,所述中央处理单元可包括仅第一中断输入及第二中断输入,其中所述第一中断输入具有高于所述第二中断输入的优先级。根据进一步实施例,当较高优先级中断中断较低优先级服务例程时,所述较高优先级中断可经配置以清除较低优先级中断,且相关联服务例程直接返回到主代码而无需通过所述低优先级服务例程返回。根据进一步实施例,当较高优先级中断中断较低优先级服务例程时,所述较高优先级中断可经配置以直接返回到所述较低优先级中断服务例程而无需返回到主代码。根据进一步实施例,中断控制器可包括可控制逻辑以启用从所述***装置接收的中断。
根据另一实施例,一种用于在微控制器内提供中断功能性的方法,所述微控制器包括中央处理单元(其包括至少一个中断输入)及中断控制器(其经配置以将至少一个中断信号提供到所述中央处理单元的所述至少一个中断输入),所述方法可包括以下步骤:设置第一操作模式或第二操作模式;由所述中断控制器接收中断;且当以第一操作模式操作时,由所述中断控制器将中断信号转送到所述中央处理单元且设置相关联中断标志,其中所述中断致使所述中央处理单元分支到与所述中断输入相关联的预定中断地址;且当以所述第二操作模式操作时,由所述中断控制器将中断信号转送到所述中央处理单元且由所述中央处理单元从产生所述中断的所述***装置接收额外中断信息,其中所述额外中断信息用于产生向量地址。
根据所述方法的进一步实施例,在所述第二操作模式中,在接收中断之后,所述方法可在进入服务例程之前执行上下文保存,及在所述上下文保存之后由经配置以识别中断源的所述中央处理单元接收额外信息,及将所述额外信息或从所述额外信息导出的数据存储于寄存器中。根据所述方法的进一步实施例,所述额外信息可为直接存储于CPU的工作寄存器中的中断号。根据所述方法的进一步实施例,所述方法可进一步包括在使用所述数据进入所述服务例程之后计算地址及分支到所述地址以服务所述中断的步骤。根据所述方法的进一步实施例,所述数据可用于使常数值移位,且其中所述经移位常数值经移动到所述寄存器中。根据所述方法的进一步实施例,所述方法可进一步包括使用所述经移位值作为位移地址以分支到地址以服务所述中断的步骤。根据所述方法的进一步实施例,在第二操作模式中,可提供存储基地址的基址寄存器,且取决于中断源的位移地址经转送到所述中央处理单元,且通过将向量地址加到存储于所述基址寄存器中的基地址而产生中断向量。根据所述方法的进一步实施例,在所述第二操作模式中,中断服务例程可评估所述工作寄存器的内容以分支到提供与产生所述中断的中断源相关联的指令的相应地址。根据所述方法的进一步实施例,在所述第一模式中,中断服务例程可轮询特殊功能寄存器中的中断标志以确定产生所述中断的中断源。根据所述方法的进一步实施例,所述中央处理单元可包括仅单个中断输入。根据所述方法的进一步实施例,所述中央处理单元可包括仅第一中断输入及第二中断输入,其中所述第一中断输入具有高于所述第二中断输入的优先级。根据所述方法的进一步实施例,当较高优先级中断中断较低优先级服务例程时,所述较高优先级中断可经配置以清除较低优先级中断,且相关联服务例程可直接返回到主代码而无需通过所述低优先级服务例程返回。根据所述方法的进一步实施例,当较高优先级中断中断较低优先级服务例程时,所述较高优先级中断可经配置以直接返回到所述较低优先级中断服务例程而无需返回到主代码。
根据又一实施例,一种微控制器可包括:中央处理单元,其包括至少一个中断输入及与算术逻辑单元耦合的寄存器;中断控制器,其经配置以将至少一个中断信号提供到所述中央处理单元的至少一个中断输入;多个***装置,其与所述中央处理单元及所述中断控制器耦合;其中在由所述微控制器的***装置断言中断之后,所述中断控制器将中断信号转送到所述中央处理单元,且所述中央处理单元从产生所述中断的所述***装置接收额外中断信息,其中所述额外中断信息或从所述额外中断信息导出的数据存储于所述寄存器中。
根据上文微控制器的进一步实施例,在接收中断之后,中央处理单元可经配置以在进入服务例程之前执行上下文保存,且所述寄存器可在所述上下文保存之后接收额外中断信息。根据上文微控制器的进一步实施例,所述额外信息可用于使常数值移位,且其中所述经移位常数值经移动到所述寄存器中。根据上文微控制器的进一步实施例,所述额外信息可为直接存储于CPU的工作寄存器中的中断号。根据上文微控制器的进一步实施例,所述微控制器可经编程以提供中断服务例程,其评估工作寄存器的内容以分支到与产生中断的中断源相关联的相应服务例程。
附图说明
图1展示根据实施例的微控制器的框图;
图2展示中断控制器逻辑的实施例;
图3展示可如何产生向量地址的实施例;
图4展示向量地址可如何移动到工作寄存器的实施例;
图5展示其中额外中断信息移动到寄存器的微控制器的实施例;
图6展示使用高优先级中断及低优先级中断的***的状态图;
图7展示其中额外中断信息移动到寄存器的微控制器的另一实施例;
图8展示中断控制器逻辑的另一实施例。
具体实施方式
根据各种实施例,可创建与现有微控制器设计兼容的向量中断***。下文论述的特征不限于8位微控制器,而是如果此类装置包括不充足中断控制架构,那么所述特征也可应用于16位微控制器或32位微控制器。根据各种实施例,维持现有中断处置且提供第二操作模式。在第一操作模式中,具有单个中断输入的此微控制器可根据原始设计操作,例如,分支到单个预定义中断向量(例如,地址0004h)。在第二操作模式中,微控制器可使用与单个中断输入相关联的多个中断向量。
对于可由新核心架构设计实现的扩展数目个***装置,目前现有非向量微控制器***设计可能是不够的。向量中断***可允许相对于个别中断功能性整合此类***装置。
特定地说,由本申请案的受让人制造的微控制器(例如来自PIC10/12/16系列的微控制器)在程序存储器中的位置0004x处均使用单个中断向量。来自PIC18系列的更先进微控制器使用双优先级向量***。
受让人的PIC16微控制器系列不提供向量。更先进PIC18系列不具有软件解决方案且不具有监视中断控制。此外,更先进PIC18系列以及PIC16系列须微调延时,特定地说,这是归因于一些微控制器上的中断源的绝对数目。PIC16/18系列两者均具有块以使加载器实施方案启动。
根据具有允许向量表移动以支持启动加载器的基地址寄存器的各种实施例而扩展现有常规PIC18向量中断***。
根据实施例,可通过移除到(例如)来自转变为另一待处理高中断的高中断、转变为另一待处理低中断的低中断及转变为低中断的高中断主指令的返回来微调延时时间。换句话来说,可移除从中断指令的返回且***直接跳跃到下一待处理中断例程。
RTOS支持可存取高优先级中断及低优先级中断两者的上下文。
根据其它实施例,对于使用高优先级定时器中断以监视低优先级通信***装置的***,提供无需使用全局中断启用位GIE来清除经中断低优先级中断的能力。根据各种实施例,如果未准备好呈现从低优先级中断移除相应返回向量,那么可将POP指令加到核心。
根据又另一实施例,低优先级中断及高优先级中断两者的上下文保存通过上下文寄存器是可见的。通过允许在低存取与高存取之间双态切换的上下文控制寄存器保存寄存器空间。经改善微控制器具有清除命令上的低上下文以支持看门狗功能的能力。
根据一些实施例的解决方案与旧型模式选项是向后兼容的以中断到位置0004x。通过加入在分支到0004x之前将中断号加载到W寄存器中的功能来扩展所述模式。
根据一些实施例,可使用2个优先级等级实施此双模式向量中断,所述双模式向量中断采用直接向量表与用于基于软件***的向量号码两者。
图1展示具有含单个中断输入的CPU 110的微控制器100的框图。CPU 110经由***总线160与多个***装置130a到n耦合。可根据如所展示般具有单独数据存储器140及程序存储器150的哈佛(Harvard)架构来设计CPU 110。然而,所述架构也可使用具有统一存储器空间的冯·诺依曼(von Neumann)架构。
可通过***总线存取数据存储器140且程序存储器150可具有其自身总线。然而,可选择其它设计。***装置130a到n的部分或其全部可产生馈入到中断控制器120的中断信号。中断控制器可产生馈入到CPU 110的相应输入的单个中断信号。
图2展示以第一模式操作的中断控制器120的可能实施方案的框图。可提供允许个别地启用或停用多个中断中的一者,且存储可由如2中左侧上展示的微控制器的各种***装置产生的相关联中断标志的多个特殊功能寄存器。图2的右侧展示进一步中断控制寄存器位,其允许(例如)经由全局中断启用位GIE大体上启用或停用所有中断。中断控制寄存器可包括进一步位,以控制如图2的中心中所展示的***中断。由PEIE位处置所有***装置中断的单独启用/停用控制。由启用位INTE及相关联标志INTF控制外部中断。此外,由RB端口改变中断启用位及相关联标志RBIF提供外部端口改变感测控制。根据其它实施例,此功能性可扩展到其它端口。最后可在此等级上处置定时器0溢出中断。在此实施例中,INTE/INTF、RBIE/RBIF及T0IE/T0IF是“***中断”,然而,根据其它实施例,所有中断可被当做不具有特定PEIE启用位的***装置中断。这些中断架构允许使用CPU处的单个中断输入的多个中断。为实现此情况,中断例程必须查询相应标志以在各种源之间加以区分。对于CPU,每中断看起来一样,这是因为仅提供单个中断输入。然而,当每一中断源产生中断时,其可设置相关联标志。因此,中断处置器软件必须检查中断处置例程中的这些标志,以确定谁断言中断。此外,一旦中断已经被处置,那么服务例程通常复位相应标志。其它逻辑可用于允许处置具有单个中断输入的多个中断源。图2仅展示如在由本申请案的受让人制造的诸多中型微控制器中实施的一个可能解决方案。
图3中展示向量***。每一中断提供不同向量且所述中断源被加到基址寄存器以选择适当中断向量。因此,与上文所描述的其中仅产生单个中断向量(例如,向量0004h)的中断处置相反,此***需要在中断信号产生时产生额外信息(例如,向量位移)。虽然仍在CPU处使用仅单个中断输入,但是CPU现在将取决于经提供到CPU的额外信息而分支到不同中断向量。将在下文更详细解释使用此额外信息而不需轮询任何标志以实现分支的不同技术。CPU可直接产生替换固定单个中断向量的相应向量,或使用所述固定单个中断向量且提供具有硬件协助或不具有硬件协助的软件分支。然而,在此第二操作模式中,不存在对可显著地减小软件额外负担的中断标志轮询的必要性。
可提供模式控制寄存器170,其允许中断控制器及CPU以第一模式(兼容性模式)操作,在所述第一模式中仅产生单个中断信号,且软件必须轮询如图1中所展示的中断标志。根据各种实施例,现提供通过如图1中所展示的额外数据线180转送中断信息的第二模式。中断信息可为(例如)向量位移或实际中断号,或允许中断向量***的实施的任何其它信息。可由***装置130a到n提供中断信息(例如(例如)中断号)。因此,(例如)如图1中所展示,***装置130a到n与中断控制器120之间的每一耦合可包含提供中断信息(例如中断号)的额外线。替代地,此类信息可通过***总线160被转送到中断控制器120或直接被转送到CPU 110。在一个实施例中,向量位移自动加到单个固定中断向量地址。因此,***针对每一中断具有不同进入点。可设置位移,使得足够指令可被置于两个毗邻中断号之间以分支到相关联服务例程。替代地,中断信息经直接加载到寄存器(例如,特殊功能寄存器或算术逻辑单元的工作寄存器)中。此解决方案允许在进入固定中断向量地址处的服务例程之后立即执行的软件分支中使用此数据,如将在下文更详细解释。
图4展示根据一个实施例的第二模式,其中一般中断向量处于传统位置(例如,地址0004h处),但是中断号在上下文保存之后被传递到CPU的工作寄存器W中,以提供向后兼容解决方案,外加构建基于软件的解决方案的能力。如果额外信息(例如中断号)被传递到携载由其它例程使用的信息的寄存器(例如工作寄存器)中,那么上下文保存仅须在额外信息传递之前。工作寄存器将被重写,且因此其处于当进入中断服务例程时必须保存的上下文的其它特殊功能寄存器部分当中。因此,在进入中断服务例程中之后,工作寄存器包含中断源,其允许以下服务例程针对此特定源分支到正确服务指令。可由根据中断号计算的向量或通过仅查询工作寄存器且分支到相应例程来实现此情况。向量中断***的此特定解决方案具有与由受让人制造的现有微控制器中断***兼容的优点。替代地,此信息可稍后用于共同中断服务例程中,所述共同中断服务例程首先执行所有经指派中断所共有的指令,且接着分支到个别例程。使用经存储于寄存器中的信息的其它软件解决方案是可能的。
图5展示具有两个中断输入125a及125b的微控制器。第一输入125a可被指派高优先级,且第二输入125b可被指派低优先级。因此,输入125a处的高优先级中断能够中断待处理的低优先级中断例程,而输入125b处的低优先级中断不能中断待处理高优先级中断例程。如果存在具有相同优先级或更高优先级的待处理中断,那么***也具有停留于中断中的能力。根据各种实施例,可以与上文描述(通过允许当以第二模式操作时,每一中断输入通过线180也接收额外信息(例如,中断号))相同的方式来增强此***。因此,上文所描述的增强不限于具有含单个中断输入的CPU,而是可与具有一个以上中断(其中每一中断或其中的至少一者如上文描述那样增强)的CPU一起使用的***。
根据一个实施例,所述增强可进一步用于仅使用如上文所描述的第二模式的单个中断模式中。此实施例允许减少的硬件解决方案。根据此实施例,额外信息直接加载到CPU的寄存器(优选地,ALU的工作寄存器)中。此解决方案提供无需必须译码信息且自动设置相应中断向量的硬件的向量中断***的灵活性。
图6中的状态图展示在此两优先级***中可能的各种转变。此***也可具有较高优先级中断清除较低优先级中断且直接返回到主代码而无需通过所述低优先级返回的能力。
图5指示额外信息被直接加载到CPU内的算术逻辑单元(ALU)的工作寄存器115中。根据一个实施例,可在完成保存工作寄存器的内容的上下文安全之后直接完成此传递。上下文安全将某些寄存器的内容自动传递到堆叠上,或传递到不具有软件额外负担的阴影寄存器中。根据其它实施例,可与上下文安全平行实现进入不同寄存器(例如,不可另外使用的专用寄存器)中的传递。因此,根据其它实施方案,额外信息无需被传递到工作寄存器中,而是可也被传递到另一专用特殊功能寄存器中。然而,工作寄存器的使用是有利的,由于此寄存器可直接用于操纵地址。相同情况适用于任何其它CPU寄存器,且因此取决于CPU架构。
图7展示单个操作模式或具有两种模式的操作模式的又一实施例。在此处,额外信息(例如中断号)控制移位寄存器185(例如,使用0001h或0002h或任何其它适当位移号码默认的移位寄存器),接着,经移位结果直接移动到工作寄存器。此解决方案提供可直接用于存取跳跃表而无需在中断服务例程内执行进一步地址计算指令的位移值。如图7中所展示,仅提供单个中断输入Int 0。然而,此设计也可应用于具有一个以上中断输入的CPU。
根据两种操作模式的其它实施方案,如上文所提及,向量无需由中断服务例程内的软件计算。虽然此解决方案提供向后兼容性,但是其它架构可允许当接收中断时直接应用的向量的硬件计算,由此允许取决于所提供的向量地址直接跳跃到各种向量地址。
所述***经设计在8位架构(尤其在由本申请案的受让人设计的此类8位架构)内工作。然而,所提出的实施方案也可应用于其它8位***以及使用对应中断逻辑的16位***或32位***。
Claims (31)
1.一种微控制器,其包括:
中央处理单元,其包括至少一个中断输入;
中断控制器,其经配置以将至少一个中断信号提供到所述中央处理单元的所述至少一个中断输入;
多个***装置,其与所述中央处理单元及所述中断控制器耦合;
模式寄存器,其包括控制所述微控制器的操作模式的至少一个位,其中所述微控制器经配置成以第一模式及第二模式操作,其中在所述第一操作模式中,在由所述微控制器的***装置断言中断之后,所述中断控制器即刻将中断信号转送到所述中央处理单元,且所述***装置设置相关联中断标志,其中所述中断致使所述中央处理单元分支到与所述中断输入相关联的预定中断地址;
且其中在所述第二操作模式中,在由所述微控制器的***装置断言中断之后,所述中断控制器即刻将中断信号转送到所述中央处理单元,且所述中央处理单元从产生所述中断的所述***装置接收额外中断信息,其中所述额外中断信息用于产生向量地址。
2.根据权利要求1所述的微控制器,其中在所述第二操作模式中,在接收中断之后,所述中央处理单元经配置以在进入服务例程之前执行上下文保存,且其中在所述上下文保存之后所述中央处理单元的寄存器接收经配置以识别中断源的数据。
3.根据前述权利要求中任一权利要求所述的微控制器,其中所述寄存器是算术逻辑单元的工作寄存器。
4.根据前述权利要求中任一权利要求所述的微控制器,其中由产生所述中断的***装置提供的所述额外信息用于使常数值移位,且其中所述经移位常数值被移动到所述寄存器中。
5.根据前述权利要求中任一权利要求所述的微控制器,其中所述额外信息是直接被存储于所述CPU的工作寄存器中的中断号。
6.根据前述权利要求中任一权利要求所述的微控制器,其中在所述第二操作模式中,提供存储基地址的基址寄存器,且取决于中断源的位移地址被转送到所述中央处理单元,其中通过将所述向量地址加到存储于所述基址寄存器中的所述基地址来产生中断向量。
7.根据前述权利要求中任一权利要求所述的微控制器,其中在所述第二模式中,所述微控制器经编程以提供中断服务例程,所述中断服务例程评估所述工作寄存器的内容以分支到与产生所述中断的中断源相关联的相应服务例程。
8.根据前述权利要求中任一权利要求所述的微控制器,其中在所述第一模式中,所述微控制器经编程以提供中断服务例程,所述中断服务例程轮询特殊功能寄存器中的中断标志以确定产生所述中断的中断源。
9.根据前述权利要求中任一权利要求所述的微控制器,其中所述中央处理单元包括仅单个中断输入。
10.根据前述权利要求中任一权利要求所述的微控制器,其中所述中央处理单元包括仅第一中断输入及第二中断输入,其中所述第一中断输入具有高于所述第二中断输入的优先级。
11.根据权利要求10所述的微控制器,其中当较高优先级中断中断较低优先级服务例程时,所述较高优先级中断经配置以清除较低优先级中断,且相关联服务例程直接返回到主代码而无需通过所述低优先级服务例程返回。
12.根据权利要求10所述的微控制器,其中当较高优先级中断中断较低优先级服务例程时,所述较高优先级中断经配置以直接返回到所述较低优先级中断服务例程而无需返回到主代码。
13.根据前述权利要求中任一权利要求所述的微控制器,其中中断控制器包括可控制逻辑以启用从所述***装置接收的中断。
14.一种用于在微控制器内提供中断功能性的方法,所述微控制器包括具有至少一个中断输入的中央处理单元及经配置以将至少一个中断信号提供到所述中央处理单元的所述至少一个中断输入的中断控制器,所述方法包括:
设置第一操作模式或第二操作模式;
由所述中断控制器接收中断;及
当以所述第一操作模式操作时,由所述中断控制器将中断信号转送到所述中央处理单元且设置相关联中断标志,其中所述中断致使所述中央处理单元分支到与所述中断输入相关联的预定中断地址;及
当以所述第二操作模式操作时,由所述中断控制器将中断信号转送到所述中央处理单元且由所述中央处理单元从产生所述中断的所述***装置接收额外中断信息,其中所述额外中断信息用于产生向量地址。
15.根据权利要求14所述的方法,其中在所述第二操作模式中,在接收中断之后,在进入服务例程之前执行上下文保存,及在所述上下文保存之后由所述中央处理单元接收经配置以识别中断源的额外信息,及将所述额外信息或从所述额外信息导出的数据存储于寄存器中。
16.根据权利要求15所述的方法,其中所述额外信息是直接被存储于所述CPU的工作寄存器中的中断号。
17.根据权利要求15或权利要求16所述的方法,其进一步包括:在进入所述服务例程之后使用所述数据来计算地址,及分支到所述地址以服务所述中断。
18.根据权利要求15到17中任一权利要求所述的方法,其中所述数据用于使常数值移位,且其中所述经移位常数值被移动到所述寄存器中。
19.根据权利要求18所述的方法,其进一步包括:使用所述经移位值作为位移地址,以分支到地址以服务所述中断。
20.根据权利要求14到19中任一权利要求所述的方法,其中在所述第二操作模式中,提供存储基地址的基址寄存器,且取决于中断源的位移地址被转送到所述中央处理单元,及通过将所述向量地址加到存储于所述基址寄存器中的所述基地址来产生中断向量。
21.根据权利要求16到20中任一权利要求所述的方法,其中在所述第二操作模式中,中断服务例程评估所述工作寄存器的内容以分支到提供与产生所述中断的中断源相关联的指令的相应地址。
22.根据权利要求14到21中任一权利要求所述的方法,其中在所述第一模式中,中断服务例程轮询特殊功能寄存器中的中断标志以确定产生所述中断的中断源。
23.根据权利要求14到22中任一权利要求所述的方法,其中所述中央处理单元包括仅单个中断输入。
24.根据权利要求14到22中任一权利要求所述的方法,其中所述中央处理单元包括仅第一中断输入及第二中断输入,其中所述第一中断输入具有高于所述第二中断输入的优先级。
25.根据权利要求24所述的方法,其中当较高优先级中断中断较低优先级服务例程时,所述较高优先级中断经配置以清除较低优先级中断,且相关联服务例程直接返回到主代码而无需通过所述低优先级服务例程返回。
26.根据权利要求24所述的方法,其中当较高优先级中断中断较低优先级服务例程时,所述较高优先级中断经配置以直接返回到所述较低优先级中断服务例程而无需返回到主代码。
27.一种微控制器,其包括:
中央处理单元,其包括至少一个中断输入及与算术逻辑单元耦合的寄存器;
中断控制器,其经配置以将至少一个中断信号提供到所述中央处理单元的所述至少一个中断输入;
多个***装置,其与所述中央处理单元及所述中断控制器耦合;
其中在由所述微控制器的***装置断言中断之后,所述中断控制器即刻将中断信号转送到所述中央处理单元,且所述中央处理单元从产生所述中断的所述***装置接收额外中断信息,其中所述额外中断信息或从所述额外中断信息导出的数据被存储于所述寄存器中。
28.根据权利要求27所述的微控制器,其中在接收中断之后,所述中央处理单元经配置以在进入服务例程之前执行上下文保存,且其中在所述上下文保存之后所述寄存器接收所述额外中断信息。
29.根据权利要求27或权利要求28所述的微控制器,其中所述额外信息用于使常数值移位,且其中所述经移位常数值被移动到所述寄存器中。
30.根据权利要求27或权利要求28所述的微控制器,其中所述额外信息是直接被存储于所述CPU的工作寄存器中的中断号。
31.根据权利要求27到30中任一权利要求所述的微控制器,其中所述微控制器经编程以提供中断服务例程,所述中断服务例程评估所述工作寄存器的内容以分支到与产生所述中断的中断源相关联的相应服务例程。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562129481P | 2015-03-06 | 2015-03-06 | |
US62/129,481 | 2015-03-06 | ||
US15/060,553 | 2016-03-03 | ||
US15/060,553 US10067892B2 (en) | 2015-03-06 | 2016-03-03 | Microcontroller or microprocessor with dual mode interrupt |
PCT/US2016/020942 WO2016144777A1 (en) | 2015-03-06 | 2016-03-04 | Microcontroller or microprocessor with dual mode interrupt |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107251001A true CN107251001A (zh) | 2017-10-13 |
CN107251001B CN107251001B (zh) | 2020-08-04 |
Family
ID=56849888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680011051.1A Active CN107251001B (zh) | 2015-03-06 | 2016-03-04 | 具有双模式中断的微控制器或微处理器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10067892B2 (zh) |
EP (1) | EP3265921B1 (zh) |
KR (1) | KR20170122758A (zh) |
CN (1) | CN107251001B (zh) |
TW (1) | TW201638770A (zh) |
WO (1) | WO2016144777A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554979A (zh) * | 2018-05-31 | 2019-12-10 | 瑞昱半导体股份有限公司 | 计时装置及其运行方法 |
CN111045730A (zh) * | 2019-12-12 | 2020-04-21 | 南京沁恒微电子股份有限公司 | 一种用于risc-v架构的硬件快速中断处理***及其方法 |
CN111466085A (zh) * | 2017-12-15 | 2020-07-28 | 微芯片技术股份有限公司 | 微控制器的自主处理单元以及相关的***、方法和设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426528A (zh) * | 2017-09-05 | 2019-03-05 | 东软集团股份有限公司 | 实现软件版本选择的方法、装置及存储介质、程序产品 |
US11630789B2 (en) * | 2020-09-11 | 2023-04-18 | Apple Inc. | Scalable interrupts |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6654839B1 (en) * | 1999-03-23 | 2003-11-25 | Seiko Epson Corporation | Interrupt controller, asic, and electronic equipment |
CN103544125A (zh) * | 2012-07-12 | 2014-01-29 | 深圳市中兴微电子技术有限公司 | 中断的控制方法、中断的处理方法、中断控制器和处理器 |
CN103874990A (zh) * | 2011-10-04 | 2014-06-18 | 高通股份有限公司 | 到多线程处理器的低等待时间两级中断控制器接口 |
CN104281217A (zh) * | 2013-07-11 | 2015-01-14 | 瑞萨电子株式会社 | 微型计算机 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0212432A (ja) * | 1988-06-30 | 1990-01-17 | Nec Corp | データ処理装置 |
US5440747A (en) * | 1993-09-27 | 1995-08-08 | Hitachi America, Ltd. | Data processor with control logic for storing operation mode status and associated method |
US6202104B1 (en) | 1998-07-28 | 2001-03-13 | Siemens Aktiengesellschaft | Processor having a clock driven CPU with static design |
US7793025B2 (en) * | 2008-03-28 | 2010-09-07 | Freescale Semiconductor, Inc. | Hardware managed context sensitive interrupt priority level control |
-
2016
- 2016-03-03 US US15/060,553 patent/US10067892B2/en active Active
- 2016-03-04 CN CN201680011051.1A patent/CN107251001B/zh active Active
- 2016-03-04 WO PCT/US2016/020942 patent/WO2016144777A1/en active Application Filing
- 2016-03-04 KR KR1020177024324A patent/KR20170122758A/ko unknown
- 2016-03-04 EP EP16710384.5A patent/EP3265921B1/en active Active
- 2016-03-07 TW TW105106920A patent/TW201638770A/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6654839B1 (en) * | 1999-03-23 | 2003-11-25 | Seiko Epson Corporation | Interrupt controller, asic, and electronic equipment |
CN103874990A (zh) * | 2011-10-04 | 2014-06-18 | 高通股份有限公司 | 到多线程处理器的低等待时间两级中断控制器接口 |
CN103544125A (zh) * | 2012-07-12 | 2014-01-29 | 深圳市中兴微电子技术有限公司 | 中断的控制方法、中断的处理方法、中断控制器和处理器 |
CN104281217A (zh) * | 2013-07-11 | 2015-01-14 | 瑞萨电子株式会社 | 微型计算机 |
US20150019779A1 (en) * | 2013-07-11 | 2015-01-15 | Renesas Electronics Corporation | Microcomputer |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111466085A (zh) * | 2017-12-15 | 2020-07-28 | 微芯片技术股份有限公司 | 微控制器的自主处理单元以及相关的***、方法和设备 |
CN111466085B (zh) * | 2017-12-15 | 2021-11-30 | 微芯片技术股份有限公司 | 微控制器的自主处理单元以及相关的***、方法和设备 |
CN110554979A (zh) * | 2018-05-31 | 2019-12-10 | 瑞昱半导体股份有限公司 | 计时装置及其运行方法 |
CN111045730A (zh) * | 2019-12-12 | 2020-04-21 | 南京沁恒微电子股份有限公司 | 一种用于risc-v架构的硬件快速中断处理***及其方法 |
CN111045730B (zh) * | 2019-12-12 | 2023-07-21 | 南京沁恒微电子股份有限公司 | 一种用于risc-v架构的硬件快速中断处理***及其方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201638770A (zh) | 2016-11-01 |
EP3265921A1 (en) | 2018-01-10 |
WO2016144777A1 (en) | 2016-09-15 |
KR20170122758A (ko) | 2017-11-06 |
US10067892B2 (en) | 2018-09-04 |
EP3265921B1 (en) | 2020-04-29 |
CN107251001B (zh) | 2020-08-04 |
US20160259741A1 (en) | 2016-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107251001A (zh) | 具有双模式中断的微控制器或微处理器 | |
CN105579953B (zh) | 灵活引导程序代码架构 | |
EP3258611B1 (en) | Mobile device having near field wireless communication function | |
US7162617B2 (en) | Data processor with changeable architecture | |
JP2008502057A (ja) | コンフィグラブルな特徴選択機構 | |
CN105900105A (zh) | 用于多操作***环境的介质保护策略实施 | |
CN104049953A (zh) | 用于合并操作掩码的未经掩码元素的处理器、方法、***和指令 | |
CN104007954B (zh) | 处理器和用于处理器的控制方法 | |
CN106663000A (zh) | 当从异常返回时避免对不可屏蔽中断的过早启用 | |
US20090172229A1 (en) | Methods for selecting cores to execute system management interrupts | |
CN105874436A (zh) | 用于自主存储器的方法及*** | |
CN105550029A (zh) | 一种进程调度方法及装置 | |
CN109992299A (zh) | 用于计算两个区块操作数中的半字节的数量积的***和方法 | |
US6978358B2 (en) | Executing stack-based instructions within a data processing apparatus arranged to apply operations to data items stored in registers | |
US6339820B1 (en) | Method and device for carrying out a function assigned to an instruction code | |
CN105190551A (zh) | 具有存储器区域交换机制的双引导*** | |
AU9466998A (en) | Method for improved interrupt handling within a microprocessor | |
CN108830596A (zh) | 一种信息的获取方法、信息的获取装置及终端设备 | |
US7134118B1 (en) | Re-programmable flash memory micro controller as programmable logic controller | |
EP3125109B1 (en) | Vector length querying instruction | |
CN107341372B (zh) | 一种软件保护方法和装置 | |
CN101711384A (zh) | 中断处理 | |
CN106462551A (zh) | 用于为多处理器核心装置分配装置引脚所有权的装置及方法 | |
CN104303143A (zh) | 具有上下文切换的微控制器 | |
CN104011675B (zh) | 用于数字信号处理器的向量执行单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |