(57)【要約】【課題】効率的な回路構成により引き戻し法による減算ループ回数を削減することが可能な演算回路を提供する。【解決手段】引き戻し法による除算を行う演算回路は、中間剰余を格納する中間剰余レジスタと、中間剰余の上位２桁と除数の上位１桁との情報に基づいて、情報から予測可能な精度よりも低い精度での商予測を行うことにより、予測結果を生成する商予測回路と、商予測回路により生成された予測結果に応じて選択されたＮ倍（Ｎは自然数）の除数を出力する定数倍回路と、定数倍回路が出力するＮ倍の除数を中間剰余から減算する減算器と、減算器による減算のキャリーアウトに応じて部分商を求める部分商計算回路とを含むことを特徴とする。【選択図】図４
2014041415.tif 000002
【特許請求の範囲】
【請求項１】
引き戻し法による除算を行う演算回路であって、
中間剰余を格納する中間剰余レジスタと、
前記中間剰余の上位２桁と除数の上位１桁との情報に基づいて、前記情報から予測可能な精度よりも低い精度での商予測を行うことにより、予測結果を生成する商予測回路と、
前記商予測回路により生成された前記予測結果に応じて選択されたＮ倍（Ｎは自然数）の除数を出力する定数倍回路と、
前記定数倍回路が出力する前記Ｎ倍の除数を前記中間剰余から減算する減算器と、
前記減算器による減算のキャリーアウトに応じて部分商を求める部分商計算回路と
を含むことを特徴とする演算回路。
【請求項２】
前記商予測回路が前記情報に基づいて生成する前記予測結果は、前記部分商の取り得る全ての値を含む集合の部分集合であるグループを示す信号であり、互いに重複する複数のグループのうちの何れか１つのグループを特定する信号であることを特徴とする請求項１記載の演算回路。
【請求項３】
前記互いに重複する複数のグループの数は、２つのグループであることを特徴とする請求項１又は２記載の演算回路。
【請求項４】
前記商予測回路は、組み合わせ論理回路であることを特徴とする請求項１乃至３何れか一項記載の演算回路。
【請求項５】
前記定数倍回路は前記予測結果に応じて選択された複数のＮ倍の除数を出力し、前記減算器は前記複数のＮ倍の除数をそれぞれ入力とする複数の減算器を含むことを特徴とする請求項１乃至４何れか一項記載の演算回路。
【請求項６】
引き戻し法による除算を行う演算回路と、前記除算の命令をデコードする命令制御部とを有する演算処理装置において、
前記演算回路は、
中間剰余を格納する中間剰余レジスタと、
前記中間剰余の上位２桁と除数の上位１桁との情報に基づいて、前記情報から予測可能な精度よりも低い精度での商予測を行うことにより、予測結果を生成する商予測回路と、
前記商予測回路により生成された前記予測結果に応じて選択されたＮ倍（Ｎは自然数）の除数を出力する定数倍回路と、
前記定数倍回路が出力する前記Ｎ倍の除数を前記中間剰余から減算する減算器と、
前記減算器による減算のキャリーアウトに応じて部分商を求める部分商計算回路と
を含むことを特徴とする演算処理装置。
【請求項７】
引き戻し法による除算を行う演算回路において、
前記中間剰余の上位２桁と除数の上位１桁との情報に基づいて、前記情報から予測可能な精度よりも低い精度での商予測を行うことにより、予測結果を生成し、
前記予測結果に応じて選択されたＮ倍（Ｎは自然数）の除数を前記中間剰余から減算し、
前記減算のキャリーアウトに応じて部分商を求める
各段階を含むことを特徴とする除算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、演算回路、演算処理装置、及び除算方法に関する。
【背景技術】
【０００２】
２進化１０進数（ＢＣＤ：Binary Coded Decimal）の四則演算において、除算は他の演算と比較して演算サイクル数を必要とする低速な演算である。一般に精度の高い除算は引き戻し法によって部分商と中間剰余とを求めており、その中間剰余の生成がクリティルな要因となる。基本的な引き戻し法では、中間剰余から除数を減算する処理を繰り返す。減算結果が負になった時点で、減算しすぎであると判断し、そのサイクルの減算前の結果を部分商として用いる。
【０００３】
以下に、引き戻し法の手順を説明する。なお以降の説明において、断りの無い限り被除数と中間剰余とを区別せず、中間剰余と表記する。まず中間剰余レジスタ、除数レジスタ、及び部分商レジスタから、中間剰余、除数、及び部分商が提供される。減算ループの初回において、部分商は０である。初回又はその後の減算ループにおいて、以下の処理が実行される。まず部分商をカウントアップする。次に減算回路により中間剰余から除数を減算し、減算の結果とキャリーアウトとを生成する。キャリーアウトが１であるならば（即ち結果が正の数）、減算結果を中間剰余レジスタに格納し、現在の減算ループの最初にカウントアップされた部分商を部分商レジスタに格納し、次の減算ループに移行する。キャリーアウトが０であるならば（即ち結果が負の数）、中間剰余レジスタの値（現在の減算ループの減算前の値）を中間剰余レジスタに格納し、部分商レジスタの値（現在の減算ループのカウントアップ前の値）を部分商レジスタに格納し、処理を止める。この時の中間剰余レジスタと部分商レジスタとの値が、最終的な中間剰余と部分商との結果となる。
【０００４】
このように引き戻し法は、部分商と中間剰余の生成の為に、中間剰余が負になるまで中間剰余から除数を減算する処理を繰り返す必要がある。１０進数の場合、１桁の商は０〜９の範囲を取りえる為、減算処理を最大で１０回繰り返す必要がある。これを全桁の商が導出されるまで繰り返す必要があるため、除算を実現する演算器のレイテンシは非常に低くなってしまう。
【０００５】
基本的な引き戻し法の問題は、部分商と中間剰余とを生成する減算ループの繰り返し回数が多いことである。この問題を解決する為に、除数のＮ倍数（Nは自然数）をいくつか予め計算しておき、中間剰余からそれぞれのＮ倍された除数を減算して場合分けするという手法が一般にとられる。
【０００６】
例えば除数の１，２，５倍数を予め計算しておく手法がある（例えば特許文献１）。一回目の減算で中間剰余から５倍の除数を減算し、結果が負の数である時、除数の５倍は減算しすぎであるとわかる。その為、１桁の商は０〜４の範囲であることが判明する。それ以外の時は１桁の商が５〜９の範囲であることが判明する。このようにＮ倍の除数を用意して粗く引き戻し法を行うことにより次のサイクルでの商の取りえる範囲を減らし、部分商と中間剰余の生成ループ回数を減らすことが可能である。特許文献１では、このアルゴリズムによって最大４回のループ回数で結果を得られるとしている。
【０００７】
また特許文献１では１個の減算器を利用しているが、複数個の減算器を用意して同時に複数個の除数のＮ倍数を減算した結果を用意すれば、さらなる高速化が可能となることは既知である。極端な例を挙げれば、１〜９倍の除数を予め用意しておき、９個の減算器を使用すれば、１回のループで結果を得ることができる。また例えば１，２，３，６倍の除数を予め用意しておき、更に２つの減算器を用いて結果を得る回路が考えられる（例えば特許文献２）。
【０００８】
先のＮ倍除数の減算による高速化と合わせて、被除数と除数の状態から部分商と中間剰余を予測するという手法も存在する。例えば２回目の減算をする際に中間剰余と３倍除数の上位桁の状態を見ることにより、２回目の減算に使うＮ倍除数を選択する回路等が考えられる（例えば特許文献２）。また中間剰余と除数の状態から誤差が1以下の精度で部分商を予測できる商予測回路と、その誤差の補正回路を追加して高速化を図ること等が考えられる（例えば特許文献３）。
【０００９】
複数個のＮ倍除数を用意することによる高速化においては、回路規模の増大とループ回数の低減とがトレードオフの関係にある。従ってハードウェアの制約により少ない減算器を使っての除算が必要である場合、結果を得るために必要なサイクル数は多くならざるを得ない。また、商予測による高速化においては追加回路の増大がボトルネックとなる。部分商及び部分剰余生成のループ内に制御回路を組み込むとなると、ループ数低減によるレイテンシの向上が果たせたとしても、ループ内の論理段数が重くなり、高い動作周波数での実装が困難となる。
【００１０】
また商予測及び商補正が高速であっても、剰余の種類が多かったり、３Ｎの固定数を乗算する演算回路を用いたりする場合には問題がある（例えば特許文献２及び３）。１０進演算器において、３Ｎの固定数を乗算する演算回路は加算器を使わなければ実現できない。これを実現するには以下の３つの方法が考えられる。
（１）加算器の直前に加算器を追加する。
（２）減算器と共有する。
（３）６倍除数をループ前に生成し、レジスタで保持し続ける。
このうち（１）の手段をとる場合、論理段数が加算器分増える為、ディレイに悪影響を与える。（２）の手段をとる場合、部分商及び部分剰余の生成の為に１サイクル増やす必要があり、さらには制御が煩雑になる。（３）の手段をとる場合、除数の幅を有するレジスタが追加されるため、面積的に問題となる。
【００１１】
また商予測の為に重い論理が必要となる為、高い動作周波数の場合には１サイクル内で商予測と減算とを同時に行うことが困難になる。その場合、処理サイクルを分けなければならなくなり、レイテンシの悪化する虞れがある。
【００１２】
また特許文献２の場合、商予測の手段として中間剰余と３倍除数の上位２桁を比較している。比較回路は、一般には加算器で実現するので、２桁の加算器がさらに必要となってしまう。また高動作周波数の場合には、レイテンシの悪化する虞がある。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開昭５７−１２５４４２号公報
【特許文献２】特開平０７−２３９７７４号公報
【特許文献３】特開平０７−１６０４８０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
以上を鑑みると、引き戻し法における減算ループ回数を、効率的な回路構成により削減することが可能な演算回路が望まれる。
【課題を解決するための手段】
【００１５】
引き戻し法による除算を行う演算回路は、中間剰余を格納する中間剰余レジスタと、前記中間剰余の上位２桁と除数の上位１桁との情報に基づいて、前記情報から予測可能な精度よりも低い精度での商予測を行うことにより、予測結果を生成する商予測回路と、前記商予測回路により生成された前記予測結果に応じて選択されたＮ倍（Ｎは自然数）の除数を出力する定数倍回路と、前記定数倍回路が出力する前記Ｎ倍の除数を前記中間剰余から減算する減算器と、前記減算器による減算のキャリーアウトに応じて部分商を求める部分商計算回路とを含むことを特徴とする。
【発明の効果】
【００１６】
少なくとも１つの実施例によれば、引き戻し法における減算ループ回数を、効率的な回路構成により削減することが可能な演算回路が提供される。
【図面の簡単な説明】
【００１７】
【図１】加算器の数と減算時に商が取りえる数との組み合わせに対し、それぞれ残りの減算回数を示した表である。
【図２】中間剰余の上位２桁と除数の上位１桁との組み合わせテーブルを示す図である。
【図３】２個の加算器により２回のループで結果を算出可能な演算器において、１回目及び２回目の減算の結果の組み合わせに対して結果として得られる部分商の値の一例を示した表である。
【図４】図３に示したアルゴリズムの処理の流れを示すフローチャートである。
【図５】コンピュータシステムの構成の一例を示す図である。
【図６】演算回路の構成の一例を示す図である。
【図７】２倍回路における各桁の入出力値を示す真理値表である。
【図８】５倍回路における各桁の入出力値を示す真理値表である。
【図９】商予測回路の構成の一例を示す図である。
【図１０】定数倍回路の構成の一例を示す図である。
【図１１】倍数選択回路の構成の一例を示す図である。
【図１２】倍数選択回路及び定数倍回路の入出力の関係を示す表である。
【図１３】中間剰余選択回路の構成の一例を示す図である。
【図１４】中間剰余選択回路の入出力の関係を示す表である。
【図１５】制御回路の構成の一例を示す図である。
【図１６】部分商計算回路の構成の一例を示す図である。
【図１７】部分商計算回路の入出力の関係を示す表である。
【図１８】定数テーブルの入出力の関係を示す表である。
【発明を実施するための形態】
【００１８】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１９】
Ｎ倍除数を使って除算を行う際、加算器の数によって必要な減算ループ回数は変動する。最適なＮ倍除数を用いるとすると、必要な減算回数は以下の式で求められる。
loga+1A=B （但しＢの小数点以下は切り上げ）
ここで、ａは加算器の数、Ａは部分商の取りえる範囲、Ｂは部分商が得られるまでに必要な最大の減算の回数である。
【００２０】
図１は、加算器の数と減算時に商が取りえる数との組み合わせに対し、それぞれ残りの減算回数を示した表である。例えば、１０進除算の場合、商が０〜９の範囲の値を取り得る、即ち商が１０通りの値をとりえる為、減算時に商が取りえる数は１０となる。図１において、「減算時に商が取りえる数」が１０である列を見ると、例えば「減算器の数」が１であれば、残りの減算回数が４であることが分かる。即ち、最適なＮ倍除数を用いるとすると（例えば最初に５倍の除数を用いるとすると）、残りの減算回数が４であるから、最大４回のループ回数で結果を得ることができる。また「減算時に商が取りえる数」が１０でる場合において、例えば「減算器の数」が２であれば、残りの減算回数即ちループ回数が３であることが分かる。
【００２１】
例えば加算器が１つであることを前提とすると、商予測等の何らかの前処理により初期状態での商候補の数を８個に減らすことができれば、商候補の数が１０個である場合のループ回数４から、ループ回数を３に減らすことができる。また例えば加算器が２つであることを前提とすると、図１の表から分かるように、商予測等の何らかの前処理により初期状態での商候補の数を９個に減らすことができれば、商候補の数が１０個である場合のループ回数３から、ループ回数を２に減らすことができる。
【００２２】
商の取り得る数を１０個からｍ個（ｍは１０より小さい自然数）に減らすためには、例えば１０個の商候補を、各々がｍ個以下の商を含む複数のグループに分け、商予測により１つのグループを特定すればよい。ここで各グループは、商が取り得る全ての値（１０個の値）を含む集合の部分集合であるグループである。例えば商の取り得る数を１０個から９個に減らすためには、１０個の商候補を、各々が９個以下の商を含む２つのグループに分け、商予測により１つのグループを特定すればよい。この時、２つのグループは互いに重複してよい。即ち、２つのグループには、同一の商が含まれてよい。
【００２３】
これはすなわち、特許文献３のように精度の高い商予測を行わずとも、粗い商予測をすることで処理の高速化が充分に見込めることを表している。粗い商予測として、中間剰余の上位２桁と除数の上位１桁との情報に基づいて商予測をすることを考える。
【００２４】
図２は、中間剰余の上位２桁と除数の上位１桁との組み合わせテーブルを示す図である。最も左側の列は被除数（中間剰余）の上位２桁を示し、最も上側の行は除数の上位１桁を示し、行と列とが交差する各欄には、当該被除数と除数との組み合わせに対して部分商が取りうる範囲を示している。この例において、被除数と除数とは、共に１０進数である。例えば被除数が０８．ｘｘ（ｘｘは任意の数）であり、除数が０１．ｘｘである時、部分商の取りうる範囲は、図２の表において４〜８（４，５，６，７，８）となっている。このことは、「８．００≦被除数＜９．００」と「１．００≦除数＜２．００」の時、「４≦部分商≦８」であることを示している。
【００２５】
図２の表において、網掛けの部分は、引き戻し法のアルゴリズム上、ありえない組み合わせである。この表は１００行×９列という膨大なデータ量を含んでいるが、この表に含まれる全てのデータを商予測に組み込む必要はない。例えば、被除数が０８．ｘｘであり、除数が０１．ｘｘであることが情報として分かっているとき、この情報から予測可能な精度で予測できる部分商の取りうる範囲は４〜８である。このとき、この範囲に含まれる商の数は５個である。しかしながら前述のように、例えば加算器が１つであることを前提とすると、商予測等の何らかの前処理により初期状態での商候補の数を８個に減らすことができれば、商候補の数が１０個である場合のループ回数４から、ループ回数を３に減らすことができる。また例えば加算器が２つであることを前提とすると、図１の表から分かるように、商予測等の何らかの前処理により初期状態での商候補の数を９個に減らすことができれば、商候補の数が１０個である場合のループ回数３から、ループ回数を２に減らすことができる。
【００２６】
例えば加算器が２つの場合を考えると、商予測によって商の取りえる数を９個以下にすればよいので、図２の表の全てのデータを商予測に用いる必要はない。各グループに含まれる商の数が９個以下となればよいので、上述の被除数が０８．ｘｘであり除数が０１．ｘｘであるという情報から得られる５個の商からなるグループまで特定する必要はない。即ち、被除数（中間剰余）の上位２桁と除数の上位１桁との情報に基づいて、当該情報から予測可能な精度（例えば４〜８を特定できる精度）よりも低い精度での商予測を行うことにより、商の取りえる数を９個以下にすれば十分である。
【００２７】
低い精度での商予測即ち粗い商予測を行うためには、使用する加算器の数及び所望の減算ループの回数に応じて、都合の良い箇所で図２の表を区切ればよい。例えば、２個の加算器が設けられ２回のループで結果を算出可能な演算器を設計するためには、図２の表を区切り線１０で示したように区切り、商の取りえる範囲を商が０〜７であるグループと商が４〜９であるグループとに分ければよい。これら２つのグループの各々は、部分商の取り得る全ての値（０〜９）を含む集合の部分集合であるグループである。またこれら２つのグループは、互いに重複するグループであり、同一の要素４，５，６，７を共有する。
【００２８】
このように各グループに含まれる商の数が９個以下である２つのグループに分け、後述する商予測により、これら複数のグループのうちの何れか１つのグループを特定することができれば、初期状態での商候補の数を９個に減らすことができる。これにより、加算器が２つである場合、図１の表から分かるように、商候補の数が１０個である場合のループ回数３から、ループ回数を２に減らすことができる。
【００２９】
なお図２の表において、区切り線１０で示されるような２つのグループに区切った理由は、商予測を単純な論理で実現できることが挙げられる。例えば除数が０１．ｘｘの列に着目した時、中間剰余が８（１０００２）以上とそれ未満（０１１１２以下）とで分けると、商が０〜７のグループと商が４〜９のグループとに分けることができ、中間剰余のＭＳＢをチェックするだけで商予測をすることができる。即ち、中間剰余のＭＳＢをチェックするだけで、取り得る商が属するグループとして、２つのグループのうちの何れか１つのグループを特定することができる。例えば仮に商が０〜８のグループと商が４〜９のグループとに分けるとすると、中間剰余が９（１００１２）以上及びそれ未満となるように区切る必要があり、中間剰余の４ビット全てをチェックする必要がある。区切り線１０は、中間剰余の全ビットをチェックせずに、成る可く少ない数の一部のビットをチェックするだけでグループ分けできるような分割を実現している。
【００３０】
なお上記の区切り線１０によるグループ分けの例では、各グループの要素の数（各グループに含まれる商の数）が８個以下となっている。従って、このグループ分けにより、加算器が１つである場合も、図１の表から分かるように、商候補の数が１０個である場合のループ回数４から、ループ回数を３に減らすことができる。同様に、図１の表において例えば減算ループ回数を２から１に減らすように、例えば加算器が３個である場合であれば、各グループに含まれる要素の数が４以下となるように、図２の表において３分割するグループ分けを行ってもよい。
【００３１】
本願開示の粗い商予測は、被除数（中間剰余）の上位２桁と除数の上位１桁との情報に基づいて、当該情報から予測可能な精度よりも低い精度での商予測を行うものであり、特定の加算器の数やループ回数に限定されるものではない。この粗い商予測においては、例えば図２の表において、被除数の上位２桁と除数の上位１桁とを特定することにより特定される１つの行と列との交差部分に記載された商の範囲を特定するのではなく、行と列との交差部分を複数個纏めたグループを特定している。またこの粗い商予測においては、例えば被除数（中間剰余）の上位２桁と除数の上位１桁との全てのビットのうち、一部のビットのみを用いて商予測を行ってよい。
【００３２】
図３は、２個の加算器により２回のループで結果を算出可能な演算器において、１回目及び２回目の減算の結果の組み合わせに対して結果として得られる部分商の値の一例を示した表である。この例では、上述のように、商の取りえる範囲を商が０〜７であるグループと商が４〜９であるグループとに分けるように商予測を行うことを前提としている。この表に示す内容は、一例として想定したアルゴリズムの動作に基づくものであり、何れのＮ倍除数を用いるのか、どのように部分商や中間剰余を求めるのか等について限定を意図するものではない。
【００３３】
図３においては、中間剰余をＲ、除数をＤＩＶｓ、部分商をＱとしている。また第１及び第２の加算器（減算器）が求めた減算結果（中間剰余）をそれぞれＲ１及びＲ２、第１及び第２の加算器（減算器）による減算処理のキャリーアウトをそれぞれＣＯ１及びＣＯ２としている。図３に示されるように、商の取り得る範囲が例えば４〜９であると予測された場合、１回目の減算ループにおいて、２つの減算器による２つの減算として、「Ｒ−５ＤＩＶｓ」（中間剰余−５倍除数）及び「Ｒ−８ＤＩＶｓ」（中間剰余−８倍除数）を実行する。その結果得られるキャリーアウトがそれぞれ例えば「正」及び「負」である場合、取り得る商の範囲は５〜７であることが分かり、部分商Ｑとして取り敢えず５を設定し、中間剰余Ｒとして第１の減算器の減算結果Ｒ１を設定する。更に２回目の減算ループにおいて、２つの減算器による２つの減算として、「Ｒ−１ＤＩＶｓ」（中間剰余−１倍除数）及び「Ｒ−２ＤＩＶｓ」（中間剰余−２倍除数）を実行する。その結果得られるキャリーアウトがそれぞれ例えば「正」及び「正」である場合、取り得る商は７であることが分かるので、部分商Ｑを＋２して７（＝５＋２）に設定し、中間剰余Ｒとして第２の減算器の減算結果Ｒ２を設定する。なお図３において「−」や「＊」は想定したアルゴリズムでは起こり得ない組み合わせであることを示している。
【００３４】
図４は、図３に示したアルゴリズムの処理の流れを示すフローチャートである。以下に、このアルゴリズムの処理について説明する。
【００３５】
ステップＳ１で、中間剰余Ｒと除数ＤＩＶｓとが入力される。ステップＳ２で商予測を行う。この商予測は、被除数（中間剰余）の上位２桁と除数の上位１桁との情報に基づいて、図２の表で区切り線１０の上側のグループ（商が０〜７）と区切り線１０の下側のグループ（商が４〜９）の何れか１つのグループを特定することにより行われる。
【００３６】
ステップＳ３で、取りうる部分商の範囲が４〜９であればステップＳ４の処理を、取りうる部分商の範囲が０〜７であればステップＳ９の処理を行うようにセレクト信号を生成する。
【００３７】
ステップＳ４で、第１及び第２の減算器に中間剰余と除数が入力される。第１の減算器により、中間剰余Ｒから５倍の除数が減算され、中間剰余Ｒ１とキャリーアウトＣＯ１とが出力される。また第２の減算器により、中間剰余Ｒから８倍の除数が減算され、中間剰余Ｒ２とキャリーアウトＣＯ２とが出力される。
【００３８】
ステップＳ５で、第１及び第２の減算器のキャリーアウトＣＯ１及びＣＯ２の組み合わせから、中間剰余Ｒと部分商Ｑとに入力する値を選択する。ＣＯ１及びＣＯ２が０及び０であるならば、ステップＳ６で、中間剰余Ｒの値をそのままとし、部分商Ｑを４とする。ＣＯ１及びＣＯ２が１及び０であるならば、ステップＳ７で、中間剰余Ｒ１を中間剰余Ｒとし、部分商Ｑを５とする。ＣＯ１及びＣＯ２が１及び１であるならば、ステップＳ８で、中間剰余Ｒ２を中間剰余Ｒとし、部分商Ｑを８とする。
【００３９】
ステップＳ９で、第１の減算器と第２の減算器に中間剰余と除数が入力される。第１の減算器により、中間剰余Ｒから２倍の除数が減算され、中間剰余Ｒ１とキャリーアウトＣＯ１とが出力される。また第２の減算器により、中間剰余Ｒから５倍の除数が減算され、中間剰余Ｒ２とキャリーアウトＣＯ２とが出力される。
【００４０】
ステップＳ１０で、第１及び第２の減算器のキャリーアウトＣＯ１及びＣＯ２の組み合わせから、中間剰余Ｒと部分商Ｑとに入力する値を選択する。ＣＯ１及びＣＯ２が０及び０であるならば、ステップＳ１１で、中間剰余Ｒの値をそのままとし、部分商Ｑを０とする。ＣＯ１及びＣＯ２が１及び０であるならば、ステップＳ１２で、中間剰余Ｒ１を中間剰余Ｒとし、部分商Ｑを２とする。ＣＯ１及びＣＯ２が１及び１であるならば、ステップＳ１３で、中間剰余Ｒ２を中間剰余Ｒとし、部分商Ｑを５とする。
【００４１】
以上が１回目の減算ループであり、その後、以下に説明する２回目の減算ループが実行される。
【００４２】
商予測が４〜９の範囲であり且つ１回目の減算ループにおけるＣＯ１及びＣＯ２が０及び０であったならば、ステップＳ１４で、中間剰余Ｒから4倍の除数が減算され、減算結果が中間剰余Ｒとなる。
【００４３】
商予測が４〜９の範囲であり且つ１回目の減算ループにおけるＣＯ１及びＣＯ２が０及び０であったという条件以外の場合には、ステップＳ１５で、第１の減算器と第２の減算器に中間剰余と除数が入力される。第１の減算器により、中間剰余Ｒから除数が減算され、中間剰余Ｒ１とキャリーアウトＣＯ１とが出力される。また第２の減算器により、中間剰余から２倍の除数が減算され、中間剰余Ｒ２とキャリーアウトＲ２とが出力される。
【００４４】
ステップＳ１６で、第１及び第２の減算器のキャリーアウトＣＯ１及びＣＯ２の組み合わせから、中間剰余Ｒと部分商Ｑとに入力する値を選択する。ＣＯ１及びＣＯ２が０及び０であるならば、ステップＳ１７で、中間剰余Ｒの値をそのままとし、部分商Ｑもそのままとする。ＣＯ１及びＣＯ２が１及び０であるならば、ステップＳ１８で、中間剰余Ｒ１を中間剰余Ｒとし、部分商Ｑに１を加算する。ＣＯ１及びＣＯ２が１及び１であるならば、ステップＳ１９で、中間剰余Ｒ２を中間剰余Ｒとし、部分商Ｑに２を加算する。
【００４５】
最後にステップＳ２０で、中間剰余Ｒと部分商Ｑとを出力する。以上の処理により、２回の減算ループで中間剰余Ｒと部分商Ｑとを求めることができる。
【００４６】
図５は、コンピュータシステムの構成の一例を示す図である。図５に示すコンピュータシステムは、プロセッサ１１０及びメモリ１１１を含む。演算処理装置としてのプロセッサ１１０は、２次キャッシュ部１１２、１次キャッシュ部１１３、制御部１１４、及び演算部１１５を含む。１次キャッシュ部１１３は、命令キャッシュ１１３Ａ及びデータキャッシュ１１３Ｂを含む。演算部１１５は、レジスタ１１６、演算制御部１１７、及び演算器１１８を含む。演算器１１８には除算器１１９が含まれる。除算器１１９には、部分剰余及び部分商を求める演算回路１１９Ａが含まれる。なお図５及び以降の同様の図において、各ボックスで示される各機能ブロックと他の機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。各機能ブロックは、他のブロックと物理的にある程度分離された１つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の１つの機能を示したものであってもよい。各機能ブロックは、他のブロックと論理的にある程度分離された１つのモジュールであってもよいし、或いは他のブロックと論理的に一体となったモジュール中の１つの機能を示したものであってもよい。
【００４７】
上記コンピュータシステムはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いた情報処理装置を模式化したものであり、このコンピュータシステムによりＯｒａｃｌｅ−ｎｕｍｂｅｒ等を演算するハードウェアを実現する。プロセッサ１１０では、１次キャッシュ部１１３及び２次キャッシュ部１１２を設けることにより、キャッシュメモリを多階層化した構成となっている。具体的には、１次キャッシュ部１１３と主記憶（メモリ１１１）との間に、主記憶よりも高速にアクセスできる２次キャッシュ部１１２を設けている。これにより、１次キャッシュ部１１３においてキャッシュミスが発生した場合に、主記憶にアクセスが必要になる頻度を低くして、キャッシュミス・ペナルティーを軽減することができる。
【００４８】
制御部（命令制御部）１１４は、命令フェッチアドレスと命令フェッチリクエストとを１次命令キャッシュ１１３Ａに発行し、この命令フェッチアドレスから命令をフェッチする。制御部１１４は、フェッチした命令（例えば除算命令）をデコードした結果に従い演算部１１５を制御して、フェッチされた命令を実行する。演算制御部１１７は、制御部１１４の制御下で動作し、演算対象のレジスタ１１６からのデータを演算器１１８に供給したり、演算結果のデータを指定されたレジスタ１１６に格納したりする。また演算制御部１１７は、演算器１１８が実行する演算のタイプを指定する。更に演算制御部１１７は、アクセス先のアドレスを指定し、１次キャッシュ部１１３の当該アドレスに対してロード命令やストア命令を実行する。ロード命令により、指定アドレスから読み出されたデータは、指定されたレジスタ１１６に格納される。またストア命令により、指定されたレジスタ１１６のデータが、指定されたアドレスに書き込まれる。演算器１１８に含まれる除算器１１９の演算回路１１９Ａが、部分商及び中間剰余を計算する回路であり、例えば前述の粗い商予測に基づいて２個の加算器により２回のループで結果を算出可能な演算回路であってよい。また以下の説明において、
図６は、演算回路１１９Ａの構成の一例を示す図である。図６に示す演算回路１１９Ａは、中間剰余レジスタ１２１、除数レジスタ１２２、サイクルレジスタ１２３、４倍選択レジスタ１２４、商予測回路１２５、倍数選択回路１２６、定数倍回路１２７、減算器１２８、減算器１２９、及び制御回路１３０を含む。演算回路１１９Ａは更に、部分商計算回路１３１、中間剰余選択回路１３２、部分商レジスタ１３３、及びセレクタ１３４を含む。
【００４９】
定数倍回路１２７は、２倍の除数、４倍の除数、５倍の除数、及び８倍の除数を生成する。例えば２進化１０進数の定数倍を生成するうち、これら４つのＮ倍除数（Ｎ＝２，４，５，８）は、それ以外の倍数よりも単純な論理で実現することが可能である。
【００５０】
２倍回路においては、各桁を２倍すると、キャリー伝搬を除いた各桁が必ず偶数になるので、下位からのキャリー伝搬がそのまま各桁のＬＳＢ（最下位ビット）に収まる。従ってキャリーが伝搬していく状況を考える必要がなく、１つの着目桁の値を計算する際には、当該桁の値とその１つ下の桁の値だけを用いればよい。そのようにして２倍値を計算する回路は、入力値と出力値とを示す真理値表に基づいて、組み合わせ論理回路として実現することができる。そのようにして実現した回路は、加算器を用いて２倍値を計算するよりも高速に２倍値を求めることができる。
【００５１】
図７は、２倍回路における各桁の入出力値を示す真理値表である。Ａｎ［３：０］はｎ桁目の入力である４ビットの値である。Ｓｎ及びＳｎ＋１はＡｎを２倍して得られる値を表わし、Ｓｎ［３：１］はｎ桁目の４ビットのうちの上位３ビットであり、Ｓｎ＋１［０］はn＋１桁目の４ビットの最下位ビットである。例えばＡｎ［３：０］が１０００（１０進で８）の場合、その２倍の値（１０進で１６）は、ｎ＋１桁が０００１、ｎ桁が０１１０となる。従って、図７に示されるように、Ｓｎ＋１［０］＝１、Ｓｎ［３：１］＝０１１となる。この入力値と出力値とを示す真理値表を実現する組み合わせ論理回路を設計することで、２倍回路を実現することができる。
【００５２】
４倍回路及び８倍回路の場合は、キャリーが２ビット分発生することがある為、上記のように１桁の真理値表に基づいて回路を設計することはできない。しかしながら、２倍回路が単純な組み合わせ論理回路で実現できるので、その２倍回路を直列に２個繋げることにより４倍回路を実現し、また、２倍回路を直列に３個繋げることにより８倍回路を実現すればよい。
【００５３】
５倍回路の場合は、入力数を１０倍して得られた結果を２で割る処理を行えばよい。その処理は以下のようにして実現できる。まず入力数を１０倍処理に相当する４ビット左シフトする。得られた入力数１０倍の値を、１／２倍処理に相当する１ビット右シフトする。但し、この１ビット右シフト処理において、同一桁内で値が１のビットが移動する場合には正しい結果（１／２倍の結果）が得られるが、ｎ＋１桁からｎ桁に値１のビットが移動した場合、ｎ＋１桁からｎ桁に落ちてきた値は８（１０００２）となってしまう。本来はｎ＋１桁の１の１／２の値はｎ桁の５に等しいので、ｎ＋１桁からｎ桁に落ちてきた値８を５に変換する必要がある。そこで、各桁においてＭＳＢが１であった場合、ＭＳＢを０にして、更にその桁に５を加算する。なお１／２倍処理に相当する１ビット右シフトをした時点で、各桁の下位３ビットの値は０〜４の値しか取り得ないので、上記のようにして５を加算してもキャリーアウトは発生しない。そのようにして５倍値を計算する回路は、入力値と出力値とを示す真理値表に基づいて、組み合わせ論理回路として実現することができる。そのようにして実現した回路は、加算器を用いて５倍値を計算するよりも高速に５倍値を求めることができる。
【００５４】
図８は、５倍回路における各桁の入出力値を示す真理値表である。Ａｎ［０］はｎ桁目の入力４ビットの最下位ビットであり、Ａｎ−１［３：１］はｎ−１桁目の入力４ビットの上位３ビットである。この入力を３ビット左シフト（＝４ビット左シフト＋１ビット右シフト）し、ＭＳＢが１であった場合、ＭＳＢを０にして更に５を加算して得られるｎ桁の出力４ビットがＳｎ［３：０］である。この入力値と出力値とを示す真理値表を実現する組み合わせ論理回路を設計することで、５倍回路を実現することができる。
【００５５】
図６に戻り、上述のようにして実現された２倍回路及び５倍回路が、定数倍回路１２７に内蔵されている。これにより、定数倍回路１２７での定数倍処理を高速に実現することができる。またこのような定数倍処理の工夫だけでなく、図６の構成では、各減算器に対するＮ倍除数の割り当てについても工夫がされている。引き戻し法では各減算器のキャリーアウトによってＮ倍除数の選択を制御するので、各々の減算器に同時に入力するＮ倍除数の大小関係を常に同じにすることで、Ｎ倍除数の選択制御が簡易になる。前述したアルゴリズムの例でもそうして説明している。しかし図６の演算回路では、その関係を崩し、１回目の減算時には常に第1の減算器１２８へ５倍除数を入力するようにしている。これは５倍除数を使う時には常に第１の減算器１２８を用いることで、必要なセレクタの段数を減らすことができるためである。
【００５６】
以下に、図６に示す演算回路の動作について説明する。なお以下の説明並びに図６及び以降の図において、中間剰余Ｒ、除数ＤＩＶｓ、Ｎ倍除数ＮＤＩＶｓ、部分商Ｑ［３：０］、減算回数判定信号ｃｙｃｌｅ、商予測信号ｐｒｅＱ、第１及び第２の減算器に出力するＮ倍除数ｘＮａｄｄ１及びｘＮａｄｄ２と表記する。また更に、４倍除数選択信号ｓｅｌｘ４、５倍除数選択信号ｓｅｌｘ５、８倍除数選択信号ｓｅｌｘ８、キャリーアウトＣＯ１及びＣＯ２、部分商Ｑ１及びＱ２、そして中間剰余の上位２桁Ｒ［７：０］、除数の上位１桁Ｓ［３：０］と表記する。減算回数判定信号ｃｙｃｌｅは、１回目の減算ループにおいて０であり、２回目の減算ループにおいて１となる。
【００５７】
図６において、まず中間剰余レジスタ１２１と除数レジスタ１２２とに中間剰余Ｒと除数ＤＩＶｓとが入力され、サイクルレジスタ１２３と４倍選択レジスタ１２４とに減算回数判定信号ｃｙｃｌｅと4倍除数選択信号ｓｅｌｘ４とが入力される。中間剰余レジスタ１２１と除数レジスタ１２２とから、商予測回路１２５に、中間剰余Ｒと除数ＤＩＶｓとが入力される。
【００５８】
図９は、商予測回路１２５の構成の一例を示す図である。図９に示す商予測回路１２５は、ＡＮＤ回路１４１乃至１５１及びＯＲ回路１５２乃至１５５を含む。ＡＮＤ回路１４１乃至１４４については、入力の一部が負論理となっている。この商予測回路１２５が、中間剰余の上位２桁Ｒ［７：０］と除数の上位１桁Ｓ［３：０］との情報に基づいて、この情報から予測可能な精度よりも低い精度での商予測を行う。即ち、商予測回路１２５が、この情報に基づいて商予測を行い、図２の表で区切り線１０の上側のグループ（商が０〜７）と区切り線１０の下側のグループ（商が４〜９）との何れか一方のグループを特定する。なお図９において、中間剰余の上位２桁Ｒ［７：０］の全ビットが使用されているのではない（例えばＲ［０］は使用されていない）。即ち、中間剰余の上位２桁Ｒ［７：０］と除数の上位１桁Ｓ［３：０］との全ビットではない一部のビットを用いて商予測を行っている。商予測回路１２５は、商の取りえる範囲が４〜９であるならば１、０〜７であるならば０となるようなセレクト信号を生成する。商予測回路１２５は、生成したセレクト信号を、倍数選択回路１２６、制御回路１３０、及び部分商計算回路１３１に供給する。
【００５９】
図１０は、定数倍回路１２７の構成の一例を示す図である。図１０に示す定数倍回路１２７は、５倍回路１６１、２倍回路１６２乃至１６４、及びセレクタ１６５乃至１６７を含む。セレクタ１６６が選択して出力するＮ倍除数ｘＮａｄｄ１が減算器１２８に供給される。セレクタ１６７が選択して出力するＮ倍除数ｘＮａｄｄ２が減算器１２９に供給される。４倍除数選択信号ｓｅｌｘ４、５倍除数選択信号ｓｅｌｘ５、及び８倍除数選択信号ｓｅｌｘ８は倍数選択回路１２６から供給される。
【００６０】
定数倍回路１２７は、５倍除数選択信号ｓｅｌｘ５が１であるならば５倍の除数を減算器１２８に供給し、５倍除数選択信号ｓｅｌｘ５が０であるならばそのままの除数（１倍の除数）を減算器１２８に供給する。定数倍回路１２７は、４倍除数選択信号ｓｅｌｘ４及び８倍除数選択信号ｓｅｌｘ８がそれぞれ０及び０であるならば、２倍の除数を減算器１２９に供給する。定数倍回路１２７は、４倍除数選択信号ｓｅｌｘ４及び８倍除数選択信号ｓｅｌｘ８がそれぞれ１及び０であるならば、４倍の除数を減算器１２９に供給する。定数倍回路１２７は、８倍除数選択信号ｓｅｌｘ８が１であるならば、８倍の除数を減算器１２９に供給する。
【００６１】
図１１は、倍数選択回路１２６の構成の一例を示す図である。倍数選択回路１２６は、インバータ１７１及びＡＮＤ回路１７２を含む。ＡＮＤ回路１７２の一方の入力は負論理となっている。倍数選択回路１２６は、サイクルレジスタ１２３からの減算回数判定信号ｃｙｃｌｅ、４倍選択レジスタ１２４からの４倍除数選択信号ｓｅｌｘ４、及び商予測回路１２５からの商予測信号ｐｒｅＱを、入力として受け取る。倍数選択回路１２６は、これらの入力に応じて、４倍除数選択信号ｓｅｌｘ４、５倍除数選択信号ｓｅｌｘ５、８倍除数選択信号ｓｅｌｘ８の値を０又は１に設定する。
【００６２】
倍数選択回路１２６は、減算回数判定信号ｃｙｃｌｅが０であるならば５倍除数選択信号ｓｅｌｘ５を１とする。倍数選択回路１２６は、４倍除数選択信号ｓｅｌｘ４については、受け取った信号をそのまま出力する。倍数選択回路１２６は、減算回数判定信号ｃｙｃｌｅが０であり且つ商予測信号ｐｒｅＱが1であるならば、８倍除数選択信号ｓｅｌｘ８を１とする。
【００６３】
図１２は、倍数選択回路１２６及び定数倍回路１２７の入出力の関係を示す表である。図１０に示す定数倍回路１２７及び図１１の倍数選択回路１２６は、図１２に示す表に示されるように動作する。例えば、減算回数判定信号ｃｙｃｌｅ、４倍除数選択信号ｓｅｌｘ４、及び商予測信号ｐｒｅＱが、それぞれ０，０，０である場合、５倍除数選択信号ｓｅｌｘ５、４倍除数選択信号ｓｅｌｘ４、及び８倍除数選択信号ｓｅｌｘ８は、それぞれ１，０，０となる。またこの時、第１の減算器１２８（ＳＵＢ１）に供給されるＮ倍除数は５倍除数であり、第２の減算器１２９（ＳＵＢ２）に供給されるＮ倍除数は２倍除数である。
【００６４】
図６に戻り、減算器１２８は、供給された中間剰余ＲからＮ倍除数を減算し、減算結果である中間剰余Ｒ１と、減算のキャリーアウトＣＯ１とを出力する。また減算器１２９は、供給された中間剰余ＲからＮ倍除数を減算し、減算結果である中間剰余Ｒ２と、減算のキャリーアウトＣＯ２とを出力する。部分商計算回路１３１に、キャリーアウトＣＯ１が供給される。部分商計算回路１３１に、キャリーアウトＣＯ１及びＣＯ２が供給される。また中間剰余選択回路１３２にも、キャリーアウトＣＯ１及びＣＯ２が供給される。
【００６５】
図１３は、中間剰余選択回路１３２の構成の一例を示す図である。図１３に示す中間剰余選択回路１３２は、一部の入力が負論理のＡＮＤ回路１８１乃至１８４、セレクタ１８５及び１８６、及びＯＲ回路１８７を含む。中間剰余選択回路１３２は、減算回数判定信号ｃｙｃｌｅ、４倍除数選択信号ｓｅｌｘ４、商予測信号ｐｒｅＱ、並びにキャリーアウトＣＯ１及びＣＯ２を入力として受け取る。
【００６６】
図１４は、中間剰余選択回路１３２の入出力の関係を示す表である。中間剰余選択回路１３２は、入力が与えられたときに、図１４の表に示されるようなセレクト信号ｓｅｌＲ［１］及びｓｅｌＲ［０］を出力する。セレクト信号ｓｅｌＲ［１］及びｓｅｌＲ［０］は、図６に示されるように、セレクタ１３４に供給される。
【００６７】
図６においてセレクタ１３４は、セレクト信号ｓｅｌＲ［１］及びｓｅｌＲ［０］に応じて、中間剰余レジスタ１２１の中間剰余Ｒ、減算器１２８の減算結果である中間剰余Ｒ１、又は減算器１２９の減算結果である中間剰余Ｒ２を選択する。選択された中間剰余は、中間剰余レジスタ１２１に供給され格納される。具体的には、セレクト信号ｓｅｌＲ［１］及びｓｅｌＲ［０］がそれぞれ０及び０の場合、中間剰余Ｒが選択される。ｓｅｌＲ［１］及びｓｅｌＲ［０］がそれぞれ０及び１の場合、中間剰余Ｒ１が選択される。またｓｅｌＲ［１］及びｓｅｌＲ［０］がそれぞれ１及び０の場合、中間剰余Ｒ２が選択される。
【００６８】
図１５は、制御回路１３０の構成の一例を示す図である。図１５に示す制御回路１３０は、インバータ１９１と、入力の一部が負論理であるＡＮＤ回路１９２とを含む。制御回路１３０は、減算回数判定信号ｃｙｃｌｅ、商予測信号ｐｒｅＱ、及びキャリーアウトＣＯ１を入力として受け取る。制御回路１３０は、減算回数判定信号ｃｙｃｌｅを反転する。反転された減算回数判定信号ｃｙｃｌｅは、サイクルレジスタ１２３に供給され格納される。また、減算回数判定信号ｃｙｃｌｅが０、商予測ｐｒｅＱが１、且つキャリーアウトＣＯ１が０である場合に限り、制御回路１３０は、４倍除数選択信号ｓｅｌｘ４を１に設定する。１に設定された４倍除数選択信号ｓｅｌｘ４は、４倍選択レジスタ１２４に供給され格納される。
【００６９】
図１６は、部分商計算回路１３１の構成の一例を示す図である。図１６に示す部分商計算回路１３１は、加算器２０１、定数テーブル２０２、ＡＮＤ回路２０３乃至２０５、及びＯＲ回路２０６を含む。ＡＮＤ回路２０４及び２０５の一方の入力は負論理となっている。部分商計算回路１３１は、減算回数判定信号ｃｙｃｌｅ、４倍除数選択信号ｓｅｌｘ４、商予測信号ｐｒｅＱ、キャリーアウトＣＯ１及びＣＯ２、及び部分商レジスタ１３３からの部分商Ｑを入力として受け取る。
【００７０】
図１７は、部分商計算回路１３１の入出力の関係を示す表である。部分商計算回路１３１は、入力が与えられたときに、図１７の表に示されるような部分商を出力する。なお図１７において、「行う処理」のＱとして、４や５等の数値が示されているときは、部分商Ｑとして当該数値を出力することを示す。また「行う処理」のＱとして、＋１や＋２等の演算が示されているときは、現在の部分商Ｑに対して当該演算を行うことを示す。
【００７１】
図１８は、図１６の定数テーブル２０２の入出力の関係を示す表である。商予測信号ｐｒｅＱ、キャリーアウトＣＯ１、及びキャリーアウトＣＯ２により、定数テーブル２０２中に格納される複数の定数のうちの１つが選択され、選択された定数が出力される。例えば、商予測信号ｐｒｅＱ、キャリーアウトＣＯ１、及びキャリーアウトＣＯ２がそれぞれ１，１，０の場合、部分商Ｑとして０１０１が出力される。以下において、定数テーブル２０２の出力を第１の部分商と呼ぶ。
【００７２】
図１６を再び参照し、部分商レジスタ１３３からの部分商ＱとキャリーアウトＣＯ１とが加算器２０１に入力され、キャリーアウトＣＯ２が入力キャリーとして加算器２０１に入力される。この加算器２０１の加算結果を、以下において、第２の部分商と呼ぶ。
【００７３】
４倍除数選択信号ｓｅｌｘ４が１である時、部分商Ｑが、ＯＲ回路２０６を介して部分商計算回路１３１から出力される。出力された部分商Ｑが、部分商レジスタ１３３に供給され格納される。減算回数判定信号ｃｙｃｌｅが０である時、前述の第１の部分商が、ＯＲ回路２０６を介して部分商計算回路１３１から出力される。出力された部分商Ｑが、部分商レジスタ１３３に供給され格納される。また４倍除数選択信号ｓｅｌｘ４が０であり且つ減算回数判定信号ｃｙｃｌｅが１である時、前述の第２の部分商が、ＯＲ回路２０６を介して部分商計算回路１３１から出力される。出力された部分商Ｑが、部分商レジスタ１３３に供給され格納される。
【００７４】
以上のようにして、図６に示す演算回路１１９Ａが動作することにより、図４に示すアルゴリズムが実行され、中間剰余と部分商とを２回の演算ループにて求めることができる。図６に示す演算回路１１９Ａでは、単純な構成を有する商予測回路１２５により粗い商予測を行い、演算ループ回数を少なくする（図６の例では２回にする）ことができる。また減算ループ内における処理を単純な回路で実現することにより、高い動作周波数での実装が可能となり、小さな回路規模で高速に動作する演算回路を実現することができる。
【００７５】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００７６】
１１０  プロセッサ
１１１  メモリ
１１２  ２次キャッシュ部
１１３  １次キャッシュ部
１１３Ａ  命令キャッシュ
１１３Ｂ  データキャッシュ
１１４  制御部
１１５  演算部
１１６  レジスタ
１１７  演算制御部
１１８  演算器
１１９  除算器
１１９Ａ  演算回路
【図１】
2014041415.tif 000003
【図２】
2014041415.tif 000004
【図３】
2014041415.tif 000005
【図４】
2014041415.tif 000006
【図５】
2014041415.tif 000007
【図６】
2014041415.tif 000008
【図７】
2014041415.tif 000009
【図８】
2014041415.tif 000010
【図９】
2014041415.tif 000011
【図１０】
2014041415.tif 000012
【図１１】
2014041415.tif 000013
【図１２】
2014041415.tif 000014
【図１３】
2014041415.tif 000015
【図１４】
2014041415.tif 000016
【図１５】
2014041415.tif 000017
【図１６】
2014041415.tif 000018
【図１７】
2014041415.tif 000019
【図１８】
2014041415.tif 000020