JP3427917B2 - 動的オフスクリーン・ディスプレイ用メモリ管理システムおよび方法 - Google Patents

動的オフスクリーン・ディスプレイ用メモリ管理システムおよび方法

Info

Publication number
JP3427917B2
JP3427917B2 JP16711996A JP16711996A JP3427917B2 JP 3427917 B2 JP3427917 B2 JP 3427917B2 JP 16711996 A JP16711996 A JP 16711996A JP 16711996 A JP16711996 A JP 16711996A JP 3427917 B2 JP3427917 B2 JP 3427917B2
Authority
JP
Japan
Prior art keywords
area
linked list
memory
screen display
data structure
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 - Fee Related
Application number
JP16711996A
Other languages
English (en)
Other versions
JPH0962235A (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.)
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 JPH0962235A publication Critical patent/JPH0962235A/ja
Application granted granted Critical
Publication of JP3427917B2 publication Critical patent/JP3427917B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はメモリ管理システム
に関し、特にマルチメディアのパーソナル・コンピュー
タ・システムにおけるオフスクリーン・ディスプレイ用
メモリの領域を動的に割り振り(allocating)、また割り
振り解除(deallocating)するためのディスプレイ用メモ
リ管理システムに関する。
【0002】本発明は、発明の名称「Method and Appar
atus for Virtualizing Off-ScreenMemory of a Graphi
cs Engine」、出願日が本件と同一で譲渡人が共通であ
る米国特許出願に関連の主題を含む。
【0003】
【従来の技術】ここ10年間はコンピュータ関連技術に
とって革新的な時であった。パーソナル・コンピュータ
の出現と急激な増加は、高度に集中させて高密度の制御
を行った1台の大型メインフレーム・コンピュータ・シ
ステムから、コンピュータ・ネットワーク操作を介して
容易にアクセス可能で、広域に分散したパーソナル・コ
ンピュータやワークステーション間を接続するネットワ
ークへとコンピュータ環境を変化させている。
【0004】コンピュータ環境におけるこの変化に付随
して、コンピュータ・アプリケーション・プログラムの
種類が非常に増大している。今までは、コンピュータは
主に計算、データ整理、データ・ベース管理等の機能を
提供した。これらのアプリケーションに加え、現在、コ
ンピュータは音声メッセージ、ゲーム、およびビジネス
や教育関連のマルチメディア・アプリケーションを提供
する。古いコンピュータ・アプリケーション・プログラ
ムはテキスト・タイプのみ表示可能なコンピュータ・シ
ステムを使用するように構成されていたが、新しいコン
ピュータ・アプリケーション・プログラムは今日のマル
チメディア環境を作り出すための画像、オーディオおよ
びビデオ等のデータを表示可能なコンピュータ・システ
ムを必要としている。
【0005】テキスト情報とは異なり、画像データや、
特にビデオやオーディオ・データは非常に大容量のデー
タ記憶を必要とする。例えば、コンピュータ・モニタに
カラーのビデオ画像を表示するには、テキスト情報に比
べてカラー画像を表すデジタル化したデータを記憶する
ため大容量のデジタル記憶が必要である。
【0006】図1は、IBM PS/2(商標)パーソ
ナル・コンピュータのようなマルチメディア対応コンピ
ュータ・システム100用の公知のシステム構造を示し
ている。
【0007】コンピュータ・システム100は、マイク
ロプロセッサ(例えば、80x86、Pentium、PowerPC等の
商標で知られている製品)を含む中央処理装置(CP
U)102、読取り専用メモリ(ROM)104、およ
び等速呼出し記憶装置(RAM)106を有する。ま
た、このコンピュータ・システムは、システムRAM1
06を制御するメモリ・コントローラ103、システム
・バス108を制御するバス・コントローラ112、お
よび種々の割込み信号を受信し処理するため使用する割
込みコントローラ114を有する。
【0008】大容量の記憶はディスケット110B、C
D−ROMディスク109B,あるいはハードディスク
113Bにより提供できる。ディスケット110Bはデ
ィスケット・ドライブ110Aに差し入れ可能であり、
このドライブはディスク・ドライブ・コントローラ11
0によりシステム・バス108に接続されている。同様
に、CD−ROMディスク109BはCD−ROMドラ
イブ109Aに差し入れ可能である。そして、ハードデ
ィスク113Bは固定ディスク・ドライブ113Aの一
部であり、その固定ディスク・ドライブもコントローラ
113によりバス108に接続されている。
【0009】コンピュータ・システム100への入力お
よび出力はいくつかの装置によって提供される。例え
ば、キーボードおよびマウス・コントローラ105は、
キーボード入力装置105Aおよびマウス入力装置10
5Bを制御するためにバス108に接続している。DM
Aコントローラ107は、システムRAM106への直
接記憶アクセス(DMA)を行うために設けられる。ま
た、このコンピュータは、ディスプレイ111A(例え
ば、CRTスクリーンあるいはフラット・スクリーン)
での情報表示を制御するビデオ・コントローラも有す
る。コンピュータ・システム100の制御下にあるディ
スプレイ111Aは2次元配列の画素(ピクセル)を生
成し、ピクセルは独立して制御され画像を形成する。オ
ーディオ・サブシステム116のような他の入力、出力
装置が拡張スロット115を介してこのシステムに接続
可能である。
【0010】コンピュータ100は一般的にオペレーテ
ィング・システム・ソフトウェアにより制御、調整され
る。例えば、OS/2(商標)は代表的なオペレーティ
ング・システムであり、本発明の譲渡人である米国IB
M社により開発され販売されている。従来技術のオペレ
ーティング・システムは実行用のコンピュータ・プロセ
スを制御しスケジュールし、メモリ管理をおこない、フ
ァイル・システム・サービスを提供し、ネットワーク操
作とI/Oサービスを提供し、グラフィカル・ユーザ・
インターフェース(GUI)のようなユーザ・インター
フェースを提供する。テキスト・エディタやスプレッド
・シートのようなユーザ・アプリケーション・プログラ
ムは、このコンピュータ・システムを適切に使用するた
め直接的あるいは間接的に、これらおよび他のオペレー
ティング・システムの性能を頼みにしている。
【0011】近年のグラフィカル・ユーザ・インターフ
ェースの開発と、それらの広範囲な受け入れで、ユーザ
に対する情報の表示はかなり洗練され、かつコンピュー
タ上の要求が強くなってきた。新型のコンピュータは、
線、箱、円等の種々の画像アイテムを可能な限りカラー
でディスプレイ111A上に生成するためグラフィック
ス能力を使用する。これらのグラフィックス能力は、G
UI(例えば、OS/2オペレーティング・システムと
共に作動する「Presentation Manager」という商標のG
UI)を使用してディスプレイ111A上に表示された
「ウィンドウ」内に情報を表示するため使うことができ
る。
【0012】グラフィックスに加え、最新のコンピュー
タは文書データ、デジタル・オーディオ・データ、デジ
タル・ビデオ・データ、デジタル音楽データ等の様々な
形態のデータを記憶し、組織し、表示するマルチメディ
ア技術を盛んに使用している。例えば、マルチメディア
技術を使用するコンピュータは、オーディオ・サブシス
テム116からの同期したオーディオ出力でディスプレ
イ111A上に映画のクリップ・ビデオの一連の画面を
作成するためビデオ・データとオーディオ・データを再
生できる。
【0013】グラフィカル・ディスプレイおよびビデオ
画像は従来、「フレーム・バッファ」111Bの対応す
る位置にディスプレイ111Aの各ピクセルに対するデ
ータを記憶することにより生成される。通常のフレーム
・バッファ111Bは、ビデオ・ランダム・アクセス・
メモリ(VRAM)と呼ばれる特殊なメモリ・チップか
ら公知の方法で作られ、1つのポートでVRAMのメモ
リ・セルに従来の読み書き操作を行うことができ、同時
に第2の走査(スキャン)ポートを介してそのセルから
データを走査可能である。ディスプレイ・コントローラ
111は、通常データを走査して、そのディスプレイ・
データに基づきディスプレイ111Aの対応のピクセル
を励起するために使用する。
【0014】表示データは、1つのピクセルを光らせる
かどうかを指示し、あるいはカラー画像を含むのなら、
1つのピクセルについての希望の照度およびクロミナン
スを指示することができる。さらに、カラー・データは
YUV、RGB、RBGなどピクセルあたりのデータの
ビット数を多量に必要とする種々の公知のフォーマット
によりインプリメントできる。例えば、最新のカラー・
フォーマットはピクセルあたり3バイト、あるいは24
ビットに至る情報が必要である。
【0015】グラフィカル画像およびビデオ画像の生成
はシステム資源のかなりの量を必要とする。線および円
のように比較的簡単なグラフィカル・アイテムでさえ、
どのピクセルを光らすか決めるためかなりの演算を必要
とする。例えば、よく知られている直線の代数方程式y
=mx+bは、顕著な「階段効果(Staircase effect)」
を有する直線を生み出すのでグラフィックス方程式とし
て使用するのは通常適していない。従って、数年にわた
って、数学者や設計者は不連続のピクセル志向のディス
プレイ111Aの要求に特に適した「グラフィックス方
程式」を開発した。これらの方程式は高品質のグラフィ
カル・アイテムを生み出す。
【0016】アニメーション・ビデオは比較的低い演算
頻度であるが、通常、かなり大容量の記憶資源とシステ
ム・バス108の広い帯域幅を必要とする。アニメーシ
ョン・ビデオは、比較的連続した画像を生み出すため1
秒あたり15ビデオ・フレームのように、高い再生率で
ビデオ・フレームの連続した画面を表示することにより
作られる。
【0017】通常の1ビデオ・フレームは数千から数百
万のピクセルを有するので、記憶容量や帯域幅の問題は
即座に臨界になる。この記憶容量と帯域幅の負担を軽減
するため、特別のビデオ・データのフォーマットおよ
び、圧縮と圧縮解除技術が開発されている。このシステ
ムを用いて、圧縮されたビデオ・データがシステムRA
M106から回収される。そして、圧縮データがソフト
ウェアの圧縮解除ルーチン(図示せず)により圧縮解除
される。その後、圧縮解除データは表示のためにフレー
ム・バッファ111Bにおかれる。いくつかのケースで
は、圧縮解除データはソフトウェアの伸長ルーチンによ
り所定量を「伸長」、その伸長された画像をフレーム・
バッファ111Bに入れる。公知の方法では、伸長技術
は小さい画像をオフスクリーン・ビデオ・メモリに記憶
させることができ、フレーム・バッファに入れる前に検
索され、大きな画像を表示させることができる。
【0018】IBM社はUltimotion(商標)というフル
・モーション・ビデオ・データ・システムを開発し、そ
れは、Ultimotionデータ・フォーマットによりビデオ・
データのフレームを圧縮し、伝送し、圧縮解除するため
のソフトウェア・ルーチンを特に提供するものである。
各ビデオ・フレームはイントラ・フレームあるいはデル
タ・フレームのどちらかである。イントラ・フレームは
表示する全体画像を表す。デルタ・フレームは前の画像
フレームにたいする変更のみ表す。Ultimotionや他のシ
ステムは、モーション・ビデオに関連して必要とするシ
ステム資源のある程度は軽減できたが、オフスクリーン
VRAMのように、かなりの量の資源がなお必要であ
る。
【0019】今日のコンピュータ・システムにおける増
大したグラフィックスおよびビデオに対する要求を支援
するため、CPU102およびシステム・バス108に
かかるコンピュータ的な負荷をさらに軽減するためのグ
ラフィックス・エンジン111Cの開発に多大な努力が
重ねられてきた。通常、グラフィックス・エンジン11
1C(これは、グラフィックス・コプロセッサ、あるい
はグラフィックス・アクセラレータとも呼ばれている)
は、グラフィックス命令信号に応じてどのピクセルを励
起すべきか決めるため、また、フレーム・バッファ11
1Bに適切なディスプレイ・データを記憶させるため
に、その内部ディスプレイ・メモリと特別な目的のハー
ドウェアを有する。例えば、グラフィックス・エンジン
111Cは直線を描くための命令信号に応じて、直線を
描くにはどのピクセルを励起すべきか決めるためのグラ
フィックス直線方程式をインプリメント実行するために
特別のハードウェア(つまり、専用の集積回路)を有す
る。従来のエンジン111Cは、通常、色を塗るための
能力、また画像をクリップするための能力を有するに加
えて、円や矩形を描くための機能をさらに有する。その
グラフィックス方程式に関連したコンピュータの演算を
行わなくてはならないことからCPU102が解放され
るのに加え、エンジン111Cはシステム・バス108
がかなりの量のディスプレイ・データをフレーム・バッ
ファ111Bに伝送しなくてはならないことから解放す
る。
【0020】フレーム・バッファ111Bに要するディ
スプレイ・メモリ量は、ディスプレイ111A上のピク
セルの数および各ピクセルに要するデータ量に左右され
る。時として、エンジンはフレーム・バッファ111B
に必要な量よりも多いディスプレイ・メモリを有する。
この余剰のディスプレイ・メモリ容量はVRAM、DR
AM、SRAMあるいは他のメモリ技術内でインプリメ
ント実行され得るが、この余剰容量は通常、ひとまとめ
にしてオフスクリーンVRAMと称する。
【0021】フレーム・バッファ111Bのようなオフ
スクリーンVRAM111Dは、グラフィックス・エン
ジン111Cに隣接しており、システム・バス108を
使用せずにグラフィックス・エンジンとデータのやりと
りをできる。従って、エンジン111CはシステムRA
M106におけるデータよりオフスクリーンVRAM1
11Dにおける方がより効果的にデータをアクセスでき
る。それは、エンジン111Cがデータを検索するため
バス108やCPUを使用しないからである。この特徴
は、キャッシングと呼ばれる技術によりパフォーマンス
を向上するため頻繁に活用される。特殊なデータがエン
ジン111Cにより使われるほど、オフスクリーンVR
AM111Dにそのデータをキャッシング、あるいは記
憶させるパフォーマンスが向上する。通常、マウス・カ
ーソル情報あるいはフォント情報がキャッシュされる。
後述の「発明の実施の形態」で説明する新しい技術も、
オフスクリーンVRAM111Dにデータを記憶させる
ことに関連したパフォーマンス向上を活用する。
【0022】コンピュータ・メモリのビットあたりの費
用は過去数年で飛躍的に低下したが、新たなマルチメデ
ィア・アプリケーションのソフトウェア・パッケージに
必要なオフスクリーン・メモリ記憶容量は、ビデオやオ
ーディオ対応のパーソナル・コンピュータ・システムの
拡大に伴い極端に増加している。
【0023】しかし、オフスクリーンVRAM111D
の領域を割り振ったり、割り振り解除したりする従来技
術は、オフスクリーンVRAMを可能な限り効果的に利
用するには未熟であった。
【0024】例えば、従来技術のオフスクリーン・ビデ
オ・メモリ管理技術は、コンパイル時間で割り振りを行
う静的割り振りプロセスを使用してディスプレイ・メモ
リの領域(つまり、アドレス可能域)の割り振りを一般
的に管理していた。コンパイル時間は、プログラマによ
り書かれたようなソース・コードを機械実行可能フォー
マットに翻訳するイベントである。その名称により期待
されるように、静的割り振りによる欠点は、コンパイル
時間に成されたビデオ・メモリの割り振りが、ビデオ・
メモリにたいする要求が演算により変わる際に柔軟性が
無いということである。
【0025】コンピュータ・システムで有効なビデオ・
メモリの量を効果的に利用するためには、メモリ管理シ
ステムがオフスクリーン・ビデオ・メモリをより効果的
な方法で割り振り、ビデオ・メモリの有効なオフスクリ
ーン部分の適切な利用を確実にしなくてはならない。
【0026】
【発明が解決しようとする課題】本発明の目的は、コン
ピュータ・システムにおける有効なディスプレイ・メモ
リの量を最適化する方法によりオフスクリーン・ディス
プレイ・メモリを割り振り、また割り振り解除するため
のシステムおよび方法を提供することである。
【0027】
【課題を解決するための手段】上記課題を解決するた
め、本発明によるディスプレイ・メモリ・マネージャ
は、メモリのスペースを複数の重複しない領域に分割
し、その各々はビデオ画像を示すビデオ・データの種々
の量を記憶可能であり、また割り振られた領域および割
り振られてない領域、また割り振られてない領域の様々
な組合せを示すリンクド・リスト・データ構造を作成す
ることにより、割り振りおよび割り振り解除要求に応じ
てオフスクリーン・ディスプレイ・メモリを割り振り、
また割り振り解除する。メモリへの要求を受信すると、
メモリ・マネージャは要求ディスプレイ・データ量を記
憶するのに十分大きい領域あるいは領域の組合せを探す
リンクド・リスト・データ構造をトラバースする。1つ
の領域あるいは複数の領域の組合せが見つかり、割り振
られると、新たな1つの領域あるいは複数の領域が現
在、割り振られており、よって割り振り解除されない限
り次の割り振りの要求は無効である事を示すためリンク
ド・リスト・データ構造が更新される。
【0028】本発明のディスプレイ・メモリ・マネージ
ャは、次の1)から3)のスナップショットを維持す
る。1)ビデオ情報を記憶するために現在割り振られ
た、オフスクリーン・ディスプレイ・メモリのスペース
における領域、2)オフスクリーン・ディスプレイ・メ
モリの割り振られていない領域、3)オフスクリーン・
ディスプレイ・メモリの割り振られていない領域の種々
の組合せ。各割り振り領域と割り振られていない領域、
および割り振られていない領域の組合せを示す情報は、
リンクド・リスト・データ構造に維持される。そのリン
クド・リストの各要素は1つの領域、あるいは複数の領
域の組合せに関連させられ、また、各要素は領域の始ま
りアドレス、そのサイズ、およびその領域が現在割り振
られているか否かを示すフィールドを含む。
【0029】オフスクリーン・ディスプレイ・メモリの
領域の要求を受信すると、ディスプレイ・メモリ・マネ
ージャが情報を記憶させるに最良の適合であるディスプ
レイ・メモリの領域を決定する。最適のメモリ領域が、
最小の有効なサイズ領域から最大サイズのメモリ領域、
あるいは領域の組合せで組織されているリンクド・リス
ト構造をトラバースすることにより決定される。最小領
域で始まると、ディスプレイ・メモリ・マネージャは連
続したサイズの小から大へという順位に従い配列したリ
ストの要素をチェックする。十分なサイズを有する最小
の割り振られていない領域が見つかると、その領域が割
り振られる。
【0030】最小領域から最大領域で始まるリンクド・
リスト要素を配列することにより、連続的な順位でその
リストをトラバースすることは選択領域が記憶すべき新
たな情報に最適であることを確実にする。
【0031】最適な領域を決定するための望ましいプロ
セスは、初めの要素で始まり、そして次に、必要に応じ
広い領域に関連させた要素をチェックすることを含むの
で、このリンクド・リストは著しくリンクしたリストで
あると言える。しかし、最適な領域を決定するため異な
った探索プロセスを使用することを望むなら、二重にリ
ンクしたリストも使用できる。二重リンクド・リストの
使用は、そのリストの各要素が各隣接する要素に1つ、
合わせて2つのポインタを有するので、そのリストの要
素の挿入、削除、および再編成を実際に容易にする。
【0032】本発明は、ビット・マップド・フォーマッ
ト、ピクセル・パックド・フォーマット、および他のデ
ィスプレイ・フォーマットに適応可能である。
【0033】本発明のディスプレイ・メモリ管理システ
ムは、マルチタスク・オペレーティング・システムに対
する動的かつ効果的な割り振り/割り振り解除プロセス
により有効なディスプレイ・メモリ・スペースの効果的
な利用が得られる。
【0034】ディスプレイ・メモリの割り振りおよび割
り振り解除を制御することにより、メモリのアービトレ
ーションが本質的に可能となる。
【0035】
【発明の実施の形態】図2はコンピュータ・ディスプレ
イ111A上に情報を表示する際に必要とされるコンピ
ュータ・システム構成部品(ハードウェアおよびソフト
ウェア)の一部を示す機能的説明のためのブロック図で
ある。その構成部品は、OS/2(商標)あるいは同様
のマルチタスク・オペレーティング・システムを実行す
る図1に示したコンピュータ・システムのようなマルチ
メディア対応コンピュータ・システムの形で実施するの
が望ましい。このシステムは一般的にCPU102内で
実行される複数のアプリケーション・プログラム201
A、201B、…を有する。
【0036】詳細には、このアプリケーション・プログ
ラム201は、テキスト・データを有するワード・プロ
セッサ・プログラム、グラフィックスを有するスプレッ
ドシート・パッケージ、およびディスプレイ上にビデオ
画像を表示するビデオ編集パッケージを有することが可
能である。実行の際には、このアプリケーション・プロ
グラムは公知の方法でソフトウェア・ライブラリ202
から種々のソフトウェア・ルーチンを呼び出すことがで
きる。このライブラリ202内のルーチンも、ディスプ
レイ・コントローラ211(例えば、SVGA)との通
信の責任をもつハードウェア固有のソフトウェア・ルー
チンであるデバイス・ドライバ203と通信する。その
ディスプレイ・コントローラ211はグラフィックス・
エンジン211C、オフスクリーン・ディスプレイ・メ
モリ211D(例えば、VRAM)、フレーム・バッフ
ァ211B(オンスクリーンVRAMとしても示す)を
有する。公知のように、フレーム・バッファ211Bは
コントローラ211により連続的に走査されてディスプ
レイ211A上にグラフィカル画像あるいはアニメーシ
ョン画像を提供する。
【0037】ソフトウェア・ライブラリ202はアプリ
ケーション・プログラム201に共通に必要なルーチン
を有する。このように、アプリケーション・プログラム
開発は容易になる。つまり、アプリケーションの開発者
は、圧縮解除ルーチン、カラー変換ルーチン、グラフィ
ックス方程式のソフトウェア・インプリメント実行等の
ような共通に必要とされるルーチンを設計し、開発し、
試験し、デバッグする必要はない。開発者は、開発する
アプリケーション・プログラムの特徴にのみ焦点をあわ
せればよい。
【0038】必要に応じ、アプリケーション・プログラ
ム201はライブラリ202を使う必要が無く、そのア
プリケーション201が適切なシステム特権を有するな
ら、代わりにそのデバイス・ドライバ203と直接通信
することが可能である。本発明の種々の特徴について説
明をより分かり易くするため、アプリケーション・プロ
グラム201とライブラリ202の組合せを、以後、
「要求ソフトウェア」205と称する。
【0039】デバイス・ドライバ203は、ディスプレ
イ・コントローラ211と通信するハードウェア固有ソ
フトウェアである。デバイス・ドライバ203は一組の
エントリ・ポイント、あるいは「イクスポート」を有
し、そこを通じて、ドライバ203が呼び出される。各
エントリ・ポイントは、ドライバ203によって行われ
る特別な機能に対応する関連ソフトウェア・ルーチンを
持っている。例えば、本発明によるドライバ203はオ
フスクリーンVRAM211Dの領域を割り振りおよび
割り振り解除するため、専用のオフスクリーン・ディス
プレイ・メモリ・マネージャ・ルーチン203Aに対す
るエントリ・ポイントを有する。
【0040】エントリ・ポイントに関連の各ルーチン
は、呼出の一部として特定の「内部パラメータ」、同様
に、呼出コード、例えば、要求ソフトウェア205を受
けることを求め、またそのルーチンから特定の「外部パ
ラメータ」を受けることを、所定のインターフェースに
よりリターン・コードでルーチンがリターンするように
求めるのと同様に求める。このリターン・コードは、エ
ラーがあったこと、要求がうまくサービスを受けられた
こと、あるいは要求が部分的にサービスを受けられたこ
となどを示すことができる。
【0041】デバイス・ドライバ203は、タスクを実
行するために公知のデバイス「ヘルパ」ルーチン204
を使うことも可能である。ヘルパ・ルーチン204は、
OS/2を含む多数のオペレーティング・システムによ
り供給され、共通に必要とするルーチンを提供すること
によりデバイス・ドライバの開発を容易にする。この観
点では、上記したライブラリ202に多分に類似してい
る。
【0042】本発明によれば、ソフトウェア205はオ
フスクリーン・ディスプレイ・メモリ・マネージャ20
3Aを呼び出すことにより緩衝メモリの領域、あるいは
オフスクリーンVRAM211Dの隣接部分を要求す
る。このオフスクリーン・ディスプレイ・メモリ・マネ
ージャはオフスクリーン・ディスプレイ・メモリ(例え
ば、VRAM)の割り振り、および割り振り解除を制御
する。このエントリ・ポイントに対する「内部パラメー
タ」は、バッファが要求されているか、あるいは割り振
り解除されているかどうか、そのバッファの所望サイ
ズ、バッファの識別子、要求者の名前、および希望のバ
ッファのタイプ等を示す機能コードを含むことが可能で
ある。そのルーチンからの「外部パラメータ」は、実際
に行われた割り振りのサイズおよびオフスクリーンVR
AMのアドレスを含むことができる。
【0043】割り振りの呼出は、例えばアプリケーショ
ン・プログラム201の1つを初期化する際に行う。上
述したように、一度割り振られたバッファは、カーソル
情報をストアする、あるいは圧縮解除したビデオ・デー
タなどを記憶することにより、要求ソフトウェア205
によって使用され能力を向上させる。
【0044】オフスクリーン・ディスプレイ・メモリに
記憶させたデータは通常、圧縮フォーマットの形の画像
を示しており、ビット・マップした複数のピクセルを含
む。その画像が非グレー・スケールのモノカラーなら、
ビット・マップした画像は、各ピクセルがオンかオフ
(つまり、光っている、あるいは消えている)のどちら
かを示すための情報が1ビットだけを必要とするので、
2次元画像として単純に表すことができる。しかし、画
像がグレー・スケール画像あるいはカラー画像のどちら
かなら、各ピクセル位置を表すために数ビットが必要で
ある。例えば、256のグレー暗度を有するモノカラー
あるいは256のカラー・モードを有するカラー・シス
テムでは、8ビットが各ピクセルの位置に必要である。
【0045】図3は、オフスクリーン・ディスプレイ・
メモリ211D(図2)の割り振りした領域および割り
振られていない領域の各々を示す情報のいくつかのフィ
ールド310−312を各々有する、複数の要素304
−307を備えたリンクしたリスト302を示す。その
リンクド・リスト302の各要素304−307はオフ
スクリーン・ディスプレイ・メモリ211Dの特定の領
域あるいは領域の組合せに対応しており、またメモリの
スペース内の領域位置、その領域が割り振られている
か、否か、またその領域のサイズをそれぞれ示すフィー
ルド310−312を含んでいる。リンクド・リストの
要素304−307は最小領域から最大領域、あるいは
領域の組合せの配列とされている。リンクド・リストは
単一にリンクしたリストが望ましいが、2重にリンクし
たリストも使用可能であることが一般に知られている。
【0046】オフスクリーン・ディスプレイ・メモリの
領域の要求を受けると、そのオフスクリーン・ディスプ
レイ・メモリ・マネージャ203Aは記憶すべき情報に
最適のオフスクリーン・ディスプレイ・メモリ211D
の領域を決定する。最小の有効サイズ領域から最大領
域、あるいは領域の組合せという領域のサイズにより組
織されているリンクド・リスト302をトラバースする
ことにより、最適なメモリ領域が決定される。最小領
域、つまりこのリンクド・リストの第1番目の要素30
4、で開始すると、オフスクリーン・ディスプレイ・メ
モリ・マネージャ203Aが領域の大きさにより小より
大へと配列した順でリンクド・リストの要素をチェック
する。十分な大きさの割り振られていない領域が見つか
ると、その領域は割り振られる。最小領域から始まる大
きさにより領域を配列することにより、この順番でリン
クド・リスト302をトラバースし、記憶すべき新たな
情報に最適な領域を選択することを確実にする。
【0047】図4は、ビデオ画像#1用に割り振られた
領域402と割り振られていない領域404に分割した
オフスクリーン・ディスプレイ・メモリ211Dを示
す。これは、要求ソフトウェア205からの割り振り要
求に応じた第1の割り振りを示している。このメモリの
分割を示すリンクド・リスト構造は2つの要素を含む。
割り振りをした領域402は領域404より小さいの
で、リンクド・リスト302(図3)の第1の要素はメ
モリの割り振りをした領域402に対応する。その割り
振りした領域402は、要求量を満たすため隣接したメ
モリ位置の必要量を含む。リンクド・リストの第2要素
は割り振られていない404の起動アドレス、その領域
のサイズ、およびその領域が割り振られていないことを
示すブール状態フラグも含んでいる。
【0048】2以上の割り振り要求が受信され、割り振
り解除要求なしで行われるとすると、図5に示すよう
に、オフスクリーン・ディスプレイ・メモリ211Dは
ビデオ画像#1−#3をそれぞれ記憶するための領域4
02、406、407に分割される。この分割用のリン
クド・リスト302(図3)は4つの要素、つまり、割
り振られた領域402、406、407の各々に対し1
つ、割り振られていない領域404に1つ、を含む。各
要素は各々の領域サイズ、領域起動アドレス、およびそ
の領域が割り振られているか、割り振られていないるか
を示す状態フラグも含んでいる。
【0049】図6は、2つの別個の隣接した領域40
4、410が現在割り振り可能であるように、デジタル
化した画像#2にたいする領域406(図5)の割り振
り解除に続くオフスクリーン・ディスプレイ・メモリ2
11D(図2)の分割を示している。図6の分割用のリ
ンクド・リストは5つの要素、つまり、割り振られた領
域402、407の各々に対し1つ、割り振られていな
い領域404、410の各々に1つ、および割り振られ
ていない領域404、410の組合せを示す1つの要素
を含む。リンクド・リスト302はサイズが増大する順
に配列してあるので、図6に示した領域402、40
4、407、410に対するリンクド・リスト302の
第1要素は最小なので割り振られていない領域410と
なる。そのリンクド・リスト302の第2要素は、画像
#1に対する割り振りした領域402に対応し、第3要
素は割り振りした領域407に対応している。図6に示
したように、画像#3用の割り振りした領域407は画
像#1用の割り振りした領域402より大きい。リスト
の第4要素は割り振られていない領域404と関連づけ
られ、リンクド・リストの第5および最終要素は割り振
られていない領域404、410の組合せに対応する。
【0050】図7は、デジタル化した画像を記憶するた
めの領域402の割り振り解除に続く、オフスクリーン
・ディスプレイ・メモリ211Dの分割を示している。
この分割用のリンクド・リストは4つの要素を含む。つ
まり、画像#3用の割り振られた領域407に対し1
つ、割り振られていない隣接の領域404、412の各
々に1つ、そして割り振られていない領域404、41
2の組合せに対し1つである。領域402(図6)の状
態は割り振られていない状態に変化させられており、か
つ、その領域は割り振られていない領域410(図6)
と隣接しているので、この2つの領域は組み合わせられ
大きな割り振られていない領域412とされている。オ
フスクリーン・ディスプレイ・メモリ・マネージャ20
3A(図2)のこの処理は1つの例として示す。
【0051】図8と図9は本発明のメモリ割り振りルー
チン500のフローチャートを形成し、望ましくはオフ
スクリーン・ディスプレイ・メモリ・マネージャ203
A(図2)の処理の一部である。図8では、ルーチン5
00はステップ501でリンクド・リスト302(図
3)が最小領域から最大領域へと配列されているので、
そのリスト302の第1要素のポインタを初期化する。
次のステップ502は要求の割り振り量を読み取る。そ
して、ステップ504はリンクド・リストの第1要素を
チェックして、第1領域のサイズが要求割り振り量を満
たす程十分大きいか判定する。答えが否(図にはNで表
示)なら、このリンクド・リストのポインタはステップ
506で増加され、ステップ504を新たな要素にたい
して再度行う。領域が十分大きいなら(図にはYで表
示)、次のステップ507でその領域が割り振られてい
るか判定する。割り振られているなら、ステップ506
へもどる。他の場合は、この処理ルーチンはページ・コ
ネクタ508Aと508Bを介して続けられる。
【0052】図9では、十分な大きさの割り振られてい
ない領域が位置決めされると、このルーチンはページ・
コネクタ508Aと508Bを介してステップ509に
進み、画像がその割り振りした領域(あるいは領域の組
合せ)に割り当てられる。次にステップ510で、その
領域の状態を示す状態要素のブール状態フラグを「割り
振りした」状態に変える。領域が割り振られたので、割
り振られていない領域により作られる種々の組合せがス
テップ512で再演算され、新たな組合せがリンクド・
リストに記憶される。つまり、リンクド・リスト302
(図3)が更新されオフスクリーン・ディスプレイ・メ
モリ211B(図2)の現行状態に合わす。
【0053】図10はオフスクリーン・ディスプレイ・
メモリ領域を割り振り解除するためのルーチン600の
フローチャートを示す。要求ソフトウェア205(図
2)からの割り振り解除要求を受信すると、ルーチン6
00はステップ602で、その領域に対応するリンクド
・リスト要素のブール状態フラグを「割り振られていな
い」状態に変える。ルーチンの次のステップ604で
は、リンクド・リストを割り振られていない領域の新た
な組合せで更新し、そのリンクド・リストを要素が最小
領域から最大領域と配列するように再形成する。再形成
のステップ604は、隣接した割り振られていない領域
を単一の割り振られていない領域へと組合せることを含
み、割り振られていない領域の細分化を防ぐ。つまり、
数個の隣接してない割り振られていない領域がオフスク
リーン・ディスプレイ・メモリに位置していたら、この
割り振り解除プロセスが割り振りした領域の内容を移動
させることにより隣接してない領域どうしを組み合わせ
ることを行う。
【0054】このリンクド・リストが、上述のように小
さい方から大きい方へという順番とは逆に、大から小へ
と検索を行うことも可能であることは、当業界では常識
に属する。つまり、サイズにより配列したリンクド・リ
ストでは、チェックされるリンクド・リストの第1要素
が割り振られていない領域の最大サイズの組合せに関連
した要素となる可能性がある。このリンクド・リスト
は、要求領域のサイズより小さい第1領域が見つかるま
で最大から最小へトラバースすることになる。そして、
次に大きい領域が情報を記憶するのに十分大きい最小領
域を示すので、デジタル化したビデオ画像データがその
次に大きい領域に記憶される。
【0055】さらに、本発明は図3に示した連続的にリ
ンクしたリストのデータ構造に限定されない。本発明の
割り振り/割り振り解除方法も、ツリー構造のような割
り振り/割り振り解除を容易にするための他の構造でリ
ンクド・リスト要素を配列可能であるように考えられて
いる。
【0056】さらに、VRAMが望ましいディスプレイ
・メモリではあるが、本発明のディスプレイ・メモリ管
理技術がDRAMのような他のディスプレイ・メモリ技
術に適応可能であることは当業者なら一般的に類推でき
る。設計者がメモリ再生SRAMを使用することを避け
たいと願っても、この装置は通常、VRAMやDRAM
より低密度で高価である。設計者はメモリを混合して配
列したものも使用可能である。例えば、VRAMはオン
スクリーン・ディスプレイ・メモリ用として使用し、一
方、DRAMあるいはSRAMはオフスクリーン・ディ
スプレイ・メモリ用に使用する。
【0057】本発明はビット・マップド・ディスプレイ
・フォーマットに関して説明したが、それに限定するも
のではない。本発明の割り振り/割り振り解除技術は、
ピクセル・パックド・ディスプレイ・フォーマットを使
用するシステムにも等しく適用できる。加えて、割り振
りしたオフスクリーン・ディスプレイ・メモリの各領域
は「プライベート」領域、あるいは「共用」領域として
割り振りすることも可能であり、各リンクした要素(例
えば、304)は、割り振りした領域が「プライベー
ト」あるいは「共用」領域として割り振りしてあるかど
うか示すために別のフィールドを含むことも可能であ
る。
【0058】別の実施例では、本発明はコンピュータ・
システムで使用するコンピュータ・プログラム・プロダ
クトとしてインプリメント実行できる。このインプリメ
ント実行はコンピュータで読取り可能な媒体、例えばデ
ィスケット110B、CD−ROM109B、ROM1
04のような有形の媒体、あるいは固定ディスク113
B(図1)に固定された一連のコンピュータで読取り可
能な命令、あるいは、コンピュータ・システムにモデム
あるいは他のインターフェース装置、例えばネットワー
ク96に接続したネットワーク・アダプタ98を介し、
光通信ラインあるいはアナログ通信ライン(これに限定
されない)を含む有形媒体、あるいはマイクロ波、赤外
線、他の通信技術等(これに限定されない)を含む無形
の無線使用の技術などによりコンピュータ・システムに
伝送可能な連続したコンピュータで読取り可能な命令を
有することが可能である。この連続したコンピュータで
読取り可能な命令は、本発明に関して前述した機能性の
全てあるいは一部を実施する。このコンピュータで読取
り可能な命令は、多くのコンピュータ構造やオペレーテ
ィング・システムで使用できるように数種のプログラム
言語で書かれることは当業者にとって常識である。さら
に、この命令は、半導体、磁気、光学等のメモリ装置等
(これに限定されない)を含む現在あるいは将来のメモ
リ技術を使用して記憶させ、あるいは光通信、マイクロ
波、赤外線、他の通信技術等(これに限定されない)を
含む現在あるいは将来の通信技術を使用して通信するこ
とが可能である。こうしたコンピュータ・プログラム・
プロダクトは、添付する印刷文あるいは電子文、例えば
プラスチック包装のソフトウェア等の移動可能な媒体と
して配布する、あるいは、システムROMまたは固定デ
ィスク等のコンピュータ・システムに前もってロードす
る、あるいはネットワーク、例えばInternetやWorld Wi
de Webを通じてサーバあるいは電子掲示板から配信する
ことが考えられる。
【0059】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0060】(1)A.デジタル化した画像データを記
憶するためのオフスクリーン・ディスプレイ・メモリの
1領域の要求を受信するステップと、B.上記デジタル
画像データを記憶するに十分大きい、割り振りされてな
いオフスクリーン・ディスプレイ・メモリの領域を選択
するため、リンクド・リストのデータ構造をトラバース
するステップと、C.その選択された領域に上記デジタ
ル画像データを記憶するステップと、D.オフスクリー
ン・ディスプレイ・メモリの上記選択された領域が現在
割り振りされていることを示すため、上記リンクド・リ
スト・データ構造を更新するステップと、E.上記オフ
スクリーン・ディスプレイ・メモリの残りの割り振りさ
れてない領域にたいして様々な組合せを再演算し、新し
い組合せを上記リンクド・リスト・データ構造に記憶す
るステップとを有する、コンピュータ・システムのおけ
るオフスクリーン・ディスプレイ・メモリを割り振る、
および、割り振り解除する方法。 (2)F.上記オフスクリーン・ディスプレイ・メモリ
の1領域を割り振り解除する要求を受信するステップ
と、G.割り振り解除する上記オフスクリーン・ディス
プレイ・メモリの領域を示す上記リンクド・リストの要
素を選択するために上記リンクド・リスト・データ構造
をトラバースするステップと、H.上記領域は割り振り
されていない事を示すため、割り振り解除するオフスク
リーン・ディスプレイ・メモリ領域の上記選択したリン
クド・リスト要素を更新するステップとを、さらに有す
ることを特徴とする上記(1)に記載の方法。 (3)上記ステップDは、D1.上記リンクド・リスト
・データ構造要素の1フィールドに上記割り振りした領
域の始まりのアドレスを記憶するステップを有すること
を特徴とする上記(1)に記載の方法。 (4)上記ステップDは、D2.上記リンクド・リスト
要素のアドレス・フィールドに上記割り振りしたオフス
クリーン・ディスプレイ・メモリ領域の上記始まりアド
レスを記憶するステップと、D3.上記リンクド・リス
ト要素のサイズ・フィールドに上記割り振りした領域の
サイズを記憶するステップとを、さらに有することを特
徴とする上記(2)に記載の方法。 (5)上記ステップCは、C1.上記リンクド・リスト
・データ構造の要素を、最小サイズ領域から最大サイズ
領域に再編成するステップを、さらに有することを特徴
とする上記(4)に記載の方法。 (6)上記ステップは、マルチメディア・マルチタスク
・コンピュータ・システムのオペレーティング・システ
ムによって行われることを特徴とする上記(1)に記載
の方法。 (7)上記リンクド・リスト・データ構造は各々が少な
くとも1つの割り振りしてない領域に関連のある複数の
要素を有し、また、上記ステップBは、B1:割り振り
してない領域の最大サイズの組合せに関連した要素を選
択するステップと、B2:領域サイズが大から小へ配列
した順で要素から要素へ進行するステップと、B3:上
記選択した領域が上記デジタル・ビデオ画像を記憶する
のに十分大きい最小の領域であるように選択するステッ
プとを有することを特徴とする上記(1)に記載の方
法。 (8)A.デジタル化したデータを記憶するためのオフ
スクリーン・ディスプレイ・メモリを含むメモリ装置
と、B.上記メモリ装置の現行状態を示す要素を有する
リンクド・リスト・データ構造を管理する装置で、該要
素の各々は上記メモリ装置内の割り振りしたメモリ領域
と割り振りしてないメモリ領域のサイズを示すフィール
ドと領域が割り振りされているか、否かを示す状態フラ
グを備えた各領域の始まりアドレスとを有し、C.オフ
スクリーン・ディスプレイ・メモリに対する要求のサイ
ズより大きい上記メモリ装置の最小の割り振りされてな
い領域を選択するため、上記リンクド・リスト・データ
構造を探索し、かつ、上記メモリ装置の選択した割り振
りされてない領域に上記画像を記憶させ、上記選択した
領域が現在割り振られていないことを示すため上記リン
クド・リスト・データ構造を更新する手段を有すること
を特徴とする、オフスクリーン・ディスプレイ・メモリ
に対する要求に応じて、割り振りしてないオフスクリー
ン・ディスプレイ・メモリの領域を割り振る、コンピュ
ータ・システムのオフスクリーン・ディスプレイ・メモ
リ・マネージャ。 (9)上記電子メモリ装置はVRAMであることを特徴
とする、上記(8)に記載のオフスクリーン・ディスプ
レイ・メモリ・マネージャ。 (10)上記メモリ装置内のメモリ領域の割り振り解除
要求に応じて、上記リンクド・リスト・データ構造の1
つの要素を削除し、また、上記リンクド・リストが上記
メモリ装置の現行状態を示すことを確実にするため上記
リンクド・リスト・データ構造を作り直すための割り振
り解除手段を、さらに有することを特徴とする、上記
(9)に記載のオフスクリーン・ディスプレイ・メモリ
・マネージャ。 (11)上記メモリ装置はDRAMであることを特徴と
する、上記(10)に記載のオフスクリーン・ディスプ
レイ・メモリ・マネージャ。 (12)マルチタスク・コンピュータ・システムにデジ
タル化した情報を記憶するメモリ装置のオフスクリーン
・ディスプレイ・メモリ領域を割り振りし、また割り振
り解除する方法において、A.上記電子メモリ装置の1
領域に対する割り振り要求を受信するステップと、B.
各々が上記メモリ装置の1領域に対応した要素を有する
リンクしたリストのデータ構造を提供するステップと、
上記各要素は領域の始まり位置、領域のサイズ、その領
域が割り振られているか否かを示す情報フィールドを有
し、C.上記リンクド・リスト・データ構造の要素を最
小領域から最大領域の順で配列するステップと、D.上
記メモリ装置の最小の割り振りしてない領域のサイズが
割り振り要求のサイズより大きくなるように位置決めす
るため、上記リンクド・リスト・データ構造の要素をト
ラバースするステップと、E.上記位置決めされた領域
に上記デジタル化したデータを記憶するステップと、
F.上記メモリ装置の上記選択された領域が現在割り振
りされていることを示すため、上記リンクド・リスト・
データ構造を更新するステップと、G.上記メモリ装置
の最小領域に関係した上記要素が上記リンクド・リスト
内で一番初めの要素となり、また残りの要素がそのサイ
ズが小から大へという順で配列させることを確実にする
ため上記リンクド・リスト・データ構造内で上記要素を
並べ変えるステップとを有することを特徴とする、オフ
スクリーン・ディスプレイ・メモリ領域を割り振りし、
また割り振り解除する方法。 (13)H.割り振り解除命令に基づき、上記メモリ装
置の1つの領域の状態を割り振りした状態から割り振り
してない状態へ変更するステップと、I.隣接する割り
振りしてない領域を組み合わせることにより上記リンク
ド・リストを再形成するステップと、J.上記要素を最
小領域から最大領域の順に配列することを確実にするた
め上記リンクド・リストの要素を再配列するステップと
を、さらに有することを特徴とする、上記(12)に記
載の方法。
【0061】
【発明の効果】本発明のディスプレイ・メモリ管理シス
テムは、マルチタスク・オペレーティング・システムに
対する動的かつ効果的な割り振り/割り振り解除プロセ
スにより有効なディスプレイ・メモリ・スペースの効果
的な利用が得られる。ディスプレイ・メモリの割り振り
および割り振り解除を制御することにより、メモリのア
ービトレーションが可能になる。
【図面の簡単な説明】
【図1】ビデオ対応コンピュータ・システムのブロック
図である。
【図2】コンピュータ・システムで情報を表示するため
のコンピュータ・システム構成部品の一部を示す機能的
説明のためのブロック図である。
【図3】オフスクリーン・ディスプレイ・メモリの割り
振りした領域および割り振り解除した領域の各々を示す
情報のいくつかのフィールドを有するリンクド・リスト
・データ構造を示す説明図である。
【図4】オフスクリーン・ディスプレイ・メモリを割り
振りした領域および割り振り解除した領域に分けた説明
図である。
【図5】オフスクリーン・ディスプレイ・メモリを割り
振りした領域および割り振り解除した領域に分けた説明
図である。
【図6】オフスクリーン・ディスプレイ・メモリを割り
振りした領域および割り振り解除した領域に分けた説明
図である。
【図7】オフスクリーン・ディスプレイ・メモリを割り
振りした領域および割り振り解除した領域に分けた説明
図である。
【図8】オフスクリーン・ディスプレイ・メモリの割り
振りプロセスの前半を示すフローチャートである。
【図9】オフスクリーン・ディスプレイ・メモリの割り
振りプロセスの後半を示すフローチャートである。
【図10】オフスクリーン・ディスプレイ・メモリの割
り振り解除プロセスのフローチャートである。
【符号の説明】
102 CPU 108 システム・バス 111 ビデオ・コントローラ 111A コンピュータ・ディスプレイ 111B フレーム・バッファ 111C グラフィックス・エンジン 111D オフスクリーンVRAM 201 アプリケーション・プログラム 202 ソフトウェア・ライブラリ 203 デバイス・ドライバ 203A オフスクリーン・ディスプレイ・メモリ・マ
ネージャ 204 ドライバ・ヘルパ 205 ソフトウェア 211 ディスプレイ・コントローラ 211A ディスプレイ 211B フレーム・バッファ 211C グラフィックス・エンジン 211D オフスクリーン・ディスプレイ・メモリ 402 割り振った領域 404 割り振り解除した領域 406 割り振った領域 407 割り振った領域
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロジャー・ルーイ アメリカ合衆国33441、フロリダ州、デ アーフィールド・ビーチ、ノース・ウェ スト・フィフス・ストリート 1907 (72)発明者 ジョナサン・マーク・ワグナー アメリカ合衆国33065、フロリダ州、コ ーラル・スプリングス、レッド・ベイ・ プレイス 7491 (56)参考文献 特開 平5−232915(JP,A) 佐々政孝,動的記憶領域割付け法,情 報処理,日本,情報処理学会,1983年 4月15日,/24/4,408−412 (58)調査した分野(Int.Cl.7,DB名) G09G 5/00 - 5/42 G06T 1/60 450 G06F 12/00 580

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】A.デジタル化した画像データを記憶する
    ためのオフスクリーン・ディスプレイ・メモリの1領域
    の要求を受信するステップと、 B.上記デジタル画像データを記憶するに十分大きい、
    割り振りされてないオフスクリーン・ディスプレイ・メ
    モリの領域を選択するため、最小サイズ領域から最大サ
    イズ領域へと編成されているオフスクリーン・ディスプ
    レイ・メモリ領域のリンクド・リスト・データ構造をト
    ラバースするステップと、 C.その選択された領域に上記デジタル画像データを記
    憶するステップと、 D.オフスクリーン・ディスプレイ・メモリの上記選択
    された領域が現在割り振りされていることを示すため、
    上記リンクド・リスト・データ構造を更新するステップ
    と、 E.上記オフスクリーン・ディスプレイ・メモリの残り
    の割り振りされてない領域にたいして様々な組合せを再
    演算し、新しい組合せを上記リンクド・リスト・データ
    構造に記憶して、上記リンクド・リスト・データ構造を
    最小サイズ領域から最大サイズ領域へと再編成するステ
    ップとを有する、コンピュータ・システムにおけるオフ
    スクリーン・ディスプレイ・メモリを割り振る方法。
  2. 【請求項2】A.デジタル化した画像データを記憶する
    ためのオフスクリーン・ディスプレイ・メモリの1領域
    の要求を受信するステップと、 B.上記デジタル画像データを記憶するに十分大きい、
    割り振りされてないオフスクリーン・ディスプレイ・メ
    モリの領域を選択するため、最小サイズ領域から最大サ
    イズ領域へと編成されているオフスクリーン・ディスプ
    レイ・メモリ領域のリンクド・リスト・データ構造をト
    ラバースするステップと、 C.その選択された領域に上記デジタル画像データを記
    憶するステップと、 D.オフスクリーン・ディスプレイ・メモリの上記選択
    された領域が現在割り振りされていることを示すため、
    上記リンクド・リスト・データ構造を更新するステップ
    と、 E.上記オフスクリーン・ディスプレイ・メモリの残り
    の割り振りされてない領域にたいして様々な組合せを再
    演算し、新しい組合せを上記リンクド・リスト・データ
    構造に記憶して、上記リンクド・リスト・データ構造を
    最小サイズ領域から最大サイズ領域へと再編成するステ
    ップと、 F.上記オフスクリーン・ディスプレイ・メモリの1領
    域を割り振り解除する要求を受信するステップと、 G.割り振り解除する上記オフスクリーン・ディスプレ
    イ・メモリの領域を示す上記リンクド・リストの要素を
    選択するために上記リンクド・リスト・データ構造をト
    ラバースするステップと、 H.上記領域は割り振りされていない事を示すため、割
    り振り解除するオフスクリーン・ディスプレイ・メモリ
    領域の上記選択したリンクド・リスト要素を更新するス
    テップとを有する、コンピュータ・システムにおけるオ
    フスクリーン・ディスプレイ・メモリを割り振る、およ
    び、割り振り解除する方法。
  3. 【請求項3】上記ステップDは、 D1.上記リンクド・リスト・データ構造要素の1フィ
    ールドに上記割り振りした領域の始まりのアドレスを記
    憶するステップを有することを特徴とする請求項1に記
    載の方法。
  4. 【請求項4】上記ステップDは、 D2.上記リンクド・リスト要素のアドレス・フィール
    ドに上記割り振りしたオフスクリーン・ディスプレイ・
    メモリ領域の上記始まりアドレスを記憶するステップ
    と、 D3.上記リンクド・リスト要素のサイズ・フィールド
    に上記割り振りした領域のサイズを記憶するステップと
    を、さらに有することを特徴とする請求項2に記載の方
    法。
  5. 【請求項5】上記ステップは、マルチメディア・マルチ
    タスク・コンピュータ・システムのオペレーティング・
    システムによって行われることを特徴とする請求項1に
    記載の方法。
  6. 【請求項6】上記リンクド・リスト・データ構造は各々
    が少なくとも1つの割り振りしてない領域に関連のある
    複数の要素を有し、また、 上記ステップBは、B1:割り振りしてない領域の最大
    サイズの組合せに関連した要素を選択するステップと、
    B2:領域サイズが大から小へ配列した順で要素から要
    素へ進行するステップと、B3:上記選択した領域が上
    記デジタル・ビデオ画像を記憶するのに十分大きい最小
    の領域であるように選択するステップとを有することを
    特徴とする請求項1に記載の方法。
  7. 【請求項7】A.デジタル化したデータを記憶するため
    のオフスクリーン・ディスプレイ・メモリを含むメモリ
    装置と、 B.上記メモリ装置の現行状態を示す要素を有し、最小
    サイズメモリ領域から最大サイズメモリ領域へと編成さ
    れているリンクド・リスト・データ構造を管理する装置
    で、該要素の各々は上記メモリ装置内の割り振りしたメ
    モリ領域と割り振りしてないメモリ領域のサイズを示す
    フィールドと領域が割り振りされているか、否かを示す
    状態フラグを備えた各領域の始まりアドレスとを有し、 C.オフスクリーン・ディスプレイ・メモリに対する要
    求のサイズより大きい上記メモリ装置の最小の割り振り
    されてない領域を選択するため、上記リンクド・リスト
    ・データ構造を探索し、かつ、上記メモリ装置の選択し
    た割り振りされてない領域に上記画像を記憶させ、上記
    選択した領域が現在割り振られていことを示すため上
    記リンクド・リスト・データ構造を更新し、上記リンク
    ド・リスト・データ構造を最小サイズメモリ領域から最
    大サイズメモリ領域へと再編成する手段を有することを
    特徴とする、オフスクリーン・ディスプレイ・メモリに
    対する要求に応じて、割り振りしてないオフスクリーン
    ・ディスプレイ・メモリの領域を割り振る、コンピュー
    タ・システムのオフスクリーン・ディスプレイ・メモリ
    ・マネージャ。
  8. 【請求項8】上記電子メモリ装置はVRAMであること
    を特徴とする、上記請求項に記載のオフスクリーン・
    ディスプレイ・メモリ・マネージャ。
  9. 【請求項9】上記メモリ装置内のメモリ領域の割り振り
    解除要求に応じて、上記リンクド・リスト・データ構造
    の1つの要素を削除し、また、上記リンクド・リストが
    上記メモリ装置の現行状態を示すことを確実にするため
    上記リンクド・リスト・データ構造を作り直すための割
    り振り解除手段を、さらに有することを特徴とする、上
    記請求項に記載のオフスクリーン・ディスプレイ・メ
    モリ・マネージャ。
  10. 【請求項10】上記メモリ装置はDRAMであることを
    特徴とする、上記請求項に記載のオフスクリーン・デ
    ィスプレイ・メモリ・マネージャ。
  11. 【請求項11】マルチタスク・コンピュータ・システム
    にデジタル化した情報を記憶するメモリ装置のオフスク
    リーン・ディスプレイ・メモリ領域を割り振りし、また
    割り振り解除する方法において、 A.上記電子メモリ装置の1領域に対する割り振り要求
    を受信するステップと、 B.各々が上記メモリ装置の1領域に対応した要素を有
    するリンクしたリストのデータ構造を提供するステップ
    と、上記各要素は領域の始まり位置、領域のサイズ、そ
    の領域が割り振られているか否かを示す情報フィールド
    を有し、 C.上記リンクド・リスト・データ構造の要素を最小領
    域から最大領域の順で配列するステップと、 D.上記メモリ装置の最小の割り振りしてない領域のサ
    イズが割り振り要求のサイズより大きくなるように位置
    決めするため、上記リンクド・リスト・データ構造の要
    素をトラバースするステップと、 E.上記位置決めされた領域に上記デジタル化したデー
    タを記憶するステップと、 F.上記メモリ装置の上記選択された領域が現在割り振
    りされていることを示すため、上記リンクド・リスト・
    データ構造を更新するステップと、 G.上記メモリ装置の最小領域に関係した上記要素が上
    記リンクド・リスト内で一番初めの要素となり、また残
    りの要素がそのサイズが小から大へという順で配列させ
    ることを確実にするため上記リンクド・リスト・データ
    構造内で上記要素を並べ変えるステップとを有すること
    を特徴とする、オフスクリーン・ディスプレイ・メモリ
    領域を割り振りし、また割り振り解除する方法。
  12. 【請求項12】H.割り振り解除命令に基づき、上記メ
    モリ装置の1つの領域の状態を割り振りした状態から割
    り振りしてない状態へ変更するステップと、 I.隣接する割り振りしてない領域を組み合わせること
    により上記リンクド・リストを再形成するステップと、 J.上記要素を最小領域から最大領域の順に配列するこ
    とを確実にするため上記リンクド・リストの要素を再配
    列するステップとを、さらに有することを特徴とする、
    請求項11に記載の方法。
JP16711996A 1995-08-11 1996-06-27 動的オフスクリーン・ディスプレイ用メモリ管理システムおよび方法 Expired - Fee Related JP3427917B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US513710 1995-08-11
US08/513,710 US5742797A (en) 1995-08-11 1995-08-11 Dynamic off-screen display memory manager

Publications (2)

Publication Number Publication Date
JPH0962235A JPH0962235A (ja) 1997-03-07
JP3427917B2 true JP3427917B2 (ja) 2003-07-22

Family

ID=24044376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16711996A Expired - Fee Related JP3427917B2 (ja) 1995-08-11 1996-06-27 動的オフスクリーン・ディスプレイ用メモリ管理システムおよび方法

Country Status (2)

Country Link
US (1) US5742797A (ja)
JP (1) JP3427917B2 (ja)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US5838334A (en) * 1994-11-16 1998-11-17 Dye; Thomas A. Memory and graphics controller which performs pointer-based display list video refresh operations
US6121974A (en) * 1996-06-27 2000-09-19 Cirrus Logic, Inc. Priority storage system for fast memory devices
US5926227A (en) * 1997-07-28 1999-07-20 Lsi Logic Corporation Video decoder dynamic memory allocation system and method with error recovery
US6639613B1 (en) * 1997-11-21 2003-10-28 Xsides Corporation Alternate display content controller
US6330010B1 (en) 1997-11-21 2001-12-11 Xsides Corporation Secondary user interface
US6337717B1 (en) 1997-11-21 2002-01-08 Xsides Corporation Alternate display content controller
US6686936B1 (en) 1997-11-21 2004-02-03 Xsides Corporation Alternate display content controller
US6018332A (en) 1997-11-21 2000-01-25 Ark Interface Ii, Inc. Overscan 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
US6320600B1 (en) * 1998-12-15 2001-11-20 Cornell Research Foundation, Inc. Web-based video-editing method and system using a high-performance multimedia software library
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US6466220B1 (en) * 1999-03-05 2002-10-15 Teralogic, Inc. Graphics engine architecture
US6590592B1 (en) 1999-04-23 2003-07-08 Xsides Corporation Parallel interface
AU5276800A (en) 1999-05-21 2000-12-12 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
US7548851B1 (en) 1999-10-12 2009-06-16 Jack Lau Digital multimedia jukebox
TW476066B (en) * 1999-11-09 2002-02-11 Winbond Electronics Corp OSD generation method and structure using dynamic random access memory
US7885868B2 (en) * 1999-12-20 2011-02-08 Jacques Nault Reading, organizing and manipulating accounting data
US7139729B2 (en) * 1999-12-20 2006-11-21 Jacques Nault Financial statement module
US6677964B1 (en) 2000-02-18 2004-01-13 Xsides Corporation Method and system for controlling a complementary user interface on a display surface
EP1128638A1 (fr) * 2000-02-23 2001-08-29 Koninklijke Philips Electronics N.V. Appareil comprenant un écran de visualisation et procédé pour visualiser des informations
US6854018B1 (en) * 2000-03-20 2005-02-08 Nec Corporation System and method for intelligent web content fetch and delivery of any whole and partial undelivered objects in ascending order of object size
US7127525B2 (en) * 2000-05-26 2006-10-24 Citrix Systems, Inc. Reducing the amount of graphical line data transmitted via a low bandwidth transport protocol mechanism
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
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
US6754626B2 (en) * 2001-03-01 2004-06-22 International Business Machines Corporation Creating a hierarchical tree of language models for a dialog system based on prompt and dialog context
US6980946B2 (en) * 2001-03-15 2005-12-27 Microsoft Corporation Method for hybrid processing of software instructions of an emulated computer system
EP1244221A1 (en) * 2001-03-23 2002-09-25 Sun Microsystems, Inc. Method and system for eliminating data redundancies
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
US6915401B2 (en) * 2002-03-21 2005-07-05 International Business Machines Corporation System and method for managing off-screen buffers for electronic images
US7219352B2 (en) 2002-04-15 2007-05-15 Microsoft Corporation Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays
JP4718763B2 (ja) * 2002-04-15 2011-07-06 マイクロソフト コーポレーション ビデオ・レンダラーとグラフィックス・デバイス・ドライバの間の相互作用を促進すること
US7451457B2 (en) * 2002-04-15 2008-11-11 Microsoft Corporation Facilitating interaction between video renderers and graphics device drivers
US20040231000A1 (en) * 2003-02-18 2004-11-18 Gossalia Anuj B. Video aperture management
US7444637B2 (en) 2003-02-18 2008-10-28 Microsoft Corporation Systems and methods for scheduling coprocessor resources in a computing system
US7421694B2 (en) * 2003-02-18 2008-09-02 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
US7673304B2 (en) * 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US6947051B2 (en) 2003-02-18 2005-09-20 Microsoft Corporation Video memory management
US7313764B1 (en) * 2003-03-06 2007-12-25 Apple Inc. Method and apparatus to accelerate scrolling for buffered windows
US7139002B2 (en) * 2003-08-01 2006-11-21 Microsoft Corporation Bandwidth-efficient processing of video images
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
US7312831B2 (en) * 2003-09-16 2007-12-25 Wegener Communications, Inc. Re-inserting VBI data using OSD apparatus and method
US7369134B2 (en) * 2003-12-29 2008-05-06 Anark Corporation Methods and systems for multimedia memory management
KR100703677B1 (ko) * 2004-01-08 2007-04-05 삼성전자주식회사 동적 메모리 관리 장치 및 방법
US20050154851A1 (en) * 2004-01-14 2005-07-14 Charles Andrew A. Fast, high reliability dynamic memory manager
US8271976B2 (en) * 2004-06-30 2012-09-18 Microsoft Corporation Systems and methods for initializing multiple virtual processors within a single virtual machine
US20060010303A1 (en) * 2004-07-12 2006-01-12 Gansha Wu Technique and system for allocating and managing memory
US7523284B1 (en) 2004-08-10 2009-04-21 American Megatrends, Inc. Method and apparatus for providing memory management within a system management mode
US8145777B2 (en) 2005-01-14 2012-03-27 Citrix Systems, Inc. Method and system for real-time seeking during playback of remote presentation protocols
US8200828B2 (en) * 2005-01-14 2012-06-12 Citrix Systems, Inc. Systems and methods for single stack shadowing
US8340130B2 (en) * 2005-01-14 2012-12-25 Citrix Systems, Inc. Methods and systems for generating playback instructions for rendering of a recorded computer session
US8935316B2 (en) 2005-01-14 2015-01-13 Citrix Systems, Inc. Methods and systems for in-session playback on a local machine of remotely-stored and real time presentation layer protocol data
US7831728B2 (en) 2005-01-14 2010-11-09 Citrix Systems, Inc. Methods and systems for real-time seeking during real-time playback of a presentation layer protocol data stream
US20060159432A1 (en) * 2005-01-14 2006-07-20 Citrix Systems, Inc. System and methods for automatic time-warped playback in rendering a recorded computer session
US8296441B2 (en) 2005-01-14 2012-10-23 Citrix Systems, Inc. Methods and systems for joining a real-time session of presentation layer protocol data
US20060177122A1 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Method and apparatus for particle manipulation using graphics processing
US8423673B2 (en) 2005-03-14 2013-04-16 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment using compression
US8171169B2 (en) * 2005-03-14 2012-05-01 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment
US7809918B1 (en) * 2005-07-22 2010-10-05 American Megatrends, Inc. Method, apparatus, and computer-readable medium for providing physical memory management functions
US8191008B2 (en) 2005-10-03 2012-05-29 Citrix Systems, Inc. Simulating multi-monitor functionality in a single monitor environment
JP2007122502A (ja) * 2005-10-28 2007-05-17 Fujitsu Ltd フレームバッファ管理プログラム、プログラム記憶媒体、および管理方法。
US7924884B2 (en) * 2005-12-20 2011-04-12 Citrix Systems, Inc. Performance logging using relative differentials and skip recording
JP4419963B2 (ja) * 2006-01-03 2010-02-24 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置及び画像処理システム
US7743231B2 (en) 2007-02-27 2010-06-22 International Business Machines Corporation Fast sparse list walker
KR100934227B1 (ko) * 2007-09-21 2009-12-29 한국전자통신연구원 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치
JP5227967B2 (ja) * 2007-10-24 2013-07-03 株式会社不二工機 膨張弁
EP2245536B1 (en) 2008-01-27 2018-10-24 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
KR20100084338A (ko) * 2009-01-16 2010-07-26 삼성전자주식회사 이미지 드로잉 방법 및 장치
US8910136B2 (en) 2011-09-02 2014-12-09 International Business Machines Corporation Generating code that calls functions based on types of memory
US8615159B2 (en) 2011-09-20 2013-12-24 Citrix Systems, Inc. Methods and systems for cataloging text in a recorded session
CN107168755A (zh) * 2017-03-30 2017-09-15 武汉斗鱼网络科技有限公司 一种应用软件内存占用优化方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4742474A (en) * 1985-04-05 1988-05-03 Tektronix, Inc. Variable access frame buffer memory
US4983958A (en) * 1988-01-29 1991-01-08 Intel Corporation Vector selectable coordinate-addressable DRAM array
JPH02100715A (ja) * 1988-10-07 1990-04-12 Sharp Corp 表示用メモリの有効利用方式
US4906985A (en) * 1988-11-28 1990-03-06 Digital Equipment Corporation Easily upgradeable video memory system and method
US5414826A (en) * 1990-01-31 1995-05-09 Hewlett-Packard Company System and method for memory management in microcomputer
JPH0732413B2 (ja) * 1990-02-05 1995-04-10 日本電気株式会社 マルチメディア通信方式
US5319395A (en) * 1990-05-16 1994-06-07 International Business Machines Corporation Pixel depth converter for a computer video display
US5361387A (en) * 1990-10-09 1994-11-01 Radius Inc. Video accelerator and method using system RAM
US5132992A (en) * 1991-01-07 1992-07-21 Paul Yurt Audio and video transmission and receiving system
US5291188A (en) * 1991-06-17 1994-03-01 Sun Microsystems, Inc. Method and apparatus for allocating off-screen display memory
US5309173A (en) * 1991-06-28 1994-05-03 Texas Instruments Incorporated Frame buffer, systems and methods
US5335322A (en) * 1992-03-31 1994-08-02 Vlsi Technology, Inc. Computer display system using system memory in place or dedicated display memory and method therefor
WO1994002898A1 (en) * 1992-07-24 1994-02-03 Microsoft Corporation Computer method and system for allocating and freeing memory
US5592670A (en) * 1992-11-02 1997-01-07 Microsoft Corporation Avoidance of deadlocks in a demand paged video adapter
US5392415A (en) * 1992-12-15 1995-02-21 International Business Machines Corporation System for grouping non-contiguous pages belonging to a storage object for page out
US5408650A (en) * 1993-06-29 1995-04-18 Digital Equipment Corporation Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program
EP0722589B1 (en) * 1993-10-06 1999-01-20 Honeywell Inc. Virtual graphics processor and method for embedded, real time display systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佐々政孝,動的記憶領域割付け法,情報処理,日本,情報処理学会,1983年 4月15日,/24/4,408−412

Also Published As

Publication number Publication date
US5742797A (en) 1998-04-21
JPH0962235A (ja) 1997-03-07

Similar Documents

Publication Publication Date Title
JP3427917B2 (ja) 動的オフスクリーン・ディスプレイ用メモリ管理システムおよび方法
US5757386A (en) Method and apparatus for virtualizing off-screen memory of a graphics engine
US6366289B1 (en) Method and system for managing a display image in compressed and uncompressed blocks
US6701420B1 (en) Memory management system and method for allocating and reusing memory
US5978893A (en) Method and system for memory management
US5241656A (en) Depth buffer clipping for window management
US5801717A (en) Method and system in display device interface for managing surface memory
US5430465A (en) Apparatus and method for managing the assignment of display attribute identification values and multiple hardware color look-up tables
US5920326A (en) Caching and coherency control of multiple geometry accelerators in a computer graphics system
US5995120A (en) Graphics system including a virtual frame buffer which stores video/pixel data in a plurality of memory areas
US5388201A (en) Method and apparatus for providing multiple bit depth windows
US5969726A (en) Caching and coherency control of multiple geometry accelerators in a computer graphics system
US5289574A (en) Multiple virtual screens on an "X windows" terminal
US6002411A (en) Integrated video and memory controller with data processing and graphical processing capabilities
US6008816A (en) Method and system for managing color specification using attachable palettes and palettes that refer to other palettes
US6839061B1 (en) Image display system and information storage medium
US5936632A (en) Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels
US5640496A (en) Method and apparatus for management of image data by linked lists of pixel values
US5734387A (en) Method and apparatus for creating and performing graphics operations on device-independent bitmaps
US20040179019A1 (en) Double-buffering of pixel data using copy-on-write semantics
US20020135585A1 (en) Video controller system with screen caching
JPH05216615A (ja) イメージ処理方法及び装置
US5546103A (en) Method and apparatus for displaying an image in a windowed environment
JP2001515613A (ja) 異なった画像を表示する2台の同時表示装置を持つコンピュータ・システム
WO1999003040A1 (en) Virtual memory manager for multi-media engines

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370