CN100351798C - 在多线程网络处理器中线程信令的分组处理方法和系统 - Google Patents

在多线程网络处理器中线程信令的分组处理方法和系统 Download PDF

Info

Publication number
CN100351798C
CN100351798C CNB008191794A CN00819179A CN100351798C CN 100351798 C CN100351798 C CN 100351798C CN B008191794 A CNB008191794 A CN B008191794A CN 00819179 A CN00819179 A CN 00819179A CN 100351798 C CN100351798 C CN 100351798C
Authority
CN
China
Prior art keywords
thread
threads
program
register
program threads
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
CNB008191794A
Other languages
English (en)
Other versions
CN1643499A (zh
Inventor
G·沃尔里奇
D·胡珀
D·伯恩斯坦因
M·J·阿迪莱塔
W·威勒
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 CN1643499A publication Critical patent/CN1643499A/zh
Application granted granted Critical
Publication of CN100351798C publication Critical patent/CN100351798C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Abstract

描述一种基于硬件的并行多线程处理器。处理器包括协调系统功能的通用处理器以及支持程序线程的多个微引擎。处理器还包括存储器控制系统,该控制系统具有第一存储器控制器和第二存储器控制器,所述第一存储器控制器根据把存储器访问引导到偶数存储体还是奇数存储体而对存储器访问进行分类;第二存储器控制器根据存储器访问是读出访问或写入访问而使存储器访问最优化。还描述用于分组处理的程序线程通信方案。

Description

在多线程网络处理器中线程信令的分组处理方法和系统
技术领域
本发明涉及网络分组处理。
背景技术
在计算处理中,并行处理是同时发生事件的信息处理的有效形式。对比于顺序处理,并行处理要求在计算机中同时执行许多程序。在并行处理器的情况中,并行论包括同时做一件以上的事情。在串行范例中,在单个站或在特定站处执行任务的流水线机器上顺序地执行所有的任务,与串行范例不同,并行处理提供多个站,每个站能够执行所有的任务。即,一般地,在问题的相同的或共同的要点上,所有站或多个站同时和独立地工作。某些问题适合于通过应用并行处理而解决。
                            发明内容
根据本发明的一个方面,一种处理网络分组的方法包括接收网络分组,以及用多个程序线程在网络分组上操作,以影响所述分组的处理。
本发明的再一个方面提供一种用于网络分组处理的方法,包括:在具有共同性地提供多个程序线程的多个引擎的处理器上接收网络分组,其中所述多个引擎中的每一个都具有多个用于由各引擎分别提供的程序线程的程序计数器;以及用多个程序线程在所述网络分组上操作以影响所述分组的处理,所述线程中的至少一个线程访问第一寄存器,在第一寄存器的读出之后,它自动复位到零值。
本发明的另一个方面提供一种基于硬件的并行多线程处理器,包括:多个微引擎,其支持多个程序线程,其中所述多个引擎中的每一个都具有用于由各自的引擎提供的不同程序线程的多个程序计数器;以及在第一寄存器的读出之后自动复位到零值的第一寄存器。
本发明的另一个方面提供一种用于网络分组处理的方法,包括:接收网络分组;用多个由处理器的多个引擎所选择性地提供的程序线程在网络分组上操作以影响所述分组的处理,其中所述多个引擎中的每一个都有用于由各自的引擎所提供的不同程序的多个程序计数器;通过多个程序线程中的至少一些来访问第一寄存器以确定分组处理任务正在等待执行,以及如果多个程序线程中的一个程序线程确定第一寄存器具有表示分组处理任务等待执行的非零值,使第一寄存器复位到零值,使得分组处理任务由多个程序线程中的所述一个程序线程来处理。
本发明还提供一种系统,包括:处理器的多个引擎,用于执行多个线程的指令以处理由至少一个网络接口所接收到的分组,其中所述多个引擎中的每一个都有用于由各自的引擎所提供的不同程序的多个程序计数器;以及被不同的线程所共享以在线程之间提供线程间通讯的至少一个存储元件,所述至少一个存储元件包括具有相关逻辑以在寄存器被读取后将该寄存器设置为复位值的寄存器。
本发明还提供一种系统,它包括:至少一个以太网络媒介访问控制器;及一个处理器,通讯地耦合到至少一个以太网络媒介访问控制器以处理接收自至少一个以太网络媒介访问控制器的分组,该处理器包括:多个引擎,用于执行多个线程的指令,所述多个引擎中的多个具有用于存储多个线程的执行上下文的硬件;至少一个存储元件,用于在线程之间提供线程间通讯,至少一个存储元件包括响应于读出访问复位寄存器值的寄存器;其中多个引擎中的至少一个被配置为:识别一个处理接收到的分组的线程;在位矢量内设置位以识别用于已接收的分组的队列;及访问位矢量以识别多个服务列队中的一个列队。
                                附图简述
图1是使用基于硬件的多线程处理器的通信系统的方框图。
图2是图1的基于硬件的多线程处理器的详细方框图。
图3是在图1和2的基于硬件的多线程处理器中使用的微引擎功能单元的方框图。
图4是存储器控制器的方框图,用于在基于硬件的多线程处理器中所使用的增强带宽操作。
图5是存储器控制器的方框图,用于在基于硬件的多线程处理器中所使用的有限等待时间的操作。
图6是在图1处理器中的通信总线接口的方框图,描绘在程序线程信令中所使用的硬件。
图7A-7B是对于理解读出即清零寄存器的程序线程信令有用的图形表示和流程图。
图8是线程间信令方案的流程图。
图9是程序线程状态报告过程的流程图。
                            具体实施方式
结构
参考图1,通信系统10包括并行的基于硬件的多线程处理器12。把基于硬件的多线程处理器12耦合到诸如外围设备互连(PCI)总线14、存储器系统16和第二总线18之类的总线。系统10对于可以断开为并行子任务或功能的任务是特别有用的。基于硬件的多线程处理器12对于与带宽有关的而不是与等待时间有关的任务是特别有用的。基于硬件的多线程处理器12具有多个微引擎22,每个微引擎22具有可根据任务同时动作和独立地工作的多个受硬件控制的程序线程。
基于硬件的多线程处理器12还包括中央控制器20,对于基于硬件的多线程处理器12的其它资源,所述中央控制器有助于装载微代码控制,并执行其它通用计算机型功能,诸如处理协议、异常、用于分组处理的额外支持,其中,微引擎传递出用于诸如在边界条件中更详情处理的分组。在一个实施例中,处理器20是基于Strong Arm(Arm是英国ARM有限公司的注册商标)的结构。通用微处理器20具有操作系统。微处理器20可以通过操作系统调用功能,以在微引擎22a-22f上操作。处理器20可以使用任何支持的操作系统,最好是实时操作系统。对于作为Strong Arm结构而实施的核心处理器,可以使用诸如微软NT实时、VXWorks和μCUS、可在互联网上得到的免费软件操作系统之类的操作系统。
基于硬件的多线程处理器12还包括多个微引擎22a-22f。每一个微引擎22a-22f含有在硬件中的多个程序计数器,以及与程序计数器相关联的状态。实际上,在每个微引擎22a-22f上可以同时有相应的多个程序线程组工作,但是实际上在任何一段时间中只有一个进行操作。
在一个实施例中,有六个微引擎22a-22f,每一个具有处理四个硬件程序线程的能力。六个微引擎22a-22f与共享资源一起操作,所述共享资源包括存储器系统16和总线接口24和28。存储器系统16包括同步动态随机存取存储器(SDRAM)控制器26a和静态随机存取存储器(SRAM)控制器26b。一般使用SDRAM存储器16a和SDRAM控制器26a来处理大量的数据,例如,处理来自网络分组的网络有效负载。在短等待时、快访问任务的网络实施(例如,访问查找表、访问用于核心处理器20的存储器等)中,使用SDRAM控制器26a和SRAM控制器16b。
硬件上下文交换使具有唯一程序计数器的其它上下文在相同的微引擎中的执行成为可能。硬件上下文交换还使任务的完成同步。例如,两个程序线程可以请求相同的共享资源,例如SRAM。这些独立功能单元的每一个,例如FBUS接口28、DSRAM控制器26a以及SRAM控制器26b,当它们完成来自微引擎程序线程上下文之一所请求的任务时,就返回报告操作完成的标志信令。当微引擎接收到该标志时,微引擎可以确定要接通哪个程序线程。
作为网络处理器(例如路由器),基于硬件的多线程处理器12连接到诸如媒体访问控制器装置(例如,10/100BaseT八进制MAC 13a或千兆位以太网装置13b)之类的网络装置。一般地,作为网络处理器,基于硬件的多线程处理器12连接到接收/发送大量数据的任何类型的通信装置或接口。以并联方式在装置13a、13b中间按选择路由传递网络分组的网络应用中,网络处理器可以具有如同路由器10这样的功能。可以用基于硬件的多线程处理器12对每个网络分组独立地进行处理。
处理器12包括把处理器耦合到第二总线18的总线接口28。在一个实施例中,总线接口28把处理器12耦合到所谓的FBUS 18(FIFO(先进先出)总线)。FBUS接口28负责控制处理器12并把它连接到FBUS 18。FBUS 18是64位宽FIFO总线,作为到媒体访问控制器(MAC)装置的接口。处理器12包括第二接口(例如,PCI总线接口24),它把驻留在PCI 14总线上的其它系统部件耦合到处理器12。
把功能单元连接到一个或多个内部总线。内部总线是双向、32位总线(即,一条总线用于读出而一条总线用于写入)。还构成基于硬件的多线程处理器12,致使在处理器12中的内部总线的带宽总和超过耦合到处理器12的外部总线的带宽。处理器12包括内部核心处理器总线32,例如,ASB总线(高级系统总线),它把处理器核心20耦合到存储器控制器26a、26b以及耦合到下述ASB翻译器30。ASB总线是所谓的AMBA总线的子集,所述AMBA总线是与Strong Arm处理器核心一起使用的。处理器12还包括专用总线34,它把微引擎单元耦合到SRAM控制器26b、ASB翻译器30以及FBUS接口28。存储器总线38把存储器控制器26a、26b耦合到总线接口24和28以及存储器系统16,所述存储器系统16包括用于引导程序操作等的快闪ROM(只读存储器)16c。
参考图2,每个微引擎22a-22f包括一个仲裁器,该仲裁器检查标志,以判定操作所根据的可用程序线程。来自微引擎22a-22f的任何程序线程可以访问SDRAM控制器26a和DRAM控制器26b,每一个包括多个队列,以存储未确认的存储器访问请求。队列或是保留存储器访问的次序,或是安排存储器访问,以使存储器带宽最优化。
如果存储器子系统16实质上充满独立的存储器请求,则处理器12可以执行存储器访问分类。存储器访问分类减少随着对SRAM的访问而发生的停滞时间或冒泡。存储器访问分类允许处理器12对到存储器的访问进行组织,致使写入的长字符串可以跟随读出的长字符串。
访问分类有助于保持并联的硬件上下文程序线程。访问分类允许隐藏从一个SDRAM存储体到另一个的预加载。如果把存储器系统16b组织成奇数存储体和偶数存储体,则存储器控制器26b可以开始预加载偶数存储体。如果在奇数和偶数存储体之间轮流进行存储器访问,则预加载是可能的。通过对存储器访问进行排序,以轮流访问相对着的存储体,处理器12改进了SDRAM带宽。此外,可以使用其它最优化。例如,在存储器访问之前,在可以融合最优化的操作处融合最优化,通过检查地址融合打开页面最优化,已打开页面不重新打开,可以使用链接存储,它允许邻接的存储器访问和刷新机构的特殊处理。
FBUS接口28支持MAC装置支持的每个端口的发送和接收标志,以及表示何时保证业务的一个中断标志。FBUS接口28还包括控制器28a,它执行来自FBUS 18的输入分组的标头处理。控制器28a取出分组标头,并执行在SRAM中的微可编程源/目的地/协议散列查找(用于地址平滑)。如果没有成功地解答散列,则把分组标头发送到处理器核心20进行另外的处理。FBUS接口28支持下列内部数据处理事务:
FBUS单元     (共享总线RAM)        到/从微引擎
FBUS单元     (经由专用总线)       从SDRAM单元写入
FBUS单元     (经由Mbus)           读到SDRAM
FBUS 18是标准的工业总线,并包括数据总线,例如64位宽和对于地址的边带控制和读出/写入控制。FBUS接口28使用一系列输入和输出FIFO29a-29b提供输出大量数据的能力。微引擎22a-22f从FIFO 29a-29b取得来自SDRAM控制器26a的数据,或命令SDRAM控制器26a把数据从接收FIFO(其中,数据来自总线18中的一个装置)转移到FBUS接口28。通过直接存储器访问,可以通过存储器控制器26a把数据发送到SDRAM存储器16a。类似地,微引擎可以把数据从SDRAM 26a转移到接口28,经过FBUS接口28输出到FBUS 18。
在微引擎当中分发数据功能。到SDRAM 26a、SRAM 26b和FBUS 28的连接是通过命令请求的。命令请求可以是存储器请求或FBUS请求。例如,命令请求可以把数据从位于微引擎22a中的一个寄存器转移到一个共享资源,例如SDRAM存储单元、SRAM存储单元、快闪存储器或某些MAC地址。把命令送出到每个功能单元以及共享资源。然而,共享资源不需要保持数据的局部缓冲。而是,共享资源访问位于微引擎内部的分发数据。这使微引擎22a-22f能局部访问数据,而不是对在总线上的访问进行仲裁和有风险地竞争总线。用这个特征,对于等待微引擎22a-22f内部的数据存在0循环停转。
核心处理器20还可以访问共享资源。核心处理器20经过总线32到SDRAM控制器26a、到总线接口24以及到SRAM控制器26b可以直接进行通信。为了访问微引擎22a-22f和位于微引擎22a-22f中任何一个处的传送寄存器,核心处理器20通过总线34上的ASB翻译器30访问微引擎22a-22f。ASB翻译器30执行FBUS微引擎传送寄存器存储单元和核心处理器地址(即,ASB总线)之间的地址翻译,以致核心处理器20可以访问属于微引擎22a-22f的寄存器。
虽然微引擎22可以使用寄存器组来交换数据,但是还提供暂时存储器27,以允许微引擎把数据写到存储器供其它微引擎读出。把暂时存储器27耦合到总线34。
微引擎
参考图3,图中示出微引擎22a-22f的一个示例。微引擎包括控制存储器70,在一个实施例中,控制存储器70包括具有1024个32位字的RAM。RAM存储可通过核心处理器20装载的微引擎。微引擎22f还包括控制器逻辑72。控制器逻辑包括指令解码器73和程序计数器(PC)单元72a-72d。把四个微程序计数器72a-72d保留在硬件中。微引擎22f还包括上下文事件切换逻辑74。上下文事件逻辑74从例如SDRAM 26a、SRAM 26b或处理器核心20、控制和状态寄存器等共享资源中的每一个接收消息(例如,SEQ#EVENT_RESPONSE;FBI_EVENT_REPONSE;SRAM_EVENT_RESPONSE;SDRAM_EVENT_RESPONSE;以及ASB_EVENT_RESPONSE)。这些消息提供是否已经完成所请求功能的信息。根据是否已经完成程序线程请求的功能和发出完成信号,程序线程需要等待该完成信号,如果启动程序线程操作,则使程序线程安排一个可用程序线程清单(未示出)。例如,微引擎22f最多可得到4个程序线程。
除了对于执行程序线程是局部的事件信号之外,微引擎22还使用全局性的信令状态。用信令状态,执行程序线程就可以向所有微引擎22广播信号状态。在微引擎中的任何程序线程可以按这些信令状态转移。可以使用这些信令状态来判定资源的可用性或资源是否应该服务了。
上下文事件逻辑74具有对于四(4)个程序线程的仲裁。在一个实施例中,仲裁是一种循环式的机构。可以使用其它技术,包括优先级队列或加权公平队列。微引擎22f还包括执行盒(EBOX)数据路径76,它包括算术逻辑单元76a和通用寄存器组76b。算术逻辑单元76a执行算术和逻辑功能以及移位功能。寄存器组76b具有数目相当多的通用寄存器。在这个实施中,在第一存储体,存储体A,中有64个通用寄存器,在第二存储体,存储体B,中有64个。给通用寄存器设置窗口,以致它们是相对地和绝对地可寻址的。
微引擎22f还包括写入传送寄存器堆栈78以及读出传送堆栈80。也给这些寄存器设置窗口,以致它们是相对地和绝对地可寻址的。写入传送寄存器堆栈78是查找到资源的写入数据处。类似地,读出寄存器堆栈80是为了从共享资源返回的数据。在数据到达之后或与数据到达同时,将把来自例如SDRAM控制器26a、SRAM控制器26b或核心处理器20等的各个共享资源的事件信号提供给上下文事件仲裁器74,然后,上下文事件仲裁器74将向程序线程发出可得到数据或已经发送数据的警报。通过数据路径把传送寄存器存储体78和80两者连接到执行盒76。在一种实施中,读出传送寄存器具有64个寄存器,并且写入传送寄存器具有64个寄存器。
每个微引擎22a-22f支持四个上下文的多线程执行。一个原因是为了允许一个程序线程正好是在另一个程序线程发出存储器访问以后开始执行和必须等待直到在做更多工作之前完成访问。这个特性对于保持微引擎的有效硬件执行是关键性的,因为存储器等待时间是很重要的。换句话说,如果只支持单个程序线程执行,则微引擎将空转相当多数目的周期,坐等访问返回,从而降低了全面计算总处理能力。多线程的执行允许微引擎通过执行数个程序线程上的有用的独立工作而隐藏存储器等待时间。为了允许程序线程发出SRAM或SDRAM访问,提供两个同步的机构,然后,当该访问完成时,接着准时同步到位。
一个机构是立即同步。在立即同步中,微引擎发出访问和立即换出该上下文。当相应的访问完成时,将发出该上下文的信号。一旦发出信号,将返回换入当上下文交换事件发生时执行的上下文交换,并且轮到它运行。因此,从单个上下文的指令流的观点,在发出存储器访问之后,直到完成访问才执行微字
第二个机构是延迟同步。在延迟同步中,微引擎发出访问,并继续执行与访问无关的某些其它有用的工作。一段时间以后,可能在进一步执行工作之前变得需要使程序线程的执行流与所发出的访问的完成同步。此时,执行同步微字,或是换出当前程序线程,并在较后时间当已经完成访问时返回换入程序线程,或是因为已经完成访问而继续执行当前程序线程。使用两种不同的信令方案来实施延迟同步:
如果使存储器访问与一个传送寄存器相关联,则当设置或清除相应的传送寄存器有效位时,产生触发程序线程的信号。例如,当设置传送寄存器A的有效位时,将对于放置数据到传送寄存器A中的SRAM读出发出信号。如果使存储器访问与代替传送寄存器的传送FIFO或接收FIFO相关联,则当在SDRAM控制器26a中完成访问时,产生信号。在微引擎调度程序中只保存每个上下文的一个信号,因此在这种方案中只可以存在一个未完成的信号。
参考图4,SDRAM存储器控制器26a包括存储器访问队列90,这里,从各微引擎22a-22f来的存储器访问请求到达。存储器控制器26a包括仲裁器91,它选择下一个微引擎访问请求,以转向任何功能单元。如果微引擎之一正在提供访问请求,则访问请求将通过在SDRAM控制器26a内部的地址和命令队列90。如果访问请求具有称之为“最优化MEM位”的位设置,则将把输入访问请求分类成偶数存储体队列90a或奇数存储体队列90b。如果存储器访问请求没有存储器最优化位设置,则缺省值将转向排序队列90c。SDRAM控制器26a是FBUS接口28、核心处理器20以及PCI接口24之间共享的资源。SDRAM控制器26a还保持一个状态机,用于执行读出-修改-写入原子操作。SDRAM控制器26a还对于来自SDRAM的数据的请求执行字节调整。
排序队列90c保持来自微引擎的访问请求的排序。具有一系列奇数和偶数存储体访问,可以要求只在完成奇数和偶数存储体两者的存储器访问请求的序列时,才返回一个信号。如果微引擎22f把存储器访问请求分类成奇数存储体和偶数存储体访问,并且存储体之一,例如偶数存储体,在奇数存储体之前排空了存储器访问,但是在最后的偶数访问上确立了信号,则SDRAM控制器26a可以想象地把已经完成存储器请求的信号发送回微引擎,即使未曾对奇数存储体服务。这种情况可能导致相关的问题。排序队列90c允许微引擎具有多个存储器访问,其中未完成的只是它最后的存储器访问需要发出完成的信号。
SDRAM控制器26a还包括高优先级队列90d。在高优先级队列90d中,来自微引擎之一的输入存储器访问直接转向高优先级队列,并且是按比其它队列中的其它存储器访问较高的优先级而操作的。所有这些队列,偶数存储体队列90a、奇数存储体队列90b、排序队列90c以及高优先级队列,是在单个RAM结构中实施的,把所述单个RAM结构局部地分段成四个不同的窗口,每个窗口具有它自己的头和尾指针。由于填充和排出只是单个输入和单个输出,所以可以把它们安排在相同的RAM结构中,以增加RAM结构的密度。
SDRAM控制器26a还包括核心总线接口逻辑,即ASB总线92。ASB总线接口逻辑92把核心处理器20连接到SDRAM控制器26a。如果存在从核心处理器20经过ASB接口92来的输入数据,则可以把数据存储在MEM ASB装置98中,并接着从MEM ASB装置98取出,通过SDRAM接口110到SDRAM存储器16a。虽然未示出,但是对于读出可以提供相同的队列结构。SDRAM控制器26a还包括核心程序97,以从微引擎和PCI总线获得数据。
另外的队列包括保持许多请求的PCI地址队列94和ASB读出/写入队列96。经过多路复用器106把存储器请求发送到SDRAM接口110。SDRAM仲裁器91控制多路复用器106,所述SDRAM仲裁器91检测每个队列的完整性以及请求的状态,并从完整性和状态根据存储在优先级服务控制寄存器100中的可编程值判定优先级。
参考图5,图中示出用于SRAM的存储器控制器26b。存储器控制器26b包括地址和命令队列120。根据存储器操作的类型(即读出或写入)使存储器控制器26b最优化。地址和命令队列120包括高优先级队列120a、读出队列120b(它是SRAM执行的主要存储器访问功能)以及排序队列120c(一般它包括到SRAM的所有写入和读出,未被最优化)。虽然未示出,但是地址和命令队列120还可以包括写入队列。
SRAM控制器26b还包括核心总线接口逻辑,即ASB总线122。ASB总线接口逻辑122把核心处理器20连接到SRAM控制器26b。SRAM控制器26b还包括核心程序127,以从微引擎和PCI总线获得数据。
经过多路复用器126把存储器请求发送到SRAM接口140。SRAM仲裁器131控制多路复用器126,所述SRAM仲裁器131检测每个队列的完整性以及请求的状态,并从完整性和状态根据存储在优先级服务控制寄存器130中的可编程值判定优先级。一旦到多路复用器126的控制选择一个存储器访问请求,就把存储器访问请求发送到解码器138,在那里对它进行解码和产生一个地址
SRAM单元保持对存储器映射的芯片外SRAM和扩展ROM进行控制。例如,SRAM控制器26b可以进行16兆字节的寻址,例如,8兆字节用于对SRAM16b的映射,并保留8兆字节用于特定功能,包括经过快闪只读存储器16c的引导程序空间;以及用于MAC装置13a、13b的控制台端口访问和到相关联的(RMON)计数器的访问。把SRAM使用于局部查找表和队列管理功能。
SRAM控制器26b支持下列处理事务:
微引擎请求            (经过专用总线)           到/从SRAM
核心处理器              (经过ASB总线)         到/从SRAM
地址和命令队列120还包括读出锁定失效队列120d。使用读出锁定失效队列120d来保存因一部分存储器上存在锁定而失效的读出存储器访问请求。
参考图6,示出微引擎22和FBUS接口逻辑(FBI)之间的通信。在网络应用中的FBUS接口28可以执行来自FBUS 18的输入分组的标头处理。FBUS接口执行的关键功能是取出在SRAM中的分组标头,以及微可编程源/目的地/协议散列查找表。如果没有成功地解得散列,则设法通过核心处理器28对分组标头进行更复杂的处理。
FBI 28包括发送FIFO 182、接收FIFO 183、散列单元188以及FBI控制和状态寄存器189。这四个单元通过到SRAM总线38的时间多路复用的访问而与微引擎22进行通信,所述SRAM总线38是连接到微引擎中的传送寄存器78、80的。即到和从微引擎的所有通信都是经过传送寄存器78、80的。FBUS接口28包括在SRAM不使用SRAM数据总线(总线38的一部分)的时间周期期间把数据推入传送寄存器的推入状态机200;以及从在相应的微引擎中的传送寄存器得到数据的拉出状态机202。
散列单元包括一对FIFO 188a、188b。散列单元判定FBI 28接收到FBI_hash请求。散列单元从调用微引擎22得到散列密钥。在得到密钥并使之散列之后,把标记返回传递到调用微引擎22。在单个FBI_hash请求之下执行多达3个散列。总线34和38的每一个是单向的:SDRAM_push/pull_data以及Sbus_push/pull_data。这些总线的每一个需要控制信号,所述控制信号将把读出/写入控制提供给合适的微引擎22传送寄存器。
一般地,传送寄存器需要来自控制它们的上下文的保护,以保证读出正确度。尤其,如果thread_1正在使用写入传送寄存器,以把数据提供给SDRAM16a,那么直到从SDRAM控制器26a返回的信号表示已经设法通过该寄存器而且现在可以再使用时才重写该寄存器。每个写入不需要从目的地返回表示已经完成该功能的信号,因为如果程序线程在具有多个请求的目的地处写入相同的命令队列,则保证在该命令队列中的完成的排序,因此只有最后的命令需要把信号发回程序线程。然而,如果程序线程使用多个命令队列(排序和读出),则把这些命令请求分裂成独立的上下文任务,以致通过上下文交换而保持排序。在本段开始处表示的例外情况是相当于某些操作类别的,这些操作对于FBUS状态信息使用从FBI到传送寄存器的不请求的PUSH(推入)。为了保护在传送寄存器上的读出/写入判定,当设置这些特定的FBI推入操作时,FBI提供特定的Push_protect信号。
使用FBI未经请求推入技术的任何微引擎22必须在访问传送寄存器同意的FBUS接口/微引擎之前测试保护标志。如果没有确立标志,则微引擎22可以访问传送寄存器。如果确立标志,则在访问寄存器之前上下文应该等待N个周期。通过正在推入的许多传送寄存器,加上前端保护窗口,先验地判定这个计数。微引擎测试这个标志,然后把数据从读出传送寄存器转移到在邻接周期中的GPR(通用寄存器),所以推入核心程序不会与微引擎读出相碰撞。
用于分组处理的线程信令
对于分组处理,可使用诸如线程间通信之类传递状态的专门技术,允许程序线程自己分配任务的自毁寄存器210,以及提供全局程序线程通信方案的线程_完成(thread_done)寄存器212。自毁寄存器210和线程_完成寄存器212可以实施为控制和状态寄存器(CSR,control and status register)189。为了清楚起见,在标有CSR块的外部的FBUS接口28中示出它们。在网络处理器中使用多个程序线程(例如,上下文)实施网络功能,以处理网络分组。例如,可以在微引擎核心程序(例如22a)之一中执行调度程序线程,同时,在其余的核心程序(例如22b-22f)中可以执行处理程序线程。程序线程(处理或调度程序线程)使用线程间通信来传递状态。
向程序线程分配特殊任务,诸如接收和发送调度,接收处理以及发送处理等。通过具有特殊读出和写入特征的线程间的信令、寄存器(例如自毁寄存器210和线程完成寄存器212、SRAM 16b以及从诸如位设置和位清除等操作产生的,存储在内部暂时存储器186中的数据(图6)),在程序线程之间传递任务分配和任务完成。
网络处理器10包括一般上下文通信信令协议,该协议允许任何上下文设置任何其它上下文可以检测的一个信号。这允许合作的程序线程使用信号量,因此使用受微代码控制的处理进行协调。
网络分组的处理可以使用多个程序线程。一般地,对于网络处理,存在接收调度程序、发送调度程序以及处理程序线程。调度程序(接收或发送)程序线程通过处理程序线程,对要完成的工作量和工作的序列进行协调。调度程序线程把任务分配给处理程序线程,在某些情况中,处理程序线程可以把任务分配给其它处理程序线程。例如,调度程序判定哪个端口需要服务,并通过并行地处理多个程序线程来分配和调度到处理程序线程的任务,以克服固有的存储器等待时间。
在某些例子中,用慢端口,处理程序线程可以在一部分分组上执行处理,而第二处理程序线程处理其余的分组,或在某些情况中,调度程序使用下一个可用程序线程。例如,用较快的端口(例如千兆位端口,其中极快地接收64字节分组),调度程序可以把M个分组分配给下一个可用程序线程。程序线程信号彼此按照程序线程已经处理的那一部分分组和它的状态。
可以分配程序线程,以处理分组的第一64字节。当程序线程完成时,程序线程具有设置信号以唤醒下一个程序线程的数据,已经分配下一个程序线程来处理下一64字节。程序线程可以写入一个寄存器以及在预-分配的存储器存储单元(例如暂时寄存器)中写入寄存器的地址。程序线程设置信号以唤醒下一个程序线程,所述下一个程序线程是已经分配在分组的下一个字节上工作的。
参考图7A-7B,自毁寄存器210允许一个调度程序线程S(在图7B中的230)请求来自提供所请求的服务的多个程序线程Pa-Pn的服务。第一程序线程(例如,访问自毁寄存器210的Pi(在图7B中的232))取得请求。“自毁寄存器”210在通过程序线程读出时清零,即清除(在图7B中的234)。能够对该请求进行服务的其它程序线程不再与活动的请求一起存在。例如,通过写入到自毁寄存器210,一个程序上下文可以请求一个任务,所述任务是分配给已准备好的第一上下文的。上下文通过读出“自毁寄存器”210而检查分配。如果自毁寄存器的值是0,则当前不可得到新的任务来分配给程序线程。这可以表示不存在新的任务,或另一程序线程可能已经被自分配任务并清除自毁寄存器210。如果值不是0,则对自毁寄存器的内容进行解译,以判定任务,并在上下文读出时清除寄存器。因此,读出这个用于分配的寄存器的上下文接着等待用下一个任务指令写入寄存器。
参考图8,对于网络应用,一般使用不同程序上下文来执行特定的系统任务。任务包括接收调度程序、接收处理上下文、发送仲裁器、发送调度程序、发送填充和处理器核心通信。
例如,接收调度程序通过把命令发送到FBI接口28而启动242输入64或128字节的数据的接收操作,所述FBI接口28指定取出数据的端口,并指定用于缓冲该数据的接收FIFO单元,以及指定一旦已经获取接收数据就要通知的微引擎上下文。
接收调度程序线程244把信号发送到激励指定的上下文的指定的微引擎程序线程。上下文读出FBI接收控制寄存器,以得到用于处理所必需的接收信息(例如,端口、接收FIFO单元存储单元、字节计数、分组的开始、分组的结束、误差状态)。如果表示是分组的开始,则接收调度程序线程负责确定在SDRAM中的何处存储数据,(即插入分组的输出队列),并把分组数据写入SDRAM中。如果这不是分组的开始,则接收程序线程确定这个分组的较早的数据存储在何处,以便继续进行对分组的处理246。当接收到分组结束的表示248时,(或在第一64字节部分之后,如果使接收以发送等待时间最优化),接收程序线程把分组添加到通过处理分组标头而确定的队列中。
程序线程还通过提供位矢量的位设置和位清除机构与共享资源进行通信。这个机构允许个别位的设置和清除,并在个别位上执行测试和设置,以控制共享资源。位矢量发出输出队列的非空的信号。当接收程序线程使分组排队时,接收调度程序设置一个位250。发送调度程序可以检查位矢量,以确定所有队列的状态。
在暂存RAM或SRAM中可以发生在位矢量上的位设置和位清除操作。如果调度程序正在相同微引擎22上的程序线程之间进行通信,则可以把位矢量存储在寄存器组中,因为每个上下文可以读出其它上下文的寄存器。例如,在内部暂存存储器中的位矢量支持每个输出队列的空状态或非空状态。当接收程序线程的队列有一个分组时,接收程序线程使用暂存位设置命令,以在队列状态位中设置一个位,表示现在队列具有至少一个输入。对于非空的队列(例如,设置了bitx),发送仲裁器对队列位矢量进行扫描270,以判定准备发送的分组。当从队列取出分组用于发送时272,如果队列空了274,则发送仲裁器发出276位清除命令到队列位矢量的相应的位。
参考图9,thread_done(线程_完成)寄存器也在FBI 28上,它是可以从不同程序线程设置位的一种寄存器。例如,每个程序线程可以使用两位来把它的状态传递到所有其它程序线程。还有一个调度程序线程可以读出292其所有处理程序线程状态。在完成接收任务时,282“接收”程序线程把完成代码写入284到“thread_done”寄存器中。在写入thread_done寄存器之后,接收程序线程变成非现用286。接收程序线程等待来自FBI的,表示已经分配其它接收任务的其它信号。程序线程1-16具有用于“thread_done_1”的2位字段,而程序线程17-24具有用于“thread_done_2”的2位字段。2位字段允许程序线程传递不同程度任务完成。
例如,调度程序可以使用两位状态“01”来表示把数据转移到SDRAM、仍在进行分组的处理以及被保存的指针;位10可以表示把数据转移到SDRAM、仍在进行分组的处理以及不保存的指针;而位11可以表示完成了分组处理。因此,当数据变成可得到时,接收调度程序线程可以使用状态296a来处理任务,而,当数据变成可得到时,接收调度程序可以使用状态296b分配297b相同的线程以继续进行处理。
调度程序线程调用的,在调度程序线程和处理程序线程之间的软件约定可以解决消息的确切解译。即,根据约定是否是用于以上接收、发送等,状态消息可以改变。一般地,状态消息包括“忙”、“不忙”、“不忙但是等待”。“不忙,但是等待”的状态消息发出表示当前的程序线程已经完成一部分分组的处理,并期望分配任务的信号,当可得到数据时,在分组上执行接着的任务。当程序线程正在期望来自端口的数据,并且尚未保存上下文,所以它应该处理该分组的其余部分时,可以使用。
调度程序线程读出“thread_done”寄存器,以判定它分配给其它程序线程的任务的完成状态。实施“thread_done”寄存器作为写入1以清除寄存器,允许调度程序在它刚识别字段时就进行清除。
其它实施例
可以理解,在已经连同本发明的详细说明描述本发明的同时,打算把上述说明作为示例而不是限制本发明的范围,通过所附的权利要求书来定义本发明的范围。其它方面、优点和修改都在下列权利要求书的范围内。

Claims (41)

1.一种用于网络分组处理的方法,包括:
在具有共同性地提供多个程序线程的多个引擎的处理器上接收网络分组,其中所述多个引擎中的每一个引擎都具有用于由各自引擎提供的不同程序线程的多个程序计数器,其中所述多个程序线程包括至少一个对处理的任务排序进行调度的调度程序线程以及根据调度程序线程所分配的任务分派对分组进行处理的处理程序线程;以及
用多个程序线程在所述网络分组上操作以影响所述分组的处理,所述程序线程中的至少一个程序线程访问第一寄存器,在第一寄存器的读出之后该第一寄存器自动复位到零值。
2.如权利要求1所述的方法,其特征在于,操作包括:
使用至少一个程序线程来检查所述分组的标头部分。
3.如权利要求1所述的方法,其特征在于,所述操作进一步包括:
由所述至少一个程序线程发出已经处理分组标头的信号。
4.如权利要求1所述的方法,其特征在于,每个程序线程把表示该程序线程当前状态的消息写入第二寄存器。
5.如权利要求4所述的方法,其特征在于,消息的解译由调度程序线程和被该调度程序线程调用的程序线程之间确定的软件约定所固定。
6.如权利要求4所述的方法,其特征在于,状态消息包括忙、不忙、不忙但等待。
7.如权利要求4所述的方法,其中,状态消息包括不忙但等待,以及其中,不忙但等待的状态发出信号,表示当前程序线程已经完成一部分分组的处理,当可以提供数据以继续程序线程的处理时,期望被分配对所述分组执行接续的任务。
8.如权利要求4所述的方法,其特征在于,所述第二寄存器是可以被由所述多个引擎的不同引擎所执行的多个程序线程的不同程序线程作读出或写入的寄存器。
9.如权利要求1所述的方法,其特征在于,调度程序线程能够调度多个处理程序线程中的一个,以处置任务的处理。
10.如权利要求9所述的方法,其特征在于,调度程序线程用对应于所述多个程序线程的数据的存储位置的一个地址写入第三寄存器。
11.如权利要求10所述的方法,其特征在于,能够处置所述任务的多个处理程序线程中的一个处理程序线程读出第三寄存器以得到数据的存储位置。
12.如权利要求11所述的方法,其特征在于,多个处理程序线程中的一个处理程序线程读出第三寄存器以得到数据的存储位置,并分配它自己处理调度程序线程所请求的任务。
13.如权利要求11所述的方法,其特征在于,第三寄存器由在第一寄存器的读出之后自动复位到零值的第一寄存器构成,以及其中多个处理任务中的一个处理任务读出第三寄存器以得到数据的存储位置。
14.如权利要求13所述的方法,其特征在于,当多个处理程序线程中的可分配给所述任务的另一个处理程序线程读出第三寄存器时,给它设置一个零值,表示不存在处理程序线程的任务。
15.如权利要求1所述的方法,其特征在于,所述多个引擎中的至少一个引擎包括一个提供所述多个线程中的多个的引擎。
16.一种用于接收网络分组的基于硬件的并行多线程处理器,包括:协调系统功能的一个通用处理器;以及
多个微引擎,其支持多个程序线程,其中所述多个引擎中的每一个都具有用于由各自的引擎提供的不同程序线程的多个程序计数器,并用多个程序线程在所述网络分组上操作以影响所述分组的处理,其中所述多个程序线程包括至少一个对处理的任务排序进行调度的调度程序线程以及根据调度程序线程所分配的任务分派对分组进行处理的处理程序线程;
由所述多个微引擎的多个程序线程中的至少一个程序线程访问的第一寄存器,在第一寄存器的读出之后它自动复位到零值。
17.如权利要求16所述的处理器,其特征在于,多个微引擎中的一个微引擎执行至少一个调度程序线程,并且其余一些微引擎执行处理程序线程。
18.如权利要求16所述的处理器,其特征在于,进一步包括一个第二寄存器,其中,所述多个程序线程把表示所述线程各自当前状态的消息写入所述第二寄存器。
19.如权利要求18所述的处理器,其特征在于,消息的解译由调度程序线程与被调度程序线程调用的程序线程之间的软件约定固定。
20.如权利要求16所述的处理器,其特征在于,程序线程对所述第一寄存器进行写入,并且当多个程序线程中的一个程序线程读出所述寄存器时,所述一个程序线程分配它自己处理一任务。
21.如权利要求20所述的处理器,其特征在于,当多个处理程序线程中的另一个处理程序线程读出所述寄存器时,给多个处理程序线程中的另一个处理程序线程设置一个零值,表示不存在分配的任务。
22.一种用于网络分组处理的方法,所述方法包括:
接收网络分组;
用由处理器的多个引擎所共同性地提供的多个程序线程在网络分组上操作以影响所述分组的处理,其中所述多个引擎中的每一个都有用于由各自的引擎所提供的不同程序线程的多个程序计数器,其中所述多个程序线程包括至少一个对处理的任务排序进行调度的调度程序线程以及根据调度程序线程所分配的任务分派对分组进行处理的处理程序线程;
通过多个程序线程中的至少一些来访问第一寄存器以确定分组处理任务是否正在等待执行,
如果多个程序线程中的一个程序线程确定第一寄存器具有表示分组处理任务等待执行的非零值,使第一寄存器复位到零值,以及
使得分组处理任务由多个程序线程中的所述一个程序线程来处理。
23.如权利要求22所述的方法,其特征在于,在网络分组上操作进一步包括:
使用至少一个程序线程来检查分组的标头部分。
24.如权利要求22所述的方法,其特征在于,进一步包括
提供对处理的任务排序进行调度的调度程序线程;和
根据所述调度程序线程所分配的任务分派对分组进行处理的处理程序线程。
25.如权利要求22述的方法,其特征在于,每个程序线程把表示该程序线程当前状态的消息写入第二寄存器。
26.如权利要求25所述的方法,其特征在于,所述第一寄存器是所有当前程序线程能够对其读出或写入的可访问寄存器。
27.如权利要求22所述的方法,其特征在于,第一寄存器是一个在第一寄存器读出时自动复位到零值的寄存器。
28.如权利要求27所述的方法,其特征在于,当多个处理程序线程中的另一个处理程序线程读出第一寄存器时,给多个处理程序线程中的另一个处理程序线程提供一个零值,表示不存在处理程序线程的任务。
29.如权利要求22所述的方法,其特征在于,所述多个引擎中的至少一个引擎包括一个提供所述多个线程中的多个的引擎。
30.一种系统,包括:
处理器的多个引擎,用于执行多个程序线程的指令以处理经至少一个网络接口所接收到的分组,其中所述多个引擎中的每一个都有用于由各自的引擎所提供的不同程序线程的多个程序计数器,其中所述多个程序线程包括至少一个对处理的任务排序进行调度的调度程序线程以及根据调度程序线程所分配的任务分派对分组进行处理的处理程序线程;以及
至少一个存储元件,被多个程序线程的不同程序线程所共享以在在所述程序线程之间提供线程间通讯,所述至少一个存储元件包括一具有相关逻辑的寄存器,在对该寄存器读取后将其设置为复位值。
31.如权利要求30所述的系统,其特征在于,它还包括:
所述多个线程中的第一个线程的指令,其被置于计算机可读媒介上,用于将一个值写到存储元件以识别任务的可用性;以及
所述多个线程中的第二个线程的指令,其被置于计算机可读媒介上,用于读取存储元件并且当所获取的存储元件的值不等于存储元件的复位值时执行任务。
32.如权利要求30所述的系统,其特征在于,所述至少一个存储元件还包括另一个寄存器,该寄存器的不同部分被分配给不同引擎的不同线程。
33.如权利要求32所述的系统,其特征在于,它还包括:
多个线程的第一个的指令,其被置于计算机可读媒介上,用于将任务完成状态写入被分配给多个线程的第一个的部分;以及
多个线程的第二个的指令,其被置于计算机可读媒介上,用于将被分配给多个线程的第一个的部分的任务完成状态读出。
34.如权利要求30所述的系统,其特征在于,它还包括:
多个线程的第一个的指令,其被置于计算机可读媒介上,用于设定位矢量中的位以识别被添加到队列中的分组。
35.如权利要求34所述的系统,其特征在于,它还包括:
多个线程的第二个的指令,其被置于计算机可读媒介上,用于根据位矢量确定多个队列中的一个队列。
36.如权利要求30所述的系统,其特征在于,它还包括:
调度线程的指令,其被置于计算机可读媒介上,用于分配不同的线程以处理接收到的分组。
37.如权利要求30所述的系统,其特征在于,它还包括:
接收线程的指令,其被置于计算机可读媒介上,用于重新集合被分配给线程的分组。
38.如权利要求30所述的系统,其特征在于,所述存储元件包括一个在处理器内的被不同的引擎所共享的存储器。
39.一种系统,它包括:
至少一个以太网络媒介访问控制器;及
一个处理器,通讯地耦合到至少一个以太网络媒介访问控制器以处理经至少一个以太网络媒介访问控制器接收的分组,该处理器包括:
多个引擎,用于执行多个程序线程的指令,所述多个引擎中的多个具有用于存储多个程序线程的执行上下文的硬件,其中所述多个程序线程包括至少一个对处理的任务排序进行调度的调度程序线程以及根据调度程序线程所分配的任务分派对分组进行处理的处理程序线程;
至少一个存储元件,用于在程序线程之间提供程序线程间通讯,至少一个存储元件包括第一寄存器,它响应于读出访问而复位寄存器值;及
其中多个引擎中的至少一个被配置为:
识别一个处理接收到的分组的程序线程;
在位矢量内设置位以识别接收到的分组;及
访问位矢量以识别服务的多个队列中的一个队列。
40.如权利要求39所述的系统,其特征在于,所述存储元件包括一个在处理器内的被不同引擎所共享的存储器。
41.如权利要求39所述的系统,其特征在于,所述存储元件包括第二寄存器,其各部分被分配给不同的线程。
CNB008191794A 1999-12-28 2000-12-08 在多线程网络处理器中线程信令的分组处理方法和系统 Expired - Fee Related CN100351798C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/473,799 1999-12-28
US09/473,799 US6625654B1 (en) 1999-12-28 1999-12-28 Thread signaling in multi-threaded network processor

Publications (2)

Publication Number Publication Date
CN1643499A CN1643499A (zh) 2005-07-20
CN100351798C true CN100351798C (zh) 2007-11-28

Family

ID=23881024

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008191794A Expired - Fee Related CN100351798C (zh) 1999-12-28 2000-12-08 在多线程网络处理器中线程信令的分组处理方法和系统

Country Status (10)

Country Link
US (3) US6625654B1 (zh)
EP (1) EP1242883B1 (zh)
CN (1) CN100351798C (zh)
AT (1) ATE339724T1 (zh)
AU (1) AU4311601A (zh)
DE (1) DE60030767T2 (zh)
HK (1) HK1046050A1 (zh)
SG (1) SG145543A1 (zh)
TW (1) TW544629B (zh)
WO (1) WO2001048606A2 (zh)

Families Citing this family (213)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2728559B1 (fr) * 1994-12-23 1997-01-31 Saint Gobain Vitrage Substrats en verre revetus d'un empilement de couches minces a proprietes de reflexion dans l'infrarouge et/ou dans le domaine du rayonnement solaire
US7266725B2 (en) * 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
EP1329816B1 (de) * 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) * 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6792500B1 (en) * 1998-07-08 2004-09-14 Broadcom Corporation Apparatus and method for managing memory defects
US20030095967A1 (en) * 1999-01-25 2003-05-22 Mackay Fabienne BAFF, inhibitors thereof and their use in the modulation of B-cell response and treatment of autoimmune disorders
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
US7017020B2 (en) * 1999-07-16 2006-03-21 Broadcom Corporation Apparatus and method for optimizing access to memory
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
WO2001016702A1 (en) 1999-09-01 2001-03-08 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
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
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7480706B1 (en) * 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6952824B1 (en) * 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
EP2226732A3 (de) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
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
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
JP2004517386A (ja) * 2000-10-06 2004-06-10 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト 方法および装置
US7051330B1 (en) * 2000-11-21 2006-05-23 Microsoft Corporation Generic application server and method of operation therefor
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
US9037807B2 (en) * 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US20090300262A1 (en) * 2001-03-05 2009-12-03 Martin Vorbach Methods and devices for treating and/or processing data
US20090210653A1 (en) * 2001-03-05 2009-08-20 Pact Xpp Technologies Ag Method and device for treating and processing data
US20070299993A1 (en) * 2001-03-05 2007-12-27 Pact Xpp Technologies Ag Method and Device for Treating and Processing Data
WO2005045692A2 (en) * 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7581076B2 (en) * 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
US7844796B2 (en) * 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) * 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7657877B2 (en) * 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
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
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
US7434191B2 (en) * 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
JP2003099272A (ja) * 2001-09-20 2003-04-04 Ricoh Co Ltd タスク切替システムと方法およびdspとモデム
EP1868111A1 (en) * 2001-09-28 2007-12-19 ConSentry Networks, Inc. A multi-threaded packet processing engine for stateful packet processing
US7126952B2 (en) * 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
SG155038A1 (en) * 2001-09-28 2009-09-30 Consentry Networks Inc A multi-threaded packet processing engine for stateful packet processing
US6904040B2 (en) * 2001-10-05 2005-06-07 International Business Machines Corporaiton Packet preprocessing interface for multiprocessor network handler
US7577822B2 (en) * 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
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
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
AU2003214046A1 (en) * 2002-01-18 2003-09-09 Pact Xpp Technologies Ag Method and device for partitioning large computer programs
AU2003208266A1 (en) * 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7181594B2 (en) * 2002-01-25 2007-02-20 Intel Corporation Context pipelines
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
MXPA04008502A (es) * 2002-03-05 2004-12-06 Ibm Metodos para buscar previamente, datos/instrucciones relacionados con eventos activados externamente.
US8914590B2 (en) * 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
WO2003081454A2 (de) * 2002-03-21 2003-10-02 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
WO2004088502A2 (de) * 2003-04-04 2004-10-14 Pact Xpp Technologies Ag Verfahren und vorrichtung für die datenverarbeitung
GB0209670D0 (en) * 2002-04-26 2002-06-05 Easics Nv Efficient packet processing pipelining device and method
US7376950B2 (en) 2002-05-08 2008-05-20 Intel Corporation Signal aggregation
US7269752B2 (en) * 2002-06-04 2007-09-11 Lucent Technologies Inc. Dynamically controlling power consumption within a network node
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
US20030233485A1 (en) * 2002-06-13 2003-12-18 Mircrosoft Corporation Event queue
JP2004062446A (ja) * 2002-07-26 2004-02-26 Ibm Japan Ltd 情報収集システム、アプリケーションサーバ、情報収集方法、およびプログラム
WO2004021176A2 (de) * 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2005010632A2 (en) * 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
US20110238948A1 (en) * 2002-08-07 2011-09-29 Martin Vorbach Method and device for coupling a data processing unit and a data processing array
US7124196B2 (en) * 2002-08-07 2006-10-17 Intel Corporation Processing a network packet using queues
US7577816B2 (en) * 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
US7394284B2 (en) * 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7627721B2 (en) 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
US7924828B2 (en) 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
US8015567B2 (en) 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US8037224B2 (en) 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US7961723B2 (en) * 2002-10-08 2011-06-14 Netlogic Microsystems, Inc. Advanced processor with mechanism for enforcing ordering between information sent on two independent networks
US9088474B2 (en) * 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US7334086B2 (en) 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7984268B2 (en) * 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US7346757B2 (en) 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US8478811B2 (en) * 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US8176298B2 (en) * 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US20050033889A1 (en) * 2002-10-08 2005-02-10 Hass David T. Advanced processor with interrupt delivery mechanism for multi-threaded multi-CPU system on a chip
US7039914B2 (en) 2003-03-07 2006-05-02 Cisco Technology, Inc. Message processing in network forwarding engine by tracking order of assigned thread in order group
US7500239B2 (en) * 2003-05-23 2009-03-03 Intel Corporation Packet processing system
JP4432388B2 (ja) 2003-08-12 2010-03-17 株式会社日立製作所 入出力制御装置
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7421565B1 (en) 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7735088B1 (en) * 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
US7743223B2 (en) * 2003-08-18 2010-06-22 Cray Inc. Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system
US7376952B2 (en) * 2003-09-15 2008-05-20 Intel Corporation Optimizing critical section microblocks by controlling thread execution
US20050096999A1 (en) * 2003-11-05 2005-05-05 Chicago Mercantile Exchange Trade engine processing of mass quote messages and resulting production of market data
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
JP2005276165A (ja) * 2004-02-27 2005-10-06 Sony Corp 情報処理装置、ネットワークシステム状況呈示方法およびコンピュータプログラム
JP4586526B2 (ja) 2004-02-27 2010-11-24 ソニー株式会社 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム
US20060048156A1 (en) * 2004-04-02 2006-03-02 Lim Soon C Unified control store
US7418582B1 (en) 2004-05-13 2008-08-26 Sun Microsystems, Inc. Versatile register file design for a multi-threaded processor utilizing different modes and register windows
US7571284B1 (en) 2004-06-30 2009-08-04 Sun Microsystems, Inc. Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor
US7185178B1 (en) 2004-06-30 2007-02-27 Sun Microsystems, Inc. Fetch speculation in a multithreaded processor
US20060009265A1 (en) * 2004-06-30 2006-01-12 Clapper Edward O Communication blackout feature
US7426630B1 (en) 2004-06-30 2008-09-16 Sun Microsystems, Inc. Arbitration of window swap operations
US7676655B2 (en) * 2004-06-30 2010-03-09 Sun Microsystems, Inc. Single bit control of threads in a multithreaded multicore processor
US7383403B1 (en) 2004-06-30 2008-06-03 Sun Microsystems, Inc. Concurrent bypass to instruction buffers in a fine grain multithreaded processor
US7353364B1 (en) 2004-06-30 2008-04-01 Sun Microsystems, Inc. Apparatus and method for sharing a functional unit execution resource among a plurality of functional units
US8095778B1 (en) 2004-06-30 2012-01-10 Open Computing Trust I & II Method and system for sharing functional units of a multithreaded processor
US7774393B1 (en) 2004-06-30 2010-08-10 Oracle America, Inc. Apparatus and method for integer to floating-point format conversion
US7702887B1 (en) 2004-06-30 2010-04-20 Sun Microsystems, Inc. Performance instrumentation in a fine grain multithreaded multicore processor
US7861063B1 (en) 2004-06-30 2010-12-28 Oracle America, Inc. Delay slot handling in a processor
US7747771B1 (en) 2004-06-30 2010-06-29 Oracle America, Inc. Register access protocol in a multihreaded multi-core processor
US7519796B1 (en) 2004-06-30 2009-04-14 Sun Microsystems, Inc. Efficient utilization of a store buffer using counters
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7366829B1 (en) 2004-06-30 2008-04-29 Sun Microsystems, Inc. TLB tag parity checking without CAM read
US7543132B1 (en) 2004-06-30 2009-06-02 Sun Microsystems, Inc. Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes
US7290116B1 (en) 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
US7890734B2 (en) 2004-06-30 2011-02-15 Open Computing Trust I & II Mechanism for selecting instructions for execution in a multithreaded processor
US7523330B2 (en) * 2004-06-30 2009-04-21 Sun Microsystems, Inc. Thread-based clock enabling in a multi-threaded processor
US7437538B1 (en) 2004-06-30 2008-10-14 Sun Microsystems, Inc. Apparatus and method for reducing execution latency of floating point operations having special case operands
US7434000B1 (en) 2004-06-30 2008-10-07 Sun Microsystems, Inc. Handling duplicate cache misses in a multithreaded/multi-core processor
US7509484B1 (en) 2004-06-30 2009-03-24 Sun Microsystems, Inc. Handling cache misses by selectively flushing the pipeline
US7373489B1 (en) 2004-06-30 2008-05-13 Sun Microsystems, Inc. Apparatus and method for floating-point exception prediction and recovery
US7533248B1 (en) 2004-06-30 2009-05-12 Sun Microsystems, Inc. Multithreaded processor including a functional unit shared between multiple requestors and arbitration therefor
US7941642B1 (en) 2004-06-30 2011-05-10 Oracle America, Inc. Method for selecting between divide instructions associated with respective threads in a multi-threaded processor
US7178005B1 (en) 2004-06-30 2007-02-13 Sun Microsystems, Inc. Efficient implementation of timers in a multithreaded processor
US7478225B1 (en) 2004-06-30 2009-01-13 Sun Microsystems, Inc. Apparatus and method to support pipelining of differing-latency instructions in a multithreaded processor
US7370243B1 (en) 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain multithreaded multicore processor
US8225034B1 (en) 2004-06-30 2012-07-17 Oracle America, Inc. Hybrid instruction buffer
US7343474B1 (en) 2004-06-30 2008-03-11 Sun Microsystems, Inc. Minimal address state in a fine grain multithreaded processor
US7401206B2 (en) * 2004-06-30 2008-07-15 Sun Microsystems, Inc. Apparatus and method for fine-grained multithreading in a multipipelined processor core
US7216216B1 (en) 2004-06-30 2007-05-08 Sun Microsystems, Inc. Register window management using first pipeline to change current window and second pipeline to read operand from old window and write operand to new window
US7890735B2 (en) * 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
GB0420442D0 (en) * 2004-09-14 2004-10-20 Ignios Ltd Debug in a multicore architecture
US9038070B2 (en) 2004-09-14 2015-05-19 Synopsys, Inc. Debug in a multicore architecture
US7277990B2 (en) 2004-09-30 2007-10-02 Sanjeev Jain Method and apparatus providing efficient queue descriptor memory access
US20060067348A1 (en) * 2004-09-30 2006-03-30 Sanjeev Jain System and method for efficient memory access of queue control data structures
US7765547B2 (en) 2004-11-24 2010-07-27 Maxim Integrated Products, Inc. Hardware multithreading systems with state registers having thread profiling data
US8037250B1 (en) 2004-12-09 2011-10-11 Oracle America, Inc. Arbitrating cache misses in a multithreaded/multi-core processor
US8756605B2 (en) * 2004-12-17 2014-06-17 Oracle America, Inc. Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline
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
US7467256B2 (en) * 2004-12-28 2008-12-16 Intel Corporation Processor having content addressable memory for block-based queue structures
US20060140203A1 (en) * 2004-12-28 2006-06-29 Sanjeev Jain System and method for packet queuing
US8279886B2 (en) * 2004-12-30 2012-10-02 Intel Corporation Dataport and methods thereof
US7430643B2 (en) * 2004-12-30 2008-09-30 Sun Microsystems, Inc. Multiple contexts for efficient use of translation lookaside buffer
US7480781B2 (en) * 2004-12-30 2009-01-20 Intel Corporation Apparatus and method to merge and align data from distributed memory controllers
US7477641B2 (en) * 2004-12-30 2009-01-13 Intel Corporation Providing access to data shared by packet processing threads
US7703094B2 (en) * 2004-12-30 2010-04-20 Intel Corporation Adaptive and dynamic filtering of threaded programs
EP1849095B1 (en) * 2005-02-07 2013-01-02 Richter, Thomas Low latency massive parallel data processing device
US7529245B1 (en) 2005-04-04 2009-05-05 Sun Microsystems, Inc. Reorder mechanism for use in a relaxed order input/output system
US7992144B1 (en) 2005-04-04 2011-08-02 Oracle America, Inc. Method and apparatus for separating and isolating control of processing entities in a network interface
US7415034B2 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
US7987306B2 (en) * 2005-04-04 2011-07-26 Oracle America, Inc. Hiding system latencies in a throughput networking system
US7415035B1 (en) 2005-04-04 2008-08-19 Sun Microsystems, Inc. Device driver access method into a virtualized network interface
US7443878B2 (en) * 2005-04-04 2008-10-28 Sun Microsystems, Inc. System for scaling by parallelizing network workload
US7779164B2 (en) * 2005-04-04 2010-08-17 Oracle America, Inc. Asymmetrical data processing partition
US7865624B1 (en) 2005-04-04 2011-01-04 Oracle America, Inc. Lookup mechanism based on link layer semantics
US7843926B1 (en) 2005-04-05 2010-11-30 Oracle America, Inc. System for providing virtualization of network interfaces at various layers
US8762595B1 (en) 2005-04-05 2014-06-24 Oracle America, Inc. Method for sharing interfaces among multiple domain environments with enhanced hooks for exclusiveness
US7353360B1 (en) 2005-04-05 2008-04-01 Sun Microsystems, Inc. Method for maximizing page locality
US7664127B1 (en) 2005-04-05 2010-02-16 Sun Microsystems, Inc. Method for resolving mutex contention in a network system
US8510491B1 (en) 2005-04-05 2013-08-13 Oracle America, Inc. Method and apparatus for efficient interrupt event notification for a scalable input/output device
US7567567B2 (en) * 2005-04-05 2009-07-28 Sun Microsystems, Inc. Network system including packet classification for partitioned resources
US7889734B1 (en) 2005-04-05 2011-02-15 Oracle America, Inc. Method and apparatus for arbitrarily mapping functions to preassigned processing entities in a network system
US20060236011A1 (en) * 2005-04-15 2006-10-19 Charles Narad Ring management
KR20080013993A (ko) * 2005-05-04 2008-02-13 에이알엠 리미티드 데이터 처리장치 내의 데이터 엔진의 사용
US7920584B2 (en) * 2005-05-04 2011-04-05 Arm Limited Data processing system
US7630388B2 (en) * 2005-05-04 2009-12-08 Arm Limited Software defined FIFO memory for storing a set of data from a stream of source data
US7853951B2 (en) * 2005-07-25 2010-12-14 Intel Corporation Lock sequencing to reorder and grant lock requests from multiple program threads
US20070044103A1 (en) * 2005-07-25 2007-02-22 Mark Rosenbluth Inter-thread communication of lock protected data
US20070124728A1 (en) * 2005-11-28 2007-05-31 Mark Rosenbluth Passing work between threads
US20070157030A1 (en) * 2005-12-30 2007-07-05 Feghali Wajdi K Cryptographic system component
WO2007082730A1 (de) * 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US20070192766A1 (en) * 2006-02-13 2007-08-16 Ketan Padalia Apparatus and methods for parallelizing integrated circuit computer-aided design software
US20070245074A1 (en) * 2006-03-30 2007-10-18 Rosenbluth Mark B Ring with on-chip buffer for efficient message passing
US20080004876A1 (en) * 2006-06-30 2008-01-03 Chuang He Non-enrolled continuous dictation
US7711807B2 (en) * 2006-07-27 2010-05-04 Intel Corporation Selective filtering of exception data units
WO2008040081A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Job scheduling amongst multiple computers
US9794378B2 (en) * 2006-11-08 2017-10-17 Standard Microsystems Corporation Network traffic controller (NTC)
AU2008213820B2 (en) 2007-02-06 2013-09-05 Reneo, Inc. A resource tracking method and apparatus
US8898438B2 (en) 2007-03-14 2014-11-25 XMOS Ltd. Processor architecture for use in scheduling threads in response to communication activity
US7680909B2 (en) * 2007-03-21 2010-03-16 Ittiam Systems (P) Ltd. Method for configuration of a processing unit
US8386254B2 (en) * 2007-05-04 2013-02-26 Nuance Communications, Inc. Multi-class constrained maximum likelihood linear regression
US7958333B2 (en) * 2007-05-30 2011-06-07 XMOS Ltd. Processor with memory access stage adapted to fetch an instruction of a thread when no memory access operation is detected
US8059650B2 (en) * 2007-10-31 2011-11-15 Aruba Networks, Inc. Hardware based parallel processing cores with multiple threads and multiple pipeline stages
US20090109967A1 (en) * 2007-10-31 2009-04-30 Anirban Banerjee Method and system for remotely configuring an ethernet switch using ethernet packets
US7926013B2 (en) * 2007-12-31 2011-04-12 Intel Corporation Validating continuous signal phase matching in high-speed nets routed as differential pairs
US9063778B2 (en) * 2008-01-09 2015-06-23 Microsoft Technology Licensing, Llc Fair stateless model checking
US9596324B2 (en) * 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
CN101237346B (zh) * 2008-02-29 2012-01-11 中兴通讯股份有限公司 网络处理器及网络处理器的读写串口的方法
US8024719B2 (en) 2008-11-03 2011-09-20 Advanced Micro Devices, Inc. Bounded hash table sorting in a dynamic program profiling system
US20100115494A1 (en) * 2008-11-03 2010-05-06 Gorton Jr Richard C System for dynamic program profiling
US8478948B2 (en) * 2008-12-04 2013-07-02 Oracle America, Inc. Method and system for efficient tracing and profiling of memory accesses during program execution
US8667253B2 (en) 2010-08-04 2014-03-04 International Business Machines Corporation Initiating assist thread upon asynchronous event for processing simultaneously with controlling thread and updating its running status in status register
US8793474B2 (en) 2010-09-20 2014-07-29 International Business Machines Corporation Obtaining and releasing hardware threads without hypervisor involvement
US8713290B2 (en) * 2010-09-20 2014-04-29 International Business Machines Corporation Scaleable status tracking of multiple assist hardware threads
US8732711B2 (en) * 2010-09-24 2014-05-20 Nvidia Corporation Two-level scheduler for multi-threaded processing
US9858241B2 (en) * 2013-11-05 2018-01-02 Oracle International Corporation System and method for supporting optimized buffer utilization for packet processing in a networking device
US8634415B2 (en) 2011-02-16 2014-01-21 Oracle International Corporation Method and system for routing network traffic for a blade server
GB2495959A (en) * 2011-10-26 2013-05-01 Imagination Tech Ltd Multi-threaded memory access processor
US8984183B2 (en) 2011-12-16 2015-03-17 Nvidia Corporation Signaling, ordering, and execution of dynamically generated tasks in a processing system
US8619800B1 (en) 2012-12-20 2013-12-31 Unbound Networks Parallel processing using multi-core processor
US9563561B2 (en) * 2013-06-25 2017-02-07 Intel Corporation Initiation of cache flushes and invalidations on graphics processors
US9489327B2 (en) 2013-11-05 2016-11-08 Oracle International Corporation System and method for supporting an efficient packet processing model in a network environment
WO2015069408A1 (en) * 2013-11-05 2015-05-14 Oracle International Corporation System and method for supporting efficient packet processing model and optimized buffer utilization for packet processing in a network environment
CN103955445B (zh) 2014-04-30 2017-04-05 华为技术有限公司 一种数据处理方法、处理器及数据处理设备
CN104899006B (zh) * 2015-05-25 2018-03-30 中孚信息股份有限公司 一种多系统平台的多进程并行处理方法
CN105183553A (zh) * 2015-10-31 2015-12-23 山东智洋电气股份有限公司 软总线程序并发资源分配方法
US10706101B2 (en) 2016-04-14 2020-07-07 Advanced Micro Devices, Inc. Bucketized hash tables with remap entries
US10838656B2 (en) 2016-12-20 2020-11-17 Mediatek Inc. Parallel memory access to on-chip memory containing regions of different addressing schemes by threads executed on parallel processing units
CN111459630B (zh) * 2020-03-24 2023-12-08 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 采用硬件多线程机制的网络处理器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6031648A (ja) * 1983-07-29 1985-02-18 Sharp Corp マルチ・タスク制御方法
GB2311882A (en) * 1996-04-04 1997-10-08 Videologic Ltd Data processing management system with programmable routing operations
CN1043932C (zh) * 1992-12-23 1999-06-30 电子钟表中心有限公司 多任务处理低功率控制器

Family Cites Families (162)

* 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
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
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
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
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
FR2625340B1 (fr) 1987-12-23 1990-05-04 Labo Electronique Physique Systeme graphique avec controleur graphique et controleur de dram
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
DE68913629T2 (de) 1988-03-14 1994-06-16 Unisys Corp Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem.
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
DE69132495T2 (de) * 1990-03-16 2001-06-13 Texas Instruments Inc Verteilter Verarbeitungsspeicher
US5390329A (en) * 1990-06-11 1995-02-14 Cray Research, Inc. Responding to service requests using minimal system-side context in a multiprocessor environment
US5193167A (en) * 1990-06-29 1993-03-09 Digital Equipment Corporation Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system
US5347648A (en) 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
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
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
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
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 松下電器産業株式会社 レジスタファイル
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
US5404484A (en) * 1992-09-16 1995-04-04 Hewlett-Packard Company Cache system for reducing memory latency times
US5448702A (en) 1993-03-02 1995-09-05 International Business Machines Corporation Adapters with descriptor queue management capability
EP0617361B1 (en) * 1993-03-26 2001-11-28 Cabletron Systems, Inc. Scheduling method and apparatus for a communication network
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
JPH0740746A (ja) * 1993-07-29 1995-02-10 Aisin Seiki Co Ltd 車両用サンルーフ装置のチエツク機構
CA2107299C (en) 1993-09-29 1997-02-25 Mehrad Yasrebi High performance machine for switched communications in a heterogenous 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
US5740402A (en) 1993-12-15 1998-04-14 Silicon Graphics, Inc. Conflict resolution in interleaved memory systems with multiple parallel accesses
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 株式会社日立製作所 情報処理装置
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 富士通株式会社 キュー装置
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
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
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
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
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 プログラム制御システム
US5828746A (en) 1995-06-07 1998-10-27 Lucent Technologies Inc. Telecommunications network
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
US5613071A (en) * 1995-07-14 1997-03-18 Intel Corporation Method and apparatus for providing remote memory access in a distributed memory multiprocessor system
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
US5689566A (en) * 1995-10-24 1997-11-18 Nguyen; Minhtam C. Network with secure communications sessions
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
US5699537A (en) 1995-12-22 1997-12-16 Intel Corporation Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions
DE19681186D2 (de) * 1995-12-29 1999-03-11 Tixi Com Gmbh Verfahren und Mikrocomputersystem zur automatischen, sicheren und direkten Datenübertragung
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
US5784649A (en) * 1996-03-13 1998-07-21 Diamond Multimedia Systems, Inc. Multi-threaded FIFO pool buffer and bus transfer control system
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
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 윤종용 씨디-롬 드라이브에서의 큐잉 제어 방법
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
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
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US5928736A (en) * 1996-09-09 1999-07-27 Raytheon Company Composite structure having integrated aperture and method for its preparation
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
US5860158A (en) * 1996-11-15 1999-01-12 Samsung Electronics Company, Ltd. Cache control unit with a cache request transaction-oriented protocol
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
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
US5854922A (en) 1997-01-16 1998-12-29 Ford Motor Company Micro-sequencer apparatus and method of combination state machine and instruction memory
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
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
US5918235A (en) * 1997-04-04 1999-06-29 Hewlett-Packard Company Object surrogate with active computation and probablistic counter
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
US6092158A (en) * 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
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
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
US5870597A (en) * 1997-06-25 1999-02-09 Sun Microsystems, Inc. Method for speculative calculation of physical register addresses in an out of order processor
KR100216371B1 (ko) * 1997-06-30 1999-08-16 윤종용 고장 감내형 대용량 ATM 스위치 및 2nXn 다중화스위치에서의 셀프라우팅 방법
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
US6247025B1 (en) * 1997-07-17 2001-06-12 International Business Machines Corporation Locking and unlocking mechanism for controlling concurrent access to objects
US6170051B1 (en) * 1997-08-01 2001-01-02 Micron Technology, Inc. Apparatus and method for program level parallelism in a VLIW processor
US6014729A (en) * 1997-09-29 2000-01-11 Firstpass, Inc. Shared memory arbitration apparatus and method
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
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
JPH11203860A (ja) * 1998-01-07 1999-07-30 Nec Corp 半導体記憶装置
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
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 김영환 데이터 처리 장치 및 이의 복수의 스레드 처리 방법
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
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
US6393026B1 (en) * 1998-09-17 2002-05-21 Nortel Networks Limited Data packet processing system and method for a router
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
US6212611B1 (en) * 1998-11-03 2001-04-03 Intel Corporation Method and apparatus for providing a pipelined memory controller
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital 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
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
US6256713B1 (en) * 1999-04-29 2001-07-03 International Business Machines Corporation Bus optimization with read/write coherence including ordering responsive to collisions
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6529983B1 (en) * 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
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
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
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
US6560667B1 (en) * 1999-12-28 2003-05-06 Intel Corporation Handling contiguous memory references in a multi-queue system
US6952824B1 (en) * 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US6584522B1 (en) * 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6671827B2 (en) * 2000-12-21 2003-12-30 Intel Corporation Journaling for parallel hardware threads in multithreaded processor
US6944850B2 (en) * 2000-12-21 2005-09-13 Intel Corporation Hop method for stepping parallel hardware threads
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6031648A (ja) * 1983-07-29 1985-02-18 Sharp Corp マルチ・タスク制御方法
CN1043932C (zh) * 1992-12-23 1999-06-30 电子钟表中心有限公司 多任务处理低功率控制器
GB2311882A (en) * 1996-04-04 1997-10-08 Videologic Ltd Data processing management system with programmable routing operations

Also Published As

Publication number Publication date
ATE339724T1 (de) 2006-10-15
DE60030767T2 (de) 2007-11-08
TW544629B (en) 2003-08-01
US7111296B2 (en) 2006-09-19
EP1242883B1 (en) 2006-09-13
WO2001048606A2 (en) 2001-07-05
WO2001048606A3 (en) 2002-07-11
DE60030767D1 (de) 2006-10-26
CN1643499A (zh) 2005-07-20
AU4311601A (en) 2001-07-09
US6625654B1 (en) 2003-09-23
HK1046050A1 (en) 2002-12-20
EP1242883A2 (en) 2002-09-25
US20040098496A1 (en) 2004-05-20
US20020013861A1 (en) 2002-01-31
SG145543A1 (en) 2008-09-29

Similar Documents

Publication Publication Date Title
CN100351798C (zh) 在多线程网络处理器中线程信令的分组处理方法和系统
US10817184B2 (en) Control node for multi-core system
US7443836B2 (en) Processing a data packet
US7551617B2 (en) Multi-threaded packet processing architecture with global packet memory, packet recirculation, and coprocessor
US7415540B2 (en) Scheduling processing threads
US5357632A (en) Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
JP3801919B2 (ja) パケットルーティング動作におけるプロセッサ用キューイングシステム
CN1311333C (zh) 用于串行互斥体的方法与装置
CN103999051B (zh) 用于着色器核心中着色器资源分配的策略
CN1128406C (zh) 数据处理系统及其中断处理方法
CN1801775B (zh) 流分配
US7765554B2 (en) Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts
US7487505B2 (en) Multithreaded microprocessor with register allocation based on number of active threads
US6732139B1 (en) Method to distribute programs using remote java objects
US7853951B2 (en) Lock sequencing to reorder and grant lock requests from multiple program threads
US20070124728A1 (en) Passing work between threads
US20020103847A1 (en) Efficient mechanism for inter-thread communication within a multi-threaded computer system
US20060195845A1 (en) System and method for scheduling executables
CN110908782B (zh) 一种基于遗传算法优化的封装类分布式作业任务调度方法及系统
US20070044103A1 (en) Inter-thread communication of lock protected data
US20070016906A1 (en) Efficient hardware allocation of processes to processors
US20060140192A1 (en) Flexible mesh structure for hierarchical scheduling
JP2002530737A (ja) イベントベースシステムの同時処理
EP3066568A1 (en) System and method for supporting efficient packet processing model and optimized buffer utilization for packet processing in a network environment
WO2022088074A1 (zh) 基于多指令引擎的指令处理方法及处理器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20071128

Termination date: 20131208