JP3369580B2 - 直接メモリアクセスを行うためのインターフェース装置及び方法 - Google Patents

直接メモリアクセスを行うためのインターフェース装置及び方法

Info

Publication number
JP3369580B2
JP3369580B2 JP04480891A JP4480891A JP3369580B2 JP 3369580 B2 JP3369580 B2 JP 3369580B2 JP 04480891 A JP04480891 A JP 04480891A JP 4480891 A JP4480891 A JP 4480891A JP 3369580 B2 JP3369580 B2 JP 3369580B2
Authority
JP
Japan
Prior art keywords
user
data
dma
command
virtual
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
JP04480891A
Other languages
English (en)
Other versions
JPH04219852A (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 JPH04219852A publication Critical patent/JPH04219852A/ja
Application granted granted Critical
Publication of JP3369580B2 publication Critical patent/JP3369580B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ホストシステムの主記
憶装置に格納されているデータに外部データ処理システ
ムにより直接アクセスする方法及び装置に関するもので
あり、更に詳細には、グラフィックサブシステムのよう
な外部データ処理システムにより、ユーザが指定した仮
想メモリ空間の記憶場所にあるホストシステムの主記憶
装置の内容をユーザの制御のもとで外部データ処理シス
テムに転送することによりホストシステムの仮想記憶装
置に直接メモリアクセスを行う方法及び装置に関する。
【0002】
【従来の技術】一般に、ホストシステムのプロセッサと
外部データプロセッサとの間のデータ転送は、ホストプ
ロセッサで実行されるプログラムの直接制御のもとに入
出力(I/O)付属装置を介して行われる。典型的に
は、データの各バイト又はワードを転送するには幾つか
の指令を実行する必要がある。しかし、I/O装置の中
にはこの技法で達成し得るより大きいデータ転送速度を
必要とするものがある。このような装置については、I
/O付属装置は直接メモリアクセス(DMA)として知
られているデータ転送プロセスを使用することができ
る。DMAはホストプロセッサで指令の実行を行う必要
なしにホストプロセッサの記憶装置とI/O付属装置と
の間でデータの直接転送を可能とする。特に、DMAの
期間中、ホストプロセッサは先づ、カウントと開始メモ
リアドレスとをそのレジスタに格納することによりDM
Aプロセッサの回路を初期設定する。一旦始動すると、
DMAはそれ以上ホストプロセッサの介在なしに進行し
(ただしDMA動作が完了すると割込みが発生すること
がある)、従ってデータの転送はホストプロセッサでそ
れ以上指令を実行する必要なしに処理される。
【0003】このようなDMA手法を利用するI/O付
属装置は既知であり、一般に図1に示す形式の回路を組
込んでいる。図1のDMAプロセッサのホストプロセッ
サはアドレスカウンタ10及びカウンタレジスタ12を
設定する。信号バスサイクルはバスによりアドレスが提
示され、データが交換される期間を規定する責務を持
つ。DMAプロセッサはまたI/O付属装置に「転送要
求」及び「要求許可」の線路を接続する。動作中、I/
O付属装置がバスサイクルを使用したいときは、転送要
求線の電圧を上げる。DMAカウントレジスタ12がゼ
ロでなければ、信号をホストプロセッサに対するバス要
求線に載せる。ホストプロセッサのハードウェアはこの
信号を定期的に調べ、その信号が高論理レベルのもので
あると、ホストプロセッサは現在のバスサイクルの終り
まで待ち、それ以上のバス活動を停止し、そのアドレス
及びデータ線ドライバを高インピーダンス状態にし、バ
ス許可線の電圧を上げる。ホストプロセッサはこのよう
にしてDMAプロセッサに対して許可されたバスサイク
ルの期間中バスから効果的に分離される。バス許可線の
高論理レベルがDMAプロセッサにより検知されると、
DMAプロセッサはそのアドレスカウンタレジスタ10
の内容をアドレス線に載せ、要求許可線を通してI/O
付属装置にデータの転送に現在のバスサイクルを使用で
きることを知らせる。I/O付属装置自身はこのように
してデータ転送の方向を決めるバスを駆動することがで
き、又はDMAプロセッサの別の回路がこれらの線を駆
動することができる。転送要求が高論理レベルに保持さ
れている限り、連続バスサイクルをI/O付属装置が使
用することができる。このような手法は「サイクルステ
ィール」として知られている。
【0004】従来技術の図1の回路は連続してバスサイ
クルを使用することができ(「バーストモード」)、又
はバスサイクルを間欠的に使用することができる。この
選択はI/O付属装置のデータ転送速度によって決ま
る。事実、ホストシステムのプロセッサはバス許可を発
生することによりバスを放棄する準備に幾つかのバスサ
イクルを使用しなければならないこと、及びバスを再び
獲得してから幾つかのバスサイクルを使用しなければな
らないことが屡々ある。これらのサイクルは指令実行又
はデータ転送に寄与しないという点で非生産的である。
それ故、連続バスサイクルを利用するDMA転送はバス
を一層効率良く活用するものである。
【0005】従って、データを外部データ処理システム
に転送するときホストプロセッサにかかる負担を減らす
ために、DMAを使用してホストシステムの主記憶装置
からデータを取出し、これを別の処理指令を必要とせず
に外部データ処理システムに伝えることが知られてい
る。しかし、このような従来技術のDMA手法は多数ユ
ーザのメモリ空間の完全性を保証するのにホストプロセ
ッサのカーネルソフトウェアによって開始されるのが一
般的で、ホストシステムで動作するユーザコードにより
開始されるのではなかった。その結果、ホストシステム
のユーザアプリケーションプログラムが、従来のグラフ
ィック処理又はネットワーキングシステムのような大き
なデータブロックの処理を必要とするとき、ユーザの計
画によるDMAは不可能であった。どちらかと言えば、
ホストシステムの主記憶装置へのアクセスはホストプロ
セッサによるシステムソフトウェア(又はカーネル)制
御を通してのみ行われるのが一般的であり、このためシ
ステムの全体のデータ転送時間がかなりのろくなりユー
ザプログラミングが複雑になっていた。従って、これま
ではグラフィック又は他のこのような複雑なデータプロ
ファイルのリアルタイム操作をDMAインターフェイス
を介してユーザ指導のもとに行うことは極めて困難であ
った。
【0006】
【発明が解決しようとする課題】従って、当業界ではホ
ストシステムの主記憶装置にあるデータにユーザ制御の
もとにアクセスし、これにより外部プロセス又は外部処
理システムへのデータ転送に必要な時間を、システムの
保証を失うことなくリアルタイムのデータ操作ができる
ようにかなり減らすことができる外部プロセスを可能と
するプロセス及び装置の必要性が長い間痛感されてい
る。本発明はこの目的のために企画されている。
【0007】
【課題を解決するための手段】上述の長い間痛感された
必要性は、ホストシステムからの指令を仮想メモリ空間
で翻訳し、仮想アドレスを物理アドレスに変換し、主シ
ステム記憶装置からデータブロックをカーネルソフトウ
ェアの要求でではなく、ユーザの要求で取出す知能的直
接メモリアクセス(DMA)プロセッサに関する本発明
により満たされる。これにより多数ユーザシステムでの
アクセスの保証を維持しながら、カーネルの要求ではな
くユーザの要求で、急速データアクセスを行うことがで
きる。
【0008】本発明によれば、データ処理指令及び関連
データを主記憶装置を備えているユーザのホストシステ
ムと外部データ処理システムとの間で転送するインタフ
ェース装置が設けられている。本発明によるインタフェ
ース装置は、データ処理指令及び関連データをデータ処
理指令及びユーザのホストシステムの仮想メモリ空間に
ある関連データを指す仮想ポインタから成るそれぞれの
指令/ポインタパケットとして表わす手段を備えてい
る。指令/ポインタパケットの仮想ポインタは関連デー
タが収められている主記憶装置内部の物理アドレスを識
別する目的で変換手段により物理ポインタに変換される
ので関連データを主記憶装置内の物理アドレスに対して
読取及び書込手段により読み書きすることができる。こ
のような直接メモリアクセスシステムは好適にはユーザ
のホストシステムに接続されているグラフィックサブシ
ステムと関連して使用され、これによりデータ処理指令
がグラフィック指令になり、関連データはグラフィック
要素データを備えている。しかし、外部データ処理シス
テムを通信回路網、又は直接メモリアクセスを必要とす
る他の幾つかのこのようなシステムとすることができ
る。
【0009】好適実施例では、表現手段の機能をホスト
プロセッサで行うことができ、一方変換手段の機能を、
ホストプロセッサにより指令/ポインタパケットの仮想
ポインタに対応する現在の物理ポインタを入れるように
する更新される少くとも一つの裏ページテーブル(Shad
ow page table)を備えたDMAプロセッサによ り行う
ことができる。好適には、裏ページテーブルはホストシ
ステムのユーザ制御プロセスごとに設けられ、各裏ペー
ジテーブルはユーザに特権として付与される。裏ページ
テーブルの中の欠けているページはホストプロセッサに
そのカーネルソフトウェアが欠けているページを外部記
憶装置から入れ換えることができるように割込むことに
より更新することができる。また、好適実施例では、本
発明のインタフェース装置はホストシステムの処理を主
記憶装置のDMA読み書きアクセスと同期させる同期化
手段を備えている。更に、データ一貫性技法がホストシ
ステムにより好適に行われ、主記憶装置が前のアクセス
後更新され終る前にデータアクセスされることがないよ
うにしている。
【0010】本発明の他の特徴によれば、インタフェー
ス装置が主記憶装置を備えているユーザのホストシステ
ムとグラフィックサブシステムとの間でグラフィック指
令及びグラフィック要素を転送するように設けられてい
る。このインタフェース装置は、グラフィック指令及び
グラフィック要素をグラフィック指令及びユーザのホス
トシステムの仮想メモリ空間にあるグラフィック要素デ
ータを指す仮想ポインタから成るそれぞれの指令/ポイ
ンタパケットとして表わす手段を使用することにより指
令/ポインタプロトコルを好適に利用している。この指
令/ポインタプロトコルに関連して、仮想ポインタを主
記憶装置内のグラフィック要素が収容されている物理ア
ドレスを識別する物理ポインタに変換する手段が設けら
れている。好適には、変換手段はユーザのホストシステ
ムの各ユーザ制御プロセスに対する裏ページテーブルを
備えたDMAプロセッサを備えており、各裏ページテー
ブルは、仮想ポインタに対応する現在の物理ポインタを
入れるように、グラフィック要素が主記憶装置に入って
いないことの指示に応じて、ユーザのホストシステムの
プロセッサ主導型オペレーティングシステムにより更新
される。変換手段は更に、指令/ポインタパケットを順
次格納し、DMAプロセッサに応じてDMAプロセッサ
及びDMA状態手段により分析して主記憶装置の物理ア
ドレスからグラフィック要素の読み書きを開始する指令
/ポインタパケットバッファを備えている。同期化手段
はDMA状態手段により開始される読み書きにユーザの
ホストシステムを同期させることもできる。
【0011】本発明はまた、ユーザのデータ処理指令に
応じてユーザのホストシステムの主記憶装置に格納され
ているデータに外部データ処理システムにより直接メモ
リアクセスを行う方法をも含んでいる。この方法は一般
に、ユーザによりユーザのデータ処理指令で要求された
外部データ処理システムによるすべての直接メモリアク
セスを予備承認するステップ、各ユーザプロセスに対し
て、ユーザのデータ処理指令及びユーザのデータ処理指
令の処理に使用するため主記憶装置内のデータを指すユ
ーザのホストシステムの仮想メモリ空間にある仮想ポイ
ンタから成る一連の指令/ポインタパケットを組立てる
ステップ、各指令/ポインタパケットを分析してユーザ
のデータ処理指令及び仮想ポインタを得るステップ、ユ
ーザのデータ処理指令を外部データ処理システムの入力
に書込むステップ、仮想ポインタを主記憶装置内の実際
のメモリ位置を指す対応する物理ポインタに変換するス
テップ、データの長さを識別するワードカウントを決定
するステップ、及びワードカウントに対応するデータの
多数のワードを外部データ処理システムの入力に移す、
物理ポインタにより識別される主記憶装置内のアドレス
から開始される、データ転送ステップ、から構成され
る。
【0012】本発明の方法はまたユーザのホストシステ
ムによる処理をデータ転送ステップに同期させて「不
正」の記憶装置にDMAしようとすることのないように
するステップを設けることもできる。データ一貫性の問
題もデータ転送しようとする前にすべての表示リスト要
素ばかりでなくユーザのデータキャッシュをも主記憶装
置にフラッシングすることにより防止される。また、主
記憶装置へのすべての裏ページテーブルを仮想対物理ポ
インタ変換の前及び後にフラッシングすることができる
が、この変換は、変換ルックアサイドバッファのテーブ
ル調査を行ってユーザの各データ処理指令に関連するデ
ータの物理アドレスを見つけるステップ、変換ルックア
サイドバッファに物理アドレスが入っていないとき、裏
ページテーブルを探すステップ、物理アドレスが裏ペー
ジテーブルで見つかったら、対応する仮想対物理変換を
変換ルックアサイドバッファに追加するステップ、物理
アドレスをDMA状態装置のアドレスレジスタに書込む
ステップ、及びテーブル調査ステップを繰返すステッ
プ、から構成される。
【0013】しかし、変換ステップ中に、ページ又は保
護の障害が生じたら、変換ステップを中止し、割込をユ
ーザのホストシステムに伝えてページスワッピング又は
或る他の救済動作を行うことができるようにする。その
上、この処理は任務交換の必要なしにホストプロセッサ
により行われ、これにより本発明のシステムの応答時間
がかなり向上する。このようにして、仮想メモリシステ
ムの特性が本発明に従って維持され、一方カーネル制御
の無いユーザ計画DMAの処理効率の向上も可能にな
る。
【0014】
【実施例】ここに開示し且つ権利の主張をする主題事項
の発明者は、当業界で長い間痛感されていた上述の必要
性を、グラフィックサブシステムのような外部データ処
理システムに、各メモリアクセスを開始し制御するのに
カーネルを必要とせずにユーザの制御のもとでホストシ
ステムの主記憶装置から直接データにアクセスさせるホ
ストインタフェースプロセス及び装置を開発することに
より満たしている。
【0015】本発明によれば、仮想メモリ空間にあるユ
ーザの指令に応じてホストシステムの主記憶装置から外
部データ処理システムに対して直接データを転送するこ
とができ、これによりインタフェースの所要帯域幅が減
少する。その結果、ホストプロセッサはもはやルーチン
データの複写を行う貴重な計算時間を消費する必要がな
い。また、ホストのユーザレベルのソフトウェアは仮想
アドレスを使用して記憶装置への直接アクセスを開始す
ることができるので、カーネルサービスに対するサブル
ーチン呼出しは不要である。更に、上述の事項は本発明
にれば伝統的なページスワッピング及び仮想記憶装置の
機能及び保護という利益を失うことなく行われる。
【0016】本発明の現在のところ好適な実施例による
これらの及び他の有利な特徴について図2及び図3を参
照して説明することにする。
【0017】図示のように、本発明は一般にホスト処理
システム及びホストシステムのグラフィックサブシステ
ムに関連して説明されるが、当業者には本発明を他の環
境にも同様に良く使用することができることが認められ
るであろう。その上、ここに示した説明は例示目的のみ
のものであり、どんな仕方でも本発明の範囲を限定しよ
うとするものではない。本発明の範囲に関する疑問はす
べて付記した特許請求の範囲を参照することにより解決
することができる。
【0018】図2は本発明を取入れたホストインタフェ
ースによりグラフィックサブシステムに接続されたホス
ト処理システムを示す。図示のように、処理システムは
システムI/Oバス21を経由して接続されているホス
トプロセッサ20及びグラフィック変形エンジン24と
のVDMAホストインタフェース22を備えている。変
形エンジン24の出力はグラフィック描写回路26へ、
次いでフレームバッファ28へ出力される。フレームバ
ッファ28の出力は、たとえば、ラスタ表示装置30に
より受取られ、CRT画面に出力される。以下に詳細に
説明するように、本発明は特に、図2のホストインタフ
ェース回路22及びホストインタフェース回路22によ
り行われ、ホストプロセッサ20の主記憶装置と変形エ
ンジン24、描写回路26、フレームバッファ28、及
びラスタ表示装置30から成るグラフィックサブシステ
ムとの間でホストプロセッサ20のソフトウェアプログ
ラム(又はカーネル)の介在なしで直接データを転送で
きるうようにする直接メモリアクセス(DMA)プロセ
スを目指している。
【0019】本発明のDMAをホストプロセッサ20へ
のユーザ入力に応答させるには、ユーザ入力を実際のメ
モリアドレスを直接参照する(アセンブリ言語のよう
な)低レベル言語で行わなければならないか、又は通常
よくある場合のように、ユーザ入力をユーザのメモリ空
間(今後「仮想メモリ」空間と言う)にあるアドレスか
ら物理メモリアドレスに変換しなければならない。この
ような仮想メモリシステムは周知であり、このような形
式のシステムはプロセスのアドレス空間(すなわち、基
準指令、データなどを発生するアドレス)が物理アドレ
ス空間(すなわち、実行中にプロセスにより実際に占有
されるようなマシンアドレス)と同一でなければ仮想記
憶装置を備えていると言われる。それ故実行時間変換は
プロセスの仮想アドレス空間からホストシステムの主記
憶装置の物理アドレス空間へ行わなければならない。こ
れは典型的には特別に作られた仮想メモリハードウェア
の補助により行われる。それはホストシステムのユーザ
がDMAが本発明に従って実施されるそのグラフィック
処理要求を行うこのような仮想メモリ空間に入ってい
る。
【0020】一般に、データの動的再配置の能力を与え
るように仮想メモリを実現するのに写像機構が使用され
る。ページング、セグメント化、及びこの二つの組合せ
は動的仮想メモリを作る三つの普通の機構である。本発
明の装置はこれら写像機構のどれとでも関連して使用す
ることを目的としており、本発明によるユーザ計画DM
Aプロセスを実施する目的でこのようなシステムに対す
る修正例を以下に更に詳細に説明することにする。
【0021】図3は本発明の各種構成要素のブロック図
を示す。図示のように、本発明の図示した実施例のシス
テムはホスト中央プロセッサ(CPU)20をグラフィ
ックプロセッサ(図示せず)にシステムI/Oバス21
により接続している。ホストCPU20は一般に処理機
能及びソフトウェア主導型メモリアクセスを行うオペレ
ーティングシステム(又はカーネル)201を備えてい
る。ホストCPU20はそれぞれ要素202及び203
として示したグラフィックプロセス1及び2のような一
つ以上のユーザアプリケーションプログラムを実行す
る。ホストCPU20の各ユーザは自分自身の仮想メモ
リ空間で動作するので、メモリ写像はオペレーティング
システム201及びグラフィックプロセス1及び2によ
り出力された仮想アドレスを物理アドレスにそれぞれ変
換する仮想対物理変換器204、205、及び206に
より行われる。変換された物理アドレスは次にホストC
PU20に関連する主(物理)記憶装置32にアクセス
するためメモリバス31を横断して送られる。好適に
は、主記憶装置32はグラフィックプロセス1及び2に
対するシステム特権ページテーブル33及びユーザ特権
ページテーブル34を内部に格納している。主記憶装置
32はまた好適に、各プロセス用作業バッファ35の他
に各プロセス用データに関連するデータを格納するデー
タ部36をも備えている。以下に更に詳細に説明するよ
うに、各作業バッファ35はそれぞれ指令、及び指令及
びデータが下流の本発明のVDMAホストインタフェー
ス22に伝えられるまで指令に関連するデータを指す仮
想ポインタを格納している。
【0022】メモリバス31とVDMAホストインタフ
ェース22との間の通信は、バスインタフェースバッフ
ァ37を経由してシステムI/Oバス21を通して行わ
れる。バスインタフェースバッファ37は一般に、メモ
リバス31とシステムI/Oバス21との間で、双方向
データ転送が干渉しないようにすると共に、主記憶装置
32と補助記憶装置(スワップディスク)38又はVD
MAホストインタフェース22との間のデータの転送を
も統合する。特に、バスインタフェースバッファ37
は、外部記憶装置(スワップディスク)38とのページ
スワッピング中及び本発明によるVDMAホストインタ
フェース22とのDMAデータ転送中にシステムメモリ
バス31をシステムI/Oバス21と連結するように働
く。
【0023】VDMAインタフェース22は好適に本発
明によるシステムI/Oバス21を通してホストCPU
20から受取った一連の指令/ポインタワードを格納す
る指令/ポインタ(C/P)待行列又はFIFO221
を備えている。受取った指令/ポインタワードは次にD
MAプロセッサ222により分析され、仮想ポインタは
本発明によるDMAを使用して主記憶装置32にアクセ
スするため物理ポインタに変換される。この目的で、D
MAプロセッサ222は、主記憶装置32に設置し且つ
以下に説明するようにカーネル201により維持するこ
とができるユーザ特権の仮想対物理変換テーブル(裏ペ
ージテーブル)へのアクセスを含んでいる。最後に、V
DMAホストインタフェース22はVDMAホストイン
タフェース22から主記憶装置32へのDMA読み書き
要求を行うDMA状態マシン223をも備えている。
【0024】このように構成される実施例は、指令及び
指令と関連するデータを指す仮想ポインタが入っている
データパケット(C/Pパケット)を伝統的な指令/デ
ータ(C/D)パケットに変換してグラフィックプロセ
ッサにより処理するか、又は他方、パケットをグラフィ
ックプロセッサに直接送ることができる指令/ポインタ
(C/P)構成と関連して好適に使用される。C/Dパ
ケットは一般に一つ以上の32ビットワードから成る指
令とこれに続く0以上のデータワードから構成される。
C/Dパケットは他方、実際のデータがデータを指すポ
インタで置き換えられていることの他はC/Dパケット
と全く同じである。VDMAホストインタフェース22
は次にこのポインタの参照を解き、指令に関連するデー
タをDMAを使用して主記憶装置32から直接獲得す
る。しかし、ポインタは仮想メモリ空間にあるユーザに
より識別されるので、本発明に従ってDMAを行うこと
ができる前に仮想ポインタを物理ポインタに変換しなけ
ればならない。
【0025】従って、本発明によるC/Pパケットのグ
ラフィックハードウェアに送られるポインタは伝統的な
(物理)ポインタではなく、仮想的、又は論理的ポイン
タである。従って、本発明によるDMA活動をここでは
仮想DMA、又は簡単にVDMAと言う。しかし、物理
アドレスだけがシステムI/Oバス21に現われるの
で、VDMAという用語はDMAに対するアドレスの元
来の源が仮想アドレスであったことを示すのに実際には
有用であるに過ぎない。本発明のVDMAホストインタ
フェース22は仮想アドレスを、ポインタの参照を解除
することができる前に物理アドレスに変換又は写像しな
ければならない。従って、VDMAは従来技術の図1を
参照して説明したようなバスサイクルの特別な形式では
ない。
【0026】本発明によるVDMAプロセスは一般に次
のように動作する。最初に、ホストCPU20は特定の
目的のためVDMAインタフェース22によりすべての
DMAに総括的承認を与え、これによりDMAが行われ
るごとにカーネルの呼出しを必要とすることが無くな
る。ホストCPU20のユーザ応用ソフトウェア(すな
わち、グラフィックプロセス1又は2)は次に各グラフ
ィックプロセスに対する一連のC/Pパケットを備えて
いる主記憶装置32の作業バッファ35を組立てる。作
業バッファ35の内容はバスインタフェースバッファ3
7を経由してC/PFIFO221に転送され、ここで
データがDMAプロセッサ222により読取られる。D
MAプロセッサ222は次に適切な指令ワードを出力指
令/データ待行列(図示せず)に書込み、仮想ポインタ
を物理アドレスに変換し、このアドレスはワードカウン
トと共にDMA状態マシン223に書込まれる。DMA
状態マシン223は要求されたデータを主記憶装置32
から読出し、転送されたデータを出力指令/データ待行
列に出力してその中にC/Dパケットを完成させる。D
MA状態マシンが第1の指令に関連するデータをブロッ
クで転送するのに忙しい間に、VDMAプロセッサ22
2は次のC/DパケットをC/PFIFOから読出す。
次に、VDMAホストインタフェース22のハードウェ
アがC/Pパケットの第1のバッファを分析するのに忙
しい間、ユーザのソフトウェアはユーザのグラフィック
指令及びデータを含む他のC/Pパケットの準備を続け
る。出力指令/データ待行列の中のパケットをこうして
グラフィックサブシステムが使用してユーザが要求した
グラフィック操作をユーザが指定したデータを用いて行
うことができる。
【0027】このようにして、上述のC/P構成を用い
て動作する期間中、ホストCPU20は指令及びその関
連データのパケットを作り出し、それらパケットを、仮
想アドレス変換を必要としない物理ページである、記憶
装置のロックページにある作業バッファ35に書込む。
次にホストCPU20は、VDMAホストインタフェー
ス22が物理DMAを行って作業バッファ35の全体を
C/PFIFO221に移動させることを要求する。丁
度記したように、これはホストCPU20に指令及びそ
の関連データを指すポインタのパケットを作らせ、これ
らC/Pパケットを主記憶装置32の中の作業バッファ
35に書込ませることにより行われる。次にホストCP
U20は指令をDMAプロセッサ222に送り、この指
令を復号してDMA処理が開始され、これによって作業
バッファ35の内容がC/PFIFO221に書込まれ
DMAプロセッサ222により読取られるようにする。
C/PパケットがDMAプロセッサ222により復号さ
れると、仮想DMAを使用して所定のグラフィック要素
に関連するデータを得る。
【0028】しかし、ホストCPU20は、1990年
3月15日に出願された、本発明の譲受人に譲渡され、
ここに引用して取り込む、関連出願の米国特許出願第4
94008号に記してあるように、直接C/Dパケット
を出力することもできるので、ここに記すような仮想対
物理変換は常に行う必要はない。いずれにしても、本発
明によるユーザグラフィックへの参照はすべて仮想ポイ
ンタを経由することができるので本発明のVDMAホス
トインタフェース22はグラフィック要素に関するデー
タを得るのに仮想アドレスを使用することができなけれ
ばならない。それ故、本発明によるDMAプロセッサ2
22はそれ自身の仮想対物理変換能力を備えており、た
とえば、仮想対物理変換用の変換ルックアサイドバッフ
ァ(TLB)を備えることができる。その結果、実際の
バスアドレスは常に物理アドレスである。
【0029】本発明によるC/Pパケット及びプロセス
について今度は引続き図3を参照して更に詳細に説明す
ることにする。
【0030】従来技術のグラフィックシステムでは、ホ
ストCPU20は一般に入力多角形及び多重線(polyli
ne)に対して二つのことしか行わない。すなわち、ホス
トCPU20は次回の要素の位置をつきとめ、それが多
重線であるか又は多角形であるか及びデータをグラフィ
ックハードウェアに送る前に更に処理する必要があるか
否かを判断する。次にデータをバッファに写し取る。本
発明はグラフィックデータをグラフィックハードウェア
まで動かすために必要な複写の量をかなり排除するよう
に計画されている。特に、本発明は、グラフィックハー
ドウェアが主記憶装置32を直接読取ることができれ
ば、ホストCPU20はグラフィックハードウェアに適
切な見出しとデータを指すポインタとを送るだけでよい
という理論に基いて動作している。上に記したように、
これは本発明によれば、指令及びその関連データをC/
Pパケットとして組立てることにより行われる。
【0031】本発明による典型的なC/Pパケットは好
適に、見出し、グラフィック指令、サイズ情報、カウン
ト情報、フラグ情報、ワード/頂点情報、及び仮想ポイ
ンタから構成されている。見出しはパケットがC/Pパ
ケットであることを示すが、サイズ情報は多角形の頂点
データのワードの全数を示す。グラフィック指令は、入
力データが例えば多角形であることを示すことができる
が、カウントと多角形の頂点の数を示す。フラグ情報は
入力多角形に対して活動する処理モードを示すが、ワー
ド/頂点情報は各頂点を記述するのに使用することがで
きるワードの数を示すことができる。最後に、仮想ポイ
ンタは本発明による頂点データ構造を識別する32ビッ
トアドレスとすることができる。
【0032】上に記したように、DMAプロセッサ22
2は所要データをDMAを使用して主記憶装置32から
読み取ることによりすべてのC/PパケットをC/Dパ
ケットに変換する。これらパケット内のグラフィック要
素はほとんど、それ以上処理を必要とせず、グラフィッ
クサブシステムに簡単に写し取ることができる簡単なも
のである。しかし、例えば、メッシュ、ストリップ、及
び長い多重線に対するC/PパケットにはDMAプロセ
ッサ222がこれらグラフィック要素を、グラフィック
サブシステムのグラフィック変形エンジンアレイが一層
容易に処理することができる更に小さなものに細分しな
ければならないものがある。これは、DMAプロセッサ
222で行うことができる。その理由は、細分割プロセ
ス中に多数の頂点を複製しなければならないが、DMA
プロセッサ222は頂点を主記憶装置32から簡単に再
読み出しすることができるからである。他方、グラフィ
ックサブシステムのグラフィックパイプラインに沿うス
テップは複製された頂点に対して格納空間を割り当てる
ことができる。C/Pパケットデータ機構は、各データ
要素に、メモリバス31を1回だけ横断させることによ
りグラフィックハードウェアの表示リスト横断性能を改
善する。というのは、各データ要素は、グラフィックハ
ードウェアにより主記憶装置32から直接読み出される
ことになるためである。その結果、所要帯域幅を実際に
下げることができる。更に、グラフィック描写プロセス
の最も遅いリンクの一つをかなり速くすることができ
る。その他、本発明のVDMAホストインタフェース2
2は更に、C/Pパケットの大きさがホストCPUから
送られる各指令で利用できるという点で有利である。そ
れ故、C/Pパケット全体を折り返しのアクセスで一度
に得ることができ、これによりデータ転送のこの部分が
はるかに一層効率が良くなる。このような利益は従来技
術のグラフィックシステムでは一般に不可能である。何
故ならバスサイクルがプロセッサからの実際のデータワ
ードの要求に応じてのみ作られ、これによりプロセッサ
のキャッシュ線によって別のワードをあらかじめ取り出
すことが制限されるからである。
【0033】しかし、本発明のC/Pパケットデータ機
構は、ここに説明したもののようなハードウェアの他に
ホストCPU20のソフトウェアを幾らか修正したもの
の利用を必要とする。例えば、同期化機能を実施して、
データが主記憶装置32の内部で変わる前に、ユーザの
アプリケーションプログラムをグラフィックハードウェ
アと同期させることができ、VDMAホストインタフェ
ース22のハードウェアがホストCPU20のキャッシ
ュがどんなDMAアクセスに対しても主記憶装置32と
矛盾していないことを保証することもできる。一例とし
て、データキャッシュは、仮想DMAがデータにアクセ
ス可能なことをDMAが保証しようとする前に、ユーザ
のアプリケーションプログラムでフラッシングされる。
従って、ユーザのアプリケーションプログラムには、D
MAがデータを読み終わるまで、データの変更が許可さ
れない。これらの問題に対するハードウェア及びソフト
ウェアの解決法を下に更に詳細に説明する。
【0034】作業バッファ35は、システムの必要条件
ではないが、データ転送をしやすくするのに使用するこ
とができる。このような作業バッファ35は好適には、
例えば、長さ512ワードとすることができる、32ビ
ットワードのアレイから構成される。作業バッファ35
は512ワードの境界に整列され、従って物理なページ
境界とは交差しない。作業バッファ35は、グラフィッ
クサブシステムがDMA読み出しのキャッシュスヌーピ
ングをすることができない、又は書き通しページを使用
しないホストCPUで実行しているとき「スワッピン
グ」される前にホストCPU20のキャッシュからフラ
ッシングされなければならないが、作業バッファ35が
書き通しページから割り当てられていればキャッシュを
交換前にフラッシングする必要はない。その上、ホスト
CPU20のソフトウェアにとって、制御ユーザが変更
されるたびに作業バッファ35の先頭に状態保存及び回
復の指令を入れることが必要になることがある。
【0035】当業者は、作業バッファ35が論理エンテ
ィティであるから、必ずしも特定のアドレス範囲に又は
物理RAMの中にさえも存在しないことを容易に認める
であろう。従って、そのように図示してはあるが、ここ
に記した作業バッファ35は主記憶装置32の中に存在
する必要はなく、別の記憶装置ユニットの一部とするこ
とができる。
【0036】作業バッファ35は本発明に従って次のよ
うに通常の仮想DMAシナリオで使用される。即ち、ユ
ーザのアプリケーションプログラムが作業バッファ35
を構築し、必要ならホストCPU20のキャッシュをフ
ラッシングする。次にユーザのアプリケーションプログ
ラムは必要ならグラフィックハードウェアのロックを獲
得する。次にユーザのアプリケーションプログラムはD
MAプロセッサ222の状態レジスタのフラグをチェッ
クして前の作業バッファの処理が完了していることを確
認する。DMAプロセッサ222の準備が完了すると、
ユーザのアプリケーションプログラムは作業バッファリ
ンク指令を書き込むが、この指令はホストCPU20に
よりDMAプロセッサ222に処理のためデータを作業
バッファ35からC/PFIFO221にC/Pフォー
マット又はC/Dフォーマットで転送するよう指示する
のに使用される。作業バッファリンク指令はDMAプロ
セッサ222の指令レジスタにより受け取られ、適切な
作業バッファ35の内容が読み込まれ、分析される。次
いで次のバッファの処理が始まる。
【0037】また本発明によれば、ユーザのグラフィッ
ク指令が特権レジスタに書き込まれるときPRIVフラ
グをグラフィックハードウェアにより設定することがで
きるので、ソフトウェアは常にこのビットを0に設定す
ることができる。このように、PRIVは、設定された
とき、DMAプロセッサ222に指令が特権レジスタに
書き込まれたことを示すフラグである。これは、特権指
令は直接特権レジスタに書き込まれなければならないが
非特権指令は作業バッファに入れることができるので、
重要である。
【0038】本発明の好適実施例では、DMAプロセッ
サ222はサイクル時間が60ナノ秒のテキサスインス
ツルメントTMS320C30マイクロプロセッサを備
えている。勿論、他のマイクロプロセッサ装置を本発明
に従って特許請求の範囲で規定した本発明の精神又は範
囲から逸脱することなく使用することができる。しか
し、実施したら、DMAプロセッサ222は好適には下
に記す機能を行うようにプログラムされる。
【0039】DMAプロセッサ222はホストCPU2
0からのホスト要求にサービスする。特に、ホストCP
U20が指令をDMAプロセッサ222のメッセージレ
ジスタに書き込むと、DMAプロセッサ222は指令を
読み、要求にサービスするのに適切な行動を起こす。
【0040】DMAプロセッサ222はまた上述のよう
にC/PFIFO221を分析しなければならない。こ
れはC/PFIFO221にある各パケットの形式を復
号し、C/Dパケットをグラフィックプロセッサに単に
伝えることにより行われる。しかし、C/Pパケットに
出会えば、適切な指令見出し語だけがC/PFIFO2
21からグラフィックプロセッサに写し取られる。C/
Pパケットには指令をグラフィックプロセッサまで伴う
べきデータ構造の開始を指定する仮想アドレス、及びデ
ータ構造内の32ビットワードの数を示すカウントが入
っている。この情報を使用して、取り出される全データ
構造をDMAプロセッサ222により一つ以上の物理ペ
ージの一つ以上のバス処理に分解することができる。最
大512ワードまでの各個別の処理をDMAプロセッサ
222により別々に開始しなければならない。
【0041】DMAプロセッサ222はまた、交換ルッ
クアサイドバッファ(TLB)を調べて指令に関連する
データの物理アドレスを見出し、これをDMA状態マシ
ン223のアドレスレジスタに書き込むことにより仮想
ポインタに対するアドレス変換を行う。TLBがエント
リを備えていなければ(すなわち、TLBミス)、DM
Aプロセッサ222は下に説明するような仕方でエント
リに対するその裏ページテーブルを探す。主記憶装置の
記憶場所にアクセスするには、DMAプロセッサ222
は所要アドレスをDMA状態マシン223のアドレスレ
ジスタに書き込み、適格なMODE値をDMA状態マシ
ン223の制御レジスタに書き込む。DMAプロセッサ
222は次にDMA状態マシン223を作動させて主記
憶装置32のメモリアクセスサイクルを開始する。DM
Aプロセッサ222はデータが戻るまで状態マシン22
3の状態ビットをチェックして待つ。DMAプロセッサ
222は次にデータをDMA状態マシン223のインタ
フェースデータレジスタから読み込む。このようにし
て、DMAプロセッサ222はカウント、源アドレス、
及び宛先アドレスを計算し、これらをDMA状態マシン
223のレジスタに書き込むことによりDMA転送を始
める。
【0042】好適実施例では、DMAプロセッサ222
は、4つの完全連想型エントリを有する小さなTLBを
備えている。しかし、その大きさ及び写像法は当業者に
より最適な費用/性能比を達成するように変えることが
できる。TLBのエントリは活性グラフィックプロセス
及びユーザに対するホストのページテーブルを探すDM
Aプロセッサ222のファームウェアにより作ることが
できる。TLBエントリの無効化はホストCPU20か
らDMAプロセッサ222に送られる指令を通して行わ
れる。その他に、ページが記憶装置に存在しないか、又
は保護障害に出会うと、DMAプロセッサ222はDM
A活動を中止し、ホストCPU20に割り込みを介して
故障を修理するよう連絡する。次に、ホストCPU20
が故障を修理してから、ホストCPU20はDMAを再
開し、DMAプロセッサ222はDMA活動を新しいT
LB調査でやめたところから再開する。手短かに言え
ば、DMAプロセッサ222はオペレーティングシステ
ム又はホストシステムのカーネルにより前に行われた機
能を行う。ただし、オペレーティングシステム又はカー
ネルの大きな処理オーバヘッドはもはや発生せず、これ
により処理速度がかなり増大する。
【0043】好適実施例では、ホストCPU20は指令
を二つのチャンネルを経由してDMAプロセッサ222
に送ることができる。すなわち、指令を特殊C/Pパケ
ットとして作業バッファ35に埋め込むことができ、又
は指令をDMAプロセッサ222のメッセージレジスタ
に書き込むことができる。ここに記す「メッセージレジ
スタ」はDMAプロセッサ222の中にある一組の内部
レジスタであって、ホストCPU20からアクセス可能
である。このレジスタは好適には、ホストCPU20が
指令ワードを書き込むDMA指令レジスタ及びホストC
PU20が、もし存在すれば、指令に関連する別のデー
タワードを書き込むDMAデータレジスタを備えてい
る。これらレジスタは好適にはI/Oアドレス空間の二
つの異なるページに複式に写像され、一方のページには
特権が与えられ、特権の与えられたプロセスのみがアク
セスすることができるが、他のページにはどんなユーザ
でもアクセスすることができる。PRIVビットは指令
が特権所持ユーザにより送られればインタフェースハー
ドウェアによりDMAプロセッサ222の状態レジスタ
内に設定される。
【0044】メッセージレジスタを介してDMAプロセ
ッサ222と通信するCPU20に対するシナリオは次
のとおりである。ホストCPU20はDMAプロセッサ
222が他の指令を受け入れる態勢が整っていることを
チェックする。ホストCPU20はDMAプロセッサ2
22が他の指令を受け入れる準備が整うまで状態ビット
のポーリングを維持する。ホストCPU20は次に指令
の他関連する付加情報をもメッセージレジスタに書き込
む。DMAプロセッサ222は次に指令レジスタ書き込
みの完了により中断される。DMAプロセッサ222は
次にDMA指令準備完了ビットをリセットし、指令の分
析を開始する。この手順を各指令について繰り返す。
DMAプロセッサ222は更にその機能を支援する幾つ
かの他のレジスタを備えている。例えば、DMAプロセ
ッサ222はDMAの失敗又は誤りに基づく中断を有効
にしたり無効にしたり、状態レジスタ内の失敗ビット及
び誤りビットをクリアしたり、DMAプロセッサ222
及びインタフェースハードウェアをリセットしたり、す
べての有効化ビットの状態を検出したりするDMA制御
レジスタを備えることができる。
【0045】DMAプロセッサ222はまた好適にはV
DMAホストインタフェース22の状態を決定する多数
のビットを備えた一つ以上の状態レジスタを備えてい
る。例えば、状態レジスタは、DMAプロセッサ222
がホストCPU20に割り込みを指示したことを示す割
込待機ビット、テーブルウォーク(table walk)時に(不
良アドレスレジスタに不良仮想アドレスが入っている)
非在住ページに出会ったことを示すページ障害ビット、
DMAの期間中に(不良アドレスレジスタに不良仮想ア
ドレスが入っている)アクセス侵犯が発生したことを示
すアクセス障害ビット、DMA不良アクセスが読み取ら
れたか又は書き込まれたかを示すアクセス形式ビット、
DMAがそのレベルでアクセスしようとした特権レベル
を示す特権ビット、テーブルウォーク時に(不良アドレ
スレジスタにテーブルウォークを発生させた不良仮想ア
ドレスが入っている)非在住テーブルに出会ったことを
示すテーブル障害ビット、DMAプロセッサ222がD
MA指令レジスタを経由してそのプロセッサに送られた
指令を処理する準備ができていることを示すDMA準備
完了ビット、DMA入力バッファ221が空であり、D
MAプロセッサ222がそこから読み取られた指令をす
べて終了したことを示すバッファ準備完了ビット、DM
A処理中に実際のエラーが生じた(予想された仮想メモ
リの不良ではなく)ことを示すDMAエラービット、D
MAプロセッサ222により記録されているDMAエラ
ー(この場合エラーにはDMA中のバスエラー、違法C
/Pパケットの識別、及び/又はバッファ内容が同期を
外れていることの指示がある)の性格を示すエラー状態
ビット、及びその他の当業者が希望するこのようなすべ
てのビット、を入れることができる。
【0046】上述の不良アドレスレジスタは典型的には
DMAプロセッサ222のTLBを不良にする最後の仮
想アドレスの値を備えている。このレジスタはまたDM
Aエラービットが設定され、それに伴うDMAエラー状
態コードが設定されてバスエラーを示すとき有効仮想ア
ドレスを備えている。
【0047】DMAプロセッサ222は更に、DMAプ
ロセッサ222により使用された現在のルーツポインタ
を戻すルーツポインタレジスタを備えている。好適実施
例では、32ビットレジスタの23個の最上位ビットを
使用すべきページテーブルの開始の物理アドレスとする
ことができ、それら23ビットをDMAプロセッサ22
2に有効ルーツポインタがないとき全部0に設定するこ
とができる。32ビットレジスタの9個の最下位ビット
に0を割り当てることができる。このレジスタは特権プ
ロセスにのみアクセス可能である。
【0048】DMA状態マシン223は、ホストCPU
20、主記憶装置32、及びDMAプロセッサ222の
間のデータ転送を統合するバスプロセッサとして働く。
特に、DMA状態マシン223はグラフィック処理回路
へのホスト起源の読み書きの他にグラフィック処理回路
のDMAプロセッサ222起源の読み書きをも支援する
ように働く。その他に、DMA状態マシン223は、主
記憶装置32からフレームバッファ28へ、フレームバ
ッファ28から主記憶装置32へ、C/PFIFO22
1から変形エンジン24へ、又は主記憶装置32からC
/PFIFO221、変形エンジン24、又はグラフィ
ックサブシステムの他の処理回路へのDMAプロセッサ
222起源のブロック移動を制御することができる。他
に、DMA状態マシン223は物理作業バッファ35の
一つから変形エンジン24の入力回路へのホスト起源ブ
ロック移動を支援することができる。
【0049】DMA状態マシン223の好適実施例で
は、複数のレジスタを利用してDMA動作を制御してい
る。下記のレジスタについて例示専用で且つ制限を目的
としない方法で説明する。当業者はここに規定する新規
の機能を行うのにどんな数のレジスタをも使用すること
ができる。
【0050】DMA状態マシン223は、DMAプロセ
ッサ222が適格な値をこのレジスタに書き込むときD
MA処理を開始するのに使用することができるDMA状
態マシン制御レジスタ(又はバス制御レジスタ)を備え
ることができる。DMA状態マシン制御レジスタは、設
定されたとき、DMA状態マシン223にどのモードフ
ィールドが書かれているかによりDMA動作を開始させ
るスタートビットを入れることができる。DMA動作が
完了すると、このビットはクリアされる。DMA状態マ
シンレジスタの他のフィールドはDMA処理の開示アド
レスを指示するのにどの作業バッファポインタを使用す
るかを指示することができる。その他に、モードフィー
ルドはDMA状態マシン223が行わなければならない
処理の種類を示すのに使用することができる。このフィ
ールドはDMAプロセッサ222だけにより使用され、
ホストCPU20が制御ワードを書き込むとき、このフ
ィールドには0と書き込まなければならない。上に記し
たように、処理の種類は必要に応じてブロック移動又は
単純な読み取り及び書き込みとすることができる。DM
A状態マシン制御レジスタは転送すべき32ビットワー
ドの数を示すカウントフィールドを備えることもでき
る。勿論、当業者は他の制御ビットを使用することがで
きる。
【0051】カーネルによりロックされる二つの作業バ
ッファ35を指す物理ポインタを備えている作業バッフ
ァポインタレジスタを使用することもできる。これら二
つのレジスタを更新するにはカーネルだけが許容され
る。本発明のこの局面の事項についてはここに参照によ
り取り入れてある前述の関連出願に一層詳細に説明され
ている。
【0052】DMA状態マシン223は、DMAプロセ
ッサ222により書き込まれて主記憶装置32の中の開
始データバッファアドレスを示すS/Dレジスタをも備
えることができる。このアドレスは指定されるモードに
より発信アドレス又は宛先アドレスのいずれかとするこ
とができる。DMA状態マシン223はDMAバスサイ
クル中このアドレスをアドレスバスに出すことができ
る。
【0053】DMA状態マシン223は更に、DMAプ
ロセッサ222が主記憶装置32にアクセスしようとす
るときバッファレジスタとして働くインタフェースレジ
スタを備えることができる。このレジスタはホストCP
U20がDMAプロセッサ222の内部レジスタにアク
セスしようとするときトランシーバとしても働く。DM
A状態マシン223が主記憶装置32から単一読み取り
を行うよう指導されると、戻されたデータをインタフェ
ースデータレジスタにラッチしてからDMAプロセッサ
222により読み取ることができる。その他に、単一書
き込みでは、DMAプロセッサ222はDMA状態マシ
ン223の作動前にデータをこのレジスタに設置するこ
とができる。
【0054】VDMAホストインタフェース222は仮
想メモリページ又はアクセス障害を処理するのに必要な
機能を行うことができるので、不良アドレスレジスタを
DMAプロセッサ222の内部RAMに好適に設けてホ
ストCPU20に利用可能にするようにすることができ
る。特に、ページ障害又はアクセス障害が生ずると、不
良仮想アドレスがDMAプロセッサ222がホストCP
U20を中断させる前にこの記憶場所に書き込まれる。
他方、バス処理中にバスエラーが発生すると、このレジ
スタに有効仮想アドレスが入ることになる。それ故、こ
のレジスタはDMAページ障害、DMAアクセス障害、
又はDMAエラー、及びバスエラー状態ビットが設定さ
れる場合に限りホストCPU20よりアクセスされる。
【0055】DMA状態マシン223は、物理的記憶装
置32の中のページテーブル33の物理開始アドレスを
識別するのにDMAプロセッサ222により使用される
現在のルーツポインタを備えているルーツポインタレジ
スタをも備えることができる。このレジスタは特権プロ
セスにのみアクセス可能である。
【0056】最後に、DMA状態マシン223はホスト
CPU20及びDMAプロセッサ222に利用可能にさ
れるI/O状態レジスタを備えていることができる。こ
のレジスタは中断がホストCPU20に送られてしまっ
たか否か、指令が特権プロセスにより送られているか否
か、DMAプロセッサ222が他の指令に対して準備が
整っているか使用中か、DMA動作が順調に終了したか
否か、DMA不良アクセスが読み出しであったか書き込
みであったか、テーブルを探索している間に非在住ペー
ジに出会ったか又はアクセス侵犯が生じたか、などを示
す。
【0057】次に、本発明に関するカーネル及びI/O
ドライバ支援について説明する。一般に、説明はアドレ
ス変換用ページテーブルの更新の他にデータの一貫性を
与えるソフトウェア解法にも関連する。しかし、当業者
には理解されるように、本発明の特定の実施例では他の
ソフトウェア解法が望ましい場合もある。従って、ここ
での説明は例示目的のみのためであり、本発明の好適実
施例を限定する目的ではないことを理解すべきである。
【0058】本発明によれば、ユーザは主記憶装置32
に格納されているデータを指す仮想ポインタを使用して
所要のグラフィック操作を指定することができるので、
グラフィックプロセスはホストCPU20の仮想メモリ
システムの仮想対物理変換にアクセスしなければならな
い。ホストCPU20は一般にこれら変換を主記憶装置
32の各種のテーブルに保持しているが、グラフィック
プロセスは一般にこれらシステムページテーブルに、こ
れらが特権を持っているため、直接アクセスしない。従
って、本発明のDMAプロセッサ222はここで「裏ペ
ージテーブル」というものを使用することができる。こ
れら裏ページテーブルはグラフィック処理サブシステム
のためにカーネルI/Oドライバにより維持されてお
り、ホストシステムの各ユーザはそれ自身のテーブルを
備え、一度に一人のユーザしかグラフィックプロセスで
活性になることができない。グラフィックサブシステム
はこれら変換テーブルを読み取って変換を得、必要に応
じてこれらのテーブルに修正及び参考の情報を書き込む
ことができる。カーネル仮想メモリシステムはカーネル
I/Oドライバの要求で変換情報を供給することがで
き、ドライバは修正及び参考の情報を要求されたときカ
ーネルに戻すことができる。
【0059】先に記したとおり、DMAプロセッサ22
2はそれ自身のTLBを設けて各ユーザに対する仮想対
物理変換を格納することができる。既知のように、連想
型TLBは変換テーブルを探すのに必要な時間を大幅に
低減する。好適には、90%より大きい高いヒット率を
与える小さいTLBを使用してシステムのコールドスタ
ート問題を排除する。しかし、TLBは一度に一人のユ
ーザの仮想メモリ空間しか写像しないので、ユーザスワ
ッピングはTLB全体をパージする場合があることに注
目すべきである。
【0060】本発明によれば、TLBの各エントリは好
適には、TLBエントリが有効であること、エントリに
関連するページが書き込むことができないこと、ページ
が誰かによって修正されて(書き込まれて)しまってい
ること、仮想アドレスの部分が(ビットがアクセスされ
ている仮想アドレスの適切なビットに合致しなければな
らない)ページフレームにより割り当てられてしまって
いること、ページフレームが関連ページが見つかる物理
アドレスを備えていること、及びページが逆複写として
又は書き通し(write-throug)としてキャッシュされて
いるか又はキャッシュされていないか、又は全くキャッ
シュされていないこと、を示すビットを備えている。こ
のようなTLBエントリの作製はグラフィックハードウ
ェア又はファームウェアにより行うことができる。換言
すれば、DMAプロセッサ222はグラフィックシステ
ムの各ユーザに対して裏ページテーブルを単に「歩く」
ことができ、又は代わりに、カーネルドライバがDMA
プロセッサの指令又はメモリ写像のレジスタを経由して
直接エントリを作製することができる。
【0061】カーネルがページを動かしたり、ページを
写像し直したり、又は保護又は他の属性を変えたりしな
ければならないときにはすべて、TLB及び裏ページテ
ーブルに入っているシステムページテーブルデータのす
べてのコピーを無効にしなければならない。従って、仮
想メモリがグラフィックサブシステムにより写像されて
いるページに修正することを必要とするときには、仮想
メモリはI/Oドライバを呼び、これにTLBをパージ
し、それに従って裏ページテーブル内の写像を変えさせ
なければならない。しかし、当業者に明らかであるよう
に、活性グラフィックプロセスのページテーブルに対す
る修正だけがグラフィックハードウェアに関係するもの
であるから、TLBの清浄化をそのように限定するのが
よい。ソフトウェアの清浄化は特権ページにあるDMA
プロセッサ222のDMA指令レジスタを経由してのみ
グラフィックサブシステムに伝えることができる。
【0062】DMAプロセッサ222が本発明の好適実
施例に従って仮想対物理変換を得る裏ページテーブルは
2レベルのページテーブル構造とすることができる。裏
ページテーブルの第1のレベル(セグメントテーブル)
は1024個のエントリを含み、その各々が1024個
のページフレーム記述子から成る第2レベルのテーブル
を指すことができるように構成することができる。特
に、各セグメントテーブルのエントリは関連ページテー
ブルの始まりを示すページテーブルポインタの他に、ペ
ージテーブルポインタが有効ページテーブルを指してい
るか否かを示す有効フラグをも備えることができる。裏
ページテーブルの第2のレベル(記述子テーブル)も各
テーブルについて1024個のエントリを備えることが
できる。各エントリはページフレーム記述子に対するR
AM内の真のアドレスを示し、これは4Kバイトのペー
ジとすることができる。従って、各第2レベルのテーブ
ルは4Mバイトの仮想アドレス空間を物理アドレスに又
は空アドレスに写像する。
【0063】各ページ記述子テーブルのエントリは、所
定のエントリに対する実際のページフレーム(真のRA
Mページアドレス)を指す真実ポインタであるページフ
レームポインタ、逆複写、書き通し、又はキャッシュ不
能のような所定のエントリに関連するページの形式を示
すキャッシュモードフィールド、グラフィックサブシス
テムがビットがクリアされた最後の時刻以来所定のペー
ジを参照していることを示すフラグ、グラフィックサブ
システムが所定のページの記憶場所に常に書き込んでい
る場合に設定される「汚れビット」フラグ、及び、設定
されたとき、ページフレームポインタが実際に真のペー
ジを指していることを示す有効フラグ、を含むことがで
きる。勿論、当業者の必要に応じて他の構成も可能であ
る。
【0064】ここに規定した裏ページテーブルの作製及
び更新はホストCPU20のカーネルI/Oドライバの
責務である。DMAプロセッサ222がテーブルを歩こ
うとして欠如変換に遭遇すると、ホストCPU20を中
断させてページ障害を指示する。ホストCPU20のI
/Oドライバは不良ページをチェックしてそれが真に存
在していないか否か、又は裏ページテーブルがまさしく
このエントリを欠いているか、を判定しなければならな
い。この目的で、I/Oドライバはシステムテーブルに
真の写像をつきとめようとする。写像が存在すれば、I
/Oドライバはその変換を裏ページテーブルに追加す
る。ある発見法を使用して、I/Oドライバは次に幾つ
かの別のページを裏ページテーブルの同じリーフに写像
しようとすることができる。一旦このテーブルのプリロ
ードが行われると、I/Oドライバはグラフィックサブ
システムのDMAを再開することができる。その結果、
ユーザのグラフィックアプリケーションプログラムは
「裏ミス」を常に知らないはずである。
【0065】しかし、写像が存在しなければ、I/Oド
ライバは単にユーザのグラフィックアプリケーションプ
ログラムにページ障害を指示するだけである。グラフィ
ックアプリケーションプログラムは次にページに接触し
てこれのあら探しをし、ドライバを呼び出してページを
裏ページテーブルに写像し、DMAを再開する。また、
当業者には明らかであるように、カーネルI/Oドライ
バが代わりにこのステップを行うことができればグラフ
ィックアプリケーションプログラムをページに接触させ
ないようにすることが可能である。一旦裏ページテーブ
ルがグラフィックデータベースの前の横断により「完全
に完成(fleshed out)」してしまっていると、書かれ
ていないページをカーネルI/O ドライバにより「一
束にする(clustered)」ことができる。例えば、ペー
ジ障 害が発生すると、I/Oドライバはユーザのグラ
フィックアプリケーションプログラムに、そのデータが
前の写像を持っているので、グラフィックデータベース
の一部であることがわかっている連続する「N」ページ
に接触するよう指示する(又はこれをそれ自身で行
う)。しかし、グラフィックプロセスはこれをセグメン
ト侵犯の危険なく任意に行うことはできない。
【0066】カーネル仮想メモリシステムが物理的記憶
装置32にあるシステムページテーブル33を修正する
必要があるときは、I/Oドライバを呼び出してグラフ
ィックサブシステムにVDMAを停止し、次いでDMA
プロセッサ222のTLBにある裏ページテーブルをパ
ージする指示を出すよう要請しなければならない。I/
Oドライバは次にDMAプロセッサ222の裏ページテ
ーブルの該当するエントリに無効の印を付け、エントリ
についての修正及び参考情報をホストCPU20の仮想
メモリシステムに戻す。I/Oドライバは最後にグラフ
ィックサブシステムに処理を継続するよう指示する。し
かし、プロセスを効果的に動作させるには、現在のグラ
フィックプロセスを制御しているユーザに対する完全な
裏ページテーブルが主記憶装置32に入っているべきで
あるが、当業者には気が付かれるであろうが、裏ページ
テーブルを修正して、完全な裏ページテーブルがアドレ
ス変換については主記憶装置32に残っている必要がな
いようにすることが可能である。
【0067】当業者にはやはり明らかであるように、キ
ャッシュされたページテーブルのデータは、ハードウェ
アの一貫性を利用できなければ、裏ページテーブルを修
正する前及び後で共に、ドライバにデータキャッシュを
フラッシングさせることにより主記憶装置32と矛盾し
ないようにしておかなければならない。その上、一度に
一人のユーザしか受け入れられないから、グラフィック
サブシステムはハードウェアによる一つのルーツポイン
タしか支援しないことになる。カーネルドライバはこの
情報を、ロックが新しいグラフィックユーザに与えられ
るとき、グラフィックサブシステムに提供する責任があ
る。ルーツポインタはこうしてDMAプロセッサ222
のDMAメッセージレジスタに書き込むことにより更新
することができる。このような更新指令は特権DMA指
令レジスタからのみ受け入れることができる。
【0068】DMAプロセッサ222はまた保護障害を
サポートしており、これによりホストCPU20のカー
ネルに保護/ページ/TLBの障害をグラフィック信号
処理器に伝えさせる一つ以上の信号を使用することがで
きる。グラフィックアプリケーションプログラム又はカ
ーネルI/Oドライバは次にレジスタを読み取って障害
の形式を決定することができる。グラフィックアプリケ
ーションプログラムはホストCPU20におけるユーザ
プロセスとして実行されるので、保護障害はグラフィッ
ク信号処理器に当面の該当する形式の処理においてペー
ジに接触させることにより正しいユーザプロセスに基づ
いて発生する可能性がある。後続の保護障害があると、
ページが再写像されてアクセスが可能となり、プロセス
が、場合に応じて、指示されるか消滅する。他方、カー
ネルドライバ自身が正しいユーザプロセスとして実行さ
れることも可能である。これが行われれば、ドライバは
必要なページ(単数又は複数)に接触し、グラフィック
プログラムを実際に呼び出さないで正しい結果を生ず
る。
【0069】ページ障害のサポートは、信号をグラフィ
ックプログラムのドライバに伝え、ドライバが問題のあ
るページに接触しようとすることにより保護障害と同様
の仕方で処理することができる。結果が良ければ、グラ
フィックプログラムはカーネルI/Oドライバに戻り、
ドライバは中止したVDMAプロセスを再開する。ま
た、前のように、このすべてをカーネルI/Oドライバ
の内部で処理することも可能である。
【0070】要するに、ページ障害を処理する一般的プ
ロセスは次のとおりである。最初に、グラフィックサブ
システムからの割り込みの結果であるカーネルからの信
号を捕らえる。次いでDMA状態レジスタを読み取って
割り込み(即ち、ページ障害)の原因を突き止める。カ
ーネルドライバはこれを読んでこの情報を直接供給する
こともできる。次に、不良になった仮想アドレスを示す
DMA不良アドレスレジスタを読み取り、違反ページに
接触してカーネルにページをロードさせ、写像させる。
最後に、I/Oドライバを呼んで新しいページを裏ペー
ジテーブルに写像し、VDMAを不良アドレスから再開
する。
【0071】アクセス侵犯障害を受け取ると同様のプロ
セスを使用することができる。ただし障害を起こした仮
想アドレスを確認して後、障害を起こしたものと同様の
アクセスを有するページを接触する。障害がページ許可
などを変えて信号処理器によるページの接触が好結果で
あり得るように修復されれば、I/Oドライバを次に呼
び出して新しいページを裏ページに写像し、VDMAを
障害を起こしたアドレスから再開することができる。し
かし、障害が修復されていなければ、接触は不成功で、
カーネルはプロセスを消滅させるか又はプロセスに異な
る信号を送る。他の修復措置も本発明の範囲内で可能で
あるが、特定の障害が修復不能であれば、グラフィック
信号処理器は接触を試みる必要はない。適切な修復処理
を代わりに規定することができる。
【0072】このようにして、グラフィックハードウェ
アのアクセス権を、ハードウェアを通して変換を得るこ
とにより、テーブルを探索することにより、又はカーネ
ルを呼び出して適切な補正を行うことにより、修復する
ことができる。本発明は従ってDMAを使用して主記憶
装置32にアクセスするグラフィック処理ユニット用遠
隔記憶装置管理ユニットを処理するようにハードウェア
を拡張することも可能である。開示した構成にはDMA
プロセッサ222にTLBミスが生じたとき、ホストC
PU20のカーネルが呼び出されないという利益があ
る。代わり、裏アドレステーブルだけがアクセスされ
る。また、本発明によれば、ページ障害は完全に修復さ
れ、VDMAはカーネルにより再開される。
【0073】以前には、DMAがカーネルによってのみ
開始されたとき、カーネルはデータ一貫性の問題に注意
した。一方、本発明のVDMA技法によれば、ユーザが
DMAを開始する。従って、今度は新しい一貫性の問題
が生ずる。即ち、考慮しなければならない二つの形式の
一貫性が存在する。一つはDMAプロセスがそれを用い
て終了するまでデータを変えないようCPUが約束しな
ければならないDMA/CPU一貫性である。他の問題
はキャッシュと主記憶装置32との間のデータの一貫性
である。本発明はまたこれら一貫性の問題を解決する手
段を備えることができる。
【0074】例えば、アプリケーションプログラムにア
クセスできるようにしたままデータ構造に基づいてDM
A動作を行うことは、アプリケーションプログラムがD
MAプロセスを理解し、DMAが完了するまでこのよう
な構造を編集しない責任を受け入れない限り、CPU/
DMAデータ一貫性の問題を解決するためには許容され
ない。従って、ホストCPU20は編集とDMA活動と
の間の同期に責任を持つようにDMAを理解すべきであ
る。多数のアプリケーションプログラムは、直接呼び出
しを行って表示リストを実現するので、この責任を取る
ことができる。従って、仮想DMAをアプリケーション
プログラムからの明白な要求により有効にすることがで
きる。その上、DMAを有効にすることにより、応用コ
ードはDMAを経由してグラフィックプロセスに送られ
るデータを編集する前にDMAと同期しなければならな
い。当業者は従ってアプリケーションプログラムを修正
する方法を知るであろう。
【0075】他方、キャッシュ/主記憶装置の一貫性が
とれておらず、その一方で、DMAの読み取りプロセス
が正しく働くため、キャッシュ内の関連する不正回線
を、上述のようにDMAが許容される前に主記憶装置3
2にフラッシングして戻す必要があり、又はDMAにキ
ャッシュ内の不正データへのアクセスが与えられなけれ
ばならない。また、本発明に従った主記憶装置へのDM
A書き込みに基づき、DMA実行の前後共に、キャッシ
ュがフラッシングされるか、又はDMAが許可されて、
DMA期間中キャッシュ内のすべてのコピーが更新又は
無効にされる。
【0076】例えば、キャッシュ/主記憶装置間データ
一貫性は、本発明に従って、ページを逆複写するすべて
のアクセスをスヌープ(詮索)することによって達成す
ることができる。主記憶装置へのDMA書き込みに基づ
き、キャッシュヒットによりキャッシュ回線が無効にな
る。他方、主記憶装置32からのDMA読み出しに基づ
き、不正キャッシュヒットによりキャッシュが主記憶装
置32の代わりにデータを供給する。しかし、スヌーピ
ング(詮索)は一般にCPUアクセスとVDMAアクセ
スとの双方の速さを減ずるので、書き通しページ及び明
白なフラッシングの使用により可能な場合にはスヌーピ
ングを回避すべきである。スヌーピングは、DMAの開
始が書き込みバッファがフラッシングされてから発生す
ることが保証されている限り既に主記憶装置32の中に
ある書き通しページ内の不正データを使用して回避する
ことができる。というのは書き通しページからのVDM
A読み出しはスヌープされる必要はないからである。対
称的に、書き通しページへのVDMA書き込みはすべて
のキャッシュ複写が更新されるか無効にされるかするよ
うにスヌープされなければならない。キャッシュの一貫
性はこのようにユーザレベルのコードには見えないよう
にすることができる。スヌーピング又はユーザ制御のフ
ラッシングを使用するかしないかは当業者の自由裁量に
まかすことができる。
【0077】本発明の好適実施例によれば、DMAを介
して読み取られるデータはすべて書き通しページから読
み取ることができるので、キャッシュをスヌープさせる
必要はない。ユーザはアプリケーションプログラムはそ
れ故すべての表示リストデータを書き通しページに配分
する。一方、カーネルドライバは、直接呼出しモードの
期間中VDMAが有効であるときユーザのページを書き
通しにするようプログラムすることができる。例えば、
DMAを使用可能にするユーザ指令はカーネルにアプリ
ケーションプログラムのページの全部又は一部を書き通
しに変換させることができる。加えて、裏ページテーブ
ルはどのページにグラフィックプロセスがアクセスしよ
うとしているかの記録であるから、使用中のこれらペー
ジだけをグラフィックプロセスにより変換することが可
能であり、これにより処理時間が更に減少する。
【0078】本発明の他の好適実施例によれば、VDM
Aホストインタフェース22は逆複写ページへのすべて
のバーストアクセスに関してスヌーピングを支援するこ
とができるので、ユーザがDMAを有効にすることしか
行わない場合にも、インタフェース22はキャッシュを
フラッシングすることなく動作する。また裏ページテー
ブルは、アクセス前にカーネルによりパージされている
書き通しページに好適に保持されているので、グラフィ
ックプログラムの参照ビット及び修正ビットの更新をス
ヌープさせる必要はない。その他、主記憶装置32への
DMA書き込みは、DMAの終了後常にパージされてい
る書き通しページで可能である。これには、ユーザレベ
ルコードに新しいカーネル捕捉を与えてデータキャッシ
ュをパージ可能にする必要がある。
【0079】このように、ユーザ制御DMAについて生
ずる可能性のあるデータ一貫性の問題を克服するには、
ホストCPU20が以下のステップを実施するのが好適
である。先ず、完了後であるがスワッピングされる前
に、すべての作業バッファ35が、アプリケーションプ
ログラムにより主記憶装置32に明白にフラッシングさ
れることになる。次に、すべての表示リスト要素も、編
集後であるがVDMAが許可される前に、アプリケーシ
ョンプログラムにより主記憶装置32に明白にフラッシ
ングされるべきである。その他に、アクセスされる前及
び後に、裏ページテーブルのエントリが、カーネルI/
Oドライバにより主記憶装置32に明白にフラッシング
されるべきである。また、フレームバッファのブロック
読み出しを実行する前及び後に、受信バッファが、アプ
リケーションプログラムにより主記憶装置32にフラッ
シングされなければならない。その上、フレームバッフ
ァのブロック書き込みを実行する前に、ソースバッファ
が、アプリケーションプログラムにより主記憶装置32
にフラッシングされ、VDMAが直接呼び出しに対して
有効になった後、ユーザのデータキャッシュも、アプリ
ケーションプログラムにより主記憶装置32にフラッシ
ングされるべきである。
【0080】
【発明の効果】上に記したVDMAホストインタフェー
ス22はグラフィックサブシステムのような外部プロセ
スに記憶装置から直接データにアクセスさせる。これに
より、データが主記憶装置32からホストCPU20
に、次いでグラフィックサブシステムに移動する代わり
にグラフィックサブシステムに真っ直ぐに進行するので
バスの所要帯域幅が減少する。その結果、ホストCPU
20はルーチンデータ複写を行うその貴重な計算時間を
もはや消費する必要がないので、一層実作業が行われ、
メモリバスの利用が向上する。本発明にはまたホストユ
ーザのレベルのソフトウェアがカーネルサービスを呼び
出すサブルーチンを行わずに仮想アドレスを使用して記
憶装置に直接アクセスを開始することができるという利
益がある。このようなカーネル呼び出しは極めて時間の
かかるものであり、本発明に従ってこのようなカーネル
呼び出しの必要性を排除することによって、正常のDM
A手法を今や本発明に従ってグラフィック要素のアクセ
スに適用することができる。DMAプロセッサ22も完
全な表示リスト横断機能を実行する必要がなく、それ
故、本発明のハードウェアをはるかに廉価にすることが
でき、支援ソフトウェアを表示リスト横断プロセッサを
使用する構成よりはるかに簡単にすることができる。そ
の上、本発明によれば通常のページスワッピング及び他
の仮想メモリ機能及び保護を保持することができる。
【0081】本発明の多数の模範的実施例について上に
詳細に説明してきたが、当業者は、本発明の新規な教示
及び長所から著しく逸脱することなく多数の他の修正案
が模範的実施例に可能であることを容易に認めるであろ
う。例えば、本発明に従って使用した同じ仮想メモリ技
法を記述のようにグラフィックサブシステムではなく外
部網接続サブシステムに使用することができる。ユーザ
が主記憶装置内のデータにメモリアクセスごとにオペレ
ーティングシステムを中断することなく直接アクセスで
きることが望ましい他のどんなサブシステムをも使用す
ることができる。従って、このような修正案はすべて付
記する特許請求の範囲に規定する本発明の範囲内に含め
るつもりである。
【図面の簡単な説明】
【図1】従来の直接メモリアクセス(DMA)プロセッ
サの概略図である。
【図2】本発明に基づいて構成されたホストインタフェ
ースにより接続された、ホストシステム及びグラフィッ
ク処理システムの概念的ブロック図である。
【図3】本発明に基づくグラフィックサブシステムにホ
ストシステムをインタフェースするためのユーザ計画直
接メモリアクセスシステムの概略図である。
【符号の説明】
20…ホストプロセッサ 22…ホストインタフェース 24…変形エンジン 26…描写回路 28…フレームバッファ 30…ラスタディスプレイ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トマス・パトリック・モリシー アメリカ合衆国コロラド州80524フォー ト・コリンズ,セラモンテ・ドライヴ・ 1601 (56)参考文献 特開 平1−161394(JP,A) 特開 平2−12523(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 13/28 310 EUROPAT(QUESTEL) WPI(DIALOG)

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】個々のメモリ転送処理の間、直接的なホス
    トオペレーティングシステムの制御を必要とせずに、ユ
    ーザ指令に応答して、主記憶装置を有するユーザのホス
    トシステムと外部データ処理システムとの間において、
    データ処理指令に関連するデータを直接転送するための
    インタフェース装置であって、 前記データ処理指令及びこれに関連するデータを、前記
    データ処理指令及び前記ユーザのホストシステムの仮想
    メモリ空間における前記データ処理指令に関連するデー
    タへの仮想ポインタを含む指令/ポインタパケットとし
    て表現する表現手段と、 前記指令/ポインタパケットの前記仮想ポインタを、前
    記データ処理指令に関連するデータが位置する前記主記
    憶装置内の物理的アドレスを識別する物理ポインタへ直
    接変換するための、前記仮想メモリ空間に接続された前
    記インタフェース装置上の変換手段と、 前記主記憶装置の前記物理アドレスから、及び、前記主
    記憶装置の前記物理アドレスへ前記データ処理指令に関
    連するデータを転送するための、前記インタフェース装
    置上の転送手段と、 からなるインタフェース装置。
  2. 【請求項2】個々のメモリ転送処理の間、直接的なホス
    トオペレーティングシステムの制御を必要とせずに、ユ
    ーザ指令に応答して、主記憶装置を有するユーザのホス
    トシステムとグラフィックサブシステムとの間におい
    て、グラフィック指令に関連するグラフィック要素を
    転送するためのインタフェース装置であって、 前記グラフィック指令及び前記グラフィック要素を、前
    記グラフィック指令及び、前記ユーザのホストシステム
    の仮想メモリ空間における前記グラフィック要素への仮
    想ポインタを含む指令/ポインタパケットとして表現す
    る表現手段と、 前記仮想ポインタを、前記グラフィック要素が位置する
    前記主記憶装置内の物理的アドレスを識別する物理ポイ
    ンタへ直接変換するための、前記仮想メモリ空間に接続
    された前記インタフェース装置上の変換手段と、 前記主記憶装置の前記物理アドレスから、及び前記主記
    憶装置の前記物理アドレスへ前記グラフィック要素を転
    送するための、前記インタフェース上の転送手段と、 からなるインタフェース装置。
  3. 【請求項3】前記表現手段は、前記ユーザのホストシス
    テム上で動作するユーザアプリケーションプログラムか
    らなり、前記変換手段は、前記ユーザのホストシステム
    のプロセッサ主導型オペレーティングシステムにより更
    新される少なくとも1つの裏ページテーブルへのアクセ
    ス権を有するDMAプロセッサからなり、前記少なくと
    も1つの裏ページテーブルは、前記仮想ポインタに対応
    する物理ポインタを保持する、請求項2のインタフェー
    ス装置。
  4. 【請求項4】前記DMAプロセッサは、前記ホストシス
    テムのユーザ制御プロセスのそれぞれに対して、ユーザ
    特権の裏ページテーブルを有する、請求項3のインタフ
    ェース装置。
  5. 【請求項5】前記DMAプロセッサは、前記DMAプロ
    セッサによる前記裏ページテーブルへのアクセスの間に
    見つかった変換を記憶するための変換ルックアサイド・
    バッファを有する、請求項4のインタフェース装置。
  6. 【請求項6】前記インタフェース装置は、データを記憶
    するための追加的なデータ記憶手段をさらに含み、要求
    された変換が前記裏ページテーブルに存在しないことを
    示す指示を前記変換手段が受信した場合、前記DMAプ
    ロセッサは、前記プロセッサ主導型オペレーティングシ
    ステムに割り込みをかけ、前記プロセッサ主導型オペレ
    ーティングシステムが、前記追加的なデータ記憶手段と
    前記メモリとの間において前記グラフィック要素を配置
    及びスワッピングする障害アルゴリズムを実行し、前記
    要求された変換を生成し、前記要求された変換を前記裏
    ページテーブル内へ配置できるようにする、請求項5の
    インタフェース装置。
  7. 【請求項7】前記裏ページテーブルにおける仮想ポイン
    タから物理ポインタへの前記グラフィック指令に関連す
    るグラフィック要素の変換は、前記主記憶装置において
    前記グラフィック指令に関連するグラフィック要素へア
    クセスするのに必要な変換が前記裏ページテーブルに存
    在しないことを示す前記DMAプロセッサからの指示に
    応答して作成及び更新される、請求項4のインタフェー
    ス装置
  8. 【請求項8】前記主記憶装置におけるデータの一貫性を
    保つように、前記ユーザのホストシステムによる前記主
    記憶装置内の前記裏ページテーブル及びユーザの仮想メ
    モリ空間への読み出し及び書き込みを、前記転送手段に
    よる前記主記憶装置内の前記裏ページテーブル及びユー
    ザの仮想メモリ空間への読み出し及び書き込みに同期さ
    せるための同期化手段をさらに有する、請求項7のイン
    タフェース装置。
  9. 【請求項9】個々のメモリ転送処理の間、直接的なホス
    トオペレーティングシステムの制御を必要とせずに、ユ
    ーザの複数のデータ処理指令に応答して、外部データ処
    理システムからユーザのホストシステムの主記憶装置に
    記憶されたデータへの直接メモリアクセスを行うための
    方法であって、 前記ユーザのデータ処理指令及びこれに関連するデータ
    のそれぞれを、前記ユーザのホストシステムの前記ユー
    ザの仮想メモリ空間における前記データ処理指令に関連
    するデータへの仮想ポインタを含む指令/ポインタパケ
    ットとして表現するステップと、インタフェース装置により 、前記仮想ポインタを前記デ
    ータ処理指令に関連するデータが位置する前記主記憶装
    置内の物理的なアドレスを識別する物理ポインタへ直接
    変換するステップと、前記主記憶装置へのデータの転送及び前記主記憶装置か
    らのデータの転送のため前記インタフェース装置によ
    、前記主記憶装置の前記物理ポインタによって識別さ
    れる前記物理アドレスをアクセスするステップと、 からなる方法。
JP04480891A 1990-03-12 1991-03-11 直接メモリアクセスを行うためのインターフェース装置及び方法 Expired - Lifetime JP3369580B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US49251890A 1990-03-12 1990-03-12
US492518 1990-03-12

Publications (2)

Publication Number Publication Date
JPH04219852A JPH04219852A (ja) 1992-08-10
JP3369580B2 true JP3369580B2 (ja) 2003-01-20

Family

ID=23956582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04480891A Expired - Lifetime JP3369580B2 (ja) 1990-03-12 1991-03-11 直接メモリアクセスを行うためのインターフェース装置及び方法

Country Status (4)

Country Link
US (1) US5301287A (ja)
EP (1) EP0447145B1 (ja)
JP (1) JP3369580B2 (ja)
DE (1) DE69132300T2 (ja)

Families Citing this family (173)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0417293B1 (en) * 1988-12-14 1998-08-12 Sony Corporation Data management system
JP2774862B2 (ja) * 1990-07-16 1998-07-09 株式会社日立製作所 Dma制御装置および情報処理装置
US5649142A (en) * 1991-10-24 1997-07-15 Intel Corporation Method and apparatus for translating addresses using mask and replacement value registers and for accessing a service routine in response to a page fault
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
EP0549924A1 (en) * 1992-01-03 1993-07-07 International Business Machines Corporation Asynchronous co-processor data mover method and means
JPH0619785A (ja) * 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
GB2270780A (en) * 1992-09-21 1994-03-23 Ibm Scatter-gather in data processing systems.
US5664104A (en) * 1992-12-18 1997-09-02 Fujitsu Limited Transfer processor including a plurality of failure display units wherein a transfer process is prohibited if failure is indicated in a failure display unit
JP2931490B2 (ja) * 1992-12-18 1999-08-09 富士通株式会社 並列処理方式
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
WO1994016391A1 (en) * 1992-12-31 1994-07-21 Intel Corporation Bus to bus interface with address translation
US5749092A (en) * 1993-03-18 1998-05-05 Intel Corporation Method and apparatus for using a direct memory access unit and a data cache unit in a microprocessor
US5666509A (en) * 1994-03-24 1997-09-09 Motorola, Inc. Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
DE69429503T2 (de) * 1994-03-24 2002-05-16 Hewlett Packard Co Übersetzungsmechanismus für Ein-/Ausgabeadressen
US5535352A (en) * 1994-03-24 1996-07-09 Hewlett-Packard Company Access hints for input/output address translation mechanisms
US5768558A (en) * 1994-08-29 1998-06-16 Intel Corporation Identification of the distinction between the beginning of a new write back cycle and an ongoing write cycle
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
SE515718C2 (sv) * 1994-10-17 2001-10-01 Ericsson Telefon Ab L M System och förfarande för behandling av minnesdata samt kommunikationssystem
US5680566A (en) * 1995-03-03 1997-10-21 Hal Computer Systems, Inc. Lookaside buffer for inputting multiple address translations in a computer system
US5649173A (en) * 1995-03-06 1997-07-15 Seiko Epson Corporation Hardware architecture for image generation and manipulation
US5758182A (en) * 1995-05-15 1998-05-26 Nvidia Corporation DMA controller translates virtual I/O device address received directly from application program command to physical i/o device address of I/O device on device bus
US5924126A (en) * 1995-05-15 1999-07-13 Nvidia Method and apparatus for providing address translations for input/output operations in a computer system
US5887190A (en) * 1995-05-15 1999-03-23 Nvidia Corporation System for determining from a command storing in a storage circuit an application program which has initiated the command to determine an input/output device address
US5832492A (en) * 1995-09-05 1998-11-03 Compaq Computer Corporation Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus
US5764944A (en) * 1995-09-08 1998-06-09 United Microelectronics Corp. Method and apparatus for TLB invalidation mechanism for protective page fault
US5765022A (en) * 1995-09-29 1998-06-09 International Business Machines Corporation System for transferring data from a source device to a target device in which the address of data movement engine is determined
US5848293A (en) * 1995-11-03 1998-12-08 Sun Microsystems, Inc. Method and apparatus for transmission and processing of virtual commands
US7577782B2 (en) 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US6631435B1 (en) * 1996-02-02 2003-10-07 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US5659798A (en) * 1996-02-02 1997-08-19 Blumrich; Matthias Augustin Method and system for initiating and loading DMA controller registers by using user-level programs
US5991520A (en) * 1996-02-02 1999-11-23 Sony Corporation Application programming interface for managing and automating data transfer operations between applications over a bus structure
US6519268B1 (en) * 1996-03-07 2003-02-11 Sony Corporation Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US6233637B1 (en) * 1996-03-07 2001-05-15 Sony Corporation Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
US6055577A (en) * 1996-05-06 2000-04-25 Oracle Corporation System for granting bandwidth for real time processes and assigning bandwidth for non-real time processes while being forced to periodically re-arbitrate for new assigned bandwidth
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US5960464A (en) * 1996-08-23 1999-09-28 Stmicroelectronics, Inc. Memory sharing architecture for a decoding in a computer system
US6108637A (en) * 1996-09-03 2000-08-22 Nielsen Media Research, Inc. Content display monitor
US5809334A (en) * 1996-09-24 1998-09-15 Allen-Bradley Company, Llc Receive packet pre-parsing by a DMA controller
US6029226A (en) * 1996-09-30 2000-02-22 Lsi Logic Corporation Method and apparatus having automated write data transfer with optional skip by processing two write commands as a single write command
US5987582A (en) * 1996-09-30 1999-11-16 Cirrus Logic, Inc. Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device
US5930480A (en) * 1996-10-10 1999-07-27 Apple Computer, Inc. Software architecture for controlling data streams based on linked command blocks
US6122711A (en) * 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
EP0853283A1 (en) * 1997-01-09 1998-07-15 Hewlett-Packard Company Computer system with memory controller for burst transfer
EP0862118B1 (en) * 1997-01-09 2004-02-04 Hewlett-Packard Company, A Delaware Corporation Computer system comprising a memory controller for burst transfer
DE69727465T2 (de) 1997-01-09 2004-12-23 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Rechnersystem mit Speichersteuerung für Stossbetrieb-Übertragung
KR100231707B1 (ko) * 1997-08-04 2000-01-15 정선종 통신 장비의 디엠에이 처리 방법 및 그 장치
US6205500B1 (en) * 1997-09-24 2001-03-20 Compaq Computer Corp. System and method for electrically isolating a device from higher voltage devices
US6148387A (en) * 1997-10-09 2000-11-14 Phoenix Technologies, Ltd. System and method for securely utilizing basic input and output system (BIOS) services
US6088701A (en) * 1997-11-14 2000-07-11 3Dfx Interactive, Incorporated Command data transport to a graphics processing device from a CPU performing write reordering operations
GB9806184D0 (en) * 1998-03-23 1998-05-20 Sgs Thomson Microelectronics A cache coherency mechanism
US6360282B1 (en) 1998-03-25 2002-03-19 Network Appliance, Inc. Protected control of devices by user applications in multiprogramming environments
US6530051B1 (en) * 1998-03-27 2003-03-04 Infineon Technologies Ag Method and apparatus for an easy identification of a state of a DRAM generator controller
US6023738A (en) * 1998-03-30 2000-02-08 Nvidia Corporation Method and apparatus for accelerating the transfer of graphical images
US6473780B1 (en) * 1998-04-01 2002-10-29 Intel Corporation Scheduling of direct memory access
US7136068B1 (en) * 1998-04-07 2006-11-14 Nvidia Corporation Texture cache for a computer graphics accelerator
US6092124A (en) * 1998-04-17 2000-07-18 Nvidia Corporation Method and apparatus for accelerating the rendering of images
AU7383198A (en) * 1998-05-12 1999-11-29 S3 Incorporated Method and apparatus for programming a graphics subsystem register set
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US8631066B2 (en) 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US7516453B1 (en) * 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US6339427B1 (en) * 1998-12-15 2002-01-15 Ati International Srl Graphics display list handler and method
US6256683B1 (en) * 1998-12-23 2001-07-03 Bops, Inc. Methods and apparatus for providing direct memory access control
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US8127121B2 (en) * 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6763452B1 (en) 1999-01-28 2004-07-13 Ati International Srl Modifying program execution based on profiling
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US8065504B2 (en) * 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6919895B1 (en) * 1999-03-22 2005-07-19 Nvidia Corporation Texture caching arrangement for a computer graphics accelerator
US6762761B2 (en) * 1999-03-31 2004-07-13 International Business Machines Corporation Method and system for graphics rendering using hardware-event-triggered execution of captured graphics hardware instructions
JP3376956B2 (ja) * 1999-05-14 2003-02-17 日本電気株式会社 プロセッサ間通信装置
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7254806B1 (en) 1999-08-30 2007-08-07 Ati International Srl Detecting reordered side-effects
IL132915A (en) 1999-11-14 2004-05-12 Networks Assoc Tech Inc Method for secure function execution by calling address validation
IL132916A (en) 1999-11-14 2004-02-08 Mcafee Inc Method and system for intercepting an application program interface
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US6735666B1 (en) * 2000-02-22 2004-05-11 Wind River Systems, Inc. Method of providing direct user task access to operating system data structures
WO2001063438A1 (en) * 2000-02-24 2001-08-30 Bops Incorporated Methods and apparatus for providing bit-reversal and multicast functions utilizing dma controller
US6181639B1 (en) * 2000-03-23 2001-01-30 Infineon Technologies North America Corp. Method and apparatus for a flexible controller for a DRAM generator system
US7360028B1 (en) * 2000-05-05 2008-04-15 Sun Microsystems, Inc. Explicit store-to-instruction-space instruction for self-modifying code and ensuring memory coherence between instruction cache and shared memory using a no-snoop protocol
US6681346B2 (en) * 2000-05-11 2004-01-20 Goodrich Corporation Digital processing system including a DMA controller operating in the virtual address domain and a method for operating the same
US7383424B1 (en) 2000-06-15 2008-06-03 Hewlett-Packard Development Company, L.P. Computer architecture containing processor and decoupled coprocessor
FI20002377A (fi) * 2000-10-27 2002-04-28 Ssh Comm Security Corp Menetelmä käännetyn suodatinkoodin hallitsemiseksi
GB2369690B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Enhanced protection for memory modification tracking
GB2369694B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Efficient memory modification tracking
US6779049B2 (en) * 2000-12-14 2004-08-17 International Business Machines Corporation Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism
US7165109B2 (en) * 2001-01-12 2007-01-16 Microsoft Corporation Method and system to access software pertinent to an electronic peripheral device based on an address stored in a peripheral device
US7194766B2 (en) * 2001-06-12 2007-03-20 Corrent Corporation Method and system for high-speed processing IPSec security protocol packets
US7035966B2 (en) 2001-08-30 2006-04-25 Micron Technology, Inc. Processing system with direct memory transfer
US7162608B2 (en) * 2001-10-24 2007-01-09 Cray, Inc. Translation lookaside buffer-based memory system and method for use in a computer having a plurality of processor element
WO2003038683A1 (en) * 2001-11-01 2003-05-08 Verisign, Inc. Transactional memory manager
WO2004006105A2 (en) * 2002-07-08 2004-01-15 Globespanvirata Incorporated Dma scheduling mechanism
US6934806B2 (en) * 2002-09-23 2005-08-23 International Business Machines Corporation Method and system for improving input/output performance by proactively flushing and locking an entire page out of caches of a multiprocessor system
US20040176942A1 (en) * 2003-03-04 2004-09-09 International Business Machines Corporation Method, system and program product for behavioral simulation(s) of a network adapter within a computing node or across multiple nodes of a distributed computing environment
US8862866B2 (en) 2003-07-07 2014-10-14 Certicom Corp. Method and apparatus for providing an adaptable security level in an electronic communication
GB2406484B (en) * 2003-08-19 2007-01-31 Certicom Corp Method and apparatus for synchronizing an adaptable security level in an electronic communication
US7225277B2 (en) * 2003-09-04 2007-05-29 International Business Machines Corporation Proxy direct memory access
US7260746B2 (en) * 2003-10-21 2007-08-21 Massachusetts Institute Of Technology Specification based detection and repair of errors in data structures
US7225316B2 (en) * 2003-11-17 2007-05-29 Intel Corporation Memory mapping apparatus, systems, and methods
TWI278748B (en) * 2003-12-05 2007-04-11 Mediatek Inc Virtual first-in, first-out DMA device
US20050138402A1 (en) * 2003-12-23 2005-06-23 Yoon Jeonghee M. Methods and apparatus for hierarchical system validation
US7130982B2 (en) * 2004-03-31 2006-10-31 International Business Machines Corporation Logical memory tags for redirected DMA operations
FR2871908A1 (fr) 2004-06-18 2005-12-23 St Microelectronics Sa Procede et programme d'ordinateur de traitement d'une adresse virtuelle pour la programmation d'un controleur de dma et systeme sur puce associe
JP3928730B2 (ja) * 2004-06-25 2007-06-13 セイコーエプソン株式会社 半導体装置、マイクロコンピュータ及び電子機器
EP1617335A1 (fr) 2004-07-12 2006-01-18 Stmicroelectronics SA Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
FR2873466A1 (fr) * 2004-07-21 2006-01-27 St Microelectronics Sa Procede de programmation d'un controleur de dma dans un systeme sur puce et systeme sur puce associe
EP1619589B1 (fr) 2004-07-23 2007-12-26 Stmicroelectronics SA Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
US9152823B2 (en) * 2005-04-22 2015-10-06 Storagecraft Technology Corporation Systems, methods, and computer readable media for computer data protection
US20070005930A1 (en) * 2005-06-30 2007-01-04 Khosravi Hormuzd M Systems and methods for host virtual memory reconstitution
US7571298B2 (en) * 2005-06-30 2009-08-04 Intel Corporation Systems and methods for host virtual memory reconstitution
US7669242B2 (en) * 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US7953980B2 (en) 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US20070006307A1 (en) * 2005-06-30 2007-01-04 Hahn Scott D Systems, apparatuses and methods for a host software presence check from an isolated partition
US8839450B2 (en) 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US7793067B2 (en) * 2005-08-12 2010-09-07 Globalfoundries Inc. Translation data prefetch in an IOMMU
US7543131B2 (en) 2005-08-12 2009-06-02 Advanced Micro Devices, Inc. Controlling an I/O MMU
US7480784B2 (en) 2005-08-12 2009-01-20 Advanced Micro Devices, Inc. Ensuring deadlock free operation for peer to peer traffic in an input/output memory management unit (IOMMU)
US7516247B2 (en) 2005-08-12 2009-04-07 Advanced Micro Devices, Inc. Avoiding silent data corruption and data leakage in a virtual environment with multiple guests
US20070067590A1 (en) * 2005-09-22 2007-03-22 Uday Savagaonkar Providing protected access to critical memory regions
TW200712997A (en) * 2005-09-23 2007-04-01 Elan Microelectronics Corp Method for compensating sensitivity of touch pad sensor
US7644198B2 (en) * 2005-10-07 2010-01-05 International Business Machines Corporation DMAC translation mechanism
US8001543B2 (en) * 2005-10-08 2011-08-16 International Business Machines Corporation Direct-memory access between input/output device and physical memory within virtual machine environment
US7673116B2 (en) 2006-01-17 2010-03-02 Advanced Micro Devices, Inc. Input/output memory management unit that implements memory attributes based on translation data
US7613898B2 (en) 2006-01-17 2009-11-03 Globalfoundries Inc. Virtualizing an IOMMU
US7548999B2 (en) * 2006-01-17 2009-06-16 Advanced Micro Devices, Inc. Chained hybrid input/output memory management unit
US7653803B2 (en) * 2006-01-17 2010-01-26 Globalfoundries Inc. Address translation for input/output (I/O) devices and interrupt remapping for I/O devices in an I/O memory management unit (IOMMU)
US7870307B2 (en) * 2006-01-30 2011-01-11 Sony Computer Entertainment Inc. DMA and graphics interface emulation
US7739474B2 (en) * 2006-02-07 2010-06-15 International Business Machines Corporation Method and system for unifying memory access for CPU and IO operations
WO2007118307A1 (en) 2006-04-13 2007-10-25 Certicom Corp. Method and apparatus for providing an adaptable security level in an electronic communication
US7623134B1 (en) * 2006-06-15 2009-11-24 Nvidia Corporation System and method for hardware-based GPU paging to system memory
US7487341B2 (en) * 2006-06-29 2009-02-03 Intel Corporation Handling address translations and exceptions of a heterogeneous resource of a processor using another processor resource
US7768518B2 (en) * 2006-09-27 2010-08-03 Intel Corporation Enabling multiple instruction stream/multiple data stream extensions on microprocessors
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US7768515B1 (en) * 2006-11-03 2010-08-03 Nvidia Corporation Apparatus, system, and method for reducing shadowed state memory requirements for identifying driver command exceptions in a graphics system
US7873770B2 (en) 2006-11-13 2011-01-18 Globalfoundries Inc. Filtering and remapping interrupts
US7849287B2 (en) 2006-11-13 2010-12-07 Advanced Micro Devices, Inc. Efficiently controlling special memory mapped system accesses
JP2008299425A (ja) * 2007-05-29 2008-12-11 Toshiba Corp データ転送装置及びデータ転送方法
JP2008299648A (ja) * 2007-05-31 2008-12-11 Toshiba Corp プログラムおよび情報処理装置
US8051338B2 (en) * 2007-07-19 2011-11-01 Cray Inc. Inter-asic data transport using link control block manager
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US8176252B1 (en) 2007-11-23 2012-05-08 Pmc-Sierra Us, Inc. DMA address translation scheme and cache with modified scatter gather element including SG list and descriptor tables
US8495301B1 (en) 2007-11-23 2013-07-23 Pmc-Sierra Us, Inc. System and method for scatter gather cache processing
US8219778B2 (en) * 2008-02-27 2012-07-10 Microchip Technology Incorporated Virtual memory interface
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
JP5448496B2 (ja) * 2009-02-19 2014-03-19 キヤノン株式会社 情報処理装置及びその制御方法
US8225069B2 (en) * 2009-03-31 2012-07-17 Intel Corporation Control of on-die system fabric blocks
US8117373B2 (en) * 2009-04-30 2012-02-14 Kimon Berlin VM host responding to initiation of a page swap by transferring pages from host-but-non-guest-addressable RAM to host-and-guest-addressable RAM
US8719547B2 (en) 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8255593B2 (en) * 2009-09-29 2012-08-28 Oracle America, Inc. Direct memory access with striding across memory
CN102117184B (zh) * 2010-01-05 2017-06-27 联想(北京)有限公司 用于多存储器的控制器、终端设备及其启动和访问方法
US8631212B2 (en) 2011-09-25 2014-01-14 Advanced Micro Devices, Inc. Input/output memory management unit with protection mode for preventing memory access by I/O devices
US9244829B2 (en) * 2012-12-20 2016-01-26 Oracle International Corporation Method and system for efficient memory region deallocation
US9665468B2 (en) 2013-08-19 2017-05-30 Intel Corporation Systems and methods for invasive debug of a processor without processor execution of instructions
US9632947B2 (en) 2013-08-19 2017-04-25 Intel Corporation Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early
US9619382B2 (en) 2013-08-19 2017-04-11 Intel Corporation Systems and methods for read request bypassing a last level cache that interfaces with an external fabric
US9361227B2 (en) 2013-08-30 2016-06-07 Soft Machines, Inc. Systems and methods for faster read after write forwarding using a virtual address
US10795997B2 (en) * 2017-06-21 2020-10-06 Intel Corporation Hardened safe stack for return oriented programming attack mitigation
CN109062826B (zh) * 2018-08-16 2022-04-15 北京算能科技有限公司 数据传输方法及***
US11269780B2 (en) 2019-09-17 2022-03-08 Micron Technology, Inc. Mapping non-typed memory access to typed memory access
US11494311B2 (en) 2019-09-17 2022-11-08 Micron Technology, Inc. Page table hooks to memory types
US11650742B2 (en) 2019-09-17 2023-05-16 Micron Technology, Inc. Accessing stored metadata to identify memory devices in which data is stored
US10963396B1 (en) * 2019-09-17 2021-03-30 Micron Technology, Inc. Memory system for binding data to a memory namespace
US11416397B2 (en) * 2019-10-14 2022-08-16 Intel Corporation Global persistent flush
US11593157B2 (en) 2020-02-05 2023-02-28 Nec Corporation Full asynchronous execution queue for accelerator hardware
WO2021239228A1 (en) * 2020-05-28 2021-12-02 Huawei Technologies Co., Ltd. Method and system for direct memory access
WO2024011497A1 (en) * 2022-07-14 2024-01-18 Mellanox Technologies, Ltd. Fault resilient transaction handling device

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
JPS54129942A (en) * 1978-03-31 1979-10-08 Fujitsu Ltd Direct transfer system between sub-systems
EP0088789B1 (en) * 1981-09-18 1987-08-05 CHRISTIAN ROVSING A/S af 1984 Multiprocessor computer system
JPH0658646B2 (ja) * 1982-12-30 1994-08-03 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション デ−タ持続性が制御される仮想記憶アドレス変換機構
US4649498A (en) * 1984-05-08 1987-03-10 The University Of Rochester Computer systems for curve-solid classification and solid modeling
US4821180A (en) * 1985-02-25 1989-04-11 Itt Corporation Device interface controller for intercepting communication between a microcomputer and peripheral devices to control data transfers
US5113523A (en) * 1985-05-06 1992-05-12 Ncube Corporation High performance computer system
US4797812A (en) * 1985-06-19 1989-01-10 Kabushiki Kaisha Toshiba System for continuous DMA transfer of virtually addressed data blocks
US4799150A (en) * 1985-07-29 1989-01-17 Orchid Technology Interface system between a host computer and a peripheral processor with address detection circuitry
JPH0792761B2 (ja) * 1985-07-31 1995-10-09 株式会社日立製作所 仮想計算機システムの入出力制御方法
US4787026A (en) * 1986-01-17 1988-11-22 International Business Machines Corporation Method to manage coprocessor in a virtual memory virtual machine data processing system
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US5001624A (en) * 1987-02-13 1991-03-19 Harrell Hoffman Processor controlled DMA controller for transferring instruction and data from memory to coprocessor
US5151895A (en) * 1990-06-29 1992-09-29 Digital Equipment Corporation Terminal server architecture

Also Published As

Publication number Publication date
DE69132300D1 (de) 2000-08-17
EP0447145A3 (en) 1993-10-27
JPH04219852A (ja) 1992-08-10
EP0447145B1 (en) 2000-07-12
US5301287A (en) 1994-04-05
DE69132300T2 (de) 2000-11-30
EP0447145A2 (en) 1991-09-18

Similar Documents

Publication Publication Date Title
JP3369580B2 (ja) 直接メモリアクセスを行うためのインターフェース装置及び方法
JP3272370B2 (ja) 作業バッファポインタを用いたユーザスケジュール式直接メモリアクセス方法及びその装置
JP3264319B2 (ja) バスブリッジ
US7680987B1 (en) Sub-page-granular cache coherency using shared virtual memory mechanism
JP3281893B2 (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
US5586297A (en) Partial cache line write transactions in a computing system with a write back cache
US8037281B2 (en) Miss-under-miss processing and cache flushing
KR101563659B1 (ko) 집성된 소페이지들을 사용한 페이지 사이즈 확장
KR100190350B1 (ko) 고성능 프레임 버퍼 및 캐쉬메모리 시스템
US6711650B1 (en) Method and apparatus for accelerating input/output processing using cache injections
US6772298B2 (en) Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US7234038B1 (en) Page mapping cookies
US20070130372A1 (en) I/O address translation apparatus and method for specifying a relaxed ordering for I/O accesses
JPH077360B2 (ja) キヤツシユメモリを具えた情報処理装置
JPH0997214A (ja) 補助プロセッサのためのアドレス変換を含む情報処理システム
JPH03220644A (ja) コンピユータ装置
JPH09114665A (ja) 記憶装置と補助プロセッサ間のコマンド及びデータ転送方法及び情報処理システム
US7093080B2 (en) Method and apparatus for coherent memory structure of heterogeneous processor systems
US7523290B2 (en) Very high speed page operations in indirect accessed memory systems
US6865651B2 (en) Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment
US6665787B2 (en) Very high speed page operations in indirect accessed memory systems
JPH09179779A (ja) コンピュータシステムおよびデータ転送方法
JPH01288940A (ja) 論理アドレスキャッシュ制御方式
JPH0529943B2 (ja)
JP2637853B2 (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

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

Free format text: PAYMENT UNTIL: 20081115

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091115

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091115

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101115

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111115

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111115

Year of fee payment: 9