JPH08305563A - Data processing unit - Google Patents

Data processing unit

Info

Publication number
JPH08305563A
JPH08305563A JP7112767A JP11276795A JPH08305563A JP H08305563 A JPH08305563 A JP H08305563A JP 7112767 A JP7112767 A JP 7112767A JP 11276795 A JP11276795 A JP 11276795A JP H08305563 A JPH08305563 A JP H08305563A
Authority
JP
Japan
Prior art keywords
condition
instruction
information
data processing
conditional
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
JP7112767A
Other languages
Japanese (ja)
Other versions
JP3454393B2 (en
Inventor
Atsushi Kiuchi
淳 木内
Yuji Hatano
雄治 波多野
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11276795A priority Critical patent/JP3454393B2/en
Publication of JPH08305563A publication Critical patent/JPH08305563A/en
Application granted granted Critical
Publication of JP3454393B2 publication Critical patent/JP3454393B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

PURPOSE: To provide the data processing unit to support a conditional arithmetic instruction in which the processing efficiency is improved without causing problems such as performance deterioration due to a limit of a degree of freedom of operands or kinds of instructions and increase in program memory capacity due to increase in an instruction code length. CONSTITUTION: The processing unit is provided with a condition selection means selecting at least one condition among plural conditions to be used for a conditional arithmetic instruction, a conditional information storage means 103 (CSR) storing condition information selected by the condition selection means, and a means 104 (CCR) storing information denoting property of the result of arithmetic operation based on at least the selected condition and the conditional arithmetic instruction has a function to execute required arithmetic processing one of selected conditions is designated and the condition is established.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、条件付き演算命令をサ
ポートするデータ処理装置に関し、特に、条件付き演算
命令の分岐条件指定フィールドに必要なビット数を低減
することによって、命令の種類やオペランドの自由度の
制限による性能低下および命令コード長の増大によるプ
ログラムを格納するメモリ容量の増加を抑えることが可
能なデータ処理装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing device that supports conditional operation instructions, and more particularly, by reducing the number of bits required for a branch condition specification field of a conditional operation instruction, the instruction type and operand The present invention relates to a data processing device capable of suppressing an increase in the memory capacity for storing a program due to a decrease in performance due to the limitation of the degree of freedom and an increase in instruction code length.

【0002】[0002]

【従来の技術】近年の高度に発展した情報処理社会にお
いては様々な分野でディジタル信号処理が行われてお
り、そのためのハードウエアとして、通常マイクロプロ
セッサやディジタルシグナルプロセッサ(DSP)と呼
ばれるシステムLSIが使われている。これらのシステ
ムLSIは、様々な用途に適用させるために、汎用の命
令セットを備えているのが普通である。様々な用途のう
ちには、一連の固定した命令の順序に従って実行するだ
けでよい単純な処理もあるが、成立する条件によって実
行すべき処理内容が異なってくるのが一般的である。そ
の場合には、まず所定の条件が成立するか否かを判定
し、その判定結果によって処理すべき命令を選択する必
要がある。そのため従来の一般的なシステムLSIは条
件分岐命令を備えている。図15に条件分岐命令による
分岐処理のフローチャート例を示す。
2. Description of the Related Art In the highly advanced information processing society in recent years, digital signal processing is performed in various fields. As hardware therefor, a system LSI usually called a microprocessor or a digital signal processor (DSP) is used. It is used. These system LSIs are usually provided with a general-purpose instruction set in order to be applied to various purposes. Among various uses, there is a simple process that needs to be executed in accordance with a fixed order of a series of instructions, but the process contents to be executed generally differ depending on the conditions that are satisfied. In that case, it is necessary to first determine whether or not a predetermined condition is satisfied, and select an instruction to be processed according to the determination result. Therefore, the conventional general system LSI has a conditional branch instruction. FIG. 15 shows an example of a flowchart of branch processing by a conditional branch instruction.

【0003】図15では、まず、ステップ150で所定
の算術演算1を実行し、次にステップ151で前ステッ
プ150による演算結果が正の数(0を含む)か否かを
判定する。その判定結果、負の数であった場合(NO)に
は直接ステップ153に移り動作3を実行するが、ステ
ップ151による判定結果が正の数(0を含む)の場合
(YES)にはステップ152で動作2を実行した後、ス
テップ153に移る。すなわち、図15の処理例ではス
テップ150での実行結果によって以降の処理手順が異
なっている。この処理をアセンブラ的なニモニックで表
現したプログラム例を図16に示す。
In FIG. 15, first, a predetermined arithmetic operation 1 is executed in step 150, and then it is determined in step 151 whether the operation result of the previous step 150 is a positive number (including 0). If the determination result is a negative number (NO), the process directly proceeds to step 153 to execute the operation 3, but if the determination result of step 151 is a positive number (including 0) (YES), the step is performed. After performing the operation 2 in 152, the process proceeds to step 153. That is, in the processing example of FIG. 15, the subsequent processing procedure differs depending on the execution result in step 150. FIG. 16 shows a program example in which this processing is expressed by an assembler-like mnemonic.

【0004】通常のシステムLSIでは、図15のよう
な条件によって処理手順が異なる処理を実現するため
に、条件分岐命令を用いる。すなわち、図16に示すよ
うに1行目の算術演算命令inst.1を実行することによ
り、その演算結果を求める(図15のステップ150に
相当)。この時、通常のシステムLSIでは同時にその
演算結果の性質を表すいくつかのコードを生成する。こ
れは通常にコンディション・コードと呼ばれており、例
えば、桁上がりや桁借りが生じたことを示すフラグ(キ
ャリー),結果が正か負かを示すフラグ(ネガティ
ブ),結果がプロセッサが表現できるデータの範囲を超
えたことを示すフラグ(オーバフロー),結果がゼロか
どうかを示すフラグ(ゼロ)などがその代表なコンディ
ション・コードのフラグ例である。
In a normal system LSI, a conditional branch instruction is used in order to realize a process having a different processing procedure depending on the condition as shown in FIG. That is, as shown in FIG. 16, the arithmetic result is obtained by executing the arithmetic operation instruction inst.1 on the first line (corresponding to step 150 in FIG. 15). At this time, a normal system LSI simultaneously generates some codes representing the properties of the operation result. This is usually called a condition code. For example, a flag indicating that a carry or a borrow has occurred (carry), a flag indicating whether the result is positive or negative (negative), and the result can be expressed by the processor. Flags indicating that the data range has been exceeded (overflow), flags indicating whether the result is zero (zero), etc. are typical examples of the condition code flags.

【0005】図16の2行目では、これらのコンディシ
ョン・コードのうち、演算結果が正か負かを示すフラグ
を用いた条件分岐命令が書かれており、もし負であれば
(ifN)ラベルL1のついている行に分岐する(図15の
ステップ151の判定;NOに相当)。すなわち,もし負
であれば3行目の命令は実行せずにスキップして4行目
(図15のステップ153に相当)に分岐する。もし条
件判定の結果、正(0を含む)であれば、2行目の条件
分岐命令は実行されず、3行目のinst.3を実行(図15
のステップ152に相当)してから4行目に移る。この
ようにして図15のフローチャートに示された処理が実
行できる。
In the second line of FIG. 16, a conditional branch instruction using a flag showing whether the operation result is positive or negative among these condition codes is written. If it is negative (ifN) label Branch to the line with L1 (determination in step 151 of FIG. 15; corresponding to NO). That is, if negative, the instruction in the third line is skipped without executing and the process branches to the fourth line (corresponding to step 153 in FIG. 15). If the result of the condition determination is positive (including 0), the conditional branch instruction on the second line is not executed and inst.3 on the third line is executed (see FIG. 15).
(Corresponding to step 152 of) and move to the fourth line. In this way, the processing shown in the flowchart of FIG. 15 can be executed.

【0006】ここで注目すべきことは、図15のような
処理を行う場合には必ず分岐動作が必要になることであ
る。分岐命令の役割は基本的にはプログラムの実行順序
を強制的に変更することであり、データ処理には直接に
は何ら寄与しない動作である。しかも処理性能を向上さ
せる極めて一般的な手法であるパイプライン制御(先行
制御)を行っているシステムLSIでは、このような分
岐命令によってプログラムの流れが乱されると、著しく
処理効率が低下する(オーバヘッドが増加する)。この
ような処理効率の低下を極力抑えるために、従来より様
々な手法が提案されている。一つの手段としては、この
条件分岐命令の実行によるオーバヘッドを低減しようと
するものがある。例えば条件が成立しても不成立でも同
じように処理できるように、あらかじめ両方の場合で次
に実行すべき命令をあらかじめプログラムメモリから読
み出して用意しておく手法などが知られている。しかし
この方法はプログラムのシーケンス制御が非常に複雑に
なるため、ハードウェア量が増大してしまうという問題
がある。
What should be noted here is that a branch operation is always required when performing the processing shown in FIG. The role of the branch instruction is basically to forcibly change the execution order of the program, which is an operation that does not directly contribute to data processing. Moreover, in a system LSI performing pipeline control (advance control), which is a very general method for improving processing performance, if the flow of a program is disturbed by such a branch instruction, the processing efficiency is significantly reduced ( Overhead increases). Various techniques have been conventionally proposed in order to suppress such a decrease in processing efficiency as much as possible. One means is to reduce the overhead due to the execution of this conditional branch instruction. For example, there is known a method in which an instruction to be executed next in both cases is read in advance from a program memory and prepared so that the same processing can be performed regardless of whether the condition is satisfied or not satisfied. However, this method has a problem that the amount of hardware increases because the sequence control of the program becomes very complicated.

【0007】このようなハードウェアの増大を抑えて処
理性能を向上させる別の手段としてADSP-2100 User's M
anual p4-4〜4-15に開示されているように、様々な命令
に分岐命令と同様な条件を付加し、指定された条件が成
立した時のみ実行し、不成立の場合は指定された動作を
実行せずにそのまま次のステップに移るようにしたもの
が知られている。この手法を用いて図15の処理をアセ
ンブラ的なニモニックで表現したプログラム例を図17
に示す。すなわち、図15のステップ152はステップ
150の結果が正の時のみ実行するのであるから、図1
7の2行目(if P inst.2)に示されているように、1
行目の演算結果として生成されるコンディション・コー
ドのうちの正(0を含む)か負かを示すフラグが正(0
を含む)を示している時のみ、inst.2を実行するような
命令を備えることにより、分岐命令をプログラムから排
除することができる。この2行目の命令は条件の成立/
不成立に関わらず、プログラム実行のパイプラインは全
く乱れないので、複雑な制御回路を増加することなしに
処理性能の向上を図ることができる。
ADSP-2100 User's M is another means for suppressing the increase in hardware and improving the processing performance.
As disclosed in anual p4-4 to 4-15, add the same conditions as branch instructions to various instructions, execute only when the specified condition is satisfied, and if not, the specified action It is known that the process is moved to the next step without executing. FIG. 17 shows a program example in which the processing of FIG. 15 is expressed by an assembler-like mnemonic using this method.
Shown in That is, step 152 of FIG. 15 is executed only when the result of step 150 is positive.
As shown in the second line of 7 (if P inst.2), 1
Among the condition codes generated as the operation result of the line, the flag indicating whether the condition code is positive (including 0) or negative is positive (0
(Including), the branch instruction can be excluded from the program by providing an instruction to execute inst.2. The instruction on the second line satisfies the condition /
Regardless of the failure, the pipeline of program execution is not disturbed at all, so that the processing performance can be improved without increasing the number of complicated control circuits.

【0008】[0008]

【発明が解決しようとする課題】しかしながら、上記の
条件付き演算実行命令の手法では、複雑なパイプライン
制御用のハードウェアは不要になるものの、様々な命令
のコードに条件指定フィールドを設けなければならない
ため、限られた命令コードのうちの何ビットかがそのた
めに使われてしまい、サポートする命令全体の種類やオ
ペランドの自由度が狭くなり、プロセッサとしての性能
が低下してしまうという問題がある。例えば、前述した
ような桁上がりや桁借りが生じたことを示すフラグ(キ
ャリー),結果が正(0を含む)か負かを示すフラグ
(ネガティブ),結果がプロセッサが表現できるデータ
の範囲を超えたことを示すフラグ(オーバフロー),結
果がゼロかどうかを示すフラグ(ゼロ)の4種類のコン
ディションの真/偽を実行の条件として指定できるよう
にする場合、合計8種類の条件から選択することになる
ので、図18に示すように命令コード90毎に少なくと
も3ビットの条件指定フィールド91を確保する必要が
ある。3ビットの条件指定フィールド91の具体例を9
2に示してある。プロセッサとしての性能の低下を回避
するために、この3ビットの条件指定フィールド91を
従来の命令コード長に新たに追加させると、今度はプロ
グラム全体を格納するメモリ容量が増加してしまうとい
う別の問題が生じてしまう。
However, although the above-mentioned conditional operation execution instruction method does not require complicated pipeline control hardware, various instruction codes must be provided with condition specifying fields. Therefore, some bits of the limited instruction code are used for that purpose, and there is a problem that the type of all supported instructions and the degree of freedom of operands are narrowed, and the performance as a processor deteriorates. . For example, a flag (carry) indicating that a carry or borrow has occurred as described above, a flag (negative) indicating whether the result is positive (including 0) or negative, and a range of data that the processor can represent When it is possible to specify the true / false condition of the four types of condition, that is, the flag indicating that it has exceeded (overflow) and the flag indicating whether the result is zero (zero), select from a total of eight conditions. Therefore, it is necessary to secure at least a 3-bit condition designation field 91 for each instruction code 90 as shown in FIG. A specific example of the 3-bit condition designation field 91 is 9
It is shown in 2. If this 3-bit condition specification field 91 is newly added to the conventional instruction code length in order to avoid the deterioration of the performance as a processor, another problem is that the memory capacity for storing the entire program will increase. There will be problems.

【0009】一般的にいって、上述したような条件付き
で演算を実行すべきプログラムモジュールはそれほど頻
繁には現れてくることはないが、例えば、ディジタル信
号処理の場合には一定の処理ルーチンを繰り返し実行す
ることが多く、処理ルーチン内に1行あるだけでもそれ
を何回も繰り返し実行するため条件付き演算命令の処理
上の性能向上の効果が大きくなる。その上、所定の処理
ルーチンを繰り返し実行する際には指定されている条件
はずっと同一である。本発明は、この事情を鑑みてなさ
れたものであり、その目的とするところは、上述した如
き問題点を解決し、命令の種類やオペランドの自由度の
制限による性能低下、および命令コード長の増大に伴う
プログラムメモリ容量の増加などの問題を発生すること
なく処理効率の向上を図ることができる条件付き演算命
令をサポートするデータ処理装置を提供することにあ
る。
Generally speaking, program modules which should be operated under the above-mentioned conditions do not appear very often, but for example, in the case of digital signal processing, a certain processing routine is required. It is often executed repeatedly, and even if there is only one line in the processing routine, it is repeatedly executed many times, so that the effect of improving the processing performance of the conditional operation instruction becomes large. In addition, the conditions specified when the predetermined processing routine is repeatedly executed are the same. The present invention has been made in view of this situation, and an object of the present invention is to solve the problems as described above, to reduce the performance due to the limitation of the kind of the instruction and the degree of freedom of the operand, and to reduce the instruction code length. It is an object of the present invention to provide a data processing device that supports a conditional operation instruction that can improve processing efficiency without causing a problem such as an increase in program memory capacity accompanying the increase.

【0010】[0010]

【課題を解決するための手段】本発明は、上記目的を達
成するために、データ処理を実行する演算回路(図1の
105(ALU))と、該データ処理に必要なソースデ
ータを供給する手段(同レジスタ・ファイル102)
と、演算結果を格納する演算結果格納手段(レジスタ・
ファイル102)と、指定された条件が成立している時
のみ演算を実行する条件付き演算命令を実行する制御手
段(制御信号生成回路106)とを少なくとも具備する
データ処理装置において、該条件付き演算命令に使われ
るべき複数の条件から、少なくとも1つの条件を選択す
る条件選択手段(例えば図4の1行目)と、該条件選択
手段(例えば図4の1行目)で選択された条件情報を保
持する条件情報保持手段(コンディション・セレクト・
レジスタ103(CSR))と、少なくとも前記選択さ
れた条件に基づいて演算結果の性質を表す情報を保持す
る手段(コンディション・コード・レジスタ104(C
CR))をさらに具備し、該条件付き演算命令は該選択
された条件のうちのひとつを指定して条件が成立してい
るときのみ、所要の演算処理を実行する機能を有するこ
とを特徴としている。
In order to achieve the above object, the present invention supplies an arithmetic circuit (105 (ALU) in FIG. 1) for executing data processing and source data necessary for the data processing. Means (same register file 102)
And an operation result storage means (register,
In the data processing device including at least the file 102) and a control unit (control signal generation circuit 106) that executes a conditional operation instruction that executes an operation only when a specified condition is satisfied, the conditional operation Condition selecting means (for example, the first line in FIG. 4) for selecting at least one condition from a plurality of conditions to be used in the instruction, and condition information selected by the condition selecting means (for example, the first line in FIG. 4) Condition information holding means (condition, select,
A register 103 (CSR)) and a means (condition code register 104 (C) for holding information indicating the property of the operation result based on at least the selected condition.
CR)), and the conditional arithmetic instruction has a function of executing a required arithmetic processing only when one of the selected conditions is designated and the condition is satisfied. There is.

【0011】また、前記演算結果の性質を表す情報を保
持する保持手段(コンディション・コード・レジスタ1
04(CCR))は、前記選択された条件に基づいて演
算結果の性質を表す情報(図2の104d(DC))以
外に恒常的に演算結果の性質を表す情報(図2の104
a(N),104b(Z),104c(V)など)を同
時に保持する手段を持つことを特徴としている。また、
前記条件選択手段(例えば図4の1行目)は、恒常的に
演算結果の性質を表す複数の情報の中からひとつを選択
することを特徴としている。
Further, holding means (condition code register 1) for holding information indicating the property of the operation result.
04 (CCR)) is information that constantly represents the property of the operation result (104 d in FIG. 2) other than the information that represents the property of the operation result (104 d (DC) in FIG. 2) based on the selected condition.
a (N), 104b (Z), 104c (V), etc.) are simultaneously held. Also,
The condition selecting means (for example, the first line in FIG. 4) is characterized by constantly selecting one from a plurality of pieces of information representing the property of the operation result.

【0012】さらに、前記条件付き演算命令(図5)
は、命令コード中に条件を指定するフィールド(51)
を持ち、該条件を指定するフィールド(51)は、無条
件で実行する選択肢(52の「0」)と、前記選択され
た条件情報を保持する手段で保持されている条件が真の
場合のみ所要の演算処理を実行する選択肢(52の
「1」)を少なくとも持つことを特徴としている。ま
た、前記条件付き演算命令(図10)は、命令コード中
に条件を指定するフィールド(81)を持ち、該条件を
指定するフィールド(81)は、無条件で実行する選択
肢(82の「00」)と、前記選択された条件情報を保
持する手段で保持されている条件が「真」の場合に所要
の演算処理を実行する選択肢(82の「01」)と、
「偽」の場合に所要の演算処理を実行する選択肢(82
の「10」)とを少なくとも持つことを特徴としてい
る。また、前記選択された条件情報を保持する手段(図
14の103a(CS0),103b(CS1),10
3c(CS2))は、前記演算結果の性質を表す情報を
保持する手段(図14の104a(N),104b
(Z),104c(V)と同一のレジスタ(1500
(CR))で構成されていることを特徴としている。
Further, the conditional operation instruction (FIG. 5)
Is a field (51) that specifies the condition in the instruction code.
And a field (51) for designating the condition is provided only when the option (52 “0”) to be executed unconditionally and the condition held by the means for holding the selected condition information are true. It is characterized in that it has at least an option (“1” of 52) for executing a required arithmetic processing. Further, the conditional operation instruction (FIG. 10) has a field (81) for designating a condition in the instruction code, and the field (81) for designating the condition is an option to execute unconditionally (“00 of 82. )), And an option (“01” of 82) for executing required arithmetic processing when the condition held by the means for holding the selected condition information is “true”,
Option (82) to execute the required arithmetic processing in the case of "false"
"10") and at least. Further, a means for holding the selected condition information (103a (CS0), 103b (CS1), 10 in FIG. 14)
3c (CS2) is a means (104a (N), 104b in FIG. 14) for holding information indicating the property of the calculation result.
(Z), 104c (V) and the same register (1500
(CR)).

【0013】[0013]

【作用】本発明の構成において、条件選択手段(例えば
図4の1行目)は選択すべき条件を規定するコード(条
件情報)を条件情報保持手段(コンディション・セレク
ト・レジスタ103(CSR))に書き込み、以後新た
に別の条件情報によって該条件情報が書き換えられる
か、またはリセット処理動作などによって初期化される
まで、その条件情報を保持しておく。また、条件付き実
行命令用の演算結果の性質を表す情報を保持する保持手
段(図2の104d)は、コンディション・コードを更
新すべき命令が実行される度に条件情報保持手段(コン
ディション・セレクト・レジスタ103(CSR))に
保持されている情報に基づいてその内容が更新される。
一方、各演算命令は、図5に示すように、無条件で実行
するか条件付きで実行するかを選択するビットを持ち、
条件つきで実行させる選択肢(図5の52)を持ってお
り、条件付きで演算命令が実行されると、プロセッサは
該条件付き実行命令用の演算結果の性質を表す情報を保
持する保持手段(コンディション・コード・レジスタ1
04(CCR))の内容をチェックしてその演算を実行
すべきかどうかを判定する。
In the structure of the present invention, the condition selecting means (for example, the first line in FIG. 4) stores the code (condition information) defining the condition to be selected in the condition information holding means (condition select register 103 (CSR)). The condition information is retained until the condition information is newly rewritten by another condition information or is initialized by a reset processing operation or the like. Further, the holding means (104d in FIG. 2) for holding the information indicating the property of the operation result for the conditional execution instruction is the condition information holding means (condition select) every time the instruction for updating the condition code is executed. The content is updated based on the information held in the register 103 (CSR).
On the other hand, each operation instruction has a bit for selecting whether to execute unconditionally or conditionally, as shown in FIG.
The processor has an option (52 in FIG. 5) to be executed conditionally, and when the operation instruction is executed conditionally, the processor holds the information indicating the nature of the operation result for the conditional execution instruction ( Condition code register 1
04 (CCR)) to determine whether the operation should be executed.

【0014】または、各演算命令は、図10に示すよう
に、無条件で実行する選択肢(82の「00」)と、前
記選択された条件情報を保持する手段で保持されている
条件が「真」の場合に所要の演算処理を実行する選択肢
(82の「01」)と、「偽」の場合に所要の演算処理
を実行する選択肢(82の「10」)とを持っており、
条件付きで演算命令が実行されると、プロセッサは該条
件付き実行命令用の演算結果の性質を表す情報を保持す
る保持手段(コンディション・コード・レジスタ104
(CCR))の内容をチェックして所要の演算処理を実
行するか否かを判定する。この結果、各演算命令に、無
条件か条件付きで実行するかを選択するビット、また
は、各演算命令に、無条件か,条件情報保持手段に保持
されている条件が「真」の時に実行するか,「偽」の時
に実行するかを選択する少数のビットを付加するだけで
済み、各演算命令毎に全ての種類の条件を指定する長い
フィールドを設ける必要がなくなり、命令の種類やオペ
ランドの自由度の制限による性能低下を防止し、かつプ
ログラムメモリの小容量化が可能になる。
Alternatively, as shown in FIG. 10, in each operation instruction, an option to be executed unconditionally (“00” of 82) and a condition held by the means for holding the selected condition information are “ There is an option (“01” of 82) to execute the required arithmetic processing in the case of “true” and an option (“10” of 82) to execute the required arithmetic processing in the case of “false”.
When an arithmetic instruction is executed conditionally, the processor holds information (condition code register 104) that holds information indicating the nature of the arithmetic result for the conditional execution instruction.
(CCR)) is checked to determine whether or not the required arithmetic processing is to be executed. As a result, each operation instruction has a bit for selecting unconditional or conditional execution, or each operation instruction is unconditional or executed when the condition held in the condition information holding means is "true". Need only add a small number of bits to select whether to execute or to execute at the time of "false". It is not necessary to provide a long field for specifying all kinds of conditions for each operation instruction. It is possible to prevent the performance from deteriorating due to the limitation of the degree of freedom of and to reduce the capacity of the program memory.

【0015】[0015]

【実施例】図1は本発明の第1の実施例を説明するため
の構成図である。同図において、100は本発明を適用
した情報処理装置の演算実行回路、101はデータを格
納しているメモリ、102は演算に必要なソースデータ
や演算結果を格納するレジスタファイル、103は条件
付き演算命令に使用するために選択されたコンディショ
ン・コード情報を保持するコンディション・セレクト・
レジスタ(CSR)、104は演算結果のコンディショ
ン・コードおよび条件付き実行命令用のコンディション
・コードを保持するコンディション・コード・レジスタ
(CCR)、105は様々な算術演算や論理演算を実行
する算術論理演算器(ALU)、106は演算実行に必
要な制御信号を生成する制御信号生成回路である。
1 is a block diagram for explaining a first embodiment of the present invention. In the figure, 100 is a calculation execution circuit of an information processing apparatus to which the present invention is applied, 101 is a memory that stores data, 102 is a register file that stores source data and calculation results necessary for calculation, and 103 is conditional. A condition select that holds the condition code information selected for use in arithmetic instructions.
A register (CSR), 104 is a condition code register (CCR) that holds a condition code of an operation result and a condition code for a conditional execution instruction, and 105 is an arithmetic logic operation that executes various arithmetic operations and logical operations. A unit (ALU) 106 is a control signal generation circuit that generates a control signal necessary for executing an operation.

【0016】また、107は制御信号生成回路106か
ら送られるメモリ101の読み出し,書き込みを制御す
る制御信号、108は制御信号生成回路106から送ら
れるコンディション・セレクト・レジスタ103(CS
R)の読み出し,書き込みを制御する制御信号、109
は制御信号生成回路106から送られるレジスタ・ファ
イル内の各レジスタ毎の、データバス121あるいは算
術論理演算器105とのデータの入出力を制御する信号
群、110は制御信号生成回路106から送られる算術
論理演算器105で実行する演算を選択して実行させる
ための制御信号群、111はメモリ101とデータバス
121とを接続しているデータパス、112はレジスタ
・ファイル102とデータバス121とを接続している
データパス、113,114はレジスタ・ファイル10
2から算術論理演算器105へ供給されるソース・デー
タ、115は算術論理演算器105で実行された演算結
果をレジスタ・ファイル102へ書き込むべきデスティ
ネーション・データ、116は算術論理演算器105で
実行された演算結果のコンディション・コードをコンデ
ィション・コード・レジスタ104(CCR)に反映さ
せるのに必要なデータ信号群である。
Further, 107 is a control signal sent from the control signal generation circuit 106 for controlling reading and writing of the memory 101, and 108 is a condition select register 103 (CS) sent from the control signal generation circuit 106.
R) control signal for controlling reading and writing, 109
Is a signal group for controlling the input / output of data to / from the data bus 121 or the arithmetic logic unit 105 for each register in the register file sent from the control signal generation circuit 106, and 110 is sent from the control signal generation circuit 106. A control signal group for selecting and executing an operation to be executed by the arithmetic logic operation unit 105, 111 is a data path connecting the memory 101 and the data bus 121, and 112 is a register file 102 and the data bus 121. Connected data path, 113 and 114 are register file 10
2 is the source data supplied to the arithmetic logic operator 105, 115 is the destination data to write the result of the arithmetic operation executed by the arithmetic logic operator 105 to the register file 102, and 116 is the arithmetic logic operator 105 It is a data signal group necessary for reflecting the condition code of the calculated operation result in the condition code register 104 (CCR).

【0017】さらに、117はコンディション・セレク
ト・レジスタ103(CSR)とデータバス121とを
接続しているデータパス、118はコンディション・セ
レクト・レジスタ103(CSR)に保持された選択さ
れたコンディション・コード情報をコンディション・コ
ード・レジスタ104(CCR)に伝える選択情報信
号、119は条件付き演算命令や通常の条件分岐命令の
実行制御のために、コンディション・コード・レジスタ
104(CCR)の保持情報を制御信号生成回路106
に伝えるための信号、120はコンディション・コード
・レジスタ104(CCR)とデータバス121とを接
続しているデータパス、121はデータバス、122は
コンディション・コード・レジスタ104(CCR)の
読み出し,書き込みを制御する信号である。なお、上記
の信号は単数または複数の信号を意味し、混乱しない限
りにおいて信号と信号線を同一の符号で呼ぶことがあ
る。また本来の情報処理装置に当然含まれる他の要素回
路、すなわちメモリ101に供給するアドレスおよびア
ドレス発生回路、命令のデコード回路やフロー制御回路
などは本発明とは直接関係がないのでここでは省略して
いる。
Further, 117 is a data path connecting the condition select register 103 (CSR) and the data bus 121, and 118 is a selected condition code held in the condition select register 103 (CSR). A selection information signal 119 for transmitting information to the condition code register 104 (CCR) controls the information held in the condition code register 104 (CCR) for controlling the execution of conditional operation instructions and ordinary conditional branch instructions. Signal generation circuit 106
A signal for transmitting to the condition code register 104 (CCR) and a data path connecting the data bus 121 to the data bus 121, 121 to a data bus, and 122 to read and write to the condition code register 104 (CCR). Is a signal for controlling. Note that the above signal means a single signal or a plurality of signals, and the signal and the signal line may be referred to by the same symbol unless they are confused. Also, other element circuits naturally included in the original information processing apparatus, that is, addresses and address generation circuits to be supplied to the memory 101, instruction decoding circuits, flow control circuits, etc., are not directly related to the present invention, and are therefore omitted here. ing.

【0018】次に、通常の基本的な演算命令の実行手順
を説明する。演算命令が実行されると、まず制御信号生
成回路106は制御信号109を通じて演算に必要なソ
ース・データをレジスタ・ファイル102から113お
よび114に出力させる。情報処理装置が備える命令に
よっては、演算に必要なソース・データをメモリから供
給するように指定する場合もあるが、本発明にはソース
・データの出力元がどこであるかは無関係なので、以下
の説明ではソース・データをレジスタ・ファイル102
から供給するものと仮定する。レジスタ・ファイル10
2からソース・データを受け取った算術論理演算器10
5は、制御信号110によって指定された演算を実行
し、その演算結果をデスティネーション・データ115
として出力し、信号群109で指定されたレジスタ・フ
ァイル位置(デスティネーション・レジスタ)に入力す
る。この時、同時に演算結果のコンディション・コード
情報をデータ信号群116を通じてコンディション・コ
ード・レジスタ104(CCR)に送る。
Next, a normal basic operation instruction execution procedure will be described. When the operation instruction is executed, first, the control signal generation circuit 106 outputs the source data necessary for the operation to the register files 102 to 113 and 114 through the control signal 109. Depending on the instruction included in the information processing device, it may be specified that the source data required for the operation be supplied from the memory, but since the present invention does not care where the output source of the source data is, In the description, the source data is the register file 102.
Assumed to be supplied from. Register file 10
Arithmetic logic unit 10 receiving source data from 2
5 executes the operation designated by the control signal 110 and outputs the operation result to the destination data 115.
, And input to the register file position (destination register) specified by the signal group 109. At this time, simultaneously, the condition code information of the operation result is sent to the condition code register 104 (CCR) through the data signal group 116.

【0019】図2にコンディション・セレクト・レジス
タ103(CSR)およびコンディション・コード・レ
ジスタ104(CCR)、およびその周辺部分の詳細な
構成例を示す。図2中、103a(CS0),103b
(CS1),103c(CS2)はコンディション・セ
レクト・レジスタ103(CSR)を構成するフラグビ
ット、200は上記各フラグビットの情報をデコードし
て条件付き演算命令で指定する条件をコンディション・
コード・レジスタ104(CCR)に送る選択情報信号
118を生成する回路(デコーダ)、104aは演算結
果が正か負かを示すフラグ(N),104bは演算結果
がゼロかどうかを示すフラグ(Z),104cは演算結
果がプロセッサが表現できるデータの範囲を超えたこと
を示すフラグ(V),104dは条件付き実行命令用の
コンディション・コードを保持するフラグ(DC)であ
る。
FIG. 2 shows a detailed configuration example of the condition select register 103 (CSR), the condition code register 104 (CCR), and its peripheral portion. In FIG. 2, 103a (CS0) and 103b
(CS1) and 103c (CS2) are flag bits that form the condition select register 103 (CSR), and 200 is a condition that specifies a condition specified by a conditional operation instruction by decoding the information of each flag bit.
A circuit (decoder) that generates the selection information signal 118 to be sent to the code register 104 (CCR), 104a is a flag (N) that indicates whether the operation result is positive or negative, and 104b is a flag (Z that indicates whether the operation result is zero. ), 104c is a flag (V) indicating that the operation result exceeds the range of data that can be expressed by the processor, and 104d is a flag (DC) holding a condition code for a conditional execution instruction.

【0020】また、116a,116b,116c,1
16dは算術論理演算回路105から送られてくる演算
結果のコンディション・コードをコンディション・コー
ド・レジスタ104(CCR)に反映させるのに必要な
個別のデータ信号群、201はデータ信号群116a,
116b,116c,116dおよびコンディション・
セレクト・レジスタ103(CSR)から送られてきた
選択情報信号118を用いてフラグ104dに入力すべ
き状態信号202を生成する条件生成/選択回路であ
る。なお、ここでは条件付き実行命令用のコンディショ
ン・コードを保持するフラグ104d以外の通常のコン
ディション・コードフラグとして3種類のフラグを例示
しているが、この部分の種類およびその数については、
特定の数に制限するものではなく、さらに不要とあれ
ば、全くなくてもよいことは明らかである。また、状態
信号202を生成するための信号116の数が、個別に
反映するコンディション・コードフラグの数と異なって
いてもよいことも明らかである。
Further, 116a, 116b, 116c, 1
Reference numeral 16d is an individual data signal group necessary for reflecting the condition code of the operation result sent from the arithmetic logic operation circuit 105 in the condition code register 104 (CCR), 201 is the data signal group 116a,
116b, 116c, 116d and the condition
This is a condition generation / selection circuit that generates a state signal 202 to be input to the flag 104d by using the selection information signal 118 sent from the select register 103 (CSR). It should be noted that three types of flags are illustrated here as the normal condition code flags other than the flag 104d that holds the condition code for the conditional execution instruction. However, regarding the type and the number of this part,
It is clear that the number is not limited to a specific number and may be omitted altogether if unnecessary. It is also clear that the number of signals 116 for generating the status signal 202 may differ from the number of individually reflected condition code flags.

【0021】次に、前述した図15のフローチャートの
処理手順を本発明によるアセンブラ的なニモニックで表
現したプログラム例を図4に示す。条件付き演算命令を
実行するにあたっては、図4の1行目(SET CSR[2:0]
=101)に書かれているように、まずコンディション・セ
レクト・レジスタ103(CSR)に選択すべき条件を
規定する情報を設定する(条件選択手段)。ここでは、
コンディション・セレクト・レジスタ103(CSR)
の第2ビット,第1ビット,第0ビットがそれぞれ1,
0,1、すなわち、結果が正数(0を含む)であること
を条件としている。前述の条件付き実行命令用のコンデ
ィション・コードを保持する手段にどんなコンディショ
ンを反映させるかを予め選択する命令として、コンディ
ション・セレクト・レジスタ103(CSR)内の各ビ
ットにデータを直接セットする特別の命令を新しく設け
ている。具体的な動作としては、新しいセット命令から
デコードされた選択情報をコンディション・セレクト・
レジスタ103(CSR)の各ビット103a,103
b,103cに対応してコード化し、それをデータバス
に出力して制御信号108をイネーブルにして書き込む
方法が考えられる。
Next, FIG. 4 shows an example of a program in which the processing procedure of the flowchart of FIG. 15 described above is expressed by an assembler-like mnemonic according to the present invention. When executing a conditional operation instruction, the first line in Figure 4 (SET CSR [2: 0]
= 101), first, information that defines the condition to be selected is set in the condition select register 103 (CSR) (condition selecting means). here,
Condition select register 103 (CSR)
The second bit, the first bit, and the 0th bit of
The condition is 0, 1, that is, the result is a positive number (including 0). As an instruction for preselecting what kind of condition is reflected in the means for holding the condition code for the conditional execution instruction described above, a special data is set directly in each bit in the condition select register 103 (CSR). New instructions are provided. As a concrete operation, the selection information decoded from the new set instruction is condition selected,
Each bit 103a, 103 of the register 103 (CSR)
A method is conceivable in which encoding is performed corresponding to b and 103c, and the encoded data is output to the data bus to enable the control signal 108 and write.

【0022】しかしコンディション・セレクト・レジス
タ103(CSR)に選択すべき条件を規定する情報を
設定する方法は、上述したように特に新しいセット命令
を追加しなくても、レジスタ・ファイル102またはメ
モリ101に格納されているデータをデータ転送命令に
よって送り込む方法でも実現できる。またここではコン
ディション・セレクト・レジスタ103(CSR)を構
成するフラグビットは3ビットで示しているが、ビット
数は情報処理装置が条件付き演算命令に必要としている
条件の種類を全て区別できればいくらでも構わない。こ
こでは例として8種類の条件のうちから1つを選択する
コンディション・セレクト・レジスタ103(CSR)
を構成する各ビットの定義例を図3に示してある。この
定義例では、結果が0でないときは000,結果が0の
ときは001,結果がオーバフローしたときは010,
結果がオーバフローしていないときは011,結果が負
数のときは100,結果が正数(0を含む)のときは1
01,キャリーが生成されたときは110,キャリーが
生成されなかったときは111としている。
However, the method of setting the information defining the condition to be selected in the condition select register 103 (CSR) is as described above, without adding a new set instruction in particular, to the register file 102 or the memory 101. It can also be realized by a method of sending the data stored in the memory by a data transfer command. Further, here, the flag bits constituting the condition select register 103 (CSR) are shown as 3 bits, but the number of bits may be any number as long as it can distinguish all kinds of conditions required by the information processing device for the conditional operation instruction. Absent. Here, as an example, the condition select register 103 (CSR) that selects one of eight kinds of conditions
FIG. 3 shows an example of definition of each bit constituting the. In this definition example, 000 when the result is not 0, 001 when the result is 0, 010 when the result overflows,
011 when the result does not overflow, 100 when the result is a negative number, 1 when the result is a positive number (including 0)
01, 110 when a carry is generated, and 111 when a carry is not generated.

【0023】コンディション・セレクト・レジスタ10
3(CSR)の各ビット103a(CS0),103b
(CS1),103c(CS2)に書き込まれた情報
は、以後新たに別の情報によって書き換えられるか、ま
たはリセット処理動作などによって初期化されるまで保
持され続ける。コンディション・セレクト・レジスタ1
03(CSR)の各ビット103a,103b,103
cに選択すべき条件を規定する情報が設定されると、そ
の情報をデコーダ200で選択されたコンディション・
コード情報をコンディション・コード・レジスタ104
(CCR)に伝える選択情報信号118に変換する。こ
の変換過程は必ずしも必要という訳ではなく、103
a,103b,103cに保持されている状態をそのま
ま選択情報信号118として出力しても構わない。しか
しその場合は、コンディション・コード・レジスタ10
4(CCR)内のビット104dに格納する状態信号2
02を生成する全ての処理を条件生成/選択回路201
で行うことになる。
Condition select register 10
3 (CSR) bits 103a (CS0) and 103b
The information written in (CS1) and 103c (CS2) continues to be held until it is newly rewritten by another information or initialized by a reset processing operation or the like. Condition select register 1
03 (CSR) bits 103a, 103b, 103
When the information defining the condition to be selected is set in c, the information on the condition selected by the decoder 200 is set.
The code information is stored in the condition code register 104.
(CCR) to select information signal 118. This conversion process is not always necessary, and is 103
The states held in a, 103b, and 103c may be directly output as the selection information signal 118. However, in that case, the condition code register 10
Status signal 2 to be stored in bit 104d in 4 (CCR)
The condition generation / selection circuit 201 performs all the processes for generating 02.
Will be done in.

【0024】コンディション・セレクト・レジスタ10
3(CSR)の各ビット103a,103b,103c
に選択すべき条件を規定する情報が設定された後、コン
ディション・コード・レジスタ104(CCR)内のビ
ット104dは、コンディション・コードが更新される
可能性のある演算命令が実行される度にコンディション
・セレクト・レジスタ103(CSR)に保持されてい
る情報に基づいてその内容が更新される。すなわち、図
4の2行目に書かれているように、コンディション・コ
ードが更新される可能性のある演算命令(inst.1)が算
術論理演算器105で実行されると、コンディション・
コード・レジスタ104(CCR)内の条件生成/選択
回路201は、算術論理演算回路105から送られてき
た様々な演算結果のコンディション・コード情報116
と、コンディション・セレクト・レジスタ103(CS
R)からの選択情報信号118によってフラグ104d
に入力すべき状態信号202を生成する。
Condition select register 10
3 (CSR) bits 103a, 103b, 103c
After the information defining the conditions to be selected is set, the bit 104d in the condition code register 104 (CCR) indicates that the condition code is updated each time an operation instruction is executed. The content is updated based on the information held in the select register 103 (CSR). That is, as shown in the second line of FIG. 4, when an arithmetic instruction (inst.1) whose condition code may be updated is executed by the arithmetic logic operation unit 105, the condition
The condition generation / selection circuit 201 in the code register 104 (CCR) uses the condition code information 116 of various operation results sent from the arithmetic logic operation circuit 105.
And the condition select register 103 (CS
Flag 104d according to the selection information signal 118 from R)
A state signal 202 to be input to

【0025】図15の処理手順では次に演算結果が正数
(0を含む)であるかどうかを条件とした演算命令が必
要であるので、図3に示された正数条件コード「10
1」が各ビット103a,103b,103cに保持さ
れており、条件生成/選択回路201は演算結果のコン
ディション・コード情報116のうちの信号116aの
反転情報を状態信号202として出力する。すなわちネ
ガティブ信号116aが「偽」のとき、状態信号202
は「真」状態を出力する。状態信号202はそのままフ
ラグ104dに入力される。コンディション・コード・
レジスタ104(CCR)内の他のフラグ104a,1
04b,104cにはそれぞれ信号116a,116
b,116cが入力される。続いて、図4の3行目の条
件付き演算命令(if P inst.2)が実行されると、前述
したように2行目の演算命令の演算結果が正数(0を含
む)かどうかが既にフラグ104dに保持されているの
で、フラグ104dが「真」状態ならば指定された演算
を実行し、「偽」状態ならば実行しないでそのまま次の
4行目の命令(inst.3)の実行に移る。
Since the processing procedure of FIG. 15 requires an operation instruction that determines whether the operation result is a positive number (including 0), the positive condition code "10" shown in FIG.
1 ”is held in each bit 103a, 103b, 103c, and the condition generation / selection circuit 201 outputs the inversion information of the signal 116a of the condition code information 116 of the operation result as the state signal 202. That is, when the negative signal 116a is "false", the status signal 202
Outputs a "true" state. The status signal 202 is directly input to the flag 104d. Condition code
Other flags 104a, 1 in register 104 (CCR)
04b and 104c have signals 116a and 116, respectively.
b and 116c are input. Subsequently, when the conditional operation instruction (if P inst.2) in the third line of FIG. 4 is executed, whether the operation result of the operation instruction in the second line is a positive number (including 0) as described above. Has already been held in the flag 104d, so if the flag 104d is in the "true" state, the specified operation is executed, and if it is in the "false" state, it is not executed and the next instruction in the fourth line (inst.3) is executed. Move on to.

【0026】図5に本発明における条件付き演算命令の
一例を示す。同図において、50は命令コード、51は
条件指定フィールド、52は条件指定フィールドの具体
的なコード定義例を示している。ここでは、命令コード
中に条件を指定する条件指定フィールドとして1ビット
設け、該1ビットの条件指定フィールドの値によって該
命令を無条件に実行するのか(0の場合)、条件付きで
実行するのか(1の場合)を指定した例である。条件付
きで実行するとは、選択された条件情報を保持する手段
(条件情報保持手段:コンディション・セレクト・レジ
スタ103(CSR))に保持されている条件が真の場
合にのみ所要の演算処理を実行することを意味してい
る。
FIG. 5 shows an example of conditional operation instructions according to the present invention. In the figure, 50 is an instruction code, 51 is a condition designation field, and 52 is a concrete code definition example of the condition designation field. Here, 1 bit is provided as a condition specifying field for specifying a condition in the instruction code, and whether the instruction is executed unconditionally (in the case of 0) or is executed conditionally depending on the value of the 1-bit condition specifying field. This is an example in which (in the case of 1) is designated. Executing conditionally means that the required arithmetic processing is executed only when the condition held in the means for holding the selected condition information (condition information holding means: condition select register 103 (CSR)) is true. It means to do.

【0027】図15では、与えられた条件が「真」の時
のみ追加的な処理を実行し、「偽」の時は追加処理を行
わないフローを示しているが、図6に示すように「偽」
の時も別の処理がある場合が考えられる。図6の処理手
順をアセンブラ的なニモニックで表現したプログラム例
を図7に示す。図6において、まずステップ60で算術
演算1を実行し(図7の1行目)、ステップ61でその
演算結果を判定し、演算結果が正数(0を含む)であれ
ば(すなわち負数でなければ)ステップ62で動作2a
を実行し(図7の3行目)、演算結果が正数(0を含
む)でなければ(すなわち負数であれば)ステップ63
でステップ62とは異なる動作2bを実行し(図7の5
行目)、ステップ62またはステップ63を実行した後
にステップ64において動作3を実行する(図7の6行
目)。図7のプログラム例では与えられた条件の真/偽
に関わらず、必ず1回は分岐命令を実行することにな
る。
FIG. 15 shows a flow in which the additional processing is executed only when the given condition is "true", and the additional processing is not executed when the given condition is "false". As shown in FIG. "false"
At the time of, there may be another process. FIG. 7 shows a program example in which the processing procedure of FIG. 6 is expressed by an assembler-like mnemonic. In FIG. 6, first, the arithmetic operation 1 is executed in step 60 (first line in FIG. 7), the operation result is determined in step 61, and if the operation result is a positive number (including 0) (that is, it is a negative number). If not) in step 62, operation 2a
Is executed (the third line in FIG. 7), and if the operation result is not a positive number (including 0) (that is, if it is a negative number), step 63
Then, the operation 2b different from step 62 is executed (5 in FIG. 7).
Line 6), after executing step 62 or step 63, operation 3 is executed in step 64 (6th line in FIG. 7). In the program example of FIG. 7, the branch instruction is always executed once regardless of whether the given condition is true or false.

【0028】このような例についても、本発明を適用す
ることが可能である。本発明による図6の処理手順をア
センブラ的なニモニックで表現したプログラム例を図8
に示す。図8のプログラム例によると、その2行目(if
P inst.2a)および3行目(if N inst.2b)に示されて
いるように分岐命令を用いず条件付き演算命令を用いて
いる。ここで注意すべきことは、図8の2行目の条件付
き演算命令(if P inst.2a)が条件が「真」で実行され
た時、演算結果によってレジスタ104(CCR)のコ
ンディション・コードを更新しないようにすることであ
る。この制御は非常に容易であり、例えば条件付き演算
命令が実行された時は制御信号122をディセーブル状
態にしておくことにより、コンディション・コードの更
新が行なわれないようにすることができる。このような
制御は、前述した図15のような処理において同様に行
なっても全く問題ないので、無条件演算実行時はコンデ
ィション・コードを更新することとし、条件付き演算実
行時は条件の成立/不成立に関わらずコンディション・
コードを更新しないことにすれば、図15および図6の
双方の処理を本発明を用いて同一のプロセッサで実現で
きる。
The present invention can be applied to such an example. FIG. 8 is a program example in which the processing procedure of FIG. 6 according to the present invention is expressed by an assembler-like mnemonic.
Shown in According to the program example of FIG. 8, the second line (if
P inst.2a) and the third line (if N inst.2b) do not use branch instructions but use conditional operation instructions. It should be noted here that, when the conditional operation instruction (if P inst.2a) in the second line of FIG. 8 is executed with the condition being “true”, the condition code of the register 104 (CCR) depends on the operation result. Is not to update. This control is very easy. For example, when the conditional operation instruction is executed, the control signal 122 is disabled so that the condition code is not updated. There is no problem in performing such control in the same manner as in the processing shown in FIG. 15 described above. Therefore, the condition code is updated when executing the unconditional operation, and the condition is satisfied when executing the conditional operation. Regardless of failure,
If the code is not updated, the processing of both FIG. 15 and FIG. 6 can be realized by the same processor using the present invention.

【0029】図9は、条件付き演算命令の他の例であ
り、複数の条件を設定するとともに、命令中に条件を指
定する条件指定フィールド71を設けたものである。こ
の条件指定フィールドの値で指定する所定の条件が
「真」のときに対応する所要の演算を行うようにしたも
のである。条件指定フィールド71のコード定義例とし
ては、例えば、図9の72に示すように、無条件で実行
する選択肢(72の「00」)と、前記選択された条件
情報を保持する手段で保持されている条件1が「真」の
場合に所要の演算処理を実行する選択肢(72の「0
1」)と、前記選択された条件情報を保持する手段で保
持されている条件2が「真」の場合に所要の演算処理を
実行する選択肢(72の「10」)と、前記選択された
条件情報を保持する手段で保持されている条件3が
「真」の場合に所要の演算処理を実行する選択肢(72
の「11」)とを有している。
FIG. 9 is another example of a conditional operation instruction, in which a plurality of conditions are set and a condition designation field 71 for designating the conditions is provided in the instruction. When a predetermined condition designated by the value of the condition designation field is "true", a required calculation corresponding to the condition is performed. As an example of the code definition of the condition designation field 71, for example, as shown at 72 in FIG. 9, an option to be executed unconditionally (“00” of 72) and a means for holding the selected condition information are held. Option 1 to execute the required arithmetic processing when the condition 1 is “true” (“0 of 72”).
1 ”) and an option (“ 10 ”of 72) for executing required arithmetic processing when the condition 2 held by the means for holding the selected condition information is“ true ”, and the selected The option (72) for executing the required arithmetic processing when the condition 3 held by the means for holding the condition information is “true”.
"11") and.

【0030】また、図10は、条件付き演算命令の別の
例である。この条件付き演算命令は命令中に条件を指定
する条件指定フィールド81を持っている。条件指定フ
ィールド81のコード定義例としては、例えば、同図8
2に示すように、無条件で実行する選択肢(82の「0
0」)と、前記選択された条件情報を保持する手段で保
持されている条件1が「真」の場合に所要の演算処理を
実行する選択肢(82の「01」)と、保持されている
条件1が「偽」の場合に所要の演算処理を実行する選択
肢(82の「10」)とを有している。
FIG. 10 shows another example of the conditional operation instruction. This conditional operation instruction has a condition specifying field 81 for specifying a condition in the instruction. An example of the code definition of the condition designation field 81 is shown in FIG.
As shown in 2, the unconditionally executed options (82 “0
0 ”) and the option (“ 01 ”of 82) for executing the required arithmetic processing when the condition 1 held by the means for holding the selected condition information is“ true ”. It has an option (“10” of 82) to execute the required arithmetic processing when the condition 1 is “false”.

【0031】本発明の実施例は他にも様々な形式が考え
られる。例えば図2の別の実施例として図11に示すよ
うに、図2の条件生成/選択回路201をセレクタ11
00で構成し、算術論理演算回路105から送られてく
る信号群116の中の1つを該セレクタ1100で選択
して信号202として出力し、フラグ104dに入力さ
せてもよい。この場合、コンディション・セレクト・レ
ジスタ103(CSR)のコード定義例としては、図1
2に示すように信号群116のどれを選ぶかを指定する
ようにすればよい。図12の定義例では、ゼロ判定信号
選択のときは00,オーバフロー判定信号選択のときは
01,正負判定信号選択のときは10,キャリー発生判
定信号選択のときは11である。図11の実施例では、
コンディション・セレクト・レジスタ103(CSR)
は2ビットのレジスタになっているが、ビット数につい
てはこの実施例では特に2ビットでなければならないと
いう訳ではなく、例えばより多くのコンディションから
選びたい場合にはもっとビット数を増やして構わないこ
とは明白である。
Various other embodiments of the present invention are possible. For example, as shown in FIG. 11 as another embodiment of FIG. 2, the condition generation / selection circuit 201 of FIG.
00, and one of the signal groups 116 sent from the arithmetic logic operation circuit 105 may be selected by the selector 1100, output as the signal 202, and input to the flag 104d. In this case, an example of the code definition of the condition select register 103 (CSR) is shown in FIG.
As shown in FIG. 2, which of the signal groups 116 should be selected may be designated. In the definition example of FIG. 12, the value is 00 when the zero determination signal is selected, 01 when the overflow determination signal is selected, 10 when the positive / negative determination signal is selected, and 11 when the carry generation determination signal is selected. In the example of FIG. 11,
Condition select register 103 (CSR)
Is a 2-bit register, but the number of bits does not necessarily have to be 2 bits in this embodiment. For example, if it is desired to select from more conditions, the number of bits may be increased. That is clear.

【0032】コンディション・セレクト・レジスタ10
3(CSR)やコンディション・コード・レジスタ10
4(CCR)の構成方法についても様々な方法が考えら
れる。図13および図14は、両者を単一のレジスタで
構成した一実施例である。図13中、1500は図1の
コンディション・セレクト・レジスタ103(CSR)
とコンディション・コード・レジスタ104(CCR)
を合体させたコントロール・レジスタCRであり、15
01はコントロール・レジスタ1500とデータバス1
21とを接続しているデータパス、1502はコントロ
ール・レジスタ1500と制御信号生成回路106とを
接続しているデータパスである。残りは図1および図2
と同一である。この実施例は、コンディション・セレク
ト用のビットとコンディション・コードのビットが同一
のレジスタ内でビット位置が異なる以外、具体的な動作
は先述の第一の実施例と同様である。
Condition select register 10
3 (CSR) and condition code register 10
Various methods can be considered for the configuration method of 4 (CCR). 13 and 14 show an embodiment in which both are configured by a single register. 13, 1500 is the condition select register 103 (CSR) of FIG.
And condition code register 104 (CCR)
Is a control register CR that combines
01 is control register 1500 and data bus 1
21 is a data path connecting the control register 1500 and the control signal generating circuit 106. 1 and 2 for the rest
Is the same as In this embodiment, the specific operation is the same as that of the first embodiment described above except that the bit for condition select and the bit of the condition code are different in the same register.

【0033】以上の実施例では、コンディション・セレ
クト・レジスタ103(CSR)、コンディション・コ
ード・レジスタ104(CCR)、コントロール・レジ
スタ1500(CR)はすべて通常のレジスタであるこ
とを前提として述べてきたが、例えばメモリマップ上に
マッピングされたレジスタであってもよいことは明らか
である。
In the above embodiments, the condition select register 103 (CSR), the condition code register 104 (CCR), and the control register 1500 (CR) are all assumed to be normal registers. Can obviously be a register mapped on a memory map, for example.

【0034】[0034]

【発明の効果】以上述べたように、本発明によれば、通
常のコンディション・コード・フラグ以外に条件付き実
行命令用のコンディション・コードを保持する手段を設
け、該条件付き実行命令用のコンディション・コードを
保持する手段にどんなコンディションを反映させるかを
予め選択する命令およびその選択情報を保持する手段を
設けることにより、命令の種類やオペランドの自由度の
制限による性能低下、または命令コード長の増大による
プログラムメモリ容量増加などの問題発生することなく
処理効率の向上を図ることができる条件付き演算命令を
サポートすることができる。
As described above, according to the present invention, means for holding a condition code for a conditional execution instruction in addition to a normal condition code flag is provided, and the condition for the conditional execution instruction is provided. -By providing an instruction for preselecting what kind of condition is reflected in the means for holding the code and a means for holding the selection information, performance degradation due to the limitation of the instruction type and the degree of freedom of the operand, or the instruction code length It is possible to support a conditional operation instruction capable of improving processing efficiency without causing a problem such as an increase in program memory capacity due to the increase.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の第1の実施例である。FIG. 1 is a first embodiment of the present invention.

【図2】本発明の第1の実施例の部分的な詳細ブロック
図である。
FIG. 2 is a partial detailed block diagram of the first embodiment of the present invention.

【図3】コンディション・セレクト・レジスタの各ビッ
トの定義例である。
FIG. 3 is a definition example of each bit of a condition select register.

【図4】本発明を用いて図15の処理内容をアセンブラ
的なニモニックで表現したプログラム例である。
FIG. 4 is an example of a program in which the processing content of FIG. 15 is expressed by an assembler-like mnemonic using the present invention.

【図5】1ビットの条件指定フィールドを持つ命令コー
ド例である。
FIG. 5 is an example of an instruction code having a 1-bit condition designation field.

【図6】条件付き実行動作を含む第2のフローチャート
図である。
FIG. 6 is a second flowchart including a conditional execution operation.

【図7】図6の処理内容をアセンブラ的なニモニックで
表現したプログラム例である。
FIG. 7 is an example of a program in which the processing content of FIG. 6 is expressed by an assembler-like mnemonic.

【図8】本発明を用いて図6の処理内容をアセンブラ的
なニモニックで表現したプログラム例である。
FIG. 8 is an example of a program in which the processing contents of FIG. 6 are represented by an assembler-like mnemonic using the present invention.

【図9】2ビットの条件指定フィールドを持つ命令コー
ド例である。
FIG. 9 is an example of an instruction code having a 2-bit condition specification field.

【図10】2ビットの条件指定フィールドを持つ第2の
命令コード例である。
FIG. 10 is a second instruction code example having a 2-bit condition designation field.

【図11】本発明の図1の実施例の別な部分的な詳細ブ
ロック図である。
11 is another partial detailed block diagram of the embodiment of FIG. 1 of the present invention. FIG.

【図12】コンディション・セレクト・レジスタの各ビ
ットの第2の定義例である。
FIG. 12 is a second definition example of each bit of the condition select register.

【図13】本発明の第2の実施例を示す図である。FIG. 13 is a diagram showing a second embodiment of the present invention.

【図14】本発明の第2の実施例の部分的な詳細ブロッ
ク図である。
FIG. 14 is a partial detailed block diagram of a second embodiment of the present invention.

【図15】条件付き実行動作を含むフローチャート例で
ある。
FIG. 15 is an exemplary flowchart including a conditional execution operation.

【図16】図15の処理内容をアセンブラ的なニモニッ
クで表現したプログラム例である。
16 is an example of a program in which the processing content of FIG. 15 is expressed by an assembler-like mnemonic.

【図17】図15の処理内容をアセンブラ的なニモニッ
クで表現した別のプログラム例である。
FIG. 17 is another program example in which the processing content of FIG. 15 is expressed by an assembler-like mnemonic.

【図18】3ビットの条件指定フィールドを持つ命令コ
ード例である。
FIG. 18 is an example of an instruction code having a 3-bit condition designation field.

【符号の説明】[Explanation of symbols]

100:本発明を適用した情報処理装置の演算実行回路 101:データを格納しているメモリ 102:演算に必要なソースデータや演算結果を格納す
るレジスタファイル 103:条件付き演算命令に使用するために選択された
コンディション・コード情報を保持するコンディション
・セレクト・レジスタ(CSR) 104:演算結果のコンディション・コードおよび条件
付き実行命令用のコンディション・コードを保持するコ
ンディション・コード・レジスタ(CCR) 105:様々な算術演算や論理演算を実行する演算器
(ALU) 106:演算実行に必要な制御信号を生成する制御信号
生成回路 107:メモリ101の読み出し,書き込みを制御する
信号 108:コンディション・セレクト・レジスタ103
(CSR)の読み出し,書き込みを制御する信号 109:レジスタ・ファイル内の各レジスタ毎のデータ
バス121あるいは算術論理演算器105とのデータの
入出力を制御する信号群 110:算術論理演算器105で実行する演算を選択
し,実行させるための制御信号群 111:メモリ101とデータバス121とを接続して
いるデータパス 112:レジスタ・ファイル102とデータバス121
とを接続しているデータパス 113,114:レジスタ・ファイル102から算術論
理演算器105へ供給されるソース・データ 115:算術論理演算器105で実行された演算結果を
レジスタ・ファイル102へ書き込むべきデスティネー
ション・データ 116:算術論理演算器105で実行された演算結果の
コンディション・コードをコンディション・コード・レ
ジスタ104(CCR)に反映させるのに必要なデータ
信号群 117:コンディション・セレクト・レジスタ103
(CSR)とデータバス121とを接続しているデータ
パス 118:コンディション・セレクト・レジスタ103
(CSR)に保持された選択されたコンディション・コ
ード情報をコンディション・コード・レジスタ104
(CCR)に伝える信号 119:条件付き演算命令や通常の条件分岐命令の実行
制御のために、コンディション・コード・レジスタ10
4(CCR)の保持情報を制御信号生成回路106に伝
えるための信号 120:コンディション・コード・レジスタ104(C
CR)とデータバス121とを接続しているデータパス 121:データバス 122:コンディション・コード・レジスタ104(C
CR)の読み出し,書き込みを制御する信号 103a,103b,103c:コンディション・セレ
クト・レジスタ103を構成するフラグビット 104a:演算結果が正か負かを示すフラグ(N) 104b:演算結果がゼロかどうかを示すフラグ(Z) 104c:演算結果がプロセッサが表現できるデータの
範囲を超えたことを示すフラグ(V) 104d:条件付き実行命令用のコンディション・コー
ドを保持するフラグ 116a,116b,116c,116d:算術論理演
算回路105から送られてくる演算結果のコンディショ
ン・コードをコンディション・コード・レジスタ104
(CCR)に反映させるのに必要な個別のデータ信号 200:各フラグビットの情報をデコードして条件付き
演算命令で指定する条件をコンディション・コード・レ
ジスタ104(CCR)に送る選択情報信号118を生
成する回路 201:データ信号群116a,116b,116c,
116dおよびコンディション・セレクト・レジスタ1
03(CSR)から送られてきた選択情報信号118を
用いてフラグ104dに入力すべき状態信号202を生
成する条件生成/選択回路 1500:コンディション・セレクト・ビット,演算結
果のコンディション・コードおよび条件付き実行命令用
のコンディション・コードを保持するコントロール・レ
ジスタ(CR) 1501:コントロール・レジスタ1500とデータバ
ス121とを接続しているデータパス 1502:コントロール・レジスタ1500の読み出
し,書き込みを制御する信号
100: Operation execution circuit of information processing apparatus to which the present invention is applied 101: Memory for storing data 102: Register file for storing source data and operation result necessary for operation 103: For use in conditional operation instruction Condition select register (CSR) 104 that holds the selected condition code information: Condition code register (CCR) 105 that holds the condition code of the operation result and the condition code for the conditional execution instruction 105: Various Unit (ALU) 106 for executing various arithmetic and logical operations 106: Control signal generation circuit for generating control signals necessary for execution of arithmetic 107: Signal for controlling reading and writing of memory 101 108: Condition select register 103
Signals for controlling reading and writing of (CSR) 109: Signal group for controlling data input / output to / from the data bus 121 for each register in the register file or the arithmetic logic operation unit 105 110: In the arithmetic logic operation unit 105 Control signal group for selecting and executing operation to be executed 111: Data path connecting memory 101 and data bus 121 112: Register file 102 and data bus 121
A data path 113 and 114 connecting with and: Source data supplied from the register file 102 to the arithmetic logic unit 105. 115: A calculation result executed by the arithmetic logic unit 105 should be written to the register file 102. Destination data 116: Data signal group 117 required to reflect the condition code of the operation result executed by the arithmetic logic operator 105 in the condition code register 104 (CCR) 117: Condition select register 103
(CSR) and the data bus 121 are connected to each other. Data path 118: Condition select register 103
The selected condition code information held in (CSR) is stored in the condition code register 104.
(CCR) signal 119: Condition code register 10 for controlling execution of conditional arithmetic instructions and ordinary conditional branch instructions
4 (CCR) signal for transmitting the holding information to the control signal generation circuit 106: Condition code register 104 (C
CR) and the data path connecting the data bus 121: 121: data bus 122: condition code register 104 (C
(CR) read / write control signals 103a, 103b, 103c: flag bits constituting the condition select register 103 104a: flag (N) 104b indicating whether the operation result is positive or negative 104b: whether the operation result is zero Flag (Z) 104c: A flag (V) 104d indicating that the operation result exceeds the range of data that can be expressed by the processor 104d: A flag 116a, 116b, 116c, 116d holding a condition code for a conditional execution instruction : The condition code of the operation result sent from the arithmetic logic operation circuit 105 is stored in the condition code register 104.
Individual data signal necessary to reflect in (CCR) 200: Select information signal 118 for decoding the information of each flag bit and sending the condition designated by the conditional operation instruction to the condition code register 104 (CCR) Generating circuit 201: Data signal groups 116a, 116b, 116c,
116d and condition select register 1
03 (CSR) to generate a status signal 202 to be input to the flag 104d using the selection information signal 118 1500: Condition select bit, condition code of operation result and conditional Control register (CR) 1501 for holding condition code for execution instruction 1501: Data path connecting control register 1500 and data bus 121 1502: Signal for controlling read / write of control register 1500

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 データ処理を実行する演算回路と、該デ
ータ処理に必要なソースデータを供給する手段と、演算
結果を格納する演算結果格納手段と、指定された条件が
成立している時のみ演算を実行する条件付き演算命令を
実行する制御手段とを少なくとも具備するデータ処理装
置において、該条件付き演算命令に使われるべき複数の
条件から少なくとも1つの条件を選択する条件選択手段
と、該条件選択手段で選択された条件情報を保持する条
件情報保持手段と、少なくとも該選択された条件に基づ
いて演算結果の性質を表す情報を保持する手段をさらに
具備し、該条件付き演算命令は該選択された条件のうち
のひとつを指定して条件が成立しているときのみ、所要
の演算処理を実行する機能を有することを特徴とするデ
ータ処理装置。
1. An arithmetic circuit for executing data processing, means for supplying source data necessary for the data processing, arithmetic result storage means for storing arithmetic results, and only when a specified condition is satisfied. In a data processing apparatus comprising at least a control means for executing a conditional operation instruction for executing an operation, a condition selecting means for selecting at least one condition from a plurality of conditions to be used for the conditional operation instruction, and the condition. The apparatus further comprises condition information holding means for holding the condition information selected by the selecting means, and means for holding at least information indicating the property of the operation result based on the selected condition, and the conditional operation instruction is the selection A data processing device having a function of executing a required arithmetic processing only when one of the specified conditions is specified and the condition is satisfied.
【請求項2】 前記演算結果の性質を表す情報を保持す
る保持手段は、前記選択された条件に基づいて演算結果
の性質を表す情報以外に恒常的に演算結果の性質を表す
情報を同時に保持する手段を持つことを特徴とする請求
項1記載のデータ処理装置。
2. The holding means for holding the information representing the property of the operation result constantly holds the information representing the property of the operation result at the same time in addition to the information representing the property of the operation result based on the selected condition. The data processing device according to claim 1, further comprising:
【請求項3】 前記条件選択手段は、恒常的に演算結果
の性質を表す複数の情報の中からひとつを選択すること
を特徴とする請求項1記載のデータ処理装置。
3. The data processing apparatus according to claim 1, wherein the condition selecting means constantly selects one from a plurality of pieces of information representing the property of the operation result.
【請求項4】 前記条件付き演算命令は、命令コード中
に条件を指定するフィールドを持ち、該条件を指定する
フィールドは、無条件で実行する選択肢と、前記選択さ
れた条件情報を保持する手段で保持されている条件が真
の場合のみ所要の演算処理を実行する選択肢を少なくと
も持つことを特徴とする請求項1記載のデータ処理装
置。
4. The conditional operation instruction has a field for specifying a condition in an instruction code, and the field for specifying the condition holds an option to be executed unconditionally and the selected condition information. 2. The data processing apparatus according to claim 1, wherein the data processing apparatus has at least an option to execute a required arithmetic processing only when the condition held in is true.
【請求項5】 前記条件付き演算命令は、命令コード中
に条件を指定するフィールドを持ち、該条件を指定する
フィールドは、無条件で実行する選択肢と、前記選択さ
れた条件情報を保持する手段で保持されている条件が
「真」の場合に所要の演算処理を実行する選択肢と、
「偽」の場合に所要の演算処理を実行する選択肢とを少
なくとも持つことを特徴とする請求項1記載のデータ処
理装置。
5. The conditional operation instruction has a field for specifying a condition in an instruction code, and the field for specifying the condition holds an option to be executed unconditionally and the selected condition information. The option to execute the required arithmetic processing when the condition held in is true,
The data processing device according to claim 1, wherein the data processing device has at least an option to execute a required arithmetic process in the case of "false".
【請求項6】 前記選択された条件情報を保持する手段
は、前記演算結果の性質を表す情報を保持する手段と同
一のレジスタで構成されていることを特徴とする請求項
1記載のデータ処理装置。
6. The data processing according to claim 1, wherein the means for holding the selected condition information is composed of the same register as the means for holding the information indicating the property of the operation result. apparatus.
JP11276795A 1995-05-11 1995-05-11 Data processing device Expired - Fee Related JP3454393B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11276795A JP3454393B2 (en) 1995-05-11 1995-05-11 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11276795A JP3454393B2 (en) 1995-05-11 1995-05-11 Data processing device

Publications (2)

Publication Number Publication Date
JPH08305563A true JPH08305563A (en) 1996-11-22
JP3454393B2 JP3454393B2 (en) 2003-10-06

Family

ID=14595010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11276795A Expired - Fee Related JP3454393B2 (en) 1995-05-11 1995-05-11 Data processing device

Country Status (1)

Country Link
JP (1) JP3454393B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062633B1 (en) 1998-12-16 2006-06-13 Matsushita Electric Industrial Co., Ltd. Conditional vector arithmetic method and conditional vector arithmetic unit
JP2010067278A (en) * 1999-01-28 2010-03-25 Altera Corp Methods and apparatus to support conditional execution in processor
US7886133B2 (en) 2006-08-03 2011-02-08 Nec Corporation Information processing apparatus and method for accelerating information processing
JP2013254237A (en) * 2012-06-05 2013-12-19 Fujitsu Ltd Processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062633B1 (en) 1998-12-16 2006-06-13 Matsushita Electric Industrial Co., Ltd. Conditional vector arithmetic method and conditional vector arithmetic unit
JP2010067278A (en) * 1999-01-28 2010-03-25 Altera Corp Methods and apparatus to support conditional execution in processor
US7886133B2 (en) 2006-08-03 2011-02-08 Nec Corporation Information processing apparatus and method for accelerating information processing
JP2013254237A (en) * 2012-06-05 2013-12-19 Fujitsu Ltd Processor

Also Published As

Publication number Publication date
JP3454393B2 (en) 2003-10-06

Similar Documents

Publication Publication Date Title
US20020062436A1 (en) Method for providing extended precision in simd vector arithmetic operations
EP1267256A2 (en) Conditional execution of instructions with multiple destinations
US6408377B2 (en) Dynamic allocation of resources in multiple microprocessor pipelines
JPH0636515B2 (en) Communication processor device
US5978822A (en) Circuit for rotating, left shifting, or right shifting bits
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
JPH1165844A (en) Data processor with pipeline bypass function
JP3237858B2 (en) Arithmetic unit
US6553474B2 (en) Data processor changing an alignment of loaded data
JPH05150979A (en) Immediate operand expansion system
JP4025493B2 (en) Instruction issuing device that issues instructions to the appropriate issuer
JP2006517322A (en) Method and apparatus for hazard detection and management in pipelined digital processors
JPH0673105B2 (en) Instruction pipeline type microprocessor
JP3479385B2 (en) Information processing device
JP3454393B2 (en) Data processing device
EP1499956B1 (en) Method and apparatus for swapping the contents of address registers
JPH08212075A (en) Information processor
JPH02162422A (en) Preference branch circuit
US6308262B1 (en) System and method for efficient processing of instructions using control unit to select operations
JP2812610B2 (en) Pipeline control method
JP2000112754A (en) Data processor
JPS63276126A (en) Instruction decoding circuit
JPH07200289A (en) Information processor
JPH03263222A (en) Microprogram branch processing system
JP2001034603A (en) Product-sum operation processor

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080725

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080725

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090725

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100725

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees