JP5958656B2 - Multiplexed storage device and multiplexed storage control method - Google Patents

Multiplexed storage device and multiplexed storage control method Download PDF

Info

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
Application number
JP2015533371A
Other languages
Japanese (ja)
Other versions
JPWO2015177849A1 (en
Inventor
隆宏 野尻
隆宏 野尻
雅紀 日下田
雅紀 日下田
早坂 和美
和美 早坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of JP5958656B2 publication Critical patent/JP5958656B2/en
Publication of JPWO2015177849A1 publication Critical patent/JPWO2015177849A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection 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.

特開平7−64870号公報JP-A-7-64870 特開2005−250644号公報JP-A-2005-250644 特開2011−210235号公報JP 2011-210235 A

図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.

図1は、実施例1に係る多重化記憶装置の構成を示す図である。FIG. 1 is a diagram illustrating the configuration of the multiplexed storage device according to the first embodiment. 図2は、多重化制御部の構成を示す図である。FIG. 2 is a diagram illustrating a configuration of the multiplexing control unit. 図3は、リクエストキューのエントリの一例を示す図である。FIG. 3 is a diagram illustrating an example of entries in the request queue. 図4は、デバイスステータステーブルのエントリ例を示す図である。FIG. 4 is a diagram illustrating an example of entries in the device status table. 図5は、リクエスト履歴キューのエントリの一例を示す図である。FIG. 5 is a diagram illustrating an example of entries in the request history queue. 図6は、位相シフト量デコードテーブルの一例を示す図である。FIG. 6 is a diagram illustrating an example of the phase shift amount decoding table. 図7は、ライトリクエスト処理時のデバイスリクエスト生成部の動作フローを示すフローチャートである。FIG. 7 is a flowchart showing an operation flow of the device request generation unit at the time of write request processing. 図8は、リードリクエスト処理時のデバイスリクエスト生成部の動作フローを示すフローチャートである。FIG. 8 is a flowchart showing an operation flow of the device request generation unit at the time of read request processing. 図9は、応答処理部の動作フローを示すフローチャートである。FIG. 9 is a flowchart showing an operation flow of the response processing unit. 図10は、リクエスト数統計部の動作フローを示すフローチャートである。FIG. 10 is a flowchart showing an operation flow of the request number statistics unit. 図11は、リードリクエストの頻度が高い場合の効果を示す図である。FIG. 11 is a diagram illustrating an effect when the frequency of read requests is high. 図12は、ライトリクエストの頻度が高い場合の効果を示す図である。FIG. 12 is a diagram illustrating an effect when the frequency of write requests is high. 図13は、デバイス制御プログラムで一部の機能が実現されるデバイス制御部のハードウェア構成を示す図である。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. 図14は、実施例2におけるリードレイテンシ性能改善効果の例を示す図である。FIG. 14 is a diagram illustrating an example of the read latency performance improvement effect in the second embodiment. 図15は、実施例3に係る多重化記憶装置の構成を示す図である。FIG. 15 is a diagram illustrating the configuration of the multiplexed storage device according to the third embodiment. 図16は、多重化制御部の構成を示す図である。FIG. 16 is a diagram illustrating a configuration of the multiplexing control unit. 図17は、リクエストキューのエントリの一例を示す図である。FIG. 17 is a diagram illustrating an example of entries in the request queue. 図18は、デバイスステータステーブルのエントリ例を示す図である。FIG. 18 is a diagram showing an example of entries in the device status table. 図19は、位相シフト量デコードテーブルの一例を示す図である。FIG. 19 is a diagram illustrating an example of a phase shift amount decoding table. 図20Aは、位相差を大きくした場合のリードレイテンシの例を示す図である。FIG. 20A is a diagram illustrating an example of read latency when the phase difference is increased. 図20Bは、位相差を大きくした場合のライトスループットの例を示す図である。FIG. 20B is a diagram illustrating an example of the write throughput when the phase difference is increased. 図21Aは、位相差を小さくした場合のリードレイテンシの例を示す図である。FIG. 21A is a diagram illustrating an example of read latency when the phase difference is reduced. 図21Bは、位相差を小さくした場合のライトスループットの例を示す図である。FIG. 21B is a diagram illustrating an example of the write throughput when the phase difference is reduced.

以下に、本願の開示する多重化記憶装置及び多重化記憶制御方法の実施例を図面に基づいて詳細に説明する。なお、これらの実施例は開示の技術を限定するものではない。   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 storage device 1 includes a device control unit 2 and n storage units 3. The device control unit 2 controls the multiplexed storage device 1, and the storage unit 3 stores n-duplicated data used by the CPU.

デバイス制御部2は、ホストI/F制御部4と、アドレス変換部5と、多重化制御部6と、n個のデバイスアクセス制御部7とを有する。ホストI/F制御部4は、CPUとのインタフェースであり、多重化記憶装置1へのアクセスリクエストをCPUから受付け、アドレス変換部5を経由して多重化制御部6に渡し、アクセスリクエストに対する多重化制御部6からの応答をCPUに返す。   The device control unit 2 includes a host I / F control unit 4, an address conversion unit 5, a multiplexing control unit 6, and n device access control units 7. The host I / F control unit 4 is an interface with the CPU. The host I / F control unit 4 receives an access request to the multiplexed storage device 1 from the CPU, passes it to the multiplexing control unit 6 via the address conversion unit 5, and multiplexes the access request. The response from the control unit 6 is returned to the CPU.

アドレス変換部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 storage unit 3. The device access control unit 7 corresponds to each storage unit 3 and controls access to the storage unit 3.

多重化制御部6は、CPUからのアクセスリクエストに基づいて記憶ユニット3へのアクセスを制御する。多重化制御部6は、アクセスリクエストがライトリクエストである場合に、データを多重化して複数の記憶ユニット3に書込む制御を行う。多重化制御部6は、リクエスト発行・応答処理部61と、リクエスト数統計部62と、位相シフト量調整部63とを有する。   The multiplexing control unit 6 controls access to the storage unit 3 based on an access request from the CPU. The multiplexing control unit 6 performs control to multiplex data and write the data to a plurality of storage units 3 when the access request is a write request. The multiplexing control unit 6 includes a request issuance / response processing unit 61, a request count statistics unit 62, and a phase shift amount adjustment unit 63.

リクエスト発行・応答処理部61は、CPUからのアクセスリクエストに基づいて記憶ユニット3へアクセスリクエストを発行し、記憶ユニット3からの応答を受け取って、CPUへ応答を返す。リクエスト発行・応答処理部61は、ライトリクエストについては位相シフト量に基づいて多重化して記憶ユニット3へライトリクエストを発行する。リクエスト数統計部62は、最近のアクセスリクエストの発行状況を管理し、アクセスリクエストのうちのリードリクエストの数を数える。   The request issuance / response processor 61 issues an access request to the storage unit 3 based on the access request from the CPU, receives a response from the storage unit 3, and returns a response to the CPU. The request issuing / response processing unit 61 multiplexes the write request based on the phase shift amount and issues the write request to the storage unit 3. The request number statistics unit 62 manages the issuance status of recent access requests, and counts the number of read requests among the access requests.

位相シフト量調整部63は、最近のアクセスリクエストの発行状況に基づいて、ライトリクエストを発行する位相シフト量を動的に調整する。位相シフト量調整部63は、リクエスト数統計部62から得られる直近のアクセスリクエストの発行状況を用いて、直近にリードリクエストが多ければ位相シフト量を増加させるよう、また逆にライトリクエストが多ければ位相シフト量を減少させるよう調整する。   The phase shift amount adjustment unit 63 dynamically adjusts the phase shift amount for issuing a write request based on the recent access request issue status. The phase shift amount adjustment unit 63 uses the latest access request issuance status obtained from the request count statistics unit 62 to increase the phase shift amount if there are many recent read requests, and conversely if there are many write requests. Adjust to reduce the amount of phase shift.

図2は、多重化制御部6の構成を示す図である。図2に示すように、リクエスト発行・応答処理部61は、リクエストキュー71と、デバイスステータステーブル72と、デバイスリクエスト生成部73と、応答処理部74とを有する。   FIG. 2 is a diagram illustrating a configuration of the multiplexing control unit 6. As illustrated in FIG. 2, the request issuance / response processing unit 61 includes a request queue 71, a device status table 72, a device request generation unit 73, and a response processing unit 74.

リクエストキュー71は、CPUからのアクセスリクエストを格納するキューである。キューの段数は、記憶ユニット3に対するアクセスレイテンシに基づいて、記憶ユニットアクセスのデータバスを埋めるのに必要なだけの数である。   The request queue 71 is a queue that stores an access request from the CPU. The number of stages of queues is the number necessary to fill the data bus for storage unit access based on the access latency for the storage unit 3.

図3は、リクエストキュー71のエントリの一例を示す図である。図3に示すように、リクエストキュー71のエントリには、validと、リクエスト種と、アドレスと、ライトデータのフィールドが含まれる。validは、エントリが有効であるか否かを示す。リクエスト種は、リクエストの種類を示し、ライト又はリードを示す。アドレスは、アクセス先のアドレスを示す。ライトデータは、リクエスト種がライトの場合に、記憶ユニット3にライトされるデータである。   FIG. 3 is a diagram illustrating an example of entries in the request queue 71. As shown in FIG. 3, the entry of the request queue 71 includes fields for valid, request type, address, and write data. “valid” indicates whether or not the entry is valid. The request type indicates the type of request and indicates write or read. The address indicates an access destination address. The write data is data that is written to the storage unit 3 when the request type is write.

デバイスステータステーブル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 storage unit 3. FIG. 4 is a diagram illustrating an example of entries in the device status table 72. As shown in FIG. 4, the device status table 72 has one entry corresponding to each of the write request and the read request, and each entry includes valid, address, and status of request issuance to each storage unit 3. Is included.

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 storage unit 3 and is “Wait”, “Run”, or “Done”. “Wait” represents a situation in which a request has to be issued but has not been issued. “Run” represents a situation in which the request has been issued and the storage unit 3 is processing the request. “Done” indicates that the request has been issued and the request processing of the storage unit 3 has been completed.

デバイスリクエスト生成部73は、リクエストキュー71にリクエストが存在する場合、リクエストキュー71から先頭のリクエストを取り出し、取り出したリクエストに応じて各記憶ユニット3に対するリクエストを生成して発行する。このとき、デバイスリクエスト生成部73は、ライトリクエストの場合には、各記憶ユニット3に対する発行タイミングをシフトさせながらすべての記憶ユニット3に対してリクエストを発行する。シフトする位相量は、位相シフト量調節部63によって管理される値である。一方、リードリクエスト発行時は、デバイスリクエスト生成部73は、アイドル状態の記憶ユニット3を1つ探し、探した記憶ユニット3に対してリードリクエストを発行する。   When there is a request in the request queue 71, the device request generation unit 73 extracts the first request from the request queue 71, and generates and issues a request for each storage unit 3 in accordance with the extracted request. At this time, in the case of a write request, the device request generator 73 issues a request to all the storage units 3 while shifting the issue timing for each storage unit 3. The phase amount to be shifted is a value managed by the phase shift amount adjusting unit 63. On the other hand, when issuing a read request, the device request generator 73 searches for one idle storage unit 3 and issues a read request to the searched storage unit 3.

応答処理部74は、各記憶ユニット3から応答を受け取り、受け取った応答を処理してCPUに処理結果を返す。   The response processing unit 74 receives a response from each storage unit 3, processes the received response, and returns a processing result to the CPU.

リクエスト数統計部62は、リクエスト履歴キュー75と、リードカウンタ76とを有する。リクエスト履歴キュー75は、直近の複数のアクセスリクエストについて、リードリクエストであったか否かを記憶するキューである。リクエスト履歴キュー75の段数は、位相シフト量の決定に直近のリクエスト履歴をいくつ参照するかによって決まり、例えば16段である。   The request count statistics unit 62 includes a request history queue 75 and a read counter 76. The request history queue 75 is a queue that stores whether or not the most recent access request was a read request. The number of stages in the request history queue 75 is determined by how many recent request histories are referred to in determining the phase shift amount, and is 16 stages, for example.

図5は、リクエスト履歴キュー75のエントリの一例を示す図である。図5に示すように、リクエスト履歴キュー75のエントリには、validと、リクエスト種とがフィールドとして含まれる。validは、エントリが有効であるか否かを示す。リクエスト種は、アクセスリクエストの種類を示し、ライト又はリードを示す。   FIG. 5 is a diagram illustrating an example of entries in the request history queue 75. As shown in FIG. 5, the entry of the request history queue 75 includes valid and request type as fields. “valid” indicates whether or not the entry is valid. The request type indicates the type of access request and indicates write or read.

リードカウンタ76は、直近のリードリクエストの個数をカウントするカウンタである。リードカウンタ76は、リクエスト履歴キュー75の中のリードリクエストの個数をカウントする。   The read counter 76 is a counter that counts the number of the latest read requests. The read counter 76 counts the number of read requests in the request history queue 75.

位相シフト量調整部63は、位相シフト量デコードテーブル77と、位相シフト量決定部78と、位相シフト量記憶部79とを有する。位相シフト量デコードテーブル77は、リードカウンタ76がカウントする直近のリードリクエストの数に応じて位相シフト量を決定するためのテーブルである。   The phase shift amount adjustment unit 63 includes a phase shift amount decoding table 77, a phase shift amount determination unit 78, and a phase shift amount storage unit 79. The phase shift amount decoding table 77 is a table for determining the phase shift amount according to the number of the latest read requests counted by the read counter 76.

図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 counter 76. The phase shift amount is an interval between write requests issued to a plurality of storage units 3 for the same data, and its unit is microseconds (μS).

図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 counter 76 is 1, even if one read comes after the write, the phase shift amount can be immediately responded to that read. Is 60 μS.

また、位相シフトする最大量は、各記憶ユニット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 storage unit 3 becomes completely serial. For example, taking SSD as an example, if the time required for writing is 500 μS, the maximum value of the phase shift amount is up to 500 μS. This is due to the following reason. By setting the phase shift amount to 500 μS, any one of the storage units 3 is expected to be in an idle state. Therefore, the read access following the write access can be assigned to any one of the storage units 3, and the read response performance The improvement effect is always obtained. On the other hand, although increasing the phase shift amount further does not contribute to further improvement of the read response performance, the write throughput is lowered. Therefore, in order to avoid unnecessary performance degradation of the write throughput, the phase shift amount is set to 500 μS at the maximum.

位相シフト量決定部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 counter 76 to determine the phase shift amount, and stores the determined phase shift amount in the phase shift amount storage unit 79. The phase shift amount storage unit 79 stores the phase shift amount determined by the phase shift amount determination unit 78.

次に、ライトリクエスト処理時のデバイスリクエスト生成部73の動作フローについて説明する。図7は、ライトリクエスト処理時のデバイスリクエスト生成部73の動作フローを示すフローチャートである。図7は、リクエストキュー71の先頭のリクエストがライトリクエストである場合のデバイスリクエスト生成部73の動作フローを示す。   Next, an operation flow of the device request generation unit 73 at the time of write request processing will be described. FIG. 7 is a flowchart showing an operation flow of the device request generation unit 73 at the time of write request processing. FIG. 7 shows an operation flow of the device request generator 73 when the first request in the request queue 71 is a write request.

図7に示すように、デバイスリクエスト生成部73は、デバイスステータステーブル72のライトエントリのvalidビットがクリアであるか否かを判定し(ステップS1)、クリアでない場合には、クリアになるまで待つ。   As shown in FIG. 7, the device request generator 73 determines whether or not the valid bit of the write entry in the device status table 72 is clear (step S1). .

一方、クリアである場合には、デバイスリクエスト生成部73は、リクエストキュー71から先頭のリクエストを取り出し(ステップS2)、デバイスステータステーブル72のライトエントリのvalidビットを1にセットする(ステップS3)。そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のライトエントリのリクエスト発行状況フィールドをすべて「Wait」にする(ステップS4)。   On the other hand, if it is clear, the device request generation unit 73 extracts the first request from the request queue 71 (step S2), and sets the valid bit of the write entry of the device status table 72 to 1 (step S3). Then, the device request generation unit 73 sets all the request issue status fields of the write entries in the device status table 72 to “Wait” (step S4).

そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のリクエスト発行状況フィールドを参照する(ステップS5)。そして、デバイスリクエスト生成部73は、ライト未発行でかつアイドル状態の記憶ユニット3が存在するか否かを判定し(ステップS6)、存在しない場合には、ステップS5に戻る。ここで、ライト未発行でかつアイドル状態とは、ライトエントリの発行状況が「Wait」であり、かつリードエントリのリクエスト発行状況が「Run」以外である状態である。   Then, the device request generation unit 73 refers to the request issue status field of the device status table 72 (step S5). Then, the device request generation unit 73 determines whether or not there is an idle storage unit 3 that has not been issued (step S6). If there is no storage unit 3, the process returns to step S5. Here, the write unissued and idle state is a state where the write entry issuance status is “Wait” and the read entry request issuance status is other than “Run”.

一方、ライト未発行でかつアイドル状態の記憶ユニット3が存在する場合には、デバイスリクエスト生成部73は、1つの記憶ユニット3に対してライトリクエストを発行する(ステップS7)。そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のライトエントリのその記憶ユニット3に対応するリクエスト発行状況を「Run」に更新する(ステップS8)。   On the other hand, if there is a storage unit 3 that has not been issued and is idle, the device request generation unit 73 issues a write request to one storage unit 3 (step S7). Then, the device request generation unit 73 updates the request issue status corresponding to the storage unit 3 in the write entry of the device status table 72 to “Run” (step S8).

そして、デバイスリクエスト生成部73は、全ての記憶ユニット3にライトリクエストを発行済か否かを判定し(ステップS9)、全ての記憶ユニット3にライトリクエストを発行済の場合には処理を終了する。ここで、全ての記憶ユニット3にライトリクエストを発行済とは、すべての記憶ユニット3に対応するライトリクエストのリクエスト発行状況が「Run」又は「Done」の状態である。   Then, the device request generation unit 73 determines whether or not a write request has been issued to all the storage units 3 (step S9). If the write request has been issued to all of the storage units 3, the process is terminated. . Here, “write requests have been issued to all storage units 3” means that the request issue status of write requests corresponding to all storage units 3 is “Run” or “Done”.

一方、ライトリクエストを発行していない記憶ユニット3がある場合には、デバイスリクエスト生成部73は、位相シフト量が示す時間だけ待ち(ステップS10)、ステップS5に戻って他の記憶ユニット3にライトリクエストを発行する処理を行う。   On the other hand, if there is a storage unit 3 that has not issued a write request, the device request generator 73 waits for the time indicated by the phase shift amount (step S10), returns to step S5, and writes to the other storage unit 3. Process to issue a request.

このように、デバイスリクエスト生成部73は、1つの記憶ユニット3に対してライトリクエストを発行すると、位相シフト量だけ待つことによって、同一データを複数の記憶ユニット3に書込む際に、ライトリクエストをずらして発行することができる。   As described above, when the device request generation unit 73 issues a write request to one storage unit 3, the device request generation unit 73 waits for the amount of phase shift, thereby writing the write request when writing the same data to the plurality of storage units 3. It can be issued by shifting.

次に、リードリクエスト処理時のデバイスリクエスト生成部73の動作フローについて説明する。図8は、リードリクエスト処理時のデバイスリクエスト生成部73の動作フローを示すフローチャートである。図8は、リクエストキュー71の先頭のリクエストがリードリクエストである場合のデバイスリクエスト生成部73の動作フローを示す。   Next, an operation flow of the device request generation unit 73 at the time of read request processing will be described. FIG. 8 is a flowchart showing an operation flow of the device request generation unit 73 at the time of read request processing. FIG. 8 shows an operation flow of the device request generator 73 when the first request in the request queue 71 is a read request.

図8に示すように、デバイスリクエスト生成部73は、デバイスステータステーブル72のリードエントリのvalidビットがクリアであるか否かを判定し(ステップS11)、クリアでない場合には、クリアになるまで待つ。   As shown in FIG. 8, the device request generation unit 73 determines whether or not the valid bit of the read entry of the device status table 72 is clear (step S11), and if not clear, waits until it is cleared. .

一方、クリアである場合には、デバイスリクエスト生成部73は、リクエストキュー71から先頭のリクエストを取り出し(ステップS12)、デバイスステータステーブル72のリードエントリのvalidビットを1にセットする(ステップS13)。そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のリードエントリのリクエスト発行状況フィールドをすべて「Wait」にする(ステップS14)。   On the other hand, if it is clear, the device request generator 73 retrieves the first request from the request queue 71 (step S12), and sets the valid bit of the read entry of the device status table 72 to 1 (step S13). Then, the device request generation unit 73 sets all the request issue status fields of the read entries of the device status table 72 to “Wait” (step S14).

そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のリクエスト発行状況フィールドを参照する(ステップS15)。そして、デバイスリクエスト生成部73は、アイドル状態の記憶ユニット3が存在するか否かを判定し(ステップ16)、存在しない場合には、ステップS15に戻る。ここで、アイドル状態であるとは、リードエントリのリクエスト発行状況が「Wait」であり、かつライトエントリのリクエスト発行状況が「Run」以外である状態である。   Then, the device request generation unit 73 refers to the request issue status field of the device status table 72 (step S15). Then, the device request generation unit 73 determines whether or not the idle storage unit 3 exists (step 16), and if not, returns to step S15. Here, the idle state is a state in which the request issue status of the read entry is “Wait” and the request issue status of the write entry is other than “Run”.

一方、アイドル状態の記憶ユニット3が存在する場合には、デバイスリクエスト生成部73は、1つの記憶ユニット3に対してリードリクエストを発行する(ステップS17)。そして、デバイスリクエスト生成部73は、デバイスステータステーブル72のリードエントリのその記憶ユニット3に対応するリクエスト発行状況を「Run」に更新する(ステップS18)。   On the other hand, when there is an idle storage unit 3, the device request generator 73 issues a read request to one storage unit 3 (step S17). Then, the device request generation unit 73 updates the request issue status corresponding to the storage unit 3 in the read entry of the device status table 72 to “Run” (step S18).

このように、デバイスリクエスト生成部73は、デバイスステータステーブル72に基づいてアイドル状態の記憶ユニット3を特定することによって、リードリクエストを発行することができる。   As described above, the device request generation unit 73 can issue a read request by specifying the idle storage unit 3 based on the device status table 72.

次に、応答処理部74の動作フローについて説明する。図9は、応答処理部74の動作フローを示すフローチャートである。図9に示すように、応答処理部74は、記憶ユニットiからの応答を受信すると、ライトリクエストに対する応答であるか否かを判定する(ステップS21)。ここで、iは0〜n−1である。Next, the operation flow of the response processing unit 74 will be described. FIG. 9 is a flowchart showing an operation flow of the response processing unit 74. As shown in FIG. 9, when the response processing unit 74 receives a response from the storage unit i , the response processing unit 74 determines whether the response is a response to the write request (step S21). Here, i is 0 to n-1.

その結果、ライトリクエストに対する応答である場合には、応答処理部74は、デバイスステータステーブル72のライトエントリの記憶ユニットiに対応するリクエスト発行状況を「Done」に更新する(ステップS22)。そして、応答処理部74は、ライトエントリについて、全記憶ユニット3のリクエスト発行状況が「Done」であるか否かを判定し(ステップS23)、リクエスト発行状況が「Done」でない記憶ユニット3がある場合には、処理を終了する。As a result, if it is a response to the write request, the response processing unit 74 updates the request issuance status corresponding to the storage unit i of the write entry in the device status table 72 to “Done” (step S22). Then, the response processing unit 74 determines whether or not the request issue status of all the storage units 3 is “Done” for the write entry (step S23), and there is a storage unit 3 whose request issue status is not “Done”. If so, the process ends.

一方、全記憶ユニット3のリクエスト発行状況が「Done」である場合には、応答処理部74は、CPUに対してライト応答を送信し(ステップS24)、ライトエントリのvalidをクリアする(ステップS25)。   On the other hand, when the request issue status of all the storage units 3 is “Done”, the response processing unit 74 transmits a write response to the CPU (step S24) and clears the valid of the write entry (step S25). ).

また、ライトリクエストに対する応答でない場合には、リードリクエストに対する応答なので、応答処理部74は、デバイスステータステーブル72のリードエントリの記憶ユニットiに対応するリクエスト発行状況を「Done」に更新する(ステップS26)。そして、応答処理部74は、CPUに対してリード応答を送信し(ステップS27)、リードエントリのvalidをクリアする(ステップS28)。If the response is not a response to the write request, the response processing unit 74 updates the request issuance status corresponding to the storage unit i of the read entry in the device status table 72 to “Done” (step S26). ). Then, the response processing unit 74 transmits a read response to the CPU (step S27), and clears the valid value of the read entry (step S28).

このように、応答処理部74は、ライトリクエストに対する応答に対して、全ての記憶ユニット3からの応答が来るまでCPUに応答しないので、CPUは、応答処理部74からの応答によりデータの多重書込みの完了を確認することができる。   As described above, the response processing unit 74 does not respond to the CPU until responses from all the storage units 3 are received in response to the write request. Therefore, the CPU performs multiple data writing according to the response from the response processing unit 74. Can be confirmed.

次に、リクエスト数統計部62の動作フローについて説明する。図10は、リクエスト数統計部62の動作フローを示すフローチャートである。なお、リクエスト数統計部62は、リクエストキュー71から取り出されたリクエストを受信すると動作する。   Next, the operation flow of the request number statistics unit 62 will be described. FIG. 10 is a flowchart showing an operation flow of the request number statistics unit 62. The request count statistic unit 62 operates when a request fetched from the request queue 71 is received.

