CN1759378A - 用于在经过逻辑分区的计算机系统中控制资源转移的装置和方法 - Google Patents
用于在经过逻辑分区的计算机系统中控制资源转移的装置和方法 Download PDFInfo
- Publication number
- CN1759378A CN1759378A CNA2004800062163A CN200480006216A CN1759378A CN 1759378 A CN1759378 A CN 1759378A CN A2004800062163 A CNA2004800062163 A CN A2004800062163A CN 200480006216 A CN200480006216 A CN 200480006216A CN 1759378 A CN1759378 A CN 1759378A
- Authority
- CN
- China
- Prior art keywords
- groove
- pci
- control
- logical partitions
- hardware resources
- 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
Links
- 238000000034 method Methods 0.000 title claims description 47
- 238000012546 transfer Methods 0.000 title claims description 16
- 238000005192 partition Methods 0.000 claims abstract description 239
- 230000007246 mechanism Effects 0.000 claims abstract description 38
- 230000027455 binding Effects 0.000 claims description 25
- 238000009739 binding Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 description 26
- 238000005538 encapsulation Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004100 electronic packaging Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013268 sustained release Methods 0.000 description 1
- 239000012730 sustained-release form Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Abstract
一种资源和分区管理器包括通电/断电机制,其中当从逻辑分区移除资源的控制时,该机制用于确保硬件资源被掉电,并且当将硬件资源的控制转移到逻辑分区时确保该硬件资源被加电。可替换地,当将硬件资源转移到逻辑分区时,资源和分区管理器可以简单地将硬件资源置于通电复位状态。以这种方式,当变得可用于分区时,硬件资源处于通电复位状态,其中该通电复位状态典型地是逻辑分区所期望的状态。
Description
相关申请
本专利申请与2003年3月13日由相同的发明者提交的具有相同发明名称的美国专利申请序列号10/388,350相关,在此将其全文引作参考。
技术领域
本发明一般涉及数据处理,更具体地涉及在计算机系统中的共享资源的分配。
背景技术
自从计算机时代的开始,计算机系统已经发展成可以在许多不同场景中找到的非常高级的设备。计算机系统典型地包括硬件(例如,半导体、电路板等)和软件(例如,计算机程序)的组合。由于半导体处理和计算机体系结构的进步将计算机硬件的性能推向更高,所以已经发展更高级的计算机软件来利用硬件的更高性能,这导致了比仅几年前更加强大的今天的计算机系统。
在特定计算机系统中的硬件和软件的组合定义了计算环境。这样,不同的硬件平台和不同的操作系统提供不同的计算环境。在最近几年,工程师已经认识到有可能通过将计算机系统资源逻辑分区为不同的计算机系统来在相同的物理计算机系统上提供不同的计算环境。IBM开发的iSeries计算机系统是支持逻辑分区的计算机系统的例子。如果需要在iSeries计算机系统上的逻辑分区,则安装允许在相同的平台上定义不同的计算环境的资源和分区管理器代码(在iSeries术语中称作“管理程序(hypervisor)”)。一旦安装了资源和分区管理器,则可以创建定义不同计算环境的逻辑分区。资源和分区管理器管理逻辑分区,以确保这些逻辑分区可以共享在计算机系统中需要的资源,同时保持由逻辑分区定义的单独计算环境。
包括多个逻辑分区的计算机系统典型地在在逻辑分区之间共享资源。例如,可以定义具有两个逻辑分区的计算机系统,其中将CPU的50%分配给每个分区、将存储器的33%分配给第一分区并将存储器的67%分配给第二分区、以及以每个分区各一个的方式将两个不同的I/O槽分配给两个逻辑分区。一旦定义了逻辑分区且将共享资源分配给逻辑分区,则每个逻辑分区充当单独的计算机系统。这样,在上面的具有两个逻辑分区的单个计算机系统的例子中,该两个逻辑分区实际上看来似乎是两个单独且不同的计算机系统。
当硬件资源需要在逻辑分区间转移时,发生公知的经过逻辑分区的计算机系统的一个问题。例如,如果需要将在第一逻辑分区中的PCI槽转移到第二逻辑分区,则必须首先将PCI槽从第一逻辑分区移除,然后可以将该PCI槽分配给第二逻辑分区。然而,应当注意,在现有技术中,一旦已经将PCI槽从第一逻辑分区移除,两个逻辑分区可能会同时竞争对PCI槽的控制。另外,当将PCI槽分配给不同的逻辑分区时,它可能包含在特定情况下可能被泄露的来自先前逻辑分区的数据。此外,可能在适合于第一逻辑分区的特定状态下配置PCI槽,但是该特定状态不一定适合于第二逻辑分区。没有在经过逻辑分区的计算机系统中动态地转移I/O资源的方法,其中该计算机系统没有在本技术领域内公知的缺点,计算机工业将继续遭受潜在的不安全和效率低的机制和方法,其用于在经过逻辑分区的计算机系统中执行I/O资源转移。
发明内容
一种资源和分区管理器包括通电/断电机制,其中当从逻辑分区移除资源的控制时,该机制用于确保硬件资源被掉电,并且当将硬件资源的控制转移到逻辑分区时确保该硬件资源被加电。可替换地,当将硬件资源转移到逻辑分区时,资源和分区管理器可以简单地将硬件资源置于通电复位状态。以这种方式,当变得可用于分区时,硬件资源处于通电复位状态,其中该通电复位状态典型地是逻辑分区所期望的状态。
本优选实施例非常适合于在经过逻辑分区的计算机系统中控制对I/O槽的访问。然而,应当注意,也可能使用在这里公开的优选实施例来控制对其它硬件资源的访问,例如I/O总线、I/O通信通道、虚拟I/O槽或设备、CPU、以及存储器。
附图说明
根据下面对本发明的优选实施例的更具体描述,本发明的前述和其它特征和优点将会变得清楚,其中附图示出了本发明的这些优选实施例:
图1是根据优选实施例的支持逻辑分区和I/O资源分配的计算机装置的方框图;
图2是示出根据优选实施例的可以在经过逻辑分区的计算机系统中使用的一个特定硬件实现的更详细方框图;
图3是根据优选实施例的可以在图2所示的硬件系统上实现的特定的经过逻辑分区的软件实现的方框图;
图4是根据优选实施例的用于重新启动逻辑分区的方法的流程图;
图5是根据优选实施例的用于关闭逻辑分区的方法的流程图;
图6是根据优选实施例的用于对逻辑分区加电的方法的流程图;
图7是根据优选实施例的用于使逻辑分区放弃对它所拥有的槽的控制的的方法的流程图;以及
图8是根据优选实施例的用于使逻辑分区重新得到对它所拥有的槽的控制的方法的流程图。
具体实施方式
根据本发明的优选实施例,当将硬件资源分配给逻辑分区时,通电/断电机制确保使硬件资源处于通电复位状态。可以通过下述途径来实现这一点:通过向硬件资源上的一个或多个存储器位置写入在对硬件资源加电时将期望的值,或者通过当将硬件资源从逻辑分区移除时使硬件资源断电并且当将硬件资源分配给逻辑分区时使硬件资源通电。以这种方式,确保了每个逻辑分区在它的通电复位状态都看到硬件资源。对于I/O槽的具体例子,通过将I/O槽中的适配器置于通电复位状态(或者通过将适当的值写到适配器,或者通过对包含适配器的I/O槽进行通电/断电循环),通电/断电机制确保当将I/O槽分配给不同的逻辑分区时来自插入到槽中的I/O适配器的数据和配置信息都被清除。另外,可以将硬件资源暂时地从它们的逻辑分区转移到资源和分区管理器,以便在硬件资源或者包含该硬件资源的物理封装组件上执行硬件服务操作。当硬件服务完成时,将硬件资源转移到它们的逻辑分区。
应当注意,在说明书和权利要求书中使用的术语“硬件资源”在这里表示可以被独立地分配给逻辑分区的在计算机系统中的任何整体或者部分硬件。硬件资源的例子包括:物理I/O槽、物理封装中的一组I/O槽、部分处理器、以及部分存储器。这里给出的优选实施例使用I/O槽的具体例子,作为可以独立分配给逻辑分区的硬件资源。然而,应当注意的是,可以独立分配给逻辑分区的任何硬件或硬件部分都落入到在这里使用的术语“硬件资源”的范围内。
参考图1,计算机系统100是增强的IBM eServer iSeries计算机系统,并表示根据优选实施例的一种合适类型的支持逻辑分区和资源分配的计算机系统。本领域的技术人员应该理解,本发明的机制和装置可以同样地应用到支持逻辑分区的任何计算机系统。如图1所示,计算机系统100包括:一个或多个连接到主存储器120的处理器110、大容量存储装置接口130、显示器接口140、网络接口150、以及多个I/O槽180。这些系统组件通过使用系统总线160而相互连接。大容量存储装置接口130用于将大容量存储设备(诸如直接访问存储设备155)连接到计算机系统100。直接访问存储设备的一个特定类型是可从CD RW 195读取数据的CD RW驱动器。注意,实际上可以在连接到I/O槽180的适配器中实现大容量存储装置接口130、显示器接口140、以及网络接口150。
主存储器120包含:资源和分区管理器121、I/O槽锁机制122、通电/断电槽机制124、以及在图1中以逻辑分区125A至125N示出的N个逻辑分区125。资源和分区管理器121优选地创建这些N个逻辑分区125。每个逻辑分区优选地包括在图1中以操作系统126A至126N示出的对应操作系统126。
I/O槽锁机制122通过定义多个槽锁123来管理对I/O槽180的访问,其中一个槽锁123优选地对应于每个I/O槽180。当需要将I/O槽分配给逻辑分区时,资源和分区管理器检查对应的槽锁以查看I/O槽是否可用。如果对应的槽锁由不同的逻辑分区拥有,则该I/O槽处于那个逻辑分区的控制之下。如果对应的槽锁由资源和分区管理器拥有或者未被分配,则通过资源和分区管理器设置对应的槽锁并将I/O槽分配给发出请求的逻辑分区,可以控制该I/O槽。以这种方式,槽锁123有效地用作指示对应的I/O槽是否可用的信号灯。
通电/断电槽机制124用于确保在将I/O槽从逻辑分区移除之前使该槽掉电,并用于确保当将槽分配给逻辑分区时对槽加电。在现有技术中,可以将I/O槽从一个逻辑分区移除并将其分配给不同的逻辑分区。然而,执行这一重新分配导致两个可能问题。第一个问题是数据完整性的问题。当I/O槽被重新分配给不同的逻辑分区时,来自在第一逻辑分区中运行的进程的数据可能保留在插入到I/O槽的I/O适配器中。在理论上,具有足够技术的人有可能可以破解(hack into)来自第二逻辑分区的该数据,这将泄露来自第一逻辑分区的数据。第二个问题是接收I/O槽的新逻辑分区不知道I/O槽的当前配置。事实上,因为逻辑分区像不同的计算机系统一样工作,所以逻辑分区自动地假设当将I/O适配器分配给逻辑分区时该I/O适配器处于通电复位状态。这在没有经过逻辑分区的计算机系统中当然是合理的假设。如果I/O适配器将在两个不同的计算机系统之间进行物理转移,则将该I/O适配器从第一计算机系统拔出并插入到第二计算机系统中。其结果是在计算机系统之间转移的期间在I/O适配器上进行通电/断电循环,从而清除其数据并使该I/O适配器处于通电复位状态。当计算机系统第一次启动时,接收到I/O适配器的第二计算机系统知道I/O适配器处于通电复位状态。然而,该假设在经过逻辑分区的计算机系统的情况下并不成立。相反,现有技术允许在分区之间转移I/O资源,而不执行任何断电或通电循环,从而导致上述两个问题。通电/断电槽机制124通过当将槽分配给逻辑分区时确保将I/O槽置于通电复位状态来解决这个问题。在第一个特定实施例中,通过将适当的值写到I/O槽的适配器上的一个或多个存储器位置来使适配器处于通电状态,将I/O槽置于通电复位状态。在第二个特定实施例中,当将I/O槽从一个逻辑分区移除并将其分配给不同的逻辑分区时,在I/O槽上一直进行通电/断电循环,这有可能中断(disrupt)只影响该I/O槽而不影响可以共享相同物理封装的其它槽的操作。以这种方式,每个逻辑分区都可以正确地假设当逻辑分区第一次启动时或者当激活的逻辑分区接收到I/O适配器的控制时I/O适配器是处于它的通电复位状态。
操作系统126是多任务操作系统,诸如OS/400、AIX、或者Linux;然而,本领域的技术人员将理解,本发明的精神和范围不限于任何一个操作系统。可以使用任何合适的操作系统。操作系统126是包含低级代码来管理计算机系统100的资源的成熟程序。部分这些资源是处理器110、主存储器120、大容量存储装置接口130、显示器接口140、网络接口150、系统总线160、以及I/O槽180。每个分区中的操作系统126可以与其它分区中的操作系统一样,或者可以是完全不同的操作系统。这样,一个分区可以运行OS/400操作系统,同时不同的分区可以运行OS/400的另一个实例,其有可能是不同的发布版本,或者具有不同的环境设置(例如,时区)。逻辑分区中的操作系统甚至可以与OS/400不同,只要该操作系统与硬件兼容即可(诸如AIX或者Linux)。以这种方式,逻辑分区可以在相同的物理计算机系统上提供完全不同的计算环境。
在图1中示出了分区125A-125N,其驻留在主存储器120内。然而,本领域的技术人员将认识到分区是包括不同于存储器的资源的逻辑构造。逻辑分区典型地随同处理器容量和其它系统资源如I/O槽180的分配一起指定部分存储器。因此,可以将一个分区定义为包括与一个或多个I/O处理器一起的两个处理器和部分存储器120,其中该I/O处理器可以提供大容量存储装置接口130、显示器接口140、网络接口150、或者与插入到I/O槽180中的I/O设备的接口的功能。然后,可以将另一个分区定义为包括三个其它处理器、存储器120的不同部分、以及一个或多个I/O处理器。图1所示的分区象征性地表示将包括计算机系统100内的存储器120之外的系统资源。也应当注意,资源和分区管理器121、I/O槽锁机制122、以及通电/断电槽机制124优选地驻留在与分区分开的存储器和硬件中,并且是对分区不是直接可用的设施和机制。可替换地,I/O槽锁机制122和通电/断电槽机制124可以驻留于在计算机系统100中定义的分区的任一个中、或者甚至驻留于经由网络170连接到计算机系统100的计算机系统175上。
计算机系统100利用公知的虚拟寻址机制,其中该虚拟寻址机制允许计算机系统100的程序表现得就像是它们仅有对单个大型存储实体的访问,而非对诸如主存储器120和DASD设备155的多个较小存储实体的访问。因此,尽管将资源和分区管理器121和分区125A-125N示出为驻留于主存储器120内,但是本领域的技术人员将认识到这些项目不一定全都同时包含在主存储器120中。还应该注意,这里使用的术语“存储器”通常指的是计算机系统100的整个虚拟存储器。
可以从一个或多个微处理器和/或集成电路构造处理器110。处理器110执行存储在主存储器120中的程序指令。主存储器120存储处理器110可以访问的程序和数据。当计算机系统100启动时,处理器100开始执行构成资源和分区管理器121的程序指令,其中资源和分区管理器121初始化逻辑分区中的操作系统。
尽管将计算机系统100示出为仅包含单个系统总线,但是本领域的技术人员将理解,可以用具有多条总线的计算机系统来实施本发明。另外,在优选实施例中使用的I/O接口每一个都可能包括用于从处理器110卸载计算密集处理的单独、完全编程的微处理器(如iSeries输入/输出处理器),或者可以是简单工业标准I/O适配器(IOA)。
显示器接口140用于直接将一个或多个显示器165连接到计算机系统100。可以是非智能(例如,哑)终端或者完全可编程工作站的这些显示器165用于允许系统管理员和用户与计算机系统100通信。然而,应当注意,尽管提供了显示器接口140来支持与一个或多个显示器165的通信,但是计算机系统100不一定需要显示器165,因为可以通过网络接口150发生所有需要的与用户和其它进程的交互。
网络接口150用于跨越网络170将其它计算机系统和/或工作站(例如,图1中的175)连接到计算机系统100。不管是使用现在的模拟和/或数字技术还是经由将来的某网络化机制来进行网络连接170,无论计算机系统100如何连接到其它计算机系统和/或工作站,本发明都同样适用。另外,许多不同的网络协议可以用于实现网络。这些协议是允许计算机跨越网络170通信的专用计算机程序。TCP/IP(传输控制协议/因特网协议)是适合的网络协议的一个例子。
在这点上,值得注意的是,尽管已经并将继续在全功能计算机系统的上下文中描述本发明,但是本领域的技术人员将理解,本发明能够作为程序产品以各种形式分发,并且不管用于事实上执行该分发的计算机可读信号承载介质的具体类型,本发明都同样适用。合适的信号承载介质的例子包括:诸如软盘和CD RW(例如,图1的195)的可记录型介质、以及诸如数字和模拟通信链路的传输型介质。
图1示出根据优选实施例的硬件和软件二者的一些显著特征的样例计算机系统。现在,我们提供图2和3中的更详细实现。图2是根据优选实施例的支持逻辑分区和I/O资源分配的计算机系统的硬件图。一个物理封装210包含经由系统总线160连接到一起的一个或多个CPU 110和存储器120。第二封装220是容纳了连接到总线212的I/O组件的封装,其中总线212连接到系统总线160。我们对这个具体例子假设PCI组件是包含在封装220内的I/O组件。PCI主机桥230连接到总线212,并提供与多个PCI至PCI桥240的接口。在图2中,存在两个PCI主机桥230A和230B。PCI主机桥230A提供与四个PCI至PCI桥240A-240D的接口,同时PCI主机桥230B提供与四个PCI至PCI桥240E-240H的接口。每个PCI至PCI桥240连接到单个PCI适配器槽250。这样,PCI至PCI桥240A连接到对应的PCI适配器槽250A;PCI至PCI桥240B连接到对应的PCI适配器槽250B,如此下去直到PCI至PCI桥240H连接到对应的PCI适配器槽250H。
每个PCI主机桥230经由主PCI总线260连接到PCI至PCI桥240。图2示出两个主PCI总线260A和260B。PCI至PCI桥240经由从PCI总线270又连接到PCI适配器槽250。图2示出八个从PCI总线270,即连接到它们对应的PCI适配器槽250A-250H的270A-270H。PCI适配器槽250可以是接收PCI适配器卡的连接器,或者是直接嵌入到包含对应的PCI至PCI桥240或者PCI主机桥230的电子衬底上的PCI适配器芯片。逻辑分区操作系统将CPU地址“绑定”到用于从CPU到适配器的存储器映射I/O的PCI适配器存储器,并将存储器地址绑定到适配器,以使适配器能够执行到和从经过映射的存储器地址的直接存储器访问(DMA)操作。
在优选实施例中,在PCI主机桥230和PCI适配器槽250之间PCI至PCI桥240的存在提供了PCI适配器槽250的各个PCI适配器和PCI主机桥230、CPU 110以及存储器120之间的信令和适配器绑定隔离。该隔离有助于向不同逻辑分区分配各个PCI适配器槽,使得这些分区可以共享共同连接到PCI至PCI桥240的平台硬件,但是分配给其它分区的适配器的操作不中断分配给特定分区的适配器的操作,并且强制(enforce)适配器地址绑定,使得没有分区或适配器可以使用另一个分区-适配器绑定。应当注意,允许槽级分配和绑定的其它隔离方法也在优选实施例的范围之内,例如将每个槽与单个PCI主机桥相关联。
在图1中所示的通电/断电槽机制124优选地控制每个PCI主机桥230中或者每个PCI至PCI桥240中的槽功率控制硬件。如上面参考图1所讨论的那样,通电/断电槽机制124可以对特定槽250施加到或移除电功率,而与平台的其它I/O组件包括其它槽的功率状态无关。在最优选的实施例中,每个PCI至PCI桥240中存在受控于通电/断电槽机制124的通电/断电控制硬件,该通电/断电控制硬件控制其对应槽250的功率。这样,对于图2所示的配置,PCI至PCI桥240A包括控制槽250A的功率的通电/断电硬件;PCI至PCI桥240B包括控制槽250B的功率的通电/断电硬件;对每一个PCI至PCI桥240都如此等等。这样,对于图2中的系统,PCI至PCI桥240A到240H中的每一个将具有控制它们各自的槽250A-250H的通电/断电硬件,并且它们由通电/断电槽机制124控制。应当注意,通电/断电硬件可能不一定物理地使槽掉电。优选实施例显然地扩展到用于将槽及其相关的适配器置于通电复位状态的任何方法。例如,可以将一些适配器嵌入到印刷电路板上,而没有单独地控制适配器的功率的组件。在这种情况下,通电/断电硬件可以通过刷新所有适配器数据来将适配器置于通电复位状态,并且通过将适当的值写到适配器上的一个或多个存储器位置来将适配器置于与它初始加电时相同的状态,而无需物理地对适配器进行通电/断电循环。
图2所示的配置将平台电子装置分离到一个包含CPU 110和存储器120的封装210中,并且将PCI I/O硬件组件(例如,230、240、250、260、以及270)分离到单独的封装220中。这是在本技术领域内公知的常见类型的分离。然而,应当注意,在小型计算机系统中,普遍具有包含在单个封装中的图2中的所有组件。在较大的系统中,可能有许多CPU和存储器卡、以及需要更多PCI主机桥230和PCI至PCI桥240的许多PCI适配器槽,从而电子封装技术需要多个包含这些硬件元件的电子封装。该优选实施例显然地扩展到任何合适的硬件配置,而不管是全都包含在单个封装中还是分布在多个封装之间。
在优选实施例中,可能期望在封装220的组件例如电源、I/O槽、或者可能需要将电功率从该封装的所有元件上移除的其它封装组件上执行硬件服务。在优选实施例中,这是通过以下操作来完成的,即首先将该封装内的I/O槽的控制从它们的所分配逻辑分区转移到资源和分区管理器,然后对该封装断电并执行硬件服务、对该封装通电、然后将I/O槽转移回到它们的所分配逻辑分区。I/O槽锁和用于在逻辑分区与资源和分区管理器之间转移锁的相关机制有助于该操作序列,同时逻辑分区继续工作。应当注意,资源和分区管理器可以与硬件管理器协作,以执行这些硬件管理功能。
图3是示出可以在优选实施例的范围内实现本发明的特定软件组件的方框图。应当注意,图3所示的软件组件将优选地在诸如图2所示的计算机系统200的硬件平台上执行。N个逻辑分区125A-125N被示出为执行它们各自的操作系统126A-126N。管理程序300被示出为图1中的资源和分区管理器121的一个具体实现。管理程序300包括运行操作系统内核312的管理程序分区310。操作系统内核312是可调度的且可重定位的,并提供操作系统内核的典型功能,例如多任务处理和存储器管理。管理程序分区310与其它逻辑分区几乎一样地执行,但是不同于其它逻辑分区之处在于,它是多少有些私有或隐藏的分区,该分区不支持用户应用,并且具有对控制平台资源的特殊授权并且是被授权经由HvPrimaryCall(管理程序主调用)接口330与不可调度的管理程序320通信的唯一分区。图3中的管理程序分区310可以对应于图1中的分区125,这意味着操作系统内核312也对应于图1中的操作系统126。在当前的iSeries实现中,管理程序分区310可以被称为“主分区”。管理程序分区310使用HvPrimaryCall接口330在有特权的、不可调度的管理程序模式中调用采用处理器执行的管理程序功能。
逻辑分区经由HvCall(管理程序调用)接口340与管理程序通信,逻辑分区使用该HvCall接口340来调用有特权的、不可调度的管理程序320。不可调度的管理程序320是不可调度的且不可重定位的监督代理;它通过访问物理地址起作用。不可调度的管理程序320提供通过下面任一种方式调用的特权模式功能:1)当管理程序分区正在计划或调度逻辑分区执行时通过HvPrimaryCall接口330;2)通过平台硬件中断;以及3)使用由HvCall接口340定义的处理器监督调用指令从逻辑分区调用,其中处理器监督调用指令将逻辑分区执行线程置于管理程序执行(即,有特权的)模式。
如图3所示,管理程序硬件管理器350和I/O槽锁123优选地是不可调度的管理程序320内的封装功能,但是也可以在不同的位置实现。管理程序硬件管理器350封装以下管理程序功能,即访问和控制图2中的PCI主机桥230和PCI至PCI桥240硬件,以及跟踪和强制PCI适配器槽250的硬件状态。槽锁123封装以下功能,即设置锁的所有权以及序列化管理程序和逻辑分区之间的槽锁转移。
管理程序分区310与不可调度的管理程序320交互,以实现槽状态和槽锁转变。管理程序分区310是系统管理员接口360的代理,并通过该接口执行系统管理员370所请求的逻辑分区配置和平台服务操作。应当注意,系统管理员370优选地包括管理控制台372和硬件管理控制台374。
为了使不可调度的管理程序320启动与管理程序分区310中的功能通信,不可调度的管理程序320将消息排入由管理程序分区310监视的事件消息队列314。一般而言,使用从不可调度的管理程序320到可调度的管理程序310的事件消息执行复杂的硬件控制序列,诸如复位和初始化桥硬件、扫描虚拟地址翻译表、以及执行与硬件安置时间(hardware settle times)相关的实时延迟。管理程序分区310中的功能调用HvPrimaryCall接口330,以通知完成了不可调度的管理程序320已经请求的操作,从而使这些硬件状态与不可调度的管理程序功能同步。
作为配置逻辑分区所要使用的平台资源的一部分,典型地将I/O槽分配给逻辑分区。然而,在任何给定的时间,系统管理员功能可以在逻辑分区是激活的时候启动将I/O槽从使用该槽的逻辑分区转移到另一个逻辑分区,或者简单地将该槽从逻辑分区的配置中移除。类似地,系统服务功能可以要求将槽控制从激活的逻辑分区转移到管理程序或服务代理,以便执行服务功能,例如单独地服务那个槽或者服务相同封装内的其它硬件,其中该服务在不中断那个封装中的那个或其它槽的情况下不能被执行。
优选实施例的槽锁帮助I/O槽控制在逻辑分区操作系统和管理程序之间或者在受控和未受控或未被分配的状态之间的动态转移,而不将I/O槽从用于逻辑分区的配置数据库移除。可以将槽锁分配给逻辑分区、管理程序,或者可以将其不分配给任何实体(包括逻辑分区和管理程序)。槽锁不但提供管理程序和逻辑分区之间的互斥,它还提供了同步点以强制槽的功率和复位状态,并且移除OS虚拟地址空间与适配器PCI存储器或I/O空间之间(存储器映射绑定)以及OS存储与到该存储的适配器DMA映射之间的OS绑定(例如,翻译成逻辑分区存储器中的存储地址的PCI存储器空间中的间接地址)。
逻辑分区操作系统可以使用在这里称为逻辑关闭(Vary off)的功能,以将槽的控制释放给管理程序或者释放到未分配状态,并且可以使用在这里称为逻辑激活(Vary on)的功能,以从管理程序接收槽的控制。在提供逻辑分区化的AS/400和eServer(iSeries和pSeries)计算机系统中实现了逻辑分区操作系统与管理程序交互以便逻辑关闭和逻辑激活PCI适配器槽的一般概念和方法。优选实施例使用槽锁的以下新特性,即控制逻辑激活和逻辑关闭处理,以及提供用于强制槽功率、复位、以及操作系统绑定状态的同步点。另外,优选实施例还提供一种用于准备I/O槽以便使用、以及用于与逻辑分区通电操作、逻辑分区断电操作、以及逻辑分区重新启动操作相关地使用槽锁在管理程序和逻辑分区之间转移I/O槽的装置和方法。
在图4-8的流程图中更详细地示出了管理程序300的功能。图4示出用于重新启动逻辑分区的方法400的流程图。应当注意,管理程序300可以决定重新启动逻辑分区或者逻辑分区本身可以通知管理程序300它正在关闭且应该被重新启动。当图3的管理程序300需要重新启动逻辑分区时,管理程序分区310向逻辑分区中的操作系统126通知重新启动(步骤1a)。这样,如果管理程序300想要重新启动图3中的逻辑分区125A,则管理程序(HV)分区310向逻辑分区操作系统126A通知关闭以便重新启动。逻辑分区操作系统126A执行内务工作(housekeeping chores)以准备它的I/O适配器并清理以便关闭,然后向HV分区310通知开始重新启动(步骤1b)。如果该分区确定它需要重新启动,则该分区执行其内务工作以准备它的I/O适配器并清理以便关闭,然后向HV分区310通知开始重新启动(步骤1b),而没有管理程序在步骤1a请求重新启动。然后,HV分区310停止逻辑分区CPU的执行(步骤2),终止逻辑分区操作系统。在正常的关闭中,LP OS 126在关闭之前完成它的内务工作。然而,如果逻辑分区已经崩溃,则该逻辑分区可能不能够在关闭之前完成任何内务工作。
然后,HV分区310向HvPrimaryCall接口330调用setSlotLock(设置槽锁)函数。这将当前在正被重新启动的分区的控制之下的槽的控制转移到管理程序。向setSlotLock调用传递三个参数,即:slot、from_LP、to_HV。参数slot指定感兴趣的槽。参数from_LP指定正被重新启动的逻辑分区(其当前正在控制该槽),以及参数to_HV指定槽锁正被转移给谁以便由管理程序300控制。在执行setSlotLock调用时,管理程序执行步骤4,这获得槽锁存储装置上的多处理器线程锁。在这个特定实现中,这意味着,在槽锁存储装置被锁定时没有其它多处理器CPU线程可以访问任何槽锁。然而,提供可被单独锁定的槽锁而不是锁定整个槽锁存储装置同样也在优选实施例的范围内。然后,检查槽锁的状态,以查看正被重新启动的逻辑分区是否当前拥有该槽锁(如果lock[slot]=LP)。如果正被重新启动的逻辑分区当前拥有该槽锁,则将该槽锁的所有权转移到管理程序(lock[slot]=HV),并将返回状态设置为SUCCESS(成功)。如果正被重新启动的逻辑分区不拥有该槽锁,则将返回状态设置为FAIL(失败)。然后,在槽锁存储装置上释放多处理器(MP)线程锁。接下来,管理程序与管理程序硬件管理器(HV HW MGR)350交互(步骤5)。如果来自步骤4的槽锁状态是SUCCESS,则将槽I/O和控制权传递到管理程序,并且移除并禁用与槽的逻辑分区绑定,使得这个或其它逻辑分区或者I/O槽中的I/O适配器建立或利用这些绑定的随后尝试将失败。
然后,HV分区310在步骤6-9中调用HvPrimaryCall接口330。在步骤6,进行调用以复位用于槽的PCI至PCI桥,并向该槽置(assert)复位信号PCI RST。在步骤7,进行调用以重新初始化PCI至PCI桥。在步骤8,进行调用以对该槽通电。应当注意,因为在步骤6复位了该槽而不是使其掉电,所以可以省略步骤8。步骤8典型地在管理程序分区执行了不涉及I/O槽的重新启动处理之后执行。在步骤9,进行指定了感兴趣的槽的setSlotLock调用,这将所有权从管理程序(from_HV)转移到逻辑分区(to_LP)。接下来,管理程序尝试将槽锁分配给正被重新启动的逻辑分区(步骤10)。首先,在槽锁上设置多处理器线程锁,以防止其它线程尝试同时获得该槽锁。如果管理程序拥有该槽锁,则将该槽锁设置到正被重新启动的逻辑分区,并将状态设置为SUCCESS。如果该逻辑分区不拥有该槽锁,则将状态设置为FAIL。然后,释放该多处理器线程锁。接下来,在步骤11,HvPrimaryCall 330确定该槽锁的状态。如果槽锁状态是SUCCESS,则调用管理程序硬件管理器350,将槽I/O和控制权设置到逻辑分区、重新初始化槽控制硬件、并且启用与槽的逻辑分区绑定。
应当注意,步骤3-11是针对分配给逻辑分区的每一个槽执行的。一旦已经为所有I/O槽执行了步骤3-11,则可以开始逻辑分区操作系统126的执行(步骤12)。在优选实施例中,这些步骤中的一部分可以是串行的,同时可以针对不同的槽并行执行其它步骤。例如,可以每次一个地将槽转移到管理程序。然后,可以以批量并行方式复位和初始化所有槽。一旦完成了分区重新启用处理,则以批量并行方式对该槽通电。最后,一次一个地将这些槽分配回到分区。
图5示出了优选实施例的范围内的用于使逻辑分区断电的方法500。响应于来自系统管理员510的请求(步骤1a)或者响应于定期(scheduled)的掉电(步骤1b),可以发生使逻辑分区断电。向逻辑分区操作系统126通知掉电(步骤2a),接着是,当准备好逻辑分区时向管理程序通知(步骤2b)。如同在重新启动的情况下,逻辑分区在向管理程序通知准备好被关闭之前执行内务工作和I/O适配器准备。然后,在步骤2b之后,管理程序停止逻辑分区CPU的执行(步骤3),终止逻辑分区操作系统以建立它的逻辑断电状态。然后,在HvPrimaryCall接口330上调用setSlotLock函数(步骤4),该函数指定三个参数:slot,其指定感兴趣的槽;from_LP,其指定槽锁所有权正被从其转移出去的逻辑分区;以及to_HV,其指定槽锁所有权正被转移到管理程序。作为响应,如步骤5所示,HvPrimaryCall接口330与槽锁123交互。首先,其获得槽锁上的多处理器线程锁。如果槽锁当前由正被掉电的逻辑分区拥有(lock[slot]=LP),则将槽锁重新分配给管理程序(lock[slot]=HV),并且将返回状态设置为SUCCESS。如果槽锁当前不是由正被掉电的逻辑分区拥有,则将返回状态设置为FAIL。在将返回状态设置为其适当值之后,释放多处理器线程锁。
如果槽锁状态是SUCCESS,则接下来在步骤6调用管理程序硬件管理器350。复位槽控制硬件和与槽的逻辑分区绑定,并将槽I/O和控制权转移到管理程序。一旦完成了步骤6,则步骤7复位用于该槽的桥硬件,并向该槽置复位信号PCIRST,并且步骤8设置槽断电。步骤9是从管理程序转移槽锁以使该槽锁未被分配的调用,这在步骤10中实现。应当注意,为分配给正被掉电的逻辑分区的每一个槽执行步骤4-10。
图6示出了根据优选实施例的用于对逻辑分区通电的方法600。当系统管理员510请求对逻辑分区通电时,开始该处理(步骤1)。逻辑分区通电也可以是HV分区310的定期任务。HV分区310发出setSlotLock调用,以将槽从未分配转移到管理程序(步骤2)。作为响应,执行步骤3,这获得多处理器线程锁,并且如果该槽锁是未分配的,则将该槽锁分配给管理程序。只有在步骤3将槽锁成功地转移到管理程序,才执行图6中的其余步骤。
初始化用于所选槽的桥槽硬件(步骤4),然后对该槽通电(步骤5)。然后,撤消(deassert)槽复位信号PCIRST(步骤6),这使槽脱离它的复位状态,并允许它起作用。然后,进行setSlotLock调用(步骤7),其指定了感兴趣的槽(slot),感兴趣的槽当前属于管理程序(from_HV),以及将感兴趣的槽锁的所有权转移到正被加电的逻辑分区(to_LP)。
接下来,执行步骤8,这获得槽锁上的多处理器线程锁、确定管理程序当前是否拥有该槽锁,并且如果拥有,将该槽锁分配给该逻辑分区。然后,将返回状态设置为SUCCESS。如果已经由不同的分区拥有该槽锁,则将返回状态设置为FAIL。一旦将返回状态设置为其适当值,则释放多处理器线程锁。
然后,执行步骤9,其检查槽锁状态,并且如果它指示SUCCESS,则将槽I/O和控制权设置到逻辑分区,初始化槽控制硬件,并启用从槽到逻辑分区的绑定。应当注意,为分配给正被加电的目标逻辑分区的每一个槽执行步骤2-9。一旦为分配给目标逻辑分区的每一个槽执行了步骤2-9,则开始逻辑分区操作系统126的执行(步骤10)。
如上所述,存在可以将I/O槽的控制从一个逻辑分区转移到另一个逻辑分区而不断电或者重新启动任一分区的时候。类似地,存在可以将I/O槽的控制从一个逻辑分区转移到管理程序以便维护同时也不断电或者重新启动该逻辑分区的时候。功能“逻辑关闭”允许激活的分区动态地放弃槽的控制而不放弃平台分区配置数据库中槽的所有权。以类似的方式,功能“逻辑激活”允许激活的分区根据平台分区配置数据库动态地获取它拥有的槽的控制。图7和8分别示出了逻辑关闭和逻辑激活功能的详细流程图。
现在参考图7,当系统管理员510或者其它系统管理器(诸如工作负载管理器应用)将逻辑关闭消息发送到逻辑分区操作系统126时,开始根据优选实施例的用于实现逻辑关闭功能的方法700(步骤1)。作为答复,逻辑分区操作系统调用HvCall接口340以向该槽置槽复位信号PCI RST(步骤2)。然后,调用管理程序硬件管理器350,以置PCI RST信号(步骤3)。作为响应,管理程序硬件管理器350将消息置于允许不可调度的管理程序与管理程序分区通信的事件队列(步骤4)。HV分区310在事件队列中监视消息,并且当HV分区310在步骤4看到排入队列的消息时,它调用HvPrimaryCall接口330以置PCIRST信号(步骤5)。然后,调用管理程序硬件管理器350以置PCI RST信号(步骤6)。HV分区310延迟一段时间,以使硬件的状态安定。在等待适当的延迟之后,HV分区310然后向不可调度的管理程序通知完成了PCI RST处理(步骤7)。然后,向管理程序硬件管理器通知完成了PCI RST处理(步骤8)。
接下来,逻辑分区操作系统126调用HvPrimaryCall接口330来请求槽的断电(步骤9)。这调用管理程序硬件管理器(步骤10),其向HV分区310在事件队列中产生对槽断电事件(步骤11)。一旦HV分区310在步骤11看到事件队列上的逻辑分区事件“对槽断电”,它就调用HvPrimaryCall接口330来将槽断电并复位桥硬件(步骤12)。然后,将其传递到管理程序硬件管理器(步骤13)。HV分区310再次等待预定的延迟,以允许硬件安定,然后调用HvPrimaryCall接口330来向不可调度的管理程序通知完成了槽断电处理(步骤14)。然后,将其转送到管理程序硬件管理器(步骤15)。在这个详细实现中,首先置PCI RST信号,以复位对应于槽的PCI至PCI桥之下的从总线,然后复位桥本身,这隔离了桥下的任何事物。在此时,将槽掉电。
LP OS 126还调用HvCall接口340,以释放与适配器的OS绑定(步骤16)。作为响应,HvCall接口340调用管理程序硬件管理器350,以解绑适配器映射(步骤17)。然后,将解绑槽的映射的事件消息排入事件队列(步骤18)。然后,HV分区310去映射页表和该槽中的适配器的DMA绑定(步骤19)。然后,HV分区310通知存储器映射已被解绑(步骤20)。HvPrimaryCall330将其中转送到管理程序硬件管理器(步骤21)。
LP OS 126调用HvCall接口340来释放对槽的控制权(步骤22)。作为响应,执行步骤23。如果该槽被断电并绑定被去映射,则将槽I/O和控制权设置到管理程序,并返回SUCCESS。否则,返回FAIL。然后,执行步骤24。首先,获得多处理器线程锁。如果逻辑分区当前拥有该槽锁(lock[slot]=LP)且步骤23指示SUCCESS,则放弃槽锁的所有权(lock[slot]=unassigned(未被分配)),并将返回状态设置为SUCCESS。否则,将返回状态设置为FAIL。然后,释放多处理器线程锁。然后,在步骤1请求逻辑关闭功能的系统管理员510或者其它代理将使用从步骤1至23的序列返回的状态,以确定逻辑关闭功能是否成功。在此时,该槽已被放弃,并且现在可被转移到不同的分区或者由硬件服务工具接管。
图8的方法800示出了在优选实施例的范围内实现逻辑激活消息时所执行的步骤。首先,系统管理员或者其它系统管理器发送逻辑激活消息到逻辑分区操作系统126(步骤1)。接下来,LP OS 126调用HvCall接口340,以获取该槽上的控制权(步骤2)。作为响应,执行步骤3,这获得槽锁上的多处理器线程锁。如果该槽锁当前由请求分区拥有或者未被分配,则将该槽锁分配给该逻辑分区,并且将返回状态设置为SUCCESS。如果该槽锁不是由该逻辑分区拥有,则将返回状态设置为FAIL。然后,释放多处理器线程锁。
假设对于步骤3状态是SUCCESS,则可以执行步骤4-20。在步骤4,将槽I/O和该槽的控制权设置到逻辑分区(步骤4)。LP OS 126调用HvCall接口340来启用DMA和虚拟地址(VA)绑定(步骤5)。这调用管理程序硬件管理器(步骤6)。作为响应,管理程序硬件管理器350启用用于槽中的适配器的DMA和VA绑定。LP OS 126还调用HvCall接口340来对槽通电(步骤7)。这调用管理程序硬件管理器(步骤8)。作为响应,将请求对槽通电的事件置于事件队列中(步骤9)。作为响应,HV分区310调用HvPrimaryCall接口330来初始化桥并对槽通电(步骤10)。这调用管理程序硬件管理器(步骤11)。在等候适当的延迟以确保槽被通电并稳定之后,发送指示完成了通电处理的消息(步骤12)。然后,向管理程序硬件管理器通知通电处理的完成(步骤13)。
LP OS 126调用HvCall接口340,以向该槽撤消PCI RST信号(步骤14)。这调用管理程序硬件管理器(步骤15)。作为响应,将请求撤消PCI RST信号的事件消息写到事件队列(步骤16)。然后,作出HvPrimaryCall来撤消PCIRST信号(步骤17),其中HvPrimaryCall被传递到管理程序硬件管理器(步骤18)。作为响应,不可调度的管理程序向槽撤消PCI RST信号。在等候适当的延迟以确保槽脱离复位且稳定之后,HV分区310调用HvPrimaryCall接口330来指示完成了PCI RST处理(步骤19)。还将PCI RST处理的完成传达给管理程序硬件管理器(步骤20)。在此时,逻辑分区已经获取槽的控制并可以使用该槽恢复操作。
通过提供必须在可以执行对槽的操作之前获得的槽锁,以及通过确保在可以在实体之间转移槽的控制之前对槽断电然后再次通电,这些优选实施例提供了相对于现有技术的显著进步。槽可以由逻辑分区、管理程序控制,或者也可以是未被分配的。应当注意,管理程序的控制之下的各种代理例如硬件管理器也可以控制槽。互斥的槽锁确保了竞争实体对槽的非冲突访问。当将槽从逻辑分区移除时将该槽掉电消除了适配器中的数据的数据完整性问题,并确保了当将适配器分配给逻辑分区时该适配器总是处于通电复位状态。
本领域的技术人员将理解,在本发明的范围内许多变化是可能的。这样,尽管已经参考本发明的优选实施例具体示出和描述了本发明,但是本领域的技术人员将理解,不脱离本发明的精神和范围的情况下,可以对其进行形式和细节上的这些和其它改变。例如,尽管将PCI槽示出为特定类型的可被独立控制的资源的例子,但是在优选实施例的范围内也可以控制除PCI槽之外的其它类型的资源。例如,可以利用优选实施例的教导来控制各种不同类型的I/O槽或者适配器,例如PCMCIA槽、S390通道或者控制单元等。根据优选实施例可以控制的其它类型的相似资源包括I/O总线、I/O通信通道(例如Infiniband队列对)、虚拟槽或设备、CPU、以及存储器块。
Claims (27)
1.一种装置,包括:
至少一个处理器;
连接到所述至少一个处理器的存储器;
连接到所述至少一个处理器的多个硬件资源;
在所述装置上定义的多个逻辑分区;以及
驻留在所述存储器中并由所述至少一个处理器执行的通电/断电机制,当将选定硬件资源的控制转移到所述多个逻辑分区之一时,所述通电/断电机制将所述选定硬件资源置于通电复位状态。
2.根据权利要求1所述的装置,其中,所述多个硬件资源包括多个I/O槽。
3.根据权利要求1或权利要求2所述的装置,其中,通过当将所述选定硬件资源的控制从所述多个逻辑分区之一移除时对所述选定硬件资源断电以及当将所述选定硬件资源的控制转移到所述多个逻辑分区之一时对所述选定硬件资源通电,所述通电/断电机制将所述选定硬件资源置于通电复位状态。
4.根据权利要求1所述的装置,其中,通过将所述选定硬件资源上的至少一个存储器位置初始化为加电时的预期值,所述通电/断电机制将所述选定硬件资源置于通电复位状态。
5.根据权利要求1或者权利要求3所述的装置,还包括:
驻留在所述存储器中的多个锁,其中所述多个硬件资源的每一个都具有对应的锁;以及
锁机制,在将对应硬件资源的控制转移到所述多个逻辑分区之一之前以及在允许所述多个逻辑分区之一访问对应的硬件资源之前,所述锁机制通过要求对应锁的排它所有权来控制所述多个逻辑分区对每个硬件资源的访问。
6.根据权利要求2所述的装置,还包括用于当将选定I/O槽的控制从所述多个逻辑分区之一移除时,如果存储器和虚拟地址绑定先前未被解绑,则解绑所有存储器和虚拟地址绑定并且防止与所述选定I/O槽中的适配器建立新绑定的机制。
7.根据权利要求2所述的装置,还包括用于当将选定I/O槽的控制转移到所述多个逻辑分区之一时启用与所述选定I/O槽中的适配器的存储器和虚拟地址绑定的机制。
8.根据权利要求3所述的装置,还包括用于当将选定硬件资源的控制从所述多个逻辑分区之一移除时将所述选定硬件资源的控制转移到资源和分区管理器的机制。
9.根据权利要求3所述的装置,还包括用于当将选定硬件资源的控制转移到一个逻辑分区时将所述选定硬件资源的控制转移到所述多个逻辑分区之一的机制。
10.根据权利要求3所述的装置,还包括用于让所述多个逻辑分区之一放弃这个逻辑分区所拥有的硬件资源的控制的机制。
11.根据权利要求10所述的装置,还包括用于让所述多个逻辑分区之一重新获得逻辑分区所拥有但是这个逻辑分区先前对其放弃了控制的硬件资源的控制的机制。
12.根据前面权利要求中的任一项所述的装置,其中所述多个硬件资源包括多个PCI适配器槽,所述装置还包括:
连接到所述至少一个处理器的至少一个PCI主机桥;
将所述至少一个PCI主机桥连接到至少一个PCI至PCI桥的至少一个主PCI总线;
多个从PCI总线,其中每一个从PCI总线将所述PCI至PCI桥之一连接到对应的PCI适配器槽;
以及其中在每一个PCI至PCI桥中提供所述通电/断电槽机制。
13.根据权利要求12所述的装置,还包括用于当将选定PCI适配器槽的控制从所述多个逻辑分区之一移除时复位对应于所述选定PCI适配器槽的PCI至PCI桥的机制。
14.根据权利要求12所述的装置,还包括用于当将选定PCI适配器槽的控制转移到所述多个逻辑分区之一时初始化对应于所述选定PCI适配器槽的PCI至PCI桥的机制。
15.一种计算机实现的方法,用于管理包括多个逻辑分区的计算机系统中的多个硬件资源,所述方法包括以下步骤:
(A)将选定硬件资源从所述多个逻辑分区之一移除;
(B)当将所述选定硬件资源的控制转移到所述多个逻辑分区之一时,将所述选定硬件资源置于通电复位状态。
16.根据权利要求15所述的方法,其中,步骤(B)包括以下步骤:将所述选定硬件资源上的至少一个存储器位置初始化为加电时的预期值。
17.一种计算机实现的方法,用于管理包括多个逻辑分区的计算机系统中的多个硬件资源,所述方法包括以下步骤:
当将选定硬件资源的控制从所述多个逻辑分区之一移除时,对所述选定硬件资源断电;以及
当将所述选定硬件资源的控制转移到所述多个逻辑分区之一时,对所述选定硬件资源通电。
18.根据权利要求15或者权利要求17所述的方法,其中,所述多个硬件资源包括多个I/O槽。
19.根据权利要求18所述的方法,还包括以下步骤:
当将选定I/O槽的控制从所述多个逻辑分区之一移除时,如果存储器和虚拟地址绑定先前未被解绑,则解绑所有存储器和虚拟地址绑定并且防止与所述选定I/O槽中的适配器建立新绑定。
20.根据权利要求18所述的方法,还包括以下步骤:
当将选定I/O槽的控制转移到所述多个逻辑分区之一时,启用与所述选定I/O槽中的适配器的存储器和虚拟地址绑定。
21.根据权利要求15或者权利要求17所述的方法,还包括以下步骤:
定义多个锁,其中所述多个硬件资源的每一个都具有对应的锁;以及
在将对应硬件资源的控制转移到所述多个逻辑分区之一之前,通过要求对应锁的排它所有权来控制多个逻辑分区对每个硬件资源的访问。
22.根据权利要求17所述的方法,还包括以下步骤:
当将选定硬件资源的控制从所述多个逻辑分区之一移除时,将所述选定硬件资源的控制转移到资源和分区管理器。
23.根据权利要求17所述的方法,还包括以下步骤:
当将选定硬件资源的控制转移到一个逻辑分区时,将所述选定硬件资源的控制转移到所述多个逻辑分区之一。
24.根据权利要求17所述的方法,还包括以下步骤:
多个逻辑分区之一放弃这个逻辑分区所拥有的硬件资源的控制。
25.根据权利要求24所述的方法,还包括以下步骤:
所述多个逻辑分区之一重新获得逻辑分区所拥有但是这个逻辑分区先前对其放弃了控制的硬件资源的控制。
26.根据权利要求15到25中的任一项所述的计算机实现的方法,所述方法包括以下步骤:
当将选定PCI适配器槽的控制从所述多个逻辑分区之一移除时,对所述选定PCI适配器槽断电,并且当将所述选定PCI适配器槽的控制转移到所述多个逻辑分区之一时,对所述选定PCI适配器槽通电;
当将选定PCI适配器槽的控制从所述多个逻辑分区之一移除时,如果存储器和虚拟地址绑定先前未被解绑,则解绑所有存储器和虚拟地址绑定并防止与所述选定PCI适配器槽中的适配器建立新绑定;
当将选定PCI适配器槽的控制从所述多个逻辑分区之一移除时,对与所述选定PCI适配器槽对应的PCI至PCI桥复位;
当将选定PCI适配器槽的控制转移到所述多个逻辑分区之一时,启用与所述选定PCI适配器槽中的适配器的存储器和虚拟地址绑定;
当将选定PCI适配器槽的控制转移到一个逻辑分区时,将所述选定PCI适配器槽的控制转移到所述多个逻辑分区之一;以及
当将选定PCI适配器槽的控制转移到所述多个逻辑分区之一时,对与所述选定PCI适配器槽对应的PCI至PCI桥初始化。
27.一种程序产品,包括用于执行如权利要求15至25中的任一项所述的方法步骤的程序代码装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/388,087 US7085862B2 (en) | 2003-03-13 | 2003-03-13 | Apparatus and method for controlling resource transfers in a logically partitioned computer system by placing a resource in a power on reset state when transferring the resource to a logical partition |
US10/388,087 | 2003-03-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1759378A true CN1759378A (zh) | 2006-04-12 |
CN100487655C CN100487655C (zh) | 2009-05-13 |
Family
ID=32962052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800062163A Expired - Lifetime CN100487655C (zh) | 2003-03-13 | 2004-03-03 | 具有多个逻辑分区的计算机系统及其硬件资源的管理方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7085862B2 (zh) |
EP (1) | EP1602029A2 (zh) |
JP (1) | JP4568271B2 (zh) |
KR (1) | KR20050113189A (zh) |
CN (1) | CN100487655C (zh) |
CA (1) | CA2515456C (zh) |
TW (1) | TWI279668B (zh) |
WO (1) | WO2004081700A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101290593B (zh) * | 2007-04-16 | 2011-04-20 | 国际商业机器公司 | 追踪转移逻辑分区的存储器状态的系统和方法 |
CN101542433B (zh) * | 2006-11-21 | 2012-11-28 | 微软公司 | 系统处理器的透明替换 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117385B2 (en) * | 2003-04-21 | 2006-10-03 | International Business Machines Corporation | Method and apparatus for recovery of partitions in a logical partitioned data processing system |
US7039820B2 (en) * | 2003-04-24 | 2006-05-02 | International Business Machines Corporation | Method for detecting and powering off unused I/O slots in a computer system |
US7594232B2 (en) * | 2004-01-29 | 2009-09-22 | Klingman Edwin E | Intelligent memory device for processing tasks stored in memory or for storing data in said memory |
US8108870B2 (en) | 2004-01-29 | 2012-01-31 | Klingman Edwin E | Intelligent memory device having ASCII-named task registers mapped to addresses of a task |
US7823159B2 (en) * | 2004-01-29 | 2010-10-26 | Klingman Edwin E | Intelligent memory device clock distribution architecture |
US7984442B2 (en) * | 2004-01-29 | 2011-07-19 | Klingman Edwin E | Intelligent memory device multilevel ASCII interpreter |
US7823161B2 (en) * | 2004-01-29 | 2010-10-26 | Klingman Edwin E | Intelligent memory device with variable size task architecture |
US7908603B2 (en) * | 2004-01-29 | 2011-03-15 | Klingman Edwin E | Intelligent memory with multitask controller and memory partitions storing task state information for processing tasks interfaced from host processor |
US7856632B2 (en) * | 2004-01-29 | 2010-12-21 | Klingman Edwin E | iMEM ASCII architecture for executing system operators and processing data operators |
US7882504B2 (en) * | 2004-01-29 | 2011-02-01 | Klingman Edwin E | Intelligent memory device with wakeup feature |
JP2005309552A (ja) * | 2004-04-19 | 2005-11-04 | Hitachi Ltd | 計算機 |
US20060123111A1 (en) * | 2004-12-02 | 2006-06-08 | Frank Dea | Method, system and computer program product for transitioning network traffic between logical partitions in one or more data processing systems |
US7937616B2 (en) * | 2005-06-28 | 2011-05-03 | International Business Machines Corporation | Cluster availability management |
US7644219B2 (en) * | 2005-06-30 | 2010-01-05 | Dell Products L.P. | System and method for managing the sharing of PCI devices across multiple host operating systems |
US8365294B2 (en) * | 2006-06-30 | 2013-01-29 | Intel Corporation | Hardware platform authentication and multi-platform validation |
US7975272B2 (en) * | 2006-12-30 | 2011-07-05 | Intel Corporation | Thread queuing method and apparatus |
US8917165B2 (en) * | 2007-03-08 | 2014-12-23 | The Mitre Corporation | RFID tag detection and re-personalization |
US8141092B2 (en) * | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition |
US8141094B2 (en) * | 2007-12-03 | 2012-03-20 | International Business Machines Corporation | Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions |
US9098465B1 (en) * | 2012-03-01 | 2015-08-04 | Amazon Technologies, Inc. | Hosting architecture with configuration modified functionality for components by utilizing hardware latches to prevent further modifications based on a trust level associated with the components |
US9032198B1 (en) | 2012-03-01 | 2015-05-12 | Amazon Technologies, Inc. | Management of components in a hosting architecture |
US20150295793A1 (en) * | 2014-04-10 | 2015-10-15 | International Business Machines Corporation | High-performance computing evaluation |
US10591980B2 (en) * | 2015-01-02 | 2020-03-17 | Mentor Graphics Corporation | Power management with hardware virtualization |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371867A (en) * | 1992-11-10 | 1994-12-06 | International Business Machines Corporation | Method of using small addresses to access any guest zone in a large memory |
CA2137488C (en) * | 1994-02-18 | 1998-09-29 | Richard I. Baum | Coexecuting method and means for performing parallel processing in conventional types of data processing systems |
US5721858A (en) * | 1995-12-12 | 1998-02-24 | International Business Machines Corporation | Virtual memory mapping method and system for memory management of pools of logical partitions for bat and TLB entries in a data processing system |
US5708790A (en) * | 1995-12-12 | 1998-01-13 | International Business Machines Corporation | Virtual memory mapping method and system for address translation mapping of logical memory partitions for BAT and TLB entries in a data processing system |
JPH10293695A (ja) * | 1997-04-22 | 1998-11-04 | Hitachi Ltd | 論理計算機システムの動的再構成方式 |
US6633916B2 (en) * | 1998-06-10 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Method and apparatus for virtual resource handling in a multi-processor computer system |
US6542926B2 (en) * | 1998-06-10 | 2003-04-01 | Compaq Information Technologies Group, L.P. | Software partitioned multi-processor system with flexible resource sharing levels |
JP4634548B2 (ja) | 1997-11-04 | 2011-02-16 | ヒューレット・パッカード・カンパニー | マルチプロセッサコンピュータシステム及びその動作方法 |
US6260068B1 (en) * | 1998-06-10 | 2001-07-10 | Compaq Computer Corporation | Method and apparatus for migrating resources in a multi-processor computer system |
US6381682B2 (en) * | 1998-06-10 | 2002-04-30 | Compaq Information Technologies Group, L.P. | Method and apparatus for dynamically sharing memory in a multiprocessor system |
US6332180B1 (en) * | 1998-06-10 | 2001-12-18 | Compaq Information Technologies Group, L.P. | Method and apparatus for communication in a multi-processor computer system |
US6247109B1 (en) * | 1998-06-10 | 2001-06-12 | Compaq Computer Corp. | Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space |
US6330656B1 (en) * | 1999-03-31 | 2001-12-11 | International Business Machines Corporation | PCI slot control apparatus with dynamic configuration for partitioned systems |
US6279046B1 (en) * | 1999-05-19 | 2001-08-21 | International Business Machines Corporation | Event-driven communications interface for logically-partitioned computer |
JP4346850B2 (ja) * | 2001-01-23 | 2009-10-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Osイメージごとに論理分割された論理分割データ処理システム |
JP4214682B2 (ja) * | 2001-01-24 | 2009-01-28 | 株式会社日立製作所 | 計算機およびその入出力手段 |
US6820207B2 (en) * | 2001-03-01 | 2004-11-16 | International Business Machines Corporation | Method for rebooting only a specific logical partition in a data processing system as per a request for reboot |
JP2002323986A (ja) | 2001-04-25 | 2002-11-08 | Hitachi Ltd | コンピュータリソース流通システム及び方法 |
US6889253B2 (en) * | 2001-04-30 | 2005-05-03 | International Business Machines Corporation | Cluster resource action in clustered computer system incorporation prepare operation |
US7921188B2 (en) * | 2001-08-16 | 2011-04-05 | Newisys, Inc. | Computer system partitioning using data transfer routing mechanism |
US7251814B2 (en) | 2001-08-24 | 2007-07-31 | International Business Machines Corporation | Yield on multithreaded processors |
JP2003067351A (ja) * | 2001-08-28 | 2003-03-07 | Nec System Technologies Ltd | 分散型コンピュータの構成制御システム |
US6745147B2 (en) * | 2001-10-04 | 2004-06-01 | International Business Machines Corporation | Data processing system, method, and product for automatically tracking insertions of integrated circuit devices |
US7007183B2 (en) * | 2002-12-09 | 2006-02-28 | International Business Machines Corporation | Power conservation by turning off power supply to unallocated resources in partitioned data processing systems |
US7073002B2 (en) * | 2003-03-13 | 2006-07-04 | International Business Machines Corporation | Apparatus and method for controlling resource transfers using locks in a logically partitioned computer system |
-
2003
- 2003-03-13 US US10/388,087 patent/US7085862B2/en active Active
-
2004
- 2004-03-01 TW TW093105286A patent/TWI279668B/zh not_active IP Right Cessation
- 2004-03-03 CA CA2515456A patent/CA2515456C/en not_active Expired - Lifetime
- 2004-03-03 KR KR1020057015575A patent/KR20050113189A/ko not_active Application Discontinuation
- 2004-03-03 EP EP04716647A patent/EP1602029A2/en not_active Withdrawn
- 2004-03-03 JP JP2006505904A patent/JP4568271B2/ja not_active Expired - Lifetime
- 2004-03-03 WO PCT/GB2004/000874 patent/WO2004081700A2/en active Application Filing
- 2004-03-03 CN CNB2004800062163A patent/CN100487655C/zh not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542433B (zh) * | 2006-11-21 | 2012-11-28 | 微软公司 | 系统处理器的透明替换 |
CN101290593B (zh) * | 2007-04-16 | 2011-04-20 | 国际商业机器公司 | 追踪转移逻辑分区的存储器状态的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1602029A2 (en) | 2005-12-07 |
JP2006523339A (ja) | 2006-10-12 |
KR20050113189A (ko) | 2005-12-01 |
US20040181657A1 (en) | 2004-09-16 |
CN100487655C (zh) | 2009-05-13 |
WO2004081700A2 (en) | 2004-09-23 |
TW200428192A (en) | 2004-12-16 |
CA2515456C (en) | 2010-11-02 |
JP4568271B2 (ja) | 2010-10-27 |
WO2004081700A3 (en) | 2005-07-21 |
US7085862B2 (en) | 2006-08-01 |
CA2515456A1 (en) | 2004-09-23 |
TWI279668B (en) | 2007-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100487655C (zh) | 具有多个逻辑分区的计算机系统及其硬件资源的管理方法 | |
CA2515450C (en) | Apparatus and method for controlling resource transfers in a logically partitioned computer system | |
JP3703078B2 (ja) | 論理区画マネージャ及び方法 | |
CN1269033C (zh) | 数据处理系统中逻辑分区之断电和/或再启动的方法和仪器 | |
US7783807B2 (en) | Controlling resource transfers in a logically partitioned computer system | |
US7251814B2 (en) | Yield on multithreaded processors | |
KR100843548B1 (ko) | 공유형 리소스의 액세스 방법과 그 장치 및 컴퓨터 판독가능한 저장 매체 | |
EP1830257A2 (en) | Input/output control apparatus, input/output control system, and input/output control method | |
US20080126652A1 (en) | Managing Interrupts in a Partitioned Platform | |
US20100122262A1 (en) | Method and Apparatus for Dynamic Allocation of Processing Resources | |
CN1702622A (zh) | 用于校正管理程序工作的分布的系统 | |
CN1766842A (zh) | 用于管理逻辑分区抢占的系统 | |
EP1703413A1 (en) | Partition allocation method and computer system | |
US6681240B1 (en) | Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions | |
US20180011733A1 (en) | Exitless timer access for virtual machines | |
US7840772B2 (en) | Physical memory control using memory classes | |
CN1090780C (zh) | 存储管理的方法和装置 | |
KR19990032701A (ko) | 유닉스 디바이스 드라이버 이식 방법 |
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 | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20090513 |