首页> 中国专利> 用于更新远程处理节点中的地址转换数据结构的转换管理指令

用于更新远程处理节点中的地址转换数据结构的转换管理指令

摘要

在多节点数据处理系统中使用转换管理指令来便利分布在整个这样系统的地址转换数据结构的远程管理。因此,在多处理节点共同地处理负载的多节点数据处理系统中,这种节点的地址转换数据结构可以被共同地管理从而最小化转换未命中以及通常与之相关的性能损失。

著录项

  • 公开/公告号CN104854568A

    专利类型发明专利

  • 公开/公告日2015-08-19

    原文格式PDF

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

    申请/专利号CN201380064530.6

  • 申请日2013-11-28

  • 分类号

  • 代理机构北京市柳沈律师事务所;

  • 代理人周少杰

  • 地址 美国纽约阿芒克

  • 入库时间 2023-12-18 10:26:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-15

    授权

    授权

  • 2015-09-16

    实质审查的生效 IPC(主分类):G06F12/10 申请日:20131128

    实质审查的生效

  • 2015-08-19

    公开

    公开

说明书

背景

本发明通常涉及数据处理,特别是处理器架构和纳入其中的地址转换数 据结构。

存储器管理,即,在管理存储在计算机中的数据时所发生的操作,通常 是计算机整体系统性能的关键因素。除了其他任务之外,存储器管理监督计 算机中数据的检索和存储,以及通过对哪些用户和计算机程序被允许访问施 加限制来管理计算机的某些安全任务。

现代计算机一般情况下依赖于被称为虚拟存储器管理的存储器管理技术 来提高性能,并且在计算机和他们被以之为前提的底层架构设计上提供更大 的灵活性。使用虚拟存储器系统,实现计算机存储系统的底层的硬件被有效 地相对于计算机软件隐藏起来。为这样的计算机定义相对比较大的虚拟存储 空间,例如,宽度为64位或更多,执行在该计算机上的计算机程序使用指向 虚拟存储空间中的位置的虚拟地址访问存储系统。然而,计算机中的物理存 储设备,通过直接映射到物理存储设备中的特定存储位置的“真实”地址而被 访问。提供计算机中的硬件和/或软件来执行“地址转换”以映射物理存储器的 实际存储地址到虚拟存储空间中的虚拟地址。这样,无论何时在计算机上的 计算机程序试图使用虚拟地址访问存储器,计算机自动将虚拟地址转换为对 应的真实地址,以便可以访问映射到虚拟地址的适当的物理设备上的合适位 置。

虚拟寻址的一个特征是对计算机来说不需要在计算机的主存储器的物理 存储设备中包括用于整个虚拟存储空间的存储器。相反,较低级别的存储, 如磁盘驱动器和其他大容量存储设备,可作为辅助存储,其中存储器地址分 组成根据需要在主存储器和辅助存储器之间互换的“页”。由于计算机中的访 问请求的频率,地址转换可以对整体系统性能有重要的影响。因此,需要减 少在执行地址转换所在的关键时序路径相关联的处理开销。

虚拟存储系统中的地址转换一般情况下包含访问不同的地址转换数据结 构。一个这样的结构,称为页表,包括在逐页基础上将虚拟地址映射到真实 地址的多个记录(entry)。通常,由于不断发生在一个计算机中的大量的存储 器访问,需要由计算机映射到所有的使用的存储器地址空间的记录数量可能 非常大,并要求这些记录被存储在主存储器中,而不是存储在专用存储器中, 这使得访问这些记录非常慢。为了加速使用这样方案的地址转换,称为转换 后备缓冲器(TLB)的高速存储器用于缓存最近使用的记录以便由计算机快 速存取。如果所需的记录未存储在TLB中,从主存储器加载记录就会发生性 能损失;然而,一般情况下在TLB的命中率是足够的,从主存储器加载记录 相关联的损失比立刻从TLB访问记录时的性能增加的补偿要大。在其他的设 计中,通过利用一个或多个有效到真实地址转换(ERAT)表,额外的缓存层 级可用于进一步的加速性能。此外,在某些设计中,在处理器中靠近指令和 数据处理逻辑处分别提供单独的ERAT数据和指令,从而减小处理器中关键 性能路径上的地址转换的影响。

此外,随着半导体技术就增加时钟速度而言不断推近到可实现的限制, 架构师们越来越注重处理器架构的并行性以获得性能的改善。在芯片级,多 处理核经常布置在同一芯片上,以与单独的处理器芯片大致相同的方式工作, 或在某种程度上,作为完全独立的计算机工作。此外,即使在核内,通过采 用多个专门处理某些类型操作的执行单元来使用并行机制。在许多情况下还 使用流水线操作,以便某些可能需要多个时钟周期执行的操作被分成几个阶 段,使早期操作完成之前就开始其他操作。同时也使用多线程,使得多个指 令流能被并行处理,使在任何给定的时钟周期中执行更多的全局工作。

结果是,现在许多数据处理系统包括多个互连的处理节点,其通过相同 的网络彼此连接,通常布置在同一芯片或集成电路器件上。而在一些设计中 处理节点可以是彼此相同的,在其他设计中处理节点可以是异构的,包括不 同的功能,使得整个系统可以处理各种类型的工作负载。例如,一些处理节 点可以是能够运行通用工作负载的通用处理节点,而其他处理节点可能更专 业化,特别是辅助通用处理节点处理特定的任务。例如,专业的处理节点, 可能是加速器或协处理器,可用于处理各种各样的任务,例如高级的算术运 算,加密/解密,压缩/解压缩,图形,视频或图像处理等。然而,在许多情况 下,这些专门处理节点被通用处理节点管理,以在请求时执行特定的任务。

当多个处理节点连接到同一网络、尤其是共享相同的物理存储器时,在 每个处理节点可以提供专用地址转换数据结构来高速缓存转换记录,从而加 快这些处理节点的存储器访问。然而,在许多情况下,工作负载可以分布在 多个处理节点,因此可能引入延迟,因为工作在相同的工作负载的不同的处 理节点为存储在共享存储器中的任何数据高速缓存相同的转换记录。

作为一个例子,其中通用处理节点被耦合到协处理器,运行在通用处理 节点上的程序可以存储器区域存储某些数据以供协处理器使用,然后将命令 发送到协处理器以对存储在该存储器区域的数据执行操作。当通用处理节点 首先尝试在存储器区域中存储数据时,可能最初在那个节点的专用ERAT表 或者TLB表发生未命中(miss),因此需要访问页表来检索该存储器区域的 转换记录,其中往往伴随着一个显着的性能损失。后来,当通用处理节点向 协处理器发送命令,然后协处理器试图检索存储的数据,在该协处理器的专 用ERAT表或者TLB表中典型地发生另一个未命中,因此需要对页表的另一 次访问来检索该存储器区域的转换记录。这样,通用处理节点和协处理器试 图访问同一数据时发生两个未命中。

因此,本领域持续迫切需要更好地管理分布在多节点数据处理系统中的 地址转换数据结构的方式。

发明内容

本发明通过在多节点数据处理系统中支持一个或者多个类型的转换管理 指令来处理与现有技术关联的这些和其他问题,其便利了分布在整个这样系 统的地址转换数据结构的远程管理。因此,对多处理节点共同地处理负载的 多节点数据处理系统来说,这种节点的地址转换数据结构可以被共同地管理, 从而最小化转换未命中以及通常与之相关的性能损失。例如,在一些实施例 中,一个处理节点可以使用转换管理指令管理一个或者多个其他处理节点的 地址转换数据结构,使得在处理由这些其他节点执行的、即将到来的任务之 前,地址转换数据结构被优化地建立。

例如,一种类型的转换管理指令可用于对分别布置在本地和远程处理节 点的地址转换数据结构执行本地和远程操作。例如,搜索和推送指令可以用 来搜索本地地址转换数据结构并为匹配搜索准则的记录返回索引或其它标识 符,还额外地将与匹配记录相关的数据推送到远程节点以便可在那个远程节 点的地址转换数据结构中存储或者生成该记录。作为另一个例子,写入和推 送指令可用于将数据写入本地地址转换数据结构中的记录,此外还将所写的 数据推送到远程节点以便可以类似地更新在那个远程节点的地址转换数据结 构中的对应的记录。

另一种类型的转换管理指令可用于对远程节点的地址转换数据结构中的 记录发起远程无效,而不会对应地无效在本地的地址转换数据结构中的记录。

因此,和本发明的一个方面相一致,在包括多个处理节点的类型的数据 处理系统中处理指令,其中多个处理节点中的每个处理节点中包括地址转换 数据结构,其中,在所述多个处理节点中的第一处理节点对转换管理指令解 码,其中在所述第一处理节点的指令集合中定义所述转换管理指令;以及响 应于在所述第一处理节点对所述转换管理指令解码,对在所述第一处理节点 的地址转换数据结构执行第一本地操作,并且对所述多个处理节点中的第二 处理节点的地址转换数据结构发起第二远程操作。

和本发明的另一个方面相一致,在包括多个处理节点的类型的数据处理 系统中处理指令,其中多个处理节点中的每个处理节点中包括地址转换数据 结构,其中,在所述多个处理节点中的第一处理节点对转换管理指令解码, 其中在所述第一处理节点的指令集合中定义所述转换管理指令;以及响应于 在所述第一处理节点对所述转换管理指令解码,对所述多个处理节点中的第 二处理节点的地址转换数据结构发起无效操作来无效在所述第二处理节点的 地址转换数据结构中的记录,而不无效在所述第一处理节点的地址转换数据 结构中的对应记录。

描述本发明的这些和其他优点和特征在附属的权利要求中陈述并形成本 文的进一步的部分。然而,为了更好地理解本发明,以及通过其使用获得的 优势和目标,应该参考附图以及描述本发明示例性实施例的附加的描述。

附图说明

图1是与本发明的实施例相一致的包括用于数据处理的示例性计算机的 示例性自动计算机器的框图;

图2是一个在图1所示的计算机中实现的示例性的NOC的框图;

图3是更详细地说明来自图2的NOC的节点示例性的实现的框图;

图4是说明来自图2的NOC的IP块示例性的实现的框图;

图5示出了适合于实现与本发明相一致的转换管理指令的多节点数据处 理系统的示例性实现的框图;

图6示出了对图5实现的多节点数据处理系统的替换实现的框图;

图7示出了当执行图5和6之一的数据处理系统的处理节点中的ERAT 搜索和推送指令时,执行的操作的示例性序列的流程图;

图8示出了当执行图5和6之一的数据处理系统的处理节点中的ERAT 写入和推送指令时,执行的示例性操作的序列的流程图;

图9示出了当执行图5和6之一的数据处理系统的处理节点中的ERAT 远程无效指令时,执行的示例性操作的序列的流程图;

图10示出了当执行图5和6之一的数据处理系统的处理节点中的TLB 搜索和推送指令时,执行的示例性操作的序列的流程图;

图11示出了当执行图5和6之一的数据处理系统的处理节点中的TLB 写入和推送指令时,执行的示例性操作的序列的流程图;

图12示出了当执行图5和6之一的数据处理系统的处理节点中的TLB 远程无效指令时,执行的示例性操作的序列的流程图;

图13示出了当执行图5和6之一的数据处理系统中的处理节点中的以转 换启动协处理器指令时,执行的示例性操作的序列的流程图。

具体实施方式

在多节点数据处理系统中提供转换管理指令方便了分布在整个系统的地 址转换数据结构的远程管理。

例如,转换管理指令的一种类型,可用于对分别在本地和远程处理节点 处理的地址转换数据结构执行本地和远程操作。搜索和推送指令可以用来搜 索本地地址转换数据结构并为匹配搜索准则的记录返回索引或其它标识符, 还额外地将与匹配记录相关的数据推送到远程节点以便可在那个远程节点的 地址转换数据结构中存储或者生成该记录。写入和推送指令可用于将数据写 入本地地址转换数据结构中的记录,此外还将所写的数据推送到远程节点以 便类似地更新在那个远程节点的地址转换数据结构中的对应的记录。

另一种类型的转换管理指令可用于对远程节点的地址转换数据结构中的 记录发起远程无效,而不对应地无效在本地的地址转换数据结构中的记录。

在这方面,本地和远程处理节点可以包括布置在共同的相干域的、通过 如共享总线的共享网络相互耦合的任何处理逻辑。处理节点的例子包括通用 处理核、协处理器、加速器、和当访问共享存储器时利用地址转换数据的其 它处理逻辑。

其他的变种和修改对本领域的普通技术人员来说是明显的。因此,本发 明不局限于本文所讨论的特定实现。

硬件和软件环境

现在参考附图,其中相同标号表示全部几个视图的相同部分,图1示出 了与本发明的实施例相一致的包括用于数据处理的示例性计算机10的示例 性自动计算机器。图1中的计算机10包括至少一个计算机处理器12或者 “CPU”,以及通过高速存储器总线16和总线适配器18与处理器12和计算 机10的其他部件相连的随机存取存储器14(“RAM”)。

存储在RAM 14中的是应用程序20,是用于执行特定的数据处理任务, 例如字处理、电子表格、数据库操作、视频游戏、股票市场模拟、原子的量 子过程的模拟、或其他的用户级应用程序的用户级计算机程序指令的模块。 存储在RAM 14中的还有操作系统22。可结合本发明实施例使用的操作系统 包括UNIXTM、LinuxTM、微软Windows XPTM、AIXTM、IBM的i5/OSTM、 以及本领域技术人员会想到的其他操作系统。图1所示的例子中的操作系统 22和应用程序20显示在RAM 14中,但这种软件的许多组件通常也被存储 在非易失性存储器中,例如,在磁盘驱动器24中。

以下将变得更加明显,与本发明相一致的实施例可以实现在片上网络 (NOC)集成电路器件或芯片及等同物内,计算机10被描述成包括两个示例 性的NOC:视频适配器26和协处理器28。NOC视频适配器26,也可被称 为图形适配器,是专为图形输出到显示设备30、如显示屏幕或电脑显示器的 I/O适配器的例子。NOC视频适配器26通过高速视频总线32、总线适配器 18、以及也是高速总线的前端总线34连接到处理器12。NOC协处理器28 通过总线适配器18、以及也是高速总线的前端总线34和36连接到处理器12。 图1的NOC协处理器可以被优化,例如,在主处理器12的命令下加速特定 的数据处理任务。

