在时间触发的分布式嵌入式系统中任务的可扩展调度的制作方法

文档序号:6567899阅读:170来源:国知局
专利名称:在时间触发的分布式嵌入式系统中任务的可扩展调度的制作方法
技术领域
本发明总体上涉及用于在分布式时间触发的嵌入式系统中调度 任务的过程,并且尤其涉及用于使用通用的通信总线在分布式实时 的时间触发的嵌入式系统中调度处理器任务和消息任务的过程,其 中所述系统中的几个处理器彼此被去耦合以便提供调度可扩展性。
背景技术
嵌入式系统在本领域中是已知的,其包括用于在时间触发的通信 总线上彼此之间发送数字消息的多个分布式处理器。所述系统使用 被分配给每个单个处理器的软件任务。由处理器所执行的任务在通 信总线上在处理器之间发送消息。因为所述总线是时间触发的,所 以在所述总线上一次只发送一条消息。所述任务是周期性的并且具 有硬性截止时间,所述截止时间如果不被满足的话可能会造成灾难性结果。例如,在汽车线路驾驶(steer-by-wire )嵌入式系统中, 来自系统中各个处理器的输出具有严格的截止时间是必要的。对于 其中一个任务可能必须在执行另一任务之前(可能在单个执行周期 内)执行的任务来说还存在在先约束。因此,有必要使所述系统适 当地调度在每个处理器中的任务执行以及在总线上的任务消息传 输,使得满足所有截止时间并且满足所有约束。
希望在嵌入式系统中所使用的调度是可扩展的,使得如果在系统 初始执行之后需要改变或者开发升级,诸如添加或删除处理器和/或 添加或删除任务,那么原始的调度不受影响。例如,如果在一个处 理器改变任务集或者把新的处理器添加到系统,那么希望此改变不 会影响其它处理器的任务调度以及消息传输。如果可以在不影响传 输现有消息的情况下在总线上发送新消息,那么不需要任何改变来 调度已经处于使用中的其它处理器。否则,可能必须以很大代价来 重新编程总线调度。

发明内容
依照本发明的教导,公开了一种用于在分布式实时的时间触发的 嵌入式系统中调度处理器任务和消息的调度算法。所述调度算法首 先在一个传输周期期间标识要在通信总线上发送的每个消息的最早 开始传输时间和最晚结束传输时间以便确定消息传输时间窗。然后 所述算法根据每个消息的传输时间窗来标识要在每个处理器中执行 的每个任务的任务执行时间窗。根据任务执行时间窗,然后所述算 法导出所述系统中每个处理器的使用请求函数,其中所述使用请求 函数是添加要由所述处理器来执行的每个任务的使用请求。根据每 个处理器的使用请求函数,所述算法计算每个处理器的峰值使用请 求和每个处理器的平均使用请求。然后所述算法通过使每个处理器 的峰值使用请求和平均使用请求最小化来优化消息传输时间窗。根 据所优化的消息传输时间窗,然后所述算法向由每个单个处理器所 执行的任务和在总线上所发送的消息提供独立的调度,其中所述处 理器彼此去耦合并且与所述总线去耦合。
一旦在通信总线上确定为每个消息所优化的消息传输时间窗,所 述算法就可以通过有选择地分配所述消息的时间窗内的时隙来使调 度更适应稍后升级,使得可以在传输周期中把将来的消息添加到在 所述消息之间的时隙。在此实施例中,所述算法首先根据已知的调 度技术例如使用最早的截止时间首先调度过程来确定初始消息调 度,其中向所述消息分配在它们传输时间窗内的确定时隙。然后所 述算法在传输周期内尽可能均匀地重新分配消息,但是仍然把所述 消息维持在它们传输时间窗中的时隙内。在时间窗内重新分配消息 可以包括对用于提供优化模型的二次优化问题求解。二次优化问题 的解的实数被向下舍入到最接近的整数,使得所述消息位于在它们 所分配的时间窗中的时隙内,以使未使用的时隙在所述消息之间可 用以便提供将来的可扩展性。
结合附图,根据以下描述和所附权利要求,本发明的附加优点和 特征将变得更加清楚。


图l是包括多个连接到通信总线的处理器的嵌入式系统的图; 图2是依照本发明实施例示出用于在图l所示出的系统中调度消息和任务的操作的流程图3是在调度图1所示系统中用于处理器的使用请求函数的图4是依照本发明另 一实施例示出用于在图l所示出系统的时间触发总线上在传输周期内的时隙中调度消息的过程的流程图5是示出用于依照本发明的调度算法把消息分配到时隙的技术的图。
具体实施例方式
针对用于在嵌入式系统中在通信总线上调度处理器任务和消息 传输的过程以便增加系统可调度性和可扩展性的本发明实施例的以 下论述,实质上仅仅是示例性的,并且决不意在限制本发明或其应 用或使用。
图1是上述类型的嵌入式系统10的平面图,包括被编程来执行多 个任务16的多个处理器12和14。在一个例子中,每个处理器12和14 分别接收来自适当传感器18和20的信号,以用于特定的应用。另外, 处理器12和14分别控制致动器22和24,以用于特定的应用。在时间 触发的通信总线26上在处理器12和14之间发送由处理器12和14所执 行的各个任务16的结果来作为消息28。
在此例子中,处理器12中的任务t11接收来自传感器18的信号并 且在总线26上向处理器14中的任务t21发送消息m11-21, 所述任务t21向 致动器24发布命令。同样,处理器14中的任务t21接收来自传感器20的信号并且在总线26上向任务tl2发送消息m11 —12, 所述任务tl2向致动器22发布命令。对于数据感测和命令发布来说存在端到端的截止时 间。依照本发明,调度处理器12和14的任务执行和总线26上的消息 传输,使得满足所有截止时间,满足所有在先的约束,诸如t11 —m11-21—t21,以及所产生的调度是可扩展的以用于稍后的升级。
用于上述类型嵌入式系统的已知调度技术具有调度合壳扩展性的限制,这是因为处理器中一的任务调度被耦合,即,所有处理器任务被一起调度。此耦合是在处理器12和14中的任务16之间先后关系 的结果。本发明提出使嵌入式系统10中的处理器12和14去耦合,以 便通过借助时间分片(即分配具体时间窗用于在总线26上传输消息 28)强制先后关系来提供任务调度和消息调度,使得可以彼此独立
地执行处理器12和14中的任务16的调度。换句话说,调度算法首先 在处理器12和14之间标识要在总线26上发送的消息28的优化时间 窗,继而根据何时发送所述消息28,来确定必须何时执行所述任务 16来产生消息28。作为使处理器12和14去耦合结果的此分布式调度 允许单处理器调度,所述单处理器调度可以被有效地解决。
确定用于提供系统可调度性和可扩展性的消息传输的时间窗,同 时满足计时要求和在先约束。时间窗确定是包括使目标函数最小化 但是满足在先约束的优化问题,这可以通过许多现有的算法来解 决。主要的挑战是如何获得用于可调度性和可扩展性的目标函数。 依照本发明一个实施例,可调度性和可扩展性与峰值处理器使用请 求和平均处理器使用请求相关。
对于下述计算来说,存在m个处理器和N个任务,其中任务16已经 被分配给处理器12和14。任务集由= w,乂 = /,.., "^定义,
其中任务(%, 乂 = /,.. ,被分配给处理器Pi并且i;;:,",iv。对于每
个任务tu来说,Aij是其到达时间,Cij是其最糟情况执行时间,Dij是 其截止时间,并且Tu是其周期。执行任务16的次序具有已知的先后 关系。先后关系被表示为"tij在tw之前"(也被标示为tu—tu), 这意味着在一个周期内任务tij必须在任务tu之前执行。必须调度每 个处理器12、 14的任务执行,使得满足所有截止时间,满足所有在 先约束并且所导出的调度是可扩展的以用于稍后升级。
本发明的任务和消息调度是基于以下假设的,在任务16之间没有 通信延迟,即任务tij的输出可以在没有延迟的情况下作为输入被发 送到另一任务tu,并且所有任务16具有相同的周期,即对于所有的i 和j来说Ti尸T。第一假设源于这样的事实,通信总线26可以被建模为 特定的处理器并且在总线26上所发送的消息28可以被视为要在总线 处理器上执行的任务。例如,如果由于先后关系"tu在tu之前"因 此任务tij必须在总线26上向任务tu发送消息mij-u,那么所述总线26 可以被视为处理器Pb并且消息mij-u被视为要在pb上执行的任务。其到 达时间可以与tu的到达时间相同,其执行时间可以等于其传输时 间,其截止时间可以与h!的截止时间相同并且其周期可以与tu的周 期相同。先后关系"tu在t"之前"还由"tij在nhj-u之前,,以及"mij— u在tu之前"代替。
提供了第二假设,这是因为具有不同周期的任务始终可以被变换 为具有相同周期的任务。如果任务具有不同的周期,那么只需要解 决对这种时间间隔的调度,其中所述时间间隔等于所有任务的周期 的最小公倍数。因此,在间隔内的每个任务的每次调用都被当做新 任务,并且所有新任务具有等于所有老任务的周期的最小公倍数的 相同周期。于是不去解决具有不同周期的老任务集的调度,而可以 解决具有相同周期的新任务集的调度。
为了解决上述可扩展的分布式调度,使用时间分片方式来去耦合对处理器12和14的调度。依照去耦合方法,对于总线26上的每个消 息mij-u来说,分配消息时间窗[bij-u, eij-u]以供其传输使得借助时间 窗分配来满足在处理器12和14之间的所有在先约束,并且满足所有
必要的计时要求。特别地是,定义以下约束
bij-kl≥Bij-kl (1)
eij-kl-bij-kl≥Cij-kl (2)
eij-kl≤ Eij-kl (3)
<formula>complex formula see original document page 10</formula> 对于所有K≠i和h≠i (4)
在方程式(1) - (4)中,Bij-u和Eu-H分别是传输消息Dhj-u的最早开始时间和最晚结束时间。借助下述算法来获得Bij-u和Eij-u,所述算法确保在imj-u之前相关性链中的所有任务在Bij-"之前并且在消息到达之后完成,并且在mij-u之后相关性链中所有任务在Eij-u之后并且在消息截止时间之前完成。Cij-"是消息nhj—u的传输时间。方程式(2)表明时间窗[bu-H, eu—kl]比Cu-u更长^吏得在时间窗内发送消息flhj—u。c/^""是在t"和t"之间处理器Pi中的第q个任务链,"—LUw^^^ — ^+' — v—U-方程式(4 )表明在消息m"-" 和imj-ku之间在处理器pi中的任务依照相关性关系在时间窗mhv—"和nhj—ku之间的时间窗[ehV-u, bu-ku]内完成。注意,bij-u和eij-ki并非是nhj—ki传 输的精确开始时间和完成时间,并且[bij-kl, eu—u]只是在其内调度消 息mij-ki传输的时间窗,因jt匕bij-ki和eij-ki 可以^f皮视为消息nuj-u新的到达 时间和新的截止时间。
图2是依照本发明示出用于确定嵌入式系统10的各个消息28和任务16的调度的算法操作的流程图50。在框52,所述算法首先标识了 要在总线26上发送的每个消息的最早开始传输时间Bij和最晚结束传 输时间Eij。可以使用以下算法来获得每个任务16和每个消息28的最 早开始时间Bij和最晚结束时间Eij,用于确保在相关性链中所有在先 任务能够在时间Bij之前以及在它们的到达时间之后完成,并且在所 述相关性链中所有随后继务能够在时间Eu之后以及在它们的截止时 间之前完成。在此算法中,总线26被视为处理器并且消息mij被视为 任务。
从没有后继的任务开始并且在每个步骤处理其后继已经被处理 的那些任务
<formula>complex formula see original document page 11</formula>
设EKij = {til|ty→....→tij},即处理器pi上tij的后继任务集。假定对于EKij 中的任务来说存在h个不同的最晚结束时间,被标示为E>E2>…>Eh。 然后借助以下过程计算Gij:
<formula>complex formula see original document page 11</formula>
从没有前趋的任务16开始并且在每个步骤处理其前趋已经被处 理的那些任务16:
<formula>complex formula see original document page 11</formula>
设EKij = {til|ty→....→tij},即处理器pi上tij的前趋任务集。假定对于Bku 中的任务来说存在h个不同的最早开始时间,被标示为B1<B2<.<Bh。 然后借助以下过程计算Fij:
<formula>complex formula see original document page 11</formula>
在用于获得每个任务16和消息28的最早开始时间和最晚结束时 间的以上算法中,确定Gu以确保处理器pi的每个后继任务tij能够完成 并且满足其自己的最晚结束时间。因为在后继任务之中可能存在偏 序,必须特别注意当计算Gij时那些任务在相同的处理器12或14中执 行的事实。例如,假定存在任务tij的两个后继任务tu和ti2,并且在 tn和ti2之间没有相关性。设E产4并且E产3分别是tu和ti2的最晚结束时 间,并且Ci产2和C"-l是它们各自的最糟情况执行时间。通过设Gi产min (E广C", E广CiO = 2,于是它不正确。因为两个任务的总执行时间 为三并且时间窗是E广Gi尸2,显然从时间Gi产2开始,tu和t"在相同的 处理器12或14上在它们的结束时间之前都无法结束。当考虑到那些 任务由相同的处理器12或14执行时,在Gij的以上算法中所给出的过 程是正确的。易于确定通过按照所述过程,对于以上例子来说Gi尸O 是正确的。依照以上算法还向Fij提供了类似的过程。
然后在框54,所述算法根据消息28的传输时间窗来为每个处理器 12、 14标识用于每个任务16的执行时间窗,其消息将在总线26上被 发送。在一个实施例中,以下算法根据任务16的结果的消息传输时 间窗(特别是wbij和weij)来计算用于在处理器12和14中执行单个任 务的时间窗。对于总线26上的消息任务mij-u来说,wbij-k产bij-"并且 weij-n-eu-ki,并且对于每个非总线处理器pi上的任务tij来说,从在处 理器Pi上没有后继的任务16开始并且在每个步骤处理那些在pi上的 后继已经被处理的任务16。
<formula>complex formula see original document page 12</formula>否则
其中<formula>complex formula see original document page 12</formula>。
对于每个非总线处理器Pi上的任务tij来说,从在处理器pi上没有
前趋的任务16开始并且在每个步骤上处理那些其前趋在处理器pi上 已经被处理的任务16:
<formula>complex formula see original document page 12</formula>
在以上计算weu中,当任务tij在其它处理器12、 14上没有任何直
接后继时,还可以使用<formula>complex formula see original document page 12</formula>代替在算法中所使用的那些。在算法中此判定的意图在于当任务tij在其它处理器12和14上没有任何直接后继时,把所述任务tu与其在 相同的处理器12或14上的后继相组合,即所述任务tn作为用于计算 使用请求函数的一个超级任务,其通过试图向两个任务分配相同的 使用窗来提供。因为主要目的是为总线26上的消息标识时间窗,使 得可以使每个处理器12、 14上的调度去耦合,所以此时并不调度每 个单个任务16。在优化用于所述消息的时间窗之后执行在每个单个 处理器12、 14上的任务调度。这里,确定用于每个任务16的处理器 使用窗导致计算使用请求函数,其稍后被用来确定在总线26上的消 息的优化时间窗。
因为任务tij在其它处理器12、 14上没有直接后继,这意味着它 不会直接影响总线26上的消息的时间窗,所以自然接着希望通过向 tu及其后继分配相同的使用窗来将tij与其后继组合以便计算使用请 求函数,这最终可能会有助于简化为所述总线26上的消息来确定所 优化的时间窗。当任务tij在其它处理器12、 14上没有任何直接前趋 时,这也适用于在算法中判定wbij的计算。
于是该问题仍然归于为了所想要的可调度性和可扩展性如何确 定bij-kl和eij-kl,即如何确定bij-kl和eij-kl使得在每个处理器l2、14上调 度任务16更可行并且所导出的调度更加可扩展以便适应稍后升级的 改变。换句话说,确定时间窗是约束优化问题,其中所述约束由方 程式(1 ) - ( 4 )提供,并且优化目的是可调度性和可扩展性。
依照本发明,定义了可调度性和可扩展性的目标函数,所述目标 函数包括每个处理器12和14的峰值使用请求和平均处理器使用请 求。特别地是,在框56,根据所标识的任务执行时间窗,所述算法 导出每个处理器12和14的使用请求函数,继而计算每个处理器12和 14的峰值使用请求和平均使用请求。首先,每个任务tij,fij ( t): [O,T] — R的使用请求函数被定义为
<formula>complex formula see original document page 13</formula>
其中T是通用的周期,R是实数集,Cij是tij的最糟情况执行时间,并且[wbij, weij]是由tij所请求的处理器使用窗,其根据消息传输窗来 确定。
根据每个任务16的使用请求函数,每个处理器pi的使用请求函 数,gi (t) :
—Ri被定义为 <formula>complex formula see original document page 14</formula> (12)
然后,每个处理器12、 14的峰值使用请求被确定为
<formula>complex formula see original document page 14</formula> (13)
根据方程式(11)和(12)
<formula>complex formula see original document page 14</formula> (14)
每个处理器12、 14的平均使用请求被定义为
<formula>complex formula see original document page 14</formula> (15)
由于<formula>complex formula see original document page 14</formula> 那么
<formula>complex formula see original document page 14</formula>(16)
然后在框58,所述算法根据用于使峰值和平均处理器使用请求最 小化的目标函数来优化在它们最早开始时间和最晚结束时间内的消 息传输时间窗以便提供所想要的可调度性和可扩展性。在一个实施 例中,消息时间窗优化的目标函数被定义为
<formula>complex formula see original document page 14</formula>(17)
其中<formula>complex formula see original document page 14</formula>, oci是处理器pi的权重并且由系统设计员来确定。通常
cti-l/m。如果处理器的可调度性和可扩展性更为重要,那么可以增 加所述处理器的相应权重。目标函数向系统10中的所有处理器12、 14给予峰值使用请求和平均使用请求。
利用使用请求来确定目标函数的原因在于资源使用请求值表示所述资源的争用级别。如果可以在所有资源之中并且在整个执行周 期平衡使用请求,那么可以在每个处理器/总线上以及在整个执行周 期中的每个时间减少资源争用,这使每个单个处理器/总线的调度更
为容易。因为减少了资源争用,所以更易于在不改变调度的情况下
在现有的调度内添加任务/处理器。从而,以上目标函数获得了所想 要的可调度性和可扩展性。
时间窗优化现在可以被公式化为具有线性约束和非线性目标函数的优化,其受方程式(1) - (4)约束,为
<formula>complex formula see original document page 15</formula>(18)
图3是用于图示如何为处理器定义方程式(12)的使用请求函数 以及怎样定义方程式(17)的目标函数的图。其执行时间窗重叠的 任务tu和tu将由处理器pi执行并且任务tn将由处理器p2执行。因为任'
务t11必须在任务t12之前执行,所以在任务t u和任务tn的执行时间窗
之间定义消息时间窗IIhH2 。据此在图中示出了处理器P:的使用请求函 数,如上所述根据所述使用请求函数来计算目标函数。
在框60,根据所优化的消息传输时间窗,所述算法然后通过使用 任何适当的已知单处理器调度技术来执行用于每个处理器12、 14和 总线26的独立任务调度。特别地是,在为所有消息28优化消息时间 窗之后,可以通过把<formula>complex formula see original document page 15</formula>和<formula>complex formula see original document page 15</formula>分别用为处理器Pi的任务t ij的新的到达时间和新的 截止时间来独立地解决在每个处理器12、 14中调度任务16,其中
i = l, …,m, 并且」=1, ... ,rii,这是因为在tq!:、IIlqr-ij、 tij、 IIlij-kl和
tu之中的相关性受新的到达时间和新的截止时间的强制。任何几种
中调度任:i6 注意f在相同处i器的任务16之中的相关性不受新 的到达时间和新的截止时间的强制。此外,只有在处理器12和14的 任务l6之中的相关性受新的到达时间和新的截止时间的强制。换句 话说,在单处理器调度过程中,仍然必须考虑相同处理器中的任务 相关性。
一旦在框58如上所述为每个消息确定每个消息的优化时间窗,本 发明的另 一 实施例就确定了实际上在所优化时间窗中的哪个时隙会 在总线2 6上发送消息2 8 ,使得所述消息在时间上相间隔以允许其它 消息在稍后时间被插入到调度中(如果想要的话)以便进一步增加 可调度性。应当强调,在流程图50中所示出的上述过程不必使用以 下时隙重新分配过程,这是由于可以使用其它时隙分配过程。在上述用于使处理器12和14去耦合的过程中也不必使用下述时隙重新分 配过程。
可以如下进一步描述本发明的此实施例的调度技术。假定时间触 发的通信总线的传输周期由N个时隙组成,其中存在m个消息要在所 述N个时隙中调度以便传输。对于每个消息m来说,A" K和"分别是 其到达时间、截止时间和传输时间。注意,A"仄和Cm都是整数,并 且借助时隙的数目来量度。在消息m之中也存在先后关系,所述先后 关系以"消息i在消息j之前,,或简单地"i在j之前"的形式来表示。 消息28必须在时隙中发送,即确定什么时隙用来发送什么消息m,使 得满足所有截止时间并且满足所有先后关系。还希望所述调度是可 扩展的,即如果在实现系统10之后需要一些改变,诸如为了升级而 添加或删除处理器或添加或删除任务,那么不影响对总线26上其余 消息m的调度。例如,如果在一个处理器12、 14改变任务集或者把新 的处理器添加到系统IO,那么此改变必须不得影响对总线26上其余 消息28的调度。如果可以在不影响传输现有消息的情况下在总线26 上发送新消息m,那么对于现有消息m的调度不需要任何改变,这意 味着用于那些相应处理器12、 14的任务调度保持不变。否则,可能
必须为整个系统重建调度,这可能是非常昂贵的。
为了对在时间触发的总线上的消息提供上述可扩展的调度,依照 本发明的此实施例,执行两步骤过程。图4是示出用于为消息重新分 配时隙以便提供可扩展性的过程的流程图62。首先在框64,所述算 法使用适当的算法在所优化的消息时间窗内导出用于时间触发的总 线26的初始消息调度。换句话说,所述算法确定对在时间触发的总 线26上的消息传输的调度以便在时隙中调度所述消息,使得依照如 上所述方式满足所有截止时间和在先约束。在本领域中已知用于导 出对具有先后关系和不同到达时间的任务集进行调度的适当算法。 例如,文章J. Blazewicz, "Scheduling Dependent Tasks with Different Arrival Times to Meet Deadlines" , E. Gelenbe, Ed., Modeling and Performance Evaluation of Computer Systems (计 算才几系纟克的建才莫和寸生能评4古),North—Holland Publishing Company (北荷兰出版社)(1976 )公开了一个这种例子。在此文章中,修
先后关系由所修正的到达时间和截止时间来强制。
接下来,最早截至时间最先(earliest-deadline-first EDF) 调度方法在没有先后关系的情况下被用于具有所修正到达时间和截 止时间的任务集。通过从没有后继的任务16开始并且在每个步骤处到达时间和截止时间。在下列方程式中示出了此步骤。
<formula>complex formula see original document page 17</formula> (19)
从没有前趋的任务开始并且在每个步骤处理那些其前趋已经被处理的任务,到达时间被修正为
<formula>complex formula see original document page 17</formula> (20)
方程式(19 )和(20 )标识在传输周期中何时发送消息28的次序。 例如,图5示出了包括十个时隙72的时间周期70,其中在时间周期70 期间发送每个消息 mi、 m2和ni3。 由于在每个时间周期70期间发送消息 m广m3,所以时间周期70重复自身。在此例子中,才艮据以上讨论,必 须在包括时隙2和3的时间窗内发送消息m!,必须在包括时隙3 - 5的时 间窗内发送消息nh并且必须在包括时隙4-8的时间窗内发送消息m3, 以便满足上述截止时间和在先约束。由于不同类型的消息和消息nn-m3的优先级,所以用于所述消息nh-m3的时间窗长度是不同的。对于时 间周期70来说,给消息nu分配时隙2,给消息nh分配时隙3,并且给消 息m3分配时隙4,其在每个时间窗周期期间开始时满足它们的时间要 求,但是才艮据其它在先约束不允许在消息nh和nh、消息nh和m3以及消 息nh和m3之间提供未来的消息。
在第二步骤中,所述算法然后在不违反原始调度的消息次序的情 况下在传输周期70内重新分布消息28,使得仍然满足在先约束,并 且在不违反消息截止时间的情况下,使得所述消息28被尽可能均匀 地分配在传输周期70内。第二步骤的目的是为了可扩展性。因为未 来消息的到达时间和截止时间是未知的,所以假定稍后添加的消息 的到达在传输周期70上均匀地分布。如果现有消息被尽可能均匀地 分布在传输周期70内,那么更可能找到适当的未占用时隙72来用于 稍后添加的消息以便升级。因此,减少了必须改变对其余消息的调 度的才几率。
假定调度中消息m的传输次序是(1, 2, ..., M)并且时隙分配 是kKk《...<",即消息j被调度到时隙kj中。为了提供可扩展性,必
须在不违反消息截止时间的情况下以及在不违反由初始调度所确定 的消息传输次序的情况下在传输周期70内尽可能均匀地重新分配消 息28。
可以借助如下优化模型提供用于重新分配消息的过程。设X[j] 是消息j在重新分配之后所分配的时隙号。于是将重新分配公式化 为
<formula>complex formula see original document page 18</formula>
如果要求对于每个j来说X[j]为整数,那么方程式(21)变为整 数规划问题。为了优化,X[j]允许为实数,并且然后所述优化变为 二次规划问题,其可以由现有算法来更有效地解决。在框66,所述 算法根据用于重新分配消息的方程式(21)来求解用于初始消息调 度的二次规划问题。然后在框68,所述算法把所述解的实数向下舍
入到最近的整数并且返回该解作为可扩展的消息调度。
返回参照图5 ,包括时隙80的第二时间周期78示出如何借助方程 式(21 )在传输周期78中重新分配消息im-m3。特别地是,仍然把消 息nn分配给时隙2,但是把消息m2分配给时隙5并且把消息iib分配给时 隙8。在此重新分配中,所有消息nn-m3在它们所分配的时间窗期间发 送,但是在时隙2和5之间空着时隙3和4,在时隙5和8之间空着时隙6 和7,并且在时隙8和2之间空着时隙9、 IO和I,从而允i午稍后在不改 变消息m广m3的调度的情况下把其它消息插入到这些空的时隙中。
以上论述仅仅公开并描述了本发明的示例性实施例。本领域技术 人员根据这类论述和附图以及权利要求可以容易地认识到,在不脱 离如以下权利要求所限定的本发明的精神和范围的情况下可以进行 各种改变、修改和变化。
权利要求
1.一种用于在通信总线上调度消息以及调度将由嵌入式系统中的多个处理器执行的任务的方法,所述方法包括为要在所述总线上发送的每个消息标识最早开始传输时间和最晚结束传输时间以便为每个消息定义消息传输时间窗;根据所述消息传输时间窗来标识要由在所述系统中每个处理器执行的每个任务的任务执行时间窗;根据所述任务执行时间窗来确定所述处理器的使用请求函数;根据所述使用请求函数来确定每个处理器的峰值使用请求和平均使用请求;通过使所述峰值使用请求和平均使用请求最小化来在每个消息的最早开始传输时间和最晚结束传输时间内优化每个消息的消息传输时间窗;并且根据所优化的消息传输时间窗来为每个处理器独立地调度所述任务。
2. 如权利要求l所述的方法,其中标识最早开始传输时间和最 晚结束传输时间包括从没有后继任务的任务开始的过程以及逐步地 处理那些其后继任务已经被处理的任务。
3. 如权利要求l所述的方法,其中标识最早开始传输时间和最 晚结束传输时间以及标识任务执行时间窗包括确定满足所述任务的 所有在先约束以及满足所述消息的所有计时要求。
4. 如权利要求3所述的方法,其中所述在先约束和计时要求由 以下方程式定义bij-kl ≥Bij-k, l,eij-kl-bij-kl ≥Cij-kl,eij-kl≤Eij-kl,<formula>complex formula see original document page 2</formula>m, 对于所有K≠和H≠i其中Bij-kl是所述消息的最早开始时间,Eij-kl是所述消息的最晚结束时 间,bij-kl和eij-kl分别定义了消息传输时间窗的开始时间和结束时间, 并且Cij-kl是所述消息的传输时间。
5. 如权利要求l所述的方法,其中确定所述处理器的使用请求函数包括确定每个任务和每个处理器的使用请求函数。
6.如权利要求5所述的方法,其中确定所述处理器的使用请求 函数包括按照以下方程式来确定每个任务的使用请求函数fu (t):<formula>complex formula see original document page 3</formula>其中Cij是任务tij的最糟情况执行时间,wbij是任务tu的最早执行时 间,并且weu是任务tij的最晚结束时间。
7.如权利要求6所述的方法,其中确定每个处理器的使用请求 函数包括使用以下方程式其中gi ( t)是每个处理器的使用请求函数并且fu ( t)是每个任务的 使用请求函数。
8.如权利要求l所述的方法,其中确定峰值使用请求(PU)包 括使用以下方程式<formula>complex formula see original document page 3</formula>并且确定平均使用请求(AU)包括使用以下方程式:<formula>complex formula see original document page 3</formula>其中gi ( t)是每个处理器的使用请求函数,wbu是所述任务的最早执 行时间,并且Cij是所述任务的最糟情况执行时间。
9.如权利要求l所述的方法,其中优化所述消息传输时间窗包 括使用以下方程式<formula>complex formula see original document page 3</formula>其中b是消息时间窗的开始时间,e是消息时间窗的结束时间,oci是 所述处理器的权重,PUi是处理器时间窗的峰值使用请求并且AUi是所 述处理器的平均用户请求。
10.如权利要求l所述的方法,进一步包括确定初始消息调度以便把所述消息分配到所优化消息时间窗中的时隙,并且在所述时隙 中重新分配所述消息以便在所述消息之间提供未使用的时隙。
11. 如权利要求10所述的方法,其中在所述时隙中重新分配所述消息包括在消息时间窗中基本上均匀地间隔所述消息。
12. —种用于在通信总线上调度消息以及调度将由嵌入式系统 中的多个处理器执行的任务的方法,所述方法包括为要在所述总线上发送的每个消息标识最早开始传输时间和最 晚结束传输时间以便为每个消息定义消息传输时间窗;根据所述消息传输时间窗来标识要由在所述系统中每个处理器 执行的每个任务的任务执行时间窗;在每个消息的最早开始传输时间和最晚结束传输时间内优化每 个消息的消息传输时间窗,以便使所述处理器的调度彼此去耦合; 并且根据所优化的消息传输时间窗来为每个处理器独立地调度所述 任务。
13. 如权利要求12所述的方法,进一步包括根据所述任务执行 时间窗来确定所述处理器的使用请求函数并且根据所述使用请求函 数来确定每个处理器的峰值使用请求和平均使用请求,其中优化所 述消息传输时间窗包括使所述峰值使用请求和平均使用请求最小 化。
14. 如权利要求12所述的方法,其中标识最早开始传输时间和 最晚结束传输时间以及标识任务执行时间窗包括确定满足所述任务 的所有在先约束以及满足所述消息的所有计时要求。
15. 如权利要求12所述的方法,进一步包括确定初始消息调度 以便把所述消息分配到所优化消息时间窗中的时隙,并且在所述时 隙中重新分配所述消息以便在所述消息之间提供未使用的时隙。
16. —种用于调度通信总线上的消息以及调度将由嵌入式系统 中的多个处理器执行的任务的设备,所述设备包括用于为要在所述总线上发送的每个消息标识最早开始传输时间 和最晚结束传输时间以便为每个消息定义消息传输时间窗的装置;用于根据所述消息传输时间窗来标识要由在所述系统中每个处 理器执行的每个任务的任务执行时间窗的装置;用于根据所述任务执行时间窗来确定所述处理器的使用请求函数的装置;用于根据所述使用请求函数来确定每个处理器的峰值使用请求 和平均使用请求的装置;用于通过使所述峰值使用请求和平均使用请求最小化来在所述 消息的最早开始传输时间和最晚结束传输时间内优化每个消息的消 息传输时间窗的装置;并且用于根据所优化的消息传输时间窗来为每个处理器独立地调度 所述任务的装置。
17. 如权利要求16所述的设备,其中用于标识最早开始传输时 间和最晚结束传输时间的装置和用于标识任务执行时间窗的装置包 括用于从没有后继任务的任务开始并且逐步地处理那些其后继任务 已经被处理的任务的装置。
18. 如权利要求16所述的设备,其中用于标识最早开始传输时 间和最晚结束传输时间的装置以及用于标识任务执行时间窗的装置 都包括用于确定满足所述任务的所有在先约束以及满足所述消息的 所有计时要求的装置。
19. 如权利要求16所述的设备,其中用于确定使用请求函数的 装置包括用于确定每个任务和每个处理器的使用请求函数的装置。
20. 如权利要求16所述的设备,进一步包括用于确定初始消息 调度以便在总线上把所述消息分配到时隙的装置,以及用于在所述 时隙中重新分配所述消息以便在所述消息之间提供未使用的时隙的装置。
全文摘要
一种用于在分布式实时的时间触发的嵌入式系统中调度处理器任务和消息传输的调度算法。所述算法标识要在总线上发送的每个消息的最早开始传输时间和最晚结束传输时间以便定义消息传输时间窗。然后所述算法按照消息传输时间窗来标识要在每个处理器中执行的每个任务的任务执行时间窗。然后所述算法通过使每个处理器的峰值使用请求和平均使用请求最小化来优化消息传输时间窗。所优化的传输时间窗使每个处理器能够被独立地调度。
文档编号G06F9/46GK101203835SQ200680022662
公开日2008年6月18日 申请日期2006年3月17日 优先权日2005年4月22日
发明者姜胜兵 申请人:通用汽车环球科技运作公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1