JP4156033B2 - 連続するメモリのバッファを獲得し、ページテーブルを構築する方法 - Google Patents

連続するメモリのバッファを獲得し、ページテーブルを構築する方法 Download PDF

Info

Publication number
JP4156033B2
JP4156033B2 JP51665198A JP51665198A JP4156033B2 JP 4156033 B2 JP4156033 B2 JP 4156033B2 JP 51665198 A JP51665198 A JP 51665198A JP 51665198 A JP51665198 A JP 51665198A JP 4156033 B2 JP4156033 B2 JP 4156033B2
Authority
JP
Japan
Prior art keywords
buffer
graphics
page
physical
graphic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP51665198A
Other languages
English (en)
Other versions
JP2001501758A (ja
Inventor
デビック,ゴーラン
Original Assignee
エンヴィディア インターナショナル, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エンヴィディア インターナショナル, インコーポレイテッド filed Critical エンヴィディア インターナショナル, インコーポレイテッド
Publication of JP2001501758A publication Critical patent/JP2001501758A/ja
Application granted granted Critical
Publication of JP4156033B2 publication Critical patent/JP4156033B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]

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)
  • Image Generation (AREA)

Description

発明の分野
本発明はコンピュータ制御のグラフィックディスプレイシステムの分野に関する。具体的には、本発明は(1)グラフィックバッファが物理メモリ空間内において連続するかどうかを判断し、(2)グラフィックデバイスページテーブルを構築し、よって、グラフィックバッファのページが物理メモリ空間内において連続しない場合は周辺グラフィックデバイスがグラフィックバッファのページを読むことが可能となる、方法に関する。
発明の背景
一般的に、周辺デバイス(例えば、周辺グラフィックデバイス)を有するコンピュータシステムにおいて、周辺デバイスはシステムの物理メモリ部へのアクセスのみを許可されており、仮想では物理メモリマッピングリソースへのアクセスは許可されていない。したがって、周辺デバイスは物理メモリ空間内で連続しないコンピュータシステムのメモリブロックへは、容易にアクセスすることができない。典型的な周辺デバイスは、ベース物理メモリアドレスを使用することによって、ホストコンピュータシステム内に記憶されているメモリブロックにアクセスするように設計されている。周辺デバイスによってアクセスされようとしているメモリブロックが物理メモリ空間内で連続していない場合、そのメモリブロックにアクセスするにはメモリブロックの単なるベース物理アドレスのみでは十分ではない。
メモリ管理システムがホストコンピュータシステム内で動作状態にある場合、ページングが動作状態にあり得、その場合、メモリブロックは物理メモリ空間内で不連続であり得る。ページングは、プログラムまたはデータをページと呼ばれる固定長のブロックに分割する記憶領域割り当て技術(storage allocation technique)であり、主記憶はページフレームと呼ばれる同一長のブロックに分割される。ページフレームは物理メモリの固定された領域を含む。ページはページフレームに記憶されるが、必ずしも連続した状態ではない。ページングスキームにおいて、必要とされれば、データのページは主記憶装置及び補助記憶装置の間でスワップされる。ページングは、補助記憶装置が主記憶装置の1部であるかのようにアドレス指定され得るので、仮想メモリを許可する。ユーザプログラムとデータの一部は補助記憶装置に配置され、オペレーティングシステムは必要に応じてそれらを主記憶装置の外部と内部で自動的にスワップする。ページングを特徴とするメモリ管理システムもページテーブルを採用する。ページテーブルは各論理ページアドレスについて物理アドレスを提供するメモリマップである。周辺デバイスは一般的にページテーブルを含むメモリマップにアクセスする機能を有しない。
ページングを特徴とするメモリ管理システムはDOSベースの保護モードエクステンダであるEMM386.EXEを含み、且つ種々の他の保護モードオペレーティングシステムを含む。インテル80386マイクロプロセッサの仮想メモリシステムは、例えば、ページング及びセグメンテーションの双方を含む。セグメンテーションは主メモリをセグメントごとに分割する、メモリ管理技術である。主メモリに現在存在していないセグメントが要求された場合、全セグメントが二次メモリから転送される。セグメントに割当てられた物理アドレスはメモリマップ内に維持される。セグメンテーション及びページングの双方が使用される場合、プログラムによって発生するあらゆるメモリアドレスは下記関係(1)に定義される2段階翻訳プロセスを通過する。
仮想アドレスL −→ 論理アドレスN −→ 物理アドレスP (1)
セグメンテーション無しの場合、L=Nである。ページング無しの場合、N=Pである。セグメンテーション及びページングユニットは双方とも、アドレス翻訳に必要な種々のメモリマップの動作状態にある部分を記憶する高速キャッシュメモリを含む。インテル80386マイクロプロセッサに使用されるページサイズは4キロバイトである。
典型的な周辺グラフィックデバイスはベース物理メモリアドレスを使用して、物理メモリ空間内で連続しているメモリブロックにアクセスする。グラフィックデータのブロックサイズが典型的に1ページを越えないことから、1ページより多いページを含むメモリバッファへのアクセスを周辺グラフィックデバイスが典型的には要求しなかったので、本方法論は過去において十分であった。しかし、現在、サイズが1ページを越すグラフィックデータのブロックを処理するためにコンピュータグラフィックシステムが使用されている。したがって、周辺グラフィックデバイスに対してサイズが1ページを越え得るメモリバッファへのアクセスを提供する方法が必要とされている。そのようなメモリバッファは物理メモリ空間内にて不連続であり得るので、周辺グラフィックデバイスに対してメモリバッファへのアクセスを提供する方法が必要とされる。
上記をふまえ、本発明は(1)メモリブロックが物理メモリ空間内で連続しているかどうかを判断する方法、及び(2)物理メモリ内で不連続である場合、周辺デバイスに対してメモリブロックへのアクセスを提供する方法、を提供する。以下の本発明についての議論において、本発明のこれらの、及び他の利点が明らかになる。
発明の要旨
ページング及びセグメンテーションを許可するアーキテクチャを有するコンピュータシステムにおいて、本発明は、周辺グラフィックデバイス(PGD)に対してグラフィックバッファのページが物理メモリ空間内で連続または不連続となり得るグラフィックバッファのページへのアクセスを提供する、コンピュータによって実行されるプロセスを提供する。本発明のプロセスはコンピュータによって実行される複数のステップを提供する。はじめに、プロセスは、所定のサイズ及びハンドルのグラフィックバッファに対してメモリを割り当てるようにリクエストを受取る。サイズパラメータ内のページ数は、コンピュータシステムによって使用されるページサイズ及び要求されるバッファサイズに基づいて決定される。
プロセスは、コンピュータシステム内でDOS保護モードインタフェース(DPMI)サービスが現在動作状態にあるかどうかを判断する。DPMIサービスが現在動作状態にない場合、ページングが動作状態になく、グラフィックバッファのページが物理空間内で連続していると見なされる。この場合、2つの周知のステップがPGDに対してグラフィックバッファの連続するページへのアクセスを提供する。これらの2つの周知のステップはグラフィックバッファにメモリを割り当てること及びグラフィックバッファのベースアドレスをユーザハンドルによって指標化されたデータベースに記憶することを含む。
DPMIサービスが利用可能であることを条件に、本発明のプロセスはコンピュータシステム内で現在ページングが動作状態にあるかどうかを判断する。ページングが現在動作状態にない場合、グラフィックバッファのページは物理メモリ空間内で連続すると見なされ、上記の2つの周知のステップを介してPGDに対してグラフィックバッファの連続するページへのアクセスが提供される。
ページングが動作状態にある場合、グラフィックバッファのページは物理メモリ空間内で連続または不連続であり得る。その場合、PGDにグラフィックバッファへのアクセスを提供するため、プロセスは論理メモリ空間内にグラフィックデバイスページテーブル(GDPT)を構築する。連続する物理ページを割り当て得る、またはし得ない周知のメモリ割り当て手順を使用し、グラフィックバッファを格納するため第1のメモリブロックが割り当てられる。第1のメモリブロックは、次に、第1のメモリブロックのスワップを防ぐためにロックされる。CPUページテーブル(CPU/PT)の開始仮想アドレスがアクセスされる。グラフィックアプリケーションソフトウェアなどのユーザアプリケーションによる進行を許可するため、CPU/PTの開始仮想アドレスは開始論理アドレスにマッピングされる。GDPT構築のため第2のメモリブロックが割り当てられる。本発明のプロセスは、グラフィックバッファのページそれぞれの論理アドレスに連続してアクセスし、CPU/PTからのグラフィックバッファの物理ページそれぞれに対応する物理アドレスを判断することによって、GDPTを構築する。グラフィックバッファのページそれぞれの論理アドレス及び物理アドレスはGDPTに記憶される。グラフィックバッファの全ページが物理メモリ空間内で連続するかどうかが判断される。
グラフィックバッファの全ページが物理メモリ空間内で連続していることを条件に、グラフィックバッファの物理アドレス及び論理アドレスはユーザハンドルによって指標化されたデータベースに記憶される。グラフィックバッファの全ページが物理メモリ空間内で連続していないことを条件に、GDPTの開始物理アドレス及び論理アドレスはユーザハンドルによって指標化されたデータベースに記憶される。グラフィックバッファの物理アドレスの指定ビットはグラフィックバッファの全ページが物理メモリ空間内で連続していないことを表示し、よってPGDへアクセスするためにGDPTが要求されていることを表示するように設定される。
物理メモリ内でPGDがグラフィックバッファにアクセスする前に、グラフィックバッファのハンドルがアクセスされる。データベースはグラフィックバッファの物理アドレスを獲得するため使用される。グラフィックバッファの物理アドレスは次にPGDに転送される。
PGDはグラフィックバッファの物理アドレスを獲得する。次に、PGDはグラフィックバッファの物理アドレスの指定ビットが設定されているかどうかを判断する。グラフィックバッファの物理アドレスの指定ビットが設定されていない場合、グラフィックバッファのページは連続していると見なされ、PGDはグラフィックバッファにアクセスするためグラフィックバッファの物理アドレスを使用する。グラフィックバッファの物理アドレスの指定ビットが設定されている場合、グラフィックバッファのページは連続していないと見なされ、PGDはグラフィックバッファにアクセスするため本発明のGDPTを使用する。
【図面の簡単な説明】
図1は、本発明のプロセスを使用するために、接続された周辺グラフィックデバイス(PGD)を含む、例示的なホストコンピュータシステムのブロック図である。
図2Aは、例示的なホストコンピュータシステム内の仮想、論理、及び物理メモリ空間を表した論理図である。
図2Bは、CPUページテーブル(CPU/PT)、グラフィックデバイスページテーブル(GDPT)、グラフィックバッファ(GB)、及びそこに含まれるデータベースを含むメモリ空間のブロック図である。
図3A及び3Bは、グラフィックバッファ(GB)のページが物理メモリ空間内で連続しているかどうかを判断し、連続していない場合は、本発明によるGDPTを構築するための本発明の方法のフロー図である。
図4は、PGDに対してグラフィックバッファの物理アドレスを提供するための、本発明の方法によるプロセス400のフロー図である。
図5は、グラフィックバッファのページが物理メモリ空間内で全て連続していない場合にはDGPTを介してグラフィックバッファにアクセスし、またはグラフィックバッファのページが物理メモリ空間内で全て連続している場合には物理ベースアドレスを介してグラフィックバッファにアクセスをするための、本発明の方法によるプロセス500のフロー図である。
好ましい実施形態の説明
以下の、本発明についての詳細な説明において、本発明の完全なる理解を提供するため多数の具体的な詳細が提示される。しかし、これらの具体的な詳細なしに、またはその他の素子や方法を使用して、本発明を実施し得ることが当業者には自明である。他の場合には、本発明の局面を不必要に不明瞭にしないため、周知の方法、手順、構成要素、及び回路は詳細には説明されない。
以下の詳細な説明の一部は、手順、論理ブロック、処理、及びコンピュータメモリ内のデータビットでの動作の記号表示の観点から提示される。これらの説明及び表示は、データ処理技術の当業者がその業務内容を当該技術の他の当業者に最も効率的に伝達する手段として使用される。手順、論理ブロック、プロセスなどが含まれ、広義にはある所望の結果に導くための一貫した連続するステップ或いは指示として考えられる。ステップは、物理的な量の物理的な操作を要求するステップである。通常、必ずしもそうでないが、物理的な操作はコンピュータシステムにおいて記憶され、転送され、組み合わされ、比較され、及び他の操作されることが可能な電気的または磁気的な信号という形をとる。便宜上、及び一般的な使用を参照すると、本発明に関しては、これらの信号はビット、値、素子、記号、文字、用語、数字などとして言及される。
しかし、これらの用語全ては物理的操作及び量に関連していると解釈され、単なる便利なラベルとして、及び当該分野では普通に使用される用語として更に解釈される。具体的に述べられなければ以下の議論で明らかなように、本発明の議論全体を通して”処理する”、”マッピングする”、”翻訳する”、”判断する”、”表示する”などの用語を使用する議論は、データを操作及び変換するコンピュータシステム、または同様の電気的なコンピュータデバイスの動作及びプロセスを参照すると理解される。データはコンピュータシステムのレジスタ及びメモリ内における物理的な(電気的な)量を表現し、コンピュータシステムメモリまたはレジスタ、或いは情報記憶装置、伝送デバイスまたはディスプレイデバイスなどにおける物理的な量を同様に表現する他のデータに変換される。
図1を参照し、ホストコンピュータシステム112を示す。一般的には、本発明に使用されるホストコンピュータシステム112は情報を通信するバス100、バスに接続され情報及び命令を処理する中央プロセッサ101、バス100に接続されホストプロセッサ101に対する情報及び命令を記憶するコンピュータ読み出し可能揮発性メモリユニット102(例えば、ランダムアクセスメモリユニット)、バス100に接続されホストプロセッサ101に対する静的情報及び命令を記憶するコンピュータ読み出し可能不揮発性メモリユニット103(例えば、読み出し専用メモリ)、バス100に接続され情報及び命令を記憶する磁気ディスク、または光ディスク及びディスクドライブなどのデータ記憶デバイス104、バス100に接続され情報をコンピュータユーザに対して表示するディスプレイデバイス105、及びバス100に接続される周辺グラフィックデバイス(PGD)109を含む。1つの例示的な実施形態において、システム112は周知のx86アーキテクチャから成る。
PGD109は、ディスプレイリスト内に見いだされる(グラフィックプリミティブを含み、且つコマンドを与える)一連のディスプレイ命令を実行するディスプレイプロセッサ110を含み得る。ディスプレイプロセッサ110はデータ及び制御信号を、ディスプレイデバイス105上に画像を描くためにディスプレイデバイス105をリフレッシュするフレームバッファに供給する。
図2Aは、図1の例示的なホストコンピュータシステム112内の仮想、論理、及び物理メモリ空間を表す論理図である。システム112内において、プロセッサ101のページング機能を使用して、論理メモリ空間202は物理メモリ空間203内にマッピングされる。システム112のPGD109は典型的に仮想メモリ空間202へのアクセスを有さず、むしろ物理メモリ空間203へのアクセスを有することが理解される。一般的に、仮想メモリ空間はホストプロセッサ101によってのみ容易にアクセスされる。
図2Bは例示的なホストコンピュータシステム112内におけるメモリ空間207のブロック図である。メモリ空間207は、その中に記憶されたCPUページテーブル(CPU/PT)205、グラフィックデバイスページテーブル(GDPT)206、グラフィックバッファ208、及びデータベース209を含む。グラフィックバッファ208は物理メモリ空間203内に存在し、論理メモリ空間202内にマッピングされる(図2A)。本発明の好ましい実施形態で、グラフィックバッファ208は、ディスプレイリスト、テクスチャマップ、データなどのグラフィックデータを含み得、或いは空であり得る。グラフィックバッファ208のページは論理メモリ空間202内において連続しているが、物理メモリ203空間内では連続し得るか、不連続であり得る。グラフィックバッファ208のページが物理メモリ203空間内において連続するか否かは、例示的なホストコンピュータシステム112内においてページングが動作状態にあるか否かによる。CPU/PT205は、グラフィックバッファ208を含むメモリブロックのアドレスを論理メモリ空間202及び物理メモリ空間203の間にマッピングする。例示的なホストコンピュータシステム112内においてページングが動作状態にない場合、グラフィックバッファ208のページの物理アドレスはグラフィックバッファ208のページの論理アドレスと同一であり、CPU/PT205はグラフィックバッファ208のページの論理アドレスを物理アドレスに翻訳する必要がなくなる。
一般的に、例示的なホストコンピュータシステム112内のCPU/PT205は仮想メモリ空間201(図2A)のみに常駐し、プロセッサ102によってのみアクセス可能である。CPU/PT205は一般的に例示的なホストコンピュータ112内の論理メモリ空間202内においては容易に利用できない。例示的なホストコンピュータシステム112内においてページングが動作状態にある場合、グラフィックバッファ208のページの物理アドレスはグラフィックバッファ208のページの論理アドレスと同一ではない。その場合、CPU/PT205はグラフィックバッファ208のページの論理アドレスをグラフィックバッファ208のページのマッピングされた物理アドレスに翻訳する必要がある。そのとき、物理ページは不連続である可能性がある。
図1のPGD109はCPU/PT205に容易にアクセスできない。したがって、本発明の一局面は、PGD109に対して物理メモリ空間203内で不連続であり得るグラフィックバッファ208のページの物理アドレスへのアクセスを提供するために、グラフィックデバイスページテーブル(GDPT)206を構築する。GDPT206は、以下に説明される本発明の方法によって論理メモリ空間202及び物理メモリ空間203内に記憶される。
図3A及び3Bは、本発明の方法による、作成されたグラフィックバッファ208のページが物理メモリ空間内で連続するかどうかを判断するためのプロセス300のステップを示すフロー図である。グラフィックバッファ208のページが物理メモリ空間内で連続していないことを条件に、プロセス300はPGD109がグラフィックバッファ208のページにアクセスできるようにGDPT206を構築する。プロセス300は、システム112のコンピュータ読み出し可能メモリユニット内に記憶されるプログラムコードとして実行される。プログラムコードは、以下に説明されるステップを実施するプロセッサ101上で実行される。
図3Aを参照すると、プロセス300のステップ302は、グラフィックバッファ208に所定のサイズ及びハンドルのメモリを割り当てるためにユーザリクエストを受けることを必要とする。プロセス300のステップ304は、グラフィックバッファ208の所定のサイズ内の、ホストコンピュータシステム112によって使用されるサイズのページの数を判断することを必要とする。グラフィックバッファの所定のサイズ内のページの数は、最も近いページに切上げる方法によって判断される。本発明の好ましい実施形態において、ステップ304は以下のブール関係式(2)及び(3)を使用することにより実行される。
サイズAND4095が0でない場合、サイズ=サイズ+4096 (2)
サイズ=サイズAND(NOT4095) (3)
ブール関係式(2)及び(3)は好ましい実施形態におけるホストプロセッサ101によって使用されるページサイズが4キロバイトであると見なす。しかし、本発明の方法は異なったページサイズ(例えば、1、2、8キロバイト)を使用するホストコンピュータシステムにおいても良好に適応する。ブール関係式(2)及び(3)はグラフィックバッファの所定のサイズを記憶するのに要求されるページ数に対して整数を得る。
図3Aのプロセス300のステップ306は、DOS保護モードインタフェース(DPMI)サービスが現在ホストコンピュータシステム112(図1)内において動作状態にあるかどうかを判断することを必要とする。DPMIサービスが現在ホストコンピュータシステム112(図1)内において動作状態にない場合、ページングは動作状態にないと見なされ、且つグラフィックバッファ208の全物理ページは物理メモリ空間203内で連続すると見なされる。
DPMIサービスが現在ホストコンピュータシステム112内において動作状態にないことを条件に、プロセス300は周知のプロセス及び技法を使用して実行されるステップ308及び310に進む。ステップ308は、論理メモリ空間及び物理メモリ空間内でグラフィックバッファ208にメモリブロックを割り当てることを必要とする。ステップ308で割り当てられるメモリブロックは上記ステップ304で判断された適当なページ数を含む。ステップ308は、Cプログラミング言語の数々の周知のメモリ割り当てソフトウェア手順コールを使用して実行される。そのようなステップ308にて使用されるメモリ分配手順コールの1つに、DPMIメモリ割り当てコールがある。ステップ310は、グラフィックバッファ208のベース物理アドレス(ステップ308において発生される)をユーザハンドルによって指標化される図2Bのデータベース209に記憶する。現在DPMIサービスがホストコンピュータシステム112内で動作状態にないことを条件に、ステップ308及び310の実行でプロセス300が終了する。
DPMIサービスがホストコンピュータシステム112内で動作状態にあることを条件に、プロセス300はホストコンピュータシステム112内においてページングが動作状態にあるどうかを判断する図3Aのステップ312に進む。本発明の例示的な実施形態において、ホストマイクロプロセッサ101はx86アーキテクチャ(例えば、80386マイクロプロセッサ)から成る。インテル80386型マイクロプロセッサの制御レジスタゼロ(CR0)の内容を検査することによって、x86型マイクロプロセッサ内でページングが動作状態にあるかどうかを判断することが可能となる。インテル80386型マイクロプロセッサの制御レジスタゼロ(CR0)のビット31が設定されている場合、ホストコンピュータシステム112内でページングは動作状態にある。これはステップ312においてチェックされる。
ホストコンピュータシステム112内において現在ページングが動作状態にないことを条件に、グラフィックバッファ208の全物理ページは物理メモリ空間203内で連続すると見なされ、プロセス300はステップ312から、上記説明の通り、プロセス300を終了するステップ308及び310を実行するために進む。
ホストコンピュータシステム112内において現在ページングが動作状態にあることを条件に、プロセス300は図2BのCPU/PT205の仮想アドレスにアクセスするために図3Aのステップ314に進む。本発明の好ましい実施形態において、CPU/PT205の仮想アドレスは図1のホストマイクロプロセッサ101を実現するインテル80386型マイクロプロセッサの制御レジスタ3(CR3)においてアクセスされる。次に、ユーザアプリケーションソフトウェアによる進行を許可するため、ステップ316がCPU/PT205の仮想アドレスをマッピングするか、CPU/PT205の論理アドレスに翻訳する。
ステップ318は論理メモリ空間202及び物理メモリ空間203内の第1のメモリブロックを図2Bのグラフィックバッファ208に割り当てる。本発明の例示的な実施形態において、第1のメモリブロックはステップ308に関して説明された「C」機能コールを使用することによって割り当てられる。ステップ318においては数々の周知のメモリ割り当て手順が利用される。ステップ318で割り当てられたメモリブロックは、ステップ302においてグラフィックバッファに受けられたサイズパラメータを基に上記ステップ304において判断された適当なページ数を含むサイズになっている。ステップ320は、第1のメモリブロックのページがホストコンピュータシステム112の主メモリからディスク記憶装置104にスワップされることを防ぐためにステップ318で割り当てられた第1のメモリブロックをロックする。本発明の好ましい実施形態において、第1のメモリブロックはDPMIコールを使用することによってロックされる。第1のメモリブロックは、PGD109によってアクセスされた場合にグラフィックバッファ208の全ページが物理メモリ空間203にあること確実にするためにロックされる。
図3Aのステップ322は論理メモリ空間及び物理メモリ空間内の第2のメモリブロックを図2BのGDPT206の記憶装置に割り当てる。プロセス300の次の4つのステップ(324、326、328及び330)は本発明のGDPT206を構築する。図3Bのステップ324はグラフィックバッファ208の第1のページの論理アドレス(ステップ318において発生される)にアクセスし、グラフィックバッファ208の第1のページの対応する物理アドレスをCPU/PT206から判断する。ステップ326はステップ324にてアクセスされた論理アドレス及び物理アドレスをGDPT206のエントリに記憶する。このステップは、PGD109によってアクセス可能な物理メモリ空間203内にCPU/PT206のコピーを構築する。ステップ328は次にグラフィックバッファ208の次のページの論理アドレスにアクセスし、グラフィックバッファ208の次のページの対応する物理アドレスをCPU/PT206から判断する。ステップ330はステップ328にてアクセスされた論理アドレス及び物理アドレスをGDPT206内に記憶する。再び、ステップ330は、PGD109によってアクセス可能な形態及び場所における物理メモリ内にて、GDPT206のエントリを構成する。
図3Bのステップ332はグラフィックバッファ208の現在のページ及び前のページの物理アドレスが物理メモリ空間内で相互に連続しているかどうかを判断する。本発明の実施形態において、ステップ332は、現在のページの物理アドレスが前のページの物理アドレス及びホストコンピュータシステム112によって使用されるバイトでのページサイズの和と同一であるか否かを判断することによって実行される。グラフィックバッファ208の現在のページ及び前のページが物理メモリ空間内で相互に連続していることを条件に、プロセス300はグラフィックバッファ208の現在のページがグラフィックバッファ208の最後のページであるかどうかを判断するためステップ334に進む。グラフィックバッファ208の現在のページがグラフィックバッファ208の最後のページでないことを条件に、プロセス300はグラフィックバッファ208の次のページの論理アドレスにアクセスするために、及びグラフィックバッファ208の同ページの対応する物理アドレスをCPU/PT205から判断するためにステップ328に戻る。物理メモリ空間内のGDPT206の論理アドレスはPGD109によってアクセス可能な形態及び場所にあることが理解される。グラフィックバッファ208の全ページが物理メモリ空間内で相互に連続していることが見出されることを条件に、プロセス300はグラフィックバッファ208の論理ベースアドレス及び物理ベースアドレスをユーザハンドルによって指標化されるデータベース209に記憶するステップ336に進む。物理メモリ空間203内でグラフィックバッファ208のページは連続していることから、ステップ336にてGDPT206は構築されたが、GDPT206はPGD109によって必要とされない。グラフィックバッファ208の全ページが物理メモリ空間内にて連続することを条件に、図3Bのステップ335はステップ322においてGDPT206に割り当てられたメモリブロックを解放する。
グラフィックバッファ208の1つのページが物理メモリ空間内でグラフィックバッファ208の前のページと連続していないことをステップ332において検出した場合、プロセス300はステップ340に進む。ステップ340はGDPT206の物理ベースアドレスをCPU/PT205を使用するGDPT206の論理ベースアドレスから判断する。ステップ342はユーザハンドルによって指標化されたデータベース209内にGDPT206の論理ベースアドレス及び物理ベースアドレスを記憶する。ステップ344が次にグラフィックバッファ208が不連続であることを表示する、グラフィックバッファ208の物理アドレスの指定ビットを設定する。本発明の好ましい実施形態において、ステップ344はグラフィックバッファ208が不連続であることを表示するためにグラフィックバッファ208の物理ベースアドレスのビットゼロを(例えば、「1」に)設定する。それ以外では、ビットゼロは論理「0」である。グラフィックバッファ208の全ページが物理メモリ空間内で連続していないことを条件に、GDPT206が必要とされる。ステップ345はスワップを防ぐためにメモリ内のGDPT206をロックする。
プロセス300は、物理メモリ空間内で、及び物理メモリ空間203からPGD109がアクセス可能な形態で、GDPT206を効率的に発生させる。以下に議論されるように、PGD109は、物理メモリ不連続グラフィックバッファ208の物理ページを有利に見つけるためにGDPT206を利用し得る。この方式で、不連続な物理メモリページに記憶された大規模なグラフィックバッファ208(例えば、1ページ以上の)が、PGD109がホストプロセッサ101(図1)の割り込みなしにグラフィック表現を行うことによって、PGD109によって直接アクセスされる。
図4を参照して、PGD109に対してプロセス300によって発生されたグラフィックバッファ208の物理アドレスを提供するための本発明の方法によるプロセス400のフロー図を示す。プロセス400はシステム112のコンピュータ読み出し可能メモリユニット内に記憶されるプログラムコードとして実行される。プログラムコードはホストプロセッサ101上で実行される。ステップ402はグラフィックバッファ208のハンドルにアクセスする。ステップ404は、所望のグラフィックバッファのハンドルによって指標化されたグラフィックバッファの物理アドレスを獲得するため、データベース209を使用する。最後に、ステップ406はグラフィックバッファ208の物理アドレスを図1のPGD109に転送する。プロセス400は一般的に、PGD109にグラフィックバッファ208内に記憶されたデータを処理するように命令する前に、ホストコンピュータシステム112によって実行される。したがって、プロセス300によるグラフィックバッファ208の構築とプロセス400の実施との間に、データはシステム112によってグラフィックバッファ208にロードされる。
図5を参照して、本発明の方法によるプロセス500のフロー図を示す。プロセス500はプログラムコードとして実行され、システム112のコンピュータ読み出し可能メモリユニット内に記憶され得る。本発明の好ましい実施形態において、このプログラムコードは図1のPGD109内におけるコンピュータ読み出し可能メモリユニット内に記憶される。さらに本発明の好ましい実施形態において、プロセス500のプログラムコードは図1のディスプレイプロセッサ110上で実行される。しかし、本発明はプロセス500のプログラムコードをホストプロセッサ101または指定された論理回路上で実行する別の実施形態においても良好に適応され得る。プロセス500はPGD109によるリクエストの後、グラフィックバッファ208の物理アドレスに関してシステム112に呼び出され得、或いはPGD109に直接物理アドレスを非同期的に転送するシステム112に対して割り込み駆動され、且つ反応的であり得る。ステップ502において、グラフィックバッファ208の物理アドレスが受け取られる。ステップ504において、グラフィックバッファ208の物理アドレスの指定ビットが設定されたかどうか判断される。
グラフィックバッファ208の物理アドレスの指定ビット(ビットゼロ)が設定されていないことを条件に、グラフィックバッファ208のページは物理メモリ空間203内で連続すると見なされ、プロセス500はステップ508に進む。ステップ508において、PGD109は、グラフィックバッファ208にアクセスするためにグラフィックバッファ208の最初の物理アドレスを使用する。グラフィックバッファ208の引き続くページは、EOFに遭遇するまで、処理のため連続してアクセスされる。グラフィックバッファ208の物理アドレスの指定ビットが設定されていることを条件に、グラフィックバッファ208のページは物理メモリ空間203内で不連続であると見なされ、プロセス500はステップ510に進む。ステップ510において、PGD109はGDPT206の開始アドレスにアクセスし、処理のため、グラフィックバッファ208の物理ページを位置決めし、アクセスするためにGDPT206エントリを使用する。これは、GDPT206がPGD109に対してグラフィックバッファ208のページの仮想アドレスと対応する物理空間アドレスとの間のアクセス可能なマップを提供するため、許可される。GDPT200を使用することによって、PGD109はグラフィックバッファ208を構成する不連続な物理ページを見つけ得、グラフィック表現(例えば、記憶されたディスプレイリスト)のため、不連続な物理ページにアクセスし得る。
以上により、メモリが連続するかどうかを判断し、ページテーブルを構築するための方法である本発明の好まし実施形態が説明された。本発明が特定の実施形態で説明されたが、本発明がそのような実施形態に限定されたものであると解釈されてはならず、むしろ、以下の請求項によって解釈されなければならない。

Claims (12)

  1. バスに接続されたホストプロセッサ、該バスに接続された物理メモリ、及び周辺グラフィックデバイスを有するコンピュータシステムにおける、該周辺グラフィックデバイスに対して該物理メモリ内に記憶されるグラフィックバッファのページへのアクセスを提供する、コンピュータによって実行される方法であって、
    (a)該物理メモリのページを該グラフィックバッファに割り当て、該物理ページが該物理メモリ内で不連続であり得る、コンピュータによって実行される工程と、
    (b)該グラフィックバッファのページそれぞれの論理アドレス及び物理アドレスの間のマッピングを維持するグラフィックデバイスページテーブルを構築し、前記グラフィックデバイスページテーブルは複数のエントリを含み、前記各エントリは前記グラフィックバッファの論理アドレスとそれに対応する物理アドレスとを含み、該構築する工程が、該ホストプロセッサによって実施され、該周辺グラフィックデバイスにアクセスが不可能なプロセッサページテーブルを読み出す工程を含む、コンピュータによって実行される工程と、
    (c)前記グラフィックバッファの全ページが前記物理メモリ内で連続するかどうかを判断する工程と、
    (d)前記グラフィックバッファの前記ページの全てが物理メモリ内で連続することを条件に、前記周辺グラフィックデバイスが前記グラフィックバッファにアクセスできるように前記グラフィックバッファのベース物理アドレスを供給する工程と、
    前記グラフィックバッファの前記ページの全てが前記物理メモリ内で連続する、というわけではないことを条件に、前記周辺グラフィックデバイスが前記グラフィックバッファにアクセスできるように前記グラフィックデバイスページテーブルのベース物理アドレスを前記周辺グラフィックデバイスに供給する工程と、
    を含む、コンピュータによって実行される方法。
  2. 前記グラフィックバッファの前記ページの全てが前記物理メモリ空間内で連続するかどうかを判断する前記工程が、前記グラフィックバッファのページそれぞれについて、現在アクセスされているページの該物理アドレスが前にアクセスされたページの前記物理アドレス及び前記コンピュータシステムによって使用されたページサイズの和と同一であるかどうかを判断する工程を含む、請求項1に記載のコンピュータによって実行される方法。
  3. バスに接続されたホストプロセッサ、該バスに接続された物理メモリ、及び周辺グラフィックデバイスを有するコンピュータシステムにおける、該周辺グラフィックデバイスに対して該物理メモリ内に記憶されるグラフィックバッファのページへのアクセスを提供する、コンピュータによって実行される方法であって、
    (a)該物理メモリのページを該グラフィックバッファに割り当て、該物理ページが該物理メモリ内で不連続であり得る、コンピュータによって実行される工程と、
    (b)該グラフィックバッファのページそれぞれの論理アドレス及び物理アドレスの間のマッピングを維持するグラフィックデバイスページテーブルを構築し、前記グラフィックデバイスページテーブルは複数のエントリを含み、前記各エントリは前記グラフィックバッファの論理アドレスとそれに対応する物理アドレスとを含み、該構築する工程が、該ホストプロセッサによって実施され、該周辺グラフィックデバイスにアクセスが不可能なプロセッサページテーブルを読み出す工程を含む、コンピュータによって実行される工程と、
    (c)前記グラフィックバッファの全ページが前記物理メモリ内で連続するかどうかを判断する工程と、
    (d)前記グラフィックバッファの前記ページの全てが物理メモリ内で連続することを条件に、前記周辺グラフィックデバイスが前記グラフィックバッファにアクセスできるように前記グラフィックバッファのベース物理アドレスを供給する工程と、
    前記グラフィックバッファの前記ページの全てが前記物理メモリ内で連続する、というわけではないことを条件に、
    (1)前記グラフィックデバイスページテーブルの論理アドレス及び物理アドレスを前記グラフィックバッファと関連するユーザハンドルによって指標化されたデータベースに記憶する工程と、
    (2)前記グラフィックバッファの前記アドレス全てが前記物理メモリ内で連続するわけではないことを表示するグラフィックバッファの物理アドレスの指定ビットを設定する工程と、
    (3)前記グラフィックバッファの物理アドレスを前記周辺グラフィックデバイスに転送する工程と、
    (4)前記グラフィックバッファの物理アドレスの前記指定ビットが設定されたかどうかを前記周辺グラフィックデバイスが判断する工程と、
    (5)前記グラフィックバッファの物理アドレスの前記ビットが設定されていることを条件に、前記グラフィックバッファの不連続ページにアクセスするために前記グラフィックデバイスページテーブルを前記周辺グラフィックデバイスが使用する工程と、を実行する工程と、
    を含む、コンピュータによって実行される方法。
  4. バスに接続されたホストプロセッサ、該バスに接続された物理メモリ、及び周辺グラフィックデバイスを含むコンピュータシステムであって、該物理メモリが、該周辺グラフィックデバイスに対して該物理メモリ内に記憶されるグラフィックバッファのページへのアクセスを提供する方法を、該コンピュータシステムに実行させるためのプログラム命令を、該物理メモリは含み、該方法が、
    前記周辺グラフィックデバイスにアクセスが不可能なプロセッサページテーブルの開始仮想アドレスにアクセスする工程と、
    前記プロセッサページテーブルの該開始仮想アドレスを、ユーザアプリケーションによる進行を許可するために、開始論理アドレスへマッピングする工程と、
    該グラフィックバッファのページそれぞれの論理アドレス及び物理アドレスの間のマッピングを維持するグラフィックデバイスページテーブルに論理メモリブロック及び物理メモリブロックを割り当てる工程と、
    前記グラフィックバッファのページそれぞれの論理アドレスに連続してアクセスするために前記プロセッサページテーブルを使用し、前記グラフィックバッファのページそれぞれの対応する物理アドレスを判断する工程と、
    前記グラフィックバッファのページそれぞれの論理アドレス及び物理アドレスを前記メモリブロックに記憶する工程と、
    前記グラフィックバッファの前記ページの全てが前記物理メモリ内で連続するかどうかを判断する工程と、
    前記グラフィックバッファの前記ページの全てが物理メモリ空間内で連続することを条件に、前記周辺グラフィックデバイスが前記グラフィックバッファにアクセスできるように前記グラフィックバッファのベース物理アドレスを供給する工程と、
    前記グラフィックバッファの前記ページの全てが前記物理メモリ内で連続する、というわけではないことを条件に、前記周辺グラフィックデバイスが前記グラフィックバッファにアクセスできるように前記グラフィックデバイスページテーブルのベース物理アドレスを前記周辺グラフィックデバイスに供給する工程と、
    を含む、コンピュータシステム。
  5. 前記グラフィックバッファの前記ページの全てが前記物理メモリ空間内で連続するかどうかを判断する前記工程が、前記グラフィックバッファのページそれぞれについて、現在アクセスされているページの物理アドレスが前にアクセスされたページの物理アドレス及び前記コンピュータシステムによって使用されたページサイズの和と同一であるかどうかを判断する工程を含む、請求項4に記載のコンピュータシステム。
  6. 該方法は、前記グラフィックバッファの前記ページの全てが前記物理メモリ内で連続する、というわけではないことを条件に、
    (1)前記グラフィックデバイスページテーブルの論理アドレス及び物理アドレスを前記グラフィックバッファと関連するユーザハンドルによって指標化されたデータベースに記憶する工程と、
    (2)前記グラフィックバッファの前記アドレス全てが前記物理メモリ内で連続するわけではないことを表示するグラフィックバッファの物理アドレスの指定ビットを設定する工程と、
    (3)前記グラフィックバッファの物理アドレスを前記周辺グラフィックデバイスに転送する工程と、
    (4)前記グラフィックバッファの物理アドレスの前記指定ビットが設定されたかどうかを前記周辺グラフィックデバイスが判断する工程と、
    (5)前記グラフィックバッファの物理アドレスの前記ビットが設定されていることを条件に、前記グラフィックバッファの不連続ページにアクセスするために前記グラフィックデバイスページテーブルを前記周辺グラフィックデバイスが使用する工程と、を実行する工程と、
    をさらに含む請求項4に記載のコンピュータシステム。
  7. ホストプロセッサ、物理メモリ、及び周辺グラフィックデバイスを有するコンピュータシステムにおいて、該周辺グラフィックデバイスに対してグラフィックバッファのページへのアクセスを提供するコンピュータによって実行される方法であって、該方法が、
    所定のサイズのグラフィックバッファにメモリを割り当てるためのリクエストを受けるコンピュータによって実行される工程と、
    該所定のサイズ内での、前記コンピュータシステムによって使用されるページサイズのページ数を判断するコンピュータによって実行される工程と、
    該グラフィックバッファを記憶するための論理メモリ及び物理メモリの第1のメモリブロックを割り当て、該第1のメモリブロックのページが該物理メモリの外部にスワップされることを防ぐために該第1のメモリブロックをロックするコンピュータによって実行される工程と、
    該周辺グラフィックデバイスにアクセスが可能なグラフィックデバイスページテーブルを物理メモリ内に構築し、前記グラフィックデバイスページテーブルは複数のエントリを含み、前記各エントリは前記グラフィックバッファの論理アドレスとそれに対応する物理アドレスとを含み、該グラフィックデバイスページテーブルが該グラフィックバッファのページそれぞれの論理アドレス及び物理アドレスを含むコンピュータによって実行される工程と、
    該グラフィックバッファの全ページが物理メモリ内で連続するかどうかを判断するコンピュータによって実行される工程と、
    前記グラフィックバッファの前記ページの全てが前記物理メモリ空間内で連続することを条件に、前記周辺グラフィックデバイスが前記グラフィックバッファにアクセスできるように前記グラフィックバッファの前記物理アドレスを供給するコンピュータによって実行される工程と、
    前記グラフィックバッファの前記ページの全てが前記物理メモリ内で連続する、というわけではないことを条件に、前記周辺グラフィックデバイスが前記グラフィックバッファにアクセスできるように前記グラフィックデバイスページテーブルを供給するコンピュータによって実行される工程と、
    を含む、コンピュータによって実行される方法。
  8. グラフィックデバイスページテーブルを構築する前記工程が、
    前記コンピュータシステム内のプロセッサページテーブルの開始仮想アドレスにアクセスし、前記プロセッサページテーブルが前記周辺グラフィックデバイスにアクセスが不可能な工程と、
    前記プロセッサページテーブルの該開始仮想アドレスを、ユーザアプリケーションによる進行を許可するために、開始論理アドレスへマッピングする工程と、
    前記グラフィックデバイスページテーブルに前記物理メモリ内の第2のメモリブロックを割り当てる工程と、
    前記グラフィックバッファのページそれぞれの論理アドレスに連続してアクセスし、前記グラフィックバッファのページそれぞれの対応する物理アドレスを該プロセッサページテーブルから判断し、前記グラフィックバッファのページそれぞれの論理アドレス及び物理アドレスを該第2のメモリブロックに記憶する工程と、
    を含む、請求項7に記載のコンピュータによって実行される方法。
  9. 前記周辺グラフィックデバイスが前記グラフィックバッファにアクセスできるように前記グラフィックバッファの前記物理アドレスを供給する前記工程が、
    前記グラフィックバッファの物理アドレス及び論理アドレスを前記グラフィックバッファに関連するユーザハンドルによって指標化されたデータベースに記憶する工程と、
    前記グラフィックバッファのハンドルにアクセスする工程と、
    前記グラフィックバッファの物理アドレスを獲得するために該データベースを使用する工程と、
    前記グラフィックバッファの前記物理アドレスを前記周辺グラフィックデバイスに転送する工程と、
    を含む、請求項7に記載のコンピュータによって実行される方法。
  10. 前記周辺グラフィックデバイスが前記グラフィックバッファにアクセスできるように前記グラフィックデバイスページテーブルを供給する前記工程が、
    前記グラフィックデバイスページテーブルの物理アドレス及び論理アドレスを前記グラフィックバッファに関連するユーザハンドルによって指標化されたデータベースに記憶する工程と、
    前記グラフィックバッファのハンドルにアクセスする工程と、
    グラフィックバッファの物理アドレスを獲得するために該データベースを使用する工程と、
    前記グラフィックバッファの前記アドレス全てが前記物理メモリ内で連続するわけではないことを表示する前記グラフィックバッファの物理アドレスの指定ビットを設定する工程と、
    前記グラフィックバッファの物理アドレスを前記周辺グラフィックデバイスに転送する工程と、
    前記周辺グラフィックデバイスが、前記グラフィックバッファの物理アドレスの前記指定ビットが設定されているかどうかを判断する工程と、
    前記グラフィックバッファの物理アドレスの前記指定ビットが設定されていることを条件に、前記周辺グラフィックデバイスが前記グラフィックバッファにアクセスするために前記グラフィックデバイスページテーブルを使用する工程と、
    を含む、請求項7に記載のコンピュータによって実行される方法。
  11. 前記グラフィックバッファの前記ページの全てが物理メモリ内で連続するかどうかを判断する前記工程が、前記グラフィックバッファのページそれぞれについて、現在アクセスされているページの物理アドレスが前にアクセスされたページの該物理アドレス及び前記コンピュータシステムによって使用された前記ページサイズの和と同一であるかどうかを判断する工程を含む、請求項7に記載のコンピュータによって実行される方法。
  12. 該所定のサイズ内での、前記コンピュータシステムによって使用されるページサイズのページの数を判断する前記工程がブールプロセスによって実行され、該ブールプロセスが、
    第1のブールAND操作を前記グラフィックバッファの前記受け取られた所定のサイズ、及び前記コンピュータシステムによって使用される前記ページサイズについて実施するコンピュータによって実行される工程と、
    第1のブールAND操作がゼロでない結果を与えることを条件として、前記ページサイズを前記受け取られた所定のサイズに付加するコンピュータによって実行される工程と、
    第2のブールAND操作を前記所定のサイズ、及び前記コンピュータシステムによって使用される前記ページサイズの論理反転について実施するコンピュータによって実行される工程と、
    を含む、請求項7に記載のコンピュータによって実行される方法。
