CN102414672A - 可编程异常处理等待时间 - Google Patents

可编程异常处理等待时间 Download PDF

Info

Publication number
CN102414672A
CN102414672A CN2010800185845A CN201080018584A CN102414672A CN 102414672 A CN102414672 A CN 102414672A CN 2010800185845 A CN2010800185845 A CN 2010800185845A CN 201080018584 A CN201080018584 A CN 201080018584A CN 102414672 A CN102414672 A CN 102414672A
Authority
CN
China
Prior art keywords
period
stand
cpu
instruction
unusual
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
Application number
CN2010800185845A
Other languages
English (en)
Other versions
CN102414672B (zh
Inventor
迈克尔·I·卡瑟伍德
戴维·米基
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology 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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of CN102414672A publication Critical patent/CN102414672A/zh
Application granted granted Critical
Publication of CN102414672B publication Critical patent/CN102414672B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明揭示一种具有可编程异常处理等待时间的数字处理器,其可具有:数字处理器的中央处理单元CPU;与所述CPU耦合的异常控制器;及与所述CPU耦合的控制寄存器,其中所述控制寄存器可操作以将所述CPU的操作模式设定为两种模式中的至少一者,其中在第一模式中,所述CPU具有固定异常处理等待时间,且在第二模式中,所述CPU具有可变异常处理等待时间。

Description

可编程异常处理等待时间
相关申请案交叉参考
本申请案请求对在2009年7月20日提出申请且标题为“可编程异常处理等待时间(PROGRAMMABLE EXCEPTION PROCESSING LATENCY)”的第61/226,924号美国临时申请案的权益,所述申请案全文并入本文中。
技术领域
本发明涉及数字处理器,且更特定来说涉及数字处理器中的异常等待时间。
背景技术
数字处理器通常通过存储于程序存储器中的顺序执行指令与处理时钟同步地操作。然而,此些处理器必须于外部装置介接。一种方式的介接通过所谓的中断来执行。此事件中断程序的顺序执行且强制处理器进入异常状态,在所述异常状态中处理器执行所谓的中断服务例程。在此服务例程期间,处理外部事件。与“正常”程序的同步执行相反,中断信号通常异步地发生。换句话说,此外部信号可在当前处理的指令的执行期间的任何时间发生。通常在随后的循环中确认此中断。为预处理中断,依据实施方案,通常在中断处理器之前执行当前未决指令或甚至下一随后指令。从外部中断的发生到实际上执行服务例程的时间的时间称为等待时间。此等待时间取决于处理器的相应设计且可在类型之间变化。
许多数字处理器具有可变执行时间的指令。然而,此些处理器并入到其中的许多设计需要已知中断等待时间,使得可恰当地控制进程。因此,有时数字处理器经设计而具有恒定或固定中断等待时间。在此些具有固定等待时间的数字处理器中,异常处理报头必须足够长以适应最长指令的完成。如果否,那么中断断言与中断服务例程(ISR)的开始之间的等待时间将依据在异常的时间中央处理单元(CPU)正在执行哪一指令而变化,且可引入“等待时间抖动”。固定等待时间解决“等待时间抖动”问题,但代价是浪费中断响应时间。在具有深指令管线及/或指令预取逻辑的CPU中,支持固定等待时间所必要的较坏情况报头可变得非常长。此对于用户来说可非常具有限制性。
因此,需要一种处置且特定来说预处理中断的更灵活处理器。
发明内容
根据一实施例,一种具有可编程异常处理等待时间的数字处理器可包含:数字处理器的中央处理单元(CPU);与所述CPU耦合的异常控制器;及与所述CPU耦合的控制寄存器,其中所述控制寄存器可操作以将所述CPU的操作模式设定为两种模式中的至少一者,其中在第一模式中,所述CPU具有固定异常处理等待时间,且在第二模式中,所述CPU具有可变异常处理等待时间。
根据另外实施例,所述异常控制器可为中断控制器。根据另外实施例,所述数字处理器可为微控制器或数字信号处理器。根据另外实施例,所述控制寄存器可包含可编程的等待时间选择位。根据另外实施例,所述控制寄存器中的所述等待时间选择位可为可依据软件应用程序动态地编程。根据另外实施例,仅在异常的等待时间小于或等于预定义阈值时选择所述第二模式。根据另外实施例,所述预定义阈值可为可编程的。根据另外实施例,所述预定义阈值可存储于所述控制寄存器中。根据另外实施例,所述数字处理器可进一步包含可操作以产生用于使所述CPU中的执行单元停转的信号的计数器。
根据另一实施例,一种用于处理处理器中的异常的方法可包含:设定所述处理器的至少两个操作模式中的一者;接收异常;预处理所述异常;及执行异常服务例程;其中在第一模式中,所述处理器具有固定异常处理等待时间,且在第二模式中,所述处理器具有可变异常处理等待时间。
根据所述方法的另外实施例,可通过编程控制寄存器中的等待时间选择位来执行设定所述处理器的至少两个操作模式中的一者的所述步骤。根据所述方法的另外实施例,可依据软件应用程序动态地编程所述控制寄存器中的所述等待时间选择位。根据所述方法的另外实施例,仅在异常的等待时间小于或等于预定义阈值时选择所述第二模式。根据所述方法的另外实施例,所述预定义阈值可为可编程的。根据所述方法的另外实施例,可将所述预定义阈值存储于所述控制寄存器中。根据所述方法的另外实施例,可在执行所述异常服务例程之前执行未决指令,所述未决指令需要特定数目个处理循环来执行且其中所述处理器可执行多个指令,所述多个指令需要最小处理循环量及最大处理循环量中的至少一者来执行。根据所述方法的另外实施例,在所述第一模式中,可将第一处理循环数目扩展到所述最大处理循环量。根据所述方法的另外实施例,可通过插入一个或一个以上无操作指令来扩展所述第一处理循环数目。根据所述方法的另外实施例,可通过使所述处理器停转来扩展所述第一处理循环数目。根据所述方法的另外实施例,可仅在所述第一处理循环数目等于或小于预定义阈值的情况下通过插入一个或一个以上无操作指令来扩展所述第一处理循环数目。
附图说明
通过结合附图参照以下说明可获得对本发明及其优点的更全面理解,附图中:
图1是根据一实施例的CPU及相关联中的控制器的示意性框图;
图2到图4展示固定中断等待时间的时序图;
图5是展示第一实施例的原理性操作的流程图;
图6是展示第二实施例的原理性操作的流程图;
图7到图14是固定等待时间的时序图;
图15到图19是可变等待时间的时序图;及
图20是中断返回时序图。
虽然已参照本发明的实例性实施例来描绘、描述及界定本发明的各实施例,但此类参考并不意味着限制本发明,且不应推断出存在此限制。所揭示的标的物能够在形式及功能上具有大量修改、更改及等效形式,所属领域的技术人员根据本发明将会联想到这些修改、更改及等效形式并受益于本发明。所描绘及所描述的本发明实施例仅作为实例,而并非是对本发明的范围的穷尽性说明。
具体实施方式
根据本发明的教示,可设计以至少两种模式操作的处理器,其中第一模式提供固定等待时间,其中所有异常具有相同等待时间。可设定其中处理器具有可变等待时间的第二模式,所述可变等待时间取决于期间发生异常的未决指令。异常可为任何类型的外部或内部中断或者在处理单元内导致的陷阱。未决指令应理解为在可处理异常之前必须执行的指令。在许多处理器架构中,此指令为在期间发生异常的循环之后的循环中执行的指令。然而,依据所述实施例,其也可为在中断发生时未决的指令。可使用提供(举例来说)选择第一或第二模式的位的控制寄存器。然而,可使用用以用信号通知特定操作模式的其它构件,例如馈送到处理器芯片的引脚的外部信号。此允许在包含需要固定等待时间的区段及不需要的其它区段的程序中动态地改变操作模式。
举例来说,根据一实施例,可添加存储于CPU的控制寄存器中控制位以修改数字处理器的中央处理器单元(CPU)的异常处理流程。当此位为空时,CPU支持常规固定等待时间。当此位经设定时,异常处理流程不填补超出完成单循环指令所需的报头的报头。针对较长指令暂停异常处理,从而仅在必要时增加异常等待时间。尽管异常响应时间将为可变的,但其改善程度通常远超过固定等待时间选项的异常响应时间。
此外,用户因此可选择通过限制一些(较长)指令的执行可接受多少额外最坏情况等待时间及“等待时间抖动”。预期且在本发明的范围内,依据需要应用程序代码做什么来在固定与可变等待时间之间动态地切换。
某些数字处理器(例如,微控制器)大多数使用为单循环操作的指令,然而也可提供需要一个以上循环的一个或一个以上指令。因此,由于指令完成而产生的异常等待时间因此通常较短。因此,支持可变等待时间异常处理流程可在几乎所有时间产生等待时间改善。
许多应用程序自己具有不同操作模式。在某一情况下,一些模式可更适于固定等待时间异常,其它模式可更适于可变等待时间异常。因此,具有用以在固定与可变等待时间之间选择的用户可编程控制位允许用户在异常等待时间操作模式(固定对可变等待时间)之间动态地切换。
图1展示系统100的经简化框图,系统100包括与产生中断或陷阱的异常控制器120耦合的中央处理单元(CPU)110。CPU 110可包含用于执行指令的执行单元,例如执行管线。举例来说,此异常控制器可为能够接收多个中断信号的中断控制器。如果异常控制器120为(举例来说)中断控制器,那么其将产生单个中断信号Int,其被馈送到CPU110。CPU可用相应信号Ack来确认中断信号。如所属技术中众所周知,中断控制器120可包括优先级处置及其它机制。此外,CPU可经设计以基于优先级机制处置一个以上中断信号。图1还展示被馈送到CPU 110的复位信号,可不将其视为形成异常,但也将其视为形成异常。提供与CPU耦合的操作模式寄存器130。此寄存器130可包括向CPU 110指示CPU 110将以哪一模式操作的一个或一个以上位。举例来说,可使用单个位且此位可为能够确定其它操作模式或配置的一般操作模式寄存器的部分。此寄存器还可存储用于触发模式开关的阈值,将在下文中更详细地阐释所属模式开关。在双模式系统中,如果被设定为1,那么此位强制CPU 110以可变异常等待时间操作,其中异常等待时间取决于当异常发生时哪一类型的指令未决。如果此位被设定为0,那么CPU以固定或恒定等待时间操作,其中通过将无操作(NOP)循环强制到执行单元中来用所述无操作循环填补较短指令,或使执行单元140停转以将每一未决指令的执行时间延长到最大未决,换句话说延长到处理器可执行的任何指令的最长执行时间。为此,根据一个实施例,可实施停转计数器150以对必要的强制无操作(FNOP)循环进行计数或提供必要的延迟信号。
图2展示单循环指令的此种用无操作循环填补的实例。然而,可使用延长等待时间的其它方式。举例来说,可使用任何类型的使处理器停转以延长执行时间。在图2中,展示当在单循环指令期间断言外围中断时的事件序列。中断过程花费四个指令循环。在图2中将每一循环编号以用于参考。在外围中断发生之后的指令循环期间设定中断旗标状态位。当前或未决指令INST(PC)在此指令循环期间完成。在中断事件之后的第二指令循环中,将程序计数器(PC)及状态寄存器(SRL)寄存器的内容保存到临时缓冲器寄存器中。中断过程的第二循环执行为无操作指令FNOP(填补)以维持与在较长两循环指令期间采用的序列的一致性。在第三循环中,给PC加载中断源的向量表地址且取中断服务例程(ISR)的开始地址。在第四循环中,给PC加载ISR地址。当取ISR中的第一指令时,将第四循环执行为FNOP。此第四循环可为任何指令所需要的且不视为上文所提及的填补。其它处理器架构可包括不需要任何类型的无操作指令插入且可具有用以使未决指令的执行停转的其它方式的不同执行机制。本文中所描述的原理同等地适用于此些设计。
图3及图4展示两循环指令的实例。在固定等待时间模式中,两循环指令期间的中断等待时间与单循环指令期间的相同。中断过程的第一及第二循环允许两循环指令完成执行。图3中的时序图展示当外围中断事件在两循环指令的执行之前的指令循环中发生时的情况。图4展示当外围中断与两循环指令的第一循环重合时的时序。在此情况下,通过插入与图2中所示类似的FNOP指令,中断过程针对单循环指令完成。对于可变模式,不执行此种填补或停转。因此,等待时间因此可依据当异常发生时哪一指令未决而在指令之间变化。
图5展示根据上文所描述的原理的流程图。在步骤500中,由CPU接收中断信号。在步骤510中,中断的预处理开始。在从步骤510持续到步骤560的预处理期间,执行所谓的房屋清扫。举例来说,将程序计数器(PC)及状态寄存器(SR)推到栈上。还可保存其它变量。然而,大多数处理器仅需要保存PC及SR,因为可在中断的服务期间保存其它寄存器。在步骤520中,检查将使用可变等待时间模式还是固定等待时间模式。在固定等待时间模式的情况下,在步骤530中确定哪一指令当前未决。此外,此指令为在中断服务例程可开始之前必须执行或完成执行的指令,且因此关于实际中断的发生,哪一指令是未决的可在处理器设计之间变化。在步骤540中,确定此未决指令是否需要填补或停转及需要多少额外循环。举例来说,如果可执行的最长指令需要5个循环且最短指令需要1个循环,那么必须给1循环指令填补4个无操作(NOP)循环或各自地停转。在此种处理器中,可给2循环指令填补3到4个NOP循环,给3循环操作填补2到4个,给4循环的填补1到4个,且给5循环指令填补0到4个循环,其中填补NOP的数目取决于中断在哪一循环期间发生。在步骤550中,在开始中断服务例程执行之前添加额外NOP循环。预中断处理在步骤560中结束。在可变模式的情况下,例程跳往步骤560,换句话说,不执行填补。
图6展示具有可变或固定等待时间的另一实施例且其中固定与可变之间的阈值是可编程的。根据此实施例,在一种模式中,可针对具有小于预定义时间周期X的等待时间的所有指令执行固定等待时间。在此模式中,所有其它指令引起可变等待时间。另一模式对应于关于图5所论述的可变模式。为此,步骤600、610及660分别对应于步骤500、510及560。在步骤620中,确定是否将执行等待时间调整,如果否,那么与图5中所论述类似地执行可变等待时间。也可如虚线所指示省略此步骤且替代地仅可编程阈值将触发两种模式中的一者。根据另一实施例,可提供多个阈值且控制寄存器可选择各个阈值中的一者。在步骤630中,确定当前未决指令。在步骤640中,确定剩余多少循环。如果循环的数目小于X,那么在步骤650中执行相应填补。否则,例程跳往步骤660。此实施例甚至更灵活且提供有限的填补。在具有需要1到5个之间的循环的指令的实例中,程序可仅包括具有1、2或3个循环的指令。此处,可通过设定X=3将限制施加到这些类型的指令。因此,需要1、2或3个循环的指令均产生3循环等待时间的最大等待时间。在执行4循环或5循环指令的情况下,等待时间分别增加。然而,如上文所阐释,用户可在特定程序或模块中不使用此些指令,且因此可确保恒定最小等待时间,即使具有固定等待时间的常规处理器将不能够将其中断等待时间减少到超过5循环指令所引起的中断等待时间。
根据又一实施例,可将多个固定及可变等待时间的概念与异常优先级等级耦合。替代手动编程相应模式,将相应可编程等待时间的自动开关与处理器当前设定为其以操作的优先级等级耦合。为此,可提供一个或一个以上控制寄存器(举例来说,如图1中所示的一个或一个以上特殊功能寄存器160),其给每一异常优先级等级指派相应等待时间类型。根据一个实施例,可给可变等待时间指派最高优先级中断以快速响应于(举例来说)错误状况。将给分别选择的固定等待时间指派接下来的较低优先级中断以实现保证响应时间(假设无错误状况发生)。其它优先级等级可具有不同的所指派等待时间。如果启用嵌套,那么所有其它较低优先级中断可为可变或固定的,其中不能针对所有较低优先级异常保证固定等待时间。也可给软件异常(例如,陷阱)指派特定等待时间或软件异常可总是经配置以便以可变等待时间操作。
与微控制器的特定实施例组合的异常(中断)处置的更详细说明结合图7到图20中所示的各种时序图如下。
根据此特定实施例,CPU可支持经排定优先级中断与陷阱异常方案。举例来说,可存在多达7个CPU中断优先级等级,且中断可存在多达62个预定义(固定)“自然次序”优先级等级。每一中断源具有固定“自然次序”优先级,但关于其使用什么CPU优先级是用户可编程的。最高优先级中断是不可掩蔽的。还存在可用于内部异常的8个可用陷阱。当前实施六个时隙以改善操作稳健性,其全部为不可掩蔽的。其遵守预定义优先级方案。对软件栈执行与异常及子例程调用相关联的堆栈。寄存器W15专用作栈指针且具有LSB=0。
中断控制器模块汇编来自装置外围器件的所有中断请求(IRQ)信号且给每一IRQ信号指派固定“自然次序”优先级及用户指派的优先级两者。将中断与陷阱组合且将其与当前CPU优先级进行比较。接着将陷阱或中断(如果CPU优先级小于最高等级未经掩蔽中断请求的优先级)连同向量数及经更新CPU优先级值一起呈现给处理器核心。CPU优先级等级由4位值IPL<3:0>定义。IPL<3>位于模式控制寄存器CORCON<3>处,且IPL<2:0>驻存于SR中。可在任何时间读取IPL<3>位且可通过软件将其清除以允许监督陷阱处置器在不必执行从中断指令的返回(RETFIE)的情况下跳往另一进程。在一些情况下(例如,在栈错误陷阱期间),执行RETFIE并非选项,因此手动清除IPL<3>且重新初始化机器的适当部分是完全复位的良好替代方案。通过控制寄存器INTCON1<15>中的NSTDIS控制位支持嵌套及非嵌套异常两者。通过默认的复位来启用嵌套异常,但可通过设定NSTDIS位来停用嵌套异常。除所有中断的优先级被强制为7而不管调用中断优先级如何以外,非嵌套中断操作在所有方面与嵌套中断操作相同。因此,CPU优先级将总是在异常处理期间针对所有中断设定为7而结束。在异常处理期间自动修改CPU中断优先级。然而,倘若启用中断嵌套(NSTDIS=0),那么IPL<2:0>为读取/写入位且也可由用户操纵以动态地修改CPU中断优先级。如果停用中断嵌套(NSTDIS=1),那么IPL<2:0>变为只读位以防止用户疏忽地降低CPU中断优先级(且致使任何未决中断嵌套)。将采用并嵌套大于当前CPU优先级(IPL<3:0>)的优先级的任何异常(如果异常正在进行中且NSTDIS位为空)。将当前CPU优先级IPL<2:0>与SR堆栈,且将IPL3与PCH堆栈。以下堆栈序列用于所有异常:
·PCL<15:1>→TOS<15:1>;SFA→TOS<0>
·(W15)+2→W15
·(SR<7:0>)→TOS<15:8>,(IPL<3>:PC<22:16>)→TOS<7:0>
·(W15)+2→W15
·0→SFA
在此实施例中注意,异常处理以SFA(栈帧活动)位由CALL{W}、CALLWL及RCALL{W}指令处置之相同方式对其进行处置。将CPU优先级设定为等于异常的优先级。在返回后,RETFIE即刻将返回PC、SR、IPL3及SFA位取消堆栈以将机器恢复到在异常之前的其状态。等级0CPU优先级将允许确认所有中断及陷阱,且等级7CPU优先级将掩蔽所有中断但继续允许陷阱发生。
可提供全局中断启用(GIE)控制功能以提供用以快速停用及重新启用软件中的所有中断的方式。当GIE位经清除时,相应宏越权控制传入CPU IPL(cpu_irq_priority_level<3:0>)而将其设定为4’b0111(等级7),从而停用所有中断但保持陷阱启用。实际CPU IPL保持不改变,使得当GIE位再次经设定时,系统将返回到先前中断优先级等级下的操作。在此实施例中注意:陷阱总是嵌套经受所述限制。
对于经成功仲裁的异常,相关联向量数表示到主要中断向量表(PIVT)或辅助中断向量表(XIVT)中的偏移。PIVT驻存于主要阵列程序存储器中,在位置0x000004处开始。类似地,XIVT驻存于辅助阵列程序存储器中,在位置0x7FFFF4处开始。中断控制器使用XIVTEN熔丝状态来确定这些地址中的哪一者变为针对CPU产生的物理向量地址的基址。当XIVTEN熔丝经设定(默认状态)时选择PIVT基址,且当XIVTEN熔丝为空时选择XIVT地址。这些向量表总是可存取的,而不管现有安全模式如何。PIVT及XIVT两者均含有多达256个异常向量。每一中断或陷阱向量含有24位宽的地址。保持于每一向量位置中的地址为相关联中断服务例程(ISR)或陷阱处置器的开始地址。
根据一实施例,在此架构中RESET可不被视为异常,且可使用两字GOTO指令来实施。尽管本身并非异常,但按照惯例在此对其加以论述。CPU可从主要或辅助地址空间复位,此取决于驱动fus_xivt_enable信号的XIVTEN熔丝的状态。在复位期间,将PC清除(fus_xivt_enable=1)或设定为0x7FFF00(fus_xivt_enable=0)。当复位经释放时,正常指令执行继续,以FNOP(强制NOP)及选定复位地址处的GOTO指令的预取开始。当装置处于复位时,保持Q时钟处于状态Q1。CPU将此第一循环视为FNOP。第二循环在选定中断向量表内从两程序字RESET时隙取GOTO指令。接着将此指令作为正常指令执行且其跳往用户程序的开始。复位源为:
1.外部(引脚)复位
2.POR:上电复位
3.BOR:掉电复位
4.任何未经实施操作码的RESET指令或执行
5.未经初始化W寄存器的读取(仅针对地址)
6.从未经实施程序地址空间的取指令
根据一实施例,CPU上可存在两种类型的复位。冷复位为POR或BOR复位的结果。热复位为所有其它复位源(包括RESET指令)的结果。
根据一实施例,异常处理对于所有源相同。如上所述,根据一实施例,在此架构中可不将复位视为异常。对于第一ISR指令,异常处理由仲裁阶段(循环)、CPU请求循环、CPU确认循环、取向量循环及指令预取循环组成。
如图1中所示的中断块120接收并仲裁所有异常。可将仲裁管线化,使得其花费2个循环来完成。接着中断块120在Q1上升上向CPU 110产生中断请求信号Int(伴随有异常向量地址(int_vector_addr<23:0>)及其相关联优先级(int_priority_level<3:0>))。仲裁为进行中的进程,从而每一循环(Q1)产生经更新结果。即使当断言信号Int时,CPU 110将在其断言其响应信号Ack时仅锁定仲裁结果。因此,当在嵌套中断被启用(INTCON1<15>,NSTDIS=0)的情况下操作时,较高优先级异常可在直到在循环Ack被断言之前的Q1的中途抢先于较低优先级异常。此效应可从“固定”等待时间操作减去数个循环且相应地被补偿。
在上升Q1上对信号Int进行取样且在随后的循环期间其将被视为未决的。当已完成当前执行的指令或固定等待时间超时已期满时,CPU 110将通过在一个循环的上升Q3上断言Ack来确认来自中断控制器的异常请求。在Ack被否定之后,中断控制器120在Q1上解除Int,从而完成握手。可变等待时间实例展示于图15中。
在CPU确认循环期间使用由中断控制器呈现给核心的向量地址来起始取向量。核心执行取向量(出于所有其它目的,可将其视为一系列FNOP)且检索24位向量。接着向量被引导到PC,在此处其形成第一ISR指令的预取地址。将由紧紧在异常处理之前执行的指令预取(但丢弃)的指令的PC地址保存于PCINT中。在取向量期间,将PCINT拷贝到PCT中,准备堆栈为ISR返回地址。根据一实施例,取向量及第一ISR指令可花费数个循环,此取决于提供核心的PS存储器的存取时间。PC总是从PC临时(PCT)寄存器堆栈。给PCT加载以下各项中的一者:
·当前PC值。
·在每一循环的Q3期间的下一PC值(直接来自PC加法器)。
·中间PC(PCINT)寄存器。
在单循环指令期间未决的异常的异常处理(可变等待时间)展示于图15中(其包括当不采用时的相关分支)。图7到图20中的所有随后时序图假设单循环PS存储器存取。较慢PS存储器将需要相应地使CPU停转。
根据一实施例,强制NOP(FNOP)指令(填补)作为异常处理的部分发生。在指令队列中提供用以将NOP指令加载到ROMLATCH值中的机制。当NOP编码为0x000000时,FNOP等效于在上升Q1上清除IR。
根据一实施例,异常处理可以由模式寄存器CORCON<15>中的VAR位的状态确定的两种模式中的一者操作。如果VAR=0(默认复位状态)且CPU设定为最高优先级EDS总线主控器(MSTRPR<2:0>=3’b0),那么CPU将针对任何最高优先级异常提供确定性固定等待时间响应。从辨识出中断的点到ISR的第一指令的中断等待时间对于包括TBLRDx的所有指令或需要PSV存取的那些指令将为固定的。
如果中断辨识点定义为将未决中断取样到中断控制器中的Q1上升,那么固定等待时间由下式确定:
latencyVAR=0=tarb+5+2η循环
其中:η=PS存储器存取时间(循环),tarb=仲裁时间(循环)。在仲裁之后断言信号Int,且CPU执行当前在进行中的指令的剩余部分。5个循环之后断言(q3)信号Ack,且取向量开始。也就是说,如果包括任何CPU停转的剩余的(从被断言Int)总指令执行时间总计少于5个循环,那么CPU添加FNOP以使总数为5。单循环指令的固定等待时间实例详细展示于图7中且两循环指令的固定等待时间实例详细展示于图8中。根据一实施例,实施方案可使得在异常处理期间使用计数器150以强制固定数目个等待时间循环。计时器超时值由参数INT_LATENCY_DELAY确定。当从快闪存储器执行时,以下特征组合将打破中断等待时间保证(较慢存储器将引入额外延迟):
a)经由PSV存取数据的LDDW指令。添加1个循环以完成第2取PSV。不允许PSV写入,因此STDW不成问题。
b)与(RAW)停转相关联的TBLRDx或PSV存取指令。添加1个循环。
c)REPEATed PSV存取的最后反复。添加1个循环。
如果VAR=1且CPU为最高优先级EDS总线主控器(MSTRPR<2:0>=3’b0),那么CPU将针对所有异常提供可变等待时间响应。对于单中断系统,从取样未决中断的Q1上升到ISR的第一指令的中断等待时间将为:
最大latencyVAR=1=tarb+ρ+2η循环
最小latencyVAR=1=tarb+1+2η循环
其中:ρ=异常处理期间的总指令执行时间(循环),η=PS存储器存取时间(循环),tarb=仲裁时间(循环)。以上关系适用于在包括TBLRDx的任何指令期间或在PSV存取期间发生的异常。等待时间表达为任何给定指令的范围,因为中断可在指令的开头或结尾处到达。注意,异常处理期间的指令执行时间可不同于正常顺序执行的指令执行时间。举例来说,由于在采用异常的情况下所有流改变指令可中止取目标PS,因此其可在异常处理期间的2个循环中执行。目标PS地址变为异常返回地址。此外,在于异常处理期间完成的指令之后将(在大多数情况下)不需要RAW冒险停转,因此不需要在ρ中对停转循环进行计数。
当在异常处理期间执行时其执行时间不同的指令的概括展示于表1中。其中中断在RETURN类别的指令的执行期间变为未决的实例展示于图20中。
表1:执行时间差异实例
Figure BPA00001448427600111
注解1:采用括号中的执行时间的分支
2:Bcc:任何条件分支指令
3:基于40ns 2x48位交错快闪阵列架构
4:假设数据管线已满
以上分析还假设将断言仅一个中断且在任何一个时间处理仅一个中断。如果一个以上中断活动,且装置正以“未嵌套”模式操作,那么必须将最长ISR执行时间添加到最大等待时间,因为可能的是,较低优先级中断的ISR在较高优先级中断请求到达时恰好在进行中。
如果“嵌套”中断被启用,那么此实时窘境稍微减轻,使得最高优先级中断将能够中断任何ISR(除其自己的ISR外)。然而,仍可能的是,较低优先级中断的异常处理可在较高优先级中断随后到达时开始。为避免保持较高优先级异常未决直到第一ISR指令的结尾为止(将总是执行一个ISR指令),支持中断抢先。通常不将由于陷阱的执行而产生的额外等待时间视为应用程序的实时性能的部分,因为陷阱通常为系统问题的指示。在这些情况下,应用程序切换到以复原模式工作,其中满足实时操作目标较不重要。
如果VAR=1但CPU并非最高优先级EDS总线主控器(MSTRPR<2:0>!=3’b0),那么CPU将针对所有异常提供可变等待时间响应,其可也包括从较高优先级EDS总线主控器请求产生的额外延迟。即使VAR=0但CPU并非最高优先级EDS总线主控器(MSTRPR<2:0>!=3’b0),CPU也不能针对异常提供固定等待时间响应,因为可能也存在从较高优先级EDS总线主控器请求产生的额外延迟。也就是说,当CPU并非正作为最高优先级总线主控器操作时,异常处理不再是基本操作且可视需要停转以提供对另一主控器的EDS总线存取。此外,相对于异常处理,所有读取及写入停转随其所遵循的指令而被视为基本的。也就是说,如果中断或陷阱请求在读取或写入外部停转期间发生,那么异常处理将不开始,直到已完成停转循环(或若干个循环)及在所述停转之后的指令之后为止。
如果在异常向量ID中检测到在断言信号Int之后但在其中断言Ack的循环(循环5)之前增加优先级的改变,那么CPU将复位延迟计数器。如分别展示循环2及5中的抢先的图9及图10中所示,新最高优先级中断的异常处理将接着如正常完成。复位延迟计数器强制插入额外FNOP,从而继续保证最高优先级中断的固定等待时间响应时间。如果在异常向量ID中检测到在断言Ack之后但在否定信号Int(循环6及7)之前增加优先级的改变,那么CPU将复位延迟计数器,但完成在延迟的前2个循环期间已经在进行中(除取第一ISR指令外)的异常处理。新最高优先级中断的异常处理将接着如正常完成(即,以相同固定等待时间),从而将原始ISR的第一指令的地址堆栈为最高优先级中断的返回地址。实例展示于图11、图12及图13、图14中。如果在异常向量ID中检测到在否定信号Int(循环8及8以上)之后增加优先级的改变,那么原始异常的ISR将已经开始,因此起始正常异常处理。
内部停转循环与在停转事件之后的指令相关联且应计数为总指令计数变量ρ的部分。内部停转不能在异常处理堆栈之前发生,因为RAW冒险是不可能的(堆栈仅涉及数据写入)。
作为总线仲裁或总线存取延迟的结果的停转循环在CPU的控制以外。因此,异常处理在确定固定异常等待时间时不能将其考虑在内。如果固定等待时间为系统级要求,那么用户必须采取适当步骤以确保CPU总线仲裁或总线存取停转不会发生。
一般来说,当以可变等待时间(VAR=1)操作时,将推迟异常处理确认(Ack),直到指令的最后一个循环为止。对于单循环指令,此意味着在断言信号Int之后,将在指令的执行期间的下一q3上断言Ack。对于多循环指令,Ack断言将被推迟到最后一个指令循环的q3。不管信号Int在指令执行期间何时到达,此均适用。2循环、2字CALL指令的较早异常(即,信号Int在指令的开始到达)展示于图18中。GOTO的时序相同(当然,除不存在GOTO返回地址要堆栈以外)。CALL类别的指令堆栈在第一循环期间产生但从不在PC中出现的CALL返回地址(每循环一个字)。因此,在此循环的Q3期间直接从PC加法器(即,CALL返回地址)而非PC加载PCT。通过使用PC临时寄存器(PCT)推迟异常处理返回地址堆栈使得CALL能够在仲裁循环期间完成其堆栈。在堆栈完成之前,需要PC到PCINT传送接着是PCINT到PCT传送来保留将在取向量期间堆栈的PC值。在2循环、2字非流改变指令(即,DO/DOW)期间的异常处理展示于图19中。异常处理实质上与CALL或GOTO的异常处理相同。在2循环、单字GOTOW及Bcc相关分支(采用的)指令期间的异常处理分别展示于图16及图17中。注意:来自PC加法器的PCT更新并非严格地在异常处理内发生且可被视为指令的伪影(即,其将在存在或不存在异常未决的情况下发生)。
陷阱既定为用户提供在调试期间且当在应用程序内操作时校正错误操作的方式。应注意,这些陷阱条件中的许多可仅在发生时被检测。因此,允许有问题的指令在陷阱异常处理开始之前完成。如果用户选择从错误复原,那么因此可必须校正导致陷阱的错误动作的结果。然而,当地址错误陷阱变为未决时,到寄存器及存储器的数据写入、地址回写及状态寄存器更新全部被禁止,此帮助减轻错误的影响。将陷阱分类为两个不同种类。
“软”陷阱为优先级8到12(包括优先级8及12)的异常。栈错误、数学错误及DMAC错误陷阱属于此种类。还支持一般软陷阱。软陷阱可被视为遵守如相应宏中所定义的预定义优先级的不可掩蔽、可嵌套中断。其像中断那样被处理且在异常处理之前花费3个循环来对其进行取样及确认。因此,“软”陷阱可导致在采用异常之前执行额外指令。已添加一般软陷阱,其并非像所有其它软陷阱那样被指派到特定错误条件,而是被指派到新SFR(一般软陷阱SFR)内的活动。可将一般软陷阱SFR内的每一位指派到特定陷阱错误条件。当这些位中的一者(或一者以上)经设定时,请求一般软陷阱。相关联陷阱处置器接着必须轮询一般软陷阱SFR以确定发生了哪一(些)陷阱并采取适当动作。此方案允许软陷阱的数目延伸超出向量图的限制。在正在服务软陷阱时发生的中断或较低优先级陷阱将保持未决,直到陷阱处置器已完成为止。以增加的优先级支持以下“软”陷阱:
·一般软陷阱:如果SFR INTCON3(位于相应宏内)内的任何位(或若干个位)经设定那么将采用此陷阱。INTCON3<4>被指派到DO栈溢出陷阱。每当检测到DO栈溢出时,其由CPU设定。
·DMAC错误陷阱:每当DMAC与CPU之间存在写入冲突时,DMAC错误陷阱将执行。此可仅在双端口外围数据寄存器处发生(不再检测DPSRAM写入冲突)。
·数学错误陷阱:数学错误陷阱将在以下三种情况下执行。假设DSP引擎配置在应用程序内将一致,因此用以确定错误条件的轮询旗标不应是必需的。
1.如果作出除以零的尝试,那么除法运算将在循环边界上被中止且将采用陷阱。堆栈的PC将指向在除法被中止时取的指令。
2.如果以下条件全部为真,那么将采用数学错误陷阱。a)OVATE位经设定(INTCON1<10>),b)累加器A正在1.31饱和被停用的情况下或以9.31模式操作,c)算术运算导致来自累加器A的位31的溢出,或者a)OVBTE位经设定(INTCON1<9>),b)累加器B正在1.31饱和被停用的情况下或以9.31模式操作,c)算术运算导致来自累加器B的位31的溢出。
3.如果以下条件全部为真,那么将采用数学错误陷阱。a)COVTE位经设定(INTCON1<8>),b)累加器A或B正在所有饱和被停用的情况下操作,c)算术运算导致来自所有饱和被停用的累加器的位39的溢出(灾难性溢出)。
4.如果作出执行具有大于16或小于-16的移位值的SFTAC的尝试,那么所述指令将完成(不存在结果写入)且将采用数学陷阱。堆栈的PC将指向在SFTAC正在执行时取的指令。
根据一实施例,如果用户不打算在陷阱错误条件的情况下采取校正动作,那么应给这些向量加载指向含有复位指令的默认处置器的地址。注意,仅仅引导到复位地址将重新开始用户代码,但将不会起始装置复位。
·栈错误陷阱:将在以下情况下采用此陷阱:
1.以小于0x0800的EA尝试基于栈指针的存取。
2.启用栈溢出保护,且以大于写入到SPLIM寄存器中的(用户可编程)限制值的EA尝试基于堆栈指针的存取。
3.当CORCON<2>中的栈帧活动(SFA)位已经设定时执行LNK指令,从而指示嵌套栈帧错误。
4.当CORCON<2>中的栈帧活动(SFA)位已经为空时执行UNLK指令,从而指示栈帧解链接错误。
“硬”陷阱为优先级13到15的异常。振荡器故障、地址错误及软件陷阱属于此种类。硬陷阱也可被视为遵守如相应宏中所定义的预定义优先级的不可掩蔽、可嵌套中断。在期间发生陷阱事件的指令之后将不再执行指令。CPU将执行强制无操作指令(FNOP),直到异常处理开始为止,异常处理将在陷阱由CPU确认之后发生。此的结果为,不确认硬陷阱,CPU将永远执行FNOP。因此,如果较低优先级硬陷阱在以下情况下变为未决的:
a)另一(较高优先级)硬陷阱已发生,
b)另一(较高优先级)硬陷阱已被确认,
c)异常处理在进行中或
d)其处置器正在执行,
那么装置被强制复位。此克服“死锁”问题,其中暂停较高优先级陷阱(执行FNOP),以等待确认较低优先级陷阱,同时较低优先级陷阱保持未决,以等待较高优先级陷阱完成。此被视为双硬陷阱错误,且将导致RCON寄存器中的TRAPR位被设定。通过软件复原是不可能的,因此最好的帮助是复位。如果较高优先级陷阱在较低优先级陷阱在进行中时发生,那么较低优先级陷阱将执行再多一个指令,接着执行FNOP,直到确认较高优先级陷阱为止。较高优先级陷阱的异常处理接着发生。也就是说,只要已经确认较低优先级陷阱,便可在较高优先级陷阱的执行期间将所述较低优先级陷阱调节为“未决”(即,所述较高优先级陷阱在已确认所述较低优先级陷阱之后发生)。以增加的优先级支持以下“硬”陷阱:
·一般硬陷阱:硬陷阱在以下条件下产生:
1.INTCON2<13>处的SWTRAP位经设定
2.INTCON4<15:0>内的任何位(或若干个位)经设定
SFR INTCON2及INTCON4位于相应宏内。软件陷阱是最低优先级硬陷阱以在不强制双陷阱错误复位的情况下允许其它硬陷阱嵌套。INTCON4<15:0>中的位的功能定义于变体顶级DOS中。其可与认为硬陷阱对于其为必需的任何异常源相关联。
·地址错误陷阱:在存在地址错误的情况下,将不改变源或目的地W寄存器、目标存储器地址或用户可写入状态寄存器位(即,经修改EA的寄存器回写、数据写入及SR更新将被禁止)。将在以下情况中的任一者发生时禁止此陷阱:
1.尝试误对准的数据字存取。
2.尝试对未经实施数据地址空间的数据存取。应用于单操作数(经组合X与Y地址空间)及双操作数(经分裂X与Y地址空间)两者。注意,当分裂地址空间时,未经实施X地址空间包括所有Y空间,且未经实施Y地址空间包括所有X空间。
3.从未经实施程序空间的尝试取指令。
4.从向量空间的尝试取指令(除复位GOTO指令外)。
5.使用表指令或PSV从未经实施程序空间的数据读取。
·振荡器故障陷阱:如果外部振荡器故障及操作变为依赖于内部RC备份,那么将起始此陷阱。

Claims (20)

1.一种具有可编程异常处理等待时间的数字处理器,其包含:
数字处理器的中央处理单元CPU,
与所述CPU耦合的异常控制器,
与所述CPU耦合的控制寄存器,其中所述控制寄存器可操作以将所述CPU的操作模式设定为两种模式中的至少一者,其中在第一模式中,所述CPU具有固定异常处理等待时间,且在第二模式中,所述CPU具有可变异常处理等待时间。
2.根据权利要求1所述的数字处理器,其中所述异常控制器为中断控制器。
3.根据权利要求1所述的数字处理器,其中所述数字处理器为微控制器或数字信号处理器。
4.根据权利要求1所述的数字处理器,其中所述控制寄存器包含可编程的等待时间选择位。
5.根据权利要求4所述的数字处理器,其中所述控制寄存器中的所述等待时间选择位可依据软件应用程序而动态地编程。
6.根据权利要求1所述的数字处理器,其中所述第二模式是仅在异常的等待时间小于或等于预定义阈值时选择的。
7.根据权利要求6所述的数字处理器,其中所述预定义阈值是可编程的。
8.根据权利要求6所述的数字处理器,其中所述预定义阈值存储于所述控制寄存器中。
9.根据权利要求1所述的数字处理器,其进一步包含可操作以产生用于使所述CPU中的执行单元停转的信号的计数器。
10.一种用于处理处理器中的异常的方法,其包含:
设定所述处理器的至少两种操作模式中的一者;
接收异常;
预处理所述异常;及
执行异常服务例程;
其中在第一模式中,所述处理器具有固定异常处理等待时间,且在第二模式中,所述处理器具有可变异常处理等待时间。
11.根据权利要求10所述的方法,其中通过编程控制寄存器中的等待时间选择位来执行设定所述处理器的至少两种操作模式中的一者的所述步骤。
12.根据权利要求11所述的方法,其中依据软件应用程序动态地编程所述控制寄存器中的所述等待时间选择位。
13.根据权利要求11所述的方法,其中仅在异常的等待时间小于或等于预定义阈值时选择所述第二模式。
14.根据权利要求13所述的方法,其中所述预定义阈值是可编程的。
15.根据权利要求14所述的方法,其中将所述预定义阈值存储于所述控制寄存器中。
16.根据权利要求10所述的方法,其中在执行所述异常服务例程之前执行未决指令,所述未决指令需要特定数目个处理循环来执行,且其中所述处理器可执行多个指令,所述多个指令需要最小处理循环量及最大处理循环量中的至少一者来执行。
17.根据权利要求16所述的方法,其中在所述第一模式中,将第一处理循环数目扩展到所述最大处理循环量。
18.根据权利要求17所述的方法,其中通过插入一个或一个以上无操作指令来扩展所述第一处理循环数目。
19.根据权利要求17所述的方法,其中通过使所述处理器停转来扩展所述第一处理循环数目。
20.根据权利要求17所述的方法,其中仅在所述第一处理循环数目等于或小于预定义阈值的情况下通过插入一个或一个以上无操作指令来扩展所述第一处理循环数目。
CN201080018584.5A 2009-07-20 2010-07-15 具有可编程异常处理等待时间的数字处理器及用于处理处理器中的异常的方法 Active CN102414672B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US22692409P 2009-07-20 2009-07-20
US61/226,924 2009-07-20
US12/776,513 2010-05-10
US12/776,513 US8688964B2 (en) 2009-07-20 2010-05-10 Programmable exception processing latency
PCT/US2010/042101 WO2011011256A1 (en) 2009-07-20 2010-07-15 Programmable exception processing latency

Publications (2)

Publication Number Publication Date
CN102414672A true CN102414672A (zh) 2012-04-11
CN102414672B CN102414672B (zh) 2015-02-04

Family

ID=43466060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080018584.5A Active CN102414672B (zh) 2009-07-20 2010-07-15 具有可编程异常处理等待时间的数字处理器及用于处理处理器中的异常的方法

Country Status (6)

Country Link
US (1) US8688964B2 (zh)
EP (1) EP2457170B1 (zh)
KR (1) KR101673990B1 (zh)
CN (1) CN102414672B (zh)
TW (1) TWI525535B (zh)
WO (1) WO2011011256A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309759A (zh) * 2012-03-06 2013-09-18 智邦科技股份有限公司 一种操作系统中断服务的检测方法
CN111752877A (zh) * 2019-03-27 2020-10-09 阿里巴巴集团控股有限公司 一种处理器及其中的中断控制器

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US8966324B2 (en) 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US8880959B2 (en) 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US10534421B2 (en) * 2013-06-13 2020-01-14 Microsoft Technology Licensing, Llc Virtual per-processor timers for multiprocessor systems
US11210098B2 (en) 2013-07-15 2021-12-28 Texas Instruments Incorporated Variable latency instructions
KR102205899B1 (ko) * 2014-02-27 2021-01-21 삼성전자주식회사 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치
US20170212763A1 (en) * 2014-07-25 2017-07-27 Hewlettt Packard Enterprise Development Lp Exception handling predicate register
US9740644B2 (en) * 2014-09-26 2017-08-22 Intel Corporation Avoiding premature enabling of nonmaskable interrupts when returning from exceptions
TW201935306A (zh) 2018-02-02 2019-09-01 美商多佛微系統公司 用於安全初始化的策略連結及/或載入之系統和方法
US10642668B2 (en) 2018-04-18 2020-05-05 Open Text GXS ULC Producer-side prioritization of message processing
EP3788488A1 (en) 2018-04-30 2021-03-10 Dover Microsystems, Inc. Systems and methods for checking safety properties
US11055128B2 (en) 2018-07-30 2021-07-06 Open Text GXS ULC System and method for request isolation
TW202022678A (zh) 2018-11-06 2020-06-16 美商多佛微系統公司 用於停滯主處理器的系統和方法
US11841956B2 (en) 2018-12-18 2023-12-12 Dover Microsystems, Inc. Systems and methods for data lifecycle protection
WO2020214624A1 (en) * 2019-04-15 2020-10-22 Texas Instruments Incorporated Variable latency instructions
US11175926B2 (en) * 2020-04-08 2021-11-16 Microsoft Technology Licensing, Llc Providing exception stack management using stack panic fault exceptions in processor-based devices

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1046987A (zh) * 1989-04-24 1990-11-14 横河电机株式会社 可编程控制器
EP0735462A2 (en) * 1995-03-31 1996-10-02 Motorola, Inc. Method and apparatus for selectively controlling interrupt latency in a data processing system
US6477600B1 (en) * 1999-06-08 2002-11-05 Intel Corporation Apparatus and method for processing isochronous interrupts
CN1481529A (zh) * 2000-12-15 2004-03-10 英特尔公司 流水线处理器的异常管理
CN101162391A (zh) * 2006-10-12 2008-04-16 欧姆龙株式会社 可编程控制器
CN101482813A (zh) * 2009-02-24 2009-07-15 上海大学 一种线程并行执行优化方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5708817A (en) * 1995-05-31 1998-01-13 Apple Computer, Inc. Programmable delay of an interrupt
GB2403822B (en) * 2003-07-07 2006-05-10 Advanced Risc Mach Ltd Data processing apparatus and method for handling interrupts

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1046987A (zh) * 1989-04-24 1990-11-14 横河电机株式会社 可编程控制器
EP0735462A2 (en) * 1995-03-31 1996-10-02 Motorola, Inc. Method and apparatus for selectively controlling interrupt latency in a data processing system
US6477600B1 (en) * 1999-06-08 2002-11-05 Intel Corporation Apparatus and method for processing isochronous interrupts
CN1481529A (zh) * 2000-12-15 2004-03-10 英特尔公司 流水线处理器的异常管理
CN101162391A (zh) * 2006-10-12 2008-04-16 欧姆龙株式会社 可编程控制器
CN101482813A (zh) * 2009-02-24 2009-07-15 上海大学 一种线程并行执行优化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309759A (zh) * 2012-03-06 2013-09-18 智邦科技股份有限公司 一种操作系统中断服务的检测方法
CN111752877A (zh) * 2019-03-27 2020-10-09 阿里巴巴集团控股有限公司 一种处理器及其中的中断控制器

Also Published As

Publication number Publication date
US20110016295A1 (en) 2011-01-20
KR101673990B1 (ko) 2016-11-08
TW201118723A (en) 2011-06-01
WO2011011256A1 (en) 2011-01-27
TWI525535B (zh) 2016-03-11
EP2457170B1 (en) 2014-12-31
US8688964B2 (en) 2014-04-01
KR20120036301A (ko) 2012-04-17
CN102414672B (zh) 2015-02-04
EP2457170A1 (en) 2012-05-30

Similar Documents

Publication Publication Date Title
CN102414672A (zh) 可编程异常处理等待时间
JP5047542B2 (ja) マルチスレッドプロセッサのディスパッチ時にスレッドをブロックする方法、コンピュータプログラム、および装置(精細なマルチスレッドディスパッチロックメカニズム)
US11275590B2 (en) Device and processing architecture for resolving execution pipeline dependencies without requiring no operation instructions in the instruction memory
US9524164B2 (en) Specialized memory disambiguation mechanisms for different memory read access types
CN100593154C (zh) 用于预测执行无竞争的锁定指令的方法和装置
JP5653431B2 (ja) マルチプロセッサシステム
US7610473B2 (en) Apparatus, method, and instruction for initiation of concurrent instruction streams in a multithreading microprocessor
TWI298458B (en) Multithreaded processor, computing system with thread livelock units and method for arbitrating livelock priority requests
TW432327B (en) Altering thread priorities in a multithreaded processor
US7870369B1 (en) Abort prioritization in a trace-based processor
JP2008047145A (ja) デュアルスレッドプロセッサ
TWI514156B (zh) 推測式快取修改技術
EP2503453A1 (en) Processor core with data error detection, and method for instruction execution in the same, with error avoidance
JP2004326748A (ja) 例外条件を解消するために同時マルチスレッド・プロセッサでディスパッチ・フラッシュを使用する方法
CN111752877A (zh) 一种处理器及其中的中断控制器
US11392407B2 (en) Semiconductor device
JP2020091751A (ja) 演算処理装置および演算処理装置の制御方法
US20140136818A1 (en) Fetch less instruction processing (flip) computer architecture for central processing units (cpu)
US10901747B2 (en) Unified store buffer
KR20220062559A (ko) 업스트림 리소스를 관리하는 동안의 스로틀링
US20070043930A1 (en) Performance of a data processing apparatus
US7783863B1 (en) Graceful degradation in a trace-based processor
JP2009505267A (ja) 補助メモリを用いてメモリにアクセスする方法及びシステム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant