JP2000267927A - Memory access processor - Google Patents

Memory access processor

Info

Publication number
JP2000267927A
JP2000267927A JP11069582A JP6958299A JP2000267927A JP 2000267927 A JP2000267927 A JP 2000267927A JP 11069582 A JP11069582 A JP 11069582A JP 6958299 A JP6958299 A JP 6958299A JP 2000267927 A JP2000267927 A JP 2000267927A
Authority
JP
Japan
Prior art keywords
memory access
data
transfer
elements
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP11069582A
Other languages
Japanese (ja)
Other versions
JP3425885B2 (en
Inventor
Yasuhiro Igawa
康宏 井川
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP06958299A priority Critical patent/JP3425885B2/en
Publication of JP2000267927A publication Critical patent/JP2000267927A/en
Application granted granted Critical
Publication of JP3425885B2 publication Critical patent/JP3425885B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a memory access processor capable of guaranteeing the order of transfer among plural elements having the same address in the case of accessing the memories of plural elements in parallel. SOLUTION: The memory access processor for accessing the memories of transfer data constituted of plural data elements by a transfer instruction is provided with order guarantee means (41, 42, 45) capable of executing the memory access of plural transfer data elements included in a memory access request and having the same address.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、メモリアクセス装
置に関するものであり、特に、ノード間でのデータ転送
に好適に用いられるメモリアクセス装置に関する。
The present invention relates to a memory access device, and more particularly, to a memory access device suitably used for data transfer between nodes.

【0002】[0002]

【従来の技術】複数のプロセッサと共有メモリを有する
ノードにおいては、ノード内の命令処理性能が高いた
め、ノード間のデータ転送においても高いデータ転送性
能が求められる。
2. Description of the Related Art A node having a plurality of processors and a shared memory has a high instruction processing performance in the node, so that a high data transfer performance is also required in data transfer between nodes.

【0003】このノード間のデータ転送性能は、マシン
サイクルによる転送速度を上げることと、転送データの
データ幅を拡大して一度に転送できるデータ量を増やす
ことで向上させることができる。転送データ幅を拡大し
てノード間のデータ転送性能を向上させる場合には、ノ
ード間の転送データ幅の拡大と共にノード内のメモリ転
送性能も向上させる必要がある。
[0003] The data transfer performance between nodes can be improved by increasing the transfer speed by machine cycles and by increasing the data width of the transfer data to increase the amount of data that can be transferred at one time. When the transfer data width is increased to improve the data transfer performance between nodes, it is necessary to increase the transfer data width between nodes and also to improve the memory transfer performance in the node.

【0004】このようなノード間におけるデータ転送方
式の一例が特開平5−108581号公報に開示されて
いる。この公報には、マルチプロセッサシステムの分散
メモリを一つのノードとした装置が記載されている。こ
こでは、プロセッサ内に設けたノード間データ転送制御
部からそのプロセッサが所有する分散メモリに対してア
クセスする際に、二次元配列データの一部であるサブア
レイデータを1回の転送命令の発行でアクセスするよう
にしている。すなわち、転送開始アドレス(B)、第1
の要素間距離(D1)および第2の要素間距離(D2)
によって規定されるサブアレイデータについて当該サブ
アレイデータを構成する要素毎に順次メモリアドレスを
生成し、メモリアクセスリクエストを発行してデータの
転送を行うようにしている。
An example of such a data transfer method between nodes is disclosed in Japanese Patent Laid-Open No. Hei 5-108581. This publication describes an apparatus in which a distributed memory of a multiprocessor system is used as one node. Here, when the inter-node data transfer control unit provided in the processor accesses the distributed memory owned by the processor, the sub-array data that is a part of the two-dimensional array data is issued by issuing one transfer instruction. I have access. That is, the transfer start address (B), the first
Element distance (D1) and second element distance (D2)
With respect to the sub-array data defined by the above, a memory address is sequentially generated for each element constituting the sub-array data, and a memory access request is issued to transfer the data.

【0005】[0005]

【発明が解決しようとする課題】しかし、この転送方式
では、データ幅が大きい場合、例えば2ディスタンス転
送などで複数の要素を並列にメモリ転送する場合に、転
送順序が保証されないことがある。
However, in this transfer method, when the data width is large, for example, when a plurality of elements are transferred in parallel in memory by two-distance transfer, the transfer order may not be guaranteed.

【0006】すなわち、一のメモリリクエスト内に同一
アドレスを持つ要素が複数存在する場合、これら要素間
でアクセス順序が保証されず先行するメモリアクセス要
素を、後に発行した要素が追い越してメモリアクセスす
る場合がある。同一アドレスを有する要素間でこのよう
な追い越しが発生すると、本来後続の要素が書き込まれ
ているはずのアドレスに先行する要素が上書きしてしま
うことになり、ソフトウエアが期待するメモリ動作がな
されないという問題がある。
That is, when there are a plurality of elements having the same address in one memory request, the order of access is not guaranteed among these elements, and when a memory access element that precedes a memory access element issued earlier passes a memory access element. There is. If such an overtaking occurs between elements having the same address, the element preceding the address at which the subsequent element should have been written is overwritten, and the memory operation expected by software is not performed. There is a problem.

【0007】本発明は、この問題を解決して、ノード間
転送において複数の要素を並列にメモリアクセスする場
合に、同一アドレスを有する複数の要素間で転送順序を
保証して、メモリ動作が正しく行われるようにしたメモ
リアクセス処理装置を提供するものである。
The present invention solves this problem, and when a plurality of elements are accessed in parallel in memory transfer between nodes, the transfer order is guaranteed between a plurality of elements having the same address so that the memory operation can be correctly performed. It is intended to provide a memory access processing device to be performed.

【0008】[0008]

【課題を解決するための手段】上記課題を解決するため
に、本発明のメモリアクセス処理装置は、複数のデータ
要素で構成された転送データを一回の転送命令でメモリ
アクセスするメモリアクセス処理装置において、当該処
理装置が、一のメモリアクセスリクエスト内に存在し同
一アドレスを有する複数の転送データ要素についてのメ
モリアクセスを所定の順序で行うようにする順序保証手
段を具えることを特徴とする。
In order to solve the above-mentioned problems, a memory access processing device according to the present invention provides a memory access processing device for performing memory access to transfer data composed of a plurality of data elements by a single transfer instruction. Wherein the processing device includes an order assurance means for performing a memory access for a plurality of transfer data elements having the same address in one memory access request in a predetermined order.

【0009】このように、本発明のメモリアクセス処理
装置は、一のメモリアクセスリクエスト内に存在し、同
一アドレスを有する転送データ要素について順序保証を
行い、これらの要素間において後続する要素が先行する
要素に先立ってメモリアクセスすることがないようにし
て、ソフトウエアの期待するメモリ動作を正確に実現で
きるようにしている。
As described above, the memory access processing device of the present invention guarantees the order of transfer data elements which are present in one memory access request and have the same address, and a succeeding element precedes these elements. By preventing memory access prior to the element, the memory operation expected by the software can be accurately realized.

【0010】また、本発明のメモリアクセス装置は、前
記転送データを複数の転送データ要素からなるデータブ
ロックに分けて、このデータブロック毎にメモリアクセ
スを行い、前記同一アドレスを有する転送データ要素の
うちの先行するデータ要素を含むデータブロックのメモ
リアクセスの終了を待ち合わせて後続のデータ要素を含
むデータブロックのメモリアクセスを行うことによって
前記順序保証を行うことを特徴とする。
Further, the memory access device of the present invention divides the transfer data into data blocks composed of a plurality of transfer data elements, performs a memory access for each of the data blocks, and selects one of the transfer data elements having the same address. The sequence guarantee is performed by waiting for the end of the memory access of the data block including the preceding data element and performing the memory access of the data block including the subsequent data element.

【0011】ブロック毎に転送を行うことによって、デ
ータの転送性能を高めることができ、同一アドレスを有
する転送データ要素のうちの先行する要素を含むデータ
ブロックのメモリアクセス終了を待ち合わせて、後続の
データ要素を含むデータブロックのメモリアクセスを行
うことによって、データ間の順序保証を好適に行うこと
ができる。
By performing the transfer for each block, the transfer performance of the data can be improved. The transfer of the data block including the preceding element among the transfer data elements having the same address is awaited, and the subsequent data is transferred. By performing the memory access of the data block including the element, it is possible to preferably guarantee the order between the data.

【0012】更に、本発明のメモリアクセス装置は、前
記データの転送を転送データの転送開始アドレス(B)
と、第1の要素間距離(D1)と、第2の要素間距離
(D2)と、第1の要素数(L1)と、第2の要素数
(L2)とで規定される2ディスタンス転送で行い、前
記データブロックを前記第1の要素間距離と前記第1の
要素数とで決まる転送データ要素で構成したことを特徴
とする。
Further, in the memory access device according to the present invention, the data transfer is performed by using a transfer start address (B) of the transfer data.
, A first element distance (D1), a second element distance (D2), a first element number (L1), and a second element number (L2). Wherein the data block is constituted by transfer data elements determined by the first inter-element distance and the first number of elements.

【0013】転送の形式を2ディスタンス転送とするこ
とにより、より効率よくデータを転送することができ
る。
By setting the transfer format to two-distance transfer, data can be transferred more efficiently.

【0014】また、本発明のメモリアクセス装置は、一
のメモリアクセスリクエスト中に同一アドレスを有する
複数のデータ転送要素が存在するか否かを検出する同一
アドレス検出手段を具え、当該同一アドレス検出手段が
一のメモリアクセス中に同一アドレスを有する複数のデ
ータ転送要素の存在を検出したときのみ前記順序保証を
行うことを特徴とする。
Further, the memory access device of the present invention comprises an identical address detecting means for detecting whether or not a plurality of data transfer elements having the same address exist in one memory access request. Performs the order guarantee only when the presence of a plurality of data transfer elements having the same address during one memory access is detected.

【0015】すべてのメモリリクエストについて前記順
序保証を行うと、メモリ転送性能の劣化を招くため、本
発明の好適な実施形態では、一のメモリリクエスト内で
転送するデータの要素間に同一アドレスが存在するか否
かを検出して、同一アドレスの存在を検出したときのみ
前記順序保証を行うようにした。
If the order guarantee is performed for all the memory requests, the memory transfer performance is degraded. Therefore, in the preferred embodiment of the present invention, the same address exists between the elements of the data to be transferred in one memory request. The above sequence assurance is performed only when the presence of the same address is detected.

【0016】更に、本発明のメモリアクセス装置は、前
記同一アドレス検出手段が前記第1の要素間距離と第2
の要素間距離の絶対値を比較して、 (1)前記第1の要素間距離が第2の要素間距離より小
さく(|D1|<|D2|)、D1×(L1−1)で実
現されるエリアより前記第2の要素間距離(D2)が小
さい場合; (2)前記第1の要素間距離が第2の要素間距離より大
きく(|D1|>|D2|)、D2×(L2−1)で実
現されるエリアより第1の要素間距離(D1)が小さい
場合;または (3)前記第1の要素間距離と第2の要素間距離とが等
しい(|D1|=|D2|)場合; に前記順序保証を行うようにしたことを特徴とする。
Further, in the memory access device according to the present invention, the same address detecting means may determine that the first element distance and the second element distance are equal to each other.
(1) The first element distance is smaller than the second element distance (| D1 | <| D2 |), and is realized by D1 × (L1-1). (2) the first inter-element distance is larger than the second inter-element distance (| D1 |> | D2 |), D2 × ( L1) when the first inter-element distance (D1) is smaller than the area realized by L2-1); or (3) the first inter-element distance is equal to the second inter-element distance (| D1 | = | D2 |), the order is guaranteed in

【0017】このように、同一アドレスの検出をエリア
比較により近似的に行うようにすることによって、同一
アドレス検出に必要なハードウエアの量を抑えることが
できる。
As described above, by detecting the same address approximately by comparing areas, the amount of hardware required for detecting the same address can be reduced.

【0018】また、前記順序保証はストア動作時のみ行
うようにして処理機能の劣化を防ぐことが好ましい。ロ
ードアクセス時には要素間で追い越しが生じても、同一
データを読み出すことになるので、順序保証を行う必要
がないためである。
It is preferable that the order guarantee is performed only during the store operation to prevent the processing function from deteriorating. This is because the same data is read out even if the overtaking occurs between the elements during the load access, so that it is not necessary to guarantee the order.

【0019】さらに、本発明のメモリアクセス処理装置
は、転送する要素についてのメモリアクセスを発行する
メモリアクセス発行管理部と、転送データのメモリアク
セス状態を監視して前記発行管理部で発行したメモリア
クセスが終了したことを検出して前記発行管理部に通知
するメモリアクセス状態管理部とを具え、前記順序保証
を行う場合に、先行する要素を含むデータブロックのメ
モリアクセスの終了を前記メモリアクセス状態管理部で
確認した後に、前記メモリアクセス発行管理部が後続の
要素を含むデータブロックのメモリアクセスを発行する
ようにした。
Further, the memory access processing device according to the present invention includes a memory access issue management unit for issuing a memory access for an element to be transferred, a memory access state monitoring unit for monitoring a memory access state of transfer data, and issuing the memory access issued by the issue management unit. And a memory access state management unit for detecting the end of the data access and notifying the issuance management unit, and when performing the order assurance, the memory access state management unit notifies the end of memory access of a data block including a preceding element. After confirming by the section, the memory access issue management section issues the memory access of the data block including the subsequent element.

【0020】このように構成することによって、要素間
の追い越しが発生することなく、かつ、メモリアクセス
機能の劣化を招くことのないアクセス処理装置を好適に
実現することができる。
With this configuration, it is possible to suitably realize an access processing device that does not cause overtaking between elements and does not cause deterioration of the memory access function.

【0021】[0021]

【発明の実施の形態】図1は、本発明にかかるメモリア
クセス処理装置を好適に適用することができる情報処理
装置の構成を示す図である。情報処理装置1は、複数の
ノード22−0〜22−nと、これらのノードを互いに
接続するノード間クロスバスイッチ21で構成されてい
る。
FIG. 1 is a diagram showing the configuration of an information processing apparatus to which a memory access processing device according to the present invention can be suitably applied. The information processing apparatus 1 includes a plurality of nodes 22-0 to 22-n and an inter-node crossbar switch 21 connecting these nodes to each other.

【0022】各ノード22は複数のプロセッサ23と、
これらのノード間のデータ転送を処理するノード間制御
部(RCU)24と、すべてのプロセッサ23とノード
間制御部(RCU)24とに接続された共有メモリ25
とを具える。
Each node 22 includes a plurality of processors 23,
An inter-node control unit (RCU) 24 for processing data transfer between these nodes, and a shared memory 25 connected to all the processors 23 and the inter-node control units (RCU) 24
And

【0023】いずれかのノード内のいずれかのプロセッ
サ23から、そのノード内のRCU24にデータ転送リ
クエストが送られると、各ノード間のデータ転送が起動
される。例えば、ノード22−0の共有メモリ25−0
内のデータをノード22−nの共有メモリ25−0に転
送する場合は、RCU24−0がプロセッサ23からデ
ータ転送リクエストを受け取り、転送するデータを共有
メモリ25−0から読み出して、これをクロスバスイッ
チ21に転送する。
When a data transfer request is sent from any of the processors 23 in any of the nodes to the RCU 24 in that node, data transfer between the nodes is started. For example, the shared memory 25-0 of the node 22-0
Transfer the data in the node 22-n to the shared memory 25-0 of the node 22-n, the RCU 24-0 receives a data transfer request from the processor 23, reads out the data to be transferred from the shared memory 25-0, and transmits it to the crossbar switch. Transfer to 21.

【0024】クロスバスイッチ21は、転送されてきた
データの行き先ノード(ノード22−n)に応じてクロ
スバを切り替えて、転送先のノード22−nにデータを
転送する。ノード22−nは、クロスバスイッチ21か
ら送られてきた転送データをRCU24−nで受信し
て、これを共有メモリ25−nに書き込むことによって
ノード間のデータ転送が実現する。
The crossbar switch 21 switches the crossbar according to the destination node (node 22-n) of the transferred data, and transfers the data to the destination node 22-n. The node 22-n receives the transfer data sent from the crossbar switch 21 by the RCU 24-n, and writes it in the shared memory 25-n, thereby realizing data transfer between the nodes.

【0025】図2は、ノード間制御部RCU24の詳細
な構成を示す図である。上述したとおり、ノード間転送
を行う場合、ノード間での転送速度と、転送データをメ
モリに書き込む速度あるいはメモリから読み出す速度が
同じでないと転送性能が劣化してしまう。このため、通
常、一度に転送するデータのデータ幅を広げることによ
ってノード間のデータ転送性能を向上させるようにして
いる。図2に示す例では、8バイトを1要素として、デ
ータ幅4要素のデータを一度にメモリアクセスするよう
にしている。
FIG. 2 is a diagram showing a detailed configuration of the inter-node control unit RCU 24. As described above, when performing transfer between nodes, transfer performance deteriorates unless the transfer speed between nodes is the same as the speed at which transfer data is written to or read from the memory. For this reason, the data transfer performance between nodes is usually improved by enlarging the data width of the data transferred at one time. In the example shown in FIG. 2, eight bytes are regarded as one element, and data having a data width of four elements is accessed at a time.

【0026】図2に示すように、各ノードに設けられた
RCU24は、クロスバスイッチ21を介して他のノー
ドから送られてきた転送要求を受け取り転送制御を行っ
ている。RCU24は、転送制御部31と、メモリアク
セス制御部32と、データ受信バッファ33と、メモリ
アドレス/ストアデータクロスバ34と、ロードデータ
クロスバ35と、データ送信バッファ36とを具えてい
る。
As shown in FIG. 2, the RCU 24 provided at each node receives a transfer request sent from another node via the crossbar switch 21 and performs transfer control. The RCU 24 includes a transfer control unit 31, a memory access control unit 32, a data reception buffer 33, a memory address / store data crossbar 34, a load data crossbar 35, and a data transmission buffer 36.

【0027】ノード間転送データを受信する際には、転
送制御部31がクロスバスイッチ21を介して他ノード
からの転送要求を受け取って、メモリアクセスリクエス
トを発行してメモリアクセス制御部32へ送る。メモリ
アクセス制御部32では、これに基づいてメモリアドレ
スを生成し、これをメモリアドレス/ストアデータクロ
スバ34に送る。
When receiving transfer data between nodes, the transfer control unit 31 receives a transfer request from another node via the crossbar switch 21, issues a memory access request, and sends it to the memory access control unit 32. The memory access control unit 32 generates a memory address based on this, and sends it to the memory address / store data crossbar.

【0028】一方、データ受信バッファ33は、ノード
間クロスバスイッチ31を介して他ノードから転送され
てくるデータを一時的に格納しておく。ここでは、複数
の要素を(本例では転送幅4要素分)同時に格納するこ
とができる。データ受信バッファ33に格納されたデー
タはメモリアドレス/ストアクロスバ34に送られる。
On the other hand, the data reception buffer 33 temporarily stores data transferred from another node via the crossbar switch 31 between nodes. Here, a plurality of elements (in this example, four transfer widths) can be stored simultaneously. The data stored in the data reception buffer 33 is sent to the memory address / store crossbar 34.

【0029】メモリアドレス/ストアデータクロスバ3
4では、データ受信バッファ33を介して他ノードから
送られてきたデータ(4要素)と、メモリアクセス制御
部32から送られてきたこの4要素に対応するメモリア
ドレスをクロスバにより共有メモリ25の接続ポートに
転送する。この接続ポートは、各要素が示すメモリアド
レスによってインターリーブされ、共有メモリ25の所
定のメモリ位置と接続している。このクロスバによる転
送はメモリアクセス制御部32によって制御されてい
る。
Memory address / store data crossbar 3
4, the data (four elements) transmitted from the other nodes via the data reception buffer 33 and the memory addresses corresponding to the four elements transmitted from the memory access control unit 32 are connected to the shared memory 25 by the crossbar. Forward to port. This connection port is interleaved by the memory address indicated by each element, and is connected to a predetermined memory location of the shared memory 25. The transfer by the crossbar is controlled by the memory access control unit 32.

【0030】共有メモリ25では、メモリアドレス/ス
トアクロスバ34から送られてきたアドレス位置にデー
タを書き込むことにより、ノード間受信データを格納す
る。
The shared memory 25 stores received data between nodes by writing data to the address position transmitted from the memory address / store crossbar 34.

【0031】また、他ノードへデータを送信する際に
は、ノード間データ転送制御部31が、ノード22内の
いずれかのプロセッサ23からデータ送信リクエストを
受け取り、メモリアクセス制御部32に対してメモリロ
ードリクエストを発行する。メモリアクセス制御部32
は、このメモリロードリクエストから4要素分のロード
アドレスを生成してメモリアドレス/ストアクロスバ3
4に送る。メモリアドレス/ストアクロスバ34は、こ
のアドレスを共有メモリ25の所定の位置に接続された
ポートに送り、共有メモリ25では送られてきたアドレ
スに従ってメモリからデータを読み出して、これをロー
ドデータクロスバ35の接続ポートに送る。
When transmitting data to another node, the inter-node data transfer control unit 31 receives a data transmission request from any of the processors 23 in the node 22 and sends a data transmission request to the memory access control unit 32. Issue a load request. Memory access control unit 32
Generates a load address for four elements from the memory load request and generates a memory address / store crossbar 3
Send to 4. The memory address / store crossbar 34 sends this address to a port connected to a predetermined position of the shared memory 25, and the shared memory 25 reads data from the memory according to the sent address, and sends it to the load data crossbar 35. Send to connection port.

【0032】ロードデータクロスバ35は、メモリアク
セス制御部32の制御の下、このデータをデータ送信バ
ッファ36に送り、データ送信バッファ36は、ノード
間データ転送制御部31の制御に基づいて、このデータ
をノード間クロスバスイッチ21に送信する。クロスバ
スイッチ21がこのデータを指示された転送先ノードに
転送することにより、データ送信が終了する。
The load data crossbar 35 sends this data to the data transmission buffer 36 under the control of the memory access control unit 32, and the data transmission buffer 36 transmits this data under the control of the inter-node data transfer control unit 31. Is transmitted to the crossbar switch 21 between nodes. The data transmission ends when the crossbar switch 21 transfers the data to the designated transfer destination node.

【0033】図3は、メモリアクセス制御部32とメモ
リアドレス/ストアデータクロスバ34の詳細な構成を
示す図である。
FIG. 3 is a diagram showing a detailed configuration of the memory access control unit 32 and the memory address / store data crossbar 34.

【0034】図3に示すとおり、メモリアクセス制御部
32は、同一アドレス検出部41と、発行管理部42
と、アドレス生成部43a〜43dと、メモリアクセス
状態監視部45と、競合調停部46とを具える。一方、
メモリアドレス/データクロスバ34は、第1のレジス
タ51a〜51dと、選択回路52a〜52dと、第2
のレジスタ53a〜53dとを具える。
As shown in FIG. 3, the memory access control unit 32 includes an identical address detection unit 41 and an issue management unit 42.
, An address generation unit 43a to 43d, a memory access state monitoring unit 45, and a contention arbitration unit 46. on the other hand,
The memory address / data crossbar 34 includes first registers 51a to 51d, selection circuits 52a to 52d,
Registers 53a to 53d.

【0035】同一アドレス検出部41は、ノード間デー
タ転送制御部31からのメモリアクセス情報61を受け
取って、後述するエリア比較により、一のメモリリクエ
スト内に同一アドレスにアクセスする複数のデータ要素
が存在するか否かを検出する。
The same address detection unit 41 receives the memory access information 61 from the inter-node data transfer control unit 31 and, based on an area comparison described later, there is a plurality of data elements accessing the same address in one memory request. Detect whether or not to do.

【0036】メモリアクセス情報61は、転送データの
転送開始アドレス(B)、第1の要素間距離(D1)、
第2の要素間距離(D2)、第1の要素数(L1)およ
び第2の要素数(L2)とからなる。
The memory access information 61 includes a transfer start address (B) of transfer data, a first inter-element distance (D1),
It comprises a second inter-element distance (D2), a first number of elements (L1), and a second number of elements (L2).

【0037】同一アドレス検出部41は、一のリクエス
ト内に同一アドレスにアクセスする要素が複数あること
を検出した場合、発行管理部42に同一アドレス信号を
通知する。発行管理部42は、第1の要素間距離D1及
び第1の要素数L1で表される要素群を1ブロックとし
て、このブロック単位でメモリアクセス命令を発行す
る。同一アドレス検出部41にて複数の要素について同
一アドレスが存在することが検出されて、発行管理部4
4に通知されると、発行管理部44では一ブロックのメ
モリアクセスが終了する毎に発行したすべての要素につ
いてのメモリアクセスが終了するまで、次のブロックの
メモリアクセスを行わず、待ち合わせを行う。
When detecting that there are a plurality of elements accessing the same address in one request, the same address detection unit 41 notifies the issue management unit 42 of the same address signal. The issuance management unit 42 issues a memory access instruction in block units, with the element group represented by the first inter-element distance D1 and the first element number L1 as one block. The same address detection unit 41 detects that the same address exists for a plurality of elements, and the issue management unit 4
4 is notified, the issuance management unit 44 waits without performing memory access for the next block until memory access for all issued elements is completed each time memory access for one block is completed.

【0038】メモリアクセス状態監視部45では、共有
メモリ25に発行したメモリアクセスがすべて終了した
か否かを、メモリ25からのアクセス終了信号62を受
け取る事によって監視しており、すべての要素について
メモリアクセスが終了するとメモリアクセス終了信号6
2を発行管理部42に通知する。
The memory access status monitor 45 monitors whether or not all the memory accesses issued to the shared memory 25 have been completed by receiving an access end signal 62 from the memory 25. When access ends, memory access end signal 6
2 is notified to the issuance management unit 42.

【0039】発行管理部42では、一のリクエスト内に
同一アドレスにアクセスする複数の要素が存在すること
を確認した場合は、一ブロックについてのメモリアクセ
ス終了信号62が通知されるまで、後続のブロックのメ
モリアクセスを行わないため、同一アドレスにアクセス
する複数の要素間で後続の要素が先行する要素を追い越
してアクセスすることがなく、メモリアクセスの順序が
要素順に保証される。なお、一のリクエスト内で同一ア
ドレスが検出されない場合には、要素間で追い越しがあ
っても問題がないため、先行ブロックのメモリアクセス
終了まで待ち合わせることなく、逐次メモリアクセスを
発行してメモリ転送性能の向上を図るようにしている。
When the issuance management unit 42 confirms that there are a plurality of elements accessing the same address in one request, the issuance management unit 42 continues until the memory access end signal 62 for one block is notified. Is not performed, a subsequent element does not overtake a preceding element among a plurality of elements accessing the same address, and a memory access order is guaranteed in an element order. If the same address is not detected in one request, there is no problem even if there is an overtaking between elements. To improve.

【0040】発行管理部42は、アドレス生成回路43
aに各要素のベースアドレス(B’)を、43bに要素
間距離(D)を、43cに要素間距離×2(2D)を、
43dに要素間距離×3(3D)を送り、各アドレス生
成回路43a〜43dはこの情報に基づいて、一度にメ
モリアクセスする4つの要素のアドレスを生成してメモ
リアドレス/ストアデータクロスバ34に転送する。
The issuance management unit 42 includes an address generation circuit 43
a represents the base address (B ′) of each element, 43b represents the distance between elements (D), 43c represents the distance between elements × 2 (2D),
Element address 43 × 3 (3D) is sent to 43d, and each address generation circuit 43a to 43d generates addresses of four elements to be accessed at one time based on this information, and transfers them to memory address / store data crossbar 34. I do.

【0041】ここで、ストアリクエストの場合は、アド
レス生成回路43a〜43dからここで生成された各ア
ドレスが、および、データ受信バッファ33から信号線
81〜84を介して各要素のデータがメモリアドレス/
ストアデータクロスバ34へ送られ、これらのアドレス
及びデータが第1のレジスタ51a〜51bに格納され
る。格納されたアドレス及びデータは競合調停回路46
によって調停され、ポート選択回路52a〜52dで選
択されたポートに転送されて第2のレジスタ53a〜5
3dに格納される。第2のレジスタに格納されたアドレ
ス及びデータは各ポート毎に信号線91〜94を介して
共有メモリ25に送られ、該当するアドレス位置にデー
タの書き込みが行われる。
Here, in the case of a store request, each address generated here from the address generation circuits 43a to 43d and the data of each element from the data reception buffer 33 via the signal lines 81 to 84 are stored as memory addresses. /
The address and data are sent to the store data crossbar 34 and stored in the first registers 51a to 51b. The stored address and data are transferred to the contention arbitration circuit 46.
And transferred to the port selected by the port selection circuits 52a to 52d and transferred to the second registers 53a to 53d.
3d. The address and data stored in the second register are sent to the shared memory 25 via the signal lines 91 to 94 for each port, and data is written to the corresponding address position.

【0042】なお、ロードリクエストの場合は、データ
は送られずアドレスのみが共有メモリ25に送られ、こ
のアドレス位置のデータが読み出されてロードデータク
ロスバ35に送られる。
In the case of a load request, no data is sent and only the address is sent to the shared memory 25, and the data at this address position is read and sent to the load data crossbar 35.

【0043】要素間の追い越しは、メモリアドレス/ス
トアデータクロスバ34で複数要素を並列に処理してい
るために発生する。すなわち、各要素についてクロスバ
34の入力ポートによって、メモリアクセスする経路が
異なるため、先行するメモリアクセス要素を、後に発行
した要素が追い越してメモリアクセスする場合がある。
従って、第1ブロックと第2ブロックのメモリアクセス
を連続的に行うと、これらのブロックを構成している要
素間で後続要素が先にメモリアクセスしてしまうことが
ある。同一アドレスを持つ要素間で要素間の追い越しが
発生すると、本来後続ブロックの要素が書き込まれてい
るはずのアドレスに先行ブロックの要素が上書きされて
しまい、期待されるメモリアクセス動作が行われない。
Overtaking between elements occurs because a plurality of elements are processed in parallel by the memory address / store data crossbar 34. That is, since the memory access path differs for each element depending on the input port of the crossbar 34, there is a case where a memory access element is issued after a preceding memory access element is passed.
Therefore, if the memory access of the first block and the second block is performed continuously, the subsequent elements may access the memory first among the elements constituting these blocks. If an overtaking occurs between elements having the same address, the address at which the element of the succeeding block is supposed to be written is overwritten with the element of the preceding block, and the expected memory access operation is not performed.

【0044】この問題を解決するため、本実施形態では
ブロック間で同一アドレスが存在することを確認した場
合は、先行ブロックのメモリアクセス終了をメモリアク
セス終了を待って後続ブロックのメモリアクセスを行な
うことによってメモリアクセスの順序を確実に保証する
ようにしている。なお、上述したとおり、ブロック間で
同一アドレスが検出されない場合は、この待ち合わせ動
作を行うことなく、第1のブロックのメモリアクセス命
令を発行後、連続して第2のブロックのメモリアクセス
命令を発行するようにして、処理効率を上げるようにし
ている。
In order to solve this problem, in this embodiment, when it is confirmed that the same address exists between the blocks, the memory access of the preceding block is waited until the memory access is completed, and the memory access of the succeeding block is performed. This ensures the order of memory access. As described above, when the same address is not detected between the blocks, the memory access instruction of the first block is issued without performing the waiting operation, and then the memory access instruction of the second block is issued continuously. To increase the processing efficiency.

【0045】次いで、本発明の実施形態におけるメモリ
アクセスの待ち合わせ動作を2ディスタンス転送を例に
とって説明する。図4及び図5は、2ディスタンス転送
によって転送されるデータブロックの例を示す図であ
る。図4に示す例では、転送データは、転送データの転
送開始アドレス(B)と、第1の要素間距離(D1:本
例では8バイト)、第1の要素間距離により転送する要
素数(L1:本例では4要素)、第2の要素間距離(D
2:本例では64バイト)および第2の要素間距離によ
り転送する要素数(L2:本例では4要素)で設定され
ており、これらB、D1、D2、L1、L2で規定され
る全要素が一括して転送される。ここで、第1の要素間
距離と第1の要素数によって示されるアドレス範囲を1
つのブロックとしており、第2の要素間距離D2は、各
ブロックの先頭要素間の距離、また、第2の要素間距離
により転送する要素数はこの第2の要素間距離で転送さ
れるブロック数である。図4において、上記B、D1、
D2、L1、L2で転送されるデータの範囲は太線で囲
まれた要素である。
Next, a memory access waiting operation according to the embodiment of the present invention will be described by taking a two-distance transfer as an example. FIGS. 4 and 5 are diagrams illustrating examples of data blocks transferred by two-distance transfer. In the example shown in FIG. 4, the transfer data is based on the transfer start address (B) of the transfer data, the first element distance (D1: 8 bytes in this example), and the number of elements to be transferred (first element distance). L1: four elements in this example), the second inter-element distance (D
2: 64 bytes in this example) and the number of elements to be transferred based on the second element-to-element distance (L2: 4 elements in this example), and are all defined by B, D1, D2, L1, and L2. Elements are transferred collectively. Here, the address range indicated by the first inter-element distance and the first number of elements is 1
The second inter-element distance D2 is the distance between the head elements of each block, and the number of elements transferred by the second inter-element distance is the number of blocks transferred at the second inter-element distance. It is. In FIG. 4, the above B, D1,
The range of data transferred in D2, L1, and L2 is an element surrounded by a thick line.

【0046】この例では、転送データはD1およびL1
で示されるブロック、すなわちe00、e01、e0
2、d03の4つの要素でなる第1ブロック、e04、
e05、e06、e07の要素でなる第2のブロック、
e08、e09、e10、e11の要素でなる第3のブ
ロック、およびe12、e13、e14、e15の要素
でなる第4のブロックの、4つのブロックで構成されて
おり、ここでD1が0でない限り各要素が同一アドレス
にアクセスすることはない。従って、この設定では、上
述した要素間の追い越しを意識することなくメモリアク
セスすることができる。
In this example, the transfer data is D1 and L1
, Ie, e00, e01, e0
2, a first block composed of four elements of d03, e04,
a second block consisting of elements e05, e06, e07,
It is composed of four blocks, a third block composed of elements e08, e09, e10 and e11, and a fourth block composed of elements e12, e13, e14 and e15, unless D1 is 0. No element accesses the same address. Therefore, in this setting, memory access can be performed without being aware of the above-mentioned overtaking between elements.

【0047】一方、図5(a)に示す例では、第1の要
素間距離D1(8バイト)、第2の要素間距離D2(1
6バイト)、第1の要素数L1(4要素)、第2の要素
数L2(5ブロック)の設定で2ディスタンス転送が行
われる。ここでは、図5(b)に示すように、要素02
と要素04、要素03と要素05、要素04と要素0
6...要素15と要素17とがそれぞれ同一アドレス
を有している。
On the other hand, in the example shown in FIG. 5A, the first element distance D1 (8 bytes) and the second element distance D2 (1
6 distances), a first element number L1 (four elements), and a second element number L2 (five blocks) are set to perform two-distance transfer. Here, as shown in FIG.
And element 04, element 03 and element 05, element 04 and element 0
6. . . Element 15 and element 17 each have the same address.

【0048】このような同一アドレスを有する複数の要
素を含む転送データを、例えば4要素を同時に処理でき
るクロスバを用いてメモリに格納すると、入力の際には
同一アドレスを有する要素02と要素04はそれぞれ別
の信号線入力される(入力タイミングは異なる)が、出
力の際には要素02と04が同一の出力ポートに出力さ
れる。このとき、例えば、メモリにバンクビジーが生じ
ていると、要素02と要素04とが同一タイミングで同
一出力ポートへ出力しようとする。このような場合は、
通常優先順位を調停して出力する要素が決定されるが、
転送スループットを高めるためにラウンドロビン制御等
を用いて優先順位を決定している場合は、要素04が要
素02より先にメモリに出力されることがある。このよ
うな場合には、要素番号順にメモリアクセスが行われな
いため、本来は要素番号の大きい要素04のデータがメ
モリに残るはずが、要素04に追い越された要素02の
データがメモリに残ってしまい、ソフトウエアの期待す
るメモリ動作が実行されない。
When such transfer data including a plurality of elements having the same address is stored in a memory using, for example, a crossbar capable of processing four elements at the same time, when input, the elements 02 and 04 having the same address become Although different signal lines are input (different input timings), elements 02 and 04 are output to the same output port at the time of output. At this time, for example, if bank busy occurs in the memory, the element 02 and the element 04 try to output to the same output port at the same timing. In such a case,
Normally, the elements to be output after arbitration are determined.
If the priority is determined using round robin control or the like in order to increase the transfer throughput, the element 04 may be output to the memory before the element 02. In such a case, since the memory access is not performed in the order of the element numbers, the data of the element 04 having the larger element number should originally remain in the memory. However, the data of the element 02 overtaken by the element 04 remains in the memory. As a result, the memory operation expected by the software is not performed.

【0049】このように、図5に示す設定(第1要素間
距離D1:8バイト、第2要素間距離D2:16バイ
ト、第1要素数L1:4要素、第2要素数L2:5ブロ
ック)で2ディスタンス転送が行われると、一のメモリ
アクセス内に同一アドレスが存在することになり同一ア
ドレスを有する要素間で追い越しが発生する。本実施形
態ではでは、この追い越しの発生を防ぐために、先行ブ
ロックのメモリアクセスの終了を待ち合わせて後続ブロ
ックのメモリアクセスを行うようにしている。
As described above, the settings shown in FIG. 5 (first element distance D1: 8 bytes, second element distance D2: 16 bytes, first element number L1: 4 elements, second element number L2: 5 blocks 2), the same address is present in one memory access, and an overtaking occurs between elements having the same address. In this embodiment, in order to prevent the overtaking, the memory access of the succeeding block is performed while waiting for the end of the memory access of the preceding block.

【0050】すなわち、図5に示す例では、要素00−
03、要素04−07、要素08−11、要素12−1
5、要素16−19と、第2要素間距離D2で区切られ
る要素グループ(ブロック)を待ち合わせを行う処理単
位として、第1のグループ(要素00−03)を最初に
メモリアクセスして、このメモリアクセスの終了を待っ
て第2のグループ(要素04−07)のメモリアクセス
命令を発行するようにしている(以下、第3、第4、第
5グループについても同様)。この待ち合わせを行うこ
とにより、第1グループの要素02のメモリアクセス処
理を第2グループの要素04のメモリアクセス処理が追
い越すことがなくなり(以下、第3、第4、第5グルー
プについても同様)、順序保証を行うことができる。
That is, in the example shown in FIG.
03, element 04-07, element 08-11, element 12-1
5. The first group (element 00-03) is first accessed as a unit of processing to wait for an element group (block) delimited by the element 16-19 and the second element distance D2, and this memory is accessed. Waiting for the end of the access, a memory access instruction of the second group (element 04-07) is issued (the same applies to the third, fourth and fifth groups). By performing this waiting, the memory access processing of the element 04 of the second group does not overtake the memory access processing of the element 02 of the first group (the same applies to the third, fourth, and fifth groups). Order guarantee can be made.

【0051】ただし、この待ち合わせ処理を行うと、先
行ブロックのメモリアクセス終了まで次のブロックのメ
モリアクセスが行われないため、メモリアクセスの性能
的には不利なものとなる。そこで、本発明の装置では、
一度に転送する要素のうち複数の要素に同一アドレスが
あるかどうかを検出して、上述の待ち合わせ処理を、同
一アドレスを有する要素がある場合にのみ行うようにし
ている。
However, if this waiting process is performed, the memory access of the next block is not performed until the memory access of the preceding block is completed, so that the performance of the memory access is disadvantageous. Therefore, in the device of the present invention,
It is detected whether or not a plurality of elements among the elements to be transferred at one time have the same address, and the above-described waiting process is performed only when there is an element having the same address.

【0052】図6は、図3に示す同一アドレス検出回路
41における同一アドレス検出動作を説明するための図
である。2ディスタンスデータ転送を行う時には、ノー
ド間データ転送制御部31から転送開始アドレスB、第
1要素間距離D1、第2要素間距離D2、第1要素数L
1、第2要素数L2が設定されたメモリアクセスリクエ
スト61が同一アドレス検出回路41に送られてくる。
同一アドレス検出回路41では、第1要素間距離D1と
第2要素間距離D2の絶対値の比較を行い、更に、以下
のエリア比較を行って、同一アドレスを有する要素が存
在するか否かの検出を行っている。
FIG. 6 is a diagram for explaining the same address detection operation in the same address detection circuit 41 shown in FIG. When performing two-distance data transfer, the transfer start address B, the first element distance D1, the second element distance D2, and the first element number L are transmitted from the internode data transfer control unit 31.
1, a memory access request 61 in which the second element number L2 is set is sent to the same address detection circuit 41.
The same address detection circuit 41 compares the absolute values of the first element distance D1 and the second element distance D2, and performs the following area comparison to determine whether elements having the same address exist. Detection is being performed.

【0053】ここで、|D1|<|D2|の場合であ
って、D1×(L1−1)で実現されるエリア以上にD
2が大きい場合は、複数要素が同一アドレスにアクセス
することがない。この場合、同一アドレス検出部41
は、発行管理部42に同一アドレス無としてリクエスト
を送る。発行管理部42では、これを受けて、データ転
送時にブロック毎の順序保証動作を行わず順次メモリア
クセスを発行する。
Here, in the case of | D1 | <| D2 |, where D is larger than the area realized by D1 × (L1-1).
When 2 is large, a plurality of elements do not access the same address. In this case, the same address detection unit 41
Sends a request to the issuance management unit 42 with no identical address. In response to this, the issue management unit 42 issues memory accesses sequentially without performing the order guarantee operation for each block during data transfer.

【0054】なお、|D1|<|D2|の場合であっ
て、D1×(L1−1)で実現されるエリアよりD2が
小さい場合は、同一アドレスに複数要素がアドレスする
可能性があるため、同一アドレス検出回路41は発行管
理部42に対して同一アドレス有との報告を行う。発行
管理部42ではこの報告を受けて、ブロック毎に状態監
視部16の処理終了信号を待ち合わせて、後続ブロック
のリクエストを発行するようにして、順序保証を行う。
When | D1 | <| D2 | and D2 is smaller than the area realized by D1 × (L1-1), a plurality of elements may be addressed to the same address. , The same address detection circuit 41 reports to the issue management unit 42 that the same address exists. In response to the report, the issue management unit 42 waits for a processing end signal of the state monitoring unit 16 for each block, and issues a request for a subsequent block to guarantee the order.

【0055】同様に、|D1|<|D2|の場合であ
って、D2×(L2−1)で実現されるエリア以上にD
1が大きい場合は、複数要素が同一アドレスにアクセス
することがなく、また、|D1|<|D2|の場合であ
って、D2×(L2−1)で実現されるエリア以上にD
1が小さいと同一アドレスにアクセスする可能性があ
る。従って、D2×(L2−1)で実現されるエリアに
対するD1の大きさに応じて発行管理部1012に同一
アドレス有、あるいは同一アドレス無の報告を行う。
Similarly, in the case of | D1 | <| D2 |, D is larger than the area realized by D2 × (L2-1).
When 1 is large, a plurality of elements do not access the same address, and | D1 | <| D2 |, where D is larger than the area realized by D2 × (L2-1).
If 1 is small, the same address may be accessed. Therefore, a report is made to the issue management unit 1012 that the same address exists or the same address does not exist, according to the size of D1 for the area realized by D2 × (L2-1).

【0056】なお、|D1|=|D2|の場合は、同
一アドレスへのアクセスとなるので、発行管理部42に
同一アドレス有の報告を行う。
In the case of | D1 | = | D2 |, since the access is to the same address, the issue management unit 42 is notified that the same address exists.

【0057】このように、同一アドレスの検出をエリア
比較により近似的に行うことによって、検出に必要なハ
ードウエア量を小さく抑えることができる。
As described above, by performing the detection of the same address approximately by comparing the areas, the amount of hardware required for the detection can be reduced.

【0058】なお、ロードアクセス時には、要素間で追
い越しがあっても同一データを読み出すことになり何ら
問題が生じないため、本例では、共有メモリへのストア
動作時にのみこの順序保証動作を行うようにしている。
発行管理部42では、ロード動作かストア動作かを判断
して、順序保証を行うか否かの制御を行う。
At the time of load access, the same data is read even if there is an overtaking between elements, so that there is no problem. Therefore, in this example, this order assurance operation is performed only at the time of the store operation to the shared memory. I have to.
The issue management unit 42 determines whether the operation is a load operation or a store operation, and controls whether or not to guarantee the order.

【0059】このように、メモリストア時にのみ順序保
証を行うようにすることにより、順序保証動作によるメ
モリ転送性能の劣化を最小限に抑えることができる。
As described above, by guaranteeing the order only at the time of memory store, deterioration of the memory transfer performance due to the order guarantee operation can be minimized.

【0060】[0060]

【発明の効果】上述したとおり、本発明のメモリアクセ
ス処理装置では、必要に応じて転送データ要素について
メモリアクセスの順序保証を行うようにしているため、
一のメモリアクセスリクエスト内に同一アドレスを有す
る要素が複数存在するような場合でも、期待されるメモ
リ動作を正しく行うことができる。また、同一アドレス
を有する要素が複数存在するか否かを検出して、このよ
うな要素が存在する場合にも前記順序保証を行うように
しているので、データの転送性能を大幅に劣化させるこ
とがない。更に、同一アドレスを有する要素が複数存在
するか否かの検出をエリア比較を用いて近似的に行うよ
うにしているため、順序保証を行うために必要なハード
ウエア量を抑えることができる。
As described above, in the memory access processing device of the present invention, the order of memory access is guaranteed for transfer data elements as necessary.
Even when a plurality of elements having the same address exist in one memory access request, the expected memory operation can be performed correctly. In addition, since it is detected whether or not there are a plurality of elements having the same address, and the order is guaranteed even when such elements exist, the data transfer performance is significantly deteriorated. There is no. Further, since the detection of whether or not there are a plurality of elements having the same address is performed approximately by using the area comparison, the amount of hardware required for guaranteeing the order can be reduced.

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

【図1】図1は、本発明のメモリアクセス処理装置を適
用する情報処理装置の構成を示す図である。
FIG. 1 is a diagram illustrating a configuration of an information processing apparatus to which a memory access processing device according to the present invention is applied;

【図2】図2は、図1に示す情報処理装置のノード間制
御部の詳細な構成を示す図である。
FIG. 2 is a diagram illustrating a detailed configuration of an inter-node control unit of the information processing apparatus illustrated in FIG. 1;

【図3】図3は、図1に示す情報処理装置のメモリアク
セス制御部とメモリアドレス/データクロスバの詳細な
構成を示す図である。
FIG. 3 is a diagram illustrating a detailed configuration of a memory access control unit and a memory address / data crossbar of the information processing apparatus illustrated in FIG. 1;

【図4】図4は、2ディスタンス転送で転送するデータ
構成の一例を示す図である。
FIG. 4 is a diagram illustrating an example of a data configuration transferred by two-distance transfer;

【図5】図5は、2ディスタンス転送で転送するデータ
構成の他の例を示す図である。
FIG. 5 is a diagram illustrating another example of a data configuration transferred by two-distance transfer;

【図6】図6は、本発明の装置における同一アドレスの
検出を説明するための図である。
FIG. 6 is a diagram for explaining detection of the same address in the device of the present invention.

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

1 情報処理装置 21 クロスバスイッチ 22 ノード 23 プロセッサ 24 ノード間制御部 25 共有メモリ 31 転送制御部 32 メモリアクセス制御部 33 データ受信バッファ 34 メモリアドレス/ストアデータクロスバ 35 ロードデータクロスバ 36 データ送信バッファ 41 同一アドレス検出部 42 発行管理部 43a〜43d アドレス生成部 45 メモリアクセス状態監視部 46 競合調停部 51、53 レジスタ 52 選択回路 61 メモリアクセス情報 62 メモリアクセス終了信号 DESCRIPTION OF SYMBOLS 1 Information processing apparatus 21 Crossbar switch 22 Node 23 Processor 24 Inter-node control unit 25 Shared memory 31 Transfer control unit 32 Memory access control unit 33 Data reception buffer 34 Memory address / store data crossbar 35 Load data crossbar 36 Data transmission buffer 41 Same address Detection unit 42 issue management unit 43a to 43d address generation unit 45 memory access state monitoring unit 46 contention arbitration unit 51, 53 register 52 selection circuit 61 memory access information 62 memory access end signal

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】 複数のデータ要素で構成された転送デー
タを一回の転送命令でメモリアクセスするメモリアクセ
ス処理装置において、当該処理装置が、一のメモリアク
セスリクエスト内に存在し同一アドレスを有する複数の
転送データ要素についてのメモリアクセスを所定の順序
で行うようにする順序保証手段を具えることを特徴とす
るメモリアクセス装置。
1. A memory access processing device for performing memory access to transfer data composed of a plurality of data elements by a single transfer instruction, wherein the processing device includes a plurality of memory devices having the same address in one memory access request. A memory access device for performing a memory access for the transfer data element in a predetermined order.
【請求項2】 請求項1に記載のメモリアクセス装置に
おいて、前記転送データを複数の転送データ要素からな
るデータブロックに分けて、このデータブロック毎にメ
モリアクセスを行い、前記同一アドレスを有する転送デ
ータ要素のうちの先行するデータ要素を含むデータブロ
ックのメモリアクセスの終了を待ち合わせて後続のデー
タ要素を含むデータブロックのメモリアクセスを行うこ
とによって前記順序保証を行うことを特徴とするメモリ
アクセス装置。
2. The memory access device according to claim 1, wherein said transfer data is divided into data blocks each comprising a plurality of transfer data elements, a memory access is performed for each data block, and said transfer data having said same address. A memory access device for performing the above-mentioned order guarantee by waiting for completion of memory access of a data block including a preceding data element among the elements and performing memory access of a data block including a subsequent data element.
【請求項3】 請求項2に記載のメモリアクセス装置に
おいて、前記データの転送を転送データの転送開始アド
レス(B)と、第1の要素間距離(D1)と、第2の要
素間距離(D2)と、第1の要素数(L1)と、第2の
要素数(L2)とで規定される2ディスタンス転送で行
い、前記データブロックを前記第1の要素間距離と前記
第1の要素数とで決まる転送データ要素で構成したこと
を特徴とするメモリアクセス装置。
3. The memory access device according to claim 2, wherein the data transfer is performed using a transfer start address (B) of a transfer data, a first inter-element distance (D1), and a second inter-element distance (D). D2), two-distance transfer defined by a first element number (L1), and a second element number (L2), and the data block is divided into the first inter-element distance and the first element. A memory access device comprising a transfer data element determined by a number.
【請求項4】 請求項1ないし3のいずれかに記載のメ
モリアクセス装置において、当該処理装置が、一のメモ
リアクセスリクエスト中に同一アドレスを有する複数の
データ転送要素が存在するか否かを検出する同一アドレ
ス検出手段を具え、当該同一アドレス検出手段が一のメ
モリアクセス中に同一アドレスを有する複数のデータ転
送要素の存在を検出したときのみ前記順序保証を行うこ
とを特徴とするメモリアクセス装置。
4. The memory access device according to claim 1, wherein the processing device detects whether a plurality of data transfer elements having the same address exist in one memory access request. A memory access device comprising the same address detection means for performing the above-mentioned order guarantee only when the same address detection means detects the presence of a plurality of data transfer elements having the same address during one memory access.
【請求項5】 請求項3または4に記載のメモリアクセ
ス装置において、前記同一アドレス検出手段が前記第1
の要素間距離と第2の要素間距離の絶対値を比較して、 (1)前記第1の要素間距離が第2の要素間距離より小
さく(|D1|<|D2|)、D1×(L1−1)で実
現されるエリアより前記第2の要素間距離(D2)が小
さい場合; (2)前記第1の要素間距離が第2の要素間距離より大
きく(|D1|>|D2|)、D2×(L2−1)で実
現されるエリアより第1の要素間距離(D1)が小さい
場合;または (3)前記第1の要素間距離と第2の要素間距離とが等
しい(|D1|=|D2|)場合;に、 一のメモリアクセスリクエスト内に同一アドレスを有す
る複数の転送データ有として前記順序保証を行うように
したことを特徴とするメモリアクセス装置。
5. The memory access device according to claim 3, wherein said same address detecting means is provided with said first address.
(1) the first inter-element distance is smaller than the second inter-element distance (| D1 | <| D2 |), and D1 × (2) when the second inter-element distance (D2) is smaller than the area realized by (L1-1); (2) the first inter-element distance is larger than the second inter-element distance (| D1 |> | D2 |), where the first inter-element distance (D1) is smaller than the area realized by D2 × (L2-1); or (3) the first inter-element distance and the second inter-element distance are different. In the case of equality (| D1 | = | D2 |), a memory access device is characterized in that the order is guaranteed as a plurality of transfer data having the same address in one memory access request.
【請求項6】 請求項1ないし5のいずれかに記載のメ
モリアクセス処理装置において、前記順序保証動作をス
トア動作の時のみ行うようにしたことを特徴とするメモ
リアクセス処理装置。
6. The memory access processing device according to claim 1, wherein said order assurance operation is performed only during a store operation.
【請求項7】 請求項1ないし6のいずれかに記載のメ
モリアクセス処理装置において、前記装置が、更に、転
送する要素についてのメモリアクセスを発行するメモリ
アクセス発行管理部と、転送データのメモリアクセス状
態を監視して前記発行管理部で発行したメモリアクセス
が終了したことを検出して前記発行管理部に通知するメ
モリアクセス状態管理部とを具え、前記順序保証を行う
場合に、先行する要素を含むデータブロックのメモリア
クセスの終了を前記メモリアクセス状態管理部で確認し
た後に、前記メモリアクセス発行管理部が後続の要素を
含むデータブロックのメモリアクセスを発行するように
した事を特徴とするメモリアクセス処理装置。
7. The memory access processing device according to claim 1, wherein said device further comprises: a memory access issue management unit for issuing a memory access for an element to be transferred; and a memory access for transfer data. A memory access state management unit that monitors the state and detects that the memory access issued by the issue management unit has ended, and notifies the issue management unit of the termination. A memory access issuance management unit that issues a memory access to a data block including a subsequent element after the memory access state management unit confirms completion of memory access of the data block including the memory block. Processing equipment.
JP06958299A 1999-03-16 1999-03-16 Memory access processor Expired - Fee Related JP3425885B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06958299A JP3425885B2 (en) 1999-03-16 1999-03-16 Memory access processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06958299A JP3425885B2 (en) 1999-03-16 1999-03-16 Memory access processor

Publications (2)

Publication Number Publication Date
JP2000267927A true JP2000267927A (en) 2000-09-29
JP3425885B2 JP3425885B2 (en) 2003-07-14

Family

ID=13406965

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06958299A Expired - Fee Related JP3425885B2 (en) 1999-03-16 1999-03-16 Memory access processor

Country Status (1)

Country Link
JP (1) JP3425885B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155580B2 (en) 2002-07-25 2006-12-26 Nec Corporation Information processing apparatus and method of controlling memory thereof
US7336657B2 (en) 2001-07-31 2008-02-26 Nec Corporation Inter-nodal data transfer system and data transfer apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7336657B2 (en) 2001-07-31 2008-02-26 Nec Corporation Inter-nodal data transfer system and data transfer apparatus
US7155580B2 (en) 2002-07-25 2006-12-26 Nec Corporation Information processing apparatus and method of controlling memory thereof

Also Published As

Publication number Publication date
JP3425885B2 (en) 2003-07-14

Similar Documents

Publication Publication Date Title
US5278975A (en) Synchronization control system in a parallel computer
JP3639319B2 (en) Parallel computer system, data transfer control method, and transmission / reception control device
US6339812B1 (en) Method and apparatus for handling invalidation requests to processors not present in a computer system
JP2000267927A (en) Memory access processor
KR100357284B1 (en) The one chip asynchronous microprocessor Inter Processor Communication circuit
US6701407B1 (en) Multiprocessor system with system modules each having processors, and a data transfer method therefor
JP3508857B2 (en) Data transfer method between nodes and data transfer device
JPH04260962A (en) Synchronization control system in parallel computers
JPH08212178A (en) Parallel computer
JPH0341856B2 (en)
JP3251723B2 (en) Broadcast communication method
CA2413712A1 (en) Node-to-node data transfer method and node-to-node data transfer apparatus
JP3791463B2 (en) Arithmetic unit and data transfer system
JPH0567055A (en) Multiprocessor system having plural external bus
JP2820054B2 (en) Bus interface device
JP2785990B2 (en) Packet switch with I / O port status management
JP5120765B2 (en) Parallel computer system
EP1193606B1 (en) Apparatus and method for a host port interface unit in a digital signal processing unit
JPS61118847A (en) Simultaneous access control system of memory
JPH0546525A (en) File control system
JP2504528B2 (en) Bus control system between main memory controllers
JP3211694B2 (en) Multiprocessor connection method
JP2000132527A (en) Inter-processor communication controller
JP2003308248A (en) Memory controller
JPH07334453A (en) Memory access system

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090509

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100509

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees