CN1135469C - 用于计算机中的处理设备与方法 - Google Patents

用于计算机中的处理设备与方法 Download PDF

Info

Publication number
CN1135469C
CN1135469C CNB99812768XA CN99812768A CN1135469C CN 1135469 C CN1135469 C CN 1135469C CN B99812768X A CNB99812768X A CN B99812768XA CN 99812768 A CN99812768 A CN 99812768A CN 1135469 C CN1135469 C CN 1135469C
Authority
CN
China
Prior art keywords
processor
instruction
processor device
auxilliary
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CNB99812768XA
Other languages
English (en)
Other versions
CN1325511A (zh
Inventor
R・N・奈洛尔
R·N·奈洛尔
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN1325511A publication Critical patent/CN1325511A/zh
Application granted granted Critical
Publication of CN1135469C publication Critical patent/CN1135469C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/30098Register arrangements
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

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

Abstract

一种用于一个计算机上的处理设备,包括:用于处理一个第一指令组的该第一处理器装置(1);和用于处理一个第二指令组的第二处理器装置(2),第二指令组是第一指令组的子组,其中将第二处理器装置(2)设置成可接收控制信号并根据这些控制信号对指令进行处理而不参考第一处理器装置。

Description

用于计算机中的处理设备与方法
发明领域
本发明涉及计算机体系结构上的处理设备。
现有技术的描述
目前有许多基于一个单主处理器的常规计算机体系结构,该单主处理器与一个协处理器共同工作。协处理器增加了计算机结构体系中主处理器所不具有的或者不能高效实现的功能。协处理器通常使用主处理器的指令组中没有设定的指令。因此,许多协同处理器用于对所需的特定码进行寻址,如浮点运算或信号处理。在大多数的应用中,这意味着此协处理器的指令组是专用于该协处理器的。
另外,许多主处理器使用实时操作系统来执行多项任务和对异常检测,如中断。执行多项任务可以引起上下关系的交换,该上下关系的交换可以占用处理器中尚有的大量的处理能力。当由一个处理器正在执行的任务改变时就会发生关系交换。一项任务的上下关系和相应于任务的代码以及处理器的内部寄存器的状态有关。另外,在低功率的应用中为了节省电能,经常要使用睡眠模式,并且当发生中断或服务请求时处理器必须从睡眠模式中重新激活。当处理器被激活时,必须加载上下关系然后进行服务,最后处理器返回到一个待用状态。这样的一个处理器可消耗大量的电能。
因此期望具有一种能克服这些缺点的计算机结构体系。
本发明的简述
根据本发明的一个方面,提供了用于计算机的一个处理设备,包括:
用于处理一个第一指令组的第一处理器装置;和
用于处理一个第二指令组的第二处理器装置,第二指令组是第一指令组的子组,其中将第二处理器装置设置成可接收控制信号并根据这些控制信号对指令进行处理而不参考第一处理器装置。
图面说明
图1是根据本发明的计算机处理器结构的方框图;
图2展示了包括多个处理器的计算机体系结构;
图3为示意性地表示了体现本发明的处理器如何实现一个所期望的虚拟处理器的功能。
优选实施例的详细描述
图1为展示与一个辅助(或第二)处理器2相连接的一个主(或第一)处理器1的一个方框图。在所示的实例中,辅助处理器2用于控制来自与处理器系统相连接的外围设备的中断。
主处理器1通过外部总线接口4与一个外部总线3进行通信。外部总线3用于在主处理器和存储设备(图中未示出)之间进行数据的双向传输(未示出)。主处理器1还包括一个用于控制对存储设备的数据存取的存储器控制器5。存储器控制器5通过一个具有主处理器1的总控制的执行单元6进行自控。主处理器1还包括一个算术逻辑单元(ALU)7和多个寄存器8,图中所示的寄存器为16个。主处理器1的各个部件之间通过适当的内部总线彼此进行通信。
为了尽可能长时间的使主处理器1处于一个低功率待用状态,将一个辅助处理器2与该主处理器1相连接。辅助处理器2包括一个中断控制器10,该中断控制器10通过一个中断输入12接收中断信号。辅助处理器2也包括多个寄存器,该寄存器与主处理器1中选择的寄存器相对应。如图1所示,中断控制器可与外围设备相连接,其中该外围设备与一个外围总线11相连接。
辅处理器2还包括一个执行单元14、代码存储器15和数据存储器16。辅处理器2对来自主处理器1运行的指令的一个选择的子集进行处理,并且这些指令被存储在代码存储器15中。辅处理器2可通过一个存储器控制器17对主处理器的存储器进行访问,其中该存储器控制器17通过主处理器外部总线接口4与外部总线3相连接。
为了在主处理器1和辅处理器2之间建立连接,通过一个主中断控制器18将两个处理器的执行单元连接在一起,并且通过一个寄存器桥单元19将两个处理器的寄存器连接在一起。主中断控制器18是一个模块,为了在执行任务及一个关系交换时引起与系统需求相当的变化,该模块让辅处理器向主处理器发出一个中断命令。它利用主中断协议向主处理器发出一个中断指令并将中断源表示为一个辅处理器所编写的、与一个所需的新任务有关的一个向量。
下面对处理器的描述是辅处理器2运行的一个例子,其中上述处理器用于对来自外围总线11的中断进行服务。一个外围设备(图中未示出)在中断输入线12上产生一个中断请求。输入控制器10对中断请求进行解释,如果中断请求是可由辅处理器2处理的类型,则辅处理器2将对该中断进行服务。一个中断的一个实例是:如果一个外部设备,如一个串行端口从其所连接的一个系统中接收数据。来自这样一个串行端口的数据被包含在一个信息体中,该信息体包括关于数据源和数据内容的信息。然后通过辅处理器2接受该信息而后从该信息中除去数据来对请求的中断进行服务。一旦数据被除去并且通过核查,则通过主中断控制器18向主处理器,发出一个中断指令,并且该主中断处理器18具有第一次建立的任务所需的关系来服务信息内的数据。在辅处理器2存储中断任务的关系时主处理器1将开始处理数据。
寄存器桥单元19允许主处理器和辅处理器对一组寄存器进行多重访问。在处理器的物理资源空间内解决访问时的冲突以及对这些寄存器的映射时,它允许在两个处理器系统中出现物理寄存器。
该单元包含了允许对每一个处理器总线进行双重访问的多路复用器、能防止访问冲突的仲裁逻辑和允许访问地址改变的逻辑,该逻辑允许对每一个处理器的地址变换内的寄存器的位置进行重新映射。
例如映射到主处理器位置4~7的寄存器也可以出现在辅处理器的位置4~7处或者重新映射到辅处理器的位置8~11处。或者在寄存器调换的实例中,主处理器的寄存器x-y可以变为辅处理器中相当的寄存器,反之亦然。它允许辅处理器的寄存器x-y在加载时具有一个新的上下文关系,然后在一个关系交换中调换到主处理器中。在辅处理器中被取代的寄存器将包含旧主关系并且当主处理器对新的关系进行处理时,该寄存器在辅处理器中能被存储和重新存储。
当主处理器1正在执行一个任务或者处于一个非活动(静止)状态时,辅处理器将接收中断指令来确定请求并决定所请求的动作。如果该动作可由辅处理器单独处理,则对此进行处理而无需涉及主处理器,但是如果它确实需要主处理器的一些介入的话,则辅处理器2将通过主中断控制器18激活主处理器。
在所示的例子中,辅处理器2可以处理来自外围设备的常规请求而不必要求主处理器进行介入。为了使两个处理器能处理相同的数据,通过寄存器桥单元19可使将要处理的数据在主处理器和辅处理器之间进行共享。
很容易理解的是辅处理器2可以使用主处理器的指令集的一个子集。这种辅处理器的主要优点在于指令代码很容易在主处理器和辅处理器之间共享而无需进行处理器仿真或者复合代码转换(complex code conversion)。另一个显著的优点是任何需要开发辅处理器的工作可以基于主处理器的开发工作。另外,辅处理器基于对主处理器的指令的一个限定范围进行处理,因而可使辅处理器的设计得到最优化。可对用于这样一个应用程序的代码进行分析从而确认出使用频率最高的指令,辅处理器可以专门用于处理这些使用频率高的指令。辅处理器可以基于公共指令集但尽量不涉及寄存器和寻址范围请求。辅处理器可以访问主处理器使用的所有相关寄存器和内存区,这样主处理器和辅处理器可以相互合作进行工作,辅处理器可以处理独立于主处理器的任何参考的任务。可以理解的是多个辅处理器与一个单个主处理器共同工作从而达到高效的数据处理而无需直接涉及主处理器本身。
该系统的一个显著的优点是辅处理器可以服务中断请求和其它例行任务而无需将主处理器激发到活动状态。这样可以在整体上减少处理系统的电能消耗。
可以理解的是如果在多个辅处理器中每一个处理器致力于主处理器功能的一个部分,则多个辅处理器有可以提供主处理器的所有功能。利用这种方式可以产生一个处理体系,该体系无需使用这样的主处理器而是使用一组辅处理器,在该辅处理器组中每一个处理器都是为了一个特定的功能而得到最优化。这种处理体系如图2、3所示,其中辅处理器被布置成对数据和寄存器进行共享,由此对程序步骤的处理可具有连续性。
图2是一个不使用一个主处理器的辅处理器理念的一个应用。
多个辅处理器依次进行布置;每一个处理器对来自上一个辅处理器的数据进行特定的处理并将处理过的数据依次传送给下一个辅处理器。该序列在末端辅处理器上具有输入/输出口,该输入/输出口用于与其它系统部件相连接。在辅处理器的两个方向上进行数据处理(即1到5和5到1)。另外片段3和4包含具有附加输入/输出口的两个辅处理器(A&B),该输入/输出口用于与主序列相连接。辅处理器6执行存储器控制的任务并确保将所需的合适代码由主存储器加载到辅处理器中。它也执行系统的主协作任务。
这种应用的一个实例可以是一个通信终端。辅处理器1的I/O端口可以连接在RF子系统上,处理器5的I/O端口连接在音频子系统上。辅处理器3b/4b的第二I/O端口连接在数据处理、用户接口如LCD和键盘上。辅处理器1~5中的每一个均执行由音频编解码器、交织/去交织等所需的特定任务。
图3是一个虚拟处理器理念的一个实例。
主处理器作为一个虚拟处理器和一个仿真机,该虚拟处理器仅能存在于理念中。由该虚拟处理器可以对各种实例进行分析,得到特定的执行指令。这三个执行指令1~3在下面主处理器取出。每一个执行指令都包含该应用所需的主处理器的特定部件。例如辅处理器A(1)可具有一个RISC CPU的特性,辅处理器B(2)可以是一个逻辑处理器,辅处理器C(3)可以是一个存储器管理处理器。
图3的重要特性在于主处理器是一个虚拟处理器,该虚拟处理器可以不以有形的方式存在。
辅处理器是虚拟处理器的最优化部分(fragment),该部分可以合成为一个芯片上的一个物理执行件。

Claims (6)

1.一种用于一个计算机上的处理设备,包括:
第一处理器装置,可操作地用于处理来自一个第一指令组的指令;和
第二处理器装置,可操作地用于处理来自一个第二指令组的指令,第二指令组是第一指令组的子组,第二处理器装置被设置成可接收指令,当接收到的指令选自第二指令组中时对接收到的指令进行处理而不参考第一处理器装置,其特征在于,第一处理器装置包括多个寄存器,第二处理器装置被连接到第一处理装置访问所述寄存器的一个预选寄存器。
2.如权利要求1所述的设备,其中第一处理器装置具有运行的活动状态和待用状态,其中当第一处理器装置处于待用状态时,第二处理器装置可操作地对指令进行处理。
3.如权利要求2所述的设备,其中当接收到的信号不能由第二处理器装置处理时,第二处理器装置可操作地将第一处理器装置从待用状态变化到活动状态。
4.如权利要求1至3中任一项所述的处理设备,还包括多个第二处理器装置,用于处理第一指令组的相应的子集。
5.一种操作一个计算机的方法,该计算机包括用于处理来自一个第一指令组的指令的第一处理器装置、用于处理来自一个第二指令组的指令的第二处理器装置,第二指令组是第一指令组的一个子组,该方法包括:
使用第二处理器装置接收指令;和
当接收到的指令选自所述第二指令组中时,利用第二处理器装置而不参考第一处理器装置对接收到的指令进行处理,其特征在于第二处理器装置可操作地访问在第一处理器装置寄存器的多个寄存器中的一个预选寄存器。
6.如权利要求5所述的方法,其中第一处理器装置具有运行的活动状态和待用状态,其中当第一处理器装置处于待用状态时,利用第二处理器装置对指令进行处理。
CNB99812768XA 1998-10-30 1999-10-25 用于计算机中的处理设备与方法 Expired - Lifetime CN1135469C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9823819A GB2343269A (en) 1998-10-30 1998-10-30 Processing arrangements
GB9823819.9 1998-10-30

Publications (2)

Publication Number Publication Date
CN1325511A CN1325511A (zh) 2001-12-05
CN1135469C true CN1135469C (zh) 2004-01-21

Family

ID=10841599

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB99812768XA Expired - Lifetime CN1135469C (zh) 1998-10-30 1999-10-25 用于计算机中的处理设备与方法

Country Status (11)

Country Link
US (1) US7197627B1 (zh)
EP (1) EP1125194B1 (zh)
JP (1) JP2002529810A (zh)
KR (1) KR20010080349A (zh)
CN (1) CN1135469C (zh)
AU (1) AU763319B2 (zh)
BR (1) BR9914966A (zh)
EE (1) EE200100237A (zh)
GB (1) GB2343269A (zh)
MY (1) MY121811A (zh)
WO (1) WO2000026772A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5090591B2 (ja) * 2000-04-12 2012-12-05 ソニー株式会社 電子装置の制御方法,電子装置及び電子装置の機能の認識方法
GB2382674B (en) 2001-10-31 2005-11-16 Alphamosaic Ltd Data access in a processor
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
ATE472134T1 (de) 2002-04-18 2010-07-15 Nxp Bv Prozessor mit mehrfachbefehlsausgabe
US7058829B2 (en) * 2002-08-14 2006-06-06 Intel Corporation Method and apparatus for a computing system having an active sleep mode CPU that uses the cache of a normal active mode CPU
JP4090908B2 (ja) * 2003-02-21 2008-05-28 シャープ株式会社 画像処理装置および画像形成装置
WO2007034265A1 (en) * 2005-09-21 2007-03-29 Freescale Semiconductor, Inc. System and method for storing state information
KR100663709B1 (ko) 2005-12-28 2007-01-03 삼성전자주식회사 재구성 아키텍처에서의 예외 처리 방법 및 장치
TW200735846A (en) * 2006-03-31 2007-10-01 Micro Star Intl Co Ltd Data process electronic device with dual CPU
US8468009B1 (en) * 2006-09-28 2013-06-18 Cadence Design Systems, Inc. Hardware emulation unit having a shadow processor
JP4720926B2 (ja) * 2009-03-26 2011-07-13 ブラザー工業株式会社 処理装置
US7996595B2 (en) * 2009-04-14 2011-08-09 Lstar Technologies Llc Interrupt arbitration for multiprocessors
US8321614B2 (en) * 2009-04-24 2012-11-27 Empire Technology Development Llc Dynamic scheduling interrupt controller for multiprocessors
US8260996B2 (en) * 2009-04-24 2012-09-04 Empire Technology Development Llc Interrupt optimization for multiprocessors
US8234431B2 (en) * 2009-10-13 2012-07-31 Empire Technology Development Llc Interrupt masking for multi-core processors
CN102360278A (zh) * 2011-09-07 2012-02-22 苏州科雷芯电子科技有限公司 控制类指令与计算类指令分离式计算机系统
US9153295B2 (en) * 2012-10-04 2015-10-06 Texas Instruments Incorporated Register bank cross path connection method in a multi core processor system
US10942748B2 (en) * 2015-07-16 2021-03-09 Nxp B.V. Method and system for processing interrupts with shadow units in a microcontroller
CN105204393B (zh) * 2015-08-13 2017-12-26 彭增金 基于虚核单片机的单片机生产研发工具及其实现方法
TWI716167B (zh) * 2019-10-29 2021-01-11 新唐科技股份有限公司 儲存裝置及其映射方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2607685C3 (de) 1976-02-25 1981-01-15 Siemens Ag, 1000 Berlin Und 8000 Muenchen Verfahren zum Betrieb von Prozessoren in einem Multiprozessorsystem
US4395758A (en) * 1979-12-10 1983-07-26 Digital Equipment Corporation Accelerator processor for a data processing system
US5021991A (en) * 1983-04-18 1991-06-04 Motorola, Inc. Coprocessor instruction format
EP0174231B1 (en) * 1984-08-02 1990-11-14 Telemecanique Programmable controller ("pc") with co-processing architecture
US5226127A (en) * 1989-04-07 1993-07-06 Intel Corporation Method and apparatus providing for conditional execution speed-up in a computer system through substitution of a null instruction for a synchronization instruction under predetermined conditions
US5283881A (en) 1991-01-22 1994-02-01 Westinghouse Electric Corp. Microcoprocessor, memory management unit interface to support one or more coprocessors
US5588118A (en) * 1991-08-21 1996-12-24 Zilog, Inc. Single chip dual processor
US5614847A (en) * 1992-04-14 1997-03-25 Hitachi, Ltd. Semiconductor integrated circuit device having power reduction mechanism
US5495588A (en) 1993-11-18 1996-02-27 Allen-Bradley Company, Inc. Programmable controller having joined relay language processor and general purpose processor

Also Published As

Publication number Publication date
GB9823819D0 (en) 1998-12-23
JP2002529810A (ja) 2002-09-10
AU763319B2 (en) 2003-07-17
KR20010080349A (ko) 2001-08-22
EP1125194A1 (en) 2001-08-22
WO2000026772A1 (en) 2000-05-11
EE200100237A (et) 2002-08-15
CN1325511A (zh) 2001-12-05
AU6342499A (en) 2000-05-22
MY121811A (en) 2006-02-28
EP1125194B1 (en) 2005-12-28
GB2343269A (en) 2000-05-03
BR9914966A (pt) 2001-07-10
US7197627B1 (en) 2007-03-27

Similar Documents

Publication Publication Date Title
CN1135469C (zh) 用于计算机中的处理设备与方法
EP1038253B1 (en) Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem
TWI386814B (zh) 具動態工作管理能力之多處理器界面及其程式載卸方法
US7926060B2 (en) iMEM reconfigurable architecture
US8745631B2 (en) Intelligent memory device with ASCII registers
US7856632B2 (en) iMEM ASCII architecture for executing system operators and processing data operators
EP3588288B1 (en) A multithreaded processor core with hardware-assisted task scheduling
Myers et al. Microprocessor technology trends
US7908603B2 (en) Intelligent memory with multitask controller and memory partitions storing task state information for processing tasks interfaced from host processor
US4851992A (en) Register/saving/restoring system for saving and restoring data in a register of a slave processor
US7647485B2 (en) Data processing system for debugging utilizing halts in a parallel device
US20050172088A1 (en) Intelligent memory device with wakeup feature
JP2001249808A (ja) 情報処理装置
US7823159B2 (en) Intelligent memory device clock distribution architecture
US20070220234A1 (en) Autonomous multi-microcontroller system and the control method thereof
Jensen The influence of microprocessors on computer architecture: Distributed processing
Akhunov et al. LUTIC: A CRAM-based Architecture for Power Failure Resilient In-Memory Computing
KR20070102370A (ko) 오토노머스 멀티-마이크로컨트롤러 시스템 및 그의 제어방법
Stewart et al. Hardware/software co-design of i/o interfacing hardware and real-time device drivers for embedded systems
JPH0546530A (ja) コンピユーター制御回路

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
PB01 Publication
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20040121

CX01 Expiry of patent term