JP2020173511A - Data transfer device, and data transfer method and computer program - Google Patents

Data transfer device, and data transfer method and computer program Download PDF

Info

Publication number
JP2020173511A
JP2020173511A JP2019073681A JP2019073681A JP2020173511A JP 2020173511 A JP2020173511 A JP 2020173511A JP 2019073681 A JP2019073681 A JP 2019073681A JP 2019073681 A JP2019073681 A JP 2019073681A JP 2020173511 A JP2020173511 A JP 2020173511A
Authority
JP
Japan
Prior art keywords
data
transfer
size
predicted
data transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019073681A
Other languages
Japanese (ja)
Other versions
JP6747680B1 (en
Inventor
まりか 田中
Marika Tanaka
まりか 田中
朋宏 冠
Tomohiro Kan
朋宏 冠
裕樹 永尾
Hiroki Nagao
裕樹 永尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Platforms Ltd
Original Assignee
NEC Platforms Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2019073681A priority Critical patent/JP6747680B1/en
Application granted granted Critical
Publication of JP6747680B1 publication Critical patent/JP6747680B1/en
Publication of JP2020173511A publication Critical patent/JP2020173511A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Abstract

To provide a data transfer device capable of preventing deterioration of data transfer efficiency likely to occur when a plurality of data transfer requests having respective block sizes being not a fixed value concurrently occur to an identical memory, and a data transfer method and a computer program thereof.SOLUTION: A data transfer device 100 includes: a prediction unit 21 which predicts a transfer destination region being a memory region of a transfer destination of transfer data with respect to the data transfer request when a data transfer request requesting data transfer to an identical memory 3 and requesting transfer of the transfer data with respective block sizes being not a fixed value; and a controller 24 which writes the transfer data to the transfer destination region predicted with respect to the data transfer request.SELECTED DRAWING: Figure 1

Description

本発明は、データ転送装置、データ転送方法及びコンピュータプログラムに関する。 The present invention relates to a data transfer device, a data transfer method and a computer program.

同一のメモリに対するデータの転送要求であって、転送対象のデータ(以下「転送データ」という。)をメモリに転送することを要求するデータ転送要求が、同時にかつ複数発生した場合、転送データのブロックサイズが固定値であれば、データ転送を開始する前の段階で、各転送データの転送先のメモリ領域(以下「転送先領域」という。)を複数のデータ転送要求で重複することのないように決定することができる。この場合、複数のデータ転送要求が発生した場合であっても、予め決定した個々の転送先領域に各転送データを転送することにより、複数のデータ転送要求を並列で処理することができる。 When multiple data transfer requests for transferring data to the same memory and requesting the transfer of the data to be transferred (hereinafter referred to as "transfer data") to the memory occur at the same time and multiple times, the transfer data is blocked. If the size is a fixed value, the memory area of the transfer destination of each transfer data (hereinafter referred to as "transfer destination area") will not be duplicated in multiple data transfer requests before starting data transfer. Can be decided. In this case, even when a plurality of data transfer requests are generated, the plurality of data transfer requests can be processed in parallel by transferring each transfer data to each predetermined transfer destination area.

特開2003−091497号公報Japanese Unexamined Patent Publication No. 2003-091497 特開2015−060589号公報Japanese Unexamined Patent Publication No. 2015-060589 特開2011−197788号公報Japanese Unexamined Patent Publication No. 2011-197788 特表2008−516320号公報Japanese Patent Publication No. 2008-516320 特開2009−087189号公報Japanese Unexamined Patent Publication No. 2009-087189

しかしながら、このようなデータ転送方法では、ブロックサイズが固定値でない場合には、転送データのサイズが確定するまでは複数のデータ転送要求を並列で処理することができない。そのため、ブロックサイズが固定値でない複数のデータ転送要求が、同一のメモリに対して同時に発生した場合に、データ転送効率が低下してしまう可能性があった。 However, in such a data transfer method, when the block size is not a fixed value, a plurality of data transfer requests cannot be processed in parallel until the size of the transfer data is fixed. Therefore, when a plurality of data transfer requests whose block sizes are not fixed values occur simultaneously for the same memory, the data transfer efficiency may decrease.

そこでこの発明は、上述の課題を解決することができるデータ転送装置、データ転送方法及びコンピュータプログラムを提供することを目的としている。 Therefore, an object of the present invention is to provide a data transfer device, a data transfer method, and a computer program capable of solving the above-mentioned problems.

本発明の一態様は、同一のメモリに対するデータの転送要求であって、ブロックサイズが固定値でない転送データの転送を要求するデータ転送要求が発生した場合、前記転送データの転送先のメモリ領域である転送先領域を前記データ転送要求について予測する予測部と、前記データ転送要求について予測された前記転送先領域に前記転送データを書き込むコントローラと、を備えるデータ転送装置である。 One aspect of the present invention is a data transfer request for the same memory, and when a data transfer request for transferring transfer data whose block size is not a fixed value occurs, the transfer data transfer destination memory area It is a data transfer device including a prediction unit that predicts a certain transfer destination area for the data transfer request, and a controller that writes the transfer data to the transfer destination area predicted for the data transfer request.

本発明の一態様は、同一のメモリに対するデータの転送要求であって、ブロックサイズが固定値でない転送データの転送を要求するデータ転送要求が発生した場合、前記転送データの転送先のメモリ領域である転送先領域を前記データ転送要求について予測する予測ステップと、前記データ転送要求について予測された前記転送先領域に前記転送データを書き込む書き込みステップと、を有するデータ転送方法である。 One aspect of the present invention is a data transfer request for the same memory, and when a data transfer request for transferring transfer data whose block size is not a fixed value occurs, the transfer data transfer destination memory area It is a data transfer method including a prediction step of predicting a certain transfer destination area for the data transfer request and a writing step of writing the transfer data to the transfer destination area predicted for the data transfer request.

本発明の一態様は、同一のメモリに対するデータの転送要求であって、ブロックサイズが固定値でない転送データの転送を要求するデータ転送要求が発生した場合、前記転送データの転送先のメモリ領域である転送先領域を前記データ転送要求について予測する予測ステップと、前記データ転送要求について予測された前記転送先領域に前記転送データを書き込む書き込みステップと、をコンピュータに実行させるためのコンピュータプログラムである。 One aspect of the present invention is a data transfer request for the same memory, and when a data transfer request for transferring transfer data whose block size is not a fixed value occurs, the transfer data is transferred in the memory area of the transfer destination. It is a computer program for causing a computer to execute a prediction step of predicting a certain transfer destination area for the data transfer request and a writing step of writing the transfer data to the transfer destination area predicted for the data transfer request.

本発明によれば、ブロックサイズが固定値でない複数のデータ転送要求が、同一のメモリに対して同時に発生した場合に、データ転送効率が低下することを抑制することができるという効果が得られる。 According to the present invention, when a plurality of data transfer requests whose block sizes are not fixed values are generated simultaneously for the same memory, it is possible to suppress a decrease in data transfer efficiency.

本実施形態におけるデータ転送装置の機能構成の具体例を示すブロック図である。It is a block diagram which shows the specific example of the functional structure of the data transfer apparatus in this embodiment. 本実施形態におけるデータ転送装置が複数のマスタのデータ転送要求を並列処理する流れの具体例を示すフローチャートである。It is a flowchart which shows the specific example of the flow in which the data transfer apparatus in this embodiment processes data transfer requests of a plurality of masters in parallel. 本実施形態における書き込み領域予測処理の流れの具体例を示すフローチャートである。It is a flowchart which shows the specific example of the flow of the writing area prediction processing in this embodiment. 本実施形態におけるリカバリ処理の流れの具体例を示すフローチャートである。It is a flowchart which shows the specific example of the flow of the recovery process in this embodiment. 本実施形態におけるリカバリ処理の動作例を示す図である。It is a figure which shows the operation example of the recovery process in this embodiment. 本実施形態における書き込み領域予測処理の動作例を示す図である。It is a figure which shows the operation example of the writing area prediction processing in this embodiment. 本実施形態におけるデータ転送装置の変形例の機能構成の具体例を示すブロック図である。It is a block diagram which shows the specific example of the functional structure of the modification of the data transfer apparatus in this embodiment.

以下、本発明の一実施形態によるデータ転送装置、データ転送方法及びコンピュータプログラムを図面を参照して説明する。 Hereinafter, a data transfer device, a data transfer method, and a computer program according to an embodiment of the present invention will be described with reference to the drawings.

図1は、本実施形態におけるデータ転送装置の機能構成の具体例を示すブロック図である。データ転送装置100は、本実施形態におけるデータ転送装置の一例であり、例えば、1以上のマスタ1と、バスブリッジ2と、ターゲットメモリ3と、補正用メモリ4と、を備える。なお、バスブリッジ2は、データ転送装置100の内部において各種バスを接続するブリッジとしての機能を有する。例えば、バスブリッジ2は、バスB1、B2及びB3を介して1以上のマスタ1、ターゲットメモリ3、及び補正用メモリ4と互いにデータの入出力が可能に接続される。 FIG. 1 is a block diagram showing a specific example of the functional configuration of the data transfer device according to the present embodiment. The data transfer device 100 is an example of the data transfer device according to the present embodiment, and includes, for example, one or more masters 1, a bus bridge 2, a target memory 3, and a correction memory 4. The bus bridge 2 has a function as a bridge for connecting various buses inside the data transfer device 100. For example, the bus bridge 2 is connected to one or more master 1, the target memory 3, and the correction memory 4 via the buses B1, B2, and B3 so that data can be input and output from each other.

図1は1以上のマスタ1としてマスタ1−1〜1−N(Nは1以上の整数)を示す。各マスタ1は、ターゲットメモリ3に対してそれぞれ独立してデータの転送要求を行うことができる機能部である。例えば、マスタ1は、オペレーティングシステムによって管理される個々のプロセスであってもよいし、個々の入出力デバイスであってもよい。各マスタ1は、ターゲットメモリ3に対して転送すべきデータが発生した場合、その旨を示す「データ転送要求」をバスブリッジ2に通知する。バスブリッジ2によってデータ転送要求が受け付けられると、各マスタ1は転送対象のデータ(以下「転送データ」という。)をバスブリッジ2に出力する。 FIG. 1 shows masters 1-1 to 1-N (N is an integer of 1 or more) as master 1 of 1 or more. Each master 1 is a functional unit capable of independently making a data transfer request to the target memory 3. For example, the master 1 may be an individual process managed by the operating system or an individual I / O device. When data to be transferred to the target memory 3 is generated, each master 1 notifies the bus bridge 2 of a "data transfer request" indicating that fact. When the data transfer request is received by the bus bridge 2, each master 1 outputs the data to be transferred (hereinafter referred to as "transfer data") to the bus bridge 2.

バスブリッジ2は、各マスタ1から通知されるデータ転送要求に応じて各マスタ1の転送データをターゲットメモリ3の所定の領域に書き込む機能を有する。この転送データの書き込みにより転送データがターゲットメモリ3に転送される。また、バスブリッジ2は、ターゲットメモリ3に書き込んだ転送データを所定の期間補正用メモリ4に保存する機能を有する。バスブリッジ2は、転送データの書き込みが複数のマスタ1で競合した場合に、補正用メモリ4に保存されている転送データ(以下「退避データ」という。)を用いて、競合により不正となった転送データを復元する。 The bus bridge 2 has a function of writing the transfer data of each master 1 to a predetermined area of the target memory 3 in response to the data transfer request notified from each master 1. By writing this transfer data, the transfer data is transferred to the target memory 3. Further, the bus bridge 2 has a function of storing the transfer data written in the target memory 3 in the correction memory 4 for a predetermined period. When the writing of the transfer data conflicts between the plurality of masters 1, the bus bridge 2 becomes invalid due to the conflict by using the transfer data (hereinafter referred to as “save data”) stored in the correction memory 4. Restore the transferred data.

ターゲットメモリ3は、半導体記憶装置を用いて構成される主記憶装置であって、各マスタ1がデータ転送を要求する対象のメモリである。図1では簡単のためターゲットメモリ3として1つのメモリを示しているが、これは必ずしも予め定められた特定の1つのメモリのみがデータ転送の対象となることを示すものではない。ターゲットメモリ3は、複数のメモリであってもよいし、複数のメモリから適宜選択される1以上のメモリであってもよい。 The target memory 3 is a main storage device configured by using a semiconductor storage device, and is a target memory for which each master 1 requests data transfer. In FIG. 1, one memory is shown as the target memory 3 for the sake of simplicity, but this does not necessarily indicate that only one specific predetermined memory is the target of data transfer. The target memory 3 may be a plurality of memories, or may be one or more memories appropriately selected from the plurality of memories.

なお、図1において、ターゲットメモリ3の内部に記載している四角のオブジェクトは各マスタ1の転送データが書き込まれたメモリブロックを模式的に示したものであり、各オブジェクトの内部に記載した数値は、各メモリブロックに記憶されているデータの転送を要求したマスタ1の識別情報を表しており、マスタ1−1〜1−Nの符号にそれぞれ対応している。 In FIG. 1, the square object described inside the target memory 3 schematically shows the memory block in which the transfer data of each master 1 is written, and the numerical value described inside each object. Represents the identification information of the master 1 that has requested the transfer of the data stored in each memory block, and corresponds to the codes of the masters 1-1 to 1-N, respectively.

補正用メモリ4は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。補正用メモリ4は、バスブリッジ2が出力する転送データを退避データとして記憶する記憶部として用いられる。補正用メモリ4は、マスタ1−1〜1−Nのそれぞれに退避データの記憶領域(以下「退避領域」という。)を有する。図1は、補正用メモリ4が、それぞれに対応するマスタ1の識別情報(図中のマスタインデックス)で各退避領域を管理する例を示している。 The correction memory 4 is configured by using a storage device such as a magnetic hard disk device or a semiconductor storage device. The correction memory 4 is used as a storage unit that stores the transfer data output by the bus bridge 2 as saved data. The correction memory 4 has a storage area for saved data (hereinafter referred to as “save area”) in each of the masters 1-1 to 1-N. FIG. 1 shows an example in which the correction memory 4 manages each save area with the identification information (master index in the figure) of the master 1 corresponding to each.

続いて、バスブリッジ2の機能構成について説明する。バスブリッジ2は、書き込み領域予測部21、アドレス変換部22、アドレス変換テーブル23、及びコントローラ24を備える。書き込み領域予測部21は、データ転送要求を行った各マスタ1について転送先領域を予測する機能を有する。書き込み領域予測部21は、各マスタ1について予測した転送先領域についてターゲットメモリ3上のメモリアドレスを指定するパラメータ(以下「アドレス指定パラメータ」という。)を生成し、生成したアドレス指定パラメータの値をアドレス変換部22に通知する。 Subsequently, the functional configuration of the bus bridge 2 will be described. The bus bridge 2 includes a write area prediction unit 21, an address translation unit 22, an address translation table 23, and a controller 24. The write area prediction unit 21 has a function of predicting a transfer destination area for each master 1 that has made a data transfer request. The write area prediction unit 21 generates a parameter (hereinafter referred to as “address specification parameter”) that specifies a memory address on the target memory 3 for the transfer destination area predicted for each master 1, and uses the value of the generated address specification parameter. Notify the address conversion unit 22.

アドレス変換部22は、アドレス指定パラメータの値をターゲットメモリ3上のメモリアドレスに変換する機能を有する。具体的には、アドレス変換部22は、アドレス指定パラメータの値とメモリアドレスとの対応関係を示すアドレス変換テーブル23を参照し、書き込み領域予測部21から通知された値に対応するメモリアドレスを取得することにより、アドレス指定パラメータを転送先領域のメモリアドレス(以下「転送先アドレス」という。)に変換する。アドレス変換部22は、取得した転送先アドレスをコントローラ24に通知する。 The address conversion unit 22 has a function of converting the value of the address designation parameter into a memory address on the target memory 3. Specifically, the address conversion unit 22 refers to the address conversion table 23 showing the correspondence between the value of the address specification parameter and the memory address, and acquires the memory address corresponding to the value notified from the write area prediction unit 21. By doing so, the address specification parameter is converted into the memory address of the transfer destination area (hereinafter referred to as "transfer destination address"). The address translation unit 22 notifies the controller 24 of the acquired transfer destination address.

アドレス変換テーブル23は、アドレス指定パラメータの値とメモリアドレスとの対応関係を示すデータである。例えば、アドレス変換テーブル23は、キャッシュメモリ等の高速にアクセス可能な記憶装置に保持され、その内容はターゲットメモリ3の管理機構(図示せず)によって管理される。例えば、アドレス変換テーブル23は、各マスタ1の仮想メモリアドレスと、ターゲットメモリ3の物理メモリアドレスとの対応関係を示すデータであってもよい。 The address translation table 23 is data showing the correspondence between the value of the address specification parameter and the memory address. For example, the address translation table 23 is stored in a high-speed accessible storage device such as a cache memory, and its contents are managed by a management mechanism (not shown) of the target memory 3. For example, the address translation table 23 may be data indicating the correspondence between the virtual memory address of each master 1 and the physical memory address of the target memory 3.

コントローラ24は、各マスタ1のデータ転送要求に応じて、転送データをターゲットメモリ3に書き込む機能を有する。具体的には、コントローラ24は、各データ転送要求についてそれぞれの転送データの転送先アドレスを取得し、取得した転送先アドレスのメモリ領域に転送データを書き込む。また、コントローラ24は、転送データのサイズが予測領域のサイズと異なった場合にリカバリ処理を実行する機能を有する。 The controller 24 has a function of writing the transfer data to the target memory 3 in response to the data transfer request of each master 1. Specifically, the controller 24 acquires the transfer destination address of each transfer data for each data transfer request, and writes the transfer data to the memory area of the acquired transfer destination address. Further, the controller 24 has a function of executing a recovery process when the size of the transferred data is different from the size of the predicted area.

具体的には、このリカバリ処理には、一部の転送データについてターゲットメモリ3への書き込みをやり直す第1処理と、転送先領域の予測精度を向上させるための第2処理とが含まれる。 Specifically, this recovery process includes a first process of rewriting a part of the transferred data to the target memory 3 and a second process of improving the prediction accuracy of the transfer destination area.

このような構成を有する本実施形態のデータ転送装置100では、フロックサイズが固定値でない転送データを同一のターゲットメモリ3の連続するメモリ領域に転送するデータ転送要求が複数のマスタ1によって同時に要求された場合、バスブリッジ2が各要求の転送データの転送先領域を予測し、予測した各転送先領域に対する転送データの書き込みを並列処理することにより、データ転送効率の低下を抑制することが可能となる。 In the data transfer device 100 of the present embodiment having such a configuration, a plurality of masters 1 simultaneously request a data transfer request for transferring transfer data whose flock size is not a fixed value to a continuous memory area of the same target memory 3. In this case, the bus bridge 2 predicts the transfer destination area of the transfer data of each request, and by processing the writing of the transfer data to each predicted transfer destination area in parallel, it is possible to suppress the decrease in the data transfer efficiency. Become.

なお、図1では簡単のため、データ転送装置100が、1以上のマスタ1と、バスブリッジ2と、ターゲットメモリ3と、補正用メモリ4と、を内部バスで接続する一の装置として構成される場合を例示しているが、これに限定されない。例えば、データ転送装置100は、1以上のマスタ1、バスブリッジ2、ターゲットメモリ3、及び補正用メモリ4を外部バスで接続するシステムとして構成されてもよい。 For the sake of simplicity in FIG. 1, the data transfer device 100 is configured as one device that connects one or more masters 1, a bus bridge 2, a target memory 3, and a correction memory 4 by an internal bus. However, the case is not limited to this. For example, the data transfer device 100 may be configured as a system in which one or more masters 1, a bus bridge 2, a target memory 3, and a correction memory 4 are connected by an external bus.

図2は、本実施形態におけるデータ転送装置100が複数のマスタ1のデータ転送要求を並列処理する流れの具体例を示すフローチャートである。このフローチャートに示す一連の処理は、同じターゲットメモリ3に対するデータ転送要求であって、転送データをターゲットメモリ3上の連続領域に転送するデータ転送要求が、複数のマスタ1から同時に要求された場合に開始される。 FIG. 2 is a flowchart showing a specific example of a flow in which the data transfer device 100 in the present embodiment processes data transfer requests of a plurality of masters 1 in parallel. The series of processes shown in this flowchart is a data transfer request for the same target memory 3, and when a data transfer request for transferring the transferred data to a continuous area on the target memory 3 is requested simultaneously from a plurality of masters 1. It will be started.

この場合、バスブリッジ2において、データ転送要求を受け付けたコントローラ24が、まず、書き込み領域予測部21に対して書き込み領域予測処理の実行を指示する。書き込み領域予測処理は、個々のデータ転送要求について、それぞれの転送データの転送先領域を予測する処理である。書き込み領域予測部21は、コントローラ24の指示に応じて書き込み領域予測処理を実行する(ステップS101)。書き込み領域予測部21は、書き込み領域予測処理において予測した各転送先領域のアドレス指定パラメータの値をアドレス変換部22に通知する。 In this case, in the bus bridge 2, the controller 24 that has received the data transfer request first instructs the write area prediction unit 21 to execute the write area prediction process. The write area prediction process is a process of predicting the transfer destination area of each transfer data for each data transfer request. The write area prediction unit 21 executes the write area prediction process in response to the instruction of the controller 24 (step S101). The write area prediction unit 21 notifies the address conversion unit 22 of the value of the address designation parameter of each transfer destination area predicted in the write area prediction process.

続いて、アドレス変換部22が、各転送先領域についてターゲットメモリ3上のメモリアドレス(すなわち転送先アドレス)を取得する。具体的には、アドレス変換部22は、書き込み領域予測部21から通知されたアドレス指定パラメータの各値を、アドレス変換テーブル23に基づいて転送先アドレスに変換する。アドレス変換部22は、各転送先領域について取得した転送先アドレスをコントローラ24に通知する。コントローラ24は、アドレス変換部22から通知された各転送先アドレスのメモリ領域に対して対応する転送データの書き込みを実行する(ステップS102)。さらに、コントローラ24は、ターゲットメモリ3に書き込んだ転送データを補正用メモリ4に書き込む(ステップS103)。 Subsequently, the address translation unit 22 acquires the memory address (that is, the transfer destination address) on the target memory 3 for each transfer destination area. Specifically, the address translation unit 22 converts each value of the address designation parameter notified from the write area prediction unit 21 into a transfer destination address based on the address translation table 23. The address translation unit 22 notifies the controller 24 of the transfer destination address acquired for each transfer destination area. The controller 24 writes the corresponding transfer data to the memory area of each transfer destination address notified from the address translation unit 22 (step S102). Further, the controller 24 writes the transfer data written in the target memory 3 to the correction memory 4 (step S103).

具体的には、各マスタ1は、1つの転送データを所定のブロックサイズに分割し、ブロックサイズごとの一塊の連続データ(以下「ブロックデータ」という。)を順次出力する。この場合、コントローラ24は、各マスタ1が連続的に出力するブロックデータを順次入力し、ブロックデータごとに転送先領域を識別する。コントローラ24は、連続データとして出力されるブロックデータの入力を複数のマスタ1について並列的に実行し、入力した各ブロックデータを対応する転送先領域の先頭アドレスから順に書き込んでいく。このとき、コントローラ24は、各ブロックデータの書き込みを、その入力に応じて、複数のマスタ1について並列的に実行する。 Specifically, each master 1 divides one transfer data into a predetermined block size, and sequentially outputs a block of continuous data (hereinafter referred to as "block data") for each block size. In this case, the controller 24 sequentially inputs the block data continuously output by each master 1 and identifies the transfer destination area for each block data. The controller 24 executes input of block data output as continuous data in parallel for a plurality of masters 1, and writes each input block data in order from the start address of the corresponding transfer destination area. At this time, the controller 24 writes each block data in parallel for the plurality of masters 1 in response to the input.

このように転送データを複数のブロックデータに分割して入出力する場合、ブロックサイズが固定値であれば、転送データの書き込みを開始する前に転送先領域のサイズを見積もることが可能である。しかしながら、ブロックサイズが固定値でない場合、転送先領域として必要なメモリサイズは実際にブロックデータの書き込みを行ってみないと分からない。そのため、ステップS102の時点では、各マスタ1のデータ転送要求に関して各ブロックデータの転送先領域のサイズは不明である。 When the transfer data is divided into a plurality of block data and input / output is performed in this way, if the block size is a fixed value, it is possible to estimate the size of the transfer destination area before starting the writing of the transfer data. However, if the block size is not a fixed value, the memory size required as the transfer destination area cannot be known until the block data is actually written. Therefore, at the time of step S102, the size of the transfer destination area of each block data is unknown with respect to the data transfer request of each master 1.

そこで、コントローラ24は、ブロックデータの入出力を行いつつ、ブロックデータのサイズが確定したか否かを判定する(ステップS104)。例えば、コントローラ24は、データ入力の有無や所定の入力パターンの変化を検出することによってブロックデータのサイズが確定したか否かを判定する。ブロックデータのサイズが確定していない場合(ステップS104−NO)、コントローラ24はステップS101に処理を戻し、次のブロックデータの入出力を実行する。 Therefore, the controller 24 determines whether or not the size of the block data has been determined while inputting and outputting the block data (step S104). For example, the controller 24 determines whether or not the size of the block data is fixed by detecting the presence or absence of data input and the change of a predetermined input pattern. When the size of the block data is not fixed (step S104-NO), the controller 24 returns the process to step S101 and executes the input / output of the next block data.

一方、ブロックデータのサイズが確定した場合(ステップS104−YES)、コントローラ24は当該ブロックデータについてサイズが確定した旨を対応するマスタ1に通知する(ステップS105)。コントローラ24は、サイズが確定したブロックデータについて予測した転送先領域のサイズ(以下「予測サイズ」という。)が、確定したブロックデータの実際のサイズ(以下「実サイズ」という。)と一致しているか否かを判定する(ステップS106)。 On the other hand, when the size of the block data is determined (step S104-YES), the controller 24 notifies the corresponding master 1 that the size of the block data has been determined (step S105). The controller 24 has predicted that the size of the transfer destination area predicted for the fixed block data (hereinafter referred to as “predicted size”) matches the actual size of the fixed block data (hereinafter referred to as “actual size”). Whether or not it is determined (step S106).

予測サイズと実サイズが一致している場合(ステップS106−YES)、コントローラ24は、全てのデータ転送が完了したか否かを判定する(ステップS107)。具体的には、コントローラ24は、全ての転送データについて全てのブロックデータの転送が完了したか否かを判定する。全てのデータ転送が完了した場合(ステップS107−YES)、コントローラ24はデータ転送の完了を書き込み領域予測部21に通知し(ステップS108)、処理を終了する。 When the predicted size and the actual size match (step S106-YES), the controller 24 determines whether or not all the data transfer is completed (step S107). Specifically, the controller 24 determines whether or not the transfer of all block data has been completed for all the transfer data. When all the data transfer is completed (step S107-YES), the controller 24 notifies the writing area prediction unit 21 of the completion of the data transfer (step S108), and ends the process.

一方、ステップS106において、予測サイズが実サイズと一致していない場合(ステップS106−NO)、コントローラ24は、当該ブロックデータについてリカバリ処理を実行する(ステップS107)。このリカバリ処理の実行により、コントローラ24は、当該ブロックデータの書き込み処理によって生じたデータ配置の不正を修正する。 On the other hand, in step S106, when the predicted size does not match the actual size (step S106-NO), the controller 24 executes the recovery process for the block data (step S107). By executing this recovery process, the controller 24 corrects the illegal data arrangement caused by the write process of the block data.

また、このとき(ステップS106−NO)、コントローラ24は、予測サイズが実サイズと一致していない書き込みが発生した旨の通知(以下「アラーム」という。)を書き込み領域予測部21に対して行う。なお、ここで通知されたアラームは書き込み領域予測部21によって累積アラーム回数に計上されるまでは未カウントアラーム(後述)として保持される。 Further, at this time (step S106-NO), the controller 24 notifies the writing area prediction unit 21 that a writing has occurred whose predicted size does not match the actual size (hereinafter referred to as “alarm”). .. The alarm notified here is held as an uncounted alarm (described later) until it is counted in the cumulative number of alarms by the writing area prediction unit 21.

コントローラ24は、リカバリ処理の実行後、又はステップS107において、一部のデータ転送が完了していない場合(ステップS107−NO)、ステップS101に処理を戻し、次のブロックデータの入出力を実行する。 After executing the recovery process or in step S107, when a part of the data transfer is not completed (step S107-NO), the controller 24 returns the process to step S101 and executes the input / output of the next block data. ..

図3は、本実施形態における書き込み領域予測処理の流れの具体例を示すフローチャートである。まず、書き込み領域予測部21は、転送データのブロックサイズを予測する(ステップS201)。具体的には、書き込み領域予測部21は、ステップS201の初回実行時においてはブロックサイズを予め定められた既定値とし、次回以降の実行時においてはブロックサイズを前回の予測値(予測サイズ)と同じ値とすることにより、ブロックサイズを予測する。例えば、ブロックサイズの既定値は、所定の初期値であってもよいし、複数のマスタ1のうちのいずれかのマスタ1のその時点におけるブロックサイズであってもよいし、1つ目のマスタ1の最初のブロックサイズであってもよい。 FIG. 3 is a flowchart showing a specific example of the flow of the write area prediction process in the present embodiment. First, the write area prediction unit 21 predicts the block size of the transferred data (step S201). Specifically, the write area prediction unit 21 sets the block size as a predetermined default value at the first execution of step S201, and sets the block size as the previous predicted value (predicted size) at the next execution. The block size is predicted by setting the same value. For example, the default value of the block size may be a predetermined initial value, the block size of any one of the plurality of masters 1 at that time, or the first master. It may be the first block size of 1.

続いて、書き込み領域予測部21は、予測したブロックサイズの転送データ(ブロックデータ)を記録するターゲットメモリ3上の記憶領域(転送先領域)についてアドレス指定パラメータを生成し、生成したアドレス指定パラメータの値をアドレス変換部22に通知する(ステップS202)。 Subsequently, the write area prediction unit 21 generates an address designation parameter for the storage area (transfer destination area) on the target memory 3 that records the transfer data (block data) of the predicted block size, and the generated address designation parameter Notify the address conversion unit 22 of the value (step S202).

続いて、書き込み領域予測部21は、未カウントアラームが発生しているか否かを判定する(ステップS203)。ここで、未カウントアラームは、その発生回数が累積アラーム回数に計上されていないアラームのことであり、累積アラーム回数はブロックサイズの予測方法を補正するか否かを決定する際の判定対象となるアラームの累積発生回数である。また、累積アラーム回数は、予測方法を補正することが決定されたことに応じて0回に初期化される。 Subsequently, the write area prediction unit 21 determines whether or not an uncounted alarm has occurred (step S203). Here, the uncounted alarm is an alarm whose occurrence count is not counted in the cumulative alarm count, and the cumulative alarm count is a judgment target when deciding whether or not to correct the block size prediction method. The cumulative number of alarms. Further, the cumulative number of alarms is initialized to 0 according to the decision to correct the prediction method.

未カウントアラームが発生している場合(ステップS203−YES)、書き込み領域予測部21は、未カウントアラームの発生回数を累積アラーム回数に加算し(ステップS204)、累積アラーム回数に計上したアラームを未カウントアラームから除外する。一方、未カウントアラームが発生していない場合(ステップS203−NO)、書き込み領域予測部21は後続のステップS204に処理を進める。 When an uncounted alarm has occurred (step S203-YES), the write area prediction unit 21 adds the number of uncounted alarm occurrences to the cumulative number of alarms (step S204), and has not added the alarm recorded in the cumulative number of alarms. Exclude from the count alarm. On the other hand, when the uncounted alarm has not occurred (step S203-NO), the write area prediction unit 21 proceeds to the subsequent step S204.

続いて、書き込み領域予測部21は、累積アラーム回数(第1の回数)が第1の閾値以上であるか否かを判定する(ステップS205)。例えば第1の閾値は10回である。累積アラーム回数が第1の閾値未満である場合(ステップS205−NO)、書き込み領域予測部21は書き込み領域予測処理を終了する。 Subsequently, the writing area prediction unit 21 determines whether or not the cumulative number of alarms (first number of times) is equal to or greater than the first threshold value (step S205). For example, the first threshold is 10 times. When the cumulative number of alarms is less than the first threshold value (step S205-NO), the write area prediction unit 21 ends the write area prediction process.

一方、累積アラーム回数が第1の閾値以上である場合(ステップS205−YES)、書き込み領域予測部21は累積アラーム回数分のアラームのうち第1のアラームの発生回数(第2の回数)が第2の閾値以上であるか否かを判定する(ステップS206)。ここで第1のアラームは、ブロックデータの実サイズが予測サイズよりも小さいことを通知するアラームである。以下では、第1のアラームに対して、ブロックデータの予測サイズが実サイズよりも小さいことを通知するアラームを第2のアラームという。 On the other hand, when the cumulative number of alarms is equal to or greater than the first threshold value (step S205-YES), the writing area prediction unit 21 has the number of occurrences of the first alarm (second number) among the alarms corresponding to the cumulative number of alarms. It is determined whether or not it is equal to or greater than the threshold value of 2 (step S206). Here, the first alarm is an alarm that notifies that the actual size of the block data is smaller than the predicted size. In the following, the alarm that notifies that the predicted size of the block data is smaller than the actual size with respect to the first alarm is referred to as a second alarm.

また、第2の閾値は累積アラーム回数の半分より大きく、かつ累積アラーム回数以下の値であればよい。なお、典型的には、累積アラーム回数は第1の閾値以下の値となるため、第2の閾値は第1の閾値の半分より大きく、かつ第1の閾値以下の値であればよい。例えば、第1の閾値を10回とした場合、第2の閾値を7回とすることができる。なお、この場合、第2の閾値は6〜10回の範囲の値であればよく、第2の閾値をいずれの値とするかは予測方法の補正頻度や補正の大きさ等に応じて決定されてよい。 The second threshold value may be a value greater than half of the cumulative number of alarms and less than or equal to the cumulative number of alarms. In addition, since the cumulative number of alarms is typically a value equal to or less than the first threshold value, the second threshold value may be a value larger than half of the first threshold value and less than or equal to the first threshold value. For example, when the first threshold value is 10 times, the second threshold value can be 7 times. In this case, the second threshold value may be a value in the range of 6 to 10 times, and which value the second threshold value should be is determined according to the correction frequency of the prediction method, the magnitude of correction, and the like. May be done.

第1のアラームの発生回数が第2の閾値以上である場合(ステップS206−YES)、書き込み領域予測部21はブロックサイズの予測方法を第1の方法で補正する(ステップS207)。例えば、第1の方法では、今回の書き込み領域予測処理で予測された予測サイズを次の式(1)に基づいて補正する。 When the number of occurrences of the first alarm is equal to or greater than the second threshold value (step S206-YES), the write area prediction unit 21 corrects the block size prediction method by the first method (step S207). For example, in the first method, the predicted size predicted by the current write area prediction process is corrected based on the following equation (1).

補正後の予測サイズ
=実サイズの平均値−(予測サイズの平均値−実サイズの平均値) ・・・(1)
Predicted size after correction = average value of actual size- (average value of predicted size-average value of actual size) ・ ・ ・ (1)

例えば、式(1)における各平均値は、典型的には累積アラーム回数分のアラームが発生した期間における平均値とすればよいが、必要に応じてそれより長い又は短い期間の平均値とされてもよい。 For example, each average value in the equation (1) may be typically the average value in the period in which the alarm for the cumulative number of alarms is generated, but may be the average value in a longer or shorter period as necessary. You may.

第1の方法による予測サイズの補正は、実サイズ<予測サイズ、となる傾向が強い場合に行われることになるため、基本的には式(1)の右辺第2項が正の値となり、補正後の予測サイズは実サイズの平均値より小さい値に補正される。このようにして得られた補正後の予測サイズは、次回以降の書き込み領域予測処理における予測サイズとして用いられるため、次回以降の書き込み領域予測処理においてより小さいブロックサイズが予測されることになる。 Since the correction of the predicted size by the first method is performed when there is a strong tendency that the actual size <predicted size, the second term on the right side of the equation (1) is basically a positive value. The corrected predicted size is corrected to a value smaller than the average value of the actual size. Since the corrected predicted size obtained in this way is used as the predicted size in the write area prediction process from the next time onward, a smaller block size is predicted in the write area prediction process from the next time onward.

一方、第1のアラームの発生回数が第2の閾値未満である場合(ステップS206−NO)、書き込み領域予測部21は累積アラーム回数分のアラームのうち第2のアラームの発生回数(第3の回数)が第3の閾値以上であるか否かを判定する(ステップS208)。 On the other hand, when the number of occurrences of the first alarm is less than the second threshold value (step S206-NO), the write area prediction unit 21 generates the second alarm out of the cumulative number of alarms (third). It is determined whether or not the number of times) is equal to or greater than the third threshold value (step S208).

なお、第3の閾値は、第2の閾値と同様に、累積アラーム回数の半分より大きく、かつ累積アラーム回数以下の値であればよい。なお、典型的には、累積アラーム回数は第1の閾値以下の値となるため、第3の閾値は第1の閾値の半分より大きく、かつ第1の閾値以下の値であればよい。例えば、第1の閾値を10回とした場合、第3の閾値を7回とすることができる。なお、この場合、第3の閾値は6〜10回の範囲の値であればよく、第3の閾値をいずれの値とするかは予測方法の補正頻度や補正の大きさ等に応じて決定されてよい。第3の閾値は第2の閾値と同じ値であってもよい。 As with the second threshold value, the third threshold value may be a value greater than half of the cumulative number of alarms and less than or equal to the cumulative number of alarms. Since the cumulative number of alarms is typically a value equal to or less than the first threshold value, the third threshold value may be a value larger than half of the first threshold value and less than or equal to the first threshold value. For example, when the first threshold value is 10 times, the third threshold value can be 7 times. In this case, the third threshold value may be a value in the range of 6 to 10 times, and which value the third threshold value should be is determined according to the correction frequency of the prediction method, the magnitude of correction, and the like. May be done. The third threshold value may be the same value as the second threshold value.

第2のアラームの発生回数が第3の閾値以上である場合(ステップS208−YES)、書き込み領域予測部21はブロックサイズの予測方法を第2の方法で補正する(ステップS209)。例えば、第2の方法では、今回の書き込み領域予測処理で予測された予測サイズを次の式(2)に基づいて補正する。 When the number of occurrences of the second alarm is equal to or greater than the third threshold value (step S208-YES), the write area prediction unit 21 corrects the block size prediction method by the second method (step S209). For example, in the second method, the predicted size predicted by the current writing area prediction process is corrected based on the following equation (2).

補正後の予測サイズ
=実サイズの平均値+(実サイズの平均値−予測サイズの平均値) ・・・(2)
Predicted size after correction = average value of actual size + (average value of actual size-average value of predicted size) ・ ・ ・ (2)

例えば、式(2)における各平均値は、式(1)の場合と同様に、典型的には累積アラーム回数分のアラームが発生した期間における平均値とすればよいが、必要に応じてそれより長い又は短い期間の平均値とされてもよい。 For example, each average value in the equation (2) may be the average value in the period in which the alarm is generated for the cumulative number of alarms, as in the case of the equation (1), but if necessary, it may be the average value. It may be the average value for a longer or shorter period.

第2の方法による予測サイズの補正は、第1の方法の場合とは逆に、予測サイズ<実サイズ、となる傾向が強い場合に行われることになるため、基本的には式(2)の右辺第2項が正の値となり、補正後の予測サイズは実サイズの平均値より大きい値に補正される。このようにして得られた補正後の予測サイズは、次回以降の書き込み領域予測処理における予測サイズとして用いられるため、次回以降の書き込み領域予測処理においてより大きいブロックサイズが予測されることになる。 Contrary to the case of the first method, the correction of the predicted size by the second method is performed when there is a strong tendency that the predicted size <actual size, so basically the equation (2) The second term on the right side of is a positive value, and the corrected predicted size is corrected to a value larger than the average value of the actual size. Since the corrected predicted size obtained in this way is used as the predicted size in the write area prediction process from the next time onward, a larger block size is predicted in the write area prediction process from the next time onward.

一方、第2のアラームの発生回数が第3の閾値未満である場合(ステップS208−NO)、書き込み領域予測部21はブロックサイズの予測方法を第3の方法で補正する(ステップS210)。例えば、第3の方法では、今回の書き込み領域予測処理で予測された予測サイズを次の式(3)に基づいて補正する。 On the other hand, when the number of occurrences of the second alarm is less than the third threshold value (step S208-NO), the write area prediction unit 21 corrects the block size prediction method by the third method (step S210). For example, in the third method, the predicted size predicted by the current writing area prediction process is corrected based on the following equation (3).

補正後の予測サイズ
=実サイズの平均値 ・・・(3)
Predicted size after correction = average value of actual size ... (3)

例えば、式(3)における各平均値は、式(1)及び(2)の場合と同様に、典型的には累積アラーム回数分のアラームが発生した期間における平均値とすればよいが、必要に応じてそれより長い又は短い期間の平均値とされてもよい。 For example, each average value in the equation (3) may be an average value in the period in which the alarm is generated for the cumulative number of alarms, as in the case of the equations (1) and (2), but it is necessary. It may be the average value for a longer or shorter period depending on the situation.

第3の方法による予測サイズの補正は、第1の方法及び第2の方法のいずれの場合にも該当しない場合、すなわち、予測サイズ<実サイズとなる傾向と、実サイズ<予測サイズとなる傾向とが同じくらいである場合に行われることになる。この場合、式(3)により補正後の予測サイズは実サイズの平均値に補正される。このようにして得られた補正後の予測サイズは、次回以降の書き込み領域予測処理における予測サイズとして用いられるため、次回以降の書き込み領域予測処理において、実サイズに近いより適切な大きさのブロックサイズが予測されることになる。 The correction of the predicted size by the third method does not correspond to either of the first method and the second method, that is, the predicted size <the actual size and the actual size <the predicted size. Will be done if and is about the same. In this case, the predicted size after correction is corrected to the average value of the actual size by the equation (3). Since the corrected predicted size obtained in this way is used as the predicted size in the write area prediction process from the next time onward, the block size having a more appropriate size close to the actual size is used in the write area prediction process from the next time onward. Will be predicted.

ステップS207、S209及びS210のいずれかにおいて予測方法の補正を行った場合、書き込み領域予測部21は累積アラーム回数を0回に初期化し(ステップS211)て書き込み領域予測処理を終了する。 When the prediction method is corrected in any of steps S207, S209 and S210, the write area prediction unit 21 initializes the cumulative number of alarms to 0 (step S211) and ends the write area prediction process.

図4は、本実施形態におけるリカバリ処理の流れの具体例を示すフローチャートである。まず、コントローラ24は、データ転送処理を一時停止する(ステップS301)。例えば、コントローラ24は新たなデータ転送要求の受け付けを一時停止することでデータ転送処理の一時停止を実現してもよい。この場合、例えば、コントローラ24は、一時停止中に新たなデータ転送を要求してきたマスタ1に対して受け付け不可のエラーを応答してもよい。また、例えば、コントローラ24は、データ転送要求の受け付けを一時停止することを一時停止期間の開始時に各マスタ1に通知するように構成されてもよい。 FIG. 4 is a flowchart showing a specific example of the flow of the recovery process in the present embodiment. First, the controller 24 suspends the data transfer process (step S301). For example, the controller 24 may suspend the data transfer process by suspending the acceptance of a new data transfer request. In this case, for example, the controller 24 may respond with an unacceptable error to the master 1 requesting new data transfer during the suspension. Further, for example, the controller 24 may be configured to notify each master 1 at the start of the suspension period that the acceptance of the data transfer request is suspended.

また、バスブリッジ2が、一時停止中に発生したデータ転送要求について転送データを一時保存しておくことができる記憶部を備えている場合、コントローラ24は、データ転送処理を一時停止している間に発生した転送データを記憶部に蓄積しておき、データ転送処理の再開時には、記憶部に蓄積されている転送データから順にデータ転送処理を行うように構成されてもよい。 Further, when the bus bridge 2 has a storage unit capable of temporarily storing the transfer data for the data transfer request generated during the suspension, the controller 24 is while the data transfer process is suspended. The transfer data generated in the above may be stored in the storage unit, and when the data transfer process is restarted, the data transfer process may be performed in order from the transfer data stored in the storage unit.

続いて、コントローラ24は、実サイズが予測サイズと異なるデータブロックが書き込まれたことによって生じたターゲットメモリ3上のデータ配置の不正を補正用メモリ4に記憶されているデータを用いて修正する(ステップS302)。コントローラ24はデータ配置の修正が完了すると、データ転送処理の一時停止を解除する(ステップS303)。 Subsequently, the controller 24 corrects the invalidity of the data arrangement on the target memory 3 caused by writing the data block whose actual size is different from the predicted size by using the data stored in the correction memory 4 (). Step S302). When the correction of the data arrangement is completed, the controller 24 releases the suspension of the data transfer process (step S303).

図5は、本実施形態におけるリカバリ処理の動作例を示す図である。図5(A)は、リカバリ処理が実行される前のある時点におけるブロックデータの配置例を示している。図5において実線のブロックはターゲットメモリ3に実際に書き込まれたブロックデータを表している。また、破線のブロックはターゲットメモリ3に確保された各ブロックデータの転送先領域を表しており、その時点でブロックデータが書き込まれていない領域を表している。 FIG. 5 is a diagram showing an operation example of the recovery process in the present embodiment. FIG. 5A shows an example of arranging block data at a certain point in time before the recovery process is executed. In FIG. 5, the solid line block represents the block data actually written in the target memory 3. Further, the broken line block represents the transfer destination area of each block data secured in the target memory 3, and represents the area in which the block data is not written at that time.

例えば、図5(A)は、マスタ#1によってブロック1a、1b、1cにブロックデータが書き込まれた後、マスタ#2の転送先領域であるブロック2a、2b、2cがマスタ1のブロックサイズに応じて確保された状況を表している。以下、ターゲットメモリ3において転送先領域となるブロックをターゲットブロックという。 For example, in FIG. 5A, after the block data is written to the blocks 1a, 1b, and 1c by the master # 1, the blocks 2a, 2b, and 2c, which are the transfer destination areas of the master # 2, become the block size of the master 1. It represents the situation secured accordingly. Hereinafter, the block serving as the transfer destination area in the target memory 3 is referred to as a target block.

図5(B)は、図5(A)の状態のターゲットメモリ3において、ブロック2aに実サイズが予測サイズよりも小さいブロックデータ2a’が書き込まれた状況を表しており、ドットでハッチングされた領域S1は、データの書き込みが行われなかった空き領域を表している。このような空き領域S1は、記憶領域の使用効率を低下させる要因となる。そのため、ブロックデータの書き込み時にこのような領域が発生した場合、すなわち実サイズが予測サイズよりも小さい場合、コントローラ24は書き込み済みの後続のブロックデータを空き領域に再配置する。 FIG. 5B shows a situation in which block data 2a'in which the actual size is smaller than the predicted size is written in the block 2a in the target memory 3 in the state of FIG. 5A, and is hatched with dots. The area S1 represents a free area in which data has not been written. Such a free area S1 becomes a factor that lowers the utilization efficiency of the storage area. Therefore, when such an area occurs when writing the block data, that is, when the actual size is smaller than the predicted size, the controller 24 rearranges the written subsequent block data in the free area.

ここで、ターゲットメモリ3に書き込まれたブロックデータは、各マスタ1ごとに補正用メモリ4に保存されている。例えば、図5(B)の右図は、マスタ#1のデータ転送要求によりターゲットメモリ3のブロック1a、1b、1cに既に書き込まれたブロックデータが、マスタ#1用の補正用メモリ4のブロック1a、1b、1cにそれぞれ保存されている状況を示している。以下、補正用メモリ4に確保されるブロックデータ保存用のデータブロックを保存ブロックという。 Here, the block data written in the target memory 3 is stored in the correction memory 4 for each master 1. For example, in the right figure of FIG. 5B, the block data already written in the blocks 1a, 1b, and 1c of the target memory 3 by the data transfer request of the master # 1 is the block of the correction memory 4 for the master # 1. It shows the situation that is stored in 1a, 1b, and 1c, respectively. Hereinafter, the data block for storing block data secured in the correction memory 4 is referred to as a storage block.

例えば、この場合、コントローラ24は、保存ブロック1bに保存されているブロックデータを空き領域S1に転送することにより、図5(C)のようにブロックデータを再配置する。この結果、空き領域に続くブロックデータが空き領域に移動され、ターゲットメモリ3に確保されているターゲットブロック2bが空き領域S1のサイズ分(すなわち予測サイズと実サイズとの差分)だけ大きくしたブロック2b’として再編成される。このようなデータの再配置を行うことにより、実施形態のバスブリッジ2は、ブロックデータの書き込み時に発生した空き領域を統合し、記憶領域の使用効率の低下を抑制することができる。 For example, in this case, the controller 24 rearranges the block data as shown in FIG. 5C by transferring the block data stored in the storage block 1b to the free area S1. As a result, the block data following the free area is moved to the free area, and the target block 2b secured in the target memory 3 is increased by the size of the free area S1 (that is, the difference between the predicted size and the actual size). Reorganized as'. By relocating the data in this way, the bus bridge 2 of the embodiment can integrate the free area generated at the time of writing the block data and suppress the decrease in the utilization efficiency of the storage area.

続いて、図5(D)は、図5(C)において確保されているターゲットブロック2b’に、実サイズが予測サイズよりも大きいブロックデータ2b”が書き込まれた状況を示している。図5(D)において斜線でハッチングされた領域S2は、既に書き込み済みであったデータブロック1cの一部が、ターゲットブロック2bの書き込みによって上書きされた(すなわち欠損した)重複領域を表している。ここで、ブロックデータ1cは、ブロックデータ2b”の書き込みによって不正なデータになってしまっているため、正しいデータに修復される必要がある。 Subsequently, FIG. 5D shows a situation in which block data 2b ”whose actual size is larger than the predicted size is written in the target block 2b'secured in FIG. 5C. The shaded area S2 in (D) represents an overlapping area in which a part of the already written data block 1c is overwritten (that is, missing) by the writing of the target block 2b. Since the block data 1c has become invalid data due to the writing of the block data 2b ", it is necessary to restore the block data 1c to the correct data.

例えば、この場合、コントローラ24は、図5(E)に示すように、保存ブロック1cに保存されているブロックデータをターゲットブロック2b”に続く連続領域に転送することにより、図5(F)のようにブロックデータを再配置する。この結果、ターゲットメモリ3に確保されているターゲットブロック2cが重複領域S2のサイズ分だけ小さくなったブロック2c’として再編成される。このようなデータの再配置を行うことにより、実施形態のバスブリッジ2は、実サイズが予測サイズより大きいブロックデータによって上書かれたブロックデータを他の領域に修復することができる。 For example, in this case, as shown in FIG. 5 (E), the controller 24 transfers the block data stored in the storage block 1c to the continuous area following the target block 2b ”, whereby the block data in FIG. 5 (F) is transferred. As a result, the target block 2c secured in the target memory 3 is reorganized as a block 2c'reduced by the size of the overlapping area S2. Such data rearrangement. By performing the above, the bus bridge 2 of the embodiment can restore the block data overwritten by the block data whose actual size is larger than the predicted size to another area.

このような空き領域の回収と、上書きされたデータの修復と、を行うことにより、実施形態のバスブリッジ2は、ブロックサイズが不明なデータ転送要求が発生した場合であっても、データサイズの確定を待たずにデータ転送処理を開始することができる。 By recovering the free area and repairing the overwritten data, the bus bridge 2 of the embodiment has a data size of the data transfer request even when a data transfer request of unknown block size occurs. The data transfer process can be started without waiting for confirmation.

図6は、本実施形態における書き込み領域予測処理の動作例を示す図である。具体的には、図6は転送先領域の予測方法を補正する動作の具体例を示す。図6(A)は、書き込み領域予測処理の実行中に、累積アラーム回数が10回に到達したあるタイミングにおけるターゲットメモリ3のデータの配置例を示している。このタイミングにおいて、例えば第1のアラームが8回発生し、第2のアラームが2回発生しているとき、かつ第1の閾位置が7回であれば、書き込み領域予測部21は第1の方法で転送先領域の予測方法を補正する。 FIG. 6 is a diagram showing an operation example of the write area prediction process in the present embodiment. Specifically, FIG. 6 shows a specific example of the operation of correcting the prediction method of the transfer destination area. FIG. 6A shows an example of arranging data in the target memory 3 at a certain timing when the cumulative number of alarms reaches 10 during execution of the write area prediction process. At this timing, for example, if the first alarm is generated eight times, the second alarm is generated twice, and the first threshold position is seven times, the write area prediction unit 21 is the first. Correct the prediction method of the transfer destination area by the method.

このように、アラームの発生頻度に応じて転送先領域の予測方法が補正されることにより、実施形態のバスブリッジ2は、転送先領域の予測精度を向上させることが可能となる。また、転送先領域の予測精度が向上することにより、リカバリ処理の発生が抑制され、より安定したデータ転送処理を実現することが可能となる。 As described above, the method of predicting the transfer destination area is corrected according to the frequency of occurrence of the alarm, so that the bus bridge 2 of the embodiment can improve the prediction accuracy of the transfer destination area. In addition, by improving the prediction accuracy of the transfer destination area, the occurrence of recovery processing is suppressed, and more stable data transfer processing can be realized.

(変形例)
本実施形態におけるデータ転送装置の一部又は全部はソフトウェアで実現されてもよい。例えば、データ転送装置は、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備え、プログラムを実行する。データ転送装置は、プログラムの実行によってバスブリッジを備える装置として機能する。なお、データ転送装置の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
(Modification example)
A part or all of the data transfer device in this embodiment may be realized by software. For example, the data transfer device includes a CPU (Central Processing Unit), a memory, an auxiliary storage device, and the like connected by a bus, and executes a program. The data transfer device functions as a device provided with a bus bridge by executing a program. All or part of each function of the data transfer device may be realized by using hardware such as ASIC (Application Specific Integrated Circuit), PLD (Programmable Logic Device), and FPGA (Field Programmable Gate Array). The program may be recorded on a computer-readable recording medium. The computer-readable recording medium is, for example, a flexible disk, a magneto-optical disk, a portable medium such as a ROM or a CD-ROM, or a storage device such as a hard disk built in a computer system. The program may be transmitted over a telecommunication line.

図7は、本実施形態におけるデータ転送装置の変形例の機能構成の具体例を示すブロック図である。変形例のデータ転送装置100aは、例えば、1以上のマスタ1、ターゲットメモリ3、及び補正用メモリ4と接続されたバスブリッジ2aとして構成されてもよい。また、この場合、バスブリッジ2aは、書き込み領域予測部21及びコントローラ24を備える装置として構成されてもよい。また、この場合、書き込み領域予測部21は、アドレス変換部22及びアドレス変換テーブル23を含むように構成されてもよいし、アドレス変換部22及びアドレス変換テーブル23は、バスブリッジ2aに対して情報を入出力する外部装置として構成されてもよい。 FIG. 7 is a block diagram showing a specific example of the functional configuration of the modified example of the data transfer device in the present embodiment. The data transfer device 100a of the modified example may be configured as, for example, a bus bridge 2a connected to one or more masters 1, a target memory 3, and a correction memory 4. Further, in this case, the bus bridge 2a may be configured as a device including the writing area prediction unit 21 and the controller 24. Further, in this case, the write area prediction unit 21 may be configured to include the address translation unit 22 and the address translation table 23, and the address translation unit 22 and the address translation table 23 may inform the bus bridge 2a of information. It may be configured as an external device that inputs and outputs.

メモリへのデータ転送要求を処理する装置であって、転送データのブロックサイズが固定値でないデータ転送要求を処理するデータ転送装置に適用可能である。 It is a device that processes a data transfer request to a memory, and is applicable to a data transfer device that processes a data transfer request in which the block size of the transfer data is not a fixed value.

100…データ転送装置、1,1−1〜1−N…マスタ、2…バスブリッジ、21…書き込み領域予測部、22…アドレス変換部、23…アドレス変換テーブル、24…コントローラ、3…ターゲットメモリ、4…補正用メモリ、B1〜B3…バス 100 ... Data transfer device, 1,1-1 to 1-N ... Master, 2 ... Bus bridge, 21 ... Write area prediction unit, 22 ... Address conversion unit, 23 ... Address conversion table, 24 ... Controller, 3 ... Target memory 4, ... Correction memory, B1 to B3 ... Bus

Claims (10)

同一のメモリに対するデータの転送要求であって、ブロックサイズが固定値でない転送データの転送を要求するデータ転送要求が発生した場合、前記転送データの転送先のメモリ領域である転送先領域を前記データ転送要求について予測する予測部と、
前記データ転送要求について予測された前記転送先領域に前記転送データを書き込むコントローラと、
を備えるデータ転送装置。
When a data transfer request for data transfer to the same memory and a request for transfer of transfer data whose block size is not a fixed value occurs, the transfer destination area which is the memory area of the transfer destination of the transfer data is the data. A predictor that predicts transfer requests and
A controller that writes the transfer data to the transfer destination area predicted for the data transfer request, and
A data transfer device comprising.
前記予測部は、前記転送先領域に書き込まれた前記転送データを退避データとして退避領域に記録し、
前記コントローラは、前記転送データについて確定したブロックサイズである実サイズが前記予測部によって予測された転送先領域のブロックサイズである予測サイズと異なった場合、前記メモリ上のデータ配置を前記退避領域に記録された前記退避データを用いて修正する、
請求項1に記載のデータ転送装置。
The prediction unit records the transfer data written in the transfer destination area as save data in the save area.
When the actual size, which is the block size determined for the transfer data, is different from the predicted size, which is the block size of the transfer destination area predicted by the prediction unit, the controller sets the data arrangement on the memory to the save area. Correct using the recorded saved data.
The data transfer device according to claim 1.
前記コントローラは、第1の転送データの実サイズが予測サイズより大きい場合、前記第1の転送データよりも前に書き込まれ、その転送先領域が前記第1の転送データの転送先領域と重複して一部が欠損した第2の転送データを、前記第1の転送データと重複しない新たな転送先領域に修復する、
請求項2に記載のデータ転送装置。
When the actual size of the first transfer data is larger than the predicted size, the controller is written before the first transfer data, and the transfer destination area overlaps with the transfer destination area of the first transfer data. The second transfer data, which is partially lost, is restored to a new transfer destination area that does not overlap with the first transfer data.
The data transfer device according to claim 2.
前記コントローラは、第1の転送データの実サイズが予測サイズより小さい場合、前記第1の転送データよりも前に書き込まれた第2の転送データを、前記予測サイズと前記実サイズとの差によって生じた空き領域に移動させる、
請求項2又は3に記載のデータ転送装置。
When the actual size of the first transfer data is smaller than the predicted size, the controller causes the second transfer data written before the first transfer data by the difference between the predicted size and the actual size. Move to the resulting free space,
The data transfer device according to claim 2 or 3.
前記コントローラは、実サイズと予測サイズとが異なった回数である第1の回数が第1の閾値以上である場合、前記第1の回数に応じて前記転送先領域の予測方法を補正する、
請求項2から4のいずれか一項に記載のデータ転送装置。
When the first number of times, which is the number of times the actual size and the predicted size are different from each other, is equal to or greater than the first threshold value, the controller corrects the method of predicting the transfer destination region according to the first number of times.
The data transfer device according to any one of claims 2 to 4.
前記コントローラは、前記第1の回数のうち前記実サイズが前記予測サイズよりも大きくなった回数である第2の回数が第2の閾値以上である場合、予測サイズが実サイズの平均値より小さく予測されるように前記予測方法を補正する、
請求項5に記載のデータ転送装置。
In the controller, the predicted size is smaller than the average value of the actual size when the second number of times the actual size becomes larger than the predicted size among the first times is equal to or larger than the second threshold value. Correct the prediction method to be predicted,
The data transfer device according to claim 5.
前記コントローラは、前記第1の回数のうち前記実サイズが前記予測サイズよりも小さくなった回数である第3の回数が第3の閾値以上である場合、予測サイズが実サイズの平均値より大きく予測されるように前記予測方法を補正する、
請求項5又は6に記載のデータ転送装置。
The controller has a predicted size larger than the average value of the actual size when the third number of times the actual size is smaller than the predicted size among the first times is equal to or larger than the third threshold value. Correct the prediction method to be predicted,
The data transfer device according to claim 5 or 6.
前記コントローラは、前記第1の回数のうち前記実サイズが前記予測サイズよりも大きくなった回数である第2の回数が第2の閾値未満であり、かつ、前記第1の回数のうち前記実サイズが前記予測サイズよりも小さくなった回数である第3の回数が第3の閾値未満である場合、予測サイズが実サイズの平均値として予測されるように前記予測方法を補正する、
請求項5から7のいずれか一項に記載のデータ転送装置。
In the controller, the second number of times the actual size becomes larger than the predicted size in the first number of times is less than the second threshold value, and the actual size of the first number of times is less than the second threshold value. When the third number of times the size becomes smaller than the predicted size is less than the third threshold value, the prediction method is corrected so that the predicted size is predicted as the average value of the actual size.
The data transfer device according to any one of claims 5 to 7.
同一のメモリに対するデータの転送要求であって、ブロックサイズが固定値でない転送データの転送を要求するデータ転送要求が発生した場合、前記転送データの転送先のメモリ領域である転送先領域を前記データ転送要求について予測する予測ステップと、
前記データ転送要求について予測された前記転送先領域に前記転送データを書き込む書き込みステップと、
を有するデータ転送方法。
When a data transfer request for data transfer to the same memory and a request for transfer of transfer data whose block size is not a fixed value occurs, the transfer destination area which is the memory area of the transfer destination of the transfer data is the data. Prediction steps for predicting transfer requests and
A write step of writing the transfer data to the transfer destination area predicted for the data transfer request, and
Data transfer method having.
同一のメモリに対するデータの転送要求であって、ブロックサイズが固定値でない転送データの転送を要求するデータ転送要求が発生した場合、前記転送データの転送先のメモリ領域である転送先領域を前記データ転送要求について予測する予測ステップと、
前記データ転送要求について予測された前記転送先領域に前記転送データを書き込む書き込みステップと、
をコンピュータに実行させるためのコンピュータプログラム。
When a data transfer request for data transfer to the same memory and a request for transfer of transfer data whose block size is not a fixed value occurs, the transfer destination area which is the memory area of the transfer destination of the transfer data is the data. Prediction steps for predicting transfer requests and
A write step of writing the transfer data to the transfer destination area predicted for the data transfer request, and
A computer program that lets a computer run.
JP2019073681A 2019-04-08 2019-04-08 Data transfer device, data transfer method, and computer program Active JP6747680B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019073681A JP6747680B1 (en) 2019-04-08 2019-04-08 Data transfer device, data transfer method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019073681A JP6747680B1 (en) 2019-04-08 2019-04-08 Data transfer device, data transfer method, and computer program

Publications (2)

Publication Number Publication Date
JP6747680B1 JP6747680B1 (en) 2020-08-26
JP2020173511A true JP2020173511A (en) 2020-10-22

Family

ID=72146240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019073681A Active JP6747680B1 (en) 2019-04-08 2019-04-08 Data transfer device, data transfer method, and computer program

Country Status (1)

Country Link
JP (1) JP6747680B1 (en)

Also Published As

Publication number Publication date
JP6747680B1 (en) 2020-08-26

Similar Documents

Publication Publication Date Title
US8219780B2 (en) Mitigating context switch cache miss penalty
JP5498505B2 (en) Resolving contention between data bursts
US20090144527A1 (en) Stream processing apparatus, method for stream processing and data processing system
US9043806B2 (en) Information processing device and task switching method
JP2005056067A (en) Dma transfer controller
JP6297232B2 (en) Data processing apparatus, data processing method, and data processing program
JP2018005902A (en) Apparatus for controlling access to memory device, and method of performing maintenance operation within such apparatus
US20180285314A1 (en) Arithmetic processing device, information processing apparatus, and method for controlling arithmetic processing device
EP3572967A1 (en) Memory protection circuit and memory protection method
JP2006338538A (en) Stream processor
US10489271B2 (en) Multi-processor and multi-processor system for code debugging
JP6747680B1 (en) Data transfer device, data transfer method, and computer program
JP2010061620A (en) Dma device and dma transfer method
JPWO2004046926A1 (en) Event notification method, device, and processor system
EP3588319B1 (en) Memory module
JP2005258509A (en) Storage device
JP4170330B2 (en) Information processing device
JP2005182538A (en) Data transfer device
JP4431492B2 (en) Data transfer unit that supports multiple coherency granules
JP6367689B2 (en) Multiprocessor system suitable for programmable controllers
JP3795055B1 (en) Value prediction apparatus, multiprocessor system, and value prediction method
JP2000099452A (en) Dma control device
JP5087884B2 (en) Data processing unit and data processing apparatus using the same
JP2000040057A (en) Computer system, buffer controller and transferring method
JP2020166757A (en) Control device and control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190408

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200730

R150 Certificate of patent or registration of utility model

Ref document number: 6747680

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150