JP6558008B2 - Transfer device, transfer system, and program - Google Patents
Transfer device, transfer system, and program Download PDFInfo
- Publication number
- JP6558008B2 JP6558008B2 JP2015059372A JP2015059372A JP6558008B2 JP 6558008 B2 JP6558008 B2 JP 6558008B2 JP 2015059372 A JP2015059372 A JP 2015059372A JP 2015059372 A JP2015059372 A JP 2015059372A JP 6558008 B2 JP6558008 B2 JP 6558008B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- area
- data
- communication path
- memory controller
- 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.)
- Expired - Fee Related
Links
Images
Description
本発明は、転送装置、転送システムおよびプログラムに関する。 The present invention relates to a transfer device, a transfer system, and a program.
特許文献1には、キャッシュとメインメモリ間のデータ転送を監視して、アクセスされたメインメモリのアドレスを判定し、データ転送の経路を選択する技術が開示されている。
本発明は、複数の装置に共有される記憶内容の一貫性の維持と、これらの装置の処理速度の向上とを両立させることを目的とする。 An object of the present invention is to achieve both the maintenance of the consistency of the storage contents shared by a plurality of devices and the improvement of the processing speed of these devices.
本発明の請求項1に係る転送装置は、共有メモリ内の複数に区分された領域のうち、指定された領域に対して読み書きを行うメモリコントローラと通信する第1通信路と、一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第2通信路と、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段と、を有し、前記登録手段は、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放することを特徴とする。
The transfer device according to
本発明の請求項2に係る転送システムは、上述の転送装置と、前記転送装置と前記第1通信路経由で通信し、共有メモリ内の指定された領域に対して読み書きを行うメモリコントローラと、装置間の要求を調停する装置であって、前記転送装置と前記第2通信路経由で通信し、一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と、前記転送装置に対して前記共有メモリに格納されたデータの要求を送る要求装置と、を有する。 A transfer system according to a second aspect of the present invention includes the above-described transfer device, a memory controller that communicates with the transfer device via the first communication path, and reads / writes from / to a specified area in the shared memory, A device that arbitrates requests between devices, communicates with the transfer device via the second communication path, and allocates an area in the shared memory to the memory controller based on a request from one or more arithmetic devices. An arbitration device that designates a read / write request and a request device that sends a request for data stored in the shared memory to the transfer device.
本発明の請求項3に係るプログラムは、共有メモリ内の複数に区分された領域のうち、指定された領域に対して読み書きを行うメモリコントローラと通信する第1通信路と、一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第2通信路と、を有するコンピュータを、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段として機能させるとともに、前記登録手段が、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放するように、前記コンピュータを機能させるためのプログラムである。 According to a third aspect of the present invention, a program includes a first communication path that communicates with a memory controller that reads from and writes to a specified area among a plurality of areas in the shared memory, and one or more arithmetic devices A second communication path that communicates with an arbitration device that arbitrates a request from the network and designates an area in the shared memory to the memory controller based on the request and requests read / write, A receiving unit that receives a request for data stored in the shared memory from a requesting device; and a request that is output from the arbitrating device to the memory controller, and a write process to an area specified by the request is performed If not completed, the registration means for registering the area, and the request of the requesting device is not for the area registered by the registration means, Acquiring the data from the memory controller via one communication path, and acquiring the data from the arbitration device via the second communication path when the request is for the area; In addition to functioning as transfer means for transferring data to the requesting device, the registration means, when the request is a request for read processing and the area specified in the request is not registered, When an area is registered and the request is a request for write processing, the number of write processes to the area specified by the request is counted, and when the number reaches the threshold, the write process is completed. As a result, it is a program for causing the computer to function so as to release the area .
請求項1−3に係る発明によれば、複数の装置に共有される記憶内容の一貫性の維持と、これらの装置の処理速度の向上とを両立させることができる。
また、請求項1−3に係る発明によれば、書き込み回数を計数しない場合に比べて、登録される領域の数が抑制される。
According to the first and third aspects of the present invention, it is possible to achieve both maintenance of consistency of stored contents shared by a plurality of devices and improvement in processing speed of these devices.
Further , according to the first to third aspects of the invention, the number of registered areas is suppressed as compared with the case where the number of times of writing is not counted.
1.実施形態
1−1.転送システムの全体構成
図1は、本実施形態に係る転送システム9の全体構成を示す図である。図1に示すように、転送システム9は、転送装置1と、メモリコントローラ3と、調停バス5と、要求装置7とを有する。また、転送システム9は、共有メモリ2と、一以上の演算装置4と、内部バス6と、を有する。
1. Embodiment 1-1. Overall Configuration of Transfer System FIG. 1 is a diagram showing an overall configuration of a
共有メモリ2は、転送システム9を構成する装置間で共有されるメモリであって、メモリコントローラ3によって読み書きが行われるメモリである。共有メモリ2の記憶容量は、例えば8ギガバイトである。共有メモリ2は、決められたデータ量ごとに複数のエリア(領域)に予め区分されている。
The shared
メモリコントローラ3は、共有メモリ2内の指定されたエリアに対して読み書きを行う制御装置である。メモリコントローラ3は、転送装置1と第1通信路P1経由で通信する。また、メモリコントローラ3は、調停バス5から読み書きの要求を受ける。この要求は転送装置1により監視される。
The
調停バス5は、キャッシュ・コヒーレント・インターコネクト(CCI)バスなどと呼ばれるものであり、演算装置4の要求を調停する装置(調停装置)として機能する。ここで「調停」とは、複数の要求を受けて、それらの要求に対して、対象となるデータの所在を特定したり、処理する順序を割当てて各要求の要求元をその要求の処理が実行されるまで待機させたりすることをいう。
The
調停バス5は、転送装置1と第2通信路P2経由で通信し、一以上の演算装置4からの要求に基づいてメモリコントローラ3に対して共有メモリ2内のエリアを指定して読み書きの要求をする。調停バス5は、共有メモリ2内に記憶されているデータと、共有メモリ2から演算装置4のキャッシュメモリに読み出されたデータとの一貫性(コヒーレンシ)を維持するように動作する。
The
調停バス5は、一以上の演算装置4からの要求に加えて転送装置1からの要求も受付けるため、これらの要求の処理を管理する待ち行列を記憶する一時記憶領域を有する。要求の発生量に要求の処理速度が追いつかなくなると待ち行列が渋滞し、要求した処理が実行されるまでに時間がかかる場合がある。
Since the
演算装置4は、調停バス5を介してメモリコントローラ3に対して共有メモリ2内のエリアを指定して読み書きの要求をする装置である。図1に示す演算装置4は、2つであり、演算に用いる一時的な記憶領域としてそれぞれキャッシュメモリ41が備えられている。キャッシュメモリ41の記憶容量は、例えば1メガバイトである。
The
要求装置7は、ダイレクト・メモリ・アクセス(DMA)などと呼ばれる装置であり、転送装置1に対して共有メモリ2に格納されたデータの読み出し要求を送る装置である。
転送装置1は、要求装置7からの要求の内容に応じてデータの要求先を決めてそのデータを取得し、取得したそのデータを要求装置7に転送する装置である。
内部バス6は、要求装置7と転送装置1との情報伝達を中継するバスである。
The requesting
The
The
1−2.転送装置の構成
転送装置1は、演算処理装置や、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置を必要に応じて備える。
1-2. Configuration of Transfer Device The
図2は、転送装置1の機能的構成を示す図である。転送装置1は、受付部11、登録部12、取得部13、転送部14、監視部15、および記憶部16として機能する。
FIG. 2 is a diagram illustrating a functional configuration of the
監視部15は、調停バス5からメモリコントローラ3へ伝えられた演算装置4の要求を監視する。
登録部12は、監視部15により監視された要求で指定されたエリアへの書き込み処理が完了しているか否かを調べ、完了していない場合に、このエリアを記憶部16の管理表161に登録する。
The
The
記憶部16は、上述したROMやRAMなどの記憶装置を含み、管理表161を記憶する。
The
図3は、管理表161の例を示す図である。管理表161は、監視部15によって監視された要求で指定されたエリアへの書き込み処理が完了していない場合に、その要求で指定されたエリアを登録する表である。図3(a)に示す通り、読み出しのための要求で指定された共有メモリ2内のエリアは、それぞれ固有の番号が付され、そのエリアの開始位置(SP)と書き込み回数(CT)とを含むレコードで記述される。書き込み回数とは、演算装置4が指定したエリアにデータを書き込んだ回数を示す。
FIG. 3 is a diagram illustrating an example of the management table 161. The management table 161 is a table for registering the area specified by the request when the writing process to the area specified by the request monitored by the
演算装置4は、キャッシュメモリ41から共有メモリ2へデータを書き出す要求をするとき、指定したエリアの開始位置から書き込み処理を開始し、次にそのエリアへの書き込み処理を再開するときには、そのエリアに対して前回、書き込み処理がされた位置に続けて書き込むように要求する。したがって、書き込み処理はエリア内の開始位置ではない途中から開始されることはなく、エリア内で書き込み処理が完了した部分が2箇所以上に分離、遍在することはない。ただし、或るエリアに対する書き込み処理の途中で、他のエリアに対する書き込み処理が割り込まれることはあってもよい。管理表161に記述されるレコードの上限はn個である。
When the
なお、エリアを示すレコードは、開始位置と書き込み回数との組合せで記述されるとは限らず、例えば、図3(b)に示す通り、開始位置(SP)と完了位置(EP)との組合せにより記述されてもよい。完了位置とは、監視部15によって要求が監視されたときまでに書き出されたデータ量の累計を開始位置に加算した値で示される。したがって、完了位置は、エリアへの書き込み処理の回数に応じた値の一例である。エリアに対する読み出し処理が行われた後、書き込み処理が行われていない場合、そのレコードの完了位置には、例えば開始位置と共通の位置が記入されるか、利用不可の値を示す「N/A」が記入される。
Note that the record indicating the area is not always described by the combination of the start position and the number of times of writing. For example, as shown in FIG. 3B, the combination of the start position (SP) and the completion position (EP). May be described. The completion position is indicated by a value obtained by adding the total amount of data written up to when the request is monitored by the
また、図3に破線で示す通り、各レコードには、エリアに対応付けられた通信路の識別情報を記述するフィールドが設けられていてもよい。これは、レコードが示すエリアに対するデータの要求が要求装置7から送られたときに、いずれの通信路を経由してデータを取得すべきかを示すフィールドである。このフィールドには、レコードが示すエリアへの書き込み処理が完了した場合であれば第1通信路P1が、それ以外の場合であれば第2通信路P2が、それぞれ登録部12により記述される。
Further, as indicated by a broken line in FIG. 3, each record may be provided with a field describing the identification information of the communication path associated with the area. This is a field indicating via which communication path data should be acquired when a request for data for the area indicated by the record is sent from the requesting
例えば、転送装置1は、或るエリアに対する書き込み回数が決められた閾値に達すると、書き込み処理が完了したと判断して上記のフィールドに第1通信路P1を記述し、それ以外の場合には、書き込み処理が完了していないと判断して上記のフィールドに第2通信路P2を記述する。
For example, when the number of times of writing to a certain area reaches a predetermined threshold, the
或るエリアに対する書き込み回数が決められた閾値に達してから、そのエリアを示すレコードが管理表161から削除されるまで、すなわち、そのエリアが管理表161において解放されるまでの期間に、要求装置7からの要求がない場合、または、その要求が待機させられる場合には、このフィールドはなくてもよい。 The requesting device is used in a period until the record indicating the area is deleted from the management table 161, that is, until the area is released in the management table 161 after the number of times of writing to the area reaches a predetermined threshold. If there is no request from 7, or if the request is queued, this field may not be present.
図4は、共有メモリ2を説明するための図である。図4の一行目は共有メモリの全体を示している。上述した通り共有メモリ2は、決められたデータ量ごとに複数のエリアに区分されている。図4に示す共有メモリ2は、番号「1」から「m」までが割当てられたm個のエリアに区分されている。
FIG. 4 is a diagram for explaining the shared
なお、管理表161のレコードの上限nは、共有メモリ2のエリアの数m以下である(m≧n)。調停バス5における割り込みの上限が定められている場合、管理表161のレコードの上限nは、その割り込みの上限に応じて定められていてもよい。
The upper limit n of records in the management table 161 is equal to or less than the number m of areas in the shared memory 2 (m ≧ n). When the upper limit of the interrupt in the
図4の2行目は1つのエリアを示している。1つのエリアは決められた数の最小単位を含む。1つのエリアは、演算装置4のキャッシュメモリ41に相当する記憶容量を有するように構成されてもよい。
The second line in FIG. 4 shows one area. An area includes a fixed number of minimum units. One area may be configured to have a storage capacity corresponding to the
図4に示すエリアは、「0」から「k−1」までの「k」個の最小単位を含む。図4に示すエリアのうち、斜線を付した部分は、書き込み処理が完了した範囲を示す。したがって、図4に示す番号「2」のエリアは、書き込み回数が3回であり、開始位置から3つ分の最小単位について書き込み処理が完了している。 The area shown in FIG. 4 includes “k” minimum units from “0” to “k−1”. In the area shown in FIG. 4, the hatched portion indicates the range where the writing process is completed. Therefore, in the area with the number “2” shown in FIG. 4, the number of times of writing is 3, and the writing process is completed for the minimum unit of 3 from the start position.
図4の3行目は1つの最小単位を示している。最小単位とは、メモリコントローラ3による一回の書き込み処理で、演算装置4のキャッシュメモリ41から共有メモリ2へ書き出されるデータであり、そのデータ量は例えば16バイトである。したがって、1つの最小単位内のデータは、全て書き込み処理が完了しているか、完了していないかのいずれかであり、1つの最小単位内で書き込み処理が完了しているデータと、完了していないデータとが共存するということはない。なお、共有メモリ2内のデータの位置は、バイト単位で記述される。
The third line in FIG. 4 shows one minimum unit. The minimum unit is data written to the shared
受付部11は、内部バス6を介して要求装置7から共有メモリ2に格納されたデータの要求を受付ける。受付部11は、このデータの要求を受付けると、その要求を取得部13に渡す。
The accepting
取得部13は、受付部11が受付けた要求と、管理表161の登録内容とに基づいて、要求装置からの要求が登録されたエリアに対するものであるか否かを判断する。そして、取得部13は、その判断結果に応じて調停バス5およびメモリコントローラ3のいずれか一方をデータの要求先として選択し、選択したその要求先からデータを取得する。
The acquiring
取得部13は、判断の結果、要求装置7からの要求が管理表161に登録されたエリアに対するものでないと判断する場合に、第1通信路P1経由でメモリコントローラ3からデータを取得する。一方、取得部13は、要求装置7からの要求が管理表161に登録されたエリアに対するものであると判断する場合に、第2通信路P2経由で調停バス5からデータを取得する。
転送部14は、取得部13が取得したデータを、内部バス6経由で要求装置7に転送する。
If the
The
1−3.転送システムの動作
図5は、転送システム9の動作を示すシーケンス図である。転送装置1は、電源が供給された直後の初期状態において、要求装置7から要求されたデータを第1通信路P1経由でメモリコントローラ3から取得するように設定されている。
1-3. Operation of Transfer System FIG. 5 is a sequence diagram showing the operation of the
いずれかの演算装置4から要求を受けた調停バス5は、その要求に基づいてメモリコントローラ3に対して共有メモリ2内のエリアを指定して読み書きの要求をする(ステップS001)。転送装置1は、ステップS001のこの要求を監視する(ステップS002)。そして、転送装置1は、この要求で指定されたエリアへの書き込み処理が完了していない場合に、このエリアを登録する(ステップS100)。この登録処理については後述する。
The
次に、要求装置7が転送装置1に対して、共有メモリ2内のいずれかのエリアを指定してデータの読み出しを要求すると(ステップS011)、この要求を受付けた転送装置1は、この要求の内容と、ステップS100で登録した内容とに応じて、データの要求先を選択し(ステップS012)、メモリコントローラ3または調停バス5のいずれかから(図5に実線で示す例ではメモリコントローラ3から)、要求装置7が要求したエリアのデータを取得する(ステップS013)。そして、転送装置1は、取得したデータを要求装置7に転送する(ステップS014)。
Next, when the requesting
1−4.転送装置の動作
(1)登録処理の動作
図6は、転送装置1の登録処理の動作を示すフロー図である。転送装置1は、調停バス5からメモリコントローラ3に対して出力された要求を監視して、演算装置4からのメモリコントローラ3に対する読み出し処理または書き込み処理の要求を検出したか否か判断する(ステップS101)。これらの要求を検出していないと判断する場合(ステップS101;NO)、転送装置1は、この判断を続ける。
1-4. Operation of Transfer Device (1) Operation of Registration Process FIG. 6 is a flowchart showing the operation of registration processing of the
一方、調停バス5からメモリコントローラ3への読み出し処理または書き込み処理の要求を検出したと判断する場合(ステップS101;YES)、転送装置1は、検出された要求で指定されたエリアを特定する(ステップS102)。そして、転送装置1は、この要求が読み出し処理のためのものであるか否かを判断し(ステップS103)、読み出し処理のためのものであると判断する場合には(ステップS103;YES)ステップS104へ、読み出し処理のためのものでない(すなわち、書き出し処理のためのものである)と判断する場合には(ステップS103;NO)ステップS106へ、それぞれ処理を進める。
On the other hand, when determining that a request for a read process or a write process from the
ステップS104において、転送装置1は、ステップS102で特定したエリアが管理表161に登録されていない、つまり、新規のエリア(新規エリアという)であるか否か判断する(ステップS104)。特定した上述のエリアが新規エリアであると判断する場合(ステップS104;YES)、転送装置1は、このエリアを管理表161に登録する。これにより、この新規エリアは、要求装置7に要求されたときに第2通信路P2経由で調停バス5からデータを取得すべきエリアとして設定される。
In step S104, the
一方、特定した上述のエリアが新規エリアでないと判断する場合(ステップS104;NO)、転送装置1は、ステップS105の登録を行わずに処理をステップS101に戻す。
On the other hand, if it is determined that the specified area is not a new area (step S104; NO), the
ステップS106において、転送装置1は、ステップS102で特定したエリアを管理表161から探し出し、このエリアが記述されたレコードの書き込み回数に「1」を加算する(ステップS106)。すなわち、転送装置1は、監視部15により書き込み処理の要求が監視されたときに、その要求で指定されたエリアへの書き込み処理の回数を計数する。
In step S106, the
そして、転送装置1は、「1」が加算された後の書き込み回数に基づいて書き込み処理が完了したか否かを判断する(ステップS107)。この判断は、例えば、書き込み回数が決められた閾値に達しているか否かによって行われる。この決められた閾値とは、例えば、エリアのデータ量を最小単位で除算した値などであり、つまり、1つのエリアを全て上書きするために必要な書き込み処理の回数である。なお、図3におけるこの閾値は、16進数で「0xFFFF」と、10進数で「65535」と表記される数値である。
Then, the
書き込み処理が完了したと判断する場合(ステップS107;YES)、転送装置1は、上述のエリアを解放して(ステップS108)、処理をステップS101に戻す。すなわち、転送装置1は、書き込み回数が決められた閾値に達した場合に、書き込み処理が完了したものとして、そのエリアを解放する。
When determining that the writing process has been completed (step S107; YES), the
一方、書き込み処理が完了していないと判断する場合(ステップS107;NO)、転送装置1は、そのまま処理をステップS101に戻す。
On the other hand, when it is determined that the writing process is not completed (step S107; NO), the
以上、説明した動作により、転送装置1は、演算装置4が読み出し処理のための要求で指定したエリアを記憶部16の管理表161に登録し、そのエリアに対する書き込み処理の回数に基づいて、書き込み処理が完了したか否かを判断して、書き込み処理が完了している場合に、登録されたそのエリアを解放する。
As described above, the
そして、転送装置1は、管理表161に登録されているエリアに対して、要求装置7からデータの要求があった場合、要求されたそのデータを第2通信路P2経由で調停バス5から取得し、それ以外のエリアに対して要求があった場合、要求されたそのデータを第1通信路P1経由でメモリコントローラ3から取得して、それぞれ要求装置7に転送する。
Then, when there is a data request from the requesting
管理表161に登録されているエリアは、演算装置4が読み出し処理の要求をしたエリアであって、書き込み処理が完了していないエリアであるから、そのエリアに書き出されるべき最新のデータは未だ演算装置4のキャッシュメモリ41上にある可能性が高い。
The area registered in the management table 161 is an area for which the
したがって、転送装置1は、要求装置7が要求するデータが演算装置4のキャッシュメモリ41にある可能性が高い場合に、調停バス5からデータを取得して転送するため、共有メモリ2の一貫性が維持される。また、要求装置7が要求するデータが演算装置4のキャッシュメモリ41にある可能性がない場合にはメモリコントローラ3からデータを取得して転送するため、調停バス5からデータを取得する場合に比べて、データの転送速度が向上する。
Therefore, the
2.変形例
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例を組合せてもよい。
2. Modification The above is the description of the embodiment, but the contents of this embodiment can be modified as follows. Further, the following modifications may be combined.
2−1.変形例1
上述した実施形態において、転送装置1は、管理表161においてエリアに対応付けられた書き込み回数を、書き込み処理が検知される度にインクリメントし、この書き込み回数が決められた閾値に達しているか否かで、このエリアに対する書き込み処理が完了しているか否かを判定していたが、転送装置1は、書き込み回数を計数しなくてもよい。
2-1.
In the embodiment described above, the
図7は、この変形例における管理表161の例を示す図である。また、図8は、この変形例における共有メモリ2を説明するための図である。この変形例において、共有メモリ2は、決められたデータ量ごとに複数のエリアに区分されており、そのデータ量は、最小単位のデータ量である。したがって、各エリアは最小単位で構成される。
FIG. 7 is a diagram showing an example of the management table 161 in this modification. FIG. 8 is a diagram for explaining the shared
この場合、図7で示したとおり管理表161には、読み出し処理のための要求が検出された各エリアについて、図3で示した書き込み回数を対応付けて記憶する必要がない。一回の書き込み処理により書き込まれるデータ量は最小単位のデータ量であるから、最小単位で構成されたエリアに対する書き込み処理には、その処理の「途中」が存在しないためである。したがって、読み出し処理のための要求が検出されたときに、その要求で指定されたエリアが管理表161に登録され、書き込み処理のための要求が検出されたときに、その要求で指定されたエリアが管理表161から解放される。 In this case, as shown in FIG. 7, the management table 161 does not need to store the number of times of writing shown in FIG. 3 in association with each area where the request for the reading process is detected. This is because the amount of data written by a single writing process is the minimum unit data amount, and there is no “middle” of the process in the writing process to the area configured by the minimum unit. Therefore, when a request for read processing is detected, the area specified by the request is registered in the management table 161, and when a request for write processing is detected, the area specified by the request Are released from the management table 161.
図9は、この変形例における転送装置1の登録処理の動作を示すフロー図である。この変形例において、転送装置1は、図5、図6にステップS100で示した登録処理に代えて、図9にステップS110で示した登録処理を実行する。
FIG. 9 is a flowchart showing the operation of the registration process of the
転送装置1は、調停バス5からメモリコントローラ3に対して出力された要求を監視して、演算装置4からのメモリコントローラ3に対する読み出し処理または書き込み処理の要求を検出したか否か判断する(ステップS111)。これらの要求を検出していないと判断する場合(ステップS111;NO)、転送装置1は、この判断を続ける。
The
一方、調停バス5からメモリコントローラ3への読み出し処理または書き込み処理の要求を検出したと判断する場合(ステップS111;YES)、転送装置1は、検出された要求で指定されたエリアを特定する(ステップS112)。そして、転送装置1は、この要求が読み出し処理のためのものであるか否かを判断し(ステップS113)、読み出し処理のためのものであると判断する場合には(ステップS113;YES)ステップS114へ、読み出し処理のためのものでないと判断する場合には(ステップS113;NO)ステップS118へ、それぞれ処理を進める。
On the other hand, when it is determined that a request for a read process or a write process from the
ステップS114において、転送装置1は、ステップS112で特定したエリアが新規エリアであるか否か判断する(ステップS114)。特定した上述のエリアが新規エリアであると判断する場合(ステップS114;YES)、転送装置1は、このエリアを管理表161に登録する。一方、特定した上述のエリアが新規エリアでないと判断する場合(ステップS114;NO)、転送装置1は、ステップS115の登録を行わずに処理をステップS111に戻す。
In step S114, the
ステップS118において、転送装置1は、ステップS112で特定したエリアが書き込み処理のための要求で指定されたものであり、その書き込み処理が実行されることによって、書き込み処理が完了したとして、このエリアを解放し(ステップS118)、処理をステップS111に戻す。
In step S118, the
この変形例においても、転送装置1は、要求装置7が要求するデータが演算装置4のキャッシュメモリ41にある可能性が高い場合に、調停バス5からデータを取得して転送するため、共有メモリ2の一貫性が維持される。また、要求装置7が要求するデータが演算装置4のキャッシュメモリ41にある可能性がない場合にはメモリコントローラ3からデータを取得して転送するため、調停バス5からデータを取得する場合に比べて、データの転送速度が向上する。
Also in this modification, the
なお、この変形例では、エリアが最小単位で構成されるため、書き込み回数や完了位置などをエリアごとに記憶する必要がない代わりに、管理表161に登録されるレコードの数が、実施形態で示した場合に比べて多くなる。調停バス5によって読み出されてから書き込まれるまでの期間に、並行してアクセスされる共有メモリ2のエリアの数が多くなると、管理表161を記憶する記憶容量を大きくする必要がある。
In this modified example, since the area is configured by a minimum unit, the number of records and the completion position need not be stored for each area, but instead of the number of records registered in the management table 161 in the embodiment. More than shown. If the number of areas of the shared
一方、実施形態で示した通り、共有メモリ2を構成する複数のエリアが、それぞれ複数の最小単位から構成されていると、この変形例に示した場合に比べて管理表161に登録されるレコードの数が抑制される。
On the other hand, as shown in the embodiment, when a plurality of areas constituting the shared
2−2.変形例2
転送装置1を制御するためのプログラムは、磁気テープや磁気ディスクなどの磁気記録媒体、光ディスクなどの光記録媒体、光磁気記録媒体、半導体メモリなどの、コンピュータ装置が読み取り可能な記録媒体に記憶された状態で提供し得る。また、これらのプログラムを、インターネットなどを経由してダウンロードさせることも可能である。なお、上記の転送装置1の演算処理装置としては種々の装置が適用される場合があり、例えば、専用のプロセッサなどが用いられる。
2-2.
A program for controlling the
1…転送装置、11…受付部、12…登録部、13…取得部、14…転送部、15…監視部、16…記憶部、161…管理表、2…共有メモリ、3…メモリコントローラ、4…演算装置、41…キャッシュメモリ、5…調停バス、6…内部バス、7…要求装置、9…転送システム、P1…第1通信路、P2…第2通信路。
DESCRIPTION OF
Claims (3)
一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第2通信路と、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、
前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段と、
を有し、
前記登録手段は、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放する
ことを特徴とする転送装置。 A first communication path that communicates with a memory controller that reads from and writes to a specified area among a plurality of areas in the shared memory;
A second communication path that communicates with an arbitration device that arbitrates a request from one or more arithmetic devices, designates an area in the shared memory to the memory controller based on the request, and requests read / write;
Receiving means for receiving a request for data stored in the shared memory from a requesting device;
A registration unit that monitors a request output from the arbitration device to the memory controller and registers the area when the write process to the area specified by the request is not completed;
When the request of the requesting device is not for the area registered by the registration means, the data is acquired from the memory controller via the first communication path, and when the request is for the area, Obtaining means for obtaining the data from the arbitrating device via the second communication path;
Transfer means for transferring the acquired data to the requesting device;
I have a,
The registration means registers the area when the request is a request for a read process and the area specified in the request is not registered, and the request is a request for a write process. In some cases, the number of times of write processing to the area specified by the request is counted, and when the number of times reaches a threshold, the area is released as the write process is completed. apparatus.
前記転送装置と前記第1通信路経由で通信し、共有メモリ内の指定された領域に対して読み書きを行うメモリコントローラと、
装置間の要求を調停する装置であって、前記転送装置と前記第2通信路経由で通信し、一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と、
前記転送装置に対して前記共有メモリに格納されたデータの要求を送る要求装置と、
を有する転送システム。 A transfer device according to 請 Motomeko 1,
A memory controller that communicates with the transfer device via the first communication path and reads / writes from / to a specified area in a shared memory;
A device that arbitrates requests between devices, communicates with the transfer device via the second communication path, and allocates an area in the shared memory to the memory controller based on a request from one or more arithmetic devices. An arbitration device that specifies and requests reading and writing;
A requesting device for sending a request for data stored in the shared memory to the transfer device;
Having a transfer system.
一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第2通信路と、
を有するコンピュータを、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、
前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段
として機能させるとともに、
前記登録手段が、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放するように、前記コンピュータを機能させるためのプログラム。 Among the plurality in the region segmented in the shared memory, a first communication path that communicates with a memory controller for reading and writing to the designated area,
A second communication path that communicates with an arbitration device that arbitrates a request from one or more arithmetic devices, designates an area in the shared memory to the memory controller based on the request, and requests read / write;
A computer having
Receiving means for receiving a request for data stored in the shared memory from a requesting device;
A registration unit that monitors a request output from the arbitration device to the memory controller and registers the area when the write process to the area specified by the request is not completed;
When the request of the requesting device is not for the area registered by the registration means, the data is acquired from the memory controller via the first communication path, and when the request is for the area, Obtaining means for obtaining the data from the arbitrating device via the second communication path;
While functioning as transfer means for transferring the acquired data to the requesting device ,
The registration means registers the area when the request is a request for read processing and the area specified by the request is not registered, and the request is a request for write processing. In some cases, the computer counts the number of write operations to the area specified by the request, and when the number of times reaches a threshold, the computer is released so that the write process is completed and the area is released. A program to make it work .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015059372A JP6558008B2 (en) | 2015-03-23 | 2015-03-23 | Transfer device, transfer system, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015059372A JP6558008B2 (en) | 2015-03-23 | 2015-03-23 | Transfer device, transfer system, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016177751A JP2016177751A (en) | 2016-10-06 |
JP6558008B2 true JP6558008B2 (en) | 2019-08-14 |
Family
ID=57070064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015059372A Expired - Fee Related JP6558008B2 (en) | 2015-03-23 | 2015-03-23 | Transfer device, transfer system, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6558008B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491587B (en) * | 2017-09-11 | 2021-03-23 | 华为技术有限公司 | Data access method and device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3965784B2 (en) * | 1998-06-15 | 2007-08-29 | 株式会社日立製作所 | Shared memory exclusive access control method |
JP2008140065A (en) * | 2006-11-30 | 2008-06-19 | Toshiba Corp | Access arbitration device, access arbitration method and information processor |
JP2008140078A (en) * | 2006-11-30 | 2008-06-19 | Toshiba Corp | Bus bridge device, information processor, and data transfer control method |
-
2015
- 2015-03-23 JP JP2015059372A patent/JP6558008B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2016177751A (en) | 2016-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9639469B2 (en) | Coherency controller with reduced data buffer | |
JP5931196B2 (en) | Control method of cache memory provided in I / O node and plural calculation nodes | |
JP2014130420A (en) | Computer system and control method of computer | |
US9619150B2 (en) | Data arrangement control method and data arrangement control apparatus | |
US10956205B2 (en) | Data processing | |
JP6244949B2 (en) | Information processing apparatus, control method, and control program | |
US10824425B2 (en) | Selecting destination for processing management instructions based on the processor buffer size and uncompleted management instructions | |
CN110362426B (en) | Selective copy realization method and system for bursty load | |
JP6558008B2 (en) | Transfer device, transfer system, and program | |
JP5158576B2 (en) | I / O control system, I / O control method, and I / O control program | |
WO2018176397A1 (en) | Lock allocation method, device and computing apparatus | |
JP6558009B2 (en) | Transfer device, transfer system, and program | |
EP3293625B1 (en) | Method and device for accessing file, and storage system | |
EP3788494B1 (en) | Transfer protocol in a data processing network | |
US9858204B2 (en) | Cache device, cache system, and cache method | |
CN114356839B (en) | Method, device, processor and device readable storage medium for processing write operation | |
JP4176933B2 (en) | RECORDING MEDIUM RECORDING EXTERNAL STORAGE DEVICE DRIVER PROGRAM AND COMPUTER HAVING EXTERNAL STORAGE DEVICE ACCESS FUNCTION | |
US9201611B2 (en) | Interface control apparatus, data storage apparatus and interface control method | |
US20170315941A1 (en) | Bridge and method for coupling a requesting interconnect and a serving interconnect in a computer system | |
KR100950356B1 (en) | Data transfer unit with support for multiple coherency granules | |
US9383941B2 (en) | Migrating and retrieving queued data in byte-addressable storage | |
US11422937B2 (en) | Multiprocessor system and method for controlling shared memory | |
JP6565729B2 (en) | Arithmetic processing device, control device, information processing device, and control method for information processing device | |
JP5696891B2 (en) | Job scheduling method by IO configuration | |
JPH03142551A (en) | Common bus control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180228 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181120 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190109 |
|
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: 20190618 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190701 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6558008 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |