JPH04219852A - 直接メモリアクセスを行うためのインターフェース装置及び方法 - Google Patents
直接メモリアクセスを行うためのインターフェース装置及び方法Info
- Publication number
- JPH04219852A JPH04219852A JP3044808A JP4480891A JPH04219852A JP H04219852 A JPH04219852 A JP H04219852A JP 3044808 A JP3044808 A JP 3044808A JP 4480891 A JP4480891 A JP 4480891A JP H04219852 A JPH04219852 A JP H04219852A
- Authority
- JP
- Japan
- Prior art keywords
- dma
- data
- processor
- user
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
Abstract
め要約のデータは記録されません。
Description
憶装置に格納されているデータに外部データ処理システ
ムにより直接アクセスする方法及び装置に関するもので
あり、更に詳細には、図形サブシステムのような外部デ
ータ処理システムにより、ユーザが指定した仮想メモリ
空間の記憶場所にあるホストシステムの主記憶装置の内
容をユーザの制御のもとで外部データ処理システムに転
送することによりホストシステムの仮想記憶装置に直接
メモリアクセスを行う方法及び装置に関する。
外部データプロセッサとの間のデータ転送は、ホストプ
ロセッサで実行されるプログラムの直接制御のもとに入
出力(I/O)付属装置を介して行われる。典型的には
、データの各バイト又はワードを転送するには幾つかの
指令を実行する必要がある。しかし、I/O装置の中に
はこの技法で達成し得るより大きいデータ転送速度を必
要とするものがある。このような装置については、I/
O付属装置は直接メモリアクセス(DMA)として知ら
れているデータ転送プロセスを使用することができる。 DMAはホストプロセッサで指令の実行を行う必要なし
にホストプロセッサの記憶装置とI/O付属装置との間
でデータの直接転送を可能とする。特に、DMAの期間
中、ホストプロセッサは先づ、カウントと開始メモリア
ドレスとをそのレジスタに格納することによりDMA制
御器の回路を初期設定する。一旦始動すると、DMAは
それ以上ホストプロセッサの介在なしに進行し(ただし
DMA動作が完了すると割込みが発生することがある)
、従ってデータの転送はホストプロセッサでそれ以上指
令を実行する必要なしに処理される。
属装置は既知であり、一般に図1に示す形式の回路を組
込んでいる。図1のDMA制御器のホストプロセッサは
アドレスカウンタ10及びカウンタレジスタ12を設定
する。信号バスサイクルはバスによりアドレスが提示さ
れ、データが交換される期間を規定する責務を持つ。D
MA制御器はまたI/O付属装置に「転送要求」及び「
要求許可」の線路を接続する。動作中、I/O付属装置
がバスサイクルを使用したいときは、転送要求線の電圧
を上げる。DMAカウントレジスタ12がゼロでなけれ
ば、信号をホストプロセッサに対するバス要求線に載せ
る。ホストプロセッサのハードウェアはこの信号を定期
的に調べ、その信号が高論理レベルのものであると、ホ
ストプロセッサは現在のバスサイクルの終りまで待ち、
それ以上のバス活動を停止し、そのアドレス及びデータ
線駆動器を高インピーダンス状態にし、バス許可線の電
圧を上げる。ホストプロセッサはこのようにしてDMA
制御器に対して許可されたバスサイクルの期間中バスか
ら効果的に分離される。バス許可線の高論理レベルがD
MA制御器により検知されると、DMA制御器はそのア
ドレスカウンタレジスタ10の内容をアドレス線に載せ
、要求許可線を通してI/O付属装置にデータの転送に
現在のバスサイクルを使用できることを知らせる。 I/O付属装置自身はこのようにしてデータ転送の方向
を決めるバスを駆動することができ、又はDMA制御器
の別の回路がこれらの線を駆動することができる。転送
要求が高論理レベルに保持されている限り、連続バスサ
イクルをI/O付属装置が使用することができる。この
ような手法は「サイクルスティール」として知られてい
る。
クルを使用することができ(「バーストモード」)、又
はバスサイクルを間欠的に使用することができる。この
選択はI/O付属装置のデータ転送速度によって決まる
。事実、ホストシステムのプロセッサはバス許可を発生
することによりバスを放棄する準備に幾つかのバスサイ
クルを使用しなければならないこと、及びバスを再び獲
得してから幾つかのバスサイクルを使用しなければなら
ないことが屡々ある。これらのサイクルは指令実行又は
データ転送に寄与しないという点で非生産的である。 それ故、連続バスサイクルを利用するDMA転送はバス
を一層効率良く活用するものである。
に転送するときホストプロセッサにかかる負担を減らす
ために、DMAを使用してホストシステムの主記憶装置
からデータを取出し、これを別の処理指令を必要とせず
に外部データ処理システムに伝えることが知られている
。しかし、このような従来技術のDMA手法は多数ユー
ザのメモリ空間の完全性を保証するのにホストプロセッ
サの核ソフトウェアによって開始されるのが一般的で、
ホストシステムで動作するユーザコードにより開始され
るのではなかった。その結果、ホストシステムのユーザ
アプリケーションプログラムが、従来の図形処理又はネ
ットワーキングシステムのような大きなデータブロック
の処理を必要とするとき、ユーザの計画によるDMAは
不可能であった。どちらかと言えば、ホストシステムの
主記憶装置へのアクセスはホストプロセッサによるシス
テムソフトウェア(又は核)制御を通してのみ行われる
のが一般的であり、このためシステムの全体のデータ転
送時間がかなりのろくなりユーザプログラミングが複雑
になっていた。従って、これまでは図形又は他のこのよ
うな複雑なデータプロファイルのリアルタイム操作をD
MAインターフェイスを介してユーザ指導のもとに行う
ことは極めて困難であった。
ストシステムの主記憶装置にあるデータにユーザ制御の
もとにアクセスし、これにより外部プロセス又は外部処
理システムへのデータ転送に必要な時間を、システムの
保証を失うことなくリアルタイムのデータ操作ができる
ようにかなり減らすことができる外部プロセスを可能と
するプロセス及び装置の必要性が長い間痛感されている
。本発明はこの目的のために企画されている。
必要性は、ホストシステムからの指令を仮想メモリ空間
で翻訳し、仮想アドレスを物理的アドレスに変換し、主
システム記憶装置からデータブロックを核ソフトウェア
の要求でではなく、ユーザの要求で取出す知能的直接メ
モリアクセス(DMA)制御器に関する本発明により満
たされる。これにより多数ユーザシステムでのアクセス
の保証を維持しながら、核の要求ではなくユーザの要求
で、急速データアクセスを行うことができる。
データを主記憶装置を備えているユーザのホストシステ
ムと外部データ処理システムとの間で転送するインタフ
ェース装置が設けられている。本発明によるインタフェ
ース装置は、データ処理指令及び関連データをデータ処
理指令及びユーザのホストシステムの仮想メモリ空間に
ある関連データを指す仮想ポインタから成るそれぞれの
指令/ポインタパケットとして表わす手段を備えている
。指令/ポインタパケットの仮想ポインタは関連データ
が収められている主記憶装置内部の物理的アドレスを識
別する目的で変換手段により物理的ポインタに変換され
るので関連データを主記憶装置内の物理的アドレスに対
して読取及び書込手段により読み書きすることができる
。このような直接メモリアクセスシステムは好適にはユ
ーザのホストシステムに接続されている図形サブシステ
ムと関連して使用され、これによりデータ処理指令が図
形指令になり、関連データは図形プリミティブデータを
備えている。しかし、外部データ処理システムを通信回
路網、又は直接メモリアクセスを必要とする他の幾つか
のこのようなシステムとすることができる。
プロセッサで行うことができ、一方変換手段の機能を、
ホストプロセッサにより指令/ポインタパケットの仮想
ポインタに対応する現在の物理的ポインタを入れるよう
にする更新される少くとも一つの陰のページテーブル(
Shadow page table)を備えたDMA
プロセッサにより行うことができる。好適には、陰のペ
ージテーブルはホストシステムのユーザ制御プロセスご
とに設けられ、各陰のページテーブルはユーザに特権と
して付与される。陰のページテーブルの中の欠けている
ページはホストプロセッサにその核ソフトウェアが欠け
ているページを外部記憶装置から入れ換えることができ
るように割込むことにより更新することができる。また
、好適実施例では、本発明のインタフェース装置はホス
トシステムの処理を主記憶装置のDMA読み書きアクセ
スと同期させる同期化手段を備えている。更に、データ
一貫性技法がホストシステムにより好適に行われ、主記
憶装置が前のアクセス後更新され終る前にデータアクセ
スされることがないようにしている。
ス装置が主記憶装置を備えているユーザのホストシステ
ムと図形サブシステムとの間で図形指令及び図形プリミ
ティブを転送するように設けられている。このインタフ
ェース装置は、図形指令及び図形プリミティブを図形指
令及びユーザのホストシステムの仮想メモリ空間にある
図形プリミティブデータを指す仮想ポインタから成るそ
れぞれの指令/ポインタパケットとして表わす手段を使
用することにより指令/ポインタプロトコルを好適に利
用している。この指令/ポインタプロトコルに関連して
、仮想ポインタを主記憶装置内の図形プリミティブが収
容されている物理的アドレスを識別する物理的ポインタ
に変換する手段が設けられている。好適には、変換手段
はユーザのホストシステムの各ユーザ制御プロセスに対
する陰のページテーブルを備えたDMAプロセッサを備
えており、各陰のページテーブルは、仮想ポインタに対
応する現在の物理的ポインタを入れるように、図形プリ
ミティブが主記憶装置に入っていないことの指示に応じ
て、ユーザのホストシステムのプロセッサ駆動動作シス
テムにより更新される。変換手段は更に、指令/ポイン
タパケットを順次格納し、DMAプロセッサに応じてD
MAプロセッサ及びDMA状態手段により分析して主記
憶装置の物理的アドレスから図形プリミティブの読み書
きを開始する指令/ポインタパケットバッファを備えて
いる。同期化手段はDMA状態手段により開始される読
み書きにユーザのホストシステムを同期させることもで
きる。
応じてユーザのホストシステムの主記憶装置に格納され
ているデータに外部データ処理システムにより直接メモ
リアクセスを行う方法をも含んでいる。この方法は一般
に、ユーザによりユーザのデータ処理指令で要求された
外部データ処理システムによるすべての直接メモリアク
セスを予備承認する段階、各ユーザプロセスに対して、
ユーザのデータ処理指令及びユーザのデータ処理指令の
処理に使用するため主記憶装置内のデータを指すユーザ
のホストシステムの仮想メモリ空間にある仮想ポインタ
から成る一連の指令/ポインタパケットを組立てる段階
、各指令/ポインタパケットを分析してユーザのデータ
処理指令及び仮想ポインタを得る段階、ユーザのデータ
処理指令を外部データ処理システムの入力に書込む段階
、仮想ポインタを主記憶装置内の実際のメモリ位置を指
す対応する物理的ポインタに変換する段階、データの長
さを識別するワードカウントを決定する段階、及びワー
ドカウントに対応するデータの多数のワードを外部デー
タ処理システムの入力に移す、物理的ポインタにより識
別される主記憶装置内のアドレスから開始される、デー
タ転送段階、から構成される。
ムによる処理をデータ転送段階に同期させて「汚れた」
記憶装置にDMAしようとすることのないようにする段
階を設けることもできる。データ一貫性の問題もデータ
転送しようとする前にすべての表示リスト要素ばかりで
なくユーザのデータキャッシュをも主記憶装置にフラッ
シングすることにより防止される。また、主記憶装置へ
のすべての陰のページテーブルを仮想対物理的ポインタ
変換の前及び後にフラッシングすることができるが、こ
の変換は、変換ルックアサイドバッファのテーブル調査
を行ってユーザの各データ処理指令に関連するデータの
物理的アドレスを見つける段階、変換ルックアサイドバ
ッファに物理的アドレスが入っていないとき、陰のペー
ジテーブルを探す段階、物理的アドレスが陰のページテ
ーブルで見つかったら、対応する仮想対物理的変換を変
換ルックアサイドバッファに追加する段階、物理アドレ
スをDMA状態装置のアドレスレジスタに書込む段階、
及びテーブル調査段階を繰返す段階、から構成される。
障害が生じたら、変換段階を中止し、割込をユーザのホ
ストシステムに伝えてページスワッピング又は或る他の
救済動作を行うことができるようにする。その上、この
処理は任務交換の必要なしにホストプロセッサにより行
われ、これにより本発明のシステムの応答時間がかなり
向上する。このようにして、仮想メモリシステムの特性
が本発明に従って維持され、一方核制御の無いユーザ計
画DMAの処理効率の向上も可能になる。
の発明者は、当業界で長い間痛感されていた上述の必要
性を、図形サブシステムのような外部データ処理システ
ムに、各メモリアクセスを開始し制御するのに核を必要
とせずにユーザの制御のもとでホストシステムの主記憶
装置から直接データにアクセスさせるホストインタフェ
ースプロセス及び装置を開発することにより満たしてい
る。
ーザの指令に応じてホストシステムの主記憶装置から外
部データ処理システムに対して直接データを転送するこ
とができ、これによりインタフェースの所要帯域幅が減
少する。その結果、ホストプロセッサはもはやルーチン
データの複写を行う貴重な計算時間を消費する必要がな
い。また、ホストのユーザレベルのソフトウェアは仮想
アドレスを使用して記憶装置への直接アクセスを開始す
ることができるので、核サービスに対するサブルーチン
呼出しは不要である。更に、上述の事項は本発明にれば
伝統的なページスワッピング及び仮想記憶装置の機能及
び保護という利益を失うことなく行われる。
これらの及び他の有利な特徴について図2及び図3を参
照して説明することにする。
システム及びホストシステムの図形サブシステムに関連
して説明されるが、当業者には本発明を他の環境にも同
様に良く使用することができることが認められるであろ
う。その上、ここに示した説明は例示目的のみのもので
あり、どんな仕方でも本発明の範囲を限定しようとする
ものではない。本発明の範囲に関する疑問はすべて付記
した特許請求の範囲を参照することにより解決すること
ができる。
ースにより図形サブシステムに接続されたホスト処理シ
ステムを示す。図示のように、処理システムはシステム
I/Oバス21を経由して接続されているホストプロセ
ッサ20及び図形変形エンジン24とのVDMAホスト
インタフェース22を備えている。変形エンジン24の
出力は図形描写回路26へ、次いでフレームバッファ2
8へ出力される。フレームバッファ28の出力は、たと
えば、ラスタ表示装置30により受取られ、CRT画面
に出力される。以下に詳細に説明するように、本発明は
特に、図2のホストインタフェース回路22及びホスト
インタフェース回路22により行われ、ホストプロセッ
サ20の主記憶装置と変形エンジン24、描写回路26
、フレームバッファ28、及びラスタ表示装置30から
成る図形サブシステムとの間でホストプロセッサ20の
ソフトウェアプログラム(又は核)の介在なしで直接デ
ータを転送できるうようにする直接メモリアクセス(D
MA)プロセスを目指している。
のユーザ入力に応答させるには、ユーザ入力を実際のメ
モリアドレスを直接参照する(アセンブリ言語のような
)低レベル言語で行わなければならないか、又は通常よ
くある場合のように、ユーザ入力をユーザのメモリ空間
(今後「仮想メモリ」空間と言う)にあるアドレスから
物理的メモリアドレスに変換しなければならない。この
ような仮想メモリシステムは周知であり、このような形
式のシステムはプロセスのアドレス空間(すなわち、基
準指令、データなどを発生するアドレス)が物理的アド
レス空間(すなわち、実行中にプロセスにより実際に占
有されるようなマシンアドレス)と同一でなければ仮想
記憶装置を備えていると言われる。それ故実行時間変換
はプロセスの仮想アドレス空間からホストシステムの主
記憶装置の物理的アドレス空間へ行わなければならない
。これは典型的には特別に作られた仮想メモリハードウ
ェアの補助により行われる。それはホストシステムのユ
ーザがDMAが本発明に従って実施されるその図形処理
要求を行うこのような仮想メモリ空間に入っている。
るように仮想メモリを実現するのに写像機構が使用され
る。ページング、区分化、及びこの二つの組合せは動的
仮想メモリを作る三つの普通の機構である。本発明の装
置はこれら写像機構のどれとでも関連して使用すること
を目的としており、本発明によるユーザ計画DMAプロ
セスを実施する目的でこのようなシステムに対する修正
例を以下に更に詳細に説明することにする。
を示す。図示のように、本発明の図示した実施例のシス
テムはホスト中央プロセッサ(CPU)20を図形プロ
セッサ(図示せず)にシステムI/Oバス21により接
続している。ホストCPU20は一般に処理機能及びソ
フトウェア駆動メモリアクセスを行う動作システム(又
は核)201を備えている。ホストCPU20はそれぞ
れ要素202及び203として示したグラフィックプロ
セス1及び2のような一つ以上のユーザアプリケーショ
ンプログラムを実行する。ホストCPU20の各ユーザ
は自分自身の仮想メモリ空間で動作するので、メモリ写
像は動作システム201及びグラフィックプロセス1及
び2により出力された仮想アドレスを物理的アドレスに
それぞれ変換する仮想対物理的変換器204、205、
及び206により行われる。変換された物理的アドレス
は次にホストCPU20に関連する主(物理的)記憶装
置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又はVDMAホスト
インタフェース22との間のデータの転送をも統合する
。特に、バスインタフェースバッファ37は、外部記憶
装置(交換ディスク)38とのページスワッピング中及
び本発明によるVDMAホストインタフェース22との
DMAデータ転送中にシステムメモリバス31をシステ
ムI/Oバス21と連結するように働く。
明によるシステムI/Oバス21を通してホストCPU
20から受取った一連の指令/ポインタワードを格納す
る指令/ポインタ(C/P)待行列又はFIFO221
を備えている。受取った指令/ポインタワードは次にD
MAプロセッサ222により分析され、仮想ポインタは
本発明によるDMAを使用して主記憶装置32にアクセ
スするため物理的ポインタに変換される。この目的で、
DMAプロセッサ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活動をここでは仮想D
MA、又は簡単にVDMAと言う。しかし、物理的アド
レスだけがシステムI/Oバス21に現われるので、V
DMAという用語はDMAに対するアドレスの元来の源
が仮想アドレスであったことを示すのに実際には有用で
あるに過ぎない。本発明のVDMAホストインタフェー
ス22は仮想アドレスを、ポインタの参照を解除するこ
とができる前に物理的アドレスに変換又は写像しなけれ
ばならない。従って、VDMAは従来技術の図1を参照
して説明したようなバスサイクルの特別な形式ではない
。
のように動作する。最初に、ホストCPU20は特定の
目的のためVDMAインタフェース22によりすべての
DMAに総括的承認を与え、これによりDMAが行われ
るごとに核の呼出しを必要とすることが無くなる。ホス
トCPU20のユーザ応用ソフトウェア(すなわち、グ
ラフィックプロセス1又は2)は次に各グラフィックプ
ロセスに対する一連のC/Pパケットを備えている主記
憶装置32の作業バッファ35を組立てる。作業バッフ
ァ35の内容はバスインタフェースバッファ37を経由
してC/PFIFO221に転送され、ここでデータが
DMAプロセッサ222により読取られる。DMAプロ
セッサ222は次に適切な指令ワードを出力指令/デー
タ待行列(図示せず)に書込み、仮想ポインタを物理的
アドレスに変換し、このアドレスはワードカウントと共
にDMA状態マシン223に書込まれる。DMA状態マ
シン223は要求されたデータを主記憶装置32から読
出し、転送されたデータを出力指令/データ待行列に出
力してその中にC/Dパケットを完成させる。DMA状
態マシンが第1の指令に関連するデータをブロックで転
送するのに忙しい間に、VDMAプロセッサ222は次
の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に書込ませることにより行われる。次にホスト
CPU20は指令をDMAプロセッサ222に送り、こ
の指令を復号してDMA処理が開始され、これによって
作業バッファ35の内容がC/PFIFO221に書込
まれDMAプロセッサ222により読取られるようにす
る。C/PパケットがDMAプロセッサ222により復
号されると、仮想DMAを使用して所定の図形プリミテ
ィブに関連するデータを得る。
3月15日に出願された、本発明の譲受人に譲渡され、
ここに引用して取入れてある関連出願の米国特許出願第
494008号に記してあるように、直接C/Dパケッ
トを出力することもできるので、ここに記すような仮想
対物理的変換は常に行う必要はない。いずれにしても、
本発明によるユーザ図形への参照はすべて仮想ポインタ
を経由することができるので本発明のVDMAホストイ
ンタフェース22は図形プリミティブに関するデータを
得るのに仮想アドレスを使用することができなければな
らない。それ故、本発明によるDMAプロセッサ222
はそれ自身の仮想対物理的変換能力を備えており、たと
えば、仮想対物理的変換用の変換ルックアサイドバッフ
ァ(TLB)を備えることができる。その結果、実際の
バスアドレスは常に物理的アドレスである。
について今度は引続き図3を参照して更に詳細に説明す
ることにする。
U20は一般に入力多角形及び多重線(polylin
e)に対して二つのことしか行わない。すなわち、ホス
トCPU20は次回の要素の位置をつきとめ、それが多
重線であるか又は多角形であるか及びデータを図形ハー
ドウェアに送る前に更に処理する必要があるか否かを判
断する。 次にデータをバッファに写し取る。本発明は図形データ
を図形ハードウェアまで動かすために必要な複写の量を
かなり排除するように計画されている。特に、本発明は
、図形ハードウェアが主記憶装置32を直接読取ること
ができれば、ホストCPU20は図形ハードウェアに適
切な見出しとデータを指すポインタとを送るだけでよい
という理論に基いて動作している。上に記したように、
これは本発明によれば、指令及びその関連データをC/
Pパケットとして組立てることにより行われる。
適に、見出し、図形指令、サイズ情報、カウント情報、
フラグ情報、ワード/頂点情報、及び仮想ポインタから
構成されている。見出しはパケットがC/Pパケットで
あることを示すが、サイズ情報は多角形の頂点データの
ワードの全数を示す。図形指令は、入力データが例えば
多角形であることを示すことができるが、カウントと多
角形の頂点の数を示す。フラグ情報は入力多角形に対し
て活動する処理モードを示すが、ワード/頂点情報は各
頂点を記述するのに使用することができるワードの数を
示すことができる。最後に、仮想ポインタは本発明によ
る頂点データ構造を識別する32ビットアドレスとする
ことができる。
2は所要データをDMAを使用して主記憶装置32から
読み取ることによりすべてのC/PパケットをC/Dパ
ケットに変換する。これらパケット内の図形プリミティ
ブはほとんど、それ以上処理を必要とせず、図形サブシ
ステムに簡単に写し取ることができる簡単なものである
。しかし、例えば、メッシュ、ストリップ、及び長い多
重線に対するC/PパケットにはDMAプロセッサ22
2がこれら図形プリミティブを、図形サブシステムの図
形変形エンジンアレイが一層容易に処理することができ
る更に小さなものに細分しなければならないものがある
。これは、DMAプロセッサ222で行うことができる
。その理由は、細分割プロセス中に多数の頂点を複製し
なければならないが、DMAプロセッサ222は頂点を
主記憶装置32から簡単に再読み出しすることができる
からである。他方、図形サブシステムの図形パイプライ
ンに沿う段階は複製された頂点に対して格納空間を割り
当てることができる。C/Pパケットデータ機構は、各
データ要素に、各データ要素は図形ハードウェアにより
主記憶装置32から直接読み出されるから、メモリバス
31を1回だけ横断させることにより図形ハードウェア
の表示リスト横断性能を改善する。その結果、所要帯域
幅を実際に下げることができる。更に、図形描写プロセ
スの最も遅いリンクの一つをかなり速くすることができ
る。その他、本発明のVDMAホストインタフェース2
2は更に、C/Pパケットの大きさがホストCPUから
送られる各指令で利用できるという点で有利である。 それ故、C/Pパケット全体を折り返しのアクセスで一
度に得ることができ、これによりデータ転送のこの部分
がはるかに一層効率が良くなる。このような利益は従来
技術の図形システムでは一般に不可能である。何故なら
バスサイクルがプロセッサからの実際のデータワードの
要求に応じてのみ作られ、これによりプロセッサのキャ
ッシュ線によって別のワードをあらかじめ取り出すこと
が制限されるからである。
構は、ここに説明したもののようなハードウェアの他に
ホストCPU20のソフトウェアを幾らか修正したもの
の利用を必要とする。例えば、同期化機能を実施して、
データが主記憶装置32の内部で変わる前に、ユーザの
アプリケーションプログラムを図形ハードウェアと同期
させることができ、VDMAホストインタフェース22
のハードウェアがホストCPU20のキャッシュがどん
なDMAアクセスに対しても主記憶装置32と矛盾して
いないことを保証することもできる。一例として、デー
タキャッシュをDMAが仮想DMAがデータにアクセス
することができることを保証しようとする前にユーザの
アプリケーションプログラムでフラッシングすることが
できる。従って、ユーザのアプリケーションプログラム
はDMAがデータを読み終わるまでデータを変えさせる
必要はない。これらの問題に対するハードウェア及びソ
フトウェアの解決法を下に更に詳細に説明する。
ではないが、データ転送をしやすくするのに使用するこ
とができる。このような作業バッファ35は好適には、
例えば、長さ512ワードとすることができる、32ビ
ットワードのアレイから構成される。作業バッファ35
は512ワードの境界に整列され、従って物理的なペー
ジ境界とは交差しない。作業バッファ35は、図形サブ
システムがDMA読み出しのキャッシュスヌーピングを
することができない、又は書き通しページを使用しない
ホストCPUで実行しているとき「スワッピング」され
る前にホストCPU20のキャッシュからフラッシング
されなければならないが、作業バッファ35が書き通し
ページから割り当てられていればキャッシュを交換前に
フラッシングする必要はない。その上、ホストCPU2
0のソフトウェアにとって、制御ユーザが変えるたびに
作業バッファ35の先頭に状態保存及び回復の指令を入
れることが必要になることがある。
ィティであるから、必ずしも特定のアドレス範囲に又は
物理的RAMの中にさえも存在しないことを容易に認め
るであろう。従って、そのように図示してはあるが、こ
こに記した作業バッファ35は主記憶装置32の中に存
在する必要はなく、別の記憶装置ユニットの一部とする
ことができる。
うに通常の仮想DMAシナリオで使用される。即ち、ユ
ーザのアプリケーションプログラムが作業バッファ35
を構築し、必要ならホストCPU20のキャッシュをフ
ラッシングする。次にユーザのアプリケーションプログ
ラムは必要なら図形ハードウェアのロックを獲得する。 次にユーザのアプリケーションプログラムはDMAプロ
セッサ222の状態レジスタのフラグをチェックして前
の作業バッファの処理が完了していることを確認する。 DMAプロセッサ222の準備が完了すると、ユーザの
アプリケーションプログラムは作業バッファリンク指令
を書き込むが、この指令はホストCPU20によりDM
Aプロセッサ222に処理のためデータを作業バッファ
35からC/PFIFO221にC/Pフォーマット又
はC/Dフォーマットで転送するよう指示するのに使用
される。作業バッファリンク指令はDMAプロセッサ2
22の指令レジスタにより受け取られ、適切な作業バッ
ファ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/PFIFO221から
図形プロセッサに写し取られる。C/Pパケットには指
令を図形プロセッサまで伴うべきデータ構造の開始を指
定する仮想アドレス、及びデータ構造内の32ビットワ
ードの数を示すカウントが入っている。この情報を使用
して、取り出される全データ構造をDMAプロセッサ2
22により一つ以上の物理的ページの一つ以上のバス処
理に分解することができる。最大512ワードまでの各
個別の処理をDMAプロセッサ222により別々に開始
しなければならない。
クアサイドバッファ(TLB)を調べて指令に関連する
データの物理的アドレスを見出し、これをDMA状態マ
シン223のアドレスレジスタに書き込むことにより仮
想ポインタに対するアドレス変換を行う。TLBがエン
トリを備えていなければ(すなわち、TLBミス)、D
MAプロセッサ222は下に説明するような仕方でエン
トリに対するその陰のページテーブルを探す。主記憶装
置の記憶場所にアクセスするには、DMAプロセッサ2
22は所要アドレスをDMA状態マシン223のアドレ
スレジスタに書き込み、適格なMODE値をDMA状態
マシン223の制御レジスタに書き込む。DMAプロセ
ッサ222は次にDMA状態マシン223を作動させて
主記憶装置32のメモリアクセスサイクルを開始する。 DMAプロセッサ222はデータが戻るまで状態マシン
223の状態ビットをチェックして待つ。DMAプロセ
ッサ222は次にデータをDMA状態マシン223のイ
ンタフェースデータレジスタから読み込む。このように
して、DMAプロセッサ222はカウント、源アドレス
、及び宛先アドレスを計算し、これらをDMA状態マシ
ン223のレジスタに書き込むことによりDMA転送を
始める。
は完全に結合した4つのエントリを有する小さなTLB
を備えている。しかし、その大きさ及び写像法は当業者
により最適な費用/性能比を達成するように変えること
ができる。TLBのエントリは活性グラフィックプロセ
ス及びユーザに対するホストのページテーブルを探すD
MAプロセッサ222のファームウェアにより作ること
ができる。TLBエントリの無効化はホストCPU20
からDMAプロセッサ222に送られる指令を通して行
われる。その他に、ページが記憶装置に存在しないか、
又は保護障害に出会うと、DMAプロセッサ222はD
MA活動を中止し、ホストCPU20に割り込みを介し
て故障を修理するよう連絡する。次に、ホストCPU2
0が故障を修理してから、ホストCPU20はDMAを
再開し、DMAプロセッサ222はDMA活動を新しい
TLB調査でやめたところから再開する。手短かに言え
ば、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プロセッサ22
2及びインタフェースハードウェアをリセットしたり、
すべての有効化ビットの状態を検出したりするDMA制
御レジスタを備えることができる。
DMAホストインタフェース22の状態を決定する多数
のビットを備えた一つ以上の状態レジスタを備えている
。例えば、状態レジスタは、DMAプロセッサ222が
ホストCPU20に割り込みを指示したことを示す割込
待機ビット、テーブルを歩いている間に(不良アドレス
レジスタに不良仮想アドレスが入っている)非在住ペー
ジに出会ったことを示すページ障害ビット、DMAの期
間中に(不良アドレスレジスタに不良仮想アドレスが入
っている)アクセス侵犯が発生したことを示すアクセス
障害ビット、DMA不良アクセスが読み取られたか又は
書き込まれたかを示すアクセス形式ビット、DMAがそ
のレベルでアクセスしようとした特権レベルを示す特権
ビット、テーブルを歩いているとき(不良アドレスレジ
スタにテーブルの歩行を発生させた不良仮想アドレスが
入っている)非在住テーブルに出会ったことを示すテー
ブル障害ビット、DMAプロセッサ222がDMA指令
レジスタを経由してそのプロセッサに送られた指令を処
理する準備ができていることを示すDMA準備完了ビッ
ト、DMA入力バッファ221が空であり、DMAプロ
セッサ222がそこから読み取られた指令をすべて終了
したことを示すバッファ準備完了ビット、DMA処理中
に実際のエラーが生じた(予想された仮想メモリの不良
ではなく)ことを示すDMAエラービット、DMAプロ
セッサ222により記録されているDMAエラー(この
場合エラーにはDMA中のバスエラー、違法C/Pパケ
ットの識別、及び/又はバッファ内容が同期を外れてい
ることの指示がある)の性格を示すエラー状態ビット、
及びその他の当業者が希望するこのようなすべてのビッ
ト、を入れることができる。
DMAプロセッサ222のTLBを不良にする最後の仮
想アドレスの値を備えている。このレジスタはまたDM
Aエラービットが設定され、それに伴うDMAエラー状
態コードが設定されてバスエラーを示すとき有効仮想ア
ドレスを備えている。
ロセッサ222により使用された現在のルーツポインタ
を戻すルーツポインタレジスタを備えている。好適実施
例では、32ビットレジスタの23個の最上位ビットを
使用すべきページテーブルの開始の物理的アドレスとす
ることができ、それら23ビットをDMAプロセッサ2
22に有効ルーツポインタがないとき全部0に設定する
ことができる。32ビットレジスタの9個の最下位ビッ
トに0を割り当てることができる。このレジスタは特権
プロセスにのみアクセス可能である。
20、主記憶装置32、及びDMAプロセッサ222の
間のデータ転送を統合するバス制御器として働く。特に
、DMA状態マシン223は図形処理回路へのホスト起
源の読み書きの他に図形処理回路のDMAプロセッサ2
22起源の読み書きをも支持するように働く。その他に
、DMA状態マシン223は、主記憶装置32からフレ
ームバッファ28へ、フレームバッファ28から主記憶
装置32へ、C/PFIFO221から変形エンジン2
4へ、又は主記憶装置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個のエントリを備えることがで
きる。各エントリはページフレーム記述子に対するRA
M内の真のアドレスを示し、これは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」ペ
ージに接触するよう指示する(又はこれをそれ自身で行
う)。しかし、グラフィックプロセスはこれを区分侵犯
の危険なく任意に行うことはできない。
2にあるシステムページテーブル33を修正する必要が
あるときは、I/Oドライバを呼び出して図形サブシス
テムにVDMAを停止し、次いでDMAプロセッサ22
2のTLBにある陰のページテーブルを清浄にする指示
を出すよう要請しなければならない。I/Oドライバは
次にDMAプロセッサ222の陰のページテーブルの該
当するエントリに無効の印を付け、エントリについての
修正及び参考情報をホストCPU20の仮想メモリシス
テムに戻す。I/Oドライバは最後に図形サブシステム
に処理を継続するよう指示する。しかし、プロセスを効
果的に動作させるには、現在のグラフィックプロセスを
制御しているユーザに対する完全な陰のページテーブル
が主記憶装置32に入っているべきであるが、当業者は
陰のページテーブルを、完全な陰のページテーブルがア
ドレス変換については主記憶装置32に残っている必要
がないように、修正することが可能であることがわかる
であろう。
ャッシュされたページテーブルのデータは、ハードウェ
アの一貫性を利用できなければ、陰のページテーブルを
修正する前及び後で共に、ドライバにデータキャッシュ
をフラッシングすることにより主記憶装置32と矛盾し
ないようにしておかなければならない。その上、一度に
一人のユーザしか受け入れられないから、図形サブシス
テムはハードウェアによる一つのルーツポインタしか支
持しないことになる。核ドライバはこの情報を、ロック
が新しい図形ユーザに与えられるとき、図形サブシステ
ムに提供する責任がある。ルーツポインタはこうしてD
MAプロセッサ222のDMAメッセージレジスタに書
き込むことにより更新することができる。このような更
新指令は特権DMA指令レジスタからのみ受け入れるこ
とができる。
サポートしており、これによりホストCPU20の核に
保護/ページ/TLBの障害を図形信号処理器に伝えさ
せる一つ以上の信号を使用することができる。図形アプ
リケーションプログラム又は核I/Oドライバは次にレ
ジスタを読み取って障害の形式を決定することができる
。図形アプリケーションプログラムはホストCPU20
におけるユーザプロセスとして実行されるので、保護障
害は図形信号処理器に当面の該当する形式の処理におい
てページに接触させることにより正しいユーザプロセス
に基づいて発生する可能性がある。後続の保護障害があ
ると、ページが再写像されてアクセスが可能となり、プ
ロセスが、場合に応じて、指示されるか消滅する。他方
、核ドライバ自身が正しいユーザプロセスとして実行さ
れることも可能である。これが行われれば、ドライバは
必要なページ(単数又は複数)に接触し、図形プログラ
ムを実際に呼び出さないで正しい結果を生ずる。
グラムのドライバに伝え、ドライバが問題のあるページ
に接触しようとすることにより保護障害と同様の仕方で
処理することができる。結果が良ければ、図形プログラ
ムは核I/Oドライバに戻り、ドライバは中止したVD
MAプロセスを再開する。また、前のように、このすべ
てを核I/Oドライバの内部で処理することも可能であ
る。
ロセスは次のとおりである。最初に、図形サブシステム
からの割り込みの結果である核からの信号を捕らえる。 次いでDMA状態レジスタを読み取って割り込み(即ち
、ページ障害)の原因を突き止める。核ドライバはこれ
を読んでこの情報を直接供給することもできる。次に、
不良になった仮想アドレスを示すDMA不良アドレスレ
ジスタを読み取り、違反ページに接触して核にページを
ロードさせ、写像させる。最後に、I/Oドライバを呼
んで新しいページを陰のページテーブルに写像し、VD
MAを不良アドレスから再開する。
セスを使用することができる。ただし障害を起こした仮
想アドレスを確認して後、障害を起こしたものと同様の
アクセスを有するページを接触する。障害がページ許可
などを変えて信号処理器によるページの接触が好結果で
あり得るように修復されれば、I/Oドライバを次に呼
び出して新しいページを陰のページに写像し、VDMA
を障害を起こしたアドレスから再開することができる。 しかし、障害が修復されていなければ、接触は不成功で
、核はプロセスを消滅させるか又はプロセスに異なる信
号を送る。他の修復措置も本発明の範囲内で可能である
が、特定の障害が修復不能であれば、図形信号処理器は
接触を試みる必要はない。適切な修復処理を代わりに規
定することができる。
セス権を、ハードウェアを通して変換を得ることにより
、テーブルを探索することにより、又は核を呼び出して
適切な補正を行うことにより、修復することができる。 本発明は従ってDMAを使用して主記憶装置32にアク
セスする図形処理ユニット用遠隔記憶装置管理ユニット
を処理するようにハードウェアを拡張することも可能で
ある。開示した構成にはDMAプロセッサ222にTL
Bミスが生じたとき、ホストCPU20の核が呼び出さ
れないという利益がある。代わり、陰のアドレステーブ
ルだけがアクセスされる。また、本発明によれば、ペー
ジ障害は完全に修復され、VDMAは核により再開され
る。
れたとき、核はデータ一貫性の問題に注意した。一方、
本発明のVDMA技法によれば、ユーザがDMAを開始
する。従って、今度は新しい一貫性の問題が生ずる。即
ち、考慮しなければならない二つの形式の一貫性が存在
する。一つはDMAプロセスがそれを用いて終了するま
でデータを変えないようCPUが約束しなければならな
いDMA/CPU一貫性である。他の問題はキャッシュ
と主記憶装置32との間のデータの一貫性である。本発
明はまたこれら一貫性の問題を解決する手段を備えるこ
とができる。
クセスできるようにしたままデータ構造に基づいてDM
A動作を行うことは、アプリケーションプログラムがD
MAプロセスを理解し、DMAが完了するまでこのよう
な構造を編集しない責任を受け入れない限り、CPU/
DMAデータ一貫性の問題を解決するためには許容され
ない。従って、ホストCPU20は編集とDMA活動と
の間の同期に責任を持つようにDMAを理解すべきであ
る。多数のアプリケーションプログラムは、直接呼び出
しを行って表示リストを実現するので、この責任を取る
ことができる。従って、仮想DMAをアプリケーション
プログラムからの明白な要求により有効にすることがで
きる。その上、DMAを有効にすることにより、応用コ
ードはDMAを経由してグラフィックプロセスに送られ
るデータを編集する前にDMAと同期しなければならな
い。当業者は従ってアプリケーションプログラムを修正
する方法を知るであろう。
いるため、DMAの読み取りプロセスが正しく働くため
、キャッシュ内の関連する線路を、上述のようにDMA
が許容される前に主記憶装置32にフラッシングして戻
す必要があり、又はDMAにキャッシュ内の汚れたデー
タへのアクセスが与えられなければならない。また、D
MAが本発明に従って主記憶装置に書き込むと、DMA
の実行の前及び後に共に、キャッシュがフラッシングさ
れるか、又はDMAがDMA期間中キャッシュ内のすべ
てのコピーを更新するか無効にするかすることができる
。
一貫性はページを逆複写するすべてのアクセスをスヌー
プ(詮索)することによる本発明に従い達成することが
できる。DMAが主記憶装置に書き込むと、キャッシュ
ヒットによりキャッシュ線が無効になる。他方、DMA
が主記憶装置32から読み出すと、汚れたキャッシュヒ
ットによりキャッシュが主記憶装置32の代わりにデー
タを供給する。しかし、スヌーピング(詮索)は一般に
CPUアクセスとVDMAアクセスとの双方の速さを減
ずるので、書き通しページ及び明白なフラッシングの使
用により可能な場合にはスヌーピングを回避すべきであ
る。スヌーピングは、DMAの開始が書き込みバッファ
がフラッシングされてから発生することが保証されてい
る限り既に主記憶装置32の中にある書き通しページ内
の汚れたデータを使用して回避することができる。とい
うのは書き通しページからのVDMA読み出しはスヌー
プされる必要はないからである。対称的に、書き通しペ
ージへのVDMA書き込みはすべてのキャッシュ複写が
更新されるか無効にされるかするようにスヌープされな
ければならない。キャッシュの一貫性はこのようにユー
ザレベルのコードには見えないようにすることができる
。スヌーピング又はユーザ制御のフラッシングを使用す
るかしないかは当業者の自由裁量にまかすことができる
。
して読み取られるデータはすべて書き通しページから読
み取ることができるので、キャッシュをスヌープさせる
必要はない。ユーザはアプリケーションプログラムはそ
れ故すべての表示リストデータを書き通しページに配分
する。一方、核ドライバは、直接呼出しモードの期間中
VDMAが有効であるときユーザのページを書き通しに
するようプログラムすることができる。例えば、DMA
を使用可能にするユーザ指令は核にアプリケーションプ
ログラムのページの全部又は一部を書き通しに変換させ
ることができる。加えて、陰のページテーブルはどのペ
ージにグラフィックプロセスがアクセスしようとしてい
るかの記録であるから、使用中のこれらページだけをグ
ラフィックプロセスにより変換することが可能であり、
これにより処理時間が更に減少する。
Aホストインタフェース22は逆複写ページへのすべて
のバーストアクセスに関してスヌーピングを支持するこ
とができるので、ユーザがDMAを有効にすることしか
行わない場合にも、インタフェース22はキャッシュを
フラッシングすることなく動作する。また陰のページテ
ーブルは、アクセス前に核により清浄にされている書き
通しページに好適に保持されているので、図形プログラ
ムの参照ビット及び修正ビットの更新をスヌープさせる
必要はない。その他、主記憶装置32へのDMA書き込
みは、DMAの終了後常に清浄にされている書き通しペ
ージで可能である。これにはユーザレベルコードに新し
い核のわなを仕掛けてデータキャッシュを清浄にさせる
必要がある。
ずる可能性のあるデータ一貫性の問題を克服するには、
ホストCPU20が次の段階を実施するのが好適である
。第1に、完了してから交換される前に、すべての作業
バッファ35をアプリケーションプログラムにより主記
憶装置32に明白にフラッシングする。次に、すべての
表示リスト要素も編集されてからVDMAが可能になる
前にアプリケーションプログラムにより主記憶装置32
に明白にフラッシングすべきである。その他に、アクセ
スされる前及び後に、陰のページテーブルのエントリを
核I/Oドライバにより主記憶装置32に明白にフラッ
シングするべきである。また、フレームバッファのブロ
ック読み出しを実行する前及び後に、受信バッファをア
プリケーションプログラムにより主記憶装置32にフラ
ッシングしなければならない。その上、フレームバッフ
ァのブロック書き込みを実行する前に、ソースバッファ
をアプリケーションプログラムにより主記憶装置32に
フラッシングし、VDMAが直接呼び出しに対して有効
になってからユーザのデータキャッシュをもアプリケー
ションプログラムにより主記憶装置32にフラッシング
するべきである。
ス22は図形サブシステムのような外部プロセスに記憶
装置から直接データにアクセスさせる。これにより、デ
ータが主記憶装置32からホストCPU20に、次いで
図形サブシステムに移動する代わりに図形サブシステム
に真っ直ぐに進行するのでバスの所要帯域幅が減少する
。その結果、ホストCPU20はルーチンデータ複写を
行うその貴重な計算時間をもはや費消する必要がないの
で、一層実作業が行われ、メモリバスの利用が向上する
。本発明にはまたホストユーザのレベルのソフトウェア
が核サービスを呼び出すサブルーチンを行わずに仮想ア
ドレスを使用して記憶装置に直接アクセスを開始するこ
とができるという利益がある。このような核呼び出しは
極めて時間のかかるものであり、本発明に従ってこのよ
うな核呼び出しの必要性を排除することによって、正常
のDMA手法を今や本発明に従って図形プリミティブの
アクセスに適用することができる。DMAプロセッサ2
2も完全な表示リスト横断機能を実行する必要がなく、
それ故、本発明のハードウェアをはるかに廉価にするこ
とができ、支持ソフトウェアを表示リスト横断プロセッ
サを使用する構成よりはるかに簡単にすることができる
。その上、本発明によれば通常のページスワッピング及
び他の仮想メモリ機能及び保護を保持することができる
。
詳細に説明してきたが、当業者は、本発明の新規な教示
及び長所から著しく逸脱することなく多数の他の修正案
が模範的実施例に可能であることを容易に認めるであろ
う。例えば、本発明に従って使用した同じ仮想メモリ技
法を記述のように図形サブシステムではなく外部網接続
サブシステムに使用することができる。ユーザが主記憶
装置内のデータにメモリアクセスごとに動作システムを
中断することなく直接アクセスできることが望ましい他
のどんなサブシステムをも使用することができる。従っ
て、このような修正案はすべて付記する特許請求の範囲
に規定する本発明の範囲内に含めるつもりである。
概略図である。
ースにより接続された、ホストシステム及びグラフィッ
ク処理システムの概念的ブロック図である。
ストシステムをインタフェースするためのユーザ計画直
接メモリアクセスシステムの概略図である。
Claims (1)
- 【請求項1】データ処理指令及び関連データを主記憶装
置を備えているユーザのホストシステムと外部データ処
理システムとの間で転送するためのインタフェース装置
であって:前記データ処理指令及び関連データを、前記
データ処理指令及びユーザのホストシステムの仮想メモ
リ空間にある前記関連データに対する仮想ポインタから
成るそれぞれの指令/ポインタパケットとして表すため
の手段と;前記仮想ポインタを前記関連データを配置す
る前記主記憶装置内の物理的アドレスを識別する物理的
ポインタに変換するための手段と;前記関連データを前
記物理的アドレスで前記主記憶装置から/に対して読み
出し及び書き込みするための手段と;から成ることを特
徴とするインタフェース手段。
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 true JPH04219852A (ja) | 1992-08-10 |
| JP3369580B2 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 (178)
| 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 |
| EP0674269B1 (en) * | 1994-03-24 | 2001-12-19 | Hewlett-Packard Company, A Delaware Corporation | Translation mechanism for input/output addresses |
| 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 |
| 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 |
| 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 |
| US6631435B1 (en) * | 1996-02-02 | 2003-10-07 | Sony Corporation | Application programming interface for data transfer and bus management over a bus structure |
| US7577782B2 (en) | 1996-02-02 | 2009-08-18 | Sony Corporation | Application programming interface for data transfer and bus management 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 |
| 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 |
| JP4846097B2 (ja) * | 1998-05-12 | 2011-12-28 | エススリー グラフィックス カンパニー リミテッド | グラフィクスサブシステムのレジスタセットのための方法及び装置 |
| 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 |
| 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 |
| 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 |
| US7111290B1 (en) * | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
| 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 |
| US6954923B1 (en) | 1999-01-28 | 2005-10-11 | Ati International Srl | Recording classification of instructions executed by a computer |
| US8121828B2 (en) * | 1999-01-28 | 2012-02-21 | Ati Technologies Ulc | Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions |
| US7013456B1 (en) | 1999-01-28 | 2006-03-14 | Ati International Srl | Profiling execution of computer programs |
| 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 |
| 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 |
| US6763452B1 (en) | 1999-01-28 | 2004-07-13 | Ati International Srl | Modifying program execution based on profiling |
| 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 |
| 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 |
| US6549959B1 (en) * | 1999-08-30 | 2003-04-15 | Ati International Srl | Detecting modification to computer memory by a DMA device |
| 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 |
| 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 |
| FI20002377L (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 |
| AU2002356884B2 (en) * | 2001-11-01 | 2008-12-04 | 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 |
| DE102004040312B4 (de) | 2003-08-19 | 2018-11-15 | Certicom Corp. | Verfahren und Vorrichtung zum Synchronisieren einer anspassbaren Sicherheitsstufe bei einer elektronischen Datenübertragung |
| 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 |
| US7669242B2 (en) * | 2005-06-30 | 2010-02-23 | Intel Corporation | Agent presence monitor configured to execute in a secure environment |
| 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 |
| 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 |
| 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 |
| US7543131B2 (en) | 2005-08-12 | 2009-06-02 | Advanced Micro Devices, Inc. | Controlling an I/O MMU |
| US7793067B2 (en) * | 2005-08-12 | 2010-09-07 | Globalfoundries Inc. | Translation data prefetch in an IOMMU |
| 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) |
| 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 |
| US7548999B2 (en) * | 2006-01-17 | 2009-06-16 | Advanced Micro Devices, Inc. | Chained hybrid input/output memory management unit |
| 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 |
| 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) |
| US7613898B2 (en) * | 2006-01-17 | 2009-11-03 | Globalfoundries Inc. | Virtualizing an 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 |
| 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 |
| US7849287B2 (en) | 2006-11-13 | 2010-12-07 | Advanced Micro Devices, Inc. | Efficiently controlling special memory mapped system accesses |
| US7873770B2 (en) | 2006-11-13 | 2011-01-18 | Globalfoundries Inc. | Filtering and remapping interrupts |
| 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 |
| DE102013022169A1 (de) * | 2013-03-14 | 2014-09-18 | Nvidia Corporation | Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem |
| 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 |
| 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 |
| 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 |
| CN114026548A (zh) | 2020-05-28 | 2022-02-08 | 华为技术有限公司 | 直接内存访问的方法和系统 |
| EP4555416A4 (en) * | 2022-07-14 | 2026-03-25 | Mellanox Technologies Ltd | FAULT-RESISTANT TRANSACTION MANAGEMENT DEVICE |
| US12210468B2 (en) * | 2023-01-19 | 2025-01-28 | SambaNova Systems, Inc. | Data transfer between accessible memories of multiple processors incorporated in coarse-grained reconfigurable (CGR) architecture within heterogeneous processing system using one memory to memory transfer operation |
| US12229057B2 (en) | 2023-01-19 | 2025-02-18 | SambaNova Systems, Inc. | Method and apparatus for selecting data access method in a heterogeneous processing system with multiple processors |
| US12380041B2 (en) | 2023-01-19 | 2025-08-05 | SambaNova Systems, Inc. | Method and apparatus for data transfer between accessible memories of multiple processors in a heterogeneous processing system using two memory to memory transfer operations |
| 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 |
| EP0088789B1 (en) * | 1981-09-18 | 1987-08-05 | CHRISTIAN ROVSING A/S af 1984 | Multiprocessor computer system |
| US4638426A (en) * | 1982-12-30 | 1987-01-20 | International Business Machines Corporation | 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 EP EP91301982A patent/EP0447145B1/en not_active Expired - Lifetime
- 1991-03-11 DE DE69132300T patent/DE69132300T2/de not_active Expired - Lifetime
- 1991-03-11 JP JP04480891A patent/JP3369580B2/ja 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 |
|---|---|
| EP0447145A3 (en) | 1993-10-27 |
| DE69132300T2 (de) | 2000-11-30 |
| JP3369580B2 (ja) | 2003-01-20 |
| DE69132300D1 (de) | 2000-08-17 |
| EP0447145A2 (en) | 1991-09-18 |
| US5301287A (en) | 1994-04-05 |
| EP0447145B1 (en) | 2000-07-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0447145B1 (en) | User scheduled direct memory access using virtual addresses | |
| JP3272370B2 (ja) | 作業バッファポインタを用いたユーザスケジュール式直接メモリアクセス方法及びその装置 | |
| KR101563659B1 (ko) | 집성된 소페이지들을 사용한 페이지 사이즈 확장 | |
| JP3102495B2 (ja) | 仮想記憶管理方法 | |
| Wood et al. | An in-cache address translation mechanism | |
| US4868738A (en) | Operating system independent virtual memory computer system | |
| JP3281893B2 (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
| JP3264319B2 (ja) | バスブリッジ | |
| US5913923A (en) | Multiple bus master computer system employing a shared address translation unit | |
| US5555395A (en) | System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table | |
| US20040117588A1 (en) | Access request for a data processing system having no system memory | |
| JPH0997214A (ja) | 補助プロセッサのためのアドレス変換を含む情報処理システム | |
| JPH09114665A (ja) | 記憶装置と補助プロセッサ間のコマンド及びデータ転送方法及び情報処理システム | |
| EP0669579B1 (en) | Coherence index generation for use by an input/output adapter | |
| US5845106A (en) | Method for simulating cache operation | |
| US7523290B2 (en) | Very high speed page operations in indirect accessed memory systems | |
| US7017024B2 (en) | Data processing system having no system memory | |
| US20010042185A1 (en) | Very high speed page operations in indirect accessed memory systems | |
| JP2000339221A (ja) | 変換装置のエントリを無効化するシステム及び方法 | |
| US20250094353A1 (en) | Memory Migration and Page Fault Avoidance | |
| JPH0619739B2 (ja) | 多重プロセツサ・システムのキヤツシユを制御する方法 | |
| JPH0721781B2 (ja) | マルチプロセツサ・システム | |
| JPH01288940A (ja) | 論理アドレスキャッシュ制御方式 | |
| Wood et al. | SPUR memory system architecture | |
| EP1262876B1 (en) | Multiprocessing system with shared translation lookaside buffer |
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 |