CN112486867A - 访问计算机平台共享资源的方法、存储介质和计算机平台 - Google Patents
访问计算机平台共享资源的方法、存储介质和计算机平台 Download PDFInfo
- Publication number
- CN112486867A CN112486867A CN202010961259.8A CN202010961259A CN112486867A CN 112486867 A CN112486867 A CN 112486867A CN 202010961259 A CN202010961259 A CN 202010961259A CN 112486867 A CN112486867 A CN 112486867A
- Authority
- CN
- China
- Prior art keywords
- partition
- shared resource
- accessing
- shared
- cores
- 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.)
- Pending
Links
Images
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/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared 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/48—Program initiating; Program switching, e.g. by interrupt
-
- 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
-
- 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
-
- 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
- G06F9/4837—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
-
- 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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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
-
- 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]
-
- 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
-
- 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/5022—Mechanisms to release resources
-
- 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
访问计算机平台共享资源的方法、存储介质和计算机平台。一种用于访问包括多核处理器(21)的计算机平台(10)的共享资源的方法,第一分区之间的共享资源(18)根据由所述第一分区发出的访问共享资源的请求被发送到第二分区,该第二分区在其在处理器上执行期间执行所述访问;在预定时间期间,同步地预留多个核(22)以用于第二访问分区的执行;由第二分区进行的对单独共享资源(18)的单独访问必须由单独的预留核进行;并且在所述预定时间期间,由第二访问分区进行的对共享资源的所有访问都必须由预留核中的单个核执行。
Description
技术领域
本发明涉及包括多核处理器的应用平台领域,例如嵌入式航空电子平台,特别是对在这样的平台上运行的软件应用的操作的控制,允许其认证,例如安全网(Safety Net)类型的认证。
具体地,本发明涉及一种用于访问计算机平台的共享资源的方法,包括:
-包括至少两个核的至少一个多核处理器;
-能够在处理器上执行的应用分区集合;
-在所述应用分区之间共享的资源集合;
其中,所述应用分区集合包括第一分区,所述第一分区生成访问共享资源集合中的至少一个共享资源的请求,发送将被写入所述共享资源中的数字数据,或者查询所述共享资源;
根据分配的顺序列表预先组织应用分区对核的使用,所述分配与所述核相对应地指示预定分区和时间,
所述方法包括以下步骤:
在列表的分配中指示的预定时间期间,每个核被选择性地用于执行分配中与核相对应地指示的应用分区,并且在所述预定时间结束时触发对所述核的选择性使用的切换,以在后续分配中与所述核对应地指示的预定时间期间,执行在分配的顺序列表的所述后续分配中与所述核相对应地指示的分区。
背景技术
在诸如航空电子、汽车或核领域的技术领域中,非常重要的是知道如何针对每个数字数据确定最大传播时间,并因此能够确保这样的数据将在由最大传播时间表征的有限时间内从一个资源传递到另一个资源。
由于共享公共资源(总线、存储器、输入和/或输出外围设备),在同一个多核处理器上同时运行多个软件应用会产生争用(contention)的风险:这可能导致不受控制的进程执行时间,因此导致确定性的丧失,这是平台资格的一个重大障碍。
术语“争用”指的是由多核处理器的至少一个核执行的至少一项活动由于所述多核处理器允许的时间并行性而在其性能方面经历延迟的任何情况。
知道一些公共资源,特别是专用于输入和输出的硬件外围设备不支持并发访问,因此需要向托管在多核平台上的应用提供与单核设置中相同的服务质量,在确定性方面,不要求每个应用在其时间预算中提供足够的余量来吸收由于其他应用访问这些相同公共资源而导致的可能的争用。
发明内容
为此,根据第一方面,本发明提出一种用于访问上述类型的计算机平台的共享资源的方法,其特征在于:
-所述应用分区集合包括至少一个第二分区,其被称为用于访问共享资源的分区,在第一分区在处理器上执行期间由第一分区发出的所述访问请求被发送到用于访问共享资源的分区;
-用于访问共享资源的分区,当其在处理器上执行时,执行对共享资源的访问,以便实现对共享资源的访问请求;
-为了执行用于访问共享资源的分区,通过分配的顺序列表中的相应分配在预定时间内同步地预留多个核,在分配给所述分区的每个预定时间期间必须遵守以下条件:
-由用于访问集合中的共享资源的分区进行的对共享资源的单独访问通过单独的预留核进行;以及
-对于集合中的每个共享资源,在所述预定时间期间,由预留核中的单个核执行由用于访问共享资源的分区进行的对共享资源的所有访问。
因此,本发明使得能够减少争用,使得能够有助于控制具有良好的最大处理时间限制的处理时间,使得应用可以彼此独立地执行,并且以便在多核设置中保持增量认证能力。
在实施例中,根据本发明的用于访问计算机平台的共享资源的方法还包括以下特征中的一个或多个:
-用于访问共享资源的分区向第一分区发送由共享资源提供的针对请求的响应;
-所述共享资源集合中的共享资源是计算机平台的输入和/或输出外围设备;
-平台是一种航空电子平台;
-相对于每个共享资源为每个第一分区预定义的是各自的频率,并且用于访问共享资源的分区在其每个预定执行时间期间以所述频率访问所述共享资源,以便响应于由所述第一分区发出的并且由用于访问共享资源的分区实现的访问请求,收集由所述共享资源提供的数据;
-通过以下方式将在第一分区在处理器上执行期间由第一分区发出的所述访问请求发送到用于访问共享资源的分区:将所述访问请求存放在工作存储器中,在所述工作存储器中,用于访问共享资源的分区读取所述访问请求,并且根据这些访问请求,对所述请求的响应通过用于访问共享资源的分区被存放在所述存储器中,并且根据这些访问请求,在预定时间期间由所述预留核中的第一、第二预留核分别执行对第一、第二共享资源的访问,在工作存储器中读取对第一、第二资源的访问请求或者在所述工作存储器中存放对所述请求的响应必须在所述预定时间期间由所述第一相应预留核进行;并且根据这些访问请求,基于至少预留核中的第二预留核的活动,在所述预定时间期间,通过在工作存储器中对访问第一资源的请求进行读取的至少一部分或者通过将对所述请求的响应存放在所述工作存储器中,触发向所述第二核的分配。
根据第二方面,本发明提出一种包括软件指令的计算机可读存储介质,所述软件指令在由计算机执行时执行如上文定义的方法。
根据第三方面,本发明提出一种计算机平台,包括:
-包括至少两个核的至少一个多核处理器;
-能够在处理器上执行的应用分区集合;
-在所述应用分区之间共享的资源集合;
其中,应用分区的集合包括第一分区,所述第一分区生成访问共享资源集合中的至少一个共享资源的请求,发送将被写入所述共享资源中的数字数据,或者查询所述共享资源;
包括预先组织应用分区对核的使用的分配的顺序列表,所述分配与所述核对应地指示预定分区和时间,
用于使用每个核的所述平台在列表的分配中指示的预定时间期间选择性地用于执行所述分配中与核相对应地指示的应用分区,
所述平台用于在所述预定时间结束时,触发核的选择性使用的切换,以在后续分配中与所述核对应地指示的预定时间期间,执行在分配的顺序列表的所述后续分配中与所述核相对应地指示的分区;
所述平台的特征在于,所述应用分区集合包括至少一个第二分区,其被称为用于访问共享资源的分区,在第一分区在处理器上执行期间由第一分区发出的所述访问请求被发送到用于访问共享资源的分区;
-用于访问共享资源的分区,当其在处理器上执行时,能够执行对共享资源的访问,以便实现对共享资源的访问请求;
-为了执行用于访问共享资源的分区,所述平台能够通过分配的顺序列表中的相应分配在预定时间内同步地预留多个核,并且能够在分配给所述分区的每个预定时间期间遵守以下条件:
-由用于访问集合中的共享资源的分区进行的对共享资源的单独访问通过单独的预留核进行;以及
-对于集合中的每个共享资源,在所述预定时间期间,由预留核中的单个核执行由用于访问共享资源的分区进行的对共享资源的所有访问。
附图说明
本发明的这些特征和优势将在阅读以下仅作为示例提供并参考附图进行的描述时显现,在附图中:
图1示出了本发明的一个实施例中的航空电子平台;
图2是在本发明的一个实施例中实施的步骤的流程图;
图3示出了在本发明的一个实施例中平台核心的使用;
图4示出了本发明相对于现有技术解决方案的贡献。
具体实施方式
图1示出了电子平台10,特别是旨在嵌入到飞行器中的航空电子平台,例如飞机(在变型中,飞行器是例如直升机或由飞行员远程驾驶的无人机等)。
在所考虑的实施例中,航空电子平台10包括存储器12、操作系统20、处理器21、输入和/或输出外围设备的集合19以及电子控制设备24。
平台10例如连接到其他电子系统,诸如飞行器的电子航空电子系统(例如无线电系统、飞行管理系统、地形感知和警告系统(TAWS)等)。
存储器12存储多个分区14。
这些分区14包括分区PARTAPPi,其中i=1到m,m是大于或等于2的整数,分区是软件应用,也称为航空电子功能,并且例如实现用于飞行性能的各种功能,其中一些功能在安全性方面是关键的,例如制动功能或显示飞行参数的功能,因此,每个功能的执行必须被鲁棒地控制。在所考虑的情况下,m=2:存储器存储图1所示的分区PARTAPP1和PARTAPP2。
根据本发明,分区还包括特定分区PARTSERV_IO 14,称为用于访问IO外围设备的分区。该分区PARTSERV_IO 14用于集中与IO外围设备18的交换。
分区14是可加载到平台10中的唯一寻址空间的程序。平台10,经由其操作系统20和根据本发明的电子控制设备24,用于实现分区14的执行并且控制分区对处理器21的使用时间的使用,使得每个分区与共享平台10的其他分区隔离。
分区14是基于由操作系统20维护的工作时间周期而调速的。
分区14包括共享相同寻址空间的一个或多个编程单元(称为进程),其可以顺序地或并行地操作,并且其被动态地组合以提供与分区相关联的功能。
用于在操作系统20和电子控制设备24的控制下执行分区的处理器21是多核处理器,包括多个核22,例如图1所示的核Core0、Core1,或者甚至还包括附加核Core2、Core3(图1中未示出)等的实施例。
输入和/或输出外围设备的集合19包括n个输入/输出外围设备18,称为IO外围设备,n是大于或等于2的整数。
在所考虑的情况下,输入和/或输出外围设备的集合19包括两个输入/输出外围设备18,IO1外围设备18和IO2外围设备18。
以已知的方式,IO外围设备18用于接收分别写入、读取其内容的访问请求,并且用于分别通过写入要写入的数据和通过提供读取数据来传递写入确认,来响应这些请求。
电子控制设备24例如包括存储器26(其在一个实施例中是存储器12的一部分)和电子控制单元25。
电子控制设备24的电子控制单元25用于基于例如存储在存储器26中的分配的顺序列表27对处理器21上的分区的执行进行排序。在一个实施例中,电子控制设备24集成到执行排序的操作系统20中。
分配的顺序列表的这些分配与核相对应地指示分区和预定时间,使得在如分配中所指示的预定时间期间,在根据给定分配向其分配的核上执行每个分区,电子控制单元25用于在所述时间结束时,将核的使用切换到在所述顺序列表的随后分配中分配给所述核的分区的执行。
这些分配由所述控制单元25确定。具体地,根据针对的性能目标,基于在将每个分区安装在平台10上期间为每个分区预算的时间分配来计算预定时间。
当正在执行分区PARTAPP1 14或PARTAPP2 14(不包括特定分区PARTSERV_IO)时,所实现的分区的一些进程导致执行请求访问一个或多个IO外围设备18的命令。根据本发明,分区PARTAPP1和PARTAPP2被定义为使得这些对于IO外围设备的访问命令被发送到用于访问IO外围设备的分区PARTSERV_IO。
用于访问IO外围设备的分区PARTSERV_IO在其在处理器21上的执行期间用于提供对IO外围设备18的访问,利用IO外围设备18实现由于读取和/或写入而产生的相应操作,并且用于接下来将这些操作的结果递送到这些操作源处的分区(也就是说,针对读取操作提供查询数据,针对写入操作提供写入结果的确认)。
电子控制单元25用于为了执行用于访问IO外围设备的分区PARTSERV_IO而预留经由分配的顺序列表中的相应分配在预定时间内同步地预留的多个核,在分配给所述分区的每个预定时间期间遵守以下条件:
-由用于访问IO外围设备的分区PARTSERV_IO进行的对IO外围设备18的访问由单独的预留核22进行;并且
-对于每个IO外围设备18,由用于访问IO外围设备的分区PARTSERV_IO进行的对I/O外围设备18的所有访问在所述预定时间期间由预留核中的单个核执行。
图4示出了本发明的一个实施例中的方法。
在用于设计平台10的先前步骤101中,创建至少一个特定分区PARTSERV_IO 14,被称为用于访问IO外围设备的分区(在一个实施例中,创建多个分区PARTSERV_IO),其旨在收集由航空电子分区所进行的对IO外围设备的所有访问命令,航空电子分区例如是PARTAPP1和PARTAPP2。后者被定义为向特定分区PARTSERV_IO发送其对IO外围设备的访问命令。
用于访问IO资源的分区PARTSERV_IO与航空电子分区PARTAPP1和PARTAPP2之间的交换,包括这些命令的传输,然后这些命令实现的结果的提供,是经由存储器来完成的,例如图1中参考标号15的非专用易失性RAM类型的存储器,在该存储器中,航空电子分区PARTAPP1和PARTAPP2写入对于IO外围设备的访问命令,其中分区PARTSERV_IO读取这些命令,然后在命令中指示的IO外围设备中的读取/写入之后将这些命令的执行的结果写入其中,并且最后其中航空电子分区PARTAPP1和PARTAPP2提取其访问IO外围设备的命令的结果。
在一个实施例中,基于标准A653的编程接口(API),命令和命令的结果采取消息的形式:应用PARTAPP1和PARTAPP2获取先前由分区PARTSERV_IO读取的消息,并将消息推送到分区PARTSERV_IO,以便在其下一次时间分配期间将这些消息物理地发送到IO1或IO2。
关于存储器使用的预算和关于处理器使用时间的预算(在分配列表27的每个分配中所指示的预定时间将基于上述预算而被设置)被选择性地分配给每个分区14,PARTSERV_IO、PARTAPP1和PARTAPP2:特别地,用于PARTSERV_IO的这些预算被确定尺寸以允许可以由分区PARTAPP1、PARTAPP2命令的IO1 18和IO2 18外围设备的所有读取、写入被处理。
在一个实施例中,对于这里具有i-1、2的每个分区PARTAPPi,如果需要,可以利用分区PARTSERV_IO的标识符来配置具有与分区PARTAPPi相关联的分区级别的每个APEX IO端口(参见标准ARINC 653),并且还具有所请求的激活的频率及其偏移(相位)和主帧(即,相对于等于由操作系统20维持的工作时间周期的持续时间的基本时帧):因此,对于每个分区PARTAPPi以及对于每个外围设备IOj,j=1、2,定义分区PARTSERV_IO在处理器21上执行时将以何种频率Fij主动地与外围设备IOj接口,以便访问外围设备IOj,从而能够确定先前命令的读取的结果是否可用,然后接着将数据写入RAM 15中。
因此,用于访问IO外围设备PARTSERV_IO的分区充当服务器,并且因此可以服务于一个或多个分区,该一个或多个分区不共享PARTSERV_IO内的端口。
因此,该配置聚集了在分区PARTAPPi的独立配置中表示的需要,并且使得可以保持平台10的增量方面(也就是说,平台可以集成附加应用,同时继续保证处理操作的确定性)。
分区PARTSERV_IO例如被配置为首先处理INPUT类型(即,写入)的命令(和确认),然后接着在IO外围设备18中处理OUTPUT类型(写入)的命令。这种布置使得可以使获取延迟最小化。
在平台10的稍后的操作操作步骤中,参考图2,考虑到顺序分配列表27中的当前分配,其指示核22Core0和Core1被具体地并且同步地分配到用于访问IO外围设备的分区PARTSERV_IO 14的执行,电子控制单元25从时间T1开始并且在所考虑的分配中所指示的时间t1期间,通过具体地将核22Core0分配给对外围设备IO2 18的访问并且通过具体地将核22Core1分配给对于外围设备IO1 18的访问,来切换这些核的活动,以便执行该分区PARTSERV_IO 14。
因此,对外围设备IO1和IO2的访问中的每一个都由核进行组织,从而使与IO1及IO2 18相关的争用最小化。
分区PARTSERV_IO 14在RAM 15中读取要被处理的外围设备IO1、IO2 18中的写入命令,这些写入命令先前由分区PARTAPPi在其执行时间期间被存放在RAM 15中,然后分区PARTSERV_IO 14在外围设备IO1、IO2 18中执行如此命令的这些写入操作。
分区PARTSERV_IO 14在RAM 15中读取要处理的外围设备IO1、IO2 18中的读取命令,然后,分区PARTSERV_IO 14在外围设备IO1、IO2 18中执行如此命令的这些读取操作。只要使从IO外围设备18请求的读取操作不可用,分区PARTSERV_IO 14就将以针对该外围设备和已经命令该读取的分区PARTAPPi所定义的频率(并且以定义的时间相位)监听受该读取操作影响的外围设备IOj 18,j=1、2。在读取操作结束时,分区PARTSERV_IO 14在RAM 15中存放用于分区PARTAPPi的读取数据。
从T1起经过的时间t1,电子控制单元25在分配顺序列表27中的随后分配中所指示的时间t2期间,依次切换核Core0、Core1的活动,以执行该分区PARTSERV_IO;从时间T2起,核Core0专用于执行分区PARTAPP2,而核Core1专用于根据该分配的内容来执行分区PARTAPP1。在该时间t2期间,每个分区PARTAPPi(i=1、2)在RAM 15中写入其用于访问外围设备IO1、IO218的命令(在标准A653的API情况下以要发出的消息的形式),并且从RAM中提取先前由分区PARTSERV_IO 14(标准A653的API情况下以获取消息的形式)存放在RAM中的访问命令结果。
图2指示在两个核Core0、Core1到分区PARTSERV_IO 14的分配时间t1期间,与外围设备IO1、IO2 18(标记为ACC.IO1、ACC.IO2的自由区)的相应累积对话时间,RAM 15中的争用时间(虚线区域)和写入/读取时间(交叉阴影区):因此,分区PARTSERV_IO 14对外围设备IO1的访问持续了时间t11,与对外围设备IO1 18的访问相关的争用现象持续了时间t12,RAM 15中相对于命令和外围IO1 18上的读取/写入结果的写入/读取时间持续了时间t13;类似地,分区PARTSERV_IO 14对外围设备IO2的访问已经持续了时间t01,与外围设备IO2 18的访问相关的争用现象已经持续时间t02,RAM 15中的与命令和外围设备IO2 18的读取/写入结果相关的读取/写入时间已持续了时间t03。
争用时间t02、t12比现有技术的解决方案中的低,争用发生在执行分区PARTSERV_IO14时。
图2指示,在分配给在核Core0上执行分区PARTAPP2的时间t2期间并且与在时间t3期间执行在核Core1上的分区PARTAPP1并行地,RAM 15(交叉阴影区)中的写入/读取时间,存储器争用时间(垂直线)具有可忽略的一阶持续时间(IO数据从CPU RAM 15中的邮箱恢复,对于该IO数据,带宽和共享已被相应地确定大小);RAM 15中由分区PARTAPP1相对于用于由分区PARTAPP1访问外围设备IO1、IO2 18的命令(和结果)的写入/读取时间持续了时间t14,分区PARTAPP2在RAM 15中的与由分区PARTAPP2在外围设备IO1、IO2 18上的读取/写入的命令(和结果)相关的读取/读取时间持续了时间t04。
在上述实施例中,两个核用于访问两个IO外围设备18:该解决方案当然是可调节的,并且根据本发明将使用n个核来访问n个IO外围设备18,n是大于2的任意整数。
此外,分区PARTSERV_IO被分布在n个核(在当前情况下n=2)上的事实导致允许用于消息传输的协作:在一个实施例中,至少基于Core1的负载,例如在两个核之间的负载不平衡(大于设定阈值)的情况下,在对外围设备IO2的访问的处理的情境中,电子控制单元25将与RAM 15中的与要被读取或写入RAM 15的数据相关的交换重新分配给核Core1。
图3示出了不同的情况。x轴是时间轴,T是处理器的执行时间;y轴指示三种情况AA1、AA2和INV。
在对应于具有单核处理器的航空电子平台的情况的现有技术的情形AA1中,分区被顺序地执行,并且分区用于访问IO外围设备所花费的CPU时间被累积。
在对应于具有多核处理器的航空电子平台的情况的现有技术的情况AA2中,分区在单独的核上并行执行(在图3中,每分区一行),访问共享IO外围设备(ACC.IO)可以变为并发:根据潜在的争用(用于一个分区的CONT P1,用于其它分区的Cont P2),需要在时间分配中向分区提供显著的预留,以考虑到对IO的访问服务的延长。
根据对应于图3中的情况INV的本发明,与现有技术相比,争用(虚线区域)表现为大大减少,对RAM 15的访问时间以阴影线示出。
现有技术的解决方案不能提供不依赖于这些相同IO上的并发应用的活动的IO访问服务时间的令人满意的表征。这对于通过SoC的外围设备看到和访问的专用IO控制器更是如此,这些外围设备存在并且不允许发起IO事务的核之间的均匀共享访问。这需要在IMA多核处理器上进行更大的表征努力,但更重要的是,在由希望部署在IMA多核平台上的每个应用执行的验证活动的级别上进行更大的表征努力。
在一个实施例中,存储器12、操作系统20、处理器21和电子控制设备24集成到同一电子芯片(SoC或片上系统)中。
在实施例中,输入和/或输出外围设备18中的至少一些是外部外围设备,也就是说它们没有集成到SoC中。
在实施例中,输入和/或输出外围设备18也集成到SoC中。
在一个实施例中,由电子控制单元25执行的步骤是在处理器上执行存储在存储器中的计算机程序的软件指令的结果。在这种情况下,电子控制单元25于是包括该存储器和该处理器。
在另一实施例中,电子控制单元25以诸如FPGA(现场可编程门阵列)的可编程逻辑部件的形式或者以诸如ASIC(专用集成电路)的专门集成电路的形式来制造。
因此,本发明使得能够在经认证的多核航空电子平台内的应用之间共享I/O资源,并且具有增量认证能力,同时保证独立于正在处理器的其它核上运行的应用的并发访问,应用访问这些I/O的执行时间,如阐述用于集成模块化航空电子设备(IMA)的最低准则的标准DO-297所要求的那样。为此,通过将单个核对IO外围设备的访问分组在一起来组织对IO外围设备的访问,以便减少软件和硬件争用。
本发明使得可以保留IMA平台(增量认证)的基本特性成为可能,这些特性是:
-扩展的稳健分区,以及
-增量性;
这需要控制:
-应用(或一组受控应用)在分配给其的预算(时间、内存等)内不影响其他应用;
-无论执行条件如何,所提供服务的时间仍受控制。
本发明通过进一步为航空电子应用特有的并且因此可以在应用之间不同的获取频率提供配置能力,来保持解决方案的总体性能。
上面已经在航空电子情境下对本发明进行了描述,但是本发明当然可以在任何其他情境下使用。
已经参照对IO外围设备的访问的控制描述了本发明。当然,更一般地,其可用于控制对除IO外围设备之外的由核共享的任何类型的资源的访问时间:总线、存储器、ARINC664、非易失性存储器和ARINC429(com总线)等。
Claims (10)
1.一种用于访问计算机平台(10)的共享资源的方法,所述计算机平台(10)包括:
-至少一个多核处理器(21),其包括至少两个核(22);
-能够在处理器上执行的应用分区(14)的集合;
-在所述应用分区之间共享的资源(18)的集合(19);
其中,所述应用分区的集合包括第一分区,所述第一分区生成访问共享资源集合中的至少一个共享资源的请求,发送将被写入所述共享资源中的数字数据,或者查询所述共享资源;
根据分配的顺序列表(27)预先组织所述应用分区对核的使用,所述分配与所述核相对应地指示预定分区和时间,
所述方法包括以下步骤:
在列表的分配中所指示的预定时间期间,每个核被选择性地用于执行所述分配中与所述核相对应地指示的应用分区,并且在所述预定时间结束时触发对所述核的选择性使用的切换,以在后续分配中与所述核对应地指示的预定时间期间,执行在分配的顺序列表的所述后续分配中与所述核相对应地指示的分区;
所述方法的特征在于,所述方法还包括以下步骤:
-所述应用分区(14)的集合包括被称为用于访问共享资源的分区的至少一个第二分区,在所述第一分区在处理器上执行期间由所述第一分区发出的访问请求被发送到所述用于访问共享资源的分区;
-所述用于访问共享资源的分区当在处理器上执行时,执行对共享资源的访问,以便实现对共享资源的访问请求;
-为了执行所述用于访问共享资源的分区,通过分配的顺序列表中的相应分配在预定时间内同步地预留多个核(22),在分配给所述分区的每个预定时间期间必须遵守以下条件:
-由用于访问集合中的共享资源的分区进行的对共享资源(18)的单独访问通过单独的预留核进行;以及
-对于集合中的每个共享资源,在所述预定时间期间,由预留核中的单个核执行由所述用于访问共享资源的分区进行的对共享资源的所有访问。
2.根据权利要求1所述的用于访问计算机平台(10)的共享资源的方法,其中,所述用于访问共享资源的分区(14)向所述第一分区发送由共享资源提供的对请求的响应。
3.根据权利要求1或2所述的用于访问计算机平台的共享资源的方法,其中,所述共享资源的集合中的所述共享资源是所述计算平台的输入和/或输出外围设备(18)。
4.根据前述权利要求中的一项所述的用于访问计算机平台的共享资源的方法,其中,平台(10)是航空电子平台。
5.根据前述权利要求中的一项所述的用于访问计算机平台(10)的共享资源的方法,其中,相对于每个共享资源(18)为每个第一分区(14)预定义的是各自的频率,并且所述用于访问所述共享资源的分区(14)在其每个预定执行时间期间以所述频率访问所述共享资源(18),以便响应于由所述第一分区发出的并且由所述用于访问共享资源的分区实现的访问请求,收集由所述共享资源提供的数据。
6.根据前述权利要求中的一项所述的用于访问计算机平台(10)的共享资源的方法,其中,通过以下方式将在所述第一分区在处理器上执行期间由所述第一分区发出的所述访问请求发送到所述用于访问共享资源的分区:将所述访问请求存放在工作存储器(15)中,在所述工作存储器(15)中,所述用于访问共享资源的分区读取所述访问请求,并且根据所述访问请求,对所述请求的响应通过所述用于访问共享资源的分区而被存放在所述存储器中,并且
根据所述访问请求,在预定时间期间由预留核中的第一和第二预留核分别执行对第一和第二共享资源的访问,在工作存储器中读取对第一、第二资源的访问请求或者在所述工作存储器中存放对所述请求的响应必须在所述预定时间期间由所述第一相应预留核进行;并且根据所述访问请求,
基于至少预留核中的第二预留核的活动,在所述预定时间期间,通过在工作存储器中对访问第一资源的请求进行读取的至少一部分或者通过将对所述请求的响应存放在所述工作存储器中,触发向所述第二核的分配。
7.一种包括软件指令的计算机可读存储介质,所述软件指令在由计算机执行时实现根据权利要求1至6中的一项所述的方法。
8.一种计算机平台(10),其包括:
-至少一个多核处理器(21),其包括至少两个核(22);
-能够在处理器上执行的应用分区(14)的集合;
-在所述应用分区之间共享的资源(18)的集合(19);
其中,所述应用分区的集合包括第一分区,所述第一分区生成访问共享资源集合中的至少一个共享资源的请求,发送将被写入所述共享资源中的数字数据,或者查询所述共享资源;
包括预先组织所述应用分区对核的使用的分配的顺序列表(27),所述分配与所述核对应地指示预定分区和时间,
用于使用每个核的所述平台在列表的分配中所指示的预定时间期间选择性地用于执行所述分配中与所述核相对应地指示的应用分区,
所述平台用于在所述预定时间结束时,触发核的选择性使用的切换,以在后续分配中与所述核对应地指示的预定时间期间,执行在分配的顺序列表的所述后续分配中与所述核对应地指示的分区;
所述平台的特征在于,所述应用分区(14)的集合包括被称为用于访问共享资源的分区的至少一个第二分区,在所述第一分区在处理器上执行期间由所述第一分区发出的所述访问请求被发送到所述用于访问共享资源的分区;
-当所述用于访问共享资源的分区在处理器上执行时,能够执行对共享资源的访问,以便实现对共享资源的访问请求;
-为了执行所述用于访问共享资源的分区,所述平台能够通过分配的顺序列表中的相应分配在预定时间内同步地预留多个核(22),并且能够在分配给所述分区的每个预定时间期间遵守以下条件:
-由用于访问集合中的共享资源的分区进行的对共享资源(18)的单独访问通过单独的预留核进行;以及
-对于集合中的每个共享资源,在所述预定时间期间,由预留核中的单个核执行由所述用于访问共享资源的分区进行的对共享资源的所有访问。
9.根据权利要求8所述的计算机平台(10),其中,所述用于访问共享资源的分区(14)用于向所述第一分区发送由共享资源提供的对请求的响应。
10.根据权利要求8或9所述的计算机平台,其中,所述共享资源的集合中的所述共享资源是所述计算平台的输入和/或输出外围设备(18)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1910049A FR3100909B1 (fr) | 2019-09-12 | 2019-09-12 | Procédé d'accès aux ressources partagées d'une plateforme informatique, programme d'ordinateur et plate-forme informatique associés |
FR1910049 | 2019-09-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112486867A true CN112486867A (zh) | 2021-03-12 |
Family
ID=70228075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010961259.8A Pending CN112486867A (zh) | 2019-09-12 | 2020-09-14 | 访问计算机平台共享资源的方法、存储介质和计算机平台 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11467880B2 (zh) |
EP (1) | EP3792759A1 (zh) |
CN (1) | CN112486867A (zh) |
FR (1) | FR3100909B1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3139400A1 (fr) * | 2022-09-01 | 2024-03-08 | Thales | Calculateur avionique comprenant un processeur multicœurs, avec un cœur de filtrage entre des domaines ouvert et avionique |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7530071B2 (en) * | 2004-04-22 | 2009-05-05 | International Business Machines Corporation | Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions |
US9081621B2 (en) * | 2009-11-25 | 2015-07-14 | Microsoft Technology Licensing, Llc | Efficient input/output-aware multi-processor virtual machine scheduling |
US8458635B2 (en) * | 2009-12-04 | 2013-06-04 | Synopsys, Inc. | Convolution computation for many-core processor architectures |
US20120054740A1 (en) * | 2010-08-31 | 2012-03-01 | Microsoft Corporation | Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments |
US20130117168A1 (en) * | 2011-11-04 | 2013-05-09 | Mark Henrik Sandstrom | Maximizing Throughput of Multi-user Parallel Data Processing Systems |
FR2970577B1 (fr) * | 2011-01-14 | 2014-02-07 | Centre Nat Etd Spatiales | Plateforme d'execution modulaire amelioree. |
US9311149B2 (en) * | 2012-12-21 | 2016-04-12 | International Business Machines Corporation | Processor provisioning by a middleware processing system |
-
2019
- 2019-09-12 FR FR1910049A patent/FR3100909B1/fr active Active
-
2020
- 2020-09-08 EP EP20195070.6A patent/EP3792759A1/fr active Pending
- 2020-09-10 US US17/017,420 patent/US11467880B2/en active Active
- 2020-09-14 CN CN202010961259.8A patent/CN112486867A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
FR3100909B1 (fr) | 2021-09-24 |
EP3792759A1 (fr) | 2021-03-17 |
US20210081251A1 (en) | 2021-03-18 |
US11467880B2 (en) | 2022-10-11 |
FR3100909A1 (fr) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5682530A (en) | Hierarchical resource management method | |
US20050097384A1 (en) | Data processing system with fabric for sharing an I/O device between logical partitions | |
CN106302663B (zh) | 经由网络分割的本地云计算 | |
CN110941481A (zh) | 资源调度方法、装置及系统 | |
CN108334396B (zh) | 一种数据处理方法和装置、资源组的创建方法和装置 | |
JP2001331333A (ja) | 計算機システム及び計算機システムの制御方法 | |
CN105426258B (zh) | 在客户端与服务器之间通信的机制和方法 | |
EP1691287A1 (en) | Information processing device, process control method, and computer program | |
WO2021103646A1 (zh) | 一种部署pod的方法及装置 | |
WO2014199586A1 (en) | Implementing capacity and user-based resource allocation for a shared adapter in a virtualized system | |
CN109992373B (zh) | 资源调度方法、信息管理方法和装置及任务部署系统 | |
CN113886058A (zh) | 一种跨集群资源调度方法和装置 | |
CN112486867A (zh) | 访问计算机平台共享资源的方法、存储介质和计算机平台 | |
CN113760549B (zh) | 一种pod部署方法及装置 | |
CN110231981B (zh) | 服务调用方法及装置 | |
CN114546587A (zh) | 一种在线图像识别服务的扩缩容方法及相关装置 | |
KR20170088277A (ko) | 데이터 교환 메커니즘을 포함하는 전자 시스템 및 그것의 동작 방법 | |
CN114003369A (zh) | 用于基于资源调度命令的系统和方法 | |
US6598105B1 (en) | Interrupt arbiter for a computing system | |
CN117078495A (zh) | 图形处理器的内存分配方法、装置、设备及存储介质 | |
CN112114958A (zh) | 资源隔离方法、分布式平台、计算机设备和存储介质 | |
CN114448909B (zh) | 基于ovs的网卡队列轮询方法、装置、计算机设备及介质 | |
CN111090509B (zh) | 一种mdio资源的访问方法、存储介质及智能终端 | |
KR20210142829A (ko) | 복수의 엣지 디바이스에게 애플리케이션을 배포하는 엣지 컴퓨팅 시스템 및 방법 | |
US11868822B2 (en) | Managing access to a resource shared by a plurality of applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210312 |