CN1191698C - 用于多线程数据包处理的千兆位数据包分配的方法和设备 - Google Patents

用于多线程数据包处理的千兆位数据包分配的方法和设备 Download PDF

Info

Publication number
CN1191698C
CN1191698C CNB008192065A CN00819206A CN1191698C CN 1191698 C CN1191698 C CN 1191698C CN B008192065 A CNB008192065 A CN B008192065A CN 00819206 A CN00819206 A CN 00819206A CN 1191698 C CN1191698 C CN 1191698C
Authority
CN
China
Prior art keywords
data
thread
port
data cell
serial number
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
CNB008192065A
Other languages
English (en)
Other versions
CN1437816A (zh
Inventor
G·沃尔里奇
D·伯恩斯坦因
M·J·阿迪莱塔
D·F·胡珀
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 CN1437816A publication Critical patent/CN1437816A/zh
Application granted granted Critical
Publication of CN1191698C publication Critical patent/CN1191698C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/102Packet switching elements characterised by the switching fabric construction using shared medium, e.g. bus or ring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • H04L49/352Gigabit ethernet switching [GBPS]

Abstract

一种网络处理器,其具有多个处理单元,每一个都支持访问一个接口中的共享资源的多个同步程序线程。数据包从高速端口分段获得,而且每个段被分配到一个程序线程。每个数据包可被分配给一个单独的线程、两个程序线程—一个用于头段处理另一条用于处理有效负载段—或用于数据包中不同的数据段的程序线程。就绪状态的专门输入和顺序号提供了在高速端口接收数据数所需要的帮助。专门的输入端被用于在每次循环的基础上监控来自高速端口的就绪标志。由分配的线程使用顺序号以维持数据包内的段排序,以及整个数据包向发送队列写操作的顺序。

Description

用于多线程数据包处理的千兆位数据包分配的方法和设备
技术领域
本发明通常涉及网络数据处理。
背景技术
诸如路由器之类的网络产品要求分组数据高速移动的单元,也就是,从进入的网络设备端口收集分组数据并将分组数据排队以转移至适当的转送设备端口。它们也要求处理分组数据的高速特殊控制器,也就是,分析数据并作出转送的决定。因为这些高速功能的实施通常包含ASIC或定制的设备的开发,所以这样的网络产品其灵活性被限制,而且因此会使其在对高速控制器的端口分配中显得非常严格。通常,分配每个控制器以不变的方式服务来自一个或更多给定端口的网络数据包。
发明内容
在本发明的一个方面,转送数据包括,将控制信息与从第一端口接收到的数据连接,以及使用相关的控制信息对数据排队以按照数据从第一端口接收到的相同顺序传送至第二端口。
附图说明
本发明的其它特征和优势将从以下与附图结合的描述中变得明显,其中:
图1是应用基于硬件的多线程处理器的通讯系统的框图;
图2是在图1的基于硬件的多线程处理器中应用的微引擎的框图;
图3是典型的线程任务分配的图解;
图4是图1中所示的I/O总线接口的框图;
图5是通过图4的I/O总线接口应用的总线接口单元的详细图;
图6A-6F是不同总线结构的控制和状态寄存器(CSR)的图解;
图7是描绘了两个千兆位以太网(“快”)端口与总线接口单元之间相互连接的详细图;
图8A-8C是分别对应RCV_RDY_CTL、RCV_RDY_HI和RCV_RDY_LO CSR寄存器格式的图解;
图9是接收线程以及在接收过程中它们与I/O总线接口相互作用的描绘图;
图10A和图10B是分别对应RCV_REQ FIFO和RCV_CTL_FIFO格式的图解;
图11A-11B是分别对应SOP_SEQx寄存器和ENQUEUE_SEQx寄存器格式的图解;
图12是快速端口接收过程的流程图;
图13A和图13B是描绘使用单线程模式的快速端口的接收过程部分的流程图;
图14A和图14B是描绘使用双线程(或头/体)模式的快速端口的接收过程部分的流程图;
图15A和图15B是描绘使用显性(分布式线程)模式的快速端口的接收过程部分的流程图;
图16是快速端口分组编队处理过程的流程图。
具体描述
参考图1,通讯系统10包括并行的、基于硬件的多线程处理器12。基于硬件的多线程处理器12与第一外围总线(所示为PCI总线)14、引用为I/O总线的第二外围总线以及存储器系统18相耦连。系统10对可被分解成并行的子任务或功能的任务来说特别有用。基于硬件的多线程处理器12包括多重微引擎22,每个微引擎带多重的可同时工作并可独立完成任务的硬件控制的程序线程。在所示的实施例中,有六个微引擎22a-22f,六个中的每一个微引擎就如以下将要完整描述的,能够处理四个程序线程。
基于硬件的多线程处理器12还包括处理器23,它可协助加载对其它基于硬件的多线程处理器12的资源的微码控制,并完成其它诸如处理协议、异常以及微引擎终使数据包获得更详细处理的数据包处理的额外支持之类的通用计算机类型功能。在实施例中,处理器23是StrongARM(ARM是英国ARM有限公司的商标)为核心基础的结构。处理器(或核心)23具有操作系统,处理器23可通过它调用功能以在微引擎22a-22f上操作。处理器23能使用任何支持的操作系统,较佳为实时操作系统。对于作为StrongARM结构应用的核心处理器,可使用诸如MicrosoftNT实时、VXWorks以及CUS——一种在互联网上供应的免费操作系统——之类的操作系统。
六个微引擎22a-22f,每个均用包括存储器系统18、PCI总线接口24和I/O总线接口28的共享资源操作。PCI总线接口为PCI总线14提供接口。I/O总线接口28负责对处理器12和I/O总线16的控制和接口。存储器系统18包括可通过SDRAM控制器26a被访问的同步动态随机存取存储器(SDRAM)18a,可使用SRAM控制器26b被访问的静态随机存取存储器(SRAM)18b,用于引导程序操作的非易失性示的FlashROM(快闪只读存储器))18c。SDRAM16a和SDRAM控制器26a通常用于处理大量的数据,例如,处理来自网络数据包的有效负载。SRAM18b和SRAM控制器26b在低等待时间的网络应用、快速访问任务——比如,访问查找表、处理器23的存储,以此类推的网络应用中使用。微引擎22a-22f能够执行SDRAM控制器26a或SRAM控制器18b的存储器访问指令。
基于硬件的多线程处理器12同诸如媒体访问控制器设备之类的网络设备接口,包括高速(或快速)设备31,比如千兆位以太网MAC、ATM设备或类似在I/O总线16上的设备。在所示的实施例中,高速设备是具有两个快速端口33a和33b的双重千兆位MAC设备。每个I/O总线16所附的网络设备可包括多个由处理器12服务的端口。其它诸如主机(未显示)之类可与PCI总线14相连接的设备也由处理器12服务。总的来说,作为网络处理器,处理器12可与任何类型的通讯设备或接收/发送大量数据的接口连接。起网络处理器作用的处理器12可从设备31接收分组数据的单元并如将要描述的,以并行的方式处理那些分组数据的单元。分组数据的单元可包括整个网络数据包(比如,以太网数据包)或这种数据包的部分。
处理器12的每个功能性单元与一个或更多内部总线相连接。内部总线包括将处理器23与存储控制器26a和26b以及与AMBA译码器36耦连的内部核心总线34(标为“AMBA”)。处理器12也包括将微引擎22a-22f与SRAM控制器26b耦连的专用总线38、AMBA译码器36以及F总线接口28。存储总线40将存储控制器26a和26b同总线接口24和28以及存储器系统18耦连。
参考图2,显示了22a-22f中一个典型的微引擎。微引擎22a包括存储微程序的控制存储器70。微程序通过中央处理器20加载。微引擎70还包括控制逻辑72。控制逻辑72包括指令解码器73和程序计数单元72a-72d。四个程序计数器保留在硬件中。微引擎22a也包括关联事件转换逻辑74。关联事件转换逻辑74从每一个共享资源(比如,SRAM26b、SDRAM26a或处理器核心20、控制和状态寄存器,以此类推)接收消息(比如,SEQ_#_事件_响应;FBI_事件_响应;SRAM_事件_响应;SDRAM_事件_响应;以及AMBA_事件_响应)。这些信息提供了请求的功能是否已完成的信息。基于请求的功能是否已由线程完成并发出完成的信号,线程需要等待完成的信号,而且如果线程是可操作的,则线程被列入可用线程的列表(未显示)。如先前提到的,微引擎22a能具有最多4个可用执行线路。
除了对执行线程本地化的事件信号,微引擎应用了全球化的信号状态。具备了信号状态之后,执行线程能够将信号状态广播至所有的微引擎22。微引擎中任何或何或所有的线程能转移至这些信号状态。这些信号状态可被用于确定资源的可用性或资源是否应该服务。
关联事件逻辑74具有对于四条线程的仲裁功能。在一实施例中,仲裁是一种轮流机制。然而,也可使用诸如优先权队列或加权公平队列之类的仲裁技术。微引擎22a也包括执行盒(EBOX)数据通道76,该通道包括算术逻辑单元(ALU)76a和通用寄存器(GPR)组76b。ALU76a除了移位功能外,还完成算术和逻辑功能。
微引擎22a还包括写转移外部寄存器文件78和读转移外部寄存器文件80。写转移寄存器文件78存储将要写入资源的数据。读转移寄存器文件80用于存储从资源返回的的数据。在数据到来之后或与数据到达同时,来自相应共享资源(比如,存储控制器26a、26b、或核心23)的事件信号将提供给关联事件仲裁器74,后者依次通知线程数据可用或已被发送。外部转移寄存器文件78和80都通过数据通道与EBOX76连接。在所描述的实现中,每个寄存器文件包括64个寄存器。
微引擎线程的功能性由特定用户在每个微引擎控制存储器70中的应用所加载(通过核心处理器)的微码来决定。参考图3,显示了典型的线程任务分配90。通常,分配一个微引擎线程作为接收调度器92,而分配另一个作为发送调度器94。构造多个线程作为接收处理线程96和发送处理(或“填充”)线程98。其它的线程任务分配包括发送仲裁器100和一个或更多核心通讯线程102。一旦运行,线程将独立地完成其功能。
接收调度器线程92将数据包分配给接收处理线程96。举例来说,在网桥/路由器的分组转送应用中,接收处理线程分析数据包的表头并基于数据包表头信息完成查表。一旦接收处理线程或多个线程96已经处理了数据包,它发送作为将进一步被核心23处理的异常的数据包(比如,转送的信息不能在查找表中找到而核心处理器又必须获取它),或者将数据包存入SDRAM并通过在由表头/查找指示的发送(转送口)相关的发送队列内放置对该数据包的数据包连接描述符,将数据包排入发送队列。传送队列被存入SRAM。发送仲裁器线程100赋予发送队列优先权,且发送调度器线程94将数据包分配给发送处理线程,后者发送数据包至转送口,该转送口在接收过程中由表头/查找信息表示。
接收处理线程96可专门用于服务特定端口或可通过接收调度器线程92动态分配给端口。对于某些系统的构造,专用的分配较理想。例如,如果端口的号码与接收处理线程96的号码相同,那么它在以一对一的专用分配额方式将接收处理线程分配到端口的过程中不仅有效而且非常实用。在其它的系统构造中,动态分配可对系统资源更加有效的使用。
接收调度器线程92维持它执行的微引擎的GPR76b中的调度信息104。调度表信息104包括线程性能信息106、端口至线程的分配(列表)108和“线路忙”跟踪信息110。最小限度,线程性能信息通知接收调度器线程关于其它线程为何种类型的任务配置,比如,哪些线程起接收处理线程的作用。另外,它可向接收调度器传达其它适于特殊端口服务的性能。比如,可配置一个接收处理线程以支持某种协议、或特殊的一个端口或多个端口。有效接收处理线程已被接收调度器线程分配的端口的当前列表保存在线程至端口的分配列单108中。线路忙碌掩码寄存器110指示了哪些线程有效地为一个端口服务。接收调度器在选择分配给需要可用分组数据服务的端口的线程中,使用了该调度表的所有信息,以下将会进一步地详细描述。
参考图4,I/O总线接口28包括与入队/出队引擎接口122和总线接口单元124耦连的共享资源120。总线接口单元124包括与就绪总线128相连的就绪总线控制器126和用于连接一部分被称为F总线132的I/O总线的F总线控制器130。合起来说,就绪总线128与F总线132组成了I/O总线16(图1)的信号。资源120除了CSR138、一个高速暂存存储器140和一个散列单元142以外,还包括两个FIFO(先入先出)、一个发送FIFO134和一个接收FIFO136。F总线132转移设备31端口和I/O总线接口28之间的数据。就绪总线128是完成几项功能的8位总线。它被用于从设备31读取有关数据可用性的控制信息,比如,以就绪状态标志的形式。它还向设备31提供流程控制信息并可用于与另外一个同F总线132相连的网络处理器12进行通讯。总线128和132都通过CSR138被微引擎22访问。CSR138用于总线配置、访问总线接口单元124和在线程间发送信号。它们也包括将要描述的几个计数器和线程状态寄存器。CSR138被微引擎22和核心23访问。接收FIFO(RFIFO)136包括保留从F总线132接收的数据的数据缓冲器,它通过微引擎22读出。发送FIFO(TFIFO)134包括保留将要被发送至F总线132的数据的数据缓冲器,它通过微引擎22写入。高速暂存存储器140被核心23和微引擎22访问,并支持多种操作,包括读操作和写操作,以及位测试、位测试/清零和增量操作。散列单元142产生48位或64位数据的散列索引,并在查找操作过程中被微引擎22访问。
处理器23和22当访问资源120的其中一个时,向入队/出队引擎接口122发出命令。入队/出队引擎接口122将命令放入队列(未显示),仲裁服务哪些命令,并移动资源120、核心23和微引擎22之间的数据。除了为来自核心23和微引擎22的服务请求之外,入队/出队引擎122还为来自将控制信息转移至微引擎读转移寄存器22的服务请求之外,入队/出队引擎122还为来自将控制信息转移至微引擎读转移寄存器80中寄存器的就绪总线128的服务请求。
当线程向资源120发出请求时,指令被驱动至内部指令总线150之上并被放入入队/出队引擎接口122内的队列中。与接收/读取相联系的指令(诸如读取CSR之类的指令)被写入“入队”指令队列。
CSR138包括以下类型的寄存器:F总线接收和发送寄存器;F总线和就绪总线配置寄存器;就绪总线控制寄存器;散列单元配置寄存器;中断寄存器;和包括线程状态寄存器的几个杂项寄存器。那些和接收过程有关的寄存器将更详细地描述。
中断/信号寄存器包括用于线程间信令的INTER_THD_SIG寄存器。任何微引擎22或核心23内的线路能够将线程号写入该寄存器以发出线程间事件的信号。
图5中显示了F总线控制器130和就绪总线控制器126的更详细情况。就绪总线控制器126包括从MAC设备31取回MAC设备状态信息并通过就绪总线接口逻辑161经就绪总线128施加对MAC设备的流程控制的程控顺序器160。F总线控制器130包括用于从设备31转移出数据或将数据转移进设备31的F总线接口逻辑162,该接口逻辑162由发送状态机(TSM)164和接收状态机(RSM)166控制。在此处的实施例中,F总线132可配置成双向64位的总线或两条专用的32位总线。在单向的32位结构中,每个状态机有它自己的32位总线。在双向的结构中,总线的所属权通过仲裁确立。相应地,F总线控制器130还包括选择哪个状态机拥有F总线132的总线仲裁器168。
在图6A-6F中显示了一些用于编程和控制就绪总线128和F总线132以接收处理的相关CSR。参考图6A,RDYBUS_TEMPLATE_PROGx寄存器170被用于存储就绪总线定序器的指令。这些32位寄存器170a、170b和170c中的每个寄存器均包括四个8位指令字段172。参考图6B,RCV_RDY_CTL寄存器174规定了接收状态机166的工作情况。格式如下:保留字段(位31:15)174a;快速端口模式字段(位14:13)174b,它如将要描述的,规定了快速端口线程模式;自动入队保护窗口字段(位12:10)174c,它规定了由就绪总线定序器使用的自动入队保护窗口,以防止在自动入队操作(将信息压入那些寄存器)将要开始时接收调度器访问它的读转移寄存器;自动出队启动(位9)174d,它被用于启动接收就绪标志的自动入队;另一个保留字段(位8)174e;自动入队目标字段(位7:6)174f,用于规定自动入队操作的目标寄存器;信号线程启动字段(位5)174g,当被置位时表示线程在自动入队操作之后被收到信号;接收调度器线程ID(位4:0)174h,它规定了已被配置为接收调度器的微引擎线程的ID。
参考图6C,REC_FASTPORT_CTL寄存器176与从诸如端口33a和33b之类的快速端口接收分组数据有关。如将要描述的,它启动接收线程察看这两个快速端口的表头和主体线程分配的当前分配。它包括以下的字段:保留字段(位31:20)176a;FP2_HDR_THD_TD字段(位19:15)176b,它规定了快速端口2表头接收(处理)线程的ID;FP2_BODY_THD_ID字段(位14:10)176c,规定快速端口2主体接收处理线程的ID;FP1_HDR_THD_ID字段(位9:5)176d,规定快速端口1表头接收处理线程的ID;以及FP1_BODY_THD_ID字段(位4:0)176e,规定快速端口1主体处理线程ID。RSM166使用这些字段所采用的方式将在以后详细描述。
虽然没有详细描述,其它总线寄存器包括如下的:RDYBUS_TEMPLATE_CTL寄存器178(图6D),它保持就绪总线和F总线控制器的控制信息,比如,它启动就绪总线定序器;RDYBUS_SYNCH_COUNT_DEFAULT寄存器180(图6E),它规定了就绪总线定序器的程序周期率;以及FP_FASTPORT_CTL寄存器182(图6F),它如将要描述的,规定了RSM166在上一个数据转移与下一个快速接收状态的采样之间必须等待多少个F总线时钟周期。
参考图7,MAC设备31提供了表示相关传送FIFO204或接收FIFO206中的数据量是否已达到某个阈级的发送状态标志200和接收状态标志202。就绪总线定序器160定时地轮询就绪标志(在通过标志选择208选择接收就绪标志202或发送就绪标志200之后)并通过在就绪总线数据线209上转移标志数据,将它们放入适当的一个CSR138中。在本该实施例中,就绪总线包括8条将标志数据从每个端口转移至F总线接口单元124的数据线。如果就绪总线定序器160被编程分别执行接收和发送就绪标志的读取指令,写入标志数据的CSR就被定义为接收就绪标志的RCV_RDY_HI/LO寄存器210和发送就绪标志的XMIT_RDY_HI/LO寄存器212。
当就绪总线定序器用适当的指令它询问MAC接收就绪标志的适当指令编程时,它从MAC设备或指令中规定的设备读取接收就绪标志并将标志放入RCV_RDY_HI寄存器210a和RCV_RDY_LO寄存器210b中,合起来即,RCV_RDY寄存器210。这些寄存器中的每一位对应I/O总线上不同的设备端口。
仍然如图中所示,总线接口单元124还支持快速MAC设备31的两个快速端口的两个快速端口接收就绪标志管脚FAST_RX1 214a和FAST_RX2 214b。这些快速端口接收就绪标志管脚由RSM166直接读取并被放入RCV_RDY_CNT寄存器216。RCV_RDY_CNT寄存器216是几个被接收调度器线程使用以确定如何发出接收请求的216a;位27被定义为就绪总线主控字段216b并被用于表示就绪总线128被配置成主控字段还是从动字段;对应位26的字段216c提供了流程控制信息;位25和24分别对应FRDY2字段216d和FRDY1字段216e。FRDY2 216d和FRDY1 216e分别用于存储FAST_RX2管脚214b和FAST_RX1管脚214a的值,都通过RSM166的每个F总线时钟周期来取样;位23:16对应保留字段216f;接收请求计数字段(位15:8)216g规定了接收请求计数,它在RSM166完成接收请求并且数据已在RFIFO136中之后增1;接收就绪计数字段(位7:0)216h规定了接收就绪计数,它是一个8位的计数器,每次就绪总线定序器160将就绪总线寄存器——RCV_RDY_CNT寄存器216、RCV_RDY_LO寄存器210b和RCV_RDY_HI寄存器210a上的信息写入接收调度器读转移寄存器中时,它就增1。
对于读取就绪总线的寄存器有两种技术:“自动入队”和轮询。自动入队指令可在接收过程(接收自动入队)或发送过程(发送自动入队)中由就绪总线定序器160来执行。轮询要求,微引擎线路定时地对I/O总线接口28发出读引导。
接收自动入队操作完成若干功能。它将RCV_RDY_CNT寄存器216中的接收就绪计数器增1。如果通过RCV_RDY_CTL寄存器174启动,它可自动将RCV_RDY_CNT 216、RCV_RDY_LO和RCV_RDY_HI寄存器210b和210a上的信息写入接收调度器读转移寄存器80(图2)并当接收自动入队操作完成后向接收调度器线程92发出信号(通过关联事件信号)。
就绪总线定序器160定时并与发生在处理器12中的其它事件异步地轮询MACFIFO接收就绪标志。理想地,轮询MAC FIFO接收就绪标志的速率大于数据到达MAC设备端口的最大速率。因此,接收调度器线程92必须确定由就绪总线定序器160读取的MAC FIFO接收就绪标志是不是新的,或它们是否已被读取了。每次接收自动入队的指令执行时,该指令就将RCV_RDY_CNT寄存器216中的接收就绪计数器增1。RCV_RDY_CNT寄存器216可通过接收调度器线程92被用于确定规定的标志状态是否必须估算或者因为已发出接收请求同时端口正被服务,它们是否可以被忽略。例如,如果设置了用于千兆位的以太网端口的FIFO阈值,使得当64字节的数据在MAC接收FIFO 206中时发出了接收就绪标志,则直到下一个64字节到达5120ns之后标志的状态才变化。如果定序器160被编程在每5120ns阶段中采集四次标志,那么下面三个通过就绪总线定序器160采集的就绪标志可被忽略。
当接收就绪计数器被用于监测接收就绪标志的新鲜性时,有这个可能,当接收就绪标志提供新的状态时,接收就绪标志被忽略。对于就绪标志新鲜性更准确的确定,可使用接收请求计数器。每次完成接收请求并且接收控制信息被压入RCV_CNTL寄存器232之中时,RSM166将接收请求计数器增1。在就绪总线定序器第一次执行每个程序循环的接收就绪指令时,在RCV_RDY_CNT寄存器中记录了计数。接收调度器线程92能使用该计数以跟踪接收状态机已完成了多少次请求。因为接收调度器线程发出了指令,它能够维持它所提交的一个接收请求列表以及与每一个这样的请求相关的一列端口。
参考图8B和8C,寄存器RCV_RDY_HI 210a和RCV_RDY_LO 210b分别具有对应每一个端口的标志位217a和217b。
参考图9,接收调度器线程92以保证RSM166总是忙碌的速率执行它的任务,也就是,总有接收请求等待被RSM166处理。以下为几个由接收调度器92完成的任务。接收调度器92通过分别读取RCV_RDY_HI、RCV_RDY_LO和RCV_RDY_CNT寄存器210a、210b和216确定哪个端口需要服务。接收调度器92还通过使用上述RCV_RDY_CNT中的接收请求计数或接收就绪计数来决定哪个接收就绪标志是新的。它通过读取线程的已完成状态CSR240来跟踪其它微引擎线程的线程处理状态。接收调度器线程92经就绪总线对在F总线132对面的转移器进行初始化,同时接收状态机器166在F总线132上完成了准确的读转移。接收调度器92通过两个FBI CSR138:一个RCV_REQ寄存器230和RCV_CNTL寄存器232与接收状态机器166接口。RCV_REQ寄存器230指导接收状态机该怎样从F总线132接收数据。
仍旧参考图9,显示了对F总线接收转移器进行初始化的过程。已从RCV_RDY_HI/LO寄存器210a和210b接收了就绪状态信息,以及从线程已完成寄存器240接收了线程的可用性(交互动作1,由箭头标志“1”表示),接收调度器线程92判定在RCV_REQ FIFO 230中是否有给另一个接收请求的空间。如果它判定RCV_REQFIFO 230有接收一个请求的空间,则接收调度器线程92通过压入数据将接收请求写入RCV_REQ FIFO 230中(交互动作2)。RSM166处理RCV_REQ FIFO 230中的请求(交互动作3)。RSM166通过将请求的数据移入RFIFO 136(交互动作4),向RCV_CTL FIFO232写入相关的控制信息(交互动作5),以及向接收请求中规定的接收处理线程96发出开始接收的信号事件(交互动件6)来响应请求。RFIFO 136包括16个单元241,每个单元用于存储64字节的单元或在此处称为MAC数据包(“MPKT”)的数据段。RSM166从大小为一个或两个RFIFO单元的分段MAC端口读取数据包。规定的接收处理线程96通过从RCV_CTL寄存器232读取控制信息(交互动件7)来响应信号事件。它使用控制信息在其它数据处于RFIFO 136中的信息中作决定。接收处理线程96将取数据包。规定的接收处理线程96通过从RCV_CTL寄存器232读取控制信息(交互动件7)来响应信号事件。它使用控制信息在其它数据处于RFIFO 136中的信息中作决定。接收处理线程96将从四倍字长界限上的RFIFO 136读进其读转移寄存器或直接将数据移入SDRAM(交互动作8)。
RCV_REQ寄存器230被用来对F总线上的接收转移进行初始化,并被映射至由微引擎写操作的双入口FIFO。I/O总线接口28向接收调度器线程发出信号,表示RCV_REQ FIFO 236具有另一个接收请求的可用空间,并且上一个发出的请求已被存入RCV_REQ寄存器230中。
参考图10A,RCV_REQ FIFO 230包括两个入口231。每个入口231的格式如下。前两位对应保留字段230a。位29是规定完成该请求的F总线访问的最大数目的FA字段230b。THSG字段(位28:27)230c是两位线程消息字段,它使调度器线程通过就绪状态机传送消息至分配的接收线程,该就绪状态机器将此消息复制给RCV_CNTL寄存器。在状态信息转移至以下的EOP MPKT的情况中,使用SL字段230d(位26)。它表示在32位F总线的配置中需要两根还是一根32位总线访问。E1字段230e(位21:18)和E2字段(位25:22)230f规定了接收转移数据的RFIFO单元。如果只接收到一个MPKT,它就被放入由E1字段表示的单元中。如果接收到两个MPKT,则两个MPKT被放入由E2字段表示的RFIFO单元中。FS字段(位17:16)230g规定了是使用快速端口模式还是慢速端口模式,即,请求直接到快速端口还是到慢速端口。快速端口模式设置向RSM表示,顺序号与请求相关,以及顺序号将处理推测请求,这些将在以后详细描述。NFE字段(位15)230h规定了被填充的RFIFO单元的数目(比如,一个或两个单元)。不管快速就绪标志管脚的状态,只有当选择了快速端口模式并向RSM表示它应该处理请求时,才使用IGFR字段(位13)230i。SIGRS字段(位11)230j,如果被设置了,则表示,只要接收请求一完成,就要向接收调度器发出信号。TID字段(位10:6)230k规定了在处理接收请求之后通知或向它发出信号的接收线程。因此,如果位11被置位,在RCV_REQ入口可从RCV_REQ FIFO除去之前,它必须被读两次,一次被接收线程读一次被接收调度器线程读。RM字段(位5:3)2301规定了已被接收调度表选中的MAC设备的ID。最后一个,RP字段(位2:0)230m规定了在RM字段2301中规定的MAC设备的哪个端口被选中。
RSM166读取RCV_REQ寄存器的入口231以决定它应该怎样从F总线132接收数据,即,信号的发送该怎样在F总线上完成,数据应该被放入RFIFO中,而微引擎在接收到数据后应该收到信号。RSM166在RCV_REQ FIFO 230中搜索有效的接收请求。它选择了RM字段中识别的MAC设备并通过施加适当的控制信号选择MAC中规定的端口。它随后开始在F总线数据线上接收来自MAC设备的数据。接收状态机总是准备在F总线上如接收请求中规定的从MAC设备读取8个或9个四倍字长的数据。如果MAC设备发出了EOP信号,RSM166就早一点终止接收(在完成8个或9个访问之前)。RSM166计算用于每个请求而接收的总字节并报告RCV_CNTL寄存器232中值。如果收到EOP,RSM166就确定在上一次接收数据的周期中有效字节的数目。
RCV_CNTL寄存器232映射到通过接收状态机写、通过微引擎线路读的四入口FIFO(在此处称为RCV_CNTL_FIFO 232)。I/O总线接口28当有效入口到达RCV_CNTL FIFO顶部时向分配的线程发出信号。当微引擎线路读取RCV_CNTL寄存器时,数据从FIFO被弹出。如果SIGRS字段230i在RCV_REQ寄存器230中被设置,除了向TID字段230k中规定的线程发出信号以外,也向RCV_CNTL寄存器232中规定的接收调度器线程92发出了信号。在这种情况下,RCV_CNTL寄存器232中的数据在接收请求数据从RCV_CNTL FIFO 232退出前被读取两次,并且向下一个线程发出信号。只要FIFO不满,接收状态机就会向RCV_CNTL寄存器232写数据。如果RCV_CNTL FIFO 232满了,接收状态机便拖延并停止接受任何更多的请求。
参考图10B,RCV_CNTL FIFO 232向接收信号的线程(也就是,在TID中规定的线路)提供指令处理数据。如以上所表示的,RCV_CNTL FIFO包括4个入口233。RCV_CNTL FIFO入口233的格式如下:THMSG字段(31:30)23a包括由RSM从RCV_REQ寄存器[28:27]复制的2位消息。MACPORT/THD字段(位29:24)232b规定了MAC端口号或接受线程的ID,这将在以后进行详细地描述。SOP SEQ字段(23:20)232c用于快速端口,而且如果SOP(分组开始)在接受数据转移的过程中被加载,则该字段表示作为SOP顺序号的分组顺序号,如果SOP没有被加载,则该字段表示MPKT顺序号。RF字段232d和RERR字段232e(分别为位19和18)都传送接受错误信息。SE字段232f(17:14)和FE字段232g(13:10)都分别是RCV_REQ的E2和E1字段的复制品。EF字段(位9)232h规定了由接收请求填充的RFIFO单元的数目。SN字段(位8)232i用于快速端口并表示SOP_SEQ字段232c中规定的顺序号与快速端口1相关还是与快速端口2相关。如果RFIFO单元包含在EOP MPKT中,则VLD BYTES字段(7:2)232j规定了该单元中有效
可使用CSR指令通过线程对线程完成寄存器240进行读和写。使用这样的寄存器,接收调度器线程能决定哪个RFIFO单元未被使用。THREAD_DONE CSR240支持用于每个微引擎线程的两位消息。分配的接受线程可向该寄存器写入两位的消息,表示它已完成任务。每次消息被写入THREAD_DONE寄存器,当前的消息就与新的消息逻辑或。THREAD_DONE寄存器中的位值通过写“1”而清除,因此可通过向THREAD_DONE寄存器写入读回的数据使调度器可清除消息。两位状态字段的定义由软件确定。
分配的接收处理线程无论状态在何时变化都将它们的状态写入THREAD_DONE寄存器。当接收调度器读取THREAD_DONE寄存器时,它可查看返回值以决定每个线程的状态并更新它的线程/端口分配列表。
快速端口的包速率(即,千兆位端口)是这样的,接收状态机从单一端口读取MPKT的速率是这样快,以至于接收线程不能够在接收状态机从相同的端口带来另一个MPKT之前处理MPKT。也就是说,快速端口可需要使用一些RFIFO单元并并行地接收线程以维持全线路速率。一个MPKT需要的处理量可包括表头处理(即,表头修改,向前搜索)或简单地将数据包体碎片移向存储器。
快速数据包以及,一些情况中的快速MPKT(例如,构成从快速端口接收的数据包的MPKT)可并行地并由不同的线程处理,因此需要对给定的端口维持数据包内的顺序和数据包间的顺序。从而,为了维持从快速端口接收的数据包的包数据顺序,网络处理器12使用一组用于高速端口的顺序号。每组顺序号提供网络数据包的顺序号、MPKT顺序号和入队的顺序号。这些顺序号以4位计数器在I/O总线接口28内维持并在它们到达十五时自动翻转至零。
顺序号在F总线接收寄存器(CSR)中保持。参考图11A,顺序号寄存器270包括具有SOP_SEQ1字段273的SOP_SEQ1寄存器272和具有SOP_SEQ2字段275的SOP_SEQ2寄存器274。这些字段存储它们相应的第一端口的SOP顺序号并通过RSM增1。参考图11B,入队顺序号寄存器276包括具有存储快速端口1入队顺序号的ENQUEUE_SEQ1字段279的ENQUEUE_SEQ1寄存器278,和包括存储快速端口2入队SOP顺序号的ENQUEUE_SEQ2字段281的ENQUEUE_SEQ2寄存器280。入队顺序号通过接收处理线程增1。
在SOP_SEQ1寄存器(快速端口1)或SOP_SEQ2寄存器(快速端口2)中的网络数据包顺序号被放入RCV_CNTL寄存器并同时被增1。接收状态机器以一定的方式对数据包顺序号增1,该方式允许接收处理线程不仅仅跟踪网络数据包的序列络数据包顺序号被放入RCV_CNTL寄存器并同时被增1。接收状态机器以一定的方式对数据包顺序号增1,该方式允许接收处理线程不仅仅跟踪网络数据包的序列还跟踪单独MPKT的序列。如果SOP信号在接收请求中被检测到,则网络数据包顺序号在网络数据包的基础上提供顺序号(下文中称为SOP顺序号)。如果在接收请求中未检测到SOP信号,那么数据包顺序号以MPKT为基础(在下文中,称为MPKT顺序号)。由于RCV_CNTL寄存器包含数据包顺序号和SOP状态,所以接收线路可确定数据包顺序号的类型。
每个快速端口的SOP和MPKT顺序号以4位计数器实现。SOP顺序号计数器在每次检测到SOP时增1。MPKT顺序号计数器无论SOP信号在何时加载都会接收SOP顺序号,当未检测到SOP信号时只要每收到请求就增1。
由接收处理线程,使用入队顺序号确定是否轮到这些顺序号将完整的网络数据包放至传送队列上。当接收到完整的网络数据包时,接收处理线程从适当的入列顺序号寄存器读取入队顺序号。如果入队顺序号与分配给数据包的SOP顺序号匹配,那么接收处理线程能将数据包放到发送队列。如果入队顺序号不匹配,那么接收处理线程等待“顺序号变化”信号事件发生。当事件发生时,接收处理线程再次读取入队顺序号并核对其是否匹配。如果匹配发生,则数据包可被放到发送队列。
在数据包放到发送队列之后,接收处理线程将入队顺序号增1。入队顺序号通过向ENQUEUE_SEQ1或ENQUEUE_SEQ2寄存器写入来增1。接收处理线程可选择将它的处理状态写入THREAD_DONE寄存器,以及同时将入队顺序号增1。这可用向附加CSR、THREAD_DONE_INCR1寄存器或THREAD_DONE_INCR2寄存器(未显示)的单个写指令来完成。
接收调度器线程控制它发出接收请求的速率。它发出不超过端口所需求的一些接收请求,但足够防止端口的接收FIFO的溢出。
当使用诸如10/100BaseT以太网端口之类的较慢端口时,接收调度器线程读取用于多个端口的MAC接收FIFO就绪标志,确定哪个端口有数据供应,并在知道数据在MAC接收FIFO中可供使用的基础上发出接收的请求。由于它每次都读取多个的接收FIFO就绪标志,因此它能够在必须再次读取标志之前发出多个接收请求。因为快速端口以远高于缓慢端口的数据速率操作,而且与某些任务相关的等待时间,(比如,从端口或从RCV_RDY_HI/LO寄存器读取接收就绪标志,向RCV_REQ写入接收请求)可远大于数据包到达的速率,因此单个MAC端口必须服务的速率不能只凭借当获知数据已在设备端口的接收FIFO中可供使用时发出接收请求来维持。
因此,接收调度器线程使用高速端口的推测请求。也就是说,接收调度器线程在推测端口的接收FIFO中有数据可供使用的基础上向端口发出多个接收请求。在RSM166处理每个接收请求的时候,它判定在端口是否真的有数据供应。在这个判定的基础上,RSM166处理或者取消该请求。
RSM166通过读取快速接收就绪管脚(图7的FAST_RX1 214a和FAST_RX2214b)来确定在两个快速端口之中是否有数据供应。这些管脚214a和214b提供了对它们各自MAC端口的接收FIFO就绪标志的直接连接。当到达接收FIFO饱和阈值级或已收到完成的数据包时,MAC端口加载这些信号。
如果快速就绪管脚没有被加载,RSM166取消待处理的请求并向RCV_CNTL寄存器的消息字段中写入取消消息。它随后向指定的接收处理线程发出信号。接收处理线程被编程以读取RCV_CNTL寄存器,准确地译出取消消息并向接收调度器线程表示它可供应给其它的任务。
两个快速就绪管脚的状态在RCV_RDY_CNT寄存器216(未在图8A中显示)的FRDY2字段216d(端口2)和FRDY1字段216e(端口1)表示。接收调度器线程从RCV_RDY_CNT寄存器216定时地读取快速就绪标志字段216d和216e,确定它何时应该收到请求。它发出足够的接收请求以覆盖可能在从上一次它读取快速就绪标志以来已到达MAC端口33的数据。
接收状态机166支持三种快速端口模式,该模式确定接收处理线程该怎样分配给RFIFO中的处理分组数据。这些快速端口模式被称为单线程模式、头/主体线程模式和显性线程模式。当选择了一个模式时,网络处理器分析以下的参数:处理每个接收请求的线程的可用性;接收线程的执行时间。模式需要了解一个网络数据在何处结束以及下一个数据包在哪里开始。为此,它们依靠对应于施加SOP的网络数据包的开始和对应于施加EOP的网络数据包的结束。回到图6B,RCV_RDY_CTL寄存器176的快速端口模式字段174b将三种模式定义为单线程‘00’、头/主体‘01’和显性‘10’。
单线程模式当使用推测请求时将单个的线程分配给每个数据包。如果在RCV_RDY_CTL寄存器176中规定了单线程模式,且设置了快速端口模式(RCV_REQ[17:16]),那么RSM166以以下的方式完成。如果RSM166在MPKT的接收数据转移中检测到SOP,那么它向在RCV_REQ寄存器230中规定的线程发出信号。也就是说,它将规定的线程的线程ID写入TID字段230k。它还保存在REC_FASTPORT_CTL寄存器176的适当头字段中的线程ID。如果没有检测到SOP,那么RSM166忽略RCV_REQ寄存器中规定的线程ID并用信号通知在REC_FASTPORT_CTL寄存器的头字段中规定的线程。RSM166将未使用的线程ID写入RCV_CNTL寄存器的MACPORT/THD字段232b。未使用的ID被返回到接收调度器线程,因此接收调度器线程能够更新它的线程可用性的列表。为了返回线程ID,当完成接收请求且接收线程将不使用的线程ID通过使用线程间通讯传递给接收调度器时,RSM166发出信号通知接收线程。还有一种选择,接收调度器可以要求在RSM完成接收请求之后,向它以及向接收处理线程发出信号。在这种情况下,RCV_CNTL必须在数据从RCV_CNTL FIFO去除前被读取两次。在多数情况下,接收处理线程读取它一次,而接收调度器线程也读取它一次。如果没有完成两次读操作,则RSM停止。在另一种选择中,当接收请求完成且接收处理线程通过使用线程间信号寄存器将不使用的线程返回给接收调度器线程时,RSM向接收处理线程发出信号,其中的线程间信号寄存器,如同线程完成寄存器一样,对每个线程有一个位且由接收调度器定时地读取以确定线程的可用性。它将那个寄存器中不使用的线程ID所对应的位置位,而该寄存器随后由接收调度器线程读取。
在头/主体模式中,指定两条线程处理网络数据包中的MPKT。第一条线程起头线程的作用并负责处理表头以决定怎样转送数据包。第二条线程是主体线路,负责将数据包的剩余数据移至SDRAM。当主体线程完成它的任务时,它使用在线程间的信令来通知头线程数据包的主体在何处。头线程随后将数据包放入发送队列中。
RSM166以以下的方式支持头线程和主体线程。如果RSM166检测到SOP,它就向RCV_REQ寄存器中规定的线程发出信号并在REC_FASTPORT_CTL寄存器176的头字段中保存线程号。当它处理下一个请求时,它向RCV_REQ寄存器230中规定的线程发出信号并在REC_FAST_PORT_CTL寄存器176的主体字段中保存线程号。从这一点以后,RSM忽略存在于RCV_REQ寄存器230中的线程ID并向REC_FASTPORT_CTL寄存器176中规定的体线程发出信号。RSM将未使用的线程ID写入RCV_CNTL寄存器的MACPORT/THD字段232b中。如同用单线程模式一样,未使用的线程ID被返回到接收调度器线程,这样接收调度器线程知道,该线程可用于处理。分配的线程发出信号,它已完成,异常是列中的最后一个线程,它收到的为头线程的线程ID。另外,每个线程为下一个分配的线程提供缓冲存储器的指针,由此保证给定的网络数据包的MPKT以它们到来的顺序在分组存储器中排列。一旦分配给EOP MPKT的线程已完成处理并通过先前MPKT的线程发出信号,它便会通知头线程,整个数据包可被排入发送队列中,也就是说,只要入队顺序号跟由头线程处理的MPKT的SOP顺序号匹配。提供MPKT顺序号以保证MPKT以正确的顺序排队。
参考图12,显示了选中的快速端口的快速端口接收处理的总览图300。接收调度器线程选择或分配可用线程给端口302并发出规定分配线程的接收请求304。如虚线所示,在显性模式中,调度器选中第二线程作为下一个接收请求中分配的线程并在将要写入的RFIFO存储单元所对应指定的存储位置中存储该第二条线程306。RSM检查快速就绪标志的快速端口308。RSM确定其是否被加载310。如果被加载,则RSM处理接收请求312,并通过转移请求的MPKT至由请求指示的RFIFO存储单元中来响应请求314,并完成步骤:将RVC_CNTL FIFO入口(根据在RCV_RDY_CTL寄存器174中规定的快速端口模式)登记到RCV_CNTL FIFO同时发出信号通知分配的线程(任何其它的线程,比如由请求规定的调度器)316。一旦这些步骤完成,分配的接收处理线程处理由RCV_CNTL寄存器中的控制信息和快速端口模式所指示的MPKT 318。如果就绪标志未被加载,它判定在RCV_REQ入口中是否设置了IGFR字段319。如果未被设置,RSM取消请求并返回线程的ID320。如果设置了,RSM继续请求的处理。
参考图13A,316(图12)的RCV_CNTL入口登记和线程信令,对于单线程模式,包括如下。RSM判定在接收数据的周期中SOP是否被加载330。如果是的话,它便将SOP顺序号放入SOP_SEQ字段中332,将SOP_SEQx计数器增1 334,置位SOP位336,向TID字段写入规定的线程ID 338,同时将它保存在适当的快速端口的REC_FASTPORT_CTL寄存器头字段中340。它向规定的线程发出信号342。如果SOP未被加载,RSM将MPKT顺序号写入顺序号字段346,并将那个号增1 348。它将TID字段设置为在REC_FASTPORT_CTL寄存器的头字段中表示的线程的ID(也就是,曾是SOP MPKT的最后一个MPKT的TID)350。它同样将未用的接收处理线程,即由接收请求规定的线程,写入MACPORT/THD字段352。它发出信号通知分配的线程和调度器读取寄存器,分配的线程因此知道怎样处理数据包,而接收调度器线程因此知道规定的线程不被使用从而可提供给新的分配。未用的接收处理线程,即由接收请求规定的线路,写入MACPORT/THD字段352。它发出信号通知分配的线程和调度器读取寄存器,分配的线程因此知道怎样处理数据包,而接收调度器线程因此知道规定的线程不被使用从而可提供给新的分配。
参考图13B,单线程模式MPKT的处理(图12的318)如下。如果分配的处理线程确定MPKT作为SOP MPKT(如由RCV_CNTL寄存器所表示的)360,分配的处理线程分析表头362并完成查找(基于表头和从散列表取回的散列信息)364。在将存储在SDRAM转送表中的信息和MPKT中的剩余信息(比如,有效负载)转送到数据包缓存器中的临时队列的同时,它移动所有处理的表头366。如果它判定MPKT是EOP 368,则分配的线程认为,数据包准备好进入由转送信息表示的转送端口的发送队列。入队处理将参考图18进行描述。如果MPKT不是SOP,则处理线程将负载数据转移到缓存器中(在SDRAM中)372,随后判定它是否为EOP 374。如果它是EOP,则处理线程准备将数据包入队376。如果MPKT不是EOP,则处理线程发出信号,它已完成(通过信号间方法,比如,写线程完成寄存器)378。
参考图14A,线程的RCV_CNTL入口登记和信令316,对于双线程(头/主体)模式包括如下。RSM判定,在接收数据的周期中SOP是否被加载380。如果是,将SOP顺序号放入SOP_SEQx字段中382,将SOP_SEQx计数器增1 384,将规定的线程ID写入TID字段386,同时将其保存在适当的快速端口的REC_FASTPORT_CTL寄存器表头字段中388。它向规定的线程发出信号390。如果SOP未被加载,RSM将MPKT顺序号写入顺序号字段392,并将该号增1394。它判定最后一个请求是否给SOP MPKT 396。如果是的话,它就向规定的线程发出信号398,在REC_FASTPORT_CTL寄存器的适当TID字段和主体字段中设置该线程的ID 400。它也指示在MACPORT/THD字段中头线程的ID(这样,当完整的数据包被接收并被处理后,头线程可发出信号)402。如果最后的请求不是SOPMPKT,则RSM向主体字段中规定的线路发出信号404,将该ID写入TID字段406并规定MACPORT/THD字段中接收请求的未使用线程的ID(返回到可用的接收处理线程池(pool)中408。它也向调度器发出信号410,由此,除了被信号通知的接收处理线程,调度器也可在其从RCV_CNTL FIFO中移去之前读取REC_CNTL寄存器入口。
参考图14B,MPKT在双线程模式中由“分配”的线程处理如下。如果线路判定MPKT是SOP MPKT 412,则它就以上述相同的方式处理头数据和负载数据414(即,分析表头,等等)。如果它判定正在处理的MPKT是EOP,即MPKT是最小尺寸的网络数据包416,则它就认为MPKT准备好入列418。如果MPKT不是数据包中的最后一个MPKT,则线程(是头线程)等待EOP的通知420。一旦它接收到这样的通知422,数据包就准备好被放入发送队列中。如果MPKT不是SOP而是数据包的继续,则线程在SDRAM中由头线程指定的缓冲位置的临时队列中存入有效负载424。如果它判定MPKT是EOP 426,则它向调度器和头线程(如MACPORT/THD字段所确定的)发出信号已完成428。由此,它判定整个数据包现已准备好入队430。如果MPKT不是EOP,它只向调度器发出信号,它已完成处理自己的MPKT并可提供给其它的任务432。
参考图15A,线程的RCV_CNTL入口的登记和信令,对于显性模式,包括以下步骤。如在其它的快速端口模式中一样,RSM判定SOP在接收数据的周期中是否被加载440。如果是的话,它便将SOP顺序号放入SOP_SEQx字段中442,将SOP_SEQx计数器增1 444,将规定的线路ID写入TID字段446。它向规定的线路发出信号448。如果SOP未被加载,RSM将MPKT顺序号写入顺序号字段450,将该号增1 452并向规定的线路发出信号454。
参考图15B,接收线程根据显性模式处理快速端口的MPKT如下。如果规定的线程判定,MPKT是SOP MPKT 460,则规定的线路处理表头462,将有效负载和处理的表头移入缓存器464。如果它判定EOP位在RCV_CNTL寄存器入口处被置位465,则它就认为MPKT准备好入队到适当的端口发送队列466中。如果EOP未被置位,即MPKT不是EOP MPKT,则线程(在这种情况下,表头线程)将指向下一个可用缓冲位置的指针传给第二线程ID468,该第二线程的ID由对应存储MPKT的RFIFO存储单元的公用位置中的调度器规定。它随后等待来自EOP线程的通知470。如果MPKT不是SOP MPKT,则它接收指向SDRAM中缓冲位置的指针472并将MPKT入队到由指针指向的缓存器中的位置474。如果线路判定MPKT是EOP MPKT 475,则线路发出信号476,它已完成,且MPKT是EOP,这样表头线程便知道,属于该EOP MPKT的网络数据包准备好进入发送队列。如果MPKT不是EOP,处理线程将指向下一个可用的缓冲位置的指针增1 478,并将指针送至处理下一个连续MPKT的线路480,即由作为对应存储MPKT的RFIFO存储单元的储存位置中的第二线程的调度器规定的ID。
参考图16,示出了入队的处理。表头线程(如前面所描述的,由另一个线程的EOP或EOP的接收信号通知确定)先判定是否轮到该特定的数据包入队。它判定入队顺序#是否与SOP MPKT相关的SOP顺序号相同490。如果它们相同,表头线程链接网络数据包(现完整地存储在SDRAM中的数据包缓存器中)和端口传送队列(位于SRAM中)494。它将入队顺序号增1 496并通知调度器的完成498。如果SOP顺序号与入队顺序号不相同,它就等待接收指示SOP顺序号已改变的信号500,并再次比较两个顺序号。
将理解的是,在图12-16中描绘的处理过程认为,无数据包异常发生,线程能够处理数据包的处理而不需要核心处理器的帮助。这样的帮助,如果被调用,绝不会改变维持数据包顺序的方式。此外,图12-16的处理过程认为FIFO,比如RFIFO空间具备可用性。虽然在上图12-16的步骤中未描述,可以理解的是,不同的状态机必须在向该FIFO写入新入口之前判定是否有可用空间。如果特定的FIFO满了,该状态机将等待直到适当的入口号从该FIFO返回。
添加、删减和本发明较佳实施例的其它修改将在那些在该领域实际操作的例子中变得明显,并且在以下权利要求的范围中。

Claims (24)

1.一种转送数据的方法,其特征在于包括:
使控制信息与从第一端口接收到的数据相关;
由接收处理程序线程来处理数据单元以确定数据单元要被传送的第二端口;以及
使用相关的控制信息将数据入队,以与数据从第一端口接收到的相同顺序发送至第二端口。
2.权利要求1的方法,其特征在于,控制信息包括顺序号。
3.权利要求2的方法,其特征在于,该数据包括数据单元和与网络数据包相关的数据单元。
4.权利要求3的方法,其特征在于,当第一顺序号从第一端口接收到时将它们与相关的数据单元关联。
5.权利要求4的方法,其特征在于,关联还包括,维持第二顺序号,其中,使用包括:
判定第一顺序号是否与在数据单元被处理之后对数据单元排序的第二顺序号相等。
6.权利要求2的方法,其特征在于还包括:
控制将数据从第一端口到用于处理的接收处理程序线程的转移。
7.权利要求6的方法,其特征在于,控制包括:
分配接收处理程序线程以处理数据。
8.权利要求7的方法,其特征在于,控制包括:
将数据单元转送至各个分配的接收处理程序线程。
9.权利要求7的方法,其特征在于,控制包括:
将数据单元转送至各个单个分配的接收处理程序线程。
10.权利要求7的方法,其特征在于,控制包括:
由第一和第二不同的接收处理程序线程,转送用于处理的数据单元,第一处理程序线程处理包含数据包表头和一部分有效负载数据的数据单元的第一数据单元,第二接收处理程序线程处理包含有效负载数据另一部分数据单元的第二个数据单元。
11.权利要求3的方法,其特征在于,还包括:
维持用于生成数据包起始顺序号的顺序号计数器;以及
当数据单元被确认为对应于新数据包的开始时,通过将顺序号计数器的当前计数值作为数据包起始顺序号与数据单元相关联,将顺序号计数增1。
12.权利要求3的方法,其特征在于,还包括:
维持用于生成入队顺序号的入队顺序号计数;以及
在判定数据包是否准备好入队以发送至第二端口之后,将入列顺序号计数增1。
13.一种将数据从第一端口转送至第二端口的处理器,其特征在于包括:
用于执行程序线程的微引擎,该线程包括用于发出请求从而从第一端口转移数据单元的接收调度器程序线程和接收处理程序线程;
总线接口,响应微引擎,用于接收来自第一端口的数据单元并将数据单元转送至接收处理程序线程,以处理数据单元并将其按照从第一端口接收以发送至第二端口的顺序入队。
14.权利要求13的处理器,其特征在于,总线接口包括用于控制来自第一端口的数据单元转移的接收状态机。
15.一种将数据从第一端口转送至第二端口的方法,其特征在于包括:
由微引擎执行程序线程,该线程包括用于发出请求从而从第一端口转移数据单元的接收调度器程序线程和接收处理程序线程;
由总线接口响应微引擎,用于接收来自第一端口的数据单元并将数据单元转送至接收处理程序线程,以处理数据单元并将其按照从第一端口接收以发送至第二端口的顺序入队。
16.权利要求15的方法,其特征在于,总线接口使用顺序号确保数据单元以它们从第一端口接收时的顺序入队。
17.权利要求16的方法,其特征在于,当数据单元从第一端口收到时,总线接口将第一组顺序号同数据单元相关联,并维持由接收处理程序线程用来确定数据单元要入队的顺序的第二组顺序号。
18.权利要求15的方法,其特征在于,总线接口向接收调度器程序线程指示,第一端口是否有数据要被一个或更多接收处理程序线程来处理。
19.权利要求15的方法,其特征在于,接收调度器程序线程分配来自一个或更多接收处理程序线程中的可用线程以处理数据单元。
20.权利要求15的方法,其特征在于,数据单元与网络数据包相关。
21.权利要求20的方法,其特征在于,接收调度器程序线程将每个数据单元分配给不同的接收处理程序线程。
22.权利要求21的方法,其特征在于,接收状态机将数据单元转送至各个分配的不同接收处理程序线程。
23.权利要求21的方法,其特征在于,接收状态机将数据单元转送至各个单个分配的不同接收处理程序线程。
24.权利要求21的方法,其特征在于,接收状态机转送由第一和第二不同接收处理程序线程处理的数据单元,第一处理程序线程处理包含数据包表头和有效负载数据一部分的数据单元的第一个数据单元,第二接收处理程序线程处理包含有效负载数据另一部分的数据单元的第二个数据单元。
CNB008192065A 1999-12-29 2000-12-07 用于多线程数据包处理的千兆位数据包分配的方法和设备 Expired - Fee Related CN1191698C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/474,650 US6661794B1 (en) 1999-12-29 1999-12-29 Method and apparatus for gigabit packet assignment for multithreaded packet processing
US09/474,650 1999-12-29

Publications (2)

Publication Number Publication Date
CN1437816A CN1437816A (zh) 2003-08-20
CN1191698C true CN1191698C (zh) 2005-03-02

Family

ID=23884442

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008192065A Expired - Fee Related CN1191698C (zh) 1999-12-29 2000-12-07 用于多线程数据包处理的千兆位数据包分配的方法和设备

Country Status (7)

Country Link
US (3) US6661794B1 (zh)
EP (1) EP1245097B1 (zh)
CN (1) CN1191698C (zh)
AU (1) AU2078601A (zh)
HK (1) HK1047006A1 (zh)
TW (1) TW538609B (zh)
WO (1) WO2001050679A2 (zh)

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US7546444B1 (en) 1999-09-01 2009-06-09 Intel Corporation Register set used in multithreaded parallel processor architecture
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6631430B1 (en) * 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6952824B1 (en) * 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US7480706B1 (en) * 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6931641B1 (en) * 2000-04-04 2005-08-16 International Business Machines Corporation Controller for multiple instruction thread processors
US20030188141A1 (en) * 2002-03-29 2003-10-02 Shailender Chaudhry Time-multiplexed speculative multi-threading to support single-threaded applications
US7161938B1 (en) * 2000-07-26 2007-01-09 Infineon Technologies North America Corp. Network switch
US6862282B1 (en) * 2000-08-29 2005-03-01 Nortel Networks Limited Method and apparatus for packet ordering in a data processing system
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US7131125B2 (en) * 2000-12-22 2006-10-31 Nortel Networks Limited Method and system for sharing a computer resource between instruction threads of a multi-threaded process
JP2004524617A (ja) * 2001-02-14 2004-08-12 クリアスピード・テクノロジー・リミテッド クロック分配システム
US6839808B2 (en) * 2001-07-06 2005-01-04 Juniper Networks, Inc. Processing cluster having multiple compute engines and shared tier one caches
US7085850B2 (en) * 2001-08-22 2006-08-01 International Business Machines Corporation Stateless message processing scheme for network processors interactions
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7126952B2 (en) * 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7088719B2 (en) * 2001-12-21 2006-08-08 Agere Systems Inc. Processor with packet processing order maintenance based on packet flow identifiers
CN1299477C (zh) * 2001-12-28 2007-02-07 中兴通讯股份有限公司 在多层网络交换机中实现多路线速atm接口的方法
US7180887B1 (en) * 2002-01-04 2007-02-20 Radisys Patent Properties Routing and forwarding table management for network processor architectures
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7240350B1 (en) * 2002-01-07 2007-07-03 Slt Logic, Llc System and method for providing communications to processes
US6934951B2 (en) * 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
WO2003075520A2 (en) * 2002-03-05 2003-09-12 International Business Machines Corporation Method and system for ordered dynamic distribution of packet flows over network processors
US7072342B1 (en) * 2002-03-20 2006-07-04 Applied Micro Circuits Corporation Reordering of out-of-order packets
US7245616B1 (en) 2002-03-20 2007-07-17 Applied Micro Circuits Corporation Dynamic allocation of packets to tasks
US20030231627A1 (en) * 2002-06-04 2003-12-18 Rajesh John Arbitration logic for assigning input packet to available thread of a multi-threaded multi-engine network processor
US7124196B2 (en) * 2002-08-07 2006-10-17 Intel Corporation Processing a network packet using queues
US6971103B2 (en) * 2002-10-15 2005-11-29 Sandbridge Technologies, Inc. Inter-thread communications using shared interrupt register
US7386619B1 (en) * 2003-01-06 2008-06-10 Slt Logic, Llc System and method for allocating communications to processors in a multiprocessor system
US7965717B2 (en) * 2003-01-17 2011-06-21 Nortel Networks Limited Multi-staged services policing
US7747731B2 (en) * 2003-03-27 2010-06-29 Nokia Corporation Minimizing message processing latency in a communication network
US7542465B2 (en) * 2003-03-28 2009-06-02 Broadcom Corporation Optimization of decoder instance memory consumed by the jitter control module
US6794896B1 (en) * 2003-04-21 2004-09-21 Xilinx, Inc. Method and apparatus for multithreading
US7379451B1 (en) 2003-04-21 2008-05-27 Xilinx, Inc. Address lookup table
US20040225734A1 (en) * 2003-05-07 2004-11-11 Schober Richard L. Method and system to control the communication of data between a plurality of inteconnect devices
US7500239B2 (en) * 2003-05-23 2009-03-03 Intel Corporation Packet processing system
US8892821B2 (en) * 2003-12-10 2014-11-18 International Business Machines Corporation Method and system for thread-based memory speculation in a memory subsystem of a data processing system
US7130967B2 (en) * 2003-12-10 2006-10-31 International Business Machines Corporation Method and system for supplier-based memory speculation in a memory subsystem of a data processing system
US20050144416A1 (en) * 2003-12-29 2005-06-30 Intel Corporation, A Delaware Corporation Data alignment systems and methods
US7213099B2 (en) * 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
US7823161B2 (en) * 2004-01-29 2010-10-26 Klingman Edwin E Intelligent memory device with variable size task architecture
US7823159B2 (en) * 2004-01-29 2010-10-26 Klingman Edwin E Intelligent memory device clock distribution architecture
US7594232B2 (en) * 2004-01-29 2009-09-22 Klingman Edwin E Intelligent memory device for processing tasks stored in memory or for storing data in said memory
US7882504B2 (en) * 2004-01-29 2011-02-01 Klingman Edwin E Intelligent memory device with wakeup feature
US7908603B2 (en) * 2004-01-29 2011-03-15 Klingman Edwin E Intelligent memory with multitask controller and memory partitions storing task state information for processing tasks interfaced from host processor
US7856632B2 (en) * 2004-01-29 2010-12-21 Klingman Edwin E iMEM ASCII architecture for executing system operators and processing data operators
US8108870B2 (en) 2004-01-29 2012-01-31 Klingman Edwin E Intelligent memory device having ASCII-named task registers mapped to addresses of a task
US7984442B2 (en) * 2004-01-29 2011-07-19 Klingman Edwin E Intelligent memory device multilevel ASCII interpreter
US7770179B1 (en) 2004-01-30 2010-08-03 Xilinx, Inc. Method and apparatus for multithreading on a programmable logic device
US7185309B1 (en) 2004-01-30 2007-02-27 Xilinx, Inc. Method and apparatus for application-specific programmable memory architecture and interconnection network on a chip
US7552042B1 (en) 2004-01-30 2009-06-23 Xilinx, Inc. Method for message processing on a programmable logic device
US7823162B1 (en) 2004-01-30 2010-10-26 Xilinx, Inc. Thread circuits and a broadcast channel in programmable logic
US7474661B2 (en) * 2004-03-26 2009-01-06 Samsung Electronics Co., Ltd. Apparatus and method for distributing forwarding table lookup operations among a plurality of microengines in a high-speed routing node
US7480308B1 (en) * 2004-03-29 2009-01-20 Cisco Technology, Inc. Distributing packets and packets fragments possibly received out of sequence into an expandable set of queues of particular use in packet resequencing and reassembly
US7333493B2 (en) * 2004-05-20 2008-02-19 International Business Machines Corporation Method for prevention of out-of-order delivery of data packets
US8392590B2 (en) * 2004-09-10 2013-03-05 Cavium, Inc. Deterministic finite automata (DFA) processing
US8560475B2 (en) 2004-09-10 2013-10-15 Cavium, Inc. Content search mechanism that uses a deterministic finite automata (DFA) graph, a DFA state machine, and a walker process
US7941585B2 (en) * 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US8301788B2 (en) * 2004-09-10 2012-10-30 Cavium, Inc. Deterministic finite automata (DFA) instruction
US20060067348A1 (en) * 2004-09-30 2006-03-30 Sanjeev Jain System and method for efficient memory access of queue control data structures
US7277990B2 (en) 2004-09-30 2007-10-02 Sanjeev Jain Method and apparatus providing efficient queue descriptor memory access
US7873817B1 (en) * 2004-10-19 2011-01-18 Broadcom Corporation High speed multi-threaded reduced instruction set computer (RISC) processor with hardware-implemented thread scheduler
US7516151B2 (en) * 2004-11-01 2009-04-07 Hewlett-Packard Development Company, L.P. Parallel traversal of a dynamic list
CN100384181C (zh) * 2004-11-09 2008-04-23 北京中星微电子有限公司 一种ip网络环境下的多路音频缓冲处理的方法
US7564847B2 (en) * 2004-12-13 2009-07-21 Intel Corporation Flow assignment
US7418543B2 (en) 2004-12-21 2008-08-26 Intel Corporation Processor having content addressable memory with command ordering
US7555630B2 (en) * 2004-12-21 2009-06-30 Intel Corporation Method and apparatus to provide efficient communication between multi-threaded processing elements in a processor unit
US7457246B2 (en) * 2004-12-22 2008-11-25 Intel Corporation Adaptive threads assignment for receiving packets
US20060140203A1 (en) * 2004-12-28 2006-06-29 Sanjeev Jain System and method for packet queuing
US7467256B2 (en) 2004-12-28 2008-12-16 Intel Corporation Processor having content addressable memory for block-based queue structures
US8279886B2 (en) 2004-12-30 2012-10-02 Intel Corporation Dataport and methods thereof
US7551617B2 (en) * 2005-02-08 2009-06-23 Cisco Technology, Inc. Multi-threaded packet processing architecture with global packet memory, packet recirculation, and coprocessor
US20060236011A1 (en) * 2005-04-15 2006-10-19 Charles Narad Ring management
US7965708B2 (en) * 2005-06-07 2011-06-21 Cisco Technology, Inc. Method and apparatus for using meta-packets in a packet processing system
CN100407701C (zh) * 2005-06-25 2008-07-30 华为技术有限公司 一种网络处理器
US20070044103A1 (en) * 2005-07-25 2007-02-22 Mark Rosenbluth Inter-thread communication of lock protected data
US7853951B2 (en) * 2005-07-25 2010-12-14 Intel Corporation Lock sequencing to reorder and grant lock requests from multiple program threads
US7739426B1 (en) 2005-10-31 2010-06-15 Cisco Technology, Inc. Descriptor transfer logic
CN100459575C (zh) * 2005-11-10 2009-02-04 中国科学院计算技术研究所 一种网络处理器中维护ip分组出入顺序的方法
US20070124728A1 (en) * 2005-11-28 2007-05-31 Mark Rosenbluth Passing work between threads
US20070245074A1 (en) * 2006-03-30 2007-10-18 Rosenbluth Mark B Ring with on-chip buffer for efficient message passing
US8041929B2 (en) * 2006-06-16 2011-10-18 Cisco Technology, Inc. Techniques for hardware-assisted multi-threaded processing
US8010966B2 (en) * 2006-09-27 2011-08-30 Cisco Technology, Inc. Multi-threaded processing using path locks
KR100847146B1 (ko) 2006-11-06 2008-07-18 한국전자통신연구원 2×10 기가비트 이더넷 어플리케이션 구현 장치
US7852336B2 (en) * 2006-11-28 2010-12-14 International Business Machines Corporation Dynamic determination of optimal spatial index mapping to processor thread resources
US20080148280A1 (en) * 2006-12-13 2008-06-19 Stillwell Joseph W Apparatus, system, and method for autonomically managing multiple queues
US8898438B2 (en) * 2007-03-14 2014-11-25 XMOS Ltd. Processor architecture for use in scheduling threads in response to communication activity
US8219789B2 (en) * 2007-03-14 2012-07-10 XMOS Ltd. Interface processor
US7613909B2 (en) * 2007-04-17 2009-11-03 Xmos Limited Resuming thread to service ready port transferring data externally at different clock rate than internal circuitry of a processor
KR101077514B1 (ko) * 2007-06-19 2011-10-28 후지쯔 가부시끼가이샤 캐시 제어장치 및 제어방법
US8713569B2 (en) * 2007-09-26 2014-04-29 Intel Corporation Dynamic association and disassociation of threads to device functions based on requestor identification
US8819217B2 (en) * 2007-11-01 2014-08-26 Cavium, Inc. Intelligent graph walking
US7949683B2 (en) * 2007-11-27 2011-05-24 Cavium Networks, Inc. Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
US8180803B2 (en) * 2007-11-27 2012-05-15 Cavium, Inc. Deterministic finite automata (DFA) graph compression
US7926013B2 (en) * 2007-12-31 2011-04-12 Intel Corporation Validating continuous signal phase matching in high-speed nets routed as differential pairs
US8650570B2 (en) * 2008-06-02 2014-02-11 Microsoft Corporation Method of assigning instructions in a process to a plurality of scheduler instances based on the instruction, in which each scheduler instance is allocated a set of negoitaited processor resources
US8195921B2 (en) * 2008-07-09 2012-06-05 Oracle America, Inc. Method and apparatus for decoding multithreaded instructions of a microprocessor
TW201007557A (en) * 2008-08-06 2010-02-16 Inventec Corp Method for reading/writing data in a multithread system
US8473523B2 (en) * 2008-10-31 2013-06-25 Cavium, Inc. Deterministic finite automata graph traversal with nodal bit mapping
US8441934B2 (en) * 2008-11-11 2013-05-14 Qualcomm Incorporated Efficient UE QoS/UL packet build in LTE
CN101980509A (zh) * 2010-11-05 2011-02-23 北京云快线软件服务有限公司 一种文件分片传输方法及装置
US10038763B2 (en) 2010-12-15 2018-07-31 At&T Intellectual Property I, L.P. Method and apparatus for detecting network protocols
CN102662908A (zh) * 2012-04-23 2012-09-12 西安电子科技大学 对片上多核系统中的高速接口进行控制的方法及系统
CN103795765B (zh) * 2012-11-02 2018-09-28 腾讯科技(深圳)有限公司 一种文件上传校验方法及系统
CN103731316B (zh) * 2013-07-30 2017-08-04 天津金栅科技有限公司 一种流量监控装置及方法
CN105706058B (zh) * 2013-11-05 2019-09-20 甲骨文国际公司 用于支持网络环境中高效的分组处理模型和用于分组处理的优化的缓冲区利用的系统和方法
CN103795541B (zh) * 2013-12-13 2017-03-22 国网上海市电力公司 一种230m无线专网信道用电信息采集系统的安全通信方法
US9680742B2 (en) 2014-02-28 2017-06-13 Cavium, Inc. Packet output processing
US9559982B2 (en) 2014-02-28 2017-01-31 Cavium, Inc. Packet shaping in a network processor
US9397938B2 (en) 2014-02-28 2016-07-19 Cavium, Inc. Packet scheduling in a network processor
US11876725B2 (en) * 2020-01-30 2024-01-16 The Regents Of The University Of California Techniques for avoiding collisions among communications packets by using shared transmission queue

Family Cites Families (371)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3373408A (en) 1965-04-16 1968-03-12 Rca Corp Computer capable of switching between programs without storage and retrieval of the contents of operation registers
US3478322A (en) 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
US3623001A (en) 1970-01-06 1971-11-23 Peripheral Business Equipment Input data preparation system
US3736566A (en) 1971-08-18 1973-05-29 Ibm Central processing unit with hardware controlled checkpoint and retry facilities
BE795789A (fr) 1972-03-08 1973-06-18 Burroughs Corp Microprogramme comportant une micro-instruction de recouvrement
IT986411B (it) 1973-06-05 1975-01-30 Olivetti E C Spa Sistema per trasferire il control lo delle elaborazioni da un primo livello prioritario ad un secondo livello prioritario
US3889243A (en) 1973-10-18 1975-06-10 Ibm Stack mechanism for a data processor
US4016548A (en) 1975-04-11 1977-04-05 Sperry Rand Corporation Communication multiplexer module
CH584488A5 (zh) 1975-05-05 1977-01-31 Ibm
US4075691A (en) 1975-11-06 1978-02-21 Bunker Ramo Corporation Communication control unit
US4130890A (en) 1977-06-08 1978-12-19 Itt Industries, Inc. Integrated DDC memory with bitwise erase
JPS56164464A (en) 1980-05-21 1981-12-17 Tatsuo Nogi Parallel processing computer
US4400770A (en) 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
CA1179069A (en) 1981-04-10 1984-12-04 Yasushi Fukunaga Data transmission apparatus for a multiprocessor system
US4831358A (en) 1982-12-21 1989-05-16 Texas Instruments Incorporated Communications system employing control line minimization
US4658351A (en) 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
US4890222A (en) 1984-12-17 1989-12-26 Honeywell Inc. Apparatus for substantially syncronizing the timing subsystems of the physical modules of a local area network
US4709347A (en) 1984-12-17 1987-11-24 Honeywell Inc. Method and apparatus for synchronizing the timing subsystems of the physical modules of a local area network
US4858108A (en) 1985-03-20 1989-08-15 Hitachi, Ltd. Priority control architecture for input/output operation
US4745544A (en) 1985-12-12 1988-05-17 Texas Instruments Incorporated Master/slave sequencing processor with forced I/O
US4788640A (en) 1986-01-17 1988-11-29 Intel Corporation Priority logic system
US5297260A (en) 1986-03-12 1994-03-22 Hitachi, Ltd. Processor having a plurality of CPUS with one CPU being normally connected to common bus
US4890218A (en) 1986-07-02 1989-12-26 Raytheon Company Variable length instruction decoding apparatus having cross coupled first and second microengines
US4866664A (en) 1987-03-09 1989-09-12 Unisys Corporation Intercomputer communication control apparatus & method
US5142683A (en) 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
US5115507A (en) 1987-12-23 1992-05-19 U.S. Philips Corp. System for management of the priorities of access to a memory and its application
FR2625340B1 (fr) 1987-12-23 1990-05-04 Labo Electronique Physique Systeme graphique avec controleur graphique et controleur de dram
DE68913629T2 (de) 1988-03-14 1994-06-16 Unisys Corp Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem.
US5046000A (en) 1989-01-27 1991-09-03 International Business Machines Corporation Single-FIFO high speed combining switch
US5155854A (en) 1989-02-03 1992-10-13 Digital Equipment Corporation System for arbitrating communication requests using multi-pass control unit based on availability of system resources
US5155831A (en) 1989-04-24 1992-10-13 International Business Machines Corporation Data processing system with fast queue store interposed between store-through caches and a main memory
US5168555A (en) 1989-09-06 1992-12-01 Unisys Corporation Initial program load control
US5263169A (en) 1989-11-03 1993-11-16 Zoran Corporation Bus arbitration and resource management for concurrent vector signal processor architecture
DE3942977A1 (de) 1989-12-23 1991-06-27 Standard Elektrik Lorenz Ag Verfahren zum wiederherstellen der richtigen zellfolge, insbesondere in einer atm-vermittlungsstelle, sowie ausgangseinheit hierfuer
US5179702A (en) 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
IL93239A (en) * 1990-02-01 1993-03-15 Technion Res & Dev Foundation High flow-rate synchronizer/schedular apparatus for multiprocessors
DE69132495T2 (de) 1990-03-16 2001-06-13 Texas Instruments Inc Verteilter Verarbeitungsspeicher
US5452452A (en) 1990-06-11 1995-09-19 Cray Research, Inc. System having integrated dispatcher for self scheduling processors to execute multiple types of processes
US5390329A (en) 1990-06-11 1995-02-14 Cray Research, Inc. Responding to service requests using minimal system-side context in a multiprocessor environment
US5404482A (en) 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
AU633724B2 (en) 1990-06-29 1993-02-04 Digital Equipment Corporation Interlock queueing
US5347648A (en) 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
US5432918A (en) 1990-06-29 1995-07-11 Digital Equipment Corporation Method and apparatus for ordering read and write operations using conflict bits in a write queue
AU630299B2 (en) 1990-07-10 1992-10-22 Fujitsu Limited A data gathering/scattering system in a parallel computer
US5379295A (en) 1990-07-31 1995-01-03 Nec Corporation Cross-connect system for asynchronous transfer mode
US5251205A (en) 1990-09-04 1993-10-05 Digital Equipment Corporation Multiple protocol routing
US5367678A (en) 1990-12-06 1994-11-22 The Regents Of The University Of California Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically
KR960001273B1 (ko) 1991-04-30 1996-01-25 가부시키가이샤 도시바 단일칩 마이크로컴퓨터
US5255239A (en) 1991-08-13 1993-10-19 Cypress Semiconductor Corporation Bidirectional first-in-first-out memory device with transparent and user-testable capabilities
US5623489A (en) 1991-09-26 1997-04-22 Ipc Information Systems, Inc. Channel allocation system for distributed digital switching network
US5392412A (en) 1991-10-03 1995-02-21 Standard Microsystems Corporation Data communication controller for use with a single-port data packet buffer
GB2260429B (en) 1991-10-11 1995-05-24 Intel Corp Versatile cache memory
US5392391A (en) 1991-10-18 1995-02-21 Lsi Logic Corporation High performance graphics applications controller
US5557766A (en) 1991-10-21 1996-09-17 Kabushiki Kaisha Toshiba High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank
US5452437A (en) 1991-11-18 1995-09-19 Motorola, Inc. Methods of debugging multiprocessor system
EP0544083A3 (en) 1991-11-26 1994-09-14 Ibm Interleaved risc-type parallel processor and processing methods
CA2073516A1 (en) 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
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
JP2823767B2 (ja) 1992-02-03 1998-11-11 松下電器産業株式会社 レジスタファイル
US5404469A (en) 1992-02-25 1995-04-04 Industrial Technology Research Institute Multi-threaded microprocessor architecture utilizing static interleaving
US5313454A (en) 1992-04-01 1994-05-17 Stratacom, Inc. Congestion control for cell networks
US5742760A (en) 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
US5459842A (en) 1992-06-26 1995-10-17 International Business Machines Corporation System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory
DE4223600C2 (de) 1992-07-17 1994-10-13 Ibm Mehrprozessor-Computersystem und Verfahren zum Übertragen von Steuerinformationen und Dateninformation zwischen wenigstens zwei Prozessoreinheiten eines Computersystems
US5677910A (en) * 1992-08-07 1997-10-14 Plaintree Systems Inc. High performance two-port transport LAN bridge
US5404484A (en) 1992-09-16 1995-04-04 Hewlett-Packard Company Cache system for reducing memory latency times
GB2273591A (en) 1992-12-18 1994-06-22 Network Systems Corp Microcomputer control systems for interprogram communication and scheduling methods
DK0627100T3 (da) 1992-12-23 2000-06-26 Ebauchesfabrik Eta Ag Laveffekt-multitaskkontroller
US5617327A (en) 1993-07-30 1997-04-01 Xilinx, Inc. Method for entering state flow diagrams using schematic editor programs
US5379428A (en) * 1993-02-01 1995-01-03 Belobox Systems, Inc. Hardware process scheduler and processor interrupter for parallel processing computer systems
US5404464A (en) 1993-02-11 1995-04-04 Ast Research, Inc. Bus control system and method that selectively generate an early address strobe
US5448702A (en) 1993-03-02 1995-09-05 International Business Machines Corporation Adapters with descriptor queue management capability
DE69429204T2 (de) 1993-03-26 2002-07-25 Cabletron Systems Inc Ablaufssteuerungsverfahren und -gerät für ein Kommunikationsnetzwerk
US6311286B1 (en) 1993-04-30 2001-10-30 Nec Corporation Symmetric multiprocessing system with unified environment and distributed system functions
CA2122182A1 (en) 1993-05-20 1994-11-21 Rene Leblanc Method for rapid prototyping of programming problems
ES2148197T3 (es) 1993-06-29 2000-10-16 Cit Alcatel Metodo de resecuenciacion y dispositivo de resecuenciacion que realiza tal metodo.
US5379432A (en) 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
US5440545A (en) 1993-08-02 1995-08-08 Motorola, Inc. Packet delivery system
CA2107299C (en) 1993-09-29 1997-02-25 Mehrad Yasrebi High performance machine for switched communications in a heterogenous data processing network gateway
US6141689A (en) 1993-10-01 2000-10-31 International Business Machines Corp. Method and mechanism for allocating switched communications ports in a heterogeneous data processing network gateway
US5446736A (en) 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
US5450351A (en) 1993-11-19 1995-09-12 International Business Machines Corporation Content addressable memory implementation with random access memory
US5809237A (en) 1993-11-24 1998-09-15 Intel Corporation Registration of computer-based conferencing system
US5488570A (en) 1993-11-24 1996-01-30 Intel Corporation Encoding and decoding video signals using adaptive filter switching criteria
US5740402A (en) 1993-12-15 1998-04-14 Silicon Graphics, Inc. Conflict resolution in interleaved memory systems with multiple parallel accesses
US5446740A (en) 1993-12-17 1995-08-29 Empire Blue Cross/Blue Shield Method of and apparatus for processing data at a remote workstation
US5485455A (en) 1994-01-28 1996-01-16 Cabletron Systems, Inc. Network having secure fast packet switching and guaranteed quality of service
US5754764A (en) 1994-02-22 1998-05-19 National Semiconductor Corp. Combination of input output circuitry and local area network systems
US5490204A (en) 1994-03-01 1996-02-06 Safco Corporation Automated quality assessment system for cellular networks
US5835755A (en) 1994-04-04 1998-11-10 At&T Global Information Solutions Company Multi-processor computer system for operating parallel client/server database processes
JP3547482B2 (ja) 1994-04-15 2004-07-28 株式会社日立製作所 情報処理装置
EP0680173B1 (en) * 1994-04-28 2003-09-03 Hewlett-Packard Company, A Delaware Corporation Multicasting apparatus
US5542088A (en) 1994-04-29 1996-07-30 Intergraph Corporation Method and apparatus for enabling control of task execution
US5721870A (en) 1994-05-25 1998-02-24 Nec Corporation Lock control for a shared main storage data processing system
US5544236A (en) 1994-06-10 1996-08-06 At&T Corp. Access to unsubscribed features
US5574922A (en) 1994-06-17 1996-11-12 Apple Computer, Inc. Processor with sequences of processor instructions for locked memory updates
US5781774A (en) 1994-06-29 1998-07-14 Intel Corporation Processor having operating modes for an upgradeable multiprocessor computer system
JP3810449B2 (ja) 1994-07-20 2006-08-16 富士通株式会社 キュー装置
FR2724243B1 (fr) 1994-09-06 1997-08-14 Sgs Thomson Microelectronics Systeme de traitement multitaches
US5781551A (en) 1994-09-15 1998-07-14 Texas Instruments Incorporated Computer communications system with tree architecture and communications method
US5568476A (en) 1994-10-26 1996-10-22 3Com Corporation Method and apparatus for avoiding packet loss on a CSMA/CD-type local area network using receive-sense-based jam signal
US5649110A (en) 1994-11-07 1997-07-15 Ben-Nun; Michael Traffic shaping system with virtual circuit table time stamps for asynchronous transfer mode networks
US5625812A (en) 1994-11-14 1997-04-29 David; Michael M. Method of data structure extraction for computer systems operating under the ANSI-92 SQL2 outer join protocol
JP3169779B2 (ja) 1994-12-19 2001-05-28 日本電気株式会社 マルチスレッドプロセッサ
US5550816A (en) 1994-12-29 1996-08-27 Storage Technology Corporation Method and apparatus for virtual switching
US5539737A (en) 1994-12-30 1996-07-23 Advanced Micro Devices, Inc. Programmable disrupt of multicast packets for secure networks
US5692126A (en) 1995-01-24 1997-11-25 Bell Atlantic Network Services, Inc. ISDN access to fast packet data network
US5784712A (en) 1995-03-01 1998-07-21 Unisys Corporation Method and apparatus for locally generating addressing information for a memory access
US5701434A (en) 1995-03-16 1997-12-23 Hitachi, Ltd. Interleave memory controller with a common access queue
US5649157A (en) 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
US5581729A (en) 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system
US5633865A (en) 1995-03-31 1997-05-27 Netvantage Apparatus for selectively transferring data packets between local area networks
US5651137A (en) 1995-04-12 1997-07-22 Intel Corporation Scalable cache attributes for an input/output bus
US5886992A (en) 1995-04-14 1999-03-23 Valtion Teknillinen Tutkimuskeskus Frame synchronized ring system and method
US5758184A (en) 1995-04-24 1998-05-26 Microsoft Corporation System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads
US5608726A (en) 1995-04-25 1997-03-04 Cabletron Systems, Inc. Network bridge with multicast forwarding table
US5592622A (en) 1995-05-10 1997-01-07 3Com Corporation Network intermediate system with message passing architecture
JPH08320797A (ja) 1995-05-24 1996-12-03 Fuji Xerox Co Ltd プログラム制御システム
US5644780A (en) 1995-06-02 1997-07-01 International Business Machines Corporation Multiple port high speed register file with interleaved write ports for use with very long instruction word (vlin) and n-way superscaler processors
JPH096633A (ja) 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
US5828746A (en) 1995-06-07 1998-10-27 Lucent Technologies Inc. Telecommunications network
US5968169A (en) 1995-06-07 1999-10-19 Advanced Micro Devices, Inc. Superscalar microprocessor stack structure for judging validity of predicted subroutine return addresses
US5638531A (en) * 1995-06-07 1997-06-10 International Business Machines Corporation Multiprocessor integrated circuit with video refresh logic employing instruction/data caching and associated timing synchronization
US5828863A (en) 1995-06-09 1998-10-27 Canon Information Systems, Inc. Interface device connected between a LAN and a printer for outputting formatted debug information about the printer to the printer
US6112019A (en) 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
US5651002A (en) 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US5613071A (en) 1995-07-14 1997-03-18 Intel Corporation Method and apparatus for providing remote memory access in a distributed memory multiprocessor system
US5781449A (en) * 1995-08-10 1998-07-14 Advanced System Technologies, Inc. Response time measurement apparatus and method
US5680641A (en) 1995-08-16 1997-10-21 Sharp Microelectronics Technology, Inc. Multiple register bank system for concurrent I/O operation in a CPU datapath
US5940612A (en) 1995-09-27 1999-08-17 International Business Machines Corporation System and method for queuing of tasks in a multiprocessing system
US5860138A (en) 1995-10-02 1999-01-12 International Business Machines Corporation Processor with compiler-allocated, variable length intermediate storage
US6141677A (en) 1995-10-13 2000-10-31 Apple Computer, Inc. Method and system for assigning threads to active sessions
US5689566A (en) 1995-10-24 1997-11-18 Nguyen; Minhtam C. Network with secure communications sessions
EP0773648B1 (en) 1995-11-07 2005-05-25 Alcatel Method and apparatus for managing multicast connections
US5828881A (en) 1995-11-09 1998-10-27 Chromatic Research, Inc. System and method for stack-based processing of multiple real-time audio tasks
US5809530A (en) 1995-11-13 1998-09-15 Motorola, Inc. Method and apparatus for processing multiple cache misses using reload folding and store merging
KR0150072B1 (ko) 1995-11-30 1998-10-15 양승택 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치
US5796413A (en) 1995-12-06 1998-08-18 Compaq Computer Corporation Graphics controller utilizing video memory to provide macro command capability and enhanched command buffering
US5940866A (en) 1995-12-13 1999-08-17 International Business Machines Corporation Information handling system having a local address queue for local storage of command blocks transferred from a host processing side
US5850530A (en) 1995-12-18 1998-12-15 International Business Machines Corporation Method and apparatus for improving bus efficiency by enabling arbitration based upon availability of completion data
US5898701A (en) 1995-12-21 1999-04-27 Cypress Semiconductor Corporation Method and apparatus for testing a device
US5828901A (en) 1995-12-21 1998-10-27 Cirrus Logic, Inc. Method and apparatus for placing multiple frames of data in a buffer in a direct memory access transfer
US5699537A (en) 1995-12-22 1997-12-16 Intel Corporation Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions
JP2000515332A (ja) 1995-12-29 2000-11-14 ティクシ.コム ゲゼルシャフト ミット ベシュレンクテル ハフツング テレコミュニケイション システムズ 自動的で安全かつダイレクトなデータ伝送のための方法およびマイクロコンピュータシステム
US6201807B1 (en) 1996-02-27 2001-03-13 Lucent Technologies Real-time hardware method and apparatus for reducing queue processing
US5761507A (en) 1996-03-05 1998-06-02 International Business Machines Corporation Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling
US5764915A (en) 1996-03-08 1998-06-09 International Business Machines Corporation Object-oriented communication interface for network protocol access using the selected newly created protocol interface object and newly created protocol layer objects in the protocol stack
US5809235A (en) 1996-03-08 1998-09-15 International Business Machines Corporation Object oriented network event management framework
US5797043A (en) * 1996-03-13 1998-08-18 Diamond Multimedia Systems, Inc. System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs
US5784649A (en) * 1996-03-13 1998-07-21 Diamond Multimedia Systems, Inc. Multi-threaded FIFO pool buffer and bus transfer control system
US6199133B1 (en) 1996-03-29 2001-03-06 Compaq Computer Corporation Management communication bus for networking devices
KR100219597B1 (ko) 1996-03-30 1999-09-01 윤종용 씨디-롬 드라이브에서의 큐잉 제어 방법
US5857188A (en) 1996-04-29 1999-01-05 Ncr Corporation Management of client requests in a client-server environment
JPH1091443A (ja) 1996-05-22 1998-04-10 Seiko Epson Corp 情報処理回路、マイクロコンピュータ及び電子機器
US5768528A (en) 1996-05-24 1998-06-16 V-Cast, Inc. Client-server system for delivery of online information
US5946487A (en) 1996-06-10 1999-08-31 Lsi Logic Corporation Object-oriented multi-media architecture
KR980004067A (ko) 1996-06-25 1998-03-30 김광호 멀티프로세서 시스템의 데이터 송수신장치 및 방법
JP3541335B2 (ja) 1996-06-28 2004-07-07 富士通株式会社 情報処理装置及び分散処理制御方法
US5937187A (en) 1996-07-01 1999-08-10 Sun Microsystems, Inc. Method and apparatus for execution and preemption control of computer process entities
US5933627A (en) 1996-07-01 1999-08-03 Sun Microsystems Thread switch on blocked load or store using instruction thread field
JPH1049381A (ja) 1996-07-04 1998-02-20 Internatl Business Mach Corp <Ibm> 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム
US6023742A (en) 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
US5953336A (en) 1996-08-05 1999-09-14 Virata Limited Method and apparatus for source rate pacing in an ATM network
US5745913A (en) 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US6058465A (en) 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
KR100417398B1 (ko) 1996-09-11 2004-04-03 엘지전자 주식회사 디에스피의명령어블록반복처리방법
US5812868A (en) 1996-09-16 1998-09-22 Motorola Inc. Method and apparatus for selecting a register file in a data processing system
US6072781A (en) 1996-10-22 2000-06-06 International Business Machines Corporation Multi-tasking adapter for parallel network applications
JP3123447B2 (ja) 1996-11-13 2001-01-09 日本電気株式会社 Atm交換機のスイッチ制御回路
US5860158A (en) 1996-11-15 1999-01-12 Samsung Electronics Company, Ltd. Cache control unit with a cache request transaction-oriented protocol
US5905876A (en) 1996-12-16 1999-05-18 Intel Corporation Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system
US6212542B1 (en) 1996-12-16 2001-04-03 International Business Machines Corporation Method and system for executing a program within a multiscalar processor by processing linked thread descriptors
US6098110A (en) 1996-12-30 2000-08-01 Compaq Computer Corporation Network switch with a multiple bus structure and a bridge interface for transferring network data between different buses
US5854922A (en) 1997-01-16 1998-12-29 Ford Motor Company Micro-sequencer apparatus and method of combination state machine and instruction memory
US6047002A (en) 1997-01-16 2000-04-04 Advanced Micro Devices, Inc. Communication traffic circle system and method for performing packet conversion and routing between different packet formats including an instruction field
US5961628A (en) 1997-01-28 1999-10-05 Samsung Electronics Co., Ltd. Load and store unit for a vector processor
US6085248A (en) 1997-02-11 2000-07-04 Xaqtu Corporation Media access control transmitter and parallel network management system
US6256115B1 (en) 1997-02-21 2001-07-03 Worldquest Network, Inc. Facsimile network
US6269391B1 (en) 1997-02-24 2001-07-31 Novell, Inc. Multi-processor scheduling kernel
US5742587A (en) 1997-02-28 1998-04-21 Lanart Corporation Load balancing port switching hub
US6111886A (en) 1997-03-07 2000-08-29 Advanced Micro Devices, Inc. Apparatus for and method of communicating among devices interconnected on a bus
US5905889A (en) 1997-03-20 1999-05-18 International Business Machines Corporation Resource management system using next available integer from an integer pool and returning the integer thereto as the next available integer upon completion of use
WO1998043193A2 (en) 1997-03-21 1998-10-01 University Of Maryland Spawn-join instruction set architecture for providing explicit multithreading
US5898885A (en) 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native stack-based instruction within a computer system
US6298370B1 (en) 1997-04-04 2001-10-02 Texas Instruments Incorporated Computer operating process allocating tasks between first and second processors at run time based upon current processor load
CA2285245A1 (en) 1997-04-04 1998-10-15 Mahesh N. Ganmukhi High speed packet scheduling method and apparatus
US5918235A (en) 1997-04-04 1999-06-29 Hewlett-Packard Company Object surrogate with active computation and probablistic counter
US5974518A (en) 1997-04-10 1999-10-26 Milgo Solutions, Inc. Smart buffer size adaptation apparatus and method
US6535878B1 (en) 1997-05-02 2003-03-18 Roxio, Inc. Method and system for providing on-line interactivity over a server-client network
US5983274A (en) 1997-05-08 1999-11-09 Microsoft Corporation Creation and use of control information associated with packetized network data by protocol drivers and device drivers
US6141765A (en) 1997-05-19 2000-10-31 Gigabus, Inc. Low power, high speed communications bus
KR100212064B1 (ko) 1997-05-21 1999-08-02 윤종용 2n X n 다중화 스위치 구조
US6223243B1 (en) 1997-06-12 2001-04-24 Nec Corporation Access control method with plural users having I/O commands prioritized in queues corresponding to plural memory units
US6182177B1 (en) 1997-06-13 2001-01-30 Intel Corporation Method and apparatus for maintaining one or more queues of elements such as commands using one or more token queues
US6092158A (en) 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
US6067585A (en) 1997-06-23 2000-05-23 Compaq Computer Corporation Adaptive interface controller that can operate with segments of different protocol and transmission rates in a single integrated device
US5838988A (en) 1997-06-25 1998-11-17 Sun Microsystems, Inc. Computer product for precise architectural update in an out-of-order processor
US5909686A (en) 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US6393483B1 (en) 1997-06-30 2002-05-21 Adaptec, Inc. Method and apparatus for network interface card load balancing and port aggregation
US5887134A (en) 1997-06-30 1999-03-23 Sun Microsystems System and method for preserving message order while employing both programmed I/O and DMA operations
US5938736A (en) 1997-06-30 1999-08-17 Sun Microsystems, Inc. Search engine architecture for a high performance multi-layer switch element
KR100216371B1 (ko) 1997-06-30 1999-08-16 윤종용 고장 감내형 대용량 ATM 스위치 및 2nXn 다중화스위치에서의 셀프라우팅 방법
US6247025B1 (en) 1997-07-17 2001-06-12 International Business Machines Corporation Locking and unlocking mechanism for controlling concurrent access to objects
GB2327784B (en) 1997-07-28 2002-04-03 Microapl Ltd A method of carrying out computer operations
US6170051B1 (en) 1997-08-01 2001-01-02 Micron Technology, Inc. Apparatus and method for program level parallelism in a VLIW processor
US6377998B2 (en) 1997-08-22 2002-04-23 Nortel Networks Limited Method and apparatus for performing frame processing for a network
US6104700A (en) 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US6014729A (en) 1997-09-29 2000-01-11 Firstpass, Inc. Shared memory arbitration apparatus and method
US6128669A (en) 1997-09-30 2000-10-03 Compaq Computer Corporation System having a bridge with distributed burst engine to decouple input/output task from a processor
US6032190A (en) 1997-10-03 2000-02-29 Ascend Communications, Inc. System and method for processing data packets
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6085294A (en) 1997-10-24 2000-07-04 Compaq Computer Corporation Distributed data dependency stall mechanism
US6061710A (en) 1997-10-29 2000-05-09 International Business Machines Corporation Multithreaded processor incorporating a thread latch register for interrupt service new pending threads
US5915123A (en) 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6389031B1 (en) 1997-11-05 2002-05-14 Polytechnic University Methods and apparatus for fairly scheduling queued packets using a ram-based search engine
US6272109B1 (en) 1997-11-18 2001-08-07 Cabletron Systems, Inc. Hierarchical schedules for different ATM traffic
DE69822591T2 (de) 1997-11-19 2005-03-24 Imec Vzw System und Verfahren zur Kontextumschaltung über vorbestimmte Unterbrechungspunkte
US6360262B1 (en) 1997-11-24 2002-03-19 International Business Machines Corporation Mapping web server objects to TCP/IP ports
US6070231A (en) 1997-12-02 2000-05-30 Intel Corporation Method and apparatus for processing memory requests that require coherency transactions
US6144669A (en) 1997-12-12 2000-11-07 Newbridge Networks Corporation Prioritized PVC management queues for improved frame processing capabilities
US5948081A (en) 1997-12-22 1999-09-07 Compaq Computer Corporation System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed
US6272520B1 (en) 1997-12-31 2001-08-07 Intel Corporation Method for detecting thread switch events
JPH11203860A (ja) 1998-01-07 1999-07-30 Nec Corp 半導体記憶装置
US6134665A (en) 1998-01-20 2000-10-17 Digital Equipment Corporation Computer with remote wake up and transmission of a status packet when the computer fails a self test
US6145054A (en) 1998-01-21 2000-11-07 Sun Microsystems, Inc. Apparatus and method for handling multiple mergeable misses in a non-blocking cache
US6415338B1 (en) 1998-02-11 2002-07-02 Globespan, Inc. System for writing a data value at a starting address to a number of consecutive locations equal to a segment length identifier
US5970013A (en) 1998-02-26 1999-10-19 Lucent Technologies Inc. Adaptive addressable circuit redundancy method and apparatus with broadcast write
US6279113B1 (en) 1998-03-16 2001-08-21 Internet Tools, Inc. Dynamic signature inspection-based network intrusion detection
US6223238B1 (en) 1998-03-31 2001-04-24 Micron Electronics, Inc. Method of peer-to-peer mastering over a computer bus
US6079008A (en) 1998-04-03 2000-06-20 Patton Electronics Co. Multiple thread multiple data predictive coded parallel processing system and method
KR100280460B1 (ko) 1998-04-08 2001-02-01 김영환 데이터 처리 장치 및 이의 복수의 스레드 처리 방법
US6522188B1 (en) 1998-04-10 2003-02-18 Top Layer Networks, Inc. High-speed data bus for network switching
US6426943B1 (en) 1998-04-10 2002-07-30 Top Layer Networks, Inc. Application-level data communication switching system and process for automatic detection of and quality of service adjustment for bulk data transfers
US6570850B1 (en) 1998-04-23 2003-05-27 Giganet, Inc. System and method for regulating message flow in a digital data network
US6721325B1 (en) 1998-04-23 2004-04-13 Alcatel Canada Inc. Fair share scheduling of multiple service classes with prioritized shaping
US6092127A (en) 1998-05-15 2000-07-18 Hewlett-Packard Company Dynamic allocation and reallocation of buffers in links of chained DMA operations by receiving notification of buffer full and maintaining a queue of buffers available
US6320861B1 (en) 1998-05-15 2001-11-20 Marconi Communications, Inc. Hybrid scheme for queuing in a shared memory ATM switch buffer
FR2778809B1 (fr) 1998-05-18 2000-07-28 Inst Nat Rech Inf Automat Installation de transmission de messages a stations perfectionnees, et procede correspondant
US6032218A (en) 1998-05-28 2000-02-29 3Com Corporation Configurable weighted round robin arbiter
US6275505B1 (en) 1998-05-30 2001-08-14 Alcatel Canada Inc. Method and apparatus for packetizing data into a data stream
US6349331B1 (en) 1998-06-05 2002-02-19 Lsi Logic Corporation Multiple channel communication system with shared autonegotiation controller
US6448812B1 (en) 1998-06-11 2002-09-10 Infineon Technologies North America Corp. Pull up/pull down logic for holding a defined value during power down mode
US6067300A (en) 1998-06-11 2000-05-23 Cabletron Systems, Inc. Method and apparatus for optimizing the transfer of data packets between local area networks
US6157955A (en) 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US6272616B1 (en) 1998-06-17 2001-08-07 Agere Systems Guardian Corp. Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths
US6434145B1 (en) * 1998-06-22 2002-08-13 Applied Micro Circuits Corporation Processing of network data by parallel processing channels
US6501731B1 (en) 1998-06-27 2002-12-31 Intel Corporation CBR/VBR traffic scheduler
US6724767B1 (en) 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6286083B1 (en) 1998-07-08 2001-09-04 Compaq Computer Corporation Computer system with adaptive memory arbitration scheme
US6560229B1 (en) 1998-07-08 2003-05-06 Broadcom Corporation Network switching architecture with multiple table synchronization, and forwarding of both IP and IPX packets
US6424659B2 (en) 1998-07-17 2002-07-23 Network Equipment Technologies, Inc. Multi-layer switching apparatus and method
US6360277B1 (en) 1998-07-22 2002-03-19 Crydom Corporation Addressable intelligent relay
US6373848B1 (en) 1998-07-28 2002-04-16 International Business Machines Corporation Architecture for a multi-port adapter with a single media access control (MAC)
US6073215A (en) 1998-08-03 2000-06-06 Motorola, Inc. Data processing system having a data prefetch mechanism and method therefor
US6160562A (en) 1998-08-18 2000-12-12 Compaq Computer Corporation System and method for aligning an initial cache line of data read from local memory by an input/output device
CA2245367A1 (en) 1998-08-19 2000-02-19 Newbridge Networks Corporation Two-component bandwidth scheduler having application in multi-class digital communication systems
US6490285B2 (en) 1998-08-25 2002-12-03 International Business Machines Corporation IP multicast interface
US6393026B1 (en) 1998-09-17 2002-05-21 Nortel Networks Limited Data packet processing system and method for a router
US6356962B1 (en) 1998-09-30 2002-03-12 Stmicroelectronics, Inc. Network device and method of controlling flow of data arranged in frames in a data-based network
US6526451B2 (en) 1998-09-30 2003-02-25 Stmicroelectronics, Inc. Method and network device for creating circular queue structures in shared memory
DE19845876A1 (de) 1998-10-06 2000-04-13 Jetter Ag Prozeßsteuerung
US6175927B1 (en) 1998-10-06 2001-01-16 International Business Machine Corporation Alert mechanism for service interruption from power loss
DE19846274A1 (de) 1998-10-08 2000-04-20 Alcatel Sa Verfahren zur Durchführung von kooperativem Multitasking in einem Nachrichtenübertragungsnetz und Netzelement dafür
US6347344B1 (en) 1998-10-14 2002-02-12 Hitachi, Ltd. Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor
US6366998B1 (en) 1998-10-14 2002-04-02 Conexant Systems, Inc. Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model
US6438132B1 (en) 1998-10-14 2002-08-20 Nortel Networks Limited Virtual port scheduler
US6212611B1 (en) 1998-11-03 2001-04-03 Intel Corporation Method and apparatus for providing a pipelined memory controller
US6732187B1 (en) 1999-09-24 2004-05-04 Cisco Technology, Inc. Opaque packet handles
GB9825102D0 (en) 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US6526452B1 (en) 1998-11-17 2003-02-25 Cisco Technology, Inc. Methods and apparatus for providing interfaces for mixed topology data switching system
US6967963B1 (en) 1998-12-01 2005-11-22 3Com Corporation Telecommunication method for ensuring on-time delivery of packets containing time-sensitive data
US6212604B1 (en) 1998-12-03 2001-04-03 Sun Microsystems, Inc. Shared instruction cache for multiple processors
US6359911B1 (en) 1998-12-04 2002-03-19 Koninklijke Philips Electronics N.V. (Kpenv) MPEG-2 transport demultiplexor architecture with non-time-critical post-processing of packet information
US6389449B1 (en) 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US6477562B2 (en) * 1998-12-16 2002-11-05 Clearwater Networks, Inc. Prioritized instruction scheduling for multi-streaming processors
US6338078B1 (en) * 1998-12-17 2002-01-08 International Business Machines Corporation System and method for sequencing packets for multiprocessor parallelization in a computer network system
US6279050B1 (en) 1998-12-18 2001-08-21 Emc Corporation Data transfer apparatus having upper, lower, middle state machines, with middle state machine arbitrating among lower state machine side requesters including selective assembly/disassembly requests
US6463035B1 (en) 1998-12-30 2002-10-08 At&T Corp Method and apparatus for initiating an upward signaling control channel in a fast packet network
US6466898B1 (en) 1999-01-12 2002-10-15 Terence Chan Multithreaded, mixed hardware description languages logic simulation on engineering workstations
US6356692B1 (en) * 1999-02-04 2002-03-12 Hitachi, Ltd. Optical module, transmitter, receiver, optical switch, optical communication unit, add-and-drop multiplexing unit, and method for manufacturing the optical module
US6661774B1 (en) 1999-02-16 2003-12-09 Efficient Networks, Inc. System and method for traffic shaping packet-based signals
US6873618B1 (en) 1999-03-16 2005-03-29 Nortel Networks Limited Multipoint network routing protocol
US6628668B1 (en) 1999-03-16 2003-09-30 Fujitsu Network Communications, Inc. Crosspoint switch bandwidth allocation management
AU3529500A (en) 1999-03-17 2000-10-04 Broadcom Corporation Network switch
US6684326B1 (en) 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US6256713B1 (en) 1999-04-29 2001-07-03 International Business Machines Corporation Bus optimization with read/write coherence including ordering responsive to collisions
US6457015B1 (en) 1999-05-07 2002-09-24 Network Appliance, Inc. Adaptive and generalized status monitor
US6938147B1 (en) 1999-05-11 2005-08-30 Sun Microsystems, Inc. Processor with multiple-thread, vertically-threaded pipeline
US6507862B1 (en) 1999-05-11 2003-01-14 Sun Microsystems, Inc. Switching method in a multi-threaded processor
US6798744B1 (en) 1999-05-14 2004-09-28 Pmc-Sierra, Inc. Method and apparatus for interconnection of flow-controlled communication
US6453404B1 (en) 1999-05-27 2002-09-17 Microsoft Corporation Distributed data cache with memory allocation model
US6768717B1 (en) 1999-05-28 2004-07-27 Network Equipment Technologies, Inc. Apparatus and method for traffic shaping in a network switch
US6282169B1 (en) 1999-06-11 2001-08-28 Amplify.Net Inc. Serial redundant bypass control mechanism for maintaining network bandwidth management service
CA2310909C (en) 1999-06-12 2005-05-24 Jinoo Joung Packet switching apparatus and method in data network
US6421676B1 (en) * 1999-06-30 2002-07-16 International Business Machines Corporation Scheduler for use in a scalable, distributed, asynchronous data collection mechanism
US6606326B1 (en) * 1999-07-02 2003-08-12 International Business Machines Corporation Packet switch employing dynamic transfer of data packet from central shared queue path to cross-point switching matrix path
US6657963B1 (en) 1999-07-30 2003-12-02 Alcatel Canada Inc. Method and apparatus for controlling data congestion in a frame relay/ATM internetworking system
US6631422B1 (en) 1999-08-26 2003-10-07 International Business Machines Corporation Network adapter utilizing a hashing function for distributing packets to multiple processors for parallel processing
US6427196B1 (en) 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6668317B1 (en) 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6606704B1 (en) 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6665699B1 (en) 1999-09-23 2003-12-16 Bull Hn Information Systems Inc. Method and data processing system providing processor affinity dispatching
US6680933B1 (en) 1999-09-23 2004-01-20 Nortel Networks Limited Telecommunications switches and methods for their operation
US6604125B1 (en) 1999-09-24 2003-08-05 Sun Microsystems, Inc. Mechanism for enabling a thread unaware or non thread safe application to be executed safely in a multi-threaded environment
US6493741B1 (en) 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit
DE60038448T2 (de) 1999-10-14 2009-04-02 Bluearc Uk Ltd. Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6629236B1 (en) 1999-11-12 2003-09-30 International Business Machines Corporation Master-slave latch circuit for multithreaded processing
US6484224B1 (en) * 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
US6754211B1 (en) 1999-12-01 2004-06-22 Mosaid Technologies, Inc. Method and apparatus for wire speed IP multicast forwarding
US6782447B2 (en) 1999-12-17 2004-08-24 Koninklijke Philips Electronics N.V. Circular address register
US6532509B1 (en) * 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6307789B1 (en) 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6324624B1 (en) 1999-12-28 2001-11-27 Intel Corporation Read lock miss control and queue management
US6463072B1 (en) 1999-12-28 2002-10-08 Intel Corporation Method and apparatus for sharing access to a bus
US6625654B1 (en) 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6631430B1 (en) 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6560667B1 (en) 1999-12-28 2003-05-06 Intel Corporation Handling contiguous memory references in a multi-queue system
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6976095B1 (en) 1999-12-30 2005-12-13 Intel Corporation Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
US6584522B1 (en) 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US6631462B1 (en) 2000-01-05 2003-10-07 Intel Corporation Memory shared between processing threads
US6775284B1 (en) 2000-01-07 2004-08-10 International Business Machines Corporation Method and system for frame and protocol classification
JP4002380B2 (ja) 2000-03-15 2007-10-31 日本電気株式会社 マルチキャストシステム、認証サーバ端末、マルチキャスト受信者端末管理方法、並びに記録媒体
US6975629B2 (en) 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals
US6658551B1 (en) 2000-03-30 2003-12-02 Agere Systems Inc. Method and apparatus for identifying splittable packets in a multithreaded VLIW processor
US6629147B1 (en) 2000-03-31 2003-09-30 Intel Corporation Segmentation and reassembly of data frames
US6931641B1 (en) 2000-04-04 2005-08-16 International Business Machines Corporation Controller for multiple instruction thread processors
US6678746B1 (en) 2000-08-01 2004-01-13 Hewlett-Packard Development Company, L.P. Processing network packets
US6553406B1 (en) 2000-08-03 2003-04-22 Prelude Systems, Inc. Process thread system receiving request packet from server thread, initiating process thread in response to request packet, synchronizing thread process between clients-servers.
US6404737B1 (en) 2000-08-10 2002-06-11 Ahead Communications Systems, Inc. Multi-tiered shaping allowing both shaped and unshaped virtual circuits to be provisioned in a single virtual path
US6424657B1 (en) 2000-08-10 2002-07-23 Verizon Communications Inc. Traffic queueing for remote terminal DSLAMs
US7111072B1 (en) 2000-09-13 2006-09-19 Cosine Communications, Inc. Packet routing system and method
US6834053B1 (en) 2000-10-27 2004-12-21 Nortel Networks Limited Distributed traffic scheduler
US6944850B2 (en) 2000-12-21 2005-09-13 Intel Corporation Hop method for stepping parallel hardware threads
US6671827B2 (en) 2000-12-21 2003-12-30 Intel Corporation Journaling for parallel hardware threads in multithreaded processor
US6981077B2 (en) 2000-12-22 2005-12-27 Nortel Networks Limited Global access bus architecture
US6665755B2 (en) 2000-12-22 2003-12-16 Nortel Networks Limited External memory engine selectable pipeline architecture
US20020118692A1 (en) 2001-01-04 2002-08-29 Oberman Stuart F. Ensuring proper packet ordering in a cut-through and early-forwarding network switch
US7065569B2 (en) 2001-01-09 2006-06-20 Turin Networks, Inc. System and method for remote traffic management in a communication network
US6856622B1 (en) 2001-02-20 2005-02-15 Pmc-Sierra, Inc. Multicast cell scheduling protocol
US20020150047A1 (en) 2001-04-17 2002-10-17 Globespanvirata Incorporated System and method for scheduling transmission of asynchronous transfer mode cells
US6959002B2 (en) 2001-05-01 2005-10-25 Integrated Device Technology, Inc. Traffic manager for network switch port
US6646868B2 (en) 2001-06-04 2003-11-11 Sun Microsystems, Inc. Computer bus rack having an increased density of card slots
US6940857B2 (en) 2001-07-12 2005-09-06 At&T Corp. Broadcast/multicast system and protocol for circuit-switched networks
US7006495B2 (en) 2001-08-31 2006-02-28 Intel Corporation Transmitting multicast data packets
US7126952B2 (en) 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US7286534B2 (en) 2001-11-02 2007-10-23 Infineon Technologies North America Corporation SRAM based cache for DRAM routing table lookups
US7158964B2 (en) 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7181573B2 (en) 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US6934951B2 (en) 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US6779084B2 (en) 2002-01-23 2004-08-17 Intel Corporation Enqueue operations for multi-buffer packets
US7149226B2 (en) 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US7260102B2 (en) 2002-02-22 2007-08-21 Nortel Networks Limited Traffic switching using multi-dimensional packet classification
US7471688B2 (en) 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7069548B2 (en) 2002-06-28 2006-06-27 Intel Corporation Inter-procedure global register allocation method
US7096277B2 (en) 2002-08-07 2006-08-22 Intel Corporation Distributed lookup based on packet contents
US7248584B2 (en) 2002-08-07 2007-07-24 Intel Corporation Network packet processing
US7124196B2 (en) 2002-08-07 2006-10-17 Intel Corporation Processing a network packet using queues
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7206858B2 (en) 2002-09-19 2007-04-17 Intel Corporation DSL transmit traffic shaper structure and procedure
US7433307B2 (en) 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US7181742B2 (en) 2002-11-19 2007-02-20 Intel Corporation Allocation of packets and threads
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
US7100102B2 (en) 2003-09-18 2006-08-29 Intel Corporation Method and apparatus for performing cyclic redundancy checks

Also Published As

Publication number Publication date
HK1047006A1 (en) 2003-01-30
TW538609B (en) 2003-06-21
US6661794B1 (en) 2003-12-09
US20040071152A1 (en) 2004-04-15
CN1437816A (zh) 2003-08-20
WO2001050679A2 (en) 2001-07-12
AU2078601A (en) 2001-07-16
WO2001050679A3 (en) 2002-01-17
US7751402B2 (en) 2010-07-06
EP1245097A2 (en) 2002-10-02
US6947425B1 (en) 2005-09-20
EP1245097B1 (en) 2013-07-03

Similar Documents

Publication Publication Date Title
CN1191698C (zh) 用于多线程数据包处理的千兆位数据包分配的方法和设备
US5434976A (en) Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers
CN108809854B (zh) 一种用于大流量网络处理的可重构芯片架构
US7831974B2 (en) Method and apparatus for serialized mutual exclusion
US7292594B2 (en) Weighted fair share scheduler for large input-buffered high-speed cross-point packet/cell switches
US9703595B2 (en) Multi-core system with central transaction control
US20090059955A1 (en) Single chip protocol converter
US7529224B2 (en) Scheduler, network processor, and methods for weighted best effort scheduling
US8296764B2 (en) Internal synchronization control for adaptive integrated circuitry
US7995472B2 (en) Flexible network processor scheduler and data flow
CN100422976C (zh) 数字通信处理器
CN1520112A (zh) 网络协议卸载引擎
US6976095B1 (en) Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
CN1277508A (zh) 数据网络中的分组交换设备和方法
EP1346549B1 (en) Intercommunication preprocessor
CN1656470A (zh) 芯片处理器间的控制平面通信
JP2005216283A (ja) シングル・チップ・プロトコル・コンバーター
US20040078459A1 (en) Switch operation scheduling mechanism with concurrent connection and queue scheduling
US20230224261A1 (en) Network interface device
Li et al. Bi-Transfer: A Data Packet Allocation Module with Chaining Transmission Mode
CN1038006A (zh) 信息包交换、交换方法、规程和网络
CN108650189A (zh) 一种流量平衡控制方法及装置
Daniel Flexible router architectures for point-to-point networks
CN115720211A (zh) 网算一体的芯粒间路由器及数据包聚合方法
CN111756647A (zh) HQoS业务传输的方法、装置及系统

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

Termination date: 20191207