掌桥专利:专业的专利平台
掌桥专利
首页

背景技术

本公开总体涉及处理器,更具体地涉及用于改变或移除信息处理系统内的地址转换的方法和系统,包括对具有多个处理器的系统中的地址转换无效指令的处理。

常规计算机通常包括能够存储不同类型的数据(诸如用于将虚拟地址转换成物理地址的数据)的多个处理器。数据可以广泛地分布并且存储在整个系统的不同处理器上。为了改进虚拟存储器转换性能,大多数现代微处理器部署某种形式的地址转换高速缓存或缓冲器。用于存储器转换的最常见硬件构造是转换后备缓冲器(TLB)。当例如由于页重新映射或页替换而改变或移除虚拟页的地址转换时,也应移除包含地址转换的高速缓存或缓冲器条目。在大多数现代微处理器中,该过程是软件控制的并且由地址转换缓冲器无效指令执行。如果处理器需要使跨处理器网络系统的地址转换信息无效,则计算机可引起性能降低。即,当处理器需要经历涉及网络中的多个处理器的无效过程时,处理地址转换缓冲器无效指令的时延增加。大型对称多处理器(SMP)配置中的地址转换缓冲器无效指令的执行性能(吞吐率和平均时延)可能是系统瓶颈。

发明内容

给出本公开的概述以帮助理解移除和/或改变系统内的地址转换高速缓存/缓冲器中的地址转换的计算机系统、计算机架构结构、处理器和方法,并且不旨在限制本公开或本发明。本公开针对本领域普通技术人员。应理解,本公开的各个方面和特征在一些情况下可以有利地单独使用,或在其他情况下与本公开的其他方面和特征组合使用。照此,可以对计算机系统、架构结构、处理器以及它们的操作方法进行变化和修改以实现不同的效果。

在一个或多个实施例中,公开了一种信息处理系统,其具有通过跨处理器网络连接的多个处理器,其中,多个处理器中的每个处理器包括:一个或多个地址转换缓冲器,每个地址转换缓冲器具有包括地址转换信息的多个地址转换条目;过滤器结构体,具有标识专门分配给该处理器的逻辑分区标识(LPID)的传出过滤器列表。在一个或多个实施例中,系统在操作中被设计和配置为:在处理系统中的多个处理器之一中发布具有LPID的地址转换无效指令;检查发布地址转换无效指令的处理器中的传出过滤器列表;确定地址转换无效指令的LPID是否与传出过滤器列表中的LPID中的任何一个匹配;以及至少部分响应于地址转换无效指令的LPID与传出过滤器列表中的LPID中的任何一个匹配,代表系统确认转换指令无效指令。

在一个或多个实施例中,公开了一种信息处理系统,其具有通过跨处理器网络连接的多个处理器,其中,多个处理器中的每个处理器包括一个或多个地址转换缓冲器,每个地址转换缓冲器具有包括地址转换信息的多个条目;以及过滤器结构体,具有标识分配给该处理器和系统中的至少一个其他处理器的逻辑分区标识(LPID)的传入过滤器。在一个实施例中,系统在操作中被设计和配置为:在处理系统中的多个处理器之一中发布地址转换无效指令;将地址转换无效指令从发布地址转换无效指令的处理器发出到系统中的其他处理器;针对系统中除发布地址转换无效指令的处理器外的处理器中的每个处理器,确定地址转换无效指令的LPID是否与相应处理器传入过滤器列表中的LPID中的任何一个匹配;以及响应于地址转换无效指令的LPID与传入过滤器列表中的LPID中的任何一个匹配,将地址转换无效指令发送到有具有与传入过滤器列表上的LPID匹配的LPID的传入过滤器的处理器中。在一方面,系统在操作中进一步被设计和配置为:在地址转换无效指令的LPID匹配传入过滤器上的LPID的处理器中的转换缓冲器内,检查对应于地址转换无效指令的地址转换条目;以及响应于在其传入过滤器中具有匹配地址转换无效指令的所述LPID的LPID的每个处理器内完成检查,代表相应处理器确认地址转换无效指令。在实施例中,系统在操作中进一步被设计和配置为响应于地址转换无效指令的LPID与传入过滤器列表中的任何LPID不匹配而代表相应处理器确认地址转换无效指令。

根据一个或多个实施例,公开了一种信息处理系统,其具有通过跨处理器网络连接的多个处理器,其中,多个处理器中的每个处理器包括:一个或多个地址转换缓冲器,每个地址转换缓冲器具有包括地址转换信息的多个地址转换条目;以及过滤器结构体,具有标识专门分配给该处理器的逻辑分区标识(LPID)的传出过滤器列表,并且,系统包括一个或多个计算机可读存储介质;以及存储在所述一个或多个计算机可读存储介质上的用于由多个处理器中的至少一个处理器执行的程序指令,程序指令在操作中使系统:在处理系统中的多个处理器之一中发布具有LPID的地址转换无效指令;检查发布地址转换无效指令的处理器中的传出过滤器列表;确定地址转换无效指令的LPID是否匹配传出过滤器列表中的LPID中的任何一个;以及至少部分响应于地址转换无效指令的LPID匹配传出过滤器列表中的LPID中的任何一个,代表系统确认转换指令无效指令。在实施例中,系统具有在操作中使系统执行以下操作的进一步程序指令:在发布地址转换无效指令的处理器中的一个或多个转换缓冲器内检查对应于地址转换无效指令的地址转换条目。系统在操作中进一步被设计和配置为:响应于地址转换无效指令的LPID不匹配传出过滤器中的LPID中的任何一个,将地址转换无效指令从发布地址转换无效指令的处理器发送出;以及在跨处理器网络上将地址转换无效指令流传到系统中除发布地址转换无效指令的处理器外的其他处理器。

公开了一种信息处理系统,其具有通过跨处理器网络连接的多个处理器,其中,多个处理器中的每个处理器包括:一个或多个地址转换缓冲器,每个地址转换缓冲器具有包括地址转换信息的多个条目;以及过滤器结构体,具有标识分配给该处理器和系统中的至少一个其他处理器的逻辑分区标识(LPID)的传入过滤器列表。在一方面,系统在操作中被设计和配置为:在处理系统中的多个处理器之一中发布地址转换无效指令;将地址转换无效指令从发布地址转换无效指令的处理器发出到系统中的其他处理器;针对系统中除发布地址转换无效指令的处理器外的每个处理器,确定地址转换无效指令的LPID是否与相应处理器的传入过滤器列表中的LPID中的任何一个匹配;以及响应于地址转换无效指令的LPID与传入过滤器列表中的LPID中的任何一个匹配,将地址转换无效指令发送到有具有与传入过滤器列表上的LPID匹配的LPID的传入过滤器的处理器中。

从以下如附图所示的本发明的说明性实施例的更具体的描述中,本发明的前述和其他目的、特征和优势将是显而易见的,其中相同的附图标记通常表示本发明的示例性实施例的相同部分。然而,本发明不应局限于这些说明性实例。

附图简要说明

当结合所提供的附图阅读时,将更好地理解计算机系统、计算机架构结构、处理器及其操作方法的各个方面、特征和实施例。出于说明计算机系统、计算机架构结构、处理器及其操作方法的方面、特征和/或不同实施例的目的,在图中提供了实施例,但是权利要求不应限于所示的精确布置、结构、组件、子组件、系统、特征、方面、实施例、方法、过程或装置,并且所示的布置、结构、组件、子组件、系统、特征、方面、方法、过程、实施例和装置可以单独地或与其他布置、结构、组件、子组件、系统、特征、方面、实施例、方法、过程和装置组合地使用。

图1是示出根据本公开的一个或多个实施例的计算机系统的功能框图。

图2是示出根据本公开的一个或多个实施例的被配置为处理指令的系统的功能框图。

图3是示出了根据本公开的一个或多个实施例的具有被配置为处理指令的多个处理器的计算机系统的简化功能框图。

图4是示出TLBie过滤器的简图。

图5是示出用于在系统的处理器中处理TLBie指令的TLBie过滤器的简化图。

图6是示出用于在系统的处理器中处理TLBie指令的TLBie过滤器的简化图。

图7是示出处理指令以移除系统中的一个或多个转换缓冲器中的转换的方法的流程图。

具体实施方式

以下描述是为了说明本发明的一般原理而进行的,并且不意味着限制在此要求保护的发明概念。在以下详细描述中,阐述了许多细节以便提供对计算机系统、计算机架构结构、处理器及其操作方法的理解,然而,所属领域的技术人员将理解,计算机系统、计算机架构结构、处理器及其操作方法的不同和许多实施例可以在没有那些特定细节的情况下实践,且权利要求书和披露内容不应限于本文中具体描述和显示的实施例、布置、组件、子组件、系统、特征、过程、方法、方面、装置和/或细节。进一步,本文中所描述的特定特征可以与不同可能的组合和置换中的每一者中的其他所描述特征组合使用。

除非本文中另外特别限定,否则所有术语将被给予它们的最广泛的可能解释,包括从说明书中暗示的含义以及本领域技术人员所理解的含义和/或如在词典、论文等中限定的含义。还必须注意的是,如在说明书和所附权利要求中使用的,单数形式“一个”、“一种”和“该”包括复数指示物,除非另外指明,并且术语“包括”和/或“包含”当在本说明书中使用时指定所述特征、整体、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、部件和/或其组合的存在或添加。

以下讨论省略或仅简要描述信息处理系统的常规特征,包括处理器和微处理器系统和架构,其对本领域技术人员是显而易见的。假定本领域技术人员熟悉处理器的一般架构,尤其是熟悉包括大型对称多处理器(SMP)配置的处理器网络,所述SMP配置通常具有若干较小芯片多处理器(CMP),其中每一此类芯片多处理器(例如,CMP)可含有经由芯片上网络架构连接的多达数百个处理器内核和部署转换高速缓存的加速器单元。要注意的是,编号的元件是按元件在其中被介绍的示图来编号的,在后续示图中一般是通过该编号来指代。

例如大型对称多处理器(SMP)配置的复杂计算机系统通常具有若干较小芯片多处理器(CMP)。每个芯片多处理器(CMP)可以包含经由片上网络架构连接的数百个处理器和部署转换高速缓存的其他加速器。通常通过使用片外链路或网络适配器的跨芯片网络来连接CMP,以形成大型SMP。在一个或多个实施例中,为了减少时延并提高性能和吞吐量,跨芯片网络适配器中最好包括TLBie过滤器,优选地,跨芯片网络适配器中存在硬件TLBie过滤器。在一个或多个实施例中,当创建、移除和/或向硬件线程重新分配分区时,遵循协议使用TLBie过滤器。在实施例中,TLBie过滤器包含传出过滤器列表,所述传出过滤器列表维护该CMP的而不是系统中其他CMP的内部的所有逻辑分区的逻辑分区标识(LPID)。在实施例中,TLBie过滤器包括跟踪跨多个CMP存在的所有LPID的传入过滤器列表,并且来自这个托管CMP的至少一个线程或加速器内容属于该分区。通过使用传出的TLBie过滤器列表和传入的TLBie过滤器列表,提高了性能,因为不需要针对每个CMP搜索要被移除和无效的转换。

图1是示出计算机系统10的功能框图。系统10包括计算机152形式的自动计算机器的示例。

计算机152可以包括处理器156或中央处理单元(“CPU”)以及随机存取存储器168(“RAM”),该随机存取存储器经由高速存储器总线166和总线适配器158连接至处理器156和计算机152的其他部件。为了简单起见,图1仅示出了与计算机152包括在一起的一个处理器156;然而,应注意,计算机152可以包括多于一个处理器,例如如图2所示的处理器156A、处理器156B到处理器156N(其中N可以是任何数)。应注意,处理器156A、处理器156B到处理器156N各自包括处理器156的一个或多个方面。在一些实施例中,RAM 168可以是嵌入式动态随机存取存储器(eDRAM)。在一些实施例中,RAM 168可以由处理器156上的单元(如处理内核)经由前侧总线162和/或结构总线212利用。

处理器156可实施为多片处理器。术语“多片”可以指具有多个相似或相同的组件集合的处理器,其中,每个组件集合可以独立于所有其他集合或者与一个或多个其他集合协同操作。

尽管处理器156被示出为通过前侧总线162、总线适配器158、以及高速存储器总线166耦合至RAM 168,但本领域普通技术人员将认识到,这种配置仅是示例实现,并且可以使用将处理器156耦合至系统10的其他部件的其他配置。例如,在一些实施例中,处理器156可以包括被配置为用于直接耦合至存储器总线166的存储器控制器。然而,在其他实施例中,处理器156可支持直接外围连接,如快速外围组件互连(“PCIe”)连接等。

操作系统154可存储在计算机152的RAM 168中。在被配置用于处理器的操作的计算机中有用的操作系统可以包括UNIX

计算机152可以包括通过扩展总线160和总线适配器158耦合到处理器156和计算机152的其他部件的磁盘驱动器适配器172。盘驱动器适配器172可以以盘驱动器170的形式将非易失性数据存储器连接到计算机152。盘驱动器适配器可以包括集成驱动电子器件(‘IDE’)适配器、小型计算机系统接口(‘SCSI’)适配器和本领域普通技术人员已知的其他适配器。非易失性计算机存储器也可实施为光盘驱动器、电可擦除可编程只读存储器(所谓的‘EEPROM’或‘快闪’存储器)、RAM驱动器和本领域普通技术人员已知的其他驱动器。

计算机152可以包括一个或多个输入/输出(“I/O”)适配器178。I/O适配器178可以通过例如软件驱动器和计算机硬件实现面向用户的输入/输出,用于控制到显示设备(诸如计算机显示屏)的输出以及来自用户输入设备181(诸如键盘和鼠标)的用户输入。计算机152可以包括视频适配器209,其是特别设计用于图形输出到显示设备180(诸如显示屏或计算机监视器)的I/O适配器的实例。视频适配器209通过高速视频总线164、总线适配器158以及前侧总线162连接到处理器156,前侧总线162也可以是高速总线。I/O适配器178还可以包括COMM和驱动器适配器。I/O适配器178还可以是其中连接了所有I/O的PCI Express。

计算机152可以包括用于与其它计算机182进行数据通信并且用于与数据通信网络100进行数据通信的通信适配器167。此类数据通信可以通过RS-232连接、通过外部总线(如通用串行总线(“USB”)、通过数据通信网络(如IP数据通信网络))、和以本领域普通技术人员已知的其他方式串行地进行。通信适配器167可实现数据通信的硬件级,通过该硬件级,一个计算机直接地或通过数据通信网络100将数据通信发送到另一计算机。通信适配器167的示例可以包括用于有线拨号通信的调制解调器、用于有线数据通信的以太网(IEEE802.3)适配器和用于无线数据通信的802.11适配器。

图1中示出的计算机和其他设备的布置用于说明而非限制。根据本公开的各个实施例有用的数据处理系统可以包括附加的服务器、路由器、其他设备和对等架构。此类数据处理系统中的网络可以支持许多数据通信协议,包括例如TCP(传输控制协议)、IP(互联网协议)、HTTP(超文本传输协议)、WAP(无线接入协议)、HDTP(手持设备传输协议)和本领域普通技术人员已知的其他数据通信协议。除了在图1中示出的那些硬件平台之外,本公开的各种实施方式可在各种硬件平台上实施。

图2是例示SMP 10的功能框图,SMP 10被表示为多个处理器,也称为芯片多处理器(CMP)156A、156B至156N(其中N可以是任何数),SMP 10被配置成处理指令,并且具体地,被配置成实践从计算机系统内的高速缓存移除地址转换以改善性能的本公开的实施例。为了清楚起见,相对于处理器(CMP)156A描述在图2中示出的本公开的实施方式。然而,此讨论并非旨在限于或限制到仅仅处理器(CMP)156A及其相应功能单元的特征;相反,处理器(CMP)156A的全部或一些特征和/或功能单元可同等地适用于处理器(CMP)156B到处理器(CMP)156N及其相应功能单元。例如,通信结构204A的特征可以被包括在通信结构204B到通信结构204N中的每一个中。

在一个或多个实施例中,处理器(CMP)156A包括功能单元,如转换后备缓冲器(“TLB”—translation lookaside buffer)202A、性能管理单元(“PMU”)206A、一个或多个内核和/或高速缓存208A、对称多处理(“SMP”)互连210A(也称为跨芯片网络适配器210A)、加速器单元(“AU”)214A、以及存储器管理单元(“MMU”)216A,每个耦合至通信结构204A。在一个或多个实施例中,处理器(CMP)156A还包括段后备缓冲器(“SLB”—segment lookasidebuffer)(未示出)和/或在用中的记分板(“IUSB”)(未示出)。通信结构204A(也称为CMP结构204A)被配置成用于在单元、连接器与处理器(CMP)156A上的存储器之间传输消息(例如,信号、信息等)。在一个或多个实施例中,在同一半导体裸片上或在多个互连裸片上实现TLB202A、PMU 206A、一个或多个内核和/或高速缓存208A、SMP互连210A、通信(CMP)结构204A、AU214A和MMU 216A。在一个或多个方面中,SLB和IUSB经由通信(CMP)结构204A耦合到处理器(CMP)156A的一个或多个其他功能单元。在一个或多个方面,SLB和IUSB利用同一半导体管芯上或多个互连管芯上的一个或多个其他功能单元来实现。

SMP互连210A(也称为跨处理器/芯片链路适配器或跨处理器/芯片网络适配器210A)被配置成允许附加处理器(诸如处理器(CMP)156B至156N)连接至处理器(CMP)156A,由此增加计算能力。在实施例中,SMP链路或互连210A经由结构总线或跨处理器/芯片网络212将处理器(CMP)156A连接至处理器(CMP)156B至156N。结构总线212连接可以包括更高的带宽并且提供更低的时延。结构总线或跨处理器/芯片网络212可以允许高速缓存一致性流量和数据流量通过不同的网络连接流动。在一个或多个实施例中,结构总线或跨处理器(跨芯片)网络212可以是允许处理器(CMP)(例如,处理器156A、156B至156N)之间的通信的任何类型的通信结构和/或连接和协议的任何组合。例如,结构总线212可以是使处理器(CMP)156A、156B至156N互连的总线或链路(例如,交叉链路)。

通信(CMP)结构204A可以是本领域普通技术人员已知的任何类型的通信结构,其允许处理器(CMP)156A中的不同单元、存储器和互连之间的通信。通信CMP结构204A也可为乱序片上总线,其中事务(例如,签入请求/响应事务、结账请求/响应事务和无效事务)作为包在乱序片上总线上传输。在一个或多个实施例中,该一个或多个内核和/或高速缓存208A可以包括一个或多个处理器内核以及其在处理器(CMP)156A上的一级(“L1”)高速缓存、二级(“L2”)高速缓存、和/或最后一级高速缓存(“LLC”)。L1高速缓存、L2高速缓存和LLC可以以任意配置布置。例如,L1高速缓存可以是分割指令和数据高速缓存,L2高速缓存可以是共享高速缓存,并且LLC可以是私有高速缓存。在另一示例中,L1高速缓存可以包括私有L1指令和数据高速缓存,L2高速缓存可以是私有的或者与另一内核共享,并且LLC可以是私有的或者共享的高速缓存。所述一个或多个处理器内核被配置为读取和执行程序指令。

PMU 206A可被配置为分析处理器(CMP)156A的性能和处理器或CMP156A的存储。例如,PMU 206A可以分析时钟周期和/或高速缓存命中和高速缓存未命中的数量。

在一个或多个实施例中,处理器(CMP)156A包括至少一个存储器管理单元(MMU)216A、加速器单元(AU)214A和直接存储器访问(DMA)控制器(未示出)。在一个或多个实施例中,MMU 216A是处理器(CMP)156A上的单元,其管理存储器,包括通过提供地址转换来促进对存储器的访问。AU 214A被配置成在外部处理元件与处理器(CMP)156A内的元件之间提供接口,包括提供对计算机152上的RAM 168中的位置、处理器(CMP)156A上的内核和/或高速缓存208A、或计算机152中或连接到计算机152的其他存储器位置的访问。在一些实施例中,AU 214A可包括一致性加速器处理器接口、图形加速接口、密码接口和流接口。处理器(CMP)156A的AU 214A可为可执行特定计算功能(例如加密、解密、压缩或解压缩)的专用硬件。MMU216A可以代表AU 214A向内核和/或高速缓存208A发出请求。也就是说,MMU 216A可以代表AU 202A执行存储器转移。

计算机系统中的地址转换通常包含访问不同地址转换数据结构。一种称为页表的这样的结构包括多个称为页表条目(PTE)的条目,其逐页地映射虚拟地址。页表通常存储在主存储器中,而不是专用存储器中,这使得访问页表很慢。为了加速地址转换,被称为地址转换缓冲器的高速存储器(例如,TLB、SLB和/或IUSB)通常被用于将最近使用的地址转换存储在高速缓存/缓冲器条目中以用于快速访问。

TLB可以是映射到存储在TLB条目中的真实地址的虚拟地址的高速缓存。每个TLB条目可与TLB索引相关联,所述TLB索引标识TLB内的TLB(或页表条目(PTE))条目。例如,TLB索引4可指代TLB中的第四(或第五)条目。本领域普通技术人员已知的各种索引方案都可以用于TLB索引。SLB可以是映射到存储在SLB条目中的虚拟段标识符(VSID)的有效段标识符(ESID)的高速缓存。每个SLB条目与SLB索引相关联,SLB索引标识SLB内的SLB条目。例如,SLB索引4可指代SLB中的第四(或第五)条目。本领域普通技术人员已知的各种索引方案都可以用于SLB索引。IUSB(未示出)可以是存储映射到TLB索引(如果适用,映射到SLB索引)的ERAT索引的数据结构。IUSB跟踪SLB中的哪些条目和TLB存储已被利用来生成转换的转换当前被存储在处理器(CMP)156A的一个或多个高速缓存中。

为了改进地址转换,MMU 216A使用TLB 202A。TLB 202A为从MMU 216A接收的有效地址到真实地址(RA)映射的高速缓存。有效地址(EA)是由系统10中的元件和进程用于指代存储器位置的虚拟地址。真实地址(RA)是物理地址。在处理器(CMP)156A的操作期间,EA必须被转换成RA,以便处理器(CMP)156A访问所请求的数据。当接收到针对包含待转换地址的存储器存取的请求时,通常首先检查该处理器(CMP)156中的TLB 202。如果该地址被缓存在该TLB 202中,则将该地址转换提供给该处理器(CMP)156。如果地址不在该处理器的TLB202中,则用其他技术(例如,表行走)来转换该转换。

当地址转换缓冲器202(例如,TLB 202)或页表中的地址转换(例如,地址映射)不再有效时,系统将经历无效过程。通常,在整个系统中广播地址转换无效条目指令(例如,TLB无效条目(TLBie)指令),定位地址转换缓冲器/高速缓存,并且搜索转换缓冲器202(例如TLBS)中的每个条目,以确定它们是否具有与将要被无效的条目相匹配的条目。转换缓冲器无效(例如TLBie)指令定位其中映射了地址转换的存储(存储器)位置,其指示了与处理器(CMP)156相关联的数据。

更具体地,在被配置为SMP的系统的实施例中,每当任何处理器内核上的任何执行线程发出转换缓冲器(例如,TLB)无效条目(TLBie)指令时,通常相对应的控制包在结构总线212上跨整个系统被广播到每个处理器(CMP)156。在一方面,每个处理器(CMP)156在用于SMP网络的其SMP网络适配器210(也称为跨芯片链路适配器)上接收该包并且经由通信(CMP)结构204在处理器(CMP)156内广播至其组成处理器内核208和/或加速器单元214。当处理器(CMP)156中的每个处理器内核208和加速器单元214都已经确认了传入侦听(snoop)TLBie时,其它可被该处理器(CMP)156确认。当整个SMP系统10中的每个处理器(CMP)156A至156N都已经确认了TLBie时,则TLBie指令可在其执行线程处完成。在每个处理器(CMP)中和整个SMP系统中广播TLBie指令可导致TLBie指令的低吞吐量和时延,因为控制消息和确认消息两者都横贯每个处理器(CMP)156和横贯整个SMP系统10。

公开了一种减少从转换缓冲器移除地址转换和/或处理计算机网络系统(优选为SMP网络系统)中的转换缓冲器无效条目指令的处理努力的系统和/或过程,其在从缓冲器移除地址转换和/或处理转换无效条目指令时导致更高的吞吐量和更少的时延。在实施例中,过滤器结构体被用作改进地址转换缓冲器无效指令的处理的构建块。在一方面,转换缓冲器过滤器结构体(例如TLBie过滤器结构体)与由管理程序软件管理的逻辑分区感知系统范围方案一起使用。即,系统知道哪些逻辑分区标识(LPID)被分配给系统中的哪些处理器(CMP)。在实施例中,过滤器硬件是优选地是软件管理的目录结构。过滤器硬件结构优选地存在于跨处理器网络适配器(SMP互连)中,跨处理器网络适配器也被称为跨芯片网络适配器。在实施例中,当派生(分配)、移除和/或重新分配逻辑分区(LPID)至硬件线程时,过滤器与管理程序软件所遵循的协议关联地工作。在实施例中,进程和/或系统使用硬件结构以及优选地在管理程序(hypervisor)处的软件管理两者协作。

如果某逻辑分区的所有线程都包含在处理器(CMP)内,则在一个或多个实施例中,用于该逻辑分区标识(LPID)的地址转换无效指令不必发送出该处理器(CMP)或在其外部处理。在一个或多个实施例中使用一个或多个实施例中的传出过滤器列表,该传出过滤器列表标识和/或维护专用于该处理器(CMP)的逻辑分区标识(LPID)列表。即,传出过滤器列表标识在该处理器上且仅在该处理器上的所有逻辑分区。如果某逻辑分区也被分配给系统中的另一处理器,则该逻辑分区标识(LPID)将不在该处理器的传出过滤器列表上列出。

如果逻辑分区的线程分布在多个处理器(CMP)上,则仅包含该逻辑分区的线程的处理器(CMP)需要处理该逻辑分区标识(LPID)的转换无效。维护分配给该处理器(CMP)以及系统中至少一个其他处理器的合格LPID列表的传入过滤器列表,可被用于确定该处理器(CMP)是否具有该LPID。传入过滤器列表跟踪跨多个处理器存在的所有LPID,并且来自托管传入过滤器列表的处理器的至少一个线程或加速器上下文属于该分区。

这些传出过滤器和/或传入过滤器列表,优选地当针对系统中存在的所有逻辑分区协同工作时,将减少地址转换无效指令的处理时间,因为在一个或多个实施例中仅仅是需要处理该转换无效指令的处理器(CMP)执行该处理。在一个或多个实施例中,由管理程序软件实施的软件协议为跨SMP系统正确地执行地址转换无效指令而保持硬件过滤器结构体被更新。

图3示出了具有由跨处理器(或跨芯片)网络适配器210连接至跨处理器(跨芯片)网络或结构总线212的多个处理器(CMP)156的SMP系统10的简化框图的示例。每个处理器(CMP)156包括通过通信处理器(CMP)结构204互连的一个或多个处理器内核208和一个或多个加速器单元214。每个处理器(CMP)156进一步包括SMP互连或跨处理器链路网络适配器210,用于连接至互连多个处理器156的结构总线(或跨处理器网络)212。每个处理器156以及优选地每个处理器156中的每个跨处理器链路适配器210具有地址转换无效指令(例如TLBie)过滤器320。地址转换无效指令(例如TLBie)过滤器320优选地具有在与包含逻辑分区标识(LPID)的相应过滤器列表相关联的传出和传入方向上的过滤器。优选地与每个处理器156相关联的地址转换无效过滤器320具有传出过滤器列表322和传入过滤器列表324,如图4中所示。

传出过滤器列表322维护仅存在于关联处理器内部(在线程或加速器上下文上)而且不在系统中的其他处理器(CMP)的LPID的列表。即,传出过滤器列表322标识并包含该处理器(CMP)独有的LPID。在操作中,如下文通过处理地址转换缓冲器无效(例如TLBie)指令的示例所解释的那样,发布、起源/或传出转换缓冲器无效(例如TLBie)指令的LPID,被对照传出过滤器列表322进行检查,如果其与传出过滤器列表322中的LPID中的任何一个匹配,则由转换缓冲器无效(TLBie)过滤器320代表系统的剩余部分确认该指令,例如代表所有处理器(CMP)确认该指令,并且该转换缓冲器无效(TLBie)指令不在跨芯片网络212上发送出。

用图3的框图作为SMP系统10的示例,其中处理器(CMP)具有针对不同逻辑分区执行硬件线程或工作元素的处理器内核208或加速器单元214,并且,如图5所示,在处理器156A工作的示例中,线程上下文LPID=5和工作元素上下文LPID=5,并且LPID=5不与SMP系统10中的任何其他处理器156相关联,例如不存在于SMP系统10中的任何其他处理器156上,LPID=5包括在处理器(CMP)156A的TLBie过滤器320A中的传出LPID过滤器列表322A中。如图5中所示的处理器(CMP)156B和156C分别具有空TLBie过滤器320B和320C,而具有工作元素上下文LPID=8的CMP 156N在其传出过滤器322N中具有LPID=8。

在处理LPID=5的TLBie指令时,该TLBie指令在CMP结构204A上循环以检查处理器(CMP)156A中的处理器内内核208A和加速器单元214A。此外,要对照TLBie过滤器320A中的传出LPID过滤器列表322A中的LPID检查处理器(CMP)156A中具有LPID=5的TLBie,由于传出LPID过滤器列表322A具有LPID=5,所以TLBie过滤器320A代表SMP(以及每个CMP)确认该具有LPID=5的TLBie。TLBie过滤器320A能代表SMP系统10来确认,是因为传出TLBie过滤器列表322A上的LPID=5表明与该线程相关联的逻辑分区仅驻留在处理器(CMP)156A上,因此无需检查SMP系统10中的其他处理器(CMP)。

作为优选地与每个处理器(CMP)156相关联的TLBie过滤器320的一部分的传入过滤器列表324,跟踪存在于系统10中(即,存在于所有处理器(CMP)156中)的所有LPID以及存在于该特定处理器(CMP)上的所有LPID。更具体地,传入过滤器列表324包含该处理器(CMP)上的、并且也存在于系统10中的至少一个其他处理器156上的所有LPID。因此,例如,在图3的系统10的示例中,LPID存在于处理器(CMP)156A至处理器(CMP)156N上,例如被分配给LPID存在于处理器(CMP)156A至处理器(CMP)156N,TLBie过滤器320A至320N如图6中所示,其中,TLBie过滤器320A在传入TLBie过滤器列表324A中具有LPID=8且在传出TLBie过滤器322A中具有LPID=5,表明该LPID 5是处理器(CMP)156A独有的,并且,处理器(CMP)156A也具有LPID8。TLB过滤器320B和320C两者在哪一个过滤器列表322B、322C、324B或324C中都没有条目,表明尚无逻辑分区被分配给处理器(CMP)156B和156C。TLBie过滤器320N在传入TLBie过滤器列表324N中具有LPID=8,而在传出TLBie过滤器322N中没有条目,表明LPID 8被分配给CMP 156N且该LPID 8也在系统中的其他处理器(CMP)上。

考察这样的情形:具有LPID=8的某TLBie在如图3中所配置的且具有如由图6中的过滤器320所指示的、分配给不同处理器(CMP)的LPID的系统10中被处理,该TLBie例如在处理器(CMP)156A中发布或起源,该TLBie在处理器(CMP)156A和156N内进行内部处理,而TLBie过滤器320B和320C代表整个相应处理器(CMP)156B和156C进行确认。更具体地,起源自处理器(CMP)156A的具有LPID=8的TLBie在其起源(检查处理器内核208A和加速器单元214A)的处理器(CMP)156A中被处理。当处理器(CMP)156A完成其检查(侦听)时,其代表处理器(CMP)156A进行确认。由于LPID=8不在处理器156A中的传出TLBie过滤器列表322A上,因此具有LPID=8的TLBie在结构总线212上处理器(CMP)156A外部被发送到系统中的其他处理器(CMP)。在图3的SMP系统10的示例中,具有LPID=8的TLBie被发送至处理器(CMP)156B、156C和156N。如果具有LPID=8的传入TLBie与传入TLBie过滤器列表324中的任何条目都不匹配(如将在处理器(CMP)156B和156C中发生的那样),则TLBie过滤器320(例如,过滤器320B和320C)代表整个相应处理器(CMP)156B和156C确认请求。

另一方面,如果传入TLBie指令(例如,控制包)具有与传入LPID过滤器列表324中的任何条目相匹配的LPID字段,则且仅当此时,该TLBie在处理器(CMP)内部被发送至处理器上(CMP)结构204以用于进一步侦听和完成。在图3的处理LPID=8的TLBie的系统10的示例中,检查处理器156N中的传入LPID过滤器列表324N,并且,由于传入过滤器列表324N具有LPID=8,因此该TLBie指令包进入处理器(CMP)156N并在处理器(CMP)结构204N上流传以检查匹配。当处理器(CMP)156N的侦听过程完成时,处理器(CMP)156N确认请求。

一个或多个实施例中的TLBie过滤器320是通过软件进行管理、监控和更新的。SMP系统的一个或多个实施例中的管理程序已经知晓系统配置并且能识别逻辑分区(例如,LPID)何时被调度在硬件线程上以及硬件线程位于系统中的何处。为了支持系统中的硬件,在一个或多个实施例中,可以使用以下或类似的指令。

REMOVE_LOCAL_OUTGOING:指令移除在其上起源或发布的处理器(CMP)的传出过滤器列表中的相关联的LPID的条目(如果其存在)。

REMOVE_LOCAL_INCOMING:指令移除在其上起源或发布的处理器(CMP)的传入过滤器列表中的相关联的LPID的条目(如果其存在)。

REMOVE_GLOBAL_OUTGOING:该指令将被发送到系统中的所有处理器(CMP),并且,响应于接收到该指令,相应的LPID被从其传出过滤器列表中移除(如果其存在)。

ADD_LOCAL_OUTGOING:该指令为在其上起源或发布的处理器(CMP)的传出过滤器列表中的相关联的LPID创建条目—如果其尚不存在。

ADD_LOCAL_INCOMING:该指令为在其上起源或发布的处理器(CMP)的传入过滤器列表中的相关联的LPID创建条目—如果其尚不存在。

在一个或多个实施例中,当在线程上执行逻辑分区(例如,LPID)的改变时,执行操作以确保关于系统的和转换缓冲器无效(TLBie)过滤器中的信息正确。如果该线程上的旧LPID是存在于系统中的最后一个LPID,则移除该旧LPID所源自的处理器(CMP)上的传出过滤器列表上的旧LPID,以及移除该旧LPID所源自的处理器(CMP)的传入过滤器列表上的旧LPID。如果该线程中的旧LPID是其在处理器(CMP)中的分区而不是整个系统存在的最后一个LPID,则移除该处理器(CMP)的传入过滤器列表上的旧LPID。

如果系统中的任何地方都不存在新的LPID,则为在其上起源或发布的处理器(CMP)的传出过滤器列表中的相关联的LPID创建条目,并且为在其上起源或发布的处理器(CMP)的传入过滤器列表中的相关联的LPID创建条目。如果在系统中存在新的LPID,但是在该处理器(CMP)中不存在具有该LPID的线程,则为该处理器(CMP)上的传入过滤器列表中的相关联的LPID创建条目。如果管理程序知道线程中的新LPID已经在除该线程的处理器(CMP)之外的另一处理器(CMP)上被调度,则向系统中的所有处理器(CMP)外发从其传出过滤器列表移除对应LPID的指令,并且为该LPID在其上起源或发布的处理器(CMP)的传入过滤器列表的相关联LPID创建条目。

公开了用于减少计算机SMP网络系统中转换缓冲器无效(TLBie)指令的处理工作的系统和/或过程,其导致在转换缓冲器无效(例如TLBie)指令的处理中更高的吞吐量和更少的时延。在一个或多个其他实施例中,已参考系统中的TLB和TLBie指令解释了从转换缓冲器移除地址转换的过程。应当理解,相同和/或类似过程将适用于处理和/或移除其他转换缓冲器中的其他转换。例如,在一个或多个实施例中,系统中的SLB无效条目(SLBie)指令可以用与将无效操作应用于TLB中的地址转换的情形中的相同或相似的方式来处理。在又一或多个其他实施例中,系统中的IUSB无效条目(IUSBie)指令可以用与将无效操作应用于TLB中的地址转换的情形中的相同或相似的方式来处理。本公开描述了其中TLBie指令被处理以使TLB高速缓存中的转换无效的示例;然而,要指出的是,在TLBie指令示例内的特征和功能同样适用于其中对SLBie指令和/或IUSBie指令进行处理以使存储(存储器)位置中的转换无效的实施例。

图7是根据各种实施方式的示例性流程图,其示出并描述了根据本公开的一个或多个实施例的在计算机系统内为提高性能而去除和/或改变地址转换—例如处理地址转换缓冲器无效(TLBie)指令的方法。虽然为方便起见而不是为了限制本公开而将方法700描述为包括一系列和/或多个步骤,应当理解的是,该过程无需以一系列步骤来进行,并且/或者这些步骤无需按相对于图7所示出和描述的顺序来进行,但是该过程可以被集成和/或一个或多个步骤可以一起、同时地执行,或者这些步骤可以按所公开的顺序或者按替代的顺序执行。

图7的流程图中所示的方法700涉及移除和/或改变具有多个处理器或CMP的系统中的转换缓冲器中的地址转换。在一个或多个实施例中,过程700包括在具有多个互连的多处理器的系统中处理转换缓冲器无效条目(TBie)指令,例如TLBie、SLBie、IUSBie。方法700将通过参考处理和移除转换缓冲器(诸如例如转换后备缓冲器(TLB)或段后备缓冲器(SLB))中的转换映射来描述,但是应当理解,该方法、处理器和系统可以具有其他应用和配置。

在一个或多个实施例中,在710处,在系统中提供过滤器结构体,并且优选地,过滤器结构体与系统中的多个处理器或CMP中的每个相关联和/或包含在其中。在实施例中,每个处理器或CMP可以包括优选地通过CMP(处理器)通信结构互连的多个处理器内核和/或加速器单元。过滤器结构体优选地是由软件管理的目录结构。在一个或多个实施例中,过滤器结构体具有标识该处理器(例如,CMP)独有的逻辑分区标识(LPID)的传出过滤器列表。在一个或多个实施例中,过滤器结构体附加地和/或替代地具有标识在该处理器(例如,CMP)上并且也在系统中的至少一个其他处理器(CMP)上的所有LPID的输入过滤器列表。在实施例中,优选地通过软件来管理和更新传出和传入过滤器列表。

在实施例中,在715处,转换缓冲器无效条目(TBie)指令(例如,TLBie、SLBie和/或IUSBie)在处理器(CMP)中被发布,并且在无效指令发布或起源的处理器(CMP)中被处理。在一方面,将地址转换无效指令在CMP通信结构上流传到处理器或CMP中的不同处理器内核和加速单元。响应于在发布转换缓冲器无效指令的处理器(CMP)内完成侦听过程,处理器或CMP确认请求。在实施例中,确认请求是指系统的看到和处理该请求的那部分,例如该处理器或CMP。在一方面,可以在一个或多个相匹配转换已经被定位并从处理器(CMP)中的一个或多个地址转换缓冲器移除(或改变)的情况下和/或在处理器(CMP)中未发现相匹配转换的情况下确认请求。

在实践方法700的一个或多个实施例中,在720,检查无效指令发布或起源所在的处理器(CMP)的传出过滤器列表,寻找与转换缓冲器无效指令的LPID匹配的LPID。如果在725,TBie指令的LPID与传出过滤器中的任何LPID条目匹配(725:是),则在730,处理器(CMP)代表整个系统(例如,系统中的所有处理器(CMP))确认该转换缓冲器无效指令。如果TBie指令的LPID与处理器(CMP)的传出过滤器列表上的条目匹配,则不将TBie指令发出到跨处理器(跨芯片)网络或网络结构总线上。另一方面,如果TBie指令的LPID与传出过滤器列表上的任何LPID都不匹配(725:否),则在740,将TBie指令发出到系统中的每个处理器(CMP)。例如,将TLBie指令在跨处理器网络上发出到每个处理器(CMP)。

在转换缓冲器无效条目(TBie)指令被发出到每个处理器(CMP)并被处理的情况下,在每个处理器(CMP)处检查过滤器结构体,更具体地,在745,检查传入过滤器列表,以确定传入TBie指令的LPID是否与该相应处理器的传入过滤器列表上的任何LPID匹配。如果传入TBie指令的LPID与传入过滤器列表上的任何LPID都不匹配(745:否),则在750,代表整个处理器(CMP)确认请求,并且,在实施例中,转换缓冲器过滤器结构体代表该整个处理器(CMP)确认请求。

如果TBie指令的LPID匹配处理器或CMP中的传入过滤器列表上的任何LPID(745:是),则在755,在处理器(CMP)内部发送TBie指令以用于进一步侦听,例如用于进一步处理在处理器(CMP)中检查转换缓冲器中的要被从地址转换缓冲器移除和/或在地址转换缓冲器中改变的匹配的地址转换条目。在一个或多个实施例中,TBie指令被发送到处理器(CMP)中并在CMP结构上流传以用于进一步侦听。在760,当处理器(CMP)内部的侦听过程完成时,处理器(CMP)确认请求。

上述各个说明性方面优选地在硬件中实现,诸如在处理器的单元和电路中实现,并且,示意性实施例的各个方面可以在软件中实现。例如,应当理解,图7中的流程图例示的每个框以及流程图例示的框的组合可以通过硬件或计算机程序指令来实现。这些计算机程序指令可被提供给处理器或其他可编程数据处理装置以产生机器,使得在处理器或其他可编程数据处理装置上执行的指令创建用于实现流程图的一个或多个框中所指定的功能的装置。也可以把这些计算机程序指令存储在能使处理器或其他可编程数据处理装置以特定方式工作的计算机可读存储器或存储介质中,使得存储在计算机可读存储器或存储介质中的指令产生包括实现流程图的一个或多个框中所指定的功能的指令装置的制造品。

因此,流程图例示的框支持用于执行指定功能的装置的组合、用于执行指定功能的步骤的组合、以及用于执行指定功能的程序指令装置。还应理解,流程图例示的每个框以及流程图说明例示中的框的组合可以由基于专用硬件的计算机或执行指定功能或步骤的处理系统或由专用硬件和/或计算机指令的组合来实现。

在一个或多个实施例中,公开了一种信息处理系统,其具有通过跨处理器网络连接的多个处理器,其中,多个处理器中的每个处理器包括:一个或多个地址转换缓冲器,每个地址转换缓冲器具有包括地址转换信息的多个地址转换条目;过滤器结构体,具有标识专门分配给该处理器的逻辑分区标识(LPID)的传出过滤器列表。在一个或多个实施例中,系统在操作中被设计并配置为:在处理系统中的多个处理器之一中发布具有LPID的地址转换无效指令;检查发出地址转换无效指令的处理器中的传出过滤器列表;确定地址转换无效指令的LPID是否与传出过滤器列表中的LPID中的任何一个匹配;以及至少部分响应于地址转换无效指令的LPID与传出过滤器列表中的LPID中的任何一个匹配,代表系统确认转换指令无效指令。

在一个或多个实施例中,过滤器结构体还具有传入过滤器列表,该传入过滤器列表标识分配给该处理器和该系统中的至少一个其他处理器的LPID,并且系统在一个方面的操作中还被设计和配置为:针对系统中除发布地址转换无效指令的处理器外的多个处理器中的每个处理器,确定地址转换无效指令的LPID是否与相应处理器传入过滤器列表中的LPID中的任何一个匹配;以及响应于地址转换无效指令的LPID与传入过滤器列表中的LPID中的任何一个匹配,将地址转换无效指令发送到该处理器中。在实施例中,系统在操作中进一步被设计和配置为:在地址转换无效指令的LPID与传入过滤器列表中的LPID匹配的处理器中的转换缓冲器内,检查对应于地址转换无效指令的地址转换条目;以及响应于在其传入过滤器列表中有与地址转换无效指令的LPID匹配的LPID的每个处理器内完成检查,代表相应处理器确认地址转换无效指令。系统在操作中进一步被设计和配置为:响应于地址转换无效指令的LPID与传入过滤器列表中的LPID中的任何一个都不匹配,代表相应处理器确认地址转换无效指令。在又一实施例中,系统在操作中进一步被设计和配置为:在地址转换无效指令的LPID与传入过滤器列表中的LPID匹配的处理器中的转换缓冲器内检查对应于地址转换无效指令的地址转换条目;响应于在其传入过滤器列表中有与地址转换无效指令的LPID匹配的LPID的每个处理器内完成检查,代表相应处理器确认地址转换无效指令;以及响应于地址转换无效指令的LPID与传入过滤器列表中的LPID中的任何一个都不匹配,代表相应处理器确认地址转换无效指令。

在一个或多个实施例中,公开了一种信息处理系统,其具有通过跨处理器网络连接的多个处理器,其中,多个处理器中的每个处理器包括:一个或多个地址转换缓冲器,每个地址转换缓冲器具有包括地址转换信息的多个条目;以及过滤器结构体,具有标识分配给该处理器和系统中的至少一个其他处理器的逻辑分区标识(LPID)的传入过滤器列表。在实施例中,系统在操作中被设计和配置为:在处理系统中的多个处理器之一中发布地址转换无效指令;将地址转换无效指令从发布地址转换无效指令的处理器发出到系统中的其他处理器;针对系统中除发布地址转换无效指令的处理器外的每个处理器,确定地址转换无效指令的LPID是否与相应处理器的传入过滤器列表中的LPID中的任何一个匹配;以及响应于地址转换无效指令的LPID与传入过滤器列表中的LPID中的任何一个匹配,将地址转换无效指令发送到有具有与传入过滤器列表上的LPID匹配的LPID的传入过滤器的处理器中。在一方面,系统在操作中进一步被设计和配置为:在地址转换无效指令的LPID匹配传入过滤器上的LPID的处理器內,检查对应于地址转换无效指令的地址转换条目;以及响应于在其传入过滤器中具有匹配地址转换无效指令的LPID的LPID的每个处理器内完成检查,代表相应处理器确认地址转换无效指令。在实施例中,系统在操作中进一步被设计和配置为:响应于地址转换无效指令的LPID不匹配传入过滤器列表中的LPID中的任何一个,代表相应处理器确认地址转换无效指令。按照一个方面,系统在操作中进一步被设计和配置为:在发布地址转换无效指令的处理器中的一个或多个转换缓冲器内检查对应于地址转换无效指令的地址转换条目,以及响应于在发布处理器内完成检查,代表发布处理器确认地址转换无效指令。实施例中的过滤器结构体可选地具有维护专门分配给该处理器的LPID的列表的传出过滤器,并且系统在操作中进一步设计和配置为:检查发布地址转换无效指令的处理器中的传出过滤器列表;确定地址转换无效指令的LPID是否匹配传出过滤器列表中的LPID中的任何一个;以及至少部分响应于地址转换无效指令的LPID匹配传出过滤器列表中的LPID中的任何一个,代表系统确认转换指令无效指令。在一方面,系统在操作中还被设计和配置为:响应于地址转换无效指令的LPID不匹配传出过滤器中的LPID中的任何一个而将地址转换无效指令从发布地址转换无效指令的处理器发出到系统中的其他处理器。

在实施例中,信息处理系统在操作中进一步被设计和配置为:在发布地址转换无效指令的处理器中的一个或多个地址转换缓冲器内检查对应于地址转换无效指令的地址转换条目。在一方面,系统在操作中进一步被设计和配置为:响应于地址转换无效指令的LPID不匹配传出过滤器中的任何LPID,将地址转换无效指令从发布地址转换无效指令的处理器发出到系统中的其他处理器。并且,根据实施例,系统在操作中进一步被设计和配置成为:跨处理器网络上流传地址转换无效指令,以向系统中的除发布地址转换无效指令的处理器之外的处理器发送地址转换无效指令。一个或多个实施例中的传出和传入过滤器列表被设计和配置为用软件进行更新和维护。在实施例中,过滤器结构体在将每个处理器连接到跨处理器网络的网络适配器上。

在一个或多个实施例中,公开了在具有多个处理器的处理系统中处理信息的方法,更具体地,公开了移除或改变优选地系统中的多个处理器中的至少一个是本地的地址转换缓冲器或高速缓存中的地址转换的方法。处理器优选地具有一个或多个地址转换的地址转换缓冲器或高速缓存,并且在一个或多个实施例中包括一个或多个不同类型的地址转换缓冲器。在一个或多个实施例中,该方法包括:在处理系统中的多个处理器之一中发布地址转换无效指令;提供传出过滤器列表,其维护专用于包含传出过滤器列表的处理器的逻辑分区标识(LPID)列表;确定地址转换无效指令的LPID是否与发布地址转换无效指令的处理器的传出过滤器列表中的任何LPID匹配;以及至少部分响应于地址转换无效指令的所述LPID与传出过滤器列表中的任何LPID匹配而代表系统确认转换指令无效指令。在一个方面,该方法还包括在发布地址转换无效指令的处理器内检查对应于地址转换无效指令的地址转换。在一个或多个方面,该方法包括响应于地址转换无效指令的LPID与传出过滤器中的LPID中的任何一个都不匹配而将地址转换无效指令从发布地址转换无效指令的处理器发出到系统中的其他处理器。

在一个或多个实施例中,该方法优选地包括:在跨处理器网络上流传地址转换无效指令,以向系统中除发布地址转换无效指令的处理器外的处理器发送地址转换;并且,在一个方面,进一步在多个处理器中的每个处理器上提供传入过滤器列表,其中,传入过滤器标识分配给相应处理器和系统中至少一个其他处理器的LPID;针对系统中的除发布地址转换无效指令的处理器之外的每个处理器,确定地址转换无效指令的LPID是否匹配传入过滤器列表中的LPID中的任何一个;以及响应于地址转换无效指令的LPID匹配传入过滤器列表中的LPID中的任何一个,将地址转换无效指令发送到相应处理器中。按照实施例,该方法优选地也包括:响应于地址转换无效指令的LPID匹配传入过滤器中的LPID中的任何一个,检查处理器内地址转换无效指令;以及响应于在其传入过滤器上具有与地址转换无效指令的LPID匹配的LPID的处理器内完成检查,代表相应处理器确认地址转换无效指令。在另一方面,该方法也包括:响应于地址转换无效指令的LPID与传入过滤器列表中的任何LPID都不匹配,代表相应处理器确认地址转换无效指令。

还公开了一种在具有多个处理器的处理系统中处理信息的方法,包括:在处理系统中的多个处理器之一中发布地址转换无效指令;将地址转换无效指令从发布地址转换无效指令的处理器发出到系统中的其他处理器;提供维护被分配给该处理器和系统中的至少一个其他处理器的逻辑分区标识(LPID)列表的传入过滤器列表;针对系统中的除发布地址转换无效指令的处理器之外的每个处理器,确定地址转换无效指令的LPID是否与传入过滤器列表中的LPID中的任何一个匹配;以及响应于地址转换无效指令的LPID与传入过滤器列表中的LPID中的任何一个匹配,响应于地址转换无效指令的LPID与传入过滤器列表中的LPID中的任何一个匹配,将地址转换无效指令发送到有具有与传入过滤器列表上的LPID匹配的LPID的传入过滤器的处理器中。在实施例中,该方法进一步包括:在其传入过滤器上具有与地址转换无效指令的LPID匹配的LPID的处理器内检查地址转换无效指令;以及响应于在其传入过滤器上具有与地址转换无效指令的LPID匹配的相匹配LPID的处理器上完成检查,代表相应处理器确认地址转换无效指令。

还公开了一种在具有多个处理器的处理系统中处理信息的方法,包括:在处理系统中的所述多个处理器之一中发布地址转换无效指令;将地址转换无效指令从发布地址转换无效指令的处理器发出到系统中的其他处理器;在一个或多个处理器中、优选地在系统中的所有处理器中提供传入过滤器列表,其中传入过滤器列表维护和/或标识被分配给该处理器和系统中的至少一个其他处理器两者的逻辑分区标识(LPID)列表;针对系统中的除发布地址转换无效指令的处理器之外的每个处理器,确定地址转换无效指令的LPID是否与传入过滤器列表中的LPID中的任何一个匹配;以及响应于地址转换无效指令的LPID不与传入过滤器列表中的LPID中的任何一个匹配,代表相应处理器确认地址转换无效指令。

在使用传入过滤器的方面,该方法也可选地包括:提供传出过滤器列表,其维护专门分配给具有该传出过滤器列表的处理器的逻辑分区标识(LPID)列表;检查地址转换无效指令的发布或起源所在的处理器中的传出过滤器列表;确定地址转换无效指令的LPID是否与传出过滤器列表中的LPID中的任何一个匹配;以及至少部分响应于地址转换无效指令的LPID与传出过滤器列表中的LPID中的任何一个匹配而代表所述系统确认转换指令无效指令。

在实施例中,该方法还包括用软件来维护和更新传出和传入过滤器列表。在一个方面,该方法具有作为系统中的多个处理器中的每个中的网络适配器上的过滤器结构体的一部分的传出过滤器列表和传入过滤器列表。

本公开的一个或多个实施例可以是系统、方法和/或计算机程序产品。计算机程序产品可包含其上具有用于致使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质。

计算机可读存储介质可以是能保留和存储供指令执行设备装置使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡或具有记录在其上的指令的槽中的凸出结构之类的机械编码设备、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。

本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(如Smaltalk、C++等)和常规的过程式程序设计语言(如“C”程序设计语言或类似的程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本公开的各方面。

本文参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中规定的功能/动作的装置。也可以把能指示计算机、可编程数据处理装置、和/或其他设备以特定方式工作的这些计算机可读程序指令存储在计算机可读存储介质中,使得其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。

也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。

附图中的流程图和框图示出了根据本公开的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框可以基本上同时执行,或者这些框有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。

此外,根据不同实施例的系统可包括处理器和与处理器集成和/或可由处理器执行的逻辑,逻辑被配置成执行本文所述的处理步骤中的一个或多个。与处理器集成的意思是处理器具有嵌入在其中的作为硬件逻辑的逻辑,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。处理器可执行的意思是逻辑是硬件逻辑;诸如固件、操作系统的一部分、应用程序的一部分之类的软件逻辑;或硬件和软件逻辑的某种组合,其可由处理器访问并且被配置为使处理器在由处理器执行时执行一些功能。软件逻辑可以存储在如本领域中已知的任何存储器类型的本地和/或远程存储器上。可以使用本领域已知的任何处理器,诸如软件处理器模块和/或硬件处理器,诸如ASIC、FPGA、中央处理单元(CPU)、集成电路(IC)、图形处理单元(GPU)等。

以下权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等效物旨在包括用于结合如具体要求保护的其他要求保护的元件来执行所述功能的任何结构、材料或动作。已经出于说明和描述的目的呈现了对本公开的实施方式的描述,但并不旨在是详尽的或者限于所公开形式的实施方式。在不背离本公开的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述实施例和实例,以便最好地解释本公开的原理和实际应用,并且使本领域的其他普通技术人员能够理解具有适于预期的特定用途的各种修改的各种实施例的公开。

本文描述的程序基于在本公开的特定实施例中实现它们的应用来识别。然而,应当理解,本文中的任何特定程序命名法仅为了方便而使用,并且因此本公开不应仅限于在由这样的命名法标识和/或暗示的任何特定应用中使用。

将清楚的是,前述系统和/或方法的不同特征可以以任何方式进行组合,从而从以上呈现的描述中创建多个组合。

还应当理解,本公开的实施例可以以代表客户部署以按需提供服务的服务的形式提供。

已经出于说明的目的呈现了本公开的不同实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。

相关技术
  • 微处理器中的地址转换高速缓存无效
  • 使存储器高速缓存中数据无效的方法与系统
技术分类

06120113817565