一种任务调度的方法、装置、存储介质及电子设备转让专利

申请号 : CN202310615474.6

文献号 : CN116347623B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐晓瑜汤昭荣崔姝瑶邱吉冰

申请人 : 之江实验室

摘要 :

本说明书公开了一种任务调度的方法、装置、存储介质及电子设备,包括:先确定当前时刻与当前卫星能够通信的卫星作为待选卫星。然后,针对每一个待选卫星,确定该待选卫星的信息,并根据该待选卫星的信息以及当前卫星的信息,预测当前卫星与该待选卫星之间的通信时长,以及确定该待选卫星执行待执行任务的执行时长。然后,根据各待选卫星的执行时长和通信时长,确定待执行任务的调度卫星,再确定执行待执行任务所需的数据,并将数据发送给调度卫星,可以保证在将待执行任务的数据发送给调度卫星之后,能够接收到调度卫星执行待执行任务之后发送的执行结果,以提高待执行任务的执行结果的可靠性,提高卫星计算资源的利用率。

权利要求 :

1.一种任务调度的方法,其特征在于,包括:

当前卫星确定当前时刻与所述当前卫星进行通信的卫星作为待选卫星以及待执行任务;

针对确定出的每一个待选卫星,确定该待选卫星的信息,其中,该待选卫星的信息至少包括该待选卫星的坐标以及调度信息;

根据所述当前卫星的信息以及该待选卫星的信息,预测所述当前卫星与该待选卫星之间的通信时长,以及根据该待选卫星的信息,确定该待选卫星执行所述待执行任务的执行时长;其中,所述当前卫星的信息至少包括所述当前卫星的坐标;

根据各待选卫星的执行时长以及所述各待选卫星的通信时长,确定所述待执行任务的调度卫星;

确定执行所述待执行任务所需的数据,并将所述数据发送给所述调度卫星;

其中,所述待执行任务为目标检测任务,所述待执行任务所需的数据为待检测的图像以及用于目标检测的模型;

将所述数据发送给所述调度卫星,具体包括:

所述当前卫星将所述数据发送给两个调度卫星,根据所述当前卫星以及所述两个调度卫星执行所述待执行任务的执行结果,确定三个执行结果中相同的执行结果,将相同的执行结果作为所述待执行任务的最终的执行结果。

2.如权利要求1所述的方法,其特征在于,根据所述当前卫星的信息以及该待选卫星的信息,预测所述当前卫星与该待选卫星之间的通信时长,具体包括:将所述当前卫星的信息以及该待选卫星的信息输入预先训练的通信时长预测模型,得到所述当前卫星与该待选卫星之间的通信时长。

3.如权利要求2所述的方法,其特征在于,所述通信时长预测模型包括模拟层和预测层;

将所述当前卫星的信息以及该待选卫星的信息输入预先训练的通信时长预测模型,得到所述当前卫星与该待选卫星之间的通信时长,具体包括:确定各卫星的信息,并将所述各卫星的信息输入所述通信时长预测模型的模拟层,确定所述当前卫星与该待选卫星之间的可见性时长,其中,所述各卫星至少包括所述当前卫星以及各待选卫星;

将所述可见性时长、所述当前卫星的信息以及该待选卫星的信息输入所述通信时长预测模型的预测层,得到所述当前卫星与该待选卫星之间的通信时长。

4.如权利要求1所述的方法,其特征在于,根据该待选卫星的信息,确定该待选卫星执行所述待执行任务的执行时长,具体包括:获取执行所述待执行任务所需的数据,并根据所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长;根据该待选卫星的信息,确定该待选卫星运行所述待执行任务所需等待的等待时长,以及预测该待选卫星运行所述待执行任务所需的运行时长;

将所述传输时长、所述等待时长以及所述运行时长的和作为该待选卫星执行所述待执行任务的执行时长。

5.如权利要求4所述的方法,其特征在于,根据所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长,具体包括:确定所述当前卫星与该待选卫星历史上传输数据的传输速率;

根据确定出的传输速率以及所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长。

6.如权利要求4所述的方法,其特征在于,该待选卫星的调度信息包括该待选卫星的资源信息,所述资源信息至少包括剩余存储资源信息以及剩余算力资源信息;

预测该待选卫星运行所述待执行任务所需的运行时长,具体包括:

将该待选卫星的资源信息以及所述数据输入预先训练的任务运行时长预测模型,得到该待选卫星运行所述待执行任务所需的运行时长。

7.如权利要求1所述的方法,其特征在于,根据各待选卫星的执行时长与所述各待选卫星的通信时长,确定所述待执行任务的调度卫星,具体包括:针对每一个待选卫星,判断该待选卫星的执行时长是否不大于该待选卫星与所述当前卫星的通信时长;

若是,将该待选卫星作为所述待执行任务的调度卫星;

若否,不将该待选卫星作为所述待执行任务的调度卫星。

8.如权利要求1所述的方法,其特征在于,根据各待选卫星的执行时长以及所述各待选卫星的通信时长,确定所述待执行任务的调度卫星,具体包括:根据各待选卫星的执行时长以及所述各待选卫星与所述当前卫星的通信时长,从所述各待选卫星中,确定执行时长不大于通信时长的卫星;

将确定出的卫星中按照执行时长从小到大进行排序,得到卫星序列;

根据所述卫星序列,从所述确定出的卫星中,选取至少一个卫星作为所述待执行任务的调度卫星。

9.如权利要求1所述的方法,其特征在于,根据各待选卫星的执行时长以及所述各待选卫星的通信时长,确定所述待执行任务的调度卫星,具体包括:根据各待选卫星的执行时长以及所述各待选卫星与所述当前卫星的通信时长,从所述各待选卫星中,确定执行时长不大于通信时长的卫星;

将确定出的卫星中的执行时长最短的卫星作为所述待执行任务的调度卫星。

10.如权利要求1所述的方法,其特征在于,确定当前时刻与当前卫星进行通信的卫星作为待选卫星,具体包括:从当前卫星发送测试信号;

根据接收到的所述测试信号的回传信号,确定当前时刻与所述当前卫星进行通信的卫星作为待选卫星。

11.一种任务调度的装置,其特征在于,所述装置位于当前卫星中,所述装置包括:第一确定模块,用于确定当前时刻与所述当前卫星进行通信的卫星作为待选卫星以及待执行任务;

第二确定模块,用于针对确定出的每一个待选卫星,确定该待选卫星的信息,其中,该待选卫星的信息至少包括该待选卫星的坐标以及历史调度信息;

第三确定模块,用于根据所述当前卫星的信息以及该待选卫星的信息,预测所述当前卫星与该待选卫星之间的通信时长,以及根据该待选卫星的信息,确定该待选卫星执行所述待执行任务的执行时长;其中,所述当前卫星的信息至少包括所述当前卫星的坐标;

第四确定模块,用于根据各待选卫星的执行时长以及所述各待选卫星的通信时长,确定所述待执行任务的调度卫星;

调度模块,用于确定执行所述待执行任务所需的数据,并将所述数据发送给所述调度卫星;

其中,所述待执行任务为目标检测任务,所述待执行任务所需的数据为待检测的图像以及用于目标检测的模型;

所述调度模块具体用于,将所述数据发送给两个调度卫星,根据所述当前卫星以及所述两个调度卫星执行所述待执行任务的执行结果,确定三个执行结果中相同的执行结果,将相同的执行结果作为所述待执行任务的最终的执行结果。

12.如权利要求11所述的装置,其特征在于,所述第三确定模块具体用于,将所述当前卫星的信息以及该待选卫星的信息输入预先训练的通信时长预测模型,得到所述当前卫星与该待选卫星之间的通信时长。

13.如权利要求12所述的装置,其特征在于,所述通信时长预测模型包括模拟层和预测层;

所述第三确定模块具体用于,确定各卫星的信息,并将所述各卫星的信息输入所述通信时长预测模型的模拟层,确定所述当前卫星与该待选卫星之间的可见性时长,其中,所述各卫星至少包括所述当前卫星以及各待选卫星;将所述可见性时长、所述当前卫星的信息以及该待选卫星的信息输入所述通信时长预测模型的预测层,得到所述当前卫星与该待选卫星之间的通信时长。

14.如权利要求11所述的装置,其特征在于,所述第三确定模块具体用于,获取执行所述待执行任务所需的数据,并根据所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长;根据该待选卫星的信息,确定该待选卫星运行所述待执行任务所需等待的等待时长,以及预测该待选卫星运行所述待执行任务所需的运行时长;将所述传输时长、所述等待时长以及所述运行时长的和作为该待选卫星执行所述待执行任务的执行时长。

15.如权利要求14所述的装置,其特征在于,所述第三确定模块具体用于,确定所述当前卫星与该待选卫星历史上传输数据的传输速率;根据确定出的传输速率以及所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长。

16.如权利要求14所述的装置,其特征在于,该待选卫星的调度信息包括该待选卫星的资源信息,所述资源信息至少包括剩余存储资源信息以及剩余算力资源信息;

所述第三确定模块具体用于,将该待选卫星的资源信息以及所述数据输入预先训练的任务运行时长预测模型,得到该待选卫星运行所述待执行任务所需的运行时长。

17.如权利要求11所述的装置,其特征在于,所述第四确定模块具体用于,针对每一个待选卫星,判断该待选卫星的执行时长是否不大于该待选卫星与所述当前卫星的通信时长;若是,将该待选卫星作为所述待执行任务的调度卫星;若否,不将该待选卫星作为所述待执行任务的调度卫星。

18.如权利要求11所述的装置,其特征在于,所述第四确定模块具体用于,根据各待选卫星的执行时长以及所述各待选卫星与所述当前卫星的通信时长,从所述各待选卫星中,确定执行时长不大于通信时长的卫星;将确定出的卫星中按照执行时长从小到大进行排序,得到卫星序列;根据所述卫星序列,从所述确定出的卫星中,选取至少一个卫星作为所述待执行任务的调度卫星。

19.如权利要求11所述的装置,其特征在于,所述第四确定模块具体用于,根据各待选卫星的执行时长以及所述各待选卫星与所述当前卫星的通信时长,从所述各待选卫星中,确定执行时长不大于通信时长的卫星;将确定出的卫星中的执行时长最短的卫星作为所述待执行任务的调度卫星。

20.如权利要求11所述的装置,其特征在于,所述第一确定模块具体用于,从当前卫星发送测试信号;根据接收到的所述测试信号的回传信号,确定当前时刻与所述当前卫星进行通信的卫星作为待选卫星。

21.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1 10任一项所述的方法。

~

22.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1 10任一项所述的方~法。

说明书 :

一种任务调度的方法、装置、存储介质及电子设备

技术领域

[0001] 本说明书涉及计算机技术领域,尤其涉及一种任务调度的方法、装置、存储介质及电子设备。

背景技术

[0002] 随着科技的不断发展,人造卫星的应用范围变得更加广泛,比如在空中搜救任务中,人造卫星可以拍摄图像,并根据拍摄到的图像,确定目标所在的位置,以对目标进行搜救。
[0003] 在外部射线的影响下,人造卫星容易发生单粒子翻转(Single Event Upset,简称SEU)或者出现其他异常问题,这会导致单节点(即一个人造卫星)无法完成任务,或者单节点的任务执行结果不可靠。为了提高任务执行结果的可靠性,可以将任务同时调度到其他人造卫星上,以使其他人造卫星同样执行该任务,根据多个人造卫星的任务执行结果,确定该任务的任务执行结果。可见,如何在人造卫星之间进行任务调度是一个非常重要的问题。
[0004] 基于此,本说明书提供了一种任务调度的方法。

发明内容

[0005] 本说明书提供一种任务调度的方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
[0006] 本说明书采用下述技术方案:
[0007] 本说明书提供了一种任务调度的方法,包括:
[0008] 确定当前时刻与当前卫星进行通信的卫星作为待选卫星以及待执行任务;
[0009] 针对确定出的每一个待选卫星,确定该待选卫星的信息,其中,该待选卫星的信息至少包括该待选卫星的坐标以及调度信息;
[0010] 根据所述当前卫星的信息以及该待选卫星的信息,预测所述当前卫星与该待选卫星之间的通信时长,以及根据该待选卫星的信息,确定该待选卫星执行所述待执行任务的执行时长;其中,所述当前卫星的信息至少包括所述当前卫星的坐标;
[0011] 根据各待选卫星的执行时长以及所述各待选卫星的通信时长,确定所述待执行任务的调度卫星;
[0012] 确定执行所述待执行任务所需的数据,并将所述数据发送给所述调度卫星。
[0013] 可选地,根据所述当前卫星的信息以及该待选卫星的信息,预测所述当前卫星与该待选卫星之间的通信时长,具体包括:
[0014] 将所述当前卫星的信息以及该待选卫星的信息输入预先训练的通信时长预测模型,得到所述当前卫星与该待选卫星之间的通信时长。
[0015] 可选地,所述通信时长预测模型包括模拟层和预测层;
[0016] 将所述当前卫星的信息以及该待选卫星的信息输入预先训练的通信时长预测模型,得到所述当前卫星与该待选卫星之间的通信时长,具体包括:
[0017] 确定各卫星的信息,并将所述各卫星的信息输入所述通信时长预测模型的模拟层,确定所述当前卫星与该待选卫星之间的可见性时长,其中,所述各卫星至少包括所述当前卫星以及各待选卫星;
[0018] 将所述可见性时长、所述当前卫星的信息以及该待选卫星的信息输入所述通信时长预测模型的预测层,得到所述当前卫星与该待选卫星之间的通信时长。
[0019] 可选地,根据该待选卫星的信息,确定该待选卫星执行所述待执行任务的执行时长,具体包括:
[0020] 获取执行所述待执行任务所需的数据,并根据所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长;根据该待选卫星的信息,确定该待选卫星运行所述待执行任务所需等待的等待时长,以及预测该待选卫星运行所述待执行任务所需的运行时长;
[0021] 将所述传输时长、所述等待时长以及所述运行时长的和作为该待选卫星执行所述待执行任务的执行时长。
[0022] 可选地,根据所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长,具体包括:
[0023] 确定所述当前卫星与该待选卫星历史上传输数据的传输速率;
[0024] 根据确定出的传输速率以及所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长。
[0025] 可选地,该待选卫星的调度信息包括该待选卫星的资源信息,所述资源信息至少包括剩余存储资源信息以及剩余算力资源信息;
[0026] 预测该待选卫星运行所述待执行任务所需的运行时长,具体包括:
[0027] 将该待选卫星的资源信息以及所述数据输入预先训练的任务运行时长预测模型,得到该待选卫星运行所述待执行任务所需的运行时长。
[0028] 可选地,根据各待选卫星的执行时长与所述各待选卫星的通信时长,确定所述待执行任务的调度卫星,具体包括:
[0029] 针对每一个待选卫星,判断该待选卫星的执行时长是否不大于该待选卫星与所述当前卫星的通信时长;
[0030] 若是,将该待选卫星作为所述待执行任务的调度卫星;
[0031] 若否,不将该待选卫星作为所述待执行任务的调度卫星。
[0032] 可选地,根据各待选卫星的执行时长以及所述各待选卫星的通信时长,确定所述待执行任务的调度卫星,具体包括:
[0033] 根据各待选卫星的执行时长以及所述各待选卫星与所述当前卫星的通信时长,从所述各待选卫星中,确定执行时长不大于通信时长的卫星;
[0034] 将确定出的卫星中按照执行时长从小到大进行排序,得到卫星序列;
[0035] 根据所述卫星序列,从所述确定出的卫星中,选取至少一个卫星作为所述待执行任务的调度卫星。
[0036] 可选地,根据各待选卫星的执行时长以及所述各待选卫星的通信时长,确定所述待执行任务的调度卫星,具体包括:
[0037] 根据各待选卫星的执行时长以及所述各待选卫星与所述当前卫星的通信时长,从所述各待选卫星中,确定执行时长不大于通信时长的卫星;
[0038] 将确定出的卫星中的执行时长最短的卫星作为所述待执行任务的调度卫星。
[0039] 可选地,确定当前时刻与当前卫星进行通信的卫星作为待选卫星,具体包括:
[0040] 从当前卫星发送测试信号;
[0041] 根据接收到的所述测试信号的回传信号,确定当前时刻与所述当前卫星进行通信的卫星作为待选卫星。
[0042] 本说明书提供了一种任务调度的装置,包括:
[0043] 第一确定模块,用于确定当前时刻与当前卫星进行通信的卫星作为待选卫星以及待执行任务;
[0044] 第二确定模块,用于针对确定出的每一个待选卫星,确定该待选卫星的信息,其中,该待选卫星的信息至少包括该待选卫星的坐标以及历史调度信息;
[0045] 第三确定模块,用于根据所述当前卫星的信息以及该待选卫星的信息,预测所述当前卫星与该待选卫星之间的通信时长,以及根据该待选卫星的信息,确定该待选卫星执行所述待执行任务的执行时长;其中,所述当前卫星的信息至少包括所述当前卫星的坐标;
[0046] 第四确定模块,用于根据各待选卫星的执行时长以及所述各待选卫星的通信时长,确定所述待执行任务的调度卫星;
[0047] 调度模块,用于确定执行所述待执行任务所需的数据,并将所述数据发送给所述调度卫星。
[0048] 可选地,所述第三确定模块具体用于,将所述当前卫星的信息以及该待选卫星的信息输入预先训练的通信时长预测模型,得到所述当前卫星与该待选卫星之间的通信时长。
[0049] 可选地,所述通信时长预测模型包括模拟层和预测层;
[0050] 所述第三确定模块具体用于,确定各卫星的信息,并将所述各卫星的信息输入所述通信时长预测模型的模拟层,确定所述当前卫星与该待选卫星之间的可见性时长,其中,所述各卫星至少包括所述当前卫星以及各待选卫星;将所述可见性时长、所述当前卫星的信息以及该待选卫星的信息输入所述通信时长预测模型的预测层,得到所述当前卫星与该待选卫星之间的通信时长。
[0051] 可选地,所述第三确定模块具体用于,获取执行所述待执行任务所需的数据,并根据所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长;根据该待选卫星的信息,确定该待选卫星运行所述待执行任务所需等待的等待时长,以及预测该待选卫星运行所述待执行任务所需的运行时长;将所述传输时长、所述等待时长以及所述运行时长的和作为该待选卫星执行所述待执行任务的执行时长。
[0052] 可选地,所述第三确定模块具体用于,确定所述当前卫星与该待选卫星历史上传输数据的传输速率;根据确定出的传输速率以及所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长。
[0053] 可选地,该待选卫星的调度信息包括该待选卫星的资源信息,所述资源信息至少包括剩余存储资源信息以及剩余算力资源信息;
[0054] 所述第三确定模块具体用于,将该待选卫星的资源信息以及所述数据输入预先训练的任务运行时长预测模型,得到该待选卫星运行所述待执行任务所需的运行时长。
[0055] 可选地,所述第四确定模块具体用于,针对每一个待选卫星,判断该待选卫星的执行时长是否不大于该待选卫星与所述当前卫星的通信时长;若是,将该待选卫星作为所述待执行任务的调度卫星;若否,不将该待选卫星作为所述待执行任务的调度卫星。
[0056] 可选地,所述第四确定模块具体用于,根据各待选卫星的执行时长以及所述各待选卫星与所述当前卫星的通信时长,从所述各待选卫星中,确定执行时长不大于通信时长的卫星;将确定出的卫星中按照执行时长从小到大进行排序,得到卫星序列;根据所述卫星序列,从所述确定出的卫星中,选取至少一个卫星作为所述待执行任务的调度卫星。
[0057] 可选地,所述第四确定模块具体用于,根据各待选卫星的执行时长以及所述各待选卫星与所述当前卫星的通信时长,从所述各待选卫星中,确定执行时长不大于通信时长的卫星;将确定出的卫星中的执行时长最短的卫星作为所述待执行任务的调度卫星。
[0058] 可选地,所述第一确定模块具体用于,从当前卫星发送测试信号;根据接收到的所述测试信号的回传信号,确定当前时刻与所述当前卫星进行通信的卫星作为待选卫星。
[0059] 本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任务调度的方法。
[0060] 本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任务调度的方法。
[0061] 本说明书采用的上述至少一个技术方案能够达到以下有益效果:
[0062] 本说明书提供的任务调度的方法,先确定当前时刻与当前卫星进行通信的卫星作为待选卫星以及待执行任务。然后,针对确定出的每一个待选卫星,确定该待选卫星的信息,根据当前卫星的信息以及该待选卫星的信息,预测当前卫星与该待选卫星之间的通信时长,以及确定该待选卫星执行待执行任务的执行时长。之后,根据各待选卫星的执行时长以及各待选卫星的通信时长,确定待执行任务的调度卫星,再确定执行待执行任务所需的数据,并将数据发送给调度卫星。
[0063] 从上述方法中可以看出,本申请在人造卫星之间进行任务调度时,先确定当前时刻与当前卫星能够通信的卫星作为待选卫星。然后,针对每一个待选卫星,确定该待选卫星的信息,并根据该待选卫星的信息以及当前卫星的信息,预测当前卫星与该待选卫星之间的通信时长,以及确定该待选卫星执行待执行任务的执行时长。然后,根据各待选卫星的执行时长和通信时长,确定待执行任务的调度卫星,再确定执行待执行任务所需的数据,并将数据发送给调度卫星,可以保证在将待执行任务的数据发送给调度卫星之后,能够接收到调度卫星执行待执行任务之后发送的执行结果,以提高待执行任务的执行结果的准确性,提高卫星的利用率。

附图说明

[0064] 此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
[0065] 图1为本说明书中提供的一种任务调度的方法的流程示意图;
[0066] 图2为本说明书中提供的一种卫星通信的示意图;
[0067] 图3为本说明书中提供的另一种卫星通信的示意图;
[0068] 图4为本说明书提供的一种任务调度的装置结构的示意图;
[0069] 图5为本说明书提供的一种对应于图1的电子设备的结构示意图。

具体实施方式

[0070] 为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
[0071] 以下结合附图,详细说明本说明书各实施例提供的技术方案。
[0072] 图1为本说明书中提供的一种任务调度的方法的流程示意图,包括以下步骤:
[0073] S100:确定当前时刻与当前卫星进行通信的卫星作为待选卫星以及待执行任务。
[0074] 本说明书中,用于进行任务调度的设备确定当前时刻与当前卫星进行通信的卫星作为待选卫星以及待执行任务,其中,用于进行任务调度的设备可以是当前卫星,也可以是当前卫星上的调度器或者调度系统。为了便于描述,下面仅以当前卫星为执行主体,对本说明书提供的任务调度的方法进行说明。
[0075] 由于不同的卫星可以在相同的轨道高速运转,也可以在不同的轨道高速运转,且每一个卫星之间的通信情况是动态变化,可能出现在当前时刻某两个卫星是可以进行通信,但是可能在下一时刻或者经过一段时间后,这两个卫星不可以进行通信。比如,如图2所示,图2为本说明书中提供的一种卫星通信的示意图,假设图2显示的为t‑1时刻的卫星之间的通信情况,图2中的节点A G表示卫星A G,节点之间的边表示节点之间可通信,图2中的节~ ~点A分别与节点B E以及节点G之间存在边,表示卫星A与卫星B E以及卫星G之间在t‑1时刻~ ~
时可以进行通信,而节点F与节点A之间不存在边,表示t‑1时刻卫星A与卫星F无法进行通信。但是,在t时刻,卫星G远离卫星A,卫星F靠近卫星A,使得各卫星之间的通信情况发生了变化,如图3所示,图3为本说明书中提供的另一种卫星通信的示意图,图3中的节点A G表示~
卫星A G,图3中的带箭头的线表示卫星的运动情况,虚线节点F为t‑1时刻(即图2中)卫星F~
的位置,在t时刻,卫星F由虚线节点F的位置运动到节点F的位置。虚线节点G为t‑1时刻(即图2中)卫星G的位置,在t时刻,卫星G由虚线节点G的位置运动到节点G的位置。节点之间的边表示节点之间可通信,图3中的节点A分别与节点B F之间存在边,表示卫星A与卫星B F之~ ~
间在t时刻时可以进行通信,而节点G与节点A之间不存在边,表示t时刻卫星A与卫星G无法进行通信。
[0076] 基于此,在进行任务调度时,当前卫星需要确定当前时刻与当前卫星进行通信的卫星作为待选卫星以及待执行任务,其中,由于当前卫星可能会受到外部射线的影响,出现SEU或者其他异常问题,导致任务的执行结果不准确,故为了提高任务的执行结果的准确性,可以将当前卫星已经执行过的任务作为待执行任务,调度给其他卫星。当然,待执行任务还可以为当前卫星未执行过的任务,本说明书不做具体限定。
[0077] 继续沿用上例,结合图3,假设图3中的节点A(即卫星A)表示当前卫星,节点之间的边表示节点之间可通信,图3中的节点A分别与节点B F之间存在边,表示卫星A与卫星B F之~ ~间在当前时刻时可以进行通信,而节点G与节点A之间不存在边,表示当前时刻卫星A与卫星G无法进行通信,故当前卫星(即卫星A)可以确定当前时刻与当前卫星进行通信的卫星作为待选卫星以及待执行任务,也就是可以确定出的卫星B F作为待选卫星以及待执行任务。
~
[0078] 在本说明书中,当前卫星在确定当前时刻与当前卫星进行通信的卫星作为待选卫星时,可以从当前卫星发送测试信号,根据接收到的测试信号的回传信号,确定当前时刻与当前卫星进行通信的卫星作为待选卫星。
[0079] S102:针对确定出的每一个待选卫星,确定该待选卫星的信息,其中,该待选卫星的信息至少包括该待选卫星的坐标以及调度信息。
[0080] 针对确定出的每一个待选卫星,当前卫星可以确定该待选卫星的信息,其中,该待选卫星的信息至少包括该待选卫星的坐标以及调度信息。具体的,针对确定出的每一个待选卫星,当前卫星可以在当前时刻与该待选卫星进行通信时,获取该待选卫星的信息,该信息至少包括该待选卫星的坐标以及调度信息。该调度信息可以为当前调度信息,当前调度信息为当前卫星在当前时刻与该待选卫星进行通信时,获取到的该待选卫星的当前调度信息。
[0081] 另外,该待选卫星的调度信息还可以为历史调度信息以及当前调度信息,历史调度信息可以为当前卫星在历史上与该待选卫星进行通信时,获取到的该待选卫星的历史调度信息,该历史调度信息为该待选卫星在历史上发送给当前卫星的,且被当前卫星存储的信息,故当前卫星只需从自身的存储空间中获取该待选卫星的历史调度信息即可,具体的,当前卫星可以根据该待选卫星的标识,在存储空间中,确定标识对应的历史调度信息。当前调度信息为当前卫星在当前时刻与该待选卫星进行通信时,获取到的该待选卫星的当前调度信息。
[0082] 当然,历史调度信息还可以为当前卫星在当前时刻与该待选卫星进行通信时,获取到的该待选卫星的历史调度信息。也就是,当前卫星在当前时刻与该待选卫星进行通信时,该待选卫星将历史调度信息和当前调度信息一起作为调度信息,发送给当前卫星。
[0083] S104:根据所述当前卫星的信息以及该待选卫星的信息,预测所述当前卫星与该待选卫星之间的通信时长,以及根据该待选卫星的信息,确定该待选卫星执行所述待执行任务的执行时长;其中,所述当前卫星的信息至少包括所述当前卫星的坐标。
[0084] 当前卫星可以根据当前卫星的信息以及该待选卫星的信息,预测当前卫星与该待选卫星之间的通信时长,以及根据该待选卫星的信息,确定该待选卫星执行待执行任务的执行时长,其中,当前卫星的信息至少包括当前卫星的坐标。上述预测当前卫星与该待选卫星之间的通信时长以及确定该待选卫星执行待执行任务的执行时长这两个过程的执行可以不分先后顺序,也可以同时执行。
[0085] 在根据当前卫星的信息以及该待选卫星的信息,预测当前卫星与该待选卫星之间的通信时长时,当前卫星可以将各卫星的信息输入卫星模拟器,得到当前卫星与该待选卫星之间的可见性时长,将可见性时长作为当前卫星与该待选卫星之间的通信时长。其中,各卫星至少包括当前卫星以及各待选卫星,还可以包括在当前时刻与当前卫星无法进行通信的卫星。各卫星的信息可以包括各卫星的坐标、偏转角以及所在的轨道等信息。卫星模拟器用于对卫星之间的可见性进行分析,得到卫星之间的可见性时长,该卫星模拟器可以为卫星工具包 (Systems Tool Kit,简称STK),也可以为任意已有的工具,本说明书不做具体限定。
[0086] 进一步地,虽然在可见性时长内,能够保证当前卫星与该待选卫星之间可以进行通信,但是,由于在当前卫星或者该待选卫星靠近极地或者受到其他外部干扰时,可能会对当前卫星与该待选卫星之间的通信造成影响,可能导致在可见性时长内,当前卫星与该待选卫星之间无法进行通信,故直接将可见性时长作为当前卫星与该待选卫星之间的通信时长,会导致确定出的通信时长可能不准确。因此,当前卫星可以将当前卫星的信息以及该待选卫星的信息输入预先训练的通信时长预测模型,得到当前卫星与该待选卫星之间的通信时长。其中,通信时长预测模型可以为当前卫星预先训练的模型,也可以为预先由地面设备训练完成,再由卫星地面站发送给当前卫星的模型。通信时长预测模型用于预测卫星之间的可通信时间。
[0087] 具体的,通信时长预测模型可以包括模拟层和预测层,当前卫星可以确定各卫星的信息,并将各卫星的信息输入通信时长预测模型的模拟层,确定当前卫星与该待选卫星之间的可见性时长。然后,将可见性时长、当前卫星的信息以及该待选卫星的信息输入通信时长预测模型的预测层,得到当前卫星与该待选卫星之间的通信时长。其中,当前卫星的信息可以包括当前卫星的坐标、当前卫星与极地点的距离、当前卫星的历史换轨次数以及当前卫星最近换轨时间。该待选卫星的信息可以包括该待选卫星的坐标、该待选卫星与极地点的距离、该待选卫星的历史卫星换轨次数以及该待选卫星最近换轨时间。
[0088] 在根据该待选卫星的信息,确定该待选卫星执行待执行任务的执行时长时,当前卫星可以根据该待选卫星的信息以及待执行任务的数据,预测该待选卫星执行待执行任务的执行时长,其中,可以采用预先训练的机器学习模型或者算法,预测该待执行卫星执行待执行任务的执行时长,本说明书不做具体限定。
[0089] 另外,为了提高该待选卫星执行待执行任务的执行时长的准确性,当前卫星可以将执行时长分为传输时长、运行任务的运行时长以及等待运行任务的等待时长三部分,分别确定每一部分所需的时间。因此,当前卫星可以获取执行待执行任务所需的数据,并根据数据,确定当前卫星与该待选卫星传输数据的传输时长,根据该待选卫星的信息,确定该待选卫星运行待执行任务所需等待的等待时长,以及预测该待选卫星运行待执行任务所需的运行时长。然后,将传输时长、等待时长以及运行时长的和作为该待选卫星执行待执行任务的执行时长。其中,待执行任务的数据为执行待执行任务时所需的数据,比如待执行任务为目标检测任务,则待执行任务的数据可以为待检测的图像以及用于目标检测的模型。上述确定传输时长、确定等待时长以及确定运行时长的过程不分先后执行顺序,也可以同时执行,本说明书不做具体限定。
[0090] S106:根据各待选卫星的执行时长以及所述各待选卫星的通信时长,确定所述待执行任务的调度卫星。
[0091] S108:确定执行所述待执行任务所需的数据,并将所述数据发送给所述调度卫星。
[0092] 当前卫星先根据各待选卫星的执行时长以及各待选卫星的通信时长,确定待执行任务的调度卫星。之后,确定执行所述待执行任务所需的数据,并将数据发送给调度卫星。具体的,针对每一个待选卫星,判断该待选卫星的执行时长是否不大于该待选卫星与当前卫星的通信时长,若是,将该待选卫星作为待执行任务的调度卫星,若否,不将该待选卫星作为待执行任务的调度卫星。然后,确定执行待执行任务所需的数据,并将数据发送给调度卫星。
[0093] 从上述方法中可以看出,本申请人造卫星之间进行任务调度时,先确定当前时刻与当前卫星能够通信的卫星作为待选卫星。然后,针对每一个待选卫星,确定该待选卫星的信息,并根据该待选卫星的信息以及当前卫星的信息,预测当前卫星与该待选卫星之间的通信时长,可以保证当前卫星在通信时长内与该待选卫星能够进行稳定的通信。然后,确定该待选卫星执行待执行任务的执行时长,再根据各待选卫星的执行时长和通信时长,将执行时长不大于通信时长的待选卫星作为执行待执行任务的调度卫星,在确定执行待执行任务所需的数据,并将数据发送给调度卫星,使得当前卫星将待执行任务发送给调度卫星之后,调度卫星可以在通信时长内,执行待执行任务并且返回待执行任务的执行结果,保证当前卫星可以接收到调度卫星发送的执行结果,以提高待执行任务的执行结果的准确性,减少任务调度的成本,提高卫星的利用率。
[0094] 进一步地,在确定该待选卫星执行待执行任务的执行时长时,将执行时长分为传输时长、等待时长与运行时长三部分分别进行确定,可以提高确定出的执行时长的准确性,减少任务调度的成本,提高卫星的利用率。
[0095] 在上述步骤S104根据数据,确定当前卫星与该待选卫星传输数据的传输时长时,当前卫星可以确定当前卫星与该待选卫星历史上传输数据的传输速率。然后,根据确定出的传输速率以及数据,确定当前卫星与该待选卫星传输数据的传输时长。具体的,当前卫星可以根据该待选卫星的调度信息,确定当前卫星与该待选卫星历史上调度任务时数据传输的速率,将确定出的速率的均值作为传输速率,根据传输速率以及数据,确定当前卫星与该待选卫星传输数据的传输时长。其中,该待选卫星的调度信息可以包括该待选卫星历史上调度任务的信息(即历史调度信息),该调度任务的信息包括传输数据的速率,该传输数据的速率可以为历史上当前卫星与该待选卫星之间的传输数据的速率,还可以为该待选卫星与其他卫星(即除当前卫星之外的卫星)之间的传输数据的速率。
[0096] 另外,由于该待选卫星可能在当前时刻之前未与当前卫星传输过数据,故当前卫星可以根据与其他卫星或者其他待选卫星历史上传输数据的速率的均值作为该待选卫星的传输速率。因此,当前卫星可以确定当前卫星与其他各卫星或其他各待选卫星历史上传输数据的速率,将确定出的速率的均值作为传输速率,根据传输速率以及数据,确定当前卫星与该待选卫星传输数据的传输时长。
[0097] 当然,当前卫星还可以根据预设的数据传输的速率以及数据,确定当前卫星与该待选卫星传输数据的传输时长。
[0098] 在本说明书中,该待选卫星的调度信息可以包括该待选卫星的资源信息,资源信息至少包括剩余存储资源信息以及剩余算力资源信息,剩余存储资源信息可以为剩余内存的大小,还可以为剩余显存的大小,也可以为剩余内存和显存的大小,剩余算力资源信息可以为剩余计算资源的大小。资源信息还可以包括历史上运行待执行任务的历史运行时长,该历史运行时长可以为历史上其他卫星或者其他待选卫星运行待执行任务的运行时长,还可以为历史上当前卫星运行待执行任务的运行时长。
[0099] 因此,在上述步骤S104中,预测该待选卫星运行所述待执行任务所需的运行时长时,当前卫星可以将该待选卫星的资源信息以及数据输入预先训练的任务运行时长预测模型,得到该待选卫星运行待执行任务所需的运行时长。其中,任务运行时长预测模型可以为当前卫星预先训练的模型,也可以为预先由地面设备训练,再由卫星地面站发送给当前卫星的模型。
[0100] 在上述步骤S104根据该待选卫星的信息,确定该待选卫星运行待执行任务所需等待的等待时长时,可以由该待执行卫星根据自身任务的执行情况,确定运行待执行任务所需等待的等待时长,并发送给当前卫星,还可以由当前卫星根据该待选卫星的调度信息,确定该待选卫星运行待执行任务所需等待的等待时长。其中,该待选卫星的调度信息可以包括该待选卫星在当前时刻调度任务的信息(即当前调度信息),该当前调度信息包括当前时刻该待选卫星的调度任务的执行情况。
[0101] 若当前时刻该待选卫星处于空闲状态,也就是该待选卫星已经将历史上调度的任务均执行完成或者在当前时刻该待选卫星没有执行任务,则确定运行待执行任务所需等待的等待时长为零。若当前时刻该待选卫星处于执行任务状态,也就是当前时刻该待选卫星有还未执行完成的调度任务,当前卫星可以根据该待选卫星的当前调度信息,确定该待选卫星的正在执行的任务的信息以及未执行的任务的信息,并根据确定出的信息,确定运行待执行任务所需等待的等待时长。
[0102] 为了能够快速地得到待执行任务的执行结果,并且保证执行结果的准确性,提高卫星的利用率,在上述步骤S106中,当前卫星可以根据各待选卫星的执行时长以及各待选卫星与当前卫星的通信时长,从各待选卫星中,确定执行时长不大于通信时长的卫星。然后,将确定出的卫星中按照执行时长从小到大进行排序,得到卫星序列。再根据卫星序列,从确定出的卫星中,选取至少一个卫星作为待执行任务的调度卫星。其中,在根据卫星序列,从确定出的卫星中,选取至少一个卫星作为待执行任务的调度卫星时,可以从位于卫星序列比较靠前的卫星中,也就是位于卫星序列的中部及中部之前的卫星,随机选取至少一个卫星作为待执行任务的调度卫星。继续沿用上例,假设卫星B F均为执行时长不大于通信~时长的卫星,且按照执行时长从小到大进行排序后,得到的卫星序列为卫星B,卫星C,卫星D,卫星E,卫星F。根据卫星序列,从位于卫星序列的中部及中部之前的卫星中,即卫星B D,~
随机选取至少一个卫星作为待执行任务的调度卫星。
[0103] 另外,当前卫星还可以根据各待选卫星的执行时长以及各待选卫星与当前卫星的通信时长,从各待选卫星中,确定执行时长不大于通信时长的卫星。然后,将确定出的卫星中的执行时长最短的卫星作为待执行任务的调度卫星。
[0104] 当然,为了提高任务的执行结果的可靠性,在本说明书中,可以采用三模冗余的计算方式,确定任务的执行结果,也就是将待执行任务一次发送给两个卫星,得到两个卫星执行待执行任务的执行结果。根据当前卫星以及其他两个卫星执行待执行任务的执行结果(即三个执行结果),确定三个执行结果中相同的执行结果,将相同的执行结果作为待执行任务的最终的执行结果。
[0105] 因此,在根据各待选卫星的执行时长以及各待选卫星的通信时长,确定待执行任务的调度卫星时,当前卫星可以根据各待选卫星的执行时长以及各待选卫星与当前卫星的通信时长,从各待选卫星中,确定执行时长不大于通信时长的卫星。然后,从确定出的卫星中,随机选取两个卫星作为待执行任务的调度卫星。
[0106] 当前卫星还可以根据各待选卫星的执行时长以及各待选卫星与当前卫星的通信时长,从各待选卫星中,确定执行时长不大于通信时长的卫星。然后,将确定出的卫星中按照执行时长从小到大进行排序,得到卫星序列。再根据卫星序列,从确定出的卫星中,选取两个卫星作为待执行任务的调度卫星。其中,在根据卫星序列,从确定出的卫星中,选取两个卫星作为待执行任务的调度卫星时,可以将位于卫星序列前两位的卫星作为待执行任务的调度卫星。
[0107] 另外,若当前卫星以及其他两个调度卫星执行待执行任务的执行结果均不相同时,也就是在上述步骤S108后,当前卫星接收到两个调度卫星的执行结果,并且确定两个卫星的执行结果以及当前卫星自身的执行结果均不相同时,当前卫星还可以重新执行步骤S100 S108,直到确定出待执行任务的最终的执行结果,即三个执行结果中相同的执行结~果。
[0108] 在本说明书中,在预先训练通信时长预测模型时,可以仅对通信时长预测模型的预测层进行训练。具体的,确定某一时间段内可以通信的卫星,作为可通信卫星。将该时间段内的可通信卫星在该时间段的起始时间点的信息作为训练样本,以及将该时间段作为训练样本的标注。然后,将在起始时间点的各卫星的信息输入待训练的通信时长预测模型的模拟层,确定可通信卫星之间的可见性时长。之后,将可见性时长、可通信卫星的信息输入待训练的通信时长预测模型的预测层,得到可通信卫星之间的预测时长,以预测时长与样本标注之间的差异最小为训练目标,训练待训练的通信时长预测模型的预测层。
[0109] 由于每一个卫星所存储的数据可能不相同,确定出的训练样本可能不同,并且每一个卫星的性能也是不同,故由当前卫星根据自身存储的数据,确定训练样本,再训练待训练的通信时长预测模型,训练完成的通信时长预测模型更加适用于当前卫星。当然,通信时长预测模型也可以由地面设备进行训练,再由卫星地面站发送给当前卫星,为了使得通信时长预测模型更加适用于当前卫星,可以根据当前卫星所存储的数据,确定训练样本训练待训练的通信时长预测模型。但是,通过这种方式训练通信时长预测模型需要当前卫星与地面传输数据,增加训练成本。
[0110] 在本说明书中,预先训练任务运行时长预测模型时,当前卫星可以确定历史上执行任务的信息,该信息包括执行任务时当前卫星自身的资源信息、执行的任务的数据以及执行任务所需的时间。将执行任务时当前卫星自身的资源信息和执行的任务的数据作为训练样本,执行任务所需的时间作为训练样本的标注。然后,将训练样本输入待训练的任务运行时长预测模型,得到输出结果,与输出结果与标注之间的差异最小为训练目标,对待训练的任务运行时长预测模型进行训练。
[0111] 在本说明书中,可以由地面设备根据当前卫星的信息以及该待选卫星的信息,预测当前卫星与该待选卫星之间的通信时长,并由卫星地面站将预测出的结果发送给当前卫星。
[0112] 以上为本说明书的一个或多个实施的方法,基于同样的思路,本说明书还提供了相应的任务调度的装置,如图4所示。
[0113] 图4为本说明书提供的一种的任务调度的装置的示意图,包括:
[0114] 第一确定模块200,用于确定当前时刻与当前卫星进行通信的卫星作为待选卫星以及待执行任务;
[0115] 第二确定模块202,用于针对确定出的每一个待选卫星,确定该待选卫星的信息,其中,该待选卫星的信息至少包括该待选卫星的坐标以及调度信息;
[0116] 第三确定模块204,用于根据所述当前卫星的信息以及该待选卫星的信息,预测所述当前卫星与该待选卫星之间的通信时长,以及根据该待选卫星的信息,确定该待选卫星执行所述待执行任务的执行时长;其中,所述当前卫星的信息至少包括所述当前卫星的坐标;
[0117] 第四确定模块206,用于根据各待选卫星的执行时长以及所述各待选卫星的通信时长,确定所述待执行任务的调度卫星;
[0118] 调度模块208,用于确定执行所述待执行任务所需的数据,并将所述数据发送给所述调度卫星。
[0119] 可选地,所述第三确定模块204具体用于,将所述当前卫星的信息以及该待选卫星的信息输入预先训练的通信时长预测模型,得到所述当前卫星与该待选卫星之间的通信时长。
[0120] 可选地,所述通信时长预测模型包括模拟层和预测层;
[0121] 所述第三确定模块204具体用于,确定各卫星的信息,并将所述各卫星的信息输入所述通信时长预测模型的模拟层,确定所述当前卫星与该待选卫星之间的可见性时长,其中,所述各卫星至少包括所述当前卫星以及各待选卫星;将所述可见性时长、所述当前卫星的信息以及该待选卫星的信息输入所述通信时长预测模型的预测层,得到所述当前卫星与该待选卫星之间的通信时长。
[0122] 可选地,所述第三确定模块204具体用于,获取执行所述待执行任务所需的数据,并根据所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长;根据该待选卫星的信息,确定该待选卫星运行所述待执行任务所需等待的等待时长,以及预测该待选卫星运行所述待执行任务所需的运行时长;将所述传输时长、所述等待时长以及所述运行时长的和作为该待选卫星执行所述待执行任务的执行时长。
[0123] 可选地,所述第三确定模块204具体用于,确定所述当前卫星与该待选卫星历史上传输数据的传输速率;根据确定出的传输速率以及所述数据,确定所述当前卫星与该待选卫星传输数据的传输时长。
[0124] 可选地,该待选卫星的调度信息包括该待选卫星的资源信息,所述资源信息至少包括剩余存储资源信息以及剩余算力资源信息;
[0125] 所述第三确定模块204具体用于,将该待选卫星的资源信息以及所述数据输入预先训练的任务运行时长预测模型,得到该待选卫星运行所述待执行任务所需的运行时长。
[0126] 可选地,所述第四确定模块206具体用于,针对每一个待选卫星,判断该待选卫星的执行时长是否不大于该待选卫星与所述当前卫星的通信时长;若是,将该待选卫星作为所述待执行任务的调度卫星;若否,不将该待选卫星作为所述待执行任务的调度卫星。
[0127] 可选地,所述第四确定模块206具体用于,根据各待选卫星的执行时长以及所述各待选卫星与所述当前卫星的通信时长,从所述各待选卫星中,确定执行时长不大于通信时长的卫星;将确定出的卫星中按照执行时长从小到大进行排序,得到卫星序列;根据所述卫星序列,从所述确定出的卫星中,选取至少一个卫星作为所述待执行任务的调度卫星。
[0128] 可选地,所述第四确定模块206具体用于,根据各待选卫星的执行时长以及所述各待选卫星与所述当前卫星的通信时长,从所述各待选卫星中,确定执行时长不大于通信时长的卫星;将确定出的卫星中的执行时长最短的卫星作为所述待执行任务的调度卫星。
[0129] 可选地,所述第一确定模块200具体用于,从当前卫星发送测试信号;根据接收到的所述测试信号的回传信号,确定当前时刻与所述当前卫星进行通信的卫星作为待选卫星。
[0130] 本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种任务调度的方法。
[0131] 本说明书还提供了图5所示的一种对应于图1的电子设备的示意结构图。如图5所示,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的任务调度的方法。
[0132] 当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
[0133] 在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very‑High‑Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
[0134] 控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0135] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0136] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0137] 本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0138] 本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0139] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0140] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0141] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0142] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0143] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0144] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0145] 本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0146] 本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0147] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0148] 以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。