CN1618061A - 功能性流水线 - Google Patents

功能性流水线 Download PDF

Info

Publication number
CN1618061A
CN1618061A CNA038023156A CN03802315A CN1618061A CN 1618061 A CN1618061 A CN 1618061A CN A038023156 A CNA038023156 A CN A038023156A CN 03802315 A CN03802315 A CN 03802315A CN 1618061 A CN1618061 A CN 1618061A
Authority
CN
China
Prior art keywords
program design
functional
design engines
data
functional pipeline
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA038023156A
Other languages
English (en)
Other versions
CN1618061B (zh
Inventor
M·阿迪莱塔
D·伯恩斯坦恩
M·怀尔德
G·沃尔里奇
M·罗森布鲁斯
H·威尔金森
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 CN1618061A publication Critical patent/CN1618061A/zh
Application granted granted Critical
Publication of CN1618061B publication Critical patent/CN1618061B/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Landscapes

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

Abstract

一种用于在划分以简化高性能数据处理的功能性流水线中使用多个硬件环境和程序设计引擎的系统和方法。该系统和方法包括并行处理器,其分配用于处理数据的系统功能,所述系统功能包括支持多个环境的程序设计引擎,所述多个环境被设置成由功能性流水线控制单元来提供功能性流水线,所述功能性流水线控制单元传递程序设计引擎当中的功能性数据。

Description

功能性流水线
背景技术
本发明涉及功能性流水线。
并行处理是计算系统并发事件的信息处理的高效形式。同顺序处理相反,并行处理要求许多程序的并行执行。在并行处理的环境下,并行性(parallelism)涉及同时做一件以上的事。与在单个站上顺序执行所有任务的串行范例或者在专门的站上执行任务的流水线机不同,对于并行处理而言,它提供许多站,每个站都能够同时执行和完成各种任务及功能。许多站同时且独立地在相同或公共的单元上执行计算任务。因此,并行处理解决了各种类型的计算任务,并且某些问题适于通过应用几个指令处理单元和几个数据流来解决。
附图简要说明
图1是处理系统的框图。
图2是图1的处理系统的详细框图。
图3是图1的处理系统的程序设计引擎的框图。
图4是图1的处理系统的功能性流水线单元的框图。
图5是举例说明图1的处理系统的细节的框图。
详细说明
体系结构:
参照图1,计算机处理系统10包括并行的、基于硬件的多线程网络处理器12。基于硬件的多线程处理器12耦合于存储系统或存储资源14。存储系统14包括动态随机存取存储器(DRAM)14a和静态随机存取存储器14b(SRAM)。处理系统10特别是对那些能够分割成并行子任务或功能的任务有用。具体地说,基于硬件的多线程处理器12对面向带宽而非面向等待时间的任务有用。基于硬件的多线程处理器12具有多个功能性微型引擎或程序设计引擎16,它们每一个都具有多个同时活动且独立处理特定任务的硬件受控线程。
每一个程序设计引擎16都在硬件上保持有程序计数器以及与这些程序计数器相关联的状态。实际上,相应的环境或线程集合可以同时在每个程序设计引擎16上是活动的,不过事实上一时只有一个能操作。
在本示例中,在图1中举例说明了八个程序设计引擎16a-16h。程序设计引擎16a-16h中的每个引擎处理八个硬件线程或环境。八个程序设计引擎16a-16h利用共享资源来进行操作,所述共享资源包括存储资源14和总线接口(未示出)。基于硬件的多线程处理器12包括动态随机存取存储器(DRAM)控制器18a和静态随机存取存储器(SRAM)控制器18b。DRAM存储器14a和DRAM控制器18a通常用来处理大量的数据,例如,处理来自于网络分组的网络净载荷。为了低等待时间和快速访问任务,例如,访问查找表、访问核心处理器20的存储器等等,而在网络实施方案中使用SRAM存储器14b和SRAM控制器18b。
八个程序设计引擎16a-16h根据数据的特性来访问DRAM存储器14a或者SRAM存储器14b。由此,将低等待时间、低带宽数据存储在SRAM存储器14b中并且从该SRAM存储器中取出这些数据,然而,将对其来说等待时间不是那么重要的更高带宽的数据存储在DRAM存储器14a中,并且从该DRAM存储器中取出这些数据。程序设计引擎16a-16h能够对DRAM控制器18a或者SRAM控制器18b执行存储器访问指令。
基于硬件的多线程处理器12还包括处理器核620,用于为程序设计引擎16a-16h加载微代码控制。在本示例中,处理器核心20是基于XScale的体系结构。
处理器核心20执行诸如处理协议、异常和用于分组处理的附加支持之类的通用计算机类型功能,在所述分组处理中程序设计引擎16终止分组以待更细化的处理,比如边界条件方面的细化处理。
处理器核心20具有操作系统(未示出)。通过操作系统(OS),处理器核心20能够调用函数在程序设计引擎16a-16h上执行操作。处理器核心20能够使用任何支持的OS,特别是实时OS。由于把核心处理器20实施为XScale体系结构,因而能够使用诸如Microsoft NT实时OS、VXWorks和uCOSOS或freeware OS之类的在因特网上可用的操作系统。
可以通过SRAM或DRAM存储器访问来解释说明硬件多线程的优点。举例来说,来自其中一个程序设计引擎16的、由环境(例如,线程_0)请求的SRAM访问,将会令SRAM控制器18b发起对SRAM存储器14b的访问。SRAM控制器18b访问SRAM存储器14b,从SRAM存储器14b中取出数据,并将数据返回给发出请求的程序设计引擎16。
在SRAM访问期间,如果程序设计引擎16a-16h的其中一个只具有能操作的单个线程,那么此程序设计引擎就将会休眠直至数据从SRAM存储器14b那里返回为止。
通过在程序设计引擎16a-16h的每一个内采用硬件环境交换,该硬件环境交换使具有唯一程序计数器的其它环境能够在同一个程序设计引擎中执行。由此,另一个线程(例如,线程_1)能够在第一个线程(线程_0)等待返回读出数据的同时进行工作。在执行期间,线程_1可以访问DRAM存储器14a。尽管线程_1在DRAM单元上进行操作,而线程_0正在SRAM单元上进行操作,但是新线程(例如,线程_2)现在可以在程序设计引擎16中进行操作。线程_2能够操作一定时间直到它需要访问存储器或执行其它的长等待时间的操作为止,比如对总线接口进行访问。因此,多线程处理器12能够同时具有总线操作、SRAM操作、和DRAM操作,其中一个程序设计引擎16完成所有上述操作或执行所有上述操作,并且所有上述操作都具有可以用来处理更多工作的一个以上的线程或环境。
硬件环境交换还将任务的结束同步化。例如,两个线程能够访问共享存储器资源,例如SRAM存储器14b。独立的功能单元中的每一个,例如SRAM控制器18b和DRAM控制器18a,当它们完成从其中一个程序设计引擎线程或环境那里请求的任务时回报一个操作结束的标志信号。当程序设计引擎16a-16h接收到该标志时,程序设计引擎16a-16h就能够确定开启哪一个线程。
基于硬件的多线程处理器12的一个应用示例是网络处理器。作为网络处理器,基于硬件的多线程处理器12连接于诸如介质访问控制器(MAC)设备之类的网络设备,例如10/IOOBaseT的八进制MAC 13a或千兆位以太网设备13b。一般说来,作为网络处理器,基于硬件的多线程处理器12可以连接于能接收或发送大量数据的任何一类通信设备或接口。计算机处理系统10在网络应用中起能够接收网络分组和按并行方式处理那些分组的作用。
程序设计引擎环境:
参照图2,示出了程序设计引擎16a-16h中的一个示例性程序设计引擎16a。程序设计引擎16a包括控制存储器30,在一个示例中所述控制存储器包括有4096条指令的RAM,每一条指令都是40位宽的。RAM存储程序设计引擎16a执行的微程序。控制存储器30中的微程序可由处理器核心20(图1)加载。
除局部执行线程的事件信号之外,程序设计引擎16a还采用全局的发信号状态。利用发信号状态,执行线程能够向所有程序设计引擎16a-16h广播信号状态。程序设计引擎中的任何线程及所有线程都能够按这些发信号状态来进行转移。这些发信号状态可用于确定资源的可用性或是否资源应当得到服务。环境事件逻辑具有用于八个(8)线程的仲裁。在一个示例中,仲裁是一种循环机制。可以采用其它技术,包括优先排队或加权的公平排队。
如上所述,程序设计引擎16a支持八个环境的多线程执行。这允许一个线程刚在另一个线程发布存储器访问以后就开始执行,并且必须等到访问结束才进行更多工作。由于存储器等待时间显著,因而多线程执行对保持程序设计引擎16a的高效硬件执行是至关重要的。多线程执行允许程序设计引擎16通过跨几个线程执行有效的独立工作来遮掩存储器等待时间。
用于供高效环境交换使用的程序设计引擎16a具有其自己的寄存器组、程序计数器和环境特定的局部寄存器。拥有每个环境的副本消除了把环境特定的信息移动到用于每次环境交换的共享存储器和程序设计引擎寄存器以及从该共享存储器和程序设计引擎寄存器中移出的需要。快速环境交换允许一个环境在其它环境等待输入/输出(I/O)的同时完成计算,典型地,外部存储器有权结束,或者对于来自于另一个环境或硬件单元那里的信号而言有权结束。
例如,程序设计引擎16a通过维持八个程序计数器和八个环境相关的寄存器组来执行八个环境。可能存在六种不同类型的环境相关的寄存器,即:通用寄存器(GPR)32、程序设计间代理寄存器(未示出)、静态随机存取存储器(SRAM)输入传送寄存器34、动态随机存取存储器(DRAM)输入传送寄存器36、SRAM输出传送寄存器38、DRAM输出传送寄存器40。
GPR 32用于通用程序设计。在程序控制下排它地对GPR 32进行读和写。当把GPR 32用作为指令中的源时,该GPR向执行数据路径44提供操作数。当用作为指令中的目的地时,利用执行数据路径44的结果来写GPR 32。程序设计引擎16a还包括I/O传送寄存器34、36、38和40,这些I/O传送寄存器用于将数据传送到程序设计引擎16a和该程序设计引擎16a以外的位置(DRAM存储器14a、SRAM存储器14b等)以及将数据从该程序设计引擎及其以外的位置那里传送来。
同样也使用本地存储器42。本地存储器42是位于程序设计引擎16a中的可寻址存储器。在程序控制下排它地对本地存储器42进行读和写。本地存储器42还包括由所有程序设计引擎16a-16h共享的变量。在由程序设计引擎16a-16h执行功能性流水线级期间,在各种指定的工作中修改共享变量,这将在下面进行描述。共享变量包括临界区段,它定义了读取—修改—写入的时间。在下面还将描述对计算处理系统10中的临界区段的实现和使用。
功能性流水线传递和流水线级:
参照图3,在一个功能性流水线单元50中示出了程序设计引擎16a。功能性流水线单元50包括程序设计引擎16a和包含数据的数据单元52,该数据单元(例如,网络分组54)由程序设计引擎来对其进行操作。所示程序设计引擎16a具有局部寄存器单元56。局部寄存器单元56存储来自于数据分组54的信息。例如,这个信息可以是来自于网络分组的净载荷或来自于其它源的数据。
在功能性流水线单元50中,程序设计引擎16a的环境58,即程序设计引擎0.1(PEO.1)至程序设计引擎0.n(PEO.n),都归于程序设计引擎16a,与此同时沿着从时间=0至时间=t进展的时间轴66对数据分组54执行不同的功能。程序设计执行时间被分成″m″个功能性流水线级或流水线级60a-60m。流水线级60a-60m的每个流水线级都对流水线内的数据执行不同的流水线功能62a、64或62p。
例如,流水线级60a是一个常规时间间隔,在此时间间隔内对其中数据分组54实施特定的处理功能(例如,功能62)。处理功能62能够维持一个或多个流水线级62。例如,功能64维持两个流水线级,即流水线级60b和60c。
诸如程序设计引擎16a之类的单个程序设计引擎能够构成一个功能性流水线单元50。在功能性流水线单元50中,功能62a、64和62p穿过功能性流水线单元50、从一个程序设计引擎16到另一个程序设计引擎16,正如接下来将要描述的那样。
参照图4,将数据分组54按次序分配给程序设计引擎环境58。由此,如果在程序设计引擎16a中执行″n″个线程或环境58的话,那么第一个环境58″PEO.1″在环境″PEO.n″的数据分组54到达以前完成对数据分组54的处理。利用这个方法,程序设计引擎16b能够开始处理第″n+1″个分组。
将程序设计引擎16的执行时间分成功能性流水线级60a-60c,导致一个以上的程序设计引擎16并行地执行等效的功能性流水线单元70。跨两个程序设计引擎16a和16b分布功能性流水线级60a,其中程序设计引擎16a和16b每一个都要执行八个环境。
由于多个程序设计引擎16被添加到功能性流水线单元50和70,因而在操作中每个数据分组54长时间归于其中一个环境58。在本示例中,由于直到其它环境58已经接收到它们的数据分组之前都不需要环境PEO.1来接收另一个数据分组58,因此数据分组54归于十六个数据分组到达时间的环境(8个环境×2个程序设计引擎)。
在本示例中,能够将功能性流水线级60a的功能62从程序设计引擎16a传递到程序设计引擎16b。正如图4中的虚线80a-80c所举例说明的那样,功能62的传递是通过将处理功能从一个程序设计引擎传递到另一个程序设计引擎而完成的。功能性流水线级60a-60m的数目等于功能性流水线单元50和70中的程序设计引擎16a和16b的数目。这确保了一时只在一个程序设计引擎16上执行一个特定的流水线级。
参照图5,示出了功能性流水线单元50、70和90除数据单元52a-52c之外,还分别包括程序设计引擎16a(PEO)、16b(PE1)和16c(PE2)。在程序设计引擎16a-16c之间,提供临界区段82a-82c以及84a-84c。结合共享数据86a-86c以及88a-88c来使用临界区段82a-82c以及84a-84c。
在临界区段82a-82c以及84a-84c中,给程序设计引擎环境58a-58c指定了对外部存储器中的共享数据86a-86c的排它性访问(例如,循环冗余校验(CRC)、重新集合环境、或统计)。
在操作中,可以跨一个或多个功能性流水线级60a-60d来分布功能。例如,临界区段82a代表了其中只有一个程序设计引擎环境的一部分代码,在这种情况下,程序设计引擎16a的环境58a在任一时刻对诸如存储器中的位置之类的全局资源(即共享数据86a)都具有排它性修改特权。由此,对于程序设计引擎16a的特定功能性流水线级,临界区段82a提供了排它性修改特权。临界区段82a还在程序设计引擎16a-16c中的环境58a-58c之间为排它性访问提供支持。
在某些实施方案中,只有一个功能修改了程序设计引擎16a-16c之间的共享数据86a-86c,以便确保程序设计引擎16a-16c之间的排它性修改特权。例如,在单个功能性流水线级60a中执行修改共享数据86a-86c的功能,并对功能性流水线单元50进行设计以便所有程序设计引擎16a-16c当中只有一个程序设计引擎能在任一时刻执行功能性流水线级60a。
仍然参照图5,给每个程序设计引擎16a-16c分配了对非共享数据86a-86c以及88a-88c的排它性修改特权,这满足了只有一个功能修改程序设计引擎16a-16c之间的非共享数据86a-86c以及88a-88c的要求。
在本示例中,通过优化经功能性流水线单元50、70和90的控制流,对基于硬件的多线程网络处理器12而言,上述的体系结构上的解决方案表现出了更强大的网络处理能力。
在功能性流水线单元50中,程序设计引擎16a转换到功能性流水线级60a的临界区段82a中,除非能确保″下一个″程序设计引擎16b已转换到临界区段82a之外。程序设计引擎16b使用线程间发信号,其中发信号状态可用于确定存储资源的可用性或是否存储资源应当得到服务。使用线程间发信号,存在四种方式来向下一个环境发信号:
线程发信号 机制
1.在同一个PE中向下一个线程发信号 局部控制和状态寄存器(CSR)写
2.在同一个PE中向指定的线程发信号 局部CSR写
3.在下一个PE中向线程发信号 局部CSR写
4.在PE中向任意线程发信号 CSR写
由于线程间发信号是按次序执行的,因此按照进入的数据分组54a-54c的次序来执行诸如CRC计算之类的临界区段。
当功能性流水线级60a在程序设计引擎16a和16b之间发生转换时,使用了作为环形缓冲器的弹性缓冲器92。实施每个功能性流水线级60a以便在分配给功能性流水线级60a的时间之内执行。然而,弹性缓冲器92适应执行功能性流水线单元50过程中的抖动。由此,如果功能性流水线级60a因诸如在短期内的存储单元高利用之类的系统异常而在执行过程中落后,那么弹性缓冲器92就允许对功能性流水线级60a的环境58a进行缓冲,以便在等待下一个流水线级结束时不会停止先前的功能性流水线级。图5中所示的弹性缓冲器92同样允许不同的功能性流水线单元70和90的不同的心跳。
通过使用功能性流水线级,如上所述,功能性流水线单元50、70和90掩盖了存储器等待时间,并且为数据分组54比单个流计算级更快到达,提供了充分的计算周期。通过提供从一个程序设计引擎到对一组新的数据分组54执行同一组功能的下一个程序设计引擎的快速同步的机制,大大地提高了程序设计引擎的并行处理能力。由此提供了多个用于传递功能状态和控制的装置。
其它实施例:
在上述结合图1-5的示例中,计算机处理系统10可以利用网络处理器族(即,CA的Santa Clara的英特尔公司设计的英特尔网络处理器族芯片)来实现程序设计引擎16。
将要理解的是,尽管已经结合本发明的详细说明描述了本发明,但是上述说明只是意图举例说明而非限制本发明的范围,本发明的范围由所附的权利要求加以限定。其它方面、优点和修改都落入由以下权利要求限定的范围之内。

Claims (25)

1.一种系统,包括:
分配系统功能以供处理数据的并行处理器,其包括支持多重环境的多个程序设计引擎,所述多重环境被设置成能通过功能性流水线控制单元来提供功能性流水线,所述流水线控制单元传递多个程序设计引擎当中的功能性数据。
2.如权利要求1所述的系统,进一步包括:跨功能性流水线单元的同步单元。
3.如权利要求1所述的系统,其中功能性流水线单元包括多个功能性流水线级。
4.如权利要求3所述的系统,其中所述多个程序设计引擎具有用于处理任务的执行时间,并且将所述执行时间划分成与多个功能性流水线级的数目相对应的许多时间间隔。
5.如权利要求4所述的系统,其中所述多个功能性流水线级中的每一个都执行不同的系统功能。
6.如权利要求1所述的系统,其中所述多个程序设计引擎中的至少一个是功能性流水线单元。
7.如权利要求1所述的系统,其中所述多个程序设计引擎被配置成能按次序处理数据分组。
8.如权利要求7所述的系统,其中将所述数据分组分配给多个程序设计引擎的多个环境。
9.如权利要求1所述的系统,其中所述多个程序设计引擎被配置成能利用系统的功能性流水线单元来执行数据分组处理功能。
10.如权利要求9所述的系统,其中在多个程序设计引擎中将数据分组维持一段时间,所述一段时间对应于多个程序设计引擎的数目。
11.如权利要求3所述的系统,其中多个流水线级的数目等于多个程序设计引擎的数目。
12.如权利要求3所述的系统,其中所述多个流水线级包括临界区段。
13.如权利要求12所述的系统,其中所述临界区段为多个环境提供了对处理数据分组所需的非共享数据的排它性访问。
14.如权利要求3所述的系统,其中所述多个程序设计引擎包括线程间发信号。
15.如权利要求3所述的系统,其中所述多个程序设计引擎包括弹性缓冲器,该弹性缓冲器适应执行数据分组处理功能时的多个流水线级之间的抖动。
16.一种在多个程序设计引擎之间传送数据的方法,所述方法包括:
将用于在并行处理器中处理数据的系统功能分配给多个程序设计引擎的其中相应的一个,所述程序设计引擎提供了在多个程序设计引擎中的每一个中支持多个环境执行的功能性流水线单元;以及
在功能性流水线单元中传递多个程序设计引擎当中的功能性数据。
17.如权利要求16所述的方法,进一步包括跨功能性流水线单元同步化系统功能。
18.如权利要求17所述的方法,进一步包括把执行时间划分成对应于多个流水线级的数目的许多时间间隔。
19.如权利要求16所述的方法,其中所述多个程序设计引擎利用多个环境来按次序处理数据分组。
20.如权利要求16所述的方法,其中所述多个程序设计引擎利用系统的功能性流水线单元来执行数据分组处理功能。
21.如权利要求16所述的方法,进一步包括使用了临界区段,所述临界区段为多个环境提供了对处理数据分组所需的非共享数据的排它性访问。
22.如权利要求16所述的方法,进一步包括使用弹性缓冲器来适应执行数据分组处理功能时的多个流水线级之间的抖动。
23.一种驻留在计算机可读介质上以令并行处理器执行某一功能的计算机程序产品,它包括令处理器执行下列操作的指令:
将用于在并行处理器中处理数据的系统功能分配给多个程序设计引擎的其中相应的一个,所述程序设计引擎提供了在多个程序设计引擎中的每一个中支持多个环境执行的功能性流水线单元;以及
在功能性流水线单元中传递多个程序设计引擎当中的功能性数据。
24.如权利要求23所述的计算机程序产品,进一步包括令处理器跨功能性流水线单元同步化系统功能的指令。
25.如权利要求23所述的计算机程序产品,其中所述多个程序设计引擎利用系统的功能性流水线单元来执行数据分组处理功能。
CN038023156A 2002-01-17 2003-01-16 功能性流水线 Expired - Fee Related CN1618061B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/053,172 2002-01-17
US10/053,172 US6934951B2 (en) 2002-01-17 2002-01-17 Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
PCT/US2003/001578 WO2003063018A2 (en) 2002-01-17 2003-01-16 Functional pipelines

Publications (2)

Publication Number Publication Date
CN1618061A true CN1618061A (zh) 2005-05-18
CN1618061B CN1618061B (zh) 2010-06-16

Family

ID=21982381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN038023156A Expired - Fee Related CN1618061B (zh) 2002-01-17 2003-01-16 功能性流水线

Country Status (8)

Country Link
US (2) US6934951B2 (zh)
EP (1) EP1470496A2 (zh)
KR (1) KR100611860B1 (zh)
CN (1) CN1618061B (zh)
AU (1) AU2003225523A1 (zh)
CA (1) CA2473245A1 (zh)
TW (1) TWI265430B (zh)
WO (1) WO2003063018A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016000170A1 (zh) * 2014-06-30 2016-01-07 华为技术有限公司 网络装置执行的数据处理方法和相关设备

Families Citing this family (35)

* 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
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
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
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
US20020053017A1 (en) * 2000-09-01 2002-05-02 Adiletta Matthew J. Register instructions for a multithreaded processor
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
US7437724B2 (en) * 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
US7240164B2 (en) * 2003-08-14 2007-07-03 Intel Corporation Folding for a multi-threaded network processor
US7441245B2 (en) * 2003-08-14 2008-10-21 Intel Corporation Phasing for a multi-threaded network processor
US7376952B2 (en) * 2003-09-15 2008-05-20 Intel Corporation Optimizing critical section microblocks by controlling thread execution
US7418540B2 (en) * 2004-04-28 2008-08-26 Intel Corporation Memory controller with command queue look-ahead
US7733857B2 (en) * 2004-12-17 2010-06-08 Samsung Electronics Co., Ltd. Apparatus and method for sharing variables and resources in a multiprocessor routing node
US20060236011A1 (en) * 2005-04-15 2006-10-19 Charles Narad Ring management
US7924858B2 (en) * 2005-05-04 2011-04-12 Arm Limited Use of a data engine within a data processing apparatus
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
CN100407701C (zh) * 2005-06-25 2008-07-30 华为技术有限公司 一种网络处理器
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
US20070094664A1 (en) * 2005-10-21 2007-04-26 Kimming So Programmable priority for concurrent multi-threaded processors
US20070124728A1 (en) * 2005-11-28 2007-05-31 Mark Rosenbluth Passing work between threads
US20070140282A1 (en) * 2005-12-21 2007-06-21 Sridhar Lakshmanamurthy Managing on-chip queues in switched fabric networks
US20070245074A1 (en) * 2006-03-30 2007-10-18 Rosenbluth Mark B Ring with on-chip buffer for efficient message passing
US8179896B2 (en) * 2006-11-09 2012-05-15 Justin Mark Sobaje Network processors and pipeline optimization methods
US8059650B2 (en) * 2007-10-31 2011-11-15 Aruba Networks, Inc. Hardware based parallel processing cores with multiple threads and multiple pipeline stages
US7926013B2 (en) * 2007-12-31 2011-04-12 Intel Corporation Validating continuous signal phase matching in high-speed nets routed as differential pairs
MY155586A (en) * 2008-01-02 2015-11-03 Mimos Berhad System for increasing throughput for memory device
US8055719B2 (en) * 2008-07-16 2011-11-08 International Business Machines Corporation Performance and reduce network traffic for remote hardware data scan operations
US9804843B1 (en) 2014-09-05 2017-10-31 Altera Corporation Method and apparatus for linear function processing in pipelined storage circuits
WO2016187232A1 (en) * 2015-05-21 2016-11-24 Goldman, Sachs & Co. General-purpose parallel computing architecture
US11449452B2 (en) 2015-05-21 2022-09-20 Goldman Sachs & Co. LLC General-purpose parallel computing architecture
US20230071278A1 (en) * 2021-09-03 2023-03-09 International Business Machines Corporation Using a machine learning module to determine a group of execution paths of program code and a computational resource allocation to use to execute the group of execution paths

Family Cites Families (167)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US563641A (en) * 1896-07-07 bemis
US643438A (en) * 1899-05-10 1900-02-13 Joseph Edward Wormald Heating stove or furnace.
US644337A (en) * 1900-01-11 1900-02-27 Seng Co Lid-operating mechanism for box-couches.
US726757A (en) * 1903-01-12 1903-04-28 Alexander Laughlin Gas-producer.
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
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
US4745544A (en) * 1985-12-12 1988-05-17 Texas Instruments Incorporated Master/slave sequencing processor with forced I/O
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
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., Dallas 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
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
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
US5347648A (en) 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
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
ATE188559T1 (de) 1992-12-23 2000-01-15 Centre Electron Horloger Multi-tasking-steuerungsgerät mit geringem energieverbrauch
EP0680640A1 (en) * 1993-01-22 1995-11-08 University Corporation For Atmospheric Research Multipipeline multiprocessor system
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
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
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 富士通株式会社 キュー装置
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
DE19503160A1 (de) 1995-02-01 1996-08-08 Bayer Ag Verwendung von Phenylcyclohexylcarbonsäureamiden
US5784712A (en) * 1995-03-01 1998-07-21 Unisys Corporation Method and apparatus for locally generating addressing information for a memory access
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
US5699537A (en) 1995-12-22 1997-12-16 Intel Corporation Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions
ATE191819T1 (de) * 1995-12-29 2000-04-15 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
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 윤종용 씨디-롬 드라이브에서의 큐잉 제어 방법
US5956518A (en) * 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
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
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
US6058465A (en) 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
JP2970553B2 (ja) * 1996-08-30 1999-11-02 日本電気株式会社 マルチスレッド実行方法
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
US6073159A (en) * 1996-12-31 2000-06-06 Compaq Computer Corporation Thread properties attribute vector based thread selection in multithreading processor
US5854922A (en) 1997-01-16 1998-12-29 Ford Motor Company Micro-sequencer apparatus and method of combination state machine and instruction memory
US5961628A (en) 1997-01-28 1999-10-05 Samsung Electronics Co., Ltd. Load and store unit for a vector processor
US6256115B1 (en) * 1997-02-21 2001-07-03 Worldquest Network, Inc. Facsimile network
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
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
US6006321A (en) 1997-06-13 1999-12-21 Malleable Technologies, Inc. Programmable logic datapath that may be used in a field programmable device
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
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
US6393483B1 (en) * 1997-06-30 2002-05-21 Adaptec, Inc. Method and apparatus for network interface card load balancing and port aggregation
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
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
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
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
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
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
US5970013A (en) 1998-02-26 1999-10-19 Lucent Technologies Inc. Adaptive addressable circuit redundancy method and apparatus with broadcast write
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
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
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
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
US6212611B1 (en) * 1998-11-03 2001-04-03 Intel Corporation Method and apparatus for providing a pipelined memory controller
US6718457B2 (en) * 1998-12-03 2004-04-06 Sun Microsystems, Inc. Multiple-thread processor for threaded software applications
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
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
US6327650B1 (en) * 1999-02-12 2001-12-04 Vsli Technology, Inc. Pipelined multiprocessing with upstream processor concurrently writing to local register and to register of downstream processor
US6256713B1 (en) * 1999-04-29 2001-07-03 International Business Machines Corporation Bus optimization with read/write coherence including ordering responsive to collisions
US6745317B1 (en) * 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
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
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
US6560667B1 (en) * 1999-12-28 2003-05-06 Intel Corporation Handling contiguous memory references in a multi-queue system
US6324624B1 (en) * 1999-12-28 2001-11-27 Intel Corporation Read lock miss control and queue management
US6307789B1 (en) * 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
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
US6584522B1 (en) * 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6631462B1 (en) * 2000-01-05 2003-10-07 Intel Corporation Memory shared between processing threads
US7007153B1 (en) * 2000-03-30 2006-02-28 Agere Systems Inc. Method and apparatus for allocating functional units in a multithreaded VLIW processor
WO2001095101A2 (en) * 2000-06-02 2001-12-13 Sun Microsystems, Inc. Synchronizing partially pipelined instructions in vliw processors
US6665755B2 (en) * 2000-12-22 2003-12-16 Nortel Networks Limited External memory engine selectable pipeline architecture
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7360217B2 (en) * 2001-09-28 2008-04-15 Consentry Networks, Inc. Multi-threaded packet processing engine for stateful packet processing
US7072970B2 (en) * 2001-10-05 2006-07-04 International Business Machines Corporation Programmable network protocol handler architecture
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
US7181594B2 (en) * 2002-01-25 2007-02-20 Intel Corporation Context pipelines

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016000170A1 (zh) * 2014-06-30 2016-01-07 华为技术有限公司 网络装置执行的数据处理方法和相关设备
US10277509B2 (en) 2014-06-30 2019-04-30 Huawei Technologies Co., Ltd. Data processing method executed by network apparatus, and related device

Also Published As

Publication number Publication date
EP1470496A2 (en) 2004-10-27
WO2003063018A2 (en) 2003-07-31
CN1618061B (zh) 2010-06-16
CA2473245A1 (en) 2003-07-31
US20030135351A1 (en) 2003-07-17
US7302549B2 (en) 2007-11-27
WO2003063018A3 (en) 2004-04-08
AU2003225523A1 (en) 2003-09-02
TWI265430B (en) 2006-11-01
TW200402631A (en) 2004-02-16
US20050216710A1 (en) 2005-09-29
KR20040017253A (ko) 2004-02-26
US6934951B2 (en) 2005-08-23
KR100611860B1 (ko) 2006-08-11

Similar Documents

Publication Publication Date Title
CN1618061B (zh) 功能性流水线
EP1381939B1 (en) Registers for data transfers within a multithreaded processor
US9146777B2 (en) Parallel processing with solidarity cells by proactively retrieving from a task pool a matching task for the solidarity cell to process
US7873817B1 (en) High speed multi-threaded reduced instruction set computer (RISC) processor with hardware-implemented thread scheduler
CN1310135C (zh) 具有基于活动线程号的寄存器分配的多线程微处理器
EP0512007B1 (en) Cluster architecture for a highly parallel scalar/vector multiprocessor system
US6804815B1 (en) Sequence control mechanism for enabling out of order context processing
US7614053B2 (en) Methods and apparatus for task management in a multi-processor system
CA2473551C (en) Context pipelines
US7415598B2 (en) Message synchronization in network processors
CN1390323A (zh) 在多线程并行处理器结构中使用的寄存器组
US20140068625A1 (en) Data processing systems
CN111984415A (zh) 一种基于流水线转发模型的负载均衡方法及装置
US7761688B1 (en) Multiple thread in-order issue in-order completion DSP and micro-controller
CN114518940A (zh) 任务调度电路、方法、电子设备及计算机可读存储介质
US20030212852A1 (en) Signal aggregation
CN1602469A (zh) 用在多处理器数据处理系统中的数据处理方法和相应的数据处理系统
Gregoretti et al. Design and Implementation of the Control Structure of the PAPRICA-3 Processor

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

Termination date: 20180116