首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 国际申请 / 请求书 / 声明 / 优先权要求 / 改善多核芯处理器的处理性能的方法

改善多核芯处理器的处理性能的方法

阅读:1028发布:2020-05-28

专利汇可以提供改善多核芯处理器的处理性能的方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及改善多核芯处理器的处理性能的方法和装置。用于管理在多核心处理器中的任务执行的方法包括采用自旋 锁 来实现可动态地强制执行的相互排斥约束并采用多处理器优先权上限协议来实现该可动态地强制执行的相互排斥约束来同步在多核心处理器的第一和第二处理核心中执行的多个任务。,下面是改善多核芯处理器的处理性能的方法专利的具体信息内容。

1.一种用于管理在多核心处理器中的任务执行的方法,包括:
采用自旋来实现可动态地强制执行的相互排斥约束;以及
采用多处理器优先权上限协议来实现该可动态地强制执行的相互排斥约束来同步在多核心处理器的第一和第二处理核心中执行的多个任务;
其中,采用多处理器优先权上限协议包括采用全局优先权上限以通过具有带有更高远程优先权上限的相互排斥约束的任务抢先具有所选的相互排斥约束的任务,包括当任务T以设定的优先权获得全局互斥元MG时执行对应该全局互斥元MG的全局临界段。
2.如权利要求1所述的方法,其中,包括当任务T以设定的优先权获得全局互斥元MG时执行对应该全局互斥元MG的全局临界段的采用全局优先权上限来通过具有带有更高远程优先权上限的相互排斥约束的任务抢先具有所选的相互排斥约束的任务,还包括所述设定的优先权是根据如下关系设定的:
p(MG) = p(G)+p(T0)
其中p(MG)是全局互斥元MG的优先权上限,
p(G)是基础优先权平,其大于在系统中的另一执行任务,以及
p(T0)是最高优先权任务T0的优先权,其可锁定全局互斥元MG。
3.如权利要求2所述的方法,其中,全局互斥元MG是由在多核心处理器的第一和第二处理核心的不同核心中展开的任务所共享的互斥元。
4.一种用于管理在多核心处理器中的任务执行的方法,包括:
在多核心处理器的第一处理核心中执行任务的可运行物,包括引入用于在多核心处理器的第二处理核心中执行的任务的另一可运行物的静态补偿,从而实现在所述可运行物间的静态定义的相互排斥约束;
采用自旋锁来实现可动态地强制执行的相互排斥约束并采用多处理器优先权上限协议来实现该可动态地强制执行的相互排斥约束来同步在多核心处理器的第一和第二处理核心中执行的多个任务;
其中,采用多处理器优先权上限协议包括采用全局优先权上限以通过具有带有更高远程优先权上限的相互排斥约束的任务抢先具有所选的相互排斥约束的任务,包括当任务以设定的优先权获得全局互斥元时执行对应该全局互斥元的全局临界段。
5.一种用于管理在多核心处理器中的任务执行的方法,包括:
在第一处理核心中执行任务的可运行物,包括引入用于在第二处理核心中执行的任务的另一可运行物的静态补偿,从而实现在所述可运行物间的静态定义的相互排斥约束;以及
选择性地采用自旋锁、设置/等待事件、和多处理器优先权上限协议以实现相互排斥约束从而同步在第一和第二处理核心中执行的多个任务;
其中,采用多处理器优先权上限协议包括采用全局优先权上限以通过具有带有更高优先权上限的相互排斥约束的任务抢先具有所选的相互排斥约束的任务,包括当任务T以设定的优先权获得全局互斥元MG时执行对应该全局互斥元MG的全局临界段。
6.如权利要求5所述的方法,其中,采用设置/等待事件静态地强制执行相互排斥约束。
7.如权利要求5所述的方法,其中,采用自旋锁和多处理器优先权上限协议动态地强制执行相互排斥约束。
8.如权利要求5所述的方法,其中,包括当任务T以设定的优先权获得全局互斥元MG时执行对应该全局互斥元MG的全局临界段的采用全局优先权上限以通过具有带有更高优先权上限的相互排斥约束的任务抢先具有所选的相互排斥约束的任务,还包括所述设定的优先权是根据如下关系设定的:
p(MG) = p(G)+p(T0)
其中p(MG)是全局互斥元MG的优先权上限,
p(G)是基础优先权水平,其大于在系统中的另一执行任务,以及
p(T0)是最高优先权任务T0的优先权,其可锁定全局互斥元MG。
9.如权利要求8所述的方法,其中,全局互斥元MG是由在多核心处理器的第一和第二处理核心的每一核心中展开的任务所共享的互斥元。
10.如权利要求5所述的方法,其中,采用多处理器优先权上限协议包括分配优先权给全局临界段内的任务,该全局临界段由带有该全局临界段的优先权的全局互斥元防护。
11.如权利要求10所述的方法,其中,采用多处理器优先权上限协议还包括允许在全局临界段内的第一任务在该第一任务的优先权大于第二任务的优先权时抢先在该全局临界段内的第二任务。
12.如权利要求11所述的方法,其中,采用多处理器优先权上限协议还包括在全局互斥元不被另一任务保持时使用多核心处理器的共享存储器内的原子事务将全局互斥元授予给任务。
13.如权利要求12所述的方法,其中,采用多处理器优先权上限协议还包括在对全局互斥元的请求不能被准予时在抢先任务之前将该任务添加到在全局互斥元上的优先权队列,其中被添加到优先权队列的任务的优先权是预先分配的。
14.如权利要求13所述的方法,其中,采用多处理器优先权上限协议还包括当任务试图释放该全局互斥元时使最高优先权任务有资格在用于该最高优先权任务的主处理核心中以该最高优先权任务的全局临界段优先权执行。
15.如权利要求14所述的方法,其中,采用多处理器优先权上限协议还包括预分配优先权给全局临界段之外的任务。
16.如权利要求15所述的方法,其中,采用多处理器优先权上限协议还包括对到达局部互斥元的请求采用单个处理器优先权上限协议。

说明书全文

改善多核芯处理器的处理性能的方法

技术领域

[0001] 本公开涉及多核心处理器。

背景技术

[0002] 本部分中的陈述仅仅提供与本公开相关的背景信息。因此,这些陈述不是用于构成对现有技术的承认。
[0003] 处理器是电子设备,其被构造成具有执行例程以履行任务的中央处理单元(CPU)和相关联的内存和存储设备。处理器的性能可通过增加CPU的时钟速度来改善,并因此产生了更快的例程执行。由于处理器硬件接口设备的机械的、电的和热的限制,存在对时钟速度和相关联的处理器性能的上界。
[0004] 多核心处理器已经被引入以改善在执行例程以履行任务方面的性能。在这种架构中,多处理核心的存在能实现真正的并行任务执行的能力。不过,在不同的核心上同时执行的任务可能需要同步和/或彼此协调,这是由于应用平的要求。发明内容
[0005] 用于管理在多核心处理器中的任务执行的方法包括采用自旋来实现可动态地强制执行的相互排斥约束并采用多处理器优先权上限协议来实现该可动态地强制执行的相互排斥约束来同步在多核心处理器的第一和第二处理核心中执行的多个任务。
[0006] 本申请还提供了如下方案:
[0007] 方案1. 一种用于管理在多核心处理器中的任务执行的方法,包括采用自旋锁来实现可动态地强制执行的相互排斥约束并采用多处理器优先权上限协议来实现该可动态地强制执行的相互排斥约束来同步在多核心处理器的第一和第二处理核心中执行的多个任务。
[0008] 方案2. 如方案1所述的方法,其中,采用多处理器优先权上限协议包括采用全局优先权上限以通过具有带有更高远程优先权上限的相互排斥约束的任务抢先具有所选的相互排斥约束的任务。
[0009] 方案3. 如方案2所述的方法,其中,采用全局优先权上限来通过具有带有更高远程优先权上限的相互排斥约束的任务抢先具有所选的相互排斥约束的任务包括当任务T以根据如下关系设定的优先权获得全局互斥元MG时执行对应该全局互斥元MG的全局临界段:
[0010] p(MG) = p(G)+p(T0)
[0011] 其中p(MG)是全局互斥元MG的优先权上限,
[0012] p(G)是基础优先权水平,其大于在该系统中的另一执行任务,以及
[0013] p(T0)是最高优先权任务T0的优先权,其可锁定全局互斥元MG。
[0014] 方案4. 如方案3所述的方法,其中,全局互斥元MG是由在多核心处理器的第一和第二处理核心的不同核心中展开的任务所共享的互斥元。
[0015] 方案5. 一种用于管理在多核心处理器中的任务执行的方法,包括:
[0016] 在多核心处理器的第一处理核心中执行任务的可运行物,包括引入用于在多核心处理器的第二处理核心中执行的任务的另一可运行物的静态补偿,从而实现在所述可运行物间的静态定义的相互排斥约束;
[0017] 采用自旋锁来实现可动态地强制执行的相互排斥约束并采用多处理器优先权上限协议来实现该可动态地强制执行的相互排斥约束来同步在多核心处理器的第一和第二处理核心中执行的多个任务。
[0018] 方案6. 如方案5所述的方法,其中,采用多处理器优先权上限协议来实现可动态地强制执行的相互排斥约束包括采用全局优先权上限,其允许具有所选相互排斥约束的任务被带有更高远程优先权上限的相互排斥约束抢先。
[0019] 方案7. 一种用于管理在多核心处理器中的任务执行的方法,包括:
[0020] 在第一处理核心中执行任务的可运行物,包括引入用于在第二处理核心中执行的任务的另一可运行物的静态补偿,从而实现在所述可运行物间的静态定义的相互排斥约束;以及
[0021] 选择性地采用自旋锁、设置/等待事件、和多处理器优先权上限协议以实现相互排斥约束从而同步在第一和第二处理核心中执行的多个任务。
[0022] 方案8. 如方案7所述的方法,其中,采用设置/等待事件静态地强制执行相互排斥约束。
[0023] 方案9. 如方案7所述的方法,其中,采用自旋锁和多处理器优先权上限协议动态地强制执行相互排斥约束。
[0024] 方案10. 如方案7所述的方法,其中,采用多处理器优先权上限协议包括采用全局优先权上限以通过具有带有更高远程优先权上限的相互排斥约束的任务抢先具有所选的相互排斥约束的任务。
[0025] 方案11. 如方案10所述的方法,其中,采用全局优先权上限以抢先具有所选的相互排斥约束的任务包括在任务T以根据如下关系设定的优先权获得全局互斥元MG时执行对应该全局互斥元MG的全局临界段:
[0026] p(MG) = p(G)+p(T0)
[0027] 其中p(MG)是全局互斥元MG的优先权上限,
[0028] p(G)是基础优先权水平,其大于在该系统中的另一执行任务,以及
[0029] p(T0)是最高优先权任务T0的优先权,其可锁定全局互斥元MG。
[0030] 方案12. 如方案11所述的方法,其中,全局互斥元MG是由在多核心处理器的第一和第二处理核心的每一核心中展开的任务所共享的互斥元。
[0031] 方案13. 如方案7所述的方法,其中,采用多处理器优先权上限协议包括分配优先权给全局临界段内的任务,该全局临界段由带有该全局临界段的优先权的全局互斥元防护。
[0032] 方案14. 如方案13所述的方法,其中,采用多处理器优先权上限协议还包括允许在全局临界段内的第一任务在该第一任务的优先权大于第二任务的优先权时抢先在该全局临界段内的第二任务。
[0033] 方案15. 如方案14所述的方法,其中,采用多处理器优先权上限协议还包括在全局互斥元不被另一任务保持时使用多核心处理器的共享存储器内的原子事务将全局互斥元授予给任务。
[0034] 方案16. 如方案15所述的方法,其中,采用多处理器优先权上限协议还包括在对全局互斥元的请求不能被准予时在抢先任务之前将该任务添加到在全局互斥元上的优先权队列,其中被添加到优先权队列的任务的优先权是预先分配的。
[0035] 方案17.如方案16所述的方法,其中,采用多处理器优先权上限协议还包括当任务试图释放该全局互斥元时使最高优先权任务有资格在用于该最高优先权任务的主处理核心中以该最高优先权任务的全局临界段优先权执行。
[0036] 方案18. 如方案17所述的方法,其中,采用多处理器优先权上限协议还包括预分配优先权给全局临界段之外的任务。
[0037] 方案19. 如方案18所述的方法,其中,采用多处理器优先权上限协议还包括对到达局部互斥元的请求采用单个处理器优先权上限协议。附图说明
[0038] 现在将参照附图通过举例方式描述一个或多个实施例,附图中:
[0039] 图 1-1和1-2示意地示出了根据本公开的示例性多核心处理系统的实施例,该系统包括第一和第二处理核心;
[0040] 图2-1示意性地示出了根据本公开的用于在多核心处理系统中执行多个任务的任务执行简图;
[0041] 图2-2用曲线图示出了根据本公开的与任务处理相关联的第一正时曲线和消逝的时间步长之间的关系;
[0042] 图2-3用曲线图示出了根据本公开的与采用静态补偿的任务处理相关联的第二正时曲线和消逝的时间步长之间的关系;
[0043] 图3用曲线图示出了根据本公开绘制的与内燃发动机速度有关的用于基线利用和最大限度利用的设置/等待事件的敏感性评估;
[0044] 图4示意地示出了根据本公开的用于分析自旋锁的正时的过程,包括第一和第二处理核心和共享软件资源,该共享软件资源或是被获取以进行执行或是处于自旋;
[0045] 图5用曲线图示出了根据本公开的与采用自旋锁的任务处理相关联的正时曲线和消逝的时间步长之间的关系;
[0046] 图6用曲线图示出了根据本公开绘制的与内燃发动机速度有关的用于基线利用和最大限度利用的自旋锁的敏感性评估;
[0047] 图7示意性地示出了根据本公开的多处理器优先权上限协议的实施方式,包括第一和第二处理核心和对应的第一和第二优先权队列,该队列引起共享优先权队列,该共享优先权队列由共享软件资源执行;以及
[0048] 图8用曲线图示出了根据本公开的与多处理器优先权上限协议的执行相关联的正时曲线。

具体实施方式

[0049] 现在参照附图,其中所示出的是仅用于说明某些示例性实施例并不是用于限制这些实施例的目的,图 1-1和1-2示意性地说明了多核心处理系统的实施例,该多核心处理系统包括第一和第二处理核心。本文描述的包括第一和第二处理核心多核心处理系统是说明性的而不是限制性的。而且,术语“第一”和“第二”被用于确认并区分具体的处理核心,而不是用来指示先后顺序或优先顺序。多核心处理系统优选地是均质多核心处理器,但本公开不限于此。本文描述的概念适用于采用两个或多个处理核心的任何多核心处理系统。
[0050] 图1-1示出了均质多核心处理器10的第一实施例,其优选是单芯片元件,其包括第一和第二处理核心12和22、第一和第二架构状态13和23,以及单独的第一和第二片载L1存储器超高速缓存14和24。其它的特征包括热控制器30、可编程中断控制器(APIC)32、和功率管理逻辑34。第二共享存储器超高速缓存36和总线接口38被采用以与外部总线40通信。
[0051] 图1-2示出了均质多核心处理器50的第二实施例,其优选是单芯片元件,其包括第一和第二处理核心52和62、以及单独的第一和第二片载L1存储器超高速缓存54和64。其它的特征包括系统请求接口66、横杆开关67、和第一和第二内存控制器58和68,这些被用来管理与外部设备的通信,在一个实施例包括通过外部总线40的通信。均质多核心处理器10和50的第一和第二实施例是说明性的。
[0052] 多个任务中的每一个任务Ti包括一系列可运行物(runnable),其中m(i)指示属于任务Ti的运行的数量。单独的可运行物被指示为Ri,1到Ri,m(i)。每个可运行物Ri,j的最坏情况执行时间被假设为已知并被表示为Ci,j。任务Ti的累积最坏情况执行时间是所有的组成可运行物的执行时间之和,其被表示为Ci (即,Ci = Ci,1 + Ci,2 + …+ Ci,m(i))。术语P(Ti)表示任务Ti被分配到的处理核心。任一任务Ti的第一可运行物Ri,1被假设为或者每个Ti都被周期地触发或者由具有周期Ti的另一任务所设置的事件Ei,1触发。所有的后续可运行物Ri,j (j > 1)都被假设为或者由先前的可运行物Ri,j-1的完成触发或者由外部事件Ei,j触发。每个可运行物Ri,j也被给予补偿Oi,j ≥ 0,使得该可运行物具备条件以仅在自Ri,1的对应释放以来已经消逝了Oi,j时间单位后执行。
[0053] 触发或设置事件Ei,j的可运行物由πi,j表示。在可运行物Ri,j(j > 1)由先前的可运行物Ri,j-1触发的情形下,此时Ei,j由πi,j = Ri,j-1设置。为了方便起见,对于假设为每个Ti周期地被触发的可运行物Ri,j来说,πi,j = O。每个任务具有等于其周期Ti的绝限。这种假设源自如下事实:如果Ti在Ti时间单位中没有完成,那么任务Ti的另一迭代将开始。优先权分配被假设为遵循速率单调调度。具有越短周期的任务被分配更高的调度优先权。不失一般性,任务组是以周期的非递减顺序且优先权的递增顺序给出的。术语hp(Ti)被采用来表示具有比Ti更高优先权的一组任务,并且lp(Ti)被采用来表示具有比Ti更低优先权的一组任务。术语p(Ti)被采用来表示任务Ti的优先权。对于保护相互排斥共享资源的任何锁M来说,术语I(M)被采用来表示访问锁M的任务的数量,并且CM被采用来代表M可被保持的最大持续时间。
[0054] 同步化结构例如优先约束可使用多核心优先约束的事件来实现。通过举例,考虑两个任务,包括在处理核心P1上执行的任务T1和在处理核心P2上执行的任务T2。这种应用要求任务T2的可运行物R2,d在任务T1的可运行物R1,s的完成之后开始执行。在这种情形下,在事件E2,d时可使P2上的可运行物R2,d暂停/等待,其可进而由P1上的可运行物R1,s的完成来设置。设置/等待事件被采用来通过强制执行在同一核心上运行的不同任务中的可运行物之间的优先约束来静态地强制执行相互排斥约束,并且这些事件被推及到多核心处理器的上下文中。
[0055] 对带有设置/等待事件的任务的分析包括开发这些任务的响应-时间分析。举例来说,评估在处理核心P上的使用设置/等待事件的带有可运行物Ri,1到Ri,m(i)的任务T1。在P上的更高优先权任务Th(即,比Ti更高的优先权)中没有一个使用设置/等待事件来与其它任务同步时,即,  且 的一个情形中,πh,k = Rh,k-1。在这个情形中,可如下地导出任务Ti的最坏情况响应时间的界限。让F(Ri,j)表示在可运行物Ri,j的完成时间上的上界。为了计算F(Ri,j),采用了在Ri,j之前的Ti的最后可运行物Ri,e,其由外部事件触发,即,e < j是最大值,使得e = 1或者πi,e ≠ Ri,e。这个外部事件被设置时的瞬时时间可被表示为Si,e。如果Wi,{e…j}表示包括可运行物Ri,e到Ri,j的的Ti片段的最坏情况响应时间,那么F(Ri,j)被如下确定。
[0056]              [1]
[0057] 可运行物Ri,j的完成时间因此不多于从在Si,e时事件Ei,e的设置的Wi,{e…j}。
[0058] 最坏情况响应时间Wi,{e…j}的上界可在如下假设下获得,即在处理核心P上的更高优先权任务中没有一个使用外部设置/等待事件。最坏情况响应时间Wi,{e…j}通过使用标准响应-时间测试来计算,其是下面公式的收敛:
[0059]
[0060]                                                     [2]
[0061] 其中
[0062]
[0063] 假设可运行物到它们的执行的末尾设置它们的对应事件,那么结果包括下面公式:
[0064] Si,e = F(πi,e)             [3]
[0065] 这种操作被参照图2-1、2-2和2-3示出。
[0066] 图2-1示意性地示出了用于在多核心处理系统中执行多个任务的任务执行简图,例如如参照图1-1和1-2描述的多核心处理系统。被执行的任务包括T1 210、T2 220、T3 230和T4 240。T1 210包括被顺序执行的可运行物R1,1 211、R1,2 212、R1,3 213,并且由第一处理核心执行。如所示,T1 210每四个时间步长就被调度一次以进行执行,并且每个可运行物在单个时间步长中执行。T2 220包括顺序执行的可运行物R2,1 221和 R2,2 222,并且由第一处理核心执行。如所示,T2 220每七个时间步长就被调度一次以进行执行,并且每个可运行物在单个时间步长中执行。T1 210具有比T2 220更高的优先权,并且因此将在第一处理核心中的执行中占先。T3 230包括单个可运行物R3,1 231并且由第二处理核心执行。如所示,T3 230每三个时间步长就被调度一次以进行执行,并且每个可运行物在单个时间步长中执行。
T4 240包括单个可运行物R4,1 241并且由第二处理核心执行。如所示,T4 240每四个时间步长就被调度一次以进行执行,并且每个可运行物在单个时间步长中执行。T3 230具有比T4 
240更高的优先权,并且因此将在第二处理核心中的执行中占先。第一和第二处理核心20和
30每一个都被构造成每次执行一个任务可运行物。T2 220和T3 230能够在没有设置/等待事件约束下被执行。T1 210和T4 240每一个都具有设置/等待事件约束,这是一种优先关系,其中可运行物R1,2 212的执行直到T1 210的可运行物R1,1 211在第一处理核心中的执行完成,如由连接器215所示,和T4 240的可运行物R4,1 241在第二处理核心中的执行完成,如由连接器245所示,的时候才能开始。可运行物R4,1由通过可运行物R2,3设置的事件E4,1触发,即R4,1 = R2,3。类似地,可运行物R2,4由通过可运行物R4,1设置的事件E2,4触发,即R2,4 = R4,1。
如所见,每个内部触发的相接片段的最坏情况响应时间被计算以限制总任务响应时间。可运行物R2,3的完成时间F(R2,3)被使用参照方程2描述的收敛计算为片段R2,1到R2,3的最坏情况响应时间。此后这被方程3用作事件E4,1的设置时间。3. 片段可运行物R4,1的最坏情况响应时间被使用方程2的收敛计算。2. 再一次使用方程1和3, 可运行物R4,1的完成时间被计算为F(R4,1)。在方程1中使用这个完成时间和使用方程2的收敛获得的片段R2,4到R2,5的最坏情况响应时间,获得了可运行物R2,5的完成时间。这也是T2 220的最坏情况响应时间的上界。虽然该分析使用设置/等待事件提供了对任务的最坏情况响应时间的上界,但是界限可因对内部触发可运行物的每个相接片段的独立最坏情况响应时间的假设而是悲观(pessimistic)的。而且,设置/等待事件结构经常导致更大的最坏情况响应时间,这是由于在设置事件中的长延迟的可能。例如,在图2-1示出的示例中,其中T2 220不得不说明由T2 
230引起的T4的优先,因为这导致在设置E2,4中的延迟。因此,如果可能的话避免设置/等待事件结构从分析和性能度考虑都是有益的,从而确保任务组可以更高的利用阈值被调度或可利用较慢(因此)更便宜的处理器被调度。使用设置/等待事件的结果是可运行物的释放不再被保证为是周期性的。取决于外部事件的设置时间Si,e,可运行物Ri,e的释放时间变化。这导致了对于较低优先权任务的跳动和调度惩罚。这可通过静态分配合适的补偿给由外部事件触发的可运行物来避免。
[0067] 图2-2用曲线图示出了与参照图2-1描述的任务T1 210、T2 220、T3 230、和T4 240的执行相关联的第一正时曲线和在x轴250上示出的消逝的时间步长的关系。没有采用静态补偿。任务可运行物的执行被示出为在时间步长0开始。随着时间步长的前进,T1 210、T2 220、T3 230和T4 240的可运行物被执行。任务T1 210和T2 220被分配给第一处理核心而任务T3 230和T4 240被分配给第二处理核心。T1 210和T4 240使用设置/等待事件彼此同步。
T1 210由可运行物R1,1、R1,2、和R1,3组成。T4 240由单个可运行物R4,1组成。T1 210和T4 240每4个时间单位被周期地触发。可运行物R1,2符合条件以在R1,1完成之后执行并且通过由R4,1设置的外部事件E1,2触发,即,T1,2 = R4,1。关于其它的任务,T2 220具有两个可运行物R2,1和R2,2,周期为7个时间单位;T2 230具有单个可运行物R3,1,周期为3个时间单位。为了简化表达,所有的可运行物被假设为具有1个时间单位的最坏情况执行时间。
[0068] 在图2-2中示出的情形中,可运行物R1,2的释放跳动引起T2 220错过其7个时间单位的绝限。可以看到,在T1 210的第一释放期间在事件E1,2时被延迟,而其在第二释放期间没有被延迟。这引起T2 220上的优先增加,这导致T2 220错过其绝限。
[0069] 机构包括在事件触发器的基础上还分配释放补偿来解决释放跳动。举例来说,评估由外部事件Ei,e触发的可运行物πi,e。保证事件Ei,e由设置Ei,e可运行物πi,e的最坏情况完成时间F(πi,e)设置。因此,分配静态补偿Φi,e = F (πi,e)保证事件Ei,e在可运行物Ri,e开始执行之前被设置。静态补偿因此用作简单周期强制执行器,其允许可运行物Ri,e的周期释放并且从对可运行物Ri,e的释放跳动的处理中释放具有比任务Ti更低的优先权的任务。如果可运行物没有被分配这些静态补偿,其在系统操作期间可能导致更长的最坏情况响应时间和不可预知的可运行物释放时间。
[0070] 在图2-2中描述的操作的细节包括如下。在时间步长0,T1 210的可运行物R1,1 211在第一处理核心中执行并且T2 230的可运行物R3,1 231同时在第二处理核心中执行。在时间步长1,T2 220的可运行物R2.1 221在第一处理核心中执行并且T4 240的可运行物R4.1 241在第二处理核心中执行。T1 210在执行中被延迟,这是因为T1 210的可运行物R1,2 212正等待在第二处理核心中的T4 240的可运行物R4,1 241的执行,这是在T1 210的可运行物R1,2 212的执行的必要先决条件,T1 210的可运行物R1,2 212具有比T2 230的可运行物R3,1 
231低的优先权。在时间步长2,T1 210的可运行物R1,2 212在先决条件T1 210的可运行物R1,1 211和T4 240的可运行物R4,1 241的执行完成后在第一处理核心中执行。在时间步长3,T2 230的可运行物R3,1 231再一次响应于每三个时间步长发生的其调度执行而在第二处理核心中执行。T1 210的要素R1,3 213在第一处理核心中执行,因此完成T1 210的迭代。在时间步长4,T1 210的另一迭代响应于每四个时间步长发生的其调度执行而在第一处理核心中执行。因此,在时间步长4,T1 210的可运行物R1,1 211执行。同时,T4 240的可运行物R4,1 
241在第二处理核心中执行,这是因为T2 230的可运行物 R3,1 231之前已经执行并且第二处理核心可用于这样执行。
[0071] T1 210的可运行物R1,1 211和T4 240的可运行物R4,1 241的同时执行允许 T1 210的可运行物R1,2 212在时间步长5执行,接着 T1 210的可运行物R1,3 213 在时间步长6执行。这个动作排除了T2 220的可运行物R2,2 222的执行,这是由于其在第一处理核心中的较低的优先权。因此,T2 220在其配给时间长度内没能执行,并且故障发生,如要素235所指示。
[0072] 图2-3用曲线图示出了与参照图2-1描述的任务T1 210、T2 220、T3 230和T4 240的执行相关联的第二正时曲线与在x轴250上示出的时间步长的关系,并且在T1 210中采用了静态补偿。T1 210能够采用静态补偿,因为其具有三个任务可运行物和用于完成其任务的四个时间步长。任务可运行物的执行被示出为在时间步长0开始。随着时间步长的前进,T1 210、T2 220、T3 230和T4 240的可运行物被执行如下。在时间步长0,T1 210的可运行物R1,1 211在第一处理核心中执行并且T2 230的可运行物R3,1 231同时在第二处理核心中执行。静态补偿214在T1 210的每次迭代期间可运行物R1,1 211执行后被引入到T1 210。在可运行物R1,1 211的执行之后引入静态补偿214是允许的,因为T1 210具有三个任务可运行物以及用于完成其任务的四个时间步长,因此引入静态补偿214不会干扰T1 210的完整执行。因此,在时间步长1,T1 210的执行响应于静态补偿214的引入而被延迟。T4 240的要素R4,1 
241在第二处理核心中执行,其具有比T2 230的可运行物R3,1 231低的优先权。在可运行物R1,1 211的执行之后引入静态补偿214是优选的,这是因为T4 240的可运行物R4,1 241的执行是其必要先决条件并且T4 240的可运行物R4,1 241在第二处理核心中以比T2 230的可运行物R3,1 231低的优先权执行。在时间步长2,T1 210的可运行物R1,2 212在先决条件T1 210的可运行物R1,1 211和T4 240的可运行物R4,1 241的执行完成之后在第一处理核心中执行。
在时间步长3,T2 230的可运行物R3,1 231响应于其每三个时间步长发生的调度执行而再一次在第二处理核心中执行。T1 210的要素R1,3 213在第一处理核心中执行,因此完成T1 210的迭代。在时间步长4,T1 210的另一迭代响应于每四个时间步长发生的其调度执行而在第一处理核心中执行。因此,在时间步长4,T1 210的可运行物R1,1 211执行。同时,T4 240的可运行物R4,1 241在第二处理核心中执行,这是因为T2 230的可运行物 R3,1 231之前已经执行并且第二处理核心可用于这样执行。在时间步长5,T1 210的执行响应于静态补偿214的引入而被延迟。这允许T2 220的可运行物R2,2 222在时间步长5在第一处理核心中执行,因此在每七个时间步长被命令的调度执行内完成T2 220的执行。因此,在T2 220的执行中没有延迟,并且在等待T2 220的结果的系统的响应时间中没有伴随延迟。在时间步长6,T1 
210的可运行物R1,2 212在第一处理核心中执行并且T2 230的可运行物R3,1 231响应于每三个时间步长发生的其调度执行再一次在第二处理核心中执行。在时间步长7,T1 210的可运行物R1,3 213在第一处理核心中执行,因此完成T1 210的另一迭代。
[0073] 在可运行物R1,1 211的执行之后引入静态补偿214使第一处理核心中的时间步长可用,在该时间步长期间较低优先权的T2 220可执行其可运行物。因此,在可运行物R1,1 211的执行后引入静态补偿214增加了较低优先权T2 220以及时的方式执行其可运行物而不影响T1 210的执行的响应时间的可能性。而且,引入静态补偿214改善了较低优先权任务,例如T2 220,的正时可预测性。
[0074] 图3用曲线图示出了对于基线利用315和最大限度利用325的设置/等待事件的敏感性评估,与在x轴310上示出的内燃发动机速度相关地绘制。利用被示出在y轴320上。为了评估使用设置/等待事件的正时分析,考虑并评估了带有十个时间触发任务和两个发动机同步任务的示例系统。与设置/等待事件机构密切相关的是两对任务: (i)带有6.25ms周期的主要和次要任务,以及(ii)带有12.5ms周期的主要和次要任务。任务对(i)具有5个可运行物而任务对(ii)具有68个可运行物。任务对(i)具有1个设置/等待事件结构,而任务对(ii)具有30个设置/等待事件结构。这种设置的正时分析使用该分析的双核心系统上被执行。在敏感性评估中,任务的执行时间增加,直到该分析计算系统中的一些任务刚好错过了其绝限。系统利用在此载荷下被记录为对于给定操作点的最大限度可实现利用。鉴于有两个发动机同步任务,发动机速度被从3500 RPM变到5750 RPM,同时测量最大限度可实现利用。结果指示设置/等待事件结构影响利用并且甚至在基线系统具有高利用时,系统也不能超过52%的利用。比较而言,如果系统不具有这种设置/等待事件结构,而是具有同样的最坏情况执行时间,那么系统利用可在3500RPM被增加127%并且在5750RPM被增加124%。这意味着系统可在更高的利用阈值被调度。这具有三个暗示: 额外的任务可使用CPU处理能力,或者,更慢的CPU可被采用,或者,具有更少的处理核心的处理器可被采用。注意到,资源的利用永远不会高于100%。这意味着系统可调度时的当前利用可被以例如1.27的因子增加。如果当前利用是60%,那么处理器利用的额外的7%(60%×1.27)可通过向上整合(up-integrating)额外的任务而被采用。换句话说,系统在67%利用时人被调度。其它因子可影响利用,包括由设置/等待事件结构引入的固有延迟。
[0075] 自旋锁基元(primitive)可被采用作为多核心操作系统中的运行时间核心之间任务同步的机构。自旋锁是同步机构,其中处理线程循环等待或自旋同时等待同步。线程保持工作但不是正在履行有用任务。一旦被获得,自旋锁被保持直到被释放,除非同步或另一动作释放了该锁。
[0076] 如本文所描述的,在访问任何共享资源之前需要可运行物来获得自旋锁。如果资源当前正被使用并且自旋锁正被保持,那么请求该资源的可运行物继续在该锁上自旋(运行)直到其被释放或者直到其被在同一核心上的另一更高优先权可运行物抢先。不过,自旋的可运行物可被抢先。这作为用于互相排斥的动态运行时间机制。自旋锁可被采用以通过避免由设置/等待事件引入的开销而改善系统利用。可使用自旋锁基元在多个处理核心上保护共享逻辑资源。访问任何互相排斥的共享资源的任务可在这样做之前保持该自旋锁。如果任务试图获得当前正被一些其它任务保持的自旋锁,那么该任务自旋或忙于等待该锁,直到其被该任务释放。该机制因此提供了对在多核心处理器中的共享资源的互相排斥的支持。
[0077] 在多核心处理器架构中,自旋锁和设置/等待事件两者可被采用。对于互相排斥约束需要被静态强制执行的任务,设置/等待事件被采用。对于互相排斥约束可被动态强制执行的任务,自旋锁和/或多处理器优先权上限协议(MPCP)可被采用。例如,评估带有多个传感器致动器的系统,其中处理在多核心处理器上进行。处理任务本身可将设置/等待事件约束用于静态定义的互相排斥。传感器和致动器数据处理任务可使用运行时间互相排斥基元来确保一致的数据读取。尽管自旋锁从功能角度看成功地确保了互相排斥,他们从正时角度看可能会产生多个问题。与自旋锁相关联的正时挑战包括死锁、优先权反转、和互斥等待。死锁发生在保持锁的任务被需要同一锁的更高优先权任务抢先。在这种情况下,请求该资源的更高优先权的任务将会永远自旋或忙于等待。解决该问题的一种方案是设置设计约束,该约束防止在同一处理核心上的任务使用自旋锁。
[0078] 优先权反转发生在高优先权任务等待低优先权任务释放资源时。使用自旋锁可导致优先权反转的无限制的持续,这产生了对带有严格绝限的任务的重大挑战。在存在许多中等优先权任务和在任务上的多重优先时,高优先权任务可能最终会面对无限制量的优先权反转。优先权反转是自旋锁的更严重的问题,因为高优先权任务基本上在它们的处理核心上都基本上忙于等待/浪费循环。优先权反转的长期持续因此导致有用系统利用的显著损失。限制这种优先权反转对实现正时可预测和更好的利用都是重要的。
[0079] 互斥等待发生在任务在获得对共享资源的访问时被互斥等待。在一个示例中,自旋锁在较低优先权任务之间被来回地获得和释放,甚至在较高优先权任务正等待该自旋锁时。在没有保证硬件测试和设置实施尊重任务优先权时,这一系列动作是可能的。当使用自旋锁时,互斥等待可能出现,这是因为测试和设置操作的硬件调度可能更有利于某些处理核心,或者在该锁上自旋的任务可能在其处理核心上每当该锁被其它任务释放时就被抢先。与自旋锁的本质一样,在这种互斥等待期间忙于等待也因被浪费的处理器循环而导致利用损失。
[0080] 带有自旋锁的任务响应时间可被确定以实现受限制的正时行为,该行为考虑了设计约束和假设。这包括通过添加说明锁等待延迟的自旋时间和较低优先权任务的非抢先持续的阻挡时间来使用在方程1、2和3中提供的分析。阻挡期间被如下计算:锁等待延迟被使用先前描述的设计约束组来确定。每次互相排斥的任务,即,互相排斥的事件(互斥元)M被任务Ti的可运行物Ri,j请求时,使用自旋锁的锁等待时间就被限制为锁等待延迟(I(M) – 1)CM,其中CM是最大锁保持时间。可计算每个任务Ti的累积的自旋时间CI(i,j)。互斥元是一种过程,其确保在同一时间长度期间,没有两个过程或处理线程访问共享逻辑资源,例如共享存储器超高速缓存或位置,因此防止共享资源的损坏。确定包括每个任务Ti的每个被周期触发的可运行物Ri,j的每个事件的非抢先持续时间。较低优先权任务的非抢先持续时间Bn(i, j)通过使用最大非抢先持续时间被限制,该最大非抢先持续时间被确定为在由带有比Ti更低优先权的任何任务所能保持的全部互斥元M中的最大I(M)CM。较低优先权任务被假设是在这个整个持续时间上是非抢先的。对于由先前的可运行物Ri,j (j>1)的完成触发的可运行物Ri,j (j > 1),非抢先阻挡持续时间Bn(i, j)被设置为0。
[0081] 自旋期间CI(i,j)被添加到全部任务(包括较高优先权任务)的每个可运行物Ri,j的最坏情况执行时间。阻挡期间Bn(i,j)需要仅被应用于任务Ti,其响应时间被使用方程2计算。2.所描述的上述分析因此被扩展到包括使用自旋锁。
[0082] 图4示意性地示出了用于分析自旋锁的正时的过程,包括第一和第二处理核心410和420,以及共享软件资源430,该资源或者被获得以用于执行415或者处于自旋425。这允许引入设计约束来能实现正时分析并且允许就地利用设计约束开发正时分析。
[0083] 图5用曲线图示出了与采用自旋锁的任务执行相关联的正时曲线和消逝的时间步长之间的关系。任务被示出为在x轴505上与消逝的时间成重合关系,并且包括试图在第二处理核心上执行的任务T1 510,试图在第一处理核心上执行的任务T2 520,和试图在第一处理核心上执行的任务T3 530。最初,T3 530处于忙碌/等待模式515,该模式带有采用暂停全部中断功能545的锁保持状态525。在时间步长540,T1 510进入忙碌/等待模式515,其在时间步长550改变到锁保持状态并且采用远程阻挡。T2 520在时间步长550开始以抢先阻挡模式535运行。因此,为了限制忙碌-等待时长,控制系统在获得任何自旋锁之前采用暂停全部中断功能,因此能仅在释放自旋锁之后实现中断。到任一自旋锁M的相继请求在时间上间隔I(M)CM,其中I(M)是访问自旋锁M的任务量而CM是M被保持的最大持续时间,即,锁保持时间。
[0084] 图6用曲线图示出了对于基线利用615和最大限度利用625的自旋锁敏感性评估,其被与在x轴610上的发动机速度相关地绘制。利用被示出在y轴620上。在这种情况下,引入了在双核心处理器上共享的全局逻辑资源。采用的是每个资源最少2个任务且每个资源最多3个任务,每个任务不多于2个资源。每个任务花费的时间百分比在其全局临界段中的每一个上被增加,直到该系统被分析确定为刚好错过其绝限。设置/等待事件结构被忽略。如在这些结果中所见的,该系统履行得非常好,允许每个任务在全局共享资源上至多花费其执行时间的50%。
[0085] 设置一组限制性的设计约束能够导致由自旋锁限制的响应时间。不过,自旋锁机制仍然不能确保资源请求的按优先权顺序服务。为了放宽假设并且确保优先权驱动的服务,可采用多处理器优先权上限协议(MPCP)。MPCP被采用以实现在多核心处理器中的任务同步,从而通过放宽假设来实现对资源请求的按优先权顺序服务。所感兴趣的期间包括全局互斥元MG,其是在不同的处理核心上展开的任务所共享的互斥元。对应的临界段被称为全局临界段(GCS)。相反,局部互斥元仅在同一处理核心上的任务之间被共享,并且对应的临界段是局部临界段。当任务T获得MG,其以被如下设置的优先权执行与全局互斥元MG对应的GCS:
[0086] p(MG) = p(G)+p(T0)
[0087] 其中p(MG)是优先权上限,
[0088] p(G)是基础优先权水平,其大于在该系统中任何其它通常执行的任务的优先权水平,以及
[0089] p(T0)是最高优先权任务T0的优先权,其可锁定全局互斥元MG。
[0090] 在全局资源被共享时每个MPCP最小化远程阻挡和优先权反转。每个MPCP包括下列特征,其中包括任务使用分配的优先权,除非在临界段中;以及单个处理器优先权上限协议被用于对局部互斥元的全部请求。在由全局互斥元MG防护的全局临界段(GCS)内的任务具有其GCS优先权,即(p(G) + p(T0))。如果T0的GCS优先权大于T*的GCS优先权,那么在GCS内的任务能够抢先在GCS内的另一任务T*。当任务T请求全局互斥元MG时,如果全局互斥元MG未由另一任务保持,那么全局互斥元MG可借助在共享存储器上的原子事务被授予给T。如果对全局互斥元MG的请求不能被授予,那么任务T在被抢先之前被添加到在MG上的优先权队列。被用作队列插入的关键的优先权是被分配给T的通常优先权。当任务T试图释放全局互斥元MG时,等待MG的最高优先权任务Th得到信号通知并且变为有资格以其GCS优先权在Th的主处理核心上执行。如果没有任务在全局互斥元MG上被暂停,那么其被释放。
[0091] 图7示意性地示出了多核心处理器优先权上限协议的实施方式,包括第一和第二处理核心710和720,具有对应的第一和第二优先权队列705和715,其导致由共享软件资源730执行的共享优先权队列725。每个全局互斥元维持等待获得它的任务的优先权队列。当任务获得全局互斥元时,其准备好在全局互斥元的远程优先权上限处在其对应的处理核心上执行。优先权被建立为全部任务通常执行优先权的最大值和全部访问共享软件资源的任务的通常优先权的最大值,这在本文中被描述。
[0092] 图8用曲线图示出了与多处理器优先权上限协议的执行相关联的正时曲线。在该系统中有四个任务,包括T1 810、T2 820、T3 830、和T4 840。任务T1 810和T2 820被分配给同一处理核心P1。任务T3 830被分配给第二处理核心P2。任务T4 840被分配给第三处理核心P3。任务T1 810和T4 840使用第一全局互斥元M1共享逻辑资源。任务T2 820和T3 830使用第二全局互斥元M2共享不同的逻辑资源。任务T1 810、T2 820、T3 830、和T4 840中每一个包括正常执行825和临界执行815,临界执行825对应具有高优先权的任务。最初,任务T1 810、T2 820、和T4 840处于正常执行825。在时间步长850,T4 840开始临界执行815。在时间步长852,T3 830开始临界执行815,并且T2 820开始正常执行825,其在时间步长854结束。
T2 820请求全局互斥元M2,其在第二全局互斥元M2在时间步长856被T3 830释放时获得该互斥元,因此允许T2以临界执行815执行。当T2 820在第二全局互斥元M2的远程优先权上限处完成执行时,带有更高远程优先权上限的第一全局互斥元M1在时间步长858被T4 840释放并且优先权被给予T1 810。这导致T1 810抢先T2 820,即使T2 820正保持第二全局互斥元M2,因为第一全局互斥元M1具有比第二全局互斥元M2更高的远程优先权上限。在时间步长860,T1 810完成了临界执行815,这允许T2 820以临界执行815操作,在时间步长862结束。多处理器优先权上限协议因此允许保持全局互斥元的任务被更高优先权的全局互斥元抢先,这在减少由高优先权任务访问的全局互斥元的锁等待延迟和锁保持时间方面是有益的。
[0093] 使用多处理器优先权上限协议的益处包括允许对共享资源的优先权驱动访问,其中每个全局互斥元具有在其上暂停的任务的优先权队列。当资源被释放时,其被给予在其上等待的最高优先权任务。这种性质不是由自旋锁提供的,其允许硬件测试-设置基元确定获得该资源的任务。使用多处理器优先权上限协议的另一益处包括正保持锁的任务的限制抢先。在MPCP下,全局优先权上限p(G)被采用,其允许保持互斥元的任务被具有更高远程优先权上限的互斥元抢先,其中p(M_G)代表远程优先权上限。这确保可具有短绝限的最高优先权任务的响应性。
[0094] 使用多处理器优先权上限协议的另一益处包括没有循环被浪费在忙于等待模式中,包括在MPCP的基于暂停的实施方式中,其中任务被允许在所请求的锁不可获得时暂停。任务被添加到在互斥元上的优先权队列并且其在资源被授予时得到通知。这避免了任何循环被浪费在忙于等待。不过,任务暂停本身引入了较低优先权任务执行和请求全局互斥元的可能性。这可导致在执行的之后时点上来自这些任务的抢先。为了避免这种惩罚,MPCP的基于自旋的实施方式可被采用,其中任务在所请求的锁上自旋直到其可获得。
[0095] 带有设置/等待事件的任务的前述响应-时间测试可被容易地扩展以处理带有MPCP的同步。阻挡期间被定义以用于全局-互斥元-等待延迟,和较低优先权全局-互斥元-保持持续时间。全局-互斥元-等待延迟被如下定义。任务利用MPCP获得优先权顺序中的全局互斥元。互斥元因此可被视为在固定优先权顺序中被调度的资源。访问全局互斥元M的任务Ti的可运行物Ri,j的阻挡时间BMi,j被定义如下。
[0096]
[0097]                                                              [4][0098] 其中
[0099]
[0100] 第一项对应于在Ti请求M时互斥元M可由任一较低优先权任务Tl保持的最大持续时间。第二项代表在任务Ti能获得M之前较高优先权任务Th能保持互斥元M的最大持续时间。因此 是关于全局互斥元M的任务Tl的最大全局-互斥元-保持时间。在MPCP下,保持全局互斥元M的任务仍能被保持带有更高远程优先权上限的互斥元的任务抢先。任务Tl的最大全局-互斥元-保持时间因此由如下的收敛给出。
[0101]
[0102]                                                  [5]
[0103] 在方程 5中,第一项CM代表在保持全局互斥元M时的最坏情况执行时间。第二项代表当Ti正保持全局互斥元M时可能出现的、当在与Ti同一处理核心上的任务Tk获得带有比全局互斥元M更高的远程优先权上限的互斥元M'时被该任务Tk的最大限度抢先。
[0104] 可运行物Ri,j的总全局-互斥元-等待延迟Bi,j通过在所有互斥元M上对来自Ti,j的每个访问的阻挡时间BMi,j求和而确定。Bi由在属于任务Ti的全部可运行物Ri,j上的等待延迟Bi,j的和代表。
[0105] 较低优先权全局-互斥元-保持持续时间被如下确定。每当带有比Ti低的优先权的任务Tl获得全局互斥元M时,其优先权被提升到M的远程优先权上限。这种远程优先权上限被定义为高于所有的通常执行优先权并且因此引起Ti的抢先,即使Ti没有保持任何锁。这种从较低优先权全局-互斥元-保持持续时间的抢先可通过每个可运行物Ri,j的阻挡期间Hi,j来适应。如果Ri,j被外部触发并且其在执行期间获得ρi,j全局互斥元,如下。
[0106]
[0107]                                                     [6]
[0108] 如果Ri,j(其中j > 1)由Ri,j-1的完成触发并且其在执行期间获得ρi,j全局互斥体,那么:
[0109]
[0110]                                                     [7]
[0111] 由任务Ti经历的总较低优先权全局-互斥体-保持持续时间Hi可通过在属于任务Ti的全部可运行物Ri,j上求和Hi,j来计算。
[0112] 在方程2中给出的最坏情况响应时间收敛可被改写为如下:
[0113]
[0114]                                                                [8][0115] 分析因此包括使用多处理器优先权上限协议(MPCP)的互相排斥。除了提供优先权驱动服务和受限正时性质以外,MPCP的使用还消除了使用自旋锁所要求的约束和假设。
[0116] 本公开已经描述了某些优选实施例和对它们的改进。本领域技术人员在阅读和理解说明书后能想到其它的改进和改变。因此,并非打算让本公开被限制到被认为是实施本公开的最优模式而被公开的特定实施例,相反,本公开将包括落入所附权利要求范围内的全部实施例。
[0117] 本文公式中,“and”表示“且”。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