在逻辑分区数据处理系统中动态分配和解除分配处理器的方法和装置的制作方法

文档序号:6408035阅读:154来源:国知局
专利名称:在逻辑分区数据处理系统中动态分配和解除分配处理器的方法和装置的制作方法
技术领域
本发明通常涉及一改进的数据处理系统,并具体涉及一种用于在一数据处理系统中管理组件的方法和装置。更具体的,本发明提供一种用于在一逻辑分区数据处理系统中管理处理器的方法和装置。
背景技术
一数据处理系统(平台)中的逻辑分区(LPAR)功能允许一个操作系统(OS)的多个副本或多个异类的操作系统同时在一个数据处理系统平台上运行。将该平台的资源的一个不重叠子集分配给一个其中运行一操作系统映像的分区。这些平台可分配的资源包括位于它们的中断管理区域(interrupt management area)内的一个或多个结构上分离的处理器、诸系统存储器区域和诸输入/输出(I/O)适配器总线插槽。用平台的固件对该OS的映像来代表该分区的资源。
防止在该平台内运行的每个不同的OS或OS的映像相互影响,从而在一逻辑分区上的软件错误不能影响任何其他分区的正确操作。通过提供不相交的平台资源集给每个OS映像直接管理以及提供用于确保各映像不能控制没有分配给该OS的任何资源的机制,可以实现这一点。此外,防止对分配给一操作系统的资源的控制中的软件错误影响任何其他映像的资源。因此,该OS的每个映像(或每个不同的OS)直接控制该平台内不同的可分配资源集。
对于一LPAR系统内的硬件资源,不同的分区不相交地共享这些资源,这些分区本身是不相交的,每个分区好像是一个孤立的计算机。这些资源可包括例如输入/输出(I/O)适配器、存储器DIMM(双内联存储器模块)、非易失随机存取存储器(NVRAM)和硬盘驱动器。可以反复引导和关闭该LPAR系统内的每个分区而不必重新启动(power-cycle)整个系统。
实际上,被分区不相交地共享的一些I/O设备本身受到一个公共硬件例如主(host)外围组件接口(PCI)桥的控制,该桥可具有受控于该桥或位于该桥之下的多个I/O适配器。该主桥和连接到该桥的诸I/O适配器在该LPAR系统内形成一个层级的硬件子系统。另外,可认为这个桥被分配给它的插槽的所有分区共享。
目前,当一系统管理员想要改变分配给不同分区的资源时,在能够将这些资源从一个分区解除分配并再分配给另一个分区之前,必须停止或关闭受该改变影响的分区。这种类型的解除分配和分配的能力称为静态逻辑分区。这种类型的能力会暂时中断受影响的分区的正常操作。暂时中断正常操作会影响该LPAR系统的用户或其他客户。
因此,具有一种用于在一LPAR系统内管理分区而不需要中断受影响的分区的操作的改进的方法、装置和计算机指令是有利的。

发明内容
在第一个方面,本发明提供一种在一逻辑分区数据处理系统中用于管理该逻辑分区数据处理系统内的一组处理器的方法,该方法包括响应于一个将分配给该逻辑分区数据处理系统内的一个分区的处理器解除分配的请求,停止该处理器,其中该处理器属于该一组处理器;响应于停止该处理器,使将该处理器置于一隔离状态,其中该处理器与该分区隔离;并将该处理器安置到一资源池中以便以后再分配。
该方法优选地还包括,响应于一个分配该处理器的请求,将该处理器分配给该分区;配置该处理器以便由该分区使用;初始化用于访问该处理器的资源;将该处理器安置到一自循环(spin loop)软件状态机中;将对该处理器的控制发送给该分区。
优选地,通过禁止该处理器处理中断的能力来将该处理器置于一隔离状态。
优选地,将该处理器安置到一资源池中以便以后再分配会使该处理器变到一未分配状态。
优选地,本发明在动态基础上将该处理器解除分配。
优选地,将该处理器解除分配时无须终止该分区的执行。
在第二个方面,本发明提供一种在一逻辑分区数据处理系统中用于管理该逻辑分区数据处理系统中的处理器的方法,该方法包括响应于一个将分配给该逻辑分区数据处理系统内的一个分区的处理器解除分配的请求,将该处理器安置到一自循环软件状态机中以将该处理器置于一停止状态;使该处理器与该分区隔离,其中该分区不能访问该处理器;以及在已将该处理器与该分区隔离后将该处理器解除分配。
优选地,该解除分配步骤从该自循环软件状态机去掉该处理器,并将该处理器安置到一池中以便再分配。
优选地,该分区是一第一分区并还包括响应于在该处理器已被解除分配后接收到一个将该处理器分配给一第二分区的请求,在该第二分区不能访问该处理器的状态下将该处理器分配给该第二分区;将该处理器安置到一自循环软件状态机中;在将该处理器安置到该自循环软件状态机中后解除该处理器与该分区的隔离;以及将该处理器置于一运行状态,在该状态中该处理器开始执行该第二分区指定的地址处的代码。
优选地,该第二分区是该第一分区。
本方法优选地还包括配置该处理器以在该第二分区中使用。
优选地,在解除分配和分配该处理器时没有停止该第一分区和第二分区的执行。
在第三个方面,本发明提供一用于管理一组处理器的逻辑分区数据处理系统,该逻辑分区数据处理系统包括一总线系统;一连接到该总线系统的通信单元;一连接到该总线系统的存储器,其中该存储器包括一组指令;一具有一组连接到该总线系统的处理器的处理单元,其中响应于一个将分配给该逻辑分区数据处理系统的一个分区的一个处理器解除分配的请求,该处理单元执行该一组指令以停止属于该组处理器的一个处理器;响应于停止该处理器将该处理器置于一隔离状态,其中该处理器与该分区相隔离;以及将该处理器安置到一资源池中以便以后再分配。
在第四个方面,本发明提供一逻辑分区数据处理器系统,用于管理该逻辑分区数据系统中的一组处理器,该逻辑分区数据处理系统包括一总线系统;一连接到该总线系统的连接单元;一连接到该总线单元的存储器,其中该存储器包括一组指令;一连接到该总线系统的处理器单元,其中响应于一个将分配给该逻辑分区数据处理系统的一个分区的一个处理器解除分配的请求,该处理单元执行该一组指令以将该处理单元中的一个处理器安置到一自循环软件状态机中以使该处理器处于停止状态;使该处理器与该分区相隔离,其中该分区不能访问该处理器;以及在该处理器已经与该分区隔离后解除该处理器的分配。
在第五个方面,本发明提供一逻辑分区数据处理系统,用于管理该逻辑分区数据处理系统中的一组处理器,该逻辑分区数据处理系统包括用于响应于一个将分配给该逻辑分区数据处理系统的一个分区的一个处理器解除分配的请求,停止该处理器的停止装置,其中该处理器属于该一组处理器;用于响应于停止该处理器,将该处理器置于一隔离状态的第一安置装置,其中该处理器与该分区隔离;以及用于将该处理器安置到一资源池中以便以后再分配的第二安置装置。
优选地,该安置装置是一第一安置装置,并还包括用于响应于一个分配该处理器的请求将该处理器分配给该分区的分配装置;用于配置该处理器以便由该分区使用的配置装置;用于初始化用于访问该处理器的资源的初始化装置;用于将该处理器安置到一自循环软件状态机中的第二安置装置;以及用于将对该处理器的控制发送给该分区的发送装置。
优选地,通过禁止该处理器处理中断的能力来将该处理器置于一隔离状态。
优选地,将该处理器安置到一资源池中以便以后再分配使得该处理器变到一未分配状态。
优选地,本方法在动态基础上解除分配该处理器。
优选地,在解除分配该处理器时不需要终止该分区的执行。
在第六个方面,本发明提供一种逻辑分区数据处理系统,用于管理该逻辑分区数据处理系统中的处理器,该逻辑分区数据处理系统包括用于响应于一个将分配给该逻辑分区数据处理系统的一个分区的一个处理器解除分配的请求,将该处理器安置到一自循环软件状态机以将该处理器置于一停止状态的安置装置;用于将该处理器与该分区隔离的隔离装置,其中该分区不能访问该处理器;以及用于在该处理器已经与该分区隔离后解除分配该处理器的解除分配装置。
优选地,该解除分配装置从该自循环软件状态机中去掉该处理器并将该处理器安置到一个池中以便再分配。
优选地,该分区是一第一分区,并且其中该安置装置是一第一安置装置并还包括用于在该处理器已经被解除分配后响应于接收到一个将该处理器分配给一第二分区的请求,在该第二分区不能访问该处理器的状态下将该处理器分配给该第二分区的分配装置;用于将该处理器安置到一自循环软件状态机的第二安置装置;用于在将该处理器安置到该自循环软件状态机中之后,使该处理器与该分区解除隔离的解除隔离装置;以及用于将该处理器置于一运行状态的第三安置装置,在该运行状态中该处理器开始执行该第二分区指定的地址处的代码。
优选地,该第二分区是该第一分区。
该逻辑分区数据处理系统优选地还包括用于配置该处理器以在该第二分区中使用的配置装置。
优选地,在解除分配和分配该处理器时没有终止该第一分区和该第二分区的执行。
在第七个方面,提供一种计算机程序,当将该计算机程序加载到一计算机系统上并执行时,其执行所述第一个方面或第二个方面中的任何方法的所有步骤。
优选地,提供一种用于管理该逻辑分区数据处理系统中的处理器的位于一计算机可读介质中的一种计算机程序产品,该计算机程序产品包括用于响应于一个将分配给该逻辑分区数据处理系统的一个分区的一个处理器解除分配的请求,将该处理器安置到一自循环软件状态机以将该处理器置于一停止状态的第一指令;用于将该处理器与该分区隔离的第二指令,其中该分区不能访问该处理器;以及用于在该处理器已经与该分区隔离后解除该处理器的分配的第三指令。
因此,本发明提供了一种用于管理一组处理器的适当的方法、装置和计算机指令。响应于一个将分配给该逻辑分区数据处理系统的一个分区的一个处理器解除分配的请求,停止该组处理器中的该处理器。响应于停止该处理器,将该处理器置于一隔离状态,在该状态中该处理器与该分区隔离。然后将该处理器安置到一资源池中以便以后再分配。


现将参照附图,仅作为示例描述本发明的一个优选实施例,附图如下图1是一数据处理系统的结构图,其中可实现本发明;图2是一示例性逻辑分区平台的结构图,其中可实现本发明;图3示出一根据本发明的一优选实施例的LPAR表;图4是一根据本发明的一优选实施例的用于将一处理器从一分区重新分到另一分区的过程的流程图;图5是一根据本发明的一优选实施例的用于解除分配一处理器的过程的流程图;图6是一根据本发明的一优选实施例的用于将该一处理器分配给一分区的过程的流程图;以及图7是一根据本发明的一优选实施例的用于一自循环软件状态机的过程的流程图。
具体实施例方式
参照附图并具体参照图1,示出一个数据处理系统的结构图,在该数据处理系统中可实现本发明。数据处理系统100可以是一包括连接到系统总线106上的多个处理器101、102、103和104的对称多处理器(SMP)系统。例如,数据处理系统100可以是一IBM RS/6000,它是位于纽约Armonk的国际商业机器公司的产品,在网络中用作服务器。或者,可使用一单一处理器系统。存储器控制器/高速缓冲存储器108也连接到系统总线106上并提供到多个局部存储器160-163的接口。I/O总线桥110连接到系统总线106上并提供到I/O总线112的接口。如图所示,存储器控制器/高速缓冲存储器108和I/O总线桥110可以集成在一起。
数据处理系统100是一逻辑分区(LPAR)数据处理系统。因此,数据处理系统100可具有同时运行的多个异类的操作系统(或单一操作系统的多个实例)。该多个操作系统中的每一个中可执行任何数量的软件程序。数据处理系统100是逻辑分区的,从而可将不同的PCI I/O适配器120-121、128-129和136、图形适配器148和硬盘适配器149分配给不同的逻辑分区。在这种情况下,图形适配器148为一显示设备(未示出)提供连接,而硬盘适配器149提供连接以控制硬盘150。
因此,例如,假设数据处理系统100被划分成三个逻辑分区P1、P2和P3。PCI I/O适配器120-121、128-129和136中的每一个、图形适配器148、硬盘适配器149、主处理器101-104的每一个以及局部存储器160-163的每一个被分配给该三个分区中的一个。例如,处理器101、局部存储器160和I/O适配器120、128和129可被分配给逻辑分区P1;处理器102-103、局部存储器161和PCI I/O适配器121和136可被分配给逻辑分区P2;处理器104、局部存储器162-163、图形适配器148和硬盘适配器149可被分配给逻辑分区P3。
将在数据处理系统100中执行的每个操作系统分配给一个不同的逻辑分区。因此,在数据处理系统100中执行的每个操作系统只能访问位于其逻辑分区内的I/O单元。因此,例如高级交互执行体(AIX)操作系统的一个实例可在分区P1内执行,该AIX操作系统的一第二实例(映像)可在分区P2内执行,并且一个Windows 2000操作系统可在逻辑分区P1内执行。Windows 2000是位于华盛顿州Redmond的微软公司的产品和商标。
连接到I/O总线112的外围部件互连(PCI)主桥114为PCI局部总线115提供一个接口。多个PCI输入/输出适配器120-121可通过PCI-到-PCI桥116、PCI总线118、PCI总线119、I/O插槽170和I/O插槽171连接到PCI总线115上。PCI-到-PCI桥116提供了到PCI总线118和PCI总线119的接口。将PCI I/O适配器120和121分别安置到I/O插槽170和171中。通常的PCI实现将支持四到八个I/O适配器(例如用于附加连接器的扩充槽)。每个PCI I/O适配器120-121在数据处理系统100和输入/输出设备例如作为数据处理系统100的客户的其他网络计算机之间提供接口。
一附加PCI主桥122为一附加PCI总线提供一接口。PCI总线123连接到多个PCI I/O适配器128-129。PCI I/O适配器128-129可通过PCI-到-PCI桥124、PCI总线126、PCI总线127、I/O插槽172和I/O插槽173连接到PCI总线123上。PCI-到-PCI桥124为PCI总线126和PCI总线127提供接口。PCI I/O适配器128和128被分别安置到I/O插槽172和173中。这样,通过PCI I/O适配器128-129的每一个可支持附加I/O设备例如调制解调器或网络适配器。这样,数据处理系统100允许连接到多个网络计算机。
一插入I/O插槽174的存储器映射图形适配器148可通过PCI总线144、PCI-到-PCI桥142、PCI总线141和PCI主桥140连接到I/O总线112上。可将硬盘适配器149安置于连接到PCI总线145的I/O插槽175中。接着,该总线145连接到PCI-到-PCI桥142上,该桥142通过PCI总线141连接到PCI主桥140上。
一PCI主桥130为PCI总线131提供一接口以使之连接到I/O总线112。PCI I/O适配器136连接到I/O插槽176上,该I/O插槽176通过PCI总线133连接到PCI-到-PCI桥132上。PCI-到-PCI桥132连接到PCI总线131上。该PCI总线也将PCI主桥130连接到服务处理器邮箱接口和ISA总线访问直通(pass-through)逻辑194和PCI-到-PCI桥132上。服务处理器邮箱接口和ISA总线访问直通逻辑194转送目标为PCI/ISA桥193的PCI访问。NVRAM存储器192连接到该ISA总线196上。服务处理器135通过它的局部PCI总线195连接到服务处理器邮箱接口和ISA总线访问直通逻辑194上。服务处理器135也通过多个JTAG/I2C总线134连接到处理器101-104。JTAG/I2C总线134是JTAG/扫描总线(见IEEE 1149.1)和Phillips I2C总线的组合。然而,可选择地,可仅用Phillips I2C总线或仅用JTAG/扫描总线来替换JTAG/I2C总线134。将该些主处理器101、102、103和104的所有SP-ATTN信号连接到一起以形成该服务处理器的一个中断输入信号。该服务处理器135有自己的局部存储器191,并访问该硬件操作面板190。
当一开始向数据处理器系统100供电时,服务处理器135使用该JTAG/I2C总线134询问该系统(主)处理器101-104、存储器控制器/高速缓冲存储器108和I/O桥110。完成这个步骤后,服务处理器135了解了该数据处理系统100的各元件和拓扑。服务处理器135还在通过询问(主)处理器101-104、存储器控制器/高速缓冲存储器108和I/O桥110发现的所有元件上进行内建自测试(BIST)、基本保证测试(BAT)和存储器测试。服务处理器135收集并报告在该些BIST、BAT和存储器测试中检测到的关于故障的任何错误信息。
如果在去掉在该些BIST、BAT和存储器测试中发现的有故障的元件后仍可得到系统资源的一有意义/有效的配置,则允许数据处理系统继续下去,将可执行代码加载到局部(主)存储器160-163中。然后服务处理器135释放该些主处理器101-104以执行加载到局部存储器160-163的代码。当该些主处理器101-104执行来自该数据处理系统100内的各个操作系统的代码时,服务处理器135进入监视和报告错误模式。服务处理器135监视的项目类型包括例如冷却风扇的速度和操作、热传感器、电源调节器以及由处理器101-104、局部存储器160-163和I/O桥110报告的可恢复和不可恢复的错误。
服务处理器135负责保存并报告与在数据处理系统100中所有被监视的项目有关的错误信息。服务处理器135也根据错误类型和定义的阈值采取行动。例如,服务处理器135会注意到一处理器的高速缓冲存储器上的过多的可恢复的错误并判定这是硬件故障的前兆。根据该判定,服务处理器135可标记该资源以使之在当前运行的会话以及将来的初始程序装入(IPL)期间退出配置。IPL有时也称为“引导”(boot)或“引导”(bootstrap)。
可使用各种市售的计算机系统来实现数据处理系统100。例如,可使用国际商业机器公司的IBM eServer i系列840型系统实现数据处理系统100。这样的系统支持使用一OS/400操作系统的逻辑分区,该OS/400操作系统也可从国际商业机器公司得到。
本技术领域内的普通技术人员应理解,图1中所描述的硬件是可以改变的。例如,除了所述的硬件外还可使用其他的外围设备例如光盘驱动器及其类似物,作为附加或替代。所述示例并不打算限制本发明的结构。
现参照图2,示出一示例性的逻辑分区平台的结构图,在该逻辑平台中可实现本发明。逻辑分区平台200中的硬件可实现为例如图1中的数据处理系统100。逻辑分区平台200包括分区硬件230、操作系统202、204、206、208以及管理程序(supervisor)210。操作系统202、204、206和208可以是在平台200上同时运行的一个操作系统的多个副本或多个异类的操作系统。可使用OS/400实现这些操作系统,并将这些操作系统设计成与一管理程序接口连接。操作系统202、204、206和208位于分区203、205、207和209内。
另外,这些分区还包括固件装入程序211、213、215和217。使用可从国际商业机器公司得到的IEEE-1275标准开放固件和运行时间抽象软件(RTAS)可实现固件装入程序211、213、215和217。当实例化分区203、205、207和209时,由该管理程序的分区管理程序将该开放固件的一个副本加载到每个分区中。然后将与该分区相关联的或分配给该分区的处理器分派到该分区的存储器以执行该分区固件。
分区硬件230包括多个处理器232-238、多个系统存储器单元240-246、多个输入/输出(I/O)适配器248-262和一存储设备单元270。分区硬件230还包括服务处理器290,其可用于提供多种服务例如处理该些分区内的错误。可将处理器232-238、存储器单元240-246、NVRAM存储器298和I/O适配器248-262中的每一个分配给逻辑分区平台220中的多个分区中的一个,该逻辑分区平台220内的每个分区对应于操作系统202、204、206和208中的一个。
分区管理固件(管理程序)210为分区203、205、207和209执行多个功能和服务以创建和实施逻辑分区平台200的分区。管理程序210是与作为基础的硬件相同的一个由固件实现的虚拟机。可从国际商业机器公司得到管理程序软件。固件是存储在一存储器芯片中的“软件”,该存储器片在不带电时仍保留其内容,例如只读存储器(ROM)、可编程ROM(PROM)、可擦除的可编程ROM(EPROM)、电可擦除的可编程ROM(EEPROM)和非易失的随机存取存储器(非易失RAM)。因此,管理程序210通过虚拟化逻辑分区平台200的所有硬件资源允许同时执行独立的OS映像202、204、206和208。
通过硬件管理控制台例如控制台264可控制不同分区的操作。控制台264是一个单独的数据处理系统,从该数据处理系统中一系统管理员可执行包括将资源重新分配到不同分区的多种功能。
接着参照图3,示出根据本发明的一个优选实施例的LPAR表。在此示例中,LPAR表位于NVRAM 300和系统存储器302中。NVRAM 300可实现为图2中的NVRAM 298,并且系统存储器302可实现为图2中的系统存储器244。这些表中的信息用于识别什么资源被分配给特定的分区以及状况信息。
在此示例中,在NVRAM 300中这些表包括处理器表304、抽屉表306、输入/输出(I/O)插槽分配表308、状况/命令表310和系统资源表312。对于该LPAR数据处理系统中每个处理器,处理器表304中都维护一条记录。该表中的每条记录包括例如分配给该处理器的逻辑分区的ID、物理位置ID、处理器状况以及处理器状态。
对于该LPAR系统中的每个抽屉,抽屉表306中都有一条记录,其中每条记录都可包括抽屉状况和插槽的数量。抽屉是位于机架内的位置。每个抽屉具有某个最大数量的插槽,在该些插槽内安放处理器节点、I/O设备和存储器板。机架为各组件提供了托架以及电能。
对于该LPAR系统内的每个插槽,I/O插槽分配表308中都有一条记录,并且例如,每条记录可包括位置代码、I/O设备ID和分配给该插槽的分区的ID。
系统存储器302包括转换控制条目(TCE)表314、存储器映射输入/输出(MMIO)表316和中断表318。这些表包括用于识别用于访问I/O插槽的资源的信息。例如TCE表314可包括针对每个插槽的直接存储器存取(DMA)地址的转换控制条目(TCE)。另外,插槽的存储器映射输入/输出(MMIO)地址位于MMIO表316中。另外,在中断表318中也可识别分配给不同插槽的中断。一管理程序例如图2中的管理程序210控制并可访问此信息。
对于每个分区,状况/命令表310中都有一条记录。该表可包括该分区的命令状态、对该分区的当前命令和对该分区的最后命令。
系统资源表312中维护关于该系统可利用的资源的信息。此表可包括例如插槽的最大数量、处理器的最大数量、抽屉的最大数量、被安装的总的存储器、分配给该些分区的总的存储器以及时间信息。
现参照图4,示出根据本发明的一优选实施例的用于将一处理器从一分区重新分配到另一分区的过程的流程图。可以在一硬件管理控制台例如图2中控制台264中实现图4中示出的过程。该些步骤可通过由用户发起每个步骤来实现,或者通过在该过程根据该操作系统的响应发起每个步骤时,由用户输入选择与该动态再分配有关的一处理器以及分区来实现。在此示例中,请求为从一第一分区中将一处理器解除分配并将该处理器分配给一第二分区。
该过程开始于该操作系统发送一个从第一分区将一处理器解除分配的请求(步骤400)。在此示例中这个请求包括一处理器ID以识别该处理器。然后判定该处理器是否可用(步骤402)。这个判定主要监视该处理器在一全局处理器池中的可用性。如果一处理器是不可用的,则该过程继续进行,返回到步骤402。否则,将可用处理器表中的分区ID从第一分区变成第二分区(步骤404)。在一处理器表例如图3中的处理器表304中改变此分区ID。此后,向位于该第二分区内的操作系统发送一个增加该处理器的请求(步骤406),然后该过程结束。
在下面的附图示出操作系统、固件装入程序和管理程序用来解除分配和分配一处理器的过程。在这些示例中,这些过程是响应于一控制台的请求而发起的过程。
现参照图5,示出根据本发明的一优选实施例的用于将一处理器解除分配的过程的流程图。在一逻辑分区数据处理系统例如图2中的逻辑分区平台200中可实现图5中示出的过程。
通过接收到一个解除分配一处理器的请求(步骤500)来开始该过程。在这些示例中,从该分区的该操作系统接收到该请求。接下来,判定是否选择了一处理器(步骤502)。如果没有选择一处理器,则选择一处理器(步骤504)。在此示例中,操作系统根据某种策略或某组规则选择该处理器。例如,响应于这个不确定的解除分配的请求,该操作系统根据诸如处理器中断优先权和处理器的工作负荷等属性来确定将选择哪个处理器。
将该处理器的状态变成停止(步骤506),从而停止该处理器的执行(步骤508)。通过由该操作系统调度该被选择的处理器发出一RTAS调用来开始步骤506。在此示例中,该调用是一rtas_stop_self()调用。响应于该调用,该被选择的处理器发起对该管理程序例如管理程序210的调用以将该处理器的状态从运行变成停止。在此状态下,该处理器进入一循环,也称为一rtas_spin_loop(),在该循环中该处理器等待来自该分区中的其他处理器的触发事件。另外,该操作系统将发出询问以确保该被选择的处理器已变到停止状态。该操作系统可通过对该固件装入程序的RTAS组件的一rtas_query_stopped_state()调用来发出询问。
去除用于访问该处理器的资源(步骤510)。执行步骤510以使该处理器与该分区隔离。在这些示例中,隔离是指该处理器不能再作为一中断服务器。换句话说,该处理器不能再接收和处理中断。在此示例中被去除的资源包括去除外部中断源,该外部中断源将该处理器指定为服务器,并禁止一个向该处理器路由发送任何外部中断的全局服务器队列。响应于来自操作系统的调用,通过该RTAS调用该管理程序可实现该隔离。然后,将该处理器的状态变成停止(步骤512)。
在隔离该处理器后,该操作系统准备好使该处理器返回到一全局可用处理器池。解除分配该处理器(步骤514)并将该处理器的状态变成未分配的(步骤516)。通过该处理系统发出调用以将该处理器解除分配来发起该解除分配。在此示例中,该调用是对包括该RTAS的固件装入程序发出的rtas_set_indicator()调用。修改当前可获得的rtas_set_indicator()调用以处理新类型的指示符,本发明的机制使用该些新类型的指示符以实现所希望的功能。该RTAS通过向当前位于该rtas_spin_loop()中的处理器发送一解除分配或触发事件以实现解除分配。该处理器确认此事件,接着该处理器调用该管理程序以将该处理器发送回全局可用处理器池。该处理器将它的分区寄存器标识符重置为零以指示该处理器现在处于一未分配状态。该解除分配或触发事件也称为“去往全局处理器池”事件。通过将此该分区标识符设为零来更新该分区标识符以指示现在该处理器位于该全局可用处理器池中(步骤518)。在一个表例如图3中的位于NVRAM 300中的处理器表304中进行该更新。发送一报警消息(步骤520),然后该过程结束。将此报警消息发送给一硬件管理控制台例如图2中的控制台264。
使用该报警消息以指示已经解除分配该处理器。
再次返回步骤502,如果选择一处理器,则该过程进到如上所述的步骤506。
现参照图6,示出根据本发明的一优选实施例的用于将一处理器分配给一分区的过程的流程图。可在一逻辑分区数据处理系统例如图2中的逻辑分区平台200中实现图6中示出的过程。
通过接收一分配一处理器的请求来开始该过程(步骤600)。在此步骤中,可由在一控制台例如图2中的控制台264前的一操作者或系统管理员发起该请求。该操作系统接收一个分配一处理器的许可,其可能指示或没有指示将要分配哪个处理器。如果没有识别一处理器,则进行调用以识别该处理器。该操作系统发出调用以使该处理器被分配给该分区。然后将该处理器分配给该分区(步骤602)。使用一rtas_set_indicator()调用可发起此分配。响应于接收到来自该操作系统的这个调用,该RTAS将该处理器的状态从未分配的变成隔离的(步骤604)。
调度并停止该处理器(步骤606)。在被调度给该分区后,该处理器初始化它的分区ID寄存器和其他管理程序资源寄存器。每个处理器在其硬件中具有一分区ID寄存器。所有属于同一分区的处理器必须具有写入它们的内部分区ID寄存器中的相同的分区ID值(从该LPAR处理器表中获得)。当将该新处理器分派给新分区时,设置该处理器的内部分区ID寄存器以具有与已位于该分区内的其他处理器的分区ID相同的分区ID。处理器硬件使用该分区ID以便正常运行。类似的,存在其他的处理器专用寄存器例如页表寄存器、实模式偏移量寄存器、实模式大小寄存器等,该些寄存器必须被初始化为具有与已位于该分区内的其他处理器所使用的值相同的值。通过将该处理器安置到一软件状态机rtas_spin_loop()中来停止该处理器,在该状态机中该处理器执行一自循环过程,在该自循环过程中该处理器等待一触发事件以执行其他的指令。将该处理器的状态变成停止(步骤608)。这是该操作系统发出调用来解除隔离该处理器以便由该操作系统配置的结果。通过调用该RTAS例如一rtas_set_indicator()调用来发起状态改变,该调用中包含一参数来指示所需的状态改变。接着,通过RTAS调用该管理程序来改变该状态,可将该处理器的状态从隔离的改变为停止的。
当作为步骤604的结果,该处理器开始进入该自循环时,该操作系统可能不知道该处理器是否成功地位于该自循环中。步骤608将状态从隔离的改变为停止的,并且这是操作系统确定该处理器确实位于该分区的RTAS状态机rtas_spin_loop()中的机制。作为步骤608的结果,现在该处理器已准备好被调度到该OS的内核处理器资源管理程序的控制中。
配置该处理器(步骤610)。该配置是由该操作系统发起的。在此示例中,向该RTAS发出一rtas_configure_connector()调用。执行的配置可包括例如将该处理器设置成发挥一中断服务器的功能。另外,可使能一全局服务器队列向此处理器路由传送中断。
将该处理器的状态变成运行的以给予该操作系统内核对该处理器的完全控制(步骤612),然后该过程结束。当该操作系统准备好使用一处理器时该操作系统发起此步骤。该操作系统可向该RTAS发送一个调用例如rtas_start_cpu()以请求将对该处理器的控制给予该操作系统。作为响应,该RTAS调用该管理程序以将此处理器的状态从停止的设为运行的。此后,该RTAS发送一触发事件以使该处理器开始执行用于该操作系统的一目标地址上的指令。该触发事件可包括一存储器缓冲区地址,作为用于该目标地址处的子程序的参数。响应于这个状态改变,该处理器认可该事件,退出该自循环状态,将所提供的存储器缓冲区地址设置到该处理器的寄存器中,并分支到在该目标地址处提供的子程序。
现参照图7,示出一根据本发明一优选实施例的用于一自循环软件状态机的过程的流程图。在一处理器例如图2中的处理器232中可实现图7中示出的过程。图7中的过程更详细地描述了当一处理器进入一自循环状态例如被一rtas_spin_loop()调用发起的状态时发生的事件。此状态也是停止状态,当该处理器执行下述的自循环过程中的步骤时将发生此状态。
通过判定是否已发生一触发事件(步骤700)来开始该过程。这些事件是可以在一个调用中被传递给该处理器以使该处理器执行一个功能或执行被选定的代码的特定指令或参数。如果已发生一触发事件,则判定该事件是否是“go_to_OS”(去往操作系统)(步骤702)。如果该事件不是“go_to_OS”,则判定该事件是否是“go_to_globalprocessor_pool”(去往全局处理器池)(步骤704)。如果该事件不是“go_to_globalprocessor_pool”,则判定该事件是否是“turn_off_myself”(关闭我自己)(步骤706)。如果该事件是“turn_off_myself”,则从该系统中去掉该处理器(步骤708),然后该过程结束。如果已识别该处理器是一个坏的处理器或是一个运行时出现故障的处理器,则发生形式为“turn_off_myself”的事件。
再返回步骤706,如果该事件不是“turn_off_myself”,则过程返回上述的步骤700。如果没有任何触发事件,则在一个也称为“自循环”的“循环”中该过程继续进行,返回到步骤706。
再参照步骤704,如果该事件是“go_to_globalprocessor_pool”,则调用该管理程序以将该NVRAM的状态从隔离的变成未分配的(步骤712)。在一处理器表例如图3中的处理器表304中改变该状态。然后,该过程在全局处理器池管理程序的处理器控制循环中执行,并等待以后的调度(步骤714),然后该过程结束。
再参照步骤702,如果该事件是“go_to_OS”,则该处理器分支到由该操作系统设置的地址并执行来自该地址的代码(步骤710),然后过程结束。步骤710示出该处理器从一停止状态进入一运行状态。在该处理器可以响应该“go_to_OS”以在步骤710中进入该运行状态之前,该处理器的状态已从隔离的变成停止的。再参照步骤700,如果一触发事件没有发生,则该过程返回到开始。
因此,本发明提供一种允许在一逻辑分区数据处理系统中动态解除分配和分配处理器资源的改进的方法、装置和计算机指令。此过程允许一用户或系统管理员发送一个从一分区解除分配一处理器并使该处理器分配给另一分区的请求。该操作系统发起将该处理器从该分区解除分配并将其安置到一全局池中以便再分配所必须的步骤。当检测到再分配时,可通过在一处理器表例如图3中的处理器表304中改变分区ID来将该处理器分配给另一分区。此后,该用户可向位于分区2中的操作系统发送一个将该处理器授予该分区的请求,然后该操作系统执行分配该处理器所需的步骤。执行所有这些步骤时不需要终止受影响的分区中任何一个的操作。
应注意,尽管已经在一全功能的数据处理系统的情境中描述了本发明,但本技术领域内的普通技术人员将理解,能够以包含指令的计算机可读介质的形式以及多种形式分发本发明的过程,并且不管实际用于执行该分发的信号承载介质的具体形式如何,可同样地应用本发明。计算机可读介质的例子包括可记录类型的介质例如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM,和传输型介质例如数字和模拟通信链路、使用诸如射频或光波传输等传输形式的有线或无线通信链路。该计算机可读介质可采取编码格式的形式,可以对其解码以在一特定的数字处理系统中使用。
已给出的对本发明的描述是出于说明和描述的目的,而不是打算是穷尽性的或将本发明限制在公开的形式中。对于本技术领域内的普通技术人员而言,很明显可进行多种修正和变动。例如,所示参与处理器的动态分配和解除分配的具体组件是一操作系统、一RTAS和一管理程序。描述这些具体组件是出于说明目的而不是打算限制动态分配过程的实现方式。选择和描述该实施例是为了更好地解释本发明的原理、实际应用,并使本领域内的其他技术人员理解本发明的适于预期的特定用途的具有各种修正的各种实施例。
权利要求
1.一种在逻辑分区数据处理系统用于管理该逻辑分区数据处理系统中的一组处理器的方法,该方法包括响应于一个将被分配给该逻辑分区数据处理器系统中的一个分区的一处理器解除分配的请求,停止该处理器,其中该处理器属于该一组处理器;响应于停止该处理器,将该处理器置于一隔离状态,其中该处理器与该分区隔离;以及将该处理器安置到一资源池中以便以后再分配。
2.根据权利要求1的方法,其特征在于,还包括响应于一个分配该处理器的请求,将该处理器分配给该分区;配置该处理器以便由该分区使用;初始化用于访问该处理器的资源;将该处理器安置到一自循环软件状态机中;以及将对该处理器的控制发送给该分区。
3.根据权利要求2的方法,其特征在于,通过禁止该处理器处理中断的能力来将该处理器置于一隔离状态。
4.根据权利要求1或权利要求2的方法,其特征在于,解除分配该处理器时没有终止该分区的执行。
5.根据前面的权利要求中的任何一个的方法,其特征在于,还包括响应于一个将被分配给该逻辑分区数据处理器系统中的一个分区的一处理器解除分配的请求,将该处理器安置到一自循环软件状态机中以将该处理器置于一停止状态;将该处理器与该分区隔离,其中该分区不能访问该处理器;以及在该处理器已与该分区隔离后,将该处理器解除分配。
6.根据权利要求5的方法,其特征在于,该解除分配步骤将该处理器从该自循环软件状态机中取出并将该处理器安置到一个池中以便再分配。
7.根据权利要求5的方法,其特征在于,该分区是一第一分区,并且还包括在已将该处理器解除分配后响应于接收到一个将该处理器分配给一第二分区的请求,在一种该第二分区不能访问该处理器的状态下将该处理器分配给该第二分区;将该处理器安置到一自循环软件状态机中;在将该处理器安置到该自循环软件状态机中后,解除该处理器与该分区的隔离;以及将该处理器置于一运行状态,其中该处理器开始执行由该第二分区指定的一地址处的代码。
8.一种用于管理一组处理器的逻辑分区数据处理系统,该逻辑分区数据处理系统包括一总线系统;一连接到该总线系统的通信单元;一连接到该总线系统的存储器,该存储器包括一组指令;以及一具有一组连接到该总线系统的处理器的处理单元,其中该处理单元执行该一组指令以停止一处理器,其中该处理器属于该一组处理器,以响应一个将分配给该逻辑分区数据处理系统内的一个分区的一处理器解除分配的请求;将该处理器置于一隔离状态,在该状态中该处理器与该分区隔离,以响应停止该处理器;以及将该处理器安置到一资源池中以便以后再分配。
9.根据权利要求8的逻辑分区数据处理系统,其特征在于,该安置装置是一第一安置装置,并还包括分配装置,用于响应于一个分配该处理器的请求,将该处理器分配给该分区;配置装置,用于配置该处理器以便由该分区使用;初始化装置,用于初始化用于访问该处理器的资源;第二安置装置,用于将该处理器安置到一自循环软件状态机中;以及发送装置,用于将对该处理器的控制发送给该分区。
10.一种计算机程序,当被加载到一计算机系统中并在该系统上执行时,执行根据权利要求1到7的任何一个的方法的所有步骤。
全文摘要
一种用于管理一组处理器的方法、装置和计算机指令。响应于一个将分配给逻辑分区数据处理器系统中的一个分区的处理器解除分配的请求,停止该一组处理器中的该处理器。响应于停止该处理器,将该处理器置于一隔离状态,其中该处理器与该分区隔离。然后将该处理器安置在资源池中以便以后再分配。
文档编号G06F9/46GK1653425SQ03810387
公开日2005年8月10日 申请日期2003年4月1日 优先权日2002年5月9日
发明者V·H·李, D·威洛比 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1