CN100388208C - 在逻辑分区的计算机系统中控制资源转移的装置和方法 - Google Patents

在逻辑分区的计算机系统中控制资源转移的装置和方法 Download PDF

Info

Publication number
CN100388208C
CN100388208C CNB2004800018584A CN200480001858A CN100388208C CN 100388208 C CN100388208 C CN 100388208C CN B2004800018584 A CNB2004800018584 A CN B2004800018584A CN 200480001858 A CN200480001858 A CN 200480001858A CN 100388208 C CN100388208 C CN 100388208C
Authority
CN
China
Prior art keywords
slot
logical partition
pci
control
logical
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.)
Expired - Fee Related
Application number
CNB2004800018584A
Other languages
English (en)
Other versions
CN1723440A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1723440A publication Critical patent/CN1723440A/zh
Application granted granted Critical
Publication of CN100388208C publication Critical patent/CN100388208C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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

Abstract

优选实施方式的资源和分区管理器包括在多个闭锁装置上运行的闭锁机制,该机制控制对各个硬件资源的访问。向正在加电的逻辑分区转移硬件资源的控制时,或者当从正在断电的逻辑分区中删除硬件资源时,资源和分区管理器使用该闭锁机制来实现该硬件资源上的闭锁装置。资源和分区管理器使用该闭锁机制来删除正在运行的逻辑分区中的硬件资源的控制,或者向正在运行的逻辑分区返回硬件资源的控制,以方便该硬件资源上的或包含该硬件资源的物理封装上的硬件服务操作。优选实施方式还包括在从逻辑分区中删除硬件资源的控制时用于释放分配给该硬件资源的系统资源和地址绑定的方法。

Description

在逻辑分区的计算机系统中控制资源转移的装置和方法
相关申请的交叉引用
本专利申请涉及相同发明人2003年3月13日提交的相同题目的、序号为No.10/388,087的美国专利申请,这里作为参考引入本申请。
技术领域
本发明一般涉及数据处理,更具体地说,涉及在计算机系统中共享资源的分配。
背景技术
自计算机时代开始以来,计算机系统已经发展成可以具有许多不同设置的非常复杂的设备。计算机系统通常包括硬件(如,半导体、电路板等)和软件(如,计算机程序)的组合。随着半导体工艺和计算机体系结构方面的进展把计算机硬件的性能推进到更高层次,出现了能够利用更高性能的硬件的更复杂的计算机软件,其结果是当今计算机系统之功能远远超过几年前的计算机系统的功能。
特定计算机系统上的硬件和软件的组合定义了计算环境。因此,不同硬件平台和不同操作系统提供不同计算环境。近几年来,工程师已经认识到:通过把计算机系统资源逻辑分区为不同的计算环境,可以在同一物理计算机系统上提供不同的计算环境。IBM开发的iSeries计算机系统就是支持逻辑分区的计算机系统的一个例子。如果需要在iSeries计算机系统上进行逻辑分区,则安装资源和分区管理器代码(在iSeries术语中称为“管理程序(hypervisor)”),该代码允许在同一平台上定义不同的计算环境。一旦安装了资源和分区管理器,就可以创建定义不同计算环境的逻辑分区。资源和分区管理器管理逻辑分区,以确保在保持逻辑分区定义的独立计算环境的同时在计算机系统中共享所需的资源。
包含多个逻辑分区的计算机系统通常在逻辑分区之间共享资源。例如,可以把具有两个逻辑分区的计算机系统定义为:为每个分区分配50%的CPU,为第一个分区分配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、海量存储器接口130、显示接口140、网络接口150和多个I/O插槽180相连的一个或多个处理器110。通过使用系统总线160互连这些系统组件。利用海量存储器接口130把海量存储装置(如直接存取存储装置155)连接到计算机系统100。一种具体类型的直接存取存储装置为CD RW驱动器,可以从CD RW195中读取的数据。请注意,实际上,可以在与I/O插槽180相连的适配器中实现海量存储器接口130、显示接口140和网络接口150。
主内存储器120包含资源和分区管理器121、I/O插槽闭锁机制122、加电/断电插槽机制124以及N个逻辑分区125,在图1中表示为逻辑分区125A到125N。优选地,资源和分区管理器121创建上述N个逻辑分区125。优选地,各逻辑分区包括相应的操作系统126,在图1中表示为操作系统126A到126N。
I/O插槽闭锁机制122通过定义多个插槽闭锁装置123管理对I/O插槽180的访问,优选地,其中一个插槽闭锁装置123对应一个I/O插槽180。当需要把I/O插槽分配给逻辑分区时,资源和分区管理器检查相应的插槽闭锁装置,以查看该I/O插槽是否可用。如果相应的I/O插槽归不同逻辑分区所有,则该I/O插槽受那个逻辑分区的控制。如果相应的I/O插槽归资源和分区管理器所有或者其是未分配的,则资源和分区管理器可以控制该I/O插槽,设置相应的插槽闭锁装置并将该I/O插槽分配给请求逻辑分区。这样,插槽闭锁装置123实际上起信号表示(semaphores)的作用,用来指示相应的I/O插槽是否可用。
使用加电/断电插槽机制124的目的是,以确保从逻辑分区中删除I/O插槽之前使该插槽断电,并且确保把该插槽分配给逻辑分区时给该插槽加电。在现有技术中,可以从一个逻辑分区中删除某个I/O插槽然后分配给不同逻辑分区。然而,执行上述再分配导致两个可能的问题。第一个问题是数据完整性问题。在把该I/O插槽分配给不同逻辑分区时,插入到该I/O插槽中的I/O适配器中可能保留有在第一逻辑分区中运行的进程的数据。理论上,有足够技能的技术人员可以从第二逻辑分区破解该数据,这会危及第一逻辑分区中数据的安全。第二个问题是,接收该I/O插槽的新的逻辑分区并不了解该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适配器处于其加电复位状态。
操作系统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。因此,可以把一个分区定义为包括两个处理器和内存储器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-125B表示为驻留在主内存储器120中,但是本领域技术人员认识到这些项目未必同时全部包含在主内存储器120中。同样,请注意,本文使用术语“内存储器”来泛指计算机系统100的全部虚拟存储器。
可以利用一个或多个微处理器和/或集成电路来构造处理器110。处理器110执行主内存储器120中存储的程序指令。主内存储器120存储处理器110访问的程序和数据。当计算机系统100启动时,处理器110最初执行组成资源和分区管理器121的程序指令,资源和分区管理器121在逻辑分区中初始化操作系统。
尽管把计算机系统100表示为只包含单一系统总线,但是熟练技术人员理解,可以利用具有多条总线的计算机实现本发明。另外,优选实施方式中使用的各个I/O接口可以包括独立的完全程序化的微处理器,或者为简单的工业标准I/O适配器(IOA),其中就像在iSeries输入/输出处理器中那样,使用完全程序化的微处理器来解决处理器110中的计算密集的处理。
利用显示接口140把一台或多台显示器165直接连接到计算机系统100。显示器165可以为非智能(即,哑)终端或完全可编程的工作站,系统管理员和用户利用它们与计算机系统100进行通信。然而,请注意,尽管提供显示接口140以支持与一台或多台显示器165的通信,但是计算机系统100未必需要显示器165,因为与用户和其它进程的所有必要交互可通过网络接口150进行。
通过使用网络接口150,经由网络170把其它计算机系统和/或工作站(如图1中的175)连接到计算机系统100。无论以何种方式把计算机系统100连接到其它计算机系统和/或工作站,不论网络连接170是使用现代模拟和/或数字技术实现的,还是使用未来的某些联网机制实现的,本发明同样适用。另外,可以使用许多不同的网络协议实现网络。这些协议为允许计算机跨越网络170进行通信的专用计算机程序。TCP/IP(传输控制协议/网际协议)就是合适的网络协议的一个例子。
此时,重要的是要注意到,尽管已经并将继续在全功能计算机系统中描述本发明,但是本领域的技术人员应该理解,能够作为各种形式的程序产品分布式实现本发明,并且不管实际执行分布式实现使用的计算机可读信号承载介质的特定类型,本发明同样适用。合适的信号承载介质的例子包括:诸如软盘和CD RW(如图1中的195)之类的可记录类型的介质,以及诸如数字和模拟通信链路之类的传输类型的介质。
图1表示实例计算机系统,说明根据优选实施方式的硬件和软件的某些显著特征。现在给出图2和图3中的更详细的实现。图2是支持根据优选实施方式的逻辑分区和I/O资源分配的计算机系统的硬件示图。一个物理封装210包含经由系统总线160连接起来的一个或多个CPU 110和内存储器120。第二封装220是装有I/O组件的一个封装,其中I/O组件与总线212相连,总线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相连的PCI总线270A-270H。PCI适配器插槽250既可以为容纳PCI适配器卡的连接器,也可以为直接嵌到电子基底上的PCI适配器适配芯片,其中电子基底包含相应的PCI到PCI桥240或PCI主桥230。对于从CPU到适配器的存储映射I/O,逻辑分区操作系统把CPU地址“绑定”到该PCI适配器内存储器上,并把内存储地址绑定到该适配器上,以使该适配器能够对映射的内存储器地址执行直接存储器存取(DMA)操作。
在优选实施方式中,PCI主桥230和PCI适配器插槽250之间的PCI到PCI桥240提供了PCI适配器插槽250内的各个PCI适配器与PCI主桥230、CPU 110和内存储器120之间的信令和适配器绑定隔离。上述隔离便于为不同逻辑分区分配各自的PCI适配器插槽,使得这些分区能够共享共同与PCI到PCI桥240相连的平台硬件,但是分配给其它分区的适配器的操作并不干扰分配给特定分区的适配器的操作,并且执行适配器地址绑定,使得没有分区或适配器能够使用另一个分区适配器绑定。请注意,支持插槽级分配和绑定的其它隔离方法也在优选实施方式的范围内,例如,把每个插槽和单一PCI主桥关联起来的方法。
优选地,图1所示的加电/断电插槽机制124每个PCI主桥230或每个PCI到PCI桥240内的插槽电源控制硬件。正如参照图1论述的那样,加电/断电插槽机制124能够独立于该平台的其它I/O元件(包括其它插槽)的电源状态向特定插槽250施加电源或切断其电源。在大多数优选实施方式中,在受加电/断电插槽机制124支配的每个PCI到PCI桥240中都有加电/断电控制硬件,其中加电/断电插槽机制124控制其对应插槽250的电源。因此,对于图2所示的配置,对于每个PCI到PCI桥240而言,PCI到PCI桥240A包括用于控制插槽250A之电源的加电/断电硬件;PCI到PCI桥240B包括用于控制插槽250B之电源的加电/断电硬件;等等。因此,对于图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与管理程序通信,逻辑分区利用该接口来调用有特权的不可分派的管理程序320。不可分派的管理程序320是一个不可分派的不可重定位的管理智能体;它通过访问物理地址起作用。不可分派的管理程序320提供特权模式功能,该功能是通过以下任一方式调用的:1)当管理程序分区正在调度或分派逻辑分区执行时,通过HvPrimaryCall接口330;2)通过平台硬件中断;以及3)从使用HvCall接口340定义的处理器管理调用指令的逻辑分区中,其中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的事件消息来执行复杂的硬件控制序列,如复位并初始化桥硬件,扫描虚拟地址转换表,以及执行与硬件建立时间关联的实时延迟。管理程序分区310中的功能调用HvPrimaryCall接口330,以便用信号通知完成了不可分派的管理程序320请求的操作,并使这些硬件状态与不可分派的管理程序功能同步。
通常,把I/O插槽分配给逻辑分区,作为配置将被该逻辑分区使用的平台资源的一部分。然而,在任何时候,系统管理程序功能可以开始把I/O插槽从使用该插槽的逻辑分区中转移到另一个逻辑分区,或者当该逻辑分区激活时,仅仅从该逻辑分区的配置中删除该插槽。类似地,系统维护功能可能要求把插槽控制从激活逻辑分区中转移到管理程序或维护智能体,以执行维护功能,如单独维护那个插槽,或维护同一封装内的其它硬件,其中该维护是在不干扰该封装内的那个插槽或其它插槽的情况下所不能执行维护。
优选实施方式的插槽闭锁装置便于逻辑分区操作系统和管理程序之间,或受控和非受控的或未分配状态之间的I/O插槽的控制的动态转移,而无需从该逻辑分区的配置数据库中删除I/O插槽。可以把该I/O插槽分配给逻辑分区,分配给管理程序,或可以不分配给任何实体(包括逻辑分区和管理程序)。插槽闭锁装置不但使得管理程序和逻辑分区之间的互斥,而且提供同步点,以加电并复位插槽的状态,并删除OS虚拟地址空间与适配器PCI内存储器或I/O空间(存储映射绑定)以及OS存储器与映射到那个内存储器的适配器DMA(例如,转换为逻辑分区内存储器中的存储地址的PCI内存储器空间中的间接地址)之间的OS绑定。
逻辑分区操作系统可以使用这里称为切断的功能来向管理程序或向未分配状态释放插槽的控制,并且可以使用这里称为接通的功能从管理程序那里接收插槽的控制。已经在提供逻辑分区的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执行内务操作,以便准备它的I/O适配器并进行清除以便关机,然后用信号通知HV分区310发起重新引导(步骤1b)。如果该分区确定它需要重新引导,则它执行它的内务操作,以便准备它的I/O适配器并进行清除以便关机,然后用信号通知HV分区310发起重新引导(步骤1b),而无需在步骤1a中管理程序请求重新引导。接着,HV分区310停止逻辑分区CPU的执行(步骤2),从而终止该逻辑分区操作系统。在正常关机中,LP OS 126在关机前完成它的内务操作。然而,如果该逻辑分区已经崩溃,则它不能在关机前完成所有内务操作。
接着,HV分区310向HvPrimaryCall接口330调用setSlotLock函数(步骤3)。从而把当前受正在重新引导的分区控制的插槽的控制转移给管理程序。setSlotLock调用传递3个参数,即,slot,from_LP,to_HV。slot参数规定感兴趣的插槽。from_LP参数规定正在被重新引导(当前控制该插槽)的逻辑分区,以及to_HV参数规定正在转移的将要由管理程序300控制的插槽闭锁装置。在执行setSlotLock调用时,管理程序执行步骤4,获得有关该插槽闭锁存储器的多处理器线程闭锁装置。在上述具体实现中,这意味着在锁定插槽闭锁存储器时其它多处理器CPU线程都不能访问任何插槽闭锁装置。然而,提供可以独立锁定而不是锁定全部插槽闭锁存储器的插槽闭锁装置同样在优选实施方式的范围内。然后检查该插槽闭锁装置的状态,以查看它当前是否归正被重新引导的逻辑分区所有(iflock[slot]=LP)。如果该插槽闭锁装置归正被重新引导的逻辑分区所有,则将该插槽闭锁装置的所有权转移给管理程序(lock[slot]=HV),并将返回状态设置为SUCCESS。如果该插槽闭锁装置不归正被重新引导的逻辑分区所有,则将返回状态设置为FAIL。然后释放该插槽闭锁存储器上的多处理器(MP)线程闭锁装置。接着,管理程序与管理程序硬件管理器(HV HW MGR)350交互(步骤5)。如果在步骤4中的插槽闭锁状态为SUCCESS,则将该插槽I/O和控制权限传递给管理程序,删除并禁用到达该插槽的逻辑分区绑定,从而该逻辑分区或其它逻辑分区,或该I/O插槽中的I/O适配器建立或利用此类绑定的后续尝试将失败。
接着,在步骤6-9中,HV分区310调用HvPrimaryCall接口330。在步骤6中,进行调用以复位该插槽的PCI到PCI桥,并向该插槽声明复位信号PCI RST。在步骤7中,进行调用以重新初始化PCI到PCI桥。在步骤8中,进行调用以给该插槽加电。请注意,可以省略步骤8,因为该插槽在步骤6中进行复位,而没有断电。通常地,在管理程序分区完成与I/O插槽无关的重新引导处理后,执行步骤8。在步骤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),或响应调度的断电(步骤1b),使逻辑分区断电。用信号通知逻辑分区操作系统126断电(步骤2a),之后,在准备逻辑分区时用信号通知管理程序(步骤2b)。正如在重新引导的情况中那样,在用信号通知管理程序该逻辑分区准备好关机前,逻辑分区执行内务和I/O适配器准备工作。在步骤2b之后,管理程序停止逻辑分区CPU的执行(步骤3),从而终止逻辑分区操作系统以建立它的逻辑断电状态。然后在HvPrimaryCall接口330上调用setSlotLock函数(步骤4),该函数指定3个参数:slot,规定感兴趣的插槽;from_LP,规定正从其那里转移插槽闭锁装置所有权的逻辑分区;以及to_HV,规定插槽闭锁装置所有权要转移到的管理程序。作为响应,HvPrimaryCall接口330如步骤5所示与插槽闭锁装置123交互。首先,它获得该插槽闭锁装置上的多处理器线程闭锁装置。如果该插槽闭锁装置当前归正在被断电的逻辑分区所有(lock[slot]=LP),则将该插槽闭锁装置重新分配给管理程序(lock[slot]=HV),并将返回状态设置为SUCCESS。如果该插槽闭锁装置当前不归正在被断电的逻辑分区所有,则将返回状态设置为FAIL。在将返回状态设置为它的适当值之后,释放多处理器线程闭锁装置。
如果插槽闭锁装置状态为SUCCESS,则在步骤6中调用管理程序硬件管理器350。复位到该插槽的插槽控制硬件和逻辑分区绑定,并将插槽I/O和控制授权转移给管理程序。一旦步骤6完成,步骤7就复位该插槽的桥硬件,并向该插槽声明复位信号PCI RST,步骤8使该插槽断电。步骤9是一个调用,用于从管理程序那里转移插槽闭锁装置,以使该插槽闭锁装置未分配,这是在步骤10中实现的。请注意,针对分配给正在被断电的逻辑分区的每个插槽执行步骤4-10。
图6表示根据优选实施方式给逻辑分区加电的方法600。当系统管理程序510请求给逻辑分区加电时(步骤1),该过程开始。逻辑分区加电也可以是HV分区310的调度的任务。HV分区310发出setSlotLock调用,以便将未分配的插槽转移给管理程序(步骤2)。作为响应,执行步骤3,该步骤获得多处理器线程闭锁装置,并且如果插槽闭锁装置是未分配的,则将该插槽闭锁装置分配给管理程序。只有在步骤3中将该插槽闭锁装置成功转移给管理程序后,才执行图6中的剩余步骤。
为选定插槽初始化桥插槽硬件(步骤4),然后给该插槽加电(步骤5)。接着,取消声明的插槽复位信号PCI RST(步骤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发送切断消息(步骤1)时,用于实现根据优选实施方式的切断功能的方法700开始。作为应答,逻辑分区操作系统调用HvCall接口340,以便向该插槽声明插槽复位信号PCI RST(步骤2)。然后调用管理程序硬件管理器350以声明PCI RST信号(步骤3)。作为响应,管理程序硬件管理器350把一条消息放到事件队列中,以使不可分派的管理程序与管理程序分区进行通信(步骤4)。HV分区310监控有关消息的事件队列,并且当它看到在步骤4中排队的消息时,调用HvPrimaryCall接口330,以声明PCI RST信号(步骤5)。然后调用管理程序硬件管理器350,以声明PCI RST信号(步骤6)。HV分区310延迟某个时段,以稳定该硬件的状态。在等待适当延迟后,HV分区310用信号通知不可分派的管理程序,PCI RST处理完成(步骤7)。然后,用信号通知管理程序硬件管理器PCI RST处理完成(步骤8)。
接着,HV分区310调用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 OS126调用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以取消声明PCI RST信号(步骤17),将其传给管理程序硬件管理器(步骤18)。作为响应,不可分派的管理程序取消向该插槽声明的PCI RST信号。在等待适当延迟以确保该插槽离开复位并且稳定后,HV分区310调用HvPrimaryCall接口330以表明PCI RST处理完成(步骤19)。同时,通知管理程序硬件管理器完成了PCI RST处理(步骤20)。此时,该逻辑分区已经获得该插槽的控制并且可以重新开始使用该插槽的操作。
通过提供在插槽上执行操作之前必须获得的插槽闭锁装置,并且通过确保在实体之间转移插槽的控制之前使该插槽断电后再次给其加电,优选实施方式提供比现有技术更显著的进步。插槽可以由逻辑分区或由管理程序控制,或者可以是未分配的。请注意,诸如硬件管理器之类的受管理程序控制的各种智能体也可以控制插槽。互斥的插槽闭锁装置确保竞争实体对插槽的非冲突访问。在从逻辑分区中删除插槽时通过给它断电消除了适配器中数据的数据完整性问题,并且确保向逻辑分区分配适配器时它总是处于加电复位状态。
本领域技术人员可以理解,许多变形在本发明的范围内都是可行的。因此,尽管本发明是参照其优选实施方式进行详细说明和描述的,但是本领域技术人员应该理解,其形式和细节可以进行各种改变而并不背离本发明的实质和范围。例如,尽管把PCI插槽作为可以独立控制的具体类型的资源的例子,但是在优选实施方式的范围内也可以控制除PCI插槽之外的其它类型的资源。例如,通过使用优选实施方式的教导,可以控制诸如PCMCIA插槽、S390通道或控制单元之类的各种不同类型的I/O插槽或适配器。可以根据优选实施方式控制的其它类型的类似资源包括I/O总线,I/O通信信道(如Infiniband队列对),虚拟插槽或设备,CPU和存储块。

Claims (22)

1.一种装置,该装置定义有多个逻辑分区,该装置包括
至少一个处理器;
与该至少一个处理器相连的内存储器;
与该至少一个处理器相连的多个硬件资源;
驻留在该内存储器内的多个闭锁装置,其中该多个硬件资源中的每个资源都有相应的闭锁装置,在向多个逻辑分区中的一个逻辑分区转移相应硬件资源的控制之前,并且在允许多个逻辑分区中的一个逻辑分区访问相应硬件资源之前,通过获取相应闭锁装置的专有权,控制多个逻辑分区对每个硬件资源的访问。
2.如权利要求1的装置,其中多个硬件资源包括多个I/O插槽。
3.如权利要求1的装置,进一步包括驻留在该内存储器中并由该至少一个处理器执行的加电/断电机制,当从多个逻辑分区的一个逻辑分区中删除选定硬件资源的控制时,该加电/断电机制使选定硬件资源断电,并且当向多个逻辑分区的一个逻辑分区转移选定硬件资源的控制时,给选定硬件资源加电。
4.如权利要求1的装置,其中:
该多个硬件资源包括多个PCI适配器插槽;
该多个闭锁装置包括多个PCI适配器插槽闭锁装置;
该装置包括闭锁机制,所述闭锁机制包括PCI插槽闭锁机制;
该装置进一步包括:
与该至少一个处理器相连的至少一个PCI主桥;
至少一条主PCI总线,用于把该至少一个PCI主桥连接到至少一个PCI到PCI桥;
多条辅助PCI总线,每条辅助PCI总线把PCI到PCI桥中的一个连接到相应的PCI适配器插槽;
其中每个PCI到PCI桥包括:
驻留在该内存储器中并由该至少一个处理器执行的加电/断电插槽机制,当从多个逻辑分区的一个逻辑分区中删除选定PCI适配器插槽的控制时,该加电/断电插槽机制使选定PCI适配器插槽断电,并且当向多个逻辑分区的一个逻辑分区转移选定PCI适配器插槽的控制时,给选定PCI适配器插槽加电。
5.如权利要求2的装置,进一步包括:当从多个逻辑分区的一个逻辑分区中删除选定I/O插槽的控制时,如果先前尚未解除该内存储器和虚拟地址绑定,则解除所有内存储器和虚拟地址绑定并防止建立到某个适配器的新绑定的机制。
6.如权利要求2的装置,进一步包括:当向多个逻辑分区中的一个逻辑分区转移选定I/O插槽的控制时,启用到选定I/O插槽中的一个适配器的内存储器和虚拟地址绑定的机制。
7.如权利要求1或权利要求4的装置,进一步包括:当从多个逻辑分区的一个逻辑分区中删除选定硬件资源的控制时,向资源和分区管理器转移选定硬件资源的控制的机制。
8.如权利要求1或权利要求4的装置,进一步包括:当向一个逻辑分区转移选定硬件资源的控制时,向多个逻辑分区中的一个逻辑分区转移选定硬件资源的控制的机制。
9.如权利要求1或权利要求4的装置,进一步包括:多个逻辑分区中的一个逻辑分区放弃所述一个逻辑分区拥有的硬件资源的控制的机制。
10.如权利要求9的装置,进一步包括:多个逻辑分区中的一个逻辑分区收回该逻辑分区拥有的但所述一个逻辑分区先前放弃控制的硬件资源的控制的机制。
11.如权利要求4的装置,进一步包括:当从多个逻辑分区的一个逻辑分区中删除选定PCI适配器插槽的控制时,用于复位与该选定PCI适配器插槽相应的PCI到PCI桥的机制。
12.如权利要求4的装置,进一步包括:当向多个逻辑分区中的一个逻辑分区转移选定PCI适配器插槽的控制时,用于初始化与选定PCI适配器插槽相应的PCI到PCI桥的机制。
13.一种用于管理包含多个逻辑分区的计算机系统中的多个硬件资源的计算机实现的方法,该方法包括以下步骤:
定义多个闭锁装置,其中多个硬件资源中的每个硬件资源都有相应的闭锁装置;以及
在向多个逻辑分区的一个逻辑分区转移相应硬件资源的控制之前,通过获取相应闭锁装置的专有权,控制多个逻辑分区对每个硬件资源的访问。
14.如权利要求13的方法,其中多个硬件资源包括多个I/O插槽。
15.如权利要求14的方法,进一步包括以下步骤:
当从多个逻辑分区的一个逻辑分区中删除选定硬件资源的控制时,如果先前尚未解除内存储器和虚拟地址绑定,则解除到选定I/O插槽中一个适配器的所有内存储器和虚拟地址绑定;以及
防止建立到该选定I/O插槽中的该适配器的新绑定。
16.如权利要求14的方法,进一步包括以下步骤:
当向多个逻辑分区中的一个逻辑分区转移选定I/O插槽的控制时,启用到该选定I/O插槽中的一个适配器的内存储器和虚拟地址绑定。
17.如权利要求13的方法,进一步包括以下步骤:
当从多个逻辑分区的一个逻辑分区中删除选定硬件资源的控制时,使该选定硬件资源断电;以及
当向多个逻辑分区的一个逻辑分区转移选定硬件资源的控制时,给该选定硬件资源加电。
18.如权利要求13的方法,包括以下步骤:
定义驻留在内存储器中的多个PCI适配器插槽闭锁装置,其中该多个PCI适配器插槽中的每个PCI适配器插槽都有相应的PCI适配器插槽闭锁装置;
在向多个逻辑分区的一个逻辑分区转移相应PCI适配器插槽的控制之前,通过获取相应PCI适配器插槽闭锁装置的专有权,控制多个逻辑分区对每个PCI适配器插槽的访问;
当从多个逻辑分区的一个逻辑分区中删除选定PCI适配器插槽的控制时,使该选定PCI适配器插槽断电;
当向多个逻辑分区的一个逻辑分区转移选定PCI适配器插槽的控制时,给该选定PCI适配器插槽加电;
当从多个逻辑分区的一个逻辑分区中删除选定PCI适配器插槽的控制时,如果先前尚未解除该内存储器和虚拟地址绑定,则解除所有内存储器和虚拟地址绑定并防止建立到选定PCI适配器插槽中的一个适配器的新绑定;
当从多个逻辑分区的一个逻辑分区中删除选定PCI适配器插槽的控制时,复位与该选定PCI适配器插槽相应的PCI到PCI桥;
当向多个逻辑分区的一个逻辑分区转移选定PCI适配器插槽的控制时,启用到该选定PCI适配器插槽中的一个适配器的内存储器和虚拟地址绑定;
当向一个逻辑分区转移选定PCI适配器插槽的控制时,向多个逻辑分区的一个逻辑分区转移该选定PCI适配器插槽的控制;以及
当向多个逻辑分区的一个逻辑分区转移选定PCI适配器插槽的控制时,初始化与该选定PCI适配器插槽相应的PCI到PCI桥。
19.如权利要求13或权利要求18的方法,进一步包括以下步骤:
当从多个逻辑分区的一个逻辑分区中删除选定硬件资源的控制时,向资源和分区管理器转移该选定硬件资源的控制。
20.如权利要求13的方法,进一步包括以下步骤:
当向一个逻辑分区转移选定硬件资源的控制时,向多个逻辑分区中的一个逻辑分区转移选定硬件资源的控制。
21.如权利要求13或权利要求18的方法,进一步包括以下步骤:
多个逻辑分区的一个逻辑分区放弃该一个逻辑分区拥有的硬件资源的控制。
22.如权利要求21的方法,进一步包括以下步骤:
多个逻辑分区中的一个逻辑分区收回该逻辑分区拥有的但该一个逻辑分区先前放弃控制的硬件资源的控制。
CNB2004800018584A 2003-03-13 2004-03-03 在逻辑分区的计算机系统中控制资源转移的装置和方法 Expired - Fee Related CN100388208C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/388,350 US7073002B2 (en) 2003-03-13 2003-03-13 Apparatus and method for controlling resource transfers using locks in a logically partitioned computer system
US10/388,350 2003-03-13

Publications (2)

Publication Number Publication Date
CN1723440A CN1723440A (zh) 2006-01-18
CN100388208C true CN100388208C (zh) 2008-05-14

Family

ID=32962108

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800018584A Expired - Fee Related CN100388208C (zh) 2003-03-13 2004-03-03 在逻辑分区的计算机系统中控制资源转移的装置和方法

Country Status (10)

Country Link
US (3) US7073002B2 (zh)
EP (1) EP1604279A2 (zh)
JP (1) JP2006521609A (zh)
KR (1) KR100843490B1 (zh)
CN (1) CN100388208C (zh)
BR (1) BRPI0408310A (zh)
CA (1) CA2515450C (zh)
MX (1) MXPA05009632A (zh)
TW (1) TWI279691B (zh)
WO (1) WO2004081699A2 (zh)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2496664C (en) * 2002-08-23 2015-02-17 Exit-Cube, Inc. Encrypting operating system
US7085862B2 (en) * 2003-03-13 2006-08-01 International Business Machines Corporation 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
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
JP2005122640A (ja) * 2003-10-20 2005-05-12 Hitachi Ltd サーバシステム及びi/oスロット共有方法。
US20060107000A1 (en) * 2004-11-15 2006-05-18 Lee Jung-Ik Peer-based partitioning method for system resource sharing
FR2881241B1 (fr) * 2005-01-24 2007-05-04 Meiosys Soc Par Actions Simpli Procede d'optimisation de la journalisation et du rejeu d'application multi-taches dans un systeme informatique mono-processeur ou multi-processeurs
US8219823B2 (en) * 2005-03-04 2012-07-10 Carter Ernst B System for and method of managing access to a system using combinations of user information
US20060212840A1 (en) * 2005-03-16 2006-09-21 Danny Kumamoto Method and system for efficient use of secondary threads in a multiple execution path processor
US7613897B2 (en) * 2005-03-30 2009-11-03 International Business Machines Corporation Allocating entitled processor cycles for preempted virtual processors
US7443878B2 (en) * 2005-04-04 2008-10-28 Sun Microsystems, Inc. System for scaling by parallelizing network workload
US7415035B1 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Device driver access method into a virtualized network interface
US7415034B2 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
US7937616B2 (en) * 2005-06-28 2011-05-03 International Business Machines Corporation Cluster availability management
US7428609B2 (en) * 2005-12-29 2008-09-23 Intel Corporation Method and system to partition hardware resources between operating systems
US20110182259A1 (en) * 2006-04-28 2011-07-28 Avfinity, Inc Partitionable router to facilitate communication between systems
US7987305B2 (en) 2006-05-30 2011-07-26 Schneider Electric USA, Inc. Remote virtual placeholder configuration for distributed input/output modules
US7457900B2 (en) * 2006-06-20 2008-11-25 Intel Corporation Method for discovering and partitioning PCI devices
US7676608B1 (en) * 2006-12-12 2010-03-09 Rockwell Collins, Inc. System for extending Multiple Independent Levels of Security (MILS) partitioning to input/output (I/O) devices
US7975272B2 (en) * 2006-12-30 2011-07-05 Intel Corporation Thread queuing method and apparatus
US7698529B2 (en) * 2007-01-10 2010-04-13 International Business Machines Corporation Method for trading resources between partitions of a data processing system
US8917165B2 (en) * 2007-03-08 2014-12-23 The Mitre Corporation RFID tag detection and re-personalization
US8019962B2 (en) * 2007-04-16 2011-09-13 International Business Machines Corporation System and method for tracking the memory state of a migrating logical partition
US8176487B2 (en) * 2007-08-02 2012-05-08 International Business Machines Corporation Client partition scheduling and prioritization of service partition work
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
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
US8141093B2 (en) * 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in an IOV management partition
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
US8082273B2 (en) * 2007-11-19 2011-12-20 Teradata Us, Inc. Dynamic control and regulation of critical database resources using a virtual memory table interface
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
US8359415B2 (en) * 2008-05-05 2013-01-22 International Business Machines Corporation Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US8144582B2 (en) * 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
US9021483B2 (en) * 2009-04-27 2015-04-28 International Business Machines Corporation Making hardware objects and operations thread-safe
US8103638B2 (en) * 2009-05-07 2012-01-24 Microsoft Corporation Partitioning of contended synchronization objects
US8671228B1 (en) * 2009-10-02 2014-03-11 Qlogic, Corporation System and methods for managing virtual adapter instances
US8925039B2 (en) * 2009-12-14 2014-12-30 At&T Intellectual Property I, L.P. System and method of selectively applying security measures to data services
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US9213661B2 (en) * 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US9195623B2 (en) * 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US8639858B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8504754B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Identification of types of sources of adapter interruptions
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8478922B2 (en) 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
US8271710B2 (en) * 2010-06-24 2012-09-18 International Business Machines Corporation Moving ownership of a device between compute elements
US8949499B2 (en) 2010-06-24 2015-02-03 International Business Machines Corporation Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US8561064B2 (en) * 2010-10-26 2013-10-15 International Business Machines Corporation Retaining ownership of a virtual function while an adapter is replaced
US9311127B2 (en) 2011-12-16 2016-04-12 International Business Machines Corporation Managing configuration and system operations of a shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US20130159572A1 (en) * 2011-12-16 2013-06-20 International Business Machines Corporation Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to multi-function hierarchies
US9626207B2 (en) 2011-12-16 2017-04-18 International Business Machines Corporation Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US9411654B2 (en) 2011-12-16 2016-08-09 International Business Machines Corporation Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation
CN103514125B (zh) * 2012-06-25 2016-06-08 宏碁股份有限公司 主控端电子装置以及主控端操作方法
US9189503B2 (en) 2012-12-06 2015-11-17 Microsoft Technology Licensing, Llc Database scale-out
US9569243B2 (en) * 2014-12-05 2017-02-14 International Business Machines Corporation Offloading and parallelizing translation table operations
US11593171B2 (en) 2020-01-27 2023-02-28 Raytheon Company Reservation-based high-performance computing system and method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0917056A2 (en) * 1997-11-04 1999-05-19 Digital Equipment Corporation A multi-processor computer system and a method of operating thereof
CN1274123A (zh) * 1999-03-31 2000-11-22 国际商业机器公司 分区系统的带有动态配置的外围元件互联槽控制装置
WO2002071215A2 (en) * 2001-03-01 2002-09-12 International Business Machines Corporation Method and apparatus to power off and/or reboot logical partitions in a data processing system
US20020161891A1 (en) * 2001-04-25 2002-10-31 Tatsuo Higuchi System and method for computer resource marketing
US20020161869A1 (en) * 2001-04-30 2002-10-31 International Business Machines Corporation Cluster resource action in clustered computer system incorporating prepare operation
US20030041090A1 (en) * 2001-08-24 2003-02-27 Armstrong William Joseph Yield on multithreaded processors

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU650242B2 (en) * 1989-11-28 1994-06-16 International Business Machines Corporation Methods and apparatus for dynamically managing input/output (I/O) connectivity
US5414851A (en) * 1992-06-15 1995-05-09 International Business Machines Corporation Method and means for sharing I/O resources by a plurality of operating systems
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 論理計算機システムの動的再構成方式
US6542926B2 (en) * 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
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
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
US6023736A (en) * 1997-12-19 2000-02-08 International Business Machines Corporation System for dynamically configuring I/O device adapters where a function configuration register contains ready/not ready flags corresponding to each I/O device adapter
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
US6279046B1 (en) * 1999-05-19 2001-08-21 International Business Machines Corporation Event-driven communications interface for logically-partitioned computer
JP2002032324A (ja) * 2000-07-17 2002-01-31 Hitachi Ltd Pciバスデバイス接続制御方式
US6792497B1 (en) * 2000-12-12 2004-09-14 Unisys Corporation System and method for hardware assisted spinlock
US6665759B2 (en) * 2001-03-01 2003-12-16 International Business Machines Corporation Method and apparatus to implement logical partitioning of PCI I/O slots
US6662242B2 (en) * 2001-04-17 2003-12-09 International Business Machines Corporation Method for PCI IO using PCI device memory mapping in a logically partitioned system
US7000043B2 (en) * 2002-09-18 2006-02-14 Sun Microsystems, Inc. Methods and apparatus for controlling performance of a communications device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0917056A2 (en) * 1997-11-04 1999-05-19 Digital Equipment Corporation A multi-processor computer system and a method of operating thereof
CN1274123A (zh) * 1999-03-31 2000-11-22 国际商业机器公司 分区系统的带有动态配置的外围元件互联槽控制装置
WO2002071215A2 (en) * 2001-03-01 2002-09-12 International Business Machines Corporation Method and apparatus to power off and/or reboot logical partitions in a data processing system
US20020161891A1 (en) * 2001-04-25 2002-10-31 Tatsuo Higuchi System and method for computer resource marketing
US20020161869A1 (en) * 2001-04-30 2002-10-31 International Business Machines Corporation Cluster resource action in clustered computer system incorporating prepare operation
WO2002088946A2 (en) * 2001-04-30 2002-11-07 International Business Machines Corporation Resource action in clustered computer system incorporating prepare operation
US20030041090A1 (en) * 2001-08-24 2003-02-27 Armstrong William Joseph Yield on multithreaded processors

Also Published As

Publication number Publication date
US7073002B2 (en) 2006-07-04
US20080189460A1 (en) 2008-08-07
WO2004081699A3 (en) 2005-01-20
KR20050112524A (ko) 2005-11-30
TW200508892A (en) 2005-03-01
US20060168381A1 (en) 2006-07-27
US7676618B2 (en) 2010-03-09
BRPI0408310A (pt) 2006-03-07
TWI279691B (en) 2007-04-21
JP2006521609A (ja) 2006-09-21
WO2004081699A2 (en) 2004-09-23
KR100843490B1 (ko) 2008-07-04
CN1723440A (zh) 2006-01-18
MXPA05009632A (es) 2005-10-18
EP1604279A2 (en) 2005-12-14
CA2515450C (en) 2010-04-13
US7464209B2 (en) 2008-12-09
US20040181625A1 (en) 2004-09-16
CA2515450A1 (en) 2004-09-23

Similar Documents

Publication Publication Date Title
CN100388208C (zh) 在逻辑分区的计算机系统中控制资源转移的装置和方法
CN100487655C (zh) 具有多个逻辑分区的计算机系统及其硬件资源的管理方法
US7134052B2 (en) Autonomic recovery from hardware errors in an input/output fabric
KR100361635B1 (ko) 논리적 분할부 관리기 및 방법
CN101271409B (zh) 用于迁移逻辑分区的装置和方法以及设备
CN100456249C (zh) 逻辑分区的数据处理系统及其中管理共享资源的方法
CN100378670C (zh) 逻辑分区计算机系统及其输入输出能力的保持方法
CN100568182C (zh) 在逻辑地分区的数据处理系统内分布工作的方法和系统
EP0321724A2 (en) Apparatus and method for alterable resource partitioning enforcement in a data processing system having central processing units using different operating systems
CN1707462B (zh) 逻辑分区数据系统及其传输数据的方法
CA2393828A1 (en) Two layer operating system and method for avionics software applications
AU5680894A (en) Interception system and method including user interface
CN100487654C (zh) 使用转移中修改虚拟化设备自描述信息的方法
US6598105B1 (en) Interrupt arbiter for a computing system
US10528391B1 (en) Execution manager for binary objects operating across private address spaces
JPH06231091A (ja) 物理プロセッサのハント方式
PRICE This technical report has been reviewed and is approved for
Bonneau et al. SFEP Subsystem Specification
JPH01251158A (ja) マルチコンピュータシステムにおける回復処理方式

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
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: 20080514

Termination date: 20210303