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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache 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)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99948—Application 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)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Description
憶装置に格納されているデータに外部データ処理システ
ムにより直接アクセスする方法及び装置に関するもので
あり、更に詳細には、グラフィックサブシステムのよう
な外部データ処理システムにより、ユーザが指定した仮
想メモリ空間の記憶場所にあるホストシステムの主記憶
装置の内容をユーザの制御のもとで外部データ処理シス
テムに転送することによりホストシステムの仮想記憶装
置に直接メモリアクセスを行う方法及び装置に関する。
外部データプロセッサとの間のデータ転送は、ホストプ
ロセッサで実行されるプログラムの直接制御のもとに入
出力(I/O)付属装置を介して行われる。典型的に
は、データの各バイト又はワードを転送するには幾つか
の指令を実行する必要がある。しかし、I/O装置の中
にはこの技法で達成し得るより大きいデータ転送速度を
必要とするものがある。このような装置については、I
/O付属装置は直接メモリアクセス(DMA)として知
られているデータ転送プロセスを使用することができ
る。DMAはホストプロセッサで指令の実行を行う必要
なしにホストプロセッサの記憶装置とI/O付属装置と
の間でデータの直接転送を可能とする。特に、DMAの
期間中、ホストプロセッサは先づ、カウントと開始メモ
リアドレスとをそのレジスタに格納することによりDM
Aプロセッサの回路を初期設定する。一旦始動すると、
DMAはそれ以上ホストプロセッサの介在なしに進行し
(ただしDMA動作が完了すると割込みが発生すること
がある)、従ってデータの転送はホストプロセッサでそ
れ以上指令を実行する必要なしに処理される。
属装置は既知であり、一般に図1に示す形式の回路を組
込んでいる。図1のDMAプロセッサのホストプロセッ
サはアドレスカウンタ10及びカウンタレジスタ12を
設定する。信号バスサイクルはバスによりアドレスが提
示され、データが交換される期間を規定する責務を持
つ。DMAプロセッサはまたI/O付属装置に「転送要
求」及び「要求許可」の線路を接続する。動作中、I/
O付属装置がバスサイクルを使用したいときは、転送要
求線の電圧を上げる。DMAカウントレジスタ12がゼ
ロでなければ、信号をホストプロセッサに対するバス要
求線に載せる。ホストプロセッサのハードウェアはこの
信号を定期的に調べ、その信号が高論理レベルのもので
あると、ホストプロセッサは現在のバスサイクルの終り
まで待ち、それ以上のバス活動を停止し、そのアドレス
及びデータ線ドライバを高インピーダンス状態にし、バ
ス許可線の電圧を上げる。ホストプロセッサはこのよう
にしてDMAプロセッサに対して許可されたバスサイク
ルの期間中バスから効果的に分離される。バス許可線の
高論理レベルがDMAプロセッサにより検知されると、
DMAプロセッサはそのアドレスカウンタレジスタ10
の内容をアドレス線に載せ、要求許可線を通してI/O
付属装置にデータの転送に現在のバスサイクルを使用で
きることを知らせる。I/O付属装置自身はこのように
してデータ転送の方向を決めるバスを駆動することがで
き、又はDMAプロセッサの別の回路がこれらの線を駆
動することができる。転送要求が高論理レベルに保持さ
れている限り、連続バスサイクルをI/O付属装置が使
用することができる。このような手法は「サイクルステ
ィール」として知られている。
クルを使用することができ(「バーストモード」)、又
はバスサイクルを間欠的に使用することができる。この
選択はI/O付属装置のデータ転送速度によって決ま
る。事実、ホストシステムのプロセッサはバス許可を発
生することによりバスを放棄する準備に幾つかのバスサ
イクルを使用しなければならないこと、及びバスを再び
獲得してから幾つかのバスサイクルを使用しなければな
らないことが屡々ある。これらのサイクルは指令実行又
はデータ転送に寄与しないという点で非生産的である。
それ故、連続バスサイクルを利用するDMA転送はバス
を一層効率良く活用するものである。
に転送するときホストプロセッサにかかる負担を減らす
ために、DMAを使用してホストシステムの主記憶装置
からデータを取出し、これを別の処理指令を必要とせず
に外部データ処理システムに伝えることが知られてい
る。しかし、このような従来技術のDMA手法は多数ユ
ーザのメモリ空間の完全性を保証するのにホストプロセ
ッサのカーネルソフトウェアによって開始されるのが一
般的で、ホストシステムで動作するユーザコードにより
開始されるのではなかった。その結果、ホストシステム
のユーザアプリケーションプログラムが、従来のグラフ
ィック処理又はネットワーキングシステムのような大き
なデータブロックの処理を必要とするとき、ユーザの計
画によるDMAは不可能であった。どちらかと言えば、
ホストシステムの主記憶装置へのアクセスはホストプロ
セッサによるシステムソフトウェア(又はカーネル)制
御を通してのみ行われるのが一般的であり、このためシ
ステムの全体のデータ転送時間がかなりのろくなりユー
ザプログラミングが複雑になっていた。従って、これま
ではグラフィック又は他のこのような複雑なデータプロ
ファイルのリアルタイム操作をDMAインターフェイス
を介してユーザ指導のもとに行うことは極めて困難であ
った。
ストシステムの主記憶装置にあるデータにユーザ制御の
もとにアクセスし、これにより外部プロセス又は外部処
理システムへのデータ転送に必要な時間を、システムの
保証を失うことなくリアルタイムのデータ操作ができる
ようにかなり減らすことができる外部プロセスを可能と
するプロセス及び装置の必要性が長い間痛感されてい
る。本発明はこの目的のために企画されている。
必要性は、ホストシステムからの指令を仮想メモリ空間
で翻訳し、仮想アドレスを物理アドレスに変換し、主シ
ステム記憶装置からデータブロックをカーネルソフトウ
ェアの要求でではなく、ユーザの要求で取出す知能的直
接メモリアクセス(DMA)プロセッサに関する本発明
により満たされる。これにより多数ユーザシステムでの
アクセスの保証を維持しながら、カーネルの要求ではな
くユーザの要求で、急速データアクセスを行うことがで
きる。
データを主記憶装置を備えているユーザのホストシステ
ムと外部データ処理システムとの間で転送するインタフ
ェース装置が設けられている。本発明によるインタフェ
ース装置は、データ処理指令及び関連データをデータ処
理指令及びユーザのホストシステムの仮想メモリ空間に
ある関連データを指す仮想ポインタから成るそれぞれの
指令/ポインタパケットとして表わす手段を備えてい
る。指令/ポインタパケットの仮想ポインタは関連デー
タが収められている主記憶装置内部の物理アドレスを識
別する目的で変換手段により物理ポインタに変換される
ので関連データを主記憶装置内の物理アドレスに対して
読取及び書込手段により読み書きすることができる。こ
のような直接メモリアクセスシステムは好適にはユーザ
のホストシステムに接続されているグラフィックサブシ
ステムと関連して使用され、これによりデータ処理指令
がグラフィック指令になり、関連データはグラフィック
要素データを備えている。しかし、外部データ処理シス
テムを通信回路網、又は直接メモリアクセスを必要とす
る他の幾つかのこのようなシステムとすることができ
る。
プロセッサで行うことができ、一方変換手段の機能を、
ホストプロセッサにより指令/ポインタパケットの仮想
ポインタに対応する現在の物理ポインタを入れるように
する更新される少くとも一つの裏ページテーブル(Shad
ow page table)を備えたDMAプロセッサによ り行う
ことができる。好適には、裏ページテーブルはホストシ
ステムのユーザ制御プロセスごとに設けられ、各裏ペー
ジテーブルはユーザに特権として付与される。裏ページ
テーブルの中の欠けているページはホストプロセッサに
そのカーネルソフトウェアが欠けているページを外部記
憶装置から入れ換えることができるように割込むことに
より更新することができる。また、好適実施例では、本
発明のインタフェース装置はホストシステムの処理を主
記憶装置のDMA読み書きアクセスと同期させる同期化
手段を備えている。更に、データ一貫性技法がホストシ
ステムにより好適に行われ、主記憶装置が前のアクセス
後更新され終る前にデータアクセスされることがないよ
うにしている。
ス装置が主記憶装置を備えているユーザのホストシステ
ムとグラフィックサブシステムとの間でグラフィック指
令及びグラフィック要素を転送するように設けられてい
る。このインタフェース装置は、グラフィック指令及び
グラフィック要素をグラフィック指令及びユーザのホス
トシステムの仮想メモリ空間にあるグラフィック要素デ
ータを指す仮想ポインタから成るそれぞれの指令/ポイ
ンタパケットとして表わす手段を使用することにより指
令/ポインタプロトコルを好適に利用している。この指
令/ポインタプロトコルに関連して、仮想ポインタを主
記憶装置内のグラフィック要素が収容されている物理ア
ドレスを識別する物理ポインタに変換する手段が設けら
れている。好適には、変換手段はユーザのホストシステ
ムの各ユーザ制御プロセスに対する裏ページテーブルを
備えたDMAプロセッサを備えており、各裏ページテー
ブルは、仮想ポインタに対応する現在の物理ポインタを
入れるように、グラフィック要素が主記憶装置に入って
いないことの指示に応じて、ユーザのホストシステムの
プロセッサ主導型オペレーティングシステムにより更新
される。変換手段は更に、指令/ポインタパケットを順
次格納し、DMAプロセッサに応じてDMAプロセッサ
及びDMA状態手段により分析して主記憶装置の物理ア
ドレスからグラフィック要素の読み書きを開始する指令
/ポインタパケットバッファを備えている。同期化手段
はDMA状態手段により開始される読み書きにユーザの
ホストシステムを同期させることもできる。
応じてユーザのホストシステムの主記憶装置に格納され
ているデータに外部データ処理システムにより直接メモ
リアクセスを行う方法をも含んでいる。この方法は一般
に、ユーザによりユーザのデータ処理指令で要求された
外部データ処理システムによるすべての直接メモリアク
セスを予備承認するステップ、各ユーザプロセスに対し
て、ユーザのデータ処理指令及びユーザのデータ処理指
令の処理に使用するため主記憶装置内のデータを指すユ
ーザのホストシステムの仮想メモリ空間にある仮想ポイ
ンタから成る一連の指令/ポインタパケットを組立てる
ステップ、各指令/ポインタパケットを分析してユーザ
のデータ処理指令及び仮想ポインタを得るステップ、ユ
ーザのデータ処理指令を外部データ処理システムの入力
に書込むステップ、仮想ポインタを主記憶装置内の実際
のメモリ位置を指す対応する物理ポインタに変換するス
テップ、データの長さを識別するワードカウントを決定
するステップ、及びワードカウントに対応するデータの
多数のワードを外部データ処理システムの入力に移す、
物理ポインタにより識別される主記憶装置内のアドレス
から開始される、データ転送ステップ、から構成され
る。
ムによる処理をデータ転送ステップに同期させて「不
正」の記憶装置にDMAしようとすることのないように
するステップを設けることもできる。データ一貫性の問
題もデータ転送しようとする前にすべての表示リスト要
素ばかりでなくユーザのデータキャッシュをも主記憶装
置にフラッシングすることにより防止される。また、主
記憶装置へのすべての裏ページテーブルを仮想対物理ポ
インタ変換の前及び後にフラッシングすることができる
が、この変換は、変換ルックアサイドバッファのテーブ
ル調査を行ってユーザの各データ処理指令に関連するデ
ータの物理アドレスを見つけるステップ、変換ルックア
サイドバッファに物理アドレスが入っていないとき、裏
ページテーブルを探すステップ、物理アドレスが裏ペー
ジテーブルで見つかったら、対応する仮想対物理変換を
変換ルックアサイドバッファに追加するステップ、物理
アドレスをDMA状態装置のアドレスレジスタに書込む
ステップ、及びテーブル調査ステップを繰返すステッ
プ、から構成される。
護の障害が生じたら、変換ステップを中止し、割込をユ
ーザのホストシステムに伝えてページスワッピング又は
或る他の救済動作を行うことができるようにする。その
上、この処理は任務交換の必要なしにホストプロセッサ
により行われ、これにより本発明のシステムの応答時間
がかなり向上する。このようにして、仮想メモリシステ
ムの特性が本発明に従って維持され、一方カーネル制御
の無いユーザ計画DMAの処理効率の向上も可能にな
る。
の発明者は、当業界で長い間痛感されていた上述の必要
性を、グラフィックサブシステムのような外部データ処
理システムに、各メモリアクセスを開始し制御するのに
カーネルを必要とせずにユーザの制御のもとでホストシ
ステムの主記憶装置から直接データにアクセスさせるホ
ストインタフェースプロセス及び装置を開発することに
より満たしている。
ーザの指令に応じてホストシステムの主記憶装置から外
部データ処理システムに対して直接データを転送するこ
とができ、これによりインタフェースの所要帯域幅が減
少する。その結果、ホストプロセッサはもはやルーチン
データの複写を行う貴重な計算時間を消費する必要がな
い。また、ホストのユーザレベルのソフトウェアは仮想
アドレスを使用して記憶装置への直接アクセスを開始す
ることができるので、カーネルサービスに対するサブル
ーチン呼出しは不要である。更に、上述の事項は本発明
にれば伝統的なページスワッピング及び仮想記憶装置の
機能及び保護という利益を失うことなく行われる。
これらの及び他の有利な特徴について図2及び図3を参
照して説明することにする。
システム及びホストシステムのグラフィックサブシステ
ムに関連して説明されるが、当業者には本発明を他の環
境にも同様に良く使用することができることが認められ
るであろう。その上、ここに示した説明は例示目的のみ
のものであり、どんな仕方でも本発明の範囲を限定しよ
うとするものではない。本発明の範囲に関する疑問はす
べて付記した特許請求の範囲を参照することにより解決
することができる。
ースによりグラフィックサブシステムに接続されたホス
ト処理システムを示す。図示のように、処理システムは
システムI/Oバス21を経由して接続されているホス
トプロセッサ20及びグラフィック変形エンジン24と
のVDMAホストインタフェース22を備えている。変
形エンジン24の出力はグラフィック描写回路26へ、
次いでフレームバッファ28へ出力される。フレームバ
ッファ28の出力は、たとえば、ラスタ表示装置30に
より受取られ、CRT画面に出力される。以下に詳細に
説明するように、本発明は特に、図2のホストインタフ
ェース回路22及びホストインタフェース回路22によ
り行われ、ホストプロセッサ20の主記憶装置と変形エ
ンジン24、描写回路26、フレームバッファ28、及
びラスタ表示装置30から成るグラフィックサブシステ
ムとの間でホストプロセッサ20のソフトウェアプログ
ラム(又はカーネル)の介在なしで直接データを転送で
きるうようにする直接メモリアクセス(DMA)プロセ
スを目指している。
のユーザ入力に応答させるには、ユーザ入力を実際のメ
モリアドレスを直接参照する(アセンブリ言語のよう
な)低レベル言語で行わなければならないか、又は通常
よくある場合のように、ユーザ入力をユーザのメモリ空
間(今後「仮想メモリ」空間と言う)にあるアドレスか
ら物理メモリアドレスに変換しなければならない。この
ような仮想メモリシステムは周知であり、このような形
式のシステムはプロセスのアドレス空間(すなわち、基
準指令、データなどを発生するアドレス)が物理アドレ
ス空間(すなわち、実行中にプロセスにより実際に占有
されるようなマシンアドレス)と同一でなければ仮想記
憶装置を備えていると言われる。それ故実行時間変換は
プロセスの仮想アドレス空間からホストシステムの主記
憶装置の物理アドレス空間へ行わなければならない。こ
れは典型的には特別に作られた仮想メモリハードウェア
の補助により行われる。それはホストシステムのユーザ
がDMAが本発明に従って実施されるそのグラフィック
処理要求を行うこのような仮想メモリ空間に入ってい
る。
るように仮想メモリを実現するのに写像機構が使用され
る。ページング、セグメント化、及びこの二つの組合せ
は動的仮想メモリを作る三つの普通の機構である。本発
明の装置はこれら写像機構のどれとでも関連して使用す
ることを目的としており、本発明によるユーザ計画DM
Aプロセスを実施する目的でこのようなシステムに対す
る修正例を以下に更に詳細に説明することにする。
を示す。図示のように、本発明の図示した実施例のシス
テムはホスト中央プロセッサ(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に伝えられるまで指令に関連するデータを指す仮
想ポインタを格納している。
ェース22との間の通信は、バスインタフェースバッフ
ァ37を経由してシステムI/Oバス21を通して行わ
れる。バスインタフェースバッファ37は一般に、メモ
リバス31とシステムI/Oバス21との間で、双方向
データ転送が干渉しないようにすると共に、主記憶装置
32と補助記憶装置(スワップディスク)38又はVD
MAホストインタフェース22との間のデータの転送を
も統合する。特に、バスインタフェースバッファ37
は、外部記憶装置(スワップディスク)38とのページ
スワッピング中及び本発明によるVDMAホストインタ
フェース22とのDMAデータ転送中にシステムメモリ
バス31をシステムI/Oバス21と連結するように働
く。
明によるシステム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をも備えている。
指令と関連するデータを指す仮想ポインタが入っている
データパケット(C/Pパケット)を伝統的な指令/デ
ータ(C/D)パケットに変換してグラフィックプロセ
ッサにより処理するか、又は他方、パケットをグラフィ
ックプロセッサに直接送ることができる指令/ポインタ
(C/P)構成と関連して好適に使用される。C/Dパ
ケットは一般に一つ以上の32ビットワードから成る指
令とこれに続く0以上のデータワードから構成される。
C/Dパケットは他方、実際のデータがデータを指すポ
インタで置き換えられていることの他はC/Dパケット
と全く同じである。VDMAホストインタフェース22
は次にこのポインタの参照を解き、指令に関連するデー
タをDMAを使用して主記憶装置32から直接獲得す
る。しかし、ポインタは仮想メモリ空間にあるユーザに
より識別されるので、本発明に従ってDMAを行うこと
ができる前に仮想ポインタを物理ポインタに変換しなけ
ればならない。
ラフィックハードウェアに送られるポインタは伝統的な
(物理)ポインタではなく、仮想的、又は論理的ポイン
タである。従って、本発明によるDMA活動をここでは
仮想DMA、又は簡単にVDMAと言う。しかし、物理
アドレスだけがシステムI/Oバス21に現われるの
で、VDMAという用語はDMAに対するアドレスの元
来の源が仮想アドレスであったことを示すのに実際には
有用であるに過ぎない。本発明のVDMAホストインタ
フェース22は仮想アドレスを、ポインタの参照を解除
することができる前に物理アドレスに変換又は写像しな
ければならない。従って、VDMAは従来技術の図1を
参照して説明したようなバスサイクルの特別な形式では
ない。
のように動作する。最初に、ホスト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パケットの準備を続け
る。出力指令/データ待行列の中のパケットをこうして
グラフィックサブシステムが使用してユーザが要求した
グラフィック操作をユーザが指定したデータを用いて行
うことができる。
て動作する期間中、ホスト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を使用して所定のグラフィック要素
に関連するデータを得る。
3月15日に出願された、本発明の譲受人に譲渡され、
ここに引用して取り込む、関連出願の米国特許出願第4
94008号に記してあるように、直接C/Dパケット
を出力することもできるので、ここに記すような仮想対
物理変換は常に行う必要はない。いずれにしても、本発
明によるユーザグラフィックへの参照はすべて仮想ポイ
ンタを経由することができるので本発明のVDMAホス
トインタフェース22はグラフィック要素に関するデー
タを得るのに仮想アドレスを使用することができなけれ
ばならない。それ故、本発明によるDMAプロセッサ2
22はそれ自身の仮想対物理変換能力を備えており、た
とえば、仮想対物理変換用の変換ルックアサイドバッフ
ァ(TLB)を備えることができる。その結果、実際の
バスアドレスは常に物理アドレスである。
について今度は引続き図3を参照して更に詳細に説明す
ることにする。
ストCPU20は一般に入力多角形及び多重線(polyli
ne)に対して二つのことしか行わない。すなわち、ホス
トCPU20は次回の要素の位置をつきとめ、それが多
重線であるか又は多角形であるか及びデータをグラフィ
ックハードウェアに送る前に更に処理する必要があるか
否かを判断する。次にデータをバッファに写し取る。本
発明はグラフィックデータをグラフィックハードウェア
まで動かすために必要な複写の量をかなり排除するよう
に計画されている。特に、本発明は、グラフィックハー
ドウェアが主記憶装置32を直接読取ることができれ
ば、ホストCPU20はグラフィックハードウェアに適
切な見出しとデータを指すポインタとを送るだけでよい
という理論に基いて動作している。上に記したように、
これは本発明によれば、指令及びその関連データをC/
Pパケットとして組立てることにより行われる。
適に、見出し、グラフィック指令、サイズ情報、カウン
ト情報、フラグ情報、ワード/頂点情報、及び仮想ポイ
ンタから構成されている。見出しはパケットがC/Pパ
ケットであることを示すが、サイズ情報は多角形の頂点
データのワードの全数を示す。グラフィック指令は、入
力データが例えば多角形であることを示すことができる
が、カウントと多角形の頂点の数を示す。フラグ情報は
入力多角形に対して活動する処理モードを示すが、ワー
ド/頂点情報は各頂点を記述するのに使用することがで
きるワードの数を示すことができる。最後に、仮想ポイ
ンタは本発明による頂点データ構造を識別する32ビッ
トアドレスとすることができる。
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パケット全体を折り返しのアクセスで一度
に得ることができ、これによりデータ転送のこの部分が
はるかに一層効率が良くなる。このような利益は従来技
術のグラフィックシステムでは一般に不可能である。何
故ならバスサイクルがプロセッサからの実際のデータワ
ードの要求に応じてのみ作られ、これによりプロセッサ
のキャッシュ線によって別のワードをあらかじめ取り出
すことが制限されるからである。
構は、ここに説明したもののようなハードウェアの他に
ホストCPU20のソフトウェアを幾らか修正したもの
の利用を必要とする。例えば、同期化機能を実施して、
データが主記憶装置32の内部で変わる前に、ユーザの
アプリケーションプログラムをグラフィックハードウェ
アと同期させることができ、VDMAホストインタフェ
ース22のハードウェアがホストCPU20のキャッシ
ュがどんなDMAアクセスに対しても主記憶装置32と
矛盾していないことを保証することもできる。一例とし
て、データキャッシュは、仮想DMAがデータにアクセ
ス可能なことをDMAが保証しようとする前に、ユーザ
のアプリケーションプログラムでフラッシングされる。
従って、ユーザのアプリケーションプログラムには、D
MAがデータを読み終わるまで、データの変更が許可さ
れない。これらの問題に対するハードウェア及びソフト
ウェアの解決法を下に更に詳細に説明する。
ではないが、データ転送をしやすくするのに使用するこ
とができる。このような作業バッファ35は好適には、
例えば、長さ512ワードとすることができる、32ビ
ットワードのアレイから構成される。作業バッファ35
は512ワードの境界に整列され、従って物理なページ
境界とは交差しない。作業バッファ35は、グラフィッ
クサブシステムがDMA読み出しのキャッシュスヌーピ
ングをすることができない、又は書き通しページを使用
しないホストCPUで実行しているとき「スワッピン
グ」される前にホストCPU20のキャッシュからフラ
ッシングされなければならないが、作業バッファ35が
書き通しページから割り当てられていればキャッシュを
交換前にフラッシングする必要はない。その上、ホスト
CPU20のソフトウェアにとって、制御ユーザが変更
されるたびに作業バッファ35の先頭に状態保存及び回
復の指令を入れることが必要になることがある。
ィティであるから、必ずしも特定のアドレス範囲に又は
物理RAMの中にさえも存在しないことを容易に認める
であろう。従って、そのように図示してはあるが、ここ
に記した作業バッファ35は主記憶装置32の中に存在
する必要はなく、別の記憶装置ユニットの一部とするこ
とができる。
うに通常の仮想DMAシナリオで使用される。即ち、ユ
ーザのアプリケーションプログラムが作業バッファ35
を構築し、必要ならホストCPU20のキャッシュをフ
ラッシングする。次にユーザのアプリケーションプログ
ラムは必要ならグラフィックハードウェアのロックを獲
得する。次にユーザのアプリケーションプログラムはD
MAプロセッサ222の状態レジスタのフラグをチェッ
クして前の作業バッファの処理が完了していることを確
認する。DMAプロセッサ222の準備が完了すると、
ユーザのアプリケーションプログラムは作業バッファリ
ンク指令を書き込むが、この指令はホストCPU20に
よりDMAプロセッサ222に処理のためデータを作業
バッファ35からC/PFIFO221にC/Pフォー
マット又はC/Dフォーマットで転送するよう指示する
のに使用される。作業バッファリンク指令はDMAプロ
セッサ222の指令レジスタにより受け取られ、適切な
作業バッファ35の内容が読み込まれ、分析される。次
いで次のバッファの処理が始まる。
ク指令が特権レジスタに書き込まれるときPRIVフラ
グをグラフィックハードウェアにより設定することがで
きるので、ソフトウェアは常にこのビットを0に設定す
ることができる。このように、PRIVは、設定された
とき、DMAプロセッサ222に指令が特権レジスタに
書き込まれたことを示すフラグである。これは、特権指
令は直接特権レジスタに書き込まれなければならないが
非特権指令は作業バッファに入れることができるので、
重要である。
サ222はサイクル時間が60ナノ秒のテキサスインス
ツルメントTMS320C30マイクロプロセッサを備
えている。勿論、他のマイクロプロセッサ装置を本発明
に従って特許請求の範囲で規定した本発明の精神又は範
囲から逸脱することなく使用することができる。しか
し、実施したら、DMAプロセッサ222は好適には下
に記す機能を行うようにプログラムされる。
0からのホスト要求にサービスする。特に、ホストCP
U20が指令をDMAプロセッサ222のメッセージレ
ジスタに書き込むと、DMAプロセッサ222は指令を
読み、要求にサービスするのに適切な行動を起こす。
にC/PFIFO221を分析しなければならない。こ
れはC/PFIFO221にある各パケットの形式を復
号し、C/Dパケットをグラフィックプロセッサに単に
伝えることにより行われる。しかし、C/Pパケットに
出会えば、適切な指令見出し語だけがC/PFIFO2
21からグラフィックプロセッサに写し取られる。C/
Pパケットには指令をグラフィックプロセッサまで伴う
べきデータ構造の開始を指定する仮想アドレス、及びデ
ータ構造内の32ビットワードの数を示すカウントが入
っている。この情報を使用して、取り出される全データ
構造をDMAプロセッサ222により一つ以上の物理ペ
ージの一つ以上のバス処理に分解することができる。最
大512ワードまでの各個別の処理を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転送を始
める。
は、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はオペレーティングシステ
ム又はホストシステムのカーネルにより前に行われた機
能を行う。ただし、オペレーティングシステム又はカー
ネルの大きな処理オーバヘッドはもはや発生せず、これ
により処理速度がかなり増大する。
を二つのチャンネルを経由してDMAプロセッサ222
に送ることができる。すなわち、指令を特殊C/Pパケ
ットとして作業バッファ35に埋め込むことができ、又
は指令をDMAプロセッサ222のメッセージレジスタ
に書き込むことができる。ここに記す「メッセージレジ
スタ」はDMAプロセッサ222の中にある一組の内部
レジスタであって、ホストCPU20からアクセス可能
である。このレジスタは好適には、ホストCPU20が
指令ワードを書き込むDMA指令レジスタ及びホストC
PU20が、もし存在すれば、指令に関連する別のデー
タワードを書き込むDMAデータレジスタを備えてい
る。これらレジスタは好適にはI/Oアドレス空間の二
つの異なるページに複式に写像され、一方のページには
特権が与えられ、特権の与えられたプロセスのみがアク
セスすることができるが、他のページにはどんなユーザ
でもアクセスすることができる。PRIVビットは指令
が特権所持ユーザにより送られればインタフェースハー
ドウェアによりDMAプロセッサ222の状態レジスタ
内に設定される。
ッサ222と通信するCPU20に対するシナリオは次
のとおりである。ホストCPU20はDMAプロセッサ
222が他の指令を受け入れる態勢が整っていることを
チェックする。ホストCPU20はDMAプロセッサ2
22が他の指令を受け入れる準備が整うまで状態ビット
のポーリングを維持する。ホストCPU20は次に指令
の他関連する付加情報をもメッセージレジスタに書き込
む。DMAプロセッサ222は次に指令レジスタ書き込
みの完了により中断される。DMAプロセッサ222は
次にDMA指令準備完了ビットをリセットし、指令の分
析を開始する。この手順を各指令について繰り返す。
DMAプロセッサ222は更にその機能を支援する幾つ
かの他のレジスタを備えている。例えば、DMAプロセ
ッサ222はDMAの失敗又は誤りに基づく中断を有効
にしたり無効にしたり、状態レジスタ内の失敗ビット及
び誤りビットをクリアしたり、DMAプロセッサ222
及びインタフェースハードウェアをリセットしたり、す
べての有効化ビットの状態を検出したりするDMA制御
レジスタを備えることができる。
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パケットの識別、及び/又はバッファ内容が同期を
外れていることの指示がある)の性格を示すエラー状態
ビット、及びその他の当業者が希望するこのようなすべ
てのビット、を入れることができる。
DMAプロセッサ222のTLBを不良にする最後の仮
想アドレスの値を備えている。このレジスタはまたDM
Aエラービットが設定され、それに伴うDMAエラー状
態コードが設定されてバスエラーを示すとき有効仮想ア
ドレスを備えている。
ロセッサ222により使用された現在のルーツポインタ
を戻すルーツポインタレジスタを備えている。好適実施
例では、32ビットレジスタの23個の最上位ビットを
使用すべきページテーブルの開始の物理アドレスとする
ことができ、それら23ビットをDMAプロセッサ22
2に有効ルーツポインタがないとき全部0に設定するこ
とができる。32ビットレジスタの9個の最下位ビット
に0を割り当てることができる。このレジスタは特権プ
ロセスにのみアクセス可能である。
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の入力回路へのホスト起源ブ
ロック移動を支援することができる。
は、複数のレジスタを利用してDMA動作を制御してい
る。下記のレジスタについて例示専用で且つ制限を目的
としない方法で説明する。当業者はここに規定する新規
の機能を行うのにどんな数のレジスタをも使用すること
ができる。
ッサ222が適格な値をこのレジスタに書き込むときD
MA処理を開始するのに使用することができるDMA状
態マシン制御レジスタ(又はバス制御レジスタ)を備え
ることができる。DMA状態マシン制御レジスタは、設
定されたとき、DMA状態マシン223にどのモードフ
ィールドが書かれているかによりDMA動作を開始させ
るスタートビットを入れることができる。DMA動作が
完了すると、このビットはクリアされる。DMA状態マ
シンレジスタの他のフィールドはDMA処理の開示アド
レスを指示するのにどの作業バッファポインタを使用す
るかを指示することができる。その他に、モードフィー
ルドはDMA状態マシン223が行わなければならない
処理の種類を示すのに使用することができる。このフィ
ールドはDMAプロセッサ222だけにより使用され、
ホストCPU20が制御ワードを書き込むとき、このフ
ィールドには0と書き込まなければならない。上に記し
たように、処理の種類は必要に応じてブロック移動又は
単純な読み取り及び書き込みとすることができる。DM
A状態マシン制御レジスタは転送すべき32ビットワー
ドの数を示すカウントフィールドを備えることもでき
る。勿論、当業者は他の制御ビットを使用することがで
きる。
ッファ35を指す物理ポインタを備えている作業バッフ
ァポインタレジスタを使用することもできる。これら二
つのレジスタを更新するにはカーネルだけが許容され
る。本発明のこの局面の事項についてはここに参照によ
り取り入れてある前述の関連出願に一層詳細に説明され
ている。
ッサ222により書き込まれて主記憶装置32の中の開
始データバッファアドレスを示すS/Dレジスタをも備
えることができる。このアドレスは指定されるモードに
より発信アドレス又は宛先アドレスのいずれかとするこ
とができる。DMA状態マシン223はDMAバスサイ
クル中このアドレスをアドレスバスに出すことができ
る。
ロセッサ222が主記憶装置32にアクセスしようとす
るときバッファレジスタとして働くインタフェースレジ
スタを備えることができる。このレジスタはホストCP
U20がDMAプロセッサ222の内部レジスタにアク
セスしようとするときトランシーバとしても働く。DM
A状態マシン223が主記憶装置32から単一読み取り
を行うよう指導されると、戻されたデータをインタフェ
ースデータレジスタにラッチしてからDMAプロセッサ
222により読み取ることができる。その他に、単一書
き込みでは、DMAプロセッサ222はDMA状態マシ
ン223の作動前にデータをこのレジスタに設置するこ
とができる。
想メモリページ又はアクセス障害を処理するのに必要な
機能を行うことができるので、不良アドレスレジスタを
DMAプロセッサ222の内部RAMに好適に設けてホ
ストCPU20に利用可能にするようにすることができ
る。特に、ページ障害又はアクセス障害が生ずると、不
良仮想アドレスがDMAプロセッサ222がホストCP
U20を中断させる前にこの記憶場所に書き込まれる。
他方、バス処理中にバスエラーが発生すると、このレジ
スタに有効仮想アドレスが入ることになる。それ故、こ
のレジスタはDMAページ障害、DMAアクセス障害、
又はDMAエラー、及びバスエラー状態ビットが設定さ
れる場合に限りホストCPU20よりアクセスされる。
置32の中のページテーブル33の物理開始アドレスを
識別するのにDMAプロセッサ222により使用される
現在のルーツポインタを備えているルーツポインタレジ
スタをも備えることができる。このレジスタは特権プロ
セスにのみアクセス可能である。
CPU20及びDMAプロセッサ222に利用可能にさ
れるI/O状態レジスタを備えていることができる。こ
のレジスタは中断がホストCPU20に送られてしまっ
たか否か、指令が特権プロセスにより送られているか否
か、DMAプロセッサ222が他の指令に対して準備が
整っているか使用中か、DMA動作が順調に終了したか
否か、DMA不良アクセスが読み出しであったか書き込
みであったか、テーブルを探索している間に非在住ペー
ジに出会ったか又はアクセス侵犯が生じたか、などを示
す。
ドライバ支援について説明する。一般に、説明はアドレ
ス変換用ページテーブルの更新の他にデータの一貫性を
与えるソフトウェア解法にも関連する。しかし、当業者
には理解されるように、本発明の特定の実施例では他の
ソフトウェア解法が望ましい場合もある。従って、ここ
での説明は例示目的のみのためであり、本発明の好適実
施例を限定する目的ではないことを理解すべきである。
に格納されているデータを指す仮想ポインタを使用して
所要のグラフィック操作を指定することができるので、
グラフィックプロセスはホストCPU20の仮想メモリ
システムの仮想対物理変換にアクセスしなければならな
い。ホストCPU20は一般にこれら変換を主記憶装置
32の各種のテーブルに保持しているが、グラフィック
プロセスは一般にこれらシステムページテーブルに、こ
れらが特権を持っているため、直接アクセスしない。従
って、本発明のDMAプロセッサ222はここで「裏ペ
ージテーブル」というものを使用することができる。こ
れら裏ページテーブルはグラフィック処理サブシステム
のためにカーネルI/Oドライバにより維持されてお
り、ホストシステムの各ユーザはそれ自身のテーブルを
備え、一度に一人のユーザしかグラフィックプロセスで
活性になることができない。グラフィックサブシステム
はこれら変換テーブルを読み取って変換を得、必要に応
じてこれらのテーブルに修正及び参考の情報を書き込む
ことができる。カーネル仮想メモリシステムはカーネル
I/Oドライバの要求で変換情報を供給することがで
き、ドライバは修正及び参考の情報を要求されたときカ
ーネルに戻すことができる。
2はそれ自身のTLBを設けて各ユーザに対する仮想対
物理変換を格納することができる。既知のように、連想
型TLBは変換テーブルを探すのに必要な時間を大幅に
低減する。好適には、90%より大きい高いヒット率を
与える小さいTLBを使用してシステムのコールドスタ
ート問題を排除する。しかし、TLBは一度に一人のユ
ーザの仮想メモリ空間しか写像しないので、ユーザスワ
ッピングはTLB全体をパージする場合があることに注
目すべきである。
適には、TLBエントリが有効であること、エントリに
関連するページが書き込むことができないこと、ページ
が誰かによって修正されて(書き込まれて)しまってい
ること、仮想アドレスの部分が(ビットがアクセスされ
ている仮想アドレスの適切なビットに合致しなければな
らない)ページフレームにより割り当てられてしまって
いること、ページフレームが関連ページが見つかる物理
アドレスを備えていること、及びページが逆複写として
又は書き通し(write-throug)としてキャッシュされて
いるか又はキャッシュされていないか、又は全くキャッ
シュされていないこと、を示すビットを備えている。こ
のようなTLBエントリの作製はグラフィックハードウ
ェア又はファームウェアにより行うことができる。換言
すれば、DMAプロセッサ222はグラフィックシステ
ムの各ユーザに対して裏ページテーブルを単に「歩く」
ことができ、又は代わりに、カーネルドライバがDMA
プロセッサの指令又はメモリ写像のレジスタを経由して
直接エントリを作製することができる。
写像し直したり、又は保護又は他の属性を変えたりしな
ければならないときにはすべて、TLB及び裏ページテ
ーブルに入っているシステムページテーブルデータのす
べてのコピーを無効にしなければならない。従って、仮
想メモリがグラフィックサブシステムにより写像されて
いるページに修正することを必要とするときには、仮想
メモリはI/Oドライバを呼び、これにTLBをパージ
し、それに従って裏ページテーブル内の写像を変えさせ
なければならない。しかし、当業者に明らかであるよう
に、活性グラフィックプロセスのページテーブルに対す
る修正だけがグラフィックハードウェアに関係するもの
であるから、TLBの清浄化をそのように限定するのが
よい。ソフトウェアの清浄化は特権ページにあるDMA
プロセッサ222のDMA指令レジスタを経由してのみ
グラフィックサブシステムに伝えることができる。
施例に従って仮想対物理変換を得る裏ページテーブルは
2レベルのページテーブル構造とすることができる。裏
ページテーブルの第1のレベル(セグメントテーブル)
は1024個のエントリを含み、その各々が1024個
のページフレーム記述子から成る第2レベルのテーブル
を指すことができるように構成することができる。特
に、各セグメントテーブルのエントリは関連ページテー
ブルの始まりを示すページテーブルポインタの他に、ペ
ージテーブルポインタが有効ページテーブルを指してい
るか否かを示す有効フラグをも備えることができる。裏
ページテーブルの第2のレベル(記述子テーブル)も各
テーブルについて1024個のエントリを備えることが
できる。各エントリはページフレーム記述子に対するR
AM内の真のアドレスを示し、これは4Kバイトのペー
ジとすることができる。従って、各第2レベルのテーブ
ルは4Mバイトの仮想アドレス空間を物理アドレスに又
は空アドレスに写像する。
定のエントリに対する実際のページフレーム(真のRA
Mページアドレス)を指す真実ポインタであるページフ
レームポインタ、逆複写、書き通し、又はキャッシュ不
能のような所定のエントリに関連するページの形式を示
すキャッシュモードフィールド、グラフィックサブシス
テムがビットがクリアされた最後の時刻以来所定のペー
ジを参照していることを示すフラグ、グラフィックサブ
システムが所定のページの記憶場所に常に書き込んでい
る場合に設定される「汚れビット」フラグ、及び、設定
されたとき、ページフレームポインタが実際に真のペー
ジを指していることを示す有効フラグ、を含むことがで
きる。勿論、当業者の必要に応じて他の構成も可能であ
る。
び更新はホストCPU20のカーネルI/Oドライバの
責務である。DMAプロセッサ222がテーブルを歩こ
うとして欠如変換に遭遇すると、ホストCPU20を中
断させてページ障害を指示する。ホストCPU20のI
/Oドライバは不良ページをチェックしてそれが真に存
在していないか否か、又は裏ページテーブルがまさしく
このエントリを欠いているか、を判定しなければならな
い。この目的で、I/Oドライバはシステムテーブルに
真の写像をつきとめようとする。写像が存在すれば、I
/Oドライバはその変換を裏ページテーブルに追加す
る。ある発見法を使用して、I/Oドライバは次に幾つ
かの別のページを裏ページテーブルの同じリーフに写像
しようとすることができる。一旦このテーブルのプリロ
ードが行われると、I/Oドライバはグラフィックサブ
システムのDMAを再開することができる。その結果、
ユーザのグラフィックアプリケーションプログラムは
「裏ミス」を常に知らないはずである。
ライバは単にユーザのグラフィックアプリケーションプ
ログラムにページ障害を指示するだけである。グラフィ
ックアプリケーションプログラムは次にページに接触し
てこれのあら探しをし、ドライバを呼び出してページを
裏ページテーブルに写像し、DMAを再開する。また、
当業者には明らかであるように、カーネルI/Oドライ
バが代わりにこのステップを行うことができればグラフ
ィックアプリケーションプログラムをページに接触させ
ないようにすることが可能である。一旦裏ページテーブ
ルがグラフィックデータベースの前の横断により「完全
に完成(fleshed out)」してしまっていると、書かれ
ていないページをカーネルI/O ドライバにより「一
束にする(clustered)」ことができる。例えば、ペー
ジ障 害が発生すると、I/Oドライバはユーザのグラ
フィックアプリケーションプログラムに、そのデータが
前の写像を持っているので、グラフィックデータベース
の一部であることがわかっている連続する「N」ページ
に接触するよう指示する(又はこれをそれ自身で行
う)。しかし、グラフィックプロセスはこれをセグメン
ト侵犯の危険なく任意に行うことはできない。
装置32にあるシステムページテーブル33を修正する
必要があるときは、I/Oドライバを呼び出してグラフ
ィックサブシステムにVDMAを停止し、次いでDMA
プロセッサ222のTLBにある裏ページテーブルをパ
ージする指示を出すよう要請しなければならない。I/
Oドライバは次にDMAプロセッサ222の裏ページテ
ーブルの該当するエントリに無効の印を付け、エントリ
についての修正及び参考情報をホストCPU20の仮想
メモリシステムに戻す。I/Oドライバは最後にグラフ
ィックサブシステムに処理を継続するよう指示する。し
かし、プロセスを効果的に動作させるには、現在のグラ
フィックプロセスを制御しているユーザに対する完全な
裏ページテーブルが主記憶装置32に入っているべきで
あるが、当業者には気が付かれるであろうが、裏ページ
テーブルを修正して、完全な裏ページテーブルがアドレ
ス変換については主記憶装置32に残っている必要がな
いようにすることが可能である。
ャッシュされたページテーブルのデータは、ハードウェ
アの一貫性を利用できなければ、裏ページテーブルを修
正する前及び後で共に、ドライバにデータキャッシュを
フラッシングさせることにより主記憶装置32と矛盾し
ないようにしておかなければならない。その上、一度に
一人のユーザしか受け入れられないから、グラフィック
サブシステムはハードウェアによる一つのルーツポイン
タしか支援しないことになる。カーネルドライバはこの
情報を、ロックが新しいグラフィックユーザに与えられ
るとき、グラフィックサブシステムに提供する責任があ
る。ルーツポインタはこうしてDMAプロセッサ222
のDMAメッセージレジスタに書き込むことにより更新
することができる。このような更新指令は特権DMA指
令レジスタからのみ受け入れることができる。
サポートしており、これによりホストCPU20のカー
ネルに保護/ページ/TLBの障害をグラフィック信号
処理器に伝えさせる一つ以上の信号を使用することがで
きる。グラフィックアプリケーションプログラム又はカ
ーネルI/Oドライバは次にレジスタを読み取って障害
の形式を決定することができる。グラフィックアプリケ
ーションプログラムはホストCPU20におけるユーザ
プロセスとして実行されるので、保護障害はグラフィッ
ク信号処理器に当面の該当する形式の処理においてペー
ジに接触させることにより正しいユーザプロセスに基づ
いて発生する可能性がある。後続の保護障害があると、
ページが再写像されてアクセスが可能となり、プロセス
が、場合に応じて、指示されるか消滅する。他方、カー
ネルドライバ自身が正しいユーザプロセスとして実行さ
れることも可能である。これが行われれば、ドライバは
必要なページ(単数又は複数)に接触し、グラフィック
プログラムを実際に呼び出さないで正しい結果を生ず
る。
ックプログラムのドライバに伝え、ドライバが問題のあ
るページに接触しようとすることにより保護障害と同様
の仕方で処理することができる。結果が良ければ、グラ
フィックプログラムはカーネルI/Oドライバに戻り、
ドライバは中止したVDMAプロセスを再開する。ま
た、前のように、このすべてをカーネルI/Oドライバ
の内部で処理することも可能である。
ロセスは次のとおりである。最初に、グラフィックサブ
システムからの割り込みの結果であるカーネルからの信
号を捕らえる。次いでDMA状態レジスタを読み取って
割り込み(即ち、ページ障害)の原因を突き止める。カ
ーネルドライバはこれを読んでこの情報を直接供給する
こともできる。次に、不良になった仮想アドレスを示す
DMA不良アドレスレジスタを読み取り、違反ページに
接触してカーネルにページをロードさせ、写像させる。
最後に、I/Oドライバを呼んで新しいページを裏ペー
ジテーブルに写像し、VDMAを不良アドレスから再開
する。
セスを使用することができる。ただし障害を起こした仮
想アドレスを確認して後、障害を起こしたものと同様の
アクセスを有するページを接触する。障害がページ許可
などを変えて信号処理器によるページの接触が好結果で
あり得るように修復されれば、I/Oドライバを次に呼
び出して新しいページを裏ページに写像し、VDMAを
障害を起こしたアドレスから再開することができる。し
かし、障害が修復されていなければ、接触は不成功で、
カーネルはプロセスを消滅させるか又はプロセスに異な
る信号を送る。他の修復措置も本発明の範囲内で可能で
あるが、特定の障害が修復不能であれば、グラフィック
信号処理器は接触を試みる必要はない。適切な修復処理
を代わりに規定することができる。
アのアクセス権を、ハードウェアを通して変換を得るこ
とにより、テーブルを探索することにより、又はカーネ
ルを呼び出して適切な補正を行うことにより、修復する
ことができる。本発明は従ってDMAを使用して主記憶
装置32にアクセスするグラフィック処理ユニット用遠
隔記憶装置管理ユニットを処理するようにハードウェア
を拡張することも可能である。開示した構成にはDMA
プロセッサ222にTLBミスが生じたとき、ホストC
PU20のカーネルが呼び出されないという利益があ
る。代わり、裏アドレステーブルだけがアクセスされ
る。また、本発明によれば、ページ障害は完全に修復さ
れ、VDMAはカーネルにより再開される。
開始されたとき、カーネルはデータ一貫性の問題に注意
した。一方、本発明のVDMA技法によれば、ユーザが
DMAを開始する。従って、今度は新しい一貫性の問題
が生ずる。即ち、考慮しなければならない二つの形式の
一貫性が存在する。一つはDMAプロセスがそれを用い
て終了するまでデータを変えないようCPUが約束しな
ければならないDMA/CPU一貫性である。他の問題
はキャッシュと主記憶装置32との間のデータの一貫性
である。本発明はまたこれら一貫性の問題を解決する手
段を備えることができる。
クセスできるようにしたままデータ構造に基づいてDM
A動作を行うことは、アプリケーションプログラムがD
MAプロセスを理解し、DMAが完了するまでこのよう
な構造を編集しない責任を受け入れない限り、CPU/
DMAデータ一貫性の問題を解決するためには許容され
ない。従って、ホストCPU20は編集とDMA活動と
の間の同期に責任を持つようにDMAを理解すべきであ
る。多数のアプリケーションプログラムは、直接呼び出
しを行って表示リストを実現するので、この責任を取る
ことができる。従って、仮想DMAをアプリケーション
プログラムからの明白な要求により有効にすることがで
きる。その上、DMAを有効にすることにより、応用コ
ードはDMAを経由してグラフィックプロセスに送られ
るデータを編集する前にDMAと同期しなければならな
い。当業者は従ってアプリケーションプログラムを修正
する方法を知るであろう。
とれておらず、その一方で、DMAの読み取りプロセス
が正しく働くため、キャッシュ内の関連する不正回線
を、上述のようにDMAが許容される前に主記憶装置3
2にフラッシングして戻す必要があり、又はDMAにキ
ャッシュ内の不正データへのアクセスが与えられなけれ
ばならない。また、本発明に従った主記憶装置へのDM
A書き込みに基づき、DMA実行の前後共に、キャッシ
ュがフラッシングされるか、又はDMAが許可されて、
DMA期間中キャッシュ内のすべてのコピーが更新又は
無効にされる。
一貫性は、本発明に従って、ページを逆複写するすべて
のアクセスをスヌープ(詮索)することによって達成す
ることができる。主記憶装置へのDMA書き込みに基づ
き、キャッシュヒットによりキャッシュ回線が無効にな
る。他方、主記憶装置32からのDMA読み出しに基づ
き、不正キャッシュヒットによりキャッシュが主記憶装
置32の代わりにデータを供給する。しかし、スヌーピ
ング(詮索)は一般にCPUアクセスとVDMAアクセ
スとの双方の速さを減ずるので、書き通しページ及び明
白なフラッシングの使用により可能な場合にはスヌーピ
ングを回避すべきである。スヌーピングは、DMAの開
始が書き込みバッファがフラッシングされてから発生す
ることが保証されている限り既に主記憶装置32の中に
ある書き通しページ内の不正データを使用して回避する
ことができる。というのは書き通しページからのVDM
A読み出しはスヌープされる必要はないからである。対
称的に、書き通しページへのVDMA書き込みはすべて
のキャッシュ複写が更新されるか無効にされるかするよ
うにスヌープされなければならない。キャッシュの一貫
性はこのようにユーザレベルのコードには見えないよう
にすることができる。スヌーピング又はユーザ制御のフ
ラッシングを使用するかしないかは当業者の自由裁量に
まかすことができる。
して読み取られるデータはすべて書き通しページから読
み取ることができるので、キャッシュをスヌープさせる
必要はない。ユーザはアプリケーションプログラムはそ
れ故すべての表示リストデータを書き通しページに配分
する。一方、カーネルドライバは、直接呼出しモードの
期間中VDMAが有効であるときユーザのページを書き
通しにするようプログラムすることができる。例えば、
DMAを使用可能にするユーザ指令はカーネルにアプリ
ケーションプログラムのページの全部又は一部を書き通
しに変換させることができる。加えて、裏ページテーブ
ルはどのページにグラフィックプロセスがアクセスしよ
うとしているかの記録であるから、使用中のこれらペー
ジだけをグラフィックプロセスにより変換することが可
能であり、これにより処理時間が更に減少する。
Aホストインタフェース22は逆複写ページへのすべて
のバーストアクセスに関してスヌーピングを支援するこ
とができるので、ユーザがDMAを有効にすることしか
行わない場合にも、インタフェース22はキャッシュを
フラッシングすることなく動作する。また裏ページテー
ブルは、アクセス前にカーネルによりパージされている
書き通しページに好適に保持されているので、グラフィ
ックプログラムの参照ビット及び修正ビットの更新をス
ヌープさせる必要はない。その他、主記憶装置32への
DMA書き込みは、DMAの終了後常にパージされてい
る書き通しページで可能である。これには、ユーザレベ
ルコードに新しいカーネル捕捉を与えてデータキャッシ
ュをパージ可能にする必要がある。
ずる可能性のあるデータ一貫性の問題を克服するには、
ホストCPU20が以下のステップを実施するのが好適
である。先ず、完了後であるがスワッピングされる前
に、すべての作業バッファ35が、アプリケーションプ
ログラムにより主記憶装置32に明白にフラッシングさ
れることになる。次に、すべての表示リスト要素も、編
集後であるがVDMAが許可される前に、アプリケーシ
ョンプログラムにより主記憶装置32に明白にフラッシ
ングされるべきである。その他に、アクセスされる前及
び後に、裏ページテーブルのエントリが、カーネルI/
Oドライバにより主記憶装置32に明白にフラッシング
されるべきである。また、フレームバッファのブロック
読み出しを実行する前及び後に、受信バッファが、アプ
リケーションプログラムにより主記憶装置32にフラッ
シングされなければならない。その上、フレームバッフ
ァのブロック書き込みを実行する前に、ソースバッファ
が、アプリケーションプログラムにより主記憶装置32
にフラッシングされ、VDMAが直接呼び出しに対して
有効になった後、ユーザのデータキャッシュも、アプリ
ケーションプログラムにより主記憶装置32にフラッシ
ングされるべきである。
ス22はグラフィックサブシステムのような外部プロセ
スに記憶装置から直接データにアクセスさせる。これに
より、データが主記憶装置32からホストCPU20
に、次いでグラフィックサブシステムに移動する代わり
にグラフィックサブシステムに真っ直ぐに進行するので
バスの所要帯域幅が減少する。その結果、ホストCPU
20はルーチンデータ複写を行うその貴重な計算時間を
もはや消費する必要がないので、一層実作業が行われ、
メモリバスの利用が向上する。本発明にはまたホストユ
ーザのレベルのソフトウェアがカーネルサービスを呼び
出すサブルーチンを行わずに仮想アドレスを使用して記
憶装置に直接アクセスを開始することができるという利
益がある。このようなカーネル呼び出しは極めて時間の
かかるものであり、本発明に従ってこのようなカーネル
呼び出しの必要性を排除することによって、正常のDM
A手法を今や本発明に従ってグラフィック要素のアクセ
スに適用することができる。DMAプロセッサ22も完
全な表示リスト横断機能を実行する必要がなく、それ
故、本発明のハードウェアをはるかに廉価にすることが
でき、支援ソフトウェアを表示リスト横断プロセッサを
使用する構成よりはるかに簡単にすることができる。そ
の上、本発明によれば通常のページスワッピング及び他
の仮想メモリ機能及び保護を保持することができる。
詳細に説明してきたが、当業者は、本発明の新規な教示
及び長所から著しく逸脱することなく多数の他の修正案
が模範的実施例に可能であることを容易に認めるであろ
う。例えば、本発明に従って使用した同じ仮想メモリ技
法を記述のようにグラフィックサブシステムではなく外
部網接続サブシステムに使用することができる。ユーザ
が主記憶装置内のデータにメモリアクセスごとにオペレ
ーティングシステムを中断することなく直接アクセスで
きることが望ましい他のどんなサブシステムをも使用す
ることができる。従って、このような修正案はすべて付
記する特許請求の範囲に規定する本発明の範囲内に含め
るつもりである。
サの概略図である。
ースにより接続された、ホストシステム及びグラフィッ
ク処理システムの概念的ブロック図である。
ストシステムをインタフェースするためのユーザ計画直
接メモリアクセスシステムの概略図である。
Claims (9)
- 【請求項1】個々のメモリ転送処理の間、直接的なホス
トオペレーティングシステムの制御を必要とせずに、ユ
ーザ指令に応答して、主記憶装置を有するユーザのホス
トシステムと外部データ処理システムとの間において、
データ処理指令に関連するデータを直接転送するための
インタフェース装置であって、 前記データ処理指令及びこれに関連するデータを、前記
データ処理指令及び前記ユーザのホストシステムの仮想
メモリ空間における前記データ処理指令に関連するデー
タへの仮想ポインタを含む指令/ポインタパケットとし
て表現する表現手段と、 前記指令/ポインタパケットの前記仮想ポインタを、前
記データ処理指令に関連するデータが位置する前記主記
憶装置内の物理的アドレスを識別する物理ポインタへ直
接変換するための、前記仮想メモリ空間に接続された前
記インタフェース装置上の変換手段と、 前記主記憶装置の前記物理アドレスから、及び、前記主
記憶装置の前記物理アドレスへ前記データ処理指令に関
連するデータを転送するための、前記インタフェース装
置上の転送手段と、 からなるインタフェース装置。 - 【請求項2】個々のメモリ転送処理の間、直接的なホス
トオペレーティングシステムの制御を必要とせずに、ユ
ーザ指令に応答して、主記憶装置を有するユーザのホス
トシステムとグラフィックサブシステムとの間におい
て、グラフィック指令に関連するグラフィック要素を直
接転送するためのインタフェース装置であって、 前記グラフィック指令及び前記グラフィック要素を、前
記グラフィック指令及び、前記ユーザのホストシステム
の仮想メモリ空間における前記グラフィック要素への仮
想ポインタを含む指令/ポインタパケットとして表現す
る表現手段と、 前記仮想ポインタを、前記グラフィック要素が位置する
前記主記憶装置内の物理的アドレスを識別する物理ポイ
ンタへ直接変換するための、前記仮想メモリ空間に接続
された前記インタフェース装置上の変換手段と、 前記主記憶装置の前記物理アドレスから、及び前記主記
憶装置の前記物理アドレスへ前記グラフィック要素を転
送するための、前記インタフェース上の転送手段と、 からなるインタフェース装置。 - 【請求項3】前記表現手段は、前記ユーザのホストシス
テム上で動作するユーザアプリケーションプログラムか
らなり、前記変換手段は、前記ユーザのホストシステム
のプロセッサ主導型オペレーティングシステムにより更
新される少なくとも1つの裏ページテーブルへのアクセ
ス権を有するDMAプロセッサからなり、前記少なくと
も1つの裏ページテーブルは、前記仮想ポインタに対応
する物理ポインタを保持する、請求項2のインタフェー
ス装置。 - 【請求項4】前記DMAプロセッサは、前記ホストシス
テムのユーザ制御プロセスのそれぞれに対して、ユーザ
特権の裏ページテーブルを有する、請求項3のインタフ
ェース装置。 - 【請求項5】前記DMAプロセッサは、前記DMAプロ
セッサによる前記裏ページテーブルへのアクセスの間に
見つかった変換を記憶するための変換ルックアサイド・
バッファを有する、請求項4のインタフェース装置。 - 【請求項6】前記インタフェース装置は、データを記憶
するための追加的なデータ記憶手段をさらに含み、要求
された変換が前記裏ページテーブルに存在しないことを
示す指示を前記変換手段が受信した場合、前記DMAプ
ロセッサは、前記プロセッサ主導型オペレーティングシ
ステムに割り込みをかけ、前記プロセッサ主導型オペレ
ーティングシステムが、前記追加的なデータ記憶手段と
前記メモリとの間において前記グラフィック要素を配置
及びスワッピングする障害アルゴリズムを実行し、前記
要求された変換を生成し、前記要求された変換を前記裏
ページテーブル内へ配置できるようにする、請求項5の
インタフェース装置。 - 【請求項7】前記裏ページテーブルにおける仮想ポイン
タから物理ポインタへの前記グラフィック指令に関連す
るグラフィック要素の変換は、前記主記憶装置において
前記グラフィック指令に関連するグラフィック要素へア
クセスするのに必要な変換が前記裏ページテーブルに存
在しないことを示す前記DMAプロセッサからの指示に
応答して作成及び更新される、請求項4のインタフェー
ス装置。 - 【請求項8】前記主記憶装置におけるデータの一貫性を
保つように、前記ユーザのホストシステムによる前記主
記憶装置内の前記裏ページテーブル及びユーザの仮想メ
モリ空間への読み出し及び書き込みを、前記転送手段に
よる前記主記憶装置内の前記裏ページテーブル及びユー
ザの仮想メモリ空間への読み出し及び書き込みに同期さ
せるための同期化手段をさらに有する、請求項7のイン
タフェース装置。 - 【請求項9】個々のメモリ転送処理の間、直接的なホス
トオペレーティングシステムの制御を必要とせずに、ユ
ーザの複数のデータ処理指令に応答して、外部データ処
理システムからユーザのホストシステムの主記憶装置に
記憶されたデータへの直接メモリアクセスを行うための
方法であって、 前記ユーザのデータ処理指令及びこれに関連するデータ
のそれぞれを、前記ユーザのホストシステムの前記ユー
ザの仮想メモリ空間における前記データ処理指令に関連
するデータへの仮想ポインタを含む指令/ポインタパケ
ットとして表現するステップと、インタフェース装置により 、前記仮想ポインタを前記デ
ータ処理指令に関連するデータが位置する前記主記憶装
置内の物理的なアドレスを識別する物理ポインタへ直接
変換するステップと、前記主記憶装置へのデータの転送及び前記主記憶装置か
らのデータの転送のため 、前記インタフェース装置によ
り、前記主記憶装置の前記物理ポインタによって識別さ
れる前記物理アドレスをアクセスするステップと、 からなる方法。
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 (175)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE68928782T2 (de) * | 1988-12-14 | 1998-12-24 | Sony Corp., Tokio/Tokyo | Datenverwaltungssystem |
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 |
DE69429503T2 (de) * | 1994-03-24 | 2002-05-16 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Übersetzungsmechanismus für Ein-/Ausgabeadressen |
US5535352A (en) * | 1994-03-24 | 1996-07-09 | Hewlett-Packard Company | Access hints for input/output address translation mechanisms |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
EP0862118B1 (en) * | 1997-01-09 | 2004-02-04 | Hewlett-Packard Company, A Delaware Corporation | Computer system comprising a memory controller for burst transfer |
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 |
EP1080413A4 (en) * | 1998-05-12 | 2006-02-01 | S3 Graphics Co Ltd | METHOD AND APPARATUS FOR PROGRAMMING A SET OF REGISTERS IN A GRAPHIC PROCESSOR |
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 |
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 |
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 |
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 |
US6954923B1 (en) | 1999-01-28 | 2005-10-11 | Ati International Srl | Recording classification of instructions executed by a computer |
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 |
US7013456B1 (en) | 1999-01-28 | 2006-03-14 | Ati International Srl | Profiling execution of computer programs |
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 |
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 |
US6826748B1 (en) | 1999-01-28 | 2004-11-30 | Ati International Srl | Profiling program execution into registers of a computer |
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 |
IL132916A (en) | 1999-11-14 | 2004-02-08 | Mcafee Inc | Method and system for intercepting an application program interface |
IL132915A (en) | 1999-11-14 | 2004-05-12 | Networks Assoc Tech Inc | Method for secure function execution by calling address validation |
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 |
US6834295B2 (en) | 2000-02-24 | 2004-12-21 | Pts Corporation | 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 |
GB2369694B (en) * | 2000-11-29 | 2002-10-16 | Sun Microsystems Inc | Efficient memory modification tracking |
GB2369690B (en) * | 2000-11-29 | 2002-10-16 | Sun Microsystems Inc | Enhanced protection for 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 |
CA2466107C (en) | 2001-11-01 | 2013-01-08 | Verisign, Inc. | Transactional memory manager |
US6854025B2 (en) * | 2002-07-08 | 2005-02-08 | 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 |
CA2478274C (en) | 2003-08-19 | 2015-12-08 | 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 |
US7953980B2 (en) | 2005-06-30 | 2011-05-31 | Intel Corporation | Signed manifest for run-time verification of software program identity and integrity |
US7571298B2 (en) * | 2005-06-30 | 2009-08-04 | Intel Corporation | Systems and methods for host virtual memory reconstitution |
US8839450B2 (en) | 2007-08-02 | 2014-09-16 | Intel Corporation | Secure vault service for software components within an execution environment |
US20070005930A1 (en) * | 2005-06-30 | 2007-01-04 | Khosravi Hormuzd M | 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 |
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 |
US7793067B2 (en) * | 2005-08-12 | 2010-09-07 | Globalfoundries Inc. | Translation data prefetch in an 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 |
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) |
US7543131B2 (en) | 2005-08-12 | 2009-06-02 | Advanced Micro Devices, Inc. | Controlling an I/O MMU |
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 |
US7613898B2 (en) * | 2006-01-17 | 2009-11-03 | Globalfoundries Inc. | Virtualizing an IOMMU |
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 |
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 |
KR101519151B1 (ko) * | 2006-04-13 | 2015-05-11 | 써티콤 코포레이션 | 전자 통신에서 적응적 보안 레벨을 제공하는 방법 및 장치 |
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 |
US7802050B2 (en) * | 2006-09-29 | 2010-09-21 | Intel Corporation | Monitoring a target agent execution pattern on a VT-enabled system |
US7882318B2 (en) * | 2006-09-29 | 2011-02-01 | Intel Corporation | Tamper protection of software agents operating in a vitual technology environment methods and apparatuses |
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 |
US8495301B1 (en) | 2007-11-23 | 2013-07-23 | Pmc-Sierra Us, Inc. | System and method for scatter gather cache processing |
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 |
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 |
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 |
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 |
US9665468B2 (en) | 2013-08-19 | 2017-05-30 | Intel Corporation | Systems and methods for invasive debug of a processor without processor execution of instructions |
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 |
US10963396B1 (en) * | 2019-09-17 | 2021-03-30 | Micron Technology, Inc. | Memory system for binding data to a memory namespace |
US11650742B2 (en) | 2019-09-17 | 2023-05-16 | Micron Technology, Inc. | Accessing stored metadata to identify memory devices in which data is stored |
US11494311B2 (en) | 2019-09-17 | 2022-11-08 | Micron Technology, Inc. | Page table hooks to memory types |
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 |
US20240248863A1 (en) * | 2023-01-19 | 2024-07-25 | SambaNova Systems, Inc. | Method and apparatus for data transfer between accessible memories of multiple processors in a heterogeneous processing system using one memory to memory transfer operation |
CN117851290B (zh) * | 2024-03-07 | 2024-06-21 | 北京象帝先计算技术有限公司 | 页表管理方法、系统、电子组件及电子设备 |
Family Cites Families (14)
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 |
JPS58501602A (ja) * | 1981-09-18 | 1983-09-22 | クリスチャン ロプシング エ−・エス | マルチプロセッサ・コンピュ−タシステム |
WO1984002784A1 (en) * | 1982-12-30 | 1984-07-19 | Ibm | Virtual memory address translation mechanism with controlled data persistence |
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 |
-
1991
- 1991-03-11 JP JP04480891A patent/JP3369580B2/ja not_active Expired - Lifetime
- 1991-03-11 DE DE69132300T patent/DE69132300T2/de not_active Expired - Lifetime
- 1991-03-11 EP EP91301982A patent/EP0447145B1/en not_active Expired - Lifetime
-
1993
- 1993-02-16 US US08/018,479 patent/US5301287A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0447145A2 (en) | 1991-09-18 |
US5301287A (en) | 1994-04-05 |
JPH04219852A (ja) | 1992-08-10 |
DE69132300T2 (de) | 2000-11-30 |
EP0447145A3 (en) | 1993-10-27 |
EP0447145B1 (en) | 2000-07-12 |
DE69132300D1 (de) | 2000-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3369580B2 (ja) | 直接メモリアクセスを行うためのインターフェース装置及び方法 | |
JP3272370B2 (ja) | 作業バッファポインタを用いたユーザスケジュール式直接メモリアクセス方法及びその装置 | |
JP3264319B2 (ja) | バスブリッジ | |
US8037281B2 (en) | Miss-under-miss processing and cache flushing | |
US7680987B1 (en) | Sub-page-granular cache coherency using shared virtual memory mechanism | |
JP3281893B2 (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
KR100190350B1 (ko) | 고성능 프레임 버퍼 및 캐쉬메모리 시스템 | |
US6711650B1 (en) | Method and apparatus for accelerating input/output processing using cache injections | |
EP0674267A2 (en) | Sub-line cache coherent DMA write transactions | |
US6772298B2 (en) | Method and apparatus for invalidating a cache line without data return in a multi-node architecture | |
US7234038B1 (en) | Page mapping cookies | |
JPH077360B2 (ja) | キヤツシユメモリを具えた情報処理装置 | |
JPH0997214A (ja) | 補助プロセッサのためのアドレス変換を含む情報処理システム | |
JPH09114665A (ja) | 記憶装置と補助プロセッサ間のコマンド及びデータ転送方法及び情報処理システム | |
US7093080B2 (en) | Method and apparatus for coherent memory structure of heterogeneous processor systems | |
US7721023B2 (en) | I/O address translation method for specifying a relaxed ordering for I/O accesses | |
US6889296B2 (en) | Memory management method for preventing an operating system from writing into user memory space | |
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) | 論理アドレスキャッシュ制御方式 | |
US20240354257A1 (en) | Memory Migration and Page Fault Avoidance | |
JP2637853B2 (ja) | キャッシュメモリ装置 | |
CN118689784A (zh) | 地址转换方法、装置、电子设备和计算机程序产品 |
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 |