CN112703483A - 用于车载系统的断电和通电方法及设备 - Google Patents
用于车载系统的断电和通电方法及设备 Download PDFInfo
- Publication number
- CN112703483A CN112703483A CN201880093950.XA CN201880093950A CN112703483A CN 112703483 A CN112703483 A CN 112703483A CN 201880093950 A CN201880093950 A CN 201880093950A CN 112703483 A CN112703483 A CN 112703483A
- Authority
- CN
- China
- Prior art keywords
- memory
- computing platform
- persistent storage
- resume
- footprint
- 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
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/08—Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
- G07C5/0841—Registering performance data
- G07C5/085—Registering performance data using electronic data carriers
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本文公开了与车载计算相关联的装置、方法和存储介质。一种具有用于主控一个或多个虚拟机(VM)的管理程序的车载系统计算平台包括存储器缩小管理器以及存储器快照管理器。存储器缩小管理器被配置成编排缩小一个或多个VM中的一个VM的存储器占用,以用于响应于计算平台被断电时而调用的挂起进程。存储器快照管理器被配置成在挂起进程期间将一个VM的缩小的存储器占用保存到持久存储中,并在用于将一个VM从到持久存储的挂起中再继续的再继续进程期间重新加载所保存的缩小的存储器占用的子集。再继续进程响应于计算平台被通电、被冷引导而被调用。
Description
技术领域
本公开涉及计算机辅助驾驶或自主驾驶(CA/AD)领域。更具体地,本公开涉及用于车载系统的断电和通电方法和设备。
背景技术
本文中所提供的背景描述是出于总体上呈现本公开的上下文的目的。除非在本文中另有指示,否则本部分中描述的材料不是本申请中的权利要求的现有技术,并且不因为包含在本部分中而被承认为现有技术。
现在,越来越多的车辆供应商和原始装备制造商(OEM)正在寻找用于汽车车载系统的整合平台,通常被称为软件定义的驾驶舱(SDC)或车载娱乐体验(IVE)。期望是利用虚拟化技术在管理程序之上运行多个客户机操作系统(OS),共享一个强大的计算平台,例如从加利福尼亚州圣克拉拉市英特尔公司获得的强大的计算平台之一。对于此类架构,管理程序与服务OS(SOS)合作,将为客户机OS提供虚拟化支持。客户机OS的示例可以包括但不限于:用于主控仪表盘应用的客户机OS、用于主控前排座椅信息和娱乐应用的客户机OS、用于主控后排座椅娱乐应用的客户机OS等。
然而,从功耗的角度来看,当车辆的引擎被关闭(切断)时,车载系统(包括底层计算平台)必须被断电。使车载系统处于挂起状态(例如挂起到存储器中)将消耗过多的功率,因为需要大量的功率来维持存储器中的内容。此外,挂起的持续时间可能相当长。典型的汽车系统会在汽车不使用时关闭电源,以节省功耗。产业界要求空闲状态下的所有电子系统(包括电子控制单元(ECU))的功耗都要保持在10mw以下,这使得满足强大的整合计算平台是非常困难的。
对于一些计算平台而言,挂起到持久存储设备可能会满足功率要求,但存在在车辆的引擎被开启(接通)时某些功能必须在几秒钟内可用的要求。例如,有规定要求后视相机的可用时间在接通后的2秒内。如今,典型的持久存储设备的速度还不足以满足要求。例如,典型的嵌入式多媒体卡(EMMC)只能达到200MB/s的读取速度,而写入速度要慢得多。也就是说,对于典型的具有2GB存储器的客户机OS而言,从持久存储中读取客户机OS的存储器内容将花费至少10秒,这太慢了。
对于完全断电的选项而言,为了满足使用整合的强大计算平台的前述SDC系统中某些关键功能的时序要求,仪表盘应用将很可能会在SOS内运行。但这并不能完全解决该问题,因为前排座椅车载信息娱乐(IVI)应用、以及不同的后排座椅娱乐应用将分别在它们的客户机OS上运行。在其各自的客户机OS中运行的这些娱乐系统的引导时间(即从接通到娱乐信息可以播放的时间)需要保持相对较短,因为这对整体的用户体验是重要的。实验表明,在足够强大以充当整合的计算平台的一些可能的候选计算平台上运行的一些当今流行的客户机OS(诸如Android)的冷引导时间可能不够快,无法提供期望的用户体验。
可能的候选计算平台往往具有较长的引导过程。类似地,流行的客户机OS往往需要大量的综合服务才能被启动,而且不是为频繁的冷引导而设计的。进一步地,在虚拟化的情况下,客户机OS的启动依赖于管理程序和SOS。一种方法是用于优化冷引导流程。该优化的基本要素主要在于:1)并行执行,以及2)将非关键性操作推迟到稍后时间。实验表明,该方法可能能够将一些强大的计算平台的冷引导序列控制在10秒左右。然而,10秒的引导时间比典型的小于7秒的预期要长。
附图说明
通过下列具体实施方式并结合所附附图,可容易地理解实施例。为了便于该描述,类似的附图标记指示类似的结构元件。在所附附图的图中,以示例方式而不以限制方式图示出实施例。
图1图示了根据各实施例的用于结合和使用本公开的快速冷引导技术的环境的概览。
图2进一步详细地图示出根据各实施例的图1的车载系统的硬件/软件视图。
图3A-图3B图示出根据各实施例的本公开的快速冷引导技术的各个组件。
图4和图5图示出根据各个实施例的用于车载系统的示例断电过程和示例通电过程。
图6和图7图示出根据各个实施例的在断电期间的示例挂起进程,以及在通电期间的示例再继续进程。
图8图示出根据各个实施例的用于缩小存储器占用、保存存储器内容、和恢复存储器内容的示例进程。
图9图示出根据各个实施例的适于用于实施本公开的各方面的示例计算机平台。
图10图示出根据各实施例的具有用于实施参考图1-7所述的方法的指令的存储介质。
具体实施方式
为了解决背景技术部分中讨论的挑战,本文公开了与具有快速冷引导技术的车载计算相关联的设备、方法和存储介质。在实施例中,将具有用于主控一个或多个虚拟机(VM)的管理程序的车载系统计算平台与本公开的快速冷引导技术相结合。快速冷引导技术包括存储器缩小管理器和存储器快照管理器。存储器缩小管理器被配置成编排缩小一个或多个VM中的一个VM的存储器占用,以使挂起进程将一个VM挂起到持久存储。挂起进程响应于计算平台被断电而被调用,并且计算平台在挂起一个虚拟机到持久存储时继续保持断电。存储器快照管理器被配置成在挂起进程期间将一个VM的缩小的存储器占用保存到持久存储中,并在用于将一个VM从挂起到持久存储中再继续的再继续进程期间重新加载所保存的缩小的存储器占用的子集。再继续进程响应于计算平台被通电、被冷引导而被调用。当车辆的引擎被关闭时,车载系统被断电。
在实施例中,一个VM可以是服务VM或用户VM中的被选择的一者。在实施例中,快速冷引导技术的组件可以分别地针对服务VM和用户VM被部署。服务VM可以支持用户VM。服务VM还可以主控仪表盘应用。用户VM可以分别地主控前排座椅车载信息娱乐应用、各种后排座椅娱乐应用等。
在以下详细描述中,参考形成本文一部分的附图,其中贯穿各附图相同的标记指示相同的部分,并且其中通过图示的方式示出了可实施的实施例。应理解,可利用其他实施例,并且可作出结构或逻辑的改变而不背离本公开的范围。因此,以下详细描述不应以限制的意义来理解,并且实施例的范围由所附权利要求及其等效方案来限定。
所附说明书中公开了本公开的多个方面。可以构想本公开的替代实施例及其等效方案而不背离本公开的精神或范围。应当注意,下文所公开的相同的要素由附图中相同的附图标记指示。
可以按在理解要求保护的主题时最有帮助的方式将各操作描述为依次的多个分立动作或操作。然而,不应当将描述的次序解释为暗示这些操作必然依赖于次序。具体而言,可以不按照呈现的次序执行这些操作。能以不同于所描述的实施例的次序执行所描述的操作。在附加的实施例中,可以执行各种附加操作和/或可以省略所描述的操作。
出于本公开的目的,短语“A和/或B”意指(A)、(B)或(A和B)。出于本公开的目的,短语“A、B和/或C”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
说明书可使用短语“在实施例中”或“在多个实施例中”,其可各自指代相同或不同实施例中的一个或多个。此外,如相对于本公开的实施例所使用的术语“包含”、“包括”、“具有”等是同义的。
如本文中所使用的那样,术语“模块”可指执行提供所描述功能的一个或多个软件或固件程序、组合逻辑电路和/或其他合适的组件的专用集成电路(ASIC)、电子电路、处理器(共享的、专用的或成组的)和/或存储器(共享的、专用的或成组的),或可以是上述各项的部分,或可包括上述各项。
现在参考图1,其中示出根据各实施例的用于结合和使用本公开的快速冷引导技术的环境的概览。如所图示,在实施例中,示例环境50包括车辆52,该车辆52具有引擎、传动装置、轮轴、轮等等。进一步地,车辆52包括具有数个信息娱乐子系统/应用的IVI系统100,这些信息娱乐子系统/应用例如,仪表盘子系统/应用、前排座椅信息娱乐子系统/应用(诸如,导航子系统/应用、媒体子系统/应用、车辆状态子系统/应用等等)、以及数个后排座椅娱乐子系统/应用。进一步地,IVI系统100被提供有本公开的快速冷引导技术150,从而允许IVI系统100在引擎被关闭(也称为被关断)时可以被断电,但IVI系统100看起来又是在引擎被开启时(也称为被接通)时被通电时立即可用的。
在实施例中,IVI系统100可通过自己或响应于用户交互而经由车辆52附近的发射塔56上的无线信号中继器或基站以及一个或多个私有和/或公共有线和/或无线网络58、与一个或多个车辆外的远程内容服务器60进行通信或交互。私有和/或公共的有线和/或无线网络58的示例可包括因特网、蜂窝服务提供商的网络等等。应当理解,当车辆52在去往其目的地的途中时,发射塔56可以是在不同的时间/位置处的不同的塔。
现参考图2,其中进一步详细地示出了根据各实施例的图1的车载系统的硬件/软件视图。如所图示,对于实施例,车载系统100包括硬件101和软件110。硬件101包括处理器102、存储器控制器103、存储器104、只读存储器(ROM)106以及通信和/或输入/输出(I/O)设备108。存储器104包括软件110,而ROM 106包括引导程序111。
软件110包括主控数个VM 122-128的管理程序112。管理程序112被配置成用于主控VM 122-128的执行。VM 122-128包括服务VM 122和数个用户VM 124-128。服务VM 122包括服务OS,该服务OS主控数个仪表盘应用132的执行。用户VM 124-128可以包括:具有主控前排座椅信息娱乐应用134的执行的用户OS的用户虚拟机124,以及具有主控对应的后排座椅娱乐应用136-138等的对应的用户OS的数个附加的用户VM 126-128。
为了使车载系统100在车辆52的引擎被关断时被断电,但车载系统100又看起来是在车辆52的引擎被接通时被通电时对用户是立即可用的,软件110与本公开的快速冷引导技术150结合。在实施例中,快速冷引导技术150包括分布在管理程序112和/或VM 122-128中的各种组件,将在下文更全面地描述。为了实现所期望的断电、但又看起来是在通电时立即可用的,在实施例中,在对IVI系统100进行断电之前,快速冷引导技术150的各种组件被布置成在断电期间发起到存储进程的挂起,以挂起一个或多个VM 122-128,并且在通电时,快速冷引导技术150发起“惰性”再继续进程,再继续被挂起的一个或多个VM 122-128,但仅重新加载被挂起到持久存储的一个或多个虚拟机122-128的存储器内容的子集。
在实施例中,为了便于功率管理,VM 122-128的OS和管理程序112中的每一者可以包括功率管理器140-146。在实施例中,功率管理器140-146被配置成管理符合高级配置和功率接口(ACPI)标准的管理程序112和VM 122-128的功率状态。在实施例中,服务VM 122的OS可以进一步包括设备模型162。设备模型162可以被配置成虚拟化用户VM 124-128的设备。另外,它可以被配置成处理虚拟设备的挂起和再继续。在实施例中,服务VM 122和用户VM 124-128的每个OS可以进一步包括存储器管理器172-178,以管理对在各自VM内运行的各种服务和/或应用的存储器分配。
除了被结合到管理程序112和VM 122-128内的本公开的快速冷引导技术150之外,硬件101的元件102-108和软件110的元件112-138可以是本领域中公知的这些元件中的任何一个。例如,处理器102可以是本领域公知的多个多核处理器中的任何一个,诸如从加州圣克拉拉的英特尔获得的那些多核处理器。存储器104可以是本领域公知的多个易失性存储器中的任何一个,包括传统的动态随机存取存储器(DRAM)或高级交叉点存储器。存储器控制器103可以简单地提供访问控制,即对存储器104进行读和/或写,或者包括高级功能,诸如加密/解密服务。ROM 106可以是本领域公知的多个持久只读存储器中的任何一个,诸如但不限于电子可擦除可编程只读存储器(EEPROM)。引导程序111同样可以是本领域公知的多个引导程序中的任何一个,诸如初级或次级引导加载器(SBL)、多引导程序,例如Grub或汽车引导加载器(ABL)。引导程序111可以是基本输入/输入系统(BIOS)的一部分。
通信和I/O设备108可包括本领域中已知的任何数量的通信和I/O设备。通信设备的示例可包括但不限于,用于蓝牙、近场通信(NFC)、WiFi、蜂窝通信(诸如,LTE 4G、或5G)等等的联网接口。I/O设备的示例可包括但不限于持久存储109、显示器、键盘、光标控制装置(鼠标、轨迹球等)等等。在实施例中,持久存储109可用于提供交换空间,以用于将存储器104中的存储器内容交换出来,从而允许存储器104的该部分被重新分配以供其他用途,或者允许存储器104被关闭。当车载系统100的计算平台被挂起到存储时,持久存储109也可用于存储存储器内容。
管理程序112可以是数个本领域中已知的管理程序中的任一者,诸如,可从佛罗里达州劳德代尔堡的思杰公司(Citrix Inc)获得的KVM(开源管理程序)、Xen或者可从加利福尼亚州帕洛阿尔托的VMware公司获得的VMware等等。类似地,服务VM 122的服务OS以及用户VM 124-128的用户OS可以是本领域中已知的数个OS中的任一者,诸如,例如可从北卡罗来纳州罗利市的Red Hat公司获得的Linux、或可从加利福尼亚州山景城的谷歌公司获得的Android。
现参考图3A-图3B,其中示出了根据各实施例的本公开的快速冷引导技术的各组件。图3A图示出这些实施例:其目标是使由用户VM 124中的一个用户VM主控的至少一个应用(诸如,前排座椅信息娱乐应用134)在车载系统100响应于车辆的引擎被关断而被断电之后,响应于车辆的引擎被接通而被通电、冷引导时,看起来对用户基本上是即时的。图3B图示出替代的实施例:其目标是使由服务VM 122主控的至少一个应用(诸如,仪表盘132)在车载系统100响应于车辆的引擎被关断而被断电之后,响应于车辆的引擎被接通而被通电、冷引导时,看起来对用户基本上是即时的。
对于图3A的实施例,快速冷引导技术150包括存储器缩小管理器210,以及具有快照保存器202、“惰性”存储器加载器(或“惰性”加载器)204和快照映射器206的存储器快照管理器208。存储器快照管理器208被设置在服务VM 122中,而存储器缩小管理器210被设置在用户VM 124中。
存储器缩小管理器210被配置成缩小用户VM 124的存储器占用(footprint),特别是在断电时将用户VM 124挂起到存储之前。存储器快照管理器208被配置成分别在系统100断电时的到存储的挂起进程期间保存用户VM124的存储器的快照,以及在系统100通电时的再继续进程期间恢复用户VM 124的存储器的快照。具体而言,快照保存器202被配置成在再继续期间保存用户VM 124的存储器的快照。“惰性”加载器204被配置成在用户VM 124从到存储的挂起中再继续时仅加载用户VM 124的存储器快照的子集(具有提供即时可用性表现的内容的最高优先级存储器)。“惰性”加载器204被配置成仅当用户VM 124实际访问存储器的其余部分时、加载用户VM 124的存储器快照的其余部分。这就是为什么加载器204被称为“惰性”加载器的原因。快照映射器206被配置成构建到物理存储器的映射,以允许在访问存储器内容时对存储器内容进行后续检取。
存储器缩小管理器210被配置成协调为了在到用户VM 124的存储的挂起期间缩小用户VM 124的存储器占用而正在执行的各个任务,以使用户VM 124的用户应用134能够在车载系统在其已被断电之后被通电时看起来是立即可用的。这些任务可以包括缩小用户VM124的存储器占用、和/或对正在被保存的用户VM 124的存储器页排定优先级等等,从而能够快速再继续用户VM 124,使得其应用134在车载系统100在其已被断电之后被通电时看起来是立即可用的。
对于图3B的实施例,快速冷引导技术150包括存储器缩小管理器310,以及具有快照保存器302、“惰性”存储器加载器(或简称为“惰性”加载器)304和快照映射器306的存储器快照管理器308。与图3A的实施例平行,存储器缩小管理器310被设置在服务VM 122(目标VM)中,而存储器快照管理器308则被设置在管理程序112中,以“服务”目标VM。
与存储器缩小管理器210类似,存储器缩小管理器310被配置成尤其是在断电时将服务VM 122挂起到存储之前,缩小服务VM 122的存储器占用。存储器快照管理器308被配置成分别在系统100断电时的到存储的挂起进程期间保存服务VM 122的存储器的快照,以及在系统100通电时的再继续期间,恢复服务VM 122的存储器的快照。具体而言,快照保存器302被配置成保存服务VM 122的存储器的快照。“惰性”加载器304被配置成在服务VM 122从到存储的挂起中再继续时仅加载服务VM 122的存储器的子集(具有提供即时可用性表现的内容的最高优先级存储器)。“惰性”加载器304被配置成仅当服务VM122实际访问存储器快照的其余部分时、加载服务VM 122的存储器快照的其余部分。这就是为什么加载器304被类似地称为“懒惰”加载器的原因。快照映射器306被配置成在通电期间构建到物理存储器的映射,以允许在访问存储器内容时对存储器内容进行后续检取。
存储器缩小管理器310被配置成协调在服务VM 122的挂起和再继续期间正在执行的各个任务,以使服务VM 122的应用132在车载系统在其已被断电之后被通电时看起来是立即可用的。这些任务可以包括缩小服务VM 122的存储器占用、和/或对正在被保存的服务VM 122的存储器页排定优先级等等,从而能够快速再继续服务VM 122,使得其应用132在车载系统100在其已被断电之后被通电时看起来是立即可用的。
现在参考图4和图5,其中示出了根据各个实施例的用于车载系统的示例断电过程和示例通电过程。更具体地,根据各个实施例,分别在图4图示出示例断电过程410,而在图5图示出示例通电过程430。如图4所图示,对于实施例,断电过程410可以包括在框412-416处执行的操作,而通电过程430可以包括在框432-436处执行的操作。这些操作可以由管理程序112以及服务或服务的用户OS或用户VM 122或124的组件(诸如功率管理器140-144、设备模型162,等等),和/或快速冷引导技术150的组件(特别是,存储器缩小管理器210或310以及存储器快照管理器208或308)来执行。
断电过程410可开始于框412。在框412处,例如,由服务VM 122的服务OS的功率管理器接收对车载系统的计算平台进行断电的请求。接下来,在框414处,响应于接收到使计算平台断电的请求,可以例如由快速冷引导技术150的一个或多个组件执行准备,使得当计算平台在其已被断电之后随后被通电、被冷引导时,计算平台可以从到存储的挂起中再继续。下面将参考图6-图8进一步描述在计算平台在其已被断电之后、使计算平台准备在其随后被通电、被冷引导时从到存储的挂起中再继续。
在框416处,在计算平台已经准备好在计算平台在其已被断电之后随后被通电、被冷引导时从到存储的挂起中再继续之后,计算平台可以完成到存储的挂起过程,并且然后,使其自身断电,从而导致擦除存储器104中的所有当前内容。在各个ACPI实施例中,vSBL的虚拟ACPI或真实SBL的真实ACPI可用于诸如通过在计算平台的实时时钟(RTC)互补金属氧化物半导体(CMOS)随机存取存储器(RAM)中写入模式、来通知平台完成到存储的挂起。vACPI进程可能被管理程序或SOS捕获,并且然后由SOS进行控制以完成到存储的挂起进程的其余部分。此后,计算平台使其自身断电。
如图5所示,对于实施例,通电过程430可以在框432处开始。在框432处,例如,通过计算平台的引导加载器接收到对车载系统的计算平台进行通电、冷引导的请求。接下来,在框434处,响应于接收到使计算平台通电、冷引导的请求,计算平台的管理程序被冷引导。在框436处,在对管理程序进行冷引导之后,再继续进程被调用以再继续被挂起到存储的计算平台的服务VM,以代替对服务VM进行冷引导。在实施例中,BIOS/SBL/ABL可以使用无论什么平台特定的方法(诸如RTC RAM)来识别和切换冷引导进程以从挂起中再继续。下面将参考图6-图8进一步描述服务VM的再继续。
过程430可以从框436前进到框438或框440,这取决于当计算平台最后一次掉电时,至少一个用户VM是否已经被挂起到存储。如果至少一个用户VM(例如,具有高优先级用户应用(诸如前排座椅信息娱乐应用)的用户VM)在计算平台最后一次掉电时已经被挂起到存储,则过程430前进到框438,否则,过程430前进到框440。在框438处,再继续进程继续再继续先前在计算平台最后一次掉电时被挂起到存储的一个或多个用户VM。下面将同样地参考图6-图8进一步描述用户VM的再继续。
当再继续先前在计算平台最后一次掉电时被挂起到存储的所有用户VM时,过程430从框438前进到框440,如果至少一个用户VM(例如,具有低优先级用户应用的用户VM)在计算平台最后一次掉电时没有被挂起到存储,则过程430可以结束。在框440处,用户VM的、在计算平台最后一次掉电时没有被挂起到存储的其余用户VM被冷引导。此后,过程430结束。
因此,在预期的短时间内有效地完成了“冷引导”。假使(出于某种原因),用户VM访问尚未加载的存储器页,可能发生VM退出(例如,扩展的存储器页表(EPT)违规),并且管理程序知道用户VM正在访问尚未加载的存储器页。管理程序可以暂时停止主控用户VM的执行的虚拟CPU的执行,并通知存储器快照管理器208或308首先加载缺失的存储器页。一旦缺失的存储器页被加载,可以再继续对主控用户VM的执行的虚拟CPU的执行。
现参考图6和图7,其中图示出根据各个实施例的在断电期间的示例挂起进程以及在通电期间的示例再继续进程。更具体地,分别根据各个实施例,在图6图示出在断电期间调用的示例挂起进程610,而在图7图示出在通电期间调用的示例再继续进程630。如图6所图示,对于实施例,在断电期间调用的挂起进程610可以包括在框612-616处执行的操作,而在通电期间调用的再继续进程630可以包括在框632-636处执行的操作。这些操作可以由管理程序112和服务或服务的用户OS或用户VM 122或124的组件(诸如功率管理器140-144、设备模型162,等等),和/或快速冷引导技术150的组件(特别是,存储器缩小管理器210或310以及存储器快照管理器208或308)执行。
如图6所示,在车载系统的断电期间调用的挂起进程610可以在框612处开始。在框612处,采取操作以缩小服务/用户VM的存储器占用。下面将参考图8进一步描述服务/用户VM的存储器占用的缩小。接下来,在框614处,用户VM的虚拟化设备被关闭,并(通过例如设备模型162)被置于无状态模式。在各种Android实施例中,可以(例如,由存储器缩小管理器210/310)通知Android OS以启动设备状态保存的进程。在一些Android实施例中,AndroidOS可以通过迫使用户应用到后台、或者通知用户应用结束,来释放设备的使用。在其他Android实施例中,Android OS可以使用其他内部机制(诸如Linux的动态设备功率管理机制),来保存设备的状态。在各个实施例中,显示硬件可以被优化为最后被保存,以便随后在通电期间首先再继续显示硬件,使得内容能够快速被显示,以获得更好的用户体验。
在框616处,对服务/用户VM的存储器中的内容排定优先级。在实施例中,优先级排定可以基于一旦车载系统被通电就使内容对客户可用的重要性。例如,在通电期间,GPU驱动器代码/数据、帧缓冲器、OS内核代码等对于在再继续时向用户示出任何显示(内容)是必需的。在对服务/用户VM的存储器中的内容进行优先级排定时,这些内容按其优先级的顺序被保存到持久存储中。经排定优先级的内容可以按照其优先级的顺序进行保存,以促进在通电期间随后从存储中再继续时,高优先级的内容首先被检取。
如图7所示,在车载系统的通电期间调用的再继续进程630可以在框632处开始。在框632处,将最高优先级的存储器内容(即需要对于用户可用的存储器内容)从持久存储中加载到存储器中。进一步地,(例如,通过存储器快照管理器208/308的快照映射器206/306)为经加载的内容存储器页建立映射(例如,扩展的页表)。稍后将参考图8进一步描述存储器内容的加载。接下来,在634处,(例如,通过存储器快照管理器208/308的快照映射器206/306)为剩余内容建立存储器映射,以促进其后续访问/检取。在实施例中,与访问剩余内容相关联的扩展页表被建立。在实施例中,在已经为剩余内容建立存储器映射之后,可以通知服务/用户VM的vSBL继续从存储再继续的进程。在框636处,服务/用户VM被再继续回到完全通电状态(例如,ACPI S0工作状态)。在再继续时,服务/用户VM恢复设备状态。一旦GPU和显示器的状态已被恢复,就可为用户显示内容。一旦用户看到显示器,用户就会倾向于认为车载系统已经启动并运行。在短期内,通常只会使用被排定优先级的存储器。因此,在最初只加载被排定优先级的内容存储器页的情况下,预期执行不会被影响。
在替代的实施例中,在车载系统成为名义上可操作的之后,可以开始加载未被初始地加载的较低优先级存储器内容,而不是等到这些存储器页的内容被访问。
现在参考图8,其中图示出根据各个实施例的用于缩小存储器占用、保存存储器内容、和恢复存储器内容的示例进程。更具体地,图示出用于缩小服务/用户VM的存储器占用的两个示例过程612a和612b、用于保存存储器内容的示例过程616、和用于恢复存储器内容的示例过程618。用于缩小服务/用户VM的存储器占用的示例过程612a包括在框702-704处执行的操作,而用于缩小服务/用户VM的存储器占用的示例过程612b包括在框712-716处执行的操作。用于保存服务/用户VM的存储器内容的示例过程616可以包括在框722-728处执行的操作,而用于恢复服务/用户VM的存储器内容的示例过程632可以包括在框732-736处执行的操作。在实施例中,用于缩小存储器占用的过程612a和612b都被实施。
用于缩小服务/用户VM的存储器占用的过程612a在框702处开始。在框702处,服务/用户VM的较不重要的服务/应用,就其在通电时的即时可用性而言,被迫使释放分配给服务/应用的存储器。例如,在服务/用户OS为Android的实施例中,服务/用户VM的较不重要的服务/应用可以被切换到后台状态,以使它们失去其存储器分配。在框704处,可以(例如,通过存储器缩小管理器210/310)寻求存储器分配以使得用户VM的OS从应用重新分配存储器。在实施例中,OS可以重新分配先前分配给应用的未使用的存储器。OS还可以压缩先前分配给应用的存储器的使用,以增加可以从应用中释放和重新分配的未使用的存储器的量。经重新分配(例如,经重新分配到存储器缩小管理器210/310)的存储器页将不会被保存到持久存储中,从而缩短用于再继续车载系统的计算平台的时间(要被恢复较少的存储器页的量)。应注意,一般而言,当引擎被关断时将车辆中的车载系统的计算平台挂起所花费的时间量并不是关键的。换言之,一般而言,并不要求车载系统的计算平台的断电必须在车辆的引擎被关断之后的若干秒内发生。
用于缩小服务/用户VM的存储器占用的过程612b在框712处开始。该过程将服务/用户VM的存储器交换到持久存储上的交换空间。在框712处,可以选择特定的存储器压力水平(pi)。通常,压力水平可以从低到高被选择。在框714处,在所选择的压力水平下的存储器页的存储器内容可以被交换出到持久存储上的交换空间。在框716处,可以作出是否存在更多的存储器页要被交换出去的判定。如果判定的结果指示至少一个较高压力水平的存储器页需要被交换,则过程612b返回到框712,并从框712继续,如前所述。如果判定的结果指示所有需要被交换出的存储器页已经被交换出,则过程612b结束。
在实施例中,在低于某个压力水平阈值的存储器页的存储器内容被交换后,交换过程可以停止。被交换出的存储器页的存储器内容通常被认为是不重要的,并且在再继续进程期间不被加载。这些较低优先级内容经由客户机VM的OS按需分页机制被加载。
过程616在框722处开始。在框722处,具有重要内容的存储器页被标识和被标记。通常,重要性是根据需要使其内容在通电之后立即可用来定义,无论是为了关键操作还是为了用户体验。接下来,在对所有重要的内容页进行标记之后,处理616可以从框722直接前进到框728,以按照重要性的顺序保存存储器页,或者前进到可选的框724-726中的一个,以进一步减少需要被保存(以用于通电时的后续再继续)的存储器页的量。在框728处,存储器页按照其重要性顺序被保存到持久存储中。更加重要的(较高优先级)存储器页将在再继续期间被加载,而较不重要的(较低优先级)存储器页将以“惰性”方式按需被加载。
在可选框724处,可以发起过程以标识和标记具有相同内容的存储器页。在框728处,对于具有相同的例如内核存储器页中的一些内核存储器页的每一组存储器页,如果服务VM和用户VM具有相同的OS,则将仅保存一个存储器页。在一些实施例中,还可以发起另一个过程来标识改变的大存储器页。通常,许多大存储器页的内容不会实质性改变。只有被标识为已改变的大存储器页稍后将被保存到持久存储中。过程616可以从框724直接前进到框728以保存唯一的/改变的存储器页,或者前进到可选的框726以更进一步减少需要被保存的存储器页的量。在框728处,唯一的/改变的存储器页按照其重要性/优先级顺序被保存到持久存储中。
在可选的框726处,对要被保存的(唯一的/改变的)存储器页进行压缩,以减少它们所需的持久存储的量、以及重新加载它们的时间。对于这些实施例,在框728处,(唯一的/改变的)存储器页以它们的压缩形式(相对于纯文本)被保存。过程616从框726前进到框728以按照其重要性/优先级的顺序保存经压缩的(唯一的/改变的)存储器页。
用于在通电时被调用的再继续进程期间重新加载被挂起到存储的存储器页的存储器内容的过程632从框732处开始。在框732处,被保存到持久存储中的(唯一的)更重要/高优先级的存储器页从持久存储被重新加载到存储器中。较不重要/较低优先级的存储器页将被跳过,并且随后在再继续后以惰性的方式按需被加载。接下来,从框732开始,如果在挂起进程期间采取了用于减少需要被保存(以用于通电时的后续再继续)的存储器页的量的动作,则过程632可以结束或前进到可选框734-736中的一个。具体而言,如果所保存的存储器页在挂起期间被压缩,则过程632前进到可选框734。如果所保存的存储器页在挂起期间没有被压缩,但只保存了一组相同存储器页的一个副本,则过程632前进到可选框736。
在可选框734处,经压缩的存储器页被解压缩以恢复其纯文本。过程632从框734结束或如果在挂起进程期间只保存了一组相同的存储器页的一个副本,则前进到可选框736。在框736处,重复的重要的存储器页被重新创建。
利用上述架构,结合所公开的快速冷引导技术,建立了具有顺序读取吞吐量为200MB/s的eMMC存储和大约2000MB的OS映像的实验系统。观察到冷引导时间(在未将快速冷引导技术投入操作的情况下)为11-13秒。将快速冷引导技术投入操作使“冷引导”时间减少到约1-2秒。在没有压缩的情况下,存储器占用被缩小到约1000MB。在压缩的情况下,存储器占用被减小到约500MB。
相对于持久存储要求,非易失性存储器快速(NVMe)固态驱动器(SSD)具有耐久性(通常>400TBW)和性能(顺序读取2.5GB/s)。考虑到12年的汽车寿命,平均每天开/关引擎10次,即使在不跳过重复的存储器页的情况下,本公开的快速冷引导技术也仅仅贡献了12×365×10×500MB=20.9TBW,这几乎可以忽略不计。对于eMMC而言(eMMC具有针对多个多级单元(MLC)的每单元10000个写入周期以及较低的性能),实际的被写入量(在只保存改变的大存储器页选项的情况下)大约为每引导周期250MB。每天会使写入数据增加2.5GB,相比正常使用(可能每天>50GB),对eMMC寿命没有显著地影响。此外,由于eMMC价格相对不昂贵,因此,为了降低影响主存储的风险,可以添加专用于本公开的快速冷引导技术的第二eMMC。对于16GB的eMMC,其寿命可以达到16GB×10000/2.5GB/365天=175年。
图9图示出可适于使用以实践本公开的所选择的各方面的示例计算平台。如图所示,计算设备900可包括一个或多个处理器902、只读存储器(ROM)903以及系统存储器904,每个处理器902具有一个或多个处理器核。处理器902可以是本领域公知的多个处理器中的任何一个。类似地,ROM 903可以是本领域中公知的数个ROM中的任何一个,并且系统存储器904可以是本领域中公知的数个易失性存储中的任何一个。
另外,计算系统900可包括持久存储设备906。持久存储设备906的示例可包括但不限于,闪存驱动器、硬驱动器、紧凑盘只读存储器(CD-ROM)等等。此外,计算机系统900可包括输入/输出设备908(诸如,显示器、键盘、光标控件,等等)和通信接口910(诸如,网络接口卡、调制解调器,等等)。可经由系统总线912将这些元件彼此耦合,该系统总线912可表示一个或多个总线。在多个总线的情况下,可通过一个或多个总线桥(未示出)来桥接它们。
这些元件中的每个元件可执行在本领域中已知的其常规功能。具体而言,ROM 903可包括具有引导加载器的基本输入/输出系统服务(BIOS)905。可采用系统存储器904和大容量存储设备906来存储编程指令的工作副本和永久副本,这些编程指令实现与被统称为计算逻辑922的以下各项相关联的操作:管理程序112、服务/用户VM 122-128的服务/用户OS、以及快速冷引导技术150的组件(诸如存储器缩小管理器210/310和/或具有快照保存器202/302、“惰性”加载器204/304和快照映射器206/306的存储器快照管理器208/308)。可通过由(多个)处理器902支持的汇编指令或可编译成此类指令的诸如例如C之类的高级语言来实现各种元件。
如本领域技术人员将领会的那样,本公开可被具体化为方法或计算机程序产品。相应地,除了如之前所述地被具体化为硬件之外,本公开还可采取完全软件的实施例(包括固件、驻留软件、微代码等)或者组合全部可被统称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本公开可采取计算机程序产品的形式,该计算机程序产品具体化在表达的任何有形的或非暂态介质中,该表达具有具体化在介质中的计算机可用的程序代码。图10图示出示例计算机可读非暂态存储介质,其可适合用于存储指令,响应于由设备对这些指令的执行,这些指令使该设备实施本公开的所选择的多个方面。如所示,非暂态计算机可读存储介质1002可包括数条编程指令1004。编程指令1004可被配置用于使得设备(例如,计算平台900)能够响应于对这些编程指令的执行而实现以下各项(的各方面):管理程序112、服务/用户VM 122-128的服务/用户OS以及快速冷引导技术150的组件(诸如存储器缩小管理器210/310和/或具有快照保存器202/302、“惰性”加载器204/304和快照映射器206/306的存储器快照管理器208/308)。在替代实施例中,相反,可将这些编程指令1004设置在多个计算机可读的非瞬态存储介质1002上。在另外的其他实施例中,可将编程指令1004设置在计算机可读的暂态存储介质1002(诸如,信号)上。
可以利用一种或多种计算机可用或计算机可读介质的任何组合。计算机可用或计算机可读介质例如可以是但不限于,电子、磁、光、电磁、红外或半导体系统、装置、设备或传播介质。计算机可读介质的更具体的示例(非完全列表)将包括下述项:具有一条或多条线的电连接件、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储设备、诸如支持互联网或内联网的传输介质的传输介质、或磁存储设备。注意,该计算机可用或计算机可读介质甚至可以是纸或另一合适介质,在该介质上印刷有程序,因为可以经由例如对该纸或其他介质进行光学扫描来电子地捕捉该程序,然后在必要的情况下以合适的方式编译、解释或以其他方式处理该程序,并且随后将其存储在计算机存储器中。在本文档的上下文中,计算机可用或计算机可读介质可以是包含、存储、传递、传播、或传输用于由指令执行系统、装置或设备使用的或结合指令执行系统、装置或设备一起使用的程序的任何介质。计算机可用介质可包括所传播的数据信号,该数据信号在带内或作为载波的部分具有伴随其而具体化的计算机可用程序代码。可使用任何适当的介质来传送计算机可用程序代码,适当的介质包括但不限于无线、线缆、光纤电缆、射频等。
能以一种或多种编程语言的任何组合来编写用于实施本公开的操作的计算机程序代码,这些编程语言包括:面向对象的编程语言,诸如,Java、Smalltalk、C++等等;以及常规过程编程语言,诸如,“C”编程语言或类似的编程语言。程序代码可完全在用户的计算机上执行,可部分地在用户的计算机上执行,可作为独立的软件包执行,可部分地在用于的计算机上且部分地在远程计算机上执行,或者可完全在远程计算机或服务器上执行。在后一场景中,可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))将远程计算机连接到用户的计算机,或可(例如,使用因特网服务提供商通过因特网)建立到外部计算机的连接。
参照根据本公开的多个实施例的方法、设备(系统)和计算机程序产品的流程图图示和/或框图描述了本公开。将会理解,可以由计算机程序指令来实现流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合。可将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器来生产机器,使得经由计算机或其他可编程数据处理设备的处理器执行的这些指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。
也可将这些计算机程序指令存储在可指示计算机或其他可编程数据处理装置按特定方式运作的计算机可读介质中,使得该计算机可读介质中所存储的这些指令生产制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的指令装置。
也可将计算机程序指令加载到计算机或其他可编程数据处理装置上以使一系列操作步骤在该计算机或其他可编程装置上被执行从而产生计算机实现的过程,使得在该计算机或其他可编程装置上执行的这些指令提供用于实现流程图和/或框图的一个或多个框中指定的功能/动作的过程。
附图中的流程图和框图图示出根据本公开的各实施例的系统、方法和计算机程序产品的可能的实现方式的架构、功能和操作。就这一点而言,流程图或框图中的每个框可表示包括用于实现指定的(多个)逻辑功能的一条或多条可执行指令的模块、代码段或代码的部分。应当注意,在一些替代实现方式中,框中所标注的功能可不按图中所标注的次序发生。例如,取决于所涉及的功能,实际上,可基本上同时地执行连续地示出的两个框,或者有时可按相反的次序来执行这些框。也将注意,可以由执行指定的功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合。
本文中所使用的术语仅出于描述特定实施例的目的,并且不旨在限制本公开。如本文中所使用,单数形式的“一”(“a”、“an”)和“该”(“the”)旨在也包括复数形式,除非上下文另外清楚地指示。还将理解,当在本说明书中使用术语“包括”(“comprise”和/或“comprising”)时,其指定所陈述的特征、整数、步骤、操作、元件、和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件、和/或其群组的存在或添加。
可将实施例实现为计算机进程、计算系统,或者实现为诸如计算机可读介质的计算机程序产品之类的制品。计算机程序产品可以是计算机存储介质,该计算机存储介质可由计算机系统读取并对计算机程序指令编码以执行计算机进程。
所附权利要求书中的所有装置或步骤以及功能元件的对应的结构、材料、动作及等效物旨在包括与具体地要求保护的其他要求保护的元件组合执行功能的任何结构、材料或动作。已出于说明和描述的目的呈现了本公开的描述,但是该描述不旨在是穷举性的,也不限于按所公开形式的本公开。在不背离本公开的范围和精神的情况下,许多修改和变型对普通技术人员将是显而易见的。选择并描述实施例,以便最好地解释本公开的原理和实际应用,并且以便使其他本领域普通技术人员能够理解对具有适用于所构想的特定使用的各种修改的实施例的公开。
返回参考图9,对于一个实施例,处理器902中的至少一个处理器可以与具有计算逻辑922的各方面的存储器被封装在一起。对于一个实施例,处理器902中的至少一个处理器可以与具有计算逻辑922的各方面的存储器封装在一起以形成系统级封装(SiP)。对于一个实施例,处理器902中的至少一个处理器可以与具有计算逻辑922的各方面的存储器集成在同一管芯上。对于一个实施例,处理器902中的至少一个处理器可以与具有计算逻辑922的各方面的存储器封装在一起以形成片上系统(SoC)。对于至少一个实施例,可以在但不限于在例如可穿戴设备、智能电话或计算平板中利用该SoC。
因此,已描述了本公开的各示例实施例,它们包括但不限于:
示例1是一种用于车载计算的设备,该设备包括:计算平台,该计算平台具有用于主控一个或多个虚拟机(VM)的管理程序;存储器缩小管理器,用于编排缩小一个或多个VM中的一个VM的存储器占用以使挂起进程将一个VM挂起到持久存储,其中,挂起进程响应于计算平台被断电而被调用,并且计算平台在将一个VM挂起到持久存储时继续断电;以及存储器快照管理器,用于在挂起进程期间将一个VM的缩小的存储器占用保存到持久存储中,并且用于在将一个VM从到持久存储的挂起中再继续的再继续进程期间重新加载所保存的缩小的存储器占用的子集,其中,再继续进程响应于计算平台被通电、被冷引导而被调用。计算平台、存储器缩小管理器、和存储器快照管理器形成了车辆的车载系统的至少一部分,该车载系统当车辆的引擎被关闭时被断电。
示例2是示例1,其中,为了编排缩小一个VM的存储器占用以用于挂起进程,存储器缩小管理器迫使一个VM的一个或多个服务或应用释放分配给一个或多个服务或应用的存储器,或者将一个VM的一个或多个服务或应用的存储器页交换出到交换存储。
示例3是示例1,其中,存储器缩小管理器进一步使一个VM的一个或多个设备被放置在用于挂起进程的无状态模式中。
示例4是示例1,其中,存储器快照管理器包括快照保存器,该快照保存器对缩小的存储器占用中的存储器内容排定优先级,并将缩小的存储器占用中的存储器内容按其优先级顺序保存到持久存储中。
示例5是示例4,其中,快照保存器进一步标识缩小的存储器占用中的经排定优先级的存储器内容的相同存储器页,并且仅将每组相同存储器页中的一个保存到持久存储中。
示例6是示例4,其中,快照保存器进一步标识缩小的存储器占用中的经排定优先级的存储器内容的改变的存储器页,并且仅将改变的存储器页保存到持久存储中。
示例7是示例4,其中快照保存器在将经压缩的存储器内容按其优先级顺序保存到持久存储中之前,进一步压缩缩小的存储器占用中的经排定优先级的存储器内容。
示例8是示例1,其中,存储器快照管理器包括存储器加载器,该存储器加载器被布置成在再继续进程期间将所保存的缩小的存储器占用的子集从持久存储中重新加载到计算平台的存储器中。
示例9是示例8,其中,存储器快照管理器进一步包括快照映射器,该快照映射器被布置成在再继续进程期间对所保存的缩小的存储器占用的存储器内容建立存储器映射,而不管所保存的缩小的存储器占用的存储器内容是否是在再继续进程期间被重新加载的子集的一部分。
示例10是示例9,其中,所保存的缩小的存储器占用中的不属于再继续进程期间被重新加载的子集的一部分的存储器内容在其随后在操作期间被访问时被重新加载到计算平台的存储器中。
示例11是示例1-10中的任一项,其中,一个或多个VM包括具有用于主控一个或多个系统服务的服务操作系统(OS)的服务VM、以及具有用于主控一个或多个用户应用的用户OS的用户应用VM。存储器缩小管理器被设置在用户应用VM中,以缩小用户应用VM的存储器占用,以用于在计算平台断电时而被调用的挂起进程。并且存储器快照管理器被设置在服务VM中以在系统被通电、冷引导时调用的再继续进程期间对用户应用VM的存储器内容建立存储器映射。
示例21是示例1-10中的任一项,其中,一个或多个VM包括具有用于主控一个或多个系统服务的服务操作系统(OS)的服务VM、以及具有用于主控一个或多个用户应用的用户OS的用户应用VM。存储器缩小管理器被设置在服务VM中,以缩小服务VM的存储器占用,以用于在计算平台被断电时而被调用的挂起进程。并且存储器快照管理器被设置在管理程序中以在系统被通电时调用的再继续进程期间对服务VM的存储器内容建立存储器映射。
示例13是一种用于车载计算的方法,该方法包括:由车辆的车载系统的计算平台接收断电的请求;由计算平台响应于接收到对断电的请求而使计算平台准备在计算平台被通电、被冷引导时使车载系统的至少一部分从持久存储中再继续;并且由计算平台在完成在计算平台被通电、被冷引导时使车载系统的至少一部分从持久存储中再继续的准备时、对计算平台进行断电。
示例14是示例13,其中,响应于接收到断电请求而使计算平台准备在被通电、冷引导时从持久存储中再继续车载系统的至少一部分包括:缩小车载系统的部分的存储器占用、将车载系统的部分的缩小的存储器占用保存到持久存储中、以及挂起车载系统的部分。
示例15是示例14,其中,缩小车载系统的部分的存储器占用包括:迫使车载系统的部分的一个或多个服务或应用释放分配给一个或多个服务或应用的存储器,或者将车载系统的部分的一个或多个服务或应用的存储器页交换出到交换存储。
示例16是示例14,其中,缩小车载系统的部分的存储器占用进一步包括:对缩小的存储器占用中的存储器内容排定优先级,并且其中将车载系统的部分的缩小的存储器占用保存到持久性存储中包括:将车载系统的部分的缩小的存储器占用按其优先级顺序保存到持久存储中。
示例17是示例16,其中,缩小车载系统的部分的存储器占用进一步包括:标识缩小的存储器占用中的存储器内容的相同存储器页,并且其中,将车载系统的部分的缩小的存储器占用保存到持久存储中包括:仅将每组相同的存储器页中的一个保存到持久存储中。
示例18是示例16,其中,将车载系统的部分的缩小的存储器占用保存到持久存储中包括:在将经压缩的存储器内容按照其优先级顺序保存到持久存储中之前,对缩小的存储器占用中的存储器内容进行压缩。
示例19是示例13-18中的任一项,其中,响应于接收到断电请求而使计算平台准备在被通电、被冷引导时从持久存储中再继续车载系统的至少一部分包括:使车载系统的部分的一个或多个设备被放置在用于挂起进程的无状态模式中。
示例20是至少一种计算机可读介质(CRM),具有存储在其中的指令,响应于该指令的执行,使车辆中的车载系统的计算平台用于:经由计算平台的引导程序,接收使计算平台通电、冷引导的请求;作为响应,通过引导程序对计算平台的管理程序进行冷引导;以及代替对多个虚拟机进行冷引导,发起再继续进程以从计算平台的持久存储中再继续多个虚拟机中的一个或多个虚拟机,该一个或多个虚拟机已被挂起到持久存储中,作为紧接着计算平台最后一次断电之前执行的挂起进程的一部分。
示例21是示例20,其中,用于从持久存储中再继续多个虚拟机中的一个或多个虚拟机包括:用于在再继续进程期间将一个或多个虚拟机的所保存的缩小的存储器占用的子集从持久存储中重新加载到计算平台的存储器中。
示例22是示例21,其中,用于从持久存储中再继续多个虚拟机中的一个或多个虚拟机进一步包括:用于在再继续进程期间对所保存的缩小的存储器占用的存储器内容建立存储器映射,而不管所保存的缩小的存储器占用的存储器内容是否是在再继续进程期间被重新加载的子集的一部分。
示例23是示例22,其中,所保存的缩小的存储器占用中的不属于再继续进程期间被重新加载的子集的一部分的存储器内容在其随后在操作期间被访问时被重新加载到计算平台的存储器中。
示例24是示例20,其中,多个虚拟机包括具有用于主控一个或多个系统服务的服务操作系统(OS)的服务虚拟机、以及多个用户应用虚拟机,每个用户应用虚拟机具有用于主控一个或多个用户应用的用户OS;以及其中,用于发起再继续进程以从计算平台的持久存储中再继续多个虚拟机中的一个或多个虚拟机包括:用于发起再继续进程以再继续用户应用虚拟机中的一个或多个用户应用虚拟机。
示例25是示例20-24中的任一项,其中,多个虚拟机包括具有用于主控一个或多个系统服务的服务操作系统(OS)的服务虚拟机、以及多个用户应用虚拟机,每个用户应用虚拟机具有用于主控一个或多个用户应用的用户OS;以及其中,用于发起再继续进程以从计算平台的持久存储中再继续多个虚拟机中的一个或多个虚拟机包括:用于发起再继续进程以再继续服务OS虚拟机。
对于本领域技术人员将是显而易见的是,可在所公开的设备和相关联的方法的所公开的实施例中作出各种修改和变型,而不背离本公开的精神或范围。因此,如果修改和变型落入任何权利要求及其等效方案的范围之内,则本公开旨在涵盖上文所公开的实施例的修改和变型。
Claims (25)
1.一种用于车载计算的设备,所述设备包括:
计算平台,所述计算平台具有用于主控一个或多个虚拟机(VM)的管理程序;
存储器缩小管理器,用于编排缩小一个或多个VM中的一个VM的存储器占用以使挂起进程将所述一个VM挂起到持久存储,其中,所述挂起进程响应于所述计算平台被断电而被调用,并且所述计算平台在将所述一个VM挂起到所述持久存储时继续断电;以及
存储器快照管理器,用于在所述挂起进程期间将所述一个VM的缩小的存储器占用保存到所述持久存储中,并且用于在将所述一个VM从到所述持久存储的挂起中再继续的再继续进程期间重新加载所保存的缩小的存储器占用的子集,其中,所述再继续进程响应于所述计算平台被通电、被冷引导而被调用;
其中,所述计算平台、所述存储器缩小管理器、和所述存储器快照管理器形成了车辆的车载系统的至少一部分,所述车载系统当所述车辆的引擎被关闭时被断电。
2.如权利要求1所述的设备,其特征在于,为了编排缩小所述一个VM的存储器占用以用于所述挂起进程,所述存储器缩小管理器迫使所述一个VM的一个或多个服务或应用释放分配给所述一个或多个服务或应用的存储器,或者将所述一个VM的所述一个或多个服务或应用的存储器页交换出到交换存储。
3.如权利要求1所述的设备,其特征在于,所述存储器缩小管理器进一步使所述一个VM的一个或多个设备被放置在用于所述挂起进程的无状态模式中。
4.如权利要求1所述的设备,其特征在于,所述存储器快照管理器包括快照保存器,所述快照保存器对所述缩小的存储器占用中的存储器内容排定优先级,并将所述缩小的存储器占用中的所述存储器内容按其优先级顺序保存到所述持久存储中。
5.如权利要求4所述的设备,其特征在于,所述快照保存器进一步标识所述缩小的存储器占用中的经排定优先级的存储器内容的相同存储器页,并且仅将每组相同存储器页中的一个保存到所述持久存储中。
6.如权利要求4所述的设备,其特征在于,所述快照保存器进一步标识所述缩小的存储器占用中的所述经排定优先级的存储器内容的改变的存储器页,并且仅将改变的存储器页保存到所述持久存储中。
7.如权利要求4所述的设备,其特征在于,所述快照保存器在将经压缩的存储器内容按其优先级顺序保存到所述持久存储中之前,进一步压缩所述缩小的存储器占用中的所述经排定优先级的存储器内容。
8.如权利要求1所述的设备,其特征在于,所述存储器快照管理器包括存储器加载器,所述存储器加载器被布置成在所述再继续进程期间将所保存的缩小的存储器占用的子集从所述持久存储中重新加载到所述计算平台的存储器中。
9.如权利要求8所述的设备,其特征在于,所述存储器快照管理器进一步包括快照映射器,所述快照映射器被布置成在所述再继续进程期间对所述所保存的缩小的存储器占用的存储器内容建立存储器映射,而不管所述所保存的缩小的存储器占用的存储器内容是否是在所述再继续进程期间被重新加载的所述子集的一部分。
10.如权利要求9所述的设备,其特征在于,所述所保存的缩小的存储器占用中的不属于所述再继续进程期间被重新加载的所述子集的一部分的存储器内容在其随后在操作期间被访问时被重新加载到所述计算平台的所述存储器中。
11.如权利要求1-10中的任一项所述的设备,其特征在于,所述一个或多个VM包括具有用于主控一个或多个系统服务的服务操作系统(OS)的服务VM、以及具有用于主控一个或多个用户应用的用户OS的用户应用VM;
其中,所述存储器缩小管理器被设置在所述用户应用VM中,以缩小所述用户应用VM的存储器占用,以用于在所述计算平台被断电时而被调用的所述挂起进程;以及
其中,所述存储器快照管理器被设置在服务VM中以在所述系统被通电、冷引导时而调用的再继续进程期间对所述用户应用VM的存储器内容建立存储器映射。
12.如权利要求1-10中的任一项所述的设备,其特征在于,所述一个或多个VM包括具有用于主控一个或多个系统服务的服务操作系统(OS)的服务VM、以及具有用于主控一个或多个用户应用的用户OS的用户应用VM;
其中,所述存储器缩小管理器被设置在服务VM中,以缩小所述服务VM的存储器占用,以用于在所述计算平台被断电时而被调用的挂起进程;以及
其中,所述存储器快照管理器被设置在所述管理程序中以在所述系统被通电时而被调用的再继续进程期间、对所述服务VM的存储器内容建立存储器映射。
13.一种用于车载计算的方法,所述方法包括:
由车辆的车载系统的计算平台接收断电的请求;
由所述计算平台响应于接收到所述断电的请求而使所述计算平台准备在所述计算平台被通电、被冷引导时使所述车载系统的至少一部分从持久存储中再继续;
由所述计算平台在完成在所述计算平台被通电、被冷引导时使所述车载系统的所述至少一部分从持久存储中再继续的准备时、对所述计算平台进行断电。
14.如权利要求13所述的方法,其特征在于,响应于接收到所述断电的请求而使所述计算平台准备在被通电、冷引导时从持久存储中再继续所述车载系统的至少一部分包括:缩小所述车载系统的所述部分的存储器占用、将所述车载系统的所述部分的缩小的存储器占用保存到持久存储中、以及挂起所述车载系统的所述部分。
15.如权利要求14所述的方法,其特征在于,缩小所述车载系统的所述部分的存储器占用包括:迫使所述车载系统的所述部分的一个或多个服务或应用释放分配给所述一个或多个服务或应用的存储器,或者将所述车载系统的所述部分的所述一个或多个服务或应用的存储器页交换出到交换存储。
16.如权利要求14所述的方法,其特征在于,缩小所述车载系统的所述部分的存储器占用进一步包括:对所述缩小的存储器占用中的存储器内容排定优先级,并且其中将所述车载系统的所述部分的所述缩小的存储器占用保存到持久性存储中包括:将所述车载系统的所述部分的所述缩小的存储器占用按其优先级顺序保存到持久存储中。
17.如权利要求16所述的方法,其特征在于,缩小所述车载系统的所述部分的存储器占用进一步包括:标识所述缩小的存储器占用中的所述存储器内容的相同存储器页,并且其中,将所述车载系统的所述部分的所述缩小的存储器占用保存到持久存储中包括:仅将每组相同的存储器页中的一个保存到所述持久存储中。
18.如权利要求16所述的方法,其特征在于,将所述车载系统的所述部分的所述缩小的存储器占用保存到持久存储中包括:在将经压缩的存储器内容按照其优先级顺序保存到所述持久存储中之前,对所述缩小的存储器占用中的存储器内容进行压缩。
19.如权利要求13-18中任一项所述的方法,其特征在于,响应于接收到所述断电的请求而使所述计算平台准备在被通电、被冷引导时从持久存储中再继续所述车载系统的至少一部分包括:使所述车载系统的所述部分的一个或多个设备被放置在用于所述挂起进程的无状态模式中。
20.至少一种计算机可读介质(CRM),具有存储在其中的指令,响应于所述指令的执行,使车辆中的车载系统的计算平台用于:
经由所述计算平台的引导程序,接收使所述计算平台通电、冷引导的请求;
作为响应,通过所述引导程序对所述计算平台的管理程序进行冷引导;以及
代替对多个虚拟机进行冷引导,发起再继续进程以从所述计算平台的持久存储中再继续所述多个虚拟机中的一个或多个虚拟机,所述一个或多个虚拟机已被挂起到所述持久存储中,作为紧接着所述计算平台最后一次断电之前执行的挂起进程的一部分。
21.如权利要求20所述的CRM,其特征在于,用于从持久存储中再继续所述多个虚拟机中的所述一个或多个虚拟机包括:用于在所述再继续进程期间将所述一个或多个虚拟机的所保存的缩小的存储器占用的子集从所述持久存储中重新加载到所述计算平台的存储器中。
22.如权利要求21所述的CRM,其特征在于,用于从持久存储中再继续所述多个虚拟机中的所述一个或多个虚拟机进一步包括:用于在所述再继续进程期间对所保存的缩小的存储器占用的存储器内容建立存储器映射,而不管所述所保存的缩小的存储器占用的存储器内容是否是在所述再继续进程期间被重新加载的所述子集的一部分。
23.如权利要求22所述的CRM,其特征在于,所述所保存的缩小的存储器占用中的不属于所述再继续进程期间被重新加载的所述子集的一部分的存储器内容在其随后在操作期间被访问时被重新加载到所述计算平台的所述存储器中。
24.如权利要求20所述的CRM,其特征在于,所述多个虚拟机包括具有用于主控一个或多个系统服务的服务操作系统(OS)的服务虚拟机、以及多个用户应用虚拟机,每个用户应用虚拟机具有用于主控一个或多个用户应用的用户OS;以及其中,用于发起再继续进程以从所述计算平台的持久存储中再继续所述多个虚拟机中的一个或多个虚拟机包括:用于发起再继续进程以再继续所述用户应用虚拟机中的一个或多个用户应用虚拟机。
25.如权利要求20-24中任一项所述的CRM,其特征在于,所述多个虚拟机包括具有用于主控一个或多个系统服务的服务操作系统(OS)的服务虚拟机、以及多个用户应用虚拟机,每个用户应用虚拟机具有用于主控一个或多个用户应用的用户OS;以及其中,用于发起再继续进程以从所述计算平台的持久存储中再继续所述多个虚拟机中的一个或多个虚拟机包括:用于发起再继续进程以再继续所述服务OS虚拟机。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/107574 WO2020061805A1 (en) | 2018-09-26 | 2018-09-26 | Power Off and Power On Method and Apparatus For an In-Vehicle System |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112703483A true CN112703483A (zh) | 2021-04-23 |
Family
ID=69949241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880093950.XA Pending CN112703483A (zh) | 2018-09-26 | 2018-09-26 | 用于车载系统的断电和通电方法及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210225096A1 (zh) |
EP (1) | EP3857358A4 (zh) |
CN (1) | CN112703483A (zh) |
WO (1) | WO2020061805A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102019124343A1 (de) * | 2019-09-11 | 2021-03-11 | Audi Ag | Verfahren zum Betreiben eines Rechnersystems für ein Kraftfahrzeug sowie ein derartiges Rechnersystem |
GB2592647B (en) * | 2020-03-05 | 2022-08-03 | Jaguar Land Rover Ltd | Power management on a vehicle |
GB2592648B (en) * | 2020-03-05 | 2023-02-08 | Jaguar Land Rover Ltd | Power management on a vehicle |
US20220129292A1 (en) * | 2020-10-28 | 2022-04-28 | Red Hat, Inc. | Fast virtual machine resume at host upgrade |
EP4245615A4 (en) * | 2020-11-10 | 2024-07-03 | Lg Electronics Inc | SIGNAL PROCESSING DEVICE AND VEHICLE DISPLAY DEVICE THEREOF |
US20230027937A1 (en) * | 2021-07-24 | 2023-01-26 | Vmware Inc. | Handling memory accounting when suspending and resuming virtual machines to/from volatile memory |
US20230088998A1 (en) * | 2021-09-17 | 2023-03-23 | Samsung Electronics Co., Ltd. | System on chip, controller and vehicle |
US11829771B2 (en) | 2022-04-29 | 2023-11-28 | Red Hat, Inc. | Quick presentation of camera video in a vehicle using Linux |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407518B2 (en) * | 2007-10-26 | 2013-03-26 | Vmware, Inc. | Using virtual machine cloning to create a backup virtual machine in a fault tolerant system |
US9116724B2 (en) * | 2009-05-15 | 2015-08-25 | Red Hat, Inc. | Stateless virtual machine |
CN101916201B (zh) * | 2010-08-06 | 2015-05-27 | 中兴通讯股份有限公司 | 一种基于Android移动终端冷启动的方法和装置 |
US9804798B2 (en) * | 2012-12-14 | 2017-10-31 | Vmware, Inc. | Storing checkpoint file in high performance storage device for rapid virtual machine suspend and resume |
US9104469B2 (en) * | 2013-06-11 | 2015-08-11 | Vmware, Inc. | Suspend-resume of virtual machines using de-duplication |
CN103309771B (zh) * | 2013-06-14 | 2018-04-20 | 厦门雅迅网络股份有限公司 | 基于Android系统实现应用程序开机快速恢复的方法 |
US20150058519A1 (en) * | 2013-08-22 | 2015-02-26 | International Business Machines Corporation | Detection of hot pages for partition hibernation |
CN103729264B (zh) * | 2013-12-23 | 2016-07-13 | 国云科技股份有限公司 | 一种Windows虚拟机系统盘备份还原方法 |
US9354918B2 (en) * | 2014-02-10 | 2016-05-31 | International Business Machines Corporation | Migrating local cache state with a virtual machine |
GB2529204A (en) * | 2014-08-13 | 2016-02-17 | Ibm | Suspending and resuming virtual machines |
US9619268B2 (en) * | 2014-08-23 | 2017-04-11 | Vmware, Inc. | Rapid suspend/resume for virtual machines via resource sharing |
EP3311286A4 (en) * | 2015-06-17 | 2019-01-16 | Intel Corporation | DATA PROCESSING DEVICE AND METHOD WITH PERSISTENT MEMORY |
JP2017033331A (ja) * | 2015-08-03 | 2017-02-09 | 富士通株式会社 | 代理応答プログラム、代理応答装置及び代理応答方法 |
CN105306225B (zh) * | 2015-11-03 | 2018-09-07 | 国云科技股份有限公司 | 一种基于Openstack的物理机远程关机方法 |
US10310893B2 (en) * | 2016-04-05 | 2019-06-04 | Microsoft Technology Licensing, Llc | Managing container pause and resume |
US11243782B2 (en) * | 2016-12-14 | 2022-02-08 | Microsoft Technology Licensing, Llc | Kernel soft reset using non-volatile RAM |
-
2018
- 2018-09-26 EP EP18935705.6A patent/EP3857358A4/en active Pending
- 2018-09-26 WO PCT/CN2018/107574 patent/WO2020061805A1/en unknown
- 2018-09-26 US US17/055,544 patent/US20210225096A1/en active Pending
- 2018-09-26 CN CN201880093950.XA patent/CN112703483A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3857358A1 (en) | 2021-08-04 |
US20210225096A1 (en) | 2021-07-22 |
EP3857358A4 (en) | 2022-05-11 |
WO2020061805A1 (en) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112703483A (zh) | 用于车载系统的断电和通电方法及设备 | |
US10754558B2 (en) | Vehicular device | |
US10127073B2 (en) | Operating system context switching | |
JP4769484B2 (ja) | 仮想計算機をマイグレーションするための方法およびシステム | |
EP2487583B1 (en) | Booting apparatus and method using snapshot image | |
KR101936453B1 (ko) | 새로운 애플리케이션을 위한 메모리 관리 모델 및 인터페이스 | |
US9223596B1 (en) | Virtual machine fast provisioning based on dynamic criterion | |
US20140297998A1 (en) | Memory virtualization-based snapshot boot apparatus and method | |
US20050132363A1 (en) | Method, apparatus and system for optimizing context switching between virtual machines | |
EP3195128B1 (en) | Memory management in virtualized environment | |
US20120311240A1 (en) | Information processing apparatus, information processing method, and storage medium | |
CN108292233B (zh) | 开启虚拟机的应用处理器 | |
CN112598565A (zh) | 一种基于加速卡的服务运行方法、装置、电子设备及存储介质 | |
US8930968B2 (en) | Method and driver for processing data in a virtualized environment | |
JP6859463B2 (ja) | 仮想マシンを起動させるための方法、装置、デバイス及び媒体 | |
WO2022083158A1 (zh) | 数据处理的方法、实例以及系统 | |
US20120311312A1 (en) | Fast Boot Via State Recreation | |
US9910677B2 (en) | Operating environment switching between a primary and a secondary operating system | |
US10592425B2 (en) | Virtualizing NVDIMM WPQ flushing with minimal overhead | |
KR100994723B1 (ko) | 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체 | |
US9904559B2 (en) | Information processing apparatus and activation method therefor for processing data of a hibernation image | |
US11675600B2 (en) | Computing method and apparatus with multi-phase/level boot | |
US10430291B1 (en) | Effective method to backup VMs in larger VM infrastructure | |
CN115981795B (zh) | 一种在安卓设备上通过容器实现系统隔离的方法 | |
US10860242B1 (en) | Method for automatic instant access mount point cleanup |
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 |