JP3316593B2 - メモリ・スペース割当方法及び装置 - Google Patents
メモリ・スペース割当方法及び装置Info
- Publication number
- JP3316593B2 JP3316593B2 JP18160192A JP18160192A JP3316593B2 JP 3316593 B2 JP3316593 B2 JP 3316593B2 JP 18160192 A JP18160192 A JP 18160192A JP 18160192 A JP18160192 A JP 18160192A JP 3316593 B2 JP3316593 B2 JP 3316593B2
- Authority
- JP
- Japan
- Prior art keywords
- search
- memory
- frame buffer
- regions
- area
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control 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
- G09G5/39—Control of the bit-mapped memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Input (AREA)
- Transforming Light Signals Into Electric Signals (AREA)
Description
【0001】
【産業上の利用分野】本発明は、メモリの割当(allocat
ion)に係り、特に、可視のピクセル・データを格納して
いないディスプレイ・メモリの割当に関するものであ
る。
ion)に係り、特に、可視のピクセル・データを格納して
いないディスプレイ・メモリの割当に関するものであ
る。
【0002】
【従来の技術】コンピュータは一般的にデータを発生
し、そのデータは出力ディスプレイ装置にディスプレイ
される。出力ディスプレイ装置はCRT(陰極線管)で
あることが多く、そのCRTはスクリーン全体のイメー
ジを次々と見る人の目にとまらぬ速さでディスプレイす
るので、プログラムが静止画をディスプレイしている場
合には静止した映像に見えるディスプレイが生じる。
し、そのデータは出力ディスプレイ装置にディスプレイ
される。出力ディスプレイ装置はCRT(陰極線管)で
あることが多く、そのCRTはスクリーン全体のイメー
ジを次々と見る人の目にとまらぬ速さでディスプレイす
るので、プログラムが静止画をディスプレイしている場
合には静止した映像に見えるディスプレイが生じる。
【0003】次々にディスプレイされるイメージ(フレ
ーム)を個々に発生するために、データがフレーム・バ
ッファに書き込まれる。フレーム・バッファには、スク
リーン全体のイメージを発生するために、ディスプレイ
装置の発光可能な個々の位置(個々の画素ないし個々の
ピクセル)についての情報が格納される。たとえば、あ
るディスプレイ装置では、一行に約1000のピクセル
を約1000行分ディスプレイすることができる。それ
らについての全ての情報がフレーム・バッファに格納さ
れ、ディスプレイ装置のために繰り返し走査される。
ーム)を個々に発生するために、データがフレーム・バ
ッファに書き込まれる。フレーム・バッファには、スク
リーン全体のイメージを発生するために、ディスプレイ
装置の発光可能な個々の位置(個々の画素ないし個々の
ピクセル)についての情報が格納される。たとえば、あ
るディスプレイ装置では、一行に約1000のピクセル
を約1000行分ディスプレイすることができる。それ
らについての全ての情報がフレーム・バッファに格納さ
れ、ディスプレイ装置のために繰り返し走査される。
【0004】通常、データはフレーム・バッファからデ
ィスプレイ装置へ次のように転送される。すなわち、ピ
クセル毎かつ行毎に、ディスプレイ装置の上方の左隅を
始点として、水平に左から右へ、行毎に下方へ、下方の
右隅へという順序で、転送される。このプロセスはラス
タ走査と呼ばれる。ディスプレイ装置に画像が連続的に
現れるようにするため、フレーム・バッファの引き続く
フレームが、毎秒60フレームまたはそれ以上の速度
(レート)で、ディスプレイ装置のために一定に走査さ
れる。
ィスプレイ装置へ次のように転送される。すなわち、ピ
クセル毎かつ行毎に、ディスプレイ装置の上方の左隅を
始点として、水平に左から右へ、行毎に下方へ、下方の
右隅へという順序で、転送される。このプロセスはラス
タ走査と呼ばれる。ディスプレイ装置に画像が連続的に
現れるようにするため、フレーム・バッファの引き続く
フレームが、毎秒60フレームまたはそれ以上の速度
(レート)で、ディスプレイ装置のために一定に走査さ
れる。
【0005】データのフレームが走査されている間に、
次のフレームに含まれる新しいデータはフレーム・バッ
ファに転送されなければならない。フレームでディスプ
レイされるべき新しいデータは、フレーム・バッファの
変更中の部分に何時でも書き込むことができる。情報を
フレーム・バッファに書き込むことと、情報をフレーム
・バッファからディスプレイ装置へと走査することを、
同時にできるようにするために、2ポートのビデオ・ラ
ンダム・アクセス・メモリ(VRAM)が、通常、フレ
ーム・バッファのために用いられる。2ポートの一方を
介して書き込みが行われ、他方を介して走査が行われ
る。
次のフレームに含まれる新しいデータはフレーム・バッ
ファに転送されなければならない。フレームでディスプ
レイされるべき新しいデータは、フレーム・バッファの
変更中の部分に何時でも書き込むことができる。情報を
フレーム・バッファに書き込むことと、情報をフレーム
・バッファからディスプレイ装置へと走査することを、
同時にできるようにするために、2ポートのビデオ・ラ
ンダム・アクセス・メモリ(VRAM)が、通常、フレ
ーム・バッファのために用いられる。2ポートの一方を
介して書き込みが行われ、他方を介して走査が行われ
る。
【0006】もし、ディスプレイ装置への情報の走査中
に、同時に、データをフレーム・バッファへ置かれつつ
あるとすると、走査中の情報が2つの時間的にずれたフ
レームから得られることになる。たとえば、もし、フレ
ーム・バッファへのデータの書き込み速度よりも速い速
度で、走査が行われ、そして、フレーム・バッファの変
更中(書き込み中)の部分が走査されるものとすると、
ディスプレイの或る部分は前のフレームのものとなり、
ディスプレイの或る部分は次のフレームのものとなろ
う。時間的にずれた2つのフレームの部分が同時にディ
スプレイされると、実時間ビデオにおけるように速く変
化するディスプレイの場合には使用者はめんくらうこと
になる。生成されるイメージは著しく歪み、フレーム・
ティア(frame tears)と呼ばれている。
に、同時に、データをフレーム・バッファへ置かれつつ
あるとすると、走査中の情報が2つの時間的にずれたフ
レームから得られることになる。たとえば、もし、フレ
ーム・バッファへのデータの書き込み速度よりも速い速
度で、走査が行われ、そして、フレーム・バッファの変
更中(書き込み中)の部分が走査されるものとすると、
ディスプレイの或る部分は前のフレームのものとなり、
ディスプレイの或る部分は次のフレームのものとなろ
う。時間的にずれた2つのフレームの部分が同時にディ
スプレイされると、実時間ビデオにおけるように速く変
化するディスプレイの場合には使用者はめんくらうこと
になる。生成されるイメージは著しく歪み、フレーム・
ティア(frame tears)と呼ばれている。
【0007】かかるフレーム・ティアの回避のために、
ダブル・バッファのディスプレイ・メモリを用いること
ができる。ダブル・バッファでは、それぞれ1つのフレ
ームの全体を格納できる2つの完全なフレーム・バッフ
ァが使用される。一方のフレーム・バッファにデータを
書き込み、他方のフレーム・バッファが走査される。走
査中のフレーム・バッファにデータが書き込まれること
がないから、フレーム・ティアは生じ得ない。ダブル・
バッファは、通常、出力ディスプレイ装置に高速度で変
化するデータを与えるプログラムで使用される。
ダブル・バッファのディスプレイ・メモリを用いること
ができる。ダブル・バッファでは、それぞれ1つのフレ
ームの全体を格納できる2つの完全なフレーム・バッフ
ァが使用される。一方のフレーム・バッファにデータを
書き込み、他方のフレーム・バッファが走査される。走
査中のフレーム・バッファにデータが書き込まれること
がないから、フレーム・ティアは生じ得ない。ダブル・
バッファは、通常、出力ディスプレイ装置に高速度で変
化するデータを与えるプログラムで使用される。
【0008】ダブル・バッファのディスプレイ・システ
ムにより提供される能力の利用を、全てのプログラムが
必要としているわけではない。典型例は、主としてテキ
ストの発生または2次元グラフィックス出力に限定され
たプログラムである。そのようなプログラムがダブル・
バッファの能力を有するコンピュータ上をランしてい
て、そのダブル・バッファの能力が利用されていないと
きには、高価なフレーム・バッファ・メモリの相当な容
量が使用されていないことになる。このメモリは、出力
ディスプレイ装置に密接に関連しているのであるから、
ディスプレイ装置に関する情報のオフ・スクリーン記憶
装置のために用いるのに都合の良い位置にある。たとえ
ば、このメモリは、他のウインドウにより現時点でカバ
ーされた部分が存在するウインドウからの、現時点では
見えない情報の格納のために使用できる。このメモリ
は、ふつう低速度のセントラル・プロセッサによりディ
スプレイ装置を更新しなければならない時に生じる遅れ
を除去するためのグラフィックス・アクセラレータが、
ディスプレイ装置とともに使用されるものでは、特に有
用である。なぜなら、このメモリにより、それがなけれ
ばシステム・メモリに格納されてセントラル・プロセッ
サにより操作されねばならないデータを、メモリグラフ
ィックス・アクセラレータが操作できるからである。こ
のことは、不使用のダブル・バッファ領域のような特に
大きな余剰メモリが、フレーム・バッファにより提供さ
れる場合には、特に重要である。ある特定の例では、フ
レーム・バッファ・メモリのほぼ3メガバイトを、オフ
・スクリーン記憶のために利用でき、その相当量のメモ
リに格納される情報については、システム・メモリへの
転送(それには遅れが伴う)が不要となる。
ムにより提供される能力の利用を、全てのプログラムが
必要としているわけではない。典型例は、主としてテキ
ストの発生または2次元グラフィックス出力に限定され
たプログラムである。そのようなプログラムがダブル・
バッファの能力を有するコンピュータ上をランしてい
て、そのダブル・バッファの能力が利用されていないと
きには、高価なフレーム・バッファ・メモリの相当な容
量が使用されていないことになる。このメモリは、出力
ディスプレイ装置に密接に関連しているのであるから、
ディスプレイ装置に関する情報のオフ・スクリーン記憶
装置のために用いるのに都合の良い位置にある。たとえ
ば、このメモリは、他のウインドウにより現時点でカバ
ーされた部分が存在するウインドウからの、現時点では
見えない情報の格納のために使用できる。このメモリ
は、ふつう低速度のセントラル・プロセッサによりディ
スプレイ装置を更新しなければならない時に生じる遅れ
を除去するためのグラフィックス・アクセラレータが、
ディスプレイ装置とともに使用されるものでは、特に有
用である。なぜなら、このメモリにより、それがなけれ
ばシステム・メモリに格納されてセントラル・プロセッ
サにより操作されねばならないデータを、メモリグラフ
ィックス・アクセラレータが操作できるからである。こ
のことは、不使用のダブル・バッファ領域のような特に
大きな余剰メモリが、フレーム・バッファにより提供さ
れる場合には、特に重要である。ある特定の例では、フ
レーム・バッファ・メモリのほぼ3メガバイトを、オフ
・スクリーン記憶のために利用でき、その相当量のメモ
リに格納される情報については、システム・メモリへの
転送(それには遅れが伴う)が不要となる。
【0009】勿論、グラフィックス・アクセラレータに
よるディスプレイ装置上での提示や他のシステム・メン
テナンス動作における遅れを与えることなしに、その余
剰メモリの使用が可能である場合においてのみ、その余
剰メモリは有用なのである。メモリの利用において必要
なステップの1つは、メモリの異なる部分を、メモリの
種々の用途それぞれに割り当てることである。マルチタ
スク環境で進歩したカラー出力を動作させるのに供給し
なければならない情報は、非常に量が多く、高速で変化
する性質を有するので、もし割当プロセスが遅いと、出
力ディスプレイ装置にディスプレイする情報のオペレー
ションも遅くなる。極端な場合には、コンピュータ・シ
ステムの全体のオペレーションがメモリ割当を待つため
に遅くなる。従来の割当プロセスは、フレーム・バッフ
ァの臨時のメモリをオフ・スクリーン・データの格納に
利用できる程には十分に速くはなかった。
よるディスプレイ装置上での提示や他のシステム・メン
テナンス動作における遅れを与えることなしに、その余
剰メモリの使用が可能である場合においてのみ、その余
剰メモリは有用なのである。メモリの利用において必要
なステップの1つは、メモリの異なる部分を、メモリの
種々の用途それぞれに割り当てることである。マルチタ
スク環境で進歩したカラー出力を動作させるのに供給し
なければならない情報は、非常に量が多く、高速で変化
する性質を有するので、もし割当プロセスが遅いと、出
力ディスプレイ装置にディスプレイする情報のオペレー
ションも遅くなる。極端な場合には、コンピュータ・シ
ステムの全体のオペレーションがメモリ割当を待つため
に遅くなる。従来の割当プロセスは、フレーム・バッフ
ァの臨時のメモリをオフ・スクリーン・データの格納に
利用できる程には十分に速くはなかった。
【0010】
【発明により解決すべき課題】それ故、本発明の目的
は、オフ・スクリーン情報の格納のためにディスプレイ
・メモリ・スペースを効果的に割り当てる方法を提供す
ることにある。本発明のより具体的な目的は、オフ・ス
クリーン情報の格納にディスプレイ・メモリ・スペース
を極めて効果的に割り当てる方法を提供することにあ
る。
は、オフ・スクリーン情報の格納のためにディスプレイ
・メモリ・スペースを効果的に割り当てる方法を提供す
ることにある。本発明のより具体的な目的は、オフ・ス
クリーン情報の格納にディスプレイ・メモリ・スペース
を極めて効果的に割り当てる方法を提供することにあ
る。
【0011】
【課題を解決する手段】本発明の目的は次のようにして
達成される。
達成される。
【0012】
〔表記法および命名法〕以下の説明は部分的に、コンピ
ュータ・メモリ内でのデータ・ビットに関するオペレー
ションのアルゴリズムやシンボル表示により行われる。
これらのアルゴリズムの記述や表示は、データ・プロセ
ス技術の分野で通常の知識を有する者が相互に、成果を
伝える最も効果的な手段である。アルゴリズムは、ここ
では、そして一般に、所望の結果へと導く、ステップの
自己矛盾のないシーケエンスであると考えられている。
ステップは、物理量の物理的操作を要求するものであ
る。それらの物理量は、通常(必要的ではないが)、格
納でき、転送でき、結合でき比較でき、その他の操作を
できる、電気的または磁気的な形態をとる。これらの信
号を、ビット(bit)、値(value)、要素(e
lement)、シンボル、キャラクタ、項(ter
m)、数(number)などと称するのが、共通的使
用のために、原理的に便利であることが判明している。
しかし、これらのこのような語は、然るべき物理量に関
係付けられているもので、物理量に便宜上付された名前
である。
ュータ・メモリ内でのデータ・ビットに関するオペレー
ションのアルゴリズムやシンボル表示により行われる。
これらのアルゴリズムの記述や表示は、データ・プロセ
ス技術の分野で通常の知識を有する者が相互に、成果を
伝える最も効果的な手段である。アルゴリズムは、ここ
では、そして一般に、所望の結果へと導く、ステップの
自己矛盾のないシーケエンスであると考えられている。
ステップは、物理量の物理的操作を要求するものであ
る。それらの物理量は、通常(必要的ではないが)、格
納でき、転送でき、結合でき比較でき、その他の操作を
できる、電気的または磁気的な形態をとる。これらの信
号を、ビット(bit)、値(value)、要素(e
lement)、シンボル、キャラクタ、項(ter
m)、数(number)などと称するのが、共通的使
用のために、原理的に便利であることが判明している。
しかし、これらのこのような語は、然るべき物理量に関
係付けられているもので、物理量に便宜上付された名前
である。
【0013】さらに、遂行される操作(manipul
ations)は、普通はオペレータのような人間の頭
脳的活動に関する加算(adding)、比較(com
paring)の語で呼ばれる。本発明の一部をなすも
のとして記載されているオペレーションの何れにおいて
も、オペレータの頭脳的活動能力はほとんど必要とされ
ない。そのオペレーションはマシン・オペレーションで
ある。本発明のオペレーションの遂行には汎用のデジタ
ル・コンピュータ、それに類似の装置を利用できる。全
ての場合に、コンピュータのオペレーティングにおける
メソッド・オペレーションと、計算方法とを、区別して
おく必要がある。本発明は、電気的その他の(機械的、
化学的な)物理量を処理して別の所望の物理的信号を生
成する場合に、コンピュータのオペレーティングをする
ための方法のステップに関するものである。
ations)は、普通はオペレータのような人間の頭
脳的活動に関する加算(adding)、比較(com
paring)の語で呼ばれる。本発明の一部をなすも
のとして記載されているオペレーションの何れにおいて
も、オペレータの頭脳的活動能力はほとんど必要とされ
ない。そのオペレーションはマシン・オペレーションで
ある。本発明のオペレーションの遂行には汎用のデジタ
ル・コンピュータ、それに類似の装置を利用できる。全
ての場合に、コンピュータのオペレーティングにおける
メソッド・オペレーションと、計算方法とを、区別して
おく必要がある。本発明は、電気的その他の(機械的、
化学的な)物理量を処理して別の所望の物理的信号を生
成する場合に、コンピュータのオペレーティングをする
ための方法のステップに関するものである。
【0014】〔詳細な説明〕第1図には、(コンピュー
タ・システムにおけるランダム・アクセス・メモリに利
用される)連続したリニア・メモリ10として記述でき
るものの、短いセクションが示されている。図示のリニ
ア・メモリ10は、十分な数の個々の格納位置を有し、
合計で2048バイト(2Kバイト)のデータを格納す
る。リニア・メモリ10をピクセル・データの格納に使
用するものとし、そのピクセル・データそれぞれが仮に
8ビットにより記述されるものとすると、リニア・メモ
リ10は2048のピクセル・データの格納スペースを
有する。通常、そのようなメモリの容量は、出力ディス
プレイ装置上に1〜2の水平行を表示するデータを格納
するのに十分であると考えられる。ディスプレイされる
行を増やすためには、増やされる各行のデータの格納の
ために、メモリの容量の増大が必要となる(もし、ディ
スプレイ装置が例えば2048x2048ピクセルのも
のであるなら、2048行の格納位置が必要)。
タ・システムにおけるランダム・アクセス・メモリに利
用される)連続したリニア・メモリ10として記述でき
るものの、短いセクションが示されている。図示のリニ
ア・メモリ10は、十分な数の個々の格納位置を有し、
合計で2048バイト(2Kバイト)のデータを格納す
る。リニア・メモリ10をピクセル・データの格納に使
用するものとし、そのピクセル・データそれぞれが仮に
8ビットにより記述されるものとすると、リニア・メモ
リ10は2048のピクセル・データの格納スペースを
有する。通常、そのようなメモリの容量は、出力ディス
プレイ装置上に1〜2の水平行を表示するデータを格納
するのに十分であると考えられる。ディスプレイされる
行を増やすためには、増やされる各行のデータの格納の
ために、メモリの容量の増大が必要となる(もし、ディ
スプレイ装置が例えば2048x2048ピクセルのも
のであるなら、2048行の格納位置が必要)。
【0015】そのような多大のピクセル位置により、こ
のメモリから成るフレーム・バッファは、ディスプレイ
の各水平行に2Kバイトまでのピクセルをディスプレイ
するディスプレイ・モニタとともに使用され得る。もち
ろん、各行にそのように多数のピクセルをディスプレイ
することは、全てのモニタで可能なわけではない(可能
なものは実際には少ない)。そのようなフレーム・バッ
ファは、より少ないピクセルの表示をするモニタととも
にも、フレーム・バッファのより少ない部分を出力ディ
スプレイ装置のために割り当てることにより、使用でき
る。そのような場合には、当然、フレーム・バッファの
相当の部分が使用されないままになる。たとえば、ダブ
ル・バッファ動作をすると必要になるような、2つのフ
ル・フレームを別々にディスプレイすることのために、
十分な量のフレーム・バッファ・メモリが存在する場合
でも、多大のメモリが潜在的な不使用状態に置かれ、コ
ンピュータでランしているアプリケーション・プログラ
ムによってはダブル・バッファは使用されない。
のメモリから成るフレーム・バッファは、ディスプレイ
の各水平行に2Kバイトまでのピクセルをディスプレイ
するディスプレイ・モニタとともに使用され得る。もち
ろん、各行にそのように多数のピクセルをディスプレイ
することは、全てのモニタで可能なわけではない(可能
なものは実際には少ない)。そのようなフレーム・バッ
ファは、より少ないピクセルの表示をするモニタととも
にも、フレーム・バッファのより少ない部分を出力ディ
スプレイ装置のために割り当てることにより、使用でき
る。そのような場合には、当然、フレーム・バッファの
相当の部分が使用されないままになる。たとえば、ダブ
ル・バッファ動作をすると必要になるような、2つのフ
ル・フレームを別々にディスプレイすることのために、
十分な量のフレーム・バッファ・メモリが存在する場合
でも、多大のメモリが潜在的な不使用状態に置かれ、コ
ンピュータでランしているアプリケーション・プログラ
ムによってはダブル・バッファは使用されない。
【0016】ディスプレイすべきデータのみをフレーム
・バッファに格納する場合には、フレームバッファの部
分を割り当てる方法は、システムのオペーレーション速
度の点では重要ではない。そのような場合、使用中のモ
ニタのためにある領域が割り当てられ、割り当てられた
領域のスタート・アドレスとエンド・アドレスがシステ
ム・メモリのあるメモリ位置に格納される。一般に、割
り当てられる1つの領域が相当に大きく、プログラムの
オペレーション中は変更されない。従って、割当の際の
速度は重要でない。しかし、メモリの余剰な部分を他の
目的のために使用しようとすると、メモリのより小さい
部分を迅速に割り当てる方法を開発し、変更中の情報を
その余剰スペースへマップできるようにする必要があ
る。
・バッファに格納する場合には、フレームバッファの部
分を割り当てる方法は、システムのオペーレーション速
度の点では重要ではない。そのような場合、使用中のモ
ニタのためにある領域が割り当てられ、割り当てられた
領域のスタート・アドレスとエンド・アドレスがシステ
ム・メモリのあるメモリ位置に格納される。一般に、割
り当てられる1つの領域が相当に大きく、プログラムの
オペレーション中は変更されない。従って、割当の際の
速度は重要でない。しかし、メモリの余剰な部分を他の
目的のために使用しようとすると、メモリのより小さい
部分を迅速に割り当てる方法を開発し、変更中の情報を
その余剰スペースへマップできるようにする必要があ
る。
【0017】さらに、このオフ・スクリーン・メモリ中
のピクセルを操作する、付随のグラフィックス実行(r
endering)ハードウエアの使用が望まれるな
ら、メモリ割当のテクニック上、メモリ・アクセス・サ
イズ・ストライド(1つの走査線から次の走査線へのピ
クセルの数)を考慮しておかねばならない。実際、オフ
・スクリーン・メモリは、フレーム・バッファの見える
部分と同じ2次元のアドレッシング・アーキテクチャを
持つものとして扱われる。かくして、メモリの連続した
リニア・ブロックを割り当てる、より複雑なメカニズム
を用いなければならない。
のピクセルを操作する、付随のグラフィックス実行(r
endering)ハードウエアの使用が望まれるな
ら、メモリ割当のテクニック上、メモリ・アクセス・サ
イズ・ストライド(1つの走査線から次の走査線へのピ
クセルの数)を考慮しておかねばならない。実際、オフ
・スクリーン・メモリは、フレーム・バッファの見える
部分と同じ2次元のアドレッシング・アーキテクチャを
持つものとして扱われる。かくして、メモリの連続した
リニア・ブロックを割り当てる、より複雑なメカニズム
を用いなければならない。
【0018】例えば、コンピュータ設計者の第1の目標
は、複数の個々のプログラムが、コンピュータ上でラン
でき、同時にそのコンピュータの出力ディスプレイ装置
上でディスプレイできるようにすることである。典型的
には、複数の個々のプログラムがコンピュータの出力デ
ィスプレイ装置にディスプレイされている場合、個々の
プログラムはウインドウ内に現れる。そのウインドウ
は、通常はスクリーン上の方形の領域であり、移動で
き、サイズの拡大、縮小、その他の操作を加えることが
できるものである。複数のプログラムをランさせ、複数
のウインドウに同時にディスプレイできると、あるプロ
グラムで行われているオペレーションを他のプログラム
のオペレーションに容易に関連させることが出来、デー
タをプログラム間で転送でき、そして、一般に、コンピ
ュータを用いて行っている仕事の速度を向上させること
ができる。なぜなら、コンピュータがマルチ・タスクを
同時に遂行する場合には、特定のタスクのためのリソー
スを待たなければならいという時間的な遊びが少なくな
るからである。
は、複数の個々のプログラムが、コンピュータ上でラン
でき、同時にそのコンピュータの出力ディスプレイ装置
上でディスプレイできるようにすることである。典型的
には、複数の個々のプログラムがコンピュータの出力デ
ィスプレイ装置にディスプレイされている場合、個々の
プログラムはウインドウ内に現れる。そのウインドウ
は、通常はスクリーン上の方形の領域であり、移動で
き、サイズの拡大、縮小、その他の操作を加えることが
できるものである。複数のプログラムをランさせ、複数
のウインドウに同時にディスプレイできると、あるプロ
グラムで行われているオペレーションを他のプログラム
のオペレーションに容易に関連させることが出来、デー
タをプログラム間で転送でき、そして、一般に、コンピ
ュータを用いて行っている仕事の速度を向上させること
ができる。なぜなら、コンピュータがマルチ・タスクを
同時に遂行する場合には、特定のタスクのためのリソー
スを待たなければならいという時間的な遊びが少なくな
るからである。
【0019】しばしば、あるアプリケーション・プログ
ラムをディスプレイしているウインドウが、他のアプリ
ケーション・プログラムをディスプレイ中のウインドウ
に重なって見えなくなることがある。カバーされている
方のデータを格納しておき、カバーをしている方のウイ
ンドウが移動させられたり、消されたりした時に、シス
テム・メモリを参照する必要なしに、その再ディスプレ
イをできるようにすることが望まれる。また、ウインド
ウのこの見えない部分を、ウインドウの見える部分の内
容(これは変更される)とともに、更新することも必要
である。出力ディスプレイ装置のウインドウにディスプ
レイされているアプリケーション・プログラムのカバー
されている部分を、余剰のフレーム・バッファ・メモリ
に格納するものとすると、種々のサイズのウインドウの
ために十分なメモリ・スペースを割り当て、それが使用
されなくなったら割当を取消する方法がなければならな
い。さらに、この割当は、割当の遅れによる歪を生じる
ことなく通常の速度でディスプレイ装置を動作させるた
めに、非常に迅速に機能できるものでなければならな
い。
ラムをディスプレイしているウインドウが、他のアプリ
ケーション・プログラムをディスプレイ中のウインドウ
に重なって見えなくなることがある。カバーされている
方のデータを格納しておき、カバーをしている方のウイ
ンドウが移動させられたり、消されたりした時に、シス
テム・メモリを参照する必要なしに、その再ディスプレ
イをできるようにすることが望まれる。また、ウインド
ウのこの見えない部分を、ウインドウの見える部分の内
容(これは変更される)とともに、更新することも必要
である。出力ディスプレイ装置のウインドウにディスプ
レイされているアプリケーション・プログラムのカバー
されている部分を、余剰のフレーム・バッファ・メモリ
に格納するものとすると、種々のサイズのウインドウの
ために十分なメモリ・スペースを割り当て、それが使用
されなくなったら割当を取消する方法がなければならな
い。さらに、この割当は、割当の遅れによる歪を生じる
ことなく通常の速度でディスプレイ装置を動作させるた
めに、非常に迅速に機能できるものでなければならな
い。
【0020】連続リニア・メモリのある領域がコンピュ
ータ内で割り当てられる典型的な高速実行方法は、リニ
ア・メモリの適当な量から始めて、その記憶領域を半分
に、各その半分を半分に、その1/4を半分に、以下同
様に、例えばリニア・メモリ10として示される列をい
くつかのバイトをそれぞれが含むような最小のサイズの
グループに分割することである。例えば、2048バイ
トのリニア・メモリ10をそれぞれが256バイトを含
む連続したバイトのグループに分割することである。そ
してこれらの独立したグループが個々の記憶目的に割り
当てられる。
ータ内で割り当てられる典型的な高速実行方法は、リニ
ア・メモリの適当な量から始めて、その記憶領域を半分
に、各その半分を半分に、その1/4を半分に、以下同
様に、例えばリニア・メモリ10として示される列をい
くつかのバイトをそれぞれが含むような最小のサイズの
グループに分割することである。例えば、2048バイ
トのリニア・メモリ10をそれぞれが256バイトを含
む連続したバイトのグループに分割することである。そ
してこれらの独立したグループが個々の記憶目的に割り
当てられる。
【0021】メモリの大きな領域の記憶グループの割当
を記録するため、メモリは2のべき数のサイズの連続し
た最小サイズの多くのグループに分けられる。リニア・
メモリのビット・マップは、各ビットがサイズを最小に
されたグループの一つにマップされるように形成され
る。グループが割り当てられればその一つのビットが
1、割り当てられていなければ(フリーであれば)0と
する。リニア・メモリ10が割り当てられるときは、最
小領域、その2倍、その4倍、・・・のような、最小領
域の2のべき数倍のサイズであって、要求されたサイズ
を満たすに十分な大きさのブロックとなるサイズに一致
するように割り当てられる。
を記録するため、メモリは2のべき数のサイズの連続し
た最小サイズの多くのグループに分けられる。リニア・
メモリのビット・マップは、各ビットがサイズを最小に
されたグループの一つにマップされるように形成され
る。グループが割り当てられればその一つのビットが
1、割り当てられていなければ(フリーであれば)0と
する。リニア・メモリ10が割り当てられるときは、最
小領域、その2倍、その4倍、・・・のような、最小領
域の2のべき数倍のサイズであって、要求されたサイズ
を満たすに十分な大きさのブロックとなるサイズに一致
するように割り当てられる。
【0022】例えば、メモリに512バイトを記憶する
ことが要求されると、割当システムは256バイトの各
グループの隣接した空いたビットのペアをビット・マッ
プ(図2)上で探す。そのサーチはリニア・メモリ10
の左端の最初の0位置から始めて右へ続ける。もし二つ
の隣接グループが必要とされるとすると、プログラムは
ビット・マップ(図2)上で2ビットのインクレメント
によって探し、2ビット・バイナリ分割境界線で分けら
れていないメモリ・スペースを探すことはしない。図1
に図示されたメモリ位置のライン上のグループ0が割り
当てられている(図1では×を付して示されている)と
すると、たとえ空であってもグループ1のチェックをス
キップし、サーチはペアとしてのグループ2、3をチェ
ックする。もし、このグループ2、3が空であることが
分かると、それらの位置が割り当てられ、ビット・マッ
プ上で1が印される。もしメモリのより大きな量を割り
当てることが要求されれば、システムはその大きな量に
よって分けられるバイナリ分割線をチェックする。この
割当技法はメモリに多くの使用されない部分を残すこと
になるが、必要なメモリを非常に早く見つけることがで
きるという利点を有していることを理解できるであろ
う。
ことが要求されると、割当システムは256バイトの各
グループの隣接した空いたビットのペアをビット・マッ
プ(図2)上で探す。そのサーチはリニア・メモリ10
の左端の最初の0位置から始めて右へ続ける。もし二つ
の隣接グループが必要とされるとすると、プログラムは
ビット・マップ(図2)上で2ビットのインクレメント
によって探し、2ビット・バイナリ分割境界線で分けら
れていないメモリ・スペースを探すことはしない。図1
に図示されたメモリ位置のライン上のグループ0が割り
当てられている(図1では×を付して示されている)と
すると、たとえ空であってもグループ1のチェックをス
キップし、サーチはペアとしてのグループ2、3をチェ
ックする。もし、このグループ2、3が空であることが
分かると、それらの位置が割り当てられ、ビット・マッ
プ上で1が印される。もしメモリのより大きな量を割り
当てることが要求されれば、システムはその大きな量に
よって分けられるバイナリ分割線をチェックする。この
割当技法はメモリに多くの使用されない部分を残すこと
になるが、必要なメモリを非常に早く見つけることがで
きるという利点を有していることを理解できるであろ
う。
【0023】メモリが連続した直線的な方法で割り当て
られる場合は非常に有益である。しかしながら、ウィン
ドウに書込むデータを記憶する、例えばフレーム・バッ
ファとして用いられるようなディスプレイ・メモリでは
二次元領域に割り当てる必要がある。このメモリの二次
元アーキテクチャのために、割当は連続直線的には行わ
れず、二次元でおこなうので不連続となる。従来技術で
これを行うとすると、各メモリの水平列は個々に割り当
てしなければならない。これは極端に時間がかかり、デ
ータの実際のディスプレイが遅延するところまで割当の
速度が低下する。したがって、急速に変化するデータを
処理するシステムでは余剰の不使用スペースの割当を不
可能にする。
られる場合は非常に有益である。しかしながら、ウィン
ドウに書込むデータを記憶する、例えばフレーム・バッ
ファとして用いられるようなディスプレイ・メモリでは
二次元領域に割り当てる必要がある。このメモリの二次
元アーキテクチャのために、割当は連続直線的には行わ
れず、二次元でおこなうので不連続となる。従来技術で
これを行うとすると、各メモリの水平列は個々に割り当
てしなければならない。これは極端に時間がかかり、デ
ータの実際のディスプレイが遅延するところまで割当の
速度が低下する。したがって、急速に変化するデータを
処理するシステムでは余剰の不使用スペースの割当を不
可能にする。
【0024】図3に本発明による割当方法を図示したフ
レーム・バッファ20の一部が示してある。この方法を
用いると、フレーム・バッファ・メモリのスペースは二
次元を基礎として割り当てることができる。図3ではメ
モリ20は、2のべき数に基づいたピクセル領域の広が
りを備えた部分に分割される。しかも、連続した直線の
グループでなく、水平及び垂直の双方の方向に分割され
る。分割したメモリのそれぞれの量は最小の量とされて
いる。本実施例では水平、垂直各方向に64バイトで割
り当てられる。各ピクセルが1バイトを要求すると、各
最小領域に4096ピクセルを記憶することができる。
レーム・バッファ20の一部が示してある。この方法を
用いると、フレーム・バッファ・メモリのスペースは二
次元を基礎として割り当てることができる。図3ではメ
モリ20は、2のべき数に基づいたピクセル領域の広が
りを備えた部分に分割される。しかも、連続した直線の
グループでなく、水平及び垂直の双方の方向に分割され
る。分割したメモリのそれぞれの量は最小の量とされて
いる。本実施例では水平、垂直各方向に64バイトで割
り当てられる。各ピクセルが1バイトを要求すると、各
最小領域に4096ピクセルを記憶することができる。
【0025】各最小領域の割当位置は同様に1ビットで
記録される。割り当てられていれば1、割り当てられて
いなければ0である。この情報を記録するビット・マッ
プ(図4)は同様に直線上に記憶される。一方、領域は
図3に示すように分割される。すなわち、水平及び垂直
方向にそれぞれ最小領域の広がりの2倍の広がりを持つ
次に大きい領域を、位置0〜3で形成するというよう
に、領域は図3に示す方法でパターン化され、数字が付
けられる。位置0から始まる最小領域のサーチは、割り
当てられていない最小領域が見つかるまでビット・マッ
プ上で数字の順に続けられる。もし最小領域より大きい
領域、例えば1最小領域より大きく、4最小領域より少
ない領域を探すときは、4最小領域を境界として進めら
れる。これはビット・マップ上では単に4ビット位置ご
とにアドレスを増加することで実行されることを意味す
る。同様に、例えば4最小領域より大きく、16最小領
域より小さい領域を探すときは、ビット・マップ上で各
16ビットごとにアドレスを調べればよい。本実施例シ
ステムではこの原理に基づくインクレメントを非常に早
く行うように16ビットがショート・インテジャア(s
hort integer)のサイズである。これによ
ってサーチは非常に早くなされる。
記録される。割り当てられていれば1、割り当てられて
いなければ0である。この情報を記録するビット・マッ
プ(図4)は同様に直線上に記憶される。一方、領域は
図3に示すように分割される。すなわち、水平及び垂直
方向にそれぞれ最小領域の広がりの2倍の広がりを持つ
次に大きい領域を、位置0〜3で形成するというよう
に、領域は図3に示す方法でパターン化され、数字が付
けられる。位置0から始まる最小領域のサーチは、割り
当てられていない最小領域が見つかるまでビット・マッ
プ上で数字の順に続けられる。もし最小領域より大きい
領域、例えば1最小領域より大きく、4最小領域より少
ない領域を探すときは、4最小領域を境界として進めら
れる。これはビット・マップ上では単に4ビット位置ご
とにアドレスを増加することで実行されることを意味す
る。同様に、例えば4最小領域より大きく、16最小領
域より小さい領域を探すときは、ビット・マップ上で各
16ビットごとにアドレスを調べればよい。本実施例シ
ステムではこの原理に基づくインクレメントを非常に早
く行うように16ビットがショート・インテジャア(s
hort integer)のサイズである。これによ
ってサーチは非常に早くなされる。
【0026】割当のため従来技術によって実施されるサ
ーチと比べて、本発明を用いた割当は、列から列への時
間を要する割当の必要をなくするように、水平方向及び
垂直方向双方に延びるビット位置の領域を容易する。こ
れにより本方法は、グラフィック・アクセラレータに用
いるフレーム・バッファ内でスペースを割り当てるのに
用いることができる。すなわちディスプレイに送る動作
が遅れることがない。
ーチと比べて、本発明を用いた割当は、列から列への時
間を要する割当の必要をなくするように、水平方向及び
垂直方向双方に延びるビット位置の領域を容易する。こ
れにより本方法は、グラフィック・アクセラレータに用
いるフレーム・バッファ内でスペースを割り当てるのに
用いることができる。すなわちディスプレイに送る動作
が遅れることがない。
【0027】ディスプレイ及びオフ・スクリーン双方用
のフレームバッファ内でのディスプレイ・メモリを割当
るために述べた方法の各ステップが図5に示されてい
る。コンピュータ・システムが最初にオンさせられたと
き、オフ・スクリーンとして用いることができるメモリ
・スペースをフレーム・バッファが有していることを示
す多くの値(一般にフレーム・バッファ・ハードウエア
のEPROMによって生成される)を動作システムの一
部である低レベル駆動プログラムを図5に示されている
ように読み出す。次にシステム・メモリに記憶されたデ
ィスプレイ・モニタのサイズを表す値がステップ51で
決定され、ディスプレイそれ自身に割り当てられるディ
スプレイ・メモリの量を決定するために用いる。典型的
には、ステップ52で割当が、メモリの最初にアドレス
する位置から開始し、十分なメモリがディスプレイ目的
に割り当てられるまで継続する。
のフレームバッファ内でのディスプレイ・メモリを割当
るために述べた方法の各ステップが図5に示されてい
る。コンピュータ・システムが最初にオンさせられたと
き、オフ・スクリーンとして用いることができるメモリ
・スペースをフレーム・バッファが有していることを示
す多くの値(一般にフレーム・バッファ・ハードウエア
のEPROMによって生成される)を動作システムの一
部である低レベル駆動プログラムを図5に示されている
ように読み出す。次にシステム・メモリに記憶されたデ
ィスプレイ・モニタのサイズを表す値がステップ51で
決定され、ディスプレイそれ自身に割り当てられるディ
スプレイ・メモリの量を決定するために用いる。典型的
には、ステップ52で割当が、メモリの最初にアドレス
する位置から開始し、十分なメモリがディスプレイ目的
に割り当てられるまで継続する。
【0028】ディスプレイすべきピクセルに割り当てる
最後のアドレスが、本発明による割当プロセスが進行す
る第1位置を決定するために用いられる。この最初のア
ドレスは図示された割当方法ではゼロ・アドレスとして
記憶され、フレーム・バッファの使用し得るオフ・スク
リーン領域開始のためのポインタ(ステップ53)とし
て利用される。ディスプレイ・メモリのフレーム・バッ
ファ領域がこの方法で割り当てられるので、二重バッフ
ァを用いることができるアプリケーションが用いられて
いるとその領域のサイズは変化させられる。オフ・スク
リーン・メモリのサイズはプログラムの動作とともに大
きくも小さくもなる。
最後のアドレスが、本発明による割当プロセスが進行す
る第1位置を決定するために用いられる。この最初のア
ドレスは図示された割当方法ではゼロ・アドレスとして
記憶され、フレーム・バッファの使用し得るオフ・スク
リーン領域開始のためのポインタ(ステップ53)とし
て利用される。ディスプレイ・メモリのフレーム・バッ
ファ領域がこの方法で割り当てられるので、二重バッフ
ァを用いることができるアプリケーションが用いられて
いるとその領域のサイズは変化させられる。オフ・スク
リーン・メモリのサイズはプログラムの動作とともに大
きくも小さくもなる。
【0029】動作が、特定の目的のためのオフ・スクリ
ーンとして用いられるべき領域のサイズを得るためにス
テップ54へ移動する。例えば、あるウインドウがカバ
ーされなくなったときに再び現れるようにオフ・スクリ
ーン・メモリにバックアップされると、このウインドウ
のサイズがウインドウ・システム・プログラムから得ら
れる。このサイズとともに動作は割り当てられる領域が
決定されるステップ56へ進む。
ーンとして用いられるべき領域のサイズを得るためにス
テップ54へ移動する。例えば、あるウインドウがカバ
ーされなくなったときに再び現れるようにオフ・スクリ
ーン・メモリにバックアップされると、このウインドウ
のサイズがウインドウ・システム・プログラムから得ら
れる。このサイズとともに動作は割り当てられる領域が
決定されるステップ56へ進む。
【0030】割り当てる領域は、幅及び高さを得てその
値を最小領域の幅及び高さと比較することで決定され
る。実施例での幅が1ピクセルと64ピクセルとの間で
あれば、64ピクセルが幅寸法として選択される。幅が
64ピクセルと128ピクセルの間であれば、幅寸法と
して128ピクセルが選択される。幅が128ピクセル
と256ピクセルとの間であれば256ピクセルが幅寸
法として選択される。以下同様に次の2のべき数値が選
択される。同様に、高さが1と64ピクセルとの間であ
れば64ピクセルが高さ寸法として選択される。所望の
スペースに適する最も小さな領域の高さ寸法と幅寸法と
のうち、小さい方が、基本サーチ・プロセスにおいて、
大きな方と同じ値にかさ上げされる。これによって矩形
の2のべき数サイズ境界に沿って分割される領域の割当
てができる。最小スペースが決定されると、このスペー
ス内で実際のウインドウ形のマスクが生成され、求めた
領域を十分に含む領域のためにビット・マップでサーチ
が開始する(ステップ58として示す)。
値を最小領域の幅及び高さと比較することで決定され
る。実施例での幅が1ピクセルと64ピクセルとの間で
あれば、64ピクセルが幅寸法として選択される。幅が
64ピクセルと128ピクセルの間であれば、幅寸法と
して128ピクセルが選択される。幅が128ピクセル
と256ピクセルとの間であれば256ピクセルが幅寸
法として選択される。以下同様に次の2のべき数値が選
択される。同様に、高さが1と64ピクセルとの間であ
れば64ピクセルが高さ寸法として選択される。所望の
スペースに適する最も小さな領域の高さ寸法と幅寸法と
のうち、小さい方が、基本サーチ・プロセスにおいて、
大きな方と同じ値にかさ上げされる。これによって矩形
の2のべき数サイズ境界に沿って分割される領域の割当
てができる。最小スペースが決定されると、このスペー
ス内で実際のウインドウ形のマスクが生成され、求めた
領域を十分に含む領域のためにビット・マップでサーチ
が開始する(ステップ58として示す)。
【0031】このサーチは求める領域のサイズと等価の
2のべき数境界上で行われる。もし最小領域が探される
と、サーチはビット・マップによってビットごとに連続
してインクレメントされる。求める領域が、図3の最小
領域0〜3を含むブロックのようなブロックであれば、
サーチはビット・マップによって十分な記憶領域を求め
て大きなインクレメントで進む。図3に示すように、四
つの最小サイズ領域を含むブロックのサーチはフレーム
・バッファの上左隅から開始し、右の4ブロック領域へ
移動し、次に左下の4ブロック領域へ移動し、最後にさ
らにその右の4ブロックへ移動する。もし、スペースが
なお発見されないと、更に他の4ブロックだけ右へそし
て更に上の4ブロックへと進む。このとき最初のサーチ
・パターンが「B」と印された領域で繰り返す。割り当
てる領域がこの領域「B」にも見いだせないときには領
域「C」へ進み、最後は「D」へ移動する。このサーチ
でよい結果がでないときには直ちに領域「A、B、C、
D」の右の領域へ移動して同様に繰り返す。上記したそ
れぞれの領域は図3に表示してある。このサーチ・テク
ニックは2次元グラフィック・アルゴリズムで用いられ
る「クワッド・ツリー・サーチ(quad tree
search)と呼ばれるサーチ・テクニックに似てい
る。
2のべき数境界上で行われる。もし最小領域が探される
と、サーチはビット・マップによってビットごとに連続
してインクレメントされる。求める領域が、図3の最小
領域0〜3を含むブロックのようなブロックであれば、
サーチはビット・マップによって十分な記憶領域を求め
て大きなインクレメントで進む。図3に示すように、四
つの最小サイズ領域を含むブロックのサーチはフレーム
・バッファの上左隅から開始し、右の4ブロック領域へ
移動し、次に左下の4ブロック領域へ移動し、最後にさ
らにその右の4ブロックへ移動する。もし、スペースが
なお発見されないと、更に他の4ブロックだけ右へそし
て更に上の4ブロックへと進む。このとき最初のサーチ
・パターンが「B」と印された領域で繰り返す。割り当
てる領域がこの領域「B」にも見いだせないときには領
域「C」へ進み、最後は「D」へ移動する。このサーチ
でよい結果がでないときには直ちに領域「A、B、C、
D」の右の領域へ移動して同様に繰り返す。上記したそ
れぞれの領域は図3に表示してある。このサーチ・テク
ニックは2次元グラフィック・アルゴリズムで用いられ
る「クワッド・ツリー・サーチ(quad tree
search)と呼ばれるサーチ・テクニックに似てい
る。
【0032】求めるスペースに十分にマッチした記憶ス
ペースが得られると、その領域がステップ59で割り当
てられる。最後に、割り当てられた領域がビット・マッ
プに他の目的で使用されないように割り当てられたこと
を印す。
ペースが得られると、その領域がステップ59で割り当
てられる。最後に、割り当てられた領域がビット・マッ
プに他の目的で使用されないように割り当てられたこと
を印す。
【0033】実施例では、所望の領域の幅又は高さのい
ずれかが他の最小寸法の二分の一以下の場合、フレーム
・バッファ・メモリの割り当てられていないスペースと
保存スペースの領域内の割当密度を改善するため、すで
に1つ又は多くの割り当てられた最小領域を有する割当
サーチ領域内で追加のテストが行われる。すなわち、求
める領域の狭い方の寸法がサーチされた最小領域の寸法
の二分の一以下か否かの比較がされ、二分の一以下であ
ると、サーチされた各最小サイズ領域がフリーであるか
割り当てられているかを調べるというテストが行われ
る。
ずれかが他の最小寸法の二分の一以下の場合、フレーム
・バッファ・メモリの割り当てられていないスペースと
保存スペースの領域内の割当密度を改善するため、すで
に1つ又は多くの割り当てられた最小領域を有する割当
サーチ領域内で追加のテストが行われる。すなわち、求
める領域の狭い方の寸法がサーチされた最小領域の寸法
の二分の一以下か否かの比較がされ、二分の一以下であ
ると、サーチされた各最小サイズ領域がフリーであるか
割り当てられているかを調べるというテストが行われ
る。
【0034】本発明を実施例によって説明したが、本発
明の精神及び範囲から離れないで当業者は多くの変形を
なすことができる。したがって本発明は請求の範囲の記
載によって解釈されるべきである。
明の精神及び範囲から離れないで当業者は多くの変形を
なすことができる。したがって本発明は請求の範囲の記
載によって解釈されるべきである。
【図1】従来のメモリ割当システムの理解のための、リ
ニア・メモリ位置の連続した1つのアレイを示す図であ
る。
ニア・メモリ位置の連続した1つのアレイを示す図であ
る。
【図2】従来の典型的なメモリ割当システムで使用され
るビット・マップを示す図である。
るビット・マップを示す図である。
【図3】本発明のメモリ割当の方法の理解のための、フ
レーム・バッファ・メモリの一部を示す図である。
レーム・バッファ・メモリの一部を示す図である。
【図4】本発明によるメモリ割当システムで使用される
ビット・マップを示す図である。
ビット・マップを示す図である。
【図5】本発明によるフレーム・バッファ・メモリを割
り当てる方法を示すフローチャートである。
り当てる方法を示すフローチャートである。
10 リニア・メモリ
───────────────────────────────────────────────────── フロントページの続き (73)特許権者 591064003 901 SAN ANTONIO ROA D PALO ALTO,CA 94303, U.S.A. (72)発明者 カーティス・プリーム アメリカ合衆国 94536 カリフォルニ ア州・フレモント・ケタリング テラ ス・4052 (72)発明者 ロバート・ロッチェッティ アメリカ合衆国 95014 カリフォルニ ア州・カッパチーノ・ケンドル ストリ ート・22261 (56)参考文献 特開 平2−257230(JP,A) 特開 昭62−139057(JP,A) 特開 平4−222069(JP,A) 特表 平3−500459(JP,A) (58)調査した分野(Int.Cl.7,DB名) G09G 5/00 G06T 1/60
Claims (8)
- 【請求項1】 フレーム・バッファ・メモリを備えるコ
ンピュータ・システムにあって、フレーム・バッファ・
メモリの選択した部分にスペースを割り当ててオフ・ス
クリーン情報を格納するスペース割り当て方法であっ
て: 前記フレーム・バッファ・メモリの選択した部分を、ブ
ロックのマトリクスに分割するステップを備え、各ブロ
ックは同じ幅と同じ高さを有し、そのブロック幅および
ブロック高さは2のべき数であり; 要求幅および要求高さを持つ要求メモリ・サイズの調節
をするステップであって、一連の2のべき数のうちの、
要求幅および要求高さと比べて大きく且つ最も近い2の
べき数に、要求幅および要求高さを丸める調節をする調
節ステップを備え; 前記フレーム・バッファ・メモリの選択した部分を、割
り当てのためにフリーな領域を求めてサーチをするサー
チ・ステップを備え、そのフリーな領域は、調節された
要求メモリ・サイズに等しいサイズで、フレーム・バッ
ファ・メモリの前記ブロックの整数倍を有しており、前
記サーチは、最初のコーナ領域および隣接した3領域の
セットにおいて前記フリーな領域が見つかるまで行わ
れ、最初のコーナ領域および隣接した3領域の1番目の
セットにおける領域それぞれは前記求めているフリーな
領域と同じサイズであり、そして、隣接した3領域のn
番目のセットにおいては領域それぞれが隣接した3領域
のn−1番目のセットにおける領域の4倍のサイズであ
り、且つ、隣接した3領域のn番目のセット中の2つの
領域が、隣接した3領域のn−1番目のセット中の2つ
の領域に隣接しており、さらに、隣接した3領域のn番
目のセットにおける領域それぞれは、最初のコーナ領域
および隣接した3領域のn−1番目のセットにおけるサ
ーチと同じやり方でサーチされるようにされており; 前記サーチで見つけられたフリーな領域内に前記ブロッ
クを割り当てる割当てステップを備えていることを特徴
とするスペースの割り当て方法。 - 【請求項2】 請求項1記載の方法において、前記サー
チには、前記フレーム・バッファ・メモリ中のブロック
それぞれを1ビットのデータで表したビット・マップを
サーチするビット・マップ・サーチが含まれている、こ
とを特徴とするスペースの割り当て方法。 - 【請求項3】 請求項2記載の方法において、前記ビッ
ト・マップ・サーチには、前記ビット・マップ中の引き
続くビット群であって、最初のコーナ領域および隣接し
た3領域に対応しているビット群をサーチすることが含
まれている、ことを特徴とするスペースの割り当て方
法。 - 【請求項4】 請求項3記載の方法において、前記要求
幅および要求高さの選択した一方が、求められているフ
リーな領域の幅または高さの半分以下である場合に、当
該サーチのそれぞれにおいて、サーチをされている各領
域の半分が割り当てのためにフリーであるか否かを調べ
る追加のテストが行われる、ことを特徴とするスペース
の割り当て方法。 - 【請求項5】 フレーム・バッファ・メモリを備えるコ
ンピュータ・システムにあって、フレーム・バッファ・
メモリの選択した部分にスペースを割り当ててオフ・ス
クリーン情報を格納するスペース割り当て装置であっ
て: 前記フレーム・バッファ・メモリの選択した部分を、ブ
ロックのマトリクスに分割する分割手段を備え、各ブロ
ックは同じ幅と同じ高さを有し、そのブロック幅および
ブロック高さは2のべき数であり; 要求幅および要求高さを持つ要求メモリ・サイズの調節
をする調節手段であって、一連の2のべき数のうちの、
要求幅および要求高さと比べて大きく且つ最も近い2の
べき数に、要求幅および要求高さを丸める調節をする調
節手段を備え; この調節手段および前記フレーム・バッファ・メモリに
結合されていて、前記フレーム・バッファ・メモリの選
択した部分を、割り当てのためにフリーな領域を求めて
サーチをするサーチ手段を備え、そのフリーな領域は、
調節された要求メモリ・サイズに等しいサイズで、フレ
ーム・バッファ・メモリの前記ブロックの整数倍を有し
ており、前記サーチは、最初のコーナ領域および隣接し
た3領域のセットにおいて前記フリーな領域が見つかる
まで行われ、最初のコーナ領域および隣接した3領域の
1番目のセットにおける領域それぞれは前記求めている
フリーな領域と同じサイズであり、そして、隣接した3
領域のn番目のセットにおいては領域それぞれが隣接し
た3領域のn−1番目のセットにおける領域の4倍のサ
イズであり、且つ、隣接した3領域のn番目のセット中
の2つの領域が、隣接した3領域のn−1番目のセット
中の2つの領域に隣接しており、さらに、隣接した3領
域のn番目のセットにおける領域それぞれは、最初のコ
ーナ領域および隣接した3領域のn−1番目のセットに
おけるサーチと同じやり方でサーチされるようにされて
おり; 前記サーチ手段に結合されていて、前記サーチで見つけ
られたフリーな領域内に前記ブロックを割り当てる割当
て割当て手段を備えていることを特徴とするスペースの
割り当て装置。 - 【請求項6】 請求項5記載の装置において、前記サー
チ手段における前記サーチには、前記フレーム・バッフ
ァ・メモリ中のブロックそれぞれを1ビットのデータで
表したビット・マップをサーチするビット・マップ・サ
ーチが含まれている、ことを特徴とするスペースの割り
当て装置。 - 【請求項7】 請求項6記載の装置において、前記サー
チ手段における前記ビット・マップ・サーチには、前記
ビット・マップ中の引き続くビット群であって、最初の
コーナ領域および隣接した3領域に対応しているビット
群をサーチすることが含まれている、ことを特徴とする
スペースの割り当て装置。 - 【請求項8】 請求項7記載の装置において、前記サー
チ手段における前記サーチでは、前記要求幅および要求
高さの選択した一方が、求められているフリーな領域の
幅または高さの半分以下である場合に、当該サーチのそ
れぞれにおいて、サーチをされている各領域の半分が割
り当てのためにフリーであるか否かを調べる追加のテス
トが行われる、ことを特徴とするスペースの割り当て装
置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/716,671 US5291188A (en) | 1991-06-17 | 1991-06-17 | Method and apparatus for allocating off-screen display memory |
| US716671 | 1991-06-17 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05232915A JPH05232915A (ja) | 1993-09-10 |
| JP3316593B2 true JP3316593B2 (ja) | 2002-08-19 |
Family
ID=24878948
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP18160192A Expired - Fee Related JP3316593B2 (ja) | 1991-06-17 | 1992-06-17 | メモリ・スペース割当方法及び装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5291188A (ja) |
| EP (1) | EP0519694B1 (ja) |
| JP (1) | JP3316593B2 (ja) |
| KR (1) | KR970010280B1 (ja) |
| DE (1) | DE69221220T2 (ja) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2250668B (en) * | 1990-11-21 | 1994-07-20 | Apple Computer | Tear-free updates of computer graphical output displays |
| US5477242A (en) * | 1994-01-03 | 1995-12-19 | International Business Machines Corporation | Display adapter for virtual VGA support in XGA native mode |
| US5598525A (en) | 1995-01-23 | 1997-01-28 | Cirrus Logic, Inc. | Apparatus, systems and methods for controlling graphics and video data in multimedia data processing and display systems |
| US5731809A (en) * | 1995-07-10 | 1998-03-24 | Silicon Integrated Systems Corp. | Adaptive display memory management system |
| US5757386A (en) * | 1995-08-11 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for virtualizing off-screen memory of a graphics engine |
| US5742797A (en) * | 1995-08-11 | 1998-04-21 | International Business Machines Corporation | Dynamic off-screen display memory manager |
| US5784055A (en) * | 1996-05-06 | 1998-07-21 | International Business Machines Corporation | Color control for on-screen display in digital video |
| AUPP638698A0 (en) * | 1998-10-06 | 1998-10-29 | Canon Kabushiki Kaisha | Efficient memory allocator utilising a dual free-list structure |
| 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 |
| KR100460336B1 (ko) * | 2001-07-26 | 2004-12-04 | 김택진 | 광학마크판독기의 판독유니트 |
| US6968440B2 (en) * | 2003-05-09 | 2005-11-22 | Hewlett-Packard Development Company, L.P. | Systems and methods for processor memory allocation |
| US20120226592A1 (en) * | 2011-03-01 | 2012-09-06 | Flynn Michael P | Approach For Producing And Managing Electricity |
| GB2514777B (en) * | 2013-06-03 | 2018-12-19 | Displaylink Uk Ltd | Management of memory for storing display data |
| KR102449090B1 (ko) * | 2018-03-05 | 2022-09-30 | 삼성전자주식회사 | 윈도우 버퍼의 할당을 관리하는 디스플레이 장치 및 그 디스플레이 장치의 제어 방법 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0121015B1 (en) * | 1983-03-31 | 1990-03-07 | International Business Machines Corporation | Presentation space management and viewporting on a multifunction virtual terminal |
| US4742474A (en) * | 1985-04-05 | 1988-05-03 | Tektronix, Inc. | Variable access frame buffer memory |
| US4920504A (en) * | 1985-09-17 | 1990-04-24 | Nec Corporation | Display managing arrangement with a display memory divided into a matrix of memory blocks, each serving as a unit for display management |
| US4692880A (en) * | 1985-11-15 | 1987-09-08 | General Electric Company | Memory efficient cell texturing for advanced video object generator |
| US4845640A (en) * | 1987-03-11 | 1989-07-04 | Megascan Technology, Inc. | High-speed dual mode graphics memory |
| JPS63225290A (ja) * | 1987-03-14 | 1988-09-20 | 株式会社日立製作所 | 表示制御回路 |
| US4882683B1 (en) * | 1987-03-16 | 1995-11-07 | Fairchild Semiconductor | Cellular addrssing permutation bit map raster graphics architecture |
| US5113180A (en) * | 1988-04-20 | 1992-05-12 | International Business Machines Corporation | Virtual display adapter |
| US5062057A (en) * | 1988-12-09 | 1991-10-29 | E-Machines Incorporated | Computer display controller with reconfigurable frame buffer memory |
| JP2796329B2 (ja) * | 1989-02-08 | 1998-09-10 | 株式会社日立製作所 | 表示メモリとそれを備えた画像処理装置 |
-
1991
- 1991-06-17 US US07/716,671 patent/US5291188A/en not_active Expired - Lifetime
-
1992
- 1992-06-17 KR KR92010480A patent/KR970010280B1/ko not_active Expired - Fee Related
- 1992-06-17 DE DE69221220T patent/DE69221220T2/de not_active Expired - Fee Related
- 1992-06-17 EP EP92305532A patent/EP0519694B1/en not_active Expired - Lifetime
- 1992-06-17 JP JP18160192A patent/JP3316593B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| KR970010280B1 (en) | 1997-06-23 |
| KR940001687A (ko) | 1994-01-11 |
| EP0519694A3 (en) | 1993-05-05 |
| JPH05232915A (ja) | 1993-09-10 |
| EP0519694B1 (en) | 1997-07-30 |
| DE69221220T2 (de) | 1998-02-26 |
| US5291188A (en) | 1994-03-01 |
| EP0519694A2 (en) | 1992-12-23 |
| DE69221220D1 (de) | 1997-09-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7042460B2 (en) | Method and apparatus for rasterizing in a hierarchical tile order | |
| EP0087868B1 (en) | Graphics display refresh memory architecture offering rapid access speed | |
| US5251296A (en) | Methods and apparatus for generating arbitrarily addressed, arbitrarily shaped tiles in computer graphics systems | |
| US5233689A (en) | Methods and apparatus for maximizing column address coherency for serial and random port accesses to a dual port ram array | |
| JPH11167378A (ja) | 画像をスケーリングする方法 | |
| US5512918A (en) | High speed method and apparatus for generating animation by means of a three-region frame buffer and associated region pointers | |
| US5193148A (en) | Method and apparatus for pixel clipping source and destination windows in a graphics system | |
| US20030122837A1 (en) | Dual memory channel interleaving for graphics and MPEG | |
| EP0279225B1 (en) | Reconfigurable counters for addressing in graphics display systems | |
| US5291188A (en) | Method and apparatus for allocating off-screen display memory | |
| US6326975B1 (en) | Priority methods for texture map storage | |
| US5404448A (en) | Multi-pixel access memory system | |
| JP2882465B2 (ja) | 画像生成方法およびその装置 | |
| GB2180729A (en) | Direct memory access window display | |
| JPH0731489B2 (ja) | メモリ・アレイのアクセス方法 | |
| JP3001763B2 (ja) | 画像処理システム | |
| JP2737898B2 (ja) | ベクトル描画装置 | |
| US5903280A (en) | Image display apparatus that reduces necessary memory capacity for operation | |
| JPH08211849A (ja) | 表示制御装置 | |
| JP3094624B2 (ja) | 画像表示装置 | |
| KR100510674B1 (ko) | 영상 피벗을 위한 메모리 억세스 방법 | |
| JPS58129473A (ja) | メモリ制御方式 | |
| Ng | Dynamic memory mapping for window based display system | |
| JPH07118006B2 (ja) | 画像処理装置 | |
| JPH06301772A (ja) | 画像処理用lsi |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |