云主机及多路比较方法与流程

未命名 09-03 阅读:97 评论:0


1.本发明涉及网络技术领域,特别涉及一种云主机及多路比较方法。


背景技术:

2.在业务系统中,可靠性是业务系统能够安全地进行业务运营的关键因素。比如,在列车控制系统中,紧急刹车命令的计算和触发是否可靠,影响到了列车控制系统能否安全运行。
3.为了提高可靠性,对于单路可靠性不能满足安全要求前提下,主要采取多路计算比较来提高系统的可靠性。多路计算比较方法的实现过程包括:针对同一个安全计算任务,会采用多路分别执行该安全计算任务,每一路对于硬件上的使用采用物理独立的方式,避免共因故障带来的影响,并对该多路的安全计算任务执行结果进行投票,根据投票结果确定最终的安全计算任务执行结果。比如针对同一个安全计算任务,使用3路(每一路中都包括cpu、缓存、内存、总线等)分别进行计算,对3路的计算结果投票,比如采取3取2的方式,即如果其中2路的计算结果相同,则将该2路的计算结果作为本次计算安全计算任务的最终的计算结果。可见,在多路计算比较方法中,安全计算任务的执行结果不依赖单独一路硬件的执行情况,因此大大提高了系统的可靠性。
4.但是,在已有的云平台技术中,硬件,平台,编译工具等没有对cpu指令级别的多路计算比较做支持,做到指令级的同步,计算系统只靠软件做可靠性保证。比如在一个或多个云平台上运行多个实例,每个实例占用一个cpu或者一个核,对于其它硬件资源基本没办法做到指定。计算资源的利用率和系统的可靠性有待进一步提高。另外现有云架构中,并没有对多路计算比较方法做特殊的支持,因此需要增加额外的设计和部署手段,该发明实例提供了一种不通过额外的应用软件设计和部署手段实现基于云主机的多路计算比较方法。


技术实现要素:

5.本发明实施例提供了一种云主机及多路比较方法,能够提高多路比较方法中任务执行结果的可靠性。
6.根据第一方面,本发明实施例提供的一种云主机,包括:m个核心模块、内部总线模块、外部总线模块、缓存模块以及内存模块;其中,m和n为大于1的正整数,且m大于等于n;
7.所述m个核心模块中的n个核心模块均执行同一个任务,该同一个任务被映射为n路计算任务,每一个核心模块执行一路计算任务;根据所述n个核心模块针对该同一个任务得到的n路任务执行结果进行投票,通过n路比较得到最终的任务执行结果;
8.所述内部总线模块连接所述n个核心模块,该内部总线模块可提供n个内部总线通道,每一个内部总线通道专属于n路计算任务中的一路;n个内部总线通道在所述n个核心模块之间传输所述同一个任务的n路任务数据,不同的内部总线通道针对同一个任务相互隔离;
9.所述外部总线模块连接在所述缓存模块与所述内存模块之间,该外部总线模块可
提供n个外部总线通道,每一个外部总线通道专属于n路计算任务中的一路;n个外部总线通道在所述缓存模块与所述内存模块之间传输所述同一个任务的n路任务数据,不同的外部总线通道针对同一个任务相互隔离;
10.所述缓存模块可提供n个缓存区域,每一个缓存区域专属于所述n个核心模块中的一个;n个缓存区域用于缓存所述同一个任务的n路缓存数据,不同的缓存区域针对同一个任务相互隔离。
11.在第一方面中,所述内存模块可提供n个内存区域,n个内存区域用于存储所述同一个任务的n路数据,不同的内存区域针对同一个任务相互隔离。
12.在第一方面中,所述内部总线模块包括n条内部总线,每一条内部总线被用作一个所述内部总线通道;或者,所述内部总线模块包括m条内部总线;其中,m为小于n且大于0的正整数,m条内部总线中的一条内部总线的多个数据位被用作多个所述内部总线通道。
13.在第一方面中,所述外部总线模块包括n条外部总线,每一条外部总线被用作一个外部总线通道;或者,所述外部总线模块包括l条外部总线;其中,l为小于n且大于0的正整数,l条外部总线中的一条外部总线的多个数据位被用作多个所述外部总线通道。
14.在第一方面中,所述缓存模块包括n个缓存,相应地,用于缓存所述同一个任务的n路缓存数据的所述n个缓存区域分别位于n个缓存中;或者,所述缓存模块包括s个缓存,其中,s为小于n且大于0的正整数;相应地,s个缓存中的一个缓存提供至少两个所述缓存区域,且该至少两个缓存区域在该同一个缓存中的存储位置的距离大于预定值;或者,所述缓存模块包括n个二级缓存和n个一级缓存,二级缓存连接到核心模块,一级缓存连接在二级缓存及内存之间;每一个核心模块均对应专用的一个二级缓存和一个一级缓存,相应地,n个二级缓存中包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域,n个一级缓存中包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域;
15.或者,
16.所述缓存模块包括n个二级缓存和一个一级缓存,二级缓存连接到核心模块,一级缓存连接在二级缓存及内存之间;每一个核心模块均对应专用的一个二级缓存,一个一级缓存为共享缓存,相应地,n个二级缓存中包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域,一个一级缓存中也包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域,一级缓存中的该n个缓存区域的两两存储位置之间的距离均大于预定值。
17.在第一方面中,所述n个核心模块采用至少两种类型的硬件来实现。
18.在第一方面中,所述云主机的指令集中包括针对同一个任务编译出的p套计算任务指令;其中,p为大于1且小于等于n的正整数;p套计算任务指令的计算过程互不相同,但均可完成所述同一个任务;
19.所述n个核心模块分别加载所述p套计算任务指令中的一套,每一个核心模块根据自己加载的一套计算任务指令执行所述同一个任务映射出的一路计算任务。
20.根据第二方面,提供了基于云主机实现多路比较的方法,其特征在于,该方法包括:
21.将同一个任务映射为n路计算任务;
22.触发n个核心模块中的每一个核心模块执行该同一个任务映射出的一路计算任务;
23.针对每一路计算任务,一个核心模块利用该路计算任务专属的外部总线通道将该路计算任务的任务数据从内存中传输到该路计算任务专属的缓存区域中;
24.针对每一路计算任务,一个核心模块从专属于本路计算任务的缓存区域中读取任务数据,以得到本路计算任务的任务执行结果;
25.针对每一路计算任务,利用该路计算任务专属的内部总线通道在n个核心模块之间传输该路计算任务的任务执行结果;
26.根据所述n个核心模块针对该同一个任务得到的n个任务执行结果进行投票,通过n路比较得到最终的任务执行结果。
27.在第二方面,该方法进一步包括:在编译阶段,通过编译器编译出如下cpu指令中的至少一个:
28.至少一条第一类型指令,该第一类型指令用于设置专属于每一路计算任务的内部总线通道;
29.至少一条第二类型指令,该第二类型指令用于根据第一类型指令,针对同一个任务的n路计算任务,锁定专属于每一路计算任务的内部总线通道,以及在同一个任务的n路计算任务完成之后,解锁专属于每一路计算任务的内部总线通道;
30.至少一条第三类型指令,该第三类型指令用于设置专属于每一路计算任务的外部总线通道;
31.至少一条第四类型指令,该第四类型指令用于根据第三类型指令,针对同一个任务的n路计算任务,锁定专属于每一路计算任务的外部总线通道,以及在同一个任务的n路计算任务完成之后,解锁专属于每一路计算任务的外部总线通道;
32.至少一条第五类型指令,该第五类型指令用于在n个核心模块之间同步针对同一个任务的n路计算任务的数据;
33.至少一条第六类型指令,该第六类型指令用于在一个共享缓存中划分出用于缓存同一个任务的n路缓存数据的n个缓存区域,且该n个缓存区域的两两存储位置之间的距离均大于预定值。
34.在第二方面,该方法进一步包括:
35.在编译阶段,针对同一个任务编译出p套计算任务指令;其中,p为大于1且小于等于n的正整数;p套计算任务指令的计算过程互不相同,但均可完成所述同一个任务;
36.设置所述n个核心模块分别加载所述p套计算任务指令,每一个核心模块根据自己加载的一套计算任务指令执行所述同一个任务映射出的一路计算任务。
37.本发明实施例提供的云主机及多路比较方法,具有如下技术效果:
38.在本发明实施例中,没有使用多个单独的云主机来实现多路比较方法,而是使用单一云主机来实现多路比较方法。本发明实施例中,云主机是虚拟服务器,是由虚拟化技术、集群技术进行资源整合,通过云控制平台安装需求生成的主机资源。如果使用多个单独的计算机设备来实现多路比较方法,其占用的资源是巨大的,业务实现成本太高,这在业务实现中是很难接受的。而本发明采用单一云主机来实现多路比较方法将会极大地降低多路比较方法的实现成本,易于业务的实现,并且更加适用于复杂任务。
39.同时,根据本发明实施例中云主机的结构及功能可以得到,在本发明实施例中,针对同一个任务映射出的多路即n路计算任务,设置了每一路计算任务专属的内部总线通道、
每一路计算任务专属的外部总线通道、每一路计算任务专属的缓存区域,也就是说,各路的任务执行过程在硬件上相互隔离,各路的任务执行过程在物理上相互独立,即使某一路计算任务专属的内部总线通道出错,或者某一路计算任务专属的外部总线通道出错,或者某一路计算任务专属的缓存区域出错,都不会影响其他路计算任务,最大化了多路选择方法的优点,从而大大提高了多路选择方法中任务执行结果的可靠性。
附图说明
40.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以基于这些附图获得其他的附图。
41.图1是本发明一个实施例中云主机的结构示意图;
42.图2是本发明另一个实施例中云主机的结构示意图;
43.图3是本发明一个实施例中基于云主机实现的多路比较方法的流程图。
44.附图标记:
45.101核心模块102内部总线模块103外部总线模块104缓存模块105内存模块t1内部总线通道t2外部总线通道t3缓存区域t4内存区域301~311步骤
具体实施方式
46.在多路比较方法中,每一路都需要使用包括cpu、缓存、内存、总线等硬件来执行任务,得到本路的任务执行结果。为了提高投票选取出的最终任务执行结果的可靠性,各路的任务执行过程应该在物理上尽可能相互独立,否则将会影响任务执行结果的可靠性。但是,在现有技术中,针对同一个任务,各路的任务执行过程却无法相互独立,比如会共用总线或者共用缓存,比如多路共用的缓存中的比特位均出错,则会导致多路计算结果同时出错,失去了多路选择方法的优点,从而导致任务执行结果的可靠性大大降低。
47.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.根据第一方面,本发明一个实施例提供了一种云主机,参见图1,该云主机包括:m个核心模块、内部总线模块102、外部总线模块103、缓存模块104以及内存模块105;其中,m
和n为大于1的正整数,且m大于等于n;
49.所述m个核心模块中的n个核心模块101均执行同一个任务,该同一个任务被映射为n路计算任务,每一个核心模块101执行一路计算任务;根据所述n个核心模块101针对该同一个任务得到的n路任务执行结果进行投票,通过n路比较得到最终的任务执行结果;
50.所述内部总线模块102连接所述n个核心模块101,该内部总线模块102可提供至少物理独立的n个内部总线通道t1,每一个内部总线通道t1专属于n路计算任务中的一路;n个内部总线通道t1在所述n个核心模块101之间传输所述同一个任务的n路任务数据,不同的内部总线通道t1针对同一个任务相互隔离;
51.所述外部总线模块103连接在所述缓存模块104与所述内存模块105之间,该外部总线模块103可提供n个外部总线通道t2,每一个外部总线通道t2专属于n路计算任务中的一路;n个外部总线通道t2在所述缓存模块104与所述内存模块105之间传输所述同一个任务的n路任务数据,不同的外部总线通道t2针对同一个任务相互隔离;
52.所述缓存模块104可提供n个缓存区域t3,每一个缓存区域t3专属于n个核心模块中的一个;n个缓存区域t3用于缓存所述同一个任务的n路缓存数据,不同的缓存区域t3针对同一个任务相互隔离。
53.在本发明实施例中,没有使用多个单独的云主机来实现多路比较方法,而是使用图1所示的单一云主机甚至是单一的云实例来实现多路比较方法。本发明实施例中,云主机是虚拟服务器,是由虚拟化技术、集群技术进行资源整合,通过云控制平台安装需求生成的主机资源。如果使用多个单独的计算机设备来实现多路比较方法,其占用的资源是巨大的,业务实现成本太高,这在业务实现中是很难接受的。而本发明采用单一云主机来实现多路比较方法将会极大地降低多路比较方法的实现成本,易于业务的实现,并且更加适用于复杂任务。
54.同时,根据上述图1所示的云主机的结构及功能可以得到,在本发明实施例中,针对同一个任务映射出的多路即n路计算任务,设置了每一路计算任务专属的内部总线通道、每一路计算任务专属的外部总线通道、每一路计算任务专属的缓存区域,也就是说,各路的任务执行过程在硬件上相互隔离,各路的任务执行过程在物理上相互独立,即使某一路计算任务专属的内部总线通道出错,或者某一路计算任务专属的外部总线通道出错,或者某一路计算任务专属的缓存区域出错,都不会影响其他路计算任务,最大化了多路选择方法的优点,从而大大提高了多路选择方法中任务执行结果的可靠性。
55.需要说明的是,在本说明书实施例中,计算任务可以是安全计算任务比如紧急刹车命令的计算和触发,也可以非安全计算任务比如时刻表任务。
56.参见图2,在本发明一个实施例中,内存模块105可提供n个内存区域t4,n个内存区域t4用于存储所述同一个任务的n路数据,不同的内存区域t4针对同一个任务相互隔离。根据图2所示的云主机,即使某一路计算任务专属的内存区域出错,也不会影响其他路计算任务,进一步提高了多路选择方法的优点,进一步提高了多路选择方法中任务执行结果的可靠性。
57.参见图1或图2所示的云主机,为了能够提供每一路计算任务专属的内部总线通道t1,使得不同的内部总线通道针对同一个任务相互隔离,在本发明一个实施例中,内部总线模块102可以包括如下两种实现方式:
58.方式1、内部总线模块102包括n条内部总线,每一条内部总线被用作一个内部总线通道t1。
59.在该方式1中,每一条内部总线专属于n路计算任务中的一路,比如,第一条内部总线只传输第一路计算任务的任务数据,第二条内部总线只传输第二路计算任务的任务数据,以此类推。
60.方式2、内部总线模块102包括m条内部总线;其中,m为小于n且大于0的正整数,m条内部总线中的一条内部总线的多个数据位被用作多个内部总线通道t1。
61.在该方式2中,至少有一条内部总线不是专属于n路计算任务中的一路,但是,因为每一条总线中都有多个数据位,因此,可以通过不同的数据位实现隔离。比如,m等于1,内部总线模块包括1条内部总线,该1条内部总线中的n个数据位被用作n个内部总线通道t1,其中,内部总线中的第一个数据位只传输第一路计算任务的任务数据,内部总线中的第二个数据位只传输第二路计算任务的任务数据,以此类推。
62.参见图1或图2所示的云主机,为了能够提供每一路计算任务专属的外部总线通道t2,使得不同的外部总线通道t2针对同一个任务相互隔离,在本发明一个实施例中,外部总线模块103可以包括如下两种实现方式:
63.方式一、外部总线模块103包括n条外部总线,每一条外部总线被用作一个外部总线通道t2。
64.在该方式一中,每一条外部总线专属于n路计算任务中的一路,比如,第一条外部总线只传输第一路计算任务的任务数据,第二条外部总线只传输第二路计算任务的任务数据,以此类推。
65.方式二、外部总线模块103包括l条内部总线;其中,l为小于n且大于0的正整数,l条外部总线中的一条外部总线的多个数据位被用作多个外部总线通道t2。
66.在该方式二中,至少有一条外部总线不是专属于n路计算任务中的一路,但是,因为每一条总线中都有多个数据位,因此,可以通过不同的数据位实现隔离。比如,l等于1,外部总线模块包括1条外部总线,该1条外部总线中的n个数据位被用作n个外部总线通道t2,其中,外部总线中的第一个数据位只传输第一路计算任务的任务数据,外部总线中的第二个数据位只传输第二路计算任务的任务数据,以此类推。
67.参见图1或图2所示的云主机,为了能够提供每一路计算任务专属的缓存区域t3,使得不同的缓存区域t3针对同一个任务相互隔离,在本发明一个实施例中,缓存模块104可以至少包括如下四种实现方式:
68.方式a、缓存模块104包括n个缓存,相应地,用于缓存所述同一个任务的n路缓存数据的n个缓存区域t3分别位于n个缓存中。
69.在该方式a中,每一个缓存专属于n路计算任务中的一路,比如,第一个缓存中的一个缓存区域t3只对第一路计算任务的任务数据进行缓存,第二个缓存中的一个缓存区域t3只对第二路计算任务的任务数据进行缓存,以此类推。
70.方式b、缓存模块104包括s个缓存,其中,s为小于n且大于0的正整数;相应地,s个缓存中的一个缓存提供至少两个所述缓存区域t3,且该至少两个缓存区域t3在该同一个缓存中的存储位置的距离大于预定值。
71.在该方式b中,至少有一个缓存不是专属于n路计算任务中的一路。比如,s等于2,n
等于3,缓存模块104包括2个缓存,缓存1中包括一个专属于第一路计算任务的缓存区域t3,即只对第一路计算任务的任务数据进行缓存;缓存2中包括两个缓存区域t3,具体为专属于第二路计算任务的一个缓存区域t3以及专属于第三路计算任务的一个缓存区域t3,缓存2中的两个缓存区域t3被设计为相距较远,在该缓存2中的存储位置的距离大于预定值,比如缓存2总共有100个比特,专属于第二路计算任务的缓存区域t3为缓存2中的比特0的位置,而专属于第三路计算任务的缓存区域t3为缓存2中的比特100的位置,因为相距较远,也可以实现物理隔离。
72.方式c、缓存模块104包括n个二级缓存和n个一级缓存,二级缓存连接到核心模块101,一级缓存连接在二级缓存及内存模块105之间;每一个核心模块101均对应自己专用的一个二级缓存和一个一级缓存,相应地,n个二级缓存中包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域t3,n个一级缓存中也包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域t3。
73.在该方式c中,每一个核心模块101均对应自己专用的一个二级缓存和一个一级缓存,也就是说,每一路计算任务都有自己专用的一级缓存以及二级缓存,因此,各路计算任务完全实现了物理隔离。
74.方式d、所述缓存模块104包括n个二级缓存和一个一级缓存,二级缓存连接到核心模块101,一级缓存连接在二级缓存及内存模块105之间;每一个核心模块101均对应自己专用的一个二级缓存,一个一级缓存为共享缓存,相应地,n个二级缓存中包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域t3,一个一级缓存中也包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域t3,一级缓存中的该n个缓存区域t3的两两存储位置之间的距离均大于预定值。
75.上述四种方式只是列举的一些可行的实现方式。在实际的业务应用中,缓存模块104也可以存在其他的实现方式。
76.在本发明的一个实施例中,为了进一步提高同一个任务映射出的各路计算任务的独立性,使得多路选择方法的结果更为可靠,可以实现硬件多样化,也就是说,n个核心模块101可以采用至少两种类型的硬件来实现。比如,一个核心模块101采用超威半导体(amd)处理器来实现,另一个核心模块101采用英特尔(intel)处理器来出现等。
77.在本发明的一个实施例中,为了进一步提高同一个任务映射出的各路计算任务的独立性,使得多路选择方法的结果更为可靠,可以实现软件多样化,也就是说,n个核心模块101可以采用至少两种类型的软件来实现计算任务。比如,一个核心模块101采用linux系统来实现,另一个核心模块101采用windows系统来实现等。或者,也可以在同一个操作系统中,通过编译器来实现同一个应用软件的多样性,并在同一个操作系统(云实例)中同步执行。
78.在本发明的一个实施例中,为了进一步提高同一个任务映射出的各路计算任务的独立性,使得多路选择方法的结果更为可靠,可以实现软件的异化,也就是说,云主机的指令集中包括针对同一个任务编译出的p套计算任务指令,即p套异构的指令集合,每一套计算任务指令对应一个指令集合;其中,p为大于1且小于等于n的正整数;p套计算任务指令的计算过程互不相同,但均可完成所述同一个任务;所述n个核心模块101分别加载所述p套计算任务指令中的一套,每一个核心模块101根据自己加载的一套计算任务指令执行所述同
一个任务映射出的一路计算任务。为了便于理解,通过一个简单的例子进行说明。比如,在p套计算任务指令中,第一套计算任务指令是先计算“a+b”,再用求得的和减去c;第二套计算任务指令是先计算“a-c”,再用求得的差加上b。可见,该两套计算任务指令的计算过程互不相同,但完成的是同一个任务。通过软件异化的方式,进一步使得多路选择方法的结果更为可靠。
79.可见,在本说明书一个实施例中,涉及到对硬件、软件、指令集、编译器等的改进。
80.在本说明书实施例中,需要对编译器进行配置,配置出是否需要做多路计算比较,如果需要,明确出是哪一种多路计算,比如采取3取2方式或者2取2方式,指定的多路数量不应超出云主机的核心模块的数量,同时对指令集进行异化。指令以及指令标识均被核心模块的硬件虚拟化技术所支持,即所述指令以及指令标识均被cpu的硬件虚拟化技术所支持。非安全计算任务的指令可以通过软件虚拟化技术或者现有的硬件虚拟化技术来实现,因此在指令编译阶段和执行阶段可以加入任务类型的标识用于区分安全计算任务和非安全计算任务,对于所述非安全计算任务通过所述标识,允许不生成多组对应的异化指令集,以提高系统性能。
81.根据本发明实施例中编译器添加的安全计算任务的标识,宿主机和云实例追溯安全任务的执行,宿主机和云实例通过运行安全计算任务的相关硬件的诊断信息设置并缩短平均故障检测时间,提高系统的可靠性。
82.在本说明书实施例中,需要对cpu进行配置,包括:支持拓展的指令集;识别指令集;拓展的指令集可以在硬件虚拟化的支持下去运行。
83.在本说明书实施例中,一个计算任务实际上对应了指令集合,并对应有该计算任务的标识。比如,安全计算任务包含编译器指定并生成的cpu指令集合。
84.根据第二方面,参见图3,本发明一个实施例提出了一种基于云主机实现多路比较的方法,该云主机可以采用上述本发明任一实施例中提出的云主机的结构及功能,该方法包括:
85.步骤301:将同一个任务映射为n路计算任务。
86.步骤303:触发n个核心模块中的每一个核心模块执行该同一个任务映射出的一路计算任务。
87.比如,核心模块1执行第1路计算任务,核心模块2执行第2路计算任务,直至核心模块5执行第5路计算任务。
88.步骤305:针对每一路计算任务,相应的一个核心模块利用该路计算任务专属的外部总线通道将该路计算任务的任务数据从内存中传输到该路计算任务专属的缓存区域中。
89.比如,针对第1路计算任务,核心模块1利用第1路计算任务专属的外部总线通道将第1路计算任务的任务数据从内存中传输到第1路计算任务专属的缓存区域中;针对第2路计算任务,核心模块2利用第2路计算任务专属的外部总线通道将第2路计算任务的任务数据从内存中传输到第2路计算任务专属的缓存区域中,以此类推。
90.步骤307:针对每一路计算任务,一个核心模块从专属于本路计算任务的缓存区域中读取任务数据,以得到本路计算任务的任务执行结果。
91.比如,针对第1路计算任务,核心模块1从专属于第1路计算任务的缓存区域中读取任务数据,以得到第1路计算任务的任务执行结果;针对第2路计算任务,核心模块2从专属
于第2路计算任务的缓存区域中读取任务数据,以得到第2路计算任务的任务执行结果,以此类推。
92.步骤309:针对每一路计算任务,一个核心模块利用该路计算任务专属的内部总线通道在n个核心模块之间传输该路计算任务的任务执行结果。
93.比如,针对第1路计算任务,核心模块1利用专属于第1路计算任务的内部总线通道在上述5个核心模块之间同步第1路计算任务的任务执行结果;针对第2路计算任务,核心模块2利用专属于第2路计算任务的内部总线通道在上述5个核心模块之间同步第2路计算任务的任务执行结果,以此类推完成所有核心模块得到的任务执行结果的同步。
94.步骤311:根据n个核心模块针对该同一个任务得到的n个任务执行结果进行投票,通过n路比较得到最终的任务执行结果。
95.在本发明一个实施例中,可以预先设置cpu指令集,通过cpu指令集配合云主机的结构来实现云主机的上述任一一种结构及功能,即完成多路比较方法。相应地,该方法进一步包括:在编译阶段,通过编译器编译出如下表1所示的cpu指令中的至少一个:
96.[0097][0098]
表1
[0099]
针对每一路计算任务,比如安全计算任务,增加区分安全计算任务的标识,用于核心模块识别同一安全计算任务,核心模块根据该标识控制安全计算任务开始、结束以及同步。
[0100]
该方法还可以包括:在编译阶段,针对同一个任务编译出p套计算任务指令,即p套异构的指令集合,每一套计算任务指令对应一个指令集合;其中,p为大于1且小于等于n的正整数;p套计算任务指令的计算过程互不相同,但均可完成所述同一个任务;设置所述n个核心模块分别加载所述p套计算任务指令,每一个核心模块根据自己加载的一套计算任务指令执行所述同一个任务映射出的一路计算任务。
[0101]
根据第三方面,本说明书一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。
[0102]
可理解的是,本发明实施例提供的计算机可读介质中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
[0103]
根据第四方面,本说明书一个实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现执行说明书中任一个实施例中的方法。
[0104]
可以理解的是,本发明实施例提供的计算设备中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
[0105]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0106]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

技术特征:
1.一种云主机,其特征在于,包括:m个核心模块、内部总线模块、外部总线模块、缓存模块以及内存模块;其中,m和n为大于1的正整数,且m大于等于n;所述m个核心模块中的n个核心模块均执行同一个任务,该同一个任务被映射为n路计算任务,每一个核心模块执行一路计算任务;根据所述n个核心模块针对该同一个任务得到的n路任务执行结果进行投票,通过n路比较得到最终的任务执行结果;所述内部总线模块连接所述n个核心模块,该内部总线模块可提供n个内部总线通道,每一个内部总线通道专属于n路计算任务中的一路;n个内部总线通道在所述n个核心模块之间传输所述同一个任务的n路任务数据,不同的内部总线通道针对同一个任务相互隔离;所述外部总线模块连接在所述缓存模块与所述内存模块之间,该外部总线模块可提供n个外部总线通道,每一个外部总线通道专属于n路计算任务中的一路;n个外部总线通道在所述缓存模块与所述内存模块之间传输所述同一个任务的n路任务数据,不同的外部总线通道针对同一个任务相互隔离;所述缓存模块可提供n个缓存区域,每一个缓存区域专属于所述n个核心模块中的一个;n个缓存区域用于缓存所述同一个任务的n路缓存数据,不同的缓存区域针对同一个任务相互隔离。2.根据权利要求1所述的云主机,其特征在于,所述内存模块可提供n个内存区域,n个内存区域用于存储所述同一个任务的n路数据,不同的内存区域针对同一个任务相互隔离。3.根据权利要求1所述的云主机,其特征在于,所述内部总线模块包括n条内部总线,每一条内部总线被用作一个所述内部总线通道;或者,所述内部总线模块包括m条内部总线;其中,m为小于n且大于0的正整数,m条内部总线中的一条内部总线的多个数据位被用作多个所述内部总线通道。4.根据权利要求1所述的云主机,其特征在于,所述外部总线模块包括n条外部总线,每一条外部总线被用作一个外部总线通道;或者,所述外部总线模块包括l条外部总线;其中,l为小于n且大于0的正整数,l条外部总线中的一条外部总线的多个数据位被用作多个所述外部总线通道。5.根据权利要求1所述的云主机,其特征在于,所述缓存模块包括n个缓存,相应地,用于缓存所述同一个任务的n路缓存数据的所述n个缓存区域分别位于n个缓存中;或者,所述缓存模块包括s个缓存,其中,s为小于n且大于0的正整数;相应地,s个缓存中的一个缓存提供至少两个所述缓存区域,且该至少两个缓存区域在该同一个缓存中的存储位置的距离大于预定值;或者,所述缓存模块包括n个二级缓存和n个一级缓存,二级缓存连接到核心模块,一级缓存连接在二级缓存及内存之间;每一个核心模块均对应专用的一个二级缓存和一个一级缓存,相应地,n个二级缓存中包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域,n
个一级缓存中包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域;或者,所述缓存模块包括n个二级缓存和一个一级缓存,二级缓存连接到核心模块,一级缓存连接在二级缓存及内存之间;每一个核心模块均对应专用的一个二级缓存,一个一级缓存为共享缓存,相应地,n个二级缓存中包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域,一个一级缓存中也包括用于缓存所述同一个任务的n路缓存数据的n个缓存区域,一级缓存中的该n个缓存区域的两两存储位置之间的距离均大于预定值。6.根据权利要求1所述的云主机,其特征在于,所述n个核心模块采用至少两种类型的硬件来实现。7.根据权利要求1所述的云主机,其特征在于,所述云主机的指令集中包括针对同一个任务编译出的p套计算任务指令;其中,p为大于1且小于等于n的正整数;p套计算任务指令的计算过程互不相同,但均可完成所述同一个任务;所述n个核心模块分别加载所述p套计算任务指令中的一套,每一个核心模块根据自己加载的一套计算任务指令执行所述同一个任务映射出的一路计算任务。8.基于权利要求1至7中任一所述的云主机实现多路比较的方法,其特征在于,该方法包括:将同一个任务映射为n路计算任务;触发n个核心模块中的每一个核心模块执行该同一个任务映射出的一路计算任务;针对每一路计算任务,一个核心模块利用该路计算任务专属的外部总线通道将该路计算任务的任务数据从内存中传输到该路计算任务专属的缓存区域中;针对每一路计算任务,一个核心模块从专属于本路计算任务的缓存区域中读取任务数据,以得到本路计算任务的任务执行结果;针对每一路计算任务,利用该路计算任务专属的内部总线通道在n个核心模块之间传输该路计算任务的任务执行结果;根据所述n个核心模块针对该同一个任务得到的n个任务执行结果进行投票,通过n路比较得到最终的任务执行结果。9.根据权利要求8所述的方法,其特征在于,该方法进一步包括:在编译阶段,通过编译器编译出如下cpu指令中的至少一个:至少一条第一类型指令,该第一类型指令用于设置专属于每一路计算任务的内部总线通道;至少一条第二类型指令,该第二类型指令用于根据第一类型指令,针对同一个任务的n路计算任务,锁定专属于每一路计算任务的内部总线通道,以及在同一个任务的n路计算任务完成之后,解锁专属于每一路计算任务的内部总线通道;至少一条第三类型指令,该第三类型指令用于设置专属于每一路计算任务的外部总线通道;至少一条第四类型指令,该第四类型指令用于根据第三类型指令,针对同一个任务的n路计算任务,锁定专属于每一路计算任务的外部总线通道,以及在同一个任务的n路计算任务完成之后,解锁专属于每一路计算任务的外部总线通道;至少一条第五类型指令,该第五类型指令用于在n个核心模块之间同步针对同一个任
务的n路计算任务的数据;至少一条第六类型指令,该第六类型指令用于在一个共享缓存中划分出用于缓存同一个任务的n路缓存数据的n个缓存区域,且该n个缓存区域的两两存储位置之间的距离均大于预定值。10.根据权利要求8所述的方法,其特征在于,该方法进一步包括:在编译阶段,针对同一个任务编译出p套计算任务指令;其中,p为大于1且小于等于n的正整数;p套计算任务指令的计算过程互不相同,但均可完成所述同一个任务;设置所述n个核心模块分别加载所述p套计算任务指令,每一个核心模块根据自己加载的一套计算任务指令执行所述同一个任务映射出的一路计算任务。

技术总结
本发明实施例提供了一种云主机及多路比较方法。该云主机包括:N个核心模块,每一个核心模块执行一路计算任务;内部总线模块,连接所述N个核心模块,该内部总线模块可提供N个内部总线通道,每一个内部总线通道专属于N路计算任务中的一路,不同的内部总线通道针对同一个任务相互隔离;外部总线模块,连接在所述缓存模块与所述内存模块之间,该外部总线模块可提供N个外部总线通道,每一个外部总线通道专属于N路计算任务中的一路,不同的外部总线通道针对同一个任务相互隔离;缓存模块,可提供N个缓存区域,每一个缓存区域专属于N个核心模块中的一个,不同的缓存区域针对同一个任务相互隔离。本发明实施例能够提高多路比较方法中任务执行结果的可靠性。任务执行结果的可靠性。任务执行结果的可靠性。


技术研发人员:陈典
受保护的技术使用者:西门子交通技术(北京)有限公司
技术研发日:2023.06.20
技术公布日:2023/8/31
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