JP4372043B2 - コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法 - Google Patents

コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法 Download PDF

Info

Publication number
JP4372043B2
JP4372043B2 JP2005139664A JP2005139664A JP4372043B2 JP 4372043 B2 JP4372043 B2 JP 4372043B2 JP 2005139664 A JP2005139664 A JP 2005139664A JP 2005139664 A JP2005139664 A JP 2005139664A JP 4372043 B2 JP4372043 B2 JP 4372043B2
Authority
JP
Japan
Prior art keywords
command
execution
adjustment
holding
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005139664A
Other languages
English (en)
Other versions
JP2006318176A (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 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 Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2005139664A priority Critical patent/JP4372043B2/ja
Priority to PCT/JP2006/309877 priority patent/WO2006121198A2/en
Priority to US11/432,107 priority patent/US7461240B2/en
Priority to EP20060746575 priority patent/EP1880277B1/en
Publication of JP2006318176A publication Critical patent/JP2006318176A/ja
Application granted granted Critical
Publication of JP4372043B2 publication Critical patent/JP4372043B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Description

本発明は、コマンドの実行を制御するための技術、特に、外部から受信したコマンドの発行順序を制御するための技術、に関する。
近年のコンピュータゲームやデジタル放送などの分野に利用されるコンピュータグラフィックス技術や画像処理技術の著しい進歩に伴い、コンピュータ、ゲーム機器、テレビなどの情報処理装置はより高精細の画像データをより高速に処理する能力を求められている。そのためには、演算処理自体の高速化が必要であることは勿論であるが、複数の処理装置間でタスクを好適に分散することも同様に重要である。
このとき、複数の処理装置間では、互いにタスクの実行を指示するための制御命令(以下、単に「コマンド」とよぶ)が送受され、これにより各処理装置は連係動作する。たとえば、ある処理装置Aは、別の処理装置Bに対してさまざまなコマンドを送信する。処理装置Bは、受信したコマンドを自己の待ち行列にキューイングする。処理装置Bは、待ち行列のコマンドを実行しやすいものから順に実行する。このような、いわゆるコマンドキューイング(Command Queuing)とアウトオブオーダー実行(Out of Order Execution)は、処理装置Aと処理装置Bを非同期的に動作させ、複数の処理装置による全体としての処理効率を高める上で有効な手法として広く採用されている。
上記したようなコマンドキューイングおよびアウトオブオーダー実行によれば、処理装置Aは、処理装置Bに対して一旦コマンドを送信すれば、事実上、処理装置Bの処理状況を関知する必要がない。しかし、コマンドの中には、処理装置Bのコマンド処理状況に応じて実行されるべきコマンドもある。たとえば、処理装置Aが処理装置Bに対して、所定の演算を指示するための演算指示コマンドを送信し、その演算結果の読み出しを指示するための読み出しコマンドを続けて送信する場合、読み出しコマンドは演算指示コマンドの実行が完了してから実行される必要がある。
処理装置Bが、待ち行列に入っているコマンドをアウトオブオーダー実行するときに、それらのコマンドの内容に鑑みて実行順序を調整するとすれば、処理装置Bの負担が大きくなる。一方、処理装置Aが処理装置Bのコマンド処理状況に応じて、読み出しコマンドの送信タイミングを制御するとすれば、処理装置Aの負担が大きくなる。いずれの方式においても、処理装置Aと処理装置Bが互いの事情を多かれ少なかれ関知する必要が生じるため、このような状況は、複数の処理装置における全体としての処理効率を悪化させる原因となる。
本発明は、このような課題に鑑みてなされたものであり、その主たる目的は、複数の処理装置の間で送受されるコマンドを効率的に制御するための技術、を提供することにある。
本発明のある態様は、コマンド実行制御装置である。
この装置は、外部のコマンド送信主体から実行コマンドを受信し、所定個数を上限として保持する。保持された実行コマンドは、実行コマンドの間で定められた発行順序にしたがって取り出され、コマンド実行主体に発行される。
この装置は、コマンド送信主体から実行コマンドの発行順序を調整するために送信された調整コマンドも受信する。実行コマンドを保持するための記憶領域と、調整コマンドを保持するための記憶領域は別々に確保される記憶領域であって、調整コマンドが保持されているときには、調整コマンドの受信前に受信された実行コマンドの発行が終了したことを条件として調整コマンドの受信後に受信された実行コマンドが発行される。
このような態様において、コマンド実行制御装置は調整コマンドが保持されているか否かにより、実行コマンドの発行順序について調整コマンドの受信タイミングに応じた調整を行うべきか否かを判定する。
本発明の別の態様は、コマンド実行指示装置である。
この装置は、複数のコマンド実行制御装置に対して実行コマンドを送信する。コマンド実行制御装置における実行コマンドの発行順序を調整させるときには、これら複数のコマンド実行制御装置のうち、その対象となるコマンド実行制御装置に対して調整コマンドを送信する。
本発明のある態様は、コマンド実行制御装置である。
この装置は、外部のコマンド送信主体から受信した実行コマンドを保持するためのメモリである受信メモリに対してレジスタメモリを併設し、レジスタメモリに対して所定のデータが書き込まれたときには、受信メモリからその書き込み以後に受信された実行コマンドの発行を停止せしめる。
このような態様において、コマンド実行制御装置はレジスタメモリに書き込みがなされているか否かにより、実行コマンドの発行を停止するか否か判定する。
本発明の別の態様は、コマンド実行指示装置である。
この装置は、複数のコマンド実行制御装置に接続され、これら複数のコマンド実行制御装置のうち実行コマンドの発行を停止させるべきコマンド実行制御装置のレジスタメモリに対してのみ所定のデータを書き込む。
なお、本発明を方法、装置、システム、記録媒体、コンピュータプログラムにより表現したものもまた、本発明の態様として有効である。
本発明によれば、複数の処理装置の間で送受されるコマンドを効率的に制御する上で効果がある。
図1は、情報処理装置の機能ブロック図である。
情報処理装置100は、統括制御部110、画像処理部120およびメインメモリ140を含む。情報処理装置100は表示装置150と接続されている。表示装置150は、統括制御部110および画像処理部120の処理の結果得られた画像、映像を出力する。情報処理装置100は、外部機器を制御するためのさまざまなI/Oデバイス160ともバス118を介して接続されている。情報処理装置100と接続されるI/Oデバイス160は、複数個、また、複数種類であってよい。統括制御部110や画像処理部120はそれぞれワンチップの電子デバイスとして形成されており、お互いは物理的に分離されている。情報処理装置100は、これらの電子デバイスをさらに包含する電子デバイスとして形成されてもよい。
図1などにおいて、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他のLSI(Large Scale Integration)で構成することができ、ソフトウェア的には、メモリにロードされた予約管理機能のあるプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
また、この情報処理装置100では、情報処理装置100を効率よく使用するための機能、環境を提供し、装置全体を統括的に制御するオペレーティングシステム(以下、単に「OS(Operating System)」とよぶ)が実行される。OS上で複数のアプリケーションソフトウェアが実行される。
統括制御部110は、1つの主制御装置112と複数の副制御装置116を含む。副制御装置116および主制御装置112はバス118により相互通信可能である。主制御装置112は、各アプリケーションにおける基本処理単位としてのタスクを各副制御装置116に割り当てる。あるいは、主制御装置112自身がタスクを実行してもよい。副制御装置116がそれぞれ割り当てられたタスクを実行することにより、複数のタスクが並列処理される。
以下、タスクの割り当て処理を含む主制御装置112により実行される処理のことを「メインプロセス」、副制御装置116により実行される処理のことを「サブプロセス」とよぶ。主制御装置112は、ユーザインタフェースに関する処理のように比較的優先度が高い情報処理装置100全体を統括する処理を実行する。これに対して、副制御装置116は、比較的優先度が低いバックグラウンドで実行される計算のようにメインプロセスの下請け的な処理を実行する。
主制御装置112や副制御装置116に含まれる図示しないDMAC(Direct Memory Access Controller)は、メインメモリ140や画像処理部120に内蔵されるグラフィックスメモリ128との間のデータ転送、データ退避などを主制御装置112または副制御装置116からの命令によって制御する。
メインメモリ140は、主に統括制御部110によって使用される記憶領域である。メインメモリ140には、タスクの実行状態に関連するデータが格納される。たとえば、統括制御部110によりコンピュータグラフィックスに関する座標計算が実行されて得られた座標データなどが一時的に格納される。また、このメインメモリ140には、画像処理部120により生成されたデータが退避される場合もある。
画像処理部120は、画像処理を専用に実行するユニットであり、たとえば、レンダリング処理を実行する。画像処理部120は、統括制御部110からの指示により画像処理を実行する。画像処理部120は、統括制御部110により処理されるそれぞれのタスクに関連する画像処理を行い、生成した画像、映像を表示装置150に出力する。画像処理部120は、複数の画像処理を時分割して並列的に実行してもよい。
画像処理部120は、グラフィックスメモリ128、演算ユニット130、ディスプレイコントローラ126、制御ブロック124、画像処理側DMAC122およびコマンド実行制御装置200を含む。これらのユニット同士も、バス118で接続されており、各ユニット間で相互通信可能である。
グラフィックスメモリ128は、画像処理部120により使用、管理されるグラフィックスデータを記憶するためのメモリ領域である。グラフィックスメモリ128には、画像フレームデータが格納されるフレームバッファやZバッファに加えて、画像フレームデータを描画する際に参照される基本データである頂点データ、テクスチャデータ、カラールックアップテーブルなどのデータに対応する領域が用意されている。
制御ブロック124は、画像処理部120全体を制御するブロックである。制御ブロック124は、演算ユニット130、グラフィックスメモリ128、ディスプレイコントローラ126を統括的に制御し、各ブロック間のデータ転送の同期管理やタイマー管理等を行う。
画像処理側DMAC122は、統括制御部110やメインメモリ140とグラフィックスメモリ128の間のデータ転送、データ退避などを制御ブロック124からの命令によって制御する。
ディスプレイコントローラ126は、水平および垂直同期信号を生成し、表示装置150の表示タイミングにしたがって、グラフィックスメモリ128に格納されるフレームバッファから画像フレームデータのピクセルデータをライン状に順次読み込んでいく。さらにディスプレイコントローラ126は、ライン状に読み込まれたピクセルデータを、RGB(Red-Green-Blue)のカラー値からなるデジタルデータから表示装置150に対応したフォーマットに変換して出力する。
演算ユニット130は、制御ブロック124からの命令にしたがって、グラフィックスに関するさまざまな演算処理を行う。その処理の一例としては、3次元モデリングデータをもとに座標変換、陰面消去、シェーディングを行って画像フレームデータを作成し、フレームバッファに書き込む一連のレンダリング処理などが挙げられる。
演算ユニット130は、特に3次元グラフィックスに関する処理を高速に行うために、ラスタライザ132、シェーダユニット134、テクスチャユニット136などの機能ブロックを含む。
ラスタライザ132は、描画する基本物体(以下、「プリミティブ」とよぶ)の頂点データを統括制御部110から受け取り、3次元空間上のプリミティブを投影変換により描画平面上の図形に変換するビュー変換を行う。さらに、描画平面上の図形を、描画平面の水平方向に沿ってスキャンしながら、一列ごとに量子化されたピクセルに変換するラスタ処理を行う。このラスタライザ132によってプリミティブがピクセル展開されて、各ピクセルごとにピクセル情報を算出する。このピクセル情報には、RGBカラー値、透明度を表すα値、視点からの奥行きを表すZ値が含まれる。
ラスタライザ132は、スキャンラインに沿って所定の大きさのピクセル領域を生成し、シェーダユニット134、テクスチャユニット136へと出力する。ラスタライザ132から出力されるピクセル領域は、一度キューにスタックされ、シェーダユニット134はスタックされたピクセル領域を順に処理していく。
シェーダユニット134は、ラスタライザ132により算出されたピクセル情報をもとにシェーディング処理を行い、テクスチャユニット136により得られたテクセル情報をもとに、テクスチャマッピング後のピクセル色を決定し、グラフィックスメモリ128内のフレームバッファにシェーディング処理後の画像フレームデータを書き込む。さらにシェーダユニット134はフレームバッファに書き込まれた画像フレームデータに対してフォギング、アルファブレンディング等の処理を行い最終的な描画色を決定してフレームバッファの画像フレームデータを更新する。
テクスチャユニット136は、シェーダユニット134からテクスチャデータを指定するパラメータを受け取り、要求されたテクスチャデータをグラフィックスメモリ128内のテクスチャバッファを読み出し、所定の処理を行った後にシェーダユニット134に対して出力する。
画像処理部120はプリミティブの頂点データなど画像生成のために必要な基本情報や画像生成の開始指示を統括制御部110から与えられると、統括制御部110とは独立して画像処理を実行する。画像処理部120により生成されたデータはグラフィックスメモリ128やメインメモリ140に転送される。
画像処理部120に含まれるコマンド実行制御装置200は、統括制御部110から画像処理部120に対して送信されたコマンドの発行タイミングを制御する。以下、コマンドのうち、コマンドの処理主体に対してタスク実行を指示するための制御命令のことを「実行コマンド」とよび、コマンド実行制御装置200に実行コマンドの発行順序を調整させるための補助的な制御命令のことを「調整コマンド」とよぶ。また、以降は、実行コマンドと調整コマンドを総称するときには「制御コマンド」とよぶ。調整コマンドと調整コマンドともなって実行コマンドの発行順序を調整するための発行順序調整処理については、図4に関連して詳述する。
コマンド実行制御装置200は、統括制御部110の主制御装置112や副制御装置116のみならず、I/Oデバイス160のようなその他のデバイスから送信される制御コマンドも受信する。すなわち、画像処理部120のコマンド実行制御装置200は外部のコマンド送信主体から画像処理部120に対して送信された制御コマンドをまとめて受信する。コマンド実行制御装置200は、実行コマンドを受信するとその実行コマンドの処理主体である制御ブロック124やディスプレイコントローラ126などの各種ユニットに対して発行する。画像処理部120に含まれる各ユニットは、コマンド実行制御装置200から発行された実行コマンドによって指示された各種のタスクを実行する。
なお、コマンド実行制御装置200は、画像処理部120のみならず、I/Oデバイス160にも搭載される。I/Oデバイス160に搭載されるコマンド実行制御装置200は、統括制御部110や画像処理部120、すなわち、情報処理装置100のような外部のコマンド送信主体から制御コマンドを受信し、I/Oデバイス160内における各種ユニットに対して実行コマンドを発行する。
コマンド実行制御装置200の詳細については、次の図2および図3に関連して詳述する。
図2は、一般的なコマンド実行制御装置の機能ブロック図である。
ここでは、画像処理部120に搭載されるコマンド実行制御装置200について、実行コマンド送信主体が統括制御部110であるとして説明する。コマンド実行制御装置200は、制御コマンド受信部210、制御コマンド保持部220および実行コマンド発行部230を含む。
制御コマンド受信部210は、外部のコマンド送信主体から実行コマンドを受信する。制御コマンド保持部220は、受信された実行コマンドを待ち行列として確保された記憶領域に保持する。実行コマンド発行部230は、制御コマンド保持部220から実行コマンドを取り出して、コマンドの処理主体である各ユニットに発行する。受信処理と発行処理は別プロセスとして実行されるため、受信処理と発行処理は互いに同期する必要がない。すなわち、実行コマンドが受信されると制御コマンド保持部220に保持されていくが、実行コマンド発行部230は保持されている実行コマンドの中から実行しやすい順序で実行コマンドを発行する。そのため、受信状況や発行状況に応じて制御コマンド保持部220に保持されている実行コマンドの数は増減する。制御コマンド保持部220は、制御コマンド受信部210と実行コマンド発行部230による非同期動作を実現する上でバッファとしての役割を果たしている。
制御コマンド保持部220は受信順に実行コマンドを保持するが、実行コマンドは実行しやすい順に発行される。そのため、実行コマンドの受信順序と発行順序とは必ずしも一致しない。ここで、実行しやすい順序で実行コマンドの発行する状況としては、たとえば、演算ユニット130に対する複数個の実行コマンドが受信された後に、制御ブロック124に対する実行コマンドが受信された場合がある。このようなときには、演算ユニット130がすべての実行コマンドの処理を完了するのと待ってから、制御ブロック124に実行コマンドを発行するよりも、演算ユニット130が実行コマンドを処理している最中に制御ブロック124に実行コマンドを発行してしまった方が全体としての処理が効率的となる。このようにコマンド実行制御装置200は、必要であれば実行コマンドがアウトオブオーダー実行されるように発行順序を制御する。
すでにみたように、コマンド送信主体である統括制御部110とコマンド実行制御装置200は、コマンドの送受に関して非同期動作する。しかし、実行コマンドの中には、制御コマンド保持部220に保持されているすべての実行コマンドの発行が完了してから発行されるよう保証すべきコマンド(以下、「同期型実行コマンド」とよぶ)もある。たとえば、演算の実行を指示するための実行コマンドを発行した後に、その演算結果を取得するための実行コマンドを発行する場合である。
一般的には、統括制御部110がいわゆるダミーリード命令として実行コマンド(以下、「ダミーリードコマンド」とよぶ)を送信し、ダミーリードコマンドが実行されたことを確認してから、同期型実行コマンドを送信する方法(以下、「第1方式」とよぶ)がある。このとき、統括制御部110は、ダミーリードコマンドの送信から実行確認までの期間待たされることになってしまう。
もうひとつの方法として、統括制御部110がいわゆるフラッシュ命令として実行コマンド(以下、「フラッシュコマンド」とよぶ)を送信する方法(以下、「第2方式」とよぶ)がある。フラッシュコマンドも、実行コマンドの一種であるため制御コマンド保持部220に保持されることになる。実行コマンド発行部230は制御コマンド保持部220にフラッシュコマンドがあれば、フラッシュコマンドの受信後に受信されていた実行コマンドがフラッシュコマンドの受信前に受信されていた実行コマンドよりも先に発行されないように注意する必要がある。
動作周波数の高速化やパイプライン段数の増加によるレイテンシのカバーのために、制御コマンド保持部220における待ち行列のサイズは増加しつつある。第1方式は、待ち行列が長くなるほどコマンド実行制御装置200による発行順序調整処理についての負荷を増加させやすい。現在でも、このような発行順序調整処理のためにCPUの動作周波数として1万サイクル以上が消費されることもある。
さらに、第2方式における従来のコマンド送信主体は、接続されるすべてのコマンド受信主体にフラッシュコマンドをブロードキャストしている。しかし、このような送信方法は、すべてのコマンド受信主体においてフラッシュコマンドに関する処理を強制することになり、全体としての処理効率を悪化させやすい。
図3は、本実施例におけるコマンド実行制御装置の機能ブロック図である。
ここでも、画像処理部120に搭載されるコマンド実行制御装置200について説明する。コマンド実行制御装置200は、制御コマンド受信部210、制御コマンド保持部220および実行コマンド発行部230を含む。
制御コマンド受信部210は、実行コマンド受信部212と調整コマンド受信部214を含む。実行コマンド受信部212は、統括制御部110の主制御装置112や副制御装置116から実行コマンドを受信する。調整コマンド受信部214は、統括制御部110の主制御装置112や副制御装置116から調整コマンドを受信する。なお、その他のI/Oデバイス160から制御コマンドが受信されてもよい。
制御コマンド保持部220は単一であってもよいが、本実施例としては、制御コマンド保持部220はコマンド送信主体に応じて複数個設けられる場合について説明する。たとえば、画像処理部120のコマンド実行制御装置200が、1つの主制御装置112と8つの副制御装置116からコマンドを受信する場合、制御コマンド保持部220はそれぞれのコマンド送信主体に対して計9個設けられることになる。
制御コマンド保持部220は、実行コマンド保持部222と調整コマンド保持部224を含む。実行コマンド保持部222は、複数個の実行コマンドを保持する。調整コマンド保持部224は調整コマンドを保持する。実行コマンド保持部222が実行コマンドを保持するための記憶領域と調整コマンド保持部224が調整コマンドを保持するための記憶領域は、物理的に別個のメモリにおいて確保されてもよい。あるいは、物理的に同一のメモリにおいて、別々の記憶領域として確保されてもよい。本実施例においては、調整コマンド保持部224における調整コマンドの記憶領域は、実行コマンド保持部222における実行コマンドの記憶領域を提供するためのメモリに併設される物理的に別個のレジスタメモリにて提供される。
実行コマンド受信部212は、実行コマンドを受信すると、その送信元のコマンド送信主体に対応づけられた制御コマンド保持部220を特定する。そして、特定した制御コマンド保持部220の実行コマンド保持部222に実行コマンドを保持させる。
調整コマンド受信部214は、調整コマンドを受信するとその送信元のコマンド送信主体に対応づけられた制御コマンド保持部220を特定する。そして、特定した制御コマンド保持部220の調整コマンド保持部224に調整コマンドを保持させる。
実行コマンド発行部230は、各制御コマンド保持部220における実行コマンド保持部222から実行コマンドを、処理主体となるユニットに対して発行する。実行コマンド発行部230は、実行コマンドを取り出すべき制御コマンド保持部220を巡回選択する。そして、各実行コマンド保持部222から適宜実行コマンドを取り出して各ユニットに発行する。
各実行コマンド保持部222が保持可能な実行コマンドの数(以下、「最大保持コマンド数」とよぶ)は、コマンド送信主体に応じてそれぞれ異なってもよい。たとえば、画像処理部120に対して多くの実行コマンドを発行するコマンド送信主体に対応した制御コマンド保持部220は、他の制御コマンド保持部220よりも最大保持コマンド数を大きく設定されてもよい。あるいは、実行コマンドの受信状況に応じて、動的に各実行コマンド保持部222の最大保持コマンド数を変更する制御部があってもよい。
このような態様によれば、各実行コマンド保持部222における最大保持コマンド数を好適に設定することにより、コマンド実行制御装置200全体としての記憶容量を効率的に配分できる。また、コマンド送信主体に対応して複数の制御コマンド保持部220を設ければ、特定のコマンド送信主体が大量に実行コマンドを送信して実行コマンド保持部222がオーバーフローしても、他のコマンド送信主体はその影響を受けずに実行コマンドを発行することができる。
コマンド送信主体に応じて複数の制御コマンド保持部220を設けることは、コマンド送信主体側にもメリットがある。たとえば、第1のコマンド送信主体が多くの実行コマンドを送信している状況下において、第2のコマンド送信主体が実行コマンドを送信したとする。このようなときであっても、実行コマンド発行部230は複数の制御コマンド保持部220を平等に選択する。そのため、第2のコマンド送信主体が第1のコマンド送信主体による送信状況によって過度に実行コマンドの発行を待たされにくくなる。すなわち、各コマンド送信主体について実行コマンドの発行待ち時間を平準化しやすくなる。
なお、制御コマンド保持部220は、必ずしもコマンド送信主体に応じて設けられる必要はない。たとえば、制御コマンド保持部220は、画像処理部120におけるコマンド実行主体に応じて設けられてもよい。調整コマンドのデータパケットは、複数の調整コマンド保持部224のいずれかを指定するための保持先指定領域を含んでもよい。コマンド送信主体である主制御装置112や副制御装置116は、調整コマンドをコマンド実行制御装置200に送信するに際しては、この保持先指定領域に調整コマンド保持部224を特定するためのIDを書き込んで調整コマンドを送信する。調整コマンド受信部214は、受信した調整コマンドの保持先指定領域に示されるIDを参照して、いずれかの調整コマンド保持部224に調整コマンドを転送する。無論、調整コマンドに限らず、実行コマンドにおいても、このような保持先指定領域が含まれてもよい。この場合、実行コマンド受信部212は、受信した実行コマンドの保持先指定領域に示されるIDを参照して、いずれかの実行コマンド保持部222に実行コマンドを転送する。
なお、保持先指定領域は、調整コマンドにおける命令のオペランドが指定される領域であってもよい。
保持先指定領域には、コマンド実行主体を特定するためのIDが書き込まれてもよい。この場合、実行コマンド受信部212や調整コマンド受信部214は、そのIDによって指定されたコマンド実行主体に対応する制御コマンド保持部220を制御コマンドの転送先として選択する。
主制御装置112などのコマンド送信主体は、コマンド実行主体を特定するためのIDを書き込んだ調整コマンドを複数のコマンド実行制御装置200に対してブロードキャストしてもよい。この場合、IDによって指定されるべき制御コマンド保持部220を含まないコマンド実行制御装置200は、受信した調整コマンドを破棄する。一方、指定される制御コマンド保持部220を含むコマンド実行制御装置200は、その制御コマンド保持部220に対して調整コマンドを転送する。このような態様によれば、調整コマンドをブロードキャストしたとしても、無関係のコマンド実行制御装置200に過度の処理負荷がかかるのを抑制できる。
実行コマンドと調整コマンドは、同じフォーマットのパケットデータとして送受されてもよい。たとえば、制御コマンドのパケットデータうち所定のビットがオンとなっていれば実行コマンド、オフであれば調整コマンドであるとしてもよい。制御コマンド受信部210は、このビットのオンオフを検出することにより、受信した制御コマンドが実行コマンドであるか調整コマンドであるかを判定してもよい。そして、制御コマンドにおける保持先指定領域を参照して、いずれかの制御コマンド保持部220を選択するとしてもよい。
更に別例を示す。制御コマンドは、ライト命令のディスティネーションアドレスとして送信先アドレスを含む。制御コマンド受信部210は、この送信先アドレスに応じて、制御コマンド保持部220を選択してもよい。たとえば、制御コマンド受信部210は、送信先アドレスに応じていずれかの制御コマンド保持部220を対応づけた選択テーブルを保持してもよい。そして、制御コマンド受信部210の実行コマンド受信部212や調整コマンド受信部214は、この選択テーブルを参照して、制御コマンドにおける送信先アドレスに応じた制御コマンド保持部220を転送先として選択してもよい。
次に、調整コマンド保持部224に保持される調整コマンドによって、実行コマンドの発行順序を調整する本実施例における発行順序調整処理の原理を説明する。
図4は、本実施例における発行順序調整処理の仕組みを説明するための模式図である。
図4(a)〜図4(e)は、制御コマンド受信部210が実行コマンドと調整コマンドを受信しつつ、実行コマンド発行部230が実行コマンドを発行するときの時間的な流れとして例示している。
図4(a)は、本実施例における発行順序調整処理において、第1の状態を示す模式図である。第1の状態において、実行コマンド保持部222は実行コマンドA、B、C、Dを保持している。調整コマンド保持部224は調整コマンドを保持していない。実行コマンド保持部222の各記憶領域にはフラグが設けられている。同図において、各領域の上部に記載されている「1」または「0」とあるのがこのフラグである。フラグが「1」である領域に格納された実行コマンドは発行可能であることを示す。フラグが「0」である領域に格納された実行コマンドは発行不可能であることを示す。第1の状態においては、実行コマンド保持部222のすべての領域についてフラグは「1」となっている。そのため、実行コマンド発行部230は、実行コマンドA、B、C、Dの中から実行しやすい順にいずれかの実行コマンドを発行する。
ここでは、実行コマンドBが発行されたとする。
図4(b)は、本実施例における発行順序調整処理において、第2の状態を示す模式図である。第2の状態は、第1の状態から実行コマンドBが発行された後の状態である。実行コマンド保持部222は、実行コマンドA、C、Dを保持している。
ここで、調整コマンドを受信され、調整コマンド保持部224に調整コマンドが保持されたとする。
図4(c)は、本実施例における発行順序調整処理において、第3の状態を示す模式図である。第3の状態は、第2の状態から調整コマンドが保持された後の状態である。このとき、実行コマンド保持部222のうち、実行コマンドA、C、Dが保持されている領域のフラグは「1」のままであるが、それ以外の領域のフラグは「0」となる。
ここで、実行コマンドEが受信されたとする。
図4(d)は、本実施例における発行順序調整処理において、第4の状態を示す模式図である。第4の状態は、第3の状態から実行コマンドEが受信された後の状態である。調整コマンドが受信される前に受信された実行コマンドA、C、Dが格納される領域のフラグは「1」である。調整コマンドの受信後に受信された実行コマンドEが格納される領域のフラグは「0」となっている。そのため、実行コマンドA、C、Dは発行可能であるが、実行コマンドEは発行を許可されていない。
ここで、実行コマンドBが発行されるとともに、新たに実行コマンドFが受信されたとする。
図4(e)は、本実施例における発行順序調整処理において、第5の状態を示す模式図である。第5の状態は、第4の状態から実行コマンドAが発行されるとともに実行コマンドFが新たに保持された状態である。調整コマンドが受信される前に受信された実行コマンドC、Dが格納される領域のフラグは「1」である。調整コマンドの受信後に受信された実行コマンドE、Fが格納される領域のフラグは「0」となっている。そのため、実行コマンドC、Dは発行可能であるが、実行コマンドE、Fは発行を許可されていない。実行コマンドC、Dの発行が完了するまでは、実行コマンドE、Fは発行を許可されない。
コマンド実行制御装置200においては、複数のコマンド送信主体に対応して複数の制御コマンド保持部220が設けられている。各制御コマンド保持部220にはそれぞれ実行コマンド保持部222と調整コマンド保持部224が一対として設けられている。実行コマンド発行部230は、ある調整コマンド保持部224において調整コマンドが保持されているときには、その調整コマンド保持部224とペアの実行コマンド保持部222について発行順序調整処理を実行する。しかし、それ以外の実行コマンド保持部222については発行順序調整処理を実行しない。そのため、コマンド送信主体ごとの発行順序調整処理が可能である。
図5は、実行コマンドの発行処理過程を示すフローチャートである。
ここでは、ある特定の制御コマンド保持部220について、実行コマンド発行部230が実行コマンドを発行するときの処理過程を示している。同フローチャートにて示す処理は、繰り返し実行されるループ処理である。
まず、実行コマンド発行部230は、実行コマンドが保持されているか判定する(S10)。実行コマンドが保持されていなければ(S10のN)、実行コマンド発行部230は、別の制御コマンド保持部220に処理対象を変更する。実行コマンドが保持されていれば(S10のY)、実行コマンド発行部230は調整コマンドが保持されているか判定する(S12)。調整コマンドが保持されていなければ(S12のN)、実行コマンド発行部230は実行コマンド保持部222に保持されているすべての実行コマンドのうち、いずれかの実行コマンドを選択して発行する(S20)。
一方、調整コマンドが保持されていれば(S12のY)、実行コマンド発行部230は調整コマンドが受信される前に受信されている実行コマンドが保持されているか判定する(S14)。存在すれば(S14のY)、実行コマンド発行部230はそれらの実行コマンドの中から、いずれかの実行コマンドを選択して発行する(S16)。存在しなければ(S14のN)、実行コマンド発行部230は調整コマンドを調整コマンド保持部224から消去する(S18)。調整コマンドが消去されると、実行コマンド保持部222における各領域のフラグはすべて「1」にセットされる。すなわち、実行コマンド保持部222に保持されているすべての実行コマンドが発行可能となる。
本実施例において、画像処理部120に対してコマンド送信主体にあたる統括制御部110の主制御装置112や副制御装置116は、実行コマンドを送信する機能とともに調整コマンドを送信する機能を備える。これらの装置は、複数のコマンド受信主体に対するコマンド送信主体となるが、実行コマンドを処理主体となるべきコマンド受信主体に対してだけ、実行コマンドを送信する。同様に、これらの装置は、発行順序調整処理を実行させるべきコマンド実行制御装置200に対してだけ、調整コマンドを送信すればよい。
このような調整コマンドの送信方法によれば、第2方式による従来のようなフラッシュコマンドのブロードキャストに比べ、発行順序調整処理の対象となっていないコマンド受信主体の処理が他のコマンド受信主体に対する調整コマンドの影響を受けなくて済む。
以上、本実施例によれば、コマンド実行制御装置200は、実行コマンドと調整コマンドを別々に確保された記憶領域にて保持する。そのため、コマンド実行制御装置200の実行コマンド発行部230は、調整コマンド保持部224だけをウォッチしておけば、発行順序調整処理を実行すべきか判断できる。そのため、従来の第2方式のような実行コマンド保持部222の最大保持コマンド数が大きくなることに伴う処理効率の悪化を抑制できる。また、第2方式に比べて発行順序調整処理のロジックが簡易となる。
また、コマンド送信主体は、同期型実行コマンドの発行時においても、第1方式のようにコマンド実行制御装置200と同期を取る必要がない。
なお、本実施例においては、実行コマンドや調整コマンドはコマンド送信主体とコマンド受信主体の間で送受されるものとして示したが、コマンド送信主体は、実行コマンドや調整コマンドをコマンド実行制御装置200の実行コマンド保持部222や調整コマンド保持部224に書き込み処理してもよい。
以上、本発明を実施例をもとに説明した。この実施例はあくまで例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
なお、請求項に記載のレジスタメモリに対して書き込まれる所定のデータは、本実施例においては調整コマンドが対応する。これら請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
さらに付言すれば、図4(a)〜(e)に関連して説明した内容は、本実施例における発行順序調整処理の原理の説明であり、その具体的な実現方法はそのほかにもさまざまな方法が考えられる。たとえば、調整コマンドの受信前に受信された実行コマンドを第1グループとして登録し、調整コマンドの受信後に受信された実行コマンドを第2グループとして登録することにより管理してもよい。この場合、実行コマンド発行部230は、第1グループに属する実行コマンドの発行が完了したことを条件として、第2グループに属する実行コマンドの発行を開始してもよい。
あるいは、実行コマンド保持部222は、第1記憶領域と第2記憶領域という別個の記憶領域にて実行コマンドを保持してもよい。第1記憶領域は第2記憶領域よりも優先される領域である。すなわち、調整コマンドの受信前に受信された実行コマンドは第1記憶領域にて保持され、調整コマンドの受信後に受信された実行コマンドは第2記憶領域にて保持される。実行コマンドは、通常は第1記憶領域に保持されるが、調整コマンドを受信したときには、以後に受信した実行コマンドは第2記憶領域に保持される。
実行コマンド発行部230は、第1記憶領域に保持される実行コマンドの発行が完了したことを条件として、第2記憶領域に保持される実行コマンドの発行を開始する。第1記憶領域に保持される実行コマンドがなくなると、第2記憶領域が第1記憶領域に優先する領域として変更される。以後受信される実行コマンドは第2記憶領域に保持されるが、再び調整コマンドが受信された後に受信された実行コマンドは第1記憶領域に保持される。実行コマンド発行部230は、今度は、第2記憶領域に保持される実行コマンドの発行が完了したことを条件として、第1記憶領域に保持される実行コマンドの発行を開始する。このように、コマンド実行制御装置200の制御コマンド保持部220は、実行コマンドの発行優先順位づけがなされた第1記憶領域と第2記憶領域を備え、調整コマンドが受信されるごとに、それらの発行優先順位を変更してもよい。
このような態様によれば、事実上2つの待ち行列における発行優先順位を入れ替えることにより、発行順序調整処理を好適に実行できる。
情報処理装置の機能ブロック図である。 一般的なコマンド実行制御装置の機能ブロック図である。 本実施例におけるコマンド実行制御装置の機能ブロック図である。 本実施例における発行順序調整処理の仕組みを説明するための模式図である。図4(a)は、本実施例における発行順序調整処理において、第1の状態を示す模式図である。図4(b)は、本実施例における発行順序調整処理において、第2の状態を示す模式図である。図4(c)は、本実施例における発行順序調整処理において、第3の状態を示す模式図である。図4(d)は、本実施例における発行順序調整処理において、第4の状態を示す模式図である。図4(e)は、本実施例における発行順序調整処理において、第5の状態を示す模式図である。 実行コマンドの発行処理過程を示すフローチャートである。
符号の説明
100 情報処理装置、 110 統括制御部、 112 主制御装置、 116 副制御装置、 118 バス、 120 画像処理部、 122 画像処理側DMAC、 124 制御ブロック、 126 ディスプレイコントローラ、 128 グラフィックスメモリ、 130 演算ユニット、 132 ラスタライザ、 134 シェーダユニット、 136 テクスチャユニット、 140 メインメモリ、 150 表示装置、 160 I/Oデバイス、 200 コマンド実行制御装置、 210 制御コマンド受信部、 212 実行コマンド受信部、 214 調整コマンド受信部、 220 制御コマンド保持部、 222 実行コマンド保持部、 224 調整コマンド保持部、 230 実行コマンド発行部。

Claims (23)

  1. 外部のコマンド送信主体から実行コマンドを受信する実行コマンド受信部と、
    前記受信された実行コマンドを所定個数を上限として保持する実行コマンド保持部と、
    前記保持されている実行コマンドの間で定められた発行順序にしたがって、前記保持されている実行コマンドを取り出してコマンド実行主体に発行する実行コマンド発行部と、
    前記コマンド送信主体から前記実行コマンドの発行順序を調整するために送信された調整コマンドを受信する調整コマンド受信部と、
    前記受信された調整コマンドを保持する調整コマンド保持部と、を備え、
    前記実行コマンド保持部が実行コマンドを保持するための記憶領域と、前記調整コマンド保持部が調整コマンドを保持するための記憶領域は別々に確保される記憶領域であって、
    前記実行コマンド保持部と前記調整コマンド保持部の一対は、複数のコマンド実行主体のそれぞれと対応づけて複数個設けられ、
    調整コマンドには、複数の調整コマンド保持部のいずれかを指定するための保持先指定情報が含まれ、
    前記調整コマンド受信部は、調整コマンド中の保持先指定情報を参照して、その調整コマンドを保持すべき調整コマンド保持部を選択し、
    前記実行コマンド発行部は、調整コマンドが保持されているときには、その調整コマンドを保持する調整コマンド保持部に対して一対として設けられた実行コマンド保持部について、発行順序調整処理として、その調整コマンドの受信前に受信された実行コマンドの発行が終了したことを条件としてその調整コマンドの受信後に受信された実行コマンドを発行することを特徴とするコマンド実行制御装置。
  2. 前記実行コマンド発行部は、前記調整コマンドを未保持の調整コマンド保持部に対して一対として設けられた実行コマンド保持部については、前記発行順序調整処理の実行対象外とすることを特徴とする請求項1に記載のコマンド実行制御装置。
  3. 前記実行コマンド保持部は、実行コマンドの受信順序にしたがって実行コマンドを保持し、
    前記実行コマンド発行部は、前記受信順序と必ずしも同じではない発行順序にしたがって、前記実行コマンドを発行することを特徴とする請求項1または2に記載のコマンド実行制御装置。
  4. 前記実行コマンド保持部と前記調整コマンド保持部はそれぞれ別個のメモリとして設けられたことを特徴とする請求項1から3のいずれかに記載のコマンド実行制御装置。
  5. 前記実行コマンドの発行先となるコマンド実行主体とともにワンチップの電子デバイスに含まれて形成されたことを特徴とする請求項1からのいずれかに記載のコマンド実行制御装置。
  6. 前記コマンド送信主体とは物理的に異なる電子デバイスとして形成されたことを特徴とする請求項1からのいずれかに記載のコマンド実行制御装置。
  7. 請求項1から6のいずれかに記載のコマンド実行制御装置が接続された前記コマンド送信主体として、
    前記コマンド実行制御装置に対して実行コマンドを送信する実行コマンド送信部と、
    前記コマンド実行制御装置が備える複数の調整コマンド保持部のうち、いずれかを保持先として指定するための保持先指定情報を含む調整コマンドを送信する調整コマンド送信部と、
    を備えることを特徴とするコマンド実行指示装置。
  8. 外部のコマンド送信主体から受信した実行コマンドを保持するためのメモリであり、複数の外部のコマンド実行主体のそれぞれと対応づけて設けられた複数の受信メモリのそれぞれに対して、前記コマンド送信主体から前記実行コマンドの発行順序を調整するために送信された調整コマンドを保持するためのメモリであるレジスタメモリを併設し、
    調整コマンドには、複数のレジスタメモリのいずれかを指定するための保持先指定情報が含まれ、
    前記複数のレジスタメモリのそれぞれには、各レジスタメモリを指定する保持先指定情報を含む調整コマンドが書き込まれ、
    前記複数のレジスタメモリのいずれかに対して調整コマンドが書き込まれたときには、その調整コマンドを保持するレジスタメモリに併設される受信メモリから、その書き込み以後に受信された実行コマンドの発行を停止せしめることを特徴とするコマンド実行制御装置。
  9. 前記複数のレジスタメモリのいずれか調整コマンドが書き込まれたときであっても、その調整コマンドが書き込まれていない他のレジスタメモリに併設される受信メモリからの実行コマンドの発行は停止せしめないことを特徴とする請求項に記載のコマンド実行制御装置。
  10. 請求項8または9に記載のコマンド実行制御装置が接続された前記コマンド送信主体として、
    前記コマンド実行制御装置に対して実行コマンドを送信する実行コマンド送信部と、
    前記コマンド実行制御装置が備える複数のレジスタメモリのうち、いずれかを保持先として指定するための保持先指定情報を含む調整コマンドを送信する調整コマンド送信部と、
    を備えることを特徴とするコマンド実行指示装置。
  11. 外部のコマンド送信主体から受信した実行コマンドを保持するための記憶領域であり、複数の外部のコマンド実行主体のそれぞれと対応づけて設けられた複数の受信メモリのそれぞれに対して、前記受信メモリとは別個の記憶領域であるレジスタメモリが併設された装置を制御する方法であって、
    前記コマンド送信主体から実行コマンドを受信するステップと、
    受信された実行コマンドを所定個数を上限として前記受信メモリに保持するステップと、
    前記保持されている実行コマンドの間で定められた発行順序にしたがって、前記保持されている実行コマンドを取り出してコマンド実行主体に発行するステップと、
    前記コマンド送信主体から前記実行コマンドの発行順序を調整するために送信されたコマンドであり、複数のレジスタメモリのいずれかを指定するための保持先指定情報を含む調整コマンドを受信するステップと、
    受信された調整コマンドの保持先指定情報で指定されたレジスタメモリにて前記受信された調整コマンドを保持するステップと
    前記調整コマンドが保持されているときには、その調整コマンドを保持するレジスタメモリに併設される受信メモリについて、発行順序調整処理として、その調整コマンドの受信前に受信された実行コマンドの発行が終了することを条件として、その調整コマンドの受信後に受信された実行コマンドを発行するステップと、
    を備えることを特徴とするコマンド実行制御方法。
  12. 請求項11に記載の方法において、前記調整コマンドを未保持のレジスタメモリに併設される受信メモリについては、前記発行順序調整処理の実行対象外とすることを特徴とするコマンド実行制御方法。
  13. 請求項11または12に記載の方法において、実行コマンドの受信順序と必ずしも同じではない発行順序にしたがって、前記実行コマンドを発行することを特徴とするコマンド実行制御方法。
  14. 外部のコマンド送信主体から受信した実行コマンドを保持するためのメモリであり、複数の外部のコマンド実行主体のそれぞれと対応づけて設けられた複数の受信メモリのそれぞれに対して、前記コマンド送信主体から前記実行コマンドの発行順序を調整するために送信された調整コマンドを保持するためのメモリであるレジスタメモリが併設された装置を制御する方法であって、
    調整コマンドには、複数のレジスタメモリのいずれかを指定するための保持先指定情報が含まれ、
    前記複数のレジスタメモリのそれぞれには、各レジスタメモリを指定する保持先指定情報を含む調整コマンドが書き込まれ、
    前記複数のレジスタメモリのいずれかに対して調整コマンドが書き込まれたときには、その調整コマンドを保持するレジスタメモリに併設される受信メモリからその書き込み以後に受信された実行コマンドの発行を停止せしめることを特徴とするコマンド実行制御方法。
  15. 請求項14に記載の方法において、前記複数のレジスタメモリのいずれか調整コマンドが書き込まれたときであっても、その調整コマンドが書き込まれていない他のレジスタメモリ併設される受信メモリからの実行コマンドの発行は停止せしめないことを特徴とするコマンド実行制御方法。
  16. 外部のコマンド送信主体から受信した実行コマンドを保持するための記憶領域であり、複数の外部のコマンド実行主体のそれぞれと対応づけて設けられた複数の受信メモリのそれぞれに対して、前記受信メモリとは別個の記憶領域であるレジスタメモリが併設された装置に、
    前記コマンド送信主体から実行コマンドを受信する機能と、
    受信された実行コマンドを所定個数を上限として前記受信メモリに保持する機能と、
    前記保持されている実行コマンドの間で定められた発行順序にしたがって、前記保持されている実行コマンドを取り出してコマンド実行主体に発行する機能と、
    前記コマンド送信主体から前記実行コマンドの発行順序を調整するために送信されたコマンドであり、複数のレジスタメモリのいずれかを指定するための保持先指定情報を含む調整コマンドを受信する機能と、
    受信された調整コマンドの保持先指定情報で指定されたレジスタメモリにて前記受信された調整コマンドを保持する機能と、
    前記調整コマンドが保持されているときには、その調整コマンドを保持するレジスタメモリに併設される受信メモリに対する発行順序調整処理として、その調整コマンドの受信前に受信された実行コマンドの発行が終了することを条件として、その調整コマンドの受信後に受信された実行コマンドを発行する機能と、
    を発揮させることを特徴とするコマンド実行制御プログラム。
  17. 請求項16に記載のプログラムにおいて、前記実行コマンドを発行する機能は、前記調整コマンドを未保持のレジスタメモリに併設される受信メモリについては、前記発行順序調整処理の実行対象外とすることを特徴とするコマンド実行制御プログラム。
  18. 外部のコマンド送信主体から受信した実行コマンドを保持するためのメモリであり、複数の外部のコマンド実行主体のそれぞれと対応づけて設けられた複数の受信メモリのそれぞれに対して、前記コマンド送信主体から前記実行コマンドの発行順序を調整するために送信された調整コマンドを保持するためのメモリであるレジスタメモリが併設された装置を制御するためのコンピュータプログラムであって、
    調整コマンドには、複数のレジスタメモリのいずれかを指定するための保持先指定情報が含まれ、
    前記複数のレジスタメモリのそれぞれには、各レジスタメモリを指定する保持先指定情報を含む調整コマンドが書き込まれ、
    前記複数のレジスタメモリのいずれかに対して調整コマンドが書き込まれたときには、その調整コマンドを保持するレジスタメモリに併設される受信メモリからその書き込み以後に受信された実行コマンドの発行を停止せしめる機能を前記装置に発揮させることを特徴とするコマンド実行制御プログラム。
  19. 請求項18に記載のプログラムにおいて、前記複数のレジスタメモリのいずれかに調整コマンドが書き込まれたときであっても、その調整コマンドが書き込まれていない他のレジスタメモリに併設される受信メモリからの実行コマンドの発行は停止せしめないことを特徴とするコマンド実行制御プログラム。
  20. コンピュータにて読み取り可能な記録媒体であって、
    外部のコマンド送信主体から受信した実行コマンドを保持するための記憶領域であり、複数の外部のコマンド実行主体のそれぞれと対応づけて設けられた複数の受信メモリのそれぞれに対して、前記受信メモリとは別個の記憶領域であるレジスタメモリが併設された装置に、
    前記コマンド送信主体から実行コマンドを受信する機能と、
    受信された実行コマンドを所定個数を上限として前記受信メモリに保持する機能と、
    前記保持されている実行コマンドの間で定められた発行順序にしたがって、前記保持されている実行コマンドを取り出してコマンド実行主体に発行する機能と、
    前記コマンド送信主体から前記実行コマンドの発行順序を調整するために送信されたコマンドであり、複数のレジスタメモリのいずれかを指定するための保持先指定情報を含む調整コマンドを受信する機能と、
    受信された調整コマンドの保持先指定情報で指定されたレジスタメモリにて前記受信された調整コマンドを保持する機能と、
    前記調整コマンドが保持されているときには、その調整コマンドを保持するレジスタメモリに併設される受信メモリに対する発行順序調整処理として、その調整コマンドの受信前に受信された実行コマンドの発行が終了することを条件として、その調整コマンドの受信後に受信された実行コマンドを発行する機能と、
    を発揮させることを特徴とするコマンド実行制御プログラムを格納した記録媒体。
  21. 請求項20に記載の記録媒体が格納するコマンド実行制御プログラムにおいて、前記実行コマンドを発行する機能は、前記調整コマンドを未保持のレジスタメモリに併設される受信メモリについては、前記発行順序調整処理の実行対象外とすることを特徴とする記録媒体。
  22. 外部のコマンド送信主体から受信した実行コマンドを保持するためのメモリであり、複数の外部のコマンド実行主体のそれぞれと対応づけて設けられた複数の受信メモリのそれぞれに対して、前記コマンド送信主体から前記実行コマンドの発行順序を調整するために送信された調整コマンドを保持するためのメモリであるレジスタメモリが併設された装置を制御するためのコンピュータプログラムを格納した記録媒体であって、
    調整コマンドには、複数のレジスタメモリのいずれかを指定するための保持先指定情報が含まれ、
    前記複数のレジスタメモリのそれぞれには、各レジスタメモリを指定する保持先指定情報を含む調整コマンドが書き込まれ、
    前記複数のレジスタメモリのいずれかに対して調整コマンドが書き込まれたときには、その調整コマンドを保持するレジスタメモリに併設される受信メモリからその書き込み以後に受信された実行コマンドの発行を停止せしめる機能を前記装置に発揮させることを特徴とするコマンド実行制御プログラム
    を格納したコンピュータにて読み取り可能な記録媒体。
  23. 請求項22に記載の記録媒体が格納するコマンド実行制御プログラムにおいて、前記複数のレジスタメモリのいずれかに調整コマンドが書き込まれたときであっても、その調整コマンドが書き込まれていない他のレジスタメモリに併設される受信メモリからの実行コマンドの発行は停止せしめないことを特徴とする記録媒体。
JP2005139664A 2005-05-12 2005-05-12 コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法 Active JP4372043B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005139664A JP4372043B2 (ja) 2005-05-12 2005-05-12 コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
PCT/JP2006/309877 WO2006121198A2 (en) 2005-05-12 2006-05-11 Command execution controlling apparatus, command execution instructing apparatus and command execution controlling method
US11/432,107 US7461240B2 (en) 2005-05-12 2006-05-11 Command execution controlling apparatus, command execution instructing apparatus and command execution controlling method
EP20060746575 EP1880277B1 (en) 2005-05-12 2006-05-11 Command execution controlling apparatus, command execution instructing apparatus and command execution controlling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005139664A JP4372043B2 (ja) 2005-05-12 2005-05-12 コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法

Publications (2)

Publication Number Publication Date
JP2006318176A JP2006318176A (ja) 2006-11-24
JP4372043B2 true JP4372043B2 (ja) 2009-11-25

Family

ID=36917302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005139664A Active JP4372043B2 (ja) 2005-05-12 2005-05-12 コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法

Country Status (4)

Country Link
US (1) US7461240B2 (ja)
EP (1) EP1880277B1 (ja)
JP (1) JP4372043B2 (ja)
WO (1) WO2006121198A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814198B2 (en) * 2007-10-26 2010-10-12 Microsoft Corporation Model-driven, repository-based application monitoring system
US8024396B2 (en) 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
US8239505B2 (en) 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US7970892B2 (en) 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8230386B2 (en) 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US8181151B2 (en) 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US7926070B2 (en) 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US8225308B2 (en) 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8412856B2 (en) * 2009-10-26 2013-04-02 Sony Computer Entertainment America Llc. File input/output scheduler using immediate data chunking
JP6551150B2 (ja) * 2015-10-23 2019-07-31 株式会社リコー 画像処理装置、画像形成装置、及び画像処理方法
CN112154408A (zh) * 2018-04-12 2020-12-29 美光科技公司 重放受保护存储器块命令队列

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68927946T2 (de) * 1988-08-02 1997-10-16 Philips Electronics Nv Verfahren und Vorrichtung für die Synchronisierung von parallelen Prozessoren unter Verwendung einer unscharf definierten Sperre
JP2552784B2 (ja) * 1991-11-28 1996-11-13 富士通株式会社 並列データ処理制御方式
US5721921A (en) * 1995-05-25 1998-02-24 Cray Research, Inc. Barrier and eureka synchronization architecture for multiprocessors
US5887143A (en) * 1995-10-26 1999-03-23 Hitachi, Ltd. Apparatus and method for synchronizing execution of programs in a distributed real-time computing system
JP3636871B2 (ja) * 1997-09-16 2005-04-06 株式会社日立製作所 並列プロセッサシステム
US6085263A (en) 1997-10-24 2000-07-04 Compaq Computer Corp. Method and apparatus for employing commit-signals and prefetching to maintain inter-reference ordering in a high-performance I/O processor
JPH11259437A (ja) * 1998-03-12 1999-09-24 Hitachi Ltd 不要バリア命令の削減方式
US6216174B1 (en) * 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
JP3858492B2 (ja) * 1998-12-28 2006-12-13 株式会社日立製作所 マルチプロセッサシステム
US6609192B1 (en) * 2000-06-06 2003-08-19 International Business Machines Corporation System and method for asynchronously overlapping storage barrier operations with old and new storage operations
US6643718B1 (en) * 2000-07-21 2003-11-04 Silicon Integrated Systems Corporation Method and apparatus for controlling order dependency of items in a multiple FIFO queue structure
US7117496B1 (en) * 2001-05-09 2006-10-03 Ncr Corporation Event-based synchronization

Also Published As

Publication number Publication date
WO2006121198A3 (en) 2007-06-28
WO2006121198B1 (en) 2007-08-30
EP1880277B1 (en) 2015-04-29
EP1880277A2 (en) 2008-01-23
US7461240B2 (en) 2008-12-02
WO2006121198A2 (en) 2006-11-16
US20060277437A1 (en) 2006-12-07
JP2006318176A (ja) 2006-11-24

Similar Documents

Publication Publication Date Title
JP4372043B2 (ja) コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
JP4443474B2 (ja) コマンド転送制御装置およびコマンド転送制御方法
JP4416694B2 (ja) データ転送調停装置およびデータ転送調停方法
US7760205B2 (en) Information processing apparatus for efficient image processing
JP4836491B2 (ja) 情報処理装置、システム、方法およびプロセッサ
JP4318664B2 (ja) 情報処理装置およびタスク実行方法
EP1647887A2 (en) Apparatus for efficient image processing
JP4011082B2 (ja) 情報処理装置、グラフィックプロセッサ、制御用プロセッサおよび情報処理方法
JP4683384B2 (ja) メモリ制御方法、グラフィックプロセッサおよび情報処理装置
MXPA02005310A (es) Sistema de procesamiento de datos, programa de computadora y medio de registro.
US7880742B2 (en) Information processing device, data transmission method, and electronic apparatus
JPH09297854A (ja) グラフィック描画装置
JP2005202983A (ja) 情報処理装置および方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090303

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090507

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

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

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

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4372043

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130911

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250