JP2009026269A - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP2009026269A JP2009026269A JP2007191741A JP2007191741A JP2009026269A JP 2009026269 A JP2009026269 A JP 2009026269A JP 2007191741 A JP2007191741 A JP 2007191741A JP 2007191741 A JP2007191741 A JP 2007191741A JP 2009026269 A JP2009026269 A JP 2009026269A
- Authority
- JP
- Japan
- Prior art keywords
- data
- temporary storage
- storage unit
- unit
- data transfer
- 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.)
- Withdrawn
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】回路規模の増加を抑えつつ、高速なデータ処理を実行することが可能で、ソフトウェア設計資産の再利用性が高いデータ処理装置を提供する。
【解決手段】第1のデータ一時記憶部107及び第2のデータ一時記憶部108は、書き込まれた順序でデータを読み出すことが可能なメモリである。第1のデータ転送制御部109は、外部メモリ200に対する読み出し又は書き込みを行うアドレスを所定のアドレスシーケンスに従って算出し、外部メモリ200と第1のデータ一時記憶部107及び第2のデータ一時記憶部108との間のデータ転送を制御する。第2のデータ転送制御部110は、プロセッサ部101と第1のデータ一時記憶部107及び第2のデータ一時記憶部108との間のデータ転送が単一のアドレス指定にて行われるよう制御する。
【選択図】図1
【解決手段】第1のデータ一時記憶部107及び第2のデータ一時記憶部108は、書き込まれた順序でデータを読み出すことが可能なメモリである。第1のデータ転送制御部109は、外部メモリ200に対する読み出し又は書き込みを行うアドレスを所定のアドレスシーケンスに従って算出し、外部メモリ200と第1のデータ一時記憶部107及び第2のデータ一時記憶部108との間のデータ転送を制御する。第2のデータ転送制御部110は、プロセッサ部101と第1のデータ一時記憶部107及び第2のデータ一時記憶部108との間のデータ転送が単一のアドレス指定にて行われるよう制御する。
【選択図】図1
Description
本発明は、外部メモリに格納されたデータをプロセッサが処理するデータ処理装置に関する。
プロセッサと外部メモリとの間で転送されるデータをプロセッサが処理するデータ処理装置が知られている(例えば非特許文献1参照)。
永井正武著、「実用・コンピュータアーキテクチャ」、実教出版株式会社、1995年3月20日(第93,286,118頁)
永井正武著、「実用・コンピュータアーキテクチャ」、実教出版株式会社、1995年3月20日(第93,286,118頁)
プロセッサがデータ処理を行う際、データを演算するための命令の他に、処理前のデータが格納されているメモリアドレス、又は処理後のデータを格納するメモリアドレスを算出するための命令が実行される。データの転送量が増加すると、メモリアドレスを算出するための命令の実行に掛かる時間も増加するため、プロセッサによるデータ処理のために確保された時間内に、データを演算するための命令を実行する時間を十分に確保することができないという課題がある。
この課題を解決するために、メモリアドレスを算出するための命令と、データを転送するための命令とを同時に実行することが可能な命令(VLIW)を備えることにより、データ処理の高速化を図るDSP(Digital Signal Processor)などのプロセッサがある。しかし、一般的に、プロセッサで実行されるプログラムはプロセッサ毎に最適化されているため、プロセッサを変更すると、改めてプログラムを最適化する作業を実施しなければならず、ソフトウェア設計資産の再利用性が低くなるという課題がある。このため、高速なデータ処理を行うデータ処理装置を短期間に提供することが難しくなる。また、一般的に、VLIWでは連続アドレスのような単純なメモリアドレス演算しか実行されないため、複雑なメモリアドレス演算には対応できない。
外部メモリは高速にデータを転送することができないため、プロセッサが高速にアクセスすることが可能なキャッシュメモリをプロセッサと外部メモリとの間に設けることが多い。このキャッシュメモリは、プロセッサによるデータのアクセスに偏りが生じることを利用し、頻繁にアクセスが発生するデータをキャッシュメモリにコピーしておき、外部メモリとのデータ転送回数を減らすことにより、プロセッサのデータアクセスの高速化を図っている。
しかし、プロセッサで処理されるデータによっては、データのアクセスに偏りがなく、キャッシュメモリが有効的に機能しないことがある。例えば、画像処理においては、外部メモリに格納された大量のデータが連続的かつ平均的に転送されるため、キャッシュメモリが有効的に機能せず、外部メモリとキャッシュメモリとの間で頻繁にデータがコピーされる。外部メモリとキャッシュメモリとの間でデータをコピーしている間は、プロセッサは処理を停止しているため、高速なデータ処理を行うことができないという課題がある。勿論、キャッシュメモリのサイズを大きくすれば、外部メモリとキャッシュメモリとの間のデータのコピー回数を減らすことができるが、高速アクセス可能なメモリをデータ処理装置の内部に大量に持つことは、回路規模ひいてはコストの増大につながるため好ましくない。
本発明は、上述した課題に鑑みてなされたものであって、回路規模の増加を抑えつつ、高速なデータ処理を実行することが可能で、ソフトウェア設計資産の再利用性が高いデータ処理装置を提供することを目的とする。
本発明は、上記の課題を解決するためになされたもので、外部メモリに格納されたデータをプロセッサが処理するデータ処理装置において、書き込まれた順序でデータの読み出しが可能なデータ一時記憶部と、予め設定された外部メモリに対する読み出し又は書き込みを行うアドレスを所定のアドレスシーケンスに従って算出し、前記外部メモリと前記データ一時記憶部との間のデータ転送を制御する第1のデータ転送制御部と、前記プロセッサと前記データ一時記憶部との間のデータ転送が単一のアドレス指定にて行われるよう制御する第2のデータ転送制御部とを備えることを特徴とするデータ処理装置である。
また、本発明のデータ処理装置において、前記データ一時記憶部は、前記外部メモリから読み出されたデータを記憶する第1のデータ一時記憶部と、前記外部メモリへ書き込まれるデータを記憶する第2のデータ一時記憶部とを、それぞれ1つ以上備えることを特徴とする。
また、本発明のデータ処理装置において、前記第1のデータ転送制御部は、前記第1のデータ一時記憶部の無効データ量が所定量以上である場合に前記外部メモリから前記第1のデータ一時記憶部へデータを転送することを特徴とする。
また、本発明のデータ処理装置において、前記第1のデータ転送制御部は、前記第1のデータ一時記憶部の無効データ量が所定量未満である場合に前記外部メモリから前記第1のデータ一時記憶部へのデータ転送を停止することを特徴とする。
また、本発明のデータ処理装置において、前記第1のデータ転送制御部は、前記第2のデータ一時記憶部の有効データ量が所定量以上である場合に前記第2のデータ一時記憶部から前記外部メモリへデータを転送することを特徴とする。
また、本発明のデータ処理装置において、前記第1のデータ転送制御部は、前記第2のデータ一時記憶部の有効データ量が所定量未満である場合に前記第2のデータ一時記憶部から前記外部メモリへのデータ転送を停止することを特徴とする。
また、本発明のデータ処理装置において、前記第1のデータ一時記憶部及び前記第2のデータ一時記憶部は、物理的に区切られたメモリであることを特徴とする。
また、本発明のデータ処理装置において、前記第1のデータ一時記憶部及び前記第2のデータ一時記憶部は、同一のメモリ内で論理的に区切られた領域であることを特徴とする。
本発明によれば、第1のデータ転送制御部及び第2のデータ転送制御部がデータ転送を制御することにより、データ一時記憶部が小容量でも擬似的に大きな容量が確保されるため、データ処理の高速化のために追加する回路規模の増加を抑えることができる。
また、本発明によれば、プロセッサによる単一のアドレス指定にて、第2のデータ転送制御部の制御によりプロセッサとデータ一時記憶部との間でデータ転送が行われ、データ処理中にプロセッサがデータ転送のためのアドレス演算を実行する必要がないので、高速なデータ処理を実行することができる。さらに、第1のデータ転送制御部の制御により、プロセッサの動作とは独立して外部メモリとデータ一時記憶部との間でデータ転送が行われ、データ処理中にプロセッサがデータ転送のために待機する状態の発生が低減されるので、高速なデータ処理を実行することができる。
また、本発明によれば、データ処理の高速化のためにプロセッサを変更する必要がないため、ソフトウェア設計資産の再利用性を高く維持することができる。
以下、図面を参照し、本発明の実施形態を説明する。図1は、本発明の一実施形態によるデータ処理装置の構成を示している。図1に示すデータ処理装置100は、プロセッサ部101と、プロトコル変換部102と、キャッシュ探索部103と、命令キャッシュ部104と、データキャッシュ部105と、キャッシュ入替部106と、第1のデータ一時記憶部107と、第2のデータ一時記憶部108と、第1のデータ転送制御部109と、第2のデータ転送制御部110とを含んで構成され、バス111を介してデータ処理装置100に接続された外部メモリ200とデータ転送を行い、データ処理を行う。
なお、バス111には所定の機能を実行する機能ブロックが接続されることがあるが、本実施形態の説明には不要であるため、その機能ブロックを図示していない。また、プロセッサ部101には図示しないメモリが接続されることがあるが、本実施形態の説明には不要であるため、そのメモリを図示していない。
プロセッサ部101は、キャッシュ探索部103を介して命令キャッシュ部104から読み出したプログラムの内容に応じたデータ処理を実行する。また、プロセッサ部101は、プログラムの内容に応じて、キャッシュ探索部103を介してデータキャッシュ部105との間でデータ転送を行い、あるいは第2のデータ転送制御部110を介して第1のデータ一時記憶部107及び第2のデータ一時記憶部108との間でデータ転送を行い、データ処理を実行する。また、プロセッサ部101は、プロトコル変換部102を介して外部メモリ200と直接データ転送を行うことも可能である。
プロトコル変換部102は、プロセッサ部101が外部メモリ200と直接データ転送を行うことを可能とするために、プロセッサ部101のデータ転送プロトコルとバス111のデータ転送プロトコルの変換を行う。プロセッサ部101により指定されたメモリアドレスに対応するデータ転送が完了するまで、プロセッサ部101はデータ処理を一時的に停止する。
キャッシュ探索部103は、プロセッサ部101により指定されたメモリアドレスに対応するプログラムが命令キャッシュ部104に格納されているか否かを判定し、該当プログラムが命令キャッシュ部104に格納されている場合には、プロセッサ部101との間で該当プログラムのデータ転送を行う。一方、該当プログラムが命令キャッシュ部104に格納されていない場合には、キャッシュ探索部103はプロセッサ部101とのデータ転送を一時的に停止し、命令キャッシュ部104のプログラムの入れ替えをキャッシュ入替部106に要求し、そのプログラムの入れ替えが完了してから、プロセッサ部101と命令キャッシュ部104との間のデータ転送を再開する。
また、キャッシュ探索部103は、プロセッサ部101により指定されたメモリアドレスに対応するデータがデータキャッシュ部105に格納されているか否かを判定し、該当データがデータキャッシュ部105に格納されている場合には、プロセッサ部101との間で該当データのデータ転送を行う。一方、該当データがデータキャッシュ部105に格納されていない場合には、キャッシュ探索部103はプロセッサ部101とのデータ転送を一時的に停止し、データキャッシュ部105のデータの入れ替えをキャッシュ入替部106に要求し、そのデータの入れ替えが完了してから、プロセッサ部101とデータキャッシュ部105との間のデータ転送を再開する。
命令キャッシュ部104はメモリであり、プロセッサ部101が実行するプログラムを記憶する。データキャッシュ部105はメモリであり、プロセッサ部101が実行するデータ処理に必要なデータ、データ処理の実行により生じる中間データ、及びデータ処理の実行結果のデータを記憶する。
キャッシュ入替部106は、キャッシュ探索部103からの命令キャッシュ部104のプログラムの入れ替え要求に応じて、外部メモリ200と命令キャッシュ部104との間でデータ転送を行う。また、キャッシュ入替部106は、キャッシュ探索部103からのデータキャッシュ部105のデータの入れ替え要求に応じて、外部メモリ200とデータキャッシュ部105との間でデータ転送を行う。これらのデータ転送では、プロセッサ部101によって指定されたアドレスを含む連続した複数アドレスに対応するデータが転送される。
第1のデータ一時記憶部107は、プロセッサ部101によるデータ処理の対象となるデータが格納されるメモリであり、第1のデータ一時記憶部107に書き込まれた順にデータが読み出される。第2のデータ一時記憶部108は、プロセッサ部101によるデータ処理後のデータが格納されるメモリであり、第2のデータ一時記憶部108に書き込まれた順にデータが読み出される。第1のデータ一時記憶部107及び前記第2のデータ一時記憶部108は、物理的に区切られたメモリとして構成されていてもよいし、同一のメモリ内で論理的に区切られた領域として構成されていてもよい。第1のデータ一時記憶部107及び第2のデータ一時記憶部108にアクセスする際にプロセッサ部101は単一のアドレスを指定するだけであり、実際のアドレス、すなわち第1のデータ一時記憶部107の読み出しアドレス及び第2のデータ一時記憶部108の書き込みアドレスは第2のデータ転送制御部110によって管理される。
第1のデータ転送制御部109は、第2のデータ転送制御部110からのデータ転送要求に応じて、外部メモリ200から第1のデータ一時記憶部107へのデータ転送及び第2のデータ一時記憶部108から外部メモリ200へのデータ転送を行う。そのデータ転送の際に第1のデータ転送制御部109は、プロセッサ部101によって設定されたレジスタの値に基づいて実行する所定の読み出しアドレスシーケンス又は書き込みアドレスシーケンスに従って外部メモリ200のメモリアドレスを算出する。
ここで、アドレスシーケンスとは、プロセッサ部101によるデータ処理中に行われる外部メモリ200とのデータ転送において、外部メモリ200の所定の位置に格納されたデータを処理順に転送するための読み出しアドレスの算出方法、及びデータを処理順に外部メモリ200の所定の位置に格納するための書き込みアドレスの算出方法とする。本実施形態では、予め所定のアドレスシーケンスがデータ処理装置に設定されているものとするが、アドレスシーケンスの設定に必要なパラメータを記憶するレジスタを第1のデータ転送制御部109に設け、データ処理装置の動作中に必要に応じて動的にアドレスシーケンスを変更しても構わない。
第2のデータ転送制御部110は、プロセッサ部101より単一のアドレスで読み出しを要求されたデータを第1のデータ一時記憶部107から読み出してプロセッサ部101へ出力し、プロセッサ部101より単一のアドレスで書き込みを要求されたデータを第2のデータ一時記憶部108に書き込む。また、データ処理の整合性を保つために、第2のデータ転送制御部110は第1のデータ一時記憶部107の読み出しアドレス及び第2のデータ一時記憶部108の書き込みアドレスを管理する。
次に、本実施形態によるデータ処理装置の動作を説明する。まず、外部メモリ200からデータを読み出す際の読み出しアドレスを算出する読み出しアドレスシーケンスを説明する。本実施形態では、ラスタ順に格納された画像データがデータ処理の対象であるとする。図2は、外部メモリ200に対する画像データの格納例を示している。図2に示すようにRGBの色毎に分かれて画像データが格納されている。ハッチングの施された領域が、画像データの格納された領域である。
図2において、FrmBase_n(n=0,1,2・・・)は、各フレームの画像データが格納されている領域の先頭アドレスである。Hstepは画像水平方向のアドレス変化量である。Vstepは画像垂直方向のアドレス変化量である。Hnumは画像水平方向のデータ数である。Vnumは画像垂直方向のデータ数である。画像サイズの変化に対応できるようにするため、図2に示す1ライン分の画像データ領域には余裕を持たせてある。外部メモリ200の先頭アドレスから順に画像の1ライン目のデータが格納されている。続いて、2ライン目、3ライン目、・・・、最終ライン目のデータがアドレスの若い方から順に格納されている。
図3は読み出しアドレスシーケンスを示している。以下、図3を参照しながら、読み出しアドレスシーケンスの処理手順を説明する。第1のデータ転送制御部109は、水平方向及び垂直方向それぞれのアドレスレジスタを備え、それらのレジスタの値に応じた演算を実行する。初期状態では水平方向アドレスレジスタの値は0であり、垂直方向アドレスレジスタの値はFrmBase_0である。
まず、第1のデータ転送制御部109は、垂直方向のアドレスレジスタの値に基づいて、1フレーム分の画像データの読み出しが終了したか否かを判定する(ステップS100)。レジスタの値からFrmBase_n(nはn=0,1,2・・・で現在のフレームの値)を減算した値がVnumの場合には1フレーム分の画像データの読み出しが終了しているため、ステップS101へ進む。また、レジスタの値からFrmBase_nを減算した値が0〜Vnum-1の場合には1フレーム分の画像データの読み出しがまだ終了していないため、ステップS102へ進む。
ステップS102へ進んだ場合、第1のデータ転送制御部109は、水平方向のアドレスレジスタの値に基づいて、1ライン分の画像データの読み出しが終了したか否かを判定する(ステップS102)。レジスタの値がHnumの場合には1ライン分の画像データの読み出しが終了しているため、ステップS103へ進む。また、レジスタの値が0〜Hnum-1の場合には1ライン分の画像データの読み出しがまだ終了していないため、ステップS105へ進む。
ステップS105へ進んだ場合、第1のデータ転送制御部109は、水平方向のアドレスレジスタの値にHstepを加算する(ステップS105)。続いて、ステップS106へ進む。また、ステップS103へ進んだ場合、第1のデータ転送制御部109は、水平方向のアドレスレジスタの値を0にクリアし(ステップS103)、垂直方向のアドレスレジスタの値にVstepを加算する(ステップS104)。これにより、読み出し対象の画像データが同一フレームの次ラインの画像データとなる。続いて、ステップS106へ進む。
一方、ステップS101へ進んだ場合、第1のデータ転送制御部109は、垂直方向のアドレスレジスタの値にFrmBase_n(nはn=0,1,2・・・で次フレームの値)をセットする(ステップS101)。これにより、読み出し対象の画像データが次フレームの画像データとなる。続いて、ステップS106へ進む。
ステップS106では、第1のデータ転送制御部109は、水平方向のアドレスレジスタの値と垂直方向のアドレスレジスタの値を加算する(ステップS106)。この加算値が読み出しアドレスとなる。外部メモリ200にデータを書き込む場合の書き込みアドレスシーケンスも上記と同様である。
次に、図4を参照しながら、外部メモリ200から第1のデータ一時記憶部107へのデータ転送の手順を説明する。まず、第1のデータ転送制御部109は、第2のデータ転送制御部110より、外部メモリ200から第1のデータ一時記憶部107へのデータ転送が要求されているか否かを判定する(ステップS200)。第1のデータ転送制御部109は、このデータ転送が要求されている場合にのみ、外部メモリ200から第1のデータ一時記憶部107へデータを転送する。
データ転送が要求されている場合、第1のデータ転送制御部109は、外部メモリ200に対する読み出しアドレスを、所定の読み出しアドレスシーケンスに従って算出し(ステップS201)、そのアドレスにて指定されるデータを外部メモリ200から読み出す(ステップS202)。続いて、第1のデータ転送制御部109は、第1のデータ一時記憶部107に対する書き込みアドレスを算出し(ステップS203)、そのアドレスにて指定される第1のデータ一時記憶部107の所定の位置に、ステップS202で外部メモリ200から読み出したデータ書き込む(ステップS204)。
次に、図5を参照しながら、第2のデータ一時記憶部108から外部メモリ200へのデータ転送の手順を説明する。まず、第1のデータ転送制御部109は、第2のデータ転送制御部110より、第2のデータ一時記憶部108から外部メモリ200へのデータ転送が要求されているか否かを判定する(ステップS300)。第1のデータ転送制御部109は、このデータ転送が要求されている場合にのみ、第2のデータ一時記憶部108から外部メモリ200へデータを転送する。
データ転送が要求されている場合、第1のデータ転送制御部109は、第2のデータ一時記憶部108に対する読み出しアドレスを算出し(ステップS301)、そのアドレスにて指定される第2のデータ一時記憶部108の所定の位置からデータを読み出す(ステップS302)。続いて、第1のデータ転送制御部109は、外部メモリ200に対する書き込みアドレスを、所定の書き込みアドレスシーケンスに従って算出し(ステップS303)、そのアドレスにて指定される外部メモリ200の所定の位置に、ステップS302で第2のデータ一時記憶部108から読み出したデータを書き込む(ステップS304)。
次に、図6を参照しながら、第1のデータ一時記憶部107のアドレス制御方法を説明する。図6において、RPは、第2のデータ転送制御部110によって管理される読み出しアドレスであり、WPは、第1のデータ転送制御部109によって管理される書き込みアドレスである。本実施形態では、所定量のデータを1回の転送単位として外部メモリ200と第1のデータ一時記憶部107との間でデータ転送が行われるものとする。
第2のデータ転送制御部110より、外部メモリ200から第1のデータ一時記憶部107へのデータ転送が要求された場合に、第1のデータ転送制御部109は、第1のデータ一時記憶部107に対するデータの書き込みを実行する。図6に示すように、第1のデータ一時記憶部107の書き込みアドレスWPは、データの書き込みが行われる毎に先頭アドレスから順次インクリメントされ、終端アドレスに達すると再び先頭アドレスに戻る方式で制御される。
また、プロセッサ部101による第1のデータ一時記憶部107に対するデータの読み出しアクセスが行われた場合に、第2のデータ転送制御部110は第1のデータ一時記憶部107からデータを読み出し、プロセッサ部101へ出力する。図6に示すように、第1のデータ一時記憶部107の読み出しアドレスRPは、データの読み出しが行われる毎に先頭アドレスから順次インクリメントされ、終端アドレスに達すると再び先頭アドレスに戻る方式で制御される。
第1のデータ一時記憶部107にデータが全く格納されていない初期状態R1では、読み出しアドレスRP及び書き込みアドレスWPは第1のデータ一時記憶部107の先頭アドレスに設定されている。第1のデータ転送制御部109が外部メモリ200からのデータ転送を開始した後の状態R2では、書き込みアドレスWPがインクリメントされている。続いて、プロセッサ部101の要求に応じて第2のデータ転送制御部110がデータの読み出しを開始した後の状態R3では、読み出しアドレスRPがインクリメントされている。書き込みアドレスWP及び読み出しアドレスRPは順次インクリメントされる(状態R4)。書き込みアドレスWPが終端アドレスに達すると、再び先頭アドレスに戻り、その後、インクリメントされる(状態R5)。
第2のデータ転送制御部110は、第1のデータ転送制御部109によって算出される書き込みアドレスWPを参照し、読み出しアドレスRPが書き込みアドレスWPを追い越さないように制御する。具体的には、WP=RPの条件を満たす場合、すなわちプロセッサ部101によるデータの読み出しが、第1のデータ転送制御部109によるデータの書き込みに追いついた場合に、第2のデータ転送制御部110はプロセッサ部101によるデータの読み出しを待機させる。
第1のデータ転送制御部109により第1のデータ一時記憶部107にデータが書き込まれ、WP≠RPの条件を満たすようになった場合、第2のデータ転送制御部110はプロセッサ部101によるデータの読み出しを再開させる。これらの制御により、第1のデータ転送制御部109によるデータの書き込みがプロセッサ部101によるデータの読み出しに間に合わない場合においても、プロセッサ部101に無効なデータが出力されることはないため、データ処理に不整合が生じることはない。
また、第2のデータ転送制御部110は、第1のデータ一時記憶部107に所定量以上の空きデータ領域(無効データ)が存在する場合にのみ、外部メモリ200から第1のデータ一時記憶部107へのデータ転送を第1のデータ転送制御部109に要求する。具体的には、予め設定された所定量をTH(TH>0)、第1のデータ一時記憶部107の先頭アドレスを0、終端アドレスをEPとすると、WP>RPかつ(EP−WP+RP)≧THの条件、又はWP<RPかつ(RP−WP)≧THの条件を満たす場合にのみ、第2のデータ転送制御部110は第1のデータ転送制御部109にデータ転送を要求する。要求を受けた第1のデータ転送制御部109は外部メモリ200からデータを読み出し、第1のデータ一時記憶部107にデータを書き込む。
一方、これらの条件を満たさない場合、すなわち所定量以上の空きデータ領域が無い場合には第2のデータ転送制御部110は第1のデータ転送制御部109にデータ転送を要求せず、第1のデータ転送制御部109はデータ転送を停止する。したがって、第1のデータ転送制御部109が第1のデータ一時記憶部107の読み出されていないデータを書き潰すことがないため、データ処理に不整合が生じることはない。
図6の状態R6は、第1のデータ一時記憶部107の無効データ量が所定量TH未満となり、外部メモリ200からのデータ転送が停止された状態である。データの読み出しが進んで、第1のデータ一時記憶部107の無効データ量が所定量TH以上となると、外部メモリ200からのデータ転送が再開される。状態R7は、外部メモリ200からのデータ転送が再開されたときの状態であり、状態R8は外部メモリ200からのデータ転送がさらに進んだ状態である。状態R9は、所定量単位のデータ転送の後、第1のデータ一時記憶部107の無効データ量が所定量TH未満となり、外部メモリ200からのデータ転送が停止された状態である。
次に、図7を参照しながら、第2のデータ一時記憶部108のアドレス制御方法を説明する。図7において、WPは、第2のデータ転送制御部110によって管理される書き込みアドレスであり、RPは、第1のデータ転送制御部109によって管理される読み出しアドレスである。本実施形態では、所定量のデータを1回の転送単位として第2のデータ一時記憶部108と外部メモリ200との間でデータ転送が行われるものとする。
プロセッサ部101による第2のデータ一時記憶部108へのデータの書き込みアクセスが行われた場合に、第2のデータ転送制御部110は第2のデータ一時記憶部108にデータを書き込む。図7に示すように、第2のデータ一時記憶部108の書き込みアドレスWPは、データの書き込みが行われる毎に先頭アドレスから順次インクリメントされ、終端アドレスに達すると再び先頭アドレスに戻る方式で制御される。
また、第2のデータ転送制御部110より、第2のデータ一時記憶部108から外部メモリ200へのデータ転送が要求された場合に、第1のデータ転送制御部109は第2のデータ一時記憶部108からのデータの読み出しを実行する。図7に示すように、第2のデータ一時記憶部108の読み出しアドレスRPは、データの読み出しが行われる毎に先頭アドレスから順次インクリメントされ、終端アドレスに達すると再び先頭アドレスに戻る方式で制御される。
第2のデータ一時記憶部108にデータが全く格納されていない初期状態T1では、書き込みアドレスWP及び読み出しアドレスRPは第2のデータ一時記憶部108の先頭アドレスに設定されている。プロセッサ部101の要求に応じて第2のデータ転送制御部110がデータの書き込みを開始した後の状態T2では、書き込みアドレスWPがインクリメントされている。続いて、第1のデータ転送制御部109が外部メモリ200へのデータ転送を開始した後の状態T3では、読み出しアドレスRPがインクリメントされている。書き込みアドレスWP及び読み出しアドレスRPは順次インクリメントされる(状態T4)。書き込みアドレスWPが終端アドレスに達すると、再び先頭アドレスに戻り、その後、インクリメントされる(状態T5)。
第2のデータ転送制御部110は、第1のデータ転送制御部109によって算出される読み出しアドレスRPを参照し、書き込みアドレスWPが読み出しアドレスRPを追い越さないように制御する。具体的には、WP<RPかつWP=(RP−1)の条件、またはWP=EP(終端アドレス)かつRP=0の条件を満たす場合、すなわちプロセッサ部101によるデータの書き込みが、第1のデータ転送制御部109によるデータの読み出しに追いついた場合に、第2のデータ転送制御部110はプロセッサ部101によるデータの書き込みを待機させる。
第1のデータ転送制御部109により第2のデータ一時記憶部108からデータが読み出され、WP<RPかつWP<(RP−1)の条件、又はWP=EPかつRP>0の条件を満たすようになった場合、第2のデータ転送制御部110はプロセッサ部101によるデータの書き込みを再開させる。これらの制御により、第1のデータ転送制御部109によるデータの読み出しがプロセッサ部101によるデータの書き込みに間に合わない場合においても、プロセッサ部101が、第2のデータ一時記憶部108の読み出されていないデータを書き潰すことはないため、データ処理に不整合が生じることはない。
また、第2のデータ転送制御部110は、第2のデータ一時記憶部108に所定量以上の有効データが存在する場合にのみ、第2のデータ一時記憶部108から外部メモリ200へのデータ転送を第1のデータ転送制御部109に要求する。具体的には、予め設定された所定量をTH(TH>0)、第2のデータ一時記憶部108の先頭アドレスを0、終端アドレスをEPとすると、WP>RPかつ(WP−RP)≧THの条件、又はWP<RPかつ(EP−WP+RP)≧THの条件を満たす場合にのみ、第2のデータ転送制御部110は第1のデータ転送制御部109にデータ転送を要求する。要求を受けた第1のデータ転送制御部109は第2のデータ一時記憶部108からデータを読み出し、外部メモリ200にデータを書き込む。
一方、これらの条件を満たさない場合、すなわち所定量以上の有効データが無い場合には第2のデータ転送制御部110は第1のデータ転送制御部109にデータ読み出しを要求せず、第1のデータ転送制御部109はデータ転送を停止する。したがって、第1のデータ転送制御部109によるデータの読み出しがプロセッサ部101によるデータの書き込みを追い越すことはなく、データ処理に不整合が生じることはない。
図7の状態T6は、第2のデータ一時記憶部108の有効データ量が所定量TH未満となり、外部メモリ200へのデータ転送が停止された状態である。データの書き込みが進んで、第2のデータ一時記憶部108の有効データ量が所定量TH以上となると、外部メモリ200へのデータ転送が再開される。状態T7は、外部メモリ200へのデータ転送が再開されたときの状態であり、状態T8は、外部メモリ200へのデータ転送が再開された後、データの書き込み及び読み出しがさらに進んだ状態である。状態T9は、所定量単位のデータ転送の後、第2のデータ一時記憶部108の有効データ量が所定量TH未満となり、外部メモリ200へのデータ転送が停止された状態である。
第1のデータ転送制御部109は、外部メモリ200から第1のデータ一時記憶部107へのデータ転送と、第2のデータ一時記憶部108から外部メモリ200へのデータ転送とが同時に要求された場合に、それぞれの転送要求を調停する。この場合、本実施形態では、第2のデータ一時記憶部108から外部メモリ200へのデータ転送を優先することとする。また、実行中のデータ転送とは別のデータ転送が要求された場合には、実行中のデータ転送が終了してから、要求されたデータ転送を開始することとする。
なお、第1のデータ一時記憶部107又は第2のデータ一時記憶部108が複数設けられる場合には、第1のデータ転送制御部109がより複雑な調停を行う必要があるが、その調停方法は本実施形態の要点ではないため、詳細な説明は割愛する。また、第1のデータ転送制御部109が、システムの状態に応じて動的に優先度が変化するような調停を行っても構わない。
次に、図8を参照し、データ処理の流れに沿って、本実施形態によるデータ処理装置の動作を説明する。データ処理装置が起動してシステムの初期化が行われると、プロセッサ部101は命令キャッシュ部104からプログラムを読み出し、プログラムの実行を開始する。まず、プロセッサ部101は、システム上必要なモジュールに対して初期設定を行う(ステップSQ−101)。初期設定が行われた後、第1のデータ転送制御部109は、第2のデータ転送制御部110を介してプロセッサ部101からのデータ転送の要求を受け、外部メモリ200から第1のデータ一時記憶部107へのデータ転送を行う(ステップSQ−102)。
プロセッサ部101がデータ処理を開始する(ステップSQ−103)と、プロセッサ部101からデータの読み出し要求を受けた第2のデータ転送制御部110は、処理の対象となるデータを第1のデータ一時記憶部107から読み出してプロセッサ部101へ出力する(ステップSQ−104)。第1のデータ一時記憶部107には単一のアドレスが割り当てられているため、プロセッサ部101はデータを読み出す際に、メモリアドレスを算出するための命令を実行する必要はない。
また、プロセッサ部101からの読み出しアクセスの前に、演算対象となるデータが外部メモリ200から第1のデータ一時記憶部107へ予め転送されているため(ステップSQ−102,SQ−105)、プロセッサ部101は、第2のデータ転送制御部110を介して遅滞なくデータを読み出すことができる。
データ処理の過程で、別途、パラメータなどのデータが必要になった場合、プロセッサ部101は、キャッシュ探索部103を介してデータキャッシュ部105からデータを読み出す(ステップSQ−106)。このとき、該当するデータがデータキャッシュ部105に存在しない場合には、キャッシュ入替部106は外部メモリ200からデータキャッシュ部105に該当データを転送する。外部メモリ200からデータキャッシュ部105へのデータ転送の間、プロセッサ部101による命令の実行は停止される。一方、該当するデータがデータキャッシュ部105に存在する場合には、プロセッサ部101は遅滞なくデータを読み出すことができる。
また、プロセッサ部101は、データ処理の過程で生成される中間データのうち、メモリに一時記憶させるべきデータをデータキャッシュ部105に格納し(ステップSQ−107)、そのデータが再び必要になった場合にデータキャッシュ部105からデータを読み出す(SQ−108)。ただし、データキャッシュ部105の使用状況によっては、データキャッシュ部105に格納したデータを外部メモリ200から再転送しなければ読み出せない場合がある。この場合、外部メモリ200から該当データがデータキャッシュ部105に転送されるまで、プロセッサ部101は待機する。
1データに対するデータ処理が完了すると、プロセッサ部101は、第2のデータ転送制御部110を介して処理結果のデータを第2のデータ一時記憶部108に書き込む(ステップSQ−109)。第2のデータ一時記憶部108には単一のアドレスが割り当てられているため、プロセッサ部101はデータを書き込む際にメモリアドレスを算出するための命令を実行する必要はない。
第2のデータ一時記憶部108に所定量のデータが格納されると、第1のデータ転送制御部109は第2のデータ一時記憶部108から外部メモリ200への転送を開始する(ステップSQ−110)。第1のデータ転送制御部109は、第2のデータ一時記憶部108の空きデータ領域がなくなる前に外部メモリ200へデータを転送するため、第2のデータ一時記憶部108にはプロセッサ部101がデータの書き込みを行う領域が継続的に確保される。したがって、プロセッサ部101は第2のデータ一時記憶部108にデータを遅滞なく書き込むことができる。データ処理が継続する場合には、ステップSQ−104以後の処理が繰り返される。
上述したように、本実施形態によるデータ処理装置において、第1のデータ転送制御部109及び第2のデータ転送制御部110の制御により、第1のデータ一時記憶部107及び第2のデータ一時記憶部108では、データ処理に必要なデータ又はデータ処理の結果として生成されたデータが書き込まれた後、そのデータが順次読み出され、読み出しによって生じた空き領域に他のデータが書き込まれることが繰り返される。これによって、第1のデータ一時記憶部107及び第2のデータ一時記憶部108が小容量でも擬似的に大きな容量が確保されるので、データ処理の高速化のために追加する回路規模の増加を抑えることができる。
また、プロセッサ部101による単一のアドレス指定にて、第2のデータ転送制御部110の制御によりプロセッサ部101と第1のデータ一時記憶部107及び第2のデータ一時記憶部108との間でデータ転送が行われ、データ処理中にプロセッサ部101がデータ転送のためのアドレス演算を実行する必要がない。これによって、高速なデータ処理を実行することができる。
また、第1のデータ転送制御部109の制御により、プロセッサ部101の動作とは独立して外部メモリ200と第1のデータ一時記憶部107及び第2のデータ一時記憶部108との間でデータ転送が行われる。つまり、プロセッサ部101は、外部メモリ200と第1のデータ一時記憶部107及び第2のデータ一時記憶部108との間のデータ転送とは独立して、データ処理の対象となるデータを第1のデータ一時記憶部107から読み出し、データ処理の結果となるデータを第2のデータ一時記憶部108に書き込むことが可能となる。これによって、データ処理中にプロセッサ部101がデータ転送のために待機する状態の発生が低減されるので、高速なデータ処理を実行することができる。
また、画像データを処理する場合、プロセッサ部101によるデータ処理の対象となるデータが第1のデータ一時記憶部107に格納され、プロセッサ部101によるデータ処理の結果となるデータが第2のデータ一時記憶部108に格納されるため、これらのデータがデータキャッシュ部105を経由する必要はない。したがって、データ処理中にプロセッサがデータ転送のために待機する状態の発生が低減され、高速なデータ処理を実行することができる。
また、小規模の回路の追加のみでデータ処理を高速化できるため、データ処理の高速化のためにプロセッサを変更する必要はない。これによって、ソフトウェア設計資産の再利用性を高く維持することができる。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
100・・・データ処理装置、101・・・プロセッサ部、102・・・プロトコル変換部、103・・・キャッシュ探索部、104・・・命令キャッシュ部、105・・・データキャッシュ部、106・・・キャッシュ入替部、107・・・第1のデータ一時記憶部、108・・・第2のデータ一時記憶部、109・・・第1のデータ転送制御部、110・・・第2のデータ転送制御部、111・・・バス、200・・・外部メモリ
Claims (8)
- 外部メモリに格納されたデータをプロセッサが処理するデータ処理装置において、
書き込まれた順序でデータの読み出しが可能なデータ一時記憶部と、
前記外部メモリに対する読み出し又は書き込みを行うアドレスを所定のアドレスシーケンスに従って算出し、前記外部メモリと前記データ一時記憶部との間のデータ転送を制御する第1のデータ転送制御部と、
前記プロセッサと前記データ一時記憶部との間のデータ転送が単一のアドレス指定にて行われるよう制御する第2のデータ転送制御部と、
を備えることを特徴とするデータ処理装置。 - 前記データ一時記憶部は、前記外部メモリから読み出されたデータを記憶する第1のデータ一時記憶部と、前記外部メモリへ書き込まれるデータを記憶する第2のデータ一時記憶部とを、それぞれ1つ以上備えることを特徴とする請求項1に記載のデータ処理装置。
- 前記第1のデータ転送制御部は、前記第1のデータ一時記憶部の無効データ量が所定量以上である場合に前記外部メモリから前記第1のデータ一時記憶部へデータを転送することを特徴とする請求項2に記載のデータ処理装置。
- 前記第1のデータ転送制御部は、前記第1のデータ一時記憶部の無効データ量が所定量未満である場合に前記外部メモリから前記第1のデータ一時記憶部へのデータ転送を停止することを特徴とする請求項2又は請求項3に記載のデータ処理装置。
- 前記第1のデータ転送制御部は、前記第2のデータ一時記憶部の有効データ量が所定量以上である場合に前記第2のデータ一時記憶部から前記外部メモリへデータを転送することを特徴とする請求項2〜請求項4のいずれかに記載のデータ処理装置。
- 前記第1のデータ転送制御部は、前記第2のデータ一時記憶部の有効データ量が所定量未満である場合に前記第2のデータ一時記憶部から前記外部メモリへのデータ転送を停止することを特徴とする請求項2〜請求項5のいずれかに記載のデータ処理装置。
- 前記第1のデータ一時記憶部及び前記第2のデータ一時記憶部は、物理的に区切られたメモリであることを特徴とする請求項2〜請求項6のいずれかに記載のデータ処理装置。
- 前記第1のデータ一時記憶部及び前記第2のデータ一時記憶部は、同一のメモリ内で論理的に区切られた領域であることを特徴とする請求項2〜請求項6のいずれかに記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007191741A JP2009026269A (ja) | 2007-07-24 | 2007-07-24 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007191741A JP2009026269A (ja) | 2007-07-24 | 2007-07-24 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009026269A true JP2009026269A (ja) | 2009-02-05 |
Family
ID=40397995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007191741A Withdrawn JP2009026269A (ja) | 2007-07-24 | 2007-07-24 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009026269A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012208827A (ja) * | 2011-03-30 | 2012-10-25 | Nec Corp | マイクロプロセッサ、メモリアクセス方法 |
-
2007
- 2007-07-24 JP JP2007191741A patent/JP2009026269A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012208827A (ja) * | 2011-03-30 | 2012-10-25 | Nec Corp | マイクロプロセッサ、メモリアクセス方法 |
US9081673B2 (en) | 2011-03-30 | 2015-07-14 | Nec Corporation | Microprocessor and memory access method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4356765B2 (ja) | 情報処理装置および方法、並びにプログラム | |
JP5411530B2 (ja) | 並列処理プロセッサシステム | |
JP2007207026A (ja) | Dma転送装置 | |
JP2010176442A (ja) | ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法 | |
JP2007164303A (ja) | 情報処理装置、コントローラおよびファイル読み出し方法 | |
US7913059B2 (en) | Information processing device, data transfer method, and information storage medium | |
JP6433191B2 (ja) | マイクロコンピュータ | |
JP2015158894A (ja) | 画像形成装置、画像形成処理用データ転送制御方法、及び画像形成処理用データ転送制御プログラム | |
JP2008090455A (ja) | マルチプロセッサ信号処理装置 | |
JP2009026269A (ja) | データ処理装置 | |
JP6316593B2 (ja) | 半導体装置 | |
JP6161396B2 (ja) | 演算装置 | |
JP2008225608A (ja) | メモリを制御するメモリコントローラ、メモリモジュール、メモリの制御方法 | |
JP2005182538A (ja) | データ転送装置 | |
US20080209085A1 (en) | Semiconductor device and dma transfer method | |
KR101203157B1 (ko) | 데이터 전달 시스템, 장치 및 방법 | |
JP2007257560A (ja) | 複数の処理装置を備えたシステム上で実行されるプログラムのトレース方法、および、複数の処理装置を備えたシステム | |
JP2008009702A (ja) | 演算処理システム | |
JP2010033507A (ja) | メモリコントローラおよび画像処理装置 | |
JP6099418B2 (ja) | 半導体装置及びそのデータ処理方法 | |
JP2008059452A (ja) | 画像処理装置、画像処理方法 | |
JP6940283B2 (ja) | Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム | |
JP5347544B2 (ja) | 半導体集積回路 | |
JP6438381B2 (ja) | 電子制御装置 | |
JP2010049556A (ja) | 画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20101005 |