CN109690488A - 用于在多核处理器上分配分区的方法和设备 - Google Patents
用于在多核处理器上分配分区的方法和设备 Download PDFInfo
- Publication number
- CN109690488A CN109690488A CN201780055198.5A CN201780055198A CN109690488A CN 109690488 A CN109690488 A CN 109690488A CN 201780055198 A CN201780055198 A CN 201780055198A CN 109690488 A CN109690488 A CN 109690488A
- Authority
- CN
- China
- Prior art keywords
- subregion
- core
- sequence
- processor
- time
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012512 characterization method Methods 0.000 claims abstract description 5
- 230000015654 memory Effects 0.000 claims description 43
- 238000009826 distribution Methods 0.000 claims description 10
- 238000005192 partition Methods 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000002955 isolation Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing the number of cache misses; Data prefetching
-
- 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种用于在多核处理器的核上分配分区的序列的分区的方法和设备。该方法使得可以识别表征多核处理器的硬件架构的参数,以及表征序列的分区的初始排序的参数;然后对序列的每个分区进行文件配置和分类,以便将每个分区的执行分配给多核处理器的核,同时保持分区的初始顺序排序。
Description
技术领域
本发明涉及机载系统领域,具体地涉及一种用于在航空电子计算机的多核处理器上分配分区的方法和设备。
背景技术
民用航空电子计算机受到高度约束的安全性要求,因此不同于例如用于汽车系统或工业系统或军事系统等的其它搭载的计算机,以特定的方式进行设计。事实上,在客机飞行期间计算机的故障可能对其众多乘客造成灾难性后果。这些系统实时运行的关键特征是系统的响应时间。这是因为实时系统的基本特征是其响应时间在所有情况下都必须小于称为到期时间(或根据专业英语术语的“最后期限”)的预定值。实际上,软件任务的序列或帧的执行时间必须是确定性的和可重复的。诸如ED-12C/DO-178C、ED-80/DO-254、ED-124/DO-297和ARINC 653等专用的标准和规范规定了用于确保计算机应用程序执行过程中时间确定性的具体方法。出于安全考虑,考虑的执行时间是最坏情况下的执行时间,或者是根据专业英语术语的“最坏情况执行时间(Worst-Case Execution Time,WCET)”,这是系统内外发生各种不良事件的最长时间。为了使这些不良影响最小,一种方法是在时间和存储空间方面,在软件产品的功能子集之间设置严格的隔离。在软件应用程序之间使用分区的方法是已知方法,这些方法基于利用存储器管理单元(MMU)的专用硬件资源的存储空间中的地址虚拟化,并且基于及时对分区的静态排序。
J.Littlefield-Lawwill等人的文章“System considerations for robust timeand space partitioning in integrated modular avionics”(978-1-4244-2208-1/082008IEEE)描述了实时操作系统(RTOS)在ARINC 653标准的背景下的时间分区。
这种隔离方法在单核处理器上有效运行,包括当某些不利于确定性的功能被禁用时和/或当应用时间余量时。
然而,由于航空电子应用程序越来越多且复杂,例如对于更精确的4D轨迹控制,或者对于新一代的驾驶舱的数据或显示集成,航空电子应用程序需要更高水平的性能。另一方面,当前的机载计算机系统在单核计算机上部署应用程序,其不能通过提高工作频率来提供更好的性能(具体地是因为亚微米晶体管中的漏电流的增加)。
因此,需要更高性能的计算机。多核处理器在性能、功耗和成本之间表现出良好的折衷。另一方面,尽管这些处理器理论上满足性能要求并且符合航空电子设备的体积、重量和功耗限制,但目前并不建议将这种多核处理器用于航空电子设备,因为没有确保空间和时间隔离的基本要素。实际上,多个核对同一芯片上的共享资源的并行访问导致争用,这严重降低了时间确定性。这种相互争用被称为“干扰”。
因此,多核处理器特有的问题是,如果多个核同时请求相同的共享资源(包括访问互连总线或访问存储器层次结构的请求),则必须在硬件处进行仲裁以同意一个核的访问并阻止其它核直到事务结束。仲裁的缺点包括应用程序执行时间的可变性。
例如,对于用于个人计算机、服务器或移动终端的非实时多核计算机,执行时间的可变性不一定是问题,这是因为对于这些设备,平均执行时间仍然优于利用单核处理器,并且异常长的执行时间仍然可以接受。
但是,对于关键的实时应用程序,由于干扰引起的可变性严重降低了评估最坏情况执行时间(WCET)的能力,违背了认证要求。
Vestal等人的专利申请US2010/0199280A1提供了用于航空电子领域中的多核处理器的分区解决方案。该解决方案旨在估计干扰对在多核处理器上执行的应用程序的影响,然后修改这些应用程序的顺序以使这种干扰的影响最小。这种修改需要对系统进行昂贵的重新认证,并不确保不存在干扰。
因此,需要提供一种克服上述缺点的解决方案。本发明满足了这种需要。
发明内容
为了实现该目的,本发明的目的是提出一种用于在多核处理器上对软件任务进行排序的设备和方法,其特别适用于关键的实时系统。
本发明的方法具有以下优点:
-符合航空电子领域的限制,因此对于航空电子设备管理机构而言是可以接受的并且是可证明的;
-可以重复使用为单核处理器建立的应用程序开发过程;
-不需要修改现有的应用程序;
-可以提高对存储器性能敏感的应用程序的性能;
-可以在处理器中提供更大的热均匀性。
为了实现期望的结果,提出了一种由计算机实现的用于在多核处理器的核上分配分区的序列的分区的方法。该方法包括以下步骤:
-识别表征多核处理器的硬件架构的参数;
-识别表征包括多个分区的序列的分区的初始排序的参数,所述参数至少包括分区的数量、分配给每个分区的时间间隔、分区的激活时间,以及序列的总执行时间;
-根据架构和初始排序的参数为序列的每个分区生成配置文件;
-根据分区的配置文件对分区进行分类;
-根据分类将序列的每个分区的执行分配给多核处理器的核,同时保持分区的初始顺序排序。
在一个实施方案中,识别硬件架构的参数至少包括在核的数量、共享和/或私有存储器的层次结构、存储器控制器和互连总线方面来定义架构。
有利地,分区的配置文件包括确定可能具有性能增益的分区,以耦合到专用存储器。
或者,对分区进行文件配置的步骤包括确定其执行产生要减少的热点的分区。
在一个实施方案中,配置文件的步骤考虑了用于估计每个分区的存储器访问的空间和时间局部性的标准、每个分区的存储器访问的次数、所访问的数据量以及处理器负载。
分类的步骤可以包括基于估计的标准来计算每个分区的值,并根据获得的值对分区进行分类。
根据一个实施方案,可以在分配的步骤之后运行执行序列的步骤。
在一种配置中,该方法包括在不执行分配给核的分区的时间间隔期间禁用所有已分配的核的步骤。
在另一种配置中,该方法包括使分区的执行彼此同步的步骤。
本发明还包括用于在多核处理器的核上分配分区的序列的分区的设备,该设备包括用于实现所要求保护的方法的步骤的装置。
本发明可以以计算机程序产品的形式应用,该计算机程序产品包括当在计算机上执行程序时用于执行所要求保护的方法的步骤的代码指令。
附图说明
将参考以下附图来公开本发明的各个方面和优点以支持对本发明的优选但非限制性的实施方案的描述:
图1示出了可以应用本发明的方法的多核处理器架构;
图2示出了分区的顺序单核排序的示例;
图3示出了在本发明实施方案中的分区的顺序多核排序的示例;
图4示出了根据本发明实施方案的用于将分区分配给核的方法的一系列步骤。
具体实施方式
以下描述适用于提供对本发明的原理和具体应用的清楚理解的示例,但是不以任何方式穷举并且必须允许本领域技术人员在保留相同原理的同时进行修改和设计变体实施方案。因此,提供本发明的描述是为了说明航空电子计算机领域的优选实施方案,但是该描述是非限制性的,并且可以用于受益于使用多核处理器的其它领域。
图1以简化的方式示出了可以应用本发明的方法的多核处理器架构(100)。
多核处理器包含多个处理器核,其通常可以在2到12之间变化。处理器(100)包括称为“L1”高速缓存存储器的第一级高速缓存存储器(104)以及称为“L2”高速缓存存储器的第二级高速缓存存储器(106、108)。第一级高速缓存存储器(104)分别与处理器核(102)相关联,并且被称为私有高速缓存存储器。第二级高速缓存存储器可以是对特定处理器核私有的存储器(106),或者是在多个核之间共享的存储器(108)。处理器还可以包括称为“L3”高速缓存存储器的共享的第三级高速缓存存储器(未示出)。
多核处理器还包括一个或多个存储器控制器(112)(其可以是专用英语术语中称为“双倍数据速率”(DDR)类型的外部存储器),以及各种共享输入-输出(“I/O”)外围设备(114)。处理器的所有元件通过共享的互连总线或一组总线或网络(110)互连。
处理器还包括用于控制软件任务或应用程序的分区的排序模块(116)。该模块通常以软件的形式实现,根据情况称为管理程序或实时操作系统,该软件专门设计用于根据ARINC653标准确保分区之间的时间和空间隔离。
图2示出了在单核处理器(C0)或仅使用一个核的多核处理器(C0到CN)的情况下根据现有技术的分区的示例。横轴表示时间,纵轴表示处理器的核。在该示例中,在一个序列期间执行四个分区。以循环模式(P1、P2、P3、P4)重复分区,仅示出一个模式。分区可以具有不同的持续时间。在每个分区内,顺序执行一个或多个软件任务“T”。因此,在第一分区“P1”内执行三个任务“T1-1”到“T1-3”,然后,在第二分区“P2”内执行两个任务“T2-1”和“T2-2”,在第三分区“P3”内执行单个任务“T3-1”,在第四分区“P4”内执行四个任务“T4-1”到“T4-4”。每个分区之间的时间隔离由竖直虚线示出,并且因为任何已知的时间隔离方法都是可行的,将不再更详细地描述。分区之间的间隙对应于系统时间,从而能够根据操作系统进行排序。
概括地说,如图3所示,本发明的原理在于为属于包括多个分区的帧的每个分区分配单独的处理器核,而不修改分区的顺序。分区的顺序保持不变,每个分区部署在不同的核上,并且每个分区的核有利地仅执行一个分区。有利地,所提出的机制在多核处理器中提供性能增益的获益,同时遵守单核处理器中的现有约束。
因此,在图3(其使用与图2的示例相同的示例)中,示出了包括四个分区的序列。第一分区“P1”在核“C0”上执行,第二分区“P2”在核“C1”上执行,第三分区“P3”在核“C2”上执行,第四分区“P4”在核“C3”上执行。本领域技术人员将理解,图3仅仅是简化的示例,选择该示例以提供对本发明原理的清楚理解,而不以任何方式限制分区的数量、每个分区内的任务的数量、每个分区的持续时间或分区要分配的核的数量。
在序列中的分区的数量小于或等于可用的处理器核的数量的实施方案中,根据本发明的原理将分区分配给处理器核提供了对存储空间访问方面的获益(gain)。这是因为,由于每个分区都部署在为其分配的核上,因此该分区独占使用与该核相关的高速缓存存储器。此外,由于保持了分区的顺序排序,因此保留了时间隔离的约束,在前一分区结束之后,在给定时刻只有一个分区可执行。
有利地,静态顺序排序确保不存在干扰,并因此确保执行的完整排序,这类似于在同一核上执行所有分区。此外,单个核不用受到删除存储器的残留数据和指令的要求,如单核排序中的情况,因为每个核总是执行相同的分区,并且该核可以将该信息保存在高速缓存存储器中以在下次激活时激活分区。有利地,本发明的原理使得可以节省在禁用私有高速缓存存储器上花费的时间以及在每次激活分区时将数据从外部存储器重新加载到其中所花费的时间。
在处理器架构被称为“群集化”(其具有由核的子集共享的L2高速缓存存储器(例如图1中的108))的实现模式中,本发明的原理使得在第一变体中可以将分区的分配限制为每个群集或核的子集的单个核,并且其运行就像L2高速缓存存储器是私有的一样。在另一变体中,相同群集的所有核用于在共享L2高速缓存存储器的情况下运行。然后,本发明可以仅应用于私有高速缓存级别。
或者,在另一变体中,可以指定优化的群集内策略,例如通过着色方法或通过L2高速缓存或MMU的配置提供L2高速缓存的空间分区,如果处理器允许的话。
在序列中的分区数量大于处理器上可用的核数量的实施方案中,根据本发明的分配分区的方法使得可以确定需要大多数资源的分区或最关键的分区,从而能够将这些分区的每一个分配给专用核,并保留所有其它分区的单核运行。因此,有利地,该方法使得可以处理将不适合在核上单独执行的所有分区分配给剩余核的情况。为了确保在单个核上执行的分区的时间隔离,可以在从一个分区移动到另一个分区期间激活高速缓存禁止过程,以确保每个分区在已知的系统状态下开始。或者,如果在此期间在该核上没有执行其它分区,则可以省略在该核上的相同分区的两个连续执行之间的禁止。
图4示出了根据一个实施方案的用于将分区分配给多核处理器的多个核的方法的一系列步骤(400)。该方法的步骤可以由如图1所示的多核处理器的专用执行模块执行。该方法从识别多核处理器的硬件架构的参数的步骤(402)开始,多核处理器的硬件架构至少包括“Nc”个处理器核以及在私有存储器和共享存储器方面的存储器层次结构,并且优选地包括私有和共享数据路径的描述或芯片上模块的物理位置。在一个实施方案中,架构参数由用户提供,并且取决于处理器在航空电子应用中的最终集成。或者,参数可以存在于架构之前,并且可以从架构文件获得。
在可以同时或延迟的另一步骤(404)中,该方法可用于定义用于单核排序的分区的初始排序的参数。初始排序可以存在于以单核模式运行的多核处理器架构之前,或者可以指定用于以多核运行配置的新架构。初始排序参数至少包括分区的数量“NP”、分配给每个分区的时间间隔“TP”、分区的激活时间以及分区的执行序列的总时间。
在随后的步骤(406)中,该方法可用于根据不同标准建立每个分区的配置文件。分区的配置文件使得可以确定能够具有性能增益并且将被耦合到专用存储器的分区,以便在分区的执行开始时防止存储器禁用,或者可以确定其执行引起待减少的热点的分区。
在优选实施方案中,分区的配置文件考虑了硬件架构和初始排序的参数,并且基于许多估计:
-每个分区的存储器访问的空间和时间位置,其可以通过以下估计近似:
-在分配给分区的时间内“高速缓存未命中”(尝试访问高速缓存存储器中不可用的数据元素,使其从存储器层次结构的下一级加载)的分布;
-每个分区的存储器访问次数、访问的数据量,以及数据在读写之间的可能分配;
-处理器负载(计算资源随时间的占用率)。
可以利用对存储器访问的空间和时间局部性的估计,以便获知高速缓存中的数据的重用(用于此的术语是“高速缓存命中/未命中率”)。这样可以更好地理解刷新操作可能对应用程序产生的积极/消极影响。因此,具有高空间/时间局部性的应用程序将遭受相当可观的刷新,而具有低局部性的应用程序将不会受到太大影响。空间和时间局部性的估计还可以使得可以获知具有共享高速缓存(L2)的两个分区是否可以是用于共享L2高速缓存的良好候选者(在群集化架构的情况下)。
对存储器访问量的估计提供了对存储器层次结构的使用的更好的了解。访问少量数据的分区(其通常具有高局部性)将从私有高速缓存存储器(即使是小的私有高速缓存存储器)的独占访问中获益更多,而访问大量数据的分区将总是导致重新加载高速缓存存储器。
处理器负载的估计可以提供对芯片上的热分布的更好的了解。有利地,该标准使得能够改善热分布,并且不是将活动集中在单个核上,本发明的方法使得活动能够分布在芯片的所有核上,并且能够将散热分散在芯片的整个表面。因此,使要消散的热流最小,温度更均匀,从而提高了计算机的可靠性。这是因为同一芯片内的较大温度变化可能导致纳米级触点上由于膨胀而以机械疲劳的形式出现故障。
在随后的步骤(408)中,该方法可用于对分区进行分类并建立分类。在一个实施方案中,根据基于估计标准为每个分区计算的值对分区进行分类。
在变体中,可以为每个标准分配相关加权,该相关加权可以基于航空电子应用来定义。
在随后的步骤(410)中,该方法可以用于根据前一步骤产生的分类将“NP”个分区分配给不同的核。
在处理器的核的数量“NC”小于分区的数量“NP”的变体实施方案中,该方法可用于将分类头部的“NC-M”个分区分配给“NC-M”个核,并将所有剩余的分区分配给“M”个剩余核。
在另一变体实施方案中,组合步骤(408)和(410)以根据所选标准提供直接分配。例如,如果标准是基于热的,则该方法可用于在最远的核中设置“更热”的分区(也就是说,具有最高CPU负载的分区)。
在另一变体实施方案中,该方法可以包括重新评估分配给在不同核上运行的每个分区的时间的补充步骤,从而提供补充时间预算,例如允许应用程序的改变。
在另一变体实施方案中,该方法可以包括在不执行分配给核的分区的时间期间禁用所述核的补充步骤。在一个实施方案中,可以通过时钟解耦或“时钟门控”来执行禁用,以便保存填充的高速缓存存储器并确保立即开始。这为组件的使用寿命和可靠性提供了衍生利益。这还会导致功耗的获益。
在变体实施方案中,用于将分区分配给处理器核的方法包括用于使分区彼此同步的机制。这是因为必须确保前一个分区在另一个核上终止之前,分区无法在一个核上开始。该方法可以通过诸如同步障碍的已知方法来实现,或者可以使用由全局时钟计时的单个定序器,该全局时钟在用于航空电子应用的相关组件中自动可用。
本领域技术人员将理解,可以对优选描述的方法进行改变,同时保持本发明的原理。因此,所描述的示例基于单芯片上的多核处理器的架构,但是本发明的原理可以应用于多核处理器的分布式架构的其它变体,例如在核的数量、互连拓扑、存储器层次结构的深度和拓扑,或共享资源的分布方面变化的其它变体。
还可以基于硬件和/或软件元素来实现本发明的方法。本发明的方法可以作为计算机程序产品在计算机可读介质上使用。例如,介质可以是电子的、磁性的、光学的或电磁的,或者可以是红外类型的传播介质。
Claims (11)
1.一种用于在多核处理器的核上分配分区序列的分区的计算机实现方法,该方法包括以下步骤:
-识别表征多核处理器的硬件架构的参数;
-识别表征包括多个分区的序列的分区的初始排序的参数,所述参数至少包括分区的数量、分配给每个分区的时间间隔、分区的激活时间,以及序列的总执行时间;
-根据架构和初始排序的参数为序列的每个分区生成配置文件;
-根据分区的配置文件对分区进行分类;以及
-根据分类将序列的每个分区的执行分配给多核处理器的核,同时保持分区的初始顺序排序。
2.根据权利要求1所述的方法,其中,识别硬件架构的参数的步骤至少包括在核的数量、共享和/或私有存储器的层次结构、存储器控制器和互连总线方面来定义架构。
3.根据权利要求1至2中任一项所述的方法,其中,配置文件的步骤包括确定能够具有性能增益的分区,以耦合到专用存储器。
4.根据权利要求1至2中任一项所述的方法,其中,配置文件的步骤包括确定这样的分区,所述分区的执行产生要减少的热点。
5.根据权利要求1至4中任一项所述的方法,其中,配置文件的步骤考虑了用于估计每个分区的存储器访问的空间和时间局部性的标准、每个分区的存储器访问的次数、所访问的数据量,以及处理器负载。
6.根据权利要求5所述的方法,其中,分类的步骤包括基于估计的标准来计算每个分区的值,并根据获得的值对分区进行分类。
7.根据权利要求1至6中任一项所述的方法,还包括在分配的步骤之后执行序列的步骤。
8.根据权利要求7所述的方法,还包括在不执行分配给核的分区的时间间隔期间禁用所有已分配的核的步骤。
9.根据权利要求1至8中任一项所述的方法,还包括使分区的执行彼此同步的步骤。
10.一种用于在多核处理器的核上分配分区的序列的分区的设备,该设备包括用于实现根据权利要求1至9中任一项所述的方法的步骤的装置。
11.一种计算机程序产品,所述计算机程序包括当在计算机上执行所述程序时用于执行根据权利要求1至9中任一项所述的方法的步骤的代码指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR16/01198 | 2016-08-04 | ||
FR1601198A FR3054902B1 (fr) | 2016-08-04 | 2016-08-04 | Procede et dispositif de distribution de partitions sur un processeur multi-coeurs |
PCT/EP2017/068937 WO2018024581A1 (fr) | 2016-08-04 | 2017-07-26 | Procede et dispositif de distribution de partitions sur un processeur multi-coeurs |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109690488A true CN109690488A (zh) | 2019-04-26 |
CN109690488B CN109690488B (zh) | 2024-01-23 |
Family
ID=57749991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780055198.5A Active CN109690488B (zh) | 2016-08-04 | 2017-07-26 | 用于在多核处理器上分配分区的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11175963B2 (zh) |
EP (1) | EP3494475B1 (zh) |
CN (1) | CN109690488B (zh) |
FR (1) | FR3054902B1 (zh) |
WO (1) | WO2018024581A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363799A (zh) * | 2020-10-23 | 2021-02-12 | 中国航空无线电电子研究所 | 一种基于分层解耦架构的航空电子设备模拟器 |
CN115904711A (zh) * | 2022-11-18 | 2023-04-04 | 南京航空航天大学 | 一种面向负载均衡的多核ima可预测性调度方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6943125B2 (ja) * | 2017-10-04 | 2021-09-29 | トヨタ自動車株式会社 | 情報処理装置、情報処理方法及びプログラム |
US11409643B2 (en) | 2019-11-06 | 2022-08-09 | Honeywell International Inc | Systems and methods for simulating worst-case contention to determine worst-case execution time of applications executed on a processor |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100199280A1 (en) * | 2009-02-05 | 2010-08-05 | Honeywell International Inc. | Safe partition scheduling on multi-core processors |
US20130111152A1 (en) * | 2010-07-12 | 2013-05-02 | Bull Sas | Method for optimizing memory access in a microprocessor including several logic cores upon resumption of executing an application, and computer program implementing such a method |
CN104040502A (zh) * | 2011-11-10 | 2014-09-10 | 萨热姆防务安全公司 | 用于在多核处理器上排序的方法 |
US20150286574A1 (en) * | 2014-04-04 | 2015-10-08 | Fanuc Corporation | Controller executing sequential program using multi-core processor |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3920818B2 (ja) | 2003-07-22 | 2007-05-30 | 株式会社東芝 | スケジューリング方法および情報処理システム |
FR2873830B1 (fr) * | 2004-07-30 | 2008-02-22 | Commissariat Energie Atomique | Procede d'ordonnancement de traitement de taches et dispositif pour mettre en oeuvre le procede |
US7461275B2 (en) * | 2005-09-30 | 2008-12-02 | Intel Corporation | Dynamic core swapping |
US20080263324A1 (en) * | 2006-08-10 | 2008-10-23 | Sehat Sutardja | Dynamic core switching |
US8452941B2 (en) * | 2009-09-23 | 2013-05-28 | Dell Products L.P. | System and method for distributing random and sequential data in a tiered storage system |
US9158592B2 (en) * | 2011-05-02 | 2015-10-13 | Green Hills Software, Inc. | System and method for time variant scheduling of affinity groups comprising processor core and address spaces on a synchronized multicore processor |
FR2997774B1 (fr) * | 2012-11-08 | 2021-10-29 | Bull Sas | Procede, dispositif et programme d'ordinateur de placement de taches dans un systeme multi-cœurs |
JP6214469B2 (ja) * | 2014-05-26 | 2017-10-18 | 日立オートモティブシステムズ株式会社 | 車両制御装置 |
US10437479B2 (en) * | 2014-08-19 | 2019-10-08 | Samsung Electronics Co., Ltd. | Unified addressing and hierarchical heterogeneous storage and memory |
US10234930B2 (en) * | 2015-02-13 | 2019-03-19 | Intel Corporation | Performing power management in a multicore processor |
WO2017022002A1 (ja) * | 2015-07-31 | 2017-02-09 | 株式会社日立製作所 | ストレージ装置、ストレージシステム、ストレージシステムの制御方法 |
-
2016
- 2016-08-04 FR FR1601198A patent/FR3054902B1/fr not_active Expired - Fee Related
-
2017
- 2017-07-26 CN CN201780055198.5A patent/CN109690488B/zh active Active
- 2017-07-26 US US16/322,789 patent/US11175963B2/en active Active
- 2017-07-26 WO PCT/EP2017/068937 patent/WO2018024581A1/fr unknown
- 2017-07-26 EP EP17752311.5A patent/EP3494475B1/fr active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100199280A1 (en) * | 2009-02-05 | 2010-08-05 | Honeywell International Inc. | Safe partition scheduling on multi-core processors |
US20130111152A1 (en) * | 2010-07-12 | 2013-05-02 | Bull Sas | Method for optimizing memory access in a microprocessor including several logic cores upon resumption of executing an application, and computer program implementing such a method |
CN104040502A (zh) * | 2011-11-10 | 2014-09-10 | 萨热姆防务安全公司 | 用于在多核处理器上排序的方法 |
US20150286574A1 (en) * | 2014-04-04 | 2015-10-08 | Fanuc Corporation | Controller executing sequential program using multi-core processor |
Non-Patent Citations (1)
Title |
---|
王磊等: "片上多核处理器共享资源分配与调度策略研究综述", 《计算机研究与发展》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363799A (zh) * | 2020-10-23 | 2021-02-12 | 中国航空无线电电子研究所 | 一种基于分层解耦架构的航空电子设备模拟器 |
CN112363799B (zh) * | 2020-10-23 | 2024-04-12 | 中国航空无线电电子研究所 | 一种基于分层解耦架构的航空电子设备模拟器 |
CN115904711A (zh) * | 2022-11-18 | 2023-04-04 | 南京航空航天大学 | 一种面向负载均衡的多核ima可预测性调度方法 |
CN115904711B (zh) * | 2022-11-18 | 2023-11-07 | 南京航空航天大学 | 一种面向负载均衡的多核ima可预测性调度方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190205177A1 (en) | 2019-07-04 |
EP3494475B1 (fr) | 2021-10-20 |
CN109690488B (zh) | 2024-01-23 |
WO2018024581A1 (fr) | 2018-02-08 |
EP3494475A1 (fr) | 2019-06-12 |
US11175963B2 (en) | 2021-11-16 |
FR3054902A1 (fr) | 2018-02-09 |
FR3054902B1 (fr) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Maiza et al. | A survey of timing verification techniques for multi-core real-time systems | |
Nowotsch et al. | Multi-core interference-sensitive WCET analysis leveraging runtime resource capacity enforcement | |
Herman et al. | RTOS support for multicore mixed-criticality systems | |
US10452437B2 (en) | Temperature-aware task scheduling and proactive power management | |
CN106776005B (zh) | 一种面向容器化应用的资源管理系统及方法 | |
Mancuso et al. | WCET (m) estimation in multi-core systems using single core equivalence | |
US10255113B2 (en) | Workload interference estimation and performance optimization | |
US8676976B2 (en) | Microprocessor with software control over allocation of shared resources among multiple virtual servers | |
Hassan et al. | Bounding dram interference in cots heterogeneous mpsocs for mixed criticality systems | |
CN109690488A (zh) | 用于在多核处理器上分配分区的方法和设备 | |
Sha et al. | Single core equivalent virtual machines for hard real—time computing on multicore processors | |
Yao et al. | Schedulability analysis for memory bandwidth regulated multicore real-time systems | |
Song et al. | A two-stage approach for task and resource management in multimedia cloud environment | |
Jean et al. | Ensuring robust partitioning in multicore platforms for ima systems | |
Lugo et al. | A survey of techniques for reducing interference in real-time applications on multicore platforms | |
CA3141319C (en) | Reducing cache interference based on forecasted processor use | |
AU2020262300B2 (en) | Techniques for increasing the isolation of workloads within a multiprocessor instance | |
Easwaran et al. | A systematic security analysis of real-time cyber-physical systems | |
CN108009074B (zh) | 一种基于模型和动态分析的多核系统实时性评估方法 | |
Boudjadar | An efficient energy-driven scheduling of dvfs-multicore systems with a hierarchy of shared memories | |
Inam et al. | Combating unpredictability in multicores through the multi-resource server | |
Pavlidakis et al. | Arax: a runtime framework for decoupling applications from heterogeneous accelerators | |
Nabavinejad et al. | Data locality and VM interference aware mitigation of data skew in hadoop leveraging modern portfolio theory | |
Bai et al. | The effect of shared l2 cache on determinism in airborne embedded system | |
CN117311910B (zh) | 一种高性能虚拟密码机运行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |