CN101669100B - 利用半导体芯片中的多核处理器资源阵列管理多个i/o接口的方法和系统 - Google Patents

利用半导体芯片中的多核处理器资源阵列管理多个i/o接口的方法和系统 Download PDF

Info

Publication number
CN101669100B
CN101669100B CN2007800525949A CN200780052594A CN101669100B CN 101669100 B CN101669100 B CN 101669100B CN 2007800525949 A CN2007800525949 A CN 2007800525949A CN 200780052594 A CN200780052594 A CN 200780052594A CN 101669100 B CN101669100 B CN 101669100B
Authority
CN
China
Prior art keywords
data
header
frame
processor resources
order
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
Application number
CN2007800525949A
Other languages
English (en)
Other versions
CN101669100A (zh
Inventor
卡尔·雷米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ezchip Semiconductor Inc
Original Assignee
Tilera Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tilera Corp filed Critical Tilera Corp
Publication of CN101669100A publication Critical patent/CN101669100A/zh
Application granted granted Critical
Publication of CN101669100B publication Critical patent/CN101669100B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Abstract

本发明涉及利用半导体芯片中的多核处理器资源阵列管理I/O接口的方法和系统。I/O接口通过I/O垫片连接至处理器资源。I/O接口将数据帧发送至I/O垫片。基于I/O协议,I/O接口对数据进行分组以形成数据帧。数据帧包括报头和数据。垫片110通过使用一个或多个处理器资源来识别对应于数据帧的命令。该命令包括任务集。随后,对数据执行任务集。

Description

利用半导体芯片中的多核处理器资源阵列管理多个I/O接口的方法和系统
技术领域
本发明大体上涉及使输入/输出(I/O)接口与连接成平铺结构的多核处理器资源阵列相连接。具体地,本发明涉及提供一种动态软件控制的硬件接口,该接口在I/O接口与多核处理器资源阵列之间。
背景技术
I/O接口是被设计为在半导体芯片中处理、初始化并移动数据的硬件电路。I/O接口的实例包括10Gbe、PCle、Gbe I/O等。I/O接口的硬件电路取决于其使用模型和应用。例如,一些应用需要在处理数据之前传送数据,而其他应用需要在数据传送之前处理数据。I/O接口连接至处理器资源。处理器资源处理从I/O接口接收到的数据。一般通过基于预定寻址方案设计的硬线连接将I/O接口连接至处理器资源。预定寻址方案的实例包括存储映像寻址方案和I/O映射寻址方案。I/O接口连接不易于实现I/O接口动态连接至处理器资源的灵活性。
硬件电路是通过使用公共总线来设计的,以使特定的I/O接口仅可以与其对应的处理器资源进行通信。这增加了电路的复杂性,特别是在I/O接口和/或处理器资源的数量比较大的情况下。因此,电路需要附加的芯片面积,并且每个处理器资源被固定地预定分配给I/O资源。此外,特定处理器资源与其对应I/O接口的结合也是固定的。
可选地,三态总线结构可以用于硬件电路中。三态总线结构允许限定数量的处理器资源动态地链接至I/O接口。链接至I/O接口的处理器资源的限定数量是基于诸如所需电流、可接受的传输延迟等的电气特性。进一步地,三态总线结构必须确保在自动测试模式生成关注(Automatic Test Pattern Generating Concerns,简称ATAG)中每次扫描变化操作期间在三态总线上没有争用。ATAG用于区分正确电路行为和故障电路行为,所述故障电路行为由电路设计或性能的缺陷引起。
根据以上论述,需要一种利用多核处理器资源阵列动态地管理I/O接口的方法和系统。这样的方法和系统应当能提供动态控制的硬件电路以将I/O接口连接至有效地使用芯片面积的多核处理器资源阵列。这会消除特定处理器资源与对应I/O接口之间的预定绑定。进一步地,这样的系统应该是可扩展的,从而可以根据其特性将处理器资源的一个或多个处理器资源连接至I/O接口。进一步地,这样的系统可以利于将处理器资源以任何需要的组合分配给I/O接口。
发明内容
本发明的一个目的在于提供一种利用半导体芯片中的多核处理器资源阵列管理输入/输出(I/O)接口的方法和系统。
本发明的另一个目的在于提供一种多核处理器资源阵列与I/O接口间的动态接口I/O垫片,包括由软件控制的有效利用芯片面积的硬件。这能够提供动态地分配处理器资源的一个或多个处理器资源至I/O接口的处理的灵活性以处理数据。
本发明的又一目的在于消除处理器资源至任意一个I/O接口的预定分配。这提供了在使用处理器资源时的灵活性。
本发明的又一目的在于根据I/O接口的特性动态地识别一个I/O接口所需要的处理器资源的数量。
本发明的又一目的在于提供I/O垫片的软件控制,其将处理器资源和I/O接口以任何需要的结合形式一起连接成串。
本发明的各个实施例提供了一种利用半导体芯片中的多核处理器资源阵列管理I/O接口的方法和系统。利用多核处理器资源阵列管理I/O接口的这种系统在下文中被称为I/O垫片。I/O接口将数据帧发送至I/O垫片。该数据帧由基于I/O协议分组数据形成。该数据帧包括数据和报头。I/O垫片通过使用一个或多个处理器资源来识别对应于数据帧的命令。该命令包括由I/O垫片对数据执行的任务集合。
附图说明
下文中,将结合附图来描述本发明的实施例,所提供的附图是示意的不限定于本发明,其中,类似标号表示类似元件,其中:
图1是示出了半导体芯片的框图,其中,可以实现本发明的各个实施例;
图2是示出了根据本发明实施例的利用半导体芯片中的多核处理器资源阵列管理输入/输出(I/O)接口的系统的框图;
图3是示出了根据本发明实施例的通用命令识别模块及其元件的框图;
图4是示出了根据本发明实施例的执行模块及其元件的框图;
图5是出了根据本发明实施例的利用半导体芯片中的多核处理器资源阵列管理I/O接口的方法的流程图;
图6A和图6B示出了根据本发明的详细实施例的利用半导体芯片中的多核处理器资源阵列管理I/O接口的方法的流程图;
图7示出了根据本发明的另一个实施例的利用半导体芯片中的多核处理器资源阵列管理I/O接口的方法的流程图;以及
图8示出了根据本发明的又一个实施例的利用半导体芯片中的多核处理器资源阵列管理I/O接口的方法的流程图。
具体实施方式
本发明的各种实施例提供了利用半导体芯片中的多核处理器资源阵列管理输入/输出(I/O)接口的方法、系统和计算机程序产品。下文中将利用多核处理器资源阵列管理I/O接口的这种系统称为I/O垫片。I/O接口的实例包括10Gbe、PCle、Gbe I/O等。I/O接口使用不同的I/O协议以与多核处理器资源阵列进行通信以处理数据。这样的I/O协议的实例包括但不限于本地互联网络(LIN)协议、控制器局域网(CAN)协议、媒体导向系统传输(MOST)协议、和传输控制协议/互联网协议(TCP/IP)。
这些I/O接口通过I/O动态网络(IODN)线路与多核处理器资源进行通信。然而,I/O接口通过存储动态网络(MDN)线路与用来存储数据的存储器通信。根据将对数据执行的任务,I/O接口将在数据帧中被分组的数据传送至需要的位置。这些数据帧是基于由I/O协议限定的一组规则通过I/O接口形成的。不同的I/O接口使用不同的I/O协议来通过对数据进行分组形成数据帧。进一步地,包括在每个数据帧中的报头和数据的位置是基于所使用的I/O协议限定的以形成数据帧。
数据帧中的报头包括由处理器资源检测到的命令。该处理器资源是基于其可用性和容量选自多核处理器资源阵列的。处理器资源的容量被限定为可以由处理器资源执行的任务集。编程多核处理器资源阵列中的每个处理器资源以执行数据上的某一任务集。该任务集被包括在命令中。进一步地,对应于数据帧中的报头的命令的识别由处理器资源执行,该处理器资源随机地选自一组可用且可容纳的处理器资源。这些处理器资源是多核处理器资源阵列的一部分。随后,对数据执行存在于命令中的任务集合。
图1是示出了半导体芯片100的框图,其中,本发明的各个实施例可以被实现。半导体芯片100包括I/O接口102a-d、片外存储器104、I/O垫片106a-d、和多核处理器资源阵列108。I/O接口102a-d形成硬件电路,该硬件电路通过这些I/O接口为互联的处理单元间的通信提供兼容性。I/O接口102a-d使用不同的I/O协议来对数据进行分组,并且对于不同的I/O协议被不同地设计。根据本发明的实施例,I/O接口102a-d可以使用用于分组数据的类似协议。基于I/O协议,I/O接口102a-d中的每一个均对数据分组以形成数据帧,并且使用数据帧以将数据传送至需要的位置。
将片外存储器104连接至半导体芯片100以存储数据。I/O垫片106a-d是I/O接口102a-d与多核处理器资源阵列108间的接口。I/O垫片106a-d被设计为具有硬件部分和软件部分的逻辑电路。I/O垫片106a-d对数据进行处理并管理所处理的数据,以将数据移动至需要的位置。因此,I/O垫片106a-d动态地将I/O接口102a-d中的每一个连接至多核处理器资源阵列108。
另外,I/O垫片106a-d提供I/O接口102a-d与多核处理器资源阵列108间的兼容性。该兼容性包括通过多核处理器资源阵列108来理解I/O协议以及I/O接口102的应用模型等。I/O接口102a-d的应用模型可以是以下中的任一个:传送数据应用、处理数据以格式化数据帧等。
多核处理器资源阵列108包括半导体芯片100中以平铺形式排列的处理器资源。多核处理器资源阵列108中的每个处理器资源执行特定的任务集,并且可以动态地被编程以执行需要的任务集。这是通过在任一时间点处对多核处理器资源阵列108进行编程来执行半导体芯片100限定的任务集实现的。由于根据处理器资源的需求和可用性对存在于多核处理器资源阵列108中的处理器资源动态地重新编程,所以对于特定的处理器资源所限定的任务集是不断变化的。进一步地,多核处理器资源阵列108中的每个处理器资源可以对I/O垫片106a-d进行编程,以对数据执行任务集。根据本发明的另一个实施例,I/O垫片106a-d可以由连接至半导体芯片100的片外控制器218来编程。
图2是示出了根据本发明实施例的利用存在于半导体芯片100中的多核处理器资源阵列108管理输入/输出(I/O)接口102a-d的系统200的框图。系统200包括I/O接口102a、I/O垫片106d及其元件、处理器资源108a和108b、存储器垫片(memory shim)212、和片外控制器218。I/O接口102a使用IODN线路216,通过I/O垫片106d与多核处理器资源阵列108进行通信。然而,为了举例说明,图2中仅示出了两个多核处理器资源108a和108b。根据I/O接口102a的特性和需求,I/O接口102a可以与多核处理器资源阵列108中的一个或多个处理器资源进行通信。基于对应的I/O协议,I/O接口102a对数据进行分组以形成数据帧。数据帧包括报头和数据位部分。I/O接口102a将数据帧发送至I/O垫片106d。
使用所设计的硬件部分和软件部分的结合,I/O垫片106d动态地将I/O接口102a与多核处理器资源阵列108连接。I/O垫片106d的软件部分被存储在I/O垫片106d的配置寄存器中。通过编写程序代码可以在任一时刻对配置寄存器中的I/O垫片106d进行动态编程。I/O垫片106d可以由多核处理器资源阵列108中的多个处理器资源的一个处理器资源或连接至半导体芯片100中的I/O垫片106a-d的片外控制器218来编程。由于I/O垫片106d是由软件部分控制的硬件部分,所以其可以处理多个I/O应用模型。例如,I/O垫片106d可以根据需求处理将所接收到的数据直接发送至存储器垫片212或至处理器资源108a或108b的任务,以及经由I/O垫片106a-d中的一个以及多核处理器资源阵列108中的一个处理器资源将所接收到的数据从I/O接口102a直接发送至I/O接口102b。
I/O垫片106d包括媒体访问控制层202、传送率控制模块204、通用命令识别模块206、执行模块208、和仲裁复用器(arbitratormultiplexer)220。I/O接口102中的每一个均具有对应的兼容媒体访问控制层。例如,I/O接口102a具有专门设计的与媒体访问控制层202兼容的对应控制层。从I/O接口102a接收到的数据帧被路由至其对应的媒体访问控制层202,其包括识别模块210。识别模块210识别从I/O接口102a接收到的数据帧中所使用的I/O协议。进一步地,媒体访问控制层202通过使用所识别的I/O协议来识别存在于数据帧中的报头和数据。进一步地,媒体访问控制层202可以被配置成传递所有数据包(pass-all-packet)模式,以便使媒体访问控制层202与自定义数据包兼容。这些自定义数据包由非标准I/O接口生成。对于自定义数据包,配置成传递所有数据包模式的媒体访问控制层202绕过了诸如CRC(循环冗余码)校验、前导处理、成帧和LC报头校验的传统的MAC(媒体访问控制)特征。这些被绕过的特征由处理器资源108执行。进一步地,自定义数据包信息的处理也由处理器资源108执行。
传送率控制模块204调节接收数据帧的速率。传送率控制模块204将媒体访问控制层202与通用命令识别模块206连接起来。传送率控制模块204还将通用命令识别模块206中复杂的设计片与媒体访问控制层202动态地连接。这使得通用命令识别模块206中复杂的设计片动态地用于不同的媒体访问控制层。通用命令识别模块206中的复杂的设计片包括直接媒体访问(DMA)引擎、配置接口、网络接口、先进先出(FIFO)、和中断生成的设计。
通用命令识别模块206提供了处理来自I/O接口102的任何协议指定数据的灵活性。进一步地,通用命令识别模块206基于计算需求动态地处理存在于数据帧中的报头,例如,前置(pre-pending)数据或者后置(post-pending)数据。从而,通用命令识别模块206具有负载均衡、协议分类、简单的服务质量(QoS)、和将报头转发至I/O垫片106的能力。
通用命令识别模块206在处理器资源的协助下识别存在于数据帧的报头中的命令,并且基于所识别的命令做出动态决定。这包括前置和后置数据。进一步地,通用命令识别模块206被限定为将基于消息的协议提供给I/O接口102a以进行通信。这消除了对半导体芯片100中的I/O协议指定硬件的需要,因为基于消息的协议提供了仿真的能力。基于数据信息(其在消息中为位的形式)执行该仿真。有效位具有仿真信号。进一步地,基于消息的协议虚拟化所需求的任务集,以使任务集中的每一个任务均可以由消息表示。在接收消息之后,执行任务集,使得消息实际上表示任务集。这包括诸如中断生成、中断处理的虚拟化任务、以及寄存器和处理器命令。
此外,基于消息的协议还可以与以平铺形式排列的多核处理器资源阵列108结合。而且,基于消息的协议提供了将处理器资源108a或处理器资源108b分配至I/O接口102a的灵活性。例如,如果处理器资源108a想要将I/O接口102a的控制转移至处理器资源108b,则处理器资源108b将基于消息的协议消息发送至处理器资源108b,以指示控制的转移。这提供了对存在于多核处理器资源阵列108中的I/O接口102的I/O管理。进一步地,这提供了处理器资源108a或108b至I/O接口102的动态分配。因此,消除了服务I/O接口102与处理器资源108a的预定绑定。这样的服务的实例包括但不限于控制入口和出口流量、报头帧处理、功率管理、初始化、中断、和基本输入/输出系统(BIOS)级别交互。
执行模块208通过MDN线路214将数据存储在存储器垫片212中。随后,使用来自多核处理器资源阵列108的一个或多个处理器资源,执行模块208执行对应于数据帧所识别的命令的任务集。多核处理器资源阵列108中的每个处理器资源是被编程为执行所接收到的数据上的任务集的处理单元。多核处理器资源阵列108中的每个处理器资源均通过IODN线路216连接至I/O垫片106d。I/O垫片106d将数据沿IODN线路216传送至多核处理器资源阵列108中的一个处理器资源。进一步地,多核处理器资源阵列108中的每个处理器资源均可以将I/O垫片106d编程以执行数据上的任务集。
图3是示出了根据本发明实施例的通用命令识别模块206及其元件的框图。通用命令识别模块206包括报头处理器模块302、报头存储器306、数据包存储器308、和命令日志310。报头处理模块302从I/O接口102接收到的数据帧提取报头和数据。数据帧中的报头可以包括服务质量(QoS)指示符。报头包括与数据结构和报头位置有关的信息。报头存储器306和数据包存储器308的数据结构可以是后进先出(LIFO)、先进先出(FIFO)、或树结构中的一个。
报头处理模块302通过使用与本领域的普通技术人员已知的与报头有关的对应数据结构信息,来将报头存储在报头存储器306中。报头和数据由配置寄存器限定。进一步地,报头处理模块302通过使用与数据有关的对应数据结构信息来将数据存储在数据包存储器308中。报头存储器306和数据包存储器308是用于分别存储报头和数据的存储单元。这些存储单元遵循预定的数据结构。
报头处理模块302对报头进行分组以形成报头帧。报头帧包括选自多核处理器资源阵列108的处理器资源的地址。该处理器资源是动态地选自多核处理器资源阵列108,以及能够并可用于执行所需求的任务集。报头处理器模块302包括发送模块304,其将报头帧发送至所选的处理器资源。仲裁复用器220将报头帧路由至所选的处理器。该所选的处理器资源检查报头帧中的成帧误差,并且发回确认命令。成帧误差的检查包括检查报头帧的奇偶性、报头帧的循环冗余码(CRC)等,以便检查和消除所接收到的报头帧中的误差。随后,所选的处理器资源识别对应于报头帧的命令。处理器资源基于所识别的命令向命令日志310发出指示命令。命令日志310包括对应于所接收到的指示命令中的每一个指示命令的任务集。随后,多个处理器资源中的一个处理器资源或I/O垫片106基于将执行的任务集对数据执行对应于所接收到的指示命令的任务集。指示命令还包括关于将报头分组以形成报头帧的信息,以便执行任务集。
图4是示出了根据本发明实施例的执行模块208及其元件的框图。执行模块208包括直接存储存取(DMA)引擎402和数据处理机404。DMA引擎402是程序单元,其可以由多核处理器资源阵列中的一个处理器资源基于在报头帧中所识别的命令来编程。根据另一个实施例,DMA引擎402可以基于需求DMA引擎402来对数据执行的任务集来编程。基于命令中所识别的需求,DMA引擎402通过MDN线路214将数据从I/O垫片106传送至存储器垫片212的需要的位置。可选地,DMA引擎402通过IODN线路216将数据从I/O垫片106传送至多核处理器资源阵列108中的一个处理器资源。数据处理机404基于所识别的命令执行协议指定处理以操作数据。数据处理机404包括数据操作器406,其基于所识别的命令执行指定的数据操作。例如,数据操作器执行前置或后置数据等功能。
图5是示出了根据本发明实施例的利用半导体芯片100中的多核处理器资源阵列108管理I/O接口102的方法的流程图。I/O接口102a基于I/O协议对数据进行分组以形成数据帧。数据帧包括报头和数据部分。在步骤502处,在I/O垫片106d处从I/O接口102a接收数据帧。在步骤504处,通过存在于I/O垫片106d中的识别模块210识别对应于数据帧的I/O协议。通过使用所识别的I/O协议信息,由I/O垫片106d在数据帧中识别报头。该I/O协议信息向I/O垫片106d提供关于数据帧的报头和数据部分的信息。进一步地,对应于所识别的报头的命令由处理器资源108a检测。基于多核处理器资源的容量和可用性,处理器资源108a选自多核处理器资源阵列108。所检测的命令包括将对数据执行的任务集。在步骤506处,处理器资源中的一个处理器资源或I/O垫片106d基于将执行的任务集对存在于数据帧中的数据执行任务集。
图6A和图6B示出了根据本发明的另一实施例的利用半导体芯片100中的多核处理器资源阵列108管理I/O接口102的方法的流程图。I/O接口102a基于I/O协议对数据进行分组以形成数据帧。数据帧包括包括报头和数据。在步骤602处,I/O垫片106d从I/O接口102a接收数据帧。如前所述,当接收数据帧时,接收数据帧的传送率由传送率控制模块204控制。在步骤604处,通过识别模块210识别对应于所接收到的数据帧的I/O协议。所识别的I/O协议包括关于数据帧的报头和数据部分的信息。在步骤606处,基于所识别的I/O协议信息,识别存在于数据帧中的报头和数据。在步骤608处,报头处理模块302对报头进行分组以形成报头帧。报头帧包括与选自多核处理器资源阵列108的处理器资源108a的地址有关的信息。如前所述,多核处理器资源阵列108是被编程为执行所需求的任务集并可用于服务的处理器资源。
随后,在步骤610处,发送模块304将报头帧发送至处理器资源108a,以处理报头帧以及以识别对应于报头帧的命令。存在于IO垫片106d中的仲裁复用器220将报头帧路由至处理器资源108a。处理器资源108a检查成帧误差并发送报头帧的接收确认位。仲裁复用器220接收确认位,并从而确认来自处理器资源108a的报头帧的接收。在步骤612处,处理器资源108a识别命令日志310中对应于报头帧的命令,该命令日志包括对应于不同报头帧的命令的日志。随后,由处理器资源108发出的指示命令选择对应于存在于命令日志310中的所识别的命令的任务集。在步骤614处,处理器资源108a对DMA引擎402进行编程以执行对应于所识别的命令的所选任务集。如前所述,DMA引擎402使用数据处理机404来执行诸如前置数据、后置数据等某一数据操作。在步骤616处,如果在命令中的任务集对应于将数据传送至片外存储器104,则DMA引擎402将数据包存储器中的数据通过MDN线路214导向至片外存储器104。可选地,在步骤618处,如果任务集不对应于将数据传送至片外存储器104,则DMA引擎402将数据包存储器中的数据通过IODN线路216导向至半导体芯片100上的多核处理器资源阵列108中的一个或多个处理器资源。基于命令中由处理器资源108a识别的任务集来选择性地执行一个或多个处理器资源。执行任务集所需要的处理器资源的数量还取决于所识别的命令。进一步地,如果命令中所识别的任务集需要,则处理器资源108b可以处理存在于数据包存储器中的数据。
图7示出了根据本发明的又一个实施例的利用半导体芯片100中的多核处理器资源阵列108管理I/O接口102的方法的流程图。在步骤702处,来自多核处理器资源108的处理器资源对多核处理器资源阵列108中的其他处理器资源进行初始化。这包括将多核处理器资源阵列108中的每一个处理器资源编程以执行某一任务集。根据本发明的另一个实施例,连接至半导体芯片100的片外处理器218对多核处理器资源阵列108进行初始化。基于多级引导序列执行初始化处理。初始化处理通过插入(asserting)半导体芯片100的复位引脚来启动。芯片上状态机管理锁相环(PPL)初始化并提供内部逻辑复位。在多级引导序列的第0级中,嵌入每个处理器资源中的指令流醒来(wake up),并且等待来自其静态网络端口的命令。短接引脚(strapping pins)指示半导体芯片100中的端口地址,数据从半导体芯片100中的端口地址被传送到半导体芯片100。该数据被传送至I/O垫片106a-d中的一个I/O垫片。随后,I/O垫片106a-d中的一个I/O垫片将由数据构成的数据帧通过静态网络发送至处理器资源108中的一个处理器资源。包括第0级引导代码的该处理器资源由I/O垫片106a-d中的一个I/O垫片编程,以解释数据帧中的信息。该信息包括存储数据的地址。随后,具有第0级引导代码的处理器资源以串行方式对处理器资源108的其余部分进行编程。I/O垫片106a-d信息被提供给控制处理器,其通过在I/O垫片106a-d中对存储寄存器进行写入来初始化每个I/O接口102的配置。存储寄存器的写入通过将关于每个I/O接口102的数字信息传送至存储寄存器来执行。I/O接口102a对数据进行分组以形成数据帧。数据帧包括报头和数据。在步骤704处,I/O垫片106d从I/O接口102a接收数据帧。在步骤706处,I/O垫片106d识别对应于所接收到的数据帧的I/O协议。随后,使用所识别的I/O协议,I/O垫片106d识别存在于数据帧中的报头和数据。对应于数据帧中的报头的命令由能够执行所需求的任务集的处理器资源108a检测。这样的处理器资源是基于处理器资源的容量和可用性选自多核处理器资源阵列108的。这些处理器资源还被搜索其可用性,以对对应于命令的数据执行所需求的任务集。在步骤708处,如果任务集不需求涉及多核处理器资源阵列108,则I/O垫片106d对存在于数据帧中的数据执行任务集。
图8示出了根据本发明的又一个实施例利用半导体芯片100中的多核处理器资源阵列108管理I/O接口102的方法的流程图。I/O接口102a基于I/O协议对数据进行分组以形成数据帧。数据帧包括报头和数据。在步骤802处,I/O垫片106d从I/O接口102a接收数据帧。在步骤804处,I/O垫片106d从处理器资源108a接收命令。该命令包括将存在于数据帧中的数据执行的任务集。在步骤806处,DMA引擎402对存在于数据帧中的数据执行任务集,该DMA引擎被处理器资源108a编程以执行对应于命令的任务集。
本发明的各个实施例提供了动态接口、I/O接口间的I/O垫片、和多核处理器资源阵列。I/O垫片是由软件控制的有效利用芯片面积的硬件。其通过使用不同的应用模型来处理I/O接口,这些不同的应用模型包括诸如通过MDN线路将数据直接发送至存储器垫片、以及通过IODN线路或从一个I/O接口到另一个I/O接口将数据直接发送至多核处理器资源阵列108中的一个处理器资源的步骤。
进一步地,基于多核处理器资源阵列的容量和可用性,I/O垫片被动态地分配给处理器资源中的一个或多个处理器资源以及特定的I/O接口。这消除了所分配的处理器资源与I/O接口的预定绑定,并且向I/O垫片提供了灵活性。
进一步地,根据对数据执行的任务集,I/O垫片动态地确定I/O接口所需要的I/O处理器资源的数量。进一步地,I/O垫片的软件部分将处理器资源和I/O接口以任何需要的组合串在一起。
如本发明或者其部分中的任意一个中所描述的系统可以以计算机系统的形式实现。计算机系统的典型实例包括通用计算机、编程微处理器、微控制器、外围集成电路元件、以及其他装置或能够实现构成本发明的方法的步骤的装置的配置。
计算机系统通常包括计算机、输入装置、显示单元和互联网。计算机通常包括连接至通信总线的微处理器。计算机还包括存储器,其可以包括随机存取存储器(RAM)和只读存储器(ROM)。进一步地,计算机系统包括存储装置,其可以是硬盘驱动或诸如软盘驱动器、光盘驱动器等的可移动存储驱动器。存储装置还可以是用于在计算机系统上装载计算机程序或其他指令的其他类似装置。
计算机系统执行存储在一个或多个存储元件中的指令集以处理输入数据。存储元件还可以根据需要保存数据或其他信息,并且可以是信息源或存在于处理机中的物理存储元件。
指令集可以包括指示处理机执行特定任务(诸如构成本发明的方法的步骤)的各种指令。指令集可以是软件程序的形式。软件可以是诸如系统软件或应用软件的各种形式。进一步地,软件可以是独立程序的组合、具有更大程序的程序模块、或程序模块的一部分的形式。软件还可以包括以面向对象编程形成的模块化程序设计。通过处理机对输入数据的处理可以响应于用户命令、前一处理的结果、或由另一处理机作出的请求。
尽管已讨论并描述本发明的实施例,但是本发明并不仅限于这些实施例。多个变化和修改可以被认为是在不背离本发明的范围的情况下,如权利要求中所述。

Claims (22)

1.一种利用半导体芯片中的多核处理器资源阵列管理多个I/O接口的方法,其中,所述多个I/O接口使用至少一种I/O协议,所述方法包括以下步骤:
a.从所述多个I/O接口中的一个接口接收数据帧,其中,所述数据帧包括报头和数据;
b.识别对应于所接收到的数据帧的I/O协议,以识别存在于所接收到的数据帧中的所述报头和所述数据,从而通过所述多核处理器资源阵列识别存在于所述报头中的命令,其中,所述命令包括要对所述数据执行的任务集;以及
c.对所述数据执行所识别的命令。
2.根据权利要求1所述的方法,其中,所述数据帧是自定义数据包。
3.根据权利要求1所述的方法,其中,从所述多个I/O接口中的一个接口接收所述数据帧的步骤包括:控制接收所述数据帧的传送率的步骤。
4.根据权利要求1所述的方法,其中,识别存在于所述报头中的所述命令的步骤包括以下步骤:
a.对所述报头进行分组以形成报头帧,其中,所述报头帧包括关于所述多核处理器资源中的一个处理器资源的地址的信息;
b.发送所述报头帧至所述多核处理器资源中的所述一个处理器资源,其中,所述多核处理器资源是被编程以识别对应于报头帧的命令的处理器;以及
c.识别来自对应于所述报头帧的命令集的所述命令。
5.根据权利要求4所述的方法,其中,所述报头包括QOS指示符、关于所述报头和所述数据的数据结构信息、以及所述报头和所述数据的位置信息。
6.根据权利要求5所述的方法,其中,识别存在于所述报头中的所述命令的步骤还包括以下步骤:
a.使用所述报头的所述数据结构信息和所述报头的所述位置信息将所述报头存储在报头存储器中;以及
b.使用所述数据的所述数据结构信息和所述数据的所述位置信息将所述数据存储在数据包存储器中。
7.根据权利要求5所述的方法,其中,所述报头的数据结构是后进先出(LIFO)、先进先出(FIFO)、和树结构中的一个。
8.根据权利要求5所述的方法,其中,所述数据的数据结构是后进先出(LIFO)、先进先出(FIFO)、和树结构中的一个。
9.根据权利要求4所述的方法,其中,对所述报头进行分组以形成所述报头帧的步骤包括以下步骤:接收来自所述多核处理器资源中的所述一个处理器资源的指示命令,其中,所述指示命令包括关于对所述报头进行分组以形成所述报头帧的信息。
10.根据权利要求1所述的方法,其中,对所述数据执行所识别的命令的步骤包括以下步骤:
a.编程DMA引擎以执行存在于所述命令中的所述任务集,其中,所述DMA引擎是存在于所述半导体芯片中的可重编程序的计算装置;
b.如果所述任务集对应于将所述数据包存储器中的所述数据传送至片外存储器,则将所述数据包存储器中的所述数据导向所述片外存储器,其中,所述片外存储器是连接在所述半导体芯片外部的存储器芯片;以及
c.如果所述任务集没有对应于将所述数据包存储器中的所述数据传送至所述片外存储器,则将所述数据导向所述半导体芯片上的所述多核处理器资源中的所述一个处理器资源。
11.根据权利要求10所述的方法,其中,将所述数据包存储器中的所述数据导向所述片外存储器的步骤包括以下步骤:基于存在于所述命令中的所述任务集来操作所述数据;使用前置处理和后置处理中的一种处理来执行所述操作。
12.根据权利要求10所述的方法,其中,将所述报头存储器中的所述数据导向所述半导体芯片上的所述多核处理器资源中的所述一个处理器资源的步骤包括以下步骤:基于存在于所述命令中的所述任务集来操作所述数据;使用前置处理和后置处理中的一种处理来执行所述操作。
13.一种利用半导体芯片中的多核处理器资源阵列管理多个I/O接口的方法,其中,所述多个I/O接口使用至少一种I/O协议,所述方法包括以下步骤:
a.使用所述多核处理器资源中的一个处理器资源初始化所述多核处理器资源阵列,所述多核处理器资源阵列是可编程的以识别存在于数据帧中的命令;
b.接收来自所述多个I/O接口的一个I/O接口的所述数据帧,其中,所述数据帧包括报头和数据;
c.识别对应于所接收到的数据帧的I/O协议以识别存在于所接收到的数据帧中的所述报头和所述数据,从而通过所述多核处理器资源阵列识别存在于所述报头中的所述命令,其中,所述命令包括要对所述数据执行的任务集;以及
d.对所述数据执行所识别的命令。
14.根据权利要求13所述的方法,其中,基于多级引导序列执行所述多核处理器资源阵列的初始化。
15.一种利用半导体芯片中的多核处理器资源阵列管理多个I/O接口的方法,其中,所述多个I/O接口使用至少一种I/O协议,所述方法包括以下步骤:
a.接收来自所述多个I/O接口中的一个I/O接口的数据帧,其中,所述数据帧包括报头和数据;
b.识别对应于所接收到的数据帧的I/O协议,以识别存在于所接收到的数据帧中的所述报头和所述数据,从而通过所述多核处理器资源阵列的一个处理器资源识别存在于所述报头中的命令;
c.接收来自所述多核处理器资源阵列的所述一个处理器资源的所述命令,其中,所述命令包括要对所述数据执行的任务集;以及
d.对所述数据执行所接收到的命令。
16.一种利用半导体芯片中的多核处理器资源阵列管理多个I/O接口的系统,其中,所述多个I/O接口使用至少一种I/O协议,所述系统包括:
a.媒体访问控制模块,所述媒体访问控制模块接收来自所述多个I/O接口中的一个I/O接口的数据帧,其中,所述数据帧包括报头和数据;
b.传送率控制模块,所述传送率控制模块控制接收所述数据帧的传送率;
c.通用命令识别模块,所述通用命令识别模块识别存在于所接收到的数据帧中的所述报头和所述数据,从而通过所述多核处理器资源阵列识别存在于所述报头中的命令,其中,所述命令包括要对所述数据执行的任务集;以及
d.执行模块,所述执行模块对所述数据执行所识别的命令。
17.根据权利要求16所述的系统,其中,所述媒体访问控制模块包括识别模块,所述识别模块识别存在于所述数据帧中的所述报头和所述数据。
18.根据权利要求16所述的系统,其中,所述媒体访问控制模块处于传递所有数据包模式。
19.根据权利要求16所述的系统,其中,所述通用命令识别模块包括:
a.报头处理模块,所述报头处理模块对所述报头进行分组以形成报头帧,其中,所述报头帧包括关于多核处理器资源的地址的信息;
b.报头存储器,所述报头存储器存储所述报头;
c.数据包存储器,所述数据包存储器存储所述数据;以及
d.命令日志,所述命令日志包括命令集,其中,所述命令包括任务集。
20.根据权利要求19所述的系统,其中,所述报头处理模块包括发送模块,所述发送模块将所述报头帧发送至所述多核处理器资源中的所述一个处理器资源,其中,所述多核处理器资源是被编程以识别对应于报头帧的所述命令的处理器。
21.根据权利要求16所述的系统,其中,所述执行模块包括:
a.DMA引擎,所述DMA引擎执行所述命令中的所述任务集,其中,所述DMA引擎是可重编程序的计算装置;以及
b.数据处理机,所述数据处理机基于所述命令中的所述任务集将所述数据包存储器中的所述数据导向预定位置。
22.根据权利要求21所述的系统,其中,所述数据处理机包括数据操作器,所述数据操作器基于存在于所述命令中的所述任务集对所述数据进行操作。
CN2007800525949A 2007-05-18 2007-08-02 利用半导体芯片中的多核处理器资源阵列管理多个i/o接口的方法和系统 Expired - Fee Related CN101669100B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/804,551 2007-05-18
US11/804,551 US7552241B2 (en) 2007-05-18 2007-05-18 Method and system for managing a plurality of I/O interfaces with an array of multicore processor resources in a semiconductor chip
PCT/US2007/017220 WO2008143624A1 (en) 2007-05-18 2007-08-02 Method and system for managing a plurality of i/o interfaces with an array of multicore processor resources in a semiconductor chip

Publications (2)

Publication Number Publication Date
CN101669100A CN101669100A (zh) 2010-03-10
CN101669100B true CN101669100B (zh) 2013-08-14

Family

ID=40028679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800525949A Expired - Fee Related CN101669100B (zh) 2007-05-18 2007-08-02 利用半导体芯片中的多核处理器资源阵列管理多个i/o接口的方法和系统

Country Status (4)

Country Link
US (1) US7552241B2 (zh)
EP (1) EP2153333B1 (zh)
CN (1) CN101669100B (zh)
WO (1) WO2008143624A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US7490325B2 (en) 2004-03-13 2009-02-10 Cluster Resources, Inc. System and method for providing intelligent pre-staging of data in a compute environment
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US8271980B2 (en) 2004-11-08 2012-09-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9075657B2 (en) 2005-04-07 2015-07-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US7861027B2 (en) 2008-05-30 2010-12-28 Intel Corporation Providing a peripheral component interconnect (PCI)-compatible transaction level protocol for a system on a chip (SoC)
US8195888B2 (en) * 2009-03-20 2012-06-05 Empire Technology Development Llc Multiprocessor cache prefetch with off-chip bandwidth allocation
US8615633B2 (en) * 2009-04-23 2013-12-24 Empire Technology Development Llc Multi-core processor cache coherence for reduced off-chip traffic
US8392661B1 (en) * 2009-09-21 2013-03-05 Tilera Corporation Managing cache coherence
US8599863B2 (en) 2009-10-30 2013-12-03 Calxeda, Inc. System and method for using a multi-protocol fabric module across a distributed server interconnect fabric
US20130107444A1 (en) 2011-10-28 2013-05-02 Calxeda, Inc. System and method for flexible storage and networking provisioning in large scalable processor installations
US9465771B2 (en) 2009-09-24 2016-10-11 Iii Holdings 2, Llc Server on a chip and node cards comprising one or more of same
US9077654B2 (en) 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
US9054990B2 (en) 2009-10-30 2015-06-09 Iii Holdings 2, Llc System and method for data center security enhancements leveraging server SOCs or server fabrics
US20110103391A1 (en) 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US9876735B2 (en) * 2009-10-30 2018-01-23 Iii Holdings 2, Llc Performance and power optimized computer system architectures and methods leveraging power optimized tree fabric interconnect
US9680770B2 (en) 2009-10-30 2017-06-13 Iii Holdings 2, Llc System and method for using a multi-protocol fabric module across a distributed server interconnect fabric
US9311269B2 (en) 2009-10-30 2016-04-12 Iii Holdings 2, Llc Network proxy for high-performance, low-power data center interconnect fabric
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9648102B1 (en) 2012-12-27 2017-05-09 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US8244986B2 (en) * 2009-12-30 2012-08-14 Empire Technology Development, Llc Data storage and access in multi-core processor architectures
WO2012078157A1 (en) 2010-12-09 2012-06-14 Intel Corporation Method and apparatus for managing application state in a network interface controller in a high performance computing system
US9092594B2 (en) 2011-10-31 2015-07-28 Iii Holdings 2, Llc Node card management in a modular and large scalable server system
US9563586B2 (en) 2013-04-11 2017-02-07 Apple Inc. Shims for processor interface
US10078613B1 (en) * 2014-03-05 2018-09-18 Mellanox Technologies, Ltd. Computing in parallel processing environments
US10146456B1 (en) * 2016-12-30 2018-12-04 EMC IP Holding Company LLC Data storage system with multi-level, scalable metadata structure
CN110417812B (zh) * 2019-08-23 2021-11-23 极芯通讯技术(南京)有限公司 5g协议报文处理器架构及5g协议报文处理方法
US11386020B1 (en) * 2020-03-03 2022-07-12 Xilinx, Inc. Programmable device having a data processing engine (DPE) array

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889046A (zh) * 2006-08-03 2007-01-03 迈普(四川)通信技术有限公司 多核并行先进先出队列处理系统及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4156798A (en) * 1977-08-29 1979-05-29 Doelz Melvin L Small packet communication network
US6101599A (en) * 1998-06-29 2000-08-08 Cisco Technology, Inc. System for context switching between processing elements in a pipeline of processing elements
US7248585B2 (en) * 2001-10-22 2007-07-24 Sun Microsystems, Inc. Method and apparatus for a packet classifier
JP4394624B2 (ja) * 2005-09-21 2010-01-06 株式会社日立製作所 計算機システム及びi/oブリッジ
US7890669B2 (en) * 2005-11-25 2011-02-15 Hitachi, Ltd. Computer system for sharing I/O device
US8010689B2 (en) * 2006-05-22 2011-08-30 Mcafee, Inc. Locational tagging in a capture system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889046A (zh) * 2006-08-03 2007-01-03 迈普(四川)通信技术有限公司 多核并行先进先出队列处理系统及方法

Also Published As

Publication number Publication date
EP2153333A1 (en) 2010-02-17
US20080288683A1 (en) 2008-11-20
US7552241B2 (en) 2009-06-23
WO2008143624A1 (en) 2008-11-27
CN101669100A (zh) 2010-03-10
EP2153333B1 (en) 2013-10-02
EP2153333A4 (en) 2010-11-03

Similar Documents

Publication Publication Date Title
CN101669100B (zh) 利用半导体芯片中的多核处理器资源阵列管理多个i/o接口的方法和系统
EP1841162B1 (en) Method and system for an os virtualization-aware network interface card
CN100524287C (zh) 微处理器子系统
CN102326362B (zh) 灵活地将终端逻辑集成到各种平台的装置、方法和系统
CN100586097C (zh) 存储和转发交换机设备、系统及方法
US6954806B2 (en) Data transfer apparatus and method
WO2023284699A1 (zh) 基于Linux系统的协议栈数据传输方法、计算机设备和存储介质
US9703595B2 (en) Multi-core system with central transaction control
CN101901205B (zh) 在PCIExpress上启用基于ID的流的方法和装置
JP5336764B2 (ja) 仮想レーン資源を割り当てるための方法及びコンピュータ・システム
US8417848B2 (en) Method and apparatus for implementing multiple service processing functions
CN101409673B (zh) 一种网络适配器数据传输方法、网络适配器及系统
TW200522583A (en) IP-based method and apparatus for booting computers remotely in wide-area-network environment
CN101282224A (zh) 通信适配器及通信适配器的数据传输方法
US20060034310A1 (en) Techniques to utilize queues for network interface devices
WO2022032984A1 (zh) 一种mqtt协议仿真方法及仿真设备
CN108768667B (zh) 一种用于多核处理器片内核间网络通信的方法
CN112291259B (zh) 一种协议转换方法、网关、设备及可读存储介质
JP2021157850A (ja) デバイスプロキシ装置及びそれを含む計算機システム
CN111666238A (zh) 数据传输装置及方法
CN111400230A (zh) 数据传输方法、系统、控制设备及存储介质
CN111371799B (zh) Mctp控制器收发数据的控制方法、装置及设备
US7613133B2 (en) Method, system and computer program product for processing packets at forwarder interfaces
CN112131169B (zh) 高速数据通信系统及方法
CN116303149B (zh) 基于bmc芯片实现控制器接口拓展的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: HU NAN QIU ZEYOU PATENT STRATEGIC PLANNING CO., LT

Free format text: FORMER OWNER: QIU ZEYOU

Effective date: 20101101

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 410011 28/F, SHUNTIANCHENG, NO.59, SECTION 2 OF FURONG MIDDLE ROAD, CHANGSHA CITY, HU NAN PROVINCE TO: 410205 JUXING INDUSTRY BASE, NO.8, LUJING ROAD, CHANGSHA HIGH-TECH. DEVELOPMENT ZONE, YUELU DISTRICT, CHANGSHA CITY, HU NAN PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20101109

Address after: 201203 Chinese Shanghai Zhangjiang hi tech Park 1690 Cailun Road No. 2 building 414 room

Applicant after: Tilera Corp.

Address before: Massachusetts, USA

Applicant before: Tilera Corp.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130814

Termination date: 20150802

EXPY Termination of patent right or utility model