CN102737006B - 控制两个处理器之间消息流量的方法和系统 - Google Patents
控制两个处理器之间消息流量的方法和系统 Download PDFInfo
- Publication number
- CN102737006B CN102737006B CN201210082262.8A CN201210082262A CN102737006B CN 102737006 B CN102737006 B CN 102737006B CN 201210082262 A CN201210082262 A CN 201210082262A CN 102737006 B CN102737006 B CN 102737006B
- Authority
- CN
- China
- Prior art keywords
- message
- processor
- output
- task
- input
- 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
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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
公开了一种用于控制第一和第二处理器(110,112)之间的消息的系统和方法。第二处理器(112)代表第一处理器(110)执行的预定任务控制一个或多个外设装置(114-118)。该系统包括消息控制模块(320),其从所述第一处理器(110)接收针对第二处理器(112)的输入消息并基于接收的输入消息和先前接收的输入消息维持消息历史。消息历史表示要打开哪些外设装置(114-118)以及任务中的哪些任务请求打开外设装置(114-118)。消息控制模块产生输出消息,所述输出消息包括基于所述消息历史的针对第二处理器(112)的输出指令以及基于所述消息历史的输出持续时间。第二处理器(112)执行输出指令。
Description
技术领域
本公开涉及一种用于控制第一处理器和第二处理器之间消息流量的系统和方法。
背景技术
很多装置或系统由超过一个处理器构成,这些处理器彼此串行通信。例如,远程信息处理装置可以包括两个处理器,这两个处理器彼此串行通信。类似地,计算系统中的处理器可以彼此串行通信。在这些配置中,第一处理器可以执行多种应用,例如进行通信,控制GPS,控制视听系统或其他资源密集型应用。第二处理器可以管理装置中支持第一处理器的部件。例如,第二处理器可以处理来自外设装置的I/O信号或代表第一处理器控制外设装置。
典型地,第二处理器为低功率处理器,从第一处理器以消息的形式接收指令。出现的一个问题是,第一处理器可以向第二处理器发送多个消息,在消息之间仅间隔几毫秒。这些消息将包括指示第二处理器应当执行所请求功能的时间量的持续时间,所请求功能例如是打开静音10秒。这些持续时间常常超过两个或更多相继消息之间的时间量。因为第二处理器通常是低功率的,计算能力不如第一处理器那样强,所以如果在较早消息的持续时间到期之前接收到较晚消息,较晚消息将取代较早消息。于是,需要一种消息设计,能够在高端处理器和低端处理器之间进行更高效率且准确的通信。
这里提供的背景知识描述目的是大致介绍本公开的背景。本文提到的发明人的工作,在本背景部分中描述的程度上,以及在提交时本来不足以充当现有技术的描述各方面,既不明确地,也不暗示地作为本公开的现有技术收入本文。
发明内容
考虑到上述问题,本公开的目的是提供一种用于控制第一处理器和第二处理器之间的消息流量的系统。本公开的另一目的是提供一种用于控制第一处理器和第二处理器之间的消息流量的方法。
在一个方面中,公开了一种配置成控制第一处理器和第二处理器之间的消息流量的系统。第一处理器配置成执行多个预定任务。为每个任务分配唯一的任务标识符。第一处理器还配置成代表多个任务之一产生输入消息。输入消息包括用于供第二处理器控制系统的一个或多个外设装置的输入指令以及表示要执行的发往第二处理器的输入指令的最小时间量的输入持续时间。该系统还包括消息控制模块,其配置成从第一处理器接收指向第二处理器的输入消息并基于接收的输入消息和先前接收的输入消息维持消息历史。消息历史表示要打开系统的哪些外设装置以及多个任务中的哪些任务请求打开外设装置。消息控制模块还配置成产生输出消息,所述输出消息包括基于所述消息历史的针对第二处理器的输出指令以及基于所述消息历史的输出持续时间。所述第二处理器配置成接收所述输出消息并在与所述输出持续时间对应的时间量内执行所述输出指令。
在本公开的另一方面中,公开了一种用于控制第一处理器和第二处理器之间的消息流量的方法。第二处理器代表第一处理器执行的多个预定任务控制一个或多个外设装置。该方法包括从第一处理器上执行的多个任务之一接收指向第二处理器的输入消息。输入消息包括用于供第二处理器控制一个或多个外设装置的输入指令以及表示要执行的发往第二处理器的输入指令的最小时间量的输入持续时间。该方法还包括基于接收的输入消息和先前接收的输入消息维持消息历史。消息历史表示要打开系统的哪些外设装置以及多个任务中的哪些任务请求打开外设装置。该方法包括产生输出消息,所述输出消息包括基于所述消息历史的针对第二处理器的输出指令以及基于所述消息历史的输出持续时间。该方法还包括向第二处理器发送输出消息。
从下文中提供的详细描述,本公开更多的应用领域将变得显而易见。应当理解,详细描述和具体范例仅出于例示的目的,并非意在限制本公开的范围。
附图说明
从参考附图做出的以下详细描述,本公开的以上和其他目的、特征和优点将变得更加明显。在附图中:
图1是示出了具有第一和第二处理器的示范性系统的部件图;
图2是示出了具有消息流量控制的从第一处理器向第二处理器发送的消息范例的图示;
图3A-D是示出了具有流量控制模块的系统的示范性实施例的部件图,流量控制模块控制第一处理器和第二处理器之间的流量;
图4是示出了流量控制模块利用的示范性数据结构的图示;以及
图5A和5B是示出了由流量控制模块执行的示范性方法的流程图。
具体实施方式
这里描述了用于第一和第二处理器之间高效率通信的方法和系统。该系统包括通信流量模块,该模块从第一处理器接收指向第二处理器的串行消息并将来自针对第二处理器的消息的指令汇集成输出消息。
图1示出了示范性系统100。要认识到,可以在单个装置中或多个装置间并入该系统。例如,系统100可以是具有与第二处理器112通信的第一处理器110的装置或与具有第二处理器112的第二装置通信的具有第一处理器110的第一装置。第二处理器112配置成第一外设装置114、第二外设装置116,直到第N外设装置118。要指出的是,术语外设装置包括由第二处理器112控制的装置或系统的任何部件。
在一些实施例中,第一处理器110为高端处理器,第二处理器为低端处理器。例如,在远程信息处理装置中,第一处理器可以用于执行应用、处理GPS信号并执行CDMA通信。远程信息处理装置中的低端处理器可以配置成处理外部I/O信号,控制功率管理外设装置并控制远程信息处理装置的其他外设装置,例如麦克风、扬声器和LED。典型地,高端处理器将更加昂贵,并比低端处理器需要更多功率。要认识到,以下公开可以应用于各种各样的系统和装置,不限于远程信息处理装置。例如,第一处理器110可以是第一计算机的处理器,第二处理器112可以是第二计算机的处理器,其中第二计算机是第一是计算机的从属计算机。
第一处理器110将执行一个或多个任务。任务是第一处理器110负责执行的系统的任何功能。例如,在远程信息处理装置的范例中,任务可以包括控制远程信息处理装置的显示,控制远程信息处理装置的音频系统,以及控制远程信息处理装置的GPS。为了完成任务,第一处理器110将指示第二处理器112执行特定指令。例如,第一处理器110可以指示第二处理器打开电源,抑制重置,使扬声器系统静音和打开LED,使得任务要求在特定持续时间内设置上述状态。将这些指令组合成单个消息。下文例示消息的示范性结构:
Message_Format{
Byte 0:Message ID
Byte 1:UART wakeup
Byte 2:Reset suppression
Byte 3:Mute Status
Byte 4:LED Status
Byte 5:Duration of Message
}
要认识到,以下结构是消息格式的范例,任何其他适当的消息格式也是适用的。
在执行不同应用的各种任务时,第一处理器110将向第二处理器112产生不同的消息。第二处理器112将接收和执行指令。图2示出了没有消息流量控制的串行通信范例。在该范例中,第一处理器110正通过通信路径214,例如总线、无线通信链路或有线通信链路向第二处理器112发送三个消息220、230、240。在该范例中,消息A 220作为任务A的一部分,是从第一处理器110向第二处理器112发送的。消息B 230在200ms之后,作为任务B的一部分发送。消息C 240作为任务C的一部分,在500ms之后发送。消息A 220请求将UART设置为OFF,将重置抑制设置为ON,将静音设置为OFF,且消息具有50秒的持续时间。消息B 230请求将UART设置为ON,将重置抑制设置为OFF,将静音设置为OFF,且消息具有10秒的持续时间。消息C 240请求将UART设置为ON,将重置抑制设置为OFF,将静音设置为OFF,且消息具有10秒的持续时间。在没有消息流量控制的情况下,在消息C 240之前700ms接收到消息A 220,将在第二处理器112接收时执行消息C 240。于是,尽管需要重置抑制的任务A在至少50秒后关闭,但将重置抑制设置为OFF。
为了解决具有消息流量控制的问题,将由流量控制模块汇集从第一处理器110到第二处理器112的消息。图3A-3C示出了具有流量控制模块320的系统100的示范性配置。在图3A中,在第一处理器110上集成流量控制模块320。第一处理器110在执行第一应用322、第二应用324,直到第N应用326。每个应用都执行一个或多个预定任务,其中每个预定任务都具有标识符。在应用的任务需要打开一个或多个外设装置114、116和118时,应用将产生要发送到第二处理器112的消息。第二处理器112包括控制器328,控制器328接收具有指令集的消息并基于指令控制外设装置114、116和118。基于指令,控制器328打开或关闭外设装置。
在控制器328从任务接收消息之前,由流量控制模块320接收指令。流量控制模块320分析消息中所含的指令并维护消息历史,消息历史记录着哪些任务请求要打开或仍然保持打开哪些周边装置。基于消息历史,向第二处理器112的控制器328发送输出消息。
在图3B中,在专用微处理器(未示出)上集成流量控制模块320。流量控制模块320以与上述类似的方式工作。在图3C中,在第二处理器112上集成流量控制模块320,并按照与上述类似的方式工作。
在图3D中,流量控制模块320集成于专用微处理器(未示出)上并方便从执行M个应用322、324和326的M个不同处理器110、312和314向第二处理器112发送的消息流量。在本范例中,流量控制模块320从处理器110、312和314的每个接收消息并维护消息历史,消息历史记录着哪些任务请求打开或仍然保持打开哪些特定周边装置。要认识到,流量控制模块320能够从不同数量的处理器、应用和任务接收消息。此外,要认识到,在这种配置中,处理器111、112、312和314可以分布在多个装置或计算机上,使得处理器通过通信网络通信。
在上述实施例中,流量控制模块320从应用接收输入消息,基于接收的消息维持消息历史,并基于消息历史产生包含指令的输出消息,指令要由第二处理器312执行。图4示出了输入消息410、输出消息450和消息历史430的示范性结构。
输入消息410由服务任务标识符412、多个外设字段414、416、418和420以及持续时间字段422构成。任务标识符字段412表示发出消息的任务。能够发出消息的一组任务是表示能够请求打开一个或多个外设装置的所有任务的预定有限集,其中为每个任务分配唯一的任务标识符。于是,任务字段412将指明哪个任务发出该消息。在范例中,输入消息正指示第二处理器打开第一和第N个外设装置。
外设字段412、414、416和418表示任务发出的指令,使得如果特定字段中存储了1,那么任务曾请求至少在持续时间字段422指定的时间量内打开由特定字段表示的外设装置。要认识到,由多个外设字段的某外设字段表示受第二处理器112控制的每个外设装置或部件。在范例中,消息历史的外设字段表示要打开第一、第三和第N周边装置。
持续时间字段422表示要使外设字段中指出的周边装置保持打开的时间量。要认识到,每项任务都将要求第二处理器112在可变长度的时间内保持特定周边装置打开。在图4的范例中,任务A请求第二处理器112将第一周边装置和第N周边装置打开至少15秒。
消息历史430包括多个外设字段434、436、438和440和持续时间字段442。消息历史还可以包括任务字段432,指出发出最近指令的任务。在消息历史430中,每个外设字段434、436、438和440都具有对应的任务数组444、446、448和449,其中每个请求的任务字段指明哪些特定任务当前正请求将对应的周边装置设置为打开。于是,其余的任务数组444、446、448和449表示请求将对应周边装置设置为打开的任务汇集。例如,在提供的范例中,任务A和任务B请求将第一周边装置设置为打开,同时仅由任务B请求将第三周边装置设置为打开,仅有任务A请求将第N周边设置为打开。
持续时间字段表示汇集所接收消息的持续时间。例如,如果较旧的消息请求持续时间为18秒,更近的消息请求将持续时间设置为15秒,那么持续时间字段将被设置为18秒。要指出的是,流量控制模块320包括跟踪剩余的用于汇集消息的时间的计时器,其中计时器基于消息历史430的持续时间字段442中指出的持续时间。
输出消息450由多个外设字段454、456、458和460以及持续时间字段462构成。此外,输出消息450可以包括任务字段452。流量控制模块320将基于消息历史430的外设字段442、444、446和448填充输出消息450的外设字段454、456、458和460。于是,如果标记了消息历史430的外设字段442、444、446和448,那么也将标记输出消息450的对应外设字段454、456、458和460。流量控制模块320还将基于消息历史的持续时间字段442的值填充输出消息450的持续时间字段462。
要指出的是,输入消息410、输出消息450和消息历史430均可以由具有任务标识符要素和持续时间值要素的数据结构表示,该要素表示要打开哪些外设装置。此外,在消息历史中,外设要素可以包括请求任务数组和表示是否要打开外设装置的要素,其中请求任务数组中的每个要素表示可以由任务标识符标识的任务之一。或者,外设字段和请求的任务数组可以由比特串表示,其中比特的位置对应于外设字段的特定外设装置和请求任务数组中的特定任务。
图5A和5B表示可以由流量控制模块320执行的示范性方法。流量控制模块320将从执行特定任务的应用接收输入消息,如在步骤512所示。例如,GPS系统可以发出要由第二处理器112执行的一组指令并将向流量控制模块320发送输入消息。接收的输入消息将包括标识发出消息的任务的任务标识符、多个外设字段,每个字段表示是否应该打开指定的外设装置以及表示应当将指定外设装置打开的最小时间量的持续时间。如上所述,可以由比特串表示多个外设字段,其中每个比特的位置表示特定的外设装置。例如,串0101表示打开第一和第三外设装置,关闭第二和第四外设装置。
如上所述,流量控制模块320维护计时器。计时器用于判断剩余多长时间可用于第二处理器112执行的指令集。例如,如果向第二处理器112发送要求10秒持续时间的输出消息且第二处理器112没有比先前消息剩余的更大的时间量,那么将时间设置为10秒,使得在向第二处理器112发送输出消息时的时刻立刻开始倒计时。在从任务接收到新消息时,流量控制模块320将判断计时器是否有任何剩余时间,如在步骤514所示。如果计时器超时,那么重置消息历史,如在步骤516所示。可以通过清空消息历史中的所有值,即将所有值设置为零来重置消息历史。
在检查过计时器之后,流量控制模块320将判断接收的输入消息是否表明打开任何外设装置。如在步骤518所示,流量控制模块320将计数器初始化为0。如上所述,可以布置外设装置的字段,使得字段之间的关系是预定的,由此计数器值表示特定的外设字段。然后,流量控制模块320将判断接收的输入消息是否请求打开与计数器值对应的外设装置,如在步骤520所示。流量控制模块320能够判断是否将与上述输入消息的外设字段中的计数器值对应的比特设置为一。这可以通过如下操作来完成:执行比特偏移1操作,在其上将1向右偏移计数器的值,并利用表示多个外设字段的比特串和比特偏移值执行“与”操作。
如果要将被访问的外设装置设置为打开,那么流量控制模块320将通过将位于计数器值的外设装置字段设置为1来更新消息历史。此外,在请求任务数组中,将发出消息的任务设置为1。请求任务数组可以是比特串,其中每个比特代表特定任务。例如,如果第一任务请求将对应外设装置设置为1,就将请求任务数组设置为0000001。可以通过强制与请求任务数组中的任务标识符对应的比特为值1来设置请求任务数组。
如果接收的输入消息未请求打开被访问的外设装置,流量控制模块320将与请求任务数组中的任务标识符对应的比特设置为0,如在步骤524所示。
流量控制模块320将分析与计数器值对应的外设字段的消息历史以判断是否有任何任务请求将被访问的外设装置设置为打开,如在步骤526所示。这可以通过检查请求任务数组的值来完成。如果请求任务数组的值不是零,即,请求任务数组中至少一个比特被设置为1,那么更新消息历史的外设字段以指示打开被访问的外设装置或保持打开,如在步骤528所示。如果关闭被访问的外设装置或使其保持关闭,即请求任务数组的值等于零,那么在消息历史中将被访问的外设装置的外设字段设置为0。在任一种情况下,流量控制模块320都将更新计数器,如在步骤530所示,并检查是否需要访问更多外设字段,如在步骤532所示。如果仍然有要分析的更多外设装置,流量控制模块320返回到步骤520。在已经分析了所有外设字段时,然后流量控制模块320将产生输出消息,如在步骤534所示。
要认识到,上文是可以由流量控制模块320执行且还可以实施前述之变化的方法范例。此外,要认识到可以在多个步骤中执行上述步骤中的一些,而可以将上述其他步骤组合成单个步骤。
一旦分析了输入消息并设置了消息历史的请求外设任务,流量控制模块320将设置输出消息的值。图5B示出了用于设置输出消息的示范性方法。流量控制模块320将首先进行检查,以判断是否将打开或保持打开任何外设装置,如在步骤552所示。可以通过访问消息历史的外设字段来这样做。如果将消息历史中的所有外设字段设置为0,那么将输出持续时间设置为0,如在步骤554所示。
如果存在要打开的或保持打开的外设装置,那么流量控制模块320将设置输出持续时间值。将输出持续时间设置成等于输入消息中接收的持续时间或计时器中剩余的时间量中更大的值。于是,流量控制模块320将判断输入消息中接收的持续时间值是否大于计时器值,如在步骤556所示。如果计时器值大于接收的持续时间值,那么将输出持续时间设置为计时器的值,如在步骤558所示。如果接收的持续时间值大于计时器值,那么流量控制模块320将输出持续时间设置为等于接收的持续时间值,如在步骤560所示。
一旦设置了输出持续时间,流量控制模块320将判断输出持续时间是否等于0,如在步骤562所示。如果输出持续时间等于0,即没有要打开或保持打开的外设装置,那么清空输出消息的值,如步骤564中所示。通过将输出消息的外设字段和输出消息的持续时间字段的所有值设置为0来清空输出消息。
如果输出持续时间大于0,即要打开或保持打开至少一个外设装置,那么设置外发消息的值,如在步骤566所示。外发消息将包括多个外发的外设字段。流量控制模块320将输出消息的持续时间字段设置为等于输出持续时间,上文描述了其确定。流量控制模块320将输出消息的外设字段设置为等于消息历史的外设字段。要认识到,输出消息的外设字段可以是比特串,其中每个比特表示特定的外设装置。在这些情况下,可以通过拷贝表示消息历史的外设字段的比特串来设置输出消息的外设字段。流量控制模块320可以根据第二处理器112的需要,在消息历史中设置任何其他额外的数据。例如,流量控制模块320可以填充输出消息中的任务字段,指出提供所接收输入消息的任务。一旦发送输出消息的值,就将计时器设置成等于最终持续时间的值,如在步骤568所示。然后向第二处理器112发送输出消息,启动计时器,如在步骤570所示。
要认识到,上文是可以由流量控制模块320执行且还可以实施前述之变化的方法范例。此外,要认识到可以在多个步骤中执行上述步骤中的一些,而可以将上述其他步骤组合成单个步骤。
从上文可以认识到,使用消息历史确定曾请求打开或保持打开特定外设装置的所有任务的汇集列表。此外,消息历史跟踪记录所有指令的持续时间。通过维持消息历史,流量控制模块320能够代表第一处理器110上的所有运行应用有效地产生消息。
以下描述本质上仅仅是例示性的,绝不意在限制本公开、其应用或用途。为了清楚的目的,将在附图中使用同样的附图标记标识类似要素。应当理解,可以按照不同次序执行方法之内的步骤而不改变本公开的原理。
如这里使用的,术语模块可以指,作为部分属于,或包括专用集成电路(ASIC);电子电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器(共享,专用或组);提供所述功能性的其他适当部件;或一些或全部上述部件的组合,例如在芯片上系统中。术语模块可以包括存储由处理器执行的代码的存储器(共享,专用或组)。
上文使用的术语代码可以包括软件、固件和/或微码,可以指程序、例程、函数、类和/或对象。上文使用的术语共享表示可以使用单个(共享)处理器执行来自多个模块的一些或全部代码。此外,可以由单个(共享)存储器存储来自多个模块的一些或全部代码。上文使用的术语组表示可以使用一组处理器或一组执行引擎执行来自单个模块的一些或全部代码。例如,可以将处理器的多个内核和/或多个线程视为执行引擎。在各种实施方式中,可以在处理器上、多个处理器之间以及多个位置的处理器之间,例如并行处理布置的多个服务器间对执行引擎分组。此外,可以利用一组存储器存储来自单个模块的一些或所有代码。
可以由一个或多个处理器执行的一个或多个计算机程序实现这里所述的设备和方法。计算机程序包括存储在非瞬态有形计算机可读介质上存储的处理器可执行指令。计算机程序还可以包括存储的数据。非瞬态有形计算机可读介质的非限制性范例是非易失性存储器、磁存储器和光存储器。
可以通过多种形式实施本公开的宽泛教导。因此,尽管本公开包括特定范例,但本公开的真实范围不应受到这样的限制,因为在研究附图、说明书和以下权利要求时,其他修改对于本领域的技术人员而言将是显然的。
尽管已经参考其优选实施例描述了本公开,但要理解本公开不限于优选实施例和构造。本公开意在覆盖各种修改和等价布置。此外,尽管优选各种组合和配置,其他组合和配置,包括更多、更少或单个元件,也在本公开的精神和范围之内。
Claims (8)
1.一种配置成控制第一处理器(110)和第二处理器(112)之间的消息流量的系统,包括:
所述第一处理器(110)配置成执行多个预定任务,每个任务被分配唯一的任务标识符,并代表多个任务之一产生输入消息,其中所述输入消息包括:用于供所述第二处理器(112)控制一个或多个外设装置(114-118)的多个输入指令;以及表示要执行的发给所述第二处理器(112)的多个输入指令的最少时间量的输入持续时间;
消息控制模块(320),配置成:(i)从所述第一处理器(110)接收指向所述第二处理器(112)的输入消息;(ii)基于所接收的输入消息和先前接收的输入消息维持消息历史,其中所述消息历史表示哪个外设装置(114-118)要打开以及所述多个任务中的哪个任务请求打开所述外设装置(114-118);以及(iii)产生输出消息,所述输出消息包括基于所述消息历史的针对所述第二处理器(112)的多个输出指令以及基于所述消息历史的输出持续时间;以及
所述第二处理器(112)配置成接收所述输出消息并在与所述输出持续时间对应的时间量内执行所述多个输出指令。
2.根据权利要求1所述的系统,
其中所述消息历史还包括多个外设字段,并且
其中每个外设字段对应于相应的外设装置(114-118),使得在要打开所述外设装置(114-118)之一时,对应的外设字段表示要打开所述外设装置(114-118)的所述一个。
3.根据权利要求2所述的系统,
其中每个外设字段具有与其关联的请求任务数组,
其中特定外设字段的特定请求任务数组表示所述多个预定任务的哪一个或哪些任务当前正在请求打开的所述特定外设字段的特定外设装置(114-118),并且
其中特定任务数组的每个要素对应于所述多个预定任务的不同预定任务。
4.根据权利要求3所述的系统,
其中,如果所述特定任务数组的一个或多个要素当前正在请求打开所述特定外设装置(114-118),那么所述特定外设字段表示要打开所述特定外设装置(114-118)。
5.根据权利要求1-4的任一项所述的系统,还包括:计时器,其表示针对最新接收的输出消息的剩余时间量,
其中在所述第二处理器(112)接收新输出消息时更新所述计时器。
6.根据权利要求5所述的系统,
其中所述消息控制模块(320)判断所述计时器表示的剩余时间量和输入持续时间中哪个值更大并将所述输出持续时间设置为等于更大的值。
7.根据权利要求5所述的系统,
其中所述消息控制模块(320)设置所述消息历史中的所有的值以表示在所述计时器表明没有剩余时间时所述外设装置(114-118)是关闭的。
8.一种用于控制第一处理器(110)和第二处理器(112)之间的消息流量的方法,其中所述第二处理器(112)代表所述第一处理器执行的多个预定任务控制一个或多个外设装置(114-118),所述方法包括:
接收指向所述第二处理器(112)的源自所述第一处理器(110)上执行的多个任务之一的输入消息,其中所述输入消息包括:用于供所述第二处理器(112)控制一个或多个外设装置(114-118)的输入指令;以及表示要执行的发给所述第二处理器(112)的输入指令的最小时间量的输入持续时间;
基于所接收的输入消息和先前接收的输入消息维持消息历史,其中所述消息历史表示要打开哪些外设装置(114-118)以及所述多个任务的哪些任务请求打开所述外设装置(114-118);
产生输出消息,所述输出消息包括基于所述消息历史的针对第二处理器(112)的输出指令以及基于所述消息历史的输出持续时间;以及
向所述第二处理器(112)发送所述输出消息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/077,689 | 2011-03-31 | ||
US13/077,689 US8751774B2 (en) | 2011-03-31 | 2011-03-31 | Method and system for controlling message traffic between two processors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102737006A CN102737006A (zh) | 2012-10-17 |
CN102737006B true CN102737006B (zh) | 2014-11-05 |
Family
ID=46928904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210082262.8A Expired - Fee Related CN102737006B (zh) | 2011-03-31 | 2012-03-26 | 控制两个处理器之间消息流量的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8751774B2 (zh) |
JP (1) | JP5838865B2 (zh) |
CN (1) | CN102737006B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9612893B2 (en) | 2015-05-11 | 2017-04-04 | Silicon Laboratories Inc. | Peripheral watchdog timer |
US20240259410A1 (en) * | 2023-02-01 | 2024-08-01 | Mastercard International Incorporated | Systems and methods for triangular timestamp transformation in computer messaging |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7362458B2 (en) * | 2000-02-22 | 2008-04-22 | Sharp Kabushiki Kaisha | Usage reservation system for networked peripherals |
CN101946241A (zh) * | 2008-02-14 | 2011-01-12 | 国际商业机器公司 | 监视输入/输出操作的数据处理 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6412365A (en) * | 1987-07-06 | 1989-01-17 | Ricoh Kk | Interface device |
US5371850A (en) * | 1992-04-20 | 1994-12-06 | Storage Technology Corporation | Interprocess message queue |
US5724558A (en) * | 1995-07-31 | 1998-03-03 | Microsoft Corporation | System and method for dynamic data packet configuration |
JP3991443B2 (ja) * | 1998-04-27 | 2007-10-17 | ソニー株式会社 | タスク切り替え方法及びデータ処理装置 |
US6999994B1 (en) * | 1999-07-01 | 2006-02-14 | International Business Machines Corporation | Hardware device for processing the tasks of an algorithm in parallel |
EP1489488A3 (en) * | 2003-06-20 | 2009-07-01 | Ricoh Company, Ltd. | Method and apparatus for providing a service for sharing a printing environment |
US7289016B2 (en) * | 2004-05-25 | 2007-10-30 | Eaton Corporation | Portable timer apparatus, home system and method of timing for an object |
JP2006065803A (ja) * | 2004-08-30 | 2006-03-09 | Canon Inc | 情報処理装置及びその制御方法、プログラム |
JPWO2006082782A1 (ja) * | 2005-02-02 | 2008-06-26 | サイレックス・テクノロジー株式会社 | 周辺機器利用方法および周辺機器サーバ |
JP4646741B2 (ja) * | 2005-08-30 | 2011-03-09 | キヤノン株式会社 | 印刷システム、印刷装置、画像処理装置及びそれらの制御方法、プログラム |
JP4621103B2 (ja) * | 2005-10-12 | 2011-01-26 | キヤノン株式会社 | 画像形成装置および画像形成装置の制御方法 |
JP2007304969A (ja) * | 2006-05-12 | 2007-11-22 | Nec Corp | 情報処理装置、情報処理方法及び情報処理用プログラム |
JP4795183B2 (ja) * | 2006-09-26 | 2011-10-19 | キヤノン株式会社 | 処理装置及びその制御方法、並びにプログラム |
JP2009026202A (ja) * | 2007-07-23 | 2009-02-05 | Canon Inc | ネットワークプリンタのoff制御 |
JP2009093622A (ja) * | 2007-07-31 | 2009-04-30 | Seiko Epson Corp | ポスティングサーバ、送信端末、ポスティングサーバ制御方法及び送信端末制御方法 |
US8099512B2 (en) * | 2007-10-19 | 2012-01-17 | Voxer Ip Llc | Method and system for real-time synchronization across a distributed services communication network |
US8539485B2 (en) * | 2007-11-20 | 2013-09-17 | Freescale Semiconductor, Inc. | Polling using reservation mechanism |
US8548607B1 (en) * | 2008-11-03 | 2013-10-01 | Autani Corp. | Automation system network management, architectures, and methods and applications thereof |
-
2011
- 2011-03-31 US US13/077,689 patent/US8751774B2/en active Active
-
2012
- 2012-03-07 JP JP2012050829A patent/JP5838865B2/ja not_active Expired - Fee Related
- 2012-03-26 CN CN201210082262.8A patent/CN102737006B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7362458B2 (en) * | 2000-02-22 | 2008-04-22 | Sharp Kabushiki Kaisha | Usage reservation system for networked peripherals |
CN101946241A (zh) * | 2008-02-14 | 2011-01-12 | 国际商业机器公司 | 监视输入/输出操作的数据处理 |
Also Published As
Publication number | Publication date |
---|---|
CN102737006A (zh) | 2012-10-17 |
US8751774B2 (en) | 2014-06-10 |
JP5838865B2 (ja) | 2016-01-06 |
JP2012216190A (ja) | 2012-11-08 |
US20120254596A1 (en) | 2012-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101567013B (zh) | 一种etl调度的实现方法及装置 | |
Subramanian et al. | A simulation—optimization framework for addressing combinatorial and stochastic aspects of an R&D pipeline management problem | |
CN107407918B (zh) | 利用app扩展可编程逻辑控制器 | |
US7732949B2 (en) | System for method of predicting power events in an intermittent power environment and dispatching computational operations of an integrated circuit accordingly | |
US20070027969A1 (en) | Sensor device, server node, sensor network system, and method of controlling sensor device | |
CN103270466A (zh) | 经由对定时器相关任务的协调和选择性操作的功率管理 | |
EP2926500B1 (en) | Method for configuring an m2m system | |
CN105630588A (zh) | 一种分布式作业调度方法和系统 | |
CN109656587A (zh) | 一种设备固件的升级方法及装置 | |
CN103403634A (zh) | 控制装置以及系统程序 | |
CN102663543A (zh) | 一种用于企业数据统一平台的调度系统 | |
EP3608779A1 (en) | Method for processing a predetermined computing task by means of a distributed, vehicle-based computing system as well as computing system, server device, and motor vehicle | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN102737006B (zh) | 控制两个处理器之间消息流量的方法和系统 | |
CN103744730A (zh) | 一种任务调度方法和装置 | |
CN110109741A (zh) | 循环任务的管理方法、装置、电子设备及存储介质 | |
EP2278454A1 (en) | Method for correct-by-construction development of real-time-systems | |
CN103327062A (zh) | 提供企业信息技术生命周期工具同步平台的系统和方法 | |
KR20210049139A (ko) | 헬스 케어 제공자 데이터 시스템들 프로세싱 및 분석 | |
US10250034B2 (en) | Distributed utility resource planning and forecast | |
CN113626209A (zh) | 一种应用于交易领域的基于状态机的事件驱动方法和系统 | |
CN114518797A (zh) | 信息推送方法、装置、可穿戴设备及存储介质 | |
EP4369193A1 (en) | Job schedule quality prediction and job scheduling | |
CN106845673B (zh) | 电力系统的供电方法和装置 | |
CN117957531A (zh) | 用于多个线程的序列监测的方法和设备 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141105 Termination date: 20210326 |
|
CF01 | Termination of patent right due to non-payment of annual fee |