JP2004145376A - Method and device for controlling dma transfer - Google Patents
Method and device for controlling dma transfer Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling 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
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
[0003]
The
[0004]
The
[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
[0006]
As shown in FIG. 9A, the
[0007]
The
[0008]
FIG. 10B shows an outline of the DMA data transfer of the data block DB. Each time data is transferred, the
[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
[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
[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
[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
[0016]
The DMA hit detector 12 detects whether or not the
[0017]
The
[0018]
If a DMA hit is detected, the DMA transfer of the requested data has not been completed. The
[0019]
If no DMA hit is detected, the DMA transfer of the requested data has already been completed. In that case, the
[0020]
Next, the operation of the DMA transfer control using the
[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
[0022]
When a DMA hit is detected, the
[0023]
If a DMA hit is not detected, the
[0024]
When all the data in the data block has been DMA-transferred (S164), the
[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
[0026]
When the DMA transfer of DATA7 is completed, the
[0027]
In parallel with the DMA transfer of DATA2 to DATA8, the
[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
[0029]
When a DMA hit is detected, the
[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
[0031]
When a DMA hit is detected, the DMA hit
[0032]
When the
[0033]
In FIG. 7, when a DMA hit is not detected, the
[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
[0035]
As shown in FIG. 8A, a
[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)
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.
前記検出ステップが、前記アクセス要求が検出されたデータのアドレスと、前記第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.
前記第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.
前記第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.
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.
前記検出手段が、前記アクセス要求が検出されたデータのアドレスと、前記第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.
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)
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)
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)
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 |
-
2001
- 2001-03-09 JP JP2001067342A patent/JP4204759B2/en not_active Expired - Fee Related
-
2002
- 2002-02-25 WO PCT/JP2002/001689 patent/WO2002073431A1/en active Application Filing
- 2002-02-25 KR KR1020037011423A patent/KR100602330B1/en not_active IP Right Cessation
- 2002-02-25 CN CNB028060539A patent/CN1300715C/en not_active Expired - Fee Related
- 2002-03-01 TW TW091103874A patent/TWI259955B/en not_active IP Right Cessation
Cited By (4)
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 |