CN1666185A - 支持包处理的可配置的多端口多协议网络接口 - Google Patents

支持包处理的可配置的多端口多协议网络接口 Download PDF

Info

Publication number
CN1666185A
CN1666185A CN03816257.1A CN03816257A CN1666185A CN 1666185 A CN1666185 A CN 1666185A CN 03816257 A CN03816257 A CN 03816257A CN 1666185 A CN1666185 A CN 1666185A
Authority
CN
China
Prior art keywords
interface
bus
internal
architecture
external
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.)
Granted
Application number
CN03816257.1A
Other languages
English (en)
Other versions
CN100401279C (zh
Inventor
B·文纳科塔
J·刘
S·失
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 CN1666185A publication Critical patent/CN1666185A/zh
Application granted granted Critical
Publication of CN100401279C publication Critical patent/CN100401279C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Abstract

一种位于内部总线和具有一个或多个外部总线的外部总线体系结构之间的网络接口,其包括外部接口引擎和内部接口。外部接口引擎(EIE)耦合于外部总线体系结构,其中外部接口引擎根据一个或多个总线协议在外部总线体系结构上进行通信。内部接口耦合于外部接口引擎和内部总线,其中内部接口在内部总线和外部总线体系结构之间缓冲网络数据。在一个实施例中,内部接口包括耦合于内部总线的内部接口(IIE),其中IIE为网络数据定义多个队列。一种中间存储器模块耦合于IIE和EIE,其中中间存储器模块根据多个队列集合网络数据。

Description

支持包处理的可配置的多端口多协议网络接口
技术领域
本发明的实施例一般涉及计算机网络体系结构。更具体地说,本发明的实施例涉及一种在处理器内部总线和外部总线之间能够提高网络性能的网络接口。
背景技术
在竞争非常激烈的计算机工业中,已经充分证实了向着更快处理和增加功能性发展的趋势。虽然这个趋势是消费者所希望的,但是它向计算机设计及厂商提出了若干挑战。其中一个所关注的问题涉及网络体系结构,尤其是考虑到在现代社会中正迅速提高的因特网的普及。图1在10中示出了片上系统的典型网络体系结构。一般可以看到,网络处理器12耦合于内部总线14并且通常具有内存储器18。存储器18可以在片上或者是在片外,并且也耦合于内部总线14,其中处理器12、存储器18和内部总线14可以是″片上系统″(SOC)的一部分。还可以看到,SOC还包括外部接口引擎(EIE)20,其耦合于内部总线14和外部总线22。外部总线22支持总线协议,诸如外设部件互连(PCI版本2.2,PCI特殊兴趣组)协议,用于异步传输模式的通用测试与操作物理接口(Utopia Level 1/2/3,ATM论坛技术委员会)协议,以及其他所需的协议。因此,EIE 20根据适用的协议在外部总线22上进行通信,将网络数据存储到存储器18以供处理器12使用,以及从存储器18检索网络数据以便实现各种网络功能。
虽然上述体系结构10已满足某些网络环境,但是还留有明显需要改进的地方。例如,常规EIE 20作为单一引擎工作,其只能够根据一个外部总线协议进行通信。因此,如果想要利用多个协议,则需要额外的EIE。此外,如果增加EIE,则难以根据用户确定的优先级来跨越多个逻辑队列共享物理资源。在将资源分配给协议时的这一困难是由这样的事实导致的,即不存在逻辑队列到多个协议接口的映射。
另外,各种协议经常使用不同的数据排序和设置。例如,某些协议可能需要一种通常称为endian-交换(endian-swapping)的技术,以便保证网络数据具有与外部总线协议无关的相同的″外观(lookand feel)”。也应注意,随着总线协议从一代过渡到下一代,诸如从Utopia Level 2发展到Utopia Level 3,可能希望增加接口以支持升级。然而,在常规结构10中,可能很难增加新的接口,并且经常要改变网络数据的内部外观。此外,这种改进还可能使处理变得复杂。
还应进一步了解到,EIE 20一般没有存储区域,因此缺乏在内部总线14和外部总线22之间缓冲网络数据的能力。由于若干理由,其对于网络性能而言可能不是合乎需要的。例如,内部数据的传输并不与网络爆发和枯竭所引起的网络瞬变相隔离。在这点上,处理速率通常等于平均数据到达率。一般而言,线上的最大速率要显著地高于平均到达率。实际上,某些网络处理器12被设计成每秒通过约40兆字节的信息,而外部总线22上的数据吞吐率可以达到每秒100兆字节的速度。因此,内部传输等待时间不能与外部传输等待时间相分离,并且溢出性能的缺乏可能导致在网络爆发期间出现掉包。
重要的是,应注意一般的EIE 20使用读-写数据传输方案,其中将数据写入存储器18,并且处理器12在内部总线14上通过读操作访问片外存储器18。从等待时间的角度来看,读操作比写操作更耗时,因为数据的请求者必须经常等待多个周期以便数据返回。此外,通常不能精确地预测周期数。结果,效率可能会收到影响。此外,EIE20通常不能提供服务优先级化、业务分类和数据传输成本的分摊。结果,必须将处理器12可用的更多处理时间花费在管理网络数据上,以致更少的时间可用于处理网络数据中的实际数据包。
附图说明
本领域熟练的技术人员通过阅读下列说明书和附加的权利要求书并通过参考下列附图,将清楚本发明实施例的各种优点,其中:
图1是对理解本发明有用的常规网络体系结构的一个实例的方框图;
图2是根据本发明一个实施例的网络体系结构的一个实例的方框图;
图3是根据本发明一个实施例的网络接口的一个实例的方框图;
图4是根据本发明一个实施例的支持网络数据传输的方法实例的流程图;
图5是根据本发明一个实施例的在内部接口中缓冲网络数据的处理实例的流程图;
图6是根据本发明一个实施例的定义网络数据的多个队列的处理实例的流程图;
图7是根据本发明一个实施例的集合中间存储器模块中的网络数据的处理实例的流程图;以及
图8是根据本发明一个实施例的在外部总线上进行通信处理的流程图。
具体实施方式
本发明的实施例提供了显著提高的网络性能。图2示出一种网络体系结构24,具有设置在处理器内部总线14和具有一个或多个外部总线的外部总线体系结构28之间的网络接口26。如上所述,一个或多个网络处理器12和内部存储器18耦合于内部总线14。这里使用的术语“耦合”表示直接相连或间接的连接,并且可由任何市场上可获得的技术实现,诸如电、光、磁、机械或者它们的任意结合。外部总线体系结构28能够支持多个总线协议,诸如外设部件互连(PCI)协议和ATM(Utopia)Level 2协议家族的通用测试与操作物理接口协议。如以下将详细描述的那样,能够使用多个总线协议使得网络接口26比单一总线方法更加坚固。虽然将主要在PCI和Utopia协议方面来讨论网络接口26,但是应注意,本发明的实施例并不限于此。实际上,网络接口26对其中所关心的问题是网络性能的任何网络体系结构都有用。尽管这样,还存在有网络接口26所唯一适合的这些协议的多个方面。
一般可以看到,网络接口26具有外部接口引擎(EIE)30和内部接口32。重要的是,请注意只有网络接口26的一部分改变,以便适应新协议。具体地说,通过增加EIE 30可以容易地增加新接口。EIE 30耦合于外部总线28,其中EIE 30根据一个或多个总线协议在外部总线体系结构28上进行通信。内部接口32耦合于EIE 30和内部总线14,其中内部接口32在内部总线14和外部总线体系结构28之间缓冲网络数据。通过缓冲网络数据,可以实现多种好处。例如,内部数据传输可以与瞬态网络爆发/枯竭相隔离,以便将内部传输等待时间与外部传输等待时间分离。此外,存在某些有利于集合网络数据中的数据包的规模经济效益。还可以实现将在此描述的其他多种好处。
更具体地说,可以看到,内部接口32具有与内部总线14耦合的内部接口引擎(IIE)34,其中IIE 34定义了网络数据的多个队列。中间存储器模块36耦合于IIE 34和EIE 30,其中存储器模块36根据多个队列集合网络数据。来自不同队列的数据被分在中间存储器模块36的独立缓冲器中。
现在请转到图3,可以看到,IIE 34一般包括多通道寄存器结构38,其耦合于EIE 30和中间存储器模块36。还可以进一步看到,内部总线接口体系结构40耦合于内部总线14。直接存储器存取(DMA)引擎体系结构42耦合于内部总线接口体系结构40和中间存储器模块36。DMA引擎体系结构42使得内部总线接口体系结构40能够通过内部总线14在中间存储器模块36和多个可寻址位置之间直接传输网络数据。特别是,接口体系结构40除了能够向内部存储器发送和接收数据之外,还能够向处理器发送并接收数据。
因此,网络数据被写入中间存储器模块36,然后被写入内部总线14(如果输入)或者被写入外部总线体系结构28(如果输出)。因此,与其中将数据写入目的存储器、然后由当前的处理器读取的较常规的″读-写″方案相比较而言,可以把由此得到的数据传送方案看作″写-写″方案。例如,处理输入数据的常规方法包括,将所有的网络数据写入外部或内部存储器18(图1),不管存储器18是否为数据的预定目的地。然后,处理器12(图1)必须进行读操作,以便从存储器18检索数据。尤其应该注意,读操作花费相当长的处理时间,这是因为处理器12必须等待数据从存储器18返回。此外,通常难以预测处理器将要等待多长时间。简而言之,接口体系结构40支持″写-写″数据传输方案,该方案要比常规的“读-写”方案更为有效。
尤其是,DMA引擎体系结构42包括主DMA引擎44和从DMA引擎46。主DMA引擎44使用来自寄存器结构38的队列优先级数据,以便随着队列赢得优先级而为其确定DMA设置信息,诸如源地址和目的地址、方向、和DMA长度。主DMA引擎44由此确定哪个队列将控制内部总线14并进行直接存储器存取。在另一方面,从DMA引擎46有效地允许内部总线14控制数据传输。因此,所选队列是从地址的编码的函数,并且不是通过在寄存器结构38中进行的判优来确定的。可以将内部和外部引擎独立地配置为接收和发送路径上的主/从。这使得能够进行最大总线效率的配置。例如,在从设备发送的数据上,内部引擎可以为从而外部引擎可以为主。对于接收数据同样如此。
还可以看到,内部总线接口体系结构40包括内部总线主接口48、内部总线从接口50、和多个耦合于内部总线从接口50的本地控制寄存器52。本地控制寄存器52存储有关多个可寻址位置的数据和其他切换信息。
另外,多通道寄存器结构38具有一组接收队列寄存器54,其耦合于EIE 30和存储器模块36。一组发送队列寄存器56耦合于EIE 30和存储器模块36,以及控制逻辑58耦合于接收队列寄存器54和发送队列寄存器56,以便赋予队列优先级并定义网络数据的DMA设置信息。从而,控制逻辑58对队列进行判优,并随着优先级被分配而将结果进行多路传输。
应理解,存储器模块36包括随机存取存储器(RAM)60和RAM控制器62,该RAM控制器62耦合于RAM 60、EIE 30和IIE 34。RAM控制器62根据IIE 34定义的队列建立缓冲部分。尤其注意缓冲分区基于网络数据的吞吐量要求是可变化的。通过提供可配置的分区,可以获得多个好处。例如,不同类型的业务可以根据其不同需要而传输和处理。这一方法还使得程序员能够对于不同的业务种类,独立地对处理/传输效率和数据传输等待时间进行折衷。此外,DMA独立的切换机制使得能够同时处理数据包内核中的几个数据包,并分摊数据传输的成本。
还可以看到,EIE 30包括第一外部总线接口64和第二外部总线接口66。第一外部总线接口64根据第一总线协议在第一外部总线28a上进行通信。在所描述的例子中,第一总线协议是Utopia Level 2协议。第二外部总线接口根据第二总线协议在第二外部总线28b上进行通信。在所描述的例子中,第二总线协议是PCI总线协议。通过使得EIE 30能够根据多个外部总线协议工作,并将这个功能结合到上述可配置队列结构中,可以实现多个好处。例如,可以在不改变网络数据的内部外观和不需过度复杂处理的情况下增加接口。此外,可以在不对处理器具有负面软件影响的情况下执行endian-交换,并且更易于实现资源管理。除了endian-交换之外,EIE 30可以通过变化宽度从接口中取得数据,并以该设备内部的一种格式来表示数据。例如,Utopia是16位接口,而PCI是32位接口。
应注意,第二外部总线接口66直接链接于内部总线主接口48,以便将第二外部总线接口66作为主机接口使用。换句话说,第二外部总线接口66接口到主机中央处理单元(CPU),该中央处理单元设置并初始化系统并且可以执行呼叫建立。在直接桥68中,主机CPU直接访问内部总线14。在这个模式中,该直接桥68在外部总线体系结构28上作为从装置,而在内部总线14上作为主装置。直接主DMA70是一种DMA引擎,其将数据从内部总线14拷贝到外部总线体系结构28上,或者反之亦然,并且在两个总线上均作为主装置工作。
现在转到图4,为了编程的目的而示出了一种支持在处理器内部总线和外部总线之间传输网络数据的方法72。一般而言,处理块74提供根据一个或多个总线协议在外部总线上进行通信,而块76提供在内部总线和外部总线与内部接口之间缓冲网络数据。块78根据处理器切换协议在内部总线上与处理器进行通信。应注意,块74和78可以颠倒,以便指示内部总线到外部总线的数据传输。同样重要的是,请注意常规方法既不缓冲网络数据,也不与处理器直接通信。更确切地说,通常是将网络数据通过EIE直接传递,然后写入内部存储器。结果,处理器必须在内部总线上通信,以便获得网络数据。另一方面,所描述的方法能够将网络数据直接发送给其最终目的地,即处理器。
现在请转到图5,块76`处详细地示出了一种缓冲网络数据的方法和内部接口。具体地说,可以看到,在处理块80处为网络数据定义了多个队列。块82提供了根据多个队列将网络数据集合在中间存储器模块中。因此,在网络数据包括大量的数据包的地方,可在给定的队列中集合多个数据包,以便在将数据包写入处理器内核或从处理器内核读出时,能利用某些规模经济效益。
图6在块80`处详细地示出一种定义多个队列的方法。具体地说,可以看到,处理块84将每个队列分配给预定类的网络数据。块86为每个预定类定义传输优先级。还可以看到,块88使得内部接口能够通过内部总线在中间存储器模块和多个可寻址位置之间直接传输网络数据。
现在请转到图7,在块82`处详细地示出了一种根据多个队列集合数据的方法。可以看到,在块90处基于队列在中间存储器模块中建立了缓冲分区。块92根据网络数据的吞吐量要求来改变该分区的大小。块98按需提供endian-交换。实质上,根据可变的位顺序来缓冲网络数据(即,最高到最低,或者最低到最高)。因此,可变的位顺序使得在内部总线上进行的通信能够与在外部总线上进行通信所用的是Utopia总线协议还是PCI总线协议无关。图8在块74`处详细地示出一种在外部总线上进行通信的方法。块94提供了根据第一总线协议使用第一外部总线接口在外部总线上进行通信。块96提供了根据第二总线协议使用第二外部总线接口在外部总线上进行通信。
随着连续地参考图1-8,应理解到通过寄存器可以对所有的引擎编程和初始化。此外,网络接口26向外界提供八个不同的逻辑发送与接收队列。IIE 34作为DMA引擎,其负责通过内部总线14在SOC的内部元件和RAM 60之间的双向数据传输。所以,中间存储器模块36负责临时存储数据。EIE 30包括DMA引擎,该引擎负责RAM 60和外部网络之间的双向数据传输。
IIE 34设计成能支持集成电路(IC)内的基于批量的计算模型。基于批量的计算模块能够实现计算与数据移动的真实重叠,以至于使用处理器12中的所有资源。IIE 34能够成为SOC内部的传输机制上的主装置或从装置。通过将从网络接收的数据写到内部总线14上,IIE 34可以独立地将这些数据传输给处理器12内的任何位置。数据被写到由一组可编程寄存器52、54和56指定的地址。因此,每个队列可以将数据传输给独立的位置。一旦写入了数据,就通过基于硬件的握手机制将数据切换给SOC内部的处理器12的代理。反之,当将数据传输给网络时,SOC内部的处理代理将数据切换给IIE 34。为了能够有效地传输,通过允许将数据写入RAM 60,使得IIE 34能够直接从外部代理接收数据。然后,EIE 30将数据从RAM 60传输给外部接口。
到/来自计算引擎/处理代理的数据切换是根据处理缓冲器的原理进行的。每个缓冲器可实际包括一个或多个数据包/单元。更高的集合使得能够以附加等待时间为代价获得更好的传输和处理效率。如已论述的那样,缓冲器的位置和大小是可编程的。在所描述的例子中,网络接口26能够支持多至八个不同的数据缓冲器。这使得多个缓冲器能够处于″飞行中(in-flight)″,并且能够同时在处理器内核中得到处理。此外,缓冲器的数量不必固定为8个。当每个缓冲器都包含多个数据包/单元时,IIE 34和EIE 30中的逻辑允许网络接口26明确每个缓冲器内的数据的″框架″(例如,IP数据包,或异步传输模式-ATM单元),以便在外部接口处提供的构架信息可以保持在处理器12内部以便帮助数据处理。另外,寄存器52、54、56包含告知引擎在何处输入每个缓冲器的数据的信息。
如已论述的那样,基于缓冲器的结构能够使用处理器12内的批量计算模型,并允许数据传输/处理效率相对于计算等待时间的折衷。基于缓冲器的结构还允许更高地利用SOC资源。多队列结构使得能够不同地处理不同类的业务。此外,可将不同类的业务指向SOC中的不同位置。多队列结构还允许用户将其他SOC资源,诸如处理器内核,专用于给定队列(具有潜在的不同功能),提供了更高的效率和/或更简单的软件设计。多缓冲器结构使得能够在内核中同时处理多个缓冲器的数据。还应理解,可以将数据切换给位于任何可寻址位置的任何代理。因此,单个队列结构可用于多种类型的业务,诸如控制业务、数据业务和直通业务(through traffic)。对数据构架的支持为传输目的端处的软件提供了构架边界的知识,因此其不需分析构架内容来确定这些边界。结果显著地节省了计算时间。应理解,跨越队列,可以几种方式改变数据传输优先级。灵活的资源分配,诸如允许软件配置大小不同的RAM分区以及改变不同队列的DMA块大小和DMA等待时间,可以帮助用户满足更高优先级信道的严格的等待时间或带宽要求。
还应理解,网络接口26的体系结构使得能够无缝地支持多种协议的接口。外部网络可为一种标准的电气总线,诸如PCI总线、Utopia(Level 1、2或3)、POS/PHY等,或者其可为专有总线。通过多个外部总线接口64、66,单个网络接口(或底板接口BIF)实现方式可连接多个不同且独立的物理总线。此外,为了应付不同协议中出现的变换数据排序机制,每个队列都具有独立的字节交换机制。
一般地,像Utopia或PCI接口这样的接口的峰值吞吐量要显著地高于在SOC内部处理数据的平均速率。相反,可能存在有一些在此期间网络运行″枯竭″的时间段跟随着业务爆发。为了解决这个需要,RAM 60使得SOC能够吸收来自网络的数据爆发。否则可能丢失数据。网络接口26具有多层机制,以便容许错误的网络业务特性。RAM 60作为缓冲器,用于隔离内部传输等待时间和外部等待时间。短的网络瞬态可以由RAM 60吸收。IIE 34具有基于硬件的溢出容错机制,当SOC在接收时经历网络接口上的业务临时爆发时,或者在发送时网络阻塞时,使得IIE 34能够缓冲数据。基于硬件的溢出以直接实现的状态机机制来指定。溢出的数据提供予相同的外观,即同一缓冲器中溢出的数据被作为原始数据而给予相同的位置。因此,内部的软件体系结构不需要单独用于溢出数据的处理流程。反之,在枯竭期,硬件先占特征保证在RAM 60中不存在旧数据。如果这两个机制都失效,那么对于数据接收而言,存在一个硬件背压信号,可通过EIE 30跨越网络接口26产生该信号。在这种情况下,在发送时SOC将停止,而在接收时网络将停止。
如已论述的那样,每一个数据队列都具有独列的寄存器组。但是,八个队列共享RAM 60和传输资源。跨越八个队列的资源分区是可编程的。可将这些队列分配给不同的外部接口和/或分配给SOC内的不同处理器内核。由于RAM 60中不同的队列可以分配变化的分区大小,并且可将变化的优先级分配给由IIE 34或EIE 30执行的DMA传输,因此队列之间的资源分配是灵活的。当共享资源获得后其所占据的持续时间也可单独地编程。
具有网络接口26的SOC可以坚固地忍受网络的错误行为,并保存那些否则可能丢失的数据。这在网络处理中是至关重要的。RAM 60还将内部总线接口的等待时间和外部总线接口的等待时间相分离。来自网络的爆发业务的周期、暂时的网络拥塞或网络枯竭期与SOC的内部隔离。多层数据传输体系结构将其中接口将阻止外部网络传输数据的机会数量减少到最小,并且将SOC响应网络状况而停止的次数减少到最小。网络接口26允许多个物理接口(诸如PCI和Utopia),以便向SOC的内部硬件/软件提供公用的电气和编程接口。与其中内部硬件和软件直连于不同外部总线的其他结构相比较而言,这个公用接口缩短了设计时间,并且和内部硬件和软件直接与不同的外部总线接口的其他体系结构相比,使得SOC内部的硬件块和软件程序得以实现更高度的设计抽象。可以在不改变SOC的内部结构、并对内部体系结构和设计造成最小限度的破坏的情况下增加新的网络接口。网络接口26的资源以及同样的整个SOC的资源能够在各种结构中跨越多个外部协议接口而被无缝地共享。
网络接口26提供了设计灵活性和必需的性能指标以满足市场竞争和要求。其中多个应用同时与外部平台通信的多处理器环境可以利用将资源分配给单独且独立队列的独特能力。此外,通过能够将多个协议结合到设计″飞行中(on-th-fly)″,网络接口26为使队列效率最大化而提供了强大的机制。
根据先前的描述,本领域熟练的技术人员现在理解,可以各种方式实现本发明具体实施的主要技术。因此,虽然已连同本发明的特定例子一起而描述了这个发明的实施例,但是由于一旦熟练的专业人员研究了附图、说明书和附加的权利要求书,那么其他的修改对于熟练的专业人员来说变得显而易见,因此本发明实施例的真实范围将不限于此。

Claims (40)

1、一种在处理器内部总线和具有一个或多个外部总线的外部总线体系结构之间的网络接口,该网络接口包括:
外部接口引擎,耦合于外部总线体系结构,该外部接口引擎根据一个或多个总线协议在外部总线体系结构上进行通信;以及
内部接口,耦合于外部接口引擎和内部总线,该内部接口沿特定的逻辑分区在内部总线和外部总线体系结构之间缓冲网络数据。
2、根据权利要求1所述的网络接口,其中内部接口包括:
内部接口引擎,耦合于内部总线,该内部接口引擎为网络数据定义多个队列;以及
中间存储器模块,耦合于内部接口引擎和外部接口引擎,该中间存储器模块根据多个队列集合网络数据。
3、根据权利要求2所述的网络接口,其中内部接口引擎包括:
多通道寄存器结构,耦合于外部接口引擎和中间存储器模块;
内部总线接口体系结构,耦合于内部总线;以及
直接存储器存取(DMA)引擎体系结构,耦合于内部总线接口体系结构和中间存储器模块,该DMA引擎体系结构使得内部总线接口体系结构能够通过内部总线在中间存储器模块和多个可寻址位置之间直接传输网络数据。
4、根据权利要求3所述的网络接口,其中DMA引擎体系结构包括:
主DMA引擎;以及
从DMA引擎。
5、根据权利要求4所述的网络接口,其中主DMA引擎耦合于多通道寄存器结构,该主DMA引擎从寄存器结构接收队列优先级数据和DMA设置信息。
6、根据权利要求3所述的网络接口,其中内部总线接口体系结构包括:
内部总线主接口;
内部总线从接口;以及
多个本地控制寄存器,耦合于内部总线从接口,该本地控制寄存器存储有关多个可寻址位置的数据。
7、根据权利要求3所述的网络接口,其中多通道寄存器结构包括:
一组接收寄存器,耦合于外部接口引擎和中间存储器模块;
一组发送寄存器,耦合于外部接口引擎和中间存储器模块;以及
控制逻辑,耦合于所述接收和发送寄存器,以便为网络数据赋予队列优先级并定义DMA设置信息。
8、根据权利要求2所述的网络接口,其中中间存储器模块包括:
随机存取存储器(RAM);以及
RAM控制器,耦合于RAM、外部接口引擎和内部接口引擎,该RAM控制器根据内部接口引擎定义的队列建立缓冲分区。
9、根据权利要求8所述的网络接口,其中缓冲分区是可变的。
10、根据权利要求8所述的网络接口,其中RAM控制器使用基于硬件的枯竭期机制来防止网络枯竭期抛弃RAM中的网络数据。
11、根据权利要求8所述的网络接口,其中RAM控制器使用基于硬件的溢出机制来防止网络爆发导致RAM丢弃网络数据。
12、根据权利要求2所述的网络接口,其中队列彼此独立地传输网络数据。
13、根据权利要求1所述的网络接口,其中网络数据包括数据包,内部接口根据基于批量的处理模型缓冲这些数据包。
14、根据权利要求13所述的网络接口,其中内部接口构架数据包。
15、根据权利要求1所述的网络接口,其中外部接口引擎包括:
第一外部总线接口,根据第一总线协议在外部总线体系结构上进行通信;以及
第二外部总线接口,根据第二总线协议在外部总线体系结构上进行通信。
16、根据权利要求15所述的网络接口,其中第一外部总线接口包括第一外部直接存储器存取(DMA)引擎。
17、根据权利要求15所述的网络接口,其中第二外部总线接口包括第二外部直接存储器存取(DMA)引擎。
18、一种设置在网络接口的外部接口引擎和内部总线之间的内部接口,该内部接口包括:
内部接口引擎,耦合于内部总线,该内部接口引擎为网络数据定义多个队列;以及
中间存储器模块,耦合于内部接口引擎和外部接口引擎,该中间存储器模块根据多个队列集合网络数据。
19、根据权利要求18所述的内部接口,其中内部接口引擎包括:
多通道寄存器结构,耦合于外部接口引擎和中间存储器模块;
内部总线接口体系结构,耦合于内部总线;以及
直接存储器存取(DMA)引擎结构,耦合于内部总线接口和中间存储器模块,DMA引擎体系结构使得内部总线接口体系结构能够通过内部总线在中间存储器模块和多个可寻址位置之间直接传输网络数据。
20、根据权利要求19所述的内部接口,其中至少一个可寻址位置是处理器的一部分,该处理器耦合于内部总线。
21、根据权利要求20所述的内部接口,其中内部总线接口体系结构根据处理器切换协议与耦合于内部总线的处理器进行通信。
22、根据权利要求18所述的网络接口,其中中间存储器模块包括:
随机存取存储器(RAM);以及
RAM控制器,耦合于RAM、外部接口引擎和内部接口引擎,该RAM控制器根据内部接口引擎定义的队列建立缓冲分区。
23、根据权利要求22所述的内部接口,其中缓冲分区是可变的。
24、一种在内部总线和具有一个或多个外部总线的外部总线体系结构之间的网络接口,该网络接口包括:
外部接口引擎,具有第一外部总线接口,其根据第一总线协议在外部总线体系结构上进行通信,以及第二外部总线接口,其根据第二总线协议在外部总线体系结构上进行通信;
随机存取存储器(RAM);
RAM控制器,耦合于RAM和外部接口引擎,该RAM控制器根据多个队列建立缓冲分区;
多通道寄存器结构,耦合于第一外部总线接口、第二外部总线接口和RAM控制器,该寄存器结构产生队列数据,其中所述队列数据定义多个队列;
内部总线接口体系结构,耦合于内部总线;
直接存储器存取(DMA)引擎体系结构,耦合于内部总线接口体系结构和RAM控制器,该DMA引擎体系结构使得内部总线接口体系结构能够通过内部总线在RAM和多个可寻址位置之间直接传运输网络数据。
25、根据权利要求24所述的网络接口,其中至少一个可寻址位置是处理器的片上存储器的一部分,该处理器耦合于内部总线。
26、根据权利要求25所述的网络接口,其中内部总线接口体系结构根据处理器切换协议与处理器进行通信。
27、一种支持在处理器内部总线和具有一个或多个外部总线的外部总线体系结构之间传输网络数据的方法,该方法包括:
根据一个或多个总线协议在外部总线体系结构上进行通信;
在内部接口中,在内部总线和外部总线体系结构之间缓冲网络数据;以及
根据处理器切换协议在内部总线上与处理器进行通信。
28、根据权利要求27所述的方法,进一步包括:
为网络数据定义多个队列;以及
根据多个队列将网络数据集合在中间存储器模块中。
29、根据权利要求28所述的方法,还包括:使得内部接口能够通过内部总线在中间存储器模块和多个可寻址位置之间直接传输网络数据。
30、根据权利要求28所述的方法,进一步包括:
将每个队列分配给预定类的网络数据;以及
为每个预定类定义传输优先级。
31、根据权利要求28所述的方法,还包括:根据队列在中间存储器模块中建立缓冲分区。
32、根据权利要求31所述的方法,进一步包括:根据网络数据的吞吐量要求来改变缓冲分区的大小。
33、根据权利要求27所述的方法,进一步包括:
根据第一总线协议使用第一外部总线接口在外部总线体系结构上进行通信;以及
根据第二总线协议使用第二外部总线接口在外部总线体系结构上进行通信。
34、根据权利要求27所述的方法,进一步包括:根据可变位或字节顺序来缓冲网络数据,该可变位或字节顺序使得能够在内部总线上进行通信,而与在外部总线体系结构上进行通信所用的是第一总线协议或是第二总线协议无关。
35、一种机器可读介质,存储能够由处理器执行的一组指令以便:
根据一个或多个总线协议在外部总线体系结构上进行通信;
在内部接口中,在内部总线和外部总线体系结构之间缓冲网络数据;以及
根据处理器切换协议在内部总线上与处理器进行通信。
36、根据权利要求35所述的介质,其中指令还能够执行以便:
为网络数据定义多个队列;以及
根据多个队列将网络数据集合在中间存储器模块中。
37、根据权利要求36所述的介质,其中指令还能够执行使得内部接口能够通过内部总线在中间存储器模块和多个可寻址位置之间直接传输网络数据。
38、根据权利要求36所述的介质,其中指令还能够执行使得:
将每个队列分配给预定类的网络数据;以及
为每个预定类定义传输优先级。
39、一种网络体系结构,包括:
处理器,具有内部总线;
外部总线体系结构,具有一个或多个外部总线;以及
网络接口,位于内部总线和外部总线体系结构之间,该网络接口包括耦合于外部总线体系结构的外部接口引擎,该外部接口引擎根据一个或多个总线协议在外部总线体系结构上进行通信,该网络接口还包括内部接口,其耦合于外部接口引擎和内部总线,该内部接口在内部总线和外部总线体系结构之间缓冲网络数据。
40、根据权利要求35所述的结构,包括:
内部接口引擎,耦合于内部总线,该内部接口引擎为网络数据定义多个队列;以及
中间存储器模块,其耦合于内部接口引擎和外部接口引擎,该中间存储器模块根据多个队列集合网络数据。
CNB038162571A 2002-07-09 2003-07-02 支持包处理的可配置的多端口多协议网络接口 Expired - Fee Related CN100401279C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/190,851 US7162564B2 (en) 2002-07-09 2002-07-09 Configurable multi-port multi-protocol network interface to support packet processing
US10/190,851 2002-07-09

Publications (2)

Publication Number Publication Date
CN1666185A true CN1666185A (zh) 2005-09-07
CN100401279C CN100401279C (zh) 2008-07-09

Family

ID=30114095

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038162571A Expired - Fee Related CN100401279C (zh) 2002-07-09 2003-07-02 支持包处理的可配置的多端口多协议网络接口

Country Status (7)

Country Link
US (1) US7162564B2 (zh)
EP (1) EP1520231A2 (zh)
JP (2) JP2005532632A (zh)
CN (1) CN100401279C (zh)
AU (1) AU2003261104A1 (zh)
TW (1) TWI264647B (zh)
WO (1) WO2004006104A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101677293B (zh) * 2008-09-18 2012-12-12 华为技术有限公司 网络处理器和网络处理器访问数据结构的方法
CN107436855A (zh) * 2016-05-25 2017-12-05 三星电子株式会社 用于具有可重配置多端口的pcie存储系统的qos认知io管理

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002003744A1 (en) * 2000-06-30 2002-01-10 Hughes Electronics Corporation Residential broadband communications device, and method of operating same
GB2371380B (en) * 2001-01-08 2003-03-12 Sun Microsystems Inc Service processor and system and method using a service processor
US7146480B2 (en) * 2003-01-23 2006-12-05 Hewlett-Packard Development Company, L.P. Configurable memory system
US20040169736A1 (en) * 2003-02-28 2004-09-02 Eastman Kodak Company Imaging method and system for associating images and metadata
US7456879B2 (en) * 2003-08-29 2008-11-25 Aptina Imaging Corporation Digital correlated double sampling using dual analog path
US20050135395A1 (en) * 2003-12-22 2005-06-23 Fan Kan F. Method and system for pre-pending layer 2 (L2) frame descriptors
FR2875026A1 (fr) * 2004-09-03 2006-03-10 St Microelectronics Sa Dispositif programmable d'interface de commande
US20060149870A1 (en) * 2004-12-30 2006-07-06 Randall Sears Parallel to USB bridge controller
KR100723496B1 (ko) * 2005-08-11 2007-06-04 삼성전자주식회사 통합 fifo 메모리를 사용하는 다중-레이트 입력데이터의 동기화기 및 방법
US7624310B2 (en) 2007-07-11 2009-11-24 Micron Technology, Inc. System and method for initializing a memory system, and memory device and processor-based system using same
JP5360214B2 (ja) * 2008-09-03 2013-12-04 マーベル ワールド トレード リミテッド マルチプレーン型フラッシュメモリへのデータのプログラミング方法、これを用いたデバイスおよびシステム
CN115297001B (zh) * 2022-10-08 2022-12-16 湖南恩智测控技术有限公司 多端口多协议的通信方法及板卡

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367643A (en) * 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
GB9602552D0 (en) * 1996-02-08 1996-04-10 Madge Networks Ltd Communication network end station and adaptor card
US5764896A (en) * 1996-06-28 1998-06-09 Compaq Computer Corporation Method and system for reducing transfer latency when transferring data from a network to a computer system
US5930525A (en) 1997-04-30 1999-07-27 Adaptec, Inc. Method and apparatus for network interface fetching initial and data burst blocks and segmenting blocks and scheduling blocks compatible for transmission over multiple virtual circuits
US6185641B1 (en) * 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US6389479B1 (en) * 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6105079A (en) * 1997-12-18 2000-08-15 Advanced Micro Devices, Inc. Apparatus and method in a network interface device for selectively supplying long bit information related to a data frame to a buffer memory and a read controller for initiation of data transfers
US6240095B1 (en) * 1998-05-14 2001-05-29 Genroco, Inc. Buffer memory with parallel data and transfer instruction buffering
US6154796A (en) * 1998-09-03 2000-11-28 Advanced Micro Devices, Inc. Apparatus and method in a network interface device for storing receiving frame status in a holding register
JP2000284872A (ja) * 1999-03-31 2000-10-13 Matsushita Electric Ind Co Ltd Usb伝送装置
US6516371B1 (en) * 1999-05-27 2003-02-04 Advanced Micro Devices, Inc. Network interface device for accessing data stored in buffer memory locations defined by programmable read pointer information
US6651107B1 (en) * 1999-09-21 2003-11-18 Intel Corporation Reduced hardware network adapter and communication
US6721872B1 (en) * 1999-10-25 2004-04-13 Lucent Technologies Inc. Reconfigurable network interface architecture
US6766389B2 (en) * 2001-05-18 2004-07-20 Broadcom Corporation System on a chip for networking

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101677293B (zh) * 2008-09-18 2012-12-12 华为技术有限公司 网络处理器和网络处理器访问数据结构的方法
CN107436855A (zh) * 2016-05-25 2017-12-05 三星电子株式会社 用于具有可重配置多端口的pcie存储系统的qos认知io管理

Also Published As

Publication number Publication date
EP1520231A2 (en) 2005-04-06
TW200407712A (en) 2004-05-16
JP2009238236A (ja) 2009-10-15
US20040010650A1 (en) 2004-01-15
AU2003261104A1 (en) 2004-01-23
AU2003261104A8 (en) 2004-01-23
US7162564B2 (en) 2007-01-09
WO2004006104A2 (en) 2004-01-15
JP2005532632A (ja) 2005-10-27
JP4745423B2 (ja) 2011-08-10
WO2004006104A3 (en) 2004-08-19
CN100401279C (zh) 2008-07-09
TWI264647B (en) 2006-10-21

Similar Documents

Publication Publication Date Title
US6557069B1 (en) Processor-memory bus architecture for supporting multiple processors
US6876561B2 (en) Scratchpad memory
US6526469B1 (en) Bus architecture employing varying width uni-directional command bus
US7664909B2 (en) Method and apparatus for a shared I/O serial ATA controller
EP1851626B1 (en) Modification of virtual adapter resources in a logically partitioned data processing system
US7761642B2 (en) Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging
US9009648B2 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification
JP5285375B2 (ja) ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
JP5363064B2 (ja) ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
KR100555394B1 (ko) Ngio/infiniband 어플리케이션용 리모트 키검증을 위한 방법 및 메커니즘
JP4745423B2 (ja) パケット処理に対応する構成可能なマルチポートのマルチプロトコルのネットワークインタフェース
US7039740B2 (en) Interrupt handling in systems having multiple multi-processor clusters
EP1422626B1 (en) Multi-core communications module, data communications system incorporating a multi-core communications module, and data communications process
EP2486715B1 (en) Smart memory
US6487619B1 (en) Multiprocessor system that communicates through an internal bus using a network protocol
US20090059955A1 (en) Single chip protocol converter
US20140013079A1 (en) Transaction processing using multiple protocol engines
EP1779609B1 (en) Integrated circuit and method for packet switching control
US6715055B1 (en) Apparatus and method for allocating buffer space
CN101447986A (zh) 具有分区的片上网络及其处理方法
US20070162559A1 (en) Protocol flow control
US7962676B2 (en) Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords
CN1464415A (zh) 一种多处理器系统
US20230244515A1 (en) Handling Interrupts from a Virtual Function in a System with a Multi-Die Reconfigurable Processor
US6976142B1 (en) Method and system to provide simultaneous access by multiple pipelines to a table

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

Granted publication date: 20080709

Termination date: 20210702

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