(57)【要約】【課題】  複数データ形式を支援する加算器、及びその加算器を利用した複数データ形式の加減演算支援方法を提供する。【解決手段】  キャリー伝達制御を通じた複数データ形式を支援する加算器が開示される。本発明の一実施形態による加算器は、被演算データが入力される複数の第１加算領域と、被演算データのタイプ及び演算の種類に基づいた制御データが入力される複数の第２加算領域と、を含み、複数の第１加算領域のそれぞれは、所定のビット単位を含み、複数の第２加算領域は、複数の第１加算領域の間に複数の第１加算領域と交互に配される。【選択図】      図５
2014146336.tif 000002
【特許請求の範囲】
【請求項１】
被演算データが入力される複数の第１加算領域と、
被演算データのタイプ及び演算の種類に基づいた制御データが入力される複数の第２加算領域と、を含み、
前記複数の第１加算領域のそれぞれは、所定のビット単位を含み、
前記複数の第２加算領域は、前記複数の第１加算領域の間に前記複数の第１加算領域と交互に配される加算器。
【請求項２】
前記所定ビット単位は、前記加算器で演算を処理する最大ビットよりも小さな単位である請求項１に記載の加算器。
【請求項３】
前記被演算データは、そのデータのタイプによって少なくとも１つの第１加算領域に所定ビット単位で入力される請求項１または２に記載の加算器。
【請求項４】
前記被演算データが複数の第１加算領域から入力される前に演算の種類に基づいて反転または非反転選択入力する複数の第１マルチプレクサをさらに含む請求項１乃至３いずれか一項に記載の加算器。
【請求項５】
前記制御データは、
前記複数の第１加算領域のうち、下位第１加算領域の少なくとも１つのキャリー信号を前記複数の第１加算領域のうち、上位第１、加算領域に伝達または遮断するように制御し、演算の種類が減算演算である場合、２の補数を取るための‘１’値を加算するように制御する請求項１乃至４いずれか一項に記載の加算器。
【請求項６】
１つの被演算データが２つのデータセグメントに分離され、該分離された２つのデータセグメントが、それぞれ下位第１加算領域と上位第１加算領域とに入力された場合、その下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、キャリー信号を伝達するビットである［０、１］または［１、０］である請求項５に記載の加算器。
【請求項７】
演算の種類が加算演算であり、下位第１加算領域と上位第１加算領域とに互いに異なる２つの被演算データが同時に入力された場合、下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、キャリー信号を遮断するビットである［０、０］である請求項５または６に記載の加算器。
【請求項８】
演算の種類が減算演算であり、下位第１加算領域と上位第１加算領域とに互いに異なる２つの被演算データが同時に入力された場合、下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、２の補数を取るための‘１’値を加算するように制御するビットである［１、１］である請求項５乃至７いずれか一項に記載の加算器。
【請求項９】
下位第１加算領域と上位第１加算領域とに入力された被演算データ及び演算の種類に基づいて、複数の第１加算領域のうち、下位第１加算領域と複数の第１加算領域とのうち、上位第１加算領域の間に配された、複数の第２加算領域のうちの第２加算領域に、制御データを選択的に入力する１つ以上の第２マルチプレクサをさらに含む請求項１に記載の加算器。
【請求項１０】
加算器を用いて加減演算を支援する方法において、
前記加算器に所定ビット単位で形成された複数の第１加算領域に被演算データを入力する段階と、
前記複数の第１加算領域の間に形成された複数の第２加算領域に被演算データのタイプ及び演算の種類に基づいた制御データを入力する段階と、
を含む加減演算支援方法。
【請求項１１】
前記所定ビット単位は、前記加算器で演算を処理する最大ビットよりも小さな単位である請求項１０に記載の加減演算支援方法。
【請求項１２】
前記被演算データは、そのデータのタイプに基づいて１つ以上の第１加算領域に所定ビット単位で入力される請求項１０または１１に記載の加減演算支援方法。
【請求項１３】
前記被演算データ入力段階は、
マルチプレクサを通じて前記被演算データのうち、後で入力されるデータを演算の種類に基づいて反転または非反転選択入力する段階を含む請求項１０乃至１２いずれか一項に記載の加減演算支援方法。
【請求項１４】
前記制御データは、
前記複数の第１加算領域のうちの下位第１加算領域の少なくとも１つのキャリー信号を前記複数の第１加算領域のうちの上位第１加算領域に伝達または遮断するように制御するか、演算の種類が減算演算である場合、２の補数を取るための‘１’値を加算するように制御するデータである請求項１０乃至１３いずれか一項に記載の加減演算支援方法。
【請求項１５】
１つの被演算データが２つのデータセグメントに分離され、該分離された２つのデータセグメントが、それぞれ下位第１加算領域と上位第１加算領域とに分離されて入力された場合、その下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、キャリー信号を伝達するビットである［０、１］または［１、０］である請求項１４に記載の加減演算支援方法。
【請求項１６】
演算の種類が加算演算であり、下位第１加算領域と上位第１加算領域とに互いに異なる２つの被演算データが同時に入力された場合、その下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、キャリー信号を遮断するビットである［０、０］である請求項１４または１５に記載の加減演算支援方法。
【請求項１７】
演算の種類が減算演算であり、下位第１加算領域と上位第１加算領域とに互いに異なる２つの被演算データが同時に入力された場合、その下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、２の補数を取るための‘１’値を加算するように制御するビットである［１、１］である請求項１４乃至１６いずれか一項に記載の加減演算支援方法。
【請求項１８】
下位第１加算領域と上位第１加算領域とに入力された被演算データ及び演算の種類に基づいて、マルチプレクサを通じて前記下位第１加算領域と上位第１加算領域との間の第２加算領域に制御ビットを選択入力する請求項１４乃至１７いずれか一項に記載の加減演算支援方法。
【請求項１９】
第１加算領域タイプと第２加算領域タイプとのうちから択一的に加算領域タイプを含む加算部と、
複数のマルチプレクサと、を含み、
前記複数のマルチプレクサのうち少なくとも１つは、前記加算部の関連加算領域に入力を提供し、
前記第１加算領域タイプは、被演算データを、前記第２加算領域タイプは、制御データを入力される加算器。
【請求項２０】
前記第２加算領域タイプは、前記被演算データ、演算タイプが加算であるか、減算であるかの有無、及び前記制御データのうち少なくとも１つのビットサイズに基づいて、前記第２加算領域タイプの間でキャリー伝達を制御する請求項１９に記載の加算器。
【請求項２１】
前記第２加算領域タイプの出力は、無視され、前記第１加算領域タイプの出力が、前記加算器の全体出力になる請求項２０に記載の加算器。
【請求項２２】
加算部内の加算領域を択一的に配置して、前記加算部が第１加算領域タイプと第２加算領域タイプとのうち何れか１つにする段階と、
複数のマルチプレクサを用いて、前記加算部の加算領域に対応する入力を提供する段階と、
被演算データを前記第１加算領域タイプの加算領域で入力として受信する段階と、
制御データを前記第２加算領域タイプの加算領域で入力として受信する段階と、
前記被演算データを前記制御データに基づいて加算する段階と、
を含む加算器の作動方法。
【請求項２３】
前記第２加算領域タイプは、前記被演算データ、演算タイプが加算であるか、減算であるかの有無、及び前記制御データのうち少なくとも１つのビットサイズに基づいて、前記第１加算領域タイプの間でキャリー伝達を制御する請求項２２に記載の加算器の作動方法。
【請求項２４】
前記第２加算領域タイプの出力は、無視され、前記第１加算領域タイプの出力が、前記加算器の全体出力になる請求項２３に記載の加算器の作動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャリー伝達制御を通じて複数データ形式を支援する加算器、及びその加算器を利用した複数データ形式の加減演算支援方法に関する。
【背景技術】
【０００２】
プロセッサへのベクトル演算能力の提供は、マルチメディア応用分野で重要な性能向上をもたらす。一般的なベクトル演算器は、一回に多様なデータを同時に処理することができる能力を提供するが、このために、相応する多様な演算器を備えなければならないために、非常に大きくなる。それを解消するための方案として、最小データ長を有する算術演算器を、同時に処理する個数ほど備え、これらを必要に応じて連結して共有することによって、多様なデータタイプを支援する構造を使う。この際、加算または減算演算のために、キャリー伝達を考慮するキャリー選択加算器（ｃａｒｒｙ−ｓｅｌｅｃｔ  ａｄｄｅｒ）が使われるが、一般的なキャリー選択加算器は、データ型別に演算を共有するために、複雑な制御信号と多数のマルチプレクサとを用いて、面積の効率性及び処理性能が減少する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、複数データ形式を支援する加算器、及びその加算器を利用した複数データ形式の加減演算支援方法を提供することである。
【課題を解決するための手段】
【０００４】
本発明の一態様によれば、加算器は、被演算データが入力される複数の第１加算領域と、被演算データのタイプ及び演算の種類に基づいた制御データが入力される複数の第２加算領域と、を含み、前記複数の第１加算領域のそれぞれは、所定のビット単位を含み、前記複数の第２加算領域は、前記複数の第１加算領域の間に前記複数の第１加算領域と交互に配される。
【０００５】
この際、前記所定ビット単位は、前記加算器で演算を処理する最大ビットよりも小さな単位であり得る。
【０００６】
また、前記被演算データは、そのデータのタイプによって少なくとも１つの第１加算領域に所定ビット単位で入力されうる。
【０００７】
また、前記被演算データが複数の第１加算領域から入力される前に演算の種類に基づいて反転または非反転選択入力する複数の第１マルチプレクサをさらに含みうる。
【０００８】
また、前記制御データは、前記複数の第１加算領域のうち、下位第１加算領域の少なくとも１つのキャリー信号を前記複数の第１加算領域のうち、上位第１加算領域に伝達または遮断するように制御し、演算の種類が減算演算である場合、２の補数を取るための‘１’値を加算するように制御することができる。
【０００９】
また、１つの被演算データが２つのデータセグメントに分離され、該分離された２つのデータセグメントが、それぞれ下位第１加算領域と上位第１加算領域とに入力された場合、その下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、キャリー信号を伝達するビットである［０、１］または［１、０］であり得る。
【００１０】
また、演算の種類が加算演算であり、下位第１加算領域と上位第１加算領域とに互いに異なる２つの被演算データが同時に入力された場合、下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、キャリー信号を遮断するビットである［０、０］であり得る。
【００１１】
また、演算の種類が減算演算であり、下位第１加算領域と上位第１加算領域とに互いに異なる２つの被演算データが同時に入力された場合、下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、２の補数を取るための‘１’値を加算するように制御するビットである［１、１］であり得る。
【００１２】
また、下位第１加算領域と上位第１加算領域とに入力された被演算データ及び演算の種類に基づいて、複数の第１加算領域のうち、下位第１加算領域と複数の第１加算領域とのうち、上位第１加算領域の間に配された、複数の第２加算領域のうちの第２加算領域に、制御データを選択的に入力する１つ以上の第２マルチプレクサをさらに含みうる。
【００１３】
本発明の他の態様によれば、加算器を用いて加減演算を支援する方法は、前記加算器に所定ビット単位で形成された複数の第１加算領域に被演算データを入力する段階と、前記複数の第１加算領域の間に形成された複数の第２加算領域に被演算データのタイプ及び演算の種類に基づいた制御データを入力する段階と、を含む。
【００１４】
この際、前記所定ビット単位は、前記加算器で演算を処理する最大ビットよりも小さな単位であり得る。
【００１５】
また、前記被演算データは、そのデータのタイプに基づいて１つ以上の第１加算領域に所定ビット単位で入力されうる。
【００１６】
また、前記被演算データ入力段階は、マルチプレクサを通じて前記被演算データのうち、後で入力されるデータを演算の種類に基づいて反転または非反転選択入力する段階を含みうる。
【００１７】
前記制御データは、前記複数の第１加算領域のうちの下位第１加算領域の少なくとも１つのキャリー信号を前記複数の第１加算領域のうちの上位第１加算領域に伝達または遮断するように制御するか、演算の種類が減算演算である場合、２の補数を取るための‘１’値を加算するように制御するデータであり得る。
【００１８】
また、１つの被演算データが２つのデータセグメントに分離され、該分離された２つのデータセグメントが、それぞれ下位第１加算領域と上位第１加算領域とに分離されて入力された場合、その下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、キャリー信号を伝達するビットである［０、１］または［１、０］であり得る。
【００１９】
また、演算の種類が加算演算であり、下位第１加算領域と上位第１加算領域とに互いに異なる２つの被演算データが同時に入力された場合、その下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、キャリー信号を遮断するビットである［０、０］であり得る。
【００２０】
また、演算の種類が減算演算であり、下位第１加算領域と上位第１加算領域とに互いに異なる２つの被演算データが同時に入力された場合、その下位第１加算領域と上位第１加算領域との間の第２加算領域に入力される制御データは、２の補数を取るための‘１’値を加算するように制御するビットである［１、１］であり得る。
【００２１】
また、下位第１加算領域と上位第１加算領域とに入力された被演算データ及び演算の種類に基づいて、マルチプレクサを通じて前記下位第１加算領域と上位第１加算領域との間の第２加算領域に制御ビットを選択入力することができる。
【００２２】
本発明のさらに他の態様によれば、加算器は、第１加算領域タイプと第２加算領域タイプとのうちから択一的に加算領域タイプを含む加算部と、複数のマルチプレクサと、を含み、前記複数のマルチプレクサのうち少なくとも１つは、前記加算部の関連加算領域に入力を提供し、前記第１加算領域タイプは、被演算データを、前記第２加算領域タイプは、制御データを入力される。
【００２３】
この際、前記第２加算領域タイプは、前記被演算データ、前記演算タイプが加算であるか、減算であるかの有無、及び前記制御データのうち少なくとも１つのビットサイズに基づいて、前記第２加算領域タイプの間でキャリー伝達を制御することができる。
【００２４】
また、前記第２加算領域タイプの出力は無視され、前記第１加算領域タイプの出力が、前記加算器の全体出力になりうる。
【００２５】
本発明のさらに他の態様によれば、加算器の作動方法は、加算部内の加算領域を択一的に配置して、前記加算部が第１加算領域タイプと第２加算領域タイプとのうち何れか１つにする段階と、複数のマルチプレクサを用いて、前記加算部の加算領域に対応する入力を提供する段階と、被演算データを前記第１加算領域タイプの加算領域で入力として受信する段階と、制御データを前記第２加算領域タイプの加算領域で入力として受信する段階と、前記被演算データを前記制御データに基づいて加算する段階と、を含む。
【００２６】
この際、前記第２加算領域タイプは、前記被演算データ、前記演算タイプが加算であるか、減算であるかの有無、及び前記制御データのうち少なくとも１つのビットサイズに基づいて、前記第１加算領域タイプの間でキャリー伝達を制御することができる。
【００２７】
また、前記第２加算領域タイプの出力は無視され、前記第１加算領域タイプの出力が、前記加算器の全体出力になりうる。
【図面の簡単な説明】
【００２８】
【図１Ａ】一般的なキャリー選択加算器の例である。
【図１Ｂ】一般的なキャリー選択加算器の例である。
【図２】本発明の一実施形態による加算器を示した図面である。
【図３】本発明の一実施形態による加算器の第２加算領域に入力される制御データの例である。
【図４Ａ】本発明の一実施形態による加算器の加減演算の一例である。
【図４Ｂ】本発明の一実施形態による加算器の加減演算の一例である。
【図４Ｃ】本発明の一実施形態による加算器の加減演算の一例である。
【図４Ｄ】本発明の一実施形態による加算器の加減演算の一例である。
【図５】本発明の一実施形態による複数データ型の加減演算支援方法のフローチャートである。
【発明を実施するための形態】
【００２９】
その他の実施形態の具体的な事項は、詳細な説明及び図面に含まれている。記載の技術の利点及び特徴、そして、それらを果たす方法は、添付される図面と共に詳細に後述されている実施形態を参照すると、明確になる。明細書の全般に亘った同じ参照符号は、同じ構成要素を指称する。
【００３０】
以下、複数データ形式を支援する加算器、及びその加算器を利用した複数データ形式の加減演算支援方法の実施形態について図面を参考にして詳しく説明する。
【００３１】
図１Ａ及び図１Ｂは、一般的なキャリー選択加算器の例である。
【００３２】
図１Ａは、最大３２ビット（ｂｉｔ）のデータ型を支援する一般的なキャリー選択加算器の一例であって、４つの加算器１１１、１１２、１１３、１１４を並列連結して、複数のデータ型（例：８、１６、及び３２ビット）の加算演算を支援する。この際、各加算器１１１、１１２、１１３、１１４は、図１Ｂに例示された何れか１つの加算器１１４のように減算演算時に、非反転入力に対する‘１’値加算のためのキャリーイン（ｃａｒｒｙ−ｉｎ）をあらかじめ考慮するために、内部に二重の９ビット領域の加算器１１４＿ａ、１１４＿ｂを備えている。
【００３３】
また、各加算器１１１、１１２、１１３、１１４に入力される二番目のデータを演算の種類によって反転または非反転選択入力するマルチプレクサ１２１、１２２、１２３、１２４と、各加算器１１１、１１２、１１３、１１４から出力された２つの結果（キャリーイン無、キャリーイン有）のうちから何れか１つを選択するキャリー選択マルチプレクサ１３１、１３２、１３３、１３４、及び下位加算器１１１、１１２、１１３から上位加算器１１２、１１３、１１４にキャリーを伝達するキャリー伝達マルチプレクサ１４１、１４２、１４３を含みうる。
【００３４】
例えば、１６ビットデータに対する加算演算を行う場合、最初の加算器１１１にデータ（ｉ０＿３、ｉ１＿３）が入力され、二番目の加算器１１２にデータ（ｉ０＿２、ｉ１＿２）が入力される。最初の加算器１１１は、内部の二重の加算器を通じてキャリーインが含まれていない場合とキャリーインが含まれた場合とを考慮してデータ（ｏ０＿３、０１＿３）を出力し、二番目の加算器１１２は、同様にデータ（ｏ０＿２、０１＿２）を出力する。
【００３５】
最初のキャリー選択マルチプレクサ１３１は、最初の加算器１１１から出力された結果のうちからキャリーインが含まれていないデータ（ｏ０＿３）を選択して、その加算器１１１の加算結果（ｚ３）として出力する。最初のキャリー伝達マルチプレクサ１４１は、最初の加算器１１１の加算結果（ｚ３）の最上位ビット値と‘０’のうちから選択して、二番目の加算器１１２にキャリー伝達如何を決定する。
【００３６】
二番目のキャリー選択マルチプレクサ１３２は、二番目の加算器１１２から出力された結果のうちから最初のキャリー伝達マルチプレクサ１４１から入力された値によってキャリーインが含まれていないデータ（ｏ０＿２）とキャリーインが含まれたデータ（ｏ０＿２）とのうちから何れか１つを選択して、その加算器１１２の加算結果（ｚ２）として出力する。
【００３７】
このように、一般的なキャリー選択加算器は、多様なデータ型の演算を支援するために、複数の加算器１１１、１１２、１１３、１１４を備え、各加算器１１１、１１２、１１３、１１４には、キャリーインをあらかじめ考慮するために、並列の加算器を備えていて、多くの面積を占める。また、キャリー伝達を考慮して多数のマルチプレクサを経なければならないので、制御が複雑になり、演算遅延が発生する。
【００３８】
図２は、本発明の一実施形態による加算器を示した図面である。図２を参照すれば、本発明の一実施形態による加算器２００は、単一の加算部２１０からなり、その加算部２１０は、最大データ長内で多様なデータ型の演算を支援できるように、所定ビット単位からなる複数の第１加算領域２１１、２１２、２１３、２１４と、各第１加算領域２１１、２１２、２１３、２１４の間に演算の種類及び被演算データのタイプに基づいた制御データが入力される１つ以上の第２加算領域２２１、２２２、２２３と、を含みうる。
【００３９】
図２は、４つの第１加算領域２１１、２１２、２１３、２１４と各第１加算領域２１１、２１２、２１３、２１４の間に３つの第２加算領域２２１、２２２、２２３とを例示しているが、第１加算領域の数は、最大支援可能なデータ型、演算の最小データ処理単位などによって増減されうる。
【００４０】
例えば、第１加算領域２１１、２１２、２１３、２１４は、演算の最小データ処理単位ビットからなり、最小データ処理単位ビットが８ビットであれば、４つの第１加算領域２１１、２１２、２１３、２１４を通じて最大３２ビットのデータ型の演算が可能である。この際、入力される被演算データのタイプによって、８ビット、１６ビット、２４ビット、及び３２ビットのデータ型の演算を処理する。
【００４１】
被演算データは、そのデータのタイプによって第１加算領域２１１、２１２、２１３、２１４のうちの１つ以上に所定ビット（ｍビット）単位で入力されて、第１加算領域単位で加算演算が行われる。この際、被演算データのタイプによって二対以上の被演算データが同時に第１加算領域２１１、２１２、２１３、２１４に入力されることが可能である。
【００４２】
例えば、所定ビット（ｍビット）が８ビットであり、被演算データのタイプが１６ビットであれば、その被演算データは、８ビット単位で分離されて２つの第１加算領域２１１、２１２に入力されうる。このような場合、一対の１６ビット長の被演算データを８ビット単位に分離して、２つの第１加算領域２１３、２１４にさらに入力して、同時に二対以上のデータの加算演算を処理させうる。
【００４３】
実施形態では、８、１６、３２ビット単位で説明になっているが、さらに長いか、短いビット単位も可能である。さらに、ビット長は、８の倍数で制限されるものでもない。実施形態によっては、３、９、１０または４５ビットの倍数でビット長が適用されることもある。
【００４４】
一方、本発明の一実施形態による加算器２００は、減算演算を支援することができる。減算演算は、二番目に入力された被演算データを反転入力して加算演算を行い、２の補数を取るための‘１’値を加算する方式を使う。加算器２００は、このような方式の減算演算を支援するために、各第１加算領域２１１、２１２、２１３、２１４に対応する第１マルチプレクサ２３１、２３２、２３３、２３４をさらに含みうる。第１マルチプレクサ２３１、２３２、２３３、２３４は、行われる演算の種類によって被演算データのうち、後でマルチプレクサを経由して加算領域に直接入力される被演算データを反転または非反転選択して入力し、すなわち、演算の種類が減算演算である場合、後の被演算データを反転入力を選択して、対応する各第１加算領域２１１、２１２、２１３、２１４に入力することができる。
【００４５】
さらに、実施形態によっては、反転値が加算器以前のステージに存在する入力マルチプレクサに連結された特定の論理回路によって獲得され、減算演算を指示する命令に基づいて行われることもある。また、減算演算の場合、‘１’の補数である減数（ｓｕｂｔｒａｈｅｎｄ）に‘１’値が加えられて、‘２’の補数になりうる。‘１’を加えることは、一般的に減数のＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）で演算がなされる。しかし、本実施形態では、（１、１）を分割された加算領域２２３、２２２、２２１に入力した結果であるキャリーがＬＳＢに加算される。すなわち、最初に‘１’を加える時に、この‘１’値はキャリーを通じて入力されるが、キャリーは、（１、１）を分割された加算領域２２３、２２２、２２１に入力した結果であり、キャリーは、生成された後にＬＳＢに加算される。
【００４６】
実施形態によっては、２つの異なる長さの値が互いに加算されるか、減算されうる。短い値をパッディング（ｐａｄｄｉｎｇ）して入力することによって、これが可能である。また、図２のシステムは、値を加算するか、減算するのに使うことができる。特に、被加算数（ａｕｇｅｎｄ）の値と加数（ａｄｄｅｎｄ）の値とが必ずしも同じ長さである必要はない。同様に、被減数（ｍｉｎｕｅｎｄ）と減数（ｓｕｂｔｒａｈｅｎｄ）とが必ずしも同じ長さである必要はない。被加算数と加数、被減数と減数は、互いに異なる長さを有しうる。長さが異なる場合には、短いデータが長いデータ長ほどパッディングされる。長さが異なれば、符号タイプは同一でなければならない。特定データの符号タイプは、値が補数（ｃｏｍｐｌｅｍｅｎｔａｒｙ  ｎｕｍｂｅｒ）であるか、無符号数字（ｕｎｓｉｇｎｅｄ  ｎｕｍｂｅｒ）であるかなどによって定められる。
【００４７】
長さが短い数の値が２つの数に対する補数である実施形態では、符号ビットが拡張されうる。短い側の値が符号がいない値である実施形態では、‘０’が上位ビットまで拡張されうる。短い側の値がサインマグニチュード（ｓｉｇｎ−ｍａｇｎｉｔｕｄｅ）である実施形態では、符号ビットがＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）に配され、‘０’が残りの拡張された長さに満たされうる。
【００４８】
実施形態によっては、加算領域２１４、２１３、２１２、２１１の上で説明された異なる長さを有する２つの値に使われ、それぞれの加算領域が、（ｉ０＿０、ｉ１＿０）、（ｉ０＿１、ｉ１＿１）、（ｉ０＿２、ｉ１＿２）、及び（ｉ０＿３、ｉ１＿３）を入力としてそれぞれ使うことができる。例えば、一実施形態で、（ｉ０＿０、ｉ１＿０）の対を成すｉ０＿０が４ビット無符号値であり、ｉ１＿０が８ビット無符号値である場合に、４ビットの‘０’がｉ０＿０のＭＳＢに満たされうる。同様に、他の実施形態で、（ｉ０＿１、ｉ１＿１）の対を成すｉ０＿１が４ビットの２の補数であり、ｉ１＿１が８ビットの２の補数である場合、ｉ０＿１のＭＳＢが４ビットに拡張されうる。
【００４９】
第２加算領域２２１、２２２、２２３は、第１加算領域２１１、２１２、２１３、２１４の間ごとに１ビットで形成され、下位第１加算領域から発生したキャリー信号を上位第１加算領域に伝達または遮断するように制御するか、減算演算時に、‘２’の補数値を取るための‘１’値を加算するように制御する制御データが入力されうる。
【００５０】
また、実施形態によっては、第１加算領域２１１、２１２、２１３、２１４が互いに同じサイズになりうる。例えば、領域は、それぞれ８ビットサイズになることもあり、その他の互いに同じサイズになることもある。また、実施形態によっては、領域が互いにサイズが異なることもある。特に、領域２１１が８ビットの長さである一方、領域２１２は１６ビット長であり、領域２１３は３２ビット長になることもあり、または、その他の組合わせになることもある。データが領域２２３、２２２、２２１によって分割される以上、それぞれの加算領域は、互いに異なるビット長を有しうる。したがって、実施形態によれば、それぞれの加算領域のビット長は、変動可能である。
【００５１】
図３は、本発明の一実施形態による加算器２００の第２加算領域２２１、２２２、２２３に入力される制御データの一例であって、図３を参照すれば、第２加算領域２２１、２２２、２２３に入力される制御データは、［０、１］、［１、０］、［０、０］、及び［１、１］のうちの何れか１つであり得る。
【００５２】
また、実施形態によっては、２つの入力が第１制御ビットと第２制御ビットとにそれぞれ入力されうる。特に、図２に示したものと類似した構成を利用すれば、第２加算領域２２１、２２２、２２３への入力は、２ビットになりうる。また、実施形態によっては、２つのマルチプレクサが配置されることもあるが、これは、図２で２ビット入力を第２加算領域に提供する１つのマルチプレクサのみが示したものとは異なる。
【００５３】
図３で示すように、下位第１加算領域と上位第１加算領域とに１つの被演算データが分離されて入力された場合、例えば、図２の第１加算領域２１１、２１２、２１３、２１４が８ビットからなり、１６ビットの被演算データが下位第１加算領域２１１と上位第１加算領域２１２とに分離入力された場合、その間の第２加算領域２２１は、下位第１加算領域２１１の加算演算で発生したキャリー信号を伝達するために、［０、１］または［１、０］の値が入力されうる。
【００５４】
一方、下位第１加算領域と上位第１加算領域とに互いに異なる被演算データが同時に入力された場合には、演算の種類が加算演算であれば、その間の第２加算領域には、キャリー信号の伝達を遮断するために［０、０］が入力され、演算の種類が減算演算であれば、２の補数を取るための‘１’値を加算するために［１、１］が入力されうる。
【００５５】
例えば、１６ビットの第１被演算データが８ビットからなる２つの第１加算領域２１１、２１２に分離入力され、１６ビットの第２被演算データが残りの２つの第１加算領域２１３、２１４に分離入力された場合、演算の種類が加算演算であれば、第１被演算データが入力された第１加算領域２１２と第２被演算データが入力された第１加算領域２１３との間の第２加算領域２２２には、キャリー信号伝達を遮断するために［０、０］の値が入力されうる。もし、演算の種類が減算演算であれば、その第２加算領域２２２には、‘１’値加算のために［１、１］が入力されうる。
【００５６】
加算器２００は、図２に示したように、各第２加算領域２２１、２２２、２２３に対応して被演算データのタイプ及び演算の種類に基づいた制御データを選択入力する第２マルチプレクサ２４１、２４２、２４３をさらに含みうる。例えば、何れか１つの第２マルチプレクサ２４１は、演算の種類、すなわち、加算演算であるか、または減算演算であるかと、隣接する第１加算領域２１１、２１２に入力された被演算データのタイプ、すなわち、１つのデータが分離入力された場合であるか、２つの互いに異なるデータが入力された場合であるかによって、０と１とのビット値を選択的に入力する。
【００５７】
図４Ａないし図４Ｄは、図２の実施形態による加算器２００の加減演算の一例であって、説明の便宜上、加算器２００は、２ビットからなる４つの第１加算領域２１１、２１２、２１３、２１４と、１ビットからなる３つの第２加算領域２２１、２２２、２２３と、を含むものと仮定する。
【００５８】
図４Ａは、２ビットデータ型を有した第１被演算データ（ａ１、ｂ１）と、第２被演算データ（ａ２、ｂ２）との加算演算を同時に行うことを例示したものである。
【００５９】
入力される各被演算データのタイプが２ビット長を有するので、上位第１加算領域２１２には、第１被演算データ（ａ１、ｂ１）が順次に入力される。この際、演算の種類は、加算演算なので、第１マルチプレクサ２３２は、第１被演算データ（ａ１、ｂ１）のうち、後で入力される第２データ（ｂ１）をそのまま非反転入力する。同様に、下位第１加算領域２１１には、第２被演算データ（ａ２、ｂ２）が入力され、第１マルチプレクサ２３１は、加算演算なので、第２データ（ｂ２）を非反転入力する。
【００６０】
また、その間の第２加算領域２２１には、下位第１加算領域２１１で発生するキャリー信号の伝達を遮断するための［０、０］の制御データが入力される。その第２加算領域２２１に対応する第２マルチプレクサ２４１は、隣接する下位第１加算領域２１１と上位第１加算領域２１２とに入力されたデータが互いに異なる２つのデータであり、演算の種類が加算演算なので、０と０とを順次に選択入力する。
【００６１】
下位第１加算領域２１１は、入力された第１被演算データを加算して、その結果として‘００’を出力し、‘１’のキャリー信号を発生させる。キャリー信号は、第２加算領域２２１に伝達され、第２加算領域２２１は、キャリー信号を考慮して入力された制御データを加算して、‘１’の結果を出力し、キャリー信号を発生しない。上位第１加算領域２１２は、第２加算領域２２１から伝達されたキャリー信号がないために、その加算結果として‘１１’を出力する。最終的に、第２加算領域の結果は捨て、下位第１加算領域２１１と上位第１加算領域２１２との結果のみを最終結果として取って、第１被演算データの加算結果‘１１’と第２被演算データの加算結果‘００’とが得られる。
【００６２】
図４Ｂは、４ビットデータ型を有した被演算データ（ａ、ｂ）の加算演算を行うことを例示したものである。
【００６３】
入力される被演算データのタイプが４ビット長を有するので、下位第１加算領域２１１と上位第１加算領域２１２とに２ビットずつ分離されて入力される。この際、演算の種類は、加算演算なので、対応する第１マルチプレクサ２３１、２３２は、第１被演算データ（ａ、ｂ）のうち、後で入力される第２データ（ｂ）をそのまま非反転入力する。
【００６４】
その間の第２加算領域２２１には、下位第１加算領域２１１で発生するキャリー信号を伝達するための［１、０］の制御データが入力される。第２加算領域２２１に対応する第２マルチプレクサ２４１は、隣接する下位第１加算領域２１１と上位第１加算領域２１２とに入力されたデータが１つのデータであり、演算の種類が加算演算なので、１と０とを順次に選択入力する。
【００６５】
下位第１加算領域２１１は、入力された被演算データを加算して、その結果として‘００’を出力し、‘１’のキャリー信号を発生させる。キャリー信号は、第２加算領域２２１に伝達され、第２加算領域２２１は、キャリー信号を考慮して入力された制御データを加算して、‘０’の結果を出力し、‘１’のキャリー信号を発生させる。上位第１加算領域２１２は、第２加算領域２２１から伝達されたキャリー信号に基づいて入力されたデータを加算して、その加算結果として‘００’を出力する。最終的に、第２加算領域２２１の結果は捨て、下位第１加算領域２１１と上位第１加算領域２１２との結果のみを取って、被演算データの加算結果‘００００’が得られる。
【００６６】
図４Ｃは、２ビットデータ型を有した第１被演算データ（ａ１、ｂ１）と、第２被演算データ（ａ２、ｂ２）との減算演算を同時に行うことを例示したものである。
【００６７】
図４Ａと同様に、各被演算データのタイプが２ビット長を有するので、上位第１加算領域２１２と下位第１加算領域２１１には、それぞれ第１被演算データ（ａ１、ｂ１）と第２被演算データ（ａ２、ｂ２）とが入力される。この際、演算の種類が減算演算なので、第１マルチプレクサ２３１、２３２は、後で入力される第２データ（ｂ１、ｂ２）に対する反転入力を選択して、対応する下位第１加算領域２１１と上位第１加算領域２１２とに入力する。
【００６８】
第２マルチプレクサ２４１は、隣接する下位第１加算領域２１１と上位第１加算領域２１２とに入力されたデータが互いに異なる２つのデータであり、演算の種類が減算演算なので、対応する第２加算領域２２１に上位第１加算領域２１２の結果に‘１’値を加算するための制御データ［１、１］を入力する。この際、下位第１加算領域も減算演算が行われるので、演算結果に加算される‘１’値を入力することを前提とする。
【００６９】
下位第１加算領域２１１は、入力された‘１’値を考慮して第１被演算データを加算して、その結果として‘１０’を出力し、‘１’のキャリー信号を発生させる。キャリー信号は、第２加算領域２２１に伝達され、第２加算領域２２１は、入力された制御データ１、１と伝達されたキャリー信号を考慮して、‘１’の結果を出力し、‘１’のキャリー信号を発生させる。上位第１加算領域２１２は、第２加算領域２２１から伝達されたキャリー信号を考慮して、その加算結果として‘１１’を出力する。最終的に、第２加算領域２２１の結果は捨て、下位第１加算領域２１１と上位第１加算領域２１２との結果のみを最終結果として取って、第１被演算データの減算結果‘１１’と第２被演算データの減算結果‘１０’とが得られる。
【００７０】
図４Ｄは、４ビットデータ型を有した被演算データ（ａ、ｂ）の減算演算を行うことを例示したものである。
【００７１】
被演算データのタイプが４ビット長を有するので、下位第１加算領域２１１と上位第１加算領域２１２とに２ビットずつ分離されて入力される。この際、演算の種類は、減算演算なので、対応する第１マルチプレクサ２３１、２３２は、第１被演算データ（ａ、ｂ）のうち、後で入力される第２データ（ｂ）を反転入力する。
【００７２】
第２マルチプレクサ２４１は、隣接する下位第１加算領域２１１と上位第１加算領域２１２とに入力されたデータが１つのデータなので、その間の第２加算領域２１２には、制御データとして［１、０］を入力する。この際、下位第１加算領域２１１には、２の補数を取るための‘１’値加算のために‘１’をさらに入力することを前提とする。
【００７３】
下位第１加算領域２１１は、被演算データとさらに入力された‘１’値を加算して、その結果として‘１０’を出力し、‘１’のキャリー信号を発生させる。キャリー信号は、第２加算領域２２１に伝達され、第２加算領域２２１は、キャリー信号を考慮して入力された制御データ（１、０）を加算して、‘０’の結果を出力し、‘１’のキャリー信号を発生させる。上位第１加算領域２１２は、第２加算領域２２１から伝達されたキャリー信号と入力されたデータを加算して、その加算結果として‘１１’を出力する。最終的に、第２加算領域２２１の結果は捨て、下位第１加算領域２１１と上位第１加算領域２１２との結果のみを取って、被演算データの加算結果‘１１１０’が得られる。
【００７４】
開示された実施形態によれば、加算器２００は、キャリー選択のための多数のマルチプレクサを要さず、多様なデータ型を支援するために、複数の加算器を並列連結する必要なしに単一の加算器を通じて、複数のデータ型を支援することができるので、処理性能及び面積の効率性を増加させることができる。
【００７５】
図５は、本発明の一実施形態による複数データ型の加減演算支援方法のフローチャートである。図５を参照して、図２の実施形態による加算器２００を利用した複数データ型の加減演算支援方法の一実施形態を説明する。
【００７６】
まず、加算器２００は、被演算データのうちの第１データが１つ以上の第１加算領域２１１、２１２、２１３、２１４に所定ビット単位で入力する（段階５１１）。被演算データは、データのタイプによって１つの第１加算領域に入力されるか、２つ以上の第１加算領域に分離されて入力されうる。
【００７７】
次いで、加算器２００の第１マルチプレクサ２３１、２３２、２３３、２３４は、演算の種類を判断し（段階５１２）、演算の種類が減算演算ではなければ、被演算データのうちの第２データを非反転して、そのまま入力し（段階５１３）、減算演算であれば、反転入力する（段階５１４）。
【００７８】
次いで、加算器２００の第２マルチプレクサ２４１、２４２、２４３は、それぞれ対応する第２加算領域２２１、２２２、２２３に隣接する第１加算領域２１１、２１２、２１３、２１４に入力された被演算データを確認する（段階５１５）。もし、被演算データのタイプが所定ビットよりも大きければ、被演算データが隣接する第１加算領域２１１、２１２、２１３、２１４に分離されて入力されたか否かを判断する（段階５１６）。
【００７９】
判断の結果（段階５１６）、１つのデータが分離されて入力された場合、その間の第２加算領域には、下位第１加算領域から発生したキャリー信号を上位第１加算領域に伝達するための制御ビットである［１、０］または［０、１］を入力することができる（段階５１７）。
【００８０】
判断の結果（段階５１６）、２つの互いに異なるデータが入力された場合、演算の種類を判断し（段階５１８）、減算演算であれば、その間の第２加算領域には、上位第１加算領域の加算結果に‘１’値加算のための制御データ［１、１］を入力する（段階５１９）。判断の結果（段階５１８）、加算演算である場合、下位第１加算領域のキャリー信号が上位第１加算領域に伝達されることを遮断するための制御データである［０、０］を入力することができる（段階５２０）。
【００８１】
加算器２００は、第１加算領域と第２加算領域とに入力されたデータを用いて加算演算を行った後、第２加算領域の出力結果は捨て、第１加算領域の結果のみを取れば、最終的に、加算または減算演算の結果が得られる。
【００８２】
一方、本実施形態は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。
【００８３】
コンピュータで読み取り可能な記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ保存装置などがあり、また、キャリアウェーブ（例えば、インターネットを介した伝送）の形態で具現するものを含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードとして保存されて実行可能である。そして、本発明を具現するための機能的な（ｆｕｎｃｔｉｏｎａｌ）プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に想到されうる。
【００８４】
当業者ならば、本発明がその技術的思想や必須的な特徴を変更せずとも、他の具体的な形態で実施可能であることを理解できるであろう。したがって、前述した実施形態は、あらゆる面で例示的なものであり、限定的ではないということを理解せねばならない。
【産業上の利用可能性】
【００８５】
本発明は、複数データ形式を支援する加算器、及びその加算器を利用した複数データ形式の加減演算支援方法関連の技術分野に適用可能である。
【符号の説明】
【００８６】
１１１  加算器
１２１  マルチプレクサ
２００  加算器
２１０  加算部
【図１Ａ】
2014146336.tif 000003
【図２】
2014146336.tif 000004
【図５】
2014146336.tif 000005
【図１Ｂ】
2014146336.tif 000006
【図３】
2014146336.tif 000007
【図４Ａ】
2014146336.tif 000008
【図４Ｂ】
2014146336.tif 000009
【図４Ｃ】
2014146336.tif 000010
【図４Ｄ】
2014146336.tif 000011