JP3813613B2 - 加算回路 - Google Patents
加算回路 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; 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
特許文献1には、このようなオーバーフロー補正を行う演算装置に関する技術が記載されている。
一方、32ビットモードにおいては、第32桁を最上位桁とした加算演算を行う。ただし、この場合、上記のオーバーフロー検出信号OVFは、第32桁を符号桁とした加算演算におけるオーバーフローの有無を示す信号として出力する。
デュアルモードにおいては、第1桁から第16桁までの加算演算および第17桁から最上位桁までの加算演算を並列に実行する。
図12に示す回路は、キャリー生成信号出力回路1,…,4,11,12と、キャリー伝播信号出力回路5,…,10と、セレクタ13および14と、キャリー・セレクト・アダー(carry select adder:CSAと略記する)15と、排他的NOR回路16とを有する。
図12に示す回路では、このオーバーフロー検出信号OVF16を算出するにあたり、先ずキャリー信号c11およびc15を桁上げ先見方式によって算出する。
この桁上げ先見回路は、中間的なキャリー生成信号およびキャリー伝播信号を2段階に分けて生成して、最終的なキャリー信号(C11、C15)を得るものである。
キャリー生成信号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は次式で表される。
キャリー伝播信号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は次式で表される
キャリー伝播信号P11_0およびP15_0は、それぞれ次式で表される。
キャリー生成信号G11_0およびG15_0は、それぞれ次式で表される。
キャリー伝播信号P11_0が‘1’になると、キャリー生成信号g0〜g11が全て‘0’になり、キャリー生成信号G11_0は‘0’になることから、セレクタ13の出力信号は式(12)に示すキャリー信号c11と等しくなる。
上述と同様に、キャリー伝播信号P15_0が‘1’になるとキャリー生成信号G15_0は‘0’になることから、セレクタ14の出力信号は式(13)に示すキャリー信号c15と等しくなる。
また、CSA15は、第15桁のキャリーについても同様に、予め算出した2通りのうちの一方をキャリー信号c11の値に応じて選択し、これをキャリー信号c14として出力する。
図14に示す回路は、CSA18と、AND回路19と、NOR回路20と、OR回路21と、セレクタ22および23とを有する。
また、これらの加算値とともに予め算出される第39桁および第40桁のキャリーを用いて、キャリー信号c30が‘0’,‘1’の場合に40ビットモードのオーバーフローが発生するか否かを予測する信号SC0,SC1をそれぞれ算出する。
そのため、これらの回路を駆動する前段の桁上げ先見回路(1〜8)にとって容量性負荷が増大し、消費電力の増加やオーバーフロー検出信号OVF16のスピードの低下といった不利益がある。
図1は、本発明の第1の実施形態に係る加算回路の構成の一例を示すブロック図である。
すなわち、40ビットモードにおいては、第40桁を最上位桁とした加算演算を行い、当該加算演算におけるオーバーフローの有無を示すオーバーフロー検出信号OVFを出力する。
32ビットモードにおいては、第32桁を最上位桁とした加算演算を行い、上記のオーバーフロー検出信号OVFとして、第32桁を符号桁とした加算演算におけるオーバーフローの有無を示す信号を出力する。
通常モードにおいては、第1桁から最上位桁(第40桁または第32桁)までの加算演算を単独に実行する。
デュアルモードにおいては、第1桁から第16桁までの加算演算および第17桁から最上位桁までの加算演算を並列に実行する。この場合、最下位桁へのキャリーとして、下位側の加算演算についてはキャリー信号CINを入力し、上位側の加算演算についてはキャリー信号Cdualを入力する。また、第16桁を符号桁とした下位側の加算演算におけるオーバーフローの有無を示すオーバーフロー検出信号OVF16を出力する。
加算部200は、キャリー・インクリメント・アダー(carry increment adder:CIAと略記する)201,202,205と、キャリー・セーブ・アダー(CSA)203と、桁上げ先見回路204,208と、キャリー信号出力回路207と、排他的NOR回路206と、オーバーフロー検出信号出力回路209とを有する。
まず、これらの構成についてそれぞれ説明する。
論理演算部100は、40ビットの信号[a0,…,a39]および[b0,…,b39]を入力し、この入力データの各桁のビット信号に対して、制御信号Scontに応じた論理演算を行う。
図2にの例において、演算ユニット100_iは、AND回路101と、OR回路102と、NOT回路103と、排他的NOR回路104と、排他的OR回路105と、出力回路106とを有する。
OR回路102、排他的NOR回路104、排他的OR回路105は、何れも入力ビット信号aiおよびbiを入力する。この2入力について、OR回路102は論理和、排他的NOR回路104は排他的反転論理和、排他的OR回路105は排他的論理和をそれぞれ演算する。
NOT回路103は、入力ビット信号biを論理反転する。
また、入力ビット信号aiおよびbiの論理和、排他的反転論理和もしくは排他的論理和、または入力ビット信号biの論理反転を、信号piとして出力することが可能である。更に、これらの論理演算結果の一部または全部についての論理和演算を行い、これを信号piとして出力することも可能である。
CIA201は、論理演算部100から出力される第1桁〜第15桁のキャリー伝播信号p0〜p14およびキャリー生成信号g0〜g14と、第1桁へのキャリー信号CINとを入力し、これに応じた加算結果s0〜s14を出力する。
CIA201は、第1桁〜第15桁の信号(p0〜p14,g0〜g14)の入力とともに下位側から上位側に向かって局所的なキャリー生成信号およびキャリー伝播信号を順次に伝播させる回路を有しており、この局所的キャリー生成信号およびキャリー伝播信号とキャリー信号CINとに応じて、各桁の加算結果s1〜s14を算出する。
図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は、キャリー伝播信号p0およびp1の論理積を局所的キャリー伝播信号p1_0として出力する。
2入力のAND回路210_k(ここで、kは、1から12までの整数を示す)は、前段から出力される局所的キャリー伝播信号pk_0とキャリー伝播信号p(k+1)との論理積を、局所的キャリー伝播信号p(k+1)_0として出力する。
局所的キャリー伝播信号p1_0,…,p13_0は、次式で表される。
すなわち、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は、次式で表される。
AND−OR複合回路211_k(ここで、kは、1から12までの整数を示す)は、キャリー信号CINと局所的キャリー伝播信号pk_0との論理積と局所的キャリー生成信号gk_0との論理和を、第(k+1)桁へのキャリー信号ckとして出力する。
キャリー信号ckは次式で表される。
排他的OR回路213_k(ここで、kは、1から12までの整数を示す)は、キャリー信号c(k−1)とキャリー伝播信号pkとの排他的論理和を、第(k+1)桁の加算結果skとして出力する。
CIA202は、論理演算部100から出力される第17桁〜第31桁のキャリー伝播信号p16〜p30およびキャリー生成信号g16〜g30と、キャリー出力回路207より出力される第17桁へのキャリー信号c15Aとを入力し、これに応じた加算結果s16〜s30を出力する。
CIA202は、第17桁〜第31桁の信号(p16〜p30,g16〜g30)の入力とともに下位側から上位側に向かって局所的なキャリー生成信号およびキャリー伝播信号を順次に伝播させる回路を有しており、この局所的キャリー生成信号およびキャリー伝播信号と下位からのキャリー信号c15Aとに応じて、各桁の加算結果s16〜s30を算出する。
すなわち、図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は、キャリー信号c30が‘1’と‘0’の場合における第32桁〜第40桁の各桁の加算値を予め算出し、当該算出した2通りの加算値から、キャリー信号c30の値に応じて選択した一方を、加算結果s31〜s39として出力する。
また、これらの加算値とともに予め算出される第39桁および第40桁のキャリーを用いて、キャリー信号c30が‘0’,‘1’の場合における40ビットモードのオーバーフローの予測信号SC0,SC1をそれぞれ算出する。
図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は、この順序で縦続に接続されており、初段の全加算器230_31にはキャリー信号として‘0’の信号が入力され、これに続く各段の全加算器には、前段で算出されたキャリー信号が入力される。
また、全加算器231_31,…,231_39は、この順序で縦続に接続されており、初段の全加算器230_31にはキャリー信号として‘1’の信号が入力され、これに続く各段の全加算器には、前段で算出されたキャリー信号が入力される。
図5に例示する全加算器は、排他的OR回路233およびAND−OR複合回路234を有する。
記号p,g,cinは全加算器に入力されるキャリー伝播信号,キャリー生成信号,キャリー信号をそれぞれ示し、記号s,coutは全加算器から出力される加算値,キャリー信号をそれぞれ示す。
AND−OR複合回路234は、キャリー信号cinとキャリー伝播信号pとの論理積とキャリー生成信号gとの論理和を、キャリー信号coutとして後段の全加算器に出力する。
CLA204は、第15桁から第16桁へのキャリー信号c14を、第1桁から第15桁までのキャリー伝播信号p0〜p14およびキャリー生成信号g0〜g14と、第1桁に対して入力されるキャリー信号CINとに基づいて生成する。
このCLA204と、図2に例示する演算ユニット100_0〜100_14とを含んだ回路は、第1の発明における第1のキャリー信号生成回路の一実施形態である。
図6に例示するCLA204は、キャリー信号出力回路240,247と、キャリー生成信号出力回路241,…,243と、キャリー伝播信号出力回路244,…,246とを有する。
キャリー生成信号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)で表される。
キャリー伝播信号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)で表される
CIA205は、CLA204において生成された第15桁から第16桁へのキャリー信号c14と、第16桁のキャリー伝播信号p15およびキャリー生成信号g15とに基づいて、通常モードにおける第16桁から第17桁へのキャリー信号c15を生成する。
このCIA205と、図2に例示する演算ユニット100_15とを含んだ回路は、第1の発明における第2のキャリー信号生成回路の一実施形態である。
排他的NOR回路206は、CLA204より出力されるキャリー信号c14と、CIA205より出力されるキャリー信号c15との排他的反転論理和を演算する。既に述べた式(1)の関係より、排他的NOR回路206の演算結果はオーバーフロー検出信号OVF16となる。
この排他的NOR回路206は、第1の発明における論理演算回路の一実施形態である。
キャリー信号出力回路207は、第17桁へのキャリー信号c15Aとして、デュアルモードの場合、外部より供給されるキャリー信号Cdualを出力し、通常モードの場合、下位桁からのキャリー信号c15を出力する。
図7に例示するキャリー信号出力回路207は、NOT回路270と、AND回路271と、セレクタ272,273とを有する。
セレクタ272は、第1の発明における第1の選択回路の一実施形態である。
NOT回路270、AND回路271、およびセレクタ273を含む回路は、第1の発明における第2の選択回路の一実施形態である。
AND回路271は、NOT回路270の出力信号とキャリー伝播信号p15との論理積を演算し、その演算結果をセレクタ273のコントロール信号として出力する。
一方、キャリー信号c15は、式(25)から分かるように、キャリー伝播信号p15が‘1’の場合にキャリー生成信号g15が‘0’になるためキャリー信号c14と等しくなり、キャリー伝播信号p15が‘0’の場合にキャリー生成信号g15と等しくなる。
したがって、通常モードの場合、キャリー信号c15Aとしてキャリー信号c15が出力される。
CLA208は、第31桁から第32桁へのキャリー信号c30を、第17桁から第31桁までのキャリー伝播信号p16〜p30およびキャリー生成信号g16〜g30と、第17桁に対して入力されるキャリー信号c15Aとに基づいて生成する。
オーバーフロー検出信号出力回路209は、40ビットモードの場合、第40桁を符号桁とした加算演算におけるオーバーフローの有無を示し、32ビットモードの場合、第32桁を符号桁とした加算演算におけるオーバーフローの有無を示す、オーバーフロー検出信号OVFを出力する。
この場合、オーバーフロー検出信号出力回路209は、CSA203から出力されるオーバーフローの予測信号SC0,SC1の一方をキャリー信号c30の値に応じて選択して出力する。
ここで、前桁の加算結果s(j−1)が‘1’であると仮定した場合における加算結果sjを‘p1_sj’とすると、この加算結果p1_sjは次式で表される。
ここで、前桁の加算結果s(j−1)が‘0’であると仮定した場合における加算結果sjを‘p0_sj’とすると、この加算結果p0_sjは次式で表される。
図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は、式(34)に示す変数pALL0の算出結果を上述の判定信号として出力する。
第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回路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の算出結果として出力する。
すなわち、第1のビット値判定回路291は、式(32)に示す変数pALL1の算出結果を上述の判定信号として出力する。
第2のビット値判定回路291は、例えば図10に示すように、排他的OR回路291_1,…,291_8と、AND回路291_9とを有する。
排他的OR回路291_1,…,291_8を含む回路は、第2の発明における第2のビット値算出回路の一実施形態である。
AND回路291_9は、第2の発明における第2の判定回路の一実施形態である。
AND回路291_9は、排他的OR回路291_1〜291_8の出力信号の論理積を演算し、これを変数pALL1の算出結果として出力する。
すなわち、第32桁のキャリー伝播信号p31が‘1’の場合、第2のビット値判定回路291の判定信号(pALL1)を選択し、キャリー伝播信号p31が‘0’の場合、第1のビット値判定回路290の判定信号(pALL0)を選択する。
すなわち、キャリー伝播信号p31が‘1’の場合、第1のビット値判定回路290の判定信号(pALL0)を選択し、キャリー伝播信号p31が‘0’の場合、第2のビット値判定回路291の判定信号(pALL1)を選択する。
すなわち、モード指定信号M40が‘0’になる32ビットモードにおいてセレクタ292の出力信号を選択し、モード指定信号M40が‘1’になる40ビットモードにおいてCSA203のオーバーフロー予測信号SC0を選択する。
すなわち、モード指定信号M40が‘0’になる32ビットモードにおいてセレクタ293の出力信号を選択し、モード指定信号M40が‘1’になる40ビットモードにおいてCSA203のオーバーフロー検出信号SC1を選択する。
すなわち、キャリー信号c30が‘0’の場合にセレクタ294の出力信号を選択し、キャリー信号c30が‘1’の場合にセレクタ295の出力信号を選択する。
キャリー信号c30がセレクタ296に到着すると、このキャリー信号c30の値に応じて、オーバーフロー予測信号SC0またはSC1の一方がセレクタ296により選択され、オーバーフロー検出信号OVFとして出力される。
また、キャリー伝播信号p31の値に応じて、セレクタ292および293の一方から第1のビット値判定回路290の判定信号(pALL0)、他方から第2のビット値判定回路291の判定信号(pALL1)が出力される。すなわち、キャリー伝播信号p31が‘1’の場合、セレクタ292から第2のビット値判定回路291の判定信号(pALL1)、セレクタ293から第1のビット値判定回路290の判定信号(pALL0)が出力され、キャリー伝播信号p31が‘0’の場合は上述と逆の信号がセレクタ292および293からそれぞれ出力される。
すなわち、キャリー信号c30が‘0’の場合はセレクタ292の出力信号、キャリー信号c30が‘1’の場合はセレクタ293の出力信号が選択される。
キャリー信号c30が‘0’でキャリー伝播信号p31が‘1’の場合およびキャリー信号c30が‘1’でキャリー伝播信号p31が‘0’の場合は、第2のビット値判定回路291の判定信号(pALL1)がオーバーフロー検出信号OVFとして出力される。
すなわち、式(35)の関係を満たすオーバーフロー検出信号OVFが出力される。
また、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の到着を待たずに実行される。
また、キャリー信号c14が確定すると、CIA205において第16桁の加算結果s15の算出が実行される。
ただし、CIA205における第16桁の加算結果s15の算出については、通常モードと同様に、キャリー信号c14の確定を待って実行される。
また、CIA205において加算結果s15の算出とともにキャリー信号c15の生成が実行され、このキャリー信号c15が確定すると、排他的NOR回路206においてキャリー信号c14およびc15の排他的論理和演算が実行され、デュアルモード時の下位側のオーバーフロー検出信号OVF16が生成される。
また、確定したキャリー信号c30の値に応じて、オーバーフロー検出信号出力回路209のセレクタ296に入力される2つの信号の一方がオーバーフロー検出信号OVFとして出力される。この2つの信号は、キャリー信号c30の到着を待たずに生成される信号であるため、キャリー信号c30がセレクタ296に到着するとオーバーフロー検出信号OVFは素早く確定する。
したがって、図12に示すように、キャリー信号c11およびc15を並行して生成する従来の方式に比べて、桁上げ先見回路の回路規模が小さくなり、駆動する素子の数が減るため、消費電力を削減することができる。また、図12に示す桁上げ先見回路と比べて、1段目のキャリー生成信号出力回路やキャリー伝播信号出力回路に対して容量性の負荷となる2段目の回路の数を減らすことができるため、オーバーフロー検出信号OVF16の生成を高速化することができる。
したがって、キャリー信号c15Aを生成する信号の中で最も高速性を要求されるクリティカルな信号(c14)は、出力に到達するまでに1段のセレクタ(273)を通過するだけでよく、同様な信号(G15_0)が2段のセレクタ(14,17)を通過しなければならない図13の回路に比べて、キャリー信号c15Aの生成を高速化することができる。
したがって、最も遅延する信号であるキャリー信号c30の確定を待つことなく、最終段のセレクタ296の入力信号までを生成することが可能であり、キャリー信号c30が確定した場合にはセレクタ296のコントロールのみでオーバーフロー検出信号OVFを確定させることができる。したがって、キャリー信号c30が値の確定後に幾つもの回路を通過する必要がある図14に示す回路に比べて、32ビットモード時のオーバーフロー検出信号OVFを大幅に高速化することができる。
したがって、32ビットモードおよび40ビットモードの何れにおいても、キャリー信号c30の確定を待つことなく最終段のセレクタ296の入力信号までを生成することが可能であり、両モードのオーバーフローを高速に検出することができる。
次に、本発明の第2の実施形態について述べる。
本実施形態に係る加算回路は、第1の実施形態に係る上述した加算回路において、図8に示すオーバーフロー検出信号出力回路209を図11に示するオーバーフロー検出信号出力回路209Aに置き換えたものであり、その他の構成は上述した加算回路と同じである。
なお、第1の判定回路297_0は、第3の発明における第1の判定回路の一実施形態である。
第2の判定回路298_0は、第3の発明における第2の判定回路の一実施形態である。
第3の判定回路297_1は、第3の発明における第3の判定回路の一実施形態である。
第4の判定回路298_1は、第3の発明における第4の判定回路の一実施形態である。
また、CSA203は、第3の発明における第1の加算結果予測回路および第2の加算結果予測回路の一実施形態である。
第2の判定回路298_0は、この予測の加算値s32_0〜s39_0が全て‘1’になる場合に‘1’、全て‘1’にならない場合に‘0’となる判定信号ALL1_0を出力する。
第4の判定回路298_1は、この予測の加算値s32_1〜s39_1が全て‘1’になる場合に‘1’、全て‘1’にならない場合に‘0’となる判定信号ALL1_1を出力する。
セレクタ293には、第1のビット値判定回路290の判定信号(pALL0)の代わりに第3の判定回路297_1の判定信号ALL0_1が入力され、第2のビット値判定回路291の判定信号(pALL1)の代わりに第4の判定回路298_1の判定信号ALL1_1が入力される。
したがって、図11に示すようにCSA203の予測値を利用する方法でも、32ビットモードのオーバーフロー検出信号を得ることが可能である。
Claims (6)
- 入力される第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桁までの加算結果にオーバーフローが発生するか否かを示す信号として出力する論理演算回路と、
を有する加算回路。 - 上記第(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に記載の加算回路。 - 入力される第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の選択回路と、
を有する加算回路。 - 上記第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に記載の加算回路。 - 入力される第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の選択回路と、
を有する加算回路。 - 上記第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の何れか一に記載の加算回路。
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)
| 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)
| 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 |
-
2004
- 2004-01-19 JP JP2004011018A patent/JP3813613B2/ja not_active Expired - Fee Related
-
2005
- 2005-01-18 US US11/038,563 patent/US7680874B2/en active Active
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 |