図10に示すように、リクエスト数統計部62は、受信したリクエストがリードリクエストであるか否かを判定し(ステップS31)、リードリクエストである場合には、リードカウンタ76を加算する(ステップS32)。   As shown in FIG. 10, the request number statistics unit 62 determines whether or not the received request is a read request (step S31). If the request is a read request, the read counter 76 is incremented (step S32). ).

そして、リクエスト数統計部62は、リクエスト履歴キュー75から最古のリクエストを取り出し(ステップS33)、取り出したリクエストがリードリクエストであるか否かを判定する(ステップS34)。その結果、リードリクエストである場合には、リクエスト数統計部62は、リードカウンタ76を減算する(ステップS35)。   Then, the request number statistics unit 62 extracts the oldest request from the request history queue 75 (step S33), and determines whether or not the extracted request is a read request (step S34). As a result, if the request is a read request, the request count statistic unit 62 subtracts the read counter 76 (step S35).

そして、リクエスト数統計部62は、リクエスト履歴キュー75に、新規に受信したリクエストを追加する(ステップS36)。   Then, the request count statistic unit 62 adds the newly received request to the request history queue 75 (step S36).

このように、リクエスト数統計部62が、リードカウンタ76を用いて直近の所定の数のリクエストのうちリードリクエストの数を数えることによって、多重化制御部6は、直近のリクエストの状況を把握することができる。なお、図10で示す動作は、リクエスト履歴キュー75がフルエントリになった後の動作を示し、フルエントリになるまでは、ステップS33〜ステップS35の処理は行われない。   As described above, the request count statistics unit 62 uses the read counter 76 to count the number of read requests among the most recent predetermined number of requests, so that the multiplexing control unit 6 grasps the status of the most recent request. be able to. The operation shown in FIG. 10 shows the operation after the request history queue 75 becomes full entry, and the processing from step S33 to step S35 is not performed until the request history queue 75 becomes full entry.

