(57)【要約】【課題】少ないハードウェア規模で高速で除算処理を行うこと。【解決手段】入力制御部１は、除数の正負判定結果を出力制御部５へ出力する一方、除数をＳＢ化して出力する。有効ビット数判定部２は、ＳＢ化除数を入力して、そのビット数を判定して、演算テーブル部３および演算処理部４へ出力する。演算テーブル部３は、ＳＢ化除数と有効ビット数とを入力し、有効ビット数が有効ビット内である場合、その演算テーブルを参照して、ＳＢ化除数の値に対応した商とテーブル使用フラグとを出力する。一方、演算処理部４は、ＳＢ化除数と有効ビット数とを入力して、有効ビット数が有効ビット数にないと判定した場合、除算処理を行う。出力制御部５は、演算テーブル部３からのテーブル使用フラグに基づき、演算テーブル部３からのテーブル読出し結果あるいは演算処理部４からの演算処理結果を商として出力する。【選択図】図１
2008021189.tif 000002
【特許請求の範囲】
【請求項１】
予め固定された自然数の被除数を除数により除算する除算装置であって、
前記除数が正か負かを判定すると共に、前記判定結果に従って前記除数をストレートバイナリ化し、ストレートバイナリ化した前記ＳＢ化除数と、前記正負判定結果を出力する入力制御部と、
前記ＳＢ化除数の有効ビット数を判定する有効ビット数判定部と、
所定ビット数までのＳＢ化除数と、所定ビット数までのＳＢ化除数により前記被除数を除算した結果である商とを予め対応させて記憶した演算テーブルを備え、前記入力制御部からの前記ＳＢ化除数と、前記有効ビット数判定部によって判定された前記ＳＢ化除数の有効ビット数とを入力し、前記ＳＢ化除数の有効ビット数が前記所定ビット数までである場合、前記演算テーブルを参照して前記入力したＳＢ化除数に対応する商を出力する演算テーブル部と、
前記入力制御部からの前記ＳＢ化除数と、前記有効ビット数判定部によって判定された前記ＳＢ化除数の有効ビット数とを入力し、前記ＳＢ化除数の有効ビット数が前記所定のビット数より大きい場合、前記入力したＳＢ化除数により前記被除数を除算して商を出力する演算処理部と、
前記演算テーブル部からの前記商、または前記演算処理部からの前記商を入力して、前記入力制御部からの前記正負判定結果が負を示している場合、前記商を反転処理して出力する出力制御部と、
を有する除算装置。
【請求項２】
請求項１記載の除算装置において、
前記演算テーブル部は、前記ＳＢ化除数の有効ビット数が前記所定ビット数までである場合、前記演算テーブルを参照して前記入力したＳＢ化除数に対応する商を出力すると共に、前記演算テーブルを参照して前記入力したＳＢ化除数に対応する商を出力したことを示すテーブル使用情報を出力し、
前記出力制御部は、前記演算テーブル部からの前記テーブル使用情報と、前記演算テーブル部からの前記商あるいは前記演算処理部からの前記商とを入力して、前記テーブル使用情報が前記演算テーブルを参照して前記入力したＳＢ化除数に対応する商を出力したことを示している場合には、前記演算テーブル部からの前記商を選択する一方、前記テーブル使用情報が前記演算テーブルを参照して前記入力したＳＢ化除数に対応する商を出力したことを示していない場合には、前記演算処理部からの前記商を選択し、前記入力制御部からの前記正負判定結果が負を示している場合、前記商を反転処理して出力する、除算装置。
【請求項３】
予め固定された自然数の被除数を除数により除算する除算方法であって、
前記除数が正か負かを判定すると共に、前記判定結果に従って前記除数をストレートバイナリ化し、ストレートバイナリ化した前記ＳＢ化除数と、前記正負判定結果を出力するステップ、
前記ＳＢ化除数の有効ビット数を判定するステップと、
所定ビット数までのＳＢ化除数と、所定ビット数までのＳＢ化除数により前記被除数を除算した結果である商とを予め対応させて記憶した演算テーブルを備え、前記入力制御部からの前記ＳＢ化除数と、前記有効ビット数判定部によって判定された前記ＳＢ化除数の有効ビット数とを入力し、前記ＳＢ化除数の有効ビット数が前記所定ビット数までである場合、前記演算テーブルを参照して前記入力したＳＢ化除数に対応する商を出力するステップと、
前記入力制御部からの前記ＳＢ化除数と、前記有効ビット数判定部によって判定された前記ＳＢ化除数の有効ビット数とを入力し、前記ＳＢ化除数の有効ビット数が前記所定のビット数より大きい場合、前記入力したＳＢ化除数により前記被除数を除算して商を出力するステップと、
前記演算テーブル部からの前記商、または前記演算処理部からの前記商を入力して、前記入力制御部からの前記正負判定結果が負を示している場合、前記商を反転処理して出力するステップと、
を有する除算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予め固定された自然数を被除数として、除算演算を行う除算装置および除算方法に関するものである。
【背景技術】
【０００２】
近年、画像処理等の演算に用いられる除算は、演算の中でも特に処理が重いため、高速処理を実現するためにＣＰＵのコプロセッサとして搭載されているのが主流である。例えば、被除算および除算係数の組み合わせをＲＯＭ化することで高速化を実現する除算装置および除算方法がある（例えば、特許文献１参照。）。
【特許文献１】特許第２５５４８１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上述の従来の減算装置では、被除算および除算係数の組み合わせ全ての要素を予めＲＯＭ化するために、膨大なハードウエアが必要となる、という問題がある。
【０００４】
そこで、本発明は、少ないハードウェア規模でも高速で除算処理を実行することができる除算装置および除算方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、本発明の除算装置は、予め固定された自然数を被除数として除数に対し除算演算を行う除算装置であって、前記除数が正か負かを判定すると共に、前記判定結果に従って前記除数をストレートバイナリ化し、ストレートバイナリ化した前記ＳＢ化除数と、前記正負判定結果を出力する入力制御部と、前記ＳＢ化除数の有効ビット数を判定する有効ビット数判定部と、所定ビット数までのＳＢ化除数と、所定ビット数までのＳＢ化除数により前記被除数を除算した結果である商とを予め対応させて記憶した演算テーブルを備え、前記入力制御部からの前記ＳＢ化除数と、前記有効ビット数判定部によって判定された前記ＳＢ化除数の有効ビット数とを入力し、前記ＳＢ化除数の有効ビット数が前記所定ビット数までである場合、前記演算テーブルを参照して前記入力したＳＢ化除数に対応する商を出力する演算テーブル部と、前記入力制御部からの前記ＳＢ化除数と、前記有効ビット数判定部によって判定された前記ＳＢ化除数の有効ビット数とを入力し、前記ＳＢ化除数の有効ビット数が前記所定のビット数より大きい場合、前記入力したＳＢ化除数により前記被除数を除算して商を出力する演算処理部と、前記演算テーブル部からの前記商、または前記演算処理部からの前記商を入力して、前記入力制御部からの前記正負判定結果が負を示している場合、前記商を反転処理して出力する出力制御部と、を有する。
【０００６】
なお、上記発明において、前記演算テーブル部は、前記ＳＢ化除数の有効ビット数が前記所定ビット数までである場合、前記演算テーブルを参照して前記入力したＳＢ化除数に対応する商を出力すると共に、前記演算テーブルを参照して前記入力したＳＢ化除数に対応する商を出力したことを示すテーブル使用情報を出力し、前記出力制御部は、前記演算テーブル部からの前記テーブル使用情報と、前記演算テーブル部からの前記商あるいは前記演算処理部からの前記商とを入力して、前記テーブル使用情報が前記演算テーブルを参照して前記入力したＳＢ化除数に対応する商を出力したことを示している場合には、記演算テーブル部からの前記商を選択する一方、前記テーブル使用情報が前記演算テーブルを参照して前記入力したＳＢ化除数に対応する商を出力したことを示していない場合には、前記演算処理部からの前記商を選択し、前記入力制御部からの前記正負判定結果が負を示している場合、前記商を反転処理して出力する、ようにしても勿論よい。
【発明の効果】
【０００７】
本発明によれば、所定ビット数までのＳＢ化除数と所定ビット数までのＳＢ化除数により固定の被除数を除算したことを示す商とを予め対応させた演算テーブルを備え、ＳＢ化除数の有効ビット数が所定ビット数までである場合、演算テーブルを使用して商を出力する一方、ＳＢ化除数の有効ビット数が所定のビット数より大きい場合、ＳＢ化除数により被除数を除算して商を出力するようにしたので、除数の有効ビット数が所定の有効ビット範囲であれば、テーブルからの読み出しにより除算演算を行うことなく商を簡単に求めることが可能となり、小規模ハードウェアで高速除算することができる。
【発明を実施するための最良の形態】
【０００８】
以下、添付図面を参照して、この発明を用いた除算装置における最良の実施の形態を詳細に説明する。
【０００９】
図１は、本発明に係る除算装置の実施の形態の構成例を示すブロック図である。
【００１０】
図１において、この除算装置は、入力制御部１と、有効ビット数判定部２と、演算テーブル部３と、演算処理部４と、出力制御部５とを有している。
【００１１】
図２は、図1に示す入力制御部１の構成例を示すブロック図である。
図において、入力制御部１は、正負判定部１１と、ＳＢ化部１２とを有している。
【００１２】
図３は、図１に示す演算処理部４の構成例を示すブロック図である。
【００１３】
図において、演算処理部４は、初期残データ算出部４１と、減算部４２と、次被除数生成部４３と、結果判定部４４とを有している。
【００１４】
図５は、図１に示す出力制御部５の構成例を示すブロック図である。
【００１５】
図において、出力制御部５は、ＳＢ商判定部５１と、２の補数化部５２とを有している。
【００１６】
次に動作を説明する。
【００１７】
まず、入力制御部１へ除数が入力されると、図２に示すように、正負判定部１１が除数の正負判定を行って、その結果を出力制御部５およびＳＢ化部１２へ出力する一方、ＳＢ化部１２が入力された除数を、その正負判定結果を参照してストレートバイナリ（ＳＢ）化して有効ビット数判定部２および演算テーブル部３へ出力する。
【００１８】
図５は、入力制御部１の処理手順の一例を示すフローチャートである。
【００１９】
まず、入力制御部１へ除数が入力されると、入力制御部１の正負判定部１１は除数の正負判定を行う(Ｓ５１０)。その結果、正と判断した場合、ＳＢ化部１２はＳＢ化除数として入力された除数を出力する一方、正負判定部１１は除数正負判定として正として出力する(Ｓ５２０)。一方、入力された除数を負と判断した場合、ＳＢ化部１２は、除数のＳＢ化を行うため除数のビット反転に1を足したものを出力する一方、入力制御部１は除数正負判定として負を出力する(Ｓ５３０)。なお、この除数正負判定が負であれば、最終出力の際に、ビット反転したＳＢ化除数を負の除数に戻すことができる。
【００２０】
次に、有効ビット数判定部２では、入力制御部１から出力されたＳＢ化除数を入力して、その有効ビット数を判定して、演算テーブル部３および演算処理部４へ出力する。具体的には、入力制御部１から出力されたＳＢ化除数を入力とし、ＳＢ化除数のＭＳＢから０の値が１に変化するbit数を検出し、それ以降のビット数を有効ビット数として出力する。
【００２１】
一方、演算テーブル部３は、１ビットから所定ビット数までのＳＢ化除数の値と、固定値の自然数である被除数を予めそのＳＢ化除数により除算しておいた商とを対応させた演算テーブル３１を予めＲＯＭやＲＡＭ等のメモリに記憶しており、入力制御部１からのＳＢ化除数と、有効ビット数判定部２からの有効ビット数とを入力して、有効ビット数が所定ビット数内であると判定した場合、その演算テーブル３１を参照して、ＳＢ化除数の値より商であるテーブル値と、その演算テーブル３１を使用して商を求めたか否かを示すテーブル使用情報とを出力する。なお、有効ビット数が所定ビット数内である場合、算処理部４はＳＢ化除数により被除数を除算処理せず、演算テーブル部３が演算テーブル３１を参照してテーブル値を商として出力する一方、有効ビット数が所定ビット数より大きい場合、演算テーブル部３はテーブル値を出力せず、演算処理部４がＳＢ化除数により被除数を除算処理して演算処理結果を商として出力する場合には、有効ビット数が所定ビット数内であるか否かにより、演算テーブル部３か演算処理部４のいずれか一方のみからテーブル値または演算処理結果が出力制御部５へ入力しないので、この場合には、テーブル使用情報は省略しても良い。
【００２２】
図６は、演算テーブル部３に格納される演算テーブル３１の具体的を示す図である。
【００２３】
図６に示す演算テーブル３１は、
（１)除数が８ビット、
（２)被除数が１０進法で１６３８４（ｄｅｃ）の１５ビット、
（３）ＳＢ化除数の有効ビット数を４ビット、
とした場合の演算テーブル３１の一例を示している。
【００２４】
この場合、演算テーブル３１は、ビット数が１ビットから少なくとも所定のビット数である４ビットまでの各ＳＢ化除数の値（図６中、“indt”）と、その所定ビット数までのＳＢ化除数により、ＳＢ化した被除数（図６中、“divdt”）である１６３８４（ｄｅｃ）を除算したことを示す商と、この演算テーブル３１を使用して商を出力したことを示すテーブル使用情報とを予め対応させて記憶している。
【００２５】
具体的には、ＳＢ化除数の値（図６中、“indt”）が０の場合、商は０、ＳＢ化除数の値（図６中、“indt”）が１の場合、商はＳＢ化被除数（図６中、“divdt"）である１６３８４（ｄｅｃ）、ＳＢ化除数の値（図６中、“indt”）が２の場合、商はＳＢ化被除数（図６中、“divdt"）である１６３８４（ｄｅｃ）を１６進表記で１ビット右にシフト（図６中、“＞＞"）した値、ＳＢ化除数の値（図６中、“indt”）が３の場合、商は１６進表記で１５５５（hex）、ＳＢ化除数の値（図６中、“indt”）が４の場合、商はＳＢ化被除数（図６中、“divdt"）である１６３８４（ｄｅｃ）を１６進表記で２ビット右にシフトした値、…ということを示している。
【００２６】
このようにＳＢ化除数によりＳＢ化被除数（図６中、“divdt"）である１６３８４（ｄｅｃ）を除算した値である商が、ＳＢ化被除数（図６中、“divdt"）の所定のビット数である４ビット、すなわちＳＢ化除数（図６中、“indt"）が０〜１５まで記憶されている。
【００２７】
このように、演算テーブル３１にＳＢ化除数の所定ビット数の範囲に対応した商を予め記憶しておき、ＳＢ化除数の有効ビット数が所定ビット数の範囲にある場合、除算演算を行うのではなく、ＳＢ化除数に対応した商を読み出すことにより、小規模ハードウェアで高速除算に対応した除算を実現することができると共に、ＳＢ化除数の有効ビット数としてＳＢ化除数の値が１に変化するbit数を判定し、シフト型除算にて行われる繰り返し減算とビットシフトの回数を減らすようにしたので、除算の高速化が可能となる。
【００２８】
なお、本実施の形態１では、演算テーブル３１に必ず記憶する値（本発明にとり必須はないという意味である。）ではないが、ＳＢ化除数の有効ビット数が所定ビット数の範囲にある場合だけでなく、さらに、シフトレジスタの右シフトによって簡単に商が求められるＳＢ化除数が１６、３２、６４、１２８、…等の２の乗数の場合にも、それぞれ、被除数（図６中、“divdt"）である１６３８４（ｄｅｃ）を１６進表記で４，５，６，７ビット右にシフトした値を記憶するようにしている。これにより、ＳＢ化除数の有効ビット数が所定ビット数の範囲にある場合でなくても、ＳＢ化除数が１６、３２、６４、１２８、…等の２の乗数の場合には、演算処理部４による除算演算を経ることなく、簡単に商を求めることができる。
【００２９】
一方、演算処理部４は、入力制御部１からのＳＢ化除数と、有効ビット数判定部２からの有効ビット数とを入力して、ＳＢ化除数の有効ビット数が所定ビット数にないと判定した場合、すなわち演算テーブル部３が演算テーブル３１を参照して出力しない場合、除算処理を行う。なお、この除算処理は、汎用的なものであるが、以下、その一例を説明しておく。
【００３０】
図７は、演算処理部４における除算処理の一例を示すフローチャートである。
【００３１】
演算処理部４では、まず、初期残データ算出部４１が、入力制御部１からのＳＢ化除数と、有効ビット数判定部２からのＳＢ化除数の有効ビット数とを入力して、演算開始時の初期残データを算出して、次被除数生成部４３へ出力する。ここで、初期残データとは、演算開始時の被除数データから、減算部４２で用いる次被除数を除いた被除数データのことをいう。つまり、ＳＢ化除数の有効ビット数をｐビット、固定値である被除数のビット数ｑビットとすると、初期残データ算出部４１は、最終的な演算結果の商であるｒｅｓｕｌｔ[ｍ：０]と、残データremain［ｍ−１：０]へ代入する演算開始時の初期残データのビット列ｍを、以下の式（１）により算出して、次被除数生成部４３へ出力する(Ｓ７１０)。
【００３２】
ｍ＝ｑ−ｐ…式（１）
【００３３】
次に、次被除数生成部４３は、後述するように、初期残データ算出部４１からの初期残データと、減算部４２の出力結果であるｓｕｂｔｒａｃｔ、結果判定部４４からのｓｕｂｔｒａｃｔ正負判定とから次被除数を生成し、減算部４２へ出力する。つまり、次被除数生成部４３は、被除数のＭＳＢから上位ｐビット分のデータを代入した被除数［ｑ−１：ｍ]を、次被除数とし、減算部４２へ出力する(Ｓ７２０)。
【００３４】
減算部４２では、次被除数を現被除数とし、現被除数からＳＢ化除数（ｉｎｄｔ）を減算した値をｓｕｂｔｒａｃｔとし、そのｓｕｂｔｒａｃｔを結果判定部４４へ出力する(Ｓ７３０)。
【００３５】
結果判定部４４では、減算部４２からのｓｕｂｔｒａｃｔが０より小さいか否かを判断し（Ｓ７４０）、ｓｕｂｔｒａｃｔの正負判定結果として次被除数生成部４３へ出力する。
【００３６】
次被除数生成部４３は、結果判定部４４からのｓｕｂｔｒａｃｔ正負判定結果に基づき、ｓｕｂｔｒａｃｔが０より大きい場合（Ｓ７４０“ｎｏ”）、すなわちｓｕｂｔｒａｃｔが正の場合、演算結果であるｒｅｓｕｌｔ[ｍ]の値を１とすると共に(Ｓ７５０)、次の被除数である次被除数決定のための準備データｐｒｅ＿ｄａｔａ ＝ ｓｕｂｔｒａｃｔとする(Ｓ７５５)。
【００３７】
その一方、次被除数生成部４３は、ｓｕｂｔｒａｃｔが０より小さい場合、すなわちｓｕｂｔｒａｃｔの正負判定結果が負の場合は（Ｓ７４０“ＹＥＳ”）、演算結果であるｒｅｓｕｌｔ[ｍ]の値を０とし(Ｓ７６５)、次の被除数である次被除数決定のための準備データｐｒｅ＿ｄａｔａ ＝ 現被除数とする(Ｓ７６５)。
【００３８】
次に、次被除数生成部４３は、初期残データのビット列ｍが ０であるか否かの判定を行い(Ｓ７７０)、ｍ＝０でない場合(Ｓ７７０“ｎｏ”)、初期残データのビット列ｍを次にシフトとした後(Ｓ７８０)、次被除数を以下の式（２）により求め(Ｓ７９０)、Ｓ７３０へ戻る。
【００３９】
次被除数 ＝ [ ｐｒｅ＿ｄａｔａ, remain[ｍ] ]…式（２）
【００４０】
なお、上記式（２）式の[,]は、ビットの連結を意味している。すなわち、[a,b]は、aの値をＭＳＢ側へ、bの値をＬＳＢ側へそれぞれ連結することを意味する。
【００４１】
以上のようなステップ７３０〜７９０までの処理を、残データのビット列ｍが０になるまで繰り返し行う。
【００４２】
そして、残データのビット列ｍが０になった場合(Ｓ７７０“ＹＥＳ”)、次被除数生成部４３は、演算結果であるresult[ｍ：０]を、演算処理結果として出力制御部５へ出力する(Ｓ７９５)。
【００４３】
出力制御部５では、入力制御部１からの除数正負判定結果と、演算テーブル部３からのテーブル使用情報と、演算テーブル部３からのテーブル読出し結果あるいは演算処理部４からの演算処理結果とを入力して、商を出力する。
【００４４】
図８は、出力制御部５の処理手順の一例を示すフローチャートである。
【００４５】
出力制御部５では、まず、図４に示すように、ＳＢ商選択部５１が演算テーブル部３からのテーブル使用情報が１（演算テーブル３１使用）か０（演算テーブル３１不使用）かを判断する(Ｓ８１０)。そして、テーブル使用情報が1（演算テーブル使用）の場合(Ｓ８１０“ＹＥＳ”)、ＳＢ商選択部５１は、演算結果として演算テーブル部３からのテーブル読出し結果を選択する一方(Ｓ８２０)、テーブル判定が０（演算テーブル不使用）の場合は、演算結果として演算処理部４からの演算処理結果を選択する(Ｓ８３０)。
【００４６】
次に、出力制御部５の２の補数化部５２は、入力制御部１からの除数正負判定結果に基づいて除数正負判定が負か否かを判断し(Ｓ８４０)、除数正負判定が負の場合(Ｓ８４０“ＹＥＳ”)、演算結果を負に戻す処理を行うため、２の補数処理、すなわち演算結果のビット反転に1を足して商とする(Ｓ８５０)。その一方、除数正負判定が正の場合(Ｓ８４０“ｎｏ”)、出力制御部５は、演算結果をそのまま商として出力する(Ｓ８６０)。
【００４７】
図９は、図６に示す演算テーブル３１をテーブル算出に用いた場合における本実施の形態の除算装置の動作やデータのタイミング等を示すタイミングチャートである。
【００４８】
図９において、横方向は、時間であり、１サイクル目（１サイクル時間はＴである。）、２サイクル目、３サイクル目、…、Ｘサイクル目、Ｘ＋１サイクル目、…、Ｘ＋１０サイクル目、Ｘ＋１１サイクル目までを示している。
【００４９】
また、図９において、縦方向は、本実施の形態の除算装置における動作やデータを、上から処理の順番に示しており、まず、本装置に入力する除数が、ＳＢ化除数となり、除数正負判定、除数ビット幅、演算テーブル出力、テーブル使用判定、初期残データのビット列ｍ、ｒｅｍａｉｎ[９：０]、被除数[５：０]、ｓｕｂｔｒａｃｔ[１５：０]、ｐｒｅ＿ｄａｔａ、ｒｅｓｕｌｔ[１０：０]、商[１５：０]を示す。
【００５０】
ここで、１サイクル目〜３サイクル目までと、Ｘ＋１１サイクル目は、テーブル判定情報の１（演算テーブル使用）に示すように、演算テーブル部３により演算テーブル３１を用いたテーブル読出し結果が演算結果として用いられている。これに対し、Ｘサイクル目からＸ＋９サイクル目は、テーブル判定情報の０（演算テーブル不使用）に示すように、演算処理部４の演算結果を用いる。
【００５１】
なお、ここでは、ＳＢ化除数の有効ビット数ｐは５ビットで、演算テーブル３１は５ビットまでのＳＢ化除数に対応する商を記憶し、原則として、５ビットの有効ビット数によりテーブル使用・不使用を判断するようにしている。また、被除数が１０進法の１６３８４（ｄｅｃ）で、そのビット数ｑは１５ビットとして説明する。
【００５２】
さて、１サイクル目、２サイクル目、３サイクル目、…には、それぞれ、ＳＢ化除数として、０ｘ０、０ｘ１、０ｘ２が入力するが（１６進数表記）、Ｘサイクル目では、ＳＢ化除数に０ｘ１４が入力され、Ｘ＋１０サイクル目まで除数に０ｘ１４が入力される。
【００５３】
除数の０ｘ１４は、有効ビット数の４ビットに当てはまらないため、この例では、演算処理部４が演算処理を行った結果が商として用いられることになる。
【００５４】
つまり、まず、Ｘサイクル目において、ＳＢ化除数が０ｘ１４で、その有効ビット数が５bitであり、被除数のビット数が１５ビットであるので、上記式（１）式を用いて、ｍ＝ｑ−ｐ、すなわち、ｍ＝１０となる。
【００５５】
被除数の１６３８４（ｄｅｃ）は、０ｘ４０００であることから、ｒｅｍａｉｎ［９：０］＝０ｘ０である。現被除数は、ＳＢ化除数が５ｂｉｔなので０ｘ１０、現被除数からＳＢ化除数を引いた値ｓｕｂｔｒａｃｔは、０ｘｆｆｆｃとなり、負の値をとる。そのため、次被除数を決定するための準備データｐｒｅ＿ｄａｔａは現被除数をそのまま用いる。その結果、ｒｅｓｕｌｔ［１０］＝０となる。
【００５６】
次に、ｘ＋１サイクル目において、ｍ＝９になり、次被除数は上記式（２）より、０ｘ２０、現被除数からＳＢ化除数を引いた値ｓｕｂｔｒａｃｔは、０ｘｃとなり、正の値をとるので、ｓｕｂｔｒａｃｔ正負判定は正となる。したがって、ｒｅｓｕｌｔ［９］＝１となる。
【００５７】
また、次被除数を決定するための準備データｐｒｅ＿ｄａｔａは、ｓｕｂｔｒａｃｔの値がそのまま利用されるため、０ｘｃを用いる。
【００５８】
次に、ｘ＋２サイクル目において、ｍ＝８になり、次被除数は、上記式（３）を用いて、０ｘ１８と算出できる。
【００５９】
その後は、ｍ＝０になるまで同一の計算を行い、ｍ＝０の時のｒｅｓｕｌｔの値を２の補数化することで、商が得られる。なお、この場合、除数が正なのでｒｅｓｕｌｔの値がそのまま商となる。
【００６０】
従って、本実施の形態の除算装置によれば、所定ビット数までのＳＢ化除数と所定ビット数までのＳＢ化除数により固定の被除数を除算した結果である商とを予め対応させて記憶した演算テーブル３１を備え、ＳＢ化除数の有効ビット数が所定ビット数までである場合、演算テーブル３１を使用して商を出力する一方、ＳＢ化除数の有効ビット数が所定のビット数より大きい場合、ＳＢ化除数により被除数を除算して商を出力するようにしたので、ＳＢ化除数の有効ビット数が所定の有効ビット範囲であれば、演算テーブル３１からの読み出しにより除算演算を行うことなく商を簡単に求めることが可能となり、小規模ハードウェアで高速除算することができる。
【００６１】
また、本実施の形態１では、演算テーブル３１には、１ビットから所定ビット数までのＳＢ化除数と、所定ビット数までのＳＢ化除数により固定の被除数を除算したことを示す商とを対応させて記憶するようにしたので、演算テーブル３１には、いわゆるシフト型除算にて繰り返し行われる除数全ビットの減算回数が多いビット数の短い除数のものを予め記憶するようにしたので、この点でも、シフト型除算にて除数全ビットで行われる繰り返し減算の回数を減らすことが可能となり、除算の高速化が可能となる。
【００６２】
特に、本実施の形態１では、図６に示すように、演算テーブル３１には、所定ビット数までのＳＢ化除数と所定ビット数までのＳＢ化除数により固定の被除数を除算したことを示す商だけでなく、ＳＢ化除数が８や、１６、３２、６４、１２８、…、等の２の乗数である場合にも、被除数を１ビットづつずらした値を予め記憶するようにしたので、ＳＢ化除数が２の乗数である場合も、演算テーブル３１からの読み出しにより除算演算を行うことなく商を簡単に求めることが可能となり、この点でも、小規模ハードウェアで高速除算することができる。
【００６３】
また、上記実施の形態１の説明では、演算テーブル部３が演算テーブル３１を使用してＳＢ化除数に対応した商のテーブル値を読み出した場合、テーブル使用情報を出力制御部５へ出力して、出力制御部５に演算テーブル３１の使用の有無を知らせるように説明したので、演算処理部３は、常にＳＢ化除数により被除数を除算してその結果を出力制御部５へ出力するようにしても勿論よい。この場合、出力制御部５は、演算テーブル部３よりテーブル使用情報として１（テーブル使用）が入力した場合には、演算処理部３からの演算処理結果が入力しても無視して演算テーブル部３からのテーブル値を選択するようにすれば良い。
【００６４】
なお、上述したように、有効ビット数が所定ビット数内である場合、演算処理部４はＳＢ化除数により被除数を除算処理せず、演算テーブル部３が演算テーブル３１を参照してテーブル値を商として出力する一方、有効ビット数が所定ビット数より大きい場合、演算テーブル部３はテーブル値を出力せず、演算処理部４がＳＢ化除数により被除数を除算処理して演算処理結果を商として出力する場合には、有効ビット数が所定ビット数内であるか否かにより、演算テーブル部３か演算処理部４のいずれか一方のみからテーブル値または演算処理結果が出力制御部５へ入力しないので、この場合には、テーブル使用情報を省略するようにしても良い。
【図面の簡単な説明】
【００６５】
【図１】本発明に係る除算装置の実施の形態の構  成例を示すブロック図である。
【図２】図1に示す入力制御部１の構成例を示すブロック図である。
【図３】図１に示す演算処理部４の構成例を示すブロック図である。
【図４】図１に示す出力制御部５の構成例を示すブロック図である。
【図５】入力制御部１の処理手順の一例を示すフローチャートである。
【図６】演算テーブル部３に格納される演算テーブル３１の具体的を示す図である。
【図７】演算処理部４における除算処理手順の一例を示すフローチャートである。
【図８】出力制御部５における出力処理手順の一例を示すフローチャートである。
【図９】図６に示す演算テーブル３１をテーブル算出に用いた場合における本実施の形態の除算装置のタイミング等を示すタイミングチャートである。
【符号の説明】
【００６６】
１  入力制御部
２  有効ビット数判定部
３  演算テーブル部
４  演算処理部
５  出力制御部
【図１】
2008021189.tif 000003
【図２】
2008021189.tif 000004
【図３】
2008021189.tif 000005
【図４】
2008021189.tif 000006
【図５】
2008021189.tif 000007
【図６】
2008021189.tif 000008
【図７】
2008021189.tif 000009
【図８】
2008021189.tif 000010
【図９】
2008021189.tif 000011