当前位置: 首页 > 专利查询>ARM有限公司专利>正文

寄存器状态保存和恢复制造技术

技术编号:5171087 阅读:279 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及寄存器状态保存和恢复。在具有寄存器6的数据处理装置1中,当状态保存触发事件发生同时数据处理操作的结果值仍要写到目标寄存器时,则保存和恢复控制电路12选择限定用于将寄存器值保存到备份数据存储器10的暂时顺序的状态保存序列。该序列被选择以向该目标寄存器提供在该序列内对应于该结果值已经被写到该目标寄存器之后的时间的位置。然后该寄存器值以所选的状态保存序列的顺序被保存到备份数据存储器10。当状态恢复触发事件触发将数据值从该备份数据存储器10加载到该寄存器6时,可以使用类似的技术。

【技术实现步骤摘要】

本专利技术涉及数据处理领域。尤其是,本专利技术涉及将来自寄存器的寄存器值保存到 备份数据存储器,并将该寄存器值从该备份数据存储器恢复到该寄存器。
技术介绍
数据处理装置可具有用于存储在处理期间处理器所使用的数据值的寄存器集。寄 存器值表示处理器的当前状态。当该处理装置遇到上下文切换(context switch)时,该寄 存器中所存储的至少一些寄存器值可被存储到备份数据存储器。在情景改变之后,可以在 该寄存器中存储不同的寄存器值。当与该上下文切换有关的处理完成后,原始寄存器值可 被恢复到该寄存器,以完成被该上下文切换中断的处理的执行。在触发将寄存器状态保存到备份数据存储器的事件(例如,异常事件)发生时,当 前正在执行的操作可能还没有完成。该操作可能花费许多的处理周期来执行。如果该操作 向该寄存器之一写入结果值,且该状态保存操作在当前正在执行的操作完成前开始时,那 么写入该备份数据存储器的寄存器状态可以不包括最近计算出的结果值。这意味着在恢复 状态数据后,可能出现处理错误。应当避免在结果值被写到该寄存器之前读取寄存器的值 的数据相关性危险。通常希望,状态保存触发事件的发生和状态保存处理的结束之间的时间是可预测 的。在安全很关键的系统的情况下尤其如此,比如汽车制动系统,其中中断等待时间的恒 定和短暂是非常重要的。如果允许当前正在执行的操作在开始状态保存操作之前完成,那 么数据相关性危险将被避免。然而,因为状态保存触发事件可能在当前正在执行的操作的 执行期间的任一点发生,开始该状态保存处理的延迟将根据触发事件发生时的执行点而变 化,因此难以预测在所有的状态数据被保存到该备份数据存储器之前将花费多长时间。允 许在开始状态保存操作之前完成当前正在执行的操作的执行还会增加中断等待时间。因 此,只在当前正在执行的操作完成后开始状态保存操作在许多系统中是不适当的。另一种避免数据相关性危险的办法是在状态保存触发事件发生时马上在执行过 程中中途抛弃当前正在执行的指令。然而,这个选择有缺点,即在状态恢复后,被抛弃的指 令将需要全部再次执行,因此减缓了处理装置执行程序的向前的进程。而且,被抛弃的指令 可能不是幂等(idempotent)。这些技术每种都有下述缺点之一数据相关性危险、不可预知且缓慢的异常处理 等待时间、以及在恢复寄存器状态后缓慢的处理。本专利技术力图提供一种更好的状态保存和 恢复机制,该机制避免了数据相关性危险、具有可预测的等待时间,并且在状态被恢复到寄 存器后不会延迟处理。
技术实现思路
根据一个方面,本专利技术提供一种数据处理装置,包含用于执行数据处理操作以产生结果值的数据处理电路;用于存储多个寄存器值的多个寄存器,该多个寄存器中的一个是用于存储在所述 数据处理电路执行所述数据处理操作期间产生的所述结果值的目标寄存器;用于存储所述多个寄存器值的子集的备份拷贝的备份数据存储器(store);以及状态保存控制电路,对当所述结果值仍要被写到所述目标寄存器值时状态保存触 发事件的发生作出响应以(i)检测所述多个寄存器中哪个是所述目标寄存器;(ii)选择限定将寄存器值的所述子集中的每一个保存到所述备份数据存储器的 暂时顺序的状态保存序列,所述状态保存控制电路根据所述多个寄存器中哪个是所述目标 寄存器来选择所述状态保存序列,以为所述目标寄存器提供在所述状态保存序列内对应于 所述结果值已被所述数据处理电路写到所述目标寄存器后的时间的位置;(iii)在选择所述状态保存序列之后,将寄存器值的所述子集中的每一个以所选 的状态保存序列的顺序保存到所述备份数据存储器。当在当前正在执行的数据处理操作仍要被写入目标寄存器的同时状态保存触发 事件发生时,本技术的该状态保存控制电路通过将寄存器值的子集保存到备份数据存储器 而作出响应。本技术意识到,通过选择用于将寄存器值的子集中每一个保存到该备份数据 存储器的适当的暂时顺序,该数据处理操作的执行期间产生的结果值将在该目标寄存器的 值被保存到该备份数据存储器之前,被写到该目标寄存器。因此,数据相关性(dependency) 危险被避免而正确的目标寄存器的值被保存。因为该状态保存操作可在数据处理操作仍在 执行的同时开始,与该状态保存操作有关的等待时间是短的、不变的和可预测的,因为状态 保存的结束不依赖于该状态保存触发事件发生的执行点。当状态保存触发事件发生时,当 前正在执行的数据处理操作的处理不被抛弃,因此在将寄存器值恢复到寄存器时,该数据 处理电路正执行的程序的继续处理将会更快,因为该数据处理操作不需要再次执行而非幂 等指令的问题不会出现。被保存到该备份数据存储器的寄存器值的该子集可以只是存储在该多个寄存器 中的寄存器中的一些,而其它的寄存器在状态保存触发事件发生时不被保存。替代地,寄存 器值的子集可以是存储在该多个寄存器中的全部寄存器值。在进一步特征中,在该备份数据存储器中存储该子集寄存器值的物理顺序可以不 依赖于通过该状态保存序列所限定的用于保存寄存器值的子集的暂时顺序。例如,不管所 选的状态保存序列限定的暂时顺序如何,该寄存器值可以被存储在该备份数据存储器内相 同的物理位置中。因为寄存器值的子集的物理存储顺序不依赖于它们被保存的暂时顺序, 该寄存器值的恢复被简化,因为在恢复时,不需要知道该值被写到该备份数据存储器的暂 时顺序。该状态保存触发事件可以是函数调用。当执行第一序列数据处理操作时,函数调 用可能发生,其表示对第一序列操作的执行应当被中止而第二序列处理操作的执行应当开 始。为了使一旦该第二序列已经完成便让第一序列处理能够继续,函数调用被用作状态保 存触发事件以启动将与该第一序列有关的寄存器值保存到该备份数据存储器。该状态保存触发事件还可以是中断请求。该中断请求表示对当前的处理操作的处 理应当被中止而中断处理例程的处理应当开始。当中断请求发生时,状态保存启动。一旦 该中断处理例程的执行完成,那么可以使用从备份数据存储器恢复的状态数据,被中断的数据处理操作能再继续。该状态保存触发事件还可以是由数据处理电路执行的存储多重操作(multiple operation),至少一个要被存储的值是该目标寄存器的寄存器值。存储多重操作控制寄存 器值的块到备份数据存储器的存储。当两个或更多寄存器值的块中的一个是目标寄存器的 寄存器值时,那么本技术可用于控制将寄存器值写到该备份数据存储器的暂时顺序。通过 适当选择存储该值的暂时顺序,该存储多重操作可以在前面的将结果值写到该目标寄存器 的数据处理操作完成之前执行。向该目标寄存器提供在该存储多个序列中一个位置,使得 它在前面执行的数据处理操作的结果值被写到该目标寄存器之后被保存到该备份数据存 储器。在进一步特征中,除了目标寄存器外的至少一个寄存器可在该状态保存序列具有 比该目标寄存器更早的位置。通过在保存该目标寄存器的值前保存除了目标寄存器之外的 至少一个寄存器的寄存器值,这为当前正在执行的数据处理操作提供了时间,以便在该目 标寄存器的值被保存之前完成。在本技术的进一步特征中,寄存器的子集可包含多个寄存器组,且该状态保存控 制电路可被配置为向不包括目标寄存器的至少一个寄存器组的寄存器,在该状态保存序列 中提供比包括该目标寄存器的寄存器组的寄存器更早的位置。其内本文档来自技高网
...

【技术保护点】
一种数据处理装置,包含:用于执行数据处理操作以产生结果值的数据处理电路;用于存储多个寄存器值的多个寄存器,所述多个寄存器中的一个是用于存储在所述数据处理电路执行所述数据处理操作期间产生的所述结果值的目标寄存器;用于存储所述多个寄存器值的子集的备份拷贝的备份数据存储器;以及状态保存控制电路,其响应于在所述结果值仍要被写到所述目标寄存器值时的状态保存触发事件的发生,以:(i)检测所述多个寄存器中哪个是所述目标寄存器;(ii)选择限定用于将寄存器值的所述子集中的每一个保存到所述备份数据存储器的暂时顺序的状态保存序列,所述状态保存控制电路根据所述多个寄存器中哪个是所述目标寄存器来选择所述状态保存序列,以向所述目标寄存器提供在所述状态保存序列内对应于所述结果值已被所述数据处理电路写到所述目标寄存器后的时间的位置;以及(iii)在选择所述状态保存序列之后,将寄存器值的所述子集中的每一个以所选的状态保存序列的顺序保存到所述备份数据存储器。

【技术特征摘要】
GB 2009-10-19 0918298.11.一种数据处理装置,包含用于执行数据处理操作以产生结果值的数据处理电路;用于存储多个寄存器值的多个寄存器,所述多个寄存器中的一个是用于存储在所述数 据处理电路执行所述数据处理操作期间产生的所述结果值的目标寄存器; 用于存储所述多个寄存器值的子集的备份拷贝的备份数据存储器;以及 状态保存控制电路,其响应于在所述结果值仍要被写到所述目标寄存器值时的状态保 存触发事件的发生,以(i)检测所述多个寄存器中哪个是所述目标寄存器;( )选择限定用于将寄存器值的所述子集中的每一个保存到所述备份数据存储器的 暂时顺序的状态保存序列,所述状态保存控制电路根据所述多个寄存器中哪个是所述目标 寄存器来选择所述状态保存序列,以向所述目标寄存器提供在所述状态保存序列内对应于 所述结果值已被所述数据处理电路写到所述目标寄存器后的时间的位置;以及(iii)在选择所述状态保存序列之后,将寄存器值的所述子集中的每一个以所选的状 态保存序列的顺序保存到所述备份数据存储器。2.根据权利要求1所述的装置,其中用以将寄存器值的所述子集存储在所述备份数据 存储器中的物理顺序不依赖于由所述状态保存序列所限定的用于保存寄存器值的所述子 集的所述暂时顺序。3.根据权利要求1所述的装置,其中所述状态保存触发事件是函数调用。4.根据权利要求1所述的装置,其中所述状态保存触发事件是中断请求。5.根据权利要求1所述的装置,其中所述状态保存触发事件是所述数据处理电路的保 存多重操作的执行,至少一个要存储的值是所述目标寄存器的寄存器值。6.根据权利要求1所述的装置,其中除了所述目标寄存器之外的至少一个寄存器在所 述状态保存序列中比所述目标寄存器具有更早的位置。7.根据权利要求1所述的装置,其中寄存器的所述子集包含多个寄存器组;以及 所述状态保存控制电路被配置为向不包括所述目标寄存器的至少一个寄存器组的寄存器,在所述状态保存序列中提供比包括所述目标寄存器的所述寄存器组的寄存器更早的 位置。8.根据权利要求7所述的装置,其中所述多个寄存器组包含两个寄存器组。9.根据权利要求1所述的装置,其中所述数据处理电路用于执行多个数据处理操作以 产生多个要存储到多个目标寄存器的多个结果值;寄存器的所述子集包含多个寄存器组;以及所述状态保存控制电路被配置为向不包括所述多个目标寄存器的任一个的至少一个 寄存器组的寄存器,在所述状态保存序列中提供比包括所述多个目标寄存器的至少一个的 所有寄存器组的寄存器更早的位置。10.根据权利要求7所述的装置,其中所述状态保存控制电路被配置为向同一个所述 寄存器组中的连续寄存器,提供在所述状态保存序列中连续的位置。11.根据权利要求1所述的装置,其中所述被选择的状态保存序列是结束于所述目标 寄存器的寄存器的循环序列。12.根据权利要求1所述的装置,其中所述状态保存控制电路是由硬件控制的。13.根据权利要求1所述的装置,其中所述备份数据存储器是存储元件。14.根据权利要求1所述的装置,其中所述备份数据存储器是另外的多个寄存器。15.根据权利要求1所述的装置,其中所述数据处理操作是浮点除法操作和浮点平方 根操作之一。16.根据权利要求1所述的装置,其中所述数据处理电路包含至少两个处理流水线,用 于彼此并行地执行数据处理操作;以及所述数据处理电路被配置为向所述至少两个处理流水线按顺序发布数据处理操作,但 如果所述处理流水线中的一个执行较后发布的数据处理操作,比所述处理流水线中的另一 个执行较先发布的数据处理操作更快的话,那么未按顺序完成所发布的数据处理操作的执 行。17.根据权利要求1所述的装置,其中所述多个寄存器用于存储浮点寄存器值; 所述装置进一步包含多个存储整数寄存器值的整数寄存器;以及所述状态保存控制电路对所述状态保存触发事件作出响应,以至少将所述整数寄存器 值的子集以不依赖所述状态保存序列的暂时顺序存储到所述备份数据存储器。18.一种数据处理方法,包含以下步骤执行数据处理操作以产生要被存储在目标寄存器中的结果值,所述目标寄存器是用于 存储多个寄存器值的多个寄存器中的一个;以及在发生状态保存触发事件同时所述结果值仍要被写到所述目标寄存器时 (i)检测所述多个寄存器中哪个是所述目标寄存器;( )选择限定用于将所述多个寄存器值的子集中的每一个保存到备份数据存储器的 暂时顺序的状态保存序列,所述状态保存序列是根据所述多个寄存器中哪个是所述目标寄 存器来选择的,以向所述目标寄存器提供在所述状态保存序列内对应于所述结果值已被写 到所述目标寄存器后的时间的位置;以及(iii)在选择所述...

【专利技术属性】
技术研发人员:AJ彭顿S阿克斯福德
申请(专利权)人:ARM有限公司
类型:发明
国别省市:GB[英国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1