【技术实现步骤摘要】
本专利技术涉及数据处理领域。尤其是,本专利技术涉及将来自寄存器的寄存器值保存到 备份数据存储器,并将该寄存器值从该备份数据存储器恢复到该寄存器。
技术介绍
数据处理装置可具有用于存储在处理期间处理器所使用的数据值的寄存器集。寄 存器值表示处理器的当前状态。当该处理装置遇到上下文切换(context switch)时,该寄 存器中所存储的至少一些寄存器值可被存储到备份数据存储器。在情景改变之后,可以在 该寄存器中存储不同的寄存器值。当与该上下文切换有关的处理完成后,原始寄存器值可 被恢复到该寄存器,以完成被该上下文切换中断的处理的执行。在触发将寄存器状态保存到备份数据存储器的事件(例如,异常事件)发生时,当 前正在执行的操作可能还没有完成。该操作可能花费许多的处理周期来执行。如果该操作 向该寄存器之一写入结果值,且该状态保存操作在当前正在执行的操作完成前开始时,那 么写入该备份数据存储器的寄存器状态可以不包括最近计算出的结果值。这意味着在恢复 状态数据后,可能出现处理错误。应当避免在结果值被写到该寄存器之前读取寄存器的值 的数据相关性危险。通常希望,状态保存触发事件的发生和状态保存处理的结束之间的时间是可预测 的。在安全很关键的系统的情况下尤其如此,比如汽车制动系统,其中中断等待时间的恒 定和短暂是非常重要的。如果允许当前正在执行的操作在开始状态保存操作之前完成,那 么数据相关性危险将被避免。然而,因为状态保存触发事件可能在当前正在执行的操作的 执行期间的任一点发生,开始该状态保存处理的延迟将根据触发事件发生时的执行点而变 化,因此难以预测在所有的状态数据 ...
【技术保护点】
一种数据处理装置,包含:用于执行数据处理操作以产生结果值的数据处理电路;用于存储多个寄存器值的多个寄存器,所述多个寄存器中的一个是用于存储在所述数据处理电路执行所述数据处理操作期间产生的所述结果值的目标寄存器;用于存储所述多个寄存器值的子集的备份拷贝的备份数据存储器;以及状态保存控制电路,其响应于在所述结果值仍要被写到所述目标寄存器值时的状态保存触发事件的发生,以:(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[英国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。