JP3105738B2 - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JP3105738B2 JP3105738B2 JP06151799A JP15179994A JP3105738B2 JP 3105738 B2 JP3105738 B2 JP 3105738B2 JP 06151799 A JP06151799 A JP 06151799A JP 15179994 A JP15179994 A JP 15179994A JP 3105738 B2 JP3105738 B2 JP 3105738B2
- Authority
- JP
- Japan
- Prior art keywords
- saturation
- flag
- register
- processing
- signal
- 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
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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical 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/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49921—Saturation, i.e. clipping the result to a minimum or maximum value
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Document Processing Apparatus (AREA)
Description
にオーバーフロー後の修正処理を行う演算装置を備えた
情報処理装置に関する。
上で、演算器がオーバーフローまたはアンダーフローを
生じたときに、演算結果として正しい符号である最大値
または最小値を設定するための処理である。
例えば、最上位ビット(MSB)が符号情報である32
ビットのデータは、FFFFFFFFH(Hはhexadeci
mal[16進数]表示を示す)で表される負の最小値“−
1”から80000000H(16進数)で表される負
の最大値までと、00000000H(16進数)で表
される正の最小値“0”から7FFFFFFFHで表さ
れる正の最大値までの範囲を表現することができる。
を、“0”であるときは正の整数をそれぞれ示してい
る。
演算によっては演算結果である正の整数が正の最大値を
超えてオーバーフローすると、7FFFFFFFHから
キャリーを生じた段階で、符号情報が“0”から“1”
に変化してしまい、このため本来、正の整数として表現
すべき演算結果が、負の整数として表現されてしまうこ
とになる。
値を超えてアンダーフローすると、80000000H
からボローが生じた段階で、符号情報が“1”から
“0”へ変化してしまい、本来、負の整数として表現す
べき演算結果が、正の整数として表現されてしまう。
は、本来の演算結果と比べて符号が逆転するため、制御
等に用いることができない。
きは、演算結果が本来の符号の最大値になるように演算
結果を設定することを“飽和する(サチュレートす
る)”、あるいは“飽和処理(サチュレーション)”と
いう。そして、演算命令のうち飽和処理を行うことので
きる命令を飽和演算命令という。
能を備えた演算装置として、例えば特開昭58−115
544号公報に提案される演算装置、あるいは特開平5
−1987546号公報に提案されるマイクロコンピュ
―タが備える演算装置等が知られている。
アンダーフローが生じた場合、オーバーフローフラグを
セットするとともに、正または負の最大値に演算結果を
修正するものである。
和演算命令と、飽和処理をしない通常演算命令を有し、
飽和演算命令を実行したときにオーバーフローまたはア
ンダーフローが生じた場合、キャリー/ボロー/オーバ
ーフロー/アンダーフロー/シフトアウトを反映するC
ビットをセットするとともに正または負の最大値に演算
結果を修正するものである。この場合、通常演算命令を
実行したときには、オーバーフローまたはアンダーフロ
ーを生じた場合、Cビットをセットするだけで、演算結
果はそのままとされる。
情報処理装置の構成、動作について説明する。
算命令を備えた典型的な演算装置として図4に示すもの
(「従来例」という)がある。同図において、1は32
ビットの演算器、2は不図示の飽和演算命令、通常演算
命令等の各種命令をデコードした結果に基づき演算指令
35を出力する命令デコーダ、3は演算結果が飽和した
ことを検出するサチュレーション検出回路、4はPSW
9に命令実行の結果を示す信号を設定するフラグ生成回
路、5は演算器1の演算結果にキャリーまたはボローが
あったことを示すCYフラグ、7は演算器1の演算結果
と正の最大値と負の最大値を選択するセレクタ、9は命
令実行の結果及びCPUの状態を記録するPSW、8は
データバス、10から16はプログラム実行に使用する
各データを格納する汎用レジスタである32ビットのA
レジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレ
ジスタ、Fレジスタ、Gレジスタ、17は演算器1の一
の入力となるLレジスタ、18は演算器1の他の入力と
なるRレジスタである。
ジスタ17、Rレジスタ18に対して加算、減算、乗
算、除算等の演算を行う。演算器1は、演算結果をセレ
クタ7へ出力し、さらに、演算結果がオーバーフローま
たはアンダーフローしたかどうかを示す情報OVからな
る状態信号30と、演算結果の符号情報S、キャリー/
ボロー情報C、演算結果が“0”であるかどうかを示す
情報Zからなる状態信号31とを、フラグ生成回路4へ
出力している。
30と、状態信号31のうちの符号情報Sとが、サチュ
レーション検出回路3に供給される。
レーション検出回路3、フラグ生成回路4へ出力してい
る。フラグ生成回路4に出力される演算指令35は、命
令デコーダ2が飽和演算命令をデコードした際にアクテ
ィブとなる信号からなる。
をしたことを示す状態信号36をフラグ生成回路4へ出
力し、また、演算結果のセレクト信号32,33,34
をセレクタ7へ出力する。
34に基づき、演算器1からの出力、正の最大値、及び
負の最大値の中から入力データを選択し、データバス8
へ出力する。
の状態に基づき、フラグの変化が許可された命令実行時
にのみフラグの状態を変化させるフラグ制御信号37を
PSW9へ出力する。
ぞれデータバス8によってLレジスタ17とRレジスタ
18にデータを出力する。Lレジスタ17とRレジスタ
18はそれぞれ演算器1へデータを出力する。
生成回路4の詳細な構成について説明する。なお図6に
おいて図4と同一の符号は、同一または等価部分を示し
ている。
される状態信号31について、符号情報Sに対応する状
態信号を31−S、キャリー/ボロー情報Cに対応する
状態信号を31−C、及び、演算結果が“0”であるか
否かを示す情報Zに対応する状態信号を31−Zとして
表している。そして、演算指令35のうちフラグ生成回
路4に供給される信号を演算指令35−SATで示し、
またフラグ制御信号37のうちCYフラグ5に供給され
る信号を制御信号37−CYで示している。
ミングでデータを保持するDフリップ・フロップで構成
されている。
対応するDフリップ・フロップのデータ入力端子Dに入
力されている。制御信号37−CYとCYフラグ5を構
成するDフリップ・フロップについて説明すると、フラ
グ生成回路4から出力される信号37−CYはCYフラ
グ5を構成するDフリップ・フロップのデータ入力端子
Dに入力されている。
を示す状態信号36と演算指令35−SATとの論理積
をとる2入力AND回路41、AND回路41の出力と
状態信号30との論理積をとる2入力AND回路42、
演算指令35−SATの否定をとるインバータ45と、
インバータ45の出力と信号31−Cとの論理積をとる
2入力AND回路44と、AND回路44とAND回路
42との論理和をとる2入力OR回路43と、を有す
る。
力端子に入力される。演算指令35−SATは、AND
回路41の他の入力端子と、インバータ45の入力端子
に入力される。信号31−Cとインバータ45の出力
は、AND回路44の入力端子に入力される。AND回
路41の出力は、AND回路42の一の入力端子に入力
される。状態信号30は、PSW9のVフラグのDフリ
ップ・フロップのデータ入力端子とAND回路42の他
の入力端子に入力される。信号31−Sと信号31−Z
は、それぞれPSW9のSフラグとZフラグのDフリッ
プ・フロップのデータ入力端子に入力される。OR回路
43の出力は、信号37−CYとしてPSW9のDフリ
ップ・フロップのデータ入力端子Dに入力される。
作について以下に説明する。
理が行なわれた場合の動作を説明する。命令デコーダ2
の演算指令35により、Aレジスタ10からGレジスタ
16のうち選択された汎用レジスタのデータがLレジス
タ17とRレジスタ18に設定される。サチュレーショ
ン検出回路3は、演算器1から状態信号30,31を入
力し、情報OVと符号情報Sの論理値の組み合わせに応
じ、オーバーフロー又はアンダーフローに対応して、セ
レクタ7に対して正又は負の最大値をデータバス8へ選
択出力するように指示する。
OVが“1”であるオーバーフローが発生した場合、サ
チュレーション検出回路3は、セレクタ7が7FFFF
FFFH(16進数)をデータバスに選択出力するよう
信号34をアクティブとすると共に、飽和処理をしたこ
とを示す状態信号36をアクティブとする。フラグ生成
回路4は状態信号36を入力し、飽和処理があったこと
を示すためにフラグ制御信号37を出力してPSW9の
CYフラグ5を“1”にセットする。
“1”であるアンダーフローが発生した場合、サチュレ
ーション回路3は、セレクタ7が80000000H
(16進数)をデータバスに出力するよう信号33をア
クティブとすると共に、飽和処理をしたことを示す状態
信号36をアクティブとする。フラグ生成回路4は状態
信号36を入力し、フラグ制御信号37を出力してPS
W9のCYフラグ5を“1”にセットする。
時において飽和処理をしたときのPSW9とフラグ生成
回路4の詳細な動作について説明する。
出力される演算指令35−SATは、飽和演算命令であ
ることを示すためにアクティブとされる。状態信号36
と信号35−SATとがアクティブでともに“1”にな
っているため、AND回路41の出力は“1”となる。
また、インバータ45の出力は“0”であるため、信号
31−Cの論理レベルにかかわらずAND回路44の出
力は“0”である。情報OVからなる状態信号30が
“1”であるため、AND回路42の出力は“1”とな
る。したがって、OR回路43の出力37−CYは
“1”となり、CYフラグ5を“1”にセットする。
時において、オーバーフローもアンダーフローも生じな
い場合、即ち、情報OVが“0”である場合の動作を説
明する。この場合、飽和処理は行なわれず、演算器1の
演算結果がセレクタ7を介してデータバス8に出力され
る。
は、セレクタ7が演算器1の演算結果を出力するよう信
号32をアクティブとする。飽和処理が行なわれないた
め、状態信号36はインアクティブとされ、フラグ生成
回路4は、飽和処理がなかったことを示すために、フラ
グ制御信号37を出力して、PSW9のCYフラグ5を
“0”にクリアする。
いて飽和処理をしないときのPSW9とフラグ生成回路
4の詳細な動作について説明する。
出力される演算指令35−SATは飽和演算命令である
ことを示すためアクティブとされ“1”である。飽和処
理が行なわれないために状態信号36はインアクティブ
とされ“0”である。このため、信号35−SATがア
クティブの状態で、AND回路41の出力は“0”であ
る。演算指令35−SATを反転出力するインバータ4
5の出力は“0”となり、信号31−Cの論理レベルに
かかわらずAND回路44の出力は“0”である。ま
た、AND回路41の出力が“0”であるため、状態信
号30の論理レベルにかかわらずAND回路42の出力
は“0”となる。したがって、OR回路43の出力37
−CYは“0”となり、CYフラグ5を“0”にする。
条件とCYフラグ5の状態をまとめて示す。表1からわ
かるように、キャリーやボローの発生により、CYフラ
グ5を“1”にセットするのではなく、飽和処理をした
ことでCYフラグ5に“1”をセットする。
通常の演算命令実行時の動作について説明する。飽和処
理をしない通常の演算命令では、サチュレーション検出
回路3は常に、セレクタ7が演算器1の演算結果を出力
するよう信号32をアクティブとする。飽和処理をしな
いため、状態信号36は常にインアクティブであり、フ
ラグ生成回路4は、演算結果にキャリーまたはボローが
生じると、フラグ制御信号37を出力してPSW9のC
Yフラグ5を“1”にセットし、キャリーもボローもな
いときは、CYフラグ5を“0”にクリアする。
い通常の演算命令実行時におけるPSW9とフラグ生成
回路4の詳細な動作について説明する。
36と信号35−SATはともにインアクティブとされ
“0”になっており、AND回路41の出力は“0”で
ある。インバータ45の出力は“1”となり、信号31
−Cの論理レベルがそのまま、AND回路44の出力レ
ベルとなる。AND回路41の出力は“0”であるた
め、状態信号30の論理レベルにかかわらず、AND回
路42の出力は“0”となる。したがって、OR回路4
3の出力37−CYは信号31−Cの論理レベルと等し
くなり、演算器1の演算結果におけるキャリー/ボロー
の有無に応じて、PSW9のCYフラグ5を“1”にセ
ット、又は“0”にクリアする。
う演算装置は、典型的には上記のように構成されるた
め、飽和処理が行われると、CYフラグ5が“1”にセ
ットされ、飽和処理が行われた直後は、CYフラグ5を
調べることでソフトウェアは飽和処理があったことを知
ることができる。
べなければ、その後の演算によってCYフラグ5が
“0”にクリアされることがある。これは、前記従来例
においては、飽和処理を示すフラグとして、通常の演算
命令を実行したときに演算器1の演算結果を次々と反映
するCYフラグ5を流用したものであるため、飽和処理
をしたことをCYフラグ5に記憶しても、飽和演算処理
後に実行される通常の演算命令によっては記憶が消され
てしまうからである。
するシステムにおける予測フィルタに用いられる累積加
算を例として、以下に具体的に説明する。
回転数に上げるとき、将来の回転数を予測しながら回転
数を設定するもので、例えば次式(1)に示すような累
積加算により、将来の回転数を予測する。
数、Vn-1を1期間前の回転数、Vn-2を2期間前の回転
数とする。次の期間の回転数Vn+1を予測するには、過
去の回転数と定数α,β,γをそれぞれ乗じて、その和
をとる。
ータに基づく演算結果について32ビットの演算器1の
整数演算範囲を−223〜(+223)を超えたか否かによ
り判定できるように設定しておく。
差が“0”であれば、回転数の設定を終了する。算出し
たVn+1と目標とする回転数とに差があれば、差に応じ
て、例えば、モータの回転数制御の駆動パルスタイミン
グを変更する。そして、繰り返し目標とする回転数との
差を取って、回転数の設定を行う処理を、目標とする回
転数との差が“0”になるまで継続する。
る際に、累積加算を途中の各項での加算結果が頻繁に飽
和する場合には、モータ自身の経年変化等が考えられる
ため、各項における定数α,β,γの補正が行われる。
を行なったときはCYフラグを“1”にセットし、飽和
処理しないときはCYフラグを“0”にクリアするた
め、飽和処理した直後に直ちにCYフラグの状態を記憶
しないと、次の演算でCYフラグが“0”にクリアされ
る恐れがあり、このため、演算途中での飽和の発生を検
出できないことがある。
流れ図を示す。図5を参照して、飽和処理の動作を以下
に説明する。
装置において、それぞれAレジスタ10、Bレジスタ1
1、Cレジスタ12に予め格納され、回転数Vn,
Vn-1,Vn-2は、それぞれDレジスタ13、Eレジスタ
14、Fレジスタ15に予め格納されているものとす
る。Gレジスタ16は飽和処理をしたことを記憶するた
めに用いている。
“0”に設定する(ステップ200)。そして、α*Vnの
算出を行い(ステップ201)、β*Vn-1の算出を行う
(ステップ202)。
た項の和α*Vn+β*Vn-1をとる(ステップ203)。
飽和処理をしたかどうかを示すCYフラグ5の判定を行
う(ステップ204)。
ジスタを“1”に設定して飽和処理のあったことを記憶
する(ステップ205)。
飽和演算命令によりステップ203、206で得た項の和α*
Vn+β*Vn-1+γ*Vn-2をとる(ステップ207)。
理をしたかどうかを示すCYフラグ5の判定を行う(ス
テップ208)。
ジスタを“1”に設定して飽和処理のあったことを記憶
する(ステップ209)。
に示す演算装置の汎用レジスタを用いた実際の動作に基
づき、ステップ203で飽和処理が行なわれ、ステップ205
で飽和処理をしなかった場合の動作について説明する。
なお、図5には、処理ステップに対応してCYフラグ5
の状態とGレジスタ16の状態がそれぞれ示されてい
る。
設定し、ステップ201でAレジスタ10とDレジスタ1
3との積をDレジスタ13に格納する。ステップ202で
Bレジスタ11とEレジスタ14との積をEレジスタに
格納する。
タ14との和をとって、飽和処理をする。このとき、C
Yフラグ5が“1”にセットされる。
い、CYフラグ5は“1”であるため、ステップ205で
Gレジスタ16を“1”に設定する。
レジスタ15との積をFレジスタ15に格納し、ステッ
プ207でEレジスタ14とFレジスタ15との和をと
り、飽和処理は行わずにFレジスタ15に格納する。こ
のとき、CYフラグ5は“0”にリセットされる。
て、CYフラグ5を“0”と判定した後、処理フローを
終了する。
め、CYフラグ5は“1”にセットされるが、ステップ
207では飽和しなかったため、CYフラグ5は“0”と
なり、この時点で、CYフラグ5による飽和処理情報は
無効となる。
果が飽和したことをGレジスタ16に記憶したため、以
後の飽和処理の有無にかかわらず飽和処理をしたことの
情報が記憶保持される。
は、演算器1の正の演算結果がオーバーフローして7F
FFFFFFH(16進数)を超えた場合は、飽和処理
をしてからCYフラグ5を“1”にセットするが、一
方、演算結果そのものが7FFFFFFFH(16進
数)またはそれ以下の値であると、CYフラグ5は
“0”にリセットされる。
和処理したかどうかを、CYフラグ5のチェックにより
判定するには、例えば図5のステップ204、208に示すよ
うに、各飽和演算の直後でその都度、飽和処理をしたか
どうかの判定処理と、さらにステップ205、209のように
飽和処理をしたことを記憶する処理が必要とされる。
の回転数の設定において、限界値制御に用いられる、全
体で10ステップから成る処理のうち、4ステップの処
理が飽和処理の判定と記憶に費やされるオーバーヘッド
となり、回転数制御の高精度化及び高速化に悪影響がで
るという問題がある。また、飽和処理をしたかどうかを
記憶するために、演算装置の汎用レジスタ等を使用する
ことが必要とされる。
飽和演算命令直後に飽和処理をしたかどうかの判定と飽
和処理の記憶に要する処理のオーバーヘッドを不要とし
た演算装置を提供することを目的とする。
め、本発明の情報処理装置は、演算手段と、該演算手段
による演算結果の状態を示す1または複数のフラグから
成る記憶手段と、を有する情報処理装置において、該記
憶手段が、少なくとも飽和処理の有無を記憶保持するフ
ラグを含み、該飽和処理の有無を記憶保持するフラグ
は、一旦飽和処理有にセットされた後は、該フラグをリ
セットするための所定の命令の実行によってリセットさ
れるまで、セット状態とされる、ことを特徴とするもの
である。
和処理の有無を記憶保持するフラグが、飽和処理の実行
によりセットされた後、前記所定の命令の実行によりリ
セットされるまでの間は、セット状態に保持され、その
間に行われた演算結果によってはクリアされることがな
い、ことを特徴とする。
飽和演算命令の実行を示す情報と、演算手段から出力さ
れる、オーバーフローの有無を示す信号及び符号を示す
信号とに基づき飽和処理を検出する検出手段を備え、検
出手段が飽和処理を検出した際に、前記飽和処理の有無
を記憶保持するフラグをセットすることを特徴とする。
は、飽和処理の有無を記憶保持するフラグが好ましくは
RSフリップフロップで構成され、RSフリップフロッ
プのリセット入力が、所定の命令の実行によりアクティ
ブとされることを特徴とする。
算術演算命令等の命令処理を行う命令実行部と、演算器
と、演算器が発生する演算結果の符号情報とオーバーフ
ローまたはアンダーフローの情報を入力し、符号情報が
正でかつオーバーフローしたときは正の最大値、符号情
報が負でかつアンダーフローしたときは負の最大値を演
算器の演算結果として選択する飽和検出手段を備え、飽
和検出手段において、符号情報が正でかつオーバーフロ
ーしたか、または符号情報が負でかつアンダーフローし
た状態を検出したときに、飽和処理の有無を記憶するフ
ラグがセットされ、該フラグは一旦セットされた後は、
好ましくは命令実行部におけるデータ転送命令の実行に
よってのみリセットされる。このため、本発明によれ
ば、飽和演算命令直後に飽和処理をしたかどうかの判定
と飽和処理の記憶に要する処理のオーバーヘッドを不要
とし、情報処理装置の高速演算処理、高性能化を達成
し、さらに飽和処理の記憶のために演算装置の汎用レジ
スタ等を割当てることを不要としている。
明する。
構成を示した図である。図1において、図4の従来例と
同一または等価な要素は同一符号で示している。以下で
は、本実施例について、図4に示した従来例との相違点
のみを説明し、従来例と同一のものについては、その構
成及び動作についての説明を省略する。
理をすると、フラグ生成回路4は、従来例のCYフラグ
5の代わりに、SATフラグ6を“1”にセットする。
ちの1ビットであるデータ線40に接続されており、情
報処理装置の不図示の命令実行部の制御により、SAT
フラグ6に“0”を転送する命令によって“0”にクリ
アされる。
9とフラグ生成回路4の詳細な構成を説明する。図3に
おいて、図6と同一または等価部分の要素は同一符号で
示している。なお、図6の従来例と同一の信号について
の説明は省略する。
W9は、サチュレーションの有無を記憶保持するSAT
フラグ6を新たに設け、これをRSフリップ・フロップ
で構成したものである。SATフラグ6を構成するRS
フリップ・フロップのセット端子Sには、フラグ生成回
路4から出力される信号37−SATが入力され、信号
37−SATが“1”のときRSフリップ・フロップを
“1”にセットする。
信号40として、RSフリップ・フロップのリセット端
子Rに入力されている。SATフラグ6のクリア信号4
0が“1”のときRSフリップ・フロップは“0”にリ
セットされる。
4では、図6の従来例の回路構成のうちAND回路4
1,41のみを有する。AND回路42の出力は、制御
信号37−SATとしてSATフラグ6に入力される。
状態信号31−CはそのままPSW9のCYフラグ5に
入力される。
作について説明する。
処理をしたときのPSW9とフラグ生成回路4の詳細な
動作について説明する。飽和演算実行のとき、演算指令
35−SATは飽和演算命令であることを示すためにア
クティブとされる。飽和処理をしたことを示す状態信号
36と信号35−SATがともにアクティブで“1”で
あるため、AND回路41の出力は“1”となり、また
情報OVからなる状態信号30が“1”であるため、制
御信号37−SATは“1”となり、SATフラグ6が
“1”にセットされる。
処理をしないときのPSW9とフラグ生成回路4の詳細
な動作について説明する。飽和演算命令実行のとき、演
算指令35−SATはアクティブとされ“1”である
が、飽和処理をしないため状態信号36はインアクティ
ブとされ“0”であるため、AND回路41の出力は
“0”となる。AND回路42の一の入力端子が“0”
であるため、情報OVからなる状態信号30の論理レベ
ルにかかわらず、AND回路42の出力である信号37
−SATは“0”となる。したがって、SATフラグ6
は以前の情報を保ち続ける。
条件とSATフラグ6の状態をまとめて示す。
おいて、飽和処理をしない通常の演算命令実行時の動作
は、前記従来例と実質的に同じである。
演算命令実行時におけるPSW9とフラグ生成回路4の
詳細な動作について説明する。飽和演算命令を実行して
いないために、飽和処理をしたことを示す状態信号36
と信号35−SATはいずれもインアクティブとされ、
ともに“0”であり、AND回路41の出力は“0”と
なる。AND回路41の出力が“0”であるため、状態
信号30の論理レベルにかかわらず、制御信号37−S
ATは“0”となる。したがって、SATフラグ6は以
前の情報を保ち続ける。
ルタに用いられる累積加算の場合について説明する。
処理の流れ図を示す。図2を参照して、前記従来例と同
様に、累積加算結果を得るまでの過程を説明する。
レジスタ10、Bレジスタ11、Cレジスタ12に予め
格納され、回転数Vn,Vn-1,Vn-2はそれぞれDレジ
スタ13、Eレジスタ14、Fレジスタ15に予め格納
されているものとする。本実施例ではGレジスタ16は
用いられない。
“0”に設定する(ステップ100)。α*Vnの算出を行
い(ステップ101)、β*Vn-1の算出を行う(ステップ
102)。
た項の和α*Vn+β*Vn-1をとる(ステップ103)。
γ*Vn-2の算出を行う(ステップ104)。飽和演算命令
によりステップ103と104で得た項の和α*Vn+β*V
n-1+γ*Vn-2をとる(ステップ105)。
に示す演算装置の汎用レジスタを用いた実際の動作に基
づき、ステップ103で飽和処理が行なわれ、ステップ105
で飽和処理をしなかった場合の動作について説明する。
図2には、SATフラグ6の状態が処理ステップに対応
して示されている。
設定する。ステップ101でAレジスタ10とDレジスタ
13との積をDレジスタ13に格納する。ステップ102
でBレジスタ11とEレジスタ14との積をEレジスタ
に格納する。
タ14との和をとって、飽和処理をする。このとき、S
ATフラグ6が“1”にセットされる。
タ15との積をFレジスタ15に格納する。ステップ10
5でEレジスタ14とFレジスタ15との和をとり、飽
和処理は行わずにFレジスタ15に格納する。このと
き、SATフラグ6は“1”にセットされたまま変化せ
ず、処理フローを終了する。
飽和処理したことが記憶されて、SATフラグ6は
“1”となり、以後、飽和処理が行なわれない場合で
も、SATフラグ6はクリアされず、飽和処理をした情
報が記憶保持される。
従来例と全く同様な、高速に回転するモータの回転数の
設定処理において、限界値制御に用いられるステップか
ら、飽和処理の判定と記憶のための処理ステップを完全
に削除し、全体のステップ数は従来例の10ステップか
ら6ステップにまで縮減され、オーバーヘッドを解消し
回転数制御の高精度化及び高速化を達成している。
憶保持するSATフラグ6は、一旦セットされた場合、
所定の命令が実行されてリセットされるまで、演算結果
によってクリアされることがないため、飽和処理をした
かどうかの判定を、全ての累積加算の最後に一度行なえ
ばよい。
うかを記憶するために、演算装置の汎用レジスタ等を用
いる必要がない。すなわち、従来例では、Gレジスタ1
6は飽和処理の記憶用に割当てられたが、本実施例で
は、Gレジスタ16は他のデータ格納等に用いることが
可能とされ、情報処理装置のハードウェア資源の効率的
利用を可能とする。
たが、本発明は、上記態様にのみ限定されるものでな
く、本発明の原理に準ずる各種実施態様を含む。例え
ば、上記実施例では、モータの回転数制御における累積
加算演算を例に説明したが、これはあくまで具体例に基
づき発明の理解を助けるためのものであり、本発明はそ
の原理に従い他の応用においてもオーバーヘッドを同様
に解消することは勿論である。
装置によれば、簡易な回路構成の追加により、飽和演算
命令実行の直後にその都度必要とされた飽和処理の判定
と記憶のための処理ステップを完全に不要とし、情報処
理装置の高速化、高精度化を達成する。
おいて、演算結果が飽和処理されたかどうかを判定する
際に、各飽和演算後にその都度飽和処理をしたかどうか
の判定をしなくても済む。すなわち、本発明によれば、
飽和処理の有無を記憶保持するフラグは、一旦セットさ
れた場合、所定の命令が実行されてリセットされるま
で、演算結果によってクリアされることがないため、飽
和処理をしたかどうかの判定を、すべての累積加算の最
後に一度行なえばよい。
記憶のために、従来必要とされたオーバーヘッドを完全
に解消している。一例として、モータの回転数の制御に
おいて、従来例では、図5の流れ図の各ステップの処理
に同一時間を要するものと仮定すると、全体で10ステ
ップから成る処理ステップのうち4ステップが飽和処理
の判定と記録に費やされ、全処理時間のうち40%がオ
ーバーヘッド時間となってしまうのに対して、本発明に
よれば、簡単なフラグ機能の追加のみで、従来例で必要
とされた、判定と記録による40%のオーバーヘッド時
間を不要とし、高精度かつ高速な制御を容易に実現する
ため、実用的な効果は極めて高い。
どうかを記憶するために汎用レジスタを割当てる必要が
なく、経済性に優れ、情報処理装置のハードウェア資源
の効率的利用を可能とする。
る。
成回路4の回路構成図の一例である。
成図である。
Claims (2)
- 【請求項1】 演算手段と、前記演算手段による演算結
果に応じて飽和処理を行う飽和処理手段と、前記飽和処
理手段による飽和処理を行う時にのみセットされ、初期
化時にのみリセットされる前記飽和処理の有無を示す飽
和フラグを、プログラムステータスワードの1つとして
記憶するRSフリップフロップで構成される記憶手段と
を有し、前記セットされて一旦飽和処理有りにされた後
は前記リセットされるまで前記記憶手段の記憶内容が変
化しないことを特徴とする情報処理装置。 - 【請求項2】 飽和演算命令の実行を示す情報と前記演
算手段から出力されるオーバーフローの有無を示す信号
及び符号を示す信号とに基づき、飽和処理を検出する検
出手段を備え、前記検出手段が飽和処理を検出した時に
のみ前記飽和処理の有無を記憶する記憶手段をセットす
ることを特徴とする請求項1記載の情報処理装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06151799A JP3105738B2 (ja) | 1994-06-10 | 1994-06-10 | 情報処理装置 |
KR1019950015314A KR100210891B1 (ko) | 1994-06-10 | 1995-06-10 | 정보 처리 장치 |
US08/489,622 US5684728A (en) | 1994-06-10 | 1995-06-12 | Data processing system having a saturation arithmetic operation function |
DE69525682T DE69525682T2 (de) | 1994-06-10 | 1995-06-12 | Datenprozessorsystem mit Saturation-arithmetischer Operationsfunktion |
EP95109062A EP0686910B1 (en) | 1994-06-10 | 1995-06-12 | Data processing system having a saturation arithmetic operation function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06151799A JP3105738B2 (ja) | 1994-06-10 | 1994-06-10 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07334346A JPH07334346A (ja) | 1995-12-22 |
JP3105738B2 true JP3105738B2 (ja) | 2000-11-06 |
Family
ID=15526559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP06151799A Expired - Fee Related JP3105738B2 (ja) | 1994-06-10 | 1994-06-10 | 情報処理装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5684728A (ja) |
EP (1) | EP0686910B1 (ja) |
JP (1) | JP3105738B2 (ja) |
KR (1) | KR100210891B1 (ja) |
DE (1) | DE69525682T2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2300054A (en) * | 1995-01-17 | 1996-10-23 | Hewlett Packard Co | Clipping integers |
JP3701401B2 (ja) * | 1996-08-12 | 2005-09-28 | 株式会社ルネサステクノロジ | 飽和演算命令を有するマイクロプロセッサ |
JPH1063500A (ja) * | 1996-08-23 | 1998-03-06 | Matsushita Electric Ind Co Ltd | 信号処理装置 |
JP3790619B2 (ja) | 1996-11-29 | 2006-06-28 | 松下電器産業株式会社 | 正値化処理及び飽和演算処理からなる丸め処理を好適に行うことができるプロセッサ |
US6282558B1 (en) | 1997-12-19 | 2001-08-28 | Matsushita Electric Industrial Co., Ltd. | Data processing system and register file |
US6366999B1 (en) * | 1998-01-28 | 2002-04-02 | Bops, Inc. | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
US6243731B1 (en) * | 1998-03-20 | 2001-06-05 | Texas Instruments Incorporated | Apparatus and method for extending register dynamic range |
US6226735B1 (en) * | 1998-05-08 | 2001-05-01 | Broadcom | Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements |
US6748411B1 (en) | 2000-11-20 | 2004-06-08 | Agere Systems Inc. | Hierarchical carry-select multiple-input split adder |
EP1387259B1 (en) | 2002-07-31 | 2017-09-20 | Texas Instruments Incorporated | Inter-processor control |
US7215801B2 (en) * | 2003-06-05 | 2007-05-08 | General Electric Company | Method, system and apparatus for processing radiographic images of scanned objects |
US7295689B2 (en) * | 2003-07-09 | 2007-11-13 | General Electric Company | System and method for real-time processing and display of digital medical images |
EP1503280A1 (en) * | 2003-07-30 | 2005-02-02 | Texas Instruments Incorporated | Saturated arithmetic in a processing unit |
US8209366B2 (en) * | 2005-02-28 | 2012-06-26 | Hitachi Global Storage Technologies Netherlands B.V. | Method, apparatus and program storage device that provides a shift process with saturation for digital signal processor operations |
US9417880B2 (en) * | 2013-03-15 | 2016-08-16 | Intel Corporation | Instruction for performing an overload check |
US20190196820A1 (en) * | 2017-12-21 | 2019-06-27 | Intel Corporation | Apparatus and method for right shifting packed quadwords and extracting packed doublewords |
US20190196821A1 (en) * | 2017-12-21 | 2019-06-27 | Intel Corporation | Apparatus and method for right-shifting packed quadwords and extracting packed words |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58115544A (ja) * | 1981-12-29 | 1983-07-09 | Mitsubishi Electric Corp | 演算装置 |
US4589087A (en) * | 1983-06-30 | 1986-05-13 | International Business Machines Corporation | Condition register architecture for a primitive instruction set machine |
JPS6388636A (ja) * | 1986-10-01 | 1988-04-19 | Nec Corp | マイクロコンピユ−タ |
JPS63229519A (ja) * | 1987-03-19 | 1988-09-26 | Fujitsu Ltd | フラグビツト設定回路 |
JPH0769783B2 (ja) * | 1987-11-16 | 1995-07-31 | 日本電気株式会社 | 例外処理方式 |
JP2600293B2 (ja) * | 1988-06-10 | 1997-04-16 | 日本電気株式会社 | オーバーフロー補正回路 |
JP3076046B2 (ja) * | 1989-01-31 | 2000-08-14 | 日本電気株式会社 | 例外検出回路 |
JPH02226337A (ja) * | 1989-02-27 | 1990-09-07 | Nec Corp | 演算回路 |
US5218564A (en) * | 1991-06-07 | 1993-06-08 | National Semiconductor Corporation | Layout efficient 32-bit shifter/register with 16-bit interface |
JPH05260315A (ja) * | 1992-03-13 | 1993-10-08 | Fujitsu Ltd | データ復元装置 |
JP3487903B2 (ja) * | 1993-11-12 | 2004-01-19 | 松下電器産業株式会社 | 演算装置及び演算方法 |
US5448509A (en) * | 1993-12-08 | 1995-09-05 | Hewlett-Packard Company | Efficient hardware handling of positive and negative overflow resulting from arithmetic operations |
-
1994
- 1994-06-10 JP JP06151799A patent/JP3105738B2/ja not_active Expired - Fee Related
-
1995
- 1995-06-10 KR KR1019950015314A patent/KR100210891B1/ko not_active IP Right Cessation
- 1995-06-12 EP EP95109062A patent/EP0686910B1/en not_active Expired - Lifetime
- 1995-06-12 US US08/489,622 patent/US5684728A/en not_active Expired - Lifetime
- 1995-06-12 DE DE69525682T patent/DE69525682T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR960001991A (ko) | 1996-01-26 |
DE69525682T2 (de) | 2002-08-22 |
JPH07334346A (ja) | 1995-12-22 |
EP0686910A1 (en) | 1995-12-13 |
US5684728A (en) | 1997-11-04 |
KR100210891B1 (ko) | 1999-07-15 |
DE69525682D1 (de) | 2002-04-11 |
EP0686910B1 (en) | 2002-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3105738B2 (ja) | 情報処理装置 | |
EP0766169B1 (en) | Processor and control method for performing proper saturation operation | |
EP1058185A1 (en) | A multiply and accumulate apparatus and a method thereof | |
US5991868A (en) | Apparatus and method for processing data with a plurality of flag groups | |
JPH0786826B2 (ja) | 整数除算回路 | |
US6581086B1 (en) | Multiply and accumulate unit (MAC) and method therefor | |
US5748518A (en) | Data processing divider | |
US6005502A (en) | Method for reducing the number of bits needed for the representation of constant values in a data processing device | |
US6425047B1 (en) | Process containing address decoders suited to improvements in clock speed | |
JPH07219766A (ja) | 演算処理装置 | |
US5732252A (en) | Program counter system capable of incrementing or decrementing after a conditional jump instruction | |
JP2812610B2 (ja) | パイプライン制御方式 | |
KR100385233B1 (ko) | 데이터 프로세싱 시스템의 익스포넌트 유닛 | |
JPH0619700B2 (ja) | 演算装置 | |
JP2743685B2 (ja) | 固定小数点プロセッサ | |
JPS6230455B2 (ja) | ||
JPS6017131B2 (ja) | メモリ制御回路 | |
JP3186214B2 (ja) | 繰り返し演算方法および装置 | |
JP3305967B2 (ja) | Dspのポインタ異常検出回路 | |
JP2604667B2 (ja) | 予測機能付き演算装置 | |
JP3239042B2 (ja) | マイクロコンピュータ | |
JPS58222348A (ja) | 情報処理装置 | |
EP0305530A1 (en) | High-speed floating point arithmetic unit | |
JPS6351294B2 (ja) | ||
JPH0553759A (ja) | 固定小数点演算ユニツト |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19980317 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080901 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080901 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090901 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090901 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100901 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100901 Year of fee payment: 10 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100901 Year of fee payment: 10 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110901 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110901 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120901 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120901 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130901 Year of fee payment: 13 |
|
LAPS | Cancellation because of no payment of annual fees |