JP4773980B2 - 演算処理装置、及び演算処理方法 - Google Patents

演算処理装置、及び演算処理方法 Download PDF

Info

Publication number
JP4773980B2
JP4773980B2 JP2007004602A JP2007004602A JP4773980B2 JP 4773980 B2 JP4773980 B2 JP 4773980B2 JP 2007004602 A JP2007004602 A JP 2007004602A JP 2007004602 A JP2007004602 A JP 2007004602A JP 4773980 B2 JP4773980 B2 JP 4773980B2
Authority
JP
Japan
Prior art keywords
data
parameter data
arithmetic processing
database
processing unit
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
JP2007004602A
Other languages
English (en)
Other versions
JP2008171250A (ja
Inventor
武司 下山
聡 西村
清光 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007004602A priority Critical patent/JP4773980B2/ja
Publication of JP2008171250A publication Critical patent/JP2008171250A/ja
Application granted granted Critical
Publication of JP4773980B2 publication Critical patent/JP4773980B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、メモリを介在したハードウェアによる並列演算処理に係り、特に入力されるパラメータデータに基づいて演算処理を実行する算術演算処理の技術に関する。
近年、ソフトウェアで処理していた複雑な処理をハードウェアで実現するようになり、さらなる高速化処理が求められ、ハードウェアの利点である並列演算処理の実装が要求されている。例えば、画像処理、信号処理、高速通信処理、暗号処理など様々な技術分野において並列演算処理をハードウェアにより行うことが進められている。
図18は従来の並列演算処理装置の構成図であり、例えば、素因数分解などで使用する篩の計算を行う場合用いられる。
データベース181(DATAbase)には、図19に示すようにデータ領域(data)とタグ領域(Tag)から構成されるパラメータデータ(P_data)が複数個格納されている。演算処理部182(#0〜#n)にはデータベース181からパラメータデータを受信し、篩の計算などの演算処理を行い、また、その演算処理結果をデータベース181に戻す制御も行う。
図20に図18に示すデータベース181と演算処理部182の処理フローを示し説明をする。
ステップS201では、図1に示す演算処理部182がデータベース181よりパラメータデータ(P_data)を受信する。例えば、演算部処理182(#1)がデータベース181から1組目のパラメータデータ0(P_data_0)をリード(read)する。
ステップS202では、演算処理部182が扱う対象のパラメータデータであるかを判定する。例えば、入力されたパラメータデータのタグ領域のタグ値(tag)から、演算処理部182(#1)で処理する対象であると判定した場合、演算処理部182(#1)により演算処理を実行するためステップS203に移行する。処理対処外であれば演算処理を行わないでステップS204に移行する。
ステップS203では対象の演算処理部182で演算処理を実行する。例えば、演算処理部182(#1)で演算処理を完了した後、演算処理部182(#1)は、必要に応じてタグ値を書き換え、データベース181に書き込み(write)をする。
ステップS204では、各演算処理部182がデータベース181に格納されているパラメータデータの最後であるかを判定する。完了していない場合はS201〜S203の処理を繰り返す。図18の構成において、パラメータデータはm個(P_data_0〜P_data_m)あるのでm回繰り返す。完了していればステップS205に移行する。
次に、ステップS205では、演算処理部182(#1〜#n)全てが演算を完了したかを判定する。例えば、演算処理部182(#1)が演算処理を完了すれば、演算処理部182(#2)がS201に移行し同様の処理を行い、演算処理部182(#n)までの全ての演算処理を行い、全ての演算処理が完了すれば本フローを終了する。
ところが、上記ステップに示すように処理を行うと、各演算処理部182(#1〜#n)がデータベース181のパラメータデータを一度読み込み、実際に演算処理で対象とするデータであるかを判定しなければならない。例えば、演算処理部182(#1)で演算
処理を行う場合に本来演算処理部182(#1)が扱うパラメータデータ以外のパラメータデータも読み込み、対象のパラメータデータであるかを判断する必要がある。つまり、ステップS202からステップS204へ移行する判断が増加することにより演算処理時間が長くなるという問題がある。
特許文献1によれば、所要時間と所要メモリ空間の制限が無い場合、一対の回路の等価性を検証し得る完全検証技術、及び、一対の回路の一部だけの等価性を検証し得る補助検証技術を利用し、回路データ構造により表現された組合せ回路を検証するコンピュータ支援回路検証システムにおいて、回路データ構造の検証結果を決定するか、又は、回路データ構造を変更するため、組合せ回路に対し、組合せ回路に類似したベンチマーク回路のサンプル集合についての所要時間及び所要メモリ空間に基づいて予め決定された順番に複数の完全検証技術及び複数の補助検証技術を実行する手順と、検証結果又は変更された回路データ構造を、次に実行されるべき完全検証技術または補助検証技術へ供給する手順と、最終的な検証結果が決定されるか、または、最終的に変更された回路データ構造が決定されるまで、実行する手順及び供給する手順を繰り返す手順と、を有するコンピュータ支援回路検証方法が提案されている。つまり、一方の検証方式から他方の検証方式に切り替える際のオーバーヘッドを最低限に抑えると共に、先に適用された検証方式の結果を共有しながら種々のコア検証方式を自動的に利用し、かつ、一つ以上の検証方式が成功したときに検証結果が得られる方法が提案されている。
しかしながら、特許文献1では各演算部において全てのパラメータデータを扱わない場合に、扱わないパラメータデータに対して、パラメータデータを演算処理の対象から除外する演算処理が大半を占めるようになり処理効率が低下するという問題がある。
特開平11−73448号公報
本発明は上記のような実情に鑑みてなされたものであり、演算処理部の内部処理を動作させる前に入力するパラメータデータを分類することで、効率よく演算処理(演算の対象のみのパラメータデータを入力する)ができるようにする演算処理装置とその方法を提供することを目的とする。
本発明ひとつである演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースから前記パラメータデータを取得し、前記タグ値のアドレスに基づいて前記パラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理をし、前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算をすることを特徴とする。
好ましくは、前記演算処理は、演算処理を行うための内部メモリを備え、前記データベースから取得した前記タグ値のアドレスに基づいて前記内部メモリから内部メモリデータを読み出し、前記読み出した前記内部メモリデータに対数換算した前記パラメータデータのデータ領域のデータを加算して前記内部メモリに書き戻し、前記アドレスに前記データを加算して次の前記内部メモリデータの読み出しアドレスを算出し、前記内部メモリのアドレス範囲を超えるときは前記内部メモリアのアドレスから前記メモリのアドレスを減算しオフセット値を算出してもよい。
本発明ひとつである演算処理を実行するためのデータを格納するデータ領域と、前記演
算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行い、その演算処理結果である前記パラメータデータの前記タグ値のアドレスに基づいて前記パラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理する。
本発明の態様のひとつである演算処理を行う演算処理装置において、前記演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースと、前記パラメータデータを前記データベースから取得し、前記タグ値のアドレスに基づいてパラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理部と、前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行う演算処理部と、を具備する構成である。
本発明の態様のひとつである演算処理を行う演算処理装置において、前記演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースと、前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行い、その演算処理結果を前記分類処理部に転送する前記演算処理部と、前記パラメータデータを前記演算処理部から取得し、前記タグ値のアドレスに基づいてパラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理部と、を具備する構成である。
上記構成と方法により、余剰な機能が無くなり処理時間を短縮することができる。
本発明によれば、分類処理を行い入力するパラメータデータを分類することで、演算処理部が受信したパラメータデータが全て内部処理の対象になり、余剰な機能が無くなり処理時間を短縮することができる。
以下図面に基づいて、本発明の実施形態について詳細を説明する。
(実施例1)
図1は素因数分解などで用いる篩の計算を行う場合などに用いられる並列演算処理装置の構成図である。ここで、図1は並列演算処理装置を示しているが並列演算処理に限定されるものではなく逐次演算処理を行ってもよい。
データベース1(DATAbase)には、図1に示すようにデータ領域(data)とタグ領域(Tag)から構成されるパラメータデータ(P_data)が複数個格納されている。データ領域には演算処理で使用するデータが格納されている。タグ領域のタグ値には少なくともデータベース1に設けられた区画を示す区画情報を有している。
演算処理部2(#1〜#n)にはデータベース1からパラメータデータを受信し、篩の計算などの演算処理を行い、その演算処理結果に基づいてデータ領域のデータを書き換えるとともに、必要に応じてタグ領域のタグ値も書き換え、データベース1に書き戻す制御も行う。図1の演算処理部2(並列演算処理をするハードウェア)の数とパラメータデータ数の関係は扱うパラメータデータ数(m)と演算処理部2の数(n)との差が少ないと
並列ハード処理の効果は少ないが、扱うパラメータデータ数が膨大になるほど、全演算処理部2が動作している時間が長くなり、効果的な並列処理ができる。
分類処理部3では、データベース1からパラメータデータを読込み、パラメータデータのタグ領域のタグ値に基づいて分類分けをしてパラメータデータをデータベース1に書き戻す。図1ではデータベース1が複数の区画に区分けされており、分類処理部3がタグ値に基づいて対応する区画にパラメータデータを振り分ける制御を行う。
図2は複数の演算処理部2と分類処理部3の内部回路を示した図である。演算処理部2はパラメータデータ受信部21、内部処理部22、パラメータデータ送信部23から構成されている。パラメータデータ受信部21はパラメータデータを受信し内部処理部22にデータ領域に書込まれたデータを転送する。また、タグ値の転送も行う。
内部処理部22ではデータに基づいて演算処理を行い、演算処理結果をパラメータデータ送信部23に転送する。このとき内部処理部22で演算処理結果に基づいて必要な場合にタグ値を書き換える。
内部処理部22で生成されたデータとタグ値は、パラメータデータ送信部23によりパラメータデータのフォーマット(図19参照)に置き換えられデータベース1に転送される。
次に、分類処理部3はパラメータデータ受信部24、タグ情報判断部25、分類処理部26、パラメータデータ送信部27から構成されている。パラメータデータ受信部24はパラメータデータを受信しタグ情報判断部25にタグ領域に書込まれたタグ値を転送する。また、データ領域のデータも転送してもかまわない。
タグ情報判断部25ではタグ値に基づいてどの区画に書込むパラメータデータであるかを判断する。その判断結果に基づいて分類処理部26はパラメータデータ送信部27にデータベース1の区画のどこにパラメータデータを書込むかを決める書込み先情報を転送する。分類処理部26では指定されたデータベース1の区画へパラメータデータ送信部27によりパラメータデータが転送される。ここで、書込み先情報は、例えばデータベース1のメモリアドレスを指定する。
次に、分類処理部3の動作について具体例に沿って図3を用い説明をする。図3は分類処理部3が行う区画振り分けを示した図である。
「区画名」は図1に示すデータベース1の区画を示している。本例では「FB0」〜「SB11」までの区画にデータベース1のメモリ領域が区画分けされている。そして、本例の「FB0」は全演算処理部2(例えば図1の#1〜#n)が1回で処理できる処理対象空間容量(S)を219(512kビット)とした場合である。つまり、図1に示した演算処理部2(#1〜#n)が1回の演算処理で処理できるパラメータデータのデータ量であることを示している。また、本例ではパラメータデータのタグ値のアドレス値(r値)の最大値を230(1Gビット)としている。
演算処理部2が1回で処理できるr値が219であるので、220ビット以上のデータに対しては、分類処理部3の区画分け処理が必要となる。
右側の1回目〜2048回目は、演算処理部2の演算処理回数と対象区画を表記したものである。「FB0」区画の範囲のパラメータデータ量を扱う場合は区画数が1区画であり、毎回この区画を演算処理対象とする。「SB1」区画には219の区画が2つあり、2回に一回の割合で「SB0-0」「SB0-1」で示された対象の区画の演算処理が行われる。「SB2」区画には「SB1-0」「SB1-1」「SB1-2」「SB1-3」で示される219の区画が4区画あり
、4回に1回対象の区画の演算処理が行われる。同様に「SB11」区画は、2048回に1回対象の区画の演算処理が行われることになる。
図4に示す図は、データベース1の区画にあるパラメータデータ数(全体処理対象空間容量)が、演算処理部2(#1〜#n)の1回の演算処理により処理できる処理対象空間容量の大きさと同等かそれ以下の場合の例である(全体処理対象空間≦1回での処理対象空間)。この場合、1回で演算処理が完結するために書き戻すことを必要としない。図3の「FB0-0」で示した演算処理と同じである。
図5は全体処理対象空間容量が1回での処理対象空間容量の大きさに対して大きくなった場合である(全体処理対象空間>1回での処理対象空間)。図3の「SB1」〜「SB11」区画に示した場合である。このような場合には、一度に演算処理ができないため、処理対象空間を分割して演算処理することを余儀なくされる。この処理対象空間の分割の受け渡し処理として後述する書き戻す処理が必要となる。図5において大きな全体処理対象空間と、その中の各S(0)、S(1)が図3に示す「SB0-0」「SB0-1」区画に対応し1回の演算処理の対象を示す。
ここで、広大な空間を扱う場合においては、タグ値として大きい値を扱う必要がある。S(0)区画の演算処理後にS(1)区画の演算処理の前準備としてS(0)区画においてのオフセット値(offset)を計算する処理が必要であり、この計算結果が書き戻し処理である。
実施例1の動作について図6を参照して説明する。
ステップS61ではデータベース1(DATAbase)からパラメータデータ(P_data)を分類処理部3で受信する。
ステップS62では、分類処理部3でパラメータデータを構成するタグ領域(Tag)のタグ値から何番目の区画かを判断する。その判断結果に基づいてどの区画を対象にしているかを判断しステップS63〜S65のいずれかに移行する。
ステップS63〜S65に示した第1の区画〜第nの区画では、S62で判断した判断結果に基づいてデータベース1の対象の区画にパラメータデータを書き戻す。このときパラメータデータは、同じ区画に既に保存されているパラメータデータの末尾に追加格納する。
図7は演算処理部2が演算処理後にパラメータデータをどのように格納するかを示している。図7に一例として図3上の区画「SB2」を使用した区画数2の場合について説明する。「a」「b」〜「n」はパラメータデータで処理時系列順に格納されている。演算処理部2は「a」から順番に演算処理を行う。「a」のデータ領域には「data_0」というデータとタグ領域には「SB2-1」という区画が格納されている。「b」には「data_1」と「SB2-3」、「c」には「data_2」と「SB2-1」が格納され、全てのパラメータデータに区画が割り付けられている。図3で説明した「SB2」区画と同じである。タグ値の区画に基づいてデータベース1の各区画「SB2-0」「SB2-1」「SB2-2」「SB2-3」にパラメータデータを割り振る。「SB2-0」区画には既に累積されたパラメータデータがないため「a」が区画の先頭に格納される。ついで、「b」が「SB2-3」区画の累積されたパラメータデータの末尾に追加される。このように「c」「d」「e」〜「n」までの全てのパラメータデータをデータベース1の対象区画に格納する。
ステップS66では各演算処理部2(#1〜#n)で区画ごとの演算処理を実行する。例えば、篩の計算などの演算処理を行う。
ステップS67ではタグ領域の値を必要に応じて書き換えてデータベース1に戻す。つまり、各演算処理部2(#1〜#n)で演算処理した結果が他の区画のデータになる場合にタグ値の書き換えを行う。
ステップS68ではデータベース1の現在の対象区画に格納されているパラメータデータの最後であるかを判断する。区画の最後のパラメータデータであればステップS69に移行する。最後でない場合にはさらに同じ区画の次のパラメータデータの演算処理を行うためにステップS61に移行する。
ステップS69ではデータベース1の全ての区画について演算処理がされたかを判断する。全ての区画で演算処理が行われたことを判断した場合は本フローを終了する。それ以外の場合はステップS61に移行する。
ここで、初回はデータベース1内の区画分けがされていないため全てのパラメータデータを対象に区画分けがされる。2回目以降は、該当区画のパラメータデータを対象として区画ごとに演算処理を行うことができるため演算処理時間が短縮される。
(実施例2)
図8は素因数分解などで用いる篩の計算を行う場合などに用いられる並列演算処理装置の構成図である。
データベース81(DATAbase)には、実施例1と同様にデータ領域(data)とタグ領域(Tag)から構成されるパラメータデータ(P_data)が複数個格納されている。データ領域には演算処理で使用するデータが格納されている。タグ領域のタグ値には少なくともデータベース81に設けられた区画を示す区画情報を有している。
演算処理部82(#1〜#n)にはデータベース81からパラメータデータを受信し、篩の計算などの演算処理を行い、その演算処理結果に基づいてデータ領域のデータを書き換えるとともに、必要に応じてタグ領域のタグ値も書き換え、分類処理部83に転送する制御を行う。図8の演算処理部82(並列演算処理のハードウェア)の数とパラメータデータ数の関係は扱うパラメータデータ数(m)と演算処理部2の数(n)との差が少ないと並列ハード処理の効果は少ないが、扱うパラメータデータ数が膨大になるほど、全演算処理部82が動作している時間が長くなり、効果的な並列処理ができる。
分類処理部83では、各演算処理部82(#1〜#n)から演算処理後のパラメータデータを読込み、パラメータデータのタグ領域のタグ値に基づいて分類分けをしてパラメータデータをデータベース81に書き戻す。図8ではデータベース81が図3と同様に「FB0」「SB1」〜「SB11」に区画分けされており、分類処理部83がタグ値に基づいて対応する区画にパラメータデータを振り分ける制御を行う。
図9は複数の演算処理部82と分類処理部83の内部回路を示した図である。演算処理部82はパラメータデータ受信部91、内部処理部92から構成されている。パラメータデータ受信部91はパラメータデータをデータベース81から受信し内部処理部92にデータ領域に書込まれたデータを転送する。また、タグ値の転送も行う。
内部処理部92ではデータに基づいて演算処理を行い、演算処理結果を分類処理部83に転送する。このとき内部処理部92で演算処理結果に基づいて必要な場合にタグ値を書き換えて分類処理部83に転送する。
次に、分類処理部83はパラメータデータ受信部93、タグ情報判断部94、分類処理
部95、パラメータデータ送信部96から構成されている。パラメータデータ受信部93は、初回のデータベース81が区画分けされていない場合にパラメータデータをデータベース81からパラメータデータを受信しタグ情報判断部94にタグ領域に書込まれたタグ値を転送する。また、データ領域のデータも転送してもかまわない。2回目以降はパラメータデータが演算処理部82から転送されるものを使用する。
タグ情報判断部94ではタグ値に基づいてどの区画に書込むパラメータデータであるかを判断する。その判断結果に基づいて分類処理部95はパラメータデータ送信部96にデータベース81の区画のどこにパラメータデータを書込むかを決める書込み先情報を転送する。分類処理部95で指定されたデータベース81の区画へパラメータデータ送信部96からパラメータデータがデータベース81に転送される。
内部処理部92で生成されたデータとタグ値は、パラメータデータ送信部96でパラメータデータのフォーマット(図19参照)に置き換えられデータベース81に転送される。
書込み先情報は、例えばデータベース81のメモリアドレスを指定する。
実施例2の動作について図10を参照して説明する。
ステップS101ではデータベース81(DATAbase)からパラメータデータ(P_data)を分類処理部83で受信する。
ステップS102では、分類処理部83でパラメータデータを構成するタグ領域(Tag)のタグ値から何番目の区画かを判断する。その判断結果に基づいてどの区画を対象にしているかを判断しステップS103〜S105のいずれかに移行する。
ステップS103〜S105に示した第1の区画〜第nの区画では、S102で判断した判断結果に基づいてデータベース81の対象の区画にパラメータデータを書き戻す。このときパラメータデータは、同じ区画に既に保存されているパラメータデータの末尾に追加格納する。
ステップS106ではデータベース81に格納されているパラメータデータの最後であるかを判断する。最後のパラメータデータであればステップ107に移行する。最後でない場合には分類処理を行うためにステップS101に移行する。
ステップ107では各演算処理部82がデータベース81からパラメータデータを取得する。
ステップS108では各演算処理部82(#1〜#n)で区画ごとの演算処理を実行する。例えば、篩の計算などの演算処理を行う。
ステップS109ではタグ領域のタグ値を必要に応じて書き換え分類処理部83に転送する。つまり、各演算処理部82(#1〜#n)で演算処理した結果が他の区画のデータになる場合にタグ値の書き換えを行う。
ステップS1010では、分類処理部83が各演算処理部82から転送されるパラメータデータのタグ領域(Tag)のタグ値から何番目の区画かを判断する。その判断結果に基づいてどの区画を対象にしているかを判断しステップS1011〜S1013のいずれかに移行する。
ステップS1011〜S1013に示した第1の区画〜第nの区画では、S102で判断した判断結果に基づいてデータベース81の対象の区画にパラメータデータを書き戻す
。このときパラメータデータは、同じ区画に既に保存されているパラメータデータの末尾に追加格納する。
ステップS1014ではデータベース81の現在の対象区画に格納されているパラメータデータの最後であるかを判断する。区画の最後のパラメータデータであればステップS1015に移行する。最後でない場合にはさらに同じ区画の次のパラメータデータの演算処理を行うためにステップS101に移行する。
ステップS1015ではデータベース81の全ての区画について演算処理がされたかを判断する。全ての区画で演算処理が行われたことを判断した場合は本フローを終了する。それ以外の場合はステップS101に移行する。
ここで、初回はデータベース1内の区画分けがされていないため全てのパラメータデータを対象に区画分けがされる。2回目以降は、該当区画のパラメータデータを対象として区画ごとに演算処理を行うことができるため演算処理時間が短縮される。
(実施例3)
実施例3では演算処理結果を一部分のみ対象として該当区画に書き戻す方法について図11を用いて説明する。
図11は全体処理対象空間容量が1回での処理対象空間容量より大きくなった場合でかつ、1回での処理対象空間容量がパラメータデータのデータ領域のデータで割り切れない場合の例である。図11に示す全体処理対象空間は、1回の演算処理により処理できる処理対象空間S(0)〜S(n)から構成される。例えば、全体処理対象空間が図3で示した「SB1」(220ビット)であり2区画「SB1-0」「SB1-1」を有しているような場合で、図1や図8に示す演算処理部(#1〜#n)が1回の演算処理で処理できる処理対象空間(219ビット)とした場合である。
上記のように、全体処理対象空間容量>1回での処理対象空間容量でかつ1回での処理対象空間容量÷パラメータデータのデータ領域のデータ(p)に余りがある場合が実施例3の対象である。
つまり、1回での処理対象空間容量÷データ(p)の余りが0とは、次回の処理対象空間においての処理開始位置(タグ値)が同一であり、該当区画に書き戻すことが必要無い。言い換えれば、それ以外の場合では書き戻すことが必要である。故に、一部分のみが処理の対象である。
また、大な空間(メモリ)を扱う場合においては、タグ値が大きい値を扱う必要がある。例えば、S(0)空間を処理した後にS(1)処理の前準備としてS(1)区画においてのオフセット(offset)を計算する処理が必要である。
図11に示すようにS(0)〜S(n)で示されるような1回での処理対象空間Sを拡大して見た場合、入力されたパラメータデータのデータをpとし、タグ値をrと表現することによりスタートアドレス値が特定でき、そのアドレス(r)のデータ(N_data)を読出し、pを対数換算したlogpをデータ(N_data)に加算し書き戻す。次に、r+pのアドレスにジャンプし同様のlog加算処理を行う。
1回での処理対象空間Sの範囲を超えるまで同様な処理を行い、越えたところで終了する。
なお、次区画のrの処理としてr−Sの計算を行い該当区画に書き戻す。このような、
演算処理部の処理があった場合に、移動ステップ値がpであるため、Sとの関係から余りが0となることは、rの値が変化しないことを意味する。故に、それ以外の場合において書き戻すことが必要であり、一部分のみが処理の対象であること意味する。
図12は実施例3の構成を示す図である。図12に示す構成図はデータベース121と、複数の演算処理部122の内部ブロックを示している。
演算処理部122はパラメータデータ受信部123、タグ情報判断部124、内部メモリ制御部125、log加算計算部126、内部メモリ127、次アドレス計算部128、アドレス判定部129、アドレスオフセット計算部1210、パラメータデータ送信部1211から構成されている。
パラメータデータ受信部123はデータベース121からパラメータデータを受信しタグ情報判断部124に転送する。
タグ情報判断部124ではパラメータデータのタグ値に基づいて内部メモリ127からデータ(N_data)を読み出すために内部メモリ制御部125に読み出しアドレスを転送する。例えば、図3に示した「SB1」であれば「SB1-0」区画か「SB1-1」区画の処理であるかを判断する。
内部メモリ制御部125は読み出しアドレスに基づいて内部メモリ127からデータ(N_data)を読み出す(read)とともに、log加算計算部126の計算結果から得られるデータを、内部メモリ127の同一アドレスに書き込む(write)。
log加算計算部126ではr+logpを計算して内部メモリ制御部125に転送する。
内部メモリ127は1回での処理対象空間容量(S)を有している。例えば、図3で説明した「FB0」である。
次アドレス計算部128は、現状アドレス(r)にデータベース121から取得したデータ領域のデータpを加算計算し次アドレスを算出する(r=r+p)。
アドレス判定部129はr>Sであるか判定を行いSの示すアドレス値より小さければタグ情報判断部124にデータを転送し、S以上であればアドレスオフセット計算部1210でオフセット計算を行う。
アドレスオフセット計算部1210はr=r−Sの計算をし、オフセット値を算出する。
パラメータデータ送信部1211は上記ステップにより算出した演算処理部122の演算結果をパラメータデータとして送信する。
次に、図13により実施例3の動作について説明する。
ステップS131では、データベース121よりパラメータデータ(P_data)を受信する。図12のパラメータデータ受信部123によりデータベース121から転送されるパラメータデータを取得する。
ステップS132ではパラメータデータのタグ領域から演算処理部122の内部メモリ127にアクセスするためのアドレス値(r)を取得する。例えば、図3の「SB1」であれば「SB1-0」か「SB1-1」のどちらの区画を演算処理するかをタグ情報判断部124は判定するとともに、タグ値から内部メモリ127のアクセスするアドレスを判断する。
ステップS133では演算処理部122の内部メモリ127のアドレスからデータ(N_data)を読み出す(Read)。
ステップS134ではパラメータデータのデータ領域のデータ(p)に基づいて加算値を算出する。log加算計算部126でデータの対数計算(logp)をする。
ステップS135では読出したデータ(N_data)に加算値(logp)を加算する(N_data=N_data+logp)。
ステップS136では演算処理部122の内部メモリ127のアドレスへデータ(N_data)を書き込む(write)。内部メモリ制御部125により内部メモリ127にS135の結果を書き込む。
ステップS137では読出したデータ(N_data)に加算値(p)をrに加算し次のアドレス値(r)を算出(r=r+p)する。
ステップS138では次のアドレス値(r)が内部メモリ127の範囲にあるかを判定する。ステップS139ではアドレスオフセット値を計算する(r=r−S)。アドレス判定部129ではr>Sであるか判定し、Sの示すアドレス値より小さければタグ情報判断部124にデータを転送し、S以上であればアドレスオフセット計算部1210でオフセット計算を行う。ステップS1310ではデータベース121へパラメータデータを送信する。
上記のように該当区画のパラメータデータを対象として区画ごとに演算処理を行うことができるため演算処理時間が短縮される。
(実施例4)
図14は対象区画を示すメモリマップである。例えば、FPGA(Field Programmable
Gate Array)などのプログラマブルデバイスのコンフィギュレーション情報を格納するメモリを示している。
図14では0xXX00 0000番地から0xXX00 4880番地に「FB0」〜「SB11」の区画に先頭アドレス情報を配置している。「SB0」〜「SB11」までの各区画に対して必要な情報として2つの情報がある。1)先頭アドレス情報、2)1)の区画に対する格納したデータの数(有効データ数)である。これらの情報は、内部メモリ(図12の内部メモリ制御部125などに格納し、実体は外部メモリ(データベース121)に格納する。
なお、先頭アドレス情報を内部メモリ制御部125に格納することで高速動作を実現する。例えば、外部メモリ(DDRメモリ)を想定した場合、アクセスの際にバーストアクセスを余儀なくされる。そのため、動作効率を向上させるために制御用の回路が必要となるために内部メモリ制御部125などに実装する。
(実施例5)
図15は対象区画選択制御方法を示した図である。
対象区画が大きくなることは、アドレス信号が増加し選択先が増加することを意味する。例えば、図15のAのように最大で「SB11」(230)である場合、1:2048のセレクタ回路151(selector)が必要となる。ところが、このようなセレクタ回路の出力(fanout)本数は2048本となり膨大な数となる。そのため、FPGAなどに実装できなくなる可能性がある。そこで、図15のBに示すように、「SB7」(226)以上は、2段バッファ(Buffer)による構成でのセレクタ回路を実現する。つまり、セレクタ回路152により32ビット分の分配をし、2段目の32個のセレクタ回路153にさらに分配することにより64ビット分の分配がされる。
(実施例6)
図16は誤動作防止を行う場合の方法を示すフロー図である。
上記実施例で説明したデータベース(外部メモリ)から入力されるパラメータデータを
受信し、パラメータデータを分類処理部で分類動作時にノイズ等による何らかの原因により誤ったパラメータデータを取得した場合に、対象区画が無いパラメータデータに対して、そのパラメータデータを破棄または訂正する機能を設ける。
ステップS161ではデータベース(DATAbase)よりパラメータデータ(P_data)を受信する。
ステップS162では誤作動防止処理によりエラー検出する。誤動作防止機能は図17に示すように判定式を用いてエラー検出を行う。例えば、区画を判定する場合、区画「SB1」を判定するには、[31:20] = "000000000000" & [19] ="1"のような判定式により判定を行う。本判定式はパラメータデータのタグ値のデータの31ビット〜20ビット目までの12ビットが "000000000000"で19ビット目が"1"であれば区画「SB1」である。同様に図17に区画「SB2」〜「SB11」までの判定式を表記する。
ステップS163ではパラメータデータ(P_data)が何番目の区画のデータであるかをタグ領域(tag)の値から判断し、区画に対応したステップS164〜S166へ移行する。
ステップS164〜S166では各区画の既存のパラメータデータ(P_data)の末尾にパラメータデータ(P_data)を追加する。
上記構成を設けることで、2次的被害を救済するとともに、検出結果を通知することで、装置としての品質を高めることを可能である。
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
(付記1)
演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースから前記パラメータデータを取得し、
前記タグ値のアドレスに基づいて前記パラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理をし、
前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理をすることを特徴とする演算処理方法。
(付記2)
前記演算処理は、演算処理を行うための内部メモリを備え、前記データベースから取得した前記タグ値のアドレスに基づいて前記内部メモリから内部メモリデータを読み出し、前記読み出した前記内部メモリデータに対数換算した前記パラメータデータのデータ領域のデータを加算して前記内部メモリに書き戻し、
前記アドレスに前記データを加算して次の前記内部メモリデータの読み出しアドレスを算出し、
前記内部メモリアのアドレス範囲を超えるときは前記内部メモリアのアドレスから前記メモリのアドレスを減算しオフセット値を算出することを特徴とする請求項1に記載の演算処理方法。
(付記3)
演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースから前記パラメータデータを取得し、
前記データと前記タグ値に基づいて予め決められた演算処理を行い、その演算処理結果
である前記パラメータデータの前記タグ値のアドレスに基づいて前記パラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理することを特徴とする演算処理方法。
(付記4)
演算処理を行う演算処理装置において、
前記演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースと、
前記パラメータデータを前記データベースから取得し、前記タグ値のアドレスに基づいてパラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理部と、
前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行う演算処理部と
を具備することを特徴とする演算処理装置。
(付記5)
演算処理を行う演算処理装置において、
前記演算処理を実行するためのデータを格納するデータ領域と、前記演算処理に必要なアドレスを有するタグ値を格納するタグ領域から構成されるパラメータデータを格納するメモリであるデータベースと、
前記データベースから前記パラメータデータを取得し、前記データと前記タグ値に基づいて予め決められた演算処理を行い、その演算処理結果を前記分類処理部に転送する前記演算処理部と、
前記パラメータデータを前記演算処理部から取得し、前記タグ値のアドレスに基づいてパラメータデータを分類し、前記分類により区分けされた区画ごとに前記パラメータデータを振り分けて前記データベースの対象の前記区画の末尾に追加して格納する分類処理部と、
を具備することを特徴とする演算処理装置。
(付記6)
前記演算処理部は、演算処理を行うための内部メモリを備え、前記データベースから取得した前記タグ値のアドレスに基づいて前記内部メモリから内部メモリデータを読み出し、前記読み出した前記内部メモリデータに対数換算した前記パラメータデータのデータ領域のデータを加算して前記内部メモリに書き戻し、
前記アドレスに前記データを加算して次の前記内部メモリデータの読み出しアドレスを算出し、
前記内部メモリアのアドレス範囲を超えるときは前記内部メモリアのアドレスから前記メモリのアドレスを減算しオフセット値を算出することを特徴とする付記4に記載の演算処理装置。
(付記7)
前記分類処理部の前段に予め設定した前記区画ごとに有する特徴を判定式とて記憶し、前記判定式と前記データベースから取得した前記パラメータデータの前記タグ値とを比較して、前記分類処理部の対象とする前記区画であれば前記パラメータデータを前記分類処理部に転送する誤作動防止処理部を備えることを特徴とする付記4または6に記載の演算処理装置。
(付記8)
前記演算処理部の前段に予め設定した前記区画ごとに有する特徴を判定式とて記憶し、前記判定式と前記データベースから取得した前記パラメータデータの前記タグ値とを比較して、前記演算処理部の対象とする前記区画であれば前記パラメータデータを前記演算処理部に転送する誤作動防止処理部を備えることを特徴とする付記5に記載の演算処理装置。
(付記9)
前記分類処理の前に予め設定した前記区画ごとに有する特徴を判定式とて記憶し、前記判定式と前記データベースから取得した前記パラメータデータの前記タグ値とを比較して、前記分類処理の対象とする前記区画であれば前記パラメータデータを前記分類処理に転送する誤作動防止処理を備えることを特徴とする付記1または2に記載の演算処理方法。
(付記10)
前記演算処理の前に予め設定した前記区画ごとに有する特徴を判定式とて記憶し、前記判定式と前記データベースから取得した前記パラメータデータの前記タグ値とを比較して、前記演算処理の対象とする前記区画であれば前記パラメータデータを前記演算処理に転送する誤作動防止処理を備えることを特徴とする付記3に記載の演算処理装置。
実施例1の構成を示す図である。 演算処理部と分類処理部の構成を示す図である。 区画を示す図である。 全体処理対象空間容量と1回での処理対象空間容量が同じ場合の原理を示す図である 全体処理対象空間容量とn回での処理対象空間容量が同じ場合の原理を示す図である 実施例1のフローを示す図である。 分類処理を示す原理図である。 実施例2の構成を示す図である。 演算処理部と分類処理部の構成を示す図である。 実施例2のフローを示す図である。 実施例3の原理を示す図である。 実施例3の構成を示す図である。 実施例3のフローを示す図である。 実施例4のメモリマップを示す図である。 対象区画選択制御方法を示す図である。 誤動作防止機能を示すフロー図である。 誤動作防止機能の判定式を示す表である。 従来の構成を示す図である。 パラメータデータのデータ構造を示す図である。 従来のフローを示す図である。
符号の説明
1 データベース
2 演算処理部
3 分類処理部、
21 パラメータデータ受信部
22 内部処理部
23 パラメータデータ送信部
24 パラメータデータ受信部
25 タグ情報判断部
26 分類処理部
27 パラメータデータ送信部
81 データベース
82 演算処理部
83 分類処理部
91 パラメータデータ受信部
92 内部処理部
93 パラメータデータ受信部
94 タグ情報判断部
95 分類処理部
96 パラメータデータ送信部
121 データベース
122 演算処理部
123 パラメータデータ受信部
124 タグ情報判断部
125 内部メモリ制御部
126 log加算計算部
127 内部メモリ
128 次アドレス計算部
129 アドレス判定部
1210 アドレスオフセット計算部
1211 パラメータデータ送信部
181 データベース
182 演算処理部

Claims (4)

  1. 篩の計算に係る逐次演算処理を行う複数の演算処理部と、前記演算処理を実行するためのデータを格納するデータ領域とデータベースのメモリ領域を区分けした区画各々を示すタグ値を格納するタグ領域から構成されるパラメータデータを複数格納するデータベースと、前記逐次演算処理に用いるパラメータデータを分類して前記データベースに格納する分類処理部とを備える演算処理装置の演算処理方法において、
    前記分類処理部が、記データベースに格納された区画分けが行われていないパラメータデータを順次取得し、前記パラメータデータに含まれるタグ値を参照して区画ごとにパラメータデータを分類して格納し、対応する区画に既にパラメータデータがある場合は、対応する区画のパラメータデータを格納する領域の末尾に分類されたパラメータデータを追加して格納することで前記データベースに含まれるパラメータデータを区画ごとに分類し、
    前記演算処理部各々が、それぞれ割り当てられたパラメータデータを取得し、各パラメータデータに含まれるデータに対して対数計算をし、該対数計算した値を前記データに加算する演算処理を行い、演算処理を行った結果のデータが他の区画のデータとなる場合には、各パラメータデータに含まれるタグ値を前記他の区画に対応するタグ値に書き換え、
    前記分類処理部が、前記演算処理部の各々が処理を行った各パラメータデータを取得し、各パラメータデータのタグ値に対応する区画に前記パラメータデータを書き戻す処理を行う、
    ことを特徴とする演算処理方法。
  2. 前記演算処理部が、
    パラメータデータのタグ値の示す前記区画を参照して、前記演算処理部の内部メモリから内部メモリデータを読み出し、前記読み出した前記内部メモリデータに対数計算した前記パラメータデータのデータ領域のデータを加算して前記内部メモリに書き戻し、
    前記タグ値の示すアドレスに前記データを加算して次の前記内部メモリデータの読み出しアドレスを算出し、
    前記内部メモリアのアドレス範囲を超えるときは前記内部メモリのアドレスから前記メモリのアドレスを減算しオフセット値を算出する、
    ことを特徴とする請求項1に記載の演算処理方法。
  3. 篩の計算に係る逐次演算処理を行う複数の演算処理部と、前記演算処理を実行するためのデータを格納するデータ領域とデータベースのメモリ領域を区分けした区画各々を示すタグ値を格納するタグ領域から構成されるパラメータデータを複数格納するデータベースと、前記逐次演算処理に用いるパラメータデータを分類して前記データベースに格納する分類処理部とを備える演算処理装置において、
    前記分類処理部が、前記データベースに格納された区画分けが行われていないパラメータデータを順次取得し、前記パラメータデータに含まれるタグ値を参照して区画ごとにパラメータデータを分類して格納し、対応する区画に既にパラメータデータがある場合は、対応する区画のパラメータデータを格納する領域の末尾に分類されたパラメータデータを追加して格納することで前記データベースに含まれるパラメータデータを区画ごとに分類し、
    前記演算処理部各々が、それぞれ割り当てられたパラメータデータを取得し、各パラメータデータに含まれるデータに対して対数計算をし、該対数計算した値を前記データに加算する演算処理を行い、演算処理を行った結果のデータが他の区画のデータとなる場合には、各パラメータデータに含まれるタグ値を前記他の区画に対応するタグ値に書き換え、
    前記分類処理部が、前記演算処理部の各々が処理を行った各パラメータデータを取得し、各パラメータデータのタグ値に対応する区画に前記パラメータデータを書き戻す処理を行う、
    ことを特徴とする演算処理装置。
  4. 前記演算処理部が、
    パラメータデータのタグ値の示す前記区画を参照して、前記演算処理部の内部メモリから内部メモリデータを読み出し、前記読み出した前記内部メモリデータに対数計算した前記パラメータデータのデータ領域のデータを加算して前記内部メモリに書き戻し、
    前記タグ値の示すアドレスに前記データを加算して次の前記内部メモリデータの読み出しアドレスを算出し、
    前記内部メモリアのアドレス範囲を超えるときは前記内部メモリのアドレスから前記メモリのアドレスを減算しオフセット値を算出する、
    ことを特徴とする請求項に記載の演算処理装置。
JP2007004602A 2007-01-12 2007-01-12 演算処理装置、及び演算処理方法 Expired - Fee Related JP4773980B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007004602A JP4773980B2 (ja) 2007-01-12 2007-01-12 演算処理装置、及び演算処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007004602A JP4773980B2 (ja) 2007-01-12 2007-01-12 演算処理装置、及び演算処理方法

Publications (2)

Publication Number Publication Date
JP2008171250A JP2008171250A (ja) 2008-07-24
JP4773980B2 true JP4773980B2 (ja) 2011-09-14

Family

ID=39699280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007004602A Expired - Fee Related JP4773980B2 (ja) 2007-01-12 2007-01-12 演算処理装置、及び演算処理方法

Country Status (1)

Country Link
JP (1) JP4773980B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6589334B2 (ja) 2015-03-30 2019-10-16 富士通株式会社 データ処理方法、データ処理装置、および、データ処理プログラム

Also Published As

Publication number Publication date
JP2008171250A (ja) 2008-07-24

Similar Documents

Publication Publication Date Title
TWI537729B (zh) 資料儲存裝置及其資料維護方法
US9720841B2 (en) Hardware managed compressed cache
CN110658990A (zh) 具有改善的准备时间的数据存储系统
US20120233523A1 (en) Programmable Data Storage Management
US9430395B2 (en) Grouping and dispatching scans in cache
US10984073B2 (en) Dual phase matrix-vector multiplication system
KR20000064542A (ko) 반도체디스크장치
US10268741B2 (en) Multi-nodal compression techniques for an in-memory database
CN104317731A (zh) 一种分层存储管理方法、装置及存储系统
CN113312171A (zh) 加速器、加速器的操作方法和加速器系统
JP2010267164A (ja) 記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラム
JP2010092107A (ja) 故障情報監視装置及び故障情報監視方法
US7484068B2 (en) Storage space management methods and systems
KR101798279B1 (ko) 집적 회로 내의 임베디드 메모리 및 전용 프로세서 구조
US7530063B2 (en) Method and system for code modification based on cache structure
JP6812826B2 (ja) 格納方法、格納装置及び格納プログラム
JP4773980B2 (ja) 演算処理装置、及び演算処理方法
CN104951244B (zh) 用于存取数据的方法和设备
JP2001282617A (ja) 共有されたキャッシュを動的に区分するための方法及びシステム
KR102545480B1 (ko) 존 스토리지에서의 키-값 스토어 파일 저장 장치 및 방법
JP2023503034A (ja) パターンベースのキャッシュブロック圧縮
JP6112193B2 (ja) アクセス制御プログラム、ディスク装置及びアクセス制御方法
KR102230669B1 (ko) 실시간 고속 데이터 병렬 처리 장치 및 방법
JP6333370B2 (ja) キャッシュ線中で動的配列データ構造を実装するための方法
CN111596861B (zh) 数据存储方法和装置,数据恢复方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110523

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110526

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: 20110621

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110624

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

Free format text: PAYMENT UNTIL: 20140701

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4773980

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees