CN101425966B - 片上网络以及使用片上网络进行数据处理的方法 - Google Patents
片上网络以及使用片上网络进行数据处理的方法 Download PDFInfo
- Publication number
- CN101425966B CN101425966B CN200810161521XA CN200810161521A CN101425966B CN 101425966 B CN101425966 B CN 101425966B CN 200810161521X A CN200810161521X A CN 200810161521XA CN 200810161521 A CN200810161521 A CN 200810161521A CN 101425966 B CN101425966 B CN 101425966B
- Authority
- CN
- China
- Prior art keywords
- memory
- communication
- piece
- network
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Bus Control (AREA)
Abstract
本发明涉及一种片上网络以及使用片上网络进行数据处理的方法。所述片上网络包括集成处理器(“IP”)块、路由器、存储器通信控制器和网络接口控制器,且每个IP块通过存储器通信控制器和网络接口控制器连接到路由器,其中每个存储器通信控制器控制IP块和存储器之间的通信,并且每个网络接口控制器控制通过路由器的IP块间通信。
Description
技术领域
本发明的领域是数据处理,更具体地说,是用于使用片上网络(“NOC”)进行数据处理的装置和方法。
背景技术
存在两个广泛使用的数据处理范例;多指令多数据(“MIMD”)和单指令多数据(“SIMD”)。在MIMD处理中,计算机程序通常表征为一个或多个或多或少独立运行的执行线程,每个线程都需要快速随机访问大量共享存储器。MIMD是针对适合它的特定程序类别优化的数据处理范例,所述程序包括例如字处理器、电子表格、数据库管理器、诸如浏览器之类的多种形式的电信等。
SIMD的特征在于同时在多个处理器上并行运行的单个程序,所述程序的每个实例以相同的方式运行,但针对数据的各个项目。SIMD是针对适合它的特定应用类别优化的数据处理范例,所述应用包括例如多种形式的数字信号处理、向量处理等。
但是,存在另一类应用,所述应用包括例如多个未针对其优化纯SIMD或纯MIMD数据处理的实际模拟程序。此类应用包括受益于并行处理并且还需要快速随机访问共享存储器的应用。对于此类程序,纯MIMD系统将不会提供高度并行性并且纯SIMD系统将不会提供对主存储器的快速随机访问。
发明内容
一种片上网络(“NOC”),所述片上网络包括集成处理器(“IP”)块、路由器、存储器通信控制器和网络接口控制器,且每个IP块通过存储器通信控制器和网络接口控制器连接到路由器,其中每个存储器通信控制器控制IP块和存储器之间的通信,并且每个网络接口控制器控制通过路由器的IP块间通信。
从如附图所示的以下对本发明的示例性实施例的更详细说明,本发明的上述和其他目标、特性和优点将是显而易见的,在附图中,相同的标号通常表示本发明的示例性实施例的相同部件。
附图说明
图1示出了根据本发明的实施例的包括可用于使用NOC进行数据处理的示例性计算机的自动计算机器的方块图;
图2示出了根据本发明的实施例的实例NOC的功能方块图;
图3示出了根据本发明的实施例的另一实例NOC的功能方块图;以及
图4示出了根据本发明的实施例的用于使用NOC进行数据处理的示例性方法的流程图。
具体实施方式
参考开始于图1的附图描述了根据本发明的使用NOC进行数据处理的示例性装置和方法。图1示出了根据本发明的实施例的包括可用于使用NOC进行数据处理的示例性计算机(152)的自动计算机器的方块图。图1的计算机(152)包括至少一个计算机处理器(156)或“CPU”以及通过高速存储器总线(166)和总线适配器(158)连接到处理器(156)和计算机(152)的其他组件的随机存取存储器(168)(“RAM”)。
RAM(168)中存储应用程序(184),其是用于执行特定数据处理任务(如字处理、电子表格、数据库操作、视频游戏、股票市场模拟、原子量子过程模拟等)的用户级计算机程序指令模块,或其他用户级应用。RAM(168)中还存储操作系统(154)。根据本发明的实施例的可用于使用NOC进行数据处理的操作系统包括UNIXTM、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”)适配器以及本领域的技术人员将想到的其他适配器。如本领域的技术人员将想到的,非易失性计算机存储器还可以被实现为光盘驱动器、电可擦除可编程只读存储器(所谓的“EEPROM”或“闪速”存储器)、RAM驱动器等。
图1的实例计算机(152)包括一个或多个输入/输出(“I/O”)适配器(178)。I/O适配器通过例如用于控制到显示设备(如计算机显示器屏幕)的输出,以及来自用户输入设备(181)(如键盘和鼠标)的用户输入的软件驱动器和计算机硬件来实现面向用户的输入/输出。
图1的示例性计算机(152)包括用于与其他计算机(182)进行数据通信和用于与数据通信网络(100)进行数据通信的通信适配器(167)。可以通过RS-232连接、通过诸如通用串行总线(“USB”)之类的外部总线、通过诸如IP数据通信网络之类的数据通信网络,以及本领域的技术人员将想到的其他方式来串行执行此类数据通信。通信适配器实现硬件级别的数据通信,由此一个计算机可直接或通过数据通信网络向另一个计算机发送数据通信。根据本发明的实施例的可用于使用NOC进行数据处理的通信适配器的实例包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的以太网(IE802.3)适配器,以及用于无线数据通信网络通信的802.11适配器。
为了进一步说明,图2示出了根据本发明的实施例的实例NOC(102)的功能方块图。图1的实例中的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块受任何特定所有权的限制,因此在本说明书中此术语始终被扩展为“集成处理器块”。如在此规定的,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之间传送信号所需的管脚和其他互连,以及足够智能以将消息分组从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),如上面参考图1所述。在图2的实例中,主机接口处理器(105)通过数据通信端口(115)连接到较大的主计算机。端口(115)包括在NOC和主计算机之间传送信号所需的管脚和其他互连,以及足够智能以将来自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)和/或I/O功能(124)。在此实例中,计算机存储器由每个IP块(104)中的随机存取存储器(“RAM”)(128)的段表示。如上面参考图2的实例所述,存储器可以占据物理地址空间段,可以从NOC中的任何IP块来寻址和访问物理地址空间在每个IP块上的内容。每个IP块上的处理器(126)、I/O能力(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)以命令格式表示并以命令格式提供给网络接口控制器(108)。命令格式是符合IP块(104)和存储器通信控制器(106)的体系结构寄存器文件的原有格式。网络分组格式是通过网络的路由器(110)进行传输所需的格式。每个此类消息由一个或多个网络分组组成。此类在网络接口控制器中从命令格式转换为分组格式的通信指令的实例包括IP块和存储器之间的存储器加载指令和存储器存储指令。此类通信指令还可以包括在IP块之间发送承载数据的消息的通信指令以及用于在并行应用和流水线应用中的IP块之间处理数据的指令。
在图3的NOC(102)中,每个IP块被启用以通过IP块的存储器通信控制器将基于存储器地址的通信发送到存储器和从存储器发送基于存储器地址的通信,并且然后还通过其网络接口控制器发送到所述网络。基于存储器地址的通信是由IP块的存储器通信控制器的存储器通信执行引擎执行的存储器访问指令,例如加载指令或存储指令。此类基于存储器地址的通信通常在IP块中发起,以命令格式表示,并传送到存储器通信控制器以便执行。
许多基于存储器地址的通信与消息业务一起执行,因为任何要访问的存储器可以位于直接连接到NOC中的任何存储器通信控制器的片上或片外物理存储器地址空间中的任何位置,或最终通过NOC的任何IP块来访问,与哪个IP块发起任何特定的基于存储器地址的通信无关。所有与消息业务一起执行的基于存储器地址的通信从存储器通信控制器被传递到关联的网络接口控制器,以便从命令格式转换(136)为分组格式并通过网络在消息中传输。在转换为分组格式时,网络接口控制器还根据要由基于存储器地址的通信访问的存储器地址来标识分组的网络地址。使用存储器地址寻址基于存储器地址的消息。网络接口控制器将每个存储器地址映射到网络地址,通常为负责某一范围的物理存储器地址的存储器通信控制器的网络位置。存储器通信控制器(106)的网络位置自然也是此存储器通信控制器的关联路由器(110)、网络接口控制器(108)和IP块(104)的网络位置。每个网络接口控制器内的指令转换逻辑(136)能够将存储器地址转换为网络地址,以便通过NOC的路由器传输基于存储器地址的通信。
接收到来自网络的路由器(110)的消息业务时,每个网络接口控制器(108)检查每个分组以查看指令分组。每个包含存储器指令的分组被传送到与接收网络接口控制器关联的存储器通信控制器(106),存储器通信控制器(106)执行存储器指令,然后将分组的剩余有效负载发送到IP块以便进一步处理。通过此方式,在IP块开始执行来自依赖特定存储器内容的消息的指令之前,存储器内容始终准备好支持由IP块进行数据处理。
在图2的NOC(102)中,每个IP块(104)被启用以绕过其存储器通信控制器(106)并将IP块间的网络寻址的通信(146)通过IP块的网络接口控制器(108)直接发送到网络。网络寻址的通信是通过网络地址定向到其他IP块的消息。如本领域的技术人员将想到的,此类消息传输流水线应用中的工作数据、用于在SIMD应用中的IP块之间进行单程序处理的多数据等。此类消息与基于存储器地址的通信的区别在于它们从开始就是由发始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)、链路(120)和路由器间的总线连线形成的网络中进行数据通信的数据通信协议堆栈。路由逻辑(130)包括本领域的技术人员将联想到具有路由表的片外网络的功能,在至少某些实施例中,路由表被认为太慢并且太烦琐而不在NOC中使用。实现为同步和异步逻辑网络的路由逻辑可以被配置在单个时钟周期内做出路由决策。在此实例中,路由逻辑通过选择用于转发在路由器中接收的每个分组的端口来路由分组。每个分组包含分组要被路由到的网络地址。在此实例中,每个路由器包括五个端口,四个端口(121)通过总线连线(120-A、120-B、120-C、120-D)连接到其他路由器,并且第五端口(123)通过网络接口控制器(108)和存储器通信控制器(106)将每个路由器连接到其关联的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)通过总线连线的控制信号被启用以通过虚拟通道控制逻辑建议周围路由器暂停虚拟通道中的传输,即暂停特定通信类型的分组的传输。当一个虚拟通道被如此暂停时,所有其他虚拟通道不受影响并且可以继续满负载运行。控制信号通过每个路由器沿线路一直返回到每个路由器的关联网络接口控制器(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的方法还包括由网络接口控制器(图3中的108)控制(408)通过路由器的IP块间通信。在图4的方法中,控制(408)IP块间通信还包括由每个网络接口控制器将通信指令从命令格式转换(410)为网络分组格式,并且由每个网络接口控制器在网络上实现(412)由类型表征网络分组的虚拟通道。
图4的方法还包括由每个路由器(图3中的110)通过两个或更多虚拟通信通道传输(414)消息,其中每个虚拟通信通道由通信类型来表征。通信指令类型并且因此虚拟通道类型包括例如:IP块间的基于网络地址的消息、请求消息、对请求消息的响应、定向到高速缓存的无效消息;存储器加载和存储消息;以及对存储器加载消息的响应等。在对虚拟通道的支持中,每个路由器还包括虚拟通道控制逻辑(图3中的132)和虚拟通道缓冲器(图3中的134)。虚拟通道控制逻辑检查每个所接收分组的指定通信类型,并将每个分组放置在此通信类型的传出虚拟通道缓冲器中,以便通过端口传输到NOC上的相邻路由器。
主要在使用NOC进行数据处理的完整功能计算机系统的上下文中描述了本发明的示例性实施例。但是本领域的技术人员将认识到,还可以在放置在信号承载介质中以便与任何适当数据处理系统一起使用的计算机程序产品中实现本发明。此类信号承载介质可以是用于机器可读信息的传输介质或可记录介质,包括磁介质、光介质或其他适当介质。可记录介质的实例包括硬盘驱动器中的盘或软盘、光盘驱动器的光盘、磁带以及本领域的技术人员将想到的其他介质。传输介质的实例包括用于语音通信的电话网络和数字数据通信网络(如EthernetsTM和使用网际协议和万维网通信的网络),以及无线传输介质(例如根据IEEE802.11规范集实现的网络)。本领域的技术人员将立即认识到,任何具有适当编程装置的计算机系统都将能够执行在程序产品中体现的本发明的方法的步骤。本领域的技术人员将立即认识到,虽然本说明书中描述的某些示例性实施例面向已安装并在计算机硬件上执行的软件,但是作为固件或硬件实现的备选实施例也在本发明的范围内。
从上述描述将理解的是,可以在本发明的各种实施例中进行修改和更改而不偏离本发明的真正精神。本说明书中的描述仅为了说明目的并且不应以限制的意义进行理解。本发明的范围仅由以下权利要求的语言来限制。
Claims (16)
1.一种片上网络NOC,所述片上网络包括:
集成处理器IP块、路由器、存储器通信控制器和网络接口控制器,
每个IP块通过存储器通信控制器和网络接口控制器连接到路由器,
每个存储器通信控制器控制IP块和存储器之间的通信,
每个网络接口控制器控制通过路由器的IP块间通信,
其中所述路由器包括两个或更多虚拟通信通道,并且每个虚拟通信通道由通信类型来表征,以及
其中所述网络接口控制器在收到含有暂停虚拟通道中传输的控制信号的情况下,拒绝从其关联的存储器通信控制器或其关联的IP块接受已暂停虚拟通道的通信指令,其中暂停虚拟通道中的传输进一步包括暂停特定通信类型分组的传输。
2.如权利要求1中所述的片上网络,其中所述存储器通信控制器包括:
多个存储器通信执行引擎,每个存储器通信执行引擎能够单独地和与其他存储器通信执行引擎并行地执行完整的存储器通信指令,以及
所述网络和所述IP块之间的双向存储器通信指令流。
3.如权利要求2中所述的片上网络,其中所述存储器通信指令包括:
转换旁视缓冲器控制指令;
高速缓存控制指令;
屏障指令;
存储器加载;以及
存储器存储。
4.如权利要求1中所述的片上网络,其中存储器包括:
片外主随机存取存储器;
通过存储器通信控制器直接连接到IP块的存储器;
作为IP块启用的片上存储器;以及
片上高速缓存。
5.如权利要求1中所述的片上网络,其中每个IP块包括用作所述片上网络内的数据处理构建块的可重用的同步或异步逻辑设计单元。
6.如权利要求1中所述的片上网络,其中每个网络接口控制器被启用以执行以下操作:
将通信指令从命令格式转换为网络分组格式;以及
在所述网络上实现由类型来表征网络分组的虚拟通道。
7.如权利要求1中所述的片上网络,其中:
每个IP块被启用以绕过所述IP块的存储器通信控制器并通过IP块的网络接口控制器将IP块间的网络寻址的通信直接发送到所述网络。
8.如权利要求1中所述的片上网络,其中:
每个IP块被启用以通过所述IP块的存储器通信控制器将基于存储器地址的通信发送到存储器和从存储器发送基于存储器地址的通信;
并且然后还通过所述IP块的网络接口控制器发送到所述网络。
9.一种使用片上网络NOC进行数据处理的方法,所述片上网络包括:
IP块、路由器、存储器通信控制器和网络接口控制器,
每个IP块通过存储器通信控制器和网络接口控制器连接到路由器,
所述方法包括:
由每个存储器通信控制器控制IP块和存储器之间的通信,
由每个网络接口控制器控制通过路由器的IP块间通信,以及
其中所述路由器包括两个或更多虚拟通信通道,并且每个虚拟通信通道由通信类型来表征,以及
其中所述网络接口控制器在收到含有暂停虚拟通道中传输的控制信号的情况下,拒绝从其关联的存储器通信控制器或其关联的IP块接受已暂停虚拟通道的通信指令,其中暂停虚拟通道中的传输进一步包括暂停特定通信类型分组的传输。
10.如权利要求9中所述的方法,其中所述存储器通信控制器包括多个存储器通信执行引擎,并且控制IP块和存储器之间的通信进一步包括:
由每个存储器通信执行引擎单独地和与其他存储器通信执行引擎并行 地执行完整的存储器通信指令;以及
在所述网络和所述IP块之间执行双向存储器通信指令流。
11.如权利要求10中所述的方法,其中所述存储器通信指令包括:
转换旁视缓冲器控制指令;
高速缓存控制指令;
屏障指令;
存储器加载指令;以及
存储器存储指令。
12.如权利要求9中所述的方法,其中存储器包括:
片外主随机存取存储器;
通过存储器通信控制器直接连接到IP块的存储器;
作为IP块启用的片上存储器;以及
片上高速缓存。
13.如权利要求9中所述的方法,其中每个IP块包括用作所述片上网络内的数据处理构建块的可重用的同步或异步逻辑设计单元。
14.如权利要求9中所述的方法,其中控制IP块间通信进一步包括:
由每个网络接口控制器将通信指令从命令格式转换为网络分组格式;以及
由每个网络接口控制器在所述网络上实现由类型来表征网络分组的虚拟通道。
15.如权利要求9中所述的方法,还包括:
由每个IP块通过所述IP块的存储器通信控制器将基于存储器地址的通信发送到存储器和从存储器发送基于存储器地址的通信,并且通过所述IP块的网络接口控制器发送到所述网络。
16.如权利要求9中所述的方法,还包括:
由每个IP块绕过所述IP块的存储器通信控制器;以及
由每个IP块通过IP块的网络接口控制器将IP块间的网络寻址的通信直接发送到所述网络。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/926,212 US20090109996A1 (en) | 2007-10-29 | 2007-10-29 | Network on Chip |
US11/926,212 | 2007-10-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101425966A CN101425966A (zh) | 2009-05-06 |
CN101425966B true CN101425966B (zh) | 2012-11-14 |
Family
ID=40582761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810161521XA Expired - Fee Related CN101425966B (zh) | 2007-10-29 | 2008-09-24 | 片上网络以及使用片上网络进行数据处理的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20090109996A1 (zh) |
JP (1) | JP5285375B2 (zh) |
CN (1) | CN101425966B (zh) |
TW (1) | TW200937219A (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090125706A1 (en) * | 2007-11-08 | 2009-05-14 | Hoover Russell D | Software Pipelining on a Network on Chip |
US20090125703A1 (en) * | 2007-11-09 | 2009-05-14 | Mejdrich Eric O | Context Switching on a Network On Chip |
US8261025B2 (en) | 2007-11-12 | 2012-09-04 | International Business Machines Corporation | Software pipelining on a network on chip |
US7873701B2 (en) * | 2007-11-27 | 2011-01-18 | International Business Machines Corporation | Network on chip with partitions |
US20090260013A1 (en) * | 2008-04-14 | 2009-10-15 | International Business Machines Corporation | Computer Processors With Plural, Pipelined Hardware Threads Of Execution |
US8423715B2 (en) | 2008-05-01 | 2013-04-16 | International Business Machines Corporation | Memory management among levels of cache in a memory hierarchy |
US8494833B2 (en) * | 2008-05-09 | 2013-07-23 | International Business Machines Corporation | Emulating a computer run time environment |
US20090282419A1 (en) * | 2008-05-09 | 2009-11-12 | International Business Machines Corporation | Ordered And Unordered Network-Addressed Message Control With Embedded DMA Commands For A Network On Chip |
US8438578B2 (en) | 2008-06-09 | 2013-05-07 | International Business Machines Corporation | Network on chip with an I/O accelerator |
US20090307408A1 (en) * | 2008-06-09 | 2009-12-10 | Rowan Nigel Naylor | Peer-to-Peer Embedded System Communication Method and Apparatus |
US9045600B2 (en) | 2009-05-13 | 2015-06-02 | Keraplast Technologies, Ltd. | Biopolymer materials |
TWI417741B (zh) * | 2009-09-14 | 2013-12-01 | Univ Nat Taiwan | 動態調整通道方向之方法及使用其之晶片網路架構 |
US8473818B2 (en) * | 2009-10-12 | 2013-06-25 | Empire Technology Development Llc | Reliable communications in on-chip networks |
WO2011148925A1 (ja) * | 2010-05-24 | 2011-12-01 | 日本電気株式会社 | 半導体装置とネットワークルーティング方法とシステム |
US8930618B2 (en) * | 2010-08-24 | 2015-01-06 | Futurewei Technologies, Inc. | Smart memory |
KR101841173B1 (ko) | 2010-12-17 | 2018-03-23 | 삼성전자주식회사 | 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법 |
EP2684320B1 (en) * | 2011-03-10 | 2016-10-19 | Cisco Technology, Inc. | Large interconnect fabrics |
JP2013196167A (ja) | 2012-03-16 | 2013-09-30 | Toshiba Corp | 情報処理装置 |
WO2013143090A1 (zh) * | 2012-03-28 | 2013-10-03 | 中兴通讯股份有限公司 | 一种实现多通道同步并行传输的方法和系统 |
KR102014118B1 (ko) | 2012-10-19 | 2019-08-26 | 삼성전자주식회사 | Axi 기반 네트워크 백본 시스템의 서브채널방식의 채널 관리 방법 및 장치 |
CN103383671A (zh) * | 2013-02-26 | 2013-11-06 | 西安交通大学 | 一种基于片上网络的dram通讯优化方法 |
JP6541272B2 (ja) * | 2013-12-12 | 2019-07-10 | マーベル ワールド トレード リミテッド | イントラチップ及びインターチップホッピングバスを介してシステムオンチップ内で及びこれらの間で情報を転送する方法及び装置 |
CN105488011B (zh) * | 2014-09-19 | 2018-06-19 | 杭州华为数字技术有限公司 | 片上网络的访存处理方法和片上网络 |
US9742630B2 (en) * | 2014-09-22 | 2017-08-22 | Netspeed Systems | Configurable router for a network on chip (NoC) |
US10348563B2 (en) | 2015-02-18 | 2019-07-09 | Netspeed Systems, Inc. | System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology |
JP5943109B1 (ja) | 2015-03-10 | 2016-06-29 | 日本電気株式会社 | 半導体チップ、集積回路、及びデータ転送方法 |
JP5943115B1 (ja) | 2015-03-27 | 2016-06-29 | 日本電気株式会社 | 集積回路、半導体装置、カード及びデータ転送方法 |
US10218580B2 (en) | 2015-06-18 | 2019-02-26 | Netspeed Systems | Generating physically aware network-on-chip design from a physical system-on-chip specification |
US10452124B2 (en) | 2016-09-12 | 2019-10-22 | Netspeed Systems, Inc. | Systems and methods for facilitating low power on a network-on-chip |
US20180159786A1 (en) | 2016-12-02 | 2018-06-07 | Netspeed Systems, Inc. | Interface virtualization and fast path for network on chip |
US10063496B2 (en) | 2017-01-10 | 2018-08-28 | Netspeed Systems Inc. | Buffer sizing of a NoC through machine learning |
US10469337B2 (en) | 2017-02-01 | 2019-11-05 | Netspeed Systems, Inc. | Cost management against requirements for the generation of a NoC |
US10983910B2 (en) | 2018-02-22 | 2021-04-20 | Netspeed Systems, Inc. | Bandwidth weighting mechanism based network-on-chip (NoC) configuration |
US10547514B2 (en) | 2018-02-22 | 2020-01-28 | Netspeed Systems, Inc. | Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation |
US11144457B2 (en) | 2018-02-22 | 2021-10-12 | Netspeed Systems, Inc. | Enhanced page locality in network-on-chip (NoC) architectures |
US10896476B2 (en) | 2018-02-22 | 2021-01-19 | Netspeed Systems, Inc. | Repository of integration description of hardware intellectual property for NoC construction and SoC integration |
US11176302B2 (en) | 2018-02-23 | 2021-11-16 | Netspeed Systems, Inc. | System on chip (SoC) builder |
US11023377B2 (en) | 2018-02-23 | 2021-06-01 | Netspeed Systems, Inc. | Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA) |
CN112398877B (zh) * | 2021-01-20 | 2021-04-27 | 北京燧原智能科技有限公司 | 控制信号转换电路、知识产权核以及系统级芯片 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6668308B2 (en) * | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
Family Cites Families (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE904100A (fr) * | 1986-01-24 | 1986-07-24 | Itt Ind Belgium | Systeme de commutation. |
US4951195A (en) * | 1988-02-01 | 1990-08-21 | International Business Machines Corporation | Condition code graph analysis for simulating a CPU processor |
JPH0628036B2 (ja) * | 1988-02-01 | 1994-04-13 | インターナショナル・ビジネス・マシーンズ・コーポレーシヨン | シミュレーシヨン方法 |
US5488729A (en) * | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
US5442797A (en) * | 1991-12-04 | 1995-08-15 | Casavant; Thomas L. | Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging |
US6047122A (en) * | 1992-05-07 | 2000-04-04 | Tm Patents, L.P. | System for method for performing a context switch operation in a massively parallel computer system |
JPH0675930A (ja) * | 1992-08-27 | 1994-03-18 | Toshiba Corp | 並列プロセッサシステム |
JPH06223044A (ja) * | 1993-01-25 | 1994-08-12 | Fujitsu Ltd | 並列計算機のメッセージ通信方法,及び装置 |
NL9301841A (nl) * | 1993-10-25 | 1995-05-16 | Nederland Ptt | Inrichting voor het bewerken van datapakketten. |
US5784706A (en) * | 1993-12-13 | 1998-07-21 | Cray Research, Inc. | Virtual to logical to physical address translation for distributed memory massively parallel processing systems |
JP3322754B2 (ja) * | 1994-05-17 | 2002-09-09 | 富士通株式会社 | 並列計算機 |
JPH08185380A (ja) * | 1994-12-28 | 1996-07-16 | Hitachi Ltd | 並列計算機 |
US5761516A (en) * | 1996-05-03 | 1998-06-02 | Lsi Logic Corporation | Single chip multiprocessor architecture with internal task switching synchronization bus |
US6049866A (en) * | 1996-09-06 | 2000-04-11 | Silicon Graphics, Inc. | Method and system for an efficient user mode cache manipulation using a simulated instruction |
US5887166A (en) * | 1996-12-16 | 1999-03-23 | International Business Machines Corporation | Method and system for constructing a program including a navigation instruction |
US5872963A (en) * | 1997-02-18 | 1999-02-16 | Silicon Graphics, Inc. | Resumption of preempted non-privileged threads with no kernel intervention |
US6021470A (en) * | 1997-03-17 | 2000-02-01 | Oracle Corporation | Method and apparatus for selective data caching implemented with noncacheable and cacheable data for improved cache performance in a computer networking system |
US6105119A (en) * | 1997-04-04 | 2000-08-15 | Texas Instruments Incorporated | Data transfer circuitry, DSP wrapper circuitry and improved processor devices, methods and systems |
US6044478A (en) * | 1997-05-30 | 2000-03-28 | National Semiconductor Corporation | Cache with finely granular locked-down regions |
US6085315A (en) * | 1997-09-12 | 2000-07-04 | Siemens Aktiengesellschaft | Data processing device with loop pipeline |
US6085296A (en) * | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US6898791B1 (en) * | 1998-04-21 | 2005-05-24 | California Institute Of Technology | Infospheres distributed object system |
US6092159A (en) * | 1998-05-05 | 2000-07-18 | Lsi Logic Corporation | Implementation of configurable on-chip fast memory using the data cache RAM |
US6101599A (en) * | 1998-06-29 | 2000-08-08 | Cisco Technology, Inc. | System for context switching between processing elements in a pipeline of processing elements |
TW389866B (en) * | 1998-07-01 | 2000-05-11 | Koninkl Philips Electronics Nv | Computer graphics animation method and device |
GB9818377D0 (en) * | 1998-08-21 | 1998-10-21 | Sgs Thomson Microelectronics | An integrated circuit with multiple processing cores |
US6591347B2 (en) * | 1998-10-09 | 2003-07-08 | National Semiconductor Corporation | Dynamic replacement technique in a shared cache |
US6370622B1 (en) * | 1998-11-20 | 2002-04-09 | Massachusetts Institute Of Technology | Method and apparatus for curious and column caching |
GB2385174B (en) * | 1999-01-19 | 2003-11-26 | Advanced Risc Mach Ltd | Memory control within data processing systems |
US6272598B1 (en) * | 1999-03-22 | 2001-08-07 | Hewlett-Packard Company | Web cache performance by applying different replacement policies to the web cache |
US6519605B1 (en) * | 1999-04-27 | 2003-02-11 | International Business Machines Corporation | Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls |
US6434669B1 (en) * | 1999-09-07 | 2002-08-13 | International Business Machines Corporation | Method of cache management to dynamically update information-type dependent cache policies |
US7010580B1 (en) * | 1999-10-08 | 2006-03-07 | Agile Software Corp. | Method and apparatus for exchanging data in a platform independent manner |
JP2001167066A (ja) * | 1999-12-08 | 2001-06-22 | Nec Corp | プロセッサ間通信方法及びマルチプロセッサシステム |
US6470437B1 (en) * | 1999-12-17 | 2002-10-22 | Hewlett-Packard Company | Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design |
US6697932B1 (en) * | 1999-12-30 | 2004-02-24 | Intel Corporation | System and method for early resolution of low confidence branches and safe data cache accesses |
US6725317B1 (en) * | 2000-04-29 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | System and method for managing a computer system having a plurality of partitions |
US6567895B2 (en) * | 2000-05-31 | 2003-05-20 | Texas Instruments Incorporated | Loop cache memory and cache controller for pipelined microprocessors |
US6567084B1 (en) * | 2000-07-27 | 2003-05-20 | Ati International Srl | Lighting effect computation circuit and method therefore |
US6877086B1 (en) * | 2000-11-02 | 2005-04-05 | Intel Corporation | Method and apparatus for rescheduling multiple micro-operations in a processor using a replay queue and a counter |
US6961825B2 (en) * | 2001-01-24 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Cache coherency mechanism using arbitration masks |
CA2377459C (en) * | 2001-01-29 | 2009-04-21 | Joseph A. Mcgill | Adjustable damper for airflow systems |
CN1269053C (zh) * | 2001-02-24 | 2006-08-09 | 国际商业机器公司 | 分组路由方法、系统及用于分组路由的可扩展网络交换机 |
US6891828B2 (en) * | 2001-03-12 | 2005-05-10 | Network Excellence For Enterprises Corp. | Dual-loop bus-based network switch using distance-value or bit-mask |
US6915402B2 (en) * | 2001-05-23 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | Method and system for creating secure address space using hardware memory router |
US7072996B2 (en) * | 2001-06-13 | 2006-07-04 | Corrent Corporation | System and method of transferring data between a processing engine and a plurality of bus types using an arbiter |
US6988149B2 (en) * | 2002-02-26 | 2006-01-17 | Lsi Logic Corporation | Integrated target masking |
US7398374B2 (en) * | 2002-02-27 | 2008-07-08 | Hewlett-Packard Development Company, L.P. | Multi-cluster processor for processing instructions of one or more instruction threads |
US7015909B1 (en) * | 2002-03-19 | 2006-03-21 | Aechelon Technology, Inc. | Efficient use of user-defined shaders to implement graphics operations |
US7609718B2 (en) * | 2002-05-15 | 2009-10-27 | Broadcom Corporation | Packet data service over hyper transport link(s) |
CN100342370C (zh) * | 2002-10-08 | 2007-10-10 | 皇家飞利浦电子股份有限公司 | 用于交换数据的集成电路和方法 |
US6901483B2 (en) * | 2002-10-24 | 2005-05-31 | International Business Machines Corporation | Prioritizing and locking removed and subsequently reloaded cache lines |
US7296121B2 (en) * | 2002-11-04 | 2007-11-13 | Newisys, Inc. | Reducing probe traffic in multiprocessor systems |
US7254578B2 (en) * | 2002-12-10 | 2007-08-07 | International Business Machines Corporation | Concurrency classes for shared file systems |
US7873785B2 (en) * | 2003-08-19 | 2011-01-18 | Oracle America, Inc. | Multi-core multi-thread processor |
US20050086435A1 (en) * | 2003-09-09 | 2005-04-21 | Seiko Epson Corporation | Cache memory controlling apparatus, information processing apparatus and method for control of cache memory |
US7418606B2 (en) * | 2003-09-18 | 2008-08-26 | Nvidia Corporation | High quality and high performance three-dimensional graphics architecture for portable handheld devices |
JP4449382B2 (ja) * | 2003-09-19 | 2010-04-14 | 船井電機株式会社 | 受信装置およびそれを搭載したテレビジョン装置 |
US7689738B1 (en) * | 2003-10-01 | 2010-03-30 | Advanced Micro Devices, Inc. | Peripheral devices and methods for transferring incoming data status entries from a peripheral to a host |
US7574482B2 (en) * | 2003-10-31 | 2009-08-11 | Agere Systems Inc. | Internal memory controller providing configurable access of processor clients to memory instances |
US7502912B2 (en) * | 2003-12-30 | 2009-03-10 | Intel Corporation | Method and apparatus for rescheduling operations in a processor |
US7162560B2 (en) * | 2003-12-31 | 2007-01-09 | Intel Corporation | Partitionable multiprocessor system having programmable interrupt controllers |
US8176259B2 (en) * | 2004-01-20 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | System and method for resolving transactions in a cache coherency protocol |
WO2005072307A2 (en) * | 2004-01-22 | 2005-08-11 | University Of Washington | Wavescalar architecture having a wave order memory |
US7533154B1 (en) * | 2004-02-04 | 2009-05-12 | Advanced Micro Devices, Inc. | Descriptor management systems and methods for transferring data of multiple priorities between a host and a network |
KR100555753B1 (ko) * | 2004-02-06 | 2006-03-03 | 삼성전자주식회사 | 원칩 시스템에서 라우터들간의 라우팅 경로 설정 장치 및방법 |
US7478225B1 (en) * | 2004-06-30 | 2009-01-13 | Sun Microsystems, Inc. | Apparatus and method to support pipelining of differing-latency instructions in a multithreaded processor |
US7516306B2 (en) * | 2004-10-05 | 2009-04-07 | International Business Machines Corporation | Computer program instruction architecture, system and process using partial ordering for adaptive response to memory latencies |
US7493474B1 (en) * | 2004-11-10 | 2009-02-17 | Altera Corporation | Methods and apparatus for transforming, loading, and executing super-set instructions |
US7804504B1 (en) * | 2004-12-13 | 2010-09-28 | Massachusetts Institute Of Technology | Managing yield for a parallel processing integrated circuit |
WO2006109207A1 (en) * | 2005-04-13 | 2006-10-19 | Koninklijke Philips Electronics N.V. | Electronic device and method for flow control |
US7376789B2 (en) * | 2005-06-29 | 2008-05-20 | Intel Corporation | Wide-port context cache apparatus, systems, and methods |
EP1911218A2 (en) * | 2005-07-19 | 2008-04-16 | Koninklijke Philips Electronics N.V. | Electronic device and method of communication resource allocation |
US8990547B2 (en) * | 2005-08-23 | 2015-03-24 | Hewlett-Packard Development Company, L.P. | Systems and methods for re-ordering instructions |
US20070083735A1 (en) * | 2005-08-29 | 2007-04-12 | Glew Andrew F | Hierarchical processor |
US20070074191A1 (en) * | 2005-08-30 | 2007-03-29 | Geisinger Nile J | Software executables having virtual hardware, operating systems, and networks |
US8526415B2 (en) * | 2005-09-30 | 2013-09-03 | Robert Bosch Gmbh | Method and system for providing acknowledged broadcast and multicast communication |
US8429661B1 (en) * | 2005-12-14 | 2013-04-23 | Nvidia Corporation | Managing multi-threaded FIFO memory by determining whether issued credit count for dedicated class of threads is less than limit |
US7568064B2 (en) * | 2006-02-21 | 2009-07-28 | M2000 | Packet-oriented communication in reconfigurable circuit(s) |
WO2007110914A1 (ja) * | 2006-03-27 | 2007-10-04 | Fujitsu Limited | マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法 |
US7882307B1 (en) * | 2006-04-14 | 2011-02-01 | Tilera Corporation | Managing cache memory in a parallel processing environment |
US8345053B2 (en) * | 2006-09-21 | 2013-01-01 | Qualcomm Incorporated | Graphics processors with parallel scheduling and execution of threads |
US7664108B2 (en) * | 2006-10-10 | 2010-02-16 | Abdullah Ali Bahattab | Route once and cross-connect many |
US7502378B2 (en) * | 2006-11-29 | 2009-03-10 | Nec Laboratories America, Inc. | Flexible wrapper architecture for tiled networks on a chip |
US7992151B2 (en) * | 2006-11-30 | 2011-08-02 | Intel Corporation | Methods and apparatuses for core allocations |
US7521961B1 (en) * | 2007-01-23 | 2009-04-21 | Xilinx, Inc. | Method and system for partially reconfigurable switch |
EP1950932A1 (en) * | 2007-01-29 | 2008-07-30 | Stmicroelectronics Sa | System for transmitting data within a network between nodes of the network and flow control process for transmitting said data |
US7500060B1 (en) * | 2007-03-16 | 2009-03-03 | Xilinx, Inc. | Hardware stack structure using programmable logic |
US7886084B2 (en) * | 2007-06-26 | 2011-02-08 | International Business Machines Corporation | Optimized collectives using a DMA on a parallel computer |
US8478834B2 (en) * | 2007-07-12 | 2013-07-02 | International Business Machines Corporation | Low latency, high bandwidth data communications between compute nodes in a parallel computer |
US8200992B2 (en) * | 2007-09-24 | 2012-06-12 | Cognitive Electronics, Inc. | Parallel processing computer systems with reduced power consumption and methods for providing the same |
US7701252B1 (en) * | 2007-11-06 | 2010-04-20 | Altera Corporation | Stacked die network-on-chip for FPGA |
US20090125706A1 (en) * | 2007-11-08 | 2009-05-14 | Hoover Russell D | Software Pipelining on a Network on Chip |
US20090125703A1 (en) * | 2007-11-09 | 2009-05-14 | Mejdrich Eric O | Context Switching on a Network On Chip |
US8261025B2 (en) * | 2007-11-12 | 2012-09-04 | International Business Machines Corporation | Software pipelining on a network on chip |
US8526422B2 (en) * | 2007-11-27 | 2013-09-03 | International Business Machines Corporation | Network on chip with partitions |
US7873701B2 (en) * | 2007-11-27 | 2011-01-18 | International Business Machines Corporation | Network on chip with partitions |
US7917703B2 (en) * | 2007-12-13 | 2011-03-29 | International Business Machines Corporation | Network on chip that maintains cache coherency with invalidate commands |
US8473667B2 (en) * | 2008-01-11 | 2013-06-25 | International Business Machines Corporation | Network on chip that maintains cache coherency with invalidation messages |
US8010750B2 (en) * | 2008-01-17 | 2011-08-30 | International Business Machines Corporation | Network on chip that maintains cache coherency with invalidate commands |
US7913010B2 (en) * | 2008-02-15 | 2011-03-22 | International Business Machines Corporation | Network on chip with a low latency, high bandwidth application messaging interconnect |
US7958340B2 (en) * | 2008-05-09 | 2011-06-07 | International Business Machines Corporation | Monitoring software pipeline performance on a network on chip |
US8195884B2 (en) * | 2008-09-18 | 2012-06-05 | International Business Machines Corporation | Network on chip with caching restrictions for pages of computer memory |
-
2007
- 2007-10-29 US US11/926,212 patent/US20090109996A1/en not_active Abandoned
-
2008
- 2008-09-24 TW TW097136674A patent/TW200937219A/zh unknown
- 2008-09-24 CN CN200810161521XA patent/CN101425966B/zh not_active Expired - Fee Related
- 2008-09-30 JP JP2008252459A patent/JP5285375B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6668308B2 (en) * | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
Also Published As
Publication number | Publication date |
---|---|
JP5285375B2 (ja) | 2013-09-11 |
US20090109996A1 (en) | 2009-04-30 |
CN101425966A (zh) | 2009-05-06 |
JP2009110512A (ja) | 2009-05-21 |
TW200937219A (en) | 2009-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101425966B (zh) | 片上网络以及使用片上网络进行数据处理的方法 | |
US8494833B2 (en) | Emulating a computer run time environment | |
CN101447986B (zh) | 具有分区的片上网络及其处理方法 | |
US8010750B2 (en) | Network on chip that maintains cache coherency with invalidate commands | |
US7917703B2 (en) | Network on chip that maintains cache coherency with invalidate commands | |
US8438578B2 (en) | Network on chip with an I/O accelerator | |
US9864712B2 (en) | Shared receive queue allocation for network on a chip communication | |
US7873701B2 (en) | Network on chip with partitions | |
CN101430652B (zh) | 片内网络以及片内网络软件流水线操作方法 | |
US8490110B2 (en) | Network on chip with a low latency, high bandwidth application messaging interconnect | |
US8473667B2 (en) | Network on chip that maintains cache coherency with invalidation messages | |
US8719455B2 (en) | DMA-based acceleration of command push buffer between host and target devices | |
US20090282419A1 (en) | Ordered And Unordered Network-Addressed Message Control With Embedded DMA Commands For A Network On Chip | |
US20090271172A1 (en) | Emulating A Computer Run Time Environment | |
US20130185542A1 (en) | External auxiliary execution unit interface to off-chip auxiliary execution unit | |
CN118043815A (zh) | 调试数据流计算机架构 | |
US20220224605A1 (en) | Simulating network flow control | |
US20240086324A1 (en) | High bandwidth gather cache | |
CN117435549A (zh) | 用于硬件组件之间的通信的方法和系统 | |
CN117546133A (zh) | 缓解具有多个存储器控制器的系统上的存储器热点 | |
CN117435548A (zh) | 用于硬件组件之间的通信的方法和系统 | |
CN117435545A (zh) | 用于请求计算系统中的原子操作的方法和系统 | |
CN117632842A (zh) | 粗粒度可配置阵列处理器中的上下文加载机制 | |
CN117632256A (zh) | 用于处置多元件处理器中的断点的装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121114 Termination date: 20200924 |