到芯片外辅助执行单元的外部辅助执行单元接口的制作方法

文档序号:6497985阅读:190来源:国知局
到芯片外辅助执行单元的外部辅助执行单元接口的制作方法
【专利摘要】在第一可编程芯片中布置的处理核心和在第二可编程芯片中布置的芯片外AXU之间提供外部辅助执行单元(AXU)接口,以将AXU与发出单元、定点执行单元和在处理核心中可选的其他功能单元集成。外部AXU接口使得发出单元能够以与发出单元将能够向在同一芯片上布置的AXU发出指令几乎相同的方式向AXU发出指令。这样做,可以独立于该第一可编程芯片上的处理核心来设计、测试和验证在该第二可编程芯片上的AXU,由此使得能够与多个不同的AXU设计结合来使用已经设计、测试和验证的公共处理核心。
【专利说明】到芯片外辅助执行单元的外部辅助执行单元接口

【技术领域】
[0001] 本发明总体上涉及数据处理,并且具体地涉及处理器架构和其中并入的执行单 J Li 〇

【背景技术】
[0002] 计算机和其他可编程电子装置持续被融入社会的每一个方面。虽然计算机曾经占 据了全部场所,但是计算机和向这样的计算机供电的集成电路装置或芯片现在已经被最小 化和商品化到甚至在产品和装置的大多数日常情况中都可以找到它们的程度。
[0003] 诸如微处理器、微控制器和专用集成电路(ASIC)等的可编程芯片在成本、功耗和 特征尺寸减小的同时在复杂度和功率方面持续增大。虽然计算机曾经并入了用于处理器、 图形控制器、协处理器、存储器控制器和其他芯片集逻辑的独立芯片,但是所有这些类型的 功能单元经常被集成到单个可编程芯片中。而且,一旦已经开发、测试和验证了特定的芯片 设计,在每单元的基础上制造成本经常较低。
[0004] 因此,与将可编程芯片投入市场相关联的工作和花费的极大部分投入于可编程芯 片的初始设计、测试和验证。因为这个原因,每当可能时使用设计再用,使得先前已经设计、 测试和验证的诸如特定处理器核心设计、功能单元和其他逻辑块的可编程芯片的部分不需 要从头开始重新创建。
[0005] 然而,即使通过设计再用,将多个设计组件集成为共同设计频繁地要求设计和测 试一些定制逻辑,以确保这些组件一旦被集成到相同的可编程芯片上时彼此将正确地操 作。例如,现代微处理器通常包括诸如发出或指令单元、加载/存储单元、执行单元、存储 器控制器、图形控制器、高速缓存和其他板载存储器等的功能单元,并且,这样的微处理器 的开发经常需要相当大的开发、测试和验证工作来确保所有的功能单元以意图的方式而操 作。
[0006] 此外,许多微处理器设计依赖于可以通过使用不同的功能单元而扩充的基本设 计,以提供对于不同的应用而优化的各种设计。例如,可能期望通过以下来扩充微处理器的 功能:将多个处理核心集成在一起以促进并行处理,并且将各种执行单元集成在处理核心 内以优化该核心来处理某些类型的工作量。例如,尽管基本的微处理器设计经常包括具有 向处理整数运算的被称为定点单元、整数单元或算术逻辑单元的执行单元发出指令的发出 或指令单元的处理核心,但是,另外的执行单元、例如浮点执行单元、图形引擎、物理引擎和 加密引擎等可以被并入到该基本设计内,以提供对于某些应用优化的专用设计。
[0007] 利用在各个处理核心和可编程芯片中组合不同类型的执行单元的能力,提供了用 于开发专用硬件的极大的设计灵活性。另一方面,考虑到仍需要相当大的先期工作来设计、 测试和验证被集成到专用可编程芯片内的多个功能单元,仍然存在与将专用可编程芯片投 入市场相关联的相当大的成本。
[0008] 关于可编程芯片的开发已经出现的另一个考虑是不同实体的所设计、开发的功能 单元或否则属性的集成。消费者经常依赖于其他实体来设计他们的可编程芯片,并且设计 可编程芯片的实体和消费者两者专有的设计经常被一起集成在相同的可编程芯片上,经常 导致许可问题以及关于保持一些设计的保密特性的担忧。
[0009] 因此,在本领域中持续存在对于促进专用可编程芯片和包含并入这样的芯片的电 子装置的开发的方式的极大的需要。


【发明内容】

[0010] 本发明通过提供以下方法、设备和程序产品来处理与现有技术相关联的这些和其 他问题,该方法、设备和程序产品利用在第一可编程芯片中布置的处理核心和在第二可编 程芯片中布置的芯片外辅助执行单元(AXU)之间的外部AXU接口。该AXU接口将AXU与至 少包括发出单元和定点执行单元的处理核心集成,并且使得发出单元能够以与该发出单元 将能够向在同一芯片上布置的AXU发出指令几乎相同的方式向该AXU发出指令。这样做, 可以独立于在该第一可编程芯片上的处理核心来设计、测试和验证在该第二可编程芯片上 的该AXU,由此使能够与多个不同的AXU设计结合来使用已经设计、测试和验证的公共处理 核心。
[0011] 与本发明的一个方面一致,一种集成电路芯片包括具有发出单元和定点执行单元 的处理核心,其中该发出单元配置为向该定点执行单元发出指令以由其执行。另外,在该集 成电路芯片上布置并且耦合到该发出单元的外部辅助执行单元(AXU)接口逻辑被配置为 接收由该发出单元发出的指令,并且通过外部AXU接口向芯片外AXU发送该指令以由该芯 片外MU执行。
[0012] 与本发明的另一方面一致,一种集成电路芯片包括芯片外辅助执行单元(AXU)和 外部AXU接口逻辑,该外部AXU接口逻辑被配置为将该芯片外AXU耦合到在不同的芯片上 布置的处理核心,该处理核心包括定点执行单元和发出单元,该发出单元被配置为向该定 点执行单元发出指令以由该定点执行单元执行。该外部AXU接口逻辑被配置为通过外部 AXU接口接收由该发出单元发出的指令,并且向该芯片外AXU发送该指令以由其执行。
[0013] 在附于此并且形成本发明的进一步的部分的权利要求中给出了表征本发明的这 些和其他优点和特征。然而,为了更好地理解本发明和通过其使用而达到的优点和目标,应 当参考附图和伴随的描述性内容,在其中描述了本发明的示例性实施例。

【专利附图】

【附图说明】
[0014] 图1是与本发明的实施例一致的包括在数据处理中可用的示例性计算机的示例 性自动计算机构的框图。
[0015] 图2是在图1的计算机中实现的示例性N0C的框图。
[0016] 图3是更详细地图示来自图2的N0C的节点的示例性实现的框图。
[0017] 图4是图示来自图2的N0C的IP块的示例性实现的框图。
[0018] 图5是与本发明一致的来自图2的N0C并且并入了与芯片外的外部辅助执行单元 (AXU)的AXU接口的IP块的框图。
[0019] 图6是与本发明一致的并入了外部AXU接口的另一示例性数据处理系统的框图。
[0020] 图7是在图6中提及的外部AXU接口的示例性实现的框图。
[0021] 图8是图示当向芯片外AXU发送指令时由图6的外部AXU接口进行的操作的示例 性序列的流程图。

【具体实施方式】
[0022] 与本发明一致的实施例利用在第一可编程芯片中布置的处理核心和在第二可编 程芯片中布置的芯片外AXU之间的外部辅助执行单元(AXU)接口以将AXU与发出单元、定 点执行单元以及可选地在处理核心中的其他功能单元集成。外部AXU接口使得发出单元能 够以与发出单元将能够向布置在相同芯片上的AXU发出指令的几乎相同的方式来向AXU发 出指令。这样做,可以独立于在第一可编程芯片上的处理核心来设计、测试和验证在第二可 编程芯片上的AXU,由此使能够与多个不同的AXU设计结合来使用已经设计、测试和验证的 公共处理核心。
[0023] 与本发明一致的AXU可以并入扩充、加速或另外改善处理核心对于期望的应用的 性能的各种类型的功能。例如,AXU可以被实现为浮点单元(FPU)、压缩引擎、图形引擎、 加密引擎、物理引擎、正则表达式引擎、数字信号处理器(DSP)、分组处理器、专有设计和/ 或其组合。AXU被布置在与处理核心分离的芯片中,并且可以使用多个不同硬件设计的任 何一个而实现,该多个不同硬件设计包括例如专用集成电路(ASIC)、现场可编程门阵列 (FPGA)、芯片堆栈、定制逻辑、离散组件、传感器等。
[0024] 外部AXU接口将芯片外AXU与处理核心互连,允许在处理核心中的发出单元和可 选地在处理核心内的另外的功能单元、例如定点执行单元、存储器管理单元、高速缓存单 元、片上加速器、浮点单元、外部1/〇(例如,PCIe、USB、SATA)等之间的通信,由此使得AXU 能够利用在处理核心中的功能单元,并且能够与处理核心紧密地集成。AXU接口被配置为 从指令单元向芯片外AXU流动(stream)指令,并且在处理核心和芯片外AXU之间传送架构 状态信息,由此保持一致的整体架构状态。然而,与本发明一致的外部AXU接口可以在处理 核心和外部AXU之间传送另外的信息,该另外的信息包括例如加载和存储数据、复位/刷新 (flush)命令、响应/完成消息等。
[0025] 与本发明一致的外部AXU接口在一些实施例中也可以并入转换逻辑,该转换逻辑 被配置为在处理核心中通常具有的高速域和在处理核心和芯片外AXU之间的较低速通信 链路之间相接口。例如,外部AXU接口可以并入支持无限或不确定的等待时间的协议。外部 AXU接口还可以包括步降/步升逻辑以在处理核心中的高频域和在芯片至芯片接口上的较 低频域之间相接口,并且外部AXU接口可以包括串行器和/或分组器(packetizer)逻辑, 以转换为通过芯片至芯片接口的基于串行和/或基于分组的格式,并且外部AXU接口可以 支持可变总线宽度,使得可以在不同的应用中使用不同的宽度。
[0026] 其他变型和修改对于本领域普通技术人员将是显然的。因此,本发明不限于在此 所述的特定实现方式。
[0027] 硬件和软件环塏
[0028] 现在转向附图,其中,在几个附图中相似的标号表示相似的部分,图1图示了与本 发明的实施例一致的包括在数据处理中可用的示例性计算机10的示例性自动计算机构。 图1的计算机10包括至少一个计算机处理器12或'CPU'以及随机存取存储器14('RAM'), 该随机存取存储器14通过高速存储器总线16和总线适配器18连接到处理器12和计算机 10的其他组件。
[0029] 在RAM14中存储应用程序20,其是用于实行诸如例如字处理、电子表格、数据库操 作、视频游戏、股市模拟、原子的量子过程模拟或者其他用户级应用的特定数据处理任务的 用户级计算机程序指令的模块。在RAM14中还存储了操作系统22。结合本发明的实施例可 用的操作系统包括 UNIX?、Linux?、Microsoft Windows XP?、AIX?、IBM 的 i5/0S? 和对于 本领域技术人员而言将存在的其他操作系统。在图1的示例中的操作系统22和应用20示 出在RAM14中,但是这样的软件的许多组件通常也被存储在非易失性存储器中,例如,在盘 驱动器24上。
[0030] 如在以下将变得更明显的,与本发明一致的实施例可以被实现在芯片上网络 (N0C)集成电路装置或芯片内,并且如此一来,计算机10被图示为包括两个示例性N0C :视 频适配器26和协处理器28。可以替换地被称为图形适配器的N0C视频适配器26是专门 设计用于向诸如显示屏幕或计算机监视器的显示装置30的图形输出的I/O适配器的示例。 N0C视频适配器26通过高速视频总线32、总线适配器18和也是高速总线的前侧总线34连 接到处理器12。N0C协处理器28通过总线适配器18和也是高速总线的前侧总线34和36 连接到处理器12。图1的N0C协处理器可以被优化例如以在主处理器12的要求下加速特 定的数据处理任务。
[0031] 图1的示例性N0C视频适配器26和N0C协处理器28每一个包括NOC,N0C包括集 成处理器("IP")块、路由器、存储器通信控制器和网络接口控制器,其细节将在下面结合 图2-3更详细地讨论。N0C视频适配器和N0C协处理器每一个对于使用并行处理并且还需 要对共享存储器的快速随机存取的程序被优化。然而,受益于本公开的本领域普通技术人 员将认识到,可以在除了 N0C装置和装置架构之外的装置和装置架构中实现本发明。因此, 本发明不限于在N0C装置内的实现方式。
[0032] 图1的计算机10包括通过扩展总线40和总线适配器18耦合到处理器12和计算 机10的其他组件的盘驱动适配器38。盘驱动适配器38将非易失性数据存储器以盘驱动 器24的形式连接到计算机10,并且可以例如使用集成驱动电子('IDE')适配器、小计算 机系统接口('SCSI')适配器和对于本领域技术人员将存在的其他而实现。非易失性计算 机存储器也可以实现为用作对于本领域技术人员将存在的光盘驱动器、电可擦除可编程只 读存储器(所谓的'EEPR0M'或'快闪'存储器)和RAM驱动器等。
[0033] 计算机10还包括一个或多个输入/输出('I/O')适配器42,其通过例如用于控 制向诸如计算机显示屏幕的显示装置的输出的软件驱动器和计算机硬件以及来自诸如键 盘和鼠标的用户输入装置44的用户输入而实现面向用户的输入/输出。另外,计算机10 包括通信适配器46,用于与其他计算机48的数据通信以及用于与数据通信网络50的数据 通信。可以通过RS-232连接、通过诸如通用串行总线('USB')的外部总线、通过诸如IP 数据通信网络的数据通信网络和以对于本领域技术人员将存在的其他方式串行地实行这 样的数据通信。通信适配器实现硬件级数据通信,通过该硬件级数据通信,一个计算机直接 地或通过数据通信网络向另一个计算机发送数据通信。适合于在计算机10中使用的通信 适配器的示例包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的以太网 (IEEE802. 3)适配器和用于无线数据通信网络通信的802. 11适配器。
[0034] 为了进一步的说明,图2阐述了根据本发明的实施例的示例N0C102的功能框图。 在图2中的N0C被实现在'芯片' 100上,即在集成电路上。N0C102包括被分组为互连节点 的集成处理器('IP')块104、路由器110、存储器通信控制器106和网络接口控制器108。 每一个IP块104通过存储器通信控制器106和网络接口控制器108适配到路由器110。每 一个存储器通信控制器控制在IP块和存储器之间的通信,并且每一个网络接口控制器108 控制通过路由器110在IP块之间的通信。
[0035] 在N0C102中,每一个IP块表示被用作用于N0C内的数据处理的构造块的同步或 异步逻辑设计的可再用单位。术语'IP块'有时被扩展为'知识产权块',有效地将IP块指 定为由一方拥有的、要向半导体电路的其他用户或设计者许可的设计,即一方的知识产权。 然而,在本发明的范围内,不要求IP块经受任何特定的所有权,因此,该术语在本说明书中 总是被扩展为'集成处理器块'。在此指定的IP块是可以是或可以不是知识产权的对象的 逻辑、单元或芯片布局设计的可再用单位。IP块是可以形成为ASIC芯片设计或FPGA逻辑 设计的逻辑核心。
[0036] 通过类推来描述IP块的一种方式是IP块用于N0C设计:库用于计算机编程或离 散集成电路组件用于印刷电路板设计。在与本发明的实施例一致的N0C中,IP块可以实现 为一般的门网表(gate netlist)、完整的专用或通用微处理器或者以对于本领域技术人员 将存在的其他的方式而实现。网表是IP块的逻辑-功能的布尔-代数表示(门,标准单 元),类似于用于高级程序应用的汇编代码列表。也可以例如以用诸如Verilog或VHDL的 硬件描述语言描述的可合成形式来实现N0C。除了网表和可合成实现方式,也可以用较低 级物理描述来表达N0C。诸如SERDES、PLL、DAC、ADC等的模拟IP块元件可以以诸如⑶SII 的晶体管布局格式而分布。有时也以布局格式来提供IP块的数字元件。还将认识到,IP 块以及与本发明一致地实现的其他逻辑电路可以以例如逻辑定义程序代码的计算机数据 文件的形式而分布,该计算机数据文件以各种详细水平定义实现这样的逻辑的电路布置的 功能和/或布局。因此,虽然本发明已经并且在下文中还将在全功能集成电路装置中实现 的电路布置、使用这样的装置的数据处理系统以及其他有形的物理硬件电路的上下文中描 述,但是受益于本公开的本领域普通技术人员将认识到,也可以在程序产品内实现本发明, 并且不管用于分发程序产品的计算机可读存储介质的具体类型如何,本发明等同地适用。 计算机可读存储介质的示例包括但不限于物理可记录型介质,比如易失性和非易失性存储 器装置、软盘、硬盘驱动器、⑶-ROM和DVD(除了别的之外)。
[0037] 在图2的示例中的每一个IP块104通过存储器通信控制器106适配到路由器110。 每一个存储器通信控制器是被适配为提供在IP块和存储器之间的数据通信的同步和异步 逻辑电路的集合。在IP块和存储器之间的这样的通信的示例包括存储器加载指令和存储 器存储指令。下面参考图3更详细地描述存储器通信控制器106。每一个IP块104还通过 网络接口控制器108适配到路由器110,网络接口控制器108控制在IP块104之间的通过 路由器110的通信。在IP块之间的通信的示例包括在并行应用和流水线应用中的在IP块 之间的携带数据的消息和用于处理该数据的指令。还在下面参考图3更详细地描述网络接 口控制器108。
[0038] 路由器110和在其之间的相应链路118实现N0C的网络操作。链路118可以是在 连接所有路由器的物理并行导线总线上实现的分组结构。即,每一个链路可以在宽得足以 同时容纳包括所有的头部信息和有效负荷数据的整个数据切换分组的导线总线上实现。如 果分组结构包括例如包含8字节头部和56字节的有效负荷数据的64个字节,则对着每个 链路的导线总线是64字节宽,512条导线。另外,每个链路可以是双向的,使得如果链路分 组结构包括64字节,则导线总线实际上包含在每一个路由器及其在网络中的相邻者的每 一个之间的1024条导线。在这样的实现方式中,消息可以包括多于一个分组,但是每一个 分组将精确地配合导线总线的宽度。可替代地,可以在仅宽得足以容纳分组的一部分的导 线总线上实现链路,使得分组将被划分为多个节拍(beat),例如使得如果将链路实现为在 宽度上为16字节或128条导线,则可以将64字节的分组划分为四个节拍。将理解,不同的 实现方式可以基于实际的物理限制以及期望的性能特性来使用不同的总线宽度。如果在路 由器和导线总线的每一部分之间的连接被称为端口,则每个路由器包括5个端口,对于在 网络上的数据传输的四个方向的每一个方向一个端口,并且第五端口用于通过存储器通信 控制器和网络接口控制器将路由器适配到特定的IP块。
[0039] 每个存储器通信控制器106控制在IP块和存储器之间的通信。存储器可以包括 芯片外主RAM112、通过存储器通信控制器106直接地连接到IP块的存储器114、被使能为 IP块的芯片上存储器116、以及芯片上高速缓存。在N0C102中,芯片上存储器114U16的任 何一个例如可以被实现为芯片上高速缓存存储器。所有这些形式的存储器可以被布置在相 同的地址空间、物理地址或虚拟地址中,甚至对于直接地附接到IP块的存储器也如此。因 此,存储器寻址的消息相对于IP块可以完全是双向的,因为可以从网络上的任何位置处的 任何IP块直接寻址这样的存储器。在IP块上的存储器116可以从该IP块或从N0C中的 任何其他IP块来寻址。直接地附接到存储器通信控制器的存储器114可以通过由该存储 器通信控制器适配到网络的IP块来寻址,并且也可以从N0C中的任何位置处的任何其他IP 块来寻址。
[0040] N0C102包括两个存储器管理单元('MMU')120、122,图示了与本发明的实施例一 致的用于N0C的两个替代的存储器架构。MMU120被实现在IP块内,允许在该IP块内的处 理器在虚拟存储器中操作,同时允许N0C的整个其余架构在物理存储器地址空间中操作。 MMU122被实现在芯片外,通过数据通信端口 124连接到N0C。端口 124包括在N0C和MMU 之间传导信号所需的管脚(Pin)和其他互连、以及将消息分组从N0C分组格式转换为外部 MMU122所需的总线格式的足够的智能。MMU的外部位置意味着在N0C的所有IP块中的所 有处理器可以在虚拟存储器地址空间中操作,到芯片外存储器的物理地址的所有转换由芯 片外MMU122处理。
[0041] 除了通过使用MMU120U22图示的两个存储器架构之外,数据通信端口 126图示 了能够在本发明的实施例中利用的在N0C中可用的第三存储器架构。端口 126提供了在 N0C102的IP块104和芯片外存储器112之间的直接连接。在处理路径中没有MMU的情况 下,该架构提供了由N0C的所有IP块对于物理地址空间的使用。在双向地共享地址空间时, N0C的所有IP块可以通过经过直接连接到端口 126的IP块引导的、包括加载和存储的存储 器寻址的消息来访问在地址空间中的存储器。端口 126包括在N0C和芯片外存储器112之 间传导信号所需的管脚和其他互连、以及将消息分组从N0C分组格式转换为由芯片外存储 器112所需的总线格式的足够智能。
[0042] 在图2的示例中,IP块之一被指定为主机接口处理器128。主机接口处理器128 提供了在N0C和其中可以安装N0C的主机计算机10之间的接口,并且还向在N0C上的其他 IP块提供数据处理服务,包括例如接收并在N0C的IP块之间分派来自主机计算机的数据处 理请求。NOC可以例如以上在参考图1所述的较大计算机10上实现视频图形适配器26或 协处理器28。在图2的示例中,主机接口处理器128通过数据通信端口 130连接到该较大 主机计算机。该端口 130包括在N0C和主机计算机之间传导信号所需的管脚和其他互连、 以及将消息分组从N0C转换为由主计算机10所需的总线格式的足够的智能。在图1的计 算机中的N0C协处理器的示例中,这样的端口提供在N0C协处理器28的链路结构和在N0C 协处理器28和总线适配器18之间的前侧总线36所需的协议之间的数据通信格式翻译。
[0043] 图3接下来图示更详细地图示被集体地图示在132处的N0C102中的在IP块104、 存储器通信控制器106、网络接口控制器108和路由器110内实现的组件的功能框图。IP 块104包括计算机处理器134和I/O功能136。在这个示例中,计算机存储器由IP块104 中的随机存取存储器('RAM')138的段表示。以上参考图2所述的存储器可以占据物理地 址空间的段,该物理地址空间的在每一个IP块上的内容是可从N0C中的任何IP块寻址和 访问的。每个IP块中的处理器134、I/O能力136和存储器138有效地将IP块实现为通常 可编程的微计算机。然而,如上所述,在本发明的范围内,IP块通常表示被用作N0C内的数 据处理的构造块的同步或异步逻辑的可再用单元。因此,将IP块实现为通常可编程的微计 算机尽管是出于说明的目的而有用的普通实施例但是不是对本发明的限制。
[0044] 在图3的N0C102中,每个存储器通信控制器106包括多个存储器通信执行引擎 140。使得每个存储器通信执行引擎140能够执行来自IP块104的存储器通信指令,包括 在网络和IP块104之间的双向存储器通信指令流141、142、144。由存储器通信控制器执行 的存储器通信指令可以不仅源自通过特定存储器通信控制器而适配到路由器的IP块,而 且可以源自在N0C102中的任何位置处的IP块104。即,在N0C中的任何IP块可以产生存 储器通信指令,并且通过N0C的路由器将该存储器通信指令发送到与另一个IP块相关联的 另一个存储器通信控制器,用于执行该存储器通信指令。这样的存储器通信指令可以包括 例如翻译后备(lookaside)缓冲器控制指令、高速缓存控制指令、屏障指令和存储器加载 和存储指令。
[0045] 使得每个存储器通信执行引擎140能够与其他存储器通信执行引擎分开地并且 并行地执行完整的存储器通信指令。该存储器通信执行引擎实现对于存储器通信指令的同 时处理能力优化的可缩放的存储器业务处理器。存储器通信控制器106支持全部同时运行 用于同时执行多个存储器通信指令的多个存储器通信执行引擎140。由存储器通信控制器 106向存储器通信执行引擎140分配新的存储器通信指令,并且存储器通信执行引擎140可 以同时接受多个响应事件。在这个示例中,所有的存储器通信执行引擎140是相同的。因 此,通过缩放存储器通信执行引擎140的数量来实现缩放可以由存储器通信控制器106同 时处理的存储器通信指令的数量。
[0046] 在图3的N0C102中,使得每个网络接口控制器108能够将通信指令从命令格式转 换为网络分组格式用于通过路由器110在IP块104之间传输。该通信指令可以由IP块 104或由存储器通信控制器106以命令格式而形成,并且以命令格式提供到网络接口控制 器108。该命令格式可以是符合IP块104和存储器通信控制器106的架构寄存器文件的原 本格式。网络分组格式通常是通过网络的路由器110传输所需的格式。每个这样的消息由 一个或多个网络分组构成。在网络接口控制器中从命令格式转换为分组格式的这样的通信 指令的示例包括在IP块和存储器之间的存储器加载指令和存储器存储指令。这样的通信 指令还可以包括在并行应用中和在流水线应用中在IP块之间发送携带数据和用于在IP块 之间处理该数据的指令的消息的通信指令。
[0047] 在图3的N0C102中,使得每一个IP块能够通过IP块的存储器通信控制器向存储 器和从存储器以及然后还通过其网络接口控制器向网络发送基于存储器地址的通信。基于 存储器地址的通信是由IP块的存储器通信控制器的存储器通信执行引擎执行的存储器访 问指令,比如加载指令或存储指令。这样的基于存储器地址的通信通常始发于IP块中,以 命令格式而形成,并且被移交到存储器通信控制器用于执行。
[0048] 以消息流量来执行许多基于存储器地址的通信,因为要访问的任何存储器可能位 于物理存储器地址空间中的任何位置,在芯片上或芯片外,直接地附接到在N0C中的任何 存储器通信控制器,或者最后通过N0C的任何IP块被访问--不管哪个IP块始发了任何 特定的基于存储器地址的通信。因此,在N0C102中,以消息流量而执行的所有基于存储器 地址的通信从存储器通信控制器传递到相关联的网络接口控制器,用于从命令格式转换为 分组格式,并且以消息通过网络而传输。在向分组格式的转换中,网络接口控制器还依赖于 存储器地址或要通过基于存储器地址的通信而访问的地址来识别分组的网络地址。用存储 器地址来寻址基于存储器地址的消息。每个存储器地址被网络接口控制器映射到网络地 址,该网络地址通常是负责某个范围的物理存储器地址的存储器通信控制器的网络位置。 存储器通信控制器106的网络位置自然也是该存储器通信控制器的相关联的路由器110、 网络接口控制器108和IP块104的网络位置。在每个网络接口控制器内的指令转换逻辑 150能够将存储器地址转换为网络地址以用于通过N0C的路由器传输基于存储器地址的通 信的目的。
[0049] 在从网络的路由器110接收到消息流量时,每个网络接口控制器108针对存储器 指令而检查每个分组。包含存储器指令的每个分组被交给与接收网络接口控制器相关联的 存储器通信控制器106,存储器通信控制器106在向IP块发送该分组的剩余的有效负荷以 用于进一步的处理之前执行该存储器指令。以这种方式,总是在IP块开始执行来自消息的 取决于特定存储器内容的指令之前准备存储器内容以支持由该IP块进行的数据处理。
[0050] 在图3的N0C102中,使得每个IP块104能够绕过其存储器通信控制器106,并且 通过IP块的网络接口控制器108直接向网络发送IP块之间的网络寻址的通信146。网络 寻址的通信是通过网络地址引导到另一 IP块的消息。这样的消息发送在流水线应用中的 工作数据、用于在SMD应用中的IP块之间的单个程序处理的多个数据等,如对于本领域技 术人员将存在的。这样的消息与基于存储器地址的通信不同在:它们是从开始由始发的IP 块来网络寻址的,该始发的IP块知道该消息通过N0C的路由器要被引导到的网络地址。这 样的网络寻址的通信由IP块通过I/O功能136以命令格式直接传递到IP块的网络接口控 制器,然后由网络接口控制器转换为分组格式,并且通过N0C的路由器被发送到另一 IP块。 这样的网络寻址的通信146是双向的,取决于它们在任何特定应用中的使用而可能前进到 N0C的每个IP块以及从N0C的每个IP块前进。然而,使得每个网络接口控制器能够向相 关联的路由器发送这样的通信以及从相关联的路由器接收这样的通信,并且使得每个网络 接口控制器能够直接向相关联的IP块发送这样的通信以及从相关联的IP块接收这样的通 信,绕过相关联的存储器通信控制器106。
[0051] 在图3的示例中的每个网络接口控制器108也被使得能够实现在网络上的虚拟信 道,通过类型来表征网络分组。每个网络接口控制器108包括虚拟信道实现逻辑148,该虚 拟信道实现逻辑148根据类型来分类每个通信指令,并且在网络分组格式的字段中记录指 令的类型,然后将该指令以分组形式移交到路由器110用于在NOC上传输。通信指令类型 的示例包括:IP块之间的基于网络地址的消息、请求消息、对于请求消息的响应、被引导到 高速缓存的无效消息;存储器加载和存储消息;以及对于存取加载消息的响应等。
[0052] 在图3的示例中的每个路由器110包括路由逻辑152、虚拟信道控制逻辑154和虚 拟信道缓冲器156。该路由逻辑通常被实现为同步和异步逻辑的网络,该同步和异步逻辑的 网络实现用于在由路由器110、链路118和路由器之间的总线形成的网络中的数据通信的 数据通信协议堆栈。路由逻辑152包括本领域的读者可以在芯片外网络中将其与路由表相 关联的功能,在至少一些实施例中,路由表被认为用在N0C中太慢和麻烦。被实现为同步和 异步逻辑的网络的路由逻辑可以被配置为如单个时钟周期那样快地做出路由确定。在这个 示例中的路由逻辑通过选择用于转发在路由器中接收的每个分组的端口来路由分组。每个 分组包含该分组要被路由到的网络地址。
[0053] 在以上描述基于存储器地址的通信中,每个存储器地址被描述为由网络接口控制 器映射到网络地址、即存储器通信控制器的网络位置。存储器通信控制器106的网络位置 自然也是存储器通信控制器的相关联的路由器110、网络接口控制器108和IP块104的网 络位置。因此,在IP块之间的或基于网络地址的通信中,对于应用级数据处理也常见的是, 将网络地址看作在由N0C的路由器、链路和总线导线形成的网络内的IP块的位置。图2图 示了这样的网络的一个组织是行和列的网状结构(mesh),其中,每个网络地址可以被实现 为例如用于该网状结构的每组相关联的路由器、IP块、存储器通信控制器和网络接口控制 器的唯一标识符或者在该网状结构中的每个这样的组的X、y坐标。
[0054] 在图3的N0C102中,每个路由器110实现两个或更多的虚拟通信信道,其中,每个 虚拟通信信道通过通信类型来表征。通信指令类型以及因此的虚拟信道类型包括上述的那 些:IP块之间的基于网络地址的消息、请求消息、对于请求消息的响应、被引导到高速缓存 的无效消息;存储器加载和存储消息;以及对于存储器加载消息的响应等。支持虚拟信道, 在图3的示例中的每个路由器110还包括虚拟信道控制逻辑154和虚拟信道缓冲器156。 虚拟信道控制逻辑154对于每个接收的分组查看其分配的通信类型,并且将每个分组放置 在用于该通信类型的外发的(outgoing)虚拟信道缓冲器中,用于通过端口发送到在N0C上 的相邻路由器。
[0055] 每个虚拟信道缓冲器156具有有限的存储空间。当在短时间段中接收到许多分组 时,虚拟信道缓冲器可能填满--使得不能将更多的分组置于该缓冲器中。在其他协议中, 将丢弃到达其缓冲器已满的虚拟信道的分组。然而,利用总线导线的控制信号来使得在此 示例中的每个虚拟信道缓冲器156能够通过虚拟信道控制逻辑来通知周围的路由器以暂 停在虚拟信道中的传输,即,暂停特定通信类型的分组的传输。当如此暂停一个虚拟信道 时,所有其他的虚拟信道不受影响--并且可以继续以满负荷来运行。控制信号通过每个 路由器一路导线传导(wired)回到每个路由器的相关联的网络接口控制器108。每个网络 接口控制器被配置为在接收到这样的信号时拒绝从其相关联的存储器通信控制器106或 从其相关联的IP块104接受对于被暂停的虚拟信道的通信指令。以这种方式,虚拟信道的 暂停影响实现虚拟信道的所有硬件,一路回到始发的IP块。
[0056] 暂停在虚拟信道中的分组发送的一个效果是未曾丢弃任何分组。当路由器遇到其 中在诸如例如因特网协议的一些不可靠的协议中可能丢弃分组的情况时,在图3的示例中 的路由器可以通过它们的虚拟信道缓冲器156和它们的虚拟信道控制逻辑154暂停在虚拟 信道中的所有的分组发送,直到再次可获得缓冲器空间,消除了任何丢弃分组的需要。因 此,图3的N0C可以使用极薄的硬件层来实现高度可靠的网络通信协议。
[0057] 图3的N0C的示例还可以被配置为保持在芯片上和芯片外的存储器高速缓存之间 的高速缓存一致性。每个N0C可以支持多个高速缓存,每个高速缓存针对相同的基础存储 器地址空间而操作。例如,高速缓存可以由IP块、由存储器通信控制器或由在N0C外部的 高速缓存控制器来控制。在图2的示例中的芯片上存储器114、116的任意一个也可以被实 现为芯片上高速缓存,并且在本发明的范围内,也可以在芯片外实现高速缓存存储器。
[0058] 图3中所示的每个路由器110包括五个端口,四个端口 158A-D通过总线导线118 连接到其他路由器,并且第五端口 160通过网络接口控制器108和存储器通信控制器106 将每个路由器连接到其相关联的IP块104。如从在图2和3中的图示可以看出的,N0C102 的路由器110和链路118形成网状网络,垂直和水平链路连接每个路由器中的垂直和水平 端口。在图3的图示中,例如,将端口 158AU58C和160称为垂直端口,并且将端口 158B和 158D称为水平端口。
[0059] 图4接下来以另一种方式图示与本发明一致的IP块104的一个示例性实现方式, 其被实现为处理元件,该处理元件被划分为指令单元(IU) 162、执行单元(XU) 164和辅助执 行单元(AXU) 166。在所示的实现方式中,IU162包括多个指令缓冲器168,指令缓冲器168 从L1指令高速缓存(iCACHE) 170接收指令。每个指令缓冲器168专用于多个、比如四个对 称多线程(SMT)硬件线程之一。有效到真实(effective-t〇-real)翻译单元(iERAT) 172 耦合到iCACHE170,并且用于将来自多个线程获取定序器174的指令获取请求翻译为真实 地址以从较低级存储器取回指令。每个线程获取定序器174专用于特定的硬件线程,并且 用于确保要由相关联的线程执行的指令被获取到iCACHE内以分派到适当的执行单元。还 如图4中所示,被获取到指令缓冲器168内的指令还可以由分支预测逻辑176监视,该分支 预测逻辑176向每个线程获取定序器174提供线索以最小化由在执行线程中的分支导致的 指令高速缓存漏失。
[0060] IU162还包括依赖性/发出逻辑块178,其专用于每个硬件线程,并且被配置为解 决依赖性并且控制指令从指令缓冲器168向XU164的发出。另外,在所示的实施例中,在 AXU166中提供独立的依赖性/发出逻辑180,因此使得能够由不同的线程同时向XU164和 AXU166发出独立的指令。在一个替代实施例中,逻辑180可以被布置在IU162中,或者可以 整体被省略,使得逻辑178向AXU166发出指令。
[0061] XU164被实现为定点执行单元,其包括耦合到定点逻辑184、分支逻辑186和加载 /存储逻辑188的一组通用寄存器(GPR) 182。加载/存储逻辑188耦合到L1数据高速缓 存(dCACHE) 190,有效到真实翻译由dERAT逻辑192提供。XU164可以被配置为实际上实现 任何指令集,例如,32b或64b PowerPC指令集的全部或一部分。
[0062] AXU166操作为包括专用的依赖性/发出逻辑180连同一个或多个执行块194的辅 助执行单元。AXU166可以包括任何数量的执行块,并且可以实际上实现任何类型的执行单 元,例如浮点单元,或者实现一个或多个专门的执行单元,比如加密/解密单元、协处理器、 向量处理单元、图形处理单元、XML处理单元等。在所示的实施例中,AXU166包括到XU164 的高速辅助接口,例如以支持在AXU架构状态和XU架构状态之间的直接移动。
[0063] 可以经由耦合到N0C102的网络接口控制器108以结合图2在以上所述的方式来 管理与IP块104的通信。可以连同基于消息的通信一起提供基于地址的通信例如以访问 L2高速缓存存储器。例如,每个IP块104可以包括专用的收件箱(in box)和/或发件箱 (out box),以便处理在IP块之间的节点间通信。
[0064] 可以在以上结合图1-4所述的硬件和软件环境内实现本发明的实施例。但是,受 益于本公开的本领域普通技术人员将认识到,可以在多个不同的环境中实现本公开,并且 可以不脱离本发明的精神和范围对上述的硬件和软件实施例做出其他修改。如此,本发明 不限于在此公开的特定硬件和软件环境。
[0065] 用于芯片外AXU的外部AXU接口
[0066] 现在转向图5,该图图示了与本发明一致的实现外部辅助执行单元(AXU)接口的 示例性数据处理系统。具体地说,IP块200的另一种示例性实现方式并入了通过外部AXU 接口 206耦合到芯片外AXU204的芯片上处理元件202。
[0067] 与图4的IP块104中的处理元件类似的处理元件202包括指令单元(IU) 208、执 行单元(XU) 210和网络接口控制器(NIC) 212,并且耦合到N0C214。
[0068] 在所示的实现方式中,IU208包括从L1指令高速缓存(iCACHE) 218接收指令的多 个指令缓冲器216。每个指令缓冲器216专用于多个、例如四个对称多线程(SMT)硬件线 程之一。有效到真实翻译单元(iERAT)220耦合到iCACHE218,并且用于将来自多个线程获 取定序器222的指令获取请求翻译为真实地址以从较低级存储器取回指令。每个线程获取 定序器222专用于特定的硬件线程,并且用于确保要由相关联的线程执行的指令被获取到 iCACHE内以分派到适当的执行单元。还如图5中所示,被获取到指令缓冲器216内的指令 也可以由分支预测逻辑224监视,该分支预测逻辑224向每个线程获取定序器222提供线 索以最小化由在执行线程中的分支导致的指令高速缓存漏失。IU208还包括依赖性/发出 逻辑块228,其专用于每个硬件线程,并且被配置为解决依赖性并且控制从指令缓冲器216 向XU210的指令的发出。
[0069] XU210被实现为定点执行单元,其包括耦合到定点逻辑232、分支逻辑234和加载 /存储逻辑236的一组通用寄存器(GPR) 230。加载/存储逻辑236耦合到L1数据高速缓 存(dCACHE)238,有效到真实翻译由dERAT逻辑240提供。XU164可以被配置为实际上实现 任何指令集,例如32b或64bPowerPC指令集的全部或一部分。
[0070] 为了提供通过外部AXU接口 206对AXU的访问,在IP块200中布置外部AXU接口 控制器242,并且在外部芯片204中布置互补的网络AXU接口控制器244,并且该互补的网 络AXU接口控制器244与外部AXU246相接口。外部AXU246操作为包括一个或多个执行块 248的辅助执行单元。AXU246可以包括任何数量的执行块,并且可以实际上实现任何类型 的执行单元,例如浮点单元,或者实现一个或多个专门的执行单元,比如加密/解密单元、 协处理器、向量处理单元、图形处理单元、XML处理单元等。
[0071] 如图4的IP块104那样,可选地,可以为外部AXU246提供独立的依赖性/发出逻 辑250,不管是在外部AXU246(如所示)内还是在发出单元208内。可替代地,如图5中所 示,依赖性/发出逻辑228可以处理指令向外部AXU246的发出。AXU特定的依赖性/发出 逻辑250可以用于例如支持在AXU中的专用微码或定序器逻辑。
[0072] 在所示的实施例中,外部AXU接口 206被实现为到IU208和XU210的高速辅助接 口,例如以支持由IU208向外部AXU246发出指令以及在AXU架构状态和XU架构状态之间 的直接移动。另外,如在下面将变得更显而易见的,外部AXU246虽然被布置在独立的集成 电路装置或芯片上,但是可以影响(leverage)在IP块200中布置的功能的大多数。
[0073] 图6图示并入了处理器芯片262的另一个数据处理系统260,该处理器芯片262具 有发出单元264、定点执行单元266、存储器管理单元268、一个或多个级的高速缓存270、网 络接口 272,并且该处理器芯片262耦合到例如通过外围总线连接的外部存储器274和一 个或多个I/O装置276。处理器芯片262还包括外部AXU接口控制器278,该外部AXU接口 控制器278耦合到与本发明一致的外部AXU接口 280,允许该处理器芯片与使用多个不同 技术实现的AXU相接口,例如FPGA282 (具有AXU284和外部AXU接口 286)、ASIC288 (具有 AXU290和外部AXU接口 292)或堆叠的裸片294 (具有AXU296和外部AXU接口 298)。将认 识到,与本发明一致的外部AXU接口可以用于与以其他硬件技术实现的AXU相接口,并且因 此本发明不限于在此公开的特定硬件技术。
[0074] 可以以与本发明一致的多种不同方式来实现外部AXU接口。例如,如图7中所示, 外部AXU接口可以包括经由物理接口 304彼此耦合的核心外部AXU接口逻辑300和AXU外 部AXU接口逻辑302。核心逻辑300包括的控制逻辑,例如控制器306,从核心的角度来看, 该控制逻辑协调通过接口的通信。如上所述,与本发明一致的外部AXU接口如期望地支持 无限的或不确定的等待时间,因而可能需要使用看门狗定时器308等逻辑来防止核心在等 待来自芯片外AXU的响应时中止(hang)。另外,核心逻辑通常包括发送/接收逻辑310以 处理通过接口的物理层通信。
[0075] 还如上所述,可能需要外部AXU接口来翻译到处理核心的通信和来自处理核心的 通信,并且因而可以包括促进这样的翻译的逻辑。例如,在其中外部AXU接口以比核心的操 作频率低的频率来通信的实施例中,可以提供步升/步降逻辑312。步降逻辑例如可以用于 相对于处理核心的通信频率来降低外部AXU接口的通信频率。
[0076] 为了支持分组化的接口,可以提供分组器/去分组器314。另外的逻辑、每个串行 器/解串行器逻辑可以用于在串行和并行协议之间翻译。而且,在一些实施例中,接口可以 支持可变宽度,并且可以被配置为仅使用已经架构的通信链路的一部分来用于接口。例如, 在一个示例性实施例中,外部AXU接口可以支持多达32字节宽的数据路径,所选择的实现 方式可编程或可配置以仅使用可用的数据路径的一部分。
[0077] 同样,AXU外部AXU接口逻辑304可以包括与在核心逻辑302中的逻辑互补的具 有看门狗定时器318的控制器316、发送/接收逻辑320、步升/步降(step up/step down) 逻辑322和分组器/去分组器逻辑324。在一些实施例中,控制器316可以是主控制器306 的从属(slave),而在其他实施例中,可以省略控制器316。另外,在一些实施例中可能不要 求看门狗定时器318。
[0078] 如上所述,通过外部AXU接口而通信的数据的主要分类是包括用于由芯片外AXU 执行的指令的指令流。指令阻挡和依赖性通常由依赖性/发出逻辑228(图5)管理,并且 在逻辑228向芯片外AXU发出指令时,可以使用例如在图8的330处图示的操作序列。具 体地,响应于接收到指令,用于接口的核心逻辑可以例如通过转换为分组、串行化、降低到 较低的时钟频率等来将指令转换为用于接口的适当的格式(块332)。接下来,通过该接口 发送该指令(块334),并且开始看门狗定时器(块336)。核心逻辑然后进入用于等待响 应的循环,周期地检查是否已经接收到响应(块338)以及看门狗定时器是否已经到期(块 340)。如果接收到适当的响应,则块338将控制传递到块356以更新处理核心的所架构的 状态。另一方面,如果在接收到响应之前看门狗定时器到期,则块340将控制传递到块358 以例如通过复位芯片外AXU来进行任何必要的错误处理。
[0079] 转向该接口的AXU侧,由核心逻辑在块334发送的指令被AXU逻辑接收(块342), 并且被转换为用于AXU的适当格式(块344)。指令然后被转发到AXU用于处理(块346)。 其后,来自AXU的完成数据、例如对所架构的状态的改变、例如对一个或多个寄存器的更新 被AXU接口逻辑接收(块348),以及要返回到核心的适当的响应、例如成功、失败、错误条 件、调试或状态数据等被AXU接口逻辑接收(块350)。该响应然后被转换为用于该接口的 适当格式(块352),并且被发送回核心逻辑(块354)。
[0080] 将认识到,其他数据可以通过外部AXU接口被传送。例如,寄存器更新、寄存器/ 存储器传送(加载/存储)、状态更新、调试数据、性能统计、指令、分支重定向、存储器管理 信息等也可以通过与本发明一致的外部AXU接口而传送。还将认识到,这样的接口的实现 方式将完全在受益于本公开的本领域普通技术人员的能力内。例如,可以使用与可从国际 商业机器获得的PowerPC A2处理器中支持的芯片外AXU接口所支持的类似的协议来实现 与本发明一致的外部AXU接口。
[0081] 与本发明一致的外部AXU接口提供了多个益处,特别是在专用硬件设计的开发 中。通过在并入了处理核心的可编程芯芯片上提供外部AXU接口,可以设计、验证和测试处 理核心,并且处理核心可以以通常的微处理器时钟频率而操作。该处理核心可以被配置为 用于通用计算,并且提供了适合于广泛的各种应用的标准功能单元。提供专门的功能的芯 片外AXU可以通过外部AXU接口与处理核心集成,由此定制用于特定应用的处理核心。
[0082] 这样的配置的一个益处是不同方可以组合他们各自的知识产权,而不必向彼此公 开这样的知识产权。希望并入例如他们自己的专有加速器功能的一方可以依赖于另一方的 处理核心来获得所需功能的剩余部分,由此将它们的定制设计、测试和验证限于AXU,经常 节省与专用硬件设计的开发相关联的可观的成本和精力。另外,如果一方例如因为其专有 特性或因为政府保密或分类的设计而需要限制对于他们的保密的知识产权的访问,则该方 可以这样做而不必向另一方公开这样的保密信息。
[0083] 而且,通过为外部AXU接口提供无限的等待时间和/或步降逻辑,芯片外AXU不需 要以与处理核心相同的速度运行,并且可以例如使用诸如像FPGA那样的较慢技术而实现, 由此使得例如能够使用较不昂贵的技术来开发和测试AXU,然后一旦已经使用FPGA验证了 该设计则以诸如ASIC的高速技术来实现该芯片外AXU。另外,芯片外AXU的设计可以是专 用处理核心的设计中的中间步骤,使得能够在最后集成到专用处理核心设计之前验证和改 善AXU设计。
[0084] 另外,在此实现的外部AXU接口避免了将AXU通过存储器或共享总线与处理核心 相接口的需要,否则在此情况下可能出现总线和资源竞争。而且,在芯片堆叠实现方式中, 与本发明一致的外部AXU接口可以用于将在一个堆叠的裸片上布置的AXU与在另一个堆叠 的裸片上布置的处理核心相接口。这样做,可以将一个堆叠的裸片专用于多个处理器核心, 而另一个堆叠的裸片可以专用于多个AXU,消除了使用相同的设计规则或技术来制造 AXU 的需要,并且使得能够以对于不同应用的不同AXU层来使用相同的处理器核心层。
[〇〇85] 不脱离本发明的范围可以对于所公开的实施例做出各种修改。因此,本发明在于 以下所附的权利要求。
【权利要求】
1. 一种电路布置,包括: 集成电路芯片; 处理核心,布置在所述芯片上,并且包括发出单元和定点执行单元,其中,所述发出单 元配置为向所述定点执行单元发出指令以由所述定点执行单元执行;以及 外部辅助执行单元(AXU)接口逻辑,布置在所述集成电路芯片上并且耦合到所述发出 单元,其中,所述外部AXU接口逻辑配置为接收由所述发出单元发出的指令,并且通过外部 AXU接口向芯片外AXU传送所述指令以由所述芯片外AXU执行。
2. 根据权利要求1所述的电路布置,其中,所述集成电路芯片是第一芯片,所述电路布 置进一步包括第二芯片,芯片外AXU布置在该第二芯片上。
3. 根据权利要求2所述的电路布置,其中,从由以下构成的组中选择所述第二芯片:现 场可编程门阵列(FPGA)、专用集成电路(ASIC)和堆叠的裸片。
4. 根据权利要求1所述的电路布置,其中,所述外部AXU接口逻辑包括步降逻辑,该步 降逻辑配置为相对于所述处理核心的通信频率降低外部AXU接口的通信频率。
5. 根据权利要求1所述的电路布置,其中,所述外部AXU接口逻辑包括分组器逻辑,该 分组器逻辑配置为经由分组传送从所述发出单元接收的指令。
6. 根据权利要求1所述的电路布置,其中,所述外部AXU接口具有不确定的等待时间, 并且其中所述外部AXU接口逻辑被配置为响应于向所述芯片外AXU发送指令而等待来自所 述芯片外AXU的响应,并且配置为响应于未接收到所述响应而以信号通知错误。
7. -种电路布置,包括: 集成电路芯片; 辅助执行单元(AXU),布置在所述集成电路芯片上;以及 外部AXU接口逻辑,布置在所述集成电路芯片上,并且配置为将所述AXU耦合到如权利 要求1中所述的电路布置,其中,所述外部AXU接口逻辑配置为通过外部AXU接口接收由所 述发出单元发出的指令,并且向所述AXU传送所述指令以由所述AUX执行。
8. 根据权利要求7所述的电路布置,其中,从由以下构成的组中选择所述集成电路:现 场可编程门阵列(FPGA);专用集成电路(ASIC);以及堆叠的裸片。
9. 根据权利要求1或权利要求8所述的电路布置,其中,所述外部AXU接口逻辑配置为 响应于由所述AXU执行指令而更新所述处理核心的所架构的状态。
10. -种在数据处理系统中执行指令的方法,所述方法包括: 在集成电路芯片上布置的处理核心中,使用在所述处理核心中布置的发出单元向在所 述处理核心中布置的定点执行单元发出第一指令,并且利用所述定点执行单元来执行所述 第一指令;以及 利用所述发出单元向芯片外辅助执行单元(AXU)发出第二指令,包括使用在所述集成 电路芯片上布置的外部AXU接口逻辑来通过外部AXU接口向所述芯片外AXU发送所述第二 指令。
11. 根据权利要求10所述的方法,其中,所述集成电路芯片是第一芯片,并且其中所述 芯片外AXU布置在第二芯片上。
12. 根据权利要求11所述的方法,其中,从由以下构成的组中选择所述第二芯片:现场 可编程门阵列(FPGA)、专用集成电路(ASIC)和堆叠的裸片。
13. 根据权利要求10所述的方法,进一步包括:利用在所述外部AXU接口逻辑中布置 的步降逻辑,相对于所述处理核心的通信频率降低所述外部AXU接口的通信频率。
14. 根据权利要求10所述的方法,进一步包括:利用在所述外部AXU接口逻辑中布置 的分组器逻辑,经由分组传送从所述发出单元接收的第二指令。
15. 根据权利要求10所述的方法,其中,所述外部AXU接口具有不确定的等待时间, 并且其中所述方法进一步包括:响应于向所述芯片外AXU发送指令而等待来自所述芯片外 AXU的响应,并且响应于未接收到所述响应而以信号通知错误。
16. 根据权利要求10所述的方法,进一步包括:响应于通过所述外部AXU接口从所述 芯片外AXU接收的数据,更新所述处理核心的所架构的状态。
【文档编号】G06F17/50GK104094222SQ201280067468
【公开日】2014年10月8日 申请日期:2012年12月19日 优先权日:2012年1月18日
【发明者】E.梅杰德里奇, R.谢勒, P.沙特, C.V.斯文森 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1