JP3272370B2 - 作業バッファポインタを用いたユーザスケジュール式直接メモリアクセス方法及びその装置 - Google Patents

作業バッファポインタを用いたユーザスケジュール式直接メモリアクセス方法及びその装置

Info

Publication number
JP3272370B2
JP3272370B2 JP04183191A JP4183191A JP3272370B2 JP 3272370 B2 JP3272370 B2 JP 3272370B2 JP 04183191 A JP04183191 A JP 04183191A JP 4183191 A JP4183191 A JP 4183191A JP 3272370 B2 JP3272370 B2 JP 3272370B2
Authority
JP
Japan
Prior art keywords
user
dma
work buffer
work
command
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 - Lifetime
Application number
JP04183191A
Other languages
English (en)
Other versions
JPH0594406A (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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0594406A publication Critical patent/JPH0594406A/ja
Application granted granted Critical
Publication of JP3272370B2 publication Critical patent/JP3272370B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ホストシステムの主メ
モリに記憶されたデータに対して外部データ処理システ
ムにより直接アクセスする方法及び装置に関し、特に、
各ユーザ処理毎にホストシステムの主メモリに作業バッ
ファを設けて該作業バッファから外部データ処理システ
ムへとユーザによる制御下でデータ転送を行うことによ
ってホストシステムの物理メモリに対するグラフィクス
サブシステムといった外部データ処理システムによる直
接メモリアクセスを提供するためのインタフェース方法
及びその装置に関する。
【0002】
【従来の技術】一般に、ホストシステムのプロセッサと
外部データ処理装置との間におけるデータ転送は、ホス
トプロセッサによって実行されるプログラムの直接的な
制御下で、入力/出力(I/O)接続機構を介して行わ
れる。一般に、データの各バイト又はワードの転送に
は、幾つかの命令の実行が必要になる。一方、I/O装
置によっては、この技術で達成可能なデータ転送速度を
上まわるデータ転送速度を必要とするものがある。かか
る装置の場合、I/O接続機構は、直接メモリアクセス
(DMA)として知られるデータ転送処理を用いること
ができる。DMAは、ホストプロセッサで命令を実行す
ることなくホストプロセッサのメモリとI/O接続機構
との間でのデータの直接転送を可能にするものである。
詳細には、DMAの際には、ホストプロセッサは、まず
カウント及び開始メモリアドレスをそのレジスタに記憶
することによりDMAコントローラ回路の初期設定を行
う。始動すると、DMAは、それ以上ホストプロセッサ
の介入を伴うことなく(DMAの操作完了時に割込みが
発生する点を除く)進行するので、ホストプロセッサで
それ以上命令を実行することを必要とせずにデータの転
送が行われる。
【0003】こうしたDMA技術を用いたI/O接続機
構は、既知のものであり、一般に、図1に示すタイプの
回路を備えている。図1のDMAコントローラのホスト
プロセッサは、アドレスカウンタレジスタ10及びカウン
タレジスタ12をセットする。信号バスサイクルは、アド
レスが提示されてデータがバス上で交換される時間間隔
を定めるものと考えられる。DMAコントローラはま
た、送信要求ライン及び要求許可ラインによってI/O
接続機構につながっている。動作時に、I/O接続機構
は、バスサイクルを利用しようとする場合に送信要求ラ
インの電圧を上昇させる。DMAカウントレジスタが非
ゼロの場合、該信号は、バス要求ラインを介してホスト
プロセッサに加えられる。ホストプロセッサハードウェ
アは、定期的にその信号を調べ、該信号が高論理レベル
の場合、ホストプロセッサは、現在のバスサイクルの終
了まで待機し、停止し、そのアドレス及びデータライン
ドライバを高インピーダンス状態にして、バス許可ライ
ンの電圧を上昇させる。こうして、ホストプロセッサ
は、DMAコントローラに許可されたバスサイクル中
に、バスから有効に分離される。DMAコントローラが
バス許可ラインの高論理レベルを検知した場合、そのア
ドレスカウンタレジスタ10の内容をアドレスラインに加
え、要求許可ラインによって、I/O接続機構に対し、
現在のバスサイクルを利用してデータ転送が行えること
を知らせる。このため、I/O接続機構自体が、データ
転送の方向を決定するバスラインを駆動することが可能
であり、又は、DMAコントローラにおける別の回路が
それらのラインを駆動することも可能である。送信要求
ラインが高論理レベルに保持されている限り、I/O接
続機構は連続的なバスサイクルを利用することが可能で
ある。かかる技術は、「サイクルスチール(cycle steal
ing)」として知られている。
【0004】先行技術による図1の回路は、バスサイク
ルを連続して利用すること(「バーストモード」)、又
はバスサイクルを間欠的に利用することが可能である。
この選択は、I/O接続機構のデータ転送速度によって
決まる。実際に、ホストシステムのプロセッサは、バス
の放棄に備えて、バス許可を生成することにより幾つか
のバスサイクルを使用しなければならないことが多く、
また、バスの回復後に幾つかのバスサイクルを使用しな
ければならない。これらのサイクルは、命令の実行又は
データの転送に貢献しないという点で非生産的なもので
ある。従って、連続するバスサイクルを使用するDMA
転送は、バスの一層効率的な使用を可能にする。
【0005】
【発明が解決しようとする課題】外部データ処理システ
ムへのデータ転送時にホストプロセッサにかかる負荷を
低減させるために、追加的なプロセッサ命令を必要とす
ることなく、DMAを使用してホストシステムの主メモ
リからデータを取り出して該データを外部データ処理シ
ステムへ送るという方法が知られている。しかしなが
ら、かかる先行技術によるDMA技術は、マルチユーザ
記憶空間の保全性を保証するためにホストプロセッサの
カーネルソフトウェアによって開始されるのが普通であ
り、ホストシステムの非特権(unprivileged:特権を有さ
ない)ユーザ処理によって開始されるものではなかっ
た。その結果として、ホストシステムのユーザアプリケ
ーションプログラムが、従来のグラフィクス処理システ
ム又はネットワークシステムの場合のように大きなデー
タブロックの処理を要求する場合に、ユーザによりスケ
ジューリングされた(以下、「ユーザスケジュール式」
と称す)DMAを利用することは不可能であった。かか
る場合には、ホストシステムの主メモリに対するアクセ
スが、オペレーティングシステム又はホストプロセッサ
のカーネルソフトウェアの制御を介して行われるのが普
通であり、これによりシステムの全データ転送時間が大
幅に長くなり、ユーザプログラミングが極めて複雑にな
る。このため、これまでは、ユーザによる指示下でグラ
フィクスその他の複雑なデータプロファイルをリアルタ
イムで操作することは、極めて困難であった。
【0006】従って、ユーザの制御下でホストシステム
の主メモリ内のデータにアクセスするための外部処理を
可能にし、これにより、外部処理又はデータ処理システ
ムに対するデータ転送に必要な時間を大幅に短縮して、
システムのセキュリティを損うことなくリアルタイムで
のデータ操作を可能にするプロセス又は装置が、長年に
わたって必要と感じられてきた。本発明は、この目的に
合わせて設計されたものである。
【0007】
【課題を解決するための手段】上述の長年にわたって感
じられてきた必要は、ホストシステムからのユーザコマ
ンドを解釈し、それぞれのユーザ制御プロセス毎に主シ
ステムメモリ内に作業バッファを形成して、ホストプロ
セッサのオペレーティングシステムソフトウェアの要求
ではなくユーザの要求の際に該作業バッファからデータ
ブロックを取り出す、インテリジェント直接メモリアク
セス(DMA)コントローラに関する本発明によって満
たされた。本発明は、カーネルの要求ではなくユーザの
要求による迅速なデータアクセスを可能とすると共に、
マルチユーザシステムにおけるアクセスのセキュリティ
を維持することを可能とするものである。
【0008】本発明によれば、主メモリ及びホストプロ
セッサを備えたユーザのホストシステムと外部データ処
理システムとの間でデータ処理コマンド及びそれに関連
するデータの転送を行うためのインタフェース装置が提
供される。詳細には、本発明によるインタフェース装置
は、ホストプロセッサによって処理される各ユーザプロ
セスに備えて、そのユーザプロセスに関するデータ処理
コマンド及びそれに関連するデータを記憶するための作
業バッファを備えている。また、ユーザ制御プロセスの
ための作業バッファに対する作業バッファポインタを収
容する作業バッファポインタレジスタが設けられる。そ
の記憶されている作業バッファポインタは、ユーザ制御
プロセスに一意のものである。最後に、本発明のインタ
フェース装置は、ユーザ制御プロセスからのユーザ命令
に応じて、作業バッファポインタにより指示されるアド
レスから始めて作業バッファからデータ処理コマンド及
びそれに関連するデータを読み出して、該データ処理コ
マンド及びそれに関連するデータを外部データ処理シス
テムへ転送する手段を備えている。かかる直接メモリア
クセスシステムは、ユーザのホストシステムに接続され
たグラフィクスサブシステムと共に用いられるのが望ま
しく、かかる場合、データ処理コマンドはグラフィクス
コマンドであり、それに関連するデータはグラフィクス
要素から構成される。しかしながら、外部データ処理シ
ステムは、通信ネットワークその他の直接メモリアクセ
スが所望されるシステムとすることが可能である。
【0009】望ましい実施例の場合、各ユーザプロセス
毎の作業バッファはホストシステムの主メモリ内に作成
され、好適には、かかるレジスタが各ユーザプロセス毎
に2つずつ作成され、一方の作業バッファの書き込み中
に他方の作業バッファがDMAでアクセス可能となるよ
うにする。かかる構成では(各作業バッファ毎に1つず
つ)2つの作業バッファポインタレジスタを設けるのが
望ましく、この場合、各作業バッファポインタは、対応
する作業バッファを指示する。各作業バッファポインタ
は、それに関連するプロセスに一意のものであり、古い
ユーザ制御プロセスが新しいユーザ制御プロセスに置換
された場合にカーネルによって更新されて新しい作業バ
ッファを指示する。また、各作業バッファポインタレジ
スタが、主メモリに対するホストプロセッサのアドレス
空間における特権(privileged:特権を有する)ページへ
とマッピングされて、ユーザ制御プロセスにより作業バ
ッファポインタにアクセスできないようにすることが好
ましく、これによりシステムのセキュリティを維持する
ことが可能になる。
【0010】操作時に、ユーザ命令は、ユーザ制御プロ
セスからインタフェース装置へ送られて、どの作業バッ
ファがDMAによりアクセスされるべきか、従って、適
正なポインタを得るためにどの作業バッファポインタレ
ジスタに対して読み出しを行うべきかを指定する。該ユ
ーザ命令はまた、選択された作業バッファからDMAに
より読み出されるべきデータのワード数並びに読み出し
が生じ得る時期を指定する。このため、ユーザ命令に応
じてDMAを開始する制御レジスタを設けることが望ま
しい。制御レジスタはまた、該制御レジスタに対して読
み出しを行って、DMA操作の状態、即ち、DMAが進
行中か否か、DMAエラーが生じたか否か、どの作業バ
ッファを読み出し中か、どれだけの数のワードが読み出
されているか等について判定することが可能なものであ
る。
【0011】また、望ましい実施例の場合、作業バッフ
ァポインタ自体は、作業バッファ内のデータを探し出す
ためのアドレスのオフセットであるが、該作業バッファ
ポインタは、その関連する作業バッファの開始アドレス
を指示する。更に、ホストプロセッサの動作を本発明に
よるDMAと同期させることが可能であり、及び、デー
タコンシステンシ(consistency)技術を実施して、前の
DMA操作が完了する前にユーザ制御プロセスにより試
みられるDMA又はデータアクセスを防止すること、ま
たキャッシュデータの適正な使用を保証することが可能
である。
【0012】本発明のもう1つの態様によれば、主メモ
リ及びホストプロセッサを備えたユーザのホストシステ
ムとグラフィクス処理サブシステムとの間でグラフィク
スコマンド及びグラフィクス要素の転送を行うインタフ
ェース装置が提供される。該インタフェース装置は、ホ
ストプロセッサの各非特権ユーザプロセス毎に少なくと
も2つの作業バッファにアクセスするのが望ましく、こ
の場合には、作業バッファを使用して、関連するユーザ
プロセスに関するグラフィクスコマンド及びグラフィク
ス要素を選択的に格納し、また、これらの作業バッファ
は、物理メモリにおいてロックされて、仮想メモリ操作
システムがそれらのバッファを二次記憶装置へとスワッ
プアウトし又はそれらの物理アドレスの再割当てを行う
ことが防止される。また、ユーザ制御プロセスに関する
作業バッファへの作業バッファポインタをそれぞれ記憶
する2つの作業バッファポインタレジスタが各作業バッ
ファ毎に1つずつ設けられる。ここで、各作業バッファ
ポインタはユーザ制御プロセスに一意のものである。最
後に、該インタフェース装置はまた、ユーザ制御プロセ
スからのユーザ命令に応じて、対応する作業バッファポ
インタにより指示されるアドレスでユーザにより選択さ
れた作業バッファからグラフィクスコマンド及びグラフ
ィクス要素を読み出して該グラフィクスコマンド及びグ
ラフィクス要素をグラフィクスサブシステムに転送する
手段を備えている。先行する実施例の場合と同様に、作
業バッファポインタは、ユーザプロセスと一意のもので
あり、装置セマフォーがカーネルによって新しいユーザ
制御プロセスに送られた場合に、新しい作業バッファを
指示するよう更新される。
【0013】本発明はまた、ユーザのデータ処理コマン
ドに応じてユーザのホストシステムの主メモリに記憶さ
れているデータに対する外部データ処理システムによる
直接メモリアクセスを提供する方法から構成される。こ
の方法は、一般に、ユーザのホストシステムにより処理
される各ユーザプロセス毎に作業バッファを決定し、該
ユーザ制御プロセスについて決定された作業バッファに
ユーザのデータ処理コマンド及びそれに関連するデータ
を書き込み、該ユーザ制御プロセスのための作業バッフ
ァポインタレジスタを決定し、該作業バッファポインタ
レジスタが、対応する作業バッファに対する作業バッフ
ァポインタを収容し、該作業バッファポインタが該ユー
ザ制御プスセスに一意のものであり、該ユーザ制御プロ
セスからのユーザ命令に応じて、ユーザ制御プロセスの
ための作業バッファポインタにより指示されるアドレス
から始めて該ユーザ制御プロセスのための作業バッファ
からデータ処理コマンド及びそれに関連するデータを読
み出し、前記ユーザ制御プロセスについての前記作業バ
ッファからの前記データ処理コマンド及びそれに関連す
るデータを外部データ処理システムへ転送する、という
各ステップから構成される。
【0014】本発明のこの方法はまた、作業バッファポ
インタレジスタを特権メモリページにマッピングしてユ
ーザ制御プロセスにアクセスできないようにし、及びユ
ーザ制御プロセスがスワップアウトされた際に更新され
た作業バッファポインタを有するように作業バッファポ
インタレジスタ中の作業バッファポインタを更新するス
テップを有することが可能である。この方法はまた、ユ
ーザのホストシステムによる処理をDMAに同期させて
「ダーティな(dirty)」メモリに対するDMAの試行を
防止するステップを有することが可能である。また、各
DMAが試行される前に主メモリのキャッシュメモリを
フラッシュすることにより、データコンシステンシに関
する問題を防止することが可能である。
【0015】ユーザのデータ処理コマンドに応じてユー
ザのホストシステムの主メモリに記憶されているデータ
に対する外部データ処理システムによる直接メモリアク
セスを可能にする本発明によるもう1つの好適な方法
は、ユーザのホストシステムにより処理される各ユーザ
プロセス毎に主メモリに少なくとも2つの作業バッファ
を画定し、ユーザ制御プロセスのための作業バッファの
メモリロックを獲得し、ユーザ制御プロセスのために画
定された作業バッファのうちの1つにユーザのデータ処
理コマンド及びそれに関連するデータを書き込み、ユー
ザ制御プロセスのための互いに異なる作業バッファに対
する作業バッファポインタをそれぞれ収容する2つの作
業バッファポインタレジスタを画定し、各作業バッファ
ポインタが各ユーザ制御プロセスに一意のものであり、
前記作業バッファのうちの選択された1つからの直接メ
モリアクセスを開始させるためのユーザ命令を発行し、
ユーザ制御プロセスについて選択された作業バッファに
対応する作業バッファポインタによって指示されるアド
レスから始めて該選択された作業バッファからデータ処
理コマンド及びそれに関連するデータを読み出し、該選
択された作業バッファからの前記データ処理コマンド及
びそれに関連するデータを外部データ処理システムへ転
送する、という各ステップから構成される。
【0016】本発明によるかかる方法及び装置は、DM
Aが所望される毎にオペレーティングシステムのカーネ
ル呼出しでホストプロセッサに割り込むことなく、ユー
ザが該ユーザの自由裁量でDMAのスケジューリングを
行うことを可能にするものである。その結果として、ホ
ストプロセッサの貴重な計算時間が、単純なデータ転送
のために浪費されずにすむことになる。
【0017】
【実施例】本書に開示し請求する内容の発明者は、カー
ネルが各メモリアクセスを開始し制御することを必要と
することなく、グラフィクスサブシステムといった外部
データ処理システムがユーザの制御下でホストシステム
の主メモリから直接データにアクセスすることを可能に
するホストインタフェースプロセス及び装置を開発する
ことにより、当業界で長期にわたり感じられてきた上記
必要を満たした。
【0018】本発明によれば、カーネルのコマンドでは
なくユーザのコマンドに応じて外部データ処理システム
とホストシステムの主メモリとの間でデータ転送を直接
行うことが可能になる。その結果として、ホストプロセ
ッサは、もはや、ルーチンデータの複写を行う貴重な計
算時間を浪費しなくてもすむことになる。ここで、図2
及び図3に関し、本発明の現時点での望ましい実施例に
よる上述その他の有益な特徴を備えたインタフェース装
置について説明する。
【0019】図2に示すように、一般にホスト処理シス
テム及びホストシステムのグラフィクスサブシステムに
関連して本発明を説明するが、当業者には明らかなよう
に、本発明は他の環境でも使用することが可能である。
更に、本書に記載の説明は、本発明の例示のみを目的と
したものであり、本発明の範囲を制限する意図は全くな
い。本発明の範囲に関する全ての疑問は、特許請求の範
囲を参照することにより解消されよう。
【0020】図2には、本発明を取り入れたホストイン
タフェースによってグラフィクスサブシステムとインタ
フェースされたホスト処理システムが示されている。図
示のように、該ホスト処理システムは、システムI/O
バス21及びPDMAホストインタフェース22を介してグ
ラフィクス変換エンジン24とインタフェースされたホス
トプロセッサ20から構成される。該変換エンジン24の出
力は、グラフィクス描写回路26に入力され、次いでフレ
ームバッファ28に入力される。次いで、フレームバッフ
ァ28の出力がラスタ表示装置30により受信され、例え
ば、CRT画面に出力される。以下で詳述するように、
本発明は、特に、図2のホストインタフェース回路22、
及び、該ホストインタフェース回路22により実施される
物理直接メモリアクセス(PDMA)プロセス、即ち、
ホストプロセッサ20の主メモリと、変換エンジン24、描
写回路26、フレームバッファ28、及びラスタ表示装置30
を含むグラフィクスサブシステムとの間で、ホストプロ
セッサ20のオペレーティングシステム(又はカーネル)
の中間介入を伴うことなく、データを直接転送すること
を可能にするプロセス、を目的としたものである。
【0021】一般に、DMAがホストプロセッサ20に対
するユーザ入力に応答する場合、該ユーザ入力は、実際
のメモリアドレスを直接示す低レベル言語(例えばアセ
ンブラ言語)によるものであるか、又は通常の場合のよ
うに、ユーザメモリ空間(又は「仮想メモリ」空間)の
アドレスから物理メモリアドレスへと変換されなければ
ならない。仮想メモリ空間のアドレスを用いたユーザス
ケジュール式直接メモリアクセスを可能にする新規のシ
ステムについては、本出願人の1990年3月12日出願の米
国特許出願第492518号で詳細に説明されている。尚、本
引用をもってその開示内容を本書に包含させたものとす
る。図3に関して説明するように、本発明は、各ユーザ
プロセス毎にホストプロセッサの主メモリに作業バッフ
ァを形成し、次いで、ユーザによるDMAの要求時に該
作業バッファに対するポインタを提供することにより、
上記の技術の何れにも依存しないユーザスケジュール式
DMAを提供する。以下、本発明によるかかるDMAの
挙動を物理DMA、又は省略してPDMAと称すること
にする。
【0022】図3は、本発明の各種構成要素を示すブロ
ック図である。図示のように、本発明の例示的な実施例
としてのシステムは、システムI/Oバス21を介してホ
スト中央演算処理装置(CPU)20をグラフィクスプロ
セッサ(図示せず)に対してインタフェースする。ホス
トCPU20は、一般に、処理機能及びソフトウェア駆動
によるメモリアクセスを実施するためのオペレーティン
グシステム(又はカーネル)201を備えている。ホスト
CPU20は、要素202,203としてそれぞれ示すグラフィ
クス処理1,2といった1つ又は2つ以上のユーザアプリ
ケーションプログラムを実行する。ホストCPU20の各
ユーザは、ユーザ自身の仮想メモリ空間で操作を行うの
で、オペレーティングシステム201及びグラフィクスプ
ロセス1,2により出力される仮想アドレスをそれぞれ変
換する仮想−物理変換機構(メモリ管理装置)204,205,
206によってメモリマッピングが提供される(オペレー
ティングシステム又はカーネル201並びに仮想−物理変
換機構204,205,206は、カーネルに特権があり(kernel p
rivileged)、従って、破線で囲んで示されている)。次
いで、変換された物理アドレスは、ホストCPU20に関
連する主(物理)メモリ32にアクセスするためにメモリ
バス31を介して送られる。好適には、主メモリ32は、各
ユーザプロセス毎に(例えばグラフィクスプロセス1,
2)データセクション33,34及び作業バッファ35,36を備
える。以下で詳述するように、本発明によれば、各作業
バッファ35,36は、ユーザの要求時にコマンド及び該コ
マンドに関連するデータがグラフィクスプロセッサ又は
グラフィクス「パイプライン」に対して下流へと送られ
るまで、該コマンド及びデータを「C/Dパケット」と
して格納する。いずれにしても、一旦確立されれば、ユ
ーザは、カーネルを介入させることなく後述の技術を使
用してそれらのバッファとの間におけるDMAを開始す
ることが可能になる。その結果として、カーネルの呼び
出しは、作業バッファをスワップすべき場合に1回/プ
ロセスしか必要でなくなる(従来のように1回/グラフ
ィクス要素又は1回/バッファスワップとはならな
い)。
【0023】メモリバス31とPDMAホストインタフェ
ース22との間における通信は、バスインタフェースバッ
ファ37及びシステムI/Oバス21を介して行われる。バ
スインタフェースバッファ37は、一般に、メモリバス31
とシステムI/Oバス21との間における衝突のない双方
向データ転送を提供し、また、主メモリ32と補助メモリ
(スワップディスク)38又はPDMAホストインタフェ
ース22との間におけるデータ転送を調整する。詳細に
は、バスインタフェースバッファ37は、本発明に従い、
外部メモリ(スワップディスク)38とのページスワップ
時、及びPDMAホストインタフェース22とのDMA転
送時に、システムメモリバス31をシステムI/Oバス21
とリンクさせるよう機能する。
【0024】PDMAホストインタフェース22は、該P
DMAホストインタフェース22から主メモリ32へDMA
読出要求を提供するDMA状態マシン39を備えているこ
とが望ましい。PDMAホストインタフェース22はま
た、作業バッファポインタレジスタ40を備えており、該
作業バッファポインタレジスタ40は、グラフィクスハー
ドウェアに対するロックを持つプロセス(即ち1)で使
用されている主メモリ32中の2つの作業バッファ(例え
ば1A,1B)の開始アドレスに対する物理ポインタを収容
する。セキュリティを維持するために、これらのレジス
タは、特権が付与され、カーネル201によってしか書き
込むことができない。これらの作業バッファポインタに
ついては、以下で詳述する。
【0025】こうして構成された実施例は、所定のコマ
ンド及びそれに関連するデータ(グラフィクス要素)を
含むコマンド/データ(C/D)パケットと共に使用さ
れるのが好ましいが、作業バッファは、コマンド/ポイ
ンタ(C/P)アーキテクチャと共に使用することも可
能である。ここで、該コマンド/ポインタ(C/P)ア
ーキテクチャでは、コマンド及び該コマンドに関連する
データに対するポインタを含むデータパケット(C/P
パケット)が、上述の関連出願に記載のグラフィクスプ
ロセッサによる処理に備えて従来のコマンド/データパ
ケットに変換される。従って、本発明の説明は、主とし
て、C/Dパケットと共に使用することに関して行う
が、当業者には明らかなように、C/Pパケットを上述
の関連出願に開示の技術に従って本発明で用いることも
可能である。実際に、当業者には明らかなように、上記
関連出願の技術を本書に開示の技術と共に使用して、物
理DMA技術及び仮想DMA技術を選択的に用いる統合
的なユーザスケジュール式DMAコントローラ提供する
ことが可能である。いずれにせよ、本書で用いるよう
に、「C/Dパケット」は、一般に、1つ又は2つ以上
の32ビットワードのコマンドとそれに続く0又は1以上
のデータワードとから構成される。
【0026】本発明によるPDMAプロセスは一般に以
下のように機能する。まず、ホストCPU20が、特定の
プロセスについてPDMAホストインタフェース22によ
って全てのDMAに対してブランケット承認(blanket a
pproval)を与え、これにより、DMAの実行毎にカーネ
ルを呼び出す必要がなくなる。次いで、ホストCPU20
におけるユーザアプリケーションソフトウェア(即ち、
グラフィクスプロセス1,2)が、各グラフィクスプロセ
ス毎に一連のC/Dパケットを含む主メモリ32において
作業バッファ35又は36をアセンブルする。各プロセス毎
に、それ自体の、少なくとも2つの作業バッファ(A,
B)からなる1組の作業バッファが設けられて、該作業
バッファにデータが複写される際の相互排他(mutual ex
clusion)の必要性をなくするようになっている。グラフ
ィクス装置のセマフォーの獲得は、作業バッファがDM
Aによりグラフィクス処理回路に転送を行う準備が整っ
ている場合にのみ必要になる。
【0027】従って、各ユーザ制御プロセス毎に、本発
明に従って、物理メモリ中に少なくとも2つの作業バッ
ファが設けられてロックダウンされる(lock down)。次
いで、物理アドレス空間でのこれらのバッファに対する
ポインタが、当該ユーザ制御プロセスについて作業バッ
ファポインタレジスタ40に格納され、カーネル201によ
って維持される。好適には、これらの作業バッファポイ
ンタレジスタ40を、特権メモリページに対してのみマッ
ピングして、無許可ユーザがシステムメモリ中の任意の
場所からDMAを実施するのを防止する。カーネル201
は、これらの作業バッファポインタレジスタ40が、本発
明のDMA技術を使用するためのセマフォーを有するプ
ロセスに対応するものであることを確め、適正なセキュ
リティ及び特権が付属しているか確認する。
【0028】動作時、プロセスを実施するグラフィクス
は、例えば、作業バッファの一方(1A)を充填し、グラフ
ィクス装置のセマフォーを獲得し、全バッファ1Aについ
ての物理DMAを開始し、次いで、他方のバッファ(1B)
の充填を開始する。従って、これらのバッファは、専用
ハードウェアではなくシステムメモリにコマンド及びそ
れに関連するデータを記憶することになり、これによ
り、各プロセスがそれ自体の作業バッファを備えること
が可能になる。その結果、以下で詳述するように、該作
業バッファの内容を、ユーザの制御下で、バスインタフ
ェースバッファ37を介してグラフィクスプロセッサ(図
示せず)に転送することが可能となる。次いで、その結
果として得られるC/Dパケットをグラフィクスサブシ
ステムにより使用して、ユーザにより指定されたデータ
を用いてユーザにより要求されたグラフィクス操作を実
施することが可能となる。
【0029】適正な操作とデータの一貫性とを確保する
ために、C/Dパケット中のデータをホストCPU20の
キャッシュから主メモリ32へと逆方向にフラッシュし
て、本発明によるPDMAでデータにアクセスできるこ
とを保証しなければならない。これは、データフラッシ
ュとして知られている。更に、DMAによるデータの読
み出しが完了するまでユーザのアプリケーションプログ
ラムがこのデータを変更できないようにしなければなら
ない。換言すれば、ホストCPU20はDMAプロセスと
同期されなければならない。このために、主メモリ32内
でデータの変更が行われる前に同期機能を実施してユー
ザのアプリケーションプログラムをグラフィクスハード
ウェアに同期させることが可能であり、またPDMAホ
ストインタフェース22のハードウェアがDMAアクセス
に備えてホストCPU20のキャッシュと主メモリ32との
コンシステンシを保証することが可能である。一方、D
MAが試行される前にユーザのアプリケーションプログ
ラムによりデータキャッシュをフラッシュすることが可
能である。これらの問題に対するハードウェア及びソフ
トウェア上の解決策については以下で詳述する。
【0030】ここで、引続き図3を参照して本発明によ
る作業バッファの詳細について説明する。
【0031】物理メモリ32の作業バッファ35,36は、例
えば512ワード長とすることが可能な、32ビットワード
のアレイから構成することが望ましい。その結果、本発
明によるPDMAの操作は、一度に512個の32ビットワ
ードを超えてはならない。作業バッファ35,36は、物理
ページ境界と交差しないように512ワードの境界に整列
されることが望ましい。いずれにせよ、主メモリ32中の
作業バッファは、ページ境界に整列されなければなら
ず、ページの欠陥を防止するために物理ページ以下でな
ければならない。更に、作業バッファ35,36は、典型的
には、後述する理由により、ライトスルーページ又はコ
ピーバック(copy back)ページであるロックされたペー
ジから割り当てられる。作業バッファ35,36はまた、該
作業バッファの最初に妥当なC/P又はC/Dパケット
を収容していなければならず、また、該作業バッファ中
の最後の妥当なデータパケットとして、ワードバッファ
リンク又は作業バッファ終了コマンドを収容することが
できる。更に、DMA読み出しのスヌーピングを許容せ
ず又はライトスルーページを使用しないグラフィクスサ
ブシステムがホストCPU上で実行中である場合には必
ず、各作業バッファが、ホストCPU20のキャッシュか
らフラッシュされて「スワッピング」される前にロック
されなければならないが、作業バッファがライトスルー
ページから割り当てられる場合には、スワッピング前に
キャッシュのフラッシュを行う必要はない。更に、ユー
ザ制御プロセスが変更される場合にはいつでも、ホスト
CPU20のソフトウェアが、作業バッファの先頭に状態
保管及び復元コマンドを有している必要がある。
【0032】作業バッファ35は、次のようにして本発明
によるDMAに用いられる。即ち、ユーザのアプリケー
ションプログラムは、C/Dパケットを用いて作業バッ
ファ35を構築し、必要に応じてホストCPU20のキャッ
シュをフラッシュする。次いで、ユーザのアプリケーシ
ョンプログラムは、必要に応じてグラフィクスハードウ
ェア及び作業バッファに対するロックを獲得する。次い
で、ユーザのアプリケーションプログラムは、グラフィ
クスプロセッサの状態レジスタのフラグをチェックし
て、現在の作業バッファの内容のための余地があること
を確認する。利用可能な余地がある場合には、ユーザの
アプリケーションプログラムは、DMA状態マシン39の
制御レジスタにワードカウント及びバッファ番号(A又
はB)を書き込む。次いで、DMA状態マシン39は、作
業バッファポインタレジスタ40から所望の作業バッファ
(A又はB)の物理アドレスを読み出し、該読み出したア
ドレスを、主メモリ内の所望の作業バッファメモリ空間
にアクセスするための基礎アドレス又はアドレス索引と
して使用して、物理DMAを開始する。次いで、作業バ
ッファポインタレジスタ40において示される別のアドレ
スで次のバッファ(B又はA)の処理が開始する。従っ
て、ユーザのアプリケーションプログラムは、2つのポ
インタのうちどららを使用すべきかを指定することによ
り2つのバッファのうちどちらが用いられるかについて
の制御を維持し、グラフィクスプロセスに対する制御が
ユーザプロセスに一旦与えられると、該ユーザプロセス
は、作業バッファポインタレジスタ40中のポインタを変
更することでカーネル201によって新しいユーザ制御プ
ロセスが確立されるまで、本発明によるDMAを介して
グラフィクスハードウェアに作業バッファコマンドを送
り続けることが可能である。
【0033】DMA状態マシン39は、バスコントローラ
として機能して、ホストCPU20、主メモリ32、及びグ
ラフィクスプロセッサの間でのデータ転送を調整する。
詳細には、DMA状態マシン39は、作業バッファ35のう
ちの1つから変換エンジン24の入力回路への、ホストに
より開始されるブロックの移動をサポートすることがで
きる。例えば、ユーザのアプリケーションプログラム
(プロセス1又は2)によるDMA状態マシン39に対する
書き込みコマンドを使用して本発明による物理DMAを
開始させることが可能である。かかる書込みコマンド
(該コマンドは、使用すべき作業バッファ(A又はB)及
び転送すべきワード数を指定するものであることが望ま
しい)を受信すると、それに対応する作業バッファポイ
ンタが作業バッファポインタレジスタ40から読み出され
る。次いで、DMAは、予め選択された作業バッファの
最初から開始して該作業バッファ中のデータを読み出す
ことにより進行することができる。一方、アプリケーシ
ョンプログラムからのDMA状態マシン39の内容の読み
出しコマンドを使用して、DMA操作の状態(即ち、D
MA操作が完了したか否か及びDMA操作時にエラーが
生じたか否か)を判定することができる。
【0034】DMA状態マシン39の好適実施例では、D
MA操作は、DMA状態マシン制御レジスタを参照して
制御される。本書では単一のレジスタしか規定していな
いが、当業者には明らかなように、多数のレジスタを使
用して、本書に規定の機能、並びに特定の環境に適した
別の機能を実施することが可能である。例えば、上述の
関連出願に詳述されている仮想DMA技術を実施するた
めに、多数の追加のレジスタを備えるようDMA状態マ
シン39を修正することが可能である。
【0035】好適な実施例によれば、適正値を有する書
き込みコマンドを受信した際に、DMA状態マシン制御
レジスタ(又はバス制御レジスタ)を使用してDMAト
ランザクションを開始することが可能である。一方、該
DMAトランザクションの状態は、該制御レジスタの適
当なビットを読み出すことにより判定することが可能で
ある。このために、DMA状態マシン制御レジスタは開
始ビットを備えることが可能である。該開始ビットは、
それがセットされた際にDMA状態マシン39にDMA操
作を開始させ、また更なるコマンドを受信した場合にD
MAが進行中であることを示すものとなる。DMA操作
が完了すると該開始ビットはクリアされる。該DMA状
態マシンの制御レジスタの別のフィールドを使用して前
のDMA操作時のDMAの失敗を示すことができる。ス
ヌーピングなしのバストランザクションが望ましいた
め、後述するように、本発明により、スヌープイネーブ
ルビットを設けることも可能である。また、DMA状態
マシン制御レジスタの作業バッファビットは、DMAト
ランザクションの開始アドレスを与えるためにどちらの
作業バッファポインタ(A又はB)を使用することになる
かを示すことも可能である。更に、DMA状態マシン39
が実施する必要があるのが如何なるタイプのトランザク
ションであるかを示すためにモードフィールドを使用す
ることが可能である。トランザクションの種類として
は、例えばグラフィクスプロセッサの入力に対するブロ
ック移動又は単一書き込みが考えられる。最後に、DM
A状態マシン制御レジスタは、転送すべき32ビットワー
ドの数を示すカウントフィールドを備えることが望まし
い。もちろん、当業者であれば必要に応じて他の制御ビ
ットを用いることも可能である。
【0036】上述のように、作業バッファポインタレジ
スタ40は、カーネル201によってロックされる主メモリ3
2中の少なくとも2つの作業バッファに対する物理ポイ
ンタを収容する。このため、作業バッファポインタレジ
スタ40に対するアクセスは、作業バッファポインタレジ
スタ40の周りの破線で示すように、特権が与えられたも
のである。詳細には、作業バッファポインタレジスタ40
中のアドレスは、1つのプロセスから別のプロセスへと
装置セマフォーが送られた際にカーネル201によっての
み変更される。従って、作業バッファポインタレジスタ
40は、新しいユーザ制御プロセスについての適切なアド
レスを含むように、カーネル201によって更新される。
次いで、新しいプロセスがグラフィクスサブシステムに
対する制御を持つと、該プロセスは、新しいユーザ制御
プロセスが確立されるまで作業バッファコマンドをグラ
フィクスハードウェアに送り続けることができる。
【0037】従来、DMAがカーネルのみによって開始
された場合には、該カーネルがデータのコンシステンシ
に関するあらゆる問題を取り扱った。一方、本発明のP
DMA技術によれば、ユーザがDMAを開始させる。こ
のため、コンシステンシに関する新たな問題が生じるこ
とになる。即ち、考慮すべき2つのタイプのコンシステ
ンシが存在する。その1つは、データに対するDMAプ
ロセスが完了するまで該データを変更しないことをCP
Uが保証しなければならないというDMA/CPUのコ
ンシステンシである。もう1つは、キャッシュと主メモ
リ32との間におけるデータのコンシステンシである。本
発明は、これらのコンシステンシの問題を解決するため
の手段を備えることも可能である。
【0038】例えば、アプリケーションプログラムが、
DMAプロセスを理解して、DMAが完了するまでデー
タ構造に編集を加えさせないという責務を受け入れない
限り、アプリケーションにアクセス可能である間にデー
タ構造に対するDMA操作を実行することは、CPU/
DMAデータコンシステンシの問題を解決する上で許容
されることではない。このため、ユーザプロセスは、D
MAを理解して、編集とDMA動作との間の同期に責任
を負うようにすべきである。ユーザアプリケーションプ
ログラムの多くは、直接呼出しを使用してリスト表示を
行うので、該責務を負うことが可能である。従って、ア
プリケーションプログラムからの明示的な要求によって
物理DMAをイネーブルにすることができる。更に、D
MAをイネーブルにすることにより、DMAを介してグ
ラフィクスプロセスに送られるデータを編集する前にア
プリケーションコードをDMAと同期させることが可能
になる。これに対応してアプリケーションプログラムを
如何に修正するかについては当業者であれば明らかであ
ろう。
【0039】一方、キャッシュ/主メモリの非コンシス
テンシのため、DMA読み出しプロセスが適正に動作す
るには、DMAが許可される前に上述のようにキャッシ
ュ中の関連するダーティラインをフラッシュして主メモ
リ32に戻す必要があり、さもなければ、DMAは、キャ
ッシュ内のダーティデータにアクセスすることになる。
また、本発明による主メモリ32に対するDMA書き込み
の際には、DMAの実行前と実行後との両方でキャッシ
ュがフラッシュされ、又は、DMAが、該DMAの実行
中にキャッシュ内のコピーを更新し又は無効にすること
が可能になる。
【0040】このため、主メモリ32の作業バッファに対
する書き込みアクセスが、本発明に従ってホストプロセ
ッサ20により行われる場合には、主記憶場所及びそのキ
ャッシュコピー(ヒットが存在する場合)を同時に更新
することが可能となる。これは、ライトスルー又はスト
アスルーと呼ばれている。従って、この技術を使用すれ
ばキャッシュのブロックを置換する必要が全くなくな
る。これは、該ブロックを主メモリ32に複写することな
く単に消去することができるからである。もう1つの取
り組みとして、書き込みヒット時にキャッシュのみを更
新することがある。次いで、修正されたキャッシュブロ
ックが将来のミス時に交換される際に主メモリ32に再複
写しなければならない。これは、コピーバックとして知
られるものである。かかる任意の技術を本発明に従って
使用してデータの完全性を維持することが可能である。
【0041】一方、キャッシュ/主メモリのデータコン
システンシは、コピーバックページに対する全てのアク
セスをスヌーピングすることにより本発明に従って達成
することが可能である。例えば、主メモリ32に対するD
MA書き込み時にキャッシュヒットによってそのキャッ
シュラインを無効にすることが可能である。しかし、本
発明による主メモリ32からのDMA読み出し時には、ダ
ーティなキャッシュヒットにより、主メモリ32の代わり
にキャッシュがデータを供給することが可能になる。し
かしながら、スヌーピングは一般にCPUアクセスとP
DMAアクセスとの両方を低速化させるので、ライトス
ルーページ及び明示フラッシュの使用によって可能な場
合には必ずスヌーピングを回避することが望ましい。書
き込みバッファがフラッシュされた後にDMAが始動す
ることが保証される限り、既に主メモリ32内にあるライ
トスルーページ中のダーティデータを用いることによ
り、スヌーピングを回避することができる。これは、ラ
イトスルーページからのPDMA読み出しをスヌーピン
グする必要がないからである。これとは対照的に、ライ
トスルーページに対するPDMA書き込みの場合には、
該PDMA書き込みをスヌーピングして、あらゆるキャ
ッシュコピーが更新され又は無効にされるようにしなけ
ればならない。このため、キャッシュコンシステンシが
ユーザレベルのコードから見えないようにすることが可
能である。スヌーピング又はユーザ制御によるフラッシ
ュを使用するか否かは、当業者の判断に任せることがで
きる。
【0042】本発明の望ましい実施例によれば、DMA
により読み出されるデータの全てをライトスルーページ
から読み出して、キャッシュをスヌーピングする必要が
ないようにする。従って、ユーザのアプリケーションプ
ログラムは、全ての表示リストデータをライトスルーペ
ージ中に割り当てなければならない。一方、カーネルド
ライバは、PDMAがイネーブルになった際にユーザの
ページをライトスルーにすることができる。例えば、D
MAをイネーブルにするユーザ命令によって、カーネル
が、アプリケーションプログラムのページの全て又は一
部をライトスルーに変換することが可能である。
【0043】本発明のもう1つの望ましい実施例によれ
ば、PDMAホストインタフェース22はまた、コピーバ
ックページに対する全てのバーストアクセスについてス
ヌーピングをサポートすることが可能であり、これによ
り、ユーザがDMAをイネーブルにすることを除き何も
しない場合であっても、キャッシュのフラッシュなしで
該PDMAホストインタフェース22が有効に動作するよ
うになる。更に、DMAは、該DMAの完了後に常にパ
ージされるライトスルーページにおいて主メモリ32に書
き込みを行うことが可能である。
【0044】しかしながら、ライトスルーページが使用
されない場合には、ユーザ制御式のDMAに関する考え
得るデータのコンシステンシの問題を克服するために、
ホストCPU20が下記ステップを実施することが望まし
い。即ち、まず、DMAの完了後であってスワッピング
前に、全ての作業バッファ35が、アプリケーションプロ
グラムにより、主メモリ32に対して明示的にフラッシュ
されることになる。次いで、編集後であってPDMAが
許可される前に、アプリケーションプログラムにより、
全ての表示リスト要素が主メモリ32に対して明示的にフ
ラッシュされるべきである。また、フレームバッファブ
ロックの読み出しの実行前と実行後との両方で、アプリ
ケーションプログラムにより受信バッファが主メモリ32
に対してフラッシュされなければならない。更に、フレ
ームバッファブロックの書き込みが実行される前に、ア
プリケーションプログラムによりソースバッファが主メ
モリ32に対してフラッシュされなければならず、PDM
Aが直接呼出しについてイネーブルになった後、ユーザ
のデータキャッシュもまたアプリケーションプログラム
によって主メモリ32に対してフラッシュされるべきであ
る。これらのステップは、ユーザスケジュール式メモリ
アクセスを可能にするために、ユーザアプリケーション
ソフトウェアによって実行することが可能である。
【0045】
【発明の効果】上述のPDMAホストインタフェース22
は、グラフィクスサブシステムといった外部プロセスが
メモリ中のデータに直接アクセスすることを可能にす
る。この場合、データは、主メモリ32からホストCPU
20へ、次いでグラフィクスサブシステムへと送られるの
ではなく、グラフィクスサブシステムに直接送られるの
で、バスの帯域幅要件が緩和されることになる。その結
果、ホストCPU20は、もはやルーチンデータを複写す
る貴重な計算時間を費やす必要がなくなるので、一層リ
アルな作業が可能になり、またメモリバスの使用が増大
することになる。本発明はまた、ホストのユーザーレベ
ルのソフトウェアが、カーネルのサービスに対するサブ
ルーチンの呼出しを行うことなく、作業バッファポイン
タを使用してメモリに対する直接アクセスを開始するこ
とができるという利点を有する。かかるカーネルの呼出
しは、極めて時間を要するものであり、本発明に従って
かかるカーネルの呼出しを不要にすることにより、本発
明に従って通常のDMA技術を適用してグラフィクス要
素にアクセスすることが可能になる。更に、本発明は、
その単純な構造のため最小限のコストで簡単に実施する
ことができる。
【0046】以上のように、本発明によれば、ユーザ
は、DMAが所望される毎に、オペレーティングシステ
ムのカーネル呼出しによってホストプロセッサを中断さ
せることなく、ユーザの自由裁量でDMAのスケジュー
リングを行うことが可能となり、その結果として、ホス
トプロセッサの貴重な計算時間が、単純なデータ転送の
ために浪費されずにすむことになる。
【0047】以上で、本発明の幾つかの実施例に関する
説明を終えるが、当業者にはすぐ分るように、本発明の
新規の教示及び利点を逸脱することなく、本例示の実施
例に多くの修正を追加することが可能である。例えば、
本発明に従って用いるものと同じDMA技術を、上述の
グラフィクスサブシステムではなく、外部ネットワーキ
ングサブシステムに用いることが可能である。主メモリ
に対する各アクセス毎にオペレーティングシステムに割
り込むことを必要とせずに、ユーザが直接主メモリ内の
データにアクセスできるのが望ましい他のサブシステム
を用いることも可能である。また、既述のように、本書
に開示の技術と、前述の関連出願に開示の技術とを組み
合わせて、ユーザの速度及びコスト要件の全範囲に合う
ように、ホストプロセッサと外部プロセッサの間のイン
タフェースシステムを提供することが可能である。更
に、作業バッファポインタレジスタ40からのアドレス読
み出しを、ポインタ値に加えられるオフセット値と共に
使用して、主メモリにおける作業バッファを探し出すこ
とが可能である。したがって、かかる修正は、全て、特
許請求の範囲に記載の本発明の範囲内に含まれるものと
する。
【図面の簡単な説明】
【図1】従来の直接メモリアクセス(DMA)コントロ
ーラを概略的に示している。
【図2】本発明を組み込んだホストインタフェースによ
り接続されたホストシステムとグラフィック処理システ
ムの概念的ブロック図である。
【図3】本発明に基づき、ホストシステムをグラフィッ
クサブシステムにインタフェースするためのユーザスケ
ジュール直接メモリアクセスシステムの概略図である。
【符号の説明】
20…ホストプロセッサ 21…システムI/Oバス 22…ホストインタフェース 24…変換エンジン 26…描写回路 28…フレームバッファ 30…ラスタ表示装置
フロントページの続き (72)発明者 カーティス・ロジャー・マクアリスター アメリカ合衆国コロラド州80525フォー ト・コリンズ,ナンバー・301,サウ ス・リメイ・アヴェニュー・4470 (72)発明者 ドング・イング・クオ アメリカ合衆国コロラド州80527フォー ト・コリンズ,バーベリー・1425 (72)発明者 クリストファー・グラント・ウィルコッ クス アメリカ合衆国コロラド州80526フォー ト・コリンズ,シダーウッド・ドライ ヴ・2526 (56)参考文献 特開 平1−142964(JP,A) 特開 平1−149156(JP,A) 特開 昭54−5637(JP,A) 特開 平1−269150(JP,A) 特開 昭62−212754(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 13/00,13/28,13/38

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】主メモリ(32)及びホストプロセッサ(20)を
    備えたユーザのホストシステムと外部データ処理システ
    ムとの間でユーザ制御による直接メモリアクセス(DM
    A)を介してデータ処理コマンド及びそれに関連するデ
    ータの転送を行う装置であって、 前記ホストプロセッサ(20)の特定のユーザプロセス(PRO
    C1,PROC2)の制御下にある前記主メモリ中の少なくとも
    1つの作業バッファ(35,36)であって、前記ユーザプロ
    セス(PROC1,PROC2)についての前記データ処理コマンド
    及びそれに関連するデータを格納する、少なくとも1つ
    作業バッファ(35,36)と、 前記ホストプロセッサ(20)により処理される前記特定の
    ユーザプロセス(PROC1,PROC2)についての前記少なくと
    も1つの作業バッファ(35,36)に対する作業バッファポ
    インタを収容する少なくとも1つの作業バッファポイン
    タレジスタ(40)であって、作業バッファポインタが前
    特定のユーザプロセス(PROC1,PROC2)に一意のもので
    ある、少なくとも1つの作業バッファポインタレジスタ
    (40)と、 前記ユーザプロセス(PROC1,PROC2)からのユーザDMA
    命令に応じて、該ユーザDMA命令で指定されたデータ
    処理コマンド及びそれに関連するデータを、前記作業バ
    ッファポインタにより指示されるアドレスから始めて前
    記作業バッファ(35,36)から読み出し、該作業バッファ
    からの前記データ処理コマンド及びそれに関連するデー
    タを前記外部データ処理システムへ転送する手段(39)と
    を備えている、装置。
  2. 【請求項2】前記ホストプロセッサ(20)により処理され
    る各DMAユーザ制御プロセス(1,2)毎に2つの作業バ
    ッファ(35,36)が作成され、一方の作業バッファ(35,36)
    に書き込みを行う際に他方の作業バッファから読み出し
    を行うことが可能となっている、請求項1に記載の装
    置。
  3. 【請求項3】各作業バッファ(35,36)毎に1つの作業バ
    ッファポインタレジスタ(40)が設けられており、該作業
    バッファポインタレジスタ(40)の各々が、前記作業バッ
    ファ(35,36)のうちの異なるそれぞれに対する作業バッ
    ファポインタであって前記ユーザプロセス(PROC1,PROC
    2)に一意である作業バッファポインタを収容する、請求
    項2に記載の装置。
  4. 【請求項4】前記作業バッファ(35,36)を含む前記主メ
    モリ(32)中の1ページが前記DMAユーザ制御プロセス
    によってロックされる、請求項3に記載の装置。
  5. 【請求項5】前記作業バッファポインタレジスタ(40)
    が、前記DMAユーザ制御プロセス(1,2)によってアク
    セスできなくなっており、前記DMAユーザ制御プロセ
    ス(1,2)のスワップアウト時に前記ホストプロセッサ(2
    0)により更新されて更新された作業バッファポインタを
    収容する、請求項3に記載の装置。
  6. 【請求項6】前記DMAユーザ制御プロセス(1,2)によ
    るアクセスが防止されるように前記作業バッファポイン
    タレジスタ(40)が前記主メモリ(32)における少なくとも
    1つの特権ページへとマッピングされる、請求項5に記
    載の装置。
  7. 【請求項7】前記データ処理コマンド及びそれに関連す
    るデータの読み出し及び転送を行う前記手段(39)が、前
    記外部データ処理システムを前記ホストプロセッサ(20)
    及び前記主メモリ(32)に接続するための双方向バスバッ
    ファ(37)及び入出力バス(21)からなる、請求項1に記載
    の装置。
  8. 【請求項8】主メモリ(32)及びホストプロセッサ(20)を
    備えたユーザのホストシステムとグラフィクス処理サブ
    システムとの間でユーザ制御による直接メモリアクセス
    (DMA)を介してグラフィクスコマンド及びグラフィ
    クス要素(primitive)の転送を行う装置であって、 前記ホストプロセッサ(20)の特定のユーザプロセス(PRO
    C1,PROC2)の制御下にある前記主メモリ中の少なくとも
    2つの作業バッファ(35,36)であって、該作業バッファ
    (35,36)の各々が、前記ユーザプロセス(PROC1,PROC2)
    ついての前記グラフィクスコマンド及び前記グラフィク
    ス要素を選択的に格納する、少なくとも2つの作業バッ
    ファ(35,36)と、 前記特定のユーザプロセス(PROC1,PROC2)についての前
    記作業バッファ(35,36)のうちの異なるそれぞれに対す
    る作業バッファポインタをそれぞれ収容する作業バッフ
    ァポインタレジスタ(40)であって、前記作業バッファポ
    インタの各々が前記特定のユーザプロセス(PROC1,PROC
    2)に一意のものである、作業バッファポインタレジスタ
    (40)と、 前記特定のユーザプロセス(PROC1,PROC2)からのユーザ
    DMA命令に応じて、該ユーザDMA命令で指定された
    グラフィクスコマンド及びグラフィクス要素を、対応す
    る前記作業バッファポインタにより指示されるアドレス
    でユーザにより選択された前記作業バッファ(35,36)か
    ら読み出し、該選択された作業バッファからの前記グラ
    フィクスコマンド及びグラフィクス要素を前記グラフィ
    クス処理サブシステムへ転送する手段(39)とを備えてい
    る、装置。
  9. 【請求項9】ホストプロセッサを備えたユーザのホスト
    システムの主メモリ(32)に格納されているデータに対す
    る、ユーザ直接メモリアクセス(DMA)コマンドに応じ
    た、外部データ処理システムによるユーザ制御式DMA
    を提供する方法であって、 前記ユーザのホストシステムにより処理される各ユーザ
    プロセス(PROC1,PROC2)毎に前記主メモリ(32)中に少な
    くとも2つの作業バッファ(35,36)を画定し、 前記ユーザのホストシステムにより実施される対応する
    ユーザプロセス(PROC1,PROC2)についての前記作業バッ
    ファ(35,36)のメモリロックを獲得し、 前記ユーザプロセス(PROC1,PROC2)について画定された
    前記作業バッファ(35,36)のうちの1つに該ユーザプロ
    セスのデータ処理コマンド及びそれに関連するデータを
    書き込み、 前記ユーザプロセス(PROC1,PROC2)についての前記作業
    バッファ(35,36)のうちの異なるそれぞれに対する作業
    バッファポインタをそれぞれ収容する作業バッファポイ
    ンタレジスタ(40)を画定し、前記作業バッファポインタ
    の各々が前記ユーザプロセス(PROC1,PROC2)に一意のも
    のであり、 前記ユーザDMAコマンドを発行して前記作業バッファ
    (35,36)のうちの選択された1つからのDMAを開始さ
    せ、 前記ユーザプロセス(PROC1,PROC2)についての選択され
    た前記作業バッファ(35,36)に対応する前記作業バッフ
    ァポインタにより指示されるアドレスから初めて前記選
    択された作業バッファ(35,36)から前記データ処理コマ
    ンド及びそれに関連するデータを読み出し、 前記選択された作業バッファ(35,36)からの前記データ
    処理コマンド及びそれに関連するデータを前記外部デー
    タ処理システムへ転送する、 という各ステップを有する、方法。
  10. 【請求項10】別のユーザDMAコマンドを発行して前
    記作業バッファ(35,36)の他方からのDMAを開始させ
    ることにより前記作業バッファ(35,36)をスワップさせ
    る、請求項9に記載の方法。
JP04183191A 1990-03-15 1991-03-07 作業バッファポインタを用いたユーザスケジュール式直接メモリアクセス方法及びその装置 Expired - Lifetime JP3272370B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/494,008 US5347634A (en) 1990-03-15 1990-03-15 System and method for directly executing user DMA instruction from user controlled process by employing processor privileged work buffer pointers
US494008 1990-03-15

Publications (2)

Publication Number Publication Date
JPH0594406A JPH0594406A (ja) 1993-04-16
JP3272370B2 true JP3272370B2 (ja) 2002-04-08

Family

ID=23962629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04183191A Expired - Lifetime JP3272370B2 (ja) 1990-03-15 1991-03-07 作業バッファポインタを用いたユーザスケジュール式直接メモリアクセス方法及びその装置

Country Status (2)

Country Link
US (1) US5347634A (ja)
JP (1) JP3272370B2 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3055917B2 (ja) * 1990-05-22 2000-06-26 日本電気株式会社 データ転送制御装置
EP0551191B1 (en) * 1992-01-09 2000-04-12 Cabletron Systems, Inc. Apparatus and method for transferring data to and from host system
US6026443A (en) * 1992-12-22 2000-02-15 Sun Microsystems, Inc. Multi-virtual DMA channels, multi-bandwidth groups, host based cellification and reassembly, and asynchronous transfer mode network interface
US5828903A (en) * 1994-09-30 1998-10-27 Intel Corporation System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
SE515737C2 (sv) * 1995-03-22 2001-10-01 Ericsson Telefon Ab L M Anordning och förfarande avseende hantering av digitala signaler och en behandlingsanordning omfattande en dylik
EP0747859B1 (en) * 1995-06-06 2005-08-17 Hewlett-Packard Company, A Delaware Corporation Interrupt scheme for updating a local memory
US5778180A (en) * 1995-11-06 1998-07-07 Sun Microsystems, Inc. Mechanism for reducing data copying overhead in protected memory operating systems
US5895488A (en) * 1997-02-24 1999-04-20 Eccs, Inc. Cache flushing methods and apparatus
US6658537B2 (en) * 1997-06-09 2003-12-02 3Com Corporation DMA driven processor cache
US6058438A (en) * 1998-02-06 2000-05-02 Hewlett-Packard Company Method and apparatus for performing high speed data transfers between a host memory and a geometry accelerator of a graphics machine
US6209063B1 (en) * 1998-05-07 2001-03-27 Microware Systems Corporation Management of the information flow within a computer system
US6633926B1 (en) 1998-11-30 2003-10-14 Matsushita Electric Industrial Co., Ltd. DMA transfer device capable of high-speed consecutive access to pages in a memory
US6324600B1 (en) * 1999-02-19 2001-11-27 International Business Machines Corporation System for controlling movement of data in virtual environment using queued direct input/output device and utilizing finite state machine in main memory with two disjoint sets of states representing host and adapter states
US7139743B2 (en) 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
US8095508B2 (en) * 2000-04-07 2012-01-10 Washington University Intelligent data storage and processing using FPGA devices
US6711558B1 (en) * 2000-04-07 2004-03-23 Washington University Associative database scanning and information retrieval
US7716330B2 (en) * 2001-10-19 2010-05-11 Global Velocity, Inc. System and method for controlling transmission of data packets over an information network
KR100440405B1 (ko) * 2001-11-19 2004-07-14 삼성전자주식회사 더블 버퍼링을 이용한 화상 데이터 출력 제어장치
US7711844B2 (en) 2002-08-15 2010-05-04 Washington University Of St. Louis TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks
US7245945B2 (en) * 2002-11-05 2007-07-17 Intel Corporation Portable computing device adapted to update display information while in a low power mode
US7234028B2 (en) * 2002-12-31 2007-06-19 Intel Corporation Power/performance optimized cache using memory write prevention through write snarfing
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
EP2528000B1 (en) 2003-05-23 2017-07-26 IP Reservoir, LLC Intelligent data storage and processing using FPGA devices
US7219170B2 (en) * 2003-12-04 2007-05-15 Intel Corporation Burst transfer register arrangement
US7602785B2 (en) * 2004-02-09 2009-10-13 Washington University Method and system for performing longest prefix matching for network address lookup using bloom filters
TWI242134B (en) * 2004-02-12 2005-10-21 Via Tech Inc Data extraction method and system
JP4533713B2 (ja) * 2004-09-30 2010-09-01 株式会社東芝 情報処理装置およびデータ転送制御方法
WO2006096324A2 (en) 2005-03-03 2006-09-14 Washington University Method and apparatus for performing biosequence similarity searching
US7996659B2 (en) * 2005-06-06 2011-08-09 Atmel Corporation Microprocessor instruction that allows system routine calls and returns from all contexts
US7702629B2 (en) * 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
US7954114B2 (en) * 2006-01-26 2011-05-31 Exegy Incorporated Firmware socket module for FPGA-based pipeline processing
WO2008022036A2 (en) * 2006-08-10 2008-02-21 Washington University Method and apparatus for protein sequence alignment using fpga devices
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
WO2010138568A2 (en) * 2009-05-28 2010-12-02 Kent Displays Incorporated Writing tablet information recording device
FR2961923B1 (fr) * 2010-06-25 2013-12-20 Commissariat Energie Atomique Dispositif, chaine et procede de traitement de donnees, et programme d'ordinateur correspondant
US9047243B2 (en) 2011-12-14 2015-06-02 Ip Reservoir, Llc Method and apparatus for low latency data distribution
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US9633097B2 (en) 2012-10-23 2017-04-25 Ip Reservoir, Llc Method and apparatus for record pivoting to accelerate processing of data fields
US9633093B2 (en) 2012-10-23 2017-04-25 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
WO2014066416A2 (en) 2012-10-23 2014-05-01 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
GB2541577A (en) 2014-04-23 2017-02-22 Ip Reservoir Llc Method and apparatus for accelerated data translation
US10942943B2 (en) 2015-10-29 2021-03-09 Ip Reservoir, Llc Dynamic field data translation to support high performance stream data processing
US20170154403A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Triple buffered constant buffers for efficient processing of graphics data at computing devices
WO2018119035A1 (en) 2016-12-22 2018-06-28 Ip Reservoir, Llc Pipelines for hardware-accelerated machine learning

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4261033A (en) * 1977-01-19 1981-04-07 Honeywell Information Systems Inc. Communications processor employing line-dedicated memory tables for supervising data transfers
JPS54129942A (en) * 1978-03-31 1979-10-08 Fujitsu Ltd Direct transfer system between sub-systems
US4293908A (en) * 1979-01-31 1981-10-06 Honeywell Information Systems Inc. Data processing system having direct memory access bus cycle
US4435780A (en) * 1981-06-16 1984-03-06 International Business Machines Corporation Separate stack areas for plural processes
JPS6057457A (ja) * 1983-09-07 1985-04-03 Ricoh Co Ltd Dma装置
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US4874164A (en) * 1986-07-18 1989-10-17 Commodore-Amiga, Inc. Personal computer apparatus for block transfer of bit-mapped image data
US4811216A (en) * 1986-12-22 1989-03-07 American Telephone And Telegraph Company Multiprocessor memory management method
US5001624A (en) * 1987-02-13 1991-03-19 Harrell Hoffman Processor controlled DMA controller for transferring instruction and data from memory to coprocessor
US4989113A (en) * 1987-03-13 1991-01-29 Texas Instruments Incorporated Data processing device having direct memory access with improved transfer control
US5099417A (en) * 1987-03-13 1992-03-24 Texas Instruments Incorporated Data processing device with improved direct memory access
US5097411A (en) * 1987-08-13 1992-03-17 Digital Equipment Corporation Graphics workstation for creating graphics data structure which are stored retrieved and displayed by a graphics subsystem for competing programs
US4930069A (en) * 1987-11-18 1990-05-29 International Business Machines Corporation Mechanism and method for transferring data between bus units having varying master and slave DMA capabilities
JP2712131B2 (ja) * 1989-01-23 1998-02-10 株式会社日立製作所 通信制御装置
US5056010A (en) * 1989-10-30 1991-10-08 Industrial Technology Research Institute Pointer based DMA controller
US5165073A (en) * 1990-05-04 1992-11-17 Honeywell, Inc. Facsimile apparatus for producing variable size and resolution images on a reproduction medium

Also Published As

Publication number Publication date
JPH0594406A (ja) 1993-04-16
US5347634A (en) 1994-09-13

Similar Documents

Publication Publication Date Title
JP3272370B2 (ja) 作業バッファポインタを用いたユーザスケジュール式直接メモリアクセス方法及びその装置
JP3369580B2 (ja) 直接メモリアクセスを行うためのインターフェース装置及び方法
US6711650B1 (en) Method and apparatus for accelerating input/output processing using cache injections
US5615392A (en) Method and apparatus for consolidated buffer handling for computer device input/output
KR100226088B1 (ko) 어드레스 변환 가능한 도형 처리장치 및 그것을 사용한 데이터 처리장치 및 도형 묘화 방법
US7680987B1 (en) Sub-page-granular cache coherency using shared virtual memory mechanism
US5903908A (en) Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
US5185694A (en) Data processing system utilizes block move instruction for burst transferring blocks of data entries where width of data blocks varies
US5936640A (en) Accelerated graphics port memory mapped status and control registers
CN100555257C (zh) 处理页面复制期间的dma操作的存储控制器和方法
US5999198A (en) Graphics address remapping table entry feature flags for customizing the operation of memory pages associated with an accelerated graphics port device
JP3176129B2 (ja) マイクロプロセッサのオンチップキャッシュのモニタ構造及びモニタ方法
JPH09114665A (ja) 記憶装置と補助プロセッサ間のコマンド及びデータ転送方法及び情報処理システム
JPH11167524A (ja) コンピュータ・システム
JPH0612327A (ja) キャッシュメモリを有するデータプロセッサ
JPH0340046A (ja) キャッシュメモリ制御方式および情報処理装置
JPH0997214A (ja) 補助プロセッサのためのアドレス変換を含む情報処理システム
JPH11167523A (ja) コンピュータ・システム
US6412047B2 (en) Coherency protocol
US6865651B2 (en) Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
JPH09179779A (ja) コンピュータシステムおよびデータ転送方法
US5652915A (en) System for controlling mode of operation of a data cache based on storing the DMA state of blocks by setting the DMA state to stall
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
JPH01288940A (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

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

Free format text: PAYMENT UNTIL: 20090125

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090125

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100125

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100125

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120125

Year of fee payment: 10

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120125

Year of fee payment: 10