JP4443474B2 - コマンド転送制御装置およびコマンド転送制御方法 - Google Patents

コマンド転送制御装置およびコマンド転送制御方法 Download PDF

Info

Publication number
JP4443474B2
JP4443474B2 JP2005174209A JP2005174209A JP4443474B2 JP 4443474 B2 JP4443474 B2 JP 4443474B2 JP 2005174209 A JP2005174209 A JP 2005174209A JP 2005174209 A JP2005174209 A JP 2005174209A JP 4443474 B2 JP4443474 B2 JP 4443474B2
Authority
JP
Japan
Prior art keywords
command
channel
commands
assigned
unit
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
JP2005174209A
Other languages
English (en)
Other versions
JP2006350555A (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
Priority to JP2005174209A priority Critical patent/JP4443474B2/ja
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to EP12004147.0A priority patent/EP2495665B1/en
Priority to PCT/JP2006/309768 priority patent/WO2006134746A1/en
Priority to US11/628,684 priority patent/US7725623B2/en
Priority to KR1020077000924A priority patent/KR100864998B1/ko
Priority to CN2006800010238A priority patent/CN101040270B/zh
Priority to EP06732619A priority patent/EP1894105B1/en
Publication of JP2006350555A publication Critical patent/JP2006350555A/ja
Application granted granted Critical
Publication of JP4443474B2 publication Critical patent/JP4443474B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/001Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/125Frame memory handling using unified memory architecture [UMA]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/127Updating a frame memory using a transfer of data from a source area to a destination area

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)

Description

