JPH06266649A - 複数のデータチャネルを介してデータを転送する方法及びその回路アーキテクチャ - Google Patents
複数のデータチャネルを介してデータを転送する方法及びその回路アーキテクチャInfo
- Publication number
- JPH06266649A JPH06266649A JP35881392A JP35881392A JPH06266649A JP H06266649 A JPH06266649 A JP H06266649A JP 35881392 A JP35881392 A JP 35881392A JP 35881392 A JP35881392 A JP 35881392A JP H06266649 A JPH06266649 A JP H06266649A
- Authority
- JP
- Japan
- Prior art keywords
- channel
- data
- port memory
- dual port
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
-
- 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)
- Bus Control (AREA)
- Time-Division Multiplex Systems (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 チャネルごとにデータ転送を複数のデータス
ライスのシーケンスに分割し、スライスごとにインタリ
ーブする。 【構成】 複数のインタリーブするDMAチャネルの回
路アーキテクチャがデュアルポートメモリ、チャネルシ
ーケンサ及びチャネルインタリーブ制御部を具備する。
デュアルポートメモリは、チャネルを介して転送すべき
データのスライスを記憶する。チャネルシーケンサは、
デュアルポートメモリにおけるデータスライスのチャネ
ル順序付けを維持する。チャネルインタリーブ制御装置
は、チャネルインタリーブサイズ、現在データ転送カウ
ント及び合計転送カウントを監視することにより、チヤ
ネルにそのデータ転送をインタリーブさせる。第1のチ
ャネルがそのチャネルインタリーブサイズに達したと
き、又は、第1のチャネルが要求された合計転送カウン
トを転送し終ったときに、第2のチャネルは第1のチャ
ネルと同一の媒体を介してデータを転送することが許さ
れる。
ライスのシーケンスに分割し、スライスごとにインタリ
ーブする。 【構成】 複数のインタリーブするDMAチャネルの回
路アーキテクチャがデュアルポートメモリ、チャネルシ
ーケンサ及びチャネルインタリーブ制御部を具備する。
デュアルポートメモリは、チャネルを介して転送すべき
データのスライスを記憶する。チャネルシーケンサは、
デュアルポートメモリにおけるデータスライスのチャネ
ル順序付けを維持する。チャネルインタリーブ制御装置
は、チャネルインタリーブサイズ、現在データ転送カウ
ント及び合計転送カウントを監視することにより、チヤ
ネルにそのデータ転送をインタリーブさせる。第1のチ
ャネルがそのチャネルインタリーブサイズに達したと
き、又は、第1のチャネルが要求された合計転送カウン
トを転送し終ったときに、第2のチャネルは第1のチャ
ネルと同一の媒体を介してデータを転送することが許さ
れる。
Description
【0001】
【産業上の利用分野】本発明はコンピュータシステムに
おけるデータ転送動作に関し、特に、コンピュータシス
テムにおける直接メモリアクセス動作に関する。
おけるデータ転送動作に関し、特に、コンピュータシス
テムにおける直接メモリアクセス動作に関する。
【0002】
【従来の技術】複数のデータ処理装置を有するコンピュ
ータシステムでは、データの転送は1つの装置と別の装
置との間で起こるばかりでなく、システム効率を得るた
めに、1つの装置と他の複数の装置との間でも時間多重
化方式で起こる。たとえば、中央処理装置(「CP
U」)は、CPUを十分に利用するために、他の装置と
の間のデータ転送アクティビティを時間多重化する一方
で、1つのネットワーク装置へデータを転送できるであ
ろう。様々な装置からのデータ転送速度は異なることも
あるので、バッファを複数の装置のデータ転送速度を最
適にするために各装置と、CPUとの間の媒介装置とし
て設ける場合がある。バッファを設けると、転送資源が
利用可能になるまで又は転送の宛先が空いているとき、
データを一時的に記憶することができる。装置ごとにバ
ッファを設けると、CPUと対話する装置が増してきた
ときには、より精巧なシステムが要求される場合が多い
ので、集積回路について問題が起こる。集積回路では、
ダイサイズの制限によって、より多くのバッファとそれ
に関連する復号論理を追加できない。
ータシステムでは、データの転送は1つの装置と別の装
置との間で起こるばかりでなく、システム効率を得るた
めに、1つの装置と他の複数の装置との間でも時間多重
化方式で起こる。たとえば、中央処理装置(「CP
U」)は、CPUを十分に利用するために、他の装置と
の間のデータ転送アクティビティを時間多重化する一方
で、1つのネットワーク装置へデータを転送できるであ
ろう。様々な装置からのデータ転送速度は異なることも
あるので、バッファを複数の装置のデータ転送速度を最
適にするために各装置と、CPUとの間の媒介装置とし
て設ける場合がある。バッファを設けると、転送資源が
利用可能になるまで又は転送の宛先が空いているとき、
データを一時的に記憶することができる。装置ごとにバ
ッファを設けると、CPUと対話する装置が増してきた
ときには、より精巧なシステムが要求される場合が多い
ので、集積回路について問題が起こる。集積回路では、
ダイサイズの制限によって、より多くのバッファとそれ
に関連する復号論理を追加できない。
【0003】この問題を、コンピュータシステムにおい
て複数のチャネルを介してデータを転送する直接メモリ
アクセス動作により例示することができる。直接メモリ
アクセス(「DMA」)動作は、大量のデータを移動さ
せるべき場合にコンピュータ入出力(「I/O」)動作
に使用される技法である。通常、DMAはシステムバス
に追加モジュールを含む。図1に示すようなDMAモジ
ュール100はCPU(図示せず)をエミュレートする
と共に、CPUからシステムバスの制御を引継ぐことが
できる。DMA動作は次のように進行する。CPUは、
データの1ブロックを読取る又は書込むことを望むと
き、DMAモジュール100へ指令を発行する。その指
令は読取り101が要求されたのか又は書込み102が
要求されたのかに関する情報と、関連するI/O装置の
アドレス103と、読取り又は書込みを開始すべきメモ
リの記憶場所と、読取るべき語又は書込むべき語の数1
05とを含む。そこで、CPUはこのI/O動作をDM
Aモジュールへ委ねてしまっているため、他のタスクを
実行し続け、モジュールはそのタスクを処理する。従っ
て、DMAモジュールはCPUを経過せずに、直接にメ
モリとの間で全データブロックを一度に1語ずつ転送す
る。転送が完了すると、DMAモジュールは割込み信号
110をCPUへ送信する。そのため、CPUは転送の
始めと終わりで動作に参加するだけで良い。
て複数のチャネルを介してデータを転送する直接メモリ
アクセス動作により例示することができる。直接メモリ
アクセス(「DMA」)動作は、大量のデータを移動さ
せるべき場合にコンピュータ入出力(「I/O」)動作
に使用される技法である。通常、DMAはシステムバス
に追加モジュールを含む。図1に示すようなDMAモジ
ュール100はCPU(図示せず)をエミュレートする
と共に、CPUからシステムバスの制御を引継ぐことが
できる。DMA動作は次のように進行する。CPUは、
データの1ブロックを読取る又は書込むことを望むと
き、DMAモジュール100へ指令を発行する。その指
令は読取り101が要求されたのか又は書込み102が
要求されたのかに関する情報と、関連するI/O装置の
アドレス103と、読取り又は書込みを開始すべきメモ
リの記憶場所と、読取るべき語又は書込むべき語の数1
05とを含む。そこで、CPUはこのI/O動作をDM
Aモジュールへ委ねてしまっているため、他のタスクを
実行し続け、モジュールはそのタスクを処理する。従っ
て、DMAモジュールはCPUを経過せずに、直接にメ
モリとの間で全データブロックを一度に1語ずつ転送す
る。転送が完了すると、DMAモジュールは割込み信号
110をCPUへ送信する。そのため、CPUは転送の
始めと終わりで動作に参加するだけで良い。
【0004】DMAモジュールは、メモリとの間でデー
タを転送するために、バスの制御を引継ぐことが必要で
ある。この目的のために、DMAモジュールはCPUが
バスを必要としないときに限ってバスを使用しなければ
ならないか、あるいは、DMAモジュールはCPUにそ
の動作を一時的に中断させなければならない。このDM
Aモジュールが実行する唯一の機能はデータ転送である
ので、転送シーケンスをモジュールの回路にハードワイ
ヤードすることができる。命令をはるかに高いレベルで
取出すことにより、帯域幅の利用を最小限に抑えられ
る。DMAモジュールはバスが要求するアドレス信号と
制御信号を発生する能力を備えているため、DMAモジ
ュールはI/O動作を全メモリ速度で実行することがで
きる。
タを転送するために、バスの制御を引継ぐことが必要で
ある。この目的のために、DMAモジュールはCPUが
バスを必要としないときに限ってバスを使用しなければ
ならないか、あるいは、DMAモジュールはCPUにそ
の動作を一時的に中断させなければならない。このDM
Aモジュールが実行する唯一の機能はデータ転送である
ので、転送シーケンスをモジュールの回路にハードワイ
ヤードすることができる。命令をはるかに高いレベルで
取出すことにより、帯域幅の利用を最小限に抑えられ
る。DMAモジュールはバスが要求するアドレス信号と
制御信号を発生する能力を備えているため、DMAモジ
ュールはI/O動作を全メモリ速度で実行することがで
きる。
【0005】今日の効率の良いコンピュータシステムで
は、DMA動作は多様な装置との間の複数チャネルデー
タ転送にも対応しなければならない。データ転送を容易
にするために、独立したバッファがDMAチャネルに割
当てられる。ところが、動作が一層精巧になってDMA
チャネルの数が増すにつれて、「チャネルごとに1バッ
ファ」の方式は全く実用的でないとはいえないまでも、
望ましくなくなっている。さらに、先入れ先出し(「F
IFO」)バッファなどの単一のバッファは複数チャネ
ルDMA動作について媒介手段として働くであろうが、
直ちに全てのデータを必要としている1つのチャネルが
別のチャネルのデータにより阻止される場合、FIFO
にも依然としてボトルネックの問題が起こる。また、F
IFOへデータが転送されている間、FIFOは一杯に
なるように拘束されるので、FIFOの一部のデータを
読取るまで転送を強制的に停止させる。以上の理由によ
り、従来の複数チャネル転送におけるFIFOは広い帯
域幅をもつ連続する動作を実行できない。
は、DMA動作は多様な装置との間の複数チャネルデー
タ転送にも対応しなければならない。データ転送を容易
にするために、独立したバッファがDMAチャネルに割
当てられる。ところが、動作が一層精巧になってDMA
チャネルの数が増すにつれて、「チャネルごとに1バッ
ファ」の方式は全く実用的でないとはいえないまでも、
望ましくなくなっている。さらに、先入れ先出し(「F
IFO」)バッファなどの単一のバッファは複数チャネ
ルDMA動作について媒介手段として働くであろうが、
直ちに全てのデータを必要としている1つのチャネルが
別のチャネルのデータにより阻止される場合、FIFO
にも依然としてボトルネックの問題が起こる。また、F
IFOへデータが転送されている間、FIFOは一杯に
なるように拘束されるので、FIFOの一部のデータを
読取るまで転送を強制的に停止させる。以上の理由によ
り、従来の複数チャネル転送におけるFIFOは広い帯
域幅をもつ連続する動作を実行できない。
【0006】以下に説明する通り、本発明は、広い帯域
幅を獲得し且つ資源を効率良く利用するために、様々に
異なるチャネルからの転送シーケンスをインタリーブす
ることにより、複数のDMAチャネルを介してデータを
転送する方法及び装置を開示する。また、帯域幅及びシ
ステム効率を最大限に向上させるために、複数チャネル
DMA転送の支援と組合せて使用すると最も有利である
回路アーキテクチャをも開示する。
幅を獲得し且つ資源を効率良く利用するために、様々に
異なるチャネルからの転送シーケンスをインタリーブす
ることにより、複数のDMAチャネルを介してデータを
転送する方法及び装置を開示する。また、帯域幅及びシ
ステム効率を最大限に向上させるために、複数チャネル
DMA転送の支援と組合せて使用すると最も有利である
回路アーキテクチャをも開示する。
【0007】
【発明が解決しようとする課題】従って、本発明の目的
は、複数チャネルDMA動作を支援することである。ま
た、本発明の目的は、連続する動作の流れの中で複数チ
ャネルDMA転送を支援することである。本発明の別の
目的は、チャネルをインタリーブすることにより広帯域
幅複数チャネルDMA転送を達成することである。本発
明の別の目的は、複数のインタリーブするDMAチャネ
ルと組合せて使用すると最も有利である回路アーキテク
チャを提供することである。本発明の別の目的は、チャ
ネルごとに読取りと書込みを独立して行いつつ複数のD
MAチャネルを支援する回路アーキテクチャを支援する
ことである。本発明の別の目的は、インタリーブするD
MAチャネルについてバスを効率良く利用するための回
路アーキテクチャを提供することである。
は、複数チャネルDMA動作を支援することである。ま
た、本発明の目的は、連続する動作の流れの中で複数チ
ャネルDMA転送を支援することである。本発明の別の
目的は、チャネルをインタリーブすることにより広帯域
幅複数チャネルDMA転送を達成することである。本発
明の別の目的は、複数のインタリーブするDMAチャネ
ルと組合せて使用すると最も有利である回路アーキテク
チャを提供することである。本発明の別の目的は、チャ
ネルごとに読取りと書込みを独立して行いつつ複数のD
MAチャネルを支援する回路アーキテクチャを支援する
ことである。本発明の別の目的は、インタリーブするD
MAチャネルについてバスを効率良く利用するための回
路アーキテクチャを提供することである。
【0008】
【課題を解決するための手段】以下に説明する通り、本
発明は、チャネルごとのデータ転送をデータスライスの
シーケンスに分割し、転送をスライスごとにインタリー
ブすることにより、複数のチャネルDMA動作を支援す
る方法及び装置を開示する。転送資源の制御はDMAチ
ャネルの間で移行して良いが、チャネルごとのデータス
ライスの順序付けは維持される。さらに、本発明は、複
数のインタリーブするDMAチャネルと共に使用すると
最も有利である回路アーキテクチャを開示する。この回
路アーキテクチャはデュアルポートメモリと、チャネル
シーケンサと、チャネルインタリーブ制御装置とを具備
する。デュアルポートメモリは、チャネルを介して転送
すべきデータのスライスを記憶する。チャネルシーケン
サは、デュアルポートメモリにあるデータスライスのチ
ャネル順序付けを維持する。チャネルインタリーブ装置
は、チャネルごとにチャネルインタリーブサイズと、現
在データ転送カウントと、合計転送カウントとを監視す
ることにより、チャネルにそのデータ転送をインタリー
ブさせる。第1のチャネルがそのチャネルインタリーブ
サイズに達したとき、又は第1のチャネルが要求された
合計転送カウントを転送し終わったときに、第2のチャ
ネルは第1のチャネルと同じ媒体を介してデータを転送
することが許され、それにより、バスを効率良く利用で
きる。本発明の目的、特徴及び利点は以下の詳細な説明
から明白になるであろう。
発明は、チャネルごとのデータ転送をデータスライスの
シーケンスに分割し、転送をスライスごとにインタリー
ブすることにより、複数のチャネルDMA動作を支援す
る方法及び装置を開示する。転送資源の制御はDMAチ
ャネルの間で移行して良いが、チャネルごとのデータス
ライスの順序付けは維持される。さらに、本発明は、複
数のインタリーブするDMAチャネルと共に使用すると
最も有利である回路アーキテクチャを開示する。この回
路アーキテクチャはデュアルポートメモリと、チャネル
シーケンサと、チャネルインタリーブ制御装置とを具備
する。デュアルポートメモリは、チャネルを介して転送
すべきデータのスライスを記憶する。チャネルシーケン
サは、デュアルポートメモリにあるデータスライスのチ
ャネル順序付けを維持する。チャネルインタリーブ装置
は、チャネルごとにチャネルインタリーブサイズと、現
在データ転送カウントと、合計転送カウントとを監視す
ることにより、チャネルにそのデータ転送をインタリー
ブさせる。第1のチャネルがそのチャネルインタリーブ
サイズに達したとき、又は第1のチャネルが要求された
合計転送カウントを転送し終わったときに、第2のチャ
ネルは第1のチャネルと同じ媒体を介してデータを転送
することが許され、それにより、バスを効率良く利用で
きる。本発明の目的、特徴及び利点は以下の詳細な説明
から明白になるであろう。
【0009】〔表記法及び用語〕以下の詳細な説明の大
部分は、コンピュータメモリ内部のデータビットについ
ての演算のアルゴリズム及び記号表示によって提示され
る。そのようなアルゴリズムによる説明や表示は、デー
タ処理技術に熟達する人がその作業の内容を同じ分野の
当業者に最も有効に伝達するために使用する手段であ
る。ここでは、また、一般にも、アルゴリズムは所望の
結果に至る首尾一貫したステップのルシーケンスである
と考えられている。それらのステップは物理的量の物理
的操作を要求するステップである。通常、それらの量は
記憶,転送,組合せ,比較及びその他の方法による操作
が可能である電気信号又は磁気信号の形をとるが、必ず
そうであるとは限らない。時によっては、主に一般使用
されている用語であるという理由により、そのような信
号をビット,値,要素,記号,文字,項,数などと呼ぶ
と好都合であることがわかる。ただし、それらの用語及
びそれに類する用語は、全て、適切な物理的量と関連さ
せるべきものであり、単にそれらの量に便宜上付された
ラベルであるにすぎないということを忘れてはならな
い。
部分は、コンピュータメモリ内部のデータビットについ
ての演算のアルゴリズム及び記号表示によって提示され
る。そのようなアルゴリズムによる説明や表示は、デー
タ処理技術に熟達する人がその作業の内容を同じ分野の
当業者に最も有効に伝達するために使用する手段であ
る。ここでは、また、一般にも、アルゴリズムは所望の
結果に至る首尾一貫したステップのルシーケンスである
と考えられている。それらのステップは物理的量の物理
的操作を要求するステップである。通常、それらの量は
記憶,転送,組合せ,比較及びその他の方法による操作
が可能である電気信号又は磁気信号の形をとるが、必ず
そうであるとは限らない。時によっては、主に一般使用
されている用語であるという理由により、そのような信
号をビット,値,要素,記号,文字,項,数などと呼ぶ
と好都合であることがわかる。ただし、それらの用語及
びそれに類する用語は、全て、適切な物理的量と関連さ
せるべきものであり、単にそれらの量に便宜上付された
ラベルであるにすぎないということを忘れてはならな
い。
【0010】さらに、実行される操作を一般にはオペレ
ータが実行する知的動作と関連している加算又は比較な
どの用語で呼ぶことが多いが、ここで説明する、本発明
の一部を成す動作のどれをとっても、そのようなオペレ
ータの能力は不要であり、多くの場合に望ましくない。
動作は機械の動作である。本発明の動作を実行するのに
有用な機械には、汎用デジタルコンピュータ又は他の同
様の装置がある。いずれの場合にも、コンピュータを動
作させるときの方法動作と、計算それ自体の方法との明
確な区別に留意すべきである。本発明は、電気信号又は
他の物理的(たとえば、機械的,化学的)信号を処理し
て、別の所望の物理的信号を発生するに際してコンピュ
ータを動作させる方法ステップに関する。また、本発明
はそのような動作を実行する装置にも関する。この装置
は所要の目的に合わせて特別に構成されても良いし、あ
るいは汎用コンピュータをそのコンピュータに記憶させ
たコンピュータプログラムにより選択的に起動又は再構
成しても良い。ここで提示するアルゴリズムは、元来、
特定のコンピュータ又は他の特定の装置に関連するもの
ではない。すなわち、本発明の教示に従って書込まれた
プログラムと共に様々な汎用機械を使用して良く、ある
いは、要求される方法ステップを実行するためにはより
専門的な装置を構成するほうが好都合であるとわかるか
もしれない。そのような多様な機械について要求される
構造は以下のの説明から明白になるであろう。
ータが実行する知的動作と関連している加算又は比較な
どの用語で呼ぶことが多いが、ここで説明する、本発明
の一部を成す動作のどれをとっても、そのようなオペレ
ータの能力は不要であり、多くの場合に望ましくない。
動作は機械の動作である。本発明の動作を実行するのに
有用な機械には、汎用デジタルコンピュータ又は他の同
様の装置がある。いずれの場合にも、コンピュータを動
作させるときの方法動作と、計算それ自体の方法との明
確な区別に留意すべきである。本発明は、電気信号又は
他の物理的(たとえば、機械的,化学的)信号を処理し
て、別の所望の物理的信号を発生するに際してコンピュ
ータを動作させる方法ステップに関する。また、本発明
はそのような動作を実行する装置にも関する。この装置
は所要の目的に合わせて特別に構成されても良いし、あ
るいは汎用コンピュータをそのコンピュータに記憶させ
たコンピュータプログラムにより選択的に起動又は再構
成しても良い。ここで提示するアルゴリズムは、元来、
特定のコンピュータ又は他の特定の装置に関連するもの
ではない。すなわち、本発明の教示に従って書込まれた
プログラムと共に様々な汎用機械を使用して良く、ある
いは、要求される方法ステップを実行するためにはより
専門的な装置を構成するほうが好都合であるとわかるか
もしれない。そのような多様な機械について要求される
構造は以下のの説明から明白になるであろう。
【0011】コード化の詳細 ここで説明する様々な手続きの実行に際しては特定のプ
ログラミング言語を指示しなかった。これは、1つに
は、挙げることができると思われる全ての言語が普遍的
に利用可能であるとは限らないからである。特定のコン
ピュータのユーザーは、それぞれ、その直接の目的に最
も適する言語を承知している。実際には、機械実行可能
目的コードを提供するアセンブリ言語よって本発明を実
質的に実現することが有用であるとわかっている。本発
明を実施するに際して使用できるコンピュータやモニタ
ーシステムは数多くの多様な素子から構成されているの
で、詳細なプログラムのリストを挙げなかった。ここで
説明し且つ添付の図面に示した動作や他の手続きは、当
業者に本発明の実施を可能にするのに十分なほどに開示
されていると考えられる。
ログラミング言語を指示しなかった。これは、1つに
は、挙げることができると思われる全ての言語が普遍的
に利用可能であるとは限らないからである。特定のコン
ピュータのユーザーは、それぞれ、その直接の目的に最
も適する言語を承知している。実際には、機械実行可能
目的コードを提供するアセンブリ言語よって本発明を実
質的に実現することが有用であるとわかっている。本発
明を実施するに際して使用できるコンピュータやモニタ
ーシステムは数多くの多様な素子から構成されているの
で、詳細なプログラムのリストを挙げなかった。ここで
説明し且つ添付の図面に示した動作や他の手続きは、当
業者に本発明の実施を可能にするのに十分なほどに開示
されていると考えられる。
【0012】
【実施例】当業者には理解されるであろうが、本発明の
チャネルインタリーブ方法及びチャネルインタリーブ装
置によれば、データ転送シーケンスを複数のスライスに
分割し、それらのスライスを複数の異なるチャネルから
インタリーブすることにより、複数チャネル転送を順序
正しく、効率の良い方式で進行させることができる。本
発明は、スライスされたデータがそれぞれ対応するチャ
ネルを介して転送されるようにインタリーブするチャネ
ルを支援する回路アーキテクチャをさらに開示する。す
なわち、チャネルインタリーブ方法及びチャネルインタ
リーブ装置は、1つのチャネルが転送資源を使用しない
ときに他のチャネルをインタリーブすることにより、さ
らに有効にバスを利用すると共に、帯域幅を拡張する。
以下の説明中、本発明を完全に理解させるために、便宜
上、特定のメモリ,編成,アーキテクチャなどを記載す
るが、そのような特定の詳細な事項がなくとも本発明を
実施しうることは当業者には明白であろう。また、場合
によっては、本発明を無用にわかりにくくしないため
に、周知の回路をブロック線図の形で示すことがある。
さらに、以下の説明から明白であるように、チャネルイ
ンタリーブ方法及びチャネルインタリーブ装置はここで
説明する独自の回路アーキテクチャとは別の他の緩衝方
式を利用しても良い。同様に、独自の回路アーキテクチ
ャをここで開示する本発明のインタリーブ方法及びイン
タリーブ装置に加えて他の複数装置転送と組合せて利用
されても良い。
チャネルインタリーブ方法及びチャネルインタリーブ装
置によれば、データ転送シーケンスを複数のスライスに
分割し、それらのスライスを複数の異なるチャネルから
インタリーブすることにより、複数チャネル転送を順序
正しく、効率の良い方式で進行させることができる。本
発明は、スライスされたデータがそれぞれ対応するチャ
ネルを介して転送されるようにインタリーブするチャネ
ルを支援する回路アーキテクチャをさらに開示する。す
なわち、チャネルインタリーブ方法及びチャネルインタ
リーブ装置は、1つのチャネルが転送資源を使用しない
ときに他のチャネルをインタリーブすることにより、さ
らに有効にバスを利用すると共に、帯域幅を拡張する。
以下の説明中、本発明を完全に理解させるために、便宜
上、特定のメモリ,編成,アーキテクチャなどを記載す
るが、そのような特定の詳細な事項がなくとも本発明を
実施しうることは当業者には明白であろう。また、場合
によっては、本発明を無用にわかりにくくしないため
に、周知の回路をブロック線図の形で示すことがある。
さらに、以下の説明から明白であるように、チャネルイ
ンタリーブ方法及びチャネルインタリーブ装置はここで
説明する独自の回路アーキテクチャとは別の他の緩衝方
式を利用しても良い。同様に、独自の回路アーキテクチ
ャをここで開示する本発明のインタリーブ方法及びイン
タリーブ装置に加えて他の複数装置転送と組合せて利用
されても良い。
【0013】図2を参照すると、DMA制御装置を伴う
コンピュータシステムがブロック線図で示されている。
DMA制御装置モジュール220は、CPU210がシ
ステムバス200を使用していないときにシステムバス
200の制御権を獲得することにより、メモリ240と
様々な周辺装置250との間のデータ転送を容易にす
る。DMA制御装置モジュール220に結合するバッフ
ァ230は、データ転送に際してデータの緩衝を実行す
る。当業者には理解されるであろうが、複数のDMAチ
ャネルを支援することができるアーキテクチャはメモリ
240と、様々な周辺装置250との間のDMA動作の
性能を著しく向上させる。
コンピュータシステムがブロック線図で示されている。
DMA制御装置モジュール220は、CPU210がシ
ステムバス200を使用していないときにシステムバス
200の制御権を獲得することにより、メモリ240と
様々な周辺装置250との間のデータ転送を容易にす
る。DMA制御装置モジュール220に結合するバッフ
ァ230は、データ転送に際してデータの緩衝を実行す
る。当業者には理解されるであろうが、複数のDMAチ
ャネルを支援することができるアーキテクチャはメモリ
240と、様々な周辺装置250との間のDMA動作の
性能を著しく向上させる。
【0014】そこで図7を参照すると、DMAチャネル
インタリーブ方法のフローチャートが示されている。ま
ず初めに、チャネルMを介してデータの合計転送カウン
ト(total_transfer_count,「T
TC」)を転送するためのDMA要求を発する。チャネ
ルMからのスライスを同一の転送資源を使用することを
望んでいる別のチャネルNからのスライスとインタリー
ブできるように、転送シーケンスを2つ以上の別個のス
ライスに分割すべきか否かを判定するために、TTCを
チャネルMの所定のチャネルインタリーブサイズ(ch
annel_interleave_size,「CI
S」)と比較する。チャネルMからのTTCがそのCI
S以下であれば、転送は1スライスで完了する。尚、D
MAチャネルのCISは、別のDMAチャネルが第1の
DMAチャネルと同じ転送資源を使用してインタリーブ
できるようになる前にDMAチャネルが転送する必要の
あるデータの量を指定するものである。従って、チャネ
ルMのTTCがCIS以内に入っているときには、デー
タを1つのスライスによって容易に転送することごでき
る。
インタリーブ方法のフローチャートが示されている。ま
ず初めに、チャネルMを介してデータの合計転送カウン
ト(total_transfer_count,「T
TC」)を転送するためのDMA要求を発する。チャネ
ルMからのスライスを同一の転送資源を使用することを
望んでいる別のチャネルNからのスライスとインタリー
ブできるように、転送シーケンスを2つ以上の別個のス
ライスに分割すべきか否かを判定するために、TTCを
チャネルMの所定のチャネルインタリーブサイズ(ch
annel_interleave_size,「CI
S」)と比較する。チャネルMからのTTCがそのCI
S以下であれば、転送は1スライスで完了する。尚、D
MAチャネルのCISは、別のDMAチャネルが第1の
DMAチャネルと同じ転送資源を使用してインタリーブ
できるようになる前にDMAチャネルが転送する必要の
あるデータの量を指定するものである。従って、チャネ
ルMのTTCがCIS以内に入っているときには、デー
タを1つのスライスによって容易に転送することごでき
る。
【0015】チャネルMのCISが要求されるTTCよ
り小さい場合には、TTCの転送を時間に従って複数の
CISサイズデータのスライスに分割する。各スライス
は転送資源を経て転送可能である。チャネルMにつて各
スライスの転送が終了した後、別のチャネルからの別の
データのスライスがインタリーブするために、転送資源
の制御を利用できるようになる。チャネルの優先順位ア
ービトレーション方式によって転送資源の制御をより優
先順位の高い別のチャネルへ移行することができるが、
その移行は回転方式であっても良いし、固定方式であっ
ても良い。チャネルMのスライスの後に別のチャネルN
が転送資源の制御権を獲得すると、チャネルNからのデ
ータスライスを転送資源を利用して転送することができ
る。各スライスの終了後に、転送資源の制御はチャネル
Nから優先順位の高い別のチャネル(そのようなチャネ
ルが存在していれば)へさらに移行する。各チャネルの
現在転送カウント(current_transfer
_count,「CTC」)を追跡するためにカウント
機構を設けるべきであることは当業者には明白であろ
う。従って、複数のDMAチャネルについて同一の転送
資源を介してデータ転送を行う場合には、各DMAチャ
ネルを介するデータ転送シーケンスを時間に従って、そ
のTTC及びCISに応じて複数のスライスに分割し、
他のDMAチャネルとインタリーブする。その結果、複
数のDMAデータ転送は、全シーケンスが完了するま
で、スライスによって無作為の順序でチャネルインタリ
ーブされるのである。
り小さい場合には、TTCの転送を時間に従って複数の
CISサイズデータのスライスに分割する。各スライス
は転送資源を経て転送可能である。チャネルMにつて各
スライスの転送が終了した後、別のチャネルからの別の
データのスライスがインタリーブするために、転送資源
の制御を利用できるようになる。チャネルの優先順位ア
ービトレーション方式によって転送資源の制御をより優
先順位の高い別のチャネルへ移行することができるが、
その移行は回転方式であっても良いし、固定方式であっ
ても良い。チャネルMのスライスの後に別のチャネルN
が転送資源の制御権を獲得すると、チャネルNからのデ
ータスライスを転送資源を利用して転送することができ
る。各スライスの終了後に、転送資源の制御はチャネル
Nから優先順位の高い別のチャネル(そのようなチャネ
ルが存在していれば)へさらに移行する。各チャネルの
現在転送カウント(current_transfer
_count,「CTC」)を追跡するためにカウント
機構を設けるべきであることは当業者には明白であろ
う。従って、複数のDMAチャネルについて同一の転送
資源を介してデータ転送を行う場合には、各DMAチャ
ネルを介するデータ転送シーケンスを時間に従って、そ
のTTC及びCISに応じて複数のスライスに分割し、
他のDMAチャネルとインタリーブする。その結果、複
数のDMAデータ転送は、全シーケンスが完了するま
で、スライスによって無作為の順序でチャネルインタリ
ーブされるのである。
【0016】本発明のチャネルインタリーブを支援する
ことができる様々な緩衝方式の実施例は当業者により構
成可能であるが、以下、図3を参照してチャネルインタ
リーブを支援する回路アーキテクチャの1つを好ましい
実施例として説明する。制御構造300はデュアルポー
トメモリ320と、チャネルシーケンサ330とを具備
する。デュアルポートメモリ320はDMAデータ転送
のためのデータを書込み且つ読取り、読取りポインタ3
21と、書込みポインタ325とによって循環方式で動
作する。書込みポインタ325は次に書込むべきデュア
ルポートメモリ320のデータ記憶場所を指示する。デ
ュアルポートメモリ320にデータを書込むときには、
書込みポインタ325はデュアルポートメモリ320の
次の記憶場所へ移動する。読取りポインタ321は次に
読取るべきデュアルポートメモリ320のデータ記憶場
所を指示する。そこで、デュアルポートメモリ320
の、読取りポインタ321により指示される記憶場所か
らデータを読取る。書込みポインタ325は、2つのポ
インタが互いに一致、すなわち、「バンプアップ」した
とき、デュアルポートメモリ320は空であり、書込み
ポインタ325が読取りポインタ321のすぐ後に位置
しているときには、デュアルポートメモリ320は一杯
であるような、先行ポインタである。通常、制御構造3
00は空の状態で動作を開始する。さらに、有効データ
がデュアルポートメモリ320から読取られる前にその
データに重ね書きすることのないように、書込みポイン
タ325は読取りポインタ321を決して追越してはな
らないことが当業者には理解されるであろう。
ことができる様々な緩衝方式の実施例は当業者により構
成可能であるが、以下、図3を参照してチャネルインタ
リーブを支援する回路アーキテクチャの1つを好ましい
実施例として説明する。制御構造300はデュアルポー
トメモリ320と、チャネルシーケンサ330とを具備
する。デュアルポートメモリ320はDMAデータ転送
のためのデータを書込み且つ読取り、読取りポインタ3
21と、書込みポインタ325とによって循環方式で動
作する。書込みポインタ325は次に書込むべきデュア
ルポートメモリ320のデータ記憶場所を指示する。デ
ュアルポートメモリ320にデータを書込むときには、
書込みポインタ325はデュアルポートメモリ320の
次の記憶場所へ移動する。読取りポインタ321は次に
読取るべきデュアルポートメモリ320のデータ記憶場
所を指示する。そこで、デュアルポートメモリ320
の、読取りポインタ321により指示される記憶場所か
らデータを読取る。書込みポインタ325は、2つのポ
インタが互いに一致、すなわち、「バンプアップ」した
とき、デュアルポートメモリ320は空であり、書込み
ポインタ325が読取りポインタ321のすぐ後に位置
しているときには、デュアルポートメモリ320は一杯
であるような、先行ポインタである。通常、制御構造3
00は空の状態で動作を開始する。さらに、有効データ
がデュアルポートメモリ320から読取られる前にその
データに重ね書きすることのないように、書込みポイン
タ325は読取りポインタ321を決して追越してはな
らないことが当業者には理解されるであろう。
【0017】図3を参照して説明すると、チャネルシー
ケンサ330はデュアルポートメモリ320を介するそ
の都度のDMAデータ転送と関連するDMAチャネル番
号を記録するので、複数のチャネルがデュアルポートメ
モリ320とのDMA転送を実行しているとき、デュア
ルポートメモリ320に緩衝されているデータに対応す
るチャネル順序付けが維持される。チャネルシーケンサ
330はソースポインタ331と、宛先ポインタ335
とを伴って循環方式で動作する。ソースポインタ331
は、書込むデータを提供するチャネルを表すチャネル番
号をチャネルシーケンサ330の1つの記憶場所に書込
む。ソースポインタ331はチャネルシーケンサ330
の次の記憶場所へ増分して、書込むべき次のチャネル番
号に対する準備が整う。宛先ポインタ335は、データ
をデュアルポートメモリ320からチャネルシーケンサ
330で宛先ポインタ335により指示されるチャネル
へ読出すように、チャネルシーケンサ330の1つの記
憶場所を指示することにより、デュアルポートメモリ3
20からのデータ転送を開始する。このようにして、デ
ュアルポートメモリ320へのデータの書込みと、デュ
アルポートメモリ320からのデータの読取りは同一の
チャネルで行われるのである。データの転送を誤らせる
のを回避するために、ソースポインタ331と宛先ポイ
ンタ335は互いに交差しないことは当業者には明白な
はずである。
ケンサ330はデュアルポートメモリ320を介するそ
の都度のDMAデータ転送と関連するDMAチャネル番
号を記録するので、複数のチャネルがデュアルポートメ
モリ320とのDMA転送を実行しているとき、デュア
ルポートメモリ320に緩衝されているデータに対応す
るチャネル順序付けが維持される。チャネルシーケンサ
330はソースポインタ331と、宛先ポインタ335
とを伴って循環方式で動作する。ソースポインタ331
は、書込むデータを提供するチャネルを表すチャネル番
号をチャネルシーケンサ330の1つの記憶場所に書込
む。ソースポインタ331はチャネルシーケンサ330
の次の記憶場所へ増分して、書込むべき次のチャネル番
号に対する準備が整う。宛先ポインタ335は、データ
をデュアルポートメモリ320からチャネルシーケンサ
330で宛先ポインタ335により指示されるチャネル
へ読出すように、チャネルシーケンサ330の1つの記
憶場所を指示することにより、デュアルポートメモリ3
20からのデータ転送を開始する。このようにして、デ
ュアルポートメモリ320へのデータの書込みと、デュ
アルポートメモリ320からのデータの読取りは同一の
チャネルで行われるのである。データの転送を誤らせる
のを回避するために、ソースポインタ331と宛先ポイ
ンタ335は互いに交差しないことは当業者には明白な
はずである。
【0018】さらに図3を参照して説明を続ける。デー
タ転送を容易にするためにバスのような資源が利用不可
能である場合、ソースポインタ331はその記憶場所を
スキップし、チャネルシーケンサ330のタグ332で
タグ付けする。そこで、宛先ポインタ335がタグ付け
された記憶場所へ移動すると、宛先ポインタ335はタ
グ332を読取って、チャネルシーケンサ330のタグ
付けされた記憶場所に関してソースポインタ331によ
りデータ転送がまだ実行されていないことを知る。その
結果、宛先ポインタ335はタグ付けされた記憶場所に
従ってデータを転送させず、タグ332を無効化又はリ
セットし、次の記憶場所でチャネルを転送するようにス
キップする。これは、本発明の回路アーキテクチャが同
一のチャネルに関して取入れたデータより多くのデータ
を送り出すことのないように保証するためである。尚、
デュアルポートメモリ320にデータを書込むべきか十
分な余地がないとき、又は転送のためにバスを利用でき
ないときに「スキップオーバ」が起こりうることに注意
すべきである。
タ転送を容易にするためにバスのような資源が利用不可
能である場合、ソースポインタ331はその記憶場所を
スキップし、チャネルシーケンサ330のタグ332で
タグ付けする。そこで、宛先ポインタ335がタグ付け
された記憶場所へ移動すると、宛先ポインタ335はタ
グ332を読取って、チャネルシーケンサ330のタグ
付けされた記憶場所に関してソースポインタ331によ
りデータ転送がまだ実行されていないことを知る。その
結果、宛先ポインタ335はタグ付けされた記憶場所に
従ってデータを転送させず、タグ332を無効化又はリ
セットし、次の記憶場所でチャネルを転送するようにス
キップする。これは、本発明の回路アーキテクチャが同
一のチャネルに関して取入れたデータより多くのデータ
を送り出すことのないように保証するためである。尚、
デュアルポートメモリ320にデータを書込むべきか十
分な余地がないとき、又は転送のためにバスを利用でき
ないときに「スキップオーバ」が起こりうることに注意
すべきである。
【0019】チャネルインタリーブを支援するために独
自の回路アーキテクチャを使用する場合、チャネルイン
タリーブ制御構造310は書込み方向と読取り方向の双
方にチャネルごとのチャネルインタリーブサイズ、合計
転送サイズ及び現在転送サイズを監視することにより、
チャネルにその転送をインタリーブさせる。各チャネル
のチャネルインタリーブサイズは、別のチャネルが第1
のチャネルと同じ資源を使用して転送をインタリーブで
きるようになる前に第1のチャネルが転送しなければな
らないバイトの数を指定する。合計転送サイズは、特定
のチャネルがデュアルポートメモリ320を介して転送
することを要求されたデータバイトの総数を指定する。
現在転送カウントは、デュアルポートメモリ320に緩
衝されているデータバイトに関して、チャネルごとに、
進行中である現在書込みカウントと現在読取りカウント
の双方を記録する。1つのチャネルを介するある合計転
送サイズのデータに対する要求に応答して、チャネルイ
ンタリーブ制御構造310は、そのチャネルのチャネル
インタリーブサイズと、合計転送サイズとを読取ること
により、現在転送を分割できるデータスライスの数を確
定する。データ転送を2つ以上のデータスライスに分割
できる場合には、チャネルインタリーブ制御構造310
は、第1のチャネルがそのチャネルインタリーブサイズ
まで転送し終わった後に、第2のチャネルに転送を実行
させることができる。チャネルインタリーブ制御構造
は、本発明の回路アーキテクチャがチャネルごとに転送
し終わったテータバイトの数と、転送し残しているデー
タバイトの数をチャネルインタリーブが発生して良い時
点と共に追跡するように、書込み方向と読取り方向の双
方で各チャネルの現在転送カウントをさらに監視する。
そのため、本発明の回路アーキテクチャは、様々なDM
A転送シーケンスが完了するまで、様々に異なるチャネ
ルからのデータスライス転送を実行することにより、転
送を進行させることができる。それは、データスライス
と関連するチャネルの順序付けがチャネルシーケンサ3
30と、チャネルインタリーブ制御構造310とにより
維持されるからである。
自の回路アーキテクチャを使用する場合、チャネルイン
タリーブ制御構造310は書込み方向と読取り方向の双
方にチャネルごとのチャネルインタリーブサイズ、合計
転送サイズ及び現在転送サイズを監視することにより、
チャネルにその転送をインタリーブさせる。各チャネル
のチャネルインタリーブサイズは、別のチャネルが第1
のチャネルと同じ資源を使用して転送をインタリーブで
きるようになる前に第1のチャネルが転送しなければな
らないバイトの数を指定する。合計転送サイズは、特定
のチャネルがデュアルポートメモリ320を介して転送
することを要求されたデータバイトの総数を指定する。
現在転送カウントは、デュアルポートメモリ320に緩
衝されているデータバイトに関して、チャネルごとに、
進行中である現在書込みカウントと現在読取りカウント
の双方を記録する。1つのチャネルを介するある合計転
送サイズのデータに対する要求に応答して、チャネルイ
ンタリーブ制御構造310は、そのチャネルのチャネル
インタリーブサイズと、合計転送サイズとを読取ること
により、現在転送を分割できるデータスライスの数を確
定する。データ転送を2つ以上のデータスライスに分割
できる場合には、チャネルインタリーブ制御構造310
は、第1のチャネルがそのチャネルインタリーブサイズ
まで転送し終わった後に、第2のチャネルに転送を実行
させることができる。チャネルインタリーブ制御構造
は、本発明の回路アーキテクチャがチャネルごとに転送
し終わったテータバイトの数と、転送し残しているデー
タバイトの数をチャネルインタリーブが発生して良い時
点と共に追跡するように、書込み方向と読取り方向の双
方で各チャネルの現在転送カウントをさらに監視する。
そのため、本発明の回路アーキテクチャは、様々なDM
A転送シーケンスが完了するまで、様々に異なるチャネ
ルからのデータスライス転送を実行することにより、転
送を進行させることができる。それは、データスライス
と関連するチャネルの順序付けがチャネルシーケンサ3
30と、チャネルインタリーブ制御構造310とにより
維持されるからである。
【0020】尚、チャネルインタリーブには様々な転送
サイズが関連しているので、チャネルシーケンサ330
の1つの記憶場所におけるチャネル転送が別の記憶場所
のチャネル転送の前に完了するという状況が起こる。こ
の状況によって、チャネルシーケンサ330は、当初、
そのソースポインタを介してチャネルを順次ロードして
いるにもかかわらず、無作為に分散するギャップを生じ
るようになる。転送ソースに指示するために、チャネル
シーケンサ330の無作為に分散する記憶場所に入力し
て来るチャネルを割付けるべきときには、入力チャネル
をソースポインタと宛先ポインタとの間(すなわち、ソ
ースポインタの後、宛先ポインタの前)にある記憶場所
には割付けないことは当業者には明白なはずである。従
って、新たなチャネルは宛先ポインタ335が第1にヒ
ットすることになる記憶場所にはなく、チャネルシーケ
ンサ330における記憶場所のシーケンスは維持され
る。
サイズが関連しているので、チャネルシーケンサ330
の1つの記憶場所におけるチャネル転送が別の記憶場所
のチャネル転送の前に完了するという状況が起こる。こ
の状況によって、チャネルシーケンサ330は、当初、
そのソースポインタを介してチャネルを順次ロードして
いるにもかかわらず、無作為に分散するギャップを生じ
るようになる。転送ソースに指示するために、チャネル
シーケンサ330の無作為に分散する記憶場所に入力し
て来るチャネルを割付けるべきときには、入力チャネル
をソースポインタと宛先ポインタとの間(すなわち、ソ
ースポインタの後、宛先ポインタの前)にある記憶場所
には割付けないことは当業者には明白なはずである。従
って、新たなチャネルは宛先ポインタ335が第1にヒ
ットすることになる記憶場所にはなく、チャネルシーケ
ンサ330における記憶場所のシーケンスは維持され
る。
【0021】さらに、チャネルインタリーブ制御構造3
10は、チャネルインタリーブサイズを合計転送サイズ
と現在転送カウントとの差と比較することにより、1回
の転送の残る部分(「remnant」)のように、そ
のチャネルのチャネルインタリーブサイズより小さいサ
イズのデータを転送すべきか否かを判定する。1つのチ
ャネルを介してチャネルインタリーブサイズより小さい
サイズのデータを転送すべき場合には、チャネルインタ
リーブ制御構造310は、より有効にバスを利用できる
ように、第1のチャネルの転送が完了すると、直ちに別
のチャネルにその転送を実行させる。また、第1のチャ
ネルが転送を完了した後にデータ転送を要求するチャネ
ルが他に存在していないときには、チャネルインタリー
ブ制御構造310は第1のチャネルに転送を継続させる
か、又は別の要求に応答させるかいずれかの状況にな
る。論理上、チャネルインタリーブ制御構造310はチ
ャネルごとのチャネルインタリーブサイズ、現在転送カ
ウント及び合計転送サイズに関する情報を処理するプロ
セッサであっても良い。
10は、チャネルインタリーブサイズを合計転送サイズ
と現在転送カウントとの差と比較することにより、1回
の転送の残る部分(「remnant」)のように、そ
のチャネルのチャネルインタリーブサイズより小さいサ
イズのデータを転送すべきか否かを判定する。1つのチ
ャネルを介してチャネルインタリーブサイズより小さい
サイズのデータを転送すべき場合には、チャネルインタ
リーブ制御構造310は、より有効にバスを利用できる
ように、第1のチャネルの転送が完了すると、直ちに別
のチャネルにその転送を実行させる。また、第1のチャ
ネルが転送を完了した後にデータ転送を要求するチャネ
ルが他に存在していないときには、チャネルインタリー
ブ制御構造310は第1のチャネルに転送を継続させる
か、又は別の要求に応答させるかいずれかの状況にな
る。論理上、チャネルインタリーブ制御構造310はチ
ャネルごとのチャネルインタリーブサイズ、現在転送カ
ウント及び合計転送サイズに関する情報を処理するプロ
セッサであっても良い。
【0022】図4を参照して、転送動作の1例を挙げな
がら、チャネルインタリーブに際して独自の回路アーキ
テクチャの動作を説明する。まず、DMA転送は、32
バイトまでのバーストを支援するホストに500バイト
のチャネルインタリーブサイズを有するように先にプロ
グラムされているチャネル1を介する1000バイトの
データを要求する。尚、チャネルインタリーブサイズ
は、別のチャネルが同じバスを介して転送できるように
なる前に転送される最大量のデータを表す。転送はメモ
リ400との間でAバス460を介してデュアルポート
メモリ420に向かって始まり、デュアルポートメモリ
420からBバス470を介してデータを要求した周辺
装置450に至る。チャネルインタリーブ制御構造41
0は、チャネル1と関連するこの場合には500バイト
であるチャネルインタリーブサイズと、1000バイト
である合計転送カウントと、32バイトであるバースト
サイズとを読取ることにより、転送をどのように「スラ
イス」するかを確定する。そこで、15回の個別の32
バイトバーストに1回の16バイトバーストと、1回の
4バイト転送を加えた500バイトのスライスをデュア
ルポートメモリ420に書込むことになり、チャネルシ
ーケンサ430は「チャネル1」をこのデータのスライ
スに対応するソースチャネルとして書込む。
がら、チャネルインタリーブに際して独自の回路アーキ
テクチャの動作を説明する。まず、DMA転送は、32
バイトまでのバーストを支援するホストに500バイト
のチャネルインタリーブサイズを有するように先にプロ
グラムされているチャネル1を介する1000バイトの
データを要求する。尚、チャネルインタリーブサイズ
は、別のチャネルが同じバスを介して転送できるように
なる前に転送される最大量のデータを表す。転送はメモ
リ400との間でAバス460を介してデュアルポート
メモリ420に向かって始まり、デュアルポートメモリ
420からBバス470を介してデータを要求した周辺
装置450に至る。チャネルインタリーブ制御構造41
0は、チャネル1と関連するこの場合には500バイト
であるチャネルインタリーブサイズと、1000バイト
である合計転送カウントと、32バイトであるバースト
サイズとを読取ることにより、転送をどのように「スラ
イス」するかを確定する。そこで、15回の個別の32
バイトバーストに1回の16バイトバーストと、1回の
4バイト転送を加えた500バイトのスライスをデュア
ルポートメモリ420に書込むことになり、チャネルシ
ーケンサ430は「チャネル1」をこのデータのスライ
スに対応するソースチャネルとして書込む。
【0023】チャネル1がその500バイトのチャネル
インタリーブサイズを侵害せずに最大可能(500バイ
ト)なデータのスライスを書込んだ後、別のチャネルは
データを転送するためにAバス460を使用できるよう
になる。たとえば、チャネル7を介するDMA転送がA
バス460の使用を許可された場合、この時点でチャネ
ル7を介する転送はインタリーブすることができる。
尚、別のDMAチャネルが転送のために異なる緩衝アー
キテクチャを使用することを要求できるようにDMA転
送に対応するために、コンピュータシステムは複数の緩
衝アーキテクチャ(図4には示さず)を有していても良
い。ただし、本発明の動作を明確に説明するために、こ
こでは全てのチャネルはDMA転送を実行するために同
一の回路アーキテクチャ401を使用するものと仮定す
る。チャネル7にAバス460が許可された後、その時
点でチャネル1のAバス460に対する要求も許可され
るならば、チャネル7がその対応するチャネルインタリ
ーブサイズに達するまで、チャネル1に関わる転送は中
断する。チャネル1に関わる転送は中断するが、その後
にチャネル1がチャネル7のインタリーブによる影響を
受けずに転送を再開できるように、チャネルインタリー
ブ制御構造410はチャネル1の転送パラメータ、すな
わち、チャネルインタリーブサイズ,合計転送サイズ及
び現在転送カウントを維持し続ける。
インタリーブサイズを侵害せずに最大可能(500バイ
ト)なデータのスライスを書込んだ後、別のチャネルは
データを転送するためにAバス460を使用できるよう
になる。たとえば、チャネル7を介するDMA転送がA
バス460の使用を許可された場合、この時点でチャネ
ル7を介する転送はインタリーブすることができる。
尚、別のDMAチャネルが転送のために異なる緩衝アー
キテクチャを使用することを要求できるようにDMA転
送に対応するために、コンピュータシステムは複数の緩
衝アーキテクチャ(図4には示さず)を有していても良
い。ただし、本発明の動作を明確に説明するために、こ
こでは全てのチャネルはDMA転送を実行するために同
一の回路アーキテクチャ401を使用するものと仮定す
る。チャネル7にAバス460が許可された後、その時
点でチャネル1のAバス460に対する要求も許可され
るならば、チャネル7がその対応するチャネルインタリ
ーブサイズに達するまで、チャネル1に関わる転送は中
断する。チャネル1に関わる転送は中断するが、その後
にチャネル1がチャネル7のインタリーブによる影響を
受けずに転送を再開できるように、チャネルインタリー
ブ制御構造410はチャネル1の転送パラメータ、すな
わち、チャネルインタリーブサイズ,合計転送サイズ及
び現在転送カウントを維持し続ける。
【0024】チャネル7を介するデータの転送は、チャ
ネル7に関わるデータ「スライス」のサイズがチャネル
1とは異なるようにチャネル7は異なるチャネルインタ
リーブサイズ,合計転送サイズ及びバーストサイズを有
するべくプログラムされていても良いという点を除い
て、チャネル1の場合と同様に進行する。チャネル7の
スライスがメモリ400からデュアルポートメモリ42
0に書込まれると、チャネルシーケンサ430は「チャ
ネル7」をデュアルポートメモリ420に書込まれたこ
のデータのスライスに対応するソースチャネルとして書
込む。転送の次のスライスもチャネル7からのものであ
れば、チャネル7を再びソースチャネルとしてチャネル
シーケンサ430に書込む。
ネル7に関わるデータ「スライス」のサイズがチャネル
1とは異なるようにチャネル7は異なるチャネルインタ
リーブサイズ,合計転送サイズ及びバーストサイズを有
するべくプログラムされていても良いという点を除い
て、チャネル1の場合と同様に進行する。チャネル7の
スライスがメモリ400からデュアルポートメモリ42
0に書込まれると、チャネルシーケンサ430は「チャ
ネル7」をデュアルポートメモリ420に書込まれたこ
のデータのスライスに対応するソースチャネルとして書
込む。転送の次のスライスもチャネル7からのものであ
れば、チャネル7を再びソースチャネルとしてチャネル
シーケンサ430に書込む。
【0025】チャネル7がメモリ400からデュアルポ
ートメモリ420への転送を完了するか、又はチャネル
インタリーブサイズの大きさで許容しているデータ転送
を少なくとも一部完了した後、Aバス460は要求が許
可されたどのチャネルに対しても利用自在の状態にな
る。チャネル1がその要求を許可されたと仮定すると、
チャネル1はメモリ400からデュアルポートメモリ4
20へのデータ転送を再開することができる。デュアル
ポートメモリ420に別のデータのスライスを書込む一
方で、チャネルシーケンサ430は「チャネル1」をソ
ースチャネルとして書込む。図6は、デュアルポートメ
モリ620及びチャネルシーケンサ630の現在状態を
示す。尚、始動時には、書込みポインタ625と読取り
ポインタ621は、当初、デュアルポートメモリ620
の第1の記憶場所に整列し、また、ソースチャネルポイ
ンタ631と宛先チャネルポインタ635もチャネルシ
ーケンサ630の第1の記憶場所に整列することに注意
すべきである。
ートメモリ420への転送を完了するか、又はチャネル
インタリーブサイズの大きさで許容しているデータ転送
を少なくとも一部完了した後、Aバス460は要求が許
可されたどのチャネルに対しても利用自在の状態にな
る。チャネル1がその要求を許可されたと仮定すると、
チャネル1はメモリ400からデュアルポートメモリ4
20へのデータ転送を再開することができる。デュアル
ポートメモリ420に別のデータのスライスを書込む一
方で、チャネルシーケンサ430は「チャネル1」をソ
ースチャネルとして書込む。図6は、デュアルポートメ
モリ620及びチャネルシーケンサ630の現在状態を
示す。尚、始動時には、書込みポインタ625と読取り
ポインタ621は、当初、デュアルポートメモリ620
の第1の記憶場所に整列し、また、ソースチャネルポイ
ンタ631と宛先チャネルポインタ635もチャネルシ
ーケンサ630の第1の記憶場所に整列することに注意
すべきである。
【0026】図6を参照して説明する。チャネル1は、
500バイトの第2のスライスをデュアルポートメモリ
620の記憶場所に、記憶場所689から始めて書込む
ことにより、要求された合計転送カウントを転送し続
け、チャネル1のチャネルインタリーブサイズに達した
後に別のチャネルがバスの使用を許可されたならば、転
送を中断する。インタリーブが起こらなければ、チャネ
ル1は残るデータをデュアルポートメモリ620に書込
み、一方、チャネルシーケンサ630はスライスごとに
「チャネル1」をソースチャネルとして並行して書込
む。
500バイトの第2のスライスをデュアルポートメモリ
620の記憶場所に、記憶場所689から始めて書込む
ことにより、要求された合計転送カウントを転送し続
け、チャネル1のチャネルインタリーブサイズに達した
後に別のチャネルがバスの使用を許可されたならば、転
送を中断する。インタリーブが起こらなければ、チャネ
ル1は残るデータをデュアルポートメモリ620に書込
み、一方、チャネルシーケンサ630はスライスごとに
「チャネル1」をソースチャネルとして並行して書込
む。
【0027】図6に示すように、読取りポインタ621
はデュアルポートメモリ620に結合している。尚、デ
ュアルポートメモリ620がその二重書込み・読取りポ
インタメカニズムを介して同時に書込みと読取りを実行
していることができるように、読取りポインタ621と
書込みポインタ625は互いに独立して動作する。デュ
アルポートメモリ620のデータを読取るべきときに
は、読取りポインタ621がデュアルポートメモリ62
0に沿って移動するにつれてデータを読取る。データの
宛先を指示するのは、チャネルシーケンサ630に結合
する宛先チャネルポインタ635である。そこで、その
チャネルのチャネルインタリーブサイズを侵害する前
に、データをその宛先チャネルを介してデュアルポート
メモリ620から読取る。宛先チャネルポインタ635
はチャネルシーケンサ630の次の記憶場所に増分し、
それはデュアルポートメモリ620から読取りポインタ
621を介して読取るべきデータの宛先チャネルサを指
示する。デュアルポートメモリ620の書込み動作につ
いて説明したように、複数のチャネルを支援するため
に、デュアルポートメモリ620の読取り動作もインタ
リーブすることができる。さらに、デュアルポートメモ
リ620からデータを読取るときに合計転送カウントに
達すれば、残っている転送がそのチャネルインタリーブ
サイズより小さくても別のチャネルはデュアルポートメ
モリ620からのデータを読取りを許可される。従っ
て、remnantを転送した後に転送すべきデータが
それ以上存在していない場合には、他方のチャネルを強
いて待機させないことにより、バスをさらに効率良く利
用できる。現在、デュアルポートメモリ620は図5に
示すように2つのデュアルポートランダムアクセスメモ
リにより実現される。
はデュアルポートメモリ620に結合している。尚、デ
ュアルポートメモリ620がその二重書込み・読取りポ
インタメカニズムを介して同時に書込みと読取りを実行
していることができるように、読取りポインタ621と
書込みポインタ625は互いに独立して動作する。デュ
アルポートメモリ620のデータを読取るべきときに
は、読取りポインタ621がデュアルポートメモリ62
0に沿って移動するにつれてデータを読取る。データの
宛先を指示するのは、チャネルシーケンサ630に結合
する宛先チャネルポインタ635である。そこで、その
チャネルのチャネルインタリーブサイズを侵害する前
に、データをその宛先チャネルを介してデュアルポート
メモリ620から読取る。宛先チャネルポインタ635
はチャネルシーケンサ630の次の記憶場所に増分し、
それはデュアルポートメモリ620から読取りポインタ
621を介して読取るべきデータの宛先チャネルサを指
示する。デュアルポートメモリ620の書込み動作につ
いて説明したように、複数のチャネルを支援するため
に、デュアルポートメモリ620の読取り動作もインタ
リーブすることができる。さらに、デュアルポートメモ
リ620からデータを読取るときに合計転送カウントに
達すれば、残っている転送がそのチャネルインタリーブ
サイズより小さくても別のチャネルはデュアルポートメ
モリ620からのデータを読取りを許可される。従っ
て、remnantを転送した後に転送すべきデータが
それ以上存在していない場合には、他方のチャネルを強
いて待機させないことにより、バスをさらに効率良く利
用できる。現在、デュアルポートメモリ620は図5に
示すように2つのデュアルポートランダムアクセスメモ
リにより実現される。
【0028】本発明の回路アーキテクチャをチャネルイ
ンタリーブDMA動作を支援するための好ましい実施例
として説明したが、他の複数装置転送動作にもこの回路
アーキテクチャを容易に適用できることは当業者には明
白なはずである。たとえば、CPUと複数の装置との間
の共通転送資源を介するデータ転送の場合、回路アーキ
テクチャは各装置の転送シーケンスを維持しつつ、個別
の読取り動作と書込み動作を連続して実行することがで
きる。このような回路アーキテクチャにすれば、転送資
源を効率良く利用できる。動作中、装置ごとのデータを
デュアルポートメモリに記憶する一方で、装置IDをシ
ーケンサに記録する。チャネルインタリーブメカニズム
と同様に、装置ごとにデータの流れの状態を監視するた
めにデータ転送カウントを維持することができる。「装
置ごとに1バッファ」の方式と比較して、回路アーキテ
クチャは個々のバッファの全てが必要とするシリコン領
域を犠牲にせず、帯域幅を拡張できると共に、動作の連
続性を向上させることができる。
ンタリーブDMA動作を支援するための好ましい実施例
として説明したが、他の複数装置転送動作にもこの回路
アーキテクチャを容易に適用できることは当業者には明
白なはずである。たとえば、CPUと複数の装置との間
の共通転送資源を介するデータ転送の場合、回路アーキ
テクチャは各装置の転送シーケンスを維持しつつ、個別
の読取り動作と書込み動作を連続して実行することがで
きる。このような回路アーキテクチャにすれば、転送資
源を効率良く利用できる。動作中、装置ごとのデータを
デュアルポートメモリに記憶する一方で、装置IDをシ
ーケンサに記録する。チャネルインタリーブメカニズム
と同様に、装置ごとにデータの流れの状態を監視するた
めにデータ転送カウントを維持することができる。「装
置ごとに1バッファ」の方式と比較して、回路アーキテ
クチャは個々のバッファの全てが必要とするシリコン領
域を犠牲にせず、帯域幅を拡張できると共に、動作の連
続性を向上させることができる。
【図1】DMA制御装置モジュールの概略図。
【図2】DMA制御装置モジュールを伴うコンピュータ
システムのブロック線図。
システムのブロック線図。
【図3】本発明の教示を取入れた複数のインタリーブす
るDMAチャネルを支援する回路アーキテクチャの概略
図。
るDMAチャネルを支援する回路アーキテクチャの概略
図。
【図4】本発明の教示を取入れた回路アーキテクチャの
概略図。
概略図。
【図5】好ましい一実施例における回路アーキテクチャ
の概略図。
の概略図。
【図6】書込み動作の1例における回路アーキテクチャ
の概略図。
の概略図。
【図7】チャネルインタリーブプロセスを示すフローチ
ャート。
ャート。
200 システムバス 210 CPU 220 DMA制御装置モジュール 230 バッファ 240 メモリ 250 周辺装置 300 制御構造 310 チャネルインタリーブ構造 320 デュアルポートメモリ 321 読取りポインタ 325 書込みポインタ 330 チャネルシーケンサ 331 ソースポインタ 335 宛先ポインタ 400 メモリ 401 回路アーキテクチャ 410 チャネルインタリーブ制御構造 420 デュアルポートメモリ 430 チャネルシーケンサ 450 周辺装置 460 Aバス 470 Bバス 620 デュアルポートメモリ 621 読取りポインタ 625 書込みポインタ 630 チャネルシーケンサ 631 ソースチャネルポインタ 635 宛先チャネルポインタ 689 記憶場所
Claims (2)
- 【請求項1】 コンピュータのメモリと複数の周辺装置
との間で複数のデータチャネルを介してデータを転送す
る回路アーキテクチャにおいて,前記メモリと前記周辺
装置との間に結合し、前記データチャネルを介して転送
されている複数のデータスライスを複数のデータ記憶場
所に緩衝するデュアルポートメモリであって、前記デュ
アルポートメモリに書込む書込み手段と、前記デュアル
ポートメモリから読取る読取り手段とを具備し、前記書
込み手段は、データ記憶場所が重ね書きされないよう
に、前記デュアルポートメモリから前記読取り手段によ
り前記データ記憶場所が読取られる前に前記記憶場所に
書込まないようなデュアルポートメモリと;前記デュア
ルポートメモリに結合し、そこに複数のデータチャネル
番号を記憶するチャネルシーケンス手段であって、前記
データチャネル番号のそれぞれは前記デュアルポートメ
モリに緩衝されている前記データスライスの1つに対応
し、前記チャネルシーケンス手段は、第1のデータチャ
ネル番号が前記データスライスのソースチャネルを表す
ように、前記第1のチャネルからのデータスライスが前
記デュアルポートメモリに書込まれるときに前記第1の
チャネル番号を書込み、前記チャネルシーケンス手段
は、前記第1のチャネル番号が前記データスライスの宛
先チャネルを表すように、前記データスライスが前記デ
ュアルポートメモリから読取られるときに前記第1のチ
ャネル番号を読取り、前記データスライスは前記チャネ
ルシーケンス手段に記憶されている前記第1のチャネル
を介して前記デュアルポートメモリに書込まれ、また、
前記デュアルポートメモリから読取られるようなチャネ
ルシーケンス手段と;前記デュアルポートメモリ及び前
記チャネルシーケンス手段に結合し、前記データチャネ
ルのそれぞれについて前記デュアルポートメモリを介し
て転送されるデータの量を監視するチャネル制御手段と
を具備する回路アーキテクチャ。 - 【請求項2】 コンピュータの、複数のDMAチャネル
を介して結合されているメモリと、複数の周辺装置との
間に結合する回路アーキテクチャを介してデータを転送
する方法において,前記DMAチャネルを介して転送さ
れている複数のデータスライスを複数のデータ記憶場所
に記憶する過程であって、前記複数のデータ記憶場所は
前記メモリと、前記周辺装置との間に結合するデュアル
ポートメモリの中にあり、前記デュアルポートメモリは
前記デュアルポートメモリに書込む書込み手段と、前記
デュアルポートメモリから読取る読取り手段とを具備
し、前記書込み手段は、データ記憶場所が重ね書きされ
ないように、前記デュアルポートメモリから前記読取り
手段により前記データ記憶場所が読取られる前に前記デ
ータ記憶場所に書込まないような過程と;前記デュアル
ポートメモリに結合するチャネルシーケンス手段に複数
のDMAチャネル番号を記憶する過程であって、前記D
MAチャネル番号のそれぞれは前記デュアルポートメモ
リに緩衝されている前記データスライスの1つに対応
し、前記チャネルシーケンス手段は、第1のチャネル番
号が前記データスライスのソースチャネルを表すよう
に、前記第1のチャネルからのデータスライスが前記デ
ュアルポートメモリに書込まれるときに前記第1のチャ
ネル番号を書込み、前記チャネルシーケンス手段は、前
記第1のチャネル番号が前記データスライスの宛先チャ
ネルを表すように、前記データスライスが前記デュアル
ポートメモリから読取られるときに前記第1のチャネル
番号を読取り、前記データスライスは前記チャネルシー
ケンス手段に記憶されている前記第1のチャネルを介し
て前記デュアルポートメモリに書込まれ、また、前記デ
ュアルポートメモリから読取られるような過程と;前記
データチャネルのそれぞれについて前記デュアルポート
メモリを介して転送されるデータの量を、前記デュアル
ポートメモリ及び前記チャネルシーケンス手段に結合す
るチャネル制御手段によって監視する過程とから成る方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US814765 | 1977-07-11 | ||
US07/814,765 US5386532A (en) | 1991-12-30 | 1991-12-30 | Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06266649A true JPH06266649A (ja) | 1994-09-22 |
JP3273202B2 JP3273202B2 (ja) | 2002-04-08 |
Family
ID=25215952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35881392A Expired - Fee Related JP3273202B2 (ja) | 1991-12-30 | 1992-12-28 | 複数のデータチャネルを介してデータを転送する方法及びその回路アーキテクチャ |
Country Status (5)
Country | Link |
---|---|
US (1) | US5386532A (ja) |
EP (1) | EP0550163B1 (ja) |
JP (1) | JP3273202B2 (ja) |
KR (1) | KR0142175B1 (ja) |
DE (1) | DE69229716T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011054195A (ja) * | 2004-08-17 | 2011-03-17 | Phoenix Contact Gmbh & Co Kg | 安全性関連処理のバス結合のための方法と装置 |
US8806082B2 (en) | 2010-07-29 | 2014-08-12 | Samsung Electronics Co., Ltd. | Direct memory access device for multi-core system and operating method of the same |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0683321A (ja) * | 1992-09-04 | 1994-03-25 | Fuji Xerox Co Ltd | 画像データ処理装置 |
JPH06103213A (ja) * | 1992-09-18 | 1994-04-15 | Hitachi Ltd | 入出力装置 |
US5845329A (en) * | 1993-01-29 | 1998-12-01 | Sanyo Electric Co., Ltd. | Parallel computer |
JP3471384B2 (ja) * | 1993-03-19 | 2003-12-02 | 富士通株式会社 | データ転送装置及びデータ転送処理方法 |
JPH07244607A (ja) * | 1994-02-22 | 1995-09-19 | Motorola Inc | キューメモリシステムおよびその方法 |
US5581720A (en) * | 1994-04-15 | 1996-12-03 | David Sarnoff Research Center, Inc. | Apparatus and method for updating information in a microcode instruction |
JP3525518B2 (ja) * | 1994-10-13 | 2004-05-10 | ヤマハ株式会社 | データ転送装置 |
US5613162A (en) * | 1995-01-04 | 1997-03-18 | Ast Research, Inc. | Method and apparatus for performing efficient direct memory access data transfers |
DE69614291T2 (de) * | 1995-03-17 | 2001-12-06 | Lsi Logic Corp., Fort Collins | (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung |
US5864712A (en) * | 1995-03-17 | 1999-01-26 | Lsi Logic Corporation | Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment |
US5870627A (en) * | 1995-12-20 | 1999-02-09 | Cirrus Logic, Inc. | System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue |
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 |
US5797034A (en) * | 1996-03-15 | 1998-08-18 | Adaptec, Inc. | Method for specifying execution of only one of a pair of I/O command blocks in a chain structure |
US5812877A (en) * | 1996-03-15 | 1998-09-22 | Adaptec, Inc. | I/O command block chain structure in a memory |
US5768621A (en) * | 1996-03-15 | 1998-06-16 | Adaptec, Inc. | Chain manager for use in executing a chain of I/O command blocks |
US5758187A (en) * | 1996-03-15 | 1998-05-26 | Adaptec, Inc. | Method for enhancing performance of a RAID 1 read operation using a pair of I/O command blocks in a chain structure |
US5884050A (en) * | 1996-06-21 | 1999-03-16 | Digital Equipment Corporation | Mechanism for high bandwidth DMA transfers in a PCI environment |
US6055619A (en) * | 1997-02-07 | 2000-04-25 | Cirrus Logic, Inc. | Circuits, system, and methods for processing multiple data streams |
JPH10228442A (ja) * | 1997-02-17 | 1998-08-25 | Canon Inc | ダイレクト・メモリ・アクセスによるデータ受信装置,方法および記憶媒体 |
US6199121B1 (en) * | 1998-08-07 | 2001-03-06 | Oak Technology, Inc. | High speed dynamic chaining of DMA operations without suspending a DMA controller or incurring race conditions |
DE10050980A1 (de) * | 2000-10-13 | 2002-05-02 | Systemonic Ag | Speicherkonfiguration mit I/O-Unterstützung |
US6839753B2 (en) * | 2001-02-23 | 2005-01-04 | Cardiopulmonary Corporation | Network monitoring systems for medical devices |
US20020133699A1 (en) * | 2001-03-13 | 2002-09-19 | Pueschel Roy Myron | Method and apparatus to regulate use of freely exchanged files and streams |
US7054986B2 (en) * | 2001-03-30 | 2006-05-30 | Nokia Corporation | Programmable CPU/interface buffer structure using dual port RAM |
US20020184381A1 (en) * | 2001-05-30 | 2002-12-05 | Celox Networks, Inc. | Method and apparatus for dynamically controlling data flow on a bi-directional data bus |
US6842791B2 (en) * | 2002-03-20 | 2005-01-11 | Intel Corporation | Method and apparatus for memory efficient fast VLAN lookups and inserts in hardware-based packet switches |
US6941438B2 (en) * | 2003-01-10 | 2005-09-06 | Intel Corporation | Memory interleaving |
US7185123B2 (en) * | 2004-09-15 | 2007-02-27 | Qualcomm Incorporated | Method and apparatus for allocating bandwidth on a transmit channel of a bus |
EP1645967B1 (en) | 2004-10-11 | 2008-02-27 | Texas Instruments Incorporated | Multi-channel DMA with shared FIFO buffer |
US20060253659A1 (en) * | 2005-05-05 | 2006-11-09 | International Business Machines Corporation | Method and virtual port register array for implementing shared access to a register array port by multiple sources |
US8149854B2 (en) * | 2005-06-30 | 2012-04-03 | Intel Corporation | Multi-threaded transmit transport engine for storage devices |
JP4829968B2 (ja) * | 2005-07-26 | 2011-12-07 | トムソン ライセンシング | メモリ・アーキテクチャを用いたプライマリ・セルサーチのための相関器 |
US20090083470A1 (en) * | 2007-09-24 | 2009-03-26 | Ali Corporation | System on chip device and method for multiple device access through a shared interface |
US9438844B2 (en) * | 2008-04-08 | 2016-09-06 | Imagine Communications Corp. | Video multiviewer system using direct memory access (DMA) registers and block RAM |
US8886792B2 (en) * | 2009-10-13 | 2014-11-11 | Cardiopulmonary Corp. | Method and apparatus for displaying and storing data from medical devices and alarming in response to triggers by a plurality of alarm types |
US8447897B2 (en) * | 2011-06-24 | 2013-05-21 | Freescale Semiconductor, Inc. | Bandwidth control for a direct memory access unit within a data processing system |
US9195684B2 (en) | 2012-03-02 | 2015-11-24 | Cleversafe, Inc. | Redundant task execution in a distributed storage and task network |
US9128925B2 (en) | 2012-04-24 | 2015-09-08 | Freescale Semiconductor, Inc. | System and method for direct memory access buffer utilization by setting DMA controller with plurality of arbitration weights associated with different DMA engines |
US9380474B2 (en) | 2013-03-08 | 2016-06-28 | Cardiopulmonary Corp. | Network monitoring for active medical device alarms |
CN111831595A (zh) * | 2020-06-30 | 2020-10-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种dma传输方法及相关装置 |
CN114780215A (zh) * | 2022-04-13 | 2022-07-22 | Oppo广东移动通信有限公司 | 一种任务调度方法、装置、设备及存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4403282A (en) * | 1978-01-23 | 1983-09-06 | Data General Corporation | Data processing system using a high speed data channel for providing direct memory access for block data transfers |
US4371932A (en) * | 1979-07-30 | 1983-02-01 | International Business Machines Corp. | I/O Controller for transferring data between a host processor and multiple I/O units |
WO1984000222A1 (en) * | 1982-06-30 | 1984-01-19 | Elxsi | I/o channel bus |
US4750150A (en) * | 1984-06-25 | 1988-06-07 | Allen-Bradley Company, Inc. | I/O scanner for an industrial control |
US4750107A (en) * | 1985-01-07 | 1988-06-07 | Unisys Corporation | Printer-tape data link processor with DMA slave controller which automatically switches between dual output control data chomels |
GB2196762B (en) * | 1986-10-27 | 1990-12-19 | Burr Brown Ltd | Interleaved access to global memory by high priority source |
US4831523A (en) * | 1986-10-31 | 1989-05-16 | Bull Hn Information Systems Inc. | Multiple DMA controller chip sequencer |
US4896266A (en) * | 1987-06-03 | 1990-01-23 | Bull Hn Information Systems Inc. | Bus activity sequence controller |
US5056015A (en) * | 1988-03-23 | 1991-10-08 | Du Pont Pixel Systems Limited | Architectures for serial or parallel loading of writable control store |
US5261064A (en) * | 1989-10-03 | 1993-11-09 | Advanced Micro Devices, Inc. | Burst access memory |
US5157775A (en) * | 1989-12-15 | 1992-10-20 | Eastman Kodak Company | Dual port, dual speed image memory access arrangement |
KR940002905B1 (en) * | 1989-12-15 | 1994-04-07 | Ibm | Apparatus for conditioning priority arbitration in buffered direct memory addressing |
US5175825A (en) * | 1990-02-02 | 1992-12-29 | Auspex Systems, Inc. | High speed, flexible source/destination data burst direct memory access controller |
US5182800A (en) * | 1990-11-16 | 1993-01-26 | International Business Machines Corporation | Direct memory access controller with adaptive pipelining and bus control features |
-
1991
- 1991-12-30 US US07/814,765 patent/US5386532A/en not_active Expired - Lifetime
-
1992
- 1992-12-07 DE DE69229716T patent/DE69229716T2/de not_active Expired - Fee Related
- 1992-12-07 EP EP92311130A patent/EP0550163B1/en not_active Expired - Lifetime
- 1992-12-28 JP JP35881392A patent/JP3273202B2/ja not_active Expired - Fee Related
- 1992-12-28 KR KR1019920025767A patent/KR0142175B1/ko not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011054195A (ja) * | 2004-08-17 | 2011-03-17 | Phoenix Contact Gmbh & Co Kg | 安全性関連処理のバス結合のための方法と装置 |
US8806082B2 (en) | 2010-07-29 | 2014-08-12 | Samsung Electronics Co., Ltd. | Direct memory access device for multi-core system and operating method of the same |
Also Published As
Publication number | Publication date |
---|---|
KR0142175B1 (ko) | 1998-07-01 |
JP3273202B2 (ja) | 2002-04-08 |
DE69229716D1 (de) | 1999-09-09 |
EP0550163B1 (en) | 1999-08-04 |
US5386532A (en) | 1995-01-31 |
EP0550163A1 (en) | 1993-07-07 |
KR930014067A (ko) | 1993-07-22 |
DE69229716T2 (de) | 2000-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3273202B2 (ja) | 複数のデータチャネルを介してデータを転送する方法及びその回路アーキテクチャ | |
JP3271125B2 (ja) | データを転送する方法と装置及びデータ転送をインタリーブする装置 | |
EP0732659B1 (en) | Controlling (n+i) I/O channels with (n) data managers in a homogeneous software programming environment | |
US5724583A (en) | System for handling requests for DMA data transfers between a host processor and a digital signal processor | |
EP0241129B1 (en) | Addressing arrangement for a RAM buffer controller | |
US5864712A (en) | Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment | |
US4860244A (en) | Buffer system for input/output portion of digital data processing system | |
US5805927A (en) | Direct memory access channel architecture and method for reception of network information | |
JPH0827707B2 (ja) | Fifoバッファの制御装置及び制御方法並びにデータ転送を制御する装置 | |
US6889266B1 (en) | Method for delivering packet boundary or other metadata to and from a device using direct memory controller | |
JPH09160862A (ja) | ローカル・サイド及びホスト・サイドの間でデータ・ブロックを転送するためのステータス処理システム | |
US4675807A (en) | Multiple file transfer to streaming device | |
US3961312A (en) | Cycle interleaving during burst mode operation | |
KR100638378B1 (ko) | 디스크 제어장치의 메모리 구조에 대한 시스템 및 방법 | |
JPH10124438A (ja) | 入出力処理装置 | |
JPH02171843A (ja) | インターフェース装置 | |
JPH0246967B2 (ja) | ||
JPH0736806A (ja) | Dma方式 | |
JPH0310354A (ja) | データ転送制御システム | |
JPH05151137A (ja) | 電子計算機装置 | |
JPH0460257B2 (ja) | ||
JPH04361348A (ja) | データ転送方法 | |
JPS62247443A (ja) | チヤネル制御方式 | |
JPS60142767A (ja) | 非同期型のバス支配方式 | |
JPH10293742A (ja) | データ転送方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |