多核微处理器的控制方法与流程

文档序号:15072201发布日期:2018-08-01 00:05阅读:204来源:国知局

本发明涉及多核微处理器的控制方法,多核即多个又称为处理单元的内核。本发明属于使用多核处理器资源的实时处理领域。

本发明特别地但非限制性地应用于控制机动车辆的发动机的具有开放系统架构的计算机领域,该开放系统是可以根据标准接口重新使用应用软件的系统,或者是可以在执行过程中增加或删除新功能的称为适应性版本的系统。

这种开放系统架构可以是根据用于汽车的开放架构系统的autosar标准的架构(英语中又称为汽车开放系统架构),但对于本发明而言,这不是必须的。



背景技术:

直到过去几年,控制发动机的计算机一直使用具有单处理单元的处理器,即单核处理器。最近,出现了包括至少两个处理单元的处理器,又称为多核处理器,其计算能力比单核处理器的计算能力更高,同时使用的运行频率与单核处理器的运行频率相等。

通常,功能架构根据工作分配的需求或选择多样性的管理来将功能划分为子功能。通常,该功能划分基于多个计算内核上的软件分配方法。此外,对各个子功能之间的转换阶段的研究有时用于该功能划分。简而言之,目前,多核处理器的两个处理单元上的功能例如通过将内核的其中之一分配给开放系统架构的接口上的应用软件且将处理器的另一内核分配给基于系统的软件来实现的。通常,软件的可执行单元(entité)根据其激活类型被分组为各个软件任务。每个软件任务仅包括单一激活类型的可执行单元。因此,这些软件任务能够由任务监视器实时管理,任务监视器根据任务的触发类型来激活它们。

向多核处理器的转变是必要的。事实上,单核处理器的计算能力无法再像过去那样增加,特别是由于其使用频率的极限所限。

这存在以下问题。一方面,是关于对时间约束的满足。例如,在机动车辆的嵌入式系统领域,执行时间受到强烈的约束以获得车辆的构件性能和功能性能所需的反应能力。这对于车辆的动力学功能而言尤其如此,车辆例如是具有热力发动机的车辆,或者具有电力发动机的车辆,或者是组合热力发动机和电力发动机的混合动力车辆。

另一方面,是关于持续增加的处理量。例如,对于控制机动车辆的发动机的软件的处理量,这尤其是由于越来越严格的防污染标准以及越来越强烈的对于减少co2排放的低消耗的要求所导致的,而这会增加处理量。

理论上,多核处理器可以提供更强的计算能力,但它们需要在不同内核上并行处理,而这些处理直到现在都是依次在单个内核上执行的。

为了使多核处理器有效地工作,分布在不同处理单元上的处理必须不包含先后关系(relationdeprécédence)。换言之,处理单元必须能够以不同步的方式运行,而不会相互等待。

这对于使用多核处理器来说并非没有困难,特别是对于机动车辆的发动机的控制,因为这些功能通常包括从输出到输入的伺服回路控制。这些控制回路必须按照精确的顺序执行,并且无法被划分为在两个独立的处理单元上并行进行。

由此可见,在处理单元上分配全部或大部分的应用会在不同的处理单元之间产生工作负荷的不平衡,从而导致无法充分利用多核处理器的潜力。这在开放系统架构的控制发动机的计算机的机动车辆领域尤其如此,其中全部应用的计算负荷远大于基于开放系统架构的软件的计算负荷。

根据系统设计的现有技术,经常会出现一个功能和相应的软件模块分别包括子功能和不同激活类型的可执行单元的情况。这将导致难以将模块分布在微处理器的不同处理单元或内核上。

事实上,在autosar类型的开放系统架构的背景下,模块(即,autosar意义上的原子组件)不能在多个内核上分开(scinder)。因此,模块的所有可执行单元都必须在相同的内核或计算单元上运转(aller)。有时也可以在不属于开放系统架构的软件中发现这种约束,因为该约束仅与软件的设计有关,该软件通过不同的子功能将全局变量共享给一个功能。

另一方面,控制回路通常包含多个功能且产生为具有相同触发类型的不同子功能分配的可执行单元。这些可执行单元必须在其软件任务中遵循预定义的顺序来排序:因此这些可执行单元必须位于同一处理单元中。

因此,在这种常规设计中,必须将功能系统的大部分都放置在同一处理单元上,这会在该处理单元上产生超负荷的计算,而其它的处理单元未得到充分利用。

有时,在处理单元之间的先后关系的约束下,相同触发类型的可执行单元仍然分布在不同的处理单元上,以遵守这些可执行单元的执行顺序。这导致采用多核处理器的等待时间和潜在的响应时间大于采用单核处理器的等待时间和潜在的相应时间。这从实时性能的角度来看产生了可能变得十分重要的情况,特别是对于满足在多个处理单元上分配的周期性任务的周期的要求。



技术实现要素:

因此,基于本发明的问题是允许加速多核处理器的多个内核的处理,以便这些处理能够实时进行而没有延迟。

为了实现该目的,根据本发明提供了一种多核微处理器的软件任务的控制方法,所述多核微处理器包括多个内核以作为并行工作的处理单元,这些软件任务包括:

-具有可变周期的软件任务,称为同步性软件任务,

-具有固定周期的软件任务,称为周期性软件任务,

-既非同步性也非周期性的软件任务,

这些任务被分组为周期性软件任务的至少一个第一组和同步性任务的至少一个第二组,并且周期性任务的组和同步性任务的组由特定于它们的微处理器的至少一个内核来处理;既非同步性也非周期性的任务由周期性任务的第一组的所述至少一个内核或同步性任务的第二组的至少一个内核来处理,或者由形成至少一个第三组的除了特定用于同步性任务和周期性任务的内核之外的至少一个其它内核来处理。

技术效果在于:获得不会在微处理器的不同处理单元或内核之间产生等待时间的软件架构。具有发动机的同步性触发类型的可执行单元可以被分组为一个或多个任务,并且由除了处理周期性任务的处理单元之外的特定的一个或多个其它处理单元(即,一个或多个微处理器的内核)管理。

软件任务的这种分配使得可以更加规律地执行周期性任务,而不会被通常优先的发动机的同步性任务中断,因此使得周期性任务以稳定且确定的顺序执行。因此,该系统更易于生效,因为周期性任务的响应时间边界不再取决于待控制的一个或多个构件的运行条件。

例如,对于集成在机动车辆中且控制发动机的控制器的非限制性的情况,运行条件包括发动机转速。在与发动机的控制器的微处理器中的最大计算负荷相对应的满发动机转速的情况下,计算负荷在管理发动机的同步性任务的处理单元和管理周期性任务的处理单元之间被良好地分配。

通常,根据本发明,根据微处理器中可用的处理单元或内核的数量并且根据每种类型的任务的权重,可以基于任务的触发类型来优化不同处理单元的处理的分配,触发类型基本上是周期性的或同步性的且不再在功能架构上。

有利地,所述至少一个第三组的任务包括以随机方式激活的任务。考虑到以随机方式激活的任务的无法预测的特征,为这些任务提供专用的至少一个特定处理单元或内核也将是有利的。以这样的方式,周期性或同步性任务不会被以随机方式激活的任务所干扰。

有利地,以随机方式激活的任务包括通过由微处理器控制和/或命令的功能或者由专用于该功能且由微处理器控制的至少一个控制和/或命令构件所不期望的中断而激活的任务。以随机方式激活的任务中的一部分包括由微处理器控制的一个或多个构件的损坏。

有利地,用于周期性任务的第一组被分为对应于具有不同周期的任务的至少两个子组,每个子组由不同的内核处理。

有利地,第一子组对应于执行周期小于或等于第一阈值的软件任务,而第二子组对应于执行周期大于第二阈值的软件任务,所述第一阈值小于或等于所述第二阈值。

有利地,至少一个可执行单元专用于第一组和第二组的任务的一部分中的相应的至少一个任务。因此,本发明提出一种软件模块,其相对于现有技术而言能进行更精细的划分,以便包含仅有单一激活类型的可执行单元。因此,可以将任务监视器的任务分配到不同的内核上。

有利地,任务监视器至少用于第一组和第二组的每个任务,并且被集成到特定用于所述任务的微处理器的内核中。

有利地,至少一个同步性任务与通过控制器控制的以可变转速旋转的发动机的一个或多个同步性功能相关,这些功能具有可变的执行周期且该可变的执行周期基于在给定时刻的发动机转速。

通过对物理系统进行分析,可以观察到发动机的同步性功能具有可变的执行周期:例如,根据发动机的转速,发动机的同步性任务有时比周期为10ms的任务更慢,而有时却更快。因此,在已知物理系统的构成的前提下,在至少两个不同的内核上并行处理发动机的同步性任务和周期性任务是有利的,发动机的同步性功能与周期性任务之间通常没有先后关系,反之亦然。

本发明还涉及一种用于控制器的具有多个内核的处理器,其特征在于,其实施这种方法。

本发明还涉及一种机动车辆的控制器,其特征在于,其包括如前所述的处理器。

最后,本发明涉及一种机动车辆,其包括至少一个发动机以及这种控制器,所述控制器至少管理所述至少一个发动机的运行以及车辆的辅助驾驶,所述辅助驾驶以单独地或以组合的方式包括以下系统:车轮的防抱死系统或abs、程序化的电子稳定系统或esp、自动变速箱或bva、电动辅助转向系统。

附图说明

通过阅读下文作为非限制性示例给出的详细描述并参照附图,使得本发明的其它特征、目的和优点得以显现,其中:

-图1是具有n个计算单元的多核处理器的示例的示意图,该处理器能够实现根据本发明的方法,

-图2是根据现有技术的根据多核处理器中的功能和子功能进行功能划分的示例的示意图,

-图3是在能够实现根据本发明的方法的处理器中的m个模块和每个模块中的可执行单元的软件组合的示例的示意图。

应当注意,附图是作为示例给出的,而不限制本发明。这些附图旨在给出便于理解本发明的原理的示意图。

在下文中,以组合的方式参照所有附图。当参照一个或多个特定附图时,这些附图将与其它附图一起用于识别所指的附图标记。

具体实施方式

本发明涉及对在实现不同处理单元的处理器中的任务处理的组织,其中,不同处理单元即多核处理器的不同内核。本发明提出使软件架构化(architecturer)从而能够根据有利的方案将其分布在不同的处理单元上,以最大化处理单元或内核的使用并获得最佳的响应时间。

首先,将回顾包括多个独立的处理单元的多核处理器。

根据图1,多核处理器1的特征在于其实现了多个处理单元1.1,1.2至1.p。作为非限制性示例,经常使用的机动车辆的发动机的控制器的多核处理器可以包括三个处理单元。该示例将用于说明本发明,然而有利地可以以类似的方式使用包括更多个处理单元的处理器,例如包括6个或大于3的任何其它数量个处理单元的处理器。

为了获得尽可能快的响应时间,多核处理器的处理单元应当能够以独立的方式工作,而无需彼此等待。为此,所述多核处理器开始实现并行处理。这在图1中示出,其示出了具有p个计算单元作为处理单元的多核处理器的示例。

在下文中,将回顾已知的功能架构。通常,功能架构根据设计工作的分配需求或者根据选择多样性的管理将功能划分为子功能。

参照图2,其示出了对于可能具有两级的功能架构,根据功能和子功能进行功能划分的示例。进行如下区分:

-功能组或功能系统2,

-功能,数量为f,附图标记为2.1至2.f,

-子功能,又称为基本功能,功能2.1中的数量为s1,功能2.f中的数量为sf。

在实时运行的系统的现有技术中已知,基本功能的激活机制可以是具有固定周期的周期性的,或者是具有可变周期的循环性的,或者是随机事件。

在下文中,将通过采用这些激活类型的示例来说明本发明。然而,应当注意,其它类型的激活也可以以类似的方式考虑在内。

图3示出了根据现有技术的功能设计产生的软件架构的示例,但是该软件架构能够实现根据本发明的方法,该架构包括m个模块和每个模块中的可执行单元。

在该图3中,可以区分为:

-软件3,

-软件设计的基本单元,在下文的描述中称为模块,数量为m,标记为3.1至3.m,其对应于系统架构的含义中的软件组件,

-软件的基本执行单元,对应于由特定机制而各自激活的模块的部分,在下文中称为可执行单元,模块3.1中数量为r1,模块3.m中的数量为rm。

参照图2和图3,功能系统2对应于软件3,功能2.x对应于模块3.x,基本功能2.x.y对应于可执行单元3.x.y。

在软件的实现中,根据现有技术已知,可执行单元按照软件任务的的触发类型进行分组。换言之,一个软件任务是具有同一触发类型的一组可执行单元。任务监视器的作用在于,逐一激活不同任务的触发。

在机动车辆的发动机的控制器领域,可以非限制性地引用基本功能2.x.y的不同激活类型的示例:

-具有约10ms的固定周期的周期性激活,

-具有约5ms的固定周期的周期性激活,

-具有可变周期的循环事件激活。在例如关于同步活塞位置、发动机转速的发动机的控制器的情况下,该激活又称为发动机的同步,

-基于硬件的随机事件激活,又称为中断。

本发明在于设计软件的功能架构,其具有通过按照激活类型分开的可执行单元3.x.y定义的附加的功能划分等级。因此,每个功能仅包括一种激活类型的基本功能。

本发明涉及一种通过微处理器实现软件任务的控制方法,所述微处理器包括多个内核作为并行工作的处理单元,这些软件任务包括具有可变周期的所谓的同步性软件任务、具有固定周期的所谓的周期性软件任务、既非同步性也非周期性的软件任务。根据本发明,这些任务被分组为周期性软件任务的第一组和同步性任务的第二组,并且周期性任务的组和同步性任务的组由微处理器的至少一个特定的内核来处理,即由至少一个不同的内核来处理。

既非同步性也非周期性的软件任务由周期性任务的第一组的所述至少一个内核或同步性任务的第二组的至少一个内核来处理,或者由形成第三组的除了特定用于同步性任务和周期性任务的内核之外的至少一个其它内核来处理。如下文将会看到的那样,第二个解决方案是优选的。

对发动机的控制器的软件的分析表明,大部分的计算负荷分配给两个大组,即同步性任务的组和周期性任务的组。发动机的同步性任务与周期性任务之间完全没有先后关系。因此,同步性任务可以与周期性任务并行进行。

通常,在发动机中,同步性软件任务优先于周期性软件任务。当周期性软件任务被委托给控制器时,只要这些周期性软件任务已经开始,它们就可以重新使用(redonner)主程序的控制器,而无需结束其执行。

另一组,称为任务的第三组,包括以随机方式激活的软件任务。以随机方式激活的任务主要可以包括通过由微处理器控制和/或命令的功能或者由专用于该功能且由微处理器控制的至少一个控制和/或命令构件所不期望的中断而激活的任务。这些中断通常是硬件上的中断。在发动机中,这些以随机方式激活的软件任务优先于同步性软件任务。

在具有实现处理单元的三个内核1.1,1.2至1.3的处理器的非限制性情况下,本发明允许例如按照以下分配来更好地平衡三个内核之间的计算负荷:

-用于例如周期大于或等于10ms的慢周期性任务的处理单元,

-用于发动机的同步性任务的处理单元,

-用于硬件中断上的任务和例如周期小于或等于5ms的快周期性任务的处理单元。

对系统的额外分析表明,功能设计通常会产生周期性任务,其中子功能在不同激活周期之间没有先后关系。

因此,可以在不同的处理单元进行并行处理,而不会相互减慢具有不同周期的周期性任务。周期性任务的第一组可以被分成至少两个子组,子组对应于执行具有不同周期的软件任务,每个子组由微处理器的不同内核处理。因此,第一子组可以对应于执行周期小于或等于第一阈值sp1的软件任务,第一阈值例如为5ms,而第二子组可以对应于执行周期大于第二阈值sp2的软件任务,第二阈值例如10ms,其中第一阈值sp1小于或等于第二阈值sp2。

所有这些都可以实现为最大化总体的处理能力且最小化系统的响应时间。这要求我们将已经基于细分的功能2.1至2.f的软件架构分为子功能2.x.y,从而在每个软件模块3.1至3.m中获得具有单一激活类型的可执行单元3.x.y。

因此,至少一个可执行单元3.x.y可以专用于第一组和第二组的软件任务的一部分的相应的至少一个软件任务。通常,除非多个软件任务相似,否则每个软件任务至少可以具有一个可执行单元3.x.y。在上文对现有技术的描述中提到的任务监视器至少可以在本发明的范围内特定用于第一组和第二组的每个软件任务,并且可以被集成到特定用于所述任务的微处理器的内核中。

根据本发明,可以在不同的处理内核1.1,1.2至1.p之间分配计算负荷,从而减少计算负荷并且改善响应时间。

本发明还涉及用于控制的具有多个内核1.1,1.2至1.p的处理器,其特征在于,其实现了这种方法。

在非限制性但有利的应用中,本发明还涉及一种机动车辆的控制器,其特征在于,其包括上文所述的处理器。

现在,将在用于机动车辆的控制器的范围中开发本发明,该控制器主要是还可以控制机动车辆的其它功能的发动机的控制器。这是本发明优选的而非限制性的应用。

在这种情况下,当至少一个同步性任务与通过控制器控制的以可变转速旋转的发动机的一个或多个同步性功能相关时,这些功能具有可变的执行周期,该可变的执行周期基于在给定时刻的发动机转速。

特别地,对于发动机的控制器的特定且非限制性的情况,周期性任务中的大部分首先由周期为10ms的软件任务构成,然后由周期为5ms的软件任务构成。如果设置有足够的处理单元,则有利地可以为大部分的10ms的任务预留一个处理单元,并将5ms的任务置于另一处理单元中。

最后,本发明涉及一种机动车辆,其包括至少一个发动机以及至少管理所述至少一个发动机的运行的这种控制器。

管理发动机的运行指的是管理发动机的空气供应、燃料供应及其排放,排放尤其是涉及排气管线及其所有外围设备中的污染成分的消除,所述外围设备例如是从发动机的排气到进气的再循环管线、涡轮增压器、润滑系统以及在广泛意义上与驾驶舱的空调相结合的冷却系统。

该控制器还可以控制车辆的辅助驾驶,辅助驾驶单独地或以组合的方式包括以下系统:车轮的防抱死系统或abs、程序化的电子稳定系统或esp、自动变速箱或bva、电动辅助转向系统,但不限于此。

在本发明的范围内,还可以将微处理器用于多种类型的车辆,这通过增加新的软件功能来实现,而无需重新设计微处理器的电子设备。可用于新的软件功能的场景已经通过实施根据本发明的方法而增多。

本发明不限于仅作为示例给出的所描述和图示的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1