片上网络以及使用片上网络进行数据处理的方法

文档序号:7919561阅读:157来源:国知局
专利名称:片上网络以及使用片上网络进行数据处理的方法
技术领域
本发明的领域是数据处理,更具体地说,是用于使用片上网络
("NOC")进行数据处理的装置和方法。
背景技术
存在两个广泛使用的数据处理范例;多指令多数据("MIMD")和 单指令多数据("SIMD,,)。在MIMD处理中,计算机程序通常表征为 一个或多个或多或少独立运行的执行线程,每个线程都需要快速随机访问 大量共享存储器。MIMD是针对适合它的特定程序类别优化的数据处理范 例,所述程序包括例如字处理器、电子表格、数据库管理器、诸如浏览器
之类的多种形式的电信等。
SIMD的特征在于同时在多个处理器上并行运行的单个程序,所述程 序的每个实例以相同的方式运行,但针对数据的各个项目。SIMD是针对 适合它的特定应用类别优化的数据处理范例,所述应用包括例如多种形式 的数字信号处理、向量处理等。
但是,存在另 一类应用,所述应用包括例如多个未针对其优化纯SIMD 或纯MIMD数据处理的实际模拟程序。此类应用包括受益于并行处理并且 还需要快速随机访问共享存储器的应用。对于此类程序,纯MIMD系统将 不会提供高度并行性并且纯SIMD系统将不会提供对主存储器的快速随机 访问。

发明内容
一种片上网络("NOC"),所述片上网络包括集成处理器("IP") 块、路由器、存储器通信控制器和网络接口控制器,且每个IP块通过存储
5器通信控制器和网络接口控制器连接到路由器,其中每个存储器通信控制 器控制IP块和存储器之间的通信,并且每个网,口控制器控制通过路由 器的IP块间通信。
从如附图所示的以下对本发明的示例性实施例的更详细说明,本发明 的上述和其他目标、特性和优点将是显而易见的,在附图中,相同的标号 通常表示本发明的示例性实施例的相同部件。


图1示出了才艮据本发明的实施例的包括可用于使用NOC进行数据处 理的示例性计算机的自动计算机器的方块图2示出了才艮据本发明的实施例的实例NOC的功能方块图3示出了才艮据本发明的实施例的另一实例NOC的功能方块图;以

图4示出了4艮据本发明的实施例的用于使用NOC进行数据处理的示 例性方法的流程图。
具体实施例方式
参考开始于图1的附图描述了根据本发明的使用NOC进行数据处理 的示例性装置和方法。图1示出了根据本发明的实施例的包括可用于使用 NOC进行数据处理的示例性计算机(152)的自动计算机器的方块图。图 1的计算机(152)包括至少一个计算机处理器(156)或"CPU"以及通 过高速存储器总线(166)和总线适配器(158 )连接到处理器(156)和计 算机(152)的其他組件的随M取存储器(168) ( "RAM")。
RAM (168)中存储应用程序(184),其是用于执行特定数据处理任 务(如字处理、电子表格、数据库操作、视频游戏、股票市场模拟、原子 量子过程才莫拟等)的用户级计算枳艰序指令模块,或其他用户级应用。RAM (168 )中还存储操作系统(154 )。根据本发明的实施例的可用于使用NOC 进行数据处理的操作系统包括UNIX 、 LinuxTM、 Microsoft XPTM、AIXTM、 IBM的i5/OSTM以及本领域的技术人员可想到的其他操作系统。 图1的实例中的操作系统(154)和应用(184)被示出在RAM(168)中, 但此类软件的多个组件通常还存储在诸如盘驱动器(170)之类的非易失性 存储器中。
根据本发明的实施例,实例计算机(152)包括两个实例NOC:视频 适配器(209)和协处理器(157)。视频适配器(209)是专为到诸如显示 器屏幕或计算机监视器之类的显示设备(180 )的图形输出而设计的I/O适 配器的实例。视频适配器(209)通过高速视频总线(164)、总线适配器 (158)以及也是高速总线的前端总线(162)连接到处理器(156)。
实例NOC协处理器(157)通过总线适配器(158)以及也是高速总 线的前端总线(162和163 )连接到处理器(156)。图1的NOC协处理 器被优化为在主处理器(156)的指示下加速特定数据处理任务。
根据本发明的实施例,图1的实例NOC视频适配器(209)和NOC 协处理器(157)每个都包括NOC,所述NOC包括集成处理器("IP") 块、路由器、存储器通信控制器和网络接口控制器,每个IP块通过存储器 通信控制器和网络接口控制器连接到路由器,每个存储器通信控制器控制 IP块和存储器之间的通信,并且每个网洛接口控制器控制通过路由器的IP 块间通信。NOC — 见频适配器和NOC协处理器针对使用并行处理并且还需 要快速随机访问共享存储器的应用被优化。下面参考图2-4说明NOC结构 和操作的详细信息。
图1的计算机(152)包括通过扩展总线(160)和总线适配器(158) 连接到处理器(156 )和计算机(152 )的其他组件的盘驱动器适配器(172 )。 盘驱动器适配器(172)将非易失性数据存储装置以盘驱动器(170)的形 式连接到计算机(152)。根据本发明的实施例的可用于使用NOC进行数 据处理的计算机中的盘驱动器适配器包括集成驱动器电子设备("IDE") 适配器、小型计算机系统接口 ( "SCSI")适配器以及本领域的技术人员 将想到的其他适配器。如本领域的技术人员将想到的,非易失性计算M 储器还可以被实现为光盘驱动器、电可擦除可编程只读存储器(所谓的"EEPROM"或"闪速"存储器)、RAM驱动器等。
图1的实例计算机(152)包括一个或多个输VW输出("I/O")适配 器(178) 。 1/0适配器通过例如用于控制到显示设备(如计算机显示器屏 幕)的输出,以及来自用户输入设备(181)(如Mit和鼠标)的用户输入 的软件驱动器和计算积硬件来实现面向用户的输入/输出。
图1的示例性计算才几(152)包括用于与其他计算机(182)进行数据 通信和用于与数据通信网络(100)进行数据通信的通信适配器(167)。 可以通过RS-232连接、通过诸如通用串行总线("USB")之类的外部总 线、通过诸如IP数据通信网络之类的数据通信网络,以及本领域的技术人 员将想到的其他方式来串行执行此类数据通信。通信适配器实现硬件级别 的数据通信,由此一个计算机可直接或通过数据通信网络向另一个计算机 发送数据通信。根据本发明的实施例的可用于使用NOC进行数据处理的 通信适配器的实例包括用于有线拨号通信的调制解调器、用于有线数据通 信网络通信的以太网(IE 802.3 )适配器,以及用于无线数据通信网络通信 的802.11适配器。
为了进一步说明,图2示出了才艮据本发明的实施例的实例NOC (102 ) 的功能方块图。图l的实例中的NOC在"芯片"(100),即在集成电路 上实现。图2的NOC (102)包括集成处理器("IP")块(104)、路由 器(110)、存储器通信控制器(106)和网络接口控制器(108)。每个 IP块(104)通过存储器通信控制器(106)和网络接口控制器(108)连 接到路由器(110)。每个存储器通信控制器控制IP块和存储器之间的通 信,并且每个网络接口控制器(108)控制通过路由器(110)的IP块间通 信。
在图2的NOC (102 )中,每个IP块表示用作NOC内的数据处理构 建块的可重用的同步或异步逻辑设计单元。术语"IP块"有时被扩展为"知 识产权块,,,实际上将IP块指定为由某方拥有(即某方的知识产权)的被 授权给其他用户或半导体电路设计者的设计。但是,在本发明的范围内, 不需要使IP块受任何特定所有权的限制,因此在本说明书中此术语始终被
8扩展为"集成处理器块"。如在此规定的,IP块是可能受知识产权限制, 也可能不受知识产权限制的可重复使用的逻辑单元、单元或芯片版图设计。
IP块是可以作为ASIC芯片设计或FPGA逻辑设计形成的逻辑核心。
一种通过类比描述IP块的方法是IP块之于NOC设计就像库之于计 算机编程或分离集成电路组件之于印刷电路板设计。在根据本发明的实施 例的NOC中,IP块可以被实现为常规门级网表、完全专用或通用微处理 器,或以本领域的技术人员将想到的其他方式实现。网表是IP块的逻辑功 能的布尔代数表示(门、标准单元),类似于高级程序应用的汇编代码列 表。NOC还可以例如以可合成的形式实现,以诸如Verilog或VHDL之类 的硬件描述语言来描述。除了网表和可合成的实施方式之外,还可以以低 级的物理描述提供NOC。诸如SERDES、 PLL、 DAC、 ADC之类的模拟 IP块元件可以以诸如GDSII之类的晶体管版图格式分布。IP块的数字元 件有时也以版图格式提供。
图2的实例中的每个IP块(104)通过存储器通信控制器(106 )连接 到路由器(110)。每个存储器通信控制器是适合在IP块和存储器之间提 供数据通信的同步和异步逻辑电路的聚合。IP块和存储器之间的此类通信 的实例包括存储器加载指令和存储器存储指令。以下参考图3更详细地描 述存储器通信控制器(106)。
图2的实例中的每个IP块(104)还通过网络接口控制器(108)连接 到路由器(110)。每个网络接口控制器(108)控制IP块(104)之间的 通过路由器(110)的通信。IP块之间的通信的实例包括承栽数据的消息 以及用于在并行应用和流水线应用中的IP块之间处理数据的指令。以下参 考图3更详细地描述网络接口控制器(108)。
图2的实例中的每个IP块(104)连接到路由器(110 )。路由器(110 ) 和路由器之间的链路(120)实现NOC的网^#作。链路(120)是在连 接所有路由器的物理并行有线总线上实现的分组结构。也就是说,每个链 路在宽度足以同时容纳整个数据交换分組(包括所有标头信息和有效负载 数据)的有线总线上实现。如果分組结构例如包括64个字节,其中包括8个字节的标头和56个字节的有效负载数据,则相对于每个链路的有线总线 是64字节、512线。此外,每个链路是双向的,以便如果链路分组结构包 括64个字节,则网络中的每个路由器及其每个相邻路由器之间的有线总线 实际包含1024条线。消息可以包括多个分组,但每个分组精确符合有线总 线的宽度。如果将路由器和有线总线的每个部分之间的连接称为端口,则 每个路由器包括五个端口 ,针对网络上的数据传输的四个方向中的每个方 向使用 一个端口 ,并且第五端口用于使路由器通过存储器通信控制器和网 洛接口控制器连接到特定IP块。
图2的实例中的每个存储器通信控制器(106 )控制IP块和存储器之 间的通信。存储器可以包括片外主RAM (112)、通过存储器通信控制器 (106 )直接连接到IP块的存储器(115 )、作为IP块启用的片上存储器 (114)以及片上高速緩存。在图2的NOC中,任一片上存储器(114、 115)可以例如被实现为片上高速緩沖存储器。所有这些形式的存储器可以 布置在物理地址或虛拟地址的同 一地址空间中,甚至对于直接连接到IP块 的存储器也是如此。因此,存储器寻址的消息可以相对于IP块是完全双向 的,因为此类存储器可以直接从网络中的任何位置的任何IP块来寻址。IP 块上的存储器(114 )可以从此IP块或NOC中的任何其他IP块来寻址。 直接连接到存储器通信控制器的存储器(115 )可以由通过此存储器通信控 制器连接到网络的IP块寻址,并且还可以从NOC中的任何位置的任何其 他IP块来寻址。
根据本发明的实施例,实例NOC包括示出NOC的两个备选存储器体 系结构的两个存储器管理单元("MMU" ) (107、 109)。 MMU (107) 与IP块一起实现,允许IP块内的处理器在虛拟存储器中运行,同时允许 NOC的整个剩余体系结构在物理存储器地址空间中运行。MMU (109 )在 片外实现并通过数据通信端口 (116)连接到NOC。端口 (116)包括在 NOC和MMU之间传送信号所需的管脚和其他互连,以^UL够智能以将消 息分组从NOC分组格式转换为外部MMU (109)所需的总线格式。MMU 的外部位置意味着NOC的所有IP块中的所有处理器可以在虚拟存储器地址空间中运行,并且所有到片外存储器的物理地址的转换由片外MMU (109)来处理。
除了两个通过使用MMU(107、 109)示出的存储器体系结构之外, 数据通信端口 (118)示出了根据本发明的实施例的可用于NOC的第三存 储器体系结构。端口 (118)在NOC (102)的IP块(104)和片外存储器 (112)之间提供直接连接。如果处理路径中没有MMU,此体系结构提供 由NOC的所有IP块使用的物理地址空间。在双向共享地址空间时,NOC 的所有IP块可以根据通过直接连接到端口 ( 118)的IP块定向的存储器寻 址消息(包括加载和存储)来访问地址空间中的存储器。端口 (118)包括 在NOC和片外存储器(112)之间传送信号所需的管脚和其他互连,以及 足够智能以将消息分组从NOC分组格式转换为片外存储器(112 )所需的 总线格式。
在图2的实例中,将IP块之一指定为主机接口处理器(105)。主机 接口处理器(105 )在NOC和可在其中安装NOC的主计算机(152 )之间 提供接口,并且还为NOC上的其他IP块提供数据处理服务,包括例如在 NOC的IP块之间接收和分派来自主计算机的数据处理请求。NOC可以例 如在较大的计算机(152 )上实现碎见频图形适配器(209 )或协处理器(157 ), 如上面参考图l所述。在图2的实例中,主机接口处理器(10S)通过数据 通信端口 (115)连接到较大的主计算机。端口 (115)包括在NOC和主 计算机之间传送信号所需的管脚和其他互连,以;5UL够智能以将来自NOC 的消息分组转换为主计算机(152 )所需的总线格式。在图1的计算机中的 NOC协处理器的实例中,此类端口将在NOC协处理器(157)和总线适 配器(158)之间提供NOC协处理器(157)的链路结构和前端总线(163 ) 所需的协议之间的数据通信格式转换。
为了进一步说明,图3示出了根据本发明的实施例的另一个实例NOC 的功能方块图。图3的实例NOC与图2的实例NOC的相似之处在于,图 3的实例NOC在芯片(图2中的100)上实现,并且图3的NOC (102 ) 包括集成处理器("IP")块(104)、路由器(110)、存储器通信控制器(106)和网落接口控制器(108)。每个IP块(104)通过存储器通信 控制器(106)和网络接口控制器(108)连接到路由器(110)。每个存储 器通信控制器控制IP块和存储器之间的通信,并且每个网络接口控制器 (108)控制通过路由器(110)的IP块间通信。在图3的实例中,展开了 一组(122)通过存储器通信控制器(106)和网^#口控制器(108)连接 到路由器(110)的IP块(140),以有助于更详细地说明它们的结构和操 作。图3的实例中的所有IP块、存储器通信控制器、网络接口控制器和路 由器以与展开后的组(122)相同的方式配置。
在图3的实例中,每个IP块(104)包括计算机处理器(126)和/或 1/0功能(124)。在此实例中,计算机存储器由每个IP块(104)中的随 才踏取存储器("RAM" ) (128)的a示。如上面参考图2的实例所 述,存储器可以占据物理地址空间段,可以从NOC中的任何IP块来寻址 和访问物理地址空间在每个IP块上的内容。每个IP块上的处理器(126)、 1/0能力(124)和存储器(128)实际上将IP块实现为通常的可编程微型 计算机。但是如上所述,在本发明的范围内,IP块通常表示用作NOC内 的数据处理构建块的可重用的同步或异步逻辑设计单元。因此,虽然通用 实施例可用于说明目的,但是将IP块实现为通常的可编程微型计算机并不
是对本发明的限制。
在图3的NOC (102 )中,每个存储器通信控制器(106)包括多个存 储器通信执行引擎(140)。每个存储器通信执行引擎(140)被启用以执 行来自IP块(104 )的存储器通信指令,包括网络和IP块(104 )之间的 双向存储器通信指令流(142、 144、 145)。由存储器通信控制器执行的存 储器通信指令不仅可以源自通过特定存储器通信控制器连接到路由器的 IP块,而且还源自NOC (102)中的任何位置处的任何IP块(104)。也 就是说,NOC中的任何IP块都可以生成存储器通信指令,并将此存储器 通信指令通过NOC的路由器传输到与其他IP块关联的其他存储器通信控 制器以执行此存储器通信指令。此类存储器通信指令可以例如包括转换旁 视緩冲器控制指令、高速緩存控制指令、屏障指令以及存储器加栽和存储指令。
每个存储器通信执行引擎(140)能够单独以及与其他存储器通信执行 引擎并行执行完整的存储器通信指令。存储器通信执行引擎实现针对存储 器通信指令的并发吞吐量优化的可伸缩存储器事务处理器。存储器通信控 制器(106)支持多个存储器通信执行引擎(140),它们全部并发运行以 同时执行多个存储器通信指令。存储器通信控制器(106)将新的存储器通 信指令分配给存储器通信引擎(140),并且存储器通信执行引擎(140) 可以同时接受多个响应事件。在此实例中,所有存储器通信执行引擎(140) 均相同。因此,通过调整存储器通信执行引擎(140)的数量来实现可由存 储器通信控制器(106)同时处理的存储器通信指令数的调整。
在图3的NOC (102)中,每个网络接口控制器(108)被启用以将通 信指令从命令格式转换为网络分组格式,以便通过路由器(110)在IP块 (104)之间传输。通信指令由IP块(104)或存储器通信控制器(106) 以命令格式表示并以命令格式提供给网g口控制器(108)。命令格式是 符合IP块(104)和存储器通信控制器(106)的体系结构寄存器文件的原 有格式。网络分组格式是通过网络的路由器(110)进行传输所需的格式。 每个此类消息由一个或多个网络分组组成。此类在网洛接口控制器中从命 令格式转换为分组格式的通信指令的实例包括IP块和存储器之间的存储 器加栽指令和存储器存储指令。此类通信指令还可以包括在IP块之间发送
承载数据的消息的通信指令以及用于在并行应用和流水线应用中的IP块 之间处理数据的指令。
在图3的NOC (102 )中,每个IP块被启用以通过IP块的存储器通 信控制器将基于存储器地址的通信发送到存储器和从存储器发送基于存储 器地址的通信,并且然后还通过其网M口控制器发送到所述网络。基于 存储器地址的通信是由IP块的存储器通信控制器的存储器通信执行引擎 执行的存储器访问指令,例如加载指令或存储指令。此类基于存储器地址 的通信通常在IP块中发起,以命令格式表示,并传送到存储器通信控制器 以便执行。许多基于存储器地址的通信与消息业务一起执行,因为任何要访问的
存储器可以位于直接连接到NOC中的任何存储器通信控制器的片上或片 外物理存储器地址空间中的任何位置,或最终通过NOC的任何IP块来访 问,与哪个IP块发起任何特定的基于存储器地址的通信无关。所有与消息 业务一起执行的基于存储器地址的通信从存储器通信控制器被传递到关联 的网络接口控制器,以便从命令格式转换(136)为分组格式并通过网络在
消息中传输。在转换为分组格式时,网络接口控制器还根据要由基于存储 器地址的通信访问的存储器地址来标识分組的网络地址。^使用存储器地址 寻址基于存储器地址的消息。网络接口控制器将每个存储器地址映射到网 络地址,通常为负责某一范围的物理存储器地址的存储器通信控制器的网 络位置。存储器通信控制器(106)的网络位置自然也是此存储器通信控制 器的关联路由器(110)、网洛接口控制器(108)和IP块(104)的网络 位置。每个网络接口控制器内的指令转换逻辑(136)能够将存储器地址转 换为网络地址,以便通过NOC的路由器传输基于存储器地址的通信。
接收到来自网络的路由器(110)的消息业务时,每个网M口控制器 (108 )检查每个分组以查看指令分组。每个包含存储器指令的分组被传送 到与接收网络接口控制器关联的存储器通信控制器(106),存储器通信控 制器(106)执行存储器指令,然后将分组的剩余有效负载发送到IP块以 便进一步处理。通过此方式,在IP块开始执行来自依赖特定存储器内容的 消息的指令之前,存储器内容始终准备好支持由IP块进行数据处理。
在图2的NOC (102 )中,每个IP块(104)被启用以绕过其存储器 通信控制器(106)并将IP块间的网络寻址的通信(146)通过IP块的网 络接口控制器(108 )直接发送到网络。网络寻址的通信是通过网络地址定 向到其他IP块的消息。如本领域的技术人员将想到的,此类消息传输流水 线应用中的工作数据、用于在SIMD应用中的IP块之间进4亍单程序处理 的多数据等。此类消息与基于存储器地址的通信的区别在于它们从开始就 是由发始IP块进行网络寻址的,所述发始IP块知道消息通过NOC的路 由器被定向到的网络地址。此类网络寻址的通信由IP块通过其I/O功能(124)以命令格式直接传送到IP块的网洛接口控制器,然后由网洛接口 控制器转换为分組格式并通过NOC的路由器传输到其他IP块。此类网络 寻址的通信(146)是双向的,可能继续传入和传出NOC的每个IP块, 具体取决于其在任何特定应用中的使用。但是,每个网络接口控制器被启 用以便将此类通信发送到关联路由器并从关联路由器接收此类通信(142 ), 并且每个网络接口控制器被启用以便将此类通信直接发送到关联IP块并 从关联IP块接收此类通信(146),从而绕过关联的存储器通信控制器
(106)。
图3的实例中的每个网^口控制器(108)还被启用以便在网络上实 现由类型来表征网络分组的虚拟通道。每个网络接口控制器(108)包括虛 拟通道实现逻辑(138),虛拟通道实现逻辑(138)按类型对每个通信指 令进行分类,并在将指令以分组形式传送到路由器(110)以在NOC上传 输之前,将指令类型记录在网络分組格式的字段中。通信指令类型的实例 包括IP块间的基于网络地址的消息、请求消息、对请求消息的响应、定向
到高速緩存的无效消息;存储器加载和存储消息;以及对存储器加载消息
的响应等。
图3的实例中的每个路由器(110)包括路由逻辑(130)、虚拟通道 控制逻辑(132)和虚拟通道緩冲器(134)。路由逻辑通常被实现为同步 和异步逻辑网络,后者实现用于在由路由器(110)、链路(l加)和路由 器间的总线连线形成的网络中进行数据通信的数据通信协议堆栈。路由逻 辑(130)包括本领域的技术人员将联想到具有路由表的片外网络的功能, 在至少某些实施例中,路由表被认为太慢并且太烦瑣而不在NOC中使用。 实现为同步和异步逻辑网络的路由逻辑可以被配置在单个时钟周期内做出 路由决策。在此实例中,路由逻辑通过选择用于转发在路由器中接收的每 个分组的端口来路由分组。每个分组包含分组要被路由到的网络地址。在 此实例中,每个路由器包括五个端口 ,四个端口( 121 )通过总线连线(120-A、 120-B、 120-C、 120-D)连接到其他路由器,并且第五端口 ( 123)通过网 络接口控制器(108)和存储器通信控制器(106)将每个路由器连接到其
15关联的IP块(104)。
在上面描述基于存储器地址的通信时,每个存储器地址,皮描述为由网 络接口控制器映射到网络地址,即存储器通信控制器的网络位置。存储器 通信控制器(106)的网络位置自然也是此存储器通信控制器的关联路由器 (110)、网络接口控制器(108)和IP块(104)的网络位置。因此,在 IP块间或基于网络地址的通信中,通常还使应用级数据处理将网络地址视 为网络(由NOC的路由器、链路和总线连线形成)内的IP块的位置。图 2示出了此类网络的一种组织是行和列的网格,其中每个网络地址可以例 如被实现为网格的每组关联路由器、IP块、存储器通信控制器和网络接口 控制器的唯一标识符或网格中每个此类组的x、 y坐标。
在图3的NOC (102)中,每个路由器(110)实现两个或更多虛拟通 信通道,其中每个虚拟通信通道由通信类型来表征。通信指令类型并且因 此虚拟通道类型包括上述那些类型IP块间的基于网络地址的消息、请求 消息、对请求消息的响应、定向到高速緩存的无效消息;存储器加载和存 储消息;以及对存储器加载消息的响应等。在对虚拟通道的支持中,图3 的实例中的每个路由器(110)还包括虚拟通道控制逻辑(132)和虛拟通 道緩冲器(134)。虛拟通道控制逻辑(132)检查每个所接收分组的指定 通信类型,并将每个分组放置在用于此通信类型的传出虚拟通道緩沖器中, 以便通过端口传输到NOC上的相邻路由器。
每个虚拟通道緩沖器(134)具有有限的存储空间。当短时间内收到多 个分组时,虛拟通道緩冲器会被填满,从而不能将更多分组;故置在緩沖器 中。在其他协议中,到达其緩沖器已满的虚拟通道的分组将被丟弃。但是, 此实例中的每个虛拟通道緩冲器(134 )通过总线连线的控制信号被启用以 通过虛拟通道控制逻辑建议周围路由器暂停虚拟通道中的传输,即暂停特 定通信类型的分组的传输。当一个虚拟通道被如此暂停时,所有其他虚拟 通道不受影响并且可以继续满负载运行。控制信号通过每个路由器沿线路 一直返回到每个路由器的关联网g口控制器(108)。每个网^^口控制 器被配置为在收到此类信号时拒绝从其关联的存储器通信控制器(106 )或其关联的IP块(104)接受已暂停虛拟通道的通信指令。通过此方式,虚 拟通道的暂停将影响所有实现虛拟通道的》更件, 一直到发起IP块。
在图3的体系结构中,暂停虚拟通道中的分组传输的一种效果是永远 不会丢弃分组。当路由器遇到在诸如网际协议的某种不可靠协议中可能丢 弃分组的情况时,图3的实例中的路由器将通过其虚拟通道緩沖器(134) 及其虚拟通道控制逻辑(132 )暂停虛拟通道中的所有分组传输,直到緩冲 器空间再次可用,从而不需要丟弃分组。因此,图3的NOC通过极其瘦 的硬件层实现了高度可靠的网络通信协议。
为了进一步说明,图4是示出了根据本发明的实施例的用于使用NOC 进行数据处理的示例性方法的流程图。图4的方法在类似于以上在本说明 书中所述的NOC上实现,即为在芯片(图3中的100)上实现的NOC(图 3中的102),后者具有IP块(图3中的104)、路由器(图3中的110)、 存储器通信控制器(图3中的106)和网络接口控制器(图3中的108)。 每个IP块(图3中的104)通过存储器通信控制器(图3中的106)和网 洛接口控制器(图3中的108)连接到路由器(图3中的110)。在图4 的方法中,每个IP块可以被实现为用作NOC内的数据处理构建块的可重 用的同步或异步逻辑设计单元。
图4的方法包括由存储器通信控制器(图3中的106)控制(402) IP 块和存储器之间的通信。在图4的方法中,存储器通信控制器包括多个存 储器通信执行引擎(图3中的140)。在图4的方法中,通过由每个存储 器通信执行引擎单独以及与其他存储器通信执行引擎并行执行(404 )完整 的存储器通信指令并在网络和IP块之间执行(406)双向存储器通信指令 流,来执行控制(402) IP块和存储器之间的通信。在图4的方法中,存 储器通信指令可以包括转换旁视緩沖器控制指令、高速緩存控制指令、屏 障指令、存储器加栽指令和存储器存储指令。在图4的方法中,存储器可 以包括片外主RAM、通过存储器通信控制器直接连接到IP块的存储器、 作为IP块启用的片上存储器以及片上高速緩存。
图4的方法还包括由网M口控制器(图3中的108)控制(408)通过路由器的IP块间通信。在图4的方法中,控制(408) IP块间通信还包 括由每个网络接口控制器将通信指令从命令格式转换(410)为网络分组格 式,并且由每个网络接口控制器在网络上实现(412)由类型表征网络分组 的虛拟通道。
图4的方法还包括由每个路由器(图3中的110)通过两个或更多虛 拟通信通道传输(414)消息,其中每个虚拟通信通道由通信类型来表征。 通信指令类型并且因此虛拟通道类型包括例如IP块间的基于网络地址的 消息、请求消息、对请求消息的响应、定向到高速緩存的无效消息;存储 器加载和存储消息;以及对存储器加载消息的响应等。在对虚拟通道的支 持中,每个路由器还包括虛拟通道控制逻辑(图3中的132)和虛拟通道 緩沖器(图3中的134)。虛拟通道控制逻辑检查每个所接收分組的指定 通信类型,并将每个分组放置在此通信类型的传出虛拟通道緩沖器中,以 便通过端口传输到NOC上的相邻路由器。
主要在使用NOC进行数据处理的完整功能计算机系统的上下文中描 述了本发明的示例性实施例。但是本领域的技术人员将认识到,还可以在 放置在信号承载介质中以便与任何适当数据处理系统一起使用的计算才M呈 序产品中实现本发明。此类信号承载介质可以是用于机器可读信息的传输 介质或可记录介质,包括磁介质、光^h质或其他适当介质。可记录介质的 实例包括硬盘驱动器中的盘或软盘、光盘驱动器的光盘、磁带以及本领域 的技术人员将想到的其他介质。传输介质的实例包括用于语音通信的电话 网络和数字数据通信网络(如Ethernets 和使用网际协议和万维网通信 的网络),以及无线传输介质(例如根据IEEE 802.11规范集实现的网络)。 本领域的技术人员将立即认识到,任何具有适当编程装置的计算机系统都 将能够执行在程序产品中体现的本发明的方法的步骤。本领域的技术人员 将立即认识到,虽然本说明书中描述的某些示例性实施例面向已安装并在 计算机石更件上执行的软件,但是作为固件或硬件实现的备选实施例也在本 发明的范围内。
从上述描述将理解的是,可以在本发明的各种实施例中进行修改和更改而不偏离本发明的真正精神。本说明书中的描述仅为了说明目的并且不 应以限制的意义进行理解。本发明的范围仅由以下权利要求的语言来限制。
权利要求
1. 一种片上网络NOC,所述片上网络包括集成处理器IP块、路由器、存储器通信控制器和网络接口控制器,每个IP块通过存储器通信控制器和网络接口控制器连接到路由器,每个存储器通信控制器控制IP块和存储器之间的通信,以及每个网络接口控制器控制通过路由器的IP块间通信。
2. 如权利要求1中所述的片上网络,其中所述存储器通信控制器包括: 多个存储器通信执行引擎,每个存储器通信执行引擎能够单独地和与其他存储器通信执行引擎并行地执行完整的存储器通信指令;以及 所述网络和所述IP块之间的双向存储器通信指令流。
3. 如权利要求2中所述的片上网络,其中所述存储器通信指令包括 转换旁视緩冲器控制指令;高速緩存控制指令; 屏障指令; 存储器加载;以及 存储器存储。
4. 如权利要求l中所述的片上网络,其中存储器包括 片外主随才踏M储器;通过存储器通信控制器直接连接到IP块的存储器; 作为IP块启用的片上存储器;以及 片上高速緩存。
5. 如权利要求1中所述的片上网络,其中每个IP块包括用作所述片 上网络内的数据处理构建块的可重用的同步或异步逻辑^:计单元。
6. 如权利要求l中所述的片上网络,其中每个路由器包括 两个或更多虛拟通信通道,每个虛拟通信通道由通信类型来表征。
7. 如权利要求l中所述的片上网络,其中每个网,口控制器被启用 以执行以下操作将通信指令从命令格式转换为网络分组格式;以及 在所述网络上实现由类型来表征网络分组的虛拟通道。
8. 如权利要求l中所述的片上网络,其中每个IP块被启用以绕过所述IP块的存储器通信控制器并通过IP块的 网^#口控制器将IP块间的网络寻址的通信直接发送到所述网络。
9. 如权利要求l中所述的片上网络,其中每个IP块被启用以通过所述IP块的存储器通信控制器将基于存储器 地址的通信发送到存储器和从存储器发送基于存储器地址的通信; 并且然后还通过所述IP块的网 口控制器发送到所述网络。
10. —种使用片上网络NOC进行数据处理的方法,所述片上网络包括IP块、路由器、存储器通信控制器和网洛接口控制器,以及 每个IP块通过存储器通信控制器和网络接口控制器连接到路由器, 所述方法包括由每个存储器通信控制器控制IP块和存储器之间的通信,以及 由每个网洛接口控制器控制通过路由器的IP块间通信。
11. 如权利要求IO中所述的方法,其中所述存储器通信控制器包括多 个存储器通信执行引擎,并且控制IP块和存储器之间的通信进一步包括由每个存储器通信执行引擎单独地和与其他存储器通信执行引擎并行 地执行完整的存储器通信指令;以及在所述网络和所述IP块之间执行双向存储器通信指令流。
12. 如权利要求ll中所述的方法,其中所述存储器通信指令包括 转换旁视緩冲器控制指令;高速緩存控制指令; 屏障指令;存储器加载指令;以及 存储器存储指令。
13. 如权利要求IO中所述的方法,其中存储器包括片外主随MM储器;通过存储器通信控制器直接连接到IP块的存储器; 作为IP块启用的片上存储器;以及 片上高速緩存。
14. 如权利要求10中所述的方法,其中每个IP块包括用作所述片上 网络内的数据处理构建块的可重用的同步或异步逻辑设计单元。
15. 如权利要求IO中所述的方法,还包括由每个路由器通过两个或更 多虛拟通信通道传输消息,每个虚拟通信通道由通信类型来表征。
16. 如权利要求IO中所述的方法,其中控制IP块间通信进一步包括 由每个网络接口控制器将通信指令从命令格式转换为网络分组格式;以及由每个网络接口控制器在所述网络上实现由类型来表征网络分组的虛 拟通道。
17. 如权利要求10中所述的方法,还包括由每个IP块通过所述IP块的存储器通信控制器将基于存储器地址的 通信发送到存储器和从存储器发送基于存储器地址的通信,并且通过所述 IP块的网络接口控制器发送到所述网络。
18. 如权利要求IO中所述的方法,还包括 由每个IP块绕过所迷IP块的存储器通信控制器;以及由每个IP块通过IP块的网络接口控制器将IP块间的网络寻址的通信 直接发送到所述网络。
全文摘要
本发明涉及一种片上网络以及使用片上网络进行数据处理的方法。所述片上网络包括集成处理器(“IP”)块、路由器、存储器通信控制器和网络接口控制器,且每个IP块通过存储器通信控制器和网络接口控制器连接到路由器,其中每个存储器通信控制器控制IP块和存储器之间的通信,并且每个网络接口控制器控制通过路由器的IP块间通信。
文档编号H04L12/56GK101425966SQ20081016152
公开日2009年5月6日 申请日期2008年9月24日 优先权日2007年10月29日
发明者E·O·梅德里希, R·A·希勒, R·D·胡佛 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1