本発明は、コマンド転送を制御するための技術、特に、外部から受信したコマンドの転送順序を制御するための技術、に関する。
近年のコンピュータゲームやデジタル放送などの分野に利用されるコンピュータグラフィックス技術や画像処理技術の著しい進歩に伴い、コンピュータ、ゲーム機器、テレビなどの情報処理装置はより高精細の画像データをより高速に処理する能力を求められている。そのためには、演算処理自体の高速化が必要であることは勿論であるが、複数の処理装置間でタスクを好適に分散することも同様に重要である。
このとき、複数の処理装置間では、互いにタスクの実行を指示するための制御命令(以下、単に「コマンド」とよぶ)が送受され、これにより各処理装置は連係動作する。たとえば、ある処理装置Aは、別の処理装置Bに対してさまざまなコマンドを送信する。処理装置Bは、受信したコマンドを自己の待ち行列にキューイングする。処理装置Bは、待ち行列のコマンドを実行しやすいものから順に実行する。このような、いわゆるコマンドキューイング(Command Queuing)とアウトオブオーダー実行(Out of Order Execution)は、処理装置Aと処理装置Bを非同期的に動作させ、複数の処理装置による全体としての処理効率を高める上で有効な手法として広く採用されている。
処理装置Bにキューイングされたコマンドは、さらにいずれかのコマンド実行主体に転送される。ここでいうコマンド実行主体は、処理装置Bに内蔵される各種演算装置のようなハードウェア的なモジュールであってもよいし、処理装置Bにおいて実行されるプロセスのようなソフトウェア的なモジュールであってもよい。
処理装置Aから送信されたコマンドは、処理装置B、さらには該当のコマンド実行主体に転送されることにより、全体としてタスクが各種の計算リソースに分散されていくことになる。
処理装置Bは、コマンド実行主体ごとに複数の待ち行列を有してもよい。また、処理装置Aは、処理装置Bにコマンドを送信するとき、コマンド実行主体を明示的に特定するためのID情報をあわせて送信してもよい。この場合、処理装置BはID情報に応じたコマンド実行主体の待ち行列に受信したコマンドを投入する。そして、各待ち行列から対応するコマンド実行主体に対して、コマンドが随時発行される。
コマンド実行主体ごとに独立して待ち行列を設けることにより、処理装置Bに管轄される各コマンド実行主体に対するコマンド発行機会を平準化しやすくなる。たとえば、あるコマンド実行主体αがビジー状態となり、対応する待ち行列にコマンドが多く蓄積されても、コマンド実行主体βに対する待ち行列は直接的な影響を受けずに済む。そのため、コマンド実行主体αの状態によって、コマンド実行主体βへのコマンド発行タイミングが過度に遅延するといった事態が起きにくくなる。
しかし、もともとこのようなID情報を送信する機能を持たない処理装置Cから処理装置Bがコマンドを受信する場合、処理装置Bは固定的に特定の待ち行列にコマンドを投入するのが一般的である。そのため、処理装置Bが処理装置Cからコマンドを受信する場合には、その特定の待ち行列にコマンドがためこまれやすくなる。すなわち、処理装置Bが複数の待ち行列を有していても、処理装置Cとの対応時にはそのメリットが活かされなくなる。このように、処理装置Bの機能を有効に発揮させるためには、コマンド送信主体からコマンド実行主体を特定するためのID情報が送信されることが前提条件となっている。
本発明は、このような課題に鑑みてなされたものであり、その主たる目的は、複数の処理装置の間で送受されるコマンドを効率的に制御するための技術、を提供することにある。
本発明のある態様は、コマンド転送制御装置である。
この装置は、外部のコマンド送信主体からメモリアドレスを指定したコマンドを受信するコマンド受信部と、受信されたコマンドのメモリアドレスに応じて、コマンドに転送のためのチャネルを割り当てるチャネル割当部と、受信されたコマンドを一時的に保持するコマンド保持部と、保持されているコマンドのうち、所定のチャネルを割り当てられたコマンドを他のチャネルに割り当てられたコマンドよりも優先的にコマンド実行主体に転送するコマンド転送部と、を備える。
ここでいう「チャネル」とは、物理回線上において実現される仮想回線であってもよい。各コマンドは、複数のチャネルのうちのいずれかに割り当てられて物理回線上を転送されてもよい。コマンド転送部は、複数のチャネル間において所定の比率でコマンドが発行されるように、コマンドを発行すべきチャネルを選択してもよい。また、この装置は、保持されているコマンド数に応じて、チャネルの割当比率を変更する割当変更部を更に備えてもよい。チャネル割当部は、保持されている複数のコマンドが所定の比率で複数のチャネルに分配されるようにチャネルを割り当ててもよい。割当変更部は複数のチャネルのうちのいずれかのチャネルを割り当てられているコマンド数が所定数以上であるときには、そのチャネル以外のチャネルが割り当てられやすくなるように割当比率を変更してもよい。これにより、特定のチャネルが過度に割り当てられないように処置できる。
本発明の別の態様もまた、コマンド転送制御装置である。
この装置は、コマンド実行主体を一意に特定しないコマンド送信主体から受信したコマンドを一時的に保持し、コマンドにて指定されたメモリアドレスに応じて、受信された複数のコマンドの転送順序を変更する。
なお、本発明を方法、装置、システム、記録媒体、コンピュータプログラムにより表現したものもまた、本発明の態様として有効である。
本発明によれば、複数の処理装置の間で送受されるコマンドを効率的に制御する上で効果がある。
図1は、情報処理装置の機能ブロック図である。
情報処理装置100は、統括制御部110、画像処理部120およびメインメモリ140を含む。情報処理装置100は表示装置150と接続されている。表示装置150は、統括制御部110および画像処理部120の処理の結果得られた画像、映像を出力する。情報処理装置100は、外部機器を制御するためのさまざまなI/Oデバイスともバス118を介して接続されている。情報処理装置100と接続されるI/Oデバイスは、複数個、また、複数種類であってよい。統括制御部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に対して送信されたコマンドを、画像処理部120内の各ユニットに発行する。コマンド転送制御装置200は、統括制御部110の主制御装置112や副制御装置116のみならず、I/Oデバイスのようなその他のデバイスから送信されるコマンドも受信する。すなわち、コマンド転送制御装置200は外部のコマンド送信主体から画像処理部120に対して送信されたコマンドをまとめて受信し、コマンド実行主体である制御ブロック124やディスプレイコントローラ126などの各種ユニットに対して受信したコマンドを発行する。画像処理部120に含まれる各ユニットは、コマンド転送制御装置200から発行されたコマンドによって指示された各種のタスクを実行する。これらの各ユニットは、画像処理部120に包含されるワンチップの電子デバイスとして形成されている。本実施例において「コマンド」とは、コマンド実行主体による制御内容を直接規定するものやデータ転送を指示するものであってもよいが、コマンド実行主体による制御のためのパラメータであってもよい。コマンドは、バス118上においてパケット化されて転送されることになる。
コマンド転送制御装置200の詳細については、図3に関連して詳述する。
図2は、統括制御部からみたアドレス空間のイメージを示す模式図である。
情報処理装置100の記憶領域は、メインメモリ140やグラフィックスメモリ128のほかにも、主制御装置112や副制御装置116、画像処理部120の各ユニットが内蔵するキャッシュメモリ、その他のI/Oデバイスが内蔵するメモリなどの総合として構成される。統括制御部110上で実行されるプロセスは、これらの物理メモリに対して仮想アドレスによりアクセスできる。同図は、統括制御部110で実行されるプロセスからみた仮想アドレス空間を模式的に示したものである。
同図に示す画像処理部アドレス領域160は、統括制御部110にて実行される上記プロセスからみて画像処理部120を制御するために割り当てられたアドレス範囲である。統括制御部アドレス領域162は、統括制御部110を制御するために割り当てられたアドレス範囲である。メインメモリアドレス領域164は、メインメモリ140を制御するために割り当てられたアドレス範囲である。
統括制御部110にて実行される上記プロセスは、コマンド処理結果の書き込み先をアドレス指定した上で各種コマンドを画像処理部120に送信する。このときのアドレスは、統括制御部110が内蔵する図示しないMMU(Memory Management Unit)によって、物理アドレスに変換される。したがって、画像処理部120が統括制御部110から受信するコマンドには物理アドレスの指定がなされている。この指定された物理アドレスは、グラフィックスメモリ128やメインメモリ140に対応するかもしれないし、あるいは、画像処理部120や統括制御部110に内蔵されるさまざまなローカルメモリに対応するかもしれない。
図3は、コマンド転送制御装置の機能ブロック図である。
コマンド転送制御装置200は、コマンド受信部210、分配部220、コマンド保持部230およびコマンド発行部240を含む。
コマンド受信部210は、統括制御部110などのコマンド送信主体から各種コマンドを受信する。分配部220は、受信されたコマンドをコマンド実行主体に転送するためのチャネルを特定する。バス118自体は単一の物理回線であるが、バス118は複数のストリームに分けてコマンドを転送することで、単一物理回線において複数の仮想回線を実現できる。分配部220は、受信されたコマンドを複数種類に分類する。いいかえれば、複数種類の転送属性が定義された仮想回線であるチャネルのいずれかに、各コマンドは割り当られ、そのチャネルの転送属性に応じた転送方法によって、コマンドは各コマンド実行主体に転送される。
コマンド保持部230は、割り当てられたチャネルごとに、コマンドを別々に保持する。コマンド発行部240は、コマンド保持部230に保持されているコマンドを、該当するチャネルを介してコマンド実行主体に対して発行する。
分配部220は、実行部222、分配先特定部224および割当情報保持部228を含む。
コマンドにて指定される物理アドレスの範囲は複数の領域に分割されている。割当情報保持部228は、これらの各領域がどのように分割されているかを示す割当情報をテーブルデータ(以下、「割当テーブル」とよぶ)として保持する。たとえば、アドレス「0x00000〜0x05000」までは第1領域、アドレス「0x05001〜0x18000」までは第2領域、というように、各領域は開始アドレスと終端アドレスによって範囲を特定されてもよい。そして、各領域がそのままいずれかのチャネルに対応する。コマンド保持部230は、これらの各チャネルに応じて、複数のキューを備える。たとえば、第1キュー232aはチャネル1で第1領域、第2キュー232bはチャネル2で第2領域、・・・、第nキュー232cはチャネルnで第n領域というように割り当てられている。このように、キューと領域、チャネルは対応関係にある。
分配先特定部224は、コマンド受信部210が受信したコマンドにおいて書き込み先指定された物理アドレスがどの領域に属するか、ひいては、どのチャネルを割り当てるべきかを割当テーブルを参照して特定する。実行部222は、この特定されたチャネルに対応して、コマンド保持部230のいずれかのキューにコマンドを転送する。こうして、コマンド保持部230の各キューにコマンドが分配される。
コマンド発行部240は、コマンド保持部230のいずれかのキューを選択し、そのキューのコマンドを取り出して対応するチャネルにて、コマンド実行主体に転送する。
ここで、さまざまな転送属性に対応するチャネルについて更に説明しておく。
たとえば、チャネルA、B、Cの3つのチャネルが定義されているとする。チャネルAは、低レイテンシ・低ジッタが要求され、転送量の変動が小さいビデオデータ転送のためのチャネルであるとする。また、チャネルBは、チャネルAよりも大容量で転送量の変動が大きいバーテックスやテクスチャデータの転送に使用されるチャネルである。チャネルCは、転送量は少ないものの転送オーダ管理が必要とされるグラフィックス処理制御命令の転送のためのチャネルである。
ここで、チャネルA、B、Cの順に、コマンド転送優先順位が設定されているとする。また、チャネルA、B、Cの転送比率が2:5:3に設定されているとする。一例として、コマンド発行部240は、まず、チャネルAに対応するキューからコマンドを1つ取り出してコマンド実行主体に転送する。チャネルAに2つのコマンドを転送させると、次はチャネルBに対応するキューからコマンドが転送される。チャネルBに5つのコマンドが転送されると、次はチャネルCに対応するキューからコマンドが転送される。チャネルCに3つのコマンドが転送されると、再び、チャネルAに対応するキューからコマンドが取り出される。このように、各チャネル間における転送優先順位と転送比率に基づいて、コマンド発行部240は、各チャネルにコマンドを転送する。
また、チャネルCのような転送オーダ管理がなされる、すなわち、インオーダー処理がなされるチャネルについての転送制御方法としては、以下の2つを挙げることができる。
1.チャネルCにコマンドを転送するときには、チャネルCに対応するキューにコマンドが無くなるまで、チャネルCのコマンド転送を継続する。すなわち、チャネルCが選択されると、チャネルCに対応するキューにコマンドが無くなるまで、チャネルAやチャネルBは転送対象チャネルとして選択しない。
2.チャネルA、Bに対して外部のコマンド送信主体がコマンドを発行した順序と、それらのコマンドが実際にコマンド実行主体に転送される順序は必ずしも一致しない。これに対して、チャネルCの場合には、コマンドが発行された順序と転送する順序の一致を保証するように制御する。この場合には、1.と異なりチャネルCについてのコマンド転送によってチャネルA、Bについてのコマンド転送がブロックされることはない。
このように、各チャネルについてはインオーダ転送を保証するか否かといった各種の転送属性が設定されている。このような多様な転送属性による転送順序制御によって、バス118上において性質の異なる複数の回線が実現されているのと同様の制御を実現することができる。
従来、統括制御部110のようにコマンド送信主体が、コマンド実行主体を特定するためのID情報を送信する機能を持たない場合、コマンド保持部230が複数のキューを有していても、分配部220は固定的に特定のキュー(以下、「メインキュー」とよぶ)にコマンドを転送するという方法が一般的であった。そのため、このような場合、必然的に、メインキューにばかりコマンドが蓄積しやすくなる。いいかえれば、コマンド送信主体がコマンド実行主体を特定する機能を持たない限り、このような従来型のコマンド転送制御装置200は本来の機能を発揮できなくなってしまうというという難点があった。
より具体的な例として、統括制御部110からグラフィックスメモリ128に対して、連続的に画像データ転送を指示するコマンドが送信された後に、画像処理部120のいずれかのユニットの設定を変更するためのコマンドが送信されたとする。このとき、メインキューに画像転送コマンドがたまっている状態で、設定変更コマンドが新にメインキューに保持される。そのため、設定変更コマンドは実行にリアルタイム性が要求されるコマンドであっても、大量の画像転送コマンドのために実行が阻害されるという弊害が生じ得る。
これに対して、本実施例に示したコマンド転送制御装置200は、コマンドにて指定される物理アドレスに応じて、コマンドを複数のキューに分配する。そのため、コマンド送信主体がコマンド実行主体を明示的に特定しなくても、コマンド保持部230が備える複数のキューが有効に活用されることになる。
また、本実施例に示したコマンド転送制御装置200によれば、単一のバス118をあたかも複数の仮想回線のように利用することができる。コマンドにおいて指示される書込先アドレスによって、画像データ転送コマンドであるか、設定変更コマンドであるかといったコマンドの性格をある程度特定できることが多い。そのような知見から、コマンド転送制御装置200はコマンドにて指定される物理アドレスに応じて、コマンド転送のためのチャネルを特定している。そのため、コマンド送信主体側で特に新たな機能を設けなくとも、コマンド転送制御装置200が複数のチャネルを使ってコマンド転送できる。
なお、分配先特定部224は、コマンドにて指定されたアドレスのすべてを参照して領域を特定する必要はなく、アドレスの一部、たとえば、上位数ビットに基づいて、領域特定してもよい。たとえば、アドレスが64ビットサイズで指定されるときには、このうち下位42ビットのみ実デバイスのマッピングで使用し、残り上位12ビットだけを取り出して分配先特定部224で使用してもよい。割当テーブルは、このように、アドレスの上位数ビットに応じて領域を対応付けしてもよい。特に取り扱うべきアドレスのビットサイズが大きいときには、このようなやり方は分配先特定部224の処理負荷を軽減する上で効果的である。
分配先特定部224は、必ずしも、書込先のアドレスに応じて固定的にチャネルを割り当てなくてもよい。たとえば、コマンド保持部230のうちの第1キュー232aに保持されるコマンド数と、第2キュー232bに保持されるコマンド数の比が所定値、たとえば、5:1以上とならないように、第1キュー232aおよび第2キュー232bに割り当てられるべきアドレスの範囲を動的に変更してもよい。このようにして、過度に特定のキューにコマンドが蓄積されないように制御してもよい。
なお、本実施例においては、コマンド実行主体は画像処理部120内におけるハードウェア的に独立したユニットであるとして説明したが、たとえば、画像処理部120において実行されるプロセスやスレッドのようなソフトウェア的な実行単位であってもよい。
以上、本発明を実施例をもとに説明した。この実施例はあくまで例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
なお、請求項に記載のチャネル割当部の主たる機能は、本実施例においては、主として分配部220により発揮される。また、請求項に記載のコマンド保持部の機能は、本実施例においてはコマンド保持部230により発揮されるが、その主たる機能はコマンド保持部230に含まれる各キューによって発揮されるといえる。また、請求項に記載のコマンド転送部は、本実施例においては、コマンド発行部240により発揮されるといえる。これら請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
情報処理装置の機能ブロック図である。 統括制御部からみたメモリアドレスのイメージを示す模式図である。 コマンド転送制御装置の機能ブロック図である。
符号の説明
100 情報処理装置、 110 統括制御部、 112 主制御装置、 116 副制御装置、 118 バス、 120 画像処理部、 122 画像処理側DMAC、 124 制御ブロック、 126 ディスプレイコントローラ、 128 グラフィックスメモリ、 130 演算ユニット、 132 ラスタライザ、 134 シェーダユニット、 136 テクスチャユニット、 140 メインメモリ、 150 表示装置、 160 画像処理部アドレス領域、 162 統括制御部アドレス領域、 164 メインメモリアドレス領域、 200 コマンド転送制御装置、 210 コマンド受信部、 220 分配部、 222 実行部、 224 分配先特定部、 228 割当情報保持部、 230 コマンド保持部、 240 コマンド発行部。

Claims (9)

  1. コマンド実行主体を一意に特定しない外部のコマンド送信主体から、コマンド処理結果の書込先を示すアドレスを指定したコマンドを受信するコマンド受信部と、
    アドレス空間を複数の領域に分割して各領域にチャネルを割り当てた割当テーブルを参照して、受信されたコマンドで指定されたコマンド処理結果の書込先を示すアドレスに対して割り当てられたチャネルを、転送のためのチャネルとしてコマンドに割り当てるチャネル割当部と、
    受信されたコマンドを、複数のキューのうち当該コマンドに割り当てられたチャネルに対応づけられたキューに一時的に保持するコマンド保持部と、
    前記複数のキューのそれぞれに保持されているコマンドのうち、所定のチャネルを割り当てられたコマンドを他のチャネルに割り当てられたコマンドよりも優先的にコマンド実行主体に転送するコマンド転送部と、
    を備え
    前記チャネル割当部は、前記複数のキューのそれぞれにおいて保持されるコマンド数について、あるキューに保持されるコマンド数と別のキューに保持されるコマンド数との比率が所定比率未満となるように、複数のチャネルのそれぞれに割り当てるべき前記コマンド処理結果の書込先を示すアドレスの範囲を動的に変更することを特徴とするコマンド転送制御装置。
  2. 前記チャネル割当部は、受信されたコマンドで指定されたコマンド処理結果の書込先を示すアドレスの所定の一部分に応じて割り当てるべきチャネルを特定することを特徴とする請求項1に記載のコマンド転送制御装置。
  3. 前記コマンド転送部は、複数のチャネル間において所定の比率でコマンドが発行されるように、コマンドを発行すべきチャネルを選択することを特徴とする請求項1または2に記載のコマンド転送制御装置。
  4. 前記コマンド実行主体は、ワンチップの電子デバイスとして形成されることを特徴とする請求項1からのいずれかに記載のコマンド転送制御装置。
  5. 前記コマンド実行主体とともにワンチップの電子デバイスに含まれて形成されたことを特徴とする請求項1からのいずれかに記載のコマンド転送制御装置。
  6. 前記コマンド送信主体とは物理的に異なる電子デバイスとして形成されたことを特徴とする請求項1からのいずれかに記載のコマンド転送制御装置。
  7. コマンド実行主体を一意に特定しない外部のコマンド送信主体から、コマンド処理結果の書込先を示すアドレスを指定したコマンドを受信するステップと、
    アドレス空間を複数の領域に分割して各領域にチャネルを割り当てた割当テーブルを参照して、受信されたコマンドで指定されたコマンド処理結果の書込先を示すアドレスに対して割り当てられたチャネルを、転送のためのチャネルとしてコマンドに割り当てるステップと、
    受信されたコマンドを、複数のキューのうち当該コマンドに割り当てられたチャネルに対応づけられたキューに一時的に保持するステップと、
    前記複数のキューのそれぞれに保持されているコマンドのうち、所定のチャネルを割り当てられたコマンドを他のチャネルに割り当てられたコマンドよりも優先的にコマンド実行主体に転送するステップと、
    を備え
    前記割り当てるステップは、前記複数のキューのそれぞれにおいて保持されるコマンド数について、あるキューに保持されるコマンド数と別のキューに保持されるコマンド数との比率が所定比率未満となるように、複数のチャネルのそれぞれに割り当てるべき前記コマンド処理結果の書込先を示すアドレスの範囲を動的に変更することを特徴とするコマンド転送制御方法。
  8. コマンド実行主体を一意に特定しない外部のコマンド送信主体から、コマンド処理結果の書込先を示すアドレスを指定したコマンドを受信する機能と、
    アドレス空間を複数の領域に分割して各領域にチャネルを割り当てた割当テーブルを参照して、受信されたコマンドで指定されたコマンド処理結果の書込先を示すアドレスに対して割り当てられたチャネルを、転送のためのチャネルとしてコマンドに割り当てる機能と、
    受信されたコマンドを、複数のキューのうち当該コマンドに割り当てられたチャネルに対応づけられたキューに一時的に保持する機能と、
    前記複数のキューのそれぞれに保持されているコマンドのうち、所定のチャネルを割り当てられたコマンドを他のチャネルに割り当てられたコマンドよりも優先的にコマンド実行主体に転送する機能と、
    をコンピュータに発揮させ
    前記割り当てる機能は、前記複数のキューのそれぞれにおいて保持されるコマンド数について、あるキューに保持されるコマンド数と別のキューに保持されるコマンド数との比率が所定比率未満となるように、複数のチャネルのそれぞれに割り当てるべき前記コマンド処理結果の書込先を示すアドレスの範囲を動的に変更することを特徴とするコマンド転送制御プログラム。
  9. コンピュータにて読み取り可能な記録媒体であって、
    コマンド実行主体を一意に特定しない外部のコマンド送信主体から、コマンド処理結果の書込先を示すアドレスを指定したコマンドを受信する機能と、
    アドレス空間を複数の領域に分割して各領域にチャネルを割り当てた割当テーブルを参照して、受信されたコマンドで指定されたコマンド処理結果の書込先を示すアドレスに対して割り当てられたチャネルを、転送のためのチャネルとしてコマンドに割り当てる機能と、
    受信されたコマンドを、複数のキューのうち当該コマンドに割り当てられたチャネルに対応づけられたキューに一時的に保持する機能と、
    前記複数のキューのそれぞれに保持されているコマンドのうち、所定のチャネルを割り当てられたコマンドを他のチャネルに割り当てられたコマンドよりも優先的にコマンド実行主体に転送する機能と、
    をコンピュータに発揮させ
    前記割り当てる機能は、前記複数のキューのそれぞれにおいて保持されるコマンド数について、あるキューに保持されるコマンド数と別のキューに保持されるコマンド数との比率が所定比率未満となるように、複数のチャネルのそれぞれに割り当てるべき前記コマンド処理結果の書込先を示すアドレスの範囲を動的に変更することを特徴とするコマンド転送制御プログラム
    を格納した記録媒体。
JP2005174209A 2005-06-14 2005-06-14 コマンド転送制御装置およびコマンド転送制御方法 Active JP4443474B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2005174209A JP4443474B2 (ja) 2005-06-14 2005-06-14 コマンド転送制御装置およびコマンド転送制御方法
PCT/JP2006/309768 WO2006134746A1 (en) 2005-06-14 2006-05-10 Command transfer controlling apparatus and command transfer controlling method
US11/628,684 US7725623B2 (en) 2005-06-14 2006-05-10 Command transfer controlling apparatus and command transfer controlling method
KR1020077000924A KR100864998B1 (ko) 2005-06-14 2006-05-10 명령 전송 제어 장치 및 명령 전송 제어 방법
EP12004147.0A EP2495665B1 (en) 2005-06-14 2006-05-10 Command transfer controlling apparatus and command transfer controlling method
CN2006800010238A CN101040270B (zh) 2005-06-14 2006-05-10 命令传输控制装置和命令传输控制方法
EP06732619A EP1894105B1 (en) 2005-06-14 2006-05-10 Command transfer controlling apparatus and command transfer controlling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005174209A JP4443474B2 (ja) 2005-06-14 2005-06-14 コマンド転送制御装置およびコマンド転送制御方法

Publications (2)

Publication Number Publication Date
JP2006350555A JP2006350555A (ja) 2006-12-28
JP4443474B2 true JP4443474B2 (ja) 2010-03-31

Family

ID=37532113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005174209A Active JP4443474B2 (ja) 2005-06-14 2005-06-14 コマンド転送制御装置およびコマンド転送制御方法

Country Status (6)

Country Link
US (1) US7725623B2 (ja)
EP (2) EP1894105B1 (ja)
JP (1) JP4443474B2 (ja)
KR (1) KR100864998B1 (ja)
CN (1) CN101040270B (ja)
WO (1) WO2006134746A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4996929B2 (ja) * 2007-01-17 2012-08-08 株式会社日立製作所 仮想計算機システム
US9201790B2 (en) * 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
JP5625737B2 (ja) * 2010-10-22 2014-11-19 富士通株式会社 転送装置、転送方法および転送プログラム
JP2012221038A (ja) * 2011-04-05 2012-11-12 Toshiba Corp メモリシステム
US9021179B2 (en) * 2011-06-10 2015-04-28 International Business Machines Corporation Store storage class memory information command
CN102904899A (zh) * 2012-10-26 2013-01-30 苏州阔地网络科技有限公司 一种动态控制网络连接的方法及***
CN102916870A (zh) * 2012-10-26 2013-02-06 苏州阔地网络科技有限公司 一种控制网络连接的方法及***
CN102932226B (zh) * 2012-10-26 2015-07-15 苏州阔地网络科技有限公司 一种减少网络连接的方法
US10037150B2 (en) * 2016-07-15 2018-07-31 Advanced Micro Devices, Inc. Memory controller with virtual controller mode
EP3270295A1 (en) * 2016-07-15 2018-01-17 Advanced Micro Devices, Inc. Memory controller with virtual controller mode
WO2023022356A1 (ko) * 2021-08-17 2023-02-23 삼성전자 주식회사 디스플레이 패널을 제어하는 커맨드들을 처리하는 타이밍을 동기화하기 위한 전자 장치 및 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212795A (en) * 1988-10-11 1993-05-18 California Institute Of Technology Programmable DMA controller
WO1994025914A2 (en) 1993-04-30 1994-11-10 Zenith Data Systems Corporation Symmetric multiprocessing system with unified environment and distributed system functions
US5752010A (en) 1993-09-10 1998-05-12 At&T Global Information Solutions Company Dual-mode graphics controller with preemptive video access
JP3190852B2 (ja) 1997-04-24 2001-07-23 甲府日本電気株式会社 情報処理システムのディスパッチ方式
US6643746B1 (en) 1997-12-24 2003-11-04 Creative Technology Ltd. Optimal multi-channel memory controller system
US6205504B1 (en) * 1998-09-30 2001-03-20 International Business Machines Corporation Externally provided control of an I2C bus
JP3558559B2 (ja) 1999-08-19 2004-08-25 Necエレクトロニクス株式会社 情報処理装置
JP4403677B2 (ja) * 2001-08-27 2010-01-27 ブラザー工業株式会社 通信装置及び通信システム
JP2003099384A (ja) 2001-09-20 2003-04-04 Nec Corp 負荷分散システム、負荷分散システムのホストコンピュータ、及び負荷分散プログラム
US6931478B2 (en) * 2002-02-06 2005-08-16 International Business Machines Corporation Implicit addressing sequential media drive with intervening converter simulating explicit addressing to host applications
JP2004046392A (ja) 2002-07-10 2004-02-12 Renesas Technology Corp Usbホスト制御回路
JP4170742B2 (ja) * 2002-11-29 2008-10-22 株式会社エヌ・ティ・ティ・ドコモ ダウンロードシステム、通信端末、サーバ、ダウンロード方法
US6985970B2 (en) 2003-04-25 2006-01-10 International Business Machines Corporation Data transfer with implicit notification
JP2005010956A (ja) * 2003-06-17 2005-01-13 Hitachi Ltd 情報処理装置の制御方法、情報処理装置、情報処理システム、及びプログラム

Also Published As

Publication number Publication date
US20080307115A1 (en) 2008-12-11
WO2006134746A1 (en) 2006-12-21
CN101040270A (zh) 2007-09-19
EP1894105B1 (en) 2012-06-27
EP2495665A3 (en) 2014-03-26
US7725623B2 (en) 2010-05-25
CN101040270B (zh) 2012-02-22
KR20070083459A (ko) 2007-08-24
EP2495665A2 (en) 2012-09-05
EP1894105A4 (en) 2008-09-17
EP2495665B1 (en) 2015-08-19
EP1894105A1 (en) 2008-03-05
KR100864998B1 (ko) 2008-10-23
JP2006350555A (ja) 2006-12-28

Similar Documents

Publication Publication Date Title
JP4443474B2 (ja) コマンド転送制御装置およびコマンド転送制御方法
JP4372043B2 (ja) コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
JP4416694B2 (ja) データ転送調停装置およびデータ転送調停方法
JP4493626B2 (ja) マルチプロセッサシステム、ライブラリモジュール、および描画処理方法
US11947477B2 (en) Shared buffer for multi-output display systems
JP4318664B2 (ja) 情報処理装置およびタスク実行方法
CN115335851B (zh) 多租户图形处理单元的动态透明重新配置
WO2007055067A1 (ja) 情報処理装置、グラフィックプロセッサ、制御用プロセッサおよび情報処理方法
EP2204740A1 (en) Memory management process and apparatus for the same
JP4244028B2 (ja) グラフィックプロセッサ、制御用プロセッサおよび情報処理装置
US7880742B2 (en) Information processing device, data transmission method, and electronic apparatus
JPH09297854A (ja) グラフィック描画装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091211

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091216

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4443474

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140122

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