(57)【要約】  アドレス生成器用の制御情報を効率的に生成することのできる情報処理方法、情報処理プログラム及び情報処理装置（１００）を提供する。  情報処理装置（１００）の制御部（１）は、プロセッサが実行するプログラムがメモリアクセスする際のアドレス列を抽出するとともに、アドレス列を複数の区間に分割する。また、制御部（１）は、分割された区間毎に、入力されるコマンドを所定のアルゴリズムによってアドレス番地を複数含むアドレス列に変換するアドレス生成器によりアクセスすることができる、アドレスパターンを探索する。
2012131820.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサから入力されるコマンドを、所定のアルゴリズムによって、アドレス番地を複数含むアドレス列に変換することにより、前記プロセッサに代わって効率的なメモリアクセスを行うアドレス生成器を利用するための情報処理方法であって、
前記プロセッサが実行するプログラムがメモリアクセスする際のアドレス列を抽出するとともに、前記アドレス列を複数の区間に分割する処理と、
前記分割された区間毎に、前記アドレス生成器によりアクセスすることができるアドレスパターンを探索する処理とを有する
情報処理方法。
【請求項２】
前記探索する処理により発見されたアドレスパターンに基づき、前記アドレスパターンを前記アルゴリズムを用いて生成するための前記コマンドを出力する処理をさらに有する
請求項１記載の情報処理方法。
【請求項３】
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理の結果生成された前記コマンドのなかから、前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に基づき、１つのコマンドを選択し出力する処理とを有する
請求項２記載の情報処理方法。
【請求項４】
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理において、前記コマンドを生成する処理を実行する毎に、生成された前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に適合するか否かを判定し、適合すると判定された場合、前記試行する処理を中断するとともに、適合すると判定された前記コマンドを出力する処理とを有する
請求項２記載の情報処理方法。
【請求項５】
コンピュータに、
プロセッサが実行するプログラムがメモリアクセスする際のアドレス列を抽出するとともに、前記アドレス列を複数の区間に分割する処理と、
前記分割された区間毎に、入力されるコマンドを所定のアルゴリズムによってアドレス番地を複数含むアドレス列に変換するアドレス生成器によりアクセスすることができる、アドレスパターンを探索する処理とを実行させる
プログラムが格納された非一時的なコンピュータ可読媒体。
【請求項６】
コンピュータに、
前記探索する処理により発見されたアドレスパターンに基づき、前記アドレスパターンを前記アルゴリズムを用いて生成するための前記コマンドを出力する処理をさらに実行させる
請求項５記載のプログラムが格納された非一時的なコンピュータ可読媒体。
【請求項７】
コンピュータに、
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理の結果生成された前記コマンドのなかから、前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に基づき、１つのコマンドを選択し出力する処理とを実行させる
請求項６記載のプログラムが格納された非一時的なコンピュータ可読媒体。
【請求項８】
コンピュータに、
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理において、前記コマンドを生成する処理を実行する毎に、生成された前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に適合するか否かを判定し、適合すると判定された場合、前記試行する処理を中断するとともに、適合すると判定された前記コマンドを出力する処理とを実行させる
請求項６記載のプログラムが格納された非一時的なコンピュータ可読媒体。
【請求項９】
制御手段を有する情報処理装置であって、
前記制御手段は、任意のコンピュータにおいてプロセッサがプログラムを実行される際に発生するメモリアクセスのアドレス列を抽出し、
前記アドレス列を複数の区間に分割し、
前記分割された区間毎に、入力されるコマンドを所定のアルゴリズムによってアドレス番地を複数含むアドレス列に変換するアドレス生成器によりアクセスすることができる、アドレスパターンを探索する
情報処理装置。
【請求項１０】
前記制御手段は、前記探索する処理により発見されたアドレスパターンに基づき、前記アドレスパターンを前記アルゴリズムを用いて生成するための前記コマンドを出力する処理をさらに行う
請求項９記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理方法、プログラムが格納された非一時的なコンピュータ可読媒体及び情報処理装置に関し、特にアドレス生成器用の制御情報を効率的に生成することのできる情報処理方法、プログラムが格納された非一時的なコンピュータ可読媒体及び情報処理装置に関する。
【背景技術】
【０００２】
ある種の信号処理アルゴリズムにおいては、プロセッサがメモリに対し入出力する際のデータフォーマットが、予め規定されている。そのため、このようなフォーマットのデータをメモリから自動で読出すようなアドレス生成器を用いることにより、プロセッサは、メモリアクセスの処理を行う必要がなくなり、処理サイクル数を削減できることが知られている。【０００３】
このアドレス生成器の従来技術として、Ｇｅｎｅｒｉｃ  Ａｄｄｒｅｓｓ  Ｇｅｎｅｒａｔｏｒ（ＧＡＧ）がある（非特許文献１）。【０００４】
図４に、ＧＡＧを含む装置の構成を示す。図４にかかる装置は、ＧＡＧ及びＧＡＧの制御を行うための制御情報が格納されたメモリを備えている。ＧＡＧは、メモリから制御情報を受取って、制御情報に応じた処理を行う。メモリは、制御情報としてＢａｓｅ、Ｉｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ、Ｉｎｎｅｒ  Ｌｏｏｐ  ｓｔｅｐ、Ｏｕｔｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ及びＯｕｔｅｒ  Ｌｏｏｐ  ｏｆｆｓｅｔをＧＡＧに与える。【０００５】
ＧＡＧは、ループ構造によって定義されるアルゴリズムに従って動作する。制御情報であるＢａｓｅ値、Ｉｎｎｅｒ  ＬｏｏｐのＬｉｍｉｔ及びＳｔｅｐ並びにＯｕｔｅｒ  ＬｏｏｐのＬｉｍｉｔ及びＳｔｅｐは、このループ構造の動作を定義するパラメータである。また、ＧＡＧは、複数のループ構造に従って動作することが可能である。例えば、図４のＧＡＧの動作は、少なくともループ構造１及び２により定義されている。この場合、ＧＡＧは、ループ構造１にかかる動作を終了した後、ループ構造２にかかる動作を開始する。【０００６】
図５を用いて、このＧＡＧによるアドレス生成の動作を説明する。ここではループ構造１にかかる動作のみ説明する。ループ構造１にかかる制御情報は、図４に示すように、Ｂａｓｅ：０、Ｉｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ：２、Ｉｎｎｅｒ  Ｌｏｏｐ  ｓｔｅｐ：１、Ｏｕｔｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ：２、及びＯｕｔｅｒ  Ｌｏｏｐ  ｏｆｆｓｅｔ：４である。ＧＡＧがアクセスするメモリ空間は、図５に示すように、８ワードであるものとする。また、ＧＡＧが実際にアクセスする番地を、図５では黒丸及び矢印で示す。
まず、ＧＡＧは、所与のＢａｓｅに対応するアドレスをアクセスする。この例ではＢａｓｅは０であるので、メモリの０番地をアクセスする。【０００７】
次に、ＧＡＧはＩｎｎｅｒ  Ｌｏｏｐの実行を開始する。より具体的には、ＧＡＧはＢａｓｅにｓｔｅｐを加算したアドレスに対しアクセスするとともに、かかるアクセスをｌｉｍｉｔ回だけ繰返す。この例ではｓｔｅｐが１であるから、ＧＡＧはまず、Ｂａｓｅに１を加算した１番地をアクセスする。次に、ＧＡＧはｌｉｍｉｔ値のデクリメントを行い、そのｌｉｍｉｔ値が０でない場合、ＧＡＧは前述のｓｔｅｐ値の加算及びメモリアクセスを再度実行する。この例の場合、ｌｉｍｉｔの初期値は２であるから、デクリメント後のｌｉｍｉｔは１である。よって、ＧＡＧは次に、直前にアクセスしたアドレス（１番地）にさらにｓｔｅｐ値１を加算した２番地をアクセスする。その後、ＧＡＧは再度ｌｉｍｉｔ値のデクリメントを行う。ここでｌｉｍｉｔ値が０となるため、ＧＡＧはＩｎｎｅｒ  Ｌｏｏｐの処理を終了する。【０００８】
続いて、ＧＡＧはＯｕｔｅｒ  Ｌｏｏｐの実行を行う。より具体的には、ＧＡＧは１回目のＩｎｎｅｒ  Ｌｏｏｐが終了すると同時に、Ｏｕｔｅｒ  Ｌｏｏｐのｌｉｍｉｔ値をデクリメントし、そのｌｉｍｉｔ値が０でない場合、Ｂａｓｅを、Ｂａｓｅにｓｔｅｐを加算した値で更新する。かかる処理の後、ＧＡＧは再度Ｉｎｎｅｒ  Ｌｏｏｐを実行する。この例においては、ｌｉｍｉｔの初期値が２であるため、ｌｉｍｉｔ値はまず１にデクリメントされる。次に、ＧＡＧは、現在のＢａｓｅ値０にｓｔｅｐ値４を加算し、加算結果４を新たなＢａｓｅ値とする。その後、再度Ｉｎｎｅｒ  Ｌｏｏｐを実行する。Ｉｎｎｅｒ  Ｌｏｏｐが終了すると、ＧＡＧはｌｉｍｉｔ値を再度１デクリメントする。ここで、ｌｉｍｉｔが０となるので、ＧＡＧはＯｕｔｅｒ  Ｌｏｏｐを終了する。【０００９】
このようなＧＡＧを利用することにより、プロセッサは、効率的なメモリアクセスを行うことができる。非特許文献１には、ＧＡＧがアクセスすべきある１つのアドレス列が決定された場合、そのアクセスを行うためのＢａｓｅ、Ｉｎｎｅｒ  Ｓｔｅｐ、Ｏｕｔｅｒ  Ｓｔｅｐ、  Ｉｎｎｅｒ  Ｌｏｏｐ  Ｌｉｍｉｔ、Ｏｕｔｅｒ  Ｌｏｏｐ  Ｌｉｍｉｔを生成する方法が、シンプルな例を通じて示されている。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】Ｒｅｉｎｅｒ  Ｗ．  Ｈａｒｔｅｎｓｔｅｉｎ，"Ｅｘｐｌｏｉｔｉｎｇ  Ｃｏｎｔｅｍｐｏｒａｒｙ  Ｍｅｍｏｒｙ  Ｔｅｃｈｎｉｑｕｅｓ  ｉｎ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ａｃｃｅｌｅｒａｔｏｒｓ"，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ８ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  ｗｏｒｋｓｈｏｐ  ｏｎ  Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ：ＦＰＬ'９８，Ｅｓｔｏｎｉａ，１９９８年  ９月  ３日．
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本出願の発明者は、コンピュータを用いて、上述のようなＧＡＧを制御するための制御情報（Ｂａｓｅ、Ｉｎｎｅｒ  Ｌｏｏｐのｓｔｅｐ及びｌｉｍｉｔ、Ｏｕｔｅｒ  Ｌｏｏｐのｓｔｅｐ及びｌｉｍｉｔ。以下、コマンドという）を生成する方法について、考察を行った。ＧＡＧ用コマンド生成の１つの方法は、コンピュータが目的となるアドレス列を先頭から順に解析し、対応するコマンドを生成してゆく方法である。【００１２】
例えば、コンピュータが、図３に示すアドレス列をＧＡＧがアクセスするためのコマンドを生成する処理について考える。コンピュータは、まず、このアドレス列の先頭サイクル（サイクル０）のアドレスをアクセスするためのコマンド（コマンド１とする）を生成する。次に、コンピュータは、そのコマンドの一部（Ｉｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ及びｓｔｅｐ、Ｏｕｔｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ及びｓｔｅｐ）を変更することによって、サイクル０のアドレスのアクセスと、次のサイクル（サイクル１）のアドレスのアクセスの両方を実現できるコマンド（コマンド１'とする）を生成できないか試行する。ここでコンピュータがコマンド１'を生成できたなら、コンピュータはコマンド１'を採用する。一方、コンピュータがコマンド１'を生成できなければ、コンピュータは一旦サイクル０をアクセスするためのコマンド１を生成結果として出力した後、サイクル１をアクセスするための新たなコマンド（コマンド２とする）を生成する。続いて、コンピュータはサイクル２について同様の処理を行う。すなわち、上述のコマンド１'又はコマンド２の一部を変更することによって、サイクル２のアドレスのアクセスを実現できるコマンドを生成できないか試行する。以下、コンピュータは、最後のサイクル（サイクル７）に至るまで同様の処理を行う。【００１３】
上述のコンピュータの動作をより具体的に示す。図３のアドレス列において、サイクル０のアドレスは"０"である。コンピュータは、試行錯誤の結果、Ｂａｓｅ＝０、Ｉｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝１、Ｏｕｔｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝１、Ｉｎｎｅｒ  Ｌｏｏｐ  Ｓｔｅｐ＝０、Ｏｕｔｅｒ  Ｌｏｏｐ  Ｓｔｅｐ＝０というコマンドでこのアドレスをアクセスできることを発見する。このコマンドをコマンド１とする。【００１４】
次に、サイクル１のアドレスは"０"である。コンピュータは、試行錯誤の結果、先に生成したコマンド１において、Ｉｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝２とすれば、このアドレスも同一コマンドでアクセスできることを発見する。そこで、コンピュータは、先に生成したコマンド１のＩｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔを２に変更する。この変更後のコマンドをコマンド１'とする。【００１５】
続いて、サイクル２のアドレスは"１"である。このアドレスは、先に生成したコマンド１'では表すことができない。そこで、コンピュータは、コマンド１'の生成は終了し、新しくコマンド２の生成を開始する。コンピュータは、試行錯誤の結果、Ｂａｓｅ＝２、Ｉｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝１、Ｏｕｔｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝１、Ｉｎｎｅｒ  Ｌｏｏｐ  ｓｔｅｐ＝０、Ｏｕｔｅｒ  Ｌｏｏｐ  ｓｔｅｐ＝０というコマンドでこのアドレスをアクセスできることを発見する。このコマンドをコマンド２とする。【００１６】
次に、サイクル３のアドレスは"２"である。コンピュータは、試行錯誤の結果、先に生成したコマンド２において、Ｉｎｎｅｒ  Ｌｏｏｐ  ｓｔｅｐ＝１、Ｉｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝２とすれば、このアドレスも同一コマンドでアクセスできることを発見する。そこで、コンピュータは、先に生成したコマンド２のＩｎｎｅｒ  Ｌｏｏｐ  ｓｔｅｐを１、Ｉｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔを２に変更する。この変更後のコマンドをコマンド２'とする。【００１７】
次にサイクル４及び５のアドレスは"５"及び"６"である。コンピュータは、試行錯誤の結果、先に生成したコマンド２'において、Ｏｕｔｅｒ  Ｌｏｏｐ  ｓｔｅｐ＝４、Ｏｕｔｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝２とすれば、これらのアドレスも同一コマンドでアクセスできることを発見する。そこで、コンピュータは、先に生成したコマンド２'のＯｕｔｅｒ  Ｌｏｏｐ  ｓｔｅｐを４、Ｏｕｔｅｒ  Ｌｏｏｐ  ｌｉｍｉｔを２に変更する。この変更後のコマンドをコマンド２' 'とする。【００１８】
最後に、サイクル６のアドレスは"７"である。このアドレスは、先に生成したコマンド２' 'では表すことができない。そこで、コンピュータは、コマンド２' 'の生成を終了し、新しくコマンド３の生成を行う。コンピュータは、試行錯誤の結果、Ｂａｓｅ  ＝７、Ｉｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝１、Ｉｎｎｅｒ  Ｌｏｏｐ  ｓｔｅｐ＝０、  Ｏｕｔｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝１、Ｏｕｔｅｒ  Ｌｏｏｐ  ｓｔｅｐ＝０というコマンドでこのアドレスをアクセスできることを発見する。このコマンドをコマンド３とする。【００１９】
以上の処理によってコンピュータが生成したコマンド数は３である。この例では、各コマンドは１乃至３サイクルのアクセスしか実行することができない。これは、必ずしも効率的なコマンドとは言い難い。【００２０】
このように、コンピュータが目的となるアドレス列を先頭から解析し、適合するコマンドを生成してゆく方法では、アドレス列によっては、効率的にコマンドを作成することができない。すなわち、コマンド数が増加してしまうことがある。【００２１】
本発明は、かかる問題を解決するためになされたものであり、アドレス生成器用の制御情報を効率的に生成することのできる情報処理方法、情報処理プログラム及び情報処理装置を提供すること目的とする。
【課題を解決するための手段】
【００２２】
本発明にかかる情報処理方法は、プロセッサから入力されるコマンドを、所定のアルゴリズムによって、アドレス番地を複数含むアドレス列に変換することにより、前記プロセッサに代わって効率的なメモリアクセスを行うアドレス生成器を利用するための情報処理方法であって、前記プロセッサが実行するプログラムがメモリアクセスする際のアドレス列を抽出するとともに、前記アドレス列を複数の区間に分割する処理と、前記分割された区間毎に、前記アドレス生成器によりアクセスすることができるアドレスパターンを探索する処理とを有するものである。
【００２３】
本発明にかかる情報処理プログラムは、コンピュータに、プロセッサが実行するプログラムがメモリアクセスする際のアドレス列を抽出するとともに、前記アドレス列を複数の区間に分割する処理と、前記分割された区間毎に、入力されるコマンドを所定のアルゴリズムによってアドレス番地を複数含むアドレス列に変換するアドレス生成器によりアクセスすることができる、アドレスパターンを探索する処理とを実行させるものである。【００２４】
本発明にかかる情報処理装置は、制御部を有する情報処理装置であって、前記制御部は、任意のコンピュータにおいてプロセッサがプログラムを実行される際に発生するメモリアクセスのアドレス列を抽出し、前記アドレス列を複数の区間に分割し、前記分割された区間毎に、入力されるコマンドを所定のアルゴリズムによってアドレス番地を複数含むアドレス列に変換するアドレス生成器によりアクセスすることができる、アドレスパターンを探索するものである。
【発明の効果】
【００２５】
本発明により、アドレス生成器用の制御情報を効率的に生成することのできる情報処理方法、情報処理プログラム及び情報処理装置を提供することができる。
【図面の簡単な説明】
【００２６】
【図１】実施の形態１にかかるアドレス生成器用制御情報の生成装置の構成を示す図である。
【図２】実施の形態１にかかるアドレス生成器用制御情報の生成装置の処理フローを示す図である。
【図３】アドレス生成器がアクセスすべきアドレス列を示す図である。
【図４】従来のアドレス生成器の構成を示す図である。
【図５】従来のアドレス生成器の動作を示す図である。
【発明を実施するための形態】
【００２７】
＜実施の形態１＞
図１を用いて、本発明の実施の形態１の構成を説明する。実施の形態１のコンピュータ１００は、制御部１が記録媒体２に記録された制御情報自動生成プログラム２１を実行することにより、制御情報すなわちＧＡＧ用コマンドを出力する。制御情報自動生成プログラム２１は、後述するように、アドレス列を分割し、分割されたアドレス列毎にコマンドを生成する処理を実行する。
【００２８】
ここで、コンピュータ１００は、例えばパーソナルコンピュータ（ＰＣ）であり、ＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスク、ディスプレイ、キーボード、マウス等を有する。又は、サーバコンピュータ、携帯端末等であってもよい。また、物理的に単一である必要はなく、複数の装置が分散的に処理を実行する構成としてもよい。制御部１は、中央演算処理装置（ＣＰＵ）、読出専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、入出力ポート（Ｉ／Ｏ）等により実現され、記録媒体２に格納された各種プログラムに基づいて各種制御を実行する機能を有する。記録媒体２は、典型的にはＲＯＭ、ＲＡＭ、ハードディスク等の内部又は外部記憶手段であり、制御部１と内部又は外部バスあるいは通信網等により接続される。制御情報自動生成プログラム２１は、本実施の形態に関する処理をＣＰＵにより実行させるためのプログラムであり、記録媒体２に格納される。
【００２９】
図２のフローチャートを用いて、本発明の実施の形態１にかかる処理を説明する。本実施の形態では、制御部１が記録媒体２に記録された制御情報自動生成プログラム２１を実行することにより、以下の処理を行う。
【００３０】
まず、本実施の形態にかかる処理において用いるパラメータについて説明する。ＧＡＧがアクセスするアドレス列をＡとする。また、アドレス列Ａの長さをＮ、アドレス列Ａのｎ番目の要素をＡ［ｎ］とする。また、アドレス列Ａを任意の数に分割するとき、その分割数をＴとし、各分割区間の開始位置を｛Ｓ０，…，ＳＴ−１｝、この分割区間開始位置のｍ番目の要素をＳ［ｍ］とする。換言すれば、分割区間開始位置Ｓ［ｍ］とは、アドレス列Ａにおいて、ｍ番目の分割区間が開始される位置を示している。さらに、アドレス列Ａから分割されたアドレス列をＡＳＮとし、ＡＳＮのｏ番目の要素をＡＳＮ［ｏ］とする。また、コンピュータが、ＧＡＧがアドレス列Ａをアクセスするためのコマンドを生成する処理を、ＧＡＧコマンド生成（Ａ）とする。
【００３１】
本実施の形態にかかる処理の内容について説明する。コンピュータ１００は、アドレス列Ａを分割して得られるアドレス列ＡＳＮ毎に、ＧＡＧコマンド生成を行う。具体的には、コンピュータ１００の制御部１は、Ｓ１００において、ループ回数として、分割区間数Ｔをセットする（Ｓ１００）。続いて、制御部１は、各試行をｔとした場合、分割区間開始位置Ｓ［ｔ］と次の分割区間開始位置Ｓ［ｔ＋１］とを取得する（Ｓ１０１及びＳ１０３）。なお、最後の分割区間の場合には、Ｓ［ｔ＋１］の代わりにＮを用いる（Ｓ１０２及びＳ１０４）。次に、制御部１は、Ｓ［ｔ］からＳ［ｔ＋１］−１で示されるアドレス列Ａの区間をＡＳＮとして抽出する（Ｓ１０５乃至Ｓ１０７）。最後に、このＡＳＮを使ってＧＡＧコマンドを生成する（Ｓ１０８）。以上の処理を、全ての分割区間について実行する（Ｓ１０９）。
【００３２】
次に、図２のフローチャートにかかる処理を、図３に示したアドレス列に適用した例を説明する。この例では、コンピュータ１００は、図３のアドレス列Ａを２分割する。分割位置はサイクル０とサイクル１の間とし、コンピュータ１００は、かかる分割によってできる２つのアドレス列について、それぞれコマンド生成処理を行うものとする。したがって、この例の場合、アドレス列Ａの長さＮ＝７、分割数Ｔ＝２、分割区間の開始位置Ｓ＝｛０，１｝である。
【００３３】
まず、コンピュータ１００の制御部１は、ループ数として、分割区間数Ｔ＝２をセットする（図２、Ｓ１００）。続いて、制御部１は、１回目（ｔ＝０）のループ処理を行う。ここで、分割区間開始位置Ｓ［０］はサイクル０、次の分割区間開始位置Ｓ［１］はサイクル１である（Ｓ１０１及びＳ１０３）。次に、制御部１は、Ｓ［０］からＳ［１］−１で示されるアドレス列Ａの区間をＡＳＮとして抽出する（Ｓ１０５乃至Ｓ１０７）。この場合、ＡＳＮ＝｛０｝である。最後に、このＡＳＮ＝｛０｝を使ってＧＡＧコマンドを生成する（Ｓ１０８）。ここでのＧＡＧコマンドの生成方法は、上述した、コンピュータが目的となるアドレス列を先頭から解析し、適合するコマンドを生成してゆく方法である。制御部１は、試行錯誤の結果、Ｂａｓｅ＝０、Ｉｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝１、Ｏｕｔｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝１、Ｉｎｎｅｒ  Ｌｏｏｐ  Ｓｔｅｐ＝０、Ｏｕｔｅｒ  Ｌｏｏｐ  Ｓｔｅｐ＝０というコマンドでこのアドレスをアクセスできることを発見する。このコマンドをコマンド１とする。
【００３４】
次に、制御部１は、２回目（ｔ＝１）のループ処理を行う。ここで、分割区間開始位置Ｓ［１］はサイクル１である（Ｓ１０１）。また、この分割区間は最後の分割区間であるから、Ｓ［ｔ＋１］の代わりにＮ＝７を用いる（Ｓ１０４）。次に、制御部１は、Ｓ［１］からＮ−１＝７−１＝６で示されるアドレス列Ａの区間をＡＳＮとして抽出する（Ｓ１０５乃至Ｓ１０７）。この場合、ＡＳＮ＝｛０，１，２，５，６，７｝である。最後に、このＡＳＮ＝｛０，１，２，５，６，７｝を使ってＧＡＧコマンドを生成する（Ｓ１０８）。制御部１は、試行錯誤の結果、Ｂａｓｅ＝０、Ｉｎｎｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝３、Ｏｕｔｅｒ  Ｌｏｏｐ  ｌｉｍｉｔ＝２、Ｉｎｎｅｒ  Ｌｏｏｐ  Ｓｔｅｐ＝１、Ｏｕｔｅｒ  Ｌｏｏｐ  Ｓｔｅｐ＝５というコマンドでこれらのアドレスを全てアクセスできることを発見する。ここで、全ての分割区間処理が終了するので、処理が終了となる（Ｓ１０９）。
【００３５】
本実施の形態において、制御部１が生成したコマンド数は２である。一方、アドレス列を分割しない場合においては、コンピュータが生成したコマンド数は３であった。このように、本実施の形態によるコマンド生成では、コマンド数をより少なく抑えることができる。
【００３６】
＜その他の実施の形態＞
実施の形態１は、分割数、分割区間開始位置を予め決定するものであった。一方、分割数や分割区間開始位置を予め決定せず、複数の分割数や分割区間開始位置を試行しながらコマンドを生成し、試行した中でコマンド数が最小となる分割数、分割区間開始位置を探索して決定することも可能である。
【００３７】
例として、実施例１においては予め分割数Ｔを２と指定したが、制御部１が、分割数Ｔを１から順に２，３，…８と変化させ、コマンド生成を試行することができる。さらに、各分割数Ｔにおいて、分割位置Ｓを変化させつつ試行することもできる。例えば、Ｔ＝２の際には、Ｓ＝｛０，１｝以外にも考えられる全組合せ、すなわちＳ＝｛０，２｝、Ｓ＝｛０，３｝、Ｓ＝｛０，４｝、Ｓ＝｛０，５｝及びＳ＝｛０，６｝におけるコマンド生成を試行する。これら各試行結果を記憶しておき、全試行が終了した際に、その中からコマンド数が最小となるものを選択する。
【００３８】
このようにすれば、分割数、分割区間開始位置を予め決定しなくとも、制御部１が、コマンド数が最小となる分割数、分割区間開始位置を発見するため、より効率的なＧＡＧ用コマンド数を生成することができる。
【００３９】
また、上述の例において、ユーザーにコマンド数の上限閾値Ｃを与えさせ、上記試行において閾値Ｃより少ないコマンド数の生成に成功した場合、試行をやめることも可能である。
【００４０】
このように、制御部１は、上記全ての試行を実行することなく、ユーザの要求する閾値Ｃを満たすコマンドが得られた時点で処理を中止するため、適切な効率性を有するＧＡＧ用コマンドを、より短時間で生成することができる。
【００４１】
この出願は、２０１１年３月３１日に出願された日本出願特願２０１１−０７９９７３を基礎とする優先権を主張し、その開示の全てをここに取り込む。また、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００４２】
上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００４３】
（付記１）
プロセッサから入力されるコマンドを、所定のアルゴリズムによって、アドレス番地を複数含むアドレス列に変換することにより、前記プロセッサに代わって効率的なメモリアクセスを行うアドレス生成器を利用するための情報処理方法であって、
前記プロセッサが実行するプログラムがメモリアクセスする際のアドレス列を抽出するとともに、前記アドレス列を複数の区間に分割する処理と、
前記分割された区間毎に、前記アドレス生成器によりアクセスすることができるアドレスパターンを探索する処理とを有する
情報処理方法。
【００４４】
（付記２）
前記探索する処理により発見されたアドレスパターンに基づき、前記アドレスパターンを前記アルゴリズムを用いて生成するための前記コマンドを出力する処理をさらに有する
付記１記載の情報処理方法。
【００４５】
（付記３）
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理の結果生成された前記コマンドのなかから、前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に基づき、１つのコマンドを選択し出力する処理とを有する
付記２記載の情報処理方法。
【００４６】
（付記４）
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理において、前記コマンドを生成する処理を実行する毎に、生成された前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に適合するか否かを判定し、適合すると判定された場合、前記試行する処理を中断するとともに、適合すると判定された前記コマンドを出力する処理とを有する
付記２記載の情報処理方法。
【００４７】
（付記５）
コンピュータに、
プロセッサが実行するプログラムがメモリアクセスする際のアドレス列を抽出するとともに、前記アドレス列を複数の区間に分割する処理と、
前記分割された区間毎に、入力されるコマンドを所定のアルゴリズムによってアドレス番地を複数含むアドレス列に変換するアドレス生成器によりアクセスすることができる、アドレスパターンを探索する処理とを実行させる
プログラムが格納された非一時的なコンピュータ可読媒体。
【００４８】
（付記６）
コンピュータに、
前記探索する処理により発見されたアドレスパターンに基づき、前記アドレスパターンを前記アルゴリズムを用いて生成するための前記コマンドを出力する処理をさらに実行させる
付記５記載のプログラムが格納された非一時的なコンピュータ可読媒体。
【００４９】
（付記７）
コンピュータに、
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理の結果生成された前記コマンドのなかから、前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に基づき、１つのコマンドを選択し出力する処理とを実行させる
付記６記載のプログラムが格納された非一時的なコンピュータ可読媒体。
【００５０】
（付記８）
コンピュータに、
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理において、前記コマンドを生成する処理を実行する毎に、生成された前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に適合するか否かを判定し、適合すると判定された場合、前記試行する処理を中断するとともに、適合すると判定された前記コマンドを出力する処理とを実行させる
付記６記載のプログラムが格納された非一時的なコンピュータ可読媒体。
【００５１】
（付記９）
制御手段を有する情報処理装置であって、
前記制御手段は、任意のコンピュータにおいてプロセッサがプログラムを実行される際に発生するメモリアクセスのアドレス列を抽出し、
前記アドレス列を複数の区間に分割し、
前記分割された区間毎に、入力されるコマンドを所定のアルゴリズムによってアドレス番地を複数含むアドレス列に変換するアドレス生成器によりアクセスすることができる、アドレスパターンを探索する
情報処理装置。
【００５２】
（付記１０）
前記制御手段は、前記探索する処理により発見されたアドレスパターンに基づき、前記アドレスパターンを前記アルゴリズムを用いて生成するための前記コマンドを出力する処理をさらに行う
付記９記載の情報処理装置。
【００５３】
（付記１１）
前記制御手段は、前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理の結果生成された前記コマンドのなかから、前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に基づき、１つのコマンドを選択し出力する処理とを行う
付記１０記載の情報処理装置。
【００５４】
（付記１２）
前記制御手段は、前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理において、前記コマンドを生成する処理を実行する毎に、生成された前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に適合するか否かを判定し、適合すると判定された場合、前記試行する処理を中断するとともに、適合すると判定された前記コマンドを出力する処理とを行う
付記１０記載の情報処理装置。
【産業上の利用可能性】
【００５５】
本発明は情報処理方法、プログラムが格納された非一時的なコンピュータ可読媒体及び情報処理装置に関し、特にアドレス生成器用の制御情報を効率的に生成することのできる情報処理方法、プログラムが格納された非一時的なコンピュータ可読媒体及び情報処理装置に関する。
【符号の説明】
【００５６】
１００  コンピュータ
１  制御部
２  記録媒体
２１  制御情報自動生成プログラム
【図１】
2012131820.tif 000003
【図２】
2012131820.tif 000004
【図３】
2012131820.tif 000005
【図４】
2012131820.tif 000006
【図５】
2012131820.tif 000007
【手続補正書】
【提出日】平成25年9月26日(2013.9.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサから入力されるコマンドを、所定のアルゴリズムによって、アドレス番地を複数含むアドレス列に変換することにより、前記プロセッサに代わって効率的なメモリアクセスを行うアドレス生成器を利用するための情報処理方法であって、
前記プロセッサが実行するプログラムがメモリアクセスする際のアドレス列を抽出するとともに、前記アドレス列を複数の区間に分割する処理と、
前記分割された区間毎に、前記アドレス生成器によりアクセスすることができるアドレスパターンを探索する処理とを有する
情報処理方法。
【請求項２】
前記探索する処理により発見されたアドレスパターンに基づき、前記アドレスパターンを前記アルゴリズムを用いて生成するための前記コマンドを出力する処理をさらに有する
請求項１記載の情報処理方法。
【請求項３】
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理の結果生成された前記コマンドのなかから、前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に基づき、１つのコマンドを選択し出力する処理とを有する
請求項２記載の情報処理方法。
【請求項４】
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理において、前記コマンドを生成する処理を実行する毎に、生成された前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に適合するか否かを判定し、適合すると判定された場合、前記試行する処理を中断するとともに、適合すると判定された前記コマンドを出力する処理とを有する
請求項２記載の情報処理方法。
【請求項５】
コンピュータに、
プロセッサが実行するプログラムがメモリアクセスする際のアドレス列を抽出するとともに、前記アドレス列を複数の区間に分割する処理と、
前記分割された区間毎に、入力されるコマンドを所定のアルゴリズムによってアドレス番地を複数含むアドレス列に変換するアドレス生成器によりアクセスすることができる、アドレスパターンを探索する処理とを実行させる
プログラム。
【請求項６】
コンピュータに、
前記探索する処理により発見されたアドレスパターンに基づき、前記アドレスパターンを前記アルゴリズムを用いて生成するための前記コマンドを出力する処理をさらに実行させる
請求項５記載のプログラム。
【請求項７】
コンピュータに、
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理の結果生成された前記コマンドのなかから、前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に基づき、１つのコマンドを選択し出力する処理とを実行させる
請求項６記載のプログラム。
【請求項８】
コンピュータに、
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理において、前記コマンドを生成する処理を実行する毎に、生成された前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に適合するか否かを判定し、適合すると判定された場合、前記試行する処理を中断するとともに、適合すると判定された前記コマンドを出力する処理とを実行させる
請求項６記載のプログラム。
【請求項９】
制御手段を有する情報処理装置であって、
前記制御手段は、任意のコンピュータにおいてプロセッサがプログラムを実行される際に発生するメモリアクセスのアドレス列を抽出し、
前記アドレス列を複数の区間に分割し、
前記分割された区間毎に、入力されるコマンドを所定のアルゴリズムによってアドレス番地を複数含むアドレス列に変換するアドレス生成器によりアクセスすることができる、アドレスパターンを探索する
情報処理装置。
【請求項１０】
前記制御手段は、前記探索する処理により発見されたアドレスパターンに基づき、前記アドレスパターンを前記アルゴリズムを用いて生成するための前記コマンドを出力する処理をさらに行う
請求項９記載の情報処理装置。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は情報処理方法、プログラム及び情報処理装置に関し、特にアドレス生成器用の制御情報を効率的に生成することのできる情報処理方法、プログラム及び情報処理装置に関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
（付記５）
コンピュータに、
プロセッサが実行するプログラムがメモリアクセスする際のアドレス列を抽出するとともに、前記アドレス列を複数の区間に分割する処理と、
前記分割された区間毎に、入力されるコマンドを所定のアルゴリズムによってアドレス番地を複数含むアドレス列に変換するアドレス生成器によりアクセスすることができる、アドレスパターンを探索する処理とを実行させる
プログラム。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
（付記６）
コンピュータに、
前記探索する処理により発見されたアドレスパターンに基づき、前記アドレスパターンを前記アルゴリズムを用いて生成するための前記コマンドを出力する処理をさらに実行させる
付記５記載のプログラム。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
（付記７）
コンピュータに、
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理の結果生成された前記コマンドのなかから、前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に基づき、１つのコマンドを選択し出力する処理とを実行させる
付記６記載のプログラム。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
（付記８）
コンピュータに、
前記分割の位置及び区間の数を変更しつつ、前記分割する処理、前記探索する処理及び前記コマンドを生成する処理とを複数回試行する処理と、
前記試行する処理において、前記コマンドを生成する処理を実行する毎に、生成された前記コマンドが前記プロセッサのメモリアクセスを効率化する程度を示す指標に適合するか否かを判定し、適合すると判定された場合、前記試行する処理を中断するとともに、適合すると判定された前記コマンドを出力する処理とを実行させる
付記６記載のプログラム。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
本発明は情報処理方法、プログラム及び情報処理装置に関し、特にアドレス生成器用の制御情報を効率的に生成することのできる情報処理方法、プログラム及び情報処理装置に関する。
【国際調査報告】
2012131820.tif 000008
2012131820.tif 000009
2012131820.tif 000010