JP2004259282A - デジタルデータの飽和処理装置 - Google Patents

デジタルデータの飽和処理装置 Download PDF

Info

Publication number
JP2004259282A
JP2004259282A JP2004051259A JP2004051259A JP2004259282A JP 2004259282 A JP2004259282 A JP 2004259282A JP 2004051259 A JP2004051259 A JP 2004051259A JP 2004051259 A JP2004051259 A JP 2004051259A JP 2004259282 A JP2004259282 A JP 2004259282A
Authority
JP
Japan
Prior art keywords
data
value
bits
boundary value
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004051259A
Other languages
English (en)
Inventor
Kenu Boku
賢 宇 朴
奇 源 ▲ソウ▼
Kee-Won Joe
Keun-Cheol Hong
根 哲 洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2004259282A publication Critical patent/JP2004259282A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49921Saturation, i.e. clipping the result to a minimum or maximum value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3816Accepting numbers of variable word length

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Small-Scale Networks (AREA)
  • Executing Machine-Instructions (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】デジタルデータの飽和処理装置を提供する。
【解決手段】有効ビット決定部、飽和検出部、限界値発生部及び選択部を具備するデジタルデータの飽和処理装置。有効ビット決定部は、境界値に応答して入力されるデータが飽和しているか否かを判断するための有効ビットに対する情報を有する境界値データを発生し、飽和検出部はデータを受信して境界値データに応答してデータが飽和されたか否かを判断し判断結果を検出信号として発生する。限界値発生部は境界値データに応答して最大限界値と最小限界値とを出力し、選択部はデータ及び検出信号に応答してデータ、最大限界値及び最小限界値のうち一つを出力する。境界値は飽和処理装置が装着されるプロセッサのデータバス幅より小さな値である。有効ビットは飽和処理装置が装着されるプロセッサがKビットのデータバスを具備して境界値が2で表現される場合、境界値データの上位K−Aビット部分である。
【選択図】 図4

Description

本発明はデータのオーバーフローを検出して飽和動作を行う飽和処理装置に係り、特に飽和動作時間を短縮して電力消費を減らすことができる飽和処理装置に関する。
データの飽和動作は、信号処理システムにおいて最も多くの演算が行われる演算のうち一つであるエネルギ計算、または同期累積計算結果を特定範囲に限定する際に利用される。例えば、16ビットプロセッサで演算結果は、整数型に0〜65535(符号型)または−32768〜32767(符号型でない)の範囲内でのみ表現される。
したがって、16ビットプロセッサでは演算結果が−32768より小さいか、または32767より大きい場合には表現されない。もし、演算エラーにより演算結果がその範囲を離脱すれば演算結果の符号が変わる現象が現われ、以後の演算結果は信じられないデータとなる。
飽和処理装置は、このように演算結果が16進数で0x8000(十進数−32768)から0x7FFF(十進数32767)を離脱する場合にはこれをユーザに知らせるか、またはその範囲を離脱しないように強制的に最大値(32767)または最小値(−32768)を演算結果として出力する。
前者のように、ユーザに演算結果が指定された範囲を離脱したと知らせることを普通オーバーフローが発生したといい、後者の場合のように演算結果と関係なく強制的に最大値または最小値を出力させることを飽和処理方式という。
図1は、16ビットデータの飽和処理機能を図表で示したものである。
図1を参照すれば、プロセッサが16ビットのデータ幅を有し、指定された範囲が符号型でない場合には、データは0〜65,535間の範囲内に存在しなければならない。または、プロセッサが16ビットのデータ幅を有し、指定された範囲が符号型である場合には、データは−32,767〜32,767間に存在しなければならない。
図1でX値は演算結果であり、Y値は出力される結果である。X値が最大値(32,767)より大きければY値は32,767が出力される。X値が最小値(−32,767)より小さければY値は−32,767が出力される。X値が最大値(32,767)より小さくて最小値(−32,767)より大きければY値はX値と同じ値が出力される。
一般的に、このような飽和処理はプログラムを利用して主に処理するが、プログラムを行うのに数サイクルが反復されるために飽和処理には長時間がかかるという問題がある。
しかも、飽和処理プログラムをそのままハードウェアで実現する場合、大きいゲートサイズを必要とする。特に、演算結果の範囲を特定範囲に指定する場合には特定範囲がハードウェアによって固定されるために、アプリケーションが変わったり演算結果の範囲を変更しようとする場合にも演算結果の範囲を変更できないという問題がある。
図2は、飽和処理装置の飽和処理機能をソフトウェアで実現した例を説明する図である。
X値が最大値より大きければY値は最大値が出力され、X値が最小値より小さければY値は最小値が出力され、X値が最大値と最小値との間であればY値はX値と同じ値である。
図2のプログラムから分かるように、飽和処理のために約4〜5サイクルかかる。さらにUMTS(Universal Mobile Telecommunications System)のような移動通信システムでは、同期累積及び非同期累積の演算が進行しつつ、随時、飽和処理過程が実行される。
したがって、このような飽和処理だけに少なくないサイクル数が必要となる。現在はこのような時間の消費が移動通信システムに大きな影響を及ぼすことはないが、今後、他のアプリケーションが追加される場合には、飽和処理に要するサイクル数が負担になる。
図3は、飽和処理装置のハードウェア構成を示すブロック図である。
図3を参照すれば、一般的な飽和処理装置は2の補数計算部310、減算部320、比較部330、340及び選択部350を具備する。
ここで境界値BV(Boundary Value)は、データDATAが有効に表現される区間であり、設計者が定める値であって、データDATAのビット数よりは小さく指定される。データDATAは演算器(図示せず)によって演算された結果である。境界値BVは、比較演算のためにそれぞれ2の補数計算部310及び減算部320に印加される。
例えば、境界値BVが2であればデータDATAが有効に表現される範囲は−2〜2−1である。この範囲の値はオーバーフローが発生する場合に符号ビットによって最大値または最小値に強制割当されるために使われ、また入力されたデータDATAと比較されるために使われる。
データDATAが有効に表現される範囲は、2の補数計算部310及び減算部320によって得られる。比較部330は、データDATAと減算部320とから出力される2−1の大小を比較する。比較部340は、データDATAと2の補数計算部310とから出力される−2の大小を比較する。選択部350は、比較器330、340の出力に応答してデータDATA、最大値(2−1)及び最小値(−2)のうち一つを出力する。
図2から分かるように、ハードウェアで実現された図2の飽和処理装置の飽和動作は1サイクルだけで実行できるが、境界値BVによって決まる有効範囲が特定値に固定されてしまうという問題がある。
もし、境界値BVにより決まる有効範囲が固定されていない場合、有効範囲が、飽和処理装置300が装着されるプロセッサのデータ幅に対応する最大範囲として定められなければならない。したがって、これによる装置負担が増加するという問題がある。
本発明が解決しようとする技術的課題は、演算結果であるデータが有効に表現される範囲を設計者が指定でき、簡単な回路で構成される飽和処理装置を提供することにある。
本発明が解決しようとする他の技術的課題は、演算結果であるデータが有効に表現される範囲を設計者が指定でき、簡単な回路で構成される飽和処理装置の飽和動作実行方法を提供するところにある。
前記技術的課題を達成するための本発明による飽和処理装置は、有効ビット決定部、飽和検出部、限界値発生部及び選択部を具備することを特徴とする。有効ビット決定部は、境界値に応答して入力されるデータが飽和されたか否かを判断するための有効ビットに対する情報を有する境界値データを発生する。飽和検出部は、前記データを受信して前記境界値データに応答して前記データが飽和されたか否かを判断し、判断結果を検出信号として発生する。限界値発生部は、前記境界値データに応答して最大限界値と最小限界値とを出力する。選択部は、前記データ及び前記検出信号に応答して前記データ、前記最大限界値及び前記最小限界値のうち一つを出力する。
前記境界値は、前記飽和処理装置が装着されるプロセッサのデータバス幅より小さな値であることを特徴とする。前記有効ビットは、前記飽和処理装置が装着されるプロセッサがKビットのデータバスを具備して前記境界値が2で表現される場合、前記境界値データの上位K−Aビット部分であることを特徴とする。
前記有効ビット決定部は、前記境界値が2で表現される場合、前記境界値データのうち前記有効ビットは第1論理値で、前記境界値データのうち残りのビットは第2論理値で出力することを特徴とする。
前記有効ビット決定部は、前記境界値がN個のビットよりなり、2(N、Aは正の整数であり、N≧A)で表現される場合、第1ないし第N−1論理和手段を具備し、前記第1論理和手段は前記境界値の最下位ビット(LSB:Least Significant Bit)である第1ビットと第2ビットとを論理和し、前記第2ないし第N−1論理和手段は、前記境界値の第3ないし第Nビットのうち対応する一つのビットをそれぞれ受信し、受信される第3ないし第Nビットのうち一つのビットと以前論理和手段の出力とを論理和し、前記境界値の第1ビットが前記境界値データのLSBである第1ビットとして発生し、前記第1ないし第N−1論理和手段の出力がそれぞれ前記境界値データの第2ないし第Nビットとして発生することを特徴とする。
前記飽和検出部は、入力される前記データのビットのうち前記境界値データの有効ビットに対応する上位ビットを抽出して前記データが飽和されたか否かを判断し、前記データの最上位ビットが第1論理値である場合、前記境界値データの有効ビットに対応する残りの有効ビットのうち一つのビットでも第2論理値であれば前記データが飽和されたと判断し、前記データの最上位ビットが第2論理値である場合、前記境界値データの有効ビットに対応する残りの有効ビットのうち一つのビットでも第1論理値であれば前記データが飽和されたと判断することを特徴とする。
前記検出信号は、前記データが飽和されれば第1論理値を有し、前記データが飽和されなければ第2論理値を有することを特徴とする。
前記飽和検出部は、前記データがM個のビットで構成される場合、第1ないし第M−1インバータ、第1ないし第M−1検出信号発生部、負数論理和手段、正数論理和手段、選択手段を備えることを特徴とする。
第1ないし第M−1インバータは、LSBである第1ビットないし第M−1ビットの論理値を反転させる。第1ないし第M−1検出信号発生部は、前記データの第1ないし第M−1ビットのうち対応するビット及び前記対応するビットの反転論理値を受信し、前記境界値データの対応するビットを受信して第1ないし第M−1正数値検出信号及び第1ないし第M−1負数値検出信号を発生する。
負数論理和手段は、前記第1ないし第M−1負数値検出信号を論理和して第1信号を出力する。正数論理和手段は、前記第1ないし第M−1正数値検出信号を論理和して第2信号を出力する。
選択手段は、前記データの最上位ビットが第1論理値であれば前記第1信号を前記検出信号として出力し、前記データの最上位ビットが第2論理値であれば前記第2信号を前記検出信号として出力する。
前記第1ないし第M−1検出信号発生部はそれぞれ、前記データの第1ないし第M−1ビットのうち対応するビットと前記境界値データの対応するビットとを論理積して前記正数値検出信号を発生する正数論理積手段と、前記データの第1ないし第M−1ビットのうち対応するビットの反転論理値と前記境界値データの対応するビットとを論理積して前記負数値検出信号を発生する負数論理積手段と、を具備することを特徴とする。
前記最大限界値は、前記境界値データを反転した値であり、前記最小限界値は前記境界値データと同じ値であることを特徴とする。
前記限界値発生部は、前記境界値データのそれぞれのビットを反転して前記最大限界値として出力する第1ないし第Nインバータを具備することを特徴とする。
前記選択部は、前記データの最上位ビットが第1論理値であり、前記検出信号が第1論理値であれば最小限界値を出力し、前記データの最上位ビットが第2論理値であり、前記検出信号が第1論理値であれば最大限界値を出力し、前記検出信号が第2論理値であれば前記データを出力することを特徴とする。
前記技術的課題を達成するための本発明による飽和処理装置の飽和動作実行方法は、入力されるデータが飽和されたか否かを判断する方法であって、(a)境界値に応答して前記データが飽和されたか否かを判断するための有効ビットに対する情報を有する境界値データを発生する段階と、(b)前記境界値データに応答して前記データが飽和されたか否かを判断する検出信号を発生する段階と、(c)前記境界値データに応答して最大限界値及び最小限界値を発生する段階と、(d)前記データ及び前記検出信号に応答して前記データ、前記最大限界値及び前記最小限界値のうち一つを出力する段階と、を具備することを特徴とする。
本発明による飽和処理装置及び飽和動作実行方法は、演算結果であるデータが有効に表現される範囲を設計者が可変的に定めることができるという長所があり、また飽和処理過程にかかる時間及び電力を省くことができるという長所がある。
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには本発明の望ましい実施例を例示する添付図面及び図面に記載された内容を参照しなければならない。
以下、添付した図面を参照して本発明の望ましい実施例を説明することによって、本発明を詳細に説明する。各図面に付された同一参照符号は同一部材を表わす。
図4は、本発明による飽和処理装置を示すブロック図である。
図4を参照すれば、本発明による飽和処理装置は有効ビット決定部410、飽和検出部420、限界値発生部430及び選択部440を具備する。
有効ビット決定部410は、境界値BVに応答して入力されるデータDATAが飽和しているか否かを判断するための有効ビットに対する情報を有する境界値データBVDを発生する。
ここで、境界値BVは飽和処理装置400が装着されるプロセッサのデータバス幅より小さな値である。有効ビットは、飽和処理装置400が装着されるプロセッサがKビットのデータバスを具備して境界値BVが2で表現される場合、境界値データBVDの上位K−Aビット部分である。
有効ビット決定部410は、境界値BVが2で表現される場合、境界値データBVDのうち前記有効ビットを第1論理値で、境界値データBVDのうち残りのビットを第2論理値で出力する。
飽和検出部420は、データDATAを受信し、境界値データBVDに応答してデータDATAが飽和されたか否かを判断し、判断結果を検出信号SATDETとして発生する。
さらに詳細に説明すれば、飽和検出部420は入力されるデータDATAのビットのうち境界値データBVDの有効ビットに対応する上位ビットを抽出してデータDATAが飽和しているか否かを判断する。
データDATAの最上位ビットが第1論理値である場合、境界値データBVDの有効ビットに対応する残りの有効ビットのうち一つのビットでも第2論理値であればデータDATAは飽和していると判断し、データDATAの最上位ビットが第2論理値である場合、境界値データBVDの有効ビットに対応する残りの有効ビットのうち一つのビットでも第1論理値であればデータDATAは飽和していると判断する。
検出信号SATDETは、データDATAが飽和していれば第1論理値を有し、データDATAが飽和していなければ第2論理値を有する。
限界値発生部430は、境界値データBVDに応答して最大限界値UPLIMIT及び最小限界値LOLIMITを出力する。最大限界値UPLIMITは境界値データBVDを反転した値であり、最小限界値LOLIMITは境界値データBVDと同じ値である。
選択部440は、データDATA及び検出信号SATDETに応答してデータDATA、最大限界値UPLIMIT及び最小限界値LOLIMITのうちの一つを出力する。さらに詳細に説明すれば、選択部440は、データDATAの最上位ビットが第1論理値であり、検出信号SATDETが第1論理値であれば最小限界値LOLIMITを出力する。データDATAの最上位ビットが第2論理値であり、検出信号SATDETが第1論理値であれば最大限界値UPLIMITを出力し、検出信号SATDETが第2論理値であればデータDATAを出力する。
図11は、本発明の実施例による飽和動作実行方法を示すフローチャートである。
図11の飽和動作実行方法1100は図4の飽和処理装置の動作に対応する。したがって、図4の飽和処理装置400の動作は図11を参照して説明される。
まず、境界値に応答してデータが飽和しているか否かを判断するための有効ビットに対する情報を有する境界値データを発生する(1110段階)。
1110段階の動作は有効ビット決定部410で行われる。データDATAが最大限界値UPLIMITと最小限界値LOLIMITとの間に存在すればデータDATAは有効な値であり、データDATAが最大限界値UPLIMITより大きいか、または最小限界値LOLIMITより小さければデータDATAは有効でない値である。
境界値BVは、データDATAが有効に表現できる最大限界値UPLIMIT及び最小限界値LOLIMITを求めるために設計者が飽和処理装置400に入力する値である。最大限界値UPLIMIT及び最小限界値LOLIMITは、飽和処理装置400が装着されるプロセッサ(図示せず)のデータバス幅によって制限されるために、境界値BVが無限大である必要はない。本発明において境界値BVは、プロセッサ(図示せず)のデータバス幅より小さな値である。
例えば、データバスの幅が8ビットであり、設計者が−32〜31の範囲、すなわち、−2〜2−1の範囲をデータDATAが有効に表現される範囲として指定したいならば、境界値BVとして32を指定する。32は二進数0100 0000で表現される。
有効ビットは、飽和処理装置400が装着されるプロセッサがKビットのデータバスを具備して境界値BVが2に表現される場合、境界値データBVDの上位K−Aビット部分である。前記の例で、Kは8であり、Aは5であるために有効ビットは3ビットである。すなわち、境界値データBVDの上位3ビットが有効ビットである。
有効ビット決定部410は、境界値データBVDのうち有効ビットは第1論理値で、境界値データBVDのうち残りのビットは第2論理値で出力する。ここでは説明の便宜のために第1論理値を‘1’とし、第2論理値を‘0’とする。しかし、第1論理値と第2論理値とが逆に設定されうることは当業者には明らかである。
前記の例で有効ビット決定部410は1110 0000を境界値データBVDとして出力する。有効ビットを‘1’で出力する有効ビット決定部410の構成が図5に図示されている。
図5を参照すれば、有効ビット決定部410は境界値BVがN個のビットよりなり、2で表現される場合、第1ないし第N−1論理和手段OR1、OR2〜OR N−1を具備する。ここでは境界値BVが8ビットよりなり、2で表現されると仮定する。
第1論理和手段OR1は、境界値BVのLSBである第1ビットBV1と第2ビットBV2とを論理和する。第2ないし第N−1論理和手段OR2、OR3〜ORN−1は境界値BVの第3ないし第NビットBV3、BV4〜BVNのうち対応する一つのビットをそれぞれ受信し、受信される第3ないし第NビットBV3、BV4〜BVNのうち一つのビットと以前論理和手段の出力とを論理和する。
境界値BVの第1ビットBV1が境界値データBVDのLSBである第1ビットBVD1として発生し、第1ないし第N−1論理和手段OR1、OR2、OR3〜ORN−1の出力がそれぞれ境界値データBVDの第2ないし第NビットBVD2、BVD2〜BVDNとして発生する。
すなわち、境界値BVの第1ビットBV1は境界値データBVDの第1ビットBVD1)として出力され、第1論理和手段OR1の出力は境界値データBVDの第2ビットBVD2として出力される。同様に、第N−1論理和手段ORN−1の出力は境界値データBVDの第NビットBVDNとして出力される。
図5の有効ビット決定部410は、境界値BVのN個のビットのうち一つのビットの上位ビットに対応する境界値データBVDのビットはいずれも1として出力する。
境界値データに応答してデータが飽和されたか否かを判断する検出信号を発生する(1120段階)。1120段階は飽和検出部420の動作に対応する。
飽和検出部420は、データDATAを受信し、境界値データBVDに応答してデータDATAが飽和しているか否かを判断し、判断結果を検出信号SATDETとして発生する。検出信号SATDETはデータDATAが飽和していれば第1論理値を有し、データDATAが飽和していなければ第2論理値を有する。
飽和検出部420は、入力されるデータDATAのビットのうち境界値データBVDの有効ビットに対応する上位ビットを抽出してデータDATAが飽和しているか否かを判断する。
前記の例のように、有効ビットが上位3ビットであると仮定し、入力されたデータDATAが96(二進数で0110 0000)であると仮定する。すると、飽和検出部420は、データDATAの上位3ビットの011だけを利用してデータDATAが飽和しているか否かを判断する。飽和如何を判断する原理は次の通りである。
データDATAの最上位ビットが第1論理値の場合、境界値データBVDの有効ビットに対応するデータDATAのビットのうち一つのビットでも第2論理値であればデータDATAは飽和されたものである。
図6は、データが飽和しているか否かを判断する例を示す図である。図6を参照すれば、境界値データBVDの有効ビットに対応するデータDATAのビットが111である場合にデータDATAは飽和していない。したがって、検出信号SATDETは第2論理値、すなわち、‘0’を出力する。
境界値データBVDの有効ビットに対応するデータDATAのビットが110である場合にデータDATAは飽和している。したがって、検出信号SATDETは第1論理値、すなわち、‘1’を出力する。
データDATAの最上位ビットが第2論理値である場合、境界値データBVDの有効ビットに対応するデータDATAのビットのうち一つのビットでも第1論理値であればデータDATAは飽和されたものである。図6を参照すれば、境界値データBVDの有効ビットに対応するデータDATAのビットが000である場合にデータDATAは飽和していない。したがって、検出信号SATDETは第2論理値、すなわち、‘0’を出力する。
境界値データBVDの有効ビットに対応するデータDATAのビットが001である場合にデータDATAは飽和している。したがって、検出信号SATDETは第1論理値、すなわち、‘1’を出力する。
前記の例で、データDATAが0110 0000であり、境界値データBVDの有効ビットに対応するビットが‘011’であるためにデータDATAは飽和している。
図7は、図4の飽和検出部を示すブロック図である。
図7を参照すれば、飽和検出部420はデータDATAがM個のビットで構成される場合、第1ないし第M−1インバータI1、I2〜IM−1、第1ないし第M−1検出信号発生部DS1、DS2〜DSM−1、負数論理和手段NOR、正数論理和手段POR及び選択手段710を具備する。
第1ないし第M−1インバータI1、I2〜IM−1は、LSBである第1ビットないし第M−1ビットD1、D2〜DM−1の論理値を反転させる。第1ないし第M−1検出信号発生部DS1、DS2〜DSM−1はデータDATAの第1ないし第M−1ビットD1、D2〜DM−1のうち対応するビット及び対応するビットの反転論理値を受信し、境界値データBVDの対応するビットを受信して第1ないし第M−1正数値検出信号PDS1、PDS2〜PDSM−1及び第1ないし第M−1負数値検出信号NDS1、NDS2〜NDSM−1を発生する。
第1ないし第M−1検出信号発生部DS1、DS2〜DSM−1はそれぞれデータDATAの第1ないし第M−1ビットD1、D2〜DM−1のうち対応するビットと境界値データBVDの対応するビットとを論理積して正数値検出信号PDS1、PDS2〜PDSM−1を発生する正数論理積手段PAND1、PAND2〜PANDM−1及び、データDATAの第1ないし第M−1ビットD1、D2〜DM−1のうち対応するビットの反転論理値と境界値データBVDの対応するビットとを論理積して負数値検出信号NDS1、NDS2〜NDSM−1を発生する負数論理積手段NEG_AND1、NEG_AND2〜NEG_ANDM−1を具備する。
負数論理和手段NEG_ORは、第1ないし第M−1負数値検出信号NDS1、NDS2〜NDSM−1を論理和して第1信号S1を出力する。正数論理和手段PORは、第1ないし第M−1正数値検出信号PDS1、PDS2〜PDSM−1を論理和して第2信号S2を出力する。
選択手段710は、データDATAの最上位ビットが第1論理値であれば第1信号S1を検出信号SATDETとして出力し、データDATAの最上位ビットが第2論理値であれば第2信号S2を検出信号SATDETとして出力する。
前記の例のように入力されるデータDATAが0110 0000であると仮定し、境界値データBVDが1110 0000であると仮定する。データDATA及び境界値データBVDが飽和検出部420に入力されれば負数論理和手段NEG_ORの出力である第1信号は‘0’として出力され、正数論理和手段PORの出力である第2信号S2は‘1’として出力される。データDATAの最上位ビットが第2論理値、すなわち、‘0’であるので、選択手段710は第2信号S2を検出信号SATDETとして出力する。
入力されるデータDATAのビット数と境界値データBVDのビット数とは相違なることがある。すなわち、データDATAのビット数が境界値データBVDのビット数より多いことがある。この場合には、境界値データBVDの最上位ビットに‘1’を追加してデータDATAのビット数と境界値データBVDのビット数とを一致させる。
図7の飽和検出部420は、論理積手段と論理和手段及びインバータだけで構成される。したがって、従来の飽和処理装置300のように2個の比較器330、340を利用するのと比較してさらに簡単な回路構成を有する。従来の比較器330、340は普通NxN減算器を利用して実現されるために、論理積手段、論理和手段、インバータ反転論理和手段などその回路構成が非常に複雑である。
境界値データに応答して最大限界値及び最小限界値を発生する(1130段階)。1130段階の動作は限界値発生部430の動作に対応する。
図8は、限界値発生部を示す回路図である。
図8を参照すれば、限界値発生部430は、境界値データBVDに応答して最大限界値UPLIMIT及び最小限界値LOLIMITを出力する。最大限界値UPLIMITは境界値データBVDを反転した値であり、最小限界値LOLIMITは境界値データBVDと同じ値である。
最大限界値UPLIMIT及び最小限界値LOLIMITは、データDATAが飽和している場合にデータDATAの代わりに出力される値である。例えば、境界値BVが32(二進数で0010 0000)であれば境界値データBVDは1110 0000である。最大限界値UPLIMITは、境界値データBVDを反転した0001 1111(十進数で31)であり、最小限界値LOLIMITは、境界値データBVDと同じ1110 0000(十進数で−32)である。
従来の飽和処理処置300では、境界値BVから1を減算する演算及び2の補数を求める演算(境界値BVの各ビットを反転した後で+1をする)を行わねばならないために、非常に複雑でありかつ回路構成も複雑である。しかし、本発明では、有効ビット決定部410から出力される境界値データBVDを利用して簡単に最大限界値UPLIMIT及び最小限界値LOLIMITを求めることができる。
限界値発生部430の回路構成も簡単である。すなわち、限界値発生部430は、境界値データBVDのそれぞれのビットを反転して最大限界値UPLIMITとして出力する第1ないし第NインバータIL1、IL2〜ILNを具備する。最小限界値LOLIMITは境界値データBVDをそのまま出力すればよい。
データ及び検出信号に応答してデータ、最大限界値及び最小限界値のうち一つを出力する(1140段階)。1140段階の動作は選択部440の動作に対応する。
図9は、選択部の動作を説明する図である。図9を参照すれば、選択部440はデータDATAの最上位ビットが第1論理値であり、検出信号SATDETが第1論理値であれば最小限界値LOLIMITを出力する。
検出信号SATDETが第1論理値、すなわち、1であればデータDATAは飽和された状態であり、データDATAの最上位ビットが第1論理値であればデータDATAが負数であるため、選択部440は、最小限界値LOLIMITを飽和処理装置400の結果SATRSTとして出力する。
選択部440はデータDATAの最上位ビットが第2論理値であり、検出信号SATDETが第1論理値であれば最大限界値UPLIMITを出力する。検出信号SATDETが第1論理値、すなわち、1であればデータDATAは飽和された状態であり、データDATAの最上位ビットが第2論理値であればデータDATAが正数であるため、選択部440は最大限界値UPLIMITを飽和処理装置400の結果SATRSTとして出力する。
選択部440は、検出信号SATDETが第2論理値であればデータDATAを出力する。データDATAの最上位ビットが第1論理値であるか、または第2論理値であるかに関係なく検出信号SATDETが第2論理値、すなわち、‘0’であれば、データDATAは飽和されなかったことを意味する。したがって、データDATAは飽和処理装置400によって有効に表現され、選択部440はデータDATAを飽和処理装置400の結果SATRSTとして出力する。
図10Aは、従来の飽和処理装置の動作速度をテストした結果を示す図である。
図10Bは、本発明の飽和処理装置の動作速度をテストした結果を示す図である。
図10A及び図10Bは、データDATAが18ビットであり、境界値BVが16ビットである場合に対し飽和処理装置を構成したものである。図10Aには、減算演算(Decrement)、補数演算(Complement)、比較演算(Compare)及び選択演算(MuxRes)の動作速度及び回路が占める面積が示されている。図10Bには、有効ビット決定(BitDecision)、飽和検出(SatDect)、限界値発生(LimGen)及び選択(MuxSel)の動作速度及び回路が占める面積が示されている。本発明による飽和処理装置が、回路が占める面積及び動作速度の点でさらに優秀なことが分かる。
以上のように図面及び明細書で最適の実施例が開示された。ここで特定の用語が使われたが、これは単に本発明を説明するための目的で使われたものであって、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使われたものではない。したがって、当業者ならばこれにより多様な変形及び均等な他の実施例が可能であるという点を理解できる。したがって、本発明の真の保護範囲は特許請求の範囲の技術的思想により定められねばならない。
本発明はデータ演算を行うデジタル信号処理処置に利用することができる。
16ビットデータの飽和処理機能を示す図表である。 飽和処理装置の飽和処理機能をソフトウェアで具現した例を説明する図である。 飽和処理装置のハードウェア構成を示すブロック図である。 本発明による飽和処理装置を示すブロック図である。 図4の有効ビット決定部を示す回路図である。 データが飽和されるか否かを判断する例を示す図である。 図4の飽和検出部を示すブロック図である。 限界値発生部を示す回路図である。 選択部の動作を説明する図面である。 Aは、従来の飽和処理装置の動作速度をテストした結果を示す図であり、Bは、本発明の飽和処理装置の動作速度をテストした結果を示す図である。 本発明の実施例による飽和動作実行方法を示すフローチャートである。
符号の説明
410 有効ビット決定部
420 飽和検出部
430 限界値発生部
440 選択部
400 飽和処理装置

Claims (20)

  1. 境界値に応答して入力されるデータが飽和しているか否かを判断するための有効ビットに対する情報を有する境界値データを発生する有効ビット決定部と、
    前記データを受信し、前記境界値データに応答して前記データが飽和しているか否かを判断し、判断結果を検出信号として発生する飽和検出部と、
    前記境界値データに応答して最大限界値と最小限界値とを出力する限界値発生部と、
    前記データ及び前記検出信号に応答して前記データ、前記最大限界値及び前記最小限界値のうちの一つを出力する選択部と、を具備することを特徴とするデジタルデータの飽和処理装置。
  2. 前記境界値は、
    複数のビットで表示され、前記飽和処理装置が装着されるプロセッサの複数のビットで表示されるデータバス幅より小さな値であることを特徴とする請求項1に記載のデジタルデータの飽和処理装置。
  3. 前記有効ビットは、
    前記飽和処理装置が装着されるプロセッサがKビットのデータバスを具備して前記境界値が2で表現される場合、
    前記境界値データの上位K−A(K、Aは正の整数であり、K≧A)ビット部分であることを特徴とする請求項2に記載のデジタルデータの飽和処理装置。
  4. 前記有効ビット決定部は、
    前記境界値が2で表現される場合、前記境界値データのうち前記有効ビットは第1論理値で、前記境界値データのうち残りのビットは第2論理値で出力することを特徴とする請求項3に記載のデジタルデータの飽和処理装置。
  5. 前記有効ビット決定部は、
    前記境界値がN個のビットよりなり、2(N、Aは正の整数であり、N≧A)で表現される場合、
    第1ないし第N−1論理和手段を具備し、
    前記第1論理和手段は前記境界値の最下位ビットである第1ビットと第2ビットとを論理和し、
    前記第2ないし第N−1論理和手段は、
    前記境界値の第3ないし第Nビットのうち対応する一つのビットをそれぞれ受信し、受信される第3ないし第Nビットのうち一つのビットと以前論理和手段の出力とを論理和し、
    前記境界値の第1ビットが前記境界値データの最下位ビットである第1ビットとして発生し、前記第1ないし第N−1論理和手段の出力がそれぞれ前記境界値データの第2ないし第Nビットとして発生することを特徴とする請求項1に記載のデジタルデータの飽和処理装置。
  6. 前記飽和検出部は、
    入力される前記データのビットのうち前記境界値データの有効ビットに対応する上位ビットを抽出して前記データが飽和されたか否かを判断し、
    前記データの最上位ビットが第1論理値である場合、前記境界値データの有効ビットに対応する前記データのビットのうち一つのビットでも第2論理値であれば前記データが飽和していると判断し、
    前記データの最上位ビットが第2論理値である場合、前記境界値データの有効ビットに対応する前記データのビットのうち一つのビットでも第1論理値であれば前記データが飽和していると判断することを特徴とする請求項1に記載のデジタルデータの飽和処理装置。
  7. 前記検出信号は、
    前記データが飽和していれば第1論理値を有し、前記データが飽和していなければ第2論理値を有することを特徴とする請求項6に記載のデジタルデータの飽和処理装置。
  8. 前記飽和検出部は、
    前記データがM個のビットで構成される場合、
    最下位ビットの第1ビットないし第M−1ビットの論理値を反転させる第1ないし第M−1インバータと、
    前記データの第1ないし第M−1ビットのうち対応するビット及び前記対応するビットの反転論理値を受信し、前記境界値データの対応するビットを受信して第1ないし第M−1正数値検出信号及び第1ないし第M−1負数値検出信号を発生する第1ないし第M−1検出信号発生部と、
    前記第1ないし第M−1負数値検出信号を論理和して第1信号を出力する負数論理和手段と、
    前記第1ないし第M−1正数値検出信号を論理和して第2信号を出力する正数論理和手段と、
    前記データの最上位ビットが第1論理値であれば前記第1信号を前記検出信号として出力し、前記データの最上位ビットが第2論理値であれば前記第2信号を前記検出信号として出力する選択手段と、を具備することを特徴とする請求項1に記載のデジタルデータの飽和処理装置。
  9. 前記第1ないし第M−1検出信号発生部はそれぞれ、
    前記データの第1ないし第M−1ビットのうち対応するビットと前記境界値データの対応するビットとを論理積して前記正数値検出信号を発生する正数論理積手段と、
    前記データの第1ないし第M−1ビットのうち対応するビットの反転論理値と前記境界値データの対応するビットとを論理積して前記負数値検出信号を発生する負数論理積手段と、を具備することを特徴とする請求項8に記載のデジタルデータの飽和処理装置。
  10. 前記最大限界値は、
    前記境界値データを反転した値であり、前記最小限界値は前記境界値データと同じ値であることを特徴とする請求項1に記載のデジタルデータの飽和処理装置。
  11. 前記限界値発生部は、
    前記境界値データのそれぞれのビットを反転して前記最大限界値として出力する第1ないし第Nインバータを具備することを特徴とする請求項1に記載のデジタルデータの飽和処理装置。
  12. 前記選択部は、
    前記データの最上位ビットが第1論理値であり、前記検出信号が第1論理値であれば最小限界値を出力し、前記データの最上位ビットが第2論理値であり、前記検出信号が第1論理値であれば最大限界値を出力し、
    前記検出信号が第2論理値であれば前記データを出力することを特徴とする請求項1に記載のデジタルデータの飽和処理装置。
  13. 入力されるデータが飽和しているか否かを判断する飽和処理装置の飽和動作実行方法において、
    (a)境界値に応答して前記データが飽和しているか否かを判断するための有効ビットに対する情報を有する境界値データを発生する段階と、
    (b)前記境界値データに応答して前記データが飽和しているか否かを判断する検出信号を発生する段階と、
    (c)前記境界値データに応答して最大限界値及び最小限界値を発生する段階と、
    (d)前記データ及び前記検出信号に応答して前記データ、前記最大限界値及び前記最小限界値のうちの一つを出力する段階と、を具備することを特徴とする飽和処理装置の飽和動作実行方法。
  14. 前記境界値は、
    複数のビットで表示され、前記飽和処理装置が装着されるプロセッサの複数のビットで表示されるデータバス幅より小さな値であることを特徴とする請求項13に記載の飽和処理装置の飽和動作実行方法。
  15. 前記有効ビットは、
    前記飽和処理装置が装着されるプロセッサがKビットのデータバスを具備して前記境界値が2で表現される場合、
    前記境界値データの上位K−Aビット部分であることを特徴とする請求項13に記載の飽和処理装置の飽和動作実行方法。
  16. 前記境界値データは、
    前記境界値が2で表現される場合、前記境界値データのうち前記有効ビットは第1論理値として、前記境界値データのうち残りのビットは第2論理値として出力されることを特徴とする請求項15に記載の飽和処理装置の飽和動作実行方法。
  17. 前記(a)段階は、
    前記境界値がN個のビットよりなり、2(N、Aは正の整数、N≧A)で表現される場合、
    (a1)前記境界値の最下位ビットである第1ビットと第2ビットとを論理和して前記境界値の第1ビットは前記境界値データの最下位ビットである第1ビットとして出力し、前記論理和結果は前記境界値データの第2ビットとして出力する段階と、
    (a2)前段階の論理和結果と前記境界値の対応するビットとを論理和して前記境界値データの第2ないし第Nビットを出力する段階と、を具備することを特徴とする請求項13に記載の飽和処理装置の飽和動作実行方法。
  18. 前記(b)段階は、
    入力される前記データのビットのうち前記境界値データの有効ビットに対応する上位ビットを抽出して前記データが飽和しているか否かを判断し、
    前記データの最上位ビットが第1論理値である場合、前記境界値データの有効ビットに対応する残りの有効ビットのうち一つのビットでも第2論理値であれば前記データが飽和していると判断し、
    前記データの最上位ビットが第2論理値である場合、前記境界値データの有効ビットに対応する残りの有効ビットのうち一つのビットでも第1論理値であれば前記データが飽和していると判断することを特徴とする請求項13に記載の飽和処理装置の飽和動作実行方法。
  19. 前記最大限界値は、
    前記境界値データを反転した値であり、前記最小限界値は前記境界値データと同じ値であることを特徴とする請求項13に記載の飽和処理装置の飽和動作実行方法。
  20. 前記(d)段階は、
    前記データの最上位ビットが第1論理値であり、前記検出信号が第1論理値であれば最小限界値を出力し、前記データの最上位ビットが第2論理値であり前記検出信号が第1論理値であれば最大限界値を出力し、
    前記検出信号が第2論理値であれば前記データを出力することを特徴とする請求項13に記載の飽和処理装置の飽和動作実行方法。
JP2004051259A 2003-02-26 2004-02-26 デジタルデータの飽和処理装置 Pending JP2004259282A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0012042A KR100493053B1 (ko) 2003-02-26 2003-02-26 디지털 데이터의 포화 처리 장치

Publications (1)

Publication Number Publication Date
JP2004259282A true JP2004259282A (ja) 2004-09-16

Family

ID=32866967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004051259A Pending JP2004259282A (ja) 2003-02-26 2004-02-26 デジタルデータの飽和処理装置

Country Status (4)

Country Link
US (1) US20040167949A1 (ja)
JP (1) JP2004259282A (ja)
KR (1) KR100493053B1 (ja)
CN (1) CN100530076C (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095713A1 (en) * 2004-11-03 2006-05-04 Stexar Corporation Clip-and-pack instruction for processor
GB2580130B (en) 2018-12-21 2021-02-24 Graphcore Ltd Overflow condition

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4722066A (en) * 1985-07-30 1988-01-26 Rca Corporation Digital signal overflow correction apparatus
US5422805A (en) * 1992-10-21 1995-06-06 Motorola, Inc. Method and apparatus for multiplying two numbers using signed arithmetic
US5448509A (en) * 1993-12-08 1995-09-05 Hewlett-Packard Company Efficient hardware handling of positive and negative overflow resulting from arithmetic operations
US5959636A (en) * 1996-02-23 1999-09-28 Intel Corporation Method and apparatus for performing saturation instructions using saturation limit values
US5835782A (en) * 1996-03-04 1998-11-10 Intel Corporation Packed/add and packed subtract operations
US5870320A (en) * 1997-06-23 1999-02-09 Sun Microsystems, Inc. Method for reducing a computational result to the range boundaries of a signed 16-bit integer in case of overflow
US6341296B1 (en) * 1998-04-28 2002-01-22 Pmc-Sierra, Inc. Method and apparatus for efficient selection of a boundary value
US6529930B1 (en) * 1998-11-16 2003-03-04 Hitachi America, Ltd. Methods and apparatus for performing a signed saturation operation
US6499046B1 (en) * 1999-05-20 2002-12-24 International Business Machines Corporation Saturation detection apparatus and method therefor

Also Published As

Publication number Publication date
CN1530823A (zh) 2004-09-22
US20040167949A1 (en) 2004-08-26
KR20040076707A (ko) 2004-09-03
CN100530076C (zh) 2009-08-19
KR100493053B1 (ko) 2005-06-02

Similar Documents

Publication Publication Date Title
US5862065A (en) Method and circuit for fast generation of zero flag condition code in a microprocessor-based computer
CN111936965A (zh) 随机舍入逻辑
US9448767B2 (en) Three-term predictive adder and/or subtracter
US6151612A (en) Apparatus and method for converting floating point number into integer in floating point unit
US6629118B1 (en) Zero result prediction
JP2004259282A (ja) デジタルデータの飽和処理装置
KR100627993B1 (ko) 3입력 분할 가산기
US6269385B1 (en) Apparatus and method for performing rounding and addition in parallel in floating point multiplier
US5635858A (en) Zero-stopping incrementers
JP2018097864A (ja) リーディングゼロ予想
JP2509279B2 (ja) 浮動小数点数一固定小数点数変換装置
US20080071852A1 (en) Method to perform a subtraction of two operands in a binary arithmetic unit plus arithmetic unit to perform such a method
JPH0511980A (ja) 桁あふれ検出方式とその回路
JP5549743B2 (ja) 10進絶対値加算器
KR100567643B1 (ko) 제로 판정 신호 생성 회로
US6683530B1 (en) Method and apparatus for performing a floating point compare operation
JP2991788B2 (ja) 復号器
EP0356940B1 (en) Finite state machine
JP2907276B2 (ja) 演算処理装置
JPH05216622A (ja) 比較装置
US6041341A (en) Method and circuit for adding operands of multiple size
JP3471577B2 (ja) ビット連続数検出装置
JP3482102B2 (ja) 絶対値距離演算回路
KR100192968B1 (ko) 라운딩 오프 에러를 최소화하기 위한 라운딩 장치
KR100226757B1 (ko) 병렬제산 연산장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091124