JP2011070672A - Graphics processing systems - Google Patents

Graphics processing systems Download PDF

Info

Publication number
JP2011070672A
JP2011070672A JP2010213509A JP2010213509A JP2011070672A JP 2011070672 A JP2011070672 A JP 2011070672A JP 2010213509 A JP2010213509 A JP 2010213509A JP 2010213509 A JP2010213509 A JP 2010213509A JP 2011070672 A JP2011070672 A JP 2011070672A
Authority
JP
Japan
Prior art keywords
data
output
block
processing system
array
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.)
Granted
Application number
JP2010213509A
Other languages
Japanese (ja)
Other versions
JP5751782B2 (en
Inventor
Daren Croxford
ダレン・クロックスフォード
Lars Ericsson
ラース・エリクソン
Jon Erik Oterhals
ヨン・エリク・オテルハルス
Joern Nystad
ヨーン・ニスタッド
Eivind Liland
エイヴィン・リラント
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 claimed from GBGB0916924.4A external-priority patent/GB0916924D0/en
Priority claimed from GBGB1014602.5A external-priority patent/GB201014602D0/en
Application filed by ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2011070672A publication Critical patent/JP2011070672A/en
Application granted granted Critical
Publication of JP5751782B2 publication Critical patent/JP5751782B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Input (AREA)
  • Digital Computer Display Output (AREA)
  • Image Processing (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide frame buffer generation in a graphic processing system and improvement with respect to similar operations. <P>SOLUTION: A transaction elimination hardware unit 5 controls the writing of tiles generated by a tile-based graphics processor to a frame buffer in a memory 2. The transaction elimination hardware unit 5 has a signature generating unit 20 that generates a signature representing the contents of a tile in each tile. A signature comparator 23 compares the signature of a new tile received from the graphics processor, with the signatures of tiles already stored in the frame buffer. If the signatures do not match, the signature comparator 23 controls a write controller 24 to write the new tile in the frame buffer. When the signatures do not match, data are not written to the frame buffer, and the existing tile remains inside the frame buffer. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、グラフィックス処理システムに関するものであり、具体的には、グラフィックス処理システムにおけるフレームバッファ生成および類似のオペレーションに関するものである。   The present invention relates to graphics processing systems, and more particularly to frame buffer generation and similar operations in graphics processing systems.

当技術分野で知られているように、表示すべきグラフィックス処理システムの出力は、通常、表示する準備が整っているときにメモリ内のいわゆる「フレームバッファ」に書き込まれる。次いで、フレームバッファは、ディスプレイコントローラによって読み出され、表示するためディスプレイ(例えば、画面またはプリンタ)に出力される。   As is known in the art, the output of a graphics processing system to be displayed is typically written to a so-called “frame buffer” in memory when ready to display. The frame buffer is then read by the display controller and output to a display (eg, screen or printer) for display.

グラフィックスデータをフレームバッファを書き込むときに、比較的かなりの量の電力およびメモリ帯域幅が消費されるが、特に、フレームバッファがグラフィックスプロセッサの外部にあるメモリ内に常駐する場合、典型的にはそうである。例えば、新しいフレームを毎秒30フレーム以上のフレームレートでフレームバッファに書き込む必要があり、またそれぞれのフレームは、特に高解像度ディスプレイおよび高精細度(HD)グラフィックスのために、かなりの量のデータを必要とすることがある。   When writing graphics data to the frame buffer, a relatively significant amount of power and memory bandwidth is consumed, especially if the frame buffer resides in memory that is external to the graphics processor. Is so. For example, new frames need to be written to the frame buffer at a frame rate of 30 frames per second, and each frame contains a significant amount of data, especially for high-resolution displays and high-definition (HD) graphics. You may need it.

したがって、フレームバッファオペレーションの電力消費を低減することを試みることが望ましいことは知られており、さまざまな技術が、このような低減を達成することを試みるために提案されている。   Thus, it is known that it is desirable to attempt to reduce the power consumption of frame buffer operations, and various techniques have been proposed to attempt to achieve such a reduction.

これらの技術は、オンチップ(外部とは反対に)フレームバッファの形成、フレームバッファキャッシング(バッファリング)、フレームバッファ圧縮および動的色深度制御を含む。しかし、これらの技術のそれぞれは、それぞれの欠点と不利点を有する。   These techniques include on-chip (as opposed to external) frame buffer formation, frame buffer caching (buffering), frame buffer compression and dynamic color depth control. However, each of these techniques has its own drawbacks and disadvantages.

例えば、オンチップフレームバッファを使用すると、特に、高解像度ディスプレイの場合に、大量のオンチップリソースが必要になることがある。フレームバッファキャッシングまたはバッファリングは、フレーム生成が典型的にはフレームバッファ表示に対し非同期であるため、実用的とはいえない。フレームバッファ圧縮は役に立つことがあるが、必要なロジックは比較的複雑なものであり、フレームバッファフォーマットが変更される。不可逆フレームバッファ圧縮を使用すると、画質が低下する。動的色深度制御も、同様に、不可逆な方式であり、したがって、画質が低下する。   For example, using an on-chip frame buffer may require a large amount of on-chip resources, especially for high resolution displays. Frame buffer caching or buffering is not practical because frame generation is typically asynchronous to the frame buffer display. Although frame buffer compression can be useful, the required logic is relatively complex and the frame buffer format is changed. Using lossy frame buffer compression degrades image quality. Similarly, the dynamic color depth control is an irreversible method, and therefore the image quality is degraded.

したがって、出願人は、グラフィックス処理システムにおけるフレームバッファ生成および類似のオペレーションに対する改善の余地がまだあると確信している。   Accordingly, applicants are convinced that there is still room for improvement to frame buffer generation and similar operations in graphics processing systems.

本発明の第1の態様によれば、グラフィックス処理システムによって生成されるデータがデータの出力配列を出力バッファ内に形成するために使用されるグラフィックス処理システムを操作する方法が提供され、この方法は、
グラフィックス処理システムがデータの出力配列の特定の領域を表すデータのブロックを出力バッファに書き込むことによってデータの出力配列を出力バッファ内に格納するステップと、
データのブロックが出力データ配列に対して生成されているときに、グラフィックス処理システムがデータのそのブロックをデータの少なくとも1つの他のブロックと比較し、この比較に基づいてデータの生成されたブロックを出力バッファに書き込むかどうかを決定するステップとを含む。
According to a first aspect of the present invention, there is provided a method of operating a graphics processing system in which data generated by the graphics processing system is used to form an output array of data in an output buffer. The method is
A graphics processing system storing the data output array in the output buffer by writing a block of data representing a particular region of the data output array to the output buffer;
When a block of data is being generated against the output data array, the graphics processing system compares that block of data with at least one other block of data, and the generated block of data based on this comparison Determining whether to write to the output buffer.

本発明の第2の態様によれば、グラフィックス処理システムが実現され、このシステムは、
グラフィックスプロセッサによって供給されるべきデータの出力配列を形成するためのデータを生成するための手段を備えるグラフィックスプロセッサと、
グラフィックスプロセッサによって生成されたデータを、データの配列の特定の領域を表すデータのブロックを出力バッファに書き込むことによってデータの配列として出力バッファ内に格納するための手段とを備え、
グラフィックス処理システムは、
出力データ配列に対して生成されたデータのブロックをデータの少なくとも1つの他のブロックと比較し、その比較に基づいてデータの生成されたブロックを出力バッファに書き込むかどうかを決定するための手段をさらに備える。
According to a second aspect of the present invention, a graphics processing system is realized, the system comprising:
A graphics processor comprising means for generating data for forming an output array of data to be supplied by the graphics processor;
Means for storing the data generated by the graphics processor in the output buffer as an array of data by writing to the output buffer a block of data representing a particular region of the array of data;
Graphics processing system
Means for comparing the generated block of data against the output data array with at least one other block of data and deciding whether to write the generated block of data to the output buffer based on the comparison Further prepare.

本発明の第3の態様によれば、グラフィックスプロセッサが実現され、このプロセッサは、
グラフィックスプロセッサによって生成され、グラフィックスプロセッサによって供給されるべきデータの出力配列の特定の領域を表す、データのブロックを出力バッファに書き込むための手段と、
出力データ配列に対して生成されたデータのブロックをデータの少なくとも1つの他のブロックと比較し、その比較に基づいてデータのブロックを出力バッファに書き込むかどうかを決定するための手段とを備える。
According to a third aspect of the invention, a graphics processor is realized, the processor comprising:
Means for writing a block of data to an output buffer that represents a particular region of the output array of data that is generated by the graphics processor and to be supplied by the graphics processor;
Means for comparing the block of data generated for the output data array with at least one other block of data and determining whether to write the block of data to the output buffer based on the comparison.

本発明は、データの出力配列の特定の領域を表すデータのブロック(これは、例えば、グラフィックスプロセッサによって生成されるレンダリング済みタイルとすることも可能であり、また好ましい一実施形態では、グラフィックスプロセッサによって生成されるレンダリング済みタイルである)を出力バッファに書き込むことによってデータの出力配列(これは、例えば、表示されるべきフレームとすることも可能であり、また好ましい一実施形態では、表示されるべきフレームである)が出力バッファ(これは、例えば、フレームバッファとすることも可能であり、また好ましい一実施形態では、フレームバッファである)に格納されるグラフィックス処理システムに関するものであり、またそのようなグラフィックス処理システムにおいて実装される。   The present invention may be a block of data that represents a particular region of the output array of data (which may be, for example, a rendered tile generated by a graphics processor, and in a preferred embodiment, graphics The output array of data (which can be, for example, a frame to be displayed, is also displayed, in one preferred embodiment, by writing processor-generated tiles) to an output buffer. Is a graphics processing system that is stored in an output buffer (which can be, for example, a frame buffer, and in a preferred embodiment is a frame buffer); Also implemented in such a graphics processing system It is.

したがって、本質的に、本発明は、グラフィックス処理システムの「最終」出力全体が、単一の出力「フレーム」丸ごと直接的にではなく、ブロック毎にメモリ内に格納されるグラフィックス処理システムに関係するものであり、またそのようなグラフィックス処理システムにおいて実装されることが意図されている。   Thus, in essence, the present invention provides a graphics processing system in which the entire “final” output of a graphics processing system is stored in memory on a block-by-block basis rather than directly on a single output “frame”. And is intended to be implemented in such a graphics processing system.

例えば、また当業者であれば理解するように、これは、タイルベースのグラフィックス処理システムに当てはまり、その場合、本発明の仕方で考察され、比較されるデータのそれぞれのブロックは、グラフィックスプロセッサのレンダリングプロセスが生成する「タイル」に対応するものとしてよい(また好ましい一実施形態では対応する)(ただし、以下でさらに説明するように、このことは本質的ではない)。   For example, and as will be appreciated by those skilled in the art, this applies to tile-based graphics processing systems, where each block of data considered and compared in the manner of the present invention is a graphics processor. (And in a preferred embodiment, it corresponds) (although this is not essential, as will be described further below).

(当技術分野で知られているように、タイルベースのレンダリングでは、レンダリングプロセスの二次元出力配列またはフレーム(「レンダーターゲット」)(例えば、また典型的には、レンダリングされているシーンを表示するために表示されることになる)は、レンダリングプロセスのために、通常「タイル(tiles)」と称される、複数のより小さな領域に細分または区分化される。タイル(部分領域)は、それぞれ個別にレンダリングされる(典型的には次から次へと)。次いで、レンダリング済みタイル(部分領域)は、再結合されて、例えば表示するために、完全な出力配列(フレーム)(レンダーターゲット)を形成する。   (As is known in the art, tile-based rendering is a two-dimensional output array or frame ("render target") of the rendering process (e.g., typically also displaying the scene being rendered). Are to be subdivided or partitioned into a plurality of smaller areas, usually referred to as “tiles”, for the rendering process. Rendered separately (typically from one to the next), then the rendered tiles (partial regions) are recombined, for example to display a complete output array (frame) (render target) Form.

「タイリング(tiling)」および「タイルベース(tile based)」レンダリングに通常使用される他の用語として、「チャンキング(chunking)」(部分領域は、「チャンク(chunks)」と称される)および「バケット(bucket)」レンダリングが挙げられる。「タイル」および「タイリング」という用語は、本明細書では、便宜上使用されるものであるが、これらの用語は、すべての代替えおよび同等の用語および技術を包含することが意図されていることは理解されるであろう。   Another term commonly used for "tiling" and "tile based" rendering is "chunking" (partial regions are referred to as "chunks") And "bucket" rendering. The terms “tile” and “tiling” are used herein for convenience, but these terms are intended to encompass all alternative and equivalent terms and techniques. Will be understood.

本発明では、それぞれの出力データブロック(例えば、レンダリング済みタイル)が準備整い次第単純にフレームバッファに書き出されるのではなく、その代わりに、出力データブロックは、他の1つまたは複数のデータブロック(例えば、1つまたは複数のタイル)(少なくとも1つのデータブロック)と最初に比較され、次いで、その比較に基づいて(新しい)データブロックを出力(例えば、フレーム)バッファに書き込む(かどうか)が判定される。   In the present invention, each output data block (e.g., a rendered tile) is not simply written to the frame buffer as soon as it is ready, but instead the output data block is one or more other data blocks ( (E.g. one or more tiles) (at least one data block) is first compared and then based on that comparison it is determined whether (new) data blocks are written to the output (e.g. frame) buffer Is done.

以下でさらに詳しく説明されるように、出願人は、このプロセスを使用することにより、使用時に出力(例えば、フレーム)バッファに書き込まれるデータブロック(例えば、レンダリング済みタイル)の個数を著しく減らし、それにより、出力(例えば、フレーム)バッファトランザクションの回数を著しく減らし、したがって、出力(例えば、フレーム)バッファオペレーションに関係する電力およびメモリ帯域幅消費を著しく減らすことができることを発見し、理解した。   As described in more detail below, Applicants use this process to significantly reduce the number of data blocks (e.g., rendered tiles) that are written to the output (e.g., frame) buffer during use. Has found and understood that the number of output (eg, frame) buffer transactions can be significantly reduced, and thus the power and memory bandwidth consumption associated with output (eg, frame) buffer operations can be significantly reduced.

例えば、新たに生成されたデータブロックが出力バッファ内にすでに存在している、またはすでに存在することになるデータブロック(例えば、レンダリング済みタイル)と同じであるとわかった場合、新たに生成されたデータブロックを出力バッファに書き込む必要はないと判定することができ(また好ましくは判定し)、それにより、出力バッファ「トランザクション」が不要になる。   For example, if a newly created data block already exists in the output buffer or is found to be the same as a data block that will already exist (e.g. a rendered tile), the newly created data block It can be determined (and preferably determined) that the data block need not be written to the output buffer, thereby eliminating the need for an output buffer “transaction”.

さらに、出願人は、例えばフレーム毎に変化しない画像のいくつかの領域(空、カメラ位置が静止しているときのプレイフィールド、多くのアプリケーションに対するユーザーインターフェイスの大半など)において、新しいデータブロック(例えば、レンダリング済みタイル)が出力(例えば、フレーム)バッファにすでに存在しているか、またはすでに存在することになるデータブロック(例えば、レンダリング済みタイル)と同じであるか、または類似しているのは比較的よくありうることと認識している。したがって、そのような領域(例えばタイル)を識別し、次いで、所望するなら、そのような領域(例えばタイル)を出力(例えば、フレーム)バッファに再び書き込むことを回避することを行いやすくすることによって、出力(例えば、フレーム)バッファへの書き込みトラヒック(書き込みトランザクション)の大幅節減を達成することができる。   In addition, applicants can use new data blocks (e.g., in some areas of the image that do not change from frame to frame (e.g., sky, play field when the camera position is stationary, most of the user interface for many applications, etc.) Compared is the same or similar to the data block (e.g. rendered tile) that already exists in the output (e.g. frame) buffer or will already exist Recognize that this is possible. Therefore, by identifying such areas (e.g. tiles) and then making it easier to avoid rewriting such areas (e.g. tiles) into the output (e.g. frame) buffer if desired , Significant savings in write traffic (write transactions) to the output (eg, frame) buffer can be achieved.

例えば、出願人は、いくつかのよくあるゲームの場合に、それぞれのフレーム内のレンダリング済みタイルの最大20%(またはさらにそれ以上)が変更されていないことがあることを発見した。フレーム内のタイルの20%が、(本発明を使用することによって)フレームバッファに再書き込みされない場合、毎秒30フレーム(fps)のHD1080pのグラフィックスでは、推定される電力およびメモリ帯域幅の節減量は、約30mWおよび50MB/sとなることがある。さらに多くのレンダリング済みタイルがフレーム毎に変化しない場合、さらに大きな電力および帯域幅の節減が達成されうる。例えば、レンダリング済みタイルの90%が再書き込みされない(変更されていない)場合、この節減量は、135mWおよび220MB/sのオーダーとしてよい。   For example, Applicants have discovered that for some common games, up to 20% (or even more) of the rendered tiles in each frame may not have changed. HD1080p graphics at 30 frames per second (fps) and estimated power and memory bandwidth savings if 20% of the tiles in a frame are not rewritten to the frame buffer (by using the present invention) Can be about 30mW and 50MB / s. Greater power and bandwidth savings can be achieved if more rendered tiles do not change from frame to frame. For example, if 90% of the rendered tiles are not rewritten (not changed), this savings may be on the order of 135 mW and 220 MB / s.

したがって、本発明を使用し、不要な出力(例えば、フレーム)バッファトランザクションの識別および排除を事実上しやすくすることによって、フレームおよび他の出力バッファオペレーションに使用される消費電力およびメモリ帯域幅を著しく低減することができる。   Thus, the power consumption and memory bandwidth used for frame and other output buffer operations can be significantly reduced by using the present invention, making it virtually easier to identify and eliminate unwanted output (e.g. frame) buffer transactions. Can be reduced.

さらに、上述の従来技術の方式に比べて、本発明では、必要なオンチップハードウェアが比較的わずかで済み、不可逆プロセスとすることができ、またフレームバッファフォーマットを変更しない。また、既存のフレームバッファ電力低減方式と連携して、またそれを補完する形で容易に使用することができ、これにより、所望するならさらに節電しやすくすることができる。   Furthermore, compared to the above-described prior art scheme, the present invention requires relatively little on-chip hardware, can be an irreversible process, and does not change the frame buffer format. In addition, it can be easily used in cooperation with and complementing an existing frame buffer power reduction method, thereby making it easier to save power if desired.

グラフィックス処理システムによって生成されるデータを使用して形成されるデータの出力配列は、好適な、望ましいそのようなデータの配列、つまり、グラフィックスプロセッサを使用して生成することができるデータの配列とすることができる。特に好ましい一実施形態では、これは、表示するための出力フレームを含むが、これは、グラフィックステクスチャ(例えば、レンダー「ターゲット」が、グラフィックスプロセッサを使用して生成するテクスチャである(例えば、「テクスチャにレンダー」オペレーションにおいて))またはグラフィックスプロセッサシステムの出力の書き込み先となる他の表面などのグラフィックスプロセッサの他の出力を含むこともできるか、またはその代わりに含むことができる。   The output array of data formed using the data generated by the graphics processing system is a suitable, desirable array of such data, ie an array of data that can be generated using a graphics processor. It can be. In one particularly preferred embodiment, this includes an output frame for display, which is a texture that a graphics texture (e.g., a render `` target '' generates using a graphics processor (e.g., In a “render to texture” operation)) or other outputs of the graphics processor, such as other surfaces to which the graphics processor system output is written, can be included or alternatively included.

同様に、データの書き込み先となる出力バッファは、好適なそのような任意のバッファを含むことができ、また好適な、望ましい仕方でメモリ内に構成することができる。例えば、これは、オンチップバッファでもよいが、外部バッファでもよい(また、実際には、以下で説明されるように、外部バッファ(メモリ)である可能性が高いものとしてよい)。同様に、これは、この目的に合わせた専用メモリとすることができるか、または他のデータにも使用されるメモリの一部とすることもできる。好ましい一実施形態では、出力バッファは、グラフィックス処理システム用の、および/またはグラフィックス処理システムの出力の供給先となるディスプレイ用のフレームバッファである。   Similarly, the output buffer to which data is written can include any suitable such buffer, and can be configured in memory in any suitable and desirable manner. For example, this may be an on-chip buffer, but may also be an external buffer (and may actually be an external buffer (memory), as will be explained below). Similarly, it can be dedicated memory for this purpose, or it can be part of memory that is also used for other data. In a preferred embodiment, the output buffer is a frame buffer for the graphics processing system and / or for the display to which the graphics processing system output is supplied.

生成されたデータブロックが比較される他の1つまたは複数のデータブロックを必要に応じて選択することができる。特に好ましい一実施形態では、これらは、出力バッファ内にすでに格納されているデータブロックである。   One or more other data blocks with which the generated data blocks are compared can be selected as needed. In one particularly preferred embodiment, these are data blocks already stored in the output buffer.

したがって、特に好ましい一実施形態では、データブロック比較は、出力データ配列に対して生成されている(例えば、好ましくは出力バッファを書き込む準備ができている)データのブロックを出力バッファ内にすでに格納されているデータの少なくとも1つの他のブロックと比較する(次いで、その比較に基づいてデータの新しいブロックを出力バッファに書き込むかどうかを決定する)ステップ(または手段)を含む。   Thus, in one particularly preferred embodiment, a data block comparison is already stored in the output buffer for the block of data that has been generated for the output data array (e.g., preferably ready to write the output buffer). A step (or means) of comparing to at least one other block of data being stored (and then determining whether to write a new block of data to the output buffer based on the comparison).

この場合、出力バッファ内にすでに格納されているデータの(複数の)ブロックは、現在の出力データ配列に対してすでに格納されているデータのブロックとしてよいが、特に好ましい一実施形態では、前のデータ配列(つまり、出力バッファ内にすでに格納されているデータ配列)からのデータの1つの(または複数の)ブロックであるか、またはそのようなブロックでもある。したがって、好ましい一実施形態では、生成されたデータブロックは、前の出力データ配列からの1つまたは複数のブロックと比較される。好ましい一実施形態では、生成されたデータブロックは、前の出力データ配列からの1つまたは複数のブロックとのみ比較される。   In this case, the block (s) of data already stored in the output buffer may be blocks of data already stored for the current output data array, but in a particularly preferred embodiment, One or more blocks of data from a data array (ie, a data array already stored in the output buffer), or such a block. Thus, in a preferred embodiment, the generated data block is compared with one or more blocks from the previous output data array. In a preferred embodiment, the generated data block is only compared with one or more blocks from the previous output data array.

したがって、特に好ましい一実施形態では、この比較は、出力(例えば、フレーム)バッファ内にすでに格納されている前のデータ配列からのデータブロックを含む。次いで、これにより、類似のデータブロックを、前のデータ配列からの出力バッファ内にすでに存在している場合に、再び現在の(新しい)データ配列に対する出力バッファに書き込まなくて済むようにできる。これは、一連の類似のデータ配列(ビデオシーケンスのフレームなど)が生成されている場合に特に有用であると思われる。   Thus, in one particularly preferred embodiment, this comparison includes data blocks from previous data arrays already stored in the output (eg, frame) buffer. This in turn allows a similar data block not to be written again to the output buffer for the current (new) data array if it already exists in the output buffer from the previous data array. This may be particularly useful when a series of similar data sequences (such as frames of a video sequence) are being generated.

他の好ましい実施形態では、データブロック比較プロセスは、同じデータ配列(現在のデータ配列)のみについて生成されているブロックに関して(ブロックを比較することによって)実行される。   In another preferred embodiment, the data block comparison process is performed (by comparing blocks) on blocks that are being generated only for the same data array (current data array).

この場合、例えば、出力バッファにすでに格納されている現在の配列に対するデータブロックとの比較を行うことができ、および/または現在の出力配列について生成されているが、出力バッファにはまだ格納されていない他のブロックとの比較を行うことができる(好ましい一実施形態では、そのような比較を行う)。   In this case, for example, a comparison can be made with the data block for the current array already stored in the output buffer and / or generated for the current output array but not yet stored in the output buffer. Comparisons with other non-blocks can be made (in one preferred embodiment, such comparisons are made).

この場合、データ配列に書き込まれるべきそれぞれのデータブロックが生成されるときに、これは、別の1つのデータブロックまたはデータ配列の複数のブロックと比較され、次いで、新しいデータブロックが、その比較に基づいて書き込まれるか、または書き込まれないようにできる。したがって、特に好ましい一実施形態では、データ配列に対するデータブロックが完成したときに、そのデータブロックをデータ配列に対する少なくとも1つの他のデータブロックと比較し、比較に基づいて完成したデータブロックをデータ配列に書き込むかどうかを決定するステップまたは手段がある。   In this case, when each data block to be written to the data array is generated, it is compared with another data block or blocks of the data array, and then a new data block is included in the comparison. Can be written based on or not written. Thus, in a particularly preferred embodiment, when a data block for a data array is completed, the data block is compared with at least one other data block for the data array, and the completed data block is converted into a data array based on the comparison. There is a step or means for determining whether to write.

特に好ましい一実施形態では、今の(現在の)データ配列に対するデータブロックおよび出力バッファにすでに格納されている前のデータ配列のデータブロックの両方とのデータブロック比較が行われる。   In a particularly preferred embodiment, a data block comparison is performed with both the data block for the current (current) data array and the data block of the previous data array already stored in the output buffer.

したがって、好ましい一実施形態では、出力バッファ内に格納されるべき、またはすでに格納されているデータブロックとの比較が行われる。   Thus, in a preferred embodiment, a comparison is made with a data block to be stored in the output buffer or already stored.

現在の出力データ配列に対する他のデータブロックとの比較があり、これによりその配列に対して生成されたデータブロックが、注目しているデータブロック位置に対して出力バッファ内にデータブロックがすでにないとしても出力バッファに書き込むことができない場合、データブロックそれ自体は出力バッファに書き込めないけれども、好ましくは、データ配列の他のブロックが処理されなければならないことを示す注目しているブロック位置に対するメタデータが注目するブロック位置について生成され、格納される。そこで、データ配列を使用するか、または処理することになっているデバイスは、注目するブロックについてデータ配列の他のどのデータブロックを処理すべきかを識別することができる。   There is a comparison of the current output data array with other data blocks, so that the data block generated for that array is not already in the output buffer for the data block position of interest. If the data block itself cannot be written to the output buffer, the data block itself cannot be written to the output buffer, but preferably there is metadata for the block location of interest indicating that other blocks of the data array must be processed. A block position of interest is generated and stored. The device that is to use or process the data array can then identify which other data block of the data array to process for the block of interest.

考察され、比較されるデータのブロックは、それぞれ、出力バッファ内に格納されるべきデータの出力配列全体の好適な、所望の任意の領域(エリア)を表すことができる。データの出力配列全体が、それぞれ出力配列全体の一部を表す複数の識別可能なより小さな領域に分割または区分化される限り、またそれに応じて本発明の仕方で識別され、比較されうるデータのブロックとして表すことができる限り、データのブロックへの出力配列の細分を必要に応じて実行することができる。   Each block of data considered and compared can represent any suitable, desired area of the entire output array of data to be stored in the output buffer. As long as the entire output array of data is divided or partitioned into a plurality of identifiable smaller regions, each representing a portion of the entire output array, and accordingly the data that can be identified and compared in the manner of the present invention As long as it can be represented as a block, subdivision of the output array into blocks of data can be performed as needed.

データのそれぞれの生成されたブロックは、好ましくは、出力配列全体の異なる部分(部分領域)を表す(これらのブロックは、所望するなら重なり合うことも可能である)。それぞれのブロックは、配列内の複数のデータ位置などの、出力配列の適切な部分(エリア)を表すであろう。好適なデータブロックサイズは、出力データ配列内において8×8、16×16、または32×32のデータ位置となる。   Each generated block of data preferably represents a different part (partial region) of the entire output array (these blocks can also overlap if desired). Each block will represent an appropriate portion (area) of the output array, such as multiple data positions within the array. The preferred data block size is 8 × 8, 16 × 16, or 32 × 32 data positions in the output data array.

特に好ましい一実施形態では、データの出力配列は、規則正しいサイズおよび形状の領域(データのブロック)に、好ましくは正方形または矩形の形の領域に分割される。しかし、これは本質的でなく、他の配置構成も、所望するなら使用することが可能である。   In a particularly preferred embodiment, the output array of data is divided into regularly sized and shaped areas (blocks of data), preferably square or rectangular shaped areas. However, this is not essential and other arrangements can be used if desired.

特に好ましい一実施形態では、それぞれのデータブロックは、グラフィックスプロセッサがそのレンダリング出力として生成するレンダリング済みタイルに対応する。これは、本発明を実装する特に単純明快な方法であり、この方法では、グラフィックスプロセッサがレンダリングタイルを直接生成し、したがって、本発明の仕方で考察され、比較されるデータブロックを「生成する」ためにさらなる処理を必要としない。したがって、この場合、グラフィックスプロセッサによって生成されるそれぞれのレンダリング済みタイルが出力(例えば、フレーム)バッファに書き込まれるときに、他のレンダリング済みの1つまたは複数のタイルと比較され、次いで、その比較に基づいて、新たにレンダリング済みタイルが出力バッファに書き込まれるか、または書き込まれない。   In a particularly preferred embodiment, each data block corresponds to a rendered tile that the graphics processor generates as its rendering output. This is a particularly straightforward way of implementing the present invention, in which the graphics processor directly generates rendering tiles and thus “generates” data blocks that are considered and compared in the manner of the present invention. No further processing is required. Thus, in this case, each rendered tile generated by the graphics processor is compared to one or more other rendered tiles as it is written to the output (e.g. frame) buffer, and then the comparison Newly rendered tiles are or are not written to the output buffer.

したがって、本発明の第4の態様によれば、タイルベースのグラフィックス処理システムを操作する方法であって、グラフィックス処理システムによって生成されるレンダリング済みタイルが、生成された後、出力バッファに書き込まれる、方法が提供され、この方法は、
出力バッファに出力するためのタイルが完成したときに、グラフィックス処理システムがそのタイルを出力バッファにすでに格納されているか、または格納すべき少なくとも1つの他のタイルと比較し、この比較に基づいて完成したタイルを出力バッファに書き込むかどうかを決定するステップを含む。
Thus, according to a fourth aspect of the present invention, a method for operating a tile-based graphics processing system, wherein a rendered tile generated by a graphics processing system is generated and written to an output buffer A method is provided, which is
When a tile for output to the output buffer is complete, the graphics processing system compares that tile to at least one other tile that is already stored or should be stored in the output buffer, and based on this comparison Determining whether to write the completed tile to the output buffer.

本発明の第5の態様によれば、グラフィックス処理システムが実現され、このシステムは、
グラフィックスプロセッサによって供給されるべき出力の出力タイルを生成するための手段を備えるタイルベースのグラフィックスプロセッサと、
グラフィックスプロセッサによって生成される出力タイルを、出力タイルが完成した後に出力バッファに書き込むための手段とを備え、
グラフィックス処理システムは、
完成した出力タイルを出力バッファにすでに格納されているか、または格納すべき少なくとも1つのタイルと比較し、その比較に基づいて完成したタイルを出力バッファに書き込むかどうかを決定するための手段をさらに備える。
According to a fifth aspect of the present invention, a graphics processing system is realized, the system comprising:
A tile-based graphics processor comprising means for generating output tiles of output to be supplied by the graphics processor;
Means for writing output tiles generated by the graphics processor to an output buffer after the output tiles are completed;
Graphics processing system
Means for comparing the completed output tile with at least one tile already stored in the output buffer or to be stored and determining whether to write the completed tile to the output buffer based on the comparison .

本発明の第6の態様によれば、タイルベースのグラフィックスプロセッサが実現され、このグラフィックスプロセッサは、
グラフィックスプロセッサによって供給されるべき出力の出力タイルを生成するための手段と、
グラフィックスプロセッサによって生成される出力タイルを、出力タイルが完成した後に出力バッファに書き込むための手段と、
グラフィックスプロセッサが完成させた出力タイルを出力バッファにすでに格納されているか、または格納すべき少なくとも1つのタイルと比較し、その比較に基づいて完成したタイルを出力バッファに書き込むかどうかを決定するための手段とを備える。
According to a sixth aspect of the invention, a tile-based graphics processor is realized, the graphics processor comprising:
Means for generating output tiles of output to be supplied by the graphics processor;
Means for writing output tiles generated by the graphics processor to an output buffer after the output tiles are completed;
To compare the output tile completed by the graphics processor to at least one tile already stored in the output buffer or to be stored, and to determine whether to write the completed tile to the output buffer based on the comparison Means.

当業者であれば理解するように、本発明のこれらの態様および実施形態は、適宜、本明細書で説明されている本発明の好ましい、およびオプションの機能の1つまたは複数あるいはすべてを備えることができ、好ましくは備える。したがって、例えば、好ましい一実施形態における出力バッファは、フレームバッファである。   As will be appreciated by those skilled in the art, these aspects and embodiments of the present invention may include, where appropriate, one or more or all of the preferred and optional features of the present invention described herein. And preferably comprises. Thus, for example, the output buffer in a preferred embodiment is a frame buffer.

本発明のこれらの態様および配置構成において、レンダーターゲット(出力データ配列)は、レンダリングのために、所望の、および好適な任意のサイズおよび形状のいくつかの(レンダリング)タイルに分割することができる。レンダリング済みタイルは、好ましくは、当技術分野で知られているように、すべて同じサイズおよび形状であるが、ただし、これは本質的なことではない。好ましい一実施形態では、それぞれのレンダリング済みタイルは、矩形であり、好ましくは、サイズに関して8×8、16×16、または32×32のサンプリング位置をとる。   In these aspects and arrangements of the present invention, the render target (output data array) can be divided into several (rendering) tiles of any size and shape desired and suitable for rendering. . The rendered tiles are preferably all the same size and shape as is known in the art, although this is not essential. In a preferred embodiment, each rendered tile is rectangular and preferably takes a sampling position of 8 × 8, 16 × 16, or 32 × 32 with respect to size.

特に好ましい一実施形態では、本発明は、レンダリングプロセスが操作する(生成する)タイルと異なるサイズおよび/または形状のデータブロックを使用して、前記に加えて、または前記の代わりに実行されうるが、好ましくは、前記に加えて、または前記の代わりに実行される。   In one particularly preferred embodiment, the invention may be performed in addition to or instead of using data blocks of different sizes and / or shapes than the tiles that the rendering process manipulates (generates). Preferably, in addition to or in lieu of the foregoing.

例えば、好ましい一実施形態では、本発明において考察され、比較される1つの、またはそれぞれのデータブロックは、一組の複数の「レンダリング済み」タイルで構成され、および/またはレンダリング済みタイルの小部分のみを含みうる。これらの場合には、実際には、グラフィックスプロセッサが生成する1つまたは複数のレンダリング済みタイルから所望のデータブロックを「生成する」中間段階がありうる。   For example, in a preferred embodiment, one or each data block considered and compared in the present invention is comprised of a set of multiple “rendered” tiles and / or a small portion of a rendered tile. May only be included. In these cases, there may actually be an intermediate stage that “generates” the desired data block from one or more rendered tiles generated by the graphics processor.

好ましい一実施形態では、同じブロック(領域)構成(サイズおよび形状)が、データの出力配列全体にわたって使用される。しかし、他の好ましい実施形態では、異なるブロック構成(例えば、そのサイズおよび/または形状に関して)が、所定の出力データ配列の異なる領域に対して使用される。したがって、好ましい一実施形態では、異なるデータブロックサイズが、同じ出力データ配列の異なる領域に対して使用されうる。   In a preferred embodiment, the same block (region) configuration (size and shape) is used throughout the output array of data. However, in other preferred embodiments, different block configurations (eg, with respect to their size and / or shape) are used for different regions of a given output data array. Thus, in a preferred embodiment, different data block sizes can be used for different regions of the same output data array.

特に好ましい一実施形態では、ブロック構成(例えば、考察されているブロックのサイズおよび/または形状に関して)は、使用中に、例えば、出力データ配列に基づいて出力データ配列(例えば、出力フレーム)上で変更することができる。最も好ましくは、ブロック構成は、排除される(回避される)出力バッファトランザクションの数または割合に応じて、例えば、また好ましくは、使用中に適応変更することができる。例えば、また好ましくは、特定のブロックサイズを使用しても、ブロックが出力バッファに書き込まれる必要がない確率が低いだけであることがわかっていれば、データのブロックを出力バッファに書き込まなくて済むようにする確率を高めることを試みるため、考察されているブロックサイズをデータのその後の出力配列に対して変更する(例えば、また好ましくは、小さくする)ことが可能である。   In a particularly preferred embodiment, the block configuration (e.g. with respect to the size and / or shape of the block under consideration) is in use on the output data array (e.g. output frame), e.g. based on the output data array. Can be changed. Most preferably, the block configuration can be adapted during use, for example and preferably, depending on the number or percentage of output buffer transactions that are eliminated (avoided). For example, and preferably, a block of data need not be written to the output buffer if it is known that using a specific block size only has a low probability that the block does not need to be written to the output buffer. In order to try to increase the probability of doing so, it is possible to change (eg, also preferably reduce) the considered block size for subsequent output arrays of data.

データブロックサイズを使用中に変更する場合、その変更は、例えば、出力データ配列全体にわたって、または出力データ配列の特定の部分のみにわたって、望み通りに実行できる。   If the data block size is changed in use, the change can be performed as desired, for example, over the entire output data array, or only over a specific portion of the output data array.

新たに生成された出力データブロック(例えば、レンダリング済みタイル)と他のデータブロックとの比較を、望み通りに、また好適な任意の仕方で実行することができる。比較は、好ましくは、新しいデータブロックが他のデータブロックと同じである(または少なくとも十分に類似している)かどうかを判定できるような比較である。したがって、例えば、新しいデータブロックの内容の一部または全部を、他のデータブロックの内容の一部または全部と比較することができる(好ましい一実施形態では、これが実行される)。   Comparison of the newly generated output data block (eg, rendered tile) with other data blocks can be performed as desired and in any suitable manner. The comparison is preferably such that it can be determined whether the new data block is the same (or at least sufficiently similar) to the other data blocks. Thus, for example, some or all of the contents of a new data block can be compared to some or all of the contents of other data blocks (in a preferred embodiment, this is done).

特に好ましい一実施形態では、この比較は、新しい出力データブロックの内容を表し、および/または新しい出力データブロックの内容から導出される情報を、他のデータブロックの内容を表し、および/または他のデータブロックの内容から導出される情報と比較して、例えば、また好ましくは、データブロックの類似度かあるいはそれと違う何かを評価することによって実行される。   In one particularly preferred embodiment, this comparison represents the contents of the new output data block and / or information derived from the contents of the new output data block, represents the contents of other data blocks, and / or other Compared with information derived from the contents of the data block, for example and preferably, it is performed by evaluating the similarity of the data block or something different.

それぞれのデータブロックの内容を表す情報(例えば、レンダリング済みタイル)は、好適な任意の形式のものとしてよいが、好ましくは、データブロック上の内容に基づくか、またはデータブロック上の内容から導出される。最も好ましくは、これは、データブロックの内容から生成されるか、またはデータブロックの内容に基づくデータブロックに対する「署名」の形をとる。このようなデータブロックの内容の「署名」は、例えば、また好ましくは、データブロックから導出される(データブロックに関して生成される)チェックサム、CRC、またはハッシュ値などの、データブロックの内容を表すと考えることができる好適な任意の一組の導出情報を含むことができる。好適な署名としては、CRC32などの標準的なCRC、またはMD5、SHA-1などの他の形式の署名が挙げられる。   Information representing the contents of each data block (e.g., rendered tiles) may be of any suitable form, but is preferably based on or derived from the contents on the data block. The Most preferably, it is generated from the content of the data block or takes the form of a “signature” for the data block based on the content of the data block. Such a “signature” of the content of the data block represents, for example and preferably, the content of the data block, such as a checksum, CRC or hash value derived from the data block (generated for the data block) Any suitable set of derivation information that can be considered can be included. Suitable signatures include standard CRCs such as CRC32 or other forms of signatures such as MD5, SHA-1.

したがって、特に好ましい一実施形態では、データブロックの内容を示すか、または表す、および/またはデータブロックの内容から導出される署名は、比較されるべきデータブロック毎に生成され、この比較プロセスは、各データブロックの署名を比較するステップを含む。   Thus, in a particularly preferred embodiment, a signature indicating or representing the content of the data block and / or derived from the content of the data block is generated for each data block to be compared, the comparison process comprising: Comparing the signatures of each data block.

したがって、特に好ましい一実施形態では、システムが本発明の仕方で動作している場合、CRC値などの署名は、出力データ配列に対して生成されるデータブロック毎に(例えば、また好ましくは、生成される出力レンダリング済みタイル毎に)生成される。CRC関数またはハッシュ関数などの好適な任意の「署名」生成プロセスを使用して、データブロックに対する署名を生成することができる。好ましくは、データブロック(例えば、タイル)データは、データブロックの署名を生成する際に、選択された、好ましくは特定のもしくは所定の、順序で処理される。これは、消費電力を低減するのにさらに役立ちうる。好ましい一実施形態では、データは、ヒルベルト順序(ヒルベルト曲線)を使用して処理される。   Thus, in one particularly preferred embodiment, when the system is operating in the manner of the present invention, a signature, such as a CRC value, is generated for each data block (eg, and preferably generated) for the output data array. Generated for each output rendered tile). Any suitable “signature” generation process, such as a CRC function or a hash function, can be used to generate a signature for a data block. Preferably, the data block (eg, tile) data is processed in a selected, preferably specific or predetermined, order when generating the data block signature. This can further help reduce power consumption. In a preferred embodiment, the data is processed using a Hilbert sequence (Hilbert curve).

必要な場合に、出力(例えば、フレーム)バッファ内に格納されているデータブロック(例えば、レンダリング済みタイル)に対する署名を適宜格納すべきである。好ましくは、出力(例えば、フレーム)バッファにより格納される。次いで、署名を比較する必要が生じたときに、データブロックに対する格納されている署名を適宜取り出すことができる。   Where necessary, signatures for data blocks (eg, rendered tiles) stored in the output (eg, frame) buffer should be stored accordingly. Preferably, it is stored by an output (eg, frame) buffer. The stored signature for the data block can then be retrieved as appropriate when it becomes necessary to compare the signatures.

好ましくは、1つまたは複数のデータブロックに対する、および好ましくは複数のデータブロックに対する、署名を、例えばグラフィックスプロセッサそれ自体のローカルの比較段階または手段に、例えば、オンチップ署名(例えば、CRC)バッファ内にキャッシュされるようにでき、またキャッシュされる。この方法は、比較を行うたび毎に外部バッファからデータブロックの署名をフェッチする必要をなくすことができ、したがって、データブロックの署名を読み出すために使用されるメモリ帯域幅を低減するのに役立つ。   Preferably, a signature for one or more data blocks, and preferably for a plurality of data blocks, for example in a local comparison stage or means of the graphics processor itself, e.g. an on-chip signature (e.g. CRC) buffer Can be cached in and cached. This method can eliminate the need to fetch the signature of the data block from the external buffer each time a comparison is made, thus helping to reduce the memory bandwidth used to read the signature of the data block.

データブロック署名などのデータブロック内容の表現が、ローカルにキャッシュされる、例えば、オンチップバッファ内に格納される場合、データブロックは、好ましくは、ヒルベルト順序などの好適な順序で処理され、これにより、署名などがローカルにキャッシュされている(オンチップバッファ内に格納されている)(複数の)データブロックと一致する可能性が高まる。   If a representation of the data block content, such as a data block signature, is cached locally, eg, stored in an on-chip buffer, the data blocks are preferably processed in a suitable order, such as Hilbert order, thereby , Signatures etc. are likely to match locally cached data blocks (stored in an on-chip buffer).

当業者であれば理解するように、データブロック(例えば、レンダリング済みタイル)に対する署名の生成および格納は、ある程度の処理およびメモリリソースを必要とするけれども、出願人は、これよりも、本発明によって実現できる電力消費およびメモリ帯域幅に関する潜在的節減の方が勝ると確信している。   As will be appreciated by those skilled in the art, although the generation and storage of signatures for data blocks (eg, rendered tiles) requires some processing and memory resources, Applicants have more to do with this invention. We are confident that the potential savings in terms of power consumption and memory bandwidth that can be achieved are better.

例えば、1つの、例えばRGBA、データブロック(例えば、レンダリング済みタイル)に対する単一の署名を生成することが可能であるか、またはそれぞれの色平面に対し別の署名(例えば、CRC)を生成することが可能である。同様に、色変換を実行し、別の署名を必要に応じてY、U、V平面に対し生成することが可能である。   For example, it is possible to generate a single signature for one, e.g. RGBA, data block (e.g. rendered tile) or generate a separate signature (e.g. CRC) for each color plane It is possible. Similarly, color conversion can be performed and different signatures can be generated for the Y, U, and V planes as needed.

当業者であれば理解するように、データブロックに対し生成される署名が長ければ長いほど(署名がデータブロックをより正確に表すほど)、署名間の誤った「一致」(したがって、例えば、新しいデータブロックを出力バッファに書き込まないという誤り)が生じる可能性が低くなる。そこで、一般的に、必要な精度に応じて(および例えば署名生成および処理に必要なメモリおよび処理リソースに関するトレードオフとして)、使用する署名(例えば、CRC)を長くも短くもすることが可能である。   As those skilled in the art will appreciate, the longer the signature generated for a data block (the more accurately the signature represents the data block), the more false “matches” between the signatures (and thus, for example, new The possibility that an error that a data block is not written to the output buffer) will be reduced. So, in general, depending on the accuracy required (and as a trade-off for the memory and processing resources required for signature generation and processing, for example), it is possible to use longer or shorter signatures (e.g. CRC). is there.

特に好ましい一実施形態では、署名は、データブロックの内容の他の態様と比較してデータブロックの内容の特定の態様に向けて(例えば、また好ましくは、データブロックに対するデータ(データブロックの内容を表すデータ)の特定の態様または部分に対して)重み付けされる。これにより、例えば、所定の全長を持つ署名が、出力全体に対しより効果のあるデータブロック内容(データ)の部分に対し署名を重み付けすることによって全体的な結果を改善することができる(例えば、画像を見る人によって知覚されるように)。   In one particularly preferred embodiment, the signature is directed toward a particular aspect of the data block content compared to other aspects of the data block content (e.g., and preferably, data for the data block (the content of the data block is Weighted) for a particular aspect or part of the data represented). Thereby, for example, a signature having a predetermined overall length can improve the overall result by weighting the signature on the portion of the data block content (data) that is more effective for the entire output (e.g., As perceived by the viewer.)

好ましいそのような一実施形態において、色のLSBビットと比較して色のMSBビットに対してより長い(より正確な)署名が生成される。(一般に、色のLSBビットは、MSBビットに比べてあまり重要でなく、したがって、出願人は、異なる出力データブロック(例えば、レンダリング済みタイル)に対するLSBビットを比較する際の誤差は、出願人の考えるところでは、出力全体に対する影響がそれほど悪くないため、LSBビットに対して比較的精度の落ちる署名を使用しても許容されうると認識している。)   In one such preferred embodiment, a longer (more accurate) signature is generated for the MSB bits of the color compared to the LSB bits of the color. (In general, the LSB bits of a color are less important than the MSB bits, so applicants are not likely to have errors in comparing LSB bits for different output data blocks (e.g., rendered tiles). (In my opinion, the impact on the overall output is not so bad, and we recognize that using a relatively inaccurate signature for the LSB bits is acceptable.)

例えば、アプリケーション、例えば、ディスプレイ、の要件に応じて、異なるアプリケーションなどに対する異なる長さの署名を使用することも可能である。これは、消費電力を低減するのにさらに役立ちうる。したがって、好ましい一実施形態では、使用される署名の長さは、使用中に変更することができる。好ましくは、署名の長さは、使用中のアプリケーションに応じて変更することができる(使用しているアプリケーションに応じて適応チューニングすることができる)。   For example, different length signatures for different applications, etc. may be used depending on the requirements of the application, eg, display. This can further help reduce power consumption. Thus, in a preferred embodiment, the signature length used can be changed during use. Preferably, the signature length can be changed according to the application in use (adapted tuning can be made according to the application being used).

特に好ましい一実施形態では、完成したデータブロック(例えば、レンダリング済みタイル)は、比較の結果として、そのデータブロックが出力配列に対する他のデータブロックと(例えば、また好ましくは、出力バッファにすでに格納されているデータブロックと)同じであると考えるべきと判定される場合に出力バッファに書き込まれない。このことから、出力バッファ内にすでに格納されているか、または格納されることになっているデータブロックと同じであると判定されるデータブロックは、出力バッファに書き込まなくて済む。   In one particularly preferred embodiment, a completed data block (e.g., rendered tile) is compared with other data blocks for the output array (e.g., and preferably also already stored in the output buffer) as a result of the comparison. Is not written to the output buffer if it is determined that it should be considered the same. Thus, a data block that is already stored in the output buffer or determined to be the same as the data block that is to be stored need not be written to the output buffer.

したがって、特に好ましい一実施形態では、本発明において、データブロックの内容(例えば、レンダリング済みタイル)を表す署名を、出力(例えば、フレーム)バッファに格納されているか、格納されるべきであるデータブロック(例えば、タイル)の署名を比較し、署名が同じである場合に(新しい)データブロック(例えば、タイル)を出力バッファに書き込まない(が、署名が異なる場合には、(新しい)データブロック(例えば、タイル)を出力バッファに書き込む)。   Thus, in a particularly preferred embodiment, in the present invention, a signature representing the contents of a data block (eg, a rendered tile) is or is to be stored in an output (eg, frame) buffer. Compare (e.g. tiles) signatures and if the signatures are the same, do not write (new) data blocks (e.g. tiles) to the output buffer (but if the signatures are different, (new) data blocks ( For example, write tiles to the output buffer).

新しいブロックが出力バッファに書き込まれないように、一致すると考えられるブロックについて比較されるデータブロック間(例えば、それらの署名間)で正確な一致を比較プロセスが必要とする場合、誤って一致するブロックによる効果を無視すれば、本発明は、実際には、可逆プロセスを構成するであろう。比較プロセスが、十分に類似度の高い一致(ただし正確な一致ではなく)を必要とするだけであれば、このプロセスは、データブロックがこれの正確な一致でないデータブロックで置換されうるという点で、「不可逆」となる。   Incorrectly matching blocks if the comparison process requires an exact match between the data blocks being compared (e.g., between their signatures) to be compared for blocks that are considered to match so that no new blocks are written to the output buffer Ignoring the effect of, the present invention will actually constitute a reversible process. If the comparison process only requires a sufficiently similar match (but not an exact match), this process can be used in that the data block can be replaced with a data block that is not its exact match. , “Irreversible”.

現在の、完成しているデータブロック(例えば、レンダリング済みタイル)(例えば、また好ましくは、その署名)は、1つの、または複数の、他のデータブロック(例えば、出力バッファ内にすでに格納されているデータブロック)と比較することができる。   A current, completed data block (e.g., a rendered tile) (e.g., and preferably its signature) is already stored in one or more other data blocks (e.g., in an output buffer). Data block).

好ましくは、(新しい)データブロックが比較される比較相手となるデータブロック(例えば、タイル)のうちの少なくとも1つ(または(新しい)データブロックが比較される比較相手となるデータブロックのみ)は、完成している、新しいデータブロックの書き込み先と同じ位置(同じデータブロック(例えば、タイル)位置)を占有する出力バッファ内に格納されているデータブロックを含む。したがって、好ましい一実施形態では、新たに生成されたデータブロックは、出力バッファ内にすでに格納されている同等のデータブロック(または適切であれば複数のブロック)と比較される。   Preferably, at least one of the data blocks (e.g. tiles) against which (new) data blocks are compared (or only the data block against which (new) data blocks are compared) is It includes a data block stored in an output buffer that occupies the same location (same data block (eg, tile) location) as the completed destination of the new data block. Thus, in a preferred embodiment, the newly generated data block is compared to an equivalent data block (or blocks if appropriate) already stored in the output buffer.

好ましい一実施形態では、現在の(新しい)データブロックは、単一の他のデータブロックのみと比較される。   In a preferred embodiment, the current (new) data block is compared with only a single other data block.

好ましい他の実施形態では、現在の、完成しているデータブロック(例えば、その署名)は、(例えば、出力バッファ内にすでに格納されている)複数の他のデータブロック(の署名)と比較される。これは、出力データ配列内の他の位置にあるデータブロックと同じであるデータブロック書き込みをなくすことができるため、出力バッファに書き込む必要のあるデータブロックの個数をさらに減らすのに役立ちうる。   In another preferred embodiment, the current, completed data block (e.g. its signature) is compared with a plurality of other data blocks (e.g., signatures already stored in the output buffer). The This can help to further reduce the number of data blocks that need to be written to the output buffer, as data block writes that are the same as data blocks at other locations in the output data array can be eliminated.

この場合、データブロックがデータ配列内の異なる位置にあるデータブロックと一致する場合、システム側で、好ましくは、注目するデータブロック位置に対してどの他のデータブロックを使用すべきかを示す情報を出力し、格納する。例えば、データブロックが異なるデータブロック位置(座標)を有する出力データ配列内の他のデータブロックと同じであるかどうかを示すリストを保持するとよい。次いで、例えば、表示することを目的としてデータブロックを読み込むときに、対応するリスト中のエントリを読み込んで、それが、例えば、「null」であれば、「通常の」データブロックが読み込まれるが、異なるデータブロックのアドレスを含んでいる場合には、その異なるデータブロックが読み込まれる。これも、データブロックが現在の出力配列に対し生成される他のデータブロック(つまり、出力バッファ内に必ずしもすでには格納されていない)と比較される場合に、上述のように、好ましくは実行され、次いでこれにより、その場合に出力配列を読み込むデバイスは、データ配列に対して出力バッファに書き込まれなかったデータブロックの代わりにどのデータブロックを処理するべきかを知ることができる。   In this case, if the data block matches a data block at a different position in the data array, the system preferably outputs information indicating which other data block should be used for the data block position of interest. And store. For example, a list indicating whether the data block is the same as other data blocks in the output data array having different data block positions (coordinates) may be maintained. Then, for example, when reading a data block for display purposes, the corresponding list entry is read and if it is "null", for example, a "normal" data block is read, If the address of a different data block is included, the different data block is read. This is also preferably performed as described above when the data block is compared to other data blocks generated for the current output array (i.e. not necessarily already stored in the output buffer). This then allows the device that reads the output array in that case to know which data block to process instead of the data block that was not written to the output buffer for the data array.

データブロックが、複数の他のデータブロック(例えば、出力バッファ内にすでに格納されている)と比較される場合、それぞれのデータブロックを出力配列に対する他のすべての(例えば、既存の)データブロック(例えば、出力バッファ内の他のすべてのブロック)と比較することが可能であるが、好ましくは、それぞれのデータブロックは、出力配列に対する他のデータブロックの全部ではなく一部と、例えば、また好ましくは、(例えば、出力バッファ内の)新しいデータブロックと同じ、出力データ配列のエリア内のデータブロックとのみ比較される(例えば、これらのデータブロックは新しいデータブロックの意図された位置を覆い、取り囲む)。これは、出力配列内のすべてのデータブロックをチェックしなくても、データブロックの一致を検出する可能性を高める。   When a data block is compared to multiple other data blocks (e.g., already stored in an output buffer), each data block is replaced with all other (e.g., existing) data blocks (e.g., existing) for the output array. (E.g., all other blocks in the output buffer), but preferably each data block is, for example, also preferred, with some but not all of the other data blocks for the output array. Are compared only to data blocks in the same area of the output data array as the new data blocks (e.g., in the output buffer) (e.g., these data blocks cover and surround the intended location of the new data block) ). This increases the likelihood of detecting a data block match without checking all the data blocks in the output array.

好ましい一実施形態では、出力データ配列に対して生成されるあらゆるデータブロックは、他の1つまたは複数データブロックと比較される。しかし、これは本質的なことではなく、したがって、他の好ましい実施形態では、所定の出力データ配列(例えば、出力フレーム)のデータブロックの全部ではなく一部に関して比較が実行される。   In a preferred embodiment, every data block generated for the output data array is compared to one or more other data blocks. However, this is not essential and, therefore, in other preferred embodiments, the comparison is performed on some but not all of the data blocks of a given output data array (eg, output frame).

特に好ましい一実施形態では、各出力データ配列に対する他の1つまたは複数のデータブロックと比較されるデータブロックの個数は、例えば、また好ましくは、出力配列毎に(例えば、フレーム毎に)、または出力配列(例えば、フレーム)の複数のシーケンスに基づいて変更される。これは、好ましくは、連続する出力データ配列(例えば、フレーム)間の予期される相関に基づく(か、または基づかない)。   In a particularly preferred embodiment, the number of data blocks to be compared with one or more other data blocks for each output data array is, for example, and preferably for each output array (e.g., for each frame), or Changes are made based on multiple sequences of output arrays (eg, frames). This is preferably based on (or not based on) the expected correlation between successive output data arrays (eg, frames).

したがって、本発明は、好ましくは、所定の出力データ配列に対して他の1つまたは複数のデータブロックと比較されるべき、出力バッファに書き込まれるべきデータブロックの個数を選択するための手段またはそのようなデータブロックの個数を選択するステップを含む。   Thus, the present invention preferably provides a means for selecting the number of data blocks to be written to the output buffer or its to be compared with one or more other data blocks for a given output data array. Selecting the number of such data blocks.

好ましくは、異なる出力データ配列間にほとんど相関がない(と予期される)場合には比較対象とされるデータブロックは少ないが(例えば、その場合に比較的少ないデータブロック上で署名が生成される)、異なる出力データ配列間に多くの相関がある(多くの相関があることが予期される)場合には比較段階の対象となる出力データ配列内のデータブロック(また署名がこれらのデータブロックに対して生成されている)は多い(および好ましくはすべてそうである)(したがって、多数の新たに生成されたデータブロックは、出力バッファ内で重複することが予期されるであろう)。このことは、排除されるデータブロック書き込みトランザクションの数が少ないことが予期される場合に実行される(電力およびリソースを消費する)比較および署名生成などの量を低減することに役立ち(出力データ配列間に相関がほとんどない場合)、その一方で、それが特に有利と予期される場合に(つまり、出力データ配列間の相関が多い場合に)本発明の比較プロセスの使用をなおも容易にする。   Preferably, if there is little (and expected) correlation between different output data sequences, fewer data blocks are compared (e.g., signatures are generated on relatively few data blocks in that case) ), If there are many correlations between different output data arrays (expected to have many correlations), the data blocks in the output data array that are being compared (and the signature is (And preferably all are) (thus many newly generated data blocks would be expected to be duplicated in the output buffer). This helps reduce the amount of comparison (significant power and resources) and signature generation performed when it is expected that a small number of data block write transactions will be eliminated (output data alignment On the other hand, it still makes it easier to use the comparison process of the invention when it is expected to be particularly advantageous (i.e. when there is a lot of correlation between the output data sequences) .

これらの配置構成において、異なる(例えば、連続する)出力データ配列間の(予期される)相関の量は、好ましくは、この目的のために推定される。これは、望む通りに実行することができるが、好ましくは、はじめの方の出力データ配列間の相関に基づく。最も好ましくは、出力データ配列の前のペアまたはシーケンス内の一致するデータブロックの個数(例えば、また好ましくは、本発明の仕方でデータブロックを比較することによって決定されるような)、最も好ましくは、出力データ配列(例えば、出力フレーム)の直前のペア内の一致するデータブロックの個数は、現在の出力データ配列に対する予期される相関の尺度として使用される。したがって、特に好ましい一実施形態では、前の出力データ配列内で一致することが判明しているデータブロックの個数を使用して、現在の出力データ配列内のいくつのデータブロックを本発明の仕方で比較すべきかを選択する。   In these arrangements, the amount of (expected) correlation between different (eg, consecutive) output data sequences is preferably estimated for this purpose. This can be done as desired, but is preferably based on the correlation between the earlier output data arrays. Most preferably, the number of matching data blocks in the previous pair or sequence of output data arrays (e.g., also preferably as determined by comparing data blocks in the manner of the present invention), most preferably The number of matching data blocks in the pair immediately preceding the output data array (eg, output frame) is used as a measure of expected correlation for the current output data array. Thus, in a particularly preferred embodiment, the number of data blocks known to match in the previous output data array is used to determine how many data blocks in the current output data array are in the manner of the present invention. Select whether to compare.

特に好ましい一実施形態では、本発明の仕方で比較されるデータブロックの個数は、出力データ配列の異なる領域間の場合のように変更される可能性があり、また好ましくは変更される。このような一配置構成において、これは、出力配列内の前のデータブロック一致の配置に基づく、つまり、これにより、高い相関を持つと予期される出力配列の領域の推定が(逆も同様に)決定され、次いで、本発明の仕方で処理されるべき出力配列の異なる領域内のデータブロックの個数がそれに応じて制御され、選択される。例えば、また好ましくは、前のデータブロック一致の配置を使用して、出力配列の領域が同じままである可能性が高いかどうか、またどの領域がそうであるかを判定し、次いで本発明の仕方で処理されるデータブロックの個数は、それらの領域内で増やすことができる。   In a particularly preferred embodiment, the number of data blocks compared in the manner of the present invention can and preferably is changed as is the case between different regions of the output data array. In one such arrangement, this is based on the arrangement of previous data block matches in the output array, i.e., this gives an estimate of the area of the output array that is expected to be highly correlated (and vice versa). The number of data blocks in different regions of the output array to be processed in the manner of the present invention is then controlled and selected accordingly. For example, and preferably, the previous arrangement of data block matches is used to determine if the region of the output array is likely to remain the same, and which region is, then The number of data blocks processed in a manner can be increased in those areas.

好ましい一実施形態では、ソフトウェアアプリケーション(例えば、グラフィックス処理システムによって生成される出力配列を使用し、および/または受け取る)が出力データ配列のどの領域が本発明の仕方で処理されるかを指示し、制御し、特に、また好ましくは、データブロック署名計算プロセスが、出力配列のどの領域のために実行されるべきかを指示することが可能である。次いで、これにより、署名計算は、アプリケーションが常に更新されることを「知っている」出力配列の領域に対してアプリケーションによって「オフにする」ことができる。   In a preferred embodiment, a software application (e.g., using and / or receiving an output array generated by a graphics processing system) indicates which regions of the output data array are processed in the manner of the present invention. , In particular, and preferably, can indicate for which region of the output sequence the data block signature calculation process is to be performed. This in turn allows the signature calculation to be “turned off” by the application for the region of the output array that “knows” that the application will always be updated.

これは、望む通りに達成されうる。好ましい一実施形態では、出力配列領域に対してデータブロック(例えば、レンダリング済みタイル)署名計算を有効/無効にするレジスタを備え、そこで、ソフトウェアアプリケーションがレジスタをしかるべく設定する(例えば、グラフィックスプロセッサドライバを介して)。このようなレジスタの個数は、例えば、レジスタに必要な追加ロジック、制御の所望の細かさ、および署名計算を無効にすることができることで得られる潜在的な節約の間のトレードオフとして選択することができる。   This can be achieved as desired. In a preferred embodiment, a register is provided that enables / disables data block (e.g., rendered tile) signature computation for the output array region, where a software application sets the register accordingly (e.g., a graphics processor). Through the driver). The number of such registers should be selected as a trade-off between, for example, the additional logic required for the registers, the desired granularity of control, and the potential savings gained by being able to override signature calculations. Can do.

特に好ましい一実施形態では、システムは、新たに生成されたデータブロックを出力バッファに、定期的に、例えば、1秒に1回、それぞれの所定のデータブロック(データブロック位置)に関して、常に書き込むように構成される。したがって、新しいデータブロックはすべてのデータブロック位置について少なくとも定期的に出力バッファ内に確実に書き込まれるようになり、これにより、例えば、誤って一致するデータブロックが(例えば、データブロックの内容が実際には異なっているとしてもデータブロック署名がたまたま一致するせいで)、所定の、例えば、所望のもしくは選択された、期間の間、出力バッファ内に保持されることが回避される。   In a particularly preferred embodiment, the system always writes newly generated data blocks to the output buffer periodically, e.g. once per second, for each given data block (data block position). Configured. Thus, new data blocks are reliably written into the output buffer at least periodically for every data block position, so that, for example, erroneously matching data blocks (e.g. Are kept in the output buffer for a predetermined, eg, desired or selected period, because the data block signatures happen to match even though they are different.

これは、例えば、新しい出力データ配列を丸ごと定期的に(例えば、1秒に1回)単純に書き出すことによって実行されうる。しかし、特に好ましい一実施形態では、新しいデータブロックは、ローリングベースで個別に出力バッファに書き出され、したがって、新しい出力配列が丸ごと一度で書き出されるのではなく、出力配列内のデータブロックの選択された部分が、新しい出力配列が生成されるたび毎に、循環パターンで出力バッファに書き出され、時間が経つうちに、すべてのデータブロックが最終的には新規として書き出される。好ましいこのような一配置構成において、システムは、データブロックの(異なる)選択された1/nの部分(例えば、1/25の部分)が出力配列(例えば、フレーム)毎に完全に書き出され、n(例えば、25)個の出力配列(例えば、フレーム)のシーケンスの終わりまでに、すべてのデータブロックが、少なくとも1回は、出力バッファに完全に書き出されているように構成される。   This can be done, for example, by simply writing out a new output data array periodically (eg, once per second). However, in a particularly preferred embodiment, new data blocks are written to the output buffer individually on a rolling basis, so that the new output array is not written all at once, but instead of the data blocks in the output array being selected. Each time a new output array is generated, it is written to the output buffer in a circular pattern, and over time, all data blocks are eventually written out as new. In a preferred such arrangement, the system writes a (different) selected 1 / n portion (e.g., 1/25 portion) of a data block completely per output array (e.g., frame). , N (eg, 25) by the end of the sequence of output arrays (eg, frames), all data blocks are configured to be completely written to the output buffer at least once.

このオペレーションは、好ましくは、関連するデータブロック(つまり、出力バッファに全部書き込まれるデータブロック)に対するデータブロック比較を無効にすることによって達成される。(データブロック署名は、好ましくは、それでも、出力バッファに全部書き込まれるデータブロックについて生成されるが、それは、これらのブロックをこれ以降のデータブロックと比較することができるからである)。   This operation is preferably accomplished by disabling the data block comparison for the associated data block (ie, the data block that is completely written to the output buffer). (Data block signatures are preferably still generated for data blocks that are all written to the output buffer, since these blocks can be compared with subsequent data blocks).

本発明は、二重バッファ型出力(例えば、フレーム)バッファ、つまり、2つの出力配列(例えば、フレーム)、例えば、表示中の出力配列と表示されてしまっている、したがって表示する次の出力配列(例えば、フレーム)として書き込まれる出力配列を同時に格納する出力バッファとともに使用される場合、本発明の比較プロセスは、好ましくは、新たに生成されたデータブロックを出力バッファ内の最も古い出力配列と比較する(つまり、新たに生成されたデータブロックを現在は表示されていないが、表示すべき次の出力配列として書き込まれる出力配列と比較する)。   The present invention provides a double buffered output (e.g., frame) buffer, i.e., two output arrays (e.g., frames), e.g., an output array being displayed, and thus the next output array to be displayed. When used with an output buffer that simultaneously stores an output array written as (e.g., a frame), the comparison process of the present invention preferably compares the newly generated data block with the oldest output array in the output buffer. (That is, compare the newly generated data block with the output array that is not currently displayed but is written as the next output array to be displayed).

特に好ましい一実施形態では、本発明は、他のフレーム(または他の出力)バッファの1つまたは複数の電力および帯域幅低減方式、例えば、また好ましくは、出力(例えば、フレーム)バッファの圧縮(必要に応じて、不可逆または可逆とすることができる)と併せて使用される。   In one particularly preferred embodiment, the present invention provides one or more power and bandwidth reduction schemes for other frame (or other output) buffers, e.g., and preferably compression (e.g., frame) buffer ( Can be irreversible or reversible as desired).

後者の場合の好ましい一配置構成では、比較プロセスの後に、新たに生成されたデータブロックが出力(例えば、フレーム)バッファに書き込まれる場合、そのデータブロックは、しかるべく圧縮されてから、出力(例えば、フレーム)バッファに書き込まれる。   In a preferred arrangement in the latter case, after the comparison process, when a newly generated data block is written to an output (e.g. frame) buffer, the data block is compressed accordingly and then output (e.g. , Frame) buffer.

データブロックが出力バッファに書き込まれる前に圧縮などの何らかの処理をさらに受ける場合、例えば、圧縮などの追加の処理をデータブロックにとにかく実行し、次いで、比較に基づいてそのように処理されたデータブロックを出力バッファに書き込むか、または書き込まないことが可能である。しかし、特に好ましい一実施形態では、本発明の比較プロセスが最初に実行され、データブロックの、圧縮などのさらなる処理は、データブロックを出力バッファに書き込むと決定した場合にのみ実行される。次いで、これにより、ブロックを出力バッファに書き込む必要がないと決定された場合に、データブロックのさらなる処理を回避することができる。   If the data block is further subjected to some processing such as compression before it is written to the output buffer, for example, additional processing such as compression is performed on the data block anyway, and then the data block so processed based on the comparison May or may not be written to the output buffer. However, in a particularly preferred embodiment, the comparison process of the present invention is performed first, and further processing, such as compression, of the data block is performed only if it is determined to write the data block to the output buffer. This in turn can avoid further processing of the data block if it is determined that the block does not need to be written to the output buffer.

タイル比較プロセス(および使用される場合には、署名生成)は、グラフィックスプロセッサの一体となる部分で実装することができるか、または例えば、グラフィックスプロセッサと出力(例えば、フレーム)バッファとの中間にある別々の「ハードウェア要素」がありうる。   The tile comparison process (and signature generation, if used) can be implemented in an integral part of the graphics processor or, for example, between the graphics processor and the output (eg, frame) buffer There can be separate “hardware elements”.

特に好ましい一実施形態では、比較プロセスを実行し、出力バッファへのデータブロックの書き込み(または書き込まないこと)を制御する「トランザクション排除」ハードウェア要素がある。このハードウェア要素は、好ましくは、それが完了している場合、署名生成も行う(格納されているデータブロックの署名をキャッシュする)。同様に、本発明で操作するデータブロックが、例えば、レンダリングプロセスが生成するレンダリング済みタイルと同じでない場合、このハードウェア要素は、好ましくは、レンダリングプロセスが生成するレンダリング済みタイルからデータブロックを生成または組み立てる。   In a particularly preferred embodiment, there is a “transaction exclusion” hardware element that performs the comparison process and controls the writing (or not writing) of data blocks to the output buffer. This hardware element preferably also generates a signature (caches the signature of the stored data block) when it is complete. Similarly, if the data block operating in the present invention is not the same as, for example, the rendered tile that the rendering process generates, this hardware element preferably generates a data block from the rendered tile that the rendering process generates or assemble.

好ましい一実施形態では、このハードウェア要素は、グラフィックスプロセッサとは別のものであり、他の好ましい実施形態では、グラフィックスプロセッサ(の一部)に組み込まれている。したがって、好ましい一実施形態では、比較手段などは、グラフィックスプロセッサそれ自体の一部であるが、他の好ましい実施形態では、グラフィックス処理システムは、グラフィックスプロセッサ、および比較手段などを備える別の「トランザクション排除」ユニットまたは要素を備える。   In one preferred embodiment, this hardware element is separate from the graphics processor, and in another preferred embodiment, is incorporated into (part of) the graphics processor. Thus, in a preferred embodiment, the comparison means etc. are part of the graphics processor itself, but in other preferred embodiments the graphics processing system comprises a graphics processor, another means comprising comparison means etc. It comprises a “transaction exclusion” unit or element.

本発明は、グラフィックスプロセッサが出力バッファに供給している可能性のある出力の形態に関係なく使用することができる。したがって、これは、例えば、データブロックおよび出力データ配列が(例えば、画面もしくはプリンタ上に)表示する画像を形成することが意図されている場合に使用することができる(また好ましい一実施形態では、これはその場合である)。しかし、本発明は、出力が表示を目的としていない場合に、例えば、出力データ配列(レンダーターゲット)が、グラフィックスプロセッサを使用して生成するテクスチャである場合(例えば、「テクスチャにレンダー」オペレーションにおいて)、または実際に、グラフィックスプロセッサを使用して生成する出力が、他の形態のデータ配列である場合にも使用されうる。   The present invention can be used regardless of the form of output that the graphics processor may be providing to the output buffer. Thus, this can be used, for example, when the data block and output data array are intended to form an image for display (e.g., on a screen or printer) (and in a preferred embodiment, This is the case). However, the present invention is useful when the output is not intended for display, for example, when the output data array (render target) is a texture generated using a graphics processor (e.g., in a "render to texture" operation). ), Or in fact, the output generated using the graphics processor may also be used in other forms of data arrays.

同様に、本発明は、グラフィックスプロセッサオペレーションを特に参照して上で説明されているけれども、出願人は、本発明の原理が、例えばタイルベースのグラフィックス処理システムに類似の仕方でブロックの形態のデータを処理する他のシステムにも同様に適用することができることを認識している。したがって、本発明は、例えば、ビデオ処理(ビデオ処理はグラフィックス処理においてタイルに類似するデータのブロックに対し行われるので)、また合成画像処理(ここでもまた、合成フレームバッファはデータの異なるブロックとして処理されるので)にも等しく使用することができる。   Similarly, although the present invention has been described above with particular reference to graphics processor operation, applicants have found that the principles of the present invention are in the form of blocks in a manner similar to, for example, a tile-based graphics processing system. It is recognized that it can be applied to other systems that process the same data as well. Thus, the present invention can be applied, for example, to video processing (since video processing is performed on blocks of data similar to tiles in graphics processing) and composite image processing (again, the composite frame buffer is a different block of data. Can be used equally well)

本発明は、例えば、デジタルカメラがカメラのセンサーによって生成されるデータ(画像)を処理している場合に、使用することもできる。カメラ(ビデオまたは静止画像)は、例えば、メモリに格納するためにブロック毎にそのセンサーによって生成される画像を処理することができる。この場合、カメラのセンサーからのデータは、例えば、メモリへの画像データの書き込みを制御するカメラのコントローラによって上述のように処理することが可能である。   The present invention can also be used, for example, when a digital camera is processing data (images) generated by a camera sensor. A camera (video or still image), for example, can process the image generated by its sensor for each block for storage in memory. In this case, the data from the camera sensor can be processed as described above, for example, by the camera controller that controls the writing of the image data to the memory.

したがって、本発明の第7の態様によれば、データ処理システムによって生成されるデータがデータの出力配列を出力バッファ内に形成するために使用されるデータ処理システムを操作する方法が提供され、この方法は、
データ処理システムがデータの出力配列の特定の領域を表すデータのブロックを出力バッファに書き込むことによってデータの出力配列を出力バッファ内に格納するステップと、
データのブロックが出力データ配列に対して生成されているときに、データ処理システムがデータのそのブロックをデータの少なくとも1つの他のブロックと比較し、この比較に基づいてデータの生成されたブロックを出力バッファに書き込むかどうかを決定するステップとを含む。
Thus, according to a seventh aspect of the present invention, there is provided a method of operating a data processing system in which data generated by the data processing system is used to form an output array of data in an output buffer, which The method is
A data processing system storing the data output array in the output buffer by writing a block of data representing a particular region of the data output array to the output buffer;
When a block of data is being generated against the output data array, the data processing system compares that block of data with at least one other block of data, and based on this comparison the generated block of data is Determining whether to write to the output buffer.

本発明の第8の態様によれば、データ処理システムが実現され、このシステムは、
データプロセッサによって供給されるべきデータの出力配列を形成するためのデータを生成するための手段を備えるデータプロセッサと、
データプロセッサによって生成されたデータを、データの配列の特定の領域を表すデータのブロックを出力バッファに書き込むことによってデータの配列として出力バッファ内に格納するための手段とを備え、
データ処理システムは、
出力データ配列に対して生成されたデータのブロックをデータの少なくとも1つの他のブロックと比較し、その比較に基づいてデータの生成されたブロックを出力バッファに書き込むかどうかを決定するための手段をさらに備える。
According to an eighth aspect of the present invention, a data processing system is realized, the system comprising:
A data processor comprising means for generating data for forming an output array of data to be supplied by the data processor;
Means for storing data generated by the data processor in the output buffer as an array of data by writing to the output buffer a block of data representing a particular region of the array of data;
The data processing system
Means for comparing the generated block of data against the output data array with at least one other block of data and deciding whether to write the generated block of data to the output buffer based on the comparison Further prepare.

本発明の第9の態様によれば、データプロセッサが実現され、このプロセッサは、
データプロセッサによって生成され、データプロセッサによって供給されるべきデータの出力配列の特定の領域を表す、データのブロックを出力バッファに書き込むための手段と、
出力データ配列に対して生成されたデータのブロックをデータの少なくとも1つの他のブロックと比較し、その比較に基づいてデータの生成されたブロックを出力バッファに書き込むかどうかを決定するための手段をさらに備える。
According to a ninth aspect of the present invention, a data processor is realized, the processor comprising:
Means for writing a block of data to an output buffer that represents a particular region of the output array of data that is generated by and supplied by the data processor;
Means for comparing the generated block of data against the output data array with at least one other block of data and deciding whether to write the generated block of data to the output buffer based on the comparison Further prepare.

本発明は、本発明の比較およびその結果の判定を実行するための特定のハードウェア要素の装備にも拡張される。上述のように、例えば、このハードウェア要素(ロジック)は、1つの、例えば、グラフィックスプロセッサの一体となる部分として構成されるか、または例えば、グラフィックスプロセッサと外部メモリコントローラとを、例えばインターフェイスすることができるスタンドアロン要素とすることができる。これは、プログラム可能な、または専用のハードウェア要素であってもよい。   The present invention also extends to the provision of specific hardware elements for performing the comparison of the present invention and determination of the results. As described above, for example, this hardware element (logic) is configured as one integral part of, for example, a graphics processor or, for example, an interface between a graphics processor and an external memory controller, for example. Can be a stand-alone element that can be. This may be a programmable or dedicated hardware element.

したがって、本発明の第10の態様によれば、データ処理システムによって生成されるデータの出力配列がデータの出力配列の特定の領域を表すデータのブロックを出力バッファに書き込むことによって出力バッファ内に格納されるデータ処理システムにおいて使用するための書き込みトランザクション排除装置が実現され、この装置は、
出力データ配列に対して生成されたデータのブロックをデータの少なくとも1つの他のブロックと比較し、比較に基づいてデータの生成されたブロックを出力バッファに書き込むかどうかを決定するための手段をさらに備える。
Thus, according to the tenth aspect of the present invention, the output array of data generated by the data processing system is stored in the output buffer by writing a block of data representing a specific area of the output array of data to the output buffer. A write transaction eliminator is provided for use in a data processing system to be
Means for comparing the generated block of data against the output data array with at least one other block of data and determining whether to write the generated block of data to the output buffer based on the comparison; Prepare.

当業者であれば理解するように、本発明のこれらの態様および実施形態はすべて、本明細書で説明されている本発明の好ましい、およびオプションの機能の1つまたは複数あるいはすべてを備えることができ、好ましくは備える。したがって、例えば、比較は、好ましくは、各データブロックの内容を表す署名を比較するステップを含む。同様に、データブロック比較ステップまたは手段は、好ましくは、出力バッファに書き込む準備ができているデータのブロックを出力バッファ内にすでに格納されている(および/または出力バッファに書き込まれるべき)データの少なくとも1つのブロックと比較し、この比較に基づいてデータのブロックを出力バッファに書き込むかどうかを判定するステップまたは手段を備える。   As those skilled in the art will appreciate, all of these aspects and embodiments of the invention may include one or more or all of the preferred and optional features of the invention described herein. Yes, preferably. Thus, for example, the comparison preferably includes comparing signatures representing the contents of each data block. Similarly, the data block comparison step or means preferably includes at least a block of data already stored in the output buffer (and / or to be written to the output buffer) that is ready to be written to the output buffer. Comparing to one block, the method comprises means or means for determining whether to write a block of data to the output buffer based on the comparison.

これらの配置構成において、データブロックは、例えば、タイルベースのグラフィックス処理システム(グラフィックスプロセッサ)によって生成されるレンダリング済みタイル、ビデオ処理システム(ビデオプロセッサ)によって生成されるビデオデータブロック、合成処理システムによって生成される合成フレームタイル、および/またはカメラセンサーによって生成される画像ブロックなどとすることができ、また好ましくはそれらのものである。   In these arrangements, the data blocks are, for example, rendered tiles generated by a tile-based graphics processing system (graphics processor), video data blocks generated by a video processing system (video processor), and a composition processing system. Composite frame tiles generated by and / or image blocks generated by camera sensors, and the like.

例えば、すべて、データブロックを出力バッファに書き込む複数のマスターがある場合に、本発明を使用することが可能でもある。これは、例えば、ホストプロセッサが、グラフィックスプロセッサによって生成されている画像上に表示すべき「オーバーレイ」を生成する場合としてよい。   For example, it is possible to use the present invention when there are multiple masters that all write data blocks to the output buffer. This may be the case, for example, when the host processor generates an “overlay” to be displayed on the image being generated by the graphics processor.

そのような場合、異なるマスターデバイスのすべてが、例えば、データブロック比較プロセスが作用する出力を有することができる。あるいは、出力データ配列に対してデータブロックを生成する2つまたはそれ以上のマスターデバイスがある場合にデータブロック比較プロセスを無効にすることもできる。このような場合、比較プロセスは、例えば、出力データ配列全体について、または2つのマスターデバイスが出力データブロックを生成している可能性がある出力データ配列の部分のみについて(例えば、ホストプロセッサの「オーバーレイ」が表示されることになる出力データ配列の領域のみについて)無効にすることができる。   In such a case, all of the different master devices can have an output on which, for example, the data block comparison process operates. Alternatively, the data block comparison process can be disabled if there are two or more master devices that generate data blocks for the output data array. In such cases, the comparison process can be performed, for example, for the entire output data array, or only for portions of the output data array where two master devices may have generated output data blocks (e.g., a host processor "overlay"). Can be disabled (only for regions of the output data array that will be displayed).

特に好ましい一実施形態では、本発明で使用するために生成されるデータブロック署名は、作成時に「ソルト」が付けられている(つまり、他の数値(ソルト値)が生成された署名値に付加されている)。ソルト値は、都合のよいことに、例えば、起動以降のデータ出力配列(例えば、フレーム)の数値、またはランダム値としてよい。これは、当技術分野で知られているように、本発明の比較プロセスにおける不正確さによって引き起こされる誤りを非決定論的にするのに役立つ(つまり、例えば、プロセスが映画またはテレビ番組を表示するために使用されている場合など、画像の所定のシーケンスの反復ビューイングについて同じ点で誤りが常に発生するのを回避する)。   In a particularly preferred embodiment, data block signatures generated for use in the present invention are “salt” ed when created (i.e., other numerical values (salt values) are appended to the generated signature value). Have been). The salt value may conveniently be, for example, a numerical value in a data output array (eg, a frame) after activation, or a random value. This helps to make the errors caused by inaccuracies in the comparison process of the present invention non-deterministic as known in the art (i.e., the process displays a movie or television program, for example) To avoid errors always occurring at the same point for iterative viewing of a given sequence of images, such as when used for

典型的には、同じソルト値が、1つのフレームに対して使用される。ソルト値は、フレーム毎に、または定期的に更新することができる。定期的ソルティングの場合、署名を書き込む帯域幅を最小限度に抑えるために、署名比較が無効化される(それが行われる場合に)のと同時にソルト値を変更するのがよい。   Typically, the same salt value is used for one frame. The salt value can be updated every frame or periodically. For periodic salting, the salt value should be changed at the same time as signature comparison is disabled (if it is done) to minimize the bandwidth to write the signature.

出願人は、本発明の技術を使用して、例えば、本発明において識別されるデータブロック(例えば、タイル)の「一致」数をカウントすることによって、例えば、タイルベースのグラフィックス処理システムにおいて、連続する出力データ配列(例えば、フレーム)および/または出力データ配列(例えば、フレーム)のシーケンスの間の相関(つまり、出力データ配列(例えば、フレーム)が互いに類似している程度)を評価または推定することができることをさらに認識している。さらに、出願人は、この情報は、例えば、連続するフレームが同じである(相関が高い)ことを示している場合に、それが、例えば、画像が一定期間静止していることを示唆するので、有用であることも認識している。その場合、例えば、フレームレートを削減することが可能である。   Applicants can use the techniques of the present invention, for example, in a tile-based graphics processing system, for example, by counting the number of “matches” of data blocks (eg, tiles) identified in the present invention. Assess or estimate the correlation between successive output data arrays (e.g., frames) and / or sequences of output data arrays (e.g., frames) (i.e., the degree to which the output data arrays (e.g., frames) are similar to each other) Further recognize that you can. In addition, the Applicant, for example, indicates that the image is stationary for a period of time, for example, if the information indicates that consecutive frames are the same (high correlation). , Also recognized as useful. In that case, for example, the frame rate can be reduced.

したがって、本発明のさらなる態様によれば、データの出力配列の特定の領域を表すデータのブロックを出力バッファに書き込んでデータの出力配列を格納するデータ処理システムによってデータの出力配列が生成されるデータ処理システムを操作する方法が提供され、この方法は、
データ処理システムが、出力バッファにデータのブロックが書き込まれるときに、データのそのブロックを出力バッファ内にすでに格納されているデータの少なくとも1つのブロックと比較し、データの複数のブロックに対する比較の結果を使用してデータ処理システムの異なる出力配列間の相関を推定するステップを含む。
Thus, according to a further aspect of the present invention, data for which an output array of data is generated by a data processing system that writes a block of data representing a particular region of the output array of data to an output buffer and stores the output array of data A method is provided for operating a processing system, the method comprising:
When the data processing system writes a block of data to the output buffer, it compares that block of data with at least one block of data already stored in the output buffer, and the result of the comparison for multiple blocks of data To estimate the correlation between different output sequences of the data processing system.

本発明の他の態様によれば、データ処理システムが実現され、このシステムは、
データ処理システムによって供給されるべきデータの出力配列を形成するためのデータを生成するための手段と、
データ処理システムによって生成されたデータを、データの配列の特定の領域を表すデータのブロックを出力バッファに書き込むことによってデータの配列として出力バッファ内に格納するための手段と、
出力バッファに書き込まれるデータブロックを出力バッファ内にすでに格納されている少なくとも1つのデータブロックと比較するための手段と、
データの複数のブロックに対する比較の結果を使用してデータ処理システムの異なる出力配列間の相関を推定するための手段とを備える。
According to another aspect of the present invention, a data processing system is implemented, the system comprising:
Means for generating data to form an output array of data to be supplied by the data processing system;
Means for storing data generated by the data processing system in the output buffer as an array of data by writing to the output buffer a block of data representing a particular region of the array of data;
Means for comparing a data block to be written to the output buffer with at least one data block already stored in the output buffer;
Means for estimating a correlation between different output sequences of the data processing system using the results of the comparison for the plurality of blocks of data.

当業者であれば理解するように、本発明のこれらの態様および実施形態はすべて、本明細書で説明されている本発明の好ましい、およびオプションの機能の1つまたは複数あるいはすべてを備えることができ、好ましくは備える。したがって、例えば、比較は、好ましくは、各データブロックの内容を表す署名を比較するステップを含む。   As those skilled in the art will appreciate, all of these aspects and embodiments of the invention may include one or more or all of the preferred and optional features of the invention described herein. Yes, preferably. Thus, for example, the comparison preferably includes comparing signatures representing the contents of each data block.

同様に、データブロックは、例えば、タイルベースのグラフィックス処理システムによって生成されるレンダリング済みタイル、ビデオ処理システムによって生成されるビデオデータブロック、および/または合成処理システムによって生成される合成フレームタイルなどとすることができ、また好ましくはそれらのものである。   Similarly, data blocks may be rendered tiles generated by a tile-based graphics processing system, video data blocks generated by a video processing system, and / or composite frame tiles generated by a composite processing system, for example. And preferably those.

これらの配置構成において、異なる出力配列(例えば、フレーム)間の推定された相関は、好ましくは、生成の頻度および/またはフォーマットなど、出力配列またはフレームに関するシステムのさらなるプロセスを制御するために使用される。したがって、特に好ましい一実施形態では、出力配列(フレーム)生成レートおよび/または表示リフレッシュレート、および/または出力配列(フレーム)に使用されるアンチエイリアシングの形態は、異なる出力配列(フレーム)間の推定された相関に基づいて制御もしくは選択される。   In these arrangements, the estimated correlation between different output sequences (e.g., frames) is preferably used to control further processes of the system regarding the output sequence or frame, such as frequency of generation and / or format. The Thus, in a particularly preferred embodiment, the output array (frame) generation rate and / or display refresh rate, and / or the form of anti-aliasing used for the output array (frame) is an estimate between different output arrays (frames). Controlled or selected based on the correlated.

本発明は、適宜構成されたマイクロプロセッサベースのシステムなどの、好適なシステムにおいて実装することができる。好ましい一実施形態では、本発明は、コンピュータおよび/またはマイクロプロセッサベースのシステムにおいて実装される。   The present invention can be implemented in any suitable system, such as a suitably configured microprocessor-based system. In a preferred embodiment, the present invention is implemented in a computer and / or microprocessor based system.

本発明のさまざまな機能は、所望の、また好適な仕方で実行されうる。例えば、本発明の機能は、必要に応じて、ハードウェアまたはソフトウェアで実装することができる。したがって、例えば、本発明のさまざまな機能要素および「手段」は、適切に専用化されたハードウェア要素および/または所望の仕方で動作するようにプログラムすることができるプログラム可能なハードウェア要素などの、さまざまな機能などを実行するように動作可能な、好適な1つまたは複数のプロセッサ、1つまたは複数のコントローラ、機能ユニット、回路、処理ロジック、マイクロプロセッサ配置構成などを含むものとしてよい。   Various functions of the present invention may be performed in any desired and preferred manner. For example, the functions of the present invention can be implemented in hardware or software as required. Thus, for example, the various functional elements and “means” of the present invention are appropriately dedicated hardware elements and / or programmable hardware elements that can be programmed to operate in a desired manner, etc. May include one or more suitable processors, one or more controllers, functional units, circuits, processing logic, microprocessor arrangements, etc. operable to perform various functions and the like.

好ましい一実施形態では、グラフィックスプロセッサおよび/またはトランザクション排除ユニットは、ハードウェア要素(例えば、ASIC)として実装される。したがって、他の態様では、本発明は、本明細書で説明されている本発明の態様のうちの1つまたは複数の装置、または本明細書で説明されている本発明の態様のうちの1つまたは複数の方法に従って動作する装置を含む、ハードウェア要素を備える。   In a preferred embodiment, the graphics processor and / or transaction exclusion unit is implemented as a hardware element (eg, an ASIC). Accordingly, in other embodiments, the invention is directed to one or more of the embodiments of the invention described herein, or one of the embodiments of the invention described herein. A hardware element is provided that includes an apparatus that operates according to one or more methods.

また、当業者であれば理解するように、本発明のさまざまな機能などは、所定のプロセッサ上に複製され、および/または所定のプロセッサ上で並列実行されうることに留意されたい。   It should also be noted that various functions of the present invention may be replicated on a given processor and / or executed in parallel on a given processor, as will be appreciated by those skilled in the art.

本発明は、「パイプライン化された」レンダリング配置構成をとるプロセッサなどの、グラフィックスプロセッサおよびレンダラーの好適な形態もしくは構成に適用可能である(この場合、レンダラーは、レンダリングパイプラインの形態をとる)。これは、タイルベースのグラフィックスプロセッサおよびグラフィックス処理システムに特に適用可能である。   The present invention is applicable to any suitable form or configuration of graphics processor and renderer, such as a processor that takes a “pipelined” rendering arrangement (in this case, the renderer takes the form of a rendering pipeline). ). This is particularly applicable to tile-based graphics processors and graphics processing systems.

上記から理解されるように、本発明は、もっぱらというわけではないが、2Dおよび3Dグラフィックスプロセッサならびに処理デバイスに特に適用可能であり、それに応じて、本明細書で説明されている本発明の複数の態様のうちの1つまたは複数の態様の装置を含む、または本明細書で説明されている本発明の複数の態様のうちの1つまたは複数の態様の方法に従って動作する、2Dおよび/または3Dグラフィックスプロセッサならびに2Dおよび/または3Dグラフィックス処理プラットフォームにも拡大適用される。上述の特定の機能を実行するためにハードウェアが必要であることを前提条件とすると、そのような2Dおよび/または3Dグラフィックスプロセッサは、他の何らかの方法で、2Dおよび/または3Dグラフィックスプロセッサが備える、通常の機能ユニットなどの1つまたは複数またはすべてを備えることができる。   As will be appreciated from the above, the present invention is not exclusively applicable, but is particularly applicable to 2D and 3D graphics processors and processing devices, and accordingly, the invention described herein. 2D and / or comprising an apparatus of one or more aspects of the embodiments or operating according to a method of one or more aspects of the invention described herein Or extended to 3D graphics processors and 2D and / or 3D graphics processing platforms. Assuming that hardware is required to perform the specific functions described above, such 2D and / or 3D graphics processors may in some other way be 2D and / or 3D graphics processors. Can comprise one or more or all of the normal functional units and the like.

当業者であれば、本発明の説明されている態様および実施形態はすべて、適宜、本明細書で説明されている好ましい、およびオプションの機能の1つまたは複数あるいはすべてを備えることができることも理解するであろう。   Those skilled in the art will also understand that all described aspects and embodiments of the present invention may include one or more or all of the preferred and optional features described herein, as appropriate. Will do.

本発明による方法は、少なくとも部分的にはソフトウェアを使用して、例えばコンピュータプログラムを使用して実装されうる。そのため、他の態様から見たときに、本発明は、データ処理手段にインストールされたときに方法または本明細書で説明されている方法を実行するように特に適合されたコンピュータソフトウェア、データ処理手段上でプログラム要素が実行されたときに本明細書で説明されている方法を実行するコンピュータソフトウェアコード部分を含むコンピュータプログラム要素、およびデータ処理システム上でプログラムが実行されたときに本明細書で説明されている1つまたは複数の方法のすべてのステップを実行するように適合されたコード手段を含むコンピュータプログラムを提供することがわかる。データ処理システムは、マイクロプロセッサ、プログラム可能なFPGA(フィールドプログラマブルゲートアレイ)などとしてよい。   The method according to the invention can be implemented at least in part using software, for example using a computer program. As such, when viewed from another aspect, the present invention provides computer software, data processing means specially adapted to perform the methods or methods described herein when installed on the data processing means. A computer program element that includes computer software code portions that perform the methods described herein when the program element is executed, and described herein when the program is executed on a data processing system It can be seen that a computer program is provided that includes code means adapted to perform all the steps of one or more of the described methods. The data processing system may be a microprocessor, a programmable FPGA (Field Programmable Gate Array), or the like.

本発明は、さらに、データ処理手段を備えるグラフィックスプロセッサ、レンダラー、または他のシステムを動作させるために使用されたときに前記データ処理手段と併せて前記プロセッサ、レンダラー、またはシステムに本発明の方法のステップを実行させるそのようなソフトウェアを含むコンピュータソフトウェアキャリアにも拡大適用される。このようなコンピュータソフトウェアキャリアは、ROMチップ、CD ROM、またはディスクなどの物理的記憶媒体とすることが可能であるか、またはケーブル上の電子信号、光信号、または衛星もしくは同様のものなどへの無線信号などの信号とすることが可能である。   The invention further provides a method of the invention for a processor, renderer or system in conjunction with the data processing means when used to operate a graphics processor, renderer or other system comprising data processing means. The present invention also extends to a computer software carrier including such software that causes the steps of Such a computer software carrier can be a physical storage medium such as a ROM chip, a CD ROM, or a disk, or an electronic signal on a cable, an optical signal, or a satellite or the like It can be a signal such as a radio signal.

さらに、本発明の方法のステップすべてが、コンピュータソフトウェアによって実行される必要はないことは理解されるであろうし、したがって、さらに広い観点から、本発明は、本明細書で説明されている方法の複数のステップのうちの少なくとも1つを実行するために、コンピュータソフトウェアおよびコンピュータソフトウェアキャリア上にインストールされたそのようなソフトウェアを提供する。   Furthermore, it will be understood that not all steps of the methods of the present invention need be performed by computer software, and thus, from a broader perspective, the present invention is not limited to the methods described herein. Computer software and such software installed on a computer software carrier are provided for performing at least one of the plurality of steps.

したがって、本発明は、コンピュータシステムとともに使用するためのコンピュータプログラム製品として適宜実現されうる。そのような実装は、コンピュータ可読媒体、例えば、ディスケット、CD ROM、ROM、またはハードディスクなどの、有形の非一時的な媒体上に固定された、あるいは限定はしないが、光またはアナログ通信回線を含む有形の媒体上で、あるいは限定はしないが、マイクロ波、赤外線、または他の伝送技術を含む無線技術の無形の手段を使用して、モデムまたは他のインターフェイスデバイスを介して、コンピュータシステムに伝送可能な、一連のコンピュータ可読命令を含むことができる。これら一連のコンピュータ可読命令は、本明細書ですでに説明されている機能の全部または一部を実現する。   Therefore, the present invention can be appropriately implemented as a computer program product for use with a computer system. Such implementations include, but are not limited to, optical or analog communication lines fixed on tangible, non-transitory media such as diskettes, CD ROM, ROM, or hard disks. Can be transmitted to a computer system on a tangible medium or via a modem or other interface device using intangible means of wireless technology including, but not limited to, microwave, infrared, or other transmission technology A series of computer readable instructions. These series of computer readable instructions implement all or part of the functionality already described herein.

当業者であれば、このようなコンピュータ可読命令は、多くのコンピュータアーキテクチャまたはオペレーティングシステムとともに使用するために多くのプログラミング言語で作成されうることを理解するであろう。さらに、このような命令は、限定はしないが半導体、磁気、または光を含む、現在の、または将来のメモリ技術を使用して格納されるか、または、限定はしないが光、赤外線、またはマイクロ波を含む、現在の、または将来の通信技術を使用して伝送されうる。このようなコンピュータプログラム製品は、印刷または電子文書を添付した取り外し可能媒体、例えばシステムROMまたは固定ディスク上のコンピュータシステムにプリインストールされている、例えば市販ソフトウェアとして配布されるか、あるいはサーバーまたはネットワーク、例えばインターネットまたはワールドワイドウェブ上の電子掲示板から配布されうることが企図される。   Those skilled in the art will appreciate that such computer readable instructions can be written in many programming languages for use with many computer architectures or operating systems. Further, such instructions may be stored using current or future memory technologies including, but not limited to, semiconductor, magnetic, or light, or light, infrared, or micro, without limitation. It can be transmitted using current or future communication technologies, including waves. Such computer program products are distributed pre-installed in a computer system on a removable medium, for example a system ROM or fixed disk, attached with a printed or electronic document, eg distributed as commercial software, or on a server or network, For example, it is contemplated that it can be distributed from an electronic bulletin board on the Internet or the World Wide Web.

本発明の多数の好ましい実施形態について、付属の図面を参照しつつ、実施例のみを使って説明する。   Numerous preferred embodiments of the present invention will now be described by way of example only with reference to the accompanying drawings.

本発明がタイルベースのグラフィックスプロセッサと連携して使用される第1の実施形態の概略を示す図である。1 is a schematic diagram of a first embodiment in which the present invention is used in conjunction with a tile-based graphics processor. FIG. 本発明の第1の実施形態において関連するデータがメモリ内にどのように格納されるかの概略を示す図である。It is a figure which shows the outline of how the relevant data are stored in memory in the 1st Embodiment of this invention. 図1に示されている実施形態のトランザクション排除ハードウェアユニットの概略および詳細を示す図である。FIG. 2 is a diagram showing an overview and details of a transaction exclusion hardware unit of the embodiment shown in FIG. 本発明の好ましい一実施形態のオペレーションに対する可能な修正の概略を示す図である。FIG. 5 shows a schematic of possible modifications to the operation of a preferred embodiment of the present invention. 本発明の好ましい一実施形態のオペレーションに対する可能な修正の概略を示す図である。FIG. 5 shows a schematic of possible modifications to the operation of a preferred embodiment of the present invention. 表示用に出力を形成する複数の画像ソースの合成を示す図である。FIG. 6 illustrates a combination of multiple image sources that form an output for display. 複数の画像ソースがある本発明の一実施形態の概略を示す図である。FIG. 2 is a schematic diagram of an embodiment of the present invention with multiple image sources. 複数の画像ソースがある本発明の他の実施形態の概略を示す図である。FIG. 6 shows a schematic of another embodiment of the invention with multiple image sources. 本発明の他の実施形態を示す図である。It is a figure which shows other embodiment of this invention. 本発明の他の実施形態を示す図である。It is a figure which shows other embodiment of this invention.

次に、本発明の多数の好ましい実施形態について説明する。これらの実施形態は、グラフィックス処理システムにおいてもっぱら本発明を使用することに関して説明されているが、上記のように、本発明は、ビデオ処理などの、出力全体の一部分を表すデータをブロック単位で処理する他のデータ処理システムに適用可能である。   A number of preferred embodiments of the invention will now be described. Although these embodiments have been described with respect to using the present invention exclusively in a graphics processing system, as noted above, the present invention provides data that represents a portion of the overall output, such as video processing, in blocks. It can be applied to other data processing systems to process.

同様に、以下の実施形態は、もっぱら本発明の仕方でタイルベースのグラフィックスプロセッサによって生成されるレンダリング済みタイルの比較に関して説明されるが、ここでもまた、上記のように、本発明はそのような配置構成に限定されない。   Similarly, the following embodiments are described with respect to a comparison of rendered tiles generated exclusively by a tile-based graphics processor in the manner of the present invention, but again, as noted above, the present invention is It is not limited to a simple arrangement configuration.

図1は、本発明に従うグラフィックス処理システムの配置構成の概略を示す。   FIG. 1 shows an outline of the arrangement of a graphics processing system according to the present invention.

グラフィックス処理システムは、図1に示されているように、タイルベースのグラフィックスプロセッサまたはグラフィックスプロセッシングユニット(GPU)1を備え、これは、当技術分野で知られているように、生成されるべき出力フレームなどの、出力データ配列のタイルを生成する。出力データ配列は、当技術分野で知られているように、典型的には、画面もしくはプリンタなどの、表示デバイス上に表示することが意図されている出力フレームとすることができるが、例えば、グラフィックスプロセッサなどの「テクスチャにレンダー」出力を含んでいてもよい。   The graphics processing system comprises a tile-based graphics processor or graphics processing unit (GPU) 1, as shown in FIG. 1, which is generated as is known in the art. Generate tiles of the output data array, such as the output frame to be. The output data array can typically be an output frame intended to be displayed on a display device, such as a screen or printer, as is known in the art, for example, It may include a “render to texture” output, such as a graphics processor.

当技術分野で知られているように、このような配置構成では、タイルは、グラフィックスプロセッサ1によって生成された後、通常であれば、メモリコントローラ4に接続されている相互接続部3を介してメモリ2(このメモリはDDR-SDRAMでもよい)内のフレームバッファに書き込まれる。いつか後になってフレームバッファが、例えば、ディスプレイコントローラによって読み込まれ、ディスプレイに出力される。   As is known in the art, in such an arrangement, the tiles are generated by the graphics processor 1 and then usually through the interconnect 3 connected to the memory controller 4. Are written in the frame buffer in the memory 2 (this memory may be DDR-SDRAM). Sometime later, the frame buffer is read by, for example, a display controller and output to the display.

本発明の実施形態において、このプロセスは、メモリ2内のフレームバッファへのグラフィックスプロセッサ1によって生成されるタイルの書き込みを制御する、トランザクション排除ハードウェアユニット5の使用によって修正される。本質的に、また以下でさらに詳しく説明されるように、トランザクション排除ハードウェア5は、タイルの内容を表す署名をタイル毎に生成するように動作し、次いで、署名が一致しているかどうかを確認するためその署名をフレームバッファ内にすでに格納されている1つまたは複数のタイルの署名と比較する。(したがって、この実施形態では、比較されるデータブロックは、グラフィックスプロセッサによって生成されるレンダリング済みタイルを含む。)   In an embodiment of the present invention, this process is modified by the use of a transaction exclusion hardware unit 5 that controls the writing of tiles generated by the graphics processor 1 to the frame buffer in the memory 2. In essence, and as described in more detail below, transaction exclusion hardware 5 operates to generate a signature that represents the contents of the tile for each tile, and then checks to see if the signatures match To compare the signature with the signature of one or more tiles already stored in the frame buffer. (Thus, in this embodiment, the data blocks to be compared include rendered tiles generated by the graphics processor.)

署名が一致した場合、次いで、新しいタイルがフレームバッファ内にすでに格納されているタイルと同じであると仮定され、そこで、トランザクション排除ハードウェアユニット5は、新しいタイルをフレームバッファに書き込むのを差し控える。   If the signature matches, then it is assumed that the new tile is the same as the tile already stored in the frame buffer, where the transaction exclusion hardware unit 5 refrains from writing the new tile to the frame buffer. .

このようにして、本発明の実施形態では、一方のフレームから次のフレームへと実際には変化しないフレームバッファのセクションに対する書き込みトラヒックを回避することができる(ゲームの場合には、これは、ユーザーインターフェイス、空などの大部分、さらにはカメラ位置が静止しているときのプレイフィールドの大半に対する場合である)。これにより、フレームバッファオペレーションに関して帯域幅および電力消費のかなりの量を節減することができる。   In this way, embodiments of the present invention can avoid write traffic to sections of the frame buffer that do not actually change from one frame to the next (in the case of games, this is Interface, most of the sky etc., and most of the play field when the camera position is still). This can save a significant amount of bandwidth and power consumption for frame buffer operation.

他方で、署名が一致しない場合、新しいタイルがフレームバッファに書き込まれ、そのタイルに対する生成された署名も、メモリに書き込まれる。   On the other hand, if the signatures do not match, a new tile is written to the frame buffer, and the generated signature for that tile is also written to memory.

図2は、これに対する例示的なメモリレイアウトを示しており、フレームを構成するタイルはメモリの一部分10(したがって、「フレームバッファ」を形成する)内に格納され、フレームを構成するタイルに対する関連する署名は、メモリの他の部分11に格納される。(他の処理方法も、もちろん、可能である。)高精細度(HD)フレームについては、16×16の32ビットタイルである場合、32ビット署名を使用することで、8MBフレームに30KBを加える。   FIG. 2 shows an exemplary memory layout for this, where the tiles that make up the frame are stored in a portion 10 of the memory (thus forming a “frame buffer”) and related to the tiles that make up the frame. The signature is stored in the other part 11 of the memory. (Other processing methods are, of course, possible.) For high-definition (HD) frames, if it is a 16x16 32-bit tile, use a 32-bit signature to add 30KB to an 8MB frame .

(フレームバッファが、二重バッファ型である場合、好ましくは、フレーム毎に(またそれぞれのフレームとともに)署名データが格納される。次いで、新しいタイルが、メモリ内の最も古いフレームと比較される。)   (If the frame buffer is double buffered, preferably the signature data is stored for each frame (and with each frame). The new tile is then compared to the oldest frame in memory. )

図3は、トランザクション排除ハードウェアユニット5をさらに詳しく示している。   FIG. 3 shows the transaction exclusion hardware unit 5 in more detail.

図3に示されているように、グラフィックスプロセッサ1からトランザクション排除ハードウェアユニット5が受け取ったタイルデータは、署名生成および比較プロセスが実行されている間にタイルデータを一時的に格納するバッファ21に渡されるとともに、署名生成器20にも渡される。   As shown in FIG. 3, the tile data received by the transaction exclusion hardware unit 5 from the graphics processor 1 is a buffer 21 that temporarily stores the tile data during the signature generation and comparison process. And also to the signature generator 20.

署名生成器20は、タイルに必要な署名を生成するように動作する。本発明の実施形態では、署名は、タイルに対して32ビットCRCの形をとる。   The signature generator 20 operates to generate a signature required for the tile. In an embodiment of the invention, the signature takes the form of a 32-bit CRC for the tile.

他の署名生成関数、およびハッシュ関数などの署名の他の形式も、または代わりに、所望するなら、使用することが可能である。例えば、1つのRGBAタイルに対する単一の署名、または色平面毎に別の署名を生成することも可能である。同様に、色変換を実行し、別の署名をY、U、およびVのそれぞれに対し生成することが可能である。電力消費量を低減するために、署名生成器20によって処理されるタイルデータの順序を、必要に応じて変更することが可能である(例えば、ヒルベルト曲線を使用して)。   Other forms of signatures, such as other signature generation functions and hash functions, or alternatively, can be used if desired. For example, it is possible to generate a single signature for one RGBA tile, or another signature for each color plane. Similarly, color conversion can be performed and separate signatures can be generated for each of Y, U, and V. To reduce power consumption, the order of tile data processed by the signature generator 20 can be changed as needed (eg, using a Hilbert curve).

新しいタイルに対する署名が生成されると、このタイルは、新しいタイルの署名をフレームバッファ内にあるか、またはすでに存在している1つまたは複数のタイルの1つまたは複数の署名と比較する動作をする署名比較器23に渡される。本発明の実施形態では、比較は、注目するタイルに対するタイル位置におけるフレームバッファ内にすでにあるタイルの署名との比較である。   When a signature for a new tile is generated, this tile will act to compare the signature of the new tile with one or more signatures of one or more tiles that are in the frame buffer or already exist. To the signature comparator 23. In an embodiment of the invention, the comparison is a comparison with the signature of a tile already in the frame buffer at the tile position for the tile of interest.

前のフレームからの複数のタイルに対する署名は、システムの動作時に簡単に取り出せるようにトランザクション排除ハードウェアユニット5の署名バッファ22(このバッファは、さまざまな形で、例えばバッファまたはキャッシュとして実装されうる)内にキャッシュされ、したがって、署名比較器23は、そこにもし存在すれば署名バッファ22から関連する署名をフェッチし(または当技術分野で知られているように、メインメモリ2からの署名のフェッチをトリガーし)、前のフレームのタイルの署名を署名生成器から受け取った署名と比較して一致があるか調べる。   The signature buffer 22 of the transaction exclusion hardware unit 5 (this buffer can be implemented in various ways, for example as a buffer or cache) so that signatures for multiple tiles from the previous frame can be easily retrieved during system operation. Therefore, the signature comparator 23 fetches the associated signature from the signature buffer 22 if it exists (or fetches the signature from the main memory 2 as is known in the art). Compare the signature of the previous frame tile with the signature received from the signature generator for a match.

署名が一致しない場合、署名比較器23は、書き込みコントローラ24を制御して、新しいタイルおよびその署名をフレームバッファおよびメモリ2内の関連する署名データストアに書き込む。その一方で、署名比較器により、新しいタイルの署名とフレームバッファ内にすでに格納されているタイルの署名とが一致していることがわかると、書き込みコントローラ24は、タイルを無効化し、フレームバッファにはデータは一切書き込まれない(つまり、既存のタイルをフレームバッファ内に残すことができ、その署名は保持される)。   If the signatures do not match, the signature comparator 23 controls the write controller 24 to write the new tile and its signature to the frame buffer and the associated signature data store in the memory 2. On the other hand, if the signature comparator finds that the signature of the new tile matches the signature of the tile already stored in the frame buffer, the write controller 24 invalidates the tile and stores it in the frame buffer. Does not write any data (ie, it can leave an existing tile in the frame buffer and keep its signature).

このようにして、署名比較によってメモリ2内にすでに格納されているタイルと異なることが判明した場合にメモリ2内のフレームバッファにのみタイルが書き込まれる。これは、フレームが生成されているときにメモリ2への書き込みトランザクションの回数を減らすのに役立つ。   In this way, if the signature comparison reveals that the tile is different from the tile already stored in the memory 2, the tile is written only to the frame buffer in the memory 2. This helps to reduce the number of write transactions to memory 2 when a frame is being generated.

本発明の実施形態では、不正に一致したタイルがフレームバッファ内にあまりに長い長期間存在することを止めさせるために、フレームバッファ内のそれぞれの格納されているタイルに対する署名比較は、定期的に無効にされる(好ましくは1秒に1回)。このことは、署名比較が無効にされているタイルが、新たに生成された場合、その新たに生成されたタイルが、メモリ2内のフレームバッファに書き込まれるのは避けられないことを意味している。このようにして、不一致タイルは、時間が経つうちに、常に、完全に新しい(したがって正しい)タイルで置き換えられることを確実にすることができる。(ランダムタイルでは、例えば、32ビットCRCは、タイル2^32個に1回の割合で偽りの一致(つまり、同じ署名が異なる内容を持つタイルに対して生成される状況)を発生し、毎秒30フレームの1080 HD解像度では、約4時間おきの比較プロセスのせいでタイル不一致に至る。)   In an embodiment of the present invention, signature comparisons for each stored tile in the frame buffer are periodically invalidated to stop an illegally matched tile from being in the frame buffer for too long. (Preferably once per second). This means that if a tile with signature comparison disabled is newly created, it is inevitable that the newly created tile will be written to the frame buffer in memory 2. Yes. In this way, it can be ensured that mismatched tiles are always replaced with completely new (and therefore correct) tiles over time. (For random tiles, for example, a 32-bit CRC will generate a false match (i.e. a situation where the same signature is generated for tiles with different content) once every 2 ^ 32 tiles, and every second (With 30 frames of 1080 HD resolution, the comparison process occurs approximately every 4 hours, resulting in tile mismatch.)

本発明の実施形態では、格納されているタイルの署名の比較は、所定の、循環する、シーケンスで無効にされ、これにより、1秒毎に(および/または例えば25または30フレームを一組としてこの一組にわたって)、それぞれの個別タイルでは、その署名比較を1回無効にする(したがって、それに対する新しいタイルが書き込まれる)。   In embodiments of the present invention, stored tile signature comparisons are disabled in a predetermined, circular, sequence, so that every second (and / or eg 25 or 30 frames as a set). Over this set), each individual tile invalidates its signature comparison once (thus writing a new tile for it).

他の処理方法も可能であろう。例えば、システムは、完全に新しいフレームを定期的に(例えば、1秒に1回)、MPEGビデオと同様にして書き出すように単純に構成することが可能である。それに加えて、または代替として、より長い署名をそれぞれのタイルについて使用することが可能であり、これにより、実際に異なるタイルに対する署名が同一であることによる偽りのタイル一致が生じる割合を著しく低減する。例えば、64ビットCRCなどのより大きなCRCでは、このような不一致を120万年に1回の割合にまで減らすことが可能である。   Other processing methods may be possible. For example, the system can simply be configured to export completely new frames periodically (eg, once per second) in the same manner as MPEG video. In addition, or alternatively, a longer signature can be used for each tile, which significantly reduces the rate at which false tile matching occurs due to the fact that signatures for different tiles are actually identical. . For example, a larger CRC, such as a 64-bit CRC, can reduce such discrepancies to a rate of once every 1.2 million years.

(あるいは、そのような偽りのタイル一致は、タイルがともかく依然として類似しており、不一致のタイルが1/30秒以下のオーダーでしか表示される可能性がないという事実により知覚される可能性はないので、この点で予防は不要であると決定することができる。)   (Alternatively, such false tile matches can be perceived by the fact that the tiles are still similar anyway, and mismatched tiles can only be displayed on the order of 1/30 seconds or less. (There can be no prevention in this respect because there is no such thing.)

例えば、より重要であると考えられるタイルの内容の態様に対し署名生成を重み付けすることも可能である(例えば、ユーザーが最終的な表示タイルをどのように知覚するかに関して)。例えば、色のLSBビットに比べて色のMSBビットに対してより長い署名を生成することが可能である(一般的に、色のLSBビットはMSBビットよりも重要度が下がるため)。署名の長さは、電力消費を最小にすることを補助するために、例えば、アプリケーションに応じて使用中に変更することも可能である。   For example, it is possible to weight signature generation to aspects of the content of the tile that are considered more important (eg, how the user perceives the final display tile). For example, a longer signature can be generated for a color MSB bit compared to a color LSB bit (since color LSB bits are generally less important than MSB bits). The signature length can also be changed during use, for example depending on the application, to help minimize power consumption.

特に好ましい一実施形態では、本発明で使用するために生成されるデータブロック署名は、作成時に「ソルト」が付けられている(つまり、他の数値(ソルト値)が生成された署名値に付加されている)。ソルト値は、都合のよいことに、例えば、起動以降のデータ出力配列(例えば、フレーム)の数値、またはランダム値としてよい。これは、当技術分野で知られているように、本発明の比較プロセスにおける不正確さによって引き起こされる誤りを非決定論的にするのに役立つ(つまり、例えば、プロセスが映画またはテレビ番組を表示するために使用されている場合など、画像の所定のシーケンスの反復ビューイングについて同じ点で誤りが常に発生するのを回避する)。   In a particularly preferred embodiment, data block signatures generated for use in the present invention are “salt” ed when created (i.e., other numerical values (salt values) are appended to the generated signature value). Have been). The salt value may conveniently be, for example, a numerical value in a data output array (eg, a frame) after activation, or a random value. This helps to make the errors caused by inaccuracies in the comparison process of the present invention non-deterministic as known in the art (i.e., the process displays a movie or television program, for example) To avoid errors always occurring at the same point for iterative viewing of a given sequence of images, such as when used for

上述のように、本発明の実施形態では、署名比較プロセスは、新たに生成されたタイルをフレームバッファ内の対応するタイル位置に対して格納されているタイルと比較するように動作する。   As described above, in an embodiment of the present invention, the signature comparison process operates to compare the newly generated tile with the tile stored for the corresponding tile location in the frame buffer.

しかし、他の好ましい実施形態では、所定の生成されたタイルは、フレームバッファ内にすでに格納されている複数のタイルと比較される。この場合、そのタイルに対して生成された署名は、フレームバッファ内に格納されている複数のタイルの署名としかるべく比較される。この場合、トランザクション排除ハードウェアユニット5の署名バッファ22内に格納されているタイルの署名との(つまり、フレームに対する格納されているすべてのタイルの部分集合との)そのような比較が実行されることが好ましいが、すべての格納されているタイルとの新しいタイルの比較などの他の構成も、所望するなら可能である。好ましくは、署名が署名バッファ22内に格納されるタイルとの一致の可能性を高めるために、タイルをヒルベルト順序などの適切な順序で処理する。   However, in other preferred embodiments, a given generated tile is compared to a plurality of tiles already stored in the frame buffer. In this case, the signature generated for that tile is compared accordingly with the signatures of the multiple tiles stored in the frame buffer. In this case, such a comparison is performed with the signature of the tile stored in the signature buffer 22 of the transaction exclusion hardware unit 5 (i.e., with a subset of all stored tiles for the frame). Preferably, other configurations are possible if desired, such as a comparison of new tiles with all stored tiles. Preferably, the tiles are processed in an appropriate order, such as a Hilbert order, to increase the likelihood that the signature matches a tile stored in the signature buffer 22.

この場合、新しいタイルについて生成される署名は、それに応じて、現在の出力フレーム内の複数のタイルの署名と比較される(これらのタイルは、当業者であれば理解するように、現在のフレームに新しく書き込まれたタイル、または現在のフレームのタイルと一致したため現在のフレームへ実際に「繰り越された」前の(複数の)フレームからのタイルとすることができる)。   In this case, the signature generated for the new tile is correspondingly compared to the signatures of the multiple tiles in the current output frame (these tiles are understood by those skilled in the art as the current frame Newly written tiles, or tiles from the previous frame (s) that actually "carry over" to the current frame because they matched the tiles of the current frame).

この実施形態では、タイルが、前のフレーム内の異なるタイル座標を持つ他のタイルと同じであるかどうかを示すリストが保持される。次いで、表示されるべきタイルを読み込んだときに、対応するリストエントリが読み込まれる。リストエントリ値がゼロ(null)の場合、そのタイルに対する通常タイル位置に格納されているデータが読み込まれる。さもなければ、リストエントリは、例えば、現在のタイル位置について読み込まれるべきフレームバッファ内のタイルの位置を決定するためにトランザクション排除ハードウェアユニット5によって自動的に変換されうる、読み込むべき異なるタイルのアドレスを含む。   In this embodiment, a list is maintained that indicates whether the tile is the same as other tiles with different tile coordinates in the previous frame. The corresponding list entry is then read when reading the tiles to be displayed. When the list entry value is zero (null), the data stored in the normal tile position for the tile is read. Otherwise, the list entry may be an address of a different tile to read, which can be automatically translated by, for example, the transaction exclusion hardware unit 5 to determine the position of the tile in the frame buffer to be read for the current tile position. including.

本発明の好ましい一実施形態では、タイル比較プロセスが、生成されるあらゆるタイルについて実行される。しかし、好ましい他の実施形態では、フレーム間にほとんど相関がないと予期される場合に分析するタイルを減らす適応的方式が使用される。この配置構成では、タイル一致の履歴的な数が、フレーム間の相関の尺度として使用される(多数のタイルの一致がある場合に、フレーム間に多数の相関があると想定することができ、また逆も同様である)。トランザクション排除ハードウェアは、このオペレーションを実行するための好適なコントローラを備えることができる。   In a preferred embodiment of the present invention, a tile comparison process is performed for every tile that is generated. However, in another preferred embodiment, an adaptive scheme is used that reduces the tiles to analyze when little correlation is expected between frames. In this arrangement, the historical number of tile matches is used as a measure of correlation between frames (if there are multiple tile matches, it can be assumed that there are multiple correlations between frames, The reverse is also true). The transaction exclusion hardware can comprise a suitable controller for performing this operation.

したがって、この場合、フレーム間に相関が多数ある(つまり、タイルの内の多くがフレームバッファ内にすでに存在しているタイルと一致している)と判定された場合、タイルのすべてについて署名が生成され比較されるが、フレーム間にほとんど相関がない(フレームバッファ内にすでに格納されているタイルと一致することが判明しているタイルがほとんどまたは全くない)と判定された場合、より少ないタイルについて署名が生成され、タイル比較プロセスが実行される。   So in this case, if it is determined that there is a lot of correlation between the frames (that is, many of the tiles match the tiles already in the frame buffer), a signature is generated for all of the tiles. If it is determined that there is little correlation between frames (few or no tiles are known to match the tiles already stored in the frame buffer) A signature is generated and a tile comparison process is performed.

図4は、このことを示している。図4aは、フレーム間の相関が多数あり、すべてのタイルについて署名が生成される場合を示している。図4bは、フレーム間の相関がほとんどなく、この場合、タイルの部分集合31のみについて署名が生成され比較される逆の状況を示している。   FIG. 4 illustrates this. FIG. 4a shows the case where there are many correlations between frames and signatures are generated for all tiles. FIG. 4b shows the reverse situation where there is little correlation between frames, in which case signatures are generated and compared for only a subset 31 of tiles.

これらの原理を使用して、例えば、フレームのどの特定の部分がより高い相関を有するかを判定し、次いで、所望するなら、そのフレームのみの特定の領域における比較を受けるタイルの数を増やすことを試みることも可能である。   Using these principles, for example, determine which particular part of a frame has a higher correlation and then increase the number of tiles that are compared in a particular region of that frame only if desired It is also possible to try.

当業者であれば理解するように、トランザクション排除ハードウェアユニット5は、グラフィックスフレームバッファ、ステクスチャにグラフィックレンダーなどの、グラフィックスプロセッサ1が生成する出力に関して動作可能である。   As will be appreciated by those skilled in the art, the transaction exclusion hardware unit 5 is operable with respect to the output generated by the graphics processor 1, such as a graphics frame buffer, a texture to graphic render, and the like.

当業者であれば理解するように、グラフィックスプロセッサ1を備える典型的なシステムでは、GUI、グラフィックス、およびビデオなどの多数の画像ソースがありうる。これらのソースは、レイヤを使用するディスプレイコントローラ、または専用合成エンジンを使用して、または例えば、グラフィックスプロセッサを使用して合成することができる。図5は、このような合成フレームの一例を示している。   As will be appreciated by those skilled in the art, in a typical system with a graphics processor 1, there may be a number of image sources such as a GUI, graphics, and video. These sources can be synthesized using a display controller that uses layers, or a dedicated composition engine, or using, for example, a graphics processor. FIG. 5 shows an example of such a composite frame.

このような配置構成では、本発明のトランザクション排除プロセスは、例えば、グラフィックスプロセッサのみに関して、使用することも可能である。図6は、このような配置構成に対する可能なシステム構成を示している。この場合、グラフィックスプロセッサ1、ビデオコーデック60、およびCPU 61があり、それぞれ表示用に潜在的画像ソースを生成する。トランザクション排除ユニット5は、グラフィックスプロセッサ1とメモリ相互接続部3との中間に配置される。   In such an arrangement, the transaction exclusion process of the present invention can be used, for example, only with a graphics processor. FIG. 6 shows a possible system configuration for such an arrangement. In this case, there is a graphics processor 1, a video codec 60, and a CPU 61, each generating a potential image source for display. The transaction exclusion unit 5 is arranged between the graphics processor 1 and the memory interconnect 3.

しかし、出願人は、本発明のトランザクション排除プロセスは、ビデオフレームバッファ用にビデオブロックを生成するビデオプロセッサ(ビデオコーデック)などのタイルベースのグラフィックスプロセッサのタイルに似た仕方でブロック単位で処理される他の形式のデータに、またグラフィックスプロセッサ画像合成にも等しく使用することが可能であることを認識している。したがって、本発明のトランザクション排除プロセスは、例えばビデオプロセッサ60によって生成されている画像などにも等しく適用することができる。   However, Applicants have noted that the transaction exclusion process of the present invention is processed in blocks in a manner similar to tiles in tile-based graphics processors such as video processors (video codecs) that generate video blocks for video frame buffers. It is recognized that it can be used equally well for other types of data and for graphics processor image synthesis. Thus, the transaction exclusion process of the present invention is equally applicable to images being generated by video processor 60, for example.

したがって、図7は、グラフィックスプロセッサ1、ビデオプロセッサ60、およびCPU 61のどれかからの適切な画像出力を処理するためにトランザクション排除ハードウェアユニット5が上述の仕方で動作可能な代替構成を示している。この配置構成において、トランザクション排除ハードウェアユニット5は、特定のマスターIDおよび/またはアドレスマップの特定の定義済みおよび選択済み部分について動作するように有効にされる。   Thus, FIG. 7 shows an alternative configuration in which the transaction exclusion hardware unit 5 can operate in the manner described above to process the appropriate image output from any of the graphics processor 1, video processor 60, and CPU 61. ing. In this arrangement, the transaction exclusion hardware unit 5 is enabled to operate on specific defined and selected portions of a specific master ID and / or address map.

他の配置構成も、もちろん、可能である。   Other arrangements are of course possible.

例えば、すべて、データブロックを出力バッファに書き込む複数のマスターがある場合に、本発明を使用することが可能でもある。これは、例えば、ホストプロセッサが、グラフィックスプロセッサによって生成されている画像上に表示すべき「オーバーレイ(overlay)」を生成する場合としてよい。   For example, it is possible to use the present invention when there are multiple masters that all write data blocks to the output buffer. This may be the case, for example, when the host processor generates an “overlay” to be displayed on the image being generated by the graphics processor.

そのような場合、異なるマスターデバイスのすべてが、例えば、データブロック比較プロセスが作用する出力を有することができる。あるいは、データブロック比較プロセスは、出力データ配列に対して、出力データ配列全体に対して、または2つのマスターデバイスが出力データブロックを生成している可能性のある場合の出力データ配列の部分に対してのみ(例えば、ホストプロセッサの「オーバーレイ」が表示されるべき出力データ配列の領域に対してのみ)データブロックを生成する2つ以上のマスターデバイスがあるときに無効にすることができる。   In such a case, all of the different master devices can have an output on which, for example, the data block comparison process operates. Alternatively, the data block comparison process can be performed on the output data array, on the entire output data array, or on a portion of the output data array where two master devices may be generating the output data block. Can only be disabled when there are two or more master devices that generate data blocks (eg only for regions of the output data array where the host processor “overlay” is to be displayed).

図8および9は、本発明の他の実施形態を示す。図8は、この実施形態の配置構成の概略を示し、図9は、この実施形態におけるデータブロック比較プロセスのステップを示す流れ図である。   8 and 9 show another embodiment of the present invention. FIG. 8 shows an outline of the arrangement configuration of this embodiment, and FIG. 9 is a flowchart showing the steps of the data block comparison process in this embodiment.

この実施形態において、図8に示されているように、トランザクション排除ハードウェアユニットは、グラフィックプロセッサ(GPU)1の一体となる部分である。トランザクション排除ハードウェアユニット5は、以下でさらに説明されるように、新しいデータブロックを注目している出力配列(フレーム)に対して生成された他のデータブロックと比較し、出力データ配列内にすでに格納されているデータブロックとは比較しないようにも、動作する。   In this embodiment, as shown in FIG. 8, the transaction exclusion hardware unit is an integral part of the graphics processor (GPU) 1. The transaction exclusion hardware unit 5 compares the new data block with other data blocks generated for the output array (frame) of interest, as described further below, and already in the output data array It also operates so as not to compare with the stored data block.

したがって、この実施形態では、グラフィックスプロセッサ1は、そのタイルレンダリングロジック40の後に、データブロック生成ロジック41およびブロック比較ロジック43を備えるトランザクション排除ユニット5を備える。ブロック生成ロジック41は、タイルレンダリングロジック40によって生成されるタイルから適切なデータブロックを生成するように動作する。本発明の実施形態では、ブロック生成ロジックは、タイルレンダリングロジック40によって生成されるタイルの部分タイルに対応するブロックを生成する。しかし、本明細書で説明されているように、他のサイズおよび形式のデータブロックも可能であり、所望するなら、ブロック生成ロジック41によって生成することも可能である。   Thus, in this embodiment, the graphics processor 1 comprises a transaction exclusion unit 5 comprising a data block generation logic 41 and a block comparison logic 43 after the tile rendering logic 40. Block generation logic 41 operates to generate appropriate data blocks from the tiles generated by tile rendering logic 40. In an embodiment of the present invention, block generation logic generates blocks corresponding to the partial tiles of the tiles generated by tile rendering logic 40. However, as described herein, data blocks of other sizes and formats are possible and can be generated by the block generation logic 41 if desired.

ブロック生成ロジックは、バッファ42内に生成する連続ブロックを格納する。次いで、比較ロジック43は、バッファ42内に格納されている各データブロックを比較し(この場合は、新しいデータブロックと直前のデータブロックとの比較)、この比較に基づいてそれらのブロックが同じと考えられるかどうかを示す出力メタデータビットを生成する。複数のブロックに対するメタデータ出力ビットが収集され、1つのバッファ内にマージされ(メモリ効率を高めるため)、次いで、注目する出力データ配列に関連付けられているメインメモリ2内のメタデータビットマップ45に適宜格納される(オフチップメモリに書き込まれる)。(他の処理方法も、もちろん、可能である。)   The block generation logic stores successive blocks to be generated in the buffer 42. The comparison logic 43 then compares each data block stored in the buffer 42 (in this case, comparing the new data block with the previous data block), and based on this comparison, the blocks are the same. Generate output metadata bits that indicate whether they are considered. Metadata output bits for multiple blocks are collected and merged into one buffer (to increase memory efficiency), then into the metadata bitmap 45 in main memory 2 associated with the output data array of interest Stored as appropriate (written to off-chip memory). (Other processing methods are of course possible.)

データブロックは、バッファ42からも読み込まれ、後述の書き込み排除プロセスが実行され、メモリ2内のフレーム(出力)バッファ4内に適宜格納される。   The data block is also read from the buffer 42, a write exclusion process described later is executed, and stored appropriately in the frame (output) buffer 4 in the memory 2.

この実施形態では、メタデータは、メモリ2内の出力データ配列44内のそれぞれのデータブロック(部分タイル)位置が、メタデータビットマップ45内のビットに関連付けられるように構成され、データブロックに対するビットマップ内のビットは、データブロックが出力データ配列内の前のデータブロックと同じであると考えられた場合には「1」に設定され、データブロックが前のデータブロックと異なると考えられた場合には「0」に設定される。次いで、これにより、以下でさらに説明されるように、出力データ配列44を読み込んでいるデバイスが、それぞれのデータブロック位置に関してどのデータブロックを使用すべきかを決定することができる。   In this embodiment, the metadata is configured such that each data block (partial tile) location in the output data array 44 in the memory 2 is associated with a bit in the metadata bitmap 45, and a bit for the data block. The bit in the map is set to '1' if the data block is considered to be the same as the previous data block in the output data array, and the data block is considered different from the previous data block Is set to "0". This in turn allows the device reading the output data array 44 to determine which data block to use for each data block location, as further described below.

このオペレーションを容易にするために、出力フレームを構成するデータブロックは、特定の定義済み順序で処理される(フレームバッファに書き込む場合とそこから読み込む場合の両方)。ブロック間の空間的コヒーレンスを利用することができる順序が、好ましくは使用される。   To facilitate this operation, the data blocks that make up the output frame are processed in a specific predefined order (both when writing to and reading from the frame buffer). An order in which spatial coherence between blocks can be utilized is preferably used.

データ配列およびメタデータ生成プロセスが、図9に流れ図として示されている。   The data array and metadata generation process is shown as a flow diagram in FIG.

図9に示されているように、ブロック生成ロジック41は、タイルレンダリングロジック40によって生成されたレンダリング済みタイルからデータブロック(この場合には、部分タイルに対応する)を生成する(ステップ51)。次いで、データブロックが、バッファ42に格納される。   As shown in FIG. 9, the block generation logic 41 generates data blocks (in this case, corresponding to partial tiles) from the rendered tiles generated by the tile rendering logic 40 (step 51). The data block is then stored in the buffer 42.

次いで、比較ロジック43は、新しいデータブロックを前のデータブロックと比較する(これは、バッファ42内にすでに格納されている)(ステップ52)。本実施形態では、比較ロジック43は、データブロックの内容同士を比較する。他の処理方法も可能であろう。例えば、比較ロジックは、上述のように、ブロックの実際の内容ではなく、ブロックに対する署名を比較することが可能である。   The comparison logic 43 then compares the new data block with the previous data block (which is already stored in the buffer 42) (step 52). In the present embodiment, the comparison logic 43 compares the contents of the data blocks. Other processing methods may be possible. For example, the comparison logic can compare the signatures for the blocks rather than the actual contents of the blocks, as described above.

次いで、比較ロジックは、新しいブロックを前のブロックに類似していると考えるべきかどうかを判定する(ステップ53)。本発明の実施形態では、この評価は、比較されている2つのブロックの内容がどの程度類似しているかに基づく。例えば、ピクセルのLSBにおける差の特定の量の閾値が設定され、2つのブロックの内容の差が、この閾値より小さければ、ブロックは類似していると判定され、また逆も同様である。   The comparison logic then determines whether the new block should be considered similar to the previous block (step 53). In an embodiment of the invention, this evaluation is based on how similar the contents of the two blocks being compared are. For example, a threshold of a certain amount of difference in a pixel's LSB is set, and if the difference between the contents of two blocks is less than this threshold, the blocks are determined to be similar, and vice versa.

(この閾値は、使用中に変更する(例えば、プログラムする)ことができる。例えば、静的フレームデータと動的フレームデータの割合に基づき、および/または使用中の電力モード(例えば、低電力モードかどうか)に基づき、アプリケーション毎に設定することが可能である。)   (This threshold can be changed (eg, programmed) during use. For example, based on the ratio of static frame data to dynamic frame data and / or power mode in use (eg, low power mode) Can be set for each application based on whether or not)

他のデータブロック比較方式も、所望するなら使用することが可能である。   Other data block comparison schemes can be used if desired.

ブロックが、ステップ53において比較ロジックにより異なる(類似していない)と判定される場合、比較ロジックは、値「0」をメタデータビットマップ45内の適切な位置に書き込むように動作する(ステップ54)。この新しいデータブロックは、バッファ42からメインメモリ2内のフレームバッファ44に書き込まれる(ステップ55)。   If the block is determined to be different (not similar) by the comparison logic in step 53, the comparison logic operates to write the value “0” to the appropriate location in the metadata bitmap 45 (step 54). ). This new data block is written from the buffer 42 to the frame buffer 44 in the main memory 2 (step 55).

その一方で、ステップ53において、ブロックが類似していると考えるべきであると判定された場合、比較ロジック43は、「1」をメタデータビットマップ45内の適切な位置に書き込ませるように動作する(ステップ56)。   On the other hand, if it is determined in step 53 that the blocks should be considered similar, the comparison logic 43 operates to cause “1” to be written to the appropriate location in the metadata bitmap 45. (Step 56).

さらに、2つのブロックが、互いに類似していると考えられる場合、新しいブロックは、フレームバッファ44内のデータ配列内に書き込まれない(ステップ58)。   Further, if the two blocks are considered similar to each other, the new block is not written into the data array in the frame buffer 44 (step 58).

この結果、データブロックが前のデータブロックと同じである(つまり、フレームバッファ44内に格納される前のデータブロックと同じである)と判定された場合も、同様に、新しいデータブロックはフレームバッファ44に書き込まれない。このようにして、互いに同じであるデータ配列(フレームバッファ)44のセクションに対する書き込みトラヒックは回避されうる。(その一方で、データブロックが、異なると判定された場合、新しいデータブロックが、フレームバッファ44に書き込まれる。)   As a result, if it is determined that the data block is the same as the previous data block (i.e., the same as the previous data block stored in the frame buffer 44), the new data block is similarly stored in the frame buffer. Not written to 44. In this way, write traffic to sections of the data array (frame buffer) 44 that are identical to each other can be avoided. (On the other hand, if it is determined that the data blocks are different, a new data block is written to the frame buffer 44.)

この配置構成では、ディスプレイコントローラなどのデバイスが、出力データ配列44を読み込むようになると、これは、対応するメタデータビットマップ45も読み込む。処理することになっているデータ配列のそれぞれのデータブロックについて、対応するビットマップエントリを読み込み、そのビットマップエントリが「1」に設定されている場合に、そのデータブロックが出力データ配列44内に格納されている前のデータブロックと同じであると考えられたことを知り、したがって、出力データ配列44内の前の適切なデータブロックを新しいブロックとして表示する。あるいは、処理されるべきデータブロックに関連付けられているメタデータが、「0」である場合、ディスプレイコントローラは、データ配列44から新しいデータブロックを読み込んで、その新しいブロックを表示すべきであることを知る。   In this arrangement, when a device such as a display controller reads the output data array 44, it also reads the corresponding metadata bitmap 45. For each data block in the data array that is to be processed, the corresponding bitmap entry is read, and if that bitmap entry is set to `` 1 '', that data block is in the output data array 44 Knowing that it was considered the same as the previous stored data block, and therefore displaying the previous appropriate data block in the output data array 44 as a new block. Alternatively, if the metadata associated with the data block to be processed is "0", the display controller should read a new data block from the data array 44 and display the new block. know.

このようにして、データ配列44がデータ配列44内のあらゆるデータブロック位置についてデータブロックエントリを含みえないとしても、適切なデータブロックデータが読み込まれて処理されうる。   In this way, even if the data array 44 cannot contain a data block entry for every data block position in the data array 44, the appropriate data block data can be read and processed.

(したがって、これらの配置構成では、データブロックそれ自体が、データ配列44に書き込まれない場合があるけれども、データ配列を読み込んでいる処理デバイス(ディスプレイコントローラなど)が他のどのブロックが代わりにされるべきかを判定するためにその情報を使用するので、比較メタデータ45が注目するブロック位置について生成され、格納されるべきである。)   (Thus, in these arrangements, the data block itself may not be written to the data array 44, but the processing device reading the data array (such as a display controller) is replaced by any other block. (Because that information is used to determine what to do, comparison metadata 45 should be generated and stored for the block location of interest.)

類似のブロックのシーケンスがある場合に、メタデータはそれに対応して、この実施形態において、「1」のシーケンスを含み、データ配列を読み込むデバイスは、それぞれの連続する類似ブロックに対してこのシーケンス内の第1のブロックを再利用することは理解されるであろう。   If there is a sequence of similar blocks, the metadata correspondingly includes a sequence of “1” in this embodiment, and the device that reads the data array is in this sequence for each successive similar block. It will be understood that the first block of is reused.

1つのデータブロックをデータ配列の複数の他のブロック(例えば、複数の前のデータブロック)と比較して、それが他のブロックのどれかと類似しているかどうかを調べることも可能である。この場合、それぞれのメタデータエントリは、複数のビットを含み、これにより、他のデータブロックのうちのどれに、注目するブロックが類似していると考えられたかを示すことができる。   It is also possible to compare a data block with multiple other blocks of the data array (eg, multiple previous data blocks) to see if it is similar to any of the other blocks. In this case, each metadata entry includes a plurality of bits, which can indicate to which of the other data blocks the block of interest was considered similar.

上述のように、この実施形態の特に好ましい一配置構成において、データブロック比較が正確でない(実際には異なるのに誤って一致するブロックであるとする)場合、システムは、新たに生成されたデータブロックをフレームバッファ44に定期的に、例えば、1秒に1回、それぞれの所定のデータブロック(データブロック位置)に関して、常に書き込むように構成される。   As mentioned above, in one particularly preferred arrangement of this embodiment, if the data block comparison is not accurate (assuming that it is actually a different but erroneously matched block), the system will generate newly generated data. The block is configured to be written to the frame buffer 44 regularly, for example, once per second for each predetermined data block (data block position).

上記の実施形態および本発明の他の多数の代替形態および配置構成を必要に応じて使用することが可能である。   The above embodiments and many other alternatives and arrangements of the invention can be used as needed.

例えば、特定のフレーム領域に対するタイル署名計算を有効/無効にするハードウェアレジスタを備え、これにより、タイルに対して、そのタイルが置かれているフレーム領域用のレジスタが設定されている場合にのみトランザクション排除署名生成および比較が実行されるようにすることが可能である。   For example, it has a hardware register that enables / disables tile signature calculation for a specific frame area, so that only if the tile has a register for the frame area where the tile is located Transaction exclusion signature generation and comparison can be performed.

次いで、グラフィックスプロセッサ(例えば)のドライバを、ソフトウェアアプリケーションがこれらのタイル署名有効/無効レジスタにアクセスし、設定することを可能にし、これにより、ソフトウェアアプリケーションは、署名生成および比較が実行されるかどうか、またどこで実行されるか(どのフレーム領域に対して)を直接制御する機会を与えられるように構成することが可能である。これにより、ソフトウェアアプリケーションは、例えば、署名計算および比較がどのように実行されるか、また実行されるかどうかを制御することができる。次いで、これを利用して、例えば、アプリケーション側で常に更新されると「知っている」出力フレームの領域に対して署名計算によって消費される電力を排除することが可能である(次いで、システムは、常に、最初に署名チェックを実行することなくフレームのそのような領域を更新する)。   The graphics processor (for example) driver then allows the software application to access and set these tile signature enable / disable registers so that the software application can perform signature generation and comparison. It can be configured to be given an opportunity to directly control whether and where (for which frame region) it is executed. This allows the software application to control how and whether signature calculations and comparisons are performed, for example. This can then be used, for example, to eliminate the power consumed by the signature calculation for the region of the output frame that “knows” when it is constantly updated on the application side. Always update such areas of the frame without first performing a signature check).

そのようなレジスタの数は、例えば、それらを実装し使用する必要な付加ロジックと制御の所望された細かさとの間のトレードオフとして選択することができる。   The number of such registers can be selected, for example, as a trade-off between the required additional logic to implement and use them and the desired granularity of control.

また、上述のように、フレーム内のタイル一致の数を連続するフレーム間の相関の尺度として使用することができるという事実をさらに利用することが可能である。例えば、カウンターを使用して所定のフレーム内のタイル一致の数を追跡することによって、連続するフレーム間および/または一定期間のように画像が静的であるかどうかを判定することが可能である。これにより、画像が一定期間静的であると判定された場合、例えば、プロセッサフレームレートを低減することが可能であり(節電につながる)、ディスプレイリフレッシュレートを低減することが可能であり、および/またはよりよいアンチエイリアシングを使用してフレームを再レンダリングすることが可能であり(これにより(知覚される)画質が向上する)、また逆も同様である。   It is also possible to take further advantage of the fact that the number of tile matches in a frame can be used as a measure of correlation between successive frames, as described above. For example, it is possible to determine whether an image is static, such as between successive frames and / or over a period of time, by using a counter to track the number of tile matches within a given frame . Thereby, if it is determined that the image is static for a certain period of time, for example, the processor frame rate can be reduced (leading to power saving), the display refresh rate can be reduced, and / or Or it is possible to re-render the frame using better anti-aliasing (this improves (perceived) image quality) and vice versa.

本発明の配置構成は、フレーム-バッファ圧縮などの、他のフレームバッファ電力および帯域幅低減技術と連携して使用することもできる。この場合、本発明の仕方による書き込みトランザクション排除は、好ましくは最初に実行され、その後、圧縮(または他の)オペレーションが実行される。次いで、圧縮プロセスでタイルの署名が同じであることを発見した場合、前の圧縮タイルを現在の出力フレーム内で使用すべきタイルとして保持することができるが、タイルが「排除」されない場合、新しいタイルがフレームバッファ圧縮(または他の)ハードウェアに送られ、次いで、メモリ内のフレームバッファに送られる。そのため、このことは、タイルの署名が一致する場合に、圧縮オペレーションを回避するとができることを意味する。   The arrangement of the present invention can also be used in conjunction with other frame buffer power and bandwidth reduction techniques, such as frame-buffer compression. In this case, write transaction elimination according to the method of the present invention is preferably performed first, followed by compression (or other) operations. Then, if the compression process finds that the signature of the tile is the same, the previous compressed tile can be kept as a tile to be used in the current output frame, but if the tile is not “excluded”, the new The tiles are sent to frame buffer compression (or other) hardware and then sent to the frame buffer in memory. This means that compression operations can be avoided if the tile signatures match.

本実施形態が、とりわけ、フレームバッファに書き込まれるべきレンダリング済みタイルの比較に関して、上で説明されているが、本明細書で説明されているように、比較される出力データ配列の領域を形成するデータブロック(および例えば、それらに対して生成される署名を有するもの)はグラフィックスプロセッサによって生成されるレンダリング済みタイルに正確に対応する必要はない。   This embodiment is described above with respect to comparing rendered tiles to be written to the frame buffer, among other things, but forms an area of the output data array to be compared as described herein. Data blocks (and, for example, those with signatures generated for them) need not correspond exactly to the rendered tiles generated by the graphics processor.

例えば、考察され比較されるデータブロックは、複数のレンダリング済みタイルから構成することが可能であり、および/またはレンダリング済みタイルの小部分を含むことが可能である。実際、異なるデータブロックサイズを同じ出力配列(例えば、出力フレーム)の異なる領域に使用することができ、および/またはデータブロックのサイズおよび形状を、所望するなら、例えば、書き込みトランザクション排除率に応じて適応変更することが可能である。   For example, the data blocks considered and compared can be composed of a plurality of rendered tiles and / or can include a small portion of the rendered tiles. In fact, different data block sizes can be used for different regions of the same output array (e.g., output frame) and / or the size and shape of the data block, if desired, e.g. depending on the write transaction rejection rate Adaptation can be changed.

レンダリング済みタイルのサイズに正確に対応しないデータブロックサイズが使用されている場合、トランザクション排除ハードウェアユニット5は、都合よく、実際に、グラフィックスプロセッサ(または出力配列用にデータをこれに供給する他のプロセッサ)から受け取る、レンダリング済みタイルなどの、データから適切なデータブロック(および例えば、これらのデータブロックに対する署名)を組み立てるか、または生成するように構成されうる。   If a data block size is used that does not exactly correspond to the size of the rendered tile, the transaction exclusion hardware unit 5 conveniently uses the graphics processor (or other that supplies data to it for the output array). From the data, such as rendered tiles, from which the appropriate data blocks (and, for example, signatures for these data blocks) can be assembled or generated.

上記のことから、本発明は、少なくともその好ましい実施形態において、例えば、グラフィックスプロセッサの電力消費およびメモリ帯域幅を低減するのに役立ちうることがわかる。   From the above, it can be seen that the present invention, at least in its preferred embodiments, can help, for example, reduce power consumption and memory bandwidth of a graphics processor.

これは、少なくとも本発明の好ましい実施形態では、不要なフレームバッファメモリトランザクションを排除することによって、達成される。これにより、フレームバッファにレンダリングされるデータの量が低減され、したがって、システムの電力消費量およびメモリ帯域幅の消費量が大幅に低減される。これは、グラフィックスフレームバッファ、テクスチャにグラフィックスレンダー、ビデオフレームバッファ、および合成フレームバッファトランザクションなどに適用することができる。   This is accomplished, at least in the preferred embodiment of the present invention, by eliminating unnecessary frame buffer memory transactions. This reduces the amount of data rendered in the frame buffer, and thus significantly reduces system power consumption and memory bandwidth consumption. This can be applied to graphics frame buffer, texture to graphics render, video frame buffer, composite frame buffer transactions, and the like.

出願人は、グラフィックスおよびビデオオペレーションに関して、トランザクション低減率は、0から30%までの間にある可能性があることを発見した。(Quake 4およびDoom 3などのいくつかのふつうのゲームの分析結果から、それぞれのフレーム内のタイルの0から30%までは典型的に同じであることがわかった。)合成フレームバッファオペレーションでは、トランザクション排除率は、この時間の大半の間マウスポインタのみが動いているので、非常に高い(90%を超える)可能性があると考えられる。   Applicants have found that for graphics and video operations, the transaction reduction rate can be between 0 and 30%. (Analysis of some common games such as Quake 4 and Doom 3 showed that 0 to 30% of the tiles in each frame are typically the same.) The transaction rejection rate is likely to be very high (greater than 90%) because only the mouse pointer is moving for most of this time.

本発明を使用した時の節電効果は、比較的大きくなる可能性がある。   The power saving effect when using the present invention can be relatively large.

例えば、32ビットモバイルDDR-SDRAM転送は、32ビット転送1回につき約2.4nJを消費しうる。したがって、グラフィックスプロセッサのフレーム出力レートを30Hzと想定し、一次効果のみを考えると、グラフィックスプロセッサのフレームバッファ書き込みは(本発明がない場合)、HDグラフィックスに対して約(1920×1080×4)×(2.4nJ/4)×30=150mWを消費する。   For example, a 32-bit mobile DDR-SDRAM transfer can consume about 2.4 nJ per 32-bit transfer. Thus, assuming a graphics processor frame output rate of 30Hz and considering only the primary effect, the graphics processor frame buffer write (without the present invention) is about (1920 x 1080 x) for HD graphics. 4) × (2.4nJ / 4) × 30 = 150mW is consumed.

その一方で、HDグラフィックスについて、フレームバッファトラヒックの20%を排除することができれば、約30mW(および50MB/s)の節減となる。HD合成フレームバッファについては、フレームバッファトラヒックの90%を取り除くと、135mW(および220MB/s)の低減となる。   On the other hand, if 20% of the frame buffer traffic can be eliminated for HD graphics, it will save about 30mW (and 50MB / s). For the HD composite frame buffer, removing 90% of the frame buffer traffic results in a reduction of 135 mW (and 220 MB / s).

1 タイルベースのグラフィックスプロセッサまたはグラフィックスプロセッシングユニット(GPU)
2 メモリ
3 相互接続部
4 メモリコントローラ
5 トランザクション排除ハードウェア
10、11 部分
20 署名生成器
21 バッファ
22 署名バッファ
23 署名比較器
24 書き込みコントローラ
31 部分集合
40 タイルレンダリングロジック
41 データブロック生成ロジック
42 バッファ
43 ブロック比較ロジック
44 フレームバッファ
45 メタデータビットマップ
60 ビデオコーデック
61 CPU
1 Tile-based graphics processor or graphics processing unit (GPU)
2 memory
3 Interconnection
4 Memory controller
5 Transaction exclusion hardware
10, 11 pieces
20 Signature generator
21 buffers
22 Signature buffer
23 Signature comparator
24 write controller
31 subset
40 tile rendering logic
41 Data block generation logic
42 buffers
43 Block comparison logic
44 Frame buffer
45 Metadata bitmap
60 video codec
61 CPU

Claims (23)

データ処理システムによって生成されるデータが、データの出力配列を出力バッファ内に形成するために使用されるデータ処理システムの動作方法であって、
前記データ処理システムがデータの前記出力配列の特定の領域を表すデータのブロックを前記出力バッファに書き込むことによってデータの前記出力配列を前記出力バッファ内に格納するステップと、
データのブロックが前記出力データ配列に対して生成されている場合、前記データ処理システムがデータのそのブロックをデータの少なくとも1つの他のブロックと比較し、前記比較に基づいてデータの前記生成されたブロックを前記出力バッファに書き込むかどうかを決定するステップとを含む方法。
A method of operating a data processing system in which data generated by a data processing system is used to form an output array of data in an output buffer,
Storing the output array of data in the output buffer by the data processing system writing to the output buffer a block of data representing a particular region of the output array of data;
If a block of data has been generated for the output data array, the data processing system compares that block of data with at least one other block of data and the generated of data based on the comparison Determining whether to write a block to the output buffer.
前記比較プロセスは、前記各データブロックの内容を表す署名を比較するステップを含む請求項1に記載の方法。   The method of claim 1, wherein the comparison process includes comparing signatures representing the contents of each data block. 前記生成されたデータブロックは、ただ1つの他のデータブロックと比較される請求項1または2に記載の方法。   The method according to claim 1 or 2, wherein the generated data block is compared with only one other data block. 前記データブロック比較は、所定の出力データ配列に対して生成されるべき前記データブロックのうちの全部ではなく一部に関して実行される請求項1から3のいずれか一項に記載の方法。   The method according to any one of claims 1 to 3, wherein the data block comparison is performed on some but not all of the data blocks to be generated for a given output data array. 前記データ処理システムは、それぞれのデータブロック位置に関して新たに生成されたデータブロックを前記出力バッファに定期的に常に書き込むように構成される請求項1から4のいずれか一項に記載の方法。   5. A method according to any one of the preceding claims, wherein the data processing system is configured to regularly write a newly generated data block for each data block location to the output buffer periodically. 前記データ処理システムは、タイルベースのグラフィックス処理システムであり、それぞれのデータブロックは、前記グラフィックス処理システムが生成するレンダリング済みタイルに対応する請求項1から5のいずれか一項に記載の方法。   The method according to any one of claims 1 to 5, wherein the data processing system is a tile-based graphics processing system, and each data block corresponds to a rendered tile generated by the graphics processing system. . 前記データ処理システムは、グラフィックス処理システムであり、前記出力データ配列は、前記グラフィックス処理システムによって生成されるべき出力フレームである請求項1から6のいずれか一項に記載の方法。   The method according to claim 1, wherein the data processing system is a graphics processing system, and the output data array is an output frame to be generated by the graphics processing system. 前記データ処理システムは、グラフィックス処理システムであり、前記出力バッファは、前記グラフィックス処理システムの前記出力の書き込み先となるフレームバッファである請求項1から7のいずれか一項に記載の方法。   8. The method according to claim 1, wherein the data processing system is a graphics processing system, and the output buffer is a frame buffer to which the output of the graphics processing system is written. 前記データ処理システムは、グラフィックス処理システムであり、前記出力バッファは、前記グラフィックス処理システムの前記出力の書き込み先となるテクスチャまたは他のサーフェスである請求項1から8のいずれか一項に記載の方法。   9. The data processing system according to claim 1, wherein the data processing system is a graphics processing system, and the output buffer is a texture or other surface to which the output of the graphics processing system is written. the method of. データプロセッサによって供給されるべきデータの出力配列を形成するためのデータを生成するための手段を備えるデータプロセッサと、
前記データプロセッサによって生成されたデータを、データの前記配列の特定の領域を表すデータのブロックを出力バッファに書き込むことによってデータの配列として前記出力バッファ内に格納するための手段とを備え、
前記出力データ配列に対して生成されたデータのブロックをデータの少なくとも1つの他のブロックと比較し、その比較に基づいてデータの前記生成されたブロックを前記出力バッファに書き込むかどうかを決定するための手段をさらに備えるデータ処理システム。
A data processor comprising means for generating data for forming an output array of data to be supplied by the data processor;
Means for storing data generated by the data processor in the output buffer as an array of data by writing to the output buffer a block of data representing a particular region of the array of data;
To compare a block of data generated for the output data array with at least one other block of data and to determine whether to write the generated block of data to the output buffer based on the comparison A data processing system further comprising:
データ処理システムによって生成されるデータの出力配列がデータの前記出力配列の特定の領域を表すデータのブロックを出力バッファに書き込むことによって前記出力バッファ内に格納される前記データ処理システムにおいて使用するための書き込みトランザクション排除装置であって、
前記出力データ配列に対して生成されたデータのブロックをデータの少なくとも1つの他のブロックと比較し、前記比較に基づいてデータの前記生成されたブロックを前記出力バッファに書き込むかどうかを決定するための手段を備える書き込みトランザクション排除装置。
For use in the data processing system, wherein the output array of data generated by the data processing system is stored in the output buffer by writing a block of data representing a particular region of the output array of data to the output buffer A write transaction eliminator,
Comparing a block of data generated for the output data array with at least one other block of data and determining whether to write the generated block of data to the output buffer based on the comparison A write transaction elimination apparatus comprising:
前記比較手段は、前記各データブロックの内容を表す署名を比較するための手段を含む請求項10に記載のシステムまたは請求項11に記載の装置。   12. The system of claim 10 or the apparatus of claim 11, wherein the comparing means includes means for comparing signatures representing the contents of each data block. 前記生成されたデータブロックは、ただ1つの他のデータブロックと比較される請求項10から12のいずれか一項に記載のシステムまたは装置。   13. The system or apparatus according to any one of claims 10 to 12, wherein the generated data block is compared with only one other data block. 所定の出力データ配列に対して他の1つまたは複数のデータブロックと比較されるべき前記生成されるデータブロックの個数を選択するための手段をさらに備える請求項10から13のいずれか一項に記載のシステムまたは装置。   14. The means of any one of claims 10 to 13, further comprising means for selecting the number of generated data blocks to be compared with one or more other data blocks for a given output data array. The system or device described. 前記データ処理システムまたは書き込みトランザクション排除装置は、それぞれのデータブロック位置に関して新たに生成されたデータブロックを前記出力バッファに定期的に常に書き込むように構成される請求項10から14のいずれか一項に記載のシステムまたは装置。   15. The data processing system or write transaction eliminator is configured to constantly write a newly generated data block for each data block location periodically to the output buffer. The system or device described. 前記データ処理システムは、タイルベースのグラフィックス処理システムであり、それぞれのデータブロックは、前記グラフィックス処理システムが生成するレンダリング済みタイルに対応する請求項10から15のいずれか一項に記載のシステムまたは装置。   16. The system according to any one of claims 10 to 15, wherein the data processing system is a tile-based graphics processing system, each data block corresponding to a rendered tile generated by the graphics processing system. Or equipment. 前記データ処理システムは、グラフィックス処理システムであり、前記出力バッファは、前記グラフィックス処理システムの前記出力の書き込み先となるフレームバッファである請求項10から16のいずれか一項に記載のシステムまたは装置。   The system according to any one of claims 10 to 16, wherein the data processing system is a graphics processing system, and the output buffer is a frame buffer to which the output of the graphics processing system is written. apparatus. 前記データ処理システムは、グラフィックス処理システムであり、前記出力バッファは、前記グラフィックス処理システムの前記出力の書き込み先となるテクスチャまたは他のサーフェスである請求項10から16のいずれか一項に記載のシステムまたは装置。   17. The data processing system is a graphics processing system, and the output buffer is a texture or other surface to which the output of the graphics processing system is written. System or device. 前記データプロセッサによって生成されたデータを、データの前記配列の特定の領域を表すデータのブロックを出力バッファに書き込むことによってデータの配列として前記出力バッファ内に格納するための手段を備える書き込みトランザクション排除ハードウェア要素と、前記出力データ配列に対して生成されたデータのブロックをデータの少なくとも1つの他のブロックと比較し、その比較に基づいてデータの前記生成されたブロックを前記出力バッファに書き込むかどうかを決定するための手段とを備える請求項10または請求項12から18のいずれか一項に記載のシステム。   Write transaction elimination hardware comprising means for storing data generated by the data processor in the output buffer as an array of data by writing a block of data representing a particular region of the array of data to the output buffer Whether to compare a wear element and a block of data generated for the output data array to at least one other block of data and write the generated block of data to the output buffer based on the comparison 19. A system according to any one of claims 10 or 12 to 18 comprising means for determining. 前記書き込みトランザクション排除ハードウェア要素は、前記データプロセッサの一体となる部分である請求項19に記載のシステム。   The system of claim 19, wherein the write transaction exclusion hardware element is an integral part of the data processor. データの出力配列の特定の領域を表すデータのブロックを出力バッファに書き込んでデータの前記出力配列を格納するデータ処理システムによってデータの前記出力配列が生成される前記データ処理システムの動作方法であって、
前記データ処理システムが、前記出力バッファにデータのブロックが書き込まれるときに、データのそのブロックを前記出力バッファ内にすでに格納されているデータの少なくとも1つのブロックと比較し、データの複数のブロックに対する前記比較の結果を使用して前記データ処理システムの異なる出力配列間の相関を推定するステップを含む方法。
A method of operating the data processing system, wherein the output array of data is generated by a data processing system that writes a block of data representing a particular region of the output array of data to an output buffer and stores the output array of data. ,
When the data processing system writes a block of data to the output buffer, it compares that block of data with at least one block of data already stored in the output buffer and for a plurality of blocks of data Using the result of the comparison to estimate a correlation between different output sequences of the data processing system.
データ処理システムであって、
前記データ処理システムによって供給されるべきデータの出力配列を形成するためのデータを生成するための手段と、
前記データ処理システムによって生成されたデータを、データの配列の特定の領域を表すデータのブロックを出力バッファに書き込むことによってデータの前記配列として前記出力バッファ内に格納するための手段と、
前記出力バッファに書き込まれるべきデータブロックを前記出力バッファ内にすでに格納されている少なくとも1つのデータブロックと比較するための手段と、
データの複数のブロックに対する前記比較の結果を使用して前記データ処理システムの異なる出力配列間の相関を推定するための手段とを備えるデータ処理システム。
A data processing system,
Means for generating data to form an output array of data to be supplied by the data processing system;
Means for storing data generated by the data processing system in the output buffer as the array of data by writing to the output buffer a block of data representing a particular region of the array of data;
Means for comparing a data block to be written to the output buffer with at least one data block already stored in the output buffer;
Means for estimating correlations between different output sequences of the data processing system using the results of the comparison for a plurality of blocks of data.
コンピュータプログラム要素であって、
前記プログラム要素がデータ処理手段上で実行されたときに請求項1から9または21のいずれか一項に記載の方法を実行するコンピュータソフトウェアコード部分を備えるコンピュータプログラム要素。
A computer program element,
Computer program element comprising computer software code portions for performing the method according to any one of claims 1 to 9 or 21 when the program element is executed on a data processing means.
JP2010213509A 2009-09-25 2010-09-24 Graphics processing system Active JP5751782B2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB0916924.4 2009-09-25
GBGB0916924.4A GB0916924D0 (en) 2009-09-25 2009-09-25 Graphics processing systems
GB1014602.5 2010-09-02
GBGB1014602.5A GB201014602D0 (en) 2010-09-02 2010-09-02 Methods of and apparatus for controlling the reading of arrays of data from memory

Publications (2)

Publication Number Publication Date
JP2011070672A true JP2011070672A (en) 2011-04-07
JP5751782B2 JP5751782B2 (en) 2015-07-22

Family

ID=43127977

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010213509A Active JP5751782B2 (en) 2009-09-25 2010-09-24 Graphics processing system
JP2010213508A Active JP5835879B2 (en) 2009-09-25 2010-09-24 Method and apparatus for controlling reading of an array of data from memory

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2010213508A Active JP5835879B2 (en) 2009-09-25 2010-09-24 Method and apparatus for controlling reading of an array of data from memory

Country Status (3)

Country Link
JP (2) JP5751782B2 (en)
CN (2) CN102033728B (en)
GB (2) GB2474115B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015076096A (en) * 2013-10-07 2015-04-20 インテル コーポレイション Selective rasterization
JP2015197914A (en) * 2014-04-02 2015-11-09 三星電子株式会社Samsung Electronics Co.,Ltd. Method and apparatus for successively rendering same regions of multi-frames
US9904977B2 (en) 2014-05-14 2018-02-27 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120133659A1 (en) * 2010-11-30 2012-05-31 Ati Technologies Ulc Method and apparatus for providing static frame
GB201103699D0 (en) * 2011-03-03 2011-04-20 Advanced Risc Mach Ltd Graphic processing
GB201103698D0 (en) * 2011-03-03 2011-04-20 Advanced Risc Mach Ltd Graphics processing
CN102427533B (en) * 2011-11-22 2013-11-06 苏州科雷芯电子科技有限公司 Video transmission device and method
US9672584B2 (en) * 2012-09-06 2017-06-06 Imagination Technologies Limited Systems and methods of partial frame buffer updating
GB2521170A (en) * 2013-12-11 2015-06-17 Advanced Risc Mach Ltd Method of and apparatus for displaying an output surface in data processing systems
US20150278981A1 (en) * 2014-03-27 2015-10-01 Tomas G. Akenine-Moller Avoiding Sending Unchanged Regions to Display
GB2525223B (en) * 2014-04-16 2020-07-15 Advanced Risc Mach Ltd Graphics processing systems
GB2531014B (en) 2014-10-07 2020-12-09 Advanced Risc Mach Ltd Data processing systems
GB2531015B (en) 2014-10-07 2021-06-30 Advanced Risc Mach Ltd Data processing systems
GB2531358B (en) * 2014-10-17 2019-03-27 Advanced Risc Mach Ltd Method of and apparatus for processing a frame
GB2548852B (en) * 2016-03-30 2020-10-28 Advanced Risc Mach Ltd Method of operating a graphics processing pipeline by compressing a block of sampling positions having the same data value
CN109716289B (en) 2016-09-23 2021-01-12 华为技术有限公司 Binary image differential inpainting
US10276125B2 (en) 2016-09-30 2019-04-30 Arm Limited Method of and apparatus for controlling overrun when writing data from a display controller to memory
CN108170393A (en) * 2017-12-29 2018-06-15 佛山市幻云科技有限公司 A kind of SCM Based display methods and system
GB2572404B (en) 2018-03-29 2020-04-15 Imagination Tech Ltd Method and system for controlling processing
GB2579590B (en) 2018-12-04 2021-10-13 Imagination Tech Ltd Workload repetition redundancy
GB2579591B (en) * 2018-12-04 2022-10-26 Imagination Tech Ltd Buffer checker
US11221976B2 (en) * 2019-01-25 2022-01-11 Microchip Technology Incorporated Allocation of buffer interfaces for moving data, and related systems, methods and devices
CN110673815B (en) * 2019-10-15 2023-06-06 重庆远视科技有限公司 Bitmap display method, device, equipment and computer readable storage medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05227476A (en) * 1992-02-14 1993-09-03 Hitachi Ltd Picture data storing system
JPH05266177A (en) * 1992-03-19 1993-10-15 Nec Corp Plotting device
JPH11328441A (en) * 1998-05-11 1999-11-30 Hitachi Ltd Graphics display control method and computer graphics
JPH11355536A (en) * 1998-06-08 1999-12-24 Konica Corp Image processing method and image processor
JP2004510270A (en) * 2000-09-28 2004-04-02 インテル・コーポレーション Method and apparatus for performing full scene anti-aliasing supersampling
JP2006268839A (en) * 2005-02-23 2006-10-05 Matsushita Electric Ind Co Ltd Drawing device, drawing method, drawing program, and drawing integrated circuit
JP2007531355A (en) * 2003-11-26 2007-11-01 リープ,インコーポレイテッド Improved system for video digitization and image correction for use with a computer management system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63298485A (en) * 1987-05-28 1988-12-06 Matsushita Electric Ind Co Ltd Image processor
US6094203A (en) * 1997-09-17 2000-07-25 Hewlett-Packard Company Architecture for a graphics processing unit using main memory
JP2005195899A (en) * 2004-01-07 2005-07-21 Matsushita Electric Ind Co Ltd Image transfer system
US20060050976A1 (en) * 2004-09-09 2006-03-09 Stephen Molloy Caching method and apparatus for video motion compensation
JP2006252480A (en) * 2005-03-14 2006-09-21 Fuji Xerox Co Ltd Computer, image processing system, and image processing method
CN1332300C (en) * 2005-04-30 2007-08-15 广东威创日新电子有限公司 Remote display processing method based on server end/client end structure
JP4591291B2 (en) * 2005-09-14 2010-12-01 日本電気株式会社 Turbo decoding apparatus and method and program thereof
US20080002894A1 (en) * 2006-06-29 2008-01-03 Winbond Electronics Corporation Signature-based video redirection

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05227476A (en) * 1992-02-14 1993-09-03 Hitachi Ltd Picture data storing system
JPH05266177A (en) * 1992-03-19 1993-10-15 Nec Corp Plotting device
JPH11328441A (en) * 1998-05-11 1999-11-30 Hitachi Ltd Graphics display control method and computer graphics
JPH11355536A (en) * 1998-06-08 1999-12-24 Konica Corp Image processing method and image processor
JP2004510270A (en) * 2000-09-28 2004-04-02 インテル・コーポレーション Method and apparatus for performing full scene anti-aliasing supersampling
JP2007531355A (en) * 2003-11-26 2007-11-01 リープ,インコーポレイテッド Improved system for video digitization and image correction for use with a computer management system
JP2006268839A (en) * 2005-02-23 2006-10-05 Matsushita Electric Ind Co Ltd Drawing device, drawing method, drawing program, and drawing integrated circuit

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015076096A (en) * 2013-10-07 2015-04-20 インテル コーポレイション Selective rasterization
JP2016184419A (en) * 2013-10-07 2016-10-20 インテル コーポレイション Selective rasterization
US9659393B2 (en) 2013-10-07 2017-05-23 Intel Corporation Selective rasterization
JP2017194984A (en) * 2013-10-07 2017-10-26 インテル コーポレイション Selective rasterization
JP2017194985A (en) * 2013-10-07 2017-10-26 インテル コーポレイション Selective rasterization
US10164459B2 (en) 2013-10-07 2018-12-25 Intel Corporation Selective rasterization
US10164458B2 (en) 2013-10-07 2018-12-25 Intel Corporation Selective rasterization
JP2015197914A (en) * 2014-04-02 2015-11-09 三星電子株式会社Samsung Electronics Co.,Ltd. Method and apparatus for successively rendering same regions of multi-frames
US9904977B2 (en) 2014-05-14 2018-02-27 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture
US9922393B2 (en) 2014-05-14 2018-03-20 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture
US9940686B2 (en) 2014-05-14 2018-04-10 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture

Also Published As

Publication number Publication date
CN102033809B (en) 2015-11-25
GB2474115B (en) 2012-10-03
JP2011070671A (en) 2011-04-07
GB201016165D0 (en) 2010-11-10
GB2474115A (en) 2011-04-06
CN102033728B (en) 2016-04-13
GB201016162D0 (en) 2010-11-10
GB2474114B (en) 2012-02-15
CN102033728A (en) 2011-04-27
CN102033809A (en) 2011-04-27
JP5751782B2 (en) 2015-07-22
GB2474114A (en) 2011-04-06
JP5835879B2 (en) 2015-12-24

Similar Documents

Publication Publication Date Title
JP5751782B2 (en) Graphics processing system
US9406155B2 (en) Graphics processing systems
US9881401B2 (en) Graphics processing system
US8988443B2 (en) Methods of and apparatus for controlling the reading of arrays of data from memory
US10957078B2 (en) Enhanced anti-aliasing by varying sample patterns spatially and/or temporally
US9996363B2 (en) Methods of and apparatus for displaying windows on a display
US10001941B2 (en) Graphics processing systems
US9640149B2 (en) Methods for fixed rate block based compression of image data
US20160071242A1 (en) Enhanced anti-aliasing by varying sample patterns spatially and/or temporally
CN106030652B (en) Method, system and composite display controller for providing output surface and computer medium
US20160371808A1 (en) Method and apparatus for controlling display operations
JP2006094494A (en) Accelerating video encoding using graphics processor unit
CN112149795A (en) Neural architecture for self-supervised event learning and anomaly detection
US10896536B2 (en) Providing output surface data to a display in data processing systems
US20150242988A1 (en) Methods of eliminating redundant rendering of frames
US8489911B1 (en) Hardware WCK2CK training engine using meta-EDC sweeping and adjustably accurate voting algorithm for clock phase detection
WO2018200293A1 (en) Image encoding
US20210217131A1 (en) Data processing systems
US10283073B2 (en) Data processing systems
US12067959B1 (en) Partial rendering and tearing avoidance
US20240114163A1 (en) Encoding apparatus performing inter prediction operation based on an overlap frame and operating method thereof
US20240282055A1 (en) Mesh gpu codec for real-time streaming
US20230334735A1 (en) 2D Rendering Hardware Architecture Based on Analytic Anti-Aliasing
US20230334728A1 (en) Destination Update for Blending Modes in a Graphics Pipeline
TWI533254B (en) Data-processing apparatus and operation method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140623

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140922

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141224

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150519

R150 Certificate of patent or registration of utility model

Ref document number: 5751782

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250