CN101162443A - 数据处理器 - Google Patents

数据处理器 Download PDF

Info

Publication number
CN101162443A
CN101162443A CN200710180980.8A CN200710180980A CN101162443A CN 101162443 A CN101162443 A CN 101162443A CN 200710180980 A CN200710180980 A CN 200710180980A CN 101162443 A CN101162443 A CN 101162443A
Authority
CN
China
Prior art keywords
mentioned
virtual machine
central processing
processing unit
pattern
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.)
Granted
Application number
CN200710180980.8A
Other languages
English (en)
Other versions
CN101162443B (zh
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.)
Renesas Electronics Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Publication of CN101162443A publication Critical patent/CN101162443A/zh
Application granted granted Critical
Publication of CN101162443B publication Critical patent/CN101162443B/zh
Expired - Fee Related 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种数据处理器,能够减少伴随着系统规格变更的重新设计,有助于防止因资源竞争引起的误动作和提高安全性。该数据处理器具有根据模式寄存器(140、150、151)内所设定的信息有选择地构成在不同的操作系统的控制下执行用户程序的多个虚拟机(101)和进行上述虚拟机的控制的虚拟机管理器(190)的中央运算处理单元(CPU)、和管理上述虚拟机对可利用的硬件资源的访问的资源访问管理模块(110)。资源访问管理模块,输入从所设定的模式寄存器得到的信息和中央运算处理单元的对上述硬件资源的访问控制信息,并将该输入信息和控制寄存器内所设定的信息进行比较,从而控制能否进行响应访问控制信息的对上述硬件资源的访问。

Description

数据处理器
技术领域
本发明涉及具有多个中央运算处理单元、或可以在不同的操作系统的管理下执行程序的数据处理器,例如涉及适用于具有在1个半导体芯片上形成的多CPU(中央运算处理单元)的以半导体集成电路实现的微处理器的有效技术。
背景技术
近年来,微处理器的集成化不断取得进展,安装了多个装有单个的中央运算处理单元的微处理器的系统实现了集成化,开发出了装有多个中央运算处理单元的微处理器。在装有多个中央运算处理单元的微处理器中,主要由于对于LSI面积的端子数的限制,各中央运算处理单元使用的存储器或输入输出装置在微处理器内一般采取共享方式,并且主要通过微处理器内的总线或控制器的设计来实现。当共享了存储器时,例如,存在着当因控制软件的缺陷等而发生非法访问并产生存储区域的冲突时无法正确处理图像数据的问题,因此,避免存储区域冲突就变得至关重要。在专利文献1中公开了一种提供电路量开销少的对非法地址的访问的检测、切断电路的技术。
另一方面,当使程序在装有多个中央运算处理单元的微处理器上运行时,需要与其对应的操作系统,但这些操作系统的设计与上述存储器或输入输出装置的共享方式有密切关系。作为与装有多个中央运算处理单元的微处理器对应的操作系统的方式,迄今为止存在以下举出的两种方式。
第1方式,是由单一的操作系统管理所有的多个中央运算处理单元和一个存储器、输入输出装置的对称型多处理器方式。第2方式,是在多个中央运算处理单元中分别安装操作系统的非对称型多处理器方式。特别是在面向内部设备的微处理器中,很容易转移现有的软件资源,因此采用非对称型多处理器方式。
专利文献:日本特开2004-334410号公报
发明内容
在由上述的非对称型多处理器方式、特别是微处理器的硬件构成存储器或输入输出装置的共享方式的系统中,存在以下2个问题。
第1个问题,由于操作系统的方式和基于硬件的存储器或输入输出装置的共享方式有很强的依赖关系,因此即使有小规模的规格变更时,也必须进行操作系统的方式或硬件的重新设计。第2个问题,在装有多个单个的中央运算处理单元的系统中原来是通过集成化共享各自的存储器或输入输出装置,因此系统的可靠性或安全性降低。这就是说,如果存储器或输入输出装置不是共享,则在某个中央运算处理单元上运行着的操作系统或程序的无意图的动作产生的影响就不会波及到在其他中央运算处理单元上运行着的操作系统或程序,与此相反,在共享的情况下,将会波及到其他的操作系统或程序。
本发明的目的在于,在可于不同的操作系统的管理下执行使用了共享资源的程序的数据处理器中,减少伴随着系统规格的变更的重新设计。
本发明的另一目的在于,在可于不同的操作系统的管理下执行使用了共享资源的程序的数据处理器中,有助于与因资源竞争引起的误动作的防止等相关的系统可靠性的提高。
本发明的另外一个目的在于,在可于不同的操作系统的管理下执行使用了共享资源的程序的数据处理器中,有助于安全性的提高。
本发明的上述目的和其他目的以及新的特征,从本说明书的记述和附图将得到明确。
简单地说明本申请书所公开的发明中的代表性技术方案的概要如下。即,通过将对安装在数据处理器中的中央运算处理单元的硬件扩展和控制该扩展部分的软件进行组合,来解决上述课题。对中央运算处理单元的硬件扩展主要这样构成,即:进行(a)用于使控制扩展部分的软件运行的动作模式扩展、和(b)检测操作系统或在其管理下所执行的程序(应用程序)的特定动作,而将处理转移到控制扩展部分的软件(实现虚拟机管理器的程序)的扩展。
[1]更详细地加以说明。本发明的数据处理器(1),具有根据模式寄存器(140、150、151)内所设定的信息有选择地构成在不同的操作系统的控制下执行应用程序的多个虚拟机(101)和进行上述虚拟机的控制的虚拟机管理器(190)的中央运算处理单元(CPU),和管理上述虚拟机对可利用的硬件资源的访问的资源访问管理模块(110)。上述资源访问管理模块,输入从上述所设定的模式寄存器得到的信息和上述中央运算处理单元的对上述硬件资源的访问控制信息,并将该输入信息和控制寄存器(111)内所设定的信息进行比较,来控制能否进行响应上述访问控制信息的对硬件资源的访问。因此,当由虚拟机在不同的操作系统的管理下执行使用了共享硬件资源的程序时,可以根据控制寄存器的设定抑制对硬件资源的不希望的访问竞争或工作数据的消失等。可以使一部分虚拟机的变更对其他虚拟机没有任何影响,并由对多个虚拟机进行控制的虚拟机管理器的控制动作的设计变更来应对一部分虚拟机的变更。
作为本发明的一个具体的方式,上述控制寄存器,可以由上述虚拟机管理器变更其设定信息。因此,即使对特定的应用程序或操作系统的非法攻击得以成功,也可以使由某个中央运算处理单元构成并运行着的虚拟机的无意图的动作产生的影响很难通过共享硬件资源波及到其他虚拟机的动作,因此有助于安全性的强化。
作为本发明的一个具体方式,上述中央运算处理单元当输入中断信号时,构成上述虚拟机管理器并判定中断原因,当判别是第1中断原因时,为响应上述中断而执行上述操作系统的命令,当判别是第2中断原因时,由上述虚拟机管理器进行响应上述中断的处理。由于可以将操作系统的中断响应和虚拟机管理器的中断响应分开,即使是对中断响应也可以保证与虚拟机管理器分开地设计虚拟机。
作为本发明的一个具体方式,上述模式寄存器,包括指定多个虚拟机中的一个虚拟机的虚拟机ID寄存器(140)、指示在虚拟机中可执行应用程序还是可执行操作系统的CPU动作模式寄存器(151)、以及指示构成虚拟机管理器还是构成虚拟机的扩展CPU动作模式寄存器(150)。
作为本发明的一个具体方式,当具有多个上述中央运算处理单元时,在上述中央运算处理单元输出的对上述硬件资源的访问控制信息中包含着该中央运算处理单元的识别码信息(src)。当在CPU之间虚拟机ID重复时能够易于处理。这时,上述控制寄存器具有寄存区域(SRC),用于存储构成许可对作为上述硬件资源的存储区域的访问的虚拟机的中央运算处理单元的识别码信息。
作为本发明的更具体的方式,上述控制寄存器具有寄存区域(OFFSET),用于存储相对于作为上述硬件资源的存储区域的起始地址的直到上述虚拟机固有的存储区域的地址偏移信息。各个虚拟机只需对从0地址开始的地址空间进行地址管理即可。
作为本发明的一个具体方式,还具有连接上述中央运算处理单元和上述资源访问管理模块的内部总线(BUS)、连接在上述资源访问管理模块上的作为上述硬件资源的存储器(120)和输入输出电路(130、131),并在1个半导体芯片上形成。例如在1个芯片的情况下,从面积效率的观点来看,与多芯片相比由多个虚拟机共享硬件资源的必然性更高。
[2]基于另一观点的本发明的数据处理器,具有可以根据所设定的动作模式在不同的操作系统的控制下执行程序的多个中央运算处理单元和管理上述多个中央运算处理单元对可利用的硬件资源的访问的资源访问管理模块。上述资源访问管理模块,输入与上述所设定的动作模式对应的信息和上述中央运算处理单元的对上述硬件资源的访问控制信息,并将该输入信息和控制寄存器内所设定的信息进行比较,来控制能否进行响应上述访问控制信息的对硬件资源的访问。因此,当在不同的操作系统的管理下执行使用了共享硬件资源的程序时,可以根据控制寄存器的设定抑制对硬件资源的不希望的访问竞争或工作数据的消失等。可以使一部分操作系统或在其控制下执行的程序的变更对其他的操作系统或在其控制下执行的程序没有任何影响,可由对资源访问管理模块的控制动作的设计变更应对上述的变更。
作为本发明的一个具体方式,作为上述动作模式具有第1动作模式(用户模式)、第2动作模式(特权模式)及第3动作模式(虚拟机管理模式),第1动作模式是上述中央运算处理单元根据应用程序执行命令的动作模式,第2动作模式是上述中央运算处理单元根据操作系统执行命令的动作模式,第3动作模式是控制上述第1动作模式中的命令的执行和上述第2动作模式中的命令的执行的动作模式。
作为更具体的方式,上述控制寄存器,可以在上述第3动作模式中变更。因此,即使对特定的应用程序或操作系统的非法攻击得以成功,也可以使由某个中央运算处理单元构成并运行着的虚拟机的无意图的动作产生的影响很难通过共享硬件资源波及到其他虚拟机的动作,因此有助于安全性的强化。
简单说明由本申请书所公开的发明中的代表性技术方案所取得的效果如下。
即,在可于不同的操作系统的管理下执行使用了共享资源的程序的数据处理器中,能够减少伴随着系统规格的变更的重新设计。能够有助于与因资源竞争引起的误动作的防止等相关的系统可靠性的提高。能够有助于安全性的提高。
附图说明
图1是总体地表示本发明的一例的微处理器的框图。
图2是XVS设定用系统寄存器(XVSCR、XVSVMID、XVR、XVSEVT)的说明图。
图3是追加了VMID字段和CPU权限字段的TLB项目的说明图。
图4是举例示出利用TLB项目VMID字段和CPU权限字段的访问权限判定算法的流程图。
图5是追加了VMID字段的高速缓存项目的说明图。
图6是举例示出高速缓存项目VMID字段的更新算法的流程图。
图7是表示利用高速缓存项目VMID字段的命中判定算法的流程图。
图8是访问属性信息输出模式(VMID8、VMID4+ASID4、ASID8)的说明图。
图9是PAM项目的结构说明图。
图10是举例示出利用PAM的访问许可判定算法(通常访问通过、不通过、地址偏移量加法运算)的流程图。
图11是PAM的框图。
图12是PAM中所包含的比较电路COMP的逻辑电路图。
图13是PAM中所包含的地址偏移量加法运算电路OFFSET的逻辑电路图。
图14是举例示出用于转移到虚拟机管理模式(XVS模式)的异常原因的说明图。
图15是与中断分配和复位信号中断化对应的中断控制器的框图。
图16是追加了STID字段的TLB项目的说明图。
图17是追加了NS字段的高速缓存项目的说明图。
图18是以虚拟机管理器的功能(存储器、I/O划分、CPU共享)为主体掌控的微处理器的功能说明图。
图19是表示对各VM分配的硬件(存储器、I/O、CPU)资源的指定和管理方式的VM定义文件的说明图。
图20是清楚地示出虚拟机管理器起动时的功能分担和调用关系的流程图。
图21是清楚地示出虚拟机管理器的模块结构图和通常动作时的功能分担和调用关系的框图。
图22是示出在PAM和虚拟机管理模式(XVS模式)中如何实现关于来自多个VM的存储器访问的地址偏移量加法运算、权限检验的说明图。
图23是示出在PAM和虚拟机管理模式(XVS模式)中如何实现多个VM之间通过存储器的通信的说明图。
图24是示出关于多个VM共享的CPU硬件资源的访问的虚拟机管理器进行自陷(trap)和代理执行(仿真)时的处理流程的说明图。
图25是着眼于有关按多个VM划分的I/O的从处理的起动到结束的顺序的顺序图。
图26是表示VM间通信时的结构的框图。
图27是表示PAM模块内的项目表的设定例的说明图。
图28是对VM间通信用共享存储器的写入时的控制流程图。
图29是VM间通信用共享存储器的读出时的控制流程图。
图30是VM间通信时的虚拟机管理器的数据复制的控制流程图。
图31是表示依据了虚拟机管理器的处理流程和异常事件的异常处理选择的表的说明图。
图32是举例示出中断分配模式的设定规则的说明图。
图33是举例示出复位选择机构的结构和处理流程的说明图。
具体实施方式
在图1~图15中从硬件的观点示出本发明的结构。在图1中举例示出本发明的微处理器的硬件结构。
微处理器1,例如利用CMOS集成电路制造技术在像单晶硅那样的1个半导体芯片上形成。微处理器1,具有代表性地示出的3个中央运算处理单元(CPU0、CPU1、CPU2)100、102、103和物理地址管理模块(PAM)110,这些部件共同连接于内部总线BUS。物理地址管理模块(PAM)110,与作为中央运算处理单元100、102、103的共享硬件资源的存储器(MEM)120及输入输出电路(I/O)130、131连接。在物理地址管理模块(PAM)110和存储器(MEM)120之间配置存储控制器(MC)1831。存储控制器(MC)1831,根据存储器的种类控制总线宽度等的存储器接口。当总称中央运算处理单元(CPU0、CPU1、CPU2)100、102、103的任一个或这些单元时都简单地记为中央运算处理单元(CPU)。作为共享硬件资源的存储器(MEM)120和输入输出电路(I/O)130、131,也可以由与微处理器1不同的芯片构成。
中央运算处理单元100、102、103,根据作为主存的存储器(MEM)120上所存储的程序和数据进行数据处理,而且,通过输入输出的装置(I/O)130、131进行与其连接的省略图示的各种设备(外围设备)的操作。另外,在中央运算处理单元(CPU)100、102、103的内部,设有进行运算处理的执行部(EXEC)104、进行虚拟地址管理的存储器管理单元(MMU)105、用于提高对作为主存的存储器(MEM)120的访问速度的高速缓冲存储器(Cache)106、以及协调来自各种设备的中断请求的中断控制器(INTC)107。
特别是在图1中在执行部104的内部示出中央运算处理单元(CPU)的动作模式和体系结构资源,而且,在与中央运算处理单元(CPU)协同动作的物理地址管理模块(PAM)110的内部示出存储参数项目的(PAMENTRY)的参数项目寄存器111和检验门电路(CHCGT)113、114、115。此处对中央运算处理单元100、102、103采用非对称型多CPU体系结构,各中央运算处理单元100、102、103分别利用各自的操作系统(OS)。按照图1的例,中央运算处理单元100根据模式寄存器的设定有选择地构成在不同的操作系统OS(OS0~OS255)的控制下执行作为应用程序的用户程序(User Prog)的多个虚拟机101。所谓虚拟机101,意味着由应用程序、操作系统和中央运算处理单元(CPU)构成的功能实现装置。此处,按虚拟机ID(VMID)区别虚拟机101,可以选择VMID=0~VMID=255的虚拟机。进一步,中央运算处理单元(CPU)还可以根据上述模式寄存器的设定有选择地构成进行上述虚拟机的控制的虚拟机管理器(Virtual Machine Manager)190。所谓虚拟机管理器190,意味着由虚拟机管理程序和中央运算处理单元(CPU)构成的功能实现装置。虚拟机管理器190,有在特定的一个中央运算处理单元中构成的方法和由所有的中央运算处理单元总体地构成一个功能的方法。在后者的情况下,由根据模式寄存器有选择地构成了虚拟机管理器190的中央运算处理单元执行虚拟机管理程序所需要的程序模块而进行数据处理。
此外,在图1中虽然未图示出中央运算处理单元(CPU)以外的总线主模块,但实际上也可以具有直接存储器访问控制器(DMAC)或具有寻址功能的控制器等CPU以外的总线主设备。上述CPU以外的总线主设备,由执行用户程序的特定的虚拟机控制,并将与该虚拟机的访问相同的访问控制信息输出到总线BUS。总之,中央运算处理单元(CPU)以外的总线主模块具有与由中央运算处理单元构成的虚拟机的访问等效的访问方式,因此,物理地址管理模块110对来自CPU以外的总线主模块的总线访问和来自中央运算处理单元(CPU)的总线访问起着同样的作用即可。
作为上述模式寄存器备有XVSVMID.VMID寄存器140、XVSCR.MD寄存器150、以及SR.MD寄存器151。作为其他的体系结构资源寄存器,设有XVSCR.PIDSEL寄存器160、XVR.XVR寄存器170、以及XVSET.CODE寄存器180。
SR.MD寄存器151是1位寄存器,根据该值决定中央运算处理单元(CPU)的动作模式为用户模式(第1动作模式:User Mode)或特权模式(第2动作模式:Priv Mode)。所谓用户模式,是指通常的应用程序(用户程序)运行的模式。在用户模式中,限制特定的中央运算处理单元(CPU)命令的执行或特定的中央运算处理单元(CPU)寄存器资源的访问。所谓特权模式,是指可以执行对中央运算处理单元(CPU)的运行状态产生影响的特定的中央运算处理单元(CPU)命令的模式。设计成使操作系统(OS0~OS255)动作时在特权模式下运行、使用户程序(User Prog)在用户模式下运行,并设计成使用户模式程序的动作不对操作系统的动作产生影响。
XVSCR.MD寄存器150是1位寄存器,根据该值决定动作模式是否是虚拟机管理模式(第3动作模式:XVS Mode)。此处,所谓虚拟机管理模式,是指进行对多个操作系统或虚拟机分配以存储器120和输入输出电路130为代表的共享硬件资源的控制、或进行将因操作系统或程序(或虚拟机)的不适当的动作产生的影响对其他操作系统或程序(或虚拟机)的波及切断的控制等的模式。总之,虚拟机管理模式,是控制用户模式中的命令执行和特权模式中的命令执行的动作模式。
XVSVMID.VMID寄存器140是8位寄存器,根据该值分别将用户模式和特权模式分为VMID=0~VMID=255的256模式。具体地说,(1)当XVSCR.MD寄存器150为1时,为虚拟机管理模式(XVSMode)。(2)当XVSCR.MD寄存器150为0且SR.MD寄存器151为1时,根据XVSVMID.VMID寄存器140的值,为特权模式的VMID=0~VMID=255模式。(3)当XVSCR.MD寄存器150为0且SR.MD寄存器151为0时,根据XVSVMID.VMID寄存器140的值,为用户模式的VMID=0~VMID=255模式。
物理地址管理模块(PAM)110,被定位为管理多个中央运算处理单元100、102、103对可利用的硬件资源120、130、131的访问的资源访问管理模块。物理地址管理模块110,输入从所设定的模式寄存器得到的信息和上述中央运算处理单元(CPU)的对上述硬件资源120、130、131的访问控制信息,并由检验门电路(CHCGT)113、114、115比较该输入信息和参数项目寄存器111内所设定的信息,从而控制能否进行响应上述访问控制信息的对上述硬件资源120、130、131的访问。
通过在虚拟机管理模式(XVS Mode)下执行对中央运算处理单元(CPU)内的体系结构资源或物理地址管理模块(PAM)110进行控制的软件(虚拟机管理程序),控制以存储器120和输入输出电路130、131为代表的资源对多个操作系统的分配,并按照VMID=0~VMID=255的模式使中央运算处理单元作为分别独立的动作域(虚拟机)进行动作,进而进行将操作系统或用户程序的不适当的或非法的动作的影响切断的控制。之后,由于在虚拟机管理模式(XVS Mode)下执行,将进行对多个操作系统的存储器、I/O资源的分配、或进行切断操作系统、程序的不适当动作的影响的控制的软件称为虚拟机管理程序,并将中央运算处理单元执行该程序而实现的功能称为虚拟机管理器。
在图2中举例示出中央运算处理单元(CPU)中的用于动作控制的主寄存器。例如,在仅于虚拟机管理模式(XVS Mode)下才可以访问的中央运算处理单元(CPU)的寄存器资源中,示出直接关系到CPU的硬件动作控制的寄存器。XVSCR寄存器是32位寄存器,在位17~16的2位部分有取名为PIDSEL的字段,在位0部分有取名为MD的字段。除此以外的位的部分未使用。XVSVMID寄存器,在位7~0的8位部分有VMID字段。除此以外的位的部分未使用。XVR寄存器,在位31~0的全部32位上为XVR字段。XVSEVT寄存器,在位11~0的12位部分有CODE字段。除此以外的位的部分未使用。SR寄存器具有位0的MD字段。
在本说明书中,将具有一定位宽的寄存器的一部分位字段部分记为(寄存器名)、(位字段名),有时将其本身就称为寄存器。上述的XVSCR.MD寄存器,遵循了本称呼方法,实际上对应于XVSCR寄存器的MD字段。
在图3中示出构成MMU105的翻译后援缓冲器(TLB)的结构。翻译后援缓冲器(TLB),保持用于将从执行部(EXEC)发送的作为访问的地址的虚拟地址变换为物理地址的地址变换设定。在翻译后援缓冲器(TLB)中,由保持地址变换对或该地址范围的访问权限等的信息的字段构成项目(Entry)。在该例中,说明具有0~63的64组项目的情况。例如,项目分成3部分,称为地址阵列(Address Array)、数据阵列(Data Array)和VMID阵列(VMID Array)。在翻译后援缓冲器(TLB)中,其特征在于具有在VMID阵列中所包含的8位的VMID字段。在VMID阵列中存储与地址变换对对应的VMID(虚拟机标识符)。在ASID字段中存储对应的虚拟页号。在PPN字段中存储对应的物理页号。在SZ字段中存储页尺寸信息。在V字段中存储指示项目的有效性的有效位。SH为共享标志,C为可高速缓存标志,PR为保护标志,D为“脏”标志,WT为写透(write through)标志。
MMU105中的地址变换,在各项目中对发出已执行的命令的虚拟地址、上述的XVSVMID.VMID寄存器值、MMU105中所设定的地址空间标识符(ASID)的值进行使用了翻译后援缓冲器(TLB)的地址阵列内的VPN字段、VMID字段、ASID字段、V字段和数据阵列内的SZ字段的命中判定。当在任一项中命中时,用该已命中的项目的数据阵列内的PPN字段的值置换地址值并进行向物理地址的变换。具体地说,当下述的条件完全满足时判定为项目命中。第一条件是发出已执行的命令的虚拟地址包含在由VPN字段的值和SZ字段的值决定的地址范围内。第二条件是XVSVMID.VMID寄存器值与VMID字段的值一致。第三条件是MMU105中所设定的地址空间标识符(ASID)的值与翻译后援缓冲器(TLB)的ASID字段的值一致。第四条件是V字段的值为1。
在图4中示出MMU105实施的访问权限判定的算法。特别是,在MMU105实施的访问权限判定中,在执行了作为发出访问的源的命令的时刻的XVSVMID.VMID寄存器值、SR.MD寄存器值、以及翻译后援缓冲器(TLB)的PR字段和D字段的值影响判定。PR字段的值是2位的值,00意味着只许可特权模式下的读出,01意味着许可特权模式下的读出和写入,10意味着只许可特权和用户模式下的读出,11意味着许可特权和用户模式下的读出和写入。另外,D字段意味着是否已对该项目的地址范围进行了写入。作为判定的结果,访问将被许可或被拒绝,当被拒绝时产生与拒绝的原因对应的异常处理请求。
在被拒绝时产生的异常处理请求的种类中,有保护违反异常(Protection Error Exception)、起始页写入异常(Initial WriteException)。所谓保护违反异常,是指虽然存在着与已访问了的虚拟地址一致的地址变换信息可是在所指定的地址权限中并不许可实际的访问时产生的异常。而所谓起始页写入异常,是指尽管存在着与已进行了数据访问(写入)的虚拟地址一致的地址变换信息可还是发生的异常。
在MMU105的访问权限判定的算法中,首先,在401中根据XVSVMID.VMID寄存器值和SR.MD寄存器值进行判定。当为用户模式时转移到402,当为特权模式或虚拟机管理模式(XVS Mode)时转移到403。当为用户模式时,转移到402后在411中根据PR字段的值进行判定。如果是PR字段的值为00或01、即只许可特权模式下的访问的地址区域,则转移到412并判定为保护违反异常。如果是PR字段的值为10、即只许可用户模式下的读出的地址区域,则转移到413。如果是PR字段的值为11、即许可用户模式下的读出和写入的地址区域,则转移到414。通过上述413的转移,在421中根据访问是否是读出进行判定。当是读出时,转移到422并判定为许可访问。当不是读出、而是写入时,转移到423并判定为保护违反异常。通过上述414的转移,在431中也根据访问是否是读出来进行判定。当是读出时,转移到432并判定为许可访问。当是写入时,转移到433。通过433的转移,在441中根据D字段的值进行判定。当D字段的值为0时,转移到442并判定为起始页写入异常。当D字段的值为1时,转移到443并判定为许可访问。通过上述403的转移,在451中与411同样地根据PR字段的值进行判定。如果是PR字段的值为00或10、即只许可在特权模式下读出的地址区域,则转移到452。如果是PR字段的值为01或11、即许可在特权模式下读出和写入的地址区域,则转移到453。转移到452、453后分别在461、471中根据访问是否是读出来进行判定。当是读出时,分别转移到462、472,当是写入时,分别转移到463、473。当转移到462、472时,判定为许可访问。当转移到463时,判定为保护违反异常。转移到473后在481中根据D字段的值进行判定。当D字段的值为0时,转移到482并判定为起始页写入异常。当D字段的值为1时,转移到483并判定为许可访问。
根据图3、图4说明了的MMU的特征在于,对由上述VMID=0~255的用户模式和特权模式构成的多个操作系统环境,无需设置与其分别对应的翻译后援缓冲器(TLB)。因此既能够抑制硬件规模增大又能够实现本发明的方式。
在图5中示出高速缓冲存储器(Cache)106的结构。高速缓冲存储器(Cache)106高速缓存的数据由其本身和与该数据对应的物理地址的值这样的一对值构成。此处将被称为成组相联的高速缓冲存储器的结构作为一例。包含多组数据和对应物理地址的对而构成路径。包含多组路径而构成项目。例如具有0~255个高速缓存项目,各项目包含路径0~路径3。各项目,大致区分为地址阵列(Address Array)、数据阵列(Data Array)和VMID阵列(VMID Array)。在地址阵列中包含Tag字段、U字段、V字段,数据阵列保存图1的存储器(MEM)120的对应地址的数据,而且,还存储该数据处于怎样的状态。Tag字段存储地址的高位侧的多个位。U字段存储数据字段的LW0~LW7字段的数据与图1的存储器(MEM)120相同或不同、或LW0~LW7字段的数据是否是最新的。V字段存储该项目是否是有效数据。在数据阵列中包含LW0~LW7字段,LW0~LW7字段存储图1的存储器(MEM)120的数据的内容。VMID字段存储从图1的存储器(MEM)120向数据阵列LW0~LW7字段进行数据复制的时刻的XVSVMID.VMID寄存器值。
图6是示出在高速缓冲存储器106的命中判定中未命中时的对高速缓冲存储器106和内部总线BUS的数据的流程的图。当高速缓存未命中时,通过内部总线BUS读入与物理地址(Address(P))对应的内容,并将此时的物理地址存储到对应的Tag字段、将所读出的数据存储到LW0~LW7字段,但在中央运算处理单元(CPU)中同时将XVSVMID.VMID寄存器值存储到VMID字段。
图7是示出中央运算处理单元(CPU)中的高速缓冲存储器106的命中判定动作的图。高速缓冲存储器106的命中判定,当通过执行命令从执行部104输出逻辑地址时,通过将由存储器管理单元105变换后的物理地址及XVSVMID.VMID寄存器值与存储在高速缓冲存储器106的地址阵列内的Tag字段、V字段和VMID阵列的VMID字段内的内容进行比较来执行。特别是,在成组相联方式下,比较对象为根据发出已执行的命令的虚拟地址的低位部分检索的项目中所包含的全部路径。当存在命中的路径时,读出对应路径的数据阵列LW0~LW7字段内所存储的数据。
如使用上述高速缓冲存储器106,就没有必要设置与VMID=0~255的每1个对应的高速缓冲存储器,因而可以抑制硬件规模的增大。
图8是示出中央运算处理单元(CPU)中的pid信号(pid)的生成方法的图。pid信号为8位的信号,是指示总线访问是从中央运算处理单元(CPU)内的哪一个操作系统发出的信号。pid信号,根据上述的XVSCR.PIDSEL寄存器的值决定输出模式为VMID8、VMID4+ASID4、ASID8中的哪一个。
(1)当为VMID8模式时,在pid信号中,输出执行了产生总线地址的命令的时刻的XVSVMID.VMID寄存器值。
(2)当为VMID4+ASID4模式时,分别在pid信号的高4位中输出执行了命令的时刻的XVSVMID.VMID寄存器的低4位的值、在pid信号的低4位中,分别输出命中了的TLB项目的ASID寄存器的高4位的值。在这种情况下,以中央运算处理单元(CPU)在VMID=0~16的范围内进行数据处理为前提。
(3)当为ASID8模式时,在pid信号中,输出命中了的TLB项目的ASID寄存器的值。在这种情况下,以中央运算处理单元(CPU)仅在VMID=0进行数据处理为前提。
pid信号通过内部总线BUS输入到后述的物理地址管理模块(PAM)110。PAM模块110,位于内部总线BUS和存储器120或输入输出电路(I/O设备)130、131之间,用检验门电路(CHCGT)113、114、115将pid信号等的信号值与参数项目寄存器111所具有的参数项目的(PAMENTRY)进行比较等,并对通过了内部总线BUS的来自中央运算处理单元(CPU)的访问进行权限检验、或对地址进行地址偏移量加法运算等。物理地址管理模块(PAM)110,位于内部总线BUS和存储器120或I/O设备130、131之间的原因是,为了能够在一个部位检验来自中央运算处理单元(CPU)或CPU以外的总线主设备的访问。
图9是物理地址管理模块(PAM)110具有的参数项目寄存器(设定寄存器表)111的1个项目的结构。1个项目由16字节构成,并具有多个字段。对设定寄存器表111的写入以外的总线访问、即对所连接的总线从属设备的访问,根据该表111的值而被许可或被拒绝,进而进行对地址的地址偏移量的加法运算。
ADDR字段、AMSK字段,是从总线输入的地址信号(addr)的命中判定中使用的值。在ADDR字段内设定用于特定作为访问对象的地址区域的地址信息。SRC字段、SMSK字段,是从总线输入的源ID信号(src)的命中判定中使用的值。在SRC字段内存储识别作为访问主体的中央运算处理单元(CPU)等的总线主设备的识别码。源ID信号,是指示总线访问是从哪一个总线主设备发出的信号。PID字段、PMSK字段,是从总线输入的pid信号的命中判定中使用的值。pid信号,如上所述,从中央运算处理单元(CPU)输出。在PID字段内存储与pid信号比较的PID信息。PID信息是依据图8的PID信号的定义的数据。OFFSET字段,是当总线访问已被许可时应与地址信号的值相加的地址偏移量的值。上述地址偏移量,例如,是相对于存储器120的起始地址的直到由VMID特定的虚拟机固有的存储区域的地址偏移信息。在PR字段内存储指示是否许可读出总线访问的读保护信息。在PW字段内存储指示是否许可写入总线访问的写保护信息。设定寄存器表111的项目例如按每个总线主设备的VMID设定即可。
图10示出对总线从属设备120、130、131的访问的权限检验算法。对物理地址管理模块(PAM)110的参数项目寄存器(设定寄存器表)111的表设定由虚拟机管理器190进行。物理地址管理模块(PAM)110例如根据其硬件逻辑进行图10的处理。
作为第一判定,在1000中对总线的地址信号(addr)进行判定。进行地址信号(addr)的值和AMSK字段的逻辑“与”运算,如果其值与ADDR字段的值不一致,则拒绝访问(1006)。作为第二判定,在1001中对源ID信号(src)进行判定。对源ID信号(src)的值和SMSK字段的值进行扩展到源ID信号的位宽的逻辑“与”运算,如果其值与SRC字段的值不一致,则拒绝访问(1006)。作为第三判定,在1002中对总线的pid信号(pid)进行判定。对pid信号(pid)的值和PMSK字段的值进行扩展到pid信号的位宽的逻辑“与”运算,如果其值与PID字段的值不一致,则拒绝访问(1006)。作为最后的判定,进行总线访问种类的判定。当在1003中为读出访问时,在1004中如果PR字段不是1则拒绝访问(1006)。当在1003中为写入访问时,在1005中如果PW字段不是1则拒绝访问(1006)。此外,物理地址管理模块(PAM)110的设定寄存器表111,实际上包含多个项目,图10的判定对每个项目进行。如被判定为许可访问的项目为1项,则判定为许可访问(1007)。
在图11中举例示出物理地址管理模块110的总体结构。在图12中示出物理地址管理模块110中所包含的比较电路COMP的一例。在图13中示出物理地址管理模块110中所包含的地址偏移量加法运算电路OFFSET的一例。
在物理地址管理模块110和内部总线BUS之间的信号中,作为从内部总线BUS输入到物理地址管理模块110的信号,有访问权限信号(auth)、访问种类信号(opc)、源ID信号(src)、pid信号(pid)、地址信号(addr)、写入数据信号(wd)。特别是访问权限信号(auth)为输出执行作为在中央运算处理单元(CPU)中产生总线访问的原因的命令的时刻的XVSCR.MD寄存器值和SR.MD寄存器值的信号。而作为从物理地址管理模块110输出到内部总线BUS的信号,有读出数据信号(rd)、访问权限违反通知信号(err)。另外,在物理地址管理模块110和中断控制器(INTC)107之间的信号中,有访问权限违反中断通知信号ERRINT。另外,在物理地址管理模块110和存储器120或I/O设备130、131等的总线从属设备之间的信号中,作为物理地址管理模块110输出的信号,有访问种类信号(opc′)、源ID信号(src′)、地址信号(addr′)、写入数据信号(wd′),作为总线从属设备输出的信号,有读出数据信号(rd′)。在物理地址管理模块110内,上述图9中示出的设定寄存器表111例如具有16项的参数项目_1~16。从内部总线BUS输入的信号,输入到物理地址管理模块110内的比较电路AUTHCOMP。
在比较电路AUTHCOMP中,根据地址信号和访问权限信号,当访问目的地为物理地址管理模块110的设定寄存器表时,将访问分配到PAMENTRY_1~16,当为除此以外的通常的访问时,将访问分配到后级的比较电路COMP。而且,检查访问权限信号,并将对PAMENTRY_1~16的访问是否是来自在虚拟机管理模式(XVSMode)下运行着的程序输出到阻断电路BLOCKADE。在比较电路COMP中,进行不是对PAMENTRY_1~16的访问而是通常的总线访问的权限判定。根据物理地址管理模块110的设定寄存器表的内容对从比较电路AUTHCOMP输入的地址信号、访问种类信号、源ID信号、pid信号的内容进行屏蔽、一致比较,并将比较结果作为deny(拒绝)信号输出到阻断电路BLOCKADE。在阻断电路BLOCKADE中,利用由比较电路AUTHCOMP、COMP生成的比较结果的值,进行对PAMENTRY_1~16的访问、通常的总线访问的切断。如果是对PAMENTRY_1~16的访问,则将来自在虚拟机管理模式(XVSMode)下运行着的程序的访问以外的访问切断,如果是通常的总线访问,如上所述,当不存在许可访问的项目时切断。当由阻断电路BLOCKADE将总线访问切断时,通过err信号、ERRINT信号将发生了总线访问切断的情况分别通知内部总线BUS、中断控制器107。err信号、ERRINT信号的供给目的地,根据此时输入的信号pid控制。地址偏移量加法运算电路OFFSET,对由阻断电路BLOCKADE切断的通常的总线访问,进行将地址偏移量与其地址信号的值相加的运算。接收被判定为许可访问的项目作为hitentry(命中项目)信号,加上该项目的OFFSET字段的值并输出到总线目标设备。图1的检验门电路114、115由比较电路COMP和地址偏移量加法运算电路OFFSET构成。检验门电路113由比较电路AUTHCOMP和阻断电路BLOCKADE构成。此外,在图10中说明的处理是比较电路COMP进行的处理。
按照上述及图8~图11中示出的方式,进行对存储器120或I/O设备130、131的访问权限检验或地址偏置。PAMENTRY_1~16仅可以由虚拟机管理器190设定。另外,还要进行对总线访问的访问许可判定参数的追加、OFFSET电路的引入。由此,通过由虚拟机管理器190对物理地址管理模块110的适当的控制,可以进行对由VMID=0~255的用户模式、特权模式构成的多个操作系统环境的存储器120或I/O设备130、131的分配、分离。
在图14中举例示出中央运算处理单元(CPU)中的中断和异常的种类及发生这些情况时的转移目的地址。本说明书在实施方式的说明中将中断和异常区分开,但除此以外在中断的概念中也包含着异常。在1400中示出的“Exception(异常)”的行列,示出在该中央运算处理单元(CPU)中可能发生的异常的种类,在1410中示出的“Vector Address:向量地址(w/XVS support)”,示出中央运算处理单元(CPU)中的转移目的地址。以往,当发生了异常和中断时,产生对复位向量、或存储在被称作VBR的寄存器内的地址的转移,但在中央运算处理单元(CPU)中,转移到存储在上述的XVR寄存器内的地址。中断和异常的处理,一般是由硬件进行了转移后由存在于其转移目的地的操作系统程序进行,但在中央运算处理单元(CPU)中,除操作系统使用的VBR寄存器以外还可以转移到所准备的XVR寄存器的值,因而可以由虚拟机管理器190进行适当的处理。
在图15中示出中断控制器(INTC)107的一例。中断控制器107,由优先控制部PRIORITY对从微处理器1的外部端子输入的不可屏蔽中断(NM1)请求或外部中断请求(External IRQ)、以及从微处理器内部输入的内部中断请求(Internal IRQ)判定其优先级,并将优先级最高请求的请求等级(IRQ Priority Level)通知执行部(EXEC)104。中断控制器107,在内部具有寄存器RSTTOIRQ,当输入内部复位信号或外部复位信号(Internal/External RESET)时,根据寄存器RSTTOIRQ的值控制对所对应的执行部104的复位信号的激活/非激活。当寄存器RSTTOIRQ的值为“0”时,内部复位信号和外部复位信号,直接作为对全部的执行部104的复位信号RESET输出。结果是将微处理器1整体复位。当寄存器RSTTOIRQ的值为“1”时,内部复位信号和外部复位信号可以作为中断信号之一进行处理,并仅对所对应的执行部104进行与复位处理相同的处理。
因此,可以由虚拟机管理器190控制来自内部复位信号和外部复位信号的复位请求,并作为对特定的操作系统环境的复位进行处理。
以下,边参照图18~图32边从软件的观点说明微处理器1的结构。所谓软件是指通过控制硬件实现其功能,特别是将说明的重点放在虚拟机管理程序上。
在图18中示出由虚拟机管理器190进行的对多个操作系统的中央运算处理单元(CPU)、存储器120、I/O设备130、131的硬件资源分配的一例。所谓物理的硬件资源,是指在LSI上实际具有的硬件1830。此处,中央运算处理单元(CPU),作为CPU0~2共计连接3个。另外,地址连续的存储器120,通过物理地址管理模块(PAM)110与1个存储控制器(MC)1831连接。作为I/O资源,假定例如具备具有多个信道(Ch0~Ch2)的设备I/O Dev0、具有一个信道的设备I/O Dev1~4,并通过物理地址管理模块(PAM)110连接。虚拟机管理器190,将上述物理的硬件资源作为虚拟的硬件资源分配给多个操作系统,并可以由各个操作系统排他地使用所分配的硬件资源。此处,虚拟机管理器190,对3个操作系统(OS0~OS2)分别分配虚拟机VM0~VM2。VM0是VMID=0的虚拟机,VM1是VMID=1的虚拟机,VM2是VMID=2的虚拟机。与图1的用户程序(User Prog.)和操作系统的对相对应的是1个虚拟机(VM)。
图19举例示出用于设定虚拟机管理器的硬件资源分配的VM定义文件。中央运算处理单元(CPU)的分配,由图19的VM定义文件中的“CPU:”字段决定。微处理器每当通电复位时读入VM定义文件,每次都可以根据该文件进行硬件资源的分配,但此处假定在微处理器1的设计阶段根据VM定义文件进行硬件资源的分配。因此,所制成的微处理器1中的以中央运算处理为单位的硬件资源的分配是被固定的。在图1 9的例中,对VM0分配CPU0,对VM1分配CPU1,对VM2分配CPU1和CPU2。该分配的指定,假定OS0和OS1是在单个的中央运算处理单元(CPU)上运行的操作系统、OS2与对称型多处理器方式相对应、是在多个中央运算处理单元(CPU)上运行的操作系统。此处,应注意到,对于中央运算处理单元(CPU)的分配,在上述设定中,默认地指示着2种分配方式。即,1对1分配方式和1对n分配方式。所谓1对1分配方式,与其对应的是,例如对VM0的CPU0的分配。CPU0不分配给其他的虚拟机(VM),VM0不能与其他的虚拟机(VM)共享地使用CPU0,因此,虚拟机管理器190当微处理器1起动时可以只在CPU0上起动OS0。另一方面,所谓1对n分配方式,与其对应的是对VM1、VM2的CPU1的分配。这时,虚拟机管理器,在微处理器1的动作中一边按分时控制等方法在CPU1上切换OS1和OS2一边进行动作。这种控制最好利用硬件的独立动作域管理机构进行。
存储器120的分配,由图19的VM定义文件中的“PMem_Start:”字段、“PMem_Size:”字段和“VMem_Start:”字段决定。“PMem_Start:”字段和“PMem_Size:”字段,规定对虚拟机(VM)分配作为物理硬件资源存在的存储器的哪个地址区域。“VMem_Start:”字段,规定所分配的存储器在虚拟机(VM)上被配置在哪个地址区域。在本实施例中,对VM0分配物理存储器的从地址0x00000000起尺寸为0x04000000的64兆字节、即地址0x00000000~0x03FFFFFF。从VM0上该存储区域可以按地址0x00000000~0x03FFFFFF访问。对VM1分配地址0x04000000~0x07FFFFFF的64兆字节,但是,通过虚拟机管理器190的控制,从VM1上,该存储区域可以按地址0x00000000~0x03FFFFFF访问。对VM2分配地址0x08000000~0x0FFFFFFF的128兆字节,从VM2上该存储区域可以按地址0x00000000~0x07FFFFFFF访问。此处,对存储器的分配方式,应注意到不仅可以分配作为物理的硬件资源的存储器的地址区域,而且还可以设定将该存储区域分配在虚拟机(VM)的哪个地址区域上。操作系统,将所使用的存储器地址区域的起始地址设计为固定的,要变更该地址有时需要改变操作系统本身,这是因为,如果不能改变虚拟机(VM)上的地址区域,作为结果操作系统如不改变就不能实现操作系统的多种动作。对于如上所述的存储器的分配的控制,最好利用上述的物理地址管理模块(PAM)110进行。输入输出装置(I/O)的分配,由图19的VM定义文件中的“Exclusive(排他的)  I/O:”字段、“Partitioned(分区的)I/O:”字段和“Shared(共享的)I/O:”字段决定。对于由“Exclusive I/O:”字段指定的I/O设备,排他地分配给对应的虚拟机(VM)。对于由“PartitionedI/O:”字段指定的I/O设备,以由I/O设备规定的信道为单位,排他地分配给对应的虚拟机(VM)。对于由“Shared I/O:”字段指定的I/O设备,以由多个虚拟机(VM)共享的形式进行分配。关于由多个VM对I/O设备的共享,需要由虚拟机管理器190对从操作系统向虚拟机(VM)发出的访问进行自陷和协调的动作。关于自陷,最好利用上述的物理地址管理模块(PAM)110进行。另外,关于虚拟机管理器190的协调方法将在后文中说明。
以上,说明了由虚拟机管理器190进行的物理硬件资源的分配,但是,在虚拟机管理器190中,不仅进行分配,而且还进行将从在某个虚拟机(VM)上运行的操作系统、程序对其他VM的物理硬件资源的访问切断的域分离。这种控制,最好利用上述的物理地址管理模块(PAM)110进行。
另外,以上,说明了由虚拟机管理器190进行的物理的硬件资源的分配和域分离的方法,以下,说明虚拟机管理软件本身和多个操作系统组合的方式。在上述的结构中,最好是使虚拟机管理程序在对中央运算处理单元(CPU)新追加的虚拟机管理模式(XVS模式)下动作。
根据图20和图21说明本发明的虚拟机管理器的动作概要和模块结构。在图20中,作为微处理器1的起动时的动作流程,示出虚拟机管理程序内的初始化程序进行初始化处理的步骤。起动通过对硬件输入通电复位信号(2000)来进行,执行使微处理器1整体复位的通常复位处理。之后,开始虚拟机管理器IPL(IPL:Initial ProgramLoader:初始程序装入器)的执行(2001),根据图20的流程进行系统的初始化和虚拟机管理程序的起动、各个操作系统的起动。以下,按顺序说明图20的流程。
在通电复位后将控制转移到特定的CPU0的虚拟机管理器的IPL。IPL将自身的执行的图像从ROM(图1的121)装入存储器,并将控制转移到其项目。在该项目中有虚拟机管理初始化例行程序,并进行初始化。该一系列的处理全部由CPU0执行(步骤2001)。在虚拟机管理初始化例行程序中执行以下的处理。进行物理地址管理模块(PAM)110的初始化(步骤2002)、对CPU0的域的物理地址管理模块(PAM)110的表项目PAMENTRY的登录(步骤2003)、域间共享存储器的初始化(步骤2004、2005)、以及所有域用的物理地址管理模块(PAM)110的表项目的登录(步骤2006),在该时刻,由物理地址管理模块(PAM)110的地址变换机构,将存储器120设定为可以由各个中央运算处理单元(CPU)作为逻辑上独立的空间占有。进一步,设定CPU0以外的中央运算处理单元(CPU)的复位向量(步骤2007),并将CPU0以外的中央运算处理单元(CPU)的时钟停止解除(步骤2008)。在该时刻,可以将CPU0以外的中央运算处理单元(CPU)复位(步骤2009),并从视为各自占有的存储区域装入IPL。接着,CPU0进行域生成,并将该中央运算处理单元(CPU)的操作系统用IPL装入半物理地址空间(步骤2010、2012),在各个虚拟机管理器中转移到各操作系统用IPL的项目。与步骤2010、2012独立地在CPU0以外的中央运算处理单元(CPU)中进行以下的处理。生成各域,并将各操作系统用IPL装入半物理地址空间(步骤2011),在各虚拟机管理器中转移到各操作系统用IPL的项目(步骤2013)。按照以上的流程,虚拟机管理器和各域上的操作系统开始动作。图20的例由中央运算处理单元CPU0最先进行初始化处理,但并不限于此。
在图21中示出在微处理器1中结束了图20所示的起动顺序并变为动作中的虚拟机管理器190的模块结构和在虚拟机管理器与操作系统之间的执行流程转移。当初始化结束并在虚拟机管理器190上起动操作系统时,控制从虚拟机管理器190转移到用户程序或操作系统(2110),之后,虚拟机管理器190,仅当因中断或异常而使控制转移时进行动作。虚拟机管理器190,包括因中断或异常而转移到必要的服务的异常中断处理部(2101)和由其调用的虚拟机管理服务部分(2012)、因中断或异常的原因而向操作系统或其他的虚拟机管理器进行传送的传送处理部分(2103、2104)。当从应用程序或操作系统产生中断、异常时(2105),将控制转移到虚拟机管理器190。这是与通常的计算机中的异常、中断处理相同的机构,在以往的计算机和操作系统的组合中由操作系统核心程序中具有的异常·中断处理程序进行的处理,在本发明的系统中被控制转移到虚拟机管理器190内。
这时,中央运算处理单元(CPU)转移到具有操作系统运行的特权模式以上的权限的虚拟机管理模式(虚拟机管理模式(XVS模式))。虚拟机管理器在异常·中断处理部分中根据其原因进行以下所需的处理。即,第一,在TLB差错或一般异常等通常的中断或异常的情况下,不进行虚拟机管理器中的处理,而是直接转移到发生源的操作系统并传送事件(2103、2104)。第二,当由物理地址管理模块(PAM)检测到保护违反时,将其作为中断通知,按照PAM保护违反处理对其进行处理(2106)。第三,在来自多核心中的其他中央运算处理单元(CPU)的中断的情况下,由CPU间中断处理程序(2107)对其进行处理,并由虚拟机管理器取为在内部生成的虚拟中断(2108)。由虚拟机管理器190在要接受中断的中央运算处理单元(CPU)的中断寄存器内设定其产生原因,并将控制转移到操作系统,对该中断进行处理。
图22示出由虚拟机管理器190进行的物理存储器的对虚拟机(VM)的分配处理。与作为图1的1个VMID和操作系统的组的虚拟机101对应的是图22的VM0或VM1等的1个虚拟机(VM)。在本发明中,由虚拟机管理器190进行的对虚拟机(VM)的物理存储器分配,通过由虚拟机管理器190设定物理地址管理模块(PAM)110的项目表111实现。在项目表111中,设定着与各虚拟机(VM)的VMID对应的物理存储区域的信息,来自VM的存储器访问,由物理地址管理模块(PAM)110进行地址的变换,因此,可以减少虚拟机管理器190的开销。图23是表示虚拟机管理器190的使用共享存储器的域间通信的处理概要的图。与作为图1的1个VMID和操作系统的组的虚拟机101对应的是图23的VM0或VM1等的1个虚拟机(VM)。
当在微处理器1中在不同的虚拟机(VM)之间进行通信时,用共享存储器进行信息的收发。共享存储区域的设定,与VM用存储器的设定同样地由域结构体定义,并由物理地址管理模块(PAM)110设定。在虚拟机管理器190的利用共享存储器的通信中,由于虚拟机管理器190具有监查由域结构体定义的以VM为单位的访问权限的结构,可以将由域结构体不许可的非法访问切断并安全地执行通信。当想要使在某个虚拟机(VM)上运行着的应用程序或操作系统与在其他的虚拟机(VM)上运行着的应用程序或操作系统进行通信时,利用共享存储器访问服务,向虚拟机管理器190请求对共享存储器的访问。虚拟机管理器190的存储器管理模块,根据操作系统的共享存储器访问服务的请求,判定请求源虚拟机(VM)的访问权限,如果有访问权限,则许可VM所需的访问。当没有访问权限时,对VM返回差错信息。关于共享存储器的物理地址管理模块(PAM)110的项目设定和访问权限判定、控制流程,将在后文中用图27~图31进行说明。
图24示出从多个虚拟机(VM)对共享硬件资源的访问的协调处理。按时间序列示出图1所示的输入输出装置(I/O)130等共享硬件资源和在1个中央运算处理单元(CPU)上运行的VM(101)的访问中的处理。作为共享硬件资源,在本实施例中,例如对图3中示出的翻译后援缓冲器(TLB)的Address Array(地址阵列)的访问、对存在于微处理器1内的定时设备的访问等与其相当。当从应用程序在由2410指示的地点产生对资源的请求时发出系统呼叫,将控制转移到操作系统核心程序并执行由2430指示的该系统呼叫处理。当在该处理过程中在2440中执行必要的特权命令时,中央运算处理单元(CPU)产生异常并转移到虚拟机管理模式(XVS Mode),进行虚拟机管理器190的服务。当系统呼叫是对像定时器那样的由各虚拟机共享的资源的访问时,不能从请求源的操作系统访问定时器的物理实体,而是访问定时器的每个操作系统的实例。并将其称为代理执行。按照2460进行代理执行。虚拟机管理器190,根据系统呼叫的种类或要访问的设备的地址,可以得知应代理执行的对象,例如,如果是定时器,则访问作为该每个操作系统的实例确保的存储区域,并通过对其写入或读出进行代理执行。当访问结束时,以必要的结果值返回异常产生源。该返回处理可以使用一般的处理器中所准备的来自异常的返回命令等。在从虚拟机管理器中的代理执行返回的操作系统核心程序中,将由2450得到的结果值作为已执行的系统呼叫的结果值,最终到2420返回系统呼叫的产生源。该返回的方式与通常的操作系统中从系统呼叫返回的步骤相同,按照以上的步骤,在应用程序或操作系统中不进行程序的变更,可以像通常的方式那样处理系统呼叫并进行对资源的访问处理,从而能够实现从多个操作系统对共享资源的访问。
图25示出从多个虚拟机(VM)对共享输入输出装置(I/O)的访问协调处理。与图24的情况一样,共享图1所示的输入输出装置(I/O)130等,并按时间序列示出在多个中央运算处理单元(CPU)上运行的虚拟机(VM)101对这些装置的访问中的处理。图中示出的处理,相当于图18中示出的对I/O Der4的访问等。特别是此处示出共享输入输出装置(I/O)具有中断接口的情况。另外,还一并说明了不是由多个虚拟机(VM)共享、而是对排他地使用的输入输出装置(I/O)的访问处理的流程。
I/O处理的顺序,前半部分与图24中示出的流程相同。当从应用程序发出I/O请求的系统呼叫时,由操作系统核心程序接收该请求并进行处理。在该过程中产生对I/O寄存器的访问。在本发明的中央运算处理单元(CPU)中,当由图1的物理地址管理模块(PAM)110访问I/O寄存器时产生异常并转移到虚拟机管理模式(XVS Mode),进行虚拟机管理器的服务。
此处,虚拟机管理器的服务,根据I/O设备的类型分为以下的情况。第一形态,是I/O设备由1个操作系统占有的情况。这时,虚拟机管理器190识别占有该设备的操作系统,因此,如从占有着的操作系统发出I/O请求,则直接返回操作系统核心程序。在操作系统核心程序中进行通常的I/O操作,并返回系统呼叫的产生源。第二形态,是I/O设备由多个操作系统共享的情况。这时,进行使用设备的操作系统之间的排他控制,因此,虚拟机管理器在共享的区域内对每个共享设备设置作为排他控制机构的标志。
按照上述方式,进行虚拟机管理器的代理执行,将对I/O寄存器的访问置换为对每个操作系统的实例的访问。而且,在上述排他控制机构中,对该设备设定正由自身的虚拟机管理器使用中的标志。此处,当该标志已接通(ON)时,由于该设备在使用中,向操作系统核心程序返回差错信息。返回操作系统核心程序和从操作系统核心程序返回到应用程序如上所述。
在I/O处理中,除上述的处理以外,还从接收到请求的I/O设备输入其处理的结束中断。如中断处理的例子中所述,中断由中断控制器(INTC)107控制。作为第一形态,当I/O设备由1个操作系统占有时,根据中断控制器(INTC)107的分配,由占有着该设备的操作系统的虚拟机管理器190接收中断。虚拟机管理器190,利用虚拟中断机构,向自身管理的操作系统通知I/O结束中断。在接收到中断的操作系统核心程序中进行I/O结束操作,并返回等待I/O结束的系统呼叫产生源。作为第二形态,当I/O设备由多个操作系统共享时,根据中断控制器(INTC)107的分配,将中断发送到所有的中央运算处理单元(CPU),并成为由最先响应的中央运算处理单元(CPU)处理的自动分配模式。接收到该中断的中央运算处理单元(CPU)的虚拟机管理器190,参照排他控制机构,检测由哪个虚拟机管理器190使用着该设备。与上述同样地利用排他控制机构向由检测出的虚拟机管理器190管理的操作系统通知I/O结束中断。
在接收到中断的操作系统核心程序中进行I/O结束操作,并返回等待I/O结束的系统呼叫产生源。当I/O设备由多个操作系统共享时,在上述说明中有将在自动分配模式下接收到的中断传送到正确的操作系统的处理,但也可以由中断控制器(INTC)107将来自设备的中断直接传送到对应的中央运算处理单元(CPU),并将I上述/O设备由多个操作系统共享时的处理作为与I/O设备由1个操作系统占有时相同的处理。具体地说,对来自内置外围设备的中断,不是自动分配模式,而是固定分配模式,当虚拟机管理器使用该设备时,可以设定作为分配目的地的中央运算处理单元(CPU)。在共享设备的执行中,存在着进行排他控制的处理。在使用共享设备的过程中进行的处理中,将对该中断信号的分配目的地设定为请求使用该设备的虚拟机管理器190的中央运算处理单元(CPU)。如设备的使用结束,则在解除排他控制的处理中将中断控制器(INTC)107重新设定为自动分配模式。
以下,说明由虚拟机管理器设定的虚拟机(VM)之间的通信控制的例子。首先,用图26和图27说明VM间通信用的共享存储器的访问权限的设定方法。
在图26中举例示出使用了虚拟机管理器的VM间通信时的结构。图26的处理是由图1的虚拟机管理器190操作物理地址管理模块(PAM)110执行的。以下,VM0、VM1、VM2是与图1的101对应的由VMID指示的虚拟机。虚拟机管理器190,设定VM(VM0、VM1、VM2)在通信中使用的共享存储区域2450。这时,使用物理地址管理模块(PAM)110内的设定项目表111,并用如图9中所述的项目表数据对分配给各虚拟机VM0、VM1、VM2的共享存储区域2460、2462、2464设定来自其他的虚拟机VM的访问权限。总之,保证共享存储区域2460由虚拟机VM0使用,但虚拟机VM1、VM2的使用可以根据设定项目表111的设定内容而改变。由此,在逻辑上划分共享存储区域2460、2462、2464,并实现违反所设定的访问权限的访问、即虚拟机管理器190不许可的通信的切断。由于在VM间通信时构成为由物理地址管理模块(PAM)110对所有的通信实施强制访问控制,因此能够实现将物理地址管理模块(PAM)110作为基准监视器的访问控制。
物理地址管理模块(PAM)110内的设定项目表111,只能由虚拟机管理器190设定。当虚拟机管理器190在虚拟机管理模式(XVSMode)下运行时,可以防止在特权模式下运行的操作系统或在用户模式下运行的用户程序(应用程序)等在虚拟机(VM)上运行着的软件对物理地址管理模块(PAM)110的设定项目表111内的地址范围或访问权限的非法重写。
另外,在不具备虚拟机管理模式(XVS Mode)的硬件中,虚拟机管理器在特权模式下运行,但即使在这种情况下也能防止来自在用户模式下运行的应用程序的非法重写,并且在操作系统正常运行的范围内,也能防止物理地址管理模块(PAM)110的设定项目表的非法重写。可以作为VM间通信用共享存储器使用的存储器,是处于可以由物理地址管理模块(PAM)110进行访问控制的位置的微处理器1内部的存储器或SDRAM(Synchronous Dynamic Random Access:同步动态随机访问)存储器(MEM)120等作为主存储装置使用的存储器等。在图1中存储器120是微处理器1的片上存储器,但也可以是其他的芯片。
图27是物理地址管理模块(PAM)110的设定项目表111内的SRC字段/SMSK字段/PID字段/PMSK字段/PR字段/PW字段的设定例。在ADDR字段和AMSK字段内,指定作为VM间通信用的共享存储器分配的地址范围。当设定为ADDR=H′AFF0、AMSK=H′FFF0(H′意味着16进位数)时,指明了从H′AFF0_0000到H′AFFF_FFFF的1兆字节的区域,当对物理地址管理模块(PAM)110输入了该设定侄以外的addr信号时,根据图10的访问许可判定算法,不许可对该区域的访问。在SRC字段(2500)和SMSK字段(2502)内设定许可VM间通信的总线主设备。当SRC=H′03、SMSK=B′1(B′意味着二进位数)时,根据图10的访问许可判定算法,只许可对物理地址管理模块(PAM)110输入的src信号为H′03时的访问。当SRC=H′00、SMSK=B′0时,根据图10的访问许可判定算法,许可以任意的src信号值进行访问。在PID字段(2504)和PMSK字段(2506)中设定许可VM间通信的VM识别号码(VMID)。当PID=H′02、PMSK=B′1时,根据图10的访问许可判定算法,只许可pid信号为H′02时的访问。当PID=H′00、PMSK=B′0时,根据图10的访问许可判定算法,许可以任意的pid信号值进行访问。
在PR字段(2508)中设定读出权限,在PW字段(2510)中设定写入权限。当PR=B′1、PW=B′1时,许可读出/许可写入,当PR=B′1、PW=B′0时,只许可读出,当PR=B′0、PW=B′0时,不许可访问。
按照上述的组合,可以实现对物理地址管理模块(PAM)110的设定项目表111的访问权限的灵活设定。当设定了像图27(1)那样的项目时,变为没有访问限制的状态,无论从哪个虚拟机都可以读出、写入。当在图27(2)和(3)所示的项目设定中使ADDR/AMSK为相同的设定值时,为可以由src=H′03上的虚拟机(VM)和pid=H′02的虚拟机(VM)读出、写入的区域。当在图27(2)和(5)所示的项目设定中使ADDR/AMSK为相同的设定值时,为可以由src=H′03上的虚拟机(VM)读出、写入的区域和由src=H′1B、且pid=H′77的虚拟机(VM)读出的区域。当对某ADDR/AMSK设定只设定了图27(4)所示的项目时,该区域为src=H′05、且pid=H′0A的虚拟机(VM)专用的区域。
这样,通过对共享存储器设定访问权限并在该共享存储器上或在其间生成报文发送用的队列、或用共享存储器进行数据复制,可以实现能够由物理地址管理模块(PAM)110实施强制访问控制的通信。因此,提高了通信线路的可靠性和安全性,从而可以实现在虚拟机(VM)上运行的操作系统的可靠性和安全性的提高。
接着,参照图28~图30说明访问VM间通信用共享存储器时的控制流程。图28是对VM间通信用共享存储器进行写入时控制流程。图28的处理是由图1的虚拟机管理器190操作物理地址管理模块(PAM)110执行的。以下,虚拟机(VM)是与图1的101对应的由VMID指示的1个虚拟机。当任意的虚拟机(VM)为进行VM间通信而要执行对共享存储器的写入时(步骤2602),对虚拟机管理器发送排他的访问权请求(锁定请求)(步骤2604)。当虚拟机管理器190接收到来自虚拟机(VM)的锁定请求时,判定是否由其他的虚拟机(VM)施加着锁定(步骤2606)。在由其他的虚拟机(VM)锁定中的情况下,等待直到解除锁定。当其他的虚拟机(VM)未锁定时,许可请求元的虚拟机(VM)锁定(步骤2608)。被许可锁定的请求源虚拟机(VM)发出写入命令(步骤2610)。物理地址管理模块(PAM)110从总线BUS输入auth信号、opc信号、src信号、pid信号、addr信号,按照图10的访问许可判定流程,根据虚拟机(VM)的请求与项目表的各字段设定值的一致、不一致,判定是否有写入权限(步骤2612)。当判定结果为有写入权限时,执行对共享存储器的写入(步骤2614)。当请求源虚拟机(VM)结束写入时,解除锁定并结束处理。当判定结果为没有访问权限时,拒绝访问,并返回差错信息(步骤2640),解除锁定并结束处理(步骤2616、2618)。
虚拟机管理器,为实现图28中示出的功能,具有对虚拟机(VM)赋予排他的访问权的功能(许可锁定)和解除的功能(解除锁定)、存储和判定是否对虚拟机(VM)赋予排他的访问权的功能,并避免对共享存储器的访问的冲突。
另外,当由某个虚拟机(VM)长时间占有对共享存储器的访问权时,不执行其他的VM的通信,而且不能保障QoS(Quality ofService:服务质量),因而存在着导致系统总体的可靠性降低的可能性。为避免这种情况,虚拟机管理器具有将已赋予虚拟机(VM)的锁定权强制性地解除的功能。虚拟机管理器的强制锁定解除,在步骤2616中,在经过了一定的时间(定时器到时)等情况下实施。发出差错信息(步骤2640)后的锁定解除(步骤2616),可以是请求源虚拟机(VM)的锁定解除或虚拟机管理器的强制锁定解除的任何一种。
在步骤2602中,考虑了其他虚拟机(VM)对任意的VM请求写入的情况。为实现这种功能,虚拟机管理器,具有对其他VM通知对VM间通信用共享存储器的写入请求的中断。虚拟机管理器,通过对该请求目的地VM发送写入请求中断来通知写入请求。接收到写入请求中断的虚拟机(VM),对虚拟机管理器发送锁定请求并进行步骤2604以下的处理。
图29是VM间通信用共享存储器的读出时的控制流程。图29的处理是由图1的虚拟机管理器190操作物理地址管理模块(PAM)110执行的。以下,VM是与图1的101对应的由VMID指示的1个虚拟机。当任意的虚拟机(VM)为进行VM间通信而执行共享存储器的读出时(步骤2702),对虚拟机管理器发送排他的访问权请求(锁定请求)(步骤2704)。当虚拟机管理器接收到来自虚拟机(VM)的锁定请求时,判定是否由其他的虚拟机(VM)施加着锁定(步骤2706)。在由其他的虚拟机(VM)锁定中的情况下,等待直到解除锁定。当其他的虚拟机(VM)未锁定时,许可请求元的虚拟机(VM)锁定(步骤2708)。被许可锁定的请求源虚拟机(VM)发出读出命令(步骤2710)。物理地址管理模块(PAM)110从总线输入auth信号、opc信号、src信号、pid信号、addr信号,按照图10的访问许可判定流程,根据虚拟机(VM)的请求与项目表的各字段设定值的一致、不一致,判定是否有读出权限(步骤2712)。当判定结果为有读出权限时,执行对共享存储器的读出(步骤2714)。当请求源虚拟机(VM)结束读出时,解除锁定并结束处理。当判定结果为没有访问权限时,拒绝访问,并返回差错信息(步骤2740),解除锁定并结束处理(步骤2716、2718)。
在步骤2702中,在某个虚拟机(VM)结束对共享存储器的写入后,在要将已变为可读出的状态通知通信目的地VM等的情况下,存在着其他VM对任意的VM请求读出的情况。为实现这种功能,虚拟机管理器,具有对其他VM通知对VM间通信用共享存储器的读出请求的中断。虚拟机管理器,通过对该请求目的地VM发送读出请求中断来通知读出请求。接收到读出请求中断的虚拟机(VM),对虚拟机管理器发送锁定请求并进行步骤2704以下的处理。
锁定控制,使用在以上的图28的说明部分中所述的虚拟机管理器的锁定功能。发出差错信息(步骤2740)后的锁定解除(步骤2716),可以是请求源VM的锁定解除或虚拟机管理器的强制锁定解除的任何一种。
图30是虚拟机管理器代行从某个虚拟机(VM)的通信用共享存储器向另一个VM通信用共享存储器的数据复制时的控制流程。图30的处理是由图1的虚拟机管理器190操作物理地址管理模块(PAM)110执行的。以下,虚拟机(VM)是与图1的101对应的由VMID指示的1个虚拟机。这种控制,在用物理地址管理模块(PAM)110内的设定项目表对某个共享存储区域范围(ADDR/AMSK设定)只设定例如图27(4)所示的项目、即、将共享存储区域设定为特定VM专用区域时使用。该特定VM专用区域,对不依靠在其他VM上运行的操作系统、应用程序等软件的、不许可来自其他VM的干扰的要求具有高可靠性、安全性的虚拟机(VM)设定。由于虚拟机管理器190在虚拟机管理模式(XVS Mode)下运行,不受操作系统或应用程序等软件的错误或感染了计算机病毒、异常时的影响等,与在VM上运行的软件相比具有高的可靠性、高的安全性。因此,由虚拟机管理器190代行的复制,是为了得到比虚拟机(VM)上的软件的数据复制更高的可靠性、安全性。当从某个虚拟机(VM)对其他的VM发出数据复制请求时(步骤2802),虚拟机管理器,判定是否由其他的虚拟机(VM)施加着锁定(步骤2806)。在由其他的虚拟机(VM)锁定着的情况下,等待直到解除锁定。当其他的虚拟机(VM)未锁定时,执行将由请求源VM指定的数据复制到接收目的地VM的共享存储器的处理(步骤2808)。物理地址管理模块(PAM)110从总线输入auth信号、opc信号、src信号、pid信号、addr信号,按照图10的访问许可判定流程,判定请求源VM的请求与项目表的各字段设定值的是否一致、并判定是否有接收目的地共享存储器的写入权限(步骤2810)。当判定结果为没有写入权限时,执行差错处理(步骤2840),解除锁定(步骤2828、2830)并结束处理。当判定结果为有写入权限时,执行对接收目的地VM的共享存储器的数据复制(步骤2812)。数据复制结束后,虚拟机管理器,将物理地址管理模块(PAM)110内的接收目的地VM的共享存储器用设定项目设定为接收目的地VM专用、且不许可写入(PM=B′0)(步骤2814)。由此,可以减低从无关的VM参照或重写机密数据等重要信息的危险性。该设定的重写,可以只适用于复制了数据的区域,或适用于接收目的地VM的所有共享区域中的任何一个。
物理地址管理模块(PAM)110内的接收目的地VM的共享存储器用项目设定结束后,虚拟机管理器,对接收目的地VM赋予锁定许可(步骤2816),并对接收目的地VM发送读出请求中断(步骤2818)。接收目的地VM发出读出命令(步骤2820)。当物理地址管理模块(PAM)110的判定结果(步骤2822)为不许可对复制了数据的区域的写入等的访问时,执行差错处理(步骤2840)。如果是许可读出,等待来自接收目的地VM的锁定解除请求、或定时器到时(步骤2824),对在步骤2814中进行了重写的项目,按重写前的设定执行重写的处理(步骤2826)。之后,将数据复制结束通知请求源VM(步骤2827),解除锁定(步骤2828)并结束处理。锁定控制,使用在以上的图28的说明部分中所述的虚拟机管理器的锁定功能。
在图31、图32中,说明虚拟机管理器的异常、中断请求的分配方式。3110是与图1的101对应的1个操作系统。在装有虚拟机管理器190的多核心系统中,中断和异常根据图31进行处理。中断和异常有从外部通知中央运算处理单元(CPU)的和从中央运算处理单元(CPU)内部通知的。从外部的通知,无论是什么原因都要经由中断控制器(INTC)107并从INTC107通知中央运算处理单元(CPU)。
图15是中断分配控制机构。在虚拟机管理器190中设定图15的PRIORITY(优先控制部)内的屏蔽寄存器。所输入的中断信号,发送到由屏蔽指定了去向的1个或多个中央运算处理单元(CPU)。设置该屏蔽的动作,是计算机起动时起动虚拟机管理器并进行初始化的时刻,在这种情况下,可以指定根据计算机系统的结构预先设定了的中断的传输路径。另外,在应用程序的运行中也可以在将控制转移到虚拟机管理器的时刻进行这种设定,还可以根据执行状态或中断原因动态地变更中断的传输目的地。在虚拟机管理器190中,根据图32的中断原因类别和分配模式的对应表,进行上述屏蔽寄存器的设定。3200是使中断类别和分配模式建立对应关系的对应表。该对应表在由虚拟机管理器190进行计算机系统的初始化时设定。因此,例如来自进行动图像处理的硬件设备的中断,作为“来自内置外围的占有设备的中断”处理,并且是固定分配模式。在图32中当从动图像处理设备产生中断并输入到中断控制器(INTC)107时,通过中断屏蔽寄存器3231的屏蔽,将中断信号3250发送到根据其原因预先设定着的中央运算处理单元(CPU)(该CPU直接控制该动图像处理硬件)100。另一方面,在来自由多个中央运算处理单元(CPU)共享的例如像硬盘装置那样的共享设备的中断中为自动分配模式,不施加屏蔽,将中断信号发送到所有的中央运算处理单元(CPU),由最先接收到的中央运算处理单元(CPU)向回发送中断受理信号3260并对该中断进行处理。在将中断和异常通知中央运算处理单元(CPU)后,参照图31的异常向量表并根据原因进行处理。到此为止,与一般的中央运算处理单元(CPU)及其控制系统的处理相同。
在此之后,在具有虚拟机管理器190的本发明的多核心系统中,按照图31的结构进行如下的处理。原因为TLB差错或处理器的一般异常时从中央运算处理单元(CPU)内部通知,并由虚拟机管理器将其直接转移到操作系统等产生源的程序进行传输。之后,由操作系统或控制程序原来具有的中断/异常处理机构进行处理。当原因是来自外部的中断时,按以下的分类处理。第1,在来自多核心中的其他的中央运算处理单元(CPU)的CPU间中断的情况下,通过图15和图32的作为中断分配机构的中断控制器(INTC)107,使适当的中央运算处理单元(CPU)和虚拟机管理器接收该中断。由图31的“CPU间中断处理器”进行处理,设定异常代码和中断寄存器,并生成其作用就像来自接收到的中央运算处理单元(CPU)的内置模块的中断一样的“虚拟中断”。通过将该虚拟中断传输到接收到的虚拟机管理器190管理的操作系统进行与上述代理相同的处理。第2,在来自占有设备的中断的情况下,与上述同样地,通过中断控制器,使该中断由应对其进行处理的中央运算处理单元(CPU)和虚拟机管理器接收,因此,通过将该中断传输到接收到的虚拟机管理器190管理的操作系统,进行与原因为TLB差错或处理器的一般异常时相同的处理。第3,在来自像直接内存访问机构等那样的每个信道的占有设备的中断的情况下,与第2种情况同样地,通过中断控制器107,使该中断由应对其进行处理的中央运算处理单元(CPU)和虚拟机管理器接收。通过将该中断传输到接收到的虚拟机管理器190管理的操作系统,进行与原因为TLB差错或处理器的一般异常时相同的处理。第4,在物理地址管理模块(PAM)110的保护违反的中断的情况下,与上述同样地,通过中断控制器,使该中断由应对其进行处理的中央运算处理单元(CPU)和虚拟机管理器接收。在该中断的情况下,在虚拟机管理器190中进行共享存储器访问的控制,因此,生成用于通知作为操作对象的中央运算处理单元(CPU)的CPU间中断。所生成的CPU间中断,传送到中断控制器(INTC)107,在对象中央运算处理单元(CPU)和虚拟机管理器中按上述第2种情况进行处理。
图33示出根据外部、或内部请求对本发明的微处理器1输入复位信号时的动作。3300的固件是图1的虚拟机管理器190内的控制程序,3310是101的1个由VMID特定的操作系统运行的环境。假定对该微处理器1输入了复位信号3340。当复位信号为通电复位时,由复位信号3331对该微处理器的整个芯片进行复位,进行通常的复位处理。当复位信号为手动复位时,该信号由图15的寄存器RSTTOIRQ选择,该寄存器以“1”作为中断原因处理,并作为复位中断信号3332输出,成为图15的PRIORITY中的中断分配的对象。复位中断信号3332,根据图32所示的中断控制器(INTC)107中的分配模式选择,为自动分配模式,作为3333传送到所有的中央运算处理单元(CPU)并由最先接收到的中央运算处理单元(CPU)通过其具有的虚拟机管理器190进行处理。该处理,按照3300中示出的复位中断处理流程进行,如果是对物理中央运算处理单元(CPU)的复位(步骤3301),则向对应的物理中央运算处理单元(CPU)输出复位信号(步骤3302)。这可以通过与作为对象的物理中央运算处理单元(CPU)对应地将RSTTOIRQ设定为“0”并从虚拟机管理器再次发送手动复位信号进行。如果是对虚拟机的复位,则视为在虚拟机管理器内部产生了虚拟的复位中断进行处理。如果是对接收到中断的虚拟机管理器管理的(本域中的)虚拟机的复位(步骤3303),则按软件处理将处于该虚拟机管理器管理下的1个或多个虚拟机强制地转移到初始状态(步骤3304)。当不是接收到中断的虚拟机管理器管理的(其他域中的)虚拟机时(步骤3305),将该虚拟的复位中断作为「虚拟中断」,并通知管理应对其进行处理的虚拟机的中央运算处理单元(CPU)。按照中断处理步骤,根据中断控制器(INTC)107中的分配模式选择,为固定分配模式,将复位虚拟中断传送到作为对象的中央运算处理单元(CPU),并由管理该中央运算处理单元(CPU)的虚拟机管理器按软件处理将1个或多个虚拟机强制地转移到初始状态。
以上,根据实施方式具体地说明了本发明者完成的发明,但本发明并不限定于此,在不脱离其主旨的范围内当然可以进行各种变更。
例如,对图1的例子,也可以将以往的中央运算处理单元和物理地址管理模块(PAM)110组合而构成微处理器(第1变形例)。这时,上述的虚拟机管理器190和操作系统,都以特权模式运行。但是,在这种情况下,使多个动作域间的相互影响减轻的效果降低。另外,对图1的例子,也可以将具有图16、图17的方式的中央运算处理单元(CPU)和物理地址管理模块(PAM)110组合(第2变形例)。在这种情况下,也使多个动作域间的相互影响减轻的效果降低。图16与图3中示出的例子相对应,图17与图5中示出的例子相对应,图16中被称作STID的寄存器部分,相当于图3中的VMID寄存器,但VMID寄存器为8位,与此不同,STID为1位的寄存器。另外,图17中被称作NS的寄存器部分,相当于图5中的VMID存储器,但VMID存储器为8位,与此不同,NS为1位。在具有上述图16、图17中示出的硬件的第2变形例的微处理器中,也由虚拟机管理器进行其控制,因此可以限定地实现在本发明中实施的方式。
在上述第1变形例中,从图9的表列项目删除PID字段、PMSK字段后构成设定寄存器表。在第1变形例中可以采用将图10中步骤1002的pid判定删除后的算法。在第1变形例中,图11的比较电路AUTHCOMP中的访问权限信号的检查不同。具体地说,在图11中,对PAMENTRY_1~16的访问必须来自在虚拟机管理模式(XVSMode)下运行的程序,但在第1变形例中必须来自在特权模式下运行的程序。在第1变形例中,中央运算处理单元(CPU)中的中断、异常的种类和这些情况发生时的转移目的地地址的方式,与以往的中央运算处理单元(CPU)的相同。另外,在第1变形例中,虚拟机管理软件,最好在特权模式下与操作系统协调动作。

Claims (13)

1.一种数据处理器,具有根据模式寄存器内所设定的信息有选择地构成在不同的操作系统的控制下执行应用程序的多个虚拟机和进行上述虚拟机的控制的虚拟机管理器的中央运算处理单元,和管理上述虚拟机对可利用的硬件资源的访问的资源访问管理模块,
上述资源访问管理模块,输入从上述所设定的模式寄存器得到的信息和上述中央运算处理单元的对上述硬件资源的访问控制信息,并将该输入信息和控制寄存器内所设定的信息进行比较,来控制能否进行响应上述访问控制信息的对上述硬件资源的访问。
2.根据权利要求1所述的数据处理器,其特征在于:
上述控制寄存器,可由上述虚拟机管理器变更其设定信息。
3.根据权利要求2所述的数据处理器,其特征在于:
上述中央运算处理单元当输入中断信号时,构成上述虚拟机管理器来判定中断原因,当判别是第1中断原因时,为响应上述中断而执行上述操作系统的命令,当判别是第2中断原因时,由上述虚拟机管理器进行响应上述中断的处理。
4.根据权利要求1所述的数据处理器,其特征在于:
上述模式寄存器,包括指定多个虚拟机中的一个虚拟机的虚拟机ID寄存器、指示在虚拟机中是可执行应用程序还是可执行操作系统的CPU动作模式寄存器、以及指示是构成虚拟机管理器还是构成虚拟机的扩展CPU动作模式寄存器。
5.根据权利要求4所述的数据处理器,其特征在于:
具有多个上述中央运算处理单元,在上述中央运算处理单元输出的对上述硬件资源的访问控制信息中包含该中央运算处理单元的识别码信息。
6.根据权利要求5所述的数据处理器,其特征在于:
上述控制寄存器具有寄存区域,该寄存区域用于存储构成许可对作为上述硬件资源的存储区域的访问的虚拟机的中央运算处理单元的识别码信息。
7.根据权利要求6所述的数据处理器,其特征在于:
上述控制寄存器具有寄存区域,用于存储相对于作为上述硬件资源的存储区域的起始地址的直到上述虚拟机固有的存储区域为止的地址偏移信息。
8.根据权利要求1所述的数据处理器,其特征在于:
还具有连接上述中央运算处理单元和上述资源访问管理模块的内部总线、连接在上述资源访问管理模块上的作为上述硬件资源的存储器和输入输出电路,并形成在1个半导体芯片上。
9.一种数据处理器,具有可根据所设定的动作模式在不同的操作系统的控制下执行程序的多个中央运算处理单元,和管理上述多个中央运算处理单元对可利用的硬件资源的访问的资源访问管理模块,
上述资源访问管理模块,输入与上述所设定的动作模式相对应的信息和上述中央运算处理单元的对上述硬件资源的访问控制信息,并将该输入信息和控制寄存器内所设定的信息进行比较,来控制能否进行响应上述访问控制信息的对硬件资源的访问。
10.根据权利要求9所述的数据处理器,其特征在于:
作为上述动作模式具有第1动作模式、第2动作模式及第3动作模式,第1动作模式是上述中央运算处理单元根据应用程序执行命令的动作模式,第2动作模式是上述中央运算处理单元根据操作系统执行命令的动作模式,第3动作模式是控制上述第1动作模式中的命令的执行和上述第2动作模式中的命令的执行的动作模式。
11.根据权利要求10所述的数据处理器,其特征在于:
上述控制寄存器可在上述第3动作模式中变更。
12.根据权利要求11所述的数据处理器,其特征在于:
上述中央运算处理单元当输入中断信号时,转移到第3动作模式判定中断原因,当判别是第1中断原因时,转移到第2动作模式,执行上述操作系统的命令而响应上述中断,当判别是第2中断原因时,执行上述管理程序的命令而进行响应上述中断的处理。
13.根据权利要求9所述的数据处理器,其特征在于:
还具有连接上述中央运算处理单元和上述资源访问管理模块的内部总线、连接在上述资源访问管理模块上的作为上述硬件资源的存储器和输入输出电路,并形成在1个半导体芯片上。
CN200710180980.8A 2006-10-10 2007-10-10 数据处理器 Expired - Fee Related CN101162443B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006276066A JP4756603B2 (ja) 2006-10-10 2006-10-10 データプロセッサ
JP276066/2006 2006-10-10

Publications (2)

Publication Number Publication Date
CN101162443A true CN101162443A (zh) 2008-04-16
CN101162443B CN101162443B (zh) 2012-06-27

Family

ID=39275939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710180980.8A Expired - Fee Related CN101162443B (zh) 2006-10-10 2007-10-10 数据处理器

Country Status (4)

Country Link
US (1) US8713563B2 (zh)
JP (1) JP4756603B2 (zh)
CN (1) CN101162443B (zh)
TW (1) TWI470552B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103109275A (zh) * 2010-09-07 2013-05-15 爱德万测试(新加坡)私人有限公司 在半导体测试环境中使用虚拟仪器的系统、方法和设备
WO2013082749A1 (zh) * 2011-12-06 2013-06-13 华为技术有限公司 一种硬件资源保护方法和系统以及虚拟机管理器
CN103365630A (zh) * 2012-03-30 2013-10-23 瑞萨电子株式会社 半导体设备
CN103383667A (zh) * 2012-05-01 2013-11-06 瑞萨电子株式会社 存储器保护电路、处理单元和存储器保护方法
CN103778099A (zh) * 2012-10-17 2014-05-07 瑞萨电子株式会社 信息处理设备
CN104731559A (zh) * 2015-04-14 2015-06-24 福州瑞芯微电子有限公司 一种寄存器的配置方法及装置
CN104954356A (zh) * 2014-03-27 2015-09-30 英特尔公司 保护共享的互连以用于虚拟机
CN107707665A (zh) * 2017-10-19 2018-02-16 郑州云海信息技术有限公司 一种网络存储方法、装置、系统及计算机可读存储介质
CN108229201A (zh) * 2016-12-15 2018-06-29 瑞萨电子株式会社 数据处理设备和访问控制方法
CN108780387A (zh) * 2016-03-21 2018-11-09 高通股份有限公司 虚拟化环境中的存储资源管理
CN109643355A (zh) * 2016-09-09 2019-04-16 株式会社日立产机系统 控制器和控制管理系统
CN109690490A (zh) * 2016-09-05 2019-04-26 三菱电机株式会社 嵌入系统、嵌入系统控制方法和数据匹配性判定方法
CN110502388A (zh) * 2018-05-18 2019-11-26 瑞萨电子株式会社 数据处理装置
CN110532816A (zh) * 2018-05-25 2019-12-03 瑞萨电子株式会社 存储器保护电路和存储器保护方法
CN110688194A (zh) * 2018-07-06 2020-01-14 中兴通讯股份有限公司 基于云桌面的磁盘管理方法、虚拟机及存储介质
CN113711191A (zh) * 2019-05-16 2021-11-26 欧姆龙株式会社 信息处理装置
CN117009128A (zh) * 2023-09-14 2023-11-07 飞腾信息技术有限公司 一种错误上报方法及计算机系统

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527673B2 (en) * 2007-05-23 2013-09-03 Vmware, Inc. Direct access to a hardware device for virtual machines of a virtualized computer system
US8521966B2 (en) * 2007-11-16 2013-08-27 Vmware, Inc. VM inter-process communications
US8380907B2 (en) * 2008-02-26 2013-02-19 International Business Machines Corporation Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US8140834B2 (en) 2008-02-26 2012-03-20 International Business Machines Corporation System, method and computer program product for providing a programmable quiesce filtering register
US8458438B2 (en) * 2008-02-26 2013-06-04 International Business Machines Corporation System, method and computer program product for providing quiesce filtering for shared memory
US8527715B2 (en) * 2008-02-26 2013-09-03 International Business Machines Corporation Providing a shared memory translation facility
US20100161879A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient and Secure Main Memory Sharing Across Multiple Processors
US20100161909A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Systems and Methods for Quota Management in a Memory Appliance
US20100161908A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient Memory Allocation Across Multiple Accessing Systems
US20100161929A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Flexible Memory Appliance and Methods for Using Such
US20110161644A1 (en) * 2009-02-26 2011-06-30 Tohru Nojiri Information processor
CN101819564B (zh) * 2009-02-26 2013-04-17 国际商业机器公司 协助在虚拟机之间进行通信的方法和装置
JP5398309B2 (ja) * 2009-03-09 2014-01-29 三菱電機株式会社 仮想計算機システム、仮想計算機システムの通信制御プログラム及び仮想計算機システムの通信制御方法
JP5578698B2 (ja) 2009-04-23 2014-08-27 ルネサスエレクトロニクス株式会社 半導体データ処理装置及びデータ処理システム
US8990433B2 (en) * 2009-07-01 2015-03-24 Riverbed Technology, Inc. Defining network traffic processing flows between virtual machines
JP5491102B2 (ja) 2009-08-27 2014-05-14 ルネサスエレクトロニクス株式会社 データプロセッサ
US8887144B1 (en) 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US10177934B1 (en) 2009-09-04 2019-01-08 Amazon Technologies, Inc. Firmware updates inaccessible to guests
US8214653B1 (en) 2009-09-04 2012-07-03 Amazon Technologies, Inc. Secured firmware updates
US9565207B1 (en) 2009-09-04 2017-02-07 Amazon Technologies, Inc. Firmware updates from an external channel
US8102881B1 (en) 2009-09-08 2012-01-24 Amazon Technologies, Inc. Streamlined guest networking in a virtualized environment
US8601170B1 (en) 2009-09-08 2013-12-03 Amazon Technologies, Inc. Managing firmware update attempts
US8971538B1 (en) 2009-09-08 2015-03-03 Amazon Technologies, Inc. Firmware validation from an external channel
US8300641B1 (en) 2009-09-09 2012-10-30 Amazon Technologies, Inc. Leveraging physical network interface functionality for packet processing
US8640220B1 (en) * 2009-09-09 2014-01-28 Amazon Technologies, Inc. Co-operative secure packet management
US8959611B1 (en) 2009-09-09 2015-02-17 Amazon Technologies, Inc. Secure packet management for bare metal access
US8381264B1 (en) 2009-09-10 2013-02-19 Amazon Technologies, Inc. Managing hardware reboot and reset in shared environments
JP2011118578A (ja) 2009-12-02 2011-06-16 Renesas Electronics Corp 情報処理装置
JP5493976B2 (ja) * 2010-02-18 2014-05-14 富士通株式会社 情報処理装置、計算機システム及びプログラム
US8826271B2 (en) * 2010-04-28 2014-09-02 Cavium, Inc. Method and apparatus for a virtual system on chip
US20140108701A1 (en) * 2010-07-16 2014-04-17 Memory Technologies Llc Memory protection unit in a virtual processing environment
CN102346680B (zh) * 2010-08-02 2014-04-09 财团法人资讯工业策进会 虚拟机器的资源调整系统及方法
US8806481B2 (en) * 2010-08-31 2014-08-12 Hewlett-Packard Development Company, L.P. Providing temporary exclusive hardware access to virtual machine while performing user authentication
US8479042B1 (en) * 2010-11-01 2013-07-02 Xilinx, Inc. Transaction-level lockstep
WO2012060148A1 (ja) * 2010-11-02 2012-05-10 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・アクセスを制御する装置およびコンピュータ
US8621496B2 (en) 2011-04-05 2013-12-31 Netapp, Inc. Decoupled application program-operating system computing architecture
CN102156665B (zh) * 2011-04-13 2012-12-05 杭州电子科技大学 一种虚拟化系统竞争资源差异化服务方法
US9026630B2 (en) 2011-06-14 2015-05-05 Vmware, Inc. Managing resources in a distributed system using dynamic clusters
US9170840B2 (en) * 2011-11-02 2015-10-27 Lenova Enterprise Solutions (Singapore) Pte. Ltd. Duration sensitive scheduling in a computing environment
CN103164260B (zh) * 2011-12-15 2016-06-01 中国银联股份有限公司 用于移动终端的应用程序管理系统及方法
JP5933356B2 (ja) * 2012-06-12 2016-06-08 ルネサスエレクトロニクス株式会社 コンピュータシステム
WO2013189008A1 (en) 2012-06-18 2013-12-27 Honeywell International Inc. Design pattern for secure store
US9912517B1 (en) 2012-08-23 2018-03-06 Amazon Technologies, Inc. Optimized deployment and execution of programs in a distributed computing environment
US9588788B1 (en) * 2012-08-23 2017-03-07 Amazon Technologies, Inc. Optimized communication between program components executing in virtual machines
US9424199B2 (en) * 2012-08-29 2016-08-23 Advanced Micro Devices, Inc. Virtual input/output memory management unit within a guest virtual machine
CN103346981B (zh) 2013-06-28 2016-08-10 华为技术有限公司 虚拟交换方法、相关装置和计算机系统
JP5920595B2 (ja) * 2013-07-16 2016-05-18 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
US20150058926A1 (en) * 2013-08-23 2015-02-26 International Business Machines Corporation Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment
US9076017B2 (en) 2013-11-27 2015-07-07 Cisco Technology, Inc. Hardware virtualization module for exclusive controlled access to CPU
CN104714846B (zh) * 2013-12-17 2018-06-05 华为技术有限公司 资源处理方法、操作系统及设备
WO2015100622A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 虚拟机热迁移的方法和服务器
US20150254364A1 (en) * 2014-03-04 2015-09-10 Vmware, Inc. Accessing a file in a virtual computing environment
US9678903B1 (en) 2014-10-15 2017-06-13 Intel Corporation Systems and methods for managing inter-CPU interrupts between multiple CPUs
FR3028065B1 (fr) * 2014-10-30 2017-12-22 Stmicroelectronics Rousset Procede de commande d'une unite de traitement ameliorant la gestion des taches a executer et unite de traitement correspondante
CN106155812A (zh) 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、系统及电子设备
US10007498B2 (en) 2015-12-17 2018-06-26 Architecture Technology Corporation Application randomization mechanism
US10412116B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Mechanism for concealing application and operation system identity
US10412114B1 (en) * 2015-12-17 2019-09-10 Architecture Technology Corporation Application randomization mechanism
US10235211B2 (en) 2016-04-22 2019-03-19 Cavium, Llc Method and apparatus for dynamic virtual system on chip
JP6235088B2 (ja) * 2016-08-24 2017-11-22 ルネサスエレクトロニクス株式会社 情報処理装置
CN107783913B (zh) * 2016-08-31 2021-12-03 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
US10339068B2 (en) * 2017-04-24 2019-07-02 Advanced Micro Devices, Inc. Fully virtualized TLBs
US10554685B1 (en) * 2017-05-25 2020-02-04 Architecture Technology Corporation Self-healing architecture for resilient computing services
US11126474B1 (en) * 2017-06-14 2021-09-21 Amazon Technologies, Inc. Reducing resource lock time for a virtual processing unit
US10509666B2 (en) * 2017-06-29 2019-12-17 Ati Technologies Ulc Register partition and protection for virtualized processing device
CN107479943B (zh) * 2017-07-03 2020-02-21 北京东土科技股份有限公司 基于工业互联网操作系统的多操作系统运行方法及装置
US10592281B1 (en) 2017-09-28 2020-03-17 Amazon Technologies, Inc. Wait optimizer for recording an order of first entry into a wait mode by a virtual central processing unit
US11500665B2 (en) * 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US10915457B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
US11182507B2 (en) * 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US11481241B2 (en) * 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US10915465B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
JP2021022061A (ja) 2019-07-25 2021-02-18 キオクシア株式会社 ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法
JP6885635B1 (ja) * 2020-03-04 2021-06-16 Necプラットフォームズ株式会社 情報処理装置、情報処理方法及び情報処理装置用プログラム
TWI752458B (zh) * 2020-04-09 2022-01-11 招慶 林 匯流排上元件動態定址系統
US11822964B2 (en) * 2020-06-03 2023-11-21 Baidu Usa Llc Data protection with static resource partition for data processing accelerators
CN115190167B (zh) * 2022-06-29 2024-04-09 深圳市联软科技股份有限公司 一种基于共享内存通信的代理系统及方法
WO2024089832A1 (ja) * 2022-10-27 2024-05-02 三菱電機株式会社 バス帯域制御装置およびバス帯域制御方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5960652A (ja) * 1982-09-30 1984-04-06 Fujitsu Ltd デ−タ処理装置
EP0192232B1 (en) * 1985-02-18 1993-11-18 Nec Corporation Data processing apparatus
JPS6346545A (ja) * 1986-08-14 1988-02-27 Nippon Telegr & Teleph Corp <Ntt> 仮想計算機制御方式
US4835667A (en) * 1987-06-15 1989-05-30 Prescolite, Inc. Thermal protector device for a lighting unit
JPH02146634A (ja) * 1988-11-29 1990-06-05 Fujitsu Ltd 仮想計算機システムにおける割込み制御方式
US5230069A (en) * 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
JP2640871B2 (ja) * 1990-10-20 1997-08-13 富士通株式会社 仮想計算機システム
US5701493A (en) * 1995-08-03 1997-12-23 Advanced Risc Machines Limited Exception handling method and apparatus in data processing systems
JPH0981459A (ja) * 1995-09-19 1997-03-28 Hitachi Ltd アドレス変換バッファ装置
JP2002073358A (ja) * 2000-09-04 2002-03-12 Hitachi Ltd 仮想計算機主記憶のアクセス制御方法
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
JP3729407B2 (ja) * 2002-08-06 2005-12-21 ブラザー工業株式会社 縫製装置及び縫製装置の針棒位置変更制御プログラム
GB2411027B (en) * 2002-11-18 2006-03-15 Advanced Risc Mach Ltd Control of access to a memory by a device
US7149862B2 (en) * 2002-11-18 2006-12-12 Arm Limited Access control in a data processing apparatus
JP2004334410A (ja) 2003-05-06 2004-11-25 Hitachi Ltd 情報処理装置及びプロセッサ
US20050076186A1 (en) * 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
EP1669864B1 (en) * 2004-12-03 2010-06-02 STMicroelectronics Srl A process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor
US7409719B2 (en) * 2004-12-21 2008-08-05 Microsoft Corporation Computer security management, such as in a virtual machine or hardened operating system
US20060190532A1 (en) * 2005-02-23 2006-08-24 Kalyana Chadalavada Apparatus and methods for multiple user remote connections to an information handling system via a remote access controller

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103109275B (zh) * 2010-09-07 2016-02-03 爱德万测试公司 在半导体测试环境中使用虚拟仪器的系统、方法和设备
CN103109275A (zh) * 2010-09-07 2013-05-15 爱德万测试(新加坡)私人有限公司 在半导体测试环境中使用虚拟仪器的系统、方法和设备
WO2013082749A1 (zh) * 2011-12-06 2013-06-13 华为技术有限公司 一种硬件资源保护方法和系统以及虚拟机管理器
CN103270491A (zh) * 2011-12-06 2013-08-28 华为技术有限公司 一种硬件资源保护方法和系统以及虚拟机管理器
CN103365630B (zh) * 2012-03-30 2017-06-09 瑞萨电子株式会社 半导体设备
CN103365630A (zh) * 2012-03-30 2013-10-23 瑞萨电子株式会社 半导体设备
CN103383667A (zh) * 2012-05-01 2013-11-06 瑞萨电子株式会社 存储器保护电路、处理单元和存储器保护方法
CN103383667B (zh) * 2012-05-01 2017-11-14 瑞萨电子株式会社 存储器保护电路、处理单元和存储器保护方法
CN103778099A (zh) * 2012-10-17 2014-05-07 瑞萨电子株式会社 信息处理设备
CN103778099B (zh) * 2012-10-17 2018-05-15 瑞萨电子株式会社 信息处理设备
US9740636B2 (en) 2012-10-17 2017-08-22 Renesas Electronics Corporation Information processing apparatus
CN104954356A (zh) * 2014-03-27 2015-09-30 英特尔公司 保护共享的互连以用于虚拟机
CN104731559A (zh) * 2015-04-14 2015-06-24 福州瑞芯微电子有限公司 一种寄存器的配置方法及装置
CN108780387B (zh) * 2016-03-21 2021-06-29 高通股份有限公司 虚拟化环境中的存储资源管理
CN108780387A (zh) * 2016-03-21 2018-11-09 高通股份有限公司 虚拟化环境中的存储资源管理
CN109690490A (zh) * 2016-09-05 2019-04-26 三菱电机株式会社 嵌入系统、嵌入系统控制方法和数据匹配性判定方法
CN109643355A (zh) * 2016-09-09 2019-04-16 株式会社日立产机系统 控制器和控制管理系统
CN109643355B (zh) * 2016-09-09 2023-09-12 株式会社日立产机系统 控制器和控制管理系统
CN108229201B (zh) * 2016-12-15 2023-08-15 瑞萨电子株式会社 数据处理设备和访问控制方法
CN108229201A (zh) * 2016-12-15 2018-06-29 瑞萨电子株式会社 数据处理设备和访问控制方法
CN107707665A (zh) * 2017-10-19 2018-02-16 郑州云海信息技术有限公司 一种网络存储方法、装置、系统及计算机可读存储介质
CN110502388A (zh) * 2018-05-18 2019-11-26 瑞萨电子株式会社 数据处理装置
CN110532816A (zh) * 2018-05-25 2019-12-03 瑞萨电子株式会社 存储器保护电路和存储器保护方法
CN110532816B (zh) * 2018-05-25 2024-04-23 瑞萨电子株式会社 存储器保护电路和存储器保护方法
CN110688194A (zh) * 2018-07-06 2020-01-14 中兴通讯股份有限公司 基于云桌面的磁盘管理方法、虚拟机及存储介质
CN110688194B (zh) * 2018-07-06 2023-03-17 中兴通讯股份有限公司 基于云桌面的磁盘管理方法、虚拟机及存储介质
CN113711191A (zh) * 2019-05-16 2021-11-26 欧姆龙株式会社 信息处理装置
CN117009128A (zh) * 2023-09-14 2023-11-07 飞腾信息技术有限公司 一种错误上报方法及计算机系统
CN117009128B (zh) * 2023-09-14 2023-12-22 飞腾信息技术有限公司 一种错误上报方法及计算机系统

Also Published As

Publication number Publication date
TW200834420A (en) 2008-08-16
US20080086729A1 (en) 2008-04-10
TWI470552B (zh) 2015-01-21
JP4756603B2 (ja) 2011-08-24
US8713563B2 (en) 2014-04-29
JP2008097173A (ja) 2008-04-24
CN101162443B (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
CN101162443B (zh) 数据处理器
CN1991808B (zh) 用于访客访问存储器映射的设备的方法和装置
EP3311283B1 (en) Data processing apparatus and method with ownership table
US8458791B2 (en) Hardware-implemented hypervisor for root-of-trust monitoring and control of computer system
US7886098B2 (en) Memory access security management
CN101452423B (zh) 控制硬件加速器内数据值的清除
CN108154054A (zh) 过滤一致性协议事务
CN104685479A (zh) 客户虚拟机内的虚拟输入/输出存储器管理单元
JP2003518287A (ja) デュアルモードプロセッサ
US11698995B2 (en) Peripheral access on a secure-aware bus system
US20030172214A1 (en) Data processing system with peripheral access protection and method therefor
EP3814960B1 (en) Secure-aware bus system
WO2008100414A1 (en) Security for codes running in non-trusted domains in a processor core
WO2010097925A1 (ja) 情報処理装置
CN116583840A (zh) 快速外围部件互连保护控制器
US11537762B2 (en) Secure peripheral interconnect
JP6679419B2 (ja) メモリ保護ユニット、メモリ管理ユニット、及びマイクロコントローラ
CA2551045C (en) Input-output control apparatus, input-output control method, process control apparatus and process control method
TW202246989A (zh) 映射分區識別符
JP3585510B2 (ja) プログラム実行管理装置及びプログラム実行管理方法
Averlant et al. An abstraction model and a comparative analysis of Intel and ARM hardware isolation mechanisms
Bost Hardware support for robust partitioning in freescale qoriq multicore socs (p4080 and derivatives)
KR20080079124A (ko) 시스템 자원에 대한 접근 제어 장치 및 방법
US20230342187A1 (en) Processing of interrupts
US20090037668A1 (en) Protected portion of partition memory for computer code

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: RENESAS ELECTRONICS CO., LTD.

Free format text: FORMER OWNER: RENESAS TECHNOLOGY CORP.

Effective date: 20100925

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20100925

Address after: Kanagawa

Applicant after: Renesas Electronics Corporation

Address before: Tokyo, Japan, Japan

Applicant before: Renesas Technology Corp.

C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: Tokyo, Japan, Japan

Patentee after: Renesas Electronics Corporation

Address before: Kanagawa

Patentee before: Renesas Electronics Corporation

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120627

Termination date: 20191010