JP2001344100A - Central processing unit equipped with plural flag registers - Google Patents
Central processing unit equipped with plural flag registersInfo
- Publication number
- JP2001344100A JP2001344100A JP2000166722A JP2000166722A JP2001344100A JP 2001344100 A JP2001344100 A JP 2001344100A JP 2000166722 A JP2000166722 A JP 2000166722A JP 2000166722 A JP2000166722 A JP 2000166722A JP 2001344100 A JP2001344100 A JP 2001344100A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- flag
- unit
- flag register
- arithmetic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、データを処理する
中央演算処理装置に関し、演算結果を保持する複数のフ
ラグレジスタを有し、複数のフラグレジスタの状態に応
じて分岐処理を行う中央演算処理装置に関するものであ
る。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a central processing unit for processing data, comprising a plurality of flag registers for holding the operation results, and performing a branching process in accordance with the states of the plurality of flag registers. It concerns the device.
【0002】[0002]
【従来の技術】中央演算処理装置では、数値演算や数値
の比較等の命令を実行後、その命令に基づいた処理結果
がフラグレジスタにセットされる。従来の中央演算処理
装置の一実施形態を図1に示す。図1は、従来の中央演
算処理装置の構成を示すブロック図である。2. Description of the Related Art In a central processing unit, an instruction such as a numerical operation or a comparison of numerical values is executed, and a processing result based on the instruction is set in a flag register. One embodiment of a conventional central processing unit is shown in FIG. FIG. 1 is a block diagram showing a configuration of a conventional central processing unit.
【0003】従来の中央演算処理装置は、例えば、図1
に示すように、命令を解読する命令デコード部11、デ
ータの演算を行う演算器12、演算結果の状態を保持す
るフラグレジスタ13、フラグレジスタ13に保持した
内容を確認して条件分岐が成立するか否かを判断する分
岐条件判断部14を含む構成であった。A conventional central processing unit is, for example, shown in FIG.
As shown in (1), an instruction decoding unit 11 for decoding an instruction, a computing unit 12 for performing a data operation, a flag register 13 for holding a state of an operation result, and the contents held in the flag register 13 are checked to establish a conditional branch. The configuration includes the branch condition determination unit 14 that determines whether the condition is satisfied.
【0004】このように構成された中央演算処理装置
は、以下に説明するように動作する。まず、命令が命令
デコード部11に入力されると、命令デコード部11は
命令を解読(デコード)する。例えば、命令デコード部
11に入力された命令がCMP(比較)などの演算命令
の場合、命令デコード部11はこの命令を解読して、演
算器12に出力する。演算器12は演算処理を行い、そ
の処理結果をフラグレジスタ13に出力する。フラグレ
ジスタ13はこの処理結果の状態を保持する。The central processing unit configured as described above operates as described below. First, when an instruction is input to the instruction decoding unit 11, the instruction decoding unit 11 decodes the instruction. For example, when the instruction input to the instruction decoding unit 11 is an operation instruction such as a CMP (comparison), the instruction decoding unit 11 decodes the instruction and outputs the instruction to the arithmetic unit 12. The arithmetic unit 12 performs arithmetic processing and outputs the processing result to the flag register 13. The flag register 13 holds the state of the processing result.
【0005】そして、命令デコード部11に次に入力さ
れた命令が、JP(ジャンプ)などの条件分岐命令の場
合、命令デコーダ部11はこの命令を解読して、分岐条
件判断部14に出力する。分岐条件判断部14は、フラ
グレジスタ13に保持された内容を確認し、分岐条件が
成立するか否かを判断する。If the next instruction input to the instruction decoding unit 11 is a conditional branch instruction such as a JP (jump), the instruction decoder unit 11 decodes this instruction and outputs it to the branch condition determining unit 14. . The branch condition determining unit 14 checks the contents held in the flag register 13 and determines whether the branch condition is satisfied.
【0006】次に、図2に示した命令を従来の中央演算
処理装置で行う場合の処理手順について説明する。図2
(A)は、従来の中央演算処理装置で処理を行う場合に
実行する命令の一例である。図2に示した命令は、中央
演算処理装置に、Xの値が0以上かつ100以下ならば
XXの処理を行わせ、Xの値がそれ以外ならばYYの処
理を行わせるものである。Next, the processing procedure when the instruction shown in FIG. 2 is executed by a conventional central processing unit will be described. FIG.
(A) is an example of an instruction executed when processing is performed by a conventional central processing unit. The instruction shown in FIG. 2 causes the central processing unit to perform the processing of XX if the value of X is 0 or more and 100 or less, and to perform the processing of YY if the value of X is not otherwise.
【0007】まず、命令デコード部11は、Xと0との
比較命令を解読し、演算器12は、この命令に基づく演
算を実行する。そして、X≧0ならばフラグは’1’、
X<0ならばフラグは’0’として、その演算結果がフ
ラグレジスタ13にセットされる。その後、分岐処理部
14は、フラグレジスタ13にセットされた値を確認
し、フラグが’1’ならば、TMPにジャンプしてTM
Pの処理を行う。一方、フラグが’0’ならば、YYに
ジャンプしてYYの処理を行う。First, the instruction decoding unit 11 decodes a comparison instruction between X and 0, and the arithmetic unit 12 executes an operation based on this instruction. If X ≧ 0, the flag is “1”,
If X <0, the flag is set to “0” and the operation result is set in the flag register 13. After that, the branch processing unit 14 checks the value set in the flag register 13, and if the flag is “1”, jumps to TMP and sets TM
The processing of P is performed. On the other hand, if the flag is '0', the process jumps to YY and performs the processing of YY.
【0008】TMPにジャンプした場合、命令デコード
部11はXと100との比較命令を解読し、演算器12
はこの命令に基づく演算を実行する。そして、X≦10
0ならばフラグは’1’、X>100ならばフラグは’
0’として、その演算結果がフラグレジスタ13にセッ
トされる。その後、分岐処理部14でフラグレジスタ1
3にセットされた値を確認し、フラグが’1’ならば、
XXにジャンプしてXXの処理を行う。一方、フラグ
が’0’ならば、YYにジャンプしYYの処理を行う。When jumping to the TMP, the instruction decoding unit 11 decodes a comparison instruction between X and 100, and
Performs an operation based on this instruction. And X ≦ 10
If 0, the flag is' 1 '; if X> 100, the flag is'
As 0 ', the operation result is set in the flag register 13. After that, the branch processing unit 14 sets the flag register 1
Check the value set to 3 and if the flag is '1',
Jump to XX and perform XX processing. On the other hand, if the flag is '0', the process jumps to YY and performs YY processing.
【0009】このように、従来の中央演算処理装置は、
フラグレジスタの値を参照して、分岐条件の判断を行っ
ていた。As described above, the conventional central processing unit has:
The branch condition is determined with reference to the value of the flag register.
【0010】[0010]
【発明が解決しようとする課題】図1に示した従来の中
央演算処理装置では、図2に示した命令を実行する場
合、Xの値が0≦X≦100の範囲にある場合は、比較
命令を2回処理((CMPX,0)と(CMP X,1
00))を行うために、一旦、TMPにジャンプして、
そこで再び比較命令の実行処理を行っていた。この場
合、XXにジャンプしてXXの処理を行うためには、4
命令(1(CMP X,0)→2(JPGETMP)→
3(CMP X,100)→4(JPLE XX))を
実行しなければならない。In the conventional central processing unit shown in FIG. 1, when executing the instruction shown in FIG. 2, when the value of X is in the range of 0.ltoreq.X.ltoreq.100, a comparison is made. Process the instruction twice ((CMPX, 0) and (CMP X, 1
00)), jump to TMP once,
Therefore, the execution process of the comparison instruction is performed again. In this case, to jump to XX and perform XX processing, 4
Instruction (1 (CMP X, 0) → 2 (JPGETMP) →
3 (CMP X, 100) → 4 (JPLE XX)).
【0011】また、Xの値がX<0の範囲にある場合
は、YYにジャンプしてYYの処理を行うために、3命
令(1(CMP X,0)→2(JPGE TMP)→
3(JP YY))を実行しなければならない。When the value of X is in the range of X <0, three instructions (1 (CMP X, 0) → 2 (JPG TMP) →
3 (JP YY)).
【0012】さらに、Xの値がX>100の範囲にある
場合は、YYにジャンプしてYYの処理を行うために、
4命令(1(CMP X,0)→2(JPGE TM
P)→3(CMP X,100)→4(JP YY))
を実行しなければならない。Further, when the value of X is in the range of X> 100, the processing jumps to YY to perform YY processing.
4 instructions (1 (CMP X, 0) → 2 (JPGTM
P) → 3 (CMP X, 100) → 4 (JP YY))
Must be performed.
【0013】このように、従来は中央演算処理装置で簡
単な命令を実行する場合でも、中央演算処理装置では命
令を複数行って処理するため、中央演算処理装置の処理
速度が低下するという問題があった。As described above, even when a simple instruction is conventionally executed by a central processing unit, the central processing unit executes a plurality of instructions and processes the instruction, so that the processing speed of the central processing unit decreases. there were.
【0014】この問題に対して、特開平6−33778
3号公報には、異なるビット幅のデータに対する演算に
おいて、条件分岐実行のための処理のオーバヘッドをな
くすとともに、同一機能に対する命令コード割当てを少
なくできるデータ処理装置及びデータ処理方法に関する
技術が開示されている。特開平6−337783号公報
では、データ処理装置に、異なるビット幅のデータに対
する演算結果に基づくフラグ群を設け、分岐命令におい
て所定のデータ幅に対応するフラグ群を選択して条件分
岐判断を行うように構成されているので、条件分岐実行
のための処理のオーバヘッドをなくすとともに、従来と
同等の機能をより少ない命令コード数で実現している。To solve this problem, Japanese Patent Laid-Open Publication No.
Japanese Patent Application Laid-open No. 3 (1994) discloses a technique relating to a data processing apparatus and a data processing method capable of eliminating the overhead of processing for executing a conditional branch and reducing instruction code assignment for the same function in an operation on data having different bit widths. I have. In Japanese Patent Application Laid-Open No. Hei 6-337783, a data processor is provided with a flag group based on an operation result for data having different bit widths, and a conditional instruction is determined by selecting a flag group corresponding to a predetermined data width in a branch instruction. With such a configuration, the overhead of the process for executing the conditional branch is eliminated, and the same function as that of the related art is realized with a smaller number of instruction codes.
【0015】しかしながら、特開平6−337783号
公報のデータ処理装置及びデータ処理方法においては、
同一機能に対する命令コード割当てを少なくできるが、
異なるビット幅のデータに対する演算に限定されてい
る。However, in the data processing device and the data processing method disclosed in Japanese Patent Application Laid-Open No. Hei 6-337783,
Although instruction code assignment for the same function can be reduced,
Operations are limited to data having different bit widths.
【0016】本発明は上記の問題を解決するために成さ
れたものであり、その目的は、従来の技術と異なる手段
で中央演算処理装置が処理する命令の数を抑制して、処
理速度を向上することである。SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problem, and an object of the present invention is to reduce the number of instructions processed by the central processing unit by means different from that of the prior art to increase the processing speed. It is to improve.
【0017】[0017]
【課題を解決するための手段】この発明は、上記の課題
を解決するための手段として、以下の構成を備えてい
る。The present invention has the following arrangement as means for solving the above-mentioned problems.
【0018】(1) 命令を解読する命令デコード部と、解
読した命令に基づいてデータの演算を行う演算器と、演
算結果の状態を保持する複数のフラグを有し、命令でい
ずれに演算結果を保持するかを指示される複数のフラグ
レジスタと、演算結果の状態が保持された複数のフラグ
レジスタの状態を確認して分岐条件が成立するか否かを
判断する分岐条件判断部と、を備え、複数の演算命令を
処理した際に、各演算結果はそれぞれ異なるフラグレジ
スタに保持されることを特徴とする。(1) An instruction decoding unit for decoding an instruction, an arithmetic unit for performing data operation on the basis of the decoded instruction, and a plurality of flags for holding a state of the operation result. A plurality of flag registers instructing whether to hold the data, and a branch condition determining unit that checks the states of the plurality of flag registers in which the states of the operation results are held to determine whether a branch condition is satisfied. When a plurality of operation instructions are processed, each operation result is stored in a different flag register.
【0019】この構成においては、命令デコード部で解
読された命令に基づいて演算器でデータの演算が行わ
れ、複数の演算命令を処理した際には、各演算結果は命
令で指示されて、演算結果の状態を保持する複数のフラ
グを有する複数のフラグレジスタにおいて、それぞれ異
なるフラグレジスタに保持され、分岐条件判断部は、演
算結果の状態が保持された複数のフラグレジスタの状態
を確認して分岐条件が成立するか否かを判断する。した
がって、中央演算処理装置は、分岐条件となる複数の演
算を先に行い、別々のフラグレジスタに結果を保持して
おき、分岐命令で条件判断を行う際に、これら複数のフ
ラグレジスタの状態を確認するので、分岐命令を減ら
し、処理速度を向上させることができる。In this configuration, data is calculated by the arithmetic unit based on the instruction decoded by the instruction decoding unit, and when a plurality of arithmetic instructions are processed, each operation result is indicated by the instruction. In a plurality of flag registers having a plurality of flags for holding states of operation results, the flag conditions are held in different flag registers, and the branch condition determination unit checks the states of the plurality of flag registers in which the states of operation results are held. It is determined whether a branch condition is satisfied. Therefore, the central processing unit first performs a plurality of operations serving as branch conditions, holds the results in separate flag registers, and changes the states of the plurality of flag registers when performing a condition determination using a branch instruction. Since confirmation is made, the number of branch instructions can be reduced, and the processing speed can be improved.
【0020】(2) 命令を解読する命令デコード部と、解
読した命令に基づいてデータの演算を行う演算器と、各
々直列に接続され、演算結果の状態を保持する複数のフ
ラグを有する複数のフラグレジスタと、演算結果の状態
が保持された複数のフラグレジスタの状態を確認して分
岐条件が成立するか否かを判断する分岐条件判断部と、
を備え、該演算器の演算結果の状態をフラグレジスタに
保持する際に、該フラグレジスタが保持していたそれ以
前の演算結果の値を、該フラグレジスタに接続された他
のフラグレジスタにシフトして保持させ、新しい演算結
果の値を該フラグレジスタで保持することを特徴とす
る。(2) An instruction decoding unit for decoding an instruction, an arithmetic unit for performing data operation based on the decoded instruction, and a plurality of flags each connected in series and having a plurality of flags for holding a state of the operation result. A flag register, and a branch condition determining unit that checks the states of the plurality of flag registers in which the state of the operation result is held to determine whether the branch condition is satisfied,
When the state of the operation result of the arithmetic unit is held in the flag register, the value of the previous operation result held by the flag register is shifted to another flag register connected to the flag register. And holding the value of the new operation result in the flag register.
【0021】この構成においては、命令デコード部で解
読された命令に基づいて演算器でデータの演算が行わ
れ、演算器の演算結果の状態をフラグレジスタに保持す
る際に、フラグレジスタが保持していたそれ以前の演算
結果の値を、このフラグレジスタに接続された他のフラ
グレジスタにシフトして保持させ、新しい演算結果の値
をこのフラグレジスタに保持させ、分岐条件判断部は、
演算結果の状態が保持された複数のフラグレジスタの状
態を確認して分岐条件が成立するか否かを判断する。し
たがって、演算処理をする際にフラグレジスタを指定せ
ずに済み、分岐命令を減らして、処理速度を向上させる
ことができる。In this configuration, data is calculated by the arithmetic unit based on the instruction decoded by the instruction decoding unit. When the state of the operation result of the arithmetic unit is held in the flag register, the flag register holds the result. The value of the previous operation result is shifted to another flag register connected to this flag register and held, and the new operation result value is held in this flag register.
The state of the plurality of flag registers holding the state of the operation result is checked to determine whether or not the branch condition is satisfied. Therefore, it is not necessary to specify the flag register when performing the arithmetic processing, and it is possible to reduce the number of branch instructions and improve the processing speed.
【0022】(3) 前記複数のフラグレジスタは、前記複
数のフラグの代わりに、真または偽の演算結果を保持す
るフラグのみを備え、前記命令デコード部は、結果が真
または偽である命令を解読することを特徴とすることを
特徴とする。(3) The plurality of flag registers include only a flag that holds a true or false operation result instead of the plurality of flags, and the instruction decoding unit decodes an instruction whose result is true or false. It is characterized by decoding.
【0023】この構成においては、命令デコード部で解
読された結果が真または偽である命令に基づいて演算器
でデータの演算が行われ、複数の演算命令を処理した際
には、各演算結果は真または偽の演算結果を保持するフ
ラグのみを有する複数のフラグレジスタにおいて、それ
ぞれ異なるフラグレジスタに保持され、分岐条件判断部
は、演算結果の状態が保持された複数のフラグレジスタ
の状態を確認して分岐条件が成立するか否かを判断す
る。したがって、複数のフラグレジスタに結果を格納で
きる演算命令を結果が真または偽である比較命令に限る
ことで、分岐命令の数をさらに少なくでき、処理速度を
向上させることができる。In this configuration, the arithmetic unit performs data operation on the basis of an instruction whose result decoded by the instruction decoding unit is true or false. When a plurality of operation instructions are processed, each operation result is obtained. Is stored in different flag registers, each of which has only a flag that holds a true or false operation result, and the branch condition determination unit checks the state of the plurality of flag registers in which the state of the operation result is held To determine whether the branch condition is satisfied. Therefore, the number of branch instructions can be further reduced and the processing speed can be improved by limiting the operation instructions that can store the results in the plurality of flag registers to comparison instructions whose results are true or false.
【0024】[0024]
【発明の実施の形態】本発明の第1実施形態に係る中央
演算処理装置について、図3に基づいて説明する。図3
は、中央演算処理装置の第1実施形態のブロック図であ
る。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A central processing unit according to a first embodiment of the present invention will be described with reference to FIG. FIG.
FIG. 1 is a block diagram of a first embodiment of a central processing unit.
【0025】中央演算処理装置1は、命令を解読する命
令デコード部31、データの演算を行う演算器32、演
算命令毎に演算結果の状態を保持するフラグレジスタ群
33、及びフラグレジスタ群33に保持した内容を確認
して条件分岐が成立するか否か判断する分岐条件判断部
34を備えた構成である。フラグレジスタ群33は、フ
ラグレジスタ331、フラグレジスタ332及びフラグ
レジスタ333によって構成される。The central processing unit 1 includes an instruction decoding unit 31 for decoding instructions, an arithmetic unit 32 for performing data operation, a flag register group 33 for holding a state of an operation result for each operation instruction, and a flag register group 33. The configuration includes a branch condition determination unit 34 that checks the held content and determines whether a conditional branch is established. The flag register group 33 includes a flag register 331, a flag register 332, and a flag register 333.
【0026】また、命令デコード部31は、演算器32
と分岐条件判断部34に接続されている。演算器32
は、命令デコード部31の他に、フラグレジスタ33
1、フラグレジスタ332及びフラグレジスタ333に
接続されている。分岐条件判断部34は、命令デコード
部31の他に、フラグレジスタ331、フラグレジスタ
332及びフラグレジスタ333に接続されている。The instruction decoding unit 31 includes an arithmetic unit 32
And a branch condition determination unit 34. Arithmetic unit 32
Is a flag register 33 in addition to the instruction decode unit 31.
1, the flag register 332 and the flag register 333 are connected. The branch condition determining unit 34 is connected to the flag register 331, the flag register 332, and the flag register 333 in addition to the instruction decoding unit 31.
【0027】次に、中央演算処理装置1の動作を以下に
説明する。図6は、分岐条件判断部34での分岐条件の
真理値表である。まず、命令が命令デコード部31に入
力されると、命令デコード部31はこの命令を解読す
る。命令デコード部31に入力された命令が演算命令の
時は、命令デコード部31は解読した結果を演算器32
に出力する。演算器32は演算処理を行い、処理結果の
状態は、フラグレジスタ群33の中から、例えば、フラ
グレジスタ331が命令で指定されて、このフラグレジ
スタ331に演算結果の状態が保持される。Next, the operation of the central processing unit 1 will be described below. FIG. 6 is a truth table of the branch condition in the branch condition determination unit 34. First, when an instruction is input to the instruction decoding unit 31, the instruction decoding unit 31 decodes the instruction. When the instruction input to the instruction decoding unit 31 is an operation instruction, the instruction decoding unit 31
Output to The arithmetic unit 32 performs arithmetic processing, and the state of the processing result is specified by, for example, the flag register 331 from the flag register group 33 by an instruction, and the state of the arithmetic result is held in the flag register 331.
【0028】次の演算命令が命令デコード部31に入力
されると、同様に命令が解読され、演算器32は演算処
理を行い、処理結果の状態は、フラグレジスタ群33に
出力される。この時、先の命令の際に演算結果の状態を
保持したフラグレジスタ331とは別のフラグレジスタ
であるフラグレジスタ332に演算結果を保持するよう
に命令で指定されるので、指定されたフラグレジスタ3
32に演算結果が保持される。When the next operation instruction is input to the instruction decoding unit 31, the instruction is similarly decoded, the operation unit 32 performs an operation process, and the processing result state is output to the flag register group 33. At this time, since the instruction specifies to hold the operation result in the flag register 332 which is a flag register different from the flag register 331 holding the state of the operation result at the time of the previous instruction, the designated flag register 3
32 holds the operation result.
【0029】命令デコード部31に次に入力された命令
が条件分岐命令の時は、命令デコーダ部31は命令を解
読し、分岐条件判断部34はフラグレジスタ群を構成す
るフラグレジスタ331、フラグレジスタ332に保持
された内容をすべて確認し、分岐条件が成立するか否か
判断する。When the next instruction input to the instruction decoding unit 31 is a conditional branch instruction, the instruction decoder unit 31 decodes the instruction, and the branch condition determining unit 34 sets the flag registers 331 and 331 constituting a flag register group. It checks all the contents held in 332 and determines whether or not the branch condition is satisfied.
【0030】図5は、フラグレジスタの一構成形態を示
す図である。フラグレジスタ331〜333は、複数の
フラグを備えている。例えば、図5に示したように、C
フラグ、Zフラグ、Sフラグ、P/Vフラグなどを備え
ている。なお、Cフラグは、キャリーが発生したか否か
を示すフラグである。Zフラグは、演算結果が0になっ
たか否かを示すフラグである。Sフラグは、負になった
か否かを示すフラグである。P/Vフラグは、演算結果
がオーバフローしているか否かを示すフラグである。FIG. 5 is a diagram showing one configuration of the flag register. The flag registers 331 to 333 have a plurality of flags. For example, as shown in FIG.
Flags, a Z flag, an S flag, a P / V flag, and the like. The C flag is a flag indicating whether or not a carry has occurred. The Z flag is a flag indicating whether or not the calculation result has become 0. The S flag is a flag indicating whether or not the value has become negative. The P / V flag is a flag indicating whether the operation result has overflowed.
【0031】次に、図2に示した命令を中央演算処理装
置1で行う場合の処理手順について説明する。図2
(B)は、中央演算処理装置1で処理を行う場合に実行
する命令の一例である。Next, a processing procedure when the instruction shown in FIG. 2 is executed by the central processing unit 1 will be described. FIG.
(B) is an example of an instruction to be executed when processing is performed by the central processing unit 1.
【0032】まず、命令デコード部31は、Xと0との
比較命令Aを解読し、演算器32はこの命令に基づいた
演算を実行する。そして、その処理結果は、フラグレジ
スタ群33から命令によって選択されたフラグレジスタ
331のZフラグとSフラグにセットされる。First, the instruction decoding unit 31 decodes a comparison instruction A between X and 0, and the arithmetic unit 32 executes an operation based on this instruction. Then, the processing result is set to the Z flag and the S flag of the flag register 331 selected by the instruction from the flag register group 33.
【0033】次に、命令デコード部31はXと100と
の比較命令Bを解読し、演算器32はこの命令に基づい
た演算を実行する。そして、同様にその処理結果は、フ
ラグレジスタ群33から命令によって選択されたフラグ
レジスタ332のZフラグとSフラグとにセットされ
る。Next, the instruction decoding unit 31 decodes the comparison instruction B between X and 100, and the arithmetic unit 32 executes an operation based on this instruction. Then, similarly, the processing result is set to the Z flag and the S flag of the flag register 332 selected by the instruction from the flag register group 33.
【0034】そして、分岐条件判断部34は、フラグレ
ジスタ331のZフラグとSフラグと、フラグレジスタ
332のZフラグとSフラグと、を確認して、図6に示
した真理値表の分岐条件を満たしていれば、XXにジャ
ンプしXXの処理を行う。一方、この分岐条件を満たし
ていなければ、YYにジャンプしてYYの処理を行う。The branch condition judging section 34 checks the Z flag and the S flag of the flag register 331 and the Z flag and the S flag of the flag register 332, and checks the branch condition of the truth table shown in FIG. Is satisfied, jump to XX and perform XX processing. On the other hand, if the branch condition is not satisfied, the process jumps to YY and performs the process of YY.
【0035】次に、本発明の第2実施形態に係る中央演
算処理装置について、図4に基づいて説明する。図4
は、中央演算処理装置の第2実施形態のブロック図であ
る。Next, a central processing unit according to a second embodiment of the present invention will be described with reference to FIG. FIG.
FIG. 3 is a block diagram of a second embodiment of a central processing unit.
【0036】中央演算処理装置2は、命令を解読する命
令デコード部41、データ演算を行う演算器42、演算
結果の状態を保持するフラグレジスタ群43、フラグレ
ジスタ群43から条件分岐が成立するか否かを判断する
分岐処理部44を備える。また、フラグレジスタ群43
は、フラグレジスタ431、フラグレジスタ432及び
フラグレジスタ433によって構成される。The central processing unit 2 determines whether a conditional branch is established from an instruction decoding unit 41 for decoding an instruction, an operation unit 42 for performing data operation, a flag register group 43 for holding the state of the operation result, and a flag register group 43. A branch processing unit 44 for determining whether or not it is provided is provided. The flag register group 43
Is composed of a flag register 431, a flag register 432, and a flag register 433.
【0037】また、命令デコード部41は、演算器42
と分岐条件判断部44に接続されている。演算器42
は、命令デコード部41の他に、フラグレジスタ431
に接続されている。フラグレジスタ431、フラグレジ
スタ432、及びフラグレジスタ433は直列に接続さ
れている。分岐条件判断部44は、命令デコード部31
の他に、フラグレジスタ331、フラグレジスタ332
及びフラグレジスタ333に接続されている。The instruction decoding unit 41 includes an arithmetic unit 42
And a branch condition determining unit 44. Arithmetic unit 42
Is a flag register 431 in addition to the instruction decode unit 41.
It is connected to the. The flag register 431, the flag register 432, and the flag register 433 are connected in series. The branch condition judging unit 44 includes the instruction decoding unit 31
In addition, the flag register 331, the flag register 332
And the flag register 333.
【0038】次に、中央演算処理装置2の動作を以下に
説明する。まず、命令が命令デコード部41に入力され
ると、命令デコード部41はこの命令を解読し、命令が
演算命令の時は、その結果を演算器42に出力する。演
算器42は演算処理を行い、処理結果の状態は、フラグ
レジスタ群431に保持される。次の演算命令が命令デ
コード部31に入力されると、同様に命令が解読され、
演算器42は演算処理を行い、処理結果の状態はフラグ
レジスタ431に保持される。この時、フラグレジスタ
431が保持していた以前の値は、シフトされてフラグ
レジスタ432に保持される。Next, the operation of the central processing unit 2 will be described below. First, when an instruction is input to the instruction decoding unit 41, the instruction decoding unit 41 decodes the instruction. When the instruction is an arithmetic instruction, the instruction decoding unit 41 outputs the result to the arithmetic unit 42. The arithmetic unit 42 performs arithmetic processing, and the state of the processing result is held in the flag register group 431. When the next operation instruction is input to the instruction decoding unit 31, the instruction is similarly decoded,
The arithmetic unit 42 performs arithmetic processing, and the state of the processing result is held in the flag register 431. At this time, the previous value held in the flag register 431 is shifted and held in the flag register 432.
【0039】また、次の演算命令が命令デコード部31
に入力されると、上記のように処理されて、処理結果の
状態がフラグレジスタ431に保持される。この時、フ
ラグレジスタ432が保持していた以前の値は、シフト
されてフラグレジスタ433に保持される。また、フラ
グレジスタ431が保持していた以前の値は、シフトさ
れてフラグレジスタ432に保持される。The next operation instruction is sent to the instruction decode unit 31.
Is processed as described above, and the state of the processing result is held in the flag register 431. At this time, the previous value held in the flag register 432 is shifted and held in the flag register 433. The previous value held by the flag register 431 is shifted and held in the flag register 432.
【0040】命令デコード部31に次に入力された命令
が、条件分岐命令の時は、命令デコーダ部31は命令を
解読し、分岐条件判断部44はフラグレジスタ群43を
構成するフラグレジスタ431〜433に保持された内
容をすべて確認し、分岐条件が成立するか否か判断す
る。なお、フラグレジスタ431〜433は、第1実施
形態と同様に、Cフラグ、Zフラグ、Sフラグ、P/V
フラグなどの複数のフラグを備えている。When the next instruction input to the instruction decoding unit 31 is a conditional branch instruction, the instruction decoder unit 31 decodes the instruction, and the branch condition determining unit 44 determines whether the flag registers 431 to 431 constitute the flag register group 43. It checks all the contents held in 433 and determines whether or not the branch condition is satisfied. The flag registers 431 to 433 store the C flag, the Z flag, the S flag, and the P / V, as in the first embodiment.
A plurality of flags such as flags are provided.
【0041】次に、図2に示した命令を本発明の第2実
施形態に係る中央演算処理装置で行う場合の処理手順に
ついて図2(B)に基づいて説明する。まず、命令デコ
ード部41は、Xと0との比較命令Aを解読し、演算器
42はこの命令に基づく演算を実行する。そして、その
処理結果は、フラグレジスタ群43のフラグレジスタ4
31にセットされる。Next, the processing procedure when the instruction shown in FIG. 2 is executed by the central processing unit according to the second embodiment of the present invention will be described with reference to FIG. First, the instruction decoding unit 41 decodes a comparison instruction A between X and 0, and the calculator 42 executes an operation based on this instruction. The processing result is stored in the flag register 4 of the flag register group 43.
Set to 31.
【0042】次に、命令デコード部41は、Xと100
との比較命令Bを解読し、演算器42はこの命令に基づ
く演算を実行する。そして、その処理結果は、フラグレ
ジスタ群43のフラグレジスタ431のZフラグとSフ
ラグとにセットされる。その際、前回の処理結果の状態
を保持したフラグレジスタ431の値は、フラグレジス
タ432のZフラグとSフラグとへシフトされて保持さ
れる。Next, the instruction decode unit 41 determines that X and 100
The arithmetic unit 42 executes a calculation based on this instruction. Then, the processing result is set in the Z flag and the S flag of the flag register 431 of the flag register group 43. At this time, the value of the flag register 431 holding the state of the previous processing result is shifted to and held by the Z flag and the S flag of the flag register 432.
【0043】分岐条件判断部44は、フラグレジスタ4
31・フラグレジスタ432のZフラグとSフラグとを
確認して、図6に示した真理値表の分岐条件を満たして
いれば、XXにジャンプしXXの処理を行う。一方、こ
の分岐条件を満たしていなければ、YYにジャンプして
YYの処理を行う。The branch condition judging section 44 includes a flag register 4
31. The Z flag and the S flag of the flag register 432 are checked, and if the branch condition of the truth table shown in FIG. 6 is satisfied, the processing jumps to XX and performs the processing of XX. On the other hand, if the branch condition is not satisfied, the process jumps to YY and performs the process of YY.
【0044】このように、フラグレジスタの値をシフト
させて、複数のフラグレジスタに値を設定するので、フ
ラグレジスタを指定してフラグを読み出す命令をフラグ
レジスタの数だけ準備する必要がなくなる。As described above, since the values of the flag registers are shifted and the values are set in the plurality of flag registers, it is not necessary to prepare instructions for reading the flags by designating the flag registers by the number of flag registers.
【0045】フラグレジスタは、一般に、1つに付き複
数のフラグ(複数のビット)を備えている。例えば、図
5に示したように、Cフラグ、Zフラグ、Sフラグ、P
/Vフラグを備えている。第1実施形態や第2実施形態
では、ZフラグとSフラグとの2つのフラグ(2ビッ
ト)の分岐条件が設定されているが、さらに複数のフラ
グ(複数ビット)の分岐条件が設定される場合は、分岐
命令の数が増加する。The flag register generally has a plurality of flags (a plurality of bits) per one. For example, as shown in FIG. 5, C flag, Z flag, S flag, P flag
/ V flag. In the first and second embodiments, the branch condition of two flags (two bits) of the Z flag and the S flag is set, but the branch condition of a plurality of flags (multiple bits) is further set. If so, the number of branch instructions increases.
【0046】例えば、図5に示したようにフラグが4種
類、また、図3に示した中央演算処理装置1のようにフ
ラグレジスタが3つあった場合、3つのフラグレジスタ
の選択方法は、331かつ332かつ333、331ま
たは332または333、(331かつ332)または
333、(331かつ333)または332、331か
つ(332または333)、331または(332かつ
333)、332かつ(331または333)、及び3
33かつ(331または332)の8種類である。した
がって、最大で2の4乗の3乗の8倍=32768種類
の命令コードが必要となる。For example, when there are four types of flags as shown in FIG. 5 and three flag registers as in the central processing unit 1 shown in FIG. 3, the method of selecting the three flag registers is as follows. 331 and 332 and 333, 331 or 332 or 333, (331 and 332) or 333, (331 and 333) or 332, 331 and (332 or 333), 331 or (332 and 333), 332 and (331 or 333) ) And 3
There are eight types of 33 and (331 or 332). Therefore, 32,768 kinds of instruction codes are required, at most 8 times the power of 2 to the power of 3 = 3.
【0047】これを改善する方法として、以下に述べる
方法がある。図2(C)は、使用する命令を限定した場
合の中央演算処理装置で処理を行う場合に実行する命令
の一例である。図2(C)に示したように、中央演算処
理装置において、命令デコード部で解読する命令を「a
とbは等しい」とか、「aよりbは大きい」のように結
果が真またか偽である命令に限定する。また、フラグレ
ジスタに設けるフラグを真または偽の結果を保持するF
フラグのみを備えた構成とする。As a method for improving this, there is a method described below. FIG. 2C is an example of an instruction to be executed when processing is performed by the central processing unit when the instructions to be used are limited. As shown in FIG. 2C, in the central processing unit, the instruction to be decoded by the instruction
And b are equal "or" b is greater than a "so that the result is true or false. Further, the flag provided in the flag register is set to F which holds a true or false result.
It is configured to have only a flag.
【0048】この場合、フラグの数は1つで、図3に示
した中央演算処理装置1のようにフラグレジスタが3つ
あった場合、3つのフラグレジスタの選択方法は、上記
のように8種類であると、命令コードの種類は、2の1
乗の3乗の8倍=64種類となる。よって、命令コード
数を大幅に抑制できる。In this case, the number of flags is one, and when there are three flag registers as in the central processing unit 1 shown in FIG. 3, the selection method of the three flag registers is 8 as described above. If it is a type, the type of the instruction code is 2 1
Eight times the cube of the power = 64. Therefore, the number of instruction codes can be significantly reduced.
【0049】以上のように、本発明に関わる中央演算処
理装置では、分岐命令に対して2個以上のフラグレジス
タ(複数のフラグレジスタ)を有し、そのフラグレジス
タを選択することができ、それらのフラグレジスタの状
態に応じて処理をすることにより、従来と比べて命令コ
ード数を削減することができる。As described above, the central processing unit according to the present invention has two or more flag registers (a plurality of flag registers) for a branch instruction, and can select the flag register. , The number of instruction codes can be reduced as compared with the conventional case.
【0050】これを実現するにあたり、回路の増加はフ
ラグレジスタと分岐命令の条件デコード回路、比較命令
および分岐命令のデコード回路のみであり、一般的な中
央演算処理装置全体からみれば、微々たる増加である。In realizing this, the number of circuits is increased only by the flag register and the conditional decode circuit of the branch instruction, and the decode circuit of the comparison instruction and the branch instruction. It is.
【0051】なお、中央演算処理装置のフラグレジスタ
群を構成するフラグレジスタは3つである場合について
説明したが、フラグレジスタの数はこれに限るものでは
ない。Although the case where the number of flag registers constituting the flag register group of the central processing unit is three has been described, the number of flag registers is not limited to this.
【0052】[0052]
【発明の効果】本発明によれば、以下の効果が得られ
る。According to the present invention, the following effects can be obtained.
【0053】(1) 命令デコード部で解読された命令に基
づいて演算器でデータの演算が行われ、複数の演算命令
を処理した際には、各演算結果は命令で指示されて、演
算結果の状態を保持する複数のフラグを有する複数のフ
ラグレジスタにおいて、それぞれ異なるフラグレジスタ
に保持され、分岐条件判断部は、演算結果の状態が保持
された複数のフラグレジスタの状態を確認して分岐条件
が成立するか否かを判断するので、中央演算処理装置で
は、分岐条件となる複数の演算を先に行い、別々のフラ
グレジスタに結果を保持しておき、分岐命令で条件判断
を行う際に、これら複数のフラグレジスタの状態を確認
することによって、分岐命令を減らし、処理速度を向上
させることができる。(1) An arithmetic unit performs data arithmetic on the basis of an instruction decoded by the instruction decode unit. When a plurality of arithmetic instructions are processed, each operation result is indicated by the instruction, and Among a plurality of flag registers having a plurality of flags that hold the states of the flags, the branch condition determination unit checks the states of the plurality of flag registers in which the states of the operation results are held and determines the branch condition. Is determined, the central processing unit performs a plurality of operations as branch conditions first, holds the results in separate flag registers, and performs a condition determination with a branch instruction. By checking the states of the plurality of flag registers, the number of branch instructions can be reduced and the processing speed can be improved.
【0054】(2) 命令デコード部で解読された命令に基
づいて演算器でデータの演算が行われ、演算器の演算結
果の状態をフラグレジスタに保持する際に、フラグレジ
スタが保持していたそれ以前の演算結果の値を、このフ
ラグレジスタに接続された他のフラグレジスタにシフト
して保持させ、新しい演算結果の値をこのフラグレジス
タに保持させ、分岐条件判断部は、演算結果の状態が保
持された複数のフラグレジスタの状態を確認して分岐条
件が成立するか否かを判断するため、演算処理をする際
にフラグレジスタを指定せずに済み、分岐命令を減らし
て、処理速度を向上させることができる。(2) The arithmetic unit performs data operation based on the instruction decoded by the instruction decoding unit, and the flag register holds the state of the operation result of the arithmetic unit in the flag register. The value of the previous operation result is shifted and held in another flag register connected to this flag register, the value of the new operation result is held in this flag register, and the branch condition determination unit determines the state of the operation result. In order to determine whether the branch condition is satisfied by checking the state of the multiple flag registers that hold the, there is no need to specify the flag register when performing the arithmetic processing, the number of branch instructions is reduced, and the processing speed is reduced. Can be improved.
【0055】(3) 命令デコード部で解読された結果が真
または偽である命令に基づいて演算器でデータの演算が
行われ、複数の演算命令を処理した際には、各演算結果
は真または偽の演算結果を保持するフラグのみを有する
複数のフラグレジスタにおいて、それぞれ異なるフラグ
レジスタに保持され、分岐条件判断部は、演算結果の状
態が保持された複数のフラグレジスタの状態を確認して
分岐条件が成立するか否かを判断するので、複数のフラ
グレジスタに結果を格納できる演算命令を結果が真また
は偽である比較命令に限ることで、分岐命令の数をさら
に少なくでき、処理速度を向上させることができる。(3) The operation unit performs data operation based on an instruction whose result decoded by the instruction decoding unit is true or false, and when a plurality of operation instructions are processed, each operation result is true. Alternatively, in a plurality of flag registers having only a flag holding a false operation result, each of the flag registers is held in a different flag register, and the branch condition determining unit checks the state of the plurality of flag registers holding the state of the operation result. Since it is determined whether or not a branch condition is satisfied, the number of branch instructions can be further reduced by limiting the operation instructions that can store results in multiple flag registers to comparison instructions whose results are true or false. Can be improved.
【図1】従来の中央演算処理装置の構成を示すブロック
図である。FIG. 1 is a block diagram showing a configuration of a conventional central processing unit.
【図2】(A)は、従来の中央演算処理装置で処理を行
う場合に実行する命令の一例である。(B)は、中央演
算処理装置1で処理を行う場合に実行する命令の一例で
ある。(C)は、使用する命令を限定した場合の中央演
算処理装置で処理を行う場合に実行する命令の一例であ
る。FIG. 2A is an example of an instruction executed when processing is performed by a conventional central processing unit. (B) is an example of an instruction to be executed when processing is performed by the central processing unit 1. (C) is an example of an instruction executed when processing is performed by the central processing unit in a case where instructions to be used are limited.
【図3】中央演算処理装置の第1実施形態のブロック図
である。FIG. 3 is a block diagram of a first embodiment of a central processing unit.
【図4】中央演算処理装置の第2実施形態のブロック図
である。FIG. 4 is a block diagram of a second embodiment of a central processing unit.
【図5】フラグレジスタの一構成形態を示す図である。FIG. 5 is a diagram showing one configuration of a flag register.
【図6】分岐条件判断部34での分岐条件の真理値表で
ある。FIG. 6 is a truth table of a branch condition in a branch condition determination unit 34;
1−中央演算処理装置 31−命令デコード部 32−演算器 331・332・333−フラグレジスタ 34−分岐条件判断部 1-Central processing unit 31-Instruction decoding unit 32-Operation unit 331/332 / 333-Flag register 34-Branch condition judgment unit
Claims (3)
した命令に基づいてデータの演算を行う演算器と、演算
結果の状態を保持する複数のフラグを有し、命令でいず
れに演算結果を保持するかを指示される複数のフラグレ
ジスタと、演算結果の状態が保持された複数のフラグレ
ジスタの状態を確認して分岐条件が成立するか否かを判
断する分岐条件判断部と、を備え、 複数の演算命令を処理した際に、各演算結果はそれぞれ
異なるフラグレジスタに保持されることを特徴とする中
央演算処理装置。An instruction decoding unit for decoding an instruction, an arithmetic unit for performing data operation based on the decoded instruction, and a plurality of flags for holding a state of the operation result, wherein the operation result A plurality of flag registers for instructing whether to hold, and a branch condition determining unit for checking the states of the plurality of flag registers in which the state of the operation result is held to determine whether a branch condition is satisfied A central processing unit, wherein when processing a plurality of operation instructions, each operation result is held in a different flag register.
した命令に基づいてデータの演算を行う演算器と、各々
直列に接続され、演算結果の状態を保持する複数のフラ
グを有する複数のフラグレジスタと、演算結果の状態が
保持された複数のフラグレジスタの状態を確認して分岐
条件が成立するか否かを判断する分岐条件判断部と、を
備え、 該演算器の演算結果の状態をフラグレジスタに保持する
際に、該フラグレジスタが保持していたそれ以前の演算
結果の値を、該フラグレジスタに接続された他のフラグ
レジスタにシフトして保持させ、新しい演算結果の値を
該フラグレジスタで保持することを特徴とする中央演算
処理装置。2. An instruction decoding unit for decoding an instruction, an arithmetic unit for performing data operation based on the decoded instruction, and a plurality of flags each having a plurality of flags connected in series and holding a state of an operation result A register and a branch condition determining unit that checks the state of the plurality of flag registers holding the state of the operation result to determine whether a branch condition is satisfied. When holding in the flag register, the value of the previous operation result held by the flag register is shifted and held in another flag register connected to the flag register, and the value of the new operation result is stored in the flag register. A central processing unit, which is held by a flag register.
のフラグの代わりに、真または偽の演算結果を保持する
フラグのみを備え、 前記命令デコード部は、結果が真または偽である命令を
解読することを特徴とすることを特徴とする請求項1ま
たは2に記載の中央演算処理装置。3. The plurality of flag registers include only a flag that holds a true or false operation result instead of the plurality of flags, and the instruction decoding unit decodes an instruction whose result is true or false. The central processing unit according to claim 1, wherein the central processing unit performs the processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000166722A JP2001344100A (en) | 2000-06-02 | 2000-06-02 | Central processing unit equipped with plural flag registers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000166722A JP2001344100A (en) | 2000-06-02 | 2000-06-02 | Central processing unit equipped with plural flag registers |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001344100A true JP2001344100A (en) | 2001-12-14 |
Family
ID=18670000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000166722A Pending JP2001344100A (en) | 2000-06-02 | 2000-06-02 | Central processing unit equipped with plural flag registers |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001344100A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1302379C (en) * | 2003-12-12 | 2007-02-28 | 上海奇码数字信息有限公司 | Conditioned control management device and method |
JP2008305185A (en) * | 2007-06-07 | 2008-12-18 | Nec Electronics Corp | Processor device and compound condition processing method |
JP2014124281A (en) * | 2012-12-26 | 2014-07-07 | Daito Giken:Kk | Game table |
JP2014124282A (en) * | 2012-12-26 | 2014-07-07 | Daito Giken:Kk | Game table |
-
2000
- 2000-06-02 JP JP2000166722A patent/JP2001344100A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1302379C (en) * | 2003-12-12 | 2007-02-28 | 上海奇码数字信息有限公司 | Conditioned control management device and method |
JP2008305185A (en) * | 2007-06-07 | 2008-12-18 | Nec Electronics Corp | Processor device and compound condition processing method |
JP2014124281A (en) * | 2012-12-26 | 2014-07-07 | Daito Giken:Kk | Game table |
JP2014124282A (en) * | 2012-12-26 | 2014-07-07 | Daito Giken:Kk | Game table |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080077779A1 (en) | Performing rounding operations responsive to an instruction | |
JP2008071130A (en) | Simd type microprocessor | |
EP0735462A2 (en) | Method and apparatus for selectively controlling interrupt latency in a data processing system | |
US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
US5764550A (en) | Arithmetic logic unit with improved critical path performance | |
JP2001344100A (en) | Central processing unit equipped with plural flag registers | |
KR19990072432A (en) | Information processing method and information processing apparatus having interrupt control function with priority orders | |
JP2003058381A (en) | Processor realizing exception processing setting by program | |
JPH1091395A (en) | Processor | |
JPH05274143A (en) | Composite condition processing system | |
US6842852B1 (en) | System and method for controlling conditional branching utilizing a control instruction having a reduced word length | |
JPS63245525A (en) | Microprogram processor | |
US6757813B1 (en) | Processor | |
EP0756230B1 (en) | Operating circuit and method for selecting signal processing commands in ADPCM system | |
JP3031044B2 (en) | Rounding circuit | |
JPH1196001A (en) | Device for executing program and method for converting program | |
JPH08305563A (en) | Data processing unit | |
JP3431503B2 (en) | Information processing apparatus and program control method | |
JP2953405B2 (en) | Method for speeding up logic simulation and logic simulation apparatus | |
JPH0619705A (en) | Pipeline control system | |
JPH01307831A (en) | Information processor | |
JPH02148140A (en) | Conditional branch control system for information processor | |
JPS6120135A (en) | Data processor | |
JPS63276126A (en) | Instruction decoding circuit | |
JPH03196220A (en) | Information processor |