JP51665198A 1996-09-30 1997-09-22 連続するメモリのバッファを獲得し、ページテーブルを構築する方法 Expired - Lifetime JP4156033B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/724,566 US5987582A (en) 1996-09-30 1996-09-30 Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device
US08/724,566 1996-09-30
PCT/US1997/017138 WO1998014878A1 (en) 1996-09-30 1997-09-22 A method of obtaining a buffer of contiguous memory and building a page table

Publications (2)

Publication Number Publication Date
JP2001501758A JP2001501758A (ja) 2001-02-06
JP4156033B2 true JP4156033B2 (ja) 2008-09-24

Family

ID=24910951

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51665198A Expired - Lifetime JP4156033B2 (ja) 1996-09-30 1997-09-22 連続するメモリのバッファを獲得し、ページテーブルを構築する方法

Country Status (6)

Country Link
US (1) US5987582A (ja)
EP (1) EP1038229A1 (ja)
JP (1) JP4156033B2 (ja)
KR (1) KR20000048739A (ja)
TW (1) TW357293B (ja)
WO (1) WO1998014878A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275243B1 (en) * 1998-04-08 2001-08-14 Nvidia Corporation Method and apparatus for accelerating the transfer of graphical images
US6266761B1 (en) * 1998-06-12 2001-07-24 International Business Machines Corporation Method and system in an information processing system for efficient maintenance of copies of values stored within registers
US6560688B1 (en) * 1998-10-01 2003-05-06 Advanced Micro Devices, Inc. System and method for improving accelerated graphics port systems
US6449697B1 (en) * 1999-04-23 2002-09-10 International Business Machines Corporation Prestaging data into cache in preparation for data transfer operations
WO2001013583A2 (en) 1999-08-16 2001-02-22 Iready Corporation Internet jack
US6518973B1 (en) * 1999-08-31 2003-02-11 Microsoft Corporation Method, system, and computer program product for efficient buffer level management of memory-buffered graphics data
DE19954407A1 (de) * 1999-11-12 2001-05-17 Gfs Systemtechnik Gmbh & Co Kg Verfahren zum direkten Aufrufen einer Funktion mittels eines Softwaremoduls durch einen Prozessor mit einer Memory-Management-Unit (MMU)
US6600493B1 (en) * 1999-12-29 2003-07-29 Intel Corporation Allocating memory based on memory device organization
US6724390B1 (en) 1999-12-29 2004-04-20 Intel Corporation Allocating memory
US6684305B1 (en) * 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
US6662289B1 (en) * 2001-05-15 2003-12-09 Hewlett-Packard Development Company, Lp. Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems
US6906720B2 (en) * 2002-03-12 2005-06-14 Sun Microsystems, Inc. Multipurpose memory system for use in a graphics system
WO2003090052A2 (en) * 2002-04-18 2003-10-30 Advanced Micro Devices Inc. A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path
US6986016B2 (en) * 2002-09-30 2006-01-10 International Business Machines Corporation Contiguous physical memory allocation
US7369134B2 (en) * 2003-12-29 2008-05-06 Anark Corporation Methods and systems for multimedia memory management
US7957379B2 (en) 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
JP4188341B2 (ja) * 2005-05-11 2008-11-26 株式会社東芝 携帯型電子機器
US20080028181A1 (en) * 2006-07-31 2008-01-31 Nvidia Corporation Dedicated mechanism for page mapping in a gpu
US20080276067A1 (en) * 2007-05-01 2008-11-06 Via Technologies, Inc. Method and Apparatus for Page Table Pre-Fetching in Zero Frame Display Channel
US7783859B2 (en) * 2007-07-12 2010-08-24 Qnx Software Systems Gmbh & Co. Kg Processing system implementing variable page size memory organization
JP2011018182A (ja) * 2009-07-08 2011-01-27 Panasonic Corp アドレス変換装置
US9047686B2 (en) * 2011-02-10 2015-06-02 Qualcomm Incorporated Data storage address assignment for graphics processing
KR101821633B1 (ko) * 2013-03-14 2018-03-08 삼성전자주식회사 메모리 시스템
US9880783B2 (en) * 2015-10-28 2018-01-30 Sandisk Technologies Llc System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller
KR20180041898A (ko) * 2016-10-17 2018-04-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN115794667B (zh) * 2023-01-19 2023-04-18 北京象帝先计算技术有限公司 内存管理方法、系统、组件及设备

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4092715A (en) * 1976-09-22 1978-05-30 Honeywell Information Systems Inc. Input-output unit having extended addressing capability
US4285040A (en) * 1977-11-04 1981-08-18 Sperry Corporation Dual mode virtual-to-real address translation mechanism
IL72685A (en) * 1983-08-30 1988-08-31 Gen Electric Advanced video object generator
US4583185A (en) * 1983-10-28 1986-04-15 General Electric Company Incremental terrain image generation
US4586038A (en) * 1983-12-12 1986-04-29 General Electric Company True-perspective texture/shading processor
US4855937A (en) * 1984-08-08 1989-08-08 General Electric Company Data block processing for fast image generation
US4821212A (en) * 1984-08-08 1989-04-11 General Electric Company Three dimensional texture generator for computed terrain images
US4715005A (en) * 1984-08-08 1987-12-22 General Electric Company Terrain/seascape image generator with math model data base
US4692880A (en) * 1985-11-15 1987-09-08 General Electric Company Memory efficient cell texturing for advanced video object generator
IL79822A (en) * 1985-12-19 1990-03-19 Gen Electric Method of comprehensive distortion correction for a computer image generation system
US4862388A (en) * 1986-12-15 1989-08-29 General Electric Company Dynamic comprehensive distortion correction in a real time imaging system
US4811245A (en) * 1985-12-19 1989-03-07 General Electric Company Method of edge smoothing for a computer image generation system
US4905164A (en) * 1986-12-19 1990-02-27 General Electric Company Method for modulating color for effecting color cell texture
US5191642A (en) * 1987-04-09 1993-03-02 General Electric Company Method for efficiently allocating computer resource for real time image generation
US4825391A (en) * 1987-07-20 1989-04-25 General Electric Company Depth buffer priority processing for real time computer image generating systems
JPH0195347A (ja) * 1987-10-08 1989-04-13 Nec Corp アドレス変換方式
US4958305A (en) * 1987-11-04 1990-09-18 General Electric Company Polygon edge clipping
US4965745A (en) * 1987-12-18 1990-10-23 General Electric Company YIQ based color cell texture
US5367615A (en) * 1989-07-10 1994-11-22 General Electric Company Spatial augmentation of vertices and continuous level of detail transition for smoothly varying terrain polygon density
US5369744A (en) * 1989-10-16 1994-11-29 Hitachi, Ltd. Address-translatable graphic processor, data processor and drawing method with employment of the same
US5126726A (en) * 1989-12-27 1992-06-30 General Electric Company Picture element encoding
EP0447145B1 (en) * 1990-03-12 2000-07-12 Hewlett-Packard Company User scheduled direct memory access using virtual addresses
US5268996A (en) * 1990-12-20 1993-12-07 General Electric Company Computer image generation method for determination of total pixel illumination due to plural light sources
US5420970A (en) * 1991-03-13 1995-05-30 Martin Marietta Corporation Method for determining computer image generation display pixels occupied by a circular feature
US5293467A (en) * 1991-04-03 1994-03-08 Buchner Gregory C Method for resolving priority between a calligraphically-displayed point feature and both raster-displayed faces and other calligraphically-displayed point features in a CIG system
US5187754A (en) * 1991-04-30 1993-02-16 General Electric Company Forming, with the aid of an overview image, a composite image from a mosaic of images
US5313577A (en) * 1991-08-21 1994-05-17 Digital Equipment Corporation Translation of virtual addresses in a computer graphics system
TW225595B (ja) * 1991-09-03 1994-06-21 Gen Electric
US5675762A (en) * 1992-04-03 1997-10-07 International Business Machines Corporation System for locking down part of portion of memory and updating page directory with entry corresponding to part of portion of the memory locked down
US5664139A (en) * 1994-05-16 1997-09-02 Compaq Computer Corporation Method and a computer system for allocating and mapping frame buffers into expanded memory
US5798762A (en) * 1995-05-10 1998-08-25 Cagent Technologies, Inc. Controlling a real-time rendering engine using a list-based control mechanism
US5793385A (en) * 1996-06-12 1998-08-11 Chips And Technologies, Inc. Address translator for a shared memory computing system

Also Published As

Publication number Publication date
JP2001501758A (ja) 2001-02-06
US5987582A (en) 1999-11-16
EP1038229A1 (en) 2000-09-27
TW357293B (en) 1999-05-01
KR20000048739A (ko) 2000-07-25
WO1998014878A1 (en) 1998-04-09

Similar Documents

Publication Publication Date Title
JP4156033B2 (ja) 連続するメモリのバッファを獲得し、ページテーブルを構築する方法
US4777589A (en) Direct input/output in a virtual memory system
JP2538029B2 (ja) コンピユ−タ・デイスプレイ装置
JP4071196B2 (ja) ゾーン・レンダリング用の自動メモリ管理
US7797510B1 (en) Memory management for virtual address space with translation units of variable range size
US4742450A (en) Method to share copy on write segment for mapped files
US5758182A (en) 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
US5913230A (en) Object and method for providing efficient multi-user access to shared operating system kernal code using instancing
US5134697A (en) Remote memory-mapped display with interactivity determination
US6295068B1 (en) Advanced graphics port (AGP) display driver with restricted execute mode for transparently transferring textures to a local texture cache
US5978892A (en) Virtual memory allocation in a virtual address space having an inaccessible gap
US6947050B2 (en) Method of implementing an accelerated graphics/port for a multiple memory controller computer system
EP1987434B1 (en) Methods and apparatus for providing independent logical address space and access management
US5539899A (en) System and method for handling a segmented program in a memory for a multitasking data processing system utilizing paged virtual storage
US5740406A (en) Method and apparatus for providing fifo buffer input to an input/output device used in a computer system
US6704021B1 (en) Method and apparatus for efficiently processing vertex information in a video graphics system
US5805930A (en) System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs
US6366994B1 (en) Cache aware memory allocation
US5936632A (en) Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels
US5924126A (en) Method and apparatus for providing address translations for input/output operations in a computer system
US5918050A (en) Apparatus accessed at a physical I/O address for address and data translation and for context switching of I/O devices in response to commands from application programs
US6925546B2 (en) Memory pool configuration system
JP2001517829A (ja) 仮想記憶システムにおいてアプリケーションプログラムによってコードまたはデータをグループに分類して、物理メモリの割り振りの制御を行うアプリケーション・プログラミング・インターフェイス
US6223270B1 (en) Method for efficient translation of memory addresses in computer systems
US6600493B1 (en) Allocating memory based on memory device organization

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040604

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070724

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080122

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080418

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20080418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080610

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080709

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

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130718

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term