CN1367432A - 防止多处理器计算机中各处理器间进程发生冲突的方法 - Google Patents

防止多处理器计算机中各处理器间进程发生冲突的方法 Download PDF

Info

Publication number
CN1367432A
CN1367432A CN 01101588 CN01101588A CN1367432A CN 1367432 A CN1367432 A CN 1367432A CN 01101588 CN01101588 CN 01101588 CN 01101588 A CN01101588 A CN 01101588A CN 1367432 A CN1367432 A CN 1367432A
Authority
CN
China
Prior art keywords
processor
interrupt
lock flag
multiprocessor computer
auxilliary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 01101588
Other languages
English (en)
Other versions
CN1152306C (zh
Inventor
陈玄同
林光信
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.)
Inventec Corp
Original Assignee
Inventec 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 Inventec Corp filed Critical Inventec Corp
Priority to CNB011015888A priority Critical patent/CN1152306C/zh
Publication of CN1367432A publication Critical patent/CN1367432A/zh
Application granted granted Critical
Publication of CN1152306C publication Critical patent/CN1152306C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

本发明以整数变量作为锁定标志,设置于一多处理器计算机中各处理器所属的进程控制表的代码段内,以标识出目前是否已有处理器正在占用系统资源,若无,即可在将该锁定标志置入后,令一处理器执行其中断处理程序,在执行完毕后,再释放该锁定标志,使其他处理器能够使用系统资源,依序于接收到中断信号时,正常执行其中断处理程序,使在对一多处理器计算机中各处理器数目进行量测时,可有效防止各处理器间进程发生冲突。

Description

防止多处理器计算机中各处理器间进程发生冲突的方法
按,在现有电脑作业系统(Operating System)的技术中,DOS作业系统是属一种单进程且独占资源的单工系统,该系统在其运行上只能有一个进程(process),故在单一处理器的环境下,DOS作业系统中不可能有一个以上的进程同时执行。若有多个进程提交该系统进行处理,即需依靠排班队列(Scheduling Queues)的方式,依序执行各进程。
传统上,在对一台具有多处理器计算机中的处理器数目进行测量时,一般是令每个处理器均执行一进程(process),同时分别在存储器中写入一个标记,以表示该处理器的存在。但在此种传统量测过程中,如何能令该等处理器均能正确地执行每个进程,令其在分别执行所属进程时,不致发生冲突,且在所有进程被执行完毕后,仍能保证DOS作业系统的正常运行,则是目前在DOS作业系统下,对多处理器计算机中的处理器数目进行测量时,尚无法有效解决的问题。
有鉴于传统上对多处理器计算机中多处理器数目进行量测时,易发生多处理器进程冲突的诸多缺点,发明人乃进一步研究改良,研发出本发明,本发明主要是藉由一整数变量(semaphore),以其作为锁定标志,标识出目前是否有处理器正在占用系统资源,若无处理器占用系统资源,即可将该锁定标志置入后,再令一处理器执行其中断服务例程;在执行完毕后,再释放该锁定标志,使其他处理器能够依序使用系统资源,执行其中断服务例程。
本发明的主要目的,是透过设置一整数变量,作为锁定标志,以保证一电脑中的多个处理器,可依序执行其所属进程,令各该进程间不致发生冲突,当一处理器进程结束后,即释放该锁定标志,并回复到中断前的状态,使其他处理器能够依序使用系统资源,执行其中断服务例程,并确保多处理器模块执行完毕后,DOS作业系统仍能维持正常运行。
本发明的另一目的,是将该整数变量标志设置于各该多处理器所属的进程控制表的代码段内,因各该代码段是不随进程的执行而改变,故各该处理器在执行该中断服务例程前,可将其数据段和堆栈段内的数据先予以保存,并将保存的地址储存在该代码段内,以确保各该处理器在完成中断处理后,能正确地查找到该等数据,并回复到中断前的状态。
为了实现上述目的,本发明提供一种防止多处理器计算机中各处理器间进程发生冲突的方法,该方法是以一整数变量作为锁定标志,设置于一多处理器计算机中各处理器所属的进程控制表的代码段内,以标识出目前是否已有处理器正在占用系统资源,若无处理器占用系统资源,即可在将该锁定标志置入后,令一处理器执行其中断处理程序,在执行完毕后,再释放该锁定标志,使其他处理器能够使用系统资源,依序于接收到中断信号时,正常执行其中断处理程序。
图1所示乃本发明的整体流程示意图;
图2所示乃本发明中主处理器的处理流程示意图;
图3所示乃本发明中各辅处理器的处理流程示意图;
图4所示乃本发明中各辅处理器对其中断服务例程的入口进行设定的处理流程示意图。
在符合Intel架构的多处理器主机板上,一般均安装有一个含有局部高级可编程中断控制器(local APIC)的主处理器,该主处理器主要是于该多处理器系统间负责传递通信讯息及命令,当该主处理器接收到由其他处理器透过系统总线所发出的中断信号时,会将该中断信号传递至所指定的辅处理器,使各该辅处理器对中断进行处理。当该种多处理器主机板上的DOS作业系统接收到一特殊的中断启始(start-up)信号时,其上的该主处理器将会触发该特殊的中断,令各该辅处理器能依序执行一中断服务例程(serviceroutine),使该服务例程去检查该中断信号,并呼叫特定的中断处理程序,对该中断进行处理,且将其目前的状态储存至一存储器中。由于在DOS作业系统下,同一时刻仅允许一处理器执行该服务例程,本发明即藉由设置一整数变量,作为一锁定标志的方法,利用该锁定标志标识出目前是否已有处理器正在占用系统资源,执行该中断处理程序,若无处理器占用系统资源,即可将该锁定标志置入后,令一处理器执行该中断服务例程;在执行完毕后,再释放该锁定标志,使其他处理器能够依序使用系统资源,执行其中断服务例程。
在本发明中,由于该多处理器主机板上的各处理器,均有其各别应执行的进程(process),各该进程于存储器中,均对应者一进程控制表(processcontrol block),各该进程控制表的数据段及堆栈(Stack)段互不相同,故若该整数变量标志是被设计置放于该数据段内,由于该数据段内的数据,将因进程的执行而改变,令其它处理器找不到该标志,而导致系统崩溃。因此,本发明是将该整数变量标志设计置放于各该进程控制表的代码段内,该代码段是不随进程的执行而改变。如此,各该处理器在执行该中断服务例程前,可将该数据段和堆栈段内的数据先予以保存,并将保存的地址储存在该代码段内,以确保各该处理器在完成中断处理后,能正确地查找到该等数据,并回复到中断前的状态。
本发明中,当该多处理器主机板被开机,并完成DOS作业系统的启始(boot-up)程序后,参阅第1图所示,系统是先对主处理器完成初始化状态设定(101);并由该主处理器设定各该辅处理器进行中断的入口地址(102);然后,再对各该辅处理器依序发出中断信号(103);各该辅处理器在接收到一中断信号时,将调用存储器中(位于40∶67)的一中断向量(interrupt vector),以依据该中断向量内所提供的中断服务例程(Service Routine)的地址,执行相应的中断程序(104),故,各辅处理器所执行的对应中断服务例程的地址,必须置放于位于存储器中40∶67地址的该中断向量(interrupt vector)内,使各该辅处理器均能透过该中断向量,找到对应的中断服务例程,并予执行,以完成对该中断的处理;各该辅处理器是利用本发明所设计的锁定标志,标识出目前已占用系统资源,处于正在执行该中断处理程序的状态,在执行完毕后,再释放该锁定标志(105),并等待下一次的中断请求(106),如此,即可令其他辅处理器依序使用系统资源,执行该中断服务例程。
在本发明中,复参阅第1图所示,在各该辅处理器接收到一中断信号时,需将其目前的状态储存至一暂存存储器中(107),使在各该处理器完成对该中断的处理,并释放该锁定标志后,该主处理器可根据保存于该暂存存储器中的数据(108),正确地查找到各该辅处理器中断前的状态数据,以确保各该辅处理器在完成中断处理后,仍能回复到中断前的状态(109)。
在本发明的前述处理程序中,参见第2图所示,该主处理器是依下列步骤,进行处理:
首先,判断该主处理器当前的模式,是否属实模式(real mode)(201),若当前模式为保护模式(protection mode),结束处理;否则,判断该主处理器的识别号(ID),是否为Pentium以上的处理器(202),若否,则结束处理;
若为Pentium以上的处理器,则将当前的操作模式切换到保护模式(203),并搜索浮点指针(float pointer),找到本地的高级可编程中断控制器(local APIC)的基地址(base address)(204);
然后,再于该地址处分别设置任务优先级寄存器(register)、伪向量寄存器、目的寄存器及目的格式寄存器(205);并为每个待处理的辅处理器设定一对应的变量,并将该变量值设为0,同时保存其数据段(206);
再为每个处理器申请数据使用空间及4K页空间,其中的4K页空间是支持每个处理器运行时所需的存储器空间(207);
然后再判断是否申请成功(208)?若否,结束处理,否则,设定中断服务例程的入口地址模块(209),发出中断启始(start up)信号,令各该辅处理器开始执行中断服务例程(211);
在中断服务例程被执行完毕,再恢复中断前的系统环境,并释放存储器空间,且切换回实模式(212),等待下一次被调用。
在本发明中,参见第3图所示,各该辅处理器在利用本发明所设计的锁定标志,标识出目前占用系统资源的状态时,主要是依下列步骤,进行处理:
首先,侦测锁定标志值(301),并判断该标志是否已经被锁定(302),若已被锁定,则返回(301),继续侦测锁定标志值;否则,对该标志值进行锁定(303);
将数据段及堆栈段改为申请的段空间(304)后,再向暂存存储器中写入对应段空间的存在标志(305),使该主处理器可自该暂存存储器中,正确地读取各该辅处理器中断前的状态数据;在完成执行该中断处理程序,再释放该标志值的锁定(306),且将该标志设定为空闲状态(307),令其他辅处理器能够使用系统资源,依序执行该中断服务例程。
在本发明中,参见第4图所示,该中断服务例程的入口地址模块主要是依下列步骤,进行设定:
首先,判断0X70的入口是否为可写状态(401)?若否,则结束处理;否则,向0X70的入口写入0X7F值(402);
判断0X71的入口是否为可写状态(403)?若是,向0X70的入口写入0X0A值(402),并将中断服务例程的地址写入存储器地址40∶67中(405)。
本发明在该代码段中,是藉设定一整数变量(semaphore),以作为是否锁定的标志,使各该处理器在执行中断服务程序的过程中,可先循环检测该整数变量的锁定标志是否被锁定,若是,则令其处于等待状态,并继续循环检查该锁定标志,否则,锁定该标志,并执行中断服务程序,在中断服务例程被执行完毕,即释放该锁定标志,以令其他处理器可依序执行其中断服务程序。
如此,在对一台具有多处理器计算机中的处理器数目进行测量时,各该处理器在依序接收到中断信号时,均能正常执行其中断处理程序,并可有效防止各处理器间进程发生冲突的情事,确保多处理器模块执行完毕后,DOS作业系统仍能维持正常运行。
以上所述,仅是本发明的较佳实施例,惟,本发明所主张的权利范围,并不局限于此,按凡熟悉该项技艺人士,依据本发明所揭露的技术内容,可轻易思及的等效变化,均应属不脱离本发明的保护范畴。

Claims (8)

1、一种防止多处理器计算机中各处理器间进程发生冲突的方法,该方法是以一整数变量作为锁定标志,设置于一多处理器计算机中各处理器所属的进程控制表的代码段内,以标识出目前是否已有处理器正在占用系统资源,若无处理器占用系统资源,即可在将该锁定标志置入后,令一处理器执行其中断处理程序,在执行完毕后,再释放该锁定标志,使其他处理器能够使用系统资源,依序于接收到中断信号时,正常执行其中断处理程序。
2、如权利要求1所述的一种防止多处理器计算机中各处理器间进程发生冲突的方法,该方法是先对该等多处理器中一含有局部高级可编程中断控制器的主处理器,进行初始化状态设定,并由该主处理器设定各该辅处理器进行中断的入口地址;然后,再对各该辅处理器依序发出中断信号。
3、如权利要求2所述的一种防止多处理器计算机中各处理器间进程发生冲突的方法,其中各该辅处理器在接收到一中断信号时,将调用存储器中的一中断向量,以依据该中断向量内所提供的中断服务例程的地址,执行相应的中断程序,以完成对该中断的处理。
4、如权利要求3所述的一种防止多处理器计算机中各处理器间进程发生冲突的方法,其中各该辅处理器是利用该锁定标志,标识出目前已占用系统资源,处于正在执行该中断处理程序的状态,在执行完毕后,再释放该锁定标志,并等待下一次的中断请求。
5、如权利要求2所述的一种防止多处理器计算机中各处理器间进程发生冲突的方法,其中在各该辅处理器接收到一中断信号时,需将其目前的状态储存至一暂存存储器中,使在各该处理器完成对该中断的处理,并释放该锁定标志后,该主处理器可根据保存于该暂存存储器中的数据,正确地查找到各该辅处理器中断前的状态数据,以确保各该辅处理器在完成中断处理后,仍能回复到中断前的状态。
6、如权利要求2所述的一种防止多处理器计算机中各处理器间进程发生冲突的方法,其中当该主处理器当前的模式是属实模式时,判断该主处理器的识别号是否符合规定;
若符合规定,即将当前的操作模式切换到保护模式,并搜索浮点指针,找到本地的高级可编程中断控制器的基地址;
然后,再于该地址处分别设置任务优先级寄存器、伪向量寄存器、目的寄存器及目的格式寄存器;并为每个待处理的辅处理器设定一对应的变量,并将该变量值设为零,同时保存其数据段;
再为每个处理器申请数据使用空间及运行空间;
然后再判断是否申请成功?若是,则设定中断服务例程的入口地址模块,发出中断启始信号。
7、如权利要求6所述的一种防止多处理器计算机中各处理器间进程发生冲突的方法,其中在中断服务例程被执行完毕后,再恢复中断前的系统环境,并释放存储器空间,且切换回实模式,等待下一次被调用。
8、如权利要求2所述的一种防止多处理器计算机中各处理器间进程发生冲突的方法,其中各该辅处理器在利用该锁定标志,标识出目前占用系统资源的状态时,主要是依下列步骤,进行处理:
首先,侦测锁定标志值,并判断该标志是否已经被锁定,若已被锁定,继续侦测锁定标志值;否则,对该标志值进行锁定;将数据段及堆栈段改为申请的段空间后,再向暂存存储器中写入对应段空间的存在标志,使该主处理器可自该暂存存储器中,正确地读取各该辅处理器中断前的状态数据;在完成执行该中断处理程序,再释放该标志值的锁定,且将该标志设定为空闲状态,令其他辅处理器能够使用系统资源,依序执行该中断服务例程。
CNB011015888A 2001-01-23 2001-01-23 防止多处理器计算机中各处理器间进程发生冲突的方法 Expired - Fee Related CN1152306C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB011015888A CN1152306C (zh) 2001-01-23 2001-01-23 防止多处理器计算机中各处理器间进程发生冲突的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB011015888A CN1152306C (zh) 2001-01-23 2001-01-23 防止多处理器计算机中各处理器间进程发生冲突的方法

Publications (2)

Publication Number Publication Date
CN1367432A true CN1367432A (zh) 2002-09-04
CN1152306C CN1152306C (zh) 2004-06-02

Family

ID=4652148

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011015888A Expired - Fee Related CN1152306C (zh) 2001-01-23 2001-01-23 防止多处理器计算机中各处理器间进程发生冲突的方法

Country Status (1)

Country Link
CN (1) CN1152306C (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101694634A (zh) * 2009-10-30 2010-04-14 迈普通信技术股份有限公司 自动化测试系统中设备分配方法
CN1867018B (zh) * 2005-05-18 2010-04-28 北京信威通信技术股份有限公司 数字移动终端话费即时提示的方法
CN101341736B (zh) * 2005-12-23 2010-12-22 三叉微系统(远东)有限公司 具有用于交错中断的双中断线的音频/视频渲染器外设
CN101180609B (zh) * 2005-08-15 2011-06-08 索尼计算机娱乐公司 调度方法以及调度装置
CN102388367A (zh) * 2011-08-17 2012-03-21 华为技术有限公司 处理器的管理方法、锁竞争管理装置和计算机系统
CN101303751B (zh) * 2007-04-30 2012-07-11 埃森哲环球服务有限公司 交替处理的方法、系统和计算机程序产品
CN102693193A (zh) * 2012-04-26 2012-09-26 重庆重邮信科通信技术有限公司 中断辅助处理装置、实时系统及中断处理方法
CN103368724A (zh) * 2013-07-30 2013-10-23 东莞宇龙通信科技有限公司 终端和数据处理方法
CN103547997A (zh) * 2011-01-13 2014-01-29 谷歌公司 处理器模式锁定
US8780892B2 (en) 2008-07-30 2014-07-15 Zte Corporation Method and device for processing multimedia messaging service notification message and multimedia messaging service receiving system
CN104111870A (zh) * 2014-07-08 2014-10-22 福建星网锐捷网络有限公司 一种中断处理装置及中断处理方法
CN104540110A (zh) * 2008-07-30 2015-04-22 中兴通讯股份有限公司 彩信通知消息的处理方法和装置、彩信接收系统
CN107329810A (zh) * 2016-04-28 2017-11-07 飞思卡尔半导体公司 用于多核处理器的信号机
CN117331676A (zh) * 2023-11-30 2024-01-02 上海兆芯集成电路股份有限公司 系统管理模式进入方法、处理器和计算机系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100437495C (zh) * 2004-12-21 2008-11-26 鸿富锦精密工业(深圳)有限公司 解决资源重复锁定冲突系统及方法

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1867018B (zh) * 2005-05-18 2010-04-28 北京信威通信技术股份有限公司 数字移动终端话费即时提示的方法
CN101180609B (zh) * 2005-08-15 2011-06-08 索尼计算机娱乐公司 调度方法以及调度装置
US8484389B2 (en) 2005-12-23 2013-07-09 Entropic Communications, Inc. AV renderer peripheral with dual inerrupt lines for staggered interrupts
CN101341736B (zh) * 2005-12-23 2010-12-22 三叉微系统(远东)有限公司 具有用于交错中断的双中断线的音频/视频渲染器外设
CN101303751B (zh) * 2007-04-30 2012-07-11 埃森哲环球服务有限公司 交替处理的方法、系统和计算机程序产品
CN104796870B (zh) * 2008-07-30 2019-08-13 南京中兴软件有限责任公司 彩信通知消息的处理方法和装置、彩信接收系统
CN101640853B (zh) * 2008-07-30 2015-11-25 中兴通讯股份有限公司 彩信通知消息的处理方法和装置、彩信接收系统
US8780892B2 (en) 2008-07-30 2014-07-15 Zte Corporation Method and device for processing multimedia messaging service notification message and multimedia messaging service receiving system
CN104796870A (zh) * 2008-07-30 2015-07-22 中兴通讯股份有限公司 彩信通知消息的处理方法和装置、彩信接收系统
CN104540110A (zh) * 2008-07-30 2015-04-22 中兴通讯股份有限公司 彩信通知消息的处理方法和装置、彩信接收系统
CN101694634A (zh) * 2009-10-30 2010-04-14 迈普通信技术股份有限公司 自动化测试系统中设备分配方法
CN101694634B (zh) * 2009-10-30 2013-06-26 迈普通信技术股份有限公司 自动化测试系统中设备分配方法
CN103547997A (zh) * 2011-01-13 2014-01-29 谷歌公司 处理器模式锁定
WO2012119395A1 (zh) * 2011-08-17 2012-09-13 华为技术有限公司 处理器的管理方法、锁竞争管理装置和计算机系统
US9164765B2 (en) 2011-08-17 2015-10-20 Huawei Technologies Co., Ltd. Method for managing a processor, lock contention management apparatus, and computer system
CN102388367B (zh) * 2011-08-17 2014-11-05 华为技术有限公司 处理器的管理方法、锁竞争管理装置和计算机系统
US8762613B2 (en) 2011-08-17 2014-06-24 Huawei Technologies Co., Ltd. Method for managing a processor, lock contention management apparatus, and computer system
CN102388367A (zh) * 2011-08-17 2012-03-21 华为技术有限公司 处理器的管理方法、锁竞争管理装置和计算机系统
CN102693193B (zh) * 2012-04-26 2015-05-27 重庆重邮信科通信技术有限公司 中断辅助处理装置、实时系统及中断处理方法
CN102693193A (zh) * 2012-04-26 2012-09-26 重庆重邮信科通信技术有限公司 中断辅助处理装置、实时系统及中断处理方法
CN103368724A (zh) * 2013-07-30 2013-10-23 东莞宇龙通信科技有限公司 终端和数据处理方法
CN104111870B (zh) * 2014-07-08 2017-05-24 福建星网锐捷网络有限公司 一种中断处理装置及中断处理方法
CN104111870A (zh) * 2014-07-08 2014-10-22 福建星网锐捷网络有限公司 一种中断处理装置及中断处理方法
CN107329810A (zh) * 2016-04-28 2017-11-07 飞思卡尔半导体公司 用于多核处理器的信号机
CN107329810B (zh) * 2016-04-28 2023-09-08 恩智浦美国有限公司 用于多核处理器的信号机
CN117331676A (zh) * 2023-11-30 2024-01-02 上海兆芯集成电路股份有限公司 系统管理模式进入方法、处理器和计算机系统
CN117331676B (zh) * 2023-11-30 2024-03-19 上海兆芯集成电路股份有限公司 系统管理模式进入方法、处理器和计算机系统

Also Published As

Publication number Publication date
CN1152306C (zh) 2004-06-02

Similar Documents

Publication Publication Date Title
CN1152306C (zh) 防止多处理器计算机中各处理器间进程发生冲突的方法
CN1011357B (zh) 多重处理的方法和设备
CN1098487C (zh) 用于影响数据处理器中的顺序指令处理的方法和装置
US5210873A (en) Real-time computer system with multitasking supervisor for building access control or the like
EP0185378B1 (en) Virtual computer system
US6697834B1 (en) Mutual exculsion system and method for restarting critical sections of code when preempted during a critical section
CA1103325A (en) Residual status reporting during chained cycle steal input/output operations
US4807228A (en) Method of spare capacity use for fault detection in a multiprocessor system
US4725946A (en) P and V instructions for semaphore architecture in a multiprogramming/multiprocessing environment
KR960006502B1 (ko) 인터럽트 재시행 시도 감소 장치
EP2431876A1 (en) Method and device for exception handling in embedded system
JPH02502678A (ja) 多重処理を行なう方法および構成
JPH0814795B2 (ja) マルチプロセッサ仮想計算機システム
US20020099893A1 (en) System and method for the handling of system management interrupts in a multiprocessor computer system
CN1811719A (zh) 一种单线程微处理器的死锁检测与干预方法
CN101499020B (zh) 具有动态工作管理能力的多处理器界面及其程序加载或卸载方法
US5745757A (en) Multiprocessor system with microprogrammed means for dispatching processes to processors
CN113835863A (zh) 一种数据通讯方法及其软件平台
CN1540509A (zh) 计算环境中多任务处理的方法与系统
CN111506472A (zh) 堆栈监测方法、装置、电子设备及存储介质
CN117407054A (zh) 中断处理方法、电子设备和存储介质
CN101349975A (zh) 实现中断底半部机制的方法及嵌入式系统
JPS59167756A (ja) 仮想計算機のデイスパツチ制御方式
JPH01286029A (ja) マイクロプログラムのパッチ方式
JPH0922369A (ja) マルチタスキング方式のカーネルにおける不正動作検出方法

Legal Events

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

Granted publication date: 20040602

Termination date: 20110123