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

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

Info

Publication number
JP2001501758A
JP2001501758A JP10516651A JP51665198A JP2001501758A JP 2001501758 A JP2001501758 A JP 2001501758A JP 10516651 A JP10516651 A JP 10516651A JP 51665198 A JP51665198 A JP 51665198A JP 2001501758 A JP2001501758 A JP 2001501758A
Authority
JP
Japan
Prior art keywords
buffer
graphic
graphics
page
physical
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
Application number
JP10516651A
Other languages
English (en)
Other versions
JP4156033B2 (ja
Inventor
デビック,ゴーラン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cirrus Logic Inc
Original Assignee
Cirrus Logic Inc
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 Cirrus Logic Inc filed Critical Cirrus Logic Inc
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

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 Input (AREA)
  • Digital Computer Display Output (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 コンピュータシステムにおいて、周辺グラフィックデバイス(PGD)はグラフィックバッファ(GB)にアクセスする。その際、GBの物理ページは連続、或いは不連続であり得る。所定のサイズ及びハンドルのGBにメモリを割り当てるようにリクエストを受けとる。サイズパラメータ内におけるページ数は、コンピュータシステムによって使用されるページサイズ及び必要とされるバッファサイズに基づいて判断される。第1のメモリブロックがGBを記憶するために割り当てられ、且つスワップされることを防ぐためにロックされる。CPUページテーブル(CPU/PT)の開始仮想アドレスがアクセスされ、ユーザアプリケーションによるCPU/PTの進行を許可するために開始論理アドレスにマッピングされる。PGDによってアクセス可能なグラフィックデバイスページテーブル(GDPT)を構築するために第2のメモリブロックが割り当てられる。GBのページそれぞれの論理アドレスは連続してアクセスされ、GBのページそれぞれの対応する物理アドレスがCPU/PTから判断される。GBのページそれぞれの論理アドレス及び物理アドレスはGDPTに記億される。GBの物理ページの全てが連続する場合、GBの論理アドレス及び物理アドレスはユーザハンドルによって指標化されるデータベースに記憶される。そうでない場合、GDPTの開始アドレスがユーザハンドルによって指標化されるデータベースに記憶される。GBの物理ページの全てが連続していることを条件に、PGDはGBの開始物理アドレスによってGBにアクセスする。そうでない場合、GBの不連続物理ページにアクセスするためにPGDはGDPTを使用する。

Description

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

Claims (1)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033928A (ja) * 2006-07-31 2008-02-14 Nvidia Corp Gpuにおけるページマッピングのための専用機構
JP2009020881A (ja) * 2007-07-12 2009-01-29 Qnx Software Systems Gmbh & Co Kg 可変のページサイズのメモリ編成を実装する処理システム
WO2011004511A1 (ja) * 2009-07-08 2011-01-13 パナソニック株式会社 アドレス変換装置
JP2014506700A (ja) * 2011-02-10 2014-03-17 クゥアルコム・インコーポレイテッド グラフィックス処理のためのデータストレージアドレス割当て

Families Citing this family (22)

* 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
AU7060300A (en) 1999-08-16 2001-03-13 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)
US6724390B1 (en) 1999-12-29 2004-04-20 Intel Corporation Allocating memory
US6600493B1 (en) * 1999-12-29 2003-07-29 Intel Corporation Allocating memory based on memory device organization
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
US7401358B1 (en) * 2002-04-18 2008-07-15 Advanced Micro Devices, Inc. Method of controlling access to control registers of a microprocessor
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 株式会社東芝 携帯型電子機器
US20080276067A1 (en) * 2007-05-01 2008-11-06 Via Technologies, Inc. Method and Apparatus for Page Table Pre-Fetching in Zero Frame Display Channel
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
US4715005A (en) * 1984-08-08 1987-12-22 General Electric Company Terrain/seascape image generator with math model data base
US4821212A (en) * 1984-08-08 1989-04-11 General Electric Company Three dimensional texture generator for computed terrain images
US4855937A (en) * 1984-08-08 1989-08-08 General Electric Company Data block processing for fast image generation
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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033928A (ja) * 2006-07-31 2008-02-14 Nvidia Corp Gpuにおけるページマッピングのための専用機構
JP2009020881A (ja) * 2007-07-12 2009-01-29 Qnx Software Systems Gmbh & Co Kg 可変のページサイズのメモリ編成を実装する処理システム
WO2011004511A1 (ja) * 2009-07-08 2011-01-13 パナソニック株式会社 アドレス変換装置
JP2014506700A (ja) * 2011-02-10 2014-03-17 クゥアルコム・インコーポレイテッド グラフィックス処理のためのデータストレージアドレス割当て
US9047686B2 (en) 2011-02-10 2015-06-02 Qualcomm Incorporated Data storage address assignment for graphics processing

Also Published As

Publication number Publication date
JP4156033B2 (ja) 2008-09-24
EP1038229A1 (en) 2000-09-27
US5987582A (en) 1999-11-16
TW357293B (en) 1999-05-01
WO1998014878A1 (en) 1998-04-09
KR20000048739A (ko) 2000-07-25

Similar Documents

Publication Publication Date Title
JP4156033B2 (ja) 連続するメモリのバッファを獲得し、ページテーブルを構築する方法
JP4071196B2 (ja) ゾーン・レンダリング用の自動メモリ管理
US7386697B1 (en) Memory management for virtual address space with translation units of variable range size
US6003112A (en) Memory controller and method for clearing or copying memory utilizing register files to store address information
JP2538029B2 (ja) コンピユ−タ・デイスプレイ装置
US6907510B2 (en) Mapping of interconnect configuration space
US7065630B1 (en) Dynamically creating or removing a physical-to-virtual address mapping in a memory of a peripheral device
US6295068B1 (en) Advanced graphics port (AGP) display driver with restricted execute mode for transparently transferring textures to a local texture cache
US7777752B2 (en) Method of implementing an accelerated graphics port for a multiple memory controller computer system
US7082509B2 (en) Method and system for allocating memory during system boot to reduce operating system memory resource consumption at run-time
US7493465B2 (en) Method and system for extended memory with user mode input/output operations
US6272627B1 (en) Method and apparatus for booting up a computing system with enhanced graphics
US7526578B2 (en) Option ROM characterization
US6704021B1 (en) Method and apparatus for efficiently processing vertex information in a video graphics system
US5740406A (en) Method and apparatus for providing fifo buffer input to an input/output device used in a computer system
US5936632A (en) Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels
US6925546B2 (en) Memory pool configuration system
US5696990A (en) Method and apparatus for providing improved flow control for input/output operations in a computer system having a FIFO circuit and an overflow storage area
US5924126A (en) Method and apparatus for providing address translations for input/output operations in a computer system
US5638535A (en) Method and apparatus for providing flow control with lying for input/output operations in a computer system
JP2003531434A (ja) Javaコンピュータプログラムを実行するためのコンピュータ方法およびシステム
US6574705B1 (en) Data processing system and method including a logical volume manager for storing logical volume data
US6865669B1 (en) Methods for optimizing memory resources during initialization routines of a computer system
US6223270B1 (en) Method for efficient translation of memory addresses in computer systems
JP2004505355A (ja) データ処理システムにおける動的グラフィックス・コンテキスト切替の方法および装置

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 Request for written amendment filed

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 Request for written amendment filed

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