CN1109978C - 信息处理设备和方法,及调度装置 - Google Patents
信息处理设备和方法,及调度装置 Download PDFInfo
- Publication number
- CN1109978C CN1109978C CN97103704A CN97103704A CN1109978C CN 1109978 C CN1109978 C CN 1109978C CN 97103704 A CN97103704 A CN 97103704A CN 97103704 A CN97103704 A CN 97103704A CN 1109978 C CN1109978 C CN 1109978C
- Authority
- CN
- China
- Prior art keywords
- instruction
- data
- register
- address
- cpu
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000010365 information processing Effects 0.000 title claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 110
- 238000003672 processing method Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 2
- 230000008520 organization Effects 0.000 claims 2
- 238000003780 insertion Methods 0.000 claims 1
- 230000037431 insertion Effects 0.000 claims 1
- 238000012423 maintenance Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 6
- 238000007792 addition Methods 0.000 description 9
- 241001269238 Data Species 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000000151 deposition Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 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
- 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
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- 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
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3875—Pipelining a single stage, e.g. superpipelining
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
Abstract
一信息处理设备包含一为存放多个指令的指令存储装置和为由指令存储装置取指令以便执行这些指令的中央处理单元。中央处理单元以分别地执行一为设置操作所需第一数据的第一指令和为取由操作所得第二数据的第二指令来执行为进行需要至少二个中央处理单元的机器周期的操作的处理。中央处理单元在执行第一指令之后和执行第二指令之前执行至少一第三指令,此第三指令无需第二数据。
Description
本发明是关于采用中央处理单元提取存放在存储器中的指令并执行该指令的信息处理设备和方法,及一种调度装置用于安排用于信息处理的指令。特别是本发明关于一信息处理设备和方法,以及一为执行需要相对长时间周期的进程的调度装置。
随着当前电子技术的发展,信息处理设备例如微型计算机、微处理机等迅速扩散被应用于各种不同领域。特别是近年来由于半导体装置体积的减小和高速电路技术的发展,象微型计算机、微处理机等的中央处理单元(CPU)的操作频率增加。一些CPU的运行频率高达数百兆赫。CPU的运行性能因较高的操作频率而得到改善,但是为存储要执行的指令代码和数据由CPU对一外存的访问速度则相当低,即CPU的运行频率的数至数十倍。由于为执行一操作由CPU对外存的访问需要相对长的时间周期,信息处理设备的运行性能整体上并未得到改善。
除对外存的访问外,需要较长时间周期的操作(例如数学运算)由包含一能以相当高速度操作的CPU的信息处理设备进行。在进行这样的操作时,CPU内、外部之间处理速度上的巨大差别导致信息处理效率的降低。
下面将介绍普通的信息处理设备的结构及其为访问外存的操作。
图9为一普通信息处理设备800的主要部分的示意图。如图9中所示,信息处理信息800包含一处理器810和一外存850。处理器810与外存850经由外部地址总线851(851a和851b)和外部数据总线852(852a和852b)相互连接。
处理器810包含一中央处理单元(后面称为“CPU”)820,总线控制单元830,和ROM840。总线控制单元830包含一地址译码器833,控制电路834,存储器访问信号生成部分835,地址接口部分836和数据接口部分837。CPU820与总线控制单元830经由为发送地址的地址总线821和为传输数据的数据总线822相互连接。由ROM840将程序和指令通过指令总线841发送至CPU820。
如图9中所示,由CPU820输出的地址被经由地址总线821提供到译码器833和地址接口部分836。数据总线822被连接到数据接口部分837。地址接口部分836被经由地址总线851a连接到外地址总线851,而数据接口部分837则经由数据总线852a连接到外数据总线852。
CPU820输出一读请求信号901至总线控制单元830请求进行数据读操作,和输出写请求信号902至总线控制单元830请求进行数据写操作。读请求信号901和写请求信号902输入到总线控制单元830的控制电路834。译码地址903经由地址总线821一端口提供给地址译码器833。地址译码器833对译码地址903进行译码将结果输出给控制电路834作为装置识别信号904。装置识别信号904指定访问对象,例如应该由CPU820访问外存850还是应由CPU820访问处理器810中的装置。
控制电路834输出一外部访问起始信号905,一为控制地址接口部分836的地址控制信号906,和一为根据装置识别信号904、读请求信号901和写请求信号902控制数据接口部分837的数据控制信号907。控制电路834还响应来自CPU820的读请求信号901和写请求信号902输出一应答信号908。存储器访问信号生成部分835根据由控制电路834提供的外部访问起始信号905输出为访问外存850的存储器访问信号909。外存850接收存储器访问信号909,而在访问完成时,外存850输出一外部应答信号910以通知处理器810访问操作完成。此外部应答信号910被提供给总线控制单元830的控制电路834。
具有上述结构的普通信息处理设备800例如以下面的状态操作。首先将说明一存储在ROM840中的、包含仅由CPU820执行的指令和由CPU820与总线控制单元830共同协作执行的指令的程序示例。有关每一下述指令的由指令指定的操作在括号中加以说明。例如,指令11至13指明为访问外存850和利用作为访问操作结果所得到的数据的处理。指令14至17指明仅由CPU820进行的处理。下面指令中所用的数字、计算等均只是用于说明的。也可以采用其他数字和计算。
指令11:MOV @mem_loc1,D0
(由外存850的地址mem_loc1读取数据存入CPU820的寄存器D0中)。
指令12:ADD #10,D0
(CPU820中寄存器D0的内容与10相加,将结果再存入寄存器D0)
指令13:MOV @mem_loc2,D2
(从外部存储器850的地址mem_loc2读取数据存入CPU820的寄存器D2中)。
指令14:MUL D0,D2
(CPU820中寄存器D2的内容被乘以寄存器D0中的内容,并将结果再存入寄存器D2)。
指令15:ADD #1,D1
(CPU820中寄存器D1的内容与1相加,将结果再存入寄存器D1)
指令16:ADD #4,A0
(CPU820中寄存器A0的内容与4相加,结果再存入寄存器A0)
指令17:ADD #4,A1
(CPU820中寄存器A1的内容与4相加,结果再存入寄存器A1)
参看图10A和10B,由周期t1至t13说明信息处理设备800运行上述程序的操作。图10A和10B为信息处理设备800的操作定时图。图10A中说明周期t1至t6,图10b说明周期t7至t13。在此例中,外存850的读取时间,亦即,由外存850接收存储器访问信号909和到外地址总线851的地址输出直到外存850输出数据至外数据总线852的时间期限为4个机器周期。数据“data1”被预先存放在外存850的地址mem_loc1上,数据“data2”被预先存放在外存850的地址mem_loc2上。
在为由外存850读数据的指令(指令11或13)被CPU820处理时,欲读取的数据的地址被通过地址总线821和地址接口部分836输出到外地址总线836(周期t1或t6)。但是,外存850的读数时间是4个周期,它大于CPU820的一时间单元(1机器周期)。因而在由外存850输出的数据(data1或data2)经由外数据总线852和数据接口部分837到达数据总线822之前(在周期t4或t9之前),CPU820不能进行随后的处理。亦就是说,CPU820在由外存储器读数据的操作完成之前被置于执行随后指令之前的等待状态。在进行也需要相对长处理时间的数学运算的情况下,CPU820直到完成该数学运算之前也被置于执行随后的指令前的等待状态。
在这样的一普通信息处理设备中,CPU因例如由外存读取数据操作或数学运算(此二者均需要较长时间期限),而被置于执行随后指令的等待状态。因此需要将由这种等待时间所引起的代价(例如处理效理的降低)减少到最小。
为缩短对外存的表观访问时间,例如已有建议在微型计算机或微处理机中安设用于缓存已经由外存读得的数的高速缓冲存储器(cache memory)或者为由外存预先检取数据的预取缓存器(prefetch buffer)。
但在微型计算机或微处理机中装置高速缓存或预取缓存虽能降低这种负担但都大大地增加硬件的体积。而且对高速缓存的访问时间和复杂的控制所需的时间降低运行频率。
按照本发明的一个方面,一信息处理设备包含有一用于存放多个指令的指令存储装置和一由此指令存储装置取指令以便执行该指令的中央处理单元。中央处理单元执行一种为进行至少需要二个中央处理单元的机器周期的操作的处理,是依靠分开地执行为设定操作所需的第一数据的第一指令和为取由操作所得到的第二数据的第二指令。机器指令是由中央处理单元执行指令的时间单元。中央处理单元在执行第一指令之后和执行第二指令之前至少要执行一第三指令,此第三指令无需第二数据。
在本发明的一实施例中,此信息处理设备还包含一存储器装置。操作包含一读取存放在此存储装置中的信息的操作,第一数据是欲读取的该存储器装置中的信息的读地址,而此读地址由第一指令设置在一规定的存储器区中。
在本发明一实施例中,第一指令包含一为根据设置在此存储器区中的读地址起动读操作的命令。
在本发明的一实施例中,操作包含一数学运算,第一数据为此数学运算的操作数数据,而此操作数数据由第一指令设置在规定的存储器区中。
在本发明一实施例中,第一指令包含一根据设置在此存储器区中的操作数数据起动数学运算。
在本发明的一实施例中,此信息处理设备还包含用于保持数据的第一和第二寄存器以及为控制第一和第二寄存器的控制电路。此控制电路根据第一指令将第一数据写入第一寄存器。根据被写在第一寄存器中的第一数据进行操作,将由操作所得到的第二数据写入第二寄存器,和根据第二指令将保存在第二寄存器中的第二数据传输到中央处理单元。
在本发明一实施例中,此信息处理设备还包含一存储器装置。控制电路控制对此存储器装置的访问,操作包含读取存放在存储器装置中信息的操作,第一数据是欲读取信息的存储器装置的读地址,和第二数据为由存储器装置中读得的信息。
在本发明一实施例中,第一指令包含一根据设置在第一寄存器中的读地址起动读操作的命令。
在本发明一实施例中,中央处理单元由指令存储装置中取第一指令,和输出欲读取的存储器装置中的读地址,在地址输出后,执行至少一个无需由存储器装置读得的信息的第三指令,和在此至少一个第三指令被执行后,由指令存储装置中取第二指令以执行此第二指令。第一寄存器对控制电路的控制下接收并保存由中央处理单元输出的读地址。存储器装置在控制电路的控制下接收保存在第一寄存器中的读地址并根据所接收的读地址输出信息同时该至少一个第三指令也被执行。第二寄存器在控制电路的控制下接收并保存由存储器装置输出的信息。控制电路以由中央处理单元执行的第二指令传送保存在第二寄存器中的信息。
在本发明一实施例中,此信息处理设备还包含一用于对由中央处理单元输出的地址的至少一部分进行译码的译码器。第一地址区被指定用于第一寄存器和第二地址区被指定用于第二寄存器,第一指令为一将读地址写入第一地址区的写指令,和第二指令为读取保存在第二地址区中的信息的读指令。中央处理单元根据第一指令输出,欲将此读地址写入的地址,并根据第二指令输出保存欲读取的信息的地址。控制电路在执行第一指令中检测由地址译码器译码的地址等于第一地址区中的地址,并由此确认对第一寄存器的写操作。控制电路在执行第二指令中检测由地址译码器译码的地址等于第二地址区中的地址,并由此确认由第一寄存器的读操作。
在本发明的一实施例中,操作包含数学运算,第一数据为用于数学运算的操作数数据,第二数据为经数学运算处理操作数数据得到的数学运算结果数据。
在本发明一实施例中,第一指令包含一为根据设置在第一寄存器中的操作数数据起动数学运算的命令。
在本发明一实施例中,在控制电路在对第二寄存器的写操作完成之前,检测到第二指令的执行的情况下,控制电路即请求中央处理单元暂停此第二指令的执行;而当写操作完成时,控制电路即释放此暂停并将写在第二寄存器中的第二数据传送给中央处理单元。
在本发明一实施例中,中央处理单元执行由操作特性所确定的规定数据的第三指令,由此而防止在将第二数据写入第二寄存器的操作完成之前第二指令的执行。
在本发明一实施例中,此信息处理设备还包含有一状态寄存器。控制电路将此状态寄存器设置为第一状态为将第一数据写入第一寄存器,而将此状态寄存器设置到第二状态为将第二数据写入第二寄存器。中央处理单元执行一为确认第二指令执行之前状态寄存器为第二状态的指令。
在本发明一实施例中,在控制电路在对第二寄存器的写操作完成之前检测到第二指令的执行的情况下,控制电路请求中央处理单元进行一子例行程序。
在本发明一实施例中,此子例行程序为一中断程序,而第二指令在此中断程序中重新执行。
按照本发明的另一个方面,设置有一调度装置,用来将一包含多个指令的以或者一种高级语言或者汇编语言编写的第一程序翻译成以机器语言描述的第二程序,和用来在将第一程序翻译成第二程序期间安排多个指令的顺序。此调度装置包含一第一检测器,以确定为完成由多个指定中每一个所进行的处理所需的处理时间,和检测作为一长时间处理的需要至少二机器周期的处理。机器周期为运行程序由中央处理单元执行一指令的时间单元。此调度装置还包括有一第二检测器,用来检测程序是否包含至少一个能不依赖于由此长时间处理所得处理结果而由中央处理单元执行的连续的指令,和一顺序安排装置,用来根据第一检测器和第二检测器的检测结果安排多个指令的顺序。在第一检测器检测到一长时间处理和第二检测器检测到该至少一连续指令的情况下,此顺序安排装置将此长时间处理分割成为一设定此长时间处理中进行的操作所需第一数据的第一指令和一为取根据操作所得到的第二数据的第二指令,和在第一指令之后第二指令之前插入至少一个由第二检测器作为一第三指令检测得的指令。
按照本发明的又一个方面,提出一种利用一为存放多个指令的指令存储装置和一为由指令存储装置取指令以便执行指令的中央处理单元的信息处理方法。例如进行一需要至少二个机器周期的处理。此机器周期为由中央处理单元执行指令的时间单元。此处理包含基于第一数据的操作,而由此操作得到第二数据。此方法包括有步骤:执行第一指令以设置操作所需的第一数据;在执行第一指令后执行至少一第三指令,此第三指令无需第二数据;和执行第二指令以取由操作所得到的第二数据。
按照本发明的再一个方面,提出一种利用一为存放多个指令的指令存储装置、一为由指令存储装置取指令以便执行指令的中央处理单元,和为保存数据的第一和第二寄存器。例如进行一需要至少二机器周期的处理。此机器周期为由中央处理单元执行一指令的时间单元。此处理包含基于第一数据的操作,和由此操作得到第二数据。此方法包括步骤:执行第一指令以设定操作所需的第一数据;根据第一指令将第一数据写入第一寄存器;在执行第一指令后执行至少一第三指令,此第三指令无需第二数据;根据写在第一寄存器中的第一数据进行操作同时执行该至少一第三指令,并将由操作得到的第二数据写入第二寄存器;执行第二指令以取由操作得到的第二数据;和根据第二指令传送保存在第二寄存器中的第二数据。
在本发明一实施例中,此信息处理方法还包含有步骤:在发生将第二数据写入第二寄存器的操作完成之前取第二指令的情况下,请求中央处理单元暂停执行第二指令;和在将第二数据写入第二寄存器的操作完成时,释放此暂停并将写在第二寄存器中的第二数据传送到中央处理单元。
在本发明一实施例中,执行此至少一第三指令的步骤包含执行由操作特性决定的多个第三指令的步骤,以此来防止在将第二数据写入第二寄存器的操作完成之前执行第二指令。
这样,这里所说明的发明就可能取得下列优点:(1)提供一种信息处理设备和方法,仅仅依靠硬件大小上的稍许增加而能缓解为进行象由外存读取数据操作这样的需要相对长时间期限的操作的处理速度与为执行CPU中的指令的处理速度之间的差异;(2)提供一种信息处理设备和方法,由缓解上述的差异来降低CPU的等待时间;和(3)提供一种可用于此信息处理设备的调度装置,以安排为缓解上述速度差异的指令的顺序。
由下面参照附图所作的详细说明本技术领域的熟悉人士将会更清楚地理解本发明的这些和其他优点。
对所列附图的简单说明:
图1为原理性表明按照本发明一示例的信息处理设备的方框图;
图2为原理性表明图1中所示信息处理设备在被用于由外存读数据操作时的典型结构的方框图;
图3A和3B为图2中所示信息处理设备运行一示范程序的操作定时图;
图4A和图4B为图2中所示信息处理设备运行另一示范程序的操作定时图;
图5为原理性表明图1所示信息处理设备在用于由外存读取数据处理时的另一典型结构的方框图;
图6为原理性表明图1所示信息处理设备在用于一数学运算时的典型结构的方框图;
图7原理性表明按照本发明的调度装置;
图8为说明按照本发明的调度装置的操作的流程图;
图9为原理性表明一通常的信息处理设备的结构的方框图;和
图10A和10B为图9中所示的通常的信息处理设备的操作定时图。
下面参照附图以说明性示例来描述本发明。
图1为原理上表明按照本发明的一信息处理设备100的基本结构的方框图。如图1中所示,信息处理设备100包含一为存放多个指令的指令存储部分(例如一ROM)10,和一为由ROM10取指令并执行此指令的中央处理单元(以后称之为“CPU”)。在当一欲进行的处理是一种为由根据第一数据进行操作来得到第二数据而且还需要至少二个CPU20的机器周期的操作时,CPU20以被分成为二个指令的状态进行这样的处理,亦即分成一第一指令和一第二指令。由第一指令来设置操作所需的第一数据;而由第二指令来取经操作所得到的第二数据。在执行第一指令之后和开始执行第二指令之前,执行至少一个无需第二数据的第三指令。在此说明书中,1机器周期为由CPU20执行一指令的时间单元。在此说明书中还将一需要至少二机器周期的处理称之为“长时间处理”。
无需由操作所得到的第二数据的第三指令可以在为得到第二数据的操作完成之前被执行。因而,长时间处理与此第三指令可并行执行。这样就能有效地利用在第一指令执行之后CPU20执行第二指令前的等待时间。藉助这样的系统,能缓解长时间处理所需时间期限与一CPU20机器周期之间的差异。从而,信息处理设备100的等待时间在整体上即能实际地降低。
被划分为第一和第二指令的长时间处理由硬件,例如以如下方式进行。如图1中所示,信息处理设备100包含二个均用于保存数据的第一寄存器40和第二寄存器50,和一为控制第一和第二寄存器40和50的控制电路30。如可由图1理解的,控制电路30根据由CPU20执行的第一指令将第一数据31写入第一寄存器40。然后控制电路30根据被写在第一寄存器40中的第一数据31利用一处理部件60进行操作,并将由此操作得到的第二数据32写到第二寄存器50。控制电路30还根据由CPU20执行的第二指令将保存在第二寄存器50中的第二数据32传送给CPU20。处理部件60、第一寄存器40和第二寄存器50的操作由控制电路30所输出的规定的控制信号加以控制。
处理部件60例如是一象外存那样的存储器装置或者一为进行数学运算的数学运算装置。在下面的例子中,将对一由外存读数据的处理和一利用数学运算装置进行数学运算的处理作为长时间处理的示例来加以说明。例一
图2为按照本发明第一示例的信息处理设备200的原理方框图。此信息处理设备200包含一处理器110和一外存150。在此第一例中,将作为一长时间处理的举例来说明读取存放在外存150中的信息的处理。此读处理中进行的读操作所需的第一数据为欲读取的信息、即数据在外存150中的地址(下面称之为“读地址”)。作为此读操作的结果所得的第二数据为由外存150所读得的信息。
如图2中所示,处理器110与外存150经由外地址总线151(151a和151a)和外数据总线152(152a和152b)相互连接。
处理器110包含一中央处理单元(下面称为“CPU”)120,一总线控制单元130,和一作为指令存储部分的ROM140。总线控制单元130包含一地址译码器3,一控制电路4,一存储器访问信号产生部分5,一地址接口部分6,和一数据接口部分7。总线控制单元130还包含一读缓冲地址寄存器8和一读缓冲数据寄存器9。CPU120与总线控制单元130经由一为发送地址的地址总线121和一为传输数据的数据总线122相互连接。程序和指令由ROM140通过指令总线141被送到CPU120。
如由图2中可看到的,由CPU120输出的地址通过地址总线121被提供给译码器3和地址接口部分6。数据总线122被连接到数据接口部分7。地址接口部分7通过数据总线152a连接到外数据总线152。由读缓冲地址寄存器8的输出通过用于该寄存器的地址总线112(下面简称为“地址总线112”)被提供给地址接口部分6。读缓冲地址寄存器8和读缓冲数据寄存器9通过用于这些寄存器的数据总线(下面简称为“数据总线111”)被连接到数据接口部分7。
CPU120输出读请求信号101至总线控制单元130请求一读操作,和输出写请求信号102至总线控制单元130请求一写操作。读请求信号101和数据信号102输入到总线控制单元130的控制电路4。译码地址103被通过地址总线121的一部分提供到地址译码器3。地址译码器3对译码地址进行译码并将结果作为一装置识别信号104输出至控制电路4。装置识别信号104指明访问目标,例如应是由CPU120访问的外存150,还是应由CPU120访问的处理器110中的哪一个装置。
控制电路4输出外部访问起始信号105、为控制地址接口部分6的地址控制信号106,为控制数据接口部分的数据控制信号107,为控制读缓冲地址寄存器8的地址写信号108,和为根据装置识别信号104、读请求信号101和写请求信号102控制读缓冲数据寄存器9的数据写信号109。控制电路4还响应CPU120发出的读请求信号101和写请求信号102输出应答信号113。存储器访问生成部分5根据由控制电路4提供的外部访问起始信号105输出为访问外存105的存储器访问信号115。外存150接收存储器访问信号115,而在访问操作完成时,外存150输出一外部应答信号116以通知处理器110该访问操作完成。外部应答信号116被提供给总线控制单元130的控制电路4。
具有上述结构的信息处理设备200例如以如下方式操作。将说明一存放在ROM140中的包含有仅由CPU120进行的指令和由CPU120与总线控制单元130协作执行的指令的程序示例。对于下述指令1至9中的每一个,由指令指定的操作在括号中的加以说明。例如,如今1至4和8指明一访问外存150和利用作为访问操作结果所得数据的处理。指令1至4和8由CPU120与总线控制单元130协作执行。指令5至7和9指明仅由CPU120进行的处理(例如,相加和相乘)。
存放在ROM140中的程序被编写成由“0”和“1”位流组成的“机器语言”。在此说明书中,程序以助记符表述加以说明以便指明各指令的涵义。为了清楚地与通常的信息处理设备800相比较,将给出为执行与对通常的信息处理设备800所说明相同的处理的指令。在下述指令中所用的数字、计算等仅仅是说明性的。其他的数字和计算也可以采用。
指令1:MOV @mem_loc1,D0
(由外存150的地址mem_Loc1读数据并存入CPU120的寄存器Do中。)
指令2:ADD #10,D0
(CPU120中寄存器D0的内容与10相加,和将结果再存入寄存器D0。)
指令3:MOV @mem_Loc2,D3
(值mem_Loc2被存放在CPU120的寄存器D3中。值mem_Loc2为下一个欲读取数据在外存150中的地址。)
指令4:MOV D3,@rb_addr
(CPU120中寄存器D3的内容被写入地址rb_addr。读缓冲地址寄存器8被分配为地址rb_addr。)
指令5:ADD #1,D1
(CPU120中寄存器D1的内容与1相加,将结果再存入寄存器D1。)
指令6:ADD #4,A0
(CPU120中寄存器A0的内容与4相加,将结果再存入寄存器A0。)
指令7:ADD #4,A1
(CPU120中寄存器A1的内容与4相加,将结果再存入寄存器A1。)
指令8:MOV @rb_data,D2
(将地址rb_data处的内容置入CPU120中的寄存器D2。读缓冲数据寄存器9被分派为地址rb_data。)
指令9:MUL DO,D2
(寄存器D2中的内容乘以寄存器D0中的内容,将结果再存入寄存器D2。)
如可由上述进行由外存150读数的处理的典型程序可理解的,在读出的数据要在一读操作请求之后立即加以应用的情况下,此读处理采用与通常的指令相同的读指令进行。例如,在由外存150读出的数据要在读操作后立即由指令2处理的情况下,读处理采用与通常的读指令(指令11)相同的指令1进行。
在一读操作请求之后和在所得到的数据被第一次应用之前能够执行多个连续的指令的情况下,读处理被分成为二个指令以便分开进行。此二指令是:一个为设置读缓冲地址寄存器8中的读地址的指令(指令4)和一个为取得存在读缓冲数据寄存器9中的数据的指令(指令8)。例如在当进行由外存150读数的操作时,无需应用由外存150读得的数据的指令5至7能如下述仅由CPU120执行。
首先,执行指令4,由CPU120输出外存150中的读地址。在控制电路4的控制下,由CPU120输出的读地址被设置在读缓冲地址寄存器8中。在执行指令4后(亦即,在输出读地址之后),CPU120执行无需由外存150读得的数据的指令(亦即指令5至7)。在指令5至7被执行期间,控制电路4利用保存在读缓冲地址寄存器8中的读地址由外存150读数据。例如,保存在读缓冲地址寄存器8中的读地址被控制电路4提供给外存150,而外存150即输出对应于所接收到读地址的数据。由外存150读取的数据在控制电路4的控制下被置入读缓冲数据寄存器9。在执行指令5至7之后,CPU120执行指令8以取保存在读缓冲数据寄存器9中的数据。例如,被保存在读缓冲数据寄存器9中的数据在控制电路4的控制下被传送到CPU120。
如上述,由外存150读数的处理由两个被分开的指令4和8进行,而指令5至7则被插在二指令4与8之间。这样的指令安排被称之为“指令的调度”。
下面将参照图3A和3B说明信息处理设备200为运行上述程序的操作。
图3A和3B为信息处理设备200的操作定时图。图3A和3B表明由CPU120执行的指令,地址总线121和数据总线122上的值,应答信息113的状态,保存在读缓冲地址寄存器8和读缓冲数据寄存器9中的值,外地址总线151和外数据总线152上的值,和一机器周期上的外部应答信号116的状态。应答信号113和外部应答信号116均为在低态时被确定的“低态有效”的信号。在此示例中,外存150的读数时间,亦即,由外存150接收到存储器访问信号115和输出到外地址总线151的地址起直到外存150输出数据到外数据总线152为止的时间期限,为4个机器周期。数据“data1”被预先存储在外存150的地址mem_loc1处,数据“data2”被预先存储在外存150的地址mem_loc2处。后面对信息处理设备200的操作的说明以沿时间轴的机器周期为基础。周期+1至+6被表示在图3A中,周期t7至t12被表示在图3B中。
(周期t1)
CPU120执行指令1。指令1为一对外存150寻址和读取存储在外存150中的数据的读指令。由CPU经由地址总线121输出欲读取数据的地址mem_Loc1到总线控制单元130。同时确定读请求信号101。在总线控制单元130中译码器4对通过地址总线121一部分提供一译码地址进行译码并识别欲加访问的装置。由执行指令1译码器4检测到欲加访问的装置为外存150而输出装置识别信号104以便通知控制电路4要访问的装置为外存150。
控制电路4根据来自CPU120的读请求信号101和来自译码器3的装置识别信号104指示总线控制单元130中的部件进行由外存150读数的操作。首先,控制电路4对存储器访问信号生成部分5确定外部访问起始信号105。存贮器访问生成部分5根据存储器访问信号115的确定输出存储器访问信号115至外存150。控制电路4输出地址控制信号106至地址接口部分6以通知外存150要按由CPU120输出到地址总线121的地址被加以访问。地址接口部分6输出由CPU120通过地址总线151a输出到外地址总线151的地址总线121上的值mem_Loc1。控制电路4还输出数据控制信号107至数据接口部分7以通知外存150当前正在由CPU120加以访问,和等待外存150发出外部应答信号116的确定。
(周期t2)
由于外部应答信号116未被确定,状态不定。地址总线121和外地址总线151上的值仍然为mem_Loc1。控制电路4仍然在等待外部应答信号116的确定。
(周期t3)
如在周期t2那样,因为外部应答信号116未加确定,状态维持不变。地址总线121和外部地址总线151上的值仍然为mem_Loc1。控制电路4仍然在等待外部应答信号116的确定。
(周期t4)
从外存接收到存储器访问信号115和来自外地址总线151的地址起经过4个机器周期。从而,对外存150的访问操作(即对应于读地址的数据的输出)完成,外存150确定外部应答信号116。根据此外部应答信号116的确定,控制电路4控制数据接口部分7以使得数据接口部分7将经由外数据总线152(152a和152b)从外存150读取的数据“data1”通过数据总线122发送到CPU120。同时,控制电路4确定应符号信号113以通知CPU120读操作完成。CPU120将由数据总线122取得的数据“data1”存入CPU120中的寄存器D0而完成指令1的执行。
(周期t5)
CPU120执行指令2。亦即,CPU120对CPU120中的寄存器D0的内容(data1)加10并将结果(data+10)再存入寄存器D0。这样即完成了指令2的执行。
(周期t6)
CPU120执行指令3。亦即CPU120将值mem_Loc2存进CPU120中的寄存器D3。这样即完成指令3的执行。
(周期t7)
CPU120执行指令4。指令4至9指明由CPU120利用读缓冲地址寄存器8和读缓冲数据寄存器9进行的从外存150读取数据的处理。由执行指令4,CPU120将外存150中的写地址mem_Loc2作为读地址写入总线控制单元130中的读缓冲地址寄存器8。这时,CPU120通过地址总线121将指派用于读缓冲地址寄存器8的地址rb_addr输出到总线控制单元130并同时确定写应答信号102。
地址译码器3对译码地址103进行译码,而在确认经译码的地址等于被指派给读缓冲地址寄存器8的地址后,地址译码器3以装置识别信号104通知控制电路4确认结果。控制电路4被装置识别信号104通知应访问读缓冲地寄存器8的地址。根据写请求信号102和装置识别信号104,控制电路4输出数据控制信号107给数据接口部分7以通知应将数据(亦即对外存150的读地址)写入总线控制单元130中的读缓冲地址寄存器8。同时,控制电路4对读缓冲地址寄存器8确立地址写信号108。在控制电路4的控制下,来自CPU120的数据mem_loc2通过数据接口部分7输出到数据总线111,且数据mem_loc2被写进读缓冲地址寄存器8。当完成写操作时,控制电路4确立应答信号113以通知CPU120写操作的完成。从而CPU120即完成指定4的执行,并在下一周期开始随后的处理。
在总线控制单元130中,当写入读缓冲地址寄存器8的操作开始时,同时利用读缓冲地址寄存器8的内容(即mem_loc2)作为读地址开始由外存150读数的操作。详细说明此操作如下:控制电路4对存储器访问信号生成部分5确立外部访问起始信号105。根据此外部访问起始信号105的确立,存储器访问信号生成部分5输出存储器访问信号115到外存150。控制电路4还输出地址控制信号106通知地址接口部分6要利用存放在读缓冲地址寄存器8的地址访问外存150。在控制电路4的控制下,存放在读缓冲地址寄存器8中的地址mem_loc2被通过地址总线112提供给地址接口部分6,然后通过地址总线151a输出到外地址总线151。控制电路4输出数据控制信号107以通知数据接口部分7当前是外存150正被为由读缓冲地址寄存器8的读操作加以访问。然后,控制电路4等待来自外存150的外部应答信号116的确定。
(周期t8)
由于外部应答信号116未被确定,总线控制单元130的状态维持不变。地址总线121和外地址总线151上的值仍然为mem_loc2。控制电路4仍在等待外部应答信号116的确立。
CPU120执行指令5。即,CPU120将CPU120中寄存器D1的内容加1和将其结果又存入寄存器D1中。从而完成指令5的执行。
(周期t9)
如周期t8,由于外部应答信号116未被确定,总线控制单元130的状态维持不变。地址总线121和外地址总线151上的值仍然为mem_loc2。控制电路4仍在等待外部应答信号116的确立。
CPU120执行指令6。亦即,CPU120将CPU120中寄存器AO的内容加4并将结果再存入寄存器AO。从而完成指令6的执行。
(周期t10)
自从外存150接收到存储器访问信号115和来自外地址总线151的地址后已过去4个机器周期。因而对外存150的访问操作(亦即,对应于读地址的数据的输出)完成,外存150确定外部应答信号116。
在总线控制单元130中,在已接收到被确立的外部应答信号116的控制电路4的控制下,接收接口部分7将通过外数据总线152(152a和152b)由外存150读取的数据“data2”输出到数据总线111。同时,控制电路4对读缓冲数据寄存器9确立数据写信号109。这样,数据“data2”即被写进读缓冲数据寄存器9。在此周期之后,可在任何时由读缓冲数据寄存器9读取数据。
在总线控制单元130中正进行上述操作期间,CPU120执行指令7。亦即,CPU120将CPU120中寄存器A1的内容加4并将结果再存入寄存器A1。从而完成指令7的执行。
(周期11)
CPU120执行指令8。由指令8的执行,CPU120读取存放在总线控制单元130中读缓冲数据寄存器9中的数据“data2”。此时CPU120经由地址总线121将指派给读缓冲数据寄存器9的地址rb_data输出到总线控制单元130,和确立读请求信号101。
地址译码器3对由一部分地址总线121提供的译码地址103进行译码,而在确认被译码的地址等于被指派给读缓冲数据寄存器9的地址后,地址译码器3以装置识别信号104通知控制电路4确认结果。根据来自CPU120的读请求信号101和来自地址译码器3的装置识别信号104,控制电路4输出数据控制信号107至数据接口部分7以通知要从数据控制单元130中的读缓冲数据寄存器9读取数据。数据接口部分7通过数据总线111读取存放在读缓冲数据寄存器9中的数据“data2”并经由数据总线122将此数据“data2”发送到CPU120。控制电路4确定应答信号113以通知CPU120读操作完成。CPU120将由数据总线122取得的数据“data2”存入CPU120中的寄存器D2。然而完成指令8的执行。
(周期t12)
CPU120执行指令9。亦即,CPU120将CPU120中寄存器D2的内容(data2)乘以寄存器D0中的内容(data1+10)和将结果(data2×(data1+10)再存进寄存器D2。从而完成指令9的执行。
如上述,借助按照此第一例的信息处理设备,长时间处理(例如,由外存150读数据的处理)以执行二分开的指令来进行,亦即第一指令设定此读操作中所需的外存150中的地址(即指令4)和第二指令取由外存150中读得的数据(即指令8)。在执行第一指令之后和开始执行第二指令之前,执行至少一个无需由读操作得到的数据的第三指令(例如指令5至7)。此无需由读操作得到的数据的第三指令与读操作并行执行即在读操作完成之前执行。这样,在第一指令执行后直到执行第二指令的CPU120的等待时间就能加以有效地利用。依靠这样的系统,长时间处理所需的时间期限于CPU120的机器周期之间的差异就能得到缓解。信息处理设备200的等待时间在整体上就能降低。例2
在按照本发明的第二示例中,将描述此信息处理设备200为运行与第一示例中程序不同的程序的操作。信息处理设备200具有与图2中所示第一示例中同样的结构。在此第二例中所说明的示范程序中,仅有一指令(指令5)能被插入为设置读缓冲地址寄存器8中地址的指令4与为取存放在读缓冲数据寄存器9中的数据的指令8之间,这与第一例中的三个指令(指令5至7)不同。此程序中的指令如下:指令1:Mov @mem_loc1,D0指令2:ADD #10,D0指令3:Mov #mem_loc2,D3指令4:Mov D3,@rb_addr指令5:ADD #1,D1指令8:Mov @rb_data,D2指令9:MUL D0,D2
此第二例中所说明的程序除没有指令6和7外均与第一例中程序相同。此程度涉及到一个CPU120在将由外存150读得的数据写入读缓冲数据寄存器9的操作完成之前开始执行为由读缓冲数据寄存器9读数据的读指令(指令8)的问题。
下面参照图4A和4B说明信息处理设备200运行上述程序的操作。图4A和4B为信息处理设备200的操作定时图。周期t1至t6表示在图4A中,周期t7至t11表示在图4B中,外存150的读数时间为4个机器周期。外存150中存储的数据内容与第一示例中的相同。下面对信息处理设备200的操作的说明将以沿时间轴的机器周期为基础。
(周期t1至t7)
周期t1至t7中的操作与第一例中的相同,其说明省略。
(周期t8)
由于在周期t7中执行指令5后外部应答信号116未被确立,总线控制单元130的状态维持不变。地址总线121和外地址总线151上的值仍为mem_loc2。控制电路4仍在等待外部应答信号116的确立。
CPU120执行指令5。亦即,CPU120将CPU120中的寄存器D1的内容加1,并将结果再存入寄存器D1。从而完成指令5的执行。
(周期t9)
CPU120执行指令8。由指令8的执行,CPU120通过地址总线121将分派给读缓冲数据寄存器9的地址数据rd_data输出到总线控制单元130并确立读请求信号101。地址译码器3对由一部分地址总线121提供的译码地址103进行译码,而在确认所译码的地址等于分派给读缓冲数据寄存器9的地址后,地址译码器3以装置识别信号104通知控制电路4该确认结果。根据来自CPU120的读请求信号101和来自地址译码器3的装置识别信号104,控制电路4输出数据控制信号107至数据接口部分7通告要从总线控制单元130中的寄存器读取数据。但是,在周期t9中数据“data2”尚未被写在读缓冲数据寄存器9中。因而,控制电路4不进行由读缓冲数据寄存器9读数的操作,而是等待指明对外存150的访问操作完成的外部应答信号116的确立;而不确立应答信号113。同样地,CPU120等待应答信号113的确立而不进行任何操作。
(周期t10)
从外存150接收存储器访问信号115和来自外地址总线151的地址起已过去4个机器周期。因而,对外存150访问操作(即输出对应于读地址的数据)完成,外存150确立外部应答信号116。
数据控制单元130中的数据接口部分7通过外数据总线152(152a和152b)将由外存150读得的数据“data2”输出到数据总线111。控制电路4对读缓冲数据寄存器9确立数据写信号109。从而数据“data2”即被写入读缓冲数据寄存器9。同时,控制电路4确立应答信号113以通知CPU120已完成由外存150至读缓冲数据寄存器9的读操作。数据接口部分7还通过数据总线111读取存放在读缓冲数据寄存器9的数据“data2”,并通过数据总线122将数据“data2”送到CPU120。CPU120将数据“data2”存入CPU120的寄存器D2中。从而完成指令8的执行。
(周期t11)
CPU120执行指令9。亦即,CPU120将CPU120中的寄存器D2的内容(data2)乘以寄存器D0的内容(data1+10)并将结果(data2×(data1+10))再存入寄存器D2。从而完成指令9的执行。
如上述,按第一示例中的操作定时(图3A和3B),当控制电路4检测到为由读缓冲数据寄存器9读取数据的读指令(指令8的执行)时,由外存读得的数据已经被写入读缓冲数据寄存器9中。在这种情况下控制电路4立即确立应答信号113,和CPU120执行读指令。
相反,按第二示例的操作定时(图4A和4B)当控制电路4检测到为由读缓冲数据寄存器9读取数据的读指令(指令8的执行)时,由外存150读得的数据还未被写入读缓冲数据寄存器9中。在这种情况下,控制电路4暂停应答信号113的确立来请求CPU120中止执行读指令,并等待直到由外存150读取的数据被写入读缓冲数据寄存器9。在所需数据被写入读缓冲数据寄存器9时,控制电路4确立应答信号113以解除CPU120的中止状态并将数据传送到CPU120。
如上述,按照本发明第一例和第二例的信息处理设备200以执行二分开的指令来进行读数处理,亦即,利用指令调度使第一指令设置读缓冲地址寄存器8中的读地址,和第二指令取存放在此读缓冲寄存器8中设置对外存150的读地址,总线控制单元130可根据存放在读缓冲地址寄存器8中的地址由外存150读取数据,而不取决于CPU120。因而CPU120可在第一指令和第二指令之间执行其他指令。从而,CPU120就不必如通常的信息处理设备那样在为访问外存150的长等待期间进行等待。由于这样的系统,即可改善信息处理设备200的运行性能。
由设置读缓冲地址寄存器8和读缓冲数据寄存器9以及将通常的控制电路作稍许修改成为控制电路4就可执行经过调度的指令。因而,这种对信号处理设备200的性能改善就能借助与安装高速缓冲存储器或预取缓存器相比尺寸要小得多的硬件来实现。
按照此第二例,如上所述,为了防止在由外存150读得的数据被写入读缓冲数据寄存器9之前开始执行由读缓冲数据寄存器9读取数据的指令,CPU120在外部应答信号116被确立之前不允许进行随后的操作。亦就是说,控制电路4以暂停应答信号113的确立来要求CPU20等待。在完成了写入读缓冲数据寄存器9的操作时,控制电路4解除CPU20的中止状态并将数据传送到CPU120。
另外,为防止在写操作完成之前开始执行读指令,此信息处理设备200可按如下方式操作。
在编写程序时,计算为访问外存150所需的CPU120的机器周期数。对指令进行调度以使得适当数量的无需外存150的数据的指令例如NOP指令(使程序无任何另外操作地进入到下一指令)被插入在第一指令(设置读缓冲地址寄存器8中的读地址,第二例中的指令4)和第二指令(取存放在读缓冲数据寄存器9中的数据,第二例中的指令8)。按这样的设置,CPU120只有在完成由外存150至读缓冲数据寄存器9的写操作之后才开始执行由读缓冲数据寄存器9读数的指令(指令8)。例3
图5为按照本发明第三示例信息处理设备300的原理方框图。信息处理设备300具有与按照第一和第二示例的信息处理设备200基本相同的结构。与前面针对图2所讨论的同等部件被加以相同标号而其说明将省略。以下说明与信息处理设备200的不同点。
如图5所示,信息处理设备300包含一总线控制单元160。此总线控制单元160包括一地址译码器3,一控制单元41,存储器访问信号生成部分5,地址接口部分6,数据接口部分7,读缓冲地址寄存器8和读缓冲数据寄存器9。此总线控制单元160还包含一读缓冲状态寄存器10用于指明对读缓冲数据寄存器9的写操作完成。
如图5中所示,读缓冲状态寄存器10如读缓冲地址寄存器8和读缓冲数据寄存器9那样通过数据总线111连接到数据接口部分7。由控制电路41输出用于控制读缓冲地址寄存器8的地址写信号108也被提供给读缓冲状态寄存器10。同样,为控制读缓冲数据寄存器9的数据写信号109也被提供给读缓冲状态寄存器10。
在一读地址被设定在读缓冲地址寄存器8中时(亦即在对读缓冲地址寄存器8的地址写信号108被确立时),读缓冲状态寄存器10即被置于第一状态(例如复位状态)。当外存150的数据被写入读缓冲数据寄存器9时(亦即当对读缓冲数据寄存器9的数据写信号109被确立时),读缓冲状态寄存器10被置于一第二状态(例如置位状态)。
程序被编置成为在读出读缓冲数据寄存器9的内容之前检查读缓冲状态寄存器10,而在确认读缓冲状态寄存器10为第二状态之后,读取读缓冲数据寄存器9的内容。依靠这样的设定,CPU120就能在由外存150至读缓冲数据寄存器9的写操作完成后开始执行由读缓冲数据寄存器9读取数据的读指令。
按照此第三例,如下述,控制电路41的结构可以比第一和第二示例中的控制电路简单。在由外存150读数的操作以分开地执行二指令来进行的情况下,当检测到为由读缓冲数据寄存9读取数据的读指令时第一和第二例的控制电路4必须根据来自外存储器150的外部应答信号116的确立来对CPU20确立应答信号113。换言之,控制电路4必须在响应由外存150读数的指令的同时响应由读缓冲数据寄存器9读数的指令来确认外部应答信号116的确立。
相反,在此第三例中,读缓冲数据寄存器9的状态是依靠读缓冲状态寄存器10的状态确认的。因而除非写入读缓冲数据寄存器9的操作完成CPU120将不执行为由读缓冲数据寄存器9读取数据的读指令。因此,控制电路41在由来自外存150的外部应答信号116确认完成之后不必再通知CPU20关于这一写入读缓冲数据寄存器9的操作完成的情况(亦即,控制电路41无需确立应答信号113)。从而简化控制电路41的电路结构。
另外,为防止CPU120在写入读缓冲数据寄存器9的操作完成之前执行读指令,还可采用下面的结构。
信息处理设备为地构成,当总线控制单元130中的控制电路4在写入读缓冲数据寄存器9的操作完成之前检测到由CPU120开始执行对读缓冲数据寄存器9的读指令时,即由控制电路4向CPU120发出中断请求。此信息处理设备可被编程为依靠例如插入适当数量的无需外存150中的数据的指令(第三指令)或者在中断子程序期间如上述那样检查状态寄存器的内容,而能正确地由读缓冲数据寄存器9提取所需数据。在此中断子程序中可再次执行由读缓冲数据寄存器9读取数据的读指令。
在第一至第三示例中,依靠由外存150发送外部应答信号116至总线控制单元130(或160)和再由总线控制单元130发送应答信号113至CPU120来将读操作或写操作的完成通知CPU120。(这样一种系统被称之为“交换处理(handshake)系统”)。在第一可行系统中,可以免除外部应答信号116的馈送或应答信号113的馈送。在这种情况下,设置一用来对访问外存150所需周期进行计数的计数器,以便使操作在规定的时间期限后进行。(这样一种系统被称之为“固定的等待系统”)。
在第一至第三示例中,为在读缓冲地址寄存器8中设置地址的指令的执行也开始对外存150的访问。较详细地说,当由CPU120输出的地址为指派给读缓冲地址寄存器8的地址时(欲被写入此指派给读缓冲地址寄存器8的地址的对象数据为外存150中的读地址),控制电路4(或41)将此外存150中的读地址作为数据写入读缓冲地址寄存器8,同时根据此被写入读缓冲地址寄存器8的读地址访问外存150。
另外,可以分开地提供为读缓冲地址寄存器8中设置读地址的指令和为开始访问外存150的指令。在这一情况下,可以减少由外存150中同一地址重复读取数据的程序的大小。例4
在第一至第三示例中,描述了进行以由外存150读取数据作为一长时间处理的举例的处理的信息处理设备200和300。此处理由分开执行二指令来进行,亦即,第一指令为在读缓冲地址寄存器8中设置一读地址,而第二指令为取存放在读缓冲数据寄存器9的数据。在第四例中,对一利用数字运算装置进行数据运算的处理作为一长期处理加以说明。用于一数学运算的处理为一需要相当长时间期限的诸如乘、除、加或减运算的数据处理。按照此第四例,对一数学运算的处理以执行二分开的指令来进行,亦即,一指令为设定操作数数据和开始数学运算,一指令取数学运算结果。
图6为按照本发明第四例的信息处理设备400的原理方框图。如图6中所示,信息处理设备400包括有一处理器110′和外存150。处理器110′包含一CPU120′,总线控制单元170,ROM140和数学运算单元180。总线控制单元170包含一地址译码器3,控制电路42,存储器访问生成信号部分5,地址接口部分6,数据接口部分7,操作数寄存器21,和运算结果寄存器22,CPU120′与总线控制单元170通过发送地址的地址总线121和传送数据的数据总线122相互连接。CPU120′与数学运算单元180通过为在数学运算所需操作数数据的CPU操作数总线201和为传输数学运算结果的运算数据总线202相互连接。总线控制单元170中的运算寄存器21通过对该寄存器的操作数总线301(下面简单称之为操作数总线301)连接到数学运算单元180,运算结果寄存器22通过对该寄存器的运算数据总线302(下面简单称之为操作数数据总线302)连接到数学运算单元180。由ROM140通过指令总线141将程序和指令发达到CPU120′。
总线控制单元170的结构基本上与第一和第二例中信息处理设备200的总线控制单元130相同,除总线控制单元170包括有操作数寄存器21和运算结果寄存器8用以替代读缓冲地址寄存器8和读缓冲数据寄存器9。控制电路42输入数学运算请求信号204至数学运算单元180并由数学运算单元180接收数学运算完成信号205。除这一点外,控制电路42具有与信息处理设备200中的控制电路4同样的结构。
如图6中所示,数学运算单元180包含一数学运算装置23,数学运算控制电路24和一选择器25。来自CPU120′的操作数数据通过操作数总线201输入到选择器25,来自总线控制单元170中操作数寄存器21的操作数数据通过操作数总线301输入到选择器25。由数学运算装置23得到的数学运算结果通过运算数据总线202被提供给CPU120′,还通过运算数据总线302被提供给总线控制单元170中的运算结果寄存器22。图6中,操作数总线201、206和301均载有用于数学运算的二部分操作数数据。例如,在数学运算为乘法A×B时,各总线的高位比特承载数据A而各总线的低位比特承载数据B。
数学运算控制电路24根据由CPU120′供给的第一数学运算请求信号203和由总线控制单元170中控制电路42供给的第二数学运算请求信号204输出一操作数选择信号207至选择器25。由数学运算控制电路24输出的数学运算完成信号205被送到CPU120′和控制电路42。
关于其他各点,信息处理设备400具有与信息处理设备200相同的结构,如可由图6看到的。
下面说明信息处理设备400的操作。
为进行一通常的数学运算指令,信息处理设备400例如以下述方式操作。CPU120′确立第一数学运算请求信号203,从而在数学运算单元180中开始应用通过操作数总线201提供的操作数数据的数学运算。数学运算控制电路2 4根据第一数学运算请求信号203输出操作数选择信号207至选择器25。选择器25选择来自CPU120′的操作数数据并将所选择的操作数数据输入到数学运算装置32。当数学运算完成时,数学运算控制电路24确立数学运算完成信号205,并通过运算数据总线202将数学运算结果送给CPU120′。
为以执行一分开的指令进行数学运算的长时间处理,信息处理设备400例如以如下方式操作。CPU120′首先执行一第一指令将操作数数据写入操作数寄存器21。当将操作数数据写入操作数寄存器21的操作完成时,控制电路42对数学运算单元180确立第二数学运算请求信号204。第三数学运算请求信号204被输出给数学运算控制电路24,而对应的操作数选择信号207被输出到选择器25。选择器25按照操作数选择信号207选择由操作数寄存器21经由操作数总线301提供的操作数数据,并将被选择的操作数数据输入到数学运算装置23。在数学运算完成时,数学运算控制电路24确立数学运算完成信号205。根据在数学运算完成信号205,控制电路42将输出到运算结果总线302的数学运算结果数据写入运算结果寄存器22。这时,由于CPU120′不执行数学运算指令(亦即,第一数学运算请求信号203未被确立),数学运算完成信号203′即被忽视。
在当在数学运算单元180中进行数学运算和数学运算结果被写入运算结果寄存器22期间,CPU120′可以执行多个无需数学运算结果数据的指令(第三指令)。在执行第三指令之后,CPU120′读取存放在运算结果寄存器22中的数学运算结果而由此获得数学运算结果。
在此第四例中,如在由外存150读取数据那样,利用一依靠确立应答信号113来将数学运算的完成通知CPU120′的系统,可以中止由运算结果寄存器数据的读操作,亦即可将CPU120′置于一等待状态。或者,借助于预其计算数学运算所需的机器周期数来调度指令,使得能在为写操作数数据的指令与为读数学运算结果数据的指令之间插入所需数量的第三指令(例如NOP指令)。
在上述的例子中,设置有一组读数缓存器(读缓冲地址寄存器8和读缓冲数据寄存器9)或一组数学运算缓存器(操作数寄存器21和运算结果寄存器22)。代之以也可以设置多组这样的读数缓存器或数学运算缓存器。在这种情况下,例如在信息处理设备200或300中,CPU120与总线控制单元130无关地依次在多组读缓冲地址寄存器设置外存150中的读地址。在总线控制单元130中,控制电路4(或41)依次由多组读缓冲地址寄存器取地址,并依次将由外存150读取的数据存入对应的读缓冲地址寄存器。在信息处理设备400中,操作数寄存器21和运算结果寄存器22可以象由外存150读数操作的情况那样,由读指令和写指令(读请求信号或写请求信号)进行操作。因而,依靠设置一机构来确定是为由外存读数据处理进行将数据写入操作数寄存器21、还是为一进行数学运算的处理,也就有可能将操作数寄存器21和运算结果寄存器22用作为用于由外存150读取数据的处理的读缓冲地址寄存器和读缓冲数据寄存器。例5
在一第五示例中,说明用于调度第一至第四示例中说明的指令的装置。
调度指令是在当例如由一包含多个指令以高级(符号)语言或汇编语言编写的程序翻译成一机器语言时进行的,并以安排指令的顺序来实现。
图7原理性表明按照本发明第五例的调度装置70的操作。如图7中所示,调度装置70将以高级语言或汇编语言描述的程序71翻译成机器语言的程序72。在翻译期间,指令顺序被作如下述编排。
图8为说明调度装置70的操作流程图。如图8所示,调度装置70首先估价完成由各指令进行的处理所需的处理时间和确定处理是否是一长时间处理(步骤S701)。长时间处理是指一与为由CPU20执行一指令的一机器周期相比较需要相对长时间期限的处理。例如说,长时间处理需要至少二个机器周期。如果处理被确定不是一长时间处理,即不进行指令调度,并将处理翻译成机器语言的指令(步骤S705)。
如果处理被确定为一长时间处理,就确定后续的指令是否包含一个或多个可由CPU执行而不取决于该长时间处理的处理结果的指令(步骤S702)。如果在步骤S702中未发现这样适合的指令,就将此长时间处理翻译成机器语言指令(步骤S705)。
如果在步骤S702发现有一或多个适合的指令,就将此长时间处理划分成为二个指令,即一第一指令用于设置此长时间处理中进行的操作所需的第一数据,和一第二指令用于取由执行第一指令所得到的第二数据(步骤S703)。然后将步骤S702中发现的至少一个适合的指令作为第三指令插入在第一指令执行之后和开始执行第二指令之前(步骤S704)。
如上述,按照本发明,一个长时间处理例如由外存读取数据的处理或为作数学运算的处理以执行二个分开的指令来进行,和至少一个无需由执行第一指令所得结果的指令被插在此二指令之间。由于这样的系统,就能有效地缓解长处理所需的进行期限与一CPU机器周期之间的差异。从而能得到一种需要较少的为执行指令的等待时间的信息处理设备和方法。而且,按照本发明,上述的时间差异的缓解能以在硬件大小上作少许增加来实现。
对本技术领域内的熟练人士来说,各种其他变形是显见和容易实现的,而不脱离本发明的范畴和精神实质。因而,所附权利要求的范围将不限于这里所作的说明,而是对权利要求作更广的解释。
Claims (22)
1、一信息处理设备,包括:
一指令存储装置,用于存放多个指令,其中,所述多个指令包括第一指令,第二指令和至少一第三指令;和
一中央处理单元,用于从所述指令存储装置取指令以便执行这些指令,其中:所述中央处理单元通过分别地执行第一指令和第二指令来执行处理,以进行需要至少二个中央处理单元机器周期的操作,所述第一指令用于设定操作所需的第一数据和所述第二指令用于取由所述操作所得的第二数据,所述机器周期为中央处理单元执行一指令的时间单元;所述中央处理单元在执行所述第一指令之后和执行所述第二指令之前执行至少一第三指令,所述第三指令无需第二数据。
2、按照权利要求1的信息处理设备,其中还包括一存储器装置,其中:
所述操作包含读取存放在此存储器装置中信息的读操作;
所述第一数据为存储器装置中欲读取信息的读地址;和
所述读地址由第一指令设置在规定的存储器区中。
3、按照权利要求2的信息处理设备,其中,所述第一指令包含一根据设置在存储器区中的读地址起动读操作的命令。
4、按照权利要求1的信息处理设备,其中:
所述操作包括数学运算;
所述第一数据为作数学运算的操作数数据;和
所述操作数数据由第一指令设置在一规定的存储器区内。
5、按照权利要求4的信息处理设备,其中所述第一指令包括一根据设置在所述存储器区内的操作数数据开始数学运算的命令。
6、按照权利要求1的信息处理设备,还包括有为保持数据的第一和第二寄存器和一为控制第一和第二寄存器的控制电路;
其中,此控制电路根据第一指令将第一数据写入第一寄存器,根据被写入第一寄存器中的第一数据进行操作,将由操作得到的第二数据写入第二寄存器,和根据第二指令将保存在第二寄存器中的第二数据传送到中央处理单元。
7、按照权利要求6的信息处理设备,还包括一存储器装置,其中:
所述控制电路控制对此存储器装置的访问;
所述操作包含一读取存放在存储器装置中信息的操作;
所述第一数据为欲读取的信息在存储器装置中的读地址;和
所述第二数据为由存储器装置读取的信息。
8、按照权利要求7的信息处理设备,其中所述第一指令包含一根据设置在第一寄存器中的读地址开始读操作的命令。
9、按照权利要求7的信息处理设备,其中:
所述中央处理单元由指令存储装置取第一指令并输出欲读取的存储器装置中信息的读地址,在输出该地址以后,执行至少一无需由存储器装置读取的信息的第三指令,并在至少一第三指令被执行以后由指令存储装置取第二指令以便执行此第二指令;
所述第一寄存器在控制电路的控制下接收并保存由中央处理单元输出的读地址;
所述存储器装置在控制电路的控制下接收保存在第一寄存器中的读地址并根据所接收的读地址输出信息同时执行至少一第三指令;
所述第二寄存器在控制电路的控制下接收并保存由存储器装置输出的信息;和
所述控制电路通过由中央处理单元所执行的第二指令传送保存在第二寄存器中的信息。
10、按照权利要求9的信息处理设备,还包括一为对至少一部分由中央处理单元输出的地址进行译码的地址译码器;
对第一寄存器指派一第一地址区和对第二寄存器指派一第二地址区;
所述第一指令为将读地址写入第一地址区的写指令,而第二指令为读取保存在第二地址区中的信息的读指令;
所述中央处理单元根据第一指令输出一读地址应被写入的地址和根据第二指令输出保存欲读取的信息的地址;
在执行第一指令中,控制电路检测由地址译码器译码的地址等于第一地址区中的地址并因而确认对第一寄存器的写操作;和
所述控制电路在执行第二指令中检测被地址译码器译码的地址等于第二地址区中的地址并因而确认由第二寄存器的读操作。
11、按照权利要求6的信息处理设备,其中:
所述操作包含数学运算;
所述第一数据为用于数学运算的操作数数据;和
所述第二数据为由数学运算处理操作数数据所得的数学运算结果数据。
12、按照权利要求11的信息处理设备,其中所述第一指令包含一根据设置在第一寄存器中的操作数数据开始数学运算的命令。
13、按照权利要求6的信息处理设备,其中在对所述第二寄存器的写操作完成之前控制电路检测到第二指令的执行的情况下,控制电路请求中央处理电路中止执行第二指令,而在写操作完成时,控制电路释放这一中止并将被写在第二寄存器中的第二数据传送到中央处理单元。
14、按照权利要求6的信息处理设备,其中所述中央处理单元执行由操作特点所确定的规定数量的第三指令,并由此防止在将第二数据写入第二寄存器的操作完成之前执行第二指令。
15、按照权利要求6的信息处理设备,还包括一状态寄存器,其中:
所述控制电路将状态寄存器设置为将第一数据写入第一寄存器的第一状态,和将状态寄存器设置为将第二数据写入第二寄存器的第二状态;和
所述中央处理单元在执行第二指令前执行一指令以确认状态寄存器处第二状态。
16、按照权利要求6的信息处理设备,其中在所述控制电路于对第二寄存器的写操作完成前检测到第二指的执行的情况下,控制电路请求中央处理单元进行一子例行程序。
17、按照权利要求16的信息处理设备,其中所述子例行程序是一中断程序,而第二指令在此中断程序中被再次执行。
18、一调度装置,为将包含多个指令的以一种高级语言或汇编语言编写的第一程序翻译成一以机器语言描述的第二程序,和为在将第一程序翻译成第二程序期间编排第一程序的多个指令的顺序,该调度装置包括:
第一检测器,用于确定为完成多个指令的每一个所进行的处理所需的处理时间和检测作为一长时间处理的需要至少二个机器周期的处理,机器周期是由中央处理单元为运行程序执行一指令的时间单元;
第二检测器,用于检测程序是否含有至少一个能由中央处理单元执行而不依赖于由该长时间处理所得处理结果的后续指令;和
顺序编排装置,用于根据第一检测器和第二检测器的检测结果安排多个指令的顺序,其中,在第一检测器检测到一长时间处理和第二检测器检测到至少一个后续指令的情况下,此顺序编排装置将此长时间处理分成为一为设定此长时间处理中进行的操作所需的第一数据的第一指令和一为取根据操作所得的第二数据的第二指令,并在第一指令之后和第二指令之前插入至少一个作为第三指令由第二检测器检测得的指令。
19、一种采用一用于存放多个指令的指令存储装置和一用于由指令存储装置取指令以便执行此指令的中央处理单元的信息处理方法;
在进行一需要至少二个机器周期的处理时,此机器周期为由中央处理单元执行一指令的时间单元,此处理包含根据第一数据的操作,由此操作得到第二数据,所述方法包括步骤:
执行第一指令用于设置操作所需的第一数据;
在执行第一指令后执行至少一第三指令,此第三指令无需第二数据;和
执行第二指令取由操作得到的第二数据。
20、一种采用一用于存放多个指令的指令存储装置、一用于由指令存储装置取指令以便执行指令的中央处理单元、和为保存数据的第一第二寄存器的信息处理方法;
当进行需要至少二机器指令的处理时,机器周期为由中央处理单元执行一指令的时间单元,此处理包含根据第一数据的操作,由操作得到第二数据,所述方法包括步骤:
执行第一指令设定操作所需的第一数据;
根据第一指令将第一数据写入第一寄存器;
在执行第一指令后执行至少一第三指令,此第三指令无需第二数据;
根据被写入第一寄存器的第一数据进行操作同时执行至少一第三指令,和将由操作得到的第二数据写入第二寄存器;
执行第二指令取由操作得到的第二数据;和
根据第二指令传送保存在第二寄存器中的第二数据。
21、按照权利要求20的信息处理方法,还包括有步骤:
在将第二数据写入第二寄存器的操作完成之前取得第二指令的情况下,请求中央处理单元中止执行第二指令;和
当将第二数据写入第二寄存器的操作完成时,释放此中止并将被写入第二寄存器中的第二数据传送给中央处理单元。
22、按照权利要求20的信息处理方法,其中执行至少一第三指令的步骤包含执行由操作特点所确定的多个第三指令的步骤,由此来防止在将第二数据写入第二寄存器的操作完成之前第二指令被执行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP065965/1996 | 1996-03-22 | ||
JP065965/96 | 1996-03-22 | ||
JP6596596 | 1996-03-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1165345A CN1165345A (zh) | 1997-11-19 |
CN1109978C true CN1109978C (zh) | 2003-05-28 |
Family
ID=13302224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN97103704A Expired - Fee Related CN1109978C (zh) | 1996-03-22 | 1997-03-24 | 信息处理设备和方法,及调度装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5968166A (zh) |
EP (1) | EP0797143B1 (zh) |
KR (1) | KR100282107B1 (zh) |
CN (1) | CN1109978C (zh) |
DE (1) | DE69730257T2 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3070735B2 (ja) | 1997-07-23 | 2000-07-31 | 株式会社日立製作所 | 摩擦攪拌接合方法 |
US6370638B1 (en) * | 1997-11-21 | 2002-04-09 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method of computer program control in computer systems using pipeline processing |
JP2000181796A (ja) * | 1998-12-14 | 2000-06-30 | Nec Corp | 情報処理装置 |
DE60139253D1 (de) * | 2000-05-22 | 2009-08-27 | Panasonic Corp | Chipkarte |
KR20040008714A (ko) * | 2002-07-19 | 2004-01-31 | 주식회사 하이닉스반도체 | 마이크로 제어 시스템에 있어서 메모리 정보를 읽는 장치 |
US7873430B1 (en) | 2006-06-14 | 2011-01-18 | Rockwell Automation Technologies, Inc. | System that can schedule operations that are performed on industrial control devices |
CN103513957B (zh) * | 2012-06-27 | 2017-07-11 | 上海芯豪微电子有限公司 | 高性能缓存方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4891753A (en) * | 1986-11-26 | 1990-01-02 | Intel Corporation | Register scorboarding on a microprocessor chip |
EP0481615A2 (en) * | 1990-10-15 | 1992-04-22 | International Business Machines Corporation | Global instruction scheduler for a computer |
EP0499853A2 (en) * | 1991-02-20 | 1992-08-26 | International Business Machines Corporation | Memory access scheme |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0754461B2 (ja) * | 1985-02-08 | 1995-06-07 | 株式会社日立製作所 | 情報処理装置 |
JP2614358B2 (ja) * | 1990-10-19 | 1997-05-28 | 富士通株式会社 | ブロックリードアドレス生成システム |
IL98248A0 (en) * | 1991-05-23 | 1992-06-21 | Ibm Israel | Instruction scheduler for a computer |
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
EP0663083B1 (en) * | 1992-09-29 | 2000-12-20 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
US5748937A (en) * | 1993-08-26 | 1998-05-05 | Intel Corporation | Computer system that maintains processor ordering consistency by snooping an external bus for conflicts during out of order execution of memory access instructions |
US5584009A (en) * | 1993-10-18 | 1996-12-10 | Cyrix Corporation | System and method of retiring store data from a write buffer |
US5666507A (en) * | 1993-12-29 | 1997-09-09 | Unisys Corporation | Pipelined microinstruction apparatus and methods with branch prediction and speculative state changing |
US5537560A (en) * | 1994-03-01 | 1996-07-16 | Intel Corporation | Method and apparatus for conditionally generating a microinstruction that selects one of two values based upon control states of a microprocessor |
US5555432A (en) * | 1994-08-19 | 1996-09-10 | Intel Corporation | Circuit and method for scheduling instructions by predicting future availability of resources required for execution |
US5644742A (en) * | 1995-02-14 | 1997-07-01 | Hal Computer Systems, Inc. | Processor structure and method for a time-out checkpoint |
US5664193A (en) * | 1995-11-17 | 1997-09-02 | Sun Microsystems, Inc. | Method and apparatus for automatic selection of the load latency to be used in modulo scheduling in an optimizing compiler |
-
1997
- 1997-03-19 US US08/820,785 patent/US5968166A/en not_active Expired - Lifetime
- 1997-03-20 DE DE69730257T patent/DE69730257T2/de not_active Expired - Fee Related
- 1997-03-20 EP EP97104772A patent/EP0797143B1/en not_active Expired - Lifetime
- 1997-03-22 KR KR1019970010270A patent/KR100282107B1/ko not_active IP Right Cessation
- 1997-03-24 CN CN97103704A patent/CN1109978C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4891753A (en) * | 1986-11-26 | 1990-01-02 | Intel Corporation | Register scorboarding on a microprocessor chip |
EP0481615A2 (en) * | 1990-10-15 | 1992-04-22 | International Business Machines Corporation | Global instruction scheduler for a computer |
EP0499853A2 (en) * | 1991-02-20 | 1992-08-26 | International Business Machines Corporation | Memory access scheme |
Also Published As
Publication number | Publication date |
---|---|
KR970066863A (ko) | 1997-10-13 |
EP0797143A2 (en) | 1997-09-24 |
EP0797143B1 (en) | 2004-08-18 |
US5968166A (en) | 1999-10-19 |
KR100282107B1 (ko) | 2001-02-15 |
DE69730257T2 (de) | 2005-09-01 |
CN1165345A (zh) | 1997-11-19 |
EP0797143A3 (en) | 1999-11-17 |
DE69730257D1 (de) | 2004-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1174313C (zh) | 多指令集的数据处理 | |
CN1088214C (zh) | 用多指令集处理数据的器件和方法 | |
CN1254739C (zh) | 处理器和操作处理器的方法 | |
CN1129843C (zh) | 使用组合的数据处理器系统和指令系统 | |
CN100339824C (zh) | 高效执行特长指令字的处理器和方法 | |
CN1269027C (zh) | 数据并行右移合并的方法与装置 | |
CN1095116C (zh) | 执行两种指令长度代码的处理机及其指令码输入装置 | |
CN1788253A (zh) | 数据处理系统内的断定指令 | |
CN1121014C (zh) | 具有risc结构的八位微控制器 | |
CN1758213A (zh) | 带有共享内容的异构型并行多线程处理器(hpmt) | |
CN1658154A (zh) | 早期修正分支指令预测错误的管线微处理器装置与方法 | |
CN1825276A (zh) | 多线程管道中的可编程延迟分派 | |
CN1742257A (zh) | 基于识别寻址模式的双目的寄存器的数据预测机制 | |
CN100346285C (zh) | 处理器芯片与存储控制系统及方法 | |
CN1629801A (zh) | 产生早期指令结果的管线式微处理器、装置以及方法 | |
CN1109978C (zh) | 信息处理设备和方法,及调度装置 | |
CN101046741A (zh) | 处理器装置和复合条件处理方法 | |
CN1178942A (zh) | 利用寄存器更名实现自并行化 | |
CN1734415A (zh) | 分枝预测装置及分枝预测方法 | |
CN1035190A (zh) | 基于操作数长度和对位的微码转移 | |
CN1506809A (zh) | 模拟装置、模拟方法及程序 | |
CN1490726A (zh) | 信息处理装置以及电子设备 | |
CN1286005C (zh) | 微处理器 | |
CN1940860A (zh) | 多微控制器系统任务调用方法 | |
CN1485741A (zh) | 信息处理装置以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1045950 Country of ref document: HK |
|
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20030528 Termination date: 20120324 |