CN1816012B - 用于多线程、多重处理单片系统网络处理器单元的可升级的、高性能全局互联方案 - Google Patents

用于多线程、多重处理单片系统网络处理器单元的可升级的、高性能全局互联方案 Download PDF

Info

Publication number
CN1816012B
CN1816012B CN2005101216343A CN200510121634A CN1816012B CN 1816012 B CN1816012 B CN 1816012B CN 2005101216343 A CN2005101216343 A CN 2005101216343A CN 200510121634 A CN200510121634 A CN 200510121634A CN 1816012 B CN1816012 B CN 1816012B
Authority
CN
China
Prior art keywords
target
bus
data
cluster
group
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
CN2005101216343A
Other languages
English (en)
Other versions
CN1816012A (zh
Inventor
S·拉克什马纳穆尔蒂
M·罗什布卢特
M·阿迪莱塔
J·-Y·闵
B·博斯
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1816012A publication Critical patent/CN1816012A/zh
Application granted granted Critical
Publication of CN1816012B publication Critical patent/CN1816012B/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

一种用于多线程、多处理单片系统网络处理器单元的可升级的、高性能互连方案。实施该技术的设备包括配置在多个集群中的多个主控端、多个目标和一个底板互连,可以控制该底板互连来选择性地将给定的主控端连接到给定的目标。在一个实施例中,该底板互连包括连接在多个集群和多个目标之间的、形成交叉开关互连的多组总线线路,包括对应于命令总线、用于目标写入的拉数据总线和用于目标读取的推数据总线的各组总线线路。用于每个命令总线、拉数据总线和推数据总线的多路复用器电路被用来选择性地将给定的集群连接到给定的目标,以便能够在给定的集群和给定的目标之间传递命令和数据。

Description

用于多线程、多重处理单片系统网络处理器单元的可升级的、高性能全局互联方案
技术领域
本发明的领域通常涉及一种网络设备,并且更特别地但不是唯一地涉及一种用于例如网络处理器单元的多线程、多重处理单片系统装置的可升级的、高性能互联方案。
背景技术
例如交换机和路由器的网络设备被设计成以包的形式在高线速率下转发网络通信量。处理网络通信量的一个最重要的考虑是包吞吐量。为了实现这个目的,已经开发了专用的处理器(即网络处理器)来有效地处理每秒的大量包。为了处理包,网络处理器(和/或使用网络处理器的网络设备)需要从表示包目的地、服务分类等的包报头中提取数据,在存储器中存储有效载荷数据,执行包分类和排队操作,确定用于包的下一跳跃(next hop),选择并划拨通过其来转发包的网络端口等等。这些操作通常称为“包处理”操作。
现代网络处理器利用多个多线程处理器元件(在由California,Santa Clara的英特尔公司制造的网络处理器中称为微引擎)来执行包处理,其中每个线程执行流水线体系结构中的特定工作或一组工作。在包处理期间,执行大量存取来在耦合到网络处理器和/或由网络处理器提供的多种共享资源之间移动数据。例如,网络处理器通常在静态随机存取存储器(SRAM)存储设备中存储包元数据等,同时在基于动态随机存取存储器(DRAM)的存储设备中存储包(或包有效载荷数据)。另外,网络处理器耦合到密码处理器、散列单元、通用处理器、以及例如PCI(外围部件互联)和PCI快速(PCI Express)总线的扩充总线。
通常,网络处理器的多种包处理元件(例如微引擎)以及比如通用处理器的其它可选择的处理元件将共享访问多种系统资源。这些所共享的资源典型地包括比如存储器存储设备(例如SRAM、DRAM)、散列单元、密码单元等等的数据存储和处理单元,以及输入/输出(I/O)接口。所共享的资源及其用户通过称为“底板(chassis)”的多组总线互连。该底板是网络处理器芯片上的高性能互连,其提供芯片上的大量处理元件以及芯片上大量共享资源或通过适当内置芯片接口可访问的大量共享资源之间的芯片上数据传输基础结构。
依据典型的网络处理器结构,使用多种总线方案来使得共享资源能够被共享地访问。由于在任何时间点上仅单独一组信号存在于给定的总线上,所以总线需要多路复用技术等来允许多个资源用户访问耦合到总线的多个资源目标。用于缓解访问争用的一种技术为对于每个目标的数据读取和数据写入提供单独的总线。正如这里所使用的那样,这些总线被称为推总线(用于读取)和拉总线(用于写入)。(需要注意的是,术语“推”和“拉”是从共享资源目标的观点而言的。)然而,对于每个目标的读取和写入实施单独的总线会增加总线数目,并且从而增加用于网络处理器芯片的已经密集的信号布线需要。依据常规的方法,考虑到对16个共享资源的共享访问需要16组独立的总线,并且每一组总线包括总数为48条总线的读取总线、写入总线及命令总线。为了支持对于这种大量总线的布线,必须增加管芯尺寸;这直接与减小管芯尺寸和处理器成本的目标相抵触。
附图说明
通过参考下面连同附图进行的详细描述,本发明的前述方面和许多伴随的优点将变得更容易理解,其中在所有附图中,除非另外指明,相同的附图标记都指代相同的部件:
图1是根据本发明一个实施例的网络处理器体系结构的示意图,其中各包括多个主控端(master)的多个集群(cluster)通过一个包括具有交叉开关(crossbar)结构的多个总线的底板互连连接到多个共享目标资源(目标);
图2a是根据本发明的一个实施例说明北命令总线细节的示意图;
图2b是根据本发明的一个实施例说明南命令总线细节的示意图;
图3a是根据本发明的一个实施例说明北拉数据总线细节的示意图;
图3b是根据本发明的一个实施例说明南拉数据总线细节的示意图;
图4a是根据本发明的一个实施例说明北拉请求方标识符(ID)总线细节的示意图;
图4b是根据本发明的一个实施例说明南拉ID总线细节的示意图;
图5a是根据本发明的一个实施例说明北推数据总线细节的示意图;
图5b是根据本发明的一个实施例说明南推数据总线细节的示意图;
图6a是根据本发明的一个实施例说明北推ID总线细节的示意图;
图6b是根据本发明的一个实施例说明南推ID总线细节的示意图;
图7a是示出图1的网络处理器体系结构的进一步细节的示意图,包括具有两级仲裁的流水线推数据总线的细节;
图7b是示出图7a的网络处理器体系结构的进一步细节的示意图,包括具有两级仲裁的流水线请求方标识符(ID)总线的细节;以及
图8是根据本发明的一个实施例的、包括实施图1体系结构的网络处理器的网络设备的示意图。
具体实施方式
这里描述了用于多线程、多重处理单片系统网络处理器单元的可升级的、高性能互连方案的实施例。在下面的描述中,大量特定细节被阐述来提供对本发明实施例的详尽理解。然而,本领域技术人员将意识到,没有其中一个或多个特定细节也能够实施本发明,或者用其它方法、元件、材料等等也能够实施本发明。在其它事例中,众所周知的结构、材料或操作并未示出或详细描述,以避免模糊本发明的各方面。
遍及本说明书对“一个实施例”或“实施例”的引用意味着连同该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。从而,遍及本说明书的短语“在一个实施例中”或“在实施例中”的出现并不一定都是指相同实施例。此外,所述特定的特征、结构或特性可以在一个或多个实施例中以任意适当方式组合。
根据这里所描述实施例的一个方面,基于交叉开关体系结构的原理的可升级底板互连基础结构被实施,以便能够访问大量共享资源而不需要针对每个共享资源的单独总线组。所述底板支持两类执行方(agent)之间的事务:主控端和目标。在一个实施例中,主控端被组织成共享公共总线基础结构的组(“集群”)。该底板也包括一组包括从主控端往目标移动命令的命令总线的高性能总线,以及相应的各组推、拉数据总线和请求方标识符(ID)总线。
图1示出实施前述底板互连的一个实施例的网络处理器体系结构100。在该体系结构的中心为四个处理元件集群102A、102B、102C和102D。(为了方便起见,集群在这里的图中也被标记为[A]、[B]、[C]和[D],以便更容易地识别集群和具有对应附图标记的各种总线元件之间的关系,所述附图标记包括具有A、B、C或D的其中一个值的后缀。)在所说明的实施例中,每个处理元件集群102A-D包括六个包处理微引擎(ME)104。在其它实施例中,每个处理元件集群可以包括不同数量的微引擎,例如(但不限于)四个或八个微引擎。通常,每个微引擎包括一个RISC(精简指令集计算机)处理核心,而网络处理器体系结构100包括在公共管芯上的多个处理核心。
图1的实施例示出通常定位在网络处理器体系结构100外围周围的多种示例性共享资源目标。依次,共享资源在第一级别上被分组到朝向图1的顶端和底端定位的总线组。所示出的朝向图1顶端的目标(其称为“北”目标)包括:通信量管理器(TM)108,通用处理器(GP-Proc)110,狭窄随机存取存储器(NRAM)控制通道112、114、116和118,PCI(外围部件互连)接口120以及PCI快速接口122。通常,NRAM控制通道所表示的控制通道提供对包括狭窄RAM装置的多种类型存储器存储设备的存取控制,所述狭窄RAM装置例如是(但是并不仅限于)SRAM、存储器总线DRAM(RDRAM)、四倍数据速率(QDR)RAM等等。所示出的朝向图1底端的目标(其称为“南”目标)包括第一密码(Crypto0)单元124、第一媒体交换结构(MSF0)接口126、DRAM控制通道128和130、散列单元132、DRAM控制通道134、第二媒体交换结构(MSF1)接口136和第二密码(Crypto1)单元138。
通常来说,体系结构100代表逻辑体系结构,其中各种元件的物理位置不同于这里图中所示的位置。然而,在一个实施例中,物理装置上的目标和主控端的通常位置与图1和8中所示的位置相似,其中目标通常被定位在装置的外围周围,而主控端被朝向装置中心配置。
体系结构100包括连接集群102A-D到各种共享资源目标的两组总线。在一个实施例中,每组总线包括命令总线和两组数据总线,即用于读取数据的推总线,以及用于写入数据的拉总线。从而,每个集群具有两条独立的命令总线和两组数据总线。此外,在一个实施例中,各组总线进一步包括用于辅助到/从主控端和目标的数据传输的相关标记总线(ID总线)。
定位在体系结构100的顶端的北目标所使用的总线包括北命令总线140、北拉数据总线142、北拉ID总线144、北推数据总线146和北推ID总线148。定位在体系结构100的底端的南目标所使用的总线包括包括南命令总线150、南拉数据总线152、南拉ID总线154、南推数据总线156和南推ID总线158。
图2A根据一个实施例示出北命令总线140的细节。北命令总线使用交叉开关结构,其中每个目标通过对应的多路复用器(也通常称为“mux”)连接到多组总线线路上。这支持在每个目标和每个集群之间的选择性连接,基于通过控制多个多路复用器的配置所提供的布线可以对此进行配置。
北命令总线140电路包括一组水平总线线路200,该水平总线线路组200包括总线线路200A、200B、200C和200D。可以理解,每条总线线路表示对应于各自总线的一组信号线,而不是单个信号。每条总线的宽度取决于网络处理器实现方式的特别的需要。各组交叉开关总线(描述为总线线路)通过对应的命令多路复用器耦合在水平总线线路组200和对应的目标之间。所述交叉开关总线包括交叉开关总线210、212、214、216、218和220,同时所述多路复用器包括命令(CMD)多路复用器222、224、226、228、230和232。此外,命令多路复用器234和236连接在水平总线线路组200的相对端上。
在一个实施例中,总线线路组中的总线(描述为总线线路)的数量等于该体系结构中的集群数量。例如,在这里说明的图中,网络处理器体系结构包括四个集群。从而,对于每个总线线路组描述的总线线路的数量为四个,表明具有四组总线。在其它实施例(未示出)中,网络处理器体系结构可以包括其它数量的集群,例如六个。在这种情况中,每个总线线路组将包括描述六组总线的六条总线线路。通常来说,交叉开关总线中的总线线路数量(因此是总线数量)等于其耦合的水平总线中的总线线路的数量。
北命令总线140的交叉开关总线体系结构支持两级仲裁方案。所述仲裁方案用于选择性地将给定的主控端连接到所指定的目标,以使得能够从主控端发送命令到该目标。第一级用于从给定的集群中选择主控端,而第二级用于从全部北目标中选择指定的目标。对于每个集群102A、102B、102C和102D的第一仲裁级(这里也称为集群内仲裁)的结果被描述为对应的OR门240A、240B、240C和240D。OR门表示被用来表明如果给定集群的任何主控端启动一个目标事务请求,则启动针对该整个集群的请求进行仲裁的过程。每个集群的北目标命令输出级通过对应的交叉开关总线连接到总线线路组200中的相应的总线线路。这些交叉开关总线包括交叉开关总线242A、242B、242C和242D。
在所例示的实施例中,利用流水线方案在给定集群中的主控端之间转发事务请求。该流水线设计利用多线程方法,所述多线程方法被用来执行由现代网络处理器使用的包处理。因此,目标事务请求被从一个主控端传递到流水线中的下一个主控端,直到该目标事务请求达到集群的输出级。一旦赢得输出级处的集群内仲裁和集群仲裁(也就是从多个集群发出的并发请求之间的仲裁),就在对应于该集群的水平总线线路上设置命令。
图2a中说明的另一个概念为一个目标既作为目标又作为主控端的能力。例如,每个通用处理器110、通信量管理器108、PCI接口120和PCI快速接口122可以既作为目标又作为主控端。附加的流水线级被使用来通过集群102A路由来自通用处理器110或通信量管理器108的其中一个的目标事务请求,以及通过集群102B路由来自PCI接口120或PCI快速接口122的其中一个的目标事务请求,如图2a所说明的那样。
如图2b中所说明的那样,根据一个实施例,用于南命令总线150的总线体系结构类似于图2a所示的用于北命令总线140的体系结构。该总线体系结构包括水平总线线路组250,该水平总线线路组250包括总线线路250A、250B、250C和250D。如同北命令总线体系结构一样,各个交叉开关总线线路组通过对应的命令多路复用器而被设置在水平总线线路组250和多个南目标之间。其中包括交叉开关总线线路组260、262、264、266、268和270,以及命令多路复用器272、274、276、278、280和282。此外,命令多路复用器284和286连接在总线线路组250的各端,以便将第一和第二密码单元124和138耦合到该总线线路组。
如上所述,北和南命令总线体系结构使得任一主控端能访问任何目标,不管该目标是北目标还是南目标。此外,这扩展到也可以作为目标的主控端,即使该主控端/目标不是位于与将要通过相应命令被访问的目标相同的北或南区域上,其中该相应命令通过组合的北和南命令总线体系结构而被路由到该目标。例如,作为北目标和主控端的部件可以访问南目标。
在一个实施例中,为北和南目标组中的每一个执行针对由作为给定集群的成员的主控端(或由与该集群相关的外部主控端/目标部件)发出的命令的对应的集群内仲裁操作。由图2b中的OR门241A、241B、241C和241D描述对于南目标命令的集群内仲裁的结果。同时,每个集群的南目标命令输出级通过对应的交叉开关总线连接到总线线路组250中的相应总线线路。其中包括交叉开关总线243A、243B、243C和243D。从而,在一个实施例中,可以以并发方式将对应的命令从北和南目标组中发送到指定的目标。
根据一个实施例,图3a说明北拉数据总线142的细节。如同命令总线一样,北拉数据总线采用包括水平总线线路组300的交叉开关结构,该水平总线线路组300包括总线线路300A、300B、300C和300D。与之前一样,每个集群102A、102B、102C和102D可以针对北和南拉数据总线当中的每一个产生一个集群内仲裁获胜者。从而,北拉数据总线142包括分别连接到交叉开关总线线路342A、342B、342C和342D的OR门340A、340B、340C和340D。
在这种高性能互连方案中的一个关键难题是在总线上获得高利用率和有限的平均等待时间,从而使得在互连上交付的带宽非常接近地追踪为该互连规定的峰值带宽。如上所述,由于管芯尺寸的限制,目标的数量典型地超出可利用的芯片内数据布线总线的数量。根据一个实施例,通过将多个目标分组为共享一个公共数据总线轨道的各子组来解决该问题。
因此,在图3a说明的实施例中,多个北目标进一步地被分组为目标子组302(子组[0])、304(子组[1])、306(子组[2])和308(子组[3])。(剩余图中的每个子组也被指定一个从[0]到[N-1]的逻辑值,其中N等于集群的数目)。在一个实施例,每个子组包括具有相似访问特性的目标。依次,每个子组304和306通过对应的子组数据多路复用器和交叉开关总线线路组连接到水平总线线路组200。这些部件包括子组数据多路复用器304和306,以及交叉开关总线线路组320和322。同时,子组302和308通过子组数据多路复用器310和316连接到水平总线线路组300。
如图3b中所说明的那样,南拉数据总线152的一个实施例采用与上述北拉数据总线类似的目标再分组方式。在所说明的实施例中,南目标子组包括子组352、354、356和358。用于南拉数据总线152的拉数据总线结构也与北拉数据总线类似,其采用包括总线线路350A、350B、350C和350D的水平总线线路组350。这些总线线路通过对应的交叉开关总线线路组370、372、374和376连接到子组数据多路复用器360、362、364和366。
在一个实施例中,为每个北和南目标组执行与作为给定集群的成员的主控端的拉数据事务相对应的(或与该集群相关的外部主控端/目标组件进行的)集群内仲裁操作。用于南目标拉数据总线的集群内仲裁的结果由图3b中的OR门341A、341B、341C和341D所描述。同时,每个集群的南拉数据总线输出级通过对应的交叉开关总线连接到总线线路组350中的相应总线线路。其中包括交叉开关总线343A、343B、343C和343D。从而,在一个实施例中,可以以并发方式执行从主控端将数据传输到北和南目标组当中的所指定的目标的对应的拉数据事务。
在另一个实施例中,北拉数据总线具有与北命令总线类似的结构,同时南拉数据总线具有与南命令总线类似的结构(都未示出)。在这些实施例中,北和南目标组不被进一步分组为各子组。
图4a和4b分别示出北和南拉ID总线144和154的示例性实施例。在所说明的实施例中,各个目标以与上述北和南拉数据总线类似的方式进一步地被分组为各子组。通常来说,用于拉数据和ID总线组的再分组应当匹配,尽管这不是严格需要的。北和南拉ID总线的通常结构同样地与上面给出的类似,其中多个交叉开关总线连接到一组水平总线线路。特别地,图4a所示的北拉ID总线144的实施例采用一个包括总线线路4000、4001、4002和4003的水平总线线路组400,同时图4b所示的南拉ID总线154的实施例采用一个包括总线线路4500、4501、4502和4503的水平总线线路组450。
北和南拉ID总线当中的每一个使用两级仲裁方案,包括子组仲裁级和集群仲裁级。子组仲裁级被用来确定允许该组的哪个成员访问拉ID总线。集群仲裁级被用来确定允许哪个获胜的子组访问集群,其中所述事务的主控端一半属于该集群。
连同第一级仲裁操作,给每个子组提供各自的子组ID多路复用器。其中包括用于北目标子组的子组ID多路复用器4020、4021、4022和4023,和用于南目标子组的子组ID多路复用器4520、4521和4523。连同第二级仲裁操作,提供对应的子组选择ID多路复用器来将获胜的子组连接到相应的集群。其中包括用于北目标子组的子组选择ID多路复用器410A、410B、410C和410D,和用于南目标子组的子组选择ID多路复用器460A、460B、460C和460D。
每个水平总线线路通过对应的交叉开关总线线路组连接到每个子组选择ID多路复用器。其中包括用于水平总线线路组400的交叉开关总线线路组412A、412B、412C和412D(图4a)以及用于水平总线线路组450的交叉开关总线线路组462A、462B、462C和462D(图4b)。
图5a和5b示出北和南推数据总线146和156的示例性实施例。在所说明的实施例中,各个目标以与上述北和南拉数据和ID总线类似的方式进一步地被分组为各子组。北和南推数据总线的通常结构与上面给出的类似,其中多个交叉开关总线连接到一组水平总线线路。特别地,图5a中所示的北推数据总线146的实施例采用一个包括总线线路5000、5001、5002和5003的水平总线线路组500,同时图5b所示的南推数据总线156的实施例采用一个包括总线线路5500、5501、5502和5503的水平总线线路组550。
北和南推数据总线当中的每一个使用两级仲裁方案,包括子组仲裁级和集群仲裁级。子组仲裁级被用来确定允许该组的哪个成员访问推数据总线,而集群仲裁级被用来确定允许哪个获胜的子组访问集群,其中所述事务的主控端一半属于该集群。
连同第一级仲裁操作,给每个子组提供对应的子组数据多路复用器。其中包括用于北目标子组的子组数据多路复用器5020、5021、5022和5023,和用于南目标子组的子组数据多路复用器5520、5521和5523。连同第二级仲裁操作,提供对应的子组选择数据多路复用器来将获胜的子组连接到相应的集群。其中包括用于北目标子组的子组选择数据多路复用器510A、510B、510C和510D,和用于南目标子组的子组选择数据多路复用器560A、560B、560C和560D。
每个水平总线线路通过对应的交叉开关总线线路组连接到每个子组选择数据多路复用器。其中包括用于水平总线线路组500的交叉开关总线线路组512A、512B、512C和512D(图5a)以及用于水平总线线路组550的交叉开关总线线路组562A、562B、562C和562D(图5b)。
图6a和6b分别示出北和南推ID总线148和158的示例性实施例。在所说明的实施例中,各个目标以与上述北和南推数据总线类似的方式进一步地被分组为各子组。通常来说,用于推数据和ID总线组的再分组应当匹配,尽管这不是严格需要的。和之前一样,北和南推ID总线的通常结构使用连接到一组水平总线线路的多个交叉开关总线。特别地,图6a所示的北推ID总线148的实施例采用一个包括总线线路6000、6001、6002和6003的水平总线线路组600,同时图6b所示的南推ID总线158的实施例采用一个包括总线线路6500、6501、6502和6503的水平总线线路组650。
北和南推ID总线中的每一个使用两级仲裁方案,包括子组仲裁级和集群仲裁级。子组仲裁级被用来确定允许该组的哪个成员访问推ID总线。集群仲裁级被用来确定允许哪个获胜的子组访问集群,其中所述事务的主控端一半属于该集群。
连同第一级仲裁操作,给每个子组提供对应的子组ID多路复用器。其中包括用于北目标子组的子组ID多路复用器6020、6021、6022和6023,和用于南目标子组的子组ID多路复用器6520、6521和6523。连同第二级仲裁操作,提供对应的子组选择ID多路复用器来将获胜的子组连接到相应的集群。其中包括用于北目标子组的子组选择ID多路复用器610A、610B、610C和610D,和用于南目标子组的子组选择ID多路复用器660A、660B、660C和660D。
每个水平总线线路通过对应的交叉开关总线线路组连接到每个子组选择ID多路复用器。其中包括用于水平总线线路组600的交叉开关总线线路组612A、612B、612C和612D(图6a)以及用于水平总线线路组650的交叉开关总线线路组662A、662B、662C和662D(图6b)。
在包处理操作期间,由多个主控端对多个目标发出多个事务请求。对于下面的举例,考虑读取事务请求和对已准许请求的后续处理。支持对读取事务请求的仲裁的仲裁操作在这里被称为“推”仲裁,并且所述请求被称为“推数据”(目标读取)事务请求。下面描述的支持推数据事务的操作通常说明类似的“拉数据”(目标写入)事务,除了如上述和这里所示出的那样、拉数据和拉ID总线具有不同结构之外。
在一些实施例的一个方面,总线争用问题是利用两级仲裁方案来解决的,其中包括子组之间的第一级仲裁和处理元件集群之间的第二级仲裁。例如,对于北推数据和ID总线所使用的典型两级仲裁方案的实施例的细节在图7a和7b中示出。类似的仲裁方案可以用于南推数据和ID总线,也可以用于北和南拉数据和ID总线。
图7a的北推数据总线仲裁方案采用对应的第一级(子组)仲裁器700(对于子组302(子组[0])标注为SG0,对于子组304(子组[1])标注为SG1,对于子组306(子组[2])标注为SG2,以及对于子组308(子组[3])标注为SG3),该第一级(子组)仲裁器700用来控制子组选择数据多路复用器5021-4的操作。类似地,对应的第二级(集群)仲裁器702(对于集群102A(集群[A])标注为C0,对于集群102B(集群[B])标注为C1,对于集群102C(集群[C])标注为C2,以及对于集群102D(集群[D])标注为C3)被用来控制子组选择数据多路复用器510A-D的操作。
图7b示出了网络处理器体系结构100的一个实施例的推ID总线基础结构的另外的细节。如同推数据总线一样,对应的第一级(子组)仲裁器700(例如,SG0、SG1、SG2和SG3)被用来控制子组选择ID多路复用器6021-4的操作。类似地,对应的第二级(集群)仲裁器702(例如,C0、C1、C2和C3)被用来控制子组选择ID多路复用器610A-D的操作。
可以在例如(但并不仅限于)交换机、线路卡、路由器等等的多种网络设备中实现网络处理器,该网络处理器实施图1的体系结构100并包括对上面讨论的两级仲裁操作的支持。图8示出包括实施网络处理器体系结构100的网络处理器802的网络设备800的示例性体系结构。(需要注意的是,图8仅示出对应于北推数据总线146和南推数据总线148的总线元件,可以理解,网络处理器802进一步包括用于网络处理器体系结构100的上面讨论的其它总线)。通常来说,图1和8中相同编号的部件执行类似的功能。另外,网络处理器802包括SRAM控制通道812和814、RDRAM控制通道816和818以及耦合到散列单元132的并且是子组356A的成员的私人密钥加密(PKE)部件133。
在图8所说明的实施例中,微引擎104被分组为两个微引擎一组的多个组,所述两个微引擎共享一组公共局部资源106。局部资源可以典型地包括特定于微引擎(或在这种情况下是一对微引擎)的资源,例如局部存储器、指令高速缓冲存储器、寄存器等。在其它实施例中,微引擎可以被配置来在具有多于两个成员的各组中共享局部资源,或者可以被配置成各具有其自身的局部资源组。
如上所述,网络处理器体系结构100的交叉开关底板的结构使得多个主控端(例如微引擎104)能够通过相应的事务请求来访问多个目标。在某些实施例中,由“有效”目标所支持的某些实际数据或操作在网络处理器芯片上被提供,同时在芯片外提供其它的实际数据或操作。例如,虽然NRAM控制通道可以包括目标(出于前面讨论的目的),但是所述有效的目标为实际的NRAM存储设备,该NRAM存储设备通过NRAM控制通道而被存取(因为控制通道自身不存储任何数据)。
在图8所示的示例性结构中,所述芯片上“有效”目标包括通信量管理器108、通用处理器110、密码单元124和138、散列单元132和公共密钥加密单元133。同时,各种芯片外有效目标包括外部SRAM存储设备812A和814A、外部RDRAM存储设备816A和818A、一个或多个PCI快速装置(例如扩展卡)804以及外部DRAM存储设备828、830和834。每个芯片外存储器存储设备通过各自的接口连接到其各自的控制通道。其中包括SRAM接口812B和814B、RDRAM接口816B和818B、DRAM接口828B、830B和834B以及PCI快速接口822。
网络设备被用来执行包处理操作。在包处理期间执行的其中一个主要功能是确定将要把所述包转发到的下一跳跃。比如交换机的典型的网络设备包括多个输入和输出端口。更确切地说,交换机包括多个输入/输出(I/O)端口,其中每一个可以在转发给定包的情境中充当输入或输出端口。在给定的I/O端口(起输入端口的作用)上接收进入的包,处理该包,并且将该包通过适当的I/O端口(起输出端口的作用)转发到其下一跳跃。该交换机包括称为媒体交换结构的多个交叉连接。该交换结构将每个I/O端口连接到其它I/O端口。从而,交换机能够将在给定的I/O端口上所接收的包路由到与该交换机的其它I/O端口相耦合的任何下一跳跃。
图8的示例性网络设备包括两组媒体交换结构806和808。在一个实施例中,媒体交换结构806通过一个系统包接口级4(SPI4)接口807连接到第一媒体交换结构接口126,同时媒体交换结构808通过一个SPI4接口809连接到第二媒体交换结构接口140。
通常来说,可以利用使用半导体制造技术的已编程逻辑实施前述实施例的各方面。另外,可在机器可读介质中实施本说明书的各实施例。例如,上述的设计可以被存储在与用来设计半导体器件的设计工具相关联的机器可读介质上或者可以被嵌入其中。实例包括以VHSIC硬件描述语言(VHDL)语言、Verilog语言或SPICE语言格式化的网表。一些网表实例包括:行为级网表、寄存器传送级(RTL)网表、门级网表和晶体管级网表。机器可读介质还包括具有如GDS-II文件的布局信息的介质。此外,网表文件或用于半导体芯片设计的其它机器可读介质可用于仿真环境中以执行上述教导的方法。
对于本发明所说明的实施例的上面描述(包括在摘要中的描述)并不打算穷举或将本发明限制到所公开的精确形式。同时,这里所描述的本发明的特定实施例和实例是用于说明目的,本领域的技术人员可以意识到,在本发明的范围中,多种等价的修改都是可能的。
根据上面的详细描述,本发明可以存在多种修改。在所附权利要求书中使用的术语不应被解释为将本发明限制到说明书和附图中所公开的特定实施例。相反,本发明的范围完全通过所附权利要求书限定,应当根据权利要求解释的既定原则来分析所附权利要求书。

Claims (28)

1.一种网络设备,包括:
多个主控端,其被配置成多个集群;
多个目标,每个目标包括一个可由多个主控端访问的可共享资源,其中,所述目标被分组为子组;
一个互连,其包括连接在所述多个集群和所述多个目标之间的、形成交叉开关互连的多组总线线路,所述多组总线线路对应于命令总线、用于目标写入的拉数据总线和用于目标读取的推数据总线;
用于每个命令总线、拉数据总线和推数据总线的多路复用器电路,以便选择性地将给定的集群连接到给定的目标,从而使得能够在给定的集群和给定的目标之间传递命令和数据;以及
两级仲裁逻辑,被耦合来控制所述多路复用器电路,以便解决总线争用问题,所述两级仲裁逻辑包括用于在给定子组的成员之间进行仲裁的子组仲裁级和用于确定允许哪个获胜的子组访问集群的集群仲裁级。
2.如权利要求1的设备,进一步包括拉数据请求标识ID总线,包括连接在多个集群和多个目标之间的、形成交叉开关互连的多组总线线路。
3.如权利要求1的设备,进一步包括推数据请求标识ID总线,包括连接在多个集群和多个目标之间的、形成交叉开关互连的多组总线线路。
4.如权利要求1的设备,其中所述目标的第一部分与对应于命令总线、拉数据总线和推数据总线的第一事例的第一多组总线线路相关联,以及其中所述目标的第二部分与对应于命令总线、拉数据总线和推数据总线的第二事例的第二多组总线线路相关联。
5.如权利要求1的设备,其中所述设备包括一个处理器,并且所述多个主控端包括多个处理器核心元件。
6.如权利要求1的设备,进一步包括能够使目标选择性地作为目标和主控端来操作的总线电路。
7.如权利要求6的设备,进一步包括一个通用处理器,该通用处理器可以选择性地作为目标和主控端来操作。
8.如权利要求6的设备,进一步包括一个通信量管理器,该通信量管理器可以选择性地作为目标和主控端来操作。
9.如权利要求6的设备,进一步包括外围部件互连PCI接口和PCI快速接口的其中一个,其可以选择性地作为目标和主控端来操作。
10.如权利要求1的设备,其中所选择的目标被分组为多个子组,每个子组包括用于每个推数据总线和拉数据总线的各自的子组多路复用器,所述子组多路复用器能够将该子组中的目标通过所述互连选择性地连接到所述多个集群。
11.如权利要求1的设备,其中所述目标的其中一个包括媒体交换结构接口。
12.如权利要求1的设备,其中所述目标的其中一个包括存储器控制器。
13.如权利要求1的设备,其中所述设备包括一个集成电路IC芯片,并且其中多个目标被设置为接近该IC芯片的外围,同时多个集群的主控端朝向该IC芯片的中心部分被设置。
14.如权利要求1的设备,进一步包括用于每个集群的至少一个流水线总线,通过该流水线总线可以在一个集群中的各主控端之间传输数据。
15.一种网络设备,包括:
多个主控端,其被配置成多个集群;
多个目标,每个目标包括一个可由所述多个主控端访问的可共享资源,其中,所述目标被分组为子组;
一个互连装置,包括连接在所述多个集群和所述多个目标之间的、形成交叉开关互连的多组总线线路,所述多组总线线路对应于命令总线、用于目标写入的拉数据总线和用于目标读取的推数据总线;
用于每个命令总线、拉数据总线和推数据总线的多路复用器装置,以便选择性地将给定的集群连接到给定的目标,以便能够在给定的集群和给定的目标之间传递命令和数据;
总线仲裁装置,用于对每个命令总线、拉数据总线和推数据总线进行仲裁,其被耦合来控制该多路复用器装置,包括:两级仲裁逻辑,被耦合来控制所述多路复用器装置,以便解决总线争用问题,所述两级仲裁逻辑包括用于在给定子组的成员之间进行仲裁的子组仲裁级和用于确定允许哪个获胜的子组访问集群的集群仲裁级。
16.如权利要求15的设备,其中所述互连装置包括第一部分和第二部分,并且其中所述多个目标被划分为第一和第二组目标,第一组目标通过该互连装置的第一部分连接到所述多个集群,第二组目标通过该互连装置的第二部分连接到所述多个集群。
17.如权利要求15的设备,其中所述设备包括一个网络处理器装置,并且所述多个主控端包括多个包处理装置。
18.如权利要求15的设备,进一步包括用于使一个目标能够选择性地作为目标和主控端来操作的装置。
19.如权利要求15的设备,进一步包括用于将命令和数据传输到每个集群的主控端、以及从每个集群的主控端传输命令和数据的装置。
20.如权利要求15的设备,其中所选择的目标被分组为多个子组,每个子组包括一个用于每个推数据总线和拉数据总线的各自的子组多路复用器和总线仲裁装置,以便能够将该子组中的目标通过底板互连装置连接到多个集群。
21.如权利要求15的设备,其中所述目标的其中一个包括媒体交换结构接口装置。
22.如权利要求15的设备,其中所述目标的其中一个包括存储器控制器装置。
23.一种网络设备,包括:
一个网络处理器,包括,
多个处理核心,其被配置成多个集群;
多个目标,每个目标包括一个可共享的资源,该可共享的资源可由所述多个处理核心访问,所述目标包括媒体交换结构接口和外围部件互连PCI快速接口,其中,所述目标被分组为子组;
一个底板互连,包括连接在多个集群和多个目标之间的、形成交叉开关互连的多组总线线路,所述多组总线线路对应于命令总线、用于目标写入的拉数据总线和用于目标读取的推数据总线;
用于每个命令总线、拉数据总线和推数据总线的多路复用器电路,以便选择性地将给定的集群连接到给定目标,以便能够在给定的集群和给定的目标之间传递命令和数据;
一个媒体交换结构,包括在多个输入/输出I/O端口之间的交叉连接,其中在所述输入/输出I/O端口处接收包并从该处转发包;该媒体交换结构耦合到该媒体交换结构接口;
一个PCI快速板,其耦合到PCI快速接口;以及
两级仲裁逻辑,被耦合来控制所述多路复用器电路,以便解决总线争用问题,所述两级仲裁逻辑包括用于在给定子组的成员之间进行仲裁的子组仲裁级和用于确定允许哪个获胜的子组访问集群的集群仲裁级。
24.如权利要求23的网络设备,进一步包括:
一个动态随机存取存储器DRAM控制通道,其包括一个目标;以及
一个DRAM存储设备,其耦合到该DRAM控制通道。
25.如权利要求23的网络设备,进一步包括:
第二媒体交换结构接口,其包括一个目标;以及
第二媒体交换结构,其耦合到第二媒体交换结构接口。
26.如权利要求23的网络设备,进一步包括:
一个拉标识ID总线,包括连接在多个集群和多个目标之间的、形成交叉开关互连的多组总线线路;以及
一个推标识ID总线,包括连接在多个集群和多个目标之间的、形成交叉开关互连的多组总线线路。
27.如权利要求26的网络设备,其中用于推数据总线和推ID总线的多路复用器电路包括多个推数据多路复用器和推ID多路复用器,并且该设备进一步包括一个两级仲裁器,其可操作地耦合到所述目标、推数据多路复用器和推ID多路复用器,以便仲裁对于通过底板互连从多个处理核心向多个目标发出的拉数据事务请求的准许。
28.如权利要求23的网络设备,其中所选择的目标被分组为多个子组,并且其中所述两级仲裁器包括:
第一仲裁级,包括一个仲裁由相应的子组中的目标发出的事务请求的子组仲裁器;以及
第二仲裁级,包括一个集群仲裁器,该集群仲裁器仲裁从一个或多个子组仲裁器向该集群仲裁器发出的获胜事务请求。
CN2005101216343A 2004-11-23 2005-11-22 用于多线程、多重处理单片系统网络处理器单元的可升级的、高性能全局互联方案 Expired - Fee Related CN1816012B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/997,624 US7707266B2 (en) 2004-11-23 2004-11-23 Scalable, high-performance, global interconnect scheme for multi-threaded, multiprocessing system-on-a-chip network processor unit
US10/997624 2004-11-23

Publications (2)

Publication Number Publication Date
CN1816012A CN1816012A (zh) 2006-08-09
CN1816012B true CN1816012B (zh) 2012-02-15

Family

ID=36035668

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005101216343A Expired - Fee Related CN1816012B (zh) 2004-11-23 2005-11-22 用于多线程、多重处理单片系统网络处理器单元的可升级的、高性能全局互联方案

Country Status (5)

Country Link
US (1) US7707266B2 (zh)
JP (1) JP4564065B2 (zh)
CN (1) CN1816012B (zh)
DE (1) DE112005002351T5 (zh)
WO (1) WO2006057847A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4786238B2 (ja) * 2005-07-19 2011-10-05 東京応化工業株式会社 レジスト組成物の製造方法、ろ過装置、レジスト組成物の塗布装置
US8359421B2 (en) * 2009-08-06 2013-01-22 Qualcomm Incorporated Partitioning a crossbar interconnect in a multi-channel memory system
CN102289421B (zh) * 2011-07-26 2013-12-18 西安电子科技大学 一种基于交叉开关结构的片上互联方法
US9405713B2 (en) * 2012-02-17 2016-08-02 Netronome Systems, Inc. Commonality of memory island interface and structure
US8902902B2 (en) 2012-07-18 2014-12-02 Netronome Systems, Incorporated Recursive lookup with a hardware trie structure that has no sequential logic elements
CN105426793B (zh) * 2015-11-17 2018-02-06 无锡江南计算技术研究所 一种多端口设备控制器加解密调度控制方法
US11409436B2 (en) 2018-08-08 2022-08-09 Micron Technology, Inc. Buffer management in memory systems for read and write requests
US10782916B2 (en) 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
US11481343B1 (en) 2021-04-02 2022-10-25 Micron Technology, Inc. Transporting request types with different latencies

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1360777A (zh) * 1999-03-17 2002-07-24 因芬尼昂技术股份公司 具有局部总线节点的多路复用总线
EP1284459A2 (en) * 2001-08-17 2003-02-19 Sun Microsystems, Inc. Method and apparatus for simulation processor
CN1422044A (zh) * 2001-11-29 2003-06-04 三星电子株式会社 多数字用户线接入多路复用器系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7054969B1 (en) * 1998-09-18 2006-05-30 Clearspeed Technology Plc Apparatus for use in a computer system
US6041400A (en) * 1998-10-26 2000-03-21 Sony Corporation Distributed extensible processing architecture for digital signal processing applications
JP2969115B1 (ja) 1998-11-25 1999-11-02 株式会社日立製作所 半導体装置
JP4573940B2 (ja) 1999-03-19 2010-11-04 パナソニック株式会社 クロスバススイッチ装置
US6842104B1 (en) * 1999-03-19 2005-01-11 Matsushita Electric Industrial Co., Ltd. System lsi and a cross-bus switch apparatus achieved in a plurality of circuits in which two or more pairs of a source apparatus and a destination apparatus are connected simultaneously and buses are wired without concentration
US20030023709A1 (en) * 2001-02-28 2003-01-30 Alvarez Mario F. Embedded controller and node management architecture for a modular optical network, and methods and apparatus therefor
JP4181839B2 (ja) * 2002-09-30 2008-11-19 キヤノン株式会社 システムコントローラ
US7412551B2 (en) * 2004-06-30 2008-08-12 Intel Corporation Methods and apparatus for supporting programmable burst management schemes on pipelined buses
US7200699B2 (en) * 2004-09-02 2007-04-03 Intel Corporation Scalable, two-stage round robin arbiter with re-circulation and bounded latency
US20060095730A1 (en) * 2004-09-30 2006-05-04 Gilbert Wolrich Expansion of compute engine code space by sharing adjacent control stores using interleaved program addresses
US7512729B2 (en) * 2005-03-31 2009-03-31 Intel Corporation Method and apparatus for a high efficiency two-stage rotating priority arbiter with predictable arbitration latency

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1360777A (zh) * 1999-03-17 2002-07-24 因芬尼昂技术股份公司 具有局部总线节点的多路复用总线
EP1284459A2 (en) * 2001-08-17 2003-02-19 Sun Microsystems, Inc. Method and apparatus for simulation processor
CN1422044A (zh) * 2001-11-29 2003-06-04 三星电子株式会社 多数字用户线接入多路复用器系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Inter.Inter IXP1200 Network Processor Family Hardware Reference Manual.Intel,2001,第18,25,32,33,43页. *

Also Published As

Publication number Publication date
US7707266B2 (en) 2010-04-27
CN1816012A (zh) 2006-08-09
JP4564065B2 (ja) 2010-10-20
DE112005002351T5 (de) 2007-10-11
JP2008521131A (ja) 2008-06-19
US20060112206A1 (en) 2006-05-25
WO2006057847A1 (en) 2006-06-01

Similar Documents

Publication Publication Date Title
CN1816012B (zh) 用于多线程、多重处理单片系统网络处理器单元的可升级的、高性能全局互联方案
US11681645B2 (en) Independent control of multiple concurrent application graphs in a reconfigurable data processor
US20210055940A1 (en) Efficient Configuration Of A Reconfigurable Data Processor
US11983140B2 (en) Efficient deconfiguration of a reconfigurable data processor
US7290096B2 (en) Full access to memory interfaces via remote request
JP4532542B2 (ja) メモリハブ付きメモリモジュールでデータ転送を編成するためのシステムおよび方法
CN100557594C (zh) 数据处理器的状态引擎
CN100595720C (zh) 用于基于集线器的存储系统中直接存储器访问的设备和方法
CN101194245B (zh) 具有宽寄存器组体系结构的分组处理器
JP2003532224A (ja) マルチプロセッサコンピュータシステムのための高度メモリアルゴリズミックプロセッサアーキテクチャ
CN104011676A (zh) 用于跨过多个硬件线程的虚拟线程的细粒度并行的低延迟变量转移网络
CN107239420A (zh) 具有散布处理器dma‑fifo的处理系统
US4819150A (en) Array for simulating computer functions for large computer systems
US20200241844A1 (en) Matrix normal/transpose read and a reconfigurable data processor including same
EP3729261B1 (en) A centralized-distributed mixed organization of shared memory for neural network processing
JP4860891B2 (ja) ビット順次手法により大容量並列プロセッサアレイをメモリアレイに接続する方法及び装置
US9367493B2 (en) Method and system of communicating between peer processors in SoC environment
US20050050233A1 (en) Parallel processing apparatus
Raghunath Interconnection network design based on packaging considerations
El-Ghazawi et al. Input-output operations
JP2003036240A (ja) マルチプロセッサ間通信装置
JPS644218B2 (zh)
Design et al. Report No. UCB/CSD 93/782

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20060809

CI01 Publication of corrected invention patent application

Correction item: Rejection of patent application

Correct: Dismiss

False: Reject

Number: 32

Volume: 26

ERR Gazette correction

Free format text: CORRECT: PATENT APPLICATION REJECTION OF AFTER PUBLICATION; FROM: REJECTION TO: REVOCATION REJECTED

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: 20120215

Termination date: 20191122

CF01 Termination of patent right due to non-payment of annual fee