JP2004145376A - Method and device for controlling dma transfer - Google Patents

Method and device for controlling dma transfer Download PDF

Info

Publication number
JP2004145376A
JP2004145376A JP2001067342A JP2001067342A JP2004145376A JP 2004145376 A JP2004145376 A JP 2004145376A JP 2001067342 A JP2001067342 A JP 2001067342A JP 2001067342 A JP2001067342 A JP 2001067342A JP 2004145376 A JP2004145376 A JP 2004145376A
Authority
JP
Japan
Prior art keywords
data
dma
cpu
dma transfer
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.)
Granted
Application number
JP2001067342A
Other languages
Japanese (ja)
Other versions
JP4204759B2 (en
Inventor
Makoto Ueda
上田 真
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/en
Priority to KR1020037011423A priority patent/KR100602330B1/en
Priority to CNB028060539A priority patent/CN1300715C/en
Priority to PCT/JP2002/001689 priority patent/WO2002073431A1/en
Priority to TW091103874A priority patent/TWI259955B/en
Publication of JP2004145376A publication Critical patent/JP2004145376A/en
Application granted granted Critical
Publication of JP4204759B2 publication Critical patent/JP4204759B2/en
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)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a system that allows data in DMA transfer to be referred to and reduces the waiting time of a CPU in DMA transfer. <P>SOLUTION: The system comprises a detection means 12 to detect a request from a CPU 70 for reference to the data of DMA transfer object and uses a device 10 for controlling DMA transfer, that lets the CPU 70 refer to the data for which the request for reference has been detected prior to DMA transfer during execution. <P>COPYRIGHT: (C)2004,JPO

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:メイン・メモリ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a direct memory access (DMA) transfer control method and control device, and more particularly, to a memory-to-memory DMA transfer control method and control device.
[0002]
[Prior art]
FIGS. 9A, 9B, 9C, and 9D show the outline of the memory-to-memory DMA transfer performed between the memory areas of the main memory. In the data processing system of FIG. 9, a CPU (Central Processing Unit) 70 and a cache unit 72, a main memory 90, and a DMA controller 82 are connected to a system bus 80.
[0003]
The cache unit 72 is connected between the CPU 70 and the system bus 80, and includes a tag 74 and a cache 76. The cache 76 is a memory in which a part of the data stored in the main memory 90 is stored, and the tag 74 is a memory in which the address of the data stored in the cache 76 is stored. The CPU 70 accesses the cache 76 if the data to be accessed is in the cache 76, and accesses the main memory 90 if the data to be accessed is not in the cache 76.
[0004]
The main memory 90 is a semiconductor memory such as a dynamic random access memory (DRAM), and the DMA controller 82 performs memory-to-memory data transfer between memory areas of the main memory 90 without the intervention of the CPU 70. Data transfer between memory areas means data transfer from a transfer source in the main memory 90 to a transfer destination in the main memory 90 as shown in FIGS. 9 (a), 9 (b), 9 (c) and 9 (d). Data transfer by the DMA controller 82 (hereinafter, DMA data transfer) and processing by the CPU 70 can be executed in parallel. DMA data transfer includes copying data as well as data movement.
[0005]
For example, when a plurality of instructions or a group of instructions use the same data, the original data is often not used directly but copied and used in the main memory 90. DMA transfer is performed in data block units. FIG. 10A shows an example of the data block. The data block DB stores data DATA1, DATA2, DATA3, DATA4, DATA5, and AD8 'of the transfer source addresses AD1', AD2 ', AD3', AD4 ', AD5', AD6 ', AD7', and AD8 'of the main memory 90. It includes DATA6, DATA7, and DATA8. The data DATA1, DATA2, DATA3, DATA4, DATA5, DATA6, DATA7, DATA8 are copied to the transfer destination addresses AD1, AD2, AD3, AD4, AD5, AD6, AD7, AD8 of the main memory 90.
[0006]
As shown in FIG. 9A, the DMA controller 82 includes a register 84 (hereinafter, referred to as a transfer counter 84) for storing the number of data that has not been DMA-transferred, and a register for storing the address of the data being transferred. 86 (hereinafter, referred to as a transfer address 86). In the case of the data block DB in FIG. 10A, the transfer counter 84 stores “8” as the total number of data as an initial value. Each time the DMA transfer of data is completed, the DMA controller 82 decreases the value of the transfer counter 84 by one.
[0007]
The transfer address 86 stores a transfer source address and a transfer destination address of data during DMA transfer. In the case of the data block DB in FIG. 10A, the transfer source address AD1 ′ and the transfer destination address AD1 are stored as initial values. Each time the DMA transfer of data is completed, the DMA controller 82 updates the source and destination addresses.
[0008]
FIG. 10B shows an outline of the DMA data transfer of the data block DB. Each time data is transferred, the transfer counter 84 and the transfer address 86 are updated, and DATA1 to DATA8 are sequentially transferred. When the DMA transfer of DATA8 is completed, the transfer counter becomes "0" (not shown), and the DMA transfer of the data block DB ends. Here, “AD1 ′ → AD1” in the figure indicates that the source address is AD1 ′ and the destination address is AD1.
[0009]
Data for which the DMA transfer has not been completed cannot be accessed until the DMA transfer is completed. FIG. 11 shows an example of a procedure in which the CPU 70 accesses data at the DMA transfer destination. As shown in FIG. 9B, after the DMA transfer of the data block DB is started (S160), even if an access request to the data of the DMA transfer destination occurs from the CPU 70 (S162), the DMA transfer continues as it is. Is performed (S163). When the DMA transfer of the data block DB ends (S164), the DMA controller 82 notifies the CPU 70 of the end of the DMA transfer (interrupt signal INT) as shown in FIG. 9C (S166). Since the DMA transfer of the data block DB has been completed, the CPU 70 accesses the data after the DMA transfer as shown in FIG. 9D (S168).
[0010]
For example, as shown in FIG. 12, when an access request for DATA7 is generated from the CPU 70 (S162) after the transfer of DATA1 is completed (S180), the DMA transfer of DATA2 to DATA8 is completed (S182, S184, S186, S188, S190, S190). After performing S192 and S194), the CPU 70 accesses DATA7 (S168). During the DMA transfer of DATA2 to DATA8, the CPU 70 cannot access DATA7 and a waiting time occurs. Of course, the CPU 70 can cause the CPU 70 to execute other processing in parallel with the DMA transfer. However, there is not always another process that can be assigned to the CPU 70 during the DMA transfer.
[0011]
[Problems to be solved by the invention]
SUMMARY OF THE INVENTION It is an object of the present invention to enable access to data during a DMA transfer and reduce the waiting time of the CPU during the DMA transfer.
[0012]
[Means for Solving the Problems]
According to the memory-to-memory DMA transfer control method of the present invention, a detection step of detecting an access request from the CPU to data included in a data block being DMA-transferred, and a priority being given to the DMA transfer being executed, A transfer control step of causing the CPU to access the data for which the access request has been detected.
[0013]
The DMA transfer control device according to the present invention includes a detecting means for detecting an access request from the CPU to data included in the data block being DMA-transferred, and the CPU having the access request given priority to the DMA transfer being executed. Transfer control means for accessing the detected data. The detection means detects that the CPU accesses data included in the data block being DMA-transferred, and the transfer control means can preferentially DMA-transfer the data. Can be accessed at
[0014]
BEST MODE FOR CARRYING OUT THE INVENTION
Next, embodiments of a memory-to-memory DMA transfer control method and control device according to the present invention will be described in detail with reference to the drawings. In this example, it is assumed that the memory-to-memory DMA transfer is performed between the memory areas of the main memory. In the illustrated data processing system, it is assumed that the CPU 70, the cache unit 72, the system bus 80, and the main memory 90 are the same as those in the related art (FIG. 9A). Further, it is assumed that the data block DB to be DMA-transferred is the same as the conventional one (FIG. 10A).
[0015]
The memory-to-memory DMA transfer control device (DMA controller) 10 of the present invention shown in FIG. 1 includes a DMA hit detector 12 for detecting an access request from the CPU 70 to data included in a data block during a DMA transfer. Including. The DMA controller 10 functions as a unit that causes the CPU 70 to access data for which an access request has been detected by the DMA hit detector 12 in preference to the DMA transfer of the data block being executed. The DMA controller 10 including the DMA hit detector 12 is connected between the CPU 70 and the system bus 80.
[0016]
The DMA hit detector 12 detects whether or not the CPU 70 has requested access to data for which DMA transfer has not been completed. The DMA controller 10 performs the highest priority DMA transfer of data for which the DMA transfer detected by the DMA hit detector 12 has not been completed, and sends the data to the CPU 70 after the DMA transfer.
[0017]
The DMA controller 10 includes a transfer counter 84 and a transfer address 86 as in the prior art. By accessing the transfer counter 84 and the transfer address 86, the DMA hit detector 12 can know the address of the data whose DMA transfer has not been completed. The address of the data accessed by the CPU 70 is sent to the cache unit 72 and the DMA controller 10. The DMA hit detector 12 detects a match between the address of data requested to be accessed by the CPU 70 (hereinafter referred to as request data) and the address of data for which DMA transfer has not been completed. Hereinafter, a case where the DMA transfer of the requested data is not completed is referred to as a “DMA hit”.
[0018]
If a DMA hit is detected, the DMA transfer of the requested data has not been completed. The DMA controller 10 suspends the DMA transfer of the data block being executed, and performs the DMA transfer of the requested data first. When the DMA transfer of the request data is completed, the DMA controller 10 sends the request data to the MPU 70. Thereafter, the DMA transfer of the interrupted data block is resumed by referring to the transfer counter 84 and the transfer address 86.
[0019]
If no DMA hit is detected, the DMA transfer of the requested data has already been completed. In that case, the CPU 70 can access correct data even when the DMA transfer of the data block is not completed. The CPU 70 accesses the cache 76 or the main memory 90 via the cache unit 72 to access the requested data.
[0020]
Next, the operation of the DMA transfer control using the DMA controller 10 will be described.
[0021]
FIG. 3 shows an example of the DMA transfer control procedure. Assume that a data access request is generated from the CPU 70 (S162) after the DMA controller 10 starts the DMA transfer of the data block (S160) as shown in FIG. 1B. As shown in FIG. 1C, the address ADn of the request data DATAn is sent from the CPU 70 to the DMA controller 10 and the cache unit 72. The DMA controller 10 detects a DMA hit by the DMA hit detector 12 (S110).
[0022]
When a DMA hit is detected, the DMA controller 10 interrupts the DMA transfer of the data block being executed (S112), and performs the DMA transfer of the requested data as shown in FIG. 1D (S114). When a DMA hit is detected, the DMA controller 10 preferentially uses the system bus. When the DMA transfer is completed, the DMA controller 10 sends the requested data (DATAn) from the main memory 90 to the CPU 70 (S116) as shown in FIG. The transfer is restarted (S124).
[0023]
If a DMA hit is not detected, the DMA controller 10 suspends the DMA transfer of the data block being executed (S112). As shown in FIG. 2B, the CPU 70 accesses the cache 76 or the main memory 90 via the cache unit 72 (S118). When the access to the requested data from the CPU 70 is completed, the DMA controller 10 resumes the interrupted DMA transfer of the data block (S124).
[0024]
When all the data in the data block has been DMA-transferred (S164), the DMA controller 10 notifies the CPU 70 that the DMA transfer has been completed (S166).
[0025]
For example, as shown in FIG. 4, after the DMA transfer is started (S160) and the DMA transfer of DATA1 is completed (S180), when an access request of DATA7 is generated from the CPU 70 (S162), the DMA controller 10 executes the data being executed. The DMA transfer of the block DB is interrupted (S112), and the DMA transfer of DATA7 is performed first (S120). When the DMA transfer is interrupted, the transfer counter 84 holds “7” and the transfer address 86 holds “AD2 ′ → AD2”.
[0026]
When the DMA transfer of DATA7 is completed, the DMA controller 10 sends DATA7 to the CPU (S122), and then resumes the interrupted DMA transfer of the data block DB (S124). When the DMA transfer of DATA2 to DATA8 is completed (S182, S184, S186, S188, S190, S192, S194), the DMA controller 10 notifies the CPU 70 that the DMA transfer is completed (S166).
[0027]
In parallel with the DMA transfer of DATA2 to DATA8, the CPU 70 can execute processing using DATA7. In the example shown in FIG. 4, DATA7 is DMA-transferred again (S192), but since the CPU 70 only refers to DATA7, there is no problem even if DATA7 is DMA-transferred again. The configuration shown in FIG. 1A is a configuration that can be applied to a single processor in which a CPU 70, a cache unit 72, and a DMA controller 10 are integrated.
[0028]
As mentioned above, although one Example of this invention was described, this invention can be implemented also in another aspect. For example, as shown in FIG. 5A, the DMA hit detector 22 is connected between the CPU 70 and the system bus 80, and the DMA controller 20 is connected to the CPU 70 and the main memory 90 via the system bus 80. You can also. The DMA hit detector 22 detects a DMA hit by referring to the transfer counter 84 and the transfer address 86 of the DMA controller 20.
[0029]
When a DMA hit is detected, the DMA controller 20 causes the CPU 70 to retry accessing the requested data. The DMA controller 20 suspends the DMA transfer of the data block being executed and temporarily transfers the requested data from the time when the CPU 70 temporarily stops accessing the requested data until the CPU 70 accesses the requested data again. After the CPU 70 accesses the requested data for which the DMA transfer has been completed, the DMA controller 20 resumes the DMA transfer of the suspended data block.
[0030]
FIG. 7 shows an example of the DMA transfer control procedure. It is assumed that a data access request is generated from the CPU 70 (S162) after the DMA controller 20 starts the DMA transfer of the data block (S160) as shown in FIG. 5B. The address ADn of the request data DATAn is sent from the CPU 70 to the DMA hit detector 22 and the cache unit 72. The DMA hit detector 22 detects a DMA hit by referring to the transfer counter 84 and the transfer address 86 of the DMA controller 20.
[0031]
When a DMA hit is detected, the DMA hit detector 22 sends the address ADn of the requested data to the DMA controller 20 via the system bus 80 as shown in FIG. 5C (S130). The request data at this time is invalid data for which the DMA transfer has not been completed. The DMA controller 20 that has received the address ADn from the DMA hit detector 22 requests the CPU 70 to retry access to the requested data (ReTRY) as shown in FIG. 5D (S132). The CPU 70 that has been requested for ReTRY temporarily stops accessing the requested data, and accesses the requested data again after a predetermined time has elapsed. As shown in FIG. 6A, the DMA controller 20 suspends the DMA transfer of the data block being executed (S112) while the CPU 70 temporarily suspends the data access (S112), and DMAs the requested data DATAn. Transfer is performed (S134).
[0032]
When the CPU 70 accesses the request data again, the request data has been updated to valid data for which the DMA transfer has been completed. As shown in FIG. 6B, after the CPU 70 accesses DATAn (S136), the DMA controller 20 resumes the interrupted DMA transfer of the data block (S124). When all the data in the data block has been DMA-transferred (S164), the DMA controller 20 notifies the CPU 70 that the DMA transfer has been completed (S166).
[0033]
In FIG. 7, when a DMA hit is not detected, the CPU 70 accesses the cache 76 or the main memory 90 via the cache unit 72 as shown in FIG. At this time, the DMA controller 20 suspends the DMA transfer of the data block being executed (S112), and when the CPU 70 completes the access to the requested data (S118), resumes the DMA transfer of the suspended data block. (S124).
[0034]
Similarly to FIG. 4, after the DMA transfer is started (S160) and the DMA transfer of DATA1 is completed (S180), even if an access request to DATA7 is generated from the CPU 70 (S162), the DMA transfer of DATA7 is performed first. (S120). In parallel with the DMA transfer of DATA2 to DATA8, the CPU 70 can execute processing using DATA7. The configuration shown in FIG. 5A is a configuration that can be applied to a multiprocessor in which the CPU 70, the cache unit 72, and the DMA hit detector 22 are integrated.
[0035]
As shown in FIG. 8A, a buffer 34 can be connected to the DMA hit detector 32. As shown in FIG. 8B, the data or data block in which the DMA hit is detected is temporarily stored in the buffer 34. The data is stored in the buffer 34 after the CPU accesses the requested data. When the CPU 70 accesses the data stored in the buffer 34 again, the DMA hit detector 32 sends the data stored in the buffer 34 to the CPU 70. By providing the buffer 34, the number of retry requests (ReTRY) is reduced.
[0036]
Although the present invention has been described with reference to specific embodiments, the present invention is not limited thereto. For example, although memory-to-memory DMA transfers between memory areas of a main memory have been described herein, the present invention provides a memory-to-memory DMA transfer between any high speed memories connected to a system bus. Applicable to DMA transfer. The present invention can be implemented in various modified, modified, and modified embodiments based on the knowledge of those skilled in the art without departing from the spirit thereof. As long as the same operation or effect is produced, any of the invention-specific matters can be implemented in a form replaced with another technology. The present invention can be embodied in a form in which the integrally formed invention specifying matter is composed of a plurality of elements, or in a form in which the invention specifying matter composed of a plurality of elements is integrally formed.
[0037]
【The invention's effect】
According to the present invention, when the CPU requests access to data that has not been DMA-transferred, the data can be DMA-transferred first and the CPU can be accessed. Can be reduced.
[Brief description of the drawings]
FIGS. 1A and 1B are diagrams showing an embodiment of DMA transfer control between memory areas of a main memory according to the present invention, wherein FIG. 1A is a diagram showing an example of a configuration, and FIG. FIG. 3C is a diagram illustrating a state in which a data access request has been generated from the CPU, and FIG. 4D is a diagram illustrating a state in which a DMA hit has been detected and DMA transfer of data accessed by the CPU has been performed. FIG.
FIG. 2A is a diagram showing a state in which a DMA controller is sending data to which a DMA transfer has been completed shown in FIG. 1D to a CPU, and FIG. Is a diagram showing a state in which is accessing a cache or a main memory.
FIG. 3 is a diagram showing an example of a DMA transfer control procedure of the DMA controller shown in FIG.
FIG. 4 is a diagram showing an example of a DMA transfer procedure of a data block DB of the DMA controller shown in FIG.
5A and 5B are diagrams showing another embodiment of DMA transfer control between memory areas according to the present invention, wherein FIG. 5A is a diagram showing an example of a configuration, and FIG. 5B is a diagram showing a data transfer from a CPU during a DMA transfer. FIG. 7C is a diagram illustrating a state in which an access request has occurred, FIG. 7C is a diagram illustrating a state in which a DMA hit is detected, and the address of data to be accessed by the CPU is sent to the DMA controller, and FIG. FIG. 11 is a diagram illustrating a state in which a retry of data access is requested to the CPU.
FIG. 6A is a diagram showing a state in which DMA transfer is being performed by a DMA controller when the CPU temporarily suspends data access due to the retry request shown in FIG. 5D; FIG. 2B is a diagram illustrating a state in which the DMA controller is sending data to the CPU after the completion of the DMA transfer illustrated in FIG. 2A, and FIG. 2C is a diagram illustrating a state in which a DMA hit is not detected and the CPU transfers the data to the cache or main memory. It is a figure showing the state where it is accessing.
FIG. 7 is a diagram showing an example of a DMA transfer control procedure of the DMA controller shown in FIG.
8A and 8B are diagrams showing another embodiment of the DMA transfer control between memory areas according to the present invention, wherein FIG. 8A is a diagram showing an example of a configuration, and FIG. It is a figure which shows the state which the controller is sending to the buffer, and (c) is a figure which shows the state which the DMA hit detector is sending the data of the buffer shown in (b) to CPU.
9A and 9B are diagrams illustrating an example of a conventional DMA transfer control, FIG. 9A is a diagram illustrating an example of a configuration, FIG. 9B is a diagram illustrating a state of a DMA transfer, and FIG. FIG. 11D is a diagram illustrating a state in which the DMA controller notifies the CPU of the completion of the DMA transfer, and FIG. 9D illustrates a state in which the CPU is accessing the cache or the main memory.
10A is a diagram illustrating a configuration example of a data block in a unit for performing a DMA transfer, and FIG. 10B is a diagram illustrating a transfer counter of a DMA controller, a value of a transfer address, and a DMA transfer state of each data; FIG.
FIG. 11 is a diagram showing an example of a DMA transfer control procedure of the DMA controller shown in FIG.
FIG. 12 is a diagram illustrating an example of a DMA transfer procedure of the data block DB of the DMA controller illustrated in FIG. 9A.
[Explanation of symbols]
10, 20: DMA controller (transfer control means, DMA transfer control device)
12, 22, 32: DMA hit detector (detection means)
34: Buffer (buffer memory)
70: CPU
72: cache unit 74: tag 76: cache (cache memory)
80: system bus 82: conventional DMA controller 84: transfer counter (first register)
86: transfer address (second register)
90: Main memory

Claims (12)

システム・バスを介してCPU(中央処理装置)に接続されたメイン・メモリを有するデータ処理システムにおいてメモリ・ツー・メモリのDMA(直接メモリ・アクセス)転送を行うDMAコントローラの制御方法であって、
DMA転送中のデータ・ブロックに含まれるデータに対するCPUからのアクセス要求を検出する検出ステップと、
実行中のDMA転送よりも優先して、CPUを前記アクセス要求が検出されたデータにアクセスさせる転送制御ステップと
を含むDMA転送制御方法。
A method of controlling a DMA controller for performing a memory-to-memory DMA (direct memory access) transfer in a data processing system having a main memory connected to a CPU (central processing unit) via a system bus,
A detecting step of detecting an access request from the CPU for data included in the data block during the DMA transfer;
A transfer control step of causing the CPU to access the data in which the access request is detected, prior to the DMA transfer being executed.
前記検出ステップが、
前記アクセス要求が検出されたデータのDMA転送の完了/未完了を判定するステップを含み、
前記転送制御ステップが、
前記アクセス要求が検出されたデータのDMA転送が完了していれば、CPUを前記データにアクセスさせる第1のステップと、
前記アクセス要求が検出されたデータのDMA転送が未完了であれば、そのデータを最優先でDMA転送し、CPUをDMA転送が完了した前記データにアクセスさせる第2のステップと
を含む請求項1のDMA転送制御方法。
The detecting step includes:
Judging completion / incomplete of DMA transfer of the data in which the access request is detected,
The transfer control step,
A first step of causing the CPU to access the data if the DMA transfer of the data for which the access request is detected has been completed;
And a second step of, if the DMA transfer of the data for which the access request is detected is not completed, performing the DMA transfer of the data with the highest priority, and causing a CPU to access the data for which the DMA transfer has been completed. DMA transfer control method.
前記DMAコントローラが、DMA転送が未完了のデータ数が記憶される第1のレジスタと、DMA転送中のデータのアドレスが記憶される第2のレジスタとを含み、
前記検出ステップが、前記アクセス要求が検出されたデータのアドレスと、前記第1のレジスタと第2のレジスタから求まるDMA転送が未完了のデータのアドレスとの一致を検出するステップを含む請求項2のDMA転送制御方法。
The DMA controller includes a first register for storing the number of data for which a DMA transfer has not been completed, and a second register for storing an address of data being DMA-transferred,
3. The method according to claim 2, wherein the detecting step includes detecting a match between an address of the data in which the access request is detected and an address of data for which DMA transfer obtained from the first register and the second register has not been completed. DMA transfer control method.
前記DMAコントローラがCPUとシステム・バスとの間に接続されており、
前記第2のステップが、
実行中のDMA転送を中断するステップと、
前記DMA転送が未完了のデータをDMA転送するステップと、
CPUをDMA転送が完了した前記データにアクセスさせるステップと、
前記中断しているDMA転送を再開するステップと
を含む請求項2又は請求項3のDMA転送制御方法。
The DMA controller is connected between a CPU and a system bus,
The second step includes:
Suspending the ongoing DMA transfer;
DMA-transferring data for which the DMA transfer has not been completed;
Causing the CPU to access the data for which the DMA transfer has been completed;
4. The method according to claim 2, further comprising the step of resuming the interrupted DMA transfer.
前記DMAコントローラがシステム・バスを介してCPUとメイン・メモリに接続されており、
前記第2のステップが、
CPUに前記DMA転送が未完了のデータに対するアクセスの再試行を要求するステップと、
CPUが前記データのアクセスを一旦中止してから再度アクセスするまでの間に、実行中のDMA転送を中断して、前記データをDMA転送するステップと、
DMA転送が完了した前記データにCPUがアクセスした後、前記中断しているDMA転送を再開するステップと
を含む請求項2又は請求項3のDMA転送制御方法。
The DMA controller is connected to a CPU and a main memory via a system bus,
The second step includes:
Requesting a CPU to retry access to data for which the DMA transfer has not been completed;
Suspending a DMA transfer in progress and temporarily DMA-transmitting the data between a time when the CPU temporarily stops accessing the data and a time when the CPU accesses the data again;
4. The method according to claim 2, further comprising the step of restarting the interrupted DMA transfer after the CPU accesses the data for which the DMA transfer has been completed.
システム・バスを介してCPUに接続されたメイン・メモリを有するデータ処理システムにおいてメモリ・ツー・メモリのDMA転送を制御する装置であって、
DMA転送中のデータ・ブロックに含まれるデータに対するCPUからのアクセス要求を検出する検出手段と、
実行中のDMA転送よりも優先して、CPUを前記アクセス要求が検出されたデータにアクセスさせる転送制御手段と
を含むDMA転送制御装置。
An apparatus for controlling a memory-to-memory DMA transfer in a data processing system having a main memory connected to a CPU via a system bus, comprising:
Detecting means for detecting an access request from the CPU for data included in the data block being DMA-transferred;
A transfer control unit for causing the CPU to access data in which the access request is detected, prior to a DMA transfer being executed.
前記検出手段が、
前記アクセス要求が検出されたデータのDMA転送が未完了であることを検出する手段を含み、
前記転送制御手段が、
前記アクセス要求されたデータを最優先でDMA転送する手段と、
CPUをDMA転送が完了した前記データにアクセスさせる手段と
を含む請求項6のDMA転送制御装置。
The detection means,
Means for detecting that the DMA transfer of the data for which the access request has been detected is incomplete,
The transfer control means,
Means for DMA-transferring the requested data with the highest priority;
Means for causing a CPU to access the data for which DMA transfer has been completed.
前記DMA転送制御装置が、DMA転送が未完了のデータ数が記憶される第1のレジスタと、DMA転送中のデータのアドレスが記憶される第2のレジスタとを含み、
前記検出手段が、前記アクセス要求が検出されたデータのアドレスと、前記第1のレジスタと第2のレジスタから求まるDMA転送が未完了のデータのアドレスとの一致を検出する手段を含む請求項7のDMA転送制御装置。
The DMA transfer control device includes a first register for storing the number of data for which DMA transfer has not been completed, and a second register for storing an address of data being DMA-transferred,
8. The detection means includes means for detecting a match between the address of the data for which the access request has been detected and the address of data for which DMA transfer obtained from the first register and the second register has not been completed. DMA transfer control device.
前記検出手段と転送制御手段とが、CPUとシステム・バスとの間に接続される請求項6乃至請求項8のいずれかのDMA転送制御装置。9. The DMA transfer control device according to claim 6, wherein said detection means and transfer control means are connected between a CPU and a system bus. 前記検出手段がCPUとシステム・バスとの間に接続され、前記転送制御手段がシステム・バスを介してCPUとメイン・メモリに接続される請求項6乃至請求項8のいずれかのDMA転送制御装置。9. The DMA transfer control according to claim 6, wherein said detection means is connected between a CPU and a system bus, and said transfer control means is connected to the CPU and main memory via a system bus. apparatus. 前記検出手段が、前記DMA転送が未完了であることが検出されたデータが一時的に記憶されるバッファ・メモリを含む請求項10のDMA転送制御装置。11. The DMA transfer control device according to claim 10, wherein said detection means includes a buffer memory for temporarily storing data in which the DMA transfer is detected to be incomplete. CPUとシステム・バスとの間にキャッシュ・メモリが接続された請求項6乃至請求項11のいずれかのDMA転送制御装置。12. The DMA transfer control device according to claim 6, wherein a cache memory is connected between the CPU and the system bus.
JP2001067342A 2001-03-09 2001-03-09 DMA transfer control method and control apparatus Expired - Fee Related JP4204759B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2001067342A JP4204759B2 (en) 2001-03-09 2001-03-09 DMA transfer control method and control apparatus
KR1020037011423A KR100602330B1 (en) 2001-03-09 2002-02-25 Dma transfer control method and control device
CNB028060539A CN1300715C (en) 2001-03-09 2002-02-25 DMA transfer control method and control device
PCT/JP2002/001689 WO2002073431A1 (en) 2001-03-09 2002-02-25 Dma transfer control method and control device
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 (en) 2001-03-09 2001-03-09 DMA transfer control method and control apparatus

Publications (2)

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

Family

ID=18925709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001067342A Expired - Fee Related JP4204759B2 (en) 2001-03-09 2001-03-09 DMA transfer control method and control apparatus

Country Status (5)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006059303A (en) * 2004-08-24 2006-03-02 Oki Electric Ind Co Ltd Computer system
JP2010152837A (en) * 2008-12-26 2010-07-08 Mitsubishi Electric Corp Buffer device
JP6289689B1 (en) * 2017-01-27 2018-03-07 三菱電機株式会社 Memory control device and computer system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141572B2 (en) 2006-12-15 2015-09-22 Microchip Technology Incorporated Direct memory access controller
CN112506437A (en) * 2020-12-10 2021-03-16 上海阵量智能科技有限公司 Chip, data moving method and electronic equipment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2607073B2 (en) * 1986-09-30 1997-05-07 松下電器産業株式会社 Arithmetic processing unit
JP3602293B2 (en) * 1997-04-22 2004-12-15 株式会社ソニー・コンピュータエンタテインメント Data transfer method and device
JPH11184799A (en) * 1997-12-19 1999-07-09 Toshiba Corp Method for transferring memory data and device therefor
JP3206568B2 (en) * 1998-10-28 2001-09-10 日本電気株式会社 DMA control method and apparatus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006059303A (en) * 2004-08-24 2006-03-02 Oki Electric Ind Co Ltd Computer system
JP2010152837A (en) * 2008-12-26 2010-07-08 Mitsubishi Electric Corp Buffer device
JP6289689B1 (en) * 2017-01-27 2018-03-07 三菱電機株式会社 Memory control device and computer system
JP2018120499A (en) * 2017-01-27 2018-08-02 三菱電機株式会社 Memory control apparatus and computing system

Also Published As

Publication number Publication date
WO2002073431A1 (en) 2002-09-19
TWI259955B (en) 2006-08-11
KR100602330B1 (en) 2006-07-14
KR20040012727A (en) 2004-02-11
CN1494684A (en) 2004-05-05
CN1300715C (en) 2007-02-14
JP4204759B2 (en) 2009-01-07

Similar Documents

Publication Publication Date Title
TWI250411B (en) Method, apparatus and system for memory access
JP4792113B2 (en) Interprocessor interrupt
EP1396792B1 (en) Memory copy command specifying source and destination of data executed in the memory controller
US7783794B2 (en) Remote USB access method
US20050114559A1 (en) Method for efficiently processing DMA transactions
US20070214307A1 (en) Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system
JP7378428B2 (en) High-performance streaming of ordered write stashes to enable optimized data sharing between I/O masters and CPUs
JP5146844B2 (en) System and method for maintaining cache coherency across a serial interface bus
JP4204759B2 (en) DMA transfer control method and control apparatus
JP4256678B2 (en) DMA transfer control method and control apparatus
CN112612725A (en) Apparatus and method for processing cache maintenance operations
JP2002024162A (en) Device and method for transferring data
JP2002541548A (en) Global bus synchronous transaction acknowledgment with no response detection
US6381667B1 (en) Method for supporting multiple delayed read transactions between computer buses
US6397304B1 (en) Method and apparatus for improving system performance in multiprocessor systems
JP2005242929A (en) Accessing method for shared memory and data processor
JPH04305746A (en) Cache memory control device
JP3940701B2 (en) Disk array device and cache matching control method applied to the same
JPH10320348A (en) Method and device for enabling cache streaming
WO2024124710A1 (en) Data processing method and apparatus
JP2004234420A (en) Interruption control method and interruption control process
JP2007328539A (en) Bus system, bus slave and bus control method
JP2004094819A (en) Memory access arbiter and memory control device
JP2004062319A (en) Data processor
JP3219422B2 (en) Cache memory control method

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