CN112182770A - 在线迭代计算方法、装置及计算机存储介质、电子设备 - Google Patents
在线迭代计算方法、装置及计算机存储介质、电子设备 Download PDFInfo
- Publication number
- CN112182770A CN112182770A CN202011079837.1A CN202011079837A CN112182770A CN 112182770 A CN112182770 A CN 112182770A CN 202011079837 A CN202011079837 A CN 202011079837A CN 112182770 A CN112182770 A CN 112182770A
- Authority
- CN
- China
- Prior art keywords
- iteration
- online
- thread
- core
- calculation
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/18—Manufacturability analysis or optimisation for manufacturability
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
在线迭代计算方法、装置及计算机存储介质、电子设备,包括:在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若需要同时进行多次在线迭代,则在所述单核处理器中生成N个线程分别用于N次在线迭代;若不需要,则在单核处理器中生成1个线程进行在线迭代;在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若需要同时进行多次在线迭代,则在N个处理器中运行飞行控制软件;若不需要,则在1个处理器中运行飞行控制软件。采用本申请中的方案,能够有效地利用多核处理器的处理资源,针对不同的应用需求,简单快速地形成在线迭代方法顶层架构,不需要更改系统方案即可实现在线迭代计算。
Description
技术领域
本申请涉及飞行控制技术,具体地,涉及一种在线迭代计算方法、装置及计算机存储介质、电子设备。
背景技术
运载火箭高精度入轨精度指标,要求需要对多变量约束下的迭代计算,传统控制器计算能力不高,控制周期较长,需要进行比较复杂的优化才能满足实时在线迭代。
随着计算机技术的发展,实时操作系统和高性能多核处理器越来越多的应用于运载火箭飞行控制软件设计中,目前已经成为决定固体运载火箭精度指标的关键技术。
运载火箭控制系统设计比较复杂,经常需要进行在线迭代计算,迭代计算的周期往往大于控制周期。以往的处理方法是增长控制周期或优化代码效率,对系统设计人员的要求比较高。
现有技术中存在的问题:
运载火箭的飞行控制软件在迭代计算时周期较长,若想优化计算则需要对系统方案进行改动,对系统设计人员的要求较高。
发明内容
本申请实施例中提供了一种在线迭代计算方法、装置及计算机存储介质、电子设备,以解决上述技术问题。
根据本申请实施例的第一个方面,提供了一种在线迭代计算方法,包括如下步骤:
在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若需要同时进行多次在线迭代,则在所述单核处理器中生成N个线程分别用于N次在线迭代,N个线程的优先级相同且比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行并行计算;若不需要,则在单核处理器中生成1个线程,所述线程的优先级比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行串行计算;
在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若需要同时进行多次在线迭代,则在N个处理器中运行飞行控制软件,实现N个在线迭代算法的并行计算;若不需要,则在1个处理器中运行飞行控制软件,实现在线迭代算法的串行计算;
其中,T为控制周期,TGen为导航制导姿控解算时间,Tlter为在线迭代解算时间。
根据本申请实施例的第二个方面,提供了一种在线迭代计算装置,包括:
第一处理模块,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若需要同时进行多次在线迭代,则在所述单核处理器中生成N个线程分别用于N次在线迭代,N个线程的优先级相同且比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行并行计算;
第二处理模块,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若不需要同时进行多次在线迭代,则在单核处理器中生成1个线程,所述线程的优先级比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行串行计算;
第三处理模块,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若需要同时进行多次在线迭代,则在N个处理器中运行飞行控制软件,实现N个在线迭代算法的并行计算;
第四处理模块,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若不需要同时进行多次在线迭代,则在1个处理器中运行飞行控制软件,实现在线迭代算法的串行计算;
其中,T为控制周期,TGen为导航制导姿控解算时间,Tlter为在线迭代解算时间。
根据本申请实施例的第三个方面,提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述在线迭代计算方法的步骤。
根据本申请实施例的第四个方面,提供了一种电子设备,包括存储器、以及一个或多个处理器,所述存储器用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器执行时,实现如上所述的在线迭代计算方法。
本申请实施例中提供的在线迭代计算方法、装置及计算机存储介质、电子设备,将迭代耗时、硬件选型、是否并行作为输入,据此初步确定在线迭代方法顶层架构,即需要几个核、几个线程运行在线迭代算法,采用本申请所提供的方案,能够有效地利用多核处理器的处理资源,针对不同的应用需求,简单快速地形成在线迭代方法顶层架构,不需要更改系统方案即可实现在线迭代计算。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例一中在线迭代计算方法实施的流程示意图;
图2示出了本申请实施例二中在线迭代计算装置的结构示意图;
图3示出了本申请实施例四中电子设备的结构示意图。
具体实施方式
针对现有技术存在的技术问题,本申请实施例中提供了一种运载火箭飞行控制软件在线迭代方法,能够适用于单核架构和多核架构,串行迭代和并行迭代等情况,不用更改系统方案,该方法可广泛应用于运载火箭的飞行控制软件设计中。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
图1示出了本申请实施例一中在线迭代计算方法实施的流程示意图。
如图所示,所述在线迭代计算方法包括:
在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若需要同时进行多次在线迭代,则在所述单核处理器中生成N个线程分别用于N次在线迭代,N个线程的优先级相同且比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行并行计算;若不需要,则在单核处理器中生成1个线程,所述线程的优先级比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行串行计算;
在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若需要同时进行多次在线迭代,则在N个处理器中运行飞行控制软件,实现N个在线迭代算法的并行计算;若不需要,则在1个处理器中运行飞行控制软件,实现在线迭代算法的串行计算;
其中,T为控制周期,TGen为导航制导姿控解算时间,Tlter为在线迭代解算时间。
本申请实施例中提供的在线迭代计算方法,将迭代耗时、硬件选型、是否并行作为输入,据此初步确定在线迭代方法顶层架构,即需要几个核、几个线程运行在线迭代算法,采用本申请所提供的方案,能够有效地利用多核处理器的处理资源,针对不同的应用需求,简单快速地形成在线迭代方法顶层架构,不需要更改系统方案即可实现在线迭代计算。
在一种实施方式中,所述在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若不需要同时进行多次在线迭代,则在1个处理器中运行飞行控制软件,实现在线迭代算法的串行计算,包括:
处理器核1通过定时器中断对其他核的软件运行状态进行超时判断,通过线程1准备其他核在线迭代所需要的初始数据,通过线程2接收其他核飞行控制软件的在线迭代结果;
处理器核2通过定时器中断对在线迭代算法进行超时判断,通过线程1接收其他核开始迭代的指令并进行初步处理,通过线程2运行在线迭代算法。
在一种实施方式中,所述在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若需要同时进行多次在线迭代,则在N个处理器中运行飞行控制软件,实现N个在线迭代算法的并行计算,包括:
处理器核1通过定时器中断对其他核的软件运行状态进行超时判断,通过线程1准备其他核在线迭代所需要的初始数据,通过线程2接收其他核飞行控制软件的在线迭代结果;
处理器核2~(N+1)分别通过定时器中断对在线迭代算法进行超时判断,通过线程1接收其他核开始迭代的指令并进行初步处理,通过线程2运行在线迭代算法。
在一种实施方式中,所述在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若不需要同时进行多次在线迭代,则在单核处理器中生成1个线程,所述线程的优先级比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行串行计算,包括:
处理器核通过定时器中断对本核执行在线迭代的线程的运行状态进行超时判断,通过线程1准备执行在线迭代的线程进行计算所需要的初始数据,通过线程2根据所述初始数据进行在线迭代并生成在线迭代结果。
在一种实施方式中,所述在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若需要同时进行多次在线迭代,则在所述单核处理器中生成N个线程分别用于N次在线迭代,N个线程的优先级相同且比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行并行计算,包括:
处理器核通过定时器中断对本核执行在线迭代的线程的运行状态进行超时判断,通过线程1准备执行在线迭代的线程进行计算所需要的初始数据,通过线程2~(N+1)分别根据所述初始数据进行在线迭代并生成在线迭代结果。
在一种实施方式中,飞行控制软件的运行环境为多核处理器时的在线迭代计算过程,包括:
处理器核1准备供其他核的核间通信数据,向其他核发送迭代开始指令,在本核的线程2中阻塞等待其他核的计算结果,并在超过预设第一在线迭代时间时退出迭代;
其他核中的线程1收到迭代开始指令后发布信号量告知本核的线程2开始在线迭代计算;本核的线程2进行循环体判断,若未超过预设第一在线迭代次数、未超过预设第二在线迭代时间则进行迭代计算并在满足迭代退出的数值计算条件时将迭代正常结果发送给其他核,否则退出迭代、置迭代超时退出标志并将迭代异常结果发送给其他核;
处理器核1如果收到迭代正常结果,则置迭代成功标志并使用该迭代计算结果;否则,从飞行诸元中取出备保值使用。
在一种实施方式中,飞行控制软件的运行环境为单核处理器时的在线迭代计算过程,包括:
线程1准备供其他线程使用的核间通信数据,向其他线程发送信号量;
其他线程阻塞等待线程1的迭代开始指令,在收到迭代开始指令并满足预设迭代计算条件时进行循环体判断,若未超过预设第二在线迭代次数则进行迭代计算并在满足迭代退出计算条件时记录迭代正常结果;若超过预设第二在线迭代次数则退出迭代并置迭代超时退出标志,记录迭代异常结果,从飞行诸元中取出备保值。
实施例二
基于同一发明构思,本申请实施例提供了一种在线迭代计算装置,该装置解决技术问题的原理与一种在线迭代计算方法相似,重复之处不再赘述。
图2示出了本申请实施例二中在线迭代计算装置的结构示意图。
如图所示,所述在线迭代计算装置包括:
第一处理模块201,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若需要同时进行多次在线迭代,则在所述单核处理器中生成N个线程分别用于N次在线迭代,N个线程的优先级相同且比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行并行计算;
第二处理模块202,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若不需要同时进行多次在线迭代,则在单核处理器中生成1个线程,所述线程的优先级比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行串行计算;
第三处理模块203,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若需要同时进行多次在线迭代,则在N个处理器中运行飞行控制软件,实现N个在线迭代算法的并行计算;
第四处理模块204,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若不需要同时进行多次在线迭代,则在1个处理器中运行飞行控制软件,实现在线迭代算法的串行计算;
其中,T为控制周期,TGen为导航制导姿控解算时间,Tlter为在线迭代解算时间。
本申请实施例中提供的在线迭代计算装置,将迭代耗时、硬件选型、是否并行作为输入,据此初步确定在线迭代方法顶层架构,即需要几个核、几个线程运行在线迭代算法,采用本申请所提供的方案,能够有效地利用多核处理器的处理资源,针对不同的应用需求,简单快速地形成在线迭代方法顶层架构,不需要更改系统方案即可实现在线迭代计算。
实施例三
基于同一发明构思,本申请实施例还提供一种计算机存储介质,下面进行说明。
所述计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如实施例一所述在线迭代计算方法的步骤。
本申请实施例中提供的计算机存储介质,将迭代耗时、硬件选型、是否并行作为输入,据此初步确定在线迭代方法顶层架构,即需要几个核、几个线程运行在线迭代算法,采用本申请所提供的方案,能够有效地利用多核处理器的处理资源,针对不同的应用需求,简单快速地形成在线迭代方法顶层架构,不需要更改系统方案即可实现在线迭代计算。
实施例四
基于同一发明构思,本申请实施例还提供一种电子设备,下面进行说明。
图3示出了本申请实施例四中电子设备的结构示意图。
如图所示,所述电子设备包括存储器301、以及一个或多个处理器302,所述存储器用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器执行时,实现如实施例一所述的在线迭代计算方法。
本申请实施例中提供的电子设备,将迭代耗时、硬件选型、是否并行作为输入,据此初步确定在线迭代方法顶层架构,即需要几个核、几个线程运行在线迭代算法,采用本申请所提供的方案,能够有效地利用多核处理器的处理资源,针对不同的应用需求,简单快速地形成在线迭代方法顶层架构,不需要更改系统方案即可实现在线迭代计算。
实施例五
为了便于本申请的实施,本申请实施例以一具体实例进行说明。
(一)在线迭代计算顶层架构
通过以下步骤实现顶层架构设计功能:
a)假设控制周期T,导航制导姿控解算时间TGen,在线迭代解算时间TIter,如果(TGen+TIter)<T,在导航制导姿控线程中完成在线迭代计算即可,否则按照b)进行;
b)根据飞行控制软件运行的硬件环境是否是多核处理器进行判断,如果不是多核处理器,按照c)进行判读,如果是,按照f)进行判断;
c)根据运载火箭飞行控制软件是否需要同时进行多次在线迭代,如果需要,按照d)进行,否则按照e)进行;
d)假设飞行控制软件同时需要进行N次在线迭代,在单核处理器新设计N个线程,这N个线程的优先级相同,且比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行计算,这些线程采用时间片轮转的方式进行调度,实现N个在线迭代算法的并行计算;
e)在单核处理器新设计1个线程,这个线程的优先级比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行串行计算;
f)根据运载火箭飞行控制软件是否需要同时进行多次在线迭代,如果需要,按照g)进行,否则按照h)进行;
g)假设飞行控制软件同时需要进行N次在线迭代,新增N个处理器中运行飞行控制软件,实现N个在线迭代算法的并行计算;
h)新增1个处理器中运行飞行控制软件,实现在线迭代算法的串行计算;
通过以上步骤,便能确定运载火箭飞行控制软件在线迭代的基本架构设计,即使用几个核、几个线程用于迭代计算。
(二)在线迭代计算的具体架构
根据顶层架构可知,共有4中运载火箭在线迭代架构,第一种是并行单核迭代,第二种是并行多核迭代,第三种是串行单核迭代,第四种是串行多核迭代。
(1)串行多核在线迭代计算架构
串行多核迭代指的是飞行控制软件同时只进行N次(N<2)迭代计算,并且是基于多核架构进行设计,包括:
a)处理器核1:
1)定时器中断,用于对其他核软件运行状态进行超时判断;
2)线程1,用于准备其他核在线迭代所需要的初始数据;
3)线程2,用于接收其他处理器核飞行控制软件的在线迭代结果。
b)处理器核2:
1)定时器中断,用于对迭代算法进行超时判断;
2)线程1,用于用于接收其他核开始迭代的指令,并进行初步处理;
3)线程2,用于运行在线迭代算法。
(2)并行多核在线迭代计算架构
并行多核迭代是指飞行控制软件需要同时进行N次(N>=2)迭代计算,并且是基于多核架构进行设计,包括:
a)处理器核1:
1)定时器中断,用于对其他核软件运行状态进行超时判断;
2)线程1,用于准备其他核在线迭代所需要的初始数据;
3)线程2,用于接收其他处理器核飞行控制软件的在线迭代结果。
b)处理器核2-(N+1):
1)定时器中断,用于对迭代算法进行超时判断;
2)线程1,用于用于接收其他核开始迭代的指令,并进行初步处理;
3)线程2,用于运行在线迭代算法。
(3)串行单核在线迭代计算架构
串行单核迭代指的是飞行控制软件同时只进行N次(N<2)迭代计算,并且是基于单核架构进行设计,相较于串行多核迭代,这种迭代方法利用主线程的计算剩余时间计算,迭代解算用时长,但计算简单,架构方案共有以下组成:
a)定时器中断,用于对本核在线迭代线程的运行状态进行超时判断;
b)线程1,用于准备在线迭代线程进行计算所需要的初始数据;
c)线程2,使用在线迭代用初始数据进行在线迭代,并生成在线迭代结果。
(4)并行单核在线迭代计算架构
并行单核迭代是指飞行控制软件需要同时进行N次(N>=2)迭代计算,并且是基于单核架构进行设计,相较于并行多核迭代,这种迭代方法利用主线程的计算剩余时间计算,迭代解算用时长,但计算简单,这种在线迭代架构方案由以下组成:
a)定时器中断,用于对本核在线迭代线程的运行状态进行超时判断;
b)线程1,用于准备在线迭代线程进行计算所需要的初始数据;
c)线程2-(N+1),使用线程1产生的在线迭代初始数据,进行在线迭代计算,并生成在线迭代结果。
(三)在线迭代计算流程
根据在线迭代计算顶层架构可知,共有4中运载火箭在线迭代架构,第一种是并行单核迭代,第二种是并行多核迭代,第三种是串行单核迭代,第四种是串行多核迭代。下面分别对单核迭代和多核迭代的在线迭代计算流程进行介绍。
(1)多核在线迭代计算流程
如果是串行多迭代,再另增加一个核用于迭代计算。如果是并行多核迭代,则在零增加N个核(N>=2)用于迭代计算,其余流程一致。
下面以串行多核迭代方法计算过程为例进行说明。
a)规划用于在线迭代的核间通信数据,
1)迭代开始指令,用于开启在线迭代计算,应包含“迭代计算处理器核”用于明确由该核进行迭代计算,包含“迭代计算超时时间”用于明确异常超时退出的阈值,包含“迭代计算超次次数”用于明确异常超次退出的阈值,该指令在处理器核1产生,处理器核2-(N+1)中使用;
2)迭代计算用初始数据,用于在线迭代计算所使用的必要的初始数据,应包含“迭代计算处理器核”用于明确由该核进行迭代计算,包含“迭代解算用初始化数据”用于迭代计算使用,该指令在处理器核2-(N+1)产生,处理器核2-(N+1)中使用;
3)迭代计算结果,应包含“迭代计算处理核”用于明确哪个核进行的迭代计算,包含“迭代计算目的核”用于明确计算结果发向哪个核,“迭代计算结果”如果迭代异常,应包括异常标志和异常退出类型,如果成功,应包括迭代时间和迭代结果,该指令在处理器核2-(N+1)产生,处理器核1中使用;
4)一个全局变量X,该全局变量是处理器核2-(N+1)的在线迭代时间,在定时器中断中更新,在线程2中将该变量作为迭代退出条件之一使用;
5)一个全局变量Y,该全局变量是处理器核2-(N+1)的在线迭代次数,供定时器中断和线程使用,在线程2中的每一次迭代计算完成时更新,在线程2中将该变量作为迭代退出条件值之一使用;
6)一个全局变量Z,该全局变量是处理器核1的在线迭代时间,在定时器中断更新核使用,作为处理器核1中判断迭代退出的条件。
b)设计多核交互数据逻辑设计:
1)处理器核1准备好供其他核使用的核间通信数据;
2)处理器核1向处理器核2-(N+1)发送迭代开始指令,在线程2中阻塞等待其他核的计算结果,并启动处理器核1的定时中断,在该中断中更新变量Z,判断全局变量Z的值是否大于阈值ZMax,如果大于则退出迭代,并置迭代超时退出标志,执行12),否则继续执行3);
3)处理器核2-(N+1)的线程1(以下简称“线程1”)等待其他核开始迭代的指令,如果收到开始迭代指令后,执行4);如果没有收到,挂起本线程一直处于阻塞等待状态;
4)线程1置迭代开始标志,发布信号量告知线程2(以下简称“线程2”)开始迭代计算,执行5);
5)处理器核2的定时器中断(以下简称“定时器中断”)中判断迭代开始标志是否有效,如果有效,则更新全局变量X,否则停止更新;
6)线程2在循环体判断时,判断全局变量X的值是否大于阈值XMax,如果大于则退出迭代,并置迭代超时退出标志,执行9),否则执7);
7)线程2在循环体判断时,判断全局变量Y的值是否大于阈值YMax,如果大于则退出迭代,并置迭代超时退出标志,执行9),否则执8);
8)线程2进行循环体判断,如果满足迭代退出的数值计算条件,记录迭代结果,执行10),否则继续执行8);
9)线程2迭代超时或者超次,将迭代异常结果信息发送给其他核,执行12);
10)线程2迭代计算正常,将迭代正常结果信息发送给其他核,执行11);
11)处理器核1如果收到结果,置迭代成功标志,并使用该迭代计算结果;
12)处理器核1如果没有收到结果,从飞行诸元中取出备保值,直接使用。
(2)单核在线迭代计算流程
如果是串行单核迭代,在同一个核中启动1个线程用于迭代计算。如果是并行单核迭代,则在同一个核中启动N个线程(N>=2)用于迭代计算,其余流程一致,下面以串行单核迭代方法的计算过程为例进行说明。
a)规划单核在线迭代的数据:
1)信号量S1,用于开启在线迭代计算,该信号量在线程1产生,线程2中使用;
2)迭代计算用初始数据,用于在线迭代计算所使用的必要的初始数据,包含“迭代解算用初始化数据”用于迭代计算使用,该指令在线程1产生,线程2中使用;
3)迭代计算结果,“迭代计算结果”如果迭代异常,应包括异常标志和异常退出类型,如果成功,应包括迭代时间和迭代结果,该指令在线程1产生,线程2中使用;
4)一个全局变量Y,该全局变量是在线迭代次数,在线程2中的每一次迭代计算完成时更新,作为迭代退出条件之一使用;
5)一个全局变量Z,该全局变量是在线迭代时间,在定时器中断更新,作为迭代退出的条件之一使用。
b)设计单核在线迭代交互逻辑:
1)线程1准备好供线程2使用的核间通信数据;
2)线程1向线程2发送信号量,并启动处理器核1的定时中断,在该中断中更新变量Z,判断全局变量Z的值是否大于阈值ZMax,如果大于则退出迭代,并置迭代超时退出标志,执行7),否则继续执行3);
3)线程2阻塞等待线程1的开始迭代指令,如果收到开始迭代指令后,执行4);如果没有收到,挂起本线程一直处于阻塞等待状态;
4)线程1根据飞行时序判断是否满足迭代计算条件,如果满足则置迭代开始标志,发布信号量告知线程2(以下简称“线程2”)开始迭代计算,执行5);
5)线程2在循环体判断时,判断全局变量Y的值是否大于阈值YMax,如果大于则退出迭代,并置迭代超时退出标志,执行7),否则执8);
6)线程2进行循环体判断,如果满足迭代退出的计算条件,记录迭代结果,执行8),否则继续执行7);
7)线程2迭代超时或者超次,记录迭代异常结果信息,从飞行诸元中取出备保值;
8)线程2迭代计算正常,记录迭代正常结果信息。
本申请实施例具有如下优点:
(1)提出了一种运载火箭在线迭代方法顶层架构设计方法,将迭代耗时、硬件选型、是否并行作为设计输入,根据输入初步确定在线迭代方法顶层架构,即需要几个核、几个线程运行在线迭代算法,本方法能够有效地利用多核处理器的处理资源,针对不同的应用需求,简快速地形成在线迭代方法顶层架构设计;
(2)依据在线迭代方法顶层架构设计,总结出并行单核迭代、并行多核迭代、串行单核迭代及串行多核迭代四种架构,针对每一种架构的具体组成进行了设计,为飞行控制软件实时可靠在线迭代计算提供了技术支撑;
(3)依据在线迭代方法顶层架构设计,对单核迭代、并行多核迭代、串行单核迭代及串行多核迭代四种架构的在线迭代计算流程进行了设计,能够检测迭代超次、迭代超时、处理器核异常等多种错误,能够显著提高飞行控制软件的可靠性和实时性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种在线迭代计算方法,其特征在于,包括:
在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若需要同时进行多次在线迭代,则在所述单核处理器中生成N个线程分别用于N次在线迭代,N个线程的优先级相同且比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行并行计算;若不需要,则在单核处理器中生成1个线程,所述线程的优先级比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行串行计算;
在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若需要同时进行多次在线迭代,则在N个处理器中运行飞行控制软件,实现N个在线迭代算法的并行计算;若不需要,则在1个处理器中运行飞行控制软件,实现在线迭代算法的串行计算;
其中,T为控制周期,TGen为导航制导姿控解算时间,Tlter为在线迭代解算时间。
2.根据权利要求1所述的方法,其特征在于,所述在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若不需要同时进行多次在线迭代,则在1个处理器中运行飞行控制软件,实现在线迭代算法的串行计算,包括:
处理器核1通过定时器中断对其他核的软件运行状态进行超时判断,通过线程1准备其他核在线迭代所需要的初始数据,通过线程2接收其他核飞行控制软件的在线迭代结果;
处理器核2通过定时器中断对在线迭代算法进行超时判断,通过线程1接收其他核开始迭代的指令并进行初步处理,通过线程2运行在线迭代算法。
3.根据权利要求1所述的方法,其特征在于,所述在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若需要同时进行多次在线迭代,则在N个处理器中运行飞行控制软件,实现N个在线迭代算法的并行计算,包括:
处理器核1通过定时器中断对其他核的软件运行状态进行超时判断,通过线程1准备其他核在线迭代所需要的初始数据,通过线程2接收其他核飞行控制软件的在线迭代结果;
处理器核2~(N+1)分别通过定时器中断对在线迭代算法进行超时判断,通过线程1接收其他核开始迭代的指令并进行初步处理,通过线程2运行在线迭代算法。
4.根据权利要求1所述的方法,其特征在于,所述在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若不需要同时进行多次在线迭代,则在单核处理器中生成1个线程,所述线程的优先级比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行串行计算,包括:
处理器核通过定时器中断对本核执行在线迭代的线程的运行状态进行超时判断,通过线程1准备执行在线迭代的线程进行计算所需要的初始数据,通过线程2根据所述初始数据进行在线迭代并生成在线迭代结果。
5.根据权利要求1所述的方法,其特征在于,所述在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若需要同时进行多次在线迭代,则在所述单核处理器中生成N个线程分别用于N次在线迭代,N个线程的优先级相同且比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行并行计算,包括:
处理器核通过定时器中断对本核执行在线迭代的线程的运行状态进行超时判断,通过线程1准备执行在线迭代的线程进行计算所需要的初始数据,通过线程2~(N+1)分别根据所述初始数据进行在线迭代并生成在线迭代结果。
6.根据权利要求1所述的方法,其特征在于,飞行控制软件的运行环境为多核处理器时的在线迭代计算过程,包括:
处理器核1准备供其他核的核间通信数据,向其他核发送迭代开始指令,在本核的线程2中阻塞等待其他核的计算结果,并在超过预设第一在线迭代时间时退出迭代;
其他核中的线程1收到迭代开始指令后发布信号量告知本核的线程2开始在线迭代计算;本核的线程2进行循环体判断,若未超过预设第一在线迭代次数、未超过预设第二在线迭代时间则进行迭代计算并在满足迭代退出的数值计算条件时将迭代正常结果发送给其他核,否则退出迭代、置迭代超时退出标志并将迭代异常结果发送给其他核;
处理器核1如果收到迭代正常结果,则置迭代成功标志并使用该迭代计算结果;否则,从飞行诸元中取出备保值使用。
7.根据权利要求1所述的方法,其特征在于,飞行控制软件的运行环境为单核处理器时的在线迭代计算过程,包括:
线程1准备供其他线程使用的核间通信数据,向其他线程发送信号量;
其他线程阻塞等待线程1的迭代开始指令,在收到迭代开始指令并满足预设迭代计算条件时进行循环体判断,若未超过预设第二在线迭代次数则进行迭代计算并在满足迭代退出计算条件时记录迭代正常结果;若超过预设第二在线迭代次数则退出迭代并置迭代超时退出标志,记录迭代异常结果,从飞行诸元中取出备保值。
8.一种在线迭代计算装置,其特征在于,包括:
第一处理模块,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若需要同时进行多次在线迭代,则在所述单核处理器中生成N个线程分别用于N次在线迭代,N个线程的优先级相同且比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行并行计算;
第二处理模块,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为单核处理器时,若不需要同时进行多次在线迭代,则在单核处理器中生成1个线程,所述线程的优先级比导航制导姿控计算线程低,利用导航制导姿控计算线程的空余时间进行串行计算;
第三处理模块,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若需要同时进行多次在线迭代,则在N个处理器中运行飞行控制软件,实现N个在线迭代算法的并行计算;
第四处理模块,用于在(TGen+TIter)≥T且飞行控制软件的运行环境为多核处理器时,若不需要同时进行多次在线迭代,则在1个处理器中运行飞行控制软件,实现在线迭代算法的串行计算;
其中,T为控制周期,TGen为导航制导姿控解算时间,Tlter为在线迭代解算时间。
9.一种计算机存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一所述方法的步骤。
10.一种电子设备,其特征在于,包括存储器、以及一个或多个处理器,所述存储器用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器执行时,实现如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011079837.1A CN112182770A (zh) | 2020-10-10 | 2020-10-10 | 在线迭代计算方法、装置及计算机存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011079837.1A CN112182770A (zh) | 2020-10-10 | 2020-10-10 | 在线迭代计算方法、装置及计算机存储介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112182770A true CN112182770A (zh) | 2021-01-05 |
Family
ID=73948869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011079837.1A Pending CN112182770A (zh) | 2020-10-10 | 2020-10-10 | 在线迭代计算方法、装置及计算机存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112182770A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049245A (zh) * | 2012-10-25 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于cpu多核平台的软件性能优化方法 |
CN103870338A (zh) * | 2014-03-05 | 2014-06-18 | 国家电网公司 | 一种基于cpu核管理的分布式并行计算平台及方法 |
US20160110195A1 (en) * | 2014-10-20 | 2016-04-21 | International Business Machines Corporation | Coordinated start interpretive execution exit for a multithreaded processor |
CN106775659A (zh) * | 2016-11-28 | 2017-05-31 | 四川航天系统工程研究所 | 基于高速Linkport接口的嵌入式双核飞行控制软件架构方法 |
CN106980492A (zh) * | 2016-01-15 | 2017-07-25 | 英特尔公司 | 用于确定处理器核上的工作布置的系统、方法和设备 |
CN110837415A (zh) * | 2018-08-17 | 2020-02-25 | 北京嘉楠捷思信息技术有限公司 | 一种基于risc-v多核处理器的线程调度方法和装置 |
-
2020
- 2020-10-10 CN CN202011079837.1A patent/CN112182770A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049245A (zh) * | 2012-10-25 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于cpu多核平台的软件性能优化方法 |
CN103870338A (zh) * | 2014-03-05 | 2014-06-18 | 国家电网公司 | 一种基于cpu核管理的分布式并行计算平台及方法 |
US20160110195A1 (en) * | 2014-10-20 | 2016-04-21 | International Business Machines Corporation | Coordinated start interpretive execution exit for a multithreaded processor |
CN106980492A (zh) * | 2016-01-15 | 2017-07-25 | 英特尔公司 | 用于确定处理器核上的工作布置的系统、方法和设备 |
CN106775659A (zh) * | 2016-11-28 | 2017-05-31 | 四川航天系统工程研究所 | 基于高速Linkport接口的嵌入式双核飞行控制软件架构方法 |
CN110837415A (zh) * | 2018-08-17 | 2020-02-25 | 北京嘉楠捷思信息技术有限公司 | 一种基于risc-v多核处理器的线程调度方法和装置 |
Non-Patent Citations (2)
Title |
---|
ZJ_偶尔上路: "单核&多核,进程&线程,串行&并行,同步&异步", 《简书》 * |
林英等: "基于多核架构的软件开发方法研究", 《现代计算机(专业版)》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109697186B (zh) | 时间确定性编译器 | |
CN109697185B (zh) | 多瓦片处理阵列中的同步 | |
JP6294586B2 (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
CN109697082B (zh) | 指令组 | |
CN106990941A (zh) | 使用寄存器重命名处理移动指令 | |
US9904554B2 (en) | Checkpoints for a simultaneous multithreading processor | |
JPH0766329B2 (ja) | 情報処理装置 | |
JPH0517588B2 (zh) | ||
US8572355B2 (en) | Support for non-local returns in parallel thread SIMD engine | |
JPH0622035B2 (ja) | ベクトル処理装置 | |
US8458710B2 (en) | Scheduling jobs for execution on a computer system | |
CN110648124B (zh) | 在区块链中并发执行交易的方法和装置 | |
CN103810035A (zh) | 智能上下文管理 | |
US20180052707A1 (en) | Cooperative thread array granularity context switch during trap handling | |
CN110704112A (zh) | 在区块链中并发执行交易的方法和装置 | |
WO2007035126A1 (fr) | Procede d'organisation d'ordinateurs multiprocesseurs | |
US20240086359A1 (en) | Dynamic allocation of arithmetic logic units for vectorized operations | |
EP3516515B1 (en) | Scheduling of tasks in a multiprocessor device | |
US20140189329A1 (en) | Cooperative thread array granularity context switch during trap handling | |
KR20220036950A (ko) | 순수 함수 신경망 가속기 시스템 및 아키텍처 | |
US11734059B2 (en) | Hardware assisted fine-grained data movement | |
CN112182770A (zh) | 在线迭代计算方法、装置及计算机存储介质、电子设备 | |
KR19980079722A (ko) | 데이타 처리 시스템 및 무질서 명령을 완성하기 위한 방법 | |
US20100318751A1 (en) | Multiple error management in a multiprocessor computer system | |
US20220300326A1 (en) | Techniques for balancing workloads when parallelizing multiply-accumulate computations |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210105 |