(57)【要約】【課題】従来と比較して複数桁の数値演算を高速化する。【解決手段】複数桁の数値演算を行う演算装置１は、２つの数値データを下位桁側から１６ビットごとに分担して加算する演算処理部３ａ，３ｂを備える。各演算処理部３ａ，３ｂは、他の演算処理部３ａ，３ｂでの下位桁側の数値データの加算による桁上がりを無いものとして演算を行う演算回路４ａ，４ｃと、桁上がりを有るものとして演算を行う演算回路４ｂ，４ｄと、他の演算処理部３ａ，３ｂでの下位桁側の数値データの加算による桁上がり結果に基づいて演算回路４ａ，４ｃ及び演算回路４ｂ，４ｄの何れか一方の演算結果を選択するセレクタと、を有する。【選択図】図２
2008165493.tif 000002
【特許請求の範囲】
【請求項１】
複数桁の数値演算を行う演算装置であって、
２つの数値データを下位桁側から所定の単位桁数ごとに分担して加算する複数の演算手段を備え、
各演算手段は、
下位桁側の数値データの加算による桁上がりを無いものとして加算を行う第１の演算回路と、
前記桁上がりを有るものとして加算を行う第２の演算回路と、
下位桁側の数値データについての他の前記演算手段での加算による桁上がり結果に基づいて、前記第１の演算回路及び前記第２の演算回路の何れか一方の加算結果を選択するセレクタと、を有することを特徴とする演算装置。
【請求項２】
請求項１記載の演算装置において、
前記複数の演算処理部は、２つの数値データを下位桁側から前記単位桁数ごとに所定の順番で分担し、それぞれ複数回の加算を行うことを特徴とする演算装置。
【請求項３】
請求項１または２記載の演算装置において、
前記セレクタは、
当該セレクタを有する前記演算手段が最も下位桁側の数値データの加算を行う場合に、前記第１の演算回路の加算結果を選択することを特徴とする演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数桁の数値演算を行う演算装置に関する。
【背景技術】
【０００２】
従来、数値演算を行う演算装置として、複数の演算手段を備えるものがある。このような演算装置においては、動作時間を高速化する観点から、パイプライン処理を用いており、前段の演算手段と後段の演算手段とを並行して駆動させるようになっている（例えば、特許文献１参照）。
【特許文献１】特開平１１−２４２４３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述の演算装置では、前段の演算手段での演算結果が供給されないと、後段の演算手段での演算が行えない。そのため、例えば、複数桁の数値データを分割し、下位桁のデータに対する加算処理と上位桁のデータに対する加算処理とを前後段の演算手段で並行して行わせようとしても、前段の演算手段による下位桁の加算処理によって桁上がりの有無が確定しないと、後段の演算手段による上位桁の加算処理を開始することができないため、下位桁の加算処理の終了を待つ必要が生じる分、演算処理が遅延してしまう。
【０００４】
本発明の課題は、従来と比較して複数桁の数値演算を高速化することのできる演算装置を提供することである。
【課題を解決するための手段】
【０００５】
請求項１記載の発明は、複数桁の数値演算を行う演算装置であって、
２つの数値データを下位桁側から所定の単位桁数ごとに分担して加算する複数の演算手段を備え、
各演算手段は、
下位桁側の数値データの加算による桁上がりを無いものとして加算を行う第１の演算回路と、
前記桁上がりを有るものとして加算を行う第２の演算回路と、
下位桁側の数値データについての他の前記演算手段での加算による桁上がり結果に基づいて、前記第１の演算回路及び前記第２の演算回路の何れか一方の加算結果を選択するセレクタと、を有することを特徴とする。
【０００６】
請求項２記載の発明は、請求項１記載の演算装置において、
前記複数の演算処理部は、２つの数値データを下位桁側から前記単位桁数ごとに所定の順番で分担し、それぞれ複数回の加算を行うことを特徴とする。
【０００７】
請求項３記載の発明は、請求項１または２記載の演算装置において、
前記セレクタは、
当該セレクタを有する前記演算手段が最も下位桁側の数値データの加算を行う場合に、前記第１の演算回路の加算結果を選択することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、下位桁側の数値データの加算による桁上がりを無いもの／有るものとしてそれぞれ演算を行い、当該下位桁側の数値データの加算による桁上がり結果に基づいて何れか一方の加算結果を選択するので、下位桁側の数値データの加算処理の終了前に桁上がりの有る場合と無い場合との両方の場合について予め上位桁側の数値データの加算を開始しておき、下位桁側の数値データの加算が終了した後に、何れか一方の正しい加算結果を選択することができる。従って、パイプライン処理を用いる従来の場合と異なり、上位桁側の数値データの加算を開始するのに下位桁側の数値データの加算処理の終了を待つ必要がない分、複数桁の数値演算を高速化することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について、図を参照しながら説明する。
［１．  演算装置の構成］
図１に、本発明に係る演算装置１の外観図を示す。
この図に示すように、演算装置１は、パソコンＰのＵＳＢ（Universal Serial Bus）ポートＰ１に対して着脱可能に装着される装置であり、パソコンＰとの間でデータ通信をするようになっている。
【００１０】
この演算装置１は、図２に示すように、Ｆレジスタ（Firstレジスタ）１１及びＳレジスタ（Secondレジスタ）１２を備えている。なお、図２では、上述のＵＳＢポートＰ１との通信部について、図示を省略している。
【００１１】
これらＦレジスタ１１，Ｓレジスタ１２は、演算対象となる２５６ビット（２進数で２５６桁）の数値データ「Ａ０」〜「Ａ２５５」，「Ｂ０」〜「Ｂ２５５」を１６ビット（１６桁）ごとに分割して格納するようになっている。このうち、Ｆレジスタ１１は、デュアルポートメモリとなっており、Ａポートを介して演算対象の数値データ「Ａ０」〜「Ａ２５５」の入力を受けるとともに、Ｂポートを介して加算結果の数値データ「Ｓ０」〜「Ｓ２５５」の入力を受けることが可能となっている。なお、本実施の形態におけるＦレジスタ１１，Ｓレジスタ１２のデータバスは１６ビットとなっている。また、図２では、図示の便宜上、Ｆレジスタ１１をＡポートとＢポートとに分けて、それぞれ図示している。また、以下の説明においては、数値データ「Ａ０」〜「Ａ２５５」，「Ｂ０」〜「Ｂ２５５」等の番号が小さいほど、そのデータの桁数が小さいこととする。
【００１２】
これらＦレジスタ１１，Ｓレジスタ１２には、アドレスカウンタ１０が接続されている。
このアドレスカウンタ１０は、クロック信号をカウントすることにより、Ｆレジスタ１１，Ｓレジスタ１２におけるデータの格納領域を下位桁側から順に指定する等の処理を行うようになっている。
【００１３】
またＦレジスタ１１，Ｓレジスタ１２には、１６ビットのデータバスを有する分配器１３，１４及びフリップフロップ２ａ〜２ｄを介して、演算処理部３ａ，３ｂが接続されている。
【００１４】
ここで、分配器１３，１４は、Ｆレジスタ１１，Ｓレジスタ１２から出力される数値データをフリップフロップ２ａ〜２ｄに送信するものである。また、フリップフロップ２ａ〜２ｄは、分配器１３，１４を介して入力される数値データをラッチして演算処理部３ａ，３ｂに送信するものである。なお、これらフリップフロップ２ａ〜２ｄのうち、フリップフロップ２ａ，２ｃと、フリップフロップ２ｂ，２ｄとの各組には、上述のアドレスカウンタ１０から交互にＨｉｇｈ信号が入力されるようになっている。より詳細には、アドレスカウンタ１０がＦレジスタ１１，Ｓレジスタ１２における最下位の１６ビットの数値データ「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」の格納領域を指定する場合にはフリップフロップ２ａ，２ｃに対してＨｉｇｈ信号が入力され、最下位から２番目の１６ビットの数値データ「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」の格納領域を指定する場合にはフリップフロップ２ｂ，２ｄに対してＨｉｇｈ信号が入力されるようになっている。これにより、演算処理部３ａ，３ｂは、２つの数値データ「Ａ０」〜「Ａ２５５」，「Ｂ０」〜「Ｂ２５５」を下位桁側から１６桁（１６ビット）ごとに交互に分担して受信することとなる。
【００１５】
また、演算処理部３ａ，３ｂは互いに略同様の構成を有しており、演算処理部３ａは演算回路４ａ，４ｂを、演算処理部３ｂは演算回路４ｃ，４ｄを備えている。
【００１６】
これら演算回路４ａ〜４ｄは、演算処理を行う回路であり、本実施の形態においては、最大２クロック分の時間で１６ビットの加算処理を行う加算回路となっている。
【００１７】
より詳細には、各演算回路４ａ〜４ｄは、「Ａ１１」端子及び「Ｂ１１」端子から入力される２つの数値データと「Ｃｉｎ」端子から入力される「０」または「１」の数値データとを加算し、「Ｓ１１」端子及び「Ｃｏｕｔ」端子から加算結果を出力するようになっている。このうち、「Ｓ１１」端子から出力される加算結果は、１６ビットのデータ量で表現可能な数値データとなっている。一方、「Ｃｏｕｔ」端子から出力される加算結果は、１６ビットのデータ量では表現することのできない１７ビット目の数値データ、即ち、桁上がりの有無を示す１ビットの信号（以下、桁上がり信号とする）となっている。
【００１８】
ここで、演算回路４ａ，４ｂの「Ａ１１」端子，「Ｂ１１」端子には、上述のフリップフロップ２ａ，２ｃが接続されており、同一の組み合わせの数値データ、例えば「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」の組み合わせの数値データがそれぞれ入力されるようになっている。同様に、演算回路４ｃ，４ｄの「Ａ１１」端子，「Ｂ１１」端子には、上述のフリップフロップ２ｂ，２ｄが接続されており、同一の組み合わせの数値データ、例えば「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」の組み合わせの数値データがそれぞれ入力されるようになっている。
【００１９】
一方、演算回路４ａ，４ｃの「Ｃｉｎ」端子には、「０」の数値データが入力され、演算回路４ｂ，４ｄの「Ｃｉｎ」端子には、「１」の数値データが入力されるようになっている。
これにより、演算回路４ｂ，４ｄは、演算回路４ａ，４ｃよりも「１」だけ多く数値データを加算するようになっている。
【００２０】
ここで、各演算回路４ａ〜４ｄは、図３に示すように、従来より公知の１ビットの加算器４０ａ〜４０ｐを１６段に接続することで構成されている。これら各加算器４０ａ〜４０ｐは「Ａ」端子から入力される１ビットの数値データと、「Ｂ」端子から入力される１ビットの数値データと、「Ｃｉｎ」端子から入力される１ビットの桁上がり信号とを加算し、加算結果として１ビットの数値データを「Ｓ」端子から、１ビットの桁上がり信号を「Ｃｏｕｔ」端子から、それぞれ出力するようになっている。なお、各加算器４０ａ，４０ｂ，…の「Ｃｏｕｔ」端子から出力される桁上がり信号は、次段の加算器４０ｂ，４０ｃ，…の「Ｃｉｎ」端子に入力されるようになっている。
【００２１】
以上の各演算回路４ａ〜４ｄのうち、演算回路４ａ，４ｂの「Ｓ１１」端子には、図２に示すように、セレクタ５ａ，６を介して上述のＦレジスタ１１のＢポートが接続されており、「Ｃｏｕｔ」端子にはセレクタ５ｂが接続されている。
【００２２】
また、演算回路４ｃ，４ｄの「Ｓ１１」端子には、セレクタ５ｃ，６を介して上述のＦレジスタ１１のＢポートが接続されており、「Ｃｏｕｔ」端子にはセレクタ５ｄが接続されている。
【００２３】
これらセレクタ５ａ〜５ｄ及びセレクタ６のうち、セレクタ５ａは、セレクタ５ｄを介して入力される桁上がり信号の有無（「１」または「０」）によって演算回路４ａ，４ｂの「Ｓ１１」端子からの各数値データの何れか一方をセレクタ６に出力するようになっている。具体的には、桁上がり信号が「１」の場合には、セレクタ５ａは演算回路４ｂの「Ｓ１１」端子からの数値データをセレクタ６に出力し、桁上がり信号が「０」の場合には、演算回路４ａの「Ｓ１１」端子からの数値データをセレクタ６に出力するようになっている。
【００２４】
また、セレクタ５ｂは、セレクタ５ｄを介して入力される桁上がり信号の有無によって演算回路４ａ，４ｂの「Ｃｏｕｔ」端子からの各桁上がり信号の何れか一方をセレクタ５ｃ，５ｄに出力するようになっている。具体的には、セレクタ５ｄを介して入力される桁上がり信号が「１」の場合には、セレクタ５ｂは演算回路４ｂの「Ｃｏｕｔ」端子からの桁上がり信号をセレクタ５ｃ，５ｄに出力し、セレクタ５ｄを介して入力される桁上がり信号が「０」の場合には、演算回路４ａの「Ｃｏｕｔ」端子からの桁上がり信号をセレクタ５ｃ，５ｄに出力するようになっている。
【００２５】
また、セレクタ５ｃは、セレクタ５ｂを介して入力される桁上がり信号の有無によって演算回路４ｃ，４ｄの「Ｓ１１」端子からの各数値データの何れか一方をセレクタ６に出力するようになっている。具体的には、桁上がり信号が「１」の場合には、セレクタ５ｃは演算回路４ｄの「Ｓ１１」端子からの数値データをセレクタ６に出力し、桁上がり信号が「０」の場合には、演算回路４ｃの「Ｓ１１」端子からの数値データをセレクタ６に出力するようになっている。
【００２６】
また、セレクタ５ｄは、セレクタ５ｂを介して入力される桁上がり信号の有無によって演算回路４ｃ，４ｄの「Ｃｏｕｔ」端子からの各桁上がり信号の何れか一方を、アンド回路１５を介してセレクタ５ａ，５ｂに出力するようになっている。具体的には、セレクタ５ｂを介して入力される桁上がり信号が「１」の場合には、セレクタ５ｄは演算回路４ｄの「Ｃｏｕｔ」端子からの桁上がり信号をセレクタ５ａ，５ｂに出力し、セレクタ５ｂを介して入力される桁上がり信号が「０」の場合には、演算回路４ｃの「Ｃｏｕｔ」端子からの桁上がり信号をセレクタ５ａ，５ｂに出力するようになっている。なお、このアンド回路１５には上述のアドレスカウンタ１０が接続されており、セレクタ５ａ，５ｂが演算回路４ａ，４ｂでの最初の加算結果を選択するタイミングでは「０」（Low）の信号、これ以降のタイミングでは「１」（High）の信号がアドレスカウンタ１０から入力されるようになっている。
【００２７】
また、セレクタ６は、セレクタ５ａ，５ｃからの各数値データの何れか一方をＦレジスタ１１のＢポートに出力するようになっている。
【００２８】
このセレクタ６と、上述のＦレジスタ１１のＢポートとには、アドレスカウンタ１６が接続されている。このアドレスカウンタ１６は、クロック信号をカウントすることにより、Ｆレジスタ１１におけるデータの格納領域を下位データの領域から順に指定する等の処理を行うようになっている。
【００２９】
［２．  演算装置の動作］
続いて、演算装置１の動作について、図面を参照しながら説明する。図４は、演算装置１の動作を説明するための概念図である。
【００３０】
この図に示すように、まず、パソコンＰのＵＳＢポートＰ１から加算対象となる２つの数値データ「Ａ０」〜「Ａ２５５」，「Ｂ０」〜「Ｂ２５５」が送信されると、一方の数値データ「Ａ０」〜「Ａ２５５」はＦレジスタ１１に、他方の数値データ「Ｂ０」〜「Ｂ２５５」はＳレジスタ１２に格納される。
【００３１】
次に、アドレスカウンタ１０からの信号に対応してＦレジスタ１１，Ｓレジスタ１２における最下位の１６ビットの数値データ「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」が読み出され、分配器１３，１４及びフリップフロップ２ａ，２ｃを介して演算処理部３ａに送信されると、演算回路４ａ，４ｂがこれらの数値データに対する加算処理を開始する（ステップＳ１）。このとき、「Ｃｉｎ」端子への入力値の違いにより、演算回路４ｂでは演算回路４ａよりも「１」だけ多く数値データが加算される。但し、後述のように、ここでの演算結果としては、常に演算回路４ａでの演算結果が使用される。
【００３２】
次に、アドレスカウンタ１０からの信号に対応してＦレジスタ１１，Ｓレジスタ１２における最下位から２番目の１６ビットの数値データ「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」が読み出され、分配器１３，１４及びフリップフロップ２ｂ，２ｄを介して演算処理部３ｂに送信されると、演算回路４ｃ，４ｄがこれらの数値データに対する加算処理を開始する（ステップＳ２）。このとき、「Ｃｉｎ」端子への入力値の違いにより、演算回路４ｄでは演算回路４ｃよりも「１」だけ多く数値データが加算される。つまり、演算回路４ｃでは、最下位の１６ビットの数値データ「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」の加算による桁上がりを無いものとして最下位から２番目の１６ビットの数値データ「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」の加算が行われ、演算回路４ｄでは、最下位の１６ビットの数値データ「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」の加算による桁上がりを有るものとして最下位から２番目の１６ビットの数値データ「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」の加算が行われる。
【００３３】
そして、最下位の１６ビットの数値データ「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」についての演算回路４ａ，４ｂによる加算処理が終了すると、セレクタ５ａにより演算回路４ａ，４ｂの何れか一方の「Ｓ１１」端子からの数値データ「Ｓ０」〜「Ｓ１５」がセレクタ６を介してＦレジスタ１１に送信され、アドレスカウンタ１６からの信号に対応してＦレジスタ１１の最下位１６ビットの格納領域に記憶される（ステップＳ３）。また、セレクタ５ｂにより演算回路４ａ，４ｂの何れか一方の「Ｃｏｕｔ」端子からの桁上がり信号がセレクタ５ｃ、５ｄに送信される。但し、このタイミングはセレクタ５ａ，５ｂが演算回路４ａ，４ｂでの最初の加算結果を選択するタイミングであり、アンド回路１５には「０」（Low）の信号が入力されるため、ここではセレクタ５ａ，５ｂからは、演算回路４ａからの数値データ及び桁上がり信号、つまり数値データ「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」よりも下位桁での加算による桁上がりを無いものとして予め行った加算処理の結果が送信される。
【００３４】
また、このときアドレスカウンタ１０からの信号に対応してＦレジスタ１１，Ｓレジスタ１２における最下位から３番目の１６ビットの数値データ「Ａ３２」〜「Ａ４７」，「Ｂ３２」〜「Ｂ４７」が読み出され、分配器１３，１４及びフリップフロップ２ａ，２ｃを介して演算処理部３ａに送信されると、演算回路４ａ，４ｂがこれらの数値データに対する加算処理を開始する。このとき、上記のステップＳ２と同様に、演算回路４ａでは、最下位から２番目の１６ビットの数値データ「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」の加算による桁上がりを無いものとして最下位から３番目の１６ビットの数値データ「Ａ３２」〜「Ａ４７」，「Ｂ３２」〜「Ｂ４７」の加算が行われ、演算回路４ｂでは、最下位から２番目の１６ビットの数値データ「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」の加算による桁上がりを有るものとして最下位から３番目の１６ビットの数値データ「Ａ３２」〜「Ａ４７」，「Ｂ３２」〜「Ｂ４７」の加算が行われる。
【００３５】
そして、最下位から２番目の１６ビットの数値データ「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」についての演算回路４ｃ、４ｄによる加算処理が終了すると、セレクタ５ｃにより演算回路４ｃ，４ｄの何れか一方の「Ｓ１１」端子からの数値データ「Ｓ１６」〜「Ｓ３１」がセレクタ６を介してＦレジスタ１１に送信され、アドレスカウンタ１６からの信号に対応してＦレジスタ１１の最下位から２番目の１６ビットの格納領域に記憶される（ステップＳ４）。また、セレクタ５ｄにより演算回路４ｃ，４ｄの何れか一方の「Ｃｏｕｔ」端子からの桁上がり信号がセレクタ５ａ、５ｂに送信される。
【００３６】
より具体的には、セレクタ５ｂからの桁上がり信号が「０」の場合には、演算回路４ｃからの加算結果、つまり、最下位の１６ビットの数値データ「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」での演算による桁上がりを無いものとして予め行った加算処理の結果がセレクタ５ｃ，５ｄから送信される。一方、セレクタ５ｂからの桁上がり信号が「１」の場合には、演算回路４ｄからの加算結果、つまり、最下位の１６ビットの数値データ「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」での演算による桁上がりを有るものとして予め行った加算処理の結果がセレクタ５ｃ，５ｄから送信される。
【００３７】
また、このときアドレスカウンタ１０からの信号に対応してＦレジスタ１１，Ｓレジスタ１２における最下位から４番目の１６ビットの数値データ「Ａ４８」〜「Ａ６３」，「Ｂ４８」〜「Ｂ６３」が読み出され、分配器１３，１４及びフリップフロップ２ｂ，２ｄを介して演算処理部３ｂに送信されると、演算回路４ｃ，４ｄがこれらの数値データに対する加算処理を開始する。このとき、上記のステップＳ２と同様に、演算回路４ｃでは、最下位から３番目の１６ビットの数値データ「Ａ３２」〜「Ａ４７」，「Ｂ３２」〜「Ｂ４７」の加算による桁上がりを無いものとして最下位から４番目の１６ビットの数値データ「Ａ４８」〜「Ａ６３」，「Ｂ４８」〜「Ｂ６３」の加算が行われ、演算回路４ｄでは、最下位から３番目の１６ビットの数値データ「Ａ３２」〜「Ａ４７」，「Ｂ３２」〜「Ｂ４７」の加算による桁上がりを有るものとして最下位から４番目の１６ビットの数値データ「Ａ４８」〜「Ａ６３」，「Ｂ４８」〜「Ｂ６３」の加算が行われる。
【００３８】
そして、最下位から３番目の１６ビットの数値データ「Ａ３２」〜「Ａ４７」，「Ｂ３２」〜「Ｂ４７」についての演算回路４ａ，４ｂによる加算処理が終了すると、セレクタ５ａにより演算回路４ａ，４ｂの何れか一方の「Ｓ１１」端子からの数値データ「Ｓ３２」〜「Ｓ４７」がセレクタ６を介してＦレジスタ１１に送信され、アドレスカウンタ１６からの信号に対応してＦレジスタ１１の最下位から３番目の１６ビットの格納領域に記憶される（ステップＳ５）。また、セレクタ５ｂにより演算回路４ａ，４ｂの何れか一方の「Ｃｏｕｔ」端子からの桁上がり信号がセレクタ５ｃ、５ｄに送信される。
【００３９】
より具体的には、セレクタ５ｄからの桁上がり信号が「０」の場合には、演算回路４ａからの加算結果、つまり、最下位から２番目の１６ビットの数値データ「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」での演算による桁上がりを無いものとして予め行った加算処理の結果がセレクタ５ａ，５ｂから送信される。一方、セレクタ５ｄからの桁上がり信号が「１」の場合には、演算回路４ｂからの加算結果、つまり、最下位から２番目の１６ビットの数値データ「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」での演算による桁上がりを有るものとして予め行った加算処理の結果がセレクタ５ａ，５ｂから送信される。
【００４０】
以降、演算装置１は、同様の処理を繰り返すことにより２つの数値データ「Ａ０」〜「Ａ２５５」，「Ｂ０」〜「Ｂ２５５」を加算して加算結果をＦレジスタ１１に記憶した後、Ｆレジスタ１１からパソコンＰに対して加算結果を送信することにより、動作を終了する。
【００４１】
以上の演算装置１によれば、図２や図４に示したように、下位桁側の数値データ、例えば「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」の加算による桁上がりを無いもの／有るものとしてそれぞれ演算を行い、当該下位桁側の数値データの加算による桁上がり結果、より詳細には「Ｃｏｕｔ」端子から出力される桁上がり信号に基づいて何れか一方の加算結果を選択するので、下位桁側の数値データ「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」の加算処理の終了前に、桁上がりの有る場合と無い場合との両方の場合について予め上位桁側の数値データ「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」の加算を開始しておき、下位桁側の数値データ「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」の加算が終了した後に、上位桁側の数値データ「Ａ１６」〜「Ａ３１」，「Ｂ１６」〜「Ｂ３１」の加算結果として何れか一方の正しい加算結果を選択することができる。従って、パイプライン処理を用いる従来の場合と異なり、上位桁側の数値データの加算を開始するのに下位桁側の数値データの加算処理の終了を待つ必要がない分、複数桁の数値演算を高速化することができる。
【００４２】
また、演算処理部３ａ，３ｂが２つの数値データを下位桁側から１６ビットごとに交互に分担し、それぞれ複数回の加算を行うので、所望の桁数の数値演算を行う場合において、数値演算を高速化することができる。
【００４３】
また、演算処理部３ａにおける演算回路４ａ，４ｂの最初の加算結果を選択するタイミングでは、セレクタ５ａ，５ｂは演算回路４ａの加算結果、つまり、数値データ「Ａ０」〜「Ａ１５」，「Ｂ０」〜「Ｂ１５」よりも下位桁での加算による桁上がりを無いものとして予め行った加算処理の結果を選択するので、正確な数値演算を行うことができる。
【００４４】
なお、本発明は上記実施形態に限定されることなく、本発明の主旨を逸脱しない範囲において種々の改良及び設計の変更をおこなっても良い。
【００４５】
例えば、本発明に係る演算装置をパソコンＰに着脱可能な装置として説明したが、パソコンや関数電卓、ＰＤＡ（Personal Digital Assistance）などの電子機器に内蔵されるものとしても良い。
【図面の簡単な説明】
【００４６】
【図１】本発明に係る演算装置の概略構成を示す外観図である。。
【図２】本発明に係る演算装置の概略構成を示す回路図である。
【図３】演算処理部の回路図である。
【図４】本発明に係る演算装置の動作を説明するための概念図である。
【符号の説明】
【００４７】
１          演算装置
３ａ，３ｂ  演算処理部（演算手段）
４ａ，４ｃ  演算回路（第１の演算回路）
４ｂ，４ｄ  演算回路（第２の演算回路）
５ａ〜５ｄ  セレクタ
【図１】
2008165493.tif 000003
【図２】
2008165493.tif 000004
【図３】
2008165493.tif 000005
【図４】
2008165493.tif 000006