JP3310316B2 - 演算装置 - Google Patents
演算装置Info
- Publication number
- JP3310316B2 JP3310316B2 JP34570391A JP34570391A JP3310316B2 JP 3310316 B2 JP3310316 B2 JP 3310316B2 JP 34570391 A JP34570391 A JP 34570391A JP 34570391 A JP34570391 A JP 34570391A JP 3310316 B2 JP3310316 B2 JP 3310316B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- value
- output
- input
- selector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000010586 diagram Methods 0.000 description 18
- 238000001514 detection method Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Description
【0001】
【産業上の利用分野】本発明は、演算装置に係り、詳し
くは、例えば、スーパーコンピュータ、スーパーEWS
(Engineering Work Station)等の分野に用いて好適
な、ベクトル処理を高速に行う演算装置に関する。近
年、科学計算等においては、例えば、FORTRAN言
語でのDOループ、すなわち、 DO 10 I=0,100 C(I)=A(I)*B(I) F(I)=D(I)+E(I) 10 CONTINUE で表されるような繰り返し演算のように、特定のループ
処理内に大量の演算が集中している場合が多い。
くは、例えば、スーパーコンピュータ、スーパーEWS
(Engineering Work Station)等の分野に用いて好適
な、ベクトル処理を高速に行う演算装置に関する。近
年、科学計算等においては、例えば、FORTRAN言
語でのDOループ、すなわち、 DO 10 I=0,100 C(I)=A(I)*B(I) F(I)=D(I)+E(I) 10 CONTINUE で表されるような繰り返し演算のように、特定のループ
処理内に大量の演算が集中している場合が多い。
【0002】一定の演算を複数のデータに対して繰り返
すような処理をベクトル処理といい、大量の科学計算を
実行する、例えば、ベクトルプロセッサ等の演算装置で
は、ベクトル処理を高速に実行することが要求される。
すような処理をベクトル処理といい、大量の科学計算を
実行する、例えば、ベクトルプロセッサ等の演算装置で
は、ベクトル処理を高速に実行することが要求される。
【0003】
【従来の技術】従来のこの種の演算装置としては、例え
ば、図5に示すようなベクトルプロセッサがある。図
中、1はベクトルプロセッサ、2は命令制御部、3は命
令レジスタ、4は乗算器、5は加算器、6はベクトルレ
ジスタ、7はマスクレジスタ、8は入出力制御部であ
り、9はCPU(Central Processing Unit )、10は
主記憶である。
ば、図5に示すようなベクトルプロセッサがある。図
中、1はベクトルプロセッサ、2は命令制御部、3は命
令レジスタ、4は乗算器、5は加算器、6はベクトルレ
ジスタ、7はマスクレジスタ、8は入出力制御部であ
り、9はCPU(Central Processing Unit )、10は
主記憶である。
【0004】以上の構成において、ベクトル処理の動作
概要を説明する。まず、CPU9により主記憶10上の
所定の命令列と演算データとがベクトルプロセッサ1に
転送され、命令列は命令レジスタ3に、また演算データ
はベクトルレジスタ6に格納される。次に、CPU9に
よってベクトルプロセッサ1が起動されると、ベクトル
プロセッサ1内の命令制御部2により命令レジスタ3か
ら1つずつ命令が取り出され、実行に必要な制御信号が
出力される。
概要を説明する。まず、CPU9により主記憶10上の
所定の命令列と演算データとがベクトルプロセッサ1に
転送され、命令列は命令レジスタ3に、また演算データ
はベクトルレジスタ6に格納される。次に、CPU9に
よってベクトルプロセッサ1が起動されると、ベクトル
プロセッサ1内の命令制御部2により命令レジスタ3か
ら1つずつ命令が取り出され、実行に必要な制御信号が
出力される。
【0005】各ユニットではそれらの制御信号に従って
データの入出力や演算が実行され、例えば、乗算を実行
する場合、ベクトルレジスタ6から演算データが読み出
されて乗算器4に転送され、乗算器4によってそれらの
演算データに対する乗算が行われる。乗算器4による乗
算結果はベクトルレジスタ6に転送され、ベクトルレジ
スタ6に乗算結果が格納される。なお、前述の制御信号
にはこれらの動作に必要な読み出し・書き込みタイミン
グ等も含まれている。
データの入出力や演算が実行され、例えば、乗算を実行
する場合、ベクトルレジスタ6から演算データが読み出
されて乗算器4に転送され、乗算器4によってそれらの
演算データに対する乗算が行われる。乗算器4による乗
算結果はベクトルレジスタ6に転送され、ベクトルレジ
スタ6に乗算結果が格納される。なお、前述の制御信号
にはこれらの動作に必要な読み出し・書き込みタイミン
グ等も含まれている。
【0006】最後に、命令レジスタ3から取り出された
命令が終了命令であったら動作が中断され、ベクトルプ
ロセッサ1は待機状態となる。ここで、マスク付き演算
について考えてみる。マスク付き演算とは、ベクトルデ
ータの各要素に対してマスクデータというものを設定
し、マスクされているデータに関しては演算を行わない
というものである。
命令が終了命令であったら動作が中断され、ベクトルプ
ロセッサ1は待機状態となる。ここで、マスク付き演算
について考えてみる。マスク付き演算とは、ベクトルデ
ータの各要素に対してマスクデータというものを設定
し、マスクされているデータに関しては演算を行わない
というものである。
【0007】すなわち、A(I)は被演算数、B(I)
は演算数、M(I)はマスクデータとすると、図6に示
すように、A(I)×B(I)の値をC(I)に格納す
る際、M(I)の値を参照し、“M(I)=1”のとき
にはC(I)に結果を書き込まないようにするというの
がマスク付き演算である。通常、乗算や加算等の演算を
行う場合、演算データ、被演算データ、マスクデータが
処理サイクル毎にベクトルレジスタ6及びマスクレジス
タ7から乗算器4及び加算器5よりなる演算器に転送さ
れ、演算器によって演算された結果が処理サイクル毎に
ベクトルレジスタ6に転送されるというパイプライン処
理がなされている。
は演算数、M(I)はマスクデータとすると、図6に示
すように、A(I)×B(I)の値をC(I)に格納す
る際、M(I)の値を参照し、“M(I)=1”のとき
にはC(I)に結果を書き込まないようにするというの
がマスク付き演算である。通常、乗算や加算等の演算を
行う場合、演算データ、被演算データ、マスクデータが
処理サイクル毎にベクトルレジスタ6及びマスクレジス
タ7から乗算器4及び加算器5よりなる演算器に転送さ
れ、演算器によって演算された結果が処理サイクル毎に
ベクトルレジスタ6に転送されるというパイプライン処
理がなされている。
【0008】ここで、ベクトル処理で扱うデータはイン
デックス、すなわち、前述の式中におけるIの値により
区別された関連のあるデータであることから、その中の
最大値、または最小値を算出することが考えられる。こ
のような処理においても前述したベクトル処理と同様
に、処理サイクル毎のデータが大小の比較を行う演算器
に転送され、この演算器で2つのデータが同時に受け取
られ、それらの比較を行うことにより大小が判断され
る。
デックス、すなわち、前述の式中におけるIの値により
区別された関連のあるデータであることから、その中の
最大値、または最小値を算出することが考えられる。こ
のような処理においても前述したベクトル処理と同様
に、処理サイクル毎のデータが大小の比較を行う演算器
に転送され、この演算器で2つのデータが同時に受け取
られ、それらの比較を行うことにより大小が判断され
る。
【0009】この最大値、または最小値の算出における
マスク付き演算の概念を図7に示す。但し、全てのデー
タがマスクされていた場合は、最大値検出のときは最小
値を、一方最小値検出のときは最大値を結果として出力
するものとする。図8はベクトルデータの最大値、また
は最小値を求める演算回路を示すブロック図である。
マスク付き演算の概念を図7に示す。但し、全てのデー
タがマスクされていた場合は、最大値検出のときは最小
値を、一方最小値検出のときは最大値を結果として出力
するものとする。図8はベクトルデータの最大値、また
は最小値を求める演算回路を示すブロック図である。
【0010】この演算回路は、入力ラッチ11,12,
13、固定値発生器14、大小比較器15、第1セレク
タ16、第2セレクタ17、一時ラッチ18、出力ラッ
チ19から構成されている。なお、図中、D’は入力ラ
ッチ11の出力信号、M’は入力ラッチ12の出力信
号、C2’は入力ラッチ13の出力信号、Kは固定値発
生器14の出力信号、Sは大小比較器15の出力信号、
Qは第1セレクタ16の出力信号,Rは第2セレクタ1
7の出力信号、Tは一時ラッチ18の出力信号、Oは出
力ラッチ19の出力信号を示す。
13、固定値発生器14、大小比較器15、第1セレク
タ16、第2セレクタ17、一時ラッチ18、出力ラッ
チ19から構成されている。なお、図中、D’は入力ラ
ッチ11の出力信号、M’は入力ラッチ12の出力信
号、C2’は入力ラッチ13の出力信号、Kは固定値発
生器14の出力信号、Sは大小比較器15の出力信号、
Qは第1セレクタ16の出力信号,Rは第2セレクタ1
7の出力信号、Tは一時ラッチ18の出力信号、Oは出
力ラッチ19の出力信号を示す。
【0011】入力ラッチ11は、演算対象となるベクト
ルデータDを一時保持するラッチ回路であり、1サイク
ルに1要素分のデータがベクトルデータDとしてベクト
ルレジスタ6から転送される。入力ラッチ12は、ベク
トルデータDに対するマスク情報Mを一時保持するラッ
チ回路であり、マスク情報MはベクトルデータDと同期
してマスクレジスタ7から転送され、値が“1”のとき
にマスクが有効であるとする。
ルデータDを一時保持するラッチ回路であり、1サイク
ルに1要素分のデータがベクトルデータDとしてベクト
ルレジスタ6から転送される。入力ラッチ12は、ベク
トルデータDに対するマスク情報Mを一時保持するラッ
チ回路であり、マスク情報MはベクトルデータDと同期
してマスクレジスタ7から転送され、値が“1”のとき
にマスクが有効であるとする。
【0012】入力ラッチ13は、転送されたベクトルデ
ータDが第1要素であることを示す信号C2を一時保持
するラッチ回路であり、信号C2は第1要素のベクトル
データDと同期して“1”が命令制御部2から転送され
る。固定値発生器14は、入力されたベクトルデータD
がマスクされていた場合、最大値あるいは最小値のいず
れを検出するのかを示す信号C1に基づいて、演算回路
で使用されるデータの最大値、または最小値を発生する
回路である。
ータDが第1要素であることを示す信号C2を一時保持
するラッチ回路であり、信号C2は第1要素のベクトル
データDと同期して“1”が命令制御部2から転送され
る。固定値発生器14は、入力されたベクトルデータD
がマスクされていた場合、最大値あるいは最小値のいず
れを検出するのかを示す信号C1に基づいて、演算回路
で使用されるデータの最大値、または最小値を発生する
回路である。
【0013】図9(a)は固定値発生器14の要部構成
を示すブロック図であり、本演算で使用するデータを4
ビットの2の補数表現の整数としてその動作を説明す
る。すなわち、図9(b)に示すように、C1=“0”
の場合は最大値検出であるとしてセレクタによって“1
000”(最小値)が選択され、一方、C1=“1”の
場合は最小値検出であるとしてセレクタによって“01
11”(最大値)が選択されて信号Kとして出力され
る。
を示すブロック図であり、本演算で使用するデータを4
ビットの2の補数表現の整数としてその動作を説明す
る。すなわち、図9(b)に示すように、C1=“0”
の場合は最大値検出であるとしてセレクタによって“1
000”(最小値)が選択され、一方、C1=“1”の
場合は最小値検出であるとしてセレクタによって“01
11”(最大値)が選択されて信号Kとして出力され
る。
【0014】大小比較器15は、図10(a)に示すよ
うに、2つの入力A,Bの大小を比較し、その比較結果
を出力する回路であり、その動作を図10(b)に基づ
いて説明する。C2’=“1”、つまり入力データが第
1番目の要素である場合は信号C1の値に関係なく信号
Sの出力はS=“0”となる。
うに、2つの入力A,Bの大小を比較し、その比較結果
を出力する回路であり、その動作を図10(b)に基づ
いて説明する。C2’=“1”、つまり入力データが第
1番目の要素である場合は信号C1の値に関係なく信号
Sの出力はS=“0”となる。
【0015】一方、C2’=“0”、つまり入力データ
が第2番目以降の要素である場合、最大値検出(C1=
“0”)の状態ならばA−B≧0のときS=“0”、A
−B<0のときS=“1”となり、最小値検出(C1=
“1”)の状態ならばA−B≧0のときS=“1”、A
−B<0のときS=“0”となる。第1セレクタ16
は、図11(a)に示すように、大小比較器15の出力
信号S、入力ラッチ12の出力信号M’(現在のデータ
に対するマスク信号)、及び一時ラッチ18の出力信号
T(以前のデータに対するマスク信号)に基づいて、入
力ラッチ11の出力信号D’、出力ラッチ19の出力信
号O、固定値発生器14の出力信号Kのいずれかを選択
するものである。
が第2番目以降の要素である場合、最大値検出(C1=
“0”)の状態ならばA−B≧0のときS=“0”、A
−B<0のときS=“1”となり、最小値検出(C1=
“1”)の状態ならばA−B≧0のときS=“1”、A
−B<0のときS=“0”となる。第1セレクタ16
は、図11(a)に示すように、大小比較器15の出力
信号S、入力ラッチ12の出力信号M’(現在のデータ
に対するマスク信号)、及び一時ラッチ18の出力信号
T(以前のデータに対するマスク信号)に基づいて、入
力ラッチ11の出力信号D’、出力ラッチ19の出力信
号O、固定値発生器14の出力信号Kのいずれかを選択
するものである。
【0016】すなわち、図11(b)に示すように、現
在の入力のみがマスクされていた場合はそれ以前に選ば
れていた最大値もしくは最小値が選択され、以前のデー
タのみがマスクされていた場合は現在の入力が選択され
る。また、現在及び以前のデータが共に選択されていた
場合は固定値が選択され、いずれのデータもマスクされ
ていない場合は大小比較器15の出力信号Sに基づいて
信号D’もしくは信号Oが選択される。
在の入力のみがマスクされていた場合はそれ以前に選ば
れていた最大値もしくは最小値が選択され、以前のデー
タのみがマスクされていた場合は現在の入力が選択され
る。また、現在及び以前のデータが共に選択されていた
場合は固定値が選択され、いずれのデータもマスクされ
ていない場合は大小比較器15の出力信号Sに基づいて
信号D’もしくは信号Oが選択される。
【0017】第2セレクタ17は、図12(a)に示す
ように、大小比較器15の出力信号Sに基づいて、信号
M’と信号Tのいずれかを選択する回路であり、図12
(b)に示すように、S=“0”の場合はR=M’、S
=“1”の場合はR=Tが選択される。一時ラッチ18
は、第2セレクタ17からの出力信号Rを以前のデータ
のマスク信号として使用するために一時保持するラッチ
回路である。
ように、大小比較器15の出力信号Sに基づいて、信号
M’と信号Tのいずれかを選択する回路であり、図12
(b)に示すように、S=“0”の場合はR=M’、S
=“1”の場合はR=Tが選択される。一時ラッチ18
は、第2セレクタ17からの出力信号Rを以前のデータ
のマスク信号として使用するために一時保持するラッチ
回路である。
【0018】出力ラッチ19は、第1セレクタ16から
の出力信号Qを以前のデータとして使用するために一時
保持するラッチ回路であり、その出力信号である信号O
を大小比較器15、及び第1セレクタ16にフィードバ
ックしている。
の出力信号Qを以前のデータとして使用するために一時
保持するラッチ回路であり、その出力信号である信号O
を大小比較器15、及び第1セレクタ16にフィードバ
ックしている。
【0019】
【発明が解決しようとする課題】しかしながら、このよ
うな従来の演算装置にあっては、以前に入力されたデー
タに対するマスク情報までもラッチするという構成とな
っていたため、マスク情報の保持のためのラッチ回路が
2つ必要であるという問題点があった。また、2種類の
マスク情報に基づいて第1セレクタ16、第2セレクタ
17を動作させるようになっていたため、セレクタの構
成が複雑になるという問題点があった。
うな従来の演算装置にあっては、以前に入力されたデー
タに対するマスク情報までもラッチするという構成とな
っていたため、マスク情報の保持のためのラッチ回路が
2つ必要であるという問題点があった。また、2種類の
マスク情報に基づいて第1セレクタ16、第2セレクタ
17を動作させるようになっていたため、セレクタの構
成が複雑になるという問題点があった。
【0020】[目的]そこで本発明は、マスク付きベク
トルデータの最大値、及び最小値の検出部分の回路構成
を簡素化する演算装置を提供することを目的としてい
る。
トルデータの最大値、及び最小値の検出部分の回路構成
を簡素化する演算装置を提供することを目的としてい
る。
【0021】
【課題を解決するための手段】本発明による演算装置は
上記目的達成のため、その原理図を図1に示すように、
複数の入力データ及び該複数の入力データに対するマス
クデータに基づいて該複数の入力データ中の最大値また
は最小値を演算する演算装置であって、前記マスクデー
タに基づいて、最大値または最小値のいずれを演算する
のかにより設定される固定値データと、前記入力データ
とのいずれか一方を選択して出力する選択手段20と、
前記選択手段20からの出力値が前記複数の入力データ
の内の最初の入力データ(第1番目の要素)である場合
は該出力値をそのまま出力し、前記選択手段20からの
出力値が該最初の入力データ以外の入力データ(第1番
目以外の要素)である場合は、最大値または最小値のい
ずれを演算するのかに基づいて、該出力値と以前に出力
した出力値とのどちらが大きい、もしくは小さいかを判
定する判定手段21とを備えるように構成している。
上記目的達成のため、その原理図を図1に示すように、
複数の入力データ及び該複数の入力データに対するマス
クデータに基づいて該複数の入力データ中の最大値また
は最小値を演算する演算装置であって、前記マスクデー
タに基づいて、最大値または最小値のいずれを演算する
のかにより設定される固定値データと、前記入力データ
とのいずれか一方を選択して出力する選択手段20と、
前記選択手段20からの出力値が前記複数の入力データ
の内の最初の入力データ(第1番目の要素)である場合
は該出力値をそのまま出力し、前記選択手段20からの
出力値が該最初の入力データ以外の入力データ(第1番
目以外の要素)である場合は、最大値または最小値のい
ずれを演算するのかに基づいて、該出力値と以前に出力
した出力値とのどちらが大きい、もしくは小さいかを判
定する判定手段21とを備えるように構成している。
【0022】
【作用】本発明では、現在入力される所定データに対し
てのみマスクデータが適用されることによりマスク情報
の保持のためのラッチ回路が削減され、これによって、
このマスク情報に基づいて動作するセレクタ等の構成が
複雑になることが防止される。
てのみマスクデータが適用されることによりマスク情報
の保持のためのラッチ回路が削減され、これによって、
このマスク情報に基づいて動作するセレクタ等の構成が
複雑になることが防止される。
【0023】すなわち、マスク付きベクトルデータの最
大値、及び最小値の検出部分の回路構成が簡素化され
る。
大値、及び最小値の検出部分の回路構成が簡素化され
る。
【0024】
【実施例】以下、本発明を図面に基づいて説明する。図
2は本発明に係る演算装置の一実施例を示す図であり、
本実施例の演算装置の概略構成を示すブロック図であ
る。まず、構成を説明する。
2は本発明に係る演算装置の一実施例を示す図であり、
本実施例の演算装置の概略構成を示すブロック図であ
る。まず、構成を説明する。
【0025】なお、図2において、図1に示した原理
図、及び図8〜図10に示した従来例に付された番号と
同一番号は同一部分を示す。本実施例の演算装置は、入
力ラッチ11,12、固定値発生器14、第3セレクタ
22から選択手段20、判定手段21からなる選択手段
20と、入力ラッチ13、大小比較器15、第4セレク
タ23、出力ラッチ19からなる判定手段21とから構
成されている。
図、及び図8〜図10に示した従来例に付された番号と
同一番号は同一部分を示す。本実施例の演算装置は、入
力ラッチ11,12、固定値発生器14、第3セレクタ
22から選択手段20、判定手段21からなる選択手段
20と、入力ラッチ13、大小比較器15、第4セレク
タ23、出力ラッチ19からなる判定手段21とから構
成されている。
【0026】なお、図中、Pは第3セレクタ22の出力
信号,Q’は第4セレクタ23の出力信号を示す。第3
セレクタ22は、図3(a)に示すように、入力ラッチ
12の出力信号M’(現在のデータに対するマスク信
号)に基づいて、入力ラッチ11の出力信号D’、及び
固定値発生器14の出力信号Kのいずれかを選択するも
のであり、詳しくは、図3(b)に示すように、M’=
“0”、すなわち、現在の入力がマスクされていない場
合は現在の入力であるD’がそのまま出力信号Pとして
選択されて出力され、一方、マスクされていた場合
(M’=“1”)は、固定値発生器14の出力Kが出力
信号Pとして選択されて出力される。
信号,Q’は第4セレクタ23の出力信号を示す。第3
セレクタ22は、図3(a)に示すように、入力ラッチ
12の出力信号M’(現在のデータに対するマスク信
号)に基づいて、入力ラッチ11の出力信号D’、及び
固定値発生器14の出力信号Kのいずれかを選択するも
のであり、詳しくは、図3(b)に示すように、M’=
“0”、すなわち、現在の入力がマスクされていない場
合は現在の入力であるD’がそのまま出力信号Pとして
選択されて出力され、一方、マスクされていた場合
(M’=“1”)は、固定値発生器14の出力Kが出力
信号Pとして選択されて出力される。
【0027】第4セレクタ23は、図4(a)に示すよ
うに、大小比較器15の出力信号Sに基づいて、第3セ
レクタ22の出力信号P(現在のデータに対応)と、出
力ラッチ19の出力信号O(以前のデータに対応)との
いずれかを選択する回路であり、図4(b)に示すよう
に、S=“0”の場合はQ=P、S=“1”の場合はQ
=Oが選択される。
うに、大小比較器15の出力信号Sに基づいて、第3セ
レクタ22の出力信号P(現在のデータに対応)と、出
力ラッチ19の出力信号O(以前のデータに対応)との
いずれかを選択する回路であり、図4(b)に示すよう
に、S=“0”の場合はQ=P、S=“1”の場合はQ
=Oが選択される。
【0028】次に作用を説明する。まず、命令制御部2
の指示によりベクトルレジスタ6からベクトルデータ
が、また、マスクレジスタ7からマスクデータが読みだ
され、それぞれ信号D,Mとして本実施例における演算
回路に転送され、入力ラッチ11,12でそれぞれラッ
チされる。
の指示によりベクトルレジスタ6からベクトルデータ
が、また、マスクレジスタ7からマスクデータが読みだ
され、それぞれ信号D,Mとして本実施例における演算
回路に転送され、入力ラッチ11,12でそれぞれラッ
チされる。
【0029】そして、入力ラッチ12からの出力信号
M’の値に基づいて第3セレクタ22により、入力デー
タと固定値とが選択される。ここで、最大値を検出する
場合、入力データであるベクトルデータがマスクされて
いたら、その値を最小値として大小比較されるので、入
力値が大きくても無視することが可能である。
M’の値に基づいて第3セレクタ22により、入力デー
タと固定値とが選択される。ここで、最大値を検出する
場合、入力データであるベクトルデータがマスクされて
いたら、その値を最小値として大小比較されるので、入
力値が大きくても無視することが可能である。
【0030】次に、大小比較器15の出力信号Sに基づ
いて、第4セレクタ23により入力データ(マスクされ
ていた場合は固定値)と以前までの最大値あるいは最小
値とのいずれかが選択されることにより、それまでに入
力された全てのベクトルデータの最大値あるいは最小値
が選択される。第4セレクタ23の出力Q’は出力ラッ
チ19によってラッチされ、出力Oとして大小比較器1
5、及び外部に転送される。
いて、第4セレクタ23により入力データ(マスクされ
ていた場合は固定値)と以前までの最大値あるいは最小
値とのいずれかが選択されることにより、それまでに入
力された全てのベクトルデータの最大値あるいは最小値
が選択される。第4セレクタ23の出力Q’は出力ラッ
チ19によってラッチされ、出力Oとして大小比較器1
5、及び外部に転送される。
【0031】このように本実施例では、マスク情報の保
持のための余計なラッチ回路を省くことができ、回路全
体における素子量を削減できる。したがって、マスク付
きベクトルデータの最大値または最小値を演算する演算
回路の回路規模を縮小することができる。なお、上記実
施例は演算で使用するデータを4ビットの2の補数で表
されるデータとして説明しているが、これに限らず、実
際のデータとしては、例えば、浮動小数点データであっ
てもよく、また、ビット長も任意であることはいうまで
もない。
持のための余計なラッチ回路を省くことができ、回路全
体における素子量を削減できる。したがって、マスク付
きベクトルデータの最大値または最小値を演算する演算
回路の回路規模を縮小することができる。なお、上記実
施例は演算で使用するデータを4ビットの2の補数で表
されるデータとして説明しているが、これに限らず、実
際のデータとしては、例えば、浮動小数点データであっ
てもよく、また、ビット長も任意であることはいうまで
もない。
【0032】
【発明の効果】本発明では、現在入力される所定データ
に対してのみマスクデータを適用することで、マスク情
報の保持のためのラッチ回路を削減することができ、こ
のマスク情報に基づいて動作するセレクタ等の構成が複
雑化することを防止できる。したがって、マスク付きベ
クトルデータの最大値、及び最小値の検出部分の回路構
成を簡素化できる。
に対してのみマスクデータを適用することで、マスク情
報の保持のためのラッチ回路を削減することができ、こ
のマスク情報に基づいて動作するセレクタ等の構成が複
雑化することを防止できる。したがって、マスク付きベ
クトルデータの最大値、及び最小値の検出部分の回路構
成を簡素化できる。
【図1】本発明の演算装置の原理図である。
【図2】本実施例の演算装置の概略構成を示すブロック
図である。
図である。
【図3】第3セレクタの構成、及び動作を説明するため
の図である。
の図である。
【図4】第4セレクタの構成、及び動作を説明するため
の図である。
の図である。
【図5】ベクトルプロセッサの概略図である。
【図6】マスク付き演算を説明するための図である。
【図7】最大値、最小値検出のマスク付き演算を説明す
るための図である。
るための図である。
【図8】従来の演算装置の概略構成を示すブロック図で
ある。
ある。
【図9】固定値発生器の構成、及び動作を説明するため
の図である。
の図である。
【図10】大小比較器の構成、及び動作を説明するため
の図である。
の図である。
【図11】第1セレクタの構成、及び動作を説明するた
めの図である。
めの図である。
【図12】第2セレクタの構成、及び動作を説明するた
めの図である。
めの図である。
1 ベクトルプロセッサ 2 命令制御部 3 命令レジスタ 4 乗算器 5 加算器 6 ベクトルレジスタ 7 マスクレジスタ 8 入出力制御部 9 CPU 10 主記憶 11 入力ラッチ 12 入力ラッチ 13 入力ラッチ 14 固定値発生器 15 大小比較器 16 第1セレクタ 17 第2セレクタ 18 一時ラッチ 19 出力ラッチ 20 選択手段 21 判定手段 22 第3セレクタ 23 第4セレクタ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/02 G06F 17/16
Claims (1)
- 【請求項1】複数の入力データ及び該複数の入力データ
に対するマスクデータに基づいて該複数の入力データ中
の最大値または最小値を演算する演算装置であって、 前記マスクデータに基づいて、最大値または最小値のい
ずれを演算するのかにより設定される固定値データと、
前記入力データとのいずれか一方を選択して出力する選
択手段と、前記 選択手段からの出力値が前記複数の入力データの内
の最初の入力データである場合は該出力値をそのまま出
力し、前記選択手段からの出力値が該最初の入力データ
以外の入力データである場合は、最大値または最小値の
いずれを演算するのかに基づいて、該出力値と以前に出
力した出力値とのどちらが大きい、もしくは小さいかを
判定する判定手段と、 を備えることを特徴とする演算装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34570391A JP3310316B2 (ja) | 1991-12-27 | 1991-12-27 | 演算装置 |
US08/586,483 US5822557A (en) | 1991-12-27 | 1996-01-16 | Pipelined data processing device having improved hardware control over an arithmetic operations unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34570391A JP3310316B2 (ja) | 1991-12-27 | 1991-12-27 | 演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05181642A JPH05181642A (ja) | 1993-07-23 |
JP3310316B2 true JP3310316B2 (ja) | 2002-08-05 |
Family
ID=18378398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34570391A Expired - Fee Related JP3310316B2 (ja) | 1991-12-27 | 1991-12-27 | 演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3310316B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296548B2 (en) * | 2006-01-18 | 2012-10-23 | Freescale Semiconductor, Inc. | Device and method for finding extreme values in a data block |
WO2007083198A1 (en) * | 2006-01-18 | 2007-07-26 | Freescale Semiconductor Inc. | Hardware accelerator based method and device for string searching |
-
1991
- 1991-12-27 JP JP34570391A patent/JP3310316B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH05181642A (ja) | 1993-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5357237A (en) | In a data processor a method and apparatus for performing a floating-point comparison operation | |
JP5647859B2 (ja) | 乗累算演算を実行するための装置および方法 | |
US5859789A (en) | Arithmetic unit | |
US5212662A (en) | Floating point arithmetic two cycle data flow | |
TWI470545B (zh) | 用以執行範圍檢測之設備,處理器,系統,方法,指令,及邏輯 | |
KR900011167A (ko) | 디지탈신호 처리장치 및 움직임 보상연산방법 | |
US5341320A (en) | Method for rapidly processing floating-point operations which involve exceptions | |
US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
JPH05250146A (ja) | 整数累乗処理を行なうための回路及び方法 | |
JP3822568B2 (ja) | イベント処理 | |
JP3310316B2 (ja) | 演算装置 | |
JPS608933A (ja) | 演算処理装置 | |
US5446909A (en) | Binary multiplication implemented by existing hardware with minor modifications to sequentially designate bits of the operand | |
US4878193A (en) | Method and apparatus for accelerated addition of sliced addends | |
KR100457040B1 (ko) | 곱셈 누산 명령을 이용한 데이터 처리 장치 및 방법 | |
US6792442B1 (en) | Signal processor and product-sum operating device for use therein with rounding function | |
US5313600A (en) | System for controlling the number of data pieces in a queue memory | |
JP2553728B2 (ja) | 演算装置 | |
JP3441847B2 (ja) | データメモリを有するプロセッサ | |
JP2665067B2 (ja) | 浮動小数点加減算器 | |
JP2998324B2 (ja) | 正規化シフト装置および正規化シフト方法 | |
JPH04195629A (ja) | 演算フラグ生成装置 | |
JP3110072B2 (ja) | 事前正規化回路 | |
JP2908117B2 (ja) | ベクトル演算処理装置 | |
JPH04184535A (ja) | 並列演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20020507 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080524 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090524 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |