JP4800207B2 - リードアドレス可能バーチャルdmaコントロール及び状態レジスタ - Google Patents

リードアドレス可能バーチャルdmaコントロール及び状態レジスタ Download PDF

Info

Publication number
JP4800207B2
JP4800207B2 JP2006515368A JP2006515368A JP4800207B2 JP 4800207 B2 JP4800207 B2 JP 4800207B2 JP 2006515368 A JP2006515368 A JP 2006515368A JP 2006515368 A JP2006515368 A JP 2006515368A JP 4800207 B2 JP4800207 B2 JP 4800207B2
Authority
JP
Japan
Prior art keywords
transfer
parameter
base address
dma controller
data
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
JP2006515368A
Other languages
English (en)
Other versions
JP2007520770A (ja
Inventor
ニ,ジエ
フートラル,ウィリアム
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2007520770A publication Critical patent/JP2007520770A/ja
Application granted granted Critical
Publication of JP4800207B2 publication Critical patent/JP4800207B2/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)
  • Bus Control (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Time-Division Multiplex Systems (AREA)

Description

発明の詳細な説明
[発明の技術分野]
本発明は、DMA転送状態の制御及び監視を行うため、メモリアドレススペースのバーチャルDMAレジスタの規定に関する。
[背景]
各種コンピュータシステムアーキテクチャは、コンピュータシステム内部の装置(記憶装置、I/O装置などを含む)間及びバス間のデータブロックを効率的に転送するため、いくつかのアプローチを利用している。最もシンプルなアプローチの1つは、CPU(Central Processing Unit)による1つの装置からのデータブロックの読出しと、他の装置への当該データブロックの書き込みを可能にするというものであった。しかしながら、この作業はしばしば、CPUがより複雑な計算及び他の計算タスクを実行するのにより十分に使用されるように、他の代替的機構への委任により適したタスクとしてみなされる。
広く利用されている1つの代替的機構は、コンピュータシステムのシステムメモリと他の装置との間のデータブロックの移動を引き継ぐため、上記のようなコンピュータシステムにDMA(Direct Memory Access)コントローラを追加することである。典型的には、当該DMAコントローラは、CPUが転送パラメータをDMAコントローラ内のレジスタに直接書き込むことによって、データブロックの具体的転送を実行するようプログラムされる。このとき、データブロックの転送が実行されると、CPUは典型的には、転送状態を問い合わせるため、DMAコントローラ内の1以上のレジスタをポール処理(poll)するようプログラムされる。
しかしながら、このようなDMAコントローラの利用は問題点を有する。CPUはデータブロックの転送を実際に実行する負担から解放されるが、転送状態を照会するためDMAコントローラ内のCPUポールレジスタを有することは、依然としてしばしば非効率であると考えられている。またコンピュータシステムの多くの実現形態では、DMAコントローラ内のレジスタをプログラムするようCPUにより実行されるライト処理と、DMAコントローラ内のレジスタから状態を照会するようCPUにより実行されるリード処理は、望ましいとされるものより多くの時間を要するかもしれない。
他の広く利用されている機構は、コンピュータシステム内の各種I/O装置がデータブロックの転送を自律的に実行できるように、バスマスタリング機能を各種I/O装置に実装するというものである。典型的には、このような転送は、CPUが転送パラメータを当該バスマスタリング装置内のレジスタに直接書き込むことにより行われるようプログラムされる。このとき、データブロックの転送が実行されると、CPUは、転送状態を照会するため、バスマスタリング装置内の1以上のレジスタをポール処理する。
しかしながら、バスマスタリング装置のそのような使用は問題点を有する。CPUはデータブロックの転送を実際に実行する負担から解放されるが、DMAコントローラ内のレジスタをCPUがプログラムするのに実行されるライト処理と、DMAコントローラ内のレジスタから状態を照会するのにCPUにより実行されるリード処理は、望ましいとされるものより多くの時間がかかるかもしれない。また、特にシステムメモリからデータブロックを読み出すためのバスマスタリング装置により実行されるリード処理は、望ましいとされるものより多くの時間がかかるかもしれない。
[詳細な説明]
以下の説明では、本発明の完全なる理解を提供するため多数の詳細が与えられる。しかしながら、これら具体的詳細は以降に請求されるように本発明を実現するのに必要とされるものではないということは、当業者に明らかであろう。
以降で請求される本発明は、コンピュータシステムの他の装置または他の類似の電子システム内の記憶領域におけるDMAコントローラのバーチャルレジスタを維持するためのサポートの実装に関する。以下の説明はコンピュータシステム内のDMAコントローラに着目しているが、以降に請求される本発明が、DMAコントローラや装置間のデータブロックの移動のための他の類似の専用論理を有する電子システムのサポートにおいて実現されるということは、当業者には理解されるであろう。
図1は、コンピュータシステムを用いた実施例のブロック図である。コンピュータシステム100は、少なくとも部分的に、CPU(Central Processing Unit)110、バス119、論理120、バス149、システムメモリ140、バス159及び装置150から構成される。CPU110、バス119、論理120、バス149及びシステムメモリ140は、システムメモリ140及び/またはコンピュータシステム100の他の装置の内部に格納される機械可読命令を実行可能なコンピュータシステム100の一形態のコアを構成する。しかしながら、当業者には容易に認識されるように、これはコンピュータシステム100の多数の可能なコアの形態の1つであり、コンピュータシステム100はさらに、図示されない装置及び他のバスから図示されない他のバス及び装置から構成されてもよい。
各種実施例において、CPU110は、カリフォルニア州サンタクララにあるインテルコーポレイションからの広く知られ、利用されている「x86」命令セットの少なくとも一部を実行可能なCPUを含む各種タイプのCPUの何れかとすることができる。また可能な各種実施例では、複数のCPU(図示せず)に対するサポートを提供するための追加的なバス及び/または装置と共に複数のCPUを設けることも可能である。論理120はバス119を介しCPU110に接続され、論理120がバス149を介しさらに接続されるシステムメモリ140とのアクセスのCPU110への提供及び制御を含むCPU110による命令の実行のサポートにおいて各種機能を実行する。論理120はまた、論理120がバス159を介し接続される装置150などのコンピュータシステム100を構成する他の装置へのアクセスを提供する。
バス119、149及び159との接続、及びアドレス、コマンド及びデータが転送されるトランザクションを可能にするシステムメモリ140と装置150のそれぞれとのアクセスをCPU110に与えることにより、論理120は当該バス間の「ブリッジ」と通常呼ばれるものとして機能する。ブリッジとして機能することにより、論理120はまた、バス149を介したトランザクションを実行するのに用いられるメモリコントローラ122と、バス159を介し他のトランザクションを実行するのに用いられるバスインタフェース127とをコンピュータシステム100に提供する。データブロックの一部の転送を実行する負担の一部からCPU110を解放するため、論理120はさらにDMAコントローラ130を提供する。
各種実施例では、システムメモリ140は、FPM(Fast Page Mode)、EDO(Extended Data Out)、SDR(Single Data Rate)またはDDR(Double Data Rate)の形態によるSDRAM(Synchronous Dynamic RAM)、またはRAMBUSTMインタフェースや他のインタフェースを用いたRAMなどを含む各種タイプのRAM(Random Access Memory)の何れかとすることが可能である。メモリコントローラ122及びバス149は、1以上のタイプのメモリ及び/またはメモリインタフェースのタイミング及び/またはプロトコル要求をサポートするよう構成される。
各種実施例では、コンピュータシステム100を構成するようなバス159及び/または他のバスは、EISA(Extended Industry Standard Achitecture)、MCA(Micro ChannelTM Architecture)、PCI(Peripheral Component Interconnect)、PCI−X、PCI Expressなどのコンピュータ構成の技術分野において「標準化された」周知の各種形態の何れかの特徴及び/または仕様に従うよう構成されてもよい。バスインタフェース127及び157は、バス159のタイミング及び/またはプロトコル要求をサポートするよう構成される。
一実施例では、CPU110は、システムメモリ140内のデータ格納位置146及び148の間のデータブロックの転送を実行するようCPU110にDMAコントローラ130をプログラムさせる命令シーケンスを実行する。CPU110は、以下に限定されるものではないが、データ格納位置146及び148の開始アドレス、転送状態がシステムメモリ140内に割当てられる状態格納位置144に設けられることを示す値、転送を実行させる1以上の制御ビットへの値などを含む転送を実行するための各種パラメータを指定する値により、パラメータレジスタ133の1以上を書き込む。このとき、DMAコントローラ130が転送を実行する。当該転送の実行中、CPU110は、DMAコントローラ130が転送が完了したことを示す値を状態格納位置144に書き込んだか判断するため、1回以上状態格納位置144を読み出すことが可能である。コンピュータシステム100などのコンピュータシステムの構成において、CPUとシステムメモリとの間の極めて低速の遅延パスを生成することが一般に実践されているということが与えられると、CPU110は、DMAコントローラ130内のレジスタから読み出すという従来技術によるアプローチより、はるかに迅速にシステムメモリ140内の状態格納位置144を読み出すことにより転送状態を繰り返しチェックすることが可能となる可能性がある。
他の実施例では、CPU110は、実行される転送の各種パラメータをシステムメモリ140内に割当てられた代替パラメータ格納位置143に書き込むことによって、システムメモリ140内のデータ格納位置146と148の間のデータブロックの転送を実行するようDMAコントローラ130をCPUにプログラムさせる命令シーケンスを実行する。このようなパラメータとして、以下に限定されるものではないが、データ格納位置146と148の開始アドレス、転送されるデータ量を示す値、転送状態が状態格納位置144に設けられることを示す値などがあげられる。CPU110はまた、代替パラメータ格納位置143の開始アドレスを指定する値と、転送を実行させるトリガーとしての1以上の制御ビットへの値によりパラメータレジスタ133の1以上を書き込みさせる。当該トリガーに応答して、DMAコントローラ130転送を実行する。転送実行中、CPU110は、DMAコントローラ130が転送の未完了を示す値を状態格納位置144に書き込んだか判断するため、1回以上状態格納位置144を読み出すことが可能である。
本実施例の一変形では、状態格納位置144は、代替パラメータ格納位置143の一部であるか、あるいは、代替パラメータ格納位置143のベースアドレスから所定のオフセットにあるシステムメモリ140内のアドレスに割当てられる。本実施例の他の変形では、DMAコントローラ130は、状態格納位置144のアドレスとは独立にプログラムされる(パラメータレジスタ133または代替パラメータ格納位置143の何れかを介し)。
本実施例のさらなる他の変形では、転送状態が装置150の装置ストレージ160内の代替状態格納位置164に書き込まれ、DMAコントローラ130が代替状態格納位置164のアドレスによりプログラムされる(パラメータレジスタ133または代替パラメータ格納位置143の何れかを介して)。代替状態格納位置164は、当業者には容易に理解されるように、装置150の性質に応じていくつかの可能な目的の何れかのため利用可能な装置150内のメモリバッファである装置ストレージ160内に割当てられた1以上のメモリ位置から構成される。転送状態の装置150の装置ストレージ160内の他の状態ストレージ位置164への書き込みの効果は、他のタスクを実行するための条件としてそのような状態を待機してもよく、状態が以降において装置150に転送される必要があるシステムメモリ140内の状態格納位置144に状態を書き込みしないことによって、望ましくない遅延が回避されうるということである。以降における状態格納位置144から代替状態格納位置164への状態の転送が、装置150が状態格納位置144を読み出すのに保持するバスマスタリング機能を装置150が使用することを要求した場合、上記効果はさらに増大されるかもしれない。当業者が理解するように、バス159などのバスを介したリード処理の実行は、ライト処理より完了するのに時間を要する可能性があり、一時的にバスをロックし得る。これは、まず転送状態などのデータを一部をバスを介しデータに対するリクエストがなされることを要求するリード処理と、次に要求されたデータが供給可能となるまで要求される待機期間による。バス159の構成に応じて、リード及びライト処理のオーダリングとコヒーレンシーのルールは、バス159が使用されていないか、あるいは、少なくとも装置150は、状態を受信するまでバス159を介し他の転送の少なくとも一部を実行しないことを要求するかもしれない。従ってリード処理の開始時における状況に応じて、システムメモリ140及び装置150と共に、バス149と159は、状態格納位置144から状態を読み出すリード処理に回答及び完了させることにより一時的に独占されてもよい。対照的に、DMAコントローラ130により状態が装置150に直接書き込まれる場合、コヒーレンシーを維持し、ライト処理がバスインタフェース127のライトバッファ128に与えられることを可能にし、その後、バス159がロック状態になる可能性を低くしながら可能であるときには、バス159を介し装置150に転送されるようオーダリングされるため、ライト処理に通常課される要求を緩和することが可能となる。
図2は、コンピュータシステムを用いた実施例の他のブロック図である。図2の番号付けされたアイテムは、図1の番号付けされたアイテムと一般に対応し、図1のコンピュータシステム100と同様に、コンピュータシステム200は少なくとも部分的に、CPU210、バス219、論理220、バス249、システムメモリ240、バス259及び装置250から構成される。コンピュータシステム100のケースと同様に、これはコンピュータシステム200の多数の可能な形態のコアの一例であり、コンピュータシステム200はまたさらに、図示されていない他のバス及び装置から構成されてもよい。論理220はバス219を介しCPU210に接続され、論理220が論理220内のメモリコントローラ222及びバス249を介しさらに接続されるシステムメモリ240へのアクセスをCPU210に提供し、CPU210を制御することを含むCPU210による命令の実行のサポートにおいて各種機能を実行する。論理220はまた、論理220がそれの内部のバスインタフェース227及びバス259を介し接続される装置250などのコンピュータシステム200を構成する他の装置とのアクセスを提供する。
一実施例では、CPU210は、システムメモリ240内のデータ格納位置246と装置250内のデータ格納位置266との間のデータブロックの転送を実行するようDMAコントローラ230をCPU210にプログラムさせる命令シーケンス(おそらく、システムメモリ240内に格納される)を実行する。CPU210は、実行する転送に関する各種パラメータをシステムメモリ240内に割当てられるパラメータ格納位置243内のメモリ位置に書き込む。そのようなパラメータには、以下に限定するものではないが、データ格納位置246と266の開始アドレス、転送されるデータ量を示す値、及び転送状態がシステムメモリ240内に割当てられる状態格納位置244に与えられることを示す値があげられる。またCPU210は、パラメータ格納位置243の開始アドレスを示す値と、転送を実行させるトリガーとしての1以上の制御ビットへの値により、装置250内のパラメータレジスタ233の1以上に書き込みさせる。転送実行中、CPU210は、DMAコントローラ230が、転送完了を示す値を状態格納位置244に書き込みしたか判断するため、1回以上状態格納位置244を読み出すことが可能である。
本実施例の一変形では、状態格納位置244は、パラメータ格納位置243の一部であるか、あるいは、パラメータ格納位置243のベースアドレスからの所定のオフセットにあるシステムメモリ240内のアドレスに割当される。本実施例の他の変形では、DMAコントローラ230は、状態格納位置244のアドレスにより独立にプログラムされる(パラメータレジスタ233またはパラメータ格納位置243の何れかの内部)。本実施例のさらなる他の変形では、転送状態は装置250の装置ストレージ260内の代替状態格納位置264に書き込まれ、DMAコントローラ230は、代替状態格納位置264のアドレスによりプログラムされ、これにより、所望の場合、装置250に転送状態がより迅速に与えることが可能となる。
他の実施例では、CPU210は、装置250の装置ストレージ260内に割当てられる代替パラメータ格納位置263に実行される転送の各種パラメータを書き込むことによって、データ格納位置246と266との間のデータブロックの転送を実行するようDMAコントローラ230をCPU210にプログラムさせる命令シーケンスを実行する。以前のように、このようなパラメータとして、以下に限定されるものではないが、データ格納位置246と266の開始アドレス、転送されるデータ量を示す値、及び転送状態が代替状態格納位置264に与えられることを示す値があげられる。CPU210はまた、代替パラメータ格納位置263の開始アドレスを指定する値と、転送を実行させるトリガーとしての1以上の制御ビットの値により、パラメータレジスタ233の1以上を書き込みさせる。その後、DMAコントローラ230は、当該トリガーに応答して転送を実行する。当該転送実行中、装置250またはCPU210の何れかは、DMAコントローラ230が、転送完了を示す値を状態格納位置264に書き込んだか判断するため、1回以上状態格納位置264を読み出すことができる。
図3は、データブロックの転送において用いられる装置間のやりとりの実施例のブロック図である。具体的には、図3は、制御装置310、DMAコントローラ330、及び送信元データ格納位置346から送信先データ格納位置348へのデータブロックの転送の実行においてストレージを提供する1以上の記憶装置及び/または装置のやりとりを示す。制御装置310は、制御装置310が接続されるDMAコントローラ330内のレジスタを制御装置310にプログラムさせることによって、データブロックの転送を実行させる命令312を実行可能なCPU(コンピュータシステムまたは他の電子システムの)、マイクロコントローラ、シーケンサなどとすることが可能である。アドレス可能スペース340は、制御装置310とDMAコントローラ330の両方にアクセス可能なアドレス位置のマップである。
一部の実施例では、アドレス可能スペース340は、制御装置310とDMAコントローラ330の両方が接続される信号システム記憶装置(図示せず)から全体的に構成されてもよい。このような実施例は、データ格納位置146と148と同様に、送信元データ格納位置346と送信先データ格納位置348の両方がシステムメモリ140などのシステムメモリ装置内にある図1の実施例と大きく類似したものとすることができる。他の実施例では、アドレス可能スペース340は、制御装置310とDMAコントローラ330の両方が接続される他の装置内の記憶装置及び/またはバッファの組み合わせから構成されるようにしてもよい。このような実施例は、データ格納位置246がシステムメモリ240内に割当てられ、データ格納位置266が装置250の装置ストレージ260内に割当されることと同様に、送信元データ格納位置346と送信先データ格納位置348が異なる装置内に割当される図2の実施例と大きく類似したものとすることができる。より正確には、例えば、送信元データ格納位置346はシステムメモリ内に配置され、送信先データ格納位置348は他の装置内のバッファ内に配置されてもよい。
制御装置310は、転送されるデータ量とパラメータ格納位置343への状態格納位置344のアドレスと共に、送信元データ格納位置346と送信先データ格納位置348の両方のベースアドレスを書き込むことによって、送信元データ格納位置346から送信先データ格納位置348へのデータブロックの転送の実行を準備させる。制御装置310はまた、データ転送を実行するようDMAコントローラ330をトリガーする1以上のビットと共に、パラメータ格納位置343のベースアドレスをDMAコントローラ330内のパラメータレジスタ333に書き込む。
当該トリガーに応答して、DMAコントローラ330は、送信元データ格納位置346と送信先データ格納位置348の両方のベースアドレス、転送されるデータ量、及び状態格納位置344のベースアドレスを取得するため、パラメータレジスタ333にプログラムされたベースアドレスにおいてパラメータ格納位置343にアクセスする。DMAコントローラ330は、送信元データ格納位置346から送信先データ格納位置348へのデータブロックの転送を実行し、当該転送の状態を状態格納位置344に書き込む。制御装置310は、DMAコントローラ330がデータ転送の完了を示す値を状態格納位置344に書き込んだか判断するため、状態格納位置344から転送状態を読み出す。
図4は、複数のデータブロックを転送するのに用いられる装置間のやりとりの実施例のブロック図である。具体的には、図4は、制御装置410、DMAコントローラ430及び送信元データ格納位置446aから送信先データ格納位置448aへのデータブロックの転送を実行し、その後、送信元データ格納位置446bから送信先データ格納位置448bへの他のデータブロックの転送を実行するのにストレージを提供する1以上の記憶装置及び/または装置のやりとりを示す。図4の番号付けされたアイテムは、一般に図3の番号付けされたアイテムと対応し、図3の制御装置310と同様に、制御装置410は、制御装置410が接続されるDMAコントローラ430内のレジスタをプログラムすることによりデータブロックの転送を実行させる命令412を実行可能なCPU(コンピュータシステムまたは他の電子システムの何れかの)、マイクロコントローラ、シーケンサなどとすることが可能である。アドレス可能スペース440は、制御装置410とDMAコントローラ430の両方にアクセス可能なアドレス位置のマップである。
一部の実施例では、アドレス可能スペース440は、制御装置410とDMAコントローラ430の両方が接続される単一のシステムメモリ装置(図示せず)から全体的に構成さされてもよい。他の実施例では、アドレス可能スペース440は、制御装置410とDMAコントローラ430が接続される他の装置内のバッファ及び/または記憶装置の組み合わせから構成されてもよい。例えば、送信元データ格納位置446aと送信先データ格納位置448bの両方がシステムメモリの内部に配置されてもよく、送信元データ格納位置446bと送信先データ格納位置448aの両方が、他の装置内のバッファ内に配置されてもよい。
制御装置410は、送信元データ格納位置446aと446b及び送信先データ格納位置448aと448bのベースアドレスを、転送される対応するデータ量と状態格納位置444aと444bの対応するパラメータ格納位置443aと443bへの対応するアドレスと共に書き込むことによって、データブロックの複数の転送の実行を準備させる。制御装置410はまた、データブロックの転送を開始するようDMAコントローラ430をトリガーするための1以上のビットと共に、パラメータ格納位置443aのベースアドレスをDMAコントローラ430内のパラメータレジスタ433に書き込む。
当該トリガーに応答して、DMAコントローラ430は、送信元データ格納位置446aと送信先データ格納位置448aの両方のベースアドレス、転送されるデータ量、及び状態格納位置444aのベースアドレスを取得するため、パラメータレジスタ433にプログラムされるベースアドレスにおいてパラメータ格納位置443aにアクセスする。DMAコントローラ430は、送信元データ格納位置446aから送信先データ格納位置448aへのデータブロックの転送を実行し、当該転送の状態を状態格納位置444aに書き込む。このとき、DMAコントローラ430は、送信元データ格納位置446bと送信先データ格納位置448bの両方のベースアドレス、転送されるデータ量及び状態格納位置444bのベースアドレスを取得するため、パラメータ格納位置443bにアクセスする。DMAコントローラ430は、その後、送信元データ格納位置446bから送信先データ格納位置448bへのデータブロックの転送を実行し、当該転送の状態を状態格納位置444bに書き込む。制御装置10は、DMAコントローラ430がデータ転送の完了を示す値を状態格納位置444aと444bに書き込んだか判断するため、状態格納位置444aと444bから転送状態を読み出す。
一実施例では、パラメータレジスタ433に書き込まれたパラメータ格納位置443aのベースアドレスは、DMAコントローラ430がチェーンの第1パラメータ格納位置のベースアドレスのみを要求するように、チェーンの所定のインターバル(DMAコントローラ430にプログラムまたは配線されるインターバルの長さ)で配置される1以上のパラメータ格納位置(パラメータ格納位置443aなど)のベースへのポインタとして機能し、DMAコントローラ430は、データブロックの転送のためのパラメータを有する最後のそのようなパラメータ格納位置に遭遇するまで、チェーンを繰り返すことができる。そのような実施例では、制御装置410はまた、当該チェーンのパラメータ格納位置の値を示す値をパラメータレジスタ433に書き込むようにしてもよい。しかしながら他の実施例では、各パラメータ格納位置は、パラメータ格納位置のチェーンにおける次のパラメータ格納位置のベースアドレスを提供し、これにより、パラメータ格納位置のチェーンにおける各パラメータ格納位置がアドレス可能スペース440内の所定のインターバルに配置される必要がなくなる。このような実施例では、当該チェーンの最後のパラメータ格納位置は、当該チェーンの最後のパラメータ格納位置に到達したことを示す値をベースアドレスの代わりに提供してもよい。
図5は、複数のデータブロックの転送に用いられる装置間のやりとりの実施例の他のブロック図である。具体的には、図5は、複数のデータブロック(簡単化のため、実際には図示されないデータブロック)の転送に用いられる1以上の記憶装置及び/またはストレージを提供する装置とDMAコントローラとのやりとりを示す。図5の番号付けされたアイテムは、図4の番号付けされたアイテムと一般には対応しているが、図4と同様に、アドレス可能スペース540は、制御装置(図示せず)とDMAコントローラ530の両方にアクセス可能なアドレス位置のマップである。
図4と同様に、複数のパラメータ格納位置(543a〜543d)がアドレス可能スペース540内に配置され、図4に関する詳細な説明と同様に、DMAコントローラ530は、送信元データ格納位置及び送信先データ格納位置のベースアドレスと共に、転送されるデータ量と各転送の状態を示す値を書き込む状態格納位置の対応するベースアドレスを取得するため、パラメータ格納位置543a〜543dのそれぞれにアクセスする。しかしながら、図4に関して説明された実施例とは異なり、図5は、同一位置、すなわち、状態格納位置544がDMAコントローラ530により各転送の状態が書き込まれる単一の共通の位置としてパラメータ格納位置543a〜543d内からポインタ指定される実施例を示す。このような単一の状態格納位置の利用は、制御装置がアドレス可能スペース540による1つのみの位置への繰り返しのアクセスにより複数の転送の状態を監視することを可能にする。このような実施例では、状態格納位置544にDMAコントローラ530により書き込まれる値は、どの転送が完了したか、及び/またはどの転送が現在行われているか制御装置が区別するのを可能にするある形式の識別値を追加的に含むものであってもよい。
図5はまた、1以上のデータブロックの転送の開始と転送チェーンに存在する転送の個数の計数の両方をトリガーするための方法として、最初と最後の両方のパラメータ格納位置のベースアドレスを供給するため、パラメータレジスタ533のしようすることを示す。前述のように、一部の実施例は、各パラメータ格納位置がアドレス可能スペース540内で配置されるベースアドレスの間の所定のインターバルのアドレススペースを利用し、他の実施例は、対応する複数の転送が実行されるように、パラメータ格納位置のチェーンの次のパラメータ格納位置のベースアドレスを提供する各パラメータ格納位置内のポインタを利用するようにしてもよい。
図6は、複数のデータブロックの転送に用いられる装置間のやりとりの実施例のさらなる他のブロック図である。具体的には、図6は、複数のデータブロック(簡単化のため、実際には図示されないデータブロック)の転送の実行において、1以上の記憶装置及び/またはストレージを提供する装置とDMAコントローラのやりとりを示す。図6の番号付けされたアイテムは、図5の番号付けされたアイテムに一般に対応し、図5と同様に、アドレス可能スペース640は、制御装置(図示せず)とDMAコントローラ630の両方にアクセス可能なアドレス位置のマップである。図5と同様に、複数のパラメータ格納位置(643a〜643c)がアドレス可能スペース640内で割当てされ、図5に関する詳細な説明と同様に、DMAコントローラ630は、送信元データ格納位置と送信先データ格納位置のベースアドレスと共に、転送されるデータ量と各転送の状態を示す値を書き込む状態格納位置の対応するベースアドレスを取得するため、パラメータ格納位置643a〜643cのそれぞれにアクセスする。しかしながら、図5に関して説明された実施例とは異なり、図6は、通常のインターバルにはなく、各パラメータ格納位置内に与えられる次のパラメータ格納位置に対するポインタを有するアドレス可能スペース640内に割当てられたパラメータ格納位置643a〜643cを示す。各転送の実行において、DMAコントローラ630は、代替パラメータ格納位置のベースアドレスを取得するためパラメータ格納位置643c内のポインタへのアクセスが、DMAコントローラ630によるデータブロックの転送の実行が終了される、データブロックの転送のためのパラメータを有するパラメータ格納位置がもはや存在しないことを示すポインタを提供するまで、次のパラメータ格納位置のベースアドレスを取得するため、次のパラメータ格納位置へのポインタにアクセスする。
図6はまた、パラメータ格納位置643aと643cに対応するデータ転送の状態を共通の状態格納位置(すなわち、状態格納位置644aとc)に提供し、パラメータ格納位置643bに対応するデータ転送の状態を異なる状態格納位置(すなわち、状態格納位置644b)に提供するための状態格納位置へのポインタの利用を示す。このような個別及び共通の状態格納位置の使用は、複数の転送が一部にDMAコントローラ630を有するコンピュータシステムによる1つの機能の実行に関連し、他の転送が同一のコンピュータシステム内の異なる機能の実行に関する場合に効果的であるとわかるかもしれない。より詳細には、状態格納位置644a及びcと644bは、異なる記憶装置及び/またはメモリバッファを有する装置内に割当されてもよい。例えば、状態格納位置644a及びcは、CPUが対応する転送の状態を効率的に監視することができるようにシステムメモリ内に割当てされ、状態格納位置644bは、他方の装置が対応する転送の状態を効率的に監視することができるように、他の装置により与えられるメモリバッファ内に割当されてもよい。
図7は、コンピュータシステムを用いた実施例の他のブロック図である。図7において番号付けされたアイテムは、図2の番号付けされたアイテムに一般に対応し、図2のコンピュータシステムと同様に、コンピュータシステム700は、少なくとも部分的に、CPU710、バス719、論理720、バス749、システムメモリ740、バス759及び装置750から構成される。コンピュータシステム200と同様に、これはコンピュータシステム200のコアの多数の可能な形態の一例であり、コンピュータシステム200はまたさらに、図示されない他のバス及び装置から構成されてもよいということが当業者に容易に理解されるであろう。論理720がバス719を介しCPU710に接続され、論理720が論理720内のメモリコントローラ722及びバス749を介し接続されるシステムメモリ740とのアクセスをCPU710に提供し、それを制御することを含むCPU710のサポートにおける各種機能を実行する。論理720はまた、論理720が論理720内のバスインタフェース727とバス759と共に、装置750内のバスインタフェース757を介し接続される装置750などのコンピュータシステム700を構成する他の装置へのアクセスを提供する。
CPU710は、システムメモリ740内に割当てられたデータ格納位置746から装置750の装置ストレージ760内に割当てられたデータ格納位置766へのデータブロックの転送を実行するようDMAコントローラ730をCPU710にプログラムさせるシステムメモリ740内に格納されている命令シーケンス712を実行する。CPU710は、システムメモリ740内に割当てられたDMA転送パラメータ格納位置743内のメモリ位置に実行される転送の各種パラメータを書き込む。このようなパラメータには、以下に限定するものではないが、データ格納位置746と766の開始アドレス、転送されるデータ量を示す値、及び転送状態が装置ストレージ760内に割当てられるDMA転送状態格納位置746に与えられることを示す値があげられる。CPU710はまた、DMA転送パラメータ格納位置743の開始アドレスを示す値と、当該転送を実行させるトリガーとしての1以上の制御ビットの値により、DMAコントローラ730内の1以上のパラメータレジスタ733を書き込みさせる。その後、DMAコントローラ730が当該転送を実行する。当該転送の実行中、CPU710及び/または装置750は、DMAコントローラ730が転送完了を示す値をDMA転送状態格納位置764に書き込んだか判断するため、1回以上DMA転送状態格納位置764を読み出すことが可能である。
CPU710はまた、装置750内の装置ストレージ760内に割当てされたデータ格納位置768からシステムメモリ740内に割当てされたデータ格納位置748へのデータブロックの転送を実行するよう装置750をCPU710にプログラムさせる命令シーケンス712の多くを実行する。CPU710は、実行される転送の各種パラメータを装置転送パラメータレジスタ768に書き込む。そのようなパラメータとして、以下に限定されるものではないが、データ格納位置768と748の開始アドレスや、転送されるデータ量を示す値があげられる。このとき、装置750が当該転送を実行する。
DMAコントローラ730を用いてシステムメモリ740から装置750にデータを転送し、装置750のマスタリング機能を用いて装置750からシステムメモリ740にデータを転送することは、DMAコントローラ730または装置750の何れかのみを用いることにより両方の転送を実行することにより可能になる場合より、データブロックの移動におけるより高い効率性を提供するかもしれない。このように、各転送は対応するバスインタフェース727と757が提供するライトバッファ728と758を利用して、バス759を介し1以上のライト処理として実行される。ライトバッファ728の利用は、DMAコントローラ730によるバス759を介した装置ストレージ760へのデータの書き込みが、ライトバッファ728から装置ストレージ760にバス759を介しデータの一部が伝搬されるに従い、DMAコントローラ730がシステムメモリ740から他のデータ部分を読み出すことが可能となるように、バッファリングまたは「ポスト処理」されることを可能にする。このため、装置750のバスマスタリング機能によるライトバッファ758の利用は、データの一部がバス759を介しライトバッファ758からシステムメモリ740に伝搬するに従い、装置750が装置ストレージ760から他のデータ部分を読み出すことができるように、バス759を介したシステムメモリ740への装置750によるデータの書き込みもまた「ポスト処理」されることを可能にする。
一部の実施例では、装置750のバスマスタリング機能とDMAコントローラ730の組み合わせの上記利用は、装置750に対応する装置ドライバにより与えられる命令シーケンスをCPU710が実行することによりもたらされるようにしてもよい。このような装置ドライバは、システムメモリ740からデータを読み出すのに装置750のバスマスタリング機能の利用を回避し、装置ストレージ760からデータを読み出すのにDMAコントローラ730の利用を回避することによって、装置750内の装置ストレージ760とシステムメモリ740との間のデータ転送の効率性を向上させるため、コンピュータ700の通常処理中にCPU710により実行されるオペレーティングシステムとやりとりするようにしてもよい。
図8は、一実施例のフローチャートである。810において、転送されるデータの送信元位置及び送信先位置のベースアドレス、転送されるデータ量、及び転送状態が書き込まれる状態位置のベースアドレスのすべてが、DMAレジスタまたは他の機構を介しDMAコントローラに提供される。DMAコントローラは、DMA転送の実行を開始するよう通知され、820でこれを行う。830において、転送が実行されると、CPUまたは他の装置は、DMAコントローラが状態を書き込む状態位置から転送状態を読み出す。840において、DMAコントローラが転送完了を示す値を状態が書き込まれる状態位置にまだ書き込んでいない場合、830において他の状態読み出しが行われる。そうでない場合、DMAコントローラが転送完了を示す値を状態が書き込まれる状態位置に書き込んだ場合には、エンドに到達する。
図9は、データブロックの転送の他の実施例のフローチャートである。910において、以下に限定されるものではないが、転送されるデータのデータ送信元位置及び送信先位置のベースアドレス、転送されるデータ量、及び転送状態が書き込まれる状態位置のベースアドレスを含む転送パラメータのすべてが、システムメモリ、他の記憶装置またはバッファなどのアドレス可能メモリを有する装置内のパラメータ位置に書き込みされる。920において、910において当該転送のパラメータが書き込まれたパラメータ位置のベースアドレスが、DMAレジスタまたは他の機構を介しDMAコントローラに与えられる。DMAコントローラは、転送の実行を開始するよう通知され、930においてこれを実行する。940において、転送が実行されると、CPUまたは他の装置は、DMAコントローラが状態を書き込むアドレス可能状態位置からDMA転送の状態を読み出す。950において、DMAコントローラがDMA転送の完了を示す値を状態が書き込みされる状態位置にまだ書き込んでいない場合、940において他の状態の書き込みが実行される。そうでない場合、DMAコントローラが転送完了を示す値を状態が書き込まれる状態位置に書き込んだ場合、エンドに到達する。
図10は、実施例のフローチャートである。1010において、データ送信元位置とデータ送信先位置のベースアドレス、データ量及び状態位置のベースアドレスなどのパラメータ群が、複数の転送のための複数のパラメータ位置に書き込みされ、複数の転送のそれぞれに対応する複数の転送位置のそれぞれが実行される。1020において、転送パラメータが書き込みされる複数のパラメータ位置の第1のベースアドレスが、DMAレジスタまたは他の機構を介しDMAコントローラに提供される。DMAコントローラは、DMA転送の実行を通知され、1030においてこれを行い、1030において実行されたDMA転送が完了すると、1040において、当該DMA転送の完了を示す状態が、当該転送に対応する状態位置に書き込みされる。750においてさらに実行されるべき他の転送のパラメータを有する他のパラメータ位置が表示されている場合、当該転送が1030において実行される。そうでない場合、さらに実行される転送に対応するパラメータ位置がもはや存在しない場合には、エンドに到達する。
複数の転送パラメータ位置が複数の転送を実行するサポートにおいて割当てられる上述の実施例のそれぞれにおいて、新たな転送に繰り返し再利用されるように、パラメータ位置がループとして利用される循環的または「FIFO的な」方法により転送パラメータ位置が利用される実施例の変形が存在するかもしれない。転送パラメータ位置がポインタを用いて、次の転送パラメータ位置が検出されるベースアドレスにDMAコントローラを指示する場合、当該ポインタは、そうでない場合には「最後の」転送パラメータ位置であったかもしれないもののポインタが、そうでない場合には「最初の」転送パラメータ位置であったものにポインタ指定するように利用されてもよい。転送パラメータ位置がポインタを利用せず、所定のインターバルで記憶装置(またはストレージ位置を提供する他の装置)のアドレス可能スペース内に位置することに依存する場合、DMAコントローラには、それが最初のものに「ループバック」できるように、転送パラメータ位置のチェーンにおける最後のものとなる転送パラメータ位置の表示が与えられる。
本発明が、好適な実施例に関して説明された。多数の代替、改良、変形及び使用が上記説明に基づき当業者に明らかであることは明白である。また、本発明が音声/映像娯楽装置、自動車のコントローラ装置、電子回路により制御される家電機器などのコンピュータシステム以外の電子装置のサポートにおいて実現可能であるということは、当業者には理解されるであろう。
図1は、コンピュータシステムを用いた実施例のブロック図である。 図2は、コンピュータシステムを用いた他の実施例の他のブロック図である。 図3は、データブロックの転送に用いられる装置間のやりとりの実施例のブロック図である。 図4は、複数のデータブロックの転送に用いられる装置間のやりとりの実施例のブロック図である。 図5は、複数のデータブロックの転送に用いられる装置間のやりとりの実施例の他のブロック図である。 図6は、複数のデータブロックの転送に用いられる装置間のやりとりの実施例のさらなる他のブロック図である。 図7は、コンピュータシステムを用いた他の実施例のさらなる他のブロック図である。 図8は、実施例のフローチャートである。 図9は、他の実施例のフローチャートである。 図10は、さらなる他の実施例のフローチャートである。

Claims (15)

  1. 送信元データ位置が配置され、転送対象となるデータブロックを有する第1記憶装置と、
    前記転送対象となるデータブロックに対する送信先データ位置が配置される第2記憶装置と、
    前記第1記憶装置と第2記憶装置の両方に接続され、機械可読命令を実行可能な制御装置と、
    前記制御装置及び前記第1記憶装置と第2記憶装置の両方に接続されるDMAコントローラと、
    から構成される装置であって、
    前記DMAコントローラは、送信元データ位置から送信先データ位置への前記データブロックの転送の状態を示す値を転送状態格納位置に書き込み、
    前記DMAコントローラは、前記転送状態格納位置のベースアドレスレジスタを有し、前記転送状態格納位置のベースアドレスレジスタには、前記制御装置によって、各転送についての前記転送状態格納位置のベースアドレスを指定する値が書き込まれ
    前記転送状態格納位置のベースアドレスは、各転送について異なり、ある転送における転送状態格納位置のベースアドレスは、システムメモリ内のアドレスであり、他の転送における転送状態格納位置のベースアドレスは別の装置のメモリ内のアドレスであることを特徴とする装置。
  2. 請求項1記載の装置であって、
    前記DMAコントローラは、前記制御装置が少なくとも前記送信元データ位置のベースアドレス、前記送信先データ位置のベースアドレス、及び前記転送対象となるデータブロックを構成するデータ量を書き込むパラメータレジスタを有することを特徴とする装置。
  3. 請求項1記載の装置であって、
    前記DMAコントローラは、前記DMAコントローラが前記データブロックの転送パラメータを取得するパラメータ位置のベースアドレスを指定する値を前記制御装置が書き込む少なくとも1つの転送パラメータ位置ベースアドレスレジスタを有することを特徴とする装置。
  4. 請求項3記載の装置であって、
    前記DMAコントローラが前記転送パラメータを取得するパラメータ位置は、少なくとも前記送信元データ位置のベースアドレス、前記送信先データ位置のベースアドレス、及び前記転送対象となるデータブロックを構成するデータ量を格納することを特徴とする装置。
  5. 請求項1記載の装置であって、
    前記データブロックが、第1転送において前記送信元位置から前記送信先位置に転送され、
    前記DMAコントローラは、前記DMAコントローラが転送時に前記第1転送のパラメータを取得する第1パラメータ位置のベースアドレスを指定する値を前記制御装置が書き込む転送パラメータ位置ベースアドレスレジスタを有することを特徴とする装置。
  6. 請求項5記載の装置であって、
    前記DMAコントローラが前記第1転送のパラメータを取得する第1パラメータ位置は、少なくとも前記送信元データ位置のベースアドレス、前記送信先データ位置のベースアドレス、及び前記第1転送において転送対象となるデータブロックを構成するデータ量を格納することを特徴とする装置。
  7. 請求項6記載の装置であって、
    前記DMAコントローラが前記第1転送のパラメータを取得する第1パラメータ位置はさらに、前記制御装置が前記第1転送の状態を示す値を書き込む第1転送状態格納位置のベースアドレスを格納することを特徴とする装置。
  8. 請求項6記載の装置であって、
    前記DMAコントローラが前記第1転送のパラメータを取得する第1パラメータ位置はさらに、前記DMAコントローラが第2転送のパラメータを取得する第2パラメータ位置のベースアドレスを格納することを特徴とする装置。
  9. 請求項8記載の装置であって、
    前記DMAコントローラが前記第2転送のパラメータを取得する第2パラメータ位置はさらに、前記制御装置が前記第2転送の状態を示す値を書き込む第2転送状態格納位置のベースアドレスを格納することを特徴とする装置。
  10. 第1転送状態格納位置のベースアドレスを含む、DMAコントローラにより実行される第1データブロックの転送のための第1パラメータ群を記憶装置内に配置された第1転送パラメータ位置にプロセッサが書き込むステップと、
    転送時に前記第1転送パラメータ位置のベースアドレスを前記DMAコントローラのレジスタに前記プロセッサが書き込むステップと、
    前記実行される第1データブロックの転送のパラメータを取得するため前記第1転送パラメータ位置にアクセスすることによって、前記第1データブロックの転送の実行を開始するよう、前記プロセッサが前記DMAコントローラをトリガーするステップと、
    前記DMAコントローラが前記第1データブロックの転送完了を示す値を前記第1転送状態格納位置に書き込んだか判断するため、前記プロセッサが前記第1転送状態格納位置にアクセスするステップと、
    から構成され、
    前記転送状態格納位置のベースアドレスは、各転送について異なり、ある転送における転送状態格納位置のベースアドレスは、システムメモリ内のアドレスであり、他の転送における転送状態格納位置のベースアドレスは別の装置のメモリ内のアドレスであることを特徴とする方法。
  11. 請求項10記載の方法であって、
    前記DMAコントローラをトリガーするステップはさらに、
    第1記憶装置内に配置され、前記第1データブロックが該第1データブロックの転送中に読み出される第1データ送信元位置のベースアドレスを前記第1転送パラメータ位置から取得するステップと、
    第2記憶装置内に配置され、前記第1データブロックが該第1データブロックの転送中に書き込まれる第1データ送信先位置のベースアドレスを前記第1転送パラメータ位置から取得するステップと、
    転送対象となる前記第1データブロックが構成されるデータ量を指定する値を前記第1転送パラメータ位置から取得するステップと、
    から構成されることを特徴とする方法。
  12. 請求項10記載の方法であって、さらに、
    第2データブロックの転送のための第2パラメータ群を有する第2転送パラメータ位置のベースアドレスを取得するため、前記プロセッサが前記第1転送パラメータ位置にアクセスするステップを有することを特徴とする方法。
  13. 電子装置内のプロセッサによる実行時、
    第1転送状態格納位置のベースアドレスを含む、DMAコントローラにより実行される第1データブロックの転送のための第1パラメータ群を記憶装置内に配置された第1転送パラメータ位置に書き込むステップと、
    転送時に前記第1転送パラメータ位置のベースアドレスを前記DMAコントローラのレジスタに書き込むステップと、
    前記実行される第1データブロックの転送のパラメータを取得するため前記第1転送パラメータ位置にアクセスすることによって、前記第1データブロックの転送の実行を開始するよう前記DMAコントローラをトリガーするステップと、
    前記DMAコントローラが前記第1データブロックの転送完了を示す値を前記第1転送状態格納位置に書き込んだか判断するため、前記第1転送状態格納位置にアクセスするステップと、
    を前記電子装置に実行させるコードから構成され、
    前記転送状態格納位置のベースアドレスは、各転送について異なり、ある転送における転送状態格納位置のベースアドレスは、システムメモリ内のアドレスであり、他の転送における転送状態格納位置のベースアドレスは別の装置のメモリ内のアドレスであることを特徴とする機械アクセス可能媒体。
  14. 請求項13記載の機械アクセス可能媒体であって、
    前記電子装置にさらに、
    第1記憶装置内に配置され、前記第1データブロックが該第1データブロックの転送中に読み出される第1データ送信元位置のベースアドレスを前記第1転送パラメータ位置から取得するステップと、
    第2記憶装置内に配置され、前記第1データブロックが該第1データブロックの転送中に書き込まれる第1データ送信先位置のベースアドレスを前記第1転送パラメータ位置から取得するステップと、
    転送対象となる前記第1データブロックが構成されるデータ量を指定する値を前記第1転送パラメータ位置から取得するステップと、
    を実行させることを特徴とする機械アクセス可能媒体。
  15. 請求項13記載の機械アクセス可能媒体であって、さらに、
    第2データブロックの転送のための第2パラメータ群を有する第2転送パラメータ位置のベースアドレスを取得するため、前記第1転送パラメータ位置にアクセスするステップを実行させることを特徴とする機械アクセス可能媒体。
JP2006515368A 2003-06-30 2004-06-23 リードアドレス可能バーチャルdmaコントロール及び状態レジスタ Expired - Fee Related JP4800207B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/610,660 US7120708B2 (en) 2003-06-30 2003-06-30 Readdressable virtual DMA control and status registers
US10/610,660 2003-06-30
PCT/US2004/020197 WO2005006201A1 (en) 2003-06-30 2004-06-23 Readdressable virtual dma control and status registers

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011134031A Division JP5275414B2 (ja) 2003-06-30 2011-06-16 リードアドレス可能バーチャルdmaコントロール及び状態レジスタ

Publications (2)

Publication Number Publication Date
JP2007520770A JP2007520770A (ja) 2007-07-26
JP4800207B2 true JP4800207B2 (ja) 2011-10-26

Family

ID=33541181

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006515368A Expired - Fee Related JP4800207B2 (ja) 2003-06-30 2004-06-23 リードアドレス可能バーチャルdmaコントロール及び状態レジスタ
JP2011134031A Expired - Fee Related JP5275414B2 (ja) 2003-06-30 2011-06-16 リードアドレス可能バーチャルdmaコントロール及び状態レジスタ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011134031A Expired - Fee Related JP5275414B2 (ja) 2003-06-30 2011-06-16 リードアドレス可能バーチャルdmaコントロール及び状態レジスタ

Country Status (9)

Country Link
US (1) US7120708B2 (ja)
EP (1) EP1639481B1 (ja)
JP (2) JP4800207B2 (ja)
KR (1) KR100868395B1 (ja)
CN (1) CN100421097C (ja)
AT (1) ATE379812T1 (ja)
DE (1) DE602004010399T2 (ja)
TW (1) TWI296762B (ja)
WO (1) WO2005006201A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI258077B (en) * 2004-05-11 2006-07-11 Winbond Electronics Corp Method of DMA and program DMA controller for card reader
US8200879B1 (en) 2004-06-29 2012-06-12 National Semiconductor Corporation Memory interface including an efficient variable-width bus
EP1617335A1 (fr) * 2004-07-12 2006-01-18 Stmicroelectronics SA Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
GB2433611A (en) * 2005-12-21 2007-06-27 Advanced Risc Mach Ltd DMA controller with virtual channels
US20080082715A1 (en) * 2006-09-29 2008-04-03 Honeywell International Inc. Data transfers over multiple data buses
KR100891508B1 (ko) * 2007-03-16 2009-04-06 삼성전자주식회사 가상 디엠에이를 포함하는 시스템
DE102007029833B4 (de) * 2007-06-28 2019-03-28 Texas Instruments Deutschland Gmbh Mikrocontroller mit Datenmodifikationsmodul und System umfassend ein Datenmodifikationsmodul
US7822885B2 (en) * 2007-10-16 2010-10-26 Applied Micro Circuits Corporation Channel-less multithreaded DMA controller
JP5268841B2 (ja) * 2009-09-11 2013-08-21 三菱電機株式会社 情報処理装置
JP5527512B2 (ja) * 2009-09-28 2014-06-18 ソニー株式会社 バスプロトコル変換装置及びバスプロトコル変換方法
US8495164B2 (en) * 2010-06-07 2013-07-23 Hitachi, Ltd. Data transfer device and data transfer method
TWI465905B (zh) 2010-09-22 2014-12-21 Toshiba Kk 記憶體系統、主機控制器、及直接記憶體存取之控制方法
US8959278B2 (en) * 2011-05-12 2015-02-17 Freescale Semiconductor, Inc. System and method for scalable movement and replication of data
DE102016211768A1 (de) * 2016-06-29 2018-01-04 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung und Betriebsverfahren hierfür
CN107643992B (zh) * 2017-09-27 2020-09-08 成都忆芯科技有限公司 PCIe控制器与使用PCIe控制器的环回数据通路
CN109739805B (zh) * 2018-12-27 2023-06-23 北京中星微电子有限公司 配置模块的参数的方法和配置模块的参数的装置
CN113032300A (zh) * 2021-03-23 2021-06-25 安谋科技(中国)有限公司 数据的传输控制方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04177445A (ja) * 1990-11-08 1992-06-24 Nec Corp ディスクリプタ制御方式
JPH04324561A (ja) * 1991-04-25 1992-11-13 Shikoku Nippon Denki Software Kk Dma情報のポーリング制御装置
EP0544083A3 (en) * 1991-11-26 1994-09-14 Ibm Interleaved risc-type parallel processor and processing methods
JPH0696007A (ja) * 1992-09-17 1994-04-08 Fujitsu Ltd Dma転送方式
US5828903A (en) * 1994-09-30 1998-10-27 Intel Corporation System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
US5687395A (en) * 1994-10-28 1997-11-11 Hewlett-Packard Company Main memory buffer for low cost / high performance input/output of data in a computer system
US5828901A (en) * 1995-12-21 1998-10-27 Cirrus Logic, Inc. Method and apparatus for placing multiple frames of data in a buffer in a direct memory access transfer
KR0160193B1 (ko) * 1995-12-30 1998-12-15 김광호 직접메모리접근 제어장치
US6049842A (en) * 1997-05-01 2000-04-11 International Business Machines Corporation Efficient data transfer mechanism for input/output devices
US6065071A (en) * 1998-03-26 2000-05-16 Nvidia Corporation Method and apparatus for trapping unimplemented operations in input/output devices
US6023738A (en) * 1998-03-30 2000-02-08 Nvidia Corporation Method and apparatus for accelerating the transfer of graphical images
US6134607A (en) * 1998-04-03 2000-10-17 Avid Technology, Inc. Method and apparatus for controlling data flow between devices connected by a memory
US6202106B1 (en) * 1998-09-09 2001-03-13 Xilinx, Inc. Method for providing specific knowledge of a structure of parameter blocks to an intelligent direct memory access controller
JP3206568B2 (ja) * 1998-10-28 2001-09-10 日本電気株式会社 Dma制御方法及び装置
US6314478B1 (en) * 1998-12-29 2001-11-06 Nec America, Inc. System for accessing a space appended to a circular queue after traversing an end of the queue and upon completion copying data back to the queue
GB2371641B (en) * 2001-01-27 2004-10-06 Mitel Semiconductor Ltd Direct memory access controller for circular buffers
US7287101B2 (en) * 2003-08-05 2007-10-23 Intel Corporation Direct memory access using memory descriptor list

Also Published As

Publication number Publication date
US7120708B2 (en) 2006-10-10
ATE379812T1 (de) 2007-12-15
EP1639481A1 (en) 2006-03-29
KR20060028705A (ko) 2006-03-31
US20040267979A1 (en) 2004-12-30
JP2011204269A (ja) 2011-10-13
WO2005006201A1 (en) 2005-01-20
TWI296762B (en) 2008-05-11
CN1813248A (zh) 2006-08-02
DE602004010399T2 (de) 2008-10-09
JP5275414B2 (ja) 2013-08-28
DE602004010399D1 (de) 2008-01-10
TW200508876A (en) 2005-03-01
KR100868395B1 (ko) 2008-11-11
EP1639481B1 (en) 2007-11-28
JP2007520770A (ja) 2007-07-26
CN100421097C (zh) 2008-09-24

Similar Documents

Publication Publication Date Title
JP5275414B2 (ja) リードアドレス可能バーチャルdmaコントロール及び状態レジスタ
US5577230A (en) Apparatus and method for computer processing using an enhanced Harvard architecture utilizing dual memory buses and the arbitration for data/instruction fetch
JPH04363746A (ja) Dma機能を有するマイクロコンピュータシステム
EP1431878A2 (en) Shared write buffer in a peripheral interface and method of operating
US7203781B2 (en) Bus architecture with primary bus and secondary or slave bus wherein transfer via DMA is in single transfer phase engagement of primary bus
JP2000020451A (ja) 情報処理装置および方法、並びに提供媒体
JP2000099452A (ja) Dma制御装置
JP2522412B2 (ja) プログラマブルコントロ―ラと入出力装置の間の通信方法
JP2002259326A (ja) Dmaコントローラ及びdma転送方法
JP2985496B2 (ja) Dma転送方式
JP3353368B2 (ja) バス中継装置
JPH03109661A (ja) データ処理装置
JP2001256169A (ja) データ転送制御システム及び装置
JP2002182901A (ja) コプロセッサデータアクセス制御装置、その方法およびその命令フォーマット
JPH0736806A (ja) Dma方式
JP2001290790A (ja) ディスク制御装置
JPH0981501A (ja) デジタル処理装置及びdmaコントローラ
JPH02207363A (ja) データ転送制御方式、デバイスコントローラ、およびメモリ・コントローラ
JP2007026365A (ja) メモリコントローラ
JPH0612363A (ja) メモリ制御装置およびマルチプロセッサシステム
JPH0375862A (ja) 主記憶装置
JPH03259491A (ja) メモリ制御装置
JP2003067190A (ja) プログラム転送制御装置
JPH0535655A (ja) Dma転送制御装置
JP2001014267A (ja) データ転送装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080812

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081112

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090701

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090714

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20091023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110616

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

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

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees