(57)【要約】【課題】デジタルデータの飽和処理装置を提供する。【解決手段】有効ビット決定部、飽和検出部、限界値発生部及び選択部を具備するデジタルデータの飽和処理装置。有効ビット決定部は、境界値に応答して入力されるデータが飽和しているか否かを判断するための有効ビットに対する情報を有する境界値データを発生し、飽和検出部はデータを受信して境界値データに応答してデータが飽和されたか否かを判断し判断結果を検出信号として発生する。限界値発生部は境界値データに応答して最大限界値と最小限界値とを出力し、選択部はデータ及び検出信号に応答してデータ、最大限界値及び最小限界値のうち一つを出力する。境界値は飽和処理装置が装着されるプロセッサのデータバス幅より小さな値である。有効ビットは飽和処理装置が装着されるプロセッサがＫビットのデータバスを具備して境界値が２Ａで表現される場合、境界値データの上位Ｋ−Ａビット部分である。【選択図】      図４
2004259282.tif 000002
【特許請求の範囲】
【請求項１】
境界値に応答して入力されるデータが飽和しているか否かを判断するための有効ビットに対する情報を有する境界値データを発生する有効ビット決定部と、
前記データを受信し、前記境界値データに応答して前記データが飽和しているか否かを判断し、判断結果を検出信号として発生する飽和検出部と、
前記境界値データに応答して最大限界値と最小限界値とを出力する限界値発生部と、
前記データ及び前記検出信号に応答して前記データ、前記最大限界値及び前記最小限界値のうちの一つを出力する選択部と、を具備することを特徴とするデジタルデータの飽和処理装置。
【請求項２】
前記境界値は、
複数のビットで表示され、前記飽和処理装置が装着されるプロセッサの複数のビットで表示されるデータバス幅より小さな値であることを特徴とする請求項１に記載のデジタルデータの飽和処理装置。
【請求項３】
前記有効ビットは、
前記飽和処理装置が装着されるプロセッサがＫビットのデータバスを具備して前記境界値が２Ａで表現される場合、
前記境界値データの上位Ｋ−Ａ（Ｋ、Ａは正の整数であり、Ｋ≧Ａ）ビット部分であることを特徴とする請求項２に記載のデジタルデータの飽和処理装置。
【請求項４】
前記有効ビット決定部は、
前記境界値が２Ａで表現される場合、前記境界値データのうち前記有効ビットは第１論理値で、前記境界値データのうち残りのビットは第２論理値で出力することを特徴とする請求項３に記載のデジタルデータの飽和処理装置。
【請求項５】
前記有効ビット決定部は、
前記境界値がＮ個のビットよりなり、２Ａ（Ｎ、Ａは正の整数であり、Ｎ≧Ａ）で表現される場合、
第１ないし第Ｎ−１論理和手段を具備し、
前記第１論理和手段は前記境界値の最下位ビットである第１ビットと第２ビットとを論理和し、
前記第２ないし第Ｎ−１論理和手段は、
前記境界値の第３ないし第Ｎビットのうち対応する一つのビットをそれぞれ受信し、受信される第３ないし第Ｎビットのうち一つのビットと以前論理和手段の出力とを論理和し、
前記境界値の第１ビットが前記境界値データの最下位ビットである第１ビットとして発生し、前記第１ないし第Ｎ−１論理和手段の出力がそれぞれ前記境界値データの第２ないし第Ｎビットとして発生することを特徴とする請求項１に記載のデジタルデータの飽和処理装置。
【請求項６】
前記飽和検出部は、
入力される前記データのビットのうち前記境界値データの有効ビットに対応する上位ビットを抽出して前記データが飽和されたか否かを判断し、
前記データの最上位ビットが第１論理値である場合、前記境界値データの有効ビットに対応する前記データのビットのうち一つのビットでも第２論理値であれば前記データが飽和していると判断し、
前記データの最上位ビットが第２論理値である場合、前記境界値データの有効ビットに対応する前記データのビットのうち一つのビットでも第１論理値であれば前記データが飽和していると判断することを特徴とする請求項１に記載のデジタルデータの飽和処理装置。
【請求項７】
前記検出信号は、
前記データが飽和していれば第１論理値を有し、前記データが飽和していなければ第２論理値を有することを特徴とする請求項６に記載のデジタルデータの飽和処理装置。
【請求項８】
前記飽和検出部は、
前記データがＭ個のビットで構成される場合、
最下位ビットの第１ビットないし第Ｍ−１ビットの論理値を反転させる第１ないし第Ｍ−１インバータと、
前記データの第１ないし第Ｍ−１ビットのうち対応するビット及び前記対応するビットの反転論理値を受信し、前記境界値データの対応するビットを受信して第１ないし第Ｍ−１正数値検出信号及び第１ないし第Ｍ−１負数値検出信号を発生する第１ないし第Ｍ−１検出信号発生部と、
前記第１ないし第Ｍ−１負数値検出信号を論理和して第１信号を出力する負数論理和手段と、
前記第１ないし第Ｍ−１正数値検出信号を論理和して第２信号を出力する正数論理和手段と、
前記データの最上位ビットが第１論理値であれば前記第１信号を前記検出信号として出力し、前記データの最上位ビットが第２論理値であれば前記第２信号を前記検出信号として出力する選択手段と、を具備することを特徴とする請求項１に記載のデジタルデータの飽和処理装置。
【請求項９】
前記第１ないし第Ｍ−１検出信号発生部はそれぞれ、
前記データの第１ないし第Ｍ−１ビットのうち対応するビットと前記境界値データの対応するビットとを論理積して前記正数値検出信号を発生する正数論理積手段と、
前記データの第１ないし第Ｍ−１ビットのうち対応するビットの反転論理値と前記境界値データの対応するビットとを論理積して前記負数値検出信号を発生する負数論理積手段と、を具備することを特徴とする請求項８に記載のデジタルデータの飽和処理装置。
【請求項１０】
前記最大限界値は、
前記境界値データを反転した値であり、前記最小限界値は前記境界値データと同じ値であることを特徴とする請求項１に記載のデジタルデータの飽和処理装置。
【請求項１１】
前記限界値発生部は、
前記境界値データのそれぞれのビットを反転して前記最大限界値として出力する第１ないし第Ｎインバータを具備することを特徴とする請求項１に記載のデジタルデータの飽和処理装置。
【請求項１２】
前記選択部は、
前記データの最上位ビットが第１論理値であり、前記検出信号が第１論理値であれば最小限界値を出力し、前記データの最上位ビットが第２論理値であり、前記検出信号が第１論理値であれば最大限界値を出力し、
前記検出信号が第２論理値であれば前記データを出力することを特徴とする請求項１に記載のデジタルデータの飽和処理装置。
【請求項１３】
入力されるデータが飽和しているか否かを判断する飽和処理装置の飽和動作実行方法において、
（ａ）境界値に応答して前記データが飽和しているか否かを判断するための有効ビットに対する情報を有する境界値データを発生する段階と、
（ｂ）前記境界値データに応答して前記データが飽和しているか否かを判断する検出信号を発生する段階と、
（ｃ）前記境界値データに応答して最大限界値及び最小限界値を発生する段階と、
（ｄ）前記データ及び前記検出信号に応答して前記データ、前記最大限界値及び前記最小限界値のうちの一つを出力する段階と、を具備することを特徴とする飽和処理装置の飽和動作実行方法。
【請求項１４】
前記境界値は、
複数のビットで表示され、前記飽和処理装置が装着されるプロセッサの複数のビットで表示されるデータバス幅より小さな値であることを特徴とする請求項１３に記載の飽和処理装置の飽和動作実行方法。
【請求項１５】
前記有効ビットは、
前記飽和処理装置が装着されるプロセッサがＫビットのデータバスを具備して前記境界値が２Ａで表現される場合、
前記境界値データの上位Ｋ−Ａビット部分であることを特徴とする請求項１３に記載の飽和処理装置の飽和動作実行方法。
【請求項１６】
前記境界値データは、
前記境界値が２Ａで表現される場合、前記境界値データのうち前記有効ビットは第１論理値として、前記境界値データのうち残りのビットは第２論理値として出力されることを特徴とする請求項１５に記載の飽和処理装置の飽和動作実行方法。
【請求項１７】
前記（ａ）段階は、
前記境界値がＮ個のビットよりなり、２Ａ（Ｎ、Ａは正の整数、Ｎ≧Ａ）で表現される場合、
（ａ１）前記境界値の最下位ビットである第１ビットと第２ビットとを論理和して前記境界値の第１ビットは前記境界値データの最下位ビットである第１ビットとして出力し、前記論理和結果は前記境界値データの第２ビットとして出力する段階と、
（ａ２）前段階の論理和結果と前記境界値の対応するビットとを論理和して前記境界値データの第２ないし第Ｎビットを出力する段階と、を具備することを特徴とする請求項１３に記載の飽和処理装置の飽和動作実行方法。
【請求項１８】
前記（ｂ）段階は、
入力される前記データのビットのうち前記境界値データの有効ビットに対応する上位ビットを抽出して前記データが飽和しているか否かを判断し、
前記データの最上位ビットが第１論理値である場合、前記境界値データの有効ビットに対応する残りの有効ビットのうち一つのビットでも第２論理値であれば前記データが飽和していると判断し、
前記データの最上位ビットが第２論理値である場合、前記境界値データの有効ビットに対応する残りの有効ビットのうち一つのビットでも第１論理値であれば前記データが飽和していると判断することを特徴とする請求項１３に記載の飽和処理装置の飽和動作実行方法。
【請求項１９】
前記最大限界値は、
前記境界値データを反転した値であり、前記最小限界値は前記境界値データと同じ値であることを特徴とする請求項１３に記載の飽和処理装置の飽和動作実行方法。
【請求項２０】
前記（ｄ）段階は、
前記データの最上位ビットが第１論理値であり、前記検出信号が第１論理値であれば最小限界値を出力し、前記データの最上位ビットが第２論理値であり前記検出信号が第１論理値であれば最大限界値を出力し、
前記検出信号が第２論理値であれば前記データを出力することを特徴とする請求項１３に記載の飽和処理装置の飽和動作実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータのオーバーフローを検出して飽和動作を行う飽和処理装置に係り、特に飽和動作時間を短縮して電力消費を減らすことができる飽和処理装置に関する。
【背景技術】
【０００２】
データの飽和動作は、信号処理システムにおいて最も多くの演算が行われる演算のうち一つであるエネルギ計算、または同期累積計算結果を特定範囲に限定する際に利用される。例えば、１６ビットプロセッサで演算結果は、整数型に０〜６５５３５（符号型）または−３２７６８〜３２７６７（符号型でない）の範囲内でのみ表現される。
したがって、１６ビットプロセッサでは演算結果が−３２７６８より小さいか、または３２７６７より大きい場合には表現されない。もし、演算エラーにより演算結果がその範囲を離脱すれば演算結果の符号が変わる現象が現われ、以後の演算結果は信じられないデータとなる。
【０００３】
飽和処理装置は、このように演算結果が１６進数で０ｘ８０００（十進数−３２７６８）から０ｘ７ＦＦＦ（十進数３２７６７）を離脱する場合にはこれをユーザに知らせるか、またはその範囲を離脱しないように強制的に最大値（３２７６７）または最小値（−３２７６８）を演算結果として出力する。
前者のように、ユーザに演算結果が指定された範囲を離脱したと知らせることを普通オーバーフローが発生したといい、後者の場合のように演算結果と関係なく強制的に最大値または最小値を出力させることを飽和処理方式という。
【０００４】
図１は、１６ビットデータの飽和処理機能を図表で示したものである。
図１を参照すれば、プロセッサが１６ビットのデータ幅を有し、指定された範囲が符号型でない場合には、データは０〜６５,５３５間の範囲内に存在しなければならない。または、プロセッサが１６ビットのデータ幅を有し、指定された範囲が符号型である場合には、データは−３２,７６７〜３２,７６７間に存在しなければならない。
図１でＸ値は演算結果であり、Ｙ値は出力される結果である。Ｘ値が最大値（３２,７６７）より大きければＹ値は３２,７６７が出力される。Ｘ値が最小値（−３２,７６７）より小さければＹ値は−３２,７６７が出力される。Ｘ値が最大値（３２,７６７）より小さくて最小値（−３２,７６７）より大きければＹ値はＸ値と同じ値が出力される。
【０００５】
一般的に、このような飽和処理はプログラムを利用して主に処理するが、プログラムを行うのに数サイクルが反復されるために飽和処理には長時間がかかるという問題がある。
しかも、飽和処理プログラムをそのままハードウェアで実現する場合、大きいゲートサイズを必要とする。特に、演算結果の範囲を特定範囲に指定する場合には特定範囲がハードウェアによって固定されるために、アプリケーションが変わったり演算結果の範囲を変更しようとする場合にも演算結果の範囲を変更できないという問題がある。
【０００６】
図２は、飽和処理装置の飽和処理機能をソフトウェアで実現した例を説明する図である。
Ｘ値が最大値より大きければＹ値は最大値が出力され、Ｘ値が最小値より小さければＹ値は最小値が出力され、Ｘ値が最大値と最小値との間であればＹ値はＸ値と同じ値である。
図２のプログラムから分かるように、飽和処理のために約４〜５サイクルかかる。さらにＵＭＴＳ（Ｕｎｉｖｅｒｓａｌ Ｍｏｂｉｌｅ Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ Ｓｙｓｔｅｍ）のような移動通信システムでは、同期累積及び非同期累積の演算が進行しつつ、随時、飽和処理過程が実行される。
したがって、このような飽和処理だけに少なくないサイクル数が必要となる。現在はこのような時間の消費が移動通信システムに大きな影響を及ぼすことはないが、今後、他のアプリケーションが追加される場合には、飽和処理に要するサイクル数が負担になる。
【０００７】
図３は、飽和処理装置のハードウェア構成を示すブロック図である。
図３を参照すれば、一般的な飽和処理装置は２の補数計算部３１０、減算部３２０、比較部３３０、３４０及び選択部３５０を具備する。
ここで境界値ＢＶ（Ｂｏｕｎｄａｒｙ Ｖａｌｕｅ）は、データＤＡＴＡが有効に表現される区間であり、設計者が定める値であって、データＤＡＴＡのビット数よりは小さく指定される。データＤＡＴＡは演算器（図示せず）によって演算された結果である。境界値ＢＶは、比較演算のためにそれぞれ２の補数計算部３１０及び減算部３２０に印加される。
【０００８】
例えば、境界値ＢＶが２８であればデータＤＡＴＡが有効に表現される範囲は−２７〜２７−１である。この範囲の値はオーバーフローが発生する場合に符号ビットによって最大値または最小値に強制割当されるために使われ、また入力されたデータＤＡＴＡと比較されるために使われる。
データＤＡＴＡが有効に表現される範囲は、２の補数計算部３１０及び減算部３２０によって得られる。比較部３３０は、データＤＡＴＡと減算部３２０とから出力される２７−１の大小を比較する。比較部３４０は、データＤＡＴＡと２の補数計算部３１０とから出力される−２７の大小を比較する。選択部３５０は、比較器３３０、３４０の出力に応答してデータＤＡＴＡ、最大値（２７−１）及び最小値（−２７）のうち一つを出力する。
【０００９】
図２から分かるように、ハードウェアで実現された図２の飽和処理装置の飽和動作は１サイクルだけで実行できるが、境界値ＢＶによって決まる有効範囲が特定値に固定されてしまうという問題がある。
もし、境界値ＢＶにより決まる有効範囲が固定されていない場合、有効範囲が、飽和処理装置３００が装着されるプロセッサのデータ幅に対応する最大範囲として定められなければならない。したがって、これによる装置負担が増加するという問題がある。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明が解決しようとする技術的課題は、演算結果であるデータが有効に表現される範囲を設計者が指定でき、簡単な回路で構成される飽和処理装置を提供することにある。
本発明が解決しようとする他の技術的課題は、演算結果であるデータが有効に表現される範囲を設計者が指定でき、簡単な回路で構成される飽和処理装置の飽和動作実行方法を提供するところにある。
【課題を解決するための手段】
【００１１】
前記技術的課題を達成するための本発明による飽和処理装置は、有効ビット決定部、飽和検出部、限界値発生部及び選択部を具備することを特徴とする。有効ビット決定部は、境界値に応答して入力されるデータが飽和されたか否かを判断するための有効ビットに対する情報を有する境界値データを発生する。飽和検出部は、前記データを受信して前記境界値データに応答して前記データが飽和されたか否かを判断し、判断結果を検出信号として発生する。限界値発生部は、前記境界値データに応答して最大限界値と最小限界値とを出力する。選択部は、前記データ及び前記検出信号に応答して前記データ、前記最大限界値及び前記最小限界値のうち一つを出力する。
【００１２】
前記境界値は、前記飽和処理装置が装着されるプロセッサのデータバス幅より小さな値であることを特徴とする。前記有効ビットは、前記飽和処理装置が装着されるプロセッサがＫビットのデータバスを具備して前記境界値が２Ａで表現される場合、前記境界値データの上位Ｋ−Ａビット部分であることを特徴とする。
前記有効ビット決定部は、前記境界値が２Ａで表現される場合、前記境界値データのうち前記有効ビットは第１論理値で、前記境界値データのうち残りのビットは第２論理値で出力することを特徴とする。
【００１３】
前記有効ビット決定部は、前記境界値がＮ個のビットよりなり、２Ａ（Ｎ、Ａは正の整数であり、Ｎ≧Ａ）で表現される場合、第１ないし第Ｎ−１論理和手段を具備し、前記第１論理和手段は前記境界値の最下位ビット（ＬＳＢ：Ｌｅａｓｔ Ｓｉｇｎｉｆｉｃａｎｔ Ｂｉｔ）である第１ビットと第２ビットとを論理和し、前記第２ないし第Ｎ−１論理和手段は、前記境界値の第３ないし第Ｎビットのうち対応する一つのビットをそれぞれ受信し、受信される第３ないし第Ｎビットのうち一つのビットと以前論理和手段の出力とを論理和し、前記境界値の第１ビットが前記境界値データのＬＳＢである第１ビットとして発生し、前記第１ないし第Ｎ−１論理和手段の出力がそれぞれ前記境界値データの第２ないし第Ｎビットとして発生することを特徴とする。
【００１４】
前記飽和検出部は、入力される前記データのビットのうち前記境界値データの有効ビットに対応する上位ビットを抽出して前記データが飽和されたか否かを判断し、前記データの最上位ビットが第１論理値である場合、前記境界値データの有効ビットに対応する残りの有効ビットのうち一つのビットでも第２論理値であれば前記データが飽和されたと判断し、前記データの最上位ビットが第２論理値である場合、前記境界値データの有効ビットに対応する残りの有効ビットのうち一つのビットでも第１論理値であれば前記データが飽和されたと判断することを特徴とする。
【００１５】
前記検出信号は、前記データが飽和されれば第１論理値を有し、前記データが飽和されなければ第２論理値を有することを特徴とする。
前記飽和検出部は、前記データがＭ個のビットで構成される場合、第１ないし第Ｍ−１インバータ、第１ないし第Ｍ−１検出信号発生部、負数論理和手段、正数論理和手段、選択手段を備えることを特徴とする。
【００１６】
第１ないし第Ｍ−１インバータは、ＬＳＢである第１ビットないし第Ｍ−１ビットの論理値を反転させる。第１ないし第Ｍ−１検出信号発生部は、前記データの第１ないし第Ｍ−１ビットのうち対応するビット及び前記対応するビットの反転論理値を受信し、前記境界値データの対応するビットを受信して第１ないし第Ｍ−１正数値検出信号及び第１ないし第Ｍ−１負数値検出信号を発生する。
【００１７】
負数論理和手段は、前記第１ないし第Ｍ−１負数値検出信号を論理和して第１信号を出力する。正数論理和手段は、前記第１ないし第Ｍ−１正数値検出信号を論理和して第２信号を出力する。
選択手段は、前記データの最上位ビットが第１論理値であれば前記第１信号を前記検出信号として出力し、前記データの最上位ビットが第２論理値であれば前記第２信号を前記検出信号として出力する。
【００１８】
前記第１ないし第Ｍ−１検出信号発生部はそれぞれ、前記データの第１ないし第Ｍ−１ビットのうち対応するビットと前記境界値データの対応するビットとを論理積して前記正数値検出信号を発生する正数論理積手段と、前記データの第１ないし第Ｍ−１ビットのうち対応するビットの反転論理値と前記境界値データの対応するビットとを論理積して前記負数値検出信号を発生する負数論理積手段と、を具備することを特徴とする。
【００１９】
前記最大限界値は、前記境界値データを反転した値であり、前記最小限界値は前記境界値データと同じ値であることを特徴とする。
前記限界値発生部は、前記境界値データのそれぞれのビットを反転して前記最大限界値として出力する第１ないし第Ｎインバータを具備することを特徴とする。
前記選択部は、前記データの最上位ビットが第１論理値であり、前記検出信号が第１論理値であれば最小限界値を出力し、前記データの最上位ビットが第２論理値であり、前記検出信号が第１論理値であれば最大限界値を出力し、前記検出信号が第２論理値であれば前記データを出力することを特徴とする。
【００２０】
前記技術的課題を達成するための本発明による飽和処理装置の飽和動作実行方法は、入力されるデータが飽和されたか否かを判断する方法であって、（ａ）境界値に応答して前記データが飽和されたか否かを判断するための有効ビットに対する情報を有する境界値データを発生する段階と、（ｂ）前記境界値データに応答して前記データが飽和されたか否かを判断する検出信号を発生する段階と、（ｃ）前記境界値データに応答して最大限界値及び最小限界値を発生する段階と、（ｄ）前記データ及び前記検出信号に応答して前記データ、前記最大限界値及び前記最小限界値のうち一つを出力する段階と、を具備することを特徴とする。
【発明の効果】
【００２１】
本発明による飽和処理装置及び飽和動作実行方法は、演算結果であるデータが有効に表現される範囲を設計者が可変的に定めることができるという長所があり、また飽和処理過程にかかる時間及び電力を省くことができるという長所がある。
【発明を実施するための最良の形態】
【００２２】
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには本発明の望ましい実施例を例示する添付図面及び図面に記載された内容を参照しなければならない。
以下、添付した図面を参照して本発明の望ましい実施例を説明することによって、本発明を詳細に説明する。各図面に付された同一参照符号は同一部材を表わす。
【００２３】
図４は、本発明による飽和処理装置を示すブロック図である。
図４を参照すれば、本発明による飽和処理装置は有効ビット決定部４１０、飽和検出部４２０、限界値発生部４３０及び選択部４４０を具備する。
有効ビット決定部４１０は、境界値ＢＶに応答して入力されるデータＤＡＴＡが飽和しているか否かを判断するための有効ビットに対する情報を有する境界値データＢＶＤを発生する。
ここで、境界値ＢＶは飽和処理装置４００が装着されるプロセッサのデータバス幅より小さな値である。有効ビットは、飽和処理装置４００が装着されるプロセッサがＫビットのデータバスを具備して境界値ＢＶが２Ａで表現される場合、境界値データＢＶＤの上位Ｋ−Ａビット部分である。
【００２４】
有効ビット決定部４１０は、境界値ＢＶが２Ａで表現される場合、境界値データＢＶＤのうち前記有効ビットを第１論理値で、境界値データＢＶＤのうち残りのビットを第２論理値で出力する。
飽和検出部４２０は、データＤＡＴＡを受信し、境界値データＢＶＤに応答してデータＤＡＴＡが飽和されたか否かを判断し、判断結果を検出信号ＳＡＴＤＥＴとして発生する。
さらに詳細に説明すれば、飽和検出部４２０は入力されるデータＤＡＴＡのビットのうち境界値データＢＶＤの有効ビットに対応する上位ビットを抽出してデータＤＡＴＡが飽和しているか否かを判断する。
【００２５】
データＤＡＴＡの最上位ビットが第１論理値である場合、境界値データＢＶＤの有効ビットに対応する残りの有効ビットのうち一つのビットでも第２論理値であればデータＤＡＴＡは飽和していると判断し、データＤＡＴＡの最上位ビットが第２論理値である場合、境界値データＢＶＤの有効ビットに対応する残りの有効ビットのうち一つのビットでも第１論理値であればデータＤＡＴＡは飽和していると判断する。
【００２６】
検出信号ＳＡＴＤＥＴは、データＤＡＴＡが飽和していれば第１論理値を有し、データＤＡＴＡが飽和していなければ第２論理値を有する。
限界値発生部４３０は、境界値データＢＶＤに応答して最大限界値ＵＰＬＩＭＩＴ及び最小限界値ＬＯＬＩＭＩＴを出力する。最大限界値ＵＰＬＩＭＩＴは境界値データＢＶＤを反転した値であり、最小限界値ＬＯＬＩＭＩＴは境界値データＢＶＤと同じ値である。
【００２７】
選択部４４０は、データＤＡＴＡ及び検出信号ＳＡＴＤＥＴに応答してデータＤＡＴＡ、最大限界値ＵＰＬＩＭＩＴ及び最小限界値ＬＯＬＩＭＩＴのうちの一つを出力する。さらに詳細に説明すれば、選択部４４０は、データＤＡＴＡの最上位ビットが第１論理値であり、検出信号ＳＡＴＤＥＴが第１論理値であれば最小限界値ＬＯＬＩＭＩＴを出力する。データＤＡＴＡの最上位ビットが第２論理値であり、検出信号ＳＡＴＤＥＴが第１論理値であれば最大限界値ＵＰＬＩＭＩＴを出力し、検出信号ＳＡＴＤＥＴが第２論理値であればデータＤＡＴＡを出力する。
【００２８】
図１１は、本発明の実施例による飽和動作実行方法を示すフローチャートである。
図１１の飽和動作実行方法１１００は図４の飽和処理装置の動作に対応する。したがって、図４の飽和処理装置４００の動作は図１１を参照して説明される。
まず、境界値に応答してデータが飽和しているか否かを判断するための有効ビットに対する情報を有する境界値データを発生する（１１１０段階）。
１１１０段階の動作は有効ビット決定部４１０で行われる。データＤＡＴＡが最大限界値ＵＰＬＩＭＩＴと最小限界値ＬＯＬＩＭＩＴとの間に存在すればデータＤＡＴＡは有効な値であり、データＤＡＴＡが最大限界値ＵＰＬＩＭＩＴより大きいか、または最小限界値ＬＯＬＩＭＩＴより小さければデータＤＡＴＡは有効でない値である。
【００２９】
境界値ＢＶは、データＤＡＴＡが有効に表現できる最大限界値ＵＰＬＩＭＩＴ及び最小限界値ＬＯＬＩＭＩＴを求めるために設計者が飽和処理装置４００に入力する値である。最大限界値ＵＰＬＩＭＩＴ及び最小限界値ＬＯＬＩＭＩＴは、飽和処理装置４００が装着されるプロセッサ（図示せず）のデータバス幅によって制限されるために、境界値ＢＶが無限大である必要はない。本発明において境界値ＢＶは、プロセッサ（図示せず）のデータバス幅より小さな値である。
例えば、データバスの幅が８ビットであり、設計者が−３２〜３１の範囲、すなわち、−２５〜２５−１の範囲をデータＤＡＴＡが有効に表現される範囲として指定したいならば、境界値ＢＶとして３２を指定する。３２は二進数０１００ ００００で表現される。
【００３０】
有効ビットは、飽和処理装置４００が装着されるプロセッサがＫビットのデータバスを具備して境界値ＢＶが２Ａに表現される場合、境界値データＢＶＤの上位Ｋ−Ａビット部分である。前記の例で、Ｋは８であり、Ａは５であるために有効ビットは３ビットである。すなわち、境界値データＢＶＤの上位３ビットが有効ビットである。
有効ビット決定部４１０は、境界値データＢＶＤのうち有効ビットは第１論理値で、境界値データＢＶＤのうち残りのビットは第２論理値で出力する。ここでは説明の便宜のために第１論理値を‘１’とし、第２論理値を‘０’とする。しかし、第１論理値と第２論理値とが逆に設定されうることは当業者には明らかである。
前記の例で有効ビット決定部４１０は１１１０ ００００を境界値データＢＶＤとして出力する。有効ビットを‘１’で出力する有効ビット決定部４１０の構成が図５に図示されている。
【００３１】
図５を参照すれば、有効ビット決定部４１０は境界値ＢＶがＮ個のビットよりなり、２Ａで表現される場合、第１ないし第Ｎ−１論理和手段ＯＲ１、ＯＲ２〜ＯＲ Ｎ−１を具備する。ここでは境界値ＢＶが８ビットよりなり、２５で表現されると仮定する。
第１論理和手段ＯＲ１は、境界値ＢＶのＬＳＢである第１ビットＢＶ１と第２ビットＢＶ２とを論理和する。第２ないし第Ｎ−１論理和手段ＯＲ２、ＯＲ３〜ＯＲＮ−１は境界値ＢＶの第３ないし第ＮビットＢＶ３、ＢＶ４〜ＢＶＮのうち対応する一つのビットをそれぞれ受信し、受信される第３ないし第ＮビットＢＶ３、ＢＶ４〜ＢＶＮのうち一つのビットと以前論理和手段の出力とを論理和する。
【００３２】
境界値ＢＶの第１ビットＢＶ１が境界値データＢＶＤのＬＳＢである第１ビットＢＶＤ１として発生し、第１ないし第Ｎ−１論理和手段ＯＲ１、ＯＲ２、ＯＲ３〜ＯＲＮ−１の出力がそれぞれ境界値データＢＶＤの第２ないし第ＮビットＢＶＤ２、ＢＶＤ２〜ＢＶＤＮとして発生する。
すなわち、境界値ＢＶの第１ビットＢＶ１は境界値データＢＶＤの第１ビットＢＶＤ１）として出力され、第１論理和手段ＯＲ１の出力は境界値データＢＶＤの第２ビットＢＶＤ２として出力される。同様に、第Ｎ−１論理和手段ＯＲＮ−１の出力は境界値データＢＶＤの第ＮビットＢＶＤＮとして出力される。
【００３３】
図５の有効ビット決定部４１０は、境界値ＢＶのＮ個のビットのうち一つのビットの上位ビットに対応する境界値データＢＶＤのビットはいずれも１として出力する。
境界値データに応答してデータが飽和されたか否かを判断する検出信号を発生する（１１２０段階）。１１２０段階は飽和検出部４２０の動作に対応する。
飽和検出部４２０は、データＤＡＴＡを受信し、境界値データＢＶＤに応答してデータＤＡＴＡが飽和しているか否かを判断し、判断結果を検出信号ＳＡＴＤＥＴとして発生する。検出信号ＳＡＴＤＥＴはデータＤＡＴＡが飽和していれば第１論理値を有し、データＤＡＴＡが飽和していなければ第２論理値を有する。
飽和検出部４２０は、入力されるデータＤＡＴＡのビットのうち境界値データＢＶＤの有効ビットに対応する上位ビットを抽出してデータＤＡＴＡが飽和しているか否かを判断する。
【００３４】
前記の例のように、有効ビットが上位３ビットであると仮定し、入力されたデータＤＡＴＡが９６（二進数で０１１０ ００００）であると仮定する。すると、飽和検出部４２０は、データＤＡＴＡの上位３ビットの０１１だけを利用してデータＤＡＴＡが飽和しているか否かを判断する。飽和如何を判断する原理は次の通りである。
データＤＡＴＡの最上位ビットが第１論理値の場合、境界値データＢＶＤの有効ビットに対応するデータＤＡＴＡのビットのうち一つのビットでも第２論理値であればデータＤＡＴＡは飽和されたものである。
【００３５】
図６は、データが飽和しているか否かを判断する例を示す図である。図６を参照すれば、境界値データＢＶＤの有効ビットに対応するデータＤＡＴＡのビットが１１１である場合にデータＤＡＴＡは飽和していない。したがって、検出信号ＳＡＴＤＥＴは第２論理値、すなわち、‘０’を出力する。
境界値データＢＶＤの有効ビットに対応するデータＤＡＴＡのビットが１１０である場合にデータＤＡＴＡは飽和している。したがって、検出信号ＳＡＴＤＥＴは第１論理値、すなわち、‘１’を出力する。
【００３６】
データＤＡＴＡの最上位ビットが第２論理値である場合、境界値データＢＶＤの有効ビットに対応するデータＤＡＴＡのビットのうち一つのビットでも第１論理値であればデータＤＡＴＡは飽和されたものである。図６を参照すれば、境界値データＢＶＤの有効ビットに対応するデータＤＡＴＡのビットが０００である場合にデータＤＡＴＡは飽和していない。したがって、検出信号ＳＡＴＤＥＴは第２論理値、すなわち、‘０’を出力する。
境界値データＢＶＤの有効ビットに対応するデータＤＡＴＡのビットが００１である場合にデータＤＡＴＡは飽和している。したがって、検出信号ＳＡＴＤＥＴは第１論理値、すなわち、‘１’を出力する。
前記の例で、データＤＡＴＡが０１１０ ００００であり、境界値データＢＶＤの有効ビットに対応するビットが‘０１１’であるためにデータＤＡＴＡは飽和している。
【００３７】
図７は、図４の飽和検出部を示すブロック図である。
図７を参照すれば、飽和検出部４２０はデータＤＡＴＡがＭ個のビットで構成される場合、第１ないし第Ｍ−１インバータＩ１、Ｉ２〜ＩＭ−１、第１ないし第Ｍ−１検出信号発生部ＤＳ１、ＤＳ２〜ＤＳＭ−１、負数論理和手段ＮＯＲ、正数論理和手段ＰＯＲ及び選択手段７１０を具備する。
【００３８】
第１ないし第Ｍ−１インバータＩ１、Ｉ２〜ＩＭ−１は、ＬＳＢである第１ビットないし第Ｍ−１ビットＤ１、Ｄ２〜ＤＭ−１の論理値を反転させる。第１ないし第Ｍ−１検出信号発生部ＤＳ１、ＤＳ２〜ＤＳＭ−１はデータＤＡＴＡの第１ないし第Ｍ−１ビットＤ１、Ｄ２〜ＤＭ−１のうち対応するビット及び対応するビットの反転論理値を受信し、境界値データＢＶＤの対応するビットを受信して第１ないし第Ｍ−１正数値検出信号ＰＤＳ１、ＰＤＳ２〜ＰＤＳＭ−１及び第１ないし第Ｍ−１負数値検出信号ＮＤＳ１、ＮＤＳ２〜ＮＤＳＭ−１を発生する。
【００３９】
第１ないし第Ｍ−１検出信号発生部ＤＳ１、ＤＳ２〜ＤＳＭ−１はそれぞれデータＤＡＴＡの第１ないし第Ｍ−１ビットＤ１、Ｄ２〜ＤＭ−１のうち対応するビットと境界値データＢＶＤの対応するビットとを論理積して正数値検出信号ＰＤＳ１、ＰＤＳ２〜ＰＤＳＭ−１を発生する正数論理積手段ＰＡＮＤ１、ＰＡＮＤ２〜ＰＡＮＤＭ−１及び、データＤＡＴＡの第１ないし第Ｍ−１ビットＤ１、Ｄ２〜ＤＭ−１のうち対応するビットの反転論理値と境界値データＢＶＤの対応するビットとを論理積して負数値検出信号ＮＤＳ１、ＮＤＳ２〜ＮＤＳＭ−１を発生する負数論理積手段ＮＥＧ＿ＡＮＤ１、ＮＥＧ＿ＡＮＤ２〜ＮＥＧ＿ＡＮＤＭ−１を具備する。
【００４０】
負数論理和手段ＮＥＧ＿ＯＲは、第１ないし第Ｍ−１負数値検出信号ＮＤＳ１、ＮＤＳ２〜ＮＤＳＭ−１を論理和して第１信号Ｓ１を出力する。正数論理和手段ＰＯＲは、第１ないし第Ｍ−１正数値検出信号ＰＤＳ１、ＰＤＳ２〜ＰＤＳＭ−１を論理和して第２信号Ｓ２を出力する。
選択手段７１０は、データＤＡＴＡの最上位ビットが第１論理値であれば第１信号Ｓ１を検出信号ＳＡＴＤＥＴとして出力し、データＤＡＴＡの最上位ビットが第２論理値であれば第２信号Ｓ２を検出信号ＳＡＴＤＥＴとして出力する。
【００４１】
前記の例のように入力されるデータＤＡＴＡが０１１０ ００００であると仮定し、境界値データＢＶＤが１１１０ ００００であると仮定する。データＤＡＴＡ及び境界値データＢＶＤが飽和検出部４２０に入力されれば負数論理和手段ＮＥＧ＿ＯＲの出力である第１信号は‘０’として出力され、正数論理和手段ＰＯＲの出力である第２信号Ｓ２は‘１’として出力される。データＤＡＴＡの最上位ビットが第２論理値、すなわち、‘０’であるので、選択手段７１０は第２信号Ｓ２を検出信号ＳＡＴＤＥＴとして出力する。
【００４２】
入力されるデータＤＡＴＡのビット数と境界値データＢＶＤのビット数とは相違なることがある。すなわち、データＤＡＴＡのビット数が境界値データＢＶＤのビット数より多いことがある。この場合には、境界値データＢＶＤの最上位ビットに‘１’を追加してデータＤＡＴＡのビット数と境界値データＢＶＤのビット数とを一致させる。
【００４３】
図７の飽和検出部４２０は、論理積手段と論理和手段及びインバータだけで構成される。したがって、従来の飽和処理装置３００のように２個の比較器３３０、３４０を利用するのと比較してさらに簡単な回路構成を有する。従来の比較器３３０、３４０は普通ＮｘＮ減算器を利用して実現されるために、論理積手段、論理和手段、インバータ反転論理和手段などその回路構成が非常に複雑である。
境界値データに応答して最大限界値及び最小限界値を発生する（１１３０段階）。１１３０段階の動作は限界値発生部４３０の動作に対応する。
【００４４】
図８は、限界値発生部を示す回路図である。
図８を参照すれば、限界値発生部４３０は、境界値データＢＶＤに応答して最大限界値ＵＰＬＩＭＩＴ及び最小限界値ＬＯＬＩＭＩＴを出力する。最大限界値ＵＰＬＩＭＩＴは境界値データＢＶＤを反転した値であり、最小限界値ＬＯＬＩＭＩＴは境界値データＢＶＤと同じ値である。
【００４５】
最大限界値ＵＰＬＩＭＩＴ及び最小限界値ＬＯＬＩＭＩＴは、データＤＡＴＡが飽和している場合にデータＤＡＴＡの代わりに出力される値である。例えば、境界値ＢＶが３２（二進数で００１０ ００００）であれば境界値データＢＶＤは１１１０ ００００である。最大限界値ＵＰＬＩＭＩＴは、境界値データＢＶＤを反転した０００１ １１１１（十進数で３１）であり、最小限界値ＬＯＬＩＭＩＴは、境界値データＢＶＤと同じ１１１０ ００００（十進数で−３２）である。
【００４６】
従来の飽和処理処置３００では、境界値ＢＶから１を減算する演算及び２の補数を求める演算（境界値ＢＶの各ビットを反転した後で＋１をする）を行わねばならないために、非常に複雑でありかつ回路構成も複雑である。しかし、本発明では、有効ビット決定部４１０から出力される境界値データＢＶＤを利用して簡単に最大限界値ＵＰＬＩＭＩＴ及び最小限界値ＬＯＬＩＭＩＴを求めることができる。
【００４７】
限界値発生部４３０の回路構成も簡単である。すなわち、限界値発生部４３０は、境界値データＢＶＤのそれぞれのビットを反転して最大限界値ＵＰＬＩＭＩＴとして出力する第１ないし第ＮインバータＩＬ１、ＩＬ２〜ＩＬＮを具備する。最小限界値ＬＯＬＩＭＩＴは境界値データＢＶＤをそのまま出力すればよい。
データ及び検出信号に応答してデータ、最大限界値及び最小限界値のうち一つを出力する（１１４０段階）。１１４０段階の動作は選択部４４０の動作に対応する。
【００４８】
図９は、選択部の動作を説明する図である。図９を参照すれば、選択部４４０はデータＤＡＴＡの最上位ビットが第１論理値であり、検出信号ＳＡＴＤＥＴが第１論理値であれば最小限界値ＬＯＬＩＭＩＴを出力する。
検出信号ＳＡＴＤＥＴが第１論理値、すなわち、１であればデータＤＡＴＡは飽和された状態であり、データＤＡＴＡの最上位ビットが第１論理値であればデータＤＡＴＡが負数であるため、選択部４４０は、最小限界値ＬＯＬＩＭＩＴを飽和処理装置４００の結果ＳＡＴＲＳＴとして出力する。
【００４９】
選択部４４０はデータＤＡＴＡの最上位ビットが第２論理値であり、検出信号ＳＡＴＤＥＴが第１論理値であれば最大限界値ＵＰＬＩＭＩＴを出力する。検出信号ＳＡＴＤＥＴが第１論理値、すなわち、１であればデータＤＡＴＡは飽和された状態であり、データＤＡＴＡの最上位ビットが第２論理値であればデータＤＡＴＡが正数であるため、選択部４４０は最大限界値ＵＰＬＩＭＩＴを飽和処理装置４００の結果ＳＡＴＲＳＴとして出力する。
【００５０】
選択部４４０は、検出信号ＳＡＴＤＥＴが第２論理値であればデータＤＡＴＡを出力する。データＤＡＴＡの最上位ビットが第１論理値であるか、または第２論理値であるかに関係なく検出信号ＳＡＴＤＥＴが第２論理値、すなわち、‘０’であれば、データＤＡＴＡは飽和されなかったことを意味する。したがって、データＤＡＴＡは飽和処理装置４００によって有効に表現され、選択部４４０はデータＤＡＴＡを飽和処理装置４００の結果ＳＡＴＲＳＴとして出力する。
【００５１】
図１０Ａは、従来の飽和処理装置の動作速度をテストした結果を示す図である。
図１０Ｂは、本発明の飽和処理装置の動作速度をテストした結果を示す図である。
図１０Ａ及び図１０Ｂは、データＤＡＴＡが１８ビットであり、境界値ＢＶが１６ビットである場合に対し飽和処理装置を構成したものである。図１０Ａには、減算演算（Ｄｅｃｒｅｍｅｎｔ）、補数演算（Ｃｏｍｐｌｅｍｅｎｔ）、比較演算（Ｃｏｍｐａｒｅ）及び選択演算（ＭｕｘＲｅｓ）の動作速度及び回路が占める面積が示されている。図１０Ｂには、有効ビット決定（ＢｉｔＤｅｃｉｓｉｏｎ）、飽和検出（ＳａｔＤｅｃｔ）、限界値発生（ＬｉｍＧｅｎ）及び選択（ＭｕｘＳｅｌ）の動作速度及び回路が占める面積が示されている。本発明による飽和処理装置が、回路が占める面積及び動作速度の点でさらに優秀なことが分かる。
【００５２】
以上のように図面及び明細書で最適の実施例が開示された。ここで特定の用語が使われたが、これは単に本発明を説明するための目的で使われたものであって、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使われたものではない。したがって、当業者ならばこれにより多様な変形及び均等な他の実施例が可能であるという点を理解できる。したがって、本発明の真の保護範囲は特許請求の範囲の技術的思想により定められねばならない。
【産業上の利用可能性】
【００５３】
本発明はデータ演算を行うデジタル信号処理処置に利用することができる。
【図面の簡単な説明】
【００５４】
【図１】１６ビットデータの飽和処理機能を示す図表である。
【図２】飽和処理装置の飽和処理機能をソフトウェアで具現した例を説明する図である。
【図３】飽和処理装置のハードウェア構成を示すブロック図である。
【図４】本発明による飽和処理装置を示すブロック図である。
【図５】図４の有効ビット決定部を示す回路図である。
【図６】データが飽和されるか否かを判断する例を示す図である。
【図７】図４の飽和検出部を示すブロック図である。
【図８】限界値発生部を示す回路図である。
【図９】選択部の動作を説明する図面である。
【図１０】Ａは、従来の飽和処理装置の動作速度をテストした結果を示す図であり、Ｂは、本発明の飽和処理装置の動作速度をテストした結果を示す図である。
【図１１】本発明の実施例による飽和動作実行方法を示すフローチャートである。
【符号の説明】
【００５５】
４１０    有効ビット決定部
４２０    飽和検出部
４３０    限界値発生部
４４０    選択部
４００    飽和処理装置
【図１】
2004259282.tif 000003
【図２】
2004259282.tif 000004
【図３】
2004259282.tif 000005
【図４】
2004259282.tif 000006
【図５】
2004259282.tif 000007
【図６】
2004259282.tif 000008
【図７】
2004259282.tif 000009
【図８】
2004259282.tif 000010
【図９】
2004259282.tif 000011
【図１０】
2004259282.tif 000012
【図１１】
2004259282.tif 000013