JP4683384B2 - メモリ制御方法、グラフィックプロセッサおよび情報処理装置 - Google Patents

メモリ制御方法、グラフィックプロセッサおよび情報処理装置 Download PDF

Info

Publication number
JP4683384B2
JP4683384B2 JP2004276236A JP2004276236A JP4683384B2 JP 4683384 B2 JP4683384 B2 JP 4683384B2 JP 2004276236 A JP2004276236 A JP 2004276236A JP 2004276236 A JP2004276236 A JP 2004276236A JP 4683384 B2 JP4683384 B2 JP 4683384B2
Authority
JP
Japan
Prior art keywords
memory
application
data
area
graphic processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2004276236A
Other languages
English (en)
Other versions
JP2006092217A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment Inc, Sony Computer Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to JP2004276236A priority Critical patent/JP4683384B2/ja
Priority to EP05776923.4A priority patent/EP1800257B1/en
Priority to CNA2005800319035A priority patent/CN101023445A/zh
Priority to PCT/JP2005/016199 priority patent/WO2006033226A1/en
Priority to US11/231,342 priority patent/US7612781B2/en
Publication of JP2006092217A publication Critical patent/JP2006092217A/ja
Application granted granted Critical
Publication of JP4683384B2 publication Critical patent/JP4683384B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)
  • Image Input (AREA)
  • Memory System (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

本発明は、メモリ管理技術に関し、特にグラフィックプロセッサにおけるメモリ管理技術に関する。
近年のコンピュータグラフィックス技術の発達に伴い、大型計算機や、パーソナルコンピュータ、ゲーム機器などの情報処理装置から出力される画像データは、ますます複雑化、高度化している。そこで、このような情報処理装置は、通常の演算処理装置を行うメインプロセッサとは別に、画像処理専用のグラフィックプロセッサを搭載し、メインプロセッサを画像処理から解放して、システムのオーバーヘッドの解消を図っている。
これらの情報処理装置においては、メインプロセッサが複数のタスクを同時に処理する場合があり、メインプロセッサにより処理されるタスクの切り替えに伴って、グラフィックプロセッサにより処理されるタスクも切り替える必要がある。ところが、グラフィックプロセッサが画像処理専用に使用する画像用メモリの容量は予め決まっているため、複数のタスクで画像用メモリを共有する場合、一のタスクから他のタスクへと切り替えられる際には、新たな画像用データの書き込みに先立って、それまで格納されていた画像用データを別のメモリ領域に退避する必要がある。
この画像用メモリの画像データの書き換えにはある程度の時間を要するため、ゲームなどユーザの操作によって出力される映像がリアルタイムで変化するタスクの場合には、タスクの切り替えに伴うオーバーヘッドは、動画の停止やコマ落ちなどの画質低下の原因となってしまう。
本発明はこのような課題に鑑みてなされたものであり、その目的は、マルチタスクに対応した、効率的なメモリ管理が可能なメモリ管理方法およびグラフィックプロセッサの提供にある。
本発明のある態様はメモリ制御方法に関する。このメモリ制御方法は、グラフィックプロセッサが管理するメモリを複数の領域に分割し、それらの領域に複数のタスクに関連するデータをタスクごとに分別して格納する。
「タスク」とは、ある目的を達成するためにプログラムされたアプリケーションまたはそれに含まれる情報処理の内容をいい、アプリケーションと対応してもよいし、入出力制御やユーザが指定したコマンドなどアプリケーションよりも小さい単位と対応してもよく、何らかの処理または機能の単位に対応すればよい。
この態様によれば、空間分割や時間分割されたメモリの領域を複数のタスクに適切に割り当てることによって、グラフィックプロセッサにより使用されるメモリを、複数のタスクで効率的に共有して使用することができる。
本発明の別の態様は、グラフィックプロセッサに関する。このグラフィックプロセッサは、メモリを複数の領域に分割し、それらの領域に複数のタスクに関連するデータをタスクごとに分別して格納するメモリ制御部を有する。
この態様によれば、メモリ制御部によりメモリを空間分割、時間分割し、各タスクに対してメモリ領域の割り当てを行うことで、グラフィックプロセッサにおけるメモリ管理を効率的に行うことができる。
本発明のさらに別の態様は、メモリ制御方法である。この方法は、複数のタスクを時分割して処理するグラフィックプロセッサが使用するメモリを第1および第2の領域に分割して使用する。この際、第1の領域を、処理対象のタスクが変更されたかどうかに関わらず所定のタスクに関連するデータを格納する固定領域として使用する一方、第2の領域を、処理対象のタスクが変更されたことに伴い、変更後のタスクに関連するデータを格納する変動領域として使用する。
この態様によれば、固定領域に格納されたデータは、タスクの切り替えの際に書き換えられることがないため、データの退避などに伴うオーバーヘッドの問題は解消し、グラフィックプロセッサにおけるタスク切り替えを高速に処理することができる。また、同時に変動領域を設け、この変動領域を時間分割し複数のタスクで共有することによって効率的なメモリ管理が行うことができる。
本発明のさらに別の態様は、グラフィックプロセッサである。このグラフィックプロセッサは、メモリを第1および第2の領域に分割して管理するメモリ制御部を備える。このメモリ制御部は、第1の領域を、処理対象のタスクが変更されたかどうかに関わらず所定のタスクに関連するデータを格納する固定領域として使用する。一方、第2の領域を、処理対象のタスクが変更されたことに伴い、変更後のタスクに関連するデータを格納する変動領域として使用する。
この態様によれば、グラフィックプロセッサ内のメモリ制御部に、固定領域と変動領域へのタスクの割り当てや、データの退避、復帰などを処理させることにより、効率的にメモリ管理を行うことができる。
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
本発明に係るメモリ制御方法、グラフィックプロセッサおよび情報処理装置によれば、グラフィックプロセッサにより使用されるメモリを、複数のタスクで効率的に共有して使用することができる。
図1は、本発明の第1の実施の形態に係る情報処理装置1000の構成を示すブロック図である。情報処理装置1000は、グラフィックプロセッサ100とメインプロセッサ200、メインメモリ50を含む。情報処理装置1000は、表示装置500と接続されており、メインプロセッサ200およびグラフィックプロセッサ100の処理の結果得られた画像、映像を出力する。図1などにおいて、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされた予約管理機能のあるプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
この情報処理装置1000では、情報処理装置1000を効率よく使用するための機能、環境を提供し、装置全体を統括的に制御するオペレーティングシステム(以下、OSと略す)が実行される。そのOS上で複数のアプリケーションソフトウェア(以下、単にアプリケーションという)が実行され、情報処理装置1000は、複数のアプリケーションに対応するタスクを並列的に処理する。
メインプロセッサ200は、それぞれのアプリケーションに対応するタスクを時分割し、各タイムスライスごとに各アプリケーションに対応するタスクを実行する並列処理を行っている。例えば、あるタイムスライスにおいて処理されるアプリケーションに対応するタスクが3次元コンピュータグラフィックスの画像処理に関するものである場合には、モデリングなどの演算処理を行うことになる。
本実施の形態においては、メインプロセッサ200と、グラフィックプロセッサ100は協調的に演算処理を行っており、グラフィックプロセッサ100は、メインプロセッサ200により処理されるそれぞれのタスクに関連する画像処理を行い、生成した画像、映像を表示装置500に出力し、または図示しない記憶装置に記憶する。
メインメモリ50は、主にメインプロセッサ200によって使用される記憶領域である。このメインメモリ50は、複数のアプリケーションに対応するタスクに関連するデータが格納される。例えば、メインプロセッサ200によりコンピュータグラフィックスに関するタスクを処理して得られたモデリングデータなどが一時的に格納される。
また、このメインメモリ50には、後述するようにグラフィックプロセッサ100による演算処理の結果得られたデータが退避して格納される場合もある。
グラフィックプロセッサ100は、画像に関する処理を専用に実行するブロックであり、レンダリング処理などを行うユニットである。グラフィックプロセッサ100は、グラフィックメモリ10、演算ユニット12、ディスプレイコントローラ18、制御ブロック20を含む。これらのブロック同士は、バス40で接続されており、各ブロック間でデータ信号の送受が行われる。
グラフィックメモリ10は、グラフィックプロセッサ100により使用、管理されるグラフィックに関するデータ専用のメモリ領域である。このグラフィックメモリ10は、画像フレームデータが格納されるフレームバッファやZバッファに加え、画像フレームデータを描画する際に参照される基本データである頂点データ、テクスチャデータ、カラールックアップテーブルなどが格納される領域を含んでいる。グラフィックメモリ10は、エントリのバス幅を広くし、あるいは転送クロックを高速化するなどして演算ユニット12からグラフィックメモリ10に格納されているデータに高速にアクセスできるように設計されている。
演算ユニット12は、メインプロセッサ200からの命令に従って、グラフィックに関する様々な演算処理を行う。その処理の一例としては、3次元モデリングデータをもとに座標変換、陰面消去、シェーディングを行って画像フレームデータを作成し、フレームバッファに書き込む一連のレンダリング処理などが挙げられる。演算ユニット12は、特に3次元グラフィックスに関する処理を高速に行うために、ラスタライザ12a、シェーダユニット12b、テクスチャユニット12cなどの機能ブロックを含んでいる。
ラスタライザ12aは、描画するプリミティブの頂点データを受け取り、3次元空間上のプリミティブを投影変換により描画平面上の図形に変換するビュー変換を行う。さらに、描画平面上の図形を、描画平面の水平方向に沿ってスキャンしながら、一列ごとに量子化されたピクセルに変換するラスター処理を行う。このラスタライザ12aによってプリミティブがピクセル展開されて、各ピクセル毎にピクセル情報を算出する。このピクセル情報には、RGBカラー値、透明度を表すα値、視点からの奥行きを表すZ値が含まれる。
ラスタライザ12aは、スキャンラインに沿って所定の大きさのピクセル領域を生成し、シェーダユニット12b、テクスチャユニット12cへと出力する。ラスタライザ12aから出力されるピクセル領域は、一度キューにスタックされ、シェーダユニット12bはスタックされたピクセル領域を順に処理していく。
シェーダユニット12bは、ラスタライザ12aにより算出されたピクセル情報をもとにシェーディング処理を行い、テクスチャユニット12cにより得られたテクセル情報をもとに、テクスチャマッピング後のピクセル色を決定し、グラフィックメモリ10内のフレームバッファにシェーディング処理後の画像フレームデータを書き込む。さらにシェーダユニット12bはフレームバッファに書き込まれた画像フレームデータに対してフォギング、アルファブレンディング等の処理を行い最終的な描画色を決定してフレームバッファの画像フレームデータを更新する。
テクスチャユニット12cは、シェーダユニット12bからテクスチャデータを指定するパラメータを受け取り、要求されたテクスチャデータをグラフィックメモリ10内のテクスチャバッファを読み出し、所定の処理を行った後にシェーダユニット12bに対して出力する。
制御ブロック20は、このグラフィックプロセッサ100全体を制御するブロックであり、演算ユニット12、グラフィックメモリ10、ディスプレイコントローラ18を統括的に制御し、各ブロック間のデータ転送の同期管理、割り込み処理、タイマー管理等を行う。
制御ブロック20は、メモリ制御部14、タスク特定部16を含む。メモリ制御部14は、後述するグラフィックメモリ10の空間分割および時間分割を管理するブロックであって、各アプリケーションに対するメモリ容量やアドレスの割り当てなどのメモリ管理機能を有する。タスク特定部16は、メインプロセッサ200からタスク切り替えの通知を受け付け、グラフィックプロセッサ100で処理すべきタスクを特定する。
ディスプレイコントローラ18は、水平および垂直同期信号を生成し、表示装置500の表示タイミングに従って、グラフィックメモリ10に格納されるフレームバッファから画像フレームデータのピクセルデータをライン状に順次読み込んでいく。さらにディスプレイコントローラ18は、ライン状に読み込まれたピクセルデータを、RGBのカラー値からなるデジタルデータから表示装置500に対応したフォーマットに変換して出力する。
つぎに、以上のように構成された情報処理装置1000の動作について、本実施の形態の特徴であるメモリ管理機能を中心に説明する。
いま、情報処理装置1000は、ゲームとビデオ録画に関する2つのアプリケーションを同時に実行しているものとする。以下、ゲームアプリケーションを第1アプリケーションとし、それに関連するタスクを第1タスクと総称する。同様に、ビデオ録画アプリケーションを第2アプリケーションとし、それに関連するタスクを第2タスクと総称する。メインプロセッサ200は、第1タスクおよび第2タスクを時分割によって処理している。
図2は、グラフィックメモリ10が空間および時間分割され、2つのアプリケーションによって共有される状態を示すタイムチャートである。同図は横軸が時間、縦軸がメモリの容量を表している。
グラフィックメモリ10は、第1および第2領域に分割されて使用される。第1領域は、メインプロセッサ200における処理対象のタスクが変更されたかどうかに関わらず所定のタスクに関連するデータを格納する固定領域として使用される。具体的には、第1領域にはメインプロセッサ200で処理されるタスクの切り替えにかかわらず、第1アプリケーションに対応する第1タスクに関連するデータGAMEが固定的に格納される。
一方、第2領域は、メインプロセッサ200における処理対象のタスクが変更されたことに伴い、変更後のタスクに関連するデータを格納する変動領域として使用される。具体的には、第2領域は、メインプロセッサ200による処理と同期して、第1アプリケーションに対応するタスクに関連したデータGAMEと、第2アプリケーション対応するタスクに関連したデータPVRとが時間的に入れ替わり格納される。
図2において、時刻T0からT1は、メインプロセッサ200によってゲームアプリケーションに対応するタスクが処理されている。この間、グラフィックメモリ10は、第1領域に加えて第2領域にもゲームに関連するデータGAMEが格納されている。
第2領域にデータが格納されるアプリケーションは、タスクの切り替えに際して、データを退避するかを予め指定しておく。これは例えばアプリケーションごとにデータ退避フラグFDi(添え字のiはアプリケーションの番号を表す)を用意しておき、退避する場合には1、退避しない場合には0を割り当てることで識別することができる。例えば、第1タスクであるゲームに関するデータの退避が必要な場合にはFD1=1とし、第2タスクであるビデオ録画に関するデータを退避する必要がない場合には、FD2=0とする。
なお、データ退避フラグFDiは、あらかじめグラフィックメモリ10の一部、あるいはメインメモリ50に記憶しておいてもよいし、タスクの切り替えのたびに、メインプロセッサ200からグラフィックプロセッサ100に対して通知してもよい。
時刻T1にメインプロセッサ200により処理されるタスクがビデオ録画アプリケーションに対応する第2タスクに切り替えられる。タスクの切り替えにともない、メインプロセッサ200は、グラフィックプロセッサ100のタスク特定部16に対してタスクの変更を通知する。
タスク変更の通知を受けたグラフィックプロセッサ100は、第1タスクのデータ退避フラグFD1を参照する。いま、FD1=1の場合には、第2領域に格納されたデータをグラフィックメモリ10とは別の、メインメモリ50に一時退避する。FD1=0の場合には、第2領域に格納されたデータの退避は行わない。
その後、メモリ制御部14は、第2領域に格納されていたデータをすべてクリアする。データがクリアされた後、メモリ制御部は、第2タスクのデータ退避フラグFD2を参照し、FD2=1の場合には、以前のタイムスライスで退避しておいた第2タスクに関連するデータをメインメモリ50から読み込み、グラフィックメモリ10の第2領域に復帰させる。
グラフィックメモリ10において、データの退避、復帰のスワップ動作が完了すると、メモリ制御部14はメインプロセッサ200に対して、グラフィックプロセッサ100のタスク変更の準備が整ったことを通知する。この通知を受けてメインプロセッサ200は、第2アプリケーションに対応する第2タスクの処理を開始する。時刻T1から時刻T2の期間においては、第2タスクに関連するデータは第2領域にのみ格納され、第1領域はゲームアプリケーションに対応した第1タスクに関連するデータによって占有されている。
時刻T2にメインプロセッサ200により処理されるタスクがふたたび第1タスクに切り替えられる。グラフィックプロセッサ100は、メインプロセッサ200からタスクの変更の通知を受ける。グラフィックプロセッサ100は、第2タスクのデータ退避フラグFD2を参照し、必要であればデータの退避を行う。
上述の一連のメモリ管理はメモリ制御部14によって行われる。図3は、メモリ制御部14による第2領域のメモリ管理の手順を示すフローチャートである。
メインプロセッサ200が第iアプリケーションに対応する第iタスクの処理を終え、次の第jタスクへの切り替え通知を行う(S100)。メモリ制御部14は、第iタスクのデータ退避フラグFDiを参照し、データを退避すべきかどうかを確認する(S110)。タスクFDi=1ならば、第2領域に格納されたデータをメインメモリ50に退避する(S120)。
メモリ制御部14は、第2領域に格納されていたデータをすべてクリアする(S130)。この際、第iタスクに関連するデータを退避しなかった場合には、そのデータは消去されることになる。このデータクリアによって、異なるアプリケーション間で、誤ったデータを読み込むことが無くなるため、複数のアプリケーションを安定に動作させることができる。
つぎに、メモリ制御部14は、第jタスクのデータ退避フラグFDjを参照する(S140)。その結果、FDj=1ならば、メインメモリ50に退避していた第jタスクに関連するデータを読み込み、グラフィックメモリ10に復帰する(S150)。
メモリ制御部14は、メインプロセッサ200に対し、一連のメモリスワップ動作の完了を通知する(S160)。
その後、メインプロセッサ200が第jタスクに関連する処理を開始し、グラフィックプロセッサ100の演算ユニット12はメインプロセッサ200から指示された第jタスクに関連する画像処理を行う。
以上のように、本実施の形態に係る情報処理装置1000は、グラフィックメモリ10を第1および第2領域に分割し、それぞれを固定領域および変動領域として使用する。その結果、メインプロセッサ200で処理されるタスクが切り替えられても、固定領域として使用される第1領域に格納される第1タスクに関連するデータは、一時的に退避する必要がないため、タスク再開後の再読込が不要となり、スイッチコストを低減し、システムのオーバーヘッドを大幅に低減することができる。
特に3次元グラフィックスの描画を行うゲームアプリケーションなどのように、膨大な計算量およびメモリ容量を必要とし、かつリアルタイム性が要求されるタスクに関連するデータを固定領域に格納することにより、タスク切り替え時にメモリの書き換えに伴うオーバーヘッドが発生しないため、動画が停止したりコマ落ちするといった画質低下の問題を解消することができる。
一方、変動領域として使用する第2領域に、ビデオ録画アプリケーションなどのリアルタイム性の要求されないタスクに関連するデータを格納することによって、メモリを複数のタスクで効率的に共有することができる。
図2に示されるように、第1領域に割り当てられる第1タスクに関連するデータは、固定領域に格納されるデータと、変動領域に格納されるデータに分けられる。
第1タスクであるゲームが、3次元グラフィックを描画する場合には、第1領域および第2領域には、フレームバッファ、Zバッファ、テクスチャバッファ、カラールックアップテーブルなどが分割して格納されることになる。そこで、第1領域と第2領域には、それぞれ以下のようにデータを配分して格納してもよい。
例えば、テクスチャデータやカラールックアップテーブルなどは、フレームが異なっても共通して使用される場合があるため、固定領域に割り当てる。アプリケーションの内容によってはグラフィックスがそれほど複雑ではなく画像フレームデータの描画にそれほど時間を要さないような場合、フレームバッファやZバッファの内容は破棄してもよい。逆に、画像フレームデータを描画するのに比較的多くの計算量を必要とし、あるいは、ある画像フレームデータの描画にそれ以前のフレームの画像フレームデータを必要とする場合には、固定領域に割り当てて、データの退避および読み込みに必要な時間を短縮することが望ましい。これらはアプリケーションごとに、そのアプリケーションの種類や要求される仕様に応じて決定すればよい。
メモリ制御部14は、第1タスクに関連するフレームバッファ、Zバッファ、テクスチャバッファ、カラールックアップテーブルを固定領域、変動領域のいずれに格納すべきかをアプリケーションからの指示に従って判断し、それぞれを格納すべき領域に対応するアドレスを保持しておく。演算ユニット12内のラスタライザ12a、シェーダユニット12b、テクスチャユニット12cは、演算の結果得られた画像フレームデータ、テクセル情報などをメモリ制御部14から指定されたアドレスに書き込むことによって、固定領域と変動領域に、適切なデータを割り振って格納することができる。
また、変動領域である第2領域に格納されるデータを退避するかについては、タスクごとに決定するのではなく、第2領域に格納されるそれぞれのデータごとに指定してもよい。例えば、第2領域に、フレームバッファとテクスチャバッファが格納される場合、テクスチャバッファのみを退避し、フレームバッファは退避しないように設定してもよい。この場合、必要最低限のデータのみの退避を行うことになるため、データの退避および再読込に要する時間を短縮することができる。
いずれのデータを退避するかについては、次にそのタスクが処理されるタイムスライスにおいて、そのデータが必要であるかによって決めてもよい。さらに、そのデータが必要な場合であっても、同一のデータを作成するのに要する時間が、データの退避および復帰に要する時間よりも短い場合には退避しなくてもよい。
図2では、グラフィックメモリ10を第1、第2の2つの領域に分割したが、図4に示すように、第1から第3領域の3つに分割してもよい。この場合、第1、第2領域をそれぞれ第1、第2タスクの固定領域として使用し、第3領域を変動領域として第1タスクと第2タスクで時分割して使用してもよい。
3つ以上の領域に分割することによって、第1タスクのみでなく、第2タスクについても固定領域を確保することができるため、第2タスクについてもリアルタイム性が要求される場合などにおいて効率的なメモリ管理方法となる。
つぎに、複数のタスクに関連するアプリケーションが起動される際のグラフィックメモリ10の分割、割り当てに関する手順について図5および図6を用いて説明する。
図5は、複数のアプリケーションが順次起動された場合にグラフィックメモリ10が空間および時間分割されていく状態遷移を示すタイムチャートである。図中、第Xタスクと示されているのは、第Xアプリケーションに対応するタスクに関連するデータが格納されている状態を示す。
図6は、OSおよび各アプリケーション間で行われるメモリ割り当てに関するデータのシーケンス図である。以下、括弧内に示されるSで始まる番号は、図6における各シーケンスに対応する。
時刻T0に第1アプリケーションが起動される(S200)。第1アプリケーションはOSに対して所定の容量Aのグラフィックメモリ10の割り当てを要求する(S202)。OSは、その時点でのグラフィックメモリ10の空き容量を参照する(S204)。その結果、時刻T0においては、他にアプリケーションが起動していないため、OSは要求された容量を第1アプリケーションにそのまま割り当てる(S206)。時刻T1に第2アプリケーションが起動されるまでの間、グラフィックメモリ10は、第1アプリケーションによって占有的に使用される。
時刻T1に第2アプリケーションが起動される(S210)。第2アプリケーションは必要なグラフィックメモリ10の容量の割り当てをOSに対して通知する(S212)。第2アプリケーションにより要求されるメモリ容量が、その時点でのグラフィックメモリ10の空き容量よりも大きいとき、OSはグラフィックメモリ10を固定領域、変動領域にそれぞれ対応する第1、第2領域に分割可能か検討する(S216〜S224)。
OSは、先に起動されている第1アプリケーションに対して、固定領域として確保すべき容量を問い合わせる(S216)。第1アプリケーションは、この問い合わせに対して、予め規定しておいた必要な固定領域の容量Xを返答する(S218)。
OSは、グラフィックメモリ10全体の容量Mから第1アプリケーションの固定領域の容量Xを確保した場合に残る容量Y=M−Xを計算する(S220)。その結果得られた容量Yを変動領域の容量として第2アプリケーションに対して通知し(S222)、第2アプリケーションは、変動領域として容量Yが割り当てられた状態でアプリケーションが実行可能かどうかを判断し、OSに返答する(S224)。
第2アプリケーションから実行可能であるとの返答があった場合、OSはメモリ制御部14に対してグラフィックメモリ10の分割を指示する(S226)。
以上に示すシーケンスを経て、メモリ制御部14は、容量Xを固定領域として、容量Yを変動領域として割り当てる。その後、第1アプリケーションに対応するデータは、内容ごとに固定領域と変動領域に再配置されて、グラフィックメモリ10の分割が完了する。
シーケンスS224において、第2アプリケーションから容量Yが不足であると返答された場合には、OSはユーザに対してその旨を通知し、第2アプリケーションの起動が中止され、グラフィックメモリ10の分割は行わずに第1アプリケーションがそのまま使用する。
図5において、時刻T1からT2の期間は、グラフィックプロセッサ100は第1アプリケーションに対応した第1タスクに関連するデータ処理が行う。その間、グラフィックメモリ10には、第1、第2領域ともに第1タスクに関連するデータが格納される。その後、時刻T2に、メインプロセッサ200から第2アプリケーションに対応する第2タスクへの切り替えが通知されると、第2領域には、第2アプリケーションに対応するタスクに関連するデータが書き込まれる。
以上のように、アプリケーション毎に全体として必要な容量とともに、固定領域として必要な容量を規定しておくことによって、他のアプリケーションが起動されるたびにOSおよび制御ブロック20によって、グラフィックメモリ10の再割り当てを検討することができ、効率的に共有することができる。
情報処理装置1000がゲーム専用機である場合には、実行されるアプリケーションとしてはメインとなるゲームアプリケーションと、ビデオ録画アプリケーション、チャットアプリケーションなどのサブアプリケーションが想定される。この場合、ゲームアプリケーションなどのリアルタイム性が要求されうるタスクを、起動の順番に関係なく優先的に固定領域に割り当ててもよい。
また、各アプリケーションが必要とする固定領域を、グラフィックメモリ10の使用状況に応じて変化させてもよい。すなわち、あらかじめ各アプリケーションにおいて、画像の詳細度に対応させていくつか固定領域の容量を規定しておく。グラフィックメモリ10の空き容量が十分にあるときは、フルサイズ、フルカラーでの描画を行う。この場合、必要とする固定領域の容量は当然大きくなる。
そこで、複数のアプリケーションが起動される際に、画面サイズや解像度、カラー階調等を低下させることにより必要とする固定領域の容量は小さくすることができる。この場合、OSは、アプリケーションが起動される毎に、すでに実行されているアプリケーションに対して詳細度の低下を打診し、各アプリケーションとの間で固定領域または変動領域として確保すべきメモリ容量を交渉する。複数のアプリケーションを起動する際に、どの程度の画質の低下を許容するかについては、ユーザが指定してもよい。
このように、起動されるアプリケーションの数に応じて、各アプリケーションが固有領域の容量を適応的に変化させていくことにより、より多くのアプリケーションに対応するタスクを実行することが可能となり、効率的にメモリを共有することができる。
上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
本実施の形態に係る情報処理装置1000においては、グラフィックプロセッサ100とメインプロセッサ200とは一のLSIチップとして一体集積化されていてもよく、または別のチップとされていてもよい。実施の形態において示した各ブロックは、集積度についてまで限定するものではなく、いずれの構成要素の組み合わせが集積化され、あるいは別チップとして構成されていてもよい。
本実施の形態においては、2つのアプリケーションに対応するタスク間がマルチタスクによって処理される場合について説明したが、3つ以上のタスクを同時に処理する場合にも適用することができる。このときには、グラフィックメモリ10の時分割、空間分割の態様を2つ以上の領域に空間分割し、各タスクそれぞれに対して割り当てる固定領域と、複数のタスクに対して割り当てる変動領域をそれぞれ確保すればよい。
本発明の第1の実施の形態に係る情報処理装置の構成を示すブロック図である。 グラフィックメモリが空間および時間分割され、2つのアプリケーションによって共有される状態を示すタイムチャートである。 メモリ制御部による第2領域のメモリ管理の手順を示すフローチャートである。 グラフィックメモリが3つの領域に空間分割され、2つのアプリケーションによって共有される状態を示すタイムチャートである。 複数のアプリケーションが順次起動された場合にグラフィックメモリが空間および時間分割されていく状態遷移を示すタイムチャートである。 OSおよび各アプリケーション間で行われるメモリ割り当てに関するデータのシーケンス図である。
符号の説明
10 グラフィックメモリ、 10a フレームバッファ、 10b Zバッファ、 10c テクスチャバッファ、 10d カラールックアップテーブル、 12 演算ユニット、 12a ラスタライザ、 12b シェーダユニット、 12c テクスチャユニット、 14 メモリ制御部、 16 タスク特定部、 18 ディスプレイコントローラ、 20 制御ブロック、 40 バス、 50 メインメモリ、 100 グラフィックプロセッサ、 200 メインプロセッサ、 500 表示装置、 1000 情報処理装置。

Claims (7)

  1. グラフィックプロセッサが管理するメモリを複数の領域に分割し、それらの領域に、同時に実行される複数のアプリケーションであって、単一の表示装置を表示領域として共有する複数のアプリケーションそれぞれに対応するレンダリング処理に関連するデータをアプリケーションごとに分別して格納し、
    前記領域に格納されるレンダリング処理に関連するデータは、グラフィックプロセッサにより描画される画像フレームデータと、前記画像フレームデータを作成する際に参照する基本データを含むことを特徴とするメモリ制御方法。
  2. メモリを複数の領域に分割し、それらの領域に、同時に実行される複数のアプリケーションであって、単一の表示装置を表示領域として共有する複数のアプリケーションそれぞれに対応するレンダリング処理に関連するデータをアプリケーションごとに分別して格納するメモリ制御部を有し、
    前記領域に格納されるレンダリング処理に関連するデータは、当該グラフィックプロセッサにより描画される画像フレームデータと、前記画像フレームデータを作成する際に参照する基本データを含むことを特徴とするグラフィックプロセッサ。
  3. 装置全体を統括的に制御するメインプロセッサとグラフィックプロセッサを備え、前記グラフィックプロセッサは、
    処理対象のアプリケーションを特定する情報を前記メインプロセッサから取得するタスク特定部と、
    メモリと、
    前記メモリを複数の領域に分割し、前記情報を利用し当該複数の領域に、同時に実行される複数のアプリケーションであって、単一の表示装置を表示領域として共有する複数のアプリケーションそれぞれに対応するレンダリング処理に関連するデータを分別して格納するメモリ制御部と、
    を有し、
    前記領域に格納されるレンダリング処理に関連するデータは、グラフィックプロセッサにより描画される画像フレームデータと、前記画像フレームデータを作成する際に参照する基本データを含むことを特徴とする情報処理装置。
  4. 装置全体を統括的に制御するメインプロセッサとグラフィックプロセッサとグラフィックプロセッサが管理するメモリを備え、
    前記メインプロセッサは、同時に実行される複数のアプリケーションであって、単一の表示装置を表示領域として共有する複数のアプリケーションそれぞれに対応する複数のタスクを並列的に処理するための複数の処理ユニットを備え、
    前記グラフィックプロセッサは前記メインプロセッサが処理する複数のアプリケーションの内、前記メインプロセッサから指示された単一のアプリケーションに対応するレンダリング処理を実行する演算ユニットを備え、
    前記メモリは、前記複数のアプリケーションに対応付けられる複数の領域に分割され、
    前記グラフィックプロセッサは、前記メインプロセッサから処理すべきアプリケーションの変更が指示されたとき、変更後のアプリケーションに対応するレンダリング処理に関連するデータを前記メモリの当該アプリケーションに対応する領域へ格納し、
    前記領域に格納されるレンダリング処理に関連するデータは、グラフィックプロセッサにより描画される画像フレームデータと、前記画像フレームデータを作成する際に参照する基本データを含むことを特徴とする情報処理装置。
  5. 前記メモリ制御部は、各タスクに対応するアプリケーションが必要とするメモリ容量を、各レンダリング処理に関連するデータを格納する領域として割り当てることを特徴とする請求項2に記載のグラフィックプロセッサ。
  6. 前記メモリ制御部は、アプリケーションごとの前記レンダリング処理に関連するデータを格納する領域を、各アプリケーションからの指示に従って割り当てることを特徴とする請求項5に記載のグラフィックプロセッサ。
  7. 前記メモリ制御部は、アプリケーションごとの前記レンダリング処理に関連するデータを格納する領域を、各アプリケーションの内容に基づいて割り当てることを特徴とする請求項5に記載のグラフィックプロセッサ。
JP2004276236A 2004-09-22 2004-09-22 メモリ制御方法、グラフィックプロセッサおよび情報処理装置 Expired - Lifetime JP4683384B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004276236A JP4683384B2 (ja) 2004-09-22 2004-09-22 メモリ制御方法、グラフィックプロセッサおよび情報処理装置
EP05776923.4A EP1800257B1 (en) 2004-09-22 2005-08-30 Memory control method of graphic processor
CNA2005800319035A CN101023445A (zh) 2004-09-22 2005-08-30 图形处理器的存储器控制方法
PCT/JP2005/016199 WO2006033226A1 (en) 2004-09-22 2005-08-30 Memory control method of graphic processor
US11/231,342 US7612781B2 (en) 2004-09-22 2005-09-20 Memory control method of graphic processor unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004276236A JP4683384B2 (ja) 2004-09-22 2004-09-22 メモリ制御方法、グラフィックプロセッサおよび情報処理装置

Publications (2)

Publication Number Publication Date
JP2006092217A JP2006092217A (ja) 2006-04-06
JP4683384B2 true JP4683384B2 (ja) 2011-05-18

Family

ID=35355881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004276236A Expired - Lifetime JP4683384B2 (ja) 2004-09-22 2004-09-22 メモリ制御方法、グラフィックプロセッサおよび情報処理装置

Country Status (5)

Country Link
US (1) US7612781B2 (ja)
EP (1) EP1800257B1 (ja)
JP (1) JP4683384B2 (ja)
CN (1) CN101023445A (ja)
WO (1) WO2006033226A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7830389B2 (en) * 2006-10-03 2010-11-09 Honeywell International Inc. Dual processor accelerated graphics rendering
JP2009129000A (ja) * 2007-11-20 2009-06-11 Seiko Epson Corp タスクディスパッチャプログラム及びタスクディスパッチャシステム
TWI438633B (zh) * 2007-11-29 2014-05-21 Ibm 記憶體管理之垃圾收集方法、其電腦程式產品,及其裝置
CN102254322A (zh) * 2011-06-09 2011-11-23 上海智翔信息科技股份有限公司 一种图像提取方法及装置
KR101869939B1 (ko) 2012-01-05 2018-06-21 삼성전자주식회사 멀티-쓰레딩을 사용하는 그래픽 처리를 위한 방법 및 장치
JP6702681B2 (ja) 2015-10-01 2020-06-03 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
GB2543866B (en) * 2016-03-07 2017-11-01 Imagination Tech Ltd Task assembly for SIMD processing
US10812549B1 (en) * 2016-06-07 2020-10-20 Apple Inc. Techniques for secure screen, audio, microphone and camera recording on computer devices and distribution system therefore
JP2019184670A (ja) * 2018-04-03 2019-10-24 シャープ株式会社 画像処理装置、及び表示装置
CN110515868A (zh) * 2019-08-09 2019-11-29 苏州浪潮智能科技有限公司 显示图像的方法和装置
CN114387150A (zh) * 2020-10-20 2022-04-22 富泰华工业(深圳)有限公司 用于人工智能学习的处理方法及装置、设备及存储介质
CN115080158B (zh) * 2021-03-12 2024-07-09 Oppo广东移动通信有限公司 界面显示方法、装置、终端设备及计算机可读存储介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61137186A (ja) * 1984-12-07 1986-06-24 株式会社東芝 表示制御装置
US4928253A (en) * 1986-01-25 1990-05-22 Fujitsu Limited Consecutive image processing system
JPH02193265A (ja) * 1989-01-23 1990-07-30 Hitachi Ltd 情報処理システム
US5252953A (en) * 1990-05-22 1993-10-12 American Film Technologies, Inc. Computergraphic animation system
GB2267203B (en) * 1992-05-15 1997-03-19 Fujitsu Ltd Three-dimensional graphics drawing apparatus, and a memory apparatus to be used in texture mapping
US5539893A (en) * 1993-11-16 1996-07-23 Unisys Corporation Multi-level memory and methods for allocating data most likely to be used to the fastest memory level
US6343309B1 (en) 1996-09-30 2002-01-29 International Business Machines Corporaton Method and apparatus for parallelizing a graphics pipeline
JPH11149570A (ja) 1997-11-17 1999-06-02 Nec Corp ゲーム装置およびこのゲーム装置に用いられる記録媒体
US6856320B1 (en) * 1997-11-25 2005-02-15 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
JP2000235501A (ja) 1999-02-16 2000-08-29 Matsushita Electric Ind Co Ltd タスク実行装置
JP3573406B2 (ja) * 1999-02-26 2004-10-06 キヤノン株式会社 画像処理装置
US6664969B1 (en) * 1999-11-12 2003-12-16 Hewlett-Packard Development Company, L.P. Operating system independent method and apparatus for graphical remote access
US6724390B1 (en) * 1999-12-29 2004-04-20 Intel Corporation Allocating memory
US6831652B1 (en) * 2000-03-24 2004-12-14 Ati International, Srl Method and system for storing graphics data
US6614438B1 (en) * 2000-05-30 2003-09-02 Koninlijke Philips Electronics N.V. Data-processing arrangement for processing different types of data
US6724396B1 (en) * 2000-06-01 2004-04-20 Hewlett-Packard Development Company, L.P. Graphics data storage in a linearly allocated multi-banked memory
TW531706B (en) 2000-07-20 2003-05-11 Ibm Method and apparatus in a data processing system for dynamic graphics context switching
US6646646B2 (en) * 2000-12-13 2003-11-11 Micron Technology, Inc. Memory system having programmable multiple and continuous memory regions and method of use thereof
JP4581261B2 (ja) * 2001-02-14 2010-11-17 ソニー株式会社 演算装置、演算処理方法及び画像処理装置
US6831651B2 (en) * 2001-02-15 2004-12-14 Sony Corporation Checkerboard buffer
US6982719B2 (en) * 2002-07-15 2006-01-03 Sun Microsystems, Inc. Switching sample buffer context in response to sample requests for real-time sample filtering and video generation
JP2004157526A (ja) * 2002-10-15 2004-06-03 Nec Electronics Corp コントローラ・ドライバ、表示装置及び表示方法
US6937244B2 (en) * 2003-09-23 2005-08-30 Zhou (Mike) Hong Apparatus and method for reducing the memory traffic of a graphics rendering system
US7081897B2 (en) * 2003-12-24 2006-07-25 Intel Corporation Unified memory organization for power savings
US7369134B2 (en) * 2003-12-29 2008-05-06 Anark Corporation Methods and systems for multimedia memory management

Also Published As

Publication number Publication date
US20060085795A1 (en) 2006-04-20
JP2006092217A (ja) 2006-04-06
WO2006033226A1 (en) 2006-03-30
US7612781B2 (en) 2009-11-03
EP1800257B1 (en) 2020-03-04
EP1800257A1 (en) 2007-06-27
CN101023445A (zh) 2007-08-22

Similar Documents

Publication Publication Date Title
US7612781B2 (en) Memory control method of graphic processor unit
JP4755172B2 (ja) Pciエクスプレスを用いたグラフィックデバイスのクラスタリング
JP4372043B2 (ja) コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
US7664922B2 (en) Data transfer arbitration apparatus and data transfer arbitration method
US7725623B2 (en) Command transfer controlling apparatus and command transfer controlling method
US7760205B2 (en) Information processing apparatus for efficient image processing
US8941669B1 (en) Split push buffer rendering for scalability
EP0676720B1 (en) Image generation apparatus
US20070233976A1 (en) Data processor with a built-in memory
EP1647887A2 (en) Apparatus for efficient image processing
JP4318664B2 (ja) 情報処理装置およびタスク実行方法
JP4011082B2 (ja) 情報処理装置、グラフィックプロセッサ、制御用プロセッサおよび情報処理方法
JP3971448B2 (ja) 描画装置及び描画方法
JPH1031750A (ja) グラフィックスコマンド分配方法及びそのグラフィックスシステム
JPH09212681A (ja) 図形描画プロセッサ及び図形処理システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080904

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090123

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090204

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100927

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101227

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20101227

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110201

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

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4683384

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250