用于控制处理器中的时序的方法和系统的制作方法

文档序号:6570667阅读:111来源:国知局
专利名称:用于控制处理器中的时序的方法和系统的制作方法
技术领域
本发明涉及计算机系统,且更明确地说,涉及一种用于控制处理器中的时序的方法 和系统。
背景技术
中央处理单元(CPU)是计算机的解译并实行软件中所含有的指令的部分,其可具 有各种功能,例如控制硬件、执行计算、与其它软件通信。指令的时序执行可变化,其 取决于许多各种条件(例如,状态寄存器内容、位的值、后面指令的大小、所存取的外 围设备等)。
当时序必须恒定或可预测时,时序执行的变化可以是 一 个严重的问题。举例来说, 在软件通信例行程序期间,处现器必须与CPU冋步。时序变化还可导致例如敏感信息
的泄漏等问题。
一般来说,己知的解决方案实施起来并不可靠且耗时。举例来说,以汇编语言开发 且手动地平衡软件例行程序,以确保所冇可能的路径在相等数目的时钟循环中执行。这 是易出错且耗时的过程,其还引起高维护成本和风险。
因此,需要 一种用于控制CPU中的时序的改进的方法和系统。本发明解决这一需要。

发明内容
本发明揭示一种用于控制处理器中的时序的方法和系统。在本发明的一个方而,所 述方法包括获取多个指令,其中每个指令在第一条件期间具有第一默认执行时间,且其
中每个指令在第二条件期间具有第二默认执行时间在第一模式期间,在同一执行时间 内执行所述多个指令,不管条件是所述第一条件还是所述第二条件;且在第二模式期间, 在随机执行时间内执行所述多个指令,不管条件是所述第一条件还是所述第二条件。
根据本文所揭示的所述系统和方法,所述方法通过控制指令的所述执行时间的变化 和/或使指令的所述执行时间的变化减到最小来有效地修改处理器的吋序。


图1是常规计算机系统的框图。
6图2是根据本发明的处理器的框图,所述处理器可用于实施图1的处理器。
图3是说明根据本发明的控制寄存器的图,所述控制寄存器可用于实施图2的一个
或一个以上控制寄存器。
图4是展示根据本发明的用于控制处理器中的时序的方法的流程图。 图5是说明具有假条件的跳过指令(即,不跳过)的时序图,且其中根据本发明而
启用时序补偿。
图6是说明具有真条件的跳过指令(即,跳过)的时序图,且其中根据本发明而启 用时序补偿。
图7是说明根据本发明另一实施例的具有受控补偿的指令的时序图。 图8是说明根据本发明另一实施例的跳过指令上的CPU环的时序图。
具体实施例方式
本发明涉及计算机系统,且史明确地说,涉及 一种用丁-控制处理器中的时序的方法 和系统。呈现以下描述内容以使得所属领域的技术人员能够制作和使用本发明,且在专 利巾请案及其要求的情形下提供以下描述内容。所属领域的技术人员将容易明白对优选 实施例的各种修改以及木文所描述的 一 般原理和特征。因此,不希望木发明限于所展示 的实施例,而是赋予木发明与本文所描述的原理和特征一致的最广范围。
本发明揭示根据木发明的用于控制处理器中的时序的方法和系统。所述方法包含控 制处理器执行特定类型的指令的执行时间,以便改进处理器的整体安全性。根据本文所 揭示的系统和方法,所述方法通过控制指令的执行时间的变化和/或使指令的执行时间的 变化减到最小来有效地修改处理器的时序。在时序补偿模式期间,在同 一 执行吋间内执 行指令,不管条件是真还是假。在受控补偿模式期间,在随机执行时间内执行指令,不 管条件是真还是假。为了更明确地描述本发明的特征,现结合附图参考以下描述内容。
尽管在CPU、分支指令和跳过指令的上下文中描述本文所揭示的本发明,但本发明
可应用于其它类型的处理器和其它类型的指令,且仍保留在本发明的精神和范围内。
图1是常规计算机系统的框图。计算机系统100包含处理器102、总线104、系统 存储器106 (例如,硬盘驱动器、随机存取存储器(RAM)、 1/0装置108 (例如,键盘、 显示器、鼠标等)以及用于连接到网络(例如局域网(LAN)或因特网)的网络接口 110。 图2是根据本发明的处理器200的框图,处理器200可用于实施图1的处理器102。处 理器200包含控制机构201,其具有一个或一个以上控制寄存器202。图3是说明根据 本发明的控制寄存器300的图,控制寄存器300可用于实施图2的一个或一个以上控制寄存器202。控制寄存器300包含两个位302和304。下文进一步详细描述控制寄存器 300的操作。
根据本发明,时序补偿是指提供指令的恒定执行时序的过程。在一个实施方案中, 将时序补偿应用于分支和跳过指令,但可应用于其它类型的指令。表l展示各种类型的 分支指令320和跳过指令322的列表。分支和跳过指令的时序执行通常变化,因为执行 给定指令所需的循环数目变化。有条件分支或有条件跳过指令在不同数目的循环中执 行,其取决于所述条件是真还是假。举例来说,如表1的列330中所示,分支指令的默 认时序执行可在从一个循环到两个循环的范围内,且跳过指令的默认时序执行可在从一 个循环到二个循环的范围内。根据本发明,控制机构201改变其执行特定指令所花费的 循环数目。在时序补偿期间,执行时间相同,不管条件如何。在受控补偿期间,执行时 间是随机的,不管条件如何,这防止了信息的泄漏。控制机构201是补偿或控制(随机 化)冇条件指令执行所花费的循环数目的数字区块。
均衡或随机化可由软件自动执行,这比手动操作有利,因为手动操作易出错、耗时、 具有高维护成本且不与高级语言(例如C)兼容。控制机构20通过将不同类型的指令 的执行吋间的变化以及功率特征的变化减到最小来改进执行时序,尤其是对吋间敏感的 应州屮的执行时序。举例来说,如表1的列332'l'所示,将分支指令的经平衡的时序执 行(即,经时序补偿)设置为三个循环,且将跳过指令的经平衡的吋序执行设置为四个 循环。用于分支和跳过指令的循环的具体数目将视特定实施方案而定。
再次参看图3,在一个实施例中,当位302 (也标记为"位0-TCE"(时序补偿启用)) 由软件设置时,启用时序补偿特征,且所有分支和跳过指令时序执行对于分支指令将花 费三个循环,且对于跳过指令将花费四个循环。当然,循环的具体数目将视特定实施方 案而定。当位302被清除时,所有分支和跳过指令将遵循默认时序执行。
在一个实施例中,当位304 (还标记为"位l-CCE"(受控补偿启用))由软件设置 且TCE位也被设置时,启用受控补偿机制。当此位被清除时,停用受控补偿机制。在优 选实施例中,当TCE被清除时,任何设置此位的尝试都不起作用。在一个实施例中,位 302是"主开关",而位304是"选项选择器"。位302用于接通补偿,且位304选择是 选择平衡还是随机化。在替代实施例中,可提供两个选项中的一者。举例来说,单个位 可接通/断开一种类型的补偿(例如,时序补偿)。
图4是展示根据本发明的用于控制处理器中的时序的方法的流程图。参看图2和图 4,当处理器200获取多个指令时,过程开始步骤402。每个指令在第一条件(例如,真)期间具有第一默认执行时间,且每个指令在第二条件(例如,假)期间具有第二默认执 行时间。在一个实施例中,所述指令可包含不同类型的指令(例如,分支指令和跳过指 令)。接下来,在步骤404中,在第一模式(例如,时序补偿)期间,处理器200在同 一执行时间内执行多个指令,不管条件是第一条件还是第二条件。或者,在步骤406中, 在第二模式(即,受控补偿)期间,处理器200在随机执行时间内执行多个指令,不管 条件是第一条件还是第二条件。
在时序补偿期间,处理器200在第一预定执行时间内执行第一类型的多个指令中的 至少一个指令,其中第一预定执行时间大于第一默认执行时间。处理器200在第二预定 执行时间内执行第二类型的多个指令中的至少一个指令,其中第二预定执行时间大于第 二默认执行时间。在一个实施例中,第一和第二预定执行时间是不同的。在另一实施例 中,第一和第二预定执行时间是相同的。第一和第二执行时间是基于执行给定类型的指 令所需的循环的数目。在此特定实施例中,第一预定执行时间大于第一默认执行时间, 且第二预定执行时间大于第二默认执行时间。这使得给定类型的指令的指令执行时间能 够相同。特定类型的指令将视特定实施方案而定。举例来说,第一和第二类型的指令可 分别为有条件分支和跳过指令。或者,第'和第二类型的指令可分别为跳过和有条件分 支指令。
图5是说明具有假条件的跳过指令(即,不跳过)的时序图,且其中根据本发明而 启用时序补偿。如图5中所示,执行此特定类型的跳过指令所需的循环的默认数目为一 个循环。在处理器200 (图2)获取跳过指令之后'控制机构201添加三个循环,以便 使执行跳过指令所需的循环数目从一个循环增加到四个循环。所添加的循环的具体数目 将视特定实施方案而定。
图6是说明具有真条件的跳过指令(即,跳过)的时序图,且其中根据本发明而启 用时序补偿。如图5中所示,执行此特定类型的跳过指令所需的循环的默认数目为两个 循环。在处理器获取跳过指令之后,控制机构201添加两个循环以使执行跳过指令所需 的循环数目从两个循环增加到四个循环。图5和图6还可应用于分支指令或任何其它类 型的指令。关键点是控制机构201在必要的情况下添加循环,使得执行给定类型的指令 所需的循环的数目受到控制,或消除执行时序的变化。
根据本发明,受控补偿是指提供指令的随机执行时序的过程。图7是说明根据本发 明另一实施例的具有受控补偿的指令的时序图。在优选实施例中,3位可变值控制所述 过程执行给定类型的指令(例如跳过指令)所花费的循环的数目。因此,可将0到7个循环或更多循环添加到指令长度,以控制执行时序。处理器确定循环的数目,其数目是 随机的。举例来说,分支指令可在3个循环+ "3位数目"(其从3个循环随机改变到10 个循环)中执行,且跳过指令可在4个循环+"3位数目"(其从4个循环改变到11个循 环)中执行。
图8是说明根据本发明另一实施例的跳过指令上的CPU循环的时序图。在一个实 施方案中,CPU循环使得执行跳过指令所花费的循环的数目是随机的。
根据本文所揭示的系统和方法,木发明提供大量益处。举例来说,其自动平衡和控 制时序变化(例如,由有条件分支引起),使处理器功能变成高级语言友好的。木发明 的实施例还控制执行吋序,以避免信息泄漏,以简化安全性特征的实施。本发明的实施 例还使得能够减慢处理器指令执行以改进功率消耗、存取较慢外围设备、扩展电磁频谱 等。本发明的实施例还平衡对不同存储器(例如,随机存取存储器(RAM)、非易失性 存储器)的存取时间。
已经揭示了根据本发明的用于控制处理器中的时序的方法和系统。所述方法包含控 制CPU执行特定类型的指令的执行时间,以便改进CPU的整体安全性。根据本文所揭 示的系统和方法,所述方法通过控制指令的执行吋间的变化和/或使控制指令的执行时间 的变化减到最小来有效地修改处理器的吋序。
已经根据所展示的实施例而描述了本发明。所属领域的技术人员将容易认识到可存 在实施例的变化形式,且任何变化都将在本发明的精神和范围内。举例来说,可使ffl硬 件、软件、含有程序指令的计算机可读媒体或其组合来实施本发明。根据本发明而编写 的软件将存储在某一形式的计算机可读媒体(例如存储器或CD-ROM)中,或将经由网 络传输,且将由处理器执行。因此,希望计算机可读媒体包含可(例如)经由网络传输 的计算机可读信号。因此,所属领域的技术人员可在不脱离所附权利要求书的精神和范 围的情况下作出许多修改。
权利要求
1. 一种用于控制处理器中的时序的方法,所述方法包括获取多个指令,其中每个指令在第一条件期间具有第一默认执行时间,且其中每个指令在第二条件期间具有第二默认执行时间;在第一模式期间,在同一执行时间内执行所述多个指令,不管条件是所述第一条件还是所述第二条件;以及在第二模式期间,在随机执行时间内执行所述多个指令,不管条件是所述第一条件还是所述第二条件。
2.根据权利要求l所述的方法,其中所述第一条件是真,且所述第二条件是假。
3.根据权利要求1所述的方法,其中所述第一条件是假,且所述第二条件是真。 根据权利要求1所述的方法,其进一歩包括在第 一 预定执行时间内执行第 一 类型的所述多个指令中的至少 一 个指令,其中所 述第 一 预定执行时间人于第 一 默认执行时间;以及在第二预定执行时间内执行第二类型的所述多个指令中的至少一个指令,其中所 述第二预定执行时间大于第二默认执行时间。
4.根据权利耍求4所述的方法,其中所述第一和第二预定执行时间是相同的。
5.根据权利要求4所述的方法,其中所述第一和第二预定执行时间是不同的。
6.根据权利耍求4所述的方法,其中所述第一类型的指令是分支指令,且所述第二类型的指令是跳过指令。
7.根据权利要求4所述的方法,其中所述第一类型的指令是跳过指令,且所述第二类 型的指令是有条件分支指令。
8.根据权利要求4所述的方法,其中所述第一预定执行时间是基于执行所述至少一个 指令所需的循环的数目。
9.根据权利要求9所述的方法,其中所述执行包括通过增加执行所述至少一个指令所 需的循环的所述数目来将用于执行所述第 一 类型的指令中的指令的第 一 执行时间 调节为所述第 一 预定执行时间。
10.根据权利要求4所述的方法,其中所述第一预定执行时间是基于执行所述至少一个 指令所需的循环的数目。
11.根据权利要求11所述的方法,其屮所述执行包括通过增加执行所述至少一个指令 所需的循环的所述数目来将用于执行所述第 一 类型的指令中的指令的第 一 执行时间调节为所述第 一 预定执行时间。
12.
13. 根据权利要求4所述的方法,其中所述第一预定时间是基于可变值。
14. 根据权利要求13所述的方法,其中所述可变值是随机的。
15. 根据权利要求13所述的方法,其中所述可变值控制所述处理器执行给定类型的指 令所花费的循环的所述数目。
16. 根据权利要求15所述的方法,其中所述可变值使所述处理器执行给定类型的指令 所花费的循环的所述数目增加至少一个循环。
17. —种计算机可读媒体,其含有用于控制处理器中的时序的程序指令,所述程序指令 在由计算机系统执行时致使所述计算机系统执行以下操作的方法获取多个指令,其中每个指令在第一条件期间具有第一默认执行时间,且其中每个指令在第条件期间具有第:默认执行时间;在第一模式期间,在同一执行时间内执行所述多个指令.不管条件是所述第一条 件还是所述第二条件以及在第二模式期间,在随机执行时间内执行所述多个指令,不管条件是所述第一条 件还是所述第二条件。
18. 根据权利要求17所述的计算机可读媒体,其'l'所述第一条件是真,且所述第二条 件是假。
19. 根据权利要求17所述的计算机可读媒体,其中所述第条件是假,且所述第二条 件是真。
20. 根据权利要求17所述的计算机可读媒体,其进一步包括用于以下操作的程序指令在第一预定执行时间内执行第一类型的所述多个指令中的至少一个指令,其中所 述第 一 预定执行时间大于第 一 默认执行时间;以及在第二预定执行时间内执行第二类型的所述多个指令中的至少一个指令,其中所 述第二预定执行时间大于第二默认执行时间。
21. 根据权利要求20所述的计算机可读媒体,其中所述第一和第二预定执行时间是相 同的。
22. 根据权利要求20所述的计算机可读媒体,其中所述第一和第二预定执行时间是不 同的。
23. 根据权利要求20所述的计算机可读媒体,其中所述第一类型的指令是分支指令, 且所述第二类型的指令是跳过指令。
24. 根据权利耍求20所述的计算机可读媒体,其中所述第一类型的指令是跳过指令,且所述第二类型的指令是有条件分支指令。
25. 根据权利要求20所述的计算机可读媒体,其中所述第一预定执行时间是基于执行 所述至少一个指令所需的循环的数目。
26. 根据权利要求25所述的计算机可读媒体,其中所述执行包括用于通过增加执行所 述至少一个指令所需的循环的所述数目来将用于执行所述第一类型的指令中的指 令的第一执行时间调节为所述第一预定执行时间的程序指令。
27. 根据权利要求20所述的计算机可读媒体,其中所述第一预定执行时间是基于执行 所述至少一个指令所需的循环的数目。
28. 根据权利要求27所述的计算机可读媒体,其中所述执行包括用于通过增加执行所 述至少一个指令所需的循环的所述数目来将用于执行所述第一类型的指令中的指 令的第 一 执行时间调节为所述第 一 预定执行时间的程序指令。
29. 根据权利要求20所述的计算机可读媒体,其中所述第-一预定时间是基于可变值。
30. 根据权利要求29所述的计算机可读媒体,其中所述可变值是随机的。
31. 根据权利要求29所述的计算机可读媒体,其中所述可变值控制所述处理器执行给 定类型的指令所花费的循环的所述数目。
32. 根据权利要求31所述的计算机可读媒体,其屮所述可变值使所述处理器执行给定 类型的指令所花费的循环的所述数目增加至少 个循环。
33. —种用于控制处理器中的时序的系统,所述系统包括处理器,其用于获取多个指令,其中每个指令在第一条件期间具有第一默认执行 时问,且其中每个指令在第二条件期问具有第二默认执行时间;以及至少一个寄存器,其用于启用时序补偿,其中在第一模式期问,所述处理器在问 一执行时间内执行所述多个指令,不管条件是所述第一条件还是所述第二条件'且 其中在第二模式期间,所述处理器在随机执行时间内执行所述多个指令,不管条件是所述第一条件还是所述第二条件。
34. 根据权利要求33所述的系统,其中在所述第一模式期间,所述处理器在第一预定 执行时间内执行第一类型的所述多个指令中的至少一个指令,其中所述第一预定执 行时间大于第 一 默认执行时间,且其中所述处理器在第二预定执行时间内执行第二 类型的所述多个指令中的至少 一 个指令,其中所述第二预定执行时间大于第二默认 执行时间。
35. 根据权利要求34所述的系统,其中所述第一和第二预定执行时间是相同的。
36. 根据权利耍求34所述的系统,其中所述第一和第二预定执行时间是不同的。
37. 根据权利要求34所述的系统,其中所述第一类型的指令是分支指令,且所述第二 类型的指令是跳过指令。
38. 根据权利要求34所述的系统,其中所述第一类型的指令是跳过指令,且所述第二 类型的指令是有条件分支指令。
39. 根据权利要求34所述的系统,其中所述第一预定执行时间是基于执行所述至少一 个指令所需的循环的数目。
40. 根据权利要求39所述的系统,其中所述处理器通过增加执行所述至少一个指令所 需的循环的所述数目,来将用于执行所述第一类型的指令中的指令的第一执行时间 调节为所述第 一 预"执行时间。
41. 根据权利要求34所述的系统,其中所述第一预定执行时间是基于执行所述至少一 个指令所需的循环的数目。
42. 根据权利要求41所述的系统,其中所述处理器通过增加执行所述至少一个指令所 需的循环的所述数目,来将用于执行所述第 一 类型的指令中的指令的第 一 执行时间 调节为所述第 一 预定执行时间。
43. 根据权利要求34所述的系统,其中所述第一预定时间是基于可变值。
44. 根据权利要求43所述的系统,其中所述可变值是随机的。
45. 根据权利要求34所述的系统,其中所述可变值控制所述处理器执行给定类型的指 令所花费的循环的所述数目。
46. 根据权利要求45所述的系统,其中所述可变值使所述处理器执行给定类型的指令 所花费的循环的所述数目增加至少一个循环。
全文摘要
一种用于控制处理器中的时序的方法和系统。在本发明的一个方面中,所述方法包括获取多个指令,其中每个指令在第一条件期间具有第一默认执行时间,且其中每个指令在第二条件期间具有第二默认执行时间;在第一模式期间,在同一执行时间内执行所述多个指令,不管条件是所述第一条件还是所述第二条件;且在第二模式期间,在随机执行时间内执行所述多个指令,不管条件是所述第一条件还是所述第二条件。根据本文所揭示的所述系统和方法,所述方法通过控制指令的所述执行时间的变化和/或使指令的所述执行时间的变化减到最小来有效地修改处理器的所述时序。
文档编号G06F9/30GK101432691SQ200680054441
公开日2009年5月13日 申请日期2006年5月26日 优先权日2006年5月2日
发明者埃里克·勒科克恩, 马希德·卡布 申请人:爱特梅尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1