上述してきたように、実施例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 number statistics unit 62 counts the number of read requests among the most recent predetermined number of requests, and the phase shift amount determination unit 78 determines the phase based on the phase shift amount decoding table 77 and the number of the latest read requests. Determine the shift amount. Then, the device request generation unit 73 issues a write request to the plurality of storage units 3 to which the same data is written, shifted by the phase shift amount. Therefore, the multiplexing control unit 6 can dynamically change the phase shift amount based on the frequency of the most recent read request, and improves the latency for the read request while preventing the throughput performance for the write request from being lowered. be able to.

図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 storage units 3 is two. As shown in FIG. 11, when there are many recent read requests, the multiplexing control unit 6 increases the phase difference of the write start timing (1). Therefore, since the period during which one storage unit 3 is idle is extended, the multiplexed storage device 1 can immediately respond when a read request comes immediately after the write request (2).

図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 storage units 3 is two. As shown in FIG. 12, when there are many write requests most recently, the multiplexing control unit 6 decreases the phase difference of the write start timing (1). Therefore, since the data is written in parallel in both storage units 3, the multiplexed storage device 1 can improve the write throughput (2).

なお、実施例1では、デバイス制御部2について説明したが、デバイス制御部2が有する構成の一部をソフトウェアによって実現することで、同様の機能を有するデバイス制御プログラムを得ることができる。そこで、デバイス制御プログラムで一部の機能が実現されるデバイス制御部のハードウェア構成について説明する。   Although the device control unit 2 has been described in the first embodiment, a device control program having the same function can be obtained by realizing a part of the configuration of the device control unit 2 with software. Therefore, a hardware configuration of a device control unit that realizes a part of functions by the device control program will be described.

図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 device control unit 20 includes a main memory 21, a controller 22, and a flash memory 26.

主記憶21は、プログラムやプログラムの実行途中結果などを記憶するメモリである。主記憶21は、図2に示したリクエストキュー71、デバイスステータステーブル72、リクエスト履歴キュー75、リードカウンタ76、位相シフト量デコードテーブル77及び位相シフト量記憶部79をメモリ内に実現する。   The main memory 21 is a memory for storing a program and a program execution result. The main memory 21 implements the request queue 71, the device status table 72, the request history queue 75, the read counter 76, the phase shift amount decoding table 77, and the phase shift amount storage unit 79 shown in FIG.

コントローラ22は、CPU23と、アドレス変換部24と、デバイスアクセス制御部25とを有する。CPU23は、主記憶21からプログラムを読み出して実行する中央処理装置である。アドレス変換部24は、CPU23で用いられる論理アドレスを記憶ユニット3で用いられる物理アドレスに変換する。デバイスアクセス制御部25は、各記憶ユニット3に対応し、記憶ユニット3へのアクセスを制御する。   The controller 22 includes a CPU 23, an address conversion unit 24, and a device access control unit 25. The CPU 23 is a central processing unit that reads a program from the main memory 21 and executes it. The address conversion unit 24 converts a logical address used by the CPU 23 into a physical address used by the storage unit 3. The device access control unit 25 corresponds to each storage unit 3 and controls access to the storage unit 3.

フラッシュメモリ26は、不揮発性のメモリであり、デバイス制御プログラム27を記憶する。デバイス制御プログラム27は、フラッシュメモリ26から主記憶21に読み出されてCPU23によって実行されることで、図2に示したリクエスト発行・応答部61、リクエスト数統計部62及び位相シフト量調整部63の機能を実現する。   The flash memory 26 is a non-volatile memory and stores a device control program 27. The device control program 27 is read from the flash memory 26 to the main memory 21 and executed by the CPU 23, whereby the request issue / response unit 61, the request number statistics unit 62, and the phase shift amount adjustment unit 63 shown in FIG. Realize the function.

このように、デバイス制御プログラム27をCPU23で実行することによって、実施例1に係る多重化制御機能をソフトウェアで実現することができる。   Thus, by executing the device control program 27 by the CPU 23, the multiplexing control function according to the first embodiment can be realized by software.

ところで、実施例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 storage unit 3 is in an idle state. The device control unit erases unnecessary data for all the storage units. However, the device control unit does not start for all the storage units at the same time, but can start them at intervals for each storage unit. Therefore, in a third embodiment, a multiplexed storage device that automatically adjusts the phase shift amount in garbage collection will be described.

まず、実施例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 storage device 1a includes a device control unit 2a and n storage units 3a. The device control unit 2a controls the multiplexed storage device 1a, and the storage unit 3a stores the data used by the CPU of the information processing device in n-layers. The storage unit 3a is an SSD. The device control unit 2 a includes a host I / F control unit 4, an address conversion unit 5, a multiplexing control unit 6 a, n device access control units 7, and an SSD control unit 8.

多重化制御部6aは、データを多重化して複数の記憶ユニット3aに書込む制御を行う。多重化制御部6aは、リクエスト発行・応答処理部61aと、リクエスト数統計部62aと、位相シフト量調整部63aとを有する。リクエスト発行・応答処理部61aとリクエスト数統計部62aは、CPUからのアクセスリクエストに加えて、SSD制御部8からのGC(ガベージコレクション)リクエストの処理も行う。SSD制御部8は、ガベージコレクション制御部80を有し、ガベージコレクション制御部80は、GCを行うか否かを判定し、GCを行うと判定した場合にGCリクエストを発行する。   The multiplexing control unit 6a performs control to multiplex data and write it to the plurality of storage units 3a. The multiplexing control unit 6a includes a request issuance / response processing unit 61a, a request count statistics unit 62a, and a phase shift amount adjustment unit 63a. The request issuance / response processing unit 61a and the request number statistics unit 62a also process a GC (garbage collection) request from the SSD control unit 8 in addition to an access request from the CPU. The SSD control unit 8 includes a garbage collection control unit 80. The garbage collection control unit 80 determines whether or not to perform GC, and issues a GC request when it is determined to perform GC.

図16は、多重化制御部6aの構成を示す図である。図16に示すように、リクエスト発行・応答処理部61aは、リクエストキュー71aと、デバイスステータステーブル72aと、デバイスリクエスト生成部73aと、応答処理部74aとを有する。   FIG. 16 is a diagram illustrating a configuration of the multiplexing control unit 6a. As illustrated in FIG. 16, the request issuance / response processing unit 61a includes a request queue 71a, a device status table 72a, a device request generation unit 73a, and a response processing unit 74a.

リクエストキュー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 collection control unit 80. FIG. 17 is a diagram illustrating an example of entries in the request queue 71a. As shown in FIG. 17, the entry of the request queue 71a includes fields of valid, request type, address, and write data, and the request type indicates write, read, or GC.

デバイスステータステーブル72aは、各記憶ユニット3aに対するリクエスト発行状況を管理するテーブルである。図18は、デバイスステータステーブル72aのエントリ例を示す図である。図18に示すように、デバイスステータステーブル72aは、ライトリクエスト、リードリクエスト及びGCリクエストに対応するエントリをそれぞれ一つずつ有する。   The device status table 72a is a table for managing the request issue status for each storage unit 3a. FIG. 18 shows an example of entries in the device status table 72a. As shown in FIG. 18, the device status table 72a has one entry each corresponding to a write request, a read request, and a GC request.

デバイスリクエスト生成部73aは、デバイスリクエスト生成部73の処理に加えて、リクエストキュー71aから取り出したリクエストがGCリクエストの場合には、各記憶ユニット3aに対して発行タイミングをシフトさせながらGCリクエストを発行する。応答処理部74aは、応答処理部74の処理に加えて、GCリクエストに対する応答をガベージコレクション制御部80に返す。   In addition to the processing of the device request generator 73, the device request generator 73a issues a GC request while shifting the issue timing to each storage unit 3a when the request taken out from the request queue 71a is a GC request. To do. In addition to the processing of the response processing unit 74, the response processing unit 74 a returns a response to the GC request to the garbage collection control unit 80.

リクエスト数統計部62aは、リクエスト履歴キュー75aと、リードカウンタ76とを有する。リクエスト履歴キュー75aは、リクエスト履歴キュー75と同様の情報を記憶するが、リクエストの種類としてライト、リード又はGCを記憶する。   The request count statistics unit 62 a includes a request history queue 75 a and a read counter 76. The request history queue 75a stores the same information as the request history queue 75, but stores write, read, or GC as the request type.

位相シフト量調整部63aは、位相シフト量デコードテーブル77aと、位相シフト量決定部78aと、ライト位相シフト量記憶部79aと、GC位相シフト量記憶部79bとを有する。位相シフト量デコードテーブル77aは、リクエスト数統計部62がカウントする直近のリードカウンタ76の数に応じて、ライト位相シフト量及びGC位相シフト量を決定するためのテーブルである。ここで、ライト位相シフト量は、ライトリクエストに対する位相シフト量であり、GC位相シフト量は、GCリクエストに対する位相シフト量である。   The phase shift amount adjustment unit 63a includes a phase shift amount decoding table 77a, a phase shift amount determination unit 78a, a write phase shift amount storage unit 79a, and a GC phase shift amount storage unit 79b. The phase shift amount decoding table 77a is a table for determining the write phase shift amount and the GC phase shift amount according to the number of the latest read counters 76 counted by the request number statistics unit 62. Here, the write phase shift amount is the phase shift amount for the write request, and the GC phase shift amount is the phase shift amount for the GC request.

図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 amount determination unit 78a searches the phase shift amount decode table 77a from the value of the read counter 76 to determine the write phase shift amount and the GC phase shift amount. The write phase shift amount storage unit 79a stores the write phase shift amount determined by the phase shift amount determination unit 78a, and the GC phase shift amount storage unit 79b stores the GC phase shift amount determined by the phase shift amount determination unit 78a. Remember.

上述してきたように、実施例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 amount determination unit 78a determines the GC phase shift amount based on the value of the read counter 76 and the phase shift amount decode table 77a, and the determined GC phase shift amount is set to the GC phase. Stored in the shift amount storage unit 79b. The device request generation unit 73a issues a GC request while shifting the issue timing to each storage unit 3a based on the GC phase shift amount stored in the GC phase shift amount storage unit 79b. Therefore, the multiplexing control unit 6 can dynamically change the phase shift amount based on the frequency of the most recent read request with respect to the GC request, and while preventing a decrease in throughput performance for the GC request, The latency with respect to can be improved.

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 Multiplex storage device 2, 2a, 20 Device control unit 3, 3a Storage unit 4 Host I / F control unit 5, 24 Address conversion unit 6, 6a Multiplex control unit 7, 25 Device access control unit 8 SSD control Unit 21 Main memory 22 Controller 23 CPU
26 Flash memory 27 Device control program 61, 61a Request issuance / response processing unit 62, 62a Request number statistics unit 63, 63a Phase shift amount adjustment unit 71, 71a Request queue 72, 72a Device status table 73, 73a Device request generation unit 74 , 74a Response processing unit 75, 75a Request history queue 76 Read counter 77, 77a Phase shift amount decoding table 78, 78a Phase shift amount determination unit 79 Phase shift amount storage unit 79a Write phase shift amount storage unit 79b GC phase shift amount storage unit 80 Garbage collection controller

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.
JP2015533371A 2014-05-19 2014-05-19 Multiplexed storage device and multiplexed storage control method Active JP5958656B2 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7159069B2 (en) * 2019-01-29 2022-10-24 キオクシア株式会社 Memory system and control method

Citations (5)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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