CN101826000A - 流水线微处理器的中断响应确定方法、装置及微处理器核 - Google Patents
流水线微处理器的中断响应确定方法、装置及微处理器核 Download PDFInfo
- Publication number
- CN101826000A CN101826000A CN201010103742A CN201010103742A CN101826000A CN 101826000 A CN101826000 A CN 101826000A CN 201010103742 A CN201010103742 A CN 201010103742A CN 201010103742 A CN201010103742 A CN 201010103742A CN 101826000 A CN101826000 A CN 101826000A
- Authority
- CN
- China
- Prior art keywords
- instruction
- module
- microprocessor
- interrupt
- order
- 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.)
- Pending
Links
- 230000004044 response Effects 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000005540 biological transmission Effects 0.000 claims abstract 2
- 230000004048 modification Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 230000000149 penetrating effect Effects 0.000 claims description 4
- 230000008707 rearrangement Effects 0.000 claims description 4
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 240000007643 Phytolacca americana Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Images
Classifications
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种流水线微处理器的中断响应延迟确定方法,所述流水线包括:取指级、译码级和指令发射级,该方法包括:当所述微处理器接收到外部中断信号时,阻止新指令的发射,且对处于流水线中的第一条待执行指令标记中断标识;当检测到流水线中的指令存在中断标识时,清空处理器流水线且触发处理器内部的中断响应。本发明还公开了一种流水线微处理器的中断响应延迟确定装置以及一种微处理器核。利用本发明所提供的方法、装置和微处理器核可以将微处理器内部对中断响应的延迟控制在一确定时间范围内,而且该时间不受外部因素影响。
Description
技术领域
本发明涉及微处理器体系结构,更具体地说涉及用于流水线微处理器的中断响应确定方法及装置,属于计算机技术领域。
背景技术
现代计算机系统中,作为系统控制中心的微处理器,需要对计算机系统中的众多硬件设备进行管理,所以,它们之间必须维持一套通信机制。众所周知,微处理器的速度跟外部设备的速度往往不在一个数量级上,因此让微处理器采用轮询的方式去管理外部设备显然是低效的。因而,在现有的计算机系统中,外部设备主要通过中断机制通知微处理器。微处理器在接收到中断信号之后,将会停止当前的工作进入中断处理。
在具体实现时,微处理器内部通常又将中断和例外合并起来,利用一套统一的机制进行处理。例外是程序指令执行的异常造成的,在产生的时候它们是与微处理器时钟同步,且例外总是确切的产生在某条指令上,因而对于微处理器而言,例外是一个同步信号。但是中断是由外部设备发出的,其相对于微处理器是一个异步信号,为了利用与例外处理相同的一套机制进行处理,必须要将外部设备的中断信号同步到微处理器时钟上,并最终绑定到某一条指令上。当完成这些处理之后,被绑定的指令就可以触发一种特殊的例外一中断,处理器内部接收到该中断信号后即进入相应的中断处理模式。
在上述的实现方式中,从来自外部设备的中断信号到达微处理器开始,到最终微处理器进入例外处理模式,两个事件之间的时间间隔称为处理器的中断响应延迟。在对于外部设备响应延迟有严格要求的应用领域(例如,工业控制、航空航天),一个计算机系统进行设计时必须明确各类请求的响应延迟是否在任何情况下都满足设计需要,即:需要明确在最坏的情况下,响应延迟是否满足延迟要求指标。为达到该设计目标,通常需要软硬件的协同设计考虑。
作为一个计算机系统中的控制核心,微处理器中断响应延迟大小的确定性是尤为重要的。然而,当前微处理器多采用流水线结构,因此当进行中断绑定时,微处理器流水线可能同时存在多条指令,选择哪一条指令,或者进一步说选择位于流水线哪一级的指令进行绑定将直接影响到中断延迟。最直接的考虑可以将中断绑定在流水线中第一条即将提交的指令上,这样处理器的响应延迟最小。但是处理器实现精确例外的要求会大大增加此处设计考虑的复杂度。
精确例外是处理例外的一种方法,具体是指,在处理例外的时候,例外之前的指令已经全部完成,例外之后的指令可以重新执行,且重新执行不影响原来指令流的正确执行。在乱序执行的情况下,需要保证一条指令发生例外时的现场与其在顺序执行环境下发生例外的现场一样,这里所指的现场包括寄存器现场和存储器现场。当前主流高性能微处理器都实现了精确例外。
为了满足精确例外的要求,一种实现方式是将对微处理器现场的修改都推迟到确定例外不会产生之后进行,在乱序流水线微处理器中,通常是延迟到指令提交阶段完成。但是这样需要利用大量的存储资源暂存所有指令的操作结果直至指令提交,特别是对于访存指令,需要保存更多的相关内容。这种实现方式下,外部中断可以直接绑定到等待提交的第一条指令上,但是这需要一种很高硬件开销的流水线结构。而且进一步地说,即使利用该方式实现外部中断,也无法满足处理器中断响应延迟的确定性。因为,在特定情况下,外部中断到来时,流水线中没有指令,取指部件在高速缓存中不命中,去外部存储中取指。在这种情况下,中断响应延迟将受到外部存储访存延迟的影响,从而引入不确定性。
综上所述,现有技术的不足需要一种开销低、效率高的设计,以满足用于流水线微处理器的中断响应延迟要求。
发明内容
本发明要解决的技术问题是提供一种流水线微处理器的中断响应确定方法、装置及微处理器核,使得利用较小的开销就能以满足用于流水线微处理器的中断响应延迟要求。
为了实现上述目的,本发明提供一种流水线微处理器的中断响应延迟确定方法,所述流水线包括:取指级、译码级和指令发射级,该方法包括:
当所述微处理器接收到外部中断信号时,阻止新指令的发射,且对处于流水线中的第一条待执行指令标记中断标识;
当检测到流水线中的指令存在中断标识时,清空处理器流水线且触发处理器内部的中断响应。
进一步地,该方法还包括:设置存储待发射和执行指令的重定序排列,此时,所述的流水线中第一条待执行指令具体是:
当重定序排列中存在指令时,第一条尚未发射的指令、或已经发射但尚未执行并将改变微处理器状态的指令;
当重定序排列中不存在指令、但译码或者取指流水级存在指令时,沿着流水线从译码或者取指流水级中进入重定序状态的第一条指令;
当重定序流水级不存在指令、但译码流水级没有指令且取指流水级发生cache不命中时,生成沿着流水线进入重定序流水级的第一条伪指令。
再进一步地,所述第一条已经发射、但尚未执行的指令是这样确定的:
判断重定序排列中的已经发射的指令是否是将产生修改微处理器状态的指令;
对于重定序排列中的所有修改微处理器状态但是未执行的指令,按照年龄从大到小的顺序进行筛选,选定年龄最大的指令作为第一条尚未执行的指令。
再进一步地,该方法还包括:
当已经发射的指令为不修改微处理器状态的指令时,继续在外部执行该指令;
当已经发射但未执行的指令为修改微处理器状态的指令时,中止该指令在外部执行。
进一步地,所述外部中断信号是与微处理器内部时钟同步的信号。
进一步地,检测待执行指令中是否存在中断标识是在每一拍提交指令时。
进一步地,该方法还包括:当待执行指令中存在中断标识和非中断标识时,只根据中断标识触发中断标识。
再进一步地,该方法还包括:触发处理器内部的中断响应时,清除指令上的中断标志。
本发明还公开了一种流水线微处理器的中断响应延迟确定装置,所述流水线包括:
取指模块,用于取出指令;
译码模块,用于对所取出的指令进行译码,并按照指令在程序中出现的先后次序将译码后的指令提供给指令发射模块;
指令发射模块,用于存储译码后待发射的指令,并按序发射至外部执行模块;
该装置还包括:中断采样模块、中断绑定模块和中断触发模块,其中,
中断采样模块,用于采集并与微处理器内部时钟同步所述微处理器接收到的外部中断信号,并将该信号提供给中断绑定模块,且向指令发射模块发送指令停止发射信号;
中断绑定模块,用于对处于流水线中的第一条待执行指令标记中断标识;
中断触发模块,用于检测到流水线中的指令存在中断标识时,触发处理器内部的中断响应;
此外,所述指令发射模块,还用于在接收到指令停止发射信号后,停止信号的发射。
进一步地,所述装置包括:重定序模块,用于存储重新排序的待发射和执行指令及所述指令的状态标识;此时,所述中断绑定模块确定处于流水线中第一条待执行的指令包括:
判定重定序模块中存在指令时,将其中第一条尚未发射的指令、或已经发射但尚未执行并将改变微处理器状态的指令作为第一条待执行的指令;
判定重定序模块中不存在指令、但译码装置或者取指装置中存在指令时,将从沿流水线进入重定序模块的指令作为第一条待执行的指令;
判定重定序模块中不存在指令、但译码装置没有指令且取指装置发生cache不命中时,将生成沿着流水线进入重定序模块的伪指令作为第一条待执行的指令。
更进一步地,所述装置包括:指令判定模块,用于在外部执行模块接收到指令后,判断该指令是否修改微处理器状态以及是否已经执行,并将判断结果提供给重定序模块;
此时,所述中断绑定模块确定重定序模块中第一条已经发射、但尚未执行的指令包括:
判断重定序排列中的已经发射的指令是否是将产生修改微处理器状态的指令;
对于重定序模块中的所有修改微处理器状态但是未执行的指令,按照年龄从大到小的顺序进行筛选,选定年龄最大的指令作为第一条尚未执行的指令。
更进一步地,所述的指令判定模块在判断已经发射但未执行的指令为修改微处理器状态的指令且接收到申请中断的信号时,向外部执行模块发送中止执行的信号;
此时,所述中断绑定模块在标记中断标识时向所述指令判定模块发送申请中断的信号。
进一步地,所述中断触发模块检测流水线中的指令是否存在中断标识是所述指令发射模块在每一拍发射指令时。
本发明又提供一种微处理器核,其包括:用于流水线微处理器的中断响应延迟确定装置,所述流水线包括:
取指模块,用于取出指令;
译码模块,用于对所取出的指令进行译码,并按照指令在程序中出现的先后次序将译码后的指令提供给指令发射模块;
指令发射模块,用于存储译码后待发射的指令,并按序发射至外部执行模块;
所述装置还包括:中断采样模块、中断绑定模块和中断触发模块,其中,
中断采样模块,用于采集并与微处理器内部时钟同步所述微处理器接收到的外部中断信号,并将该信号提供给中断绑定模块,且向指令发射模块发送指令停止发射信号;
中断绑定模块,用于对处于流水线中的第一条待执行指令标记中断标识;
中断触发模块,用于检测到流水线中的指令存在中断标识时,触发处理器内部的中断响应;
此外,所述指令发射模块,还用于在接收到指令停止发射信号后,停止信号的发射。
进一步地,所述装置包括:重定序模块,用于存储重新排序的待发射和执行指令及所述指令的状态标识;此时,所述中断绑定模块确定处于流水线中第一条待执行的指令包括:
判定重定序模块中存在指令时,将其中第一条尚未发射的指令、或已经发射但尚未执行并将改变微处理器状态的指令作为第一条待执行的指令;
判定重定序模块中不存在指令、但译码装置或者取指装置中存在指令时,将从沿流水线进入重定序模块的指令作为第一条待执行的指令;
判定重定序模块中不存在指令、但译码装置没有指令且取指装置发生cache不命中时,将生成沿着流水线进入重定序模块的伪指令作为第一条待执行的指令。
进一步地,所述装置包括:指令判定模块,用于在外部执行模块接收到指令后,判断该指令是否修改微处理器状态以及是否已经执行,并将判断结果提供给重定序模块;
此时,所述中断绑定模块确定重定序模块中第一条已经发射、但尚未执行的指令包括:
判断重定序排列中的已经发射的指令是否是将产生修改微处理器状态的指令;
对于重定序模块中的所有修改微处理器状态但是未执行的指令,按照年龄从大到小的顺序进行筛选,选定年龄最大的指令作为第一条尚未执行的指令。
进一步地,所述的指令判定模块在判断已经发射但未执行的指令为修改微处理器状态的指令且接收到申请中断的信号时,向外部执行模块发送中止执行的信号;
此时,所述中断绑定模块在标记中断标识时向所述指令判定模块发送申请中断的信号。
进一步地,所述中断触发模块检测流水线中的指令是否存在中断标识是所述指令发射模块在每一拍发射指令时。
与现有技术相比,利用本发明所提供的流水线微处理器的中断响应确定方法、装置及微处理器核,可以使得只需要较小的开销就能以满足用于流水线微处理器的中断响应延迟要求,而且该中断响应延迟的时间值只与微处理器的内部运行频率相关,当频率一定时,该时间值固定不变。
附图说明
图1是本发明实施例的用于流水线微处理器的中断响应确定方法的流程图;
图2是本发明实施例的用于流水线微处理器的中断响应确定装置的示意图;
图3是本发明实施例中的中断采样模块同步中断信号的电路图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步地介绍,但不作为对本发明的限定。
参考图1所示,本发明的实施例提供一种用于确定流水线微处理器的中断响应的方法,其包括以下步骤:
步骤101:当微处理器接收到外部中断信号时,阻止新指令的发射,同时,对处于流水线中的第一条待执行的指令标记中断标识,由此完成中断绑定;
具体地说,当微处理器接收到外部中断信号时,将其与微处理器的时钟信号同步后提供给微处理器内部的发射队列,以阻止新指令发射到功能部件而执行,以此可以降低微处理器不必要的功耗损失;同时,开始进行新的中断绑定,即,设置存储待发射和执行指令的重定序排列,然后,
如果微处理器中的重定序排列的指令为非空时,等待所有在执行阶段(即,修改处理器状态)的指令执行完毕后,将该重定序流水级中第一条尚未发射的指令或已经发射但尚未执行并将改变微处理器状态的指令标记上中断标识;
如果微处理器中的重定序流水级的指令此刻为空,则等待位于译码和取指流水级的指令进入重定序流水级时将其标记上中断标识;
如果译码流水级没有指令且取指流水级发生了cache不命中,从外存取回的指令尚未返回,则立即根据取指部件中现有的程序计数器值生成出一条伪指令(例如,空闲(nop)指令),使其沿处理器流水线传递到重定序队列中,同样对其标记上中断标识;说明一点,此处所说的伪指令可以是任意编码的指令;
在该步骤101中,第一条尚未完成执行的指令是这样确定的:
判断流水线中的指令是否是将产生修改微处理器状态的指令,这可以通过流水线中每条指令所保存记录的当前所处状态来判断;并且,进一步地说,当已经发射的指令为不修改微处理器状态的指令时,继续在外部执行该指令,当已经发射的指令为修改微处理器状态的指令时,中止该指令在外部执行;
对于流水线中的所有修改微处理器状态指令,按照年龄从大到小的顺序进行筛选,选定年龄最大的指令作为第一条尚未完成执行的指令。
步骤102,当检查待执行指令发现其含有中断标识时,清空微处理器流水线并触发微处理器内部对中断的响应。
在该步骤中,检查待执行指令是在微处理器的每一拍提交指令时;
在该步骤中,如果检查待执行指令时,发现该指令除了中断标识之外,还存在其它例外标识,关闭其它例外的相应功能,仅触发中断响应而关闭其他例外相应功能。
从上述的实现方法中可以看出,利用本发明所提供的方法可以将微处理器内部对中断响应的延迟控制在一确定时间范围内,而且该时间不受外部因素影响。
以下通过更具体的实例来来上述的方法进行详细说明。
例1.假定本例中,重定序队列共有8项。外部中断信号到达微处理器时,队列中共有5条指令,队列头指针指向第3项,前三条指令均已发射至功能部件执行,但尚未写回。其中第一条为加法指令;第二条为存数指令,且这条存数操作cache命中;第三条为取数指令,且这条取数指令cache不命中,正要发起访问外存操作。五条指令中倒数两条指令操作数都已经准备好但尚未发射。在这种情况下,倒数两条指令停止发射。第二条指令的存数动作在进行之前,通过指令执行判定,发现当前队列在该指令之前有一条尚未执行完毕的指令,属于可能标记上中断标识的指令,因此第二条指令的存数动作被阻塞。第三条指令因其为取数操作,不会修改处理器10状态,所以不需要进行指令执行判定。第一条指令因其尚未返回,被标记上中断标识,同时将其状态置为执行完毕。一拍之后,第一条指令被提交,中断触发部件的逻辑观察到这条指令标记上了中断标识,立即触发内部中断信号,各级流水线被清空,取指部件将PC设为中断处理例程入口地址。随后处理器即进入中断处理例程,即所谓响应中断。
例2.假定本例中,外部中断信号到达处理器时,因为取指部件由于cache不命中而长时间没有提供新的指令,之前的指令都已经执行完毕提交,重定序队列和译码流水级、取指流水级均没有有效指令。此时,立即由取指流水级插入一条标记上中断标识的NOP指令,同时将该指令置为有效,这条伪指令沿处理器流水级,在两拍之后到达重定序队列,在随后的一拍,该指令提交,同例1最后描述,导致处理器最后进入中断处理例程。
对应的,参考图2所示,本发明的实施例还提供一种用于确定流水线微处理器的中断响应的装置,其包括:位于流水线的取指模块、译码模块、指令发射模块(图2中示例性地以指令发射队列的形式示出),以及重定序模块(图2中示例性地以重定序队列的形式示出)、中断采样模块、中断绑定模块、中断触发模块、指令判断模块,其中:
取指模块,用于取出指令;
译码模块,用于对所取出的指令进行译码,并按照指令在程序中出现的先后次序将译码后的指令提供给指令发射模块和重定序模块;
指令发射模块,用于存储译码后待发射的指令,并按序发射至外部执行模块;且在接收到指令停止发射信号后,停止信号的发射;
重定序模块,用于存储重新排序的待发射和执行指令及所述指令的状态标识;
指令判定模块,用于在外部执行模块接收到指令后,判断该指令是否修改微处理器状态以及是否已经执行,并将判断结果提供给重定序模块;在判断已经发射但未执行的指令为修改微处理器状态的指令且接收到申请中断的信号时,向外部执行模块发送中止执行的信号;
中断采样模块,用于采集外部中断信号并将该信号提供给中断绑定模块,该外部中断信号与微处理器内部时钟同步;且还向指令发射模块发送指令停止发射信号;在该模块中,为了使接收到的信号成为与微处理器内部时钟同步得外部中断信号,可以采用图3中所示的电路,外部信号经过串联的两级工作在微处理器内部时钟的时钟域的触发器锁存之后再输出;
中断绑定模块,用于对处于流水线中的第一条待执行指令标记中断标识;且在标记中断标识时向所述指令判定模块发送申请中断的信号;
中断触发模块,用于检测到流水线中的指令存在中断标识时,触发处理器内部的中断响应。
进一步地说,所述中断触发模块检测流水线中的指令是否存在中断标识是所述指令发射模块在每一拍发射指令时。
在上述装置中,进一步地,所述中断绑定模块确定处于流水线中第一条待执行的指令包括:
判定重定序模块中存在指令时,将其中第一条尚未发射的指令、或已经发射但尚未执行并将改变微处理器状态的指令作为第一条待执行的指令;
判定重定序模块中不存在指令、但译码装置或者取指装置中存在指令时,将从沿流水线进入重定序模块的指令作为第一条待执行的指令;
判定重定序模块中不存在指令、但译码装置没有指令且取指装置发生cache不命中时,将生成沿着流水线进入重定序模块的伪指令作为第一条待执行的指令。
进一步地,所述中断绑定模块确定重定序模块中第一条已经发射、但尚未执行的指令包括:
判断重定序排列中的已经发射的指令是否是将产生修改微处理器状态的指令;
对于重定序模块中的所有修改微处理器状态但是未执行的指令,按照年龄从大到小的顺序进行筛选,选定年龄最大的指令作为第一条尚未执行的指令。
此外,本发明的实施例还提供一种微处理器核,该微处理器核包括上述用于确定流水线微处理器的中断响应的装置。
最后应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (13)
1.一种流水线微处理器的中断响应延迟确定方法,所述流水线包括:取指级、译码级和指令发射级,其特征在于,该方法包括:
当所述微处理器接收到外部中断信号时,阻止新指令的发射,且对处于流水线中的第一条待执行指令标记中断标识;
当检测到流水线中的指令存在中断标识时,清空处理器流水线且触发处理器内部的中断响应。
2.如权利要求1所述的方法,其特征在于,设置存储待发射和执行指令的重定序排列,此时,所述的流水线中第一条待执行指令具体是:
当重定序排列中存在指令时,第一条尚未发射的指令、或已经发射但尚未执行并将改变微处理器状态的指令;
当重定序排列中不存在指令、但译码或者取指流水级存在指令时,沿着流水线从译码或者取指流水级中进入重定序状态的第一条指令;
当重定序流水级不存在指令、但译码流水级没有指令且取指流水级发生cache不命中时,生成沿着流水线进入重定序流水级的第一条伪指令。
3.如权利要求2所述的方法,其特征在于,所述第一条已经发射、但尚未执行的指令是这样确定的:
判断重定序排列中的已经发射的指令是否是将产生修改微处理器状态的指令;
对于重定序排列中的所有修改微处理器状态但是未执行的指令,按照年龄从大到小的顺序进行筛选,选定年龄最大的指令作为第一条尚未执行的指令。
4.如权利要求2所述的方法,其特征在于,该方法还包括:
当已经发射的指令为不修改微处理器状态的指令时,继续在外部执行该指令;
当已经发射但未执行的指令为修改微处理器状态的指令时,中止该指令在外部执行。
5.如权利要求1所述的方法。其特征在于,所述外部中断信号是与微处理器内部时钟同步的信号。
6.如权利要求1所述的方法,其特征在于,检测待执行指令中是否存在中断标识是在每一拍提交指令时。
当待执行指令中存在中断标识和非中断标识时,只根据中断标识触发中断标识。
7.如权利要求1所述的方法,其特征在于,该方法还包括:触发处理器内部的中断响应时,清除指令上的中断标志。
8.一种流水线微处理器的中断响应延迟确定装置,所述流水线包括:
取指模块,用于取出指令;
译码模块,用于对所取出的指令进行译码,并按照指令在程序中出现的先后次序将译码后的指令提供给指令发射模块;
指令发射模块,用于存储译码后待发射的指令,并按序发射至外部执行模块;
其特征在于,该装置还包括:中断采样模块、中断绑定模块和中断触发模块,其中,
中断采样模块,用于采集与微处理器内部时钟同步的外部中断信号,并将该信号提供给中断绑定模块,且向指令发射模块发送指令停止发射信号;
中断绑定模块,用于对处于流水线中的第一条待执行指令标记中断标识;
中断触发模块,用于检测到流水线中的指令存在中断标识时,触发处理器内部的中断响应;
此外,所述指令发射模块,还用于在接收到指令停止发射信号后,停止信号的发射。
9.如权利要求8所述的装置,其特征在于,所述装置进一步地包括:重定序模块,用于存储重新排序的待发射和执行指令及所述指令的状态标识;此时,所述中断绑定模块确定处于流水线中第一条待执行的指令包括:
判定重定序模块中存在指令时,将其中第一条尚未发射的指令、或已经发射但尚未执行并将改变微处理器状态的指令作为第一条待执行的指令;
判定重定序模块中不存在指令、但译码装置或者取指装置中存在指令时,将从沿流水线进入重定序模块的指令作为第一条待执行的指令;
判定重定序模块中不存在指令、但译码装置没有指令且取指装置发生cache不命中时,将生成沿着流水线进入重定序模块的伪指令作为第一条待执行的指令。
10.如权利要求9所述的装置,其特征在于,所述装置包括:指令判定模块,用于在外部执行模块接收到指令后,判断该指令是否修改微处理器状态以及是否已经执行,并将判断结果提供给重定序模块;
此时,所述中断绑定模块确定重定序模块中第一条已经发射、但尚未执行的指令包括:
判断重定序排列中的已经发射的指令是否是将产生修改微处理器状态的指令;
对于重定序模块中的所有修改微处理器状态但是未执行的指令,按照年龄从大到小的顺序进行筛选,选定年龄最大的指令作为第一条尚未执行的指令。
11.如权利要求10所述的装置,其特征在于,所述的指令判定模块在判断已经发射但未执行的指令为修改微处理器状态的指令且接收到申请中断的信号时,向外部执行模块发送中止执行的信号;
此时,所述中断绑定模块在标记中断标识时向所述指令判定模块发送申请中断的信号。
12.如权利要求8所述的装置,其特征在于,所述中断触发模块检测流水线中的指令是否存在中断标识是所述指令发射模块在每一拍发射指令时。
当待执行指令中存在中断标识和非中断标识时,只根据中断标识触发中断标识。
13.一种微处理器核,其特征在于:所述微处理器核具有权利要求8-12任一所述的用于流水线微处理器的中断响应延迟确定装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010103742A CN101826000A (zh) | 2010-01-29 | 2010-01-29 | 流水线微处理器的中断响应确定方法、装置及微处理器核 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010103742A CN101826000A (zh) | 2010-01-29 | 2010-01-29 | 流水线微处理器的中断响应确定方法、装置及微处理器核 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101826000A true CN101826000A (zh) | 2010-09-08 |
Family
ID=42689933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010103742A Pending CN101826000A (zh) | 2010-01-29 | 2010-01-29 | 流水线微处理器的中断响应确定方法、装置及微处理器核 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101826000A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268145A (zh) * | 2013-03-06 | 2013-08-28 | 上海云间半导体科技有限公司 | 用于保存访存指令的虚拟地址的方法 |
CN104380246A (zh) * | 2012-06-15 | 2015-02-25 | 国际商业机器公司 | 事务执行中的程序中断筛选 |
CN105474174A (zh) * | 2013-08-23 | 2016-04-06 | Arm有限公司 | 控制时间密集的指令 |
CN105637433A (zh) * | 2013-10-15 | 2016-06-01 | 欧姆龙株式会社 | 控制装置及控制方法 |
CN105930133A (zh) * | 2016-04-19 | 2016-09-07 | 南京亚派科技股份有限公司 | 一种基于单片机系统的串行指令的发送方法 |
CN108255519A (zh) * | 2016-12-29 | 2018-07-06 | 展讯通信(上海)有限公司 | 同步多线程处理器的浮点指令处理方法及装置 |
US10185588B2 (en) | 2012-06-15 | 2019-01-22 | International Business Machines Corporation | Transaction begin/end instructions |
CN109284176A (zh) * | 2017-07-20 | 2019-01-29 | 龙芯中科技术有限公司 | 中断响应方法、装置及计算机可读存储介质 |
US10353759B2 (en) | 2012-06-15 | 2019-07-16 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US10558465B2 (en) | 2012-06-15 | 2020-02-11 | International Business Machines Corporation | Restricted instructions in transactional execution |
US10599435B2 (en) | 2012-06-15 | 2020-03-24 | International Business Machines Corporation | Nontransactional store instruction |
US10719415B2 (en) | 2012-06-15 | 2020-07-21 | International Business Machines Corporation | Randomized testing within transactional execution |
WO2021203560A1 (zh) * | 2020-04-07 | 2021-10-14 | 江南大学 | 一种基于指令凋零的多指令乱序发射方法及处理器 |
-
2010
- 2010-01-29 CN CN201010103742A patent/CN101826000A/zh active Pending
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10353759B2 (en) | 2012-06-15 | 2019-07-16 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US10185588B2 (en) | 2012-06-15 | 2019-01-22 | International Business Machines Corporation | Transaction begin/end instructions |
CN104380246A (zh) * | 2012-06-15 | 2015-02-25 | 国际商业机器公司 | 事务执行中的程序中断筛选 |
US10430199B2 (en) | 2012-06-15 | 2019-10-01 | International Business Machines Corporation | Program interruption filtering in transactional execution |
US10558465B2 (en) | 2012-06-15 | 2020-02-11 | International Business Machines Corporation | Restricted instructions in transactional execution |
US11080087B2 (en) | 2012-06-15 | 2021-08-03 | International Business Machines Corporation | Transaction begin/end instructions |
CN104380246B (zh) * | 2012-06-15 | 2017-10-24 | 国际商业机器公司 | 用于管理计算环境中的中断的方法、系统及介质 |
US10719415B2 (en) | 2012-06-15 | 2020-07-21 | International Business Machines Corporation | Randomized testing within transactional execution |
US10684863B2 (en) | 2012-06-15 | 2020-06-16 | International Business Machines Corporation | Restricted instructions in transactional execution |
US10606597B2 (en) | 2012-06-15 | 2020-03-31 | International Business Machines Corporation | Nontransactional store instruction |
US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
US10599435B2 (en) | 2012-06-15 | 2020-03-24 | International Business Machines Corporation | Nontransactional store instruction |
CN103268145B (zh) * | 2013-03-06 | 2016-08-17 | 上海云间半导体科技有限公司 | 用于保存访存指令的虚拟地址的方法 |
CN103268145A (zh) * | 2013-03-06 | 2013-08-28 | 上海云间半导体科技有限公司 | 用于保存访存指令的虚拟地址的方法 |
CN105474174A (zh) * | 2013-08-23 | 2016-04-06 | Arm有限公司 | 控制时间密集的指令 |
CN105474174B (zh) * | 2013-08-23 | 2020-02-28 | Arm 有限公司 | 控制时间密集的指令 |
US10963250B2 (en) | 2013-08-23 | 2021-03-30 | Arm Limited | Selectively suppressing time intensive instructions based on a control value |
CN105637433A (zh) * | 2013-10-15 | 2016-06-01 | 欧姆龙株式会社 | 控制装置及控制方法 |
CN105637433B (zh) * | 2013-10-15 | 2018-01-19 | 欧姆龙株式会社 | 控制装置及控制方法 |
US10409244B2 (en) | 2013-10-15 | 2019-09-10 | Omron Corporation | Controller and control method |
CN105930133B (zh) * | 2016-04-19 | 2018-08-17 | 南京亚派科技股份有限公司 | 一种基于单片机系统的串行指令的发送方法 |
CN105930133A (zh) * | 2016-04-19 | 2016-09-07 | 南京亚派科技股份有限公司 | 一种基于单片机系统的串行指令的发送方法 |
CN108255519A (zh) * | 2016-12-29 | 2018-07-06 | 展讯通信(上海)有限公司 | 同步多线程处理器的浮点指令处理方法及装置 |
CN108255519B (zh) * | 2016-12-29 | 2020-08-14 | 展讯通信(上海)有限公司 | 同步多线程处理器的浮点指令处理方法及装置 |
CN109284176A (zh) * | 2017-07-20 | 2019-01-29 | 龙芯中科技术有限公司 | 中断响应方法、装置及计算机可读存储介质 |
WO2021203560A1 (zh) * | 2020-04-07 | 2021-10-14 | 江南大学 | 一种基于指令凋零的多指令乱序发射方法及处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101826000A (zh) | 流水线微处理器的中断响应确定方法、装置及微处理器核 | |
US9798645B2 (en) | Embedding stall and event trace profiling data in the timing stream | |
US8661230B2 (en) | Allocation of counters from a pool of counters to track mappings of logical registers to physical registers for mapper based instruction executions | |
CN100520712C (zh) | 用来实施具有追踪缓存的微处理器的方法及系统 | |
US9495170B2 (en) | Determining each stall reason for each stalled instruction within a group of instructions during a pipeline stall | |
KR101083182B1 (ko) | 비-간섭적 디지털 신호 프로세서 디버깅 동안 명령 스터핑 동작들을 위한 방법 및 시스템 | |
CN101221543A (zh) | 执行dma块移动的方法、dma设备和数据处理系统 | |
WO2013181012A1 (en) | Load-store dependency predictor using instruction address hashing | |
US11068266B2 (en) | Handling an input/output store instruction | |
US11586439B2 (en) | Detecting infinite loops in a programmable atomic transaction | |
US20210334228A1 (en) | Managing network interface controller-generated interrupts | |
US20060150023A1 (en) | Debugging apparatus | |
US11748109B2 (en) | System and method for implementing strong load ordering in a processor using a circular ordering ring | |
WO2022037421A1 (zh) | 指令发射方法、装置、电子设备以及存储介质 | |
US6647488B1 (en) | Processor | |
CN104094558A (zh) | 多线程化分组处理 | |
EP1766510B1 (en) | Microprocessor output ports and control of instructions provided therefrom | |
US9678852B2 (en) | Tracing the operations of a data processing apparatus using trace data source identifiers to respond to flush requests | |
GB2362730A (en) | Using store instructions to watch registers | |
CN109614146B (zh) | 一种局部跳转指令取指方法及装置 | |
CN103645865A (zh) | 一种命令超时的处理方法 | |
US11822472B2 (en) | Memory management unit for multi-threaded architecture | |
US20220100626A1 (en) | Monitoring performance cost of events | |
CN117348936A (zh) | 处理器、取指方法和计算机系统 | |
CN105183372A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100908 |