Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3813613B2 - 加算回路 - Google Patents
[go: Go Back, main page]

JP3813613B2 - 加算回路 - Google Patents

加算回路 Download PDF

Info

Publication number
JP3813613B2
JP3813613B2 JP2004011018A JP2004011018A JP3813613B2 JP 3813613 B2 JP3813613 B2 JP 3813613B2 JP 2004011018 A JP2004011018 A JP 2004011018A JP 2004011018 A JP2004011018 A JP 2004011018A JP 3813613 B2 JP3813613 B2 JP 3813613B2
Authority
JP
Japan
Prior art keywords
digit
signal
circuit
carry
determination
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.)
Expired - Fee Related
Application number
JP2004011018A
Other languages
English (en)
Other versions
JP2005202885A (ja
Inventor
章浩 嶽釜
剛 田中
雅弘 襖田
Original Assignee
日本テキサス・インスツルメンツ株式会社
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 日本テキサス・インスツルメンツ株式会社 filed Critical 日本テキサス・インスツルメンツ株式会社
Priority to JP2004011018A priority Critical patent/JP3813613B2/ja
Priority to US11/038,563 priority patent/US7680874B2/en
Publication of JP2005202885A publication Critical patent/JP2005202885A/ja
Application granted granted Critical
Publication of JP3813613B2 publication Critical patent/JP3813613B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

本発明は加算回路に係り、特に、算術論理演算装置等に用いられるオーバーフロー検出機能を備えた加算回路に関するものである。
一般に、DSP(digital signal processor)などのプロセッサは、算術演算(加算、乗算など)や論理演算(ビット反転、ビット・シフトなど)を行う算術論理演算装置(arithmetic logic unit:ALU)を備えている。
ALUが実行する各種の算術演算は、加算演算を基本として、その結果を利用している。通常、ALUの加算回路は、加算結果にオーバーフローが発生するか否かを検出する機能を備えており、オーバーフローが検出された場合、ALUはその出力を強制的に所定値(例えば正の最大値や負の最小値)に補正する処理を行う。
特許文献1には、このようなオーバーフロー補正を行う演算装置に関する技術が記載されている。
ここで、オーバーフロー検出機能を備えた加算回路の従来例を説明する。
以下に述べる加算回路は、40ビットの信号[a0,…,a39]および[b0,…,b39]と、最下位桁(第1桁)へのキャリー信号CINとを入力し、その加算結果として、40ビットの信号[s0,…,s39]を出力する。
また、この加算回路は、40ビットモードと32ビットモードの2つの演算モードを有し、さらに、これらの各演算モードにおいて通常モードとデュアルモードを有する。
40ビットモードにおいて、加算回路は、第40桁を最上位桁とした加算演算を行う。また、第40桁を符号桁とした加算演算におけるオーバーフローの有無を示す信号として、オーバーフロー検出信号OVFを出力する。
一方、32ビットモードにおいては、第32桁を最上位桁とした加算演算を行う。ただし、この場合、上記のオーバーフロー検出信号OVFは、第32桁を符号桁とした加算演算におけるオーバーフローの有無を示す信号として出力する。
また、通常モードにおいて、加算回路は、第1桁から最上位桁(40ビットモードでは第40桁、32ビットモードでは第32桁)までの加算演算を単独に実行する。
デュアルモードにおいては、第1桁から第16桁までの加算演算および第17桁から最上位桁までの加算演算を並列に実行する。
デュアルモードの場合、加算回路は、最下位桁へのキャリーとして、下位側(第1桁〜第16桁)の加算演算についてはキャリー信号CINを入力し、上位側(第17桁〜最上位桁)の加算演算についてはキャリー信号Cdualを入力する。また、第16桁を符号桁とした下位側の加算演算におけるオーバーフローの有無を示す信号として、オーバーフロー検出信号OVF16を出力する。
図12は、このような加算回路において、デュアルモード時の下位16ビットのオーバーフロー検出信号OVF16を生成する回路の構成例を示すブロック図である。
図12に示す回路は、キャリー生成信号出力回路1,…,4,11,12と、キャリー伝播信号出力回路5,…,10と、セレクタ13および14と、キャリー・セレクト・アダー(carry select adder:CSAと略記する)15と、排他的NOR回路16とを有する。
オーバーフロー検出信号OVF16は、デュアルモードにおいて第16桁を符号桁とした2の補数形式の入力データの加算結果にオーバーフローが発生する場合に‘0’、オーバーフローが発生しない場合に‘1’となる信号であり、次式で表される。
Figure 0003813613
ただし、キャリー信号ci(iは0から39までの整数を示す)は、第(i+1)桁から第(i+2)桁へのキャリーを示す。
図12に示す回路では、このオーバーフロー検出信号OVF16を算出するにあたり、先ずキャリー信号c11およびc15を桁上げ先見方式によって算出する。
図12に示す回路のうち、キャリー生成信号出力回路(1〜4,11,12)、キャリー伝播信号出力回路(5〜10)、セレクタ(13、14)で構成される部分は、キャリー信号C11およびキャリー信号C15を生成する桁上げ先見回路である。
この桁上げ先見回路は、中間的なキャリー生成信号およびキャリー伝播信号を2段階に分けて生成して、最終的なキャリー信号(C11、C15)を得るものである。
キャリー信号C11およびC15は、それぞれ次式で表される。
Figure 0003813613
ただし、上式中における記号piおよびgiは、第(i+1)桁のキャリー伝播信号およびキャリー生成信号をそれぞれ示しており、次式で表される。
Figure 0003813613
キャリー生成信号出力回路1,2,3,4は、キャリー生成信号G3_0,G7_4,G11_8,G15_12をそれぞれ生成する。
キャリー生成信号G(j+3)_j(ここで、jは整数0,4,8,または12を示す)は、4ビットの入力データ[aj,…,a(j+3)]および[bj,…,b(j+3)]を加算した場合に、この4ビットに対する下位からのキャリー信号C(j−1)(j=0の場合はCIN)に依存せずに、上位へのキャリー信号c(j+3)が‘1’になるか否かを示す信号であり、この信号が‘1’の場合、下位からのキャリーに依らずキャリー信号c(j+3)は‘1’になる。
キャリー生成信号G(j+3)_jは次式で表される。
Figure 0003813613
キャリー伝播信号出力回路5,6,7,8は、キャリー伝播信号P3_0,P7_4,P11_8,P15_12をそれぞれ生成する。
キャリー伝播信号P(j+3)_j(ここで、jは整数0,4,8,または12を示す)は、4ビットの入力データ[aj,…,a(j+3)]および[bj,…,b(j+3)]を加算した場合に、この4ビットに対する下位からのキャリー信号C(j−1)(j=0の場合はCIN)に依存して、上位へのキャリー信号c(j+3)が変化するか否かを示す信号であり、この信号が‘1’の場合、下位からのキャリーに依存して上位へのキャリー信号c(j+3)は‘1’または‘0’に変化する。
キャリー伝播信号P(j+3)_jは次式で表される
Figure 0003813613
キャリー伝播信号出力回路9,10は、キャリー伝播信号P11_0,P15_0をそれぞれ生成する。
キャリー伝播信号P11_0およびP15_0は、それぞれ次式で表される。
Figure 0003813613
キャリー生成信号出力回路11,12は、キャリー生成信号G11_0,G15_0をそれぞれ生成する。
キャリー生成信号G11_0およびG15_0は、それぞれ次式で表される。
Figure 0003813613
ここで、式(8)および式(10)を式(2)に代入すると、キャリー信号c11は次式のように表される。
Figure 0003813613
また、式(9)および式(11)を式(3)に代入すると、キャリー信号C15は次式のように表される。
Figure 0003813613
セレクタ13は、キャリー伝播信号P11_0が‘0’のときにキャリー生成信号G11_0を選択し、キャリー伝播信号P11_0が‘1’のときにキャリー信号CINを選択して出力する。
キャリー伝播信号P11_0が‘1’になると、キャリー生成信号g0〜g11が全て‘0’になり、キャリー生成信号G11_0は‘0’になることから、セレクタ13の出力信号は式(12)に示すキャリー信号c11と等しくなる。
セレクタ14は、キャリー伝播信号P15_0が‘0’のときにキャリー生成信号G15_0を選択し、キャリー伝播信号P15_0が‘1’のときにキャリー信号CINを選択して出力する。
上述と同様に、キャリー伝播信号P15_0が‘1’になるとキャリー生成信号G15_0は‘0’になることから、セレクタ14の出力信号は式(13)に示すキャリー信号c15と等しくなる。
CSA15は、キャリー信号c11が‘1’と‘0’の場合における第13桁〜第16桁の各桁の加算値を予め算出し、当該算出した2通りの加算値から、キャリー信号c11の値に応じて選択した一方を、加算結果s12〜s15として出力する。
また、CSA15は、第15桁のキャリーについても同様に、予め算出した2通りのうちの一方をキャリー信号c11の値に応じて選択し、これをキャリー信号c14として出力する。
排他的NOR回路16は、CSA15より出力されるキャリー信号c14と、セレクタ14より出力されるキャリー信号c15との排他的反転論理和を演算する。式(1)の関係より、排他的NOR回路16の演算結果はオーバーフロー検出信号OVF16となる。
図13は、第17桁へのキャリー信号C15Aを出力する回路の構成例を示すブロック図である。図12と同一符号は同一の構成要素を示す。
セレクタ17は、デュアルモード指定信号Mdualが‘1’の場合に外部から入力されるキャリー信号Cdualを選択し、デュアルモード指定信号Mdualが‘0’の場合は、図12に示す回路で生成される下位16ビットのキャリー信号c15を選択して出力する。セレクタ17の出力信号が、第17桁へのキャリー信号C15Aとなる。
図14は、オーバーフロー検出信号OVFを生成する回路の構成例を示すブロック図である。
図14に示す回路は、CSA18と、AND回路19と、NOR回路20と、OR回路21と、セレクタ22および23とを有する。
図14に示す回路は、40ビットモードのオーバーフロー検出信号OVF40および32ビットモードのオーバーフロー検出信号OVF32をそれぞれ算出する。
オーバーフロー検出信号OVF40は、第40桁を符号桁とした2の補数形式の入力データの加算結果にオーバーフローが発生する場合に‘0’、オーバーフローが発生しない場合に‘1’となる信号であり、次式で表される。
Figure 0003813613
また、オーバーフロー検出信号OVF32は、第32桁を符号桁とした2の補数形式の入力データの加算結果にオーバーフローが発生する場合に‘0’、オーバーフローが発生しない場合に‘1’となる信号であり、次式で表される。
Figure 0003813613
式(15)から分かるように、32ビットモードの場合、加算結果s31〜s39が全て‘1’でなく、かつ全て‘0’でもない場合にオーバーフローとなる。
CSA18は、キャリー信号c30が‘1’と‘0’の場合における第32桁〜第40桁の各桁の加算値を予め算出し、当該算出した2通りの加算値から、キャリー信号c30の値に応じて選択した一方を、加算結果s31〜s39として出力する。
また、これらの加算値とともに予め算出される第39桁および第40桁のキャリーを用いて、キャリー信号c30が‘0’,‘1’の場合に40ビットモードのオーバーフローが発生するか否かを予測する信号SC0,SC1をそれぞれ算出する。
キャリー信号c30が‘0’の場合における第39桁,第40桁のキャリー算出値をそれぞれキャリー信号c38_0,c39_0とし、キャリー信号c30が‘1’の場合における第39桁,第40桁のキャリー算出値をそれぞれキャリー信号c38_1,c39_1とすると、オーバーフローの予測信号SC0およびSC1は次式のように表される。
Figure 0003813613
セレクタ22は、CSA18において算出されるオーバーフローの予測信号SC0およびSC1を入力し、キャリー信号c30が‘0’の場合に予測信号SC0、キャリー信号c30が‘1’の場合に予測信号SC1を出力する。この出力信号は、オーバーフロー検出信号OVF40としてセレクタ23に入力される。
AND回路19は、CSA18において算出される加算結果s31〜s39の論理積を演算する。この演算結果は、式(15)の右辺第1項と等しい値を有する。
NOR回路20は、CSA18において算出される加算結果s31〜s39の反転論理和を演算する。この演算結果は、式(15)の右辺第2項と等しい値を有する。
OR回路21は、AND回路19およびNOR回路20の出力信号の論理和を演算する。この演算結果は、オーバーフロー検出信号OVF32としてセレクタ23に入力される。
セレクタ23は、入力された2つのオーバーフロー検出信号OVF32,OVF40から、モード指定信号M40に応じて一方の信号を選択し、これをオーバーフロー検出信号OVFとして出力する。
特開平7−182141号公報
ところで、図12に示す回路では、キャリー信号c15およびオーバーフロー検出信号OVF16の生成を高速化するために、2つのキャリー信号c14、c15の生成処理を並列に実行している。すなわち、キャリー信号c14を生成するための桁上げ先見回路(9,11)と、キャリー信号c15を生成するための桁上げ先見回路(10,12)とを、それぞれ独立に設けている。
そのため、これらの回路を駆動する前段の桁上げ先見回路(1〜8)にとって容量性負荷が増大し、消費電力の増加やオーバーフロー検出信号OVF16のスピードの低下といった不利益がある。
また、図13に示す回路では、キャリー信号c15Aを生成する信号の中で最も高速性を要求されるキャリー生成信号G15_0が、出力に到達するまでに2段のセレクタ(14,17)を通過しなければならない。そのため、キャリー信号c15Aの生成が遅くなり、演算スピードが低下するという不利益がある。
さらに、図14に示す回路では、最も遅延する信号であるキャリー信号c30が到着した後で、加算結果s31〜39、AND回路19およびNOR回路20の出力信号0、オーバーフロー検出信号OVF32、オーバーフロー検出信号OVFの順に信号が確定する。すなわち、高速性を要求されるキャリー信号c30のパスが長いため、オーバーフロー検出信号OVFのスピードが低下するという不利益がある。
本発明はかかる事情に鑑みてなされたものであり、その目的は、オーバーフローの発生を高速に検出することができる加算回路を提供することにある。
上記の目的を達成する第1の発明は、入力される第1のデータおよび第2のデータを加算する加算回路であって、上記第1のデータおよび上記第2のデータの所定の下位桁から第m桁(mは2より大きい自然数を示す)までを加算した結果における第(m−1)桁から第m桁への第(m−1)キャリー信号を、上記第1のデータおよび上記第2のデータの上記所定の下位桁から上記第(m−1)桁までのビット信号と、上記所定の下位桁に対して入力されるキャリー信号とに基づいて生成する第1のキャリー信号生成回路と、上記生成された第(m−1)キャリー信号と、上記第1のデータおよび上記第2のデータの上記第m桁のビット信号とに基づいて、上記第m桁から第(m+1)桁への第mキャリー信号を生成する第2のキャリー信号生成回路と、上記生成された第(m−1)キャリー信号と第mキャリー信号とに所定の論理演算を行い、当該演算結果を、上記第m桁を符号桁とした上記所定の下位桁から第m桁までの加算結果にオーバーフローが発生するか否かを示す信号として出力する論理演算回路とを有する。
上記第1の発明の加算回路は、上記第(m+1)桁から上記第(m+1)桁を超える所定の上位桁までの加算演算を実行する第1の演算モードにおいて、上記第(m+1)桁に対して入力されるキャリー信号を選択し、上記所定の下位桁から上記第(m+1)桁を超える所定の上位桁までの加算演算を実行する第2の演算モードにおいて、上記第1のデータおよび上記第2のデータの第m桁のビット信号同士の論理積に応じた第mキャリー生成信号を選択する第1の選択回路と、上記第1の演算モードにおいて、上記第1の選択回路で選択された信号を選択し、上記第2の演算モードにおいて、上記生成された第(m−1)キャリー信号または上記第1の選択回路において選択された信号の何れかを、上記第1のデータおよび上記第2のデータの第m桁のビット信号同士の排他的論理和に応じた第mキャリー伝播信号に基づいて選択し、選択結果の信号を上記第(m+1)桁に対するキャリー信号として出力する第2の選択回路とを有しても良い。
上記の目的を達成する第2の発明は、上記第1のデータおよび上記第2のデータの所定の下位桁から第q桁(qは2より大きい自然数を示す)までを加算した結果における第p桁(pは1より大きくqより小さい自然数)のビット信号が第1の値を有すると仮定した場合に、上記加算結果における第(p+1)桁から上記第q桁までのビット信号が全て第1の値になるか否かを判定する第1のビット値判定回路と、上記加算結果における上記第p桁のビット信号が第2の値を有すると仮定した場合に、上記加算結果における上記第(p+1)桁から上記第q桁までのビット信号が全て第2の値になるか否かを判定する第2のビット値判定回路と、上記第1のデータおよび上記第2のデータの上記第p桁のビット信号同士の排他的論理和に応じた第pキャリー伝播信号に基づいて、上記第1のビット値判定回路の判定信号または上記第2のビット値判定回路の判定信号の何れか一方を選択する第1の選択回路と、上記第pキャリー伝播信号に基づいて、上記第1のビット値判定回路の判定信号または上記第2のビット値判定回路の判定信号のうち、上記第1の選択回路で選択されない他方の判定信号を選択する第2の選択回路と、上記加算結果における第(p−1)桁から上記第p桁への第(p−1)キャリー信号に基づいて、上記第1の選択回路または上記第2の選択回路の何れかにおいて選択された判定信号を選択し、当該選択した判定信号を、上記第p桁を符号桁とした上記所定の下位桁から上記第p桁までの加算結果にオーバーフローが発生するか否かを示す信号として出力する第3の選択回路とを有する。
上記の目的を達成する第3の発明は、上記第1のデータおよび上記第2のデータの所定の下位桁から第q桁(qは2より大きい自然数を示す)までを加算した結果における第(p−1)桁から上記第p桁への第(p−1)キャリー信号が第1の値を有すると仮定した場合の、上記第p桁から上記第q桁までの各桁の加算結果を予測する第1の加算結果予測回路と、上記第(p−1)キャリー信号が第2の値を有すると仮定した場合の、上記第p桁から上記第q桁までの各桁の加算結果を予測する第2の加算結果予測回路と、上記第1の加算結果予測回路で予測される第(p+1)桁から第q桁までの加算結果が全て上記第1の値になるか否かを判定する第1の判定回路と、上記第1の加算結果予測回路で予測される第(p+1)桁から第q桁までの加算結果が全て上記第2の値になるか否かを判定する第2の判定回路と、上記第2の加算結果予測回路で予測される第(p+1)桁から第q桁までの加算結果が全て上記第1の値になるか否かを判定する第3の判定回路と、上記第2の加算結果予測回路で予測される第(p+1)桁から第q桁までの加算結果が全て上記第2の値になるか否かを判定する第4の判定回路と、上記第1のデータおよび上記第2のデータの上記第p桁のビット信号同士の排他的論理和に応じた第pキャリー伝播信号に基づいて、上記第1の判定回路の判定信号または上記第2の判定回路の判定信号の何れか一方を選択する第1の選択回路と、上記第pキャリー伝播信号に基づいて、上記第3の判定回路の判定信号または上記第4の判定回路の判定信号の何れか一方を選択する第2の選択回路と、上記第(p−1)キャリー信号に基づいて、上記第1の選択回路または上記第2の選択回路の何れかにおいて選択された判定信号を選択し、当該選択した判定信号を、上記第p桁を符号桁とした上記所定の下位桁から上記第p桁までの加算結果にオーバーフローが発生するか否かを示す信号として出力する第3の選択回路とを有する。
上記第2の発明および上記第3の発明の加算回路は、上記第q桁を符号桁とした上記所定の下位桁から上記第q桁までの加算結果にオーバーフローが発生するか否かを、上記第(p−1)キャリー信号が第1の値を有する第1の場合および当該第(p−1)キャリー信号が第2の値を有する第2の場合のそれぞれについて予測するオーバーフロー予測回路と、上記第p桁を符号桁とした加算結果を取得する演算モードまたは上記第q桁を符号桁とした加算結果を取得する演算モードの何れかを指定する演算モード指定信号に基づいて、上記第1の選択回路において選択される判定信号または上記オーバーフロー予測回路における上記第1の場合の予測信号を選択する第4の選択回路と、上記演算モード指定信号に基づいて、上記第2の選択回路において選択される判定信号または上記オーバーフロー予測回路における上記第2の場合の予測信号を選択する第5の選択回路とを有しても良い。また、上記第3の選択回路は、上記第(p−1)キャリー信号に基づいて、上記第4の選択回路または上記第5の選択回路の何れかにおいて選択された信号を選択し、当該選択した信号を、上記第p桁を符号桁とした上記所定の下位桁から上記第p桁までの加算結果にオーバーフローが発生するか否かを示す信号、または、上記第q桁を符号桁とした上記所定の下位桁から上記第q桁までの加算結果にオーバーフローが発生するか否かを示す信号として出力しても良い。
本発明によれば、オーバーフローの発生を高速に検出できるという利点がある。
以下、本発明をALUの加算回路に適用した2つの実施形態について、図面を参照して説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態に係る加算回路の構成の一例を示すブロック図である。
以下に述べる加算回路は、上述した従来例と同様に、40ビットの信号[a0,…,a39]および[b0,…,b39]と、第1桁へのキャリー信号CINとを入力し、その加算結果として、40ビットの信号[s0,…,s39]を出力する。
また、2つの演算モード(40ビットモード、32ビットモード)を有し、各演算モードにおいて通常モードとデュアルモードを有する。
すなわち、40ビットモードにおいては、第40桁を最上位桁とした加算演算を行い、当該加算演算におけるオーバーフローの有無を示すオーバーフロー検出信号OVFを出力する。
32ビットモードにおいては、第32桁を最上位桁とした加算演算を行い、上記のオーバーフロー検出信号OVFとして、第32桁を符号桁とした加算演算におけるオーバーフローの有無を示す信号を出力する。
通常モードにおいては、第1桁から最上位桁(第40桁または第32桁)までの加算演算を単独に実行する。
デュアルモードにおいては、第1桁から第16桁までの加算演算および第17桁から最上位桁までの加算演算を並列に実行する。この場合、最下位桁へのキャリーとして、下位側の加算演算についてはキャリー信号CINを入力し、上位側の加算演算についてはキャリー信号Cdualを入力する。また、第16桁を符号桁とした下位側の加算演算におけるオーバーフローの有無を示すオーバーフロー検出信号OVF16を出力する。
この加算回路は、図1の例において、論理演算部100および加算部200を有する。
加算部200は、キャリー・インクリメント・アダー(carry increment adder:CIAと略記する)201,202,205と、キャリー・セーブ・アダー(CSA)203と、桁上げ先見回路204,208と、キャリー信号出力回路207と、排他的NOR回路206と、オーバーフロー検出信号出力回路209とを有する。
まず、これらの構成についてそれぞれ説明する。
[論理演算部100]
論理演算部100は、40ビットの信号[a0,…,a39]および[b0,…,b39]を入力し、この入力データの各桁のビット信号に対して、制御信号Scontに応じた論理演算を行う。
図2は、論理演算部100に含まれる、第(i+1)桁の演算ユニット100_iの構成例を示すブロック図である。この演算ユニット100_iは、信号L1〜L5を含んだ制御信号Scontに応じて、入力ビット信号aiおよびbiに所定の論理演算を行う回路である。
図2にの例において、演算ユニット100_iは、AND回路101と、OR回路102と、NOT回路103と、排他的NOR回路104と、排他的OR回路105と、出力回路106とを有する。
AND回路101は、入力ビット信号aiおよびbiと、制御信号Scontに含まれる信号L1とを入力し、この3入力の論理積を信号giとして出力する。
OR回路102、排他的NOR回路104、排他的OR回路105は、何れも入力ビット信号aiおよびbiを入力する。この2入力について、OR回路102は論理和、排他的NOR回路104は排他的反転論理和、排他的OR回路105は排他的論理和をそれぞれ演算する。
NOT回路103は、入力ビット信号biを論理反転する。
出力回路106は、制御信号Scontに含まれる信号L2〜L5に応じて、OR回路102、NOT回路103、排他的NOR回路104および排他的OR回路105の各出力信号から任意の信号を選び、その論理和を信号piとして出力する。
このような構成により、演算ユニット100_iは、入力ビット信号aiおよびbiの論理積を信号giとして出力することができる。
また、入力ビット信号aiおよびbiの論理和、排他的反転論理和もしくは排他的論理和、または入力ビット信号biの論理反転を、信号piとして出力することが可能である。更に、これらの論理演算結果の一部または全部についての論理和演算を行い、これを信号piとして出力することも可能である。
なお、加算演算を行う場合には、信号piが式(4)に示すキャリー伝播信号となり、信号giが式(5)に示すキャリー生成信号となるように、演算ユニット100_iへ入力する制御信号Scontを設定するものとする。
[CIA201]
CIA201は、論理演算部100から出力される第1桁〜第15桁のキャリー伝播信号p0〜p14およびキャリー生成信号g0〜g14と、第1桁へのキャリー信号CINとを入力し、これに応じた加算結果s0〜s14を出力する。
CIA201は、第1桁〜第15桁の信号(p0〜p14,g0〜g14)の入力とともに下位側から上位側に向かって局所的なキャリー生成信号およびキャリー伝播信号を順次に伝播させる回路を有しており、この局所的キャリー生成信号およびキャリー伝播信号とキャリー信号CINとに応じて、各桁の加算結果s1〜s14を算出する。
図3は、CIA201の構成の一例を示すブロック図である。
図3に例示するCIA201は、局所的キャリー伝播信号p1_0,…,p13_0を出力する2入力のAND回路210_0,…,210_12と、局所的キャリー生成信号g1_0,…,g13_0を出力する3入力のAND−OR複合回路212_0,…,212_12と、キャリー信号c0,…,c13を出力する3入力のAND−OR複合回路211_0,…,211_13と、加算結果s0,…,s14を出力する2入力の排他的OR回路213_0,…,213_14とを有する。
2入力のAND回路210_0,…,210_12は、この順序で縦続に接続されており、局所的キャリー伝播信号の出力結果をそれぞれ次段に入力する。
2入力のAND回路210_0は、キャリー伝播信号p0およびp1の論理積を局所的キャリー伝播信号p1_0として出力する。
2入力のAND回路210_k(ここで、kは、1から12までの整数を示す)は、前段から出力される局所的キャリー伝播信号pk_0とキャリー伝播信号p(k+1)との論理積を、局所的キャリー伝播信号p(k+1)_0として出力する。
局所的キャリー伝播信号p1_0,…,p13_0は、次式で表される。
Figure 0003813613
3入力のAND−OR複合回路212_0,…,212_12は、この順序で縦続に接続されており、局所的キャリー生成信号の出力結果をそれぞれ次段に入力する。
すなわち、3入力のAND−OR複合回路212_0は、キャリー生成信号g0とキャリー伝播信号p1との論理積とキャリー生成信号g1との論理和を、局所的キャリー生成信号g1_0として出力する。
3入力のAND−OR複合回路212_k(ここで、kは、1から12までの整数を示す)は、前段から出力される局所的キャリー生成信号gk_0とキャリー伝播信号p(k+1)との論理積とキャリー生成信号g(k+1)との論理和を、局所的キャリー生成信号g(k+1)_0として出力する。
局所的キャリー生成信号g1_0,…,g13_0は、次式で表される。
Figure 0003813613
AND−OR複合回路211_0は、キャリー信号CINとキャリー伝播信号p0との論理積とキャリー生成信号g0との論理和を、第2桁へのキャリー信号c0として出力する。
AND−OR複合回路211_k(ここで、kは、1から12までの整数を示す)は、キャリー信号CINと局所的キャリー伝播信号pk_0との論理積と局所的キャリー生成信号gk_0との論理和を、第(k+1)桁へのキャリー信号ckとして出力する。
キャリー信号ckは次式で表される。
Figure 0003813613
排他的OR回路213_0は、キャリー信号CINとキャリー伝播信号p0との排他的論理和を、第1桁の加算結果s0として出力する。
排他的OR回路213_k(ここで、kは、1から12までの整数を示す)は、キャリー信号c(k−1)とキャリー伝播信号pkとの排他的論理和を、第(k+1)桁の加算結果skとして出力する。
[CIA202]
CIA202は、論理演算部100から出力される第17桁〜第31桁のキャリー伝播信号p16〜p30およびキャリー生成信号g16〜g30と、キャリー出力回路207より出力される第17桁へのキャリー信号c15Aとを入力し、これに応じた加算結果s16〜s30を出力する。
CIA202は、第17桁〜第31桁の信号(p16〜p30,g16〜g30)の入力とともに下位側から上位側に向かって局所的なキャリー生成信号およびキャリー伝播信号を順次に伝播させる回路を有しており、この局所的キャリー生成信号およびキャリー伝播信号と下位からのキャリー信号c15Aとに応じて、各桁の加算結果s16〜s30を算出する。
なお、CIA202の回路構成は、例えば図3に示すCIA201と同様な構成を16ビットに拡張したものでも良い。
すなわち、図3と同様な回路を16ビットに拡張し、その下位15ビットの回路には、第1桁〜第15桁の信号(p0〜p14,g0〜g14)およびキャリー信号CINの代わりに、第17桁〜第30桁の信号(p16〜p29,g16〜g29)およびキャリー信号c15Aを入力する。拡張した16ビット目の回路には、第31桁の信号(p30,g30)と下位からの信号(局所的キャリー伝播信号、局所的キャリー生成信号、キャリー信号)を入力する。このような回路により、第17桁〜第31桁の各桁のキャリー信号c16〜c30と加算結果s16〜s31を得ることができる。
[CSA203]
CSA203は、キャリー信号c30が‘1’と‘0’の場合における第32桁〜第40桁の各桁の加算値を予め算出し、当該算出した2通りの加算値から、キャリー信号c30の値に応じて選択した一方を、加算結果s31〜s39として出力する。
また、これらの加算値とともに予め算出される第39桁および第40桁のキャリーを用いて、キャリー信号c30が‘0’,‘1’の場合における40ビットモードのオーバーフローの予測信号SC0,SC1をそれぞれ算出する。
図4は、CSA203の構成の一例を示すブロック図である。
図4に例示するCSA203は、キャリー信号c30が‘0’の場合における加算値s31_0,…,s39_0を算出する全加算器230_31,…,230_39と、キャリー信号c30が‘1’の場合における加算値s31_1,…,s39_1を算出する全加算器231_31,…,231_39と、加算結果s31,…,s39を出力するセレクタ232_31,…,232_39と、オーバーフローの予測信号SC0,SC1を出力する排他的NOR回路233_0,233_1とを有する。
全加算器230_31,…,230_39には、第32桁から第40桁までのキャリー伝播信号およびキャリー生成信号(p31およびg31,…,p39およびg39)がそれぞれ入力される。
また、全加算器230_31,…,230_39は、この順序で縦続に接続されており、初段の全加算器230_31にはキャリー信号として‘0’の信号が入力され、これに続く各段の全加算器には、前段で算出されたキャリー信号が入力される。
全加算器231_31,…,231_39には、第32桁から第40桁までのキャリー伝播信号およびキャリー生成信号(p31およびg31,…,p39およびg39)がそれぞれ入力される。
また、全加算器231_31,…,231_39は、この順序で縦続に接続されており、初段の全加算器230_31にはキャリー信号として‘1’の信号が入力され、これに続く各段の全加算器には、前段で算出されたキャリー信号が入力される。
図5は、上述した全加算器(230_31〜230_39、231_31〜231_39)の構成の一例を図解したブロック図である。
図5に例示する全加算器は、排他的OR回路233およびAND−OR複合回路234を有する。
記号p,g,cinは全加算器に入力されるキャリー伝播信号,キャリー生成信号,キャリー信号をそれぞれ示し、記号s,coutは全加算器から出力される加算値,キャリー信号をそれぞれ示す。
排他的OR回路233は、前段の全加算器からのキャリー信号cinとキャリー伝播信号pとの排他的論理和を、加算値sとして出力する。
AND−OR複合回路234は、キャリー信号cinとキャリー伝播信号pとの論理積とキャリー生成信号gとの論理和を、キャリー信号coutとして後段の全加算器に出力する。
セレクタ232_j(ここで、jは31から39までの整数を示す)は、キャリー信号c30を‘0’と仮定した全加算器230_jの加算結果sj_0と、キャリー信号c30を‘1’と仮定した全加算器231_jの加算結果sj_1とを入力し、キャリー信号c30の値に応じて選択した一方の信号を加算結果sjとして出力する。
[CLA204]
CLA204は、第15桁から第16桁へのキャリー信号c14を、第1桁から第15桁までのキャリー伝播信号p0〜p14およびキャリー生成信号g0〜g14と、第1桁に対して入力されるキャリー信号CINとに基づいて生成する。
このCLA204と、図2に例示する演算ユニット100_0〜100_14とを含んだ回路は、第1の発明における第1のキャリー信号生成回路の一実施形態である。
図6は、CLA204の構成の一例を図解したブロック図であり、これに関連するCIA205および排他的NOR回路206も同図に図示している。
図6に例示するCLA204は、キャリー信号出力回路240,247と、キャリー生成信号出力回路241,…,243と、キャリー伝播信号出力回路244,…,246とを有する。
キャリー信号出力回路240は、次式で表される第3桁から第4桁へのキャリー信号c2を生成する。
Figure 0003813613
キャリー生成信号出力回路241,242,243は、キャリー生成信号G6_3,G10_7,G14_11をそれぞれ生成する。
キャリー生成信号G(j+3)_j(ここで、jは整数3,7,または11を示す)は、4ビットの入力データ[aj,…,a(j+3)]および[bj,…,b(j+3)]を加算した場合に、この4ビットに対する下位からのキャリー信号C(j−1)に依存せずに、上位へのキャリー信号c(j+3)が‘1’になるか否かを示す信号であり、この信号が‘1’の場合、下位からのキャリーに依らずキャリー信号c(j+3)は‘1’になる。
キャリー生成信号G(j+3)_jは式(6)で表される。
キャリー伝播信号出力回路244,245,246は、キャリー伝播信号P6_3,P10_7,P14_11をそれぞれ生成する。
キャリー伝播信号P(j+3)_j(ここで、jは整数3,7,または11を示す)は、4ビットの入力データ[aj,…,a(j+3)]および[bj,…,b(j+3)]を加算した場合に、この4ビットに対する下位からのキャリー信号C(j−1)に依存して、上位へのキャリー信号c(j+3)が変化するか否かを示す信号であり、この信号が‘1’の場合、下位からのキャリーに依存して上位へのキャリー信号c(j+3)は‘1’または‘0’に変化する。
キャリー伝播信号P(j+3)_jは式(7)で表される
キャリー信号出力回路247は、キャリー信号c2、キャリー生成信号G11_0,G15_0、キャリー伝播信号P6_3,P10_7,P14_11に基づいて、次式で表されるキャリー信号c14を生成する。
Figure 0003813613
[CIA205]
CIA205は、CLA204において生成された第15桁から第16桁へのキャリー信号c14と、第16桁のキャリー伝播信号p15およびキャリー生成信号g15とに基づいて、通常モードにおける第16桁から第17桁へのキャリー信号c15を生成する。
このCIA205と、図2に例示する演算ユニット100_15とを含んだ回路は、第1の発明における第2のキャリー信号生成回路の一実施形態である。
キャリー信号c15は、キャリー信号c14、キャリー伝播信号p15およびキャリー生成信号g15に基づいて、次式のように計算することができる。
Figure 0003813613
[排他的NOR回路206]
排他的NOR回路206は、CLA204より出力されるキャリー信号c14と、CIA205より出力されるキャリー信号c15との排他的反転論理和を演算する。既に述べた式(1)の関係より、排他的NOR回路206の演算結果はオーバーフロー検出信号OVF16となる。
この排他的NOR回路206は、第1の発明における論理演算回路の一実施形態である。
[キャリー信号出力回路207]
キャリー信号出力回路207は、第17桁へのキャリー信号c15Aとして、デュアルモードの場合、外部より供給されるキャリー信号Cdualを出力し、通常モードの場合、下位桁からのキャリー信号c15を出力する。
モード指定信号Mdualが‘1’の場合にデュアルモードになり、当該信号が‘0’の場合に通常モードになるものとすると、キャリー信号c15Aは次式で表される。
Figure 0003813613
式(26)に式(25)を代入して整理すると、キャリー信号c15Aは次式のように表される。
Figure 0003813613
上式の関係から、キャリー信号c15の代わりにキャリー信号c14、キャリー伝播信号p15およびキャリー生成信号g15を用いても、キャリー信号c15Aを生成できることが分かる。
図7は、キャリー信号出力回路207の構成の一例を示すブロック図である。
図7に例示するキャリー信号出力回路207は、NOT回路270と、AND回路271と、セレクタ272,273とを有する。
セレクタ272は、第1の発明における第1の選択回路の一実施形態である。
NOT回路270、AND回路271、およびセレクタ273を含む回路は、第1の発明における第2の選択回路の一実施形態である。
セレクタ272は、デュアルモードにおいてキャリー信号Cdualを選択し、通常モードにおいてキャリー生成信号g15を選択する。すなわち、モード指定信号Mdualが‘1’の場合にキャリー信号Cdualを選択し、モード指定信号Mdualが‘0’の場合にキャリー生成信号g15を選択する。
NOT回路270は、モード指定信号Mdualを論理反転して出力する。
AND回路271は、NOT回路270の出力信号とキャリー伝播信号p15との論理積を演算し、その演算結果をセレクタ273のコントロール信号として出力する。
セレクタ273は、AND回路271の出力信号が‘0’の場合、セレクタ272で選択された信号を選択し、AND回路271の出力信号が‘1’の場合、キャリー信号c14を選択する。
図7に示すキャリー信号出力回路207の動作は次のようになる。
デュアルモードすなわちモード指定信号Mdualが‘1’の場合、AND回路271の出力信号が‘0’になるため、セレクタ272ではキャリー信号Cdualが選択され、セレクタ273ではセレクタ272の出力信号が選択される。したがって、この場合、キャリー信号c15Aとしてキャリー信号Cdualが出力される。
通常モードすなわちモード指定信号Mdualが‘0’の場合、セレクタ272では常にキャリー生成信号g15が選択される。また、AND回路271の出力信号はキャリー伝播信号p15と等しくなる。したがって、この場合、キャリー伝播信号p15が‘1’であればキャリー信号c14が、キャリー伝播信号p15が‘0’であればキャリー生成信号g15が、キャリー信号c15Aとして出力される。
一方、キャリー信号c15は、式(25)から分かるように、キャリー伝播信号p15が‘1’の場合にキャリー生成信号g15が‘0’になるためキャリー信号c14と等しくなり、キャリー伝播信号p15が‘0’の場合にキャリー生成信号g15と等しくなる。
したがって、通常モードの場合、キャリー信号c15Aとしてキャリー信号c15が出力される。
[CLA208]
CLA208は、第31桁から第32桁へのキャリー信号c30を、第17桁から第31桁までのキャリー伝播信号p16〜p30およびキャリー生成信号g16〜g30と、第17桁に対して入力されるキャリー信号c15Aとに基づいて生成する。
CLA208は、例えば図6に示すCLA204と同様な構成によって実現可能である。すなわち、第1桁〜第15桁の信号(p0〜p14,g0〜g14)およびキャリー信号CINの代わりに、第17桁〜第31桁の信号(p16〜p30,g16〜g30)およびキャリー信号c15Aを図6と同様な回路に入力することにより、キャリー信号c30を得ることができる。
[オーバーフロー検出信号出力回路209]
オーバーフロー検出信号出力回路209は、40ビットモードの場合、第40桁を符号桁とした加算演算におけるオーバーフローの有無を示し、32ビットモードの場合、第32桁を符号桁とした加算演算におけるオーバーフローの有無を示す、オーバーフロー検出信号OVFを出力する。
40ビットモードの場合、オーバーフロー検出信号出力回路209は、オーバーフロー検出信号OVFとして式(14)で表されるオーバーフロー検出信号OVF40を出力する。
この場合、オーバーフロー検出信号出力回路209は、CSA203から出力されるオーバーフローの予測信号SC0,SC1の一方をキャリー信号c30の値に応じて選択して出力する。
一方、32ビットモードの場合、オーバーフロー検出信号出力回路209は、オーバーフロー検出信号OVFとして式(15)で表されるオーバーフロー検出信号OVF32を出力する。
式(15)における第32桁の加算結果s31を、キャリー信号c30とキャリー伝播信号p31との排他的論理和に置き換えると、式(15)は次式のように変形される。
Figure 0003813613
ただし、上式における変数ALL1およびALL0は次式で表される。
Figure 0003813613
式(29)から分かるように、加算結果s32〜s39が全て‘1’でなければ変数ALL1は‘0’になる。変数ALL1が仮に‘1’であっても、加算結果s31が‘1’でなければ、式(28)において変数ALL1を含む項は全て‘0’になる。すなわち、加算結果sj(ここで、jは32〜39の整数を示す)が仮に‘1’であっても、その前桁の加算結果s(j−1)が‘1’でなければ、式(28)の結果は変数ALL1が‘0’の場合と同じになる。
ここで、前桁の加算結果s(j−1)が‘1’であると仮定した場合における加算結果sjを‘p1_sj’とすると、この加算結果p1_sjは次式で表される。
Figure 0003813613
式(29)における加算結果s32〜s39を上式の加算結果p1_s32〜p1_s39に置き換えたものを‘pALL1’とすると、式(28)において変数ALL1を次式に表される変数pALL1へ置き換えても、式(28)の結果は変化しない。
Figure 0003813613
また、式(30)から分かるように、加算結果s32〜s39が全て‘0’でなければ変数ALL0は‘0’になる。変数ALL0が仮に‘1’であっても、加算結果s31が‘0’でなければ、式(28)において変数ALL0を含む項は全て‘0’になる。すなわち、加算結果sj(ここで、jは32〜39の整数を示す)が仮に‘0’であっても、その前桁の加算結果s(j−1)が‘0’でなければ、式(28)の結果は変数ALL0が‘0’の場合と同じになる。
ここで、前桁の加算結果s(j−1)が‘0’であると仮定した場合における加算結果sjを‘p0_sj’とすると、この加算結果p0_sjは次式で表される。
Figure 0003813613
式(30)における加算結果s32〜s39を上式の加算結果p0_s32〜p0_s39に置き換えたものを‘pALL0’とすると、式(28)において変数ALL0を次式に表される変数pALL0へ置き換えても、式(28)の結果は変化しない。
Figure 0003813613
したがって、式(28)に示すオーバーフロー検出信号OFV32は、次式で表すことができる。
Figure 0003813613
式(35)の関係を用いると、オーバーフロー検出信号出力回路209は、キャリー信号c30の到着を待たずに式(35)における第1項および第2項の括弧内の計算を実行し、この計算結果の一方をキャリー信号c30に応じて切り替えて出力する構成にすることができる。
図8は、オーバーフロー検出信号出力回路209の構成の一例を示すブロック図であり、これに関連するCSA203も同図に図示している。
図8に例示するオーバーフロー検出信号出力回路209は、第1のビット値判定回路290と、第2のビット値判定回路291と、セレクタ292,…,296とを有する。
第1のビット値判定回路290は、第2の発明における第1のビット値判定回路の一実施形態である。
第2のビット値判定回路291は、第2の発明における第2のビット値判定回路の一実施形態である。
セレクタ292は、第2の発明における第1の選択回路の一実施形態である。
セレクタ293は、第2の発明における第2の選択回路の一実施形態である。
セレクタ296は、第2の発明における第3の選択回路の一実施形態である。
セレクタ294は、第2の発明および第3の発明における第4の選択回路の一実施形態である。
セレクタ295は、第2の発明および第3の発明における第5の選択回路の一実施形態である。
CSA203は、第2の発明および第3の発明におけるオーバーフロー予測回路の一実施形態である。
第1のビット値判定回路290は、所定の下位桁(通常モードにおいて第1桁、デュアルモードにおいて第17桁)から第40桁までを加算した結果における第32桁のビット信号s31が‘0’と仮定した場合に、この加算結果における第33桁から第40桁までのビット信号s32〜s39が全て‘0’になるか否かを判定する。そして、この判定の結果を示す判定信号として、ビット信号s32〜s39が全て‘0’になる場合に‘1’、当該信号が全て‘0’にならない場合に‘0’となる判定信号を出力する。
すなわち、第1のビット値判定回路290は、式(34)に示す変数pALL0の算出結果を上述の判定信号として出力する。
図9は、第1のビット値判定回路290の構成の一例を示すブロック図である。
第1のビット値判定回路290は、例えば図9に示すように、OR回路290_1,…,290_8と、排他的OR回路290_9,…,290_16と、NOR回路290_17とを有する。
OR回路290_1,…,290_8、および排他的OR回路290_9,…,290_16を含む回路は、第2の発明における第1のビット値算出回路の一実施形態である。
NOR回路290_17は、第2の発明における第1の判定回路の一実施形態である。
OR回路290_j(ここで、jは1から8までの整数を示す)は、入力ビット信号a(j+30)とb(j+30)との論理和を出力する。
排他的OR回路291_(j+8)は、OR回路290_jの出力信号とキャリー伝播信号p(j+31)との排他的論理和を出力する。この出力信号は、加算結果s(j+30)が‘0’であると仮定した場合における加算結果p0_s(j+31)と等しい。
NOR回路290_17は、排他的OR回路290_9〜290_16の出力信号の反転論理和を演算し、これを変数pALL0の算出結果として出力する。
第2のビット値判定回路291は、所定の下位桁(通常モードにおいて第1桁、デュアルモードにおいて第17桁)から第40桁までを加算した結果における第32桁のビット信号s31が‘1’と仮定した場合に、この加算結果における第33桁から第40桁までのビット信号s32〜s39が全て‘1’になるか否かを判定する。そして、この判定結果を示す信号として、ビット信号s32〜s39が全て‘1’になる場合に‘1’、当該信号が全て‘1’にならない場合に‘0’となる判定信号を出力する。
すなわち、第1のビット値判定回路291は、式(32)に示す変数pALL1の算出結果を上述の判定信号として出力する。
図10は、第2のビット値判定回路291の構成の一例を示すブロック図である。
第2のビット値判定回路291は、例えば図10に示すように、排他的OR回路291_1,…,291_8と、AND回路291_9とを有する。
排他的OR回路291_1,…,291_8を含む回路は、第2の発明における第2のビット値算出回路の一実施形態である。
AND回路291_9は、第2の発明における第2の判定回路の一実施形態である。
排他的OR回路291_j(ここで、jは1から8までの整数を示す)は、キャリー生成信号g(j+30)とキャリー伝播信号p(j+31)との排他的論理和を演算する。この演算結果は、加算結果s(j+30)が‘1’であると仮定した場合における加算結果p1_s(j+31)と等しい。
AND回路291_9は、排他的OR回路291_1〜291_8の出力信号の論理積を演算し、これを変数pALL1の算出結果として出力する。
セレクタ292は、第32桁のキャリー伝播信号p31に基づいて、第1のビット値判定回路290の判定信号または第2のビット値判定回路291の判定信号の何れか一方を選択する。
すなわち、第32桁のキャリー伝播信号p31が‘1’の場合、第2のビット値判定回路291の判定信号(pALL1)を選択し、キャリー伝播信号p31が‘0’の場合、第1のビット値判定回路290の判定信号(pALL0)を選択する。
セレクタ293は、キャリー伝播信号p31に基づいて、第1のビット値判定回路290の判定信号または第2のビット値判定回路291の判定信号のうち、セレクタ292で選択されない他方の判定信号を選択する。
すなわち、キャリー伝播信号p31が‘1’の場合、第1のビット値判定回路290の判定信号(pALL0)を選択し、キャリー伝播信号p31が‘0’の場合、第2のビット値判定回路291の判定信号(pALL1)を選択する。
セレクタ294は、モード指定信号M40に基づいて、セレクタ292の出力信号またはCSA203のオーバーフロー予測信号SC0を選択する。
すなわち、モード指定信号M40が‘0’になる32ビットモードにおいてセレクタ292の出力信号を選択し、モード指定信号M40が‘1’になる40ビットモードにおいてCSA203のオーバーフロー予測信号SC0を選択する。
セレクタ295は、モード指定信号M40に基づいて、セレクタ293の出力信号またはCSA203のオーバーフロー検出信号SC1を選択する。
すなわち、モード指定信号M40が‘0’になる32ビットモードにおいてセレクタ293の出力信号を選択し、モード指定信号M40が‘1’になる40ビットモードにおいてCSA203のオーバーフロー検出信号SC1を選択する。
セレクタ296は、キャリー信号c30に基づいて、セレクタ294の出力信号またはセレクタ295の出力信号を選択し、当該選択結果をオーバーフロー検出信号OVFとして出力する。
すなわち、キャリー信号c30が‘0’の場合にセレクタ294の出力信号を選択し、キャリー信号c30が‘1’の場合にセレクタ295の出力信号を選択する。
図8に示すオーバーフロー検出信号出力回路209の動作は次のようになる。
40ビットモードすなわちモード指定信号M40が‘1’の場合、CSA203において予測されるオーバーフロー予測信号SC0およびSC1がそれぞれセレクタ294および295において選択され、セレクタ296に入力される。
キャリー信号c30がセレクタ296に到着すると、このキャリー信号c30の値に応じて、オーバーフロー予測信号SC0またはSC1の一方がセレクタ296により選択され、オーバーフロー検出信号OVFとして出力される。
32ビットモードすなわちモード指定信号M40が‘0’の場合、セレクタ296には、セレクタ294を介してセレクタ292の出力信号が入力されるとともに、セレクタ295を介してセレクタ293の出力信号が入力される。
また、キャリー伝播信号p31の値に応じて、セレクタ292および293の一方から第1のビット値判定回路290の判定信号(pALL0)、他方から第2のビット値判定回路291の判定信号(pALL1)が出力される。すなわち、キャリー伝播信号p31が‘1’の場合、セレクタ292から第2のビット値判定回路291の判定信号(pALL1)、セレクタ293から第1のビット値判定回路290の判定信号(pALL0)が出力され、キャリー伝播信号p31が‘0’の場合は上述と逆の信号がセレクタ292および293からそれぞれ出力される。
キャリー信号c30がセレクタ296に到着すると、このキャリー信号c30の値に応じて、セレクタ292または293の一方の出力信号がセレクタ296により選択され、オーバーフロー検出信号OVFとして出力される。
すなわち、キャリー信号c30が‘0’の場合はセレクタ292の出力信号、キャリー信号c30が‘1’の場合はセレクタ293の出力信号が選択される。
したがって、キャリー信号c30が‘0’でキャリー伝播信号p31が‘0’の場合およびキャリー信号c30が‘1’でキャリー伝播信号p31が‘1’の場合は、第1のビット値判定回路290の判定信号(pALL0)がオーバーフロー検出信号OVFとして出力される。
キャリー信号c30が‘0’でキャリー伝播信号p31が‘1’の場合およびキャリー信号c30が‘1’でキャリー伝播信号p31が‘0’の場合は、第2のビット値判定回路291の判定信号(pALL1)がオーバーフロー検出信号OVFとして出力される。
すなわち、式(35)の関係を満たすオーバーフロー検出信号OVFが出力される。
ここで、上述した構成を有する加算回路の動作について説明する。
加算演算を行う場合、制御信号Scontに所定の値が設定され、論理演算部100からキャリー生成信号(g0〜g39)およびキャリー伝播信号(p0〜p39)が出力される。
論理演算部100よりこれらの信号(g0〜g39,p0〜p39)が出力されると、CLA204においてキャリー信号c14の生成が実行され、これと並行して、CIA201において第1桁〜第15桁の加算結果s0〜s14の算出が実行される。
また、CSA203では、キャリー信号c30が‘0’と‘1’の場合における第32桁〜第40桁の加算結果(s31_0〜s39_0,s31_1〜s39_1)の算出およびオーバーフロー予測信号(SC0,SC1)の生成が実行される。
キャリー信号出力回路207では、セレクタ272および273における信号の選択が実行される。
オーバーフロー検出信号出力回路209では、第1のビット値判定回路290および第2のビット値判定回路291における判定信号の生成、セレクタ292〜295における信号の選択が、キャリー信号c30の到着を待たずに実行される。
通常モードの場合、CLA204から出力されるキャリー信号c14が確定すると、このキャリー信号c14がキャリー信号出力回路207のセレクタ273に到達し、第17桁へのキャリー信号c15Aが確定する。次いで、この確定したキャリー信号c15AがCIA202およびCLA208に入力されると、CIA202における第17桁〜第31桁の加算結果s0〜s14の算出と、CLA208におけるキャリー信号c30の生成とが並行して実行される。
また、キャリー信号c14が確定すると、CIA205において第16桁の加算結果s15の算出が実行される。
一方、デュアルモードの場合、CLA204から出力されるキャリー信号c14とは無関係に第17桁へのキャリー信号c15Aがキャリー信号Cdualとして確定するため、CIA202における第17桁〜第31桁の加算結果s16〜s30の算出と、CLA208におけるキャリー信号c30の生成は、第1桁〜第14桁の処理とほぼ並行して実行される。
ただし、CIA205における第16桁の加算結果s15の算出については、通常モードと同様に、キャリー信号c14の確定を待って実行される。
また、CIA205において加算結果s15の算出とともにキャリー信号c15の生成が実行され、このキャリー信号c15が確定すると、排他的NOR回路206においてキャリー信号c14およびc15の排他的論理和演算が実行され、デュアルモード時の下位側のオーバーフロー検出信号OVF16が生成される。
CLA208から出力されるキャリー信号c30が確定すると、その値に応じて、CSA203により予め算出された2通りの加算結果の一方が選択され、加算結果s31〜s39として出力される。
また、確定したキャリー信号c30の値に応じて、オーバーフロー検出信号出力回路209のセレクタ296に入力される2つの信号の一方がオーバーフロー検出信号OVFとして出力される。この2つの信号は、キャリー信号c30の到着を待たずに生成される信号であるため、キャリー信号c30がセレクタ296に到着するとオーバーフロー検出信号OVFは素早く確定する。
以上説明したように、本実施形態に係る加算回路によれば、入力データの第1桁から第16桁までを加算した結果における第15桁から第16桁へのキャリー信号c14が、入力データの第1桁から第15桁までのビット信号(a0〜a15,b0〜b15)と、第1桁に対して入力されるキャリー信号CINとに基づいて生成され、CLA204より出力される。次いで、この生成されたキャリー信号c14と、入力データの第16桁のビット信号(a15,b15)とに基づいて、第16桁から第17桁へのキャリー信号c15が生成され、CIA205より出力される。そして、このキャリー信号c14およびc15が排他的NOR回路206において演算されることにより、オーバーフロー検出信号OVF16が生成される。
したがって、図12に示すように、キャリー信号c11およびc15を並行して生成する従来の方式に比べて、桁上げ先見回路の回路規模が小さくなり、駆動する素子の数が減るため、消費電力を削減することができる。また、図12に示す桁上げ先見回路と比べて、1段目のキャリー生成信号出力回路やキャリー伝播信号出力回路に対して容量性の負荷となる2段目の回路の数を減らすことができるため、オーバーフロー検出信号OVF16の生成を高速化することができる。
また、本実施形態に係る加算回路によれば、セレクタ272において、第17桁から所定の上位桁(32ビットモード時に第32桁、40ビットモード時に第40桁)までの加算演算を実行するデュアルモードの場合にキャリー信号Cdualが選択され、第1桁から上記所定の上位桁までの加算演算を実行する通常モードの場合に第16桁のキャリー生成信号g15が選択される。セレクタ273では、デュアルモードの場合、セレクタ272の出力信号が選択され、通常モードの場合、第16桁のキャリー伝播信号p15に応じてキャリー信号c14またはセレクタ272の出力信号の何れかが選択される。そして、このセレクタ273の選択結果が、上記第17桁に対するキャリー信号c15AとしてCLA208やCIA202に出力される。
したがって、キャリー信号c15Aを生成する信号の中で最も高速性を要求されるクリティカルな信号(c14)は、出力に到達するまでに1段のセレクタ(273)を通過するだけでよく、同様な信号(G15_0)が2段のセレクタ(14,17)を通過しなければならない図13の回路に比べて、キャリー信号c15Aの生成を高速化することができる。
更に、本実施形態に係る加算回路によれば、第1のビット値判定回路290において、入力データの所定の下位桁(通常モード時に第1桁、デュアルモード時に第17桁)から第40桁までを加算した結果における第32桁のビット信号が‘0’を有すると仮定した場合に、この加算結果における第33桁から第40桁までのビット信号s32〜s39が全て‘0’になるか否かが判定される。第2のビット値判定回路291では、上記加算結果における第32桁のビット信号が‘1’を有すると仮定した場合に、上記加算結果における第33桁から第40桁までのビット信号s32〜s39が全て‘1’になるか否かが判定される。セレクタ292では、第32桁のキャリー伝播信号p31に基づいて、第1のビット値判定回路290の判定信号(pALL0)または第2のビット値判定回路291の判定信号(pALL1)の何れか一方が選択される。セレクタ293では、キャリー伝播信号p31に基づいて、第1のビット値判定回路290の判定信号(pALL0)または第2のビット値判定回路291の判定信号(pALL1)のうち、セレクタ292で選択されない他方の判定信号が選択される。そして、32ビットモードの場合、セレクタ296では、第31桁から第32桁へのキャリー信号c30に基づいて、セレクタ292またはセレクタ293の何れかにおいて選択された判定信号が選択され、当該選択結果が32ビットモード時のオーバーフロー検出信号OVFとして出力される。
したがって、最も遅延する信号であるキャリー信号c30の確定を待つことなく、最終段のセレクタ296の入力信号までを生成することが可能であり、キャリー信号c30が確定した場合にはセレクタ296のコントロールのみでオーバーフロー検出信号OVFを確定させることができる。したがって、キャリー信号c30が値の確定後に幾つもの回路を通過する必要がある図14に示す回路に比べて、32ビットモード時のオーバーフロー検出信号OVFを大幅に高速化することができる。
また、本実施形態によれば、CSA203において、キャリー信号c30が‘0’となる第1の場合およびキャリー信号c30が‘1’となる第2の場合のそれぞれについて、40ビットモード時にオーバーフローが発生するか否かが予測され、その予測信号SC0およびSC1が生成される。セレクタ294では、モード指定信号M40に基づいて、セレクタ292より出力される判定信号または上記第1の場合の予測信号SC0が選択される。セレクタ295では、モード指定信号M40に基づいて、セレクタ293より出力される判定信号または上記第2の場合の予測信号SC1が選択される。そして、セレクタ296では、キャリー信号c30に基づいて、セレクタ294または295の何れかにおいて選択された信号が選択される。
したがって、32ビットモードおよび40ビットモードの何れにおいても、キャリー信号c30の確定を待つことなく最終段のセレクタ296の入力信号までを生成することが可能であり、両モードのオーバーフローを高速に検出することができる。
<第2の実施形態>
次に、本発明の第2の実施形態について述べる。
図11は、第2の実施形態に係るオーバーフロー検出信号出力回路209Aの構成の一例を示すブロック図である。
本実施形態に係る加算回路は、第1の実施形態に係る上述した加算回路において、図8に示すオーバーフロー検出信号出力回路209を図11に示するオーバーフロー検出信号出力回路209Aに置き換えたものであり、その他の構成は上述した加算回路と同じである。
図11に例示するオーバーフロー検出信号出力回路209Aは、オーバーフロー検出信号出力回路209と同じセレクタ292〜296を有するとともに、第1のビット値判定回路290および第2のビット値判定回路291の代わりとして、第1の判定回路297_0、第2の判定回路298_0、第3の判定回路297_1、および第4の判定回路298_1を有する。
なお、第1の判定回路297_0は、第3の発明における第1の判定回路の一実施形態である。
第2の判定回路298_0は、第3の発明における第2の判定回路の一実施形態である。
第3の判定回路297_1は、第3の発明における第3の判定回路の一実施形態である。
第4の判定回路298_1は、第3の発明における第4の判定回路の一実施形態である。
また、CSA203は、第3の発明における第1の加算結果予測回路および第2の加算結果予測回路の一実施形態である。
第1の判定回路297_0は、CSA203においてキャリー信号c30を‘0’と仮定して予め算出される加算値s32_0〜s39_0を入力し、これらが全て‘0’になる場合に‘1’、全て‘0’にならない場合に‘0’となる判定信号ALL0_0を出力する。
第2の判定回路298_0は、この予測の加算値s32_0〜s39_0が全て‘1’になる場合に‘1’、全て‘1’にならない場合に‘0’となる判定信号ALL1_0を出力する。
第3の判定回路297_1は、CSA203においてキャリー信号c30を‘1’と仮定して予め算出される加算値s32_1〜s39_1を入力し、これらが全て‘0’になる場合に‘1’、全て‘0’にならない場合に‘0’となる判定信号ALL0_1を出力する。
第4の判定回路298_1は、この予測の加算値s32_1〜s39_1が全て‘1’になる場合に‘1’、全て‘1’にならない場合に‘0’となる判定信号ALL1_1を出力する。
セレクタ292には、第1のビット値判定回路290の判定信号(pALL0)の代わりに第1の判定回路297_0の判定信号ALL0_0が入力され、第2のビット値判定回路291の判定信号(pALL1)の代わりに第2の判定回路298_0の判定信号ALL1_0が入力される。
セレクタ293には、第1のビット値判定回路290の判定信号(pALL0)の代わりに第3の判定回路297_1の判定信号ALL0_1が入力され、第2のビット値判定回路291の判定信号(pALL1)の代わりに第4の判定回路298_1の判定信号ALL1_1が入力される。
その他、セレクタ292〜296の入力信号とその切り替え動作については、図8に示すオーバーフロー検出信号出力回路209と同様である。
上述した構成を有するオーバーフロー検出信号出力回路209Aによると、式(28)の第1項における変数ALL0およびALL1を上述した判定信号ALL0_1およびALL1_1に置換するとともに、式(28)の第2項における変数ALL0およびALL1を上述した判定信号ALL0_0およびALL1_0に置換して計算した信号が、32ビットモードのオーバーフロー検出信号として得られる。
式(28)の第1項は、キャリー信号c30が‘1’でなければ‘0’になるため、キャリー信号c30を‘1’と仮定して得られる判定信号ALL0_1およびALL1_1を変数ALL0およびALL1に置き換えても、式(28)の値は変わらない。また、式(28)の第2項は、キャリー信号c30が‘0’でなければ‘0’になるため、キャリー信号c30を‘0’と仮定して得られる判定信号ALL0_0およびALL1_0を変数ALL0およびALL1に置き換えても、式(28)の値は変わらない。
したがって、図11に示すようにCSA203の予測値を利用する方法でも、32ビットモードのオーバーフロー検出信号を得ることが可能である。
また、図11に示すオーバーフロー検出信号出力回路209Aにおいても、キャリー信号c30の確定を待つことなく、最終段のセレクタ296の入力信号までを生成可能であり、32ビットモード時におけるオーバーフローを高速に検出することができる。
なお、本発明は上述した実施形態に限定されず、種々の改変が可能である。
例えば、上述した実施形態において扱われる各種の信号のデータ長や、論理回路の構成などは説明上の一例であり、任意に変更可能である。
また、加算結果を算出する加算器の構成や、桁上げ先見回路の構成も一例であり、他の種々の構成に変更可能である。
本発明の第1の実施形態に係る加算回路の構成の一例を示すブロック図である。 論理演算部100に含まれる各桁の演算ユニットの構成例を示すブロック図である。 キャリー・インクリメント・アダーの構成の一例を示すブロック図である。 キャリー・セレクト・アダーの構成の一例を示すブロック図である。 キャリー・セレクト・アダーに含まれる全加算器の構成の一例を図解したブロック図である。 桁上げ先見回路の構成の一例を図解したブロック図である。 キャリー信号出力回路の構成の一例を示すブロック図である。 オーバーフロー検出信号出力回路の構成の一例を示すブロック図である。 第1のビット値判定回路の構成の一例を示すブロック図である。 第2のビット値判定回路の構成の一例を示すブロック図である。 第2の実施形態に係るオーバーフロー検出信号出力回路の構成の一例を示すブロック図である。 従来の加算回路において、下位16ビットのオーバーフロー検出信号を生成する回路の構成例を示すブロック図である。 従来の加算回路において、第17桁へのキャリー信号を出力する回路の構成例を示すブロック図である。 従来の加算回路において、上位側のオーバーフロー検出信号を生成する回路の構成例を示すブロック図である。
符号の説明
100…論理演算部、200…加算部、201,202,205…キャリー・インクリメント・アダー(CIA)、203…キャリー・セレクト・アダー(CSA)、204,208…桁上げ先見回路(CLA)、206,290_9〜290_16,291_1〜291_8…排他的NOR回路、207,240,247…キャリー信号出力回路、209,209A…オーバーフロー検出信号出力回路、230_0〜203_39,231_31〜231_39…全加算器、241〜243…キャリー生成信号出力回路、244〜246…キャリー伝播信号出力回路、270…NOT回路、271,291_9…AND回路、290_1〜290_8…OR回路、290_17…NOR回路、272,273,292〜296…セレクタ、290…第1のビット値判定回路、291…第2のビット値判定回路、297_0…第1の判定回路、298_0…第2の判定回路、297_1…第3の判定回路、298_1…第4の判定回路

Claims (6)

  1. 入力される第1のデータおよび第2のデータを加算する加算回路であって、
    上記第1のデータおよび上記第2のデータの所定の下位桁から第m桁(mは2より大きい自然数を示す)までを加算した結果における第(m−1)桁から第m桁への第(m−1)キャリー信号を、上記第1のデータおよび上記第2のデータの上記所定の下位桁から上記第(m−1)桁までのビット信号と、上記所定の下位桁に対して入力されるキャリー信号とに基づいて生成する第1のキャリー信号生成回路と、
    上記生成された第(m−1)キャリー信号と、上記第1のデータおよび上記第2のデータの上記第m桁のビット信号とに基づいて、上記第m桁から第(m+1)桁への第mキャリー信号を生成する第2のキャリー信号生成回路と、
    上記生成された第(m−1)キャリー信号と第mキャリー信号とに所定の論理演算を行い、当該演算結果を、上記第m桁を符号桁とした上記所定の下位桁から第m桁までの加算結果にオーバーフローが発生するか否かを示す信号として出力する論理演算回路と、
    を有する加算回路。
  2. 上記第(m+1)桁から上記第(m+1)桁を超える所定の上位桁までの加算演算を実行する第1の演算モードにおいて、上記第(m+1)桁に対して入力されるキャリー信号を選択し、上記所定の下位桁から上記第(m+1)桁を超える所定の上位桁までの加算演算を実行する第2の演算モードにおいて、上記第1のデータおよび上記第2のデータの第m桁のビット信号同士の論理積に応じた第mキャリー生成信号を選択する第1の選択回路と、
    上記第1の演算モードにおいて、上記第1の選択回路で選択された信号を選択し、上記第2の演算モードにおいて、上記生成された第(m−1)キャリー信号または上記第1の選択回路において選択された信号の何れかを、上記第1のデータおよび上記第2のデータの第m桁のビット信号同士の排他的論理和に応じた第mキャリー伝播信号に基づいて選択し、選択結果の信号を上記第(m+1)桁に対するキャリー信号として出力する第2の選択回路と、を有する、
    請求項1に記載の加算回路。
  3. 入力される第1のデータおよび第2のデータを加算する加算回路であって、
    上記第1のデータおよび上記第2のデータの所定の下位桁から第q桁(qは2より大きい自然数を示す)までを加算した結果における第p桁(pは1より大きくqより小さい自然数)のビット信号が第1の値を有すると仮定した場合に、上記加算結果における第(p+1)桁から上記第q桁までのビット信号が全て第1の値になるか否かを判定する第1のビット値判定回路と、
    上記加算結果における上記第p桁のビット信号が第2の値を有すると仮定した場合に、上記加算結果における上記第(p+1)桁から上記第q桁までのビット信号が全て第2の値になるか否かを判定する第2のビット値判定回路と、
    上記第1のデータおよび上記第2のデータの上記第p桁のビット信号同士の排他的論理和に応じた第pキャリー伝播信号に基づいて、上記第1のビット値判定回路の判定信号または上記第2のビット値判定回路の判定信号の何れか一方を選択する第1の選択回路と、
    上記第pキャリー伝播信号に基づいて、上記第1のビット値判定回路の判定信号または上記第2のビット値判定回路の判定信号のうち、上記第1の選択回路で選択されない他方の判定信号を選択する第2の選択回路と、
    上記加算結果における第(p−1)桁から上記第p桁への第(p−1)キャリー信号に基づいて、上記第1の選択回路または上記第2の選択回路の何れかにおいて選択された判定信号を選択し、当該選択した判定信号を、上記第p桁を符号桁とした上記所定の下位桁から上記第p桁までの加算結果にオーバーフローが発生するか否かを示す信号として出力する第3の選択回路と、
    を有する加算回路。
  4. 上記第1のビット値判定回路は、
    上記第(p+1)桁から上記第q桁までの各桁に対応するビット値をそれぞれ算出する第1のビット値算出回路であって、上記第1のデータおよび上記第2のデータの第k桁(kはpから(q−1)までの自然数を示す)の加算結果が上記第1の値を有すると仮定した場合における第(k+1)桁の加算結果のビット値を、上記第1のデータおよび上記第2のデータの第k桁および第(k+1)桁のビット信号に基づいてそれぞれ算出する第1のビット値算出回路と、
    上記第1のビット値算出回路において算出された各桁のビット値が全て上記第1の値であるか否かを判定する第1の判定回路とを含み、
    上記第2のビット値判定回路は、
    上記第(p+1)桁から上記第q桁までの各桁に対応するビット値をそれぞれ算出する第2のビット値算出回路であって、上記第1のデータおよび上記第2のデータの第k桁の加算結果が上記第2の値を有すると仮定した場合における第(k+1)桁の加算結果のビット値を、上記第1のデータおよび上記第2のデータの第k桁および第(k+1)桁のビット信号に基づいてそれぞれ算出する第2のビット値算出回路と、
    上記第2のビット値算出回路において算出された各桁のビット値が全て上記第2の値であるか否かを判定する第2の判定回路とを含む、
    請求項3に記載の加算回路。
  5. 入力される第1のデータおよび第2のデータを加算する加算回路であって、
    上記第1のデータおよび上記第2のデータの所定の下位桁から第q桁(qは2より大きい自然数を示す)までを加算した結果における第(p−1)桁から上記第p桁への第(p−1)キャリー信号が第1の値を有すると仮定した場合の、上記第p桁から上記第q桁までの各桁の加算結果を予測する第1の加算結果予測回路と、
    上記第(p−1)キャリー信号が第2の値を有すると仮定した場合の、上記第p桁から上記第q桁までの各桁の加算結果を予測する第2の加算結果予測回路と、
    上記第1の加算結果予測回路で予測される第(p+1)桁から第q桁までの加算結果が全て上記第1の値になるか否かを判定する第1の判定回路と、
    上記第1の加算結果予測回路で予測される第(p+1)桁から第q桁までの加算結果が全て上記第2の値になるか否かを判定する第2の判定回路と、
    上記第2の加算結果予測回路で予測される第(p+1)桁から第q桁までの加算結果が全て上記第1の値になるか否かを判定する第3の判定回路と、
    上記第2の加算結果予測回路で予測される第(p+1)桁から第q桁までの加算結果が全て上記第2の値になるか否かを判定する第4の判定回路と、
    上記第1のデータおよび上記第2のデータの上記第p桁のビット信号同士の排他的論理和に応じた第pキャリー伝播信号に基づいて、上記第1の判定回路の判定信号または上記第2の判定回路の判定信号の何れか一方を選択する第1の選択回路と、
    上記第pキャリー伝播信号に基づいて、上記第3の判定回路の判定信号または上記第4の判定回路の判定信号の何れか一方を選択する第2の選択回路と、
    上記第(p−1)キャリー信号に基づいて、上記第1の選択回路または上記第2の選択回路の何れかにおいて選択された判定信号を選択し、当該選択した判定信号を、上記第p桁を符号桁とした上記所定の下位桁から上記第p桁までの加算結果にオーバーフローが発生するか否かを示す信号として出力する第3の選択回路と、
    を有する加算回路。
  6. 上記第q桁を符号桁とした上記所定の下位桁から上記第q桁までの加算結果にオーバーフローが発生するか否かを、上記第(p−1)キャリー信号が第1の値を有する第1の場合および当該第(p−1)キャリー信号が第2の値を有する第2の場合のそれぞれについて予測するオーバーフロー予測回路と、
    上記第p桁を符号桁とした加算結果を取得する演算モードまたは上記第q桁を符号桁とした加算結果を取得する演算モードの何れかを指定する演算モード指定信号に基づいて、上記第1の選択回路において選択される判定信号または上記オーバーフロー予測回路における上記第1の場合の予測信号を選択する第4の選択回路と、
    上記演算モード指定信号に基づいて、上記第2の選択回路において選択される判定信号または上記オーバーフロー予測回路における上記第2の場合の予測信号を選択する第5の選択回路と、
    を有し、
    上記第3の選択回路は、上記第(p−1)キャリー信号に基づいて、上記第4の選択回路または上記第5の選択回路の何れかにおいて選択された信号を選択し、当該選択した信号を、上記第p桁を符号桁とした上記所定の下位桁から上記第p桁までの加算結果にオーバーフローが発生するか否かを示す信号、または、上記第q桁を符号桁とした上記所定の下位桁から上記第q桁までの加算結果にオーバーフローが発生するか否かを示す信号として出力する、
    請求項3、4または5の何れか一に記載の加算回路。
JP2004011018A 2004-01-19 2004-01-19 加算回路 Expired - Fee Related JP3813613B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004011018A JP3813613B2 (ja) 2004-01-19 2004-01-19 加算回路
US11/038,563 US7680874B2 (en) 2004-01-19 2005-01-18 Adder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004011018A JP3813613B2 (ja) 2004-01-19 2004-01-19 加算回路

Publications (2)

Publication Number Publication Date
JP2005202885A JP2005202885A (ja) 2005-07-28
JP3813613B2 true JP3813613B2 (ja) 2006-08-23

Family

ID=34823574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004011018A Expired - Fee Related JP3813613B2 (ja) 2004-01-19 2004-01-19 加算回路

Country Status (2)

Country Link
US (1) US7680874B2 (ja)
JP (1) JP3813613B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2890763B1 (fr) * 2005-09-12 2007-11-09 R L Daniel Torno Sarl Sa Additionneur n bits et procede d'addition correspondant
US8239440B2 (en) * 2008-03-28 2012-08-07 Oracle America, Inc. Processor which implements fused and unfused multiply-add instructions in a pipelined manner
JP5233053B2 (ja) * 2008-05-19 2013-07-10 Esファイバービジョンズ株式会社 エアレイド不織布製造用複合繊維及び高密度エアレイド不織布の製造方法
US9727353B2 (en) 2015-10-30 2017-08-08 International Business Machines Corporation Simultaneously capturing status information for multiple operating modes
US10747534B1 (en) * 2018-11-26 2020-08-18 Xilinx, Inc. Vectorization of wide integer data paths into parallel operations with value extraction for maintaining valid guard bands

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5674774A (en) * 1979-11-22 1981-06-20 Nec Corp Arithmetic circuit with overflow detector
US5483478A (en) * 1992-10-16 1996-01-09 Xilinx, Inc. Method and structure for reducing carry delay for a programmable carry chain
JP2832899B2 (ja) * 1993-05-31 1998-12-09 松下電器産業株式会社 データ処理装置およびデータ処理方法
US6408320B1 (en) * 1998-01-27 2002-06-18 Texas Instruments Incorporated Instruction set architecture with versatile adder carry control
US6912560B2 (en) * 2000-12-08 2005-06-28 Agere Systems, Inc. Adder with improved overflow flag generation

Also Published As

Publication number Publication date
US20050188000A1 (en) 2005-08-25
JP2005202885A (ja) 2005-07-28
US7680874B2 (en) 2010-03-16

Similar Documents

Publication Publication Date Title
JP3492638B2 (ja) 浮動小数点乗算器
JP4938844B2 (ja) 非正規化オペランドのためのモードベース乗算−加算プロセッサ
US5602769A (en) Method and apparatus for partially supporting subnormal operands in floating point multiplication
JPH02201645A (ja) 例外検出回路
US5957997A (en) Efficient floating point normalization mechanism
US6205462B1 (en) Digital multiply-accumulate circuit that can operate on both integer and floating point numbers simultaneously
US5548545A (en) Floating point exception prediction for compound operations and variable precision using an intermediate exponent bus
US8620983B2 (en) Leading sign digit predictor for floating point near subtractor
US6947962B2 (en) Overflow prediction algorithm and logic for high speed arithmetic units
US6085211A (en) Logic circuit and floating-point arithmetic unit
JP3813613B2 (ja) 加算回路
JP5145040B2 (ja) 効率的浮動小数点式aluのための方法及び装置
US6701427B1 (en) Data processing apparatus and method for processing floating point instructions
JP2010238011A (ja) ベクトル乗算処理装置および方法ならびにプログラム
US6061707A (en) Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system
JP3122420B2 (ja) プロセッサおよび条件コード・ビット計算方法
US7668892B2 (en) Data processing apparatus and method for normalizing a data value
US7356553B2 (en) Data processing apparatus and method for determining a processing path to perform a data processing operation on input data elements
US7437400B2 (en) Data processing apparatus and method for performing floating point addition
JP2000330764A (ja) 加算器および集積回路
US5504867A (en) High speed microprocessor branch decision circuit
JP2000311079A (ja) 実数演算器
US7386580B2 (en) Data processing apparatus and method for computing an absolute difference between first and second data elements
JP2002023997A (ja) 浮動小数点演算のための選択ベースの丸め方法
EP0780759A1 (en) Elimination of math overflow flag generation delay in an alu

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060531

R150 Certificate of patent or registration of utility model

Ref document number: 3813613

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090609

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100609

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110609

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110609

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120609

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120609

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130609

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees