JP6821313B2 - Data processing system and data processing method - Google Patents

Data processing system and data processing method Download PDF

Info

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
Application number
JP2016057378A
Other languages
Japanese (ja)
Other versions
JP2017174006A (en
Inventor
坂本 茂
茂 坂本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2016057378A priority Critical patent/JP6821313B2/en
Publication of JP2017174006A publication Critical patent/JP2017174006A/en
Application granted granted Critical
Publication of JP6821313B2 publication Critical patent/JP6821313B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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 Patent Document 1 has been proposed as a conventional technique for high-speed data processing using a file stored in a storage device such as a hard disk. Patent Document 1 describes a technique for improving the speed of data processing by providing two storage devices having different speeds and storing frequently accessed file management information in a high-speed storage device. Further, in chip-to-chip communication such as CPU-to-CPU communication, a method of reducing the overhead of data processing by directly writing data to a memory in the destination chip domain via an inter-chip bus is common.

特開平9−282103号公報Japanese Unexamined Patent Publication No. 9-282103

特許文献1では、アクセス頻度の高いファイル管理情報を高速な記憶装置に格納することでデータ処理能力を向上させようとしているが、その記憶装置の読み取り速度が書き込み速度に比較して遅い場合には相対的な処理能力が低下してしまう。また、チップ間通信に用いられる一般的な手法では、相手先のチップドメインにあるメモリからデータ領域を確保する際、データ領域の管理テーブル情報などアクセス頻度が高いデータをチップ間インターフェース経由で読み込まなければならなかった。PCI(Peripheral Component Interconnect)インターフェース等の一般的なチップ間インターフェースは、読み込み速度が書き込み速度よりも遅いことが知られている。以上のことから前述の従来技術では、アクセス頻度の高いデータの読み込み速度がボトルネックになり、データ処理能力が低下してしまう。本発明は、このような事情に鑑みてなされたものであり、ブロック間インターフェースを介したデータ処理ブロック間の通信性能を向上させることを目的とする。 Patent Document 1 attempts to improve the data processing capacity by storing frequently accessed file management information in a high-speed storage device, but when the reading speed of the storage device is slower than the writing speed, Relative processing power is reduced. In addition, in the general method used for chip-to-chip communication, when securing a data area from the memory in the chip domain of the other party, frequently accessed data such as data area management table information must be read via the chip-to-chip interface. I had to. It is known that a general chip-to-chip interface such as a PCI (Peripheral Component Interconnect) interface has a read speed slower than a write speed. From the above, in the above-mentioned conventional technology, the reading speed of frequently accessed data becomes a bottleneck, and the data processing capacity is reduced. The present invention has been made in view of such circumstances, and an object of the present invention is to improve communication performance between data processing blocks via an inter-block interface.

本発明に係るデータ処理システムは、第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. ..

第1の実施形態におけるデータ処理システムの構成例を示す図である。It is a figure which shows the configuration example of the data processing system in 1st Embodiment. 第1の実施形態の動作を表すフローチャートである。It is a flowchart which shows the operation of 1st Embodiment. 領域管理テーブルによる領域管理方法を説明するための図である。It is a figure for demonstrating the area management method by the area management table. 図2のステップS203における領域取得処理の例を示すフローチャートである。It is a flowchart which shows the example of the area acquisition processing in step S203 of FIG. 更新処理後の領域管理テーブル及びメモリプールの例を示す図である。It is a figure which shows the example of the area management table and the memory pool after the update process. 図2のステップS203における領域解放処理の例を示すフローチャートである。It is a flowchart which shows the example of the area release processing in step S203 of FIG. 更新処理後の領域管理テーブル及びメモリプールの例を示す図である。It is a figure which shows the example of the area management table and the memory pool after the update process. 第2の実施形態におけるデータ処理システムの構成例を示す図である。It is a figure which shows the structural example of the data processing system in 2nd Embodiment. 第2の実施形態におけるデータ処理システムの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the data processing system in 2nd Embodiment. 第3の実施形態におけるデータ処理システムの構成例を示す図である。It is a figure which shows the structural example of the data processing system in 3rd Embodiment. 第3の実施形態におけるデータ処理システムの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the data processing system in 3rd Embodiment. 第4の実施形態におけるデータ処理システムの構成例を示す図である。It is a figure which shows the structural example of the data processing system in 4th Embodiment. 第4の実施形態における送信制御部の構成例を示す図である。It is a figure which shows the structural example of the transmission control part in 4th Embodiment. 第4の実施形態における受信制御部の構成例を示す図である。It is a figure which shows the structural example of the reception control part in 4th Embodiment. 第4の実施形態におけるデータ処理システムの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the data processing system in 4th Embodiment. 図15のステップS1502における領域取得処理の例を示すフローチャートである。It is a flowchart which shows the example of the area acquisition process in step S1502 of FIG. 送信パケット領域及び返信パケット領域の例を示す図である。It is a figure which shows the example of the transmission packet area and the reply packet area.

以下、本発明の実施形態を図面に基づいて説明する。 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 data processing block 105, a second data processing block 109, and an inter-block bus 110. The first data processing block 105 and the second data processing block 109 are connected via the inter-block bus 110.

ここで、データ処理ブロックとは、例えば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 data processing block 105 has a transmission activation unit 101, a transmission unit 102, a memory management unit 103 for inter-block communication, and an area management table 104 for inter-block communication. The second data processing block 109 has a reception notification unit 107, a reception unit 106, and a memory pool 108 for inter-block communication. The operation of the data processing system according to the first embodiment shown in FIG. 1 will be described with reference to FIG. FIG. 2 is a flowchart showing an operation example of the data processing system according to the first embodiment.

まず、ステップS201にて、送信起動部101が送信部102へ送信開始指示を出す。このとき、送信起動部101は、送信データ格納領域サイズ及び送信データの情報をあわせて送信部102に渡す。送信開始指示を受け取った送信部102は、ステップS202にて、送信領域確保要求をメモリ管理部103へ送る。このとき、ステップS201において受け取った送信データ格納領域サイズもあわせてメモリ管理部103に渡す。 First, in step S201, the transmission activation unit 101 issues a transmission start instruction to the transmission unit 102. At this time, the transmission activation unit 101 passes the transmission data storage area size and the transmission data information together to the transmission unit 102. Upon receiving the transmission start instruction, the transmission unit 102 sends a transmission area reservation request to the memory management unit 103 in step S202. At this time, the transmission data storage area size received in step S201 is also passed to the memory management unit 103.

ステップS203にて、メモリ管理部103が領域管理テーブル104を解析して、必要なサイズの送信データ格納領域をメモリプール108上に確保する。ステップS203における処理について、図3〜図5を用いて詳細に説明する。図3は、領域管理テーブルによる領域管理方法を説明するための図である。図3(A)には、初期化直後状態における領域管理テーブル104及びメモリプール108の一例を示しており、図3(B)には、動作中状態における領域管理テーブル104及びメモリプール108の一例を示している。領域管理テーブルは、メモリプールに係る領域割り当て情報であり、例えばメモリプールを所定の大きさの領域に分割した領域単位でデータが書き込み可能であるか否かを示す情報を含んでいる。 In step S203, the memory management unit 103 analyzes the area management table 104 and secures a transmission data storage area of a required size on the memory pool 108. The process in step S203 will be described in detail with reference to FIGS. 3 to 5. FIG. 3 is a diagram for explaining an area management method using an area management table. FIG. 3A shows an example of the area management table 104 and the memory pool 108 in the state immediately after initialization, and FIG. 3B shows an example of the area management table 104 and the memory pool 108 in the operating state. Is shown. The area management table is area allocation information related to the memory pool, and includes, for example, information indicating whether or not data can be written in units of areas obtained by dividing the memory pool into areas of a predetermined size.

ここで、メモリプール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 memory pool 108 is Q bytes, and the minimum area acquisition unit in the memory pool 108 is N bytes. Therefore, the acquired area size is a multiple of N bytes. Also, for the sake of simplicity, it is assumed that Q is a multiple of N. The implementation of the area management table 104 can be considered in various forms, but here, it is assumed that it is a two-dimensional array represented by Table [Q / N] [3]. Table [Idx] [...] represents the state of the area starting from the address (N × Idx) of the memory pool 108, and its meaning is as follows.
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 elements 305 to 307 of the area management table 104 shown in FIG. 3B is as follows. "A continuous area of Size_n bytes starting from the address (n × N) is free, the free area before this free area is Idx = p, and the free area after this free area is Idx = m. "It turns out that. When the value of Previous-Idx is "-1", it means that it is the beginning of the free space list, and when the value of Next-Idx is "-1", it means that it is the end of the free space list. It shall indicate that it is a tail. Further, when the value of the free area list head index 301 is "-1", it means that there is no free area at all.

次に、図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 memory management unit 103 performs the processing of FIG.

まず、ステップS401にて、メモリ管理部103は、送信部102から送信領域確保要求とともに渡された送信データ格納領域サイズにより指定されたEを下回らない最小のNの倍数Rを求める。次に、ステップS402にて、メモリ管理部103は、領域管理テーブル104の空き領域リスト先頭インデックス301を参照して空き領域の先頭のインデックスを求める。次に、ステップS403にて、メモリ管理部103は、先頭インデックスが“−1”であるか否かを判断し、“−1”である場合にはメモリプール108に空き領域が皆無であるので直ちにステップS408へ進みエラー終了する。 First, in step S401, the memory management unit 103 obtains a minimum multiple R of N that does not fall below E specified by the transmission data storage area size passed together with the transmission area reservation request from the transmission unit 102. Next, in step S402, the memory management unit 103 refers to the free area list top index 301 of the area management table 104 to obtain the top index of the free area. Next, in step S403, the memory management unit 103 determines whether or not the start index is “-1”, and if it is “-1”, there is no free area in the memory pool 108. Immediately proceed to step S408 and end with an error.

ステップ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 memory management unit 103 obtains the size of the free area by referring to the information indicated by the start index in step S404. In the example shown in FIG. 4B, since the head index is “2”, the memory management unit 103 obtains the size of the free area by referring to the Table [p] [2] of the area management table 104.

次に、ステップ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 memory management unit 103 determines whether or not the size of the free area obtained in step S404 is equal to or greater than the R obtained in step S401. When the size of the free area obtained in step S404 is smaller than R, the memory management unit 103 obtains the index of the next free area by referring to Table [p] [1] in step S406. Here, if the index value of the next free area obtained is "-1", the memory management unit 103 determines in step S407 that there is no area satisfying the condition, and proceeds to step S408 to make an error. finish. On the other hand, if the index value of the next free area obtained in step S406 is not "-1", the memory management unit 103 returns to step S404 and repeats the loop process again.

メモリ管理部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 memory management unit 103 proceeds to step S409, and updates the area management table 104 in steps S409 to S411. If the index at this time is i, Pi = Table [i] [0], Ni = Table [i] [1], and Si = Table [i] [2]. The states of the area management table 104 and the memory pool 108 after the update process are as shown in FIG. 5, for example.

図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 memory pool 108 after the update process in step S410, which is performed when the size of the obtained free area is R. Further, FIG. 5B shows the states of the area management table 104 and the memory pool 108 after the update process in step S411, which is performed when the obtained free area size is different from R (larger than R). There is. In the processes of steps S410 and S411, when Pi or Ni is "-1", the corresponding list update process is omitted. For example, when Pi = -1, the table [Pi] [...] substitution process is not performed.

図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 memory management unit 103 determines whether or not the index i is the head of the free area list. If it is determined that the head is the head, the memory management unit 103 updates the free area list head index 301 of the area management table 104 in step S413. Finally, in step S414, the memory management unit 103 converts the index of the free area into the address of the memory pool and returns it. Note that the offset is a value in the IO space determined by the interface standard of the inter-block bus 110. For example, the address mapped to the PCI window in the address space of the CPU corresponds to this. This completes the detailed description of the process of step S203 shown in FIG.

図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 transmission unit 102 writes transmission data to the transmission data storage area on the memory pool 108 acquired in step S203. The transmission data to be written is the one passed by the transmission activation unit 101 to the transmission unit 102 in step S201. Further, the transmission data is written via the inter-block bus 110.

次に、ステップS205にて、送信部102が、送信データ格納領域のアドレスと受信要求通知とを受信通知部107へ通知する。送信データ格納領域のアドレス及び受信要求通知の通知はブロック間バス110を経由して行う。ステップS206にて、受信通知部107が、受信した送信部102からの受信要求とデータ格納領域のアドレスとを受信部106へ通知する。通知されるデータ格納領域アドレスは、受信部106が解釈可能なアドレス空間での値に変換されたものであり、送信部102は自分のアドレス空間と相手のアドレス空間のオフセットを管理しており、これらの変換機能を有する。 Next, in step S205, the transmission unit 102 notifies the reception notification unit 107 of the address of the transmission data storage area and the reception request notification. The address of the transmission data storage area and the notification of the reception request notification are notified via the inter-block bus 110. In step S206, the reception notification unit 107 notifies the reception unit 106 of the reception request from the received transmission unit 102 and the address of the data storage area. The data storage area address to be notified is converted into a value in an address space that can be interpreted by the receiving unit 106, and the transmitting unit 102 manages the offset between its own address space and the address space of the other party. It has these conversion functions.

次に、ステップS207にて、受信部106が、データ格納領域のアドレスを参照して、メモリプール108からデータを読み込む。ここで、受信通知部107の構造としては様々な形態が考えられる。例えばスクラッチパッドと割り込み指示ビットからなる通信レジスタで構成することが可能である。この場合、送信部102は、ブロック間バス110にマッピングされた受信通知部107のスクラッチパッドへ送信データ格納領域のアドレスを書き込み、さらに割り込み指示ビットを立てる。これにより、受信部106が受信要求とデータ格納領域のアドレスとを受け取ることが可能となる。 Next, in step S207, the receiving unit 106 refers to the address of the data storage area and reads data from the memory pool 108. Here, various forms can be considered as the structure of the reception notification unit 107. For example, it can be composed of a communication register consisting of a scratch pad and an interrupt instruction bit. In this case, the transmission unit 102 writes the address of the transmission data storage area to the scratch pad of the reception notification unit 107 mapped to the inter-block bus 110, and further sets an interrupt instruction bit. As a result, the receiving unit 106 can receive the reception request and the address of the data storage area.

なお、受信部106は、送信データを読み込んだことを送信側(本例ではデータ処理ブロック105)へ通知することが可能である。この方式は特に限定しないが、例えば送信側のメモリの決められた領域に送信データ格納領域のアドレスと受信完了フラグを立てることで読み出し完了を通知することができる。また、例えば送信側の特定のレジスタへ結果を書き込むことでも同様の通知を行うことが可能である。 The receiving unit 106 can notify the transmitting side (data processing block 105 in this example) that the transmission data has been read. This method is not particularly limited, and for example, the read completion can be notified by setting the address of the transmission data storage area and the reception completion flag in a predetermined area of the memory on the transmitting side. Further, for example, the same notification can be performed by writing the result to a specific register on the transmitting side.

次に、ステップS208にて、送信起動部101が、送信部102に対して送信終了を指示する。送信起動部101が送信部102に対して送信終了指示を行うタイミングを決定する方法には様々なものが考えうるが、ここでは特に限定しない。ステップS209にて、送信部102が、送信データ格納領域の先頭アドレスとサイズとをメモリ管理部103へ送り、その送信データ格納領域の解放を指示する。 Next, in step S208, the transmission activation unit 101 instructs the transmission unit 102 to end transmission. Various methods can be considered for determining the timing at which the transmission start unit 101 gives the transmission end instruction to the transmission unit 102, but the present invention is not particularly limited. In step S209, the transmission unit 102 sends the start address and size of the transmission data storage area to the memory management unit 103, and instructs the memory management unit 103 to release the transmission data storage area.

ここで、送信部102は、送信データが受信部106によって確実に読み込まれたかどうかを調べることが可能である。方式は特に限定しないが、ステップS207の説明で述べた例に倣えば、メモリ上の受信完了フラグを調べる方法や、特定のレジスタを確認する方法等がある。送信部102は、例えば受信が完了するまで送信データ格納領域の解放要求を出さない選択も可能である。こうすることで、読み込み前のデータを破壊してしまうことを防止することができる。 Here, the transmission unit 102 can check whether or not the transmission data has been reliably read by the reception unit 106. The method is not particularly limited, but according to the example described in the description of step S207, there are a method of checking the reception completion flag on the memory, a method of checking a specific register, and the like. The transmission unit 102 can also select not to issue a release request for the transmission data storage area until, for example, reception is completed. By doing so, it is possible to prevent the data before reading from being destroyed.

ステップS210にて、メモリ管理部103が、領域管理テーブル104を操作して、メモリプール108上にとられた送信データ格納領域を解放する。以下、ステップS210における処理について、図3を参考にしながら、主に図6のフローチャートを用いて詳細に説明する。図6は、図2のステップS210におけるメモリ領域解放処理の例を示すフローチャートである。なお、特に断らない限り図6の処理はメモリ管理部103が行う。 In step S210, the memory management unit 103 operates the area management table 104 to release the transmission data storage area taken on the memory pool 108. Hereinafter, the process in step S210 will be described in detail mainly using the flowchart of FIG. 6 with reference to FIG. FIG. 6 is a flowchart showing an example of the memory area release process in step S210 of FIG. Unless otherwise specified, the memory management unit 103 performs the processing of FIG.

まず、ステップS601にて、メモリ管理部103は、解放対象となる領域のアドレスAとそのサイズSを受け取る。これらの値は、ステップS209において送信部102がメモリ管理部103へ渡したものである。次に、ステップS602にて、メモリ管理部103は、解放対象となる領域のアドレスAを領域管理テーブル104における空き領域リストのインデックスに変換する。offsetはステップS414において変換に用いたものと同じである。また、領域管理テーブル104の空き領域管理手法については図3を用いて前述した通りである。 First, in step S601, the memory management unit 103 receives the address A of the area to be released and its size S. These values are passed to the memory management unit 103 by the transmission unit 102 in step S209. Next, in step S602, the memory management unit 103 converts the address A of the area to be released into the index of the free area list in the area management table 104. The offset is the same as that used for the conversion in step S414. The free area management method of the area management table 104 is as described above with reference to FIG.

次に、ステップS603にて、メモリ管理部103は、ステップS602において求めたインデックスiを挟むPi及びNi(Pi<i<Ni)を求める。この処理は、領域管理テーブル104をリスト探索することで行う。次に、ステップS604にて、メモリ管理部103は、対象となるインデックスiが空き領域リストの終端であるか否かを判断する。ここで、Niが“−1”であることが空き領域リストの終端であることを表す。 Next, in step S603, the memory management unit 103 obtains Pi and Ni (Pi <i <Ni) sandwiching the index i obtained in step S602. This process is performed by searching the area management table 104 in a list. Next, in step S604, the memory management unit 103 determines whether or not the target index i is the end of the free area list. Here, the fact that Ni is "-1" indicates that the end of the free area list.

ステップ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 memory management unit 103 determines whether or not the area to be released should be connected to the next free area. If it is determined that the memory management unit 103 should be connected, the area management table 104 is updated in step S606, and if it is determined that the memory management unit 103 is not connected, the area management table 104 is updated in step S607. Update process. The states of the area management table 104 and the memory pool 108 after the update process are as shown in FIG. 7, for example. FIG. 7A shows the state of the area management table 104 and the memory pool 108 after the update process in step S606. Further, FIG. 7B shows the state of the area management table 104 and the memory pool 108 after the update process in step S607.

図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 memory management unit 103 asks whether the index i to be released is the head of the free area list. Judge whether or not. Here, it means that Pi is "-1" at the beginning.

ステップ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 memory management unit 103 rewrites the free area list top index 301 to i in step S609. Since the process when the target index i in step S604 is the head of the free area list is the same as the process described above in step S607, the description thereof will be omitted. This completes the detailed description of the process of step S210 shown in FIG.
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 memory pool 108 of the second data processing block 109 as the transmission destination. A first data processing block 105 has. As a result, the data storage area in the second data processing block 109 can be determined and data communication can be performed without reading via the inter-block bus, and the data communication can be performed via the inter-block bus related to the data communication. It is possible to suppress the occurrence of reading. Therefore, it is possible to eliminate the bottleneck of the reading process in the data communication via the inter-block bus and improve the communication performance between the data processing blocks.

なお、前述した実施形態では第1のデータ処理ブロック105が送信を担い第2のデータ処理ブロック109が受信を担うようにしているが、双方のデータ処理ブロックが送受信系を組み込むことで双方向通信が可能である。 In the above-described embodiment, the first data processing block 105 is responsible for transmission and the second data processing block 109 is responsible for reception. However, both data processing blocks incorporate a transmission / reception system for bidirectional communication. Is possible.

(第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 data processing block 105 on the transmitting side via the inter-block bus 110. Has been done.

第1のデータ処理ブロック105において第1の実施形態と最も異なる点は、送信先管理部804が追加されたことと、ブロック間通信の領域管理テーブル104(領域管理テーブル<1>〜領域管理テーブル<N>)を複数有する。送信先管理部804は、送信先に対応する領域管理テーブル104と受信通知部107との情報を管理する。 The most different points of the first data processing block 105 from the first embodiment are that the destination management unit 804 is added and the area management table 104 (area management table <1> to area management table) for inter-block communication. It has a plurality of <N>). The destination management unit 804 manages information between the area management table 104 corresponding to the destination and the reception notification unit 107.

送信起動部801は、送信部802に対して送信開始指示や送信終了指示を行う際に送信先のデータ処理ブロックを示す送信先識別子を与える。送信先識別子により、送信先(受信側)のデータ処理ブロックが特定することが可能となっている。送信部802は、受け取った送信先識別子を送信先管理部804へ送って、対応する受信通知部107の情報を取得する。また、送信部802は、メモリ管理部803に対して送信データ格納領域の確保を要求する際に付加情報として送信先識別子を与える。メモリ管理部803は、受け取った送信先識別子を送信先管理部804へ送って対応する領域管理テーブル104の情報を取得する。 The transmission activation unit 801 gives a transmission destination identifier indicating a data processing block of the transmission destination when giving a transmission start instruction or a transmission end instruction to the transmission unit 802. The destination identifier makes it possible to identify the data processing block of the destination (reception side). The transmission unit 802 sends the received destination identifier to the destination management unit 804 to acquire the information of the corresponding reception notification unit 107. Further, the transmission unit 802 gives a transmission destination identifier as additional information when requesting the memory management unit 803 to secure a transmission data storage area. The memory management unit 803 sends the received destination identifier to the destination management unit 804 to acquire the information of the corresponding area management table 104.

このように、第2の実施形態における第1のデータ処理ブロック105は、第1の実施形態の機能に対して複数の送信先を管理する機能が追加されている。次に、図8に示した第2の実施形態におけるデータ処理システムの動作について、図9を参照して説明する。図9は、第2の実施形態におけるデータ処理システムの動作例を示すフローチャートである。 As described above, the first data processing block 105 in the second embodiment has an additional function of managing a plurality of destinations with respect to the function of the first embodiment. Next, the operation of the data processing system according to the second embodiment shown in FIG. 8 will be described with reference to FIG. FIG. 9 is a flowchart showing an operation example of the data processing system according to the second embodiment.

まず、ステップS901にて、送信起動部801が送信部802に対して送信開始指示を出す。このとき、送信起動部801は、第1の実施形態と同様に送信データ格納領域のサイズとデータ内容とあわせて送信部802に渡すほか、送信先識別子を送信部802に渡す。次に、ステップS902にて、送信部802がメモリ管理部803に対して送信領域確保要求を出す。ここでは、取得する領域のサイズの他に、ステップS901において受け取った送信先識別子もあわせてメモリ管理部803に渡す。 First, in step S901, the transmission start unit 801 issues a transmission start instruction to the transmission unit 802. At this time, the transmission activation unit 801 passes the transmission data storage area size and data contents to the transmission unit 802 together with the transmission data storage area, and also passes the transmission destination identifier to the transmission unit 802, as in the first embodiment. Next, in step S902, the transmission unit 802 issues a transmission area securing request to the memory management unit 803. Here, in addition to the size of the area to be acquired, the destination identifier received in step S901 is also passed to the memory management unit 803.

ステップS903にて、メモリ管理部803が送信先管理部804に対して送信先識別子を渡し、送信先に対応する領域管理テーブル104の情報を取得する。送信先識別子と領域管理テーブル情報との対応付け方法としては様々なものが考えられる。例えば、送信先識別子と対応する領域管理テーブルのアドレスとを静的にテーブル管理する方式等がある。この方式によれば、メモリ管理部803が取得したアドレスは直接的に所望の領域管理テーブル104(領域管理テーブル<1>〜領域テーブル<N>のどれか1つ)を示すことになる。 In step S903, the memory management unit 803 passes the destination identifier to the destination management unit 804, and acquires the information of the area management table 104 corresponding to the destination. Various methods can be considered for associating the destination identifier with the area management table information. For example, there is a method of statically managing the destination identifier and the address of the corresponding area management table. According to this method, the address acquired by the memory management unit 803 directly indicates the desired area management table 104 (any one of the area management table <1> to the area table <N>).

ステップ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 transmission unit 802 passes the destination identifier to the destination management unit 804, and acquires the information of the reception notification unit 107 of the destination. Various methods can be considered as a method of associating the destination identifier with the reception notification unit 107 of each of the second data processing blocks 805 to 807. For example, when the reception notification unit 107 is configured as a communication register as described in the first embodiment, the identifier and the IO address of the reception notification unit may be managed in a static table.

なお、ここで言う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 inter-block bus 110, and corresponds to, for example, a map address on the PCI window. According to this method, the transmission unit 802 can access the desired reception notification unit 107 by accessing the acquired address. The management information of the destination management unit 804 is used in steps S903 and S905, and this information can be set at an arbitrary timing at the time of initialization. Various methods can be considered as the setting method, but the setting method is not particularly limited in this embodiment. Next, in step S906, the same processing as in steps S205 to S207 shown in FIG. 2 is performed, and the processing on the receiving side is completed.

次に、ステップS907にて、送信起動部801が送信部802に対して送信終了指示を出す。送信起動部801が送信部802に対して送信終了指示を行うタイミングを決定する方法には様々なものが考えうるが、ここでは特に限定しない。ステップS908にて、送信部802が送信先識別子を付加して送信データ格納領域の解放要求をメモリ管理部803へ行う。なお、ステップS907〜S908における処理において第1の実施形態の処理との差異は、ステップS901〜S902の処理と同様に送信先識別子が付加データとして渡ることのみである。 Next, in step S907, the transmission start unit 801 issues a transmission end instruction to the transmission unit 802. Various methods can be considered for determining the timing at which the transmission start unit 801 gives the transmission end instruction to the transmission unit 802, but the method is not particularly limited here. In step S908, the transmission unit 802 adds a transmission destination identifier and requests the memory management unit 803 to release the transmission data storage area. The only difference between the processes in steps S907 to S908 and the processes in the first embodiment is that the destination identifier is passed as additional data as in the processes in steps S901 to S902.

次に、ステップS909にて、前述したステップS903と同様にしてメモリ管理部803が解放対象の領域管理テーブル104を選択する。続くステップS910にて、図2に示したステップS210と同様の処理が行われて送信データ格納領域の解放が完了する。以上で、図9に示した第2の実施形態におけるデータ処理システムの動作説明を終わる。 Next, in step S909, the memory management unit 803 selects the area management table 104 to be released in the same manner as in step S903 described above. In the following step S910, the same processing as in step S210 shown in FIG. 2 is performed to complete the release of the transmission data storage area. This concludes the description of the operation of the data processing system according to the second embodiment shown in FIG.

第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 data processing block 105 is responsible for transmission, and the other data processing block groups 805 to 807 are responsible for reception. However, both data processing blocks incorporate a transmission / reception system. Forward communication is possible.

(第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 transmission client 1001 and the transmission notification unit 1003 of the first data processing block 105.

送信クライアント1001は、メモリ管理部103を制御して送信データ格納領域の取得を行う。また、送信クライアント1001は、第2のデータ処理ブロック109が有するブロック間通信用のメモリプール108へ送信データを直接書き込むとともに、送信通知部1003に対して送信開始指示を出す。また、送信クライアント1001は、メモリ管理部103に対して送信データ格納領域の解放指示を行う。送信通知部1003は、送信クライアント1001からの送信開始指示を受け取ると、第2のデータ処理ブロック109が有する受信通知部107へ受信要求を通知する。 The transmission client 1001 controls the memory management unit 103 to acquire the transmission data storage area. Further, the transmission client 1001 directly writes the transmission data to the memory pool 108 for inter-block communication included in the second data processing block 109, and issues a transmission start instruction to the transmission notification unit 1003. Further, the transmission client 1001 instructs the memory management unit 103 to release the transmission data storage area. When the transmission notification unit 1003 receives the transmission start instruction from the transmission client 1001, the transmission notification unit 1003 notifies the reception notification unit 107 of the second data processing block 109 of the reception request.

以下、第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 transmission client 1001 requests the memory management unit 103 to secure the transmission data storage area. At this time, the transmission client 1001 also passes the size of the area to be acquired.

次に、ステップ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 transmission client 1001. Next, in step S1103, the transmission client 1001 writes transmission data to the transmission data storage area of the memory pool 108 acquired in step S1102. The transmission data is written to the transmission data storage area via the inter-block bus 110.

次に、ステップS1104にて、送信クライアント1001が送信通知部1003に対して送信開始指示を出す。このとき、データを書き込んだ送信データ格納領域のアドレスをあわせて送信通知部1003に渡す。ステップS1105にて、図2に示したステップS205〜S207と同様の処理が行われ、データの受信処理が完了する。なお、第1の実施形態において送信部102が行った送信データ格納領域のアドレスの変換機能は、送信通知部1003が有している。 Next, in step S1104, the transmission client 1001 issues a transmission start instruction to the transmission notification unit 1003. At this time, the address of the transmission data storage area in which the data is written is also passed to the transmission notification unit 1003. In step S1105, the same processing as in steps S205 to S207 shown in FIG. 2 is performed, and the data reception processing is completed. The transmission notification unit 1003 has a function of converting the address of the transmission data storage area performed by the transmission unit 102 in the first embodiment.

次に、ステップS1106にて、送信クライアント1001は、メモリ管理部103に対して送信データ格納領域の先頭アドレスとサイズとを送り、その送信データ格納領域の解放指示を行う。続くステップS1107にて、図2に示したステップS210と同様の処理が行われて送信データ格納領域が解放される。以上で、図11に示した第3の実施形態におけるデータ処理システムの動作説明を終わる。 Next, in step S1106, the transmission client 1001 sends the start address and size of the transmission data storage area to the memory management unit 103, and gives an instruction to release the transmission data storage area. In the following step S1107, the same processing as in step S210 shown in FIG. 2 is performed to release the transmission data storage area. This concludes the description of the operation of the data processing system according to the third embodiment shown in FIG.

第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 data processing block 109 and perform data communication without performing reading via the inter-block bus. 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 data processing block 105 is responsible for transmission and the second data processing block 109 is responsible for reception. However, both data processing blocks incorporate a transmission / reception system for bidirectional communication. Is possible. Further, in the present embodiment, the case where there is one transmitting side and one receiving side has been described, but if the destination management unit 804 is introduced as in the second embodiment, it is possible to deal with a plurality of receiving destinations.

(第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 data processing blocks 1201 and 1211 are connected on the inter-block bus 110. As described in the first embodiment, the configuration of the data processing system includes a configuration composed of a plurality of data processing blocks arranged on different chips and a configuration composed of a plurality of data processing blocks arranged on one chip. including.

データ処理ブロック1201は、複数の通信クライアント1202、送信制御部1203、受信制御部1204、内部メモリプール1205、及びブロック間通信用のメモリプール108を有する。図12においては、データ処理ブロック1201の内部構成のみ図示しているが、複数のデータ処理ブロック1201、1211は同様の内部構成を有する。 The data processing block 1201 has a plurality of communication clients 1202, a transmission control unit 1203, a reception control unit 1204, an internal memory pool 1205, and a memory pool 108 for inter-block communication. Although only the internal configuration of the data processing block 1201 is shown in FIG. 12, the plurality of data processing blocks 1201 and 1211 have the same internal configuration.

送信制御部1203は、通信クライアント1202から送信データ格納領域の確保指示や解放指示、送信開始指示を受け取り、送信関連の制御全般を受け持つ。送信制御部1203は、送信データ格納領域の確保指示を受け取ると、相手先のデータ処理ブロックのメモリプール108から送信データ格納領域を確保するとともに、内部メモリプール1205から返信データ格納領域を確保する。通信クライアント1202が送信データ格納領域への送信データの書き込みを終えて送信開始指示を出すと、送信制御部1203は相手先のデータ処理ブロックに対して受信通知要求を出す。また、送信制御部1203は、送信データ格納領域の解放指示を受け取ると、確保した送信データ格納領域及び返信データ格納領域を解放する。 The transmission control unit 1203 receives a transmission data storage area securing instruction, a release instruction, and a transmission start instruction from the communication client 1202, and is in charge of overall transmission-related control. Upon receiving the instruction to secure the transmission data storage area, the transmission control unit 1203 secures the transmission data storage area from the memory pool 108 of the data processing block of the other party and secures the reply data storage area from the internal memory pool 1205. When the communication client 1202 finishes writing the transmission data to the transmission data storage area and issues a transmission start instruction, the transmission control unit 1203 issues a reception notification request to the data processing block of the other party. Further, when the transmission control unit 1203 receives the release instruction of the transmission data storage area, the transmission control unit 1203 releases the secured transmission data storage area and the reply data storage area.

受信制御部1204は、他のデータ処理ブロックから受信通知要求を受けると通信クライアント1202へ通知する。受信制御部1204は、受信通知要求で渡されたアドレスのコマンドヘッダを解釈して通知すべき通信クライアント1202と受信データ種別(返信か新規送信か)を特定する。そして、受信制御部1204は、受信データ種別と受信データのアドレスを通信クライアント1202へ通知して受信指示を出す。受信制御部1204からの受信指示を受け取った通信クライアント1202は、渡されたアドレスからデータを読み込む。 The reception control unit 1204 notifies the communication client 1202 when it receives a reception notification request from another data processing block. The reception control unit 1204 interprets the command header of the address passed in the reception notification request and specifies the communication client 1202 to be notified and the received data type (reply or new transmission). Then, the reception control unit 1204 notifies the communication client 1202 of the reception data type and the reception data address, and issues a reception instruction. The communication client 1202 that has received the reception instruction from the reception control unit 1204 reads the data from the passed address.

次に、送信制御部1203の構成について図13を参照して説明する。図13は、送信制御部1203の構成例を示すブロック図である。図13において、1301は送信領域管理部である。通信クライアント1202からの送信データ格納領域の確保指示及び解放指示への対応は、送信領域管理部1301が行う。送信領域管理部1301は、送信先のデータ処理ブロックの識別子(送信先識別子)と領域情報とを、ブロック通信用のメモリ管理部803へ渡して送信データ格納領域を確保する。また、送信領域管理部1301は、内部メモリ管理部1302を用いて内部メモリプール1205から返信データ格納領域を確保する。 Next, the configuration of the transmission control unit 1203 will be described with reference to FIG. FIG. 13 is a block diagram showing a configuration example of the transmission control unit 1203. In FIG. 13, 1301 is a transmission area management unit. The transmission area management unit 1301 handles the instruction for securing and releasing the transmission data storage area from the communication client 1202. The transmission area management unit 1301 passes the identifier (destination identifier) of the data processing block of the transmission destination and the area information to the memory management unit 803 for block communication to secure the transmission data storage area. Further, the transmission area management unit 1301 secures a reply data storage area from the internal memory pool 1205 by using the internal memory management unit 1302.

返信データ格納領域とは、送信先の通信クライアントが実行結果等を格納するための領域である。返信された内容は送信側の通信クライアント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 communication client 1202 on the transmitting side, the reply data storage area is secured in the same data processing block (data processing block on the transmitting side). Various methods can be applied as the internal memory pool management method performed by the internal memory management unit 1302. For example, a commonly used link list-based free list management method can be considered, but the present invention is not limited thereto.

通信クライアント1202が指示する送信開始指示に対しては、アドレス変換部1303が対応する。通信クライアント1202が送信要求するアドレスは、送信データ格納領域内部のアドレスであるため、それを送信データ格納領域の先頭アドレスに変換して送信通知部1305へ渡す。送信通知部1305における送信処理動作については、図10に示した第3の実施形態における送信通知部1003の動作に対して送信先管理部804が行う送信先の選択動作が加わるのみである。これについては第2の実施形態及び第3の実施形態において既出であるので説明を省く。 The address translation unit 1303 responds to the transmission start instruction instructed by the communication client 1202. Since the address requested by the communication client 1202 to be transmitted is an address inside the transmission data storage area, it is converted into the start address of the transmission data storage area and passed to the transmission notification unit 1305. Regarding the transmission processing operation in the transmission notification unit 1305, only the transmission destination selection operation performed by the transmission destination management unit 804 is added to the operation of the transmission notification unit 1003 in the third embodiment shown in FIG. Since this has already been described in the second embodiment and the third embodiment, the description thereof will be omitted.

次に、受信制御部1204の構成について図14を参照して説明する。図14は、受信制御部1204の構成例を示すブロック図である。図14において、受信管理部1401は、受信通知部107から受信通知要求と受信データアドレスを受け取る。なお、受信通知部107は第1の実施形態にて既出であるため説明を省く。受信通知部107から受け取るアドレスは、メモリプール108又は内部メモリプール1205のどちらかに含まれる領域のアドレスである。 Next, the configuration of the reception control unit 1204 will be described with reference to FIG. FIG. 14 is a block diagram showing a configuration example of the reception control unit 1204. In FIG. 14, the reception management unit 1401 receives the reception notification request and the reception data address from the reception notification unit 107. Since the reception notification unit 107 has already been described in the first embodiment, the description thereof will be omitted. The address received from the reception notification unit 107 is the address of the area included in either the memory pool 108 or the internal memory pool 1205.

受信管理部1401は、受け取ったアドレスを参照して既定のコマンドヘッダを読み込む。後述する動作説明にて詳細を説明するが、このコマンドヘッダには受信データ種別(返信か新規送信か)と通信クライアントを指定する識別子が含まれている。受信管理部1401は、受信データ種別と通信クライアント識別子を受信データアドレスとともにクライアント管理部1402へ渡す。 The reception management unit 1401 reads the default command header by referring to the received address. The details will be described later in the operation description, but this command header includes an identifier that specifies the received data type (reply or new transmission) and the communication client. The reception management unit 1401 passes the reception data type and the communication client identifier to the client management unit 1402 together with the reception data address.

クライアント管理部1402は、通信クライアント識別子と対応する通信クライアント1202との関係を管理しており、受信管理部1401から受けた情報を通信クライアント1202へ引き渡す。なお、クライアント管理部1402における通信クライアント管理手法としては様々な方法が適用可能であるが特に限定はしない。例えば、初期化時に通信クライアント1202が自身の識別子とともにコールバック関数を登録しておく手法等がある。この手法によれば、クライアント管理部1402は、識別子に対応したコールバック関数を呼ぶことで、対象となる通信クライアント1202へ情報を通知することが可能となる。 The client management unit 1402 manages the relationship between the communication client identifier and the corresponding communication client 1202, and delivers the information received from the reception management unit 1401 to the communication client 1202. Various methods can be applied as the communication client management method in the client management unit 1402, but the method is not particularly limited. For example, there is a method in which the communication client 1202 registers a callback function together with its own identifier at the time of initialization. According to this method, the client management unit 1402 can notify the target communication client 1202 of information by calling the callback function corresponding to the identifier.

次に、第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 inter-block bus 110 can be both the transmitting side and the receiving side. .. It should be noted that a data processing block that has only one of the functions of the transmitting side and the function of the receiving side and operates only as the transmitting side or the receiving side may be included.

ステップ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 communication client 1202 registers its own identifier and the reception request notification method in the client management unit 1402 of the reception control unit 1204. As the reception request notification method, for example, the callback function as described above is used. For example, the C language prototype is as follows. The meaning of the argument will be described later in the description in the process of steps S151 to S1511.
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 communication client 1202 issues an instruction to secure the transmission data storage area to the transmission area management unit 1301 of the transmission control unit 1203. At this time, the communication client 1202 passes its own identifier, the destination identifier (data processing block identifier and communication client identifier), the transmission data size, and the reply data size together to the transmission area management unit 1301.

ステップ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 area management unit 1301 in step S1502. In step S1601, the transmission area management unit 1301 acquires the transmission packet area from the memory management unit 803. Since the method of acquiring the area has already been described in the third embodiment, the description thereof will be omitted, but here, the transmission packet area will be described.

図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 transmission packet area 1701 is divided into a transmission command header unit 1702 and a transmission data storage area 1710. The transmission command header unit 1702 has a destination processing block identifier 1703, a destination client identifier 1704, a source processing block identifier 1705, a source client identifier 1706, a transmission data storage area size 1707, and a packet type 1708. Further, the transmission command header unit 1702 has a reply packet area start position 1709 and a reply data storage area size 1711.

送信コマンドヘッダ部1702のサイズはShであり固定である。送信データ格納領域1710のサイズは、ステップS1502において通信クライアント1202が与えた送信データサイズと等しい。したがって、送信領域管理部1301がステップS1601において取得する送信パケット領域のサイズは、Shと送信データサイズの和になる。なお、メモリ管理部803が返却するアドレスは、ブロック間バス110を介してアクセスするためのアドレスである。これは第1の実施形態で述べた通り、領域管理テーブル104が持つ機能を用いて変換した結果である。 The size of the transmission command header unit 1702 is Sh and is fixed. The size of the transmission data storage area 1710 is equal to the transmission data size given by the communication client 1202 in step S1502. Therefore, the size of the transmission packet area acquired by the transmission area management unit 1301 in step S1601 is the sum of Sh and the transmission data size. The address returned by the memory management unit 803 is an address for accessing via the inter-block bus 110. This is the result of conversion using the function of the area management table 104 as described in the first embodiment.

図16に戻り、ステップS1602にて、送信領域管理部1301は、送信パケット領域の確保が成功したか否かを判断する。送信パケット領域の確保が失敗した場合、ステップS1608にて失敗を通知して処理を完了させる。送信パケット領域の確保が成功した場合、送信領域管理部1301は、ステップS1603にて内部メモリ管理部1302から返信パケット領域を取得する。 Returning to FIG. 16, in step S1602, the transmission area management unit 1301 determines whether or not the transmission packet area has been successfully secured. If the securing of the transmission packet area fails, the failure is notified in step S1608 and the process is completed. When the transmission packet area is successfully secured, the transmission area management unit 1301 acquires the reply packet area from the internal memory management unit 1302 in step S1603.

返信パケット領域のフォーマットは図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 reply packet area 1721 is divided into a reply data header unit 1722 and a reply data storage area 1730. The reply data header unit 1722 has a reply destination processing block identifier 1723, a reply destination client identifier 1724, a reply source processing block identifier 1725, a reply source client identifier 1726, a reply data storage area size 1727, and a packet type 1728. Further, the reply data header unit 1702 has a parent transmission packet area start position 1729. The area 1731 is a reserve area.

返信データヘッダ部1722のサイズは送信コマンドヘッダ部1702と同様にShであり固定である。返信データ格納領域1730のサイズは、ステップS1502において通信クライアント1202が与えた返信データサイズと等しい。したがって、送信領域管理部1301がステップS1603において取得する返信パケット領域のサイズは、Shと返信データサイズの和になる。返信パケット領域は送信側の内部メモリプール1205に確保される。これは後述するようにデータ書き込みを受信側で行い、データ読み込みを送信側で行うためである。また、内部メモリ管理部1302が返却するアドレスはデータ処理ブロック内部のアドレス空間での値である。なお、ステップS1603において内部メモリ管理部1302が内部メモリプール1205からメモリを確保する方法については前述した通り特に限定しない。 The size of the reply data header unit 1722 is Sh and fixed as in the transmission command header unit 1702. The size of the reply data storage area 1730 is equal to the size of the reply data given by the communication client 1202 in step S1502. Therefore, the size of the reply packet area acquired by the transmission area management unit 1301 in step S1603 is the sum of Sh and the reply data size. The reply packet area is secured in the internal memory pool 1205 on the transmitting side. This is because the data is written on the receiving side and the data is read on the transmitting side as described later. The address returned by the internal memory management unit 1302 is a value in the address space inside the data processing block. The method by which the internal memory management unit 1302 secures the memory from the internal memory pool 1205 in step S1603 is not particularly limited as described above.

再び図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 area management unit 1301 determines whether or not the reply packet area has been successfully secured. If the securing of the reply packet area fails, the failure is notified in step S1608 and the process ends. When the reply packet area is successfully secured, the transmission area management unit 1301 writes information to the transmission command header unit 1702 in step S1605. The information to be written is 1703 to 1709 and 1711 shown in FIG. The destination data processing block identifier 1703 and the destination client identifier 1704 are information that identifies the destination. The source data processing block identifier 1705 and the source client identifier 1706 are information that identifies the source. The transmission data storage area size 1707 is the size of the transmission data storage area 1710 in which the communication client 1202 actually writes the transmission data. The reply data storage area size 1711 is the size of the reply data storage area 1730 in which the destination client writes a reply. The packet type 1708 indicates whether this packet is a new transmission packet or a reply packet (reply to a new transmission packet). Here, it is a new transmission packet. Here, 1703 to 1707 and 1711 are all data given by the communication client 1202 in step S1501. On the other hand, the reply packet area start position 1709 represents the beginning of the reply packet area 1721, and the transmission area management unit 1301 dynamically determines when the area is acquired. The reply packet area start position 1709 is a value converted into the address space of the destination data processing block. The transmission area management unit 1301 has a function of converting the address of the internal memory pool 1205 in its own address space into a value for the destination data processing block to access via the inter-block bus 110.

続いて、ステップ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 area management unit 1301 writes information to the reply data header unit 1722. The information to be written is 1723 to 1729 in FIG. The reply destination data processing block identifier 1723 and the reply destination client identifier 1724 are information for specifying the reply destination. In other words, it is equal to the sender's identifier. The reply source data processing block identifier 1725 and the reply source client identifier 1726 are information for identifying the reply source. In other words, it is equal to the destination identifier. The reply data storage area size 1727 represents the size of the reply data storage area 1730. The packet type 1728 is the same as the packet type 1708, but the value here represents a reply packet. All of these 1723 to 1727 are the data given by the communication client 1202 in step S1501. On the other hand, the parent transmission packet area start position 1729 represents the head of the transmission packet area 1701, and the transmission area management unit 1301 dynamically determines when the area is acquired. The parent transmission packet area start position 1729 stores the value for accessing from the address space of the source data processing block as it is.

次に、ステップS1607にて、送信領域管理部1301は、送信データ格納領域1710の先頭アドレスを返却して処理を完了する。以上で図15に示したステップS1502での処理の説明を終わる。 Next, in step S1607, the transmission area management unit 1301 returns the start address of the transmission data storage area 1710 and completes the process. This completes the description of the process in step S1502 shown in FIG.

図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 communication client 1202 writes the transmission data to the acquired transmission data storage area. Next, in step S1504, the communication client 1202 instructs the address translation unit 1303 of the transmission control unit 1203 to start transmission. Here, the communication client 1202 passes the data processing block identifier of the transmission destination and the start address of the transmission data storage area together to the address conversion unit 1303.

アドレス変換部1303は、受け取った送信データ格納領域の先頭アドレスを送信パケット領域の先頭アドレスへ変換する。この変換は図17から明らかな通り、送信データ格納領域1710のアドレスからヘッダサイズShを引くことで行う。そして、アドレス変換部1303は、送信パケット先頭アドレスを送信通知部1305へ送付して送信開始指示を中継する。なお、対象が返信パケットの場合も全く同様の処理によって、返信データ格納領域のアドレスを返信パケット領域のアドレスに変換する。 The address translation unit 1303 translates the start address of the received transmission data storage area into the start address of the transmission packet area. As is clear from FIG. 17, this conversion is performed by subtracting the header size Sh from the address of the transmission data storage area 1710. Then, the address translation unit 1303 sends the transmission packet start address to the transmission notification unit 1305 to relay the transmission start instruction. When the target is a reply packet, the address of the reply data storage area is converted into the address of the reply packet area by exactly the same processing.

次に、ステップ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 transmission notification unit 1305 specifies the reception notification unit 107 of the transmission destination. In step S1506, the transmission notification unit 1305 converts the address space of the transmission packet area address. Here, the address space of the data processing block on the transmitting side is converted into an address for the data processing block on the receiving side to access via the inter-block bus 110. The address space conversion is performed by the transmission notification unit 1305 as in the third embodiment.

ステップS1507にて、送信通知部1305が送信先の受信通知部107に対して、送信パケットアドレス及び受信要求を通知する。ステップS1508にて、受信通知部107は受信管理部1401に対して受信要求を中継する。ここでは送信パケットアドレスをあわせて受信管理部1401に渡す。 In step S1507, the transmission notification unit 1305 notifies the transmission destination reception notification unit 107 of the transmission packet address and the reception request. In step S1508, the reception notification unit 107 relays the reception request to the reception management unit 1401. Here, the transmission packet address is also passed to the reception management unit 1401.

ステップS1509にて、受信管理部1401は、自データ処理ブロック内のメモリプール108へアクセスして送信コマンドヘッダ部1702を解析し、クライアント管理部1402へ通知する。ここで通知するデータは、送信関連情報と返信関連情報とに分かれる。送信関連情報としては、送信先クライアント識別子1704、送信データ格納領域のアドレス1707とサイズ1710である。返信関連情報としては、返信先のデータ処理ブロック識別子1705とクライアント識別子1706、及び返信データ格納領域のアドレス1709とサイズ1711である。なお、返信データ格納領域のアドレスは、返信パケット領域開始位置1709にShを加えることで求める。 In step S1509, the reception management unit 1401 accesses the memory pool 108 in the own data processing block, analyzes the transmission command header unit 1702, and notifies the client management unit 1402. The data to be notified here is divided into transmission-related information and reply-related information. The transmission-related information includes a destination client identifier 1704, a transmission data storage area address 1707, and a size 1710. The reply-related information includes a reply destination data processing block identifier 1705 and a client identifier 1706, and a reply data storage area address 1709 and size 1711. The address of the reply data storage area is obtained by adding Sh to the reply packet area start position 1709.

ここで、パケット種別が新規送信パケットを表している場合には、送信関連情報及び返信関連情報のすべてを通知する。ステップ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 memory pool 108 but the internal memory pool 1205. The header to be analyzed is the reply data header unit 1722. Finally, the client management unit 1402 is notified including the selected data group and the packet type itself.

次に、ステップS1510にて、クライアント管理部1402は、受け取った送信先クライアント識別子に対応した通信クライアント1202を選んでそれを呼び出す。前述したコールバック関数を用いるとすれば、chip_idに返信先のデータ処理ブロック識別子、client_idに返信先のクライアント識別子を設定する。さらに、kindには送信パケット種別、sendBuf及びsendLengthにはそれぞれ送信データ格納領域のアドレス及びサイズを設定する。そして、respBuf及びrespLengthにはそれぞれ返信データ格納領域のアドレス及びサイズを設定する。パケット種別が返信パケットであるときは、chip_id、client_id、respBuf及びrespLengthは設定しない。通常は、このコールバック関数が呼ばれると該当する通信クライアントに対して受信要求が通知され、同時に引数に設定したデータが渡される仕組みとなっているのが一般的である。なお、ここで示した通知方法は一例であり、他の手法を用いることも可能である。 Next, in step S1510, the client management unit 1402 selects and calls the communication client 1202 corresponding to the received destination client identifier. If the above-mentioned callback function is used, the data processing block identifier of the reply destination is set in chip_id, and the client identifier of the reply destination is set in client_id. Further, the transmission packet type is set in kind, and the address and size of the transmission data storage area are set in sendBuf and sendLength, respectively. Then, the address and size of the reply data storage area are set in respBuf and respLength, respectively. When the packet type is reply packet, chip_id, client_id, respBuf and respLength are not set. Normally, when this callback function is called, the reception request is notified to the corresponding communication client, and at the same time, the data set in the argument is passed. The notification method shown here is an example, and other methods can be used.

ステップS1510において受信要求を受け取った通信クライアント1202は、ステップS1511にて自データ処理ブロック内にあるメモリプール108へアクセスして送信データ格納領域からデータを読み込む。そして送信内容に応じた任意の処理を行う。次に、ステップS1512にて、通信クライアント1202は、ステップS1511における実行結果等を返信データ格納領域へ書き込む。ここでの書き込み先は、ブロック間バス110を経由してアクセスする送信元のデータ処理ブロック側にある内部メモリプール1205である。 The communication client 1202 that received the reception request in step S1510 accesses the memory pool 108 in the own data processing block in step S1511 and reads data from the transmission data storage area. Then, arbitrary processing is performed according to the transmission content. Next, in step S1512, the communication client 1202 writes the execution result and the like in step S1511 to the reply data storage area. The writing destination here is the internal memory pool 1205 on the data processing block side of the transmission source that accesses via the inter-block bus 110.

次に、ステップS1513にて、通信クライアント1202は、アドレス変換部1303に対してレスポンス送信(新規送信パケットに対する返信パケットの送信)開始を指示する。ここでは、通信クライアント1202は、返信データ格納領域のアドレスをあわせてアドレス変換部1303に渡す。ステップS1514にて、ステップS1505〜S1507と同様の処理によって、元の送信パケット送信元にある受信通知部107へ受信要求を通知する。ここで返信パケット送信側の送信通知部1305が行うアドレス操作は、ステップS1505〜S1507において送信パケット送信元の送信通知部1305が行ったものと同様である。 Next, in step S1513, the communication client 1202 instructs the address translation unit 1303 to start response transmission (transmission of a reply packet to a new transmission packet). Here, the communication client 1202 also passes the address of the reply data storage area to the address conversion unit 1303. In step S1514, the reception request is notified to the reception notification unit 107 in the original transmission packet transmission source by the same processing as in steps S1505 to S1507. Here, the address operation performed by the transmission notification unit 1305 on the reply packet transmission side is the same as that performed by the transmission notification unit 1305 of the transmission packet transmission source in steps S1505 to S1507.

次に、ステップ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 communication client 1202 receives the reply packet. Next, in step S1516, the communication client 1202 instructs the transmission area management unit 1301 to release the transmission data storage area. However, the address passed here is the start address of the reply data storage area. It is assumed that the communication client 1202 confirms that the received packet is a reply packet, reads the reply data storage area, and confirms the contents. Based on the result, the communication client 1202 determines that a series of operations associated with the transmission packet initiated by itself has been completed, and instructs the release of the transmission data storage area.

最後にステップS1517にて、送信領域管理部1301が送信パケット領域と返信パケット領域を解放する。送信領域管理部1301はアドレスとして返信データ格納領域1730の先頭アドレスを受け取っている。ここからオフセットして返信パケット領域1721の先頭アドレスを求め、さらにヘッダに存在する親送信パケット領域開始位置1729から送信パケット領域1701の先頭アドレスを求める。そして、送信パケット領域先頭アドレス及び返信パケット領域先頭アドレスを、それぞれメモリ管理部803及び内部メモリ管理部1302へ渡して領域を解放する。メモリ管理部803における解放処理方法については、第3の実施形態で述べた方法と同様である。また、内部メモリ管理部1302におけるメモリ解放方法については前述した通り限定する必要がないので、ここでは説明を割愛する。 Finally, in step S1517, the transmission area management unit 1301 releases the transmission packet area and the reply packet area. The transmission area management unit 1301 receives the start address of the reply data storage area 1730 as an address. Offsetting from this, the start address of the reply packet area 1721 is obtained, and further, the start address of the transmission packet area 1701 is obtained from the parent transmission packet area start position 1729 existing in the header. Then, the transmission packet area start address and the reply packet area start address are passed to the memory management unit 803 and the internal memory management unit 1302, respectively, to release the area. The release processing method in the memory management unit 803 is the same as the method described in the third embodiment. Further, since it is not necessary to limit the memory release method in the internal memory management unit 1302 as described above, the description thereof is omitted here.

なお、図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: Transmission activation unit 102, 802: Transmission unit 103, 803: Memory management unit 104: Area management table 105, 109, 805, 806, 807, 1201, 1211: Data processing block 106: Reception unit 107: Reception notification Unit 108: Memory pool 110: Inter-block bus 804: Destination management unit 1001: Transmission client 1003, 1305: Transmission notification unit 1202: Communication client 1203: Transmission control unit 1204: Reception control unit 1205: Internal memory pool 1301: Transmission area Management unit 1302: Internal memory management unit 1303: Address conversion unit 1401: Reception management unit 1402: Client management unit

Claims (6)

第1のデータ処理ブロックと、前記第1のデータ処理ブロックから送信されるデータが書き込まれるメモリを有する第2のデータ処理ブロックとがブロック間のバスを介して接続されたデータ処理システムであって
前記第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の送信手段と、
前記第1の送信手段による前記データ格納領域へのデータの書き込みが行われた後に、該データ格納領域のアドレスを示す情報及び該データの受信要求を前記第2のデータ処理ブロックに送信する第2の送信手段とを有することを特徴とする請求項記載のデータ処理システム。
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のデータ処理ブロックがそれぞれ有する前記メモリの空き領域リストを記憶しており、
前記第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〜の何れか1項に記載のデータ処理システム。 Free area list of the memory, according to claim 1 to 3, characterized in that the person said memory indicates a predetermined size start address and size in area units obtained by dividing the area of free space writable data The data processing system according to any one item. 前記ブロック間のバスは、前記ブロック間のバスを介したデータの書き込み速度に対して、前記ブロック間のバスを介したデータの読み込み速度が遅いバスであることを特徴とする請求項1〜の何れか1項に記載のデータ処理システム。 Claims 1 to 4 are characterized in that the bus between blocks is a bus in which the speed of reading data via the bus between blocks is slower than the speed of writing data via the bus between blocks. The data processing system according to any one of the above items. 第1のデータ処理ブロックと、前記第1のデータ処理ブロックから送信されるデータが書き込まれるメモリを有する第2のデータ処理ブロックとがブロック間のバスを介して接続されたデータ処理システムのデータ処理方法であって、
前記第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 .
JP2016057378A 2016-03-22 2016-03-22 Data processing system and data processing method Active JP6821313B2 (en)

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)

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