JP4887313B2 - 複雑な非線形データの転送制御システム - Google Patents
複雑な非線形データの転送制御システム Download PDFInfo
- Publication number
- JP4887313B2 JP4887313B2 JP2008034289A JP2008034289A JP4887313B2 JP 4887313 B2 JP4887313 B2 JP 4887313B2 JP 2008034289 A JP2008034289 A JP 2008034289A JP 2008034289 A JP2008034289 A JP 2008034289A JP 4887313 B2 JP4887313 B2 JP 4887313B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory access
- control data
- control
- direct memory
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 39
- 230000004044 response Effects 0.000 claims description 30
- 230000002093 peripheral effect Effects 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 11
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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
-
- 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
Description
・無効
・ベーシック
・自動要求 段落0054、0055
・ピンポン 段落0056
・メモリ・スキャッタ−ギャザ 段落0073
・周辺機器スキャッタ−ギャザ 段落0086
コントローラがDMAサイクルを完了したあと、それは、このサイクル・タイプを無効にセットする。これは、コントローラがDMAサイクルを繰り返すことを防止するためである。
このモードで、コントローラは、一次又は代替のいずれかのデータ構造を使用するように構成される。このチャネルがイネーブルされたあと、コントローラが要求を受信し、そのあとの、このDMAサイクルに対するフローは、次のようになる。
1.コントローラは、2R個の転送を実行する。もし残りの転送数がゼロであれば、フローは、工程3に続く。
2.コントローラがアービトレートする。
・もし優先度の高いチャネルがサービス要求すれば、コントローラは、そのチャネルにサービス提供する。
・もし周辺機器又はソフトウエアがコントローラに要求を発行すれば、これは、工程1に続く。
3.コントローラは、1つのhclkサイクルに対してdma_done[C]をHIGHにセットする。これは、このDMAサイクルが完了したことをホスト・プロセッサに示す。
コントローラがこのモードで動作するとき、これに要求されることは、単一の要求を受信して、このDMAサイクル全体を完了させることである。
1.コントローラは、チャネルC<x>に関する2R個の転送を実行する。もし残りの転送数がゼロであれば、フローは、工程3に続く。
2.コントローラは、アービトレートする。チャネルC<x>が最も高い優先度を有する場合、DMAサイクルは、工程1に続く。
3.コントローラは、1つのhclkサイクルに対してdma_done[C]をHIGHにセットする。これは、このDMAサイクルが完了したことをホスト・プロセッサに示す。
ピンポン・モードで、コントローラは、チャネル・データ構造の1つを使用してDMAサイクルを実行し、次に他方のチャネル・データ構造を使用してDAMサイクルを実行する。コントローラは、それが無効なチャネル制御データ構造を読むまで、あるいは、ホスト・プロセッサがこのチャネルをディセーブルするまで、一次から代替へ、更に一次へと切り替えを続ける。
タスクA
1.ホスト・プロセッサは、一次チャネル・データ構造をタスクA用に構成する。
2.ホスト・プロセッサは、代替チャネル・データ構造をタスクB用に構成する。これは、より高い優先度のチャネルがサービス要求しないかぎり、タスクAが完了したあとコントローラがタスクBに直ちに切り替えることをイネーブルする。
3.コントローラは、要求を受信して、4個のDMA転送を実行する。
4.コントローラは、アービトレートする。コントローラがこのチャネルに対する要求を受信したあと、もしチャネルが最も高い優先度を有していれば、フローが続く。
5.コントローラは、残る2個のDMA転送を実行する。
6.コントローラは、1つのhclkサイクルに対してdma_done[C]をHIGHにセットし、アービトレート・プロセスに入る。
7.コントローラは、4個のDMA転送を実行する。
8.コントローラは、アービトレートする。コントローラがこのチャネルに対する要求を受信したあと、もしチャネルが最も高い優先度を有していれば、フローが続く。
9.コントローラは、4個のDMA転送を実行する。
10.コントローラは、アービトレートする。コントローラがこのチャネルに対する要求を受信したあと、もしチャネルが最も高い優先度を有していれば、フローが続く。
11.コントローラは、残る4個のDMA転送を実行する。
12.コントローラは、1つのhclkサイクルに対してdma_done[C]をHIGHにセットし、アービトレート・プロセスに入る。
13.コントローラは、2個のDMA転送を実行する。
14.コントローラは、1つのhclkサイクルに対してdma_done[C]をHIGHにセットし、アービトレート・プロセスに入る。
15.コントローラは、4個のDMA転送を実行する。
16.コントローラは、アービトレートする。コントローラがこのチャネルに対する要求を受信したあと、もしチャネルが最も高い優先度を有していれば、フローが続く。
17.コントローラは、残るDMA転送を実行する。
18.コントローラは、1つのhclkサイクルに対してdma_done[C]をHIGHにセットし、アービトレート・プロセスに入る。
19.コントローラは、4個のDMA転送を実行する。
20.コントローラは、アービトレートする。コントローラがこのチャネルに対する要求を受信したあと、もしチャネルが最も高い優先度を有していれば、フローが続く。
21.コントローラは、残る3個のDMA転送を実行する。
22.コントローラは、1つのhclkサイクルに対してdma_done[C]をHIGHにセットし、アービトレート・プロセスに入る。
メモリ・スキャッタ−ギャザ・モードで、コントローラは、イニシャル要求を受信し、そのあと一次チャネル・データ構造を使用して4個のDMA転送を実行する。この転送が完了したあと、それは、代替チャネル制御データ構造を使用してDMAサイクルをスタートさせる。このサイクルが完了したあと、コントローラは、一次データ構造を使用して別の4個のDMA転送を実行する。コントローラは、次のいずれかが成立するまで一次から代替へ、更に一次へと切り替えを続ける。
・それが無効なチャネル制御データ構造を読む。
・ホスト・プロセッサが代替データ構造をベーシック・サイクル用に構成する。
初期化
1.ホスト・プロセッサは、cycle_ctrlをb100にセットすることによって、一次チャネル・データ構造をメモリ・スキャッタ−ギャザ・モードで動作するように構成する。チャネル・データ構造が4ワードを含むので、2Rは、常に4にセットされる。この例で、4つのタスクがあり、従ってNは、16にセットされる。
2.ホスト・プロセッサは、タスクA、B、CおよびDに関するチャネル・データ構造を保持するメモリ場所に情報を書き込む。
3.ホスト・プロセッサは、このチャネルをイネーブルする。
1.要求を受信したあと、コントローラは、4個のDMA転送を実行する。これらの転送は、タスクA用の代替チャネル・データ構造を書き込む。
2.コントローラは、このチャネルに対する自動要求を生成し、次にアービトレートする。
3.コントローラは、タスクAを実行する。このタスクを完了したあと、それは、このチャネル用の自動要求を生成し、次にアービトレートする。
4.コントローラは、4個のDMA転送を実行する。これらの転送は、タスクB用の代替チャネル・データ構造を書き込む。
5.コントローラは、このチャネルに対する自動要求を生成し、次にアービトレートする。
6.コントローラは、タスクBを実行する。このタスクを完了したあと、それは、このチャネル用の自動要求を生成し、次にアービトレートする。
7.コントローラは、4個のDMA転送を実行する。これらの転送は、タスクC用の代替チャネル・データ構造を書き込む。
8.コントローラは、このチャネルに対する自動要求を生成し、次にアービトレートする。
9.コントローラは、タスクCを実行する。このタスクを完了したあと、それは、このチャネル用の自動要求を生成し、次にアービトレートする。
10.コントローラは、4個のDMA転送を実行する。これらの転送は、タスクD用の代替チャネル・データ構造を書き込む。
11.コントローラは、一次チャネル制御データ構造のcycle_ctrlビットをb000にセットして、このデータ構造が今や無効であることを示す。
12.コントローラは、このチャネルに対する自動要求を生成し、次にアービトレートする。
13.コントローラは、ベーシック・サイクルを使用してタスクDを実行する。
14.コントローラは、1つのhclkサイクルに対してdma_done[C]をHIGHにセットして、アービトレート・プロセスに入る。
周辺機器スキャッタ−ギャザ・モードで、コントローラは、イニシャル要求を受信し、次に一次チャネル・データ構造を使用して4個のDMA転送を実行する。このサイクルが完了して、別の要求が受信されると、それは、代替チャネル制御データ構造を使用してDMAサイクルをスタートさせる。このサイクルが完了したあと、コントローラは、一次データ構造を使用して別の4個のDMA転送を実行する。コントローラは、次のいずれかが成立するまで一次から代替へ、更に一次へと切り替えを続ける。
・それが無効なチャネル制御データ構造を読む。
・ホスト・プロセッサが代替データ構造をベーシック・サイクル用に構成する。
より詳しくは、段落0127の制御データ構成を参照
初期化
1.ホスト・プロセッサは、cycle_ctrlをb110にセットすることによって、一次チャネル・データ構造を周辺機器スキャッタ−ギャザ・モードで動作するように構成する。1つのチャネル・データ構造が4ワードを含むので、2Rは、常に4にセットされる。この例で、4つのタスクがあり、従ってNは、16にセットされる。
2.ホスト・プロセッサは、タスクA、B、CおよびDに関するチャネル・データ構造を保持するメモリ場所に情報を書き込む。
3.ホスト・プロセッサは、チャネルをイネーブルする。
1.要求を受信したあと、コントローラは、4個のDMA転送を実行する。これらの転送は、タスクA用の代替チャネル・データ構造を書き込む。
2.コントローラは、アービトレート・プロセスに入る。
3.コントローラは、タスクAを実行する。このタスクを完了したあと、それは、このチャネル用の自動要求を生成し、次にアービトレートする。
4.コントローラは、4個のDMA転送を実行する。これらの転送は、タスクB用の代替チャネル・データ構造を書き込む。
5.コントローラは、アービトレート・プロセスに入る。
6.コントローラは、タスクBを実行する。タスクを完了させるために、周辺機器は、別の3つの要求を発行しなければならない。このタスクが完了したあと、それは、このチャネル用の自動要求を生成し、次にアービトレートする。
7.コントローラは、4個のDMA転送を実行する。これらの転送は、タスクC用の代替チャネル・データ構造を書き込む。
8.コントローラは、アービトレート・プロセスに入る。
9.コントローラは、タスクCを実行する。このタスクが完了したあと、それは、このチャネル用の自動要求を生成し、次にアービトレートする。
10.コントローラは、4個のDMA転送を実行する。これらの転送は、タスクD用の代替チャネル・データ構造を書き込む。
11.コントローラは、一次チャネル制御データ構造のcycle_ctrlビットをb000にセットして、このデータ構造が今や無効であることを示す。
12.コントローラは、アービトレート・プロセスに入る。
13.コントローラは、ベーシック・サイクルを使用してタスクDを実行する。
14.コントローラは、1つのhclkサイクルに対してdma_done[C]をHIGHにセットして、アービトレート・プロセスに入る。
もしコントローラがAHB−Liteマスタ・インタフェース上でERROR応答を検出すると、それは、
・ERRORに対応するチャネルをディセーブルする
・dma_errをHIGHにセットする
1.chnl_enable_setレジスタを読んで、ディセーブルされたチャネルのリストを生成する。
・コントローラが使用するように構成されるDMAチャネルの数
・1つのDMAチャネルが代替チャネル制御データを使用するように構成されたかどうか
チャネル制御データ構造を含めるためのシステム・メモリの領域を設けなければならない。このシステム・メモリは、次のようになっていなければならない。
・コントローラおよびホスト・プロセッサがアクセスできるように、システム・メモリの連続した領域を設けなければならない。
・チャネル制御データ構造の合計サイズの倍数となる整数値を取るベース・アドレスを有する。
注記
alt_ctrl_base_ptrレジスタが代替チャネル制御データのベース・アドレスを提供するので、これを計算する必要はない。
・発信元データ・エンド・ポインタ
・宛先データ・エンド・ポインタ 段落0124
・制御データ構成 段落0127
・アドレス計算 段落0141
src_data_end_ptrメモリ場所は、発信元データのエンド・アドレスへのポインタを含む。表5は、このメモリ場所に対するビット・アサインメントをリスト・アップする。
注記
コントローラは、このメモリ場所に書込みしない。
dst_data_end_ptrメモリ場所は、宛先データのエンド・アドレスへのポインタを含む。表6は、このメモリ場所に対するビット・アサインメントをリスト・アップする。
注記
コントローラは、このメモリ場所に書込みしない。
各DMA転送に対して、channel_cfgメモリ場所は、コントローラのための制御情報を提供する。図10は、このメモリ場所に対するビット・アサインメントを示す。
DMA転送の発信元アドレスを計算するために、コントローラは、src_incが指定するシフト量だけの左シフトをn_minus_1値に対して実行し、次に結果の値を発信元エンド・ポインタから差し引く。同様に、DMA転送の宛先アドレスを計算するために、それは、dst_incが指定するシフト量だけの左シフトをn_minus_1値に対して実行し、次に結果の値を宛先エンド・ポインタから差し引く。
* 発信元アドレス=src_data_end_ptr−n_minus_1
* 宛先アドレス=dst_data_end_ptr−n_minus_1
* 発信元アドレス=src_data_end_ptr−(n_minus_1<<1)
* 宛先アドレス=dst_data_end_ptr−(n_minus_1<<1)
* 発信元アドレス=src_data_end_ptr−(n_minus_1<<2)
* 宛先アドレス=dst_data_end_ptr−(n_minus_1<<2)
* 発信元アドレス=src_data_end_ptr
* 宛先アドレス=dst_data_end_ptr
10 ダイレクト・メモリ・アクセス・コントローラ(DMAコントローラ)
12 レジスタ
13 トグル・ビット
14,16 チャネル
20 周辺機器
30 メモリ
31 記憶場所
32 制御データ
40 プロセッサ
50 データ転送要求
60 ソフトウエア要求
70 データ転送要求
Claims (21)
- 複数のデータ発信元と複数のデータ宛先との間でデータ転送を制御するダイレクト・メモリ・アクセス・コントローラであって、前記複数のデータ発信元およびデータ宛先は、複数のチャネルを介して前記ダイレクト・メモリ・アクセス・コントローラと交信しており、前記ダイレクト・メモリ・アクセス・コントローラは、更にメモリおよびプロセッサと交信し、前記メモリは、前記複数のチャネルの各々および前記プロセッサに対して2組の制御データを記憶するように適応しており、
前記ダイレクト・メモリ・アクセス・コントローラは、前記複数のチャネルの1つ又は前記プロセッサから受信するデータ転送要求に応答して、前記メモリに記憶された前記対応する制御データの1組にアクセスし、前記ダイレクト・メモリ・アクセスは、前記アクセスされた制御データに依存して、要求される前記データ転送の少なくとも一部を実行し、
前記ダイレクト・メモリ・アクセス・コントローラは、前記複数のチャネルの各々およびプロセッサについて1つのインジケータ記憶を含み、前記インジケータ記憶は、前記2組の制御データのどちらにアクセスすべきかを指すインジケータ・ビットを含み、前記ダイレクト・メモリ・アクセス・コントローラは、前記1組の制御データによって制御される前記データ転送の少なくとも一部の完了に続いて、前記インジケータ・ビットをトグルさせるように適応した、ダイレクト・メモリ・アクセス・コントローラ。 - 請求項1記載のダイレクト・メモリ・アクセス・コントローラであって、前記ダイレクト・メモリ・アクセス・コントローラは、前記1組の制御データによって制御される前記データ転送の一部の完了に続いて、前記2組の制御データの他方にアクセスして前記データ転送の別の一部の転送を制御するように適応した前記ダイレクト・メモリ・アクセス・コントローラ。
- 請求項1記載のダイレクト・メモリ・アクセス・コントローラであって、前記ダイレクト・メモリ・アクセス・コントローラは、前記1組の制御データに依存して前記データ転送のすべてを実行し、また同じチャネル又はプロセッサからの後続のデータ転送要求に応答して前記2組の制御データの他方にアクセスするように適応した前記ダイレクト・メモリ・アクセス・コントローラ。
- 請求項1記載のダイレクト・メモリ・アクセス・コントローラであって、前記ダイレクト・メモリ・アクセス・コントローラは、1つのレジスタを含み、前記レジスタは、前記制御データの記憶場所に関するベース・アドレスを記憶するように適応しており、それによって前記ベース・アドレスに依存して制御データの各組にアクセスできる前記ダイレクト・メモリ・アクセス・コントローラ。
- 請求項1記載のダイレクト・メモリ・アクセス・コントローラであって、前記制御データは、前記データの発信元を指す発信元ポインタ、前記データの宛先を指す宛先ポインタおよび前記データ転送のタイプを示すタイプ・データを含む前記ダイレクト・メモリ・アクセス・コントローラ。
- 請求項3記載のダイレクト・メモリ・アクセス・コントローラであって、前記ダイレクト・メモリ・アクセス・コントローラは、制御データの前記1組によって制御されるデータ転送の完了に応答して、制御データの前記1組を更新するように要求するインタラプトを前記プロセッサに対して発行し、また前記後続のデータ転送要求に応答して、制御データの前記他方の組にアクセスし、また制御データの前記他の組によって制御される別のデータ転送を実行し、また前記別のデータ転送の完了に続いて、制御データの前記他の組を更新するように要求するインタラプトを前記プロセッサに対して発行し、また同じチャネル又はプロセッサからの別のデータ転送要求に応答して、制御データの前記1組に、もしそれが更新されていればアクセスし、制御データの前記1組の制御下で前記別のデータ転送を開始し、またもし制御データの前記1組が更新されていないことが検出されれば、前記別のデータ転送を保留させる前記ダイレクト・メモリ・アクセス・コントローラ。
- 請求項6記載のダイレクト・メモリ・アクセス・コントローラであって、前記ダイレクト・メモリ・アクセス・コントローラは、制御データの前記1組によって制御されるデータ転送の完了に応答して、制御データの前記1組を無効としてマークし、更に無効とマークされた制御データの前記1組を更新し、次に有効とマークするように要求するインタラプトを前記プロセッサに対して発行し、また前記別のデータ転送の完了に続いて、制御データの前記他方の組を無効としてマークし、制御データの前記他方の組を更新して有効とマークするように要求するインタラプトを前記プロセッサに対して発行し、それが有効又は無効のいずれにマークされるかに依存して、制御データの前記1組が更新されたかどうかを検出する前記ダイレクト・メモリ・アクセス・コントローラ。
- 請求項2記載のダイレクト・メモリ・アクセス・コントローラであって、制御データの前記1組によって制御される前記データ転送の前記部分には、制御データの前記他方の組の上書きが含まれ、前記データ転送の前記別の部分は、制御データの前記更新された他方の組によって制御され、それによって、前記ダイレクト・メモリ・アクセス・コントローラは、プロセッサ介入を要求することなく、更新された制御データを使用してデータ転送シーケンスを実行するように適応した前記ダイレクト・メモリ・アクセス・コントローラ。
- 請求項8記載のダイレクト・メモリ・アクセス・コントローラであって、制御データの前記更新された他方の組によって制御される前記データ転送の前記別の部分の1つは、前記1組の制御データの上書きを含み、それによって、前記ダイレクト・メモリ・アクセス・コントローラは、プロセッサ介入なしに、上限のない複数のデータ転送を実行するように適応した前記ダイレクト・メモリ・アクセス・コントローラ。
- 請求項7記載のダイレクト・メモリ・アクセス・コントローラであって、前記ダイレクト・メモリ・アクセス・コントローラは、前記プロセッサが前記チャネルをディセーブルするか、前記データ転送が完了するまで、制御データの前記1組および制御データの前記他方の組によって制御される後続のデータ転送を連続して実行するように適応した前記ダイレクト・メモリ・アクセス・コントローラ。
- 請求項8記載のダイレクト・メモリ・アクセス・コントローラであって、前記ダイレクト・メモリ・アクセス・コントローラは、別のデータ要求に応答して、制御データの前記1組にアクセスし、制御データの前記1組の制御下で別のデータ転送の一部を実行し、前記別のデータ転送の前記部分は、制御データの前記他方の組の上書きを含み、前記ダイレクト・メモリ・アクセス・コントローラは、制御データの前記1組によって制御される前記別のデータ転送の前記部分の完了に応答して、制御データの前記更新された他方の組にアクセスし、また前記更新された制御データの制御下で、前記別のデータ転送の別の一部を実行する前記ダイレクト・メモリ・アクセス・コントローラ。
- 複数のデータ発信元/宛先、メモリ、プロセッサおよび前記データ発信元/宛先と前記メモリとの間でデータ転送を制御する請求項1に記載のダイレクト・メモリ・アクセス・コントローラを含むデータ処理装置であって、前記データ発信元/宛先は、前記複数のチャネルを介して前記ダイレクト・メモリ・アクセス・コントローラと交信し、前記メモリは、前記複数のチャネルの各々およびプロセッサに対応して制御データの前記2つの組を記憶するように適応したデータ処理装置。
- 請求項12記載のデータ処理装置であって、前記複数のデータ発信元/宛先が周辺機器を含む前記データ処理装置。
- 複数のデータ発信元と複数のデータ宛先との間でデータ転送を制御するダイレクト・メモリ・アクセス制御方法であって、前記複数のデータ発信元および複数のデータ宛先は、複数のチャネルを介して前記ダイレクト・メモリ・アクセス・コントローラと交信しており、前記ダイレクト・メモリ・アクセス・コントローラは、更にメモリおよびプロセッサと交信し、前記メモリは、前記複数のチャネルの各々および前記プロセッサに対して2組の制御データを記憶するように適応しており、
前記ダイレクト・メモリ・アクセス制御方法は、
前記複数のチャネルの1つ又は前記プロセッサからデータ転送要求を受信する工程と、
前記データ転送要求に応答して、前記対応するチャネル又はプロセッサに関する前記メモリに記憶された前記制御データの1つの組にアクセスする工程と、
前記アクセスされた制御データの制御下で、前記データ転送の少なくとも一部を実行する工程と、
を含み、
前記ダイレクト・メモリ・アクセス・コントローラは、前記複数のチャネルの各々およびプロセッサについて1つのインジケータ記憶を含み、前記インジケータ記憶は、前記複数のチャネルの各々およびプロセッサに対して前記2組の制御データのどちらにアクセスすべきかを指示するインジケータ・ビットを含み、前記アクセス工程においてアクセスされる制御データの前記1組は、前記インジケータ・ビットの値に依存した、ダイレクト・メモリ・アクセス制御方法。 - 請求項14記載のダイレクト・メモリ・アクセス制御方法であって、更に、
制御データの前記1組によって制御される前記データ転送の前記部分の完了に続いて、前記2組の前記制御データの他方にアクセスして、前記データ転送の別の部分を制御する工程と、
前記別の部分のデータ転送を実行する工程と、
を含む前記ダイレクト・メモリ・アクセス制御方法。 - 請求項14記載のダイレクト・メモリ・アクセス制御方法であって、更に、
前記複数のチャネルの前記1つ又はプロセッサからの後続のデータ転送要求に応答して、前記2組の制御データの前記他方にアクセスする工程と、
前記他方の制御データの制御下で、前記後続のデータ転送を実行する工程と、
を含む前記ダイレクト・メモリ・アクセス制御方法。 - 請求項14記載のダイレクト・メモリ・アクセス制御方法であって、制御データの前記1組によって制御されるデータ転送の完了に続いて、
前記1組の制御データを無効としてマークする工程と、
前記プロセッサに対して、制御データの前記1組を更新して有効としてマークするように要求するインタラプトを発行する工程と、
更に別のデータ転送を実行するようにとの要求の受信に応答して、
制御データの前記他方の組にアクセスする工程と、
制御データの前記他方の組によって制御される前記別のデータ転送を実行する工程と、
前記別のデータ転送の完了に続いて、前記他方の制御データを無効としてマークする工程と、
前記プロセッサに対して、制御データの前記他方の組を更新して有効としてマークするように要求するインタラプトを発行する工程と、
更に別のデータ転送を実行するようにとの要求の受信に応答して、
制御データの前記1組にアクセスして、制御データの前記1組が有効としてマークされていることを検出すると、それに応答して、
制御データの前記1組によって制御される前記更に別のデータ転送を実行する工程、
の前記更なる工程を含む前記ダイレクト・メモリ・アクセス制御方法。 - 請求項15記載のダイレクト・メモリ・アクセス制御方法であって、制御データの前記1組によって制御される前記データ転送の前記部分は、制御データの前記他方の組を上書きする工程を含み、前記方法は、制御データの前記1組によって制御される前記データ転送の完了に続いて、
制御データの前記他方の組にアクセスして、前記データ転送の別の部分を制御する工程と、
制御データの前記上書きされた他方の組の制御下で、前記データ転送の前記別の部分を実行する工程、
の前記更なる工程を含む前記ダイレクト・メモリ・アクセス制御方法。 - 請求項18記載のダイレクト・メモリ・アクセス制御方法であって、プロセッサからチャネル・ディセーブル信号を受信するか、あるいは、前記データ転送が完了するまで、前記方法の前記工程の実行を繰り返し含む前記ダイレクト・メモリ・アクセス制御方法。
- 請求項19記載のダイレクト・メモリ・アクセス制御方法であって、制御データの前記更新された他方の組の制御下で前記データ転送の前記更なる部分を実行する前記工程の反復されるシーケンスにおける前記工程の1つは、制御データの前記1組を上書きする工程を含む前記ダイレクト・メモリ・アクセス制御方法。
- 請求項18記載のダイレクト・メモリ・アクセス制御方法であって、前記方法は、
別のデータ要求に応答して、
制御データの前記1組にアクセスする工程と、
制御データの前記1組の制御下で別のデータ転送の一部を実行する工程であって、前記更なるデータ転送の前記部分が制御データの前記他方の組を上書きする工程を含む前記工程と、
制御データの前記更新された他方の組にアクセスする工程と、
前記更新された制御データの制御下で前記別のデータ転送の別の部分を実行する工程、
の更なる工程を含む前記ダイレクト・メモリ・アクセス制御方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/707,275 US7873757B2 (en) | 2007-02-16 | 2007-02-16 | Controlling complex non-linear data transfers |
US11/707,275 | 2007-02-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008204456A JP2008204456A (ja) | 2008-09-04 |
JP4887313B2 true JP4887313B2 (ja) | 2012-02-29 |
Family
ID=39204452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008034289A Active JP4887313B2 (ja) | 2007-02-16 | 2008-02-15 | 複雑な非線形データの転送制御システム |
Country Status (4)
Country | Link |
---|---|
US (2) | US7873757B2 (ja) |
JP (1) | JP4887313B2 (ja) |
CN (1) | CN101271437B (ja) |
GB (1) | GB2446701B (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009151487A (ja) * | 2007-12-19 | 2009-07-09 | Panasonic Corp | Dma転送制御装置及びデータ転送装置 |
US9063561B2 (en) * | 2009-05-06 | 2015-06-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Direct memory access for loopback transfers in a media controller architecture |
US8516264B2 (en) * | 2009-10-09 | 2013-08-20 | Lsi Corporation | Interlocking plain text passwords to data encryption keys |
US8555141B2 (en) * | 2009-06-04 | 2013-10-08 | Lsi Corporation | Flash memory organization |
US8245112B2 (en) | 2009-06-04 | 2012-08-14 | Lsi Corporation | Flash memory organization |
US8321639B2 (en) * | 2009-12-30 | 2012-11-27 | Lsi Corporation | Command tracking for direct access block storage devices |
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US20100306451A1 (en) * | 2009-06-01 | 2010-12-02 | Joshua Johnson | Architecture for nand flash constraint enforcement |
US8166258B2 (en) * | 2009-07-24 | 2012-04-24 | Lsi Corporation | Skip operations for solid state disks |
GB2495959A (en) | 2011-10-26 | 2013-05-01 | Imagination Tech Ltd | Multi-threaded memory access processor |
CN104123252A (zh) * | 2013-04-26 | 2014-10-29 | 韩国科亚电子股份有限公司 | 多通道直接存储器存取控制器及其控制方法 |
US9558528B2 (en) * | 2015-03-25 | 2017-01-31 | Xilinx, Inc. | Adaptive video direct memory access module |
US10346419B1 (en) * | 2015-08-11 | 2019-07-09 | Workday, Inc. | On-the-fly structure change data conversion |
US10503566B2 (en) * | 2018-04-16 | 2019-12-10 | Chicago Mercantile Exchange Inc. | Conservation of electronic communications resources and computing resources via selective processing of substantially continuously updated data |
CN108454258B (zh) * | 2018-05-09 | 2023-06-30 | 北京印刷学院 | 一种配页检测方法 |
FR3094507A1 (fr) * | 2019-03-29 | 2020-10-02 | Stmicroelectronics (Grenoble 2) Sas | Accès direct en mémoire |
CN110096461A (zh) * | 2019-04-16 | 2019-08-06 | 中国科学院国家空间科学中心 | 一种基于usb3.0辅助协议的实时高速数据传输方法及系统 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6450154A (en) * | 1987-08-20 | 1989-02-27 | Fujitsu Ltd | Dma control system |
JPH01302457A (ja) | 1988-05-30 | 1989-12-06 | Nec Corp | データ転送方式 |
US5121390A (en) * | 1990-03-15 | 1992-06-09 | International Business Machines Corporation | Integrated data link controller with synchronous link interface and asynchronous host processor interface |
US5390299A (en) * | 1991-12-27 | 1995-02-14 | Digital Equipment Corporation | System for using three different methods to report buffer memory occupancy information regarding fullness-related and/or packet discard-related information |
JPH05189357A (ja) * | 1992-01-17 | 1993-07-30 | Hitachi Ltd | デ−タチェイニング制御方法および装置 |
US5613162A (en) * | 1995-01-04 | 1997-03-18 | Ast Research, Inc. | Method and apparatus for performing efficient direct memory access data transfers |
JPH08202648A (ja) | 1995-01-24 | 1996-08-09 | Casio Comput Co Ltd | ダイレクトメモリアクセス転送方式及び方法 |
US6128728A (en) * | 1997-08-01 | 2000-10-03 | Micron Technology, Inc. | Virtual shadow registers and virtual register windows |
US6898646B1 (en) | 2000-05-03 | 2005-05-24 | Hewlett-Packard Development Company, L.P. | Highly concurrent DMA controller with programmable DMA channels |
US20020144027A1 (en) * | 2001-03-27 | 2002-10-03 | Schmisseur Mark A. | Multi-use data access descriptor |
JP2004118300A (ja) * | 2002-09-24 | 2004-04-15 | Rohm Co Ltd | Dmaコントローラ |
JP4220845B2 (ja) | 2003-07-01 | 2009-02-04 | 三菱重工業株式会社 | 原子炉の炉内構造 |
JP2005157717A (ja) * | 2003-11-26 | 2005-06-16 | Nec Micro Systems Ltd | データ転送方法及びその装置 |
JP2006268753A (ja) | 2005-03-25 | 2006-10-05 | Fujitsu Ltd | Dma回路及びコンピュータシステム |
US7660916B2 (en) * | 2005-06-16 | 2010-02-09 | Agere Systems Inc. | Emulation of independent active DMA channels with a single DMA capable bus master hardware and firmware |
DE602005015632D1 (de) * | 2005-06-30 | 2009-09-03 | Freescale Semiconductor Inc | Einrichtung und verfahren zur steuerung mehrerer dma-tasks |
GB2433611A (en) | 2005-12-21 | 2007-06-27 | Advanced Risc Mach Ltd | DMA controller with virtual channels |
EP1801700B1 (en) * | 2005-12-23 | 2013-06-26 | Texas Instruments Inc. | Method and systems to restrict usage of a DMA channel |
-
2007
- 2007-02-16 US US11/707,275 patent/US7873757B2/en active Active
-
2008
- 2008-02-07 GB GB0802329A patent/GB2446701B/en active Active
- 2008-02-15 CN CN200810100342.5A patent/CN101271437B/zh active Active
- 2008-02-15 JP JP2008034289A patent/JP4887313B2/ja active Active
-
2010
- 2010-08-24 US US12/805,913 patent/US8112560B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8112560B2 (en) | 2012-02-07 |
CN101271437A (zh) | 2008-09-24 |
US7873757B2 (en) | 2011-01-18 |
GB0802329D0 (en) | 2008-03-12 |
GB2446701B (en) | 2011-04-27 |
GB2446701A (en) | 2008-08-20 |
CN101271437B (zh) | 2016-01-13 |
JP2008204456A (ja) | 2008-09-04 |
US20080201494A1 (en) | 2008-08-21 |
US20100325317A1 (en) | 2010-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4887313B2 (ja) | 複雑な非線形データの転送制御システム | |
US5644784A (en) | Linear list based DMA control structure | |
JP3433386B2 (ja) | 入出力記憶装置への直接メモリアクセスを行う装置及び方法 | |
JP5185289B2 (ja) | 内容終了型dma | |
US9442873B2 (en) | Direct memory access controller | |
US10540096B2 (en) | Method and design for dynamic management of descriptors for SGL operation | |
US10108565B2 (en) | Method for on-demand fetching of SGL pointers based buffer, traffic and command requirements | |
EP1103889B1 (en) | Flexible general-purpose input/output system | |
WO2006012196A2 (en) | An apparatus and method for high performance volatile disk drive memory access using an integrated dma engine | |
US8190794B2 (en) | Control function for memory based buffers | |
JP4219106B2 (ja) | 動的優先順位外部トランザクション・システム | |
US6728797B2 (en) | DMA controller | |
US20080126600A1 (en) | Direct memory access device and methods | |
JPS6375955A (ja) | プログラムモ−ド・アクセス制御方式 | |
US20060149940A1 (en) | Implementation to save and restore processor registers on a context switch | |
US6230215B1 (en) | On-demand transfer engine | |
US7096307B2 (en) | Shared write buffer in a peripheral interface and method of operating | |
US10789001B1 (en) | Posted operation data control | |
JPH11232213A (ja) | 入出力装置におけるデータ転送方式 | |
JP4363431B2 (ja) | データ転送方式 | |
JP2001056793A (ja) | 情報処理装置 | |
JPH02173846A (ja) | 循環バツフア制御装置及び制御方法 | |
GB2624385A (en) | Apparatus comprising interrupt tracking circuitry | |
JPH04195563A (ja) | メモリシステムの制御装置 | |
KR19980016507A (ko) | 입출력프로세서의 고성능 디엠에이(dma) 구동 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100331 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110802 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111102 |
|
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: 20111118 |
|
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: 20111212 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141216 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4887313 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |