CN100578456C - 信息处理装置、进程控制方法 - Google Patents
信息处理装置、进程控制方法 Download PDFInfo
- Publication number
- CN100578456C CN100578456C CN200610093659A CN200610093659A CN100578456C CN 100578456 C CN100578456 C CN 100578456C CN 200610093659 A CN200610093659 A CN 200610093659A CN 200610093659 A CN200610093659 A CN 200610093659A CN 100578456 C CN100578456 C CN 100578456C
- Authority
- CN
- China
- Prior art keywords
- client
- processor
- control
- mmio
- mmio register
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种用于存储存储器映射的输入/输出(MMIO)寄存器的拷贝的方法和装置,用于提高数据处理效率。在其中通过经由时间共享将多个逻辑处理器与一物理处理器相关联的结构中,主机OS在活动状态和非活动状态中在存储器中存储对应于一逻辑处理器的MMIO寄存器的拷贝信息、即阴影,在所述活动状态中,将一物理处理器分配到对应于客户OS的一逻辑处理器,在非活动状态中,没有物理处理器分配到逻辑处理器。这种结构使得客户OS能够经由存储器访问通过阴影来获得对于MMIO寄存器的更快的访问,而不是直接地访问MMIO寄存器,以便实现有效的数据处理。
Description
技术领域
本发明涉及信息处理装置、进程控制(process control)方法,具体地说本发明涉及这样的信息处理装置、进程控制方法,通过它们来改善对于在下述结构中的逻辑处理器的资源的可访问性,在所述结构中,以多个逻辑处理器共享在信息处理装置中可用的资源的方式来执行各种数据处理。
背景技术
在具有运行在单个系统中的多个操作系统(OS)的多OS系统中,可通过相应的OS来执行不同的进程,其中,通过依时间顺序地转换对于系统公用的硬件——诸如CPU和存储器等——的使用来进行处理。
例如通过分区管理软件来执行要由多个OS分别执行的进程(任务)的调度。例如,如果存在在系统中共存的两个操作系统OS(α)和OS(β),并且OS(α)的进程被设置为分区A以及OS(β)的进程被设置为分区B,则所述分区管理软件确定分区A和分区B的执行调度,并且通过按照所确定的调度分配硬件资源而执行所述OS的进程。
在下面的现有技术列表中的参考文献(1)介绍了一种涉及在多OS系统中的任务管理的公知技术。参考文献(1)公开了一种任务调度技术,用于在多个OS的每个所执行的任务管理中优先地执行具有较高的紧急性的进程。
如上所述,各种数据处理的主体被设置为分区。具体地说是将逻辑分区设置为接收在系统内的资源的分配的主体,并且向所述逻辑分区分配各种资源,包括物理处理器单元的可使用时间、虚拟地址空间和存储器空间,以便可以执行使用所分配的资源的进程。对于每个逻辑分区,设置对应于任何物理处理器的逻辑处理器,并且执行对应于所述逻辑处理器的数据处理。应当注意,在逻辑处理器和物理处理器之间不总是一一对应的;可能存在多个物理处理器与单个逻辑处理器相关联或单个物理处理器与多个逻辑处理器相关联的情况。
当并行地执行使用逻辑处理器的多个处理时,按照一调度由所述多个逻辑处理器使用物理处理器。即,多个逻辑处理器通过时间共享来使用物理处理器。
现在让我们考虑包括一主处理器和多个子处理器的系统。
例如,让我们考虑当向图1中所示的单个物理子处理器分配单个逻辑子处理器时的访问处理,或具体地说,当逻辑子处理器A专用地使用物理子处理器1并且逻辑子处理器B专用地使用物理子处理器2时对于逻辑子处理器A的访问处理。
例如,让我们假定与一已经被设置的逻辑子处理器A的逻辑分区相关联的OS试图访问逻辑子处理器A。由逻辑子处理器A占用的物理处理器1保存的MMIO(存储器映射的输入/输出)寄存器信息、本地存储区域等被映射到与逻辑子处理器A相关联的逻辑分区的地址空间。这样被映射的区域与专用的物理子处理器1相关联。因此与逻辑分区相关联的OS可以总是访问逻辑子处理器A。通过获得对于逻辑子处理器A的访问,有可能获得对应于逻辑子处理器A的各种信息,诸如逻辑存储信息。
注意MIMO(存储器映射的输入/输出)是用于通过存储器映射而控制硬件的输入/输出控制机构,它通过使用特定的存储器位置经由写入处理或读取处理而完成硬件控制。
另一方面,让我们假定例如通过与被分配到如图2中所示的单个物理子处理器的多个逻辑子处理器的时间共享来执行处理。然后,和在图2中的访问A一样在逻辑子处理器A使用物理子处理器1时,与逻辑分区相关联的OS可以以与上述的处理相同的方式来访问逻辑子处理器A。但是,当逻辑子处理器A与在图2中的访问B一样不使用逻辑子处理器1时,不可能执行对于逻辑子处理器A的访问,因为此时逻辑子处理器A不使用任何物理子处理器,因此在与逻辑子处理器A相关联的逻辑分区的地址空间中不映射物理子处理器的MMIO(存储器映射的输入/输出)寄存器信息、逻辑存储区域等。在这种情况下,需要逻辑子处理器A保持等待,直到按照时间共享而使用物理子处理器的时间到达,因此导致了延迟数据处理的问题。
现有技术列表
(1)日本专利申请公开NO.2003-345612。
发明内容
本发明解决了上述问题,其总的目的是提供一种信息处理装置、进程控制方法和计算机程序,用于改善在使用共享在信息处理装置中的资源的多个逻辑处理器来执行各种数据处理结构中的逻辑处理器对资源的访问性来实现有效的数据处理。
本发明的一个实施例涉及信息处理装置。这种装置包括:控制OS(操作系统),所述控制OS执行将多个逻辑处理器通过时间共享而与物理处理器相关联的处理;以及客户OS,所述客户OS作为逻辑处理器的使用主体而与逻辑分区相关联;其中,所述客户OS在物理处理器被分配给与该客户OS对应的逻辑处理器的活动状态下,执行使用了该物理处理器的MMIO(存储器映射输入/输出)寄存器的数据处理;并且,所述控制OS在物理处理器被分配给与客户OS对应的逻辑处理器的活动状态下、和物理处理器没有被分配给逻辑处理器的非活动状态下,都将与逻辑处理器对应的所述MMIO寄存器的拷贝信息保存在存储器中;所述客户OS不论与该客户OS对应的逻辑处理器处于活动状态还是非活动状态,都在要读取所述MMIO寄存器的数据时,通过所述控制OS,不访问所述MMIO寄存器,而是从保存在所述存储器内的拷贝信息读取该数据。
所述客户OS可以在与该客户OS对应的逻辑处理器正由物理处理器执行着的运行状态下,在要将数据写入所述MMIO寄存器时,通过所述控制OS访问所述MMIO寄存器和所述拷贝信息这两者,而在要读取所述MMIO寄存器的数据时,通过所述控制OS,不访问所述MMIO寄存器,而是访问所述拷贝信息。
所述控制OS可以仅将不会被物理处理器重写的MMIO寄存器信息的拷贝信息保存到存储器内。
所述控制OS可以将不会被物理处理器重写的MMIO寄存器信息和能在控制OS中检测出被所述物理处理器重写这一情况的发生的MMIO寄存器信息这两者的拷贝信息保存在存储器内。
所述控制OS可以在物理处理器执行了MMIO寄存器信息的重写时,将保存在存储器中的MMIO寄存器信息的拷贝信息与MMIO寄存器信息一起更新。
所述客户OS可以经由所述控制OS设置的客户OS编程接口(GOI)来访问存储在存储器中的MMIO寄存器信息的拷贝信息。
所述客户OS可以在请求访问存储在存储器中的MMIO寄存器信息的拷贝信息时,对控制OS执行系统呼叫,所述控制OS可以根据所述系统呼叫,针对客户OS将客户OS编程接口(GOI)设置为可使用状态。
本发明的另一个实施例涉及一种信息处理装置中的进程控制方法,所述信息处理装置将多个逻辑处理器基于时间共享而与物理处理器相关联来执行数据处理,所述进程控制方法包括:由控制OS执行的、将与作为逻辑处理器的使用主体的客户OS对应的逻辑处理器通过时间共享而与物理处理器相关联的处理的步骤;客户OS在物理处理器被分配给与该客户OS对应的逻辑处理器的活动状态下,执行使用了该物理处理器的MMIO(存储器映射输入/输出)寄存器的数据处理的数据处理步骤;由所述控制OS执行的、在物理处理器被分配给与所述客户OS对应的逻辑处理器的活动状态下、和物理处理器没有被分配给逻辑处理器的非活动状态下,都将与逻辑处理器对应的所述MMIO寄存器的拷贝信息保存在存储器内的步骤;以及由所述客户OS执行的、不论与该客户OS对应的逻辑处理器处于活动状态还是非活动状态,都在要读取所述MMIO寄存器的数据时,通过所述控制OS,不访问所述MMIO寄存器,而是从保存在所述存储器内的拷贝信息读取该数据的步骤。
上述的构成元件的任意组合和以方法、装置、系统、程序、记录介质等的形式实施本发明的方式也可以有效地作为本发明的实施例或被本发明的实施例包含。
通过下面结合附图详细说明,将容易理解本发明的上述和其他特征和优点。
附图说明
现在结合附图来仅仅通过示例说明实施例,所述附图是例证性的,而不是限定性的,并且其中,在几个附图中,相同的元件被标注相同的标号,其中:
图1图解了当逻辑处理器专用一个物理处理器时对于所述逻辑处理器的访问处理。
图2图解了用于将逻辑处理器通过时间共享而与物理处理器相关联的另一个处理。
图3图解了按照本发明的一个实施例的信息处理装置的结构的示例。
图4图解了处理器模块的结构的一个示例。
图5图解了按照本发明的一个实施例的在信息处理装置中的操作系统的结构。
图6图解了如何将逻辑处理器与物理处理器相关联。
图7图解了由客户OS进行的MMIO访问处理。
图8图解了可以由客户OS引用的区域和设置上下文表格的示例。
图9图解了与客户OS相关联的逻辑分区地址空间和可以被引用到客户OS的信息。
图10图解了由客户OS和控制OS执行的处理。
图11图解了客户OS的状态过渡(transition)和MMIO访问处理。
图12图解了由客户OS进行的MMIO访问处理。
图13图解了由客户OS通过客户OS编程接口(GOI)而进行的MMIO访问处理。
图14图解了客户OS的状态过渡和通过客户OS编程接口(GOI)的MMIO访问处理。
图15图解了在存储器中设置阴影的情况下客户OS的状态过渡和通过客户OS编程接口(GOI)的MMIO访问处理。
图16示出了用于在存储在中设置阴影的情况和不设置阴影的情况之间比较的MMIO访问处理时间。
具体实施方式
现在结合优选实施例来说明本发明。这不意欲限制本发明的范围,而是例示本发明。
结合附图,以下详细说明按照本发明的实施例的信息处理装置、进程控制方法和计算机程序。
结合图3,现在说明关于按照本发明的一个实施例的信息处理装置的硬件的示例。处理器模块101是由多个处理单元组成的模块,并且通过遵循来自在ROM(只读存储器)104、HDD 123等中存储的程序的指令而按照各种类型程序来执行数据处理,所述程序包括OS(操作系统)和与OS兼容的应用程序。后面将参照图4对处理器模块101详细说明。
图形引擎102产生要被输出到构成输出单元122的显示器的数据,在所述显示器显示所述数据。图形引擎102执行例如三维绘制(3-D rendering)处理。诸如DRAM之类的主存储器103存储要在处理器模块101上执行的程序、在其执行中适当地改变的参数等。这些组件经由主机总线(host bus)111而相互连接,所述主机总线111由CPU总线等构成。
主机总线111经由桥105连接到外部总线112,诸如PCI(外设部件互连/接口)总线。桥105执行在主机总线111、外部总线112、控制器106、存储卡107和其他器件之间的数据输入和输出的控制。
输入单元121输入来自由用户操作的、诸如键盘和指示器件之类的输入器件的输入信息。输出单元122包括图像输出单元和音频输出单元,所述图像输出单元诸如LCD(液晶显示器)和CRT(阴极射线管),所述音频输出单元诸如扬声器。
HDD(硬盘驱动器)123具有内置的硬盘,驱动该硬盘并且记录或再现由处理器模块101执行的程序或信息。
驱动器124读出在所安装的可移动记录介质127中记录的数据或程序,所述可移动记录介质127诸如磁盘、光盘、磁光盘或半导体存储器。并且驱动器124向经由接口113、外部总线112、桥105和主机总线111而连接的主存储器(DRAM)103提供数据或程序。
连接端口125是连接外部连接器件128的端口,并且具有诸如USB和IEEE 1394之类的连接器。连接端口125经由接口113、外部总线112、桥105和主机总线111而与处理器模块101等连接。连接到网络的通信单元126发送从处理器模块101、HDD 123等提供的数据,并且接收外部提供的数据。
接着,将结合图4来说明处理器模块的结构的示例。如图4中所示,处理器模块200包括主处理器组201,所述主处理器组201由多个主处理器和多个子处理器组202a到202n组成,所述多个子处理器组202a到202n每个由多个子处理器组成。所述主处理器组的每个装备有存储器控制器和辅助高速缓冲存储器,并且所述子处理器组的每个也装备有存储器控制器和辅助高速缓冲存储器。每个处理器组201和202a到202n具有例如8个处理器单元,并且那些处理器单元通过交叉架构或分组交换网络来连接。根据来自主处理器组201的主处理器的指令来选择所述子处理器202a到202n的一个或多个,以便执行预定的程序。
按照本发明的一个实施例的一种装置具有多个物理子处理器,并且所述软件通过时间共享来复用所述物理子处理器,以便提供具有一逻辑处理器或多个逻辑处理器的OS。用于控制子处理器的一个控制OS在主处理器工作。注意,即使当一个装置没有任何可以从主处理器和子处理器之间发现的主从关系、并且特别是它可以被应用到在处理器之间没有主从关系的多处理器机器时,在本发明中实现的方法也可被投入实际使用。也应注意,与“客户OS”相反,控制OS经常被称为“主机OS”,因此将在本专利说明书中可互换地使用控制OS和主机OS。
位于每个处理器组中的存储器流控制器执行对图3中所示的主存储器103的数据输入和从图3中所示的主存储器103的数据输出的控制。所述辅助高速缓冲存储器被用作对于要在每个处理器组中处理的数据的存储区域。
现在结合图5来说明按照本发明的一个实施例的信息处理装置中的操作系统(OS)的结构。按照本实施例的信息处理装置是多OS结构,因此多个操作系统(OS)共存。如图5中所示,所述信息处理装置具有多个操作系统(OS),它们具有逻辑分层结构。
结合图5,在下层中提供控制OS 301,并且在上层中设置多个客户OS 302和303和系统控制OS 304。所述控制OS 301与系统控制OS 304一起实现逻辑分区,所述逻辑分区作为要在结合图3和图4中所述的处理器模块中执行的每个进程的可执行单元,并且所述控制OS 301执行向每个逻辑分区分配硬件资源(主处理器、子处理器、存储器、器件等)的处理。
客户OS 302和303可以是各种类型的OS,诸如游戏OS、Windows(注册商标)和Linux(注册商标),并且客户OS 302和303在控制OS 301的控制下工作。虽然在图5中示出了两个客户OS、即客户OS 302和303,但是可以任意地设置客户OS的数量。
客户OS 302和303工作在由控制OS 301和系统控制OS 304设置的相应的逻辑分区中,并且使用被分配到相应的逻辑分区的、诸如主处理器、子处理器、存储器和其他器件的硬件资源来执行各种类型的数据处理。
例如,客户OS A 302通过使用被分配到由控制OS 301和系统控制OS 304设置的逻辑分区2的、诸如主处理器、子处理器、存储器和其他器件的硬件资源来执行与客户OS A 302兼容的应用程序305。客户OS B 303通过使用被分配到逻辑分区n的、诸如主处理器、子处理器、存储器和其他器件的硬件资源来执行与客户OS B 303兼容的应用程序306。控制OS 301提供客户OS编程接口来作为用于执行客户OS所需要的接口。
系统控制OS 304激活包含逻辑分区管理信息的系统控制程序307,并且它与控制OS 301一起根据系统控制程序307来执行操作系统的控制。所述系统控制程序307是通过使用系统控制编程接口来控制系统的策略的程序。从控制OS 301向系统控制OS 304提供所述系统控制编程接口。系统控制程序307扮演提供通过程序的灵活定制所需要的部件的角色。例如,所述角色包括在资源的分配中设置上限值。
系统控制程序307可以通过使用系统控制编程接口来控制系统的行为。例如,可以新建立一逻辑分区,然后可以在这个逻辑分区中启动新的客户OS。在多个OS运行的系统中,这样的客户OS将以在系统控制程序中预先编程它们的顺序而被启动。而且,对于从客户OS递交的资源分配的请求可以在它被控制OS 301接收到之前被检查,或者它可以按照系统的策略而被校正或简单地被拒绝。结果,可以消除由特定的客户OS来占用资源的情况。因此,所述系统控制程序是将系统的策略作为程序实现的一种系统控制程序。
控制OS 301分配对于系统控制OS 304专用的逻辑分区(在图5中的逻辑分区1)。控制OS 301工作在管理程序(hypervisor)模式。客户OS工作在监督程序(supervisor)模式中。所述系统控制OS和应用程序工作在问题模式(用户模式)中。注意,管理程序是位于所述逻辑分区和硬件之间的特权层。
逻辑分区是接收在系统中的资源的分配的主体。例如,主存储器103(结合图3)被划分为多个区域,并且使用每个区域的权利被适当地提供到逻辑分区。被分配到逻辑分区的资源的类型如下:
a)物理处理器单元操作时间
b)虚拟地址空间
c)可以由运行在逻辑分区中的程序访问的存储器
d)由控制OS管理逻辑分区所使用的存储器
e)事件端口
f)器件的使用权
g)高速缓冲存储器分区
h)总线的使用权
如上所述,客户OS运行在一逻辑分区中。客户OS通过垄断被分配到逻辑分区的资源来执行各种数据处理。在许多情况下,单个逻辑分区被准备用于在系统上运行的每个独立的客户OS。并且,向每个逻辑分区提供唯一的标识符。系统控制OS 304通过将一个标识符与作为逻辑分区管理信息产生的系统控制程序相关联来执行其管理。
通过控制OS 301和系统控制OS 304来产生逻辑分区。逻辑分区在其刚刚被产生后没有资源和没有对于可使用资源的限制的设置。逻辑分区具有两种状态,即活动状态和终止状态。逻辑分区在其刚刚被产生后处于活动状态。通过来自运行在逻辑分区内的客户OS的请求提示,所述逻辑分区转换到终止状态中,因此被分配到所述逻辑分区的所有的逻辑处理器停止。
所述逻辑处理器是被分配到一逻辑分区的逻辑处理器,并且与作为在图4中所示的处理器组中的一处理器的物理处理器相关联。注意,不总是在逻辑处理器和物理处理器之间存在一一对应关系;可能有多个物理处理器与单个逻辑处理器相关联的情况或单个物理处理器与多个逻辑处理器相关联的情况。控制OS 301确定在逻辑处理器和物理处理器之间的关联性。
控制OS 301装备有用于限制要由相应的逻辑分区使用的资源的数量的功能。有可能在客户OS 302或303不与系统控制OS 304通信的情况下限制可以被分配/释放的资源的使用的数量。
每个逻辑分区装备有控制信号端口。该端口接收在逻辑处理器之间的数据交换/共享所需要的各种控制信号。下面列出了控制信号的一些示例:
a)对于在逻辑分区之间的事件端口的连接的请求
b)对于在逻辑分区之间的消息通道的连接的请求
c)对于共享的存储区域的连接的请求
到达每个逻辑分区的控制信号在所述控制信号端口排队。只要存储器资源允许,排队的深度没有限制。由已经发送控制信号的逻辑分区来保证排队所需要的存储器资源。为了从这个端口检索控制信号,调用客户OS编程接口。当控制信号已经到达了空的控制信号端口时,有可能向任意的事件端口发送事件。可以通过调用客户OS编程接口来指定事件端口。
控制OS向逻辑分区提供作为资源(计算机资源)的逻辑子处理器,它们是物理子处理器的抽象(abstraction)。如上所述,在物理子处理器和逻辑子处理器之间不存在一一对应关系,而且,它们不必是数量上相等。为了实现这样的配置,控制OS能够当需要时将单个物理处理器与多个逻辑处理器相关联。
当逻辑子处理器的数量大于物理子处理器的数量时,控制OS通过时间共享来处理物理子处理器。因此,有可能逻辑子处理器随着时间的过去而重复操作的暂停和恢复。并且客户OS可以监控这些条件变化。
现在结合图6来说明在物理处理器和逻辑处理器之间的对应性。图6不仅示出了主处理器401和物理子处理器411-414的物理处理器结构,而且示出了由作为物理子处理器2和物理子处理器4的两个物理子处理器的时间共享处理操作的逻辑子处理器的时间顺序。
在图6的示例中,通过所述时间共享向物理子处理器2分配下面的每个逻辑子处理器,其中
时间ta0到ta1:逻辑子处理器A,
时间ta1到ta2:逻辑子处理器B,
时间ta2到ta3:逻辑子处理器C,
时间ta3到-:逻辑子处理器A。
并且,对于如上所述分配的每个持续时间,每个逻辑子处理器使用物理子处理器2来执行处理。
而且,通过所述时间共享向物理子处理器4分配下面的每个逻辑子处理器,其中
时间tb0到tb1:逻辑子处理器B,
时间tb1到tb2:逻辑子处理器C,
时间tb2到tb3:逻辑子处理器A,
时间tb3到-:逻辑子处理器B。
并且,对于如上所述分配的每个持续时间,每个逻辑子处理器使用物理子处理器4来执行处理。
如果每个逻辑子处理器要通过时间共享使用物理子处理器执行处理并且在下一个所分配的持续时间中使用物理子处理器而恢复数据处理,则有必要保留在数据处理中断时时关于硬件状态等的状态信息。所述状态信息包括与在图6中所示的物理子处理器相关联的本地存储信息和MMIO(存储器映射输入/输出)寄存器信息。MMIO(存储器映射的输入/输出)是用于通过存储器映射而控制硬件的输入/输出控制机制,它使用特定的存储器位置通过写入处理或读取处理来实现硬件控制。
在当向物理子处理器分配逻辑子处理器期间,在对应于所述逻辑子处理器的逻辑分区地址空间中的区域中映射反应逻辑子处理器的状态的物理子处理器的MMIO区域和本地存储区域。在此期间,客户OS可以通过直接地访问在所述逻辑分区地址空间中映射的MMIO寄存器和本地存储器来操作逻辑子处理器。
现在使用对应于相应物理处理器的MMIO寄存器来说明客户OS——对于它设置了逻辑分区——的访问处理的示例。如图7中所示,客户OS 451——对于它设置了逻辑分区——通过结合对应于物理处理器461-464的MMIO(存储器映射的输入/输出)寄存器信息471到474经由相应的物理处理器461-464执行存储器映射,并且使用特定的存储器位置通过写入处理或读取处理来实现对于硬件的访问。
尽管如此,在当逻辑子处理器不被分配到物理子处理器的期间,在对应于逻辑子处理器的逻辑分区地址空间中的区域中不映射作为反映逻辑子处理器的状态的物理子处理器的输入/输出端口的区域的一部分的MMIO寄存器和本地存储区域,因此如上结合图2所述,一般不能进行访问。但是,按照本发明的配置,在当逻辑处理器不使用物理处理器期间实现对于逻辑处理器的访问,包括MMIO寄存器区域和逻辑存储区域的上下文表被保存,以便它可以被其他处理器引用。而且,如下所述,不论在逻辑处理器使用物理处理器期间还是在逻辑处理器不使用物理处理器期间,都有可能在主存储器中存储作为MMIO寄存器信息的拷贝信息的“阴影”,以有效地实现对于MMIO寄存器的访问。
下面说明上下文存储配置。其中,通过被分配到客户OS的逻辑分区来执行使用逻辑子处理器的数据处理,结合图5描述。由控制OS执行通过时间共享向对应于逻辑分区的逻辑子处理器分配物理处理器。
所述逻辑子处理器具有由客户OS控制的活动状态和非活动状态以及由控制OS控制的运行状态和可运行状态。因此,根据其组合存在逻辑子处理器的下面三种状态:
a)活动状态和可运行状态
b)活动状态和运行状态
c)非活动状态
活动状态和非活动状态之间的差别在于是否逻辑子处理器是控制OS的时间共享的对象,即物理子处理器的分配的对象。活动状态是其中逻辑子处理器是时间共享的对象、即物理子处理器的分配的对象的状态。当逻辑子处理器在活动状态中时,控制OS在适当时向子处理器分配时间共享的物理子处理器。
非活动状态是其中逻辑子处理器不是时间共享的对象的状态。当逻辑子处理器在非活动状态中时,控制OS不向逻辑子处理器分配任何时间共享的物理子处理器。但是,在这种情况下,在上下文表中保存逻辑子处理器的上下文。由控制OS在逻辑分区地址空间中的这种上下文的映射使得其他处理器有可能访问在非活动状态中的逻辑处理器。在此注意,客户OS可以控制逻辑子处理器的活动状态和非活动状态。
在运行状态和可运行状态之间的差别在于是否在活动状态中的逻辑子处理器实际上正在被物理子处理器执行。当子处理器的数量大于物理处理器的数量时,通过时间共享的物理子处理器来实现逻辑子处理器,结合图2描述。因此,当存在比物理子处理器更多的逻辑子处理器时,不总是通过物理子处理器来执行逻辑子处理器的情况。运行状态是当逻辑子处理器实际上正在被物理子处理器执行时的状态。
另一方面,可运行状态是当逻辑子处理器是物理处理器的分配对象(活动状态)、但不是实际上正在被物理子处理器执行时的状态。
通过由控制OS导通的逻辑子处理器的上下文转换来实现在这些状态之间的过渡、即在运行状态和可运行状态之间的过渡。在此注意客户OS可以检测逻辑子处理器的运行状态和可运行状态。
当逻辑子处理器在活动状态和在运行状态中时,在逻辑分区地址空间中的区域中映射MMIO寄存器信息和反映逻辑子处理器的状态的物理子处理器的本地存储区域信息。在这种状态中,有可能进行对于逻辑子处理器的访问。
当逻辑子处理器转换到非活动状态中时,控制OS将逻辑子处理器的上下文存储为关于逻辑子处理器的信息,并且映射对应于逻辑子处理器的客户OS的逻辑分区地址空间中的区域中的上下文表。作为这种处理的结果,客户OS可以从其本身的逻辑分区地址空间引用在非活动状态中的逻辑子处理器的上下文表的资源信息,以便它可以现在执行诸如读取、写入和更新资源信息之类的处理。
而且,上下文表被构造使得不仅存储寄存器的内容,而且存储在传统上下文表中不包括的作为本地存储器的内容和MMIO寄存器信息的信息。因此,客户OS现在能够根据与在其中不使用物理处理器的非活动状态中设置的逻辑处理器相关的各种状态信息通过资源访问来执行数据处理,并且这种结构增强了数据处理的效率。
通过结合图8,说明客户OS如何访问与逻辑子处理器相关联的资源。对于客户OS设置逻辑分区,并且所述逻辑分区与逻辑子处理器相关联。将资源划分为客户OS不可访问的资源501和客户OS可以访问的资源502。
当与对应于客户OS的逻辑分区相关联的逻辑子处理器在活动状态中并且也在运行状态中时,执行通过物理子处理器510的数据处理。在这种状态中,通过使用通用寄存器521、输入/输出端口522的一部分、MMIO寄存器523、本地存储器524和主存储器525来执行数据处理,所述通用寄存器521、输入/输出端口522的一部分被包括在客户OS不可访问的资源501中,所述MMIO寄存器523、本地存储器524和主存储器525被包括在客户OS可以访问的资源502中。
当物理子处理器执行数据处理时,在客户OS的逻辑分区地址空间中映射MMIO寄存器区域523、本地存储区域524等,以便客户OS可以访问这些资源。
另一方面,当逻辑子处理器在非活动状态中时,即当它不再是物理子处理器的分配对象时,在逻辑子处理器的主存储器525中的上下文表531中存储上下文。
在对应于逻辑子处理器的客户OS的逻辑分区地址空间中的区域中映射要在主存储器525中存储的逻辑子处理器的上下文表531,以便它可以被客户OS访问。
通过结合图9,说明在对应于逻辑子处理器的客户OS的逻辑分区地址空间和物理地址空间之间的对应性。
图9示出了对应于逻辑子处理器的客户OS的逻辑分区地址空间560和物理地址空间570。物理地址空间570是包括存储器、MMIO寄存器和物理子处理器的本地存储器的物理空间。控制OS当必要时在逻辑分区地址空间中映射物理地址空间570的一部分。客户OS可以仅仅访问在逻辑分区地址空间中映射的物理地址空间。
当与对应于客户OS的逻辑分区相关联的逻辑子处理器在活动状态中并且也在运行状态中时,即当正在通过物理子处理器来执行数据处理时,在客户OS的逻辑分区地址空间560中映射MMIO寄存器的一部分和本地存储区域561,以便客户OS可以访问这些资源。
另一方面,当与对应于客户OS的逻辑分区相关联的逻辑子处理器在非活动状态中时,即当它不再是物理子处理器的分配对象时,在客户OS的逻辑分区地址空间560中映射包括MMIO寄存器的一部分、本地存储区域等的上下文表562,以便客户OS可以访问这些资源。
结合图10,详细说明上下文保存处理。图10图解了执行上下文保存处理的控制OS 610和客户OS 620,在客户OS 620中,设置了用于通过使用与要存储的上下文相关联的逻辑处理器而执行数据处理的逻辑分区。
如上结合图9所述,将上下文存储在可以被客户OS引用的状态中等同于当将逻辑子处理器设置到非活动状态中的情况。换句话说,这是当逻辑子处理器不再是物理子处理器的分配对象的情况。
结合图10,客户OS 620向控制OS 610的系统呼叫处理单元611输出系统呼叫,用于请求保存处理,通过它,将上下文从客户OS存储到可以被客户OS引用的位置。当控制OS 610的系统呼叫处理单元611从客户OS 620接收到系统呼叫时,系统呼叫处理单元611向逻辑子处理器调度处理单元612输出改变逻辑子处理器的调度的请求,并且请求上下文管理单元613存储对应于逻辑处理器的上下文。
在其请求下,系统呼叫处理单元611将逻辑子处理器的状态从活动状态转换到非活动状态。即,与在客户OS 620中设置的逻辑分区相关联的逻辑子处理器从物理子处理器的分配对象中被取消。通过执行这个处理,将逻辑子处理器设置到非活动状态。
然后,逻辑子处理器调度处理单元612请求上下文管理单元613执行存储对应于已经转换到非活动状态的逻辑子处理器的上下文的处理。当逻辑子处理器调度处理单元612进行存储/恢复逻辑子处理器的上下文的请求时,上下文管理单元613执行存储/恢复所述上下文。当确认这个逻辑子处理器已经被设置到非活动状态时,向主存储器管理单元614发出将存储上下文的上下文表映射到逻辑分区地址空间的请求。要存储的上下文包括在逻辑处理器中的本地存储器的内容、MMIO的内容和寄存器的内容。
主存储器管理单元614确定在客户OS 620的逻辑分区地址空间中的用于上下文访问的地址。主存储器管理单元614在客户OS 620的逻辑分区地址空间区域中映射在作为物理地址空间的主存储器中存储的上下文,并且将其设置到可以被客户OS 620引用的状态。
客户OS可以按照被通告的地址来引用上下文,以便可以获得基于上下文的资源,即MMIO寄存器或关于本地存储区域的信息。因此,可以进行关于这些资源的信息的读取和写入。
结合图11,将说明当为其设置逻辑分区的客户OS从活动状态向非活动状态/从非活动状态向活动状态转换时通过使用MMIO寄存器来进行访问处理中的过渡。在图11中,客户OS(GOS)701的状态通过控制OS根据来自客户OS的请求的控制而在活动状态和非活动状态之间改变。在图11中,水平轴表示时间轴,时间(t)从左向右过去。在图11中的S101到S105表示客户OS的状态;即,状态S101是非活动状态,状态S102是活动状态,状态S103是非活动状态,状态S104是活动状态,和状态S105是非活动状态。
当通过获取MMIO寄存器信息而对于硬件等执行访问处理时,客户OS701在客户OS 701在非活动状态中期间通过使用在主存储器702中记录的上下文表、即MMIO寄存器的拷贝信息来进行访问(S101,S103和S105)。另一方面,当客户OS 701在活动状态中时(S102和S104),客户OS 701执行访问处理,其中,直接地使用与对应于客户OS的逻辑分区的物理子处理器703相关联的MMIO寄存器信息。
当客户OS 701的状态从非活动状态改变到活动状态时,如上所述执行恢复上下文的处理。当客户OS 701的状态从活动状态改变到非活动状态时,如上所述执行存储上下文的处理。MMIO寄存器信息被包含在上下文中。
以这种方式,与客户OS相关联的逻辑子处理器可以当客户OS在活动状态和非活动状态中时引用MMIO寄存器信息。因此。逻辑子处理器可以执行读取、写入和更新资源信息等的处理。
但是,仍然有关于允许每个客户OS可以结合所有的MIMO寄存器的要考虑问题。例如,最好是控制OS仅仅可以设置和改变寄存器,通过它将存储器区域设置为可以从与每个客户OS相关联的逻辑处理器访问。并且不期望这样的寄存器被客户OS访问和改变,因此,必须防止这样的访问。而且,对于通过其设置诸如单板(on-board)存储器信息的系统信息的寄存器,需要防止通过客户OS的访问或改变。
因此,需要一种结构,其中,当客户OS在活动状态和非活动状态时并且同时不允许可能影响控制OS或其他客户OS的处理的对于MMIO寄存器的访问的同时,使能对于MMIO寄存器的访问。
作为对于MMIO寄存器的访问的控制,下面两种方式(a)和(b)的访问控制是可能的。
a)每页(例如4K字节)的访问控制
b)每个比特的访问控制
结合图12和13来说明每个访问的控制配置。
图12图解了MMIO寄存器的每页的访问控制配置。客户OS 751访问MMIO寄存器755。操作客户OS 751的物理处理器753确定是否允许来自客户OS 751的访问的请求。仅仅当被允许时才执行对于MMIO寄存器755的访问。
物理处理器753具有表信息存储缓冲器754(以下称为TLB 754,它表示表后备缓冲器),它已经以页为单位(例如4K字节)寄存了关于是否允许访问的信息,所述页由MMIO寄存器755的划分区域表示。通过结合这个TLB 754,物理处理器753确定是否允许来自客户OS 751请求访问的页的位置,并且只有所请求的页是允许访问的页时,它才允许所述访问。
关于还没有在TLB 754中登记的信息,物理处理器753向工作在管理程序模式中的控制OS 752查询关于是否允许访问,并且从控制OS 752获取关于是否允许访问的信息。并且物理处理器753确定是否从客户OS 751请求访问的页的位置是允许访问的页。然后在TLB 754中登记所获得的信息,关于在TLB 754中登记的页的位置,可以仅仅使用引用TLB 754的处理来确定是否允许访问,而没有查询控制OS 752的麻烦,使得可以实现快速的处理。
通过结合图13,现在说明对于MMIO寄存器的以比特为单位的访问控制设置。通过使用客户OS编程接口(GOI)761来执行以比特为单位的访问控制。如上结合图5所述,工作在管理程序模式中的控制OS 752提供客户OS编程接口来作为由客户OS 751执行各种处理所需要的接口。有可能通过使用客户OS编程接口(GOI)761来执行对于MMIO寄存器755的访问控制。
在仅仅允许使用客户OS编程接口(GOI)761的MMIO寄存器访问的结构中,物理处理器753将向控制OS 752查询是否允许访问,即使不通过GOI 761而执行了对于物理处理器753的访问请求,但是控制OS 752也不允许访问,因为它没有通过GOI 761而作出。
当客户OS 751通过GOI 761而进行访问请求时,工作在管理程序模式的控制OS 752根据由控制OS 752保存的信息来确定以比特为单位对于MMIO寄存器755的可访问性和不可访问性,并且允许客户OS 751访问仅仅在该允许访问位置的MMIO寄存器信息。这种使用GOI的访问控制具有提供以比特为单位的访问控制的可能和因此通过控制OS来监控的优点,但是它具有增加了在控制OS上的负载的问题。
通过结合图14,说明在用于使用客户OS编程接口(GOI)来执行对于MMIO寄存器的访问控制的设置中的上下文转换顺序。
类似于图11,在图14中,时间(t)从左向右过去,并且逻辑子处理器S201到S205在控制OS的控制下在来自客户OS的请求下从非活动状态向活动状态/从活动状态向非活动状态转换。在图14中的S201到S205表示客户OS 801的状态;即状态S201是非活动状态,状态S202是活动状态,状态S203是非活动状态,状态S204是活动状态和状态S205是非活动状态。
客户OS 801使用客户OS编程接口(GOI)来访问MMIO寄存器,结合图13描述。换句话说,对于MMIO寄存器的访问使用由工作在管理程序模式的控制OS 802提供的客户OS编程接口(GOI)。
例如,在步骤S251,非活动状态的客户OS 801通过由控制OS 802提供的客户OS编程接口(GOI)根据在主存储器803中存储的上下文表来执行MMIO寄存器访问。即,通过存储器访问来实现MIMO访问。
在步骤S252,取代访问主存储器803,在活动状态中的客户OS 801通过由控制OS 802提供的客户OS编程接口(GOI)、通过使用与对应于在活动状态中的客户OS 801的逻辑分区相关联的物理处理器804直接地访问MMIO寄存器。
而且在步骤S253和S255,通过由控制OS 802提供的客户OS编程接口(GOI)、由对主存储器803的访问来实现由在非活动状态中的客户OS 801进行的MMIO寄存器访问。并且在步骤S254,通过使用与对应于在活动状态中的客户OS 801的逻辑分区相关联的物理处理器804来执行对于MMIO寄存器的直接访问。
但是,对于对应于物理处理器的MMIO寄存器的访问处理比简单的存取访问处理需要更多的时间。换句话说,对于对应于物理处理器的MMIO的访问时间(V)比存储器访问时间(W)大得多(即V>>W),并且有可能MMIO访问的执行导致数据处理的延迟。
在图14中所示的处理顺序中,当客户OS 801在非活动状态时高速地完成MMIO寄存器访问,而当客户OS 801在活动状态时,MMIO寄存器访问需要更长的时间,因为它不能通过对于主存储器803的访问而被完成。
因此,在本发明的一个优选实施例中,不仅当客户OS 801在非活动状态而且当它在活动状态中时在主存储器803中存储MMIO寄存器信息的拷贝信息。下面通过结合图15来说明按照此实施例的设置和处理。
类似于图14,在图15中,时间(t)从左向右过去,并且逻辑子处理器S301到S305在控制OS的控制下在来自客户OS的请求下从非活动状态向活动状态/从活动状态向非活动状态转换。在图15中,状态S301是非活动状态,状态S302是活动状态,状态S303是非活动状态,状态S304是活动状态和状态S305是非活动状态。
客户OS 801使用客户OS编程接口(GOI)来访问MMIO寄存器。换句话说,对于MMIO寄存器的访问使用由工作在管理程序模式中的控制OS 802提供的客户OS编程接口(GOI)。
在图15中所示的处理设置中,“阴影”作为不仅当客户OS 801在非活动状态而且当它在活动状态时在主存储器803中存储MMIO寄存器信息的拷贝信息。因此,客户OS 801可以总是如对于主存储器803的访问那样执行对于MMIO寄存器的访问。
例如,在步骤S351,在非活动状态的客户OS 801通过由控制OS 802提供的客户OS编程接口(GOI)来访问在主存储器803中作为阴影851而存储的MMIO寄存器信息。即,通过存储器访问来完成MMIO访问。
在步骤S352,在活动状态的客户OS 801通过由控制OS 802提供的客户OS编程接口(GOI)来访问在主存储器803中被作为阴影852存储的MMIO寄存器信息,即通过存储器访问来完成MMIO访问。
而且在步骤S353、S354和S355中,通过经由控制OS 802提供的客户OS编程接口(GOI)对于主存储器803的访问由相应的阴影853到855的访问来实现由在非活动状态或活动状态的客户OS 801的MMIO寄存器访问。
注意在此处理设置中,当客户OS 801在活动状态并且正在执行由与对应于客户OS 801的逻辑处理器相关联的物理处理器进行的处理时,通过所述物理处理器来执行使用MMIO寄存器的数据处理,并且通过所述数据处理来执行由所述物理处理器对于MMIO寄存器的读取和写入。在主存储器803中存储的阴影被设置为MMIO寄存器的拷贝,因此不期望在实际MMIO寄存器和阴影之间产生任何差别。
因此,当客户OS 801在活动状态时,工作在管理程序模式中的控制OS802按照更新的MMIO寄存器信息来执行阴影的更新。通过这种阴影的更新处理,在主存储器803中设置的阴影保持为与MMIO寄存器的内容一致的信息。
应当注意,要在主存储器中设置的阴影可能限于由物理处理器未进行任何重写的信息。或者,它可以被设置使得要在主存储器中设置的阴影除了未由所述物理处理器进行任何重写的信息之外还可以限于允许工作在管理程序模式的控制OS 802检测由所述物理处理器进行的任何重写,如果发生的话。在诸如此类的设置中,如果客户OS要获得在主存储器中设置的阴影中不包括的MMIO寄存器信息,则要求客户OS经由所述物理处理器直接地访问MMIO寄存器。
通过结合图16,下面说明可以通过将阴影设置为在存储器中的MMIO寄存器的拷贝信息而实现降低处理时间。
图16示出了当不使用“阴影”((P1)到(P3))时和当使用阴影((Q1)到(Q3))时的处理时间(由垂直轴表示)。更详细地说,
(P1):在没有阴影的结构中的通过GOI的MMIO写入处理。
(P2):在没有阴影的结构中的通过GOI的MMIO读取处理。
(P3):在没有阴影的结构中的MMIO写入和读取处理。
(Q1):在有阴影的结构中的通过GOI的MMIO写入处理。
(Q2):在有阴影的结构中的通过GOI的MMIO读取处理。
(Q3):在有阴影的结构中的MMIO写入和读取处理。
在作为“在没有阴影的结构中的通过GOI的MMIO写入处理”的(P1)中,由控制OS提供的客户OS编程接口(GOI)的呼叫处理时间和MMIO寄存器写入处理时间的总和是客户OS的处理时间。在客户OS编程接口(GOI)的呼叫处理中,客户OS执行对于控制OS的系统呼叫。响应于这种系统呼叫,控制OS执行处理来识别对应于客户OS的逻辑子处理器,并且以适用于所述客户OS的方式来设置对应于所述逻辑子处理器的客户OS编程接口(GOI)。
在作为“在没有阴影的结构中的通过GOI的MMIO读取处理”的(P2)中,由控制OS提供的客户OS编程接口(GOI)的呼叫处理时间和MMIO寄存器读取处理时间的总和是客户OS的处理时间。
在作为“在没有阴影的结构中的MMIO写入和读取处理”的(P3)中,例如在活动状态和非活动状态之间转换时执行的上下文转换处理中执行所述处理。在这种处理中,客户OS被分配了一物理处理器并且因此直接地执行MMIO寄存器信息的写入和读取处理,因此处理时间是MMIO寄存器读取处理时间、MMIO寄存器写入处理时间和用于读取和写入在存储器中存储的上下文表的处理时间的总和。在此应当注意,如上所述,对与物理处理器的MMIO对应的访问时间(V)比存储器访问时间(W)大得多(即,V>>W),结果,在上下文表的读取和写入中花费的存储器访问时间比MMIO读取和写入处理时间短得多。
(Q1)到(Q3)是在结合图15所述那样设置阴影的设置中的处理时间,即当执行与(P1)到(P3)类似的处理时的处理时间。
在作为“在有阴影的结构中的通过GOI的MMIO写入处理”的(Q1)中,由控制OS提供的客户OS编程接口(GOI)的呼叫处理时间、MMIO寄存器写入处理时间和通过存储器访问的阴影写入处理时间的总和是客户OS的处理时间。
在作为“在有阴影的结构中的通过GOI的MMIO读取处理”的(Q2)中,将MMIO寄存器的拷贝信息作为阴影存储在主存储器中,以便客户OS执行在存储器中设置的阴影的读取而不是执行MMIO寄存器的读取。因此,由控制OS提供的客户OS编程接口(GOI)的呼叫处理时间和通过存储器访问的阴影读取处理时间的总和是处理时间。
在作为“在有阴影的结构中的MMIO写入和读取处理”的(Q3)中,类似于上述的处理(P3),例如在活动状态和非活动状态之间转换时执行的上下文转换处理中执行所述处理。在这种处理中,将MMIO寄存器的拷贝信息作为阴影存储在主存储器中,因此客户OS执行读取在存储器中设置的阴影而不是执行读取MMIO寄存器。因此,存储器访问时间和MMIO寄存器写入处理时间的总和是处理时间。
将如图16中所示的无阴影处理(P1)到(P3)和有阴影的处理(Q1)到(Q3)相对于它们的处理时间而彼此相比较,并且获得下面的结果。
P1≈Q1
P2>>Q2
P3>>Q3
从如上获得的处理时间的差别,可以发现具有阴影的结构实现了比没有阴影的结构更少的总处理时间,因此可以实现有效的数据处理。
已经结合特定实施例而详细说明了本发明。但是,对于本领域内的技术人员显然有可能在本发明的范围内进行对于实施例的各种修改和替换。即,这些实施例仅仅是例示性的,不应当以限定的方式来解释。因此,这些和其他对于所公开的实施例的改变意欲由本发明涵盖,本发明仅仅被权利要求限定。
可以以多种形式和结构,诸如通过仅仅硬件、仅仅软件或其组合来实现在专利说明书中所述的系列处理。在通过软件的处理的情况下,可以以在计算机内的专用硬件中嵌入的存储器中安装程序或在能够执行各种处理的通用计算机中安装所述程序的方式来执行已经记录了处理序列的所述程序。
例如,可以预先在作为记录介质的硬盘或ROM(只读存储器)中记录所述程序。或者可以在诸如软盘、CD-ROM(致密盘只读存储器)、MO(磁光)盘、DVD(数字通用盘)、磁盘或半导体存储器之类的可移动记录介质中暂时或永久地存储或记录所述程序。这样的可移动记录介质可以被提供作为所谓的封装软件。
注意,所述程序可以不仅从如上所述的可移动记录介质被安装在计算机中,而且还可以从下载站点被无线地传送到计算机或可以使用诸如局域网(LAN)或因特网之类的网络通过线路而被传送到计算机,以便所述计算机可以接收所述程序,并且将其安装在诸如硬盘之类的内置记录介质中。
注意,在本专利申请中所述的各种处理不仅按照说明的时间顺序而被执行,而且可以按照处理执行单元的处理容量或按照需要来并行地或独立地被执行。而且,在本专利说明书中的系统是多个单元的逻辑集合,并且不限于位于单个外壳(housing)中的构成单元。
如上所述,按照本发明的实施例,通过将多个逻辑处理器通过时间共享而与物理处理器相关联来执行数据处理。在这种设置中,控制OS被配置使得在存储器中保存作为对应于在活动状态或非活动状态中的逻辑处理器的MMIO寄存器的拷贝信息的“阴影”,在所述活动状态中,将一物理处理器分配到对应于客户OS的一逻辑处理器,在非活动状态中,不将一物理处理器分配到一逻辑处理器。因此,客户OS可以总是通过存储器访问来自阴影的MMIO寄存器,因此实现比直接访问MMIO寄存器更短的时间的访问。因此,本发明的实施例实现了有效的数据处理。
虽然已经使用特定的术语说明了本发明的优选实施例,但是这样的说明仅仅是说明性的,应当明白,可以在不脱离权利要求的精神和范围的情况下可以进一步进行改变和变化。
Claims (14)
1.一种信息处理装置,包括:
控制OS(操作系统),所述控制OS执行将多个逻辑处理器通过时间共享而与物理处理器相关联的处理;以及,
客户OS,所述客户OS作为逻辑处理器的使用主体而与逻辑分区相关联;
其中,所述客户OS在物理处理器被分配给与该客户OS对应的逻辑处理器的活动状态下,执行使用了该物理处理器的MMIO(存储器映射输入/输出)寄存器的数据处理,并且
所述控制OS在物理处理器被分配给与客户OS对应的逻辑处理器的活动状态下、和物理处理器没有被分配给逻辑处理器的非活动状态下,都将与逻辑处理器对应的所述MMIO寄存器的拷贝信息保存在存储器中,
所述客户OS不论与该客户OS对应的逻辑处理器处于活动状态还是非活动状态,都在要读取所述MMIO寄存器的数据时,通过所述控制OS,不访问所述MMIO寄存器,而是从保存在所述存储器内的拷贝信息读取该数据。
2.按照权利要求1的信息处理装置,其中所述客户OS在与该客户OS对应的逻辑处理器正由物理处理器执行着的运行状态下,在要将数据写入所述MMIO寄存器时,通过所述控制OS访问所述MMIO寄存器和所述拷贝信息这两者,而在要读取所述MMIO寄存器的数据时,通过所述控制OS,不访问所述MMIO寄存器,而是访问所述拷贝信息。
3.按照权利要求1或2的信息处理装置,其中所述控制OS仅将不会被物理处理器重写的MMIO寄存器信息的拷贝信息保存到存储器内。
4.按照权利要求1或2的信息处理装置,其中所述控制OS将不会被物理处理器重写的MMIO寄存器信息和能在控制OS中检测出被所述物理处理器重写这一情况的发生的MMIO寄存器信息这两者的拷贝信息保存在存储器内。
5.按照权利要求1或2的信息处理装置,其中所述控制OS在物理处理器执行了MMIO寄存器信息的重写时,将保存在存储器中的MMIO寄存器信息的拷贝信息与MMIO寄存器信息一起更新。
6.按照权利要求1或2的信息处理装置,其中所述客户OS经由所述控制OS设置的客户OS编程接口(GOI)来访问存储在存储器中的MMIO寄存器信息的拷贝信息。
7.按照权利要求1或2的信息处理装置,其中,所述客户OS在请求访问存储在存储器中的MMIO寄存器信息的拷贝信息时,对控制OS执行系统呼叫,
所述控制OS根据所述系统呼叫,针对客户OS将客户OS编程接口(GOI)设置为可使用状态。
8.一种信息处理装置中的进程控制方法,所述信息处理装置将多个逻辑处理器基于时间共享而与物理处理器相关联来执行数据处理,所述进程控制方法包括:
由控制OS执行的、将与作为逻辑处理器的使用主体的客户OS对应的逻辑处理器通过时间共享而与物理处理器相关联的处理的步骤;
客户OS在物理处理器被分配给与该客户OS对应的逻辑处理器的活动状态下,执行使用了该物理处理器的MMIO(存储器映射输入/输出)寄存器的数据处理的数据处理步骤;
由所述控制OS执行的、在物理处理器被分配给与所述客户OS对应的逻辑处理器的活动状态下、和物理处理器没有被分配给逻辑处理器的非活动状态下,都将与逻辑处理器对应的所述MMIO寄存器的拷贝信息保存在存储器内的步骤;以及
由所述客户OS执行的、不论与该客户OS对应的逻辑处理器处于活动状态还是非活动状态,都在要读取所述MMIO寄存器的数据时,通过所述控制OS,不访问所述MMIO寄存器,而是从保存在所述存储器内的拷贝信息读取该数据的步骤。
9.按照权利要求8的进程控制方法,在由所述客户OS执行的步骤中,还包括在与该客户OS对应的逻辑处理器正由物理处理器执行着的运行状态下,在要将数据写入所述MMIO寄存器时,通过所述控制OS访问所述MMIO寄存器和所述拷贝信息这两者,而在要读取所述MMIO寄存器的数据时,通过所述控制OS,不访问所述MMIO寄存器而是访问所述拷贝信息的步骤。
10.按照权利要求8或9的进程控制方法,其中所述控制OS执行仅将不会被物理处理器重写的MMIO寄存器信息的拷贝信息保存到存储器中的处理的步骤。
11.按照权利要求8或9的进程控制方法,其中所述控制OS将不会被物理处理器重写的MMIO寄存器信息和能在控制OS中检测出被所述物理处理器重写这一情况的发生的MMIO寄存器信息这两者的拷贝信息保存在存储器内。
12.按照权利要求8或9的进程控制方法,其中所述控制OS在物理处理器执行了MMIO寄存器信息的重写时,将保存在存储器中的MMIO寄存器信息的拷贝信息与MMIO寄存器信息一起更新。
13.按照权利要求8或9的进程控制方法,其中所述客户OS经由所述控制OS设置的客户OS编程接口(GOI)来访问存储在存储器中的MMIO寄存器信息的拷贝信息。
14.按照权利要求8或9的进程控制方法,其中,所述客户OS在请求访问存储在存储器中的MMIO寄存器信息的拷贝信息时,对控制OS执行系统呼叫,
所述控制OS根据所述系统呼叫,针对客户OS将客户OS编程接口(GOI)设置为可使用状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP173808/05 | 2005-06-14 | ||
JP2005173808A JP4322232B2 (ja) | 2005-06-14 | 2005-06-14 | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1881183A CN1881183A (zh) | 2006-12-20 |
CN100578456C true CN100578456C (zh) | 2010-01-06 |
Family
ID=37075130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610093659A Active CN100578456C (zh) | 2005-06-14 | 2006-06-14 | 信息处理装置、进程控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8151275B2 (zh) |
EP (1) | EP1734444A2 (zh) |
JP (1) | JP4322232B2 (zh) |
CN (1) | CN100578456C (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4897578B2 (ja) * | 2007-06-06 | 2012-03-14 | 株式会社日立製作所 | 仮想計算機の制御プログラムおよび仮想計算機システム |
US8180997B2 (en) * | 2007-07-05 | 2012-05-15 | Board Of Regents, University Of Texas System | Dynamically composing processor cores to form logical processors |
US8645974B2 (en) * | 2007-08-02 | 2014-02-04 | International Business Machines Corporation | Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device |
US8176487B2 (en) * | 2007-08-02 | 2012-05-08 | International Business Machines Corporation | Client partition scheduling and prioritization of service partition work |
JP5433837B2 (ja) * | 2007-12-05 | 2014-03-05 | 株式会社日立製作所 | 仮想計算機システム、仮想計算機の制御方法及びプログラム |
US8433884B2 (en) | 2008-06-19 | 2013-04-30 | Panasonic Corporation | Multiprocessor |
KR101003102B1 (ko) * | 2008-09-24 | 2010-12-21 | 한국전자통신연구원 | 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치 |
JP5405799B2 (ja) * | 2008-10-30 | 2014-02-05 | 株式会社日立製作所 | 仮想計算機の制御方法、仮想化プログラム及び仮想計算機システム |
US20110216078A1 (en) * | 2010-03-04 | 2011-09-08 | Paul Blinzer | Method, System, and Apparatus for Processing Video and/or Graphics Data Using Multiple Processors Without Losing State Information |
JP5354108B2 (ja) | 2010-09-01 | 2013-11-27 | 富士通株式会社 | 情報処理プログラム、情報処理装置及び情報処理方法 |
JP5681527B2 (ja) * | 2011-02-28 | 2015-03-11 | パナソニックIpマネジメント株式会社 | 電力制御装置及び電力制御方法 |
US9465633B2 (en) | 2011-08-05 | 2016-10-11 | Vmware, Inc. | Displaying applications of a virtual mobile device in a user interface of a mobile device |
US9171139B2 (en) | 2011-08-05 | 2015-10-27 | Vmware, Inc. | Lock screens to access work environments on a personal mobile device |
WO2013132741A1 (ja) * | 2012-03-06 | 2013-09-12 | パナソニック株式会社 | マルチプロセッサシステム |
WO2014113055A1 (en) * | 2013-01-17 | 2014-07-24 | Xockets IP, LLC | Offload processor modules for connection to system memory |
US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
US10409599B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Decoding information about a group of instructions including a size of the group of instructions |
US9952867B2 (en) | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
US11755484B2 (en) | 2015-06-26 | 2023-09-12 | Microsoft Technology Licensing, Llc | Instruction block allocation |
US10191747B2 (en) | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
US9946548B2 (en) | 2015-06-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Age-based management of instruction blocks in a processor instruction window |
US10175988B2 (en) | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
US10169044B2 (en) | 2015-06-26 | 2019-01-01 | Microsoft Technology Licensing, Llc | Processing an encoding format field to interpret header information regarding a group of instructions |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US11016770B2 (en) | 2015-09-19 | 2021-05-25 | Microsoft Technology Licensing, Llc | Distinct system registers for logical processors |
US11126433B2 (en) | 2015-09-19 | 2021-09-21 | Microsoft Technology Licensing, Llc | Block-based processor core composition register |
US10768936B2 (en) | 2015-09-19 | 2020-09-08 | Microsoft Technology Licensing, Llc | Block-based processor including topology and control registers to indicate resource sharing and size of logical processor |
US10248468B2 (en) | 2016-01-11 | 2019-04-02 | International Business Machines Corporation | Using hypervisor for PCI device memory mapping |
US11531552B2 (en) | 2017-02-06 | 2022-12-20 | Microsoft Technology Licensing, Llc | Executing multiple programs simultaneously on a processor core |
US10909053B2 (en) * | 2019-05-27 | 2021-02-02 | Advanced Micro Devices, Inc. | Providing copies of input-output memory management unit registers to guest operating systems |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5938778A (en) * | 1997-11-10 | 1999-08-17 | International Business Machines Corporation | System and method for tracing instructions in an information handling system without changing the system source code |
JP2003345612A (ja) | 2002-05-28 | 2003-12-05 | Sony Corp | 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム |
US7051222B2 (en) * | 2002-12-31 | 2006-05-23 | Intel Corporation | Robust computer subsystem power management with or without explicit operating system support |
US7788669B2 (en) * | 2003-05-02 | 2010-08-31 | Microsoft Corporation | System for isolating first computing environment from second execution environment while sharing resources by copying data from first portion to second portion of memory |
US7426728B2 (en) * | 2003-09-24 | 2008-09-16 | Hewlett-Packard Development, L.P. | Reducing latency, when accessing task priority levels |
US7093080B2 (en) * | 2003-10-09 | 2006-08-15 | International Business Machines Corporation | Method and apparatus for coherent memory structure of heterogeneous processor systems |
JP2005122640A (ja) * | 2003-10-20 | 2005-05-12 | Hitachi Ltd | サーバシステム及びi/oスロット共有方法。 |
US7725895B2 (en) * | 2004-03-31 | 2010-05-25 | Intel Corporation | Processor control register virtualization to minimize virtual machine exits |
US7356625B2 (en) * | 2004-10-29 | 2008-04-08 | International Business Machines Corporation | Moving, resizing, and memory management for producer-consumer queues by consuming and storing any queue entries from an old queue before entries from a new queue |
US7613886B2 (en) * | 2005-02-08 | 2009-11-03 | Sony Computer Entertainment Inc. | Methods and apparatus for synchronizing data access to a local memory in a multi-processor system |
US7418541B2 (en) * | 2005-02-10 | 2008-08-26 | International Business Machines Corporation | Method for indirect access to a support interface for memory-mapped resources to reduce system connectivity from out-of-band support processor |
-
2005
- 2005-06-14 JP JP2005173808A patent/JP4322232B2/ja not_active Expired - Fee Related
-
2006
- 2006-06-12 US US11/451,611 patent/US8151275B2/en active Active
- 2006-06-13 EP EP06253067A patent/EP1734444A2/en not_active Withdrawn
- 2006-06-14 CN CN200610093659A patent/CN100578456C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20060282624A1 (en) | 2006-12-14 |
JP4322232B2 (ja) | 2009-08-26 |
CN1881183A (zh) | 2006-12-20 |
US8151275B2 (en) | 2012-04-03 |
EP1734444A2 (en) | 2006-12-20 |
JP2006350531A (ja) | 2006-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100578456C (zh) | 信息处理装置、进程控制方法 | |
CN101606130B (zh) | 在处理器系统的指令级使能资源分配标识的方法和装置 | |
CN105095094B (zh) | 内存管理方法和设备 | |
CN102077188B (zh) | 用于虚拟化操作系统的直接存储器访问过滤器 | |
US5765198A (en) | Transparent relocation of real memory addresses in the main memory of a data processor | |
JP4947081B2 (ja) | パススルーi/oデバイスを伴うlparの動的マイグレーション装置、その方法及びそのプログラム | |
US7200695B2 (en) | Method, system, and program for processing packets utilizing descriptors | |
US8307053B1 (en) | Partitioned packet processing in a multiprocessor environment | |
RU2397535C2 (ru) | Устройство обработки информации, способ управления областью памяти и компьютерная программа | |
US11042331B2 (en) | Memory device managing data in accordance with command and non-transitory computer readable recording medium | |
JP2005501333A (ja) | プロセッサに譲渡するためのシステム | |
CN1707462B (zh) | 逻辑分区数据系统及其传输数据的方法 | |
US20120304171A1 (en) | Managing Data Input/Output Operations | |
US10289564B2 (en) | Computer and memory region management method | |
EP1691287A1 (en) | Information processing device, process control method, and computer program | |
JP2008146566A (ja) | 計算機、仮想デバイスの制御方法およびそのプログラム | |
US7389506B1 (en) | Selecting processor configuration based on thread usage in a multiprocessor system | |
WO2001046800A2 (en) | Dual-mode processor | |
JP2002117002A (ja) | 共用型ペリフェラルアーキテクチャ | |
CN100594481C (zh) | 允许运行在逻辑分区上的程序访问资源的方法与系统 | |
WO2010097925A1 (ja) | 情報処理装置 | |
US20240053998A1 (en) | Method and apparatus for processing inter-core communication, and computer system | |
US20080162805A1 (en) | Method and Apparatus for Using Non-Addressable Memories of a Computer System | |
US20230266992A1 (en) | Processor for managing resources using dual queues, and operating method thereof | |
US20070162638A1 (en) | Generic DMA memory space mapping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |