(57)【要約】【課題】演算処理部の内部処理を動作させる前に入力するパラメータデータを分類することで、効率よく演算処理ができるようにする演算処理装置とその方法を提供する。【解決手段】演算処理を実行するためのパラメータデータを格納するデータベースからパラメータデータを取得し、タグ値のアドレスに基づいてパラメータデータを分類し、分類により区分けされた区画ごとにパラメータデータを振り分けてデータベースの対象の区画の末尾に追加して格納する分類処理をし、データベースからパラメータデータを取得し、データとタグ値に基づいて予め決められた演算処理をする演算処理方法である。【選択図】図１
2008171250.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースから前記パラメータデータを取得し、
前記タグ値のアドレスに基づいて前記パラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理をし、
前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算をする、
ことを特徴とする演算処理方法。
【請求項２】
前記演算処理は、演算処理を行うための内部メモリを備え、前記データベースから取得した前記タグ値のアドレスに基づいて前記内部メモリから内部メモリデータを読み出し、前記読み出した前記内部メモリデータに対数換算した前記パラメータデータのデータ領域のデータを加算して前記内部メモリに書き戻し、
前記アドレスに前記データを加算して次の前記内部メモリデータの読み出しアドレスを算出し、
前記内部メモリアのアドレス範囲を超えるときは前記内部メモリのアドレスから前記メモリのアドレスを減算しオフセット値を算出する、
ことを特徴とする請求項１に記載の演算処理方法。
【請求項３】
演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースから前記パラメータデータを取得し、
前記データと前記タグ値に基づいて予め決められた演算処理を行い、その演算処理結果である前記パラメータデータの前記タグ値のアドレスに基づいて前記パラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理をする、
ことを特徴とする演算処理方法。
【請求項４】
演算処理を行う演算処理装置において、
前記演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースと、
前記パラメータデータを前記データベースから取得し、前記タグ値のアドレスに基づいてパラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理部と、
前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行う演算処理部と
を具備することを特徴とする演算処理装置。
【請求項５】
演算処理を行う演算処理装置において、
前記演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースと、
前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行い、その演算処理結果を前記分類処理部に転送する前記演算処理部と、
前記パラメータデータを前記演算処理部から取得し、前記タグ値のアドレスに基づいてパラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理部と、
を具備することを特徴とする演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリを介在したハードウェアによる並列演算処理に係り、特に入力されるパラメータデータに基づいて演算処理を実行する算術演算処理の技術に関する。
【背景技術】
【０００２】
近年、ソフトウェアで処理していた複雑な処理をハードウェアで実現するようになり、さらなる高速化処理が求められ、ハードウェアの利点である並列演算処理の実装が要求されている。例えば、画像処理、信号処理、高速通信処理、暗号処理など様々な技術分野において並列演算処理をハードウェアにより行うことが進められている。
【０００３】
図１８は従来の並列演算処理装置の構成図であり、例えば、素因数分解などで使用する篩の計算を行う場合などに用いられる。
データベース１８１（DATAbase）には、図１９に示すようにデータ領域（data）とタグ領域（Tag）から構成されるパラメータデータ（P_data）が複数個格納されている。演算処理部１８２（＃０〜＃ｎ）にはデータベース１８１からパラメータデータを受信し、篩の計算などの演算処理を行い、また、その演算処理結果をデータベース１８１に戻す制御も行う。
【０００４】
図２０に図１８に示すデータベース１８１と演算処理部１８２の処理フローを示し説明をする。
ステップＳ２０１では、図１に示す演算処理部１８２がデータベース１８１よりパラメータデータ（P_data）を受信する。例えば、演算部処理１８２（＃１）がデータベース１８１から１組目のパラメータデータ０（P_data_0）をリード（read）する。
【０００５】
ステップＳ２０２では、演算処理部１８２が扱う対象のパラメータデータであるかを判定する。例えば、入力されたパラメータデータのタグ領域のタグ値（tag）から、演算処理部１８２（＃１）で処理する対象であると判定した場合、演算処理部１８２（＃１）により演算処理を実行するためステップＳ２０３に移行する。処理対処外であれば演算処理を行わないでステップＳ２０４に移行する。
【０００６】
ステップＳ２０３では対象の演算処理部１８２で演算処理を実行する。例えば、演算処理部１８２（＃１）で演算処理を完了した後、演算処理部１８２（＃１）は、必要に応じてタグ値を書き換え、データベース１８１に書き込み（write）をする。
【０００７】
ステップＳ２０４では、各演算処理部１８２がデータベース１８１に格納されているパラメータデータの最後であるかを判定する。完了していない場合はＳ２０１〜Ｓ２０３の処理を繰り返す。図１８の構成において、パラメータデータはｍ個（P_data_0〜P_data_m）あるのでｍ回繰り返す。完了していればステップＳ２０５に移行する。
【０００８】
次に、ステップＳ２０５では、演算処理部１８２（＃１〜＃ｎ）全てが演算を完了したかを判定する。例えば、演算処理部１８２（＃１）が演算処理を完了すれば、演算処理部１８２（＃２）がＳ２０１に移行し同様の処理を行い、演算処理部１８２（＃ｎ）までの全ての演算処理を行い、全ての演算処理が完了すれば本フローを終了する。
【０００９】
ところが、上記ステップに示すように処理を行うと、各演算処理部１８２（＃１〜＃ｎ）がデータベース１８１のパラメータデータを一度読み込み、実際に演算処理で対象とするデータであるかを判定しなければならない。例えば、演算処理部１８２（＃１）で演算
処理を行う場合に本来演算処理部１８２（＃１）が扱うパラメータデータ以外のパラメータデータも読み込み、対象のパラメータデータであるかを判断する必要がある。つまり、ステップＳ２０２からステップＳ２０４へ移行する判断が増加することにより演算処理時間が長くなるという問題がある。
【００１０】
特許文献１によれば、所要時間と所要メモリ空間の制限が無い場合、一対の回路の等価性を検証し得る完全検証技術、及び、一対の回路の一部だけの等価性を検証し得る補助検証技術を利用し、回路データ構造により表現された組合せ回路を検証するコンピュータ支援回路検証システムにおいて、回路データ構造の検証結果を決定するか、又は、回路データ構造を変更するため、組合せ回路に対し、組合せ回路に類似したベンチマーク回路のサンプル集合についての所要時間及び所要メモリ空間に基づいて予め決定された順番に複数の完全検証技術及び複数の補助検証技術を実行する手順と、検証結果又は変更された回路データ構造を、次に実行されるべき完全検証技術または補助検証技術へ供給する手順と、最終的な検証結果が決定されるか、または、最終的に変更された回路データ構造が決定されるまで、実行する手順及び供給する手順を繰り返す手順と、を有するコンピュータ支援回路検証方法が提案されている。つまり、一方の検証方式から他方の検証方式に切り替える際のオーバーヘッドを最低限に抑えると共に、先に適用された検証方式の結果を共有しながら種々のコア検証方式を自動的に利用し、かつ、一つ以上の検証方式が成功したときに検証結果が得られる方法が提案されている。
【００１１】
しかしながら、特許文献１では各演算部において全てのパラメータデータを扱わない場合に、扱わないパラメータデータに対して、パラメータデータを演算処理の対象から除外する演算処理が大半を占めるようになり処理効率が低下するという問題がある。
【特許文献１】特開平１１−７３４４８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明は上記のような実情に鑑みてなされたものであり、演算処理部の内部処理を動作させる前に入力するパラメータデータを分類することで、効率よく演算処理（演算の対象のみのパラメータデータを入力する）ができるようにする演算処理装置とその方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明ひとつである演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースから前記パラメータデータを取得し、前記タグ値のアドレスに基づいて前記パラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理をし、前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算をすることを特徴とする。
【００１４】
好ましくは、前記演算処理は、演算処理を行うための内部メモリを備え、前記データベースから取得した前記タグ値のアドレスに基づいて前記内部メモリから内部メモリデータを読み出し、前記読み出した前記内部メモリデータに対数換算した前記パラメータデータのデータ領域のデータを加算して前記内部メモリに書き戻し、前記アドレスに前記データを加算して次の前記内部メモリデータの読み出しアドレスを算出し、前記内部メモリのアドレス範囲を超えるときは前記内部メモリアのアドレスから前記メモリのアドレスを減算しオフセット値を算出してもよい。
【００１５】
本発明ひとつである演算処理を実行するためのデータを格納するデータ領域と、前記演
算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行い、その演算処理結果である前記パラメータデータの前記タグ値のアドレスに基づいて前記パラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理する。
【００１６】
本発明の態様のひとつである演算処理を行う演算処理装置において、前記演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースと、前記パラメータデータを前記データベースから取得し、前記タグ値のアドレスに基づいてパラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理部と、前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行う演算処理部と、を具備する構成である。
【００１７】
本発明の態様のひとつである演算処理を行う演算処理装置において、前記演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースと、前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行い、その演算処理結果を前記分類処理部に転送する前記演算処理部と、前記パラメータデータを前記演算処理部から取得し、前記タグ値のアドレスに基づいてパラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理部と、を具備する構成である。
【００１８】
上記構成と方法により、余剰な機能が無くなり処理時間を短縮することができる。
【発明の効果】
【００１９】
本発明によれば、分類処理を行い入力するパラメータデータを分類することで、演算処理部が受信したパラメータデータが全て内部処理の対象になり、余剰な機能が無くなり処理時間を短縮することができる。
【発明を実施するための最良の形態】
【００２０】
以下図面に基づいて、本発明の実施形態について詳細を説明する。
（実施例１）
図１は素因数分解などで用いる篩の計算を行う場合などに用いられる並列演算処理装置の構成図である。ここで、図１は並列演算処理装置を示しているが並列演算処理に限定されるものではなく逐次演算処理を行ってもよい。
【００２１】
データベース１（DATAbase）には、図１に示すようにデータ領域（data）とタグ領域（Tag）から構成されるパラメータデータ（P_data）が複数個格納されている。データ領域には演算処理で使用するデータが格納されている。タグ領域のタグ値には少なくともデータベース１に設けられた区画を示す区画情報を有している。
【００２２】
演算処理部２（＃１〜＃ｎ）にはデータベース１からパラメータデータを受信し、篩の計算などの演算処理を行い、その演算処理結果に基づいてデータ領域のデータを書き換えるとともに、必要に応じてタグ領域のタグ値も書き換え、データベース１に書き戻す制御も行う。図１の演算処理部２（並列演算処理をするハードウェア）の数とパラメータデータ数の関係は扱うパラメータデータ数（ｍ）と演算処理部２の数（ｎ）との差が少ないと
並列ハード処理の効果は少ないが、扱うパラメータデータ数が膨大になるほど、全演算処理部２が動作している時間が長くなり、効果的な並列処理ができる。
【００２３】
分類処理部３では、データベース１からパラメータデータを読込み、パラメータデータのタグ領域のタグ値に基づいて分類分けをしてパラメータデータをデータベース１に書き戻す。図１ではデータベース１が複数の区画に区分けされており、分類処理部３がタグ値に基づいて対応する区画にパラメータデータを振り分ける制御を行う。
【００２４】
図２は複数の演算処理部２と分類処理部３の内部回路を示した図である。演算処理部２はパラメータデータ受信部２１、内部処理部２２、パラメータデータ送信部２３から構成されている。パラメータデータ受信部２１はパラメータデータを受信し内部処理部２２にデータ領域に書込まれたデータを転送する。また、タグ値の転送も行う。
【００２５】
内部処理部２２ではデータに基づいて演算処理を行い、演算処理結果をパラメータデータ送信部２３に転送する。このとき内部処理部２２で演算処理結果に基づいて必要な場合にタグ値を書き換える。
【００２６】
内部処理部２２で生成されたデータとタグ値は、パラメータデータ送信部２３によりパラメータデータのフォーマット（図１９参照）に置き換えられデータベース１に転送される。
【００２７】
次に、分類処理部３はパラメータデータ受信部２４、タグ情報判断部２５、分類処理部２６、パラメータデータ送信部２７から構成されている。パラメータデータ受信部２４はパラメータデータを受信しタグ情報判断部２５にタグ領域に書込まれたタグ値を転送する。また、データ領域のデータも転送してもかまわない。
【００２８】
タグ情報判断部２５ではタグ値に基づいてどの区画に書込むパラメータデータであるかを判断する。その判断結果に基づいて分類処理部２６はパラメータデータ送信部２７にデータベース１の区画のどこにパラメータデータを書込むかを決める書込み先情報を転送する。分類処理部２６では指定されたデータベース１の区画へパラメータデータ送信部２７によりパラメータデータが転送される。ここで、書込み先情報は、例えばデータベース１のメモリアドレスを指定する。
【００２９】
次に、分類処理部３の動作について具体例に沿って図３を用い説明をする。図３は分類処理部３が行う区画振り分けを示した図である。
「区画名」は図１に示すデータベース１の区画を示している。本例では「FB0」〜「SB11」までの区画にデータベース１のメモリ領域が区画分けされている。そして、本例の「FB0」は全演算処理部２（例えば図１の＃１〜＃ｎ）が１回で処理できる処理対象空間容量（Ｓ）を２１９（５１２ｋビット）とした場合である。つまり、図１に示した演算処理部２（＃１〜＃ｎ）が１回の演算処理で処理できるパラメータデータのデータ量であることを示している。また、本例ではパラメータデータのタグ値のアドレス値（ｒ値）の最大値を２３０（１Ｇビット）としている。
【００３０】
演算処理部２が１回で処理できるｒ値が２１９であるので、２２０ビット以上のデータに対しては、分類処理部３の区画分け処理が必要となる。
右側の１回目〜２０４８回目は、演算処理部２の演算処理回数と対象区画を表記したものである。「FB0」区画の範囲のパラメータデータ量を扱う場合は区画数が１区画であり、毎回この区画を演算処理対象とする。「SB1」区画には２１９の区画が２つあり、２回に一回の割合で「SB0-0」「SB0-1」で示された対象の区画の演算処理が行われる。「SB2」区画には「SB1-0」「SB1-1」「SB1-2」「SB1-3」で示される２１９の区画が４区画あり
、４回に１回対象の区画の演算処理が行われる。同様に「SB11」区画は、２０４８回に１回対象の区画の演算処理が行われることになる。
【００３１】
図４に示す図は、データベース１の区画にあるパラメータデータ数（全体処理対象空間容量）が、演算処理部２（＃１〜＃ｎ）の１回の演算処理により処理できる処理対象空間容量の大きさと同等かそれ以下の場合の例である（全体処理対象空間≦１回での処理対象空間）。この場合、１回で演算処理が完結するために書き戻すことを必要としない。図３の「FB0-0」で示した演算処理と同じである。
【００３２】
図５は全体処理対象空間容量が１回での処理対象空間容量の大きさに対して大きくなった場合である（全体処理対象空間＞１回での処理対象空間）。図３の「SB1」〜「SB11」区画に示した場合である。このような場合には、一度に演算処理ができないため、処理対象空間を分割して演算処理することを余儀なくされる。この処理対象空間の分割の受け渡し処理として後述する書き戻す処理が必要となる。図５において大きな全体処理対象空間と、その中の各Ｓ（０）、Ｓ（１）が図３に示す「SB0-0」「SB0-1」区画に対応し１回の演算処理の対象を示す。
【００３３】
ここで、広大な空間を扱う場合においては、タグ値として大きい値を扱う必要がある。Ｓ（０）区画の演算処理後にＳ（１）区画の演算処理の前準備としてＳ（０）区画においてのオフセット値（offset）を計算する処理が必要であり、この計算結果が書き戻し処理である。
【００３４】
実施例１の動作について図６を参照して説明する。
ステップＳ６１ではデータベース１（DATAbase）からパラメータデータ（P_data）を分類処理部３で受信する。
【００３５】
ステップＳ６２では、分類処理部３でパラメータデータを構成するタグ領域（Tag）のタグ値から何番目の区画かを判断する。その判断結果に基づいてどの区画を対象にしているかを判断しステップＳ６３〜Ｓ６５のいずれかに移行する。
【００３６】
ステップＳ６３〜Ｓ６５に示した第１の区画〜第ｎの区画では、Ｓ６２で判断した判断結果に基づいてデータベース１の対象の区画にパラメータデータを書き戻す。このときパラメータデータは、同じ区画に既に保存されているパラメータデータの末尾に追加格納する。
【００３７】
図７は演算処理部２が演算処理後にパラメータデータをどのように格納するかを示している。図７に一例として図３上の区画「SB2」を使用した区画数２の場合について説明する。「ａ」「ｂ」〜「ｎ」はパラメータデータで処理時系列順に格納されている。演算処理部２は「ａ」から順番に演算処理を行う。「ａ」のデータ領域には「data_0」というデータとタグ領域には「SB2-1」という区画が格納されている。「ｂ」には「data_1」と「SB2-3」、「ｃ」には「data_2」と「SB2-1」が格納され、全てのパラメータデータに区画が割り付けられている。図３で説明した「SB2」区画と同じである。タグ値の区画に基づいてデータベース１の各区画「SB2-0」「SB2-1」「SB2-2」「SB2-3」にパラメータデータを割り振る。「SB2-0」区画には既に累積されたパラメータデータがないため「ａ」が区画の先頭に格納される。ついで、「ｂ」が「SB2-3」区画の累積されたパラメータデータの末尾に追加される。このように「ｃ」「ｄ」「ｅ」〜「ｎ」までの全てのパラメータデータをデータベース１の対象区画に格納する。
【００３８】
ステップＳ６６では各演算処理部２（＃１〜＃ｎ）で区画ごとの演算処理を実行する。例えば、篩の計算などの演算処理を行う。
ステップＳ６７ではタグ領域の値を必要に応じて書き換えてデータベース１に戻す。つまり、各演算処理部２（＃１〜＃ｎ）で演算処理した結果が他の区画のデータになる場合にタグ値の書き換えを行う。
【００３９】
ステップＳ６８ではデータベース１の現在の対象区画に格納されているパラメータデータの最後であるかを判断する。区画の最後のパラメータデータであればステップＳ６９に移行する。最後でない場合にはさらに同じ区画の次のパラメータデータの演算処理を行うためにステップＳ６１に移行する。
【００４０】
ステップＳ６９ではデータベース１の全ての区画について演算処理がされたかを判断する。全ての区画で演算処理が行われたことを判断した場合は本フローを終了する。それ以外の場合はステップＳ６１に移行する。
【００４１】
ここで、初回はデータベース１内の区画分けがされていないため全てのパラメータデータを対象に区画分けがされる。２回目以降は、該当区画のパラメータデータを対象として区画ごとに演算処理を行うことができるため演算処理時間が短縮される。
【００４２】
（実施例２）
図８は素因数分解などで用いる篩の計算を行う場合などに用いられる並列演算処理装置の構成図である。
【００４３】
データベース８１（DATAbase）には、実施例１と同様にデータ領域（data）とタグ領域（Tag）から構成されるパラメータデータ（P_data）が複数個格納されている。データ領域には演算処理で使用するデータが格納されている。タグ領域のタグ値には少なくともデータベース８１に設けられた区画を示す区画情報を有している。
【００４４】
演算処理部８２（＃１〜＃ｎ）にはデータベース８１からパラメータデータを受信し、篩の計算などの演算処理を行い、その演算処理結果に基づいてデータ領域のデータを書き換えるとともに、必要に応じてタグ領域のタグ値も書き換え、分類処理部８３に転送する制御を行う。図８の演算処理部８２（並列演算処理のハードウェア）の数とパラメータデータ数の関係は扱うパラメータデータ数（ｍ）と演算処理部２の数（ｎ）との差が少ないと並列ハード処理の効果は少ないが、扱うパラメータデータ数が膨大になるほど、全演算処理部８２が動作している時間が長くなり、効果的な並列処理ができる。
【００４５】
分類処理部８３では、各演算処理部８２（＃１〜＃ｎ）から演算処理後のパラメータデータを読込み、パラメータデータのタグ領域のタグ値に基づいて分類分けをしてパラメータデータをデータベース８１に書き戻す。図８ではデータベース８１が図３と同様に「FB0」「SB1」〜「SB11」に区画分けされており、分類処理部８３がタグ値に基づいて対応する区画にパラメータデータを振り分ける制御を行う。
【００４６】
図９は複数の演算処理部８２と分類処理部８３の内部回路を示した図である。演算処理部８２はパラメータデータ受信部９１、内部処理部９２から構成されている。パラメータデータ受信部９１はパラメータデータをデータベース８１から受信し内部処理部９２にデータ領域に書込まれたデータを転送する。また、タグ値の転送も行う。
【００４７】
内部処理部９２ではデータに基づいて演算処理を行い、演算処理結果を分類処理部８３に転送する。このとき内部処理部９２で演算処理結果に基づいて必要な場合にタグ値を書き換えて分類処理部８３に転送する。
【００４８】
次に、分類処理部８３はパラメータデータ受信部９３、タグ情報判断部９４、分類処理
部９５、パラメータデータ送信部９６から構成されている。パラメータデータ受信部９３は、初回のデータベース８１が区画分けされていない場合にパラメータデータをデータベース８１からパラメータデータを受信しタグ情報判断部９４にタグ領域に書込まれたタグ値を転送する。また、データ領域のデータも転送してもかまわない。２回目以降はパラメータデータが演算処理部８２から転送されるものを使用する。
【００４９】
タグ情報判断部９４ではタグ値に基づいてどの区画に書込むパラメータデータであるかを判断する。その判断結果に基づいて分類処理部９５はパラメータデータ送信部９６にデータベース８１の区画のどこにパラメータデータを書込むかを決める書込み先情報を転送する。分類処理部９５で指定されたデータベース８１の区画へパラメータデータ送信部９６からパラメータデータがデータベース８１に転送される。
【００５０】
内部処理部９２で生成されたデータとタグ値は、パラメータデータ送信部９６でパラメータデータのフォーマット（図１９参照）に置き換えられデータベース８１に転送される。
【００５１】
書込み先情報は、例えばデータベース８１のメモリアドレスを指定する。
実施例２の動作について図１０を参照して説明する。
ステップＳ１０１ではデータベース８１（DATAbase）からパラメータデータ（P_data）を分類処理部８３で受信する。
【００５２】
ステップＳ１０２では、分類処理部８３でパラメータデータを構成するタグ領域（Tag）のタグ値から何番目の区画かを判断する。その判断結果に基づいてどの区画を対象にしているかを判断しステップＳ１０３〜Ｓ１０５のいずれかに移行する。
【００５３】
ステップＳ１０３〜Ｓ１０５に示した第１の区画〜第ｎの区画では、Ｓ１０２で判断した判断結果に基づいてデータベース８１の対象の区画にパラメータデータを書き戻す。このときパラメータデータは、同じ区画に既に保存されているパラメータデータの末尾に追加格納する。
【００５４】
ステップＳ１０６ではデータベース８１に格納されているパラメータデータの最後であるかを判断する。最後のパラメータデータであればステップ１０７に移行する。最後でない場合には分類処理を行うためにステップＳ１０１に移行する。
【００５５】
ステップ１０７では各演算処理部８２がデータベース８１からパラメータデータを取得する。
ステップＳ１０８では各演算処理部８２（＃１〜＃ｎ）で区画ごとの演算処理を実行する。例えば、篩の計算などの演算処理を行う。
【００５６】
ステップＳ１０９ではタグ領域のタグ値を必要に応じて書き換え分類処理部８３に転送する。つまり、各演算処理部８２（＃１〜＃ｎ）で演算処理した結果が他の区画のデータになる場合にタグ値の書き換えを行う。
【００５７】
ステップＳ１０１０では、分類処理部８３が各演算処理部８２から転送されるパラメータデータのタグ領域（Tag）のタグ値から何番目の区画かを判断する。その判断結果に基づいてどの区画を対象にしているかを判断しステップＳ１０１１〜Ｓ１０１３のいずれかに移行する。
【００５８】
ステップＳ１０１１〜Ｓ１０１３に示した第１の区画〜第ｎの区画では、Ｓ１０２で判断した判断結果に基づいてデータベース８１の対象の区画にパラメータデータを書き戻す
。このときパラメータデータは、同じ区画に既に保存されているパラメータデータの末尾に追加格納する。
【００５９】
ステップＳ１０１４ではデータベース８１の現在の対象区画に格納されているパラメータデータの最後であるかを判断する。区画の最後のパラメータデータであればステップＳ１０１５に移行する。最後でない場合にはさらに同じ区画の次のパラメータデータの演算処理を行うためにステップＳ１０１に移行する。
【００６０】
ステップＳ１０１５ではデータベース８１の全ての区画について演算処理がされたかを判断する。全ての区画で演算処理が行われたことを判断した場合は本フローを終了する。それ以外の場合はステップＳ１０１に移行する。
【００６１】
ここで、初回はデータベース１内の区画分けがされていないため全てのパラメータデータを対象に区画分けがされる。２回目以降は、該当区画のパラメータデータを対象として区画ごとに演算処理を行うことができるため演算処理時間が短縮される。
【００６２】
（実施例３）
実施例３では演算処理結果を一部分のみ対象として該当区画に書き戻す方法について図１１を用いて説明する。
【００６３】
図１１は全体処理対象空間容量が１回での処理対象空間容量より大きくなった場合でかつ、１回での処理対象空間容量がパラメータデータのデータ領域のデータで割り切れない場合の例である。図１１に示す全体処理対象空間は、１回の演算処理により処理できる処理対象空間Ｓ（０）〜Ｓ（ｎ）から構成される。例えば、全体処理対象空間が図３で示した「SB1」（２２０ビット）であり２区画「SB1-0」「SB1-1」を有しているような場合で、図１や図８に示す演算処理部（＃１〜＃ｎ）が１回の演算処理で処理できる処理対象空間（２１９ビット）とした場合である。
【００６４】
上記のように、全体処理対象空間容量＞１回での処理対象空間容量でかつ１回での処理対象空間容量÷パラメータデータのデータ領域のデータ（ｐ）に余りがある場合が実施例３の対象である。
【００６５】
つまり、１回での処理対象空間容量÷データ（ｐ）の余りが０とは、次回の処理対象空間においての処理開始位置（タグ値）が同一であり、該当区画に書き戻すことが必要無い。言い換えれば、それ以外の場合では書き戻すことが必要である。故に、一部分のみが処理の対象である。
【００６６】
また、大な空間（メモリ）を扱う場合においては、タグ値が大きい値を扱う必要がある。例えば、Ｓ（０）空間を処理した後にＳ（１）処理の前準備としてＳ（１）区画においてのオフセット（offset）を計算する処理が必要である。
【００６７】
図１１に示すようにＳ（０）〜Ｓ（ｎ）で示されるような１回での処理対象空間Ｓを拡大して見た場合、入力されたパラメータデータのデータをｐとし、タグ値をrと表現することによりスタートアドレス値が特定でき、そのアドレス（ｒ）のデータ（N_data）を読出し、ｐを対数換算したｌｏｇｐをデータ（N_data）に加算し書き戻す。次に、ｒ＋ｐのアドレスにジャンプし同様のｌｏｇ加算処理を行う。
【００６８】
１回での処理対象空間Ｓの範囲を超えるまで同様な処理を行い、越えたところで終了する。
なお、次区画のｒの処理としてｒ−Ｓの計算を行い該当区画に書き戻す。このような、
演算処理部の処理があった場合に、移動ステップ値がｐであるため、Ｓとの関係から余りが０となることは、ｒの値が変化しないことを意味する。故に、それ以外の場合において書き戻すことが必要であり、一部分のみが処理の対象であること意味する。
【００６９】
図１２は実施例３の構成を示す図である。図１２に示す構成図はデータベース１２１と、複数の演算処理部１２２の内部ブロックを示している。
演算処理部１２２はパラメータデータ受信部１２３、タグ情報判断部１２４、内部メモリ制御部１２５、ｌｏｇ加算計算部１２６、内部メモリ１２７、次アドレス計算部１２８、アドレス判定部１２９、アドレスオフセット計算部１２１０、パラメータデータ送信部１２１１から構成されている。
【００７０】
パラメータデータ受信部１２３はデータベース１２１からパラメータデータを受信しタグ情報判断部１２４に転送する。
タグ情報判断部１２４ではパラメータデータのタグ値に基づいて内部メモリ１２７からデータ（N_data）を読み出すために内部メモリ制御部１２５に読み出しアドレスを転送する。例えば、図３に示した「SB1」であれば「SB1-0」区画か「SB1-1」区画の処理であるかを判断する。
【００７１】
内部メモリ制御部１２５は読み出しアドレスに基づいて内部メモリ１２７からデータ（N_data）を読み出す（read）とともに、ｌｏｇ加算計算部１２６の計算結果から得られるデータを、内部メモリ１２７の同一アドレスに書き込む（write）。
【００７２】
ｌｏｇ加算計算部１２６ではｒ＋ｌｏｇｐを計算して内部メモリ制御部１２５に転送する。
内部メモリ１２７は１回での処理対象空間容量（Ｓ）を有している。例えば、図３で説明した「FB0」である。
【００７３】
次アドレス計算部１２８は、現状アドレス（ｒ）にデータベース１２１から取得したデータ領域のデータｐを加算計算し次アドレスを算出する（ｒ＝ｒ＋ｐ）。
アドレス判定部１２９はｒ＞Ｓであるか判定を行いＳの示すアドレス値より小さければタグ情報判断部１２４にデータを転送し、Ｓ以上であればアドレスオフセット計算部１２１０でオフセット計算を行う。
【００７４】
アドレスオフセット計算部１２１０はｒ＝ｒ−Ｓの計算をし、オフセット値を算出する。
パラメータデータ送信部１２１１は上記ステップにより算出した演算処理部１２２の演算結果をパラメータデータとして送信する。
【００７５】
次に、図１３により実施例３の動作について説明する。
ステップＳ１３１では、データベース１２１よりパラメータデータ（P_data）を受信する。図１２のパラメータデータ受信部１２３によりデータベース１２１から転送されるパラメータデータを取得する。
【００７６】
ステップＳ１３２ではパラメータデータのタグ領域から演算処理部１２２の内部メモリ１２７にアクセスするためのアドレス値（ｒ）を取得する。例えば、図３の「SB1」であれば「SB1-0」か「SB1-1」のどちらの区画を演算処理するかをタグ情報判断部１２４は判定するとともに、タグ値から内部メモリ１２７のアクセスするアドレスを判断する。
【００７７】
ステップＳ１３３では演算処理部１２２の内部メモリ１２７のアドレスからデータ（N_data）を読み出す（Read）。
ステップＳ１３４ではパラメータデータのデータ領域のデータ（ｐ）に基づいて加算値を算出する。ｌｏｇ加算計算部１２６でデータの対数計算（ｌｏｇｐ）をする。
【００７８】
ステップＳ１３５では読出したデータ（N_data）に加算値（ｌｏｇｐ）を加算する（N_data＝N_data＋ｌｏｇｐ）。
ステップＳ１３６では演算処理部１２２の内部メモリ１２７のアドレスへデータ（N_data）を書き込む（write）。内部メモリ制御部１２５により内部メモリ１２７にＳ１３５の結果を書き込む。
【００７９】
ステップＳ１３７では読出したデータ（N_data）に加算値（ｐ）をｒに加算し次のアドレス値（ｒ）を算出（ｒ＝ｒ＋ｐ）する。
ステップＳ１３８では次のアドレス値（ｒ）が内部メモリ１２７の範囲にあるかを判定する。ステップＳ１３９ではアドレスオフセット値を計算する（ｒ＝ｒ−Ｓ）。アドレス判定部１２９ではｒ＞Ｓであるか判定し、Ｓの示すアドレス値より小さければタグ情報判断部１２４にデータを転送し、Ｓ以上であればアドレスオフセット計算部１２１０でオフセット計算を行う。ステップＳ１３１０ではデータベース１２１へパラメータデータを送信する。
【００８０】
上記のように該当区画のパラメータデータを対象として区画ごとに演算処理を行うことができるため演算処理時間が短縮される。
（実施例４）
図１４は対象区画を示すメモリマップである。例えば、ＦＰＧＡ（Field Programmable
Gate Array）などのプログラマブルデバイスのコンフィギュレーション情報を格納するメモリを示している。
【００８１】
図１４では0xXX00 0000番地から0xXX00 4880番地に「FB0」〜「SB11」の区画に先頭アドレス情報を配置している。「SB0」〜「SB11」までの各区画に対して必要な情報として２つの情報がある。１）先頭アドレス情報、２）１）の区画に対する格納したデータの数（有効データ数）である。これらの情報は、内部メモリ（図１２の内部メモリ制御部１２５などに格納し、実体は外部メモリ（データベース１２１）に格納する。
【００８２】
なお、先頭アドレス情報を内部メモリ制御部１２５に格納することで高速動作を実現する。例えば、外部メモリ（ＤＤＲメモリ）を想定した場合、アクセスの際にバーストアクセスを余儀なくされる。そのため、動作効率を向上させるために制御用の回路が必要となるために内部メモリ制御部１２５などに実装する。
【００８３】
（実施例５）
図１５は対象区画選択制御方法を示した図である。
対象区画が大きくなることは、アドレス信号が増加し選択先が増加することを意味する。例えば、図１５のＡのように最大で「SB11」（２３０）である場合、１：２０４８のセレクタ回路１５１（selector）が必要となる。ところが、このようなセレクタ回路の出力（fanout）本数は２０４８本となり膨大な数となる。そのため、ＦＰＧＡなどに実装できなくなる可能性がある。そこで、図１５のＢに示すように、「SB7」（２２６）以上は、２段バッファ（Buffer）による構成でのセレクタ回路を実現する。つまり、セレクタ回路１５２により３２ビット分の分配をし、２段目の３２個のセレクタ回路１５３にさらに分配することにより６４ビット分の分配がされる。
【００８４】
（実施例６）
図１６は誤動作防止を行う場合の方法を示すフロー図である。
上記実施例で説明したデータベース（外部メモリ）から入力されるパラメータデータを
受信し、パラメータデータを分類処理部で分類動作時にノイズ等による何らかの原因により誤ったパラメータデータを取得した場合に、対象区画が無いパラメータデータに対して、そのパラメータデータを破棄または訂正する機能を設ける。
【００８５】
ステップＳ１６１ではデータベース（DATAbase）よりパラメータデータ（P_data）を受信する。
ステップＳ１６２では誤作動防止処理によりエラー検出する。誤動作防止機能は図１７に示すように判定式を用いてエラー検出を行う。例えば、区画を判定する場合、区画「SB1」を判定するには、[31:20] = "000000000000"  ＆  [19] ="1"のような判定式により判定を行う。本判定式はパラメータデータのタグ値のデータの３１ビット〜２０ビット目までの１２ビットが "000000000000"で１９ビット目が"1"であれば区画「SB1」である。同様に図１７に区画「SB2」〜「SB11」までの判定式を表記する。
【００８６】
ステップＳ１６３ではパラメータデータ（P_data）が何番目の区画のデータであるかをタグ領域（ｔａｇ）の値から判断し、区画に対応したステップＳ１６４〜Ｓ１６６へ移行する。
【００８７】
ステップＳ１６４〜Ｓ１６６では各区画の既存のパラメータデータ（P_data）の末尾にパラメータデータ（P_data）を追加する。
上記構成を設けることで、２次的被害を救済するとともに、検出結果を通知することで、装置としての品質を高めることを可能である。
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
【００８８】
（付記１）
演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースから前記パラメータデータを取得し、
前記タグ値のアドレスに基づいて前記パラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理をし、
前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理をすることを特徴とする演算処理方法。
【００８９】
（付記２）
前記演算処理は、演算処理を行うための内部メモリを備え、前記データベースから取得した前記タグ値のアドレスに基づいて前記内部メモリから内部メモリデータを読み出し、前記読み出した前記内部メモリデータに対数換算した前記パラメータデータのデータ領域のデータを加算して前記内部メモリに書き戻し、
前記アドレスに前記データを加算して次の前記内部メモリデータの読み出しアドレスを算出し、
前記内部メモリアのアドレス範囲を超えるときは前記内部メモリアのアドレスから前記メモリのアドレスを減算しオフセット値を算出することを特徴とする請求項１に記載の演算処理方法。
【００９０】
（付記３）
演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースから前記パラメータデータを取得し、
前記データと前記タグ値に基づいて予め決められた演算処理を行い、その演算処理結果
である前記パラメータデータの前記タグ値のアドレスに基づいて前記パラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理することを特徴とする演算処理方法。
【００９１】
（付記４）
演算処理を行う演算処理装置において、
前記演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースと、
前記パラメータデータを前記データベースから取得し、前記タグ値のアドレスに基づいてパラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理部と、
前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行う演算処理部と
を具備することを特徴とする演算処理装置。
【００９２】
（付記５）
演算処理を行う演算処理装置において、
前記演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースと、
前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行い、その演算処理結果を前記分類処理部に転送する前記演算処理部と、
前記パラメータデータを前記演算処理部から取得し、前記タグ値のアドレスに基づいてパラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理部と、
を具備することを特徴とする演算処理装置。
【００９３】
（付記６）
前記演算処理部は、演算処理を行うための内部メモリを備え、前記データベースから取得した前記タグ値のアドレスに基づいて前記内部メモリから内部メモリデータを読み出し、前記読み出した前記内部メモリデータに対数換算した前記パラメータデータのデータ領域のデータを加算して前記内部メモリに書き戻し、
前記アドレスに前記データを加算して次の前記内部メモリデータの読み出しアドレスを算出し、
前記内部メモリアのアドレス範囲を超えるときは前記内部メモリアのアドレスから前記メモリのアドレスを減算しオフセット値を算出することを特徴とする付記４に記載の演算処理装置。
【００９４】
（付記７）
前記分類処理部の前段に予め設定した前記区画ごとに有する特徴を判定式とて記憶し、前記判定式と前記データベースから取得した前記パラメータデータの前記タグ値とを比較して、前記分類処理部の対象とする前記区画であれば前記パラメータデータを前記分類処理部に転送する誤作動防止処理部を備えることを特徴とする付記４または６に記載の演算処理装置。
【００９５】
（付記８）
前記演算処理部の前段に予め設定した前記区画ごとに有する特徴を判定式とて記憶し、前記判定式と前記データベースから取得した前記パラメータデータの前記タグ値とを比較して、前記演算処理部の対象とする前記区画であれば前記パラメータデータを前記演算処理部に転送する誤作動防止処理部を備えることを特徴とする付記５に記載の演算処理装置。
【００９６】
（付記９）
前記分類処理の前に予め設定した前記区画ごとに有する特徴を判定式とて記憶し、前記判定式と前記データベースから取得した前記パラメータデータの前記タグ値とを比較して、前記分類処理の対象とする前記区画であれば前記パラメータデータを前記分類処理に転送する誤作動防止処理を備えることを特徴とする付記１または２に記載の演算処理方法。
【００９７】
（付記１０）
前記演算処理の前に予め設定した前記区画ごとに有する特徴を判定式とて記憶し、前記判定式と前記データベースから取得した前記パラメータデータの前記タグ値とを比較して、前記演算処理の対象とする前記区画であれば前記パラメータデータを前記演算処理に転送する誤作動防止処理を備えることを特徴とする付記３に記載の演算処理装置。
【図面の簡単な説明】
【００９８】
【図１】実施例１の構成を示す図である。
【図２】演算処理部と分類処理部の構成を示す図である。
【図３】区画を示す図である。
【図４】全体処理対象空間容量と１回での処理対象空間容量が同じ場合の原理を示す図である
【図５】全体処理対象空間容量とｎ回での処理対象空間容量が同じ場合の原理を示す図である
【図６】実施例１のフローを示す図である。
【図７】分類処理を示す原理図である。
【図８】実施例２の構成を示す図である。
【図９】演算処理部と分類処理部の構成を示す図である。
【図１０】実施例２のフローを示す図である。
【図１１】実施例３の原理を示す図である。
【図１２】実施例３の構成を示す図である。
【図１３】実施例３のフローを示す図である。
【図１４】実施例４のメモリマップを示す図である。
【図１５】対象区画選択制御方法を示す図である。
【図１６】誤動作防止機能を示すフロー図である。
【図１７】誤動作防止機能の判定式を示す表である。
【図１８】従来の構成を示す図である。
【図１９】パラメータデータのデータ構造を示す図である。
【図２０】従来のフローを示す図である。
【符号の説明】
【００９９】
１      データベース
２      演算処理部
３      分類処理部、
２１      パラメータデータ受信部
２２      内部処理部
２３      パラメータデータ送信部
２４      パラメータデータ受信部
２５      タグ情報判断部
２６      分類処理部
２７      パラメータデータ送信部
８１      データベース
８２      演算処理部
８３      分類処理部
９１      パラメータデータ受信部
９２      内部処理部
９３      パラメータデータ受信部
９４      タグ情報判断部
９５      分類処理部
９６      パラメータデータ送信部
１２１      データベース
１２２      演算処理部
１２３      パラメータデータ受信部
１２４      タグ情報判断部
１２５      内部メモリ制御部
１２６      ｌｏｇ加算計算部
１２７      内部メモリ
１２８      次アドレス計算部
１２９      アドレス判定部
１２１０      アドレスオフセット計算部
１２１１      パラメータデータ送信部
１８１      データベース
１８２      演算処理部
【図１】
2008171250.tif 000003
【図２】
2008171250.tif 000004
【図３】
2008171250.tif 000005
【図４】
2008171250.tif 000006
【図５】
2008171250.tif 000007
【図６】
2008171250.tif 000008
【図７】
2008171250.tif 000009
【図８】
2008171250.tif 000010
【図９】
2008171250.tif 000011
【図１０】
2008171250.tif 000012
【図１１】
2008171250.tif 000013
【図１２】
2008171250.tif 000014
【図１３】
2008171250.tif 000015
【図１５】
2008171250.tif 000016
【図１６】
2008171250.tif 000017
【図１７】
2008171250.tif 000018
【図１８】
2008171250.tif 000019
【図１９】
2008171250.tif 000020
【図２０】
2008171250.tif 000021
【図１４】
2008171250.tif 000022