JP2001265592A - Information processor - Google Patents

Information processor

Info

Publication number
JP2001265592A
JP2001265592A JP2000076086A JP2000076086A JP2001265592A JP 2001265592 A JP2001265592 A JP 2001265592A JP 2000076086 A JP2000076086 A JP 2000076086A JP 2000076086 A JP2000076086 A JP 2000076086A JP 2001265592 A JP2001265592 A JP 2001265592A
Authority
JP
Japan
Prior art keywords
instruction
data
condition
satisfied
specified
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
Application number
JP2000076086A
Other languages
Japanese (ja)
Inventor
Nobuo Higaki
信生 檜垣
Kenichi Kawaguchi
謙一 川口
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2000076086A priority Critical patent/JP2001265592A/en
Publication of JP2001265592A publication Critical patent/JP2001265592A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an information processor for operating based on the result of comparing fast in an SIMD instruction for storing plural pieces of data on a register and batch operating the plural pieces of data. SOLUTION: On performing a condition performing instruction, data designated by an operand is divided into the plural pieced of data by each specific number of bits, and the corresponding verifying result of a state holding means corresponding to each of the divided plural pieces of data is examined. The processor is controlled to perform operation designated in the instruction to corresponding divided data when a condition is formed, and to avoid performing the operation designated in the instruction to the corresponding divided data when the condition is not formed. Thus, with respect to the respective data divided plurally, the condition performing instruction can operate only to data where the condition is formed based on the verifying result held by the state holding means and can operate fast.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、フラグレジスタを
有し、命令実行結果を反映するフラグレジスタの内容に
従って複数のデータに対して演算を行うSIMD演算命
令をもつ情報処理装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus having a flag register and having a SIMD operation instruction for performing an operation on a plurality of data in accordance with the contents of the flag register reflecting an instruction execution result.

【0002】[0002]

【従来の技術】近年、マイクロコンピュータなどの情報
処理装置の処理能力が飛躍的に向上し、あらゆる分野で
用いられている。
2. Description of the Related Art In recent years, the processing capability of information processing apparatuses such as microcomputers has been dramatically improved, and they have been used in various fields.

【0003】特に近年の情報処理装置では、レジスタ上
に複数のデータを格納し、その複数のデータを一括に演
算するSIMD(Single Instruction Multiple Data)命
令を実装することにより、データ処理の処理能力を向上
させている(例えば、「Intel Architecture Software
Developer's Manual Volume 1 : Basic Architectur
e」、Intel Corporation発行、p.6-9〜p.6-11参照)。
In particular, in recent information processing apparatuses, a plurality of data are stored in a register, and a SIMD (Single Instruction Multiple Data) instruction for calculating the plurality of data at a time is implemented, thereby increasing the data processing capability. (For example, “Intel Architecture Software
Developer's Manual Volume 1: Basic Architectur
e ", published by Intel Corporation, pp. 6-9 to pp. 6-11).

【0004】図20は従来の情報処理装置である「Pe
ntium (登録商標)II」プロセッサのSIMD
命令(以下、MMX命令とする)の一部の比較命令の仕
様を示す第1の従来例の図である。
FIG. 20 shows a conventional information processing apparatus "Pe
ntium (R) II "processor SIMD
FIG. 11 is a diagram of a first conventional example showing specifications of some comparison instructions of an instruction (hereinafter, referred to as an MMX instruction).

【0005】同図において、オペランド”sd”、”d
d”は64ビット長のレジスタであり、”[]”内はレ
ジスタのどのビット位置からどのビット位置までの範囲
であるかを示している。例えば、”sd[15:
0]”、”sd[31:16]”、”sd[47:3
2]”、”sd[63:48]”はそれぞれ「レジスタ
sdのビット0(LSB)からビット15までの16ビ
ット」、「レジスタsdのビット16からビット31ま
での16ビット」、「レジスタsdのビット32からビ
ット47までの16ビット」、「レジスタsdのビット
48からビット63(MSB)までの16ビット」を示
している。また、”0x”付き数値は16進数を、”
←”は右辺の値を左辺に格納することを表している。
In FIG. 1, operands "sd", "d"
"d" is a 64-bit length register, and "[]" indicates a range from which bit position to which bit position of the register, for example, "sd [15:
0] "," sd [31:16] "," sd [47: 3
2] ”and“ sd [63:48] ”are“ 16 bits from bit 0 (LSB) to bit 15 of register sd ”,“ 16 bits from bit 16 to bit 31 of register sd ”, and“ register sd 16 bits from bit 32 to bit 47 of the register sd ”and“ 16 bits from bit 48 to bit 63 (MSB) of the register sd ”. In addition, the numerical value with “0x” represents a hexadecimal number,
“←” indicates that the value on the right side is stored in the left side.

【0006】この情報処理装置では、レジスタを16ビ
ット毎に分割しそれぞれを比較して、条件成立時には”
0xffff”を条件非成立時には”0x0000”を、レジスタd
dの対応する16ビットの位置に格納している。「PCMP
EQW命令」は、レジスタddとレジスタsdの対応する
16ビットが等しいかどうかを、「PCMPGTW命令」は、
レジスタddとレジスタsdの対応する16ビットがレ
ジスタddのほうが大きいかどうかを比較条件としてい
る。
In this information processing apparatus, the register is divided for every 16 bits, and they are compared with each other.
0xffff ”is set to“ 0x0000 ”when the condition is not satisfied.
It is stored in the corresponding 16-bit position of d. "PCMP
The "EQW instruction" determines whether the corresponding 16 bits of the register dd and the register sd are equal, and the "PCMPGTW instruction"
The comparison condition is whether or not the corresponding 16 bits of the register dd and the register sd are larger in the register dd.

【0007】上記第1の従来例では、16ビット毎の比
較結果に応じて、対応する16ビット全てを0または1
にしているが、1ビットのみに反映する情報処理装置も
ある(例えば、「Ultra SPARC-IIi User's Manual」、S
un Microsystems, Inc.発行、p.135〜p.180参照)。
In the first conventional example, all the corresponding 16 bits are set to 0 or 1 according to the comparison result for every 16 bits.
However, there are information processing devices that reflect only one bit (for example, "Ultra SPARC-IIi User's Manual",
un Microsystems, Inc., pp. 135-180.

【0008】図21は従来の情報処理装置である「Ultr
a SPARC-IIi」プロセッサのSIMD命令(以下、VI
S命令とする)の一部の比較命令の仕様を示す第2の従
来例の図である。
FIG. 21 shows a conventional information processing apparatus "Ultr
a SPARC-IIi ”processor SIMD instruction (hereafter VI
FIG. 11 is a diagram of a second conventional example showing the specifications of some comparison instructions (referred to as an S instruction).

【0009】同図において、オペランド”rs1”、”
rs2”、”rd”は64ビット長のレジスタであ
る。”[]”、”0x”、”←”の意味は、上記第1の
従来例と同じであるので説明は省略する。ただ
し、”[]”内に1つの数値のみ記述されているもの
は、レジスタのそのビット位置を示している。例え
ば、”rd[0]”、”rd[1]”、”rd
[2]”、”rd[3]”はそれぞれ「レジスタrdの
ビット0の1ビット」、「レジスタrdのビット1の1
ビット」、「レジスタrdのビット2の1ビット」、
「レジスタrdのビット3の1ビット」を示している。
In FIG. 1, operands “rs1”, “
“rs2” and “rd” are 64-bit registers, and the meanings of “[]”, “0x”, and “←” are the same as those in the first conventional example, and the description is omitted. When only one numerical value is described in [] ”, the bit position of the register is indicated. For example,“ rd [0] ”,“ rd [1] ”,“ rd ”
[2] ”and“ rd [3] ”are“ one bit of bit 0 of register rd ”and“ one bit of bit 1 of register rd ”, respectively.
Bit, 1 bit of bit 2 of register rd,
"1 bit of bit 3 of register rd" is shown.

【0010】また、ビット位置に関しては、本来「Ultr
a SPARC-IIi」プロセッサのビット並びはビッグエンデ
ィアン形式(MSBがビット0、LSBがビット63)
であるが、他の従来例と比較しやすいように図中ではリ
トルエンディアン形式(MSBがビット63、LSBが
ビット0)で表記している。
[0010] Also, regarding the bit position, "Ultr
The bit arrangement of the "a SPARC-IIi" processor is in big endian format (MSB is bit 0, LSB is bit 63)
However, for ease of comparison with other conventional examples, the data is represented in the little endian format (MSB is bit 63, LSB is bit 0) in the figure.

【0011】この情報処理装置では、レジスタを16ビ
ット毎に分割しそれぞれを比較して、条件成立時には”
0x1”を条件非成立時には”0x0”をレジスタrdの下位
4ビットにそれぞれ1ビットずつに格納している。
In this information processing apparatus, the register is divided every 16 bits, and each is compared.
When "0x1" is not satisfied, "0x0" is stored in the lower 4 bits of the register rd, one bit at a time.

【0012】これらにより、上記第1および第2の従来
例では、1つのレジスタに4つの16ビットのデータを
格納し、一度に比較することが可能となり、複数のデー
タを一括に処理する場合の処理能力を向上できる。例え
ば、画像処理などで1画素のRGBデータを1つのレジ
スタに格納しておき、ある特定のRGBデータのみを抽
出する時などに使用できる。
As a result, in the first and second conventional examples, four 16-bit data can be stored in one register and compared at a time, so that a plurality of data can be collectively processed. Processing capacity can be improved. For example, it is possible to store RGB data of one pixel in one register by image processing or the like, and to use it when extracting only specific RGB data.

【0013】上記第1および第2の従来例では、比較結
果をレジスタの16ビットまたは1ビットに反映してい
る比較命令を実装しているが、比較命令を実装せずに2
つの数の大きいまたは小さいほうを選択する最大値命令
または最小値命令を実装しているものもある(例えば、
「Alpha Architecture Handbook」、Degital Equipment
Corporation発行、p.4-151〜p.4-156参照)。
In the first and second conventional examples, a comparison instruction in which a comparison result is reflected in 16 bits or 1 bit of a register is implemented.
Some implement maximum or minimum instructions that select the larger or smaller of the numbers (e.g.,
"Alpha Architecture Handbook", Digital Equipment
Corporation, p.4-151 to p.4-156).

【0014】図22は従来の情報処理装置である「Alph
a」プロセッサのSIMD命令(以下、MVI命令とす
る)の一部の最小値命令の仕様を示す第3の従来例の図
である。
FIG. 22 shows a conventional information processing apparatus "Alph
FIG. 14 is a diagram of a third conventional example showing the specification of a part of the minimum value instruction of the SIMD instruction (hereinafter referred to as the MVI instruction) of the “a” processor.

【0015】同図において、オペランド”Ra”、”R
b”、”Rc”は64ビット長のレジスタであ
る。”[]”、”←”の意味は、上記第1の従来例と同
じであるので説明は省略する。”min(A,B)”は
A、Bのうちの小さいほうの値を選択するものである。
例えば、”C←min(A,B)”は「A、Bの小さい
ほうの値をCに格納する」を示している。
In FIG. 1, operands "Ra", "R"
“b” and “Rc” are 64-bit registers.The meanings of “[]” and “←” are the same as those in the first conventional example, and a description thereof is omitted. ”min (A, B) "Selects the smaller value of A and B.
For example, “C ← min (A, B)” indicates “store the smaller value of A and B in C”.

【0016】この情報処理装置では、レジスタを16ビ
ット毎に分割しそれぞれを比較して、小さいほうの値を
レジスタRcに格納している。
In this information processing apparatus, the register is divided every 16 bits, and each is compared, and the smaller value is stored in the register Rc.

【0017】上記第3の従来例と同様の最大値命令また
は最小値命令を実装している情報処理装置の他の命令仕
様として、「V830R/AV」プロセッサのSIMD命令(以
下、MIX2命令とする)もある(例えば、「NEC技法
Vol.51 No.3 / 1998」、日本電気(株)発行、p.50〜p.54
参照)。
As another instruction specification of the information processing apparatus which implements the maximum value instruction or the minimum value instruction similar to the third conventional example, the SIMD instruction of the "V830R / AV" processor (hereinafter referred to as MIX2 instruction) ) (For example, "NEC technology"
Vol.51 No.3 / 1998 '', NEC Corporation, p.50-p.54
reference).

【0018】これらにより、上記第3の従来例では、1
つのレジスタに4つの16ビットのデータを格納し、一
度に最大値または最小値を求めることが可能となり、複
数のデータを一括に処理する場合の処理能力を向上でき
る。
Thus, in the third conventional example, 1
Four 16-bit data can be stored in one register, and the maximum value or the minimum value can be obtained at a time, so that the processing capability when processing a plurality of data at once can be improved.

【0019】上記第1および第2の従来例では比較命令
を実装し、上記第3の実施例では最大値命令または最小
値命令を実装しているが、この両方を実装しているもの
もある(例えば、「AltiVec Technology Programming E
nvironments Manual」、Motorola Inc.発行、p.4-1〜p.
4-41参照)。
In the first and second conventional examples, a comparison instruction is implemented, and in the third embodiment, a maximum value instruction or a minimum value instruction is implemented. (For example, “AltiVec Technology Programming E
nvironments Manual '', published by Motorola Inc., pp. 4-1 to p.
4-41).

【0020】図23は従来の情報処理装置である「Powe
rPC」プロセッサのSIMD命令(以下、AltiVe
c命令とする)の一部の比較命令および最小値命令の仕
様を示す第4の従来例の図である。
FIG. 23 shows a conventional information processing apparatus "Powe
rPC ”processor SIMD instruction (hereinafter referred to as“ AltiVe ”)
FIG. 13 is a diagram of a fourth conventional example showing the specifications of a part of the comparison instruction and the minimum value instruction (hereinafter referred to as c instruction).

【0021】同図において、オペランド”A”、”
B”、”C”は128ビット長のレジスタであり、”C
R6”は4ビット長の条件レジスタであ
る。”[]”、”0x”、”←”、”min(A,
B)”は上記第1および第3の従来例と同じであるので
説明は省略する。
In the figure, operands "A", "A"
B ”and“ C ”are 128-bit registers, and“ C ”
R6 "is a 4-bit condition register." [] "," 0x "," ← "," min (A,
B) "is the same as in the first and third conventional examples, and a description thereof will be omitted.

【0022】この情報処理装置では、レジスタを32ビ
ット毎に分割しそれぞれを比較して、条件成立時には”
0xffffffff”を条件非成立時には”0x00000000”を、レ
ジスタDの対応する32ビットの位置に格納している。
また、レジスタを32ビット毎に分割しそれぞれを比較
して、小さいほうの値をレジスタDに格納している。
In this information processing apparatus, the register is divided for every 32 bits, and they are compared with each other.
When “0xffffffff” is not satisfied, “0x00000000” is stored in the corresponding 32-bit position of the register D.
Further, the register is divided for every 32 bits, and each is compared, and the smaller value is stored in the register D.

【0023】これにより、上記第4の従来例では、1つ
のレジスタに4つの32ビットのデータを格納し、一度
に比較したり、最大値または最小値を求めることが可能
となり、複数のデータを一括に処理する場合の処理能力
を向上できる。
As a result, in the fourth conventional example, four 32-bit data can be stored in one register and compared at a time, or a maximum value or a minimum value can be obtained. It is possible to improve the processing capacity when processing all at once.

【0024】[0024]

【発明が解決しようとする課題】しかしながら上記従来
技術によれば、「比較した結果に基づいて演算を行う」
という処理を実行したい場合に、数多くの命令が必要と
なる。
However, according to the above prior art, "operation is performed based on the comparison result".
If you want to execute such processing, many instructions are required.

【0025】例えば、2つのレジスタA、Bにa1、a
2、a3、a4とb1、b2、b3、b4のそれぞれ4
つのデータが格納されており、それぞれのデータの大小
関係はa1<b1、a2>b2、a3>b3、a4<b
4とする。この時、A、Bのそれぞれのデータを比較し
て、レジスタAのデータのほうが小さい場合にレジスタ
Bのデータを足し込み、最終的にa1+b1、a2、a
3、a4+b4というデータを求めるというような、画
像合成等の画像処理によく使用される処理を考えてみ
る。
For example, a1 and a2 are stored in two registers A and B, respectively.
2, 4 each of a3, a4 and b1, b2, b3, b4
Data are stored, and the magnitude relation of each data is a1 <b1, a2> b2, a3> b3, a4 <b
4 is assumed. At this time, the data of A and B are compared, and if the data of register A is smaller, the data of register B is added, and finally a1 + b1, a2, a
3. Consider a process often used in image processing such as image synthesis, such as obtaining data of a4 + b4.

【0026】上記MMX命令を実行する情報処理装置の
場合は、レジスタA、Bを比較すると小さいデータに対
応する部分のビットがセットされるので、”0xffff0000
0000ffff”というデータが格納される。このデータとレ
ジスタBを論理積し、b1、0、0、b4というデータ
を生成し、これをレジスタAに加算すれば、最終的に求
めたいa1+b1、a2、a3、a4+b4というデー
タが得られる。上記AltiVec命令を実行する情報
処理装置の場合も同じである。
In the case of the information processing apparatus that executes the MMX instruction, a bit corresponding to small data is set by comparing the registers A and B, so that “0xffff0000” is set.
0000ffff "is stored. The data is logically ANDed with the register B to generate data b1, 0, 0, and b4, and this is added to the register A, so that a1 + b1, a2, The data a3 and a4 + b4 are obtained, and the same applies to an information processing apparatus that executes the above-mentioned Altivec instruction.

【0027】上記VIS命令を実行する情報処理装置の
場合は、レジスタA、Bを比較すると比較結果が下位4
ビットに格納されるので、下位4ビットは”1001”
というデータが格納される。このデータを通常の比較命
令で解析し、セットされているビットに対応するレジス
タBのデータをレジスタBから取り出して、レジスタA
の該当するデータに足し込むというプログラムをSIM
D命令でない通常の演算命令で書くことにより、最終的
に求めたいa1+b1、a2、a3、a4+b4という
データが得られる。
In the case of an information processing apparatus that executes the VIS instruction, when the registers A and B are compared,
The lower 4 bits are “1001”
Is stored. This data is analyzed by a normal comparison instruction, the data of the register B corresponding to the set bit is taken out from the register B, and the data of the register A
SIM to add the program to the corresponding data
By writing with a normal operation instruction other than the D instruction, data a1 + b1, a2, a3, and a4 + b4 to be finally obtained can be obtained.

【0028】上記MVI命令、MIX2命令を実行する
情報処理装置の場合は、最大値命令または最小値命令し
かなく、最大値または最小値を求めるために比較した結
果をどこにも格納しないので、通常の比較命令を用いて
レジスタA、Bに格納している4つのデータを順に比較
し、レジスタAのデータのほうが小さい場合に、レジス
タBの該当するデータを取り出し、レジスタAの該当す
るデータに足し込むというSIMD命令でない通常の演
算命令で書くことにより、最終的に求めたいa1+b
1、a2、a3、a4+b4というデータが得られる。
In the case of an information processing apparatus which executes the MVI instruction and the MIX2 instruction, there is only a maximum value instruction or a minimum value instruction, and the comparison result for obtaining the maximum value or the minimum value is not stored anywhere. The four data stored in the registers A and B are sequentially compared using a comparison instruction. If the data in the register A is smaller, the corresponding data in the register B is extracted and added to the corresponding data in the register A. A1 + b which is finally obtained by writing with a normal operation instruction other than the SIMD instruction
Data of 1, a2, a3, and a4 + b4 are obtained.

【0029】このように、画像処理でよく使用されるよ
うな比較した結果に基づいて演算を行う場合には、処理
速度が極端に遅くなるという課題を有していた。
As described above, when an operation is performed based on a comparison result often used in image processing, there is a problem that the processing speed becomes extremely slow.

【0030】本発明はかかる課題に鑑み、レジスタ上に
複数のデータを格納し、その複数のデータを一括に演算
するSIMD命令において、高速に比較した結果に基づ
いて演算を行う情報処理装置を提供することを目的とす
る。
In view of the foregoing, the present invention provides an information processing apparatus that stores a plurality of data in a register and performs an arithmetic operation based on a result of high-speed comparison in a SIMD instruction for operating the plurality of data collectively. The purpose is to do.

【0031】[0031]

【課題を解決するための手段】この課題を解決するため
本発明のプロセッサは、オペランドで指定したデータを
1つのデータとして、条件を満たすことを検証する第1
の命令と、オペランドで指定したデータを複数のデータ
として、条件を満たすことを検証する第2の命令と、条
件が成立した時のみに、オペランドで指定したデータを
複数のデータとして指定された操作を実行する条件実行
命令とを含む機械語命令を解読する命令解読手段と、前
記命令解読手段に従って命令を実行する命令実行手段
と、前記第1の命令で検証した結果指定された条件が成
立したことを示す第1の状態保持手段と、前記第2の命
令で検証した結果指定された条件が成立したことを示す
第2の状態保持手段とを備え、前記命令解読手段は前記
第1の命令を解読すると、オペランドで指定したデータ
を1つのデータとして条件を検証し、条件を満たせば前
記第1の状態保持手段に該条件が成立したことを示さ
せ、前記第2の命令を解読すると、オペランドで指定し
たデータを特定ビット数毎に複数のデータに分割し、分
割した複数のデータを各データ毎に条件を検証し、条件
を満たせば前記第2の状態保持手段に該条件が成立した
ことを各データ毎に示させ、前記条件実行命令を解読す
ると、オペランドで指定したデータを特定ビット数毎に
複数のデータに分割し、分割した複数の各データに対応
する前記第2の状態保持手段の対応する検証結果を吟味
し、条件が成立している時は、対応する分割したデータ
に対して前記命令実行手段で該命令中に指定された操作
を行い、条件が成立していない時は、対応する分割した
データに対して前記命令実行手段で該命令中に指定され
た操作を行わないように制御することを特徴とする。
In order to solve this problem, a processor according to the present invention uses a data designated by an operand as one data to verify that a condition is satisfied.
And a second instruction for verifying that a condition is satisfied by using the data specified by the operand as a plurality of data, and an operation specifying the data specified by the operand as a plurality of data only when the condition is satisfied Instruction decoding means for decoding a machine language instruction including a condition execution instruction for executing the instruction, instruction execution means for executing an instruction in accordance with the instruction decoding means, and a condition specified as a result of verification by the first instruction is satisfied And a second state holding means for indicating that a specified condition is satisfied as a result of verification by the second instruction. Is decoded, the condition specified by the operand is verified as one data, and if the condition is satisfied, the first state holding means indicates that the condition is satisfied, and the second instruction is When read, the data specified by the operand is divided into a plurality of data for each specific number of bits, the condition of each of the divided data is verified for each data, and if the condition is satisfied, the condition is stored in the second state holding means. Is established for each data, and when the conditional execution instruction is decoded, the data specified by the operand is divided into a plurality of data for each specific number of bits, and the second data corresponding to each of the plurality of divided data is divided. Examining the corresponding verification result of the state holding means, and when the condition is satisfied, the instruction execution means performs the operation specified in the instruction on the corresponding divided data, and the condition is satisfied. If not, the instruction execution means controls the corresponding divided data so that the operation specified in the instruction is not performed.

【0032】これにより、複数に分割した各データに対
して、条件実行命令は、前記状態保持手段に保持されて
いる検証結果に基づき、条件が成立したデータに対して
のみ演算を行うことができ、高速に演算することが可能
となる。
Thus, for each of the plurality of divided data, the condition execution instruction can perform an operation only on the data for which the condition is satisfied, based on the verification result held in the state holding means. , And can be operated at high speed.

【0033】ここでプロセッサにおける前記条件実行命
令は、前記第2の状態保持手段が、条件が成立している
ことを示している時に転送を行う命令、演算を行う命令
であるとしてもよい。
Here, the condition execution instruction in the processor may be an instruction to perform a transfer or an instruction to perform an operation when the second state holding means indicates that the condition is satisfied.

【0034】さらに、前記条件実行命令は、前記第2の
状態保持手段が、条件が成立していることを示している
時に第1の操作を行い、成立していないことを示してい
る時に第1の操作とは異なる第2の操作を行ってもよ
い。
Further, the condition execution instruction is used to execute the first operation when the second state holding means indicates that the condition is satisfied, and to execute the first operation when the second state holding means indicates that the condition is not satisfied. A second operation different from the first operation may be performed.

【0035】[0035]

【発明の実施の形態】以下、本発明の実施の形態におけ
る情報処理装置(以下プロセッサと呼ぶ)について、図
面を用いて説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an information processing apparatus (hereinafter referred to as a processor) according to an embodiment of the present invention will be described with reference to the drawings.

【0036】(実施の形態1)図1は、本発明の第1の
実施の形態におけるプロセッサに設けられるSIMD演
算フラグレジスタSFRのビット構成を示す図である。
(Embodiment 1) FIG. 1 is a diagram showing a bit configuration of a SIMD operation flag register SFR provided in a processor according to a first embodiment of the present invention.

【0037】同図のようにSIMD演算フラグレジスタ
SFRは、C0フラグ、C1フラグ、C2フラグ、C3
フラグの4ビットのフラグから構成されている。この4
ビットのフラグは、SIMD命令において比較命令を実
行した時に更新されるフラグであり、C0フラグは、ビ
ット48からビット63(MSB)までの16ビットの
データの比較において、C1フラグは、ビット32から
ビット47までの16ビットデータの比較において、C
2フラグは、ビット16からビット31までの16ビッ
トデータの比較において、C3フラグは、ビット0(L
SB)からビット15までの16ビットデータの比較に
おいて、それぞれ比較条件が成立した時にセットされ
る。
As shown in the figure, the SIMD operation flag register SFR stores C0 flag, C1 flag, C2 flag, C3 flag.
It consists of a 4-bit flag. This 4
The bit flag is updated when a comparison instruction is executed in the SIMD instruction. The C0 flag is used for comparing 16-bit data from bit 48 to bit 63 (MSB). In comparison of 16-bit data up to bit 47, C
The 2 flag is used for comparing 16-bit data from bit 16 to bit 31 and the C3 flag is used for comparing bit 0 (L
In the comparison of 16-bit data from SB) to bit 15, each bit is set when a comparison condition is satisfied.

【0038】なお、C0フラグ、C1フラグ、C2フラ
グ、C3フラグは、図1のように1本のレジスタ内に設
けてもよいし、異なるレジスタに設けてもよい。
The C0, C1, C2, and C3 flags may be provided in one register as shown in FIG. 1, or may be provided in different registers.

【0039】また、本発明の第1の実施の形態において
は、通常の演算用のフラグレジスタも存在するが、説明
を簡単にするために省略している。
Further, in the first embodiment of the present invention, a flag register for normal operation also exists, but is omitted for the sake of simplicity.

【0040】なお、SIMD演算用フラグレジスタは、
通常の演算用のフラグレジスタとは別に設けてもよい
し、同じレジスタに設けてもよい。
The SIMD operation flag register is
It may be provided separately from the normal operation flag register, or may be provided in the same register.

【0041】図2は、本発明の第1の実施の形態のSI
MD命令における比較命令の命令仕様を表す図である。
同図において、「vcmpeh Rm,Rn」、「vc
mpgh Rm,Rn」、「vcmpgeh Rm,R
n」はレジスタに格納されている4つのデータをそれぞ
れ比較する機械語命令であり、ニモニック形式で表して
いる。また、各命令毎に動作も図示してある。
FIG. 2 is a diagram showing an SI according to the first embodiment of the present invention.
FIG. 4 is a diagram illustrating an instruction specification of a comparison instruction in an MD instruction.
In the figure, “vccmpeh Rm, Rn”, “vc”
mpgh Rm, Rn "," vcmpgeh Rm, R
"n" is a machine language instruction for comparing each of the four data stored in the register, and is expressed in a mnemonic format. The operation is also shown for each instruction.

【0042】”vcmpeh”、”vcmpgh”、”
vcmpgeh”は、OPコードである。”Rm”、”
Rn”はオペランドであり、32ビット長のレジスタR
m、レジスタRnを示している。
"Vcmpeh", "vcmpgh", "
“vcmpgeh” is an OP code.
Rn "is an operand and a 32-bit register R
m and a register Rn.

【0043】”[]”内はレジスタのどのビット位置か
らどのビット位置までの範囲であるかを示している。例
えば、”Rm[15:0]”、”Rm[31:1
6]”、”Rm[47:32]”、”Rm[63:4
8]”はそれぞれ「レジスタRmのビット0(LSB)
からビット15までの16ビット」、「レジスタRmの
ビット16からビット31までの16ビット」、「レジ
スタRmのビット32からビット47までの16ビッ
ト」、「レジスタRmのビット48からビット63(M
SB)までの16ビット」を示している。また”C
0”、”C1”、”C2”、”C3”は、上記フラグレ
ジスタのC0フラグ、C1フラグ、C2フラグ、C3フ
ラグを示している。
"[]" Indicates a range from which bit position to which bit position of the register. For example, “Rm [15: 0]”, “Rm [31: 1]
6] ”,“ Rm [47:32] ”,“ Rm [63: 4
8] is “bit 0 (LSB) of register Rm
16 bits from bit 16 to bit 31 of register Rm "," 16 bits from bit 32 to bit 47 of register Rm ", and" bit 16 to bit 63 of register Rm (M
16) up to SB). Also, "C
“0”, “C1”, “C2”, and “C3” indicate the C0 flag, C1 flag, C2 flag, and C3 flag of the flag register.

【0044】「vcmpeh Rm,Rn」は「等し
い」ことを判定する比較命令であり、レジスタRm、レ
ジスタRnに格納されている4つの16ビットデータを
比較し、Rm[15:0]とRn[15:0]が等しけ
ればC3フラグを、Rm[31:16]とRn[31:
16]が等しければC2フラグを、Rm[47:32]
とRn[47:32]が等しければC1フラグを、Rm
[63:48]とRn[63:48]が等しければC0
フラグをセットする。
"Vcmpeh Rm, Rn" is a comparison instruction for judging "equal", compares four 16-bit data stored in the registers Rm and Rn, and outputs Rm [15: 0] and Rn [ 15: 0] are equal, the C3 flag is set to Rm [31:16] and Rn [31:
16] are equal, the C2 flag is set to Rm [47:32].
And Rn [47:32] are equal, the C1 flag is set to Rm
If [63:48] and Rn [63:48] are equal, C0
Set a flag.

【0045】「vcmpgeh Rm,Rn」は「大き
い」ことを判定する比較命令であり、レジスタRm、レ
ジスタRnに格納されている4つの16ビットデータを
比較し、Rm[15:0]がRn[15:0]より大き
ければC3フラグを、Rm[31:16]がRn[3
1:16]より大きければC2フラグを、Rm[47:
32]がRn[47:32]より大きければC1フラグ
を、Rm[63:48]がRn[63:48]より大き
ければC0フラグをセットする。
“Vcmpgeh Rm, Rn” is a comparison instruction for determining “large”, compares four 16-bit data stored in the registers Rm and Rn, and finds that Rm [15: 0] is Rn [ 15: 0], the C3 flag is set, and Rm [31:16] is set to Rn [3
1:16], the C2 flag is set, and Rm [47:
32] is larger than Rn [47:32], the C1 flag is set. If Rm [63:48] is larger than Rn [63:48], the C0 flag is set.

【0046】「vcmpgeh Rm,Rn」は「等し
いかまたは大きい」ことを判定する比較命令であり、レ
ジスタRm、レジスタRnに格納されている4つの16
ビットデータを比較し、Rm[15:0]とRn[1
5:0]が等しいかまたはRm[15:0]がRn[1
5:0]より大きければC3フラグを、Rm[31:1
6]とRn[31:16]が等しいかまたはRm[3
1:16]がRn[31:16]より大きければC2フ
ラグを、Rm[47:32]とRn[47:32]が等
しいかまたはRm[47:32]がRn[47:32]
より大きければC1フラグを、Rm[63:48]とR
n[63:48]が等しいかまたはRm[63:48]
がRn[63:48]より大きければC0フラグをセッ
トする。
"Vcmpgeh Rm, Rn" is a comparison instruction for judging "equal to or greater than", and the four 16 bits stored in the register Rm and the register Rn.
The bit data is compared, and Rm [15: 0] and Rn [1
5: 0] are equal or Rm [15: 0] is Rn [1
5: 0], the C3 flag is set to Rm [31: 1].
6] and Rn [31:16] are equal or Rm [3
1:16] is larger than Rn [31:16], the C2 flag is set, and Rm [47:32] is equal to Rn [47:32] or Rm [47:32] is Rn [47:32].
If larger, the C1 flag is set to Rm [63:48] and R
n [63:48] is equal or Rm [63:48]
Is larger than Rn [63:48], the C0 flag is set.

【0047】図3は、本発明の第1の実施の形態のSI
MD命令における条件付き命令の命令仕様を表す図であ
る。同図において、「vmovh Rm,Rn」、「v
swaph Rm,Rn」、「vaddh Rm,R
n」はレジスタに格納されている4つのデータをそれぞ
れSIMD演算フラグレジスタSFRの内容に基づき演
算する機械語命令であり、図2と同様にニモニック形式
で表している。また、各命令毎に動作も図2と同様に図
示してある。
FIG. 3 is a block diagram showing the SI according to the first embodiment of the present invention.
FIG. 5 is a diagram illustrating an instruction specification of a conditional instruction in an MD instruction. In the figure, “vmovh Rm, Rn”, “v
swap Rm, Rn "," vaddh Rm, R
"n" is a machine language instruction for calculating each of the four data stored in the register based on the contents of the SIMD operation flag register SFR, and is expressed in a mnemonic format as in FIG. The operation for each instruction is also shown in the same manner as in FIG.

【0048】”vmovh”、”vswaph”、”v
addh”は、OPコードである。”Rm”、”R
n”、”[]”、”C0”、”C1”、”C2”、”C
3”は、図2と同じであるので説明は省略する。
"Vmovh", "vswaph", "v
"addh" is an OP code. "Rm", "R"
n "," [] "," C0 "," C1 "," C2 "," C
3 ″ is the same as FIG. 2 and will not be described.

【0049】「vmovh Rm,Rn」はSIMD演
算フラグレジスタSFRの内容に基づき、レジスタの内
容を「転送する」命令であり、C3フラグが1の時はR
n[15:0]の内容をRm[15:0]に、C2フラ
グが1の時はRn[31:16]の内容をRm[31:
16]に、C1フラグが1の時はRn[47:32]の
内容をRm[47:32]に、C0フラグが1の時はR
n[63:48]の内容をRm[63:48]に転送す
る。フラグが0の場合は、対応する16ビットデータは
転送しない。
"Vmovh Rm, Rn" is an instruction to "transfer" the contents of the SIMD operation flag register SFR based on the contents of the register.
The content of n [15: 0] is set to Rm [15: 0], and when the C2 flag is 1, the content of Rn [31:16] is set to Rm [31:
16], the content of Rn [47:32] is set to Rm [47:32] when the C1 flag is 1, and Rn [47:32] is set when the C0 flag is 1.
The contents of n [63:48] are transferred to Rm [63:48]. When the flag is 0, the corresponding 16-bit data is not transferred.

【0050】「vswaph Rm,Rn」はSIMD
演算フラグレジスタSFRの内容に基づき、レジスタの
内容を「入れ換える」命令であり、C3フラグが1の時
はRn[15:0]の内容とRm[15:0]の内容
を、C2フラグが1の時はRn[31:16]の内容と
Rm[31:16]の内容を、C1フラグが1の時はR
n[47:32]の内容とRm[47:32]の内容
を、C0フラグが1の時はRn[63:48]の内容と
Rm[63:48]の内容を入れ換える。フラグが0の
場合は、対応する16ビットデータは入れ換えない。
"Vswap Rm, Rn" is SIMD
This is an instruction to “swap” the register contents based on the contents of the operation flag register SFR. When the C3 flag is 1, the contents of Rn [15: 0] and Rm [15: 0] are set, and the C2 flag is set to 1 When the C1 flag is 1, the contents of Rn [31:16] and the contents of Rm [31:16] are stored.
The contents of n [47:32] and Rm [47:32] are exchanged. When the C0 flag is 1, the contents of Rn [63:48] and Rm [63:48] are exchanged. If the flag is 0, the corresponding 16-bit data is not replaced.

【0051】「vaddh Rm,Rn」はSIMD演
算フラグレジスタSFRの内容に基づき、レジスタの内
容を「加算する」命令であり、C3フラグが1の時はR
n[15:0]の内容とRm[15:0]の内容を加算
しRn[15:0]に格納する。C2フラグが1の時は
Rn[31:16]の内容とRm[31:16]の内容
を加算しRn[31:16]に格納する。C1フラグが
1の時はRn[47:32]の内容とRm[47:3
2]の内容を加算しRn[47:32]に格納する。C
0フラグが1の時はRn[63:48]の内容とRm
[63:48]の内容を加算しRn[63:48]に格
納する。フラグが0の場合は、対応する16ビットデー
タは加算しない。
"Vaddh Rm, Rn" is an instruction for "adding" the contents of the SIMD operation flag register SFR based on the contents of the SIMD operation flag register SFR.
The contents of n [15: 0] and the contents of Rm [15: 0] are added and stored in Rn [15: 0]. When the C2 flag is 1, the contents of Rn [31:16] and the contents of Rm [31:16] are added and stored in Rn [31:16]. When the C1 flag is 1, the contents of Rn [47:32] and Rm [47: 3]
2] is added and stored in Rn [47:32]. C
When the 0 flag is 1, the contents of Rn [63:48] and Rm
The contents of [63:48] are added and stored in Rn [63:48]. If the flag is 0, the corresponding 16-bit data is not added.

【0052】図4は、本発明の第1の実施の形態におけ
るプロセッサの主要部の構成を示すブロック図である。
FIG. 4 is a block diagram showing a configuration of a main part of the processor according to the first embodiment of the present invention.

【0053】本プロセッサは、命令レジスタ101、命
令解読器102、レジスタファイル103、64ビット
演算器104、16ビット演算器105〜108、SI
MD演算制御部109、レジスタ書込制御部110、S
IMD演算フラグ格納部111、ラッチ112〜12
1、バス122〜125から構成されている。
The present processor comprises an instruction register 101, an instruction decoder 102, a register file 103, a 64-bit operation unit 104, 16-bit operation units 105 to 108, an SI
MD operation control unit 109, register write control unit 110, S
IMD operation flag storage unit 111, latches 112 to 12
1. It is composed of buses 122 to 125.

【0054】命令レジスタ101は、メモリからフェッ
チされた命令を順次保持する。
The instruction register 101 sequentially holds instructions fetched from the memory.

【0055】命令解読器102は、命令レジスタ101
に保持された命令を解読し、その命令実行を制御するた
めの各種制御信号を出力する。特に命令解読器102
は、図2に示したvcmpeh命令、vcmpgh命
令、vcmpgeh命令を解読した場合には、SIMD
演算フラグレジスタSFRを更新することを要求するた
めに、SIMD演算フラグ格納部111に出力している
フラグ更新要求信号620を有効にする。
The instruction decoder 102 includes an instruction register 101
And outputs various control signals for controlling the execution of the instruction. In particular, the command decoder 102
Is SIMD if the vcmpeg instruction, vcmpgh instruction, and vcmpgeh instruction shown in FIG.
In order to request that the operation flag register SFR be updated, the flag update request signal 620 output to the SIMD operation flag storage unit 111 is made valid.

【0056】レジスタファイル103は、64ビット長
の複数の汎用レジスタから構成され、命令解読器102
から出力されるレジスタ書込要求信号606、607
と、SIMD演算フラグ格納部111から出力されるS
IMD演算フラグ情報608〜611に基づき、レジス
タ書込制御部110で生成したレジスタ書込制御信号に
従って、バス122、123にレジスタデータを出力
し、バス124、125上のデータをレジスタに取り込
む。
The register file 103 is composed of a plurality of general-purpose registers having a length of 64 bits.
Write request signals 606 and 607 output from
And S output from the SIMD operation flag storage unit 111.
Based on the IMD operation flag information 608 to 611, register data is output to the buses 122 and 123 according to the register write control signal generated by the register write control unit 110, and the data on the buses 124 and 125 is taken into the register.

【0057】64ビット演算器104は、64ビットデ
ータを1つのデータとして扱うスカラデータの演算を行
うスカラ演算器で、命令解読器102の制御に従って、
バス122、123上のデータをラッチ112、113
を経由して取り込み、命令のOPコードで指定された演
算を行う。
The 64-bit arithmetic unit 104 is a scalar arithmetic unit that performs scalar data operation that treats 64-bit data as one data.
Data on buses 122 and 123 are latched 112 and 113
And performs the operation specified by the OP code of the instruction.

【0058】16ビット演算器105〜108は、64
ビットデータを4つの16ビットデータに分割して扱う
SIMDデータの演算を行う演算器(以下、4つの16
ビット演算器105〜108を一括して表現する時には
SIMD演算器と呼ぶ)である。命令解読器102から
出力されるSIMD演算要求信号601と、SIMD演
算フラグ格納部111から出力されるSIMD演算フラ
グ情報608〜611に基づき、SIMD演算制御部1
09で生成したSIMD演算制御信号602〜605に
従って、バス122、123上のデータをラッチ114
〜121を経由して取り込み、命令のOPコードで指定
された演算を行うとともに、演算結果に基づきSIMD
演算フラグを生成するために必要なSIMDフラグ生成
情報621〜628を出力する。
The 16-bit arithmetic units 105 to 108 have 64
An arithmetic unit (hereinafter, referred to as four 16 bits) that performs an operation on SIMD data that handles bit data divided into four 16 bit data
The bit arithmetic units 105 to 108 are collectively expressed as a SIMD arithmetic unit.) Based on the SIMD operation request signal 601 output from the instruction decoder 102 and the SIMD operation flag information 608 to 611 output from the SIMD operation flag storage unit 111, the SIMD operation control unit 1
In accordance with the SIMD operation control signals 602 to 605 generated in step 09, the data on the buses 122 and 123 are latched 114
To 121, perform the operation specified by the OP code of the instruction, and execute SIMD based on the operation result.
It outputs SIMD flag generation information 621 to 628 necessary for generating the operation flag.

【0059】SIMD演算制御部109は、命令解読器
102から出力されるSIMD演算要求信号601と、
SIMD演算フラグ格納部111から出力されるSIM
D演算フラグ情報608〜611に基づき、16ビット
演算器105〜108を制御するSIMD演算制御信号
602〜605を出力する。
The SIMD operation control unit 109 includes: a SIMD operation request signal 601 output from the instruction decoder 102;
SIM output from SIMD operation flag storage unit 111
It outputs SIMD operation control signals 602 to 605 for controlling the 16-bit operation units 105 to 108 based on the D operation flag information 608 to 611.

【0060】レジスタ書込制御部110は、命令解読器
102から出力されるレジスタ書込要求信号606、6
07と、SIMD演算フラグ格納部111から出力され
るSIMD演算フラグ情報608〜611に基づき、バ
ス124、125上のデータをレジスタファイル103
のレジスタへ書き込むのを制御するレジスタ書込制御信
号612〜619を出力する。
Register write control section 110 outputs register write request signals 606 and 6 output from instruction decoder 102.
07 and the SIMD operation flag information 608 to 611 output from the SIMD operation flag storage unit 111, the data on the buses 124 and 125 are stored in the register file 103.
, And outputs register write control signals 612 to 619 for controlling writing to the register.

【0061】SIMD演算フラグ格納部111は、命令
解読器102から出力されるフラグ更新要求信号620
と、SIMD演算器から出力されるSIMDフラグ生成
情報621〜628に基づき、SIMD演算フラグレジ
スタSFRを更新する。
The SIMD operation flag storage unit 111 stores a flag update request signal 620 output from the instruction decoder 102.
And updates the SIMD operation flag register SFR based on the SIMD flag generation information 621 to 628 output from the SIMD operation unit.

【0062】図5は、図4の命令解読器102に図2、
図3に示すSIMD命令を入力した場合の入出力論理を
表した説明図(真理値表)である。
FIG. 5 shows the instruction decoder 102 of FIG.
FIG. 4 is an explanatory diagram (truth value table) showing input / output logic when the SIMD instruction shown in FIG. 3 is input.

【0063】同図では、入力、出力ともに2進数で表し
ており、”vcmpeh”、”vcmpgh”、”vc
mpgeh”、”vmovh”、”vswaph”、”
vaddh”の機械語命令が入力された場合のSIMD
演算要求信号601、レジスタ書込要求信号606、6
07、フラグ更新要求信号620のそれぞれの出力を示
している。SIMD演算要求信号601の”000
0”、”0001”、”0010”、”0100”、”
1000”はそれぞれ「nop」、「mov」、「sw
ap」、「add」、「cmp」を表しており、順に
「何もしない」、「転送」、「入れ換え」、「加算」を
実行することをSIMD演算器に要求している。ただ
し、”0011”、”0101”〜”0111”、”1
001”〜”1111”は”reserved”とし出
力されないものとする。レジスタ書込要求信号606、
607は、それぞれ1つのレジスタへの書き込みに対応
しており、合計2つのレジスタへの書き込みの要求を示
している。”1”の場合がレジスタへの書き込みを要求
している。ただし、SIMD命令以外の場合は、それぞ
れの命令に依存してレジスタ書込要求信号606、60
7が出力されるので、図中では「命令に依存」と表記し
ている。例えば、通常の加算命令の場合には、演算結果
は1つのレジスタのみに書き込むため、レジスタ書込要
求信号606が”1”、607が”0”となる。フラグ
更新要求信号620の”00”、”01”、”1
0”、”11”はそれぞれ「nop」、「eq」、「g
t」、「ge」を表しており、順に「更新しない」、
「等しいことを判定し更新する」、「大きいことを判定
し更新する」、「等しいかまたは大きいことを判定し更
新する」を要求していることを示している。
In the figure, both input and output are represented by binary numbers, and “vcmpeh”, “vcmpgh”, “vc”
mpgeh "," vmovh "," vswaph ","
SIMD when the machine language command “vaddh” is input
Operation request signal 601, register write request signals 606 and 6
07 and the flag update request signal 620 are shown. “000” of the SIMD operation request signal 601
0 "," 0001 "," 0010 "," 0100 ","
1000 ”are“ nop ”,“ mov ”, and“ sw ”, respectively.
“ap”, “add”, and “cmp”, and requests the SIMD arithmetic unit to execute “do nothing”, “transfer”, “swap”, and “add” in order. However, “0011”, “0101” to “0111”, “1”
001 ”to“ 1111 ”are“ reserved ”and are not output.
Reference numerals 607 each correspond to writing to one register, and indicate requests for writing to a total of two registers. The case of "1" requests writing to the register. However, in the case other than the SIMD instruction, the register write request signals 606 and 60 depend on each instruction.
7 is output, and is described as "depending on the instruction" in the figure. For example, in the case of a normal addition instruction, since the operation result is written into only one register, the register write request signal 606 becomes “1” and the register write request signal 607 becomes “0”. “00”, “01”, “1” of the flag update request signal 620
0 ”and“ 11 ”are“ nop ”,“ eq ”, and“ g ”, respectively.
t "," ge ", and" do not update ",
This indicates that the user requests "determine and update equality", "determine and update largeness", and "determine and update equality or greater".

【0064】図6は、図4のSIMD演算制御部109
の内部構成を示すブロック図である。
FIG. 6 shows the SIMD operation control unit 109 of FIG.
FIG. 2 is a block diagram showing an internal configuration of the device.

【0065】このSIMD演算制御部109は、フリッ
プフロップ201〜204と、論理ゲート205〜20
7から構成される。点線で囲んだ箇所は全て同じ回路で
あるため、図中では省略している。
The SIMD operation control unit 109 includes flip-flops 201 to 204 and logic gates 205 to 20
7 is comprised. The portions enclosed by the dotted line are all the same circuit, and are omitted in the figure.

【0066】フリップフロップ201〜204は、タイ
ミングを合わせるためのものであり、命令解読器102
から出力されるSIMD演算要求信号601をラッチす
る。論理ゲート205〜207は、フリップフロップ2
01〜204にラッチされた内容と、SIMD演算フラ
グ格納部111から出力されるSIMD演算フラグ情報
608〜611の内容に基づき、SIMD演算制御信号
602〜605を出力する。SIMD演算制御信号60
2はビット63〜48に対する演算の、SIMD演算制
御信号603はビット47〜32に対する演算の、SI
MD演算制御信号604はビット31〜16に対する演
算の、SIMD演算制御信号605はビット15〜0に
対する演算の制御信号である。
The flip-flops 201 to 204 are for adjusting timing, and the instruction decoder 102
Latches the SIMD operation request signal 601 output from. Logic gates 205 to 207 are connected to flip-flop 2
SIMD operation control signals 602 to 605 are output based on the contents latched in 01 to 204 and the contents of SIMD operation flag information 608 to 611 output from the SIMD operation flag storage unit 111. SIMD operation control signal 60
2 is an operation for bits 63 to 48, and a SIMD operation control signal 603 is an operation for bits 47 to 32.
The MD operation control signal 604 is a control signal for operations on bits 31 to 16, and the SIMD operation control signal 605 is a control signal for operations on bits 15 to 0.

【0067】図7に論理ゲート205〜207の入出力
論理を表した説明図(真理値表)を示す。同図では、入
力、出力ともに2進数で表している。
FIG. 7 is an explanatory diagram (truth value table) showing the input / output logic of the logic gates 205 to 207. In the figure, both input and output are represented by binary numbers.

【0068】同図において、SIMD演算要求信号60
1、およびSIMD演算制御信号602の意味は、図5
の場合と同じなので説明は省略する。ただし、SIMD
演算制御信号602において、”0000”、”000
1”、”0010”、”0100”、”1000”以外
は”reserved”とし出力しないものとする。S
IMD演算フラグ情報608は、SIMD演算フラグ格
納部111の出力であり、SIMD演算フラグレジスタ
SFRのC0フラグの内容である。ここで、SIMD演
算制御信号603〜605に関しては、SIMD演算制
御信号602と同じ論理なので、真理値表を省略してい
る。
In the figure, SIMD operation request signal 60
1 and the meaning of the SIMD operation control signal 602 are shown in FIG.
Therefore, the description is omitted. However, SIMD
In the operation control signal 602, “0000”, “000”
Values other than “1”, “0010”, “0100”, and “1000” are “reserved” and are not output.
The IMD operation flag information 608 is an output of the SIMD operation flag storage unit 111 and is the content of the C0 flag of the SIMD operation flag register SFR. Here, since the SIMD operation control signals 603 to 605 have the same logic as the SIMD operation control signal 602, the truth table is omitted.

【0069】SIMD演算制御部109は、SIMD演
算フラグ情報608〜611が”1”の場合は、SIM
D演算要求信号601をそのままSIMD演算制御信号
602〜605に出力し、”0”の場合は、下位3ビッ
トを”0”にし”1000(cmp)”以外のSIMD
演算要求信号601を”0000(nop)”にしてS
IMD演算制御信号602〜605に出力している。
When the SIMD operation flag information 608 to 611 is “1”, the SIMD operation control
The D operation request signal 601 is output as it is to the SIMD operation control signals 602 to 605. If the signal is "0", the lower 3 bits are set to "0" and SIMD other than "1000 (cmp)".
Set the operation request signal 601 to “0000 (nop)” and set S
The IMD operation control signals 602 to 605 are output.

【0070】図8は、図4のレジスタ書込制御部110
の内部構成を示すブロック図である。
FIG. 8 shows the register write control unit 110 of FIG.
FIG. 2 is a block diagram showing an internal configuration of the device.

【0071】このレジスタ書込制御部110は、フリッ
プフロップ202〜204、301〜306と、論理ゲ
ート307〜310から構成される。点線で囲んだ箇所
は全て同じ回路であるため、図中では省略している。
The register write control unit 110 includes flip-flops 202 to 204 and 301 to 306, and logic gates 307 to 310. The portions enclosed by the dotted line are all the same circuit, and are omitted in the figure.

【0072】フリップフロップ202〜204は、図6
に示したものと同じであり、命令解読器102から出力
されるSIMD演算要求信号601の下位3ビットをラ
ッチする。フリップフロップ301〜306はタイミン
グを合わせるためのものであり、命令解読器102から
出力されるレジスタ書込要求信号606、607をラッ
チする。フリップフロップ301〜304はクロックの
立ち上がりにラッチし、フリップフロップ305〜30
6はクロックの立ち下がりにラッチする。本実施の形態
では、レジスタに書き込むのをクロック立ち上がりにし
ているので、その時に安定している信号にするためにフ
リップフロップ305〜306でクロックの立ち下がり
でラッチし、クロックの立ち上がり時に変化しないよう
にしている。倫理ゲート307〜310は、フリップフ
ロップ301、302にラッチされた内容と、SIMD
演算要求信号601をフリップフロップ202〜204
にラッチされた内容と、SIMD演算フラグ格納部11
1から出力されるSIMD演算フラグ情報608〜61
1に基づき、レジスタ書込制御信号612〜619を出
力する。レジスタ書込制御信号612、613はビット
63〜48に対する書込の、レジスタ書込制御信号61
4、615はビット47〜32に対する書込の、レジス
タ書込制御信号616、617はビット31〜16に対
する書込の、レジスタ書込制御信号618、619はビ
ット15〜0に対する書込の制御信号である。また、レ
ジスタ書込制御信号612、614、616、618
で、同じ1つのレジスタに対する書込を制御し、レジス
タ書込制御信号613、615、617、619で、別
の1つのレジスタに対する書込を制御する。
The flip-flops 202 to 204 are shown in FIG.
And latches the lower 3 bits of the SIMD operation request signal 601 output from the instruction decoder 102. The flip-flops 301 to 306 are for adjusting timing, and latch register write request signals 606 and 607 output from the instruction decoder 102. The flip-flops 301 to 304 latch at the rising edge of the clock, and
6 latches at the falling edge of the clock. In this embodiment, since writing to the register is performed at the rising edge of the clock, the signal is latched by the flip-flops 305 to 306 at the falling edge of the clock so that the signal is stable at that time. I have to. The ethics gates 307 to 310 determine the contents latched by the flip-flops 301 and 302 and the SIMD
The operation request signal 601 is supplied to the flip-flops 202 to 204.
And the SIMD operation flag storage unit 11
SIMD operation flag information 608 to 61 output from 1
1 to output register write control signals 612 to 619. Register write control signals 612 and 613 are register write control signals 61 for writing to bits 63 to 48.
4 and 615 are control signals for writing to bits 47 to 32, register write control signals 616 and 617 are control signals for writing to bits 31 to 16, and register write control signals 618 and 619 are control signals for writing to bits 15 to 0. It is. Also, register write control signals 612, 614, 616, 618
, Writing to the same register is controlled, and writing to another register is controlled by register write control signals 613, 615, 617, and 619.

【0073】図9に論理ゲート307〜310の入出力
論理を表した説明図(真理値表)を示す。同図では、入
力、出力ともに2進数で表している。
FIG. 9 is an explanatory diagram (truth table) showing the input / output logic of the logic gates 307 to 310. In the figure, both input and output are represented by binary numbers.

【0074】同図において、SIMD演算要求信号60
1、レジスタ書込要求信号606、607、およびSI
MD演算フラグ情報608の意味は、図5、および図7
と同じなので説明は省略する。ここで、レジスタ書込制
御信号614〜619に関しては、レジスタ書込制御信
号612、613と同じ論理なので、真理値表を省略し
ている。
In the figure, SIMD operation request signal 60
1, register write request signals 606 and 607, and SI
The meaning of the MD operation flag information 608 is described in FIGS.
Therefore, the description is omitted. Here, since the register write control signals 614 to 619 have the same logic as the register write control signals 612 and 613, the truth table is omitted.

【0075】レジスタ書込制御部110は、SIMD演
算フラグ情報608〜611が”1”の場合は、レジス
タ書込制御信号612〜619はレジスタ書込要求信号
606、607をそのまま出力し、”0”の場合は、レ
ジスタ書込制御信号612、619は、SIMD演算要
求信号601が”0000(nop)”、”1000
(cmp)”の時はレジスタ要求信号606、607を
そのまま、”0001(mov)”、”0010(sw
ap)”、”0100(add)”の時はレジスタ書込
要求信号606、607を”0”にして出力している。
When the SIMD operation flag information 608 to 611 is “1”, the register write control unit 110 outputs the register write request signals 606 and 607 as they are, and outputs “0”. In the case of “”, the register write control signals 612 and 619 indicate that the SIMD operation request signal 601 is “0000 (nop)” and “1000”.
(Cmp) ", the register request signals 606 and 607 are left as they are, and" 0001 (mov) "and" 0010 (sw
ap) ”and“ 0100 (add) ”, the register write request signals 606 and 607 are output as“ 0 ”.

【0076】図10は、図4のSIMD演算フラグ格納
部111の内部構成を示すブロック図である。
FIG. 10 is a block diagram showing the internal configuration of the SIMD operation flag storage unit 111 of FIG.

【0077】このSIMD演算フラグ格納部111は、
フリップフロップ401〜407と、論理ゲート408
〜413から構成される。点線で囲んだ箇所は全て同じ
回路であるため、図中では省略している。
The SIMD operation flag storage unit 111 stores
Flip-flops 401 to 407 and a logic gate 408
To 413. The portions enclosed by the dotted line are all the same circuit, and are omitted in the figure.

【0078】フリップフロップ401〜404は、SI
MD演算によって生成されたフラグをラッチするもの
で、それぞれ図1のSIMD演算フラグレジスタSFR
のC0フラグ、C1フラグ、C2フラグ、C3フラグに
対応する。フリップフロップ405〜407は、タイミ
ングを合わせるためのものであり、フリップフロップ4
05、406は命令解読器102から出力されるフラグ
更新要求信号620をラッチし、フリップフロップ40
7は論理ゲート408で生成した信号をラッチしフラグ
更新制御信号629を出力する。フリップフロップ40
5、406はクロックの立ち上がりにラッチし、フリッ
プフロップ407はクロックの立ち下がりにラッチす
る。本実施の形態では、SIMD演算フラグレジスタの
更新をクロック立ち上がりにしているので、その時に安
定している信号にするためにフリップフロップ407で
クロックの立ち下がりでラッチし、クロックの立ち上が
り時に変化しないようにしている。論理ゲート408
は、フリップフロップ405、406にラッチされた内
容に基づき、フラグを更新する時に”1”になるフラグ
更新制御信号629を生成する。具体的には、論理ゲー
ト408は、フラグ更新要求信号620のどちらかのビ
ットが”1”の場合に”1”を出力する。これにより、
フラグ要求信号620が「等しいことを判定し更新す
る”01(eq)”」、「大きいことを判定し更新す
る”10(gt)”」、「等しいかまたは大きいことを
判定し更新する”11(ge)”」の時にフリップフロ
ップ401〜404にフラグをラッチすることになる。
論理ゲート409〜413は、フリップフロップ40
5、406にラッチされた内容と、16ビット演算器1
05〜108が出力するSIMDフラグ生成情報621
〜628に基づき、SIMD演算フラグレジスタSFR
のC0フラグ、C1フラグ、C2フラグ、C3フラグに
格納するフラグを生成する。SIMDフラグ生成情報6
21、622はビット63〜48に、SIMDフラグ生
成情報623、624はビット47〜32に、SIMD
フラグ生成情報625、626はビット31〜16に、
SIMDフラグ生成情報627〜628はビット15〜
0に対応するフラグ生成情報である。また、SIMDフ
ラグ生成情報621、623、625、627は、それ
ぞれの16ビットデータにおいて比較結果が「等しい」
場合に”1”になり、SIMDフラグ生成情報622、
624、626、628は、それぞれの16ビットデー
タにおいて比較結果が「大きい」場合に”1”になる。
論理ゲート409〜413の論理は、論理ゲート412
がセレクタの役割をするので、フラグ更新要求信号62
0が”00(nop)”の時は論理ゲート409〜41
1が”0”を出力するので、論理ゲート412はSIM
Dフラグ生成情報621、622、論理ゲート413出
力のいずれも選択しない。フラグ更新要求信号620
が”01(eq)”の時は論理ゲート409が”1”を
出力するので論理ゲート412はSIMDフラグ生成情
報621を選択する。フラグ更新要求信号620が”1
0(gt)”の時は論理ゲート410が”1”を出力す
るので論理ゲート412はSIMDフラグ生成情報62
2を選択する。フラグ更新要求信号620が”11(g
e)”の時は論理ゲート411が”1”を出力するので
論理ゲート412は論理ゲート413出力(SIMDフ
ラグ生成情報621、622の論理和)を選択する。こ
れにより、フラグ要求信号620が「等しいことを判定
し更新する”01(eq)”」の時には「等しい」場合
に”1”になるSIMDフラグ生成情報621、62
3、625、627を、「大きいことを判定し更新す
る”10(gt)”」の時には「大きい」場合に”1”
になるSIMDフラグ生成情報622、624、62
6、628を、「等しいかまたは大きいことを判定し更
新する”11(ge)”」の時には上記SIMDフラグ
生成情報621〜628の同じ16ビットデータに対応
するもの同士を論理和した内容をフリップフロップ40
1〜404にラッチすることになる。
The flip-flops 401 to 404 are connected to the SI
The flag generated by the MD operation is latched. The SIMD operation flag register SFR in FIG.
Correspond to the C0, C1, C2, and C3 flags. The flip-flops 405 to 407 are for adjusting timing, and the flip-flop 4
05 and 406 latch the flag update request signal 620 output from the instruction decoder 102, and
7 latches the signal generated by the logic gate 408 and outputs a flag update control signal 629. Flip-flop 40
5, 406 latch at the rising edge of the clock, and the flip-flop 407 latches at the falling edge of the clock. In this embodiment, since the update of the SIMD operation flag register is performed at the rising edge of the clock, the signal is latched at the falling edge of the clock by the flip-flop 407 so that the signal is stable at that time. I have to. Logic gate 408
Generates a flag update control signal 629 that becomes "1" when updating the flag, based on the content latched by the flip-flops 405 and 406. Specifically, the logic gate 408 outputs “1” when either bit of the flag update request signal 620 is “1”. This allows
The flag request signal 620 is "determined equality and updated" 01 (eq) "", "determined large and updated" 10 (gt) "", "determined equality or greater and updated" 11 (Ge) At the time of "", the flag is latched in the flip-flops 401 to 404.
The logic gates 409 to 413 are connected to the flip-flop 40
5, the contents latched in 406 and the 16-bit arithmetic unit 1
SIMD flag generation information 621 output from 05 to 108
628 based on SIMD operation flag register SFR
The flag to be stored in the C0, C1, C2, and C3 flags is generated. SIMD flag generation information 6
21 and 622 are in bits 63 to 48, and the SIMD flag generation information 623 and 624 are in bits 47 to 32.
The flag generation information 625 and 626 are bits 31 to 16,
The SIMD flag generation information 627 to 628 includes bits 15 to
This is flag generation information corresponding to 0. The SIMD flag generation information 621, 623, 625, and 627 indicate that the comparison result is “equal” for each 16-bit data.
In this case, it becomes “1” and SIMD flag generation information 622,
624, 626, and 628 become "1" when the comparison result is "large" in the respective 16-bit data.
The logic of the logic gates 409 to 413 is
Serves as a selector, so that the flag update request signal 62
When 0 is "00 (nop)", logic gates 409-41
Since 1 outputs “0”, the logic gate 412
Neither the D flag generation information 621 or 622 nor the output of the logic gate 413 is selected. Flag update request signal 620
Is "01 (eq)", the logic gate 409 outputs "1", and the logic gate 412 selects the SIMD flag generation information 621. When the flag update request signal 620 is "1"
When "0 (gt)", the logic gate 410 outputs "1", so that the logic gate 412 outputs the SIMD flag generation information 62.
Select 2. When the flag update request signal 620 is "11 (g
In the case of “e)”, the logic gate 411 outputs “1”, so that the logic gate 412 selects the output of the logic gate 413 (the logical sum of the SIMD flag generation information 621 and 622), whereby the flag request signal 620 becomes “1”. SIMD flag generation information 621, 62 that becomes “1” when “equal” when “01 (eq)” is determined and updated to determine that they are equal
3, 625, and 627 are "1" when "large" when "judgment and update is large" (10 (gt) "")
SIMD flag generation information 622, 624, 62
When the values of 6 and 628 are "11 (ge) to judge that they are equal or greater and updated", the contents obtained by logically ORing the SIMD flag generation information 621 to 628 corresponding to the same 16-bit data are flip-flopped. Step 40
1 to 404.

【0079】図11は、図4のレジスタファイル103
内の1本のレジスタの構成を示すブロック図である。
FIG. 11 shows the register file 103 of FIG.
FIG. 3 is a block diagram showing a configuration of one register in FIG.

【0080】このレジスタは、フリップフロップ501
〜508と、論理ゲート509〜540から構成され
る。同図において、ビット63〜48の各ビットの回路
は同じであるので、ビット62〜49のビットは省略し
てビット63とビット48のみを記載している。同様に
ビット47〜32も、ビット31〜16も、ビット15
〜0もそれぞれ各ビットの回路は同じであるので、ビッ
ト46〜33、ビット30〜17、ビット14〜1のビ
ットは省略している。
This register has a flip-flop 501
To 508 and logic gates 509 to 540. In the figure, since the circuits of the bits 63 to 48 are the same, the bits 62 to 49 are omitted and only the bits 63 and 48 are shown. Similarly, bits 47 to 32, bits 31 to 16, bit 15
Since the circuit of each bit is the same for .about.0, the bits of bits 46 to 33, bits 30 to 17, and bits 14 to 1 are omitted.

【0081】フリップフロップ501〜508は、1本
のレジスタの各ビットに対応し、バス124またはバス
125上のいずれかのデータを論理ゲート517〜52
4を介してラッチする。論理ゲート509〜516は、
レジスタ書込制御信号612〜619と、本レジスタが
書込対象である時に”1”になる書込対象レジスタ選択
信号に基づき、フリップフロップ501〜508へのラ
ッチを許可する信号(イネーブル信号)を生成する。具
体的には、フリップフロップ501、502はレジスタ
書込制御信号612、613のどちらかが”1”でかつ
書込対象レジスタ選択信号が”1”の場合に、フリップ
フロップ503、504はレジスタ書込制御信号61
4、615のどちらかが”1”でかつ書込対象レジスタ
選択信号が”1”の場合に、フリップフロップ505、
506はレジスタ書込制御信号616、617のどちら
かが”1”でかつ書込対象レジスタ選択信号が”1”の
場合に、フリップフロップ507、508はレジスタ書
込制御信号618、619のどちらかが”1”でかつ書
込対象レジスタ選択信号が”1”の場合にラッチする。
論理ゲート517〜524は、バス124、125上の
データと、レジスタ書込制御信号612〜619に基づ
き、フリップフロップ501〜508(レジスタ)に書
き込むデータを生成する。論理ゲート517〜524の
各ゲートはセレクタの役割をするので、論理ゲート51
7、518においては、レジスタ書込制御信号612
が”1”の場合にバス124を、レジスタ書込制御信号
613が”1”の場合にバス125を選択する。論理ゲ
ート519、520においては、レジスタ書込制御信号
614が”1”の場合にバス124を、レジスタ書込制
御信号615が”1”の場合にバス125を選択する。
論理ゲート521、522においては、レジスタ書込制
御信号616が”1”の場合にバス124を、レジスタ
書込制御信号617が”1”の場合にバス125を選択
する。論理ゲート523〜524においては、レジスタ
書込制御信号618が”1”の場合にバス124を、レ
ジスタ書込制御信号619が”1”の場合にバス125
を選択する。これにより、フリップフロップ501〜5
08(レジスタ)は、レジスタ書込制御信号612、6
14、616、618が”1”の場合にはバス124上
のデータを、レジスタ書込制御信号613、615、6
17、619が”1”の場合にはバス125上のデータ
を取り込みラッチすることになる。論理ゲート525〜
540は、トライステートバッファであり、フリップフ
ロップ501〜508(レジスタ)に格納されているデ
ータをバス122、またはバス123に出力する。
The flip-flops 501 to 508 correspond to each bit of one register and transfer any data on the bus 124 or the bus 125 to the logic gates 517 to 52.
Latch via 4. The logic gates 509 to 516
Based on register write control signals 612 to 619 and a write target register selection signal which becomes "1" when this register is a write target, a signal (enable signal) for permitting latching to flip-flops 501 to 508 is provided. Generate. Specifically, when either of the register write control signals 612 and 613 is “1” and the write target register selection signal is “1”, the flip-flops 503 and 504 output the register write data. Control signal 61
4 or 615 is “1” and the write target register selection signal is “1”, the flip-flop 505,
Reference numeral 506 denotes a case where one of the register write control signals 616 and 617 is “1” and the register selection signal to be written is “1”, and the flip-flops 507 and 508 output one of the register write control signals 618 and 619. Is "1" and the write target register selection signal is "1".
The logic gates 517 to 524 generate data to be written to the flip-flops 501 to 508 (register) based on the data on the buses 124 and 125 and the register write control signals 612 to 619. Since each of the logic gates 517 to 524 functions as a selector, the logic gate 51
7, 518, the register write control signal 612
Is "1", the bus 124 is selected, and when the register write control signal 613 is "1", the bus 125 is selected. The logic gates 519 and 520 select the bus 124 when the register write control signal 614 is “1”, and select the bus 125 when the register write control signal 615 is “1”.
The logic gates 521 and 522 select the bus 124 when the register write control signal 616 is “1”, and select the bus 125 when the register write control signal 617 is “1”. In the logic gates 523 to 524, the bus 124 is used when the register write control signal 618 is "1", and the bus 125 is used when the register write control signal 619 is "1".
Select Thereby, the flip-flops 501 to 5
08 (register) is a register write control signal 612,6
When the bits 14, 616 and 618 are "1", the data on the bus 124 is transferred to the register write control signals 613, 615 and 6
When 17 and 619 are "1", the data on the bus 125 is fetched and latched. Logic gate 525
Reference numeral 540 denotes a tri-state buffer which outputs data stored in the flip-flops 501 to 508 (register) to the bus 122 or the bus 123.

【0082】以上のように構成されたプロセッサについ
て、その動作を説明する。
The operation of the processor configured as described above will be described.

【0083】図12は、本プロセッサにおいて、図2、
図3で示す命令を実行した場合のタイムチャートを示
す。
FIG. 12 is a block diagram of the present processor.
4 shows a time chart when the instruction shown in FIG. 3 is executed.

【0084】同図では次の命令を実行した場合の動作を
表している。
FIG. 14 shows the operation when the following instruction is executed.

【0085】 vcmpeh Rm,Rn vmovh Rm,Rn … vcmpgh Rm,Rn vswaph Rm,Rn … vcmpgeh Rm,Rn vaddh Rm,Rn 図中のT1〜T10は、それぞれ1マシンサイクルの時
間を示しており、時刻順にT1から順にT2、T3、T
4、T5、T6、T7、T8、T9、T10としてい
る。
Vcmpeh Rm, Rn vmovh Rm, Rn ... vcmpgh Rm, Rn vsswap Rm, Rn ... vcmpgeh Rm, Rn vaddh Rm, Rn T1 to T10 in FIG. T2, T3, T in order from T1
4, T5, T6, T7, T8, T9, and T10.

【0086】まず、vcmpeh命令を実行した場合の
動作を説明する。
First, the operation when the vcmpeh instruction is executed will be described.

【0087】マシンサイクルT1において、命令レジス
タ101にラッチされたvcmpeh命令が命令解読器
102で解読される。命令のOPコードが”vcmpe
h”を示すので、命令解読器102は、SIMD演算制
御部109に対して「T2において16ビット毎の比較
を行う」ようにSIMD演算要求信号601として”1
000(cmp)”を、レジスタ書込制御部110に対
して「レジスタに書き込まない」ようにレジスタ書込要
求信号606、607としてそれぞれ”0”、”0”
を、SIMD演算フラグ格納部111に対して「等しい
ことを判定し更新する」ように”01(eq)”を出力
する。また、命令のオペランドが”Rm”、”Rn”で
あるので、命令解読器102は、レジスタファイル10
3に対して、「レジスタRm、レジスタRnを読み出
し、それぞれのデータをバス122、123を介して、
T2においてラッチ114〜121にラッチし、16ビ
ット演算器105〜108に入力する」ように演算器制
御信号を出力する。
In the machine cycle T 1, the vcmpeh instruction latched in the instruction register 101 is decoded by the instruction decoder 102. The OP code of the instruction is "vcmpe
h ”, the instruction decoder 102 sets the SIMD operation control unit 109 to“ 1 ”as the SIMD operation request signal 601 so as to“ perform comparison every 16 bits at T2 ”.
000 (cmp) ”as“ 0 ”and“ 0 ”, respectively, as register write request signals 606 and 607 so that the register write control unit 110“ does not write to the register ”.
Is output to the SIMD operation flag storage unit 111 as “01 (eq)” so as to “determine that they are equal and update them”. Since the operands of the instruction are “Rm” and “Rn”, the instruction decoder 102
3, "Read out the register Rm and the register Rn, and transfer the respective data via the buses 122 and 123.
At T2, the latches are latched by the latches 114 to 121 and input to the 16-bit arithmetic units 105 to 108, and the arithmetic unit control signal is output.

【0088】マシンサイクルT2において、SIMD演
算制御部109は、SIMD演算要求信号601とSI
MD演算フラグ情報608〜611を入力し、16ビッ
ト演算器105〜108を制御するSIMD演算制御信
号602〜605を出力する。SIMD演算要求信号
が”1000”であるので、SIMD演算フラグ情報6
02〜605が如何なる値であっても論理ゲート205
〜207の出力は”0”となり、SIMD演算制御信号
602〜605は”1000”が出力される。これによ
り、16ビット演算器105〜108は、SIMD演算
制御信号602〜605に従って、ラッチ114〜12
1にラッチされているデータを比較し、SIMDフラグ
生成情報621〜628を出力する。ここで、16ビッ
ト演算器105、107で等しいことが判定されたとす
ると、SIMDフラグ生成情報は621〜628はそれ
ぞれ”1”、”0”、”0”、”0”、”1”、”
0”、”0”、”0”となる。また、SIMD演算フラ
グ格納部111は、フラグ更新要求信号620がマシン
サイクルT1において”10”であったので、「フラグ
を更新する」ようにフラグ更新制御信号629として”
1”を出力する。また、レジスタ書込制御部110は、
レジスタ書込要求信号606、607がマシンサイクル
T1において”0”、”0”であったので、「レジスタ
を書き込まない」ようにレジスタ書込制御信号612〜
619として全て”0”を出力する。
In machine cycle T 2, SIMD operation control section 109 transmits SIMD operation request signal 601 to SIMD operation request signal 601.
MD operation flag information 608 to 611 is input, and SIMD operation control signals 602 to 605 for controlling the 16-bit operation units 105 to 108 are output. Since the SIMD operation request signal is “1000”, the SIMD operation flag information 6
No matter what value 02-605 is, the logic gate 205
To 207 are "0", and the SIMD operation control signals 602 to 605 are "1000". As a result, the 16-bit operation units 105 to 108 cause the latches 114 to 12 to operate according to the SIMD operation control signals 602 to 605.
The data latched at 1 is compared, and SIMD flag generation information 621 to 628 is output. Here, if it is determined that the 16-bit arithmetic units 105 and 107 are equal, the SIMD flag generation information 621 to 628 are “1”, “0”, “0”, “0”, “1”, “1”.
0 ”,“ 0 ”,“ 0. ”Also, since the flag update request signal 620 was“ 10 ”in the machine cycle T1, the SIMD operation flag storage unit 111 sets the flag to“ update the flag ”. As the update control signal 629,
1 ”. The register write control unit 110 outputs
Since the register write request signals 606 and 607 were “0” and “0” in the machine cycle T1, the register write control signals 612 to 612 are set so as not to write the register.
As "619", all "0" are output.

【0089】マシンサイクルT3において、SIMD演
算フラグ格納部111は、フラグ更新制御信号629
が”1”であるので、SIMDフラグ生成情報621〜
628を入力して、SIMD演算フラグレジスタSFR
のC0〜C3フラグを更新する。マシンサイクルT2に
おいて、フラグ更新要求信号620が”01”で、SI
MDフラグ生成情報621〜628が”1”、”
0”、”0”、”0”、”1”、”0”、”0”、”
0”であるので、C0〜C3フラグはそれぞれ”
1”、”0”、”1”、”0”に更新される。また、レ
ジスタファイル103は、レジスタ書込制御信号612
〜619が全て”0”であるので、レジスタへの書込は
行われない。
In machine cycle T 3, SIMD operation flag storage section 111 stores flag update control signal 629
Is “1”, the SIMD flag generation information 621 to
628 to the SIMD operation flag register SFR
Are updated. In the machine cycle T2, if the flag update request signal 620 is "01" and the SI
MD flag generation information 621 to 628 is "1", "
0 "," 0 "," 0 "," 1 "," 0 "," 0 ","
0 ”, the C0 to C3 flags are respectively“
1 "," 0 "," 1 ", and" 0 ", and the register file 103 stores the register write control signal 612.
Since 619 are all “0”, writing to the register is not performed.

【0090】次に、vmovh命令を実行した場合の動
作を説明する。
Next, the operation when the vmovh instruction is executed will be described.

【0091】マシンサイクルT2において、命令レジス
タ101にラッチされたvmovh命令が命令解読器1
02で解読される。命令のOPコードが”vmovh”
を示すので、命令解読器102は、SIMD演算制御部
109に対して「T3においてSIMD演算フラグレジ
スタSFRのC0〜C3フラグが”1”の場合には16
ビット毎の転送を行う」ようにSIMD演算要求信号6
01として”0001(mov)”を、レジスタ書込制
御部110に対して「一つのレジスタに書き込む」よう
にレジスタ書込要求信号606、607としてそれぞ
れ”1”、”0”を、SIMD演算フラグ格納部111
に対して「フラグを更新しない」ように”00(no
p)”を出力する。また、命令のオペランドが”Rm”
であるので、命令解読器102は、レジスタファイル1
03に対して、「レジスタRmを読み出し、それぞれの
データをバス122を介して、T3においてラッチ11
4〜117にラッチし、16ビット演算器105〜10
8に入力する」ように演算器制御信号を出力する。
In the machine cycle T2, the vmovh instruction latched in the instruction register 101 is
02 is decrypted. The OP code of the instruction is "vmovh"
Therefore, the instruction decoder 102 instructs the SIMD operation control unit 109 to “16 when the C0 to C3 flags of the SIMD operation flag register SFR are“ 1 ”at T3.
SIMD operation request signal 6
"0001 (mov)" as 01, "1" and "0" as register write request signals 606 and 607, respectively, so that the register write control unit 110 "writes to one register". Storage unit 111
To “00 (no)
p) ”, and the operand of the instruction is“ Rm ”.
Therefore, the instruction decoder 102 reads the register file 1
03, the register Rm is read, and the respective data is latched at T3 via the bus 122 at T3.
4 to 117, 16-bit arithmetic units 105 to 10
8 to output an arithmetic unit control signal.

【0092】マシンサイクルT3において、SIMD演
算制御部109は、SIMD演算要求信号601とSI
MD演算フラグ情報608〜611を入力し、16ビッ
ト演算器105〜108を制御するSIMD演算制御信
号602〜605を出力する。SIMD演算フラグ情報
608、610が”1”であるので、論理ゲート205
〜207の出力は入力データがそのまま出力され、SI
MD演算制御信号602、604は”0001”とな
る。SIMD演算フラグ情報609〜611が”0”で
あるので、論理ゲート205〜207の出力は”0”と
なり、SIMD演算制御信号603、605は”000
0(nop)”が出力される。これにより、16ビット
演算器105〜108は、SIMD演算制御信号602
〜605に従って、ラッチ114、116にラッチされ
ているデータをそのままバス124に出力する。また、
SIMD演算フラグ格納部111は、フラグ更新要求信
号620がマシンサイクルT2において”00”であっ
たので、「フラグを更新しない」ようにフラグ更新制御
信号629として”0”を出力する。また、レジスタ書
込制御部110は、レジスタ書込要求信号606、60
7がマシンサイクルT2において”1”、”0”であっ
たので、「一つのレジスタに書き込む」ようにレジスタ
書込制御信号612〜619としてそれぞれ”1”、”
0”、”1”、”0”、”0”、”0”、”0”、”
0”を出力する。
In the machine cycle T3, the SIMD operation control unit 109 sends the SIMD operation request signal
MD operation flag information 608 to 611 is input, and SIMD operation control signals 602 to 605 for controlling the 16-bit operation units 105 to 108 are output. Since the SIMD operation flag information 608 and 610 are “1”, the logic gate 205
207 output the input data as they are,
The MD operation control signals 602 and 604 become "0001". Since the SIMD operation flag information 609 to 611 is “0”, the outputs of the logic gates 205 to 207 are “0”, and the SIMD operation control signals 603 and 605 are “000”.
0 (nop) ". The 16-bit operation units 105 to 108 output the SIMD operation control signal 602.
The data latched by the latches 114 and 116 is output to the bus 124 as it is according to. Also,
Since the flag update request signal 620 was “00” in the machine cycle T2, the SIMD operation flag storage unit 111 outputs “0” as the flag update control signal 629 so as to “do not update the flag”. Further, register write control section 110 outputs register write request signals 606, 60
7 are “1” and “0” in the machine cycle T2, so that “1” and “1” are respectively set as the register write control signals 612 to 619 so as to “write to one register”.
0 "," 1 "," 0 "," 0 "," 0 "," 0 ","
0 "is output.

【0093】マシンサイクルT4において、SIMD演
算フラグ格納部111は、フラグ更新制御信号629
が”0”であるので、SIMD演算フラグレジスタSF
RのC0〜C3フラグを更新しない。また、レジスタフ
ァイル103は、レジスタ書込制御信号612、616
が”1”であるので、書込対象のレジスタに対応する論
理ゲート509、511が”1”となり、バス124上
にあるデータがフリップフロップ501、502、50
5、506に格納され、レジスタへの書込が行われる。
In machine cycle T4, SIMD operation flag storage section 111 stores flag update control signal 629
Is “0”, the SIMD operation flag register SF
The C0 to C3 flags of R are not updated. The register file 103 stores the register write control signals 612 and 616
Is "1", the logic gates 509 and 511 corresponding to the register to be written become "1", and the data on the bus 124 is flip-flops 501, 502 and 50.
5, 506, and writing to the register is performed.

【0094】以後、vcmpgh命令、vswaph命
令、vcmpgeh命令、vaddh命令と実行してい
るが、基本的に上記vcmpeh命令、vmovh命令
と同じように動作しているので、ここでは説明を省略す
る。
Thereafter, the vcmpgh instruction, vswaph instruction, vcmpgeh instruction, and vaddh instruction are executed. However, since the operation is basically the same as the above-mentioned vcmpeh instruction and vmovh instruction, the description is omitted here.

【0095】(実施の形態2)上記実施の形態では、S
IMD演算フラグレジスタSFRのC0〜C3フラグ
が”0”の場合には、何も演算を行わない(nop)と
しているが、代わりに他の演算を行っても構わない。
(Embodiment 2) In the above embodiment, S
When the C0 to C3 flags of the IMD operation flag register SFR are “0”, no operation is performed (nop), but another operation may be performed instead.

【0096】図13は、本発明の第2の実施の形態とし
て、第1の実施の形態の命令仕様に追加した命令の命令
仕様を表す図である。同図において、「vswmvh
Rm,Rn」、「vmvadh Rm,Rn」、「vs
wadh Rm,Rn」は、C0〜C3フラグが”0”
の場合には、”1”の場合と異なる演算を行う命令の機
械語命令であり、ニモニック形式で表している。また、
各命令毎に動作も図示してある。
FIG. 13 is a diagram showing an instruction specification of an instruction added to the instruction specification of the first embodiment as a second embodiment of the present invention. In the figure, “vswmvh
Rm, Rn "," vmvadh Rm, Rn "," vs
wad Rm, Rn ”indicates that the C0 to C3 flags are“ 0 ”.
Is a machine language instruction of an instruction for performing an operation different from that of "1", and is expressed in a mnemonic format. Also,
The operation for each instruction is also shown.

【0097】図14、図15、図16、図17、図18
は、この命令仕様を実現するために、本発明の第1の実
施の形態と異なる部分である。図14は、図4の命令解
読器102に図2、図3、図13に示すSIMD命令を
入力した場合の入出力論理を表した説明図(真理値
表)、図15は、図4のSIMD演算制御部109の内
部構成を示すブロック図、図16は、論理ゲート707
〜714の入出力論理を表した説明図(真理値表)、図
17は、図4のレジスタ書込制御部110の内部構成を
示すブロック図、図18は、論理ゲート807〜813
の入出力論理を表した説明図(真理値表)を示す。
FIG. 14, FIG. 15, FIG. 16, FIG. 17, FIG.
Is a part different from the first embodiment of the present invention in order to realize this instruction specification. FIG. 14 is an explanatory diagram (truth table) showing input / output logic when the SIMD instruction shown in FIGS. 2, 3, and 13 is input to the instruction decoder 102 of FIG. 4, and FIG. FIG. 16 is a block diagram showing the internal configuration of the SIMD operation control unit 109. FIG.
FIG. 17 is a block diagram showing the internal configuration of the register write control unit 110 in FIG. 4, and FIG. 18 is a logic gate 807 to 813.
FIG. 2 is an explanatory diagram (truth value table) showing the input / output logic of FIG.

【0098】図19は、本プロセッサにおいて、図2、
図3、図13で示す命令を実行した場合のタイムチャー
トを示す。
FIG. 19 is a block diagram of the processor shown in FIG.
FIG. 14 shows a time chart when the instructions shown in FIGS. 3 and 13 are executed.

【0099】同図では次の命令を実行した場合の動作を
表している。
FIG. 14 shows the operation when the following instruction is executed.

【0100】 vcmpeh Rm,Rn vswmvh Rm,Rn … vcmpgh Rm,Rn vmvadh Rm,Rn … vcmpgeh Rm,Rn vswadh Rm,Rn 上記命令の動作は、基本的に本発明の第1の実施の形態
と同じであり、SIMD演算フラグレジスタSRFのC
0〜C3フラグが”0”の場合に、”1”の場合と異な
る演算を行っているだけであるので、ここでは説明を省
略する。
Vcmpeh Rm, Rn vswmvh Rm, Rn... Vcmpgh Rm, Rn vmvadh Rm, Rn. Yes, C in SIMD operation flag register SRF
When the 0 to C3 flags are "0", only operations different from those in the case of "1" are performed, and the description is omitted here.

【0101】[0101]

【発明の効果】以上の説明から明らかなように、本発明
のプロセッサは、オペランドで指定したデータを1つの
データとして、条件を満たすことを検証する第1の命令
と、オペランドで指定したデータを複数のデータとし
て、条件を満たすことを検証する第2の命令と、条件が
成立した時のみに、オペランドで指定したデータを複数
のデータとして指定された操作を実行する条件実行命令
とを含む機械語命令を解読する命令解読手段と、前記命
令解読手段に従って命令を実行する命令実行手段と、前
記第1の命令で検証した結果指定された条件が成立した
ことを示す第1の状態保持手段と、前記第2の命令で検
証した結果指定された条件が成立したことを示す第2の
状態保持手段とを備え、前記命令解読手段は前記第1の
命令を解読すると、オペランドで指定したデータを1つ
のデータとして条件を検証し、条件を満たせば前記第1
の状態保持手段に該条件が成立したことを示させ、前記
第2の命令を解読すると、オペランドで指定したデータ
を特定ビット数毎に複数のデータに分割し、分割した複
数のデータを各データ毎に条件を検証し、条件を満たせ
ば前記第2の状態保持手段に該条件が成立したことを各
データ毎に示させ、前記条件実行命令を解読すると、オ
ペランドで指定したデータを特定ビット数毎に複数のデ
ータに分割し、分割した複数の各データに対応する前記
第2の状態保持手段の対応する検証結果を吟味し、条件
が成立している時は、対応する分割したデータに対して
前記命令実行手段で該命令中に指定された操作を行い、
条件が成立していない時は、対応する分割したデータに
対して前記命令実行手段で該命令中に指定された操作を
行わないように制御することを特徴とする。
As is apparent from the above description, the processor of the present invention uses the data specified by the operand as one data, the first instruction for verifying that the condition is satisfied, and the data specified by the operand. A machine including a second instruction for verifying that a condition is satisfied as a plurality of data, and a condition execution instruction for executing an operation specified by the data specified by the operand as the plurality of data only when the condition is satisfied; Instruction decoding means for decoding a word instruction; instruction execution means for executing an instruction in accordance with the instruction decoding means; first state holding means for indicating that a condition specified as a result of verification by the first instruction is satisfied; And a second state holding means indicating that a condition specified as a result of verification by the second instruction is satisfied, wherein the instruction decoding means decodes the first instruction, The specified data to verify the condition as one data operand, the satisfies the condition first
When the second instruction is decoded, the data specified by the operand is divided into a plurality of data for each specific number of bits, and the divided plurality of data is For each condition, the condition is verified, and if the condition is satisfied, the second state holding means is made to indicate for each data that the condition is satisfied. When the condition execution instruction is decoded, the data specified by the operand is changed to a specific number of bits. Each of the data is divided into a plurality of data, and the verification result of the second state holding means corresponding to each of the plurality of divided data is examined. When the condition is satisfied, the corresponding divided data is Performing the operation specified in the instruction by the instruction execution means,
When the condition is not satisfied, the instruction execution means controls the corresponding divided data so that the operation specified in the instruction is not performed.

【0102】これにより、複数に分割した各データに対
して、条件実行命令は、前記第2の状態保持手段に保持
されている検証結果に基づき、条件が成立したデータに
対してのみ演算を行うことができ、高速に演算すること
が可能となる。
Thus, for each of the plurality of divided data, the condition execution instruction performs an operation only on the data for which the condition is satisfied, based on the verification result held in the second state holding means. And high-speed operation can be performed.

【0103】また、オペランドで指定したデータを1つ
のデータとして条件を検証(通常の比較操作)した結果
を保持する第1の状態保持手段とは別に、オペランドで
指定したデータを複数のデータとして条件を検証(SI
MDデータの比較操作)した結果を保持する第2の状態
保持手段を持つことにより、通常の比較操作とSIMD
データの比較操作が独立に行えることができるので、プ
ログラムの融通性が増すという効果がある。
Also, apart from the first state holding means for holding the result of verifying the condition (normal comparison operation) with the data specified by the operand as one data, the data specified by the operand is defined as a plurality of data. Verification (SI
MD data comparison operation) by having the second state holding means for holding the result of the
Since the data comparison operation can be performed independently, there is an effect that the flexibility of the program is increased.

【0104】以上のように本発明の技術の実用的価値は
大きい。
As described above, the practical value of the technology of the present invention is great.

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

【図1】本発明の第1の実施の形態におけるプロセッサ
に設けられるSIMD演算フラグレジスタSFRのビッ
ト構成を示す図
FIG. 1 is a diagram showing a bit configuration of a SIMD operation flag register SFR provided in a processor according to a first embodiment of the present invention.

【図2】同実施の形態のSIMD命令における比較命令
の命令仕様を表す図
FIG. 2 is a view showing an instruction specification of a comparison instruction in the SIMD instruction of the embodiment.

【図3】同実施形態のSIMD命令における条件付き命
令の命令仕様を表す図
FIG. 3 is a view showing an instruction specification of a conditional instruction in the SIMD instruction of the embodiment.

【図4】本発明の実施の形態におけるプロセッサの主要
部の構成を示すブロック図
FIG. 4 is a block diagram showing a configuration of a main part of a processor according to the embodiment of the present invention.

【図5】同実施の形態の命令解読器102にSIMD命
令を入力した場合の入出力論理を表した説明図(真理値
表)
FIG. 5 is an explanatory diagram (truth value table) showing input / output logic when a SIMD instruction is input to the instruction decoder 102 of the embodiment.

【図6】同実施の形態のSIMD演算制御部109の内
部構成を示すブロック図
FIG. 6 is a block diagram showing an internal configuration of a SIMD operation control unit 109 according to the embodiment;

【図7】同実施の形態のSIMD演算制御部109の論
理ゲート205〜207の入出力論理を表した説明図
(真理値表)
FIG. 7 is an explanatory diagram (truth value table) showing input / output logic of logic gates 205 to 207 of the SIMD operation control unit 109 according to the embodiment.

【図8】同実施の形態のレジスタ書込制御部110の内
部構成を示すブロック図
FIG. 8 is a block diagram showing an internal configuration of a register write control unit 110 according to the embodiment;

【図9】同実施の形態のレジスタ書込制御部110の論
理ゲート307〜310の入出力論理を表した説明図
(真理値表)
FIG. 9 is an explanatory diagram (truth value table) showing input / output logic of logic gates 307 to 310 of register write control unit 110 of the embodiment.

【図10】同実施の形態のSIMD演算フラグ格納部1
11の内部構成を示すブロック図
FIG. 10 is a SIMD operation flag storage unit 1 according to the embodiment.
11 is a block diagram showing the internal configuration of the eleventh embodiment.

【図11】同実施の形態のレジスタファイル103内の
1本のレジスタの構成を示すブロック図
FIG. 11 is a block diagram showing the configuration of one register in a register file 103 according to the embodiment;

【図12】同実施の形態において、SIMD命令を実行
した場合のタイムチャート
FIG. 12 is a time chart when the SIMD instruction is executed in the embodiment.

【図13】本発明の第2の実施の形態として、第1の実
施の形態の命令仕様に追加した命令の命令仕様を表す図
FIG. 13 is a diagram showing an instruction specification of an instruction added to the instruction specification of the first embodiment as a second embodiment of the present invention;

【図14】同実施の形態において、命令解読器102に
SIMD命令を入力した場合の入出力論理を表した説明
図(真理値表)
FIG. 14 is an explanatory diagram (truth value table) showing input / output logic when a SIMD instruction is input to the instruction decoder 102 in the embodiment.

【図15】同実施の形態のSIMD演算制御部109の
内部構成を示すブロック図
FIG. 15 is a block diagram showing an internal configuration of a SIMD operation control unit 109 according to the embodiment;

【図16】同実施の形態のSIMD演算制御部109の
論理ゲート707〜714の入出力論理を表した説明図
(真理値表)
FIG. 16 is an explanatory diagram (truth table) showing input / output logic of logic gates 707 to 714 of the SIMD operation control unit 109 according to the embodiment.

【図17】同実施の形態のレジスタ書込制御部110の
内部構成を示すブロック図
FIG. 17 is a block diagram showing an internal configuration of a register write control unit 110 according to the embodiment;

【図18】同実施の形態のレジスタ書込制御部110の
論理ゲート807〜813の入出力論理を表した説明図
(真理値表)
FIG. 18 is an explanatory diagram (truth value table) showing input / output logic of logic gates 807 to 813 of register write control unit 110 according to the embodiment;

【図19】同実施の形態において、SIMD命令を実行
した場合のタイムチャート
FIG. 19 is a time chart when an SIMD instruction is executed in the embodiment.

【図20】従来の情報処理装置である「Pentium II」プ
ロセッサのSIMD命令の一部の比較命令の仕様を示す
FIG. 20 is a diagram showing the specifications of some comparison instructions of SIMD instructions of a “Pentium II” processor, which is a conventional information processing apparatus.

【図21】従来の情報処理装置である「Ultra SPARC-II
i」プロセッサのSIMD命令の一部の比較命令の仕様
を示す図
FIG. 21 shows a conventional information processing apparatus “Ultra SPARC-II”.
Diagram showing specifications of some comparison instructions of SIMD instruction of "i" processor

【図22】従来の情報処理装置である「Alpha」プロセ
ッサのSIMD命令の一部の最小値命令の仕様を示す図
FIG. 22 is a diagram showing the specification of a part of a minimum value instruction of a SIMD instruction of an “Alpha” processor which is a conventional information processing apparatus.

【図23】従来の情報処理装置である「PowerPC」プロ
セッサのSIMD命令の一部の比較命令および最小値命
令の仕様を示す図
FIG. 23 is a diagram showing specifications of a part of a comparison instruction and a minimum value instruction of a SIMD instruction of a “PowerPC” processor which is a conventional information processing apparatus.

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

101 命令レジスタ 102 命令解読器 103 レジスタファイル 104 64ビット演算器 105〜108 16ビット演算器 109 SIMD演算制御部 110 レジスタ書込制御部 111 SIMD演算フラグ格納部 112〜121 ラッチ 122〜125 バス 201〜204 フリップフロップ 205〜207 論理ゲート 301〜306 フリップフロップ 307〜310 論理ゲート 401〜407 フリップフロップ 408〜413 論理ゲート 501〜508 フリップフロップ 509〜540 論理ゲート 601 SIMD演算要求信号 602〜605 SIMD演算制御信号 606、607 レジスタ書込要求信号 608〜611 SIMD演算フラグ情報 612〜619 レジスタ書込制御信号 620 フラグ更新要求信号 621〜628 SIMDフラグ生成情報 701〜706 フリップフロップ 707〜714 論理ゲート 801〜806 フリップフロップ 807〜813 論理ゲート 101 Instruction register 102 Instruction decoder 103 Register file 104 64-bit operation unit 105-108 16-bit operation unit 109 SIMD operation control unit 110 Register writing control unit 111 SIMD operation flag storage unit 112-121 Latch 122-125 Bus 201-204 Flip-flops 205 to 207 Logic gates 301 to 306 Flip-flops 307 to 310 Logic gates 401 to 407 Flip-flops 408 to 413 Logic gates 501 to 508 Flip-flops 509 to 540 Logic gate 601 SIMD operation request signal 602 to 605 SIMD operation control signal 606 , 607 register write request signal 608 to 611 SIMD operation flag information 612 to 619 register write control signal 620 flag update request signal 621 628 SIMD flag generation information 701 to 706 flip-flops 707 to 714 logic gates 801 to 806 flip-flops 807 to 813 logic gates

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】 オペランドで指定したデータを1つのデ
ータとして、条件を満たすことを検証する第1の命令
と、 オペランドで指定したデータを複数のデータとして、条
件を満たすことを検証する第2の命令とを含む機械語命
令を解読する命令解読手段と、 前記命令解読手段に従って命令を実行する命令実行手段
と、 前記第1の命令で検証した結果指定された条件が成立し
たことを示す第1の状態保持手段と、 前記第2の命令で検証した結果指定された条件が成立し
たことを示す第2の状態保持手段とを備え、 前記命令解読手段は前記第1の命令を解読すると、オペ
ランドで指定したデータを1つのデータとして条件を検
証し、条件を満たせば前記第1の状態保持手段に該条件
が成立したことを示させ、 前記第2の命令を解読すると、オペランドで指定したデ
ータを特定ビット数毎に複数のデータに分割し、分割し
た複数のデータを各データ毎に条件を検証し、条件を満
たせば前記第2の状態保持手段に該条件が成立したこと
を各データ毎に示させるように制御することを特徴とす
るプロセッサ。
1. A first instruction for verifying that a condition is satisfied by using data specified by an operand as one data, and a second instruction for verifying that the condition is satisfied by using data specified by an operand as a plurality of data. Instruction decoding means for decoding a machine language instruction including an instruction, instruction execution means for executing an instruction in accordance with the instruction decoding means, and a first indicating that a specified condition is satisfied as a result of verification by the first instruction State holding means, and second state holding means indicating that a specified condition is satisfied as a result of verification by the second instruction, wherein the instruction decoding means decodes the first instruction, The condition specified is verified as one data, and the condition is verified. If the condition is satisfied, the first state holding means is made to show that the condition is satisfied. When the second instruction is decoded, the operation is performed. The data specified by the land is divided into a plurality of data for each specific number of bits, and a condition is verified for each of the plurality of divided data. If the condition is satisfied, the condition is satisfied in the second state holding means. Characterized in that the control is performed so as to indicate this for each data.
【請求項2】 前記分割した複数のデータは全て等しい
ビット数であることを特徴とする請求項1記載のプロセ
ッサ。
2. The processor according to claim 1, wherein said plurality of divided data all have the same number of bits.
【請求項3】 オペランドで指定したデータを1つのデ
ータとして、条件を満たすことを検証する第1の命令
と、 オペランドで指定したデータを複数のデータとして、条
件を満たすことを検証する第2の命令とを含む機械語命
令を解読する命令解読手段と、 前記命令解読手段に従って命令を実行する命令実行手段
と、 検証した結果指定された条件が成立したことを示す状態
保持手段とを備え、 前記命令解読手段は前記第1の命令を解読すると、オペ
ランドで指定したデータを1つのデータとして条件を検
証し、条件を満たせば前記状態保持手段に該条件が成立
したことを示させ、 前記第2の命令を解読すると、オペランドで指定したデ
ータを特定ビット数毎に複数のデータに分割し、分割し
た複数のデータを各データ毎に条件を検証し、条件を満
たせば前記状態保持手段に該条件が成立したことを各デ
ータ毎に示させるように制御することを特徴とするプロ
セッサ。
3. A first instruction for verifying that a condition is satisfied by using data specified by an operand as one data, and a second instruction for verifying that the condition is satisfied by using data specified by an operand as a plurality of data. Instruction decoding means for decoding a machine language instruction including an instruction, instruction execution means for executing an instruction in accordance with the instruction decoding means, and state holding means for indicating that a specified condition is satisfied as a result of the verification. When the instruction decoding means decodes the first instruction, it verifies the condition using the data specified by the operand as one data, and if the condition is satisfied, causes the state holding means to indicate that the condition has been satisfied; When the instruction is decoded, the data specified by the operand is divided into a plurality of data for each specific number of bits, and the conditions for each of the divided data are verified for each data. Processor, characterized in that said conditions are controlled so as to indicate that established for each of the data to the state holding means satisfies a.
【請求項4】 前記分割した複数のデータは全て等しい
ビット数であることを特徴とする請求項3記載のプロセ
ッサ。
4. The processor according to claim 3, wherein said plurality of divided data all have the same number of bits.
【請求項5】 オペランドで指定したデータを1つのデ
ータとして、条件を満たすことを検証する第1の命令
と、 オペランドで指定したデータを複数のデータとして、条
件を満たすことを検証する第2の命令と、 条件が成立した時のみに、オペランドで指定したデータ
を複数のデータとして指定された操作を実行する条件実
行命令とを含む機械語命令を解読する命令解読手段と、 前記命令解読手段に従って命令を実行する命令実行手段
と、 前記第1の命令で検証した結果指定された条件が成立し
たことを示す第1の状態保持手段と、 前記第2の命令で検証した結果指定された条件が成立し
たことを示す第2の状態保持手段とを備え、 前記命令解読手段は前記第1の命令を解読すると、オペ
ランドで指定したデータを1つのデータとして条件を検
証し、条件を満たせば前記第1の状態保持手段に該条件
が成立したことを示させ、 前記第2の命令を解読すると、オペランドで指定したデ
ータを特定ビット数毎に複数のデータに分割し、分割し
た複数のデータを各データ毎に条件を検証し、条件を満
たせば前記第2の状態保持手段に該条件が成立したこと
を各データ毎に示させ、 前記条件実行命令を解読すると、オペランドで指定した
データを特定ビット数毎に複数のデータに分割し、分割
した複数の各データに対応する前記第2の状態保持手段
の対応する検証結果を吟味し、条件が成立している時
は、対応する分割したデータに対して前記命令実行手段
で該命令中に指定された操作を行い、条件が成立してい
ない時は、対応する分割したデータに対して前記命令実
行手段で該命令中に指定された操作を行わないように制
御することを特徴とするプロセッサ。
5. A first instruction for verifying that a condition is satisfied by using data specified by an operand as one data, and a second instruction for verifying that the condition is satisfied by using data specified by an operand as a plurality of data. An instruction decoding unit that decodes a machine language instruction including an instruction and a condition execution instruction that executes an operation specified as a plurality of pieces of data specified by the operand only when a condition is satisfied; and Instruction execution means for executing an instruction; first state holding means indicating that a condition specified as a result of verification by the first instruction is satisfied; and a condition specified as a result of verification by the second instruction. And second state holding means for indicating that the condition has been satisfied. The instruction decoding means, when decoding the first instruction, sets data designated by an operand as one data as a condition. When the condition is satisfied, the first state holding means is made to show that the condition is satisfied. When the second instruction is decoded, the data specified by the operand is converted into a plurality of data for each specific number of bits. Dividing a plurality of divided data, verifying a condition for each data, and, if the condition is satisfied, causing the second state holding unit to indicate that the condition is satisfied for each data; decoding the condition execution instruction Then, the data specified by the operand is divided into a plurality of data for each specific number of bits, and the corresponding verification result of the second state holding means corresponding to each of the plurality of divided data is examined, and the condition is satisfied. When the condition is satisfied, the instruction execution means performs the operation specified in the instruction on the corresponding divided data, and when the condition is not satisfied, the instruction execution means performs the operation on the corresponding divided data. During the order Processor and controlling so as not to perform the specified operation.
【請求項6】 前記条件実行命令は、前記第2の状態保
持手段が、条件が成立している時に転送を行う命令であ
ることを特徴とする請求項5記載のプロセッサ。
6. The processor according to claim 5, wherein the condition execution instruction is an instruction for the second state holding unit to perform a transfer when a condition is satisfied.
【請求項7】 前記条件実行命令は、前記第2の状態保
持手段が、条件が成立している時に演算を行う命令であ
ることを特徴とする請求項5記載のプロセッサ。
7. The processor according to claim 5, wherein the condition execution instruction is an instruction for the second state holding means to perform an operation when a condition is satisfied.
【請求項8】 オペランドで指定したデータを1つのデ
ータとして、条件を満たすことを検証する第1の命令
と、 オペランドで指定したデータを複数のデータとして、条
件を満たすことを検証する第2の命令と、 条件が成立した時のみに、オペランドで指定したデータ
を複数のデータとして指定された操作を実行する条件実
行命令とを含む機械語命令を解読する命令解読手段と、 前記命令解読手段に従って命令を実行する命令実行手段
と、 前記第1の命令で検証した結果指定された条件が成立し
たことを示す第1の状態保持手段と、 前記第2の命令で検証した結果指定された条件が成立し
たことを示す第2の状態保持手段とを備え、 前記命令解読手段は前記第1の命令を解読すると、オペ
ランドで指定したデータを1つのデータとして条件を検
証し、条件を満たせば前記第1の状態保持手段に該条件
が成立したことを示させ、 前記第2の命令を解読すると、オペランドで指定したデ
ータを特定ビット数毎に複数のデータに分割し、分割し
た複数のデータを各データ毎に条件を検証し、条件を満
たせば前記第2の状態保持手段に該条件が成立したこと
を各データ毎に示させ、 前記条件実行命令を解読すると、オペランドで指定した
データを特定ビット数毎に複数のデータに分割し、分割
した複数の各データに対応する前記第2の状態保持手段
の対応する検証結果を吟味し、条件が成立している時
は、対応する分割したデータに対して前記命令実行手段
で該命令中に指定された第1の操作を行い、条件が成立
していない時は、対応する分割したデータに対して前記
命令実行手段で該命令中に指定された第2の操作を行わ
ないように制御することを特徴とするプロセッサ。
8. A first instruction for verifying that a condition is satisfied by using data specified by an operand as one data, and a second instruction for verifying that the condition is satisfied by using data specified by an operand as a plurality of data. An instruction decoding unit that decodes a machine language instruction including an instruction and a condition execution instruction that executes an operation specified as a plurality of pieces of data specified by the operand only when a condition is satisfied; and Instruction execution means for executing an instruction; first state holding means indicating that a condition specified as a result of verification by the first instruction is satisfied; and a condition specified as a result of verification by the second instruction. And second state holding means for indicating that the condition has been satisfied. The instruction decoding means, when decoding the first instruction, sets data designated by an operand as one data as a condition. When the condition is satisfied, the first state holding means is made to show that the condition is satisfied. When the second instruction is decoded, the data specified by the operand is converted into a plurality of data for each specific number of bits. Dividing a plurality of divided data, verifying a condition for each data, and, if the condition is satisfied, causing the second state holding unit to indicate that the condition is satisfied for each data; decoding the condition execution instruction Then, the data specified by the operand is divided into a plurality of data for each specific number of bits, and the corresponding verification result of the second state holding means corresponding to each of the plurality of divided data is examined, and the condition is satisfied. When the condition is satisfied, the first operation specified in the instruction is performed by the instruction execution means on the corresponding divided data. When the condition is not satisfied, the instruction is executed on the corresponding divided data. Execution means Processor and controlling so as not to perform the second operation specified in the decree.
JP2000076086A 2000-03-17 2000-03-17 Information processor Pending JP2001265592A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000076086A JP2001265592A (en) 2000-03-17 2000-03-17 Information processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000076086A JP2001265592A (en) 2000-03-17 2000-03-17 Information processor

Publications (1)

Publication Number Publication Date
JP2001265592A true JP2001265592A (en) 2001-09-28

Family

ID=18593880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000076086A Pending JP2001265592A (en) 2000-03-17 2000-03-17 Information processor

Country Status (1)

Country Link
JP (1) JP2001265592A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034473A (en) * 2005-07-25 2007-02-08 Ricoh Co Ltd Data processing method in simd type microprocessor
US8086830B2 (en) 2005-03-31 2011-12-27 Panasonic Corporation Arithmetic processing apparatus
JP2013530450A (en) * 2010-05-11 2013-07-25 アーム・リミテッド Conditional comparison instructions
JP2014179076A (en) * 2013-03-14 2014-09-25 Intel Corp Multiple data element-to-multiple data element comparison processors, methods, systems, and instructions

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8086830B2 (en) 2005-03-31 2011-12-27 Panasonic Corporation Arithmetic processing apparatus
JP2007034473A (en) * 2005-07-25 2007-02-08 Ricoh Co Ltd Data processing method in simd type microprocessor
JP4516495B2 (en) * 2005-07-25 2010-08-04 株式会社リコー Data processing method in SIMD type microprocessor
JP2013530450A (en) * 2010-05-11 2013-07-25 アーム・リミテッド Conditional comparison instructions
US9383999B2 (en) 2010-05-11 2016-07-05 Arm Limited Conditional compare instruction
JP2014179076A (en) * 2013-03-14 2014-09-25 Intel Corp Multiple data element-to-multiple data element comparison processors, methods, systems, and instructions

Similar Documents

Publication Publication Date Title
JP3592230B2 (en) Data processing device
US5805852A (en) Parallel processor performing bypass control by grasping portions in which instructions exist
TWI525537B (en) Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions
CN107003852B (en) Method and apparatus for performing vector bit shuffling
CN107003845B (en) Method and apparatus for variably extending between mask register and vector register
US5787025A (en) Method and system for performing arithmetic operations with single or double precision
JP2018500658A (en) Method and apparatus for performing vector permutation using indices and immediate values
KR101787615B1 (en) Systems, apparatuses, and methods for performing rotate and xor in response to a single instruction
JP2018500654A (en) Method and apparatus for performing vector bit inversion
US7370180B2 (en) Bit field extraction with sign or zero extend
JPH05150979A (en) Immediate operand expansion system
EP2889755A2 (en) Systems, apparatuses, and methods for expand and compress
US7047396B1 (en) Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
JP2001265592A (en) Information processor
JP2000322235A (en) Information processor
US9983872B2 (en) Conditional selection of data elements
CN115859315A (en) System, apparatus and method for direct peripheral access to secure storage
JP2928680B2 (en) Compound condition processing method
JP3519765B2 (en) Binary multiplication realized on existing hardware with minor modifications
US20070186016A1 (en) Device for transferring data arrays between buses and system for mac layer processing comprising said device
US5708800A (en) High speed microprocessor for processing and transferring N-bits of M-bit data
JPH03204030A (en) Processor for computor
JP3164915B2 (en) Data processing device and data processing method
US11775310B2 (en) Data processing system having distrubuted registers
JPH09305401A (en) Computer and compiler

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040601

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041012