JP6821313B2 - Data processing system and data processing method - Google Patents
Data processing system and data processing method Download PDFInfo
- Publication number
- JP6821313B2 JP6821313B2 JP2016057378A JP2016057378A JP6821313B2 JP 6821313 B2 JP6821313 B2 JP 6821313B2 JP 2016057378 A JP2016057378 A JP 2016057378A JP 2016057378 A JP2016057378 A JP 2016057378A JP 6821313 B2 JP6821313 B2 JP 6821313B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data processing
- area
- storage area
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
本発明は、データ処理システム及びデータ処理方法に関する。 The present invention relates to a data processing system及beauty data processing method.
データ処理を高速に行う手法は、ハードディスクやCPU(Central Processing Unit)間通信装置等を対象として様々な手法が提案されている。例えば、ハードディスク等の記憶装置内に記憶したファイルを用いたデータ処理を高速に行うための従来技術として、特許文献1に記載された技術が提案されている。特許文献1には、速度の異なる2つの記憶装置を設け、アクセス頻度の高いファイル管理情報を高速な記憶装置に記憶することでデータ処理の速度を向上させる技術が述べられている。また、CPU間通信等のチップ間通信では、チップ間バスを介して相手先のチップドメインにあるメモリへデータを直接書き込むことで、データ処理のオーバーヘッドを軽減させる手法が一般的である。
As a method for performing data processing at high speed, various methods have been proposed for hard disks, communication devices between CPUs (Central Processing Units), and the like. For example, the technique described in
特許文献1では、アクセス頻度の高いファイル管理情報を高速な記憶装置に格納することでデータ処理能力を向上させようとしているが、その記憶装置の読み取り速度が書き込み速度に比較して遅い場合には相対的な処理能力が低下してしまう。また、チップ間通信に用いられる一般的な手法では、相手先のチップドメインにあるメモリからデータ領域を確保する際、データ領域の管理テーブル情報などアクセス頻度が高いデータをチップ間インターフェース経由で読み込まなければならなかった。PCI(Peripheral Component Interconnect)インターフェース等の一般的なチップ間インターフェースは、読み込み速度が書き込み速度よりも遅いことが知られている。以上のことから前述の従来技術では、アクセス頻度の高いデータの読み込み速度がボトルネックになり、データ処理能力が低下してしまう。本発明は、このような事情に鑑みてなされたものであり、ブロック間インターフェースを介したデータ処理ブロック間の通信性能を向上させることを目的とする。
本発明に係るデータ処理システムは、第1のデータ処理ブロックと、前記第1のデータ処理ブロックから送信されるデータが書き込まれるメモリを有する第2のデータ処理ブロックとがブロック間のバスを介して接続されたデータ処理システムであって、前記第1のデータ処理ブロックは、前記第2のデータ処理ブロックが有する前記メモリの各空き領域の先頭アドレスとサイズとを含む空き領域リストを記憶する記憶手段と、前記メモリへのデータの書き込みを行う場合、当該データのサイズに基づいて前記記憶手段に記憶された前記空き領域リストにおける前記各空き領域の先頭アドレスとサイズとを参照して、前記メモリにおいて前記データを書き込み可能な空き領域から当該データを書き込むデータ格納領域を確保する管理手段と、前記ブロック間のバスを介して、前記管理手段によって確保した前記メモリの前記データ格納領域にデータを書き込み、当該データ格納領域のアドレスを示す情報及び当該データの受信要求を前記第2のデータ処理ブロックに送信する送信手段とを有し、前記第2のデータ処理ブロックは、前記第1のデータ処理ブロックから前記受信要求を受けた場合、前記データ格納領域のアドレスを示す情報に基づいて前記メモリの前記データ格納領域からデータを読み出し、読み出し後に当該データの受信完了を前記第1のデータ処理ブロックに通知する受信手段とを有し、前記第1のデータ処理ブロックの前記管理手段は、前記データ格納領域を確保した際に、前記データを書き込み可能な空き領域のサイズが当該データ格納領域のサイズと一致する場合は、当該空き領域を前記空き領域リストから削除し、当該空き領域のサイズが当該データ格納領域のサイズより大きい場合は、前記空き領域リストにおいて当該空き領域の先頭アドレスとサイズとを当該データ格納領域のサイズに基づいて更新し、前記第1のデータ処理ブロックの前記管理手段は、前記受信完了の通知を受けると、前記データ格納領域に空き領域が後続している場合は、当該空き領域の先頭アドレスを当該データ格納領域の先頭アドレスに更新し、当該空き領域のサイズを当該データ格納領域のサイズだけ増加し、前記データ格納領域に空き領域が後続していない場合は、当該データ格納領域の先頭アドレスとサイズとを新たな空き領域の先頭アドレスとサイズとして前記空き領域リストに登録することを特徴とする。 In the data processing system according to the present invention, a first data processing block and a second data processing block having a memory for writing data transmitted from the first data processing block are connected via a bus between the blocks. In a connected data processing system , the first data processing block is a storage means for storing a list of free areas including the start address and size of each free area of the memory of the second data processing block. When writing data to the memory, the start address and size of each free area in the free area list stored in the storage means are referred to in the memory based on the size of the data. Data is transferred to the data storage area of the memory secured by the management means via a management means for securing a data storage area for writing the data from a free area where the data can be written and a bus between the blocks. writing, and a transmitting means for receiving requests for information and the person the data indicating the address of the person the data storage area is transmitted to the second data processing block, the second data processing block, the first If the data processing block receives the reception request, the data storage based on the information indicating the address of the area to read out the data from the data storage area of the memory, after the completion of reception of the data first read have a receiving means for notifying the data processing block, the management unit of the first data processing block, said upon securing a data storage area, the size of the free space available write the data storing the data If it matches the size of the area, the free area is deleted from the free area list, and if the size of the free area is larger than the size of the data storage area, the start address of the free area is used in the free area list. When the size is updated based on the size of the data storage area and the management means of the first data processing block receives the notification of the completion of reception, the data storage area is followed by a free area. Updates the start address of the free area to the start address of the data storage area, increases the size of the free area by the size of the data storage area, and if the free area does not follow the data storage area. It is characterized in that the start address and size of the data storage area are registered in the free area list as the start address and size of a new free area .
本発明によれば、ブロック間バスを介した読み込みを行うことなく、ブロック間バスを介したデータの書き込みが行えるので、ブロック間バスを介したデータ処理ブロック間の通信性能を向上させることができる。 According to the present invention, data can be written via the inter-block bus without reading via the inter-block bus, so that the communication performance between data processing blocks via the inter-block bus can be improved. ..
以下、本発明の実施形態を図面に基づいて説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(第1の実施形態)
本発明の第1の実施形態について説明する。図1は、第1の実施形態におけるデータ処理システムの構成例を示すブロック図である。第1の実施形態におけるデータ処理システムは、第1のデータ処理ブロック105、第2のデータ処理ブロック109、及びブロック間バス110を有する。第1のデータ処理ブロック105と第2のデータ処理ブロック109とは、ブロック間バス110を介して接続されている。
(First Embodiment)
The first embodiment of the present invention will be described. FIG. 1 is a block diagram showing a configuration example of a data processing system according to the first embodiment. The data processing system according to the first embodiment includes a first
ここで、データ処理ブロックとは、例えばCPU(Central Processing Unit)とメモリ等の周辺デバイスから構成された1つのドメインを表す。また、ブロック間バスとは、例えばPCI(Peripheral Component Interconnect)やPCI Expressに代表されるチップ間バスや、オンチップバスとして用いられる汎用バスを表す。ブロック間バスは、例えばブロック間のバスを介したデータの書き込み速度に比較してブロック間のバスを介したデータの読み込み速度が遅いバスである。図1に示したデータ処理システムの構成は、例えば異なるチップに配置されたデータ処理ブロックがチップ間バスを介して接続された形態を含む。また、図1に示したデータ処理システムの構成は、例えば1つのチップ内に配置された複数のデータ処理ブロックがオンチップバスを介して接続された形態を含む。 Here, the data processing block represents one domain composed of, for example, a CPU (Central Processing Unit) and peripheral devices such as a memory. Further, the inter-block bus represents, for example, an inter-chip bus represented by PCI (Peripheral Component Interconnect) or PCI Express, or a general-purpose bus used as an on-chip bus. The inter-block bus is, for example, a bus in which the data reading speed via the inter-block bus is slower than the data writing speed via the inter-block bus. The configuration of the data processing system shown in FIG. 1 includes, for example, a form in which data processing blocks arranged on different chips are connected via an inter-chip bus. Further, the configuration of the data processing system shown in FIG. 1 includes, for example, a form in which a plurality of data processing blocks arranged in one chip are connected via an on-chip bus.
第1のデータ処理ブロック105は、送信起動部101、送信部102、ブロック間通信のメモリ管理部103、及びブロック間通信の領域管理テーブル104を有する。第2のデータ処理ブロック109は、受信通知部107、受信部106、及びブロック間通信用のメモリプール108を有する。図1に示した第1の実施形態におけるデータ処理システムの動作について図2を参照して説明する。図2は、第1の実施形態におけるデータ処理システムの動作例を示すフローチャートである。
The first
まず、ステップS201にて、送信起動部101が送信部102へ送信開始指示を出す。このとき、送信起動部101は、送信データ格納領域サイズ及び送信データの情報をあわせて送信部102に渡す。送信開始指示を受け取った送信部102は、ステップS202にて、送信領域確保要求をメモリ管理部103へ送る。このとき、ステップS201において受け取った送信データ格納領域サイズもあわせてメモリ管理部103に渡す。
First, in step S201, the
ステップS203にて、メモリ管理部103が領域管理テーブル104を解析して、必要なサイズの送信データ格納領域をメモリプール108上に確保する。ステップS203における処理について、図3〜図5を用いて詳細に説明する。図3は、領域管理テーブルによる領域管理方法を説明するための図である。図3(A)には、初期化直後状態における領域管理テーブル104及びメモリプール108の一例を示しており、図3(B)には、動作中状態における領域管理テーブル104及びメモリプール108の一例を示している。領域管理テーブルは、メモリプールに係る領域割り当て情報であり、例えばメモリプールを所定の大きさの領域に分割した領域単位でデータが書き込み可能であるか否かを示す情報を含んでいる。
In step S203, the
ここで、メモリプール108のサイズはQバイトであり、メモリプール108での領域取得最小単位はNバイトであるとする。したがって、取得される領域サイズはNバイトの倍数となる。また、簡単のためにQはNの倍数であるとする。領域管理テーブル104の実装は様々な形態が考えられるが、ここではTable[Q/N][3]で表される2次元配列であるものとする。Table[Idx][...]は、メモリプール108のアドレス(N×Idx)を先頭とする領域の状態を表しており、その意味は下記の通りである。
Table[Idx][1, 2, 3]=[前の空領域Idx、次の空領域Idx、Idx領域の空きサイズ]
Here, it is assumed that the size of the
Table [Idx] [1, 2, 3] = [Previous empty area Idx, Next empty area Idx, Idx area free size]
例えば、図3(B)に示した領域管理テーブル104の要素305〜307の値を持つIdx=nの状態は、次のようになる。「アドレス(n×N)を先頭とするSize_nバイトの連続領域が空いており、この空き領域の前の空き領域はIdx=pであり、この空き領域の後ろの空き領域はIdx=mである」ということになる。なお、Previous-Idxの値が“−1”であるとき、自身が空き領域リストの先頭であることを表し、Next-Idxの値が“−1”であるとき、自身が空き領域リストの最後尾であることを表すものとする。また、空き領域リスト先頭インデックス301の値が“−1”であるとき、空き領域が全く存在しないことを意味する。
For example, the state of Idx = n having the values of the
次に、図3(B)に示した動作中状態にあるときにEバイトの領域の取得要求があった場合の動作を、図4に示すフローチャートを参照して説明する。図4は、図2のステップS203におけるメモリ領域取得処理の例を示すフローチャートである。なお、特に断らない限り図4の処理はメモリ管理部103が行う。
Next, the operation when there is a request to acquire the E-byte area while in the operating state shown in FIG. 3B will be described with reference to the flowchart shown in FIG. FIG. 4 is a flowchart showing an example of the memory area acquisition process in step S203 of FIG. Unless otherwise specified, the
まず、ステップS401にて、メモリ管理部103は、送信部102から送信領域確保要求とともに渡された送信データ格納領域サイズにより指定されたEを下回らない最小のNの倍数Rを求める。次に、ステップS402にて、メモリ管理部103は、領域管理テーブル104の空き領域リスト先頭インデックス301を参照して空き領域の先頭のインデックスを求める。次に、ステップS403にて、メモリ管理部103は、先頭インデックスが“−1”であるか否かを判断し、“−1”である場合にはメモリプール108に空き領域が皆無であるので直ちにステップS408へ進みエラー終了する。
First, in step S401, the
ステップS403での判断の結果、先頭インデックスが“−1”でない場合には、メモリ管理部103は、ステップS404にて先頭インデックスが示す情報を参照して空き領域のサイズを求める。図4(B)に示した例では、先頭インデックスが“2”であるので、メモリ管理部103は、領域管理テーブル104のTable[p][2]を参照して空き領域のサイズを求める。
As a result of the determination in step S403, if the start index is not "-1", the
次に、ステップS405にて、メモリ管理部103は、ステップS404において求めた空き領域のサイズが、ステップS401において求めたR以上であるか否かを判別する。ステップS404において求めた空き領域のサイズがRよりも小さい場合、メモリ管理部103は、ステップS406にてTable[p][1]を参照して次の空き領域のインデックスを求める。ここで、求めた次の空き領域のインデックスの値が“−1”であれば、メモリ管理部103は、ステップS407にて条件を満たす領域が存在しなかったと判断して、ステップS408へ進みエラー終了する。一方、ステップS406において求めた次の空き領域のインデックスの値が“−1”でなければ、メモリ管理部103は、ステップS404へ戻り再びループ処理を繰り返す。
Next, in step S405, the
メモリ管理部103は、ステップS405での判断の結果、求めた空き領域のサイズがR以上である場合にはステップS409へ進み、ステップS409〜S411にて領域管理テーブル104の更新処理を行う。このときのインデックスがiであったとすると、Pi=Table[i][0]であり、Ni=Table[i][1]であり、Si=Table[i][2]である。更新処理後の領域管理テーブル104及びメモリプール108の状態は、例えば図5に示すようになる。
If the size of the obtained free area is R or more as a result of the determination in step S405, the
図5(A)は、求めた空き領域のサイズがRである場合に行われるステップS410での更新処理後の領域管理テーブル104及びメモリプール108の状態を示している。また、図5(B)は、求めた空き領域のサイズがRとは異なる(Rより大きい)場合に行われるステップS411での更新処理後の領域管理テーブル104及びメモリプール108の状態を示している。なお、ステップS410及びS411の処理では、Pi又はNiが“−1”であるときには、対応するリストの更新処理を省くものとする。例えばPi=−1であるとき、Table[Pi][...]の代入処理を行わない。
FIG. 5A shows the state of the area management table 104 and the
図4に戻り、ステップS409〜S411の処理が終了すると、ステップS412にて、メモリ管理部103は、インデックスiが空き領域リストの先頭であるか否かを判断する。ここで先頭であると判断したら、ステップS413にて、メモリ管理部103は、領域管理テーブル104の空き領域リスト先頭インデックス301を更新する。最後に、ステップS414にて、メモリ管理部103は、空き領域のインデックスをメモリプールのアドレスに変換して返す。なお、offsetは、ブロック間バス110のインターフェース規格によって定まるIO空間の値である。例えばCPUのアドレス空間内のPCIウインドウにマッピングされたアドレス等がそれに相当する。以上で図2に示したステップS203の処理の詳細説明を終わる。
Returning to FIG. 4, when the processing of steps S409 to S411 is completed, in step S412, the
図2に戻り、ステップS204以降の処理について説明する。ステップS204にて、送信部102が、ステップS203において取得したメモリプール108上の送信データ格納領域に送信データを書き込む。書き込む送信データは、ステップS201において送信起動部101が送信部102へ渡したものである。また、送信データの書き込みは、ブロック間バス110を経由して行う。
Returning to FIG. 2, the processing after step S204 will be described. In step S204, the
次に、ステップS205にて、送信部102が、送信データ格納領域のアドレスと受信要求通知とを受信通知部107へ通知する。送信データ格納領域のアドレス及び受信要求通知の通知はブロック間バス110を経由して行う。ステップS206にて、受信通知部107が、受信した送信部102からの受信要求とデータ格納領域のアドレスとを受信部106へ通知する。通知されるデータ格納領域アドレスは、受信部106が解釈可能なアドレス空間での値に変換されたものであり、送信部102は自分のアドレス空間と相手のアドレス空間のオフセットを管理しており、これらの変換機能を有する。
Next, in step S205, the
次に、ステップS207にて、受信部106が、データ格納領域のアドレスを参照して、メモリプール108からデータを読み込む。ここで、受信通知部107の構造としては様々な形態が考えられる。例えばスクラッチパッドと割り込み指示ビットからなる通信レジスタで構成することが可能である。この場合、送信部102は、ブロック間バス110にマッピングされた受信通知部107のスクラッチパッドへ送信データ格納領域のアドレスを書き込み、さらに割り込み指示ビットを立てる。これにより、受信部106が受信要求とデータ格納領域のアドレスとを受け取ることが可能となる。
Next, in step S207, the receiving
なお、受信部106は、送信データを読み込んだことを送信側(本例ではデータ処理ブロック105)へ通知することが可能である。この方式は特に限定しないが、例えば送信側のメモリの決められた領域に送信データ格納領域のアドレスと受信完了フラグを立てることで読み出し完了を通知することができる。また、例えば送信側の特定のレジスタへ結果を書き込むことでも同様の通知を行うことが可能である。
The receiving
次に、ステップS208にて、送信起動部101が、送信部102に対して送信終了を指示する。送信起動部101が送信部102に対して送信終了指示を行うタイミングを決定する方法には様々なものが考えうるが、ここでは特に限定しない。ステップS209にて、送信部102が、送信データ格納領域の先頭アドレスとサイズとをメモリ管理部103へ送り、その送信データ格納領域の解放を指示する。
Next, in step S208, the
ここで、送信部102は、送信データが受信部106によって確実に読み込まれたかどうかを調べることが可能である。方式は特に限定しないが、ステップS207の説明で述べた例に倣えば、メモリ上の受信完了フラグを調べる方法や、特定のレジスタを確認する方法等がある。送信部102は、例えば受信が完了するまで送信データ格納領域の解放要求を出さない選択も可能である。こうすることで、読み込み前のデータを破壊してしまうことを防止することができる。
Here, the
ステップS210にて、メモリ管理部103が、領域管理テーブル104を操作して、メモリプール108上にとられた送信データ格納領域を解放する。以下、ステップS210における処理について、図3を参考にしながら、主に図6のフローチャートを用いて詳細に説明する。図6は、図2のステップS210におけるメモリ領域解放処理の例を示すフローチャートである。なお、特に断らない限り図6の処理はメモリ管理部103が行う。
In step S210, the
まず、ステップS601にて、メモリ管理部103は、解放対象となる領域のアドレスAとそのサイズSを受け取る。これらの値は、ステップS209において送信部102がメモリ管理部103へ渡したものである。次に、ステップS602にて、メモリ管理部103は、解放対象となる領域のアドレスAを領域管理テーブル104における空き領域リストのインデックスに変換する。offsetはステップS414において変換に用いたものと同じである。また、領域管理テーブル104の空き領域管理手法については図3を用いて前述した通りである。
First, in step S601, the
次に、ステップS603にて、メモリ管理部103は、ステップS602において求めたインデックスiを挟むPi及びNi(Pi<i<Ni)を求める。この処理は、領域管理テーブル104をリスト探索することで行う。次に、ステップS604にて、メモリ管理部103は、対象となるインデックスiが空き領域リストの終端であるか否かを判断する。ここで、Niが“−1”であることが空き領域リストの終端であることを表す。
Next, in step S603, the
ステップS604での判断の結果、Niが“−1”である場合にはステップS607に分岐し、Niが“−1”でない場合にはステップS605に進む。ステップS605にて、メモリ管理部103は、解放対象の領域が次の空き領域と接続されるべきかどうかを判断する。メモリ管理部103は、接続されるべきと判断した場合にはステップS606にて領域管理テーブル104の更新処理を行い、接続されるものではないと判断した場合にはステップS607にて領域管理テーブル104の更新処理を行う。更新処理後の領域管理テーブル104及びメモリプール108の状態は、例えば図7に示すようになる。図7(A)は、ステップS606での更新処理後の領域管理テーブル104及びメモリプール108の状態を示している。また、図7(B)は、ステップS607での更新処理後の領域管理テーブル104及びメモリプール108の状態を示している。
As a result of the determination in step S604, if Ni is "-1", it branches to step S607, and if Ni is not "-1", it proceeds to step S605. In step S605, the
図6に戻り、ステップS605〜S607において領域管理テーブル104におけるリストの更新処理を行った後、ステップS608にて、メモリ管理部103は、解放対象となるインデックスiが空き領域リストの先頭であるか否かを判断する。ここで、Piが“−1”であることが先頭であることを表す。
Returning to FIG. 6, after updating the list in the area management table 104 in steps S605 to S607, in step S608, the
ステップS608での判断の結果、Piが“−1”である場合、メモリ管理部103は、ステップS609にて空き領域リスト先頭インデックス301をiに書き換える。なお、ステップS604にて対象となるインデックスiが空き領域リストの先頭であるときの処理はステップS607における前述した処理と同様であるので、説明は省略する。以上で図6に示したステップS210の処理の詳細説明を終わる。
再び図2に戻り、ステップS210の処理が終了するとすべての処理が完了する。以上で第1の実施形態におけるデータ処理システムの動作説明を終了する。
As a result of the determination in step S608, when Pi is "-1", the
Returning to FIG. 2 again, when the process of step S210 is completed, all the processes are completed. This is the end of the operation description of the data processing system in the first embodiment.
第1の実施形態によれば、ブロック間バスを介したデータ処理ブロック間の通信において、送信先である第2のデータ処理ブロック109のメモリプール108の空き領域を示す領域管理テーブルを送信元である第1のデータ処理ブロック105が有する。これにより、ブロック間バスを介した読み込みを行うことなく、第2のデータ処理ブロック109でのデータ格納領域を決定してデータ通信を行うことが可能となり、データ通信に係るブロック間バスを介した読み込みの発生を抑止することができる。したがって、ブロック間バスを介したデータ通信における読み込み処理のボトルネックを解消し、データ処理ブロック間の通信性能を向上させることができる。
According to the first embodiment, in the communication between the data processing blocks via the inter-block bus, the transmission source uses an area management table indicating the free area of the
なお、前述した実施形態では第1のデータ処理ブロック105が送信を担い第2のデータ処理ブロック109が受信を担うようにしているが、双方のデータ処理ブロックが送受信系を組み込むことで双方向通信が可能である。
In the above-described embodiment, the first
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。なお、第2の実施形態の説明に用いる図面に関し、前述した実施形態と同じ構成要素については同じ参照符号をつけ、説明を省くことにする。図8は、第2の実施形態におけるデータ処理システムの構成例を示すブロック図である。図8において、送信側である第1のデータ処理ブロック105に相対して、ブロック間バス110を介して受信側であるN個(Nは自然数)の第2のデータ処理ブロック805〜807が接続されている。
(Second Embodiment)
Next, a second embodiment of the present invention will be described. Regarding the drawings used for the description of the second embodiment, the same reference numerals will be given to the same components as those in the above-described embodiment, and the description will be omitted. FIG. 8 is a block diagram showing a configuration example of the data processing system according to the second embodiment. In FIG. 8, N second data processing blocks 805 to 807 on the receiving side (N is a natural number) are connected to the first
第1のデータ処理ブロック105において第1の実施形態と最も異なる点は、送信先管理部804が追加されたことと、ブロック間通信の領域管理テーブル104(領域管理テーブル<1>〜領域管理テーブル<N>)を複数有する。送信先管理部804は、送信先に対応する領域管理テーブル104と受信通知部107との情報を管理する。
The most different points of the first
送信起動部801は、送信部802に対して送信開始指示や送信終了指示を行う際に送信先のデータ処理ブロックを示す送信先識別子を与える。送信先識別子により、送信先(受信側)のデータ処理ブロックが特定することが可能となっている。送信部802は、受け取った送信先識別子を送信先管理部804へ送って、対応する受信通知部107の情報を取得する。また、送信部802は、メモリ管理部803に対して送信データ格納領域の確保を要求する際に付加情報として送信先識別子を与える。メモリ管理部803は、受け取った送信先識別子を送信先管理部804へ送って対応する領域管理テーブル104の情報を取得する。
The
このように、第2の実施形態における第1のデータ処理ブロック105は、第1の実施形態の機能に対して複数の送信先を管理する機能が追加されている。次に、図8に示した第2の実施形態におけるデータ処理システムの動作について、図9を参照して説明する。図9は、第2の実施形態におけるデータ処理システムの動作例を示すフローチャートである。
As described above, the first
まず、ステップS901にて、送信起動部801が送信部802に対して送信開始指示を出す。このとき、送信起動部801は、第1の実施形態と同様に送信データ格納領域のサイズとデータ内容とあわせて送信部802に渡すほか、送信先識別子を送信部802に渡す。次に、ステップS902にて、送信部802がメモリ管理部803に対して送信領域確保要求を出す。ここでは、取得する領域のサイズの他に、ステップS901において受け取った送信先識別子もあわせてメモリ管理部803に渡す。
First, in step S901, the
ステップS903にて、メモリ管理部803が送信先管理部804に対して送信先識別子を渡し、送信先に対応する領域管理テーブル104の情報を取得する。送信先識別子と領域管理テーブル情報との対応付け方法としては様々なものが考えられる。例えば、送信先識別子と対応する領域管理テーブルのアドレスとを静的にテーブル管理する方式等がある。この方式によれば、メモリ管理部803が取得したアドレスは直接的に所望の領域管理テーブル104(領域管理テーブル<1>〜領域テーブル<N>のどれか1つ)を示すことになる。
In step S903, the
ステップS904にて、図2に示したステップS203〜S204と同様の処理が行われる。次に、ステップS905にて、送信部802が送信先管理部804に対して送信先識別子を渡し、送信先の受信通知部107の情報を取得する。送信先識別子と各第2のデータ処理ブロック805〜807の受信通知部107との対応付け方法としては様々なものが考えられる。例えば、第1の実施形態で述べたように受信通知部107が通信レジスタとして構成されている場合には、識別子と受信通知部のIOアドレスとを静的なテーブルで管理しておけば良い。
In step S904, the same processing as in steps S203 to S204 shown in FIG. 2 is performed. Next, in step S905, the
なお、ここで言うIOアドレスとは、ブロック間バス110のインターフェース規格から定まるIO空間のアドレスのことであり、例えばPCIウインドウ上のマップアドレス等が相当する。この方式によれば、送信部802は取得したアドレスに対してアクセスすることで所望の受信通知部107へアクセス可能となる。なお、ステップS903及びS905において送信先管理部804の管理情報が用いられるが,これらの情報は初期化時の任意のタイミングで設定することが可能である。設定方法としては様々な方法が考えられるが,本実施形態では特に限定しない。次に、ステップS906にて、図2に示したステップS205〜ステップS207と同様の処理が行われて、受信側における処理が完了する。
The IO address referred to here is an address in the IO space determined by the interface standard of the
次に、ステップS907にて、送信起動部801が送信部802に対して送信終了指示を出す。送信起動部801が送信部802に対して送信終了指示を行うタイミングを決定する方法には様々なものが考えうるが、ここでは特に限定しない。ステップS908にて、送信部802が送信先識別子を付加して送信データ格納領域の解放要求をメモリ管理部803へ行う。なお、ステップS907〜S908における処理において第1の実施形態の処理との差異は、ステップS901〜S902の処理と同様に送信先識別子が付加データとして渡ることのみである。
Next, in step S907, the
次に、ステップS909にて、前述したステップS903と同様にしてメモリ管理部803が解放対象の領域管理テーブル104を選択する。続くステップS910にて、図2に示したステップS210と同様の処理が行われて送信データ格納領域の解放が完了する。以上で、図9に示した第2の実施形態におけるデータ処理システムの動作説明を終わる。
Next, in step S909, the
第2の実施形態によれば、第1の実施形態と同様に、ブロック間バスを介した読み込みを行うことなく、受信側である第2のデータ処理ブロックでのデータ格納領域を決定してデータ通信を行うことが可能となる。したがって、データ通信に係るブロック間バスを介した読み込みの発生を抑止することができ、データ通信における読み込み処理のボトルネックを解消し、データ処理ブロック間の通信性能を向上させることができる。なお、本実施形態では第1のデータ処理ブロック105が送信を担い、他のデータ処理ブロック群805〜807が受信を担うようにしているが、双方のデータ処理ブロックが送受信系を組み込むことで双方向通信が可能である。
According to the second embodiment, as in the first embodiment, the data storage area in the second data processing block on the receiving side is determined and the data is determined without reading via the inter-block bus. It becomes possible to communicate. Therefore, it is possible to suppress the occurrence of reading via the inter-block bus related to data communication, eliminate the bottleneck of reading processing in data communication, and improve the communication performance between data processing blocks. In the present embodiment, the first
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。なお、第3の実施形態の説明に用いる図面に関し、前述した実施形態と同じ構成要素については同じ参照符号をつけ、説明を省くことにする。図10は、第3の実施形態におけるデータ処理システムの構成例を示すブロック図である。図10において、第1の実施形態と異なる構成要素は、第1のデータ処理ブロック105の送信クライアント1001及び送信通知部1003である。
(Third Embodiment)
Next, a third embodiment of the present invention will be described. Regarding the drawings used for the description of the third embodiment, the same reference numerals will be given to the same components as those in the above-described embodiment, and the description will be omitted. FIG. 10 is a block diagram showing a configuration example of the data processing system according to the third embodiment. In FIG. 10, the components different from the first embodiment are the
送信クライアント1001は、メモリ管理部103を制御して送信データ格納領域の取得を行う。また、送信クライアント1001は、第2のデータ処理ブロック109が有するブロック間通信用のメモリプール108へ送信データを直接書き込むとともに、送信通知部1003に対して送信開始指示を出す。また、送信クライアント1001は、メモリ管理部103に対して送信データ格納領域の解放指示を行う。送信通知部1003は、送信クライアント1001からの送信開始指示を受け取ると、第2のデータ処理ブロック109が有する受信通知部107へ受信要求を通知する。
The
以下、第3の実施形態におけるデータ処理システムの動作について図11に示すフローチャートを参照して説明する。図11は、第3の実施形態におけるデータ処理システムの動作例を示すフローチャートである。まず、ステップS1101にて、送信クライアント1001がメモリ管理部103に対して、送信データ格納領域の確保を依頼する。このとき、送信クライアント1001は、取得したい領域のサイズをあわせて渡す。
Hereinafter, the operation of the data processing system according to the third embodiment will be described with reference to the flowchart shown in FIG. FIG. 11 is a flowchart showing an operation example of the data processing system according to the third embodiment. First, in step S1101, the
次に、ステップS1102にて、図2に示したステップS202〜S203と同様の処理が行われ、取得された送信データ格納領域のアドレスが、送信クライアント1001へ返される。次に、ステップS1103にて、送信クライアント1001は、ステップS1102において取得したメモリプール108の送信データ格納領域へ送信データを書き込む。送信データ格納領域への送信データの書き込みは、ブロック間バス110を経由して行う。
Next, in step S1102, the same processing as in steps S202 to S203 shown in FIG. 2 is performed, and the acquired address of the transmission data storage area is returned to the
次に、ステップS1104にて、送信クライアント1001が送信通知部1003に対して送信開始指示を出す。このとき、データを書き込んだ送信データ格納領域のアドレスをあわせて送信通知部1003に渡す。ステップS1105にて、図2に示したステップS205〜S207と同様の処理が行われ、データの受信処理が完了する。なお、第1の実施形態において送信部102が行った送信データ格納領域のアドレスの変換機能は、送信通知部1003が有している。
Next, in step S1104, the
次に、ステップS1106にて、送信クライアント1001は、メモリ管理部103に対して送信データ格納領域の先頭アドレスとサイズとを送り、その送信データ格納領域の解放指示を行う。続くステップS1107にて、図2に示したステップS210と同様の処理が行われて送信データ格納領域が解放される。以上で、図11に示した第3の実施形態におけるデータ処理システムの動作説明を終わる。
Next, in step S1106, the
第3の実施形態によれば、ブロック間バスを介した読み込みを行うことなく、第2のデータ処理ブロック109でのデータ格納領域を決定してデータ通信を行うことが可能となる。したがって、データ通信に係るブロック間バスを介した読み込みの発生を抑止することができ、データ通信における読み込み処理のボトルネックを解消し、データ処理ブロック間の通信性能を向上させることができる。なお、本実施形態では第1のデータ処理ブロック105が送信を担い、第2のデータ処理ブロック109が受信を担うようにしているが、双方のデータ処理ブロックが送受信系を組み込むことで双方向通信が可能である。また、本実施形態では送信側と受信側が1つずつの場合について説明したが、第2の実施形態のように送信先管理部804を導入すれば、複数の受信先に対応可能である。
According to the third embodiment, it is possible to determine the data storage area in the second
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。なお、第4の実施形態の説明に用いる図面に関し、前述した実施形態と同じ構成要素については同じ参照符号をつけ、説明を省くことにする。まず、第4の実施形態におけるデータ処理システムの構成について概略を述べ、次に動作について説明する。
(Fourth Embodiment)
Next, a fourth embodiment of the present invention will be described. Regarding the drawings used for the description of the fourth embodiment, the same reference numerals will be given to the same components as those in the above-described embodiment, and the description will be omitted. First, the configuration of the data processing system according to the fourth embodiment will be outlined, and then the operation will be described.
図12〜図14を参照して、第4の実施形態におけるデータ処理システムの構成について説明する。図12は、第4の実施形態におけるデータ処理システムの全体構成例を示すブロック図である。図12において、1201及び1211はブロック間通信を行う複数のデータ処理ブロックである。複数のデータ処理ブロック1201、1211はブロック間バス110上に接続されている。なお、データ処理システムの構成は、第1の実施形態で述べた通り、異なるチップに配置された複数のデータ処理ブロックからなる構成や、1つのチップに配置された複数のデータ処理ブロックからなる構成を含む。
The configuration of the data processing system according to the fourth embodiment will be described with reference to FIGS. 12 to 14. FIG. 12 is a block diagram showing an overall configuration example of the data processing system according to the fourth embodiment. In FIG. 12, 1201 and 1211 are a plurality of data processing blocks for inter-block communication. The plurality of
データ処理ブロック1201は、複数の通信クライアント1202、送信制御部1203、受信制御部1204、内部メモリプール1205、及びブロック間通信用のメモリプール108を有する。図12においては、データ処理ブロック1201の内部構成のみ図示しているが、複数のデータ処理ブロック1201、1211は同様の内部構成を有する。
The
送信制御部1203は、通信クライアント1202から送信データ格納領域の確保指示や解放指示、送信開始指示を受け取り、送信関連の制御全般を受け持つ。送信制御部1203は、送信データ格納領域の確保指示を受け取ると、相手先のデータ処理ブロックのメモリプール108から送信データ格納領域を確保するとともに、内部メモリプール1205から返信データ格納領域を確保する。通信クライアント1202が送信データ格納領域への送信データの書き込みを終えて送信開始指示を出すと、送信制御部1203は相手先のデータ処理ブロックに対して受信通知要求を出す。また、送信制御部1203は、送信データ格納領域の解放指示を受け取ると、確保した送信データ格納領域及び返信データ格納領域を解放する。
The
受信制御部1204は、他のデータ処理ブロックから受信通知要求を受けると通信クライアント1202へ通知する。受信制御部1204は、受信通知要求で渡されたアドレスのコマンドヘッダを解釈して通知すべき通信クライアント1202と受信データ種別(返信か新規送信か)を特定する。そして、受信制御部1204は、受信データ種別と受信データのアドレスを通信クライアント1202へ通知して受信指示を出す。受信制御部1204からの受信指示を受け取った通信クライアント1202は、渡されたアドレスからデータを読み込む。
The
次に、送信制御部1203の構成について図13を参照して説明する。図13は、送信制御部1203の構成例を示すブロック図である。図13において、1301は送信領域管理部である。通信クライアント1202からの送信データ格納領域の確保指示及び解放指示への対応は、送信領域管理部1301が行う。送信領域管理部1301は、送信先のデータ処理ブロックの識別子(送信先識別子)と領域情報とを、ブロック通信用のメモリ管理部803へ渡して送信データ格納領域を確保する。また、送信領域管理部1301は、内部メモリ管理部1302を用いて内部メモリプール1205から返信データ格納領域を確保する。
Next, the configuration of the
返信データ格納領域とは、送信先の通信クライアントが実行結果等を格納するための領域である。返信された内容は送信側の通信クライアント1202が読み出すため、同じデータ処理ブロック(送信側のデータ処理ブロック)内に返信データ格納領域は確保される。なお、内部メモリ管理部1302が行う内部メモリプールの管理手法としては、様々な方法が適用可能である。例えば、一般的に用いられるリンクリストによる空きリスト管理手法などが考えられるが、ここでは限定しない。
The reply data storage area is an area for the destination communication client to store the execution result and the like. Since the returned content is read by the
通信クライアント1202が指示する送信開始指示に対しては、アドレス変換部1303が対応する。通信クライアント1202が送信要求するアドレスは、送信データ格納領域内部のアドレスであるため、それを送信データ格納領域の先頭アドレスに変換して送信通知部1305へ渡す。送信通知部1305における送信処理動作については、図10に示した第3の実施形態における送信通知部1003の動作に対して送信先管理部804が行う送信先の選択動作が加わるのみである。これについては第2の実施形態及び第3の実施形態において既出であるので説明を省く。
The
次に、受信制御部1204の構成について図14を参照して説明する。図14は、受信制御部1204の構成例を示すブロック図である。図14において、受信管理部1401は、受信通知部107から受信通知要求と受信データアドレスを受け取る。なお、受信通知部107は第1の実施形態にて既出であるため説明を省く。受信通知部107から受け取るアドレスは、メモリプール108又は内部メモリプール1205のどちらかに含まれる領域のアドレスである。
Next, the configuration of the
受信管理部1401は、受け取ったアドレスを参照して既定のコマンドヘッダを読み込む。後述する動作説明にて詳細を説明するが、このコマンドヘッダには受信データ種別(返信か新規送信か)と通信クライアントを指定する識別子が含まれている。受信管理部1401は、受信データ種別と通信クライアント識別子を受信データアドレスとともにクライアント管理部1402へ渡す。
The
クライアント管理部1402は、通信クライアント識別子と対応する通信クライアント1202との関係を管理しており、受信管理部1401から受けた情報を通信クライアント1202へ引き渡す。なお、クライアント管理部1402における通信クライアント管理手法としては様々な方法が適用可能であるが特に限定はしない。例えば、初期化時に通信クライアント1202が自身の識別子とともにコールバック関数を登録しておく手法等がある。この手法によれば、クライアント管理部1402は、識別子に対応したコールバック関数を呼ぶことで、対象となる通信クライアント1202へ情報を通知することが可能となる。
The
次に、第4の実施形態におけるデータ処理システムの動作について図15を参照して説明する。図15は、第4の実施形態におけるデータ処理システムの動作例を示すフローチャートである。図15において特に断らない限り、ステップS1501〜S1507、及びステップS1515〜S1517の処理は、送信を起動した側のデータ処理ブロック(例えばデータ処理ブロック1201)での動作である。また、ステップS1508〜ステップS1514の処理は、受信側のデータ処理ブロック(例えばデータ処理ブロック1211)での動作である。 Next, the operation of the data processing system according to the fourth embodiment will be described with reference to FIG. FIG. 15 is a flowchart showing an operation example of the data processing system according to the fourth embodiment. Unless otherwise specified in FIG. 15, the processes of steps S1501 to S1507 and steps S1515 to S1517 are operations in the data processing block (for example, data processing block 1201) on the side that started the transmission. Further, the processing of steps S1508 to S1514 is an operation in the data processing block on the receiving side (for example, the data processing block 1211).
なお、以下の説明で用いる構成要素の参照符号には送信側でも受信側でも同じものを用いる。また、送信側、受信側という役割は説明の便宜のためにつけたものであり、ブロック間バス110に接続されたすべてのデータ処理ブロック(1201、1211)が送信側にも受信側にもなり得る。なお、送信側の機能又は受信側の機能の一方のみを備え、送信側又は受信側としてのみ動作するようなデータ処理ブロックが含まれていてもよい。
It should be noted that the same reference code of the component used in the following description is used on both the transmitting side and the receiving side. Further, the roles of the transmitting side and the receiving side are provided for convenience of explanation, and all the data processing blocks (1201, 1211) connected to the
ステップS1501にて、通信クライアント1202が受信制御部1204のクライアント管理部1402に対して、自身の識別子と受信要求通知方法を登録する。受信要求通知方法としては、例えば前述したようなコールバック関数を用いる。例えばC言語のプロトタイプで示せば、下記のようになる。引数の意味については、ステップS1510〜S1511の処理での説明にて後述する。
void (*callback)(int chip_id, int client_id, int kind, void *sendBuf, int sendLength, void *respBuf, int respLength)
このステップS1501における処理は、システム初期化時に行われることが一般的であり、送信側であるか受信側であるかにかかわらずすべてのデータ処理ブロック(1201、1211)に共通の処理である。
In step S1501, the
void (* callback) (int chip_id, int client_id, int kind, void * sendBuf, int sendLength, void * respBuf, int respLength)
The process in step S1501 is generally performed at the time of system initialization, and is a process common to all data processing blocks (1201, 1211) regardless of whether it is the transmitting side or the receiving side.
次に、ステップS1502にて、通信クライアント1202が送信制御部1203の送信領域管理部1301に対して送信データ格納領域の確保指示を出す。このとき、通信クライアント1202は、自身の識別子、送付先の識別子(データ処理ブロック識別子と通信クライアント識別子)、送信データサイズ、及び返信データサイズをあわせて送信領域管理部1301に渡す。
Next, in step S1502, the
ステップS1502における処理について図16〜図17を参照して詳細に説明する。図16は、ステップS1502における送信領域管理部1301の動作例を示すフローチャートである。ステップS1601にて、送信領域管理部1301は、メモリ管理部803から送信パケット領域を取得する。領域の取得方法については第3の実施形態において既出であるので説明を省くが、ここでは送信パケット領域について述べておく。
The process in step S1502 will be described in detail with reference to FIGS. 16 to 17. FIG. 16 is a flowchart showing an operation example of the transmission
図17において、1701は送信パケット領域のフォーマットを表す。送信パケット領域1701は、送信コマンドヘッダ部1702及び送信データ格納領域1710に分かれている。送信コマンドヘッダ部1702は、送信先処理ブロック識別子1703、送信先クライアント識別子1704、送信元処理ブロック識別子1705、送信元クライアント識別子1706、送信データ格納領域サイズ1707、及びパケット種別1708を有する。また、送信コマンドヘッダ部1702は、返信パケット領域開始位置1709及び返信データ格納領域サイズ1711を有する。
In FIG. 17, 1701 represents the format of the transmission packet area. The
送信コマンドヘッダ部1702のサイズはShであり固定である。送信データ格納領域1710のサイズは、ステップS1502において通信クライアント1202が与えた送信データサイズと等しい。したがって、送信領域管理部1301がステップS1601において取得する送信パケット領域のサイズは、Shと送信データサイズの和になる。なお、メモリ管理部803が返却するアドレスは、ブロック間バス110を介してアクセスするためのアドレスである。これは第1の実施形態で述べた通り、領域管理テーブル104が持つ機能を用いて変換した結果である。
The size of the transmission
図16に戻り、ステップS1602にて、送信領域管理部1301は、送信パケット領域の確保が成功したか否かを判断する。送信パケット領域の確保が失敗した場合、ステップS1608にて失敗を通知して処理を完了させる。送信パケット領域の確保が成功した場合、送信領域管理部1301は、ステップS1603にて内部メモリ管理部1302から返信パケット領域を取得する。
Returning to FIG. 16, in step S1602, the transmission
返信パケット領域のフォーマットは図17の1721に示してある。返信パケット領域1721は返信データヘッダ部1722及び返信データ格納領域1730に分かれている。返信データヘッダ部1722は、返信先処理ブロック識別子1723、返信先クライアント識別子1724、返信元処理ブロック識別子1725、返信元クライアント識別子1726、返信データ格納領域サイズ1727、及びパケット種別1728を有する。また、返信データヘッダ部1702は、親送信パケット領域開始位置1729を有する。なお、領域1731はリザーブ領域である。
The format of the reply packet area is shown in 1721 of FIG. The
返信データヘッダ部1722のサイズは送信コマンドヘッダ部1702と同様にShであり固定である。返信データ格納領域1730のサイズは、ステップS1502において通信クライアント1202が与えた返信データサイズと等しい。したがって、送信領域管理部1301がステップS1603において取得する返信パケット領域のサイズは、Shと返信データサイズの和になる。返信パケット領域は送信側の内部メモリプール1205に確保される。これは後述するようにデータ書き込みを受信側で行い、データ読み込みを送信側で行うためである。また、内部メモリ管理部1302が返却するアドレスはデータ処理ブロック内部のアドレス空間での値である。なお、ステップS1603において内部メモリ管理部1302が内部メモリプール1205からメモリを確保する方法については前述した通り特に限定しない。
The size of the reply
再び図16に戻り、ステップS1604にて、送信領域管理部1301は、返信パケット領域の確保が成功したか否かを判断する。返信パケット領域の確保が失敗した場合、ステップS1608にて失敗を通知して処理を終了する。返信パケット領域の確保が成功した場合、送信領域管理部1301は、ステップS1605にて送信コマンドヘッダ部1702へ情報を書き込む。書き込む情報は図17に示した1703〜1709及び1711である。送信先データ処理ブロック識別子1703及び送信先クライアント識別子1704は、送信先を特定する情報である。送信元データ処理ブロック識別子1705及び送信元クライアント識別子1706は送信元を特定する情報である。送信データ格納領域サイズ1707は実際に通信クライアント1202が送信データを書き込む送信データ格納領域1710のサイズである。返信データ格納領域サイズ1711は送信先のクライアントが返信を書き込む返信データ格納領域1730のサイズである。パケット種別1708は、このパケットが新規送信パケットであるのか、返信パケット(ある新規送信パケットへの返信)であるかを示す。ここでは新規送信パケットとなる。ここに1703から1707及び1711は、すべてステップS1501において通信クライアント1202が与えたデータである。一方、返信パケット領域開始位置1709は返信パケット領域1721の先頭を表し、領域取得時に送信領域管理部1301が動的に決定する。なお、返信パケット領域開始位置1709は、送信先データ処理ブロックのアドレス空間に変換された値である。送信領域管理部1301は、自身のアドレス空間内における内部メモリプール1205のアドレスを、送信先データ処理ブロックがブロック間バス110を介してアクセスするための値に変換する機能を有する。
Returning to FIG. 16 again, in step S1604, the transmission
続いて、ステップS1606にて、送信領域管理部1301は、返信データヘッダ部1722へ情報を書き込む。書き込む情報は図17の1723〜1729である。返信先データ処理ブロック識別子1723及び返信先クライアント識別子1724は返信先を特定するための情報である。言い換えれば送信元の識別子と等しい。返信元データ処理ブロック識別子1725及び返信元クライアント識別子1726は、返信元を特定するための情報である。言い換えれば送信先の識別子と等しい。返信データ格納領域サイズ1727は、返信データ格納領域1730のサイズを表す。パケット種別1728はパケット種別1708と同様であるが、ここでの値は返信パケットを表す。これら1723〜1727は、すべてステップS1501において通信クライアント1202が与えたデータである。一方、親送信パケット領域開始位置1729は送信パケット領域1701の先頭を表し、領域取得時に送信領域管理部1301が動的に決定する。なお、親送信パケット領域開始位置1729は送信元データ処理ブロックのアドレス空間からアクセスするための値をそのまま格納する。
Subsequently, in step S1606, the transmission
次に、ステップS1607にて、送信領域管理部1301は、送信データ格納領域1710の先頭アドレスを返却して処理を完了する。以上で図15に示したステップS1502での処理の説明を終わる。
Next, in step S1607, the transmission
図15に戻り、ステップS1503以降の処理について説明する。ステップS1503にて、通信クライアント1202は、取得した送信データ格納領域へ送信データを書き込む。次に、ステップS1504にて、通信クライアント1202が送信制御部1203のアドレス変換部1303に対して送信開始を指示する。ここでは、通信クライアント1202が送信先のデータ処理ブロック識別子と送信データ格納領域の先頭アドレスとをあわせてアドレス変換部1303に渡す。
Returning to FIG. 15, the processing after step S1503 will be described. In step S1503, the
アドレス変換部1303は、受け取った送信データ格納領域の先頭アドレスを送信パケット領域の先頭アドレスへ変換する。この変換は図17から明らかな通り、送信データ格納領域1710のアドレスからヘッダサイズShを引くことで行う。そして、アドレス変換部1303は、送信パケット先頭アドレスを送信通知部1305へ送付して送信開始指示を中継する。なお、対象が返信パケットの場合も全く同様の処理によって、返信データ格納領域のアドレスを返信パケット領域のアドレスに変換する。
The
次に、ステップS1505にて、図9に示したステップS905と同様の処理を行い、送信通知部1305が送信先の受信通知部107を特定する。ステップS1506にて、送信通知部1305が送信パケット領域アドレスのアドレス空間を変換する。ここでは送信側のデータ処理ブロックのアドレス空間から、受信側のデータ処理ブロックがブロック間バス110を介してアクセスするためのアドレスへ変換する。アドレス空間変換は、第3の実施形態と同様に送信通知部1305により行われる。
Next, in step S1505, the same processing as in step S905 shown in FIG. 9 is performed, and the
ステップS1507にて、送信通知部1305が送信先の受信通知部107に対して、送信パケットアドレス及び受信要求を通知する。ステップS1508にて、受信通知部107は受信管理部1401に対して受信要求を中継する。ここでは送信パケットアドレスをあわせて受信管理部1401に渡す。
In step S1507, the
ステップS1509にて、受信管理部1401は、自データ処理ブロック内のメモリプール108へアクセスして送信コマンドヘッダ部1702を解析し、クライアント管理部1402へ通知する。ここで通知するデータは、送信関連情報と返信関連情報とに分かれる。送信関連情報としては、送信先クライアント識別子1704、送信データ格納領域のアドレス1707とサイズ1710である。返信関連情報としては、返信先のデータ処理ブロック識別子1705とクライアント識別子1706、及び返信データ格納領域のアドレス1709とサイズ1711である。なお、返信データ格納領域のアドレスは、返信パケット領域開始位置1709にShを加えることで求める。
In step S1509, the
ここで、パケット種別が新規送信パケットを表している場合には、送信関連情報及び返信関連情報のすべてを通知する。ステップS1509では、新規送信パケットである場合を扱っているので、すべての情報を通知することになる。なお、パケット種別が返信パケットを表している場合には、送信関連情報のみを通知する。この場合にはアクセス先がメモリプール108ではなく、内部メモリプール1205になる。また、解析対象となるヘッダは返信データヘッダ部1722である。最終的に、選択したデータ群とパケット種別そのものを含めてクライアント管理部1402へ通知する。
Here, when the packet type represents a new transmission packet, all the transmission-related information and the reply-related information are notified. Since step S1509 deals with the case of a new transmission packet, all the information will be notified. If the packet type represents a reply packet, only transmission-related information is notified. In this case, the access destination is not the
次に、ステップS1510にて、クライアント管理部1402は、受け取った送信先クライアント識別子に対応した通信クライアント1202を選んでそれを呼び出す。前述したコールバック関数を用いるとすれば、chip_idに返信先のデータ処理ブロック識別子、client_idに返信先のクライアント識別子を設定する。さらに、kindには送信パケット種別、sendBuf及びsendLengthにはそれぞれ送信データ格納領域のアドレス及びサイズを設定する。そして、respBuf及びrespLengthにはそれぞれ返信データ格納領域のアドレス及びサイズを設定する。パケット種別が返信パケットであるときは、chip_id、client_id、respBuf及びrespLengthは設定しない。通常は、このコールバック関数が呼ばれると該当する通信クライアントに対して受信要求が通知され、同時に引数に設定したデータが渡される仕組みとなっているのが一般的である。なお、ここで示した通知方法は一例であり、他の手法を用いることも可能である。
Next, in step S1510, the
ステップS1510において受信要求を受け取った通信クライアント1202は、ステップS1511にて自データ処理ブロック内にあるメモリプール108へアクセスして送信データ格納領域からデータを読み込む。そして送信内容に応じた任意の処理を行う。次に、ステップS1512にて、通信クライアント1202は、ステップS1511における実行結果等を返信データ格納領域へ書き込む。ここでの書き込み先は、ブロック間バス110を経由してアクセスする送信元のデータ処理ブロック側にある内部メモリプール1205である。
The
次に、ステップS1513にて、通信クライアント1202は、アドレス変換部1303に対してレスポンス送信(新規送信パケットに対する返信パケットの送信)開始を指示する。ここでは、通信クライアント1202は、返信データ格納領域のアドレスをあわせてアドレス変換部1303に渡す。ステップS1514にて、ステップS1505〜S1507と同様の処理によって、元の送信パケット送信元にある受信通知部107へ受信要求を通知する。ここで返信パケット送信側の送信通知部1305が行うアドレス操作は、ステップS1505〜S1507において送信パケット送信元の送信通知部1305が行ったものと同様である。
Next, in step S1513, the
次に、ステップS1515にて、ステップS1508〜S1510と同様の処理が行われて通信クライアント1202が返信パケットを受け取る。次に、ステップS1516にて、通信クライアント1202が送信データ格納領域の解放を送信領域管理部1301へ指示する。ただし、ここで渡すアドレスは返信データ格納領域の先頭アドレスである。なお、通信クライアント1202は、受け取ったパケットが返信パケットであることを確認し、その返信データ格納領域を読み込んで内容を確認したものとする。通信クライアント1202はその結果を以って自身が起動した送信パケットに伴う一連の作業が完了したことを判断して、送信データ格納領域の解放を指示する。
Next, in step S1515, the same processing as in steps S1508 to S1510 is performed, and the
最後にステップS1517にて、送信領域管理部1301が送信パケット領域と返信パケット領域を解放する。送信領域管理部1301はアドレスとして返信データ格納領域1730の先頭アドレスを受け取っている。ここからオフセットして返信パケット領域1721の先頭アドレスを求め、さらにヘッダに存在する親送信パケット領域開始位置1729から送信パケット領域1701の先頭アドレスを求める。そして、送信パケット領域先頭アドレス及び返信パケット領域先頭アドレスを、それぞれメモリ管理部803及び内部メモリ管理部1302へ渡して領域を解放する。メモリ管理部803における解放処理方法については、第3の実施形態で述べた方法と同様である。また、内部メモリ管理部1302におけるメモリ解放方法については前述した通り限定する必要がないので、ここでは説明を割愛する。
Finally, in step S1517, the transmission
なお、図15を参照した説明においては、1つの送信パケットが発生してからその返信パケットが送信されて1つの通信コンテキストが完了する場合について説明した。しかし、通信コンテキストのライフサイクルは任意であり、前述したやり取りが送信領域の解放を伴わずに何度も繰り返されることも有り得る。例えば1回の送信後に少なくとも1回以上の返信を受けたことで通信の完了を判断して領域の解放を行う場合がある。あるいは、送信領域を確保した後、1回以上の送信と送信毎に少なくとも1回以上の返信を受け取った後、送信領域を解放する場合もある。本実施形態ではこのような場合にも対応可能であることは明らかである。以上で第4の実施形態におけるデータ処理システムの動作説明を終了する。 In the description with reference to FIG. 15, a case where one transmission packet is generated and then the reply packet is transmitted to complete one communication context has been described. However, the life cycle of the communication context is arbitrary, and the above-mentioned exchange may be repeated many times without releasing the transmission area. For example, the area may be released by determining the completion of communication by receiving at least one reply after one transmission. Alternatively, after securing the transmission area, the transmission area may be released after receiving one or more transmissions and at least one reply for each transmission. It is clear that the present embodiment can handle such a case. This completes the description of the operation of the data processing system according to the fourth embodiment.
第4の実施形態によれば、送信パケットに対して返信パケットを伴うデータ処理ブロック間の通信において、返信パケットを送信元データ処理ブロック内のメモリプールから確保する。これにより、送信先及び送信元それぞれがブロック間バスを介した読み込みを抑止できるため、さらなるデータ処理速度の向上が見込まれる。 According to the fourth embodiment, in the communication between the data processing blocks including the reply packet for the transmission packet, the reply packet is secured from the memory pool in the source data processing block. As a result, each of the transmission destination and the transmission source can suppress reading via the inter-block bus, so that further improvement in data processing speed is expected.
(本発明の他の実施形態)
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other Embodiments of the present invention)
The present invention supplies a program that realizes one or more functions of the above-described embodiment to a system or device via a network or storage medium, and one or more processors in the computer of the system or device reads and executes the program. It is also possible to realize the processing. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。 It should be noted that the above-described embodiments are merely examples of embodiment of the present invention, and the technical scope of the present invention should not be construed in a limited manner by these. That is, the present invention can be implemented in various forms without departing from the technical idea or its main features.
101、801:送信起動部 102、802:送信部 103、803:メモリ管理部 104:領域管理テーブル 105、109、805、806、807、1201、1211:データ処理ブロック 106:受信部 107:受信通知部 108:メモリプール 110:ブロック間バス 804:送信先管理部 1001:送信クライアント 1003、1305:送信通知部 1202:通信クライアント 1203:送信制御部 1204:受信制御部 1205:内部メモリプール 1301:送信領域管理部 1302:内部メモリ管理部 1303:アドレス変換部 1401:受信管理部 1402:クライアント管理部
101, 801:
Claims (6)
前記第1のデータ処理ブロックは、
前記第2のデータ処理ブロックが有する前記メモリの各空き領域の先頭アドレスとサイズとを含む空き領域リストを記憶する記憶手段と、
前記メモリへのデータの書き込みを行う場合、当該データのサイズに基づいて前記記憶手段に記憶された前記空き領域リストにおける前記各空き領域の先頭アドレスとサイズとを参照して、前記メモリにおいて前記データを書き込み可能な空き領域から当該データを書き込むデータ格納領域を確保する管理手段と、
前記ブロック間のバスを介して、前記管理手段によって確保した前記メモリの前記データ格納領域にデータを書き込み、当該データ格納領域のアドレスを示す情報及び当該データの受信要求を前記第2のデータ処理ブロックに送信する送信手段とを有し、
前記第2のデータ処理ブロックは、
前記第1のデータ処理ブロックから前記受信要求を受けた場合、前記データ格納領域のアドレスを示す情報に基づいて前記メモリの前記データ格納領域からデータを読み出し、読み出し後に当該データの受信完了を前記第1のデータ処理ブロックに通知する受信手段とを有し、
前記第1のデータ処理ブロックの前記管理手段は、前記データ格納領域を確保した際に、前記データを書き込み可能な空き領域のサイズが当該データ格納領域のサイズと一致する場合は、当該空き領域を前記空き領域リストから削除し、当該空き領域のサイズが当該データ格納領域のサイズより大きい場合は、前記空き領域リストにおいて当該空き領域の先頭アドレスとサイズとを当該データ格納領域のサイズに基づいて更新し、
前記第1のデータ処理ブロックの前記管理手段は、前記受信完了の通知を受けると、前記データ格納領域に空き領域が後続している場合は、当該空き領域の先頭アドレスを当該データ格納領域の先頭アドレスに更新し、当該空き領域のサイズを当該データ格納領域のサイズだけ増加し、前記データ格納領域に空き領域が後続していない場合は、当該データ格納領域の先頭アドレスとサイズとを新たな空き領域の先頭アドレスとサイズとして前記空き領域リストに登録することを特徴とするデータ処理システム。 A data processing system in which a first data processing block and a second data processing block having a memory for writing data transmitted from the first data processing block are connected via a bus between the blocks. ,
The first data processing block is
A storage means for storing a list of free areas including the start address and size of each free area of the memory included in the second data processing block.
When writing data into said memory, with reference to the start address and size of each empty area in the free space list stored in the storage means based on the size of the data, Oite in the memory A management means for securing a data storage area for writing the data from a free area where the data can be written , and
Via the bus between the blocks, the write data in the data storage area of the memory reserved by the management unit, the second data reception request information and those the data indicating the address of the person the data storage area Has a transmission means to transmit to the processing block
The second data processing block is
If from the first data processing block receives the reception request, based on the information indicating the address of the data storage area to read out the data from the data storage area of the memory, the reception completion of the data after reading have a receiving means for notifying the first data processing block,
When the management means of the first data processing block secures the data storage area, if the size of the free area in which the data can be written matches the size of the data storage area, the free area is used. If it is deleted from the free area list and the size of the free area is larger than the size of the data storage area, the start address and size of the free area in the free area list are updated based on the size of the data storage area. And
When the management means of the first data processing block receives the notification of the completion of reception, if a free area follows the data storage area, the start address of the free area is set to the head of the data storage area. Update to the address, increase the size of the free area by the size of the data storage area, and if the free area does not follow the data storage area, the start address and size of the data storage area are newly freed. A data processing system characterized in that it is registered in the free area list as the start address and size of the area .
前記管理手段によって確保した前記メモリの前記データ格納領域にデータの書き込みを行う第1の送信手段と、
前記第1の送信手段による前記データ格納領域へのデータの書き込みが行われた後に、当該データ格納領域のアドレスを示す情報及び当該データの受信要求を前記第2のデータ処理ブロックに送信する第2の送信手段とを有することを特徴とする請求項1記載のデータ処理システム。 The transmission means of the first data processing block is
A first transmission means for writing data to the data storage area of the memory secured by the management means, and
After writing data to said data storage area of the first transmission means it is performed, and transmits the received request information and those the data indicating the address of the person the data storage area in the second data processing block data processing system according to claim 1, wherein a second transmission means.
前記第1のデータ処理ブロックの前記管理手段は、前記メモリへのデータの書き込みを行う前記第2のデータ処理ブロックの前記メモリの前記空き領域リストを参照して、当該第2のデータ処理ブロックの前記メモリから前記データ格納領域を確保することを特徴とする請求項1又は2記載のデータ処理システム。 The storage means of the first data processing block stores a list of free areas of the memory of each of the plurality of second data processing blocks connected via a bus between the blocks.
Wherein the management unit of the first data processing block, referring to the free space list of the memory of the second data processing block for writing data into said memory, those second data processing block The data processing system according to claim 1 or 2, wherein the data storage area is secured from the memory of the above.
前記第1のデータ処理ブロックが、前記第2のデータ処理ブロックが有する前記メモリへのデータの書き込みを行う場合、当該データのサイズに基づいて前記第1のデータ処理ブロックに記憶している前記メモリの各空き領域の先頭アドレスとサイズとを含む空き領域リストを参照して、前記第1のデータ処理ブロックが前記メモリにおいて前記データを書き込み可能な空き領域から当該データを書き込むデータ格納領域を確保し、
前記第1のデータ処理ブロックが、前記データ格納領域を確保した際に、前記データを書き込み可能な空き領域のサイズが当該データ格納領域のサイズと一致する場合は、当該空き領域を前記空き領域リストから削除し、当該空き領域のサイズが当該データ格納領域のサイズより大きい場合は、前記空き領域リストにおいて当該空き領域の先頭アドレスとサイズとを当該データ格納領域のサイズに基づいて更新し、
前記第1のデータ処理ブロックが前記第2のデータ処理ブロックに対して、前記ブロック間のバスを介して、確保した前記メモリの前記データ格納領域にデータの書き込みを行い、当該データ格納領域のアドレスを示す情報及び当該データの受信要求を送信し、
前記第2のデータ処理ブロックが、前記第1のデータ処理ブロックからの前記受信要求を受けて、前記データ格納領域のアドレスを示す情報に基づいて前記メモリの前記データ格納領域からデータを読み出し、読み出し後に当該データの受信完了を前記第1のデータ処理ブロックに通知し、
前記第1のデータ処理ブロックが、前記受信完了の通知を受けると、前記データ格納領域に空き領域が後続している場合は、当該空き領域の先頭アドレスを当該データ格納領域の先頭アドレスに更新し、当該空き領域のサイズを当該データ格納領域のサイズだけ増加し、前記データ格納領域に空き領域が後続していない場合は、当該データ格納領域の先頭アドレスとサイズとを新たな空き領域の先頭アドレスとサイズとして前記空き領域リストに登録することを特徴とするデータ処理方法。 Data processing of a data processing system in which a first data processing block and a second data processing block having a memory for writing data transmitted from the first data processing block are connected via a bus between the blocks. It's a method
When the first data processing block writes data to the memory of the second data processing block, the memory stored in the first data processing block based on the size of the data. each free space with reference to the free space list including a start address and size of the data storage area in which the first data processing block writes the data from the free space writable Oite the data in the memory of Secure and
When the first data processing block secures the data storage area, if the size of the free area in which the data can be written matches the size of the data storage area, the free area is listed in the free area list. If the size of the free area is larger than the size of the data storage area, the start address and size of the free area in the free area list are updated based on the size of the data storage area.
To the first data processing block and the second data processing block, through said bus between blocks, writes data to the data storage area of the memory reserved, of those the data storage area transmitted the received request information and those the data indicating the address,
Said second data processing blocks receives the reception request from the first data processing block, Shi read out the data from the data storage area of the memory based on the information indicating the address of the data storage area After reading, the first data processing block is notified of the completion of receiving the data.
When the first data processing block receives the notification of the completion of reception, if a free area follows the data storage area, the start address of the free area is updated to the start address of the data storage area. , The size of the free area is increased by the size of the data storage area, and if the free area does not follow the data storage area, the start address and size of the data storage area are changed to the start address of the new free area. A data processing method characterized in that it is registered in the free area list as a size and a size .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016057378A JP6821313B2 (en) | 2016-03-22 | 2016-03-22 | Data processing system and data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016057378A JP6821313B2 (en) | 2016-03-22 | 2016-03-22 | Data processing system and data processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017174006A JP2017174006A (en) | 2017-09-28 |
JP6821313B2 true JP6821313B2 (en) | 2021-01-27 |
Family
ID=59972065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016057378A Active JP6821313B2 (en) | 2016-03-22 | 2016-03-22 | Data processing system and data processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6821313B2 (en) |
-
2016
- 2016-03-22 JP JP2016057378A patent/JP6821313B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017174006A (en) | 2017-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2116937A1 (en) | Web server for managing session and its method | |
EP2284725A1 (en) | Client, brokerage server and method for providing cloud storage | |
CN106503058B (en) | A kind of data load method, terminal and computing cluster | |
CN104102742A (en) | High-performance mass storage system and high-performance mass storage method | |
CN105814864B (en) | A kind of input and output I/O request processing method and file server | |
EP2845110B1 (en) | Reflective memory bridge for external computing nodes | |
CN114296646A (en) | Caching method, device, server and storage medium based on IO service | |
US9021492B2 (en) | Dual mode reader writer lock | |
JP2015114913A (en) | Storage device, storage system, and data management program | |
JP2014010703A (en) | System that supports cooperation of information processing systems, device, and cooperation method | |
JP6821313B2 (en) | Data processing system and data processing method | |
JP5610397B2 (en) | Resource reservation apparatus, method and program | |
JP2006302065A (en) | File sharing system, file sharing program, management server and client terminal | |
KR20120062854A (en) | Computer device | |
JP5461448B2 (en) | Resource reservation apparatus, method and program | |
CN111488324B (en) | Distributed network file system based on message middleware and working method thereof | |
WO2014203728A1 (en) | Message control system, message control device, message control method, and program | |
JP4979206B2 (en) | Information processing method and information processing apparatus | |
JP4667299B2 (en) | Interprocess communication method | |
KR101440605B1 (en) | User device having file system gateway unit and method for accessing to stored data | |
CN113806314B (en) | Data storage method, device, computer storage medium and system | |
JP4492569B2 (en) | File operation control device, file operation control system, file operation control method, and file operation control program | |
KR102285759B1 (en) | Message storing method based on distributed storage and appratus therefor | |
KR101873825B1 (en) | System for providing virtual data storage and method for providing data using the same | |
JPH05342123A (en) | Command transfer system for network system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190315 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200225 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20200403 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200625 |
|
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: 20201208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210106 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6821313 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |