CN103038756B - 确定受i/o消息影响的一个或者多个可分区端点 - Google Patents

确定受i/o消息影响的一个或者多个可分区端点 Download PDF

Info

Publication number
CN103038756B
CN103038756B CN201180036929.4A CN201180036929A CN103038756B CN 103038756 B CN103038756 B CN 103038756B CN 201180036929 A CN201180036929 A CN 201180036929A CN 103038756 B CN103038756 B CN 103038756B
Authority
CN
China
Prior art keywords
entry
data structure
host bridge
address
requestor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180036929.4A
Other languages
English (en)
Other versions
CN103038756A (zh
Inventor
S·瑟伯
E·N·莱斯
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 CN103038756A publication Critical patent/CN103038756A/zh
Application granted granted Critical
Publication of CN103038756B publication Critical patent/CN103038756B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • 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
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0058Bus-related hardware virtualisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

一种数据处理系统,包括:处理器核;系统存储器(116),包括第一数据结构(500),所述第一数据结构(500)包括将请求者标识符(ID)(410)映射至可分区端点(PE)号的多个条目(502);以及输入/输出(I/O)子系统,包括多个PE,每个PE具有相关联的PE号,所述多个PE中的每一个包括各自具有相应请求者ID的一个或者多个请求者。I/O主机桥(120),响应于接收到包括请求者ID和地址的I/O消息,通过参考来自所述第一数据结构的第一条目来确定PE号,以及响应于确定所述PE号,通过利用所述PE号作为索引来访问所述第二数据结构的第二条目,以及通过引用在所述第二数据结构中的所访问条目来验证所述地址。所述I/O主机桥响应于成功验证,提供由所述I/O消息指示的服务。

Description

确定受I/O消息影响的一个或者多个可分区端点
技术领域
本发明概括地涉及数据处理,以及具体地,涉及在数据处理系统中的I/O(输入/输出)。
背景技术
数据处理系统可以包括多个处理元件和多个输入/输出适配器(IOA)以支持对通信网络、存储设备和/或存储网络和外围设备的连接。在此类数据处理系统中,数据处理系统的硬件资源可以在逻辑上分区为多个非交叉的资源组,每个资源组由多个可能的异类操作系统实例中的相应实例来控制。在系统固件的控制下,操作系统在其相应的逻辑分区(LPAR)中在这种公共的硬件平台上并发地执行,这被称为虚拟机监视器(VMM)或者管理程序(hypervisor)。由此,管理程序向每个LPAR分配数据处理系统资源的非交叉子集,并且每个操作系统实例继而直接控制其可分配资源的不同集合(诸如IOA和系统存储器区域)。
在包括多本IOA的任何环境中,期望隔离IOA以便每个IOA仅可以获取对于被分配给它的资源的访问。隔离IOA促进了数据处理系统的可靠性、可用性和服务性,并且在支持硬件虚拟化(或者逻辑分区)的环境中尤其重要,从而IOA可以被单独分配给不同逻辑分区(LPAR),并且从而任何IOA错误将被隔离到对其分配了IOA的特定分区。例如,对于外围组件互连(PCI)总线,如果一个LPAR中的IOA激活系统错误(SERR)信号,则在没有附加控制的情况下系统必须使得该SERR信号对于全部其他LPAR可见。当然,使得I/O错误跨越LPAR边界可见的要求有悖于逻辑分区的定义和主旨。
解决具有PCI错误的分区问题的一种解决方案在于,需要将连接到PCI主机桥(PHB)的全部IOA指派到相同的LPAR分区。然而,这一约束针对不太有用或者不太灵活的IOA要求高资源粒度。理想的是,IOA应当被分配给不同的LPAR而无关于IOA所连接到的PHB。备选方案包括使用如美国专利号6,643,727中描述的外部于PHB的专门设计的桥接芯片,或者如美国专利号7,398,427所描述的那样,结合附加逻辑和数据结构以便实现在PHB内的不同LPAR之间的分区。
另外,在本公开中应当注意,期望降低在处理历程消息(诸如DMA消息和I/O错误消息)中使用的PHB内的数据结构的大小。
发明内容
在本发明的一个方面中提供了数据处理系统,包括:处理器核;系统存储器,包括第一数据结构,所述第一数据结构包括将请求者标识符(ID)映射至可分区端点(PE)号的多个条目;以及包括多个PE的输入/输出(I/O)子系统,每个PE具有相关联的PE号,其中所述多个PE中的每一个包括各自具有相应请求者ID的一个或者多个请求者。I/O主机桥,响应于接收到包括请求者ID和地址的I/O消息,通过参考来自所述第一数据结构的第一条目来确定PE号,以及响应于确定所述PE号,通过利用所述PE号作为索引来访问所述第二数据结构的第二条目,以及通过引用在所述第二数据结构中的所访问条目来验证所述地址。所述I/O主机桥响应于成功验证,提供由所述I/O消息指示的服务。
在本发明的一个方面中,提供了一种在数据处理系统中进行数据处理的方法,该数据处理系统具有包括至少一个I/O主机桥和多个可分区端点(PE)的输入/输出(I/O)子系统,每个可分区端点具有相关联的PE号,多个PE中的每一个包括一个或者多个请求者,每个请求者具有相应的请求者标识符(ID),所述方法包括:在I/O主机桥处接收I/O消息,所述I/O消息包括请求者ID和地址;响应于接收到所述I/O消息,所述I/O主机桥通过参考来自第一数据结构的第一条目来确定受到所述I/O消息影响的PE的PE号,所述第一数据结构包括将请求者ID映射至PE号的多个条目;响应于确定所述PE号,所述I/O主机桥通过利用所述PE号作为索引来访问第二数据结构的第二条目,以及通过引用在所述第二数据结构中的所访问条目来验证所述地址;响应于所述地址的成功验证,所述I/O主机桥提供由所述I/O消息指示的服务。
所述I/O消息可以是直接存储器访问请求(DMA)请求;以及所述方法可以进一步包括:将所述地址转换为系统存储器地址。优选地,所述I/O主机桥包括PCI主机桥。另外优选地,所述I/O主机桥通过参考第一条目确定受到所述I/O消息影响的PE的PE号包括:访问所述I/O主机桥中对来自所述第一数据结构的条目进行缓存的高速缓存中的第一条目。更优选地,所述第一数据结构驻留在所述数据处理系统的系统存储器中;以及所述I/O主机桥通过引用第一条目确定受到所述I/O消息影响的PE的PE号包括,访问所述系统存储器中的所述第一条目。优选地,所述方法进一步包括:通过引用所述地址中的索引,在与所述PE号相关联的所述第二数据结构的多个条目中选择第二条目。
在本发明的第三方面中,提供了一种数据处理系统,包括:处理器核;系统存储器,耦合至所述处理器核,所述系统存储器包括包含多个条目的第一数据结构,所述多个条目将请求者标识符(ID)映射至可分区端点(PE)号;以及输入/输出(I/O)子系统,耦合至所述处理器核,所述I/O子系统包括:多个PE,每个PE具有相关联的PE号,所述多个PE中的每一个包括各自具有相应请求者ID的一个或者多个请求者;以及至少一个I/O主机桥,包括包含多个条目的第二数据结构,其中所述I/O主机桥响应于接收到包括请求者ID和地址的I/O消息,通过参考来自所述第一数据结构的第一条目来确定受到所述I/O消息影响的PE的PE号,以及响应于确定所述PE号,通过利用所述PE号作为索引来访问所述第二数据结构的第二条目,以及通过引用在所述第二数据结构中的所访问条目来验证所述地址,以及其中所述I/O主机桥响应于所述地址的成功验证,提供由所述I/O消息指示的服务。
所述I/O消息是直接存储器访问请求(DMA)请求。所述I/O主机桥包括PCI主机桥。更优选地,所述I/O主机桥包括来自系统存储器的所述第一数据结构的条目的高速缓存;以及所述I/O主机桥通过访问所述高速缓存中的所述第一条目确定所述PE号。优选地,所述第二数据结构保持与所述PE号相关联的多个条目;以及所述I/O主机桥通过参考所述地址中的索引来从与所述PE号相关联的所述多个条目中选择所述第二条目。所述数据处理系统优选地进一步包括:包含所述处理器核和所述I/O主机桥的集成电路芯片。
在本发明的第四方面中,提供了一种用于数据处理系统的处理器,所述数据处理系统具有包括多个可分区端点(PE)的输入/输出(I/O)子系统,每个可分区端点具有相关联的PE号,所述多个PE中的每一个包括一个或者多个请求者,每个请求者具有相应的请求者标识符(ID),所述处理器包括:处理器核;以及I/O主机桥,响应于接收到包括请求者ID和地址的I/O消息,通过参考来自所述第一数据结构的第一条目来确定受到所述I/O消息影响的PE的PE号,其中所述第一数据结构包括将请求者ID映射至PE号的多个条目;以及响应于确定所述PE号,通过利用所述PE号作为索引来访问所述I/O主机桥中的第二数据结构的第二条目,以及通过引用在所述第二数据结构中的所访问条目来验证所述地址,以及其中所述I/O主机桥响应于所述地址的成功验证,提供由所述I/O消息指示的服务。
所述I/O消息可以是直接存储器访问请求(DMA)请求。所述I/O主机桥包括PCI主机桥。优选地,所述处理器是如下处理器,其中所述第一数据结构驻留在所述数据处理系统的系统存储器中;所述I/O主机桥包括来自系统存储器的所述第一数据结构的条目的高速缓存;以及所述I/O主机桥通过访问所述高速缓存中的所述第一条目确定所述PE号。优选地,所述第二数据结构保持与所述PE号相关联的多个条目;以及所述I/O主机桥通过参考所述地址中的索引来从与所述PE号相关联的所述多个条目中选择所述第二条目。
附图说明
图1是根据一个实施方式的示例性数据处理系统的高级框图;
图2示出了被分区为多个并发执行的逻辑分区(LPAR)的数据处理系统的硬件和软件资源的数据处理系统的逻辑视图;
图3示出了根据一个实施方式在数据处理系统中提供I/O资源隔离的I/O子系统;
图4A绘出了传统外围组件互连(PCI)主机桥(PHB);
图4B示出了在图4A的PHB中的转换和验证表(TVT)的传统转换和验证条目(TVE);
图5A绘出了在一个示例性实施方式中的改进的外围组间互连(PCI)主机桥(PHB)。
图5B示出了在图5A中的转换和验证表(TVT)的改进转换和验证条目(TVE);
图6是根据一个实施方式的,由PHB处理DMA消息的示例性过程的高级逻辑流程图;
图7A绘出了根据现有技术的包括PE查找表(PELT)的传统外围组间互连(PCI)主机桥(PHB);
图7B示出了在图7A的现有技术PHB中的PELT的传统PE查找表条目(PELE);
图8A绘出了在一个示例性实施方式中的改进外围组间互连(PCI)主机桥(PHB);
图8B示出了由图8A的改进PHB使用的改进PE查找表条目(PELE);以及
图9是根据一个实施方式的PHB处理I/O错误消息的示例性过程的高级逻辑流程图。
具体实施方式
现在参考附图,以及特别参考图1,该图1绘出了根据一个实施方式的示例性数据处理系统的高级框图。在某些实施方式中,数据处理系统100例如可以是包括多个处理器102a-102n的对称多处理器(SMP)系统,其中每个处理器耦合用于向系统架构(fabric)104通信,其可以包括一个或者多个总线化或者交换化的通信链路。例如,数据处理系统100可以由IBMeServer实现,IBMeServer是纽约阿芒克的国际商业机器公司的产品线。在备选实施方式中,可以使用具有单处理器102的数据处理系统。
在绘出的实施方式中,每个处理器102优选地实现为单一集成电路芯片,其具有如现有技术中已知方法构造的半导体电路的衬底。如所示,处理器102包括多个处理器核110,用于通过执行和/或处理程序代码来处理数据,其可以包括例如软件和/或固件以及相关联的数据,如果存在的话。处理器102进一步包括高速缓冲存储器112,该高速缓冲存储器112针对从数据存储层级的较低等级获取的数据和指令提供相对较低延迟的临时存储的一个或者多个等级。另外,处理器102包括控制对于相关联的一个片外系统存储器116的访问的集成存储器控制器114。
每个处理器102进一步包括:架构接口(FIF),处理器102通过该架构接口来与系统架构104通信;以及一个或者多个(以及优选地为多个)主机桥,其支持与输入/输出适配器(IOA)130的输入/输出通信。在绘出的实施方式中,全部主机桥实现为外围组间互连(PCI)主机桥(PHB)120,然而在其他实施方式中,主机桥可以实现一个或者多个附加的或者备选的I/O总线标准。
PHB120a、120k、120m和120v分别提供对于PCI本地总线122a、122k、122m和122v的接口,而IOA130(诸如,网络适配器、存储设备控制器、外围适配器等)可以直接连接或者间接耦合至此。例如,PCIIOA130a可选地通过I/O架构124a来耦合至PCI本地总线122a,其可以包括一个或者多个交换机和/或桥接设备。类似地,PCIIOA130k和1301可选地通过I/O架构124k耦合至PCI本地总线122k,PCIIOA130m可选地通过I/O架构124m耦合至PCI本地总线122m,以及PCIIOA130v和130W(可以包括例如,显示适配器和硬盘适配器)可选地通过I/O架构124v耦合至PCI本地总线122v。
数据处理系统100进一步包括服务处理器140,其管理数据处理系统100的引导过程,并且继而监控和报告关于在数据处理系统100中检测到的错误状况和性能。服务处理器140耦合至系统架构104并且由本地存储器142支持,该本地存储器142可以包括易失性(例如,动态随机访问存储器(DRAM))和非易失性存储器(例如,非易失性随机访问存储器(NVRAM)或者静态随机访问存储器(SRAM))。服务处理器140进一步耦合至邮箱接口144,服务处理器140通过该邮件箱接口144来与PCI总线122a传输I/O操作。
本领域技术人员应当注意,数据处理系统的组件和架构可以在实施方式之间有所变化。例如,附加地或者备选地,可以使用其他设备和互连。因而,在图1中给出的示例性数据处理系统100并不意味着针对所请求的发明施加结构性限制。
现在参考图2,图2示出了被分区为多个并发执行的逻辑分区(LPAR)的数据处理系统的硬件和软件资源的数据处理系统的逻辑视图200。数据处理系统200例如可以具有与图1中的数据处理系统100相同的组件和/或架构,并且因而利用相同的参考数字标记公共组件。
数据处理系统200具有一组被分区的硬件202,包括处理器102a-102n、系统存储器116a-116n以及IOA130a-130w。当然,被分区的硬件202可以包括附加的未示出的组件,诸如附加的易失性或者非易失性存储设备、端口、桥接设备、交换机等。包括被分区的硬件202(或者其中的部分)的硬件组件可以由系统固件204(在此也被称为虚拟机监视器(VMM)或者管理程序),来指派到数据处理系统200中的各种逻辑分区(LPAR)210a-210p。系统固件204通过将数据处理系统200的被分区的硬件进行虚拟化,来支持多个独立操作系统的同步执行。
除了由系统固件204分配的硬件资源,LPAR210a-210p中的每个包括多个并发执行的操作系统实例212a-212p的相应的一个。在各个实施方式中,操作系统实例212a-212p(可以包括例如Linux、AIX和/或Windows的实例)可以是同类或者异类的。每个LPAR210可以进一步包括未示出的应用程序,以及分区固件214的相应的实例,其可以利用例如初始引导代码(bootstrapcode)、IEEE-1275标准开放固件和运行时抽象软件(RTAS)的结合来实现。当LPAR210a-210p被启动时,引导代码的副本由系统固件204加载到分区210a-210p上。因而,系统固件204向引导代码转移控制,其继而加载开放固件和RTAS。被指派给每个LPAR210的处理器102继而执行该LPAR210的分区固件214,以启动(bringup)LPAR210并发起OS实例212的执行。
在图2绘出的被逻辑分区的环境中,服务处理器140可以用于提供各种服务,诸如处理LPAR210a-210p中的错误。这些服务还充当服务代理,向数据处理系统200的系统管理员或者提供者返回报告错误。不同LPAR210的操作可以进一步通过硬件管理控制台220来控制。在至少一个实施方式中,硬件管理控制台220可以实现为独立于系统管理器(该系统管理器可以在数据处理系统200内执行各种功能)的数据处理系统,该功能包括创建和析构LPAR210以及在LPAR210之间重新分配硬件和软件资源。
在诸如图2绘出的被逻辑分区的环境中,不允许一个LPAR210中的硬件和软件资源来消费在另一LPAR210中的资源或者影响在另一LPAR210中的操作。此外,有用的是,向LPAR210指派资源需要精细的粒度。例如,通常不能接受将特定PHB120下的全部IOA130指派给相同分区,这是由于那样将会限制系统的可配置能力(包括在分区之间动态重新分配资源的能力)。因而,PHB120能够向不同LPAR210指派资源(诸如单独的IOA130(或者其部分)),并且同时防止被指派的资源访问或者影响其他LPAR210的资源。
为了支持在不同LPAR210的资源之间进行此类隔离,数据处理系统的I/O子系统被子划分为多个可分区端点。“可分区端点”或者“PE”在此被定义为:可以独立于I/O子系统的任何其他组件或者子组件而向LPAR分配的I/O子系统的任何组件或者子组件。例如,某些PE可以包括多个IOA和/或I/O架构组件,其彼此一起操作因而应当被作为一个单元向单一LPAR分配。然而,其他PE可以包括单一IOA的一部分,例如,多端口IOA的单独可配置的并且单独可指派的端口。通常,PE将由其功能而不是其结构来定义。
现在参见图3,图3示出了根据一个实施方式在数据处理系统中提供I/O资源隔离的I/O子系统300的至少一部分的框图,该数据处理系统诸如图1的数据处理系统100,其呈现出根据一个实施方式的在LPAR210之间的资源隔离。
在绘出的实施方式中,I/O子系统300包括通过I/O架构124耦合至多个IOA302a-302g的PHB120。I/O架构124继而包括交换机310a、310b、PCI-Express(PCI-E)总线320、322、324和326、PCI桥312a和312b、以及次级总线340、342、344和346。
如图3中进一步示出,系统固件204将I/O子系统300的各种组件分组,以形成多个PE350a-350d,其中每个PE可以被独立地指派至数据处理系统的任一LPAR210。在给出的示例中,PE350a和PE350c各自包括单一IOA,也即,分别包括IOA302a和302d。相反,PE350b包括必须被指派至相同LPAR210的两个IOA302b和302c。PE350d包括三个IOA302e、302f和302g以及PCI桥312b,其一起工作作为PE并且继而必须被指派至相同的LPAR210。如先前所述,在其他实施方式中,PE可以包括IOA的仅仅一部分(例如,一个或者多个端口)
在I/O子系统300中,每个PE的相应状态在此被称作可分区端点状态,并且在相关联的PHB120中维护。因而,例如I/O子系统300的PHB120包括可分区端点状态寄存器360a-360d,其分别对应于并且指示PE350a-350d的状态。
系统固件204向每个PE指派将其组件与PE相关联的一个或者多个域号(或者请求者ID(RID))。在示例性实施方式中,被指派给每个PE的域号包括多个字段,该字段可以进一步用于区别PE中的I/O组件。例如,这些字段可以包括:
·总线号(Bus)字段:提供在I/O资源之间的最高级划分,其中PHB下的每个总线具有唯一的总线号。
·设备号(Dev)字段,提供I/O资源的中级划分,其中在给定总线上的每个IOA具有不同的设备号。
·功能号(Func)字段:提供I/O资源之间的最低级划分,其中IOA的每个不同功能具有不同的功能号。
应当注意,域号(或者RID)支持下至最低I/O功能的I/O资源划分。例如,域号允许区分多个功能IOA的单独功能。在不需要此类精细粒度的数据处理系统中,域号可以由总线字段来单独定义,允许区分被连接到相同PHB的PE;或者由Bus字段连同Dev字段或者Func字段之一进行定义,以允许区分在包括多个功能IOA的PE中的IOA的功能或者区分PE的IOA。包括Bus、Bus/Dev、或者Bus/Dev/Func字段的域号空间的稀疏性(sparseness),使得在许多情况下期望将由这些字段定义的域号空间压缩到由PHB120内部使用的较小稀疏的内容。
在图3的PHB120中包括的隔离功能之中的是隔离PE错误域的能力。在被物理分区的数据处理系统中,不同的PE可以被指派至不同的LPAR。因而,PHB120支持将在一个PE中出现的错误隔离到该PE被指派至的特定LPAR。更具体地,每个PHB120包括当检测到错误时(被称为停止状态)停止往来于PE的I/O操作的能力。I/O操作的停止优选地以如下方式执行:
1.防止PE完成出现错误的I/O操作,a.从而PE不能向任何LPAR传播错误,以及b.从而I/O操作的请求者不能使用出错的数据。
2.对设备驱动器而言操作的停止应当被隔离到仅仅该设备驱动器。
3.针对一个PE的软件(在设备驱动级别或者之上)不能引入可以导致另一PE进入停止状态的错误。
4.可以在停止状态出现后捕获针对问题确定的故障信息。
5.当任何PE出于停止状态中时固件可以访问PHB下的配置空间。
为了实现根据这些标准的错误处理,每个PHB优选地提供针对I/O操作标识特定错误域的隔离功能。在优选实施方式中,配置操作错误域能力通过在PHB的寄存器中实现配置PE号字段来支持,该字段可以由系统固件来设置。另外,在优选实施方式中,每个PHB确定受到I/O消息影响的一个或者多个PE号,并且仅将I/O消息路由到特定于控制这些PE的软件。
除了提供有效隔离功能以外,还期望降低在处理历程消息中使用的PHB内的数据结构的大小,诸如DMA消息和I/O错误消息,尤其是在其中PHB被集成到具有处理器的普通集成电路芯片的实施方式中。因而,如下文进一步讨论,在PHB内实现的数据结构的足迹可以通过受到I/O消息(诸如DMA和I/O错误消息)影响的PE的改进确定来减少。
现在参见图4A,图4A绘出了在美国专利申请号7,398,427中描述的传统PHB400,该PHB400被实现在独立于处理器的集成电路芯片中。PHB400包括被称作转换和验证表(TVT)402的宽的数据结构。TVT402包括多个转换和验证条目(TVE)404。如图4B所示,每个传统TVE404包括多个字段,包括请求者ID(RID)和指定RID的RID验证控制字段430和用于验证RID的控制信息、指示与RID相关联的PE的PE#字段、转换控制条目(TCE)表大小字段434、I/O页面大小字段436、指示用于特定PE的TCE表的基址的TCE开始地址字段438。
PHB400验证直接存储器访问(DMA)请求的RID,并且通过参考TVT402来将RID转换至特定PE。如所示出,PHB400接收包括RID410(包括总线号、设备号和功能号)和DMA地址412的直接存储器访问(DMA)包。来自DMA地址412的多个比特形成索引入TVT402的TVE索引(TVEI)414,其选择用于访问的特定TVE404。一旦选择TVE404,则PE#字段432的内容被读出以确定PE的当前状态。另外,将RID的内容和RID验证控制字段430与进入的RID410进行比较,如框420处示出。如果RID410与字段430中指定的RID不匹配,则PHB400不允许执行所请求的DMA操作。如框422处指示,PHB400还截断DMA地址412的较低阶的n个比特(其中2n是所选择TVE404的I/O页面大小字段436指定的I/O页面大小),并且将TVEI414下其余的DMA地址比特与所选择TVE404的TCE表大小字段434进行比较。如果DMA地址412指定超过相关TCE表末端的地址,则PHB400不允许DMA操作。另一方面,如果在框420和422示出的验证为成功,则PHB400使用在PE的存储器中TCE表中包含的DMA地址至真实地址转换,来执行所请求的DMA操作,其由TCE开始地址字段438的内容所指向。
应当注意,在图4A-4B绘出的传统TVE404包含多个多比特字段,并且继而传统TVT402是需要相当大的裸片面积的大的数据结构。另外,每个PE针对其自身应用不使用DMA地址412的TVEI字段414,这意味着DMA地址空间被分割为针对各种PE的不同的非连续空间。
现在参考图5A,图5A绘出了根据一个实施方式的改进的PHB的更多细节的视图。通常,期望减少PHB120的裸片面积,尤其是在其中PHB120被集成到如图1所示的处理器102的集成电路芯片内的优选实施方式中。有助于降低PHB120的裸片面积的一个因素是,降低PHB120内的用于验证和转换从各种I/O组件(诸如,IOA130、I/O桥312和交换机310)接收的DMA和I/O错误消息的数据结构的大小。具体地如下文进一步详述,可以从每个传统TVE404中去除先前存在的16比特RID字段和PE#字段,使得TVE的宽度显著降低以及TVT和PHB120的整体足迹伴随降低。
在图5A示出的设置中,RID转换表(RTT)500例如可以由系统固件204基于其I/O资源在LPAR210之间的分配来进行填充和维护,该RTT500包括多个RID转换条目(RTE)502。每个RTE502将相应RID(诸如传统16比特PCIRID410)与PE相关联。RT500可以在PHB120中实现,或者优选地,在诸如系统存储器116的片外存储位置实现。在其中RTT500在片外实现的实施方式中,PHB120可选地包括小的片上RID转换高速缓存(RTC)504,以向最近访问的RTE502的拷贝提供较低延迟的访问。
图5A进一步示出了PHB120包括包含多个TVE512的流线型TVT510。如图5B所绘出,每个TVE512包括少量比特的字段,包括指示针对源起DMA的PE的TCE表560的表大小的转换控制条目(TCE)表大小字段534,I/O页面大小字段536、以及指示针对源PE的存储器中TCE的基址的TCE表开始地址字段538。应当注意,相比较于缺乏对应于传统字段430和432的字段的TVE512的图4B,本发明显著降低TVT510的大小。
现在将参考附图5A-5B并且另外参考在图6中提供的高级逻辑流程图,来描述在服务DMA请求中PHB120的操作。处理开始于框600并且继而前进至框602,其示出了PHB120从其被耦合至的一个I/O组件接收直接存储器访问(DMA)操作(其包括传统RID410和DMA地址540)。PHB120利用DMA操作的RID410来访问特定的RTE502,或者从RTC504(如果存在)或者从RTT500进行(框604)。被访问的TRE501指定PE,PHB120利用其来访问PE的当前状态。PHB120还利用由所访问的TRE502指定的PE#来访问TVT510(框606)。在其中每个PE具有单一相关联TVE512的某些实施方式中,PE#直接地被索引到TVT510中。在其中每个PE可以具有一个或者多个TVE512的备选实施方式中(例如,支持针对至少某些PE的多I/O页面大小),则PHB120可以附加地利用来自DMA地址540的一个或者多个PE索引(PEI)比特514,来在与所选择PE相关联的多个TVE512之间进行选择。应当注意,PEI514的使用不像图4A中的TVEI414那样在不同PE之间分割DMA地址空间,而是仅仅在所选择的PE地址空间内划分DMA地址空间,因而有利的是使得整个DMA地址空间对于每个PE可见。
在框606之后,图6的过程前进至框608,框608绘出了PHB120中的DMA地址验证逻辑550截断DMA地址540的低阶的n个比特(其中2n是所选择TVE512的I/O页面大小字段536指定的I/O页面大小),以及将其余的较高阶DMA地址比特与所选择TVE512的TCE表大小字段534进行比较。如框610处所示,如果DMA地址540指定超过相关TCE表560的末端的地址,则验证失败并且PHB不允许所指示的DMA操作并且过程在框616终止。另一方面,如果DMA地址540通过验证,如在框610处由肯定确定所指示,则PHB120将DMA地址540转换为系统存储器116中的真实地址(框612)。在一个实施方式中,PHB120通过参考利用由一地址指向的特定TCE的存储器中的TCE表格560来执行地址转换,该地址通过结合所选择TVE512的TCE表开始地址字段548的内容与在PEI514和n个低阶地址比特之间的DMA地址540的中阶比特来形成。继而,PHB120通过使用由地址转换获得的系统存储器(例如,真实)地址,来向目标系统存储器116的IMC114传输DMA操作,以便调取所请求的DMA的执行(框614)。其后,图6所示的过程在框616处终止。
用于提供PE之间的隔离同时还将在PHB120中的数据结构的大小最小化的类似技术还可以用于隔离I/O错误消息,如下参见图7A-7B、图8A-图8B和图9进一步讨论。
首先参见图7A,图7A示出了绘出现有技术的在处理I/O(例如,PCIe)错误消息中使用的数据结构的、图4A的传统PHB400的第二图示。如所示出,除了先前讨论的数据结构,PHB400包括被称为PE查找表(PELT)700的宽的数据结构。PELT700在昂贵的内容可寻址存储器(CAM)中实现,其包括多个PE查找条目(PELE)702。如图7B所示,每个传统PELE702包括请求者ID(RID)和指定RID的RID验证控制字段710、以及用于验证RID的控制信息、以及指示受到I/O错误影响的PE号的设置比特(例如,1的)的PE查找矢量(PELV)字段712。
在现有技术中,PHB400随同标识哪个I/O组件是PCIe错误消息704的源的RID410一起接收PCIe错误消息704。作为响应,PHB400利用RID410来执行对PELT700的CAM访问,以标识在其RID和RID验证控制字段710中包含匹配RID的匹配PELE702。PHB400继而针对由匹配PELE702的PELV字段712所指定的每个PE来处理PCIe错误消息。
现在参见图8A,图8A绘出了根据一个实施方式的改进PHB120的更为详细的视图。如上所述,期望降低PHB120的裸片面积,尤其是在如图1所示的PHB120被集成在处理器102中的优选实施方式中。有助于降低PHB120的裸片面积的一个因素在于,消除在每个传统PELE702中存在的RID字段,导致显著降低PELE的宽度,并且随之降低PHB120的整个足迹。进一步期望降低或者消除对于昂贵CAM(诸如用于实现传统PELT700的CAM)的使用。
接着,在图8A所示的设置中,RTT500(优选地在系统存储器116中实现)再次被用于将诸如传统16比特PCIRID410的每个可能的RID(可以由PHB120接收)与PE相关联。如上所述,为了在其中RTT500在片外实现的实施方式中降低访问延迟,PHB120可选地包括小型片上RTC504,以提供对最近所访问RTE502的拷贝的较低延迟的访问。
图8A进一步示出了优选地以低成本非CAM技术实现的系统存储器116(诸如,DRAM),其优选地实现了包括多个PELE802的流线型PELT510。如图8B所绘出,每个PELE802包括PELV804,该PELV804包含多个比特,并且每个比特对应于多个PE号的相应的一个。如上所述,PELV804利用一个或者多个设置位(例如,1的)标识出现错误并且应当处理给定RID的PE。例如,如果错误相关于耦合到多个PE(例如,交换机310)、或者耦合到与单一设备相关联的多个功能(例如,IOA130的饿端口)的I/O组件,多个PE可能被牵连到错误中。应当注意,PELE802缺乏对应于传统字段710的字段,导致显著降低PELT800的大小。
现在,将附加参考在图9中提供的高级逻辑框图,来描述在处理I/O错误消息中的PHB120的操作。I/O错误消息处理过程开始于框900,并且继而前进至框902,其示出了PHB120接收包括错误消息704和标识I/O错误消息的源的RID410的I/O错误消息包。PHB120利用I/O错误包的RID410来访问特定RTE502,或者从RTC504(如果存在)或者从RTT500进行(框904)。所访问的RTE502指定PE#,其中PHB120将其用作访问PELT800的直接索引(框906)。应当注意,由于可以获得到PELT800的直接索引,因而不必在昂贵的CAM中实现PELT800。
接着,在框908中,PHB120通过检查在PELT800的所选择PELE802的PELV字段804中的哪个或者哪些比特被设置,来确定哪些PE受到I/O错误的影响。响应于确定受影响的PE,PHB120中的I/O错误处理逻辑810在需要时仅向负责针对受影响的PE处理错误的错误处理软件(例如,一个或者多个OS212的设备驱动软件)信号收发I/O错误(框910)。继而,错误处理过程在框912处完成。
在一个实施方式中,已经描述了一种数据处理系统,包括:处理器核;系统存储器,包括包含多个条目的第一数据结构,所述多个条目将请求者标识符(ID)映射至可分区端点(PE)号;以及包括多个PE的输入/输出(I/O)子系统,每个PE具有相关联的PE号,其中所述多个PE中的每一个包括各自具有相应请求者ID的一个或者多个请求者。I/O主机桥,响应于接收包括请求者ID和地址的I/O消息,通过参考来自所述第一数据结构的第一条目来确定PE号,以及响应于确定所述PE号,通过利用所述PE号作为索引来访问所述第二数据结构的第二条目,以及通过引用在所述第二数据结构中的所访问条目来验证所述地址。所述I/O主机桥响应于成功验证,提供由所述I/O消息指示的服务。
已经出于示出和详细描述的目的而呈现上述描述,并且该描述并非旨在穷尽或者限制所公开的结构和过程。多种修改和变型对于本领域普通人员是易见的。选择并描述了各种实施方式,以便最好地阐明操作的原理、实践性应用,并且支持本领域其他普通技术人员来理解和应用所公开的教导,以及在各种实施方式中作出适用于针对面临的特定使用的任何修改。
尽管参考一个或者多个优选实施方式描述并特别示出了本发明,本领域技术人员应当理解,在不脱离本发明的精神和范围的情况下,可以在形式和细节上作出各种修改。例如,尽管在完全功能性数据处理系统的上下文中描述了本发明,本领域普通技术人员应当理解,本发明的处理能够以计算机程序产品的形式而分发,过期计算机程序产品包括具有其中存储由程序代码的计算机可读存储介质。计算机可读存储介质的示例包括硬盘驱动、RAM或者其他易失性存储器和非易失性存储器以及光学存储媒介。
本申请涉及如下共同未决的专利申请,包括在申请日甚至更晚时间被转让至受让人的那些,在此通过引用而将其全部内容引入于此。
美国专利申请序列号12/849,925,美国专利申请序列号12/849,980,美国专利申请序列号12/850,008,以及每个专利申请序列号12/850,040。

Claims (18)

1.一种在数据处理系统中进行数据处理的方法,该数据处理系统具有包括至少一个I/O主机桥和多个可分区端点PE的I/O子系统,每个可分区端点具有相关联的PE号,多个PE中的每一个包括一个或者多个请求者,每个请求者具有相应的请求者ID,所述可分区端点PE是可以独立于I/O子系统的任何其他组件或者子组件而向逻辑分区LPAR分配的I/O子系统的任何组件或者子组件,所述方法包括:
在I/O主机桥处接收I/O消息,所述I/O消息包括请求者ID和地址;
响应于接收到所述I/O消息,所述I/O主机桥通过参考来自所述数据处理系统的系统存储器中的第一数据结构的第一条目来确定受到所述I/O消息影响的PE的PE号,所述第一数据结构包括将请求者ID映射至PE号的多个条目;
响应于确定所述PE号,通过利用所述PE号作为索引来访问所述I/O主机桥中的第二数据结构的第二条目,以及通过引用在所述第二数据结构中的所访问条目来验证所述地址;以及
响应于所述地址的成功验证,所述I/O主机桥提供由所述I/O消息指示的服务。
2.根据权利要求1所述的方法,其中:
所述I/O消息是直接存储器访问请求(DMA)请求;以及
所述方法进一步包括:将所述地址转换为系统存储器地址。
3.根据权利要求1所述的方法,其中所述I/O主机桥包括PCI主机桥。
4.根据权利要求1所述的方法,其中所述I/O主机桥通过参考第一条目确定受到所述I/O消息影响的PE的PE号包括:访问所述I/O主机桥中对来自所述第一数据结构的条目进行缓存的高速缓存中的第一条目。
5.根据权利要求1所述的方法,其中:
所述第一数据结构驻留在所述数据处理系统的系统存储器中;以及
所述I/O主机桥通过引用第一条目确定受到所述I/O消息影响的PE的PE号包括,访问所述系统存储器中的所述第一条目。
6.根据权利要求1所述的方法,进一步包括:通过引用所述地址中的索引,在与所述PE号相关联的所述第二数据结构的多个条目中选择所述第二条目。
7.一种数据处理系统,包括:
处理器核;
系统存储器,耦合至所述处理器核,所述系统存储器包括第一数据结构,所述第一数据结构包括将请求者ID映射至可分区端点PE号的多个条目;以及
I/O子系统,耦合至所述处理器核,所述I/O子系统包括:
多个可分区端点PE,每个PE具有相关联的可分区端点PE号,所述多个PE中的每一个包括各自具有相应请求者ID的一个或者多个请求者,所述可分区端点PE是可以独立于I/O子系统的任何其他组件或者子组件而向逻辑分区LPAR分配的I/O子系统的任何组件或者子组件;以及
至少一个I/O主机桥,包括包含多个条目的第二数据结构,其中所述I/O主机桥响应于接收到包括请求者ID和地址的I/O消息,通过参考来自所述第一数据结构的第一条目来确定受到所述I/O消息影响的PE的可分区端点PE号,以及响应于确定所述可分区端点PE号,通过利用所述PE号作为索引来访问所述第二数据结构的第二条目,以及通过引用在所述第二数据结构中的所访问条目来验证所述地址,以及其中所述I/O主机桥响应于所述地址的成功验证,提供由所述I/O消息指示的服务。
8.根据权利要求7所述的数据处理系统,其中所述I/O消息是直接存储器访问请求(DMA)请求。
9.根据权利要求7所述的数据处理系统,其中所述I/O主机桥包括PCI主机桥。
10.根据权利要求7所述的数据处理系统,其中:
所述I/O主机桥包括来自系统存储器的所述第一数据结构的条目的高速缓存;以及
所述I/O主机桥通过访问所述高速缓存中的所述第一条目确定所述PE号。
11.根据权利要求7所述的数据处理系统,其中:
所述第二数据结构保持与所述PE号相关联的多个条目;以及
所述I/O主机桥通过参考所述地址中的索引来从与所述PE号相关联的所述多个条目中选择所述第二条目。
12.根据权利要求7所述的数据处理系统,进一步包括:包括所述处理器核和所述I/O主机桥的集成电路芯片。
13.一种用于数据处理系统的处理器,所述数据处理系统具有包括多个可分区端点PE的输入/输出I/O子系统,每个可分区端点具有相关联的PE号,所述多个PE中的每一个包括一个或者多个请求者,每个请求者具有相应的请求者ID,所述可分区端点PE是可以独立于I/O子系统的任何其他组件或者子组件而向逻辑分区LPAR分配的I/O子系统的任何组件或者子组件,所述处理器包括:
处理器核;以及
I/O主机桥,响应于接收到包括请求者ID和地址的I/O消息,通过参考来自第一数据结构的第一条目来确定受到所述I/O消息影响的PE的PE号,其中所述第一数据结构包括将请求者ID映射至PE号的多个条目;以及响应于确定所述PE号,通过利用所述PE号作为索引来访问所述I/O主机桥中的第二数据结构的第二条目,以及通过引用在所述第二数据结构中的所访问条目来验证所述地址,以及其中所述I/O主机桥响应于所述地址的成功验证,提供由所述I/O消息指示的服务。
14.根据权利要求13所述的处理器,其中所述I/O消息是直接存储器访问请求(DMA)请求。
15.根据权利要求13所述的处理器,其中所述I/O主机桥包括PCI主机桥。
16.根据权利要求13所述的处理器,其中:
所述第一数据结构驻留在所述数据处理系统的系统存储器中;
所述I/O主机桥包括来自系统存储器的所述第一数据结构的条目的高速缓存;以及
所述I/O主机桥通过访问所述高速缓存中的所述第一条目确定所述PE号。
17.根据权利要求13所述的处理器,其中:
所述第二数据结构保持与所述PE号相关联的多个条目;以及
所述I/O主机桥通过参考所述地址中的索引来从与所述PE号相关联的所述多个条目中选择所述第二条目。
18.根据权利要求13所述的处理器,进一步包括:包括所述处理器核和所述I/O主机桥的集成电路芯片。
CN201180036929.4A 2010-08-04 2011-07-29 确定受i/o消息影响的一个或者多个可分区端点 Active CN103038756B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/849,958 US20120036302A1 (en) 2010-08-04 2010-08-04 Determination of one or more partitionable endpoints affected by an i/o message
US12/849,958 2010-08-04
PCT/EP2011/063134 WO2012016931A1 (en) 2010-08-04 2011-07-29 Determination of one or more partitionable endpoints affected by an i/o message

Publications (2)

Publication Number Publication Date
CN103038756A CN103038756A (zh) 2013-04-10
CN103038756B true CN103038756B (zh) 2016-04-27

Family

ID=44629800

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180036929.4A Active CN103038756B (zh) 2010-08-04 2011-07-29 确定受i/o消息影响的一个或者多个可分区端点

Country Status (5)

Country Link
US (2) US20120036302A1 (zh)
EP (1) EP2569702B1 (zh)
JP (1) JP5431621B2 (zh)
CN (1) CN103038756B (zh)
WO (1) WO2012016931A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122413B2 (en) * 2013-08-15 2015-09-01 International Business Machines Corporation Implementing hardware auto device operations initiator
CN105335320B (zh) * 2014-08-14 2020-05-15 恩智浦美国有限公司 具有可动态配置的端点分配的usb设备
US9678892B2 (en) 2015-09-01 2017-06-13 International Business Machines Corporation Flexible I/O DMA address allocation in virtualized systems
US10133504B2 (en) * 2016-04-06 2018-11-20 Futurewei Technologies, Inc. Dynamic partitioning of processing hardware
US10169185B1 (en) * 2017-08-12 2019-01-01 International Business Machines Corporation Efficient testing of direct memory address translation
JP7003752B2 (ja) * 2018-03-13 2022-01-21 日本電気株式会社 データ転送装置、データ転送方法、プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983185A (zh) * 2005-12-12 2007-06-20 国际商业机器公司 在操作系统实例中共享输入/输出适配器的方法和系统

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0973436A (ja) 1995-09-05 1997-03-18 Mitsubishi Electric Corp 多重化計算機における動作モード切替方式
US5961623A (en) 1996-08-29 1999-10-05 Apple Computer, Inc. Method and system for avoiding starvation and deadlocks in a split-response interconnect of a computer system
TW384445B (en) 1997-04-11 2000-03-11 Ibm Method for bursting processor data to or from an I/O device
JPH11232213A (ja) 1998-02-13 1999-08-27 Nec Corp 入出力装置におけるデータ転送方式
US7007126B2 (en) 1998-02-13 2006-02-28 Intel Corporation Accessing a primary bus messaging unit from a secondary bus through a PCI bridge
JP3125739B2 (ja) 1998-02-17 2001-01-22 日本電気株式会社 バススイッチ
US6611891B1 (en) 1998-11-23 2003-08-26 Advanced Micro Devices, Inc. Computer resource configuration mechanism across a multi-pipe communication link
US6618782B1 (en) 1998-11-23 2003-09-09 Advanced Micro Devices, Inc. Computer interconnection bus link layer
US6405276B1 (en) 1998-12-10 2002-06-11 International Business Machines Corporation Selectively flushing buffered transactions in a bus bridge
US6330631B1 (en) 1999-02-03 2001-12-11 Sun Microsystems, Inc. Data alignment between buses
TW501017B (en) 2000-04-05 2002-09-01 Via Tech Inc Processing method, chip set and controller for supporting message signaled interrupt
US6629162B1 (en) * 2000-06-08 2003-09-30 International Business Machines Corporation System, method, and product in a logically partitioned system for prohibiting I/O adapters from accessing memory assigned to other partitions during DMA
US6643727B1 (en) * 2000-06-08 2003-11-04 International Business Machines Corporation Isolation of I/O bus errors to a single partition in an LPAR environment
JP2002014878A (ja) 2000-06-30 2002-01-18 Toshiba Corp 計算機システムおよびその保守管理方法
US6738836B1 (en) 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
US6647453B1 (en) 2000-08-31 2003-11-11 Hewlett-Packard Development Company, L.P. System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system
US6983339B1 (en) 2000-09-29 2006-01-03 Intel Corporation Method and apparatus for processing interrupts of a bus
JP2002269029A (ja) 2001-03-07 2002-09-20 Nec Corp 高信頼性情報処理装置及びそれに用いる情報処理方法並びにそのプログラム
US7315911B2 (en) 2005-01-20 2008-01-01 Dot Hill Systems Corporation Method for efficient inter-processor communication in an active-active RAID system using PCI-express links
US6807599B2 (en) 2001-10-15 2004-10-19 Advanced Micro Devices, Inc. Computer system I/O node for connection serially in a chain to a host
JP2004030161A (ja) 2002-06-25 2004-01-29 Hitachi Ltd コンピュータシステムにおける割り込み制御方法、コンピュータシステム、半導体集積回路、及びプログラム
US7581033B2 (en) 2003-12-05 2009-08-25 Unisys Corporation Intelligent network interface card (NIC) optimizations
US20060010276A1 (en) * 2004-07-08 2006-01-12 International Business Machines Corporation Isolation of input/output adapter direct memory access addressing domains
US7398427B2 (en) 2004-07-08 2008-07-08 International Business Machines Corporation Isolation of input/output adapter error domains
US20060010277A1 (en) 2004-07-08 2006-01-12 International Business Machines Corporation Isolation of input/output adapter interrupt domains
US7136954B2 (en) 2005-01-31 2006-11-14 International Business Machines Corporation Data communication method and apparatus utilizing credit-based data transfer protocol and credit loss detection mechanism
US7886086B2 (en) * 2005-02-03 2011-02-08 International Business Machines Corporation Method and apparatus for restricting input/output device peer-to-peer operations in a data processing system to improve reliability, availability, and serviceability
US7308551B2 (en) * 2005-02-25 2007-12-11 International Business Machines Corporation System and method for managing metrics table per virtual port in a logically partitioned data processing system
US7475166B2 (en) * 2005-02-28 2009-01-06 International Business Machines Corporation Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request
US7293129B2 (en) * 2005-04-22 2007-11-06 Sun Microsystems, Inc. Flexible routing and addressing
US7574536B2 (en) * 2005-04-22 2009-08-11 Sun Microsystems, Inc. Routing direct memory access requests using doorbell addresses
US20060288130A1 (en) * 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US8725914B2 (en) 2006-08-28 2014-05-13 International Business Machines Corporation Message signaled interrupt management for a computer input/output fabric incorporating platform independent interrupt manager
US20080126617A1 (en) 2006-08-28 2008-05-29 Sean Thomas Brownlow Message Signaled Interrupt Management for a Computer Input/Output Fabric Incorporating Dynamic Binding
US7506084B2 (en) * 2006-10-17 2009-03-17 International Business Machines Corporation Method for communicating with an I/O adapter using cached address translations
US7571273B2 (en) * 2006-12-06 2009-08-04 International Business Machines Corporation Bus/device/function translation within and routing of communications packets in a PCI switched-fabric in a multi-host environment utilizing multiple root switches
US7660933B2 (en) 2007-10-11 2010-02-09 Broadcom Corporation Memory and I/O bridge
US8171230B2 (en) * 2007-12-03 2012-05-01 International Business Machines Corporation PCI express address translation services invalidation synchronization with TCE invalidation
JP5217929B2 (ja) 2008-11-13 2013-06-19 ソニー株式会社 割込検出装置および情報処理システム
US8321615B2 (en) 2009-12-18 2012-11-27 Intel Corporation Source core interrupt steering
US8495271B2 (en) 2010-08-04 2013-07-23 International Business Machines Corporation Injection of I/O messages
US8549202B2 (en) 2010-08-04 2013-10-01 International Business Machines Corporation Interrupt source controller with scalable state structures
US8261128B2 (en) 2010-08-04 2012-09-04 International Business Machines Corporation Selection of a domain of a configuration access

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983185A (zh) * 2005-12-12 2007-06-20 国际商业机器公司 在操作系统实例中共享输入/输出适配器的方法和系统

Also Published As

Publication number Publication date
JP5431621B2 (ja) 2014-03-05
JP2013539098A (ja) 2013-10-17
US20120036302A1 (en) 2012-02-09
EP2569702A1 (en) 2013-03-20
CN103038756A (zh) 2013-04-10
WO2012016931A1 (en) 2012-02-09
US9569392B2 (en) 2017-02-14
US20120203934A1 (en) 2012-08-09
EP2569702B1 (en) 2013-10-16

Similar Documents

Publication Publication Date Title
US7797466B2 (en) Data processing system for keeping isolation between logical partitions
US7681083B2 (en) Isolation of input/output adapter error domains
US6725284B2 (en) Logical partition hosted virtual input/output using shared translation control entries
CN101165676B (zh) 隔离数据处理系统的多个输入/输出适配器单元的方法和系统
US7734843B2 (en) Computer-implemented method, apparatus, and computer program product for stalling DMA operations during memory migration
US7908457B2 (en) Retaining an association between a virtual address based buffer and a user space application that owns the buffer
US7492723B2 (en) Mechanism to virtualize all address spaces in shared I/O fabrics
CN103038756B (zh) 确定受i/o消息影响的一个或者多个可分区端点
US20060195644A1 (en) Interrupt mechanism on an IO adapter that supports virtualization
JP4405435B2 (ja) 動的なホスト区画ページ割り当てのための方法および装置
US8521939B2 (en) Injection of I/O messages
US20060010276A1 (en) Isolation of input/output adapter direct memory access addressing domains
US7941568B2 (en) Mapping a virtual address to PCI bus address
US7266631B2 (en) Isolation of input/output adapter traffic class/virtual channel and input/output ordering domains
US8139595B2 (en) Packet transfer in a virtual partitioned environment
US20060010277A1 (en) Isolation of input/output adapter interrupt domains
US9336029B2 (en) Determination via an indexed structure of one or more partitionable endpoints affected by an I/O message
US9678887B2 (en) Flexible I/O DMA address allocation in virtualized systems

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