JPH0954723A - グラフィックス・エンジンのオフ・スクリーン・メモリを仮想化するための方法及び装置 - Google Patents

グラフィックス・エンジンのオフ・スクリーン・メモリを仮想化するための方法及び装置

Info

Publication number
JPH0954723A
JPH0954723A JP8167071A JP16707196A JPH0954723A JP H0954723 A JPH0954723 A JP H0954723A JP 8167071 A JP8167071 A JP 8167071A JP 16707196 A JP16707196 A JP 16707196A JP H0954723 A JPH0954723 A JP H0954723A
Authority
JP
Japan
Prior art keywords
vram
screen
request
application program
system memory
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.)
Pending
Application number
JP8167071A
Other languages
English (en)
Inventor
Seri Joseph Jr
ジョセフ・セリ、ジュニア
P Coffei John
ジョン・ピー・コッフェイ
Mark Wanger Jonathan
ジョナサン・マーク・ワグナー
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0954723A publication Critical patent/JPH0954723A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Input (AREA)
  • Memory System (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 【課題】オフ・スクリーンVRAMを効率的に利用する
ように動的に制御する方法及び装置を提供する。 【解決手段】オフ・スクリーンVRAMに対するアプリ
ケーション・リクエストは、そのVRAMが使用可能で
あればそのVRAMを割振り、そのVRAMが使用可能
でなければシステムRAMを割振ることによってアプリ
ケーションにとって透明に満足される。更に、その後V
RAMが使用可能になった場合、システムRAMにより
満足されたリクエストがそのVRAMに切換えられるよ
う、前のメモリ・リクエストのリストが保持される。V
RAMの割振りは、種々のアプリケーション・メモリ・
リクエストに応答し、とりわけ、オフ・スクリーンVR
AM資源を制御する装置ドライバによって制御される。
装置ドライバはVRAMに対する割振りリクエストを受
取り、そのリクエストが使用可能なVRAM資源によっ
て受入れ可能であるかどうかを決定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、グラフィックス・
エンジンのメモリを使用するための方法及び装置に関す
るものであり、更に詳しく云えば、グラフィックス・エ
ンジンのオフ・スクリーン・メモリを仮想化するための
方法及び装置に関するものである。
【0002】
【従来の技術】図1は、IBM PS/2パーソナル・
コンピュータ(PC)のような通常のコンピュータ・シ
ステムに対するシステム・アーキテクチャを示す。図1
の例示的コンピュータ・システムは説明の便宜のための
ものである。下記の説明は、IBM PS/2 PCの
ような特定のコンピュータ・システムを説明する場合に
一般的に使用される用語を参照し得るけれども、その説
明及び概念は、図1とは異なるアーキテクチャを持った
システムを含む他のシステムに等しく適用するものであ
る。
【0003】例示的コンピュータ100は、通常のマイ
クロプロセッサを含む中央処理装置(CPU)105、
情報を一時的に記憶するためのシステム・ランダム・ア
クセス・メモリ(RAM)110、情報の永久的な記憶
のための読取専用メモリ(ROM)115を含む。メモ
リ・コントローラ120はシステムRAM110を制御
するために設けられ、バス・コントローラ125はバス
130を制御するために設けられ、割込コントローラ1
35は種々の割込信号を受け取りそして処理するために
使用される。
【0004】大容量記憶装置は、ディスケット142、
CD−ROMディスク147、又はハード・ディスク1
52によって与えられる。ディスケット142はディス
ケット・ドライブ141に挿入可能であり、一方、その
ディスケット・ドライブはコントローラ140によって
バス130に接続される。同様に、CD−ROMディス
ク147はCD−ROMドライブ146に挿入可能であ
り、そのCD−ROMドライブもコントローラ145に
よってバス130に接続される。最後に、ハード・ディ
スク152は固定ディスク・ドライブ151の一部分で
あり、その固定ディスク・ドライブ151もコントロー
ラ150によってバス130に接続される。
【0005】コンピュータ・システム100に対する入
力及び出力は多数の装置によって与えられる。例えば、
キーボード及びマウス・コントローラ155は、キーボ
ード入力装置156及びマウス入力装置157を制御す
るためのバス130に接続される。DMAコントローラ
160は、システムRAM110に対するダイレクト・
メモリ・アクセスを遂行するために設けられる。可視的
表示はビデオ・コントローラ165によって生成され、
そのビデオ・コントローラはビデオ出力ディスプレイ1
70を制御する。ディスプレイ170は、コンピュータ
・システム100の制御の下に画素(ピクセル)の2次
元アレイを発生し、それらの画素は、イメージを形成す
るように独立して制御される。音声サブシステム191
のような他の入力及び出力装置は拡張スロット190を
通してそのシステムに接続可能である。
【0006】コンピュータ100は、IBM社から入手
可能なOS/2(IBM社の商標)オペレーティング・
システムのようなオペレーティング・システム・ソフト
ウエアによって制御され、調整される。オペレーティン
グ・システムは、プロセス実行及びスケジューリング・
メモリ管理、ファイル・システム・サービス、ネットワ
ーキング及びスケジューリングI/Oサービス、並びに
ユーザ・インターフェース・プレゼンテーションを含む
コンピュータ・システムを通して資源管理を行う。エデ
ィタ及びスプレッド・シートのようなユーザ・アプリケ
ーションは、直接的に及び間接的に、オペレーティング
・システムのこれら及びその他の機能に依存する。
【0007】コンピュータ・システムは、ユーザに情報
を表示するために複雑な技法を益々使用している。最近
のコンピュータは、グラフィクス機能を使用して線、ボ
ックス、円のような種々の図形的な項目を、一般には、
カラーでディスプレイ170上に生じさせる。これらの
グラフィックス機能は、例えば、GUI及び他のコンピ
ュータ・アプリケーションによって使用される。
【0008】グラフィックスに加えて、最近のコンピュ
ータは、テキスト・データ、ディジタル音声データ、デ
ィジタル・ビデオ・データ、及びディジタル音楽データ
(例えば、MIDI)を含む種々の形式のデータを記
憶、編成、及び表示するマルチメディア技法を益々使用
する。例えば、マルチメディア技法を使用するコンピュ
ータはビデオ・データ及び音声データを使用して、音声
サブシステム191からの同期した音声出力と共にムー
ビ・クリップ・ビデオ・シーケンスをディスプレイ17
0上に生じさせる。
【0009】通常、グラフィカル・ディスプレイ及びビ
デオ・イメージは、いわゆる、特殊メモリ・バッファ1
80の対応するロケーションにおいて各ピクセルに対す
るデータを記憶することによって生じる。一般的なフレ
ーム・バッファ180は、VRAMと呼ばれる特殊なメ
モリ・チップから構成される。そのVRAMは、通常の
読取及び書込オペレーションが1つのポートにおけるV
RAMのメモリ・チップに対して行われることを可能に
し、一方、データが第2のスキャン・ポートを介してセ
ルからスキャン・アウトされるのを可能にする。ディス
プレイ・コントローラ165は、一般に、データをスキ
ャン・アウトし、そしてそれを使用してディスプレイ1
70の対応するピクセルを表示データに従って付勢させ
る。
【0010】表示データは、ピクセルが光輝されるかど
うかを表すことができ、或いは、カラー・イメージが関
連する場合、ピクセルに対する所望の照度又は色光度を
表すことができる。更に、カラー・データは、ピクセル
当たり多くのデータ・ビットを必要とするYUV、RG
B、RBG等のような種々のフォーマットに従って実施
可能である。最近のカラー・フォーマットは、ピクセル
当たり3バイト、即ち、24ビットまでの情報を必要と
することがある。
【0011】グラフィカル・イメージ及びビデオ・イメ
ージを生じさせるには、かなりの量のシステム資源が必
要である。線又は円のような比較的単純なグラフィカル
項目でさえ、どのピクセルを光輝すべきかを決定するた
めにかなりの計算を必要とすることがある。例えば、周
知の代数的一次方程式、y=mx+b は、一般的には
グラフィックス方程式として使用するには不適当であ
る。なぜならば、それは明らかな「階段波効果」を持っ
た線を生じることが多いためである。従って、何年にも
わたって、数学者及び設計者達は、離散的なピクセル向
きディスプレイ170の要求に特に適した「グラフィッ
クス方程式」を開発してきた。これらの方程式は高い品
質のグラフィック項目を生じるけれども、それらは計算
的に集中している。
【0012】動画ビデオは比較的少ない計算を伴うだけ
であるが、通常、かなり多くの記憶資源及びシステム・
バス130の帯域幅を必要とする。動画ビデオは、比較
的連続したイメージを生じさせるためには、毎秒15ビ
デオ・フレームのような十分な再生速度で一連のビデオ
・フレームを表示することによって発生される。一般
に、再生が速ければ速いほど、ビデオは良好なものにな
る。
【0013】一般的なビデオ・フレームは数千乃至数百
万個のピクセルを伴うため、記憶装置及び帯域幅の問題
がすぐにクリティカルなものになる。その記憶装置及び
帯域幅の悩みの緩和を援助するために、特別のビデオ・
データ・フォーマット並びに圧縮及び圧縮解除技法が開
発されている。そのようなシステムによって、圧縮され
たビデオ・データがシステムRAM110へ検索され
る。そこでは、その圧縮されたデータはソフトウエアの
圧縮解除ルーチンによって圧縮解除可能である。その
後、その圧縮解除されたデータはフレーム・バッファ1
80に置かれる。或場合には、その圧縮解除されたデー
タは、例えば、ソフトウエアのストレッチ・ルーチンに
よって所定の量を「ストレッチ」され、そしてそのスト
レッチされたイメージはフレーム・バッファ180に置
かれる。ストレッチ技法は、より小さいイメージが記憶
及び検索されること及びより大きいイメージが表示され
ることを可能にする。
【0014】IBM社は、Ultimotion(商
標)テクノロジを開発した。それは、とりわけ、Ult
imotionカラー・フォーマットでビデオ・データ
のフレームを圧縮及び圧縮解除するソフトウエア・ルー
チンを与える。各ビデオ・フレームは「イントラ」フレ
ーム或いは「デルタ」フレームであってよい。イントラ
・フレームは表示されるべきイメージ全体を表すもので
あり、デルタ・フレームは前のイメージ・フレームに対
する変化を表すものである。Ultimotion及び
他のシステムは動画ビデオを生じさせる場合に受ける負
担を緩和させたけれども、かなりの量の資源がなお必要
である。
【0015】更に、グラフィックス及び動画を生じさせ
る場合にCPU155及びシステム・バス130に課せ
られる負担を更に緩和するために、グラフィック・エン
ジン175の開発においてかなりの努力が行われてき
た。市場には多くの種類のグラフィック・エンジンが存
在し、その各々は特定の機能セットを持っている。一般
的には、グラフィック・エンジン175は、どのピクセ
ルがグラフィックス・コマンドに応答して付勢されるべ
きかを決定するために、及び中心的フレーム・バッファ
180に適当な表示データを記憶するために、それ自身
の内部メモリ及び特別目的のハードウエアを含んでい
る。例えば、通常のエンジン175は、線を引くための
コマンドに応答してどのピクセルが線を表示するために
付勢されるべきかを決定するために、グラフィックス一
次方程式を実行するための特別なハードウエアを持つこ
とがある。一般に、通常のエンジン175は、カラーで
もって領域を満たし及びイメージを「クリップ」する機
能の他に、円及び矩形を描く機能を更に含んでいる。エ
ンジン175は、CPUがグラフィックス方程式に関連
した計算的オペレーションを遂行する必要をなくするこ
との他に、システム・バスがかなりの量の表示データを
フレーム・バッファ180に転送する必要をなくしてい
る。
【0016】フレーム・バッファ180に対して必要と
されるメモリの量はディスプレイ170のピクセルの数
及び各ピクセルに対して必要なデータの量に依存する。
屡々、グラフィックス・エンジンは、フレーム・バッフ
ァ180に対して必要とされるメモリ容量よりも多いメ
モリ容量をそれの内部メモリにおいて与える。この「エ
クストラ」メモリ容量はVRAM、DRAM、SRA
M、或いは他のメモリ・テクノロジにおいて実施可能で
あるけれども、一般に、そのエクストラ容量は、集合的
に、「オフ・スクリーンVRAM」と呼ばれる。
【0017】オフ・スクリーンVRAM185は、フレ
ーム・バッファ180と同様に、グラフィックス・エン
ジン175に近い。従って、エンジン175は、システ
ムRAM110におけるデータよりももっと効率的にオ
フ・スクリーンVRAM185におけるデータをアクセ
スすることが可能である。それは、エンジン175が、
データ検索するためにバス130を使用することに関連
したパフォーマンスの不利を受けないためである。この
特徴は、「キャッシング」と呼ばれる技法によってパフ
ォーマンスを改善するために活用されることが多い。特
定なデータがエンジン175によって頻繁に使用されれ
ばされるほど、オフ・スクリーンVRAM185におい
てそのデータをキャッシュ或いは記憶するパフォーマン
スの利点は大きくなる。一般に、マウス・カーソル情報
或いはフォント情報がキャッシュされる。詳細な記述に
おいて検討される新しい技法も、オフ・スクリーンVR
AM185と関連したパフォーマンスの利点を活用する
ものである。
【0018】パフォーマンスを改良するためにオフ・ス
クリーンVRAMが使用可能であるけれども、オフ・ス
クリーンVRAM185を利用するための従来技術の機
構は望ましいものではない。通常、ソフトウエアがオフ
・スクリーンVRAM資源を要求する時、その要求した
ソフトウエアは、オフ・スクリーンVRAM資源がその
リクエストを受けるには不十分である場合、データを保
持するためにシステムRAM110を使用しなければな
らない。これは、十分な容量がオフ・スクリーンVRA
Mにおいて使用可能であるかどうかをそのソフトウエア
が決定しなければならないため、そして十分な容量が使
用可能でない場合にはシステムRAMを使用しなければ
ならないため、そのソフトウエアに複雑さを加える。更
に、オフ・スクリーンVRAM資源185は、最初に要
求された時に使用可能でないことがあるが、その後、そ
の要求したソフトウエアがそのメモリを使用している時
に使用可能になることがある。そのような環境において
は、静的な通常のメモリ割振り機構は、それらが使用可
能になった時にその更に効率的なオフ・スクリーン資源
に切り換えることができない。代わりに、たとえそのオ
フ・スクリーンVRAM185がその後利用可能になっ
ても、その要求したソフトウエアはあまり効率的でない
システムRAMを使用し続ける。従って、オフ・スクリ
ーン資源は最大限の範囲まで活用されない。
【0019】従って、オフ・スクリーンVRAMを効率
的且つ都合よく使用するための方法及び装置に対する要
求がその分野には存在する。
【0020】
【発明が解決しようとする課題】本発明の目的は、オフ
・スクリーンVRAM資源が効率的に利用されるように
動的に制御されることを可能にする方法及び装置を提供
することにある。
【0021】本発明の利点は、アプリケーションがオフ
・スクリーンVRAMよりも大きい単一のVRAMを認
識するよう、オフ・スクリーンVRAM及びシステムR
AMの両方を透明的に制御する機能である。
【0022】本発明のもう1つの利点は、最初はシステ
ムRAMによって満足されなければならないオフ・スク
リーンVRAM資源に対するリクエストがその後使用可
能になったオフ・スクリーンVRAMによってサービス
されるよう、オフ・スクリーンVRAM及びシステムR
AMの両方を制御する機能である。
【0023】
【課題を解決するための手段】本発明は、オフ・スクリ
ーンVRAMに対するアプリケーションのリクエストを
受け取り、そしてオフ・スクリーンVRAMが使用可能
である場合にはそのオフ・スクリーンVRAMを割振る
ことによって、及びオフ・スクリーンVRAMが使用可
能でない場合にはシステムRAMを割振ることによっ
て、そのアプリケーションにとって透明的にこのリクエ
ストを満足させる方法及び装置に関するものである。更
に、オフ・スクリーンVRAMがその後使用可能になっ
た場合、システムRAMを割振ることによって満足され
たリクエストがそのオフ・スクリーンVRAMに切り換
えられるよう、前のメモリ・リクエストのリストが保持
される。
【0024】更に詳しく云えば、本発明の装置は、種々
のアプリケーション・メモリ・リクエストに応答し、と
りわけ、オフ・スクリーンVRAM資源を制御する装置
ドライバより成る。その装置ドライバはオフ・スクリー
ンVRAMに対する割振りリクエスト受け、そしてその
リクエストが使用可能なオフ・スクリーンVRAM資源
によって受入れるかどうかを決定する。そのリクエスト
が使用可能なオフ・スクリーンVRAM資源によって受
入れる場合、装置ドライバは、その使用可能なオフ・ス
クリーンVRAM資源の一部分がリクエストを受けるこ
とを可能にし、その使用可能なオフ・スクリーンVRA
M資源の量を減少させる。使用可能なオフ・スクリーン
VRAM資源がそのリクエストを受入れることができな
い場合、装置ドライバは、そのリクエストを受けるよう
にシステムRAMの一部分を割振る。
【0025】又、装置ドライバは、使用可能なオフ・ス
クリーンVRAM資源の量を増加させるために、前に割
振られたオフ・スクリーンVRAM資源を割振り解除す
るためのリクエストを受け取りそしてそれを処理する。
資源が増加した結果、装置ドライバは、システムRAM
が前に受けたリクエストをオフ・スクリーンVRAM資
源に転送することも可能である。
【0026】従って、アプリケーションは、実際のオフ
・スクリーンVRAMよりもずっと大きく見える「仮
想」オフ・スクリーンVRAMを見る。更に詳しく云え
ば、オフ・スクリーンVRAM資源は、実際のオフ・ス
クリーンVRAMとシステムRAMの割当可能な部分と
の結合のような大きさであるように見える。従って、リ
クエストすることは、実際のオフ・スクリーンVRAM
がそのリクエストを受けるには不十分な使用可能な資源
を有する場合、システムRAMを割振りそして管理する
という更なる複雑さ伴うことはない。
【0027】
【発明の実施の形態】図2は本発明の実施例を示す。更
に詳しく云えば、GUI及びマルチメディア・アプリケ
ーションを含むアプリケーション・プログラム201は
ソフトウエア・ライブラリ202の種々なソフトウエア
・ルーチンを呼び出す。一方、ライブラリ202のルー
チンは装置ドライバ203とコミュニケートする。装置
ドライバ203は、ディスプレイ・コントローラ211
とコミュニケートするように応答するハードウエア特有
のソフトウエアである。コントローラ211は、グラフ
ィック・エンジン211C,オフ・スクリーンVRAM
211D、及びフレーム・バッファ又はオン・スクリー
ンVRAM211Bを含んでいる。前述のように、フレ
ーム・バッファ211Bはコントローラ211によって
走査され、ディスプレイ211A上にイメージを与え
る。
【0028】種々のソフトウエア・コンポーネント20
1−203がオペレーティング・システムの制御の下に
CPU105(図1参照)によって実行される。各ソフ
トウエア・コンポーネントは、実行時には、システムR
AM110(図1参照)にある。CPU105が装置ド
ライバ203におけるルーチンを実行する時、種々のコ
マンド及びデータがシステム・バス130を通してコン
トローラ211に送信させられる。コントローラ211
がI/Oマップされるかどうかに依存して、コントロー
ラ211は完全なコマンドを受けるためにバス130を
介してRAM110をアクセスする必要があろう。
【0029】一般に、ソフトウエア・ライブラリ202
は、アプリケーション・プログラム201によって通常
必要とされるルーチンを含んでいる。アプリケーション
開発者は、圧縮解除ルーチン、カラー変換ルーチン、グ
ラフィックス方程式のソフトウエア実施等のような通常
必要とされるコードを設計、開発、試験、及びデバッグ
する必要がないので、アプリケーション開発は促進され
る。
【0030】一般に、最近のアプリケーションは、機能
的アブストラクションのかなり高いレベルにおけるグラ
フィックス及び動画機能を呼び出す。例えば、動画ビデ
オを実施するアプリケーションは、「ビデオ・ストリー
ムを作成する」、「ビデオ・ストリームを再生する」、
及び「ビデオ・ストリームを停止する」ための同類のコ
マンドを持つことがある。適当なデータ・ファイルを開
き、ビデオ・フレームを同期化し、圧縮されたビデオ・
データを圧縮解除し、必要に応じてそのデータを異なる
カラー・フォーマットに変換し、そのアプリケーション
のコマンドに固有の機能を処理するという基本的な仕組
みは、ライブラリ202におけるルーチンと関連して他
のソフトウエアに、特に、オペレーティング・システム
にまかされる。
【0031】必要な場合には、アプリケーション・プロ
グラム201はライブラリ202を使用する必要はない
が、代わりに、アプリケーション・プログラム201が
適当なシステム特権を有する場合、装置ドライバ203
と直接にコミュニケートすることができる。本発明の種
々な特徴に関する残りの説明にもっと十分に焦点を合わ
せるために、アプリケーション・プログラム201及び
ライブラリ202の組合せを、以下では、「リクエステ
ィング・ソフトウエア」205と呼ぶことにする。
【0032】装置ドライバ203は、それが呼び出され
或いはコールされる一組のエントリ・ポイント或いは
「エクスポート」を含む。各エントリ・ポイントは、装
置ドライバ203によって遂行される特定の機能に対応
した関連のソフトウエア・ルーチンを有する。例えば、
装置ドライバ203は、専らオフ・スクリーンVRAM
におけるバッファを割振り及び割振り解除するエントリ
・ポイントを含む。エントリ・ポイントと関連した各ル
ーチンは一定の「イン・パラメータ」を、コーリング・
コード、例えば、リクエスティング・ソフトウエア20
5のようなコールの一部分として受けるものと考えら
れ、予め定義されたインターフェースに従ったリターン
・コードの他にそのルーチンからの一定の「アウト・パ
ラメータ」を受けるものと考えられる。リターン・コー
ドは、エラーに遭遇したこと、リクエストがうまくサー
ビスされたこと、又はリクエストが部分的にサービスさ
れたことを表すことも可能である。
【0033】装置ドライバ203は、それのタスクを遂
行するために既知の装置「ヘルパ」ルーチン204を使
用することも可能である。ヘルパ・ルーチン204は、
一般には装置ドライバによって使用されるルーチンであ
り、装置ドライバの開発を促進するために、OS/2オ
ペレーティング・システムを含む多くのオペレーティン
グ・システムによって与えられる。この点において、ヘ
ルパ・ルーチン204は前述のライブラリ202に僅か
に類似している。
【0034】実施例では、リクエスティング・ソフトウ
エア205は、関連のコントローラ211によって与え
られる機能を決定するために装置ドライバ203を照会
する。これらの照会は、例えば、リクエスティング・ソ
フトウエア205が初期設定を行おうとする時に遂行可
能である。そこで、リクエスティング・ソフトウエア2
05は、それがどんなアクションを取り得るかをその後
知るように、及びそれに従ってそのリクエストを制御し
得るように、対応のソフトウエア・フラッグをセットす
ることが可能である。例えば、グラフィック・エンジン
211Cがビデオ・イメージをストレッチするためのハ
ードウエア・サポートを含む場合、リクエスティング・
ソフトウエア205は、それの照会リクエストに対する
応答を受けた後、フラッグをセットする。リクエスティ
ング・ソフトウエア205は、その後、ストレッチング
・ハードウエアを使用するための適当な命令を呼び出す
ために、又はあまり効率的でないソフトウエア・ストレ
ッチング・ルーチンを呼び出すために、このフラッグに
従って「ブランチ」することも可能である。
【0035】実施例では、リクエスティング・ソフトウ
エア205は、先ず、装置ドライバ203の登録エント
リ・ポイントをコールすることによって装置ドライバ2
03によってそれ自身を登録する。装置ドライバ203
の登録ルーチンは、リクエスティング・ソフトウエア2
05を独特に識別する「リクエスタ・ハンドル」を与え
る。とりわけ、そのリクエスタ・ハンドルは、整合性を
必要とする或タイプのバッファ管理にとって有用であ
る。更に、登録は、多数のアプリケーションが同時にV
RAM資源を使用すること、例えば、多数のムービ・セ
ッションを再生することを可能にする。
【0036】リクエスティング・ソフトウエア205
は、装置ドライバ203のバッファ割振り/割振り解除
エントリ・ポイントをコールすることによって、バッフ
ァ・メモリ或いはオフ・スクリーンVRAM211Dの
連続部分をリクエストする。このエントリ・ポイントに
対する「イン・パラメータ」は、バッファがリクエスト
されようとしているか或いは割振り解除されようとして
いるどうかを表す機能コード、バッファの所望のサイ
ズ、バッファID、リクエスタ・ハンドル、及び所望の
バッファのタイプを含んでいる。そのルーチンからの
「アウト・パラメータ」は実際に行われる割振りのサイ
ズ及びVRAMアドレスを含んでいる。
【0037】バッファ割振りコールは、例えば、アプリ
ケーション・プログラム201の1つの初期設定時に行
うことが可能である。前述のように、バッファは、一旦
割振られると、カーソル情報をキャッシュすることによ
って、或いは、例えば、圧縮解除されたがストレッチさ
れてないビデオ・データを記憶することによってパフォ
ーマンスを改良するために、リクエスティング・ソフト
ウエア205により使用可能である。
【0038】一般に、オフ・スクリーンVRAM211
Dのオペレーションは次のようになる。簡単に云えば、
低い要求時には、オフ・スクリーンVRAMに対するリ
クエストは、実際のオフ・スクリーンVRAM211D
におけるバッファを割振ることによってサービスされ
る。米国特許出願第513,710号は、実際のオフ・
スクリーンVRAM211Dを割振り及び割振り解除す
るための方法及び装置を開示している。本発明の理解に
有用である範囲で、この米国特許出願の内容を以下に概
説する。本発明の適用を損なうことなく、実際のオフ・
スクリーンVRAM211Dを制御するために、他の方
法及び装置が使用可能である。
【0039】高い要求時、実際のオフ・スクリーンVR
AM211Dは小さすぎてすべてのリクエストを処理す
ることができない。本発明は、リクエストをサービスす
るためにシステムRAM106からメモリを割振り、し
かる後、そのリクエストが更に効率的な実際のオフ・ス
クリーンVRAM211Dに、その容量が使用可能にな
った場合、透明に移動するようにオフ・スクリーンVR
AM211Dの実際の使用をモニタする。
【0040】更に詳しく云えば、図3は、バッファ・ロ
ケーションがリクエストされる時、割振り/割振り解除
ルーチンに伴うステップを示す。そのルーチンはステッ
プ300において開始し、ステップ302に進む。ステ
ップ302において、装置ドライバ203はオフ・スク
リーンRAMの使用可能度を決定し、そのリクエストが
オフ・スクリーンVRAM211Dによって受入れられ
るかどうかを決定する。実施例では、そのルーチンは
「ベスト・ヒット」法を使用することによってこのステ
ップを遂行する。装置ドライバ203は、リンクしたリ
スト・データ・ストラクチャ(前記米国特許出願におい
て説明されているような)として実施されたVRAM割
振りリストを含み、実際のオフ・スクリーンVRAM2
11Dを管理及び維持する。リンクされたVRAM割振
りの各項目はメモリのセクション、とりわけ、関連のオ
フ・スクリーン・バッファ、バッファ・サイズ、そのバ
ッファが使用されたかどうか、及びバッファ・タイプを
表す。
【0041】実施例では、バッファは「専用」タイプ或
いは「共用」タイプとして分類可能である。専用バッフ
ァは、当初そのバッファを割振られたリクエスティング
・ソフトウエア205にのみアクセス可能である。一
方、共用バッファは、すべてのリクエスティング・ソフ
トウエア205によって利用可能である。そのような分
類は、例えば、データ・フレームに対して専用バッファ
を使用しそしてイントラ・フレームに対して共用バッフ
ァを使用することによって、動画アプリケーションにお
いて活用可能である。
【0042】実際のオフ・スクリーンVRAM211D
の十分に大きい使用されてない連続したセクションがリ
クエストを受けるために使用可能であるかどうかを決定
するために、装置ドライバ203はVRAMリンクした
リストをトラバースする。このトラバースに基づいて、
ステップ304では、そのリクエストを満足させるに十
分なオフ・スクリーンRAMが存在するかどうかの決定
が行われる。そのようなセクションが存在する場合、ル
ーチンはステップ312に進む。ステップ312では、
装置ドライバ203は、そのリクエストされたバッファ
を割振るためにVRAMリンしたリストのデータ・スト
ラクチャを修正する(例えば、新しいリクエスタ・ハン
ドル、バッファが使用されてないことを表すフラッグ、
割振られたサイズ、バッファID等を指定する新しいエ
ントリをそのリストに挿入することによって)。
【0043】更に、ステップ316において、装置ドラ
イバ203は、バッファID及び割振られたVRAMア
ドレスを表すために、割振りコールによって戻されるべ
きアウト・パラメータを修正する。更に、割振りのサイ
ズが与えられる。そのように、リクエスティング・ソフ
トウエア205は、その後、VRAMアドレス及びバッ
ファIDを使用することによってそのバッファを使用可
能である。そこで、ルーチンはステップ322において
終了する。
【0044】十分に大きい連続したセクションがその時
存在しないことが決定される場合、ステップ306にお
いて、ルーチンは、オフ・スクリーンVRAM211D
における割振られていないスペースがより効果的に統合
された場合にそのリクエストが受入れ可能であるかどう
かに関する情報を収集する。例えば、オフ・スクリーン
VRAM211Dには十分なスペースが存在し得るが、
それぞれがそのリクエストを受入れるには小さすぎる複
数の片にそのスペースは断片化可能である。ステップ3
10において、ルーチンは、バッファの現在の割振りが
コンパクト化される場合にそのリクエスタが受入れ可能
であるかどうかを決定する。それが受入れ可能である場
合、ルーチンは、前の割振り及び割振り解除リクエスト
をサービスすることを通して生じ得る断片化を減少させ
るために、ステップ308において、オフ・スクリーン
VRAM211Dをコンパクト化する。そこで、ルーチ
ンは、そのオフ・スクリーンVRAMを割振り、ステッ
プ312及び316に関連して説明したように、適当な
パラメータを戻し、ステップ322において終了する。
【0045】ステップ302−306を遂行するための
実施例の方法及び装置は更に詳しく前記米国特許出願に
記述されている。他の方法及び装置も、本発明の精神及
び技術範囲から離れることなく実際のオフ・スクリーン
VRAM211Dを割振るために使用可能である。
【0046】コンパクト化の後、ステップ310におい
て決定されたように、リクエストが依然として受入れら
れない場合、ステップ314において、ルーチンはシス
テムRAM106からバッファを割振り、そのバッファ
に対するシステム・アドレスを呼出コードに戻す。1つ
の実施例では、装置ドライバ203は既知の装置ドライ
バ「ヘルパ・ルーチン」204を使用してシステムRA
M106からバッファを割振る。システムRAM106
においてバッファを割振るために、他の通常の技法が使
用可能である。
【0047】更に、ステップ318において、装置ドラ
イバ203は割振られたスペースの量を表すアウト・パ
ラメータを、それがオフ・スクリーンVRAM211D
において潜在的に使用可能なスペースの量を表すように
修正される。そこで、このアウト・パラメータは、それ
がこの情報を活用するようにリクエスティング・ソフト
ウエア205に戻される。更に詳しく云えば、リクエス
ティング・ソフトウエア205は、或サイズのオフ・ス
クリーンVRAMバッファを希望するが、それの要求の
うちの或ものがもっと小さいサイズのバッファによって
満足されるようにその要求を区切ることにより実益を得
ることが可能である。これが実状である場合、リクエス
ティング・ソフトウエア205はその要求のうちの或も
のを満足するために小さいサイズのバッファを再リクエ
ストすることを決定することも可能である。
【0048】ステップ320において、システムRAM
106においてバッファを割振る時、装置ドライバ20
3は、バッファ・リクエスト情報を記憶するための第2
のリンクしたリスト500(図5参照)におけるフラッ
グをセットする。このバッファ・リクエスト・リスト
は、例えば、到着順序に従って配列され、リスト・ポイ
ンタによってリンク可能である。とりわけ、そのリスト
500の各エレメント501は、オフ・スクリーンVR
AM211Dを使用することによってそのリクエストが
サービスされたかどうか、或いはシステムRAM106
においてバッファ・スペースを割振ることによってそれ
がサービスされたかどうかを表すフラッグ501Aを含
む。リクエストが実際のオフ・スクリーンVRAM21
1Dによってサービスされた場合、そのリンクしたリス
ト・エレメント501はVRAMアドレス501Bを含
む。リクエストがシステムRAM106においてサービ
スされた場合、そのリンクしたリスト・エレメント50
1はシステム・アドレス501Cを含む。又、各エレメ
ント501は、バッファがそれの最後のアクセス以後に
リロケートされたかどうか(例えば、後述のように、シ
ステムRAMからオフ・スクリーンVRAMに)を表す
フラッグ501Dを表示する。
【0049】又、リンクしたリスト・エントリは「マー
ク・オン・ザ・ウォール・ビット」(MOTWB)50
1Eを含んている。そのMOTWBは、詳細に後述する
ように、システムRAMを割振ることによってサービス
された対応するリクエストがオフ・スクリーンVRAM
への転送の候補であるかどうかを表す。リクエスト・サ
イズ(501F)、リクエスト・ハンドル(501
G)、及びバッファID(501H)を記憶するための
更なるエントリがリスト・エントリ501に設けられ
る。
【0050】図4は、本発明の実施例に従ってバッファ
を割振り解除することに関するステップを示す。これら
のステップは、割振り解除が望ましいことをイン・パラ
メータが表す時、割振り/割振り解除エントリ・ポイン
ト・ルーチンによって行われる。例えば、前に実際のオ
フ・スクリーンVRAM211Dからバッファをうまく
割振られたアプリケーション・プログラム201の1つ
が終了する時、それは最早そのバッファを必要とせず、
そのバッファを割振り解除するために、終了前にこのエ
ントリ・ポイント・ルーチンをコールするであろう。
【0051】ルーチンはステップ400において始ま
り、ステップ401に進む。ステップ401において、
装置ドライバ203は、実際のオフ・スクリーンVRA
M211Dの割振りをモニタするためにその使用された
VRAM割振りリンク・リストを調べる。リクエストの
ハンドル及びバッファIDと関連した特定のエントリ及
びリクエスティング・ソフトウエア205が指定される
時、そのエントリは修正され、そのリストの配列が修正
されるであろう。更に詳しくいえば、指定されたエント
リは、バッファが割振り解除され、最早使用されてない
ことを表すように修正される。第1のリストの配列も、
メモリの更に効果的な使用を保証するために修正され
る。例えば、バッファが割振り解除される時、オフ・ス
クリーンVRAM211Dにおける隣接した未使用のバ
ッファがある場合、割振り解除ルーチンは、2つの未使
用のバッファを1つの大きなバッファに統合するように
VRAM割振りリストにおける正確なポイントに新しい
エントリを挿入する。
【0052】ステップ402において、ルーチンは第1
エントリで始まるバッファ割振りリスト500をトラバ
ースし、すべてのエントリがトラバースされてしまうま
で継続する。ステップ402において決定されるよう
に、そのリストの終りに達した場合、ルーチンはステッ
プ406において終了する。リスト500の終りに達し
てない場合、ステップ402において決定されるよう
に、ルーチンは、前述のようにシステムRAMを割振る
ことによりサービスされた前のリクエストに対応する各
エントリを順次分析する。
【0053】ステップ403において、ルーチンは、R
AM106によって現在サービスされている関連のリク
エストのサイズが、最近の割振り解除の結果としてオフ
・スクリーンVRAM211Dにおいて現在使用可能な
割振りされてないバッファ・スペースよりも小さいかど
うかを決定する。それが肯定される場合、ステップ40
4において、ルーチンは、そのエントリに対する「マー
ク・オン・ザ・ウォール・ビット」(MOTWB)50
1Eをセットし、そのエントリがオフ・スクリーンVR
AMへの転送の候補であることを表す。
【0054】次に、ステップ405において、ルーチン
は、バッファ割振りリスト500の次のエントリを指す
ようにリスト・ポインタを修正し、ステップ402に戻
って、バッファ割振りリスト500の終りに達したかど
うかをテストする。従って、割振り解除ルーチンの終了
時に、前に割振られたバッファは割振り解除されている
であろうし、拡大された割振りされてないVRAMスペ
ースに転送するための候補であるそのバッファ割振りリ
ストにおける各エントリはそれのMOTWBフラッグ・
ビットをセットされるであろう。
【0055】リクエスティング・ソフトウエア205が
前に割振られたバッファを、例えば、圧縮解除されたが
ストレッチされてないそのバッファ内のイメージを配置
するために使用する前に、そのリクエスティング・ソフ
トウエア205は、そのバッファに関する情報を得るた
めに、先ず、装置ドライバ203の情報エントリ・ポイ
ントをアクセスする。情報ルーチンは、或イン・パラメ
ータがリクエスト・ハンドル及びバッファIDを含むも
のと見なす。一方、ルーチンは、適当な場合のVRAM
211Dアドレスを、又は適当な場合のシステムRAM
106アドレスを含む或アウト・パラメータを発生す
る。又、それは、バッファがリロケートされたかどうか
の表示を戻す。リクエスティング・ソフトウエア205
は情報を受け取り、しかる後、適当なアドレスを使用し
てその後のオペレーションを遂行する。例えば、リクエ
スティング・ソフトウエア205がブロック転送オペレ
ーション(BLT)を遂行しようとする場合、そのリク
エスティング・ソフトウエア205は、情報エントリ・
ポイント・ルーチンによって戻されたアドレスを使用し
て適当なライブラリ・ルーチン202或いはグラフィッ
ク・エンジン211Cのハードウエア・サポート・レジ
スタを呼び出すであろう。
【0056】又、この情報エントリ・ポイント・ルーチ
ンは、バッファが装置ドライバ203によってリロケー
トされたかどうかをリクエスティング・ソフトウエア2
05が正しく追跡することを可能にする。前述のよう
に、コンパクト化ステップ308(図3)の一部として
バッファはリロケート可能である。更に、前述のよう
に、前にシステムRAM106に割振られたバッファは
オフ・スクリーンVRAM211Dにリロケート可能で
ある。
【0057】本発明の一実施例によれば、ステップ31
4においてシステムRAM106を割振ることによって
サービスされた各リクエストは、オフ・スクリーンVR
AM211Dへのその後の転送に対する候補として、そ
れらが使用可能になった時、自動的に入れられる。オフ
・スクリーンVRAM資源211Dに対するリクエスト
が優先順位情報を含む場合の別の実施例を考察する。こ
の場合、それがオフ・スクリーンVRAM211Dを望
んでいるが、システムが多量の要求を行っている場合、
それらの資源が多くの緊急のアプリケーションにとって
使用可能になった時にリクエスティング・ソフトウエア
205がそれらの資源を許容するつもりであることを、
リクエスティング・ソフトウエア205は事実上表すこ
とが可能である。
【0058】図6は、情報エントリ・ポイントと関連し
たルーチンに関するステップを更に詳細に示す。リクエ
スティング・ソフトウエア205が前に割振られたバッ
ファを指定するために情報エントリ・ポイントをコール
する時、ルーチンはステップ600において始まる。ス
テップ602において、ルーチンは、バッファ割振りリ
ストをサーチし、そのリクエスティング・ソフトウエア
のハンドル及び前に割振られたバッファのバッファID
に一致するリクエスト・ハンドル501G及びバッファ
ID501Hを見つけることによって、リスト500の
関連のエントリを見つける。
【0059】ステップ604では、捜したエントリが見
つかったかどうかを決定するためのチェックが各エント
リにおいて行われる。そのエントリがバッファ割振りリ
スト500において見つからなかった場合、リクエスト
は当初オフ・スクリーンVRAM211Dにおいてサー
ビスされた。ルーチンは、ステップ616において、前
述のようにVRAMアドレスを戻し、ステップ620に
おいて終了する。
【0060】それとは別に、ステップ604において、
そのバッファに対応するエントリが見つかった場合、リ
クエストは当初システムRAMにおいてサービスされ
た。しかる後、ステップ606において、ルーチンは、
その見つかったエントリが、その対応するバッファがオ
フ・スクリーンVRAMへの転送に対する候補であるこ
とを表すMOTWBフラッグ・ビット501Eをセット
されたかどうかテストする。
【0061】ステップ606において、そのMOTWB
フラッグ・ビットがセットされてないことが決定された
場合、バッファはオフ・スクリーンVRAMには転送さ
れ得ず、ルーチンはステップ616において通常の情
報、例えば、システム・アドレス等を戻し、ステップ6
20において終了する。
【0062】それとは別に、MOTWBフラッグ・ビッ
ト501Eがセットされていることがステップ606に
おいて決定される場合、割振り解除ルーチンは、その対
応するバッファが実際のオフ・スクリーンVRAM21
1Dに移る可能性が高いことを予め表示した。しかし、
前の割振り解除ルーチンがVRAM資源を開放した後も
オフ・スクリーンVRAM211Dが依然として使用可
能であることを保証するものはない。例えば、前述のよ
うに、割振り解除ルーチンは転送に対するすべての候補
をマークし、アプリケーション・プログラム201のう
ちの他のものは、現在のアプリケーションがスケジュー
ルされる前に処理のためにオペレーティング・システム
によってスケジュールされたかもしれない。この場合、
現在のリクエストが最早受入れられないように、オフ・
スクリーンVRAMの前に使用可能であったスペース
を、介在のアプリケーションが十分に割振ったことはあ
り得ることである。
【0063】ステップ606において、MOTWBフラ
ッグ・ビットがセットされている場合、ステップ608
において、情報エントリ・ポイントと関連したルーチン
が前述の割振りルーチンをコールする。ステップ612
では、割振りルーチンが成功したかどうかを決定するた
めのチェックが行われる。割振りリクエストが不成功で
ある場合、例えば、介在アプリケーションが既に資源を
割振っている場合、ルーチンは、ステップ610におい
て、そのエントリに対するMOTWBフラッグ・ビット
501Eをクリアし、ステップ616において、システ
ムRAM割振りに関する通常の情報をリクエスティング
・ソフトウエア205に戻す。従って、リクエスティン
グ・ソフトウエア205は、RAM106における割振
られたバッファをアクセスし続ける。
【0064】割振りが成功したことをステップ612が
表す場合、ステップ614において、ルーチンは、VR
AMアドレスが割振りルーチンから戻された時、システ
ムRAM106に記憶されたデータをオフ・スクリーン
VRAM211Dにおける新たに割振られたバッファに
転送する。
【0065】そこで、ステップ618において、ルーチ
ンはバッファ割振りリンク・リスト500を更新する。
この更新は、新しいVRAMロケーションを表すように
VRAMアドレスを修正すること及びバッファされた情
報がオフ・スクリーンVRAMにリロケートされている
こと表すようにリロケーション・フラッグをセットする
ことを含む。
【0066】そこで、ルーチンはステップ616に進
み、通常の情報をリクエスティング・ソフトウエア20
5に与える。リクエスティング・ソフトウエア205
は、バッファがリロケートされたことをそれが検出する
ので、新しいアドレスを使用し、そしてオフ・スクリー
ンVRAM211Dにおけるバッファをアクセスする。
従って、データはより効率的なオフ・スクリーンVRA
M211Dに、ユーザにとって透明的に転送される。
【0067】説明の実施例では、ステップ614におい
て行われるバッファ転送は、オフ・スクリーンVRAM
211Dに対する殆どの他のアクセスと同様に、オフ・
スクリーンVRAM211Dの使用をカバーするグロー
バル・セマフォの使用によって原子的になるように強い
られる。データのコヒーレンシを保証するためにデータ
のアクセスを制御するためのそのようなセマフォの使用
は、一般に、その分野では知られている。本発明では、
BLT、圧縮解除、カラー変換等が完了するまで継続
し、しかる後、他のソフトウエア205がオフ・スクリ
ーンVRAM211Dの制御を得るようにすることを保
証するためのセマフォが使用される。又、オフ・スクリ
ーンVRAM211D全体をロックすることなくオフ・
スクリーンVRAM211Dの部分を「ロック」するた
めに、多数のセマフォを使用する技法が使用可能であ
る。
【0068】当業者には明らかなように、上記のルーチ
ンはシステムRAM110によってサービスされるリク
エストをオフ・スクリーンVRAM211Dに、「次の
スケジュールされたアプリケーションに最適にフィット
(next-scheduled-application-best-fit)」に基づい
て転送する。即ち、オペレーティング・システムはアプ
リケーション・プログラム201のスケジュール順序を
制御する。幾つものアプリケーションがそれらのリクエ
ストをRAM106によりサービスされるるため、及び
割振り解除コードが満足され得るすべての潜在的リクエ
ストのMOTWBフラッグ・ビット501Eをマークす
るため、新たに割振り解除された資源を使用する優先順
位はオペレーティング・システムのスケジュール順序に
依存し、どのリクエストがそれらのMOTWBフラッグ
・ビットをセットされるかに依存する。未決のリクエス
トのサイズ及び新たに割振り解除された資源のサイズに
従って、複数のリクエストが1つの割振り解除からサー
ビス可能であろう。
【0069】又、異なる技法が組み込み可能である。例
えば、バッファ割振りリスト・エントリをタイム・スタ
ンプすること及びリスト500の「最も古い」エントリ
におけるMOTWBフラッグ・ビット501Eだけをマ
ークすることによって、純粋な「先着順サービス(FI
FS)」アルゴリズムが使用可能である。又、本発明
は、VRAM割振りリスト及び前述のバッファ割振りリ
スト500を1つの「スーパ」リストに統合することに
よって実施可能であると考えられる。このように、各エ
ントリは、2つのリストの各エントリにおいて現在使用
されている情報の結合を持つであろう。更に、すべての
リクエストが「スーパ」リストに入れられるであろう。
バッファが割振り解除される時、それは「スーパ」リス
トから除去される。
【0070】或例では、オフ・スクリーンVRAM21
10D全体の制御を得ることが望ましい。このために、
「死と復活(D&R)」エントリ・ポイントが設けられ
る。図7を参照すると、D&Rがコールされる時、その
エントリ・ポイントと関連したルーチンは、死或いは復
活が望ましいかどうかを決定する。ルーチンはステップ
700において始まり、ステップ702に進む。ステッ
プ702において、D&Rコール・パラメータがチェッ
クされ、そしてイン・パラメータとして送られた機能コ
ードを分析することによって、ステップ704におい
て、そのリクエストが「死」リクエスト或いは「復活」
リクエストであるかどうかの決定が行われる。
【0071】「死」リクエストの場合、ルーチンは、ス
テップ706において、オフ・スクリーンVRAM21
1D全体の内容を保持するに十分なサイズのRAM10
6におけるバッファを割振る。しかる後、ステップ71
0において、オフ・スクリーンVRAM211Dの内容
がRAM106におけるその新たに割振られたバッファ
に転送され、そしてルーチンはステップ712において
終了する。リクエスティング・ソフトウエア205は、
今や、オフ・スクリーンVRAM211Dへの完全なア
クセスを持つ。しかし、この時点で、リクエスティング
・ソフトウエア205は、VRAM及びバッファ割振り
リストを修正する前述のルーチンを使用し得ない。
【0072】オフ・スクリーンVRAM211Dを使用
してリクエスティング・ソフトウエア205が終了した
後、それは同じエントリ・ポイントに対するコールでも
ってオフ・スクリーンVRAM211Dの内容を復活し
なければならないが、その機能コードを持つことは「復
活」が望ましいことを表す。前述のように、ステップ7
02及び704では、コール・パラメータがチェックさ
れ、復活オペレーションがリクエストされることが決定
される。そこで、ルーチンは、ステップ708におい
て、それらの内容をシステムRAM106におけるバッ
ファからオフ・スクリーンVRAM211Dに転送し、
ステップ712において終了する。
【0073】以上の説明は、本発明の実施例及び或変更
に焦点を合わせたものである。しかし、本発明の利点の
幾つか又はすべてを達成する他の変更及び修正を、この
実施例に対して行うことも可能である。従って、本発明
の精神及び技術範囲にあるそのような変更及び修正をカ
バーすることが、特許請求の範囲の各請求項の目的であ
る。
【0074】別の実施例においては、本発明はコンピュ
ータ・システムと共に使用するためのコンピュータ・プ
ログラム製品として実施可能である。そのような実施
は、コンピュータ読取り可能な媒体、例えば、ディスケ
ット142、CD−ROM147、ROM115、又は
固定ディスク152(図1)のような有形の媒体に固定
された一連のコンピュータ読取り可能な命令、或いは、
光学的又はアナログ通信線を含むがそれに限定されない
有形の媒体を介して、又はマイクロ波、赤外線、又は他
の通信技法を含むがそれに限定されない無線技法を無形
に使用して、ネットワーク96に接続されたネットワー
ク・アダプタ98のようなモデム又は他のインターフェ
ース装置を介してコンピュータシステムに送信可能な一
連のコンピュータ読取り可能な命令より成るものでよ
い。それらのコンピュータ読取り可能な命令は、本発明
に関連して前述した機能性のすべて又は一部分を具体化
するものである。
【0075】当業者には明らかなように、そのようなコ
ンピュータ読み取り可能な命令は、多くのコンピュータ
・アーキテクチャ又はオペレーティング・システムと共
に使用するための多くのプログラミング言語で書くこと
が可能である。更に、そのような命令は、半導体、磁気
的、光学的、又は他のメモリ装置を含むがそれに限定さ
れない現在又は将来の任意のメモリ・テクノロジを使用
して記憶可能であり、或いは、光学的、赤外線、マイク
ロ波、又は他の送信テクノロジを含むがそれに限定され
ない現在又は将来の任意の通信テクノロジを使用して送
信可能である。そのようなコンピュータ・プログラム製
品は、付属の印刷された又は電子的な資料、例えば、シ
ュリンク・ラップ・ソフトウエアと共に取り外し可能な
媒体として分配可能であり、コンピュータ・システムに
よって、例えば、ROM又は固定ディスク上にプリロー
ド可能であり、或いはサーバ又は電子掲示板からネット
ワーク、例えば、インターネット又はワールド・ワイド
・ウェブを介して分配可能である。
【0076】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0077】(1)システム・メモリ及びオフ・スクリ
ーンVRAMを有するコンピュータ・システムにおい
て、オフ・スクリーンVRAMの一部分の使用を得るた
めに、アプリケーション・プログラムからの割振りリク
エストに応答してビデオ・メモリを割振るための装置に
して、前記割振りリクエストに応答して前記オフ・スク
リーンVRAMを照会し、前記割振りリクエストを満足
させるに十分なサイズの不使用部分を前記オフ・スクリ
ーンVRAMが有するかどうかを決定するための決定手
段と、前記決定手段と共同し、前記VRAMの不使用部
分が存在する時、前記オフ・スクリーンVRAMの一部
分を前記アプリケーション・プログラムに割振るための
割振り手段と、前記決定手段と共同し、前記VRAMの
不使用部分が存在しない時、前記割振りリクエストを収
容するに十分なサイズを持ったシステム・メモリの一部
分を前記アプリケーション・プログラムに割振るための
割振り手段と、を含む装置。 (2)前記オフ・スクリーンVRAMのうち或サイズを
持った前に割振られた部分が不使用になる時を決定する
ために前記オフ・スクリーンVRAMをモニタするため
のモニタ手段と、前記オフ・スクリーンVRAMの前記
前に割振られた部分のサイズが前記システム・メモリの
一部分のサイズを収容するに十分なほど大きい時、前記
システム・メモリの一部分に記憶された情報を前記前に
割振られた部分に転送するための転送手段と、を含むこ
とを特徴とする上記(1)に記載の装置。 (3)前記モニタ手段は、前記アプリケーション・プロ
グラムから受け取った割振り解除リクエストに応答し
て、前記アプリケーション・プログラムに割振られたビ
デオ・メモリが不使用であることを前記モニタ手段に知
らせるための手段を含むことを特徴とする上記(2)に
記載の装置。 (4)前記モニタ手段は、前記アプリケーション・プロ
グラムが前記システム・メモリの一部分を割振られ且つ
前記オフ・スクリーンVRAMの前記前に割振られた部
分のサイズが前記システム・メモリの部分のサイズを収
納するに十分な大きさである時、前記割振り解除リクエ
ストに応答して前記システム・メモリから前記オフ・ラ
インVRAMへの情報の転送に対する候補として前記ア
プリケーション・プログラムを識別するための手段を含
むことを特徴とする上記(2)に記載の装置。 (5)前に割振られたビデオ・メモリを使用するため
に、アプリケーション・プログラムからの情報リクエス
トに応答して、前記システム・メモリの部分に記憶され
た情報を前記オフ・セットVRAMの前記前に割振られ
た部分に転送するための手段を含むことを特徴とする上
記(1)に記載の装置。 (6)前記アプリケーション・プログラムからの割振り
リクエストに応答してそのリクエストを記憶するための
記憶手段と、前記決定手段と共同し、前記不使用の部分
が存在する時、前記オフ・スクリーンVRAMの部分の
アドレスを前記記憶手段に記憶するための手段と、前記
決定手段と共同し、前記不使用の部分が存在しない時、
前記システム・メモリの部分のアドレスを前記記憶手段
に記憶するための手段と、を含むことを特徴とする上記
(1)に記載の装置。 (7)前記アプリケーション・プログラムからの情報リ
クエストに応答して、前記記憶手段に記憶されたアドレ
スを前記アプリケーション・プログラムに戻すための手
段を含むことを特徴とする上記(6)に記載の装置。 (8)システム・メモリ及びオフ・スクリーンVRAM
を有するコンピュータ・システムにおいて、アプリケー
ション・プログラムからの割振りリクエストに応答して
前記オフ・スクリーンVRAMの一部分の使用を得るた
めにビデオ・メモリを割振るための方法にして、 A.前記オフ・スクリーンVRAMが前記割振りリクエ
ストを満足させるに十分なサイズの不使用部分を有する
かどうかを決定するために前記オフ・スクリーンVRA
Mを照会するステップと、 B.前記オフ・スクリーンVRAMの不使用部分が存在
する時、前記前記オフ・スクリーンVRAMの部分を前
記アプリケーション・プログラムに割振るステップと、 C.前記オフ・スクリーンVRAMの不使用部分が存在
しない時、前記割振りリクエストを収容するに十分なサ
イズを有する前記システム・メモリの一部分を前記アプ
リケーション・プログラムに割振るステップと、を有す
る方法。 (9)D.前記オフ・スクリーンVRAMのうちの或サ
イズを持った前に割振られた部分が不使用になる時を決
定するためにオフ・スクリーンVRAMをモニタするス
テップと、 E.前記前に割振られた部分のサイズがシステム・メモ
リの部分のサイズを収容するに十分に大きい時、前記シ
ステム・メモリに記憶された情報を前記オフ・スクリー
ンVRAMの前記前に割振られた部分に転送するステッ
プと、を含むことを特徴とする上記(8)に記載の方
法。 (10)前記ステップDは、 D1.前記アプリケーション・プログラムから割振り解
除リクエストを受け取るステップと、 D2.前記割振り解除リクエストが受領される時、前記
アプリケーション・プログラムに割振られたビデオ・メ
モリが不使用であることを前記モニタ手段に知らせるス
テップと、を含むことを特徴とする上記(9)に記載の
方法。 (11)前記ステップDは、 D3.前記アプリケーション・プログラムが前記システ
ム・メモリの一部分を割振られてしまい且つ前記オフ・
スクリーンVRAMの前記前に割振られた部分のサイズ
が前記システム・メモリ部分のサイズを収容するように
十分に大きい時、前記システム・メモリからの情報の転
送に対する候補として前記アプリケーション・プログラ
ムを識別するステップを含むことを特徴とする上記
(9)に記載の方法。 (12)F.前に割振られたビデオ・メモリを使用する
ために前記アプリケーション・プログラムから情報リク
エストを受け取るステップと、 G.前記システム・メモリ部分に記憶された情報を前記
情報リクエストに応答して前記オフ・スクリーンVRA
Mの前記前に割振られた部分に転送するステップと、を
含むことを特徴とする上記(8)に記載の方法。 (13)H.前記リクエストを、前記アプリケーション
・プログラムからの割振りリクエストに応答して記憶す
るステップと、 I.前記VRAMの不使用の部分が存在する時、前記オ
フ・スクリーンVRAMの部分のアドレスを記憶するス
テップと、 J.前記VRAMの不使用の部分が存在しない時、前記
システム・メモリの部分のアドレスを記憶するステップ
と、を含むことを特徴とする上記(8)に記載の方法。 (14)K.前記記憶手段に記憶されたアドレスを、前
記アプリケーションから受け取った情報リクエストに応
答して前記アプリケーション・プログラムに戻すステッ
プ、を含むことを特徴とする上記(8)に記載の方法。 (15)システム・メモリ及びオフ・スクリーンVRA
Mを持つコンピュータ・システムにおいて、アプリケー
ション・プログラムからの割振りリクエストに応答して
ビデオ・メモリ・バッファの使用を得るために、所定の
サイズを持ったビデオ・メモリ・バッファを割振るため
の装置にして、前記割振りリクエストに応答して、リク
エストされたビデオ・メモリ・バッファのサイズを含む
前記割振りリクエストに関する情報を記憶するための記
憶手段と、不使用のVRAM部分すべてのリストを維持
するための手段と、前記アプリケーション・プログラム
に割振るに十分なサイズの不使用の部分を前記オフ・ス
クリーンVRAMが有するかどうかを決定するために、
前記割振りリクエストに応答して前記リストをチェック
するためのチェック手段と、前記チェック手段と共同
し、前記不使用の部分が存在する時、前記記憶手段にお
ける前記不使用の部分のVRAMアドレスを記憶するた
めの手段と、前記チェック手段と共同し、前記不使用の
部分が存在しない時、前記ビデオ・メモリを収容するに
十分なサイズを有する前記システム・メモリの一部分の
システム・メモリ・アドレスを前記記憶手段に記憶する
ための手段と、を含む装置。 (16)前記オフ・スクリーンVRAMのうち或サイズ
を持った前に割振られた部分が不使用になった時、前記
アプリケーション・プログラムから受け取った割振り解
除リクエストに応答して、前記オフ・スクリーンVRA
Mをモニタするためのモニタ手段と、前記ビデオ・メモ
リ・バッファを使用するために、前記アプリケーション
・プログラムからの情報リクエストに応答して、前の割
振りリクエストがオフ・スクリーンVRAMを割振るこ
とによって又はシステム・メモリを割振ることによって
満足されたかどうかを決定するために前記記憶手段をチ
ェックするための手段と、前記前の割振りリクエストが
システム・メモリを割振ることによって満足された時、
前記記憶されたビデオ・メモリ・バッファのサイズを前
記前に割振られたオフ・スクリーンVRAM部分のサイ
ズに比較するための手段と、前記前に割振られた部分の
サイズが前記ビデオ・メモリ・バッファのサイズを収容
するように十分に大きい時、前記システム・メモリ部分
に記憶された情報を前記オフ・スクリーンVRAMの前
記前に割振られた部分に転送するための転送手段と、を
含むことを特徴とする上記(15)に記載の装置。 (17)データ構造と、システム・メモリを割振ること
によって満足されたリクエストを表す前記データ構造に
おける情報を記録するための手段と、を含み、前記転送
手段は、前記システム・メモリにおけるビデオ・メモリ
・バッファの内容が前記オフ・スクリーンVRAMに転
送可能であるかどうかを決定するために前記データ構造
を分析するための手段を含むことを特徴とする上記(1
6)に記載の装置。 (18)前記チェック手段は、前記割振りリクエストに
応答して前記記憶手段にバッファIDを記憶するための
手段を含むことを特徴とする上記(17)に記載の装
置。 (19)前記モニタ手段は、システム・メモリを割振る
ことによって満足され且つ不使用になったオフ・スクリ
ーンVRAMの前記前に割振られた部分よりも大きくな
いサイズを有する候補割振りを表すように前記データ構
造をマークするために、前記データ構造をトラバースす
るための手段を含むことを特徴とする上記(18)に記
載の装置。 (20)前記ビデオ・メモリ・バッファを使用するため
に、前記ビデオ・メモリ・バッファが候補割振りである
ことを対応する記憶された情報が表すかどうかを決定す
るために、前記情報リクエストに応答して前記データ構
造をチェックするための手段を含むことを特徴とする上
記(19)に記載の装置。 (21)システム・メモリ及びオフ・スクリーンVRA
Mを有するコンピュータ・システムにおいて、コンピュ
ータ読み取り可能な具体化されたプログラム・コード手
段を有し、アプリケーション・プログラムからの割振り
リクエストに応答して前記オフ・スクリーンVRAMの
一部分の使用を得るために、ビデオ・メモリを割振るた
めのコンピュータ使用可能な媒体と、前記割振りリクエ
ストを満足させるに十分なサイズの不使用部分を前記オ
フ・スクリーンVRAMが有するかどうかを決定するた
めに前記オフ・スクリーンVRAMを照会するためのプ
ログラム・コード手段と、前記VRAMの不使用部分が
存在する時、前記オフ・スクリーンVRAMの部分を前
記アプリケーション・プログラムに割振るためのプログ
ラム・コード手段と、前記VRAMの不使用部分が存在
しない時、前記割振りリクエストを収容するに十分なサ
イズを有する前記システム・メモリの一部分を前記アプ
リケーション・プログラムに割振るためのプログラム・
コード手段と、を含むプログラム実行装置。 (22)前記オフ・スクリーンVRAMのうちの前に割
振られた部分が不使用になった時を決定するために前記
オフ・スクリーンVRAMをモニタするためのプログラ
ム・コード手段と、前記前に割振られた部分のサイズが
前記システム・メモリ部分のサイズを収容するように十
分に大きい時、前記システム・メモリ部分に記憶された
情報を前記オフ・スクリーンVRAMの前記前に割振ら
れた部分に転送するためのプログラム・コード手段と、
を含むことを特徴とする上記(21)に記載のプログラ
ム実行装置。 (23)前記オフ・スクリーンVRAMをモニタするた
めのプログラム・コード手段は、アプリケーション・プ
ログラムから割振り解除リクエストを受け取るためのプ
ログラム・コード手段と、前記割振り解除リクエストを
受け取る時、前記アプリケーション・プログラムに割振
られたビデオ・メモリが不使用であることを前記モニタ
手段に知らせるためのプログラム・コード手段と、を含
むことを特徴とする上記(22)に記載のプログラム実
行装置。 (24)前記オフ・スクリーンVRAMをモニタするた
めのプログラム・コード手段は、前記アプリケーション
・プログラムが前記システム・メモリの一部分を割振ら
れてしまい且つ前記オフ・スクリーンVRAMの前記前
に割振られた部分のサイズが前記システム・メモリ部分
のサイズを収容するように十分に大きい時、前記システ
ム・メモリからの情報の転送に対する候補として前記ア
プリケーション・プログラムを識別するためのプログラ
ム・コード手段を含むことを特徴とする上記(22)に
記載のプログラム実行装置。 (25)前に割振られたビデオ・メモリを使用するため
に前記アプリケーション・プログラムから情報リクエス
トを受け取るためのプログラム・コード手段と、前記シ
ステム・メモリに記憶された情報を、前記情報リクエス
トに応答して、前記オフ・スクリーンVRAMの前記前
に割振られた部分に転送するためのプログラム・コード
手段と、を含むことを特徴とする上記(21)に記載の
プログラム実行装置。 (26)前記リクエストを、前記アプリケーション・プ
ログラムからの割振りリクエストに応答して記憶するた
めのプログラム・コード手段と、前記VRAMの不使用
の部分が存在する時、前記オフ・スクリーンVRAMの
部分のアドレスを記憶するためのプログラム・コード手
段と、前記VRAMの不使用の部分が存在しない時、前
記システム・メモリの部分のアドレスを記憶するための
プログラム・コード手段と、を含むことを特徴とする上
記(21)に記載のプログラム実行装置。 (27)ドキュメンテーションとの結合を特徴とする上
記(21)に記載のプログラム実行装置。
【図面の簡単な説明】
【図1】通常のコンピュータ・システムの概略図であ
る。
【図2】本発明の実施例のアーキテクチャを示す簡単な
概略的ブロック図である。
【図3】実施例に従って仮想オフ・スクリーンVTAM
バッファを割振るルーチンを示す説明的なフローチャー
トである。
【図4】実施例に従って仮想オフ・スクリーンVTAM
バッファを割振り解除するルーチンを示す説明的なフロ
ーチャートである。
【図5】実施例に従ってバッファ・リクエスト情報を記
憶するリンクしたリスト・データ構造を示す概略図であ
る。
【図6】実施例に従ってバッファ割振り情報をリクエス
ティング・ソフトウエアに戻すルーチンを示す説明的フ
ローチャートである。
【図7】実施例に従ってオフ・スクリーンVRAMの内
容全体をクリアするためのルーチンを示す説明的なフロ
ーチャートである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・ピー・コッフェイ アメリカ合衆国フロリダ州、ボカ・ラト ン、ボカ・グレイズ・ブルバード・イース ト 8361 (72)発明者 ジョナサン・マーク・ワグナー アメリカ合衆国フロリダ州、コーラル・ス プリングス、レッド・ベイ・プレイス 7491

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】システム・メモリ及びオフ・スクリーンV
    RAMを有するコンピュータ・システムにおいて、オフ
    ・スクリーンVRAMの一部分の使用を得るために、ア
    プリケーション・プログラムからの割振りリクエストに
    応答してビデオ・メモリを割振るための装置にして、 前記割振りリクエストに応答して前記オフ・スクリーン
    VRAMを照会し、前記割振りリクエストを満足させる
    に十分なサイズの不使用部分を前記オフ・スクリーンV
    RAMが有するかどうかを決定するための決定手段と、 前記決定手段と共同し、前記VRAMの不使用部分が存
    在する時、前記オフ・スクリーンVRAMの一部分を前
    記アプリケーション・プログラムに割振るための割振り
    手段と、 前記決定手段と共同し、前記VRAMの不使用部分が存
    在しない時、前記割振りリクエストを収容するに十分な
    サイズを持ったシステム・メモリの一部分を前記アプリ
    ケーション・プログラムに割振るための割振り手段と、 を含む装置。
  2. 【請求項2】前記オフ・スクリーンVRAMのうち或サ
    イズを持った前に割振られた部分が不使用になる時を決
    定するために前記オフ・スクリーンVRAMをモニタす
    るためのモニタ手段と、 前記オフ・スクリーンVRAMの前記前に割振られた部
    分のサイズが前記システム・メモリの一部分のサイズを
    収容するに十分なほど大きい時、前記システム・メモリ
    の一部分に記憶された情報を前記前に割振られた部分に
    転送するための転送手段と、 を含むことを特徴とする請求項1に記載の装置。
  3. 【請求項3】前記モニタ手段は、前記アプリケーション
    ・プログラムから受け取った割振り解除リクエストに応
    答して、前記アプリケーション・プログラムに割振られ
    たビデオ・メモリが不使用であることを前記モニタ手段
    に知らせるための手段を含むことを特徴とする請求項2
    に記載の装置。
  4. 【請求項4】前記モニタ手段は、前記アプリケーション
    ・プログラムが前記システム・メモリの一部分を割振ら
    れ且つ前記オフ・スクリーンVRAMの前記前に割振ら
    れた部分のサイズが前記システム・メモリの部分のサイ
    ズを収納するに十分な大きさである時、前記割振り解除
    リクエストに応答して前記システム・メモリから前記オ
    フ・ラインVRAMへの情報の転送に対する候補として
    前記アプリケーション・プログラムを識別するための手
    段を含むことを特徴とする請求項2に記載の装置。
  5. 【請求項5】前に割振られたビデオ・メモリを使用する
    ために、アプリケーション・プログラムからの情報リク
    エストに応答して、前記システム・メモリの部分に記憶
    された情報を前記オフ・セットVRAMの前記前に割振
    られた部分に転送するための手段を含むことを特徴とす
    る請求項1に記載の装置。
  6. 【請求項6】前記アプリケーション・プログラムからの
    割振りリクエストに応答してそのリクエストを記憶する
    ための記憶手段と、 前記決定手段と共同し、前記不使用の部分が存在する
    時、前記オフ・スクリーンVRAMの部分のアドレスを
    前記記憶手段に記憶するための手段と、 前記決定手段と共同し、前記不使用の部分が存在しない
    時、前記システム・メモリの部分のアドレスを前記記憶
    手段に記憶するための手段と、 を含むことを特徴とする請求項1に記載の装置。
  7. 【請求項7】前記アプリケーション・プログラムからの
    情報リクエストに応答して、前記記憶手段に記憶された
    アドレスを前記アプリケーション・プログラムに戻すた
    めの手段を含むことを特徴とする請求項6に記載の装
    置。
  8. 【請求項8】システム・メモリ及びオフ・スクリーンV
    RAMを有するコンピュータ・システムにおいて、アプ
    リケーション・プログラムからの割振りリクエストに応
    答して前記オフ・スクリーンVRAMの一部分の使用を
    得るためにビデオ・メモリを割振るための方法にして、 A.前記オフ・スクリーンVRAMが前記割振りリクエ
    ストを満足させるに十分なサイズの不使用部分を有する
    かどうかを決定するために前記オフ・スクリーンVRA
    Mを照会するステップと、 B.前記オフ・スクリーンVRAMの不使用部分が存在
    する時、前記前記オフ・スクリーンVRAMの部分を前
    記アプリケーション・プログラムに割振るステップと、 C.前記オフ・スクリーンVRAMの不使用部分が存在
    しない時、前記割振りリクエストを収容するに十分なサ
    イズを有する前記システム・メモリの一部分を前記アプ
    リケーション・プログラムに割振るステップと、 を有する方法。
  9. 【請求項9】D.前記オフ・スクリーンVRAMのうち
    の或サイズを持った前に割振られた部分が不使用になる
    時を決定するためにオフ・スクリーンVRAMをモニタ
    するステップと、 E.前記前に割振られた部分のサイズがシステム・メモ
    リの部分のサイズを収容するに十分に大きい時、前記シ
    ステム・メモリに記憶された情報を前記オフ・スクリー
    ンVRAMの前記前に割振られた部分に転送するステッ
    プと、 を含むことを特徴とする請求項8に記載の方法。
  10. 【請求項10】前記ステップDは、 D1.前記アプリケーション・プログラムから割振り解
    除リクエストを受け取るステップと、 D2.前記割振り解除リクエストが受領される時、前記
    アプリケーション・プログラムに割振られたビデオ・メ
    モリが不使用であることを前記モニタ手段に知らせるス
    テップと、 を含むことを特徴とする請求項9に記載の方法。
  11. 【請求項11】前記ステップDは、 D3.前記アプリケーション・プログラムが前記システ
    ム・メモリの一部分を割振られてしまい且つ前記オフ・
    スクリーンVRAMの前記前に割振られた部分のサイズ
    が前記システム・メモリ部分のサイズを収容するように
    十分に大きい時、前記システム・メモリからの情報の転
    送に対する候補として前記アプリケーション・プログラ
    ムを識別するステップを含むことを特徴とする請求項9
    に記載の方法。
  12. 【請求項12】F.前に割振られたビデオ・メモリを使
    用するために前記アプリケーション・プログラムから情
    報リクエストを受け取るステップと、 G.前記システム・メモリ部分に記憶された情報を前記
    情報リクエストに応答して前記オフ・スクリーンVRA
    Mの前記前に割振られた部分に転送するステップと、 を含むことを特徴とする請求項8に記載の方法。
  13. 【請求項13】H.前記リクエストを、前記アプリケー
    ション・プログラムからの割振りリクエストに応答して
    記憶するステップと、 I.前記VRAMの不使用の部分が存在する時、前記オ
    フ・スクリーンVRAMの部分のアドレスを記憶するス
    テップと、 J.前記VRAMの不使用の部分が存在しない時、前記
    システム・メモリの部分のアドレスを記憶するステップ
    と、 を含むことを特徴とする請求項8に記載の方法。
  14. 【請求項14】K.前記記憶手段に記憶されたアドレス
    を、前記アプリケーションから受け取った情報リクエス
    トに応答して前記アプリケーション・プログラムに戻す
    ステップ、 を含むことを特徴とする請求項8に記載の方法。
  15. 【請求項15】システム・メモリ及びオフ・スクリーン
    VRAMを持つコンピュータ・システムにおいて、アプ
    リケーション・プログラムからの割振りリクエストに応
    答してビデオ・メモリ・バッファの使用を得るために、
    所定のサイズを持ったビデオ・メモリ・バッファを割振
    るための装置にして、 前記割振りリクエストに応答して、リクエストされたビ
    デオ・メモリ・バッファのサイズを含む前記割振りリク
    エストに関する情報を記憶するための記憶手段と、 不使用のVRAM部分すべてのリストを維持するための
    手段と、 前記アプリケーション・プログラムに割振るに十分なサ
    イズの不使用の部分を前記オフ・スクリーンVRAMが
    有するかどうかを決定するために、前記割振りリクエス
    トに応答して前記リストをチェックするためのチェック
    手段と、 前記チェック手段と共同し、前記不使用の部分が存在す
    る時、前記記憶手段における前記不使用の部分のVRA
    Mアドレスを記憶するための手段と、 前記チェック手段と共同し、前記不使用の部分が存在し
    ない時、前記ビデオ・メモリを収容するに十分なサイズ
    を有する前記システム・メモリの一部分のシステム・メ
    モリ・アドレスを前記記憶手段に記憶するための手段
    と、 を含む装置。
  16. 【請求項16】前記オフ・スクリーンVRAMのうち或
    サイズを持った前に割振られた部分が不使用になった
    時、前記アプリケーション・プログラムから受け取った
    割振り解除リクエストに応答して、前記オフ・スクリー
    ンVRAMをモニタするためのモニタ手段と、 前記ビデオ・メモリ・バッファを使用するために、前記
    アプリケーション・プログラムからの情報リクエストに
    応答して、前の割振りリクエストがオフ・スクリーンV
    RAMを割振ることによって又はシステム・メモリを割
    振ることによって満足されたかどうかを決定するために
    前記記憶手段をチェックするための手段と、 前記前の割振りリクエストがシステム・メモリを割振る
    ことによって満足された時、前記記憶されたビデオ・メ
    モリ・バッファのサイズを前記前に割振られたオフ・ス
    クリーンVRAM部分のサイズに比較するための手段
    と、 前記前に割振られた部分のサイズが前記ビデオ・メモリ
    ・バッファのサイズを収容するように十分に大きい時、
    前記システム・メモリ部分に記憶された情報を前記オフ
    ・スクリーンVRAMの前記前に割振られた部分に転送
    するための転送手段と、 を含むことを特徴とする請求項15に記載の装置。
  17. 【請求項17】データ構造と、 システム・メモリを割振ることによって満足されたリク
    エストを表す前記データ構造における情報を記録するた
    めの手段と、 を含み、 前記転送手段は、前記システム・メモリにおけるビデオ
    ・メモリ・バッファの内容が前記オフ・スクリーンVR
    AMに転送可能であるかどうかを決定するために前記デ
    ータ構造を分析するための手段を含むことを特徴とする
    請求項16に記載の装置。
  18. 【請求項18】前記チェック手段は、前記割振りリクエ
    ストに応答して前記記憶手段にバッファIDを記憶する
    ための手段を含むことを特徴とする請求項17に記載の
    装置。
  19. 【請求項19】前記モニタ手段は、システム・メモリを
    割振ることによって満足され且つ不使用になったオフ・
    スクリーンVRAMの前記前に割振られた部分よりも大
    きくないサイズを有する候補割振りを表すように前記デ
    ータ構造をマークするために、前記データ構造をトラバ
    ースするための手段を含むことを特徴とする請求項18
    に記載の装置。
  20. 【請求項20】前記ビデオ・メモリ・バッファを使用す
    るために、前記ビデオ・メモリ・バッファが候補割振り
    であることを対応する記憶された情報が表すかどうかを
    決定するために、前記情報リクエストに応答して前記デ
    ータ構造をチェックするための手段を含むことを特徴と
    する請求項19に記載の装置。
  21. 【請求項21】システム・メモリ及びオフ・スクリーン
    VRAMを有するコンピュータ・システムにおいて、コ
    ンピュータ読み取り可能な具体化されたプログラム・コ
    ード手段を有し、アプリケーション・プログラムからの
    割振りリクエストに応答して前記オフ・スクリーンVR
    AMの一部分の使用を得るために、ビデオ・メモリを割
    振るためのコンピュータ使用可能な媒体と、 前記割振りリクエストを満足させるに十分なサイズの不
    使用部分を前記オフ・スクリーンVRAMが有するかど
    うかを決定するために前記オフ・スクリーンVRAMを
    照会するためのプログラム・コード手段と、 前記VRAMの不使用部分が存在する時、前記オフ・ス
    クリーンVRAMの部分を前記アプリケーション・プロ
    グラムに割振るためのプログラム・コード手段と、 前記VRAMの不使用部分が存在しない時、前記割振り
    リクエストを収容するに十分なサイズを有する前記シス
    テム・メモリの一部分を前記アプリケーション・プログ
    ラムに割振るためのプログラム・コード手段と、 を含むプログラム実行装置。
  22. 【請求項22】前記オフ・スクリーンVRAMのうちの
    前に割振られた部分が不使用になった時を決定するため
    に前記オフ・スクリーンVRAMをモニタするためのプ
    ログラム・コード手段と、 前記前に割振られた部分のサイズが前記システム・メモ
    リ部分のサイズを収容するように十分に大きい時、前記
    システム・メモリ部分に記憶された情報を前記オフ・ス
    クリーンVRAMの前記前に割振られた部分に転送する
    ためのプログラム・コード手段と、 を含むことを特徴とする請求項21に記載のプログラム
    実行装置。
  23. 【請求項23】前記オフ・スクリーンVRAMをモニタ
    するためのプログラム・コード手段は、 アプリケーション・プログラムから割振り解除リクエス
    トを受け取るためのプログラム・コード手段と、 前記割振り解除リクエストを受け取る時、前記アプリケ
    ーション・プログラムに割振られたビデオ・メモリが不
    使用であることを前記モニタ手段に知らせるためのプロ
    グラム・コード手段と、 を含むことを特徴とする請求項22に記載のプログラム
    実行装置。
  24. 【請求項24】前記オフ・スクリーンVRAMをモニタ
    するためのプログラム・コード手段は、 前記アプリケーション・プログラムが前記システム・メ
    モリの一部分を割振られてしまい且つ前記オフ・スクリ
    ーンVRAMの前記前に割振られた部分のサイズが前記
    システム・メモリ部分のサイズを収容するように十分に
    大きい時、前記システム・メモリからの情報の転送に対
    する候補として前記アプリケーション・プログラムを識
    別するためのプログラム・コード手段を含むことを特徴
    とする請求項22に記載のプログラム実行装置。
  25. 【請求項25】前に割振られたビデオ・メモリを使用す
    るために前記アプリケーション・プログラムから情報リ
    クエストを受け取るためのプログラム・コード手段と、 前記システム・メモリに記憶された情報を、前記情報リ
    クエストに応答して、前記オフ・スクリーンVRAMの
    前記前に割振られた部分に転送するためのプログラム・
    コード手段と、 を含むことを特徴とする請求項21に記載のプログラム
    実行装置。
  26. 【請求項26】前記リクエストを、前記アプリケーショ
    ン・プログラムからの割振りリクエストに応答して記憶
    するためのプログラム・コード手段と、 前記VRAMの不使用の部分が存在する時、前記オフ・
    スクリーンVRAMの部分のアドレスを記憶するための
    プログラム・コード手段と、 前記VRAMの不使用の部分が存在しない時、前記シス
    テム・メモリの部分のアドレスを記憶するためのプログ
    ラム・コード手段と、 を含むことを特徴とする請求項21に記載のプログラム
    実行装置。
  27. 【請求項27】ドキュメンテーションとの結合を特徴と
    する請求項21に記載のプログラム実行装置。
JP8167071A 1995-08-11 1996-06-27 グラフィックス・エンジンのオフ・スクリーン・メモリを仮想化するための方法及び装置 Pending JPH0954723A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US514214 1995-08-11
US08/514,214 US5757386A (en) 1995-08-11 1995-08-11 Method and apparatus for virtualizing off-screen memory of a graphics engine

Publications (1)

Publication Number Publication Date
JPH0954723A true JPH0954723A (ja) 1997-02-25

Family

ID=24046261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8167071A Pending JPH0954723A (ja) 1995-08-11 1996-06-27 グラフィックス・エンジンのオフ・スクリーン・メモリを仮想化するための方法及び装置

Country Status (2)

Country Link
US (1) US5757386A (ja)
JP (1) JPH0954723A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008501189A (ja) * 2004-05-26 2008-01-17 ソニー オンライン エンタテインメント インク ルールベースの手続的地形生成用資源管理
JP2009087189A (ja) * 2007-10-02 2009-04-23 Nec Corp データストリーム解析システム、およびそれに用いる装置、方法並びにプログラム

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6686936B1 (en) 1997-11-21 2004-02-03 Xsides Corporation Alternate display content controller
US6337717B1 (en) 1997-11-21 2002-01-08 Xsides Corporation Alternate display content controller
US6639613B1 (en) 1997-11-21 2003-10-28 Xsides Corporation Alternate display content controller
US6018332A (en) 1997-11-21 2000-01-25 Ark Interface Ii, Inc. Overscan user interface
US6330010B1 (en) * 1997-11-21 2001-12-11 Xsides Corporation Secondary user interface
US6437809B1 (en) 1998-06-05 2002-08-20 Xsides Corporation Secondary user interface
US6426762B1 (en) 1998-07-17 2002-07-30 Xsides Corporation Secondary user interface
US6295068B1 (en) 1999-04-06 2001-09-25 Neomagic Corp. Advanced graphics port (AGP) display driver with restricted execute mode for transparently transferring textures to a local texture cache
US6590592B1 (en) 1999-04-23 2003-07-08 Xsides Corporation Parallel interface
US6593945B1 (en) 1999-05-21 2003-07-15 Xsides Corporation Parallel graphical user interface
US6630943B1 (en) * 1999-09-21 2003-10-07 Xsides Corporation Method and system for controlling a complementary user interface on a display surface
US6717596B1 (en) 2000-02-18 2004-04-06 Xsides Corporation Method and system for controlling a complementary user interface on a display surface
US6225546B1 (en) 2000-04-05 2001-05-01 International Business Machines Corporation Method and apparatus for music summarization and creation of audio summaries
US6674452B1 (en) 2000-04-05 2004-01-06 International Business Machines Corporation Graphical user interface to query music by examples
US7506265B1 (en) 2000-07-17 2009-03-17 Microsoft Corporation System and method for displaying images of virtual machine environments
US6651132B1 (en) 2000-07-17 2003-11-18 Microsoft Corporation System and method for emulating the operation of a translation look-aside buffer
US7069205B1 (en) * 2000-07-17 2006-06-27 Microsoft Corporation System and method for emulating the operation of a video graphics adapter
US6704021B1 (en) * 2000-11-20 2004-03-09 Ati International Srl Method and apparatus for efficiently processing vertex information in a video graphics system
US7085705B2 (en) * 2000-12-21 2006-08-01 Microsoft Corporation System and method for the logical substitution of processor control in an emulated computing environment
US6980946B2 (en) * 2001-03-15 2005-12-27 Microsoft Corporation Method for hybrid processing of software instructions of an emulated computer system
US6968350B2 (en) * 2001-04-07 2005-11-22 Microsoft Corporation Method for establishing a virtual hard drive for an emulated computer system running on a host computer system
WO2003009144A1 (en) * 2001-07-19 2003-01-30 Wind River Systems, Inc. Memory management system
US6906720B2 (en) * 2002-03-12 2005-06-14 Sun Microsystems, Inc. Multipurpose memory system for use in a graphics system
US7219352B2 (en) 2002-04-15 2007-05-15 Microsoft Corporation Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays
US7451457B2 (en) * 2002-04-15 2008-11-11 Microsoft Corporation Facilitating interaction between video renderers and graphics device drivers
KR100914120B1 (ko) * 2002-04-15 2009-08-27 마이크로소프트 코포레이션 비디오 렌더러와 그래픽 디바이스 드라이버, 및 이들간의 상호 작용을 용이하게 하기 위한 장치, 시스템, 방법 및 전자적으로 액세스 가능한 매체
US20040008213A1 (en) * 2002-07-11 2004-01-15 Sun Microsystems, Inc., A Delaware Corporation Tagging multicolor images for improved compression
US7046250B1 (en) * 2002-07-11 2006-05-16 Sun Microsystems, Inc. Caching fonts for improved bandwidth of transmitted text
US20040008214A1 (en) * 2002-07-11 2004-01-15 Sun Microsystems, Inc., A Delaware Corporation Tagging repeating images for improved compression
US20040008205A1 (en) * 2002-07-11 2004-01-15 Sun Microsystems, Inc., A Delaware Corporation Tagging single-color images for improved compression
US20040164999A1 (en) * 2003-02-26 2004-08-26 International Business Machines Corporation Method and apparatus in a data processing system for rendering through multiple clip regions
US7080172B1 (en) * 2003-05-27 2006-07-18 Marvell Luternational Ltd. Management of memory, hardware and associated device drivers using stacks
US7158668B2 (en) * 2003-08-01 2007-01-02 Microsoft Corporation Image processing using linear light values and other image processing improvements
US7643675B2 (en) * 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
US7139002B2 (en) * 2003-08-01 2006-11-21 Microsoft Corporation Bandwidth-efficient processing of video images
US8271976B2 (en) * 2004-06-30 2012-09-18 Microsoft Corporation Systems and methods for initializing multiple virtual processors within a single virtual machine
US8212832B2 (en) * 2005-12-08 2012-07-03 Ati Technologies Ulc Method and apparatus with dynamic graphics surface memory allocation
KR20100084338A (ko) * 2009-01-16 2010-07-26 삼성전자주식회사 이미지 드로잉 방법 및 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4606066A (en) * 1982-09-09 1986-08-12 Hitachi, Ltd. Programmable image processor
US4511965A (en) * 1983-03-21 1985-04-16 Zenith Electronics Corporation Video ram accessing system
US4757312A (en) * 1984-06-29 1988-07-12 Hitachi, Ltd. Image display apparatus
US4656596A (en) * 1984-07-23 1987-04-07 Texas Instruments Incorporated Video memory controller
US5001652A (en) * 1987-03-20 1991-03-19 International Business Machines Corporation Memory arbitration for video subsystems
US5151997A (en) * 1989-08-10 1992-09-29 Apple Computer, Inc. Computer with adaptable video circuitry
US5218670A (en) * 1990-08-31 1993-06-08 Texas Instruments Incorporated Apparatus and methods for the handling of banded frame buffer overflows
US5250940A (en) * 1991-01-18 1993-10-05 National Semiconductor Corporation Multi-mode home terminal system that utilizes a single embedded general purpose/DSP processor and a single random access memory
US5291188A (en) * 1991-06-17 1994-03-01 Sun Microsystems, Inc. Method and apparatus for allocating off-screen display memory
US5245702A (en) * 1991-07-05 1993-09-14 Sun Microsystems, Inc. Method and apparatus for providing shared off-screen memory
US5388207A (en) * 1991-11-25 1995-02-07 Industrial Technology Research Institute Architecutre for a window-based graphics system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008501189A (ja) * 2004-05-26 2008-01-17 ソニー オンライン エンタテインメント インク ルールベースの手続的地形生成用資源管理
JP4733116B2 (ja) * 2004-05-26 2011-07-27 ソニー オンライン エンタテインメント エルエルシー ルールベースの手続的地形生成用資源管理
JP2009087189A (ja) * 2007-10-02 2009-04-23 Nec Corp データストリーム解析システム、およびそれに用いる装置、方法並びにプログラム

Also Published As

Publication number Publication date
US5757386A (en) 1998-05-26

Similar Documents

Publication Publication Date Title
JPH0954723A (ja) グラフィックス・エンジンのオフ・スクリーン・メモリを仮想化するための方法及び装置
JP3427917B2 (ja) 動的オフスクリーン・ディスプレイ用メモリ管理システムおよび方法
US5978893A (en) Method and system for memory management
US6701420B1 (en) Memory management system and method for allocating and reusing memory
US8810591B2 (en) Virtualization of graphics resources and thread blocking
US6366289B1 (en) Method and system for managing a display image in compressed and uncompressed blocks
US6266753B1 (en) Memory manager for multi-media apparatus and method therefor
US5883640A (en) Computing apparatus and operating method using string caching to improve graphics performance
US6370631B1 (en) Memory controller including compression/decompression capabilities for improved data access
US7830394B2 (en) Virtualization of graphics resources
US5829053A (en) Block storage memory management system and method utilizing independent partition managers and device drivers
US6170047B1 (en) System and method for managing system memory and/or non-volatile memory using a memory controller with integrated compression and decompression capabilities
US6437788B1 (en) Synchronizing graphics texture management in a computer system using threads
JP3872558B2 (ja) メモリ削減技法を使用したページ生成のためのフォールバック処理
US5936632A (en) Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels
US7839411B2 (en) Virtualization of graphics resources
US5546103A (en) Method and apparatus for displaying an image in a windowed environment
US6115793A (en) Mapping logical cache indexes to physical cache indexes to reduce thrashing and increase cache size
US7940276B2 (en) Virtualization of graphics resources
KR20040015757A (ko) 시간 할당기를 갖는 그래픽 렌더링 엔진을 포함하는 장치,방법 및 시스템
US6704021B1 (en) Method and apparatus for efficiently processing vertex information in a video graphics system
US20020178176A1 (en) File prefetch contorol method for computer system
US20030011592A1 (en) Index processor
WO1998026352A1 (fr) Procede de commande de prelecture de fichiers dans un systeme d'ordinateur
US5552803A (en) Method and apparatus for displaying an image using system profiling