CN1009396B - 具有指令予取换向中断服务的数据处理器控制部件 - Google Patents
具有指令予取换向中断服务的数据处理器控制部件Info
- Publication number
- CN1009396B CN1009396B CN86107934A CN86107934A CN1009396B CN 1009396 B CN1009396 B CN 1009396B CN 86107934 A CN86107934 A CN 86107934A CN 86107934 A CN86107934 A CN 86107934A CN 1009396 B CN1009396 B CN 1009396B
- Authority
- CN
- China
- Prior art keywords
- instruction
- interrupt
- address
- data processor
- getting
- 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
Links
- 230000002093 peripheral effect Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 30
- 230000008859 change Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 10
- 230000015654 memory Effects 0.000 abstract description 17
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 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
-
- 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
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
本发明涉及数据处理电路,更确切地说,它涉及数据处理器的中断执行。
在程序步骤的执行中,数据处理器会被外围设备异步中断。通常中断请求通过如下二种方法之一或其变化来处理。微处理器通常采取的第一种方法是改变程序计数器内容的矢量中断法。在这种方法中,对中断请求不是立即服务,而是把它悬置起来,直到指令执行边界出现为止。因此,必定是在当前指令执行完毕后,才对中断服务。在指令边界处,程序计数器的内容是返回地址。即若不发生中断时它要执行的下一指令的地址。然后将返回地址及其它信息的变化数值自动地保存在栈存贮器内。被保护的其它信息可包括条件码寄存器、数据寄存器和地址寄存器。而后,用中断服务程序的起始地址替代先前的程序计数器内容,从而使程序流转到中断服务程序。程序计数器的替代值可用各种方法生成。一种常用的方法是使微处理器产生一中断应答信号。在响应中断应答信号时,请求中断服务的外设提供一中断矢量号,它指导微处理器,从一存贮器表中查找中断服务程序的起始地址。中断服务程序的起始地址被装入程序计数器,且处理器取出中断程序的第一条指令并译码及执行。通过执行“从中断返回”(RTI)指令来结束中断服务程序。RTI指令使处理器先前的状态恢复,并使返回地址重新装入程序计数器,从而恢复正常程序的执行。
由于处理中断要求附加的周期开销,前述中断执行方法速度慢。等待现行指令执行完毕总要使中断服务延迟一段时间。因为检索中断
矢量的内容也需要时间,所以确定起始中断地址也效率不高。进而,在起始地址装入程序计数器后,也需要一定时间来取出中断服务程序的第一条指令并进行译码,然后才能执行它。在替换程序计数器内容改变操作流时,由于强制处理器空闲,就使处理器的效率下降。最后,执行RTI指令也有延时,因为恢复处理器先前的状态条件并使之转到正常指令流也需要时间。
有人通过减小中断对所需保护的寄存器的数量使这种中断处理方法的开销减少。另一些人简化了取得中断服务程序起始地址所需的步骤。代替采用计算中断服务程序起始地址的方法,有人把起始地址存贮在程序存贮区的某固定位置,或者强制处理器立即跳转到一固定位置。尽管这些技术减小了中断开销,但效率仍然不高。现代处理器的取指令、指令译码及执行常常采用流水线方式,以便通过提前取指令及指令译码,使指令予取能与指令执行相重迭。结果,当收到中断请求时,指令管线(流水线)通常是满的。因此,在执行中断时必须放弃管线中的指令,当在一不同的地址执行中断服务程序,进行取指令,译指令及执行指令时就会有延时。在流水线式数据处理器中,这种操作流的改变会造成执行周期的损失。
执行中断的第二种常用方法称为指令塞入法。在此方法中,中断请求并不立即被服务,而是搁置到指令执行边界。在现行指令执行完成时,处理器给外设一中断应答信号。响应这一信号时,请求中断的外围设备给出一条如“转到子程序”的指令并使它挤入到指令寄存器。执行该转到子程序指令就使中断服务程序的起始地址装入程序计数器。中断服务程序完成时,RTI指令将把返回地址装入程序计数器。若塞入的指令不是转到子程序指令,塞入的指令将作为单指令服务程序执行,它隐含有从中断返回(RTI)。在指令塞入时,程序
计数器的当前内容暂时不变。这可以在没有返回地址时也能恢复正常程序的继续执行。
在中断塞入技术中,处理器要等待现行指令结束才用中断应答信号取塞入的中断服务程序指令。处理器也必须等待塞入的中断服务程序指令执行结束才能取正常程序的下一条指令。这两种操作流的改变都会产生浪费掉的开销周期。而且,在指令塞入式中断系统中,请求中断的外围设备必须针对指令处理器专门设计以便使它能提供具有正确定时的有效塞入的中断指令。这就限制了某些商用处理器与各种外围设备的兼容性。
因此,本发明的目的是要提供一种具有指令予取换向以改进中断服务的数据处理器。
本发明的另一目的是提供一种服务请求设备的改进的中断数据处理器程序执行的方法。
本发明的再一目的是提供一种改进的方法,当数据处理器执行中断及返回主程序时,使数据处理器取指令及翻译指令时开销的执行周期损失最小。
在实现本发明的上述及其它目的时,给出了一种控制部件,它提供指令给数据处理器执行。在外围设备没有中断请求时,控制部件有选择地提供予取的常规指令。在响应中断请求时,它提供予定数量的予取中断指令。予取指令在提供给数据处理器之前就被译码。本发明提供了一种方法消除数据处理器不执行任何指令而开销掉的执行周期。开销是伴随响应中断请求时,中断的指令流转去执行中断服务程序而发生的。中断控制电路收到中断请求时,就中断从控制部件到数据处理器的常规指令流。常规指令予取就转到至少一条中断指令予取。在予取的常规指令完成执行之前,并且在确定最后取出的常规指
令是否为还没予取完毕的多字长指令以前,就启动中断指令予取。然后,中断指令予取又转向到常规指令予取。在予取的中断指令完成执行以前,并且在对中断指令译码以确定是不是还没予取完的多字长指令以前,就启动了常规指令予取。
随着结合附图的详细说明,可以更清楚地了解本发明的这些及其它目的、特性和优点。
图1以表格方式说明了熟知的数据处理器中的指令处理流。
图2以表格方式说明了另一种熟知的数据处理器中的指令处理流。
图3以表格方式说明了又一种熟知的数据处理器中的指令处理流。
图4以框图形式说明了采用本发明指令予取换向的数据处理器。
图5以表格方式说明了本发明数据处理器的指令处理流。
图1所示的是许多不带指令予取的商用已知数据处理器的指令流图。它画出了18个指令周期,其中,执行指令n-1,n,n+1,n+2期间,执行了中断指令i。在执行常规程序指令期间的任何时刻,都可能收到外围设备的中断请求。仅为了说明,假定在指令n的执行周期(指令周期6)的某一时刻收到了中断请求。图1所示的数据处理系统是这样工作的:它把中断请求搁置到一指令执行边界的开头,以保证现行指令执行完毕。在指令周期边界服务中断可使数据处理器的状态限定为每一指令结束时的状态。已知的机器状态也简化了服务中断前必须保护的信息。但是在真正响应中断请求前存在几个周期的延时。与每条指令相联系的是三个固有操作,它们是取指令、翻译指令和执行操作。可以容易地看出,对指令执行的每一周期,有二个周期(以“X”标识)并不执行指令。并且在取相应于要执行的中
断程序的中断起始地址或矢量号的中断过程中,也有延时(图1中未示)。在每一以“X”标志的空闲执行周期内,或者取下一条要执行的指令,或者取下条指令译码。机器对中断指令(i)及从中断返回指令(RTI)的处理与其它常规程序指令的执行方法一样。除了中断请求的延时外,图1所示的数据处理器执行每一条指令都有二个周期的开销,因此效率低。
图2所示的是另一种用不同的称为指令塞入中断的中断技术的数据处理器的指令流图。可以容易地看出,它完成同样数目的程序指令和中断指令只需15个指令周期,而图1中则要18个指令周期才能完成它。仅为了说明,假定在指令n的执行周期(第六指令周期)期间的某一时刻收到了异步中断请求。并且,在现行指令执行结束前一直把中断请求挂起来。在采用指令塞入的处理器中,请求中断的外设必须把一有效指令放到处理器的指令寄存器中,以便向处理器塞入一中断指令。处理器应该用中断状态码来响应外围设备。所以中断的外围设备必须是处理器指定的。虽然每三个指令周期只执行一条指令,但当中断指令被塞入指令寄存器时,不必执行从中断返回指令。所以,与图1的处理器相比,执行同样数目的指令所需的周期数就少三个。但是,因为在指令周期边界出现之前不取中断指令及译码,以及中断服务程序完成以前也不取常规程序指令并译码,所以这种技术也存在开销掉的周期。
图3所示的是一种带指令予取的具有指令流水线结构的数据处理器的流图。在图3的数据处理器中,指令予取是为了在指令需要译码时指令就已准备好了。该予取技术消除了伴随指令取及译码产生的延时。这是假定指令是顺序执行的。它执行图1及图2的处理器执行的同样数目的指令只需要12个指令周期。为说明的便利,假定中断
请求在指令n的执行周期(第4指令周期)的某一时刻出现。并且,中断指令也不立即取出,而是在现行指令完成后才取出。由于具有予取能力,在执行一条指令时,下一指令被译码,再下一指令被取出。但在第一条中断指令被取出及译码时,并没有指令可被执行。结果在中断指令执行前后,总共四个周期内不执行任何指令。在指令流操作改变时,指令予取不能消除开销的周期。然而,指令予取实际上减小了完成图1和2处理器所完成的同样数目指令时所要求的指令周期数。
图4是依据本发明的数据处理器的程序控制部件10。程序计数器14具有第一端子,它经程序地址总线16与程序存贮器15的输入相连。程序存贮器15的输出经程序数据总线19与予取寄存器18的第一输入相连。予取寄存器18的第一输出连到指令译码器22的第一输入。指令译码器22的输出连到指令寄存器24的第一输入。予取寄存器18的第二输出连到指令译码器22及指令寄存器24的第二输入。指令寄存器24的控制输出连到程序计数器14的第一输入。栈存贮寄存器26具有一输入/输出端连接到程序计数器14的第一输入/输出端。程序计数器14的第二输入连接到增量电路28的输入及程序地址总线16。增量电路28的输出连到予取计数器30的第一输入。予取计数器30的输出连到程序地址总线16。中断请求信号连到中断予取控制电路34的输入并连到中断地址发生电路36的第一输入。中断予取控制电路34的输出提供中断予取信号并连到中断地址发生电路36的第二输入、予取计数器30的第二输入及予取寄存器18的第二输入。
关于操作,首先考虑没有中断请求时控制部件10的功能。指令寄存器24存贮有等待数据处理器执行的指令,它是数据处理器要执
行的下条指令。程序计数器14用于存贮紧接着指令寄存器24中指令的下条指令的指令地址,并把它经程序地址总线16送到程序存贮器15。程序存贮器15是一种存贮器,它向数据处理器提供相应程序地址的要执行的程序指令。栈26是一种存贮寄存器,它可有选择地存贮并提供程序计数器14的地址内容。予取计数器30的功能类似于程序计数器14,只是予取计数器30指向程序计数器14的下一个指令地址,其作用是在程序地址总线16上向程序存贮器15提供指令地址。当予取计数器30经程序地址总线16把下条指令予取地址送到程序存贮器15时,它同时经地址总线16把下条指令予取地址送到程序计数器14及增量器28。增量器28把已取指令地址增1并把已增量的指令地址送到予取计数器30使之更新。以这种方法,予取计数器30总是指向数据处理器正执行指令的下二条指令地址。当指令顺序执行时,予取计数器30是指令取地址的常规源。当改变操作流时,程序计数器14是指令取地址的第二源。而在指令被指令寄存器24存贮之前,从程序存贮器15来的指令被送入予取寄存器18及指令译码器22。予取寄存器18及指令译码器22的功能是联合起来有选择地存贮并把译码的指令送到指令寄存器24。以这种方法,控制部件10起着处理并提供被数据处理器执行的予定程序指令的作用。
现假定与数据处理器相连的外围设备想要中断数据处理器的工作而要求服务。外围设备发生中断请求信号到中断予取控制电路34和中断地址发生电路36。中断予取控制电路34的功能是识别外围设备的中断请求,并使予取计数器30的指令予取操作改变方向。为实现这一功能,中断予取控制电路34发生中断取信号:它使取操作转到取予定数目的指令字并控制这种予取机构的操作。中断取信号接到
中断地址发生器36,予取计数器30及予取寄存器18。在响应中断请求信号及中断取信号时,中断地址发生器36产生中断地址:它指向中断指令在程序存贮器15中的位置。中断请求信号送到中断地址发生器36是表示实际请求的是地址发生器36所寻址的那个中断程序。中断取信号实际上控制允许中断地址发生器36向程序地址总线16发生中断地址的时间。中断取信号也在中断地址发生器36提供地址时,使予取计数器30不向程序地址总线16发指令地址。
予定数目的中断指令地址可经过程序地址总线16及程序存贮器15塞入到指令流里。尽管中断地址发生器36实际上已产生了中断地址,但在开始执行中断程序之前,由于取中断指令并译码需要时间,所以数据处理器仍可执行几条(常规)指令。中断予取控制电路34及中断地址发生电路36可以有选择地把服务任何种类中断所需的予定数目的指令地址塞入到指令流里。当中断地址被塞入指令流并送到指令寄存器24时,指令寄存器24在响应中断信号时就产生一保持信号,它使程序计数器14的内容保持恒定。应注意:在收到中断请求信号后,程序计数器并不立即保持不变,而是继续增量并按指令处理直到最后一条指令结束才执行中断程序。中断取信号也用于指示予取寄存器18中的指令是中断指令。中断指令的内容及中断信号指示一起送到指令译码器22然后送到指令寄存器24。一收到中断信号,指令寄存器24就给程序计数器14保持信号。一旦地址发生器36产生了中断地址,中断取信号就使地址发生器不起作用,并使予取计数器30生效。而中断程序一执行完毕,予取计数器30将指向数据处理器应继续执行的下一条常规程序指令。将又允许予取计数器30通过程序地址总线16提供常规程序指令地址,程序计数器14将不再保持其所存的地址值。
构成图4控制部件10的每一电路都可以用熟知的商用电路很容易实现。中断予取控制电路34可用多种方法实现。控制电路34可设计成在固定的取周期数目(比如1或2)内暂时改变取指令流的方向。控制电路也可用寄存器实现,以便在每次中断时,安排予定数目的取操作。另一方法,是在控制电路30中用计数器来计一定数目的中断指令取。实现控制电路34及地址发生器36所需的上述功能还有许多其他方法。
图5所示的是采用图4的控制部件10时指令周期执行情况流图的例子。可以看出,当在指令n的执行周期(指令周期n)的某一时刻发生中断请求时,它仍可执行连续多条(常规)指令。与前述电路不同,本发明的电路可在无任何周期损失的情况下执行常规程序指令及异步中断请求。控制电路10识别中断请求时,它立即使指令取操作改变方向而不必等待指令边界的末尾。同样,中断服务程序取操作一结束,取指令序列立即转向并开始常规程序指令的取操作及译码,这些操作在中断服务程序执行完之前完成。由于取指令地址的操作不是在指令边界处进行,与等待现行指令执行完毕才开始中断服务相关的开销就减小了。
本发明能消除额外指令周期开销,基本上是由于不必等待现行指令执行结束完成就进行指令予取。因为在中断请求之后,要尽快把中断指令塞入到管线指令流,对电路的工作有一些必须的限制。不难理解:这些限制在很大程度上取决于实现本发明所选的特定电路,因此限制也会相应变化。
首先,为保证现行正执行的指令能完成执行而不使该指令的一部分丢掉或不执行,所有指令的字长都不要大于程序存贮器15与数据处理器之间的指令流水线的寄存器数。这就保证了已开始执行的任何
指令都被完整地执行,因为该指令已被完整地取出来了。在控制部件的原理图中,程序存贮器15与数据处理器间的寄存器数是2,用寄存器18及24表示。所以,控制器10可处理的指令的字长不能大于2。对于诸如微处理器(MPU),简化指令组计算机(RISC)或数字信号处理器(DSP)等这类典型的单字长指令的数据处理器,这种指令长度限制没有意义。对于要求指令字长大于2的应用场合,指令管线中可另外增加存贮寄存器。
其次,所有被处理的指令一般都具有操作码部分和信息部分。操作码部分总是由指令的第一个字表示。信息部分包含在第一指令及若有的话,第二指令字内。指令寄存器24必须决定指令寄存器中的操作码应开始执行还是放弃执行。指令寄存器24从指令译码器22接收译码的指令长度,并经予取寄存器18来的中断信号,接收一指示信号表示予取寄存器18中有一条中断指令。若指令完全包含在指令寄存器24内,指令可开始执行。若指令寄存器24中包括的不是完整的一条指令,它就从予取寄存器18请求第二指令字,予取寄存器18来的中断信号指示予取寄存器18包含的是不是第二指令字。若中断信号指示的是常规指令取操作,由于整个指令字都已取出了,就可启动这一新指令的执行,若中断信号指示的是一中断指令取操作,必须放弃该指令而不执行,并且中断指令取操作的第一指令字予取就完成了。在该举例中,为重取被放弃的指令字,应使用程序计数器14而不是予取计数器30来进行第一条常规指令的取操作。放弃指令的执行将损失一个执行周期的时间,但它对性能的影响可忽略不计,因为大多数指令只有一个字长。若所有指令都是一字长,指令绝不会放弃执行。
第三、假定常规指令流中的某些指令是使指令改变执行方向的变
向指令。比如,变向指令可使程序执行跳转到程序存贮器15中某予定的子程序。典型的变向指令将使数据处理器放弃予取寄存器18的内容,并把跳转地址经程序地址总线16送到程序计数器14。指令译码器22通过指令的操作码部分可以很容易地知道是变向指令或是正常指令。当变向指令在指令寄存器24中时,指令寄存器24收到一中断信号,正如常规指令处理中所述的原因,不能放弃予取寄存器18的内容。否则,就会永远放弃予取寄存器18中的中断指令而永不理睬中断请求。
最后,在中断指令流中也会出现比如转到子程序这类变向指令。在我们考虑的系统中,中断予取的数目一般是一或二个取操作。这可使用快速中断服务程序,这里一条指令就是以对请求中断的外部设备进行服务。对长中断服务程序,可把转入子程序指令作为中断指令流的第一条指令。这就变向到长中断服务程序,它可按常规指令流一样执行。若指令寄存器24的指令操作码是一变向指令,且它又是中断指令,若予取寄存器包含的是一正常指令,则可将它放弃。若予取寄存器18中是一中断指令,则予取寄存器中的内容不能放弃。如前所述,这就保证了中断请求不能被遗漏。
到此你可以清楚地看到,控制部件可使处理器的开销最小。这种控制处理器可使每一指令周期内使处理器的有关功能得到最大限度的利用。用这种方法,与一般的一字或二字指令组的MPU、RISC及DSP数据处理器一起使用,可有效实现特快速中断服务。
当一具体装置用某些假定参数来揭示出来时,应该知道,对于熟悉这方面的人来说,对给定电路或参数作些修正是很容易的,而本发明的范围将只限于后附权项所列的范围。
Claims (6)
1、在一具有执行指令的数据处理器及将所述指令送给数据处理器的控制部件的数据处理系统中,该控制部件有选择地在外围设备无中断请求时提供予取的常规指令并在响应中断时提供予取的中断指令,一种在响应中断时,伴随着指令流的中断而转去执行中断服务程序,使数据处理器不执行任何指令的执行周期得以消除的方法,其特征是有如下步骤:
接收一中断控制部件到数据处理器的常规指令流的请求信号;
改变常规指令予取的方向以提供至少一条中断指令予取,该至少一条中断指令的予取操作在该常规指令执行完成以前就被启动了;
改变该至少一条中断指令予取的方向到继续进行常规指令予取,在所述至少一条予取的中断指令完成执行之前就开始了所述常规指令的予取操作。
2、如权利要求1所述的方法,其进一步特征是具有步骤:
在对最新予取出的常规指令进行译码以确定它是不是还没予取完毕的多字长指令之前,就启动所述至少一个中断指令的予取操作。
3、如权利要求1所述的方法,其特征还在于:
在对最近予取的中断指令进行译码以决定其是不是还没取完的多字长指令以前,就启动所述常规指令的予取操作。
4、在一具有执行指令的数据处理器及向数据处理器提供所述指令的控制部件的数据处理系统中,该控制部件通过提供指令地址,经程序地址总线来寻址要执行的指令,并把寻址的指令放到程序数据总线的方法来予取指令,还对指令译码,一种使伴随着外围设备请求数据处理器进行中断服务而使到数据处理器指令流中断所带来的开销减小的方法,其特征是包括如下步骤:
收到一中断从控制部件到数据处理器的常规指令流的请求;
通过在现行执行的指令,若有的话,完成之前提供至少一个预定的中断指令地址到程度地址总线来改变常规指令予取流的方向;
在响应至少一个中断指令地址时,对至少一条中断指令予取并译码;
在完成至少一条中断指令译码及执行以前,把予取中断指令流的方向改变到继续把常规指令地址送到程序地址总线,从而消除数据处理器无指令执行的指令周期。
5、在数据处理系统中,一种能提供予取的常规指令供数据处理器执行,并在数据处理器被中断请求所中断时提供至少一条予取的中断指令以减少中断所带来的开销的数据处理器控制部件,它包括:
一传送常规指令地址及中断指令地址的程度地址总线;
与程序地址总线相接并能有选择地接收、存贮并提供常规指令地址的程序地址存贮装置;
其特征为:
与程序地址总线相接并能有选择地存贮并提供常规指令地址的予取地址存贮装置;
具有一输入与程序地址总线相连,输出与予取地址存贮装置相连的增量装置,它可有选择地使存贮在予取地址存贮装置中的地址增量以得到连续的指令地址;
一种能在常规指令完成执行以前及在对最新予取出的常规指令译码以确定它是不是还没予取完毕的多字长指令之前,提供一中断取控制信号的中断控制装置,所述中断取控制信号控制什么时候把多个中断地址中的予定的中断地址送到程序地址总线上;
与程序地址总线及中断控制装置相连的中断地址装置,它在收到中断请求信号及中断取信号时,可有选择地提供多个中断地址中的一予定的中断地址到程序地址总线上;
程序存贮装置,其输入接程序地址总线,其输出分别响应常规指令地址提供予取的常规指令、响应中断指令地址提供予取的中断指令;
第一指令存贮装置,其输入接程序存贮装置及中断控制装置,可有选择地接收、贮存及提供指令,并提供中断应答信号,以指示已贮存了一条中断指令;
指令译码装置,其第一输入接第一指令存贮装置以接收中断应答信号,第二输入接第一指令存贮装置以有选择地接收指令,其输出有选择地提供已译码指令;
第二指令存贮装置,其第一输入接指令译码装置的输出,其第二输入接中断应答信号,其输出有选择地把已译码指令送给数据处理器。
6、如权利要求5所述的数据处理器控制部件,其中,所述第二指令存贮装置具有第二输出与所述程序地址存贮装置的控制输入相连,以便有选择地维持程序地址存贮装置内容恒定不变。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US802,491 | 1985-11-27 | ||
US06/802,491 US4709324A (en) | 1985-11-27 | 1985-11-27 | Data processor control unit having an interrupt service using instruction prefetch redirection |
US802.491 | 1985-11-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN86107934A CN86107934A (zh) | 1987-08-12 |
CN1009396B true CN1009396B (zh) | 1990-08-29 |
Family
ID=25183841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN86107934A Expired CN1009396B (zh) | 1985-11-27 | 1986-11-26 | 具有指令予取换向中断服务的数据处理器控制部件 |
Country Status (13)
Country | Link |
---|---|
US (1) | US4709324A (zh) |
EP (1) | EP0247175B1 (zh) |
JP (1) | JPH083791B2 (zh) |
KR (1) | KR940009100B1 (zh) |
CN (1) | CN1009396B (zh) |
AU (1) | AU6779687A (zh) |
CA (1) | CA1265873A (zh) |
DE (1) | DE3681733D1 (zh) |
FI (1) | FI90804C (zh) |
HK (1) | HK5294A (zh) |
IL (1) | IL80499A (zh) |
SG (1) | SG130093G (zh) |
WO (1) | WO1987003394A1 (zh) |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6282402A (ja) * | 1985-10-07 | 1987-04-15 | Toshiba Corp | シ−ケンス制御装置 |
JPH0740225B2 (ja) * | 1985-12-25 | 1995-05-01 | 日本電気株式会社 | プログラムスキツプ動作制御方式 |
JPS6398737A (ja) * | 1986-10-15 | 1988-04-30 | Mitsubishi Electric Corp | デ−タ処理装置 |
EP0306644B1 (en) * | 1987-07-06 | 1997-11-12 | Hitachi, Ltd. | Data processor having a break function |
US5247628A (en) * | 1987-11-30 | 1993-09-21 | International Business Machines Corporation | Parallel processor instruction dispatch apparatus with interrupt handler |
US5822578A (en) * | 1987-12-22 | 1998-10-13 | Sun Microsystems, Inc. | System for inserting instructions into processor instruction stream in order to perform interrupt processing |
EP0349124B1 (en) * | 1988-06-27 | 1996-10-09 | Digital Equipment Corporation | Operand specifier processing |
JPH07120278B2 (ja) * | 1988-07-04 | 1995-12-20 | 三菱電機株式会社 | データ処理装置 |
US5019967A (en) * | 1988-07-20 | 1991-05-28 | Digital Equipment Corporation | Pipeline bubble compression in a computer system |
US5006980A (en) * | 1988-07-20 | 1991-04-09 | Digital Equipment Corporation | Pipelined digital CPU with deadlock resolution |
US5590293A (en) * | 1988-07-20 | 1996-12-31 | Digital Equipment Corporation | Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization |
US5117498A (en) * | 1988-08-19 | 1992-05-26 | Motorola, Inc. | Processer with flexible return from subroutine |
JP2504149B2 (ja) * | 1988-12-02 | 1996-06-05 | 三菱電機株式会社 | 命令キュ―管理装置 |
JPH0640316B2 (ja) * | 1989-04-20 | 1994-05-25 | 工業技術院長 | 演算レジスタ上でのデータ待ち合せ実現方法 |
CA2019299C (en) * | 1989-06-22 | 2002-01-15 | Steven Frank | Multiprocessor system with multiple instruction sources |
JPH0437927A (ja) * | 1990-06-01 | 1992-02-07 | Sony Corp | プロセッサの処理方法 |
US5287522A (en) * | 1990-06-29 | 1994-02-15 | Bull Hn Information Systems, Inc. | External procedure invocation apparatus utilizing internal branch vector interrupts and vector address generation, in a RISC chip |
JP2556182B2 (ja) * | 1990-08-29 | 1996-11-20 | 三菱電機株式会社 | デ−タ処理装置 |
JPH04318654A (ja) * | 1991-02-13 | 1992-11-10 | Hewlett Packard Co <Hp> | マイクロプロセッサへの割り込みのリダイレクションシステム |
JP2677719B2 (ja) * | 1991-05-08 | 1997-11-17 | 富士通株式会社 | 情報処理装置 |
JP2682264B2 (ja) * | 1991-05-21 | 1997-11-26 | 日本電気株式会社 | プログラムカウンタ装置 |
JPH04346127A (ja) | 1991-05-23 | 1992-12-02 | Sony Corp | 電子装置 |
US5297282A (en) * | 1991-05-29 | 1994-03-22 | Toshiba America Information Systems, Inc. | Resume processing function for the OS/2 operating system |
US5542076A (en) * | 1991-06-14 | 1996-07-30 | Digital Equipment Corporation | Method and apparatus for adaptive interrupt servicing in data processing system |
US5355490A (en) * | 1991-06-14 | 1994-10-11 | Toshiba America Information Systems, Inc. | System and method for saving the state for advanced microprocessor operating modes |
US5455909A (en) * | 1991-07-05 | 1995-10-03 | Chips And Technologies Inc. | Microprocessor with operation capture facility |
WO1993006549A1 (en) * | 1991-09-19 | 1993-04-01 | Chips And Technologies, Inc. | A system for performing input and output operations to and from a processor |
US5623665A (en) * | 1992-01-13 | 1997-04-22 | Sony Corporation | Electronic apparatus for patching a read-only memory |
JP3230262B2 (ja) * | 1992-01-24 | 2001-11-19 | ソニー株式会社 | 電子装置及びその固定情報修正方法 |
US5805902A (en) * | 1993-07-02 | 1998-09-08 | Elonex I.P. Holdings, Ltd. | Structure and method for issuing interrupt requests as addresses and for decoding the addresses issued as interrupt requests |
GB2281986B (en) * | 1993-09-15 | 1997-08-06 | Advanced Risc Mach Ltd | Data processing reset |
US5475822A (en) * | 1993-11-15 | 1995-12-12 | Motorola, Inc. | Data processing system for resuming instruction execution after an interrupt and method therefor |
JPH07244649A (ja) * | 1994-03-08 | 1995-09-19 | Fujitsu Ltd | 割込処理分散方式 |
US5889973A (en) * | 1995-03-31 | 1999-03-30 | Motorola, Inc. | Method and apparatus for selectively controlling interrupt latency in a data processing system |
US6052801A (en) * | 1995-05-10 | 2000-04-18 | Intel Corporation | Method and apparatus for providing breakpoints on a selectable address range |
US5659679A (en) * | 1995-05-30 | 1997-08-19 | Intel Corporation | Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system |
US5740413A (en) * | 1995-06-19 | 1998-04-14 | Intel Corporation | Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping |
US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
US5687339A (en) * | 1995-09-14 | 1997-11-11 | Elan Microelectronics Corp. | Pre-reading and pre-decoding of instructions of a microprocessor within single cycle |
US5954819A (en) * | 1996-05-17 | 1999-09-21 | National Semiconductor Corporation | Power conservation method and apparatus activated by detecting programmable signals indicative of system inactivity and excluding prefetched signals |
US6785803B1 (en) * | 1996-11-13 | 2004-08-31 | Intel Corporation | Processor including replay queue to break livelocks |
US5907712A (en) * | 1997-05-30 | 1999-05-25 | International Business Machines Corporation | Method for reducing processor interrupt processing time by transferring predetermined interrupt status to a system memory for eliminating PIO reads from the interrupt handler |
US5905880A (en) * | 1997-09-29 | 1999-05-18 | Microchip Technology Incorporated | Robust multiple word instruction and method therefor |
US5901309A (en) * | 1997-10-07 | 1999-05-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for improved interrupt handling within a microprocessor |
US6044430A (en) * | 1997-12-17 | 2000-03-28 | Advanced Micro Devices Inc. | Real time interrupt handling for superscalar processors |
US6275924B1 (en) * | 1998-09-15 | 2001-08-14 | Texas Instruments Incorporated | System for buffering instructions in a processor by reissuing instruction fetches during decoder stall time |
US7401205B1 (en) * | 1999-08-13 | 2008-07-15 | Mips Technologies, Inc. | High performance RISC instruction set digital signal processor having circular buffer and looping controls |
US6889279B2 (en) * | 2000-12-11 | 2005-05-03 | Cadence Design Systems, Inc. | Pre-stored vector interrupt handling system and method |
US7007172B2 (en) | 2001-06-01 | 2006-02-28 | Microchip Technology Incorporated | Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection |
US6934728B2 (en) | 2001-06-01 | 2005-08-23 | Microchip Technology Incorporated | Euclidean distance instructions |
US6985986B2 (en) | 2001-06-01 | 2006-01-10 | Microchip Technology Incorporated | Variable cycle interrupt disabling |
US7020788B2 (en) | 2001-06-01 | 2006-03-28 | Microchip Technology Incorporated | Reduced power option |
US6975679B2 (en) | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Configuration fuses for setting PWM options |
US6952711B2 (en) | 2001-06-01 | 2005-10-04 | Microchip Technology Incorporated | Maximally negative signed fractional number multiplication |
US6976158B2 (en) | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Repeat instruction with interrupt |
US7003543B2 (en) | 2001-06-01 | 2006-02-21 | Microchip Technology Incorporated | Sticky z bit |
US7467178B2 (en) | 2001-06-01 | 2008-12-16 | Microchip Technology Incorporated | Dual mode arithmetic saturation processing |
US6937084B2 (en) | 2001-06-01 | 2005-08-30 | Microchip Technology Incorporated | Processor with dual-deadtime pulse width modulation generator |
US20020184566A1 (en) | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
GB2400198B (en) | 2003-04-04 | 2006-04-05 | Advanced Risc Mach Ltd | Controlling execution of a block of program instructions within a computer processing system |
US7200719B2 (en) * | 2003-07-31 | 2007-04-03 | Freescale Semiconductor, Inc. | Prefetch control in a data processing system |
JP4247132B2 (ja) | 2004-01-29 | 2009-04-02 | 株式会社ルネサステクノロジ | 情報処理装置 |
CN102141904B (zh) * | 2011-03-31 | 2014-02-12 | 杭州中天微系统有限公司 | 支持中断屏蔽指令的数据处理器 |
US9378164B2 (en) * | 2011-12-22 | 2016-06-28 | Intel Corporation | Interrupt return instruction with embedded interrupt service functionality |
CN111190658B (zh) * | 2020-01-08 | 2023-02-28 | 乐鑫信息科技(上海)股份有限公司 | 一种基于片内执行且在不具有MMU的SoC片上支持应用程序动态加载的系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1059639A (en) * | 1975-03-26 | 1979-07-31 | Garvin W. Patterson | Instruction look ahead having prefetch concurrency and pipe line features |
US4181934A (en) * | 1976-12-27 | 1980-01-01 | International Business Machines Corporation | Microprocessor architecture with integrated interrupts and cycle steals prioritized channel |
US4339793A (en) * | 1976-12-27 | 1982-07-13 | International Business Machines Corporation | Function integrated, shared ALU processor apparatus and method |
US4210960A (en) * | 1977-09-02 | 1980-07-01 | Sperry Corporation | Digital computer with overlapped operation utilizing conditional control to minimize time losses |
EP0020931B1 (fr) * | 1979-06-21 | 1984-10-10 | International Business Machines Corporation | Dispositif exécutant des opérations d'interruption de programme pour processeur du type à appel anticipé des instructions |
US4527237A (en) * | 1979-10-11 | 1985-07-02 | Nanodata Computer Corporation | Data processing system |
US4402042A (en) * | 1980-11-24 | 1983-08-30 | Texas Instruments Incorporated | Microprocessor system with instruction pre-fetch |
JPS57130998A (en) * | 1981-02-04 | 1982-08-13 | Japan Found Cancer | Human interferon-beta-gene |
US4399507A (en) * | 1981-06-30 | 1983-08-16 | Ibm Corporation | Instruction address stack in the data memory of an instruction-pipelined processor |
IE54592B1 (en) * | 1982-03-08 | 1989-12-06 | Genentech Inc | Anumal interferons, processes involved in their production, compositions containing them, dna sequences coding therefor and espression vehicles containing such sequences and cells transformed thereby |
DE3220116A1 (de) * | 1982-05-28 | 1983-12-01 | Dr. Karl Thomae Gmbh, 7950 Biberach | Mikrobiologisch hergestellte (alpha)- und ss-interferone, dna-sequenzen, die fuer diese interferone codieren, mikroorganismen, die diese genetische information enthalten, und verfahren zu ihrer herstellung |
EP0134831B1 (de) * | 1983-09-16 | 1987-01-07 | Ibm Deutschland Gmbh | Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung |
US4586130A (en) * | 1983-10-03 | 1986-04-29 | Digital Equipment Corporation | Central processing unit for a digital computer |
-
1985
- 1985-11-27 US US06/802,491 patent/US4709324A/en not_active Expired - Lifetime
-
1986
- 1986-11-04 CA CA000522157A patent/CA1265873A/en not_active Expired - Lifetime
- 1986-11-04 IL IL80499A patent/IL80499A/xx not_active IP Right Cessation
- 1986-11-10 JP JP62500354A patent/JPH083791B2/ja not_active Expired - Lifetime
- 1986-11-10 DE DE8787900384T patent/DE3681733D1/de not_active Expired - Lifetime
- 1986-11-10 EP EP87900384A patent/EP0247175B1/en not_active Expired - Lifetime
- 1986-11-10 KR KR1019870700645A patent/KR940009100B1/ko not_active IP Right Cessation
- 1986-11-10 AU AU67796/87A patent/AU6779687A/en not_active Abandoned
- 1986-11-10 WO PCT/US1986/002466 patent/WO1987003394A1/en active IP Right Grant
- 1986-11-26 CN CN86107934A patent/CN1009396B/zh not_active Expired
-
1987
- 1987-07-08 FI FI873030A patent/FI90804C/fi not_active IP Right Cessation
-
1993
- 1993-12-04 SG SG130093A patent/SG130093G/en unknown
-
1994
- 1994-01-20 HK HK52/94A patent/HK5294A/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO1987003394A1 (en) | 1987-06-04 |
JPS63501454A (ja) | 1988-06-02 |
KR880700969A (ko) | 1988-04-13 |
US4709324A (en) | 1987-11-24 |
FI90804B (fi) | 1993-12-15 |
AU6779687A (en) | 1987-07-01 |
JPH083791B2 (ja) | 1996-01-17 |
EP0247175A4 (en) | 1988-03-22 |
HK5294A (en) | 1994-01-28 |
IL80499A (en) | 1990-06-10 |
FI873030A (fi) | 1987-07-08 |
CA1265873A (en) | 1990-02-13 |
SG130093G (en) | 1994-02-25 |
CN86107934A (zh) | 1987-08-12 |
IL80499A0 (en) | 1987-02-27 |
KR940009100B1 (ko) | 1994-09-29 |
FI873030A0 (fi) | 1987-07-08 |
FI90804C (fi) | 1994-03-25 |
EP0247175A1 (en) | 1987-12-02 |
DE3681733D1 (de) | 1991-10-31 |
EP0247175B1 (en) | 1991-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1009396B (zh) | 具有指令予取换向中断服务的数据处理器控制部件 | |
US5872985A (en) | Switching multi-context processor and method overcoming pipeline vacancies | |
EP0180725A2 (en) | Instruction prefetch operation for branch instructions | |
JPS6341093B2 (zh) | ||
CN1010618B (zh) | 双向转移的预测和优化 | |
JPH06161748A (ja) | サブルーチン復帰予想機構 | |
JP2560988B2 (ja) | 情報処理装置および処理方法 | |
US4287561A (en) | Address formulation interlock mechanism | |
US5146570A (en) | System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution | |
US20050102659A1 (en) | Methods and apparatus for setting up hardware loops in a deeply pipelined processor | |
EP0240606B1 (en) | Pipe-line processing system and microprocessor using the system | |
WO1982004148A1 (en) | Digital computer for executing instructions in three time-multiplexed portions | |
US6701426B1 (en) | Switching between a plurality of branch prediction processes based on which instruction set is operational wherein branch history data structures are the same for the plurality of instruction sets | |
JPH0248932B2 (zh) | ||
EP0292188B1 (en) | Cache system | |
EP0116600B1 (en) | Pre-execution next address calculating mechanism | |
JPH0342723A (ja) | データ処理装置 | |
EP0270873A2 (en) | Single ALU computer system | |
JP2682759B2 (ja) | 命令フェッチ回路 | |
JPS63195736A (ja) | パイプライン制御のための分岐命令処理装置 | |
JPH07120281B2 (ja) | 情報処理装置 | |
JPH04239323A (ja) | 階層形命令制御における命令キャッシュ方式 | |
CN108062236A (zh) | 一种软硬件协同分支指令预测方法及装置 | |
JPS6258339A (ja) | 命令先取り制御装置 | |
JPH06314196A (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 | ||
C13 | Decision | ||
GR02 | Examined patent application | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C53 | Correction of patent of invention or patent application | ||
COR | Change of bibliographic data |
Free format text: CORRECT: PATENTEE; FROM: MOTOROLA INC. TO: MOTOROLA, INC. |
|
CP01 | Change in the name or title of a patent holder |
Patentee after: Motorola Inc. Patentee before: Motorola. Inc |
|
C17 | Cessation of patent right | ||
CX01 | Expiry of patent term |