(57)【要約】【課題】プロセッサコアがメモリからデータを読み出す際のアクセス時間の増加を抑制する。【解決手段】読み出し側プロセッサコアがアクセスするメモリの読み出し用アドレスが書き出し用アドレスと異なるアドレスとなり、且つ、第１データ列の複数のデータのうち第２データ列として読み出される対象となる対象データが読み出し用アドレスに記憶されたときに所定の順番に並ぶように書き出し用アドレスと読み出し用アドレスとを対応づける対応テーブルを用いて、書き出し用アドレスに書き込まれている各対象データを、対応する読み出し用アドレスへ複製するデータ複製部、を備え、読み出し側プロセッサコアは、読み出し用アドレスに記憶されている各対象データを第２データ列として読み出す。【選択図】図３
2020057251.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶可能なメモリを備える情報処理装置であって、
複数のデータを有する第１データ列をデータ毎に指定される前記メモリの書き出し用アドレスへ書き出す、少なくとも１つの書き出し側プロセッサコアと、
前記メモリに書き出された前記第１データ列の複数のデータのうちの一部のデータを第２データ列として前記メモリから読み出す、少なくとも１つの読み出し側プロセッサコアと、
前記読み出し側プロセッサコアがアクセスする前記メモリの読み出し用アドレスが前記書き出し用アドレスと異なるアドレスとなり、且つ、前記第１データ列の複数のデータのうち前記第２データ列として読み出される対象となる対象データが前記読み出し用アドレスに記憶されたときに所定の順番に並ぶように前記書き出し用アドレスと前記読み出し用アドレスとを対応づける対応テーブルを用いて、前記書き出し用アドレスに書き込まれている前記各対象データを、対応する前記読み出し用アドレスへ複製するデータ複製部と、
を備え、
前記読み出し側プロセッサコアは、前記読み出し用アドレスに記憶されている各対象データを前記第２データ列として読み出す、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、詳しくは、メモリを備える情報処理装置に関する。
【背景技術】
【０００２】
従来、この種の情報処理装置としては、複数のプロセッサコア（ＣＰＵ）と、メモリと、を有するものが提案されている（例えば、特許文献１参照）。この装置では、プロセッサコアは、並列プロセスに含まれる複数のプロセスのそれぞれに割り当てられた１つの識別情報に対して１つの論理通信領域番号を生成し、論理通信領域番号に対応する先頭アドレスから決められたサイズのメモリ領域を確保し、確保したメモリ領域に複数のデータを有するデータ列を書き出し、メモリに書き出されたデータ列を別のプロセッサコアで読み出している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−１４０５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の情報処理装置では、あるプロセッサコアがメモリに書き出したデータ列が有するデータの一部を他のプロセッサコアで読み出す場合、読み出す対象となるデータがメモリ内でバラバラな物理アドレスに書き込まれている場合がある。この場合、データを読み出す側のプロセッサコアは、バラバラな物理アドレスにアクセスしてデータを読み出すことになり、読み出しに要する時間（アクセス時間）が増加してしまう。
【０００５】
本発明の情報処理装置は、プロセッサコアがメモリからデータを読み出す際のアクセス時間の増加を抑制することを主目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理装置は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明の情報処理装置は、
データを記憶可能なメモリを備える情報処理装置であって、
複数のデータを有する第１データ列をデータ毎に指定される前記メモリの書き出し用アドレスへ書き出す、少なくとも１つの書き出し側プロセッサコアと、
前記メモリに書き出された前記第１データ列の複数のデータのうちの一部のデータを第２データ列として前記メモリから読み出す、少なくとも１つの読み出し側プロセッサコアと、
前記読み出し側プロセッサコアがアクセスする前記メモリの読み出し用アドレスが前記書き出し用アドレスと異なるアドレスとなり、且つ、前記第１データ列の複数のデータのうち前記第２データ列として読み出される対象となる対象データが前記読み出し用アドレスに記憶されたときに所定の順番に並ぶように前記書き出し用アドレスと前記読み出し用アドレスとを対応づける対応テーブルを用いて、前記書き出し用アドレスに書き込まれている前記各対象データを、対応する前記読み出し用アドレスへ複製するデータ複製部と、
を備え、
前記読み出し側プロセッサコアは、前記読み出し用アドレスに記憶されている各対象データを前記第２データ列として読み出す、
ことを要旨とする。
【０００８】
この本発明の情報処理装置では、読み出し側プロセッサコアがアクセスするメモリの読み出し用アドレスが書き出し用アドレスと異なるアドレスとなり、且つ、第１データ列の複数のデータのうち第２データ列として読み出される対象となる対象データが読み出し用アドレスに記憶されたときに所定の順番に並ぶように書き出し用アドレスと読み出し用アドレスとを対応づける対応テーブルを用いて、書き出し用アドレスに書き込まれている各対象データを、対応する読み出し用アドレスへ複製する。読み出し側プロセッサコアは、読み出し用アドレスに記憶されている各対象データを第２データ列として読み出す。各対象データは所定の順番に並んでいるから、メモリのバラバラなアドレスに配置されているデータを読み出すときに比して、高速に読み出すことができる。したがって、プロセッサコアがメモリからデータを読み出す際のアクセス時間の増加を抑制できる。「所定の順番」としては、読み出し用プロセッサが第２データ列を用いた処理を実行する際に第２データ列のデータを用いる順番などを挙げることができる。
【０００９】
こうした本発明の情報処理装置において、前記対応テーブルでは、前記読み出し用アドレスは、所定のアドレス間隔をもって前記所定の順番に並ぶように、前記書き出し用アドレスと対応づけられていてもよい。
【００１０】
また、本発明の情報処理装置において、前記対応テーブルでは、前記第１データ列の各データに対して前記書き出し側プロセッサコアが前記メモリへ書き出す順番に所定番地から始まる第１仮アドレスを設定し、前記第１仮アドレスに第１オフセットアドレスを加えたものを前記書き出し用アドレスとし、前記対象データに対して前記読み出し側プロセッサコアが前記メモリから読み出す順番に前記所定番地から始まる第２仮アドレスを指定し、前記第２仮アドレスに前記第１オフセットアドレスと異なる第２オフセットアドレスを加えたものを前記読み出し用アドレスとししても。こうすれば、読み出し用アドレスを、書き出し用アドレスと異なるアドレスとし、且つ、対象データが読み出し用アドレスに記憶されたときに所定の順番に並ぶように書き出し用アドレスと読み出し用アドレスとを対応づけることができる。
【００１１】
さらに、本発明の情報処理装置において、前記読み出し側プロセッサコアは、同一の処理において前記第２データ列を前記メモリから複数回読み出し、前記対応テーブルは、前記読み出し用アドレスが前記書き出し用アドレスと異なるアドレスとなり、且つ、前記対象データが前記読み出し用アドレスに記憶されたときに前記第２データ列が前記読み出し側プロセッサコアにより複数回読み出される順番に並ぶように前記書き出し用アドレスと前記読み出し用アドレスとを対応づけていてもよい。こうすれば、読み出し側プロセッサコアが同一の処理において第２データ列をメモリから複数回読み出す際のアクセス時間の増加を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施例としての情報処理装置２０の構成の概略を示す構成図である。
【図２】対応テーブルＴの一例とその作成方法の概略を説明するための説明図である。
【図３】データ複製部３４が、書き出し用アドレスＡｄｗに記憶されているデータＡ〜Ｄを対応する読み出し用アドレスＡｄｒ１，Ａｄｒ２へ複製している様子の一例を示す説明図である。
【図４】プロセッサコア２２，２４，２６の間でデータが授受されているときの各アドレスに記憶されているデータの時間変化の様子の一例をタイミングチャートである。
【図５】変形例の情報処理装置１２０の構成の概略を示す構成図である。
【図６】変形例の情報処理装置１２０においてプロセッサコア２２，２４，２６の間でのデータの授受の様子の一例を示す説明図である。
【発明を実施するための形態】
【００１３】
次に、本発明を実施するための形態を実施例を用いて説明する。
【実施例】
【００１４】
図１は、本発明の一実施例としての情報処理装置２０の構成の概略を示す構成図である。情報処理装置２０は、ＳｏＣ（System-on-a-chip）として構成されており、プロセッサコア２２，２４，２６と、ＦＰＧＡ（field-programmable gate array）３０と、外部メモリ３６と、周辺装置３８と、が同一チップ上に搭載されている。ここで、周辺装置３８としては、補助記憶装置や入出力装置などを挙げることができる。
【００１５】
プロセッサコア２２，２４，２６は、中央処理演算装置（ＣＰＵ）として機能し、組み込みシステムのソフトウエアを実行する。プロセッサコア２２，２４，２６は、図示しないバスを介して、予め定められたビット幅Ｂｗ（例えば、３２ｂｉｔ，６４ｂｉｔ，１２８ｂｉｔなど）のデータ列をＦＰＧＡ３０や外部メモリ３６とやりとりしたり、周辺装置３８と各種処理要求や情報をやりとりしている。
【００１６】
ＦＰＧＡ３０は、図示しない外部記憶メディアからロードされるビットストリームデータにより、メモリ部３２と、データ複製部３４と、を備えるように構成されている。
【００１７】
メモリ部３２は、プロセッサコア２２，２４，２６からアクセスされ、プロセッサコア２２，２４，２６から書き出されたデータ列を記憶したり、記憶しているデータ列をプロセッサコア２２，２４，２６へ読み出す。
【００１８】
データ複製部３４は、メモリ部３２へデータ列を書き出すためにプロセッサコア２２，２４，２６により指定される書き出し用アドレスと、メモリ部３２からデータ列を読み出すためにプロセッサコア２２，２４，２６により指定される読み出し用アドレスとが対応づけられた対応テーブルＴに基づいて、メモリ部３２の書き出し用アドレスに記憶されているデータを対応する読み出し用アドレスへ複製する。対応テーブルＴについては、後述する。
【００１９】
外部メモリ３６は、各種データを一時的に記憶するランダムアクセスメモリとして構成されており、主記憶装置として機能する。外部メモリ３６は、図示しないバスを介してプロセッサコア２２，２４，２６やＦＰＧＡ３０からのデータや各種アプリケーションを記憶する。
【００２０】
こうして構成された情報処理装置２０では、プロセッサコア２２，２４，２６間のデータ列の授受は、ＦＰＧＡ３０を介して実行される。プロセッサコア２２，２４，２６は、授受されたデータ列を用いて各種処理を実行する。
【００２１】
ここで、対応テーブルＴについて説明する。図２は、対応テーブルＴの一例とその作成方法の概略を説明するための説明図である。実施例では、説明のため、プロセッサコア２２をデータを書き出す書き出し側プロセッサコアとし、プロセッサコア２４，２６をデータを読み出す読み出し側プロセッサコアとする。なお、実施例では、プロセッサコア２２を書き出し側プロセッサコアとし、プロセッサコア２４，２６と読み出し側プロセッサコアとしているが、プロセッサコア２２，２４，２６のうちのどれを書き出し側プロセッサコア，読み出し側プロセッサコアとするかについては適宜定めることができる。
【００２２】
また、説明のため、プロセッサコア２２は、処理１を実行し、その実行結果であるビット幅Ｂｗの書き出しデータ列ＤｓｗをＦＰＧＡ３０に書き出す。書き出しデータ列Ｄｓｗには、プロセッサコア２４，２６で読み出す対象となるデータＡ〜Ｄが含まれる。プロセッサコア２４は、処理２を実行し、処理２を実行する際に、ビット幅Ｂｗの読み出しデータ列Ｄｓｒ１を読み出すものとする。処理２では、書き出しデータ列Ｄｓｗの各データのうちデータＤ，Ａをこの順で用いて各種演算を実行するものとする。プロセッサコア２６は、処理３を実行し、処理３を実行する際に、ビット幅Ｗの読み出しデータ列Ｄｓｒ２を読み出すものとする。処理３では、最初に、書き出しデータ列Ｄｓｗの各データのうちデータＢ，Ｃをこの順で用いて各種演算を実行し、次に、書き出しデータ列Ｄｓｗの各データのうちデータＢ，Ａをこの順で用いて各種演算を実行するものとする。
【００２３】
対応テーブルＴは、プロセッサコア２２，２４，２６間のデータ列の授受が開始される前に、例えば、情報処理装置２０をシステム起動した直後に、プロセッサコア２２，２４，２６のいずれかで実行されるコンパイラ等のツールにより作成されたものを用いている。ツールは、書き出し用アドレスＡｄｗと読み出し用アドレスＡｄｒ１，Ａｄｒ２は、書き出し用アドレスＡｄｗと読み出し用アドレスＡｄｒ１，Ａｄｒ２とがそれぞれ異なる物理アドレスとなり、且つ、各対象データが読み出し用アドレスＡｄｒ１に記憶されたときにプロセッサコア２４，２６が読み出す順番に並ぶように、下記の方法で、書き出し用アドレスＡｄｗと読み出し用アドレスＡｄｒ１，Ａｄｒ２とを対応づけて対応テーブルＴを作成する。
【００２４】
ツールは、最初に、処理１〜３のプログラムから、プロセッサコア２２がＦＰＧＡ３０のメモリ部３２へ書き出す書き出しデータ列Ｄｓｗと、プロセッサコア２４，２６がＦＰＧＡ３０のメモリ部３２から読み出す読み出しデータ列Ｄｓｒ１，Ｄｓｒ２を抽出する。そして、書き出しデータ列ＤｓｗのデータＡ〜Ｄに対して、書き出し用および読み出し用の仮アドレスを、処理１〜３で読み書きされる順番に指定する。実施例では、プロセッサコア２２は、データＡ〜Ｄをメモリ部３２へこの順で書き出すから、ツールは、図２に示すように、データＡ〜Ｄに対して、データＡ〜Ｄに０ｘ００００，０ｘ０００４，０ｘ０００６，０ｘ０００ｃの仮アドレスを指定する。プロセッサコア２４は、処理２でデータＤ，Ａをこの順で読み出して用いるから、ツールは、データＤ，Ａに０ｘ００００，０ｘ０００２の仮アドレスをこの順で指定する。プロセッサコア２６は、処理３でデータＢ，Ｃ，Ｂ，Ａをこの順で読み出して用いるから、ツールは、データＢ，Ｃ，Ｂ，Ａに０ｘ００００，０ｘ０００２，０ｘ０００４，０ｘ０００６の仮アドレスをこの順で指定する。
【００２５】
続いて、書き出しデータ列ＤｓｗのデータＡ〜Ｄの仮アドレスに、０ｘ００００のオフセットアドレスを加えたものを書き出し用アドレスＡｄｗに設定する。読み出しデータ列Ｄｓｒ１のデータＡ，Ｄの仮アドレスに、０ｘ１０００のオフセットアドレスを加えたものを読み出し用アドレスＡｄｒ１に設定する。読み出しデータ列Ｄｓｒ２のデータＢ，Ｃ，Ｂ，Ａの仮アドレスに、０ｘ２０００のオフセットアドレスを加えたものを読み出し用アドレスＡｄｒ２に設定する。こうして設定した書き出し用アドレスＡｄｗと読み出し用アドレスＡｄｒ１，Ａｄｒ２とをデータＡ〜Ｄ毎に対応づけて、対応テーブルＴを設定する。
【００２６】
こうして対応テーブルＴが作成されると、対応テーブルＴを用いて書き出し用アドレスＡｄｗに記憶されているデータＡ〜Ｄを対応する読み出し用アドレスＡｄｒ１，Ａｄｒ２へ複製するデータ複製部３４がＦＰＧＡ３０に形成されるように、ビットストリームデータが作成されて図示しない外部記憶メディアに記憶される。そして、情報処理装置２０を起動したときに、ビットストリームデータがＦＰＧＡ３０にロードされることにより、ＦＰＧＡ３０にデータ複製部３４が形成される。
【００２７】
図３は、データ複製部３４が、書き出し用アドレスＡｄｗに記憶されているデータＡ〜Ｄを対応する読み出し用アドレスＡｄｒ１，Ａｄｒ２へ複製している様子の一例を示す説明図である。図４は、プロセッサコア２２，２４，２６の間でデータが授受されているときの各アドレスに記憶されているデータの時間変化の様子の一例をタイミングチャートである。プロセッサコア２２は、処理１を実行する毎に、メモリ部３２の書き出し用アドレスＡｄｗ（０ｘ００００，０ｘ０００４，０ｘ０００６，０ｘ０００ｃ）にデータＡ〜Ｄを書き出す。
【００２８】
データ複製部３４は、メモリ部３２の書き出し用アドレスＡｄｗ（０ｘ００００，０ｘ０００４，０ｘ０００６）にデータＡ〜Ｃ（例えば、値ａ２，ｂ２，ｃ２）が書き出されると、データＡを対応する読み出し用アドレスＡｄｒ２（０ｘ２００６）へ複製し、データＢを対応する読み出し用アドレスＡｄｒ２（０ｘ２０００，０ｘ２００２）へ複製し、データＣを対応する読み出し用アドレスＡｄｒ２（０ｘ２００２）へ複製する。これにより、読み出し用アドレスＡｄｒ２（０ｘ２０００，０ｘ２００２，０ｘ２００４，０ｘ２００６）には、アドレスが低いほうから順に、データＢ，Ｃ，Ｂ，Ａ（値ｂ２，ｃ２，ｂ２，ａ２）が記憶される。
【００２９】
データ複製部３４は、メモリ部３２の書き出し用アドレスＡｄｗ（０ｘ００００，０ｘ０００８）にデータＡ，Ｄ（値ａ２，ｄ２）が書き出されると、データＡを対応する読み出し用アドレスＡｄｒ１（０ｘ１００２）へ複製し、データＤを対応する読み出し用アドレスＡｄｒ２（０ｘ１０００）へ複製する。これにより、読み出し用アドレスＡｄｒ２（０ｘ１０００，０ｘ１００２）には、アドレスの低いほうから順に、データＤ，Ａ（値ｄ２，ａ２）が記憶される。
【００３０】
こうして各データが読み出し用アドレスＡｄｒ１，Ａｄｒ２へ複製されると、プロセッサコア２４は、読み出し用アドレスＡｄｒ１にアクセスして、読み出し用アドレスＡｄｒ１（０ｘ１０００，０ｘ１００２）に記憶されているデータを読み出しデータ列Ｄｓｒ１として読み出す。プロセッサコア２６は、読み出し用アドレスＡｄｒ２にアクセスして、最初に、読み出し用アドレスＡｄｒ２（０ｘ２０００，０ｘ２００２）に記憶されているデータを読み出しデータ列Ｄｓｒ２として読み出し、次に、読み出し用アドレスＡｄｒ２（０ｘ２００４，０ｘ２００６）に記憶されているデータを次の読み出しデータ列Ｄｓｒ２として読み出す。読み出しデータ列Ｄｓｒ１，Ｄｓｒ２は、処理２，３で読み出される順番に並んでいるから、プロセッサコア２４，２６がメモリ部３２のバラバラなアドレスに配置されているデータにアクセスして読み出しデータ列Ｄｓｒ１，Ｄｓｒ２から読み出すときに比して、高速に読み出すことができる。また、書き出し用アドレスＡｄｗと読み出し用アドレスＡｄｒ１，Ａｄｒ２が異なる物理アドレスであることから、プロセッサコア２２は、データ複製部３４によるデータの複製が終了した後であれば、プロセッサコア２４，２６でのデータの読み出し処理の終了を待たずに次の書き出しを実行することができる。したがって、アクセス時間の増加を抑制できる。
【００３１】
以上説明した実施例の情報処理装置２０によれば、読み出し用データ列Ｄｓｒ１として読み出される対象となる各対象データに対して、書き出し用アドレスＡｄｗと読み出し用アドレスＡｄｒ１，Ａｄｒ２は、書き出し用アドレスＡｄｗと読み出し用アドレスＡｄｒ１，Ａｄｒ２とがそれぞれ異なる物理アドレスとなり、且つ、各対象データが読み出し用アドレスＡｄｒ１に記憶されたときにプロセッサコア２４，２６が読み出す順番に並ぶように書き出し用アドレスＡｄｗと読み出し用アドレスＡｄｒ１，Ａｄｒ２とを対応づける対応テーブルＴを用いて、書き出し用アドレスＡｄｗに書き込まれている対象データを、対応する読み出し用アドレスＡｄｒ１，Ａｄｒ２へ複製し、プロセッサコア２４，２６は、読み出し用アドレスＡｄｒ１，Ａｄｒ２に記憶されているデータを読み出しデータ列Ｄｓｒ１，Ｄｓｒ２として読み出すことにより、プロセッサコア２４，２６がメモリからデータを読み出す際のアクセス時間の増加を抑制することができる。
【００３２】
実施例の情報処理装置２０では、対応テーブルＴでは、書き出しデータ列Ｄｓｗ，読み出しデータ列Ｄｓｒ１，Ｄｓｒ２の各データの仮アドレスに、それぞれ異なるオフセットアドレスを加えたものを書き出し用アドレスＡｄｗ，読み出し用アドレスＡｄｒ１．Ａｄｒ２に設定している。しかしながら、書き出し用アドレスＡｄｗと読み出し用アドレスＡｄｒ１，Ａｄｒ２は、各対象データに対して、書き出し用アドレスＡｄｗ，読み出し用アドレスＡｄｒ１．Ａｄｒ２がそれぞれ異なる物理アドレスとなり、書き出しデータ列Ｄｓｗ，読み出しデータ列Ｄｓｒ１，Ｄｓｒ２の各データが書き出される順番または読み出される順番にアドレスの低いほうから順に並んでいればよいから、書き出しデータ列Ｄｓｗ，読み出しデータ列Ｄｓｒ１，Ｄｓｒ２の各データの仮アドレスに、それぞれ異なるオフセットアドレスを加えることとは異なる手法で、書き出し用アドレスＡｄｗ，読み出し用アドレスＡｄｒ１．Ａｄｒ２を設定しても構わない。
【００３３】
実施例の情報処理装置２０で、プロセッサコア２２，２４，２６の間でのデータの授受を、ＦＰＧＡ３０を介して行っている。しかしながら、図５の変形例の情報処理装置１２０に例示するように、ＦＰＧＡ３０に代えて、低速メモリ１３０，ＤＭＡＣ（Direct Memory Access Controller）１３２を搭載し、低速メモリ１３０，ＤＭＡＣ１３２，キャッシュメモリ１４２，１４４，１４６を介してデータの授受を行なってもよい。この場合、低速メモリ１３０は、プロセッサコア２２，２４，２６からアクセスされ、プロセッサコア２２，２４，２６から書き出されたデータ列を記憶したり、記憶しているデータ列をキャッシュメモリ１４２，１４４，１４６へ読み出す。ＤＭＡＣ１３２は、ＦＰＧＡ３０のデータ複製部３４と同様に、上述の対応テーブルＴに基づいて、メモリ部３２の書き出し用アドレスに記憶されているデータを対応する読み出し用アドレスへ複製する。キャッシュメモリ１４２，１４４，１４６は、読み出し用アドレスへ複製されたデータを読み出し、一時的に記憶する。プロセッサコア２２，２４，２６は、キャッシュメモリ１４２，１４４，１４６からデータを読み出す。
【００３４】
図６は、変形例の情報処理装置１２０においてプロセッサコア２２，２４，２６の間でのデータの授受の様子の一例を示す説明図である。ここで、説明のため、プロセッサコア２２は、情報処理装置２０と同様に、データＡ〜Ｄを有する書き出しデータ列ＤｓｗをＦＰＧＡ３０のメモリ部３２に書き出し、プロセッサコア２４は、書き出しデータ列ＤｓｗのデータＡ〜ＤのうちデータＤ，Ａを読み出しデータ列Ｄｓｒ１としてこの順に読み出し、プロセッサコア２６は、書き出しデータ列ＤｓｗのデータＡ〜ＤのうちデータＢ，Ｃ，Ｂ，Ａを読み出しデータ列Ｄｓｒ２としてこの順に読み出すものとする。
【００３５】
情報処理装置１２０において、プロセッサコア２２は、低速メモリ１３０の書き出し用アドレスＡｄｗへデータを書き出す。ＤＭＡＣ１３２は、低速メモリ１３０の書き出し用アドレスＡｄｗにアクセスし、書き出しデータ列ＤｓｗのデータＡ〜ＤのうちデータＤ，Ａを読み出し用アドレスＡｄｒ１へこの順で並ぶように複製し、書き出しデータ列ＤｓｗのデータＡ〜ＤのうちデータＢ，Ｃ，Ｂ，Ａを読み出しデータ列Ｄｓｒ２へこの順で並ぶように複製する。キャッシュメモリ１４４は、低速メモリ１３０の読み出し用アドレスＡｄｒ１へアクセスして、読み出し用アドレスＡｄｒ１へ複製されたデータＤ，Ａを読み出す。キャッシュメモリ１４６は、低速メモリ１３０の読み出し用アドレスＡｄｒ２へアクセスして、読み出し用アドレスＡｄｒ２へ複製されたデータＢ，Ｃ，Ｂ，Ａを読み出す。読み出し側のプロセッサコア２４は、キャッシュメモリ１４４からデータＤ，Ａを読み出しデータ列Ｄｓｒ１として読み出す。読み出し側のプロセッサコア２６は、キャッシュメモリ１４６からデータＢ，Ｃ，Ｂ，Ａを読み出しデータ列Ｄｓｒ２として読み出す。この場合、読み出し側のプロセッサコア２４，２６で読み出すデータは、データ列Ｄｓｒ１，Ｄｓｒ２のように読み出す順番に並んでいる。そのため、データがバラバラに並んでいる場合に比して、ミスキャッシュが抑制される。したがって、ミスキャッシュに起因する読み出し側のプロセッサコア２４，２６の演算の遅延のバラツキを抑制することができる。
【００３６】
実施例の情報処理装置２０では、ＦＰＧＡ３０のデータ複製部３４が対応テーブルＴを用いて書き出し用アドレスＡｄｗに書き込まれている対象データを対応する読み出し用アドレスＡｄｒ１，Ａｄｒ２へ複製している。しかしながら、プロセッサコア２２，２４，２６の他に少なくとも１つのプロセッサコアを備えているものとし、プロセッサコア２２，２４，２６とは異なるプロセッサコアで対応テーブルＴを用いて書き出し用アドレスＡｄｗに書き込まれている対象データを対応する読み出し用アドレスＡｄｒ１，Ａｄｒ２へ複製してもよい。
【００３７】
実施例の情報処理装置２０では、プロセッサコア２２，２４，２６のうちの１つを書き出し側のプロセッサコアとし残余を読み出し側のプロセッサコアとしているが、プロセッサコア２２，２４，２６のうちの２つを書き出し側のプロセッサコアとし残余を読み出し側のプロセッサコアとしてもよい。
【００３８】
実施例の情報処理装置２０では、３つのプロセッサコアを備えているが、４つ以上のプロセッサコアを備えていてもよい。この場合、４つ以上のプロセッサコアのうち少なくとも１つを書き出し側のプロセッサコアとし、残余のプロセッサコアのうち少なくとも１つを読み出し側のプロセッサコアとすればよい。
【００３９】
実施例では、本発明をＳｏＣとして構成された情報処理装置２０に適用する場合を例示しているが、プロセッサコア２２，２４，２６やＦＰＧＡ３０，外部メモリ３６，周辺装置３８のそれぞれが異なるパッケージへ収納されてマザーボード上に搭載された情報処理装置の形態としても構わない。
【００４０】
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、メモリ部３２が「メモリ」に相当し、プロセッサコア２２が「書き出し側プロセッサコア」に相当し、プロセッサコア２４が「読み出し側プロセッサコア」に相当し、データ複製部３４が「データ複製部」に相当する、
【００４１】
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
【００４２】
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【産業上の利用可能性】
【００４３】
本発明は、情報処理装置の製造産業などに利用可能である。
【符号の説明】
【００４４】
２０，１２０  情報処理装置、２２，２４  プロセッサコア、２６  プロセッサコア、３０  ＦＰＧＡ、３２  メモリ部、３４  データ複製部、３６  外部メモリ、３８  周辺装置、１２０  情報処理装置、１３０  低速メモリ、１３２  ＤＭＡＣ、１４２，１４４，１４６  キャッシュメモリ。
【図１】
2020057251.tif 000003
【図２】
2020057251.tif 000004
【図３】
2020057251.tif 000005
【図４】
2020057251.tif 000006
【図５】
2020057251.tif 000007
【図６】
2020057251.tif 000008