JP2008165493A - 演算装置 - Google Patents
演算装置 Download PDFInfo
- Publication number
- JP2008165493A JP2008165493A JP2006354394A JP2006354394A JP2008165493A JP 2008165493 A JP2008165493 A JP 2008165493A JP 2006354394 A JP2006354394 A JP 2006354394A JP 2006354394 A JP2006354394 A JP 2006354394A JP 2008165493 A JP2008165493 A JP 2008165493A
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- numerical data
- addition
- selector
- carry
- 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
Images
Abstract
【課題】従来と比較して複数桁の数値演算を高速化する。
【解決手段】複数桁の数値演算を行う演算装置1は、2つの数値データを下位桁側から16ビットごとに分担して加算する演算処理部3a,3bを備える。各演算処理部3a,3bは、他の演算処理部3a,3bでの下位桁側の数値データの加算による桁上がりを無いものとして演算を行う演算回路4a,4cと、桁上がりを有るものとして演算を行う演算回路4b,4dと、他の演算処理部3a,3bでの下位桁側の数値データの加算による桁上がり結果に基づいて演算回路4a,4c及び演算回路4b,4dの何れか一方の演算結果を選択するセレクタと、を有する。
【選択図】図2
【解決手段】複数桁の数値演算を行う演算装置1は、2つの数値データを下位桁側から16ビットごとに分担して加算する演算処理部3a,3bを備える。各演算処理部3a,3bは、他の演算処理部3a,3bでの下位桁側の数値データの加算による桁上がりを無いものとして演算を行う演算回路4a,4cと、桁上がりを有るものとして演算を行う演算回路4b,4dと、他の演算処理部3a,3bでの下位桁側の数値データの加算による桁上がり結果に基づいて演算回路4a,4c及び演算回路4b,4dの何れか一方の演算結果を選択するセレクタと、を有する。
【選択図】図2
Description
本発明は、複数桁の数値演算を行う演算装置に関する。
従来、数値演算を行う演算装置として、複数の演算手段を備えるものがある。このような演算装置においては、動作時間を高速化する観点から、パイプライン処理を用いており、前段の演算手段と後段の演算手段とを並行して駆動させるようになっている(例えば、特許文献1参照)。
特開平11−242436号公報
しかしながら、上述の演算装置では、前段の演算手段での演算結果が供給されないと、後段の演算手段での演算が行えない。そのため、例えば、複数桁の数値データを分割し、下位桁のデータに対する加算処理と上位桁のデータに対する加算処理とを前後段の演算手段で並行して行わせようとしても、前段の演算手段による下位桁の加算処理によって桁上がりの有無が確定しないと、後段の演算手段による上位桁の加算処理を開始することができないため、下位桁の加算処理の終了を待つ必要が生じる分、演算処理が遅延してしまう。
本発明の課題は、従来と比較して複数桁の数値演算を高速化することのできる演算装置を提供することである。
請求項1記載の発明は、複数桁の数値演算を行う演算装置であって、
2つの数値データを下位桁側から所定の単位桁数ごとに分担して加算する複数の演算手段を備え、
各演算手段は、
下位桁側の数値データの加算による桁上がりを無いものとして加算を行う第1の演算回路と、
前記桁上がりを有るものとして加算を行う第2の演算回路と、
下位桁側の数値データについての他の前記演算手段での加算による桁上がり結果に基づいて、前記第1の演算回路及び前記第2の演算回路の何れか一方の加算結果を選択するセレクタと、を有することを特徴とする。
2つの数値データを下位桁側から所定の単位桁数ごとに分担して加算する複数の演算手段を備え、
各演算手段は、
下位桁側の数値データの加算による桁上がりを無いものとして加算を行う第1の演算回路と、
前記桁上がりを有るものとして加算を行う第2の演算回路と、
下位桁側の数値データについての他の前記演算手段での加算による桁上がり結果に基づいて、前記第1の演算回路及び前記第2の演算回路の何れか一方の加算結果を選択するセレクタと、を有することを特徴とする。
請求項2記載の発明は、請求項1記載の演算装置において、
前記複数の演算処理部は、2つの数値データを下位桁側から前記単位桁数ごとに所定の順番で分担し、それぞれ複数回の加算を行うことを特徴とする。
前記複数の演算処理部は、2つの数値データを下位桁側から前記単位桁数ごとに所定の順番で分担し、それぞれ複数回の加算を行うことを特徴とする。
請求項3記載の発明は、請求項1または2記載の演算装置において、
前記セレクタは、
当該セレクタを有する前記演算手段が最も下位桁側の数値データの加算を行う場合に、前記第1の演算回路の加算結果を選択することを特徴とする。
前記セレクタは、
当該セレクタを有する前記演算手段が最も下位桁側の数値データの加算を行う場合に、前記第1の演算回路の加算結果を選択することを特徴とする。
本発明によれば、下位桁側の数値データの加算による桁上がりを無いもの/有るものとしてそれぞれ演算を行い、当該下位桁側の数値データの加算による桁上がり結果に基づいて何れか一方の加算結果を選択するので、下位桁側の数値データの加算処理の終了前に桁上がりの有る場合と無い場合との両方の場合について予め上位桁側の数値データの加算を開始しておき、下位桁側の数値データの加算が終了した後に、何れか一方の正しい加算結果を選択することができる。従って、パイプライン処理を用いる従来の場合と異なり、上位桁側の数値データの加算を開始するのに下位桁側の数値データの加算処理の終了を待つ必要がない分、複数桁の数値演算を高速化することができる。
以下、本発明の実施の形態について、図を参照しながら説明する。
[1. 演算装置の構成]
図1に、本発明に係る演算装置1の外観図を示す。
この図に示すように、演算装置1は、パソコンPのUSB(Universal Serial Bus)ポートP1に対して着脱可能に装着される装置であり、パソコンPとの間でデータ通信をするようになっている。
[1. 演算装置の構成]
図1に、本発明に係る演算装置1の外観図を示す。
この図に示すように、演算装置1は、パソコンPのUSB(Universal Serial Bus)ポートP1に対して着脱可能に装着される装置であり、パソコンPとの間でデータ通信をするようになっている。
この演算装置1は、図2に示すように、Fレジスタ(Firstレジスタ)11及びSレジスタ(Secondレジスタ)12を備えている。なお、図2では、上述のUSBポートP1との通信部について、図示を省略している。
これらFレジスタ11,Sレジスタ12は、演算対象となる256ビット(2進数で256桁)の数値データ「A0」〜「A255」,「B0」〜「B255」を16ビット(16桁)ごとに分割して格納するようになっている。このうち、Fレジスタ11は、デュアルポートメモリとなっており、Aポートを介して演算対象の数値データ「A0」〜「A255」の入力を受けるとともに、Bポートを介して加算結果の数値データ「S0」〜「S255」の入力を受けることが可能となっている。なお、本実施の形態におけるFレジスタ11,Sレジスタ12のデータバスは16ビットとなっている。また、図2では、図示の便宜上、Fレジスタ11をAポートとBポートとに分けて、それぞれ図示している。また、以下の説明においては、数値データ「A0」〜「A255」,「B0」〜「B255」等の番号が小さいほど、そのデータの桁数が小さいこととする。
これらFレジスタ11,Sレジスタ12には、アドレスカウンタ10が接続されている。
このアドレスカウンタ10は、クロック信号をカウントすることにより、Fレジスタ11,Sレジスタ12におけるデータの格納領域を下位桁側から順に指定する等の処理を行うようになっている。
このアドレスカウンタ10は、クロック信号をカウントすることにより、Fレジスタ11,Sレジスタ12におけるデータの格納領域を下位桁側から順に指定する等の処理を行うようになっている。
またFレジスタ11,Sレジスタ12には、16ビットのデータバスを有する分配器13,14及びフリップフロップ2a〜2dを介して、演算処理部3a,3bが接続されている。
ここで、分配器13,14は、Fレジスタ11,Sレジスタ12から出力される数値データをフリップフロップ2a〜2dに送信するものである。また、フリップフロップ2a〜2dは、分配器13,14を介して入力される数値データをラッチして演算処理部3a,3bに送信するものである。なお、これらフリップフロップ2a〜2dのうち、フリップフロップ2a,2cと、フリップフロップ2b,2dとの各組には、上述のアドレスカウンタ10から交互にHigh信号が入力されるようになっている。より詳細には、アドレスカウンタ10がFレジスタ11,Sレジスタ12における最下位の16ビットの数値データ「A0」〜「A15」,「B0」〜「B15」の格納領域を指定する場合にはフリップフロップ2a,2cに対してHigh信号が入力され、最下位から2番目の16ビットの数値データ「A16」〜「A31」,「B16」〜「B31」の格納領域を指定する場合にはフリップフロップ2b,2dに対してHigh信号が入力されるようになっている。これにより、演算処理部3a,3bは、2つの数値データ「A0」〜「A255」,「B0」〜「B255」を下位桁側から16桁(16ビット)ごとに交互に分担して受信することとなる。
また、演算処理部3a,3bは互いに略同様の構成を有しており、演算処理部3aは演算回路4a,4bを、演算処理部3bは演算回路4c,4dを備えている。
これら演算回路4a〜4dは、演算処理を行う回路であり、本実施の形態においては、最大2クロック分の時間で16ビットの加算処理を行う加算回路となっている。
より詳細には、各演算回路4a〜4dは、「A11」端子及び「B11」端子から入力される2つの数値データと「Cin」端子から入力される「0」または「1」の数値データとを加算し、「S11」端子及び「Cout」端子から加算結果を出力するようになっている。このうち、「S11」端子から出力される加算結果は、16ビットのデータ量で表現可能な数値データとなっている。一方、「Cout」端子から出力される加算結果は、16ビットのデータ量では表現することのできない17ビット目の数値データ、即ち、桁上がりの有無を示す1ビットの信号(以下、桁上がり信号とする)となっている。
ここで、演算回路4a,4bの「A11」端子,「B11」端子には、上述のフリップフロップ2a,2cが接続されており、同一の組み合わせの数値データ、例えば「A0」〜「A15」,「B0」〜「B15」の組み合わせの数値データがそれぞれ入力されるようになっている。同様に、演算回路4c,4dの「A11」端子,「B11」端子には、上述のフリップフロップ2b,2dが接続されており、同一の組み合わせの数値データ、例えば「A16」〜「A31」,「B16」〜「B31」の組み合わせの数値データがそれぞれ入力されるようになっている。
一方、演算回路4a,4cの「Cin」端子には、「0」の数値データが入力され、演算回路4b,4dの「Cin」端子には、「1」の数値データが入力されるようになっている。
これにより、演算回路4b,4dは、演算回路4a,4cよりも「1」だけ多く数値データを加算するようになっている。
これにより、演算回路4b,4dは、演算回路4a,4cよりも「1」だけ多く数値データを加算するようになっている。
ここで、各演算回路4a〜4dは、図3に示すように、従来より公知の1ビットの加算器40a〜40pを16段に接続することで構成されている。これら各加算器40a〜40pは「A」端子から入力される1ビットの数値データと、「B」端子から入力される1ビットの数値データと、「Cin」端子から入力される1ビットの桁上がり信号とを加算し、加算結果として1ビットの数値データを「S」端子から、1ビットの桁上がり信号を「Cout」端子から、それぞれ出力するようになっている。なお、各加算器40a,40b,…の「Cout」端子から出力される桁上がり信号は、次段の加算器40b,40c,…の「Cin」端子に入力されるようになっている。
以上の各演算回路4a〜4dのうち、演算回路4a,4bの「S11」端子には、図2に示すように、セレクタ5a,6を介して上述のFレジスタ11のBポートが接続されており、「Cout」端子にはセレクタ5bが接続されている。
また、演算回路4c,4dの「S11」端子には、セレクタ5c,6を介して上述のFレジスタ11のBポートが接続されており、「Cout」端子にはセレクタ5dが接続されている。
これらセレクタ5a〜5d及びセレクタ6のうち、セレクタ5aは、セレクタ5dを介して入力される桁上がり信号の有無(「1」または「0」)によって演算回路4a,4bの「S11」端子からの各数値データの何れか一方をセレクタ6に出力するようになっている。具体的には、桁上がり信号が「1」の場合には、セレクタ5aは演算回路4bの「S11」端子からの数値データをセレクタ6に出力し、桁上がり信号が「0」の場合には、演算回路4aの「S11」端子からの数値データをセレクタ6に出力するようになっている。
また、セレクタ5bは、セレクタ5dを介して入力される桁上がり信号の有無によって演算回路4a,4bの「Cout」端子からの各桁上がり信号の何れか一方をセレクタ5c,5dに出力するようになっている。具体的には、セレクタ5dを介して入力される桁上がり信号が「1」の場合には、セレクタ5bは演算回路4bの「Cout」端子からの桁上がり信号をセレクタ5c,5dに出力し、セレクタ5dを介して入力される桁上がり信号が「0」の場合には、演算回路4aの「Cout」端子からの桁上がり信号をセレクタ5c,5dに出力するようになっている。
また、セレクタ5cは、セレクタ5bを介して入力される桁上がり信号の有無によって演算回路4c,4dの「S11」端子からの各数値データの何れか一方をセレクタ6に出力するようになっている。具体的には、桁上がり信号が「1」の場合には、セレクタ5cは演算回路4dの「S11」端子からの数値データをセレクタ6に出力し、桁上がり信号が「0」の場合には、演算回路4cの「S11」端子からの数値データをセレクタ6に出力するようになっている。
また、セレクタ5dは、セレクタ5bを介して入力される桁上がり信号の有無によって演算回路4c,4dの「Cout」端子からの各桁上がり信号の何れか一方を、アンド回路15を介してセレクタ5a,5bに出力するようになっている。具体的には、セレクタ5bを介して入力される桁上がり信号が「1」の場合には、セレクタ5dは演算回路4dの「Cout」端子からの桁上がり信号をセレクタ5a,5bに出力し、セレクタ5bを介して入力される桁上がり信号が「0」の場合には、演算回路4cの「Cout」端子からの桁上がり信号をセレクタ5a,5bに出力するようになっている。なお、このアンド回路15には上述のアドレスカウンタ10が接続されており、セレクタ5a,5bが演算回路4a,4bでの最初の加算結果を選択するタイミングでは「0」(Low)の信号、これ以降のタイミングでは「1」(High)の信号がアドレスカウンタ10から入力されるようになっている。
また、セレクタ6は、セレクタ5a,5cからの各数値データの何れか一方をFレジスタ11のBポートに出力するようになっている。
このセレクタ6と、上述のFレジスタ11のBポートとには、アドレスカウンタ16が接続されている。このアドレスカウンタ16は、クロック信号をカウントすることにより、Fレジスタ11におけるデータの格納領域を下位データの領域から順に指定する等の処理を行うようになっている。
[2. 演算装置の動作]
続いて、演算装置1の動作について、図面を参照しながら説明する。図4は、演算装置1の動作を説明するための概念図である。
続いて、演算装置1の動作について、図面を参照しながら説明する。図4は、演算装置1の動作を説明するための概念図である。
この図に示すように、まず、パソコンPのUSBポートP1から加算対象となる2つの数値データ「A0」〜「A255」,「B0」〜「B255」が送信されると、一方の数値データ「A0」〜「A255」はFレジスタ11に、他方の数値データ「B0」〜「B255」はSレジスタ12に格納される。
次に、アドレスカウンタ10からの信号に対応してFレジスタ11,Sレジスタ12における最下位の16ビットの数値データ「A0」〜「A15」,「B0」〜「B15」が読み出され、分配器13,14及びフリップフロップ2a,2cを介して演算処理部3aに送信されると、演算回路4a,4bがこれらの数値データに対する加算処理を開始する(ステップS1)。このとき、「Cin」端子への入力値の違いにより、演算回路4bでは演算回路4aよりも「1」だけ多く数値データが加算される。但し、後述のように、ここでの演算結果としては、常に演算回路4aでの演算結果が使用される。
次に、アドレスカウンタ10からの信号に対応してFレジスタ11,Sレジスタ12における最下位から2番目の16ビットの数値データ「A16」〜「A31」,「B16」〜「B31」が読み出され、分配器13,14及びフリップフロップ2b,2dを介して演算処理部3bに送信されると、演算回路4c,4dがこれらの数値データに対する加算処理を開始する(ステップS2)。このとき、「Cin」端子への入力値の違いにより、演算回路4dでは演算回路4cよりも「1」だけ多く数値データが加算される。つまり、演算回路4cでは、最下位の16ビットの数値データ「A0」〜「A15」,「B0」〜「B15」の加算による桁上がりを無いものとして最下位から2番目の16ビットの数値データ「A16」〜「A31」,「B16」〜「B31」の加算が行われ、演算回路4dでは、最下位の16ビットの数値データ「A0」〜「A15」,「B0」〜「B15」の加算による桁上がりを有るものとして最下位から2番目の16ビットの数値データ「A16」〜「A31」,「B16」〜「B31」の加算が行われる。
そして、最下位の16ビットの数値データ「A0」〜「A15」,「B0」〜「B15」についての演算回路4a,4bによる加算処理が終了すると、セレクタ5aにより演算回路4a,4bの何れか一方の「S11」端子からの数値データ「S0」〜「S15」がセレクタ6を介してFレジスタ11に送信され、アドレスカウンタ16からの信号に対応してFレジスタ11の最下位16ビットの格納領域に記憶される(ステップS3)。また、セレクタ5bにより演算回路4a,4bの何れか一方の「Cout」端子からの桁上がり信号がセレクタ5c、5dに送信される。但し、このタイミングはセレクタ5a,5bが演算回路4a,4bでの最初の加算結果を選択するタイミングであり、アンド回路15には「0」(Low)の信号が入力されるため、ここではセレクタ5a,5bからは、演算回路4aからの数値データ及び桁上がり信号、つまり数値データ「A0」〜「A15」,「B0」〜「B15」よりも下位桁での加算による桁上がりを無いものとして予め行った加算処理の結果が送信される。
また、このときアドレスカウンタ10からの信号に対応してFレジスタ11,Sレジスタ12における最下位から3番目の16ビットの数値データ「A32」〜「A47」,「B32」〜「B47」が読み出され、分配器13,14及びフリップフロップ2a,2cを介して演算処理部3aに送信されると、演算回路4a,4bがこれらの数値データに対する加算処理を開始する。このとき、上記のステップS2と同様に、演算回路4aでは、最下位から2番目の16ビットの数値データ「A16」〜「A31」,「B16」〜「B31」の加算による桁上がりを無いものとして最下位から3番目の16ビットの数値データ「A32」〜「A47」,「B32」〜「B47」の加算が行われ、演算回路4bでは、最下位から2番目の16ビットの数値データ「A16」〜「A31」,「B16」〜「B31」の加算による桁上がりを有るものとして最下位から3番目の16ビットの数値データ「A32」〜「A47」,「B32」〜「B47」の加算が行われる。
そして、最下位から2番目の16ビットの数値データ「A16」〜「A31」,「B16」〜「B31」についての演算回路4c、4dによる加算処理が終了すると、セレクタ5cにより演算回路4c,4dの何れか一方の「S11」端子からの数値データ「S16」〜「S31」がセレクタ6を介してFレジスタ11に送信され、アドレスカウンタ16からの信号に対応してFレジスタ11の最下位から2番目の16ビットの格納領域に記憶される(ステップS4)。また、セレクタ5dにより演算回路4c,4dの何れか一方の「Cout」端子からの桁上がり信号がセレクタ5a、5bに送信される。
より具体的には、セレクタ5bからの桁上がり信号が「0」の場合には、演算回路4cからの加算結果、つまり、最下位の16ビットの数値データ「A0」〜「A15」,「B0」〜「B15」での演算による桁上がりを無いものとして予め行った加算処理の結果がセレクタ5c,5dから送信される。一方、セレクタ5bからの桁上がり信号が「1」の場合には、演算回路4dからの加算結果、つまり、最下位の16ビットの数値データ「A0」〜「A15」,「B0」〜「B15」での演算による桁上がりを有るものとして予め行った加算処理の結果がセレクタ5c,5dから送信される。
また、このときアドレスカウンタ10からの信号に対応してFレジスタ11,Sレジスタ12における最下位から4番目の16ビットの数値データ「A48」〜「A63」,「B48」〜「B63」が読み出され、分配器13,14及びフリップフロップ2b,2dを介して演算処理部3bに送信されると、演算回路4c,4dがこれらの数値データに対する加算処理を開始する。このとき、上記のステップS2と同様に、演算回路4cでは、最下位から3番目の16ビットの数値データ「A32」〜「A47」,「B32」〜「B47」の加算による桁上がりを無いものとして最下位から4番目の16ビットの数値データ「A48」〜「A63」,「B48」〜「B63」の加算が行われ、演算回路4dでは、最下位から3番目の16ビットの数値データ「A32」〜「A47」,「B32」〜「B47」の加算による桁上がりを有るものとして最下位から4番目の16ビットの数値データ「A48」〜「A63」,「B48」〜「B63」の加算が行われる。
そして、最下位から3番目の16ビットの数値データ「A32」〜「A47」,「B32」〜「B47」についての演算回路4a,4bによる加算処理が終了すると、セレクタ5aにより演算回路4a,4bの何れか一方の「S11」端子からの数値データ「S32」〜「S47」がセレクタ6を介してFレジスタ11に送信され、アドレスカウンタ16からの信号に対応してFレジスタ11の最下位から3番目の16ビットの格納領域に記憶される(ステップS5)。また、セレクタ5bにより演算回路4a,4bの何れか一方の「Cout」端子からの桁上がり信号がセレクタ5c、5dに送信される。
より具体的には、セレクタ5dからの桁上がり信号が「0」の場合には、演算回路4aからの加算結果、つまり、最下位から2番目の16ビットの数値データ「A16」〜「A31」,「B16」〜「B31」での演算による桁上がりを無いものとして予め行った加算処理の結果がセレクタ5a,5bから送信される。一方、セレクタ5dからの桁上がり信号が「1」の場合には、演算回路4bからの加算結果、つまり、最下位から2番目の16ビットの数値データ「A16」〜「A31」,「B16」〜「B31」での演算による桁上がりを有るものとして予め行った加算処理の結果がセレクタ5a,5bから送信される。
以降、演算装置1は、同様の処理を繰り返すことにより2つの数値データ「A0」〜「A255」,「B0」〜「B255」を加算して加算結果をFレジスタ11に記憶した後、Fレジスタ11からパソコンPに対して加算結果を送信することにより、動作を終了する。
以上の演算装置1によれば、図2や図4に示したように、下位桁側の数値データ、例えば「A0」〜「A15」,「B0」〜「B15」の加算による桁上がりを無いもの/有るものとしてそれぞれ演算を行い、当該下位桁側の数値データの加算による桁上がり結果、より詳細には「Cout」端子から出力される桁上がり信号に基づいて何れか一方の加算結果を選択するので、下位桁側の数値データ「A0」〜「A15」,「B0」〜「B15」の加算処理の終了前に、桁上がりの有る場合と無い場合との両方の場合について予め上位桁側の数値データ「A16」〜「A31」,「B16」〜「B31」の加算を開始しておき、下位桁側の数値データ「A0」〜「A15」,「B0」〜「B15」の加算が終了した後に、上位桁側の数値データ「A16」〜「A31」,「B16」〜「B31」の加算結果として何れか一方の正しい加算結果を選択することができる。従って、パイプライン処理を用いる従来の場合と異なり、上位桁側の数値データの加算を開始するのに下位桁側の数値データの加算処理の終了を待つ必要がない分、複数桁の数値演算を高速化することができる。
また、演算処理部3a,3bが2つの数値データを下位桁側から16ビットごとに交互に分担し、それぞれ複数回の加算を行うので、所望の桁数の数値演算を行う場合において、数値演算を高速化することができる。
また、演算処理部3aにおける演算回路4a,4bの最初の加算結果を選択するタイミングでは、セレクタ5a,5bは演算回路4aの加算結果、つまり、数値データ「A0」〜「A15」,「B0」〜「B15」よりも下位桁での加算による桁上がりを無いものとして予め行った加算処理の結果を選択するので、正確な数値演算を行うことができる。
なお、本発明は上記実施形態に限定されることなく、本発明の主旨を逸脱しない範囲において種々の改良及び設計の変更をおこなっても良い。
例えば、本発明に係る演算装置をパソコンPに着脱可能な装置として説明したが、パソコンや関数電卓、PDA(Personal Digital Assistance)などの電子機器に内蔵されるものとしても良い。
1 演算装置
3a,3b 演算処理部(演算手段)
4a,4c 演算回路(第1の演算回路)
4b,4d 演算回路(第2の演算回路)
5a〜5d セレクタ
3a,3b 演算処理部(演算手段)
4a,4c 演算回路(第1の演算回路)
4b,4d 演算回路(第2の演算回路)
5a〜5d セレクタ
Claims (3)
- 複数桁の数値演算を行う演算装置であって、
2つの数値データを下位桁側から所定の単位桁数ごとに分担して加算する複数の演算手段を備え、
各演算手段は、
下位桁側の数値データの加算による桁上がりを無いものとして加算を行う第1の演算回路と、
前記桁上がりを有るものとして加算を行う第2の演算回路と、
下位桁側の数値データについての他の前記演算手段での加算による桁上がり結果に基づいて、前記第1の演算回路及び前記第2の演算回路の何れか一方の加算結果を選択するセレクタと、を有することを特徴とする演算装置。 - 請求項1記載の演算装置において、
前記複数の演算処理部は、2つの数値データを下位桁側から前記単位桁数ごとに所定の順番で分担し、それぞれ複数回の加算を行うことを特徴とする演算装置。 - 請求項1または2記載の演算装置において、
前記セレクタは、
当該セレクタを有する前記演算手段が最も下位桁側の数値データの加算を行う場合に、前記第1の演算回路の加算結果を選択することを特徴とする演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006354394A JP2008165493A (ja) | 2006-12-28 | 2006-12-28 | 演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006354394A JP2008165493A (ja) | 2006-12-28 | 2006-12-28 | 演算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008165493A true JP2008165493A (ja) | 2008-07-17 |
Family
ID=39694906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006354394A Pending JP2008165493A (ja) | 2006-12-28 | 2006-12-28 | 演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008165493A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009157490A1 (ja) | 2008-06-25 | 2009-12-30 | 株式会社ニフコ | リベット締結用エアーツール |
-
2006
- 2006-12-28 JP JP2006354394A patent/JP2008165493A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009157490A1 (ja) | 2008-06-25 | 2009-12-30 | 株式会社ニフコ | リベット締結用エアーツール |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5500652B2 (ja) | 並列比較選択演算装置、プロセッサ及び並列比較選択演算方法 | |
US10255041B2 (en) | Unified multiply unit | |
JPS6044696B2 (ja) | 浮動小数点デ−タ処理装置 | |
JP2008071130A (ja) | Simd型マイクロプロセッサ | |
CN102356378A (zh) | 具有隐式混合操作数的数字信号处理引擎 | |
JPH0667851A (ja) | オーバーフロー検出機能付き乗算装置 | |
CN113032723B (zh) | 一种矩阵乘法器的实现方法及矩阵乘法器装置 | |
CN111931441B (zh) | Fpga快速进位链时序模型的建立方法、装置以及介质 | |
EP1634163B1 (en) | Result partitioning within simd data processing systems | |
JPS6027030A (ja) | マイクロプロセツサ | |
JP2008165493A (ja) | 演算装置 | |
US20220365755A1 (en) | Performing constant modulo arithmetic | |
CN113434198B (zh) | Risc-v指令处理方法、存储介质及电子设备 | |
CN101361278B (zh) | 奇偶校验位生成电路、计数电路以及计数方法 | |
US6240540B1 (en) | Cyclic redundancy check in a computer system | |
US8219604B2 (en) | System and method for providing a double adder for decimal floating point operations | |
JP4873546B2 (ja) | データ処理装置、データ処理方法 | |
CN220208247U (zh) | 除法运算电路 | |
CN110851110B (zh) | 无除法器的除三电路 | |
JP2004252556A (ja) | 情報処理装置 | |
JPH09190338A (ja) | 論理演算装置での数学的オーバフロー・フラグ発生遅延の除去 | |
KR100251546B1 (ko) | 디지탈신호처리기 | |
JP2010033275A (ja) | データ処理方法及びデータ処理プロセッサ | |
GB2590866A (en) | Float Division by constant integer using a predetermined number of modulo units | |
JP2005259083A (ja) | ディジタル回路 |