首页> 中国专利> 确定受I/O消息影响的一个或者多个可分区端点

确定受I/O消息影响的一个或者多个可分区端点

摘要

一种数据处理系统,包括:处理器核;系统存储器(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消息指示的服务。

著录项

  • 公开/公告号CN103038756A

    专利类型发明专利

  • 公开/公告日2013-04-10

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201180036929.4

  • 发明设计人 S·瑟伯;E·N·莱斯;

    申请日2011-07-29

  • 分类号G06F13/28;G06F13/40;

  • 代理机构北京市金杜律师事务所;

  • 代理人酆迅

  • 地址 美国纽约阿芒克

  • 入库时间 2024-02-19 18:33:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-04-27

    授权

    授权

  • 2013-05-08

    实质审查的生效 IPC(主分类):G06F13/28 申请日:20110729

    实质审查的生效

  • 2013-04-10

    公开

    公开

说明书

技术领域

本发明概括地涉及数据处理,以及具体地,涉及在数据处理系 统中的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可以由IBM eServer实现,IBM eServer是纽 约阿芒克的国际商业机器公司的产品线。在备选实施方式中,可以 使用具有单处理器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(诸如,网络适配器、存储 设备控制器、外围适配器等)可以直接连接或者间接耦合至此。例 如,PCI IOA130a可选地通过I/O架构124a来耦合至PCI本地总线 122a,其可以包括一个或者多个交换机和/或桥接设备。类似地,PCI IOA130k和1301可选地通过I/O架构124k耦合至PCI本地总线 122k,PCI IOA130m可选地通过I/O架构124m耦合至PCI本地总 线122m,以及PCI IOA130v和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的相应的实例, 其可以利用例如初始引导代码(boot strap code)、IEEE-1275标准 开放固件和运行时抽象软件(RTAS)的结合来实现。当LPAR 210a-210p被启动时,引导代码的副本由系统固件204加载到分区 210a-210p上。因而,系统固件204向引导代码转移控制,其继而加 载开放固件和RTAS。被指派给每个LPAR210的处理器102继而执 行该LPAR210的分区固件214,以启动(bring up)LPAR210并发 起OS实例212的执行。

在图2绘出的被逻辑分区的环境中,服务处理器140可以用于 提供各种服务,诸如处理LPAR210a-210p中的错误。这些服务还充 当服务代理,向数据处理系统200的系统管理员或者提供者返回报 告错误。不同LPAR210的操作可以进一步通过硬件管理控制台220 来控制。在至少一个实施方式中,硬件管理控制台220可以实现为 独立于系统管理器(该系统管理器可以在数据处理系统200内执行 各种功能)的数据处理系统,该功能包括创建和析构LPAR210以及 在LPAR210之间重新分配硬件和软件资源。

在诸如图2绘出的被逻辑分区的环境中,不允许一个LPAR210 中的硬件和软件资源来消费在另一LPAR210中的资源或者影响在 另一LPAR210中的操作。此外,有用的是,向LPAR210指派资源 需要精细的粒度。例如,通常不能接受将特定PHB120下的全部IOA 130指派给相同分区,这是由于那样将会限制系统的可配置能力(包 括在分区之间动态重新分配资源的能力)。因而,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和PE 350c各自包括单一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,其选择用于访问的特定TVE 404。一旦选择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地址比特与所选择TVE 404的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组件(诸如,IOA 130、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比特PCI RID410)与PE相关联。RT500 可以在PHB120中实现,或者优选地,在诸如系统存储器116的片 外存储位置实现。在其中RTT500在片外实现的实施方式中,PHB 120可选地包括小的片上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处由肯定确定所指示,则PHB 120将DMA地址540转换为系统存储器116中的真实地址(框612)。 在一个实施方式中,PHB120通过参考利用由一地址指向的特定TCE 的存储器中的TCE表格560来执行地址转换,该地址通过结合所选 择TVE512的TCE表开始地址字段548的内容与在PEI514和n个 低阶地址比特之间的DMA地址540的中阶比特来形成。继而,PHB 120通过使用由地址转换获得的系统存储器(例如,真实)地址,来 向目标系统存储器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。作为响应,PHB 400利用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比特PCI RID410的每个可 能的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错误消息包。PHB 120利用I/O错误包的RID410来访问特定RTE502,或者从RTC504 (如果存在)或者从RTT500进行(框904)。所访问的RTE502 指定PE#,其中PHB120将其用作访问PELT800的直接索引(框 906)。应当注意,由于可以获得到PELT800的直接索引,因而不 必在昂贵的CAM中实现PELT800。

接着,在框908中,PHB120通过检查在PELT800的所选择PELE 802的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。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号