JP2020173511A - Data transfer device, and data transfer method and computer program - Google Patents
Data transfer device, and data transfer method and computer program Download PDFInfo
- 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
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Memory System (AREA)
Abstract
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.
しかしながら、このようなデータ転送方法では、ブロックサイズが固定値でない場合には、転送データのサイズが確定するまでは複数のデータ転送要求を並列で処理することができない。そのため、ブロックサイズが固定値でない複数のデータ転送要求が、同一のメモリに対して同時に発生した場合に、データ転送効率が低下してしまう可能性があった。 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.
以下、本発明の一実施形態によるデータ転送装置、データ転送方法及びコンピュータプログラムを図面を参照して説明する。 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
図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
バスブリッジ2は、各マスタ1から通知されるデータ転送要求に応じて各マスタ1の転送データをターゲットメモリ3の所定の領域に書き込む機能を有する。この転送データの書き込みにより転送データがターゲットメモリ3に転送される。また、バスブリッジ2は、ターゲットメモリ3に書き込んだ転送データを所定の期間補正用メモリ4に保存する機能を有する。バスブリッジ2は、転送データの書き込みが複数のマスタ1で競合した場合に、補正用メモリ4に保存されている転送データ(以下「退避データ」という。)を用いて、競合により不正となった転送データを復元する。
The
ターゲットメモリ3は、半導体記憶装置を用いて構成される主記憶装置であって、各マスタ1がデータ転送を要求する対象のメモリである。図1では簡単のためターゲットメモリ3として1つのメモリを示しているが、これは必ずしも予め定められた特定の1つのメモリのみがデータ転送の対象となることを示すものではない。ターゲットメモリ3は、複数のメモリであってもよいし、複数のメモリから適宜選択される1以上のメモリであってもよい。
The
なお、図1において、ターゲットメモリ3の内部に記載している四角のオブジェクトは各マスタ1の転送データが書き込まれたメモリブロックを模式的に示したものであり、各オブジェクトの内部に記載した数値は、各メモリブロックに記憶されているデータの転送を要求したマスタ1の識別情報を表しており、マスタ1−1〜1−Nの符号にそれぞれ対応している。
In FIG. 1, the square object described inside the
補正用メモリ4は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。補正用メモリ4は、バスブリッジ2が出力する転送データを退避データとして記憶する記憶部として用いられる。補正用メモリ4は、マスタ1−1〜1−Nのそれぞれに退避データの記憶領域(以下「退避領域」という。)を有する。図1は、補正用メモリ4が、それぞれに対応するマスタ1の識別情報(図中のマスタインデックス)で各退避領域を管理する例を示している。
The
続いて、バスブリッジ2の機能構成について説明する。バスブリッジ2は、書き込み領域予測部21、アドレス変換部22、アドレス変換テーブル23、及びコントローラ24を備える。書き込み領域予測部21は、データ転送要求を行った各マスタ1について転送先領域を予測する機能を有する。書き込み領域予測部21は、各マスタ1について予測した転送先領域についてターゲットメモリ3上のメモリアドレスを指定するパラメータ(以下「アドレス指定パラメータ」という。)を生成し、生成したアドレス指定パラメータの値をアドレス変換部22に通知する。
Subsequently, the functional configuration of the
アドレス変換部22は、アドレス指定パラメータの値をターゲットメモリ3上のメモリアドレスに変換する機能を有する。具体的には、アドレス変換部22は、アドレス指定パラメータの値とメモリアドレスとの対応関係を示すアドレス変換テーブル23を参照し、書き込み領域予測部21から通知された値に対応するメモリアドレスを取得することにより、アドレス指定パラメータを転送先領域のメモリアドレス(以下「転送先アドレス」という。)に変換する。アドレス変換部22は、取得した転送先アドレスをコントローラ24に通知する。
The
アドレス変換テーブル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
コントローラ24は、各マスタ1のデータ転送要求に応じて、転送データをターゲットメモリ3に書き込む機能を有する。具体的には、コントローラ24は、各データ転送要求についてそれぞれの転送データの転送先アドレスを取得し、取得した転送先アドレスのメモリ領域に転送データを書き込む。また、コントローラ24は、転送データのサイズが予測領域のサイズと異なった場合にリカバリ処理を実行する機能を有する。
The
具体的には、このリカバリ処理には、一部の転送データについてターゲットメモリ3への書き込みをやり直す第1処理と、転送先領域の予測精度を向上させるための第2処理とが含まれる。
Specifically, this recovery process includes a first process of rewriting a part of the transferred data to the
このような構成を有する本実施形態のデータ転送装置100では、フロックサイズが固定値でない転送データを同一のターゲットメモリ3の連続するメモリ領域に転送するデータ転送要求が複数のマスタ1によって同時に要求された場合、バスブリッジ2が各要求の転送データの転送先領域を予測し、予測した各転送先領域に対する転送データの書き込みを並列処理することにより、データ転送効率の低下を抑制することが可能となる。
In the
なお、図1では簡単のため、データ転送装置100が、1以上のマスタ1と、バスブリッジ2と、ターゲットメモリ3と、補正用メモリ4と、を内部バスで接続する一の装置として構成される場合を例示しているが、これに限定されない。例えば、データ転送装置100は、1以上のマスタ1、バスブリッジ2、ターゲットメモリ3、及び補正用メモリ4を外部バスで接続するシステムとして構成されてもよい。
For the sake of simplicity in FIG. 1, the
図2は、本実施形態におけるデータ転送装置100が複数のマスタ1のデータ転送要求を並列処理する流れの具体例を示すフローチャートである。このフローチャートに示す一連の処理は、同じターゲットメモリ3に対するデータ転送要求であって、転送データをターゲットメモリ3上の連続領域に転送するデータ転送要求が、複数のマスタ1から同時に要求された場合に開始される。
FIG. 2 is a flowchart showing a specific example of a flow in which the
この場合、バスブリッジ2において、データ転送要求を受け付けたコントローラ24が、まず、書き込み領域予測部21に対して書き込み領域予測処理の実行を指示する。書き込み領域予測処理は、個々のデータ転送要求について、それぞれの転送データの転送先領域を予測する処理である。書き込み領域予測部21は、コントローラ24の指示に応じて書き込み領域予測処理を実行する(ステップS101)。書き込み領域予測部21は、書き込み領域予測処理において予測した各転送先領域のアドレス指定パラメータの値をアドレス変換部22に通知する。
In this case, in the
続いて、アドレス変換部22が、各転送先領域についてターゲットメモリ3上のメモリアドレス(すなわち転送先アドレス)を取得する。具体的には、アドレス変換部22は、書き込み領域予測部21から通知されたアドレス指定パラメータの各値を、アドレス変換テーブル23に基づいて転送先アドレスに変換する。アドレス変換部22は、各転送先領域について取得した転送先アドレスをコントローラ24に通知する。コントローラ24は、アドレス変換部22から通知された各転送先アドレスのメモリ領域に対して対応する転送データの書き込みを実行する(ステップS102)。さらに、コントローラ24は、ターゲットメモリ3に書き込んだ転送データを補正用メモリ4に書き込む(ステップS103)。
Subsequently, the
具体的には、各マスタ1は、1つの転送データを所定のブロックサイズに分割し、ブロックサイズごとの一塊の連続データ(以下「ブロックデータ」という。)を順次出力する。この場合、コントローラ24は、各マスタ1が連続的に出力するブロックデータを順次入力し、ブロックデータごとに転送先領域を識別する。コントローラ24は、連続データとして出力されるブロックデータの入力を複数のマスタ1について並列的に実行し、入力した各ブロックデータを対応する転送先領域の先頭アドレスから順に書き込んでいく。このとき、コントローラ24は、各ブロックデータの書き込みを、その入力に応じて、複数のマスタ1について並列的に実行する。
Specifically, each
このように転送データを複数のブロックデータに分割して入出力する場合、ブロックサイズが固定値であれば、転送データの書き込みを開始する前に転送先領域のサイズを見積もることが可能である。しかしながら、ブロックサイズが固定値でない場合、転送先領域として必要なメモリサイズは実際にブロックデータの書き込みを行ってみないと分からない。そのため、ステップ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
そこで、コントローラ24は、ブロックデータの入出力を行いつつ、ブロックデータのサイズが確定したか否かを判定する(ステップS104)。例えば、コントローラ24は、データ入力の有無や所定の入力パターンの変化を検出することによってブロックデータのサイズが確定したか否かを判定する。ブロックデータのサイズが確定していない場合(ステップS104−NO)、コントローラ24はステップS101に処理を戻し、次のブロックデータの入出力を実行する。
Therefore, the
一方、ブロックデータのサイズが確定した場合(ステップS104−YES)、コントローラ24は当該ブロックデータについてサイズが確定した旨を対応するマスタ1に通知する(ステップS105)。コントローラ24は、サイズが確定したブロックデータについて予測した転送先領域のサイズ(以下「予測サイズ」という。)が、確定したブロックデータの実際のサイズ(以下「実サイズ」という。)と一致しているか否かを判定する(ステップS106)。
On the other hand, when the size of the block data is determined (step S104-YES), the
予測サイズと実サイズが一致している場合(ステップS106−YES)、コントローラ24は、全てのデータ転送が完了したか否かを判定する(ステップS107)。具体的には、コントローラ24は、全ての転送データについて全てのブロックデータの転送が完了したか否かを判定する。全てのデータ転送が完了した場合(ステップS107−YES)、コントローラ24はデータ転送の完了を書き込み領域予測部21に通知し(ステップS108)、処理を終了する。
When the predicted size and the actual size match (step S106-YES), the
一方、ステップ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
また、このとき(ステップS106−NO)、コントローラ24は、予測サイズが実サイズと一致していない書き込みが発生した旨の通知(以下「アラーム」という。)を書き込み領域予測部21に対して行う。なお、ここで通知されたアラームは書き込み領域予測部21によって累積アラーム回数に計上されるまでは未カウントアラーム(後述)として保持される。
Further, at this time (step S106-NO), the
コントローラ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
図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
続いて、書き込み領域予測部21は、予測したブロックサイズの転送データ(ブロックデータ)を記録するターゲットメモリ3上の記憶領域(転送先領域)についてアドレス指定パラメータを生成し、生成したアドレス指定パラメータの値をアドレス変換部22に通知する(ステップS202)。
Subsequently, the write
続いて、書き込み領域予測部21は、未カウントアラームが発生しているか否かを判定する(ステップS203)。ここで、未カウントアラームは、その発生回数が累積アラーム回数に計上されていないアラームのことであり、累積アラーム回数はブロックサイズの予測方法を補正するか否かを決定する際の判定対象となるアラームの累積発生回数である。また、累積アラーム回数は、予測方法を補正することが決定されたことに応じて0回に初期化される。
Subsequently, the write
未カウントアラームが発生している場合(ステップS203−YES)、書き込み領域予測部21は、未カウントアラームの発生回数を累積アラーム回数に加算し(ステップS204)、累積アラーム回数に計上したアラームを未カウントアラームから除外する。一方、未カウントアラームが発生していない場合(ステップS203−NO)、書き込み領域予測部21は後続のステップS204に処理を進める。
When an uncounted alarm has occurred (step S203-YES), the write
続いて、書き込み領域予測部21は、累積アラーム回数(第1の回数)が第1の閾値以上であるか否かを判定する(ステップS205)。例えば第1の閾値は10回である。累積アラーム回数が第1の閾値未満である場合(ステップS205−NO)、書き込み領域予測部21は書き込み領域予測処理を終了する。
Subsequently, the writing
一方、累積アラーム回数が第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
また、第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
補正後の予測サイズ
=実サイズの平均値−(予測サイズの平均値−実サイズの平均値) ・・・(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
なお、第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
補正後の予測サイズ
=実サイズの平均値+(実サイズの平均値−予測サイズの平均値) ・・・(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
補正後の予測サイズ
=実サイズの平均値 ・・・(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
図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
また、バスブリッジ2が、一時停止中に発生したデータ転送要求について転送データを一時保存しておくことができる記憶部を備えている場合、コントローラ24は、データ転送処理を一時停止している間に発生した転送データを記憶部に蓄積しておき、データ転送処理の再開時には、記憶部に蓄積されている転送データから順にデータ転送処理を行うように構成されてもよい。
Further, when the
続いて、コントローラ24は、実サイズが予測サイズと異なるデータブロックが書き込まれたことによって生じたターゲットメモリ3上のデータ配置の不正を補正用メモリ4に記憶されているデータを用いて修正する(ステップS302)。コントローラ24はデータ配置の修正が完了すると、データ転送処理の一時停止を解除する(ステップS303)。
Subsequently, the
図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
例えば、図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
図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
ここで、ターゲットメモリ3に書き込まれたブロックデータは、各マスタ1ごとに補正用メモリ4に保存されている。例えば、図5(B)の右図は、マスタ#1のデータ転送要求によりターゲットメモリ3のブロック1a、1b、1cに既に書き込まれたブロックデータが、マスタ#1用の補正用メモリ4のブロック1a、1b、1cにそれぞれ保存されている状況を示している。以下、補正用メモリ4に確保されるブロックデータ保存用のデータブロックを保存ブロックという。
Here, the block data written in the
例えば、この場合、コントローラ24は、保存ブロック1bに保存されているブロックデータを空き領域S1に転送することにより、図5(C)のようにブロックデータを再配置する。この結果、空き領域に続くブロックデータが空き領域に移動され、ターゲットメモリ3に確保されているターゲットブロック2bが空き領域S1のサイズ分(すなわち予測サイズと実サイズとの差分)だけ大きくしたブロック2b’として再編成される。このようなデータの再配置を行うことにより、実施形態のバスブリッジ2は、ブロックデータの書き込み時に発生した空き領域を統合し、記憶領域の使用効率の低下を抑制することができる。
For example, in this case, the
続いて、図5(D)は、図5(C)において確保されているターゲットブロック2b’に、実サイズが予測サイズよりも大きいブロックデータ2b”が書き込まれた状況を示している。図5(D)において斜線でハッチングされた領域S2は、既に書き込み済みであったデータブロック1cの一部が、ターゲットブロック2bの書き込みによって上書きされた(すなわち欠損した)重複領域を表している。ここで、ブロックデータ1cは、ブロックデータ2b”の書き込みによって不正なデータになってしまっているため、正しいデータに修復される必要がある。
Subsequently, FIG. 5D shows a situation in which block
例えば、この場合、コントローラ24は、図5(E)に示すように、保存ブロック1cに保存されているブロックデータをターゲットブロック2b”に続く連続領域に転送することにより、図5(F)のようにブロックデータを再配置する。この結果、ターゲットメモリ3に確保されているターゲットブロック2cが重複領域S2のサイズ分だけ小さくなったブロック2c’として再編成される。このようなデータの再配置を行うことにより、実施形態のバスブリッジ2は、実サイズが予測サイズより大きいブロックデータによって上書かれたブロックデータを他の領域に修復することができる。
For example, in this case, as shown in FIG. 5 (E), the
このような空き領域の回収と、上書きされたデータの修復と、を行うことにより、実施形態のバスブリッジ2は、ブロックサイズが不明なデータ転送要求が発生した場合であっても、データサイズの確定を待たずにデータ転送処理を開始することができる。
By recovering the free area and repairing the overwritten data, the
図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
このように、アラームの発生頻度に応じて転送先領域の予測方法が補正されることにより、実施形態のバスブリッジ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
(変形例)
本実施形態におけるデータ転送装置の一部又は全部はソフトウェアで実現されてもよい。例えば、データ転送装置は、バスで接続された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
メモリへのデータ転送要求を処理する装置であって、転送データのブロックサイズが固定値でないデータ転送要求を処理するデータ転送装置に適用可能である。 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 ...
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.
請求項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.
請求項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.
請求項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.
請求項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.
請求項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.
請求項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.
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) |
-
2019
- 2019-04-08 JP JP2019073681A patent/JP6747680B1/en active Active
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 |