图1的示例性的NOC视频适配器26和NOC协处理器28的每个包括片 上网络NOC,该NOC包括集成处理器(“IP”)块、路由器、存储器通信控 制器、以及网络接口控制器,其中的细节以下将结合图2-3更详细地讨论。 NOC视频适配器和NOC协处理器的每一个都为使用并行处理、并且需要快 速随机访问共享存储器的程序进行了优化。然而,从本公开中受益的本领域 技术人员应该了解,本发明可以在NOC器件和器件架构以外的其他器件和器 件架构上的实现。因此,本发明是不限于实施在NOC器件内的。

图1的计算机10包括通过扩展总线40和总线适配器18耦合到处理器 12和计算机10的其他组件的磁盘驱动器适配器38。磁盘驱动器适配器38将 非易失性数据存储器以磁盘驱动器24的形式连接到计算机10,并且例如可 以使用集成驱动器电子(“IDE”)适配器、小型计算机系统接口('SCSI”)适 配器、和本领域技术人员知道的其他设备来实现。如本领域技术人员所知的 那样,非易失性计算机存储器也可以实现为光盘驱动器、电可擦除可编程只 读存储器(所谓的“EEPROM”或“闪速Flash”存储器)、RAM驱动器,等等。

计算机10还包括一个或多个输入/输出(“I/O”)适配器42,其中I/O适 配器42通过例如软件驱动程序和计算机硬件实现面向用户的输入/输出,以 便控制到如计算机屏幕的显示设备的输出,以及来自用户输入设备44如键盘 和鼠标的用户输入。此外,计算机10包括通信适配器46,用于和其它计算 机48的数据通信以及与数据通信网络50的数据通信。这样的数据通信可通 过RS-232连接、通过外部总线如通用串行总线(USB)、通过数据通信网络 如IP数据通信网络、以及通过本领域技术人员知道的其它方式串行地执行。 通信适配器实现一个计算机直接或通过数据通信网络发送数据通信到另一台 计算机的硬件级别的数据通信。在计算机10中适合使用的通信适配器的例子 包括有线拨号通信的调制解调器、有线数据通信网络通信的以太网(IEEE  802.3)适配器、以及无线数据通信网络通信的802.11适配器。

为进一步解释,图2根据本发明实施例提出了示例性NOC 102的功能模 块图。图2中的NOC是在“芯片”100上、即在集成电路上实现的。NOC 102 包括分组成互连节点的集成处理器(“IP”)块104、路由器110、存储器通信 控制器106和网络接口控制器108。每个IP块104通过存储器通信控制器106 和网络接口控制器108适配于路由器110。每个存储器通信控制器控制IP块 和存储器之间的通信,并且每个网络接口控制器108通过路由器110控制IP 块间的通信。

在NOC 102中,每个IP块代表一个作为NOC内部数据处理的构件块使 用的可重用的同步或异步逻辑设计单元。术语“IP块”有时被扩展为“知识产 权块”,其有效地将IP块指定为由一方拥有的、要许可给半导体电路的其他 用户或其它设计厂商的设计,即一方的知识产权。然而,在本发明的范围内, 不要求IP块受制于任何特定的所有权,所以该术语在本说明书中总是扩展为 “集成处理器块”。这里指定的IP块,是逻辑、单元或芯片布局设计的可重 用单元,其可能是或可能不是知识产权的主体。IP块是可以形成为ASIC芯 片设计或FPGA逻辑设计的逻辑核。

一种通过类比描述IP块的方式是:IP块对于NOC设计如同库对于计算 机编程或者分立集成电路元件对于印刷电路板设计。在与本发明的实施例一 致的NOC中,IP块可以被实现为通用门网表、完全专用或通用微处理器、 或以本领域技术人员可以想到的其他方式实现。网表是一个IP块的逻辑功能 的布尔代数的表示(门,标准单元),类似于高级应用程序的汇编代码清单。 例如,NOC也可以以综合的形式、用诸如Verilog或VHDL的硬件描述语言 描述来实现。除了以网表和综合的实施方式,NOC也可以以低级物理描述的 方式交付。模拟IP块元素,如SERDES、PLL、DAC、ADC、等等,可以以 如GDSII的晶体管布局形式分发。IP块的数字元件有时也以布局形式提供。 还应当认识到,IP块以及其他实现为与本发明一致的逻辑电路可以以计算机 数据文件的形式,例如逻辑定义的程序代码,来分发,其中数据文件在不同 细节层次定义实现这种逻辑的电路布置的功能和/或布局。因此,尽管已经并 且以下将在在完全功能的集成电路器件、使用这样器件的数据处理系统、以 及其它有形的、物理硬件电路中实现的电路布置的上下文中对本发明加以描 述,已经从本公开中受益的本领域技术人员会了解本发明也可能在程序产品 内实现,并且本发明也同样适用于用于分发程序产品的计算机可读存储介质 而与其特定类型无关。计算机可读存储介质的例子包括但不限于,物理的、 可记录型介质,如易失性和非易失性存储器器件、软盘、硬盘驱动器、 CD-ROM、DVD(等等)。

图2的例子中的每个IP块104通过存储器通信控制器106连接到路由器 110。每个存储器通信控制器是适于提供IP块和存储器之间的数据通信的同 步和异步逻辑电路的聚集体。IP块和存储器之间的这种通信的例子包括存储 器加载指令和存储器存储指令。下面参考图3更详细地描述存储器通信控制 器106,每个IP块104也通过网络接口控制器108连接到路由器110。网络 接口控制器108控制IP块104之间通过路由器110的通信。IP块之间的通信 的例子包括并行应用程序和流水线应用程序中IP块之间携带数据的消息和处 理数据的指令。以下也参考图3更详细地描述网络接口控制器108。

多个路由器110,以及之间相应的链路118,实现了NOC的网络操作。 链路118可以是实现在连接所有的路由器的物理的、并行导线总线上的数据 包结构。也就是,每个链路可能在宽度足以同时容纳整个数据交换包的导线 总线上实现的,包括所有的首标信息和有效载荷数据。如果数据包结构包括 64个字节,例如,包括一个八字节的首标和56字节的有效载荷数据,那么 承载每个链路的导线总线是64字节宽,512线。此外,每个链路都可能是双 向的,以便如果链路数据包结构包括64个字节,则导线总线在网络上的每个 路由器与其邻居的每一个之间实际上包含1024线。在这样的实现中,消息可 以包括一个以上的数据包,但每个数据包会精确地适合导线总线的宽度。在 另一个实施例中,链路可能实现在宽度仅足以容纳数据包的一部分的导线总 线上,这样的数据包会被拆分成多个节拍(beat),例如,如果链路实现为16 字节宽,或128线,64字节的数据包可以被拆分为四个节拍。可以了解, 不同的实现可以根据实际的物理限制以及要求的性能特点采用不同的总线宽 度。如果路由器和每段导线总线之间的连接被称为端口,那么每个路由器包 括五个端口,即网络上数据传输四个方向的每一个中的一个端口和通过存储 器通信控制器和网络接口控制器将路由器适配到特定IP块的第五端口。

每个存储器通信控制器106控制IP块和存储器之间的通信。存储器可以 包括片外主RAM 112、通过存储器通信控制器106直接连接到IP块的存储器 114、实现为IP块116的片上存储器、以及片上高速缓存器。例如,在NOC102, 片上存储器114或116中的任一个,可以实现为片上高速缓存器。所有这些 形式的存储器可以布置在相同的地址空间、物理地址或虚拟地址中,甚至对 直接连接到IP块的存储器也是如此。因此存储器寻址信息相对于IP块可以 是完全双向的,因为这种存储器可以从网络上的任何地方的任何IP块直接寻 址。IP块上的存储器116可以从该IP块或从NOC上的任何其它IP块寻址。 直接连接到存储器通信控制器的存储器114可以通过IP块寻址,该IP块通 过存储器通信控制器连接到网络;也可以通过NOC的任何地方的任何其它IP 块寻址。

NOC102包括说明与本发明实施例一致的两种NOC的可替换的存储器架 构的两个存储器管理单元(“MMU”)120,122。MMU 120是在IP块内实现, 其允许在IP块内的处理器在虚拟存储器内操作,并且允许NOC的整个剩余 架构在物理存储器地址空间操作。MMU122在片外实现,通过数据通信端口 124连接到NOC。端口124包括需要在NOC和MMU之间传导信号的引脚 和其他互连,以及足够的智能来将消息数据包从NOC数据包格式转换为外部 MMU 122所需的总线格式。MMU的外部位置意味着在NOC的所有的IP块 内的所有处理器可以在虚拟存储器地址空间操作,到片外存储器的物理地址 的全部转换由片外的MMU 122处理。

除了使用MMU 120、122所示两个存储器架构,数据通信端口126说明 了用于NOC中的第三存储器结构,可用于本发明的实施例。端口126提供了 NOC 102的IP块104和片外存储器112之间的直接连接。如果在处理路径上 没有MMU,这种架构提供了由NOC的全部IP块对物理地址空间的使用。 在共享的、双向的地址空间,NOC的所有IP块可以通过由与端口26直接相 连的IP块引导、包括加载和存储的存储器寻址消息来访问地址空间的存储器。 端口126包括需要在NOC和片外存储器112之间传导信号的引脚和其他互 连,以及足够的智能来将消息数据包从NOC的数据包的格式转化为片外存储 器112所需的总线格式。

在图2的例子中,指定多个IP块中的一个为主机接口处理器128。主机 接口处理器128在NOC和可能安装NOC的主机10之间提供接口并且为NOC 上的其它IP块提供数据处理服务,包括,例如从主计算机接收和在NOC的 多个IP块之间分派数据处理请求。如参考图1所描述的那样,NOC可能, 例如,在较大型计算机10上实现一个视频图形适配器26或协处理器28。在 图2的例子中,主机接口处理器128通过数据通信端口130连接到较大型主 机。端口130包括需要在NOC和主机之间传送信号的引脚和其他互连,以及 足够的智能来将消息数据包从NOC格式转化为主机10所需的总线格式。在 如图1所示的计算机的NOC协处理器的例子中,这样的端口会在NOC协处 理器28的链路结构、以及NOC协处理器与总线适配器38之间的前端总线 36所需的协议之间,提供数据通信格式转换。

接着图3更详细地说明了在用132笼统例示的NOC 102内的IP块104、 存储器通信控制器106、网络接口控制器108和路由器110实现的器件的功 能框图。IP块104包括计算机处理器134和I/O功能136。在这个例子中, 计算机存储器是由IP块104内的一段随机存取存储器('RAM”)138表示的。 如上面参考图2描述的那样,存储器可以占据物理地址空间的段,其在每个 IP块的内容从NOC内任何IP块是可寻址的并且可访问的。在每个IP块内的 处理器134、I/O功能136、以及存储器138有效将IP块实现为通用可编程微 处理器。然而,如上所述,在本发明的范围内,IP块通常表示同步或异步逻 辑的可重用单元,其在NOC之内用作数据处理的构建块。因此,将IP块实 现为通常的可编程微计算机尽管是可用于解释的目的普通实施例,但不是对 本发明的限制。

在图3的NOC 102,每个存储器通信控制器106包括多个存储器通信执 行引擎140。使每个存储器通信执行引擎140能够执行来自IP块104的存储 器通信指令,包括网络和IP块104之间的双向存储器通信指令流141,142, 144。由存储器通信控制器执行的存储器通信指令,不仅可能从通过特定的存 储器通信控制器适配到路由器的IP块发起,而且也可以从NOC 102内的任 何地方的任何IP块104发起。也就是说,在NOC中的任何IP块可以生成存 储器通信指令并且通过NOC的路由器传送存储器通信指令到与另一个IP块 相关联的另一个存储器通信控制器来执行那个存储器通信指令。这种存储器 通信指令可以包括,例如,转换后备(translation lookaside)缓冲器控制指令, 高速缓存控制指令,障碍指令(barrier instructions),以及存储器加载和存储 指令。

使每个存储器通信执行引擎140能够单独以及与其他存储器通信执行引 擎并行执行一个完整的存储器通信指令。存储器通信执行引擎实现可扩展的、 为存储器通信指令的并行吞吐量而优化的存储器事务处理器。存储器通信控 制器106支持多个存储器通信执行引擎140,所有引擎同时运行来同时执行 多个存储器通信指令。新的存储器通信指令由存储器通信控制器106分配给 存储器通信引擎140,存储器通信执行引擎140可同时接受多个响应事件。 在这个例子中,所有的存储器通信执行引擎140是相同的。因此,扩展由存 储器通信控制器106同时处理的存储器通信指令的数量,是通过扩展存储器 通信执行引擎140的数量来实施的。

在图3的NOC 102中,使每个网络接口控制器108能够将通信指令从命 令格式转换成网络数据包格式从而通过路由器110在IP块104之间传输。可 以由IP块104或者由存储器通信控制器106将通信指令规划成命令格式并以 命令格式提供到网络接口控制器108。命令格式可以是符合IP块104和存储 器通信控制器106的架构寄存器文件的本机格式。网络数据包的格式通常是 通过网络路由器110传输所需要的格式。每个这样的消息是由一个或多个网 络数据包组成。在网络接口控制器中这种从命令格式转换为数据包的格式的 通信指令的例子,包括IP块和存储器之间的存储器加载指令和存储器存储指 令。这样的通信指令还包括在IP块之间发送携带数据和在并行应用程序和流 水线应用程序的IP块之间处理数据的指令的消息的通信指令。

在图3的NOC 102,使每个IP块能够将基于存储器地址的通信通过IP 块的存储器通信控制器发送到存储器或从存储器发出,然后还通过网络接口 控制器回到网络。基于存储器地址的通信是存储器访问指令,如加载指令或 存储指令,其由IP块的存储器通信控制器的存储器通信执行引擎执行。这种 基于存储器地址的通信通常来源于IP块,被规划成命令格式,交给存储器通 信控制器执行。

许多基于存储器地址的通信是使用消息通信(traffic)执行的,因为任何 要访问的存储器可能位于物理存储器地址空间的任何地方,片上或片外,其 直接连接到NOC中任何存储器通信控制器,或最终通过NOC的任何IP块访 问——无论哪个IP块发起任何特定的基于存储器地址的通信。因此,在 NOC102,所有的使用消息通信执行的基于存储器地址的通信,是从存储器通 信控制器传输到相关的网络接口控制器以便从命令格式转化为数据包格式并 且通过网络在消息中传输。在转换到数据包的格式中,网络接口控制器还依 赖于存储器地址或要由基于存储器地址的通信访问的地址,确定数据包的网 络地址。基于存储器地址的消息使用存储器地址寻址。每个存储器地址由网 络接口控制器映射到网络地址,通常是负责一定物理存储器地址范围的存储 器通信控制器的网络位置。存储器通信控制器106的网络位置自然也是和该 存储器通信控制器相关联的路由器110、网络接口控制器108以及IP块104 的网络位置。每个网络接口控制器内的指令转换逻辑150能够将存储器地址 转换为网络地址从而通过NOC的路由器传输基于存储器地址的通信。

一旦从网络的路由器110接收到消息通信,每个网络接口控制器108检 查每个数据包,寻找存储器指令。将包含存储器指令的每个数据包交给与接 收网络接口控制器相关联的存储器通信控制器106,其在发送数据包的剩余 负载到IP块以进一步处理之前,执行存储器指令。以这种方式,在IP块开 始执行来自于依赖于特定存储器内容的消息的指令之前,存储器的内容总是 准备来支持IP块的数据处理。

在图3的NOC 102,每个IP块104能够绕过其存储器通信控制器106并 通过IP块网络接口控制器108,直接发送IP块间的、网络寻址的通信146到 网络。网络寻址的通信是通过网络地址指向另一个IP块的消息。如本领域技 术人员知道的那样,这种消息在流水线的应用程序中传输工作的数据、在 SIMD应用程序的IP块之间的单程序处理的多个数据,等等。这种消息不同 于基于存储器地址的通信,因为这种消息从开始就是网络可寻址的,由知道 网络地址的发起IP块通过NOC的路由器寻址到消息要去的地方。这种网络 寻址通信由IP块通过I/O功能136以命令格式直接传输到IP块网络接口控制 器,然后由网络接口控制器转换为数据包格式,通过NOC的路由器传送到另 一个IP块。这种网络寻址通信146是双向的,取决于在任何特定的应用中它 们的使用,可能前进到NOC的每个IP块和来自NOC的每个IP块。然而, 每个网络接口控制器能够向或从关联的路由器发送和接收此类通信,每个网 络接口控制器能够绕过关联存储器通信控制器106直接向或从关联的IP块发 送和接收此类通信。

在图3的例子中的每个网络接口控制器108也能够实现网络上的虚拟通 道、根据类型对网络数据包特征化。每个网络接口控制器108包括虚拟通道 实现逻辑148,其推送以数据包的形式的指令到路由器以便在NOC上传输之 前,根据类型将每个通信指令分类并且在网络数据包格式的字段中记录指令 类型。通信指令类型的例子包括IP块间基于网络地址的消息、请求消息、请 求消息的响应、指向高速缓存器的无效消息、存储器加载和存储消息、以及 存储器加载消息的响应,等等。

在图3的例子中的每个路由器110包括路由逻辑152、虚拟信道控制逻 辑154、和虚拟信道缓冲区156。路由逻辑通常是作为为由路由器110、链路 118、和路由器之间的总线形成的网络中的数据通信实现数据通信协议栈的同 步和异步逻辑的网络实现的。路由逻辑152包括本领域的技术人员可能会将 片外网络与路由表相联系的功能,至少在一些实施例中路由表被认为太慢并 且在NOC中使用繁琐。作为同步和异步逻辑的网络实现的路由逻辑可被配置 为在单独的时钟周期内做出路由决定。在这个例子中的路由逻辑通过为转发 在路由器中接收的每个数据包选择一个端口来路由数据包。每个数据包中包 含该数据包要被路由到的网络地址。

在以上描述的基于存储器地址的通信中,每个存储器地址被描述为由网 络接口控制器映射到网络地址,即存储器通信控制器的网络位置。存储器通 信控制器106的网络位置,自然也是该存储器通信控制器相关的路由器110、 网络接口控制器108和IP块104的网络位置。因此,在IP块内,或者基于 网络地址的通信,对应用级数据处理来说把网络地址视为由NOC的路由器、 链路和导线总线形成的网络之内的IP块的位置也是常见的。图2说明这样的 网络的一种组织是行和列的网格,其中每个网络地址可以被实现为,例如, 或者为该网格的每个集合的相关的路由器、IP块、存储器通信控制器、和网 络接口控制器的唯一标识符,或者为该网格中每个这样集合的X,Y坐标。

在图3的NOC 102,每个路由器110实现两个或多个虚拟通信信道,其 中每个虚拟通信信道由通信类型来特征化。因此,通信指令的类型,以及虚 拟通道类型,包括上面提到的:IP块间基于网络地址的消息、请求消息、请 求消息的响应、指向高速缓存器的无效消息、存储器加载和存储的消息、以 及存储负载的消息的响应,等等。为了支持虚拟通道,在图3的例子的每个 路由器110还包括虚拟通道控制逻辑154和虚拟信道缓冲区156。虚拟通道 控制逻辑154为每个接收到的数据包检查其分配的通信类型并且将每个数据 包放到用于该通信类型的输出虚拟通道缓冲区从而通过端口传输到NOC上 的相邻路由器。

每个虚拟信道缓冲区156具有有限的存储空间。当在很短的时间内收到 许多数据包时,虚拟信道缓冲区可能被填满,这样缓冲区就不能放置更多的 数据包。在其他协议中,到达其缓冲区已满的虚拟通道的数据包会被扔掉。 然而,在这个例子中,每个虚拟通道缓冲区156,能够使用导线总线的控制 信号通过虚拟通道控制逻辑建议周围的路由器暂停在虚拟通道的传输,即, 暂停特定通信类型的数据包传输。当一个虚拟通道被如此暂停,所有其他的 虚拟通道不受影响–可继续满负荷运行。控制信号一直连线回去穿过每个路由 器到达每个路由器相连的网络接口控制器108。每个网络接口控制器被配置 为,一旦接收这样的信号,从其相关的存储器通信控制器106或从其相关的 IP块104,拒绝接收暂停虚拟通道的通信指令。以这种方式,虚拟通道暂停 影响到所有实现虚拟通道的硬件,一直回溯到始发IP块。

在虚拟通道暂停数据包传输的一个效果是不会扔掉数据包。当路由器遇 到在一些不可靠的协议中数据包可能会被扔掉的情况时,例如,互联网协议, 在图3的例子中的路由器可以通过它们的虚拟信道缓冲器156和它们的虚拟 通道控制逻辑154暂停虚拟通道中的所有数据包传输直到缓冲空间再次可 用,消除任何要丢弃数据包的需求。因此,图3的NOC,可以用非常薄的硬 件层实现高可靠的网络通信协议。

图3的例子NOC还可以被配置为对在片上和片外之间的存储器高速缓冲 存储器保持高速缓存一致性。每个NOC可以支持多个高速缓存器,其中每个 高速缓存器针对相同的底层存储器地址空间操作。例如,高速缓存器可以被 IP块、被存储器通信控制器、或被NOC外部的高速缓存控制器控制。图2 所示的例子中,片上存储器114或116二者之一,也可作为片上高速缓存器 实现,并且,在本发明的范围内,高速缓冲存储器也可以片外实现。

图3说明的每个路由器110包括五个端口,四个端口158A-D 118通过总 线导线连接到其他路由器,第五端口160通过网络接口控制器108和存储器 通信控制器106将每个路由器连接到其相关的IP块104。可以从图2和3的 解释中看出,NOC 102的路由器110和链路118形成具有纵向和横向链路的 网状网络,该链路在每个路由器连接垂直和水平端口。例如,在图3的说明 中,端口158A,158C和160被称为垂直端口,端口158B和158D被称为水 平端口。

接着图4说明了在另一种实施方式下的与本发明相一致的IP块104一个 示例性的实现,其被实现为划分为发出或指令单元(IU)162、执行单元(XU) 164和辅助执行单元(AXU)166的处理单元。在所示的实施中,IU 162包 括从L1指令高速缓存器(iCACHE)170接收指令的多个指令缓冲器168。 每个指令缓冲器168专用于多个,例如,四个,对称多线程(SMT)硬件线 程之一。有效到真实转换单元(iERAT)172耦合到iCACHE 170,并用于将 来自多个线程提取序列发生器174的指令提取请求转换成到真实地址来从较 低级存储器检索指令。每个线程提取序列发生器174专用于特定的硬件线程, 并用于确保关联线程要执行的指令被提取到iCACHE从而分派到合适的执行 单元。还如图4所示,提取到指令缓冲器168的指令也可以被分支预测逻辑 176监视,该分支预测逻辑176提供指示到每个线程读取序列发生器174来 降低在执行线程中由分支导致的指令高速缓存未命中。

IU 162也包括专用于每个硬件线程的依赖/发出逻辑块178,并被配置为 解决依赖性,并且控制从指令缓冲器168向XU 166的指令发出。此外,在说 明的实施例中,在AXU 166提供单独的依赖/发出逻辑块180,因此使得由不 同的线程同时发布单独的指令给XU 164和AXU 166。在替换的实施例中, 逻辑180可以布置在IU 162中,或者可以整体上被省略,以便逻辑178将指 令发布给AXU166。

XU 164被实现为定点执行单元,包括一组耦合到定点逻辑184、分支逻 辑186和加载/存储逻辑188的通用寄存器(GPR)182。加载/存储逻辑188 耦合到L1数据高速缓存器(dCACHE)190,由dERAT逻辑192提供有效到真 实转换。XU 164可以被配置为实际执行任何指令集,例如,所有的或部分32 位或64位PowerPC指令集合。

AXU 166作为辅助执行单元操作,包括专用的依赖/发出逻辑180和一个 或多个执行块194。AXU 166可以包括任意数量的执行模块,可以实际实现 任何类型的执行单元,例如,浮点单元,或一个或多个专门的执行单元如加 密/解密单元,协处理器,矢量处理单元,图形处理单元,XML处理单元, 等。在所说明的实施例中,AXU 166包括到XU 164的高速辅助接口,例如, 来支持AXU架构状态和XU架构状态之间的直接移动。

可以用与图2有关的上述讨论的方式通过耦接到NOC102的网络接口控 制器108管理与IP块104的通信。可以提供如访问L2高速缓存器的基于地 址的通信以及基于消息的通信。例如,为了处理IP块间的节点内通信,每个 IP块104可以包括专用收件箱(in box)和/或发件箱(out box)。

本发明实施例可在结合图1-4的以上描述的硬件和软件环境中实施。然 而,从本公开中受益的本领域技术人员可以知道,本发明可以在多种不同的 环境实现,可以对上述描述的硬件和软件作其他的修改而不脱离本发明的范 围和实质。因此,本发明并不限于这里公开的特定的硬件和软件环境。

用于远程地址转换数据结构管理的转换管理指令

为了以功能的和安全的方式访问共享存储器,加速器、协处理器、中央 处理单元(CPU,这里又称为通用处理节点)以及其他类型的处理节点往往 需要地址转换数据结构,如页表、转换后备缓冲器(TLB)、和有效到真实地 址转换表(ERAT)。因此,许多这些硬件组件包括需要高速缓存转换记录的 硬件,在许多情况下,需要支持管理这样的地址转换数据结构的软件管理, 即,从而在多个处理节点之中的一个处理节点上的管理软件或其他监控程序 能够管理其他节点上的地址转换数据结构。

与本发明相一致的实施例希望通过支持一个或多个适合管理远程地址转 换数据结构的转换管理指令减少管理加速器、协处理器、CPU和其他处理节 点的软件开销量。

例如,图5说明了适合于实现与本发明相一致的转换管理指令的数据处 理系统200的示例。系统200中,存储器总线202与多个处理核204一起耦 合到存储器管理单元(MMU)206。虽然在图5中只说明了两个处理核204, 可以理解,在本发明的不同的实施例中,可以使用任何数量的处理核。

每个处理核204是包括多个(N)硬件线程208、以及一个有效的真实转 换(ERAT)表210和集成的L1高速缓存器212的SMT核。如本领域技术人 员理解的那样,ERAT 210作为存储器地址转换数据、例如页表记录(PTE) 的高速缓存器,并且通常与低级数据结构相关,例如,与在MMU 206之内 布置的或可访问MMU 206的转换后备缓冲器(TLB)214相关。TLB 214也 可作为通常存储在存储器218中的较大页表216的高速缓存器。

存储器系统可以包括多级存储器和高速缓存器,因此,示出的数据处理 系统200包括耦合到MMU 206并被处理核204共享的L2高速缓存器220。 此外,为了扩展或增强数据处理系统200对特定的应用程序或对特定类型的 工作负载的性能,还可以将一个或多个加速器222和/或协处理器224耦合到 总线202,从而可以为执行各种处理任务而访问,例如,高级的算术运算、 加密/解密、压缩/解压缩、图形、视频或图像处理等,在每个这样的加速器 222和224之内也可提供专用的ERAT 226,228。

然而,可以知道,在本发明的其它实施例中可以使用各种替代的处理和/ 或存储结构。例如,可以使用额外的高速缓存存储器级别,例如,L3高速缓 存器,在某些实施例中,例如,在基于非统一存储器访问(NUMA)的数据 处理系统中,存储器218可以被分割。此外,例如,对特定的处理核可以专 用额外的缓存级别,从而使每个处理核包括专用的L2高速缓存器,该L2高 速缓存器可以被集成到处理核或被耦合到处理核和存储器总线之间。在一些 实施例中,L2或L3高速缓存器可以直接耦合到存储器总线,而不是通过到 MMU的专用接口。

例如,图6说明了数据处理系统240的另一种实现,其包括耦合多个处 理核到支持主存储器248的存储器管理单元246的存储器总线或其他共享网 络242。每个处理核244包括多个能够从一个或多个指令流提取、解码、分 配并执行指令的功能单元,如指令单元(IU)250、加载存储单元(LQ)252、 一个或多个固定点执行单元(XU)254和一个或多个辅助执行单元(AXU) 256。XU和AXU的不同的数量以及组合,可用于在不同的设计中支持不同 类型的工作负载,并且AXU可以被实现为,例如,标量或矢量单元、浮点执 行单元、或各种加速器或引擎。

每个处理核244进一步包括使用单独的指令(iCache)和数据(dCache) 高速缓存器258、260实现的L1高速缓存器,每一个L1具有相关联的ERAT、 用于iCache 258的iERAT 262及用于dCache 260的dERAT 264。此外,每个 处理核244通过相关联的L2高速缓存器266耦合到系统总线242,并且包括 与其关联的MMU 268和TLB 270。

每个iERAT 262、dERAT 264和TLB 270对来自系统存储器248中的页 表272的记录进行高速缓存。此外,MMU 246还包括用于代表一个或多个加 速器276和/或协处理器278高速缓存记录的TLB 274,每个加速器276与协 处理器278包括专用的ERAT 280,282。

可以理解,在图5和6中示出的组件可以被集成到相同的集成电路器件、 或芯片、或者可以布置在多个这样的芯片内。例如,在一个实施例中,每个 处理核被实现为在NOC排列中的IP块,相关的系统总线、加速器、协处理 器、高速缓存器、MMU和/或存储器作为SOC排列中的处理核被集成到同一 芯片。在其它实施例中,在来自处理核的不同芯片中的一个或多个这些部件, 以及在某些例子中的处理核,可以在单独的芯片中处理。

在这些实施例的每个中,处理核、加速器、协处理器、和包括专用的ERAT、 TLB或其它地址转换数据结构的任何其他组件可以被认为是一个处理节点。 此外,每个系统总线可以被认为是一个共享网络,其使得连接到该共享网络 的处理节点能彼此通信。可以理解,在替代实施例中,可以使用其它共享网 络的实现,例如,包括多点总线(multi-drop buses)、交换网络(switched  networks)、基于数据包的网络,等。在一般情况下,考虑到各种本发明可以 使用的多种已知的处理器和存储器结构,可以知道本发明不限于这里说明的 特定的硬件组件和这里说明的其它体系结构实现。

在如图5和6所示的实施例中,可以实现转换管理指令从而使运行在处 理节点、例如CPU或通用处理节点上的软件能够远程管理在连接到相同的共 享网络的其他节点上的地址转换数据结构。通过这样做,监控程序如管理程 序能够更好地管理远程节点,尤其是在这样节点中的地址转换数据结构,从 而当访问共享存储器时由这些远程节点最大化存储器访问性能。

在本发明的一个实施例,例如,处理节点的至少一部分可以被实现为从 国际商业机器获得的并与Power指令集架构(ISA)兼容的A2兼容处理核。 A2核的指令集支持大量的存储器管理相关的指令。例如,对于TLB管理, 支持以下指令:TLB读指令(tlbre)、TLB写入指令(tlbwe)、TLB搜索指令 (tlbsx)、TLB搜索和保留指令(tlbsrx)、TLB无效虚拟地址指令(tlbivax)、 TLB无效本地指令(tlbilx)和TLB同步指令(tlbsync)。对ERAT管理也存 在相应的指令,包括eratre、eratwe、eratsx、erativax以及eratilx。

这些指令的一个共同的特点是,除了TLB和ERAT无效虚拟地址指令 (tlbivax和erativax)外,这些指令用于执行在执行该指令的同一节点中的地 址转换数据结构的本地管理。对于tlbivax和erativax指令,这些指令是全局 作用的,其无效被高速缓存在包括本地和远程处理节点中的任何地址转换数 据结构中的记录。

然而,与本发明相一致的实施例,通过支持额外的在本地和远程节点发 起两个不同但互补的操作的转换管理指令以及在远程节点上启动操作而不在 本地节点执行互补操作的额外指令,提供超出由A2指令集合提供的额外的 功能。以下将变得更加明显,这种额外的功能可以用于使运行在一个处理节 点上的管理程序(hypervisor)或其他管理程序为加速器、协处理器甚至其他 通用处理节点“设置”地址转换数据结构,以便当发布这些节点要执行的任务 时,最小化转换未命中发生的可能性,从而最小化与执行这些发布的任务相 关的延迟。

第一类型指令用于在本地处理节点的地址转换数据结构上执行第一、本 地操作;并在至少一个远程处理节点的地址转换数据结构上启动第二、远程 操作。例如,管理程序可以使用搜索和推送指令来搜索在本地节点上的地址 转换数据结构,如果找到匹配,转发该值到一个或多个远程节点,例如,到 加速器或其他处理节点。从而这样的指令使得一个节点提前使能并且设置加 速器或其他处理节点来访问由本地管理程序控制的位置。

例如,如图7所示,ERAT搜索和推送指令280可用于基于指定的搜索 准则搜索在本地节点的ERAT,如由指令的操作数指定(块282)。如块284 所示,如果没有发现匹配搜索准则的记录,可以响应该指令返回“未发现”状 态(块286)。否则,如果发现,作为对该指令的响应,可以推送识别的记录 到一个或多个远程ERAT(块288),并将匹配记录的标识符返回给本地节点 (块290)。此外,如块292所示,当远程节点接收推送的记录时,该节点可 在与该节点相关的ERAT中插入该记录。

记录可以以与本发明相一致的多种方式被推到远程的ERAT。例如,可 以通过系统总线上的命令、例如使用分配到推送指令的、由任何具有ERAT 的处理节点监听的命令类型,来推送记录。此外,在一些实施例中,可能需 要支持定向和广播推送指令中的一个或两个。定向推送指令,例如,可以识 别一个或多个特定的处理节点,使得仅将记录推送给本地节点请求的特定的 处理节点,例如,使用系统总线上的定向指令。另一方面,广播推送指令可 用于向所有的远程处理节点推送指令,从而所有这样的节点在各自的ERAT 中存储记录,例如,使用系统总线上的广播命令。

ERAT搜索和推送指令可以以,例如,与在Power ISA中的ERAT检索索 引指令类似的方式实现。在Power ISA中ERAT检索索引指令包括三个操作 数,RA,RB和RT,RA和RB是用来指定用于在本地的ERAT检索的有效 地址(EA),而RT是用来返回对那个有效地址的第一匹配记录的索引,对与 本发明相一致的ERAT搜索和推送指令可以使用相同的指令格式。在多个实 施例中,可以使用专用寄存器来选择不同的可配置选项,例如,广播或定向, 用于定向一个或多个特定的远程处理节点的掩码或其它标识符、或者一些或 所有这些信息可以被编码到指令中。例如,在一个实施例中,可以在RT操 作数中指定掩码或定向目标,以便指定哪一个是指令定向的远程节点。

作为第一类型指令的另一个例子,写入和推送指令可用于写入地址转换 数据结构,以及将值转发给加速器或另一个处理节点。因此,这种指令也使 得提前使能并且设置加速器或其他处理节点来访问本地管理程序控制的位 置。如图8所示,例如,ERAT写入和推送指令300可用于将数据写入到本 地节点中的ERAT记录,如由指令操作数指定(块302)。然后,推送写入数 据到一个或多个远程ERAT(块304),并且,如块306所示,当远程节点接 收推送数据时,该节点可以对与那个节点关联的ERAT执行类似的写入。

ERAT写入和推送指令可以,例如,以与在Power ISA中ERAT写入指令 类似的方式实现。Power ISA中ERAT写入指令包括三个操作数,RS,RA和 WS。RS指定要写入到记录中的数据,而RA指定要写入的记录,以及WS 指定要写入记录的两部分中的哪一个。在多个实施例中,专用寄存器可以用 来选择不同的可配置选项,例如,广播或定向,用于定向一个或多个指定的 远程处理节点的掩码或其它标识符、或者一些或全部这些信息可以被编码到 指令中。例如,在一个实施例中,可以在RT操作数中的一部分中指定掩码 或定向目标,以便指定指令定向到哪一个远程节点。

关于第二类型的转换管理指令,可以使用远程无效指令来删除或无效在 一个或多个远程节点的一个或多个地址转换数据结构中的选定记录,却不删 除或无效在本地节点的地址转换数据结构中的对应记录。具体而言,可以使 用远程无效指令来发起在远程处理节点的地址转换数据结构中的无效操作来 无效在远程处理节点的地址转换数据结构中的记录而不无效在本地节点的地 址转换数据结构中对应的记录。

如图9所示,例如,ERAT远程无效指令310可以将无效操作推送给一 个或多个远程ERAT(块312),并且,如块314所示,当远程节点接收到被 推送的无效操作时,该节点可以无效在该远程节点的ERAT中指定的记录。

ERAT远程无效指令可以,例如,以在Power ISA中ERAT无效虚拟地址 索引指令类似的方式实现。Power ISA中ERAT无效虚拟地址索引指令包括三 个操作数,RS,RA和RB。RS指定页面大小,RA和RB共同指定有效地址 (EA)。在多个实施例中,可以使用专用寄存器来选择不同的可配置选项, 例如,例如,广播或定向,用于定向一个或多个指定的远程处理节点的掩码 或其它标识符、或者一些或全部这种信息可以被编码到指令中。例如,在一 个实施例中,可以在RT操作数的一部分中指定掩模或定向,以便指定指令 定向到哪一个远程节点。然而,不像ERAT无效虚拟地址索引指令,在本地 节点上的ERAT中的对应的记录不被无效,在许多实施例中,这允许本地管 理程序使用更高的精度控制远程ERAT记录。

在本发明的某些实施例中,TLB指定指令可以用于代替或补充ERAT指 定指令。图10,例如,说明了TLB搜索和推送指令320,其可用于基于指定 的搜索准则搜索在本地节点的TLB,如由指令操作数指定(块322)。如块324 所示,如果没有找到匹配搜索准则的记录,响应于该指令,可以返回“未发现” 状态(块326)。否则,如果发现,可以将该识别的记录向一个或多个远程TLB 推送(块328),并将匹配记录的标识符返回到本地节点(块330),作为对指 令的响应。此外,如块332所示,当远程节点接收被推送的记录时,该节点 可以在该节点相关的TLB中插入记录。

此外,如图11所示,例如,TLB写入和推送指令340可以用于将数据写 入到本地节点的TLB记录,如由指令操作数指定(块342)。然后,写入数据 被推送到一个或多个远程TLB(块344),并且,如块346所示,当推送的数 据被远程节点接收时,该远程节点可以对该节点相关的TLB执行类似的写入。

此外,如图12所示,例如,TLB远程无效指令350可以将无效操作推送 给一个或多个远程TLB(块315),并且,如块354所示,当推送的无效操作 被远程节点接收时,该节点可以使在那个远程节点中指定的记录无效。

TLB搜索和推送、写入和推送、以及远程无效指令的每一个可以类似于 在Power ISA中的指令来实现,并且以与前面所讨论的ERAT指定的指令类 似的方式配置,例如,TLB搜索和推送指令类似于tlbsx指令实现,TLB写 入和推送指令类似于tlbwe指令实现,以及TLB远程无效指令类似于tlbivax 指令实现。

此外,在一些与本发明相一致的实施例中,上述转换管理指令可以实现 额外的功能,例如,通过组合或捎带(piggy-backing)指令到指令集合中的 其他指令。例如,在一个实施例中,搜索和推送指令与写入和推送指令可与 协处理器启动指令配对或被捎带(piggy-backed),例如在Power ISA的icswx 指令。在这样的实施例中,所需的转换信息可以随着处理器或加速器(对于 本实施例的目的统称为协处理器)的启动或启动命令传递。

例如,图13说明了以转换启动协处理器指令360可以,例如,以与Power  ISA的icswx指令类似的方式实现。指令可以在,例如,为协处理器的控制块 设置后执行,以便启动指令的执行使协处理器使用控制块(以及各种控制寄 存器)中的数据执行任务。这样的指令可能是有用的,例如,如果协处理器 只需要一页内存,则那一页的转换记录可以随着启动命令而发送。

当执行以转换启动协处理器指令时,ERAT(或TLB)在本地节点基于指 定的搜索准则被搜索,诸如由指令操作数指定(块362)。如块364所示,如 果没有找到匹配搜索准则的记录,响应该指令,可以返回“未发现”状态(块 366)。否则,如果发现,识别的记录可以随着启动命令或位被推送到协处理 器(块368)。然后,根据指令是否指定节点应该等到状态从协处理器返回(块 370),指令或者返回匹配记录的标识符并立即完成(块372),或等待从协处 理器返回的状态(块374)。一旦接收到状态,在块376返回匹配记录标识符 和状态。

从协处理器的角度,当从发起节点接收到记录和启动命令,该协处理器 将推送的记录插入到其相关的ERAT(或TLB)378,并执行由控制块指定的 任务(块380)。然后在块382返回任务执行的状态。

此外,在一些实施例中,以转换启动协处理器指令可以协同缺乏专门的 地址转换数据结构的协处理器或加速器一起使用。因此,如果一个特定的协 处理器或加速器只需要一页存储器,那么该指令可以用来与工作启动一起发 送那一页的转换记录,因此该协处理器或加速器不需要专用的ERAT或 MMU。

应该理解的是,上述指令的每一个被在本地处理节点的指令集中定义, 以便当从被本地处理节点执行的指令流接收每个指令时,本地处理节点的发 送单元将对指令解码,然后执行上面讨论的操作。应该理解的是,在处理节 点内部的、尤其是在解码这种指令的发送单元的解码逻辑内的、在执行相关 操作的地址转换逻辑内的、以及在通过共享网络推送命令和探听其他节点发 送的命令的接口逻辑内的这种指令的实现,都会在从本公开中受益的本技术 领域的普通技术人员的能力之内。

因此,与本发明相一致的实施例可用于减少多节点数据处理系统中在管 理加速器、协处理器、以及其他远程处理节点的软件开销量。对公开的实施 例可做各种额外的变形而不脱离本发明的范围和实质。因此,本发明提出以 下附加权利要求。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号