JP4363081B2 - メモリアクセス制御装置およびこれを有する演算システム - Google Patents
メモリアクセス制御装置およびこれを有する演算システム Download PDFInfo
- Publication number
- JP4363081B2 JP4363081B2 JP2003144552A JP2003144552A JP4363081B2 JP 4363081 B2 JP4363081 B2 JP 4363081B2 JP 2003144552 A JP2003144552 A JP 2003144552A JP 2003144552 A JP2003144552 A JP 2003144552A JP 4363081 B2 JP4363081 B2 JP 4363081B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- memory
- write
- read
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明は、メモリに対するアクセスを制御するメモリアクセス制御装置に係り、特に、メモリに対する複数のポートからのアクセスを制御するメモリアクセス制御装置およびこれを有する演算システムに関するものである。
【0002】
【従来の技術】
たとえば特許文献1に記載される演算システムのように、回路の構成をその動作中に変更することが可能な動的再構成可能ハードウェアと称される装置が知られている。
【0003】
動的再構成可能ハードウェアは、一般に、CPU、システムメモリなどとともにシステムバスに接続され、CPUと協調して演算処理を行う。
演算処理の過程において、動的再構成可能ハードウェアの特定のレジスタに構成情報と称される回路構成を定義するためのデータが書き込まれると、その回路は、書き込まれた構成情報に基づいて動的に再構成する。
【0004】
また、動的再構成可能ハードウェアの内部には、一般に、演算対象のデータを格納するためのローカルメモリが設けられている。動的再構成可能ハードウェアにおいて演算が行われる場合、その演算対象のデータは、システムメモリからシステムバスを介してローカルメモリに一旦転送され、その中で処理された後に、再びシステムメモリに書き戻されて、CPU等に利用される。
【0005】
図11は、一般的な動的再構成可能ハードウェアの構成の一例を示すブロック図である。
図11に示す動的再構成可能ハードウェアは、書き込みアドレス発生器1−0〜1−3と、読み出しアドレス発生器2−0〜2−3と、ローカルメモリ3−0〜3−3と、演算器4−0〜4−3と、構成情報レジスタ5とを有する。
【0006】
書き込みアドレス発生器1−n(nは、0から3までの整数を示す)は、演算器4−nにおける処理結果のデータをローカルメモリ3−nに書き込む場合における、書き込み先のアドレスを発生する。
【0007】
読み出しアドレス発生器2−nは、ローカルメモリ3−nに格納されるデータを読み出して演算器4−nに出力する場合における、読み出し先のアドレスを発生する。
【0008】
なお、書き込みアドレス発生器1−nおよび読み出しアドレス発生器2−nにおけるアドレスの発生動作は、構成情報レジスタ5より供給される構成情報に基づいて決定される。
【0009】
ローカルメモリ3−nは、演算器4−nの処理対象となるデータや、その処理結果のデータを格納する。
【0010】
演算器4−nは、ローカルメモリ3−nに格納されるデータに所定の演算を行い、演算結果をローカルメモリ3−nに再び格納する。演算器4−nは、構成情報レジスタ5より供給される構成情報に基づいて再構成し、その再構成の結果として、演算動作を変更する。
【0011】
構成情報レジスタ5は、システムバスを介して書き込まれる構成情報を記憶し、記憶した構成情報を書き込みアドレス発生器1−n、読み出しアドレス発生器2−n、演算器4−nに供給する。
【0012】
図11に示す動的再構成可能ハードウェアによると、書き込みアドレス発生器1−nおよび読み出しアドレス発生器2−nにおけるアドレスの発生動作、ならびに、演算器4−nにおける演算動作は、システムバスを介して構成情報レジスタ5に書き込まれる構成情報に応じて、動的に変更可能である。
【0013】
各演算器(4−0〜4−3)において演算が行われる場合、その演算対象となるデータは、演算器ごとに定められたローカルメモリ(3−0〜3−3)に、システムバスを介して転送される。ローカルメモリ(3−0〜3−3)に転送されたデータは、対応する演算器(4−0〜4−3)によって読み出され、構成情報に応じた所定の演算を施される。演算結果のデータは、対応するローカルメモリ(3−0〜3−3)に書き込まれ、システムバスを介してシステムメモリに書き戻される。
【0014】
【特許文献1】
特開2002−215382
【0015】
【発明が解決しようとする課題】
ところで、図11に示す動的再構成可能ハードウェアでは、ローカルメモリ、アドレス発生器、演算器がそれぞれ1対1に対応している。たとえば、書き込みアドレス発生器1−0および読み出しアドレス発生器2−0において発生するアドレスは、メモリ3−0にアクセスするためのアドレスに限定されており、他のメモリへのアクセスには利用することができない。同様に、メモリ3−0から読み出されるデータの供給先は演算器4−0に限定され、演算器4−0から出力される演算結果の格納先はメモリ3−0に限定される。
【0016】
このように、複数の演算器と複数のローカルメモリを備える従来の動的再構成可能ハードウェアでは、ローカルメモリに対する演算器のアクセスに制限があることから、種々の不利益が生じる。
たとえば、演算器4−0の演算結果を演算器4−1で利用するといったような、演算器間でのデータの受け渡しを伴う演算動作を動的再構成可能ハードウェア内部で実行することができない。
さらに、演算器に対する記憶領域の割り当てが限定されていることから、たとえば、演算動作が一部の演算器において停止している場合において、停止中の演算器に対応するローカルメモリが全く利用されず無駄になってしまう。
【0017】
また、図11に示す動的再構成可能ハードウェアでは、演算器がローカルメモリをアクセスしている間、動的再構成可能ハードウェアの演算対象となるデータをシステムバスからローカルメモリに書き込む処理や、演算結果をローカルメモリから読み出してシステムバスに出力する処理を実行することができない。
したがって、システムバスからローカルメモリにアクセスするためには、図12に示すように、演算器が停止した状態において、ローカルメモリに対するアドレス供給元を内部のアドレス発生器から外部のアドレスバスBA_exに切り換えるとともに、ローカルメモリの入出力ポートを内部の演算器から外部のデータバスBD_exに切り換える必要がある。
このように、外部バスから動的再構成可能ハードウェア内部のローカルメモリにアクセスするためには演算器を停止させなくてはならないので、演算の停止による処理の遅延時間が生じる不利益がある。
【0018】
そこで、たとえば図13に示すように、複数の独立したローカルメモリを、1つのマルチポート・メモリに置き換えることによって、上述した不利益を解決する方法も考えられる。マルチポート・メモリを用いることにより、複数の入出力ポートからメモリ全体のアドレス空間に同時にアクセスすることが可能になるため、演算器間でのデータの受け渡しを伴う演算動作が可能になるとともに、演算器に対する記憶領域の割り当ての自由度を高めることができる。
しかしながら、一般にマルチポート・メモリは半導体集積回路をとして実現した場合に面積が非常に大きくなるため、これを用いた場合、コストの増加を招く不利益がある。
【0019】
本発明はかかる事情に鑑みてなされたものであり、その目的は、簡易な構成でありながら、複数のポートから複数のメモリに対してより自由にアクセスすることを可能とするメモリアクセス制御装置を提供することにある。
また、本発明の他の目的は、そのようなメモリアクセス制御装置を備えることにより、簡易な構成でありながら、再構成可能な複数の演算器から複数のメモリに対してより自由にアクセスすることを可能とする演算システムを提供することにある。
【0020】
【課題を解決するための手段】
上記の目的を達成するため、本発明の第1の観点は、複数のメモリに対する複数のポートからのアクセスを制御するメモリアクセス制御装置として、アドレス選択部と、読み出しデータ選択部とを有する。
上記アドレス選択部は、アクセス対象のメモリとその記憶領域を指示するアドレスとして、上記複数のポートに対応して入力される複数のアドレスの中から、上記メモリと上記ポートとを関連付ける第1の情報に応じて、上記メモリに供給するアドレスをそれぞれ選択する。
上記読み出しデータ選択部は、上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータを、出力先のポートに対応して入力される上記アドレスに応じてそれぞれ選択する。
【0021】
本発明の第1の観点によると、上記ポートからアクセスの対象となるメモリは、上記ポートに対応して入力されるアドレスにおいて任意に指示される。また、上記メモリと上記ポートとの関連付けは、上記第1の情報において任意に設定される。
上記アドレス選択部では、上記複数のポートに対応して入力される複数のアドレスの中から、上記第1の情報における上記メモリと上記ポートとの関連付けに応じて、上記メモリに供給するアドレスがそれぞれ選択される。これにより、上記メモリには、たとえば、上記第1の情報において関連付けが設定されるポートに対応して入力されるアドレスが供給される。
また、上記読み出しデータ選択部では、上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータの選択が行われる。読み出しデータの選択は、その出力先のポートに対応して入力されるアドレスに応じて行われる。たとえば、そのアドレスにおいてアクセス対象として指示されるメモリからの読み出しデータが選択される。
【0022】
また、本発明の第1の観点は、書き込みデータ選択部と、書き込み制御信号生成部とを有しても良い。
上記複数の書き込みデータ選択部は、上記ポートより入力される複数の書き込みデータの中から、上記メモリに供給する書き込みデータを第1の情報に応じてそれぞれ選択する。
上記書き込み制御信号生成部は、上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する。
【0023】
上記の構成によると、上記書き込みデータ選択部では、上記メモリに供給する書き込みデータとして、上記複数のポートより入力される書き込みデータの中から、上記第1の情報に応じたデータがそれぞれ選択される。したがって、メモリに供給する書き込みデータの入力ポートは、上記第1の情報における上記メモリと上記ポートとの関連付けに応じて任意に設定される。
また、上記書き込み制御信号生成部では、上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号が生成される。したがって、上記メモリにおいてデータ書き込みを許可するか否かは、当該メモリに供給されるアドレスにおいて、当該メモリがアクセス対象として指示されているか否かに応じて決定される。
【0024】
また、入力される第2の情報において、他のメモリが読み出し対象となるアドレスを自らが読み出し対象となるアドレスとして使用可能とすべきメモリが指定された場合、上記読み出しデータ選択部は、次のように動作しても良い。
すなわち、上記読み出しデータ選択部は、上記第2の情報において指定されるメモリの読み出しデータを、当該指定されるメモリに対して予め決められた特定のポートに出力する。
【0025】
上記の動作によると、上記読み出しデータ選択部では、上記第2の情報において指定されるメモリの読み出しデータが、当該指定されるメモリに対して予め決められた特定の読み出しポートに出力される。したがって、当該指定されるメモリにアドレスが供給される場合、その供給アドレスは、他のメモリをアクセス対象としたアドレスであっても、当該指定されるメモリをアクセス対象としたアドレスとして使用され、アドレスに応じたデータが当該指定されるメモリから読み出される。そして、その読み出しデータは、当該指定されるメモリに対して予め決められた特定の読み出しポートに出力される。
【0026】
また、入力される第2の情報において、他のメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能とすべきメモリが指定された場合、上記書き込みデータ選択部および上記書き込み制御信号生成部は、次のように動作しても良い。
すなわち、上記書き込みデータ選択部は、上記第2の情報において指定されるメモリに対して予め決められた特定の書き込みポートから入力される書き込みデータを、当該指定されるメモリに供給する。
上記書き込み制御信号生成部は、当該指定されるメモリにおけるデータ書き込みを許可する書き込み制御信号を生成する。
【0027】
上記の動作によると、上記書き込みデータ選択部では、上記第2の情報において指定されるメモリに供給する書き込みデータとして、当該指定されるメモリに対して予め決められた特定の書き込みポートから入力される書き込みデータが選択される。したがって、当該指定されるメモリには、その書き込みデータとして、当該指定されるメモリに対して予め決められた特定の書き込みポートより入力されるデータが供給される。
また、上記書き込み制御信号生成部では、当該指定されるメモリにおけるデータ書き込みを許可する書き込み制御信号が生成される。したがって、当該指定されるメモリでは、その供給アドレスが他のメモリをアクセス対象としたアドレスであっても、書き込み制御信号によってデータ書き込みが許可される。
【0028】
さらに、他のメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能とすべきメモリが指定されるとともに、上記指定されるメモリに書き込みデータを入力すべきポートが指定された場合、上記アドレス選択部および上記書き込みデータ選択部は、次のように動作しても良い。
すなわち、上記アドレス選択部は、上記第2の情報において指定されるポートに対応して入力されるアドレスを選択して、上記第2の情報において指定されるメモリに供給する。
上記書き込みデータ選択部は、当該指定されるポートから入力される書き込みデータを選択して、当該指定されるメモリに供給する。
【0029】
上記の動作によると、上記アドレス選択部では、当該指定されるメモリに供給する書き込みデータとして、上記第2の情報において指定されるポートに対応して入力されるアドレスが選択される。上記書き込みデータ選択部では、当該指定されるメモリに供給する書き込みデータとして、上記第2の情報において指定されるポートより入力されるデータが選択される。
たとえば、上記第2の情報において指定されるメモリが複数存在し、これらのメモリに書き込みデータを入力すべきポートとして共通のポートが指定されると、この共通のポートから入力される書き込みデータは、当該共通ポートに対応するアドレスの入力に応じて、当該指定される複数のメモリに同時に書き込まれる。
【0030】
本発明の第2の観点は、演算システムとして、複数のポートを介してアクセスを受ける複数のメモリと、演算実行部と、メモリアクセス制御装置と、を有する。
上記演算実行部は、供給される構成情報に基づいて再構成する。また、所定のポートから出力される上記メモリの読み出しデータに所定の演算を行う。
上記メモリアクセス制御装置は、供給される構成情報に基づいて、上記複数のポートからの上記複数のメモリに対するアクセスを制御する。
また、上記メモリアクセス制御装置は、アドレス選択部と、読み出しデータ選択部とを含む。
上記アドレス選択部は、アクセス対象のメモリとその記憶領域を指示するアドレスとして、上記複数のポートに対応して入力される複数のアドレスの中から、上記メモリと上記ポートとを関連付ける上記構成情報の第1の情報に応じて、上記メモリに供給するアドレスをそれぞれ選択する。
上記読み出しデータ選択部は、上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータを、出力先のポートに対応して入力される上記アドレスに応じてそれぞれ選択する。
【0031】
本発明の第2の観点によると、上記演算実行部では、上記構成情報に基づいて再構成が行われる。また、所定のポートから出力される上記メモリの読み出しデータに対して所定の演算が行われる。
この演算実行部のアクセス対象となるメモリは、上記複数のポートに対応して入力されるアドレスにおいて任意に指示される。また、上記メモリと上記ポートとの関連付けは、上記構成情報の第1の情報において任意に設定される。
上記アドレス選択部では、上記複数のポートに対応して入力される複数のアドレスの中から、上記第1の情報における上記メモリと上記ポートとの関連付けに応じて、上記メモリに供給するアドレスがそれぞれ選択される。これにより、上記メモリには、たとえば、上記第1の情報において関連付けが設定されるポートに対応して入力されるアドレスが供給される。
また、上記読み出しデータ選択部では、上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータの選択が行われる。読み出しデータの選択は、その出力先のポートに対応して入力されるアドレスに応じて行われる。たとえば、そのアドレスにおいてアクセス対象として指示されるメモリからの読み出しデータが選択される。
【0032】
また、本発明の第2の観点において、上記演算実行部は、その演算結果を、上記複数のメモリの書き込みデータとして所定のポートに入力し、上記メモリアクセス制御装置は、書き込みデータ選択部と、書き込み制御信号生成部とを含んでも良い。
上記書き込みデータ選択部は、上記複数のポートより入力される書き込みデータの中から、上記メモリに供給する書き込みデータを上記第1の情報に応じてそれぞれ選択する。
上記書き込み制御信号生成部は、上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する。
【0033】
上記の構成によると、上記書き込みデータ選択部では、上記メモリに供給する書き込みデータとして、上記複数のポートより入力される書き込みデータの中から、上記第1の情報に応じたデータがそれぞれ選択される。したがって、メモリに供給する書き込みデータの入力ポートは、上記第1の情報における上記メモリと上記ポートとの関連付けに応じて任意に設定される。
また、上記書き込み制御信号生成部では、上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号が生成される。したがって、メモリにおいてデータ書き込みを許可するか否かは、当該メモリに供給されるアドレスにおいて、当該メモリがアクセス対象として指示されているか否かに応じて決定される。
【0034】
【発明の実施の形態】
図1は、本発明の実施形態に係る演算システムの構成の一例を示すブロック図である。
図1に示す演算システムは、処理部10と、システムメモリ20と、再構成可能ハードウェア30とを有する。
【0035】
処理部10は、図示しない記憶部に格納されるプログラムに基づき、所定の演算処理を実行する。
その演算処理の過程において、たとえば、システムバスBsysを介してシステムメモリ20にアクセスし、その格納データに上記プログラムに応じた所定の演算を施す。また、システムバスBsysを介して再構成可能ハードウェア30にアクセスし、これに構成情報を供給してその内部状態を設定する処理や、システムメモリ20から再構成可能ハードウェア30へ演算対象データを供給する処理、再構成可能ハードウェア30の演算結果をシステムメモリ20へ書き戻す処理を実行する。
【0036】
システムメモリ20は、処理部10や再構成可能ハードウェア30に演算に使用されるデータやその演算結果を格納する。システムメモリ20は、システムバスBsysを介して処理部10および再構成可能ハードウェア30と接続されており、その格納データはシステムバスBsysを介して転送される。
【0037】
再構成可能ハードウェア30は、CPU10より供給される構成情報に応じて、その内部回路を再構成する。たとえば、回路の動作中に供給される構成情報に応じて、内部回路を動的に再構成することができる。
また、再構成可能ハードウェア30は、供給される構成情報に応じて、その内部に装備したローカルメモリに対するシステムバスBsysからのアクセスを可能な状態に設定する。この状態において、処理部10の制御によりシステムメモリ20からシステムバスBsysへデータが出力されると、これを内部のローカルメモリに一旦格納する。
再構成可能ハードウェア30は、ローカルメモリに格納したデータに対して、構成情報により設定される回路構成に応じた所定の演算を施し、その演算結果をローカルメモリに書き戻す。ローカルメモリに格納された演算結果は、処理部10からの読み出しアクセスに応じてシステムバスBsysに出力され、システムメモリ20に書き戻される。
【0038】
図1の例において、再構成可能ハードウェア30は、本発明における複数のメモリの一実施形態であるローカルメモリ31−0〜31−3と、ローカルメモリ・インターフェース部32と、再構成部33と、構成情報記憶部34とを有する。
【0039】
ローカルメモリ31−0〜31−3は、再構成部33やシステムバスBsysからローカルメモリ・インターフェース部32を介して供給されるデータを記憶するとともに、その記憶したデータをローカルメモリ・インターフェース部32を介して再構成部33やシステムバスBsysに出力する。
ローカルメモリ31−0〜31−3には、たとえば、読み出しデータ用のポートと書き込みデータ用のポートとが共通なシングルポート・メモリを用いても良いし、あるいは、読み出しデータ用のポートと書き込みデータ用のポートとをそれぞれ備え、読み書きを同時に実行することが可能なデュアルポート・メモリを用いても良い。
【0040】
ローカルメモリ・インターフェース部32は、構成情報記憶部34より供給される構成情報に基づいて、再構成部33やシステムバスBsysからのローカルメモリ31−0〜31−3に対するアクセスを制御する。
【0041】
再構成部33は、構成情報記憶部34より供給される構成情報に基づいて、内部回路を再構成する。
再構成部33は、後述するように、構成情報に応じた演算動作を行う複数の演算実行部を有しており、これらの演算実行部がローカルメモリ・インターフェース部32を介してローカルメモリ31−0〜31−3にアクセスする。すなわち、複数の演算実行部が、これらのメモリから演算対象データをそれぞれ読み出し、構成情報により設定される回路構成に応じた所定の演算を施し、その演算結果をこれらのメモリに書き戻す。
【0042】
構成情報記憶部34は、システムメモリ20あるいは図示しない他の記憶部よりシステムバスBsysを介して転送される構成情報を記憶する。また、記憶した構成情報を、ローカルメモリ・インターフェース部32や再構成部33に供給する。
【0043】
次に、上述した再構成可能ハードウェア30の更に詳細な構成の一例について、図2および図3を参照して説明する。
【0044】
図2および図3は、再構成可能ハードウェア30の構成例を示すブロック図であり、図2はローカルメモリからの読み出しアクセスに係わる部分を、図3はローカルメモリへの書き込みアクセスに係わる部分をそれぞれ抜き出して示した図である。図1、図2、および図3における同一符号は同一の構成要素を示す。
図2および図3の示すように、再構成可能ハードウェア30は、既に述べたローカルメモリ31−0〜31−3、再構成部33、および再構成情報記憶部34に加えて、ローカルメモリ・インターフェース部33に含まれる構成として、読み出しアドレス発生部35、読み出しアドレスセレクタ36−0〜36−3、読み出しデータセレクタ37−0〜37−4、書き込みアドレス発生部38、書き込みアドレスセレクタ39−0〜39−3、書き込みデータセレクタ40−0〜40−3、および、書き込み制御信号生成部41を有する。
また、図2および図3の例において、再構成部33は演算実行部33−0〜33−3を含み、読み出しアドレス発生部35は読み出しアドレス発生器35−0〜35−3を含み、書き込みアドレス発生部38は書き込みアドレス発生器38−0〜38−3を含み、書き込み制御信号生成部41は書き込み制御信号生成器41−0〜41−3を含む。
【0045】
なお、読み出しアドレスセレクタ36−0〜36−3、読み出しデータセレクタ37−0〜37−4、書き込みアドレスセレクタ39−0〜39−3、書き込みデータセレクタ40−0〜40−3、および、書き込み制御信号生成部41を含むユニットは、本発明のメモリアクセス制御装置の一実施形態である。
演算実行部33−0〜33−3は、本発明の演算実行部の一実施形態である。
読み出しアドレスセレクタ36−0〜36−3を含むユニットは、本発明の読み出しアドレス選択部の一実施形態である。
書き込みアドレスセレクタ39−0〜39−3を含むユニットは、本発明の書き込みアドレス選択部の一実施形態である。
読み出しデータセレクタ37−0〜37−4を含むユニットは、本発明の読み出しデータ選択部の一実施形態である。
書き込みデータセレクタ40−0〜40−3を含むユニットは、本発明の書き込みデータ選択部の一実施形態である。
書き込み制御信号生成部41は、本発明の書き込み制御信号生成部の一実施形態である。
読み出しアドレス発生部35は、本発明の読み出しアドレス発生部の一実施形態である。
書き込みアドレス発生部38は、本発明の書き込みアドレス発生部の一実施形態である。
【0046】
演算実行部33−n(nは、0から3までの整数を示す)は、所定の演算を行うユニットであり、構成情報記憶部34より供給される構成情報に基づいて再構成する。演算の内容は、構成情報に応じて変更可能である。
また、演算実行部33−nは、読み出しポートPR−nから出力されるローカルメモリ31−0〜31−3の読み出しデータに所定の演算を行い、その演算結果を書き込みデータとして、書き込みポートPW−nからローカルメモリ31−0〜31−3に入力する。
【0047】
読み出しアドレス発生器35−nは、演算実行部33−nが読み出し対象とするローカルメモリとその記憶領域を指示する読み出しアドレスARnを発生する。すなわち、読み出しアドレス発生器35−nが発生する読み出しアドレスARnは、4つのローカルメモリ(31−0〜31−3)の中から読み出し対象メモリを指示するためのアドレス情報ARSnと、指示したローカルメモリの内部における記憶領域を指示するためのアドレス情報ARMnとを含む。
【0048】
たとえば、ローカルメモリ31−0〜31−3がそれぞれ1Kワードの記憶容量を有するものとした場合、アドレス情報ARMnとして10ビットのデータを発生する。また、4つのローカルメモリ(31−0〜31−3)の中から1つを指示するアドレス情報ARSnとして、2ビットのデータを発生する。
アドレス情報ARSnを上位ビット、アドレス情報ARMnをその下位ビットとした場合、読み出しアドレス発生器35−nが発生する読み出しアドレスARnは、後述するように、ローカルメモリ31−0〜31−3の各アドレス空間を包括した論理アドレス空間上のアドレスとなる。
【0049】
読み出しアドレスセレクタ36−nは、読み出しアドレス発生器35−0〜35−3において発生する読み出しアドレスAR0〜AR3、および、再構成可能ハードウェア30の外部からローカルメモリ31−0〜31−3にアクセスするためのアドレスとしてシステムバスBsysより入力されるアドレスAsysの中から、構成情報記憶部34より供給される構成情報に応じて、ローカルメモリ31−nに供給するアドレスを選択する。
【0050】
たとえば図2に示すように、読み出しアドレスセレクタ36−nは、ローカルメモリ内部の記憶領域を指示するアドレス情報を入力し、その選択を行う。
すなわち、読み出しアドレス発生器35−0〜35−3において発生する読み出しアドレスAR0〜AR3のうち、ローカルメモリ内部の記憶領域を指示するアドレス情報ARM0〜ARM3を入力する。また、システムバスBsysより入力されるアドレスAsysのうち、ローカルメモリ内部の記憶領域を指示するアドレス情報AMsysを入力する。そして、これらの入力したアドレス情報の中から、構成情報記憶部34より供給される構成情報に応じて、ローカルメモリ31−nに供給するアドレスを選択する。
【0051】
読み出しデータセレクタ37−nは、読み出しアドレスの供給に応じてローカルメモリ31−0〜31−3から読み出される読み出しデータの中から、読み出しアドレス発生器35−nより発生するアドレスARnに応じて、読み出しポートPR−nに出力する読み出しデータを選択する。
上述したように、読み出しアドレス発生器35−nより発生する読み出しアドレスARnは、演算実行部33−nに供給するデータを読み出すためのアドレスであるとともに、この読み出しデータは読み出しポートPR−nを介して演算実行部33−nに供給されることから、読み出しポートPR−nに対応して発生するアドレスでもある。すなわち、読み出しデータセレクタ37−nは、ローカルメモリから読み出される複数の読み出しデータの中から、読み出しポートPR−nに出力する読み出しデータを、この出力先の読み出しポートPR−n対応して発生するアドレスARnに応じて選択する。
図2の例によると、具体的には、このアドレスARnに含まれる、アクセス対象メモリを指示するためのアドレス情報ARS−nに応じて、読み出しポートPR−nに出力する読み出しデータの選択を行う。
【0052】
読み出しデータセレクタ37−4は、読み出しアドレスの供給に応じてローカルメモリ31−0〜31−3から読み出される読み出しデータの中から、システムバスBsysより入力されるアドレスAsysに応じて、入出力ポートPsysに出力する読み出しデータを選択する。入出力ポートPsysは、再構成可能ハードウェア30の外部からローカルメモリ31−0〜31−3にアクセスするためのポートであり、システムバスBsysに接続されている。したがって、読み出しデータセレクタ37−4から出力されるデータDsysは、入出力ポートPsysを介してデータバスBsysに出力される。
図2の例によると、具体的には、アドレスAsysに含まれる、アクセス対象メモリを指示するためのアドレス情報ASsysに応じて、入出力ポートPsysに出力する読み出しデータの選択が行われる。
【0053】
書き込みアドレス発生器38−nは、構成情報記憶部34より供給される構成情報に基づいて、演算実行部33−nが書き込み対象とするローカルメモリとその記憶領域を指示するアドレスを発生する。すなわち、書き込みアドレス発生器38−nが発生する書き込みアドレスAW0〜AW3は、4つのローカルメモリ(31−0〜31−3)の中から書き込み対象メモリを指示するためのアドレス情報AWSnと、指示したローカルメモリの内部における記憶領域を指示するためのアドレス情報AWMnとを含む。
アドレス情報AWSnを上位ビット、アドレス情報AWMnをその下位ビットとした場合、書き込みアドレス発生器38−nが発生する書き込みアドレスAW0〜AW3は、上述した読み出しアドレスAR0〜AR3と同様に、ローカルメモリ31−0〜31−3の各アドレス空間を包括した論理アドレス空間上のアドレスとなる。
【0054】
書き込みアドレスセレクタ39−nは、書き込みアドレス発生器38−0〜38−3において発生する書き込みアドレスAW0〜AW3、および、システムバスBsysより入力されるアドレスAsysの中から、構成情報記憶部34より供給される構成情報に応じて、ローカルメモリ31−nに供給するアドレスを選択する。
【0055】
たとえば図3に示すように、書き込みアドレスセレクタ39−nは、ローカルメモリ内部の記憶領域を指示するアドレス情報を入力し、その選択を行う。
すなわち、書き込みアドレス発生器38−0〜38−3において発生する書き込みアドレスAW0〜AW3のうち、ローカルメモリ内部の記憶領域を指示するアドレス情報AWM0〜AWM3を入力するとともに、システムバスBsysより入力されるアドレスAsysのうち、ローカルメモリ内部の記憶領域を指示するアドレス情報AMsysを入力する。そして、これらの入力したアドレス情報の中から、構成情報記憶部34より供給される構成情報に応じて、ローカルメモリ31−nに供給するアドレスを選択する。
【0056】
書き込みデータセレクタ40−nは、書き込みポートPW−0〜PW3および入出力ポートPsysを介して入力される書き込みデータの中から、構成情報記憶部34より供給される構成情報に応じて、ローカルメモリ31−nに供給する書き込みデータを選択する。
図3の例において、書き込みデータセレクタ40−nに供給される構成情報は、書き込みアドレスセレクタ39−nに供給される構成情報と同一である。後述するように、書き込みアドレスセレクタ39−nおよび書き込みデータセレクタ40−nに供給される構成情報は、ローカルメモリと各ポートとを関連付ける情報であり、書き込みアドレスセレクタ39−nにおいてあるアドレスが選択されると、書き込みデータセレクタ40−nは、この選択されたアドレスに対応するポートより入力される書き込みデータを選択する。
たとえば、書き込みアドレスセレクタ39−nにおいてアドレス情報AWM1が選択される場合、アドレス情報AWM1は演算実行部33−1の演算結果をローカルメモリに書き込むためのアドレスであるため、書き込みデータセレクタ40−nは、演算実行部33−1に接続される書き込みポートPW−1より入力されるデータを選択する。また、書き込みアドレスセレクタ39−nにおいてアドレス情報AMsysが選択される場合、アドレス情報AMsysは入出力ポートPsysより入力されるデータをローカルメモリに書き込むためのアドレスであるため、書き込みデータセレクタ40−nは、入出力ポートPsysより入力されるデータを選択する。
【0057】
書き込み制御信号生成器41−nは、書き込みアドレスセレクタ39−nにおいて選択される書き込みアドレスが、この書き込みアドレスの供給先であるローカルメモリ31−nを書き込み対象として指示するアドレスであるか否かに応じて、ローカルメモリ31−nにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する。
【0058】
たとえば図3に示すように、書き込み制御信号生成器41−nは、書き込みアドレスセレクタ39−nに供給されるものと同一の構成情報を入力するとともに、書き込み対象メモリを指示するためのアドレス情報(AWS0〜AWS3、ASsys)を入力する。そして、入力した構成情報に基づいて、書き込みアドレスセレクタ39−nにおいて選択されるアドレスに対応したアドレス情報(AWS0〜AWS3、ASsys)を特定し、特定したアドレス情報がローカルメモリ31−nを書き込み対象として指示するものであるか否かを判定する。この判定結果に応じて、ローカルメモリ31−nにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する。
【0059】
次に、上述した構成を有する図1に示す演算システムについて、特に再構成可能ハードウェア30におけるローカルメモリのアクセス制御に係わる部分を中心に、その動作を説明する。
【0060】
処理部10では、図示しない記憶部に格納されるプログラムに基づき、所定の演算処理が実行される。その演算処理の過程で、処理部10の制御に応じて、再構成可能ハードウェア30の構成情報記憶部34に構成情報が書き込まれると、書き込まれた構成情報は、再構成部33やローカルメモリ・インターフェース部32に供給され、その内部状態が構成情報に応じて設定される。
たとえば、演算実行部33−0〜33−3における演算処理の内容や、読み出しアドレス発生部35および書き込みアドレス発生部38において発生するアドレスの値とその発生タイミング、読み出しアドレスセレクタ36−0〜36−3および書き込みアドレスセレクタ39−0〜39−3において選択されるアドレス、読み出しデータセレクタ37−0〜37−4および書き込みデータセレクタ40−0〜40−3において選択されるデータ、書き込み制御信号生成部41において生成される書き込み制御信号の値などが、構成情報記憶部34に書き込まれる構成情報に応じて設定される。
【0061】
図4は、読み出しアドレスセレクタ36−0〜36−3および書き込みアドレスセレクタ39−0〜39−3にそれぞれ供給される構成情報の一例を図解した図である。なお、書き込みデータセレクタ40−nおよび書き込み制御信号生成器41−nに供給される構成情報は、上述したように、書き込みアドレスセレクタ39−nに供給される構成情報と同一である。
これらのユニットに供給される構成情報は、論理アドレス空間上における各ローカルメモリのアドレス空間の配置に係わる情報であることから、以降の説明では、この構成情報を配置情報と呼ぶことにする。
配置情報は、たとえば図4に示すように、4ビットのデータによって表される。
【0062】
この4ビットのうち、2ビットのデータAGは、それぞれのアドレスセレクタ(36−0〜36−3、39−0〜39−3)において選択すべきアドレスの供給元のアドレス発生器(35−0〜35−3、38−0〜38−3)を設定するデータである。
たとえば、読み出しアドレスセレクタ36−nに値‘3’のデータAGを有する配置情報が供給される場合、読み出しアドレスセレクタ36−nでは、読み出しアドレス発生器35−3において発生するアドレス情報ARM3が選択され、ローカルメモリ31−nに供給される。
また、たとえば、書き込みアドレスセレクタ39−nに値‘1’のデータAGを有する配置情報が供給される場合、書き込みアドレスセレクタ39−nでは、書き込みアドレス発生器38−1において発生するアドレス情報AWM1が選択され、ローカルメモリ31−nに供給される。
【0063】
なお、アドレス発生器(35−0〜35−3、38−0〜38−3)は、演算実行部(33−0〜33−3)に接続されるポート(PR−0〜PR−3、PW−0〜PW3)と1対1に対応していることから、このデータAGは、ポートを示すデータでもある。すなわち、このデータAGがそれぞれのローカルメモリ(31−0〜31−3)に対応するアドレスセレクタ(36−0〜36−3、39−0〜39−3)に供給されることにより、ローカルメモリ(31−0〜31−3)と、これにアクセスするデータが入力または出力されるポート(PR−0〜PR−3、PW−0〜PW3)との関連付けが設定される。
【0064】
また、配置情報のうち、1ビットのデータEXTは、ローカルメモリ(31−0〜31−3)にアクセスするデータが入力または出力されるポートとして、システムバスBsysに接続される入出力ポートPsysを設定するためのデータである。たとえば、データEXTが‘0’の場合、データAGが有効となり、上述したように、ローカルメモリ(31−0〜31−3)は演算実行部33−0〜33−3に接続されるポート(PR−0〜PR−3、PW−0〜PW3)に関連付けられる。一方、データEXTが‘1’の場合、データAGが無効となり、ローカルメモリ(31−0〜31−3)は入出力ポートPsysに関連付けられる。
たとえば、読み出しアドレスセレクタ36−nに供給される配置情報においてデータEXTが‘1’に設定されると、ローカルメモリ31−nに供給する読み出しアドレスとして、システムバスBsysから入力されるアドレス情報AMsysが選択される。また、書き込みアドレスセレクタ39−nに供給される配置情報においてデータEXTが‘1’に設定されると、ローカルメモリ31−nに供給する書き込みアドレスとして、システムバスBsysから入力されるアドレス情報AMsysが選択される。
すなわち、配置情報のデータEXTによって、ローカルメモリ(31−0〜31−3)と入出力ポートPsysとの関連付けが設定される。
【0065】
また、配置情報のうち、1ビットのデータSAは、後述する共有アドレスモードを有効または無効にするためのデータである。たとえば、データSAが‘0’に設定される場合に共有アドレスモードは有効となり、‘1’に設定される場合に無効となる。
【0066】
このような配置情報によって、それぞれのローカルメモリの物理的なアドレス空間が各ポートに対応する論理アドレス空間上に配置される様子を図解したのが図5である。図5と図1〜図3における同一符号は同一の構成要素を示す。
【0067】
アドレス発生器(35−0〜35−3、38−0〜38−3)において発生するアドレス(AR0〜AR3、AW0〜AW3)、ならびにシステムバスBsysより入力されるアドレスAsysは、何れもアクセス対象となるローカルメモリとその記憶領域を指示するアドレスである。このため、これらのアドレスは、4つのローカルメモリ(31−0〜31−3)のアドレス空間を包括した、論理アドレス空間上のアドレスと見なすことができる。
これらのアドレスは、それぞれポート(PR−0〜PR−3、PW−0〜PW3、Psys)と1対1に対応して発生または入力されるアドレスである。
また、それぞれのポート(PR−0〜PR−3、PW−0〜PW3、Psys)からそれぞれのローカルメモリ(31−0〜31−3)にアクセスできるか否かは、上述した配置情報によるローカルメモリとポートとの関連付けによって任意に設定される。
したがって、論理アドレス空間上においてアクセス可能なアドレスの範囲は、ポートごとに異なる。
そこで、以降の説明では、それぞれのポートに対応付けられる論理アドレス空間を想定し、これをレーン(lane)と呼ぶことにする。
【0068】
図5において、レーンLN_EはポートPsysに対応し、レーンLNnは読み出しポートPR−nおよび書き込みポートPW−nに対応する。
なお、図5の例は、1つのローカルメモリに対する読み出しアクセスと書き込みアクセスとが共通の演算実行部(またはシステムバスBsys)から実行されるように、ローカルメモリとポートとの関連付けが設定される場合の例である。このように、1つのローカルメモリに対して読み出しアクセスと書き込みアクセスを実行する演算実行部が同じ場合、読み出しアクセスと書き込みアクセスとが同時に発生することがないため、ローカルメモリとしてシングルポート・メモリを用いることができる。
一方、ローカルメモリとしてデュアルポート・メモリを用いることにより、1つのローカルメモリに対する読み出しアクセスと書き込みアクセスとを異なる演算実行部(またはシステムバスBsys)から実行することも可能である。この場合、たとえば後述の図7に示すように、読み出しポートと書き込みポートとに対してそれぞれ独立のレーンが対応づけられる。
【0069】
また、それぞれのレーンは、各ローカルメモリ(31−0〜31−3)の物理的アドレス空間に対応した複数のアドレス範囲に分割される。以降の説明では、各ローカルメモリ(31−0〜31−3)の物理的アドレス空間をバンク(bank)と呼び、レーン上において各バンクに対応するアドレス範囲をセグメント(segment)と呼ぶことにする。図5の例では、セグメントSG0〜SG3がローカルメモリ31−0〜31−3のバンクにそれぞれ対応する。
なお、ローカルメモリがデュアルポート・メモリを用いて構成される場合、たとえば後述の図7に示すように、それぞれのローカルメモリは、読み出し用と書き込み用の2つのバンクを有する。
また、それぞれのレーンは、少なくとも、各ローカルメモリが有するバンクの記憶サイズを合計したものと等しい記憶サイズを有する。
【0070】
上述したように、それぞれのポート(PR−0〜PR−3、PW−0〜PW−3、Psys)からアクセス可能なローカルメモリは、配置情報に応じて任意に設定される。このことは、図5において視覚的に示すように、バンクが任意のレーンの対応するセグメント上に配置されるものと考えることができる。すなわち、あるバンクがあるレーンに配置されるということは、当該レーン上の当該バンクに対応するセグメントが、当該レーンに対応するポートからアクセス可能になることを意味する。
【0071】
さて、レーンにおけるバンクの配置が配置情報に応じて上記のように設定されると、各ポート(PR−0〜PR−3、PW−0〜PW−3、Psys)からのローカルメモリ(31−0〜31−3)に対する読み出しアクセスおよび書き込みアクセスは、この配置に基づいて制御される。
【0072】
すなわち、ローカルメモリ31−nに対して読み出しアクセスが実行される場合、ローカルメモリ31−nには、そのバンクが配置されるレーン(仮にレーンLNxと呼ぶ)に対応して発生または入力される読み出しアドレス(仮にアドレスAxと呼ぶ)が読み出しアドレスセレクタ36−nによって選択されて供給される。
ローカルメモリ31−nから読み出されるデータは、アドレスAxがローカルメモリ31−nをアクセス対象として指示するアドレスの場合に、レーンLNxに対応する読み出しデータセレクタ37−m(mは、0から4までの整数を示す)において選択され、レーンLNxに対応するポートへ出力される。
【0073】
なお、レーンLNxに対応するアドレスAxがローカルメモリ31−nをアクセス対象として指示していないが、レーンLNxに配置される他のローカルメモリをアクセス対象として指示している場合、読み出しデータセレクタ37−mにおいては、配置情報の設定に対して有効な読み出しデータが選択される。
一方、レーンLNxに対応するアドレスAxがレーンLNxに配置されないローカルメモリをアクセス対象として指示している場合、読み出しデータセレクタ37−mにおいては、配置情報の設定に対して無効なデータが選択される。
このような無効なデータの選択を防止するためには、たとえば、読み出しアドレス発生器(35−0〜35−3)において発生するアドレスが、配置情報の設定に対して有効なローカルメモリをアクセス対象として指示するように、読み出しアドレス発生器(35−0〜35−3)に対して適切な構成情報を供給すれば良い。
あるいは、たとえば、読み出しデータ選択部において選択される読み出しデータが有効か否かを示す読み出し制御信号をそれぞれ生成する読み出し制御信号生成部を設けても良い。この読み出し制御信号生成部は、読み出しデータ選択部において選択される読み出しデータの供給元のローカルメモリと、当該選択される読み出しデータの出力先のポートとが、供給される構成情報において関連付けられているか否かを判定し、当該判定結果に応じて、当該選択される読み出しデータが有効か否かを示す読み出し制御信号を生成する。
このような読み出し制御信号生成部を設けることにより、読み出しデータを受け取る演算実行部等において、受け取った読み出しデータが配置情報の設定に対して有効か否かを把握することが可能になる。たとえば、読み出しデータが無効であることを示す読み出し制御信号が生成される場合、この読み出しデータを受け取る演算実行部において、演算処理を停止させることも可能である。これにより、無効な読み出しデータに演算処理を施さずに済み、無駄な電力損失を減らすことができる。
【0074】
また、ローカルメモリ31−nに対して書き込みアクセスが実行される場合、ローカルメモリ31−nには、そのバンクが配置されるレーン(仮にレーンLNyと呼ぶ)に対応して発生または入力される書き込みアドレス(仮にアドレスAyと呼ぶ)が書き込みアドレスセレクタ39−nにより選択されて供給されるとともに、レーンLNyに対応するポートから入力される書き込みデータが書き込みデータセレクタ40−nにより選択されて供給される。
書き込みアドレスセレクタ39−nにより選択されるアドレスが、ローカルメモリ31−nをアクセス対象として指示する場合、書き込み制御信号生成器41−nでは、ローカルメモリ31−nにおけるデータ書き込みを許可する書き込み制御信号が生成される。この場合、レーンLNyに対応するポートから入力される書き込みデータがローカルメモリ31−nに書き込まれる。
書き込みアドレスセレクタ39−nにより選択されるアドレスにおいてローカルメモリ31−nがアクセス対象でない場合、書き込み制御信号生成器41−nでは、ローカルメモリ31−nにおけるデータ書き込みを禁止する書き込み制御信号が生成される。この場合、レーンLNyに対応するポートから入力される書き込みデータはローカルメモリ31−nに書き込まれない。
【0075】
次に、レーンに対するバンクの配置例について、図6〜図10を参照して説明する。
【0076】
図6は、1つのレーンに複数のバンクを配置する例を図解した図である。
【0077】
図6の例において、演算実行部33−2の読み出しポートPR−2および書き込みポートPW−2に対応するレーンLN2には、ローカルメモリ31−2のバンク(Bank2)と、ローカルメモリ31−3のバンク(Bank3)とが配置される。また、演算実行部33−0の読み出しポートPR−0および書き込みポートPW−0に対応するレーンLN2には、ローカルメモリ31−0のバンク(Bank0)が配置され、入出力ポートPsysに対応するレーンLN_Eには、ローカルメモリ31−1のバンク(Bank1)が配置される。
【0078】
図6の例では、演算実行部33−1および33−3のレーンLN1およびLN3にバンクが配置されない一方で、演算実行部33−2のレーンLN2に2つのバンクが配置される。このように、停止状態等のために入力データを必要としない演算実行部のレーンに無駄なバンクを配置せず、余ったバンクを入力データが必要な他の演算実行部のレーンに配置して、そのレーンにおけるデータの記憶サイズを増やすことができる。すなわち、バンクを任意のレーンに配置することにより、ローカルメモリの利用効率の向上を図ることができる。
【0079】
また、図6の例では、ローカルメモリ31−1のバンクがレーンLN_Eに配置されているため、演算実行部33−0や演算実行部33−2において演算処理が実行されている途中でも、次の演算に備えたデータをシステムバスBsysからローカルメモリ31−1に書き込んだり、先に行った演算の結果をローカルメモリ31−1からシステムバスBsysに読み出したりすることが可能である。すなわち、演算実行部を動作させた状態で、外部のバスから再構成可能ハードウェア30内部のローカルメモリにアクセスすることが可能になる。したがって、演算器を停止させなければ外部バスからローカルメモリにアクセスすることができない図11に示す動的再構成可能ハードウェアに比べて、処理の遅延時間を減らすことができる。
【0080】
図7は、読み出しポートおよび書き込みポートに独立のレーンを対応づける場合のバンク配置例を図解した図である。
【0081】
図7の例において、ローカルメモリにはデュアルポート・メモリが用いられており、各ローカルメモリは読み出し用バンクおよび書き込み用バンクを有する。また、読み出し用バンクは読み出しポートに対応するレーンに配置され、書き込み用バンクは書き込みポートに対応するレーンに配置される。
図7に示すように、演算実行部33−0の読み出しポートPR−0に対応するレーンには、ローカルメモリ31−0の読み出し用バンク(Bank0R)が配置され、その書き込みポートPW−0に対応するレーンには、ローカルメモリ31−0の書き込み用バンク(Bank0W)とローカルメモリ31−1の書き込み用バンク(Bank1W)とが配置される。
演算実行部33−1の読み出しポートPR−1に対応するレーンには、ローカルメモリ31−1の読み出し用バンク(Bank1R)が配置され、その書き込みポートPW−1に対応するレーンには、ローカルメモリ31−2の書き込み用バンク(Bank2W)が配置される。
演算実行部33−3の読み出しポートPR−3に対応するレーンには、ローカルメモリ31−3の読み出し用バンク(Bank3R)が配置され、その書き込みポートPW−3に対応するレーンには、ローカルメモリ31−3の書き込み用バンク(Bank3W)が配置される。
入出力ポートPsysから読み出しアクセスを行うためのレーンには、ローカルメモリ31−2の読み出し用バンク(Bank2R)が配置される。
【0082】
このようなバンク配置において、各アドレス発生器では、構成情報記憶部34より供給される構成情報に基づいて、たとえば図8に示すようなタイミングで、アドレスが発生する。
【0083】
すなわち、時刻t0〜t4において、読み出しアドレス発生器35−0からは、ローカルメモリ31−0の読み出し用バンク(Bank0R)に対する読み出しアドレスAR0が発生する(図8(A))。
この読み出しアドレスの供給に応じて読み出し用バンク(Bank0R)から読み出されるデータ(D00〜D03)は、時刻t1から時刻t5にかけて、演算実行部33−0へ順次出力される(図8(B))。
【0084】
また、読み出し用バンク(Bank0R)からデータ(D00〜D03)が読み出されるタイミングに合わせて、書き込みアドレス発生器38−0からは、ローカルメモリ31−1の書き込み用バンク(Bank1W)に対する書き込みアドレスAW0が発生する(図8(C))。書き込み用バンク(Bank1W)は、演算実行部33−0の書き込み用レーンに配置されているため、書き込み用バンク(Bank1W)には、データD00〜D03に対する演算実行部33−0の演算結果が順次書き込まれる。
【0085】
時刻t1〜t5において書き込み用バンク(Bank1W)に書き込まれる演算実行部33−0の演算結果は、時刻t2〜t6において発生する読み出しアドレス発生器35−1の読み出しアドレスAR1(図8(D))により、時刻t3から時刻t7にかけて、対応する読み出し用バンク(Bank1R)から順次読み出される。この読み出し用バンク(Bank1R)は演算実行部33−1の読み出し用レーンに配置されているため、演算実行部33−0の演算結果としてこのバンクから読み出されるデータ(D10〜D13)は、演算実行部33−1へ順次出力される(図8(E))。
【0086】
また、読み出し用バンク(Bank1R)からデータ(D10〜D13)が読み出されるタイミングに合わせて、書き込みアドレス発生器38−1からは、ローカルメモリ31−2の書き込み用バンク(Bank2W)に対する書き込みアドレスAW2が発生する(図8(F))。この書き込み用バンク(Bank2W)は演算実行部33−1の書き込み用レーンに配置されているため、書き込み用バンク(Bank2W)には、データD10〜D13に対する演算実行部33−1の演算結果が順次書き込まれる。
【0087】
時刻t3〜t7において書き込み用バンク(Bank2W)に書き込まれる演算実行部33−1の演算結果は、時刻t4から時刻t8にかけてシステムバスBsysから入力されるアドレスAsys(図8(G))により、対応する読み出し用バンク(Bank2R)から順次読み出される。この読み出し用バンク(Bank2R)は入出力ポートPsysの読み出し用レーンに配置されているため、演算実行部33−1の演算結果としての読み出しデータは、入出力ポートPsysからシステムバスBsysへ順次出力される。
【0088】
このように、配置情報によるローカルメモリとポートとの関連付けを、読み出しポートおよび書き込みポートのそれぞれについて任意に設定することにより、演算実行部の間におけるデータの受け渡しを、再構成可能ハードウェア30の内部で実行することが可能になる。したがって、外部のメモリを利用しなければ演算器間でデータの受け渡しを行うことができない図11に示す動的再構成可能ハードウェアに比べて、演算処理の手順を大幅に簡略化することができ、処理速度を高速化することができる。
また、ローカルメモリとしてデュアルポート・メモリを用いる場合、演算処理と並行して演算実行部間のデータの受け渡しを実行できることから、処理速度をさらに高速化することができる。
【0089】
図9は、各レーンにそれぞれバンクが配置される例を図解した図である。
【0090】
図9の例では、演算実行部33−0〜33−3に対応するレーンLN0〜LN3に、ローカルメモリ31−0〜31−3のバンク(Bank0〜Bank3)がそれぞれ配置されている。
このようなバンク配置によれば、それぞれの演算実行部についてアクセス対象のローカルメモリが割り当てられており、図11に示す動的再構成可能ハードウェアと同様に、4つの演算実行部33−0〜33−3において並列に演算を実行することができる。ただし、アドレス発生器において発生するアドレスおよびシステムバスBsysより入力されるアドレスが、アクセス対象のローカルメモリを指示するアドレス情報(ARS0〜ARS3、AWS0〜AWS3、ASsys)を含んでいる必要がある点で、図11に示す動的再構成可能ハードウェアと異なる。
【0091】
一方、図10は、各レーンにそれぞれバンクが配置されるとともに、各バンクがアドレス共有モードに設定される場合のバンク配置例を図解した図である。
【0092】
アドレス共有モードは、アクセス対象のローカルメモリを指示するアドレス情報(ARS0〜ARS3、AWS0〜AWS3、ASsys)を無効にするモードであり、バンクごとに設定される。アドレス共有モードに設定されたバンクでは、他のローカルメモリがアクセス対象となるアドレスを自らがアクセス対象となるアドレスとして使用することが可能となる。
【0093】
ローカルメモリ31−nの読み出しバンクがアドレス共有モードに設定されると、このローカルメモリ31−nに対して予め決められた特定の読み出しポート、たとえば読み出しポートPR−nが、その読み出しデータの出力先として設定される。この場合、アドレス情報ARSnが他のローカルメモリを読み出し対象としていても、これとは無関係に、ローカルメモリ31−nの読み出しデータは読み出しポートPR−nへ出力される。
【0094】
より詳細に述べると、ローカルメモリ31−nの特定の読み出しポートPR−nに対応する読み出しデータセレクタ37−nには、ローカルメモリ31−nの読み出し用バンクの配置情報に含まれる、データSA(図4参照)が入力されている。このデータSAが‘0’に設定されると、ローカルメモリ31−nの読み出し用バンクはアドレス共有モードとなり、他のローカルメモリが読み出し対象となるアドレスを自らが読み出し対象となるアドレスとして使用可能になる。このとき、読み出しデータセレクタ37−nにおいては、アドレス情報ARSnとは無関係に、ローカルメモリ31−nの読み出しデータが選択されて、特定の読み出しポートPR−nに出力される。
【0095】
また、ローカルメモリ31−nの書き込みバンクがアドレス共有モードに設定されると、このローカルメモリ31−nに対して予め決められた特定の書き込みポート、たとえば書き込みポートPW−nから入力されるデータがローカルメモリ31−nに入力される。この場合、アドレス情報ARSnが他のローカルメモリを書き込み対象としていても、これとは無関係に、ローカルメモリ31−nにおけるデータの書き込みは許可される。
【0096】
より詳細に述べると、ローカルメモリ31−nの書き込み用バンクの配置情報は、図3に示すように、書き込みアドレスセレクタ39−nおよび書き込み制御信号生成器41−nに入力されているが、この配置情報に含まれるデータSAについては、更に書き込みデータセレクタ40−nにも入力されている。このデータSAが‘0’に設定されると、ローカルメモリ31−nの書き込み用バンクはアドレス共有モードとなり、他のローカルメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能になる。このとき、書き込みアドレスセレクタ39−nにおいては、ローカルメモリ31−nの特定の書き込みポートPW−nに対応する書き込みアドレスAWnが選択されて、ローカルメモリ31−nに供給される。また、書き込みデータセレクタ40−nにおいては、特定の書き込みポートPW−nから入力されるデータが選択されて、ローカルメモリ31−nに供給される。さらに、書き込み制御信号生成器41−nにおいては、アドレス情報AWSnとは無関係に、ローカルメモリ31−nにおけるデータ書き込みを許可する書き込み許可信号が生成される。
【0097】
図10の例では、このようなアドレス共有モードに全ローカルメモリのバンクが設定されている。ローカルメモリ31−nに対する読み出しアドレスおよび書き込みアドレスの供給元は、配置情報のデータAG(図4参照)によって、読み出しアドレス発生器35−nおよび書き込みアドレス発生器38−nに設定されている。
【0098】
アドレス共有モードでは、アクセス対象のローカルメモリを指示するアドレス情報(ARS0〜ARS3、AWS0〜AWS3、ASsys)が無効になるため、図10に示すように、同一レーン上の全セグメントに同一のバンクが配置された状態と等価になる。すなわち、アドレスがレーン上のどのセグメントを指示していても、常に同じバンクがアクセス対象となる。
したがって、図9に示すように、レーンの正しいセグメントにバンクを配置させるためのアドレス情報(ARS0〜ARS3、AWS0〜AWS3、ASsys)を発生または入力する必要がなくなため、このようなアドレス情報が想定されていない図11に示すような従来の再構成可能ハードウェアとの間で、構成情報の互換性を保つことが可能になる。
【0099】
また、アドレス共有モードに設定されるローカルメモリに対するアドレスの供給元は、配置情報のデータAGによって任意に設定することが可能である。この場合、ローカルメモリは特定のポートに接続され、そのバンクは図10に示すように、特定のレーンに配置される。したがって、配置情報のデータAGは、ローカルメモリとポートとの関連付けを設定するデータではなくなり、単にローカルメモリとアドレス供給元との関連付けを設定するデータとなる。
データAGによって、レーンとは無関係に、ローカルメモリとアドレス供給元との関連付けを設定可能であることから、たとえば、1つのアドレス発生器より発生するアドレスを、アドレス共有モードに設定された複数のバンクで共用することが可能になる。この場合、複数のアドレス発生器からそれぞれのバンクに同一アドレスを発生する方法にくらべて、消費電力を削減することができる。
【0100】
なお、図10の例は、1つのローカルメモリに対して読み出しアクセスと書き込みアクセスを実行する演算実行部が同じ場合の例である。たとえばローカルメモリとしてデュアルポート・メモリを用いることにより、1つのローカルメモリに対する読み出しアクセスと書き込みアクセスとを異なる演算実行部(またはシステムバスBsys)から実行することが可能な場合には、1つのローカルメモリに対応する2つのバンク(読み出し用バンクおよび書き込み用バンク)の一方のみをアドレス共有モードに設定することも可能である。
【0101】
また、図10の例では、アドレス共有モードに設定されるバンクに書き込みデータを入力するポートは、予め決定された特定の書き込みポートに固定されているが、これを任意の書き込みポートに設定可能としても良い。
【0102】
たとえば、アドレス共有モードにおける書き込みデータの入力ポートを指定する情報を配置情報に付加し、これを書き込みアドレスセレクタ(39−0〜39−3)および書き込みデータセレクタ(40−0〜40−3)にそれぞれ供給する。
そして、書き込みアドレスセレクタ(39−0〜39−3)は、この配置情報において、対応するローカルメモリのアドレス共有モード設定が有効にされた場合、上記付加された情報において指定されるポートに対応して発生または入力される書き込みアドレス(AW0〜AW3、Asys)を選択する。
また、書き込みデータセレクタ(40−0〜40−3)は、この配置情報において、対応するローカルメモリのアドレス共有モード設定が有効にされた場合、上記付加された情報において指定されるポートから入力される書き込みデータを選択して、対応するローカルメモリに供給する。
【0103】
このように、アドレス共有モードにおける書き込みデータの入力ポートが任意に設定可能になると、たとえば1つのポートから入力されるデータを同時に複数のバンクに書き込むことが可能になる。これにより、複数のステップに分けて複数のバンクに同一データを書き込む方法に比べて、処理速度を大幅に高速化することができる。
【0104】
以上説明したように、図2および図3に示す再構成可能ハードウェア30に含まれる、本発明のメモリアクセス制御装置の実施形態によれば、読み出しデータが出力される各ポート(PR−0〜PR−3、Psys)から読み出しアクセスの対象となるローカルメモリ(31−0〜31−3)は、これらのポートに対応して読み出しアドレス発生器(35−0〜35−3)より発生するアドレス(AR0〜AR3)またはシステムバスBsysより入力されるアドレスAsysにおいて、任意に指示される。これらのローカルメモリとポートとの関連付けは、配置情報のデータAGやデータEXTにおいて任意に設定される。
読み出しアドレスセレクタ(36−0〜36−3)では、これらのポートに対応して発生または入力されるアドレス(AR0〜AR3、Psys)の中から、この配置情報において関連付けが設定されたポートに対応するアドレスが選択され、対応するローカルメモリに供給される。
読み出しデータセレクタ(40−0〜40−4)では、アドレスの供給に応じて複数のローカルメモリ(31−0〜31−3)から読み出される読み出しデータの中から、対応するポート(PR−0〜PR−3、Psys)に出力する読み出しデータの選択が行われる。読み出しデータの選択は、その出力先のポートに対応して発生または入力されるアドレス(AR0〜AR3、Asys)に応じて行われる。すなわち、そのアドレスにおいてアクセス対象として指示されるメモリからの読み出しデータが選択される。
【0105】
したがって、それぞれのローカルメモリについて、読み出しアクセスを行うポートを配置情報により任意に設定できる。配置情報によって1つのポートに複数のローカルメモリが関連付けられた場合は、この複数のローカルメモリの中から、読み出し対象のローカルメモリを任意に指示することができる。すなわち、複数のポートから複数のローカルメモリに対して読み出しアクセスを行う際に、ローカルメモリからの読み出しデータの出力先が特定のポートに固定される方法に比べて、より自由な読み出しアクセスが可能となる。
【0106】
また、書き込みデータが入力される各ポート(PW−0〜PW−3、Psys)から書き込みアクセスの対象となるローカルメモリ(31−0〜31−3)は、これらのポートに対応して書き込みアドレス発生器(38−0〜38−3)より発生するアドレス(AW0〜AW3)またはシステムバスBsysより入力されるアドレスAsysにおいて、任意に指示される。これらのローカルメモリとポートとの関連付けは、配置情報のデータAGやデータEXTにおいて任意に設定される。
書き込みアドレスセレクタ(39−0〜39−3)では、これらのポートに対応して発生または入力されるアドレス(AW0〜AW3、Psys)の中から、この配置情報において関連付けが設定されたポートに対応するアドレスが選択され、対応するローカルメモリに供給される。
書き込みデータセレクタ(39−0〜39−3)では、複数のポート(PW−0〜PW−3、Psys)より入力される書き込みデータの中から、配置情報において関連付けられたポートより入力される書き込みデータが選択され、対応するローカルメモリに供給される。
書き込み制御信号生成器(41−0〜41−3)では、書き込みアドレスセレクタ(39−0〜39−3)において選択されるアドレス(AW0〜AW3、Asys)が、このアドレスの供給先のローカルメモリをアクセス対象として指示するアドレスであるか否かに応じて、このアドレスの供給先のローカルメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号が生成される。
【0107】
したがって、それぞれのローカルメモリについて、書き込みアクセスを行うポートを配置情報により任意に設定できる。配置情報によって1つのポートに複数のローカルメモリが関連付けられた場合は、この複数のローカルメモリの中から、書き込み対象のローカルメモリを任意に指示することができる。すなわち、複数のポートから複数のローカルメモリに対して書き込みアクセスを行う際に、ローカルメモリからの書き込みデータの入力先が特定のポートに固定される方法に比べて、より自由な書き込みアクセスが可能となる。
【0108】
また、図1に示す演算システムによれば、再構成可能ハードウェア30内部の複数のローカルメモリ(31−0〜31−3)に対して、その再構成可能な演算実行部(33−0〜33−3)に接続されるポート(PR−0〜PR−3、PW−0〜PW−3)およびシステムバスBsysに接続されるポートPsysから、上記のような自由な読み出しアクセスおよび書き込みアクセスが可能になる。
これにより、たとえば、1つのポートから複数のローカルメモリにアクセスを行うことが可能になり、ローカルメモリの利用効率の向上を図ることができる。また、演算実行部の間で容易にデータを受け渡しすることが可能になり、処理を高速化することができる。
【0109】
しかも、複数のポートから複数のローカルメモリに自由なアクセスを行うために、マルチポート・メモリなどの複雑な回路を用いる必要がないため、簡易な構成で実現可能である。
【0110】
なお、本発明は上述した実施形態に限定されない。
たとえば、上述した実施形態におけるローカルメモリやポートの数、外部バスに接続される入出力ポートの数やその有無は任意である。
【0111】
また、ローカルメモリは全てシングルポート・メモリ、または全てデュアルポート・メモリである必要はなく、たとえば、シングルポート・メモリとデュアルポート・メモリを各々含んでも良い。
【0112】
また、ローカルメモリは必ずしも読み書き可能なメモリである必要はなく、読み出しのみが可能なメモリでも良い。
【0113】
また、アドレス発生器やアドレスセレクタは、必ずしも読み出し用と書き込み用を各々設ける必要はない。たとえば、ローカルメモリがシングルポート・メモリの場合、書き込みアドレスと読み出しアドレスを両方同時にローカルメモリへ供給しなくても良いので、共通のアドレス発生器において書き込みアドレスと読み出しアドレスを発生し、共通のアドレスセレクタにおいて書き込みアドレスと読み出しアドレスの選択を行わせても良い。
【0114】
また、再構成可能ハードウェア内部の各構成要素に構成情報を供給する構成情報記憶部としては、例えば特許文献1に記載されるような、リング状に接続された記憶手段を有する構成情報記憶部を用いても良い。これにより、再構成可能ハードウェア内部における演算実行部の再構成や、アドレス発生部、アドレス選択部等の設定を、演算処理と並行して行うことが可能になり、処理時間の短縮を図ることができる。
【0115】
【発明の効果】
本発明のメモリアクセス制御装置によれば、簡易な構成でありながら、複数のポートから複数のメモリに対してより自由にアクセスすることができる。
また、本発明の演算システムによれば、再構成可能な複数の演算実行部から複数のメモリに対して自由なアクセスが可能になるため、外部の記憶装置に演算結果を一時的に転送するなどの処理ステップを設けることなく、より自由な演算処理を行うことができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る演算システムの構成の一例を示すブロック図である。
【図2】図1に示す再構成可能ハードウェアの構成例から、ローカルメモリからの読み出しアクセスに係わる部分を抜き出して示したブロック図である。
【図3】図1に示す再構成可能ハードウェアの構成例から、ローカルメモリへの書き込みアクセスに係わる部分を抜き出して示したブロック図である。
【図4】読み出しアドレスセレクタおよび書き込みアドレスセレクタにそれぞれ供給される構成情報の一例を図解した図である。
【図5】それぞれのローカルメモリの物理的なアドレス空間が各ポートに対応する論理アドレス空間上に配置される様子を図解した図である。
【図6】1つのレーンに複数のバンクを配置する例を図解した図である。
【図7】読み出しポートおよび書き込みポートに独立のレーンを対応づける場合のバンク配置例を図解した図である。
【図8】図7に示すバンク配置における各アドレス発生器のアドレス発生タイミングの一例を示すタイミング図である。
【図9】各レーンにそれぞれバンクが配置される例を図解した図である。
【図10】各レーンにそれぞれバンクが配置されるとともに、各バンクがアドレス共有モードに設定される場合のバンク配置例を図解した図である。
【図11】一般的な動的再構成可能ハードウェアの構成の一例を示すブロック図である。
【図12】図11に示す動的再構成可能ハードウェアに対して、外部バスから内部のローカルメモリに対してアクセスが行われる様子を図解した図である。
【図13】内部ローカルメモリとして、マルチポート・メモリを用いた動的再構成ハードウェアの一例を示すブロック図である。
【符号の説明】
10…処理部、20…システムメモリ、30…再構成可能ハードウェア、31−0〜31−3…ローカルメモリ、32…ローカルメモリ・インターフェース部、33…再構成部、33−0〜33−3…演算実行部、34…構成情報記憶部34、35…読み出しアドレス発生部、35−0〜35−3…読み出しアドレス発生器、36−0〜36−3…読み出しアドレスセレクタ、37−0〜37−3…読み出しデータセレクタ、38…書き込みアドレス発生部、38−0〜38−3…書き込みアドレス発生器、39−0〜39−3…書き込みアドレスセレクタ、40−0〜40−3…書き込みデータセレクタ、41−0〜41−3…書き込み制御信号生成器、PR−0〜PR−3,PW−0〜PW−3,Psys…ポート
Claims (11)
- 複数のメモリに対する複数のポートからのアクセスを制御するメモリアクセス制御装置であって、
アクセス対象のメモリとその記憶領域を指示するアドレスとして、上記複数のポートに対応して入力される複数のアドレスの中から、上記メモリと上記ポートとを関連付ける第1の情報に応じて、上記メモリに供給するアドレスをそれぞれ選択するアドレス選択部と、
上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータを、出力先のポートに対応して入力される上記アドレスに応じてそれぞれ選択する読み出しデータ選択部と、
を有するメモリアクセス制御装置。 - 上記ポートより入力される複数の書き込みデータの中から、上記メモリに供給する書き込みデータを上記第1の情報に応じてそれぞれ選択する書き込みデータ選択部と、
上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する書き込み制御信号生成部と、を有する、
請求項1に記載のメモリアクセス制御装置。 - 上記アドレス選択部は、
読み出しデータが出力される複数のポートに対応して入力される複数の読み出しアドレスの中から、上記第1の情報に応じて、上記メモリに供給する読み出しアドレスを選択する読み出しアドレス選択部と、
書き込みデータを入力する複数のポートに対応して入力される複数の書き込みアドレスの中から、上記第1の情報に応じて、上記メモリに供給する書き込みアドレスを選択する書き込みアドレス選択部と、を含む、
請求項2に記載のメモリアクセス制御装置。 - 入力される第2の情報において、他のメモリが読み出し対象となるアドレスを自らが読み出し対象となるアドレスとして使用可能とすべきメモリが指定された場合、
上記読み出しデータ選択部は、上記第2の情報において指定されるメモリの読み出しデータを、当該指定されるメモリに対して予め決められた特定のポートに出力する、
請求項1に記載のメモリアクセス制御装置。 - 入力される第2の情報において、他のメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能とすべきメモリが指定された場合、
上記書き込みデータ選択部は、上記第2の情報において指定されるメモリに対して予め決められた特定の書き込みポートから入力される書き込みデータを、当該指定されるメモリに供給し、
上記書き込み制御信号生成部は、当該指定されるメモリにおけるデータ書き込みを許可する書き込み制御信号を生成する、
請求項2に記載のメモリアクセス制御装置。 - 上記第2の情報において、他のメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能とすべきメモリが指定されるとともに、上記指定されるメモリに書き込みデータを入力すべきポートが指定された場合、
上記アドレス選択部は、上記第2の情報において指定されるポートに対応して入力されるアドレスを選択して、上記第2の情報において指定されるメモリに供給し、
上記書き込みデータ選択部は、当該指定されるポートから入力される書き込みデータを選択して、当該指定されるメモリに供給する、
請求項5に記載のメモリアクセス制御装置。 - 複数のポートを介してアクセスを受ける複数のメモリと、
供給される構成情報に基づいて再構成する演算実行部であって、所定のポートから出力される上記メモリの読み出しデータに所定の演算を行う演算実行部と、
上記構成情報に基づいて、上記複数のポートからの上記複数のメモリに対するアクセスを制御するメモリアクセス制御装置と、を有し、
上記メモリアクセス制御装置は、
アクセス対象のメモリとその記憶領域を指示するアドレスとして、上記複数のポートに対応して入力される複数のアドレスの中から、上記メモリと上記ポートとを関連付ける上記構成情報の第1の情報に応じて、上記メモリに供給するアドレスをそれぞれ選択するアドレス選択部と、
上記アドレスの供給に応じて上記複数のメモリから読み出される読み出しデータの中から、上記ポートに出力する読み出しデータを、出力先のポートに対応して入力される上記アドレスに応じてそれぞれ選択する読み出しデータ選択部と、を含む、
演算システム。 - 上記演算実行部は、その演算結果を、上記メモリの書き込みデータとして所定のポートに入力し、
上記メモリアクセス制御装置は、
上記ポートより入力される複数の書き込みデータの中から、上記メモリに供給する書き込みデータを上記第1の情報に応じてそれぞれ選択する書き込みデータ選択部と、
上記アドレス選択部において選択されるアドレスが、当該アドレス供給先のメモリをアクセス対象として指示するアドレスであるか否かに応じて、当該アドレス供給先のメモリにおけるデータ書き込みを許可または禁止する書き込み制御信号を生成する書き込み制御信号生成部と、を含む、
請求項7に記載の演算システム。 - 上記構成情報に基づいて、上記演算実行部が読み出し対象とするメモリとその記憶領域を指示する読み出しアドレスを発生する読み出しアドレス発生部と、
上記構成情報に基づいて、上記演算実行部が書き込み対象とするメモリとその記憶領域を指示する書き込みアドレスを発生する書き込みアドレス発生部と、を有し、
上記アドレス選択部は、
読み出しデータが出力される複数のポートに対応して入力される複数の読み出しアドレスであって、上記読み出しアドレス発生部において発生する読み出しアドレスを含む複数の読み出しアドレスの中から、上記第1の情報に応じて、上記メモリに供給する読み出しアドレスを選択する読み出しアドレス選択部と、
書き込みデータが入力される複数のポートに対応して入力される複数の書き込みアドレスであって、上記書き込みアドレス発生部において発生する書き込みアドレスを含む複数の書き込みアドレスの中から、上記第1の情報に応じて、上記メモリに供給する書き込みアドレスを選択する書き込みアドレス選択部と、を含む、
請求項8に記載の演算システム。 - 上記構成情報の第2の情報において、他のメモリが読み出し対象となるアドレスを自らが読み出し対象となるアドレスとして使用可能とすべきメモリが指定された場合、
上記読み出しデータ選択部は、上記第2の情報において指定されるメモリの読み出しデータを、当該指定されるメモリに対して予め決められた特定の読み出しポートに出力する、
請求項7に記載の演算システム。 - 上記構成情報の第2の情報において、他のメモリが書き込み対象となるアドレスを自らが書き込み対象となるアドレスとして使用可能とすべきメモリが指定された場合、
上記書き込みデータ選択部は、上記第2の情報において指定されるメモリに対して予め決められた特定の書き込みポートから入力される書き込みデータを、当該指定されるメモリに供給し、
上記書き込み制御信号生成部は、当該指定されるメモリにおけるデータ書き込みを許可する書き込み制御信号を生成する、
請求項8に記載の演算システム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003144552A JP4363081B2 (ja) | 2003-05-22 | 2003-05-22 | メモリアクセス制御装置およびこれを有する演算システム |
PCT/JP2004/007291 WO2004109519A1 (ja) | 2003-05-22 | 2004-05-21 | メモリアクセス制御装置およびそれを有する演算システム |
EP10173515A EP2246790A1 (en) | 2003-05-22 | 2004-05-21 | Memory access control device and processing system having same |
US10/557,096 US7536499B2 (en) | 2003-05-22 | 2004-05-21 | Memory access control device and processing system having same |
EP04734370A EP1626343A4 (en) | 2003-05-22 | 2004-05-21 | MEMORY ACCESS CONTROL DEVICE AND ARITHMETIC SYSTEM THEREWITH |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003144552A JP4363081B2 (ja) | 2003-05-22 | 2003-05-22 | メモリアクセス制御装置およびこれを有する演算システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004348416A JP2004348416A (ja) | 2004-12-09 |
JP4363081B2 true JP4363081B2 (ja) | 2009-11-11 |
Family
ID=33508173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003144552A Expired - Fee Related JP4363081B2 (ja) | 2003-05-22 | 2003-05-22 | メモリアクセス制御装置およびこれを有する演算システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US7536499B2 (ja) |
EP (2) | EP2246790A1 (ja) |
JP (1) | JP4363081B2 (ja) |
WO (1) | WO2004109519A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060200603A1 (en) * | 2005-03-01 | 2006-09-07 | Naoto Kaneko | Dynamic resource allocation for a reconfigurable IC |
US8250312B2 (en) * | 2009-04-29 | 2012-08-21 | Micron Technology, Inc. | Configurable multi-port memory devices and methods |
US8547774B2 (en) * | 2010-01-29 | 2013-10-01 | Mosys, Inc. | Hierarchical multi-bank multi-port memory organization |
US9384153B2 (en) | 2012-08-31 | 2016-07-05 | Freescale Semiconductor, Inc. | Virtualized local storage |
JPWO2014068760A1 (ja) * | 2012-11-02 | 2016-09-08 | Necディスプレイソリューションズ株式会社 | 電子機器およびデバイス制御方法 |
US20140380000A1 (en) * | 2013-06-20 | 2014-12-25 | Silicon Motion, Inc. | Memory controller and accessing system utilizing the same |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55105763A (en) | 1979-02-05 | 1980-08-13 | Fanuc Ltd | Address instruction system |
JPS6037055A (ja) | 1983-08-08 | 1985-02-26 | Canon Inc | 情報処理装置 |
US4660141A (en) * | 1983-12-06 | 1987-04-21 | Tri Sigma Corporation | Self configuring computer network with automatic bus exchange of module identification numbers and processor assigned module numbers |
EP0429733B1 (en) * | 1989-11-17 | 1999-04-28 | Texas Instruments Incorporated | Multiprocessor with crossbar between processors and memories |
JP2514473B2 (ja) | 1991-02-06 | 1996-07-10 | 日本電信電話株式会社 | 並列処理装置 |
JPH05290080A (ja) | 1992-04-08 | 1993-11-05 | Fujitsu Ltd | 並列処理装置 |
US6453409B1 (en) * | 1996-11-07 | 2002-09-17 | Yamaha Corporation | Digital signal processing system |
JPH10187599A (ja) | 1996-11-07 | 1998-07-21 | Yamaha Corp | デジタル信号処理装置 |
JPH10260952A (ja) | 1997-03-17 | 1998-09-29 | Hitachi Ltd | 半導体集積回路装置およびそのデータ処理方法 |
US6233659B1 (en) * | 1998-03-05 | 2001-05-15 | Micron Technology, Inc. | Multi-port memory device with multiple modes of operation and improved expansion characteristics |
US6334175B1 (en) * | 1998-07-22 | 2001-12-25 | Ati Technologies, Inc. | Switchable memory system and memory allocation method |
US6446181B1 (en) * | 2000-03-31 | 2002-09-03 | Intel Corporation | System having a configurable cache/SRAM memory |
JP4411786B2 (ja) | 2001-01-19 | 2010-02-10 | ソニー株式会社 | 演算システム |
US6915402B2 (en) * | 2001-05-23 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | Method and system for creating secure address space using hardware memory router |
US6754130B1 (en) * | 2002-12-23 | 2004-06-22 | Hewlett-Packard Development Company, Lp. | Memory having multiple write ports and write insert unit, and method of operation |
-
2003
- 2003-05-22 JP JP2003144552A patent/JP4363081B2/ja not_active Expired - Fee Related
-
2004
- 2004-05-21 EP EP10173515A patent/EP2246790A1/en not_active Withdrawn
- 2004-05-21 US US10/557,096 patent/US7536499B2/en not_active Expired - Fee Related
- 2004-05-21 EP EP04734370A patent/EP1626343A4/en not_active Withdrawn
- 2004-05-21 WO PCT/JP2004/007291 patent/WO2004109519A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP1626343A1 (en) | 2006-02-15 |
US7536499B2 (en) | 2009-05-19 |
EP2246790A1 (en) | 2010-11-03 |
US20070055810A1 (en) | 2007-03-08 |
EP1626343A4 (en) | 2008-04-16 |
WO2004109519A1 (ja) | 2004-12-16 |
JP2004348416A (ja) | 2004-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6662285B1 (en) | User configurable memory system having local and global memory blocks | |
US7039756B2 (en) | Method for use of ternary CAM to implement software programmable cache policies | |
US10789175B2 (en) | Caching policy in a multicore system on a chip (SOC) | |
US20100318742A1 (en) | Partitioned Replacement For Cache Memory | |
WO2003007155A1 (fr) | Dispositif a circuit integre | |
CN101840383B (zh) | 支持连续/离散地址多数据并行访问的可配置存储器 | |
US5860101A (en) | Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory | |
US7415576B2 (en) | Data processor with block transfer control | |
JP4363081B2 (ja) | メモリアクセス制御装置およびこれを有する演算システム | |
CN101243416A (zh) | 在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机系统中存储数据和/或指令的设备和方法 | |
US6463518B1 (en) | Generation of memory addresses for accessing a memory utilizing scheme registers | |
JP2001043180A (ja) | マイクロプロセッサおよびそのための記憶装置 | |
US9632951B2 (en) | Cache memory | |
JP2006018452A (ja) | 半導体装置 | |
US9720879B2 (en) | Reconfigurable circuit having rows of a matrix of registers connected to corresponding ports and a semiconductor integrated circuit | |
US9146874B2 (en) | Dual access for single port cache | |
JPS5844263B2 (ja) | 記憶制御回路 | |
CN104932990B (zh) | 一种高速缓冲存储器中数据块的替换方法和装置 | |
JPH07295880A (ja) | インタリーブ方式を適用する記憶装置 | |
US7213127B2 (en) | System for producing addresses for a digital signal processor | |
US6032233A (en) | Storage array allowing for multiple, simultaneous write accesses | |
JPH03185536A (ja) | マイクロコンピュータのメモリアドレッシング方式 | |
JPH01140342A (ja) | 仮想計算機システム | |
JPH02116939A (ja) | アドレス選択方式 | |
JPH03116256A (ja) | メモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060309 |
|
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: 20090728 |
|
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: 20090810 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120828 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120828 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130828 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |