JP3416021B2 - ローカルdmaコントローラによってスレーブdmaエミュレーション・モードでdma書込みを実行する方法 - Google Patents

ローカルdmaコントローラによってスレーブdmaエミュレーション・モードでdma書込みを実行する方法

Info

Publication number
JP3416021B2
JP3416021B2 JP12520797A JP12520797A JP3416021B2 JP 3416021 B2 JP3416021 B2 JP 3416021B2 JP 12520797 A JP12520797 A JP 12520797A JP 12520797 A JP12520797 A JP 12520797A JP 3416021 B2 JP3416021 B2 JP 3416021B2
Authority
JP
Japan
Prior art keywords
dma
bus
master
dma controller
controller
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
JP12520797A
Other languages
English (en)
Other versions
JPH1069455A (ja
Inventor
ティモシー・シー・ウング
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1069455A publication Critical patent/JPH1069455A/ja
Application granted granted Critical
Publication of JP3416021B2 publication Critical patent/JP3416021B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • 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/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • 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)
  • Computer And Data Communications (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・シ
ステム・バス上で使用される直接メモリ・アクセス(D
MA)方法に関する。さらに詳細には、本発明は、いわ
ゆる「スレーブ」DMAデバイスを本来サポートしない
コンピュータ・システム・バス上でスレーブDMAエミ
ュレーションを達成することができる方法に関する。
【0002】
【従来の技術】ビジネスおよび私生活のあらゆる面にお
いてパーソナル・コンピュータがますます使用されるに
つれて、それらのパーソナル・コンピュータに差し込む
周辺アダプタ・カードの機能を常に高める要求が生じて
いる。アダプタ・カードは、ユーザが必要とする特殊機
能を実現するための専用回路を含む。例えば、アダプタ
・カードは、モデム、サウンド・プロセッサまたはビデ
オ・プロセッサの働きをする。周辺アダプタ・カード
は、通常、デジタル信号プロセッサや組込みコントロー
ラなど特殊マイクロプロセッサを含む。周辺アダプタ・
カードの機能を高める1つの方法は、アダプタ・カード
とホスト・コンピュータのメイン・システム・メモリと
の間でデータを直接交換できるようにすることである。
そのような交換は、当業界では直接メモリ・アクセスま
たは「DMA」と呼ばれる。DMA機能を有するコンピ
ュータ・システム・バスの動作原理は、当技術分野で周
知であり、現在、多数のタイプのコンピュータ・システ
ム・バスがDMA機能を有する。例えば、IBM互換パ
ーソナル・コンピュータにおいて普及している「IS
A」バスは、DMA機能を備えている。
【0003】ISAバスを含めて、DMA可能コンピュ
ータ・システム・バスのうちには、マスタ・デバイスと
スレーブ・デバイスという異なる2つのタイプのDMA
デバイスとともに動作できるようになっているものもあ
る。本明細書では、そのようなバスを「マスタ/スレー
ブ」コンピュータ・システム・バスと呼ぶ。スレーブ・
デバイスが動作できるためには、バスをシステムDMA
コントローラに接続しなければならない。これは、スレ
ーブDMAデータ転送中にデータ・フローを管理する働
きをする。ただし、マスタ・デバイスとの間のDMA転
送では、システムDMAコントローラは使用されない。
代わりに、DMAコントローラが周辺カード上に配置さ
れる。そのようなDMAコントローラを有する周辺カー
ドは、バスマスタ・カードと呼ばれる。1995年11
月2日出願の米国特許出願第08/556773号に
は、バスマスタの働きをするアダプタ・カードのいくつ
かの利点が記載されている。コンピュータ・システム・
バス上でバスマスタ・カードを使用する場合、ローカル
DMAコントローラと呼ばれるアダプタ・カード上のD
MAコントローラが、DMAデータ転送中バスの制御権
を有し、データ・フローを管理する。
【0004】周辺アダプタ・カードのうちには、DMA
データ転送を必要とするが、ローカルDMAコントロー
ラは有しないものもある。そのようなアダプタ・カード
は常に、「スレーブ」デバイスとして動作し、アダプタ
・カードとコンピュータ・システム・メイン・メモリと
の間でDMAデータ転送が行われる。スレーブ・デバイ
スを使用する場合、ホスト・コンピュータ・システム内
で動作中のデバイス・ドライバ・ソフトウェアが、行う
べきDMAデータ転送の開始アドレスおよび深さをシス
テムDMAコントローラに通知する。次いで、アダプタ
・カード上のスレーブ・デバイスは、システムDMAコ
ントローラに、バスを引き継ぎ、ホスト・コンピュータ
・メモリとアダプタ・カード上のデバイスとの間でのD
MAデータ転送を管理するよう要求する。この要求は、
バス内の特定の1組の接続を介してシステムDMAコン
トローラに伝達される。ISAバスでは、アダプタ・カ
ードは、システムDMAコントローラに、DMA要求線
または「DRQ」線と呼ばれる線を介して転送を実行す
るよう要求し、DMA肯定応答線または「DACK」線
を介してシステムDMAコントローラから肯定応答信号
を受け取る。次いで、システムDMAコントローラは、
バスを引き継ぎ、バスマスタ・カードの場合と同じ方式
で転送を管理する。
【0005】スレーブ・デバイスの問題点は、システム
DMAコントローラを必要とするバスに依存することで
ある。コンピュータ・システム・バスのうちには、シス
テムDMAコントローラを有せず、したがってスレーブ
・デバイスとではまったく動作せず、バスマスタ・デバ
イスと一緒にしか動作しないものもある。本明細書で
は、そのようなバスを「マスタ専用」コンピュータ・シ
ステム・バスと呼ぶ。マスタ専用バスの例は、「PC
I」バスである。PCIバス上では、バス・サイクル・
イニシエータはすべてバスマスタ・デバイスとして動作
しなければならない。スレーブDMAサポートもなく、
システムDMAコントローラもない。PCIバスは、帯
域幅が広く、クロック速度が速いので、現在の高性能I
BM互換パーソナル・コンピュータで広く一般に使用さ
れている。これらの特徴を利用するために、アダプタ・
カードの設計者は、その周辺アダプタ・カードのPCI
バージョンを設計中である。
【0006】
【発明が解決しようとする課題】これらのPCIカード
の1つを使用する際の問題点は、ISAバージョンのカ
ードとともに動作するように設計されたアプリケーショ
ン・ソフトウェアが、場合によってはカードをDMAデ
ータ転送用のスレーブとして動作させようとすることで
ある。コンピュータのユーザは、自身の既存のソフトウ
ェア・アプリケーションを、PCIバージョンのアダプ
タ・カードで使用したいと望む。PCIバージョンのア
ダプタ・カードは、同じ回路を使用して、ISAバージ
ョンのカードと同じ機能を実現する。本明細書では、ア
ダプタ・カード上で特殊目的機能を実現する回路をエミ
ュレーション回路と呼ぶ。この回路は、音声発生、通
信、または他の何らかの機能を実現することができる。
アダプタ・カード用のアプリケーション・ソフトウェア
がISAバージョンのカードを「スレーブ」デバイスと
して動作させる場合、カード上のDMAコントローラが
スレーブ動作をエミュレートし、同時にバスマスタ・デ
バイスとして動作するのでなければ、このソフトウェア
はPCIバージョンのカードでは動作しない。広く使わ
れているSoundBlasterTM互換アダプタ・カ
ードおよび多数のポピュラーなゲーム・アプリケーショ
ンの場合がそうである。しかしながら、問題のパーソナ
ル・コンピュータがマスタ専用コンピュータ・システム
・バスとマスタ/スレーブ・コンピュータ・システム・
バスの両方を有する場合、それはシステムDMAコント
ローラをも有する。この場合、アダプタ・カード上のロ
ーカルDMAコントローラがシステムDMAコントロー
ラとして働いてカードをスレーブ・デバイスとして動作
させる場合、容認できないデバイス競合が生じる。シス
テムDMAコントローラがコンピュータ・システム内に
存在できるように、PCIバスなどマスタ専用コンピュ
ータ・システム・バス上でスレーブDMA動作をエミュ
レートする方法が必要である。
【0007】
【課題を解決するための手段】上記の必要は、2つのモ
ードで動作できるアダプタ・カード用のローカルDMA
コントローラを含む処理回路を動作させる方法を提供す
る、本発明によって満足される。ローカルDMAコント
ローラは、バスマスタの働きをするが、アプリケーショ
ンからスレーブ・デバイスおよびシステムDMAコント
ローラが見えるようにバスへの適切なレジスタを提供
し、フルDMAモードの動作が可能である。さらに、ロ
ーカルDMAコントローラは、マスタ専用バスとマスタ
/スレーブ・バスの両方を含むホスト・コンピュータ・
システム内にインストールされたとき、スレーブDMA
エミュレーション・モードでも動作できる。スレーブD
MAエミュレーション・モードは、通常、ISAバスと
PCIバスの両方を含む、IBM互換パーソナル・コン
ピュータにおいて極めて有用である。このタイプのパー
ソナル・コンピュータは、システムDMAコントローラ
を有し、これは、適切な動作を維持すべき場合、アダプ
タ・カード上のローカルDMAコントローラと競合して
はならない。
【0008】本発明の方法は、デジタル信号プロセッサ
(DSP)などの専用マイクロプロセッサ上で実施する
ことが好ましい。コア論理の他に、そのようなマイクロ
プロセッサは、ローカルDMAコントローラと呼ばれる
それ自体の組込みDMAコントローラを具備する。本発
明によるローカルDMAコントローラは、マスタ専用バ
ス・インタフェース論理用の接続だけでなく、システム
DMAコントローラ用の接続をも有する。システムDM
Aコントローラは、マスタ専用コンピュータ・システム
・バスの他にマスタ/スレーブ・コンピュータ・システ
ム・バスを有するコンピュータ・システム内に含まれ
る。マスタ/スレーブ・バスがISAバスであるシステ
ム用に設計されたマイクロプロセッサでは、これらの接
続は、前述のDRQ接続およびDACK接続である。こ
のマイクロプロセッサはまた、ローカルDMAコントロ
ーラとコア論理の間に配置されたマスタ専用バス・イン
タフェース論理、およびローカルDMAコントローラと
コア論理の間に配置されたエミュレーション論理を含
む。マスタ専用バス・インタフェース論理はマスタ専用
バス・インタフェースを有する。
【0009】上述のローカルDMAコントローラは、ホ
スト・コンピュータ・システム内で、通常アダプタ・カ
ード上で使用される。上述の処理回路は、システムDM
Aコントローラを有しないホスト・コンピュータ・シス
テム内で動作するように設計されたアダプタ・カード上
に設置することができる。このようなカードは、マスタ
専用バス用の接続のみを有することになる。この場合、
システムDMAコントローラ用の接続は使用されない。
本発明はまた、マスタ専用コンピュータ・システム・バ
スとマスタ/スレーブ・コンピュータ・システム・バス
の両方用のコネクタを有するアダプタ・カード上で使用
することができる。この場合、アダプタ・カード上の処
理回路は、マスタ/スレーブ・コンピュータ・システム
・バスを介してシステムDMAコントローラに接続され
る。いずれにせよ、ローカルDMAコントローラやエミ
ュレーション論理など、アダプタ・カード上の様々な構
成要素のいくつかは別々のチップ上にあってもよいが、
すべて単一のマイクロプロセッサ上に集積することが好
ましい。
【0010】フルDMAモードでは、ローカルDMAコ
ントローラは、DMA転送のワード・カウントおよび開
始アドレスを受け取り、要求を受け取り、マスタ専用コ
ンピュータ・システム・バスを介してDMA転送を実行
し、内部状態レジスタを更新し、転送が完了したときエ
ミュレーション論理に通知するように動作する。スレー
ブDMAエミュレーション・モードでは、ローカルDM
Aコントローラは、マスタ専用バスをDMA活動につい
て監視し、DMA制御情報をラッチし、マスタ専用バス
上で転送を実行し、またマスタ/スレーブ・バス上で転
送を実行するようシステムDMAコントローラに指示
し、転送が完了したことをエミュレーション論理に通知
する。どちらの場合にも、すべてのデータを移動するた
めに2回以上の転送が必要な場合は、このプロセスを繰
り返す。
【0011】本発明は、システムDMAコントローラを
用いずにフルDMAモードで動作できるだけでなく、シ
ステムDMAコントローラを用いてスレーブDMAエミ
ュレーション・モードにおいても動作できる、ローカル
DMAコントローラを動作させる汎用性の高い方法を提
供する。本発明は、PCIバスなどマスタ専用コンピュ
ータ・システム・バスを有するコンピュータ・システム
で使用することができる。本発明はまた、マスタ専用コ
ンピュータ・システム・バスと、システムDMAコント
ローラを有するISAバスなどマスタ/スレーブ・コン
ピュータ・システム・バスの両方を有するコンピュータ
・システムでも使用することができる。本発明により、
デバイス競合問題を生じることなく、いずれのタイプの
システム内でもマスタDMA動作ならびにスレーブDM
A動作が可能である。
【0012】
【発明の実施の形態】図1に、PCIバスなどのマスタ
専用コンピュータ・システム・バス110に接続され
た、本発明を使用した処理回路106を示す。処理回路
106は、通常、デジタル信号プロセッサなどの単一の
マイクロプロセッサに組み込まれる。マイクロプロセッ
サ・コア105は、バス・インタフェース論理103と
エミュレーション論理104とに接続される。
【0013】エミュレーション論理104は、アダプタ
の1つまたは複数のユーザ機能を実現するハードウェア
を提供する。これらの機能は、音声発生、モデム機能、
ビデオ、音声認識、電話応答機能、または上記その他の
機能の任意の組合せとすることができる。エミュレーシ
ョン論理104は、マイクロフォンやスピーカなど、ホ
スト・コンピュータ・システムの外部にある装置用の追
加のコネクタを含むことができる。これらは、図が見や
すいように図示されていない。
【0014】バス・インタフェース論理103とエミュ
レーション論理104は共にローカルDMAコントロー
ラ102に接続される。本発明を使用したアダプタ・カ
ードがPCIバスとともに動作するように設計されてい
ると仮定すると、ローカルDMAコントローラは、マス
タ専用バス・インタフェース論理103およびマスタ専
用バス・インタフェース108を介してPCIバス11
0に接続される。PCIバス110は、CPUブリッジ
を介してホスト・コンピュータ・システムCPU101
に接続される。
【0015】バス・インタフェース論理103は、すで
に説明した内部論理要素102および105とマスタ専
用バスとの間でのハンドシェーキング・インタフェース
制御を行う。この制御により、コア論理105およびロ
ーカルDMAコントローラ102を様々なバス・アーキ
テクチャ内で使用することが可能になる。PCIバスの
場合、バス・インタフェースは、ローカルDMAコント
ローラおよびコア論理のローカル・インタフェース・プ
ロトコルをサポートするCPUブリッジである。CPU
ブリッジは、ホストCPUと特定のマスタ専用コンピュ
ータ・システム・バスとの間のハンドシェーキングを行
う。このCPUブリッジはまた、メモリ・コントローラ
やビデオ・コントローラなど、CPUに緊密に結合され
た他の論理要素を含むことができる。PCIシステムの
場合、CPUブリッジはDRAMコントローラを含む。
【0016】ローカルDMAコントローラ102はシス
テムDMAコントローラ用の接続109を有する。ロー
カルDMAコントローラが、ISAバスが存在する機械
内でISAアーキテクチャとともに動作するように設計
されている場合、これらの接続はDRQおよびDACK
である。図では、アダプタ・カードは、マスタ専用PC
Iバスにのみ接続されている。したがって、接続109
は使用されない。この場合、カードの機能が、システム
内で動作中のソフトウェアによってスレーブ・デバイス
としてそれにアクセスすることを必要とする場合、ロー
カルDMAコントローラはフルDMAモードにて動作す
る。その場合、ローカルDMAコントローラはシステム
DMAコントローラをエミュレートする。本発明の好ま
しい実施形態では、カードのこの機能はもともとISA
バス上で実施されていたものであり、ローカルDMAコ
ントローラは、ISAアーキテクチャを使用するパーソ
ナル・コンピュータにおいて普及しているIntel8
237DMAコントローラをエミュレートする。
【0017】ローカルDMAコントローラは、8237
内のレジスタと同じ以下のDMAレジスタを提供するこ
とによってIntel8237DMAコントローラをエ
ミュレートする。ここではDMAチャネルは1つだけが
示してある。他のDMAチャネルを選択した場合、その
チャネル用の適切なレジスタが使用される。Intel
8237DMAコントローラのレジスタ・セットおよび
機能についての完全な説明は、Intel Perip
heral Data Book,October,1
989、またはCS8233 PEAK/386 AT
Chipset Data Book,Decemb
er,1990に記載されている。
【表1】 ISA入出力 読取りまたは DMAレジスタ アドレス 書込み動作 00010 読取り チャネル1現在レジスタ 00010 書込み チャネル1基底および現在レジスタ 00011 読取り チャネル1現在ワード・カウント 00011 書込み チャネル1基底および現在ワード・カウント 01000 読取り 状況レジスタ 01000 書込み 書込みコマンド・レジスタ 01001 書込み 書込み要求レジスタ 01010 書込み 単一マスク書込みレジスタ 01011 書込み 書込みモード・レジスタ 01100 書込み バイト・ポインタ書込みフリップ/フロップ 01101 読取り 一時読取りレジスタ 01101 書込み マスタ・クリア 01110 書込み マスク・クリア・レジスタ 01111 書込み 全マスク・レジスタ・ビット書込み ローカルDMAコントローラ102は、フルDMAモー
ドにおいて適切なチャネル用にプログラムされた後でこ
れらのレジスタに対するすべてのアクセスを要求する。
【0018】図3に、ローカルDMAコントローラが適
切なチャネル用にプログラムされた後で、フルDMAモ
ードでDMA転送を実行する方法を示す。チャネルは、
パワー・アップ時またはプログラム・ロード時にシステ
ムBIOSまたはデバイス・ドライバによって設定され
る。301で、ローカルDMAコントローラは、次のD
MA転送のためのワード・カウント、基底アドレス、お
よび方向を受け取る。302で、ホスト・コンピュータ
・システム内で動作中のアプリケーション・ソフトウェ
アまたはソフトウェア・ドライバがDMAデータ転送を
要求し、ローカルDMAコントローラはエミュレーショ
ン論理からこの要求を受け取る。303で、ローカルD
MAコントローラは、バスを介して転送を実行する。ロ
ーカルDMAコントローラは、バス要求を開始し、次い
で許可を受け取り、次いで適切なメモリ・アドレスに対
して読取りバス・サイクルまたは書込みバス・サイクル
を実行することによって転送を実行する。プロセスが完
了すると、ローカルDMAコントローラは、304でそ
の内部アドレス、ワード・カウントおよび状況レジスタ
を更新する。このステップが必要なのは、アプリケーシ
ョン・ソフトウェアまたはドライバ・ソフトウェアがこ
れらのレジスタの状況を検査することが多いからであ
る。305で、ローカルDMAコントローラは、転送が
完了したことをエミュレーション論理に通知する。30
6で、転送を完了するためにさらにデータを移動する必
要があるかどうかを判定する。さらにデータを移動する
必要がある場合、302から始めて次の転送要求を処理
する。転送が完了した場合、次回DMA転送が必要とな
った時にこのプロセスを繰り返す。
【0019】図2に、スレーブDMAエミュレーション
・モードで動作しているアダプタ・カードを示す。専用
回路またはマイクロプロセッサ206は、図1と同じ構
成要素、すなわちマイクロプロセッサ・コア205、バ
ス・インタフェース208、バス・インタフェース論理
203、エミュレーション論理204、およびローカル
DMAコントローラ202を有する。この場合、本発明
は、この実施形態ではPCIバスであるマスタ専用バス
210と、この実施形態ではISAバスであるマスタ/
スレーブ・バス211の両方を有するシステムで使用さ
れている。マスタ専用バス・インタフェース208は、
バス・インタフェース論理203をマスタ専用バス21
0に接続する。マスタ専用バス210は、ブリッジを介
してホスト・コンピュータ・システムCPU201に接
続される。
【0020】図2の配置では、ホスト・コンピュータ・
システムはシステムDMAコントローラ207を有す
る。この場合、システムDMAコントローラ用の接続2
09、DRQおよびDACKは、システムDMAコント
ローラ207に接続される。これらの接続は、通常バス
の1つを介して行われるが、本発明の概念をよりよく図
示するために図ではDMAコントローラ間で直接行われ
るものとして示してある。この配置では、ローカルDM
Aコントローラ202がPCIバス210をDMA活動
について詮索(スヌーピング)することができる。エミ
ュレーション論理機能を有するISAバージョンのアダ
プタ・カードがスレーブ・デバイスの場合、アプリケー
ション・ソフトウェアまたはドライバは、まず次の転送
の開始アドレスおよび深さをシステムDMAコントロー
ラ207に通知する。これにより、スレーブDMA転送
を開始しようと試みる。ローカルDMAコントローラ2
02は、この情報を捕捉するが、次いでレジスタの正確
な状況を入手するためにISAバス上で転送を実行する
ようシステムDMAコントローラ207に指示する。ス
レーブDMA書込みの場合、システムDMAコントロー
ラ207は、通常はプルアップ抵抗がISAバスに接続
されているので、ISAバスからオール1を読み取り、
オール1をシステム・メモリに書き込む。次いで、ロー
カルDMAコントローラ202は、メモリ内のこのデー
タを、エミュレーション論理204によって供給された
正確なデータで置換する。DMA読取りの場合、システ
ムDMAコントローラ207は、データをISAバスに
書き込み、そのデータは失われる。ただし、正確なデー
タがローカルDMAコントローラ202によってエミュ
レーション論理204に書き込まれる。このようにし
て、システムDMAコントローラは、常にそのレジスタ
の正確な状況を有するようになる。これは、アプリケー
ション・ソフトウェアによってポーリングされ得るが、
実際のDMA転送には影響を及ぼさない。
【0021】図4に、ローカルDMAコントローラをス
レーブDMAエミュレーション・モードにしてDMA書
込みを実行する本発明による方法を示す。ローカルDM
Aコントローラは、401でバスをDMA活動について
監視する。ホスト・システムCPUが次の転送の開始ア
ドレスと深さを含むDMA制御情報をシステムDMAコ
ントローラに書き込むとき、ローカルDMAコントロー
ラは、402でこの情報をラッチする。ローカルDMA
コントローラは、403でそのデータをアダプタ上のエ
ミュレーション論理からローカルDMAコントローラに
転送する。410で、ローカルDMAコントローラは2
つの選択肢を有する。ローカルDMAコントローラは、
409でシステムDMAコントローラの現アドレスを変
更してから、システムDMAコントローラにマスタ/ス
レーブ・バス上で同じ転送を実行するよう要求すること
ができる。あるいは、ローカルDMAコントローラは、
ステップ404に直接進むこともできる。ローカルDM
Aコントローラがアドレスを変更する場合、ローカルD
MAコントローラは、転送要求が行われる前にダミー3
2ビット・バイト・アドレスをシステムDMAコントロ
ーラに書き込む。そのアドレス位置は、システム初期設
定の際に事前割振りされる。現アドレスを変更すること
により、ローカルDMAコントローラは、ローカルDM
Aコントローラが真のデータを書き込む前に、システム
DMAコントローラが所期のDMAターゲット・メモリ
に打撃を与えるのを回避することができる。ホスト・ソ
フトウェアが絶えずターゲット・メモリ位置を特定の値
の変化について読み取っている場合には、ステップ40
9が必要となることがある。
【0022】ステップ404で、ローカルDMAコント
ローラは、マスタ/スレーブ・バス上で同じ転送を実行
するようシステムDMAコントローラに要求し、肯定応
答を受け取る。この活動は、ISAバスの場合、前述の
ようにDRQ信号およびDACK信号によって処理され
る。405で、ダミー転送が終了したか確認するために
検査を行う。その転送が完了した後、ローカルDMAコ
ントローラは、406で真のデータをマスタ専用バスを
介してシステム・メモリに転送する。ローカルDMAコ
ントローラは、407でエミュレーション論理に転送が
完了したことを通知する。408で、転送を完了するた
めにさらにデータを移動する必要があるかどうかを判定
する。さらにデータを移動する必要がある場合、403
から始めてこのプロセスを繰り返す。さらにデータを移
動する必要がない場合、このプロセスはリセットされ
て、始めに戻る。
【0023】前述のように、システムDMAコントロー
ラは、最初にオール1をメモリに書き込む。ダミー転送
が完了したとき、このデータを真のデータで置換しなけ
ればならないので、405でダミー転送がいつ完了した
かを判定することが重要である。真のデータをできるだ
け早くシステム・メモリに入れる好ましい方法は、転送
がいつ完了したかを判定するために、マスタ専用バスの
スヌーピングによって転送を直接監視することである。
この判定のためにスヌーピング機能を使用すると、シス
テムDMAコントローラがDACK線のアサート解除後
にオール1をメモリに書き込む場合に、データが失われ
る可能性が低くなる。このようなことがあり得ず、した
がってタイミングがそれほど重要でない場合、405で
DACK線をアサート解除について監視することによっ
て判定を行うことができる。DACK線のアサート解除
は、転送が完了したというシステムDMAコントローラ
からの肯定応答の働きをする。この後者の方法では、ア
ダプタ・カードの設計が簡単になる。
【0024】図5に、ローカルDMAコントローラをス
レーブDMAエミュレーション・モードにしてDMA読
取りを実行する本発明による方法を示す。501でマス
タ専用バスを監視する。ホストがいつでもDMA転送で
きる準備ができたとき、転送の開始アドレスおよび深さ
を含むDMA制御情報がシステムDMAコントローラに
書き込まれる。ローカルDMAコントローラは、バスを
スヌーピングし、502でこの情報をラッチする。次い
で、ローカルDMAコントローラは、503でデータを
受け取り、同時に504でマスタ/スレーブ・コンピュ
ータ・システム・バスを介して転送を実行するようシス
テムDMAコントローラに要求し、肯定応答を受け取
る。要求および肯定応答は、DRQ線およびDACK線
を介して処理される。ローカルDMAコントローラは、
505でシステムDMAコントローラが転送を完了する
のを待つ。DACK線がアサート解除されたとき、転送
は完了する。506で、ローカルDMAコントローラ
は、データをエミュレーション論理に転送する。507
で、転送を完了するためにさらにデータを移動する必要
があるか確認するために検査を行う。さらにデータを移
動する必要がある場合、503からプロセスを繰り返
す。さらにデータを移動する必要がない場合、このプロ
セスはリセットされて始めに戻る。
【0025】本発明を使用するアダプタ・カードは、図
6に示すようなデスクトップ・コンピュータ・システム
またはポータブル・コンピュータ・システム600内で
使用される。このシステムは、システム・ユニット60
6、キーボード607、およびコンピュータ・ディスプ
レイ601用の接続を含む。これらの接続は、システム
・ユニット606の背部にあり、図示されていない。こ
のシステムの中央演算処理装置(CPU)603は、シ
ステム・マザーボード上に搭載されている。このシステ
ムは、マスタ/スレーブ・コンピュータ・システム・バ
スとマスタ専用コンピュータ・システム・バスの両方に
接続された少なくとも1つのアダプタ・カード608を
有する。IBM互換パーソナル・コンピュータでは、バ
ス・コネクタ対は、1つのアダプタ・カードが両方のバ
スにインタフェースできるように設計されている。ロー
カルDMAコントローラおよびマイクロプロセッサ・コ
ア論理を含む本発明を使用する回路605は、アダプタ
・カード608上に搭載される。この回路はまた、エミ
ュレーション論理とマスタ専用バス・インタフェースを
含む。これらの機能は、単一のデジタル信号プロセッサ
(DSP)に組み込まれることが最も多い。このコンピ
ュータ・システムは、図に示されていないシステムDM
Aコントローラをも含む。
【0026】図7に、本発明を使用する回路がコンピュ
ータ・システム・ユニットのマザーボード上に搭載され
ているコンピュータ・システム700を示す。コンピュ
ータ・システム700は、システム・ユニット706、
キーボード707、およびコンピュータ・ディスプレイ
701用の接続から構成される。これらの接続はこの図
では見えない。システム・ユニット706はCPU70
3を搭載している。本発明の処理回路705、通常DS
Pは、CPU703を有するシステム・ユニットのマザ
ーボード上に搭載される。処理回路705は、マスタ専
用コンピュータ・システム・バスおよびマスタ/スレー
ブ・コンピュータ・システム・バスにハード・ワイヤ配
線されており、ローカルDMAコントローラ、マイクロ
プロセッサ・コア論理、エミュレーション論理およびマ
スタ専用バス・インタフェースを含む。
【0027】専用アダプタ・カード上またはホスト・コ
ンピュータのシステム・マザーボード上のローカルDM
Aコントローラを特定の方法を使用して動作させること
ができる本発明の特定の実施形態を示した。ローカルD
MAコントローラは、フルDMAモードで動作し、また
はスレーブDMAエミュレーション・モードで動作する
ことができる。本発明は、アダプタをスレーブ装置とし
て動作させるように設計されたホスト・コンピュータ・
システム内のソフトウェアをバス上のアダプタがスレー
ブDMAサポートを有しない場合でも適切に動作させる
ための方法を提供する。以上、本発明の特定の実施形態
について説明したが、本発明には他にも多数の可能な実
施形態があることが当業者なら理解できよう。
【0028】
【0029】
【図面の簡単な説明】
【図1】本発明をマスタ専用コンピュータ・システム・
バスのみを有するシステム内で使用した処理回路を示す
図である。
【図2】本発明をマスタ専用コンピュータ・システム・
バスとマスタ/スレーブ・コンピュータ・システム・バ
スの両方を有するコンピュータ・システム内で使用した
処理回路を示す図である。
【図3】ローカルDMAコントローラをフルDMAモー
ドで動作させる本発明による方法を示す図である。
【図4】ローカルDMAコントローラをスレーブDMA
エミュレーション・モードにしてDMA書込みを実行す
る本発明による方法を示す図である。
【図5】ローカルDMAコントローラをスレーブDMA
エミュレーション・モードにしてDMA読取りを実行す
る本発明による方法を示す図である。
【図6】本発明がその上で実施されているアダプタ・カ
ードを含むホスト・コンピュータ・システムを示す図で
ある。
【図7】本発明がシステム・マザーボード上で実施され
ているホスト・コンピュータ・システムを示す図であ
る。
【符号の説明】
101 ホスト・コンピュータ・システム 102 ローカルDMAコントローラ 103 バス・インタフェース論理 104 エミュレーション論理 105 マイクロプロセッサ・コア 106 処理回路 108 マスタ専用バス・インタフェース 110 マスタ専用コンピュータ・システム・バス 201 CPU 202 ローカルDMAコントローラ 203 バス・インタフェース論理 204 エミュレーション論理 205 マイクロプロセッサ・コア 206 専用回路 207 システムDMAコントローラ 208 マスタ専用バス・インタフェース 210 マスタ専用バス 211 マスタ/スレーブ・バス
フロントページの続き (56)参考文献 木下篤芳,大和田崇,生まれ変わるノ ート・パソコン−ノート型機にもPCI の時代が来た−,日経バイト,日経BP 社,1996年 1月22日,第148号,P. 142−157 (58)調査した分野(Int.Cl.7,DB名) G06F 13/28 310 G06F 13/00 353 EUROPAT(QUESTEL) WPI(DIALOG)

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】エミュレーション論理を有するアダプタ・
    カード上に設けられたローカルDMAコントローラが
    該アダプタ・カードがマスタ専用コンピュータ・システ
    ム・バスに接続されているときにスレーブDMA機能が
    実施されるようにフルDMAエミュレーションが可能で
    あり、マスタ/スレーブ・コンピュータ・システム・バ
    スに接続されたシステムDMAコントローラ用の接続を
    有する前記ローカルDMAコントローラによって、スレ
    ーブDMAエミュレーション・モードでDMA書込みを
    実行する方法であって、 前記マスタ専用コンピュータ・システム・バスをDMA
    活動について監視するステップ(401)と、 DMA転送要求に関するDMA制御情報をラッチするス
    テップ(402)と、 前記エミュレーション論理から前記ローカルDMAコン
    トローラへのデータのDMA転送を実行するステップ
    (403)と、 DMA転送を直接監視することができない場合に前記シ
    ステムDMAコントローラにダミー・アドレスを書き込
    むステップ(409)と、 前記マスタ/スレーブ・コンピュータ・システム・バス
    上でダミーのDMA転送を実行するよう前記システムD
    MAコントローラに要求し、前記システムDMAコント
    ローラから肯定応答を受け取るステップ(404)と、 前記マスタ/スレーブ・コンピュータ・システム・バス
    上でダミーのDMA転送が完了したかどうか判定するス
    テップ(405)と、 前記マスタ専用コンピュータ・システム・バス上で真の
    DMA転送を実行するステップ(406)と、真の DMA転送が完了したことを前記エミュレーション
    論理に対し通知するステップ(407)と、 要求されたDMA転送が完了していない場合に追加のD
    MA転送を実行するステップ(408)とを含む方法。
  2. 【請求項2】前記判定するステップが、DMA転送を直
    接監視することによって実行されることを特徴とする、
    請求項に記載の方法。
  3. 【請求項3】前記判定するステップが、前記システムD
    MAコントローラから肯定応答を受け取ることによって
    達成されることを特徴とする、請求項に記載の方法。
JP12520797A 1996-05-31 1997-05-15 ローカルdmaコントローラによってスレーブdmaエミュレーション・モードでdma書込みを実行する方法 Expired - Fee Related JP3416021B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/657,845 US5748945A (en) 1996-05-31 1996-05-31 Method for slave DMA emulation on a computer system bus
US08/657845 1996-05-31

Publications (2)

Publication Number Publication Date
JPH1069455A JPH1069455A (ja) 1998-03-10
JP3416021B2 true JP3416021B2 (ja) 2003-06-16

Family

ID=24638884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12520797A Expired - Fee Related JP3416021B2 (ja) 1996-05-31 1997-05-15 ローカルdmaコントローラによってスレーブdmaエミュレーション・モードでdma書込みを実行する方法

Country Status (4)

Country Link
US (1) US5748945A (ja)
JP (1) JP3416021B2 (ja)
KR (1) KR100240922B1 (ja)
TW (1) TW476884B (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884050A (en) * 1996-06-21 1999-03-16 Digital Equipment Corporation Mechanism for high bandwidth DMA transfers in a PCI environment
US5898859A (en) * 1996-10-01 1999-04-27 Intel Corporation Address shadow feature and methods of using the same
US6078742A (en) * 1996-12-19 2000-06-20 Ati International Hardware emulation
US5974239A (en) * 1997-06-11 1999-10-26 Micron Electronics, Inc. Data transfer method for a bus device in a computer system by placing first and second addresses corresponding to a bridge and with the bus device respectively on a bus
US6047349A (en) * 1997-06-11 2000-04-04 Micron Electronics, Inc. System for communicating through a computer system bus bridge
US5918028A (en) * 1997-07-08 1999-06-29 Motorola, Inc. Apparatus and method for smart host bus adapter for personal computer cards
GB9909196D0 (en) * 1999-04-21 1999-06-16 Texas Instruments Ltd Transfer controller with hub and ports architecture
US6654835B1 (en) * 2000-03-23 2003-11-25 International Business Machines Corporation High bandwidth data transfer employing a multi-mode, shared line buffer
US6636913B1 (en) 2000-04-18 2003-10-21 International Business Machines Corporation Data length control of access to a data bus
US7062561B1 (en) 2000-05-23 2006-06-13 Richard Reisman Method and apparatus for utilizing the social usage learned from multi-user feedback to improve resource identity signifier mapping
US7062488B1 (en) 2000-08-30 2006-06-13 Richard Reisman Task/domain segmentation in applying feedback to command control
US8157654B2 (en) * 2000-11-28 2012-04-17 Nintendo Co., Ltd. Hand-held video game platform emulation
US7155379B2 (en) * 2003-02-25 2006-12-26 Microsoft Corporation Simulation of a PCI device's memory-mapped I/O registers
CN100552655C (zh) * 2003-08-07 2009-10-21 松下电器产业株式会社 处理器集成电路和安装了处理器集成电路的产品开发方法
GB2433333B (en) * 2005-12-13 2011-07-13 Advanced Risc Mach Ltd Distributed direct memory access provision within a data processing system
US7912998B2 (en) * 2006-01-06 2011-03-22 Hewlett-Packard Development Company, L.P. DMA access systems and methods
WO2008033511A2 (en) 2006-09-14 2008-03-20 Thomson Reuters Global Resources Information-retrieval with content relevancy enhancements
US8346764B1 (en) 2007-06-01 2013-01-01 Thomson Reuters Global Resources Information retrieval systems, methods, and software with content-relevancy enhancements
US7979601B2 (en) * 2008-08-05 2011-07-12 Standard Microsystems Corporation External direct memory access of embedded controller memory
KR101706201B1 (ko) * 2010-12-15 2017-02-15 한국전자통신연구원 다이렉트 메모리 액세스 컨트롤러 및 그것의 동작 방법
US10838896B2 (en) 2018-10-15 2020-11-17 Texas Instruments Incorporated Split direct memory access (DMA)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5335329A (en) * 1991-07-18 1994-08-02 Texas Microsystems, Inc. Apparatus for providing DMA functionality to devices located in a bus expansion chassis
US5450551A (en) * 1993-05-28 1995-09-12 International Business Machines Corporation System direct memory access (DMA) support logic for PCI based computer system
US5598576A (en) * 1994-03-30 1997-01-28 Sigma Designs, Incorporated Audio output device having digital signal processor for responding to commands issued by processor by emulating designated functions according to common command interface
US5590377A (en) * 1995-06-07 1996-12-31 Ast Research, Inc. Automatic control of distributed DMAs in a PCI bus system supporting dual ISA buses
US5668957A (en) * 1995-11-02 1997-09-16 International Business Machines Corporation Method and apparatus for providing virtual DMA capability on an adapter connected to a computer system bus with no DMA support

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
木下篤芳,大和田崇,生まれ変わるノート・パソコン−ノート型機にもPCIの時代が来た−,日経バイト,日経BP社,1996年 1月22日,第148号,P.142−157

Also Published As

Publication number Publication date
US5748945A (en) 1998-05-05
TW476884B (en) 2002-02-21
KR970076291A (ko) 1997-12-12
KR100240922B1 (ko) 2000-01-15
JPH1069455A (ja) 1998-03-10

Similar Documents

Publication Publication Date Title
JP3416021B2 (ja) ローカルdmaコントローラによってスレーブdmaエミュレーション・モードでdma書込みを実行する方法
KR100271336B1 (ko) 주변구성요소 내부접속 버스상의 기능을 향상시키는 장치 및방법
US6088517A (en) Interfacing direct memory access devices to a non-ISA bus
US5923860A (en) Apparatus, method and system for remote peripheral component interconnect bus using accelerated graphics port logic circuits
JP3838278B2 (ja) コンピュータ・システムの2つのバス間のブリッジ回路
US6493803B1 (en) Direct memory access controller with channel width configurability support
US5960213A (en) Dynamically reconfigurable multi-function PCI adapter device
US6226700B1 (en) Computer system with bridge logic that includes an internal modular expansion bus and a common master interface for internal master devices
US6145029A (en) Computer system with enhanced docking support
US6167476A (en) Apparatus, method and system for accelerated graphics port bus bridges
US6449677B1 (en) Method and apparatus for multiplexing and demultiplexing addresses of registered peripheral interconnect apparatus
US6199134B1 (en) Computer system with bridge logic that asserts a system management interrupt signal when an address is made to a trapped address and which also completes the cycle to the target address
KR100352224B1 (ko) 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션
US5784599A (en) Method and apparatus for establishing host bus clock frequency and processor core clock ratios in a multi-processor computer system
US5678064A (en) Local bus-ISA bridge for supporting PIO and third party DMA data transfers to IDE drives
US20040064602A1 (en) Claiming cycles on a processor bus in a system having a PCI to PCI bridge north of a memory controller
US7327370B2 (en) Memory controller hub interface
WO1993000640A1 (en) Method and apparatus for expanding a backplane interconnecting bus without additional byte select signals
US6047349A (en) System for communicating through a computer system bus bridge
JP2002503847A (ja) 2次バスからのメッセージング・ユニットへのアクセス
US6014717A (en) PCMCIA host adapter and method for variable data transfers
US6473814B1 (en) System for optimally tuning a burst length by setting a maximum burst length based on a latency timer value and adjusting the maximum burst length based on a cache line size
US5933613A (en) Computer system and inter-bus control circuit
KR20010108428A (ko) 데이터 트랜잭션 액세스 시스템 및 방법
KR100267428B1 (ko) 컴퓨터 시스템 버스상에서 슬레이브 dma를 에뮬레이션하는 장치

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080404

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080404

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090404

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090404

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100404

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110404

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110404

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees