JP2006139416A - データ転送装置およびデータ転送方法 - Google Patents
データ転送装置およびデータ転送方法 Download PDFInfo
- Publication number
- JP2006139416A JP2006139416A JP2004326971A JP2004326971A JP2006139416A JP 2006139416 A JP2006139416 A JP 2006139416A JP 2004326971 A JP2004326971 A JP 2004326971A JP 2004326971 A JP2004326971 A JP 2004326971A JP 2006139416 A JP2006139416 A JP 2006139416A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- address
- data
- double buffer
- 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.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】 DMAコントローラに与える命令列を複雑にすることなく単純化することができ、バースト転送を活用した効率的なデータ転送を行うことができるデータ転送装置を提供する。
【解決手段】 転送元アドレスと転送先アドレスのバーストアラインメント境界に対するアドレスオフセット値を一致させるという制約条件を設けることで、命令列を単純化する。グローバルメモリ205上の転送元アドレスポインタspからローカルメモリ203上の転送先アドレスポインタdpにデータをDAM転送する場合、アラインメント境界に対する転送先アドレスポインタdpのアドレスオフセット値を調整することで、上記制約条件を満たす。
【選択図】 図8
【解決手段】 転送元アドレスと転送先アドレスのバーストアラインメント境界に対するアドレスオフセット値を一致させるという制約条件を設けることで、命令列を単純化する。グローバルメモリ205上の転送元アドレスポインタspからローカルメモリ203上の転送先アドレスポインタdpにデータをDAM転送する場合、アラインメント境界に対する転送先アドレスポインタdpのアドレスオフセット値を調整することで、上記制約条件を満たす。
【選択図】 図8
Description
本発明は、DMA(ダイレクトメモリアクセス)によるデータ転送を行うデータ転送装置およびデータ転送方法に関する。
この種のデータ転送装置として、従来、DMA制御装置(DMAコントローラ)が知られている(特許文献1参照)。このDMA制御装置は、一般的なDMA制御装置に対し、転送元アドレスアラインバイト判定器、アラインバイト数判定器、転送先アドレスアラインバイト判定器、アラインバイト数統合器、最小アラインバイト生成器等を追加することにより、転送途中の転送元アドレスと転送先アドレスのアラインメントの変化に応じて、その時点で最も効率的な転送(バースト転送含む)を選択してデータ転送を実行するものである。
特開2000−132497号公報
しかしながら、上記従来例では、転送元アドレスアラインバイト判定器、アラインバイト数判定器、転送先アドレスアラインバイト判定器、アラインバイト数統合器、最小アラインバイト生成器等、多くのハードウェア資源を追加する必要があった。また、これらのハードウェアの追加を行っても、複雑なデータ転送に対応したり、転送パターンを柔軟に変更することはできず、ハードウェア規模の増大に見合った機能の向上が得られなかった。
そこで、本発明は、DMAコントローラに与える命令列を複雑にすることなく単純化することができ、バースト転送を活用した効率的なデータ転送を行うことができるデータ転送装置およびデータ転送方法を提供することを目的とする。
上記目的を達成するために、本発明のデータ転送装置は、DMAによるデータ転送を行うデータ転送装置であって、転送元アドレスおよび転送先アドレスのうち、一方のアドレスの特定のアラインメント境界に対するアドレスオフセットが、他方のアドレスの前記特定のアラインメント境界に対するアドレスオフセットに一致するように、前記一方のアドレス値を調整するアドレスオフセット調整手段と、前記一方のアドレス値が調整された後、前記転送元アドレスおよび前記転送先アドレスをDMAコントローラに設定する設定手段とを備え、前記DMAコントローラは、前記特定のアラインメント境界に対するアドレスオフセットが転送元アドレスと転送先アドレスとで等しいことを条件にデータ転送を実行させる命令にしたがって、DMAによるデータ転送を行うことを特徴とする。
また、本発明のデータ転送方法は、DMAによるデータ転送を行うデータ転送方法であって、CPUは、転送元アドレスおよび転送先アドレスのうち、一方のアドレスの特定のアラインメント境界に対するアドレスオフセットが、他方のアドレスの前記特定のアラインメント境界に対するアドレスオフセットに一致するように、前記一方のアドレス値を調整するアドレスオフセット調整ステップと、前記CPUは、前記一方のアドレス値が調整された後、前記転送元アドレスおよび前記転送先アドレスをDMAコントローラに設定する設定ステップと、前記DMAコントローラは、前記特定のアラインメント境界に対するアドレスオフセットが転送元アドレスと転送先アドレスとで等しいことを条件にデータ転送を実行させる命令にしたがって、DMAによるデータ転送を行うデータ転送ステップとを有する。
本発明の請求項1に係るデータ転送装置によれば、転送元アドレスおよび転送先アドレスのうち、一方のアドレスの特定のアラインメント境界に対するアドレスオフセットが、他方のアドレスの前記特定のアラインメント境界に対するアドレスオフセットに一致するように、前記一方のアドレス値を調整し、前記一方のアドレス値が調整された後、前記転送元アドレスおよび前記転送先アドレスをDMAコントローラに設定し、前記DMAコントローラは、前記特定のアラインメント境界に対するアドレスオフセットが転送元アドレスと転送先アドレスとで等しいことを条件にデータ転送を実行させる命令にしたがって、DMAによるデータ転送を行うので、DMAコントローラに与える命令列を複雑にすることなく単純化することができ、バースト転送を活用した効率的なデータ転送を行うことができる。また、請求項2、3に係るデータ転送装置によれば、データ処理およびデータ転送の性能を高めることができる。
本発明のデータ転送装置およびデータ転送方法の実施の形態について図面を参照しながら説明する。本実施形態のデータ転送装置は、ダイレクトメモリアクセス処理を行うデータ処理システムに適用される。
[第1の実施形態]
図1は第1の実施形態におけるデータ処理システムの構成を示すブロック図である。このデータ処理システムは、プロセッサ201、DMAコントローラ202、ローカルメモリ203、バス制御部204、グローバルメモリ205およびメモリアクセスデバイス206を有する。
図1は第1の実施形態におけるデータ処理システムの構成を示すブロック図である。このデータ処理システムは、プロセッサ201、DMAコントローラ202、ローカルメモリ203、バス制御部204、グローバルメモリ205およびメモリアクセスデバイス206を有する。
本実施形態では、グローバルメモリ205には、処理されるべき入力データが記憶されており、プロセッサ201は、このデータに対してデータ処理を行い、その結果を再びグローバルメモリ205に出力する場合を想定する。グローバルメモリ205は、処理データを十分に記憶可能な大容量のものであるが、バス接続部204を介してプロセッサ201と接続されているので、グローバルメモリ205へのアクセスには時間がかかる。したがって、プロセッサ201がグローバルメモリ205に記憶されたデータを直接読み書きすると、アクセスに時間がかかって処理性能が上がらなくなる。
このような問題を解決するため、本実施形態では、DMAコントローラ202に、ローカルメモリ203が接続されている。ローカルメモリ203は、プロセッサ201側に配置され、高速アクセス可能な小容量のメモリである。図中点線で示すように、DMAコントローラ202がグローバルメモリ205上の処理データの一部を読み込み、ローカルメモリ203に書き込む。そして、プロセッサ201は、ローカルメモリ203に記憶された入力データを読み込んでデータ処理を行う。この結果、メモリアクセスに待たされる時間が少なくなり、高速な処理が可能となる。プロセッサ201からの出力データについても、一旦ローカルメモリ203に書き込み、DMAコントローラ202によってローカルメモリ203上のデータをグローバルメモリ205に転送することで、高速な処理が可能となる。
メモリアクセスデバイス206は、グローバルメモリ205にアクセス可能なデバイスであり、例えば、メモリアクセスデバイス206で生成されたデータをグローバルメモリ205に書き込む。書き込まれたデータは、処理すべき入力データとして扱われる。
また、本実施形態では、転送元アドレスおよび転送先アドレスの間で、バーストアラインメント境界に対するアドレスオフセット値が一致するように、転送アドレス値に制約条件を加えることで、図2に示すように転送制御を単純化できる。図2は制約条件が成り立つ場合のデータ転送を示す図である。転送元アドレスがバーストあるいはワードのアラインメント境界に一致している場合、必ず転送先アドレスも対応するアラインメント境界に一致しているので、読み込み側の転送単位と書き込み側の転送単位を常に一致させることができる。
入力データ1は、ワードアラインメント境界にもバーストアラインメント境界にも一致していないので、バイト単位で読み込まれ、そのまま、バイト単位で出力データ1として書き込まれる。入力データ2は、バーストアラインメント境界に一致しているので、バースト転送で読み込まれ、そのままバースト転送で出力データ2として書き込まれる。入力データ3および出力データ3についても同様にバースト転送される。入力データ4については、残りデータのサイズがバースト長に満たないので、ワード単位の転送で読み込まれ、そのままワード単位の転送で出力データ4として書き込まれる。入力データ5および出力データ5についても同様にワード転送される。このように、図2では、転送元アドレスとバーストあるいはワードアラインメント境界との関係だけを考慮して転送単位を決定すればよいので、制御を単純化できる。
図3は制約条件をつけた場合、ダイレクトメモリアクセス処理装置(DMAコントローラ)に与える命令列の例を示す図である。最初のLOOP命令からloop0_endラベルまでは、変数AR0に格納された転送元アドレスから変数AR1に格納された転送先アドレスにバイト単位のデータコピーを行う命令列である。2番目のLOOP命令からloop1_endラベルまでは、変数AR0から変数AR1にバースト単位のデータコピーを行う命令列である。3番目のLOOP命令からloop2_endラベルまでは、バースト長分の残りデータが無くなった時点で、バイト単位のデータコピーを行う命令列である。ここで、各ループのループ回数は、最初に与えられる転送元アドレスと転送サイズから計算され、命令列の実行前に設定されている。このように、転送元アドレスと転送先アドレスのアラインメント境界に対するオフセット値の制約条件を設けることで、非常に単純な命令列で効率的なデータ転送を行うことができる。尚、ここでは説明を簡単にするために、バイト単位の転送とバースト転送の2種類の転送方式を用いる場合の命令列を示したが、図2に示すようにさらにワード単位の転送を用いる場合にも容易に拡張可能である。
つぎに、転送元アドレスと転送先アドレスに関する上記制約条件を満たすための、アドレス値の調整を示す。図4はグローバルメモリ205からローカルメモリ203へ処理データを転送する際、処理データの配置を示す図である。同図(A)はグローバルメモリ205の場合を示し、同図(B)はローカルメモリ203の場合を示している。図中、グローバルメモリ205およびローカルメモリ203の左端のアドレスは、それぞれバーストアラインメント境界を示している。図では、一般的にNバイトアラインメント境界と示されている。転送される処理データのサイズは、一般にバースト長の倍数とは限らないので、グローバルメモリ205上の、転送1回当たりの処理データ1〜5の開始アドレスのバーストアラインメント境界に対するオフセット値は、図(A)に示すように変動する。
一方、ローカルメモリ203については、必ずしもダブルバッファメモリの構成である必要は無いが、ここではダブルバッファメモリの構成で転送データを格納する例を示す。転送1回分のデータを格納するためのローカルバッファのサイズは、通常、転送1回当たりのデータサイズの最大値とすればよい。ここでは、その最大値に加え、バースト長分だけ余計にバッファサイズを確保している(図中、拡張部分)。これは、後述するように、ローカルメモリ203側の転送先アドレスの調整を行うために設けられた領域である。ローカルメモリ203側のローカルバッファの開始アドレスは、このデータを処理するプロセッサ201の都合で自由に設定されるが、ここではローカルバッファはいずれもバーストアラインメント境界から始まるものとしている。
このように配置されたデータに対し、上記制約条件を満たすための制御を行った場合の動作を示す。図5、図6および図7はグローバルメモリ205からローカルメモリ203にデータを転送する際の各転送毎の動作を示す図である。図において、白い菱形は転送元アドレス、黒い菱形は転送先アドレスを示している。まず、グローバルメモリ205における最初の処理データ1をローカルバッファ1に転送する。図5では、処理データ1の開始アドレスとローカルバッファ1の開始アドレスは、バーストアラインメント境界に一致している例が示されており、特に、転送先アドレスの調整を行う必要は無い。
図6では、グローバルメモリ205上の処理データ2をローカルバッファ2に転送する。処理データ2の転送元アドレスはバーストアラインメント境界と一致しないので、転送先アドレスは、バーストアラインメント境界と一致したローカルバッファ2の開始アドレスに対し、転送元アドレスのバーストアラインメント境界に対するオフセット値分を加えたアドレスに調整される。そして、処理データ2は調整後の転送先アドレスに転送される。このとき、プロセッサ201は、ローカルバッファ1に転送済みの処理データ1に対するデータ処理を並行して行う。図7では、グローバルメモリ205上の処理データ3をローカルバッファ1に転送する。図6と同様、処理データ3の転送元アドレスはバーストアラインメント境界と一致しないので、転送先アドレスに対する調整が行われ、処理データ3は調整後の転送先アドレスに転送される。このとき、プロセッサ201は、ローカルバッファ2に転送済みの処理データ2に対するデータ処理を並行して行う。以後のデータについても、同様に転送先アドレスの調整とデータ転送が行われる。尚、図5〜図7では、処理データ1、2、3と最初から順に転送・処理される場合を示したが、処理によっては、処理データ3、2、1など、異なる順序で転送・処理される場合もあり、特に転送の順序は制約されない。
図8はデータ転送処理手順を示すフローチャートである。この処理プログラムはプロセッサ201内のROM(図示せず)に格納されており、プロセッサ201によって実行される。ここで、転送元アドレスポインタspは、グローバルメモリ205上にあって、次に転送すべきデータを指している。転送先アドレスポインタdpは、ローカルメモリ203上にあって、次にデータが転送されるローカルバッファのアドレスを指している。プロセッサ入力アドレスポインタppは、ローカルメモリ203上の、プロセッサ201が次にデータ処理を行うローカルバッファのアドレスを指している。つまり、ダブルバッファメモリの場合、転送先アドレスポインタdpが一方のローカルバッファを指していると、プロセッサ入力アドレスポインタppは他方のローカルバッファを指している。
まず、各ポインタsp、dp、ppを初期値に初期化する(ステップS1)。最初のデータ転送に対する転送先アドレスポインタdpのバーストアラインメント境界に対するオフセットの調整処理を行う(ステップS2)。図5に示したように、ローカルバッファの開始アドレスがバーストアラインメント境界に一致している場合、この処理は数式(1)で実現される。
dp=(dp&BURST_ALIGN_MASK)|(sp&BURST_OFFSET_MASK) …… (1)
ここで、「&」はビット毎の論理積演算を示す。「|」はビット毎の論理和演算を示す。BURST_ALIGN_MASKはバースト長以下のビットをクリアするためのビットマスクである。BURST_OFFSET_MASKはバーストアラインメント境界に対するオフセット値だけを取り出すためのビットマスクである。仮に、バースト長を32とすると、BURST_ALIGN_MASKの値は0xfffffe0(16進数)、BURST_OFFSET_MASKの値は0x1f(16進数)となる。尚、ローカルバッファの開始アドレスがバーストアラインメント境界と一致しない場合、数式(1)に示すような単純な論理演算にはならないが、論理演算に加えて加減算を用いることで処理は実現される。
ここで、「&」はビット毎の論理積演算を示す。「|」はビット毎の論理和演算を示す。BURST_ALIGN_MASKはバースト長以下のビットをクリアするためのビットマスクである。BURST_OFFSET_MASKはバーストアラインメント境界に対するオフセット値だけを取り出すためのビットマスクである。仮に、バースト長を32とすると、BURST_ALIGN_MASKの値は0xfffffe0(16進数)、BURST_OFFSET_MASKの値は0x1f(16進数)となる。尚、ローカルバッファの開始アドレスがバーストアラインメント境界と一致しない場合、数式(1)に示すような単純な論理演算にはならないが、論理演算に加えて加減算を用いることで処理は実現される。
転送元アドレスポインタspおよび調整後の転送先アドレスポインタdpを用い、DMA転送パラメータをDMAコントローラ202に設定する(ステップS3)。そして、DMA転送を開始する(ステップS4)。既に開始済みのDMA転送の終了を確認し、終了していない場合、終了するまで待つ(ステップS5)。ダブルバッファメモリ構成のローカルバッファの切り替えを行う(ステップS6)。この処理では、転送先アドレスポインタdpとプロセッサ入力アドレスポインタppの値を交換することが行われる。
そして、次に転送すべきデータが残っているか否かを確認し(ステップS7)、残っていない場合、DMA転送を行わず、ステップS12の処理に進む。一方、次に転送すべきデータが残っている場合、転送元アドレスポインタspの更新を行い(ステップS8)、次のDMA転送のために、ステップS2と同様、転送先アドレスポインタdpの調整を行う(ステップS9)。そして、ステップS3の処理と同様、DMA転送パラメータの設定を行い(ステップS10)、ステップS4の処理と同様、DMA転送を開始する(ステップS11)。開始済みのDMA転送と並行し、プロセッサ201はプロセッサ入力アドレスポインタppの指し示す入力データを読み出して処理する(ステップS12)。
この後、全データの処理が終了したか否かを判別し(ステップS13)、終了していない場合、ステップS5の処理に戻り、DMA転送終了を待つ。一方、全データの処理が終了すると、本処理を終了する。
このように、第1の実施形態のデータ転送装置によれば、DMAコントローラに与える命令列を複雑にすることなく単純化することができ、バースト転送を活用した効率的なデータ転送を行うことができる。
[第2の実施形態]
前記第1の実施形態では、グローバルメモリ205からローカルメモリ203にデータを転送し、プロセッサ201がデータ処理を行う場合を示したが、第2の実施形態では、逆にプロセッサ201で処理したデータをローカルメモリ203に書き込み、グローバルメモリ205にDMA転送する場合を示す。第2の実施形態におけるデータ処理システムの構成は前記第1の実施形態と同じであるので、その説明を省略する。
前記第1の実施形態では、グローバルメモリ205からローカルメモリ203にデータを転送し、プロセッサ201がデータ処理を行う場合を示したが、第2の実施形態では、逆にプロセッサ201で処理したデータをローカルメモリ203に書き込み、グローバルメモリ205にDMA転送する場合を示す。第2の実施形態におけるデータ処理システムの構成は前記第1の実施形態と同じであるので、その説明を省略する。
図9は第2の実施形態におけるデータ転送処理手順を示すフローチャートである。この処理プログラムはプロセッサ201内のROM(図示せず)に格納されており、プロセッサ201によって実行される。この場合、データ配置および動作は、前記第1の実施形態の図6〜図8と同様であり、DMAの転送方向を逆に読み替えるだけでよい。
まず、ローカルメモリ側の転送元アドレスポインタsp、グローバルメモリ側の転送先アドレスポインタdp、およびプロセッサ201による処理データの出力アドレスポインタppの各ポインタを初期化する(ステップS21)。
出力アドレスポインタppのバーストアラインメント境界に対するオフセット値を、転送先アドレスポインタdpのバーストアラインメント境界に対するオフセット値に合わせるための調整を行う(ステップS22)。前記第1の実施形態と同様、ローカルバッファの先頭アドレスがバーストアラインメント境界と一致している場合、この調整は数式(2)で実現される。
pp=(pp&BURST_ALIGN_MASK)|(dp&BURST_OFFSET_MASK) …… (2)
調整後の出力アドレスポインタppで示されるローカル出力データ領域に対し、プロセッサ201は処理データの出力を行う(ステップS23)。既にDMA転送が開始されているか否かを判別し(ステップS24)、既にDMA転送が開始されている場合、DMA転送の終了を待つ(ステップS25)。一方、DMA転送が開始されていない場合、あるいはステップS25でDMA転送が終了すると、ダブルバッファメモリ構成のローカルバッファの切り替えを行う(ステップS26)。このステップ処理は、転送元アドレスポインタspと出力アドレスポインタppの値を交換することで実現される。DMAコントローラ202に対するDMA転送パラメータの設定を行い(ステップS27)、グローバルメモリ205上の転送先アドレスdpを更新し(ステップS28)、DMA転送を開始する(ステップS29)。
調整後の出力アドレスポインタppで示されるローカル出力データ領域に対し、プロセッサ201は処理データの出力を行う(ステップS23)。既にDMA転送が開始されているか否かを判別し(ステップS24)、既にDMA転送が開始されている場合、DMA転送の終了を待つ(ステップS25)。一方、DMA転送が開始されていない場合、あるいはステップS25でDMA転送が終了すると、ダブルバッファメモリ構成のローカルバッファの切り替えを行う(ステップS26)。このステップ処理は、転送元アドレスポインタspと出力アドレスポインタppの値を交換することで実現される。DMAコントローラ202に対するDMA転送パラメータの設定を行い(ステップS27)、グローバルメモリ205上の転送先アドレスdpを更新し(ステップS28)、DMA転送を開始する(ステップS29)。
この後、データ処理が終了したか否かを判別し(ステップS30)、終了していない場合、ステップS22の処理に戻り、プロセッサ201が次の処理データを出力する際の出力アドレスポインタppの調整を行う。一方、データ処理が終了した場合、最後に実行したDMA転送が終了するのを待ち(ステップS31)、本処理を終了する。
第2の実施形態のデータ転送装置によれば、プロセッサ201で処理したデータをローカルメモリ203からグローバルメモリ205にDMA転送する際にも、DMAコントローラに与える命令列を単純化して、効率的なデータ転送を行うことができる。
尚、前記第1および第2の実施形態における、図8および図9のフローチャートで示されるデータ処理は、プロセッサ201によって実行されたが、データ処理を行うプロセッサ以外にプロセッサが存在するような構成の場合、データ処理とDMA転送の制御を別々のプロセッサで分担することも可能である。また、上記各実施形態では、バーストアラインメント境界を基準に説明したが、ワードアラインメント境界など、他の要因によるアラインメント境界を基準にしても、本発明は同様に適用可能である。
尚、本発明は、上記実施形態の構成に限られるものではなく、特許請求の範囲で示した機能、または本実施形態の構成が持つ機能が達成できる構成であればどのようなものであっても適用可能である。また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
また、本発明の目的は、上記実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、ROM、フロッピー(登録商標)ディスク、PCMCIAカードやコンパクトフラッシュ(登録商標)等のメモリカード、ハードディスク、マイクロDAT、光磁気ディスク、CD−RやCD−RW等の光ディスク、DVD等の相変化型光ディスク等で構成されてもよい。また、プログラムコードをネットワークを介してダウンロードしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
201 プロセッサ
202 DMAコントローラ
203 ローカルメモリ
205 グローバルメモリ
202 DMAコントローラ
203 ローカルメモリ
205 グローバルメモリ
Claims (6)
- DMAによるデータ転送を行うデータ転送装置であって、
転送元アドレスおよび転送先アドレスのうち、一方のアドレスの特定のアラインメント境界に対するアドレスオフセットが、他方のアドレスの前記特定のアラインメント境界に対するアドレスオフセットに一致するように、前記一方のアドレス値を調整するアドレスオフセット調整手段と、
前記一方のアドレス値が調整された後、前記転送元アドレスおよび前記転送先アドレスをDMAコントローラに設定する設定手段とを備え、
前記DMAコントローラは、前記特定のアラインメント境界に対するアドレスオフセットが転送元アドレスと転送先アドレスとで等しいことを条件にデータ転送を実行させる命令にしたがって、DMAによるデータ転送を行うことを特徴とするデータ転送装置。 - 前記転送先アドレスとして指定可能なダブルバッファメモリと、
前記ダブルバッファメモリの一方に格納されたデータを読み出して処理するデータ処理手段とを備え、
前記データ処理手段は、前記転送先アドレスとして指定される前記ダブルバッファメモリの他方にデータ転送が行われる間、前記ダブルバッファメモリの一方に格納されたデータを読み出して処理し、
前記データ転送および前記データ処理が終わった後、前記ダブルバッファメモリの一方と前記転送先アドレスとして指定される前記ダブルバッファメモリの他方とを切り替えることを特徴とする請求項1記載のデータ転送装置。 - 前記転送元アドレスとして指定可能なダブルバッファメモリと、
データを処理して前記ダブルバッファメモリの一方に格納するデータ処理手段とを備え、
前記データ処理手段は、前記転送元アドレスとして指定される前記ダブルバッファメモリの他方からデータ転送が行われる間、データを処理して前記ダブルバッファメモリの一方に格納し、
前記データ転送および前記データ処理が終わった後、前記ダブルバッファメモリの一方と前記転送元アドレスとして指定される前記ダブルバッファメモリの他方とを切り替えることを特徴とする請求項1記載のデータ転送装置。 - DMAによるデータ転送を行うデータ転送方法であって、
CPUは、転送元アドレスおよび転送先アドレスのうち、一方のアドレスの特定のアラインメント境界に対するアドレスオフセットが、他方のアドレスの前記特定のアラインメント境界に対するアドレスオフセットに一致するように、前記一方のアドレス値を調整するアドレスオフセット調整ステップと、
前記CPUは、前記一方のアドレス値が調整された後、前記転送元アドレスおよび前記転送先アドレスをDMAコントローラに設定する設定ステップと、
前記DMAコントローラは、前記特定のアラインメント境界に対するアドレスオフセットが転送元アドレスと転送先アドレスとで等しいことを条件にデータ転送を実行させる命令にしたがって、DMAによるデータ転送を行うデータ転送ステップとを有するデータ転送方法。 - 請求項1乃至3のいずれかに記載のデータ転送装置を実現するためのコンピュータ読み取り可能なプログラムコードを有するプログラム。
- 請求項5記載のプログラムを格納した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004326971A JP2006139416A (ja) | 2004-11-10 | 2004-11-10 | データ転送装置およびデータ転送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004326971A JP2006139416A (ja) | 2004-11-10 | 2004-11-10 | データ転送装置およびデータ転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006139416A true JP2006139416A (ja) | 2006-06-01 |
Family
ID=36620216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004326971A Pending JP2006139416A (ja) | 2004-11-10 | 2004-11-10 | データ転送装置およびデータ転送方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006139416A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010170164A (ja) * | 2009-01-20 | 2010-08-05 | Nec Engineering Ltd | Dma転送制御装置 |
JP2011150666A (ja) * | 2010-01-25 | 2011-08-04 | Fujitsu Ltd | 通信装置、情報処理装置、通信装置の制御方法及び制御プログラム |
JP2012123465A (ja) * | 2010-12-06 | 2012-06-28 | Olympus Corp | データ処理装置 |
-
2004
- 2004-11-10 JP JP2004326971A patent/JP2006139416A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010170164A (ja) * | 2009-01-20 | 2010-08-05 | Nec Engineering Ltd | Dma転送制御装置 |
JP2011150666A (ja) * | 2010-01-25 | 2011-08-04 | Fujitsu Ltd | 通信装置、情報処理装置、通信装置の制御方法及び制御プログラム |
JP2012123465A (ja) * | 2010-12-06 | 2012-06-28 | Olympus Corp | データ処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4563829B2 (ja) | ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム | |
CN111414325B (zh) | 一种Avalon总线转Axi4总线的方法 | |
JP2004005382A (ja) | データ転送装置および方法 | |
JP2006338538A (ja) | ストリームプロセッサ | |
JP4876051B2 (ja) | 画像処理装置及びその制御方法 | |
JP4373255B2 (ja) | ダイレクトメモリアクセス制御装置および方法 | |
JP2007034392A (ja) | 情報処理装置及びデータ処理方法 | |
CN110046114B (zh) | 基于pcie协议的dma控制器及dma数据传输方法 | |
JP2008033721A (ja) | Dma転送制御装置 | |
JP4829408B2 (ja) | 画像処理方法及び画像処理装置 | |
JP2006139416A (ja) | データ転送装置およびデータ転送方法 | |
JP2008236378A (ja) | ホストコンピュータとネットワークインタフェースコントローラ間のデータ転送方法、プログラム及びネットワークインタフェースコントローラ | |
JP2005182538A (ja) | データ転送装置 | |
JP5226341B2 (ja) | チャネル装置、情報処理システム、及びデータ転送方法 | |
JP4431492B2 (ja) | 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット | |
JP2020140284A (ja) | ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム | |
JP2005128753A (ja) | データ転送装置、データ転送方法 | |
JP2006215991A (ja) | Dmaコントローラ | |
JP6570046B2 (ja) | Dmaコントローラ、実現方法及びコンピュータ記憶媒体 | |
JP2006119711A (ja) | Dma転送装置 | |
JP2005293118A (ja) | ディスクキャッシュ制御回路、ディスク制御装置及びディスクキャッシュ制御方法 | |
JPH05242009A (ja) | 直接メモリアクセス装置 | |
JP2005258783A (ja) | データ転送装置、データ転送方法、画像形成装置及びオプションボード | |
JP2003330871A (ja) | データ転送装置 | |
JP2000298641A (ja) | 情報処理装置およびそのデータ転送方法ならびにデータ転送制御プログラムを格納した記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20060419 |
|
RD05 | Notification of revocation of power of attorney |
Effective date: 20070626 Free format text: JAPANESE INTERMEDIATE CODE: A7425 |