CN115390985A - 虚拟化系统和防止虚拟化系统的存储器崩溃的方法 - Google Patents

虚拟化系统和防止虚拟化系统的存储器崩溃的方法 Download PDF

Info

Publication number
CN115390985A
CN115390985A CN202210547558.6A CN202210547558A CN115390985A CN 115390985 A CN115390985 A CN 115390985A CN 202210547558 A CN202210547558 A CN 202210547558A CN 115390985 A CN115390985 A CN 115390985A
Authority
CN
China
Prior art keywords
memory
direct
guest operating
operating system
stage
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
Application number
CN202210547558.6A
Other languages
English (en)
Inventor
李沅键
李智勳
金俊
李一镐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN115390985A publication Critical patent/CN115390985A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45554Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

提供了一种虚拟化系统和防止虚拟化系统的存储器崩溃的方法。所述虚拟化系统包括:存储器装置;处理器,被配置为提供虚拟化环境;直接存储器存取装置,被配置为执行对存储器装置的直接存储器访问的功能;和存储器管理电路,被配置为管理处理器对存储器装置的核访问和直接存储器访问装置对存储器装置的直接访问。处理器还被配置为提供:多个客户操作系统,在虚拟化环境的多个虚拟机上彼此独立地运行;和管理程序,被配置为:控制虚拟化环境中的所述多个虚拟机,并且当所述多个客户操作系统中的控制直接存储器访问装置的目标客户操作系统被重启时,控制存储器管理电路阻止直接访问。

Description

虚拟化系统和防止虚拟化系统的存储器崩溃的方法
本申请要求于2021年5月20日在韩国知识产权局提交的第10-2021-0064861号韩国专利申请的优先权,该韩国专利申请的公开通过引用全部包括于此。
技术领域
与示例实施例一致的方法、设备和系统总体涉及半导体集成电路,并且更具体地,涉及虚拟化系统和防止虚拟化系统的存储器崩溃的方法。
背景技术
虚拟化指示使得各种操作系统可以通过将物理装置的硬件表示为虚拟化硬件而在一个物理装置上运行的技术。不同的操作系统可以在由应用了虚拟化的处理器提供的虚拟化环境下彼此独立地运行。虚拟化可以提供诸如隔离、高可用性、工作负载平衡、沙箱化等优点。
具有各种功能的知识产权(IP)(即,功能电路系统或块)可以被包括在虚拟化系统中或由虚拟化系统实现。一些IP能够执行对存储器装置的直接访问(或称为直接存取,direct access)的功能,并且具有直接访问的功能的IP可以被称为直接存储器访问装置(或称为直接存储器存取装置,direct memory access device)。直接存储器访问装置可以将数据传送到存储器装置和/或从存储器装置传送数据而不通过处理器(例如,中央处理器(CPU)),但也会引起导致存储器崩溃的问题。
发明内容
一些示例实施例可以提供能够有效防止存储器崩溃的虚拟化系统和相关联的方法。
根据示例实施例,一种虚拟化系统包括:存储器装置;处理器,被配置为提供虚拟化环境;直接存储器访问装置,被配置为执行对存储器装置的直接存储器访问的功能;和存储器管理电路,被配置为管理处理器对存储器装置的核访问和直接存储器访问装置对存储器装置的直接访问。处理器还被配置为提供:多个客户操作系统,在虚拟化环境的多个虚拟机上彼此独立地运行;和管理程序,被配置为控制虚拟化环境下的所述多个虚拟机,并且当所述多个客户操作系统之中的控制直接存储器访问装置的目标客户操作系统被重启时,控制存储器管理电路阻止直接访问。
根据示例实施例,一种防止虚拟化系统的存储器崩溃的方法包括:监视多个客户操作系统;基于监视的监视结果,重启所述多个客户操作系统之中的控制直接存储器访问装置的目标客户操作系统;当目标客户操作系统被重启时,控制管理程序提供控制信号;和基于控制信号来控制存储器管理电路阻止直接存储器访问装置直接访问存储器装置。
根据示例实施例,一种虚拟化系统包括:存储器装置;处理器,被配置为提供虚拟化环境;直接存储器访问装置,被配置为执行对存储器装置的直接存储器访问的功能;和存储器管理电路,包括核存储器管理单元和直接存储器管理单元,其中,核存储器管理单元被配置为管理处理器对存储器装置的核访问,直接存储器管理单元被配置为管理直接存储器访问装置对存储器装置的直接访问。处理器还被配置为提供:多个客户操作系统,在虚拟化环境的多个虚拟机上彼此独立地运行;和管理程序,被配置为控制虚拟化环境下的多个虚拟机。核存储器管理单元和直接存储器管理单元中的每个被配置为执行第一阶段地址转换和第二阶段地址转换,第一阶段地址转换用于将所述多个客户操作系统的虚拟地址转换为中间物理地址,第二阶段地址转换用于将中间物理地址转换为存储器装置的物理地址,并且管理程序被配置为当所述多个客户操作系统之中的控制直接存储器访问装置的目标客户操作系统被重启时,控制存储器管理电路阻止直接存储器管理单元的第二阶段地址转换。
通过当控制直接存储器访问装置的目标客户操作系统被重启时控制存储器管理电路提供时间隔离,根据示例实施例的虚拟化系统和防止虚拟化系统的存储器崩溃的方法可以快速阻止直接访问并有效防止存储器崩溃。
附图说明
根据以下结合附图的描述,将更清楚地理解上面和其他方面、特征和优点。
图1是示出根据示例实施例的虚拟化系统的框图。
图2是示出根据示例实施例的防止虚拟化系统的存储器崩溃的方法的流程图。
图3是示出根据示例实施例的虚拟化系统的框图。
图4、图5和图6是示出根据示例实施例的虚拟化系统的虚拟化环境的分层结构的示例实施例的示图。
图7和图8是示出根据示例实施例的虚拟化系统的两阶段地址转换的示图。
图9是示出根据示例实施例的虚拟化系统的框图。
图10和图11是示出当客户操作系统被重启时发生的存储器崩溃的示图。
图12和图13是示出根据示例实施例的防止虚拟化系统的存储器崩溃的方法的示图。
图14是示出根据示例实施例的虚拟化系统的框图。
图15是示出在图14的虚拟化系统中阻止直接访问的示例实施例的示图。
图16是示出根据示例实施例的虚拟化系统的框图。
图17是示出防止图16的虚拟化系统的存储器崩溃的方法的示图。
图18是示出根据示例实施例的虚拟化系统的框图。
图19是示出根据示例实施例的自主驾驶装置的框图。
具体实施方式
在下文中,将参照附图更全面地描述各种示例实施例。在附图中,相同的附图标记始终表示相同的元件。可以省略重复的描述。
图1是示出根据示例实施例的虚拟化系统的框图,图2是示出根据示例实施例的防止虚拟化系统的存储器崩溃的方法的流程图。
参照图1,虚拟化系统10可以包括处理器PRC 100(例如,CPU)、直接存储器访问装置DMAIP 200、存储器管理电路300和存储器装置400。
存储器装置400可以存储数据和程序代码。软件程序代码(诸如,管理程序(hypervisor)HPVS、客户操作系统(guest operating system)GOS1和GOS2等)可以被加载在存储器装置400中,并且加载的软件程序代码可以由处理器100执行。
例如,当虚拟化系统10被启动时,存储在非易失性存储器装置中的软件程序代码可以根据启动序列(booting sequence)被加载在存储器装置400中,并且处理器100可以基于加载的软件程序代码提供虚拟化环境。照此,存储器装置400可充当虚拟化系统10的工作存储器。
存储器装置400可以用易失性存储器(诸如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)来实现,但是示例实施例不限于此。存储器装置400可以用另一类型的易失性存储器或非易失性存储器来实现。
直接存储器访问装置200可以能够执行对存储器装置400的直接存储器访问的功能。例如,直接存储器访问装置200可以是相机、图形处理器(GPU)、神经处理器(NPU)、外围组件互连快速(PCIe)装置、通用闪存(UFS)装置等。为了便于示出和描述,图1示出一个直接存储器访问装置,并且示例实施例不限于此。虚拟化系统可以包括具有各种功能的多个知识产权(即,虚拟化电路),并且两个或更多个知识产权可以能够执行直接存储器访问的功能。
直接存储器访问指示将数据从一个存储器装置直接传送到另一存储器装置或直接在存储器装置与输入-输出装置之间传送数据而不通过处理器100的方案,该方案可以由虚拟化系统10的内部总线支持。
直接存储器访问的模式可以包括突发模式(burst mode)和周期挪用模式(cyclesteal mode),在突发模式下,直接存储器访问装置200从处理器100挪用对内部总线的控制以一次传送全部数据,在周期挪用模式下,直接存储器访问装置200访问存储器装置400,而处理器100不访问存储器装置400。在没有处理器100的干预的情况下执行直接存储器访问。因为处理器100可以在直接存储器访问被执行的同时进行操作,因此,虚拟化系统10的性能可以被提高。
存储器管理电路300可以管理处理器100对存储器装置400的核访问(或称为核存取、核接入,core access)和直接存储器访问装置200对存储器装置400的直接访问。核访问和直接访问可以包括用于从存储器装置400读取数据的读取操作和用于将数据存储到存储器装置400的写入操作。可以基于由处理器100发出的核访问请求CREQ来执行核访问,并且可以基于由直接存储器访问装置200发出的直接访问请求DREQ来执行直接访问。
核访问请求CREQ和直接访问请求DREQ中的每个可以包括用于读取操作或写入操作的虚拟地址VA。存储器管理电路300可以执行地址转换,以提供映射到虚拟地址VA的物理地址PA。虚拟地址VA指示客户操作系统GOS1和GOS2的虚拟地址空间中的位置,物理地址PA指示存储器装置400的存储器区域的真实物理位置。下面将参照图7和图8描述地址转换的示例实施例。
处理器100可以提供虚拟化环境和管理程序HPVS,并且多个客户操作系统GOS1和GOS2可以在管理程序HPVS的控制下在虚拟化环境上运行。为了便于示出和描述,图1示出两个客户操作系统(也就是说,第一客户操作系统GOS1和第二客户操作系统GOS2),并且示例实施例不限于此。可以根据虚拟化环境不同地确定由管理程序HPVS控制的客户操作系统的数量。
为了便于示出,图1示出管理程序HPVS和多个客户操作系统GOS1和GOS2被包括在处理器100中。如上所述,管理程序HPVS和多个客户操作系统GOS1和GOS2可以作为软件程序代码被加载在存储器装置400中,并且可以由处理器100执行。
多个客户操作系统GOS1和GOS2可以在虚拟化环境的多个虚拟机上彼此独立地运行,并且管理程序HPVS可以控制虚拟化环境下的多个虚拟机。下面将参照图3描述虚拟化环境。
参照图1和图2,虚拟化系统10可以监视多个客户操作系统GOS1和GOS2的运行(S100)。虚拟化系统10可以基于多个客户操作系统GOS1和GOS2的运行的监视结果,重启多个客户操作系统GOS1和GOS2之中的控制直接存储器访问装置200的目标客户操作系统GOSt(S200)。
当目标客户操作系统被重启时,虚拟化系统10可以基于管理程序HPVS的控制来控制存储器管理电路300阻止直接存储器访问装置200对存储器装置400的直接访问(S300)。
图1示出第二客户操作系统GOS2对应于目标客户操作系统的示例。第二客户操作系统GOS2可以包括装置驱动程序(device driver)DRV,并且第二客户操作系统GOS2可以通过装置驱动程序DRV控制直接存储器访问装置200。装置驱动程序DRV可以生成用于控制直接存储器访问装置200的控制信号CTRLDR。在这种情况下,当对应于目标客户操作系统的第二客户操作系统GOS2被重启时,管理程序HPVS可以控制存储器管理电路300阻止直接存储器访问装置200对存储器装置400的直接访问。管理程序HPVS可以生成用于控制存储器管理电路300的控制信号CTRLHV。
通常,当操作系统在非虚拟化环境下被重启时,整个系统被断电,然后再被通电。在重启序列期间,与处理器进行操作的直接存储器访问装置停止操作并被重置为硬件初始化状态。
相比之下,在虚拟化环境下,整个系统必须能够保持操作,使得即使一个客户操作系统被重启,剩余客户操作系统也可以继续运行。与处理器进行操作的知识产权必须执行由处理器或外部装置指示的操作,直到软件操作停止或初始化处理被执行。
在知识产权之中,即使控制直接存储器访问装置200的目标客户操作系统GOS2被重启,直接存储器访问装置200也能够发出用于访问存储器装置400的直接访问请求或事务。这样的存储器访问可能覆写其他客户操作系统的存储器区域或读取错误数据,从而导致虚拟化系统10的操作错误。当控制直接存储器访问装置的目标客户操作系统的突然重置被触发时,那些问题可能发生在包括直接存储器访问装置的虚拟化系统的所有虚拟化环境中。在本公开中,目标客户操作系统的突然重置指示在直接存储器访问装置完成操作之前目标客户操作系统被重启。
根据示例实施例,当控制直接存储器访问装置200的目标客户操作系统被重启时,管理程序HPVS可控制存储器管理电路300阻止直接存储器访问装置200对存储器装置400的直接访问。
在一些示例实施例中,当目标客户操作系统被重启时,存储器管理电路300可以基于管理程序HPVS的控制通过阻止直接地址转换来阻止直接访问,其中,直接地址转换用于将由直接存储器访问装置200发出的直接访问请求DREQ的虚拟地址VA转换为存储器装置400的物理地址PA。相比之下,存储器管理电路300可以继续执行核地址转换以提供核访问,而不管目标客户操作系统的状态如何,其中,核地址转换用于将由处理器100发出的核访问请求CREQ的虚拟地址VA转换为存储器装置400的物理地址PA。
在一些示例实施例中,当目标客户操作系统被重启时,存储器管理电路300可以基于管理程序HPVS的控制通过使转换表的映射条目之中的与目标客户操作系统相关的映射条目无效来阻止直接访问。下面将参照图15描述映射条目的无效。
照此,通过当控制直接存储器访问装置200的目标客户操作系统被重启时控制存储器管理电路300提供直接存储器访问装置DMAIP的时间隔离,根据示例实施例的虚拟化系统10和防止虚拟化系统10的存储器崩溃的方法可以快速阻止直接访问并且有效防止存储器崩溃。
图3是示出根据示例实施例的虚拟化系统的框图。
参照图3,虚拟化系统500可以包括系统硬件510和在由系统硬件510提供的虚拟化环境上运行的软件。软件可以包括管理程序520和多个虚拟机VM1 530、VM2 540和VM3 550。为了便于示出,图3示出三个虚拟机530、540和550,并且安装在管理程序520上的虚拟机的数量可以不同地被确定。
系统硬件510可以包括中央处理器CPU、存储器装置MEM、存储装置STR、存储器管理电路MMC、一个或多个知识产权IP。中央处理器CPU可以是单个处理器或者包括多个处理器核。当中央处理器CPU包括多个处理器核时,处理器核中的一个可以对应于图1中的提供虚拟化环境的处理器100。
虚拟机530、540和550可以具有用于执行各个功能的各种配置。在下文中,描述一个虚拟机530作为示例。如图3中所示,虚拟机530可以包括虚拟硬件、客户操作系统GOS1和应用APP。
虚拟硬件可以对应于在虚拟机530中被模拟为软件的物理组件。换言之,虚拟化系统500的相应物理组件可以被虚拟化为虚拟硬件。虚拟硬件可以包括模拟系统硬件510中的全部物理组件之中的分配给虚拟机530的物理组件的虚拟组件。例如,虚拟硬件可以包括模拟中央处理器CPU的虚拟处理器、模拟存储器装置MEM的虚拟存储器装置、模拟IP的虚拟IP等。
例如,客户操作系统GOS1可以包括虚拟存储器管理单元vGMMU、装置驱动程序GDRV、状态监视器SMON等。
虚拟存储器管理单元vGMMU可以将客户操作系统GOS1的虚拟地址空间分配给在客户操作系统GOS1上运行的应用APP。虚拟存储器管理单元vGMMU可以管理虚拟地址空间中的虚拟地址与包括在虚拟硬件中的虚拟存储器装置的中间物理地址之间的映射。
装置驱动程序GDRV可以经由包括在虚拟硬件中的虚拟IP来控制包括在系统硬件510中的IP。
状态监视器SMON可以通过监视虚拟机530和/或客户操作系统GOS1来提供状态信息。例如,状态监视器SMON可以在虚拟机530正常操作时周期性地提供状态信息。在这种情况下,当状态信息在预定时间间隔内未被提供时,管理程序520可以确定重启客户操作系统GOS1。
管理程序520可以生成、调度和管理多个虚拟机530、540和550。管理程序520可以提供多个虚拟机530、540和550与系统硬件510之间的接口,并且管理与多个虚拟机530、540和550相关联的指令的执行和数据传送。管理程序520可以被称为虚拟机监视器或虚拟机管理器。
例如,管理程序520可以包括中断处理程序(interrupt handler)INTHD、虚拟存储器管理单元vHMMU、装置驱动程序HDRV、装置模拟器(device emulator)DEML等。
虚拟存储器管理单元vHMMU可以将存储器装置400的多个客户存储器区域分配给多个虚拟机530、540和550或多个客户操作系统。虚拟存储器管理单元vHMMU可以管理多个虚拟机530、540和550中的虚拟存储器装置的中间物理地址与存储器装置MEM的物理地址之间的映射。
装置驱动程序HDRV可以直接控制包括在系统硬件510中的IP。系统硬件510中的每个IP可以由包括在客户操作系统GOS1中的装置驱动程序GDRV和/或包括在管理程序520中的装置驱动程序HDRV控制。
中断处理程序INTHD可以基于来自虚拟机530、540和550的信息和/或来自系统硬件510的信息来控制虚拟化系统500的异常操作。例如,中断处理程序INTHD可以确定分别包括在虚拟机530、540和550中的客户操作系统的重启。
装置模拟器DEML可以将物理组件分别分配给虚拟机530、540和550,并且通过模拟分配的物理组件来建立和管理虚拟硬件。
图4、图5和图6是示出根据示例实施例的虚拟化系统的虚拟化环境的分层结构的示例实施例的示图。
参照图4、图5和图6,虚拟化环境可以包括多个客户操作系统GOS1、GOS2和GOS3以及在多个客户操作系统GOS1、GOS2和GOS3上运行的应用。例如,应用APP11和APP12可以在第一客户操作系统GOS1上运行,应用APP21和APP22可以在第二客户操作系统GOS2上运行,应用APP31和APP32可以在第三客户操作系统GOS3上运行。可以不同地确定客户操作系统的数量和在每个客户操作系统上运行的应用的数量。
管理程序HPVS可以主要被分为第一类型和第二类型。图3示出第一类型的管理程序HPVS,图4和图5示出第二类型的管理程序HPVS。第一类型的管理程序HPVS可以被称为独立管理程序(standalone hypervisor),第二类型的管理程序HPVS可以被称为托管管理程序(hosted hypervisor)。代表性开源管理程序包括第一类型的Xen和第二类型的KVM。
参照图4,第一类型的管理程序HPVS可以在系统硬件SYSHW上运行,并且具有关于系统硬件SYSHW的完全控制。在这种情况下,主机操作系统不存在于虚拟化分层结构中,并且客户操作系统GOS1、GOS2和GOS3中的一个可以执行主机操作系统的功能。应用可以在第一类型的管理程序HPVS上运行。
第二类型的管理程序HPVS可以如图5中所示在主机操作系统HOS上运行,或者可以如图6中所示被包括在主机操作系统HOS中。在这种情况下,主机操作系统HOS具有关于系统硬件SYSHW的完全控制。主机操作系统HOS可以在系统硬件SYSHW上运行,并且应用可以在主机操作系统HOS上运行。
在本公开中,示例实施例基于第一类型的管理程序HPVS被描述,但是示例实施例不限于此。示例实施例可以应用于包括第二类型或其他类型的管理程序HPVS的任何虚拟化系统。
图7和图8是示出根据示例实施例的虚拟化系统的两阶段地址转换的示图。
参照图7和图8,两阶段地址转换可以包括第一阶段地址转换和第二阶段地址转换,第一阶段地址转换用于将多个客户操作系统的虚拟地址VA转换为虚拟机中的虚拟存储器装置的中间物理地址IPA,第二阶段地址转换用于将中间物理地址IPA转换为存储器装置的物理地址PA。
虚拟地址VA指示虚拟地址空间SVA中的位置,中间物理地址IPA指示中间地址空间SIPA中的位置,物理地址PA指示存储器装置的存储器区域的真实物理位置(例如,物理地址空间SPA中的位置)。
如参照图3所述,客户操作系统GOS1和GOS2中的每个可以包括虚拟存储器管理单元vGMMU。虚拟存储器管理单元vGMMU可以管理“分别对应于客户操作系统GOS1和GOS2的客户虚拟地址空间SVA1和SVA2的虚拟地址VA”与“分别对应于客户操作系统GOS1和GOS2的客户中间物理地址空间SIPA1和SIPA2的中间物理地址IPA”之间的映射。
由虚拟存储器管理单元vGMMU管理的映射信息可以被存储在第一阶段转换表TTAB1中,并且第一阶段转换表TTAB1可以被参照以访问存储器装置。
为了便于示出,图7示出客户虚拟地址空间SVA1和SVA2在空间上分离,并且客户中间物理地址空间SIPA1和SIPA2在空间上分离。因为客户操作系统GOS1和GOS2彼此独立地运行,所以地址空间的叠加可以不被考虑。
另外,如参照图3所述,管理程序HPVS可以包括虚拟存储器管理单元vHMMU。虚拟存储器管理单元vHMMU可以将存储器装置的客户存储器区域MR1和MR2分别分配给客户操作系统GOS1和GOS2。客户存储器区域MR1和MR2必须被分配为在空间上彼此分离。
第一客户操作系统GOS1可以仅访问第一客户存储器区域MR1,并且第二客户操作系统GOS2可以仅访问第二客户存储器区域MR2。例如,第一客户操作系统GOS1不能够访问第二客户存储器区域MR2,并且第二客户操作系统GOS2不能够访问第一客户存储器区域MR1。因此,管理程序HPVS可以提供空间隔离,以防止多个客户操作系统GOS1和GOS2之间的存储器崩溃。
虚拟存储器管理单元vHMMU可以管理客户中间物理地址空间SIPA1和SIPA2的中间物理地址IPA与分配的客户存储器区域MR1和MR2的物理地址PA之间的映射。
由虚拟存储器管理单元vHMMU管理的映射信息可以被存储在第二阶段转换表TTAB2中,并且第二阶段转换表TTAB2可以被参照以访问存储器装置。
照此,管理程序HPVS可以提供多个客户操作系统GOS1和GOS2之间的空间隔离。
通常,管理程序HPVS可以通过经由多个客户操作系统GOS1和GOS2监视存储器使用的状态来自适应地分配客户存储器区域。直接存储器访问装置200具有即使控制直接存储器访问装置的目标客户操作系统被重启也发出用于访问存储器装置的直接访问请求或事务的功能。这样的存储器访问可能覆写其他客户操作系统的存储器区域或读取错误数据,从而导致虚拟化系统的操作错误。
如上所述,根据示例实施例,当控制直接存储器访问装置的目标客户操作系统被重启时,管理程序HPVS可以控制存储器管理电路阻止直接存储器访问装置对存储器装置的直接访问。
随着存储器装置的存储器容量增加,地址映射信息的数据量或大小增加。因此,将地址映射信息存储在处理器中可能不是高效的。可以实现如图8中所示的硬件配置,以提高用于访问操作的地址转换的效率。
参照图8,包括地址映射信息的第一阶段转换表TTAB1和第二阶段转换表TTAB2可以被存储在存储器装置中。存储在存储器装置中的第一阶段转换表TTAB1和第二阶段转换表TTAB2可以在访问操作期间被参照用于地址转换。
为了提高地址转换的速度和效率,虚拟化系统可以包括实现为如图8中所示的硬件的存储器管理单元MMU1和MMU2。存储器管理单元MMU1和MMU2可以被包括在图1中的存储器管理电路300中。
第一存储器管理单元MMU1可基于第一阶段转换表TTAB1的地址映射信息,执行用于将用于关于存储器装置的访问操作的虚拟地址VA转换为中间物理地址IPA的第一阶段地址转换。
第二存储器管理单元MMU2可以基于第二阶段转换表TTAB2的地址映射信息,执行用于将从第一存储器管理单元MMU1传送的中间物理地址IPA转换为存储器装置的物理地址PA的第二阶段地址转换。
第一存储器管理单元MMU1和/或第二存储器管理单元MMU2可以包括用于进一步提高地址转换的速度和效率的转换后备缓冲器(translation look aside BUFFer,TLB)。TLB可以存储最近和/或频繁参照的地址映射信息。
图9是示出根据示例实施例的虚拟化系统的框图。
参照图9,虚拟化系统11可以包括处理器PRC 101(例如,CPU)、直接存储器访问装置DMAIP 201、存储器管理电路301和存储器装置400。图9的虚拟化系统11类似于图1的虚拟化系统10,并且重复的描述被省略。
存储器管理电路301可以包括第一阶段核存储器管理单元CMMU1、第二阶段核存储器管理单元CMMU2、第一阶段直接存储器管理单元DMMU1和第二阶段直接存储器管理单元DMMU2。
第一阶段核存储器管理单元CMMU1可执行用于将由处理器101发出的核访问请求CREQ的虚拟地址VA转换为中间物理地址IPA的第一阶段核地址转换。第二阶段核存储器管理单元CMMU2可以执行用于将从第一阶段核存储器管理单元CMMU1传送的中间物理地址IPA转换为存储器装置400的物理地址PA的第二阶段核地址转换。
第一阶段直接存储器管理单元DMMU1可以执行用于将由直接存储器访问装置201发出的直接访问请求DREQ的虚拟地址VA转换为中间物理地址IPA的第一阶段直接地址转换。第二阶段直接存储器管理单元DMMU2可以执行将从第一阶段直接存储器管理单元DMMU1传送的中间物理地址IPA转换为存储器装置400的物理地址PA的第二阶段直接地址转换。
照此,存储器管理电路301的第一阶段核存储器管理单元CMMU1和第一阶段直接存储器管理单元DMMU1可以执行用于将多个客户操作系统GOS1和GOS2的虚拟地址VA转换为中间物理地址IPA的第一阶段地址转换,存储器管理电路301的第二阶段核存储器管理单元CMMU2和第二阶段直接存储器管理单元DMMU2可以执行用于将中间物理地址IPA转换为存储器装置400的物理地址PA的第二阶段地址转换。
图9示出第二客户操作系统GOS2对应于目标客户操作系统的示例。第二客户操作系统GOS2可以包括被配置为控制直接存储器访问装置201的装置驱动程序DRV,并且第二客户操作系统GOS2可通过装置驱动程序DRV控制直接存储器访问装置201。装置驱动程序DRV可以生成用于控制直接存储器访问装置201的控制信号CTRLDR。在这种情况下,当对应于目标客户操作系统的第二客户操作系统GOS2被重启时,管理程序HPVS可以控制存储器管理电路301阻止直接存储器访问装置201对存储器装置400的直接访问。在一些示例实施例中,当第二客户操作系统GOS2被重启时,管理程序HPVS可以阻止第二阶段直接存储器管理单元DMMU2的操作。管理程序HPVS可以生成用于控制第二阶段直接存储器管理单元DMMU2的控制信号CTRLHV。
照此,当目标客户操作系统(也就是说,第二客户操作系统GOS2)被重启时,存储器管理电路301可以基于管理程序HPVS的控制通过阻止第一阶段直接地址转换和第二阶段直接地址转换之中的第二阶段直接地址转换来阻止直接访问。
相比之下,存储器管理电路301的第一阶段核存储器管理单元CMMU1和第二阶段核存储器管理单元CMMU2可以继续正常工作并执行核访问,而不管第二客户操作系统GOS2的状态如何。换言之,存储器管理电路301可以执行用于将由处理器101发出的核访问请求CREQ的虚拟地址VA转换为存储器装置400的物理地址PA的核地址转换。
图10和图11是示出当客户操作系统被重启时发生的存储器崩溃的示图。
参照图9和图10,在时间点t1,可以通过向虚拟化系统11供电来启动虚拟化系统11。虚拟化系统11的启动可以包括将用于虚拟化系统11的操作的初始设置值存储在虚拟化系统11中包括的寄存器中和将与管理程序HPVS对应的软件程序代码加载到存储器装置400。
在时间点t2,管理程序HPVS可以启动多个客户操作系统GOS,例如,管理程序HPVS可以启动第一客户操作系统GOS1和第二客户操作系统GOS2。多个客户操作系统GOS的启动可以包括将对应于多个客户操作系统GOS的软件程序代码加载到存储器装置400。
在时间点t3,对应于目标客户操作系统的第二客户操作系统GOS2可以初始化直接存储器访问装置DMAIP。直接存储器访问装置DMAIP的初始化可以包括将用于直接存储器访问装置DMAIP的操作的初始设置值存储在直接存储器访问装置DMAIP中包括的寄存器中。
在时间点t4,对应于目标客户操作系统的第二客户操作系统GOS2可以在分配给第二客户操作系统GOS2的存储器装置400的客户存储器区域中,为直接存储器访问装置DMAIP分配第一缓冲区域BUFF1。
在时间点t5,第二客户操作系统GOS2可以通过装置驱动程序DRV开始直接存储器访问装置DMAIP的操作。
在时间点t5之后,例如,由于外部因素或第二客户操作系统GOS2的内部错误,可能触发第二客户操作系统GOS2的突然重置。
在时间点t6,管理程序HPVS可以重启对应于目标客户操作系统的第二客户操作系统GOS2。
在时间点t7,当第二客户操作系统GOS2的重启完成时,第二客户操作系统GOS2可以通过装置驱动程序DRV初始化直接存储器访问装置DMAIP。
在时间点t8,对应于目标客户操作系统的第二客户操作系统GOS2可以在分配给第二客户操作系统GOS2的存储器装置400的客户存储器区域中,为直接存储器访问装置DMAIP分配第二缓冲区域BUFF2。
在时间点t9,第二客户操作系统GOS2可以通过装置驱动程序DRV重新开始直接存储器访问装置DMAIP的操作。
照此,对应于目标客户操作系统的第二客户操作系统GOS2可以在第二客户操作系统GOS2的重启完成之后,为直接存储器访问装置DMAIP分配新的缓冲区域(也就是说,第二缓冲区域BUFF2),并且装置驱动程序DRV可以在第二缓冲区域BUFF2被分配之后重新开始直接存储器访问装置DMAIP。
参照图9、图10和图11,管理程序HPVS可以在存储器装置400的物理地址空间中分配关于多个客户操作系统GOS1和GOS2的多个客户存储器区域MR1和MR2。
第一客户操作系统GOS1可以仅访问第一客户存储器区域MR1,并且第二客户操作系统GOS2可以仅访问第二客户存储器区域MR2。例如,第一客户操作系统GOS1不能够访问第二客户存储器区域MR2,并且第二客户操作系统GOS2不能够访问第一客户存储器区域MR1。照此,管理程序HPVS可以提供空间隔离,以防止多个客户操作系统GOS1和GOS2之间的存储器崩溃。
如上参照图10所述,在原始启动完成时的时间点t4,对应于目标客户操作系统的第二客户操作系统GOS2可以在分配给第二客户操作系统GOS2的第二客户存储器区域MR2中分配第一缓冲区域BUFF1。另外,在第二客户操作系统GOS2的重启完成时的时间点t8,第二客户操作系统GOS2可以在第二客户存储器区域MR2中分配新的缓冲区域(也就是说,第二缓冲区域BUFF2)。
如上所述,即使控制直接存储器访问装置DMAIP的第二客户操作系统GOS2被重启,直接存储器访问装置DMAIP也能够发出用于访问存储器装置400的直接访问请求或事务。因此,直接存储器访问装置DMAIP可以在第二客户操作系统GOS2被重启时的时间点t6与直接存储器访问装置DMAIP被初始化时的时间点t7之间,访问先前被分配的第一缓冲区域BUFF1。管理程序HPVS可以通过监测多个客户操作系统GOS1和GOS2的存储器使用状态来自适应地分配客户存储器区域。因此,当直接存储器访问装置DMAIP在时间间隔t6至t7期间访问第一缓冲区域BUFF1时,可能发生存储器崩溃。
图12和图13是示出根据示例实施例的防止虚拟化系统的存储器崩溃的方法的示图。可以省略与图10和图11重复的描述。
参照图9、图12和图13,在第二客户操作系统GOS2被重启时的时间点t6,管理程序可以如上所述阻止第二阶段直接存储器管理单元DMMU2的操作。换言之,管理程序HPVS可以通过阻止第二阶段直接存储器管理单元DMMU2的第二阶段直接地址转换来阻止直接访问。
在第二客户操作系统GOS2的重启完成时的时间点t7,第二客户操作系统GOS2可以通过装置驱动程序DRV阻止直接存储器访问装置DMAIP的操作。
因此,基于管理程序HPVS的控制,可以在时间间隔t6至t7期间阻止直接存储器访问装置DMAIP对存储器装置400的直接访问。照此,管理程序HPVS可以在时间间隔t6至t7期间提供直接存储器访问装置DMAIP的时间隔离。
照此,通过当控制直接存储器访问装置的目标客户操作系统被重启时控制存储器管理电路提供直接存储器访问装置DMAIP的时间隔离,根据示例实施例的虚拟化系统和防止虚拟化系统的存储器崩溃的方法可以快速阻止直接访问并有效防止存储器崩溃。
图14是示出根据示例实施例的虚拟化系统的框图。
参照图14,虚拟化系统12可以包括处理器PRC 102(例如,CPU)、直接存储器访问装置DMAIP 202、存储器管理电路302和存储器装置400。图14的虚拟化系统12类似于图1的虚拟化系统10和图9的虚拟化系统11,并且重复的描述省被略。
如上所述,存储器管理电路301可以包括第一阶段核存储器管理单元CMMU1、第二阶段核存储器管理单元CMMU2、第一阶段直接存储器管理单元DMMU1和第二阶段直接存储器管理单元DMMU2。
图14示出虚拟化系统的多个客户操作系统包括分别控制直接存储器访问装置的多个目标客户操作系统的示例实施例。例如,第一客户操作系统GOS1和第二客户操作系统GOS2可以对应于分别控制直接存储器访问装置202的目标客户操作系统。
第一客户操作系统GOS1可以包括第一装置驱动程序DRV1,并且第一客户操作系统GOS1可以通过第一装置驱动程序DRV1控制直接存储器访问装置202。第一装置驱动程序DRV1可生成用于控制直接存储器访问装置202的控制信号CTRLDR1。
第二客户操作系统GOS2可以包括第二装置驱动程序DRV2,并且第二客户操作系统GOS2可以通过第二装置驱动程序DRV2控制直接存储器访问装置202。第二装置驱动程序DRV2可生成用于控制直接存储器访问装置202的控制信号CTRLDR2。
在这种情况下,管理程序HPVS可以控制存储器管理电路302:阻止与多个目标客户操作系统GOS1和GOS2之中的重启的一个目标客户操作系统相关的直接访问并正常地执行与除了这一个目标客户操作系统之外的剩余目标客户操作系统相关的直接访问。在一些示例实施例中,管理程序HPVS可以控制存储器管理电路302的第二阶段直接存储器管理单元DMMU2。管理程序HPVS可以生成用于控制第二阶段直接存储器管理单元DMMU2的控制信号CTRLHV。控制信号CTRLHV可以包括指示被重启的目标客户操作系统的虚拟机标识符VMIDt。
图15是示出在图14的虚拟化系统中阻止直接访问的示例实施例的示图。
图15示出用于第二阶段直接存储器管理单元DMMU2的第二阶段直接地址转换的第二阶段转换表TTAB2。
参照图15,第二阶段转换表TTAB2可以包括多个映射条目MENT1至MENT5。每个映射条目可以包括中间物理地址IPA、映射到中间物理地址IPA的物理地址PA和诸如指示相关联的客户操作系统的虚拟机标识符VMID的属性。在图15中,虚拟机标识符VMID的值“1”可以指示映射条目与第一客户操作系统GOS1相关联,虚拟机标识符VMID的值“2”可以指示映射条目与第二客户操作系统GOS2相关联。
例如,如图15的左侧部分中所示,第一映射条目MENT1可以指示第一客户操作系统GOS1的中间物理地址A5被映射到物理地址Ac,第二映射条目MENT2可以指示第二客户操作系统GOS2的中间物理地址A2被映射到物理地址Aa,第三映射条目MENT3可以指示第一客户操作系统GOS1的中间物理地址A3被映射到物理地址Ab,第四映射条目MENT4可以指示没有物理地址被映射到第一客户操作系统GOS1的中间物理地址A9,第五映射条目MENT5可以指示第二客户操作系统GOS2的中间物理地址A7被映射到物理地址Ad。
在一些示例实施例中,当一个目标客户操作系统被重启时,存储器管理电路302可以基于管理程序HPVS的控制通过使转换表的映射条目之中的与这一个目标客户操作系统相关的映射条目无效来阻止与这一个目标客户操作系统相关的直接访问。
如上参照图14所述,从管理程序HPVS提供的控制信号CTRLHV可以包括指示被重启的目标客户操作系统的虚拟机标识符VMIDt。第二阶段直接存储器管理单元DMMU2可以使对应于虚拟机标识符VMIDt的映射条目无效。图15示出第二客户操作系统GOS2被重启的示例。
如图15的右侧部分中所示,当第二客户操作系统GOS2被重启时,第二阶段直接存储器管理单元DMMU2可以使对应于被重启的第二客户操作系统GOS2的第二映射条目MENT2和第五映射条目MENT5无效。
在一些示例实施例中,可以如图15中所示通过删除映射到中间物理地址的物理地址来执行映射条目的无效,但是示例实施例不限于此。可以通过能够阻止第二阶段直接地址转换的各种方法来实现映射条目的无效。
第二阶段直接存储器管理单元DMMU2可以在没有无效的情况下保持与未被重启的第一客户操作系统GOS1相关联的第一映射条目MENT1、第三映射条目MENT3和第四映射条目MENT4。
照此,当多个目标客户操作系统存在并且一个目标客户操作系统被重启时,存储器管理电路302可以基于管理程序HPVS的控制通过使转换表的映射条目之中的与这一个目标客户操作系统相关的映射条目无效来阻止与这一个目标客户操作系统相关的直接访问。当一个目标客户操作系统被重启时,存储器管理电路302可以通过保持转换表的映射条目之中的与剩余目标客户操作系统相关的映射条目来正常执行与其他目标客户操作系统相关的直接访问。
图16是示出根据示例实施例的虚拟化系统的框图。
参照图16,虚拟化系统13可以包括处理器PRC 103(例如,CPU)、直接存储器访问装置DMAIP 203、存储器管理电路303和存储器装置400。图16的虚拟化系统13类似于图1的虚拟化系统10和虚拟化系统11,并且重复的描述被省略。
如上所述,存储器管理电路301可以包括第一阶段核存储器管理单元CMMU1、第二阶段核存储器管理单元CMMU2、第一阶段直接存储器管理单元DMMU1和第二阶段直接存储器管理单元DMMU2。
图16示出管理程序HPVS包括被配置为控制直接存储器访问装置203的装置驱动程序DRV的示例实施例。第一客户操作系统GOS1和第二客户操作系统GOS2中的一个可以对应于控制直接存储器访问装置203的目标客户操作系统,并且目标客户操作系统可以通过包括在管理程序HPVS中的装置驱动程序DRV来控制直接存储器访问装置203。装置驱动程序DRV可生成用于控制直接存储器访问装置203的控制信号CTRLDR。
在这种情况下,当目标客户操作系统被重启时,管理程序HPVS可以控制存储器管理电路303阻止直接存储器访问装置203对存储器装置400的直接访问。在一些示例实施例中,当目标客户操作系统被重启时,管理程序HPVS可以控制存储器管理电路303的第二阶段直接存储器管理单元DMMU2。管理程序HPVS可以生成用于控制第二阶段直接存储器管理单元DMMU2的控制信号CTRLHV。控制信号CTRLHV可以包括指示被重启的目标客户操作系统的虚拟机标识符VMIDt。
图17是示出防止图16的虚拟化系统的存储器崩溃的方法的示图。可以省略与图10和图11重复的描述。
参照图16和图17,在时间点t6,管理程序可以如上所述阻止第二阶段直接存储器管理单元DMMU2的操作。换言之,管理程序HPVS可以通过阻止第二阶段直接存储器管理单元DMMU2的第二阶段直接地址转换来阻止直接访问。
另外,在目标客户操作系统的重启完成之前,管理程序可以在时间点t6通过装置驱动程序DRV阻止直接存储器访问装置203的操作。
因此,基于管理程序HPVS的控制,可以在时间间隔t6至t7期间阻止直接存储器访问装置DMAIP对存储器装置400的直接访问。因此,管理程序HPVS可以在时间间隔t6至t7期间提供直接存储器访问装置DMAIP的时间隔离。
照此,通过当控制直接存储器访问装置的目标客户操作系统被重启时控制存储器管理电路提供直接存储器访问装置DMAIP的时间隔离,根据示例实施例的虚拟化系统和防止虚拟化系统的存储器崩溃的方法可以快速阻止直接访问并有效防止存储器崩溃。
图18是示出根据示例实施例的虚拟化系统的框图。
参照图18,虚拟化系统1000可以包括片上系统(SoC)、工作存储器1130、显示装置(LCD)1152、触摸面板1154、存储装置1170、电源管理集成电路(PMIC)1200等。SoC可以包括处理器(例如,中央处理器(CPU))1110、存储器管理电路MMC 1115、DRAM控制器1120、性能控制器PFMC 1140、用户接口控制器(UI控制器)1150、存储接口1160和具有直接存储器访问功能的直接存储器访问装置DMAIP 1180、电源管理单元(PMU)1144、时钟管理单元(CMU)1146等。将理解,虚拟化系统1000的组件不限于图18中示出的组件。例如,虚拟化系统1000还可以包括用于处理图像数据的硬件编解码器、安全块等。
处理器1110执行用于虚拟化系统1000的软件(例如,应用程序、操作系统(OS)和装置驱动程序)。处理器1110可以执行可以被加载到工作存储器1130中的操作系统(OS)。处理器1110可以执行将在操作系统(OS)上驱动的各种应用程序。处理器1110可以被设置为同构多核处理器或异构多核处理器。多核处理器是包括至少两个可独立驱动的处理器(在下文中,称为“核”或“处理器核”)的计算组件。核中的每个可以独立地读取和执行程序指令。
DRAM控制器1120提供工作存储器1130与片上系统(SoC)之间的接口。DRAM控制器1120可以根据处理器1110或另一知识产权(IP)块的请求来访问工作存储器1130。
存储器管理电路1115可以管理处理器1110对工作存储器1130的核访问和直接存储器访问装置1180对工作存储器1130的直接访问。
操作系统(OS)或基础应用程序可以在启动操作期间被加载到工作存储器1130中。例如,在虚拟化系统1000的启动期间,可以基于启动序列将存储在存储装置1170中的管理程序HPVS和多个客户操作系统GOS加载到工作存储器1130中。之后,可将对应于多个客户操作系统GOS的应用APP加载在工作存储器1130中。
性能控制器1140可以根据从操作系统(OS)的内核提供的控制请求来调整片上系统(SoC)的操作参数。例如,性能控制器1140可以调整动态电压频率调整(DVFS)的水平,以提高片上系统(SoC)的性能。
用户接口控制器1150控制来自用户接口装置的用户输入和输出。例如,用户接口控制器1150可以根据处理器1110的控制,显示用于向LCD 1152输入数据的键盘屏幕。可选地,用户接口控制器1150可以控制LCD 1152显示用户请求的数据。用户接口控制器1150可以将从诸如触摸面板1154的用户输入装置提供的数据解码为用户输入数据。
存储接口1160根据处理器1110的请求来访问存储装置1170。例如,存储接口1160提供片上系统(SoC)与存储装置1170之间的接口。例如,由处理器1110处理的数据通过存储接口1160被存储在存储装置1170中。可选地,可以通过存储接口1160将存储在存储装置1170中的数据提供给处理器1110。
存储装置1170被设置为虚拟化系统1000的存储介质。存储装置1170可以存储应用程序、OS映像和各种类型的数据。存储装置1170可以被设置为存储器卡(例如,MMC、eMMC、SD、MicroSD等)。存储装置1170可以包括具有高容量存储能力的NAND型闪存。可选地,存储装置1170可以包括下一代非易失性存储器(诸如,PRAM、MRAM、ReRAM和FRAM)或NOR型闪存。
直接存储器访问装置1180可被设置为用于增加多媒体或多媒体数据的处理速度的单独知识产权(IP)组件。例如,直接存储器访问装置1180可以被设置为用于提高文本、音频、静止图像、动画、视频、二维数据或三维数据的处理性能的知识产权(IP)组件。
系统互连器1190可以是用于在片上系统(SoC)中提供片上网络的系统总线。系统互连器1190可以包括例如数据总线、地址总线和控制总线。数据总线是数据传送路径。还可以提供到工作存储器1130或存储装置1170的存储器访问路径。地址总线提供知识产权(IP)之间的地址交换路径。控制总线提供在知识产权(IP)之间传输控制信号所沿着的路径。然而,系统互连器1190的配置不限于上面的描述,并且系统互连器190还可以包括用于有效管理的仲裁装置。
根据示例实施例,当控制直接存储器访问装置1180的目标客户操作系统被重启时,管理程序HPVS可控制存储器管理电路1115阻止直接存储器访问装置1180对工作存储器1130的直接访问。
图19是示出根据示例实施例的自主驾驶装置的框图。
参照图19,自主驾驶装置3000可以包括驱动器(例如,包括电路系统)3110、传感器3120、存储设备3130、控制器(例如,包括处理电路系统)3140和通信接口3150。
驱动器3110可以例如是用于驱动自主驾驶装置3000的配置,并且可以包括各种电路系统。在自主驾驶装置3000被实现为车辆的情况下,驱动器3110可以包括各种电路系统和/或组件(诸如,以发动机/马达3111、转向单元3112、制动单元3113等为例)。
发动机/马达3111可以包括内燃机、电动机、蒸汽机车和斯特林发动机(stirlingengine)的任何组合。例如,在自主驾驶装置3000是气电混合动力汽车的情况下,发动机/马达3111可以是汽油发动机和电动机。例如,发动机/马达3111可以被配置为向自主驾驶装置3000供应能量,以在预定的驾驶路线上行驶。
转向单元3112可以是被包括以控制自主驾驶装置3000的方向的机构的任何组合。例如,当障碍物在自主驾驶装置3000正在行驶的同时被识别到时,转向单元3112可以改变自主驾驶装置3000的方向。在自主驾驶装置3000是车辆的情况下,转向单元3112可以被配置为顺时针或逆时针转动方向盘,并相应地改变自主驾驶装置3000的行进的方向。
制动单元3113可以是被包括以使自主驾驶装置3000减速的机构的任何组合。例如,制动单元可以使用摩擦或感应来降低车轮/轮胎的速度。当障碍物在自主驾驶装置3000正在行驶的同时被识别到时,制动单元3113可以被配置为使自主驾驶装置3000减速或减慢。
驱动器3110可以是在地面上行驶或行进的装置,但是示例实施例不限于此。驱动器3110可以包括飞行推进单元、螺旋桨、机翼等,并且可以包括根据发明构思的各种实施例的各种船舶推进装置。
传感器3120可以包括被配置为感测与自主驾驶装置3000的周围环境相关的信息的多个传感器。例如,传感器3120可以包括图像传感器3121、深度相机3122、激光雷达(LIDAR)单元3123、雷达(RADAR)单元3124、红外传感器3125、全球定位系统(GPS)3126、磁传感器3127和/或加速度计传感器3128中的至少一个。
图像传感器3121可以被配置为捕获位于自主驾驶装置3000外部的外部对象的图像或与位于自主驾驶装置3000外部的外部对象相关的其他数据。与外部装置相关的捕获的图像或其他数据可以用作用于改变自主驾驶装置3000的速度和方向中的至少一个的数据。图像传感器3121可以包括各种类型的传感器(诸如,电荷耦合器件(CCD)和互补金属氧化物半导体(CMOS))。另外,深度相机3122可以获取用于确定自主驾驶装置3000与外部对象之间的距离的深度。
LIDAR单元3123、RADAR单元3124和红外传感器3125可以各自包括被配置为输出特定信号并感测自主驾驶装置3000所在的环境中的外部对象的传感器。例如,LIDAR单元3123可以包括被配置为辐射激光的激光光源和/或激光扫描仪以及被配置为检测激光的反射的检测器。RADAR单元3124可以是被配置为使用无线信号感测自主驾驶装置3000所在的环境中的对象的传感器。另外,RADAR单元3124可以被配置为感测对象的速度和/或方向。红外传感器3125可以是被配置为使用红外区域的波长的光感测自主驾驶装置3000所在的环境中的外部对象的传感器。
GPS 3126、磁传感器3127和加速度计传感器3128可以各自包括被配置为获取与自主驾驶装置3000的速度、方向、位置等相关的信息的传感器。例如,与自主驾驶装置3000的当前状态相关的信息可以被获取,并且与外部对象碰撞的可能性等可以被识别和/或估计。GPS 3126可以被配置为通过与卫星通信的信号将自主驾驶装置3000的位置识别为纬度、经度和高度数据,并且磁传感器3127和加速度计传感器3128可以被配置为根据自主驾驶装置3000的动量、加速度和方向来识别自主驾驶装置3000的当前状态。
存储设备3130可以被配置为存储控制器3140执行各种处理所需的数据。例如,存储设备3130可以被实现为包括在控制器3140中的内部存储器(诸如,ROM、RAM等),并且可以被实现为与控制器3140分离的存储器。在这种情况下,存储设备3130可以以嵌入在自主驾驶装置3000中的存储器的形式实现,或者可以以根据数据存储设备的使用可从自主驾驶装置3000拆卸的存储器的形式实现。例如,用于驾驶自主驾驶装置3000的数据被存储在嵌入在自主驾驶装置3000中的存储器中,并且用于自主驾驶装置3000的扩展功能的数据可以被存储在可以与自主驾驶装置3000分离的存储器中。嵌入在自主驾驶装置3000中的存储器可以以非易失性存储器、易失性存储器、闪存、硬盘驱动器(HDD)、固态驱动器(SDD)等的形式实现,可以从自主驾驶装置3000拆卸的存储器可以以存储器卡(例如,微型SD卡、USB存储器)、可连接到USB端口的外部存储器(例如,USB存储器)等的形式实现。
通信接口3150可以包括各种通信电路系统,并且可以被配置为促进自主驾驶装置3000与外部装置之间的通信。例如,通信接口3150可以向外部装置发送自主驾驶装置3000的行驶信息并从外部装置接收自主驾驶装置3000的行驶信息。例如,通信接口3150可以被配置为通过各种通信方法(诸如,红外(IR)通信、无线保真(WI-FI)、蓝牙、ZigBee、信标、近场通信(NFC)、WAN、以太网、IEEE 1394、HDMI、USB、MHL、AES/EBU、光学、同轴等)执行通信。在一些实施例中,通信接口3150可以被配置为通过服务器传送行驶信息。
控制器3140可以包括随机存取存储器(RAM)3141、只读存储器(ROM)3142、中央处理器(CPU)3143、存储器管理电路(MMC)3144、多个知识产权(IP)3145和3146以及总线3147。RAM 3141、ROM 3142、CPU 3143和MMC 3144可以通过总线3147彼此连接。控制器3140可以实现为片上系统(SoC)。
RAM 3141可以是用于从存储设备3130读取与自主驾驶装置3000的行驶相关的各种指令等的存储器。ROM 3142可以存储用于系统启动的指令的集合。响应于开启命令被输入到自主驾驶装置3000并且电力被供应,CPU3143可以根据存储在ROM 3142中的命令将存储在存储设备3130中的O/S复制到RAM 3141中,并且通过执行O/S来启动系统。如果启动完成,则CPU3143通过将存储在存储设备3130中的各种类型的应用程序复制到RAM 3141中并执行复制到RAM 3141中的应用程序来执行各种操作。控制器3140可以使用存储在存储设备3130中的模块来执行各种操作。
IP 3145和IP 3146中的至少一个可以是具有直接存储器访问的功能的直接存储器访问装置。存储器管理电路3144可以管理CPU 3143对RAM 3141的核访问和直接存储器访问装置对RAM 3141的直接访问。
根据示例实施例,CPU 3143可以提供包括管理程序和多个客户操作系统的虚拟化环境。当多个客户操作系统之中的控制直接存储器访问装置的目标客户操作系统被重启时,管理程序可以控制存储器管理电路3144阻止直接访问。
如上所述,通过当控制直接存储器访问装置的目标客户操作系统被重启时控制存储器管理电路提供直接存储器访问装置的时间隔离,根据示例实施例的虚拟化系统和防止虚拟化系统的存储器崩溃的方法可以快速阻止直接访问并有效防止存储器崩溃。
如本领域技术人员将理解的,示例实施例可以被实现为系统、方法、计算机程序产品或体现在一个或多个计算机可读介质中的计算机程序产品,一个或多个计算机可读介质具有体现在其上的计算机可读程序代码。计算机可读程序代码可以被提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器。计算机可读介质可以是非暂时性的。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是任何有形介质,任何有形介质可以包含或存储由指令执行系统、设备或装置使用或与指令执行系统、装置或设备结合使用的程序。
示例实施例可以应用于应用了虚拟化环境的任何电子装置和系统。例如,示例实施例可以应用于系统(诸如,移动电话、智能电话、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、摄像机、个人计算机(PC)、服务器计算机、工作站、膝上型计算机、数字TV、机顶盒、便携式游戏机、导航系统、可穿戴装置、物联网(IoT)装置、万物联网(IoE)装置、电子书、虚拟现实(VR)装置、增强现实(AR)装置、服务器系统、云系统、自动驾驶系统等)。
根据示例实施例,由附图中的框表示的组件、元件、模块或单元(在本段中统称为“组件”)中的至少一个可以体现为执行上述各个功能的各种数量的硬件、软件和/或固件结构。如图1、图3、图8、图9、图11、图13、图14、图16、图18和图19中所示,这些组件可以包括例如处理器100、处理器101、处理器102、处理器103、直接存储器访问装置200、直接存储器访问装置201、直接存储器访问装置203、直接存储器访问装置203、存储器管理电路300、存储器管理电路301、存储器管理电路302、存储器管理电路303、存储器装置400、中央处理器CPU、存储器装置MEM、存储装置STR、存储器管理电路MMC、知识产权IP以及存储器管理单元MMU1和MMU2,不限于此。这些组件中的至少一个可以使用直接电路结构(诸如,存储器、处理器、逻辑电路、查找表等),直接电路结构可以通过一个或多个微处理器或其他控制设备的控制来执行各个功能。此外,这些组件中的至少一个可以由模块、程序或代码的一部分具体体现,并且由一个或多个微处理器或其他控制设备执行,模块、程序或代码的一部分包含用于执行指定逻辑功能的一个或多个可执行指令。此外,这些组件中的至少一个可以包括诸如执行各个功能的中央处理器(CPU)、微处理器等的处理器或可以由诸如执行各个功能的中央处理器(CPU)、微处理器等的处理器实现。这些组件中的两个或更多个可以被组合成执行组合的两个或更多个组件的所有操作或功能的一个单组件。此外,这些组件中的至少一个的功能的至少一部分可以由这些组件中的另一个执行。例如,IP单元可以包括执行特定功能的电路系统的块,并且可以具有包括商业秘密的设计。
还将理解,尽管在与方法或流程图相关的示例实施例中,步骤或操作被描述为晚于另一步骤或操作,但是除非另一步骤或操作被描述为该步骤或操作之后被执行,否则步骤或操作可以比另一步骤或操作更早地被执行。
虽然已经参照附图描述了示例实施例,但是对于本领域技术人员将清楚的是,在不脱离本公开的范围的情况下,可以进行修改和变化。

Claims (20)

1.一种虚拟化系统,包括:
存储器装置;
处理器,被配置为提供虚拟化环境;
直接存储器访问装置,被配置为执行对存储器装置的直接存储器访问的功能;和
存储器管理电路,被配置为管理处理器对存储器装置的核访问和直接存储器访问装置对存储器装置的直接访问,
其中,处理器还被配置为提供:
多个客户操作系统,在虚拟化环境的多个虚拟机上彼此独立地运行,和
管理程序,被配置为:控制虚拟化环境下的所述多个虚拟机,并且当所述多个客户操作系统之中的控制直接存储器访问装置的目标客户操作系统被重启时,控制存储器管理电路阻止直接访问。
2.如权利要求1所述的虚拟化系统,其中,存储器管理电路还被配置为:
通过将由直接存储器访问装置发出的直接访问请求的虚拟地址转换为存储器装置的物理地址来执行直接地址转换;并且
当目标客户操作系统被重启时,基于由管理程序提供的控制信号来阻止直接地址转换以阻止直接访问。
3.如权利要求1所述的虚拟化系统,其中,存储器管理电路还被配置为:在直接访问被阻止时,执行用于将由处理器发出的核访问请求的虚拟地址转换为存储器装置的物理地址的核地址转换。
4.如权利要求1所述的虚拟化系统,其中,存储器管理电路还被配置为:当目标客户操作系统被重启时,基于由管理程序提供的控制信号,通过使转换表的映射条目之中的与目标客户操作系统相关的映射条目无效来阻止直接访问。
5.如权利要求1所述的虚拟化系统,其中,存储器管理电路还被配置为执行第一阶段地址转换和第二阶段地址转换,第一阶段地址转换用于将所述多个客户操作系统的虚拟地址转换为中间物理地址,第二阶段地址转换用于将中间物理地址转换为存储器装置的物理地址。
6.如权利要求5所述的虚拟化系统,其中,所述多个客户操作系统被配置为控制第一阶段地址转换,管理程序被配置为控制第二阶段地址转换。
7.如权利要求5所述的虚拟化系统,其中,存储器管理电路还被配置为:当目标客户操作系统被重启时,基于由管理程序提供的控制信号通过阻止第一阶段直接地址转换和第二阶段直接地址转换之中的第二阶段直接地址转换来阻止直接访问,其中,第一阶段直接地址转换用于将由直接存储器访问装置发出的直接访问请求的虚拟地址转换为中间物理地址,第二阶段直接地址转换用于将中间物理地址转换为存储器装置的物理地址。
8.如权利要求7所述的虚拟化系统,其中,存储器管理电路还被配置为:
基于第一阶段转换表,执行第一阶段直接地址转换;
基于第二阶段转换表,执行第二阶段直接地址转换;并且
当目标客户操作系统被重启时,基于由管理程序提供的控制信号通过使第二阶段转换表的映射条目之中的与目标客户操作系统相关的映射条目无效来阻止直接访问。
9.如权利要求5所述的虚拟化系统,其中,存储器管理电路包括:
第一阶段核存储器管理器,被配置为执行用于将由处理器发出的核访问请求的虚拟地址转换为中间物理地址的第一阶段核地址转换;
第二阶段核存储器管理器,被配置为执行用于将从第一阶段核存储器管理器传送的中间物理地址转换为存储器装置的物理地址的第二阶段核地址转换;
第一阶段直接存储器管理器,被配置为执行用于将由直接存储器访问装置发出的直接访问请求的虚拟地址转换为中间物理地址的第一阶段直接地址转换;和
第二阶段直接存储器管理器,被配置为执行用于将从第一阶段直接存储器管理器传送的中间物理地址转换为存储器装置的物理地址的第二阶段直接地址转换。
10.如权利要求9所述的虚拟化系统,其中,管理程序还被配置为:当目标客户操作系统被重启时,控制第二阶段直接存储器管理器阻止第二阶段直接地址转换以阻止直接访问。
11.如权利要求1所述的虚拟化系统,其中,目标客户操作系统包括被配置为控制直接存储器访问装置的装置驱动程序,并且装置驱动程序被配置为:在目标客户操作系统的重启完成之后,初始化直接存储器访问装置。
12.如权利要求11所述的虚拟化系统,其中,目标客户操作系统被配置为:在目标客户操作系统的重启完成之后,在存储器装置的物理地址空间中分配关于直接存储器访问装置的新缓冲区域,并且
其中,装置驱动程序还被配置为:在所述新缓冲区域被分配之后,重新开始直接存储器访问装置。
13.如权利要求1所述的虚拟化系统,其中,管理程序包括被配置为控制直接存储器访问装置的装置驱动程序,并且
其中,管理程序还被配置为:在目标客户操作系统被重启时,通过装置驱动程序阻止直接存储器访问装置的操作。
14.如权利要求1所述的虚拟化系统,其中,所述多个客户操作系统分别包括多个目标客户操作系统,所述多个目标客户操作系统中的每个被配置为分别控制直接存储器访问装置。
15.如权利要求14所述的虚拟化系统,其中,管理程序还被配置为控制存储器管理电路:阻止所述多个目标客户操作系统之中的被重启的一个目标客户操作系统的直接访问,并且正常地执行除所述一个目标客户操作系统之外的剩余目标客户操作系统的直接访问。
16.如权利要求15所述的虚拟化系统,其中,存储器管理电路还被配置为:当所述一个目标客户操作系统被重启时,基于由管理程序提供的控制信号,使转换表的映射条目之中的与所述一个目标客户操作系统相关的映射条目无效,以阻止与所述一个目标客户操作系统相关的直接访问。
17.如权利要求15所述的虚拟化系统,其中,存储器管理电路还被配置为:通过保持转换表的映射条目之中的与所述剩余目标客户操作系统相关的映射条目,正常地执行与所述剩余目标客户操作系统相关的直接访问。
18.如权利要求1至17中的任一项所述的虚拟化系统,其中,管理程序还被配置为在存储器装置的物理地址空间中分配关于所述多个客户操作系统的多个客户存储器区域,并且
其中,目标客户操作系统被配置为在所述多个客户存储器区域中的关于目标客户操作系统的一个客户存储器区域中分配关于直接存储器访问装置的缓冲区域。
19.一种防止虚拟化系统的存储器崩溃的方法,所述方法包括:
监视多个客户操作系统;
基于监视的监视结果,重启所述多个客户操作系统之中的控制直接存储器访问装置的目标客户操作系统;
当目标客户操作系统被重启时,控制管理程序提供控制信号;和
基于控制信号来控制存储器管理电路阻止直接存储器访问装置直接访问存储器装置。
20.一种虚拟化系统,包括:
存储器装置;
处理器,被配置为提供虚拟化环境;
直接存储器访问装置,被配置为执行对存储器装置的直接存储器访问的功能;和
存储器管理电路,包括核存储器管理单元和直接存储器管理单元,其中,核存储器管理单元被配置为管理处理器对存储器装置的核访问,直接存储器管理单元被配置为管理直接存储器访问装置对存储器装置的直接访问,
其中,处理器还被配置为提供:
多个客户操作系统,在虚拟化环境的多个虚拟机上彼此独立地运行,和
管理程序,被配置为控制虚拟化环境下的所述多个虚拟机,
其中,核存储器管理单元和直接存储器管理单元中的每个被配置为执行第一阶段地址转换和第二阶段地址转换,第一阶段地址转换用于将所述多个客户操作系统的虚拟地址转换为中间物理地址,第二阶段地址转换用于将中间物理地址转换为存储器装置的物理地址,并且
其中,管理程序被配置为:当所述多个客户操作系统之中的控制直接存储器访问装置的目标客户操作系统被重启时,控制存储器管理电路阻止直接存储器管理单元的第二阶段地址转换。
CN202210547558.6A 2021-05-20 2022-05-18 虚拟化系统和防止虚拟化系统的存储器崩溃的方法 Pending CN115390985A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0064861 2021-05-20
KR1020210064861A KR20220157145A (ko) 2021-05-20 2021-05-20 가상화 시스템 및 가상화 시스템의 메모리 충돌 방지 방법

Publications (1)

Publication Number Publication Date
CN115390985A true CN115390985A (zh) 2022-11-25

Family

ID=80999508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210547558.6A Pending CN115390985A (zh) 2021-05-20 2022-05-18 虚拟化系统和防止虚拟化系统的存储器崩溃的方法

Country Status (4)

Country Link
US (1) US20220374254A1 (zh)
EP (1) EP4092528A1 (zh)
KR (1) KR20220157145A (zh)
CN (1) CN115390985A (zh)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631170B2 (en) * 2010-09-16 2014-01-14 Red Hat Israel, Ltd. Memory overcommit by using an emulated IOMMU in a computer system with a host IOMMU

Also Published As

Publication number Publication date
EP4092528A1 (en) 2022-11-23
US20220374254A1 (en) 2022-11-24
KR20220157145A (ko) 2022-11-29

Similar Documents

Publication Publication Date Title
US11995462B2 (en) Techniques for virtual machine transfer and resource management
US8966477B2 (en) Combined virtual graphics device
US8830228B2 (en) Techniques for enabling remote management of servers configured with graphics processors
CN102981864B (zh) 信息处理装置和信息处理方法
US9715403B2 (en) Optimized extended context management for virtual machines
US10671419B2 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
US10977191B2 (en) TLB shootdowns for low overhead
US10698713B2 (en) Virtual processor state switching virtual machine functions
US20160239325A1 (en) Virtual device timeout by memory offlining
CN113467850A (zh) 管理程序移除
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
US9058299B2 (en) Efficient copying between storage devices
KR20230087336A (ko) 가상화 시스템 및 그 구동 방법
US20220374254A1 (en) Virtualized system and method of preventing memory crash of same
US20220335109A1 (en) On-demand paging support for confidential computing
US20230185598A1 (en) Virtualized system and method of operating the same
US11675600B2 (en) Computing method and apparatus with multi-phase/level boot
US9652296B1 (en) Efficient chained post-copy virtual machine migration
EP4180936A1 (en) Virtualized system and method of controlling access to nonvolatile memory device in virtualization environment
EP4372551A1 (en) Virtual machine management method and related system, and storage medium
US20230033583A1 (en) Primary input-output queue serving host and guest operating systems concurrently
US20240220626A1 (en) Secure boot using parallelization

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