JP5958656B2 - Multiplexed storage device and multiplexed storage control method - Google Patents
Multiplexed storage device and multiplexed storage control method Download PDFInfo
- Publication number
- JP5958656B2 JP5958656B2 JP2015533371A JP2015533371A JP5958656B2 JP 5958656 B2 JP5958656 B2 JP 5958656B2 JP 2015533371 A JP2015533371 A JP 2015533371A JP 2015533371 A JP2015533371 A JP 2015533371A JP 5958656 B2 JP5958656 B2 JP 5958656B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- write
- phase shift
- shift amount
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
Description
本発明は、多重化記憶装置及び多重化記憶制御方法に関する。 The present invention relates to a multiplexed storage device and a multiplexed storage control method.
HDD(Hard Disk Drive)やSSD(Solid State Drive)のような記憶ユニットの耐故障性を高めることを目的として、記憶ユニットを複数台用意してデータを冗長化させる技術がある(以下そのような技術を用いた装置を「多重化記憶装置」と呼ぶ)。多重化記憶装置は、同じデータを複数の記憶ユニットに書込み、データを冗長化させる。すると、もしひとつの記憶ユニットが故障した場合でも、多重化記憶装置は、他の正常な記憶ユニットからデータを読み出すことができる。すなわち、多重化記憶装置は、記憶ユニットを冗長化させることによって装置の耐故障性を向上させることができる。 For the purpose of improving the fault tolerance of storage units such as HDD (Hard Disk Drive) and SSD (Solid State Drive), there is a technology that provides multiple storage units to make data redundant (hereinafter such technology). A device that uses this is called a “multiplexed storage device”). The multiplexed storage device writes the same data to a plurality of storage units to make the data redundant. Then, even if one storage unit fails, the multiplexed storage device can read data from other normal storage units. That is, the multiplexed storage device can improve the fault tolerance of the device by making the storage unit redundant.
多重化記憶装置は、冗長化された全ての記憶ユニットに対してライトを行う必要がある。ここで、複数の記憶ユニットに対してライトを行う場合に、複数のライト間の位相差が多重化記憶装置の性能に影響を与える。 The multiplexed storage device needs to write to all redundant storage units. Here, when writing to a plurality of storage units, the phase difference between the plurality of writes affects the performance of the multiplexed storage device.
図20A及び20Bは、位相差を大きくした場合のリードレイテンシ及びライトスループットの例を示す図であり、図21A及び21Bは、位相差を小さくした場合のリードレイテンシ及びライトスループットの例を示す図である。なお、これらの図では、2台の記憶ユニットにデータを二重化する場合を示す。 20A and 20B are diagrams illustrating examples of read latency and write throughput when the phase difference is increased, and FIGS. 21A and 21B are diagrams illustrating examples of read latency and write throughput when the phase difference is decreased. is there. In these figures, data is duplicated in two storage units.
また、CPUは、多重化記憶装置を使用する情報処理装置のCPUである。Write Req(X)はデータXのライトリクエストであり、Read Req(X)はデータXのリードリクエストであり、Read(X)は記憶ユニットからのデータXのリードであり、Write(X)は記憶ユニットへのデータXのライトである。Read Cpl with Data(X)はデータXのリード完了であり、Write Cpl(X)はデータXのライト完了である。なお、Xは、A又はBである。 The CPU is a CPU of an information processing apparatus that uses a multiplexed storage device. Write Req (X) is a write request for data X, Read Req (X) is a read request for data X, Read (X) is a read of data X from the storage unit, and Write (X) is stored Data X is written to the unit. Read Cpl with Data (X) is read completion of data X, and Write Cpl (X) is write completion of data X. X is A or B.
図20Aに示すように、位相差を大きくした場合には、Write Req(A)とRead Req(B)が連続してCPUから発行されると、記憶ユニット2にデータAを書込んでいる間に記憶ユニット1からデータBを読出すことができる。したがって、リードレイテンシは短縮される。As shown in FIG. 20A, when the phase difference is increased, if Write Req (A) and Read Req (B) are issued continuously from the CPU, the data A is being written to the storage unit 2 . The data B can be read from the storage unit 1 . Therefore, the read latency is shortened.
一方、位相差を大きくした場合には、図20Bに示すように、各記憶ユニットに対するライト処理が並列に行われなくなるので、ライトリクエストの完了は遅くなり、ライトリクエストに対するスループットは悪化する。 On the other hand, when the phase difference is increased, as shown in FIG. 20B, write processing for each storage unit is not performed in parallel, so that the completion of the write request is delayed and the throughput for the write request is deteriorated.
これに対して、位相差を小さくした場合には、図21Aに示すように、Write Req(A)とRead Req(B)が連続してCPUから発行されると、データAの書込みが完了しないとデータBを読出すことができない。したがって、リードレイテンシは増大する。 On the other hand, when the phase difference is reduced, as shown in FIG. 21A, when Write Req (A) and Read Req (B) are issued continuously from the CPU, writing of data A is not completed. And data B cannot be read. Therefore, the read latency increases.
一方、位相差を小さくした場合には、図21Bに示すように、各記憶ユニットに対するライト処理が並列に行われるので、ライトリクエストの完了は早くなり、ライトリクエストに対するスループットは改善する。 On the other hand, when the phase difference is reduced, as shown in FIG. 21B, write processing for each storage unit is performed in parallel, so that the completion of the write request is accelerated and the throughput for the write request is improved.
なお、多重化記憶装置に関連する従来技術として、3台のディスク装置のうち1台ではリードとライトを行い、1台ではライトを行い、残りの1台をスタンバイさせ、一定間隔で3台の役割をシフトすることで、ディスク装置の寿命を延ばすバックアップ技術がある。 As a conventional technology related to the multiplexed storage device, one of the three disk devices reads and writes, one writes, the other one stands by, and three at regular intervals. There is a backup technology that extends the life of a disk device by shifting roles.
また、アクセス装置からデータ書込みを行っている期間中にアクセス装置から書込み休止指示を受付けて書込みを休止し、アクセス装置からの新たなデータの書込みを受付けることで、複数のデータの書込み性能の低下が発生しないように並列的に書込む技術がある。 In addition, during the period when data is being written from the access device, a write suspension instruction is accepted from the access device, writing is paused, and writing of new data from the access device is accepted. There is a technique for writing in parallel so that no problem occurs.
図20A〜図21Bに示したように、位相シフト量を大きく設定すると、ライトリクエストに対するスループット性能が低下し、位相シフト量を小さく設定すると、リードリクエストに対するレイテンシ改善の効果が小さくなるという問題がある。 As shown in FIGS. 20A to 21B, when the phase shift amount is set large, the throughput performance for the write request is lowered, and when the phase shift amount is set small, the effect of improving the latency for the read request is reduced. .
本発明は、1つの側面では、ライトリクエストに対するスループット性能の低下を防ぎつつ、リードリクエストに対するレイテンシを改善することを目的とする。 An object of one aspect of the present invention is to improve latency for a read request while preventing a decrease in throughput performance for a write request.
本願の開示する多重化記憶装置は、1つの態様において、複数の記憶装置にそれぞれ対応付けられる複数の書込み指示間での位相シフト量を読出し要求及び書込み要求の状況に基づいて決定する決定部を備える。また、本願の開示する多重化記憶装置は、前記決定部により決定された位相シフト量だけずらして同一データについて前記複数の書込み指示を発行する発行部を備える。 In one aspect, a multiplexed storage device disclosed in the present application includes a determination unit that determines a phase shift amount between a plurality of write instructions respectively associated with a plurality of storage devices based on a read request and a status of the write request. Prepare. Further, the multiplexed storage device disclosed in the present application includes an issuing unit that issues the plurality of write instructions for the same data by shifting the phase shift amount determined by the determining unit.
1実施態様によれば、ライトリクエストに対するスループット性能の低下を防ぎつつ、リードリクエストに対するレイテンシを改善することができる。 According to one embodiment, it is possible to improve latency for a read request while preventing a decrease in throughput performance for a write request.
以下に、本願の開示する多重化記憶装置及び多重化記憶制御方法の実施例を図面に基づいて詳細に説明する。なお、これらの実施例は開示の技術を限定するものではない。 Embodiments of a multiplexed storage device and a multiplexed storage control method disclosed in the present application will be described below in detail with reference to the drawings. Note that these embodiments do not limit the disclosed technology.
まず、実施例1に係る多重化記憶装置の構成について説明する。図1は、実施例1に係る多重化記憶装置の構成を示す図である。図1に示すように、多重化記憶装置1は、デバイス制御部2と、n台の記憶ユニット3とを有する。デバイス制御部2は、多重化記憶装置1を制御し、記憶ユニット3は、CPUが使用するデータをn重化して記憶する。
First, the configuration of the multiplexed storage device according to the first embodiment will be described. FIG. 1 is a diagram illustrating the configuration of the multiplexed storage device according to the first embodiment. As shown in FIG. 1, the multiplexed
デバイス制御部2は、ホストI/F制御部4と、アドレス変換部5と、多重化制御部6と、n個のデバイスアクセス制御部7とを有する。ホストI/F制御部4は、CPUとのインタフェースであり、多重化記憶装置1へのアクセスリクエストをCPUから受付け、アドレス変換部5を経由して多重化制御部6に渡し、アクセスリクエストに対する多重化制御部6からの応答をCPUに返す。
The
アドレス変換部5は、CPUで用いられる論理アドレスを記憶ユニット3で用いられる物理アドレスに変換する。デバイスアクセス制御部7は、各記憶ユニット3に対応し、記憶ユニット3へのアクセスを制御する。
The address conversion unit 5 converts a logical address used by the CPU into a physical address used by the
多重化制御部6は、CPUからのアクセスリクエストに基づいて記憶ユニット3へのアクセスを制御する。多重化制御部6は、アクセスリクエストがライトリクエストである場合に、データを多重化して複数の記憶ユニット3に書込む制御を行う。多重化制御部6は、リクエスト発行・応答処理部61と、リクエスト数統計部62と、位相シフト量調整部63とを有する。
The multiplexing
リクエスト発行・応答処理部61は、CPUからのアクセスリクエストに基づいて記憶ユニット3へアクセスリクエストを発行し、記憶ユニット3からの応答を受け取って、CPUへ応答を返す。リクエスト発行・応答処理部61は、ライトリクエストについては位相シフト量に基づいて多重化して記憶ユニット3へライトリクエストを発行する。リクエスト数統計部62は、最近のアクセスリクエストの発行状況を管理し、アクセスリクエストのうちのリードリクエストの数を数える。
The request issuance /
位相シフト量調整部63は、最近のアクセスリクエストの発行状況に基づいて、ライトリクエストを発行する位相シフト量を動的に調整する。位相シフト量調整部63は、リクエスト数統計部62から得られる直近のアクセスリクエストの発行状況を用いて、直近にリードリクエストが多ければ位相シフト量を増加させるよう、また逆にライトリクエストが多ければ位相シフト量を減少させるよう調整する。
The phase shift
図2は、多重化制御部6の構成を示す図である。図2に示すように、リクエスト発行・応答処理部61は、リクエストキュー71と、デバイスステータステーブル72と、デバイスリクエスト生成部73と、応答処理部74とを有する。
FIG. 2 is a diagram illustrating a configuration of the
リクエストキュー71は、CPUからのアクセスリクエストを格納するキューである。キューの段数は、記憶ユニット3に対するアクセスレイテンシに基づいて、記憶ユニットアクセスのデータバスを埋めるのに必要なだけの数である。
The
図3は、リクエストキュー71のエントリの一例を示す図である。図3に示すように、リクエストキュー71のエントリには、validと、リクエスト種と、アドレスと、ライトデータのフィールドが含まれる。validは、エントリが有効であるか否かを示す。リクエスト種は、リクエストの種類を示し、ライト又はリードを示す。アドレスは、アクセス先のアドレスを示す。ライトデータは、リクエスト種がライトの場合に、記憶ユニット3にライトされるデータである。
FIG. 3 is a diagram illustrating an example of entries in the
デバイスステータステーブル72は、各記憶ユニット3に対するリクエスト発行状況を管理するテーブルである。図4は、デバイスステータステーブル72のエントリ例を示す図である。図4に示すように、デバイスステータステーブル72は、ライトリクエスト及びリードリクエストに対応するエントリをそれぞれ一つずつ有し、各エントリには、validと、addressと、各記憶ユニット3へのリクエスト発行状況が含まれる。
The device status table 72 is a table for managing the request issue status for each
validは、エントリが有効であるか否かを示す1ビットの情報であり、有効である場合は「1」であり、有効でない場合は「0」である。addressは、リクエスト発行先のアドレスを示す。リクエスト発行状況は、各記憶ユニット3へのリクエストの発行状況を示し、「Wait」、「Run」又は「Done」である。「Wait」は、ライトリクエストに関して、リクエストを発行しなければいけないのに未発行である状況を表す。「Run」は、リクエストを発行済みであり、記憶ユニット3がリクエストを処理中である状況を表す。「Done」は、リクエストを発行済みであり、記憶ユニット3のリクエスト処理が完了していることを表す。
The valid is 1-bit information indicating whether or not the entry is valid, and is “1” when the entry is valid and “0” when the entry is not valid. address indicates the address of the request issue destination. The request issue status indicates the issue status of a request to each
デバイスリクエスト生成部73は、リクエストキュー71にリクエストが存在する場合、リクエストキュー71から先頭のリクエストを取り出し、取り出したリクエストに応じて各記憶ユニット3に対するリクエストを生成して発行する。このとき、デバイスリクエスト生成部73は、ライトリクエストの場合には、各記憶ユニット3に対する発行タイミングをシフトさせながらすべての記憶ユニット3に対してリクエストを発行する。シフトする位相量は、位相シフト量調節部63によって管理される値である。一方、リードリクエスト発行時は、デバイスリクエスト生成部73は、アイドル状態の記憶ユニット3を1つ探し、探した記憶ユニット3に対してリードリクエストを発行する。
When there is a request in the
応答処理部74は、各記憶ユニット3から応答を受け取り、受け取った応答を処理してCPUに処理結果を返す。
The
リクエスト数統計部62は、リクエスト履歴キュー75と、リードカウンタ76とを有する。リクエスト履歴キュー75は、直近の複数のアクセスリクエストについて、リードリクエストであったか否かを記憶するキューである。リクエスト履歴キュー75の段数は、位相シフト量の決定に直近のリクエスト履歴をいくつ参照するかによって決まり、例えば16段である。
The request
図5は、リクエスト履歴キュー75のエントリの一例を示す図である。図5に示すように、リクエスト履歴キュー75のエントリには、validと、リクエスト種とがフィールドとして含まれる。validは、エントリが有効であるか否かを示す。リクエスト種は、アクセスリクエストの種類を示し、ライト又はリードを示す。
FIG. 5 is a diagram illustrating an example of entries in the
リードカウンタ76は、直近のリードリクエストの個数をカウントするカウンタである。リードカウンタ76は、リクエスト履歴キュー75の中のリードリクエストの個数をカウントする。
The
位相シフト量調整部63は、位相シフト量デコードテーブル77と、位相シフト量決定部78と、位相シフト量記憶部79とを有する。位相シフト量デコードテーブル77は、リードカウンタ76がカウントする直近のリードリクエストの数に応じて位相シフト量を決定するためのテーブルである。
The phase shift
図6は、位相シフト量デコードテーブル77の一例を示す図である。図6に示すように、位相シフト量デコードテーブル77は、リードカウンタ値と位相シフト量とを対応付けて記憶する。リードカウンタ値は、リードカウンタ76の値である。位相シフト量は、同一データに対して複数の記憶ユニット3に発行するライトリクエスト間の間隔であり、単位はマイクロ秒(μS)である。
FIG. 6 is a diagram illustrating an example of the phase shift amount decoding table 77. As shown in FIG. 6, the phase shift amount decoding table 77 stores the read counter value and the phase shift amount in association with each other. The read counter value is the value of the read
図6に示すように、直近にリードが少ない場合は位相シフト量が小さく、逆に直近にリードが多い場合は位相シフト量が大きくなる。位相シフト量は、位相をずらすことによりリードリクエストの処理が可能になるような値である。例えば、SSDを例として、リードに要する時間が50μSとした場合、リードカウンタ76の値が1の場合はライトの後続にリードが1つ来てもそのリードにすぐに応答できるよう、位相シフト量は60μSとなる。
As shown in FIG. 6, the phase shift amount is small when the number of leads is very short, and the phase shift amount is large when the number of leads is very close. The phase shift amount is a value that enables processing of a read request by shifting the phase. For example, taking SSD as an example, if the time required for reading is 50 μS, if the value of the read
また、位相シフトする最大量は、各記憶ユニット3のライト処理が完全にシリアルになる程度までとする。例えば、SSDを例として、ライトに要する時間が500μSである場合は、位相シフト量の最大値は500μSまでとする。これは、次のような理由による。位相シフト量を500μSとすることでいずれかの記憶ユニット3は必ずアイドル状態になることが期待されるため、ライトアクセスに続くリードアクセスをいずれかの記憶ユニット3に割り当てることができ、リード応答性能の改善効果は常に得られる。一方で、これ以上位相シフト量を大きくすることはリード応答性能のさらなる改善には寄与しないにも関わらず、ライトスループットは低下してしまう。そのため、ライトスループットの不要な性能低下を避けるために、位相シフト量は最大で500μSまでとする。
Further, the maximum amount of phase shift is set so that the write processing of each
位相シフト量決定部78は、リードカウンタ76の値から位相シフト量デコードテーブル77を検索して位相シフト量を決定し、決定した位相シフト量を位相シフト量記憶部79に格納する。位相シフト量記憶部79は、位相シフト量決定部78により決定された位相シフト量を記憶する。
The phase shift amount determination unit 78 searches the phase shift amount decode table 77 from the value of the read
次に、ライトリクエスト処理時のデバイスリクエスト生成部73の動作フローについて説明する。図7は、ライトリクエスト処理時のデバイスリクエスト生成部73の動作フローを示すフローチャートである。図7は、リクエストキュー71の先頭のリクエストがライトリクエストである場合のデバイスリクエスト生成部73の動作フローを示す。
Next, an operation flow of the device
図7に示すように、デバイスリクエスト生成部73は、デバイスステータステーブル72のライトエントリのvalidビットがクリアであるか否かを判定し(ステップS1)、クリアでない場合には、クリアになるまで待つ。
As shown in FIG. 7, the
一方、クリアである場合には、デバイスリクエスト生成部73は、リクエストキュー71から先頭のリクエストを取り出し(ステップS2)、デバイスステータステーブル72のライトエントリのvalidビットを1にセットする(ステップS3)。そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のライトエントリのリクエスト発行状況フィールドをすべて「Wait」にする(ステップS4)。
On the other hand, if it is clear, the device
そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のリクエスト発行状況フィールドを参照する(ステップS5)。そして、デバイスリクエスト生成部73は、ライト未発行でかつアイドル状態の記憶ユニット3が存在するか否かを判定し(ステップS6)、存在しない場合には、ステップS5に戻る。ここで、ライト未発行でかつアイドル状態とは、ライトエントリの発行状況が「Wait」であり、かつリードエントリのリクエスト発行状況が「Run」以外である状態である。
Then, the device
一方、ライト未発行でかつアイドル状態の記憶ユニット3が存在する場合には、デバイスリクエスト生成部73は、1つの記憶ユニット3に対してライトリクエストを発行する(ステップS7)。そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のライトエントリのその記憶ユニット3に対応するリクエスト発行状況を「Run」に更新する(ステップS8)。
On the other hand, if there is a
そして、デバイスリクエスト生成部73は、全ての記憶ユニット3にライトリクエストを発行済か否かを判定し(ステップS9)、全ての記憶ユニット3にライトリクエストを発行済の場合には処理を終了する。ここで、全ての記憶ユニット3にライトリクエストを発行済とは、すべての記憶ユニット3に対応するライトリクエストのリクエスト発行状況が「Run」又は「Done」の状態である。
Then, the device
一方、ライトリクエストを発行していない記憶ユニット3がある場合には、デバイスリクエスト生成部73は、位相シフト量が示す時間だけ待ち(ステップS10)、ステップS5に戻って他の記憶ユニット3にライトリクエストを発行する処理を行う。
On the other hand, if there is a
このように、デバイスリクエスト生成部73は、1つの記憶ユニット3に対してライトリクエストを発行すると、位相シフト量だけ待つことによって、同一データを複数の記憶ユニット3に書込む際に、ライトリクエストをずらして発行することができる。
As described above, when the device
次に、リードリクエスト処理時のデバイスリクエスト生成部73の動作フローについて説明する。図8は、リードリクエスト処理時のデバイスリクエスト生成部73の動作フローを示すフローチャートである。図8は、リクエストキュー71の先頭のリクエストがリードリクエストである場合のデバイスリクエスト生成部73の動作フローを示す。
Next, an operation flow of the device
図8に示すように、デバイスリクエスト生成部73は、デバイスステータステーブル72のリードエントリのvalidビットがクリアであるか否かを判定し(ステップS11)、クリアでない場合には、クリアになるまで待つ。
As shown in FIG. 8, the device
一方、クリアである場合には、デバイスリクエスト生成部73は、リクエストキュー71から先頭のリクエストを取り出し(ステップS12)、デバイスステータステーブル72のリードエントリのvalidビットを1にセットする(ステップS13)。そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のリードエントリのリクエスト発行状況フィールドをすべて「Wait」にする(ステップS14)。
On the other hand, if it is clear, the
そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のリクエスト発行状況フィールドを参照する(ステップS15)。そして、デバイスリクエスト生成部73は、アイドル状態の記憶ユニット3が存在するか否かを判定し(ステップ16)、存在しない場合には、ステップS15に戻る。ここで、アイドル状態であるとは、リードエントリのリクエスト発行状況が「Wait」であり、かつライトエントリのリクエスト発行状況が「Run」以外である状態である。
Then, the device
一方、アイドル状態の記憶ユニット3が存在する場合には、デバイスリクエスト生成部73は、1つの記憶ユニット3に対してリードリクエストを発行する(ステップS17)。そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のリードエントリのその記憶ユニット3に対応するリクエスト発行状況を「Run」に更新する(ステップS18)。
On the other hand, when there is an
このように、デバイスリクエスト生成部73は、デバイスステータステーブル72に基づいてアイドル状態の記憶ユニット3を特定することによって、リードリクエストを発行することができる。
As described above, the device
次に、応答処理部74の動作フローについて説明する。図9は、応答処理部74の動作フローを示すフローチャートである。図9に示すように、応答処理部74は、記憶ユニットiからの応答を受信すると、ライトリクエストに対する応答であるか否かを判定する(ステップS21)。ここで、iは0〜n−1である。Next, the operation flow of the
その結果、ライトリクエストに対する応答である場合には、応答処理部74は、デバイスステータステーブル72のライトエントリの記憶ユニットiに対応するリクエスト発行状況を「Done」に更新する(ステップS22)。そして、応答処理部74は、ライトエントリについて、全記憶ユニット3のリクエスト発行状況が「Done」であるか否かを判定し(ステップS23)、リクエスト発行状況が「Done」でない記憶ユニット3がある場合には、処理を終了する。As a result, if it is a response to the write request, the
一方、全記憶ユニット3のリクエスト発行状況が「Done」である場合には、応答処理部74は、CPUに対してライト応答を送信し(ステップS24)、ライトエントリのvalidをクリアする(ステップS25)。
On the other hand, when the request issue status of all the
また、ライトリクエストに対する応答でない場合には、リードリクエストに対する応答なので、応答処理部74は、デバイスステータステーブル72のリードエントリの記憶ユニットiに対応するリクエスト発行状況を「Done」に更新する(ステップS26)。そして、応答処理部74は、CPUに対してリード応答を送信し(ステップS27)、リードエントリのvalidをクリアする(ステップS28)。If the response is not a response to the write request, the
このように、応答処理部74は、ライトリクエストに対する応答に対して、全ての記憶ユニット3からの応答が来るまでCPUに応答しないので、CPUは、応答処理部74からの応答によりデータの多重書込みの完了を確認することができる。
As described above, the
次に、リクエスト数統計部62の動作フローについて説明する。図10は、リクエスト数統計部62の動作フローを示すフローチャートである。なお、リクエスト数統計部62は、リクエストキュー71から取り出されたリクエストを受信すると動作する。
Next, the operation flow of the request
図10に示すように、リクエスト数統計部62は、受信したリクエストがリードリクエストであるか否かを判定し(ステップS31)、リードリクエストである場合には、リードカウンタ76を加算する(ステップS32)。
As shown in FIG. 10, the request
そして、リクエスト数統計部62は、リクエスト履歴キュー75から最古のリクエストを取り出し(ステップS33)、取り出したリクエストがリードリクエストであるか否かを判定する(ステップS34)。その結果、リードリクエストである場合には、リクエスト数統計部62は、リードカウンタ76を減算する(ステップS35)。
Then, the request
そして、リクエスト数統計部62は、リクエスト履歴キュー75に、新規に受信したリクエストを追加する(ステップS36)。
Then, the request count
このように、リクエスト数統計部62が、リードカウンタ76を用いて直近の所定の数のリクエストのうちリードリクエストの数を数えることによって、多重化制御部6は、直近のリクエストの状況を把握することができる。なお、図10で示す動作は、リクエスト履歴キュー75がフルエントリになった後の動作を示し、フルエントリになるまでは、ステップS33〜ステップS35の処理は行われない。
As described above, the request
上述してきたように、実施例1では、位相シフト量デコードテーブル77が、直近のリードリクエストの数に対応付けて位相シフト量を記憶する。そして、リクエスト数統計部62が、直近の所定の数のリクエストのうちリードリクエストの数を数え、位相シフト量決定部78が、位相シフト量デコードテーブル77と直近のリードリクエストの数に基づいて位相シフト量を決定する。そして、デバイスリクエスト生成部73が、同一データを書込む複数の記憶ユニット3に位相シフト量だけずらしてライトリクエストを発行する。したがって、多重化制御部6は、直近のリードリクエストの頻度に基づいて、位相シフト量を動的に変更することができ、ライトリクエストに対するスループット性能の低下を防ぎつつ、リードリクエストに対するレイテンシを改善することができる。
As described above, in the first embodiment, the phase shift amount decoding table 77 stores the phase shift amount in association with the number of the latest read requests. Then, the request
図11は、リードリクエストの頻度が高い場合の効果を示す図である。なお、図11では、記憶ユニット3の数が2である場合を示す。図11に示すように、直近にリードリクエストが多い場合は、多重化制御部6は、ライト開始タイミングの位相差を大きくする(1)。したがって、一方の記憶ユニット3がアイドルである期間が延びるため、多重化記憶装置1は、ライトリクエストの直後にリードリクエストが来た場合に、すぐに応答することができる(2)。
FIG. 11 is a diagram illustrating an effect when the frequency of read requests is high. FIG. 11 shows a case where the number of
図12は、ライトリクエストの頻度が高い場合の効果を示す図である。なお、図12では、記憶ユニット3の数が2である場合を示す。図12に示すように、直近にライトリクエストが多い場合は、多重化制御部6は、ライト開始タイミングの位相差を小さくする(1)。したがって、両方の記憶ユニット3で並列にライトされるようになるため、多重化記憶装置1は、ライトスループットを改善することができる(2)。
FIG. 12 is a diagram illustrating an effect when the frequency of write requests is high. FIG. 12 shows a case where the number of
なお、実施例1では、デバイス制御部2について説明したが、デバイス制御部2が有する構成の一部をソフトウェアによって実現することで、同様の機能を有するデバイス制御プログラムを得ることができる。そこで、デバイス制御プログラムで一部の機能が実現されるデバイス制御部のハードウェア構成について説明する。
Although the
図13は、デバイス制御プログラムで一部の機能が実現されるデバイス制御部のハードウェア構成を示す図である。図13に示すように、デバイス制御部20は、主記憶21と、コントローラ22と、フラッシュメモリ26とを有する。
FIG. 13 is a diagram illustrating a hardware configuration of a device control unit in which some functions are realized by the device control program. As illustrated in FIG. 13, the
主記憶21は、プログラムやプログラムの実行途中結果などを記憶するメモリである。主記憶21は、図2に示したリクエストキュー71、デバイスステータステーブル72、リクエスト履歴キュー75、リードカウンタ76、位相シフト量デコードテーブル77及び位相シフト量記憶部79をメモリ内に実現する。
The
コントローラ22は、CPU23と、アドレス変換部24と、デバイスアクセス制御部25とを有する。CPU23は、主記憶21からプログラムを読み出して実行する中央処理装置である。アドレス変換部24は、CPU23で用いられる論理アドレスを記憶ユニット3で用いられる物理アドレスに変換する。デバイスアクセス制御部25は、各記憶ユニット3に対応し、記憶ユニット3へのアクセスを制御する。
The
フラッシュメモリ26は、不揮発性のメモリであり、デバイス制御プログラム27を記憶する。デバイス制御プログラム27は、フラッシュメモリ26から主記憶21に読み出されてCPU23によって実行されることで、図2に示したリクエスト発行・応答部61、リクエスト数統計部62及び位相シフト量調整部63の機能を実現する。
The
このように、デバイス制御プログラム27をCPU23で実行することによって、実施例1に係る多重化制御機能をソフトウェアで実現することができる。
Thus, by executing the
ところで、実施例1では、直近のリードリクエストの頻度に基づいて位相シフト量を動的に変更する場合について説明したが、実行待ち状態にあるリードリクエスト及びライトリクエストの順番を加味して位相シフト量を調整してもよい。例えば、記憶ユニットをSSDとし、ライトリクエスト、リードリクエストがこの順で実行待ちであるときは、位相シフト量を最低限60μSとすることで、多重化記憶装置は、ライトリクエストの処理と同時にリードリクエストの処理を行うことができる。 By the way, in the first embodiment, the case where the phase shift amount is dynamically changed based on the frequency of the most recent read request has been described. However, the phase shift amount is considered in consideration of the order of the read request and the write request waiting for execution. May be adjusted. For example, when the storage unit is an SSD and write requests and read requests are waiting to be executed in this order, the multiplexed storage device can simultaneously read request processing simultaneously with the write request processing by setting the phase shift amount to 60 μS. Can be processed.
位相シフト量の調整のためには、リクエスト発行・応答処理部は、位相シフト量調整部へリクエストキューの情報を通知し、位相シフト量調整部は、位相シフト量を決定する際にリクエストキューの情報を加味すればよい。 To adjust the phase shift amount, the request issuance / response processing unit notifies the request queue information to the phase shift amount adjustment unit, and the phase shift amount adjustment unit determines the request queue when determining the phase shift amount. You can add information.
図14は、実施例2におけるリードレイテンシ性能改善効果の例を示す図である。図14に示すように、位相シフト量調整部は、ライトリクエストの後続にリードリクエストが来ている場合は、ライト開始タイミングの位相差を最低でも60μSとする(1)。すると、多重化記憶装置は、後続のリードリクエストに対して直ちに応答できる(2)。 FIG. 14 is a diagram illustrating an example of the read latency performance improvement effect in the second embodiment. As shown in FIG. 14, when a read request comes after the write request, the phase shift amount adjustment unit sets the phase difference of the write start timing to 60 μS at the minimum (1). Then, the multiplexed storage device can immediately respond to the subsequent read request (2).
このように、実施例2では、位相シフト量調整部が、実行待ち状態にあるリードリクエスト及びライトリクエストの組み合わせを加味して位相シフト量を調整することで、多重化記憶装置は、リードレイテンシを改善することができる。 As described above, in the second embodiment, the phase shift amount adjustment unit adjusts the phase shift amount in consideration of the combination of the read request and the write request that are in the execution waiting state, so that the multiplexed storage device can increase the read latency. Can be improved.
実施例1では、ライトリクエストに対する処理の開始タイミング間隔を動的に変更する場合について説明したが、同様の手法はライトリクエストに対する処理に限らず適用することができる。例えば、SSDなどでは、記憶ユニット3がアイドル状態のときにバックグラウンドで不要データの消去すなわちガベージコレクションを行う。デバイス制御部は、不要データの消去を全ての記憶ユニットに対して行うが、全記憶ユニットに対して同時に開始するのではなく、記憶ユニット毎に間隔をあけて開始することができる。そこで、実施例3では、ガベージコレクションにおいて位相シフト量を自動調整する多重化記憶装置について説明する。
In the first embodiment, the case where the start timing interval of the process for the write request is dynamically changed has been described. However, the same technique is not limited to the process for the write request, and can be applied. For example, in SSD or the like, unnecessary data is erased, that is, garbage collected, in the background when the
まず、実施例3に係る多重化記憶装置の構成について説明する。図15は、実施例3に係る多重化記憶装置の構成を示す図である。なお、ここでは説明の便宜上、図1に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。 First, the configuration of the multiplexed storage device according to the third embodiment will be described. FIG. 15 is a diagram illustrating the configuration of the multiplexed storage device according to the third embodiment. Here, for convenience of explanation, functional units that play the same functions as the respective units shown in FIG.
図15に示すように、多重化記憶装置1aは、デバイス制御部2aと、n台の記憶ユニット3aとを有する。デバイス制御部2aは、多重化記憶装置1aを制御し、記憶ユニット3aは、情報処理装置のCPUが使用するデータをn重化して記憶する。記憶ユニット3aは、SSDである。デバイス制御部2aは、ホストI/F制御部4と、アドレス変換部5と、多重化制御部6aと、n個のデバイスアクセス制御部7と、SSD制御部8とを有する。
As shown in FIG. 15, the multiplexed
多重化制御部6aは、データを多重化して複数の記憶ユニット3aに書込む制御を行う。多重化制御部6aは、リクエスト発行・応答処理部61aと、リクエスト数統計部62aと、位相シフト量調整部63aとを有する。リクエスト発行・応答処理部61aとリクエスト数統計部62aは、CPUからのアクセスリクエストに加えて、SSD制御部8からのGC(ガベージコレクション)リクエストの処理も行う。SSD制御部8は、ガベージコレクション制御部80を有し、ガベージコレクション制御部80は、GCを行うか否かを判定し、GCを行うと判定した場合にGCリクエストを発行する。
The multiplexing
図16は、多重化制御部6aの構成を示す図である。図16に示すように、リクエスト発行・応答処理部61aは、リクエストキュー71aと、デバイスステータステーブル72aと、デバイスリクエスト生成部73aと、応答処理部74aとを有する。
FIG. 16 is a diagram illustrating a configuration of the
リクエストキュー71aは、CPUからのアクセスリクエスト及びガベージコレクション制御部80からのGCリクエストを格納するキューである。図17は、リクエストキュー71aのエントリの一例を示す図である。図17に示すように、リクエストキュー71aのエントリには、validと、リクエスト種と、アドレスと、ライトデータのフィールドが含まれ、リクエスト種は、ライト、リード又はGCを示す。
The request queue 71 a is a queue that stores an access request from the CPU and a GC request from the garbage
デバイスステータステーブル72aは、各記憶ユニット3aに対するリクエスト発行状況を管理するテーブルである。図18は、デバイスステータステーブル72aのエントリ例を示す図である。図18に示すように、デバイスステータステーブル72aは、ライトリクエスト、リードリクエスト及びGCリクエストに対応するエントリをそれぞれ一つずつ有する。
The device status table 72a is a table for managing the request issue status for each
デバイスリクエスト生成部73aは、デバイスリクエスト生成部73の処理に加えて、リクエストキュー71aから取り出したリクエストがGCリクエストの場合には、各記憶ユニット3aに対して発行タイミングをシフトさせながらGCリクエストを発行する。応答処理部74aは、応答処理部74の処理に加えて、GCリクエストに対する応答をガベージコレクション制御部80に返す。
In addition to the processing of the
リクエスト数統計部62aは、リクエスト履歴キュー75aと、リードカウンタ76とを有する。リクエスト履歴キュー75aは、リクエスト履歴キュー75と同様の情報を記憶するが、リクエストの種類としてライト、リード又はGCを記憶する。
The request
位相シフト量調整部63aは、位相シフト量デコードテーブル77aと、位相シフト量決定部78aと、ライト位相シフト量記憶部79aと、GC位相シフト量記憶部79bとを有する。位相シフト量デコードテーブル77aは、リクエスト数統計部62がカウントする直近のリードカウンタ76の数に応じて、ライト位相シフト量及びGC位相シフト量を決定するためのテーブルである。ここで、ライト位相シフト量は、ライトリクエストに対する位相シフト量であり、GC位相シフト量は、GCリクエストに対する位相シフト量である。
The phase shift
図19は、位相シフト量デコードテーブル77aの一例を示す図である。図19に示すように、位相シフト量デコードテーブル77aは、リードカウンタ値とライト位相シフト量とGC位相シフト量とを対応付けて記憶する。 FIG. 19 is a diagram illustrating an example of the phase shift amount decoding table 77a. As illustrated in FIG. 19, the phase shift amount decoding table 77a stores a read counter value, a write phase shift amount, and a GC phase shift amount in association with each other.
ライト位相シフト量とGC位相シフト量を区別する理由は、SSDにおけるライトリクエストに対する処理とガベージコレクションに対する処理との間のレイテンシに差があるためである。各SSDが同時にガベージコレクションを行うような状況をなるべく回避するために、ガベージコレクションに対する処理の位相シフト量は、ガベージコレクションに要する時間に応じて、ライトリクエストに対する処理の場合よりも大きい。 The reason for distinguishing the write phase shift amount from the GC phase shift amount is that there is a difference in latency between the processing for the write request and the processing for the garbage collection in the SSD. In order to avoid the situation where each SSD performs garbage collection at the same time, the phase shift amount of the process for garbage collection is larger than that for the process of write request depending on the time required for garbage collection.
位相シフト量決定部78aは、リードカウンタ76の値から位相シフト量デコードテーブル77aを検索してライト位相シフト量及びGC位相シフト量を決定する。ライト位相シフト量記憶部79aは、位相シフト量決定部78aにより決定されたライト位相シフト量を記憶し、GC位相シフト量記憶部79bは、位相シフト量決定部78aにより決定されたGC位相シフト量を記憶する。
The phase shift
上述してきたように、実施例3では、位相シフト量決定部78aがリードカウンタ76の値及び位相シフト量デコードテーブル77aに基づいてGC位相シフト量を決定し、決定したGC位相シフト量をGC位相シフト量記憶部79bに格納する。そして、デバイスリクエスト生成部73aは、GC位相シフト量記憶部79bが記憶するGC位相シフト量に基づいて、各記憶ユニット3aに対して発行タイミングをシフトさせながらGCリクエスト発行する。したがって、多重化制御部6は、GCリクエストに対して、直近のリードリクエストの頻度に基づいて位相シフト量を動的に変更することができ、GCリクエストに対するスループット性能の低下を防ぎつつ、リードリクエストに対するレイテンシを改善することができる。
As described above, in the third embodiment, the phase shift
1,1a 多重化記憶装置
2,2a,20 デバイス制御部
3,3a 記憶ユニット
4 ホストI/F制御部
5,24 アドレス変換部
6,6a 多重化制御部
7,25 デバイスアクセス制御部
8 SSD制御部
21 主記憶
22 コントローラ
23 CPU
26 フラッシュメモリ
27 デバイス制御プログラム
61,61a リクエスト発行・応答処理部
62,62a リクエスト数統計部
63,63a 位相シフト量調整部
71,71a リクエストキュー
72,72a デバイスステータステーブル
73,73a デバイスリクエスト生成部
74,74a 応答処理部
75,75a リクエスト履歴キュー
76 リードカウンタ
77,77a 位相シフト量デコードテーブル
78,78a 位相シフト量決定部
79 位相シフト量記憶部
79a ライト位相シフト量記憶部
79b GC位相シフト量記憶部
80 ガベージコレクション制御部1, 1a
26
Claims (6)
複数の記憶装置にそれぞれ対応付けられる複数の書込み指示間での位相シフト量を読出し要求及び書込み要求の状況に基づいて決定する決定部と、
前記決定部により決定された位相シフト量だけずらして同一データについて前記複数の書込み指示を発行する発行部と
を備えることを特徴とする多重化記憶装置。In a multiplexed storage device that multiplexes and stores data in a plurality of storage devices,
A determination unit that determines a phase shift amount between a plurality of write instructions respectively associated with a plurality of storage devices based on a status of the read request and the write request;
A multiplexing storage device comprising: an issuing unit that issues the plurality of write instructions for the same data by shifting the phase shift amount determined by the determining unit.
前記発行部は、前記情報処理装置からの書込み要求に含まれるデータの書込み指示を発行することを特徴とする請求項1に記載の多重化記憶装置。The write request is a request from an information processing device using the multiplexed storage device,
The multiplexed storage device according to claim 1, wherein the issuing unit issues a data write instruction included in a write request from the information processing device.
前記発行部は、前記ガベージコレクションに基づく所定のデータの書込み指示を発行することを特徴とする請求項1に記載の多重化記憶装置。The write request is a request based on garbage collection by a control device that controls the multiplexed storage device.
The multiplexed storage apparatus according to claim 1, wherein the issuing unit issues an instruction to write predetermined data based on the garbage collection.
前記決定部は、前記統計処理部による統計処理の結果に基づいて前記位相シフト量を決定することを特徴とする請求項1に記載の多重化記憶装置。A statistical processing unit that performs statistical processing on the read request;
The multiplexed storage device according to claim 1, wherein the determination unit determines the phase shift amount based on a result of statistical processing by the statistical processing unit.
前記決定部は、前記判定部による判定結果に基づいて前記位相シフト量を決定することを特徴とする請求項1に記載の多重化記憶装置。A determination unit for determining the order of a read request and a write request that are waiting to be executed;
The multiplexing storage device according to claim 1, wherein the determination unit determines the phase shift amount based on a determination result by the determination unit.
複数の記憶装置にそれぞれ対応付けられる複数の書込み指示間での位相シフト量を読出し要求及び書込み要求の状況に基づいて決定し、
決定した位相シフト量だけずらして同一データについて前記複数の書込み指示を発行する
処理を含んだことを特徴とする多重化記憶制御方法。In a multiplexed storage control method by a multiplexed storage device for multiplexing and storing data in a plurality of storage devices,
Determining a phase shift amount between a plurality of write instructions respectively associated with a plurality of storage devices based on the status of the read request and the write request;
A multiplexed storage control method, comprising: processing for issuing the plurality of write instructions for the same data by shifting the determined phase shift amount.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/063260 WO2015177849A1 (en) | 2014-05-19 | 2014-05-19 | Multiplexed storage device and multiplexed storage control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5958656B2 true JP5958656B2 (en) | 2016-08-02 |
JPWO2015177849A1 JPWO2015177849A1 (en) | 2017-04-20 |
Family
ID=54553547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015533371A Active JP5958656B2 (en) | 2014-05-19 | 2014-05-19 | Multiplexed storage device and multiplexed storage control method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5958656B2 (en) |
WO (1) | WO2015177849A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7159069B2 (en) * | 2019-01-29 | 2022-10-24 | キオクシア株式会社 | Memory system and control method |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0973372A (en) * | 1995-09-07 | 1997-03-18 | Fujitsu Ltd | Method and device for storage control |
JP2000020250A (en) * | 1998-07-03 | 2000-01-21 | Nec Corp | Magnetic disk controller |
JP2003296046A (en) * | 2003-04-21 | 2003-10-17 | Hitachi Ltd | Disk array device and method for controlling the same |
JP2009070489A (en) * | 2007-09-13 | 2009-04-02 | Hitachi Ltd | Storage device, its control method and disk device |
JP2010102369A (en) * | 2008-10-21 | 2010-05-06 | Hitachi Ltd | Storage system |
-
2014
- 2014-05-19 WO PCT/JP2014/063260 patent/WO2015177849A1/en active Application Filing
- 2014-05-19 JP JP2015533371A patent/JP5958656B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0973372A (en) * | 1995-09-07 | 1997-03-18 | Fujitsu Ltd | Method and device for storage control |
JP2000020250A (en) * | 1998-07-03 | 2000-01-21 | Nec Corp | Magnetic disk controller |
JP2003296046A (en) * | 2003-04-21 | 2003-10-17 | Hitachi Ltd | Disk array device and method for controlling the same |
JP2009070489A (en) * | 2007-09-13 | 2009-04-02 | Hitachi Ltd | Storage device, its control method and disk device |
JP2010102369A (en) * | 2008-10-21 | 2010-05-06 | Hitachi Ltd | Storage system |
Also Published As
Publication number | Publication date |
---|---|
JPWO2015177849A1 (en) | 2017-04-20 |
WO2015177849A1 (en) | 2015-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11392297B2 (en) | Automatic stream detection and assignment algorithm | |
EP3367251B1 (en) | Storage system and solid state hard disk | |
US10831677B2 (en) | Cache management method, cache controller, and computer system | |
US10089266B2 (en) | Power saving feature for storage subsystems | |
US9665485B2 (en) | Logical and physical block addressing for efficiently storing data to improve access speed in a data deduplication system | |
US9207867B2 (en) | Adaptive record caching for solid state disks | |
US20150120859A1 (en) | Computer system, and arrangement of data control method | |
WO2014094419A1 (en) | Data caching processing method, apparatus and system | |
US10146783B2 (en) | Using file element accesses to select file elements in a file system to defragment | |
US9135064B2 (en) | Fine grained adaptive throttling of background processes | |
US10977200B2 (en) | Method, apparatus and computer program product for processing I/O request | |
US20200043128A1 (en) | Processing system for graphs and operating method thereof | |
JP5958656B2 (en) | Multiplexed storage device and multiplexed storage control method | |
US20150269098A1 (en) | Information processing apparatus, information processing method, storage, storage control method, and storage medium | |
US20180173639A1 (en) | Memory access method, apparatus, and system | |
US9858204B2 (en) | Cache device, cache system, and cache method | |
US20150212949A1 (en) | Storage control device and storage control method | |
CN105740073A (en) | Method and apparatus for dynamically controlling quantity of operation system processes | |
WO2016029481A1 (en) | Method and device for isolating disk regions | |
WO2017082323A1 (en) | Distributed processing system, distributed processing device, method, and storage medium | |
CN110764710B (en) | Low-delay high-IOPS data access method and storage system | |
JP2018041282A (en) | Storage management device, performance adjustment method and performance adjustment program | |
WO2014147840A1 (en) | Access control program, disk device, and access control method | |
JP2018081642A (en) | Memory controller and method | |
JP2014002649A (en) | Semiconductor device and access timing adjustment method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20160524 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160606 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5958656 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |