JP7474061B2 - Interface device, data processing device, cache control method, and program - Google Patents
Interface device, data processing device, cache control method, and program Download PDFInfo
- Publication number
- JP7474061B2 JP7474061B2 JP2020022672A JP2020022672A JP7474061B2 JP 7474061 B2 JP7474061 B2 JP 7474061B2 JP 2020022672 A JP2020022672 A JP 2020022672A JP 2020022672 A JP2020022672 A JP 2020022672A JP 7474061 B2 JP7474061 B2 JP 7474061B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- processing unit
- cache
- interface device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims description 368
- 238000000034 method Methods 0.000 title claims description 30
- 230000008569 process Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 93
- 238000012546 transfer Methods 0.000 description 34
- 238000012805 post-processing Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 8
- 230000036316 preload Effects 0.000 description 8
- 238000012937 correction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 5
- 239000003607 modifier Substances 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Images
Landscapes
- Image Input (AREA)
- Information Transfer Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Facsimiles In General (AREA)
- Storing Facsimile Image Data (AREA)
Description
本発明はインタフェース装置、データ処理装置、キャッシュ制御方法、及びプログラムに関し、特に共有キャッシュメモリに関する。 The present invention relates to an interface device, a data processing device, a cache control method, and a program, and in particular to a shared cache memory.
近年、1つの製品が様々な機能を実現することが求められている。例えば、複数のデータ処理部を有する製品において、アプリケーションに応じて使用するデータ処理部を組み合わせて用いることにより、様々な機能を実現する手法が知られている。 In recent years, there has been a demand for a single product to realize a variety of functions. For example, in a product that has multiple data processing units, a method is known in which a variety of functions are realized by combining the data processing units to be used depending on the application.
このような構成においては、データ処理部の間でのデータ転送を効率化することにより、処理速度を向上できる。例えば特許文献1は、共有キャッシュメモリ装置を介して2つのプロセッサを接続する方法を開示している。特許文献1の方法によれば、共有キャッシュメモリ装置は、第1プロセッサによるデータの書き込みを監視し、第2プロセッサにより要求されたデータが書き込まれると、このデータを第2プロセッサに転送する。
In such a configuration, the processing speed can be improved by making data transfer between data processing units more efficient. For example,
データ処理部は様々な考え方に従って製造され、また、様々なメーカーによって製造される。このため、それぞれのデータ処理部が有する、データ処理の処理単位などの、データ処理の仕様又は制約は、互いに異なっていることが多い。このため、前段のデータ処理部と後段のデータ処理部とを接続する装置は、前段のデータ処理部から受け取ったデータをただちに後段のデータ処理部に転送できないことが多い。したがって、前段のデータ処理部から受け取ったデータを少なくとも一時的に何らかの記憶部に格納する必要がある。このような処理は、追加の回路を必要とし、又は追加の処理負荷を必要とする。 Data processing units are manufactured according to various concepts and by various manufacturers. For this reason, the data processing specifications or constraints, such as the processing unit of data processing, of each data processing unit are often different from each other. For this reason, a device connecting a previous data processing unit to a subsequent data processing unit is often unable to immediately transfer data received from the previous data processing unit to the subsequent data processing unit. Therefore, it is necessary to at least temporarily store the data received from the previous data processing unit in some kind of memory unit. Such processing requires additional circuitry or an additional processing load.
本発明は、処理部を互いに接続するインタフェース装置における、一方の処理部から他方の処理部へのデータ転送処理を効率化することを目的とする。 The present invention aims to improve the efficiency of data transfer processing from one processing unit to another in an interface device that connects processing units to each other.
本発明の目的を達成するために、例えば、本発明のインタフェース装置は以下の構成を備える。すなわち、
複数の処理部の共有キャッシュとして働くインタフェース装置であって、
前記複数の処理部に含まれる第1の処理部からデータを取得する第1のポートと、
前記第1の処理部から取得したデータを前記複数の処理部に含まれる第2の処理部に出力する第2のポートと、
前記第1の処理部から取得したデータをキャッシュするキャッシュ手段と、
前記キャッシュ手段に書き込まれたデータを前記キャッシュ手段とは異なる記憶手段にライトバックするか否かを、前記第2の処理部から取得した情報に基づいて制御する制御手段と、を備え、
前記第2の処理部から取得した情報は、前記第2の処理部が要求したデータを前記キャッシュ手段から前記記憶手段にライトバックする必要がないことを示すことを特徴とするインタフェース装置。
In order to achieve the object of the present invention, for example, an interface device of the present invention has the following arrangement:
1. An interface device that serves as a shared cache for a plurality of processing units, comprising:
a first port that acquires data from a first processing unit included in the plurality of processing units;
a second port that outputs data acquired from the first processing unit to a second processing unit included in the plurality of processing units;
a cache unit that caches data acquired from the first processing unit;
a control unit that controls whether or not to write back the data written to the cache unit to a storage unit different from the cache unit based on information acquired from the second processing unit ,
2. An interface device according to
処理部を互いに接続するインタフェース装置において、一方の処理部から他方の処理部へのデータ転送処理を効率化することができる。 In an interface device that connects processing units to each other, data transfer processing from one processing unit to another can be made more efficient.
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。 The following embodiments are described in detail with reference to the attached drawings. Note that the following embodiments do not limit the invention according to the claims. Although the embodiments describe multiple features, not all of these multiple features are necessarily essential to the invention, and multiple features may be combined in any manner. Furthermore, in the attached drawings, the same reference numbers are used for the same or similar configurations, and duplicate explanations are omitted.
[実施形態1]
(データ処理装置の構成例)
図1は、実施形態1に係るインタフェース装置を適用可能なデータ処理装置の構成例を示すブロック図である。データ処理装置の処理対象は特に限定されないが、図1には画像データに対する画像処理を行う画像処理装置が示されている。図1に示すデータ処理装置は、CPU回路部100、画像読取部120、画像入力部130、画像処理部150、及び画像表示部160を備える。
[Embodiment 1]
(Example of configuration of data processing device)
Fig. 1 is a block diagram showing an example of the configuration of a data processing device to which the interface device according to the first embodiment can be applied. The processing target of the data processing device is not particularly limited, but Fig. 1 shows an image processing device that performs image processing on image data. The data processing device shown in Fig. 1 includes a
画像読取部120は、レンズ124、CCDセンサ126、及び信号処理部127を有する。原稿110の画像は、レンズ124を介してCCDセンサ126に結像する。そして、CCDセンサ126は画像を示すアナログ電気信号を生成する。信号処理部127は、R、G、Bの色ごとに補正処理を行い、さらにアナログ/デジタル変換を行うことでフルカラーのデジタル画像信号(画素値)を生成する。こうして生成されたデジタル画像信号は、画像入力部130に入力される。以下では、1枚の画像に含まれる複数の画素についてのデジタル画像信号(画素値)の集合を、画像データと呼ぶ。
The
画像処理部150は、画像入力部130に入力された画像データに対する画像処理を行う。画像処理としては、センサ素子の個体差を補償する処理、入力ガンマ補正などの色補正処理、空間フィルタ処理、色空間変換処理、濃度補正処理、及び中間調処理などが挙げられるが、これらには限定されない。画像処理部150は、例えば画像を印刷するための画像処理を行うことにより、印刷用の画像データを作成することができる。なお、画像処理部150は、複数フレームの画像データを含む映像データに対する画像処理を行ってもよい。
The
画像表示部160は、画像処理部150による画像処理後の画像データの表示を行う。画像表示部160は、画像処理後の映像をディスプレイなどの画像表示装置に表示してもよい。また、画像表示部160の代わりに、又はこれに加えて、データ処理装置が画像印刷部170を有していてもよい。画像印刷部170は、画像処理部150による画像処理後の画像データに従う印刷を行う。画像印刷部170は、インクジェットヘッド又はサーマルヘッドなどを備え、画像データのデジタル画像信号に基づいて記録紙上に画像を記録するプリンタであってもよい。
The
CPU回路部100は、演算制御用のプロセッサであるCPU102、固定データ又はプログラムを格納するメモリであるROM104、データ又はプログラムが一時的にロードされるメモリであるRAM106、及び外部記憶装置108などを備える。CPU回路部100は、画像読取部120、画像処理部150、画像表示部160、及び画像印刷部170等を制御することにより、データ処理装置が行う処理のシーケンスを統括的に制御することができる。外部記憶装置108は、データ処理装置が使用するパラメータ、プログラム、及び補正データを記憶することができる、ディスクなどの記憶媒体である。データやプログラムなどが外部記憶装置108からRAM106へとロードされてもよい。
The
上記のように、画像入力部130、画像処理部150、画像表示部160、及び画像印刷部170の間では、データの転送が行われる。このデータの転送は、RAM106又は外部記憶装置108を介して行われることがある。例えば、WDMAC192(Write Direct Memory Access Controller)は、画像入力部130に入力されたデジタル画像信号を出力する。WDMAC192は、画像データを、共有バス190を介してRAM106又は外部記憶装置108などに格納することができる。同様に、WDMAC196も、画像処理部150からの画像データをRAM106又は外部記憶装置108などに格納することができる。
As described above, data is transferred between the
また、RDMAC194(Read Direct Memory Access Controller)は、共有バス190を介してRAM106又は外部記憶装置108などに記憶された画像データを読み出し、処理対象となる画素のデジタル画像信号を画像処理部150に入力することができる。同様に、RDMAC198も、RAM106又は外部記憶装置108から読み出した画像データを画像表示部160又は画像印刷部170に入力することができる。
In addition, the RDMAC 194 (Read Direct Memory Access Controller) can read image data stored in the
CPU102、画像入力部130、画像処理部150、画像表示部160、及び画像印刷部170は、このようなWDMAC192,196、及びRDMAC194,198の動作を設定したり、これらを起動したりすることができる。
The
(前段処理と後段処理の接続)
以上のように、画像入力部130、画像処理部150、画像表示部160、及び画像印刷部170の間では、データの転送が行われる。しかしながら、これらの処理部の間では、データ処理の仕様又は制約が異なっているかもしれない。実施形態1に係るインタフェース装置は、処理部間でのデータ処理の仕様又は制約の違いを緩衝(吸収)しながら、処理部間を接続することができる。
(Connection between pre-processing and post-processing)
As described above, data is transferred between the
以下の説明において、実施形態1に係るインタフェース装置は、複数の処理部の共有キャッシュとして働くインタフェース装置である。このインタフェース装置は、複数の処理部に含まれる前段処理部(第1の処理部)からデータを取得して複数の処理部に含まれる後段処理部(第2の処理部)に出力する。図2(A)は、実施形態1に係るデータ処理装置の一部を示す。図2(A)に示すように、本実施形態に係るインタフェース装置である共有キャッシュI/F250(以下、単にI/F250と呼ぶ)は、前段処理ブロック220と後段処理ブロック230とを接続している。以下、前段処理ブロック220のことを単に前段処理220と、後段処理ブロック230のことを単に後段処理230と、それぞれ呼ぶ。
In the following description, the interface device according to the first embodiment is an interface device that functions as a shared cache for multiple processing units. This interface device acquires data from a front-stage processing unit (first processing unit) included in the multiple processing units and outputs the data to a rear-stage processing unit (second processing unit) included in the multiple processing units. FIG. 2(A) shows a part of a data processing device according to the first embodiment. As shown in FIG. 2(A), a shared cache I/F 250 (hereinafter simply referred to as I/F 250), which is an interface device according to this embodiment, connects a front-
前段処理220に含まれる処理部224は、例えば画像処理部150であってもよい。この場合、RDMAC222及びWDMAC226は、それぞれRDMAC194及びWDMAC196である。また、後段処理230に含まれる処理部234は、例えば画像表示部160であってもよい。この場合、RDMAC232はRDMAC198である。RDMAC222とWDMAC236の少なくとも一方は省略されてもよい。
The
この例において、前段処理220は、入力データに対する第1のデータ処理によりデータ群を生成する。そして、後段処理230は、このデータ群に対する第2のデータ処理を行うことにより、入力データに対して第1のデータ処理及び第2のデータ処理を行って得られる処理結果を生成する。 In this example, the pre-processing 220 generates a data group by performing a first data processing on the input data. The post-processing 230 then performs a second data processing on this data group, thereby generating a processing result obtained by performing the first data processing and the second data processing on the input data.
実施形態1に係るインタフェース装置は、図1に示される他の処理部の間を接続してもよい。なお、処理部がデータ処理によりデータを生成又は修正することは必須ではない。例えば、前段処理220は画像入力部130であってもよく、この画像入力部130は受け取ったデータをそのまま出力してもよい。また、後段処理230は画像表示部160であってもよく、この画像表示部160は受け取ったデータをそのまま出力してもよい。また、実施形態1に係るインタフェース装置が接続する処理部の種類は、図1に示したものには限定されない。これらの処理部は、パイプライン回路などのハードウェアで実現されてもよいし、プロセッサ及びプログラム(ソフトウェア)の組み合わせにより実現されてもよい。
The interface device according to the first embodiment may connect between other processing units shown in FIG. 1. It is not essential that the processing units generate or modify data by data processing. For example, the pre-processing 220 may be the
それぞれの処理部が処理対象データに対するデータ処理を行う場合、処理対象データに含まれる部分データに対して順次処理を行うことができる。例えば、画像データに対する画像処理を行う場合には、ラスタ走査順に各画素について処理を行うことができる。一方で、画像データを領域分割し、それぞれの領域について順に処理を行うこともできる。 When each processing unit performs data processing on the data to be processed, it can perform sequential processing on partial data included in the data to be processed. For example, when performing image processing on image data, it can process each pixel in raster scan order. On the other hand, it is also possible to divide the image data into regions and perform processing on each region in sequence.
例えば、画像データの領域分割手法として、画像データの2次元分割を用いることができる。この場合、画像データは複数のタイル領域(以下、単にタイル又はブロックと呼ぶことがある)へと分割される。ここで、1つのタイルにおける画像のことを部分画像と呼ぶ。以下、タイルごとに行うデータ処理について説明する。以下の例において、処理単位(又は処理粒度)は部分画像である。以下のようなタイルごとのデータ処理のことは、タイル処理又はブロック処理と呼ぶことができる。なお、1つのタイルは1画素に対応していてもよい。 For example, two-dimensional division of image data can be used as a region division method for image data. In this case, the image data is divided into multiple tile regions (hereinafter, sometimes simply referred to as tiles or blocks). Here, the image in one tile is called a partial image. Below, data processing performed for each tile is explained. In the following example, the processing unit (or processing granularity) is a partial image. The following data processing for each tile can be called tile processing or block processing. Note that one tile may correspond to one pixel.
画像データに対する画像処理を行う場合、処理前の画像データが読み込まれ、そして処理後の画像データが生成される。図3(A)には、前段処理220において生成された画像データ300の例が示されている。画像データ300は複数のタイルに分割されており、図3(A)には複数のタイルのうちのタイル302~308が示されている。図4(A)はこのようなタイルの例を示す。それぞれのタイルの大きさは特に限定されず、長さTL及び高さTHは任意の画素数であってもよい。図3(A)において、1つのタイルは5画素×5画素の矩形領域である。
When performing image processing on image data, the image data before processing is read, and then the image data after processing is generated. FIG. 3(A) shows an example of image data 300 generated in the
前段処理220においては、タイル単位で部分画像が生成される(タイル走査又はブロック走査とも呼ばれる)。ここで、部分画像の各画素のデータは、タイル302に示す矢印の順番で順次生成される。すなわち、前段処理220においてはタイル302、タイル304、タイル306、及びタイル308が順に生成され、こうして処理後の画像データが得られる。また、前段処理220からはタイル単位で部分画像が出力される。すなわち、前段処理220からは、タイル302、タイル304、タイル306、及びタイル308が順に出力される。部分画像の各画素のデータは、タイル302に示す矢印の順番で順次出力される。このとき、画像全体における走査されている画素の座標は、画像全体中でのタイルの位置と、タイル中の走査位置から、算出することができる。
In the
図3(A)にはまた、後段処理230において参照される画像データ300の例が示されている。前段処理220において生成された画像データと後段処理230において参照される画像データは同一であるが、後段処理230においてはラスタ走査順に画像データ300が参照される。すなわち、後段処理230では、ライン312、ライン314、ライン316の順に各画素のデータを参照することにより、画像全体に対する処理が行われる。この例において、後段処理230では、画像データ300のライン312を参照して、画像データ300に対する画像処理により得られる画像データにおける対応するラインのデータが生成されてもよい。
Figure 3 (A) also shows an example of image data 300 referenced in
このように、前段処理220から出力された画像データを用いて後段処理230は画像処理を行う。しかしながら、前段処理220からの各画素のデータの出力順序と、各画素のデータの後段処理230による参照順序とは異なる。このような、接続される2つの処理部間の仕様又は制約の違いのために、前段処理220からデータが出力されてから、後段処理230にこのデータが入力されるまでの間に、データは一時的に何らかのバッファに保持される。I/F250はこのようなバッファを提供することができる。例えば、前段処理220は、画像に設定された、第1のサイズを有する複数のタイルのそれぞれに含まれるデータを、タイルごとにI/F250に送信することができる。また、後段処理230は、画像に設定された、第1のサイズとは異なる第2のサイズを有する複数のタイルのそれぞれに含まれるデータを、タイルごとにI/F250から受信することができる。
In this way, the latter-
(インタフェース装置の構成例)
図5に示すように、前段処理220と後段処理230とを接続する本実施形態に係るI/F250は、前段処理220から取得したデータをキャッシュするキャッシュメモリ434を有している。また、I/F250はさらにキャッシュ判定部412を有している。キャッシュ判定部412は、キャッシュメモリ434に書き込まれたデータをキャッシュメモリ434とは異なる記憶部にライトバックするか否かを、後段処理230から取得した情報に基づいて制御することができる。このように、キャッシュ判定部412はI/F250におけるキャッシュ制御を実現できる。
(Example of the configuration of an interface device)
5, the I/
以下では、RAM106又は外部記憶装置108のような、キャッシュメモリ434とは異なる記憶部に確保した転送データの格納先を、以下ではグローバルバッファと総称する。グローバルバッファとしては例えばDRAMを用いることができる。また、キャッシュメモリ434は、例えばSRAMなどのオンチップメモリであり、グローバルバッファと比較して高速な読み書きが可能なメモリである。
In the following, the storage destination for transfer data secured in a storage unit other than the
通常のキャッシュメモリにおいては、データの不整合を防ぐために、キャッシュメモリにデータを書き込む際に同じデータが主記憶にも書き込まれる(ライトスルー)。あるいは、キャッシュメモリに書き込まれたデータは、破棄される前に主記憶へと書き込まれる(ライトバック)。しかしながら、I/F250は、キャッシュメモリ434に書き込まれたデータをグローバルバッファに書き込んでからこのデータを破棄するか、このデータをグローバルバッファに書き込まずにこのデータを破棄するか、を制御できる。
In a typical cache memory, when data is written to the cache memory, the same data is also written to the main memory (write through) to prevent data inconsistencies. Alternatively, data written to the cache memory is written back to the main memory before being discarded (write back). However, I/
このような構成を有するI/F250を用いることにより、前段処理220から後段処理230へのデータ転送処理を効率化することができる。より具体的には、前段処理220から出力された画像データの全体をグローバルバッファ240に書き出す場合と比較して、処理速度を向上させ、及び消費電力を減少させることができる。すなわち、前段処理220により得られた画像データ全体をグローバルバッファ240に書き込み、及びグローバルバッファ240から読み出した場合、2つの画像のデータ量に対応するメモリアクセスが発生する。本実施形態では前段処理220から取得したデータの一部はグローバルバッファ240に書き込まれないため、メモリアクセスの増加に従うアクセス速度の低下及び消費電力の増加を抑制できる。
By using an I/
また、このような構成を有するI/F250を用いる場合、キャッシュメモリ434の容量を小さくすることができる。すなわち、前段処理220から出力された画像データの全体を格納可能なキャッシュメモリを設けることが不要になる。このような、回路規模が大きいことが多いキャッシュメモリの容量を小さくすることにより、製品の製造コストを減らすことができる。
In addition, when an I/
図4は、I/F250の構成の一例を示すブロック図である。I/F250は、前段処理220からデータを取得する第1のポートであるライトポート402と、前段処理220から取得したデータを後段処理230に出力する第2のポートであるリードポート404とを備える。また、I/F250はNetwork on Chip210(以下、NoC210と呼ぶ)に接続されている。NoC210にはグローバルバッファ240も接続されており、I/F250はNoC210を経由してグローバルバッファ240との間でデータを入出力するアクセスポート406を備えている。図2(A)に示されるように、I/F250は、アクセスポート406と、NoC210と、例えばDRAMコントローラのようなコントローラ245とを介して、グローバルバッファ240にアクセスできる。図5に示すように、I/F250は、NoC210を介さずに、前段処理220及び後段処理230に接続されている。
Figure 4 is a block diagram showing an example of the configuration of the I/
さらに、I/F250は、前段処理220から取得したデータをキャッシュするキャッシュメモリ434を有する。また、I/F250は、キャッシュメモリ434に書き込まれたデータをグローバルバッファ240にライトバックするか否かを、後段処理230から取得した情報に基づいて制御するキャッシュ判定部412と、を有している。
Furthermore, the I/
以下、図5を参照して、I/F250の具体的な構成例を説明する。この例において、I/F250は、ライトポート402及びリードポート404への要求を同時に受け付けることが可能な、マルチポートの共有キャッシュである。
Below, a specific example of the configuration of the I/
ライトポート402を介して、I/F250にはライト要求、同期情報、及びライトデータが入力される。ライトデータは前段処理220から入力される画素のデータである。また、ライト要求は、前段処理220から取得した、ライトデータの受け取りを要求することを示す情報である。ライト要求は、ライトデータを特定する情報を含むことができる。以下の例では、ライト要求は、ライトデータが格納されるグローバルバッファ240のメモリアドレスを示す(ただし、後述するように、ライトデータはグローバルバッファ240に格納されないかもしれない)。一方で、ライト要求が、ライトデータに対応する画素の画素位置を示していてもよい。同期情報は、前段処理220から取得した情報(第1の情報)である。このデータは、ライトデータが後段処理230に転送されるデータであることを示すことができる。詳細については後述する。
A write request, synchronization information, and write data are input to the I/
また、リードポート404を介して、I/F250にはリード要求及び同期情報が入力され、I/F250からリードデータが出力される。リードデータは後段処理230に入力される画素のデータである。リードデータは、前段処理220から入力されたライトデータであり、キャッシュメモリ434又はグローバルバッファ240に格納されている。リード要求は、後段処理230から取得した、リードデータの受け取りを要求することを示す情報である。リード要求は、リードデータを特定する情報を含むことができる。以下の例では、リード要求は、リードデータが格納されているグローバルバッファ240のメモリアドレスを示す(ただし、後述するように、リードデータはグローバルバッファ240に格納されていないかもしれない)。一方で、リード要求が、リードデータに対応する画素の画素位置を示していてもよい。同期情報は、後段処理230から取得した情報(第2の情報)である。この情報は、例えば、リードデータをキャッシュメモリ434からグローバルバッファ240にライトバックする必要がないことを示すことができる。詳細については後述する。
Also, a read request and synchronization information are input to the I/
なお、本実施形態において、ライトデータとリードデータのデータ量は同じであり、ライト要求とリード要求のアドレス指定方法も同じである。また、ライトデータとリードデータのデータ量は特に制限されない。例えば、ライトデータ及びリードデータが、1画素のデータであってもよいし、所定サイズ(例えば縦1画素×横8画素)の画素ブロックに含まれる画素のデータであってもよい。また、上述のとおり、前段処理220からの各画素のデータの出力順序と、各画素のデータの後段処理230による参照順序とは異なるかもしれない。すなわち、ライトポート402は、前段処理220から、画像データのようなデータ群に含まれるデータを第1の順序で取得することができる。一方でリードポート404は、後段処理230へと、データ群に含まれるデータを第1の順序とは異なる第2の順序で出力することができる。
In this embodiment, the data amount of the write data and the read data is the same, and the address specification method of the write request and the read request is also the same. In addition, the data amount of the write data and the read data is not particularly limited. For example, the write data and the read data may be data of one pixel, or may be data of pixels included in a pixel block of a predetermined size (for example, 1 pixel vertically by 8 pixels horizontally). In addition, as described above, the output order of the data of each pixel from the
I/F250は、プリフェッチ部410、中間FIFO420、及びフェッチ部430を有している。プリフェッチ部410は、キャッシュ判定及びプリフェッチ動作を行うことができる。本実施形態においてプリフェッチ部410は、ライトポート402へのライト要求及びリードポート404へのリード要求を受け付ける。そして、プリフェッチ部410は、プリフェッチ部410が有するキャッシュ判定部412を用いて、それぞれの要求に対するキャッシュ判定を行う。すなわちキャッシュ判定部412は、キャッシュヒット又はキャッシュミスの判定を行うことができる。具体的には、キャッシュ判定部412は、ライト要求において指定されたグローバルバッファ240のメモリアドレスに対応するデータがキャッシュメモリ434に格納されていると判断した場合、キャッシュヒットの判定を行う。一方でキャッシュ判定部412は、このデータが格納されていないと判断した場合、キャッシュミスの判定を行う。また、キャッシュ判定部412は、リード要求において指定されたリードデータがキャッシュメモリ434に格納されていると判断した場合、キャッシュヒットの判定を行い、格納されていないと判断した場合、キャッシュミスの判定を行う。
The I/
ライト要求に対するキャッシュ判定結果、ライト要求、及びライトデータは、プリフェッチ部410から、中間FIFO420を介して、フェッチ部430が有するデータ取得部432へと送られる。データ取得部432は、ライトデータをキャッシュメモリ434に格納する。
The cache determination result for the write request, the write request, and the write data are sent from the
通常のライト要求に対して、データ取得部432は、通常のキャッシュメモリへの書き込み時に行われる動作を行うことができる。例えば、プリフェッチ部410がライト要求に対してキャッシュヒットの判定を行った場合、キャッシュメモリ434には、ライト要求において指定されたアドレスのデータが格納されている。このため、フェッチ部430は、プリフェッチ部410からデータ取得部432へ送られたライトデータを、キャッシュメモリ434に上書きする。また、プリフェッチ部410がライト要求に対してキャッシュミスの判定を行った場合、キャッシュメモリ434には、ライト要求において指定されたアドレスのデータが格納されていない。この場合、プリフェッチ部410は、アクセスポート406を介して、グローバルバッファ240に対するリード要求を発行する。そしてフェッチ部430は、グローバルバッファ240から受け取ったデータにライトデータを上書きし、得られたデータをキャッシュメモリ434に格納する。
For a normal write request, the
一方で本実施形態において、前段処理220は、後段処理230に転送するデータをI/F250に転送する場合、プリロード命令を指定してI/F250に対するライト要求を行う。この場合、プリフェッチ部410は、ライト要求に対してキャッシュミスの判定を行った場合であっても、グローバルバッファ240へのリード要求を発行しない。この場合、データ取得部432は、ライト要求と同期して入力されたライトデータを、キャッシュメモリ434に格納する。
On the other hand, in this embodiment, when the front-
また、リード要求に対するキャッシュ判定結果及びリード要求も、プリフェッチ部410から中間FIFO420を介してデータ取得部432へと送られる。リード要求に対して、データ取得部432は、通常のキャッシュメモリへの書き込み時に行われる動作を行うことができる。
The cache determination result for the read request and the read request are also sent from the
例えば、プリフェッチ部410がリード要求に対してキャッシュヒットの判定を行った場合、キャッシュメモリ434には、リード要求において指定されたアドレスのデータが格納されている。このため、プリフェッチ部410がグローバルバッファ240に対するリード要求を発行する必要はない。データ取得部432は、リード要求がフェッチ部430に届いたときに、キャッシュメモリ434からリード要求に示されるデータを取り出し、リードデータとしてリードポート404に転送する。
For example, when the
一方、プリフェッチ部410がリード要求に対してキャッシュミスの判定を行った場合、キャッシュメモリ434には、リード要求において指定されたアドレスのデータが格納されていない。このためプリフェッチ部410は、アクセスポート406を介して、グローバルバッファ240に対するリード要求を発行する。するとフェッチ部430には、リード要求に対してキャッシュミスの判定が行われた場合と同様、リード要求において指定されたメモリアドレスのデータを含むデータが入力される。データ取得部432は、リード要求がフェッチ部430に届いたときに、グローバルバッファ240からのデータを受信してキャッシュメモリ434に格納する。そして、データ取得部432は、リード要求に示されるデータを、リードデータとしてリードポート404に転送する。
On the other hand, if the
以上のようにI/F250は、ライト要求及びリード要求に対して適切な処理を行うことができる。
As described above, I/
次に図6を参照してキャッシュ判定部412の構成について説明する。以下の例において、連想(ライン選択)方式としてはフルアソシアティブ方式が用いられ、I/F250はフルアソシアティブ方式に従うキャッシュ動作を行う。I/F250はマルチポートの共有キャッシュであるため、キャッシュ判定部412には複数のポートからの要求が入力される。図6には、複数のポートとして、ポート[0]512、ポート[1]514、・・・、及びポート[N-1]516が示されている。上述のライトポート402及びリードポート404は、これらのポートのいずれかである。
Next, the configuration of the
選択回路518は、各ポート512~516から入力された要求を選択する。選択されたリード要求又はライト要求に示されるアドレスは、アドレスレジスタ521に記憶される。また、ライトポート402又はリードポート404に入力された同期情報は、同期情報レジスタ530に記憶される。
The
キャッシュ判定部412は、8個のキャッシュタグ414を記憶することができる。この例において、I/F250は8ノードのフルアソシアティブ方式のキャッシュ装置となる。また8個のキャッシュタグ414のそれぞれには、予め定められた番号([0]~[7])が付されており、これらの番号は、対応するキャッシュメモリの「相対」キャッシュライン番号を示す。図6の例において、キャッシュメモリ434は8個のキャッシュラインを有しており、8個のキャッシュラインにはFIFO方式に従ってデータが格納される。なお、キャッシュラインの数、及びそれぞれのキャッシュラインの容量は特に限定されず、適宜設定することができる。
The
またキャッシュ判定部412は、8個の同期情報532を記憶することができる。それぞれの同期情報532は8個のキャッシュタグ414のうちの1つに対応し、同じ番号([0]~[7])が付されている。同期情報532は、ライトポート402に入力された同期情報、リードポート404に入力された同期情報、又はこれらの演算結果を示すことができる。以下の例において、同期情報532は、ライトポート402に入力された同期情報、又はこれとリードポート404に入力された同期情報との演算結果である。
The
以下では最も古いデータが格納されているキャッシュラインの「相対」キャッシュライン番号は[0]であり、最も新しいデータが格納されているキャッシュラインの「相対」キャッシュライン番号は[7]である。また、キャッシュミスと判定されると、これから新しいデータが格納される(破棄されるデータが格納されている)キャッシュラインの「相対」キャッシュライン番号が[7]となる。 In the following example, the "relative" cache line number of the cache line in which the oldest data is stored is [0], and the "relative" cache line number of the cache line in which the newest data is stored is [7]. Also, when a cache miss is determined, the "relative" cache line number of the cache line in which new data will be stored (the cache line in which the data to be discarded is stored) becomes [7].
キャッシュ判定部412は8個の比較器523を有し、それぞれの比較器523は8個のキャッシュタグ414のうちの1つに対応する。比較器523は、対応するキャッシュタグ414に格納されたアドレスと、アドレスレジスタ521に格納されたアドレスと、の比較を行い、アドレス同士が「一致」するか否かを示す比較結果524を判定器525へと出力する。
The
ここで、8個の比較器523から出力された8個の比較結果524のうち、1つでも「一致」を示す場合、判定器525はキャッシュヒットと判定する。一方で、8個の比較結果524のうちいずれも「一致」を示していない場合、判定器525はキャッシュミスと判定する。
Here, if any one of the eight
キャッシュミスと判定された場合(分岐526でYES)、アドレスレジスタ521に保持されているアドレスを値として有するように、キャッシュタグ414が更新される。図6においてキャッシュタグ414は、シフトレジスタを有する記憶領域に格納される。判定結果がキャッシュミスである場合、シフト動作が行われ、キャッシュタグの値は下流のキャッシュタグに移動する。すなわち、キャッシュタグ[0]の値はキャッシュタグ[1]の値に変化し、キャッシュタグ[1]の値はキャッシュタグ[2]の値に変化する。同様に移動が繰り返され、キャッシュタグ[6]の値はキャッシュタグ[7]の値に変化する。そして、キャッシュタグ[7]の値は、アドレスレジスタ521に格納されているアドレスの値に変化する。
If it is determined to be a cache miss (YES at branch 526), the
このように、図6の例では、古いキャッシュタグ[0]の値が破棄される、「FIFO方式(ラウンドロビン方式)」のキャッシュタグのリプレイス手法が用いられている。このような方式を、フルアソシアティブ方式のキャッシュ装置において採用することにより、装置を簡略化することができる。 In this way, in the example of Figure 6, a "FIFO (round robin)" cache tag replacement method is used in which the value of the old cache tag [0] is discarded. By adopting such a method in a fully associative cache device, the device can be simplified.
また、キャッシュミスと判定された場合、同期情報レジスタ530に格納されている値を保持するように、同期情報532が更新される。図6の例において同期情報532は、キャッシュタグ414と同様に、シフトレジスタを有する記憶領域に格納される。キャッシュミスと判定された場合、キャッシュタグ414と同様に、同期情報532のシフト動作が行われ、同期情報の値は下流の同期情報に移動する。すなわち、同期情報レジスタ530に格納されている値は同期情報[7]に書き込まれ、古い同期情報[0]の値は破棄される。
If a cache miss is determined, the
一方で、キャッシュヒットと判定された場合、このようなキャッシュタグ414及び同期情報532の更新は行われない。その一方で、キャッシュヒットと判定された場合、修正器535は、キャッシュヒットと判定されたキャッシュタグ414に対応する同期情報532の修正を行う。すなわち、修正器535は、アドレスレジスタ521に格納されたアドレスと一致する値を有しているキャッシュタグ414の番号([0]~[7])と、同じ番号を有する同期情報532の値を修正する。
On the other hand, if a cache hit is determined, such updates to the
判定器525は、以上のようなキャッシュヒット又はキャッシュミスを示すキャッシュ判定結果を、キャッシュミスフラグ528として出力する。また、判定結果がキャッシュヒットである場合、判定器525は、アドレスレジスタ521に格納されたアドレスと一致する値を有しているキャッシュタグ414の番号([0]~[7])を、ライン番号527として出力する。一方で、判定結果がキャッシュミスである場合、判定器525は、7(すなわちキャッシュタグ[7]の番号)をライン番号527として出力する。さらにキャッシュ判定部412は、キャッシュミスの判定を行った場合、シフト動作により破棄されるキャッシュタグ[0]の値540、及び破棄される同期情報[0]の値542も、キャッシュ判定結果として出力する。これらの情報に従って、プリフェッチ部410及びフェッチ部430は上述の動作を行うことができる。
The
なお、キャッシュヒットと判定された場合、ライト要求を受信したフェッチ部430は、ライン番号527により示されるキャッシュラインにライトデータを格納する。また、リード要求を受信したフェッチ部430は、ライン番号527により示されるキャッシュラインからリードデータを読み出す。
When a cache hit is determined, the fetch
一方、キャッシュミスと判定された場合、フェッチ部430は、ライン番号527により示されるキャッシュライン[7]に格納されていたデータを、同期情報[0]の値542に従って破棄し、又はグローバルメモリにライトバックする。ライトバックを行う場合、フェッチ部430は、グローバルメモリのキャッシュタグの値540により示されるアドレスに対してライトバックを行う。また、ライト要求を受信したフェッチ部430は、ライン番号527により示されるキャッシュライン[7]にライトデータを格納する。さらに、リード要求を受信したフェッチ部430は、ライン番号527により示されるキャッシュライン[7]に、グローバルバッファ240から受信したデータを書き込む。
On the other hand, if it is determined to be a cache miss, the fetch
(動作例)
本実施形態において、I/F250は前段処理220の処理結果を後段処理230に転送し、また転送できない処理結果をグローバルバッファ240に退避する。このような処理制御は、例えば、以下のように同期情報を使用することにより実現できる。
(Example of operation)
In this embodiment, the I/
本実施形態において、前段処理220が処理結果を後段処理230に転送する場合、前段処理220はプリロード命令を用いてI/F250に対するライト要求を行う。図6の例において前段処理220は、プリロード命令を行う際に、値が「1」である同期情報をI/F250に入力する。
In this embodiment, when the front-
上述のとおり、キャッシュ判定部412はプリロード命令が入力された場合、キャッシュミスの判定を行う。すなわち、上述の通り、キャッシュタグにアドレスを書き込み、前段処理から入力された同期情報の値である「1」を保持するように、同期情報532を更新する。また、上述の通り、この場合プリフェッチ部410はグローバルバッファ240へのリード要求を発行せず、前段処理220の処理結果であるライトデータがキャッシュメモリ434に格納される。
As described above, when a preload command is input, the
一方で後段処理230は、前段処理220の処理結果を取得するために、I/Fに対するリード要求を行う。図6の例において後段処理230は、リード要求を行う際に、値が「1」である同期情報をI/F250に入力する。上述の通り、キャッシュ判定部412はリード要求に示されるアドレスに従ってキャッシュ判定を行い、キャッシュヒットと判定された場合、修正器535は同期情報532を修正する。本実施形態において修正器535は、キャッシュヒットと判定されたキャッシュタグ414に対応する同期情報532と、同期情報レジスタ530の値と、のXOR(Exclusive-OR)演算を行う。そして、XOR演算により得られた値で、キャッシュヒットと判定されたキャッシュタグ414に対応する同期情報532を更新する。本実施形態の場合、プリロード命令により前段処理220からのデータがキャッシュメモリ434に格納されると、対応する同期情報532の値は上記の通り「1」となる。一方、リード要求を受けた際の同期情報レジスタ530の値は上記の通り「0」である。したがって、キャッシュメモリ434に格納されたデータに対するリード要求が行われると、対応する同期情報532の値は「1」から「0」になる。
On the other hand, the
前段処理220及び後段処理230の処理が進むにつれて、キャッシュタグが更新されていき、上記のように一部のキャッシュタグはキャッシュ判定部412から破棄される。このとき、破棄されるキャッシュタグの値540、破棄される同期情報の値542、及びライン番号527が、フェッチ部430に入力される。
As the processing of the front-
入力された同期情報の値542が「0」である場合、キャッシュタグの値540が示すアドレスに対応する前段処理220からのデータは、後段処理230からのリード要求に従って後段処理230に転送されている。このため、このデータをグローバルバッファ240に待避させる必要はない。このデータは、プリロード命令により、キャッシュメモリ434のライン番号527に対応するキャッシュラインに格納されている。このため、入力された同期情報の値542が「0」である場合、フェッチ部430は、キャッシュメモリ434が有する、ライン番号527に対応するキャッシュラインのデータを破棄する。
When the input synchronization information value 542 is "0", the data from the
一方、入力された同期情報の値542が「1」である場合、キャッシュタグの値540が示すアドレスに対応する前段処理220からのデータは、後段処理230からのリード要求がないため後段処理230に転送されていない。このデータは、プリロード命令により、キャッシュメモリ434のライン番号527に対応するキャッシュラインに格納されている。このため、入力された同期情報の値542が「1」である場合、フェッチ部430は、キャッシュメモリ434が有する、ライン番号527に対応するキャッシュラインに格納されているデータを、グローバルバッファ240に待避させる。具体的にはフェッチ部430は、このデータをキャッシュタグの値540が示すグローバルバッファ240のアドレスに格納(ライトバック)する。
On the other hand, if the input synchronization information value 542 is "1", the data from the
以上のように、前段処理220からのライト要求により、ライトデータはキャッシュメモリに一時記憶される。そして、このライトデータをグローバルバッファ240にライトバックするかどうかは、後段処理230からのリード要求によって制御される。このように、前段処理220が送信したライトデータに対するライトバック動作を実行するか否かは、データを受信する後段処理230が決定する。より具体的には、後段処理230から得られた、リードデータをキャッシュメモリ434からグローバルバッファ240にライトバックする必要がないことを示す、リードポート404に入力された同期情報が参照される。そして、このような同期情報に少なくとも従って、破棄するデータをライトバックするか否かが切り替えられている。以上の例では、キャッシュメモリ434に書き込まれているデータを破棄する際に、このような同期情報に従って、ライトバックの有無が切り替えられている。
As described above, the write data is temporarily stored in the cache memory in response to a write request from the front-
上記の具体例においては、プリロード命令を用いることによりライトデータが後段処理230に転送されるデータであることが示されている場合、キャッシュメモリ434に格納されたデータに関連付けて、同期情報の値542として「1」が格納される。この同期情報は、前段処理220から得られた、ライトデータが後段処理230に転送されるデータであることを示している。また、こうしてキャッシュメモリ434に格納されたデータは、グローバルバッファ240から取得されたものではなく、前段処理220から直接取得したものである。一方で、こうしてキャッシュメモリ434に格納されたデータを要求する場合、後段処理230は、リードポート404に同期情報として「0」を入力することができる。この同期情報は、後段処理230から得られた、リードデータをキャッシュメモリ434からグローバルバッファ240にライトバックする必要がないことを示している。これらの情報に従って、フェッチ部430は、キャッシュメモリ434に書き込まれているデータをグローバルバッファ240にライトバックせずに破棄した。
In the above specific example, when the preload command is used to indicate that the write data is data to be transferred to the
このようにフェッチ部430は、前段処理220から得られた同期情報と、後段処理230から得られた同期情報と、の双方に基づいて、キャッシュメモリ434に書き込まれているデータをグローバルバッファ240にライトバックするか否かを制御している。とりわけ、上記の例においては、前段処理220から得られた同期情報と、後段処理230から得られた同期情報の演算結果である「0」が、同期情報の値542として格納されている。そして、この同期情報の値542に従って、ライトバックの制御が行われた。一方で、このような構成は一例にすぎない。例えば、同期情報の値542として、前段処理220から得られた同期情報と、後段処理230から得られた同期情報と、のそれぞれが格納されてもよい。
In this way, the fetch
(後段処理でタイル走査が行われる場合の動作例)
実施形態1のようなI/F250を用いることにより、前段処理220及び後段処理230で用いられる走査順序にかかわらず、このような動作を実現することができる。実施形態1では、例えば図3(A)に示すように、前段処理220でタイル走査が行われ、後段処理230でラスタ走査が行われていたが、前段処理220及び後段処理230はこれに限定されない。例えば、前段処理220で所定サイズのタイルに従うタイル走査が行われ、後段処理230で異なる大きさのタイルに従うタイル走査が行われる場合にも、実施形態1の方法は有効である。このような場合、後段処理230は、例えば、1つのタイル内の各画素の画素データをI/F250から取得し、取得した画素データを用いた処理を行い、このタイル内の各画素の処理後の画素データを生成することができる。後段処理230は、このようなタイルごとの処理をそれぞれのタイルについて繰り返すことにより、処理後の画像データを生成することができる。この場合もI/F250は、上記のように、後段処理230に要求されたデータをキャッシュメモリ434から出力し、又はグローバルバッファ240から取得して出力することができる。
(Example of operation when tile scanning is performed in later processing)
By using the I/
一方、このような1つのタイルについての処理において、タイル外の画素の画素データが参照されることがある。例えば、後段処理230が画像データに対してFIRフィルタのようなフィルタ処理を行う場合、ある画素の画素データを算出するために、周辺画素の画素データが参照されることがある。このような場合、後段処理230は、1つのタイル内の各画素の画素データに加えて、このタイルの周辺画素を含む、より大きなタイルの画素データをI/F250から取得する。
Meanwhile, in such processing of a single tile, pixel data of pixels outside the tile may be referenced. For example, when the post-processing 230 performs filtering processing such as an FIR filter on image data, pixel data of surrounding pixels may be referenced to calculate pixel data for a pixel. In such cases, in addition to the pixel data for each pixel in a single tile, the post-processing 230 obtains pixel data for a larger tile that includes the surrounding pixels of this tile from the I/
図4(B)~(E)の例では、後段処理230は、1つ目のタイルを処理する際に、より大きなタイルである領域391内のデータを取得し、同様に2~4つ目のタイルを処理する際に、より大きなタイルである領域392~394内のデータを取得する。図4(B)~(E)において、後段処理230によって画素のデータが2回以上取得される領域は、ハッチングで示されている。以下、このような領域のことをオーバーラップ領域と呼ぶ。例えば、後段処理230において、処理対象画素を中心とする縦5画素×横5画素の計25画素を参照するフィルタ処理を行う場合、オーバーラップ領域の幅は2画素となる。
In the example of Figures 4 (B) to (E), when processing the first tile, the post-processing 230 obtains data in
以下、このようなオーバーラップ領域が存在する場合の、本実施形態に係るインタフェース装置の動作例について、図3(B)を参照して説明する。図3(B)で後段処理230は、領域350の画像データをI/F250から取得しようとしている。後段処理230は、領域350のうち、領域351のデータに対するリード要求を行う際には、図3(A)の場合と同様に、リード要求の際に同期情報として「1」を設定する。ここで、領域351はオーバーラップ領域ではない領域であり、すなわち後続するタイルの処理において参照されない領域である。この場合、上述の通り、キャッシュヒットした場合は、キャッシュメモリ434に格納されているデータがライトバックされずに破棄される。
Below, an example of the operation of the interface device according to this embodiment when such an overlapping area exists will be described with reference to FIG. 3B. In FIG. 3B, the post-processing 230 is attempting to obtain image data of
このように、後段処理230は、I/F250に対しデータを要求する際に、データを後の処理で再度要求するか否かを判定することができる。また、再度要求しないとの判定に応じて、要求するデータをキャッシュメモリ434からグローバルバッファ240にライトバックする必要がないことを示す同期情報(「1」)を、I/F250に対して送信することができる。
In this way, when requesting data from I/
一方で後段処理230は、領域350のうち、領域352のデータに対するリード要求する際には、リード要求の際に同期情報として「0」を設定する。ここで、領域352はオーバーラップ領域であり、すなわち後続するタイルの処理において参照される領域である。この場合、キャッシュヒットしたとしても、XOR演算の結果、キャッシュメモリ434に格納されているデータに対応する同期情報532の値は「1」のままとなる。このため、キャッシュヒットしたとしても、キャッシュメモリ434に格納されているデータはグローバルバッファ240にライトバックされる。この結果として、後続するタイルの処理時に、参照する領域のデータをグローバルバッファ240から取得することが可能となる。
On the other hand, when the post-processing 230 makes a read request for data in
このように、I/F250に送信される、後段処理230が要求したデータをキャッシュメモリ434からグローバルバッファ240にライトバックする必要性を示す同期情報を制御することができる。後段処理230は、このような制御を、I/F250に対してタイル領域に含まれるデータを要求する際に、データが他のタイル領域に含まれるか否か(すなわちオーバーラップ領域に含まれるか否か)に応じて行うことができる。
In this way, it is possible to control the synchronization information transmitted to the I/
なお、本実施形態に係るインタフェース装置の動作は、上記のものに限定されない。例えば、図3(C)の例で、後段処理230は、1つのタイルを処理する際に領域360のデータを取得する。ここで、図3(C)の例では行381の読み込みが終わった後に行382の読み込みが行われる。このため、別のタイルを処理するために領域375のデータを読み込む際には、領域360の下端にある領域364のデータがキャッシュメモリから破棄されている可能性が高い。このため、領域364のデータをグローバルバッファ240に待避させるために、後段処理230は領域364のデータに対するリード要求を行う際に同期情報として「0」を設定する。
Note that the operation of the interface device according to this embodiment is not limited to the above. For example, in the example of FIG. 3C, the post-processing 230 acquires data in
一方で、図3(C)の例では領域360のデータの読み込みが終わった後に領域370のデータの読み込みが行われる。したがって、領域370は領域362を含んでいるが、領域370のデータを読み込む際に領域362のデータはキャッシュヒットする。すなわち、領域362のデータをグローバルバッファ240に待避させる必要はないため、後段処理230は領域364のデータに対するリード要求を行う際に同期情報として「1」を設定してもよい。
On the other hand, in the example of FIG. 3(C), the data in
後段処理230の種類は特に限定されず、後段処理230が解像度変換(任意変倍処理)のような画像の大きさを変更する処理を行う場合にも、本実施形態を適用できる。タイル処理のような領域分割手法を用いて解像度変換を行う場合、変倍率によっては、処理において参照される領域の大きさ、又は処理により出力される領域の大きさが、画像中のタイルの位置によって変動する場合がある。一方で、後段処理230はこのような参照する領域の大きさの変動を検知できるため、領域の大きさの変化に応じてリード要求の数を変えることにより、処理に必要なデータを得ることができる。また、後段処理230は、参照する領域の大きさの変化と、出力される領域の大きさの変化とを検知することができるため、上述したオーバーラップ領域の変化も検知できる。このため、後段処理230は、上述のように同期情報の値を変更することで、ライトバック動作を行うかどうかを制御することができる。
The type of the
以上のように本実施形態によれば、I/F250は、前段処理220による処理後のデータの少なくとも一部を、グローバルバッファ240への一時保存を行わずに、後段処理230に直接転送することができる。また、I/F250は、このように直接転送できなかったデータのみをグローバルバッファ240に待避させる。このように、I/F250を用いて前段処理220と後段処理230とを直結することにより、グローバルバッファ240に待避することなく後段処理230に直接転送されるデータと、グローバルバッファ240に待避するデータと、を選り分けることができる。このため、前段処理220から出力された画像データの全体をグローバルバッファ240に書き出す場合と比較して、処理速度を向上させ、及び消費電力を減少させることができる。このように、I/F250を用いることにより、前段処理220から後段処理230へのデータ転送処理を効率化することができる。
As described above, according to this embodiment, the I/
I/F250はキャッシュメモリ434の大きさに応じてこのような選り分け動作を行うことができる。前段処理220から後段処理230に直接データを転送するためには、データがグローバルバッファ240に待避する前に後段処理230がリード要求を行う必要がある。このため、キャッシュメモリ434の容量が大きいほど、直接データを転送するためのリード要求のタイミリミットが遅くなる。直接のデータ転送が行われると、その後I/F250はこのデータをグローバルバッファ240にライトバックせずにキャッシュメモリ434から破棄するため、グローバルバッファ240へのアクセス量が減少する。このため、キャッシュメモリの大きさと、グローバルバッファ240へのアクセス量と、のバランスを調整することができる。キャッシュメモリ434の容量が大きいほど、前段処理220と後段処理230とを疎結合化でき、I/F250のシステム上での動作がより安定になる。
The I/
[実施形態2]
実施形態1では、1つのチップ内にある前段処理220と後段処理230とが接続された。しかしながら、前段処理220と後段処理230が別々のチップに搭載されていてもよい。実施形態2においては、図2(B)に示されるようにチップ265(チップB)は、I/F250と、後段処理230とを有している。I/F250は実施形態1と同様の機能を持ち、チップ265とは異なるチップ260(チップA)が有している前段処理220と接続されている。前段処理220のWDMAC226は、チップ265のグローバルバッファ240のアドレスへの、処理部224による処理結果のライト要求を発行する。図2(B)ではチップ間のインタフェースの一例としてPCIeが用いられており、チップ260のPCIe228はライト要求をPCIeの転送プロトコルに変換してチップ265に転送する。チップ265のPCIe238は、チップ260からの転送データを受信し、I/F250にライト要求を行う。チップ265の後段処理230、NoC210、コントローラ245、及びグローバルバッファ240の機能は、実施形態1と同様である。
[Embodiment 2]
In the first embodiment, the
このような構成により、複数のチップ間にまたがって、処理部間でのデータ処理の仕様又は制約の違いを吸収しながら、処理部間でのデータ転送を行うことができる。この例において、前段処理220から出力するデータ量以上のデータを転送する必要はない。また、この例において後段処理230を有するチップ265がI/F250及びグローバルバッファ240を有している。したがって、この構成によれば、チップ265におけるキャッシュメモリの大きさと、グローバルバッファ240へのアクセス量と、のバランスを調整することができる。チップ260の前段処理220は、チップ間インタフェースを介して実施形態1と同様に予め定められた同期情報を転送することができる。また、チップ265のI/F250は、前段処理220から受け取った同期情報を、実施形態1と同様に後段処理230から受け取った同期情報で修正することができる。
This configuration allows data transfer between processing units across multiple chips while absorbing differences in data processing specifications or constraints between processing units. In this example, it is not necessary to transfer data greater than the amount of data output from the front-
[実施形態1,2の変形例]
以下、実施形態1,2における同期情報の修正についてさらに詳細に説明する。実施形態1と同様の方式を用いる場合、同期情報の修正は以下のように行うことができる。すなわち、ライトポート402へライト要求とともに入力される同期情報と、リードポート404へリード要求とともに入力される同期情報とを用いて、所望のキャッシュラインについての同期情報を演算することができる。そして、キャッシュミスが生じると、最も古いキャッシュライン[0]についての同期情報[0]はI/F250から破棄される。このとき、破棄される同期情報[0]の値が1である場合には、グローバルバッファ240(例えばDRAM)にキャッシュデータをライトバックすることができる。
[Modifications of the First and Second Embodiments]
The correction of the synchronization information in the first and second embodiments will be described in more detail below. When using the same method as in the first embodiment, the correction of the synchronization information can be performed as follows. That is, the synchronization information for the desired cache line can be calculated using the synchronization information input to the
一方、実施形態2のようにチップ間でデータを送受信するような場合など、優先的にライトポートからのデータをリードポートに伝達したいことがある。このような場合には、上記のようなライトバックを行わない動作を用いることができる。例えば、ライトポート402からの入力をストール(一時停止)し、リードポート404からのリード要求を優先的に処理することができる。そして、最も古いキャッシュライン[0]に対するリード要求が入力され、同期情報[0]の値が1から0になり、キャッシュライン[0]のキャッシュデータが破棄可能となった時に、ライトポート402の入力ストール(一時停止)を解除することができる。
On the other hand, when data is sent and received between chips as in the second embodiment, it may be desirable to give priority to transmitting data from the write port to the read port. In such a case, the above-mentioned operation without write-back can be used. For example, input from the
このような実施形態によれば、ライトポート402からのデータ受信より、リードポート404へのデータ送信を優先的に行うことにより、グローバルバッファ240へのデータの書き戻し量を抑制することができる。また、グローバルバッファ240からのデータの再読み出し量も抑制されるため、グローバルバッファ240(例えばDRAM)へのアクセス帯域を削減し、ライトポート402からリードポート404への伝達レイテンシを短くすることができる。
According to this embodiment, by giving priority to sending data to the read
さらに、同期情報を用いた制御手法について詳細に説明する。実施形態1の方式では、同期情報は1ビットのフラグであり、ライトポート402から受信するデータと、リードポート404に送信するデータと、の間のデータ転送比は1対1であった。一方で、同期情報はNビット(Nは1以上)のカウント値であってもよい。例として、ライトポート402からの受信データを、リードポート404から7回読み出す場合について説明する。この場合、ライトポート402へとライト要求とともに入力される同期情報の値を7にすることができる。こうして入力された同期情報(値=7)は、キャッシュライン[7]についての同期情報[7]として書き込まれる。そして、リードポート404へのリード要求がキャッシュヒットするたびに、対応するキャッシュラインについての同期情報から1が減算される。そして、最も古いキャッシュライン[0]からキャッシュデータが破棄されるときに、対応する同期情報[0]の値が0であればライトバックは行われず、1以上であればグローバルバッファ240(例えばDRAM)への書き戻しが行われる。この場合、ライトポート402からリードポート404へのデータ転送比を1:7に制御することができる。
Furthermore, a control method using the synchronization information will be described in detail. In the method of the first embodiment, the synchronization information is a 1-bit flag, and the data transfer ratio between the data received from the
また、同期情報の使い方を工夫することにより、ライトポート402から受信するデータと、リードポート404に送信するデータと、のデータ転送比が予め確定していない場合であっても、データ転送比を制御できる。例えば、8ビットの同期情報を用い、前段処理220は、ライト要求とともに値として0xFF(無限倍)を持つ同期情報を、ライトポート402からI/F250に書き込むことができる。このとき、前段処理220は、送信データが後段処理230でどのように利用されるかを知る必要は必ずしもない。データ転送比をどのような大きさにするかは、データを利用する後段処理230が決めることができる。この場合も、リードポート404へリード要求とともに入力される同期情報の値と、キャッシュヒットしたキャッシュラインについての同期情報と、の演算により、キャッシュラインのキャッシュデータをライトバックするか破棄するかを定めることができる。
In addition, by devising a way to use the synchronization information, the data transfer ratio can be controlled even if the data transfer ratio between the data received from the
例えば、後段処理230は、リードポート404へのリード要求により、必要な回数だけ所望のキャッシュデータを読み出すことができる。キャッシュメモリに所望のデータがない場合、グローバルバッファ240(例えばDRAM)から再読み出しされたデータ及び同期情報が、リードポート404に送信される。そして、リードポート404へのリード要求により、所望のデータを最後に読み出すときに、キャッシュラインについての同期情報を強制的に0の値で上書きすることができる。このようなキャッシュラインのキャッシュデータは、グローバルバッファ240に書き戻されることなく、キャッシュメモリから廃棄される。後段処理230は、リードポート404へリード要求とともに入力する同期情報を用いて、このような同期情報の上書きを行うことができる。
For example, the post-processing 230 can read the desired cache data as many times as necessary by a read request to the read
このような実施形態によれば、前段処理220の送信データと後段処理230の受信データとのデータ転送比を容易に制御することができる。とりわけ、上述の実施形態のように、後段処理230が同期情報を制御することにより、柔軟なデータ転送比を実現することがきる。この場合、前段処理220はデータを単純に送信すればよい。
According to such an embodiment, the data transfer ratio between the data sent by the
[実施形態3]
上述の実施形態においては、画像データを異なる走査順序で送受信したり、フィルタ処理のオーバーラップ領域を考慮したりするために、大きなキャッシュメモリを用いることが望ましい。キャッシュメモリが大きいほど、グローバルバッファ(例えばDRAM)へのデータ退避及び再読み出しのためのアクセスを抑制することができるため、グローバルバッファへのアクセス帯域を削減できる。
[Embodiment 3]
In the above-described embodiment, it is desirable to use a large cache memory in order to transmit and receive image data in different scan orders, to take into account overlapping areas in filter processing, etc. The larger the cache memory, the more it is possible to suppress accesses for saving and re-reading data to a global buffer (e.g., DRAM), thereby reducing the access bandwidth to the global buffer.
このため、キャッシュメモリとして、従来のSRAMの代わりに、spin-transfer torque magnetic RAM(STT-MRAM)のような、次世代の不揮発性メモリを用いることができる。また、次世代のメモリと呼ばれる、FRAM(登録商標)、ReRAM、PCMなどを用いることもできる。例えば、STT-MRAMは、SRAMに比べて回路素子が小さいため、4倍以上の容量を有することが容易である。このため、キャッシュメモリの容量を大きくすることができる。また、STT-MRAMの消費電力は、SRAMと比べて、リードアクセスについては約1/60の大きさでありうるが、ライトアクセスについては約1.6倍の大きさとなりうる。しかしながら、上記の変形例のように、本発明の一実施形態に係るインタフェース装置は、前段処理220によるライト1回に対する後段処理230によるリード回数、すなわちデータ転送比を容易に制御できる。このため、STT-MRAMを用いることによる消費電力の抑制効果を活用することができる。
Therefore, instead of conventional SRAM, a next-generation non-volatile memory such as spin-transfer torque magnetic RAM (STT-MRAM) can be used as the cache memory. In addition, FRAM (registered trademark), ReRAM, PCM, and the like, which are called next-generation memories, can also be used. For example, STT-MRAM has smaller circuit elements than SRAM, so it is easy to have a capacity four times larger or more. Therefore, the capacity of the cache memory can be increased. Furthermore, the power consumption of STT-MRAM can be about 1/60 of that of SRAM for read access, but about 1.6 times larger for write access. However, as in the above modification, the interface device according to one embodiment of the present invention can easily control the number of reads by the rear-
以上のように、キャッシュメモリとしてSTT-MRAMなどの次世代メモリ又は不揮発性メモリを用いることにより、キャッシュ容量を大きくし、データ伝送の効率を向上することができる。また、ライトポートに対するリードポートのデータ転送比が大きいとき、STT-MRAMを用いることで効果的に消費電力を抑制できる。 As described above, by using next-generation memory such as STT-MRAM or non-volatile memory as cache memory, it is possible to increase the cache capacity and improve the efficiency of data transmission. Furthermore, when the data transfer ratio of the read port to the write port is high, power consumption can be effectively reduced by using STT-MRAM.
[実施形態4]
前段処理220は、撮像センサなどのセンシングデバイスであってもよい。例えば、撮像センサは単純なラスタ走査順で撮像データを送信することが多い。また、後段処理230は、撮像データに対する高画質化処理であってもよい。上述の実施形態によれば、省メモリ化が可能なタイル領域単位の画像処理を用いるための走査変換、及びフィルタ処理のためのオーバーラップ領域の制御を行うことができる。そして、上述の実施形態によれば、前段処理220は単純にデータ送信を行うことができ、後段処理230が同期情報を制御することにより多彩な方式のデータ受信を行うことができる。したがって、上述の実施形態は、撮像センサなどのセンシングデバイスが共有キャッシュI/Fに対する単純なデータ送信を行い、複雑な画像処理を行う後段処理230がその機能及び動作に応じたデータ受信を行うように使用可能である。
[Embodiment 4]
The pre-processing 220 may be a sensing device such as an imaging sensor. For example, an imaging sensor often transmits imaging data in a simple raster scan order. The post-processing 230 may perform high-quality image processing on the imaging data. According to the above-mentioned embodiment, it is possible to perform scan conversion to use image processing in tile regions that can reduce memory, and control of overlapping regions for filter processing. According to the above-mentioned embodiment, the pre-processing 220 can simply transmit data, and the post-processing 230 can receive data in a variety of ways by controlling synchronization information. Therefore, the above-mentioned embodiment can be used such that a sensing device such as an imaging sensor transmits simple data to a shared cache I/F, and the post-processing 230, which performs complex image processing, receives data according to its function and operation.
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Other Examples
The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions.
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。 The invention is not limited to the above-described embodiment, and various modifications and variations are possible without departing from the spirit and scope of the invention. Therefore, the following claims are appended to disclose the scope of the invention.
220:前段処理、230:後段処理、250:共有キャッシュI/F、402:ライトポート、404:リードポート、410:プリフェッチ部、430:フェッチ部 220: Pre-processing, 230: Post-processing, 250: Shared cache I/F, 402: Write port, 404: Read port, 410: Prefetch unit, 430: Fetch unit
Claims (19)
前記複数の処理部に含まれる第1の処理部からデータを取得する第1のポートと、
前記第1の処理部から取得したデータを前記複数の処理部に含まれる第2の処理部に出力する第2のポートと、
前記第1の処理部から取得したデータをキャッシュするキャッシュ手段と、
前記キャッシュ手段に書き込まれたデータを前記キャッシュ手段とは異なる記憶手段にライトバックするか否かを、前記第2の処理部から取得した情報に基づいて制御する制御手段と、を備え、
前記第2の処理部から取得した情報は、前記第2の処理部が要求したデータを前記キャッシュ手段から前記記憶手段にライトバックする必要がないことを示すことを特徴とするインタフェース装置。 1. An interface device that serves as a shared cache for a plurality of processing units, comprising:
a first port that acquires data from a first processing unit included in the plurality of processing units;
a second port that outputs data acquired from the first processing unit to a second processing unit included in the plurality of processing units;
a cache unit that caches the data acquired from the first processing unit;
a control unit that controls whether or not to write back the data written to the cache unit to a storage unit different from the cache unit based on information acquired from the second processing unit ,
2. An interface device according to claim 1, wherein the information obtained from said second processing unit indicates that it is not necessary to write back data requested by said second processing unit from said cache means to said storage means .
前記第2のポートは、前記第2の処理部へと、前記データ群に含まれるデータを前記第1の順序とは異なる第2の順序で出力することを特徴とする、請求項1に記載のインタフェース装置。 The first port obtains data included in a data group from the first processing unit in a first order;
2. The interface device according to claim 1, wherein the second port outputs the data included in the data group to the second processing unit in a second order different from the first order.
前記キャッシュ手段に書き込まれている前記データが、前記記憶手段から取得されたものではなく、
前記データが前記第2の処理部に転送されるデータであることを前記第1の処理部から取得した情報が示しており、かつ
前記第2の処理部が要求したデータを前記キャッシュ手段から前記記憶手段にライトバックする必要がないことを前記第2の処理部から取得した情報が示している場合に、
前記キャッシュ手段に書き込まれている前記データを前記記憶手段にライトバックせずに破棄することを特徴とする、請求項3から5のいずれか1項に記載のインタフェース装置。 The control means
the data written to the cache means is not obtained from the storage means,
When the information acquired from the first processing unit indicates that the data is data to be transferred to the second processing unit, and the information acquired from the second processing unit indicates that the data requested by the second processing unit does not need to be written back from the cache means to the storage means,
6. The interface device according to claim 3 , wherein the data written in the cache means is discarded without being written back to the storage means.
前記第2の処理部は、前記データ群に対する第2のデータ処理を行うことにより、前記入力データに対して前記第1のデータ処理及び前記第2のデータ処理を行って得られる処理結果を生成することを特徴とする、請求項12に記載のデータ処理装置。 The first processing unit generates a data group by a first data processing on input data,
13. The data processing device according to claim 12, wherein the second processing unit performs a second data processing on the data group to generate a processing result obtained by performing the first data processing and the second data processing on the input data.
前記第2の処理部は、前記画像に設定された、前記第1のサイズとは異なる第2のサイズを有する複数のタイル領域のそれぞれに含まれるデータを、タイル領域ごとに前記インタフェース装置から受信することを特徴とする、請求項12又は13に記載のデータ処理装置。 the first processing unit transmits data included in each of a plurality of tile regions having a first size set in an image to the interface device for each tile region;
14. The data processing device according to claim 12, wherein the second processing unit receives, from the interface device, data contained in each of a plurality of tile regions set in the image and having a second size different from the first size, for each tile region.
前記インタフェース装置に対してタイル領域に含まれるデータを要求する際に、前記データが他のタイル領域に含まれるか否かに応じて、前記インタフェース装置に送信される、前記第2の処理部が要求したデータを前記キャッシュ手段から前記記憶手段にライトバックする必要性を示す情報を制御することを特徴とする、請求項12から14のいずれか1項に記載のデータ処理装置。 The second processing unit receives data included in each of a plurality of tile regions set in an image from the interface device for each tile region;
15. A data processing device according to claim 12, characterized in that, when requesting data contained in a tile area from the interface device, information indicating the need to write back the data requested by the second processing unit from the cache means to the storage means is controlled depending on whether the data is contained in another tile area, and is sent to the interface device.
前記データ処理装置は前記ネットワークに接続され、
前記データ処理装置は前記ネットワークを介さずに前記第1の処理部及び前記第2の処理部に接続されている
ことを特徴とする、請求項12から16のいずれか1項に記載のデータ処理装置。 The data processing device further comprises a network and the storage means connected to the network;
the data processing device is connected to the network;
The data processing device according to claim 12 , wherein the data processing device is connected to the first processing unit and the second processing unit without passing through the network.
前記キャッシュ手段に書き込まれたデータを前記キャッシュ手段とは異なる記憶手段にライトバックするか否かを、前記第2の処理部から取得した情報に基づいて制御する工程を有し、
前記第2の処理部から取得した情報は、前記第2の処理部が要求したデータを前記キャッシュ手段から前記記憶手段にライトバックする必要がないことを示すことを特徴とする、キャッシュ制御方法。 A cache control method performed by an interface device that serves as a shared cache for a plurality of processing units, the interface device comprising: a first port that acquires data from a first processing unit included in the plurality of processing units; a second port that outputs the data acquired from the first processing unit to a second processing unit included in the plurality of processing units; and cache means that caches the data acquired from the first processing unit, the method comprising:
a step of controlling whether or not to write back the data written to the cache means to a storage means other than the cache means based on information acquired from the second processing unit ;
A cache control method, characterized in that the information obtained from the second processing unit indicates that data requested by the second processing unit does not need to be written back from the cache means to the storage means .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/799,061 US11409655B2 (en) | 2019-03-01 | 2020-02-24 | Interface apparatus, data processing apparatus, cache control method, and medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019037772 | 2019-03-01 | ||
JP2019037772 | 2019-03-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020144856A JP2020144856A (en) | 2020-09-10 |
JP7474061B2 true JP7474061B2 (en) | 2024-04-24 |
Family
ID=72353674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020022672A Active JP7474061B2 (en) | 2019-03-01 | 2020-02-13 | Interface device, data processing device, cache control method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7474061B2 (en) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010008009A1 (en) | 1999-06-21 | 2001-07-12 | Johnson Mark W. | Set-associative cache-management method with parallel and single-set sequential reads |
JP2006511832A (en) | 2002-12-20 | 2006-04-06 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Apparatus for rearranging image data for display using two replacement steps and storage of partially rearranged intermediate image data |
JP2008176612A (en) | 2007-01-19 | 2008-07-31 | Nec Electronics Corp | Multiprocessor system |
US20080256306A1 (en) | 2007-04-11 | 2008-10-16 | Craig Warner | Non-inclusive cache systems and methods |
JP2012043031A (en) | 2010-08-13 | 2012-03-01 | Fujitsu Ltd | Shared cache memory device |
JP2016091509A (en) | 2014-11-11 | 2016-05-23 | ファナック株式会社 | Multiprocessor system suited for programmable controller |
JP2017204068A (en) | 2016-05-10 | 2017-11-16 | 富士通株式会社 | Information processing device, cache memory control device, and cache memory control program |
JP2018060471A (en) | 2016-10-07 | 2018-04-12 | キヤノン株式会社 | Image processing apparatus and control method |
-
2020
- 2020-02-13 JP JP2020022672A patent/JP7474061B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010008009A1 (en) | 1999-06-21 | 2001-07-12 | Johnson Mark W. | Set-associative cache-management method with parallel and single-set sequential reads |
JP2006511832A (en) | 2002-12-20 | 2006-04-06 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Apparatus for rearranging image data for display using two replacement steps and storage of partially rearranged intermediate image data |
JP2008176612A (en) | 2007-01-19 | 2008-07-31 | Nec Electronics Corp | Multiprocessor system |
US20080256306A1 (en) | 2007-04-11 | 2008-10-16 | Craig Warner | Non-inclusive cache systems and methods |
JP2012043031A (en) | 2010-08-13 | 2012-03-01 | Fujitsu Ltd | Shared cache memory device |
JP2016091509A (en) | 2014-11-11 | 2016-05-23 | ファナック株式会社 | Multiprocessor system suited for programmable controller |
JP2017204068A (en) | 2016-05-10 | 2017-11-16 | 富士通株式会社 | Information processing device, cache memory control device, and cache memory control program |
JP2018060471A (en) | 2016-10-07 | 2018-04-12 | キヤノン株式会社 | Image processing apparatus and control method |
Also Published As
Publication number | Publication date |
---|---|
JP2020144856A (en) | 2020-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10241721B2 (en) | Image processing device and image processing method | |
US7664922B2 (en) | Data transfer arbitration apparatus and data transfer arbitration method | |
EP1880277B1 (en) | Command execution controlling apparatus, command execution instructing apparatus and command execution controlling method | |
CN111159075B (en) | Data transmission method and data transmission device | |
JP6388865B2 (en) | Processor, system and method for efficient and fast processing of interrelated two-dimensional data sets | |
CN110958362A (en) | Image correction system and method based on block table look-up | |
US10803589B2 (en) | Image processing device | |
US11409655B2 (en) | Interface apparatus, data processing apparatus, cache control method, and medium | |
WO2022016925A1 (en) | Neural network computing device | |
US11758284B2 (en) | Image processors and image processing methods | |
JP6403430B2 (en) | Image processing apparatus and image processing method | |
US20140184630A1 (en) | Optimizing image memory access | |
US9070201B2 (en) | Image processing apparatus | |
US10445851B2 (en) | Image processing apparatus and method | |
US10284743B2 (en) | Image processing apparatus and method for controlling the same | |
JP7474061B2 (en) | Interface device, data processing device, cache control method, and program | |
JP4266900B2 (en) | Image processing system | |
US10453166B2 (en) | Image processing device and image processing method | |
JP6238510B2 (en) | Buffer, buffer control method, synchronization control device, synchronization control method, image processing device, and image processing method | |
CN113254387B (en) | Data buffer, chip, robot and data buffer method | |
US20100030978A1 (en) | Memory controller, memory control method, and image processing device | |
US20130315318A1 (en) | Double register array buffer for motion compensation | |
CN110362519A (en) | Interface arrangement and interface method | |
US20130329137A1 (en) | Video Encoding in Video Analytics | |
US20070198754A1 (en) | Data transfer buffer control for performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20210103 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210113 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240126 |
|
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: 20240315 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240412 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7474061 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |