JPH0997178A - 飽和演算処理装置および方法 - Google Patents
飽和演算処理装置および方法Info
- Publication number
- JPH0997178A JPH0997178A JP7252737A JP25273795A JPH0997178A JP H0997178 A JPH0997178 A JP H0997178A JP 7252737 A JP7252737 A JP 7252737A JP 25273795 A JP25273795 A JP 25273795A JP H0997178 A JPH0997178 A JP H0997178A
- Authority
- JP
- Japan
- Prior art keywords
- value
- operand
- state
- saturation
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
(57)【要約】
【目的】 各種情報処理装置において、少ない命令で効
率的に飽和演算を実行できる飽和演算処理装置および方
法を提供する。 【構成】 141は演算データおよび演算結果を記憶し、
出力するレジスタファイル、142はレジスタファイル141
の出力を用いて演算を行なう演算回路、143はレジスタ
ファイル141の出力を用いて飽和補正処理を行なう飽和
補正処理回路、1431はレジスタファイル141の出力が予
め定めた上限値、下限値を越えているか識別する比較回
路、1432は、前記上限値、前記下限値を発生する定数発
生回路、1433は比較回路器1431の出力に基づいてレジス
タファイル141の出力値と、前記上限値、前記下限値の
うちのいずれか一つを選択して出力するマルチプレクサ
である。
率的に飽和演算を実行できる飽和演算処理装置および方
法を提供する。 【構成】 141は演算データおよび演算結果を記憶し、
出力するレジスタファイル、142はレジスタファイル141
の出力を用いて演算を行なう演算回路、143はレジスタ
ファイル141の出力を用いて飽和補正処理を行なう飽和
補正処理回路、1431はレジスタファイル141の出力が予
め定めた上限値、下限値を越えているか識別する比較回
路、1432は、前記上限値、前記下限値を発生する定数発
生回路、1433は比較回路器1431の出力に基づいてレジス
タファイル141の出力値と、前記上限値、前記下限値の
うちのいずれか一つを選択して出力するマルチプレクサ
である。
Description
【0001】
【産業上の利用分野】本発明は情報処理装置等の演算処
理装置として用いられ、特に演算におけるオーバーフロ
ー処理や、演算結果のリミット処理のように、演算結果
が予め定めた値を越えた場合の最終結果を設定値に置き
換える飽和演算処理装置および方法に関するものであ
る。
理装置として用いられ、特に演算におけるオーバーフロ
ー処理や、演算結果のリミット処理のように、演算結果
が予め定めた値を越えた場合の最終結果を設定値に置き
換える飽和演算処理装置および方法に関するものであ
る。
【0002】
【従来の技術】近年、飽和演算処理装置はサーボ制御や
画像処理といったさまざまな分野で使用されている。
画像処理といったさまざまな分野で使用されている。
【0003】以下に従来の飽和演算処理装置および方法
について説明する。従来このような飽和演算を実現する
場合、プログラムの中において演算命令の後に、その値
が規定された範囲を越えたかどうかを判定し、越えてい
る場合は規定された上限値または下限値に補正するルー
チンを挿入するという方法を取ってきた。
について説明する。従来このような飽和演算を実現する
場合、プログラムの中において演算命令の後に、その値
が規定された範囲を越えたかどうかを判定し、越えてい
る場合は規定された上限値または下限値に補正するルー
チンを挿入するという方法を取ってきた。
【0004】以下は従来のプロセッサにおいて飽和演算
を処理する場合に挿入するプログラムの例を示すもので
ある。 (D1に演算結果が格納されている場合) 命令1: CMP 上限値,D1 命令2: BCS NOT_CARRY 命令3: MOV 上限値,D1 命令4: BRA END NOT_CARRY: 命令5: CMP 下限値,D1 命令6: BCC END 命令7: MOV 下限値,D1 END: (飽和演算処理の終了) 以下で上記のルーチンの説明を行なう。 命令1: D1レジスタの値を上限値と比較し、結果をフラ
グレジスタに格納する。 命令2: 比較の結果、D1レジスタの値が上限値より小さ
いか等しい場合は命令5へ分岐する。 命令3: 比較の結果、D1レジスタの値が上限値を越えて
いる場合は上限値に補正する。 命令4: 飽和演算の終了へ無条件で分岐する 命令5: D1レジスタの値を下限値と比較し、結果をフラ
グレジスタに格納する。 命令6: 比較の結果、D1レジスタの値が下限値より大き
いか等しい場合は飽和演算処理の終了へ分岐する。 命令7: 比較の結果、D1レジスタの値が下限値より小さ
い場合は飽和演算の最小値に補正する。
を処理する場合に挿入するプログラムの例を示すもので
ある。 (D1に演算結果が格納されている場合) 命令1: CMP 上限値,D1 命令2: BCS NOT_CARRY 命令3: MOV 上限値,D1 命令4: BRA END NOT_CARRY: 命令5: CMP 下限値,D1 命令6: BCC END 命令7: MOV 下限値,D1 END: (飽和演算処理の終了) 以下で上記のルーチンの説明を行なう。 命令1: D1レジスタの値を上限値と比較し、結果をフラ
グレジスタに格納する。 命令2: 比較の結果、D1レジスタの値が上限値より小さ
いか等しい場合は命令5へ分岐する。 命令3: 比較の結果、D1レジスタの値が上限値を越えて
いる場合は上限値に補正する。 命令4: 飽和演算の終了へ無条件で分岐する 命令5: D1レジスタの値を下限値と比較し、結果をフラ
グレジスタに格納する。 命令6: 比較の結果、D1レジスタの値が下限値より大き
いか等しい場合は飽和演算処理の終了へ分岐する。 命令7: 比較の結果、D1レジスタの値が下限値より小さ
い場合は飽和演算の最小値に補正する。
【0005】しかしこの方法では、飽和演算の度に判
定、分岐、補正といった処理が必要であり、飽和演算時
に必要な処理が多くなるため、飽和演算使用時の性能の
低下が著しく、また飽和演算使用時のプログラムのステ
ップ数の増加も著しい。さらに分岐命令を使用するため
に、パイプライン処理時には処理効率が低下する。
定、分岐、補正といった処理が必要であり、飽和演算時
に必要な処理が多くなるため、飽和演算使用時の性能の
低下が著しく、また飽和演算使用時のプログラムのステ
ップ数の増加も著しい。さらに分岐命令を使用するため
に、パイプライン処理時には処理効率が低下する。
【0006】前記の問題を解決するために、飽和演算を
行なうための専用の飽和演算命令を設け、飽和演算命令
実行時に演算装置出力に接続された飽和補正回路を用い
ることによって、1ステップで飽和演算を実現する方法
がある(例えば特開平7-210368号公報)。
行なうための専用の飽和演算命令を設け、飽和演算命令
実行時に演算装置出力に接続された飽和補正回路を用い
ることによって、1ステップで飽和演算を実現する方法
がある(例えば特開平7-210368号公報)。
【0007】図7は前記の方法に基づく従来の飽和演算
処理装置である。70は命令を解読し、飽和演算処理装置
の各ブロックを制御するデコーダ、71は演算データおよ
び演算結果を記憶し出力するレジスタファイルであり、
72はレジスタファイル71の出力を用いて演算を行なう演
算回路、73は演算回路72の演算結果に基づいて飽和を検
出する飽和判定回路、74は飽和演算の上限値、下限値を
出力する定数発生回路、75は飽和判定回路73の出力に基
づいて、演算回路72または定数発生回路74の出力する上
限値または下限値のうちいずれか一つを選択し、出力す
るマルチプレクサである。
処理装置である。70は命令を解読し、飽和演算処理装置
の各ブロックを制御するデコーダ、71は演算データおよ
び演算結果を記憶し出力するレジスタファイルであり、
72はレジスタファイル71の出力を用いて演算を行なう演
算回路、73は演算回路72の演算結果に基づいて飽和を検
出する飽和判定回路、74は飽和演算の上限値、下限値を
出力する定数発生回路、75は飽和判定回路73の出力に基
づいて、演算回路72または定数発生回路74の出力する上
限値または下限値のうちいずれか一つを選択し、出力す
るマルチプレクサである。
【0008】また図8は従来の飽和演算処理装置で2種
類のアドレッシングモードを持つ3種類の演算を備えて
いる場合に16ビットと32ビットの2種類の飽和演算を実
現するために必要な命令の一覧である。
類のアドレッシングモードを持つ3種類の演算を備えて
いる場合に16ビットと32ビットの2種類の飽和演算を実
現するために必要な命令の一覧である。
【0009】以上のように構成された飽和演算処理装置
において、以下その動作について説明する。
において、以下その動作について説明する。
【0010】飽和演算命令が実行されると、まずレジス
タファイル71が演算データを出力し、演算回路72が演算
を行ない、演算結果を出力する。飽和判定回路73は前記
演算結果が予め定められた飽和演算の上限値または下限
値を越えたかどうかを判定する。
タファイル71が演算データを出力し、演算回路72が演算
を行ない、演算結果を出力する。飽和判定回路73は前記
演算結果が予め定められた飽和演算の上限値または下限
値を越えたかどうかを判定する。
【0011】次にマルチプレクサ74は飽和判定回路73の
判定に基づいて、演算結果が前記上限値より大きい場合
は、前記上限値を選択し、演算結果が前記下限値より小
さい場合は、前記下限値を選択し、演算結果が前記上限
値より小さいか等しくかつ前記下限値より大きいか等し
い場合は、前記演算結果を選択して出力する。
判定に基づいて、演算結果が前記上限値より大きい場合
は、前記上限値を選択し、演算結果が前記下限値より小
さい場合は、前記下限値を選択し、演算結果が前記上限
値より小さいか等しくかつ前記下限値より大きいか等し
い場合は、前記演算結果を選択して出力する。
【0012】次にレジスタファイル71はマルチプレクサ
74の出力を演算結果として格納する。
74の出力を演算結果として格納する。
【0013】なお、通常の演算命令を実行する場合は、
マルチプレクサ74は前記判定結果に関わらず演算結果を
選択し出力するように制御される。
マルチプレクサ74は前記判定結果に関わらず演算結果を
選択し出力するように制御される。
【0014】
【発明が解決しようとする課題】しかしながら、上記の
従来の飽和演算処理装置では専用の飽和演算命令を用い
るので、飽和演算を必要とする演算命令の数と飽和処理
を行なうビット幅の種類の積の分だけ命令数が著しく増
加し、命令デコーダ、制御回路が複雑化するという問題
点を有していた。
従来の飽和演算処理装置では専用の飽和演算命令を用い
るので、飽和演算を必要とする演算命令の数と飽和処理
を行なうビット幅の種類の積の分だけ命令数が著しく増
加し、命令デコーダ、制御回路が複雑化するという問題
点を有していた。
【0015】本発明は上記従来の問題点を解決するもの
で、少ない命令数で飽和演算を実現可能な飽和演算処理
装置および方法を提供することを目的とする。
で、少ない命令数で飽和演算を実現可能な飽和演算処理
装置および方法を提供することを目的とする。
【0016】
【課題を解決するための手段】上記の課題を解決するた
めに本発明の飽和演算処理装置は、少なくとも演算命令
と補正命令とを含む命令を解読する解読手段と、演算手
段と、入力値が予め定めた第一の値より大きいか否かを
識別するとともに前記入力値が予め定めた第二の値より
小さいか否かを識別する比較手段と、前記入力値または
前記第一の値または前記第二の値のうちいずれか一つを
出力する出力手段とを備え、前記解読手段は、前記演算
命令を受け取ると前記演算手段を制御し、前記補正命令
を受け取ると、前記補正命令によって指示される第一の
オペランドの値が前記第一の値より大きいと識別される
場合は前記第一の値を前記第一のオペランドまたは前記
補正命令によって他に指示される第二のオペランドに設
定し、前記第一のオペランドの値が前記第二の値より小
さいと識別される場合は前記第二の値を前記第一のオペ
ランドまたは前記補正命令によって他に指示される第二
のオペランドに設定し、前記第一のオペランドの値が前
記第一の値より小さいか等しくかつ前記第二の値より大
きいか等しいと識別される場合は、前記第一のオペラン
ドの値をそのまま前記第一のオペランドまたは前記補正
命令によって他に指示される第二のオペランドに設定す
るように前記比較手段と前記出力手段とを制御する。
めに本発明の飽和演算処理装置は、少なくとも演算命令
と補正命令とを含む命令を解読する解読手段と、演算手
段と、入力値が予め定めた第一の値より大きいか否かを
識別するとともに前記入力値が予め定めた第二の値より
小さいか否かを識別する比較手段と、前記入力値または
前記第一の値または前記第二の値のうちいずれか一つを
出力する出力手段とを備え、前記解読手段は、前記演算
命令を受け取ると前記演算手段を制御し、前記補正命令
を受け取ると、前記補正命令によって指示される第一の
オペランドの値が前記第一の値より大きいと識別される
場合は前記第一の値を前記第一のオペランドまたは前記
補正命令によって他に指示される第二のオペランドに設
定し、前記第一のオペランドの値が前記第二の値より小
さいと識別される場合は前記第二の値を前記第一のオペ
ランドまたは前記補正命令によって他に指示される第二
のオペランドに設定し、前記第一のオペランドの値が前
記第一の値より小さいか等しくかつ前記第二の値より大
きいか等しいと識別される場合は、前記第一のオペラン
ドの値をそのまま前記第一のオペランドまたは前記補正
命令によって他に指示される第二のオペランドに設定す
るように前記比較手段と前記出力手段とを制御する。
【0017】また本発明の飽和演算処理装置は、少なく
とも演算命令と補正命令とを含む命令を解読する解読手
段と、演算手段と、前記演算手段による演算結果が予め
定めた第一の値より大きくなった時に第一の状態を保持
し、前記演算結果が予め定めた第二の値より小さくなっ
た時に第二の状態を保持する状態保持手段と、入力値ま
たは前記第一の値または前記第二の値のいずれか一つを
出力する出力手段とを備え、前記解読手段は、前記演算
命令を受け取ると前記演算手段を制御するとともに前記
状態保持手段が演算結果に応じて状態を保持するように
制御し、前記補正命令を受け取ると、前記状態保持手段
が前記第一の状態を保持する場合は前記第一の値を前記
第一のオペランドまたは前記補正命令によって他に指示
される第二のオペランドに設定し、前記状態保持手段が
前記第二の状態を保持する場合は前記第二の値を前記第
一のオペランドまたは前記補正命令によって他に指示さ
れる第二のオペランドに設定し、前記状態保持手段が前
記第一の状態とも前記第二の状態とも異なる状態を保持
する場合は前記第一のオペランドの値をそのまま前記第
一のオペランドまたは前記補正命令によって他に指示さ
れる第二のオペランドに設定するように前記出力手段を
制御する。
とも演算命令と補正命令とを含む命令を解読する解読手
段と、演算手段と、前記演算手段による演算結果が予め
定めた第一の値より大きくなった時に第一の状態を保持
し、前記演算結果が予め定めた第二の値より小さくなっ
た時に第二の状態を保持する状態保持手段と、入力値ま
たは前記第一の値または前記第二の値のいずれか一つを
出力する出力手段とを備え、前記解読手段は、前記演算
命令を受け取ると前記演算手段を制御するとともに前記
状態保持手段が演算結果に応じて状態を保持するように
制御し、前記補正命令を受け取ると、前記状態保持手段
が前記第一の状態を保持する場合は前記第一の値を前記
第一のオペランドまたは前記補正命令によって他に指示
される第二のオペランドに設定し、前記状態保持手段が
前記第二の状態を保持する場合は前記第二の値を前記第
一のオペランドまたは前記補正命令によって他に指示さ
れる第二のオペランドに設定し、前記状態保持手段が前
記第一の状態とも前記第二の状態とも異なる状態を保持
する場合は前記第一のオペランドの値をそのまま前記第
一のオペランドまたは前記補正命令によって他に指示さ
れる第二のオペランドに設定するように前記出力手段を
制御する。
【0018】さらに本発明の飽和演算処理方法は、第一
のオペランドと第二のオペランドとを用いて演算を行
い、結果を第一のオペランドと第二のオペランドとのい
ずれかと同一またはいずれとも異なる第三のオペランド
に格納する演算ステップと、前記第三のオペランドの値
を予め定めた第一の値と比較し、前記第三のオペランド
の値が前記第一の値より大きい場合は前記第一の値を前
記第三のオペランドまたは前記第三のオペランドとは異
なる第四のオペランドに設定し、前記第三のオペランド
の値が前記第一の値より小さいかまたは等しい場合は前
記第三のオペランドの値をそのまま前記第三のオペラン
ドまたは前記第四のオペランドに設定する補正ステップ
とを有し、前記演算ステップでの演算結果が前記第一の
値より大きくなる場合に後続する補正ステップにおいて
前記演算結果を前記第一の値に丸める。
のオペランドと第二のオペランドとを用いて演算を行
い、結果を第一のオペランドと第二のオペランドとのい
ずれかと同一またはいずれとも異なる第三のオペランド
に格納する演算ステップと、前記第三のオペランドの値
を予め定めた第一の値と比較し、前記第三のオペランド
の値が前記第一の値より大きい場合は前記第一の値を前
記第三のオペランドまたは前記第三のオペランドとは異
なる第四のオペランドに設定し、前記第三のオペランド
の値が前記第一の値より小さいかまたは等しい場合は前
記第三のオペランドの値をそのまま前記第三のオペラン
ドまたは前記第四のオペランドに設定する補正ステップ
とを有し、前記演算ステップでの演算結果が前記第一の
値より大きくなる場合に後続する補正ステップにおいて
前記演算結果を前記第一の値に丸める。
【0019】またさらに本発明の飽和演算処理方法は、
第一のオペランドと第二のオペランドとを用いて演算を
行い、結果を第一のオペランドと第二のオペランドとの
いずれかと同一またはいずれとも異なる第三のオペラン
ドに格納するとともに、前記結果が予め定めた第一の値
より大きくなったときに第一の状態を状態保持手段に保
持する演算ステップと、前記状態保持手段が前記第一の
状態を保持している場合は前記第一の値を前記第三のオ
ペランドまたは前記第三のオペランドとは異なる第四の
オペランドに設定し、前記状態保持手段が前記第一の状
態とは異なる状態を保持している場合は前記第三のオペ
ランドの値をそのまま前記第三のオペランドまたは前記
第四のオペランドに設定する補正ステップとを有し、前
記演算ステップでの演算結果が前記第一の値より大きく
なる場合に後続する補正ステップにおいて前記演算結果
を前記第一の値に丸める。
第一のオペランドと第二のオペランドとを用いて演算を
行い、結果を第一のオペランドと第二のオペランドとの
いずれかと同一またはいずれとも異なる第三のオペラン
ドに格納するとともに、前記結果が予め定めた第一の値
より大きくなったときに第一の状態を状態保持手段に保
持する演算ステップと、前記状態保持手段が前記第一の
状態を保持している場合は前記第一の値を前記第三のオ
ペランドまたは前記第三のオペランドとは異なる第四の
オペランドに設定し、前記状態保持手段が前記第一の状
態とは異なる状態を保持している場合は前記第三のオペ
ランドの値をそのまま前記第三のオペランドまたは前記
第四のオペランドに設定する補正ステップとを有し、前
記演算ステップでの演算結果が前記第一の値より大きく
なる場合に後続する補正ステップにおいて前記演算結果
を前記第一の値に丸める。
【0020】
【作用】以上のように本発明は前記した構成により、飽
和演算処理を行なう場合、まず通常の演算ステップを実
行し、その結果をオペランドとして飽和演算の補正ステ
ップを実行する。補正ステップでは比較手段がオペラン
ドが予め定められた上限値としての第一の値、下限値と
しての第二の値を越えているかを判定し、出力手段が前
記比較手段の判定結果に基づいて前記オペランドの値ま
たは前記第一の値または前記第二の値のうちのいずれか
一つを補正結果として選択する。従って、本発明の飽和
演算処理装置および方法では演算ステップには変更を加
えないため、飽和演算を行うビット幅の種類分だけの命
令を備えればよく、飽和演算をそれぞれの演算に対して
追加する場合に比べて命令数を削減することが出来る。
また、飽和演算処理のために演算処理にかかる時間が増
大することによるプロセッサ動作クロック周波数の上限
の低下も起こらない。
和演算処理を行なう場合、まず通常の演算ステップを実
行し、その結果をオペランドとして飽和演算の補正ステ
ップを実行する。補正ステップでは比較手段がオペラン
ドが予め定められた上限値としての第一の値、下限値と
しての第二の値を越えているかを判定し、出力手段が前
記比較手段の判定結果に基づいて前記オペランドの値ま
たは前記第一の値または前記第二の値のうちのいずれか
一つを補正結果として選択する。従って、本発明の飽和
演算処理装置および方法では演算ステップには変更を加
えないため、飽和演算を行うビット幅の種類分だけの命
令を備えればよく、飽和演算をそれぞれの演算に対して
追加する場合に比べて命令数を削減することが出来る。
また、飽和演算処理のために演算処理にかかる時間が増
大することによるプロセッサ動作クロック周波数の上限
の低下も起こらない。
【0021】
(実施例1)以下本発明の第一の実施例について図面を
参照しながら説明する。図2は本発明の第一の実施例に
おける飽和演算処理装置のブロック図を示すものであ
る。
参照しながら説明する。図2は本発明の第一の実施例に
おける飽和演算処理装置のブロック図を示すものであ
る。
【0022】同図において、11はメモリ、12はメモリ11
から命令を読み出す命令読出し回路、13は命令読み出し
回路12から受け取った命令を解読するデコーダ、14はデ
コーダ13の指示に基づいて演算を実行する演算実行装置
である。
から命令を読み出す命令読出し回路、13は命令読み出し
回路12から受け取った命令を解読するデコーダ、14はデ
コーダ13の指示に基づいて演算を実行する演算実行装置
である。
【0023】図1は同実施例における演算実行装置14の
ブロック図を示すものである。同図において、141は演
算データおよび演算結果を記憶し出力する32ビット幅の
レジスタファイル、142はレジスタファイル141の出力を
用いて32ビット幅の演算を行なう演算回路、143はレジ
スタファイル141の出力を用いて飽和補正処理を行なう
飽和補正処理回路であり、143はさらにレジスタファイ
ル141の出力が飽和演算補正命令によって定められる32
ビット幅の上限値、下限値を越えているか識別する比較
回路1431と、前記上限値、前記下限値を発生する定数発
生回路1342と、比較回路1431の出力に基づいてレジスタ
ファイル141の出力値と前記上限値、前記下限値のうち
のいずれか一つを選択して出力するマルチプレクサ1433
から構成される。
ブロック図を示すものである。同図において、141は演
算データおよび演算結果を記憶し出力する32ビット幅の
レジスタファイル、142はレジスタファイル141の出力を
用いて32ビット幅の演算を行なう演算回路、143はレジ
スタファイル141の出力を用いて飽和補正処理を行なう
飽和補正処理回路であり、143はさらにレジスタファイ
ル141の出力が飽和演算補正命令によって定められる32
ビット幅の上限値、下限値を越えているか識別する比較
回路1431と、前記上限値、前記下限値を発生する定数発
生回路1342と、比較回路1431の出力に基づいてレジスタ
ファイル141の出力値と前記上限値、前記下限値のうち
のいずれか一つを選択して出力するマルチプレクサ1433
から構成される。
【0024】また図3は同実施例において2種類のアド
レッシングモードを持つ3種類の演算命令を備えている
場合に16ビットと24ビットの2種類の飽和演算を実現す
るために必要な命令の一覧である。
レッシングモードを持つ3種類の演算命令を備えている
場合に16ビットと24ビットの2種類の飽和演算を実現す
るために必要な命令の一覧である。
【0025】以上のように構成された本実施例の飽和演
算処理装置に付いて、以下その動作を説明する。例示プ
ログラムを以下に示す。 命令1: ADD D0,D1(D0レジスタの値とD1レジスタの値
を加算して、結果をD1レジスタに格納する) 命令2: SAT16 D1(D1レジスタの値について16ビットの
符号付き飽和演算補正処理を行なう) 命令1が実行されると、レジスタファイル141は、第一
オペランドD0および第二オペランドD1の値を出力する。
次に演算回路142は前記第一オペランドD0の値と前記第
二オペランドD1の値を加算し、加算結果を出力する。次
にレジスタファイル141は、前記加算結果を前記第二オ
ペランドD1の領域に記憶する。命令2が実行されると、
レジスタファイル141は、第一オペランドD1の値を出力
する。
算処理装置に付いて、以下その動作を説明する。例示プ
ログラムを以下に示す。 命令1: ADD D0,D1(D0レジスタの値とD1レジスタの値
を加算して、結果をD1レジスタに格納する) 命令2: SAT16 D1(D1レジスタの値について16ビットの
符号付き飽和演算補正処理を行なう) 命令1が実行されると、レジスタファイル141は、第一
オペランドD0および第二オペランドD1の値を出力する。
次に演算回路142は前記第一オペランドD0の値と前記第
二オペランドD1の値を加算し、加算結果を出力する。次
にレジスタファイル141は、前記加算結果を前記第二オ
ペランドD1の領域に記憶する。命令2が実行されると、
レジスタファイル141は、第一オペランドD1の値を出力
する。
【0026】次に比較回路1431は前記第一オペランドの
値D1が16ビット飽和演算補正命令時の上限値である32ビ
ット符号付き整数0x00007FFF('0x'は16進数を示す。以
下同様)より大きいか否か、また前記第一オペランドの
値が16飽和演算補正命令時の下限値である32ビット符号
付き整数0xFFFF8000より小さいか否かを判定する。ま
た、定数発生回路1432は前記上限値、前記下限値を出力
する。マルチプレクサ1433は比較回路1431の判定結果に
基づいて、前記第一オペランドの値が上限値より大きい
と判定された場合は前記上限を選択し、前記第一オペラ
ンドの値が下限値より小さいと判定された場合は前記下
限値を選択し、前記第一オペランドの値が上限値より小
さいか等しくかつ下限値より大きいか等しいと判定され
た場合は第一オペランドの値を選択して補正結果として
出力する。
値D1が16ビット飽和演算補正命令時の上限値である32ビ
ット符号付き整数0x00007FFF('0x'は16進数を示す。以
下同様)より大きいか否か、また前記第一オペランドの
値が16飽和演算補正命令時の下限値である32ビット符号
付き整数0xFFFF8000より小さいか否かを判定する。ま
た、定数発生回路1432は前記上限値、前記下限値を出力
する。マルチプレクサ1433は比較回路1431の判定結果に
基づいて、前記第一オペランドの値が上限値より大きい
と判定された場合は前記上限を選択し、前記第一オペラ
ンドの値が下限値より小さいと判定された場合は前記下
限値を選択し、前記第一オペランドの値が上限値より小
さいか等しくかつ下限値より大きいか等しいと判定され
た場合は第一オペランドの値を選択して補正結果として
出力する。
【0027】次にレジスタファイル141は前記補正結果
を前記第一オペランドD1の領域に記憶する。
を前記第一オペランドD1の領域に記憶する。
【0028】また24ビットの飽和演算処理を行なう場合
は例示プログラムは以下のようになる。
は例示プログラムは以下のようになる。
【0029】命令1: ADD D0,D1(D0レジスタの値とD1レ
ジスタの値を加算して、結果をD1レジスタに格納する) 命令2: SAT24 D1(D1レジスタの値について24ビットの
符号付き飽和演算補正処理を行なう) 飽和演算処理の実行については、前記上限値、前記下限
値が0x007FFFFF、0xFF800000となるほかは16ビットの飽
和演算処理と同一の動作で、飽和演算処理を行なうこと
が可能である。
ジスタの値を加算して、結果をD1レジスタに格納する) 命令2: SAT24 D1(D1レジスタの値について24ビットの
符号付き飽和演算補正処理を行なう) 飽和演算処理の実行については、前記上限値、前記下限
値が0x007FFFFF、0xFF800000となるほかは16ビットの飽
和演算処理と同一の動作で、飽和演算処理を行なうこと
が可能である。
【0030】さらに上記のの飽和演算処理の動作につい
て具体的なデータに基づいて説明する。
て具体的なデータに基づいて説明する。
【0031】命令1: ADD D0,D1(D0レジスタの値とD1レ
ジスタの値を加算して、結果をD1レジスタに格納する) 命令2: SAT16 D1(D1レジスタの値について16ビットの
符号付き飽和演算補正処理を行なう) 以上のプログラムにおいて、初期のレジスタの値とし
て、 D0=0x00001234、D1=0x00007654 が与えられた場合、上記プログラムの動作は以下のよう
になる。
ジスタの値を加算して、結果をD1レジスタに格納する) 命令2: SAT16 D1(D1レジスタの値について16ビットの
符号付き飽和演算補正処理を行なう) 以上のプログラムにおいて、初期のレジスタの値とし
て、 D0=0x00001234、D1=0x00007654 が与えられた場合、上記プログラムの動作は以下のよう
になる。
【0032】命令1が実行されると、レジスタファイル
141から出力されたレジスタD0の値0x00001234とレジス
タD1の値0x00007654が演算回路142によって加算され、
加算結果0x00008888がレジスタファイル141のレジスタD
1の領域に格納される。
141から出力されたレジスタD0の値0x00001234とレジス
タD1の値0x00007654が演算回路142によって加算され、
加算結果0x00008888がレジスタファイル141のレジスタD
1の領域に格納される。
【0033】命令2が実行されると、レジスタファイル
141からレジスタD1の値0x00008888が出力される。
141からレジスタD1の値0x00008888が出力される。
【0034】前記レジスタD1の値は比較回路1431によっ
て16ビット飽和演算補正命令時の上限値0x00007FFFおよ
び下限値0xFFFF8000と比較される。また定数発生回路14
32は前記上限値0x00007FFFおよび前記下限値0xFFFF8000
を発生する。
て16ビット飽和演算補正命令時の上限値0x00007FFFおよ
び下限値0xFFFF8000と比較される。また定数発生回路14
32は前記上限値0x00007FFFおよび前記下限値0xFFFF8000
を発生する。
【0035】比較の結果、前記レジスタD1の値0x000088
88は前記上限値0x00007FFFより大きいため、マルチプレ
クサ1433は出力として前記上限値0x00007FFFを選択し出
力し、前記出力はレジスタファイルのレジスタD1の領域
に格納される。
88は前記上限値0x00007FFFより大きいため、マルチプレ
クサ1433は出力として前記上限値0x00007FFFを選択し出
力し、前記出力はレジスタファイルのレジスタD1の領域
に格納される。
【0036】さらに、その他の演算に対しても同様に演
算命令の後に補正命令を実行することによって飽和演算
処理が可能である。例えば減算の飽和処理の場合は以下
のプログラム例のようにすればよく、従来のように減算
用の飽和演算のための命令を必要としない。
算命令の後に補正命令を実行することによって飽和演算
処理が可能である。例えば減算の飽和処理の場合は以下
のプログラム例のようにすればよく、従来のように減算
用の飽和演算のための命令を必要としない。
【0037】命令1: SUB D0,D1(D1レジスタの値からD0
レジスタの値を減算し、結果をD1レジスタに格納する) 命令2: SAT16 D1(D1レジスタの値について16ビットの
符合付飽和演算補正処理を行なう) 以上のように本実施例によれば、飽和の補正命令が演算
命令と分離されているために、すべての演算に共通な飽
和演算補正命令を一つだけ備えればよく、従来の方法の
ように演算命令の数に対応する命令を備える場合(図8)
に比べて命令数を大幅に削減することが出来る。また、
演算装置と補正装置が独立しており、従来の方法のよう
に演算装置に接続されていないため、演算装置による演
算にかかる時間が増加することがなく、プロセッサ動作
クロック周波数の上限の低下が起こらない。
レジスタの値を減算し、結果をD1レジスタに格納する) 命令2: SAT16 D1(D1レジスタの値について16ビットの
符合付飽和演算補正処理を行なう) 以上のように本実施例によれば、飽和の補正命令が演算
命令と分離されているために、すべての演算に共通な飽
和演算補正命令を一つだけ備えればよく、従来の方法の
ように演算命令の数に対応する命令を備える場合(図8)
に比べて命令数を大幅に削減することが出来る。また、
演算装置と補正装置が独立しており、従来の方法のよう
に演算装置に接続されていないため、演算装置による演
算にかかる時間が増加することがなく、プロセッサ動作
クロック周波数の上限の低下が起こらない。
【0038】なお、本実施例では16ビット幅と24ビット
幅の2種類のビット幅での丸めを行なっているが、上限
値、下限値は上限値が下限値より大きくなる範囲でそれ
ぞれ任意の整数値をとることが出来る。
幅の2種類のビット幅での丸めを行なっているが、上限
値、下限値は上限値が下限値より大きくなる範囲でそれ
ぞれ任意の整数値をとることが出来る。
【0039】また、本実施例では飽和の上限値、下限値
および補正命令の第一オペランドと前記上限値下限値と
の比較を符号付き整数としているが、それぞれ符号なし
整数とすることも可能である。例えば、飽和の上限値を
32ビット符号なし整数0x0000FFFF、飽和の下限値を32ビ
ット符号なし整数0x00000000とし、前記第一オペランド
との比較を符号なしで行っても、同様の方法で飽和演算
を実現することが可能である。また、他のビット幅につ
いても同様である。
および補正命令の第一オペランドと前記上限値下限値と
の比較を符号付き整数としているが、それぞれ符号なし
整数とすることも可能である。例えば、飽和の上限値を
32ビット符号なし整数0x0000FFFF、飽和の下限値を32ビ
ット符号なし整数0x00000000とし、前記第一オペランド
との比較を符号なしで行っても、同様の方法で飽和演算
を実現することが可能である。また、他のビット幅につ
いても同様である。
【0040】また、本実施例では命令2のオペランドが
1つであるが、命令2のオペランドを第一オペランドD1
と第二オペランドD2の二つとし、前記補正結果を前記第
二オペランドに記憶するようにしてもよい。
1つであるが、命令2のオペランドを第一オペランドD1
と第二オペランドD2の二つとし、前記補正結果を前記第
二オペランドに記憶するようにしてもよい。
【0041】(実施例2)図4は本発明の第二の実施例
における飽和演算処理装置のブロック図を示すものであ
る。同図において、41はメモリ、42はメモリ41から命令
を読み出す命令読出し回路、43は命令読み出し回路42か
ら受け取った命令を解読するデコーダ、44はデコーダ33
の指示に基づいて演算を実行する演算実行装置である。
における飽和演算処理装置のブロック図を示すものであ
る。同図において、41はメモリ、42はメモリ41から命令
を読み出す命令読出し回路、43は命令読み出し回路42か
ら受け取った命令を解読するデコーダ、44はデコーダ33
の指示に基づいて演算を実行する演算実行装置である。
【0042】図5は同実施例における演算実行装置44の
ブロック図を示すものである。同図において、441は演
算データおよび演算結果を記憶し、出力する32ビット幅
のレジスタファイル、442はレジスタファイル441の出力
を用いて演算を行なうとともに演算結果が予め定めた32
ビット幅の上限値より大きいか否か、また前記演算結果
が予め定めた32ビット幅の下限値より小さいか否かを識
別する演算回路、443は演算回路442での識別結果に基づ
いて状態を保持するフラグレジスタ、444はフラグレジ
スタ443に基づいて飽和演算補正処理を行なう飽和演算
補正回路であり、444はさらに前記上限値、前記下限値
を発生する定数発生回路4441、フラグレジスタ443の状
態に基づいてレジスタファイル441が出力する値または
前記上限値または前記下限値のうちいずれか一つを選択
して出力するマルチプレクサ4442から構成される。
ブロック図を示すものである。同図において、441は演
算データおよび演算結果を記憶し、出力する32ビット幅
のレジスタファイル、442はレジスタファイル441の出力
を用いて演算を行なうとともに演算結果が予め定めた32
ビット幅の上限値より大きいか否か、また前記演算結果
が予め定めた32ビット幅の下限値より小さいか否かを識
別する演算回路、443は演算回路442での識別結果に基づ
いて状態を保持するフラグレジスタ、444はフラグレジ
スタ443に基づいて飽和演算補正処理を行なう飽和演算
補正回路であり、444はさらに前記上限値、前記下限値
を発生する定数発生回路4441、フラグレジスタ443の状
態に基づいてレジスタファイル441が出力する値または
前記上限値または前記下限値のうちいずれか一つを選択
して出力するマルチプレクサ4442から構成される。
【0043】また図6は同実施例において2種類のアド
レッシングモードを持つ3種類の演算命令を備えている
場合に16ビットと24ビットと32ビットの3種類の飽和演
算を実現するために必要な命令の一覧である。
レッシングモードを持つ3種類の演算命令を備えている
場合に16ビットと24ビットと32ビットの3種類の飽和演
算を実現するために必要な命令の一覧である。
【0044】以上のように構成された本実施例の飽和演
算処理装置に付いて、以下その動作を説明する。例示プ
ログラムを以下に示す。
算処理装置に付いて、以下その動作を説明する。例示プ
ログラムを以下に示す。
【0045】命令1: ADD D0,D1(D0レジスタの値とD1
レジスタの値を加算して、結果をD1レジスタに格納す
る) 命令2: SAT32 D1(D1レジスタの値について32ビットの
符号付き飽和演算補正処理を行なう) 命令1が実行されると、レジスタファイル441は、第一
オペランドD0および第二オペランドD1の値を出力する。
レジスタの値を加算して、結果をD1レジスタに格納す
る) 命令2: SAT32 D1(D1レジスタの値について32ビットの
符号付き飽和演算補正処理を行なう) 命令1が実行されると、レジスタファイル441は、第一
オペランドD0および第二オペランドD1の値を出力する。
【0046】次に演算回路442は前記第一オペランドD0
の値と前記第二オペランドD1の値を加算し、加算結果を
出力するとともに、演算結果の最上位ビット32ビットへ
の桁溢れが発生している場合はVビットをセットし、発
生していない場合はVビットをリセットして出力し、、
さらに、最上位ビットが1の場合はをNビットをセット、
0の場合はNビットをリセットして出力する。
の値と前記第二オペランドD1の値を加算し、加算結果を
出力するとともに、演算結果の最上位ビット32ビットへ
の桁溢れが発生している場合はVビットをセットし、発
生していない場合はVビットをリセットして出力し、、
さらに、最上位ビットが1の場合はをNビットをセット、
0の場合はNビットをリセットして出力する。
【0047】次にフラグレジスタ443は演算回路442が出
力した前記Vビット、前記Nビットの状態をそれぞれVフ
ラグ、Nフラグとして保持する。
力した前記Vビット、前記Nビットの状態をそれぞれVフ
ラグ、Nフラグとして保持する。
【0048】定数発生回路4441は飽和の上限値として、
32ビット符号付き整数0x7FFFFFFF、飽和の下限値として
32ビット符号付き整数0x80000000を出力する。
32ビット符号付き整数0x7FFFFFFF、飽和の下限値として
32ビット符号付き整数0x80000000を出力する。
【0049】マルチプレクサ4442はフラグレジスタ443
の状態に基づき、VフラグがセットされかつNフラグがセ
ットされている場合は、前記上限値を選択し、Vフラグ
がセットされかつNフラグがリセットされている場合
は、前記下限値を選択し、Vフラグがリセットされてい
る場合は、Nフラグの状態にかかわらず前記第一オペラ
ンドの値D1の値を選択して補正結果として出力する。
の状態に基づき、VフラグがセットされかつNフラグがセ
ットされている場合は、前記上限値を選択し、Vフラグ
がセットされかつNフラグがリセットされている場合
は、前記下限値を選択し、Vフラグがリセットされてい
る場合は、Nフラグの状態にかかわらず前記第一オペラ
ンドの値D1の値を選択して補正結果として出力する。
【0050】次にレジスタファイル441は前記補正結果
を前記第一オペランドD1の領域に記憶する。
を前記第一オペランドD1の領域に記憶する。
【0051】さらに、その他の演算に対しても同様に演
算命令の後に補正命令を実行することによって飽和演算
処理が可能である。例えば減算の飽和処理の場合は以下
のプログラム例のようにすればよく、従来のように減算
用の飽和演算のための命令を必要としない。
算命令の後に補正命令を実行することによって飽和演算
処理が可能である。例えば減算の飽和処理の場合は以下
のプログラム例のようにすればよく、従来のように減算
用の飽和演算のための命令を必要としない。
【0052】命令1: SUB D0,D1(D1レジスタの値からD0
レジスタの値を減算し、結果をD1レジスタに格納する) 命令2: SAT32 D1(D1レジスタの値について32ビットの
符合付飽和演算補正処理を行なう) 以上のように本実施例によれば、飽和の補正命令が演算
命令と分離されているために、すべての演算に共通な飽
和演算補正命令を一つだけ備えればよく、従来の方法の
ように演算命令の数に対応する命令を備える場合(図9)
に比べて命令数を大幅に削減することが出来る。また、
演算装置と補正装置が独立しており、従来の方法のよう
に演算装置に接続されていないため、演算装置による演
算にかかる時間が増加することがなく、プロセッサ動作
クロック周波数の上限の低下が起こらない。
レジスタの値を減算し、結果をD1レジスタに格納する) 命令2: SAT32 D1(D1レジスタの値について32ビットの
符合付飽和演算補正処理を行なう) 以上のように本実施例によれば、飽和の補正命令が演算
命令と分離されているために、すべての演算に共通な飽
和演算補正命令を一つだけ備えればよく、従来の方法の
ように演算命令の数に対応する命令を備える場合(図9)
に比べて命令数を大幅に削減することが出来る。また、
演算装置と補正装置が独立しており、従来の方法のよう
に演算装置に接続されていないため、演算装置による演
算にかかる時間が増加することがなく、プロセッサ動作
クロック周波数の上限の低下が起こらない。
【0053】なお、本実施例では演算結果の最上位ビッ
トへの桁溢れを検出してVビットを生成しているが、演
算結果の任意の1ビットで桁溢れの検出をして、飽和の
上限値、下限値をそれに対応した値にすることも可能で
ある。例えば、桁溢れの検出を演算結果の最下位から16
ビット目として、飽和の上限値を32ビット符号付き整数
0x00007FFF、飽和の下限値を32ビット符号付き整数0xFF
FF8000としても同様の方法で16ビットの飽和演算を実現
することが可能である。さらにこの命令をSAT16として
本実施例で示したSAT32命令と合わせて備えたとしても
たかだか2命令を備えれば良く、従来のように演算命令
の数との積の数の命令を備える場合に比べて大幅に命令
の種類を削減することが出来る。
トへの桁溢れを検出してVビットを生成しているが、演
算結果の任意の1ビットで桁溢れの検出をして、飽和の
上限値、下限値をそれに対応した値にすることも可能で
ある。例えば、桁溢れの検出を演算結果の最下位から16
ビット目として、飽和の上限値を32ビット符号付き整数
0x00007FFF、飽和の下限値を32ビット符号付き整数0xFF
FF8000としても同様の方法で16ビットの飽和演算を実現
することが可能である。さらにこの命令をSAT16として
本実施例で示したSAT32命令と合わせて備えたとしても
たかだか2命令を備えれば良く、従来のように演算命令
の数との積の数の命令を備える場合に比べて大幅に命令
の種類を削減することが出来る。
【0054】また、本実施例では飽和の上限値、下限値
を符号付き整数としているが、それぞれ符号なし整数と
することも可能である。例えば、演算回路442は演算結
果の最上位ビットから桁溢れが起きた場合、Cビットを
セットして出力し、桁溢れが起きていない場合はCビッ
トをリセットして出力し、演算が加算命令であった場合
はAビットをセットして出力し、演算が減算命令であっ
た場合はAビットをリセットして出力し、フラグレジス
タ443はCビットおよびAビットの状態をそれぞれCフラ
グ、Aフラグとして保持し、飽和の上限値を32ビット符
号なし整数0xFFFFFFFF、飽和の下限値を32ビット符号な
し整数0x00000000として、マルチプレクサ4441は、Cフ
ラグがセットされかつAフラグがセットされている場合
は、前記上限値を選択し、CフラグがセットされかつAフ
ラグがリセットされている場合は、前記下限値を選択
し、Cフラグがリセットされている場合はAフラグの状態
にかかわらず前記第一オペランドを選択し出力するよう
にしても同様の方法で飽和演算を実現することが可能で
ある。
を符号付き整数としているが、それぞれ符号なし整数と
することも可能である。例えば、演算回路442は演算結
果の最上位ビットから桁溢れが起きた場合、Cビットを
セットして出力し、桁溢れが起きていない場合はCビッ
トをリセットして出力し、演算が加算命令であった場合
はAビットをセットして出力し、演算が減算命令であっ
た場合はAビットをリセットして出力し、フラグレジス
タ443はCビットおよびAビットの状態をそれぞれCフラ
グ、Aフラグとして保持し、飽和の上限値を32ビット符
号なし整数0xFFFFFFFF、飽和の下限値を32ビット符号な
し整数0x00000000として、マルチプレクサ4441は、Cフ
ラグがセットされかつAフラグがセットされている場合
は、前記上限値を選択し、CフラグがセットされかつAフ
ラグがリセットされている場合は、前記下限値を選択
し、Cフラグがリセットされている場合はAフラグの状態
にかかわらず前記第一オペランドを選択し出力するよう
にしても同様の方法で飽和演算を実現することが可能で
ある。
【0055】また、本実施例では命令2のオペランドが
一つであるが、命令2のオペランドを第一オペランドD1
と第二オペランドD2の二つとし、前記補正結果を前記第
二オペランドに記憶するようにしてもよい。
一つであるが、命令2のオペランドを第一オペランドD1
と第二オペランドD2の二つとし、前記補正結果を前記第
二オペランドに記憶するようにしてもよい。
【0056】
【発明の効果】以上説明したように本発明によれば、飽
和の補正ステップが演算ステップと分離されているため
に、すべての演算に共通な飽和演算補正命令を飽和を行
うビット幅の種類の数だけ備えればよく、従来の方法の
ように演算命令と飽和を行うビット幅の種類の積の数の
命令を備える場合に比べて大幅に少ない命令数で飽和演
算を実現できる。
和の補正ステップが演算ステップと分離されているため
に、すべての演算に共通な飽和演算補正命令を飽和を行
うビット幅の種類の数だけ備えればよく、従来の方法の
ように演算命令と飽和を行うビット幅の種類の積の数の
命令を備える場合に比べて大幅に少ない命令数で飽和演
算を実現できる。
【0057】また、演算回路と補正回路が独立してお
り、従来の方法のように演算装置に直列に補正回路が接
続されていないため、演算装置による演算にかかる時間
が増加することがなく、プロセッサ動作クロック周波数
の上限の低下を起こさずに飽和演算を実現することが可
能である。
り、従来の方法のように演算装置に直列に補正回路が接
続されていないため、演算装置による演算にかかる時間
が増加することがなく、プロセッサ動作クロック周波数
の上限の低下を起こさずに飽和演算を実現することが可
能である。
【0058】さらに、飽和演算の処理機能を持たない情
報処理装置に本発明の飽和演算補正回路を追加すること
により、元の情報処理装置には修正を加えることなく、
飽和演算処理を効率的に実行できる機能を付加すること
も可能である。
報処理装置に本発明の飽和演算補正回路を追加すること
により、元の情報処理装置には修正を加えることなく、
飽和演算処理を効率的に実行できる機能を付加すること
も可能である。
【図1】本発明の第1の実施例における演算実行装置14
の構成図
の構成図
【図2】本発明の第1の実施例における情報処理装置の
構成図
構成図
【図3】本発明の第1の実施例において2種類のアドレ
ッシングモードを持つ3種類の演算命令を備えている場
合に16ビットと24ビットの2種類の飽和演算を実現する
ために必要な命令の一覧を示す図
ッシングモードを持つ3種類の演算命令を備えている場
合に16ビットと24ビットの2種類の飽和演算を実現する
ために必要な命令の一覧を示す図
【図4】本発明の第2の実施例における情報処理装置の
構成図
構成図
【図5】本発明の第2の実施例における演算実行装置44
の構成図
の構成図
【図6】本発明の第2の実施例において2種類のアドレ
ッシングモードを持つ3種類の演算命令を備えている場
合に16ビットと24ビットと32ビットの3種類の飽和演算
を実現するために必要な命令の一覧を示す図
ッシングモードを持つ3種類の演算命令を備えている場
合に16ビットと24ビットと32ビットの3種類の飽和演算
を実現するために必要な命令の一覧を示す図
【図7】従来の飽和演算処理装置の構成図
【図8】従来の飽和演算処理装置において2種類のアド
レッシングモードを持つ3種類の演算命令を備えている
場合に16ビットと24ビットの2種類の飽和演算を実現す
るために必要な命令の一覧を示す図
レッシングモードを持つ3種類の演算命令を備えている
場合に16ビットと24ビットの2種類の飽和演算を実現す
るために必要な命令の一覧を示す図
【図9】従来の飽和演算処理装置において2種類のアド
レッシングモードを持つ3種類の演算命令を備えている
場合に16ビットと24ビットと32ビットの3種類の飽和演
算を実現するために必要な命令の一覧を示す図
レッシングモードを持つ3種類の演算命令を備えている
場合に16ビットと24ビットと32ビットの3種類の飽和演
算を実現するために必要な命令の一覧を示す図
11 メモリ 12 命令良み出し回路 13 デコーダ 14 演算実行装置 141 レジスタファイル 142 演算回路 143 飽和演算補正回路 1431 比較回路 1432 定数発生装置 1433 マルチプレクサ 41 メモリ 42 命令良み出し回路 43 デコーダ 44 演算実行装置 441 レジスタファイル 442 演算回路 443 フラグレジスタ 444 飽和演算補正回路 4441 定数発生回路 4442 マルチプレクサ 70 デコーダ 71 レジスタファイル 72 演算回路 73 飽和判定回路 74 定数発生装置 75 マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鈴木 正人 大阪府門真市大字門真1006番地 松下電器 産業株式会社内
Claims (34)
- 【請求項1】少なくとも演算命令と補正命令とを含む命
令を解読する解読手段と、演算手段と、入力値が予め定
めた第一の値より大きいか否かを識別する比較手段と、
前記入力値または前記第一の値のいずれか一方を出力す
る出力手段とを備えた飽和演算処理装置であって、前記
解読手段は、前記演算命令を受け取ると前記演算手段を
制御し、前記補正命令を受け取ると、前記補正命令によ
って指示される第一のオペランドの値が前記第一の値よ
り大きいと識別される場合は前記第一の値を前記第一の
オペランドまたは前記補正命令によって他に指示される
第二のオペランドに設定し、前記第一のオペランドの値
が前記第一の値より小さいか等しいと識別される場合は
前記第一のオペランドの値をそのまま前記第一のオペラ
ンドまたは前記第二のオペランドに設定するように前記
比較手段と前記出力手段とを制御することを特徴とする
飽和演算処理装置。 - 【請求項2】少なくとも演算命令と補正命令とを含む命
令を解読する解読手段と、演算手段と、入力値が予め定
めた第一の値より小さいか否かを識別する比較手段と、
前記入力値または前記第一の値のいずれか一方を出力す
る出力手段とを備えた飽和演算処理装置であって、前記
解読手段は、前記演算命令を受け取ると前記演算手段を
制御し、前記補正命令を受け取ると、前記補正命令によ
って指示される第一のオペランドの値が前記第一の値よ
り小さいと識別される場合は前記第一の値を前記第一の
オペランドまたは前記補正命令によって他に指示される
第二のオペランドに設定し、前記第一のオペランドの値
が前記第一の値より大きいか等しいと識別される場合は
前記第一のオペランドの値をそのまま前記第一のオペラ
ンドまたは前記第二のオペランドに設定するように前記
比較手段と前記出力手段とを制御することを特徴とする
飽和演算処理装置。 - 【請求項3】少なくとも演算命令と補正命令とを含む命
令を解読する解読手段と、演算手段と、入力値が予め定
めた第一の値より大きいか否かを識別するとともに前記
入力値が予め定めた第二の値より小さいか否かを識別す
る比較手段と、前記入力値または前記第一の値または前
記第二の値のうちいずれか一つを出力する出力手段とを
備えた飽和演算処理装置であって、前記第一の値は前記
第二の値より大きく、前記解読手段は、前記演算命令を
受け取ると前記演算手段を制御し、前記補正命令を受け
取ると、前記補正命令によって指示される第一のオペラ
ンドの値が前記第一の値より大きいと識別される場合は
前記第一の値を前記第一のオペランドまたは前記補正命
令によって他に指示される第二のオペランドに設定し、
前記第一のオペランドの値が前記第二の値より小さいと
識別される場合は前記第二の値を前記第一のオペランド
または前記第二のオペランドに設定し、前記第一のオペ
ランドの値が前記第一の値より小さいか等しくかつ前記
第二の値より大きいか等しいと識別される場合は前記第
一のオペランドの値をそのまま前記第一のオペランドま
たは前記第二のオペランドに設定するように前記比較手
段と前記出力手段とを制御することを特徴とする飽和演
算処理装置。 - 【請求項4】前記第一オペランドおよび前記第二のオペ
ランドのビット幅が32ビットであり、前記演算手段にお
ける演算と前記比較手段における大小比較とを32ビット
幅の符合付き整数で行ない、前記第一の値が16ビット幅
の符号付き整数で表現できる最大値でありかつ前記第二
の値が16ビット幅の符号付き整数で表現できる最小値で
ある請求項第3記載の飽和演算処理装置。 - 【請求項5】前記第一オペランドおよび前記第二のオペ
ランドのビット幅が32ビットであり、前記演算手段にお
ける演算と前記比較手段における大小比較とを32ビット
幅の符合なし整数で行ない、前記第一の値が16ビット幅
の符号なし整数で表現できる最大値でありかつ前記第二
の値が0である請求項第3記載の飽和演算処理装置。 - 【請求項6】前記第一オペランドおよび前記第二のオペ
ランドのビット幅が32ビットであり、前記演算手段にお
ける演算と前記比較手段における大小比較とを32ビット
幅の符合付き整数で行ない、前記第一の値が24ビット幅
の符号付き整数で表現できる最大値でありかつ前記第二
の値が24ビット幅の符号付き整数で表現できる最小値で
ある請求項第3記載の飽和演算処理装置。 - 【請求項7】前記第一オペランドおよび前記第二のオペ
ランドのビット幅が32ビットであり、前記演算手段にお
ける演算と前記比較手段における大小比較とを32ビット
幅の符合なし整数で行ない、前記第一の値が24ビット幅
の符号なし整数で表現できる最大値でありかつ前記第二
の値が0である請求項第3記載の飽和演算処理装置。 - 【請求項8】少なくとも演算命令と補正命令とを含む命
令を解読する解読手段と、演算手段と、前記演算手段に
よる演算結果が予め定めた第一の値より大きくなった時
に第一の状態を保持する状態保持手段と、入力値または
前記第一の値のいずれか一方を出力する出力手段とを備
えた飽和演算処理装置であって、前記解読手段は、前記
演算命令を受け取ると前記演算手段を制御するとともに
前記状態保持手段が演算結果に応じて状態を保持するよ
うに制御し、前記補正命令を受け取ると、前記状態保持
手段が前記第一の状態を保持する場合は前記第一の値を
前記第一のオペランドまたは前記補正命令によって他に
指示される第二のオペランドに設定し、前記状態保持手
段が前記第一の状態とは異なる状態を保持する場合は前
記第一のオペランドの値をそのまま前記第一のオペラン
ドまたは前記第二のオペランドに設定するように前記出
力手段を制御することを特徴とする飽和演算処理装置。 - 【請求項9】前記記憶保持手段が前記演算手段における
特定ビット位置からの桁上がりの有無に対応した値を保
持し、前記状態保持手段が前記第一の状態を保持する時
は先行する演算により前記特定ビット位置から桁上がり
があったことを示す請求項8記載の飽和演算処理装置。 - 【請求項10】少なくとも演算命令と補正命令とを含む
命令を解読する解読手段と、演算手段と、前記演算手段
による演算結果が予め定めた第一の値より小さくなった
時に第一の状態を保持する状態保持手段と、入力値また
は前記第一の値のいずれか一方を出力する出力手段とを
備えた飽和演算処理装置であって、前記解読手段は、前
記演算命令を受け取ると、前記演算手段を制御するとと
もに前記状態保持手段が演算結果に応じて状態を保持す
るように制御し、前記補正命令を受け取ると、前記状態
保持手段が前記第一の状態を保持する場合は前記第一の
値を前記第一のオペランドまたは前記補正命令によって
他に指示される第二のオペランドに設定し、前記状態保
持手段が前記第一の状態とは異なる状態を保持する場合
は前記第一のオペランドの値をそのまま前記第一のオペ
ランドまたは前記第二のオペランドに設定するように前
記出力手段を制御することを特徴とする飽和演算処理装
置。 - 【請求項11】前記記憶保持手段が前記演算手段におけ
る特定ビット位置からの桁下がりの有無に対応した値を
保持し、前記状態保持手段が前記第一の状態を保持する
時は先行する演算により前記特定ビット位置から桁下が
りがあったことを示す請求項10記載の飽和演算処理装
置。 - 【請求項12】少なくとも演算命令と補正命令とを含む
命令を解読する解読手段と、演算手段と、前記演算手段
による演算結果が予め定めた第一の値より大きくなった
時に第一の状態を保持し、前記演算結果が予め定めた第
二の値より小さくなった時に第二の状態を保持する状態
保持手段と、入力値または前記第一の値または前記第二
の値のいずれか一つを出力する出力手段とを備えた飽和
演算処理装置であって、前記解読手段は、前記演算命令
を受け取ると、前記演算手段を制御するとともに前記状
態保持手段が演算結果に応じて状態を保持するように制
御し、前記補正命令を受け取ると、前記状態保持手段が
前記第一の状態を保持する場合は前記第一の値を前記第
一のオペランドまたは前記補正命令によって他に指示さ
れる第二のオペランドに設定し、前記状態保持手段が前
記第二の状態を保持する場合は前記第二の値を前記第一
のオペランドまたは前記第二のオペランドに設定し、前
記状態保持手段が前記第一の状態とも前記第二の状態と
も異なる状態を保持する場合は前記第一のオペランドの
値をそのまま前記第一のオペランドまたは前記第二のオ
ペランドに設定するように前記出力手段を制御すること
を特徴とする飽和演算処理装置。 - 【請求項13】前記状態保持手段が前記演算手段におけ
る演算結果の特定ビット位置の値と、前記演算手段にお
ける前記特定ビット位置での符号付き整数桁溢れの有無
に対応した値とを保持し、前記状態保持手段が前記第一
の状態を保持する時は、先行する演算での演算結果の前
記特定ビット位置の値が1でかつ前記特定ビット位置で
の符号付き整数桁溢れがあったことを示し、前記状態保
持手段が前記第二の状態を保持する時は、先行する演算
での演算結果の前記特定ビット位置の値が0でかつ前記
特定ビット位置での符号付き整数桁溢れがあったことを
示す請求項12記載の飽和演算処理装置。 - 【請求項14】前記状態保持手段が前記演算手段におけ
る演算が加算か減算かに対応する値と、前記演算手段に
おける前記特定ビット位置からの桁上がりまたは桁下が
りの有無に対応した値とを保持し、前記状態保持手段が
前記第一の状態を保持する時は、先行する演算が加算
で、かつ該加算により前記特定ビット位置から桁上がり
があったことを示し、前記状態保持手段が前記第二の状
態を保持する時は、先行する演算が減算で、かつ該減算
により前記特定ビット位置から桁下がりがあったことを
示す請求項12記載の飽和演算処理装置。 - 【請求項15】前記演算手段における演算のビット幅と
前記第一のオペランドおよび前記第二のオペランドのビ
ット幅とが32ビットであり、前記特定ビット位置を最下
位から16ビット目とする請求項13または請求項14記
載の飽和演算処理装置。 - 【請求項16】前記演算手段における演算のビット幅と
前記第一のオペランドおよび前記第二のオペランドのビ
ット幅とが32ビットであり、前記特定ビット位置を最下
位から24ビット目とする請求項13または請求項14記
載の飽和演算処理装置。 - 【請求項17】前記演算手段における演算のビット幅と
前記第一のオペランドおよび前記第二のオペランドのビ
ット幅とが32ビットであり、前記特定ビット位置を最上
位ビットとする請求項13または請求項14記載の飽和
演算処理装置。 - 【請求項18】第一のオペランドと第二のオペランドと
を用いて演算を行い、結果を第一のオペランドと第二の
オペランドとのいずれかと同一またはいずれとも異なる
第三のオペランドに格納する演算ステップと、前記第三
のオペランドの値を予め定めた第一の値と比較し、前記
第三のオペランドの値が前記第一の値より大きい場合は
前記第一の値を前記第三のオペランドまたは前記第三の
オペランドとは異なる第四のオペランドに設定し、前記
第三のオペランドの値が前記第一の値より小さいかまた
は等しい場合は前記第三のオペランドの値をそのまま前
記第三のオペランドまたは前記第四のオペランドに設定
する補正ステップとを有し、前記演算ステップでの演算
結果が前記第一の値より大きくなる場合に後続する補正
ステップにおいて前記演算結果を前記第一の値に丸める
ことを特徴とする飽和演算処理方法。 - 【請求項19】第一のオペランドと第二のオペランドと
を用いて演算を行い、結果を第一のオペランドと第二の
オペランドとのいずれかと同一またはいずれとも異なる
第三のオペランドに格納する演算ステップと、前記第三
のオペランドの値を予め定めた第一の値と比較し、前記
第三のオペランドの値が前記第一の値より小さい場合は
前記第一の値を前記第三のオペランドまたは前記第三の
オペランドとは異なる第四のオペランドに設定し、前記
第三のオペランドの値が前記第一の値より大きいかまた
は等しい場合は前記第三のオペランドの値をそのまま前
記第三のオペランドまたは前記第四のオペランドに設定
する補正ステップとを有し、前記演算ステップでの演算
結果が前記第一の値より小さくなる場合に後続する補正
ステップにおいて前記演算結果を前記第一の値に丸める
ことを特徴とする飽和演算処理方法。 - 【請求項20】第一のオペランドと第二のオペランドと
を用いて演算を行い、結果を第一のオペランドと第二の
オペランドとのいずれかと同一またはいずれとも異なる
第三のオペランドに格納する演算ステップと、前記第三
のオペランドの値を予め定めた第一の値および予め定め
た第二の値と比較し、前記第三のオペランドの値が前記
第一の値より大きい場合は前記第一の値を前記第三のオ
ペランドまたは前記第三のオペランドとは異なる第四の
オペランドに設定し、前記第三のオペランドの値が前記
第二の値より小さい場合は、前記第二の値を前記第三の
オペランドまたは前記第三のオペランドとは異なる第四
のオペランドに設定し、前記第三のオペランドの値が前
記第一の値より小さいかまたは等しくかつ前記第三のオ
ペランドの値が前記第二の値より大きいか等しい場合は
前記第三のオペランドの値をそのまま前記第三のオペラ
ンドまたは前記第三のオペランドとは異なる第四のオペ
ランドに設定する補正ステップとを有し、前記演算ステ
ップでの演算結果が前記第一の値より大きくなるかまた
は前記第二の値より小さくなる場合に後続する補正ステ
ップにおいて前記演算結果をそれぞれ前記第一の値また
は前記第二の値に丸めることを特徴とする飽和演算処理
方法。 - 【請求項21】前記第一のオペランドおよび前記第二の
オペランドのビット幅が32ビットであり、前記演算ステ
ップにおける演算と前記補正ステップにおける比較とを
32ビット幅の符号付き整数で行ない、前記第一の値が16
ビット幅の符号付き整数で表現できる最大値でありかつ
前記第二の値が16ビット幅の符号付き整数で表現できる
最小値である請求項20記載の飽和演算処理方法。 - 【請求項22】前記第一のオペランドおよび前記第二の
オペランドのビット幅が32ビットであり、前記演算ステ
ップにおける演算と前記補正ステップにおける比較とを
32ビット幅の符号なし整数で行ない、前記第一の値が16
ビット幅の符号なし整数で表現できる最大値でありかつ
前記第二の値が0である請求項20記載の飽和演算処理
方法。 - 【請求項23】前記第一のオペランドおよび前記第二の
オペランドのビット幅が32ビットであり、前記演算ステ
ップにおける演算と前記補正ステップにおける比較とを
32ビット幅の符号付き整数で行ない、前記第一の値が24
ビット幅の符号付き整数で表現できる最大値でありかつ
前記第二の値が24ビット幅の符号付き整数で表現できる
最小値である請求項20記載の飽和演算処理方法。 - 【請求項24】前記第一のオペランドおよび前記第二の
オペランドのビット幅が32ビットであり、前記演算ステ
ップにおける演算と前記補正ステップにおける比較とを
32ビット幅の符号なし整数で行ない、前記第一の値が24
ビット幅の符号なし整数で表現できる最大値でありかつ
前記第二の値が0である請求項20記載の飽和演算処理
方法。 - 【請求項25】第一のオペランドと第二のオペランドと
を用いて演算を行い、結果を第一のオペランドと第二の
オペランドとのいずれかと同一またはいずれとも異なる
第三のオペランドに格納するとともに、前記結果が予め
定めた第一の値より大きくなったときに第一の状態を状
態保持手段に保持する演算ステップと、前記状態保持手
段が前記第一の状態を保持している場合は前記第一の値
を前記第三のオペランドまたは前記第三のオペランドと
は異なる第四のオペランドに設定し、前記状態保持手段
が前記第一の状態とは異なる状態を保持している場合は
前記第三のオペランドの値をそのまま前記第三のオペラ
ンドまたは前記第四のオペランドに設定する補正ステッ
プとを有し、 前記演算ステップでの演算結果が前記第一の値より大き
くなる場合に後続する補正ステップにおいて前記演算結
果を前記第一の値に丸めることを特徴とする飽和演算処
理方法。 - 【請求項26】前記状態保持手段が前記演算ステップで
の演算の特定ビット位置からの桁上がりの有無に対応し
た値を保持し、前記状態保持手段が前記第一の状態の時
には先行する演算により前記特定ビット位置から桁上が
りがあったことを示す請求項25記載の飽和演算処理方
法。 - 【請求項27】第一のオペランドと第二のオペランドと
を用いて演算を行い、結果を第一のオペランドと第二の
オペランドとのいずれかと同一またはいずれとも異なる
第三のオペランドに格納するとともに、前記結果が予め
定めた第一の値より小さくなったときに第一の状態を状
態保持手段に保持する演算ステップと、前記状態保持手
段が前記第一の状態を保持している場合は前記第一の値
を前記第三のオペランドまたは前記第三のオペランドと
は異なる第四のオペランドに設定し、前記状態保持手段
が前記第一の状態とは異なる状態を保持している場合は
前記第三のオペランドの値をそのまま前記第三のオペラ
ンドまたは前記第四のオペランドに設定する補正ステッ
プとを有し、前記演算ステップでの演算結果が前記第一
の値より小さくなる場合に後続する補正ステップにおい
て前記演算結果を前記第一の値に丸めることを特徴とす
る飽和演算処理方法。 - 【請求項28】前記状態保持手段が前記演算ステップで
の演算の特定ビット位置からの桁下がりの有無に対応し
た値を保持し、前記状態保持手段が前記第一の状態の時
には先行する演算により前記特定ビット位置から桁下が
りがあったことを示す請求項27記載の飽和演算処理方
法。 - 【請求項29】第一のオペランドと第二のオペランドと
を用いて演算を行い、結果を第一のオペランドと第二の
オペランドとのいずれかと同一またはいずれとも異なる
第三のオペランドに格納するとともに、前記結果が予め
定めた第一の値より大きくなったときに第一の状態を、
前記結果が予め定めた第二の値より小さくなった時に第
二の状態を状態保持手段に保持する演算ステップと、前
記状態保持手段が前記第一の状態を保持している場合は
前記第一の値を前記第三のオペランドまたは前記第三の
オペランドとは異なる第四のオペランドに設定し、前記
状態保持手段が前記第二の状態を保持している場合は前
記第二の値を前記第三のオペランドまたは前記第四のオ
ペランドに設定し、前記状態保持手段が前記第一の状態
とも前記第二の状態とも異なる状態を保持している場合
は前記第三のオペランドの値をそのまま前記第三のオペ
ランドまたは前記第四のオペランドに設定する補正ステ
ップとを有し、前記演算ステップでの演算結果が前記第
一の値より大きくなるかまたは第二の値より小さくなる
場合に後続する補正ステップにおいて前記演算結果をそ
れぞれ前記第一の値または前記第二の値に丸めることを
特徴とする飽和演算処理方法。 - 【請求項30】前記状態保持手段が前記演算ステップに
おける演算結果の特定ビット位置の値と前記演算ステッ
プの演算における前記特定ビット位置での符号付き整数
桁溢れの有無に対応した値とを保持し、前記状態保持手
段が前記第一の状態を保持する時は、先行する演算での
演算結果の前記特定ビット位置の値が1でかつ前記特定
ビット位置での符号付き整数桁溢れがあったことを示
し、前記状態保持手段が前記第二の状態を保持する時
は、先行する演算での演算結果の前記特定ビット位置の
値が0でかつ前記特定ビット位置での符号付き整数桁溢
れがあったことを示す請求項29記載の飽和演算処理方
法。 - 【請求項31】前記状態保持手段が前記演算ステップに
おける演算が加算か減算かに対応する値と前記演算ステ
ップの演算の特定ビット位置での桁上がりまたは桁下が
りの有無に対応した値とを保持し、前記状態保持手段が
前記第一の状態を保持する時は、先行する演算が加算で
かつ該加算により前記特定ビット位置からの桁上がりが
あったことを示し、前記状態保持手段が前記第二の状態
を保持する時は、先行する演算が減算でかつ該減算によ
り前記特定ビット位置からの桁下がりがあったことを示
す請求項29記載の飽和演算処理方法。 - 【請求項32】前記演算ステップにおける演算のビット
幅と前記第一から第四のオペランドのビット幅とが32ビ
ットであり、前記特定ビットが最下位から16ビット目と
する請求項30または請求項31記載の飽和演算処理方
法。 - 【請求項33】前記演算ステップにおける演算のビット
幅と前記第一から第四のオペランドのビット幅とが32ビ
ットであり、前記特定ビットが最下位から24ビット目と
する請求項30または請求項31記載の飽和演算処理方
法。 - 【請求項34】前記演算ステップにおける演算のビット
幅と前記第一から第四のオペランドのビット幅とが32ビ
ットであり、前記特定ビット位置を最上位ビットとする
請求項30または請求項31記載の飽和演算処理方法。
Priority Applications (8)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7252737A JPH0997178A (ja) | 1995-09-29 | 1995-09-29 | 飽和演算処理装置および方法 |
| KR1019960042468A KR970016944A (ko) | 1995-09-29 | 1996-09-25 | 포화연산을 적절하게 행하는 프로세서 및 그 제어방법 |
| TW085111760A TW317625B (ja) | 1995-09-29 | 1996-09-25 | |
| EP96307075A EP0766169B1 (en) | 1995-09-29 | 1996-09-27 | Processor and control method for performing proper saturation operation |
| CNA031314651A CN1515999A (zh) | 1995-09-29 | 1996-09-27 | 适合于进行饱和运算的处理器 |
| CN96121097A CN1114152C (zh) | 1995-09-29 | 1996-09-27 | 适合于进行饱和运算的处理器及其控制方法 |
| US08/721,681 US5847978A (en) | 1995-09-29 | 1996-09-27 | Processor and control method for performing proper saturation operation |
| DE69613071T DE69613071T2 (de) | 1995-09-29 | 1996-09-27 | Prozessor und Kontrollverfahren zur Ausführung richtiger Saturationsoperation |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7252737A JPH0997178A (ja) | 1995-09-29 | 1995-09-29 | 飽和演算処理装置および方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0997178A true JPH0997178A (ja) | 1997-04-08 |
Family
ID=17241572
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7252737A Pending JPH0997178A (ja) | 1995-09-29 | 1995-09-29 | 飽和演算処理装置および方法 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US5847978A (ja) |
| EP (1) | EP0766169B1 (ja) |
| JP (1) | JPH0997178A (ja) |
| KR (1) | KR970016944A (ja) |
| CN (2) | CN1515999A (ja) |
| DE (1) | DE69613071T2 (ja) |
| TW (1) | TW317625B (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011108265A (ja) * | 2002-08-09 | 2011-06-02 | Marvell World Trade Ltd | アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム |
| USRE43145E1 (en) | 1996-11-29 | 2012-01-24 | Panasonic Corporation | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
Families Citing this family (66)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
| US6078940A (en) * | 1997-01-24 | 2000-06-20 | Texas Instruments Incorporated | Microprocessor with an instruction for multiply and left shift with saturate |
| US6301600B1 (en) * | 1997-11-18 | 2001-10-09 | Intrinsity, Inc. | Method and apparatus for dynamic partitionable saturating adder/subtractor |
| US6301597B1 (en) * | 1997-11-18 | 2001-10-09 | Intrinsity, Inc. | Method and apparatus for saturation in an N-NARY adder/subtractor |
| US6115731A (en) * | 1998-04-07 | 2000-09-05 | Lucent Technologies Inc. | Scalable overflow clamp and method for a digital gain scaler/summer |
| US6535900B1 (en) * | 1998-09-07 | 2003-03-18 | Dsp Group Ltd. | Accumulation saturation by means of feedback |
| US6529930B1 (en) * | 1998-11-16 | 2003-03-04 | Hitachi America, Ltd. | Methods and apparatus for performing a signed saturation operation |
| GB2343970A (en) * | 1998-11-20 | 2000-05-24 | Advanced Risc Mach Ltd | Arithmetic operations in a data processing system |
| US6519620B1 (en) * | 1999-04-22 | 2003-02-11 | International Business Machines Corporation | Saturation select apparatus and method therefor |
| US6499046B1 (en) | 1999-05-20 | 2002-12-24 | International Business Machines Corporation | Saturation detection apparatus and method therefor |
| DE10041511C1 (de) * | 2000-08-24 | 2001-08-09 | Infineon Technologies Ag | Additionsschaltung für digitale Daten |
| US7206800B1 (en) * | 2000-08-30 | 2007-04-17 | Micron Technology, Inc. | Overflow detection and clamping with parallel operand processing for fixed-point multipliers |
| US6834337B1 (en) | 2000-09-29 | 2004-12-21 | International Business Machines Corporation | System and method for enabling multiple signed independent data elements per register |
| US7039906B1 (en) | 2000-09-29 | 2006-05-02 | International Business Machines Corporation | Compiler for enabling multiple signed independent data elements per register |
| JP3779602B2 (ja) | 2001-11-28 | 2006-05-31 | 松下電器産業株式会社 | Simd演算方法およびsimd演算装置 |
| FR2835938A1 (fr) * | 2002-02-08 | 2003-08-15 | St Microelectronics Sa | Operateur saturant a haute efficacite |
| EP1387259B1 (en) * | 2002-07-31 | 2017-09-20 | Texas Instruments Incorporated | Inter-processor control |
| US7461118B2 (en) * | 2003-04-09 | 2008-12-02 | Infineon Technologies Ag | Arithmetic logic unit with merged circuitry for comparison, minimum/maximum selection and saturation for signed and unsigned numbers |
| US7467176B2 (en) * | 2004-02-20 | 2008-12-16 | Altera Corporation | Saturation and rounding in multiply-accumulate blocks |
| US20050210089A1 (en) * | 2004-03-19 | 2005-09-22 | Arm Limited | Saturating shift mechanisms within data processing systems |
| US7689640B2 (en) * | 2005-06-06 | 2010-03-30 | Atmel Corporation | Method and apparatus for formatting numbers in microprocessors |
| US8620980B1 (en) | 2005-09-27 | 2013-12-31 | Altera Corporation | Programmable device with specialized multiplier blocks |
| US8301681B1 (en) | 2006-02-09 | 2012-10-30 | Altera Corporation | Specialized processing block for programmable logic device |
| US8266198B2 (en) | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
| US8041759B1 (en) | 2006-02-09 | 2011-10-18 | Altera Corporation | Specialized processing block for programmable logic device |
| US8266199B2 (en) | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
| US8386550B1 (en) | 2006-09-20 | 2013-02-26 | Altera Corporation | Method for configuring a finite impulse response filter in a programmable logic device |
| US8386553B1 (en) | 2006-12-05 | 2013-02-26 | Altera Corporation | Large multiplier for programmable logic device |
| US7930336B2 (en) | 2006-12-05 | 2011-04-19 | Altera Corporation | Large multiplier for programmable logic device |
| US8650231B1 (en) | 2007-01-22 | 2014-02-11 | Altera Corporation | Configuring floating point operations in a programmable device |
| US8645450B1 (en) | 2007-03-02 | 2014-02-04 | Altera Corporation | Multiplier-accumulator circuitry and methods |
| US8959137B1 (en) | 2008-02-20 | 2015-02-17 | Altera Corporation | Implementing large multipliers in a programmable integrated circuit device |
| US8307023B1 (en) | 2008-10-10 | 2012-11-06 | Altera Corporation | DSP block for implementing large multiplier on a programmable integrated circuit device |
| JP5556025B2 (ja) * | 2009-02-27 | 2014-07-23 | 日本電気株式会社 | ストレージシステム |
| US8645449B1 (en) | 2009-03-03 | 2014-02-04 | Altera Corporation | Combined floating point adder and subtractor |
| US8706790B1 (en) | 2009-03-03 | 2014-04-22 | Altera Corporation | Implementing mixed-precision floating-point operations in a programmable integrated circuit device |
| US8468192B1 (en) | 2009-03-03 | 2013-06-18 | Altera Corporation | Implementing multipliers in a programmable integrated circuit device |
| US8650236B1 (en) | 2009-08-04 | 2014-02-11 | Altera Corporation | High-rate interpolation or decimation filter in integrated circuit device |
| US8396914B1 (en) | 2009-09-11 | 2013-03-12 | Altera Corporation | Matrix decomposition in an integrated circuit device |
| US8412756B1 (en) | 2009-09-11 | 2013-04-02 | Altera Corporation | Multi-operand floating point operations in a programmable integrated circuit device |
| US8539016B1 (en) | 2010-02-09 | 2013-09-17 | Altera Corporation | QR decomposition in an integrated circuit device |
| US8601044B2 (en) | 2010-03-02 | 2013-12-03 | Altera Corporation | Discrete Fourier Transform in an integrated circuit device |
| US8484265B1 (en) | 2010-03-04 | 2013-07-09 | Altera Corporation | Angular range reduction in an integrated circuit device |
| US8510354B1 (en) | 2010-03-12 | 2013-08-13 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
| US8539014B2 (en) | 2010-03-25 | 2013-09-17 | Altera Corporation | Solving linear matrices in an integrated circuit device |
| US8589463B2 (en) | 2010-06-25 | 2013-11-19 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
| US8862650B2 (en) | 2010-06-25 | 2014-10-14 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
| US8577951B1 (en) | 2010-08-19 | 2013-11-05 | Altera Corporation | Matrix operations in an integrated circuit device |
| US8645451B2 (en) | 2011-03-10 | 2014-02-04 | Altera Corporation | Double-clocked specialized processing block in an integrated circuit device |
| US9600278B1 (en) | 2011-05-09 | 2017-03-21 | Altera Corporation | Programmable device using fixed and configurable logic to implement recursive trees |
| US8812576B1 (en) | 2011-09-12 | 2014-08-19 | Altera Corporation | QR decomposition in an integrated circuit device |
| US8949298B1 (en) | 2011-09-16 | 2015-02-03 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
| US9053045B1 (en) | 2011-09-16 | 2015-06-09 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
| US8762443B1 (en) | 2011-11-15 | 2014-06-24 | Altera Corporation | Matrix operations in an integrated circuit device |
| US8543634B1 (en) | 2012-03-30 | 2013-09-24 | Altera Corporation | Specialized processing block for programmable integrated circuit device |
| US9098332B1 (en) | 2012-06-01 | 2015-08-04 | Altera Corporation | Specialized processing block with fixed- and floating-point structures |
| US8996600B1 (en) | 2012-08-03 | 2015-03-31 | Altera Corporation | Specialized processing block for implementing floating-point multiplier with subnormal operation support |
| US9207909B1 (en) | 2012-11-26 | 2015-12-08 | Altera Corporation | Polynomial calculations optimized for programmable integrated circuit device structures |
| US9189200B1 (en) | 2013-03-14 | 2015-11-17 | Altera Corporation | Multiple-precision processing block in a programmable integrated circuit device |
| US9348795B1 (en) | 2013-07-03 | 2016-05-24 | Altera Corporation | Programmable device using fixed and configurable logic to implement floating-point rounding |
| US9747074B2 (en) | 2014-02-25 | 2017-08-29 | Kabushiki Kaisha Toshiba | Division circuit and microprocessor |
| US9684488B2 (en) | 2015-03-26 | 2017-06-20 | Altera Corporation | Combined adder and pre-adder for high-radix multiplier circuit |
| CN106406813B (zh) * | 2016-08-31 | 2019-01-29 | 宁波菲仕电机技术有限公司 | 一种通用伺服控制算术逻辑单元 |
| US10942706B2 (en) | 2017-05-05 | 2021-03-09 | Intel Corporation | Implementation of floating-point trigonometric functions in an integrated circuit device |
| CN112181354B (zh) * | 2020-10-12 | 2021-08-10 | 上海芯旺微电子技术有限公司 | 一种移位饱和同步处理的方法及其应用 |
| CN120045229A (zh) * | 2025-04-15 | 2025-05-27 | 上海兆芯集成电路股份有限公司 | 处理器和其运算方法 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5856032A (ja) * | 1981-09-29 | 1983-04-02 | Toshiba Corp | パイプライン演算装置 |
| JPS6442734A (en) * | 1987-08-10 | 1989-02-15 | Fujitsu Ten Ltd | Arithmetic circuit |
| JP3076046B2 (ja) * | 1989-01-31 | 2000-08-14 | 日本電気株式会社 | 例外検出回路 |
| JPH04309123A (ja) * | 1991-04-08 | 1992-10-30 | Nec Corp | 冗長2進演算回路 |
| JPH06175821A (ja) * | 1992-12-10 | 1994-06-24 | Fujitsu Ltd | 演算装置 |
| JP2847688B2 (ja) * | 1993-05-27 | 1999-01-20 | 松下電器産業株式会社 | プログラム変換装置およびプロセッサ |
| JPH0749767A (ja) * | 1993-08-05 | 1995-02-21 | Hitachi 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 |
| JP2591463B2 (ja) * | 1993-12-27 | 1997-03-19 | 日本電気株式会社 | リミッタ装置 |
-
1995
- 1995-09-29 JP JP7252737A patent/JPH0997178A/ja active Pending
-
1996
- 1996-09-25 KR KR1019960042468A patent/KR970016944A/ko not_active Ceased
- 1996-09-25 TW TW085111760A patent/TW317625B/zh not_active IP Right Cessation
- 1996-09-27 CN CNA031314651A patent/CN1515999A/zh active Pending
- 1996-09-27 CN CN96121097A patent/CN1114152C/zh not_active Expired - Lifetime
- 1996-09-27 DE DE69613071T patent/DE69613071T2/de not_active Expired - Lifetime
- 1996-09-27 US US08/721,681 patent/US5847978A/en not_active Expired - Lifetime
- 1996-09-27 EP EP96307075A patent/EP0766169B1/en not_active Expired - Lifetime
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| USRE43145E1 (en) | 1996-11-29 | 2012-01-24 | Panasonic Corporation | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
| USRE43729E1 (en) | 1996-11-29 | 2012-10-09 | Panasonic Corporation | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
| JP2011108265A (ja) * | 2002-08-09 | 2011-06-02 | Marvell World Trade Ltd | アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム |
| JP2014225287A (ja) * | 2002-08-09 | 2014-12-04 | マーベル ワールド トレード リミテッド | アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1114152C (zh) | 2003-07-09 |
| US5847978A (en) | 1998-12-08 |
| DE69613071T2 (de) | 2001-09-20 |
| DE69613071D1 (de) | 2001-07-05 |
| CN1159031A (zh) | 1997-09-10 |
| EP0766169B1 (en) | 2001-05-30 |
| KR970016944A (ko) | 1997-04-28 |
| CN1515999A (zh) | 2004-07-28 |
| EP0766169A1 (en) | 1997-04-02 |
| TW317625B (ja) | 1997-10-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0997178A (ja) | 飽和演算処理装置および方法 | |
| US7159100B2 (en) | Method for providing extended precision in SIMD vector arithmetic operations | |
| EP1073950B1 (en) | Method and apparatus for performing shift operations on packed data | |
| JP3790619B2 (ja) | 正値化処理及び飽和演算処理からなる丸め処理を好適に行うことができるプロセッサ | |
| EP1063586B1 (en) | Apparatus and method for processing data with a plurality of flag groups | |
| EP1058185A1 (en) | A multiply and accumulate apparatus and a method thereof | |
| EP0471191B1 (en) | Data processor capable of simultaneous execution of two instructions | |
| US5457805A (en) | Microcomputer enabling high speed execution of product-sum operation | |
| US7979679B2 (en) | System and method for selectively controlling operations in lanes in an execution unit of a computer | |
| US20080215859A1 (en) | Computer with high-speed context switching | |
| US4928238A (en) | Scalar data arithmetic control system for vector arithmetic processor | |
| JPH1091395A (ja) | プロセッサ | |
| US6393452B1 (en) | Method and apparatus for performing load bypasses in a floating-point unit | |
| US6539408B1 (en) | Preconditioning of source data for packed min/max instructions | |
| JPH1196001A (ja) | プログラム実行装置及びプログラム変換方法 | |
| US7010562B2 (en) | Arithmetic circuit | |
| JP3525582B2 (ja) | ビット操作回路 | |
| JPH08137669A (ja) | 演算回路 | |
| JP2004038521A (ja) | マイクロコンピュータ | |
| JP2989927B2 (ja) | ベクトル演算装置 | |
| JPH07129398A (ja) | マイクロプロセッサ | |
| US20060224653A1 (en) | Method and system for dynamic session control of digital signal processing operations | |
| JPH05127892A (ja) | 命令実行方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041102 |