用于运行微控制器的方法与流程

文档序号:31317270发布日期:2022-08-31 01:03阅读:138来源:国知局
用于运行微控制器的方法与流程

1.本发明涉及一种用于运行微控制器的方法以及一种用于执行该方法的微控制器和一种用于执行该方法的计算机程序。


背景技术:

2.现代微控制器例如在(机动)车辆中使用,这些现代微控制器提供了实现虚拟机的可能性。术语“虚拟机”是指在另一客户计算机系统中被模仿的假设计算机系统(可能包括硬件、操作系统和软件)。
3.在微控制器中可以执行多个这样的虚拟机,这些虚拟机分别例如可以提供自己的虚拟操作系统以及要由该虚拟操作系统执行的任务。因此,在真实的物理微控制器中可以模拟多个不同的计算单元。为了管理这些虚拟机,可以提供所谓的管理程序作为自己的硬件和/或软件单元。
4.以这种方式,可以成本低廉地提高微控制器的计算能力或效率,而不给微控制器扩充附加的物理真实资源。作为替代,微控制器的现有的物理资源可以在这些虚拟机之间划分并且被这些虚拟机共同使用。


技术实现要素:

5.在该背景下,提出了具有专利独立权利要求的特征的一种用于运行微控制器的方法以及一种用于执行该方法的微控制器和一种用于执行该方法的计算机程序。有利的设计方案是从属权利要求以及随后的描述的主题。
6.该微控制器包括多个资源,尤其是包括具有多个处理器内核的处理器单元以及尤其还包括多个其它硬件和/或软件资源,例如像ram存储器、闪速存储器等存储单元,以及外围单元,例如模拟-数字转换器、用于总线或现场总线系统(例如can、lin、spi)等等的连接端。
7.在该微控制器中执行多个虚拟机。尤其是,这些虚拟机以软件来实现并且适宜地由所述多个处理器内核来执行。这些虚拟机共享该微控制器的资源并且可以适宜地共同访问这些资源。在这些单独的虚拟机中,尤其是分别执行操作系统(os)、诸如rta-os,以及还执行其它对于运行来说并且对于基本功能性或基本功能来说所需的基础软件、例如autosar和其它安全相关的软件。在这些操作系统下,在这些单独的虚拟机中还可以分别执行可执行软件或应用软件。这些虚拟机还分别尤其包括多个驱动器或基础软件驱动器,这些驱动器或基础软件驱动器被需要用于实施要由该微控制器执行的活动或功能。所述多个基础软件驱动器也称为基础软件堆栈。为了管理这些虚拟机,适宜地提供管理程序,该管理程序可以在微控制器中作为自身的硬件和/或软件单元来提供。
8.该微控制器还具有协调单元,该协调单元是所述多个虚拟机的上级。协调单元尤其可以以软件来提供并且例如由该微控制器的处理器单元来实行。替代地或附加地,协调单元尤其可以在该微控制器中被实现为自身的、单独的硬件单元。该协调单元尤其被提供
作为中央联合协调器,该中央联合协调器应这些单独的虚拟机的请求或要求来协调和管理该微控制器的各个资源的重置或重启。
9.在协调单元中,寄存有关于所述多个虚拟机对所述多个资源的访问的访问信息。尤其是,访问信息说明了:哪些虚拟机在该微控制器的运行时间期间访问哪些资源或者哪些资源在该微控制器的运行时间期间被哪些虚拟机共同使用。
10.如果这些虚拟机之一(在下文不限制一般性地也称为“进行请求的虚拟机”)请求对这些资源之一(在下文不限制一般性地也称为“被请求的资源”)的重置,则协调单元根据访问信息来检查这些虚拟机中的哪些虚拟机还访问这些被请求的资源。协调单元尤其是检查:多个虚拟机当前是否访问被请求的资源,并且尤其是还检查对该资源的立即、突然的重置是否可能对各个虚拟机的运行产生负面影响或者甚至可能会使该微控制器的整个系统不稳定。
11.根据该检查,协调单元确定或决定是否重置相对应的被请求的资源或者是否执行替代措施或替代操作或替代反应。如果协调单元在该检查的过程中确定:资源的重置对这些单独的虚拟机或对该微控制器整体并没有负面影响,则协调单元适宜地确定:相对应的资源像相应的虚拟机所请求的那样被重置。另一方面,如果由协调单元进行的检查得出:资源的重置可能会对各个虚拟机或对整个微控制器有负面影响,则协调单元适宜地确定:资源至少首先未按请求被重置,而是作为替代来执行相对应的替代措施。
12.如果协调单元确定执行该重置,则适宜地在下一个可能的时间点重置该资源。例如,协调单元可以自己重置该资源,或者该重置可以通过该微控制器的另一组件、例如通过管理程序或操作系统来实现。
13.在该上下文中,资源的重置尤其应该不仅是指正常重启、即尤其是正常关闭并且然后启动(即称为“热启动”或“重启(reboot)”),而且是指硬重启或冷重启,其中不再进行正常关闭或可能由于错误而无法正常关闭,而是其中关断相对应的资源,必要时通过中断供电来关断相对应的资源,并且然后启动(也称为“复位(reset)”或“冷启动”)。
14.如果在这些虚拟机之一中在访问该微控制器的资源时发生错误,例如严重或关键错误或者所谓的陷阱,则可能需要重新启动或重置相对应的涉及该错误的资源。然而,这些单独的虚拟机通常不知道哪些虚拟机访问哪些资源或者哪些资源被哪些虚拟机共同使用。因而,这些单独的虚拟机通常无法估计:相对应的资源的重置是否可能导致在其它虚拟机中的其它错误。尤其是,这些单独的虚拟机的基础软件堆栈的驱动器相应并不包含关于相应的虚拟机是否被专门分配资源的信息。因而,这些单独的虚拟机的基础软件堆栈大多无法决定是否可以在不发生与其它虚拟机的冲突或者不使整个系统不稳定的情况下在给定的时间点执行对相对应的资源的重置。
15.本发明能够实现:在该微控制器的运行时间期间管理资源的重置并且尤其是以运行安全的方式执行资源的重置,使得在这些虚拟机中不发生错误或者故障或者甚至不使整个微控制器不稳定。在本发明的范围内,关于资源的重置的决定从这些单独的虚拟机或从各个机器的基础软件堆栈转移到上级的中央协调单元中。适宜地,关于这些单独的虚拟机当前对所有资源的使用的信息与协调单元中的访问信息一起寄存在该微控制器中的中央位置。基于这些访问信息,协调单元可以可靠地决定:对相对应的、被请求的资源的重置在当前时间点是否容许或(运行)安全或者作为替代应该适宜地执行怎样的替代措施。协调单
元尤其可以在运行时相对于对于系统的稳定性来说所需的实施而言执行对被请求的重置或相对应的替代措施的优先排序和协调。
16.通过本方法,尤其可以降低在该微控制器中执行的虚拟系统的复杂性。可以降低成本,尤其是降低虚拟系统的开发成本。适宜地,仅重置该微控制器的最小的必要部分。因此,尤其可以提高整个平台的可用性。
17.特别适宜地,通过本方法,不仅可以提高该微控制器的运行安全性或功能安全性(英文“safety”)而且可以提高该微控制器的信息安全性或信息技术安全性(英文“security”)。可以避免由于被重置的资源而引起的错误或失灵。尤其可以避免:在虚拟机的编程中的可能的弱点导致对该微控制器的其它虚拟机的影响。还可以保护该微控制器免受特定类型的攻击。例如可以阻止通过复位触发器从外部对整个集成平台的dos攻击(拒绝服务(denial of service))。
18.有利地,访问信息包括关于哪些虚拟机允许访问该微控制器的哪些资源或者哪些资源被分派给哪些虚拟机的授权信息。这些授权信息尤其描述了访问授权,按照这些访问授权,这些单独的虚拟机允许访问预先给定的资源。这些授权信息尤其是在该微控制器的运行时间期间不发生变化或至少几乎不发生变化或者仅很少地发生变化的静态信息或固定规定。例如,可以在制造过程或者该微控制器的初始化或配置阶段的过程中最初预先给定相对应的访问授权。例如,这些访问授权可以在该微控制器的稍后运行中在更新过程中被更改,例如在fota(“firmware over the air”)远程更新的过程中被更改。尤其是,在该微控制器的正常的、正在进行的运行期间、尤其是在正常启动和关闭之间,这些访问授权不发生变化。例如,相对应的授权信息可以在制造或初始化过程期间或者在相对应的更新的过程中被寄存在协调单元中和/或例如由协调单元在该微控制器的运行时间期间读入。
19.替代地或附加地,这些访问信息有利地包括关于哪些虚拟机在该微控制器的当前的运行时间期间访问该微控制器的哪些资源的状态信息。这些授权信息尤其描述了这些单独的虚拟机至少在原则上允许访问哪些资源,而这些状态信息适宜地描述了这些单独的虚拟机当前实际访问哪些资源。因此,这些状态信息尤其涉及这些单独的虚拟机的当前的访问行为,该访问行为可能在该运行时间期间动态地发生变化。
20.按照一个优选的实施方式,协调单元在该微控制器的运行时间期间或在该微控制器的当前的运行期间至少部分地确定这些访问信息。尤其是,在该微控制器的运行期间可能动态地发生变化的状态信息由协调单元在该运行时间期间确定并且适宜地每隔一定时间就被更新。例如,协调单元可以从这些单独的虚拟机读入相对应的访问信息和/或向这些单独的虚拟机请求相对应的访问信息。替代地或附加地,这些单独的虚拟机例如也可以将相应的访问信息传送给协调单元。
21.优选地,这些单独的虚拟机分别包括下级协调单元或下级协调模块,这些下级协调单元或这些下级协调模块分别是协调单元的下级。适宜地,这些下级协调单元与上级协调单元合作,以重置微控制器资源。尤其是,这些下级协调单元与上级协调单元保持(通信)连接。如果相应的进行请求的虚拟机请求对相对应的资源的重置,则例如该进行请求的虚拟机的下级协调单元可以将相对应的请求传送给上级协调单元。
22.尤其是,这些下级协调单元分别在相应的虚拟机的基础软件或基础软件堆栈中(例如autosar)作为可执行软件来提供。特别适宜地,上级协调单元与各个下级协调单元一
起形成一种系统,用于安全地重置由虚拟机构成的系统中的资源。例如,上级协调单元和下级协调单元可以在该微控制器的软件架构中分别被实现为驱动器,例如被实现为在autosar软件架构中的所谓的“复杂设备驱动程序(complex device driver)”(cdd)。
23.优选地,各个下级协调单元分别向上级协调单元传送关于相应的虚拟机的访问信息、尤其是关于相应的虚拟机的状态信息。因此,通过这些下级协调单元,可以实现:在该上级协调单元中始终寄存有关于这些单独的虚拟机当前对资源的使用的全部信息。
24.有利地,应进行请求的虚拟机对重置被请求的资源的请求,协调单元根据访问信息来检查:进行请求的虚拟机是否允许访问被请求的资源。因此,尤其是检查:进行请求的虚拟机究竟是否被授权访问相应的资源并且引起资源的重置。如果情况不是如此,则这可表明在进行请求的虚拟机本身中可能存在错误或者甚至可表明有外部攻击。在这种情况下,作为替代措施,例如可以将进行请求的虚拟机本身重置,和/或例如可以输出错误报告,例如向该微控制器的操作系统输出错误报告,和/或例如可以在相应的虚拟机的错误存储器或板载(onboard)错误存储器中创建条目。
25.替代地或附加地,协调单元有利地应请求来检查这些虚拟机中的哪个虚拟机当前正在访问资源。因此,尤其是检查:除了进行请求的虚拟机之外,还有这些虚拟机中的其它虚拟机至少在原则上允许访问相对应的资源并且当前在该微控制器的运行时间期间也实际访问相对应的资源。
26.如果该检查的结果是协调单元确定当前只有进行请求的虚拟机正在访问资源,则协调单元优选地确定该资源被重置。在这种情况下,尤其是不存在与其它虚拟机发生冲突的危险,使得资源可以像所请求的那样被重置。
27.如果该检查的结果是协调单元确定这些虚拟机中的多个虚拟机当前正在访问该资源,则协调单元优选地确定:执行替代措施。由于在这种情况下有多个虚拟机当前正在访问被请求的资源,所以立即重置也许可能导致在这些虚拟机中的错误。
28.有利地,将进行请求的虚拟机重置,作为替代措施。如果例如尽管有多个虚拟机当前正在访问相应的资源,但是只有该进行请求的虚拟机请求对该资源的重置,则这可表明:资源本身没有错误,而是在该进行请求的虚拟机中发生错误,该错误可以通过对该虚拟机的重置来消除。
29.替代地或附加地,优选地将这些虚拟机中的多个虚拟机重置,作为替代措施。例如,可以将允许访问或当前正在访问被请求的资源的所有虚拟机重置。
30.替代地或附加地,优选地向当前正在访问被请求的资源的所有虚拟机传送通知,作为替代措施。尤其可以通知这些虚拟机:相对应的资源应该被重置。例如还可以指示这些虚拟机结束对相对应的资源的访问。如果例如这些被通知的虚拟机中的每个虚拟机都响应该通知并且确认已经停止了对该资源的访问,则该资源可以如所请求的那样被重置。
31.按照一个特别优选的实施方式,由管理程序来执行协调单元。管理程序尤其可以在该微控制器中以软件来提供并且例如由该微控制器的处理器单元来执行。替代地或附加地,管理程序尤其可以被提供作为自身的硬件单元。协调单元尤其集成到管理程序中并且由该管理程序适宜地作为软件来执行。相应的虚拟机为了请求该重置尤其可以向管理程序传送相对应的消息,例如中断消息或者所谓的“管理程序调用(hypervisor call)”。通过在管理程序中提供的协调单元,管理程序可以根据该消息的接收来自己决定被请求的复位是
否可以被安全执行。
32.优选地,协调单元接收如下消息作为对重置资源的请求,该消息包括请求信息,这些请求信息表征对资源的重置以及进行请求的虚拟机。这些请求信息例如可以被实现为在该消息中的一个特定参数或多个特定参数。例如,协调单元可以直接从相对应的虚拟机接收该消息。此外,进行请求的虚拟机首先也可以向该微控制器的另一组件、例如向管理程序传送通知,该另一组件接着向协调单元传送相对应的消息。
33.本方法特别适宜地适合于实时应用程序或实时系统。由于通过本方法可以避免由于被重置的资源而引起的错误并且可以提高可靠性,所以尤其可以满足预先给定的实时条件或实时标准。尤其是,该微控制器或这些虚拟机可以被用于执行有实时能力的应用程序。
34.特别适宜地,该微控制器可以在安全关键的实时环境中使用,例如在(机动)车辆领域使用。适宜地,该微控制器可以在(机动)车辆中使用。该微控制器或这些虚拟机尤其可以执行安全关键的功能,用于车辆的安全运行和控制,例如在驱动或发动机控制的过程中或者在驾驶辅助功能等等的过程中。尤其是,通过本方法可以满足在(机动)车辆领域的安全要求,如例如在iso 26262标准中或者尤其是由所谓的“汽车安全完整性等级(automotive safety integrity level)”(asil)、即由iso 26262规定的针对机动车辆中的安全相关的系统的安全要求等级所预先给定的那样。
35.按照本发明的微控制器尤其是以程序技术方式被设立为执行按照本发明的方法。
36.尤其是当进行实施的控制设备还被用于其它任务并且因而总归存在时,按照本发明的方法的以具有用于执行所有方法步骤的程序代码的计算机程序或计算机程序产品的形式的实现方案也是有利的,因为这引起了特别低的成本。尤其是,适合于提供该计算机程序的数据载体是磁存储器、光存储器和电存储器,诸如硬盘、闪速存储器、eeprom、dvd以及其它等等。通过计算机网络(因特网、内联网等等)来下载程序也是可行的。
37.本发明的其它优点和设计方案从描述以及附图中得到。
38.本发明依据实施例在附图中示意性示出并且在下文参考附图予以描述。
附图说明
39.图1示意性示出了按照本发明的微控制器的优选的设计方案,该微控制器被设立为执行按照本发明的方法的优选的实施方式。
40.图2作为框图示意性示出了按照本发明的方法的优选的实施方式。
41.图3作为示意性流程图示意性示出了根据按照本发明的方法的优选的实施方式的对微控制器中的资源的重置。
具体实施方式
42.在图1中,示意性示出并且用100来表示按照本发明的微控制器的优选的设计方案。
43.微控制器100例如在(机动)车辆中使用,尤其是在安全关键的实时环境中使用,例如用于执行安全关键的功能、例如在发动机控制的过程中或者在驾驶辅助功能的过程中执行安全关键的功能。
44.在微控制器100中执行多个虚拟机200。在所示出的示例中,在微控制器100中执行
三个虚拟机200a、200b、200c。例如,第一虚拟机200a可以在控制发动机或驱动功能的过程中负责协调驱动力矩。第二虚拟机200b例如可以被提供用于在驾驶员辅助功能的过程中协调纵向和横向动力学要求。第三虚拟机200c例如可以被提供作为用于协调被分配给车辆整体的冷却功能的热协调器。
45.在这些虚拟机200a、200b、200c中的每个虚拟机中分别执行操作系统210a、210b、210c,例如分别执行rta-os。
46.每个虚拟机200a、200b、200c还分别具有基础软件或基础软件堆栈220a、220b、220c,在该基础软件堆栈中执行对于运行来说并且对于基本功能性或基本功能来说所需的基础软件和驱动器以及其它安全相关的软件。
47.例如,在第一虚拟机200a中在基础软件堆栈220a中执行安全相关的软件应用程序221a、222a、223a,例如用于驱动力矩的协调。在第二虚拟机200b中,相对应地执行安全相关的软件应用程序221b和222b,例如用于纵向和横向动力学要求的协调,并且在第三虚拟机200c中执行相对应的安全相关的软件应用程序221c和222c,例如用于协调冷却功能。
48.每个虚拟机200a、200b、200c还分别具有连接或用于实时以太网连接(英文:“real time ethernet”,rte)的虚拟接口230a、230b、230c。
49.在这些单独的虚拟机200a、200b、200c中,可以在应用软件区域或应用软件堆栈240a、240b、240c中分别执行软件应用程序241a、242a、243a或241b、242b、243b、244b或241c、242c,例如用于执行相对应的车辆的安全关键的功能,例如在发动机控制或驾驶辅助功能的过程中。
50.为了管理这些虚拟机200a、200b、200c,提供管理程序110,例如以由微控制器100执行的软件为形式。还提供所谓的引导加载程序(所谓的引导控制(boot control))120,用于微控制器100的正常启动。该引导加载程序120尤其被提供作为微控制器100的软件架构105中的软件部分,尤其是在autosar软件架构中。
51.微控制器100还具有多个资源130。微控制器100尤其具有处理器单元,该处理器单元具有多个处理器内核。尤其是,这些单独的虚拟机200a、200b、200c以及还有管理程序110由该处理器单元来执行。除了这些处理器内核之外,微控制器100还具有其它硬件和/或软件资源,例如像ram存储器、闪速存储器等存储单元,以及外围单元,例如模拟-数字转换器、用于总线或现场总线系统(例如can、lin、spi)等等的连接端。
52.这些单独的虚拟机200a、200b、200c可以共同访问所述多个资源130。如果在这些虚拟机200之一中在访问资源130时发生错误,则可能需要重新启动或重置相对应的涉及该错误的资源130。为了在微控制器100的运行时间期间管理资源的相对应的重置并且尤其是以运行安全的方式执行资源的相对应的重置,微控制器100尤其是以程序技术方式被设立为执行按照本发明的方法的优选的实施方式。
53.为了该目的,该控制器具有上级协调单元115以及多个下级协调单元225a、225b、225c。这些协调单元115、225a、225b、225c分别作为可执行软件来提供。上级协调单元115尤其是由管理程序115来执行。在每个虚拟机200a、200b、200c中,分别执行下级协调单元225a、225b、225c,尤其是在相应的虚拟机200a、200b、200c的相应的基础软件220a、220b、220c中执行下级协调单元。上级协调单元115和下级协调单元225a、225b、225c例如在微控制器100的软件架构105中分别被实现为驱动器,例如被实现为在autosar软件架构中的所
谓的“复杂设备驱动程序”(cdd)。
54.上级协调单元115与各个下级协调单元225a、225b、225c一起尤其是形成一种系统,用于安全地重置由虚拟机200构成的系统中的资源130,如随后应该关于图1和2所阐述的那样。
55.图2作为框图示意性示出了按照本发明的方法的优选的实施方式。
56.在初始化或配置阶段310的过程中,首先在步骤311中规定:这些虚拟机200中的哪些虚拟机允许在微控制器100的稍后的正常运行时访问哪些资源130。例如,该配置阶段310可以在微控制器100的制造过程中或者在首次调试期间被执行。因此,在步骤311中,做出固定规定或固定的访问授权,这些固定规定或固定的访问授权在微控制器100的正常运行期间不发生变化。在需要时,例如在远程更新(例如fota)的过程中可以更改预先给定的访问授权。
57.在步骤312中,按照在步骤311中做出的授权在协调单元115中寄存相对应的授权信息,作为关于哪些虚拟机200允许访问微控制器100的哪些资源130的访问信息。尤其是,在上述远程更新的过程中,协调单元115中的相对应的授权信息也被更新。
58.在初始化或配置阶段310之后,实现微控制器100的正常运行或正常运行时间320。在步骤321,这些单独的虚拟机200在微控制器100中被执行并且这些虚拟机200按照在步骤311中预先给定的授权来访问各个资源130。易于理解的是:在该运行时间期间,所有虚拟机200并不是在任何时间点都一定访问所有被分派给它们的资源130。
59.在步骤322中,上级协调单元115将状态信息确定为关于哪些虚拟机200当前在该运行时间期间访问哪些资源130的访问信息。为了该目的,例如各个下级协调单元225a、225b、225c可以将关于它们相应的虚拟机200a、200b、220c的相对应的状态信息传送给上级协调单元115,尤其是每隔一定时间传送给上级协调单元。替代地,上级协调单元115也可以从各个下级协调单元225a、225b、225c读入或者向这些下级协调单元请求相对应的状态信息。因此,在上级协调单元115中寄存有关于固定的访问授权的授权信息以及关于当前的实际访问的状态信息,作为访问信息。
60.在步骤323中,例如虚拟机200a请求对这些资源之一、例如处理器单元的具体的处理器内核进行重置,例如原因在于发生了错误或者所谓的陷阱。在发生这样的陷阱时或者在调用功能以便执行复位时,虚拟机200a的相应的基础软件堆栈220a通过管理程序调用将控制移交给管理程序110。为了该目的,基础软件堆栈220a向管理程序110传送相对应的消息。该消息尤其包括请求信息作为参数,这些请求信息表征相对应的处理器内核的重置以及进行请求的虚拟机200a。根据该消息的接收,管理程序110通过所移交的参数或通过请求信息来识别出该消息是对复位的请求。依据所移交的参数,可以确定该请求的原因以及进行请求的虚拟机200a。
61.在步骤324中,上级协调单元115应请求根据访问信息来检查:这些虚拟机200中的哪些虚拟机访问该被请求的资源、即访问相对应的处理器内核。上级协调单元115尤其是根据授权信息来检查:究竟有哪些虚拟机200允许访问该处理器内核。上级协调单元115还根据状态信息来检查:哪些虚拟机200当前实际上正在访问该处理器内核。
62.根据该检查,协调单元115要么在步骤325中确定相对应的处理器内核如所请求的那样被重置,要么在步骤326中确定执行替代措施。
63.如果协调单元115在该检查的过程中例如确定:相对应的处理器内核排他地被分派给进行请求的虚拟机200a或者当前除了进行请求的虚拟机200a之外没有其它虚拟机访问该处理器内核,则协调单元115确定:该处理器内核可以在不存在与其它虚拟机的冲突危险的情况下被重置。在步骤325中,相对应的处理器内核如所请求的那样被重置。
64.如果协调单元115在该检查的过程中例如依据授权信息来确定进行请求的虚拟机200a不允许访问相对应的处理器内核,则在步骤326中作为替代措施例如将虚拟机200a重置或者创建错误报告,例如作为在相应的虚拟机200a的板载错误存储器中的条目。
65.如果协调单元115在该检查的过程中依据状态信息例如确定当前有多个虚拟机正在访问相对应的处理器内核,则在步骤326中例如将进行请求的虚拟机200a重置,作为替代措施。替代地,在步骤326中也可以向当前正在访问被请求的处理器内核的所有虚拟机通知相对应的处理器内核应该被重置,作为替代措施。如果所有这些被通知的虚拟机都响应该通知,则可以将该处理器内核重置。
66.在图3中,作为示意性流程图示出了根据按照本发明的方法的优选的实施方式的对微控制器中的资源的重置。
67.该微控制器在图3中用400来表示并且例如可以根据在图1中示出的微控制器100来设计。
68.例如,第一处理器内核411和第二处理器内核412共同被分派给第一虚拟机,通过附图标记420来表示。还可以提供其它处理器内核413作为资源,然而第一虚拟机并不访问这些其它处理器内核。这些其它处理器内核413例如可以执行其它虚拟机。
69.在步骤501中,在微控制器400的正常运行的过程中在第一和第二处理器内核411、412中在第一虚拟机的相应的操作系统下执行应用软件。
70.在运行时间期间,在第一内核411中执行该应用软件时在第一时间点502发生错误。在步骤503中,例如借助于所谓的“陷阱向量(trap vector)”,向微控制器400通知该错误。然后,微控制器400在步骤504中指示处理该错误、例如借助于所谓的“陷阱处理程序(trap handler)”来处理该错误。
71.在步骤505中,虚拟机生成“管理程序调用”,以便向管理程序请求:应该重置这两个处理器内核411、412。例如,在步骤506中,在第二执行或授权层级(“执行级别2”,el2)生成用于处理该错误的程序流程(所谓的“进程陷阱(process trap)”)。在步骤507中,存储关于该错误的信息。在步骤508中,将在内核411中执行的软件应用程序重置。在步骤509中,将与内核411连接的外围单元重置。在步骤510中,将内核411的逻辑重置。
72.在步骤511中,向管理程序请求对内核411、412的重置。尤其可以在管理程序中由在那里执行的协调单元来决定内核411、412是否如所请求的那样被重置。由于只有该进行请求的虚拟机访问内核411、412,所以协调单元允许相对应的请求。
73.在步骤512中,管理程序指示:将第一处理器内核411重置,并且在步骤513中管理程序相对应地指示:也将第二处理器内核412重置。
74.在步骤514中,在第二执行或授权层级el2启动管理程序。管理程序在微控制器400中以特殊的授权来在第二执行层级el2被执行,尤其是以便实现虚拟机的运行安全(“safety”)并且信息安全(“secuirty”)的隔离,这些虚拟机在更低的执行或授权层级被执行(“执行级别1(execution level 1)”、即el1,或者“执行级别0(execution level 0)”、即
el0)。微控制器400在通过命令进行重置之后由于在其硬件中的实现而适宜地总是在最高的执行或授权级别el2中启动。
75.随后的步骤涉及处理器内核411、412在它们重置之后的重新启动过程。在步骤515中,首先将第一处理器内核411规定为具有协调单元的主要或上级内核。在步骤516中,将第二处理器内核412规定为次要或下级内核,该次要或下级内核依赖于主要内核411来运行。还将第二内核412置于无限或延时循环中,以便等待其它命令。然后在步骤517中使第二内核412停在无限循环中。
76.在步骤518中,开始第一内核411的初始化。在步骤519中,将第一内核411中的全局组件初始化。在步骤520中,第一内核411将第二内核412从无限循环中唤醒。在步骤521中,将第一内核411中的特定于内核的组件初始化。相对应地,在步骤522中将第二内核412的特定于内核的组件初始化。
77.在步骤523中,在第一内核411中开始这两个内核的同步。相对应地,在步骤524中,在第二内核412中开始该同步。在步骤525中,使这两个内核411、412同步。
78.在步骤526中,在第二内核412中切换到第一执行或授权层级(“执行级别1”、即el1)。相对应地,在步骤527中,在第一内核411中切换到第一执行层级el1。在步骤528中,启动第一执行层级el1中的第一虚拟机。
79.在步骤529中将在第一内核411中特定的可执行应用程序初始化,并且在步骤530中将在第二内核412中特定的可执行应用程序初始化。
80.在步骤531中,再次在第一内核411中开始该同步。在步骤532中,相对应地在第二内核412中执行该同步。在步骤533中,使这两个内核411、412同步。
81.在步骤534中在第一内核411中启动操作系统,并且在步骤535中在第二内核412中启动操作系统。然后,在步骤536中,在第一和第二处理器内核411、412的正常运行的过程中在相对应的虚拟机的操作系统下再次执行应用软件。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1