JP2011118744A - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP2011118744A JP2011118744A JP2009276557A JP2009276557A JP2011118744A JP 2011118744 A JP2011118744 A JP 2011118744A JP 2009276557 A JP2009276557 A JP 2009276557A JP 2009276557 A JP2009276557 A JP 2009276557A JP 2011118744 A JP2011118744 A JP 2011118744A
- Authority
- JP
- Japan
- Prior art keywords
- bank
- accelerator
- local memory
- processing apparatus
- information processing
- 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.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Abstract
【課題】アクセラレータが使用するローカルメモリに対するデータの入れ替え処理のオーバヘッドを大幅に低減し、アクセラレータによる演算処理を高速化する。
【解決手段】ローカルメモリ5を複数バンク5a〜5cに分割し、各バンクを切り替えて使用し、アクセラレータ3のコンフィギュレーションは変更せずに別のバンクをアクセス可能とする。コンフィギュレーションがプログラムの場合は演算の終了時に、この切り替えのタイミングが発生する。アクセラレータ3の状態を示す機能レジスタにどのバンクをCPUが使用しているかの情報を保持し、使用中であればアクセラレータ3は実行を保留し、使用しなくなり次第割り当てられたバンクで起動する。各バンクはアクセラレータ3の機能レジスタの情報に基づいて演算器と結びつけられる。演算の切れ目でバンクの切り替えを発生させ、演算器と結びつくバンクを別のものに切り替える。
【選択図】図1
【解決手段】ローカルメモリ5を複数バンク5a〜5cに分割し、各バンクを切り替えて使用し、アクセラレータ3のコンフィギュレーションは変更せずに別のバンクをアクセス可能とする。コンフィギュレーションがプログラムの場合は演算の終了時に、この切り替えのタイミングが発生する。アクセラレータ3の状態を示す機能レジスタにどのバンクをCPUが使用しているかの情報を保持し、使用中であればアクセラレータ3は実行を保留し、使用しなくなり次第割り当てられたバンクで起動する。各バンクはアクセラレータ3の機能レジスタの情報に基づいて演算器と結びつけられる。演算の切れ目でバンクの切り替えを発生させ、演算器と結びつくバンクを別のものに切り替える。
【選択図】図1
Description
本発明は、情報処理装置およびその装置上で動作するソフトウェアによって構成されるシステムに関し、特に、アクセラレータにおける演算処理の高速化に有効な技術に関する。
一般に、情報処理装置などの電子システムにおいては、マルチメディア処理やグラフィックス、暗号処理などを実行する場合、通常のCPU(Central Processing Unit)の外部にあるアクセラレータと呼ぶ専用のハードウェアやプロセッサを用いることにより、必要な性能を確保することが知られている。
このようなアクセラレータによる実行においては、CPUとアクセラレータとで演算に必要なデータをどのようにしてやり取りするかが重要になる。アクセラレータは高速に演算を実行できるので、その演算のデータを次々にアクセラレータに供給してアクセラレータが必要なデータが揃うのを待って演算実行が中断状態になることをできるだけ避けることが必要である。
これに対処するため、アクセラレータは一般に演算を行うためのデータをローカルメモリと呼ぶ領域に置くようにする。ローカルメモリはアクセラレータが高速にアクセスすることを考慮して配置された専用のメモリである。
そして、ローカルメモリを複数バンクによる構成とすることが一般的に行われている。この種のアクセラレータにおけるローカルメモリの構成については、たとえば、アクセラレータであるスレーブプロセッサのローカルメモリを4バンク構成にするもの(特許文献1参照)やアクセラレータにあたるスレーブプロセッサが4つのバンクからなるローカルメモリを備え、スレーブプロセッサのコマンド列ごとに独立してローカルメモリを使用し、スレーブプロセッサとDMA(Direct Memory Access)コントローラを並列動作させるもの(特許文献2参照)などが知られている。
ところが、上記のようなアクセラレータにおけるメモリ動作技術では、次のような問題点があることが本発明者により見出された。
アクセラレータは、プログラムや演算器の配置構成とデータパス(以下、これらをまとめてコンフィギュレーションと呼ぶ)に従って動作して、ローカルメモリにあるデータに対して高速に演算を行い、演算結果を再びローカルメモリに書き込むという動作を行う。
そして、CPUはローカルメモリにある演算結果の値を自分のメモリに転送して利用することになる。ここで、アクセラレータの演算機構が演算可能であるにもかかわらず必要なデータがローカルメモリに入っていなければ、アクセラレータの実行は中断しなければならず、また、アクセラレータがローカルメモリに書き込んでいる時、その部分はCPUからはアクセスできないので、CPUに転送できるようになるまで待ち時間が生じることになり、演算データの転送時のオーバヘッドが大きくなるという問題がある。
本発明の目的は、アクセラレータの実行状態を切り替えるときにローカルメモリに対するデータの入れ替え処理のオーバヘッドを大幅に低減し、アクセラレータによる演算処理を高速化することのできる技術を提供することにある。
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明は、ローカルメモリを複数バンクに分割した構成とし、それらのバンクを切り替えて使用するとともに、アクセラレータのプログラムやコンフィギュレーションは変更せずに、別のバンクをアクセスできるようにする。コンフィギュレーションが通常のプログラムである場合は演算の終了時に、また、コンフィギュレーションが演算器の配置構成である場合は一つの配置構成において演算が終了した時点で、この切り替えのタイミングが発生する。このバンクを「切り替える/切り替えない」をプログラム可能にする。
さらに、本願のその他の発明の概要を簡単に示す。
アクセラレータの状態を示すレジスタ(状態格納部)に、バンクの使用可能フラグとして現在のコンフィギュレーションにおいてどのバンクのローカルメモリをCPU(中央処理装置)が使用しているかの情報を保持し、CPUが使用中であればOFF、使用中でなければONとなるようにして、バンク切り替え時に対象バンクがOFFであればアクセラレータは実行を保留して起動待ち状態になり、ONになり次第割当てられたバンクで起動するようにする。各バンクはアクセラレータの機能レジスタで示される状態にしたがって演算器と結びつけられる(有効バンクが結びつく)。
この機構により、演算シーケンスの切れ目でバンクの切り替えを発生させることができ、演算器と結びつくバンクを別のものに設定できる。また、ローカルメモリが3バンク以上ある場合は、バンク切り替え時に、アクセラレータが使用しないバンクの優先順位を設定でき、高順位のバンクに切り替わるようにする。
ローカルメモリの各バンクは、通常のメモリのアドレスとして別々のアドレスが付与されており、CPUや外部のメモリ転送機構(DMAコントローラ)などからは上記アドレスによって独立してアクセスでき、設定や参照が可能であるようにする。
これらにより、バンクが切り替わってもアクセラレータがローカルメモリにアクセスするコードは同じにすることができ、アクセラレータと結びついていないバンク(待機バンク)と外部メモリとの間でデータ転送を自由に行えるので、CPUからはすべてのローカルメモリのバンクが異なるアドレスによってアクセスされる。
また、コンパイラなどのソフトウェアによって制御し易くでき、複数のバンクを制御できれば転送オーバヘッドを削減できる。さらに、ローカルメモリと外部メモリの転送はDMAコントローラを使用してバックグラウンドに実行できる。
バンク使用可能フラグ(バンク使用可能情報)がON(使用可)でなければ、アクセラレータの実行を保留し、ONになると実行開始するので、アクセラレータはバンクの使用状態に関わらずに演算を行うことができる。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
(1)ローカルメモリに対するデータの入れ替え処理のオーバヘッドを大幅に低減することができる。
(2)上記(1)により、情報処理装置における演算処理を高速化することができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
図1は、本発明の一実施の形態による電子システムにおける構成の一例を示すブロック図、図2は、図1におけるローカルメモリをアクセラレータから見たときの構成の一例を示す説明図、図3は、図1の電子システムに設けられたアクセラレータに対するコマンド形式の一例を示す説明図、図4は、図1のアクセラレータにおいて処理するストリームデータの一例を示す説明図、図5は、図1の電子ステムにおいてCPUからローカルメモリへのアクセス例を示す説明図、図6は、図1の電子システムに設けられたローカルメモリにおけるバンク配置の一例を示す説明図、図7は、本発明の一実施の形態によるローカルメモリへのデータ書き込み/読み出し、およびアクセラレータの実行処理の一例を示すフローチャート、図8は、図7の他の例を示すフローチャート、図9は、図8の他の例を示すフローチャート、図10は、ローカルメモリアクセス機構による優先度によるローカルメモリのバンク切り替えの一例を示す説明図、図11は、フィールド切り出し機構によるバンク優先度テーブルへの優先度の設定の一例を示す説明図である。
本実施の形態おいて、電子システム1は、たとえば、マルチメディア処理やグラフィックス、暗号処理などを実行する情報処理装置からなる。電子システム1は、図1に示すように、CPU2、アクセラレータ3、外部メモリ4、ローカルメモリ5、DMAコントローラ6、およびアクセス調停機構7などから構成される。
外部メモリ4は、中央処理装置であるCPU2、およびアクセラレータ3からアクセスされるメモリであり、DMAコントローラ6は、外部メモリ4やローカルメモリ5の間でデータ転送を行う。
アクセラレータ3とローカルメモリ5とは、ローカルバスB1を介して接続されており、CPU2とアクセラレータ3とは、ローカルバスB2を介して接続されている。
また、CPU2、DMAコントローラ6、外部メモリ4、ローカルメモリ5、ならびにアクセス調停部であるアクセス調停機構7は、ローカルバスB3を介して相互に接続されている。さらに、アクセス調停機構7とアクセラレータ3とは、ローカルバスB4を介して接続されている。
アクセラレータ3は、CPU2から起動されると、それ自身のプログラムであるコマンド列を実行する。この形式にはいろいろのものがあり、CPUから逐次コマンドを制御レジスタに設定されて動作するもの、また専用のコマンド領域にコマンド列を保持して、それをアクセラレータ自身がCPUとは非同期に連続的に実行するものなどがある。
コマンド自体についても、加算命令や転送命令などのようなものから、FPGAや再構成プロセッサの演算器の配置構成を定義するものもある。コマンド列の保持場所についても、アクセラレータの専用メモリやCPUと共有する外部メモリなどがある。
本実施の形態では、アクセラレータ3は、CPU2から、該アクセラレータ3内の制御レジスタ8に特別の値を書き込まれて起動されると、アクセラレータ3自身が共有の外部メモリ4に配置されているコマンド列CMDを順次取り込んで、それにしたがって動作するものとする。
図2は、ローカルメモリ5をアクセラレータ3から見たときの構成の一例を示すものである。ここで、ローカルメモリ5は、バンク5a、バンク5b、およびバンク5cの3つのバンクによって構成されている。
アクセラレータ3において、演算部3aは、ローカルメモリアクセス機構9によってローカルメモリ5の要素をアクセスする。これは、CPU2(図1)がアドレスによって外部メモリ4をアクセスするのと同じ方法であり、本実施の形態では、16ビットのローカルメモリアドレスAddlmにより1語を4バイトとして64キロバイトのローカルメモリ5をアクセスする。
アクセラレータ3に対するコマンドの形式は種々考えられるが、ここでは、図3に示すように、アクセラレータ3に対する命令語が外部メモリ4内に順次格納されているものとする。
その命令語は、加算やデータのロードなどの演算操作を示す演算名称部10とその演算が適用される一つまたは複数の演算項部11とからなる。アクセラレータ3の演算部3aは、この命令語の開始アドレスを指定して起動されると、自身でこの順次配置された命令語を解釈実行する。
図2において、3つのバンク5a〜5cは、そのうちの1つが有効バンク(第1のバンク)としてアクセラレータからアクセス可能である。これは、ローカルメモリアクセス機構9に設けられているバンク選択機構9aによって、演算部3aから出力されたローカルメモリアドレスAddlmの一部が変更されて、ローカルメモリ5に与えられ、各バンクとのデータ信号線L1,L2,L3の1つがローカルメモリアドレスAddlmに基づいて選択されるからである。
バンク選択部となるバンク選択機構9aは、コマンドである命令語によって制御され、バンクを切り替えるためのバンク切り替え命令が用意されている。本実施の形態では、図3における「バンク切り替え」の演算を指定する演算操作12によって、図2において、現在、ローカルメモリ5のバンク5aが有効であるときに、アクセラレータ3がバンク切り替え命令を実行すると、バンク5aに結びつけられているデータ信号L1がバンク5bからのデータ信号L2に切り替わってアクセラレータ3の演算部3aに結び付けられ、有効バンクの切り替えが生じる。
ここで、切り替え時に選択されるバンク5a〜5cは、直接指定することもできるし、「優先度の高いバンクに指定する」こともできる。本実施の形態では、後述するように、ローカルメモリアクセス機構9に備えられているバンク優先度テーブル9bによって優先度の高いバンクが選択されて切り替えるものとする。
上記により、アクセラレータ3の演算部3aがローカルメモリ5にアクセスする場合、コマンド系列は同じで、常に有効なバンクに対するアクセスとなり、有効なバンクが他のバンクに切り替えられてもアクセスするコードは同一とできる。
本実施の形態でアクセラレータ3の演算部3aが行うべき演算は、4B(1語)の整数データが262144個からなる1MBサイズの配列の各要素にそれぞれ関数「f」を作用させるものであるとし、図3の形式でメモリ内にfの機能を実現するコマンド列が配置されている。
図4のように4B(1語)のデータが連続するデータストリームDSがあり、そのサイズが1MBとすると、転送操作1で最初の0〜64KB分のデータD1をローカルメモリ5のバンク5aに転送してアクセラレータ3で演算し、演算実行後、さらに転送操作2で次の64〜128KB分のデータD2をローカルメモリ5のバンク5bに転送し、その演算実行後、転送操作3で、その次の128〜196KB分のデータD3をローカルメモリ5のバンク5cに転送し、アクセラレータ3で演算実行する。
図3のコマンド列では、実行すべき機能を65536個の4B(1語)の整数データからなる配列の各要素にそれぞれ関数「f」を作用させるものであるとし、このコマンドの最後に「バンク切り替え」操作を行って、このコマンドの先頭に戻るように配置されている。
したがって、バンク5aにある最初の0〜64KB分のデータに対するアクセラレータ3での演算が終了すると、バンク切り替え命令によりアクセラレータ3が使用するバンクは、次の64〜128KB分のデータを保持するバンク5bになる。
ここで、fのコマンド列は同一であるが、アクセスすべきローカルメモリ5のバンクが変更されることになる。同様に、64〜128KB分のデータを終了すると、バンク切り替え命令によりアクセラレータ3が使用するバンクは、その次の128〜196KB分のデータを保持するバンク5cになる。
次に、図5を用いてCPU2からローカルメモリ5にアクセスする技術について説明する。
アクセラレータ3は、アクセス調停機構7に対して、該アクセラレータ3が使用しているローカルメモリ5のバンクを設定する。これは図2のバンク選択機構9aにおいて、アクセラレータ3が使用中と指定しているバンクに対するアドレス範囲をこの調停機構に登録することによって行う。
CPU2からそのアドレス範囲に対してアクセスが発生すると、図5において、ローカルバスB3に出されたCPU2からのアクセス要求はアクセス調停機構7によって保留とされ、該CPU2からのアクセスは実行されずに保留される。
バスのアクセスにおけるこの調停処理は公知の技術として通常に行われているものである。バンクの切り替えが発生して、そのバンクを使用しなくなると、上記のアドレス範囲を使用可としてアクセス調停機構7に登録する。
逆に、先にCPU2から外部メモリアドレスによって使用されていて該CPU2がアクセス中のバンクに対しては、アクセス調停機構7は、アクセスするアドレスがローカルメモリ5のアドレス範囲に属しており、かつそのアクセス要求が受理されたら、同時に、ローカルメモリアクセス機構9に設けられている機能レジスタ9cに設定されるローカルメモリ5のバンクに対応するバンク使用可能情報となるバンク使用可能フラグをOFFに設定する。
バンク切り替えによってアクセラレータ3が、そのバンクにアクセスしようとすると、状態格納部、および可能情報格納部となる機能レジスタ9cに設定されているバンク使用可能フラグがOFFであるため、アクセラレータ3は、実行保留状態となる。
この実行保留状態は、例えば通常のCPU2においてはスリープ状態として知られた状態にすることで実現でき、このアクセラレータ3に供給するクロック信号を停止することによって実行する。
CPU2からみると、ローカルメモリ5の各バンク5a〜5cはそれぞれ別のアドレスが割り付けられており、CPU2からはそのアドレスで外部メモリ4の一部と見なされ、外部メモリとしてアクセスできる。
図6では、ローカルメモリ5のバンク5aがアドレスxA000000から配置され、バンク5bがアドレスxA010000からの領域に、バンク5cがアドレスxA020000からの領域に、と連続して配置されていることを示すものである。CPU2やDMAコントローラ6からは、上記のアドレスを用いてローカルメモリのすべてのバンクにアクセスすることが可能である。
アクセラレータ3が使用しているバンクに対してアクセス要求が出された場合、上述したアクセス調停機構7によってそのアクセスは待ち状態になるが、アクセラレータ3が使用していないバンクについては、通常のメモリと同様にアドレス付けされており、CPU2、もしくはDMAコントローラ6から自由にアクセスすることができる。
本実施の形態において、アクセラレータ3は、ローカルメモリ5の3つのバンク5a〜5cにあるデータを順次読み出し、これに関数fを作用させて結果を再度同じローカルメモリ5のバンクに書き出す。
この操作を1つのバンクのローカルメモリの全データ64KB分に行うためにT時間を要するものとする。また、CPU2の指定によりDMAコントローラ6が外部メモリ4からローカルメモリ5の1つのバンクに64KBのデータを書き込むのに要する時間をTW、ローカルメモリ5の1つのバンクから外部メモリ4へ64KBのデータを読み出すのに要する時間をTRとする。
図7〜図9において、ローカルメモリ5へのデータ書き込みとアクセラレータ3の実行、ローカルメモリ5からの結果データの読み出しの模様を所要時間によって場合分けし、タイミングチャートとして示す。
はじめに、TとTR+TWがほぼ等しい場合について、図7を用いて説明する。
まず、CPU2は、ローカルメモリ5のバンク5aにDMA転送により外部メモリ4から64KB分のデータを転送し、書き込む(ステップS101)。
次に、CPU2は、アクセラレータ3に起動をかける。ここで、アクセラレータ3に対するコマンド列は予め外部メモリ4に設定されているものとする。アクセラレータ3は、図3に示すコマンド列13にしたがって関数fを実行し、バンク5aからデータを読み出して演算し(ステップS102)、同じくバンク5aに結果を設定する。
アクセラレータ3が実行対象とするデータは、ローカルメモリ5のバンク5aに存在するので、アクセラレータ3は、即時に演算することができる。
このとき、CPU2は、アクセラレータ3の演算動作と並行して、バンク5bに64KB分の次のデータを書き込む(ステップS103)。すなわち、CPU2は、アクセラレータ3に起動をかけた後、バンク5bに転送を行い、この操作とアクセラレータ3での演算とが同時に進行する。
アクセラレータ3は、最初の64KB分が終了した段階で、バンク切り替え命令を実行する。本実施の形態では、コマンド列が設定型であり、バンクの設定切り替え命令が実行される。
このとき、アクセラレータ3が使用するバンクは、バンク5bに切り替わる。そしてコマンド列はこれまでと同じで、バンク5b内のデータに対して関数fが実行される(ステップS104)。
このとき、このfの実行(ステップS104の処理)と並行して、CPU2は、アクセラレータ3から解放されたバンク5aから外部メモリ4にDMA転送によって演算が終了した結果データを読み出す(ステップS105)。
それに続いて、バンク5cに次の64KB分のデータを書き込む(ステップS106)。この様子を、図7のステージ(b)に示す。バンク5aからの読み出しとアクセラレータ3の実行、アクセラレータ3の実行とバンク5cへの書き込みは同時に実行することができる。
以降、1MBのデータが終了するまで、バンクをバンク5a→バンク5b→バンク5c→バンク5aと切り替えながら、64KBずつでローカルメモリ5への転送とアクセラレータ3での演算とがパイプライン的に実行される。
ここで、CPU2がローカルメモリ5のアドレスを切り替えて、それぞれにデータを書き込み、また読み出す順序は、コンパイラなどの制御ソフトウェアによって指定することができる。
次に、TがTR+TWより大きい場合について、図8を用いて説明する。
この場合、上述したTとTR+TWがほぼ等しい場合と同様の動作状態となるが、図8のステージ(a)に示すように、バンク5aでのアクセラレータ3の演算(ステップS201)が終了した段階でバンク5bへの書き込み(ステップS202)は終了しており、バンク5aから結果データの外部メモリ4への読み出し(ステップS203)を行うことができる。
ステップS202の処理が終了すると、アクセラレータ3の実行終了時まで次のデータ転送はできないが、この時間はコンパイラなどのソフトウェアによって制御することも可能であるし、アクセラレータ3が実行中でバンク5bへの書き込み中であれば、アクセス調停機構7によってバンク5bからのメモリ転送は保留される。
次に、TがTR+TWより小さい場合について、図9を用いて説明する。
図9のステージ(b)において、CPU2は、アクセラレータ3の演算が終了するまで、バンク5aに対する読み出しを行うことはできない。この期間にCPU2からバンク5aに対してアクセス要求があれば、待ち状態となる。
バンク5aの読み出し(ステップS301)とバンク5bに対するアクセラレータ3の演算(ステップS302)は同時に実行され、バンク5aの読み出し(ステップS301の処理)終了後に、バンク5cへの書き込み(ステップS303)を実行する。
ここで、CPU2からの外部メモリ4のアクセスは、CPU2が逐次行うこともできるし、CPU2がDMAコントローラ6に対して書き込み実行の命令を発行することでも可能である。
以上により、アクセラレータ3に対するコンフィギュレーションのコードは共通で、かつデータ転送と演算とが並列に動作して図7〜図9に示すように、演算がパイプライン実行できることになる。
また、優先度は、ここではバンク5a>バンク5b(バンク5aの方がバンク5bより優先度が高い)、バンク5b>バンク5c、バンク5c>バンク5aとなるように設定されているものとする。
なお、この優先順位は、命令語によって設定することも可能である。これを実現する機構は、たとえば、図10に示すように、バンク切り替え信号BSが入力されるごとに優先度順にリング構造に並んだシフトレジスタを該バンク切り替え信号BSの入力ごとに次々に右の優先順位に移動して、バンク選択機構9aが選択されたバンクに対応するローカルメモリバンクアドレスBAddを出力できるようにするものである。
図10において、バンク優先度テーブル9bは、アドレス付けされてメモリマップされており、そのアドレスに4B(1語)のデータをCPU2から書き込むことで値の設定が行われる。
書き込まれたデータは、フィールド切り出し機構14によって、優先順位1、優先順位2、優先順位3それぞれに値が設定される。そして、図11に示すように、書き込まれる4Bデータのビット位置0−1の2ビットが優先順位1に、ビット位置2−3の2ビットが優先順位2に、ビット位置4−5の2ビットが優先順位3に、それぞれ切り出される。
たとえば、2ビットで示される値が「01」のときバンク5a、「10」のときバンク5b、「11」のときバンク5cをそれぞれ示す。また、値「00」は現在の値を変更しないことを示すものとする。さらに、書き込みデータのビット位置6以降の上位ビットは無効である。
ここでは、実行開始時に、バンク優先度テーブル9bに、x00000039を書き込むことで、優先順位1にはバンク5aを指示する値「01」、優先順位2にはバンク5bを指示する値「10」、優先順位3にはバンク5cを指示する値「11」をそれぞれ設定する。
バンク選択機構9aでは、バンク優先度テーブル9bの優先順位1からの信号Sigを得て、これをローカルメモリアドレスAddlmに結合することにより、アクセラレータ3から指定されたアドレスをバンクごとに異なるローカルメモリバンクアドレスBAddとして生成する。
本実施の形態では、ローカルメモリ5のバンク5a〜5cが64KBずつ連続してアドレス付けされているものとして、ローカルメモリアドレスAddlmで示されるアドレス値を左にバンク優先度テーブル9bの信号Sigによる値に16を乗じた数のビットだけ左シフトして、64KBごとの3バンクを特定する。
次に、バンク切り替え信号BSが入力されると、図8のステップS202の処理で書き込まれた値「1」が、優先順位1にシフトされて優先順位3に移り、優先順位3の内容が優先順位2に移る。
優先順位1は、優先順位2のバンク5bとなる。これにより、切り替えコマンドによって自動的に次のバンクに移ることができ、同一のコマンド列で異なるバンクのローカルメモリにアクセスできる。
以上のようにして、本発明では、アクセラレータ3のローカルメモリ5を複数バンクによる構成とし、コンフィギュレーションで指定されるアクセラレータ3のコマンドによってバンクを切り替えて使用し、アクセラレータ3からは各バンクが同じアドレスでアクセスされることにより、バンクが切り替わってもアクセラレータ3がローカルメモリ5にアクセスするコードは同じにすることができる。
一方、CPU2からは、ローカルメモリ5のすべてのバンクが異なるアドレスによって、外部メモリと同様にアクセスされる。
これにより、本実施の形態によれば、アクセラレータ3から見て演算部3aと結びついていないバンク(待機バンク)と外部メモリ4との間でCPU2はデータ転送を自由に行うことができるので、アクセラレータ3への演算データ転送時のオーバヘッドを削減することができる。
さらに、ローカルメモリ5と外部メモリ4の転送は、DMAコントローラ6を使用してバックグラウンドに実行することができるので、アクセラレータ3の実行とデータ転送を並列に実行することも可能になる。また、このような操作をコンパイラによって制御することも容易となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、アクセラレータにおける演算処理の高速化技術に適している。
1 電子システム
2 CPU
3 アクセラレータ
3a 演算部
4 外部メモリ
5 ローカルメモリ
5a バンク
5b バンク
5c バンク
6 DMAコントローラ
7 アクセス調停機構
8 制御レジスタ
9 ローカルメモリアクセス機構
9a バンク選択機構
9b バンク優先度テーブル
9c 機能レジスタ
10 演算名称部
11 演算項部
12 演算操作
13 コマンド列
14 フィールド切り出し機構
B1〜B4 ローカルバス
2 CPU
3 アクセラレータ
3a 演算部
4 外部メモリ
5 ローカルメモリ
5a バンク
5b バンク
5c バンク
6 DMAコントローラ
7 アクセス調停機構
8 制御レジスタ
9 ローカルメモリアクセス機構
9a バンク選択機構
9b バンク優先度テーブル
9c 機能レジスタ
10 演算名称部
11 演算項部
12 演算操作
13 コマンド列
14 フィールド切り出し機構
B1〜B4 ローカルバス
Claims (8)
- データを格納するローカルメモリと、
データを格納する外部メモリと、
前記ローカルメモリに格納されたデータの演算を行い、その演算結果を前記ローカルメモリに格納する演算シーケンスを実行するアクセラレータと、
前記ローカルメモリおよび前記外部メモリに格納されたデータを処理する中央処理装置とを備え、
前記ローカルメモリは、複数のバンクに分割された構成からなり、
前記中央処理装置は、前記複数のバンクのそれぞれに対し、異なるメモリアドレスによってアクセスし、
前記アクセラレータは、前記複数のバンクのうち、アドレス指定された第1のバンクのみにアクセスすることを特徴とする情報処理装置。 - 請求項1記載の情報処理装置において、
前記アクセラレータは、
前記複数のバンクのそれぞれの使用可能状態を示すデータを格納する状態格納部を備え、前記状態格納部に格納されたデータに基づいて、前記第1のバンクのうちの1つのバンクにアクセスすることを特徴とする情報処理装置。 - 請求項2記載の情報処理装置において、
前記アクセラレータは、
前記ローカルメモリのバンクを切り替えるバンク切り替え命令を出力するバンク選択部を備え、
前記バンク選択部は、
前記アクセラレータが、第1の演算処理から次の第2の演算処理に遷移する際に、コマンドに基づいて、前記バンク切り替え命令を出力し、前記ローカルメモリのバンクを前記第1の演算処理の際にアクセスしていたバンクと異なるバンクに切り替えることを特徴とする情報処理装置。 - 請求項3記載の情報処理装置において、
前記アクセラレータは、
前記バンク選択部により、前記ローカルメモリのバンクが切り替えられても、切り替えられた前記ローカルメモリのバンクに対して前記演算シーケンスを実行することを特徴とする情報処理装置。 - 請求項2〜4のいずれか1項に記載の情報処理装置において、
前記中央処理装置は、
前記アクセラレータがアクセスしていない前記ローカルメモリのバンクと、前記外部メモリとの間で、データを転送することを特徴とする情報処理装置。 - 請求項5記載の情報処理装置において、
前記アクセラレータは、
前記ローカルメモリのバンクが3以上に分割されている場合、前記アクセラレータがアクセスしていない前記バンクに対して優先順位を付与する優先順位情報を格納するバンク優先度テーブルを備え、
前記バンク選択部は、
前記バンク優先度テーブルに格納されている優先順位情報に基づいて、優先順位の小さい順、または優先順位の大きい順に、前記アクセラレータがアクセスする前記ローカルメモリのバンクを切り替えることを特徴とする情報処理装置。 - 請求項5記載の情報処理装置において、
前記アクセラレータは、
前記ローカルメモリのバンクが使用可であるか、不可であるかを示すバンク使用可能情報を保持する可能情報格納部を備え、
前記アクセラレータは、
前記可能情報格納部に格納されている使用可能情報が使用可能であることを示す情報であれば実行状態となり、使用不可の状態を示していれば実行を保留し、前記可能情報格納部の使用可能情報が使用可を示す情報に遷移した際に実行を再開することを特徴とする情報処理装置。 - 請求項7記載の情報処理装置において、
前記アクセラレータが前記ローカルメモリのバンクに対して発行するアクセス要求を調停するアクセス調停部を備え、
前記アクセス調停部は、
前記ローカルメモリのバンクが前記アクセラレータによって使用されている際に、前記中央処理装置からのアクセス要求を待ち状態とすることを特徴とする情報処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009276557A JP2011118744A (ja) | 2009-12-04 | 2009-12-04 | 情報処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009276557A JP2011118744A (ja) | 2009-12-04 | 2009-12-04 | 情報処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2011118744A true JP2011118744A (ja) | 2011-06-16 |
Family
ID=44283977
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009276557A Pending JP2011118744A (ja) | 2009-12-04 | 2009-12-04 | 情報処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2011118744A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016181648A1 (ja) * | 2015-05-12 | 2016-11-17 | 日本電気株式会社 | アクセラレータ制御装置、アクセラレータ制御方法および記録媒体 |
| CN110308865A (zh) * | 2018-03-27 | 2019-10-08 | 爱思开海力士有限公司 | 存储器系统、计算系统及其操作方法 |
-
2009
- 2009-12-04 JP JP2009276557A patent/JP2011118744A/ja active Pending
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016181648A1 (ja) * | 2015-05-12 | 2016-11-17 | 日本電気株式会社 | アクセラレータ制御装置、アクセラレータ制御方法および記録媒体 |
| JPWO2016181648A1 (ja) * | 2015-05-12 | 2018-03-01 | 日本電気株式会社 | アクセラレータ制御装置、アクセラレータ制御方法および記録媒体 |
| US10606635B2 (en) | 2015-05-12 | 2020-03-31 | Nec Corporation | Accelerator control apparatus, accelerator control method, and storage medium |
| CN110308865A (zh) * | 2018-03-27 | 2019-10-08 | 爱思开海力士有限公司 | 存储器系统、计算系统及其操作方法 |
| KR20190113040A (ko) * | 2018-03-27 | 2019-10-08 | 에스케이하이닉스 주식회사 | 컴퓨팅 시스템 및 그것의 동작방법 |
| JP2019175427A (ja) * | 2018-03-27 | 2019-10-10 | エスケーハイニックス株式会社SK hynix Inc. | コンピュータシステム及びその動作方法 |
| US11461024B2 (en) | 2018-03-27 | 2022-10-04 | SK Hynix Inc. | Computing system and operating method thereof |
| CN110308865B (zh) * | 2018-03-27 | 2023-04-25 | 爱思开海力士有限公司 | 存储器系统、计算系统及其操作方法 |
| JP7330694B2 (ja) | 2018-03-27 | 2023-08-22 | エスケーハイニックス株式会社 | コンピュータシステム及びその動作方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8195845B2 (en) | Memory system having high data transfer efficiency and host controller | |
| JP2004171209A (ja) | 共有メモリデータ転送装置 | |
| US20150178426A1 (en) | Hardware simulation controller, system and method for functional verification | |
| JP3136257B2 (ja) | コンピュータメモリインタフェース装置 | |
| CN105765541A (zh) | 用于机动车的控制器 | |
| JP2014501008A (ja) | データを移動させるための方法及び装置 | |
| US20130036426A1 (en) | Information processing device and task switching method | |
| JP2001092772A (ja) | 同期固定レイテンシループを使用するデータバス | |
| US20030196072A1 (en) | Digital signal processor architecture for high computation speed | |
| JP2007133456A (ja) | 半導体装置 | |
| JP2011118744A (ja) | 情報処理装置 | |
| JP2012014436A (ja) | ダイレクトメモリアクセス制御装置及び方法 | |
| US6708259B1 (en) | Programmable wake up of memory transfer controllers in a memory transfer engine | |
| JP7567133B2 (ja) | 半導体記憶装置及び半導体記憶装置の制御方法 | |
| JP2005165592A (ja) | データ転送装置 | |
| US20080209085A1 (en) | Semiconductor device and dma transfer method | |
| CN120892390B (en) | System on chip, storage system and task processing method | |
| JP2007206924A (ja) | 演算処理システム | |
| US8677033B2 (en) | Method for initializing registers of peripherals in a microcontroller | |
| CN120892390A (zh) | 片上系统、存储系统及任务处理方法 | |
| JP4363431B2 (ja) | データ転送方式 | |
| JP2001255902A (ja) | デュアルポートメモリ、そのデータ転送方法、及びデュアルポートメモリを用いる制御システム | |
| JP2006039821A (ja) | マルチプロセッサ搭載システムlsiの制御方法 | |
| JP2009098819A (ja) | メモリシステム、メモリシステムの制御方法、及びコンピュータシステム | |
| JP5949330B2 (ja) | 情報処理装置、情報処理方法 |