CN1819550A - 在处理器单元中的多个处理元件间提供有效通信的方法和装置 - Google Patents

在处理器单元中的多个处理元件间提供有效通信的方法和装置 Download PDF

Info

Publication number
CN1819550A
CN1819550A CN200510121730.8A CN200510121730A CN1819550A CN 1819550 A CN1819550 A CN 1819550A CN 200510121730 A CN200510121730 A CN 200510121730A CN 1819550 A CN1819550 A CN 1819550A
Authority
CN
China
Prior art keywords
bus
data
treatment element
data message
control
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.)
Pending
Application number
CN200510121730.8A
Other languages
English (en)
Inventor
M·罗森布鲁斯
S·简恩
G·沃尔瑞奇
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 CN1819550A publication Critical patent/CN1819550A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4252Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a handshaking protocol

Abstract

一个文本转发总线在一个处理器单元中的多个处理元件间有效地传送控制和数据,该处理器单元具有多个处理元件。基于一个第一总线将控制和数据信息从一个处理元件向另一个处理元件传递。

Description

在处理器单元中的多个处理元件间提供有效通信的方法和装置
相互参考的交叉引用
无可用的。
关于联合发起研究的声明
无可用的
背景
如本领域技术人员已知的,诸如路由器的数据转发装置以相对较高的线速率处理到来的分组,如OC-192(10Gbps)。数据转发装置可包括网络处理器,诸如多核心的,例如Intel公司的单模IXP 1200网络处理器。在具有多个处理元件的网络处理器中,接收到的分组的头信息被发送到一个处理线程,该处理线程对该分组进行分类并根据各种运算法则修改网络状态。这些运算法则对由同一数据流中的多个分组共享的数据结构进行处理。但是,该被共享的数据分组应按照分组的到达顺序被访问。有效的将控制和数据传递到下一个属于同一数据流的一个分组的线程处理过程是困难的。例如,一个网络处理器可包括16个处理元件,这些处理元件必须交换控制和/或数据。
附图的简要说明
通过下面结合附图的详细说明,可更加全面的理解包含在此的实施例,其中:
图1是一个示范系统的图,该系统包括一个具有一个网络处理器单元的网络装置,该网络处理器单元具有一个文本转发总线;
图2是一个示范网络处理器的图,该网络处理器具有一个文本转发总线;
图3是一个示范运行微码的处理元件(PE)的图;
图4是一个处理单元的结构图,该处理单元具有多个连接到一个文本转发总线的处理元件;
图5是一个示范文本转发元件的结构图;
图6是一个时序图,其表示了在一个文本转发总线上以32比特模式的控制和数据传递;
图6A是一个时序图,其表示了在一个文本转发总线上以64比特模式的控制和数据传递;
图7是一个处理单元的结构图,该处理单元具有多个与一个具有一个开关的文本转发总线相连接的处理元件;和
图8是一个示范文本转发总线开关执行的结构图。
详细说明
图1表示一个示例的网络装置2,其包括具有多个处理元件(PE)的多个网络处理器单元(NPU),这些处理元件通过一个文本转发总线结构互相连接。该NPU对从一个数据源6到来的分组进行处理并将处理过的数据发送到一个目的地装置8。该网络装置2可包括例如一个路由器、一个开关等等。例如,该数据源6和目的地装置8可包括多个目前已知的或尚未开发出的网络装置,它们可通过一个通信路径连接,诸如一个具有OC-192(10Gbps)线速度的光路径。
该例举的网络装置2的特点在于一个线路卡LC1-LC4(“刀片”)的集合,这些线路卡通过一个开关结构SF(例如一个交叉开关或共享存储器的开关结构)相互连接。该开关结构SF例如可符合CSIX(普通开关接口)或其它结构技术,诸如高速传输、极大带宽、PCI(外围部件互联),基于SONET的分组、高速IO、和/或UTOPIA(用于ATM的通用测试和操作PHY接口)。
单个的线路卡(例如LC1)可包括一个或多个物理层(PHY)装置PD1、PD2(例如光、有线或无线的PHY),它们掌握着基于网络连接的通信。这些PHYPD在由不同网络介质承载的物理信号和由数字系统使用的比特(例如“0”和“1”)之间进行转换。线路卡LC也可包括成帧装置(如以太网、同步光网络(SONET)、高级数据链路(HDLC)成帧器或其它“二层”装置)FD1、FD2,它们能够在诸如错误检测和/或修正的帧上执行操作。所表示的线路卡LC也可包括一个或多个网络处理器NP1、NP2,其可对通过PHY接收到的分组执行分组处理操作,并通过开关结构SF将该分组传递给一个提供有出口接口的线路卡LC以转发该分组。潜在的,该网络处理器NP可执行“二层”职责而不是成帧装置FD。
图2例示了一个包括一个处理器12的系统10,其可以是一个网络处理器。该处理器12连接到一个或多个I/O装置,例如,网络装置14和16,以及一个存储器系统18。处理器12包括多个处理器(“处理引擎”或“PE”)20,每一个具有多个受执行线程22控制的硬件。在所表示的例子中,具有“n”个处理元件20,并且每个处理元件20能够处理多个线程22。每个处理元件20连接到并且能够与相邻的处理元件通信。如下所详细描述的,PE20能够与一个文本转发总线(CFB)结构相互连接,该总线结构能够使在PE中的控制和数据信息有效传递。
在一个实施例中,处理器12也包括一个通用处理器24,该处理器24协助对处理元件20和处理器12的其它资源装载微码控制,并执行其它诸如操作协议等的计算机类型的功能。在网络处理应用中,处理器24也能对不能由处理元件20掌握的更高层的网络处理任务提供支持。
每一个处理元件20都能使用共享资源进行操作,这些共享资源例如包括存储器系统18、一个外部总线接口26、I/O接口28和控制和状态寄存器(CSR)32。I/O接口28负责将处理器12控制并连接到I/O装置14、16。存储器系统18包括一个动态随机访问存储器(DRAM)34,可使用一个DRAM控制器36和一个静态随机访问存储器(SRAM)38对其进行访问,可使用一个SRAM控制器40对SRAM38进行访问。尽管没有示出,处理器12也将包括一个非易失性的存储器以支持引导操作。DRAM34和DRAM控制器36典型的用于处理例如在网络应用中的大篇幅数据,处理来自网络分组的有效载荷。在网络实现中,SRAM38和SRAM控制器40用于低潜伏期、快速访问任务,例如,访问查表等。
装置14和16可以是任何能够发送和/或接收网络业务数据的网络装置,诸如成帧/MAC(媒体访问控制)装置,例如,用于连接到基于T以太网、千兆以太网、ATM(异步传输模式)或其它类型网络的10/100的装置,或用于连接到一个开关结构的装置。例如,在一个配置中,网络装置14可以是一个以太网MAC装置(连接到一个以太网,没有示出),其向处理器12和装置16发送数据,装置16可以是一个开关结构装置,该开关结构装置从用于向一个开关结构上发送的处理器12接收处理过的数据。
此外,每个网络装置14、16可包括多个端口来被处理器12服务。I/O接口28因此支持一种或多种类型的接口,诸如一个用于分组和在一个PHY装置和一个更高层(如链路层)间的信元传递的接口,或者一个在业务管理器和用于异步传输模式(ATM)、因特网协议(IP)、以太网以及类似的数据通信应用之间的接口。I/O接口28可包括单独接收和发送块,并且每一个可对一个由处理器12支持的特殊接口单独配置。
其它装置,诸如主计算机和/或总线外围设备(没有示出),可连接到一个由外部总线接口26控制的外部总线,该外部总线接口26也可受处理器12的服务。
通常,作为一个网络处理器,处理器12能够接口到多种类型的通信装置或接收/发送数据的接口。处理器12作为一个网络处理器的功能可以从一个类似于网络装置14的网络装置接收信息单元,并以并行的方式处理这些单元。信息单元可包括一个整个的网络分组(例如以太网分组)或一个分组的一部分,例如是一个诸如普通交换接口(或“CSIX”)信元或ATM信元、或分组段的信元。也可以打算使用其它单元。
处理器12的每一个功能单元连接到一个内部总线结构或内部连接42。存储器总线44a、44b分别将存储器控制器36和40连接到存储器系统18的各个存储器单元DRAM34和SRAM38。I/O接口28通过各个I/O总线线路46a和46b分别连接到装置14和16。
参考图3,示出了一个处理元件20的例子。处理元件(PE)20包括一个控制单元50、控制逻辑(或微控制器)52和一个文本判别器/事件逻辑53,其中控制单元50包括一个控制存储器51。控制存储器51用于存储微码。该微码可由处理器24装载。该PE线程22的功能从而由通过用于一个特殊用户的应用的核心处理器24所装载进处理元件的控制存储器51内的微码来确定。
微控制器52包括一个指令解码器和用于每个所支持的线程的程序计数(PC)单元。文本判别器/事件逻辑53可从任何共享资源接收消息,例如SRAM38、DRAM34或处理器核心24等等。这些消息提供是否一个所请求的功能已经完成的信息。
PE20也包括一个执行数据路径54和一个连接到控制单元50的通用寄存器(GPR)文件单元56。数据路径54可包括多个不同数据路径元件,例如一个ALU(算术逻辑单元)、一个复用器和一个内容可访问存储器(CAM)。
GPR文件单元56(GPR)的寄存器在单独的两侧提供,A侧56a和B侧56b。在程序控制下对GPR进行单独的读取和写入。当作为指令中的一个源时,GPR向数据路径54提供操作数。当作为指令中的一个目的地时,它们被写入数据路径54的结果。指令指定选为源或目的地的特殊GPR的寄存器数目。由控制单元50提供的指令中的OP码(Opcode)选择将要执行由该指令定义的操作的数据路径元件。
PE20进一步包括一个写入传递(传递出)寄存器文件62和一个读取传递(传递进)寄存器文件64。写入传递寄存器文件62的写入传递寄存器把将要写入到一个资源的外部数据存储到处理元件。在示范实施例中,该写入寄存器文件被分割成用于SRAM(SRAM写入传递寄存器62a)和DRAM(DRAM写入传递寄存器62b)的各个寄存器文件。读取传递寄存器文件64用于把来自一个外部资源的返回数据存储到处理元件20。类似于写入传递寄存器文件,该读取传递寄存器文件被分别分割成用于SRAM和DRAM的各个寄存器文件,寄存器文件64a和64b。传递寄存器文件62、64连接到数据路径54和控制存储器50。应当注意,处理器12的结构支持允许任何PE访问任何其它PE的传递寄存器的“发射器”指令。
同样包括在PE20中的是本地存储器66。本地存储器66由寄存器68a(“LM_Addr_1”)、68b(“LM_Addr_0”)寻址,其向数据路径54提供操作数,并从作为目的地的数据路径54接收结果。
PE20也包括本地控制和状态寄存器(CSR)70,其连接到传递寄存器,用于存储本地内部线程和全局事件信令信息,以及其它控制和状态信息。其它存储器和功能单元,如,循环冗余码校验(CRC)单元(未示出),也可包括在该处理单元中。
PE20的其它寄存器类型包括下一个相邻(NN)寄存器74,其连接到控制存储器50和执行数据路径54,用于存储从一个在基于下一个相邻输入信号76a的传递路径处理中的先前相邻的PE(“上行流PE”),或从同一个PE接收到的信息,并受存储在本地CSR70中的信息的控制。下一个邻居将信号76b输出到在一个处理传递路径中的下一个相邻PE(“下行流PE”),该处理传递路径可在本地CSR70的控制下提供。从而,在任何PE上的线程可通过下一个邻居信令将线程发信号到下一个PE上。如下所详细描述的,处理元件可由一个文本转发总线(CFB)相互连接,从而在多个PE中有效的传递数据和控制信息。
虽然例示了硬件并在此进行了一些详细的描述,应当理解所例示的实施例和在此对文本转发总线的描述可应用于多种硬件、处理器、结构、装置、开发系统/工具等等。
图4例示了文本转发总线(CFB)结构100,该结构相互连接下一个相邻结构中的一个网络处理单元的处理元件102a-102q(PE0-PE15)。第16个PE102。(PE15)连接到第一个PE102a(PE0)。文本转发总线(CFB)使用下一个邻居连接以一种环形相互连接结构连接多个PE。每一个处理元件可包括一个最大数目的称为线程的处理文本,如8个。由于处理需求从分组到分组是变化的,以时间顺序处理所有分组是困难的。为了在同一数据流中挨个的处理分组,需要一个线程来将某些所依赖的变量信息传递到分配给用于那一数据流的下一分组的线程。这个下一个等待中的线程可以对当前线程不是“关闭的”,其中关闭表示相同或相邻的PE。正如下面所详细描述的,CFB结构减小了在多个线程间传递文本数据中的过多的延迟。
虽然示出了16个处理元件,应当理解可使用任何可行数目的处理元件。应进一步理解到,为了符合特殊应用的需要,可选PE与PE相互连接的结构对于现有技术中的普通技术是容易和显然的。此外,虽然主要表示了文本转发总线并配合传递文本信息进行了描述,应当理解,可使用文本转发总线从一个处理元件向另一个处理元件传递任何类型的数据、信息、信令、控制等等。
如图5所示,每个PE102包括一个CFB电路150,该电路150具有一个存储器或重定时元件152,例如寄存器,其缓存CFB数据。从一个存储器元件152到下一个存储器元件的路径在一个预定的频率上操作。每个CFB电路150进一步包括一个诸如FIFO的输入存储器机构154和一个输出存储器机构156。该输入和输出存储器机构154、156能存储数据并控制信息。该输出存储器机构,其可被理解为“数据从存储器出去”,控制输出的数据直到将该数据置于总线上为止。在一个实施例中,该输出存储器机构156支撑8个长字(LW)数据。在写入数据前,输入PE/线程应检查该输出存储器机构156中是否有足够可用的空闲空间。如果空间可用,则写入数据。否则PE/线程等待直到通过检测其状态得知该输出存储器机构156中的空间成为可用为止。
每个CFB电路150还包括一个数据路径复用器158以从先前的PE或从输出存储器机构156传递数据160。类似的,一个控制复用器162从先前的PE或从输出存储器机构156传递控制信息。解码器162通过一个复用选择信号163确定经过该数据和控制复用器158、162传递的路径,在下文将更加全面的描述。
在一个实施例中,CFB传递的块大小对于32比特模式能达到2个长字(32比特),对于64比特模式能达到4个长字。两种模式使用两个底盘周期以从一个处理元件向传递路径方式中的下一个传递数据块。
在一个特殊的实施例中,CFB结构包括一个例如可为12比特宽度的控制总线,和一个例如可为32或64比特宽度的数据总线。该控制总线承载用于在数据总线上传输的数据的控制信息。控制信息被分为在一个周期的第一部分发送的第一部分和在该周期的第二部分发送的第二部分。
表1定义了一个示例的数据结构,该数据结构定义为32和64比特模式的CFB结构。
表1:用于32比特模式和64比特模式的控制和数据总线字段说明
  模式   名称   字段   说明
  32比特模式中的CFB数据总线   C0[11∶0]   PE数目[4∶0]   目标PE数目
  线程数目[7∶5]   目标线程数目
  LW数目有效[9∶8]   在该传递块中的有效LW数目
  未使用的[10]   该比特当前未使用
  控制有效[11]   该位置上为“1”表示在该块传递中的信息是有效的
  C1[11∶0]   传递寄存器数目[7∶0]   目标传递或下一个相邻寄存器数目
  信号数目[3∶0]   到目标PE/线程的信号数目以表示数据传递的完成
  数据0[31∶0]   D0[31∶0]   块传递的第一个LW。其始终有效。{C0[9∶8]=xx}
  数据1[31∶0]   D1[31∶0]   块传递的第二个LW。{C0[9∶8]=01,10,11}
  64比特模式中的CFB数据总线   C0[11∶0]   PE数目[4∶0]   目标PE数目
  线程数目[7∶5]   目标线程数目
  LW数目有效[9∶8]   在该传递块中的有效LW数目
  未使用的[10]   该比特当前未使用
  控制有效[11]   该位置上为“1”表示在该块传递中的信息是有效的
  C1[11∶0]   传递寄存器数目[7∶0]   目标传递或下一个相邻寄存器数目
  信号数目[3∶0]   到目标PE/线程的信号数目以表示数据传递的完成
  数据0[31∶0]   D0[31∶0]   块传递的第一个LW。其始终有效。{C0[9∶8]=xx}
  数据1[31∶0]   D1[31∶0]   块传递的第二个LW。{C0[9∶8]=01,10,11}
  数据2[31∶0]   D3[31∶0]   块传递的第三个LW。{C0[9∶8]=10,11}
  数据3[31∶0]   D4[31∶0]   块传递的第四个LW。{C0[9∶8]=11}
图6例示了一个时序图200,其包括一个用于第四个PE102d的输入上的CFB的时序图200a(图4),其可称为PE4,和一个用于PE4的输出上的CFB的时序图200b。以32比特模式表示该操作。
在详细描述该时序图200以前,应当注意可通过分成3类来帮助理解CFB的操作:
1.当CFB元件象缓存器(重定时元件)一样对已经在该总线上的数据工作时。
2.当CFB元件从对其指定的总线拉取数据时。
3.当CFB元件在感觉到一个空时隙后在该总线上插入一个新数据时。
系统时钟202控制PE交互和一个传递开始(SOT)204信号以及在控制总线208上的控制信息的所有定时,该传递开始信号表示在数据总线206上的数据开始。为了举例说明,总线行为信息210识别对于当前传递周期有影响的PE。
在引入的时序图200a的一个C1周期中,由PE4接收第一和第二数据字D0、D1和用于PE7的第一和第二控制字C0、C1。对于第二周期C2,CFB是空的,即总线上不存在控制或数据字。在第三周期C3,CFB上存在对于PE4的数据字D0、D1和控制字C0、C1。如在该输出时序图200b中所能见到的,PE4将数据和控制字D0、D1、C0、C1带离该总线并使这些时隙对使用是空的和可用的。
在第四个周期C4中,对于PE8的数据和控制字D0、C0、C1被沿着CFB传递给了PE5,其是PE4的下一个相邻的PE。在第五个周期C5中,PE4将对于PE7的数据和控制字D0、D1、C0、C1插入到CFB上。PE7在收到后将把这些数据和控制字带离该总线。如所能见到的,CFB在C5的开始PE4的输入处是空的,使PE4对于一个下行流PE将数据插入到CFB上。
图6A表示了一个用于64比特模式的时序图200’。很容易可以见到,与图6的时序图200具有实质上的类似。为了简短,在图6A中参考图6是多余的/明显的特征不在做说明。在64比特模式中,第一、第二、第三和第四数据字D0、D1、D2、D3被置于该总线上。第一数据字D0被置于比特[31∶0]上,而第二数据字D1被并行置于比特[63∶32]上。第三数据字D2在第一个字之后被置于比特[31∶0]上,并且第四数据字D4在第二个字之后被置于比特[63∶32]上。
结合图6再次参考图5,多种CFB的操作可进一步详细描述。如上面所描述的,对于第一周期C1,CFB元件150可对于已经在总线上的数据提供一个缓存器(重定时元件)。解码器162解码控制信息,如控制字[11∶0]和“传递开始”(SOT)。当SOT为“1”并且C0[11]为“1”时,CFB上存在有效数据。如果该数据不是用于这个PE的,解码器162输出对复用选择信号产生一个逻辑“0”值,从而已经在该总线上的数据/控制信息将通过复用器158、162传递给下一个PE。如果解码器162解码的时隙是空的,例如SOT=1并且C0[11]=0,则复用选择163信号为逻辑“1”,并且如果存在,PE将有效数据和控制字插入。如果该PE没有用于传递的任何有效数据,其将C0[11]=0再次插入到总线上,从而传播该空时隙。
如在第三个周期C3中所示的,一个PE能从指定于该PE的CFB拉取数据。当解码器162解码SOT=1并且C0[11]=1时,该总线上的数据是有效的。其将该PE数与它自己的数目相比较,并确定是否匹配。如果匹配,则该总线上的数据块是用于该PE的。该数据被拉进并写入在由线程数目和寄存器数目所定义的位置上。如果定义了对于该事件的一个信号,该信号也对于该线程发送。当该数据被带离了该总线时,时隙为空并且解码器162对该时隙产生一个为“1”的复用选择信号163。如果PE在CFB总线上具有用于传递的有效数据,其连同为“1”的C0[11]一起插入数据/控制字。如果PE不具有任何用于传递的有效数据,其将C0[11]写为“0”从而标志该时隙为空。
如在第五个周期C5中所示的,一个CFB元件能在感觉到一个空时隙之后将数据插入到CFB上。当解码器162将复用选择信号163设置为“1”时,该PE能将新数据插入到该总线上。为了将数据放置到总线上,依照表1产生控制字C0、C1并将其写入到该总线上的各个空时隙中。连同控制字C0、C1,将相关数据写入到该数据总线上。如表1中所示,C0[9∶8]定义了LW(长字)有效的数目。如果总线处于64比特模式,将数据字D0和D1插入到该周期的第一部分中的D0[31∶0]和D1[63∶32]中,并将D2和D3写入到该周期的第二部分中的D0[31∶0]和D1[63∶32]中。
容易看到,对于16个元件的配置,PE0和PE15间的距离是15个底盘时钟周期的最小值。类似的,由于CFB总线仅在前进方向中传播数据,PE1和PE0间的距离也是15个时钟周期的最小值。但是,由于一个线程分配模块能将连续的分组分配给在该CFB结构中相互关闭的那些线程,因而最大的时钟周期传递也是最小的。例如,参看图4,PE3对PE2是关闭的,但由于CFB仅在前进方向中传播数据,因而PE1不是关闭的。由于平均起来大多数连续的线程(具有连续分组的线程)是相对关闭的(在一对底盘周期内),以上定义的总线结构可在等待的PE间有效的移动数据。因而,可在一个所谓的线程池程序模型中实现OC-192的性能,或接近与OC-192的性能。
在图7所示的另一个实施例中,一个CFB开关具有第一和第二模块302a、302b,其可被加入到图4的结构中以减少一半以上所描述的最大延迟。处PE到PE的路径之外,开关300是某些PE组成为旁路。例如,从PE0来的数据可通过每个PE1、PE2、PE3传递到第二开关模块302b,然后到达PE12、PE13、PE14和它的目的地PE15。PE4-11被旁路了,从而将最大延迟从15减小到了大约7个底盘时钟。
图8结合图7表示了一个用于第二开关模块302b的实施例。开关模块302b包括一个诸如FIFO的第一存储器机构304,其例如从PE3接收一个第一输入;一个诸如FIFO的第二存储器机构306,其从其它开关模块302a接收数据;和一个诸如FIFO的第三存储器机构308,其例如从PE11接收数据。每个FIFO304、306、308向每个第一、第二和第三复用器310、312、314提供输入。第一复用器310可连接到第一开关模块302a,第二复用器312可连接到PE4,第三复用器314可连接到PE12。第一和第二开关模块302a、b可具有相同或不同的结构。
通过这种排列,第二开关模块302b可提供从PE3到PE4(与图4中没有开关模块302的情况相同)、从PE3到第一开关模块302a、从PE3到PE12、从PE11到PE12(与图4相同)的路径。可通过一个普通的现有技术容易的确定复用器的控制。
在此所描述的实施例提供了在一个处理单元中相互连接多个处理元件的文本转发总线,其可形成于一个单独的模块上并且在该模块上具有多个核心,从而在处理元件中有效传递控制和数据信息。通过这种排列,实现了在处理元件中的内部线程通信,从而支持相对快速的线速率,例如OC-192。

Claims (21)

1、一种处理单元,包括:
在该处理单元中的第一处理元件:和
在该处理单元中的第二处理元件,其通过第一总线连接到第一处理元件,该第一总线具有控制信息总线和数据信息总线,该第二处理元件包括第一电路,其用于从第一总线获取用于该第二处理元件的控制信息和数据信息,将用于第一处理元件的控制信息和数据信息插入到第一总线上的可用时隙上,并在第一总线上传递用于连接到该第一总线的其它处理元件的控制信息和数据信息。
2、依照权利要求1的单元,其中第一电路包括输入存储器机构以保持来自第一总线的用于第二处理元件的控制和/或数据信息。
3、依照权利要求1的单元,其中第一电路包括输出存储器机构以保持控制和/或数据信息,从而由第二处理元件将这些信息放置在第一总线上。
4、依照权利要求3的单元,其中第一电路包括数据存储器元件以保持不是用于第二处理单元的数据信息,并将这些信息在第一总线上传递。
5、依照权利要求1的单元,其中处理单元形成在单个管芯上。
6、依照权利要求6的单元,其中第一总线连续地互连每一个处理元件。
7、依照权利要求1的单元,其中控制信息和数据信息包括处理中的上下文信息。
8、依照权利要求1的单元,其中数据总线包括第一和第二总线以并行发送数据信息。
9、依照权利要求1的单元,其中控制总线包括用于一个或多个目标处理元件、目标线程数、用于传递的字数、给定传递的数据是否有效、下一个相邻寄存器数目、用于指示传递完成的到目标PE的信号数目的信息。
10、依照权利要求1的单元,进一步包括连接到多个处理元件中的选定一些的开关,来减小与最远距离的处理元件的最大延迟。
11、一种网络转发装置,包括:
至少一个线路卡,用于向交换结构的多个端口转发数据;
该至少一个线路卡包括具有配置为执行微码的多线程处理元件的网络处理器,该网络处理器包括
第一处理元件;和
通过第一总线连接到该第一处理元件的第二处理元件,该第一总线具有控制信息总线和数据信息总线,该第二处理元件包括
第一电路,其用于从第一总线获取用于该第二处理元件的控制信息和数据信息,将用于第一处理元件的控制信息和数据信息插入到第一总线上的可用时隙上,并在第一总线上传递用于连接到该第一总线的其它处理元件的控制信息和数据信息。
12、依照权利要求11的装置,其中第一电路包括输入存储器机构以保持来自第一总线的用于第二处理元件的控制和/或数据信息。
13、依照权利要求11的装置,其中第一电路包括输出存储器机构以保持控制和/或数据信息,从而由第二处理元件将这些信息放置在第一总线上。
14、依照权利要求13的装置,其中第一电路包括数据存储器元件以保持不是用于第二处理单元的数据信息,并将这些信息在第一总线上传递。
15、依照权利要求14的装置,其中数据总线包括第一和第二总线以并行发送数据信息。
16、依照权利要求14的装置,其中控制总线包括用于一个或多个目标处理元件、目标线程数、用于传递的字数、给定传递的数据是否有效、下一个相邻寄存器数目、用于指示传递完成的到目标PE的信号数目的信息。
17、一种在处理单元的多个处理元件中传递数据和控制信息的方法,包括:
在具有相互连接这些处理元件的控制总线和数据总线的第一总线上接收控制和数据信息;
通过目标处理元件将控制和数据信息带离该第一总线;
通过非目标处理元件沿该第一总线传递控制和数据信息;并
将控制和数据信息插入到该第一总线上以传输到另一个处理元件。
18、依照权利要求17的方法,其中处理元件包括第一电路,该第一电路具有输入存储机构以保持脱离该第一总线的控制和/或数据信息。
19、依照权利要求18的方法,其中该第一电路包括输出存储机构以保持将被插入到该第一总线上的控制和/或数据信息。
20、依照权利要求19的方法,其中该第一电路包括数据存储元件以保持将在该第一总线上传递的数据信息。
21、依照权利要求17的方法,其中控制信息包括用于一个或多个目标处理元件、目标线程数、用于传递的字数、给定传递的数据是否有效、下一个相邻寄存器数目、用于指示传递完成的到目标PE的信号数目的信息。
CN200510121730.8A 2004-12-21 2005-12-21 在处理器单元中的多个处理元件间提供有效通信的方法和装置 Pending CN1819550A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/018,579 2004-12-21
US11/018,579 US7555630B2 (en) 2004-12-21 2004-12-21 Method and apparatus to provide efficient communication between multi-threaded processing elements in a processor unit

Publications (1)

Publication Number Publication Date
CN1819550A true CN1819550A (zh) 2006-08-16

Family

ID=36540231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200510121730.8A Pending CN1819550A (zh) 2004-12-21 2005-12-21 在处理器单元中的多个处理元件间提供有效通信的方法和装置

Country Status (4)

Country Link
US (1) US7555630B2 (zh)
EP (1) EP1828911A2 (zh)
CN (1) CN1819550A (zh)
WO (1) WO2006069355A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8607241B2 (en) 2004-06-30 2013-12-10 Intel Corporation Compare and exchange operation using sleep-wakeup mechanism
US7474658B2 (en) * 2005-02-10 2009-01-06 International Business Machines Corporation Data processing system, method and interconnect fabric supporting concurrent operations of varying broadcast scope
US20070157030A1 (en) * 2005-12-30 2007-07-05 Feghali Wajdi K Cryptographic system component
US8195921B2 (en) * 2008-07-09 2012-06-05 Oracle America, Inc. Method and apparatus for decoding multithreaded instructions of a microprocessor
US8806258B2 (en) 2008-09-30 2014-08-12 Intel Corporation Platform communication protocol

Family Cites Families (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
US5257218A (en) 1992-01-06 1993-10-26 Intel Corporation Parallel carry and carry propagation generator apparatus for use with carry-look-ahead adders
US5460349A (en) 1992-09-25 1995-10-24 Parker-Hannifin Corporation Expansion valve control element for air conditioning system
US5477383A (en) 1993-02-05 1995-12-19 Apa Optics, Inc. Optical array method and apparatus
JPH0713945A (ja) * 1993-06-16 1995-01-17 Nippon Sheet Glass Co Ltd 演算処理部および制御・記憶部分離型マルチプロセッサ ・システムのバス構造
US5398244A (en) * 1993-07-16 1995-03-14 Intel Corporation Method and apparatus for reduced latency in hold bus cycles
EP0727076B1 (en) 1993-11-02 1997-10-22 Taligent, Inc. Object-oriented graphic system and method
US5442576A (en) 1994-05-26 1995-08-15 Motorola, Inc. Multibit shifting apparatus, data processor using same, and method therefor
US5864822A (en) 1996-06-25 1999-01-26 Baker, Iii; Bernard R. Benefits tracking and correlation system for use with third-party enabling organization
US5868909A (en) * 1997-04-21 1999-02-09 Eastlund; Bernard John Method and apparatus for improving the energy efficiency for separating the elements in a complex substance such as radioactive waste with a large volume plasma processor
US5911056A (en) * 1997-05-01 1999-06-08 Hewlett-Packard Co. High speed interconnect bus
US5890008A (en) * 1997-06-25 1999-03-30 Sun Microsystems, Inc. Method for dynamically reconfiguring a processor
US5974525A (en) 1997-12-05 1999-10-26 Intel Corporation System for allowing multiple instructions to use the same logical registers by remapping them to separate physical segment registers when the first is being utilized
US6282554B1 (en) 1998-04-30 2001-08-28 Intel Corporation Method and apparatus for floating point operations and format conversion operations
US6263426B1 (en) * 1998-04-30 2001-07-17 Intel Corporation Conversion from packed floating point data to packed 8-bit integer data in different architectural registers
US6247116B1 (en) * 1998-04-30 2001-06-12 Intel Corporation Conversion from packed floating point data to packed 16-bit integer data in different architectural registers
US6266769B1 (en) 1998-04-30 2001-07-24 Intel Corporation Conversion between packed floating point data and packed 32-bit integer data in different architectural registers
US6292815B1 (en) 1998-04-30 2001-09-18 Intel Corporation Data conversion between floating point packed format and integer scalar format
US6549451B2 (en) * 1998-09-30 2003-04-15 Raj Kumar Jain Memory cell having reduced leakage current
US6510075B2 (en) * 1998-09-30 2003-01-21 Raj Kumar Jain Memory cell with increased capacitance
US6587856B1 (en) 1998-12-07 2003-07-01 Oracle International Corporation Method and system for representing and accessing object-oriented data in a relational database system
US6401120B1 (en) 1999-03-26 2002-06-04 Microsoft Corporation Method and system for consistent cluster operational data in a server cluster using a quorum of replicas
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6668317B1 (en) * 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6427196B1 (en) 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6687246B1 (en) * 1999-08-31 2004-02-03 Intel Corporation Scalable switching fabric
US6487107B1 (en) 1999-09-29 2002-11-26 Infineon Technologies Ag Retention time of memory cells by reducing leakage current
US6571333B1 (en) 1999-11-05 2003-05-27 Intel Corporation Initializing a memory controller by executing software in second memory to wakeup a system
US6714952B2 (en) 1999-11-10 2004-03-30 Emc Corporation Method for backup and restore of a multi-lingual network file server
US6599842B2 (en) 1999-11-29 2003-07-29 Applied Materials, Inc. Method for rounding corners and removing damaged outer surfaces of a trench
US6532509B1 (en) * 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) * 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6631430B1 (en) 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
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
US6463072B1 (en) 1999-12-28 2002-10-08 Intel Corporation Method and apparatus for sharing access to a bus
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
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
US20020107811A1 (en) 2000-01-07 2002-08-08 Sandeep Jain Use of time-stamps and digital signatures
US20020073091A1 (en) * 2000-01-07 2002-06-13 Sandeep Jain XML to object translation
US20020069121A1 (en) * 2000-01-07 2002-06-06 Sandeep Jain Supply assurance
US20020087862A1 (en) 2000-01-07 2002-07-04 Sandeep Jain Trusted intermediary
AU2001226401A1 (en) * 2000-01-14 2001-07-24 Saba Software, Inc. Method and apparatus for a business applications server
US7072934B2 (en) * 2000-01-14 2006-07-04 Saba Software, Inc. Method and apparatus for a business applications server management system platform
US6971086B2 (en) * 2000-03-16 2005-11-29 Silicon Graphics, Inc. Common user interface development toolkit for a system administration program
US6633987B2 (en) 2000-03-24 2003-10-14 Intel Corporation Method and apparatus to implement the ACPI(advanced configuration and power interface) C3 state in a RDRAM based system
US6442697B1 (en) * 2000-03-24 2002-08-27 Intel Corporation Method and apparatus to control processor power and performance for single phase lock loop (PLL) processor systems
US7682837B2 (en) * 2000-05-05 2010-03-23 Board Of Trustees Of Leland Stanford Junior University Devices and methods to form a randomly ordered array of magnetic beads and uses thereof
US7146277B2 (en) * 2000-06-13 2006-12-05 James H. Prestegard NMR assisted design of high affinity ligands for structurally uncharacterized proteins
US6469925B1 (en) 2000-07-14 2002-10-22 Raj Kumar Jain Memory cell with improved retention time
US6469924B2 (en) * 2000-07-14 2002-10-22 Infineon Technologies Ag Memory architecture with refresh and sense amplifiers
US6545905B2 (en) 2000-07-14 2003-04-08 Infineon Technologies Ag Multi-port memory cell with refresh port
US6628551B2 (en) 2000-07-14 2003-09-30 Infineon Technologies Aktiengesellschaft Reducing leakage current in memory cells
US6629237B2 (en) * 2000-09-01 2003-09-30 Intel Corporation Solving parallel problems employing hardware multi-threading in a parallel processing environment
US20020055852A1 (en) * 2000-09-13 2002-05-09 Little Erik R. Provider locating system and method
US6975628B2 (en) 2000-12-22 2005-12-13 Intel Corporation Method for representing and controlling packet data flow through packet forwarding hardware
US6738068B2 (en) * 2000-12-29 2004-05-18 Intel Corporation Entering and exiting power managed states without disrupting accelerated graphics port transactions
US20020106085A1 (en) 2001-01-05 2002-08-08 Sandeep Jain Security breach management
US8467894B2 (en) 2001-01-06 2013-06-18 Hewlett-Packard Development Company, L.P. Method and apparatus for managing product end of life
US20030004720A1 (en) * 2001-01-30 2003-01-02 Harinath Garudadri System and method for computing and transmitting parameters in a distributed voice recognition system
US6449548B1 (en) 2001-02-14 2002-09-10 Ford Global Technologies, Inc. Automatic transmission shift control
US7120134B2 (en) 2001-02-15 2006-10-10 Qualcomm, Incorporated Reverse link channel architecture for a wireless communication system
US6666862B2 (en) 2001-03-01 2003-12-23 Cardiac Pacemakers, Inc. Radio frequency ablation system and method linking energy delivery with fluid flow
DE10109974B4 (de) * 2001-03-01 2006-02-16 Infineon Technologies Ag Verfahren und System zur digitalen Echtzeit-Datenverarbeitung
US6694397B2 (en) * 2001-03-30 2004-02-17 Intel Corporation Request queuing system for a PCI bridge
US7774408B2 (en) 2001-04-23 2010-08-10 Foundationip, Llc Methods, systems, and emails to link emails to matters and organizations
US20020184352A1 (en) 2001-05-17 2002-12-05 Sunit Jain Firmware common operations and reset environment
US7082104B2 (en) 2001-05-18 2006-07-25 Intel Corporation Network device switch
US6983153B2 (en) 2001-06-07 2006-01-03 Qualcomm Incorporated Method and apparatus for congestion control in a wireless communication system
US7961616B2 (en) 2001-06-07 2011-06-14 Qualcomm Incorporated Method and apparatus for congestion control in a wireless communication system
US7624444B2 (en) * 2001-06-13 2009-11-24 Mcafee, Inc. Method and apparatus for detecting intrusions on a computer system
US6996597B2 (en) * 2001-06-15 2006-02-07 Centillium Communications, Inc. Increasing precision in multi-stage processing of digital signals
US6898746B2 (en) 2001-06-19 2005-05-24 Intel Corporation Method of and apparatus for testing a serial differential/mixed signal device
US6662120B2 (en) * 2001-06-19 2003-12-09 Endress + Hauser Flowtec Ag Excitation circuits for coriolis mass flowmeters
US7328455B2 (en) * 2001-06-28 2008-02-05 Intel Corporation Apparatus and method for enabling secure content decryption within a set-top box
US6668311B2 (en) 2001-07-30 2003-12-23 Intel Corporation Method for memory allocation and management using push/pop apparatus
US7031887B2 (en) * 2001-07-31 2006-04-18 Agilent Technologies, Inc. System architecture synthesis and exploration for multiple functional specifications
US7165225B2 (en) * 2001-08-15 2007-01-16 Microsoft Corporation Cursor tracking in a multi-level GUI
US6961932B2 (en) * 2001-08-15 2005-11-01 Microsoft Corporation Semantics mapping between different object hierarchies
US7076785B2 (en) * 2001-08-15 2006-07-11 Microsoft Corporation Lazy loading with code conversion
US6904446B2 (en) * 2001-08-24 2005-06-07 Freescale Semiconductor, Inc. Floating point multiplier/accumulator with reduced latency and method thereof
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
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
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
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
US7076417B2 (en) * 2001-09-05 2006-07-11 Agilent Technologies, Inc. Method for modeling and processing asynchronous functional specification for system level architecture synthesis
US7315863B2 (en) * 2001-09-20 2008-01-01 Oracle International Corp Method and apparatus for automatic notification of database events
US20030065785A1 (en) * 2001-09-28 2003-04-03 Nikhil Jain Method and system for contacting a device on a private network using a specialized domain name server
US6671552B2 (en) * 2001-10-02 2003-12-30 Medtronic, Inc. System and method for determining remaining battery life for an implantable medical device
US6853597B2 (en) * 2001-10-03 2005-02-08 Infineon Technologies Aktiengesellschaft Integrated circuits with parallel self-testing
US7389359B2 (en) * 2001-10-19 2008-06-17 Foundry Networks, Inc. Method and system for intelligently forwarding multicast packets
US6823425B2 (en) * 2001-10-23 2004-11-23 Ivivity, Inc. System and method for implementing advanced RAID using a set of unique matrices as coefficients
US20030081582A1 (en) * 2001-10-25 2003-05-01 Nikhil Jain Aggregating multiple wireless communication channels for high data rate transfers
US7068706B2 (en) * 2002-10-15 2006-06-27 Tensorcomm, Inc. System and method for adjusting phase
US7054628B2 (en) * 2001-12-07 2006-05-30 Qualcomm Incorporated Apparatus and method of using a ciphering key in a hybrid communications network
US6848090B2 (en) * 2001-12-11 2005-01-25 Cadence Design Systems, Inc. Mechanism for recognizing and abstracting pre-charged latches and flip-flops
US7158964B2 (en) * 2001-12-12 2007-01-02 Intel Corporation Queue management
US6738831B2 (en) * 2001-12-12 2004-05-18 Intel Corporation Command ordering
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7031898B2 (en) * 2001-12-21 2006-04-18 Cadence Design Systems, Inc. Mechanism for recognizing and abstracting memory structures
US6779084B2 (en) 2002-01-23 2004-08-17 Intel Corporation Enqueue operations for multi-buffer packets
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US20050018601A1 (en) * 2002-06-18 2005-01-27 Suresh Kalkunte Traffic management
US7324520B2 (en) * 2002-07-03 2008-01-29 Intel Corporation Method and apparatus to process switch traffic
US7313140B2 (en) * 2002-07-03 2007-12-25 Intel Corporation Method and apparatus to assemble data segments into full packets for efficient packet-based classification
US20040004972A1 (en) * 2002-07-03 2004-01-08 Sridhar Lakshmanamurthy Method and apparatus for improving data transfer scheduling of a network processor
US7251219B2 (en) * 2002-07-03 2007-07-31 Intel Corporation Method and apparatus to communicate flow control information in a duplex network processor system
US20040006724A1 (en) * 2002-07-05 2004-01-08 Intel Corporation Network processor performance monitoring system and method
US7478407B2 (en) * 2002-07-11 2009-01-13 Oracle International Corporation Supporting multiple application program interfaces
US6819201B2 (en) * 2002-07-19 2004-11-16 M/A-Com Balanced high isolation fast state transitioning switch apparatus
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US6973550B2 (en) * 2002-10-02 2005-12-06 Intel Corporation Memory access control
US7603662B2 (en) * 2002-10-09 2009-10-13 Microsoft Corporation System and method for sensing types of local variables
JP4210649B2 (ja) * 2002-10-15 2009-01-21 テンソルコム インコーポレイテッド チャンネル振幅推定および干渉ベクトル構築のための方法および装置
US7433307B2 (en) * 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US20040093261A1 (en) * 2002-11-08 2004-05-13 Vivek Jain Automatic validation of survey results
US7788556B2 (en) * 2002-11-13 2010-08-31 Fujitsu Limited System and method for evaluating an erroneous state associated with a target circuit
US7769623B2 (en) * 2002-12-17 2010-08-03 International Business Machines Corporation Method and system for conducting online marketing research in a controlled manner
US20040117791A1 (en) * 2002-12-17 2004-06-17 Ajith Prasad Apparatus, system and method for limiting latency
US7350060B2 (en) * 2003-04-24 2008-03-25 International Business Machines Corporation Method and apparatus for sending thread-execution-state-sensitive supervisory commands to a simultaneous multi-threaded (SMT) processor
US20050010761A1 (en) * 2003-07-11 2005-01-13 Alwyn Dos Remedios High performance security policy database cache for network processing
US6829056B1 (en) 2003-08-21 2004-12-07 Michael Barnes Monitoring dimensions of features at different locations in the processing of substrates

Also Published As

Publication number Publication date
WO2006069355A3 (en) 2006-08-24
EP1828911A2 (en) 2007-09-05
US7555630B2 (en) 2009-06-30
US20060155959A1 (en) 2006-07-13
WO2006069355A2 (en) 2006-06-29

Similar Documents

Publication Publication Date Title
US9111151B2 (en) Network on chip processor with multiple cores and routing method thereof
US9294097B1 (en) Device array topology configuration and source code partitioning for device arrays
US8127112B2 (en) SIMD array operable to process different respective packet protocols simultaneously while executing a single common instruction stream
CN1801775B (zh) 流分配
US9444757B2 (en) Dynamic configuration of processing modules in a network communications processor architecture
US20160173104A1 (en) Programmable forwarding plane
WO2006069126A2 (en) Method and apparatus to support multiple memory banks with a memory block
US7000061B2 (en) Caching queue status updates
CN103959261A (zh) 网络处理器中的多内核互联
CN1819550A (zh) 在处理器单元中的多个处理元件间提供有效通信的方法和装置
CN109905321A (zh) 一种用于自定义高速接口与以太网交互的路由控制系统
US7536692B2 (en) Thread-based engine cache partitioning
CN1781293A (zh) 用于修改从源传输到目的地的数据的系统和方法
US7277990B2 (en) Method and apparatus providing efficient queue descriptor memory access
CN1997973A (zh) 动态缓存引擎指令
US7218638B2 (en) Switch operation scheduling mechanism with concurrent connection and queue scheduling
Lee et al. MRCN: Throughput-oriented multicast routing for customized network-on-chips
Seifi et al. Clustered NOC, a suitable design for group communications in Network on Chip
CN1781079A (zh) 利用门管理器维护实体顺序
US20060140203A1 (en) System and method for packet queuing
US7940764B2 (en) Method and system for processing multicast packets
US20040081158A1 (en) Centralized switching fabric scheduler supporting simultaneous updates
Seifi et al. A clustered NoC in group communication
Yoon et al. Scalable flow-based network processor for premium network services
US11934337B2 (en) Chip and multi-chip system as well as electronic device and data transmission method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication