(57)【要約】【課題】複数のポートから複数のメモリに対してより自由にアクセスすることを可能とするメモリアクセス制御装置とこれを有する演算システムを提供する。【解決手段】読み出しアドレス発生部３５−０〜３５−３において発生するアドレスＡＲ０〜ＡＲ３および外部バスＢｓｙｓより入力されるアドレスＡｓｙｓの中から、構成情報記憶部３４より供給される構成情報に応じて、ローカルメモリ３１−０〜３１−３に供給するアドレスがそれぞれ選択される。アドレスＡＲ０〜ＡＲ３およびＡｓｙｓは、ポートＰＲ−０〜ＰＲ−３およびＰｓｙｓにそれぞれ対応し、その下位ビット（ＡＲＭ０〜ＡＲＭ３、ＡＭｓｙｓ）はローカルメモリ内部の記憶領域を、上位ビット（ＡＲＭ０〜ＡＲＭ３、ＡＭｓｙｓ）はアクセス対象のローカルメモリを指示する。このアドレスの上位ビットに応じて、複数のローカルメモリの読み出しデータから、各ポートへ出力する読み出しデータが選択される。【選択図】      図２
2004348416.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリに対する複数のポートからのアクセスを制御するメモリアクセス制御装置であって、
アクセス対象のメモリとその記憶領域を指示するアドレスとして、上記複数のポートに対応して入力される複数のアドレスの中から、上記メモリと上記ポートとを関連付ける第１の情報に応じて、上記メモリに供給するアドレスをそれぞれ選択するアドレス選択部と、
上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータを、出力先のポートに対応して入力される上記アドレスに応じてそれぞれ選択する読み出しデータ選択部と、
を有するメモリアクセス制御装置。
【請求項２】
上記ポートより入力される複数の書き込みデータの中から、上記メモリに供給する書き込みデータを上記第１の情報に応じてそれぞれ選択する書き込みデータ選択部と、
上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する書き込み制御信号生成部と、を有する、
請求項１に記載のメモリアクセス制御装置。
【請求項３】
上記アドレス選択部は、
読み出しデータが出力される複数のポートに対応して入力される複数の読み出しアドレスの中から、上記第１の情報に応じて、上記メモリに供給する読み出しアドレスを選択する読み出しアドレス選択部と、
書き込みデータを入力する複数のポートに対応して入力される複数の書き込みアドレスの中から、上記第１の情報に応じて、上記メモリに供給する書き込みアドレスを選択する書き込みアドレス選択部と、を含む、
請求項２に記載のメモリアクセス制御装置。
【請求項４】
入力される第２の情報において、他のメモリが読み出し対象となるアドレスを自らが読み出し対象となるアドレスとして使用可能とすべきメモリが指定された場合、
上記読み出しデータ選択部は、上記第２の情報において指定されるメモリの読み出しデータを、当該指定されるメモリに対して予め決められた特定のポートに出力する、
請求項１に記載のメモリアクセス制御装置。
【請求項５】
入力される第２の情報において、他のメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能とすべきメモリが指定された場合、
上記書き込みデータ選択部は、上記第２の情報において指定されるメモリに対して予め決められた特定の書き込みポートから入力される書き込みデータを、当該指定されるメモリに供給し、
上記書き込み制御信号生成部は、当該指定されるメモリにおけるデータ書き込みを許可する書き込み制御信号を生成する、
請求項２に記載のメモリアクセス制御装置。
【請求項６】
上記第２の情報において、他のメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能とすべきメモリが指定されるとともに、上記指定されるメモリに書き込みデータを入力すべきポートが指定された場合、
上記アドレス選択部は、上記第２の情報において指定されるポートに対応して入力されるアドレスを選択して、上記第２の情報において指定されるメモリに供給し、
上記書き込みデータ選択部は、当該指定されるポートから入力される書き込みデータを選択して、当該指定されるメモリに供給する、
請求項５に記載のメモリアクセス制御装置。
【請求項７】
複数のポートを介してアクセスを受ける複数のメモリと、
供給される構成情報に基づいて再構成する演算実行部であって、所定のポートから出力される上記メモリの読み出しデータに所定の演算を行う演算実行部と、
上記構成情報に基づいて、上記複数のポートからの上記複数のメモリに対するアクセスを制御するメモリアクセス制御装置と、を有し、
上記メモリアクセス制御装置は、
アクセス対象のメモリとその記憶領域を指示するアドレスとして、上記複数のポートに対応して入力される複数のアドレスの中から、上記メモリと上記ポートとを関連付ける上記構成情報の第１の情報に応じて、上記メモリに供給するアドレスをそれぞれ選択するアドレス選択部と、
上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータを、出力先のポートに対応して入力される上記アドレスに応じてそれぞれ選択する読み出しデータ選択部と、を含む、
演算システム。
【請求項８】
上記演算実行部は、その演算結果を、上記メモリの書き込みデータとして所定のポートに入力し、
上記メモリアクセス制御装置は、
上記ポートより入力される複数の書き込みデータの中から、上記メモリに供給する書き込みデータを上記第１の情報に応じてそれぞれ選択する書き込みデータ選択部と、
上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する書き込み制御信号生成部と、を含む、
請求項７に記載の演算システム。
【請求項９】
上記構成情報に基づいて、上記演算実行部が読み出し対象とするメモリとその記憶領域を指示する読み出しアドレスを発生する読み出しアドレス発生部と、
上記構成情報に基づいて、上記演算実行部が書き込み対象とするメモリとその記憶領域を指示する書き込みアドレスを発生する書き込みアドレス発生部と、を有し、
上記アドレス選択部は、
読み出しデータが出力される複数のポートに対応して入力される複数の読み出しアドレスであって、上記読み出しアドレス発生部において発生する読み出しアドレスを含む複数の読み出しアドレスの中から、上記第１の情報に応じて、上記メモリに供給する読み出しアドレスを選択する読み出しアドレス選択部と、
書き込みデータが入力される複数のポートに対応して入力される複数の書き込みアドレスであって、上記書き込みアドレス発生部において発生する書き込みアドレスを含む複数の書き込みアドレスの中から、上記第１の情報に応じて、上記メモリに供給する書き込みアドレスを選択する書き込みアドレス選択部と、を含む、
請求項８に記載の演算システム。
【請求項１０】
上記構成情報の第２の情報において、他のメモリが読み出し対象となるアドレスを自らが読み出し対象となるアドレスとして使用可能とすべきメモリが指定された場合、
上記読み出しデータ選択部は、上記第２の情報において指定されるメモリの読み出しデータを、当該指定されるメモリに対して予め決められた特定の読み出しポートに出力する、
請求項７に記載の演算システム。
【請求項１１】
上記構成情報の第２の情報において、他のメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能とすべきメモリが指定された場合、
上記書き込みデータ選択部は、上記第２の情報において指定されるメモリに対して予め決められた特定の書き込みポートから入力される書き込みデータを、当該指定されるメモリに供給し、
上記書き込み制御信号生成部は、当該指定されるメモリにおけるデータ書き込みを許可する書き込み制御信号を生成する、
請求項８に記載の演算システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリに対するアクセスを制御するメモリアクセス制御装置に係り、特に、メモリに対する複数のポートからのアクセスを制御するメモリアクセス制御装置およびこれを有する演算システムに関するものである。
【０００２】
【従来の技術】
たとえば特許文献１に記載される演算システムのように、回路の構成をその動作中に変更することが可能な動的再構成可能ハードウェアと称される装置が知られている。
【０００３】
動的再構成可能ハードウェアは、一般に、ＣＰＵ、システムメモリなどとともにシステムバスに接続され、ＣＰＵと協調して演算処理を行う。
演算処理の過程において、動的再構成可能ハードウェアの特定のレジスタに構成情報と称される回路構成を定義するためのデータが書き込まれると、その回路は、書き込まれた構成情報に基づいて動的に再構成する。
【０００４】
また、動的再構成可能ハードウェアの内部には、一般に、演算対象のデータを格納するためのローカルメモリが設けられている。動的再構成可能ハードウェアにおいて演算が行われる場合、その演算対象のデータは、システムメモリからシステムバスを介してローカルメモリに一旦転送され、その中で処理された後に、再びシステムメモリに書き戻されて、ＣＰＵ等に利用される。
【０００５】
図１１は、一般的な動的再構成可能ハードウェアの構成の一例を示すブロック図である。
図１１に示す動的再構成可能ハードウェアは、書き込みアドレス発生器１−０〜１−３と、読み出しアドレス発生器２−０〜２−３と、ローカルメモリ３−０〜３−３と、演算器４−０〜４−３と、構成情報レジスタ５とを有する。
【０００６】
書き込みアドレス発生器１−ｎ（ｎは、０から３までの整数を示す）は、演算器４−ｎにおける処理結果のデータをローカルメモリ３−ｎに書き込む場合における、書き込み先のアドレスを発生する。
【０００７】
読み出しアドレス発生器２−ｎは、ローカルメモリ３−ｎに格納されるデータを読み出して演算器４−ｎに出力する場合における、読み出し先のアドレスを発生する。
【０００８】
なお、書き込みアドレス発生器１−ｎおよび読み出しアドレス発生器２−ｎにおけるアドレスの発生動作は、構成情報レジスタ５より供給される構成情報に基づいて決定される。
【０００９】
ローカルメモリ３−ｎは、演算器４−ｎの処理対象となるデータや、その処理結果のデータを格納する。
【００１０】
演算器４−ｎは、ローカルメモリ３−ｎに格納されるデータに所定の演算を行い、演算結果をローカルメモリ３−ｎに再び格納する。演算器４−ｎは、構成情報レジスタ５より供給される構成情報に基づいて再構成し、その再構成の結果として、演算動作を変更する。
【００１１】
構成情報レジスタ５は、システムバスを介して書き込まれる構成情報を記憶し、記憶した構成情報を書き込みアドレス発生器１−ｎ、読み出しアドレス発生器２−ｎ、演算器４−ｎに供給する。
【００１２】
図１１に示す動的再構成可能ハードウェアによると、書き込みアドレス発生器１−ｎおよび読み出しアドレス発生器２−ｎにおけるアドレスの発生動作、ならびに、演算器４−ｎにおける演算動作は、システムバスを介して構成情報レジスタ５に書き込まれる構成情報に応じて、動的に変更可能である。
【００１３】
各演算器（４−０〜４−３）において演算が行われる場合、その演算対象となるデータは、演算器ごとに定められたローカルメモリ（３−０〜３−３）に、システムバスを介して転送される。ローカルメモリ（３−０〜３−３）に転送されたデータは、対応する演算器（４−０〜４−３）によって読み出され、構成情報に応じた所定の演算を施される。演算結果のデータは、対応するローカルメモリ（３−０〜３−３）に書き込まれ、システムバスを介してシステムメモリに書き戻される。
【００１４】
【特許文献１】
特開２００２−２１５３８２
【００１５】
【発明が解決しようとする課題】
ところで、図１１に示す動的再構成可能ハードウェアでは、ローカルメモリ、アドレス発生器、演算器がそれぞれ１対１に対応している。たとえば、書き込みアドレス発生器１−０および読み出しアドレス発生器２−０において発生するアドレスは、メモリ３−０にアクセスするためのアドレスに限定されており、他のメモリへのアクセスには利用することができない。同様に、メモリ３−０から読み出されるデータの供給先は演算器４−０に限定され、演算器４−０から出力される演算結果の格納先はメモリ３−０に限定される。
【００１６】
このように、複数の演算器と複数のローカルメモリを備える従来の動的再構成可能ハードウェアでは、ローカルメモリに対する演算器のアクセスに制限があることから、種々の不利益が生じる。
たとえば、演算器４−０の演算結果を演算器４−１で利用するといったような、演算器間でのデータの受け渡しを伴う演算動作を動的再構成可能ハードウェア内部で実行することができない。
さらに、演算器に対する記憶領域の割り当てが限定されていることから、たとえば、演算動作が一部の演算器において停止している場合において、停止中の演算器に対応するローカルメモリが全く利用されず無駄になってしまう。
【００１７】
また、図１１に示す動的再構成可能ハードウェアでは、演算器がローカルメモリをアクセスしている間、動的再構成可能ハードウェアの演算対象となるデータをシステムバスからローカルメモリに書き込む処理や、演算結果をローカルメモリから読み出してシステムバスに出力する処理を実行することができない。
したがって、システムバスからローカルメモリにアクセスするためには、図１２に示すように、演算器が停止した状態において、ローカルメモリに対するアドレス供給元を内部のアドレス発生器から外部のアドレスバスＢＡ＿ｅｘに切り換えるとともに、ローカルメモリの入出力ポートを内部の演算器から外部のデータバスＢＤ＿ｅｘに切り換える必要がある。
このように、外部バスから動的再構成可能ハードウェア内部のローカルメモリにアクセスするためには演算器を停止させなくてはならないので、演算の停止による処理の遅延時間が生じる不利益がある。
【００１８】
そこで、たとえば図１３に示すように、複数の独立したローカルメモリを、１つのマルチポート・メモリに置き換えることによって、上述した不利益を解決する方法も考えられる。マルチポート・メモリを用いることにより、複数の入出力ポートからメモリ全体のアドレス空間に同時にアクセスすることが可能になるため、演算器間でのデータの受け渡しを伴う演算動作が可能になるとともに、演算器に対する記憶領域の割り当ての自由度を高めることができる。
しかしながら、一般にマルチポート・メモリは半導体集積回路をとして実現した場合に面積が非常に大きくなるため、これを用いた場合、コストの増加を招く不利益がある。
【００１９】
本発明はかかる事情に鑑みてなされたものであり、その目的は、簡易な構成でありながら、複数のポートから複数のメモリに対してより自由にアクセスすることを可能とするメモリアクセス制御装置を提供することにある。
また、本発明の他の目的は、そのようなメモリアクセス制御装置を備えることにより、簡易な構成でありながら、再構成可能な複数の演算器から複数のメモリに対してより自由にアクセスすることを可能とする演算システムを提供することにある。
【００２０】
【課題を解決するための手段】
上記の目的を達成するため、本発明の第１の観点は、複数のメモリに対する複数のポートからのアクセスを制御するメモリアクセス制御装置として、アドレス選択部と、読み出しデータ選択部とを有する。
上記アドレス選択部は、アクセス対象のメモリとその記憶領域を指示するアドレスとして、上記複数のポートに対応して入力される複数のアドレスの中から、上記メモリと上記ポートとを関連付ける第１の情報に応じて、上記メモリに供給するアドレスをそれぞれ選択する。
上記読み出しデータ選択部は、上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータを、出力先のポートに対応して入力される上記アドレスに応じてそれぞれ選択する。
【００２１】
本発明の第１の観点によると、上記ポートからアクセスの対象となるメモリは、上記ポートに対応して入力されるアドレスにおいて任意に指示される。また、上記メモリと上記ポートとの関連付けは、上記第１の情報において任意に設定される。
上記アドレス選択部では、上記複数のポートに対応して入力される複数のアドレスの中から、上記第１の情報における上記メモリと上記ポートとの関連付けに応じて、上記メモリに供給するアドレスがそれぞれ選択される。これにより、上記メモリには、たとえば、上記第１の情報において関連付けが設定されるポートに対応して入力されるアドレスが供給される。
また、上記読み出しデータ選択部では、上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータの選択が行われる。読み出しデータの選択は、その出力先のポートに対応して入力されるアドレスに応じて行われる。たとえば、そのアドレスにおいてアクセス対象として指示されるメモリからの読み出しデータが選択される。
【００２２】
また、本発明の第１の観点は、書き込みデータ選択部と、書き込み制御信号生成部とを有しても良い。
上記複数の書き込みデータ選択部は、上記ポートより入力される複数の書き込みデータの中から、上記メモリに供給する書き込みデータを第１の情報に応じてそれぞれ選択する。
上記書き込み制御信号生成部は、上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する。
【００２３】
上記の構成によると、上記書き込みデータ選択部では、上記メモリに供給する書き込みデータとして、上記複数のポートより入力される書き込みデータの中から、上記第１の情報に応じたデータがそれぞれ選択される。したがって、メモリに供給する書き込みデータの入力ポートは、上記第１の情報における上記メモリと上記ポートとの関連付けに応じて任意に設定される。
また、上記書き込み制御信号生成部では、上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号が生成される。したがって、上記メモリにおいてデータ書き込みを許可するか否かは、当該メモリに供給されるアドレスにおいて、当該メモリがアクセス対象として指示されているか否かに応じて決定される。
【００２４】
また、入力される第２の情報において、他のメモリが読み出し対象となるアドレスを自らが読み出し対象となるアドレスとして使用可能とすべきメモリが指定された場合、上記読み出しデータ選択部は、次のように動作しても良い。
すなわち、上記読み出しデータ選択部は、上記第２の情報において指定されるメモリの読み出しデータを、当該指定されるメモリに対して予め決められた特定のポートに出力する。
【００２５】
上記の動作によると、上記読み出しデータ選択部では、上記第２の情報において指定されるメモリの読み出しデータが、当該指定されるメモリに対して予め決められた特定の読み出しポートに出力される。したがって、当該指定されるメモリにアドレスが供給される場合、その供給アドレスは、他のメモリをアクセス対象としたアドレスであっても、当該指定されるメモリをアクセス対象としたアドレスとして使用され、アドレスに応じたデータが当該指定されるメモリから読み出される。そして、その読み出しデータは、当該指定されるメモリに対して予め決められた特定の読み出しポートに出力される。
【００２６】
また、入力される第２の情報において、他のメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能とすべきメモリが指定された場合、上記書き込みデータ選択部および上記書き込み制御信号生成部は、次のように動作しても良い。
すなわち、上記書き込みデータ選択部は、上記第２の情報において指定されるメモリに対して予め決められた特定の書き込みポートから入力される書き込みデータを、当該指定されるメモリに供給する。
上記書き込み制御信号生成部は、当該指定されるメモリにおけるデータ書き込みを許可する書き込み制御信号を生成する。
【００２７】
上記の動作によると、上記書き込みデータ選択部では、上記第２の情報において指定されるメモリに供給する書き込みデータとして、当該指定されるメモリに対して予め決められた特定の書き込みポートから入力される書き込みデータが選択される。したがって、当該指定されるメモリには、その書き込みデータとして、当該指定されるメモリに対して予め決められた特定の書き込みポートより入力されるデータが供給される。
また、上記書き込み制御信号生成部では、当該指定されるメモリにおけるデータ書き込みを許可する書き込み制御信号が生成される。したがって、当該指定されるメモリでは、その供給アドレスが他のメモリをアクセス対象としたアドレスであっても、書き込み制御信号によってデータ書き込みが許可される。
【００２８】
さらに、他のメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能とすべきメモリが指定されるとともに、上記指定されるメモリに書き込みデータを入力すべきポートが指定された場合、上記アドレス選択部および上記書き込みデータ選択部は、次のように動作しても良い。
すなわち、上記アドレス選択部は、上記第２の情報において指定されるポートに対応して入力されるアドレスを選択して、上記第２の情報において指定されるメモリに供給する。
上記書き込みデータ選択部は、当該指定されるポートから入力される書き込みデータを選択して、当該指定されるメモリに供給する。
【００２９】
上記の動作によると、上記アドレス選択部では、当該指定されるメモリに供給する書き込みデータとして、上記第２の情報において指定されるポートに対応して入力されるアドレスが選択される。上記書き込みデータ選択部では、当該指定されるメモリに供給する書き込みデータとして、上記第２の情報において指定されるポートより入力されるデータが選択される。
たとえば、上記第２の情報において指定されるメモリが複数存在し、これらのメモリに書き込みデータを入力すべきポートとして共通のポートが指定されると、この共通のポートから入力される書き込みデータは、当該共通ポートに対応するアドレスの入力に応じて、当該指定される複数のメモリに同時に書き込まれる。
【００３０】
本発明の第２の観点は、演算システムとして、複数のポートを介してアクセスを受ける複数のメモリと、演算実行部と、メモリアクセス制御装置と、を有する。
上記演算実行部は、供給される構成情報に基づいて再構成する。また、所定のポートから出力される上記メモリの読み出しデータに所定の演算を行う。
上記メモリアクセス制御装置は、供給される構成情報に基づいて、上記複数のポートからの上記複数のメモリに対するアクセスを制御する。
また、上記メモリアクセス制御装置は、アドレス選択部と、読み出しデータ選択部とを含む。
上記アドレス選択部は、アクセス対象のメモリとその記憶領域を指示するアドレスとして、上記複数のポートに対応して入力される複数のアドレスの中から、上記メモリと上記ポートとを関連付ける上記構成情報の第１の情報に応じて、上記メモリに供給するアドレスをそれぞれ選択する。
上記読み出しデータ選択部は、上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータを、出力先のポートに対応して入力される上記アドレスに応じてそれぞれ選択する。
【００３１】
本発明の第２の観点によると、上記演算実行部では、上記構成情報に基づいて再構成が行われる。また、所定のポートから出力される上記メモリの読み出しデータに対して所定の演算が行われる。
この演算実行部のアクセス対象となるメモリは、上記複数のポートに対応して入力されるアドレスにおいて任意に指示される。また、上記メモリと上記ポートとの関連付けは、上記構成情報の第１の情報において任意に設定される。
上記アドレス選択部では、上記複数のポートに対応して入力される複数のアドレスの中から、上記第１の情報における上記メモリと上記ポートとの関連付けに応じて、上記メモリに供給するアドレスがそれぞれ選択される。これにより、上記メモリには、たとえば、上記第１の情報において関連付けが設定されるポートに対応して入力されるアドレスが供給される。
また、上記読み出しデータ選択部では、上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータの選択が行われる。読み出しデータの選択は、その出力先のポートに対応して入力されるアドレスに応じて行われる。たとえば、そのアドレスにおいてアクセス対象として指示されるメモリからの読み出しデータが選択される。
【００３２】
また、本発明の第２の観点において、上記演算実行部は、その演算結果を、上記複数のメモリの書き込みデータとして所定のポートに入力し、上記メモリアクセス制御装置は、書き込みデータ選択部と、書き込み制御信号生成部とを含んでも良い。
上記書き込みデータ選択部は、上記複数のポートより入力される書き込みデータの中から、上記メモリに供給する書き込みデータを上記第１の情報に応じてそれぞれ選択する。
上記書き込み制御信号生成部は、上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する。
【００３３】
上記の構成によると、上記書き込みデータ選択部では、上記メモリに供給する書き込みデータとして、上記複数のポートより入力される書き込みデータの中から、上記第１の情報に応じたデータがそれぞれ選択される。したがって、メモリに供給する書き込みデータの入力ポートは、上記第１の情報における上記メモリと上記ポートとの関連付けに応じて任意に設定される。
また、上記書き込み制御信号生成部では、上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号が生成される。したがって、メモリにおいてデータ書き込みを許可するか否かは、当該メモリに供給されるアドレスにおいて、当該メモリがアクセス対象として指示されているか否かに応じて決定される。
【００３４】
【発明の実施の形態】
図１は、本発明の実施形態に係る演算システムの構成の一例を示すブロック図である。
図１に示す演算システムは、処理部１０と、システムメモリ２０と、再構成可能ハードウェア３０とを有する。
【００３５】
処理部１０は、図示しない記憶部に格納されるプログラムに基づき、所定の演算処理を実行する。
その演算処理の過程において、たとえば、システムバスＢｓｙｓを介してシステムメモリ２０にアクセスし、その格納データに上記プログラムに応じた所定の演算を施す。また、システムバスＢｓｙｓを介して再構成可能ハードウェア３０にアクセスし、これに構成情報を供給してその内部状態を設定する処理や、システムメモリ２０から再構成可能ハードウェア３０へ演算対象データを供給する処理、再構成可能ハードウェア３０の演算結果をシステムメモリ２０へ書き戻す処理を実行する。
【００３６】
システムメモリ２０は、処理部１０や再構成可能ハードウェア３０に演算に使用されるデータやその演算結果を格納する。システムメモリ２０は、システムバスＢｓｙｓを介して処理部１０および再構成可能ハードウェア３０と接続されており、その格納データはシステムバスＢｓｙｓを介して転送される。
【００３７】
再構成可能ハードウェア３０は、ＣＰＵ１０より供給される構成情報に応じて、その内部回路を再構成する。たとえば、回路の動作中に供給される構成情報に応じて、内部回路を動的に再構成することができる。
また、再構成可能ハードウェア３０は、供給される構成情報に応じて、その内部に装備したローカルメモリに対するシステムバスＢｓｙｓからのアクセスを可能な状態に設定する。この状態において、処理部１０の制御によりシステムメモリ２０からシステムバスＢｓｙｓへデータが出力されると、これを内部のローカルメモリに一旦格納する。
再構成可能ハードウェア３０は、ローカルメモリに格納したデータに対して、構成情報により設定される回路構成に応じた所定の演算を施し、その演算結果をローカルメモリに書き戻す。ローカルメモリに格納された演算結果は、処理部１０からの読み出しアクセスに応じてシステムバスＢｓｙｓに出力され、システムメモリ２０に書き戻される。
【００３８】
図１の例において、再構成可能ハードウェア３０は、本発明における複数のメモリの一実施形態であるローカルメモリ３１−０〜３１−３と、ローカルメモリ・インターフェース部３２と、再構成部３３と、構成情報記憶部３４とを有する。
【００３９】
ローカルメモリ３１−０〜３１−３は、再構成部３３やシステムバスＢｓｙｓからローカルメモリ・インターフェース部３２を介して供給されるデータを記憶するとともに、その記憶したデータをローカルメモリ・インターフェース部３２を介して再構成部３３やシステムバスＢｓｙｓに出力する。
ローカルメモリ３１−０〜３１−３には、たとえば、読み出しデータ用のポートと書き込みデータ用のポートとが共通なシングルポート・メモリを用いても良いし、あるいは、読み出しデータ用のポートと書き込みデータ用のポートとをそれぞれ備え、読み書きを同時に実行することが可能なデュアルポート・メモリを用いても良い。
【００４０】
ローカルメモリ・インターフェース部３２は、構成情報記憶部３４より供給される構成情報に基づいて、再構成部３３やシステムバスＢｓｙｓからのローカルメモリ３１−０〜３１−３に対するアクセスを制御する。
【００４１】
再構成部３３は、構成情報記憶部３４より供給される構成情報に基づいて、内部回路を再構成する。
再構成部３３は、後述するように、構成情報に応じた演算動作を行う複数の演算実行部を有しており、これらの演算実行部がローカルメモリ・インターフェース部３２を介してローカルメモリ３１−０〜３１−３にアクセスする。すなわち、複数の演算実行部が、これらのメモリから演算対象データをそれぞれ読み出し、構成情報により設定される回路構成に応じた所定の演算を施し、その演算結果をこれらのメモリに書き戻す。
【００４２】
構成情報記憶部３４は、システムメモリ２０あるいは図示しない他の記憶部よりシステムバスＢｓｙｓを介して転送される構成情報を記憶する。また、記憶した構成情報を、ローカルメモリ・インターフェース部３２や再構成部３３に供給する。
【００４３】
次に、上述した再構成可能ハードウェア３０の更に詳細な構成の一例について、図２および図３を参照して説明する。
【００４４】
図２および図３は、再構成可能ハードウェア３０の構成例を示すブロック図であり、図２はローカルメモリからの読み出しアクセスに係わる部分を、図３はローカルメモリへの書き込みアクセスに係わる部分をそれぞれ抜き出して示した図である。図１、図２、および図３における同一符号は同一の構成要素を示す。
図２および図３の示すように、再構成可能ハードウェア３０は、既に述べたローカルメモリ３１−０〜３１−３、再構成部３３、および再構成情報記憶部３４に加えて、ローカルメモリ・インターフェース部３３に含まれる構成として、読み出しアドレス発生部３５、読み出しアドレスセレクタ３６−０〜３６−３、読み出しデータセレクタ３７−０〜３７−４、書き込みアドレス発生部３８、書き込みアドレスセレクタ３９−０〜３９−３、書き込みデータセレクタ４０−０〜４０−３、および、書き込み制御信号生成部４１を有する。
また、図２および図３の例において、再構成部３３は演算実行部３３−０〜３３−３を含み、読み出しアドレス発生部３５は読み出しアドレス発生器３５−０〜３５−３を含み、書き込みアドレス発生部３８は書き込みアドレス発生器３８−０〜３８−３を含み、書き込み制御信号生成部４１は書き込み制御信号生成器４１−０〜４１−３を含む。
【００４５】
なお、読み出しアドレスセレクタ３６−０〜３６−３、読み出しデータセレクタ３７−０〜３７−４、書き込みアドレスセレクタ３９−０〜３９−３、書き込みデータセレクタ４０−０〜４０−３、および、書き込み制御信号生成部４１を含むユニットは、本発明のメモリアクセス制御装置の一実施形態である。
演算実行部３３−０〜３３−３は、本発明の演算実行部の一実施形態である。
読み出しアドレスセレクタ３６−０〜３６−３を含むユニットは、本発明の読み出しアドレス選択部の一実施形態である。
書き込みアドレスセレクタ３９−０〜３９−３を含むユニットは、本発明の書き込みアドレス選択部の一実施形態である。
読み出しデータセレクタ３７−０〜３７−４を含むユニットは、本発明の読み出しデータ選択部の一実施形態である。
書き込みデータセレクタ４０−０〜４０−３を含むユニットは、本発明の書き込みデータ選択部の一実施形態である。
書き込み制御信号生成部４１は、本発明の書き込み制御信号生成部の一実施形態である。
読み出しアドレス発生部３５は、本発明の読み出しアドレス発生部の一実施形態である。
書き込みアドレス発生部３８は、本発明の書き込みアドレス発生部の一実施形態である。
【００４６】
演算実行部３３−ｎ（ｎは、０から３までの整数を示す）は、所定の演算を行うユニットであり、構成情報記憶部３４より供給される構成情報に基づいて再構成する。演算の内容は、構成情報に応じて変更可能である。
また、演算実行部３３−ｎは、読み出しポートＰＲ−ｎから出力されるローカルメモリ３１−０〜３１−３の読み出しデータに所定の演算を行い、その演算結果を書き込みデータとして、書き込みポートＰＷ−ｎからローカルメモリ３１−０〜３１−３に入力する。
【００４７】
読み出しアドレス発生器３５−ｎは、演算実行部３３−ｎが読み出し対象とするローカルメモリとその記憶領域を指示する読み出しアドレスＡＲｎを発生する。すなわち、読み出しアドレス発生器３５−ｎが発生する読み出しアドレスＡＲｎは、４つのローカルメモリ（３１−０〜３１−３）の中から読み出し対象メモリを指示するためのアドレス情報ＡＲＳｎと、指示したローカルメモリの内部における記憶領域を指示するためのアドレス情報ＡＲＭｎとを含む。
【００４８】
たとえば、ローカルメモリ３１−０〜３１−３がそれぞれ１Ｋワードの記憶容量を有するものとした場合、アドレス情報ＡＲＭｎとして１０ビットのデータを発生する。また、４つのローカルメモリ（３１−０〜３１−３）の中から１つを指示するアドレス情報ＡＲＳｎとして、２ビットのデータを発生する。
アドレス情報ＡＲＳｎを上位ビット、アドレス情報ＡＲＭｎをその下位ビットとした場合、読み出しアドレス発生器３５−ｎが発生する読み出しアドレスＡＲｎは、後述するように、ローカルメモリ３１−０〜３１−３の各アドレス空間を包括した論理アドレス空間上のアドレスとなる。
【００４９】
読み出しアドレスセレクタ３６−ｎは、読み出しアドレス発生器３５−０〜３５−３において発生する読み出しアドレスＡＲ０〜ＡＲ３、および、再構成可能ハードウェア３０の外部からローカルメモリ３１−０〜３１−３にアクセスするためのアドレスとしてシステムバスＢｓｙｓより入力されるアドレスＡｓｙｓの中から、構成情報記憶部３４より供給される構成情報に応じて、ローカルメモリ３１−ｎに供給するアドレスを選択する。
【００５０】
たとえば図２に示すように、読み出しアドレスセレクタ３６−ｎは、ローカルメモリ内部の記憶領域を指示するアドレス情報を入力し、その選択を行う。
すなわち、読み出しアドレス発生器３５−０〜３５−３において発生する読み出しアドレスＡＲ０〜ＡＲ３のうち、ローカルメモリ内部の記憶領域を指示するアドレス情報ＡＲＭ０〜ＡＲＭ３を入力する。また、システムバスＢｓｙｓより入力されるアドレスＡｓｙｓのうち、ローカルメモリ内部の記憶領域を指示するアドレス情報ＡＭｓｙｓを入力する。そして、これらの入力したアドレス情報の中から、構成情報記憶部３４より供給される構成情報に応じて、ローカルメモリ３１−ｎに供給するアドレスを選択する。
【００５１】
読み出しデータセレクタ３７−ｎは、読み出しアドレスの供給に応じてローカルメモリ３１−０〜３１−３から読み出される読み出しデータの中から、読み出しアドレス発生器３５−ｎより発生するアドレスＡＲｎに応じて、読み出しポートＰＲ−ｎに出力する読み出しデータを選択する。
上述したように、読み出しアドレス発生器３５−ｎより発生する読み出しアドレスＡＲｎは、演算実行部３３−ｎに供給するデータを読み出すためのアドレスであるとともに、この読み出しデータは読み出しポートＰＲ−ｎを介して演算実行部３３−ｎに供給されることから、読み出しポートＰＲ−ｎに対応して発生するアドレスでもある。すなわち、読み出しデータセレクタ３７−ｎは、ローカルメモリから読み出される複数の読み出しデータの中から、読み出しポートＰＲ−ｎに出力する読み出しデータを、この出力先の読み出しポートＰＲ−ｎ対応して発生するアドレスＡＲｎに応じて選択する。
図２の例によると、具体的には、このアドレスＡＲｎに含まれる、アクセス対象メモリを指示するためのアドレス情報ＡＲＳ−ｎに応じて、読み出しポートＰＲ−ｎに出力する読み出しデータの選択を行う。
【００５２】
読み出しデータセレクタ３７−４は、読み出しアドレスの供給に応じてローカルメモリ３１−０〜３１−３から読み出される読み出しデータの中から、システムバスＢｓｙｓより入力されるアドレスＡｓｙｓに応じて、入出力ポートＰｓｙｓに出力する読み出しデータを選択する。入出力ポートＰｓｙｓは、再構成可能ハードウェア３０の外部からローカルメモリ３１−０〜３１−３にアクセスするためのポートであり、システムバスＢｓｙｓに接続されている。したがって、読み出しデータセレクタ３７−４から出力されるデータＤｓｙｓは、入出力ポートＰｓｙｓを介してデータバスＢｓｙｓに出力される。
図２の例によると、具体的には、アドレスＡｓｙｓに含まれる、アクセス対象メモリを指示するためのアドレス情報ＡＳｓｙｓに応じて、入出力ポートＰｓｙｓに出力する読み出しデータの選択が行われる。
【００５３】
書き込みアドレス発生器３８−ｎは、構成情報記憶部３４より供給される構成情報に基づいて、演算実行部３３−ｎが書き込み対象とするローカルメモリとその記憶領域を指示するアドレスを発生する。すなわち、書き込みアドレス発生器３８−ｎが発生する書き込みアドレスＡＷ０〜ＡＷ３は、４つのローカルメモリ（３１−０〜３１−３）の中から書き込み対象メモリを指示するためのアドレス情報ＡＷＳｎと、指示したローカルメモリの内部における記憶領域を指示するためのアドレス情報ＡＷＭｎとを含む。
アドレス情報ＡＷＳｎを上位ビット、アドレス情報ＡＷＭｎをその下位ビットとした場合、書き込みアドレス発生器３８−ｎが発生する書き込みアドレスＡＷ０〜ＡＷ３は、上述した読み出しアドレスＡＲ０〜ＡＲ３と同様に、ローカルメモリ３１−０〜３１−３の各アドレス空間を包括した論理アドレス空間上のアドレスとなる。
【００５４】
書き込みアドレスセレクタ３９−ｎは、書き込みアドレス発生器３８−０〜３８−３において発生する書き込みアドレスＡＷ０〜ＡＷ３、および、システムバスＢｓｙｓより入力されるアドレスＡｓｙｓの中から、構成情報記憶部３４より供給される構成情報に応じて、ローカルメモリ３１−ｎに供給するアドレスを選択する。
【００５５】
たとえば図３に示すように、書き込みアドレスセレクタ３９−ｎは、ローカルメモリ内部の記憶領域を指示するアドレス情報を入力し、その選択を行う。
すなわち、書き込みアドレス発生器３８−０〜３８−３において発生する書き込みアドレスＡＷ０〜ＡＷ３のうち、ローカルメモリ内部の記憶領域を指示するアドレス情報ＡＷＭ０〜ＡＷＭ３を入力するとともに、システムバスＢｓｙｓより入力されるアドレスＡｓｙｓのうち、ローカルメモリ内部の記憶領域を指示するアドレス情報ＡＭｓｙｓを入力する。そして、これらの入力したアドレス情報の中から、構成情報記憶部３４より供給される構成情報に応じて、ローカルメモリ３１−ｎに供給するアドレスを選択する。
【００５６】
書き込みデータセレクタ４０−ｎは、書き込みポートＰＷ−０〜ＰＷ３および入出力ポートＰｓｙｓを介して入力される書き込みデータの中から、構成情報記憶部３４より供給される構成情報に応じて、ローカルメモリ３１−ｎに供給する書き込みデータを選択する。
図３の例において、書き込みデータセレクタ４０−ｎに供給される構成情報は、書き込みアドレスセレクタ３９−ｎに供給される構成情報と同一である。後述するように、書き込みアドレスセレクタ３９−ｎおよび書き込みデータセレクタ４０−ｎに供給される構成情報は、ローカルメモリと各ポートとを関連付ける情報であり、書き込みアドレスセレクタ３９−ｎにおいてあるアドレスが選択されると、書き込みデータセレクタ４０−ｎは、この選択されたアドレスに対応するポートより入力される書き込みデータを選択する。
たとえば、書き込みアドレスセレクタ３９−ｎにおいてアドレス情報ＡＷＭ１が選択される場合、アドレス情報ＡＷＭ１は演算実行部３３−１の演算結果をローカルメモリに書き込むためのアドレスであるため、書き込みデータセレクタ４０−ｎは、演算実行部３３−１に接続される書き込みポートＰＷ−１より入力されるデータを選択する。また、書き込みアドレスセレクタ３９−ｎにおいてアドレス情報ＡＭｓｙｓが選択される場合、アドレス情報ＡＭｓｙｓは入出力ポートＰｓｙｓより入力されるデータをローカルメモリに書き込むためのアドレスであるため、書き込みデータセレクタ４０−ｎは、入出力ポートＰｓｙｓより入力されるデータを選択する。
【００５７】
書き込み制御信号生成器４１−ｎは、書き込みアドレスセレクタ３９−ｎにおいて選択される書き込みアドレスが、この書き込みアドレスの供給先であるローカルメモリ３１−ｎを書き込み対象として指示するアドレスであるか否かに応じて、ローカルメモリ３１−ｎにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する。
【００５８】
たとえば図３に示すように、書き込み制御信号生成器４１−ｎは、書き込みアドレスセレクタ３９−ｎに供給されるものと同一の構成情報を入力するとともに、書き込み対象メモリを指示するためのアドレス情報（ＡＷＳ０〜ＡＷＳ３、ＡＳｓｙｓ）を入力する。そして、入力した構成情報に基づいて、書き込みアドレスセレクタ３９−ｎにおいて選択されるアドレスに対応したアドレス情報（ＡＷＳ０〜ＡＷＳ３、ＡＳｓｙｓ）を特定し、特定したアドレス情報がローカルメモリ３１−ｎを書き込み対象として指示するものであるか否かを判定する。この判定結果に応じて、ローカルメモリ３１−ｎにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する。
【００５９】
次に、上述した構成を有する図１に示す演算システムについて、特に再構成可能ハードウェア３０におけるローカルメモリのアクセス制御に係わる部分を中心に、その動作を説明する。
【００６０】
処理部１０では、図示しない記憶部に格納されるプログラムに基づき、所定の演算処理が実行される。その演算処理の過程で、処理部１０の制御に応じて、再構成可能ハードウェア３０の構成情報記憶部３４に構成情報が書き込まれると、書き込まれた構成情報は、再構成部３３やローカルメモリ・インターフェース部３２に供給され、その内部状態が構成情報に応じて設定される。
たとえば、演算実行部３３−０〜３３−３における演算処理の内容や、読み出しアドレス発生部３５および書き込みアドレス発生部３８において発生するアドレスの値とその発生タイミング、読み出しアドレスセレクタ３６−０〜３６−３および書き込みアドレスセレクタ３９−０〜３９−３において選択されるアドレス、読み出しデータセレクタ３７−０〜３７−４および書き込みデータセレクタ４０−０〜４０−３において選択されるデータ、書き込み制御信号生成部４１において生成される書き込み制御信号の値などが、構成情報記憶部３４に書き込まれる構成情報に応じて設定される。
【００６１】
図４は、読み出しアドレスセレクタ３６−０〜３６−３および書き込みアドレスセレクタ３９−０〜３９−３にそれぞれ供給される構成情報の一例を図解した図である。なお、書き込みデータセレクタ４０−ｎおよび書き込み制御信号生成器４１−ｎに供給される構成情報は、上述したように、書き込みアドレスセレクタ３９−ｎに供給される構成情報と同一である。
これらのユニットに供給される構成情報は、論理アドレス空間上における各ローカルメモリのアドレス空間の配置に係わる情報であることから、以降の説明では、この構成情報を配置情報と呼ぶことにする。
配置情報は、たとえば図４に示すように、４ビットのデータによって表される。
【００６２】
この４ビットのうち、２ビットのデータＡＧは、それぞれのアドレスセレクタ（３６−０〜３６−３、３９−０〜３９−３）において選択すべきアドレスの供給元のアドレス発生器（３５−０〜３５−３、３８−０〜３８−３）を設定するデータである。
たとえば、読み出しアドレスセレクタ３６−ｎに値‘３’のデータＡＧを有する配置情報が供給される場合、読み出しアドレスセレクタ３６−ｎでは、読み出しアドレス発生器３５−３において発生するアドレス情報ＡＲＭ３が選択され、ローカルメモリ３１−ｎに供給される。
また、たとえば、書き込みアドレスセレクタ３９−ｎに値‘１’のデータＡＧを有する配置情報が供給される場合、書き込みアドレスセレクタ３９−ｎでは、書き込みアドレス発生器３８−１において発生するアドレス情報ＡＷＭ１が選択され、ローカルメモリ３１−ｎに供給される。
【００６３】
なお、アドレス発生器（３５−０〜３５−３、３８−０〜３８−３）は、演算実行部（３３−０〜３３−３）に接続されるポート（ＰＲ−０〜ＰＲ−３、ＰＷ−０〜ＰＷ３）と１対１に対応していることから、このデータＡＧは、ポートを示すデータでもある。すなわち、このデータＡＧがそれぞれのローカルメモリ（３１−０〜３１−３）に対応するアドレスセレクタ（３６−０〜３６−３、３９−０〜３９−３）に供給されることにより、ローカルメモリ（３１−０〜３１−３）と、これにアクセスするデータが入力または出力されるポート（ＰＲ−０〜ＰＲ−３、ＰＷ−０〜ＰＷ３）との関連付けが設定される。
【００６４】
また、配置情報のうち、１ビットのデータＥＸＴは、ローカルメモリ（３１−０〜３１−３）にアクセスするデータが入力または出力されるポートとして、システムバスＢｓｙｓに接続される入出力ポートＰｓｙｓを設定するためのデータである。たとえば、データＥＸＴが‘０’の場合、データＡＧが有効となり、上述したように、ローカルメモリ（３１−０〜３１−３）は演算実行部３３−０〜３３−３に接続されるポート（ＰＲ−０〜ＰＲ−３、ＰＷ−０〜ＰＷ３）に関連付けられる。一方、データＥＸＴが‘１’の場合、データＡＧが無効となり、ローカルメモリ（３１−０〜３１−３）は入出力ポートＰｓｙｓに関連付けられる。
たとえば、読み出しアドレスセレクタ３６−ｎに供給される配置情報においてデータＥＸＴが‘１’に設定されると、ローカルメモリ３１−ｎに供給する読み出しアドレスとして、システムバスＢｓｙｓから入力されるアドレス情報ＡＭｓｙｓが選択される。また、書き込みアドレスセレクタ３９−ｎに供給される配置情報においてデータＥＸＴが‘１’に設定されると、ローカルメモリ３１−ｎに供給する書き込みアドレスとして、システムバスＢｓｙｓから入力されるアドレス情報ＡＭｓｙｓが選択される。
すなわち、配置情報のデータＥＸＴによって、ローカルメモリ（３１−０〜３１−３）と入出力ポートＰｓｙｓとの関連付けが設定される。
【００６５】
また、配置情報のうち、１ビットのデータＳＡは、後述する共有アドレスモードを有効または無効にするためのデータである。たとえば、データＳＡが‘０’に設定される場合に共有アドレスモードは有効となり、‘１’に設定される場合に無効となる。
【００６６】
このような配置情報によって、それぞれのローカルメモリの物理的なアドレス空間が各ポートに対応する論理アドレス空間上に配置される様子を図解したのが図５である。図５と図１〜図３における同一符号は同一の構成要素を示す。
【００６７】
アドレス発生器（３５−０〜３５−３、３８−０〜３８−３）において発生するアドレス（ＡＲ０〜ＡＲ３、ＡＷ０〜ＡＷ３）、ならびにシステムバスＢｓｙｓより入力されるアドレスＡｓｙｓは、何れもアクセス対象となるローカルメモリとその記憶領域を指示するアドレスである。このため、これらのアドレスは、４つのローカルメモリ（３１−０〜３１−３）のアドレス空間を包括した、論理アドレス空間上のアドレスと見なすことができる。
これらのアドレスは、それぞれポート（ＰＲ−０〜ＰＲ−３、ＰＷ−０〜ＰＷ３、Ｐｓｙｓ）と１対１に対応して発生または入力されるアドレスである。
また、それぞれのポート（ＰＲ−０〜ＰＲ−３、ＰＷ−０〜ＰＷ３、Ｐｓｙｓ）からそれぞれのローカルメモリ（３１−０〜３１−３）にアクセスできるか否かは、上述した配置情報によるローカルメモリとポートとの関連付けによって任意に設定される。
したがって、論理アドレス空間上においてアクセス可能なアドレスの範囲は、ポートごとに異なる。
そこで、以降の説明では、それぞれのポートに対応付けられる論理アドレス空間を想定し、これをレーン（ｌａｎｅ）と呼ぶことにする。
【００６８】
図５において、レーンＬＮ＿ＥはポートＰｓｙｓに対応し、レーンＬＮｎは読み出しポートＰＲ−ｎおよび書き込みポートＰＷ−ｎに対応する。
なお、図５の例は、１つのローカルメモリに対する読み出しアクセスと書き込みアクセスとが共通の演算実行部（またはシステムバスＢｓｙｓ）から実行されるように、ローカルメモリとポートとの関連付けが設定される場合の例である。このように、１つのローカルメモリに対して読み出しアクセスと書き込みアクセスを実行する演算実行部が同じ場合、読み出しアクセスと書き込みアクセスとが同時に発生することがないため、ローカルメモリとしてシングルポート・メモリを用いることができる。
一方、ローカルメモリとしてデュアルポート・メモリを用いることにより、１つのローカルメモリに対する読み出しアクセスと書き込みアクセスとを異なる演算実行部（またはシステムバスＢｓｙｓ）から実行することも可能である。この場合、たとえば後述の図７に示すように、読み出しポートと書き込みポートとに対してそれぞれ独立のレーンが対応づけられる。
【００６９】
また、それぞれのレーンは、各ローカルメモリ（３１−０〜３１−３）の物理的アドレス空間に対応した複数のアドレス範囲に分割される。以降の説明では、各ローカルメモリ（３１−０〜３１−３）の物理的アドレス空間をバンク（ｂａｎｋ）と呼び、レーン上において各バンクに対応するアドレス範囲をセグメント（ｓｅｇｍｅｎｔ）と呼ぶことにする。図５の例では、セグメントＳＧ０〜ＳＧ３がローカルメモリ３１−０〜３１−３のバンクにそれぞれ対応する。
なお、ローカルメモリがデュアルポート・メモリを用いて構成される場合、たとえば後述の図７に示すように、それぞれのローカルメモリは、読み出し用と書き込み用の２つのバンクを有する。
また、それぞれのレーンは、少なくとも、各ローカルメモリが有するバンクの記憶サイズを合計したものと等しい記憶サイズを有する。
【００７０】
上述したように、それぞれのポート（ＰＲ−０〜ＰＲ−３、ＰＷ−０〜ＰＷ−３、Ｐｓｙｓ）からアクセス可能なローカルメモリは、配置情報に応じて任意に設定される。このことは、図５において視覚的に示すように、バンクが任意のレーンの対応するセグメント上に配置されるものと考えることができる。すなわち、あるバンクがあるレーンに配置されるということは、当該レーン上の当該バンクに対応するセグメントが、当該レーンに対応するポートからアクセス可能になることを意味する。
【００７１】
さて、レーンにおけるバンクの配置が配置情報に応じて上記のように設定されると、各ポート（ＰＲ−０〜ＰＲ−３、ＰＷ−０〜ＰＷ−３、Ｐｓｙｓ）からのローカルメモリ（３１−０〜３１−３）に対する読み出しアクセスおよび書き込みアクセスは、この配置に基づいて制御される。
【００７２】
すなわち、ローカルメモリ３１−ｎに対して読み出しアクセスが実行される場合、ローカルメモリ３１−ｎには、そのバンクが配置されるレーン（仮にレーンＬＮｘと呼ぶ）に対応して発生または入力される読み出しアドレス（仮にアドレスＡｘと呼ぶ）が読み出しアドレスセレクタ３６−ｎによって選択されて供給される。
ローカルメモリ３１−ｎから読み出されるデータは、アドレスＡｘがローカルメモリ３１−ｎをアクセス対象として指示するアドレスの場合に、レーンＬＮｘに対応する読み出しデータセレクタ３７−ｍ（ｍは、０から４までの整数を示す）において選択され、レーンＬＮｘに対応するポートへ出力される。
【００７３】
なお、レーンＬＮｘに対応するアドレスＡｘがローカルメモリ３１−ｎをアクセス対象として指示していないが、レーンＬＮｘに配置される他のローカルメモリをアクセス対象として指示している場合、読み出しデータセレクタ３７−ｍにおいては、配置情報の設定に対して有効な読み出しデータが選択される。
一方、レーンＬＮｘに対応するアドレスＡｘがレーンＬＮｘに配置されないローカルメモリをアクセス対象として指示している場合、読み出しデータセレクタ３７−ｍにおいては、配置情報の設定に対して無効なデータが選択される。
このような無効なデータの選択を防止するためには、たとえば、読み出しアドレス発生器（３５−０〜３５−３）において発生するアドレスが、配置情報の設定に対して有効なローカルメモリをアクセス対象として指示するように、読み出しアドレス発生器（３５−０〜３５−３）に対して適切な構成情報を供給すれば良い。
あるいは、たとえば、読み出しデータ選択部において選択される読み出しデータが有効か否かを示す読み出し制御信号をそれぞれ生成する読み出し制御信号生成部を設けても良い。この読み出し制御信号生成部は、読み出しデータ選択部において選択される読み出しデータの供給元のローカルメモリと、当該選択される読み出しデータの出力先のポートとが、供給される構成情報において関連付けられているか否かを判定し、当該判定結果に応じて、当該選択される読み出しデータが有効か否かを示す読み出し制御信号を生成する。
このような読み出し制御信号生成部を設けることにより、読み出しデータを受け取る演算実行部等において、受け取った読み出しデータが配置情報の設定に対して有効か否かを把握することが可能になる。たとえば、読み出しデータが無効であることを示す読み出し制御信号が生成される場合、この読み出しデータを受け取る演算実行部において、演算処理を停止させることも可能である。これにより、無効な読み出しデータに演算処理を施さずに済み、無駄な電力損失を減らすことができる。
【００７４】
また、ローカルメモリ３１−ｎに対して書き込みアクセスが実行される場合、ローカルメモリ３１−ｎには、そのバンクが配置されるレーン（仮にレーンＬＮｙと呼ぶ）に対応して発生または入力される書き込みアドレス（仮にアドレスＡｙと呼ぶ）が書き込みアドレスセレクタ３９−ｎにより選択されて供給されるとともに、レーンＬＮｙに対応するポートから入力される書き込みデータが書き込みデータセレクタ４０−ｎにより選択されて供給される。
書き込みアドレスセレクタ３９−ｎにより選択されるアドレスが、ローカルメモリ３１−ｎをアクセス対象として指示する場合、書き込み制御信号生成器４１−ｎでは、ローカルメモリ３１−ｎにおけるデータ書き込みを許可する書き込み制御信号が生成される。この場合、レーンＬＮｙに対応するポートから入力される書き込みデータがローカルメモリ３１−ｎに書き込まれる。
書き込みアドレスセレクタ３９−ｎにより選択されるアドレスにおいてローカルメモリ３１−ｎがアクセス対象でない場合、書き込み制御信号生成器４１−ｎでは、ローカルメモリ３１−ｎにおけるデータ書き込みを禁止する書き込み制御信号が生成される。この場合、レーンＬＮｙに対応するポートから入力される書き込みデータはローカルメモリ３１−ｎに書き込まれない。
【００７５】
次に、レーンに対するバンクの配置例について、図６〜図１０を参照して説明する。
【００７６】
図６は、１つのレーンに複数のバンクを配置する例を図解した図である。
【００７７】
図６の例において、演算実行部３３−２の読み出しポートＰＲ−２および書き込みポートＰＷ−２に対応するレーンＬＮ２には、ローカルメモリ３１−２のバンク（Ｂａｎｋ２）と、ローカルメモリ３１−３のバンク（Ｂａｎｋ３）とが配置される。また、演算実行部３３−０の読み出しポートＰＲ−０および書き込みポートＰＷ−０に対応するレーンＬＮ２には、ローカルメモリ３１−０のバンク（Ｂａｎｋ０）が配置され、入出力ポートＰｓｙｓに対応するレーンＬＮ＿Ｅには、ローカルメモリ３１−１のバンク（Ｂａｎｋ１）が配置される。
【００７８】
図６の例では、演算実行部３３−１および３３−３のレーンＬＮ１およびＬＮ３にバンクが配置されない一方で、演算実行部３３−２のレーンＬＮ２に２つのバンクが配置される。このように、停止状態等のために入力データを必要としない演算実行部のレーンに無駄なバンクを配置せず、余ったバンクを入力データが必要な他の演算実行部のレーンに配置して、そのレーンにおけるデータの記憶サイズを増やすことができる。すなわち、バンクを任意のレーンに配置することにより、ローカルメモリの利用効率の向上を図ることができる。
【００７９】
また、図６の例では、ローカルメモリ３１−１のバンクがレーンＬＮ＿Ｅに配置されているため、演算実行部３３−０や演算実行部３３−２において演算処理が実行されている途中でも、次の演算に備えたデータをシステムバスＢｓｙｓからローカルメモリ３１−１に書き込んだり、先に行った演算の結果をローカルメモリ３１−１からシステムバスＢｓｙｓに読み出したりすることが可能である。すなわち、演算実行部を動作させた状態で、外部のバスから再構成可能ハードウェア３０内部のローカルメモリにアクセスすることが可能になる。したがって、演算器を停止させなければ外部バスからローカルメモリにアクセスすることができない図１１に示す動的再構成可能ハードウェアに比べて、処理の遅延時間を減らすことができる。
【００８０】
図７は、読み出しポートおよび書き込みポートに独立のレーンを対応づける場合のバンク配置例を図解した図である。
【００８１】
図７の例において、ローカルメモリにはデュアルポート・メモリが用いられており、各ローカルメモリは読み出し用バンクおよび書き込み用バンクを有する。また、読み出し用バンクは読み出しポートに対応するレーンに配置され、書き込み用バンクは書き込みポートに対応するレーンに配置される。
図７に示すように、演算実行部３３−０の読み出しポートＰＲ−０に対応するレーンには、ローカルメモリ３１−０の読み出し用バンク（Ｂａｎｋ０Ｒ）が配置され、その書き込みポートＰＷ−０に対応するレーンには、ローカルメモリ３１−０の書き込み用バンク（Ｂａｎｋ０Ｗ）とローカルメモリ３１−１の書き込み用バンク（Ｂａｎｋ１Ｗ）とが配置される。
演算実行部３３−１の読み出しポートＰＲ−１に対応するレーンには、ローカルメモリ３１−１の読み出し用バンク（Ｂａｎｋ１Ｒ）が配置され、その書き込みポートＰＷ−１に対応するレーンには、ローカルメモリ３１−２の書き込み用バンク（Ｂａｎｋ２Ｗ）が配置される。
演算実行部３３−３の読み出しポートＰＲ−３に対応するレーンには、ローカルメモリ３１−３の読み出し用バンク（Ｂａｎｋ３Ｒ）が配置され、その書き込みポートＰＷ−３に対応するレーンには、ローカルメモリ３１−３の書き込み用バンク（Ｂａｎｋ３Ｗ）が配置される。
入出力ポートＰｓｙｓから読み出しアクセスを行うためのレーンには、ローカルメモリ３１−２の読み出し用バンク（Ｂａｎｋ２Ｒ）が配置される。
【００８２】
このようなバンク配置において、各アドレス発生器では、構成情報記憶部３４より供給される構成情報に基づいて、たとえば図８に示すようなタイミングで、アドレスが発生する。
【００８３】
すなわち、時刻ｔ０〜ｔ４において、読み出しアドレス発生器３５−０からは、ローカルメモリ３１−０の読み出し用バンク（Ｂａｎｋ０Ｒ）に対する読み出しアドレスＡＲ０が発生する（図８（Ａ））。
この読み出しアドレスの供給に応じて読み出し用バンク（Ｂａｎｋ０Ｒ）から読み出されるデータ（Ｄ００〜Ｄ０３）は、時刻ｔ１から時刻ｔ５にかけて、演算実行部３３−０へ順次出力される（図８（Ｂ））。
【００８４】
また、読み出し用バンク（Ｂａｎｋ０Ｒ）からデータ（Ｄ００〜Ｄ０３）が読み出されるタイミングに合わせて、書き込みアドレス発生器３８−０からは、ローカルメモリ３１−１の書き込み用バンク（Ｂａｎｋ１Ｗ）に対する書き込みアドレスＡＷ０が発生する（図８（Ｃ））。書き込み用バンク（Ｂａｎｋ１Ｗ）は、演算実行部３３−０の書き込み用レーンに配置されているため、書き込み用バンク（Ｂａｎｋ１Ｗ）には、データＤ００〜Ｄ０３に対する演算実行部３３−０の演算結果が順次書き込まれる。
【００８５】
時刻ｔ１〜ｔ５において書き込み用バンク（Ｂａｎｋ１Ｗ）に書き込まれる演算実行部３３−０の演算結果は、時刻ｔ２〜ｔ６において発生する読み出しアドレス発生器３５−１の読み出しアドレスＡＲ１（図８（Ｄ））により、時刻ｔ３から時刻ｔ７にかけて、対応する読み出し用バンク（Ｂａｎｋ１Ｒ）から順次読み出される。この読み出し用バンク（Ｂａｎｋ１Ｒ）は演算実行部３３−１の読み出し用レーンに配置されているため、演算実行部３３−０の演算結果としてこのバンクから読み出されるデータ（Ｄ１０〜Ｄ１３）は、演算実行部３３−１へ順次出力される（図８（Ｅ））。
【００８６】
また、読み出し用バンク（Ｂａｎｋ１Ｒ）からデータ（Ｄ１０〜Ｄ１３）が読み出されるタイミングに合わせて、書き込みアドレス発生器３８−１からは、ローカルメモリ３１−２の書き込み用バンク（Ｂａｎｋ２Ｗ）に対する書き込みアドレスＡＷ２が発生する（図８（Ｆ））。この書き込み用バンク（Ｂａｎｋ２Ｗ）は演算実行部３３−１の書き込み用レーンに配置されているため、書き込み用バンク（Ｂａｎｋ２Ｗ）には、データＤ１０〜Ｄ１３に対する演算実行部３３−１の演算結果が順次書き込まれる。
【００８７】
時刻ｔ３〜ｔ７において書き込み用バンク（Ｂａｎｋ２Ｗ）に書き込まれる演算実行部３３−１の演算結果は、時刻ｔ４から時刻ｔ８にかけてシステムバスＢｓｙｓから入力されるアドレスＡｓｙｓ（図８（Ｇ））により、対応する読み出し用バンク（Ｂａｎｋ２Ｒ）から順次読み出される。この読み出し用バンク（Ｂａｎｋ２Ｒ）は入出力ポートＰｓｙｓの読み出し用レーンに配置されているため、演算実行部３３−１の演算結果としての読み出しデータは、入出力ポートＰｓｙｓからシステムバスＢｓｙｓへ順次出力される。
【００８８】
このように、配置情報によるローカルメモリとポートとの関連付けを、読み出しポートおよび書き込みポートのそれぞれについて任意に設定することにより、演算実行部の間におけるデータの受け渡しを、再構成可能ハードウェア３０の内部で実行することが可能になる。したがって、外部のメモリを利用しなければ演算器間でデータの受け渡しを行うことができない図１１に示す動的再構成可能ハードウェアに比べて、演算処理の手順を大幅に簡略化することができ、処理速度を高速化することができる。
また、ローカルメモリとしてデュアルポート・メモリを用いる場合、演算処理と並行して演算実行部間のデータの受け渡しを実行できることから、処理速度をさらに高速化することができる。
【００８９】
図９は、各レーンにそれぞれバンクが配置される例を図解した図である。
【００９０】
図９の例では、演算実行部３３−０〜３３−３に対応するレーンＬＮ０〜ＬＮ３に、ローカルメモリ３１−０〜３１−３のバンク（Ｂａｎｋ０〜Ｂａｎｋ３）がそれぞれ配置されている。
このようなバンク配置によれば、それぞれの演算実行部についてアクセス対象のローカルメモリが割り当てられており、図１１に示す動的再構成可能ハードウェアと同様に、４つの演算実行部３３−０〜３３−３において並列に演算を実行することができる。ただし、アドレス発生器において発生するアドレスおよびシステムバスＢｓｙｓより入力されるアドレスが、アクセス対象のローカルメモリを指示するアドレス情報（ＡＲＳ０〜ＡＲＳ３、ＡＷＳ０〜ＡＷＳ３、ＡＳｓｙｓ）を含んでいる必要がある点で、図１１に示す動的再構成可能ハードウェアと異なる。
【００９１】
一方、図１０は、各レーンにそれぞれバンクが配置されるとともに、各バンクがアドレス共有モードに設定される場合のバンク配置例を図解した図である。
【００９２】
アドレス共有モードは、アクセス対象のローカルメモリを指示するアドレス情報（ＡＲＳ０〜ＡＲＳ３、ＡＷＳ０〜ＡＷＳ３、ＡＳｓｙｓ）を無効にするモードであり、バンクごとに設定される。アドレス共有モードに設定されたバンクでは、他のローカルメモリがアクセス対象となるアドレスを自らがアクセス対象となるアドレスとして使用することが可能となる。
【００９３】
ローカルメモリ３１−ｎの読み出しバンクがアドレス共有モードに設定されると、このローカルメモリ３１−ｎに対して予め決められた特定の読み出しポート、たとえば読み出しポートＰＲ−ｎが、その読み出しデータの出力先として設定される。この場合、アドレス情報ＡＲＳｎが他のローカルメモリを読み出し対象としていても、これとは無関係に、ローカルメモリ３１−ｎの読み出しデータは読み出しポートＰＲ−ｎへ出力される。
【００９４】
より詳細に述べると、ローカルメモリ３１−ｎの特定の読み出しポートＰＲ−ｎに対応する読み出しデータセレクタ３７−ｎには、ローカルメモリ３１−ｎの読み出し用バンクの配置情報に含まれる、データＳＡ（図４参照）が入力されている。このデータＳＡが‘０’に設定されると、ローカルメモリ３１−ｎの読み出し用バンクはアドレス共有モードとなり、他のローカルメモリが読み出し対象となるアドレスを自らが読み出し対象となるアドレスとして使用可能になる。このとき、読み出しデータセレクタ３７−ｎにおいては、アドレス情報ＡＲＳｎとは無関係に、ローカルメモリ３１−ｎの読み出しデータが選択されて、特定の読み出しポートＰＲ−ｎに出力される。
【００９５】
また、ローカルメモリ３１−ｎの書き込みバンクがアドレス共有モードに設定されると、このローカルメモリ３１−ｎに対して予め決められた特定の書き込みポート、たとえば書き込みポートＰＷ−ｎから入力されるデータがローカルメモリ３１−ｎに入力される。この場合、アドレス情報ＡＲＳｎが他のローカルメモリを書き込み対象としていても、これとは無関係に、ローカルメモリ３１−ｎにおけるデータの書き込みは許可される。
【００９６】
より詳細に述べると、ローカルメモリ３１−ｎの書き込み用バンクの配置情報は、図３に示すように、書き込みアドレスセレクタ３９−ｎおよび書き込み制御信号生成器４１−ｎに入力されているが、この配置情報に含まれるデータＳＡについては、更に書き込みデータセレクタ４０−ｎにも入力されている。このデータＳＡが‘０’に設定されると、ローカルメモリ３１−ｎの書き込み用バンクはアドレス共有モードとなり、他のローカルメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能になる。このとき、書き込みアドレスセレクタ３９−ｎにおいては、ローカルメモリ３１−ｎの特定の書き込みポートＰＷ−ｎに対応する書き込みアドレスＡＷｎが選択されて、ローカルメモリ３１−ｎに供給される。また、書き込みデータセレクタ４０−ｎにおいては、特定の書き込みポートＰＷ−ｎから入力されるデータが選択されて、ローカルメモリ３１−ｎに供給される。さらに、書き込み制御信号生成器４１−ｎにおいては、アドレス情報ＡＷＳｎとは無関係に、ローカルメモリ３１−ｎにおけるデータ書き込みを許可する書き込み許可信号が生成される。
【００９７】
図１０の例では、このようなアドレス共有モードに全ローカルメモリのバンクが設定されている。ローカルメモリ３１−ｎに対する読み出しアドレスおよび書き込みアドレスの供給元は、配置情報のデータＡＧ（図４参照）によって、読み出しアドレス発生器３５−ｎおよび書き込みアドレス発生器３８−ｎに設定されている。
【００９８】
アドレス共有モードでは、アクセス対象のローカルメモリを指示するアドレス情報（ＡＲＳ０〜ＡＲＳ３、ＡＷＳ０〜ＡＷＳ３、ＡＳｓｙｓ）が無効になるため、図１０に示すように、同一レーン上の全セグメントに同一のバンクが配置された状態と等価になる。すなわち、アドレスがレーン上のどのセグメントを指示していても、常に同じバンクがアクセス対象となる。
したがって、図９に示すように、レーンの正しいセグメントにバンクを配置させるためのアドレス情報（ＡＲＳ０〜ＡＲＳ３、ＡＷＳ０〜ＡＷＳ３、ＡＳｓｙｓ）を発生または入力する必要がなくなため、このようなアドレス情報が想定されていない図１１に示すような従来の再構成可能ハードウェアとの間で、構成情報の互換性を保つことが可能になる。
【００９９】
また、アドレス共有モードに設定されるローカルメモリに対するアドレスの供給元は、配置情報のデータＡＧによって任意に設定することが可能である。この場合、ローカルメモリは特定のポートに接続され、そのバンクは図１０に示すように、特定のレーンに配置される。したがって、配置情報のデータＡＧは、ローカルメモリとポートとの関連付けを設定するデータではなくなり、単にローカルメモリとアドレス供給元との関連付けを設定するデータとなる。
データＡＧによって、レーンとは無関係に、ローカルメモリとアドレス供給元との関連付けを設定可能であることから、たとえば、１つのアドレス発生器より発生するアドレスを、アドレス共有モードに設定された複数のバンクで共用することが可能になる。この場合、複数のアドレス発生器からそれぞれのバンクに同一アドレスを発生する方法にくらべて、消費電力を削減することができる。
【０１００】
なお、図１０の例は、１つのローカルメモリに対して読み出しアクセスと書き込みアクセスを実行する演算実行部が同じ場合の例である。たとえばローカルメモリとしてデュアルポート・メモリを用いることにより、１つのローカルメモリに対する読み出しアクセスと書き込みアクセスとを異なる演算実行部（またはシステムバスＢｓｙｓ）から実行することが可能な場合には、１つのローカルメモリに対応する２つのバンク（読み出し用バンクおよび書き込み用バンク）の一方のみをアドレス共有モードに設定することも可能である。
【０１０１】
また、図１０の例では、アドレス共有モードに設定されるバンクに書き込みデータを入力するポートは、予め決定された特定の書き込みポートに固定されているが、これを任意の書き込みポートに設定可能としても良い。
【０１０２】
たとえば、アドレス共有モードにおける書き込みデータの入力ポートを指定する情報を配置情報に付加し、これを書き込みアドレスセレクタ（３９−０〜３９−３）および書き込みデータセレクタ（４０−０〜４０−３）にそれぞれ供給する。
そして、書き込みアドレスセレクタ（３９−０〜３９−３）は、この配置情報において、対応するローカルメモリのアドレス共有モード設定が有効にされた場合、上記付加された情報において指定されるポートに対応して発生または入力される書き込みアドレス（ＡＷ０〜ＡＷ３、Ａｓｙｓ）を選択する。
また、書き込みデータセレクタ（４０−０〜４０−３）は、この配置情報において、対応するローカルメモリのアドレス共有モード設定が有効にされた場合、上記付加された情報において指定されるポートから入力される書き込みデータを選択して、対応するローカルメモリに供給する。
【０１０３】
このように、アドレス共有モードにおける書き込みデータの入力ポートが任意に設定可能になると、たとえば１つのポートから入力されるデータを同時に複数のバンクに書き込むことが可能になる。これにより、複数のステップに分けて複数のバンクに同一データを書き込む方法に比べて、処理速度を大幅に高速化することができる。
【０１０４】
以上説明したように、図２および図３に示す再構成可能ハードウェア３０に含まれる、本発明のメモリアクセス制御装置の実施形態によれば、読み出しデータが出力される各ポート（ＰＲ−０〜ＰＲ−３、Ｐｓｙｓ）から読み出しアクセスの対象となるローカルメモリ（３１−０〜３１−３）は、これらのポートに対応して読み出しアドレス発生器（３５−０〜３５−３）より発生するアドレス（ＡＲ０〜ＡＲ３）またはシステムバスＢｓｙｓより入力されるアドレスＡｓｙｓにおいて、任意に指示される。これらのローカルメモリとポートとの関連付けは、配置情報のデータＡＧやデータＥＸＴにおいて任意に設定される。
読み出しアドレスセレクタ（３６−０〜３６−３）では、これらのポートに対応して発生または入力されるアドレス（ＡＲ０〜ＡＲ３、Ｐｓｙｓ）の中から、この配置情報において関連付けが設定されたポートに対応するアドレスが選択され、対応するローカルメモリに供給される。
読み出しデータセレクタ（４０−０〜４０−４）では、アドレスの供給に応じて複数のローカルメモリ（３１−０〜３１−３）から読み出される読み出しデータの中から、対応するポート（ＰＲ−０〜ＰＲ−３、Ｐｓｙｓ）に出力する読み出しデータの選択が行われる。読み出しデータの選択は、その出力先のポートに対応して発生または入力されるアドレス（ＡＲ０〜ＡＲ３、Ａｓｙｓ）に応じて行われる。すなわち、そのアドレスにおいてアクセス対象として指示されるメモリからの読み出しデータが選択される。
【０１０５】
したがって、それぞれのローカルメモリについて、読み出しアクセスを行うポートを配置情報により任意に設定できる。配置情報によって１つのポートに複数のローカルメモリが関連付けられた場合は、この複数のローカルメモリの中から、読み出し対象のローカルメモリを任意に指示することができる。すなわち、複数のポートから複数のローカルメモリに対して読み出しアクセスを行う際に、ローカルメモリからの読み出しデータの出力先が特定のポートに固定される方法に比べて、より自由な読み出しアクセスが可能となる。
【０１０６】
また、書き込みデータが入力される各ポート（ＰＷ−０〜ＰＷ−３、Ｐｓｙｓ）から書き込みアクセスの対象となるローカルメモリ（３１−０〜３１−３）は、これらのポートに対応して書き込みアドレス発生器（３８−０〜３８−３）より発生するアドレス（ＡＷ０〜ＡＷ３）またはシステムバスＢｓｙｓより入力されるアドレスＡｓｙｓにおいて、任意に指示される。これらのローカルメモリとポートとの関連付けは、配置情報のデータＡＧやデータＥＸＴにおいて任意に設定される。
書き込みアドレスセレクタ（３９−０〜３９−３）では、これらのポートに対応して発生または入力されるアドレス（ＡＷ０〜ＡＷ３、Ｐｓｙｓ）の中から、この配置情報において関連付けが設定されたポートに対応するアドレスが選択され、対応するローカルメモリに供給される。
書き込みデータセレクタ（３９−０〜３９−３）では、複数のポート（ＰＷ−０〜ＰＷ−３、Ｐｓｙｓ）より入力される書き込みデータの中から、配置情報において関連付けられたポートより入力される書き込みデータが選択され、対応するローカルメモリに供給される。
書き込み制御信号生成器（４１−０〜４１−３）では、書き込みアドレスセレクタ（３９−０〜３９−３）において選択されるアドレス（ＡＷ０〜ＡＷ３、Ａｓｙｓ）が、このアドレスの供給先のローカルメモリをアクセス対象として指示するアドレスであるか否かに応じて、このアドレスの供給先のローカルメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号が生成される。
【０１０７】
したがって、それぞれのローカルメモリについて、書き込みアクセスを行うポートを配置情報により任意に設定できる。配置情報によって１つのポートに複数のローカルメモリが関連付けられた場合は、この複数のローカルメモリの中から、書き込み対象のローカルメモリを任意に指示することができる。すなわち、複数のポートから複数のローカルメモリに対して書き込みアクセスを行う際に、ローカルメモリからの書き込みデータの入力先が特定のポートに固定される方法に比べて、より自由な書き込みアクセスが可能となる。
【０１０８】
また、図１に示す演算システムによれば、再構成可能ハードウェア３０内部の複数のローカルメモリ（３１−０〜３１−３）に対して、その再構成可能な演算実行部（３３−０〜３３−３）に接続されるポート（ＰＲ−０〜ＰＲ−３、ＰＷ−０〜ＰＷ−３）およびシステムバスＢｓｙｓに接続されるポートＰｓｙｓから、上記のような自由な読み出しアクセスおよび書き込みアクセスが可能になる。
これにより、たとえば、１つのポートから複数のローカルメモリにアクセスを行うことが可能になり、ローカルメモリの利用効率の向上を図ることができる。また、演算実行部の間で容易にデータを受け渡しすることが可能になり、処理を高速化することができる。
【０１０９】
しかも、複数のポートから複数のローカルメモリに自由なアクセスを行うために、マルチポート・メモリなどの複雑な回路を用いる必要がないため、簡易な構成で実現可能である。
【０１１０】
なお、本発明は上述した実施形態に限定されない。
たとえば、上述した実施形態におけるローカルメモリやポートの数、外部バスに接続される入出力ポートの数やその有無は任意である。
【０１１１】
また、ローカルメモリは全てシングルポート・メモリ、または全てデュアルポート・メモリである必要はなく、たとえば、シングルポート・メモリとデュアルポート・メモリを各々含んでも良い。
【０１１２】
また、ローカルメモリは必ずしも読み書き可能なメモリである必要はなく、読み出しのみが可能なメモリでも良い。
【０１１３】
また、アドレス発生器やアドレスセレクタは、必ずしも読み出し用と書き込み用を各々設ける必要はない。たとえば、ローカルメモリがシングルポート・メモリの場合、書き込みアドレスと読み出しアドレスを両方同時にローカルメモリへ供給しなくても良いので、共通のアドレス発生器において書き込みアドレスと読み出しアドレスを発生し、共通のアドレスセレクタにおいて書き込みアドレスと読み出しアドレスの選択を行わせても良い。
【０１１４】
また、再構成可能ハードウェア内部の各構成要素に構成情報を供給する構成情報記憶部としては、例えば特許文献１に記載されるような、リング状に接続された記憶手段を有する構成情報記憶部を用いても良い。これにより、再構成可能ハードウェア内部における演算実行部の再構成や、アドレス発生部、アドレス選択部等の設定を、演算処理と並行して行うことが可能になり、処理時間の短縮を図ることができる。
【０１１５】
【発明の効果】
本発明のメモリアクセス制御装置によれば、簡易な構成でありながら、複数のポートから複数のメモリに対してより自由にアクセスすることができる。
また、本発明の演算システムによれば、再構成可能な複数の演算実行部から複数のメモリに対して自由なアクセスが可能になるため、外部の記憶装置に演算結果を一時的に転送するなどの処理ステップを設けることなく、より自由な演算処理を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る演算システムの構成の一例を示すブロック図である。
【図２】図１に示す再構成可能ハードウェアの構成例から、ローカルメモリからの読み出しアクセスに係わる部分を抜き出して示したブロック図である。
【図３】図１に示す再構成可能ハードウェアの構成例から、ローカルメモリへの書き込みアクセスに係わる部分を抜き出して示したブロック図である。
【図４】読み出しアドレスセレクタおよび書き込みアドレスセレクタにそれぞれ供給される構成情報の一例を図解した図である。
【図５】それぞれのローカルメモリの物理的なアドレス空間が各ポートに対応する論理アドレス空間上に配置される様子を図解した図である。
【図６】１つのレーンに複数のバンクを配置する例を図解した図である。
【図７】読み出しポートおよび書き込みポートに独立のレーンを対応づける場合のバンク配置例を図解した図である。
【図８】図７に示すバンク配置における各アドレス発生器のアドレス発生タイミングの一例を示すタイミング図である。
【図９】各レーンにそれぞれバンクが配置される例を図解した図である。
【図１０】各レーンにそれぞれバンクが配置されるとともに、各バンクがアドレス共有モードに設定される場合のバンク配置例を図解した図である。
【図１１】一般的な動的再構成可能ハードウェアの構成の一例を示すブロック図である。
【図１２】図１１に示す動的再構成可能ハードウェアに対して、外部バスから内部のローカルメモリに対してアクセスが行われる様子を図解した図である。
【図１３】内部ローカルメモリとして、マルチポート・メモリを用いた動的再構成ハードウェアの一例を示すブロック図である。
【符号の説明】
１０…処理部、２０…システムメモリ、３０…再構成可能ハードウェア、３１−０〜３１−３…ローカルメモリ、３２…ローカルメモリ・インターフェース部、３３…再構成部、３３−０〜３３−３…演算実行部、３４…構成情報記憶部３４、３５…読み出しアドレス発生部、３５−０〜３５−３…読み出しアドレス発生器、３６−０〜３６−３…読み出しアドレスセレクタ、３７−０〜３７−３…読み出しデータセレクタ、３８…書き込みアドレス発生部、３８−０〜３８−３…書き込みアドレス発生器、３９−０〜３９−３…書き込みアドレスセレクタ、４０−０〜４０−３…書き込みデータセレクタ、４１−０〜４１−３…書き込み制御信号生成器、ＰＲ−０〜ＰＲ−３，ＰＷ−０〜ＰＷ−３，Ｐｓｙｓ…ポート
【図１】
2004348416.tif 000003
【図２】
2004348416.tif 000004
【図３】
2004348416.tif 000005
【図４】
2004348416.tif 000006
【図５】
2004348416.tif 000007
【図６】
2004348416.tif 000008
【図７】
2004348416.tif 000009
【図８】
2004348416.tif 000010
【図９】
2004348416.tif 000011
【図１０】
2004348416.tif 000012
【図１１】
2004348416.tif 000013
【図１２】
2004348416.tif 000014
【図１３】
2004348416.tif 000015