CN104375820A - 事件驱动的处理器及其运行方法 - Google Patents
事件驱动的处理器及其运行方法 Download PDFInfo
- Publication number
- CN104375820A CN104375820A CN201410382864.4A CN201410382864A CN104375820A CN 104375820 A CN104375820 A CN 104375820A CN 201410382864 A CN201410382864 A CN 201410382864A CN 104375820 A CN104375820 A CN 104375820A
- Authority
- CN
- China
- Prior art keywords
- pollex
- event
- processor
- timer
- event driven
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明描述了运行事件驱动的处理器的方法与事件驱动的处理器的实施方式。在一种实施方式中,一种运行事件驱动的处理器的方法,涉及:为事件驱动的处理器配置博动计时器;以及基于博动计时器,利用事件驱动的处理器来处置事件。利用博动计时器植入事件驱动的处理器,该事件驱动的处理器的任务执行的确定性得以提升,并且其能耗下降。本发明还描述了其他实施方式。
Description
技术领域
本发明涉及用于事件驱动的处理器的任务执行确定性的改进,具体地,涉及事件驱动的处理器及其运行方法。
背景技术
对于处理器来说,诸如与外围设备通信的服务带宽以及任务执行的确定性等特性,对于其性能而言非常重要。例如,在复杂的多中央处理单元(CPU)或多外围片上系统(SoC)中,用于CPU或SoC与外围部件的通信的服务带宽通常来说不可预测,任务执行的确定性也比较困难。为保证某种程度上的确定机制,软件通常会将任务区分为较小的单元,这些较小单元的执行的开端可以利用中断进行同步。尽管如此,利用中断来再同步任务的执行,对于执行本身而言,将增加管理。比如,每次当指令执行由主回合转移到中断回合时,都需要消耗数个周期,以使CPU可以执行前后的切换,如寄存器的堆叠。此外,利用中断实现再同步的任务执行所能得到的粒度较为有限。如果软件中明确写成将任务执行延后到每一个或多个指令之后,则软件的代码将会显著增加。进一步地,重复执行“等待中断”指令也会造成代码体积增大,并浪费运算资源。
处理器的功耗是另外一个重要的性能指标。部分CPU任务会遇到不可预知的访问延迟。在执行这类任务时,CPU在空置周期内还会浪费能量。例如,CPU的内部电路还处于运转状态并消耗能量,但此时由于外部延迟的原因却没有处理进展。
发明内容
本说明书描述了运行事件驱动的处理器的方法与事件驱动的处理器的实施方式。在一种实施方式中,一种运行事件驱动的处理器的方法,涉及:为事件驱动的处理器配置博动计时器;以及基于博动计时器,利用事件驱动的处理器来处置事件。利用博动计时器植入事件驱动的处理器,该事件驱动的处理器的任务执行的确定性得以提升,并且其能耗下降。本说明书还描述了其他实施方式。
在一种实施方式中,一种运行事件驱动的处理器的方法涉及:配置事件驱动的处理器的博动计时器,以及基于博动计时器来利用该事件驱动的处理器处置事件。
在一种实施方式中,事件驱动的处理器包括:指令库,配置为存储指令集,指令集包括计算机可执行指令,用于在事件驱动的处理器内实现博动计时器。该事件驱动的处理器还包括运行代码翻译器,用于配置博动计时器,以及基于博动计时器来处置事件。
在一种实施方式中,一种运行事件驱动的处理器的方法涉及:配置博动计时器,博劝计时器集成在该事件驱动的处理器的指令集中。配置博动计时器包括:为事件驱动的处理器指定博动期间,以及倒数博动计时器至预定义的值,直至博动期间到期。该方法还涉及:当博动计时器到达该预定义的值时,响应于事件,利用该事件驱动的处理器来执行软件程序;其中软件程序中包括机器语言指令,机器语言指令指定该事件驱动的处理器要执行的操作。
本发明的各实施方式的其他方面和优点将通过以下详细描述结合所附的附图进一步阐明。
附图说明
图1所示的是根据本发明一种实施方式的处理器的示例性模块图。
图2和图3是图1中所述的处理器的两个示例的运行实施方式的流程图。
图4所示的是图1中的处理器的一种实施方式。
图5所示的是图4中的处理器的运行的一种实施方式。
图6所示的是本发明一种实施方式的运行事件驱动的处理器的方法的流程图。
在以下描述中,相似的标号可能用于标识相似的元件。
具体实施方式
应当理解的是,本发明各实施方式中所提及的并在后附的图形中展示的各元件可以在更广范围内以不同的设置方式进行布置和设计。从而,以下关于各实施方式所描述的以及附图中所表示的本发明的细节,仅表示各实施方式的代表,但并不表示对本发明范围的限制。同时,本发明实施方式的各部分在附图中有所展示,但除非特别说明,附图并不绘制为限制比例。
以下所述的各实施方式在任何情况下都应当仅理解为示例性地而非限制性地。因此,本发明的范围应当由后述的权利要求书而不是本实施方式说明来标示。任何在权早要求的意述和等同范围内的变化,都应当认为是包含于本发明的权利要求之内。
本说明书中关于各特征、优点、或类似语言的指代并不表明本发明的所有的特征和优点应当或实际在单个实施方式中得以实现。相反,对于特征和优点的指代性语言应当理解为表明至少一个实施方式中包括了通过某一实施方式所描述了的特定的特征、优点或特性。因此,本说明书中对于特征、优点或类似语言的描述可能但不必然地指向相同的实施方式。
进一步地,所描述的本发明的各特征、优点和特点在一个或多个实施方式中可以以任意合适的方式进行组合。所属技术领域的技术人员可以意识到,通过以下描述,本发明可以实现为不具备某个特定实施方式中的一个或多个特定的特征或优点。在其他例子中,也可以意识到其具有未被各实施方式所描述的其他特征或优点。
本说明书中关于“一个实施方式”的类似语言的表述,意为至少一个实施方式中包括了特定的与所表征的实施方式相联系起来描述的特征、结构或特点。因此,本说明书中对于“在一个实施方式中”或类似语言的描述可能但不必然地指向相同的实施方式。
图1所示的是根据本发明一种实施方式的处理器100的示例性模块图。该处理器100可以使得任务的执行受控地减缓,并且保证任务执行在很大程度上的确定性,以下将详述之。在图1所述的实施方式中,处理器100是一种事件驱动的处理器,其包括事件检测器102和事件处置器104,事件检测器基于输入数据检查事件的发生;事件处置器104响应于事件检测器102的事件通知而处置该事件。“事件”是预先定义的情形。事件的例子包括但不限于:用户动作(如键盘动作、鼠标动作)、内部UO功能完成、计时硬件事件以及发自另一计算机的数据到达等。该事件驱动的处理器可以将计算功能的执行与输入/输出(UO)功能的执行重叠起来。基于事件的软件使得该事件驱动的处理器可以运行多个任务,其利用了一种具有主控制循环(主循环)的计算结构,当在主循环的程序之外发生一个事件时,该计算结构允许执行回调函数。在部分实施方式中,事件驱动的程序使用包含关联表的事件库,该关联表将特定的事件与特定的回调函数相关联起来。回调函数可以是机器指令,其导引该事件驱动的处理器来进行特定的动作。处理器动作的示例包括但不限于:执行预先定义的计算功能,传递通知,以及查询数据库。回调函数与相应的事件类型有关。事件驱动的处理器可以响应于一个或多个连续的事件而执行一系列的回调函数。
在部分实施方式中,该事件驱动的处理器100是一种微控制器,其设计为执行一个或多个特定的专用功能。例如,该事件驱动的处理器可以经由触发事件所指定的回调函数的导引而执行机器指令。除了事件检测器102和事件处置器104之外,事件驱动的处理器还可以包括其他元件,例如计时器、串行或并行UO接口、以及程序存储器。然而,在部分其他实施方式中,事件驱动的处理器是一种通用目的处理器,例如CPU。
传统的中断驱动的处理器在等待事件发生时不可能停止处理。传统的中断驱动的处理器反而是持续地执行指令,不但消耗时间,而且占用系统资源。对于类似来自不经常使用的外设的UO操作(如传真机、扫描仪和打印机)等部分事件,持续的监测会导致能量和系统资源的极大浪费。
的图1所示的实施方式中,该事件驱动的处理器100是一种非中断驱动的处理器。相比于传统的中断驱动的处理器,图1中所示的事件驱动的处理器100可以使得任务的执行受控地减缓,并且保证任务执行在很大程度上的确定性。在一种实施方式中,该事件驱动的处理器具有其自己的“博动”计时器,从而每个指令可以在经过特定的延迟之后得以执行,或者全部代码块都被统一到确定的时间点上开始执行。相比于传统的中断驱动的处理器,该事件驱动的处理器代码体积增长有限。利用该事件驱动的处理器,指令可以全速地获得,但运行代码(opcode)的执行将被推迟到产生一个博动时(例如,博动计时器到达一个预先定义的阈值,如0)。运行代码opcode可以是机器语言指令,其指定将要执行的操作。将各执行利用博动计时器同步起来,提供给用户一种利器,可以用之来形成一种“对齐到网格”风格(例如,如在网格中一般确定)的执行方式,从而,即便该事件驱动的处理器可能经历各种延迟,还是可以保证可预测的确定执行。只要下一个指令是在博动计数器/计时器的倒数时间之内获取到的,该软件指令就会被准时执行。换言之,不管每个指令获取或数据读/写中经历了什么样的延迟,只要该指令是在博动计数器到达0之前获取的,都会得到一个确定的执行。将事件驱动的处理器设置为将其所有opcode同步到给定的博动间隔,可以使得事件驱动处理器动态地调整其执行速度,而无需影响到与外围设备的连接。因经,该事件驱动的处理器可以通过增大或减小博动间隔而轻易地从执行于一个节奏切换到执行于另一个(例如,更慢或更快的)节奏。由于事件驱动的处理器可以改变执行速度,该事件驱动的处理器有必要时在执行速度上可以更敏捷,或者在其他情况下变慢但更具有确定性。此外,事件驱动的处理器可以在博动间隔中间关闭处理功能,以在任务执行之外减小功耗。例如,当执行一个任务所花费的时间长度不限定时,以及当更快的执行并不减小任务执行的持续时间时,事件驱动的处理器可以节省能量。
在图1所示的实施方式中,博动计时器106实现为在事件驱动的处理器100的内部。例如,该博动计时器可以实现在事件处置器104内。该博动计时器还可以实现为硬件和/或存储于计算机可读存储介质上的软件。在其他实施方式中,事件处置器设置博动计时器,并基于博动计时器来处置事件。根据本发明的实施方式,事件处置器为事件驱动的处理器指定一个博动期间,在博动期间到期前获取软件程序,并在博动期间到期后,响应于事件检测器102检测到一个或多个事件,执行软件程序。事件驱动的处理器的博动期间是博动计时器106的一个周期的时间。例如,在博动计时器106的一个周期内,博动计时器106计数预定数量的(例如整数个)数字。事件处置器也可以在当前博动期间到期之后,为事件驱动的处理器指定一个不同的博动期间。根据本发明的一种实施方式,事件处置器倒数博动计时器至预先定义的值(如0),并在博动计时器到达该预先定义的值时执行软件程序。事件处置器还可以为事件驱动的处理器指定博动间隔,并相应地响应于在该博动间隔中检测到一个或多个事件而执行软件程序。
在部分实施方式中,博动计时器106实现为事件驱动的处理器100中的指令集。该指令集包括用于实现事件驱动的处理器100的计算功能的计算机可执行指令(如软件代码)。例如,该指令集可以包括用于数据处理和存储器操作的软件代码,如将寄存器设值、在存储器位置之间移动数据。该指令集还可以包括用于算法和逻辑操作的软件代码。例如,该指令集可以包括用于加、减、乘、除数字值的和/或执行逐位运算的软件代码。该博动计时器可以被设置为任意值(如任意非负整数)。例如,博动计时器可以重复地倒数至0。当计数到0时,执行相应的软件程序。通常地,在博动计时器倒数至0时,不会产生或发出处理器系统信息。事件驱动的处理器可以被编程为将所有opcode执行都同步到一个博动间隔、或者进行执行的延迟直至下一下博动间隔。将所有的opcode都同步到一个博动间隔,可以使得即便在事件驱动的处理器和总线上的另一实体之间存在总线连接时也能够保证完全确定性的任务执行。因此,博动计时器给予事件驱动的处理器为自身运行进行计时的能力,以及在不影响系统性能和外部时钟频率的情况下在不工作时降低能耗的能力。由于事件驱动的处理器可以运行于全速或将部分执行节流于准备通道中,该事件驱动的处理器可以展示出对齐到网络的执行。此外,由于博动计时器可以实现在处理器100的指令集之中,事件驱动的处理器可以运行为外围设备。
图2和图3是图1中所述的处理器100的两个示例的运行实施方式的流程图。在部分实施方式中,博动计时器106基于博动期间计数到预定义的阈值(如0)。在图2中所示的运行中,步骤202指定博动计时器106的博动期间。步骤204,处理器检查博动期间是否到期。步骤206,如果博动期间未到期,处理器获取软件程序。步骤208,如果博动期间到期,处理器执行所获取的软件程序。由于事件驱动的处理器100将软件程序的执行同步到博动期间,从而可以增强事件驱动的处理器的任务执行的确定性。此外,由于在事件驱动的处理器等候博动期间到期时,软件代码可以被预获取到事件驱动的处理器中,从而该事件驱动的处理器的效率可以得到提升。
在部分实施方式中,博动计时器106根据博动间隔来周期性地计数到预先定义的阈值(如0),该博动间隔定义了两个连续的博动之间的时间。在图3中所示的运行中,步骤302,指定博动计时器106的博动间隔。步骤304,处理器100检测自博动间隔被指定的时间点以后是否过去一个或多个博动间隔。步骤306,如果有一个或多个博动间隔已过去,处理器执行软件程序。如果没有过去一个或多个博动间隔,处理器回到步骤304,再次检查是否过去一个或多个博动间隔。处理器可以在博动间隔之间预获取软件程序。由于事件驱动的处理器100将软件程序的执行同步到博动间隔上,可以增强事件驱动处理器的任务执行的确定性。
图4所示的是图1中的事件驱动的处理器100的一种实施方式,其中,博动计时器206实现为事件驱动处理器400中的指令集。在图4所示的实施方式中,事件驱动的处理器400包括事件检测器402、事件处置器404。事件检测器402基于输入数据检查事件的发生。事件处置器404响应于发自事件检测器的事件通知而处置该事件。图4中所示的事件驱动的处理器400是图1中所示的事件驱动的处理器100的可能实现方式之一。然而,图1中所述的事件驱动的处理器100不限制为图4中所示的事件驱动的处理器400。
事件驱动的处理器400的事件检测器402包括模式检测器408,模式检测器408配置为自一系列外部输入中监测至少一个事件。模式检测器也可以同时监测多个事件。模式检测器可以监测事件组合是否发生,并当事件组合发生时提供正逻辑位。用户可对模式检测器进行设置,以监测布林事件源组合。模式检测器的输出可以是逻辑位,如“1”或“0”。在某实施方式中,模式检测器利用数个软件位片来监测外部输入中是否有至少一个触发事件发生。每个位片监测一个单独的外部输入中的触发事件。
事件驱动的处理器400中的事件处置器404包括opcode翻译器412、指令库414以及至少一个寄存器410。Opcode翻译器恢复并执行至少一个指令。指令库维护一个指令清单,以供微处理器进行恢复;寄存器中存储opcode,用以实现事件驱动的处理器的各类功能。在图4所示的实施方式中,指令库将指令集存储到事件驱动的处理器的博动计时器设置的地方。寄存器可以实现为存储元件,如闪存、随机存取存储器或只读存储器。
在部分实施方式中,opcode翻译器412获取、解码并执行从例如指令库414中恢复而来的机器指令得到的opcode。在某个实施方式中,opcode翻译器执行存储在指令库中的一系列机器指令。部分机器指令可能会改变opcode翻译器中状态机的状态。在opcode翻译器中,特定指令或指令的子程序的执行可以由模式检测器408的输出来触发。在部分实施方式中,opcode翻译器可以包括状态机,状态机维护多个状态,并可能基于特定的指令的执行而改变状态。在某些实施方式中,opcode翻译器借助机器指令来运行四个基本的处理步骤:获取、解码、执行、回写。
以下描述opcode翻译器412运行的一个例子。在获取步骤中,opcode翻译器从指令存储器,如指令库414中,恢复其存储的一个机器指令。所恢复的指令可以包括运行代码(opcode),运行代码向opcode翻译器指定其执行的运行,并且还可以为所指令的运行指定一个或多个运算对象或其他参数。为opcode翻译器存储指令的可以是指令库、另一个在事件驱动的处理器400中的存储器设备、或事件驱动的处理器外的指令缓存存储器。Opcode翻译器随后可以在获取指令之后进行所获取的指令的解码。
传统的中断驱动的处理器典型地依赖于外部的计时器作为中断源,从而不但引入延迟,还会造成抖动。例如,中断驱动的处理器通常在进入中断服务程序(ISR)之前执行内部寄存器的堆叠。此外,对于计时器的重新配置也可能引入进一步的抖动。
相比于传统的中断驱动的处理器,事件驱动的处理器400的抖动较少。特别地,事件驱动的处理器400具有内置的博动计时器406,其实现为事件驱动的处理器的指令集。例如,博动计时器406可以通过指令集的软件代码来实现。
将博动计时器406集成到事件驱动的处理器400的指令集,使得编程人员可以实现以往处理器所不能实现的功能。例如,通过opcode翻译器412,可以设置博动计时器从而计时一个间隔(如通过执行博动配置“HEART_BEAT_CONFIG”程序/流程),随后等待博动计时器到达预先定义的阈值(如通过执行等待博动“WAIT_FOR_BEAT”程序)。该方法可以用来保证随后的opcode精确地执行于指定的时间间隔,该时间间隔自博动配置opcode执行的时点被指定。此外,指令可以在正常的博动间隔中重复执行。例如,等待博动程序可以在代码需要被延迟等待至下一博动的任意时间使用。进一步地,博动计时器可以通过单独的opcode配置,以便该博动计时器到达预先定义的阈值时驱使执行各自相应的opcode。
间隔博动计时器可以用来实现级联的延迟。例如,一个等待博动程序可以后接一个博动配置指令,以保证在前一博动周期停止时随即启动新的博动周期。以下将参考图5中示出的数据取样运算给出一个伪代码示例,其利用博动计时器来实现级联的延迟。该代码实例可用于事件驱动的处理器400(如opcode翻译器412)来执行通用异步收发传输器(UART)的功能。在UART情形下,第一次的等待时间是位时间的一半(T/2),后续的等待时间是完整的位时间(T),以允许在每位的中间时刻开始取样。位时间(T)为位周期,其等于UART的波特率的倒数。UART可以取样每个位n次(n为大于1的正整数),每个位时间等于采样周期“Tua”的n倍。在图5所示的实施方式中,UART取样每个位16次,因此每个位时间(T)等于采样周期“Tua”的16倍。
伪码:
WAIT_LOOP
HEART_BEAT_CONFIG(T/2) //配置T/2
WAIT_FOR_TRIGGER ①//检测起始位
WAIT_FOR_BEAT ②//与位元中心同步(为起始位)
HEART_BEAT_CONFIG(T) //自此,每个T时间都需要同步。配置T。
LOAD_DATA //读取数据
IF DATA=1GOTO WAIT_LOOP //需要确保这是起始位(而不是短时干扰)
LOOP(8times) //循环8次(或9次,视奇偶而定)以检查数据
WAIT_FOR_BEAT ③//与位元中心同步(为数据位)
LOAD_AND_ACCUMULATE_DATA //读取并累积数据
SHIFT_ACC_RIGHT_1 //为下一数据位准备
END_LOOP
WAIT_FOR_BEAT ④//与位元中心同步(为停止位)
IF DATA=0GOTO WAIT_LOOP //需要验证停止位;否则舍弃该接收
DATA_READ_IS_VALID //结束:数据读取完成,有效
该代码示例开始于“WAIT_LOOP”循环,其包括“HEART_BEAT_CONFIG”程序,该程序指定博动同步时间(例如:等待时间)为位时间的一半(T/2)。随后,如图5中的数据取样点①所示的,利用“WAIT_FOR_TRIGGER”程序,通过检测由逻辑“1”至逻辑“0”的变化,来检测开始位“S”。如图5中数据取样点②所示的,自“HEART_BEAT_CONFIG”程序执行时开始,当过去了博动同步时间(T/2)后,执行“WAIT_FOR_BEAT”程序。随后,执行“HEART_BEAT_CONFIG”程序,指定博动同步时间为一个位时间(T)。在“HEART_BEAT_CONFIG”程序执行后,加载数据“D0”-“D7”,并进行检查,以确保该数据不是干扰。如果该数据是干扰,程序回到“WAIT_LOOP”。如果该数据不是干扰,则通过循环过程“LOOP”处理数据,例如,根据奇偶位“PB”,循环8次或9次。在“LOOP”中,如图5中数据取样点③所示的,自“HEART_BEAT_CONFIG”程序被执行时开始,当博动同步时间(T)到期后,执行“WAIT_FOR_BEAT”程序。随后,在“LOOP”中,执行处理步骤“LOAD_AND_ACCUMULATE_DATA”,以读取和累积数据,以及执行总结步骤“SHIFT_ACC_RIGHT-1”,以准备下一数据位。在循环步骤“LOOP”执行以后,在博动同步时间(T)到期后,执行“WAIT_FOR_BEAT”程序,如图5中数据取样点④所示的。其后,如果数据的停止位“P”得到验证,则该处理的数据视为有效,并被读入数据库。如果数据的停止位未得到验证,则舍弃该处理的数据,程序转至“WAIT_LOOP”。
图6所示的是本发明一种实施方式的运行事件驱动的处理器的方法的流程图。该事件驱动的处理器可以是图1中所示的事件驱动的处理器100或者图4中所示的事件驱动的处理器100。模块602,配置事件驱动的处理器的博动计时器。模块604,利用该事件驱动的处理器,基于博动计时器来处置事件。
尽管该方法的运行在上述说明以附图中显示为具有特定顺序,该方法的运行顺序可以调整,以便特定的步骤可以以相反的顺序运行,或者特定的步骤可以至少部分地与其他步骤同时运行。在其他实施方式中,指令或不同运算的子运算可以间歇性地和/或交互地运行。
此外,尽管本发明以上所述的特定实施方式中包括了所述的或所展示的数个元件,本发明的其他实施方式也可以包括更多或更少的元件,以实现更多或更少的特性。
进一步地,尽管以上描述了本发明的特定实施方式,本发明并不限于所描述或展示的特定形式或安排的部分。本发明的范围由所附的权利要求书及其等同所定义。
Claims (20)
1.一种运行事件驱动的处理器的方法,其特征在于,所述方法包括:
配置事件驱动的处理器的博动计时器;以及
利用事件驱动的处理器,基于博动计时器来处置事件。
2.根据权利要求1所述的方法,其特征在于:博动计时器集成于事件驱动的处理器的指令集中。
3.根据权利要求1所述的方法,其特征在于,配置事件驱动的处理器的博动计时器包括:为事件驱动的处理器指定第一博动期间。
4.根据权利要求3所述的方法,其特征在于,利用事件驱动的处理器处置事件包括:在第一博动期间到期后,响应于事件,利用事件驱动的处理器执行软件程序。
5.根据权利要求4所述的方法,其特征在于,利用事件驱动的处理器处置事件包括:在第一博动期间到期前,将软件程序获取到事件驱动的处理器中。
6.根据权利要求4所述的方法,其特征在于:软件程序包括机器语言指令,机器语言指令指定事件驱动的处理器要执行的操作。
7.根据权利要求3所述的方法,其特征在于,进一步包括:在第一博动期间到期后,为事件驱动的处理器指定第二博动期间,其中第二博动期间与第一博动期间不同。
8.根据权利要求3所述的方法,其特征在于,配置事件驱动的处理器的博动计时器进一步包括:倒数博动计时器至预定义的值,直到第一博动期间到期。
9.根据权利要求8所述的方法,其特征在于,利用事件驱动的处理器处置事件包括:当博动计时器倒数至预定义的值时,响应于事件,执行软件程序。
10.根据权利要求1所述的方法,其特征在于,配置事件驱动的处理器的博动计时器包括:为事件驱动的处理器指定博动间隔。
11.根据权利要求10所述的方法,其特征在于,利用事件驱动的处理器处置事件包括:在博动间隔中,响应于事件,重复地利用事件驱动的处理器执行软件程序。
12.一种事件驱动的处理器,其特征在于,包括:
指令库,配置为存储指令集,其中指令集包括计算机可执行指令,用于在事件驱动的处理器中实现博动计时器;以及
运行代码翻译器,用于配置博动计时器,以及基于博动计时器处置事件。
13.根据权利要求12所述的事件驱动的处理器,其特征在于,运行代码翻译器配置为:
为事件驱动的处理器指定第一博动期间;
在第一博动期间到期前,获取软件程序;以及
在第一博动期间到期后,响应于事件,执行软件程序。
14.根据权利要求13所述的事件驱动的处理器,其特征在于:软件程序包括机器语言指令,机器语言指令指定运行代码翻译器要执行的操作。
15.根据权利要求13所述的事件驱动的处理器,其特征在于,运行代码翻译器配置为:在第一博动期间到期后,为事件驱动的处理器指定第二博动期间,其中第二博动期间与第一博动期间不同。
16.根据权利要求13所述的事件驱动的处理器,其特征在于,运行代码翻译器配置为:
倒数博动计时器至预定义的值,直至第一博动期间到期;以及
当博动计时器到达预定义的值时,执行软件程序。
17.根据权利要求12所述的事件驱动的处理器,其特征在于,运行代码翻译器配置为:
为事件驱动的处理器指定博动间隔;以及
在博动间隔中,响应于事件,重复地执行软件程序。
18.一种运行事件驱动的处理器的方法,其特征在于,所述方法包括:
配置博动计时器,博动计时器集成于事件驱动的处理器的指令集中;其中配置博动计时器包括:
为事件驱动的处理器指定第一博动期间;以及
倒数博动计时器至预定义的值,在该值点上,第一博动期间到期;以及
当博动计时器到达预定义的值时,响应于事件,利用事件驱动的处理器执行软件程序,其中软件程序包括机器语言指令,机器语言指令指定事件驱动的处理器要执行的操作。
19.根据权利要求18所述的方法,其特征在于,进一步包括:在第一博动期间到期前,将软件程序获取到事件驱动的处理器中。
20.根据权利要求19所述的方法,其特征在于,进一步包括:在第一博动期间到期后,为事件驱动的处理器指定第二博动期间,其中第二博动期间与第一博动期间不同。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/968,374 US9323540B2 (en) | 2013-08-15 | 2013-08-15 | Task execution determinism improvement for an event-driven processor |
US13/968,374 | 2013-08-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104375820A true CN104375820A (zh) | 2015-02-25 |
CN104375820B CN104375820B (zh) | 2017-12-19 |
Family
ID=52467692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410382864.4A Active CN104375820B (zh) | 2013-08-15 | 2014-08-06 | 事件驱动的处理器及其运行方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9323540B2 (zh) |
CN (1) | CN104375820B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108713178A (zh) * | 2016-01-08 | 2018-10-26 | 纽弗雷公司 | 利用射频信号强度进行工位内验证的电动工具系统 |
CN111262621A (zh) * | 2018-11-30 | 2020-06-09 | 富士康(昆山)电脑接插件有限公司 | 从系统硬件故障中执行自动恢复的方法及使用该方法的光通信模组 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11556162B2 (en) * | 2018-03-16 | 2023-01-17 | Advanced Micro Devices, Inc. | Per-instruction energy debugging using instruction sampling hardware |
CN110213213B (zh) * | 2018-05-30 | 2021-08-03 | 腾讯科技(深圳)有限公司 | 应用的定时任务处理方法及系统 |
US11003369B1 (en) | 2019-01-14 | 2021-05-11 | Pure Storage, Inc. | Performing a tune-up procedure on a storage device during a boot process |
FR3122299B1 (fr) * | 2021-04-23 | 2023-11-10 | Fond B Com | Module et procédé de gestion d’un processus fonctionnel, programme d’ordinateur et réseau informatique associés |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089406B2 (en) * | 2003-06-09 | 2006-08-08 | International Business Machines Corporation | Method and apparatus for controlling program instruction completion timing for processor verification |
US8327125B2 (en) * | 2009-12-28 | 2012-12-04 | General Instrument Corporation | Content securing system |
CN102843250A (zh) * | 2011-06-21 | 2012-12-26 | 中兴通讯股份有限公司 | 一种心跳周期的自适应方法和装置 |
CN103118387A (zh) * | 2012-12-17 | 2013-05-22 | 上海寰创通信科技股份有限公司 | 一种主备模式的瘦ap冗余接入控制方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03126131A (ja) | 1989-10-11 | 1991-05-29 | Nec Corp | 中央処理装置の実行速度制御方式 |
US5367699A (en) | 1991-11-26 | 1994-11-22 | Bull Hn Information Systems Inc. | Central processing unit incorporation selectable, precisa ratio, speed of execution derating |
US5463744A (en) | 1991-12-30 | 1995-10-31 | Intel Corporation | Emulation of slower speed processor |
US5911083A (en) | 1996-12-27 | 1999-06-08 | Unisys Corporation | Programmable processor execution rate controller |
US6332180B1 (en) * | 1998-06-10 | 2001-12-18 | Compaq Information Technologies Group, L.P. | Method and apparatus for communication in a multi-processor computer system |
US6728781B1 (en) * | 1998-05-12 | 2004-04-27 | Cornell Research Foundation, Inc. | Heartbeat failure detector method and apparatus |
EP1351145A1 (en) * | 2002-04-04 | 2003-10-08 | Hewlett-Packard Company | Computer failure recovery and notification system |
US7028122B2 (en) * | 2002-08-07 | 2006-04-11 | Sun Microsystems, Inc. | System and method for processing node interrupt status in a network |
US7630313B2 (en) * | 2004-09-30 | 2009-12-08 | Alcatel-Lucent Usa Inc. | Scheduled determination of network resource availability |
US7350117B2 (en) * | 2004-10-05 | 2008-03-25 | International Business Machines Corporation | Management of microcode lock in a shared computing resource |
US8489923B1 (en) * | 2006-11-15 | 2013-07-16 | Conviva Inc. | Detecting problems in content distribution |
US8065279B2 (en) * | 2008-02-25 | 2011-11-22 | International Business Machines Corporation | Performance neutral heartbeat for a multi-tasking multi-processor environment |
US8412974B2 (en) | 2009-11-13 | 2013-04-02 | International Business Machines Corporation | Global synchronization of parallel processors using clock pulse width modulation |
US10198062B2 (en) | 2009-11-20 | 2019-02-05 | Nxp B.V. | Microprocessor to resume clocking and execution based on external input pattern detection |
US8914538B2 (en) * | 2010-05-13 | 2014-12-16 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Implementing network manager quarantine mode |
US8301937B2 (en) * | 2010-05-26 | 2012-10-30 | Ncr Corporation | Heartbeat system |
CN102694713B (zh) * | 2011-03-21 | 2015-08-05 | 鸿富锦精密工业(深圳)有限公司 | 网络通信多通路选择方法及系统 |
US8972767B2 (en) * | 2012-11-16 | 2015-03-03 | Oracle International Corporation | Method and apparatus for synchronizing the time reference of a dynamically activated processor to the system time reference |
-
2013
- 2013-08-15 US US13/968,374 patent/US9323540B2/en active Active
-
2014
- 2014-08-06 CN CN201410382864.4A patent/CN104375820B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089406B2 (en) * | 2003-06-09 | 2006-08-08 | International Business Machines Corporation | Method and apparatus for controlling program instruction completion timing for processor verification |
US8327125B2 (en) * | 2009-12-28 | 2012-12-04 | General Instrument Corporation | Content securing system |
CN102843250A (zh) * | 2011-06-21 | 2012-12-26 | 中兴通讯股份有限公司 | 一种心跳周期的自适应方法和装置 |
CN103118387A (zh) * | 2012-12-17 | 2013-05-22 | 上海寰创通信科技股份有限公司 | 一种主备模式的瘦ap冗余接入控制方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108713178A (zh) * | 2016-01-08 | 2018-10-26 | 纽弗雷公司 | 利用射频信号强度进行工位内验证的电动工具系统 |
CN108713178B (zh) * | 2016-01-08 | 2021-03-23 | 纽弗雷公司 | 利用射频信号强度进行工位内验证的电动工具系统 |
CN111262621A (zh) * | 2018-11-30 | 2020-06-09 | 富士康(昆山)电脑接插件有限公司 | 从系统硬件故障中执行自动恢复的方法及使用该方法的光通信模组 |
CN111262621B (zh) * | 2018-11-30 | 2022-06-24 | 富士康(昆山)电脑接插件有限公司 | 从系统硬件故障中执行自动恢复的方法及使用该方法的光通信模组 |
Also Published As
Publication number | Publication date |
---|---|
US20150052340A1 (en) | 2015-02-19 |
CN104375820B (zh) | 2017-12-19 |
US9323540B2 (en) | 2016-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104375820A (zh) | 事件驱动的处理器及其运行方法 | |
US8984520B2 (en) | Resource modeling and scheduling for extensible computing platforms | |
US8862917B2 (en) | Dynamic sleep for multicore computing devices | |
CN101689157B (zh) | 定时端口 | |
US9195285B2 (en) | Techniques for platform duty cycling | |
CN1620645A (zh) | 用于无线系统中定时及事件处理的方法和装置 | |
Dong et al. | SenSpire OS: A predictable, flexible, and efficient operating system for wireless sensor networks | |
US20120297216A1 (en) | Dynamically selecting active polling or timed waits | |
EP2817717A2 (en) | Method and system for scheduling requests in a portable computing device | |
US10303482B2 (en) | Dynamic processor frequency selection | |
US20210191757A1 (en) | Sub-idle thread priority class | |
CN104516477A (zh) | 进入低功率状态的技术 | |
US9311137B2 (en) | Delaying interrupts for a transactional-execution facility | |
Levis et al. | Schedulers and tasks | |
US8447960B2 (en) | Pausing and activating thread state upon pin assertion by external logic monitoring polling loop exit time condition | |
US9223641B2 (en) | Multicore processor system, communication control method, and communication computer product | |
Mozumdar et al. | A comparison of software platforms for wireless sensor networks: MANTIS, TinyOS, and ZigBee | |
Berthier et al. | Synchronous programming of device drivers for global resource control in embedded operating systems | |
Hussain | Heterogeneity aware fault tolerance for extreme scale computing | |
Kuo et al. | Real-time computing and the evolution of embedded system designs | |
Tuveri et al. | A runtime adaptive H. 264 video-decoding MPSoC platform | |
KR20130094889A (ko) | 실시간 운영체제의 태스크 스케줄링 방법 | |
US8572619B2 (en) | System and method for integrating software schedulers and hardware interrupts for a deterministic system | |
Aldinucci et al. | Towards power-aware data pipelining on multicores | |
Kamio et al. | Micro T-Kernel: A low power and small footprint RTOS for networked tiny devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |