CN1618061A - 功能性流水线 - Google Patents
功能性流水线 Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000008569 process Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 3
- 230000006870 function Effects 0.000 abstract description 20
- 238000003860 storage Methods 0.000 description 16
- 230000015654 memory Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000004060 metabolic process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector 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所述的计算机程序产品,其中所述多个程序设计引擎利用系统的功能性流水线单元来执行数据分组处理功能。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016000170A1 (zh) * | 2014-06-30 | 2016-01-07 | 华为技术有限公司 | 网络装置执行的数据处理方法和相关设备 |
Families Citing this family (35)
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)
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 |
-
2002
- 2002-01-17 US US10/053,172 patent/US6934951B2/en not_active Expired - Lifetime
-
2003
- 2003-01-16 WO PCT/US2003/001578 patent/WO2003063018A2/en not_active Application Discontinuation
- 2003-01-16 EP EP20030731990 patent/EP1470496A2/en not_active Ceased
- 2003-01-16 AU AU2003225523A patent/AU2003225523A1/en not_active Abandoned
- 2003-01-16 KR KR1020037017304A patent/KR100611860B1/ko not_active IP Right Cessation
- 2003-01-16 CN CN038023156A patent/CN1618061B/zh not_active Expired - Fee Related
- 2003-01-16 CA CA002473245A patent/CA2473245A1/en not_active Abandoned
- 2003-01-17 TW TW092100997A patent/TWI265430B/zh not_active IP Right Cessation
-
2005
- 2005-03-29 US US11/092,366 patent/US7302549B2/en not_active Expired - Fee Related
Cited By (2)
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 |