CN101432691B - 用于控制处理器中的时序的方法和系统 - Google Patents

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

Info

Publication number
CN101432691B
CN101432691B CN2006800544413A CN200680054441A CN101432691B CN 101432691 B CN101432691 B CN 101432691B CN 2006800544413 A CN2006800544413 A CN 2006800544413A CN 200680054441 A CN200680054441 A CN 200680054441A CN 101432691 B CN101432691 B CN 101432691B
Authority
CN
China
Prior art keywords
instruction
execution time
condition
instructions
processor
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 - Fee Related
Application number
CN2006800544413A
Other languages
English (en)
Other versions
CN101432691A (zh
Inventor
马希德·卡布
埃里克·勒科克恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Atmel Corp
Original Assignee
Atmel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Atmel Corp filed Critical Atmel Corp
Publication of CN101432691A publication Critical patent/CN101432691A/zh
Application granted granted Critical
Publication of CN101432691B publication Critical patent/CN101432691B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30069Instruction skipping instructions, e.g. SKIP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Abstract

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

Description

用于控制处理器中的时序的方法和系统
技术领域
本发明涉及计算机系统,且更明确地说,涉及一种用于控制处理器中的时序的方法和系统。
背景技术
中央处理单元(CPU)是计算机的解译并实行软件中所含有的指令的部分,其可具有各种功能,例如控制硬件、执行计算、与其它软件通信。指令的时序执行可变化,其取决于许多各种条件(例如,状态寄存器内容、位的值、后面指令的大小、所存取的外围设备等)。
当时序必须恒定或可预测时,时序执行的变化可以是一个严重的问题。举例来说,在软件通信例行程序期间,处理器必须与CPU同步。时序变化还可导致例如敏感信息的泄漏等问题。
一般来说,已知的解决方案实施起来并不可靠且耗时。举例来说,以汇编语言开发且手动地平衡软件例行程序,以确保所有可能的路径在相等数目的时钟循环中执行。这是易出错且耗时的过程,其还引起高维护成本和风险。
因此,需要一种用于控制CPU中的时序的改进的方法和系统。本发明解决这一需要。
发明内容
本发明揭示一种用于控制处理器中的时序的方法和系统。在本发明的一个方面,所述方法包括获取多个指令,其中每个指令在第一条件期间具有第一默认执行时间,且其中每个指令在第二条件期间具有第二默认执行时间;在第一模式期间,在同一执行时间内执行所述多个指令,不管条件是所述第一条件还是所述第二条件;且在第二模式期间,在随机执行时间内执行所述多个指令,不管条件是所述第一条件还是所述第二条件。
本申请的一实施例涉及一种用于控制处理器中的时序的方法,所述方法包括:获取多个指令,其中每个指令在第一条件期间具有第一默认执行时间,且其中每个指令在第二条件期间具有第二默认执行时间;在第一模式期间,执行所述多个指令,其中给定类型的所述多个指令具有相同执行时间,不管条件是所述第一条件还是所述第二条件,其中所述相同执行时间大于所述第一默认执行时间和第二默认执行时间;以及在第二模式期间,执行具有随机执行时间的所述多个指令,不管条件是所述第一条件还是所述第二条件,其中所述随机执行时间大于所述第一默认执行时间和第二默认执行时间。
本申请的另一实施例涉及一种用于控制处理器中的时序的系统,所述系统包括:处理器,其用于获取多个指令,其中每个指令在第一条件期间具有第一默认执行时间,且其中每个指令在第二条件期间具有第二默认执行时间;以及至少一个寄存器,其用于启用时序补偿,其中在第一模式期间,所述处理器执行所述多个指令,其中给定类型的所述多个指令具有相同执行时间,不管条件是所述第一条件还是所述第二条件,其中所述相同执行时间大于所述第一默认执行时间和第二默认执行时间,且其中在第二模式期间,所述处理器执行具有随机执行时间的所述多个指令,不管条件是所述第一条件还是所述第二条件,其中所述随机执行时间大于所述第一默认执行时间和第二默认执行时间。
根据本文所揭示的所述系统和方法,所述方法通过控制指令的所述执行时间的变化和/或使指令的所述执行时间的变化减到最小来有效地修改处理器的时序。
附图说明
图1是常规计算机系统的框图。
图2是根据本发明的处理器的框图,所述处理器可用于实施图1的处理器。
图3是说明根据本发明的控制寄存器的图,所述控制寄存器可用于实施图2的一个或一个以上控制寄存器。
图4是展示根据本发明的用于控制处理器中的时序的方法的流程图。
图5是说明具有假条件的跳过指令(即,不跳过)的时序图,且其中根据本发明而启用时序补偿。
图6是说明具有真条件的跳过指令(即,跳过)的时序图,且其中根据本发明而启用时序补偿。
图7是说明根据本发明另一实施例的具有受控补偿的指令的时序图。
图8是说明根据本发明另一实施例的跳过指令上的CPU环的时序图。
具体实施方式
本发明涉及计算机系统,且更明确地说,涉及一种用于控制处理器中的时序的方法和系统。呈现以下描述内容以使得所属领域的技术人员能够制作和使用本发明,且在专利申请案及其要求的情形下提供以下描述内容。所属领域的技术人员将容易明白对优选实施例的各种修改以及本文所描述的一般原理和特征。因此,不希望本发明限于所展示的实施例,而是赋予本发明与本文所描述的原理和特征一致的最广范围。
本发明揭示根据本发明的用于控制处理器中的时序的方法和系统。所述方法包含控制处理器执行特定类型的指令的执行时间,以便改进处理器的整体安全性。根据本文所揭示的系统和方法,所述方法通过控制指令的执行时间的变化和/或使指令的执行时间的变化减到最小来有效地修改处理器的时序。在时序补偿模式期间,在同一执行时间内执行指令,不管条件是真还是假。在受控补偿模式期间,在随机执行时间内执行指令,不管条件是真还是假。为了更明确地描述本发明的特征,现结合附图参考以下描述内容。
尽管在CPU、分支指令和跳过指令的上下文中描述本文所揭示的本发明,但本发明可应用于其它类型的处理器和其它类型的指令,且仍保留在本发明的精神和范围内。
图1是常规计算机系统的框图。计算机系统100包含处理器102、总线104、系统存储器106(例如,硬盘驱动器、随机存取存储器(RAM)、I/O装置108(例如,键盘、显示器、鼠标等)以及用于连接到网络(例如局域网(LAN)或因特网)的网络接口110。图2是根据本发明的处理器200的框图,处理器200可用于实施图1的处理器102。处理器200包含控制机构201,其具有一个或一个以上控制寄存器202。图3是说明根据本发明的控制寄存器300的图,控制寄存器300可用于实施图2的一个或一个以上控制寄存器202。控制寄存器300包含两个位302和304。下文进一步详细描述控制寄存器300的操作。
根据本发明,时序补偿是指提供指令的恒定执行时序的过程。在一个实施方案中,将时序补偿应用于分支和跳过指令,但可应用于其它类型的指令。表1展示各种类型的分支指令320和跳过指令322的列表。分支和跳过指令的时序执行通常变化,因为执行给定指令所需的循环数目变化。有条件分支或有条件跳过指令在不同数目的循环中执行,其取决于所述条件是真还是假。举例来说,如表1的列330中所示,分支指令的默认时序执行可在从一个循环到两个循环的范围内,且跳过指令的默认时序执行可在从一个循环到三个循环的范围内。根据本发明,控制机构201改变其执行特定指令所花费的循环数目。在时序补偿期间,执行时间相同,不管条件如何。在受控补偿期间,执行时间是随机的,不管条件如何,这防止了信息的泄漏。控制机构201是补偿或控制(随机化)有条件指令执行所花费的循环数目的数字区块。
Figure GSB00000578004200041
均衡或随机化可由软件自动执行,这比手动操作有利,因为手动操作易出错、耗时、具有高维护成本且不与高级语言(例如C)兼容。控制机构201通过将不同类型的指令的执行时间的变化以及功率特征的变化减到最小来改进执行时序,尤其是对时间敏感的应用中的执行时序。举例来说,如表1的列332中所示,将分支指令的经平衡的时序执行(即,经时序补偿)设置为三个循环,且将跳过指令的经平衡的时序执行设置为四个循环。用于分支和跳过指令的循环的具体数目将视特定实施方案而定。
再次参看图3,在一个实施例中,当位302(也标记为“位0-TCE”(时序补偿启用))由软件设置时,启用时序补偿特征,且所有分支和跳过指令时序执行对于分支指令将花费三个循环,且对于跳过指令将花费四个循环。当然,循环的具体数目将视特定实施方案而定。当位302被清除时,所有分支和跳过指令将遵循默认时序执行。
在一个实施例中,当位304(还标记为“位1-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的整体安全性。根据本文所揭示的系统和方法,所述方法通过控制指令的执行时间的变化和/或使控制指令的执行时间的变化减到最小来有效地修改处理器的时序。
已经根据所展示的实施例而描述了本发明。所属领域的技术人员将容易认识到可存在实施例的变化形式,且任何变化都将在本发明的精神和范围内。举例来说,可使用硬件、软件、含有程序指令的计算机可读媒体或其组合来实施本发明。根据本发明而编写的软件将存储在某一形式的计算机可读媒体(例如存储器或CD-ROM)中,或将经由网络传输,且将由处理器执行。因此,希望计算机可读媒体包含可(例如)经由网络传输的计算机可读信号。因此,所属领域的技术人员可在不脱离所附权利要求书的精神和范围的情况下作出许多修改。

Claims (30)

1.一种用于控制处理器中的时序的方法,所述方法包括:
获取多个指令,其中每个指令在第一条件期间具有第一默认执行时间,且其中每个指令在第二条件期间具有第二默认执行时间;
在第一模式期间,执行所述多个指令,其中给定类型的所述多个指令具有相同执行时间,不管条件是所述第一条件还是所述第二条件,其中所述相同执行时间大于所述第一默认执行时间和第二默认执行时间;以及
在第二模式期间,执行具有随机执行时间的所述多个指令,不管条件是所述第一条件还是所述第二条件,其中所述随机执行时间大于所述第一默认执行时间和第二默认执行时间。
2.根据权利要求1所述的方法,其中所述第一条件是真,且所述第二条件是假。
3.根据权利要求1所述的方法,其中所述第一条件是假,且所述第二条件是真。
4.根据权利要求1所述的方法,其进一步包括:
执行具有第一预定执行时间的第一类型的所述多个指令中的至少一个指令,其中所述第一预定执行时间大于第一默认执行时间;以及执行具有第二预定执行时间的第二类型的所述多个指令中的至少一个指令,其中所述第二预定执行时间大于第二默认执行时间。
5.根据权利要求4所述的方法,其中所述第一和第二预定执行时间是相同的。
6.根据权利要求4所述的方法,其中所述第一和第二预定执行时间是不同的。
7.根据权利要求4所述的方法,其中所述第一类型的指令是分支指令,且所述第二类型的指令是跳过指令。
8.根据权利要求4所述的方法,其中所述第一类型的指令是跳过指令,且所述第二类型的指令是有条件分支指令。
9.根据权利要求4所述的方法,其中所述第一预定执行时间是基于执行所述第一类型的所述多个指令中的所述至少一个指令所需的循环的数目。
10.根据权利要求9所述的方法,其中所述执行包括通过增加执行所述第一类型的所述多个指令中的所述至少一个指令所需的循环的所述数目来将用于执行所述第一类型的指令中的指令的第一执行时间调节为所述第一预定执行时间。
11.根据权利要求4所述的方法,其中所述第二预定执行时间是基于执行所述第二类型的所述多个指令中的所述至少一个指令所需的循环的数目。
12.根据权利要求11所述的方法,其中所述执行包括通过增加执行所述第二类型的所述多个指令中的所述至少一个指令所需的循环的所述数目来将用于执行所述第二类型的指令中的指令的第二执行时间调节为所述第二预定执行时间。
13.根据权利要求4所述的方法,其中所述第一预定执行时间是基于可变值。
14.根据权利要求13所述的方法,其中所述可变值是随机的。
15.根据权利要求13所述的方法,其中所述可变值控制所述处理器执行给定类型的指令所花费的循环的数目。
16.根据权利要求15所述的方法,其中所述可变值使所述处理器执行给定类型的指令所花费的循环的所述数目增加至少一个循环。
17.一种用于控制处理器中的时序的系统,所述系统包括:
处理器,其用于获取多个指令,其中每个指令在第一条件期间具有第一默认执行时间,且其中每个指令在第二条件期间具有第二默认执行时间;以及
至少一个寄存器,其用于启用时序补偿,其中在第一模式期间,所述处理器执行所述多个指令,其中给定类型的所述多个指令具有相同执行时间,不管条件是所述第一条件还是所述第二条件,其中所述相同执行时间大于所述第一默认执行时间和第二默认执行时间,且其中在第二模式期间,所述处理器执行具有随机执行时间的所述多个指令,不管条件是所述第一条件还是所述第二条件,其中所述随机执行时间大于所述第一默认执行时间和第二默认执行时间。
18.根据权利要求17所述的系统,其中在所述第一模式期间,所述处理器执行具有第一预定执行时间的第一类型的所述多个指令中的至少一个指令,其中所述第一预定执行时间大于第一默认执行时间,且其中所述处理器执行具有第二预定执行时间的第二类型的所述多个指令中的至少一个指令,其中所述第二预定执行时间大于第二默认执行时间。
19.根据权利要求18所述的系统,其中所述第一和第二预定执行时间是相同的。
20.根据权利要求18所述的系统,其中所述第一和第二预定执行时间是不同的。
21.根据权利要求18所述的系统,其中所述第一类型的指令是分支指令,且所述第二类型的指令是跳过指令。
22.根据权利要求18所述的系统,其中所述第一类型的指令是跳过指令,且所述第二类型的指令是有条件分支指令。
23.根据权利要求18所述的系统,其中所述第一预定执行时间是基于执行所述第一类型的所述多个指令中的所述至少一个指令所需的循环的数目。
24.根据权利要求23所述的系统,其中所述处理器通过增加执行所述第一类型的所述多个指令中的所述至少一个指令所需的循环的所述数目,来将用于执行所述第一类型的指令中的指令的第一执行时间调节为所述第一预定执行时间。
25.根据权利要求18所述的系统,其中所述第二预定执行时间是基于执行所述第二类型的所述多个指令中的所述至少一个指令所需的循环的数目。
26.根据权利要求25所述的系统,其中所述处理器通过增加执行所述第二类型的所述多个指令中的所述至少一个指令所需的循环的所述数目,来将用于执行所述第二类型的指令中的指令的第二执行时间调节为所述第二预定执行时间。
27.根据权利要求18所述的系统,其中所述第一预定执行时间是基于可变值。
28.根据权利要求27所述的系统,其中所述可变值是随机的。
29.根据权利要求18所述的系统,其中所述可变值控制所述处理器执行给定类型的指令所花费的循环的数目。
30.根据权利要求29所述的系统,其中所述可变值使所述处理器执行给定类型的指令所花费的循环的所述数目增加至少一个循环。
CN2006800544413A 2006-05-02 2006-05-26 用于控制处理器中的时序的方法和系统 Expired - Fee Related CN101432691B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/416,651 US7647486B2 (en) 2006-05-02 2006-05-02 Method and system having instructions with different execution times in different modes, including a selected execution time different from default execution times in a first mode and a random execution time in a second mode
US11/416,651 2006-05-02
PCT/US2006/020569 WO2007130074A1 (en) 2006-05-02 2006-05-26 Method and system for controlling timing in a processor

Publications (2)

Publication Number Publication Date
CN101432691A CN101432691A (zh) 2009-05-13
CN101432691B true CN101432691B (zh) 2011-11-16

Family

ID=38662483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800544413A Expired - Fee Related CN101432691B (zh) 2006-05-02 2006-05-26 用于控制处理器中的时序的方法和系统

Country Status (4)

Country Link
US (1) US7647486B2 (zh)
CN (1) CN101432691B (zh)
TW (1) TWI347552B (zh)
WO (1) WO2007130074A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090089555A1 (en) * 2007-09-28 2009-04-02 James Adam Cataldo Methods and apparatus for executing or converting real-time instructions
DE102009047024A1 (de) * 2009-11-23 2011-05-26 Beckhoff Automation Gmbh Parallelisierte Programmsteuerung
US9983905B2 (en) 2012-12-06 2018-05-29 White Eagle Sonic Technologies, Inc. Apparatus and system for real-time execution of ultrasound system actions
US9530398B2 (en) 2012-12-06 2016-12-27 White Eagle Sonic Technologies, Inc. Method for adaptively scheduling ultrasound system actions
US10499884B2 (en) 2012-12-06 2019-12-10 White Eagle Sonic Technologies, Inc. System and method for scanning for a second object within a first object using an adaptive scheduler
US10076313B2 (en) 2012-12-06 2018-09-18 White Eagle Sonic Technologies, Inc. System and method for automatically adjusting beams to scan an object in a body
US9529080B2 (en) 2012-12-06 2016-12-27 White Eagle Sonic Technologies, Inc. System and apparatus having an application programming interface for flexible control of execution ultrasound actions
CN113095446B (zh) * 2021-06-09 2021-09-03 中南大学 异常行为样本生成方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944833A (en) * 1996-03-07 1999-08-31 Cp8 Transac Integrated circuit and method for decorrelating an instruction sequence of a program
CN1426547A (zh) * 2000-04-06 2003-06-25 格姆普拉斯公司 基于流水线体系结构的微控制器的对抗方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558176A (en) * 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
US5165033A (en) 1983-07-25 1992-11-17 Hitachi, Ltd. Microprocessor and data processor using the former
US5034880A (en) 1988-12-22 1991-07-23 Wang Laboratories, Inc. Apparatus and method for executing a conditional branch instruction
JP2680899B2 (ja) 1989-08-28 1997-11-19 日本電気株式会社 情報処理装置及びその制御方法
KR940000968B1 (ko) 1989-08-28 1994-02-07 니뽄 덴끼 가부시끼가이샤 마이크로프로세서
JP2834862B2 (ja) 1990-07-13 1998-12-14 松下電器産業株式会社 プロセッサ
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
ATE200357T1 (de) 1991-07-08 2001-04-15 Seiko Epson Corp Risc-prozessor mit dehnbarer architektur
TW380238B (en) 1996-12-09 2000-01-21 Matsushita Electric Ind Co Ltd Information processing apparatus which accurately predicts whether a branch is taken for a conditional branch instruction, using small-scale hardware
US20010054137A1 (en) 1998-06-10 2001-12-20 Richard James Eickemeyer Circuit arrangement and method with improved branch prefetching for short branch instructions
US6230261B1 (en) 1998-12-02 2001-05-08 I. P. First, L.L.C. Method and apparatus for predicting conditional branch instruction outcome based on branch condition test type
JP4050857B2 (ja) 1999-04-27 2008-02-20 矢崎総業株式会社 流体判別装置及び流量計測装置
JP2001094550A (ja) * 1999-09-17 2001-04-06 Toshiba Corp 信号処理装置
US6598152B1 (en) 1999-11-08 2003-07-22 International Business Machines Corporation Increasing the overall prediction accuracy for multi-cycle branch prediction and apparatus by enabling quick recovery
JP3672874B2 (ja) * 2002-01-25 2005-07-20 Necマイクロシステム株式会社 データ処理装置
US7076640B2 (en) 2002-02-05 2006-07-11 Sun Microsystems, Inc. Processor that eliminates mis-steering instruction fetch resulting from incorrect resolution of mis-speculated branch instructions
US8296577B2 (en) * 2004-06-08 2012-10-23 Hrl Laboratories, Llc Cryptographic bus architecture for the prevention of differential power analysis
JP4342464B2 (ja) * 2005-03-29 2009-10-14 富士通マイクロエレクトロニクス株式会社 マイクロコントローラ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944833A (en) * 1996-03-07 1999-08-31 Cp8 Transac Integrated circuit and method for decorrelating an instruction sequence of a program
CN1426547A (zh) * 2000-04-06 2003-06-25 格姆普拉斯公司 基于流水线体系结构的微控制器的对抗方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Peter Puschner and Raimund Kirner.Avoiding Timing Problems in Real-Time Software.《IEEE Computer Society"s Workshop on Software Technologies for Future Embedded Systems》.2003, *

Also Published As

Publication number Publication date
CN101432691A (zh) 2009-05-13
TWI347552B (en) 2011-08-21
US7647486B2 (en) 2010-01-12
US20070260861A1 (en) 2007-11-08
TW200818004A (en) 2008-04-16
WO2007130074A1 (en) 2007-11-15

Similar Documents

Publication Publication Date Title
CN101432691B (zh) 用于控制处理器中的时序的方法和系统
US7426648B2 (en) Global and pseudo power state management for multiple processing elements
EP0203304B1 (en) Data processor controller
US7930443B1 (en) Router having routing engine software instance and interface controller software instance on a single processor
CN107430565B (zh) 具有多个独立微控制器的低接脚微控制器装置
EP1658559A2 (en) Instruction controlled data processing device
US8195975B2 (en) Semiconductor integrated circuit device and clock control method
US9261932B2 (en) Minimizing switchover time in a hot swappable program memory
US9274804B2 (en) Overlapped boot task fetches and boot task execution to reduce boot time in an electrical device
JP2008077294A (ja) マイクロプロセッサおよびそれを用いたマイクロコンピュータ
EP0652514A2 (en) Data processing apparatus handling plural divided interruption
CN107251001B (zh) 具有双模式中断的微控制器或微处理器
CN101154178A (zh) 微机调试系统
KR20070004705A (ko) 전자 회로와 그 동작 방법
JP2004206692A (ja) マルチスレッド化プロセッサ・システム上での実行のために、スレッドについての優先順位値を決定する方法および装置
US20160170466A1 (en) Power saving multi-width processor core
JP4731126B2 (ja) 割り込み制御回路
JP2021515929A (ja) データ処理
JP2005038203A (ja) メモリ制御方法及び装置
JP3211750B2 (ja) 情報処理装置及びパイプライン処理方法
JP7191355B2 (ja) 複数のレジスタ群を有するプロセッサ
JPH06324861A (ja) Cpu制御システム及び制御方法
Laird The Von Neumann architecture topic paper# 3
US20040230319A1 (en) Microcontroller device for complex processing procedures and corresponding interrupt management process
JP2011150636A (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
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111116

Termination date: 20130526