数据处理指令的执行的制作方法

文档序号:6408531阅读:153来源:国知局
专利名称:数据处理指令的执行的制作方法
技术领域
本发明涉及数据处理指令的执行。
现有技术的叙述一些数据处理器包括中央处理器(CPU),它在当前执行的数据处理指令的控制下通过一中间存储器管理单元能够访问存储在随机存取存储器(RAM)中的数据。以前提出的这种数据处理器的例子是ARM6处理器,它已由高级里斯克(Risc)机器股份有限公司在1993年发表的“ARM6数据表”中叙述。
在存储器访问时,存储器管理单元可以产生一个中止信号,指明当前存储器访问不可能完成。中止信号产生的原因可能很多。在一个例子中,一个被中止的存储器访问能在使用虚拟存储器的数据处理系统中出现,其中数据在RAM和较慢的磁盘存储器之间交换而形成一种假像,认为可编址的存储器空间大于所提供的RAM的数量。在这种系统中,如果相应于所需虚拟地址的数据当前保存在磁盘存储器中而不是在RAM中,则在这些数据在访问前有一延迟,在该延迟中数据必须从磁盘存储器传输到RAM中。在这种情况下,当前的存储器访问被中止,稍后重新尝试访问这些数据。
从存储器管理单元提供的中止信号产生得太晚,以至不能停止起动失效的存储器访问的指令的执行,但是可以代而用于取消后继的数据处理指令的执行,亦即在起动失效的存储器访问的指令的后面的数据处理指令。这是有用的,因为以后的指令可能依赖存储器访问成功。
使用中止信号以取消紧接着起动失效的存储器访问指令的指令执行需要对中止信号严格定时。或者,必须提供一复杂的机构来“擦除”紧接的指令在其执行完成后产生的效果。
附图中的

图1是一原理定时图,表明在上面提到的以前提出的数据处理器中中止信号在数据写操作时(其中数据写到RAM中)的定时需求。
参考图1,时钟信号10控制数据处理器执行数据处理指令。在起动一数据写操作时,数据处理器向存储器管理单元提供一存储器地址20,在时钟信号半个周期后写到该地址的数据30由数据处理器输出。
如果存储器管理单元检测出存储器地址20无效(例如,因为相应于该地址的数据当前保存在虚拟存储器系统中的磁盘存储器中),则由存储器管理单元产生一中止信号40并提交给数据处理器。
在数据写指令后面的下一指令马上执行,因为在要写的数据被放在数据总线上之后无须等待(在正常环境下)从存储器管理单元来的响应。相应地,为使中止信号及时到达以便取消直接跟随指令的执行,上面提到的以前提出的数据处理器要求中止信号在数据处理器输出要写的数据之前半个时钟信号周期有效。
在实际中,这个定时限制很难达到,需要存储器管理单元特别快的操作(伴随相应的该管理单元高的功率消耗)。
上面提到的以前提出的数据处理器也提供其整个指令集的条件执行。这是靠直至把四个处理标志的当前状态与由在每一指令中包含的条件码定义的各自的状态比较而实现的。这种比较与该指令的执行同时进行。如果处理标志的状态与由条件代码指定的状态不匹配时,禁止指令的完整执行。
发明总结本发明提供一种执行连续的数据处理指令的数据处理装置,该装置包括响应一条或多条指令而访问数据存储器的存储器访问设备,该存储器访问设备包括检测每一存储器访问是否无效的设备;响应该装置由以前执行的指令产生并在每一指令执行时可操作的处理状态,用于检测该指令是否应该被执行的条件测试设备;以及响应存储器访问设备和条件测试设备的条件控制设备,如果该存储器访问设备测试出由先行指令起动的存储器访问无效或者该条件测试设备测试出当前指令不应该执行,则防止完全执行当前指令。
在按照本发明的数据处理装置中,使用一个完整的条件指令集,还使用有条件地阻止每一指令完整执行的机构来处理存储器的中止。从而由先行指令起动的关于存储器访问的存储器中止信号可以在每一指令执行时与条件测试设备测试该指令是否应该执行的同时接收。这可以允许每一指令的存储器中止的处理比在上面描述的以前提出的数据处理器所允许的要晚一些。
在一个优选的实施例中,该装置包括一个或多个用来存储该数据处理装置的一个当前处理状态的数据指示性的处理标志位;每一指令包括一个定义对被执行的指令所需要的处理标志的状态的条件代码;和条件测试设备可以用于比较由每一指令中的条件代码所定义的处理标志位所需要的状态和该处理标志的实际状态。条件代码可以规定,一个特定的处理标志应该置位成一个特定的逻辑状态,或该处理标志的状态对当前指令是否应该执行没有影响。在一极端的情况下,一个可能的条件代码可以规定一个特定的指令应该执行而无视任何处理标志的状态。
处理标志可以规定该装置的处理状态的各种特征。在优选的实施例中该装置包括四个处理标志,分别表示(i)该装置的一个以前数据处理操作是否产生一个负结果;(ii)该装置的一个以前的数据处理操作是否产生一个零结果;(iii)是否由该装置的一个以前的数据处理操作置一进位位;和(iv)是否在该装置的一个以前的数据处理操作时产生一算术溢出。
优选存储器访问设备包括把存储器地址传送给数据存储器的设备;相继把数据传送给数据存储器或从数据存储器接受数据的设备。
为了使条件控制设备方便地响应存储器访问设备以及条件测试设备两者,优选存储器访问设备是可操作的以产生一中止控制信号来指明存储器访问是无效的;条件测试设备是可操作的以产生一条件失效控制信号来指明当前指令不应该执行;以及该装置包括把中止控制信号和条件失效控制信号结合的设备以产生一组合控制信号用来提供给条件控制设备。
在一个有利的简单的实施例中,该结合设备包括一逻辑或门。
在一方便的实施例中,该装置的数据处理操作由一时钟信号控制。
从第二方面来看,本发明提供一个包括上面定义的装置的集成电路。
从第三方面来看,本发明提供一种数据处理方法,其中连续的数据处理指令被有条件地执行,该方法包括的步骤有响应一条或多条指令的访问数据存储器;检测每一存储器访问是否无效;在每一指令执行时检测该指令是否应该被执行,这依赖于由以前执行的指令产生的该装置的处理状态;以及如果检测出由先行指令起动的存储器访问无效或当前指令不应该被执行时,则阻止当前指令的完整执行。附图的简要描述本发明以参照附图的示例的方式描述,描述中相同的部分以相同的参考数字表示,其中图1是原理定时图,表明由以前提出的数据处理器在一数据写操作时中止信号的定时需要;图2是按照本发明的实施例的数据处理装置的原理框图;图3是一中央处理器的一部分的原理框图;图4是原理定时图,表明由图2中的数据处理装置在一数据写操作时中止信号的定时需要。
优选实施例的说明现在参考图2,图中示出按照本发明的一个实施例的数据处理装置的原理框图。该装置包括一中央处理器(CPU)100,一存储器管理单元(MMU)110和一随机存取存储器(RAM)120。CPU100和MMU110由用于交换存储器地址的地址总线130和用于交换数据的数据总线140连接。从MMU110到CPU100还提供中止控制线150用于传输失效的或无效的存储器访问的中止信号指示信号。
对CPU100和MMU110提供一时钟信号以控制这两个单元的操作。每一数据处理指令由CPU100以特定数目的时钟信号周期执行(取决于指令的性质)并且存储器访问由MMU110与时钟信号同步执行。
MMU110在CPU100和时钟信号的控制下访问存储在RAM120中的数据。相应地MMU通过多条地址和数据线160连接到RAM上。
图3是中央处理器110的部分原理框图。CPU100使用指令流水线技术,以使处理和存储操作基本上连续地进行。典型地,当一个数据处理指令被执行时,其后继指令被译码而第三条指令从存储器中取出。这种安排被称为三级执行流水线。
在图3中示出的CPU100的部分中,从存储器中取出而后被译码的数据处理指令被送去执行。数据处理指令是32位的数据字,其中第28到31位形成一个四位的条件域。其余的位(位0到27)定义响应该指令而要被执行的操作和在一些场合下定义要被执行的操作的操作符。
条件域(位28到31)传输到条件检测器200,其对条件域的位与16个预先定义的条件代码进行比较。这16个条件代码定义分别称为N、Z、C和V标志的四个处理器标志210中的一个或多个状态。这些标志表示一个由以前执行的指令产生的CPU100的处理状态。
N标志表示从CPU100的以前的运算操作得到一个负结果;Z标志表示从以前的CPU100操作得到的一个零(等于)结果;C标志表示在以前的CPU操作时是否置一进位位;而V标志表示在以前的CPU操作时产生一算术溢出。
在条件域的四位和应用于N、Z、C和V标志的条件之间的关系示于下面的表中0000=EQ-Z置位(等于)0001=NE-Z清除(不等)0010=CS-C置位(无符号大于或相等)0011=CC-C清除(无符号小于)0100=MI-N置位(负)0101=PL-N清除(正或零)0110=VS-V置位(溢出)0111=VC-V清除(无溢出)1000=HI-C置位和Z清除(无符号大于)1001=LS-C清除和z置位(无符号小于或相等)1010=GE-N置位和V置位,或N清除和V清除(大于等于)1011=LT-N置位和V清除,或N清除和V置位(小于)1100=GT-Z清除,和要么N置位和V置位或者N清除和V清除(大于)1101=LE-Z置位,或者N置位和V清除,或者N清除和V置位(小于或等于)1110=AL-总是1111=NV-总不条件测试器200测试上面所列标志的状态,这依赖于当前指令的条件域的哪一位被置位。这种比较发生在当前指令的执行中。仅当适当的标志被置于由条件域指定的状态,则当前指令才被允许完成其执行。
如果总是(AL)条件被指定,则该指令被执行而不管标志如何。总不(NV)条件码阻止指令的执行而不管标志210的状态。
条件测试器200产生一输出信号220,指明是否当前指令应该完全执行。输出信号220使用一或门230与从MMU110到CPU110的中止控制线150上提供的中止信号相结合。于是如果条件测试器200指明当前指令不应该被完全执行或者该中止信号被MMU110所确立,则或门230的输出被置位。
指令执行单元240接收每一指令的0到27位,其定义要执行的操作和在一些场合下,定义要执行的操作的操作数。在当前指令执行时(亦即在条件测试器200和或门230的传播和处理延迟后),指令执行单元240接收或门230的输出,指明当前指令是否应当完全执行。如果或门230的输出指明当前指令不应当完全执行,则当前指令被取消而不改变任何寄存器或与该装置有关联的存储器单元的状态。
条件测试器200和指令执行单元240可能如同上面提到的以前提出的ARM6处理器的相应部件同样的形式。
使用图3装置的结果大大地缓解了中止信号的严格定时,所以由先行指令起动的有关存储器访问的中止信号可以在每一指令执行的后阶段置位。
如果所收到的中止信号作为一失效的取指令操作的结果,则该指令在上面提到的三级指令流水线中的后阶段上简单地被丢弃。
数据读操作后随一非存储器访问(内部)处理器周期以便留出从存储器读出的数据装入适当的处理器寄存器中的时间。相应地,如果接收到的中止信号是作为失效的数据读操作的结果,则随着读操作的内部周期给出由MMU110从存储器供应的任何数据(这些数据很可能是错误的)被忽略且不存储在打算寄存的位置(例如一处理器寄存器)上的时间。
图4中示出指令执行和接收数据写操作的中止信号的定时关系,其中由CPU100控制指令执行的时钟信号300与地址总线130和数据总线140的状态一起示出。
为了起动数据写操作,由CPU100把地址310放在地址总线上。在时钟信号的半个周期后由CPU100把数据320放在数据总线140上。这些操作一旦完成,CPU100就能在时钟信号300的下一相继周期时期执行下一指令。
在数据320被放在数据总线上的同时,如果收到一中止信号(在图4中用330表示)或者如果条件测试器200决定下一指令不应该被执行(其由条件测试器200在数据被放在数据总线后的半个周期之内决定并用340表示),则下一指令的执行被放弃。
虽然本发明的例证性的实施例在这里是参照附图详细叙述的,应该理解本发明并不限于这些精确的实施例,对熟悉本技术领域的人来说对其可以实行各种改变或修改而不离开由后面的权利要求所限定的本发明的范围。
权利要求
1.执行连续的数据处理指令的数据处理装置,所述装置包括响应一个或多个所述指令访问数据存储器的存储器访问设备,所述存储器访问设备包括检测每一存储器访问是否无效的设备;响应由以前执行的指令产生的所述装置的处理状态和在每一指令的执行时可操作的条件测试设备,用于检测该指令是否应该被执行;和响应所述存储器访问设备和所述条件测试设备的条件控制设备,如果所述存储器访问设备检测出由先行指令起动的存储器访问无效或所述条件测试设备检测出所述当前指令不应该被执行,则防止条件控制设备完全执行当前指令。
2.按照权利要求1的装置,其中所述装置包括一个或多个存储所述数据处理装置的当前处理状态的数据指示性的处理标志;每一指令包括一个定义为要被执行的该指令所需要的所述处理标志状态的条件代码;所述条件测试设备是可操作的,以将由所述条件代码定义的在每一指令中的处理标志的所需状态和所述处理标志的实际状态相比较。
3.按照权利要求2的装置,包括四个处理标志,分别表示(i)是否所述装置的一个以前数据处理操作产生一个负结果;(ii)是否所述装置的一个以前数据处理操作产生一个零结果;(iii)是否由所述装置的一个以前数据处理操作置一进位位;和(iv)是否在所述装置的一个以前数据处理操作时出现一算术溢出。
4.按照权利要求1到3中任何一个的装置,其中所述存储器访问设备包括给所述数据存储器传送存储器地址的设备;和给所述数据存储器相继传送数据或从所述数据存储器接收数据的设备。
5.按照前面的权利要求中的任何一个的装置,其中所述存储器访问设备是可操作的以产生一中止控制信号指明一存储器访问无效;所述条件测试设备是可操作的以产生一条件失效控制信号以指明所述当前指令不应该被执行;和所述装置包括为了结合所述中止控制信号和所述条件失效控制信号以产生一组合的控制信号来供应所述条件控制设备的设备。
6.按照权利要求5的装置,其中所述结合设备包括一逻辑或门。
7.按照前面的权利要求中的任何一个的装置,其中该装置的数据处理操作由一时钟信号控制。
8.包括按照前面的任何一个权利要求的装置的集成电路。
9.数据处理方法,其中连续的数据处理指令有条件地执行,所述方法包括的步骤有响应一条或多条所述指令访问一数据存储器;检测每一存储器放是否无效;在每一指令执行时检测该指令是否应该被执行,这依赖于所述装置由以前执行的指令产生的处理状态;和如果检测出由先行指令起动的存储器访问无效或者所述当前指令不应该被执行,则防止当前指令的完全执行。
全文摘要
执行连续的数据处理指令的数据处理装置包括为响应一条或多条指令访问数据存储器的存储器访问设备,该存储器访问设备包括为检测每一存储器访问是否无效的设备;响应由以前执行的指令产生的该装置的处理状态和在每一指令执行时可操作的用于检测是否该指令应该被执行的条件测试设备;以及响应存储器访问设备和条件测试设备的条件控制设备,如果存储器访问设备检测出由先行指令起动的存储器访问无效或条件测试设备检测出当前指令不应该被执行,则防止此设备对当前指令完全执行。
文档编号G06F9/34GK1134193SQ9419401
公开日1996年10月23日 申请日期1994年8月16日 优先权日1993年9月23日
发明者D·V·贾加 申请人:先进Risc机器有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1