CN105980986B - 用于虚拟化计算的装置和方法 - Google Patents

用于虚拟化计算的装置和方法 Download PDF

Info

Publication number
CN105980986B
CN105980986B CN201580009456.7A CN201580009456A CN105980986B CN 105980986 B CN105980986 B CN 105980986B CN 201580009456 A CN201580009456 A CN 201580009456A CN 105980986 B CN105980986 B CN 105980986B
Authority
CN
China
Prior art keywords
cache
hypervisor
operating system
code
shared cache
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.)
Active
Application number
CN201580009456.7A
Other languages
English (en)
Other versions
CN105980986A (zh
Inventor
A.科马罗夫
A.兰格布纳
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105980986A publication Critical patent/CN105980986A/zh
Application granted granted Critical
Publication of CN105980986B publication Critical patent/CN105980986B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

描述了用于虚拟化计算的装置和方法的实施例。在实施例中,一种装置可以包括多个处理器核之一和耦合到一个或多个处理器核的高速缓存。装置还可以包括由一个或多个处理器核操作以管理装置上的虚拟机的操作的管理程序,包括选择高速缓存的部分以存储虚拟机之一或管理程序的所选数据或代码,以及锁定高速缓存的部分以防止从高速缓存逐出所选数据或代码。可以描述和/或要求保护其它实施例。

Description

用于虚拟化计算的装置和方法
相关申请
本申请要求享有2014年3月21日提交的题为“APPARATUS AND METHOD FORVIRTUALIZED COMPUTING”的美国申请14/222,416的优先权。
技术领域
本公开一般涉及计算的技术领域,并且更特别地,但不排他地,涉及用于虚拟化计算的装置和方法。
背景技术
本文提供的背景描述一般用于呈现本公开的上下文。除非在本文中以其它方式指示,否则在本章节中描述的材料不是本申请中的权利要求的现有技术,并且不通过在本章节中的包括而被承认为现有技术或现有技术的暗示。
计算机虚拟化包括计算机硬件的虚拟化。从用户的角度来看,计算机虚拟化可以提供抽象计算平台(例如虚拟机(VM))以用于在共享底层硬件的同时独立于其它程序集合或其它抽象计算平台的执行而执行程序集合。典型地,每一个VM具有可能与其它VM的操作系统相同或不同的其自身的操作系统。虚拟化可以由管理程序(hypervisor)控制,所述管理程序还被称为虚拟机监视器(VMM)。
抖动(jitter)可能发生在VM退出或VM进入时间中。当发生VM退出时,可能必须从主存储器提取管理程序的数据或代码中的一些。类似地,另一方面,当管理程序将控制返回到VM时(例如在VM进入之后),可能必须从主存储器提取VM的数据或代码中的一些。抖动的效应在多核执行场景中可能变得更加严重,其中核可以从彼此的高速缓存或共享高速缓存逐出数据或代码。当两个系统尝试在单核或多核系统上独立运行时(例如当在相同多核处理器上运行实时操作系统和通用操作系统时)抖动对于工作负载整合而言可能成为严重的问题。
附图说明
将结合附图通过以下详细描述容易地理解实施例。为了促进该描述,相同的参考标号指代相同的结构元件。通过示例的方式而不是通过限制的方式在附图的各图中图示实施例。
图1是图示了依照各种实施例的合并本公开的各方面的用于虚拟化计算的装置的示例实现方式的示意图。
图2是依照各种实施例的合并本公开的各方面的可以由示例装置实践的用于虚拟化计算的示例过程的流程图。
图3是图示了依照各种实施例的合并本公开的各方面的可以由示例装置实践的高速缓存服务质量类的示意图。
图4图示了依照各种实施例的适合用于实践所公开的实施例的示例计算设备。
图5图示了依照各种实施例的合并本公开的各方面的具有编程指令的制造品。
具体实施方式
本文描述用于虚拟化计算的装置和方法的实施例。在实施例中,装置可以包括一个或多个处理器核和耦合到一个或多个处理器核的高速缓存。以下,可以将处理器核简单地称为核。装置还可以包括由一个或多个处理器核操作以管理装置上的虚拟机的操作的管理程序,其包括选择高速缓存的部分以存储虚拟机之一或管理程序的所选数据或代码,以及锁定高速缓存的部分以防止从高速缓存逐出所选数据或代码。以下将更加全面地描述本公开的这些和其它方面。
在以下详细描述中,参照形成其部分的附图,其中相同的附图标记自始至终指定相同的部分,并且其中通过图示的方式示出可以实践的实施例。要理解的是,可以利用其它实施例并且可以在不脱离于本公开的范围的情况下做出结构或逻辑改变。因此,以下详细描述不以限制性含义来考虑,并且实施例的范围由随附权利要求及其等同物限定。
各种操作可以以最有助于理解所要求保护的主题的方式被描述为依次的多个分立动作或操作。然而,描述的次序不应当被解释为暗示这些操作必然是次序相关的。特别地,这些操作可以不以呈现的次序执行。所描述的操作可以以与所描述的实施例不同的次序执行。可以执行各种附加操作和/或可以在附加实施例中省略所描述的操作。
出于本公开的目的,短语“A和/或B”意指(A)、(B)或(A和B)。出于本公开的目的,短语“A、B和/或C”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。在本公开记载“一个”或“第一”元件或其等同物的情况下,这样的公开包括一个或多个这样的元件,其既不要求也不排除两个或更多这样的元件。另外,用于所标识的元件的序数指示符(例如第一、第二或第三)用于区分元件,并且不指示或暗示所要求的或受限数目的这样的元件,它们也不指示这样的元件的特定位置或次序,除非以其它方式具体陈述。
在描述中对一个实施例或一实施例的引用意指结合实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。描述可以使用短语“在一个实施例中”、“在一实施例中”、“在另一实施例中”、“在实施例中”、“在各种实施例中”等,其均可以是指相同或不同实施例中的一个或多个。另外,如关于本公开的实施例所使用的术语“包括”、“包含”、“具有”等是同义的。
在实施例中,术语“模块”可以是指专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的或群组)和/或存储器(共享的、专用的或群组)、组合逻辑电路和/或提供所描述的功能的其它合适组件、作为其部分或者包括以上所述。在实施例中,模块可以以固件、硬件、软件或固件、硬件和软件的任何组合来实现。在实施例中,术语“接口”可以是指与软件或计算机硬件的交互(包括软件到软件、软件到硬件和硬件到硬件交互)的点。
现在参照图1,图示了依照各种实施例的用于虚拟化计算的装置的示例实现方式。如所示,装置100可以包括在管理程序120的管理下主控(host)一个或多个虚拟机VM 130的执行的主机110。在一些实施例中,装置100可以是移动计算设备。在一些实施例中,装置100可以是静止计算设备。在一些实施例中,装置100可以是适合用于云计算的服务器。在一些实施例中,装置100可以是具有分布在各种可穿戴、移动或静止设备处的各种组件或子系统的分布式系统。
在实施例中,装置100可以适合用于硬件虚拟化或平台虚拟化,其中VM 130可以如计算机那样起作用,其中来宾(guest)操作系统(GOS)132不同于在主机110上运行的主机操作系统。管理程序120可以是虚拟机监视器,其可以创建VM 130和/或使得能够实现在主机110上运行的VM 130。在各种实施例中,管理程序120可以是计算机软件、固件或硬件的片段。管理程序120可以在具有虚拟操作平台的VM 130上呈现GOS 132并且管理VM 130的操作。在一个VM 130上执行的应用134和GOS 132可以与其它VM 130共享主机110上的底层硬件资源。
在一些实施例中,管理程序120可以使得能够实现完全虚拟化,其允许VM 130的未经修改的GOS 132在主机110上(与其它VM 130的其它GOS 132)隔离地运行。在一些实施例中,管理程序120可以直接控制主机110的硬件并且充当VM 130与底层硬件资源之间的居间者(mediator)。在一些实施例中,管理程序120可以在主机110的本机操作系统内运行,其中管理程序120作为主机110的本机操作系统与VM 130之间的软件层。
在实施例中,主机110可以包括高速缓存112和处理器114。处理器114可以是具有两个或更多独立核的多核处理器。高速缓存112可以是用于主机110的特殊高速存储机构。在一些实施例中,高速缓存112可以包括用于加速可执行指令提取的指令高速缓存。在一些实施例中,高速缓存112可以包括用于加速数据提取和存储的数据高速缓存。又在一些实施例中,高速缓存112可以包括用于加速用于可执行指令和数据二者的虚拟到物理地址转译的转译后备缓冲器(TLB)。
在实施例中,高速缓存112可以以高速缓存级别的层级来组织,例如第一级高速缓存(L1)、第二级高速缓存(L2)等,直到最后一级高速缓存(LLC)以平衡高速缓存等待时间和命中率,因为较大高速缓存具有较好命中率但是较长等待时间。在实施例中,可以将高速缓存112的全部或一些级别构建到处理器114的架构中,或者置于处理器114与主存储器之间。在实施例中,高速缓存112可以具有特定功能,诸如数据高速缓存或指令高速缓存。在实施例中,高速缓存112可以在处理器114的不同核之间共享。作为示例,每一个核可以具有其自身的指令或数据L1和共享指令/数据L2,但是指令/数据L3可以在所有核之间共享。
在实施例中,高速缓存112可以被配置成支持高速缓存服务质量(CQoS)类116。每一个核可以被分配CQoS类。各种CQoS类可以用于将对共享高速缓存的访问按优先序排列(prioritize)。在实施例中,高速缓存112可以包括CQoS类以锁定共享高速缓存中存储的数据。在实施例中,CQoS类可以包括控制共享高速缓存中的哪些路径可以用于对由核访问的存储器位置的内容进行高速缓存的位掩码。在实施例中,可以不逐出锁定在高速缓存中的数据或代码。在实施例中,管理程序120可以被配置成锁定与CQoS类相关联的高速缓存的部分,例如通过如所期望的那样设置CQoS类的位掩码。
在实施例中,管理程序120可以选择要存储和锁定在高速缓存112中的其主分派例程,诸如分派功能、调度器或中断处理机(handler)。中断处理机可以是针对根上下文和/或虚拟机上下文。在实施例中,GOS 132可以是意图服务实时应用请求的实时来宾操作系统。GOS 132可以选择要存储和锁定在高速缓存112中的其关键数据或代码,诸如分派器、中断处理代码等。在实施例中,管理程序120可以为自身授予比VM 130更高的优先级以将数据或代码存储和锁定到高速缓存112。
在实施例中,管理程序120可以包括超级调用接口(HI)122和数据124。在实施例中,管理程序120可以由处理器114操作以管理VM 130的操作,诸如选择高速缓存112的部分以存储管理程序120(例如数据124的部分)或VM 130(例如GOS 132的部分)的所选数据或代码,以及锁定高速缓存的部分以防止从高速缓存112逐出所选数据或代码。
在实施例中,超级调用接口(HI)122可以使得VM 130能够经由超级调用请求特权操作。在诸如UNIX、LINUX、Windows或MacOSX之类的许多现代操作系统中,系统调用提供用于使在不太特权的模式中执行的过程与特权(或监督员)模式中的操作系统服务同步通信的机制。超级调用提供类似的通信机制。相比于在系统内在过程空间与内核空间之间通信的系统调用,超级调用允许虚拟机与管理程序之间的通信。
在实施例中,超级调用可以是从VM 130到管理程序120的软件陷阱。作为示例,GOS132可以请求管理程序120将GOS 132或应用134的所选数据或代码锁定到高速缓存112。作为另一示例,GOS 132可以请求管理程序120从高速缓存112解锁GOS 132或应用134的所选数据或代码。在实施例中,经由超级调用接口(HI)122的超级调用可以是同步的,但是从管理程序120到VM 130的返回路径可以使用事件通道,其可以使用异步通知的队列。
在一些实施例中,GOS 132可以经由超级调用通知管理程序120关于存储器的某些区域要被锁定到高速缓存112中。超级调用可以提供来宾物理存储器地址空间中的起始地址和定为目标的存储器区域的长度。在一些实施例中,GOS 132可以经由超级调用通知管理程序120禁用某些存储器区域的高速缓存锁定,类似地通过指定来宾物理存储器地址空间中的起始地址和要解锁的定为目标的存储器区域的长度。在一些实施例中,GOS 132可以经由重置超级调用来通知管理程序120重置所有之前的高速缓存锁定请求而不指定任何特定存储器区域。
在实施例中,可以将管理程序120或VM 130的关键数据或代码锁定在高速缓存112中。可以防止锁定的数据或代码从高速缓存112的至少LLC逐出。还可以防止锁定的数据或代码从高速缓存112的L1和L2逐出。在一些实施例中,经由CQoS类116的高速缓存锁定机制可以独自在管理程序120内实施。在实施例中,VM 130可以执行各种操作系统和不同操作系统版本;因此,VM 130可以具有针对关键功能的不同性质,诸如分派器、中断处理代码等。可以例如通过管理程序120使经由CQoS类116的高速缓存锁定机制对VM 130已知,使得GOS132可以被启用以基于VM 130的操作要求和内部结构经由超级调用接口122将其关键数据或代码锁定到高速缓存112中。
在实施例中,装置100可以如图1中所描绘的不同地实现。作为示例,高速缓存112可以集成到处理器114中。在实施例中,图1中描绘的组件可以具有在图1中未示出的直接或间接连接。在实施例中,装置100的一些或全部组件可以以硬件或软件或其组合来实现,以及跨任何数目的不同设备或网络散布。
通过利用本公开增强,装置可以被配置成改进管理程序性能,包括减少抖动和最差情况等待时间。作为示例,部分或全部的分派功能或由分派功能调用以用于管理程序120中的调度的函数可以被锁定在高速缓存112中以减少访问等待时间(例如降低抖动)并且实现较高性能。作为另一示例,部分或全部的管理程序120的文本或数据可以被锁定在高速缓存112中以减少访问等待时间并且实现较高性能。
通过利用本公开增强,装置可以被配置成改进两个VM之间的分离、VM与管理程序之间的分离、VM与主机之间的分离和关于虚拟化之下的工作负载整合和高速缓存锁定的组合的实时性能。实时系统可能必须计及最差情况VM退出和VM进入等待时间和/或抖动。在实施例中,CQoS可以用于防止驻留在高速缓存中的某些路径中的数据或代码被逐出,并且管理程序可以为其来宾提供接口以将其关键数据或代码锁定在高速缓存中并且进一步防止所有来宾通过俘获从来宾操作系统到活动CQoS类的模型特定寄存器(MSR)写入来使用这些专用路径。作为示例,如果部分或全部的VM上下文信息(诸如虚拟机控制结构(VMCS)或通用寄存器)被锁定到高速缓存中则可以改进实时来宾操作系统的性能,其由于降低的访问等待时间而造成较高的性能。作为另一示例,部分或全部的VM来宾中断处理机可以被锁定在高速缓存中以类似地改进实时性能。
现在参照图2,图示了用于虚拟化计算的示例过程200的流程图。过程200可以通过处理包括硬件(例如电路、专用逻辑、可编程逻辑、微代码等)、软件(例如在处理设备上运行以执行硬件模拟的指令)或其组合的逻辑来执行。处理逻辑可以被配置用于虚拟化计算。照此,过程200可以由计算设备(例如结合图1的装置100)执行以实现本公开的一个或多个实施例。在实施例中,图2中的各种块可以以任何合适的次序(例如根据装置100的特定实施例)组合或布置以进行虚拟化计算。
在实施例中,过程可以在块210处开始,其中可以选择共享高速缓存的部分以存储由管理程序(例如由结合图1的管理程序120)管理的虚拟机的来宾操作系统或管理程序的所选数据或代码。管理程序可以通过选择未被直接数据输入和输出(DDIO)使用的一个或多个路径来选择高速缓存的部分,其可以从快速外部组件互连(PCIExpress或PCIe)设备直接写入到共享高速缓存。如结合图1所讨论的,在实施例中,管理程序可以至少部分地基于适合于锁定在高速缓存中的其主分派例程的已知或估计大小而确定所选高速缓存的大小。
接着,在块220处,可以锁定共享高速缓存的部分以防止管理程序或来宾操作系统的所选数据或代码从共享高速缓存逐出,例如被结合图1的管理程序120逐出。在实施例中,管理程序可以利用管理程序的主分派例程(诸如分派功能、调度器或中断处理机)提取到高速缓存中的所选路径中。然后,管理程序可以锁定这些所选路径以防止它们被使用在与共享高速缓存相关联的任何活动CQoS类中。在实施例中,CQoS类可以包括控制可以由核访问共享高速缓存中的哪些路径的位掩码。因此,作为锁定机制,管理程序可以设置或重置与所选路径相关联的对应位。
在实施例中,VM中的来宾操作系统可以是实时或通用操作系统。管理程序可以为其来宾操作系统提供超级调用接口,其中来宾操作系统可以请求经由超级调用接口将其关键数据或代码锁定在高速缓存中。在一些实施例中,管理程序可以授予自身比来自VM的来宾操作系统更高的优先级以将数据或代码存储到所选高速缓存的部分中。因此,如果存在结合块210选择的备用路径,管理程序可以预热这些备用路径以存储由来宾操作系统请求的数据或代码。另外,管理程序可以使用如以上描述的锁定机制禁用所有活动CQoS类中的这些路径。在一些实施例中,管理程序可以向来自特定类型的VM的特定类型的数据或代码授予较高优先级,使得例如来自实时操作系统的特定类型的数据或代码可以总是具有被锁定在高速缓存中的机会。
在实施例中,来宾操作系统可以例如经由超级调用请求管理程序释放共享高速缓存中的其数据或代码的锁定,例如通过指定来宾物理存储器地址空间中的起始地址和要解锁的定为目标的存储器区域的长度。在实施例中,来宾操作系统可以例如经由重置超级调用通知管理程序移除与来宾操作系统相关联的共享高速缓存中的所有锁定。
在实施例中,管理程序可以俘获从虚拟机到高速缓存服务质量类的直接接触。作为示例,管理程序可以俘获对活动CQoS类集合的所有MSR写入以防止来宾操作系统使用结合块210预留的CQoS类。
锁定共享高速缓存中的所选路径可以增加共享高速缓存中的可用路径的减少的数目所导致的冲突未命中。在实施例中,高速缓存着色可以用于减轻冲突未命中。高速缓存着色可以分配在高速缓存中连续的自由页以最大化由处理器高速缓存的页的总数目。
现在参照图3,其为图示了可以由依照各种实施例的示例装置实践的CQoS类的示意图。在实施例中,CQoS类可以参照图2中的块220或图1中的CQoS类116来使用。
在实施例中,CQoS可以向每一个核分配CQoS类。CQoS类可以用于将对共享高速缓存的访问按优先序排列。CQoS类还可以用于将数据或代码锁定在共享高速缓存中。在实施例中,CQoS类可以包括控制共享高速缓存中的哪些路径可以被核访问的位掩码。作为示例,CQoS类310允许路径2至11用于核访问。结合图2,CQoS类310中的若干路径可以被选择,利用数据或代码进行预热,并且被锁定。然而,在一些实施例中,CQoS类310中的路径0和1不可以被选择,因为它们用于DDIO。结果,CQoS类320表明CQoS类在锁定路径2至9之后仅允许路径10和11用于核访问,所述路径2-9的位已经从1翻转到0。关于CQoS类320,所有核不可以被允许使用共享高速缓存中的这些锁定的路径。锁定的数据或代码可以至少停留在LLC中,尽管锁定的数据或代码仍旧可以被锁定该数据或代码的相同核例如从L1和L2逐出。
图4图示了适合用于实践本公开的实施例的计算设备400的实施例。如所图示的,计算设备400可以包括系统控制逻辑420,其耦合到一个或多个处理器410、存储器430、非易失性存储器(NVM)/储存器440和一个或多个外设450。在各种实施例中,一个或多个处理器410可以包括一个或多个处理器核和高速缓存412。在实施例中,高速缓存412可以被配置成支持CQoS类416以将所存储的数据或代码锁定在高速缓存412中。高速缓存412和CQoS类416可以分别类似于结合图1的高速缓存112和CQoS类116那样起作用。
在实施例中,外设450可以包括任何合适的硬件和/或固件,诸如网络适配器、一个或多个天线、无线接口等。外设450可以包括宽范围的有线或无线接口,包括但不限于I2C总线、通用串行总线(USB)、
Figure GDA0001926488910000081
无线网络接口控制器(WNIC)等。外设450可以包括用于使计算设备400通过一个或多个网络和/或与任何其它合适的设备进行通信的接口。在各种实施例中,外设450可以包括用于使计算设备400使用近场通信(NFC)、光学通信或其它类似技术来与另一设备直接通信(例如在没有居间物的情况下)的接口。在各种实施例中,外设450可以与诸如例如宽带码分多址(WCDMA)、全球移动通信系统(GSM)、长期演进(LTE)、WiFi、
Figure GDA0001926488910000082
ZigBee等之类的无线电通信技术互操作。
在实施例中,系统控制逻辑420可以包括提供到(一个或多个)处理器410和/或与系统控制逻辑420通信的任何合适的设备或组件的任何合适的接口的任何合适的接口控制器。在实施例中,系统控制逻辑420可以包括管理程序422以管理在计算设备400上运行的一个或多个VM的操作。管理程序422可以类似于结合图1的管理程序120那样起作用。
在实施例中,系统控制逻辑420还可以与用于诸如向用户显示信息的显示器(未示出)互操作。在各种实施例中,显示器可以包括各种显示格式和形式中的一个,诸如例如液晶显示器、阴极射线管显示器、电子墨水显示器或投影显示器。在各种实施例中,显示器可以包括触摸屏。
在实施例中,系统控制逻辑420可以包括一个或多个存储器控制器(未示出)以向系统存储器430提供接口。系统存储器430可以用于加载和存储例如用于计算设备400的数据和/或指令。系统存储器430可以包括任何合适的易失性存储器,诸如例如合适的动态随机存取存储器(DRAM)。
在一些实施例中,系统控制逻辑420可以包括一个或多个输入/输出(I/O)控制器(未示出)以向NVM/储存器440和外设接口450提供接口。NVM/储存器440可以用于存储例如数据和/或指令。NVM/储存器440可以包括诸如例如闪速存储器之类的任何合适的非易失性存储器和/或可以包括诸如例如一个或多个硬盘驱动器(HDD)、一个或多个固态驱动器、一个或多个压缩盘(CD)驱动器和/或一个或多个数字多功能盘(DVD)驱动器之类的任何合适的非易失性存储设备。NVM/储存器440可以包括存储资源,所述存储资源在物理上是其上安装计算设备400或能够访问计算设备400但不一定是其一部分的设备的部分。例如,NVM/储存器440可以由计算设备400通过网络经由通信接口458来进行访问。
在实施例中,系统存储器430、NVM/储存器440和系统控制逻辑420可以特别地包括管理程序422的临时和持久副本。管理程序422可以包括指令,所述指令当由(一个或多个)处理器410中的至少一个执行时导致计算设备400执行诸如但不限于过程200的虚拟化计算。
在一些实施例中,至少一个处理器410可以与具有系统控制逻辑420和/或管理程序422的存储器封装在一起。在一些实施例中,至少一个处理器410可以与具有系统控制逻辑420和/或管理程序422的存储器封装在一起以形成系统级封装(SiP)。在一些实施例中,至少一个处理器410可以与具有系统控制逻辑420和/或管理程序422的存储器集成在相同的管芯上。在一些实施例中,至少一个处理器410可以与具有系统控制逻辑420和/或管理程序422的存储器集成在相同的管芯上以形成片上系统(SoC)。
取决于结合图1的装置100的哪些模块被计算设备400主控,处理器410、系统存储器430等的能力和/或性能特性可以变化。在各种实现方式中,计算设备400可以是利用本公开的教导增强的可穿戴计算设备、智能电话、平板电脑、移动计算设备、服务器等。在实施例中,图4中的不同模块的放置和/或它们与其它模块如何耦合可以不同于图4中所图示的那样。
图5图示了依照各种实施例的合并本公开的各方面的具有编程指令的制造品510。在各种实施例中,制造品可以用于实现本公开的各种实施例。如所示,制造品510可以包括计算机可读存储介质520,其中指令530被配置成实践此处所描述的过程中的任一个的实施例或实施例的方面。存储介质520可以表示本领域中已知的宽范围的持久性存储介质,包括但不限于闪速存储器、动态随机存取存储器、静态随机存取存储器、光盘、磁盘等。指令530可以响应于装置对指令的执行而使得装置能够执行本文所描述的各种操作。例如,依照本公开的实施例,存储介质520可以包括被配置成使装置(例如装置100)实践结合图1-4的虚拟化计算的一些或全部方面的指令530,例如管理程序120。在实施例中,计算机可读存储介质520可以包括一个或多个计算机可读非暂时性存储介质。在其它实施例中,计算机可读存储介质520可以是暂时性的,诸如编码有指令530的信号。
尽管在本文中已经出于描述的目的而图示和描述了某些实施例,但是预计实现相同目的的多种多样的可替换和/或等同实施例或实现方式可以在不脱离本公开的范围的情况下替代所示出和描述的实施例。本申请意图覆盖本文所讨论的实施例的任何适配或变型。因此,清楚地意图在于本文所描述的实施例仅由权利要求限制。
以下段落描述各种实施例的示例。
示例1是一种用于虚拟化计算的装置,其可以包括多个处理器核中的一个和耦合到一个或多个处理器核的高速缓存。装置还可以包括由一个或多个处理器核操作以管理装置上的虚拟机的操作的管理程序,其包括选择高速缓存的部分以存储虚拟机之一或管理程序的所选数据或代码,以及锁定高速缓存的部分以防止从高速缓存逐出所选数据或代码。
示例2可以包括示例1的主题,并且还可以指定管理程序包括用于虚拟机之一的来宾操作系统的接口以请求将来宾操作系统的所选数据或代码锁定到高速缓存的部分。
示例3可以包括示例2的主题,并且还可以指定来宾操作系统是实时操作系统。
示例4可以包括示例1-3中任一个的主题,并且还可以指定管理程序为自身授予比虚拟机之一更高的优先级以将数据或代码存储到高速缓存的部分。
示例5可以包括示例1-4中任一个的主题,并且还可以指定管理程序通过选择未被直接数据输入和输出使用的一个或多个路径来选择高速缓存的部分。
示例6可以包括示例1-5中任一个的主题,并且还可以指定来自管理程序的所选数据或代码包括分派功能、调度器或中断处理机中的至少一个。
示例7可以包括示例1-6中任一个的主题,并且还可以指定管理程序包括超级调用接口,其包括用于请求将虚拟机之一中的存储器的区域锁定到高速缓存中的超级调用。
示例8可以包括示例1-7中任一个的主题,并且还可以指定管理程序包括超级调用接口,其包括用于请求从高速缓存解锁虚拟机之一中的存储器的区域的超级调用。
示例9可以包括示例1-8中任一个的主题并且还可以指定高速缓存与包括控制对高速缓存的最后一级高速缓存的访问的位掩码的高速缓存服务质量类相关联。
示例10可以包括示例9的主题,并且还可以指定管理程序通过高速缓存服务质量类中的设置锁定高速缓存的部分。
示例11可以包括示例9或10的主题,并且还可以指定管理程序俘获从虚拟机之一到高速缓存服务质量类的直接接触。
示例12是一种用于虚拟化计算的方法,其可以包括由计算系统的管理程序选择共享高速缓存的部分以存储管理程序或在管理程序的管理之下在计算机系统上操作的虚拟机的所选数据或代码;以及由管理程序锁定共享高速缓存的部分以防止从共享高速缓存逐出管理程序或虚拟机的所选数据或代码。
示例13可以包括示例12的主题,并且还可以包括由管理程序从虚拟机的来宾操作系统接收将来宾操作系统的所选数据或代码锁定到共享高速缓存的部分的请求。
示例14可以包括示例13的主题,并且还可以指定接收包括通过超级调用接口接收超级调用,所述超级调用请求将来宾操作系统所管理的虚拟存储器的区域锁定到共享高速缓存中。
示例15可以包括示例13或14的主题,并且还可以包括由管理程序通过超级调用接口接收超级调用,所述超级调用请求从共享高速缓存解锁来宾操作系统所管理的虚拟存储器的区域。
示例16可以包括示例13-15中任一个的主题,并且还可以指定来宾操作系统是实时操作系统。
示例17可以包括示例12-16中任一个的主题,并且还可以包括由管理程序授予比虚拟机更高的优先级以使用共享高速缓存的部分。
示例18可以包括示例12-17中任一个的主题,并且还可以指定锁定包括在高速缓存服务质量类中禁用共享高速缓存的部分。
示例19可以包括示例18的主题,并且还可以指定高速缓存服务质量类包括控制对共享高速缓存的最后一级高速缓存的访问的位掩码。
示例20可以包括示例12-19中任一个的主题,并且还可以指定锁定包括由管理程序俘获从虚拟机到共享高速缓存的高速缓存服务质量类的直接接触。
示例21可以包括示例12-20中任一个的主题,并且还可以指定来自管理程序的所选数据或代码包括分派功能、调度器或中断处理机中的至少一个。
示例22可以包括示例12-21中任一个的主题,并且还可以指定选择共享高速缓存的部分包括选择未被直接数据输入和输出使用的一个或多个路径。
示例23是一种其中存储有指令的计算机可读存储介质,所述指令被配置成使设备响应于由设备对指令的执行而实践示例12-22中任一个的主题。存储介质可以是非暂时性的。
示例24是一种用于虚拟化计算的装置,其可以包括由计算机系统的管理程序选择共享高速缓存的部分以存储管理程序或在管理程序的管理之下在计算机系统上操作的虚拟机的所选数据或代码的构件;以及用于由管理程序锁定共享高速缓存的部分以防止从共享高速缓存逐出管理程序或虚拟机的所选数据或代码的构件。
示例25可以包括示例24的主题,并且还可以包括用于由管理程序从虚拟机的来宾操作系统接收请求以在共享高速缓存的部分处锁定或解锁来宾操作系统的所选数据或代码的构件。
示例26可以包括示例24或25的主题,并且还可以包括用于由管理程序俘获从虚拟机到共享高速缓存的高速缓存服务质量类的直接接触的构件。

Claims (32)

1.一种用于虚拟化计算的装置,包括:
一个或多个处理器核;
耦合到所述一个或多个处理器核的高速缓存;以及
管理程序,其由所述一个或多个处理器核操作以管理所述装置上的虚拟机的操作,包括通过选择未被直接数据输入和输出使用的一个或多个路径来选择所述高速缓存的部分以存储所述虚拟机其中之一或所述管理程序的所选数据或代码,以及锁定所述高速缓存的所述部分以防止从所述高速缓存逐出所述所选数据或代码。
2.根据权利要求1所述的装置,其中所述管理程序包括接口,其用于所述虚拟机所述其中之一的来宾操作系统用以请求将所述来宾操作系统的所选数据或代码锁定到所述高速缓存的所述部分。
3.根据权利要求2所述的装置,其中所述来宾操作系统是实时操作系统。
4.根据权利要求1所述的装置,其中所述管理程序为自身授予比所述虚拟机所述其中之一更高的优先级以将数据或代码存储到所述高速缓存的所述部分。
5.根据权利要求1所述的装置,其中来自所述管理程序的所选数据或代码包括分派功能、调度器或中断处理机中的至少一个。
6.根据权利要求1所述的装置,其中所述管理程序包括超级调用接口,所述超级调用接口包括用于请求将所述虚拟机所述其中之一中的存储器的区域锁定到所述高速缓存中的超级调用。
7.根据权利要求1所述的装置,其中所述管理程序包括超级调用接口,所述超级调用接口包括用于请求从所述高速缓存解锁所述虚拟机所述其中之一中的存储器的区域的超级调用。
8.根据权利要求1-7中任一项所述的装置,其中所述高速缓存与包括控制对高速缓存的访问的位掩码的高速缓存服务质量类相关联。
9.根据权利要求8所述的装置,其中所述管理程序通过高速缓存服务质量类中的设置锁定所述高速缓存的所述部分。
10.根据权利要求8所述的装置,其中所述管理程序俘获从所述虚拟机所述其中之一到高速缓存服务质量类的直接接触。
11.一种用于虚拟化计算的方法,包括:
由所述计算系统的管理程序通过选择未被直接数据输入和输出使用的一个或多个路径来选择共享高速缓存的部分以存储在所述管理程序的管理之下在计算机系统上操作的虚拟机或者所述管理程序的所选数据或代码;以及
由所述管理程序锁定所述共享高速缓存的所述部分以防止从所述共享高速缓存逐出所述虚拟机或者所述管理程序的所选数据或代码。
12.根据权利要求11所述的方法,还包括:
由所述管理程序从所述虚拟机的来宾操作系统接收将所述来宾操作系统的所选数据或代码锁定到所述共享高速缓存的所述部分的请求。
13.根据权利要求12所述的方法,其中接收包括通过超级调用接口接收第一超级调用,所述第一超级调用请求将所述来宾操作系统所管理的虚拟存储器的区域锁定到所述共享高速缓存中。
14.根据权利要求13所述的方法,还包括由所述管理程序通过所述超级调用接口接收第二超级调用,所述第二超级调用请求将所述来宾操作系统所管理的虚拟存储器的区域从所述共享高速缓存解锁。
15.根据权利要求14所述的方法,其中所述来宾操作系统是实时操作系统。
16.根据权利要求11所述的方法,还包括:
由所述管理程序为自身授予比所述虚拟机更高的优先级以使用所述共享高速缓存的所述部分。
17.根据权利要求11所述的方法,其中锁定包括:
在高速缓存服务质量类中禁用所述共享高速缓存的所述部分。
18.根据权利要求17所述的方法,其中高速缓存服务质量类包括控制对所述共享高速缓存的访问的位掩码。
19.根据权利要求11所述的方法,其中锁定包括由所述管理程序俘获从所述虚拟机到所述共享高速缓存的高速缓存服务质量类的直接接触。
20.根据权利要求11所述的方法,其中来自所述管理程序的所选数据或代码包括分派功能、调度器或中断处理机中的至少一个。
21.一种用于虚拟化计算的装置,包括:
用于由计算系统的管理程序通过选择未被直接数据输入和输出使用的一个或多个路径来选择共享高速缓存的部分以存储在所述管理程序的管理之下在计算机系统上操作的虚拟机或者所述管理程序的所选数据或代码的构件;以及
用于由所述管理程序锁定所述共享高速缓存的所述部分以防止从所述共享高速缓存逐出所述虚拟机或者所述管理程序的所选数据或代码的构件。
22.根据权利要求21所述的装置,还包括:
用于由所述管理程序从所述虚拟机的来宾操作系统接收要在所述共享高速缓存的所述部分处锁定或解锁所述来宾操作系统的所选数据或代码的请求的构件。
23.根据权利要求21或22所述的装置,还包括:
用于由所述管理程序俘获从所述虚拟机到所述共享高速缓存的高速缓存服务质量类的直接接触的构件。
24.根据权利要求22所述的装置,其中用于接收所述请求的构件包括用于通过超级调用接口接收第一超级调用的构件,所述第一超级调用请求要将所述来宾操作系统所管理的虚拟存储器的区域锁定到所述共享高速缓存中。
25.根据权利要求24所述的装置,还包括用于由所述管理程序通过超级调用接口接收第二超级调用的构件,所述第二超级调用请求要将所述来宾操作系统所管理的虚拟存储器的区域从所述共享高速缓存解锁。
26.根据权利要求25所述的装置,其中所述来宾操作系统是实时操作系统。
27.根据权利要求21所述的装置,还包括:
用于由所述管理程序为自身授予比所述虚拟机更高的优先级以使用所述共享高速缓存的所述部分的构件。
28.根据权利要求21所述的装置,其中用于锁定的构件包括:
用于在高速缓存服务质量类中禁用所述共享高速缓存的所述部分的构件。
29.根据权利要求28所述的装置,其中高速缓存服务质量类包括控制对共享高速缓存的访问的位掩码。
30.根据权利要求21所述的装置,其中用于锁定的构件包括用于由所述管理程序俘获从所述虚拟机到所述共享高速缓存的高速缓存服务质量类的直接接触的构件。
31.根据权利要求21所述的装置,其中来自所述管理程序的所选数据或代码包括分派功能、调度器或中断处理机中的至少一个。
32.一种计算机可读介质,其上存储有指令,当执行所述指令时,使得计算机执行权利要求11-20中任一项所述的方法。
CN201580009456.7A 2014-03-21 2015-01-23 用于虚拟化计算的装置和方法 Active CN105980986B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/222416 2014-03-21
US14/222,416 US9652270B2 (en) 2014-03-21 2014-03-21 Apparatus and method for virtualized computing
PCT/US2015/012728 WO2015142421A1 (en) 2014-03-21 2015-01-23 Apparatus and method for virtualized computing

Publications (2)

Publication Number Publication Date
CN105980986A CN105980986A (zh) 2016-09-28
CN105980986B true CN105980986B (zh) 2020-01-31

Family

ID=54142199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580009456.7A Active CN105980986B (zh) 2014-03-21 2015-01-23 用于虚拟化计算的装置和方法

Country Status (6)

Country Link
US (1) US9652270B2 (zh)
EP (1) EP3120244A4 (zh)
JP (1) JP6273034B2 (zh)
KR (1) KR101821079B1 (zh)
CN (1) CN105980986B (zh)
WO (1) WO2015142421A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563564B2 (en) * 2015-04-07 2017-02-07 Intel Corporation Cache allocation with code and data prioritization
US10191858B2 (en) * 2015-11-25 2019-01-29 Red Hat Israel, Ltd. Virtual machine memory lock-down
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US11412059B2 (en) * 2016-09-30 2022-08-09 Intel Corporation Technologies for paravirtual network device queue and memory management
US10241874B2 (en) * 2017-05-17 2019-03-26 Stratus Technologies Checkpoint method for a highly available computer system
JP2020149597A (ja) * 2019-03-15 2020-09-17 株式会社デンソーテン 制御装置および制御方法
US20190340123A1 (en) * 2019-07-17 2019-11-07 Intel Corporation Controller for locking of selected cache regions
KR20210130341A (ko) 2020-04-22 2021-11-01 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US20230061511A1 (en) * 2021-08-30 2023-03-02 International Business Machines Corporation Inaccessible prefix pages during virtual machine execution

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041896B2 (en) * 2008-04-30 2011-10-18 Hewlett-Packard Development Company, L.P. Virtualization platform with dedicated cache access
CN102289390A (zh) * 2010-06-01 2011-12-21 微软公司 系统管理程序调度器
CN102346684A (zh) * 2010-06-01 2012-02-08 微软公司 将虚拟高速缓存拓扑结构展示给客操作系统
US8156298B1 (en) * 2007-10-24 2012-04-10 Adam Stubblefield Virtualization-based security apparatuses, methods, and systems
CN102725730A (zh) * 2009-12-18 2012-10-10 赛丹思科大学 用于静态键入的基于类的面向对象的软件的非阻挡动态更新的方法、计算机程序产品和系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516453B1 (en) * 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US6490615B1 (en) * 1998-11-20 2002-12-03 International Business Machines Corporation Scalable cache
JP4012517B2 (ja) 2003-04-29 2007-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想計算機環境におけるロックの管理
JP4358224B2 (ja) * 2006-12-27 2009-11-04 株式会社東芝 ゲストosスケジューリング方法及び仮想計算機モニタ
WO2009075070A1 (ja) * 2007-12-10 2009-06-18 Panasonic Corporation 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路
US20100070678A1 (en) 2008-09-12 2010-03-18 Vmware, Inc. Saving and Restoring State Information for Virtualized Computer Systems
JP5338435B2 (ja) 2009-03-31 2013-11-13 富士通株式会社 情報処理プログラム、情報処理装置および情報処理方法
CN102402422B (zh) * 2010-09-10 2016-04-13 北京中星微电子有限公司 处理器组件及该组件内存共享的方法
US8307169B2 (en) * 2011-03-10 2012-11-06 Safenet, Inc. Protecting guest virtual machine memory
US9053037B2 (en) 2011-04-04 2015-06-09 International Business Machines Corporation Allocating cache for use as a dedicated local storage
US8745614B2 (en) * 2011-05-13 2014-06-03 Lsi Corporation Method and system for firmware upgrade of a storage subsystem hosted in a storage virtualization environment
JP5737050B2 (ja) * 2011-08-15 2015-06-17 富士通株式会社 情報処理装置、割込み制御方法および割込み制御プログラム
KR20130131135A (ko) * 2012-05-23 2013-12-03 삼성전자주식회사 QoS 기반 캐시 컨트롤러 및 그 동작 방법
US10061616B2 (en) * 2012-05-30 2018-08-28 Red Hat Israel, Ltd. Host memory locking in virtualized systems with memory overcommit
US10339056B2 (en) * 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) * 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US9311153B2 (en) * 2013-05-15 2016-04-12 Empire Technology Development Llc Core affinity bitmask translation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156298B1 (en) * 2007-10-24 2012-04-10 Adam Stubblefield Virtualization-based security apparatuses, methods, and systems
US8041896B2 (en) * 2008-04-30 2011-10-18 Hewlett-Packard Development Company, L.P. Virtualization platform with dedicated cache access
CN102725730A (zh) * 2009-12-18 2012-10-10 赛丹思科大学 用于静态键入的基于类的面向对象的软件的非阻挡动态更新的方法、计算机程序产品和系统
CN102289390A (zh) * 2010-06-01 2011-12-21 微软公司 系统管理程序调度器
CN102346684A (zh) * 2010-06-01 2012-02-08 微软公司 将虚拟高速缓存拓扑结构展示给客操作系统

Also Published As

Publication number Publication date
JP6273034B2 (ja) 2018-01-31
US9652270B2 (en) 2017-05-16
US20150268979A1 (en) 2015-09-24
WO2015142421A1 (en) 2015-09-24
JP2017511926A (ja) 2017-04-27
EP3120244A4 (en) 2018-03-28
EP3120244A1 (en) 2017-01-25
KR20160108502A (ko) 2016-09-19
CN105980986A (zh) 2016-09-28
KR101821079B1 (ko) 2018-01-22

Similar Documents

Publication Publication Date Title
CN105980986B (zh) 用于虚拟化计算的装置和方法
US10901772B2 (en) Virtualization exceptions
CN106201646B (zh) 用于安全虚拟机间共享存储器通信的设备和方法
US9798567B2 (en) Multi-hypervisor virtual machines
US8954959B2 (en) Memory overcommit by using an emulated IOMMU in a computer system without a host IOMMU
US8667187B2 (en) System and method for reducing communication overhead between network interface controllers and virtual machines
US8732698B2 (en) Apparatus and method for expedited virtual machine (VM) launch in VM cluster environment
US20210216453A1 (en) Systems and methods for input/output computing resource control
US10409633B2 (en) Hypervisor-visible guest thread management
US8631170B2 (en) Memory overcommit by using an emulated IOMMU in a computer system with a host IOMMU
CN107924325B (zh) 用于多级虚拟化的设备和方法
CN106415574B (zh) 采用用于促进对安全存储器的访问的中间结构
KR20120098838A (ko) 가상화 환경에서 i/o 동작을 처리하는 방법 및 장치
US11836091B2 (en) Secure memory access in a virtualized computing environment
US20160188354A1 (en) Efficient enabling of extended page tables
US9898307B2 (en) Starting application processors of a virtual machine
Dey et al. Vagabond: Dynamic network endpoint reconfiguration in virtualized environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant