JP4798849B2 - グラフィックスエンジンマスターモード動作の改良 - Google Patents

グラフィックスエンジンマスターモード動作の改良 Download PDF

Info

Publication number
JP4798849B2
JP4798849B2 JP2000614115A JP2000614115A JP4798849B2 JP 4798849 B2 JP4798849 B2 JP 4798849B2 JP 2000614115 A JP2000614115 A JP 2000614115A JP 2000614115 A JP2000614115 A JP 2000614115A JP 4798849 B2 JP4798849 B2 JP 4798849B2
Authority
JP
Japan
Prior art keywords
data
memory
command
header
data word
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
JP2000614115A
Other languages
English (en)
Other versions
JP2002543489A (ja
JP2002543489A5 (ja
Inventor
ナラシムハ ノーカラ,
プラーラド ベンカタプラム,
Original Assignee
エヌヴィディア コーポレイション
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 エヌヴィディア コーポレイション filed Critical エヌヴィディア コーポレイション
Publication of JP2002543489A publication Critical patent/JP2002543489A/ja
Publication of JP2002543489A5 publication Critical patent/JP2002543489A5/ja
Application granted granted Critical
Publication of JP4798849B2 publication Critical patent/JP4798849B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Bus Control (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

【0001】
(発明の分野)
本発明は概して、コンピュータシステムに関し、特に、実行するために行列に並べられたコマンドにアクセスする場合の遅延の最小化に関する。
【0002】
(発明の背景)
半導体およびコンピュータ技術の発展に伴い、コンピュータシステムの高速化と同時に小型化が進んでいる。デスクトップコンピュータシステムはもちろん、ラップトップコンピュータシステムでさえも、今や、小さな部屋を占有するようなメインフレームコンピュータの処理速度を有している。現在普及が広がっているハンドヘルドコンピュータシステム(例えば、携帯情報端末(PDA))でさえも、より高性能になってきている。コンピュータシステムの小型化および廉価化が進むにつれ、コンピュータシステムへの要求も常にかつより多く発生する。このような要求の例として、速度がある。
【0003】
コンピュータシステムの速度を増大させるため、設計において、分散化のアプローチが実行されてきた。各コンピュータシステムにおいて、メモリコントローラ、ハードディスクコントローラ、グラフィックス/映像コントローラ、通信コントローラ、および他の周辺コントローラなどの、多くの専用機能を行うように設計された集積回路(IC)がある。これらの専用集積回路は、異なる機能を、独立して、同時に行い得る。このような分散化アプローチは、「ボトルネック」を最小化し、コンピュータ速度の向上に役立つ。
【0004】
その場合でも、これらの専用集積回路によって行われるタスク、例えば、グラフィックおよび映像処理は、ますますより時間がかかり、複雑になってきている。グラフィックスおよび映像処理において、単純なタスクでさえ、数多くの工程を実行することを必要とするかもしれない。例として、3次元(3D)グラフィックスオブジェクトを、ディスプレイ画面上で、ある位置から他の位置に移動するというタスクについて考える。グラフィックスコントローラは、オブジェクトに関する属性データ(例えば、高さ、幅、色、質感など)をメモリ(例えば、フレームバッファ)から取り出す工程、およびソースと目的の位置との間の距離を計算する工程に加えて、新たな位置でのオブジェクトのシェーディングを正確に反映させるため、オブジェクトのピクセル用に、新たな色および質感の値を計算する工程が必要とされる。従って、グラフィックスコントローラは、この「移動」コマンドに応答して、これらの工程全てを行う必要がある。グラフィックスコントローラは、これらの工程を行う間、ビジーであり、他のコマンドを実行することはできない。一方、さらなるコマンド、例えば、フレームバッファにおけるグラフィックスオブジェクトをさらに操作するコマンドがコンピュータユーザによって生成され得る。従って、グラフィックスコントローラの処理能力に依存して、コマンドの長い行列が得られる可能性が高い。従来は、これらのコマンドは、グラフィックスコントローラの外部にあるバッファメモリに格納され、実行される順番になるまで待機する。しかし、これは、グラフィックスコントローラに周期的に割り込むか、ポーリングして、次のコマンドの用意ができたかどうか判定するホストプロセッサを必要とする。このような割り込みおよびポーリングは、ホストプロセッサの時間を多く必要とし、他のタスクが時間を使えないようになり、そのことによって、コンピュータシステムを全体として遅くする。さらに、外部のバッファメモリに格納されたコマンドにアクセスするために必要な時間は、他の大きな欠点である。
【0005】
このボトルネックの高速化に役立つため、先入れ先出し(FIFO)バッファが、グラフィックスコントローラの内部においてインプリメントされて、グラフィックスコントローラが以前のコマンドをまだ実行している間に発生された新たなコマンドを格納する。内部FIFOバッファのインプリメンテーションは、ホストプロセッサが、グラフィックスコントローラを、干渉またはポーリングする必要がもはやなく、ホストプロセッサオーバーヘッドが低減されるということを意味する。FIFOバッファが、グラフィックスコントローラに埋め込まれている(すなわち、内部にある)ということは、さらに、FIFOバッファアクセス時間が低減されるということを意味する。しかし、内部FIFOバッファのサイズは、ICチップの貴重なスペースを占め、IC回路においてインプリメントされる機能が少なくなるという理由で、非常に制限される。従って、内部コマンドFIFOバッファは、常に3つ、または4つのコマンドしか格納しないように制限される。現在のコンピュータシステムが行わなければならないタスク(例えば、グラフィックス)およびそのタスクに伴うコマンド行列の複雑さを想定すると、このようなコマンドFIFOバッファは、どうひいきめに見ても不十分であり、FIFOバッファが利用可能になるのをホストプロセッサが待機する必要がある。
【0006】
従って、過剰なホストプロセッサオーバーヘッドを必要とすることなしに、大容量および高速なアクセスコマンドの行列を可能にする装置、システム、および方法の必要性が存在する。
【0007】
(発明の要旨)
従って、本発明は、過剰なホストプロセッサオーバーヘッドを必要とすることなしに、大容量および高速アクセスコマンド待ち行列を可能にする装置、システムおよび方法を提供する。
【0008】
本発明は、プロセッサによって実行されるコマンドを行列に並べる(queuing command)装置の上記の必要性を満たす。装置は、第1のメモリと、第1のメモリに接続されたデータマネージャと、データマネージャに接続されたコマンドパーサーと、データマネージャ、コマンドパーサー、およびプロセッサに接続された第2のメモリと、データマネージャ、コマンドパーサー、およびプロセッサに接続された第3のメモリとを含む。
【0009】
第1のメモリは、それぞれがヘッダおよび複数のデータワードを含むデータ構造を格納する。ヘッダは、データ構造の中のデータワードの数を示す情報と、次に来るデータワードがコマンドまたはコマンドに関連するデータを表すかどうかを示す情報とを有する。データマネージャは、第1のメモリからデータ構造を取り出す。コマンドパーサーは、データマネージャによって取り出されたデータ構造に関連するヘッダを受け取る。その後、コマンドパーサーは、ヘッダ内の情報をパーズし、パーズした結果をデータマネージャに提供する。データマネージャによって取り出されたデータ構造の中のデータワードがコマンドを表す場合、データマネージャは、格納するためコマンドを第2のメモリに送信する。一方、データマネージャによって取り出されたデータ構造の中のデータワードがコマンドに関連するデータを表す場合、データマネージャが、格納するためデータを第3のメモリに送信する。
【0010】
代替的な実施形態において、ヘッダは、複数のデータワードを格納するメモリ位置がヘッダのメモリ位置と連続するかどうかを示す情報(例えば、リンクフィールド)をさらに含み得る。複数のデータワードが格納されているメモリ位置がヘッダのメモリ位置と連続しないことを、この情報が示す場合、各データ構造は、複数のデータワードが格納されている、第1のメモリ内のメモリ位置を指すリンクポインタをさらに含む。あるいは、リンクポインタは、複数のデータワードが格納されているソースデータバッファを指す。この方式によって、コマンド/ソースバッファのリンクされたリストが、ソースデータバッファのリスト共に、共存することが可能になる。
【0011】
本発明の特徴および利点の全てが、添付の図面と共に、説明される以下の好適な実施形態の詳細な説明から明らかになる。
【0012】
(発明の詳細な説明)
以下の本発明の詳細な説明において、本発明に対するより深い理解を提供するために、多くの特定の詳細について説明する。しかし、これらの特定の詳細が無くとも本発明が実施可能であることは、当業者にとって明らかである。別の場合において、本発明の局面を不必要に分かりにくくしないよう、周知の方法、手順、構成要素および回路についての詳細な説明は控えた。以下の本発明の詳細な説明では、グラフィックス/表示コントローラを含む分野における本発明の用途について説明するが、本発明は、例えば、通信、コアロジック、中央処理ユニット(CPU)などの複数データ経路を伴う任意の適用例にも適用可能であることが理解される。
【0013】
本発明によると、大円形(large circular)コマンド/ソースバッファ(CSBUF)またはCSBUFのリンクされたリストが、システムメモリ(すなわち、RAM104)としてインプリメントされ、グラフィックスエンジンによって実行されるコマンドおよびこれらのコマンドに関連するデータを格納する。すなわち、システムメモリは、行列に並んだコマンド(queued command)およびそのデータを格納するために用いられる。そうすることにおいて、任意の所与の時間で、かなり多くのコマンドおよびそのデータが行列に並び得る。本発明によると、各コマンド、およびその関連のデータは、単一のバッファまたは複数のバッファにおいて、データ構造ヘッダとして格納され得る。コマンドバッファに含まれる構造ヘッダは、少なくとも、構造に伴うデータワード(コマンドまたはデータ)の数を示すカウントフィールド、ならびに、コマンドまたはデータが伴うどうかを示すインデックスフィールドを含む。構造ヘッダは、さらに、取り出し、および格納に役立つ他の指数を含み得る。例えば、非連続メモリ位置にデータ構造が格納されることを可能にするため、ポインタも、データ構造に含まれて、直後のデータ構造を格納するシステムメモリ位置を示し得る。同様に、2つのリンクインデックスがヘッダに含まれて、リンクポインタが、データ構造の所定の位置(例えば、データ構造の次のデータワード)で予想されていることを示す。
【0014】
従って、マスターモードモジュールは、まず、構造ヘッダを取り出し、検査するために用いられる。構造ヘッダから取り出される情報に基づいて、マスターモードモジュールは、データ構造に関連するコマンドまたはデータを取り出し、マスターモードモジュール内の適切なレジスタに格納する。その後、マスターモードモジュールは、処理するグラフィックスエンジンに、コマンドおよび関連するデータを提供する。本発明によると、マスターモードモジュールは、一度にシステムメモリに格納されたコマンドの数を、連続的にモニタリングすることが必要である。また、マスターモードモジュールはまた、マスターモードモジュールにおいて次のデータワードが格納され得るメモリ位置をモニタリングおよび決定することが必要である。なお、アプリケーションに依存して、マスターモードモジュールは、他の情報、例えば、ポインタをモニタリングするように変更され得る。そうすることによって、過剰なホストCPUオーバーヘッドを必要としない大容量高速アクセスコマンド待ち行列構成が提供される。
【0015】
ここで、図1を参照して、図1は、例えば、本発明のインプリメンテーションまたは実施が可能なコンピュータシステム100の高レベル図を示す。より詳細には、コンピュータシステム100は、ラップトップコンピュータシステムまたはハンドヘルドコンピュータシステムであり得る。コンピュータシステム100は例示的なものに過ぎず、本発明は、複数の異なるコンピュータシステム(例えば、デスクトップコンピュータシステム、汎用コンピュータシステム、埋設型コンピュータシステム等)においても動作可能であることが、理解される。
【0016】
図1に示すように、コンピュータシステム100は、高集積型システムであり、集積プロセッサ回路101と、周辺コントローラ102と、読取り専用メモリ(ROM)103と、ランダムアクセスメモリ(RAM)104とを備える。この高集積型アーキテクチャにより、低電力消費が可能となる。集積プロセッサ回路101内に提供されていない複雑かつ/または高ピンカウント型の周辺機器とインターフェースをとることが必要な場合、コンピュータシステムアーキテクチャ100は、周辺コントローラも含み得る。
【0017】
周辺コントローラ102は集積プロセッサ回路101の一端に接続され、ROM103およびRAM104は、集積プロセッサ回路101のもう一方の一端に接続される。集積プロセッサ回路101は、処理ユニット105と、メモリインターフェース106と、グラフィックス/表示コントローラ107と、ダイレクトメモリアクセス(DMA)コントローラ108と、符号器/復号器(CODEC)インターフェース109を含むコア論理機能と、パラレルインターフェース110と、シリアルインターフェース111と、入力デバイスインターフェース112と、フラットパネルインターフェース(FPI)113とを含む。処理ユニット105は、中央処理ユニット(CPU)およびメモリ管理ユニット(MMU)を、命令/データキャッシュと統合する。
【0018】
CODECインターフェース109は、音声ソースおよび/またはモデムが集積プロセッサ回路101に接続するためのインターフェースを提供する。パラレルインターフェース110は、パラレル入力/出力(I/O)デバイス(例えば、ZIPドライブ、プリンタ等)が集積プロセッサ回路101に接続することを可能にする。シリアルインターフェース111は、シリアルI/Oデバイス(例えば、ユニバーサル非同期型レシーバトランスミッタ(UART))を集積プロセッサ回路101に接続するためのインターフェースを提供する。入力デバイスインターフェース112は、入力デバイス(例えば、キーボード、マウスおよびタッチパッド)を集積プロセッサ回路101と接続するためのインターフェースを提供する。
【0019】
DMAコントローラ108は、RAM104中に格納されているデータにメモリインターフェース106を介してアクセスし、そのデータを、CODECインターフェース109、パラレルインターフェース110、シリアルインターフェース111または入力デバイスインターフェース112に接続された周辺デバイスに提供する。グラフィックス/表示コントローラ107は、RAM104からの映像/グラフィックスデータにメモリインターフェース106を介してリクエストおよびアクセスする。次いで、グラフィックス/表示コントローラ107は、データを処理し、処理したデータをフォーマット化し、フォーマット化されたデータを、表示デバイス(例えば、液晶ディスプレイ(LCD)、陰極線管(CRT)またはテレビ(TV)モニタ)に送る。コンピュータシステム100において、1つのメモリバスを用いて、集積プロセッサ回路101をROM103およびRAM104に接続する。
【0020】
好適な実施形態において、本発明は、グラフィックス/表示コントローラ107の一部としてインプリメントされる。より厳密には、本発明は、グラフィックス/ディスプレイコントローラ107の構成要素であるマスターモードモジュール211の内部でインプリメントされる。ここで図2を参照して、図2は、グラフィックス/表示コントローラ107をより詳細に示したものである。グラフィックス/表示コントローラ107は一般的には、CPUインターフェースユニット(CIF)201と、フレームバッファ202と、位相ロックループ(PLL)回路203と、発振器204と、パワーマネージメントユニット(PMU)205と、グラフィックスエンジン(GE)206と、メモリインターフェースユニット(MIU)207と、表示コントローラ208と、フラットパネルインターフェース(FPI)209と、CRTデジタル/アナログ変換器(DAC)210と、マスターモードモジュール211とを含む。CIF201は、処理ユニット105およびDMAコントローラ108に対するインターフェースを提供する。そのため、CIF201は、処理ユニット105から受け取ったリクエストおよびデータを所望の宛先に経路設定する。特に、CIF201は、ホストCPU処理ユニット105およびDMAコントローラ108からのレジスタ読出し/書込みリクエストおよびメモリ読出し/書込みリクエストを、グラフィックス/表示コントローラ107内の適切なモジュールに送る。例えば、メモリ読出し/書込みリクエストはMIU207へと送られ、次いで、MIU207は、フレームバッファ202へのデータの読出し/書込みの出入力を行う。CIF201はまた、DMAコントローラ108への連絡(liaison)としても機能し、システムメモリ(ROM103およびRAM104)からのデータをフェッチし、そのデータをGE206およびMIU207に提供する。さらに、CIF201は、処理ユニット105内のホストCPUによってプログラム可能な電力モードレジスタPMCSRも有し、これにより、グラフィックス/表示コントローラ107の電力状態を制御する。
【0021】
フレームバッファ202は、表示画像を格納するために用いられ、また、様々な目的のための一時バッファとして機能するためにも用いられる。発振器204は、基準クロック信号をPLL回路203に提供し、次いで、PLL回路203は、グラフィックス/表示コントローラ107中の異なるモジュール用に、3つのプログラム可能な位相ロックループクロック信号PLL1、PLL2およびPLL3を生成する。より詳細には、クロック信号PLL1はGE206およびMIU207用に用いられ、クロック信号PLL2およびPLL3は、GE206、表示コントローラ208、およびFPI209用に用いられる。PMU205は、CIF201中のPMCSRレジスタと外部信号PDWN#とをモニタリングして、所望の電力状態を判定する。次いで、PMU205は、異なるモジュールをイネーブルまたはディセーブルし、特定の電力状態について、様々なモジュールに必要なパワーオンおよびパワーオフの順序付けを行う。GE206は、ホストCPUによって発行されたコマンドに基づいて、フレームバッファ202内に格納されるグラフィックス画像データを処理する。本発明によって、マスターモードモジュール211は、GE206が、ホストCPUによって発生される行列に並べられたコマンドへの高速アクセスを有することを可能にする。
【0022】
MIU207は、フレームバッファ202から出入力される読出しトランザクションおよび書込みトランザクション全てを制御する。このような読出しリクエストおよび書込みリクエストは、ホストCPU、GE206、表示コントローラ208、FPI209等から、送られ得る。表示コントローラ208は、MIU207を介してフレームバッファ202から画像データを取り出し、その画像データを画素としてシリアル化し、その後、そのデータをFPI209またはCRT DAC210に出力する。従って、表示コントローラ208は、必要な水平方向の表示タイミング信号および垂直方向の表示タイミング信号を生成する。関連の表示デバイスがLCDである場合、表示コントローラ208からの画素データはFPI209へと送られ、その後、LCDへと送られる。さらに、FPI209は、異なる色相またはグレーシェードを表示用に追加することにより、データを処理する。さらに、薄膜トランジスタ(TFT)LCD(アクティブマトリクスLCDともいう)またはスーパーツイスト型ネマチック(STN)LCD(パッシブマトリクスLCDともいう)のいずれが用いられるかに応じて、FPI209は、データを表示形式に適するようにフォーマット化する。さらに、モノクロのLCDが用いられる場合、FPI209は、カラーデータのモノクロデータへの変換を可能にする。逆に言えば、表示デバイスが陰極線管(CRT)である場合、画素データは、CRTへと送られる前に、CRTデジタル/アナログ変換器(DAC)210に提供される。CRT DAC210は、表示コントローラ208からのデジタル画素データを、CRTモニタ上への表示用として、アナログ赤緑青(RGB)信号に変換する。
【0023】
次に、本発明によるデータ構造の異なる実施形態を示す、図3A〜3Dを参照する。図3Aに、データ構造が複数のデータワードがすぐ次に(すなわち、連続的に)来るヘッダからなる、本発明によるデータ構造を示す。好適な実施形態において、各ヘッダおよび各データワードは、32ビットの長さである。各データ構造の中のデータワードは、コマンド、または、コマンドに関連するデータのいずれかである。コマンドおよび関連するデータは、1つの連続するデータ構造に格納される。コマンドが、複数のデータワード(例えば、3つのデータワード)を伴い得ることが理解される。コマンドに関連するデータが、1ワードであってもよいし、1メガバイトであってもよいことが理解される。図3Aに示すように、各ヘッダ(32ヘッダを有する)が、少なくともカウント(COUNT)フィールドおよびインデックス(INDEX)フィールドを含む。カウントフィールドは、データ構造の中の構造ヘッダの次に来るデータワードの数を示す。インデックスフィールドは、データ構造が、コマンドまたはデータを伴うかどうかを示す。好適な実施形態において、インデックスフィールドは、データワードが格納される、目的のFIFO内部マスターモードモジュール211のインデックスを提供する。コマンドおよびデータが、別個のFIFOバッファ(例えば、コマンドFIFOバッファおよびソースFIFOバッファ)に格納されるので、目的のインデックスフィールドを調査することによって、コマンドまたはデータを伴うかどうかが判定され得る。好適な実施形態において、先入れ先出し(FIFO)バッファがデータ構造のデータワードを格納するために用いられるので、データ構造の中の第1のデータワードは、その中の第1のデータであり、データ構造の中の最終のデータワードが、その中の最終のデータである。
【0024】
各ヘッダは、さらに、データ構造のデータワードが、ヘッダの位置に連続するシステムメモリの位置、ヘッダの位置に連続しないシステムメモリにおける位置、異なるソースデータバッファ、または異なる位置の組合せ(例えば、連続しない位置、および異なるソースデータバッファ)のいずれかに格納されるかどうかを示すリンクフィールドを含み得る。同様に、データ構造が、CSBUFにおける連続する位置、CSBUFにおける連続しない位置、または、異なるソースデータバッファに格納され得るので、コマンド行列に、さらなるフレキシビリティが提供される。1つの実施形態において、ソースデータバッファは、システムメモリの一部であり得る。好適な実施形態において、リンクフィールドは、2ビットフィールド(LINKCおよびLINKSビットのフィールド)である。このフィールドにおいて、値「00」は、検討中のデータ構造の中のデータワードがCSBUFにおけるヘッダのすぐ次に(すなわち、連続的に)来ること示し、値「10」は、データ構造の中のデータワードが、CSBUFにおける連続しない位置に格納されることを示し、値「01」は、データ構造の中のデータワードが、別個のソースデータバッファに格納されることを示し、値「11」は、データワードが、CSBUFにおける連続する位置と連続しない位置の組合せと、分散化された単数または複数のデータバッファとに格納されることを示す。
【0025】
検討中のデータ構造のデータワードが、連続しない位置に格納される場合、次のCSBUFポインタは、データワードの次のセットが格納されるメモリ位置を指すように提供される。このような次のCSBUFポインタは、データ構造の中の所定の位置に配置され得る。例えば、好適な実施形態において、CSBUFポインタは、ヘッダのすぐ次に来るメモリ位置にある。そうすることによって、マスターモードモジュール211は、次のデータ構造をシステムメモリ内に配置し得る。同様に、検討中のデータ構造のデータワードが、システムメモリにおける別個のソースデータバッファに格納される場合、ソースデータポインタは、ソースデータバッファを指すように提供される。このようなソースデータポイントは、データ構造の中の所定の位置に位置し得る。例えば、好適な実施形態において、データポインタは、ヘッダのすぐ次に来るメモリ位置にある。さらに、各ヘッダは、飛ばされるGEレジスタを示すために用いられるSG0およびSG1フィールドを含み得る。
【0026】
図3Bに、次のCSBUFポインタが次に来るヘッダからなる、本発明によるデータ構造を示す。示すように、次のCSBUFポインタは、検討中のデータ構造のヘッダに関連するデータワードが格納されているCSBUFにおける連続しない位置へのリンクを提供する。これらのデータワードに関連するヘッダも、この位置で提供されることが理解される。図3Cに、ソースデータポインタが次に来るヘッダからなる、本発明によるデータ構造を示す。示すように、ソースデータポインタは、検討中のデータ構造のヘッダに関連するデータワードが格納されているソースデータバッファへのリンクを提供する。図3Dに、連続するCSBUF位置および連続しないCSBUF位置の両方、ならびに分散化ソースデータバッファに格納される、本発明によるデータ構造(すなわち、図3A〜3Cのデータ構造の組合せ)を示す。より具体的には、図3Dに示すデータ構造は、図3Aの位置のような連続する位置、図3Bに示すポインタのようなソースデータポインタが格納されているCSBUFの連続しない位置を指す次のCSBUFポインタ、および図3Cに示すように別のソースデータバッファを指す他の次のCSBUFポインタが格納されているCSBUFの他の連続しない位置を指す次のCSBUFポインタにデータワードを含み得る。そうすることによって、ソースデータバッファと組み合わされたCSBUFバッファのリンクされたリストが、可能になるので、行列するコマンドに、さらなるフレキシビリティが提供される。
【0027】
従って、本発明によると、処理ユニット105からのホストCPUがGE206によって実行されるコマンドを発生する場合、ホストCPUは、コマンドおよび関連するデータを、対応する上記のデータ構造にフォーマットする必要がある。このようなフォーマット化は、例えば、ROM103に格納されている一連のインプリメントされた工程を実行することによって、行われ得る。このようなインプリメントされた工程は、当業者にとって、明らかである。各データ構造用にヘッダ情報を生成するために、ホストCPUは、各データ構造の中のデータワードの数をモニタリングして、データ構造ヘッダにおけるカウントフィールドを生成する必要がある。また、ホストCPUは、次に来る項目が、データ構造ヘッダにおける適切なインデックスフィールドを生成するコマンドまたはデータであるかどうかを判定する必要がある。ホストCPUは、さらに、データ構造が、システムメモリの連続する位置に格納されて、データ構造ヘッダにおけるリンク(LINK)フィールドをアサートするかどうかを判定する必要がある。さらに、ホストCPUは、SG0およびSG1のようなヘッダにおけるさらなるフィールドを生成するための必要に応じて、他の変数をモニタリングする必要を有し得る。
【0028】
さらに、マスターモードモジュールが、任意の所与の時刻に、システムメモリにその時点で格納されているデータ構造の数をモニタリングするために必要とされる。参照のために、このようなカウントは、以下で、CCOUNTと呼ばれる。データ構造カウントCCOUNTは、マスターモードモジュール211を起動して、コマンドおよび/またはコマンドに関連するデータを処理のためにGE206に提供するベきかどうかの決定に役立つ。オーバーフローを避け、データの損失を避けるため、ホストCPUは、さらに、全てのデータ構造が、現在システムメモリにおいてとられているデータワードの全体数をモニタリングすることが必要とされる。システムメモリにおけるデータ構造によって取られているデータワードの全体数は、以下、BCOUNTと呼ばれる。BCOUNTと、マスターモード動作に割り当てられた(CSBUFサイズと指定されている)システムメモリの量とを互いに比較することによって、オーバーフロー状態が検出され得る。この情報は、マスターモードモジュール211の構成要素に提供される。
【0029】
次に、本発明を実現するマスターモードモジュール211をより詳細に示す図4を参照する。図4に示すように、マスターモードモジュール211は、データマネージャ(DM)401、コマンドパーサー(CP)402、コマンドFIFOバッファ403、およびソースFIFOバッファ404を含む。概して、DM401は、RAM104におけるCSBUFから、CIF201を介して、図3に示したデータ構造をフェッチする。上述したように、CSBUFは、好適には、システムメモリの一部としてインプリメントされる。この実施形態において、CSBUFの容量(すなわち、CSBUFサイズ)は、4k×32ビット〜512k×32ビットの範囲であり得る。その後、DM301は、ヘッダ情報をパーズし、解釈して、データ構造に関連する情報、例えば、伴われるデータワードの数、データ構造タイプ(すなわち、コマンドまたはデータを伴うかどうか)、リンクフィールドがイネーブルされているかどうかなどを判定するCP402に通過させる。その後、CP402は、解釈された情報を提供し、LDCMD信号をDM401に生成する。解釈された情報に基づいて、DM401は、データワードを、データ構造から、コマンドFIFOバッファ403またはソースFIFOバッファ404のいずれかにローディングする。このようなローディングが、LDCMD信号の起動において行われる。
【0030】
好適な実施形態において、コマンドFIFOバッファ403およびソースFIFOバッファ404は、両方とも、40ビットの幅であり、16ビットの深さである。したがって、32ビット幅のコマンドおよびデータが、コマンドFIFOバッファ403にローディングされる場合、余分の8ビットが、コマンドまたはデータの各32ビットに追加される。加えられた8ビットは、対応する構造ヘッダからのインデックスフィールドを表す。そうすることによって、GE206が連続して情報を受け取る場合、インデックスフィールド(すなわち、宛先メモリアドレス)を用いて、コマンドまたはデータを伴うかどうかを判定し得る。
【0031】
名前が示すように、コマンドFIFOバッファ403は、GE206によって実行されるコマンドを格納するために用いられる。他方、ソースFIFOバッファ404は、コマンドに関連するデータを格納するために用いられる。すなわち、コマンドおよび関連するデータは、別のFIFOバッファに格納される。また、DM401は、コマンドFIFOバッファ403およびソースFIFOバッファ404と、制御/状態情報を交換する。例えば、DM401は、コマンドFIFOバッファ403またはソースFIFOバッファ404を選択的にイネーブルまたはディセーブルする信号を生成する。コマンドFIFOバッファ403およびソースFIFOバッファ404は、現在格納されているデータワードの数をモニタリングして、この情報がDM401にとって利用可能になるようにし得る。GE206からのイネーブル信号に応答して、コマンドFIFOバッファ403およびソースFIFOバッファ404が、その中に含むものを出力する。同様に、GE206も、コマンドFIFOバッファ403およびソースFIFOバッファ404と、制御/状態情報を交換する。例えば、GE206は、コマンドFIFOバッファ403およびソースFIFOバッファ404の内部に格納されたデータワードの数を判定する状態信号を送信し得る。緊急の場合においては、CP402は、コマンドFIFOバッファ403およびソースFIFOバッファ404の動作を停止する中止信号を生成し得る。
【0032】
図5は、CP402によって行われる、関連する工程/状態のフローチャートである。好適な実施形態において、図5の工程/状態は、状態機器の一部としてインプリメントされる。工程505は、アイドル状態を表し、ここで、CP402が、状態信号GEEN、MMEN、およびCCOUNTをモニタリングして、それぞれ、GE206がアクティブであるかどうか、マスターモードモジュール211がイネーブルされたかどうか、システムメモリに現在格納されているデータ構造があるかどうかを判定する。GE206がアクティブであり、マスターモードモジュール211がイネーブルされ、システムメモリに現在格納されている少なくとも1つのGEコマンドがある場合、CP402は、CMDREQ信号をアサートし、送信して、DM401をトリガして、システムメモリからデータ構造をフェッチする(工程510)。そうでない場合には、CP402は、状態信号GEEN、MMEN、およびCCOUNTのモニタリングを継続する。その後、CP402は、CMDRDY信号がアサートされるのを待つ(工程515)。アサートされる場合、CMDRDY信号は、DM401が、データ構造をフェッチし、データ構造ヘッダをCP402に転送したことを示す。CMDRDY信号がアサートされなかった場合、CP402は、工程510で待ち続ける。CMDRDY信号がアサートされる後、CP402は、構造ヘッダをパーズし、解釈する(工程520)。これは、カウント、インデックス、リンク、SG0およびSG1のようなヘッダフィールドが、切り離され、DM401に提供されることを意味する(工程525)。工程530において、CP402は、LDCMD信号を、アサートし、DM401に送信する。アサートされる場合、LDCMD信号は、解釈された情報が、そのレジスタにローディングされるために利用可能であることをDM401に示す。
【0033】
その後、CP402は、モニタリングして、コマンド/データが、何らかの理由で停止されたかどうかを判定する(工程535)。そうである場合、CP402は内部カウンタおよびレジスタをリセットし(工程550)、コマンドFIFOバッファ403およびソースFIFOバッファ404に中止信号を生成する。そうでない場合には、CP402は、DM401が、それぞれ、データ構造から、コマンドFIFOバッファ403またはソースFIFOバッファ404に、単数または複数のコマンドまたはデータのローディングを終了するまで待つ(工程540)。データ変換の完了において、CP401は、システムメモリに格納されているデータ構造が1つ少なくなるようにデータ構造カウントCCOUNTをデクリメントし、工程505に戻る。
【0034】
次に、DM401を詳細に示す図6を参照する。図6に示すように、DM401は、DMレジスタ601、DM状態機器602、DM状態機器603、およびDM FIFOバッファ604を含む。概して、DM401は、システムメモリにおけるCSBUFに格納されるデータ構造をフェッチする役割を果たす。この実施形態において、プロセッサによって提供されるDMA変換モードは、データ構造のフェッチに用いられる。しかし、他のデータ転送モード(例えば、PCIバスマスターモード)が、同様に採用され得ることが理解される。CP402が、CSBUFにおいて格納されるデータ構造をリクエストするCMDREQ信号をアサートする場合、DM状態機器602は、CSBUFからのコマンドを有するデータ構造をフェッチすることによって応答する。DM状態機器602は、データ構造のヘッダを、CP402に送信し、データ構造の残り(すなわち、データワード)をDM FIFOバッファ604に送信する。上述したように、CP402は、ヘッダの情報フィールドを分離させ、DMレジスタ601に格納するためにDM401に送信して戻す。DMレジスタ601に格納される情報フィールドは、以下に記載するように、制御のために、CCOUNT、BCOUNT、およびICOUNTのような様々なカウンタを更新する必要に応じて、DM状態機器602および603によってアクセスされる。DM状態機器 2 603は、概して、DM FIFO604に格納される情報を、情報が単数または複数のコマンド、あるいはコマンドに関連するデータをそれぞれ含むかどうかに依存して、コマンドFIFOバッファ403またはソースFIFOバッファ404のいずれかに転送する役割を果たす。
【0035】
図7は、DM状態機器602における関連工程/状態を示すフローチャートである。工程705において、DM状態機器602は、モニタリングして、CP402からのCMDREQ信号がアサートされたかどうかを判定する。上述したように、CMDREQ信号がアサートされる場合、CP402が、システムメモリにおけるCSBUFから、データ構造を取り出すリクエストをDM401に生成することを示す。CMDREQ信号が、アサートされない場合、DM状態機器602は、CMDREQ信号のモニタリングを継続し、工程705に留まる。そうでない場合には、DM状態機器602は、DREQ信号をDMAコントローラ108に生成して、CSBUFからのデータ構造のフェッチを開始する(工程710)。上述したように、DMA転送モードは、この実施形態において、データ構造のフェッチに用いられる。その後、DM状態機器602は、データ構造の到着を待つ(工程715)。データ構造が到着する場合、DM状態機器602は、データ構造のヘッダ部分を、CP402に転送し、そのことを示すように、CMDRDY信号をアサートする(工程720)。その後、DM状態機器602は、LDCMD信号をモニタリングして、コマンドが、コマンドパーサー402によってパーズされた(アクティブ)かどうか判定する(工程725)。上述したように、アサートされる場合、LDMCD信号は、パーズヘッダフィールドが、DMレジスタ601にローディングされるために利用可能であるかどうかを示す。さらに、LDMCD信号がアサートされる場合、DM状態機器602は、データワードカウントDCOUNTを値(カウント−1)に設定し、インデックスカウントICOUNTをインデックスフィールドの値に設定する。データワードカウントDCOUNTは、CSBUFからフェッチされるデータワードの数を判定し、また、データ構造の中のデータワードの全てがフェッチされたかどうかを判定するために用いられる。インデックスカウントICOUNTは、コマンドFIFO403またはソースFIFO404のいずれかを指す。コマンドFIFO403の場合、ICOUNTは、データ転送が終わるたび、1ずつデクリメントされる。ソースFIFO404の場合、ICOUNTは、変化しない。
【0036】
従って、LDCMD信号がアサートされる場合、ヘッダフィールドは、所定のDMレジスタ601にローディングされる(工程730)。工程735において、DM状態機器602は、ヘッダフィールドを検査して、以下の状態のうちのいずれかが発生しているかどうかを判定する。1)インデックスフィールドが、任意の予約の位置を指す状態(工程740)、2)コマンドFIFOバッファ403またはソースFIFOバッファ404の格納場所がなくなっている状態(工程745)、および3)現在のデータ構造からのデータワードがもはやない状態(工程750)である。
【0037】
インデックスフィールドが予約された位置を指す場合、これは、データ構造の中のデータワードが予約されたメモリ位置に送信されることになっていることを意味するので、エラー状態である(工程740)。この場合、DM状態機器602は、中止信号をアサートする(工程770)。その後、DM状態機器602は、DM状態機器603に、データ転送動作を停止するように知らせるために用いられるDTACTIVE信号をディアクティブにする(工程775)。上述したように、カウントICOUNTは、コマンドFIFOバッファ403が利用可能な格納場所を表す。カウントICOUNTがゼロ(0)に達する場合、コマンドFIFOバッファ403の中に利用可能な格納場所がもはやないことを示す(工程745)。この場合、DM状態機器602は、バッファ終端(EOB)信号をアサートし(工程780)、DTACTIVE信号をディアティブにする(工程775)。上述したように、カウントDCOUNTは、現在のデータ構造のデータワードの数を表す。カウントDCOUNTが、ゼロ(0)に達する場合、フェッチされる現在のデータ構造にもはやデータワードがないことを示す。この場合、DM状態機器602は、コマンド終端(EOC)信号をアサートし(工程750)、DTACTIVE信号をディアクティブにする(工程785)。工程785の後、DM状態機器602は、工程705に戻る。
【0038】
エラー状態がなく、利用可能な格納場所が依然としてあり、フェッチされるデータワードがある場合、DM状態機器602は、ヘッダフィールドインデックスによって示される目的の位置に依存して、コマンドFIFOバッファ403またはソースFIFOバッファ404のいずれかへDM FIFO604内のデータワードの転送を開始する必要があることをDM状態機器603に示すように、DTACTIVE信号をアサートする(工程755)。次に、DM状態機器602は、DM FIFOバッファ604に、データ構造からの「新たな」データワードをローディングして、DM FIFOバッファ604に格納されていた「古い」データワードをコマンドFIFOバッファ403またはソースFIFOバッファ404のいずれかに送信するというタスクを行う(工程760)。システムメモリにおけるCSBUFから、DM FIFOバッファ604にデータワードがフェッチされる場合、DM状態機器602は、カウントDCOUNTをデクリメントする。さらに、データワードが、CSBUFからDM FIFOバッファ604にフェッチされるたびに、DM状態機器602は、システムメモリにおけるデータ構造によって取られるデータワードの総数を表すカウントBCOUNTをデクリメントする。
【0039】
図8は、DM状態機器603における関連の工程/状態を示すフローチャートである。工程805において、DM状態機器603は、DTACTIVE信号をモニタリングして、アサートされるかどうか判定する。DTACTIVE信号がアサートされない場合、DM状態機器は、モニタリングを継続する。そうでない場合には、DM状態機器603は、DM FIFOバッファ604に読み出しリクエストを生成する(工程810)。次に、DM状態機器603は、DM FIFOバッファ604が空であるかどうかを判定する(工程815)。DM FIFOバッファ604が、空であることを示す場合、DM状態機器603は、データ転送を停止するエラー信号を生成する(工程820)。DM FIFOバッファ604が空でない場合、次に、DM状態機器603は、コマンドまたはデータを伴うかどうかを、(インデックスフィールドから)判定する(工程825)。コマンドが伴われる場合、DM状態機器603は、イネーブル信号をコマンドFIFOバッファ403に送信する(工程830)。他方、データが伴われる場合、DM状態機器603は、イネーブル信号を、ソースFIFOバッファ404に送信する(工程835)。コマンドFIFOバッファ403またはソースFIFOバッファ404がイネーブルされるかどうか、DM状態機器603の次の工程は、DM FIFOバッファ604から適切なFIFOバッファ(コマンドFIFOバッファ403またはソースFIFOバッファ404)にデータワードが転送されることを確実にする、モニタリングを含む(工程840)。その後、データがコマンドFIFO403に転送される場合、DM状態機器603は、カウントICOUNTをデクリメントする(工程845)。
【0040】
本発明の実施形態、過剰なホストプロセッサオーバーヘッドを必要とすることなしに、大容量および高速アクセスコマンド行列を可能にするシステム、装置および方法について説明した。本発明を特定の実施形態について説明してきたが、本発明は、このような実施形態に限定されるものではなく、本明細書の特許請求の範囲に従って解釈されるべきである。
【図面の簡単な説明】
【図1】 図1は、本発明をインプリメントする代表的なコンピュータシステムを示す高レベルブロック図である。
【図2】 図2は、図1に示すグラフィックス/表示コントローラ107をより詳細に示すブロック図である。
【図3A】 図3Aは、本発明による、複数のデータワードがすぐ次に(すなわち、連続的に)来るヘッダからなるデータ構造を示す図である。
【図3B】 図3Bは、本発明による、次のCSBUFポインタが次に来るヘッダからなるデータ構造を示す図である。
【図3C】 図3Cは、本発明による、ソースデータポインタが次に来るヘッダからなるデータ構造を示す図である。
【図3D】 図3Dは、本発明による、連続するCSBUF位置および非連続CSBUF位置の両方、ならびに分散型ソースデータバッファに格納される、概略的なデータ構造を示す図である。
【図4】 図4は、図2に示すマスターモードモジュール211をより詳細に示すブロック図である。
【図5】 図5は、本発明による、コマンドパーサー302によって行われる関連の工程/状態を示すフローチャートである。
【図6】 図6は、図3に示すデータマネージャ301をより詳細に示すブロック図である。
【図7】 図7は、図6に示すDM状態マシン1(602)によって行われる関連の工程/状態を示すフローチャートである。
【図8】 図8は、図6に示すDM状態マシン2(603)によって行われる関連の工程/状態を示すフローチャートである。

Claims (19)

  1. プロセッサによって実行されるコマンドを待ち行列に並べる装置であって、
    データ構造を格納する第1のメモリであって、各データ構造はヘッダと少なくとも1つのデータワードとを含み、該ヘッダが、該データ構造の中のデータワードの数を示す情報と、次に来るデータワードがコマンドを表すかコマンドに関連するデータを表すかを示す情報とを含む、第1のメモリと、
    該第1のメモリに接続されたデータマネージャであって、該第1のメモリからデータ構造を取り出すデータマネージャと、
    該データマネージャに接続されたコマンドパーサーであって、該データマネージャによって取り出された該データ構造に関連するヘッダを受け取り、該ヘッダ内の情報をパーシングし、パーシングされた情報を該データマネージャに提供するコマンドパーサーと、
    該データマネージャ、該コマンドパーサー、および該プロセッサに接続された第2のメモリであって、該データマネージャによって取り出された該データ構造の中のデータワードがコマンドを表す場合、該データマネージャが、格納および/または待ち行列に並べるために該コマンドを該第2のメモリに送信する、第2のメモリと、
    該データマネージャ、該コマンドパーサー、および該プロセッサに接続された第3のメモリであって、該データマネージャによって取り出された該データ構造の中のデータワードがコマンドに関連するデータを表す場合、該データマネージャが、格納および/または待ち行列に並べるために該データを該第3のメモリに送信する、第3のメモリと
    を備える、装置。
  2. 前記ヘッダは、前記少なくとも1つのデータワードが該ヘッダに連続するメモリ位置に格納されているかどうかを示す情報をさらに含む、請求項1に記載の装置。
  3. 前記少なくとも1つのデータワードが前記ヘッダに連続するメモリ位置に格納されていないことを前記情報が示す場合、該少なくとも1つのデータワードは、該少なくとも1つのデータワードが格納されている前記第1のメモリ内のメモリ位置を指すリンクポインタをさらに含む、請求項2に記載の装置。
  4. 前記少なくとも1つのデータワードが前記ヘッダに連続するメモリ位置に格納されていないことを前記情報が示す場合、該少なくとも1つのデータワードは、該少なくとも1つのデータワードが格納されており前記第1〜第3のメモリと異なるソースデータバッファを指すリンクポインタをさらに含む、請求項2に記載の装置。
  5. 前記データマネージャが、
    FIFOバッファと、
    該FIFOバッファに接続された複数のレジスタであって、前記コマンドパーサーから受け取るパーシングされたヘッダ情報を格納する複数のレジスタと、
    該FIFOバッファおよび該複数のレジスタに接続された第1の状態機器であって、該複数のレジスタの中のパーシングされたヘッダ情報を用いて、該FIFOバッファに格納するため、前記第1のメモリから前記データ構造の中のデータワードをフェッチする第1の状態機器と、
    該第1の状態機器、該複数のレジスタ、および該FIFOバッファに接続された第2の状態機器であって、該第1の状態機器からの制御信号に応答して、該データワードを前記プロセッサに転送する第2の状態機器と、
    を備える、請求項3に記載の装置。
  6. 前記第1のメモリが、前記装置の外部にある、請求項5に記載の装置。
  7. 前記第2のメモリおよび前記第3のメモリが、FIFOバッファである、請求項6に記載の装置。
  8. 中央処理ユニット(CPU)と、
    該CPUに接続され、データ構造を格納するシステムメモリであって、各データ構造は、ヘッダと少なくとも1つのデータワードとを含み、該ヘッダが、該データ構造の中のデータワードの数を示す情報と、次に来るデータワードがコマンドを表すかコマンドに関連するデータを表すかを示す情報とを含む、システムメモリと、
    該CPUおよび該システムメモリに接続されたグラフィックスコントローラと
    を備えるシステムであって、
    該グラフィックスコントローラが、
    グラフィックスエンジンと、
    該グラフィックスエンジンに接続されたマスターモードモジュールと
    を備え、
    該マスターモードモジュールが、
    該システムメモリに接続されたデータマネージャであって、該システムメモリからデータ構造を取り出すデータマネージャと、
    該データマネージャに接続されたコマンドパーサーであって、該データマネージャによって取り出された該データ構造に関連するヘッダを受け取り、該ヘッダ内の情報をパーシングし、パーシングされた情報を該データマネージャに提供するコマンドパーサーと、
    該データマネージャ、該コマンドパーサー、および該プロセッサに接続された第1のメモリであって、該データマネージャによって取り出された該データ構造の中のデータワードがコマンドを表す場合、該データマネージャが、格納および/または待ち行列に並べるために該コマンドを該第1のメモリに送信する、第1のメモリと、
    該データマネージャ、該コマンドパーサー、および該プロセッサに接続された第2のメモリであって、該データマネージャによって取り出された該データ構造の中の該データワードがコマンドに関連するデータを表す場合、該データマネージャが、格納および/または待ち行列に並べるために該データを該第2のメモリに送信する、第2のメモリと
    を備え、
    該グラフィックスエンジンが、処理するため、該第1のメモリおよび該第2のメモリから該コマンドおよび該コマンドに関連するデータを取り出す、
    コンピュータシステム。
  9. 前記ヘッダは、前記少なくとも1つのデータワードが該ヘッダに連続するメモリ位置に格納されているかどうかを示す情報をさらに含む、請求項8に記載のコンピュータシステム。
  10. 前記少なくとも1つのデータワードが前記ヘッダに連続するメモリ位置に格納されていないことを前記情報が示す場合、前記少なくとも1つのデータワードは、該少なくとも1つのデータワードが格納されている前記第1のメモリ内のメモリ位置を指すリンクポインタをさらに含む、請求項9に記載のコンピュータシステム。
  11. 前記少なくとも1つのデータワードが前記ヘッダに連続するメモリ位置に格納されていないことを前記情報が示す場合、前記少なくとも1つのデータワードは、該少なくとも1つのデータワードが格納されており前記システムメモリ並びに前記第1及び第2のメモリと異なるソースデータバッファを指すリンクポインタをさらに含む、請求項9に記載のコンピュータシステム。
  12. 前記データマネージャが、
    FIFOバッファと、
    該FIFOバッファに接続された複数のレジスタであって、前記コマンドパーサーから受け取るパーシングされたヘッダ情報を格納する複数のレジスタと、
    該FIFOバッファおよび該複数のレジスタに接続された第1の状態機器であって、該複数のレジスタの中のパーシングされたヘッダ情報を用いて、該FIFOバッファに格納するために、前記システムメモリから前記データ構造の中のデータワードをフェッチする第1の状態機器と、
    該第1の状態機器、該複数のレジスタ、および該FIFOバッファに接続された第2の状態機器であって、該第1の状態機器からの制御信号に応答して、該データワードを前記グラフィックスエンジンに転送する第2の状態機器と、
    を備える、請求項10に記載のコンピュータシステム。
  13. 前記第1のメモリおよび前記第2のメモリが、FIFOバッファである、請求項12に記載の装置。
  14. 処理のためのコマンドおよび関連するデータを待ち行列に並べる方法であって、
    データ構造を第1のメモリが格納する工程であって、各データ構造は、ヘッダと次に来る少なくとも1つのデータワードとを含み、該ヘッダが、該データ構造の中のデータワードの数を示す情報と、次に来るデータワードがコマンドを表すかコマンドに関連するデータを表すかを示す情報とを含む、工程と、
    前記第1のメモリに接続されたデータマネ−ジャが、データ構造をフェッチする工程と、
    前記データマネ−ジャに接続されるコマンドパーサーが、フェッチされた該データ構造の該ヘッダ内の情報をパーシングし、分離する工程と、
    分離された該ヘッダ情報から、該データ構造の中のデータワードがコマンドを表すかコマンドに関連するデータを表すかを前記データマネージャが判定する工程と、
    該データ構造の中のデータワードがコマンドを表す場合、格納および/または待ち行列に並べるために該コマンドを第2のメモリに前記データマネージャが送信する工程と、
    該データ構造の中のデータワードがコマンドに関連するデータを表す場合、格納および/または待ち行列に並べるために該データを第3のメモリに前記データマネージャが送信する工程と、
    を包含する、方法。
  15. 前記ヘッダは、前記少なくとも1つのデータワードが該ヘッダに連続するメモリ位置に格納されているかどうかを示す情報をさらに含む、請求項14に記載の方法。
  16. 前記少なくとも1つのデータワードが前記ヘッダに連続するメモリ位置に格納されていないことを前記情報が示す場合、該少なくとも1つのデータワードは、該少なくとも1つのデータワードが格納されている前記第1のメモリ内のメモリ位置を指すリンクポインタをさらに含む、請求項15に記載の方法。
  17. 前記少なくとも1つのデータワードが前記ヘッダに連続するメモリ位置に格納されていないことを前記情報が示す場合、該少なくとも1つのデータワードは、該少なくとも1つのデータワードが格納されており前記第1〜第3のメモリと異なるソースデータバッファを指すリンクポインタをさらに含む、請求項15に記載の方法。
  18. 前記第1のメモリが、システムメモリである、請求項16に記載の方法。
  19. 前記第2のメモリに格納されたコマンド、および前記第3のメモリに格納されたコマンドに関連するデータを、処理のためにプロセッサに提供する工程をさらに包含する、請求項18に記載の方法。
JP2000614115A 1999-04-26 2000-04-24 グラフィックスエンジンマスターモード動作の改良 Expired - Lifetime JP4798849B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/300,084 1999-04-26
US09/300,084 US6323867B1 (en) 1999-04-26 1999-04-26 Parsing graphics data structure into command and data queues
PCT/US2000/011107 WO2000065436A2 (en) 1999-04-26 2000-04-24 Computer system with graphics engine

Publications (3)

Publication Number Publication Date
JP2002543489A JP2002543489A (ja) 2002-12-17
JP2002543489A5 JP2002543489A5 (ja) 2007-06-21
JP4798849B2 true JP4798849B2 (ja) 2011-10-19

Family

ID=23157639

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000614115A Expired - Lifetime JP4798849B2 (ja) 1999-04-26 2000-04-24 グラフィックスエンジンマスターモード動作の改良

Country Status (4)

Country Link
US (1) US6323867B1 (ja)
JP (1) JP4798849B2 (ja)
TW (1) TW477952B (ja)
WO (1) WO2000065436A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW556144B (en) * 2000-03-30 2003-10-01 Seiko Epson Corp Display device
US6847366B2 (en) * 2002-03-01 2005-01-25 Hewlett-Packard Development Company, L.P. System and method utilizing multiple processes to render graphical data
US7627585B2 (en) * 2002-12-02 2009-12-01 Sap Ag Data structure mapping and packaging
US6741257B1 (en) * 2003-01-20 2004-05-25 Neomagic Corp. Graphics engine command FIFO for programming multiple registers using a mapping index with register offsets
JP4460867B2 (ja) * 2003-09-26 2010-05-12 東芝ストレージデバイス株式会社 インターフェース装置及びパケット転送方法
US20050143843A1 (en) * 2003-11-25 2005-06-30 Zohar Bogin Command pacing
TWI237771B (en) 2004-03-22 2005-08-11 Via Tech Inc Media player control system and control method used therein
CN100454417C (zh) * 2004-04-16 2009-01-21 威盛电子股份有限公司 媒体播放控制系统及方法
US7916146B1 (en) * 2005-12-02 2011-03-29 Nvidia Corporation Halt context switching method and system
US8427493B2 (en) * 2009-10-13 2013-04-23 Nvidia Corporation Draw commands with built-in begin/end
JP5857735B2 (ja) * 2011-12-27 2016-02-10 株式会社リコー 画像処理方法、画像処理装置、及び制御プログラム
KR101919903B1 (ko) * 2012-09-14 2018-11-19 삼성전자 주식회사 임베디드 멀티미디어 카드, 이를 제어하는 호스트, 및 이들의 동작 방법
KR101932920B1 (ko) * 2012-09-14 2019-03-18 삼성전자 주식회사 비휘발성 메모리 카드를 제어하는 호스트, 이를 포함하는 시스템 및 이의 동작 방법
KR101988260B1 (ko) * 2012-09-14 2019-06-12 삼성전자주식회사 임베디드 멀티미디어 카드, 및 이의 동작 방법
US10235102B2 (en) * 2015-11-01 2019-03-19 Sandisk Technologies Llc Methods, systems and computer readable media for submission queue pointer management
US10372378B1 (en) * 2018-02-15 2019-08-06 Western Digital Technologies, Inc. Replacement data buffer pointers

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02278475A (ja) * 1989-04-20 1990-11-14 Hitachi Ltd 図形処理装置およびその使用方法ならびにマイクロプロセッサ
JPH03142775A (ja) * 1989-10-23 1991-06-18 Internatl Business Mach Corp <Ibm> スタツク制御装置及びスタツク制御方法
JPH0877366A (ja) * 1994-09-02 1996-03-22 Hitachi Ltd 画像処理プロセッサ及びそれを用いたデータ処理システム
JPH09251288A (ja) * 1995-12-19 1997-09-22 Cirrus Logic Inc コンピュータシステム、グラフィックスプロセッサ、インストラクションプリフェッチユニットおよびオペコードインストラクションをプリフェッチする方法
JPH09305789A (ja) * 1996-05-21 1997-11-28 Hitachi Ltd 演算方法およびグラフィックス表示装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8915137D0 (en) * 1989-06-30 1989-08-23 Inmos Ltd Message routing
US5321806A (en) * 1991-08-21 1994-06-14 Digital Equipment Corporation Method and apparatus for transmitting graphics command in a computer graphics system
US5539914A (en) * 1993-06-14 1996-07-23 International Business Machines Corporation Method and system for preprocessing data block headers during access of data in a data storage system
US5931920A (en) 1997-08-05 1999-08-03 Adaptec, Inc. Command interpreter system in an I/O controller
US6075546A (en) * 1997-11-10 2000-06-13 Silicon Grahphics, Inc. Packetized command interface to graphics processor
US6088701A (en) * 1997-11-14 2000-07-11 3Dfx Interactive, Incorporated Command data transport to a graphics processing device from a CPU performing write reordering operations
EP0935189B1 (en) 1998-02-04 2005-09-07 Texas Instruments Incorporated Reconfigurable co-processor with multiple multiply-accumulate units

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02278475A (ja) * 1989-04-20 1990-11-14 Hitachi Ltd 図形処理装置およびその使用方法ならびにマイクロプロセッサ
JPH03142775A (ja) * 1989-10-23 1991-06-18 Internatl Business Mach Corp <Ibm> スタツク制御装置及びスタツク制御方法
JPH0877366A (ja) * 1994-09-02 1996-03-22 Hitachi Ltd 画像処理プロセッサ及びそれを用いたデータ処理システム
US6091863A (en) * 1994-09-02 2000-07-18 Hitachi, Ltd. Image processor and data processing system using the same processor
JPH09251288A (ja) * 1995-12-19 1997-09-22 Cirrus Logic Inc コンピュータシステム、グラフィックスプロセッサ、インストラクションプリフェッチユニットおよびオペコードインストラクションをプリフェッチする方法
EP0780761B1 (en) * 1995-12-19 2001-08-08 Cirrus Logic, Inc. Method and apparatus for instruction prefetching in a graphics processor
JPH09305789A (ja) * 1996-05-21 1997-11-28 Hitachi Ltd 演算方法およびグラフィックス表示装置

Also Published As

Publication number Publication date
WO2000065436A2 (en) 2000-11-02
JP2002543489A (ja) 2002-12-17
WO2000065436A3 (en) 2001-11-15
TW477952B (en) 2002-03-01
US6323867B1 (en) 2001-11-27

Similar Documents

Publication Publication Date Title
JP4798849B2 (ja) グラフィックスエンジンマスターモード動作の改良
JP3431149B2 (ja) 仮想fifoによる周辺装置インタフェースのシステム並びに方法
US5884050A (en) Mechanism for high bandwidth DMA transfers in a PCI environment
JP2575596B2 (ja) バス・ブリッジを介してデータを通信する方法およびデータ処理システム
JP3271125B2 (ja) データを転送する方法と装置及びデータ転送をインタリーブする装置
JP3273202B2 (ja) 複数のデータチャネルを介してデータを転送する方法及びその回路アーキテクチャ
KR19980025110A (ko) 데이타 프로세서 및 그래픽 프로세서
US5682551A (en) System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto
US6108722A (en) Direct memory access apparatus for transferring a block of data having discontinous addresses using an address calculating circuit
JPH04230557A (ja) 直接メモリアクセス・コントローラ
JPH06215117A (ja) ビデオ・データ・フレーム伝送方法および装置
US5948082A (en) Computer system having a data buffering system which includes a main ring buffer comprised of a plurality of sub-ring buffers connected in a ring
US20040117516A1 (en) System controller using plural CPU&#39;s
JPH06103213A (ja) 入出力装置
JPH0827773B2 (ja) データ経路を使用可能にする方法、装置およびデータ処理システム
JP2004503859A (ja) メモリコントローラハブ
US7610451B2 (en) Data transfer mechanism using unidirectional pull bus and push bus
US20230267079A1 (en) Processing apparatus, method and system for executing data processing on a plurality of channels
US7434023B2 (en) Memory device
US9117299B2 (en) Inverse request aggregation
US6141023A (en) Efficient display flip
US8922571B2 (en) Display pipe request aggregation
US6957280B2 (en) Streamlining ATA device initialization
JPH1196072A (ja) メモリアクセス制御回路
US7774513B2 (en) DMA circuit and computer system

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070423

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070423

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100915

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110705

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: 20110802

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

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4798849

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

EXPY Cancellation because of completion of term