JP2001022638A - Information processing system - Google Patents

Information processing system

Info

Publication number
JP2001022638A
JP2001022638A JP11190447A JP19044799A JP2001022638A JP 2001022638 A JP2001022638 A JP 2001022638A JP 11190447 A JP11190447 A JP 11190447A JP 19044799 A JP19044799 A JP 19044799A JP 2001022638 A JP2001022638 A JP 2001022638A
Authority
JP
Japan
Prior art keywords
data
unit
address
memory
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP11190447A
Other languages
Japanese (ja)
Other versions
JP3639464B2 (en
Inventor
Yuichi Abe
雄一 安部
Yasuhiro Nakatsuka
康弘 中塚
Shigeru Matsuo
松尾  茂
Tetsuya Shimomura
哲也 下村
Manabu Jo
学 城
Jun Sato
潤 佐藤
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.)
Hitachi Ltd
Original Assignee
Hitachi 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
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP19044799A priority Critical patent/JP3639464B2/en
Publication of JP2001022638A publication Critical patent/JP2001022638A/en
Application granted granted Critical
Publication of JP3639464B2 publication Critical patent/JP3639464B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide an information processing system enabling access suitable for each of localities even when processing parts having different localities are mixed concerning memory access. SOLUTION: This information processing system is composed of four modules 0 to 3 accessible at the same time and each capable of reading/writing for the unit of 16 bytes and when storing the image data of 64 bytes composed of four packs in a unified memory capable of reading/writing for the unit of 64 bytes, in a linear access mode, four packs (0, 0), (0, 1), (0, 2) and (0, 3) are stored in the modules 0, 1, 2 and 3, respectively. At the time of tile access mode, four packs (0, 0), (1, 0), (2, 0) and (3, 0) are stored in the modules 0, 1, 2 and 3, respectively.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、複数の処理部が同
一のメモリにアクセスする情報処理システムに関し、特
に、ユニファイドメモリアーキテクチャ(UMA)を採
用したシステムにおけるメモリアクセスの高速化に関す
る。
[0001] 1. Field of the Invention [0002] The present invention relates to an information processing system in which a plurality of processing units access the same memory, and more particularly to an increase in memory access speed in a system employing a unified memory architecture (UMA).

【0002】[0002]

【従来の技術】情報処理システムにおける処理部は、そ
の行う処理によって、メモリアクセスに関して、様々な
ローカリティ(局所性)を持つ。ここでのローカリティ
とは、主に空間的な局所性を意味し、複数のデータから
構成されるデータ構造において、あるデータがアクセス
されると、その近くに配置されたデータも近い将来アク
セスされる可能性が高いという性質をいう。従来から、
処理によって異なるローカリティを有効に利用するため
の工夫がなされてきた。
2. Description of the Related Art A processing unit in an information processing system has various localities (locality) regarding memory access depending on the processing performed. The locality here mainly means spatial locality. In a data structure composed of a plurality of data, when a certain data is accessed, the data arranged near the data is also accessed in the near future. It is a property that the possibility is high. Traditionally,
Ingenuity has been devised to make effective use of different localities depending on the processing.

【0003】例えば、特開平8−297605号公報に
は、メモリ空間を小矩形であるタイルに分割し、タイル
内でリニアになるようにメモリとキャッシュのアドレス
を管理して、CPUが画像領域にアクセスする際、タイ
ル単位にキャッシュに転送する方式が開示されている。
この方式では、テクスチャマッピングのように画像に対
して2次元的なローカリティを持った処理、即ち、次の
アクセスが画像の2次元的な全ての方向に対してなされ
る可能性がある処理では、2次元のタイルを単位にキャ
ッシングしているためヒット率が向上する。
For example, Japanese Patent Application Laid-Open No. 8-297605 discloses that a memory space is divided into small rectangular tiles, and addresses of a memory and a cache are managed so as to be linear in the tiles. When accessing, a method of transferring to a cache in tile units is disclosed.
In this method, in a process such as texture mapping, which has a two-dimensional locality to an image, that is, a process in which the next access may be performed in all the two-dimensional directions of the image, The hit rate is improved because caching is performed in units of two-dimensional tiles.

【0004】一方、近年、システムLSIでは、メモリ
システムに、ユニファイドメモリ・アーキテクチャ(U
MA)が用いられている。ユニファイドメモリ(以下、
UMという)とは、従来、別々のメモリに格納されてい
たデータ(例えば、CPUの命令やデータと、表示画像
データやテクスチャ・データ等)を、統合して格納する
メモリをいう。
On the other hand, in recent years, in a system LSI, a unified memory architecture (U
MA) is used. Unified memory (hereinafter,
The term “UM” refers to a memory that integrates and stores data (eg, CPU instructions and data, display image data, texture data, and the like) conventionally stored in separate memories.

【0005】このようなUMAを採用した場合、UMに
対して、様々な処理部からアクセスが行われることにな
る。つまり、異なるローカリティを有する処理部からの
メモリアクセスが、同じUMをアクセスする場合が生じ
ることになる。
[0005] When such a UMA is adopted, various processing units access the UM. That is, memory accesses from processing units having different localities may access the same UM.

【0006】例えば、ビデオ入力した画像をUMに格納
し、この画像をテクスチャとしてテクスチャマッピング
に使用したり、或いはこの画像にフィルタを掛ける等の
処理を行うシステムを考えると、これらの各処理はメモ
リアクセスに関してそれぞれ独自のローカリティを有す
る。
For example, considering a system that stores a video input image in a UM and uses the image as a texture for texture mapping, or performs a process such as applying a filter to the image, each of these processes is performed in a memory. Each has its own locality for access.

【0007】図20は、これらの処理のローカリティを
説明する図である。
FIG. 20 is a diagram for explaining the locality of these processes.

【0008】同図に示すように、ビデオ入力は、画素デ
ータが左上から右下へと順に送られてくる。つまり、ビ
デオ入力部は、メモリアクセスに関して、一次元的な
(リニアな)なローカリティを有する。
As shown in FIG. 1, in the video input, pixel data is sent in order from the upper left to the lower right. That is, the video input unit has one-dimensional (linear) locality with respect to memory access.

【0009】これに対して、テクスチャマッピングで
は、UMに格納された画素データを、はりつけ先の形状
等に応じて、縦、横、斜め、とあらゆる方向にアクセス
するため、メモリアクセスに関して、二次元的なローカ
リティを有する。また、UMに格納された画像に対して
フィルタリングを施すフィルタリング処理でも、一般
に、注目する画素の周囲数画素を重み付け平均するた
め、メモリアクセスに関して、二次元的なローカリティ
を有する。
On the other hand, in the texture mapping, the pixel data stored in the UM is accessed in all directions such as vertical, horizontal and diagonal according to the shape of the mounting destination. Has locality. Further, even in a filtering process for performing filtering on an image stored in the UM, generally, several pixels around a pixel of interest are weighted and averaged, and thus have two-dimensional locality with respect to memory access.

【0010】この場合、UMに対しては、一次元的な
(リニアな)なローカリティを有する処理部と二次元的
なローカリティを有する処理部の両方がアクセスするこ
とになる。
In this case, both the processing unit having one-dimensional (linear) locality and the processing unit having two-dimensional locality access the UM.

【0011】リニアなローカリティを有する処理につい
ては、アドレスをリニアに管理し、リニアなアクセスや
リニアなキャッシング(バッファリング)を行えるのが
望ましい。また、二次元的なローカリティを有する処理
については、アドレスをタイル型に管理し、タイル型の
アクセスやタイル型のキャッシングを行えるのが望まし
い。
For processing having linear locality, it is desirable that addresses be managed linearly and linear access and linear caching (buffering) can be performed. In addition, for processing having two-dimensional locality, it is desirable that addresses are managed in a tile format, and tile-type access and tile-type caching can be performed.

【0012】[0012]

【発明が解決しようとする課題】前記公報記載の技術で
は、CPUの命令などリニアなローカリティを有したデ
ータを格納してあるメモリ空間についてはアドレスをリ
ニアに管理している。つまり、図21に示すように、リ
ニアアクセス(及びリニアキャッシング)を行うか、タ
イルアクセス(及びタイルキャッシング)を行うかは、
アクセスするアドレス領域によって決められており、同
一のアドレス空間に対しリニア型アクセスとタイル型ア
クセスの両方を行うことはできなかった。
In the technique described in the above publication, addresses are linearly managed in a memory space in which data having linear locality such as CPU instructions is stored. That is, as shown in FIG. 21, whether to perform linear access (and linear caching) or tile access (and tile caching)
It is determined by the address area to be accessed, and it is not possible to perform both linear access and tile access to the same address space.

【0013】例えば、タイル型アドレス領域は、次のア
クセスが2次元的な全ての方向になされる可能性が高い
ことを前提として、タイル型アクセスによってのみアク
セス可能としている。この場合、テクスチャマッピング
のように2次元的なローカリティを有する処理は、効率
的なメモリアクセスが可能で、キャッシュのヒット率の
向上も期待できる。しかし、殆ど右となりの画素が次に
アクセスされるビデオ入力処理についても、タイル型ア
ドレス領域については、タイル型アクセスによって、ア
クセスしなければならず、リニアなローカリティを有し
た処理部のアクセス効率は低下してしまう。
For example, the tile-type address area is accessible only by tile-type access on the assumption that the next access is likely to be performed in all two-dimensional directions. In this case, a process having two-dimensional locality, such as texture mapping, enables efficient memory access and can be expected to improve the cache hit rate. However, even in the video input processing in which the pixel on the right is accessed next, the tile-type address area must be accessed by tile-type access, and the access efficiency of the processing unit having linear locality is low. Will drop.

【0014】本発明の目的は、メモリアクセスに関し
て、異なったローカリティ(局所性)を持つ処理部が混
在した場合でもそれぞれのローカリティに適したメモリ
アクセスを可能にする情報処理システムを提供すること
にある。
An object of the present invention is to provide an information processing system which enables memory access suitable for each locality even when processing units having different localities (locality) coexist. .

【0015】[0015]

【課題を解決するための手段】本発明に係る第1の情報
処理システムは、複数のモジュールで構成されるメモリ
と、当該メモリに対してアクセスを行う処理部と、当該
処理部から発行されたメモリのアドレスを、アクセスモ
ードに従って、各モジュール毎の個別のアドレスに変換
するアドレス変換部と、アクセスモード及びアドレスに
従って、メモリに読み書きされるデータを並び替えるデ
ータアライナ部とを具備することを特徴とする。
A first information processing system according to the present invention comprises a memory composed of a plurality of modules, a processing unit for accessing the memory, and a processing unit issued from the processing unit. An address conversion unit that converts an address of the memory into an individual address for each module according to an access mode, and a data aligner unit that rearranges data read and written to the memory according to the access mode and the address. I do.

【0016】また、本発明に係る第2の情報処理システ
ムは、特定のサイズを有するデータ単位で読み書きする
ことが可能なモジュールを、N個備えたメモリと、当該
メモリとの間で、N個の前記データ単位からなるデータ
の読み書きを行う処理部と、当該処理部からのアクセス
要求を受けて、メモリに対してアクセスを行うメモリイ
ンタフェース部とを備える。そして、前記メモリインタ
フェース部は、前記処理部から受け取ったN個のデータ
単位のそれぞれが、異なるモジュールに格納されるよう
に、アクセスモードに応じて、各データ単位を格納する
モジュールと、各モジュールにおける格納位置を決定す
ることを特徴とする。
Further, the second information processing system according to the present invention comprises a memory having N modules capable of reading and writing data in a data unit having a specific size, and an N number of modules between the memory and the memory. A processing unit for reading and writing data consisting of the data unit described above, and a memory interface unit for accessing a memory in response to an access request from the processing unit. The memory interface unit includes: a module that stores each data unit according to an access mode such that each of the N data units received from the processing unit is stored in a different module; The storage position is determined.

【0017】また、本発明に係る第3の情報処理システ
ムは、特定のサイズを有するデータ単位で、読み書きす
ることが可能なモジュールを、N個備えたメモリと、当
該メモリとの間で、N個のデータ単位からなるデータの
読み書きを行う処理部と、当該処理部がメモリにアクセ
スする際に発行したアドレスを、アクセスモードに従っ
て、各モジュール毎の個別アドレスにアドレス変換を行
うアドレス変換部と、処理部とメモリとの間でデータの
やり取りを行う際、アクセスモードに従って、当該デー
タを構成するデータ単位の並び替えを行うデータアライ
ナ部とを備えることを特徴とする。
Further, a third information processing system according to the present invention provides a memory having N modules capable of reading and writing data in a data unit having a specific size, and a memory having N modules. A processing unit for reading and writing data consisting of a plurality of data units, and an address conversion unit for performing an address conversion to an individual address for each module according to an access mode, the address issued when the processing unit accesses the memory; When data is exchanged between the processing unit and the memory, a data aligner unit that rearranges data units constituting the data according to an access mode is provided.

【0018】この場合において、前記アドレス変換部
は、N×N個のデータ単位からなる2次元配列におい
て、同一X座標を有するデータ単位は、すべて異なるモ
ジュールに格納され、かつ、同一Y座標を有するデータ
単位は、すべて異なるモジュールに格納されるように、
アドレス変換を行い、前記データアライナ部は、前記ア
ドレス変換部の当該アドレス変換に応じて、データ単位
の並び替えを行うようにしてもよい。
In this case, in the address conversion unit, in a two-dimensional array composed of N × N data units, all data units having the same X coordinate are stored in different modules and have the same Y coordinate. Data units are stored in different modules,
Address conversion may be performed, and the data aligner may rearrange data units according to the address conversion performed by the address converter.

【0019】また、本発明に係る第4の情報処理システ
ムは、それぞれ異なったローカリティを有する処理部
と、それぞれの処理部が共通にアクセスするユニファイ
ドメモリと、各処理部が使用するデータを一時的に貯め
ておくキャッシュ部と、各処理部からのアクセス要求を
受けて、ユニファイドメモリに対してメモリアクセスを
行うメモリインタフェース部と、各処理部から通知され
るアクセスモードに応じて、ユニファイドメモリへアク
セスするためのアドレスを変換するアドレス変換部と、
前記アクセスモードに応じて、ユニファイドメモリとや
り取りするデータを並べ替えるデータアライナ部とから
構成されることを特徴とする。
Further, the fourth information processing system according to the present invention comprises a processing unit having different localities, a unified memory commonly accessed by each processing unit, and a temporary storage of data used by each processing unit. A cache unit for storing data, a memory interface unit for performing memory access to a unified memory in response to an access request from each processing unit, and a unified memory according to an access mode notified from each processing unit. An address conversion unit for converting an address for accessing the memory;
It is characterized by comprising a unified memory and a data aligner for rearranging data to be exchanged according to the access mode.

【0020】この場合において、前記ユニファイドメモ
リを複数のモジュールで構成し、前記アドレス変換部
は、当該各モジュール内に設けるようにしてもよい。ま
た、前記アドレス変換部は、前記メモリインタフェース
部内に設けるようにしてもよい。
In this case, the unified memory may be composed of a plurality of modules, and the address translator may be provided in each of the modules. Further, the address conversion unit may be provided in the memory interface unit.

【0021】また、本発明に係る第5の情報処理システ
ムは、それぞれ異なったローカリティを有する処理部
と、それぞれの処理部が共通にアクセスするユニファイ
ドメモリと、各処理部が使用するデータを一時的に貯め
ておくキャッシュ部と、各処理部からのアクセス要求を
受けて、ユニファイドメモリに対してメモリアクセスを
行うメモリインタフェース部と、各処理部から通知され
るアクセスモードに応じて、ユニファイドメモリへアク
セスするためのアドレスを変換するアドレス変換部と、
前記処理部と前記キャッシュ部との間に位置し、前記ア
クセスモードに応じて、前記処理部が読み出すデータの
選択を行うデータ選択部とから構成されることを特徴と
する。
Further, a fifth information processing system according to the present invention comprises a processing unit having different localities, a unified memory commonly accessed by each processing unit, and a temporary storage of data used by each processing unit. A cache unit for storing data, a memory interface unit for performing memory access to a unified memory in response to an access request from each processing unit, and a unified memory according to an access mode notified from each processing unit. An address conversion unit for converting an address for accessing the memory;
A data selection unit that is located between the processing unit and the cache unit and selects data to be read by the processing unit according to the access mode.

【0022】なお、本発明に係る情報処理システムは、
例えば、通常の計算機システムとして、または、1チッ
プ構成のシステムLSIとして実装される。
Note that the information processing system according to the present invention
For example, it is implemented as a normal computer system or as a one-chip system LSI.

【0023】また、前記処理部には、例えば、CPU、
ビデオ入力部、ビデオ出力部、テクスチャマッピング
部、フィルタリング部などが該当する。
The processing unit includes, for example, a CPU,
A video input unit, a video output unit, a texture mapping unit, a filtering unit, and the like correspond.

【0024】[0024]

【発明の実施の形態】以下、図面を参照しつつ、本発明
の実施の形態について詳細に説明する。
Embodiments of the present invention will be described below in detail with reference to the drawings.

【0025】図1は、本発明を適用したシステムLSI
の構成を示す図である。本システムLSIは、例えば、
1チップで構成される。
FIG. 1 shows a system LSI to which the present invention is applied.
FIG. 3 is a diagram showing the configuration of FIG. This system LSI is, for example,
It is composed of one chip.

【0026】同図に示すように、本システムLSIは、
CPU100と、ビデオ入力部110と、テクスチャマ
ッピング部/フィルタリング部120と、コネクタ部1
01、111、121と、メモリインタフェース部13
0と、ユニファイドメモリ(以下、UMという)140
とを備える。
As shown in FIG.
CPU 100, video input unit 110, texture mapping unit / filtering unit 120, connector unit 1
01, 111, 121 and the memory interface unit 13
0 and a unified memory (hereinafter referred to as UM) 140
And

【0027】CPU100は、コネクタ部101に接続
され、ビデオ入力部110は、コネクタ部111に接続
され、テクスチャマッピング部/フィルタリング部12
0は、コネクタ121に接続されている。
The CPU 100 is connected to the connector unit 101, the video input unit 110 is connected to the connector unit 111, and the texture mapping unit / filtering unit 12
0 is connected to the connector 121.

【0028】コネクタ部101、111、121および
メモリインタフェース部130は、それぞれ、メモリバ
ス150に接続されている。ここでは、メモリバス15
0のデータ幅は、512ビットとする。また、各コネク
タ部101、111、121から出力されるアクセスモ
ード選択信号が、メモリインタフェース部130に入力
されている。
The connectors 101, 111, 121 and the memory interface 130 are connected to the memory bus 150, respectively. Here, the memory bus 15
The data width of 0 is 512 bits. The access mode selection signal output from each of the connector units 101, 111, and 121 is input to the memory interface unit 130.

【0029】また、メモリインタフェース部130は、
UM140にも接続されている。
Further, the memory interface unit 130
It is also connected to UM140.

【0030】CPU100、ビデオ入力部110、テク
スチャマッピング部/フィルタリング部120は、それ
ぞれ、異なる処理を行う処理部である。なお、テクスチ
ャマッピング部とフィルタリング部は、ともに二次元的
なローカリティを有しているため、代表して一つの処理
部として示してある。
The CPU 100, the video input unit 110, and the texture mapping / filtering unit 120 are processing units that perform different processes. Since both the texture mapping unit and the filtering unit have two-dimensional locality, they are shown as one processing unit as a representative.

【0031】コネクタ部101、111、121は、各
処理部とメモリバス150との間のインターフェースを
とる機能ブロックである。コネクタ部101は、キャッ
シュ102を備え、コネクタ部111は、ライトバッフ
ァ(以下、Wバッファという)112を備え、コネクタ
部121は、キャッシュ122を備える。
The connector units 101, 111, and 121 are functional blocks that provide an interface between each processing unit and the memory bus 150. The connector unit 101 includes a cache 102, the connector unit 111 includes a write buffer (hereinafter, referred to as a W buffer) 112, and the connector unit 121 includes a cache 122.

【0032】キャッシュ102は、CPU100が最近
アクセスしたデータを保持する高速メモリである。例え
ば、CPU100がメモリ・リードを行う際、アクセス
対象データがキャッシュ102内にあれば、そのデータ
がCPU100に渡される。一方、アクセス対象データ
がキャッシュ102内になければ、メモリバス150お
よびメモリインタフェース部130を介して、UM14
0からアクセス対象データを含む1キャッシュライン分
のデータ(ここでは、512バイトのデータとする)が
読み出され、アクセス対象データがCPU100に渡さ
れると共に、読み出されたキャッシュラインデータがキ
ャッシュ102に保持される。
The cache 102 is a high-speed memory for holding data recently accessed by the CPU 100. For example, when the CPU 100 performs a memory read, if the data to be accessed is in the cache 102, the data is passed to the CPU 100. On the other hand, if the data to be accessed is not in the cache 102, the UM 14 via the memory bus 150 and the memory interface unit 130.
From 0, data of one cache line including data to be accessed (here, 512-byte data) is read, and the data to be accessed is passed to the CPU 100, and the read cache line data is stored in the cache 102. Will be retained.

【0033】Wバッファ112は、ビデオ入力部110
から、例えば、画素単位で入力されるデータを順次格納
し、一杯になった時点で、Wバッファ112内のデータ
を、メモリバス150およびメモリインタフェース部1
30を介して、UM140に書き込む。Wバッファ11
2は、ビデオ入力部110とコネクタ部111との間の
データバス幅と、メモリバス150のデータバス幅との
間の差を吸収し、メモリバス150の使用回数を減らす
ためのバッファである。つまり、ビデオ入力データをU
M140に格納する場合、各画素データごとにメモリア
クセスを行っていたのでは、メモリバス150の利用頻
度が非常に高くなるので、複数の画素データをWバッフ
ァにためておいて、あるまとまった単位(ここでは、5
12バイトとする)で、UM140に書き込みを行う。
The W buffer 112 is used for the video input unit 110
For example, data input in units of pixels are sequentially stored, and when the data is full, the data in the W buffer 112 is transferred to the memory bus 150 and the memory interface unit 1.
30 and is written to the UM 140. W buffer 11
Reference numeral 2 denotes a buffer for absorbing the difference between the data bus width between the video input unit 110 and the connector unit 111 and the data bus width of the memory bus 150 and reducing the number of times the memory bus 150 is used. That is, the video input data is
In the case of storing the data in the M140, if the memory access is performed for each pixel data, the frequency of use of the memory bus 150 becomes extremely high. (Here, 5
Write to the UM 140.

【0034】キャッシュ122は、テクスチャマッピン
グ部/フィルタリング部120から、例えば、画素単位
でのデータアクセス要求があった場合に、アクセス対象
データがキャッシュ122に既に読み込まれていれば、
キャッシュ122上のアクセス対象データをテクスチャ
マッピング部/フィルタリング部120に渡す。一方、
アクセス対象データがキャッシュ122上になければ、
メモリバス150およびメモリインタフェース部130
を介して、UM140にアクセスを行い、アクセス対象
データを含む1キャッシュライン分のデータ(ここで
は、512ビットのデータとする)を読み出し、要求さ
れたデータをテクスチャマッピング部/フィルタリング
部120に渡すと共に、読みだされたキャッシュライン
データを保持する。
For example, when there is a data access request in pixel units from the texture mapping unit / filtering unit 120, if the data to be accessed has already been read into the cache 122,
The access target data in the cache 122 is passed to the texture mapping unit / filtering unit 120. on the other hand,
If the access target data is not on the cache 122,
Memory bus 150 and memory interface unit 130
To access the UM 140 via the, read out one cache line of data (here, 512-bit data) including the data to be accessed, pass the requested data to the texture mapping unit / filtering unit 120, and , And holds the read cache line data.

【0035】メモリインタフェース部130は、各処理
部100、110、120からのアクセス要求を調停
し、メモリアクセス要求を出している処理部の中で、実
際にメモリバス150を使うことができる処理部を決定
する。
The memory interface unit arbitrates access requests from the processing units 100, 110, and 120, and among the processing units that issue memory access requests, a processing unit that can actually use the memory bus 150. To determine.

【0036】調停の結果、アクセスを許可された処理部
は、メモリバス150を通してメモリインタフェース部
130へアドレスとアクセスモード選択信号を送出し、
データの授受を行う。
As a result of the arbitration, the processing unit permitted to access sends an address and an access mode selection signal to the memory interface unit 130 through the memory bus 150,
Send and receive data.

【0037】メモリインタフェース部130は、受け取
ったアドレス等に従って、所定のタイミングでUM14
0にアクセスを行い、UM140に対してデータの読み
書きを行う。
The memory interface unit 130 operates the UM 14 at a predetermined timing in accordance with the received address and the like.
0, and read / write data from / to the UM 140.

【0038】メモリインターフェース部130は、アド
レス変換部131とデータアライナ部132とを備え
る。
The memory interface unit 130 includes an address conversion unit 131 and a data aligner unit 132.

【0039】アドレス変換部131は、メモリバス15
0からメモリインタフェース部130が受け取ったアド
レスを、アクセスモード選択信号に基づいて、UM14
0の物理アドレスへ変換する。メモリインタフェース部
130は、この物理アドレスを用いて、UM140とデ
ータの授受を行う。
The address conversion unit 131 is connected to the memory bus 15
0 to the address received by the memory interface unit 130 based on the access mode selection signal.
Convert to a physical address of 0. The memory interface unit 130 exchanges data with the UM 140 using the physical address.

【0040】メモリインタフェース部130がUM14
0とデータの授受を行う際、データアライナ部132
は、必要に応じて、データを所定のデータ単位で並びか
えて、メモリバス150上のデータ配列とUM140上
のデータ配列との間の変換を行う。
When the memory interface unit 130 is connected to the UM 14
When exchanging data with 0, the data aligner unit 132
Performs a conversion between a data array on the memory bus 150 and a data array on the UM 140 by rearranging the data in a predetermined data unit as necessary.

【0041】次に、UM140の構成について説明す
る。ここでは、UM140をDRAMを用いて構成した
場合について説明する。
Next, the configuration of the UM 140 will be described. Here, a case where the UM 140 is configured using a DRAM will be described.

【0042】図2は、UM140の構成を示す図であ
る。
FIG. 2 is a diagram showing the configuration of the UM 140.

【0043】同図に示すように、UM140は、2LM
の独立したモジュール500で構成される。例えば、出
力の場合、各モジュール500からは、2LWバイトのデ
ータが出力され、各モジュール500からの出力データ
が2LM個分集まって、全体で、UM140から出力され
る2(LW+LM)バイトのデータを構成する。
As shown in the figure, the UM 140 is composed of 2 LM independent modules 500. For example, in the case of output, 2 LW bytes of data are output from each module 500, and 2 LM output data from each module 500 are collected, and 2 (LW + LM) output from the UM 140 as a whole Construct byte data.

【0044】また、各モジュール500は、バンクセレ
クタ510、および、2LB個の独立したバンク520を
備える。バンクセレクタ510は、LBビットのバンクア
ドレス(Bアドレス)に基づいて、モジュール500の
出力として、2LB個のバンクのうちのいずれかの出力を
選択する。
Each module 500 includes a bank selector 510 and 2 LB independent banks 520. The bank selector 510 selects one of the 2 LB banks as the output of the module 500 based on the LB bit bank address (B address).

【0045】また、各バンク520は、ローセレクタ5
21と、カラムセレクタ522と、センスアンプ523
と、2LR×2LC個のメモリセル524(1メモリセル
は、2LWバイト)とを備える。
Each bank 520 includes a row selector 5
21, a column selector 522, and a sense amplifier 523
And 2 LR × 2 LC memory cells 524 (one memory cell is 2 LW bytes).

【0046】ローセレクタ521は、LRビットのローア
ドレス(Rアドレス)に基づいて、2LR個の行データ
(2(LC+LW)バイトのデータ)の中から、1つの行デー
タを選択して、センスアンプ523に出力する。
The row selector 521 selects one row data from 2 LR row data (2 (LC + LW) byte data) based on the LR bit row address (R address). , To the sense amplifier 523.

【0047】センスアンプ523は、ローセレクタ52
1から出力された2(LC+LW)バイトの行データを検知・
増幅して、保持する。
The sense amplifier 523 is connected to the row selector 52
Detects 2 (LC + LW) byte row data output from 1
Amplify and retain.

【0048】カラムセレクタ522は、LCビットのカラ
ムアドレス(Cアドレス)に基づいて、センスアンプ5
23に格納されている2LC個のメモリセル・データの内
の1つを選択し、バンク520からの出力として、2LW
バイトのデータを出力する。
The column selector 522 detects the sense amplifier 5 based on the LC bit column address (C address).
23, one of the 2 LC memory cell data stored in the memory cell 23 is selected, and as an output from the bank 520, 2 LW
Output byte data.

【0049】なお、図2に示したUM140では、すべ
てのモジュール500からの出力を平行にUM140外
部に出力しているが、各モジュール500からの出力を
入力とするセレクタを更に設け、別途供給されるモジュ
ールアドレスに基づいて、一部のモジュールからの出力
のみを、UM140の出力とするようにしてもよい。例
えば、UM140に4つのモジュール0〜3がある場
合、1ビットのモジュールアドレス(Mアドレス)が
「0」のとき、モジュール0および1の出力を出力し、
1ビットのモジュールアドレスが「1」のとき、モジュ
ール2および3の出力を出力するようにしてもよい。
In the UM 140 shown in FIG. 2, the outputs from all the modules 500 are output in parallel to the outside of the UM 140. However, a selector which receives the output from each module 500 as an input is further provided, and is separately supplied. Only the outputs from some of the modules may be output from the UM 140 based on the module address. For example, when there are four modules 0 to 3 in the UM 140, when the 1-bit module address (M address) is “0”, the outputs of the modules 0 and 1 are output,
When the one-bit module address is “1”, the outputs of the modules 2 and 3 may be output.

【0050】次に、UM140の動作について説明す
る。これは、一般的なマルチバンク、マルチモジュール
構成のシンクロナスDRAMと同様の動作である。
Next, the operation of the UM 140 will be described. This is the same operation as a general multi-bank, multi-module synchronous DRAM.

【0051】UM140には、メモリインタフェース部
130から、バンクアドレス、ローアドレス、カラムア
ドレスなどのアドレスと、リード(読み出し)、ライト
(書込み)を表わすコマンドが入力される。なお、ライ
トの場合は、書き込むデータも入力される。
Addresses such as a bank address, a row address, and a column address and commands representing read (read) and write (write) are input from the memory interface unit 130 to the UM 140. In the case of writing, data to be written is also input.

【0052】まず、リードの際の動作について説明す
る。
First, the operation at the time of reading will be described.

【0053】各バンク520では、バンクアドレスによ
って自分が指定されると、ローアドレスに対応する2
(LC+LW)バイトの行データが、センスアンプ523に読
み出される。
In each bank 520, when the bank address is specified by the bank address, 2 corresponding to the row address
The (LC + LW) byte row data is read out to the sense amplifier 523.

【0054】センスアンプ523に読み出された行デー
タは、カラムセレクタ522に入力される。カラムセレ
クタ522は、カラムアドレスに基づいて、センスアン
プ523に読みだされた行データの中から、2LWバイト
のデータを一つ選択し、バンク520から出力する。
The row data read by the sense amplifier 523 is input to the column selector 522. The column selector 522 selects one 2 LW byte data from the row data read by the sense amplifier 523 based on the column address, and outputs the data from the bank 520.

【0055】各バンク520から出力された2LWバイト
のデータは、バンクセレクタ510に入力される。バン
クセレクタ510は、バンクアドレスに基づいて、2LB
個のバンク出力のうちから1つを選択して、モジュール
出力として出力する。
The data of 2 LW bytes output from each bank 520 is input to the bank selector 510. The bank selector 510 determines 2 LB based on the bank address.
One of the bank outputs is selected and output as a module output.

【0056】前述したように、各モジュール500から
出力された2LM個の2LWバイトのデータ、計2(LM+LW)
バイトがUM140より出力される。UM140から読
み出されたデータは、メモリインタフェース部130に
渡される。
As described above, 2 LM 2 LW byte data output from each module 500, that is, a total of 2 (LM + LW)
The bytes are output from UM140. The data read from the UM 140 is passed to the memory interface unit 130.

【0057】なお、センスアンプ523に行データを読
み出すには、所定のサイクル数(例えば、6サイクル)
が必要であるが、センスアンプ523に既に読み出され
ているデータをアクセスする場合は、メモリセル524
から行データを読み出す必要はないので、高速に(例え
ば、2サイクルで)アクセスすることができる。従っ
て、ローカリティの高いデータは、同時にセンスアンプ
523に読み出されるようにすることが望ましい。
To read the row data to the sense amplifier 523, a predetermined number of cycles (for example, 6 cycles)
Is required, but when accessing data that has already been read to the sense amplifier 523, the memory cell 524
Since it is not necessary to read the row data from, access can be made at high speed (for example, in two cycles). Therefore, it is desirable that data having high locality be read out to the sense amplifier 523 at the same time.

【0058】次に、ライトの際の動作について説明す
る。
Next, the operation at the time of writing will be described.

【0059】各バンク520では、バンクアドレスで自
分が指定されると、ローアドレスに対応する2(LC+LW)
バイトの行データがセンスアンプ523に送られる。
In each bank 520, when the bank address is designated by the bank address, 2 (LC + LW) corresponding to the row address
The byte row data is sent to the sense amplifier 523.

【0060】UM140に入力された書込みデータは、
各モジュール500に入力され、バンクアドレスにより
指定されたバンクのセンスアンプ123上にある行デー
タのうち、カラムアドレスにより選択された2LWバイト
のデータが書込みデータにより書き換えられる。
The write data input to the UM 140 is
Of the row data input to each module 500 and located on the sense amplifier 123 of the bank specified by the bank address, 2 LW bytes of data selected by the column address are rewritten by the write data.

【0061】ライトの場合も、リードの場合と同様に、
各バンクのセンスアンプ123に既に読み出されている
データは高速に(例えば、1サイクルで)アクセスする
ことができるので、ローカリティの高いデータは同時に
センスアンプに読み出されるようにすることが望まし
い。
In the case of writing, as in the case of reading,
Since data that has already been read to the sense amplifier 123 of each bank can be accessed at high speed (for example, in one cycle), it is desirable that data with high locality be read to the sense amplifier at the same time.

【0062】以下では、UM140の構成として、LM=
2、LB=4、LR=8、LC=4、LW=4の場合を考える。すなわ
ち、UM140は、4(=22)個の独立したモジュー
ル500で構成される。また、各モジュール500は、
16(=24)個のバンク520を備え、各バンク52
0は、28×24個のメモリセル524を備える。また、
各メモリセル524は、24バイトのデータを格納す
る。この場合、各モジュール500からは、それぞれ、
16(=24)バイトのデータが出力されるので、UM
140からの出力は、4×16バイト=64バイト(=
512ビット)となる。
In the following, LM =
Consider the case of 2, LB = 4, LR = 8, LC = 4, LW = 4. That is, the UM 140 includes four (= 2 2 ) independent modules 500. Also, each module 500
There are 16 (= 2 4 ) banks 520, and each bank 52
0 is provided with 2 8 × 2 4 memory cells 524. Also,
Each memory cell 524 stores a 2 4 bytes of data. In this case, from each module 500,
Since 16 (= 2 4 ) bytes of data are output, UM
The output from 140 is 4 × 16 bytes = 64 bytes (=
512 bits).

【0063】次に、本実施形態で扱われる画像について
説明する。
Next, an image handled in this embodiment will be described.

【0064】図3は、本実施形態で扱われる512×5
12画素サイズの画像の階層構造を示す図である。
FIG. 3 is a diagram showing 512 × 5 pixels handled in this embodiment.
FIG. 2 is a diagram illustrating a hierarchical structure of a 12-pixel size image.

【0065】画像データは、この階層的な区分に対応し
た形でメモリ上に格納される。実際にはこの階層とメモ
リ上のアドレスが対応することになり、この対応をアド
レスマッピングという。
The image data is stored on the memory in a form corresponding to the hierarchical division. Actually, this hierarchy corresponds to the address on the memory, and this correspondence is called address mapping.

【0066】同図に示すように、本実施形態において
は、512×512画素の画像1枚は、8×32のブロ
ックから構成されるものとする。また、各ブロックは、
4×4のセルから構成されるものとする。
As shown in the figure, in the present embodiment, one image of 512 × 512 pixels is composed of 8 × 32 blocks. Also, each block is
It is assumed that it is composed of 4 × 4 cells.

【0067】そして、各セルは、16×4の画素から構
成される。更に、各画素は、R(赤)、G(緑)、B
(青)、α(透明度)各1バイトの4成分から構成され
る。すなわち、1画素は、4バイト=32ビットのデー
タから構成される。従って、512×512画素の画像
1枚は、1Mバイトのデータで構成される。
Each cell is composed of 16 × 4 pixels. Further, each pixel has R (red), G (green), B
(Blue) and α (transparency) are composed of four components of 1 byte each. That is, one pixel is composed of data of 4 bytes = 32 bits. Therefore, one image of 512 × 512 pixels is composed of 1 Mbytes of data.

【0068】次に、前述したような画像データをUM1
40に格納する際のアドレスマッピングについて説明す
る。
Next, the image data as described above is stored in the UM1
The address mapping when the data is stored in the storage 40 will be described.

【0069】図4は、画像データをUM140に格納す
る際のアドレスマッピングの例を示す図である。
FIG. 4 is a diagram showing an example of address mapping when image data is stored in the UM 140.

【0070】ここでは、UM140のうち、4Mバイト
のメモリ領域(以下、画像領域という)が、画像データ
の格納に使われるものとする。この場合、画像領域は、
22ビットのアドレスによって、アクセスされる。
Here, it is assumed that a 4-Mbyte memory area (hereinafter, referred to as an image area) of the UM 140 is used for storing image data. In this case, the image area is
It is accessed by a 22-bit address.

【0071】図4の例は、この22ビットのアドレス
と、UM140における、2ビットのモジュールアドレ
ス(M[1:0])、4ビットのバンクアドレス(B[3:0])、
8ビットのローアドレス(R[7:0])、4ビットのカラム
アドレス(C[3:0])、4ビットのバイトアドレス(W[3:
0])との間のアドレスマッピングを示している。
In the example of FIG. 4, the 22-bit address, the 2-bit module address (M [1: 0]), the 4-bit bank address (B [3: 0]) in the UM 140,
8-bit row address (R [7: 0]), 4-bit column address (C [3: 0]), 4-bit byte address (W [3:
0]).

【0072】前述したように、512×512画素の画
像1枚は、1Mバイトなので、先頭の2ビットは、画像
領域内でアクセスすべき画像の先頭アドレスを表わして
いる。この2ビットは、B[3]、B[2]として使われる。こ
こで、B[2]という記述は、バンクアドレスの第2ビット
を表わす。ただし、Bの最下位ビットは、B[0]としてい
る。
As described above, since one image of 512 × 512 pixels is 1 Mbyte, the first two bits represent the start address of the image to be accessed in the image area. These two bits are used as B [3] and B [2]. Here, the description B [2] represents the second bit of the bank address. However, the least significant bit of B is B [0].

【0073】次の8ビットは、最上位2ビットで指定さ
れた画像内でアクセスすべきブロックの先頭アドレスを
示している。ここで、上位5ビットは、画像の縦方向の
アドレスYで、下位3ビットは、画像の横方向のアドレ
スXである。この8ビットは、ローアドレスR[7]〜R
[0]として使われる。
The next 8 bits indicate the start address of the block to be accessed in the image specified by the most significant 2 bits. Here, the upper 5 bits are the vertical address Y of the image, and the lower 3 bits are the horizontal address X of the image. These 8 bits correspond to the row address R [7] to R
Used as [0].

【0074】同様に、その次の4ビットは、指定された
ブロック内でアクセスすべきセルの先頭アドレスを示し
ている。ここで、上位2ビットは、縦方向のアドレスY
で、下位2ビットは、横方向のアドレスXである。この
4ビットは、B[1]、C[3]、B[0]、C[2]として使われ
る。
Similarly, the next four bits indicate the head address of the cell to be accessed in the designated block. Here, the upper two bits are the vertical address Y
The lower two bits are a horizontal address X. These 4 bits are used as B [1], C [3], B [0], and C [2].

【0075】最後の8ビットは、指定されたセル内部の
アドレスであるが、このうち上位2ビットは、セル内の
ライン(UM140から出力される64バイトのデータ
の単位)の先頭アドレスである。また、残り6ビット
は、ライン内のバイトアドレスであるが、UM140に
対しては、ライン単位でデータがアクセスされるので、
この6ビットのライン内バイトアドレスは、UM140
に入力する必要はない。
The last 8 bits are the address inside the designated cell. Of these, the upper 2 bits are the head address of the line (the unit of 64-byte data output from the UM 140) in the cell. The remaining 6 bits are byte addresses in the line. However, since data is accessed for the UM 140 in line units,
This 6-bit in-line byte address is UM140
You do not need to enter

【0076】次に、図4に示したアドレスマッピング時
のセル内の画素のアドレス割付について具体的に説明す
る。
Next, the address assignment of the pixels in the cell at the time of the address mapping shown in FIG. 4 will be specifically described.

【0077】図5は、一つのセル(16×4画素)内の
画像データをメモリに格納する際の格納方式を説明する
図である。
FIG. 5 is a diagram for explaining a storage method when image data in one cell (16 × 4 pixels) is stored in a memory.

【0078】同図に示すように、セル内の各画素には、
横方向(X方向)4画素のかたまり毎に、2次元のアド
レスが付与されている。ここでは、第一座標をY、第二
座標をXとして(Y,X)の形で記す。以下、この2次
元のアドレスが付与された4画素のかたまりを、パック
と呼ぶ。
As shown in the figure, each pixel in the cell has:
A two-dimensional address is assigned to each group of four pixels in the horizontal direction (X direction). Here, the first coordinate is represented by Y and the second coordinate is represented by X in the form of (Y, X). Hereinafter, a set of four pixels to which the two-dimensional address is assigned is referred to as a pack.

【0079】パック(0,0)〜(3,3)が、(0,
0)〜(0,3),(1,0)〜(1,3),(2,
0)〜(2,3),(3,0)〜(3,3)の順に、U
M140に格納されているとすると、図4に示したアド
レス割付においては、同一のX座標を持つ4つのパック
が同一モジュール(モジュールアドレス:X)に格納さ
れる。
The packs (0,0) to (3,3) are (0,0,0)
0) to (0,3), (1,0) to (1,3), (2,
0) to (2,3), (3,0) to (3,3)
Assuming that the packs are stored in M140, four packs having the same X coordinate are stored in the same module (module address: X) in the address assignment shown in FIG.

【0080】すなわち、パック(0,0)、(1,
0)、(2,0)、(3,0)がモジュール0に格納さ
れ、パック(0,1)、(1,1)、(2,1)、
(3,1)がモジュール1に格納され、パック(0,
2)、(1,2)、(2,2)、(3,2)がモジュー
ル2に格納され、パック(0,3)、(1,3)、
(2,3)、(3,3)がモジュール3に格納される。
That is, packs (0, 0), (1,
0), (2,0), (3,0) are stored in module 0, and packs (0,1), (1,1), (2,1),
(3, 1) is stored in the module 1 and the pack (0,
2), (1,2), (2,2), (3,2) are stored in the module 2, and packs (0,3), (1,3),
(2, 3) and (3, 3) are stored in the module 3.

【0081】この時、同一のY座標を持つ4つのパック
(例えば、パック(0,0)、(0,1)、(0,
2)、(0,3))は別々のモジュール500に格納さ
れているので、横並びの16画素に対しては同時にアク
セスできる。しかし、前述したように同一のX座標を持
つ4つのパック(例えば、パック(0,0)、(1,
0)、(2,0)、(3,0))は同一のモジュール5
00に格納されているので、4×4画素に対しては同時
にアクセスができない。つまり、この場合は、リニアア
クセスには適しているが、タイルアクセスには適してい
ない。
At this time, four packs having the same Y coordinate (for example, packs (0, 0), (0, 1), (0,
Since (2) and (0, 3)) are stored in separate modules 500, 16 pixels arranged side by side can be accessed simultaneously. However, as described above, four packs having the same X coordinate (for example, packs (0, 0), (1,
0), (2,0), (3,0)) are the same module 5
00, the 4 × 4 pixels cannot be accessed simultaneously. That is, in this case, it is suitable for linear access but not suitable for tile access.

【0082】一方、パック(0,0)〜(3,3)が、
(0,0)〜(3,0),(0,1)〜(3,3),
(0,2)〜(3,2),(0,3)〜(3,3)の順
に、UM140に格納されているとすると、図4に示し
たアドレス割付においては、同一のY座標を持つ4つの
パックが同一モジュール(モジュールアドレス:Y)に
格納される。この場合、タイルアクセスには適している
が、リニアアクセスには適していない。
On the other hand, packs (0,0) to (3,3)
(0,0) to (3,0), (0,1) to (3,3),
Assuming that the data are stored in the UM 140 in the order of (0, 2) to (3, 2) and (0, 3) to (3, 3), the same Y coordinate is assigned in the address assignment shown in FIG. The four packs are stored in the same module (module address: Y). In this case, it is suitable for tile access but not for linear access.

【0083】リニアアクセスとタイルアクセスの両方に
適したものにするためには、「同一セル内において、同
一X座標を有するパックは、すべて異なるモジュールに
格納されており、かつ、同一Y座標を有するパックは、
すべて異なるモジュールに格納されている」必要があ
る。
To make it suitable for both linear access and tile access, "packs having the same X coordinate in the same cell are all stored in different modules and have the same Y coordinate. The pack is
All must be stored in different modules. "

【0084】図6は、このような条件を満たした格納方
式を示す図である。同図において、縦方向(Y方向)に
並んだ4つのパックは、同一モジュールに格納される。
すなわち、パック(0,0)、(1,3)、(2,
2)、(3,1)は、モジュール0に格納され、パック
(0,1)、(1,0)、(2,3)、(3,2)は、
モジュール1に格納され、パック(0,2)、(1,
1)、(2,0)、(3,3)は、モジュール2に格納
され、パック(0,3)、(1,2)、(2,1)、
(3,0)は、モジュール3に格納される。
FIG. 6 is a diagram showing a storage method satisfying such a condition. In the figure, four packs arranged in the vertical direction (Y direction) are stored in the same module.
That is, packs (0,0), (1,3), (2,
2) and (3,1) are stored in module 0, and packs (0,1), (1,0), (2,3), (3,2) are
Packs (0, 2), (1,
1), (2,0), (3,3) are stored in module 2 and packed (0,3), (1,2), (2,1),
(3, 0) is stored in the module 3.

【0085】図6では、第0行目(Y=0)のパック
は、X座標が0,1,2,3と並んでいるが、第1行目
(Y=1)のパックは、X座標が0,1,2,3を一つ
ずらした形、つまり、3,0,1,2と並んでいる。同
様に第2行目、第3行目も、さらに一つづつずらした形
で並んでいる。
In FIG. 6, the packs on the 0th row (Y = 0) have the X coordinates 0, 1, 2, 3, while the packs on the 1st row (Y = 1) have the X coordinates. The coordinates are shifted by 0, 1, 2, 3 by one, that is, 3, 0, 1, 2, and 3. Similarly, the second and third rows are further arranged one by one.

【0086】このような形でパックを格納すれば、「同
一セル内において、同一X座標を有するパックは、すべ
て異なるモジュールに格納され、同一Y座標を有するパ
ックは、すべて異なるモジュールに格納される」という
条件を満たし、リニアアクセスとタイルアクセスを両立
させることができる。
When packs are stored in this manner, "packs having the same X coordinate in the same cell are all stored in different modules, and packs having the same Y coordinate are all stored in different modules. Satisfies the condition, and can achieve both linear access and tile access.

【0087】図7は、このような形でパックを格納する
場合のアドレス割付を示す図である。
FIG. 7 is a diagram showing address allocation when storing a pack in such a form.

【0088】同図に示すように、図4とほぼ同様のアド
レス割付になっているが、セル内のライン選択アドレス
が直接的にカラムアドレスとはなっておらず、新たな2
ビットのライン選択アドレスL[1],L[0]に代わっている
点が異なる。これはラインを選択する際にモジュール毎
に異なるカラムアドレスを指定する必要があるからであ
る。
As shown in the figure, although the address assignment is almost the same as that of FIG. 4, the line selection address in the cell is not directly a column address, and a new 2 is selected.
The difference is that bit line selection addresses L [1] and L [0] are replaced. This is because it is necessary to specify a different column address for each module when selecting a line.

【0089】したがって、図7に示すアドレスは、最終
的にメモリセルをアクセスするまでにアドレス変換する
必要がある。また、アクセスモードがリニアアクセスモ
ードかタイルアクセスモードかによって、アドレス変換
の方法が異なるため、アドレス変換する際にはアクセス
モード選択信号を考慮する必要がある。アドレス変換部
131が、このアドレス変換を行う。
Therefore, the address shown in FIG. 7 needs to be converted before the memory cell is finally accessed. Further, since the address conversion method differs depending on whether the access mode is the linear access mode or the tile access mode, it is necessary to consider the access mode selection signal when performing the address conversion. The address conversion unit 131 performs this address conversion.

【0090】さらに、このようにずらした形で格納され
たデータは、処理部でアクセスする際のデータ並びとは
異なるため、処理部にデータを渡す前に、UM140か
ら読み出したデータの並び替えをする必要がある。デー
タアライナ部132が、このデータの並び替えを行う。
Further, since the data stored in such a shifted form is different from the data arrangement at the time of access by the processing unit, the data read from the UM 140 must be rearranged before the data is passed to the processing unit. There is a need to. The data aligner 132 rearranges the data.

【0091】次に、このアドレス変換とデータの並び替
えの方法について説明する。
Next, a method of the address conversion and the data rearrangement will be described.

【0092】図8は、アクセスモードがリニアアクセス
モードの場合の入力アドレス(ライン選択アドレス)に
対するアドレス変換結果およびデータアライメントの対
応を示す図である。
FIG. 8 is a diagram showing the correspondence between the address conversion result and the data alignment for the input address (line selection address) when the access mode is the linear access mode.

【0093】図8に示した表において、1列目はライン
選択アドレスの値、2列目はモジュール番号(モジュー
ルアドレス)を示しており、これらの組み合わせに対し
て、カラムアドレス(3列目)、UM140の各モジュ
ールに格納されているパックの座標(4列目)、画像本
来の画素の並びになるよう並び替えたときのパックの座
標(5列目)、及び、パックの並びを正しく並び替える
ための置換(6列目)を示している。
In the table shown in FIG. 8, the first column shows the value of the line selection address, the second column shows the module number (module address), and the column address (third column) , The coordinates of the packs stored in each module of the UM 140 (fourth column), the coordinates of the packs (fifth column) when the original pixels are rearranged so as to be arranged, and the arrangement of the packs are rearranged correctly. (The sixth column).

【0094】6列目にあるS1、S2の記号は、特定の
置換を表す。S1は、(0,1,2,3)という配列
を、(1,2,3,0)という配列へと変換する巡回置
換を示し、S2は、(0,1,2,3)という配列を
(2,3,0,1)という配列へと変換する巡回置換、
即ち、置換S1を2度施した置換S1*S1を示す。ま
た、1は、配列を変化させない恒等置換を示す。
The symbols of S1 and S2 in the sixth column represent a specific substitution. S1 indicates a cyclic permutation for converting an array (0,1,2,3) into an array (1,2,3,0), and S2 indicates an array (0,1,2,3). Into a sequence (2,3,0,1)
That is, a substitution S1 * S1 obtained by performing the substitution S1 twice is shown. Also, 1 indicates an identity substitution that does not change the sequence.

【0095】図8においてアドレス変換に注目すると、
カラムアドレス[C1,C0]はライン選択アドレスの値と一
致している。
Focusing on the address conversion in FIG.
The column address [C1, C0] matches the value of the line selection address.

【0096】なお、図に示した置換は、読み出し時、す
なわち、各モジュール500に格納されている状態から
正しい状態に(元の画素配列のように)並べ替える際の
置換である。書込みの際は、6列目の逆置換を施せばよ
い。1の逆置換は1、S1の逆置換はS1*S2、S2
の逆置換はS2、S1*S2の逆置換は、S1である。
The replacement shown in the figure is a replacement at the time of reading, that is, when rearranging from the state stored in each module 500 to the correct state (as in the original pixel array). At the time of writing, the reverse substitution in the sixth column may be performed. The reverse substitution of 1 is 1, the reverse substitution of S1 is S1 * S2, S2
Is S2, and the reverse substitution of S1 * S2 is S1.

【0097】図9は、アクセスモードがタイルアクセス
モードの場合の入力アドレス(ライン選択アドレス)に
対するアドレス変換結果およびデータアライメントの対
応を示す図である。
FIG. 9 is a diagram showing the correspondence between the address conversion result and the data alignment for the input address (line selection address) when the access mode is the tile access mode.

【0098】図9に示した表の構成は、図8に示した表
の構成と同じで、1列目はライン選択アドレスの値、2
列目はモジュール番号を示しており、これらの組み合わ
せに対して、カラムアドレス(3列目)、UM140の
各モジュールに格納されているパックの座標(4列
目)、画像本来の画素の並びになるよう並び替えたとき
のパックの座標(5列目)、及び、パックの並びを正し
く並び替えるための置換(6列目)を表わしている。
The structure of the table shown in FIG. 9 is the same as the structure of the table shown in FIG.
The column indicates the module number. For these combinations, the column address (third column), the coordinates of the packs stored in each module of the UM 140 (fourth column), and the original pixels of the image are arranged. In this case, the coordinates of the packs after the rearrangement (the fifth column) and the permutation for correctly rearranging the packs (the sixth column) are shown.

【0099】図9においてアドレス変換に注目すると、
カラムアドレス[C1,C0]は2ビットの演算でモジュール
番号からライン選択アドレスの値を引いた値になってい
る。
Looking at the address conversion in FIG.
The column address [C1, C0] is a value obtained by subtracting the value of the line selection address from the module number by a 2-bit operation.

【0100】なお、図8と図9の6列目はすべて同じ置
換になっており、この場合にはデータアライナ部132
は、アクセスモード選択信号を必要としない。
The sixth column in FIGS. 8 and 9 are all replaced by the same data. In this case, the data aligner 132
Does not require an access mode selection signal.

【0101】但し、一般に、「セル内において、同一X
座標を有するパックは、すべて異なるモジュールに格納
されており、同一Y座標を有するパックは、すべて異な
るモジュールに格納されている」という条件の格納方式
をとった場合には、モードによって異なる置換が必要な
場合もあり、その場合、データアライナ部132は、ア
クセスモード選択信号に応じて、異なる置換を行う。
However, in general, "the same X in the cell
All packs with coordinates are stored in different modules, and packs with the same Y coordinate are all stored in different modules. " In such a case, the data aligner unit 132 performs different replacement according to the access mode selection signal.

【0102】次に、前述したアドレス変換を行うアドレ
ス変換部131とUM140内の各モジュール500と
の間の接続形態について説明する。
Next, a description will be given of a connection form between the address conversion unit 131 for performing the above-described address conversion and each module 500 in the UM 140.

【0103】図10は、メモリインタフェース部130
内のアドレス変換部131とUM140内の各モジュー
ル500との間の接続形態を示す図である。
FIG. 10 shows the configuration of the memory interface unit 130.
FIG. 6 is a diagram showing a connection form between an address conversion unit 131 in the UM 140 and each module 500 in the UM 140.

【0104】同図に示すように、アドレス変換部131
から、各モジュール500に対して、カラムアドレスの
上位2ビット[C3,C2]が共通に供給される。また、カ
ラムアドレスの下位2ビット[C1,C0]は、各モジュー
ル500に対して個別に供給される。
As shown in FIG.
Thus, the upper two bits [C3, C2] of the column address are commonly supplied to each module 500. The lower two bits [C1, C0] of the column address are individually supplied to each module 500.

【0105】メモリインタフェース部130には、アク
セスを許可された処理部からメモリバス150を通し
て、アドレス及びアクセスモード選択信号が入力され
る。なお、同図では、メモリインタフェース部130に
渡されるアドレスのうち、カラムアドレスの上位2ビッ
ト[C3,C2]とライン選択アドレス2ビット[L1,L0]
のみを示してある。同図に示していないアドレスは、バ
ンクアドレス及びローアドレスとして、全てのモジュー
ル500に所定のタイミングでブロードキャストされ
る。
An address and an access mode selection signal are input to the memory interface unit 130 from the processing unit permitted to access through the memory bus 150. In the figure, the upper two bits [C3, C2] of the column address and the two bits [L1, L0] of the line selection address among the addresses passed to the memory interface unit 130.
Only is shown. Addresses not shown in the figure are broadcast to all the modules 500 at a predetermined timing as a bank address and a row address.

【0106】メモリインタフェース部130は、入力さ
れたアドレスのうち、カラムアドレスの上位2ビットに
ついては、各モジュール500にブロードキャストす
る。また、ライン選択アドレス2ビットとアクセスモー
ド選択信号に基づいて、図8及び図9で示したように、
カラムアドレスの下位2ビットを生成する。このカラム
アドレスの下位2ビットはモジュール500毎に異なる
ので、各モジュール500に個別に分配する。各モジュ
ール500は、これら4ビットのカラムアドレスに従
い、出力すべきデータをセンスアンプ123上から選択
する。
The memory interface unit 130 broadcasts the upper two bits of the column address to each module 500 among the input addresses. Further, based on the line selection address 2 bits and the access mode selection signal, as shown in FIGS.
Generate the lower two bits of the column address. Since the lower two bits of this column address are different for each module 500, they are individually distributed to each module 500. Each module 500 selects data to be output from the sense amplifier 123 according to the 4-bit column address.

【0107】以上説明した実施形態では、アドレス変換
部131は、メモリインタフェース部130内に設けら
れていたが、アドレス変換部131を、各モジュール5
00に設けるようにしてもよい。
In the embodiment described above, the address conversion unit 131 is provided in the memory interface unit 130.
00 may be provided.

【0108】図11は、各モジュール500にアドレス
変換部131を置いた例を示す図である。同図に示すよ
うに、各モジュール500は、アドレス変換部131を
備える。また、アドレス変換部131は、モジュールア
ドレス・レジスタ(Mreg)1400を備えるMre
g1400は、各モジュールのモジュールアドレス(モ
ジュール番号)を格納するレジスタである。例えば、モ
ジュール0のMreg1400には、「0」が設定さ
れ、モジュール1のMreg1400には、「1」が設
定され、モジュール2のMreg1400には、「2」
が設定され、モジュール3のMreg1400には、
「3」が設定される。Mreg1400の値は、固定に
しても可変にしてもよい。
FIG. 11 is a diagram showing an example in which an address conversion unit 131 is provided in each module 500. As shown in the figure, each module 500 includes an address conversion unit 131. The address conversion unit 131 includes a module address register (Mreg) 1400
g1400 is a register that stores the module address (module number) of each module. For example, “0” is set to Mreg 1400 of module 0, “1” is set to Mreg 1400 of module 1, and “2” is set to Mreg 1400 of module 2.
Is set, and the Mreg 1400 of the module 3 includes:
“3” is set. The value of Mreg 1400 may be fixed or variable.

【0109】図11の場合、メモリインタフェース部1
30は、メモリバス150を介して受け取るアドレスを
すべてのモジュール500に所定のタイミングでブロー
ドキャストする。
In the case of FIG. 11, the memory interface unit 1
30 broadcasts the address received via the memory bus 150 to all the modules 500 at a predetermined timing.

【0110】各モジュール500のアドレス変換部13
1は、各Mreg1400に格納されたモジュールアド
レスと、メモリインタフェース部130から供給される
ライン選択アドレス及びアクセスモード選択信号とに基
づいて、カラムアドレスの下位2ビットを生成する。
Address converter 13 of each module 500
1 generates the lower two bits of the column address based on the module address stored in each Mreg 1400 and the line selection address and access mode selection signal supplied from the memory interface unit 130.

【0111】なお、Mreg1400は、各モジュール
500内のアドレス変換部131に各モジュール500
のモジュールアドレス(モジュール番号)を知らせるた
めに設けられたものであるので、単に、各モジュール5
00のモジュールアドレスを示す信号を各モジュール5
00のアドレス変換部131に供給するようにしてもよ
い。
Note that the Mreg 1400 sends each module 500 to the address conversion unit 131 in each module 500.
Is provided to notify the module address (module number) of each module.
A signal indicating a module address of 00
00 may be supplied to the address conversion unit 131.

【0112】次に、データアライナ部132の構成につ
いて説明する。
Next, the configuration of the data aligner 132 will be described.

【0113】図12は、データアライナ部132の構成
例を示す図である。
FIG. 12 is a diagram showing a configuration example of the data aligner unit 132.

【0114】ここでは、簡単のため、メモリ読み出し方
向のデータアライナ部132のみを示す。なお、メモリ
書込み方向のデータアライナ部も、メモリ読み出し方向
の場合と同様にして、巡回置換を2段重ねることで作る
ことができる。
Here, for simplicity, only the data aligner 132 in the memory read direction is shown. The data aligner in the memory writing direction can also be made by overlapping two stages of cyclic permutation in the same manner as in the memory reading direction.

【0115】図12(a)に示すように、データアライ
ナ部132は、S1部1500と、S2部1510とを
備える。データアライナ部132は、ライン選択信号L
0、L1に従って、図8及び図9に示したように動作す
る。S1部1500およびS2部1510は、それぞ
れ、図8、図9の6列目に示してある置換S1、S2を
行うユニットである。
As shown in FIG. 12A, the data aligner unit 132 includes an S1 unit 1500 and an S2 unit 1510. The data aligner unit 132 outputs the line selection signal L
According to 0 and L1, the operation is performed as shown in FIGS. The S1 unit 1500 and the S2 unit 1510 are units that perform the replacements S1 and S2 shown in the sixth column of FIGS. 8 and 9, respectively.

【0116】図12(b)に示すように、S1部150
0は、セレクタ1501〜1504を備える。セレクタ
1501〜1504は、選択信号L0(ライン選択アド
レスL[0])の「0」,「1」に対応して、セレクタの入
力のうち0,1の添え字が付いているほうを選択して出
力する。すなわち、S1部1500は、L0=「1」の
とき、3,0,1,2の並びを0,1,2,3へ巡回置
換する。
As shown in FIG. 12B, the S1 unit 150
0 includes selectors 1501 to 1504. The selectors 1501 to 1504 select the input of the selector with the suffix of 0 or 1 corresponding to “0” or “1” of the selection signal L0 (line selection address L [0]). Output. That is, when L0 = “1”, the S1 unit 1500 cyclically replaces the arrangement of 3,0,1,2 with 0,1,2,3.

【0117】また、図12(c)に示すように、S2部
1510は、セレクタ1511〜1514を備える。セ
レクタ1511〜1514は、選択信号L1(ライン選
択アドレスL[1])の「0」,「1」に対応して、セレク
タの入力のうち0,1の添え字が付いているほうを選択
して出力する。すなわち、S2部1510は、L1=
「1」のとき、2,3,0,1の並びを、0,1,2,
3へ巡回置換する。
As shown in FIG. 12C, the S2 unit 1510 includes selectors 1511 to 1514. The selectors 1511 to 1514 select the input of the selector with the suffix of 0 or 1 corresponding to “0” or “1” of the selection signal L1 (line selection address L [1]). Output. That is, the S2 unit 1510 calculates L1 =
When “1”, the sequence of 2,3,0,1 is changed to 0,1,2,2
Cyclic substitution to 3.

【0118】以上のような構成を有するデータアライナ
部132で適宜並び替えられた1ライン分のデータは、
キャッシュ102、122等に格納される。
One line of data rearranged as appropriate by the data aligner 132 having the above configuration is
It is stored in the caches 102, 122 and the like.

【0119】図13は、キャッシュの1ラインに入るパ
ックの並びを示す図である。
FIG. 13 is a diagram showing the arrangement of packs that fall into one line of the cache.

【0120】図13(a)は、リニアキャッシングで、
ライン選択アドレスがYのときのキャッシュの内容を表
わしている。
FIG. 13A shows linear caching.
This represents the contents of the cache when the line selection address is Y.

【0121】図13(b)は、タイルキャッシングで、
ライン選択アドレスがXのときのキャッシュの内容を表
わしている。
FIG. 13B shows tile caching.
This represents the contents of the cache when the line selection address is X.

【0122】次に、図6に示した方法とは異なる画像デ
ータの格納方式について説明する。
Next, a method of storing image data different from the method shown in FIG. 6 will be described.

【0123】図14は、本発明の一実施形態における別
の画像格納方式を表す図である。図14に示す格納方式
では、同一のY座標を持つ4つのパック、即ち、横並び
の16画素に対して同時にアクセスするリニアアクセス
と、同一のX座標を持つ4つのパック、即ち、4×4画
素に対して同時にアクセスするタイルアクセスに加え
て、更に、2×2パック、即ち8×2画素の領域を同時
にアクセスするモードをサポートしている。以下、この
アクセスを行うモードを、8×2アクセスモードと呼
ぶ。
FIG. 14 is a diagram showing another image storage method in one embodiment of the present invention. In the storage method shown in FIG. 14, four packs having the same Y coordinate, that is, linear access for simultaneously accessing 16 pixels arranged in a row, and four packs having the same X coordinate, that is, 4 × 4 pixels In addition to the tile access for simultaneously accessing the image data, a mode for simultaneously accessing a 2 × 2 pack, that is, an area of 8 × 2 pixels is supported. Hereinafter, this access mode is referred to as an 8 × 2 access mode.

【0124】8×2アクセスモードにおいては、例え
ば、パック(0,0)、(0,1)、(1,0)、
(1,1)を同時にアクセスすることが可能になる。
In the 8 × 2 access mode, for example, packs (0,0), (0,1), (1,0),
(1, 1) can be accessed simultaneously.

【0125】同図において、縦方向(Y方向)に並んだ
4つのパックは、同一モジュールに格納される。すなわ
ち、パック(0,0)、(1,2)、(2,1)、
(3,3)は、モジュール0に格納され、パック(0,
1)、(1,3)、(2,0)、(3,2)は、モジュ
ール1に格納され、パック(0,2)、(1,0)、
(2,3)、(3,1)は、モジュール2に格納され、
パック(0,3)、(1,1)、(2,2)、(3,
0)は、モジュール3に格納される。
In the figure, four packs arranged in the vertical direction (Y direction) are stored in the same module. That is, packs (0,0), (1,2), (2,1),
(3,3) is stored in module 0 and pack (0,3)
1), (1,3), (2,0), (3,2) are stored in the module 1 and packed (0,2), (1,0),
(2,3) and (3,1) are stored in module 2,
Packs (0,3), (1,1), (2,2), (3,
0) is stored in module 3.

【0126】図15〜図17は、この場合のアドレス変
換とデータの並び替えの方法を示す図である。
FIGS. 15 to 17 are diagrams showing a method of address conversion and data rearrangement in this case.

【0127】図15〜図17に示した表の構成は、図
8、図9に示した表の構成と同じである。
The structure of the tables shown in FIGS. 15 to 17 is the same as the structure of the tables shown in FIGS.

【0128】図15は、アクセスモードがリニアアクセ
スモードの場合を示す図である。
FIG. 15 is a diagram showing a case where the access mode is the linear access mode.

【0129】図16は、アクセスモードがタイルアクセ
スモードの場合を示す図である。
FIG. 16 is a diagram showing a case where the access mode is the tile access mode.

【0130】図17は、アクセスモードが8×2アクセ
スモードの場合を示す図である。
FIG. 17 shows a case where the access mode is the 8 × 2 access mode.

【0131】なお、図15〜図17の置換の欄で、「0
⇔2」や「2⇔3」などの記述があるが、これは、それぞ
れ、(0,1,2,3)の中で、0と2、および、2と
3を交換する置換、すなわち、(0,1,2,3)から
(2,1,0,3)への置換、及び、(0,1,2,
3)から(0,1,3,2)への置換を表わしている。
Note that “0” is set in the replacement column in FIGS.
There are descriptions such as “⇔2” and “2⇔3”, which are permutations in (0, 1, 2, 3) that exchange 0 and 2, and 2 and 3, respectively, ie, Replacement of (0,1,2,3) with (2,1,0,3) and (0,1,2,3)
3) represents the substitution of (0, 1, 3, 2).

【0132】次に、本発明の別の実施形態について説明
する。
Next, another embodiment of the present invention will be described.

【0133】図18は、本発明を適用した別のシステム
LSIの構成を示す図である。
FIG. 18 is a diagram showing the configuration of another system LSI to which the present invention is applied.

【0134】同図に示すように、本システムLSIは、
データアライナ部132が、コネクタ部101、11
1、121に含まれている点で、図1に示したシステム
LSIと異なる。
As shown in the figure, the present system LSI
The data aligner unit 132 is connected to the connector units 101 and 11.
1 and 121 are different from the system LSI shown in FIG.

【0135】各処理部とコネクタ部間のデータ幅がパッ
クのデータ幅以下の場合、必要なデータを含むパックを
選択して処理部に渡せばよいので(リードの場合)、デ
ータアライナ部132は、実質的にセレクタとなりデー
タを並べ替える処理は不要となる。したがって、この時
は、データアライナ部132をメモリインタフェース部
130に置くよりも小さな物量でシステムが構成でき
る。なお、この場合、キャッシュ102、122等に
は、各パックが、例えば、図8、図9、図15〜図17
の4列目に示した並びで格納されることになる。
When the data width between each processing unit and the connector unit is equal to or smaller than the data width of the pack, a pack containing necessary data may be selected and passed to the processing unit (in the case of reading), so that the data aligner unit 132 In effect, it becomes a selector, and the process of rearranging the data becomes unnecessary. Therefore, at this time, the system can be configured with a smaller physical quantity than placing the data aligner unit 132 in the memory interface unit 130. In this case, the packs are stored in the caches 102 and 122, for example, as shown in FIGS.
Are stored in the arrangement shown in the fourth column.

【0136】また、更に、アドレス変換部131を各コ
ネクタ部101、111、121に含めるようにしても
よい。この場合、各処理部がメモリインタフェース部1
30に送るアドレスの一部がモジュール毎に異なること
になる。すなわち、各処理部からメモリインタフェース
部130に対して、アドレスの一部については、モジュ
ール毎に異なるアドレスが渡される。メモリインタフェ
ース部130は、各処理部から渡されたアドレスのう
ち、モジュール毎に異なるアドレスについては、モジュ
ール毎に個別に送り、残りのアドレスについては、全て
のモジュールにブロードキャストする。
Further, the address conversion unit 131 may be included in each of the connector units 101, 111, and 121. In this case, each processing unit is the memory interface unit 1
Some of the addresses sent to 30 will be different for each module. In other words, for each part of the address, a different address is passed from module to module to the memory interface 130. The memory interface unit 130 sends an address different for each module among the addresses passed from each processing unit individually for each module, and broadcasts the remaining addresses to all modules.

【0137】最後に、一般のアプリケーションプログラ
ムが動作するシステムにおける本発明によるメモリ領域
の使用例について説明する。
Finally, an example of using the memory area according to the present invention in a system in which a general application program operates will be described.

【0138】図19は、本発明を適用したUM140の
メモリ領域の使用例を示す図である。
FIG. 19 is a diagram showing a usage example of the memory area of the UM 140 to which the present invention is applied.

【0139】この場合、UM140を、CPU100上
で動作しているアプリケーションが直接アクセスする領
域1900と、表示画像やテクスチャなどを格納してお
く画像領域1910とに分けている。そして、一般のア
プリケーションが画像をテクスチャとして登録したり、
ビデオ入力を行う際には、必ず標準のライブラリ(関数
の集まり)を使用して、これらの処理を行うようにし、
これらのライブラリのドライバ(ライブラリ関数の実
体)に対してのみ、画像領域1910へのアクセスを許
可しておく。この場合、ドライバは、画像領域1910
にアクセスする際には、図6や図14に示したようなリ
ニアアクセスやタイルアクセスが可能な格納方式に即し
てアクセスする。
In this case, the UM 140 is divided into an area 1900 to which an application running on the CPU 100 directly accesses, and an image area 1910 for storing display images, textures, and the like. Then, general applications register images as textures,
When performing video input, be sure to use a standard library (collection of functions) to perform these processes.
Only the drivers of these libraries (substances of the library functions) are allowed to access the image area 1910. In this case, the driver operates the image area 1910
Is accessed in accordance with a storage method that allows linear access and tile access as shown in FIGS.

【0140】このようにしておけば、新しいシステムを
提供する際にはライブラリのドライバを共に提供するこ
とで、アプリケーションプログラムやコンパイラを変更
することなく、画像領域1910において異なるアクセ
ス方法(例えば、リニアアクセスとタイルアクセス)を
両立させることができる。
In this way, when a new system is provided, by providing a library driver together, a different access method (for example, a linear access method) can be used in the image area 1910 without changing an application program or a compiler. And tile access).

【0141】画像以外に音声などを扱う場合にも、一般
のアプリケーションプログラムが動作するシステムにお
いては、CPU上で動作しているアプリケーションがア
クセスする領域と、画像や音声などCPU以外のリソー
スがアクセスする領域とを分けておくことで、CPU以
外のリソースがアクセスする領域においてアプリケーシ
ョンプログラムやコンパイラを変更することなく、ある
特定の領域においてリニアアクセス(リニアキャッシン
グ)とタイルアクセス(タイルキャッシング)を両立さ
せることができる。
In the case of handling audio and the like in addition to images, in a system where a general application program operates, an area accessed by an application running on the CPU and resources other than the CPU such as images and audio access. By separating the area from the area, it is possible to achieve both linear access (linear caching) and tile access (tile caching) in a specific area without changing an application program or a compiler in an area accessed by resources other than the CPU. Can be.

【0142】[0142]

【発明の効果】以上詳細に説明したように、本発明によ
れば、同一のアドレス空間に対して、リニアアクセスと
タイルアクセス等、異なるアクセス方法でアクセスする
ことが可能となり、これによって、メモリアクセスに関
して、異なったローカリティ(局所性)を持つ処理部が
混在した場合でも、それぞれのローカリティに適したメ
モリアクセスが可能になる。
As described above in detail, according to the present invention, it is possible to access the same address space by different access methods such as linear access and tile access. Regarding the above, even when processing units having different localities (locality) coexist, memory access suitable for each locality can be performed.

【0143】その結果、異なったローカリティ(局所
性)を持つ処理部が混在した場合でも、メモリへのアク
セス効率の低下を防止できる。また、各処理部がキャッ
シュを備えている場合は、ヒット率の向上が期待でき、
処理速度の向上が図れる。
As a result, even when processing units having different localities (localities) coexist, it is possible to prevent a decrease in the efficiency of accessing the memory. Also, if each processing unit has a cache, an improvement in hit rate can be expected,
The processing speed can be improved.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 本発明によるシステムLSIのブロック図で
ある。
FIG. 1 is a block diagram of a system LSI according to the present invention.

【図2】 ユニファイドメモリの構成を示すブロック図
である。
FIG. 2 is a block diagram showing a configuration of a unified memory.

【図3】 画像の階層構造を説明する図である。FIG. 3 is a diagram illustrating a hierarchical structure of an image.

【図4】 画像データをメモリに格納する際のアドレス
マッピングの例を示す図である。
FIG. 4 is a diagram showing an example of address mapping when storing image data in a memory.

【図5】 画像をメモリに格納する際の格納方式の例を
示す図である。
FIG. 5 is a diagram illustrating an example of a storage method when an image is stored in a memory.

【図6】 本発明による画像格納方式を説明する図であ
る。
FIG. 6 is a diagram illustrating an image storage method according to the present invention.

【図7】 本発明による画像格納方式で画像データを格
納する際のアドレスマッピングを示す図である。
FIG. 7 is a diagram showing address mapping when image data is stored by the image storage method according to the present invention.

【図8】 リニアアクセスモード時の入力アドレスに対
するアドレス変換結果およびデータアライメントの対応
を示す図である。
FIG. 8 is a diagram showing correspondence between an address conversion result and data alignment for an input address in a linear access mode.

【図9】 タイルアクセスモード時の入力アドレスに対
するアドレス変換結果およびデータアライメントの対応
を示す図である。
FIG. 9 is a diagram showing correspondence between an address conversion result and data alignment for an input address in a tile access mode.

【図10】 メモリインタフェース部130と各モジュ
ール500との間の接続形態を示す図である。
FIG. 10 is a diagram showing a connection form between a memory interface unit 130 and each module 500.

【図11】 各モジュール500にアドレス変換部13
1を置いた例を示す図である。
FIG. 11 shows an address conversion unit 13 in each module 500.
It is a figure showing the example which put 1.

【図12】 データアライナ部の構成を示すブロック図
である。
FIG. 12 is a block diagram illustrating a configuration of a data aligner unit.

【図13】 キャッシュ内のパックの配置を示す図であ
る。
FIG. 13 is a diagram showing an arrangement of packs in a cache.

【図14】 本発明による別の画像格納方式を説明する
図である。
FIG. 14 is a diagram illustrating another image storage method according to the present invention.

【図15】 リニアアクセスモード時の入力アドレスに
対するアドレス変換結果およびデータアライメントの対
応を示す図である。
FIG. 15 is a diagram showing correspondence between an address conversion result and data alignment for an input address in a linear access mode.

【図16】 タイルアクセスモード時の入力アドレスに
対するアドレス変換結果およびデータアライメントの対
応を示す図である。
FIG. 16 is a diagram showing a correspondence between an address conversion result and a data alignment for an input address in a tile access mode.

【図17】 8×2アクセスモードの時の入力アドレス
に対するアドレス変換結果およびデータアライメントの
対応を示す図である。
FIG. 17 is a diagram showing correspondence between an address conversion result and data alignment for an input address in an 8 × 2 access mode.

【図18】 本発明による別のシステムLSIのブロッ
ク図である。
FIG. 18 is a block diagram of another system LSI according to the present invention.

【図19】 一般のアプリケーションプログラムが動作
するシステムにおけるUMの使用例を示す図である。
FIG. 19 is a diagram illustrating an example of using a UM in a system in which a general application program operates.

【図20】 ローカリティの概念を説明する図である。FIG. 20 is a diagram illustrating the concept of locality.

【図21】 従来方式によるメモリアクセスの概要を説
明する図である。
FIG. 21 is a diagram illustrating an overview of memory access according to a conventional method.

【符号の説明】[Explanation of symbols]

100 CPU 110 ビデオ入力部 120 テクスチャマッピング部/フィルタリング部 101,111,121 コネクタ部 130 メモリインタフェース部 131 アドレス変換部 132 データアライナ部 140 ユニファイドメモリ(UM) Reference Signs List 100 CPU 110 Video input unit 120 Texture mapping unit / filtering unit 101, 111, 121 Connector unit 130 Memory interface unit 131 Address conversion unit 132 Data aligner unit 140 Unified memory (UM)

───────────────────────────────────────────────────── フロントページの続き (72)発明者 松尾 茂 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 下村 哲也 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 城 学 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 佐藤 潤 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体グループ内 Fターム(参考) 5B047 AB04 EA09 EB01 EB06 EB13 5B060 AA13 AC13 GA06 GA11 GA16 MM13  ──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor Shigeru Matsuo 7-1-1, Omika-cho, Hitachi City, Ibaraki Prefecture Inside Hitachi Research Laboratory, Hitachi, Ltd. (72) Inventor Tetsuya Shimomura 7-1-1, Omika-cho, Hitachi City, Ibaraki Prefecture No. 1 Hitachi, Ltd., Hitachi Research Laboratory (72) Inventor Manabu Shiro 7-1-1, Omikacho, Hitachi City, Ibaraki Prefecture Hitachi, Ltd., Hitachi Research Laboratory (72) Inventor Jun Sato, Kodaira City, Tokyo 5-20-1, Mizumotocho F-term in Hitachi Semiconductor Group, Ltd. (Reference) 5B047 AB04 EA09 EB01 EB06 EB13 5B060 AA13 AC13 GA06 GA11 GA16 MM13

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】 複数のモジュールで構成されるメモリ
と、 当該メモリに対してアクセスを行う処理部と、 当該処理部から発行されたメモリのアドレスを、アクセ
スモードに従って、各モジュール毎の個別のアドレスに
変換するアドレス変換部とアクセスモード及びアドレス
に従って、メモリに読み書きされるデータを並び替える
データアライナ部とを具備することを特徴とする情報処
理システム。
A memory configured by a plurality of modules; a processing unit that accesses the memory; and an address of the memory issued from the processing unit. An information processing system, comprising: an address conversion unit that converts data into data and a data aligner that rearranges data read and written in a memory according to an access mode and an address.
【請求項2】 特定のサイズを有するデータ単位で読み
書きすることが可能なモジュールを、N個備えたメモリ
と、 当該メモリとの間で、N個の前記データ単位からなるデ
ータの読み書きを行う処理部と、 当該処理部からのアクセス要求を受けて、メモリに対し
てアクセスを行うメモリインタフェース部とを備え、 前記メモリインタフェース部は、 前記処理部から受け取ったN個のデータ単位のそれぞれ
が、異なるモジュールに格納されるように、アクセスモ
ードに応じて、各データ単位を格納するモジュールと、
各モジュールにおける格納位置を決定することを特徴と
する情報処理システム。
2. A process for reading and writing data consisting of N data units between a memory including N modules capable of reading and writing data in a data unit having a specific size, and the memory. And a memory interface unit that accesses a memory in response to an access request from the processing unit. The memory interface unit is different in each of the N data units received from the processing unit. A module for storing each data unit according to the access mode so as to be stored in the module,
An information processing system, wherein a storage position in each module is determined.
【請求項3】 特定のサイズを有するデータ単位で読み
書きすることが可能なモジュールを、N個備えたメモリ
と、 当該メモリとの間で、N個の前記データ単位からなるデ
ータの読み書きを行う処理部と、 当該処理部がメモリにアクセスする際に発行したアドレ
スを、アクセスモードに従って、各モジュール毎の個別
アドレスにアドレス変換を行うアドレス変換部と、 処理部とメモリとの間でデータのやり取りを行う際、ア
クセスモードに従って、当該データを構成する前記デー
タ単位の並び替えを行うデータアライナ部とを備えたこ
とを特徴とする情報処理システム。
3. A process for reading and writing data consisting of N data units between a memory having N modules capable of reading and writing data in a data unit having a specific size, and the memory. And an address translation unit that translates an address issued when the processing unit accesses the memory into an individual address for each module in accordance with the access mode, and exchanges data between the processing unit and the memory. An information processing system, comprising: a data aligner unit for rearranging the data units constituting the data according to an access mode.
【請求項4】 前記アドレス変換部は、 N×N個のデータ単位からなる2次元配列において、同
一X座標を有するデータ単位は、すべて異なるモジュー
ルに格納され、かつ、同一Y座標を有するデータ単位
は、すべて異なるモジュールに格納されるように、アド
レス変換を行い、 前記データアライナ部は、 前記アドレス変換部の当該アドレス変換に応じて、デー
タ単位の並び替えを行うことを特徴とする請求項3に記
載の情報処理システム。
4. The data conversion unit according to claim 1, wherein in a two-dimensional array of N × N data units, all data units having the same X coordinate are stored in different modules and have the same Y coordinate. 4. The device according to claim 3, wherein the address conversion unit performs an address conversion so that all the data are stored in different modules, and the data aligner unit rearranges data units according to the address conversion performed by the address conversion unit. An information processing system according to claim 1.
【請求項5】 それぞれ異なったローカリティを有する
処理部と、 それぞれの処理部が共通にアクセスするユニファイドメ
モリと、 各処理部が使用するデータを一時的に貯めておくキャッ
シュ部と、 各処理部からのアクセス要求を受けて、ユニファイドメ
モリに対してメモリアクセスを行うメモリインタフェー
ス部と、 各処理部から通知されるアクセスモードに応じて、ユニ
ファイドメモリへアクセスするためのアドレスを変換す
るアドレス変換部と、 前記アクセスモードに応じて、ユニファイドメモリとや
り取りするデータを並べ替えるデータアライナ部と、か
ら構成されることを特徴とする情報処理システム。
5. A processing unit having different localities, a unified memory commonly accessed by each processing unit, a cache unit for temporarily storing data used by each processing unit, and each processing unit A memory interface unit that accesses the unified memory in response to an access request from the server, and an address converter that translates the address for accessing the unified memory according to the access mode notified from each processing unit And a data aligner unit for rearranging data exchanged with the unified memory according to the access mode.
【請求項6】 前記ユニファイドメモリは、複数のモジ
ュールから構成され、 前記アドレス変換部は、当該各モジュール内にあること
を特徴とする請求項5に記載の情報処理システム。
6. The information processing system according to claim 5, wherein the unified memory includes a plurality of modules, and the address conversion unit is provided in each of the modules.
【請求項7】 それぞれ異なったローカリティを有する
処理部と、 それぞれの処理部が共通にアクセスするユニファイドメ
モリと、 各処理部が使用するデータを一時的に貯めておくキャッ
シュ部と、 各処理部からのアクセス要求を受けて、ユニファイドメ
モリに対してメモリアクセスを行うメモリインタフェー
ス部と、 各処理部から通知されるアクセスモードに応じて、ユニ
ファイドメモリへアクセスするためのアドレスを変換す
るアドレス変換部と、 前記処理部と前記キャッシュ部との間に位置し、前記ア
クセスモードに応じて、前記処理部が読み出すデータの
選択を行うデータ選択部とから構成されることを特徴と
する情報処理システム。
7. A processing unit having different localities, a unified memory commonly accessed by each processing unit, a cache unit for temporarily storing data used by each processing unit, and each processing unit A memory interface unit that accesses the unified memory in response to an access request from the server, and an address converter that translates the address for accessing the unified memory according to the access mode notified from each processing unit An information processing system, which is located between the processing unit and the cache unit and that selects data to be read by the processing unit in accordance with the access mode. .
JP19044799A 1999-07-05 1999-07-05 Information processing system Expired - Fee Related JP3639464B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19044799A JP3639464B2 (en) 1999-07-05 1999-07-05 Information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19044799A JP3639464B2 (en) 1999-07-05 1999-07-05 Information processing system

Publications (2)

Publication Number Publication Date
JP2001022638A true JP2001022638A (en) 2001-01-26
JP3639464B2 JP3639464B2 (en) 2005-04-20

Family

ID=16258293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19044799A Expired - Fee Related JP3639464B2 (en) 1999-07-05 1999-07-05 Information processing system

Country Status (1)

Country Link
JP (1) JP3639464B2 (en)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004120585A (en) * 2002-09-27 2004-04-15 Mitsubishi Electric Corp On-vehicle driving lane recognition device
JP2005215911A (en) * 2004-01-29 2005-08-11 Hitachi Ltd Information processor
US6982892B2 (en) * 2003-05-08 2006-01-03 Micron Technology, Inc. Apparatus and methods for a physical layout of simultaneously sub-accessible memory modules
JP2007510320A (en) * 2003-10-04 2007-04-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and apparatus for processing image data
JP2008521097A (en) * 2004-11-15 2008-06-19 エヌヴィディア コーポレイション Video processing
JP2011501341A (en) * 2007-10-16 2011-01-06 エス. アクア セミコンダクター, エルエルシー Memory with independent access and precharge
JP4795434B2 (en) * 2005-06-30 2011-10-19 インテル コーポレイション Microtile memory interface
JP4796627B2 (en) * 2005-07-05 2011-10-19 インテル・コーポレーション Identify and access each memory device in the memory channel
JP4838844B2 (en) * 2005-06-30 2011-12-14 インテル・コーポレーション Method, storage medium, system and program
JP4838843B2 (en) * 2005-06-30 2011-12-14 インテル・コーポレーション Automatic detection of memory with microtiles enabled
JP2012104161A (en) * 2005-06-23 2012-05-31 Intel Corp Memory micro-tiling
JP2012113732A (en) * 2006-12-28 2012-06-14 Intel Corp Memory access using multitiling
JP2012518831A (en) * 2009-02-20 2012-08-16 シリコン・ハイヴ・ベー・フェー Multimode accessible storage device
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8683184B1 (en) 2004-11-15 2014-03-25 Nvidia Corporation Multi context execution on a video processor
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7724921B2 (en) 2002-09-27 2010-05-25 Mitsubishi Denki Kabushiki Kaisha Vehicle-onboard driving lane recognizing apparatus
JP2004120585A (en) * 2002-09-27 2004-04-15 Mitsubishi Electric Corp On-vehicle driving lane recognition device
US6982892B2 (en) * 2003-05-08 2006-01-03 Micron Technology, Inc. Apparatus and methods for a physical layout of simultaneously sub-accessible memory modules
US9019779B2 (en) 2003-05-08 2015-04-28 Micron Technology, Inc. Apparatus and methods for a physical layout of simultaneously sub-accessible memory modules
US7414875B2 (en) 2003-05-08 2008-08-19 Mircon Technology, Inc. Apparatus and methods for a physical layout of simultaneously sub-accessible memory modules
US7911819B2 (en) 2003-05-08 2011-03-22 Micron Technology, Inc. Apparatus and methods for a physical layout of simultaneously sub-accessible memory modules
US8553470B2 (en) 2003-05-08 2013-10-08 Micron Technology, Inc. Apparatus and methods for a physical layout of simultaneously sub-accessible memory modules
JP2007510320A (en) * 2003-10-04 2007-04-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and apparatus for processing image data
US8068545B2 (en) 2003-10-04 2011-11-29 Trident Microsystems (Far East) Ltd. Method and apparatus for processing image data
JP2005215911A (en) * 2004-01-29 2005-08-11 Hitachi Ltd Information processor
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
JP2008521097A (en) * 2004-11-15 2008-06-19 エヌヴィディア コーポレイション Video processing
US8736623B1 (en) 2004-11-15 2014-05-27 Nvidia Corporation Programmable DMA engine for implementing memory transfers and video processing for a video processor
JP4906734B2 (en) * 2004-11-15 2012-03-28 エヌヴィディア コーポレイション Video processing
US8683184B1 (en) 2004-11-15 2014-03-25 Nvidia Corporation Multi context execution on a video processor
US9111368B1 (en) 2004-11-15 2015-08-18 Nvidia Corporation Pipelined L2 cache for memory transfers for a video processor
JP2012104161A (en) * 2005-06-23 2012-05-31 Intel Corp Memory micro-tiling
JP4838843B2 (en) * 2005-06-30 2011-12-14 インテル・コーポレーション Automatic detection of memory with microtiles enabled
JP4838844B2 (en) * 2005-06-30 2011-12-14 インテル・コーポレーション Method, storage medium, system and program
JP4795434B2 (en) * 2005-06-30 2011-10-19 インテル コーポレイション Microtile memory interface
JP4796627B2 (en) * 2005-07-05 2011-10-19 インテル・コーポレーション Identify and access each memory device in the memory channel
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
JP2012113732A (en) * 2006-12-28 2012-06-14 Intel Corp Memory access using multitiling
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
JP2011501341A (en) * 2007-10-16 2011-01-06 エス. アクア セミコンダクター, エルエルシー Memory with independent access and precharge
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US8762686B2 (en) 2009-02-20 2014-06-24 Intel Corporation Multimode accessible storage facility
JP2012518831A (en) * 2009-02-20 2012-08-16 シリコン・ハイヴ・ベー・フェー Multimode accessible storage device

Also Published As

Publication number Publication date
JP3639464B2 (en) 2005-04-20

Similar Documents

Publication Publication Date Title
JP2001022638A (en) Information processing system
US4953101A (en) Software configurable memory architecture for data processing system having graphics capability
JP5715644B2 (en) System and method for storing data in a high speed virtual memory system
EP1741089B1 (en) Gpu rendering to system memory
JP4511638B2 (en) Computer system controller with internal memory and external memory control
US5924111A (en) Method and system for interleaving data in multiple memory bank partitions
US7814294B2 (en) Memory device, memory controller and memory system
US7729200B2 (en) Memory device, memory controller and memory system
JPH11283020A (en) Picture data processor and its method
US20010010057A1 (en) Semiconductor integrated circuit, computer system, data processor and data processing method
US8918589B2 (en) Memory controller, memory system, semiconductor integrated circuit, and memory control method
US7649538B1 (en) Reconfigurable high performance texture pipeline with advanced filtering
WO2007149979A2 (en) Unified virtual addressed register file
US5585863A (en) Memory organizing and addressing method for digital video images
JP2002073412A (en) Access method to memory and memory
CA2742586A1 (en) System, data structure, and method for simultaneously retrieving multi-dimensional data with zero data contention
CN114942831A (en) Processor, chip, electronic device and data processing method
KR101801901B1 (en) Memory device accessed in consideration of data locality and electronic system including the same
US6928516B2 (en) Image data processing system and method with image data organization into tile cache memory
KR101553651B1 (en) apparatus for accessing multi-bank memory
CN114442908B (en) Hardware acceleration system and chip for data processing
JP4240610B2 (en) Computer system
US6469705B1 (en) Cache addressing
JPH113324A (en) Data processor incorporating memory and its system
US6742077B1 (en) System for accessing a memory comprising interleaved memory modules having different capacities

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040906

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050114

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080121

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100121

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees