JP4204759B2 - Dma転送制御方法及び制御装置 - Google Patents

Dma転送制御方法及び制御装置 Download PDF

Info

Publication number
JP4204759B2
JP4204759B2 JP2001067342A JP2001067342A JP4204759B2 JP 4204759 B2 JP4204759 B2 JP 4204759B2 JP 2001067342 A JP2001067342 A JP 2001067342A JP 2001067342 A JP2001067342 A JP 2001067342A JP 4204759 B2 JP4204759 B2 JP 4204759B2
Authority
JP
Japan
Prior art keywords
data
dma
dma transfer
cpu
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.)
Expired - Fee Related
Application number
JP2001067342A
Other languages
English (en)
Other versions
JP2004145376A (ja
Inventor
真 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2001067342A priority Critical patent/JP4204759B2/ja
Priority to CNB028060539A priority patent/CN1300715C/zh
Priority to KR1020037011423A priority patent/KR100602330B1/ko
Priority to PCT/JP2002/001689 priority patent/WO2002073431A1/ja
Priority to TW091103874A priority patent/TWI259955B/zh
Publication of JP2004145376A publication Critical patent/JP2004145376A/ja
Application granted granted Critical
Publication of JP4204759B2 publication Critical patent/JP4204759B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、DMA(ダイレクト・メモリ・アクセス)転送の制御方法及び制御装置に関し、より詳しくは、メモリ・ツー・メモリ(memory-to-memory)のDMA転送制御方法及び制御装置に関する。
【0002】
【従来の技術】
図9(a),(b),(c),(d)はメイン・メモリのメモリ領域間で行われるメモリ・ツー・メモリのDMA転送の概略を示す。図9のデータ処理システムでは、システム・バス80に、CPU(中央処理装置)70及びキャッシュ・ユニット72と、メイン・メモリ90と、DMAコントローラ82が接続されている。
【0003】
キャッシュ・ユニット72は、CPU70とシステム・バス80との間に接続され、タグ74とキャッシュ76を含む。キャッシュ76はメイン・メモリ90に記憶されているデータの一部が記憶されるメモリであり、タグ74はキャッシュ76に記憶されているデータのアドレスが記憶されるメモリである。CPU70は、アクセスするデータがキャッシュ76内に有ればキャッシュ76にアクセスし、アクセスするデータがキャッシュ76内に無ければメイン・メモリ90にアクセスする。
【0004】
メイン・メモリ90はDRAM(dynamic random access memory)等の半導体メモリであり、DMAコントローラ82は、CPU70を介さずに、メイン・メモリ90のメモリ領域間でメモリ・ツー・メモリのデータ転送を行う。メモリ領域間のデータ転送は、図9(a),(b),(c),(d)に示すように、メイン・メモリ90内の転送元から転送先へのデータ転送を意味する。DMAコントローラ82によるデータ転送(以下、DMAデータ転送)とCPU70の処理とは並行して実行することができる。DMAデータ転送は、データの移動はもちろん、データのコピーも含む。
【0005】
例えば複数の命令又は命令群が同一のデータを使用する場合、オリジナルのデータを直接使用せず、メイン・メモリ90内でそのデータをコピーして使用することが多い。DMA転送は、データ・ブロック単位で行われる。データ・ブロックの一例を図10(a)に示す。データ・ブロックDBは、メイン・メモリ90の転送元のアドレスAD1' ,AD2' ,AD3' ,AD4' ,AD5' ,AD6' ,AD7' ,AD8'のデータDATA1 ,DATA2 ,DATA3 ,DATA4 ,DATA5 ,DATA6 ,DATA7 ,DATA8を含む。各データDATA1 ,DATA2 ,DATA3 ,DATA4 ,DATA5 ,DATA6 ,DATA7 ,DATA8は、メイン・メモリ90の転送先のアドレスAD1 ,AD2 ,AD3 ,AD4 ,AD5 ,AD6 ,AD7 ,AD8にコピーされる。
【0006】
DMAコントローラ82は、図9(a)に示すように、DMA転送が未完了のデータ数が記憶されるレジスタ84(以下、転送カウンタ84という)と、転送中のデータのアドレスが記憶されるレジスタ86(以下、転送アドレス86という)を含む。図10(a)のデータ・ブロックDBの場合、転送カウンタ84には、初期値としてデータ総数の「8」が記憶される。データのDMA転送が完了する毎に、DMAコントローラ82は転送カウンタ84の値を1つ減少させる。
【0007】
転送アドレス86には、DMA転送中のデータの転送元アドレスと転送先アドレスとが記憶される。図10(a)のデータ・ブロックDBの場合は、初期値として、転送元のアドレスAD1'と転送先のアドレスAD1とが記憶される。データのDMA転送が完了する毎に、DMAコントローラ82は転送元及び転送先のアドレスを更新する。
【0008】
図10(b)にデータ・ブロックDBのDMAデータ転送の概要を示す。データが転送される毎に転送カウンタ84と転送アドレス86が更新され、DATA1〜DATA8が順に転送される。DATA8のDMA転送が完了すると、転送カウンタは「0」となり(図示していない)、データ・ブロックDBのDMA転送は終了となる。ここで、図中の「AD1'→AD1」は、転送元アドレスがAD1'で転送先アドレスがAD1であることを示す。
【0009】
DMA転送が未完了のデータは、DMA転送が完了するまでアクセスすることはできない。CPU70がDMA転送先のデータにアクセスする手順の一例を図11に示す。図9(b)に示すようにデータ・ブロックDBのDMA転送が開始(S160)された後、CPU70からDMA転送先のデータへのアクセス要求が発生しても(S162)、DMA転送がそのまま続行される(S163)。データ・ブロックDBのDMA転送が終了すると(S164)、図9(c)に示すようにDMAコントローラ82からCPU70にDMA転送の終了(割込み信号INT)が通知される(S166)。データ・ブロックDBのDMA転送が完了したので、図9(d)に示すようにCPU70はDMA転送後のデータにアクセスする(S168)。
【0010】
例えば、図12に示すように、DATA1の転送完了(S180)後にCPU70からDATA7のアクセス要求が発生(S162)した場合、DATA2〜DATA8のDMA転送が完了(S182 ,S184 ,S186 ,S188 ,S190 ,S192 ,S194)した後に、CPU70はDATA7にアクセスする(S168)。DATA2〜DATA8のDMA転送中、CPU70はDATA7にアクセスできず、待ち時間が生じる。もちろん、DMA転送と並行してCPU70に他の処理を実行させることもできる。しかし、DMA転送中に必ずCPU70に割り当て可能な他の処理が存在するわけでは無い。
【0011】
【発明が解決しようとする課題】
本発明の目的は、DMA転送中のデータへのアクセスを可能にし、DMA転送中のCPUの待ち時間を減少させることにある。
【0012】
【課題を解決するための手段】
本発明のメモリ・ツー・メモリのDMA転送制御方法は、DMA転送中のデータ・ブロックに含まれるデータに対するCPUからのアクセス要求を検出する検出ステップと、実行中のDMA転送よりも優先して、CPUを前記アクセス要求が検出されたデータにアクセスさせる転送制御ステップとを含む。
【0013】
本発明のDMA転送制御装置は、DMA転送中のデータ・ブロックに含まれるデータに対するCPUからのアクセス要求を検出する検出手段と、実行中のDMA転送よりも優先して、CPUを前記アクセス要求が検出されたデータにアクセスさせる転送制御手段とを含む。CPUがDMA転送中のデータ・ブロックに含まれるデータにアクセスすることを検出手段で検出し、転送制御手段でそのデータを優先的にDMA転送できるので、CPUはDMA転送中のデータに少ない待ち時間でアクセスできる。
【0014】
【発明の実施の形態】
次に、本発明に係るメモリ・ツー・メモリのDMA転送制御方法及び制御装置の実施の形態について、図面に基づいて詳しく説明する。この例では、メイン・メモリのメモリ領域間でメモリ・ツー・メモリDMA転送が行われるものとする。例示されるデータ処理システムにおいて、CPU70 ,キャッシュ・ユニット72 ,システム・バス80 ,メイン・メモリ90は従来(図9(a))と同様であるものとする。さらに、DMA転送するデータ・ブロックDBは従来(図10(a))と同様であるものとする。
【0015】
図1に示す本発明のメモリ・ツー・メモリのDMA転送制御装置(DMAコントローラ)10は、DMA転送中のデータ・ブロックに含まれるデータに対するCPU70からのアクセス要求を検出するDMAヒット検出器12を含む。DMAコントローラ10は、実行中のデータ・ブロックのDMA転送よりも優先して、CPU70をDMAヒット検出器12でアクセス要求が検出されたデータにアクセスさせる手段として機能する。DMAヒット検出器12を含んだDMAコントローラ10は、CPU70とシステム・バス80との間に接続される。
【0016】
DMAヒット検出器12は、DMA転送が未完了のデータへのアクセスをCPU70が要求しているか否かを検出する。DMAコントローラ10は、DMAヒット検出器12が検出したDMA転送が未完了のデータを最優先でDMA転送し、DMA転送後にそのデータをCPU70に送る。
【0017】
DMAコントローラ10は、従来と同様に転送カウンタ84と転送アドレス86を含む。DMAヒット検出器12は、転送カウンタ84と転送アドレス86にアクセスすることで、DMA転送が未完了のデータのアドレスを知ることができる。CPU70がアクセスするデータのアドレスは、キャッシュ・ユニット72とDMAコントローラ10に送られる。DMAヒット検出器12は、CPU70がアクセスを要求しているデータ(以下、要求データという)のアドレスと、DMA転送が未完了のデータのアドレスとの一致を検出する。以下、要求データのDMA転送が未完了の場合を「DMAヒット」と呼ぶ。
【0018】
DMAヒットが検出された場合、要求データのDMA転送は未完了である。DMAコントローラ10は、実行中のデータ・ブロックのDMA転送を中断し、要求データのDMA転送を先に行う。要求データのDMA転送が終了すると、DMAコントローラ10は要求データをMPU70に送る。その後、転送カウンタ84と転送アドレス86を参照して、中断していたデータ・ブロックのDMA転送を再開する。
【0019】
DMAヒットが検出されない場合、要求データのDMA転送は既に完了している。その場合、CPU70は、データ・ブロックのDMA転送が完了していなくても正しいデータにアクセスできる。CPU70はキャッシュ・ユニット72を介してキャッシュ76又はメイン・メモリ90へアクセスし、要求データにアクセスする。
【0020】
次に、このようなDMAコントローラ10を用いたDMA転送制御について、その作用を説明する。
【0021】
DMA転送制御手順の一例を図3に示す。図1(b)に示すようにDMAコントローラ10がデータ・ブロックのDMA転送を開始(S160)した後に、CPU70からデータ・アクセス要求が発生(S162)したとする。図1(c)に示すようにCPU70からは要求データDATAnのアドレスADnがDMAコントローラ10とキャッシュ・ユニット72に送られる。DMAコントローラ10は、DMAヒット検出器12でDMAヒットの検出を行う(S110)。
【0022】
DMAヒットが検出された場合、DMAコントローラ10は、実行中のデータ・ブロックのDMA転送を中断し(S112)、図1(d)に示すように要求データのDMA転送を行う(S114)。DMAヒットが検出された場合、DMAコントローラ10がシステム・バスを優先的に使用する。DMA転送が完了すると、DMAコントローラ10は、図2(a)に示すように、要求データ(DATAn)をメイン・メモリ90からCPU70に送り(S116)、その後、中断していたデータ・ブロックのDMA転送を再開する(S124)。
【0023】
DMAヒットが検出されない場合、DMAコントローラ10は実行中のデータ・ブロックのDMA転送を中断する(S112)。図2(b)に示すように、CPU70はキャッシュ・ユニット72を介してキャッシュ76又はメイン・メモリ90にアクセスする(S118)。CPU70から要求データへのアクセスが完了すると、DMAコントローラ10は中断していたデータ・ブロックのDMA転送を再開させる(S124)。
【0024】
データ・ブロックのデータが全てDMA転送されると(S164)、DMAコントローラ10はCPU70にDMA転送が完了したことを通知する(S166)。
【0025】
例えば図4に示すように、DMA転送が開始(S160)されてDATA1のDMA転送が完了(S180)した後に、CPU70からDATA7のアクセス要求が発生(S162)すると、DMAコントローラ10は実行中のデータ・ブロックDBのDMA転送を中断(S112)して、DATA7のDMA転送を先に行う(S120)。DMA転送中断時の転送カウンタ84には「7」,転送アドレス86には「AD2'→AD2」が保持されている。
【0026】
DATA7のDMA転送が完了すると、DMAコントローラ10はDATA7をCPUに送り(S122)、その後中断していたデータ・ブロックDBのDMA転送を再開する(S124)。DATA2〜DATA8のDMA転送が終了する(S182 ,S184 ,S186 ,S188 ,S190 ,S192 ,S194)と、DMAコントローラ10はDMA転送が終了したことをCPU70に知らせる(S166)。
【0027】
DATA2〜DATA8のDMA転送と並行して、CPU70はDATA7を使用した処理を実行することができる。図4に示した例では、DATA7は再度DMA転送されている(S192)が、CPU70はDATA7を参照しているだけなので、DATA7が再度DMA転送されても問題は無い。図1(a)に示す構成は、CPU70とキャッシュ・ユニット72とDMAコントローラ10とが集積されたシングル・プロセッサに応用できる構成である。
【0028】
以上、本発明の一実施例について説明したが、本発明はその他の態様でも実施し得るものである。例えば、図5(a)に示すように、DMAヒット検出器22をCPU70とシステム・バス80との間に接続し、DMAコントローラ20をシステム・バス80を介してCPU70とメイン・メモリ90に接続することもできる。DMAヒット検出器22は、DMAコントローラ20の転送カウンタ84と転送アドレス86を参照してDMAヒットを検出する。
【0029】
DMAコントローラ20は、DMAヒットが検出されると、CPU70に要求データへのアクセスを再試行させる。DMAコントローラ20は、CPU70が要求データへのアクセスを一旦中止してから再度アクセスするまでの間に、実行中のデータ・ブロックのDMA転送を中断し、要求データをDMA転送する。CPU70がDMA転送が完了した要求データにアクセスした後、DMAコントローラ20は中断しているデータ・ブロックのDMA転送を再開する。
【0030】
DMA転送制御手順の一例を図7に示す。図5(b)に示すようにDMAコントローラ20がデータ・ブロックのDMA転送を開始(S160)した後にCPU70からデータ・アクセス要求が発生(S162)したとする。CPU70からは要求データDATAnのアドレスADnがDMAヒット検出器22とキャッシュ・ユニット72に送られる。DMAヒット検出器22は、DMAコントローラ20の転送カウンタ84と転送アドレス86を参照して、DMAヒットの検出を行う。
【0031】
DMAヒットが検出された場合、DMAヒット検出器22は、図5(c)に示すように要求データのアドレスADnをシステム・バス80を介してDMAコントローラ20に送る(S130)。このときの要求データはDMA転送が未完了の無効なデータである。DMAヒット検出器22からアドレスADnを受け取ったDMAコントローラ20は、図5(d)に示すようにCPU70に要求データへのアクセスの再試行(ReTRY)を要求する(S132)。ReTRYを要求されたCPU70は、要求データへのアクセスを一旦中止し、所定時間経過後、再度要求データにアクセスする。DMAコントローラ20は、CPU70がデータ・アクセスを一旦中止している間に、図6(a)に示すように、実行中のデータ・ブロックのDMA転送を中断し(S112)、要求データDATAnのDMA転送を行う(S134)。
【0032】
CPU70が再度要求データへアクセスしたとき、要求データはDMA転送が完了した有効なデータに更新されている。図6(b)に示すようにCPU70がDATAnにアクセスした後(S136)、DMAコントローラ20は中断していたデータ・ブロックのDMA転送を再開する(S124)。データ・ブロックのデータが全てDMA転送されると(S164)、DMAコントローラ20はCPU70にDMA転送が完了したことを通知する(S166)。
【0033】
図7において、DMAヒットが検出されない場合、図6(c)に示すようにCPU70はキャッシュ・ユニット72を介してキャッシュ76又はメイン・メモリ90にアクセスする。このとき、DMAコントローラ20は実行中のデータ・ブロックのDMA転送を中断し(S112)、CPU70の要求データへのアクセスが完了すると(S118)、中断していたデータ・ブロックのDMA転送を再開させる(S124)。
【0034】
図4と同様に、DMA転送が開始(S160)されてDATA1のDMA転送が完了(S180)した後に、CPU70からDATA7へのアクセス要求が発生(S162)しても、DATA7のDMA転送を先に行う(S120)ことができる。DATA2〜DATA8のDMA転送と並行して、CPU70はDATA7を使用した処理を実行することができる。図5(a)に示す構成は、CPU70とキャッシュ・ユニット72とDMAヒット検出器22とが集積されたマルチ・プロセッサに応用できる構成である。
【0035】
図8(a)に示すように、DMAヒット検出器32にバッファ34を接続することもできる。図8(b)に示すように、DMAヒットが検出されたデータ又はデータ・ブロックをバッファ34に一時的に記憶する。バッファ34へのデータの記憶は、CPUが要求データへアクセスした後に行う。CPU70がバッファ34に記憶されたデータに再度アクセスする場合、DMAヒット検出器32は、バッファ34に記憶されているデータをCPU70に送る。バッファ34を備えることにより、再試行要求(ReTRY)の回数は減少する。
【0036】
以上、本発明は特定の実施例について説明されたが、本発明はこれらに限定されるものではない。例えば、本明細書では、メイン・メモリのメモリ領域間でのメモリ・ツー・メモリDMA転送について説明したが、本発明はシステム・バスに接続された任意の高速メモリ間でのメモリ・ツー・メモリDMA転送に適用可能である。本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良,修正,変形を加えた態様で実施できるものである。同一の作用又は効果が生じる範囲内で、いずれかの発明特定事項を他の技術に置換した形態で実施できるものである。一体に構成されている発明特定事項を複数の要素から構成した形態でも、複数の要素から構成されている発明特定事項を一体に構成した形態でも実施できるものである。
【0037】
【発明の効果】
本発明によれば、DMA転送が未完了のデータに対してCPUがアクセスを要求すると、そのデータを先にDMA転送してCPUにアクセスさせることができるので、DMA転送中のCPUの待ち時間を減少できる。
【図面の簡単な説明】
【図1】本発明のメイン・メモリのメモリ領域間のDMA転送制御の一実施例を示す図であり、(a)は一構成例を示す図であり、(b)はDMA転送の状態を示す図であり、(c)はCPUからデータ・アクセス要求が発生した状態を示す図であり、(d)はDMAヒットが検出されてCPUがアクセスするデータのDMA転送が行われている状態を示す図である。
【図2】 (a)は図1(d)に示したDMA転送が完了したデータをDMAコントローラがCPUに送っている状態を示す図であり、(b)はDMAヒットが検出されず、CPUがキャッシュ又はメイン・メモリにアクセスしている状態を示す図である。
【図3】図1(a)に示すDMAコントローラのDMA転送制御手順の一例を示す図である。
【図4】図1(a)に示すDMAコントローラのデータ・ブロックDBのDMA転送手順の一例を示す図である。
【図5】本発明のメモリ領域間のDMA転送制御の他の実施例を示す図であり、(a)は一構成例を示す図であり、(b)はDMA転送中にCPUからデータ・アクセス要求が発生した状態を示す図であり、(c)はDMAヒットが検出されてDMAコントローラにCPUがアクセスするデータのアドレスを送っている状態を示す図であり、(d)はDMAコントローラがCPUにデータ・アクセスの再試行を要求している状態を示す図である。
【図6】 (a)は図5(d)に示した再試行の要求によりCPUがデータ・アクセスを一時中断したとき、DMAコントローラによるDMA転送が行われている状態を示す図であり、(b)は(a)に示したDMA転送が完了したデータをDMAコントローラがCPUに送っている状態を示す図であり、(c)はDMAヒットが検出されず、CPUがキャッシュ又はメイン・メモリへアクセスしている状態を示す図である。
【図7】図5(a)に示すDMAコントローラのDMA転送制御手順の一例を示す図である。
【図8】本発明のメモリ領域間のDMA転送制御の他の実施例を示す図であり、(a)は一構成例を示す図であり、(b)はDMA転送が完了したデータをDMAコントローラがバッファに送っている状態を示す図であり、(c)は(b)に示すバッファのデータをDMAヒット検出器がCPUに送っている状態を示す図である。
【図9】従来のDMA転送制御の一実施例を示す図であり、(a)は一構成例を示す図であり、(b)はDMA転送の状態を示す図であり、(c)はDMAコントローラからCPUへDMA転送完了を知らせている状態を示す図であり、(d)はCPUがキャッシュ又はメイン・メモリにアクセスしている状態を示す図である。
【図10】 (a)はDMA転送を行う単位のデータ・ブロックの一構成例を示す図であり、(b)はDMAコントローラの転送カウンタと転送アドレスの値と各データのDMA転送状態を示す図である。
【図11】図9(a)に示すDMAコントローラのDMA転送制御手順の一例を示す図である。
【図12】図9(a)に示すDMAコントローラのデータ・ブロックDBのDMA転送手順の一例を示す図である。
【符号の説明】
10,20:DMAコントローラ(転送制御手段,DMA転送制御装置)
12,22,32:DMAヒット検出器(検出手段)
34:バッファ(バッファ・メモリ)
70:CPU
72:キャッシュ・ユニット
74:タグ
76:キャッシュ(キャッシュ・メモリ)
80:システム・バス
82:従来のDMAコントローラ
84:転送カウンタ(第1のレジスタ)
86:転送アドレス(第2のレジスタ)
90:メイン・メモリ

Claims (9)

  1. システム・バスを介してCPU(中央処理装置)に接続されたメイン・メモリを有するデータ処理システムにおいて、複数の命令または命令群がメイン・メモリに記憶された同一のデータを使用する場合にデータをコピーして使用するために、メモリ・ツー・メモリのDMA(直接メモリ・アクセス)転送を行うDMAコントローラの制御方法であって、
    複数のデータが含まれるデータ・ブロックにおいて、該複数のデータを順次DMA転送する途中に、該データ・ブロックに含まれるデータに対するCPUからのアクセス要求を検出する検出ステップと、
    DMA転送中にアクセス要求を検出すると、実行中のDMA転送を中断して、CPUを前記アクセス要求が検出されたデータにアクセスさせる転送制御ステップと、
    を含み、
    前記検出ステップが、
    前記アクセス要求が検出されたデータのDMA転送の完了/未完了を判定するステップを含み、
    前記転送制御ステップが、
    前記アクセス要求が検出されたデータのDMA転送が完了していれば、CPUを前記データにアクセスさせる第1のステップと、
    前記アクセス要求が検出されたデータのDMA転送が未完了であれば、そのデータを最優先でDMA転送し、CPUをDMA転送が完了した前記データにアクセスさせる第2のステップと、
    前記データにCPUがアクセスした後、前記中断しているDMA転送を再開するステップと、
    を含むDMA転送制御方法。
  2. 前記DMAコントローラが、DMA転送が未完了のデータ数が記憶される第1のレジスタと、DMA転送中のデータのアドレスが記憶される第2のレジスタとを含み、
    前記検出ステップが、前記アクセス要求が検出されたデータのアドレスと、前記第1のレジスタと第2のレジスタから求まるDMA転送が未完了のデータのアドレスとの一致を検出するステップを含む請求項1のDMA転送制御方法。
  3. 前記第2のステップが、
    CPUに前記DMA転送が未完了のデータに対するアクセスの再試行を要求するステップと、
    CPUが前記データのアクセスを一旦中止してから再度アクセスするまでの間に、実行中のDMA転送を中断して、前記データをDMA転送するステップと、
    を含む請求項1または2のDMA転送制御方法。
  4. システム・バスを介してCPUに接続されたメイン・メモリを有するデータ処理システムにおいて、複数の命令または命令群がメイン・メモリに記憶された同一のデータを使用する場合にデータをコピーして使用するために、メモリ・ツー・メモリのDMA転送を制御する装置であって、
    複数のデータが含まれるデータ・ブロックにおいて、該複数のデータを順次DMA転送する途中に、該データ・ブロックに含まれるデータに対するCPUからのアクセス要求を検出する検出手段と、
    DMA転送中にアクセス要求が検出されると、実行中のDMA転送を中断して、CPUを前記アクセス要求が検出されたデータにアクセスさせ、その後DMA転送を再開する転送制御手段と
    を含み、
    前記検出手段が、
    前記アクセス要求が検出されたデータのDMA転送が未完了であることを検出する手段を含み、
    前記転送制御手段が、
    前記アクセス要求されたデータを最優先でDMA転送する手段と、
    CPUをDMA転送が完了した前記データにアクセスさせる手段と
    を含むDMA転送制御装置。
  5. 前記DMA転送制御装置が、DMA転送が未完了のデータ数が記憶される第1のレジスタと、DMA転送中のデータのアドレスが記憶される第2のレジスタとを含み、
    前記検出手段が、前記アクセス要求が検出されたデータのアドレスと、前記第1のレジスタと第2のレジスタから求まるDMA転送が未完了のデータのアドレスとの一致を検出する手段を含む請求項4のDMA転送制御装置。
  6. 前記検出手段と転送制御手段とが、CPUとシステム・バスとの間に接続される請求項4または請求項5のいずれかのDMA転送制御装置。
  7. 前記検出手段がCPUとシステム・バスとの間に接続され、前記転送制御手段がシステム・バスを介してCPUとメイン・メモリに接続される請求項4または請求項5のいずれかのDMA転送制御装置。
  8. 前記検出手段が、前記DMA転送が未完了であることが検出されたデータが一時的に記憶されるバッファ・メモリを含む請求項7のDMA転送制御装置。
  9. CPUとシステム・バスとの間にキャッシュ・メモリが接続された請求項4乃至請求項8のいずれかのDMA転送制御装置。
JP2001067342A 2001-03-09 2001-03-09 Dma転送制御方法及び制御装置 Expired - Fee Related JP4204759B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2001067342A JP4204759B2 (ja) 2001-03-09 2001-03-09 Dma転送制御方法及び制御装置
CNB028060539A CN1300715C (zh) 2001-03-09 2002-02-25 直接存储器存取传送控制方法和控制装置
KR1020037011423A KR100602330B1 (ko) 2001-03-09 2002-02-25 Dma 전송 제어 방법 및 제어 장치
PCT/JP2002/001689 WO2002073431A1 (fr) 2001-03-09 2002-02-25 Procede et dispositif de commande de transfert dma
TW091103874A TWI259955B (en) 2001-03-09 2002-03-01 DMA transfer controlling method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001067342A JP4204759B2 (ja) 2001-03-09 2001-03-09 Dma転送制御方法及び制御装置

Publications (2)

Publication Number Publication Date
JP2004145376A JP2004145376A (ja) 2004-05-20
JP4204759B2 true JP4204759B2 (ja) 2009-01-07

Family

ID=18925709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001067342A Expired - Fee Related JP4204759B2 (ja) 2001-03-09 2001-03-09 Dma転送制御方法及び制御装置

Country Status (5)

Country Link
JP (1) JP4204759B2 (ja)
KR (1) KR100602330B1 (ja)
CN (1) CN1300715C (ja)
TW (1) TWI259955B (ja)
WO (1) WO2002073431A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006059303A (ja) * 2004-08-24 2006-03-02 Oki Electric Ind Co Ltd コンピュータシステム
US9141572B2 (en) 2006-12-15 2015-09-22 Microchip Technology Incorporated Direct memory access controller
JP4990262B2 (ja) * 2008-12-26 2012-08-01 三菱電機株式会社 バッファ装置
JP6289689B1 (ja) * 2017-01-27 2018-03-07 三菱電機株式会社 メモリ制御装置および計算機システム
CN112506437A (zh) * 2020-12-10 2021-03-16 上海阵量智能科技有限公司 芯片、数据搬移方法和电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2607073B2 (ja) * 1986-09-30 1997-05-07 松下電器産業株式会社 演算処理装置
JP3602293B2 (ja) * 1997-04-22 2004-12-15 株式会社ソニー・コンピュータエンタテインメント データ転送方法及び装置
JPH11184799A (ja) * 1997-12-19 1999-07-09 Toshiba Corp メモリデータ転送方法ならびに装置
JP3206568B2 (ja) * 1998-10-28 2001-09-10 日本電気株式会社 Dma制御方法及び装置

Also Published As

Publication number Publication date
CN1300715C (zh) 2007-02-14
TWI259955B (en) 2006-08-11
WO2002073431A1 (fr) 2002-09-19
JP2004145376A (ja) 2004-05-20
CN1494684A (zh) 2004-05-05
KR100602330B1 (ko) 2006-07-14
KR20040012727A (ko) 2004-02-11

Similar Documents

Publication Publication Date Title
TWI250411B (en) Method, apparatus and system for memory access
EP1396792B1 (en) Memory copy command specifying source and destination of data executed in the memory controller
JP4304676B2 (ja) データ転送装置、データ転送方法、及びコンピュータ装置
US20050114559A1 (en) Method for efficiently processing DMA transactions
JP7378428B2 (ja) I/oマスタとcpuとの間の最適化されたデータ共有を可能にするための順序付けられた書き込みスタッシュの高性能なストリーミング
US20050132102A1 (en) Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system
JPH08249231A (ja) マルチプロセッサ・システムにおける古いデータの処理システム及び方法
JP4019073B2 (ja) キャッシュ可能なdma
CN112612725A (zh) 用于处理缓存维护操作的装置和方法
JP4204759B2 (ja) Dma転送制御方法及び制御装置
JP3550092B2 (ja) キャッシュ装置及び制御方法
JP4256678B2 (ja) Dma転送制御方法及び制御装置
JP3600536B2 (ja) 書き込みデータの破壊を制限する方法及びシステムとpciバス・システム
JPH10105461A (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法
US10977201B1 (en) Per IO direct memory access redirection
JPH06282528A (ja) データ転送方法及びそのシステム
JP2010211506A (ja) 不均一メモリアクセス機構を備えるコンピュータ、コントローラ、及びデータ移動方法
US6381667B1 (en) Method for supporting multiple delayed read transactions between computer buses
JPH04305746A (ja) キャッシュメモリ制御装置
WO2024124710A1 (zh) 数据处理方法及装置
JP3940701B2 (ja) ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法
JP2005242929A (ja) 共有メモリのアクセス方法及びデータ処理装置
JPH0756844A (ja) システムメモリを有するバスをベースにしたコンピュータシステムに使用するためのマスタバスマスタおよびバスをベースにしたコンピュータシステム
JPH05257859A (ja) 情報処理装置
JP3219422B2 (ja) キャッシュメモリ制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080207

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: 20081002

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20081002

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: 20081015

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111024

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121024

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees