[go: up one dir, main page]

WO2016042644A1 - Control device for controlling writing of data to memory, program, and storage device - Google Patents

Control device for controlling writing of data to memory, program, and storage device Download PDF

Info

Publication number
WO2016042644A1
WO2016042644A1 PCT/JP2014/074733 JP2014074733W WO2016042644A1 WO 2016042644 A1 WO2016042644 A1 WO 2016042644A1 JP 2014074733 W JP2014074733 W JP 2014074733W WO 2016042644 A1 WO2016042644 A1 WO 2016042644A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory modules
memory
write
written
Prior art date
Application number
PCT/JP2014/074733
Other languages
French (fr)
Japanese (ja)
Inventor
了士 土山
Original Assignee
株式会社フィックスターズ
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 株式会社フィックスターズ filed Critical 株式会社フィックスターズ
Priority to PCT/JP2014/074733 priority Critical patent/WO2016042644A1/en
Publication of WO2016042644A1 publication Critical patent/WO2016042644A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Definitions

  • FIG. 2 is a diagram illustrating a configuration unit of the control device 121 that operates when the control device 121 instructs the memory module 122 to write data in response to a data write request from the host device 11.
  • the control device 121 When the control device 121 is operated by a general-purpose processor, the processor functions as a device including the components illustrated in FIG. 2 by executing processing according to a program.
  • the control device 121 and the memory module 122 repeat the processing of the above-described steps S108 to S110 for each simultaneous write cluster group to which the write target data is allocated (step S111; No).
  • steps S108 to S110 are completed for all the simultaneous writing cluster groups to which the data to be written is allocated (step S111; Yes)
  • the storage device 12 completes a series of data writing processes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

In accordance with a data write request from a host device, a storage device writes data in parallel to a plurality of memory modules possessed by the storage device. The storage device divides the data to be written into blocks having a data size that is larger than a sector, which is the minimum access unit in the host device, cyclically allocates the data to the plurality of memory modules, and writes the allocated data in parallel to the plurality of memory modules, which are the allocation destination. As a result, latency due to overhead, in reading and writing of data by memory interleaving, is reduced.

Description

メモリへのデータの書き込みを制御する制御装置、プログラム、および記憶装置CONTROL DEVICE, PROGRAM, AND STORAGE DEVICE FOR CONTROLLING DATA WRITE TO MEMORY
 本発明は、メモリへのデータの書き込み制御に関する。 The present invention relates to control of writing data to a memory.
 複数のメモリバンクに対しデータの読み書きを並行して行うことでデータの読み書きを高速化するメモリインタリーブと呼ばれる技術がある。 There is a technology called memory interleaving that speeds up data reading and writing by reading and writing data to multiple memory banks in parallel.
 メモリインタリーブによれば、同時にデータを読み書きするデータ数に応じて、データの読み書きに伴う電力、発熱量等が変化する。従って、メモリインタリーブにおいて同時に読み書きされるデータの適正数は、記憶装置に電力を供給する電源の容量や記憶装置が許容可能な温度等の諸条件によって異なる。 According to memory interleaving, the power, the amount of heat, etc. that accompany data reading / writing change according to the number of data that are simultaneously reading / writing data. Therefore, the appropriate number of data simultaneously read and written in the memory interleave varies depending on various conditions such as the capacity of the power source that supplies power to the storage device and the temperature that the storage device can tolerate.
 メモリインタリーブにおいて、同時に読み書きするデータの数を適正化する技術がある。例えば、特許文献1には、データの書き込み時と読み出し時で異なるインタリーブ比(同時に読み書きするデータの数をxとする場合、x:1で表される比)を用いる技術が記載されている。 There is a technology that optimizes the number of data to be read and written at the same time in memory interleaving. For example, Patent Document 1 describes a technique that uses different interleaving ratios at the time of data writing and reading (a ratio represented by x: 1 when x is the number of data to be read and written simultaneously).
特開2012-43451号公報JP 2012-43451 A
 メモリインタリーブにおいては、一般的にデータの読み書きの単位を小さくし、並行して読み書きを行うデータの数(チャンネル数)を多くすることで、データの読み書きを高速化することができる。 In memory interleaving, reading and writing data can be speeded up by generally reducing the unit of reading and writing data and increasing the number of data to be read and written (number of channels) in parallel.
 しかしながら、データの読み書きに伴うオーバーヘッドに対し一度に読み書きするデータの単位が小さすぎると、メモリインタリーブによる高速化の効果がオーバーヘッドにより相殺され、むしろレイテンシが増大する。また、メモリモジュールの種別によっては、一度に読み書きするデータの単位を小さくすると、読み書きの回数の増加によりメモリモジュールの寿命が短くなる、という不都合がもたらされる場合もある。なお、データの読み書きに伴うオーバーヘッドが比較的大きいメモリモジュールとしては、メモリコントローラを備え、当該メモリコントローラによるウェアレベリングやメモリモジュール内のメモリインタリーブ等を行うフラッシュメモリ等が例として挙げられる。 However, if the unit of data to be read and written at a time is too small compared to the overhead associated with data reading and writing, the effect of speeding up by memory interleaving is offset by the overhead, and rather the latency increases. Also, depending on the type of memory module, if the unit of data to be read / written at a time is reduced, there may be a disadvantage that the life of the memory module is shortened due to an increase in the number of times of reading / writing. An example of a memory module that has a relatively large overhead associated with reading and writing data is a flash memory that includes a memory controller and performs wear leveling by the memory controller, memory interleaving in the memory module, and the like.
 上記の事情に鑑み、本発明は、メモリインタリーブによるデータの読み書きにおいて、オーバーヘッドによるレイテンシを低減するための手段を提供することを目的とする。 In view of the above circumstances, an object of the present invention is to provide means for reducing latency due to overhead in reading and writing data by memory interleaving.
 上述した課題を解決するために、本発明は、i個(iは2≦iである自然数)のメモリモジュールの中の複数のメモリモジュールに対し並行してデータの読み書きを指示可能な制御装置であって、書き込み対象のデータを取得する取得手段と、前記書き込み対象のデータを一時的に記憶する記憶手段と、データを所定のデータサイズであるm毎に分割して得られるデータ単位をブロックとするとき、前記記憶手段に一時的に記憶されている書き込み対象のデータを、互いに連続する2つのブロックが異なるメモリモジュールに割り振られるように、前記i個のメモリモジュールの中のj個(jは2≦j≦iである自然数)のメモリモジュールに割り振り、当該割り振ったデータの書き込みを割り振り先のメモリモジュールに対し1度に指示する処理をj個のメモリモジュールに関し並行して行う指示手段とを備える制御装置を第1の実施態様として提案する。 In order to solve the above-described problems, the present invention is a control device capable of instructing data reading / writing to a plurality of memory modules in i (i is a natural number satisfying 2 ≦ i) in parallel. An acquisition means for acquiring data to be written, a storage means for temporarily storing the data to be written, and a block of a data unit obtained by dividing the data into m of a predetermined data size When the data to be written temporarily stored in the storage means is allocated to j (where j is the number of the i memory modules) so that two consecutive blocks are allocated to different memory modules. 2 ≦ j ≦ i is a natural number) memory module, and writing of the allocated data is instructed to the allocation destination memory module at a time That handles to propose a control device comprising an instruction unit for performing in parallel relates the j memory module as a first embodiment.
 また、本発明は、上記の第1の実施態様において、前記取得手段は、前記書き込み対象のデータの論理アドレスを取得し、前記指示手段は、前記取得手段により取得された論理アドレス、前記ブロックのデータサイズであるm、前記指示手段が並行してデータの書き込みを指示するメモリモジュールの個数であるj、メモリモジュールの総数であるiに基づき、所定の規則に従い、前記書き込み対象のデータの割り振り先のメモリモジュールと、当該割り振り先のメモリモジュールにおけるデータの書き込み先のアドレスを特定し、前記書き込み対象のデータの割り振り先のメモリモジュールに対し、特定した書き込み先のアドレスにおけるデータの書き込みを指示する、という構成を第2の実施態様として提案する。 According to the present invention, in the first embodiment, the acquisition unit acquires a logical address of the data to be written, the instruction unit acquires the logical address acquired by the acquisition unit, the block address An allocation destination of the data to be written according to a predetermined rule based on m that is a data size, j that is the number of memory modules that the instruction means instructs to write data in parallel, and i that is the total number of memory modules The address of the write destination of the data in the memory module and the memory module of the allocation destination, and instructing the memory module of the allocation destination of the data to be written to write data at the address of the specified write destination. This configuration is proposed as a second embodiment.
 また、本発明は、上記の第1の実施形態において、前記指示手段は、k個(kは2≦kである自然数)のブロックの集まりをクラスタとするとき、前記記憶手段に一時的に記憶されている書き込み対象のデータを前記i個のメモリジュールにクラスタ単位で割り振り、前記i個のメモリモジュールの中から所定の規則に従い選択されたj個(jは2≦j<iである自然数)のメモリモジュールに対し割り振ったデータの書き込みを並行して指示する、という構成を第3の実施態様として提案する。 According to the present invention, in the first embodiment, when the instruction unit sets a cluster of k blocks (k is a natural number satisfying 2 ≦ k) as a cluster, the instruction unit temporarily stores the block in the storage unit. Data to be written is allocated to the i memory modules in cluster units, and j pieces are selected from the i memory modules according to a predetermined rule (j is a natural number satisfying 2 ≦ j <i). As a third embodiment, a configuration in which writing of allocated data to the memory modules is instructed in parallel is proposed.
 前記取得手段は、前記書き込み対象のデータの論理アドレスを取得し、前記指示手段は、前記取得手段により取得された論理アドレス、前記ブロックのデータサイズであるm、前記指示手段が並行してデータの書き込みを指示するメモリモジュールの個数であるj、前記クラスタに含まれるブロックの個数であるk、メモリモジュールの総数であるiに基づき、所定の規則に従い、前記書き込み対象のデータの割り振り先のメモリモジュールと、当該割り振り先のメモリモジュールにおけるデータの書き込み先のアドレスを特定し、前記書き込み対象のデータの割り振り先のメモリモジュールに対し、特定した書き込み先のアドレスにおけるデータの書き込みを指示する、という構成を第4の実施態様として提案する。 The acquisition unit acquires a logical address of the data to be written, the instruction unit includes a logical address acquired by the acquisition unit, m which is the data size of the block, and the instruction unit stores data in parallel. Based on j which is the number of memory modules instructing writing, k which is the number of blocks included in the cluster, and i which is the total number of memory modules, a memory module to which the data to be written is allocated according to a predetermined rule And specifying the address of the data write destination in the memory module of the allocation destination, and instructing the memory module of the allocation destination of the data to be written to write data at the specified address of the write destination. This is proposed as a fourth embodiment.
 また、本発明は、上記の第1乃至第4のいずれかの実施形態において、前記i個のメモリモジュールの各々はh個(hは2≦h<iである自然数)のデータバスのいずれかに接続されており、前記指示手段は、同じデータバスに接続されている2以上のメモリモジュールが含まれないように選択されたj個(jは2≦j≦hである自然数)のメモリモジュールに対し、割り振ったデータの書き込みを並行して指示する、という構成を第5の実施態様として提案する。 According to the present invention, in any of the first to fourth embodiments, each of the i memory modules is any one of h data buses (h is a natural number satisfying 2 ≦ h <i). And the instruction means is selected so that two or more memory modules connected to the same data bus are not included (j is a natural number satisfying 2 ≦ j ≦ h). On the other hand, a configuration in which writing of allocated data is instructed in parallel is proposed as a fifth embodiment.
 また、本発明は、上記の第5の実施態様において、前記h個のデータバスの各々にはn個(nは2≦である自然数)のメモリモジュールが接続されており、前記指示手段は、前記指示手段が並行してデータの書き込みを指示するメモリモジュールの個数であるj、1つのデータバスに接続されているメモリモジュールの個数であるnに基づき、所定の規則に従い、並行してデータの書き込みを指示するj個のメモリモジュールを選択する、という構成を第6の実施態様として提案する。 In the fifth embodiment of the present invention, n memory modules are connected to each of the h data buses (n is a natural number satisfying 2 ≦), and the instruction means includes: Based on j, which is the number of memory modules instructed to write data in parallel by the instruction means, and n, which is the number of memory modules connected to one data bus, according to a predetermined rule, A configuration of selecting j memory modules instructing writing is proposed as a sixth embodiment.
 また、本発明は、i個(iは2≦iである自然数)のメモリモジュールの中の複数のメモリモジュールに対し並行してデータの読み書きを指示可能なプロセッサに、書き込み対象のデータを取得する処理と、前記書き込み対象のデータを記憶手段に一時的に記憶させる処理と、データを所定のデータサイズであるm毎に分割して得られるデータ単位をブロックとするとき、前記記憶手段に一時的に記憶されている書き込み対象のデータを、互いに連続する2つのブロックが異なるメモリモジュールに割り振られるように、前記i個のメモリモジュールの中のj個(jは2≦j≦iである自然数)のメモリモジュールに割り振り、当該割り振ったデータの書き込みを割り振り先のメモリモジュールに対し1度に指示する処理をj個のメモリモジュールに関し並行して行う処理とを実行させるプログラムを第7の実施態様として提案する。 Further, the present invention acquires data to be written to a processor capable of instructing data read / write in parallel to a plurality of memory modules of i (i is a natural number satisfying 2 ≦ i). Processing, processing for temporarily storing the data to be written in the storage means, and when the data unit obtained by dividing the data into m of a predetermined data size is a block, the storage means temporarily Of the i memory modules so that two consecutive blocks are allocated to different memory modules (j is a natural number satisfying 2 ≦ j ≦ i). Process for instructing the allocated memory module to write the allocated data at a time to j memory modules. We propose a program for executing the processing performed in parallel relates Yuru a seventh embodiment.
 また、本発明は、i個(iは2≦iである自然数)のメモリモジュールと、前記i個のメモリモジュールの中の複数のメモリモジュールに対し並行してデータの読み書きを指示可能な制御装置とを備え、前記制御装置は、書き込み対象のデータを取得する取得手段と、前記書き込み対象のデータを一時的に記憶する記憶手段と、データを所定のデータサイズであるm毎に分割して得られるデータ単位をブロックとするとき、前記記憶手段に一時的に記憶されている書き込み対象のデータを、互いに連続する2つのブロックが異なるメモリモジュールに割り振られるように、前記i個のメモリモジュールの中のj個(jは2≦j≦iである自然数)のメモリモジュールに割り振り、当該割り振ったデータの書き込みを割り振り先のメモリモジュールに対し1度に指示する処理をj個のメモリモジュールに関し並行して行う指示手段とを備える記憶装置を第8の実施態様として提案する。 In addition, the present invention provides a control device capable of instructing to read / write data in parallel to i memory modules (i is a natural number satisfying 2 ≦ i) and a plurality of memory modules in the i memory modules. The control device includes: an acquisition unit that acquires data to be written; a storage unit that temporarily stores the data to be written; and a data obtained by dividing the data every m of a predetermined data size. When the data unit to be processed is a block, the write target data temporarily stored in the storage means is stored in the i memory modules so that two consecutive blocks are allocated to different memory modules. Are allocated to j memory modules (j is a natural number satisfying 2 ≦ j ≦ i), and writing of the allocated data is allocated to the memory module of the allocation destination. Suggest a process to instruct the 1 ° with respect Lumpur memory device including an instruction unit configured to perform in parallel relates the j memory module as the eighth embodiment.
 本発明によれば、書き込み対象のデータがブロック単位で複数のメモリモジュールの各々にばらばらに書き込まれる。従って、連続するデータの読み出しにおいて、複数のメモリモジュールから並行してデータの読み出しが行われるため、高速なデータの読み出しが行われる。各々のメモリモジュールに対し書き込まれるデータのサイズがブロックのサイズを超える場合であっても、1回の書き込み指示によりデータの書き込みが行われる。そのため、データの書き込み処理に伴うオーバーヘッドに起因するレイテンシを低減することができる。 According to the present invention, data to be written is written to each of the plurality of memory modules in units of blocks. Accordingly, in continuous data reading, data is read from a plurality of memory modules in parallel, so that high-speed data reading is performed. Even when the size of data written to each memory module exceeds the size of the block, data is written by one write instruction. Therefore, latency due to overhead associated with data writing processing can be reduced.
第1実施形態にかかるデータ記憶システムの構成を示した図。The figure which showed the structure of the data storage system concerning 1st Embodiment. 第1実施形態にかかる制御装置(データ書き込み時)の構成部を示した図。The figure which showed the structure part of the control apparatus (at the time of data writing) concerning 1st Embodiment. 第1実施形態にかかる制御装置(データ読み出し時)の構成部を示した図。The figure which showed the structure part of the control apparatus (at the time of data reading) concerning 1st Embodiment. 第1実施形態にかかるホスト装置において管理される論理アドレスと記憶装置において管理されるブロックの対応関係を示した図。The figure which showed the correspondence of the logical address managed in the host device concerning 1st Embodiment, and the block managed in a memory | storage device. 第1実施形態にかかるメモリモジュールにおいて読み書きされるクラスタの位置を示した図。The figure which showed the position of the cluster read / written in the memory module concerning 1st Embodiment. 第1実施形態にかかるメモリモジュールにおいて読み書きされるクラスタに含まれるブロックとその順序を示した図。The figure which showed the block contained in the cluster read / written in the memory module concerning 1st Embodiment, and its order. 第1実施形態にかかる記憶装置の処理(データ書き込み時)のフローを示した図。The figure which showed the flow of the process (at the time of data writing) of the memory | storage device concerning 1st Embodiment. 第1実施形態にかかる記憶装置の処理において用いられる情報を示した図。The figure which showed the information used in the process of the memory | storage device concerning 1st Embodiment. 第1実施形態にかかる記憶装置の処理(データ読み出し時)のフローを示した図。The figure which showed the flow of the process (at the time of data reading) of the memory | storage device concerning 1st Embodiment. 第2実施形態にかかるデータ記憶システムの構成を示した図。The figure which showed the structure of the data storage system concerning 2nd Embodiment. 第2実施形態にかかるメモリモジュールにおいて読み書きされるクラスタの位置を示した図。The figure which showed the position of the cluster read / written in the memory module concerning 2nd Embodiment. 第2実施形態にかかるメモリモジュールにおいて読み書きされるクラスタの位置を示した図。The figure which showed the position of the cluster read / written in the memory module concerning 2nd Embodiment. 第2実施形態にかかるメモリモジュールにおいて読み書きされるクラスタに含まれるブロックとその順序を示した図。The figure which showed the block contained in the cluster read / written in the memory module concerning 2nd Embodiment, and the order. 第2実施形態にかかるメモリモジュールにおいて読み書きされるクラスタに含まれるブロックとその順序を示した図。The figure which showed the block contained in the cluster read / written in the memory module concerning 2nd Embodiment, and the order. 第2実施形態にかかる記憶装置の処理において用いられる情報を示した図。The figure which showed the information used in the process of the memory | storage device concerning 2nd Embodiment. 第2実施形態にかかる記憶装置の処理において用いられる情報を示した図。The figure which showed the information used in the process of the memory | storage device concerning 2nd Embodiment. 一変形例にかかるメモリモジュールにおいて読み書きされるクラスタに含まれるブロックとその順序を示した図。The figure which showed the block contained in the cluster read / written in the memory module concerning one modification, and its order.
[第1実施形態]
 以下に本発明の一実施形態にかかるデータ記憶システム1を説明する。図1は、データ記憶システム1の構成を示した図である。データ記憶システム1は、データの読み書きの要求を行うホスト装置11と、ホスト装置11の要求に応じてデータの読み書きを行う記憶装置12を備える。
[First Embodiment]
A data storage system 1 according to an embodiment of the present invention will be described below. FIG. 1 is a diagram showing the configuration of the data storage system 1. The data storage system 1 includes a host device 11 that makes a request for reading and writing data, and a storage device 12 that reads and writes data in response to a request from the host device 11.
 記憶装置12は、ホスト装置11からのデータの読み書き要求に応じて、メモリモジュールに対するデータの読み書きを指示する制御装置121と、制御装置121の指示に従いデータの読み書きを行うi個(iは2≦iである自然数)のメモリモジュール122(1)~122(i)を備える。以下、メモリモジュール122(1)~122(i)を「メモリモジュール122」と総称する。 In response to a data read / write request from the host device 11, the storage device 12 instructs the memory device to read / write data from / to the memory module, and i units read / write data according to the instruction from the control device 121 (i is 2 ≦ 2). i) is a natural number) memory modules 122 (1) to 122 (i). Hereinafter, the memory modules 122 (1) to 122 (i) are collectively referred to as “memory module 122”.
 制御装置121とメモリモジュール122(1)は、データバス123(1)で接続されている。同様に、制御装置121とメモリモジュール122(2)~122(i)は各々、データバス123(2)~123(i)で接続されている。以下、データバス123(1)~123(i)を「データバス123」と総称する。制御装置121とメモリモジュール122の各々は、上記のように独立したデータバス123により接続されているので、制御装置121はメモリモジュール122の各々に対し並行してデータの読み書きを指示することができる。 The control device 121 and the memory module 122 (1) are connected by a data bus 123 (1). Similarly, the controller 121 and the memory modules 122 (2) to 122 (i) are connected by data buses 123 (2) to 123 (i), respectively. Hereinafter, the data buses 123 (1) to 123 (i) are collectively referred to as “data bus 123”. Since each of the control device 121 and the memory module 122 is connected by the independent data bus 123 as described above, the control device 121 can instruct each of the memory modules 122 to read and write data in parallel. .
 メモリモジュール122(1)は、メモリコントローラ1221(1)と、メモリチップ1222(1)を備える。同様に、メモリモジュール122(2)~122(i)は各々、メモリコントローラ1221(2)~1221(i)と、メモリチップ1222(2)~1222(i)を備える。以下、メモリコントローラ1221(1)~1221(i)を「メモリコントローラ1221」と総称し、メモリチップ1222(1)~1222(i)を「メモリチップ1222」と総称する。 The memory module 122 (1) includes a memory controller 1221 (1) and a memory chip 1222 (1). Similarly, the memory modules 122 (2) to 122 (i) include memory controllers 1221 (2) to 1221 (i) and memory chips 1222 (2) to 1222 (i), respectively. Hereinafter, the memory controllers 1221 (1) to 1221 (i) are collectively referred to as “memory controller 1221”, and the memory chips 1222 (1) to 1222 (i) are collectively referred to as “memory chips 1222”.
 メモリコントローラ1221は、制御装置121の指示に従い、メモリチップ1222に対するデータの読み書きの指示を行うとともに、メモリチップ1222におけるウェアレベリングやインタリーブ等の管理を行う。なお、メモリモジュール122の各々が備えるメモリチップ1222の数は1つに限られず、2以上であってもよい。 The memory controller 1221 instructs the memory chip 1222 to read / write data in accordance with instructions from the control device 121 and manages wear leveling and interleaving in the memory chip 1222. Note that the number of memory chips 1222 provided in each of the memory modules 122 is not limited to one and may be two or more.
 制御装置121は、データ処理装置とバッファメモリを備える。制御装置121が備えるデータ処理装置は、例えばASIC、FPGA等により専用のハードウェアとして構成されてもよいし、汎用のプロセッサがプログラムに従った処理を行うことにより実現されてもよい。 The control device 121 includes a data processing device and a buffer memory. The data processing device included in the control device 121 may be configured as dedicated hardware by an ASIC, FPGA, or the like, or may be realized by a general-purpose processor performing processing according to a program.
 図2は、制御装置121がホスト装置11からのデータの書き込み要求に応じてメモリモジュール122に対しデータの書き込みを指示する際に動作する制御装置121の構成部を示した図である。なお、制御装置121が汎用のプロセッサにより動作する場合、当該プロセッサがプログラムに従った処理を実行することにより、図2に示す構成部を備える装置として機能する。 FIG. 2 is a diagram illustrating a configuration unit of the control device 121 that operates when the control device 121 instructs the memory module 122 to write data in response to a data write request from the host device 11. When the control device 121 is operated by a general-purpose processor, the processor functions as a device including the components illustrated in FIG. 2 by executing processing according to a program.
 制御装置121は、ホスト装置11から書き込み対象のデータを取得する取得手段1211と、取得手段1211が取得した書き込み対象のデータを一時的に記憶する記憶手段1212と、記憶手段1212に一時的に記憶された書き込み対象のデータを所定のデータサイズのブロック単位でメモリモジュール122(1)~122(i)にばらばらに割り振り、割り振ったデータの書き込みを割り振り先のメモリモジュール122に対し一度に指示する処理を複数の割り振り先のメモリモジュール122に関し並行して行う指示手段1213を備える。なお、本願において、「複数のメモリモジュールに対しデータの書き込みの指示を並行して行う」という場合、或るメモリモジュールに対するデータの書き込みの指示に従うデータの書き込みの完了を待つことなく、他のメモリモジュールに対するデータの書き込みの指示を行うことをいい、それらの指示が必ずしも厳密に同時に行われる必要はない。指示手段1213からデータの書き込みを指示されたメモリモジュール122のメモリコントローラ1221は、当該指示に従いデータをメモリチップ1222に書き込む。 The control device 121 obtains the write target data from the host device 11, the storage unit 1212 that temporarily stores the write target data acquired by the acquisition unit 1211, and temporarily stores the data in the storage unit 1212. Processing for allocating the written data to be written to the memory modules 122 (1) to 122 (i) in units of blocks of a predetermined data size and instructing the allocated memory module 122 to write the allocated data at a time Are instructed in parallel with respect to a plurality of allocation destination memory modules 122. In the present application, when “instructing data writing to a plurality of memory modules is performed in parallel”, other memory can be used without waiting for completion of data writing in accordance with the data writing instruction to a certain memory module. This is an instruction to write data to a module, and these instructions do not necessarily have to be performed strictly at the same time. The memory controller 1221 of the memory module 122 instructed to write data by the instruction unit 1213 writes data to the memory chip 1222 in accordance with the instruction.
 図3は、制御装置121がホスト装置11からのデータの読み出し要求に応じてメモリモジュール122に対しデータの読み出しを指示する際に動作する制御装置121の構成部を示した図である。なお、制御装置121が汎用のプロセッサにより動作する場合、当該プロセッサがプログラムに従った処理を実行することにより、図3に示す構成部を備える装置として機能する。 FIG. 3 is a diagram illustrating a configuration unit of the control device 121 that operates when the control device 121 instructs the memory module 122 to read data in response to a data read request from the host device 11. In addition, when the control apparatus 121 operates by a general-purpose processor, the processor functions as an apparatus including the components illustrated in FIG. 3 by executing processing according to a program.
 制御装置121は、ホスト装置11から読み出し対象のデータの先頭の論理アドレスとデータサイズを取得する取得手段1215と、取得手段1215が取得した論理アドレスとデータサイズに基づき読み出し対象のデータが記憶されているメモリモジュール122と当該データの先頭アドレスおよびデータサイズを特定し、特定したメモリモジュール122から特定した先頭アドレスおよびデータサイズに従いデータを読み出す読出手段1216と、読出手段1216が読み出したデータを当該データに含まれるブロックを並び替えた状態で一時的に記憶する記憶手段1217と、記憶手段1217に一時的に記憶されたデータをホスト装置11に引き渡す引渡手段1218を備える。 The control device 121 obtains the first logical address and data size of the data to be read from the host device 11, and stores the data to be read based on the logical address and data size obtained by the acquisition device 1215. The memory module 122 and the start address and data size of the data are specified, the reading means 1216 for reading the data according to the specified start address and data size from the specified memory module 122, and the data read by the reading means 1216 as the data The storage unit 1217 temporarily stores the contained blocks in a rearranged state, and the transfer unit 1218 delivers the data temporarily stored in the storage unit 1217 to the host device 11.
 データ記憶システム1においては、ホスト装置11において連続するデータが、記憶装置12においてはブロック単位で複数のメモリチップ1222にばらばらに割り振られて書き込まれる。すなわち、ブロックは読み書きするデータを複数のメモリモジュール122の間に分散させる処理におけるデータ単位である。 In the data storage system 1, continuous data in the host device 11 is allocated and written to the plurality of memory chips 1222 in units of blocks in the storage device 12. That is, a block is a data unit in a process of distributing read / write data among a plurality of memory modules 122.
 図4は、ホスト装置11において管理される論理アドレスと、記憶装置12において管理されるブロックの対応関係を示した図である。ホスト装置11において、データは所定のデータサイズs(以下、「セクタサイズs」という)のセクタ単位で管理される。図4に示すSsはホスト装置11が管理する全セクタの中で各セクタを識別するセクタシリアル番号である。ホスト装置11はセクタシリアル番号Ssを例えば論理アドレスとして用いる。以下、例として、セクタサイズs=512Byteであるものとする。 FIG. 4 is a diagram showing a correspondence relationship between logical addresses managed in the host device 11 and blocks managed in the storage device 12. In the host device 11, data is managed in units of sectors having a predetermined data size s (hereinafter referred to as “sector size s”). Ss shown in FIG. 4 is a sector serial number for identifying each sector among all sectors managed by the host device 11. The host device 11 uses the sector serial number Ss as a logical address, for example. Hereinafter, as an example, it is assumed that the sector size s = 512 bytes.
 図4に示すBsは記憶装置12が管理する全ブロックの中で各ブロックを識別するブロックシリアル番号である。既述のように、ブロックは記憶装置12におけるデータ分散のための単位であり、各ブロックは、連続する所定数のセクタに対応付けられている。すなわち、ブロックのデータサイズm(以下、「ブロックサイズm」という)は、セクタサイズsの倍数である。以下、例として、ブロックサイズm=64KBであるものとする。この場合、各ブロックには連続する128個のセクタが対応付けられることになる。具体的には、ブロックシリアル番号Bs=1であるブロックには、セクタシリアル番号Ss=1~128のセクタが対応付けられ、ブロックシリアル番号Bs=2であるブロックには、セクタシリアル番号Ss=129~256のセクタが対応付けられ、・・・・という関係となっている。 Bs shown in FIG. 4 is a block serial number for identifying each block among all the blocks managed by the storage device 12. As described above, a block is a unit for data distribution in the storage device 12, and each block is associated with a predetermined number of consecutive sectors. That is, the block data size m (hereinafter referred to as “block size m”) is a multiple of the sector size s. Hereinafter, as an example, it is assumed that the block size m = 64 KB. In this case, 128 consecutive sectors are associated with each block. Specifically, the block with the block serial number Bs = 1 is associated with the sector with the sector serial number Ss = 1 to 128, and the block with the block serial number Bs = 2 is associated with the sector serial number Ss = 129. ˜256 sectors are associated with each other.
 記憶装置12が有する複数のメモリモジュール122の各々が有する記憶領域は、複数のクラスタに区分される。制御装置121は、同じクラスタに読み書きされるデータに関しては、メモリモジュール122に対し一度に読み書きの指示を行う。一方、異なるクラスタに読み書きされるデータに関しては、それらのクラスタ毎に読み書きの指示を行う。以下、例として、クラスタのサイズc(以下、「クラスタサイズc」という)=4MBであるものとする。この場合、1つのクラスタに格納可能なブロック数をkとすると、k=64となる。 The storage area of each of the plurality of memory modules 122 included in the storage device 12 is divided into a plurality of clusters. The control device 121 instructs the memory module 122 to read / write data read / written from / to the same cluster at a time. On the other hand, for data read / written to / from different clusters, a read / write instruction is issued for each cluster. Hereinafter, as an example, it is assumed that the cluster size c (hereinafter referred to as “cluster size c”) = 4 MB. In this case, if the number of blocks that can be stored in one cluster is k, k = 64.
 図5は、記憶装置12におけるクラスタの配置を示した図である。図5に示すMsは記憶装置12がi個のメモリモジュール122の各々を識別するモジュールシリアル番号である。モジュールシリアル番号Ms=1はメモリモジュール122(1)を識別し、モジュールシリアル番号Ms=2はメモリモジュール122(2)を識別し、・・・という関係となっている。従って、図5は、メモリモジュール122の個数i=4である場合のクラスタの配置を例示している。 FIG. 5 is a diagram showing the arrangement of clusters in the storage device 12. Ms shown in FIG. 5 is a module serial number that identifies each of the i memory modules 122 by the storage device 12. The module serial number Ms = 1 identifies the memory module 122 (1), the module serial number Ms = 2 identifies the memory module 122 (2), and so on. Therefore, FIG. 5 exemplifies the arrangement of clusters when the number of memory modules 122 is i = 4.
 図5に示すCsは記憶装置12が管理する全クラスタの中で各クラスタを識別するクラスタシリアル番号である。クラスタシリアル番号は、モジュールシリアル番号Msの順番に従い、巡回的に各メモリモジュール122のクラスタに割り振られる。図5に例示のようにメモリモジュール122の個数i=4の場合、モジュールシリアル番号Ms=1、2、3、4で識別されるメモリモジュール122の各々の第1番目のクラスタにクラスタシリアル番号Cs=1、2、3、4が割り振られ、第2番目のクラスタにクラスタシリアル番号Cs=5、6、7、8が割り振られ、・・・という具合に各クラスタにクラスタシリアル番号Csが割り振られる。 Cs shown in FIG. 5 is a cluster serial number that identifies each cluster among all the clusters managed by the storage device 12. The cluster serial numbers are cyclically allocated to the clusters of the memory modules 122 according to the order of the module serial numbers Ms. As illustrated in FIG. 5, when the number of memory modules 122 is i = 4, the cluster serial number Cs is assigned to the first cluster of each of the memory modules 122 identified by the module serial number Ms = 1, 2, 3, 4. = 1, 2, 3, 4 are assigned, the cluster serial number Cs = 5, 6, 7, 8 is assigned to the second cluster, and so on, and the cluster serial number Cs is assigned to each cluster. .
 各クラスタに格納されるブロックとその配置は、所定の規則に従い一意に定まる。図6は、記憶装置12におけるブロックの配置を示した図である。図6に示すFは記憶装置12において並行してデータの書き込みが行われるクラスタのグループ(以下、「同時書込クラスタグループ」という)を識別する書込グループ番号である。記憶装置12は、既述のように、i個のメモリモジュール122の各々に対し、並行してデータの書き込みを行うことができる。ただし、消費電力、発熱、ホスト装置11と記憶装置12との間のデータ伝送速度等を考慮し、同時にデータの書き込みを行うメモリモジュール122の数(以下、「同時書込モジュール数j」という)をi個より少なくしてもよい。図6は、同時書込モジュール数j=3である場合のブロックの配置を例示している。なお、同時書込モジュール数jは、例えばユーザ等により適宜変更されてもよい。 The blocks stored in each cluster and their arrangement are uniquely determined according to a predetermined rule. FIG. 6 is a diagram showing the arrangement of blocks in the storage device 12. F shown in FIG. 6 is a write group number that identifies a group of clusters in which data is written in parallel in the storage device 12 (hereinafter referred to as “simultaneous write cluster group”). As described above, the storage device 12 can write data to each of the i memory modules 122 in parallel. However, in consideration of power consumption, heat generation, data transmission speed between the host device 11 and the storage device 12, etc., the number of memory modules 122 that simultaneously write data (hereinafter referred to as “simultaneous writing module number j”). May be less than i. FIG. 6 illustrates the arrangement of blocks when the number of simultaneous writing modules j = 3. Note that the number j of simultaneous writing modules may be appropriately changed by, for example, a user.
 クラスタシリアル番号Csの順序に従い先頭から順に同時書込モジュール数jのクラスタ毎に同時書込クラスタグループが形成される。図6に例示のように同時書込モジュール数j=3である場合、クラスタシリアル番号Cs=1、2、3のクラスタが書込グループ番号F=1で識別される同時書込クラスタグループを形成し、クラスタシリアル番号Cs=4、5、6のクラスタが書込グループ番号F=2で識別される同時書込クラスタグループを形成し、・・・というように、順次、同時書込クラスタグループが形成される。 A simultaneous writing cluster group is formed for each cluster having the number j of simultaneous writing modules in order from the top in the order of the cluster serial number Cs. As illustrated in FIG. 6, when the number j of simultaneous writing modules is 3, a cluster having cluster serial numbers Cs = 1, 2, and 3 is formed as a simultaneous writing cluster group identified by the writing group number F = 1. Then, clusters having cluster serial numbers Cs = 4, 5, and 6 form a simultaneous write cluster group identified by the write group number F = 2, and so on. It is formed.
 ブロックは、同じ同時書込クラスタグループに属するj個のクラスタにおいて、クラスタシリアル番号Csの順序に従い巡回的に割り振られる。 Blocks are cyclically allocated according to the order of the cluster serial number Cs in j clusters belonging to the same simultaneous writing cluster group.
 図6に例示のように同時書込モジュール数j=3である場合、ブロックシリアル番号Bs=1、2、3、4、5、6、・・・、192のブロックの各々が、書込グループ番号F=1に含まれるクラスタシリアル番号Cs=1~3のクラスタに巡回的に、すなわち、クラスタシリアル番号Cs=1、2、3、1、2、3、・・・、3という順序で割り振られる。同様に、ブロックシリアル番号Bs=193、194、195、196、197、198、・・・、384のブロックの各々が、書込グループ番号F=2に含まれるクラスタシリアル番号Cs=4~6のクラスタに巡回的に、すなわち、クラスタシリアル番号Cs=4、5、6、4、5、6、・・・、6という順序で割り振られる。ブロックシリアル番号Bs=385以降のブロックも同様の規則に従い、いずれかのクラスタに割り振られる。 As illustrated in FIG. 6, when the number of simultaneous writing modules j = 3, each of the blocks having block serial numbers Bs = 1, 2, 3, 4, 5, 6,. The cluster serial numbers Cs = 1 to 3 included in the number F = 1 are cyclically allocated, that is, the cluster serial numbers Cs = 1, 2, 3, 1, 2, 3,... It is. Similarly, each of the blocks having the block serial numbers Bs = 193, 194, 195, 196, 197, 198,..., 384 has the cluster serial numbers Cs = 4 to 6 included in the write group number F = 2. The clusters are allocated cyclically, that is, in the order of cluster serial numbers Cs = 4, 5, 6, 4, 5, 6,. Blocks after the block serial number Bs = 385 are also allocated to any cluster according to the same rule.
 図6に例示のようにブロックが配置される結果、記憶装置12においては、連続する2つのブロックの各々に対応するセクタのデータは互いに異なるメモリモジュール122において読み書きされる。そして、各メモリモジュール122においては、同じクラスタ内に配置されるデータがブロックの区切りとは無関係に一度に読み書きされる。 As a result of arranging the blocks as illustrated in FIG. 6, in the storage device 12, the data of the sectors corresponding to each of the two consecutive blocks is read / written in the memory modules 122 different from each other. In each memory module 122, data arranged in the same cluster is read and written at a time regardless of the block delimiter.
 上述した規則に従うデータの読み書きは、記憶装置12の制御装置121のアドレス変換処理により実現される。制御装置121が行うアドレス変換処理は、データの読み書きにおいて、ホスト装置11から取得する読み書き対象のデータの先頭の論理アドレスと読み書き対象のデータのデータサイズに基づき、データの読み書きの対象のメモリモジュール122および当該メモリモジュール122における読み書き対象のデータの格納先の論理アドレスを特定する処理である。 Reading and writing data according to the above-described rules is realized by address conversion processing of the control device 121 of the storage device 12. The address conversion process performed by the control device 121 is a data read / write target memory module 122 based on the top logical address of the read / write target data acquired from the host device 11 and the data size of the read / write target data. And a process of specifying a logical address of a storage destination of data to be read / written in the memory module 122.
 図7は、記憶装置12がホスト装置11からデータの書き込み要求を受けた場合に行う処理のフローを示した図である。また、図8は、図7に示したフローに従う記憶装置12の処理に含まれる制御装置121のアドレス変換処理において用いられる情報を示した図である。図8に示す書込グループ番号F、クラスタシリアル番号Cs、ブロックシリアル番号Bsは、図6に例示のものと同一である。図8に示すCmは、メモリモジュール122におけるクラスタの位置(順番)を示すモジュール内クラスタ番号である。図8に示すBcは、クラスタにおけるブロックの位置(順番)を示すクラスタ内ブロック番号である。図8に示すBmは、メモリモジュール122におけるブロックの位置(順番)を示すモジュール内ブロック番号である。 FIG. 7 is a diagram showing a flow of processing performed when the storage device 12 receives a data write request from the host device 11. FIG. 8 is a diagram showing information used in the address conversion process of the control device 121 included in the process of the storage device 12 according to the flow shown in FIG. The write group number F, cluster serial number Cs, and block serial number Bs shown in FIG. 8 are the same as those illustrated in FIG. Cm shown in FIG. 8 is an in-module cluster number indicating the cluster position (order) in the memory module 122. Bc shown in FIG. 8 is an intra-cluster block number indicating the position (order) of blocks in the cluster. Bm shown in FIG. 8 is an in-module block number indicating the block position (order) in the memory module 122.
 ホスト装置11は記憶装置12に対しデータの書き込み要求を行う場合、書き込み対象のデータと、当該書き込み対象のデータのホスト装置11における先頭の論理アドレス、すなわち先頭セクタのセクタシリアル番号(以下、セクタシリアル番号Ss(S)とする)を記憶装置12に出力する。記憶装置12の制御装置121の取得手段1211は、ホスト装置11から出力される書き込み対象のデータとセクタシリアル番号Ss(S)を取得する(ステップS101)。取得手段1211により取得された書き込み対象のデータは、記憶手段1212に一時的に記憶される。 When the host device 11 makes a data write request to the storage device 12, the data to be written and the top logical address of the data to be written in the host device 11, that is, the sector serial number of the top sector (hereinafter referred to as sector serial number). Number Ss (S)) is output to the storage device 12. The acquisition unit 1211 of the control device 121 of the storage device 12 acquires the data to be written and the sector serial number Ss (S) output from the host device 11 (step S101). The data to be written acquired by the acquisition unit 1211 is temporarily stored in the storage unit 1212.
 指示手段1213は、取得手段1211が取得したセクタシリアル番号Ss(S)と書き込み対象のデータのデータサイズ(以下、データサイズDとする)に基づき、書き込み対象のデータの末尾セクタのセクタシリアル番号(以下、セクタシリアル番号Ss(E)とする)を以下の算出式に従い特定する。なお、sはセクタサイズである。
 Ss(E)=Ss(S)+D/s-1
Based on the sector serial number Ss (S) acquired by the acquiring unit 1211 and the data size of the data to be written (hereinafter referred to as data size D), the instructing unit 1213 uses the sector serial number ( Hereinafter, the sector serial number Ss (E) is specified according to the following calculation formula. Here, s is the sector size.
Ss (E) = Ss (S) + D / s−1
 続いて、指示手段1213は、書き込み対象のデータに対応する先頭ブロックのブロックシリアル番号(以下、ブロックシリアル番号Bs(1)とする)と末尾ブロックのブロックシリアル番号(以下、ブロックシリアル番号Bs(z)とする)を以下の算出式に従い特定する。なお、mはブロックサイズ、RoundUp()は()内の数値の小数点以下を切り上げる関数を示す。
 Bs(1)=RoundUp(Ss(S)/(m/s))
 Bs(z)=RoundUp(Ss(E)/(m/s))
Subsequently, the instructing unit 1213 sends the block serial number of the first block (hereinafter referred to as block serial number Bs (1)) and the block serial number of the end block (hereinafter referred to as block serial number Bs (z) )) Is specified according to the following calculation formula. Note that m is a block size, and RoundUp () is a function that rounds up the numerical value in ().
Bs (1) = RoundUp (Ss (S) / (m / s))
Bs (z) = RoundUp (Ss (E) / (m / s))
 続いて、指示手段1213は、書き込み対象のデータに対応するブロック、すなわちブロックシリアル番号Bs(1)~Bs(z)により識別される1以上のブロックの各々に関し、当該ブロックの先頭セクタのセクタシリアル番号を以下の算出式に従い特定する。なお、Bs(p)は書き込み対象のデータの第p番目(pは1≦p≦zである自然数)のブロックのブロックシリアル番号、Ss(p)は当該ブロックの先頭のセクタシリアル番号である。
 Ss(p)=(m/s)×(Bs(p)-1)+1
Subsequently, the instruction unit 1213 relates to the block corresponding to the data to be written, that is, for each of one or more blocks identified by the block serial numbers Bs (1) to Bs (z), the sector serial of the head sector of the block. The number is specified according to the following calculation formula. Bs (p) is the block serial number of the p-th block (p is a natural number satisfying 1 ≦ p ≦ z) of data to be written, and Ss (p) is the first sector serial number of the block.
Ss (p) = (m / s) × (Bs (p) −1) +1
 また、指示手段1213は、書き込み対象のデータの先頭セクタおよび末尾セクタのブロック内における番号(以下、ブロック内セクタ番号Sb(S)およびSb(E)とする)を以下の算出式に従い算出する。なお、x%yはxをyでわったあまり(剰余)を示す。
 Sb(S)=((Ss(S)-1)%(m/s))+1
 Sb(E)=((Ss(E)-1)%(m/s))+1
Further, the instruction unit 1213 calculates the numbers in the blocks of the first sector and the last sector of the data to be written (hereinafter referred to as intra-block sector numbers Sb (S) and Sb (E)) according to the following calculation formula. Note that x% y indicates the remainder (remainder) obtained by dividing x by y.
Sb (S) = ((Ss (S) -1)% (m / s)) + 1
Sb (E) = ((Ss (E) -1)% (m / s)) + 1
 以上により、書き込み対象のデータに対応するブロックと、先頭ブロックにおける先頭セクタの位置および末尾ブロックにおける末尾セクタの位置が特定される(ステップS102)。 Thus, the block corresponding to the data to be written, the position of the head sector in the head block, and the position of the tail sector in the tail block are specified (step S102).
 続いて、指示手段1213は、書き込み対象のデータに対応する各ブロックの割り振り先の同時書込クラスタグループの書込グループ番号と、当該同時書込クラスタグループ内でのクラスタの番号(以下、「グループ内クラスタ番号」という)を以下の算出式に従い特定する(ステップS103)。なお、F(p)は第p番目のブロックの割り振り先の書込グループ番号、Cf(p)は第p番目のブロックの割り振り先のグループ内クラスタ番号、kは1クラスタを構成するブロックの数、jは同時書込モジュール数である。
 F(p)=RoundUp(Bs(p)/(k×j))
 Cf(p)=((Bs(p)-1)%j)+1
Subsequently, the instruction unit 1213 assigns the write group number of the simultaneous write cluster group to which each block corresponding to the write target data is allocated, and the cluster number in the simultaneous write cluster group (hereinafter referred to as “group”). (Referred to as “internal cluster number”) according to the following calculation formula (step S103). F (p) is the write group number to which the p-th block is allocated, Cf (p) is the cluster number in the group to which the p-th block is allocated, and k is the number of blocks constituting one cluster. , J is the number of simultaneous writing modules.
F (p) = RoundUp (Bs (p) / (k × j))
Cf (p) = ((Bs (p) -1)% j) +1
 続いて、指示手段1213は、各ブロックの割り振り先のクラスタのクラスタシリアル番号を以下の算出式に従い特定する(ステップS104)。なお、Cs(p)は第p番目のブロックの割り振り先のクラスタシリアル番号である。
 Cs(p)=j×(F(p)-1)+Cf(p)
Subsequently, the instruction unit 1213 identifies the cluster serial number of the cluster to which each block is allocated according to the following calculation formula (step S104). Cs (p) is the cluster serial number to which the p-th block is allocated.
Cs (p) = j × (F (p) −1) + Cf (p)
 続いて、指示手段1213は、各ブロックの割り振り先のメモリモジュール122のモジュールシリアル番号と、各ブロックの割り振り先のクラスタの当該メモリモジュール122における番号(モジュール内クラスタ番号)を以下の算出式に従い特定する(ステップS105)。なお、Ms(p)は第p番目のブロックのモジュールシリアル番号、Cm(p)は第p番目のブロックのモジュール内クラスタ番号、iは記憶装置12が有するメモリモジュール122の個数である。
 Ms(p)=((Cs(p)-1)%i)+1
 Cm(p)=RoundUp(Cs(p)/i)
Subsequently, the instruction unit 1213 specifies the module serial number of the memory module 122 to which each block is allocated and the number (cluster number within the module) of the memory module 122 of the cluster to which each block is allocated according to the following calculation formula. (Step S105). Ms (p) is the module serial number of the p-th block, Cm (p) is the intra-module cluster number of the p-th block, and i is the number of memory modules 122 included in the storage device 12.
Ms (p) = ((Cs (p) -1)% i) +1
Cm (p) = RoundUp (Cs (p) / i)
 続いて、指示手段1213は、各ブロックの割り振り先のクラスタにおけるブロック番号(クラスタ内ブロック番号)を以下の算出式に従い特定する(ステップS106)。なお、Bc(p)は第p番目のブロックのクラスタ内ブロック番号である。
 Bc(p)=RoundUp((Bs(p)-(F(p)-1)×j×k)/j)
Subsequently, the instructing unit 1213 specifies the block number (intra-cluster block number) in the cluster to which each block is allocated according to the following calculation formula (step S106). Bc (p) is the intra-cluster block number of the p-th block.
Bc (p) = RoundUp ((Bs (p) − (F (p) −1) × j × k) / j)
 続いて、指示手段1213は、各ブロックのメモリモジュール122における番号(モジュール内ブロック番号)を以下の算出式に従い特定する(ステップS107)。なお、Bm(p)は第p番目のブロックのモジュール内ブロック番号である。
 Bm(p)=(Cm(p)-1)×k+Bc(p)
Subsequently, the instruction unit 1213 specifies the number (block number in the module) of each block in the memory module 122 according to the following calculation formula (step S107). Bm (p) is an in-module block number of the p-th block.
Bm (p) = (Cm (p) −1) × k + Bc (p)
 以上の処理により、図8に例示したような、メモリモジュール122、同時書込クラスタグループ、クラスタ、ブロックの対応関係や順序が特定される。 Through the above processing, the correspondence and order of the memory module 122, the simultaneous writing cluster group, the cluster, and the block as illustrated in FIG. 8 are specified.
 続いて、指示手段1213は、書き込み対象のデータが割り振られた1以上の同時書込クラスタグループの中から書込グループ番号Fに従う順で同時書込クラスタグループを1つ選択し、選択した同時書込クラスタグループに属するj個のクラスタの各々に関し、当該クラスタに含まれる書き込み対象のデータの先頭セクタの、メモリモジュール122における位置を示すモジュール内セクタ番号Smを以下の算出式に従い特定する(ステップS108)。なお、Bmは対象のクラスタに含まれる書き込み対象のデータの先頭のブロックのモジュール内ブロック番号、Sbは当該ブロックに含まれる書き込み対象のデータの先頭のセクタのブロック内セクタ番号である。
 Sm=(Bm-1)×(m/s)+Sb
Subsequently, the instruction unit 1213 selects one simultaneous write cluster group in the order according to the write group number F from one or more simultaneous write cluster groups to which data to be written is allocated, and selects the selected simultaneous write For each of the j clusters belonging to the embedded cluster group, the in-module sector number Sm indicating the position in the memory module 122 of the first sector of the write target data included in the cluster is specified according to the following calculation formula (step S108). ). Bm is the block number in the module of the first block of the write target data included in the target cluster, and Sb is the sector number in the block of the first sector of the write target data included in the block.
Sm = (Bm−1) × (m / s) + Sb
 続いて、指示手段1213は、ステップS108において選択した同時書込クラスタグループに属するj個のクラスタの割り振り先のj個のメモリモジュール122に対し、データの書き込みの指示を並行して行う(ステップS109)。ステップS109において、指示手段1213は、データの書き込み指示先のメモリモジュール122の各々に対し、ステップS108において特定したモジュール内セクタ番号Smをデータの書き込み先の先頭アドレスとして引き渡す。また、指示手段1213は、記憶手段1212に記憶されている書き込み対象データのうち、書き込み対象のクラスタに割り振られた部分をクラスタ内ブロック番号Bcの順に読み出して、書き込み対象のデータとしてメモリモジュール122に引き渡す。 Subsequently, the instruction unit 1213 issues a data write instruction in parallel to the j memory modules 122 to which the j clusters belonging to the simultaneous writing cluster group selected in step S108 are allocated (step S109). ). In step S109, the instruction unit 1213 delivers the in-module sector number Sm specified in step S108 to each of the memory modules 122 that are instructed to write data as the start address of the data writing destination. In addition, the instruction unit 1213 reads the portion of the write target data stored in the storage unit 1212 allocated to the cluster to be written in the order of the intra-cluster block number Bc, and stores it in the memory module 122 as the write target data. hand over.
 なお、指示手段1213がステップS109においてメモリモジュール122に引き渡すデータの書き込み先の先頭アドレスは、メモリモジュール122においてデータの格納位置を示す情報であれば、モジュール内セクタ番号Smに限られない。例えば、メモリモジュール122においてはホスト装置11で管理されるセクタとは異なるサイズのセクタでデータの読み書きが管理されている場合、それらのセクタのサイズの相違を反映するようにモジュール内セクタ番号Smを変換したものが用いられてもよい。 Note that the start address of the write destination of the data handed over to the memory module 122 by the instruction means 1213 in step S109 is not limited to the intra-module sector number Sm as long as it is information indicating the data storage position in the memory module 122. For example, in the memory module 122, when data read / write is managed in a sector having a size different from the sector managed by the host device 11, the in-module sector number Sm is set to reflect the difference in the size of these sectors. A converted version may be used.
 ステップS109において指示手段1213からデータの書き込み先の先頭アドレスとデータを受け取ったメモリモジュール122は各々、受け取ったデータを受け取った先頭アドレスから始まる記憶領域に書き込む(ステップS110)。 In step S109, the memory module 122 that has received the data write destination head address and data from the instruction unit 1213 writes the received data in the storage area starting from the received head address (step S110).
 制御装置121とメモリモジュール122は、上記のステップS108~S110の処理を、書き込み対象のデータが割り振られた同時書込クラスタグループの各々に関し繰り返す(ステップS111;No)。上記のステップS108~S110の処理が、書き込み対象のデータが割り振られた同時書込クラスタグループの全てに関し完了すると(ステップS111;Yes)、記憶装置12は一連のデータの書き込みの処理を完了する。 The control device 121 and the memory module 122 repeat the processing of the above-described steps S108 to S110 for each simultaneous write cluster group to which the write target data is allocated (step S111; No). When the processes in steps S108 to S110 are completed for all the simultaneous writing cluster groups to which the data to be written is allocated (step S111; Yes), the storage device 12 completes a series of data writing processes.
 以上が、ホスト装置11からの要求に応じて、記憶装置12がデータの書き込みを行う際に行う処理である。 The above is the processing performed when the storage device 12 writes data in response to a request from the host device 11.
 続いて、記憶装置12がホスト装置11からデータの読み出し要求を受けた場合に行う処理を説明する。図9は、記憶装置12がホスト装置11からデータの読み出し要求を受けた場合に行う処理のフローを示した図である。データの読み出しにおける記憶装置12の処理は、一部、データの書き込みにおける記憶装置12の処理と共通している。図9においては、図7に示したフロー中の処理と共通する処理に関しては、図7のフローにおいて用いたステップ番号と同じステップ番号を用いている。 Subsequently, processing performed when the storage device 12 receives a data read request from the host device 11 will be described. FIG. 9 is a diagram illustrating a flow of processing performed when the storage device 12 receives a data read request from the host device 11. The processing of the storage device 12 in data reading is partly in common with the processing of the storage device 12 in data writing. In FIG. 9, the same step numbers as those used in the flow of FIG. 7 are used for the processes common to the processes in the flow shown in FIG.
 ホスト装置11は記憶装置12に対しデータの読み出し要求を行う場合、読み出し対象のデータのホスト装置11における先頭の論理アドレス、すなわち先頭のセクタのセクタシリアル番号Ss(S)と、当該読み出し対象のデータのデータサイズDを記憶装置12に出力する。記憶装置12の制御装置121の取得手段1215は、ホスト装置11からセクタシリアル番号Ss(S)とデータサイズDを取得する(ステップS201)。 When the host device 11 makes a data read request to the storage device 12, the head logical address of the data to be read in the host device 11, that is, the sector serial number Ss (S) of the head sector, and the data to be read Is output to the storage device 12. The acquisition unit 1215 of the control device 121 of the storage device 12 acquires the sector serial number Ss (S) and the data size D from the host device 11 (step S201).
 続いて、読出手段1216は、ホスト装置11から取得したセクタシリアル番号Ss(S)とデータサイズDに基づき、データの書き込み処理において指示手段1213が行うステップS102~S107と同様の処理を行い、読み出し対象のデータに対応するブロックの各々に関し、当該ブロックを格納しているメモリモジュール122のモジュールシリアル番号Ms、当該ブロックを含むクラスタのモジュール内クラスタ番号Cm、当該ブロックのクラスタ内ブロック番号Bc、当該ブロックを含むクラスタを格納するモジュールシリアル番号Ms、当該ブロックのブロックシリアル番号Bs等を特定する。 Subsequently, the reading unit 1216 performs processing similar to steps S102 to S107 performed by the instruction unit 1213 in the data writing processing based on the sector serial number Ss (S) and the data size D acquired from the host device 11, and performs reading. For each block corresponding to the target data, the module serial number Ms of the memory module 122 storing the block, the intra-module cluster number Cm of the cluster including the block, the intra-cluster block number Bc of the block, the block The module serial number Ms for storing the cluster including the block serial number Bs of the block is specified.
 続いて、読出手段1216は、読出手段1216が特定したモジュールシリアル番号Msにより識別されるメモリモジュール122の各々に対し、読出手段1216が特定したモジュール内クラスタ番号Cmで識別されるクラスタに含まれる読み出し対象のデータの読み出しを指示し、当該読み出しの指示に応じてメモリモジュール122から引き渡されるデータを取得する(ステップS202)。読出手段1216は、メモリモジュール122から取得したデータを記憶手段1217に一時的に記憶する。その際、読出手段1216は、メモリモジュール122から取得したデータをブロックシリアル番号Bsに応じた記憶手段1217の記憶領域に記憶させる。その結果、記憶手段1217に一時的に記憶されるデータは、セクタシリアル番号が連続するように並び替えられたデータとなる。 Subsequently, the reading unit 1216 reads each of the memory modules 122 identified by the module serial number Ms specified by the reading unit 1216 from the cluster included in the cluster identified by the intra-module cluster number Cm specified by the reading unit 1216. An instruction to read the target data is issued, and data delivered from the memory module 122 is acquired in accordance with the read instruction (step S202). The reading unit 1216 temporarily stores the data acquired from the memory module 122 in the storage unit 1217. At that time, the reading unit 1216 stores the data acquired from the memory module 122 in the storage area of the storage unit 1217 corresponding to the block serial number Bs. As a result, the data temporarily stored in the storage unit 1217 is data rearranged so that the sector serial numbers are continuous.
 また、ステップS202において、読出手段1216はi個のメモリモジュール122の各々からデータの読み出しを並行して行う。 In step S202, the reading unit 1216 reads data from each of the i memory modules 122 in parallel.
 読出手段1216は、読み出し対象のデータを含む全てのクラスタに関し当該クラスタに含まれる読み出し対象のデータの読み出しが完了するまで、ステップS202の処理を繰り返す(ステップS203;No)。読出手段1216により読み出し対象のデータの全ての読み出しが完了すると(ステップS203;Yes)、引渡手段1218は記憶手段1217に記憶されている読み出し対象のデータをホスト装置11に引き渡す(ステップS204)。 The reading unit 1216 repeats the process of step S202 for all clusters including the data to be read until reading of the data to be read included in the cluster is completed (step S203; No). When reading of all the data to be read is completed by the reading unit 1216 (step S203; Yes), the transfer unit 1218 transfers the data to be read stored in the storage unit 1217 to the host device 11 (step S204).
 以上が、ホスト装置11からの要求に応じて、記憶装置12がデータの読み出しを行う際に行う処理である。 The processing described above is performed when the storage device 12 reads data in response to a request from the host device 11.
 データ記憶システム1によれば、ホスト装置11からの要求に応じたデータの読み書きが、複数のメモリモジュール122において並行して行われるため、メモリインタリーブによるデータの読み書きの高速化が実現される。同時に、データ記憶システム1によれば、メモリモジュール122におけるデータの読み書きが、メモリインタリーブにおけるデータの分割の単位であるブロックよりも大きなデータサイズで行われる。そのため、メモリモジュール122におけるデータの読み書きに伴うオーバーヘッドによるレイテンシを低減することができる。その結果、全体として高速なデータの読み書きが実現される。 According to the data storage system 1, data reading / writing according to a request from the host device 11 is performed in parallel in the plurality of memory modules 122, so that data reading / writing speed by memory interleaving can be increased. At the same time, according to the data storage system 1, reading and writing of data in the memory module 122 is performed with a data size larger than that of a block that is a unit of data division in memory interleaving. Therefore, latency due to overhead associated with reading and writing data in the memory module 122 can be reduced. As a result, high-speed data reading / writing is realized as a whole.
[第2実施形態]
 以下に本発明の他の一実施形態にかかるデータ記憶システム2を説明する。データ記憶システム2は、第1実施形態にかかるデータ記憶システム1と多くの点で共通している。従って、以下に、主としてデータ記憶システム2がデータ記憶システム1と異なる点を説明し、データ記憶システム2がデータ記憶システム1と共通する点に関しては適宜、それらの説明を省略する。
[Second Embodiment]
A data storage system 2 according to another embodiment of the present invention will be described below. The data storage system 2 is common in many respects to the data storage system 1 according to the first embodiment. Accordingly, the following description will mainly focus on differences between the data storage system 2 and the data storage system 1, and description of points common to the data storage system 2 will be omitted as appropriate.
 図10は、データ記憶システム2の構成を示した図である。図10において、データ記憶システム2が備える構成部のうち、データ記憶システム1が備える構成部と共通する構成部には、データ記憶システム1において用いた符号と同じ符号を用いている。データ記憶システム2は、ホスト装置11と記憶装置22を備える。 FIG. 10 is a diagram showing the configuration of the data storage system 2. In FIG. 10, among the components included in the data storage system 2, the same reference numerals as those used in the data storage system 1 are used for the components common to the components included in the data storage system 1. The data storage system 2 includes a host device 11 and a storage device 22.
 記憶装置22は、制御装置121と、(h×n)個のメモリモジュール122と、制御装置121とメモリモジュール122とを接続するデータバス123(1)~123(h)を備える。nは2≦nの自然数である。データバス123(1)~123(h)の各々には、n個のメモリモジュール122が接続されている。図10に示すように、データバス123(q)に接続されているn個のメモリモジュール122を、メモリモジュール122(q)(1)~122(q)(n)とする。 The storage device 22 includes a control device 121, (h × n) memory modules 122, and data buses 123 (1) to 123 (h) for connecting the control device 121 and the memory modules 122. n is a natural number of 2 ≦ n. N memory modules 122 are connected to each of the data buses 123 (1) to 123 (h). As shown in FIG. 10, n memory modules 122 connected to the data bus 123 (q) are assumed to be memory modules 122 (q) (1) to 122 (q) (n).
 制御装置121は、1つのデータバス123に接続されているn個のメモリモジュール122のうちいずれか1つのメモリモジュール122との間でデータの読み書きの処理を行っている間、同じデータバス123に接続されている他のメモリモジュール122との間でデータの読み書きの処理を行うことはできない。ただし、制御装置121は、互いに異なるデータバス123に接続されている複数のメモリモジュール122との間で、データの読み書きの処理を並行して行うことができる。 While the control device 121 performs data read / write processing with any one of the n memory modules 122 connected to one data bus 123, the control device 121 uses the same data bus 123. Data read / write processing cannot be performed with another memory module 122 connected thereto. However, the control device 121 can perform data read / write processing in parallel with a plurality of memory modules 122 connected to different data buses 123.
 図11Aおよび図11B(以下、これらの図を図11と総称する)は、記憶装置22において、(h×n)個のメモリモジュール122に配置されるクラスタの位置を、h=4、n=3の場合に関し例示した図である。図11に示されように、(h×n)個のメモリモジュール122には、データバス123(1)~(h)の間で、巡回的にモジュールシリアル番号Msが割り振られる。例えば、h=4、n=3の場合、図11に示されるように、メモリモジュール122(1)(1)、122(2)(1)、122(3)(1)、122(4)(1)、122(2)(1)、122(2)(2)、122(3)(2)、122(4)(2)、122(1)(3)、・・・という順に、モジュールシリアル番号Msが割り当てられる。 11A and 11B (hereinafter, these diagrams are collectively referred to as FIG. 11), the positions of clusters arranged in (h × n) memory modules 122 in the storage device 22 are represented as h = 4, n = It is the figure illustrated regarding the case of 3. FIG. As shown in FIG. 11, the module serial number Ms is cyclically allocated to the (h × n) memory modules 122 between the data buses 123 (1) to (h). For example, when h = 4 and n = 3, as shown in FIG. 11, the memory modules 122 (1) (1), 122 (2) (1), 122 (3) (1), 122 (4) (1), 122 (2) (1), 122 (2) (2), 122 (3) (2), 122 (4) (2), 122 (1) (3),. A module serial number Ms is assigned.
 また、記憶装置22においては、モジュールシリアル番号の順に従い、巡回的にクラスタが割り振られる。例えば、h=4、n=3の場合、図11に示されるように、モジュールシリアル番号Ms=1、2、3、4、・・・11、12、1、2、・・・で識別されるメモリモジュール122に対し、クラスタシリアル番号Cs=1、2、3、4、・・・11、12、13、14、・・・というように、1から順にクラスタシリアル番号Csが割り振られる。 In the storage device 22, clusters are cyclically allocated according to the order of module serial numbers. For example, when h = 4 and n = 3, as shown in FIG. 11, module serial numbers Ms = 1, 2, 3, 4,..., 11, 12, 1, 2,. The cluster serial number Cs is assigned to the memory module 122 in order from 1 so that the cluster serial number Cs = 1, 2, 3, 4,..., 11, 12, 13, 14,.
 図12Aおよび図12B(以下、これらの図を図12と総称する)は、記憶装置22において、(h×n)個のメモリモジュール122に配置されるブロックの位置を、h=4、n=3、j=3の場合に関し例示した図である。なお、jは同時書込モジュール数である。図12に示されるように、クラスタシリアル番号Csの順に従い、先頭のクラスタからj個ずつのクラスタが1つの同時書込クラスタグループとされ、それらの同時書込クラスタブループに対し、順次、書込グループ番号Fが割り振られる。そして、同じ同時書込クラスタグループに属するj個のクラスタに対し、ブロックが巡回的に割り振られる。このクラスタに対するブロックの割り振りの規則は、記憶装置12における規則と同様である。 12A and 12B (hereinafter, these figures are collectively referred to as FIG. 12), the positions of blocks arranged in (h × n) memory modules 122 in the storage device 22 are represented as h = 4, n = 3 is a diagram illustrating a case where j = 3. Note that j is the number of simultaneous writing modules. As shown in FIG. 12, according to the order of the cluster serial number Cs, j clusters from the first cluster are made one simultaneous write cluster group, and the simultaneous write class tab loops are written sequentially. Group number F is assigned. Then, blocks are cyclically allocated to j clusters belonging to the same simultaneous writing cluster group. The rule of block allocation for this cluster is the same as the rule in the storage device 12.
 図13Aおよび図13Bは、図12に示した書込グループ番号F、クラスタシリアル番号Cs、ブロックシリアル番号Bsに加え、それらに対応するモジュール内クラスタ番号Cm、クラスタ内ブロック番号Bc、モジュール内ブロック番号Bmを示した図である。 13A and 13B show the write group number F, cluster serial number Cs, and block serial number Bs shown in FIG. 12, and the corresponding intra-module cluster number Cm, intra-cluster block number Bc, and intra-module block number. It is the figure which showed Bm.
 データ記憶システム2において、ホスト装置11からの要求に応じて記憶装置22がデータの書き込みを行う処理は、図7に示したデータ記憶システム1における処理と比較し、ステップS105の処理において用いられる算出式が異なる点を除き、同様である。また、データ記憶システム2において、ホスト装置11からの要求に応じて記憶装置22がデータの読み出しを行う処理は、図9に示したデータ記憶システム1における処理と比較し、同じく、ステップS105の処理において用いられる算出式が異なる点を除き、同様である。 In the data storage system 2, the processing in which the storage device 22 writes data in response to a request from the host device 11 is compared with the processing in the data storage system 1 shown in FIG. It is the same except that the equations are different. Further, in the data storage system 2, the processing in which the storage device 22 reads data in response to a request from the host device 11 is similar to the processing in the data storage system 1 shown in FIG. This is the same except that the calculation formula used in is different.
 データ記憶システム2において、指示手段1213(データの書き込み時)または読出手段1216(データの読み出し時)は、ステップS105において、以下の算出式に従い、書き込み対象または読み出し対象のデータに対応する各ブロックの割り振り先のメモリモジュール122のモジュールシリアル番号Ms(p)と、各ブロックの割り振り先のクラスタのモジュール内クラスタ番号Cm(p)を特定する。
 Ms(p)=((Cs(p)-1)%(h×n))+1
 Cm(p)=RoundUp(Cs(p)/(h×n))
In the data storage system 2, the instruction unit 1213 (when writing data) or the reading unit 1216 (when reading data), in step S <b> 105, according to the following calculation formula, each block corresponding to the data to be written or read. The module serial number Ms (p) of the allocation destination memory module 122 and the intra-module cluster number Cm (p) of the allocation destination cluster of each block are specified.
Ms (p) = ((Cs (p) −1)% (h × n)) + 1
Cm (p) = RoundUp (Cs (p) / (h × n))
 上記の構成を備えるデータ記憶システム2によっても、第1実施形態にかかるデータ記憶システム1と同様に、全体として高速なデータの読み書きが実現される。また、データ記憶システム2が備える記憶装置22においては、データ記憶システム1が備える記憶装置12と比べ、メモリモジュールの数に対するデータバスの数の比率が小さい。従って、記憶装置22が備える構成によれば、記憶装置12が備える構成と比べ、低コストで記憶容量を増やすことができる。 As with the data storage system 1 according to the first embodiment, the data storage system 2 having the above configuration also realizes high-speed data reading and writing as a whole. In the storage device 22 included in the data storage system 2, the ratio of the number of data buses to the number of memory modules is smaller than that of the storage device 12 included in the data storage system 1. Therefore, according to the configuration included in the storage device 22, the storage capacity can be increased at a lower cost than the configuration included in the storage device 12.
[変形例]
 上述した実施形態は本発明の技術的思想の範囲内において様々に変形可能である。以下にそれらの変形の例を示す。なお、上述した実施形態および以下に示す変形例のうちの2以上が適宜組み合わせられてもよい。
[Modification]
The above-described embodiments can be variously modified within the scope of the technical idea of the present invention. Examples of these modifications are shown below. Note that two or more of the above-described embodiments and the following modifications may be combined as appropriate.
(1)上述した実施形態において、メモリモジュール122はメモリコントローラ1221を有し、メモリチップ1222に対するデータの読み書きの管理をメモリコントローラ1221が行う。これに代えて、制御装置121が直接、メモリモジュール122におけるデータの読み書きの管理を行う構成が採用されてもよい。この変形例においては、制御装置121はメモリモジュール122におけるデータの格納位置を示す論理アドレスを物理アドレスに変換した後、当該物理アドレスで特定される格納位置に対するデータの書き込みや、当該物理アドレスで特定される格納位置からのデータの読み出しを行う。 (1) In the above-described embodiment, the memory module 122 includes the memory controller 1221, and the memory controller 1221 manages data reading / writing with respect to the memory chip 1222. Instead, a configuration in which the control device 121 directly manages data read / write in the memory module 122 may be employed. In this modification, the control device 121 converts a logical address indicating a data storage position in the memory module 122 into a physical address, and then writes data to the storage position specified by the physical address or specifies the physical address. The data is read from the storage position.
(2)上述した第1実施形態の説明においては、記憶装置12が同時にデータの書き込みを行うメモリモジュール122の個数jは、記憶装置12が有するメモリモジュール122の個数iより小さい場合を例に説明を行ったが、j=iであってもよい。また、上述した第2実施形態の説明においては、記憶装置12が同時にデータの書き込みを行うメモリモジュール122の個数jは、記憶装置12が有するデータバス123の個数hより小さい場合を例に説明を行ったが、j=hであってもよい。 (2) In the description of the first embodiment described above, the case where the number j of the memory modules 122 into which the storage device 12 simultaneously writes data is smaller than the number i of the memory modules 122 included in the storage device 12 will be described as an example. However, j = i may be used. In the description of the second embodiment, the case where the number j of the memory modules 122 to which the storage device 12 simultaneously writes data is smaller than the number h of the data buses 123 included in the storage device 12 will be described as an example. Although done, j = h may be sufficient.
(3)上述した実施形態の説明において、メモリモジュール122の物理的な配置については特に言及していない。メモリモジュール122の物理的な配置は、それらのメモリモジュールに割り振られたモジュールシリアル番号等によって制限されない。 (3) In the description of the above-described embodiment, the physical arrangement of the memory module 122 is not particularly referred to. The physical arrangement of the memory modules 122 is not limited by the module serial number assigned to the memory modules.
(4)記憶装置12(第1実施形態)または記憶装置22(第2実施形態)が、ホスト装置11からの要求に応じてデータを書き込む際、ミラーリングを行う構成が採用されてもよい。図14は、第1実施形態にかかる記憶装置12がミラーリングを行う場合の、同時書込クラスタグループ、クラスタ、およびブロックの対応関係を、i=4、j=3の場合を例として示した図である。 (4) A configuration in which mirroring is performed when the storage device 12 (first embodiment) or the storage device 22 (second embodiment) writes data in response to a request from the host device 11 may be employed. FIG. 14 is a diagram illustrating, as an example, the correspondence relationship between the simultaneous writing cluster group, the cluster, and the block when i = 4 and j = 3 when the storage device 12 according to the first embodiment performs mirroring. It is.
(5)上述した実施形態において、メモリモジュール122に対するクラスタおよびブロックの割り振りは巡回的に行われる。クラスタおよびブロックの巡回的な割り振りは、連続する2つのブロックを異なるメモリモジュール122に割り振るための方法の一例であって、本発明はこの点に関し限定されない。すなわち、連続する2つのブロックが同じメモリモジュール122に割り振られないように複数のブロックを複数のメモリモジュール122の間に割り振る方法であれば、他のいかなる方法が採用されてもよい。 (5) In the above-described embodiment, the allocation of clusters and blocks to the memory module 122 is performed cyclically. The cyclic allocation of clusters and blocks is an example of a method for allocating two consecutive blocks to different memory modules 122, and the present invention is not limited in this respect. That is, any other method may be adopted as long as a plurality of blocks are allocated between the plurality of memory modules 122 so that two consecutive blocks are not allocated to the same memory module 122.
(6)上述した実施形態において、制御装置121は、ホスト装置11において管理されるセクタ(ホスト装置11におけるアドレス)と、記憶装置12(第1実施形態)または記憶装置22(第2実施形態)において管理される複数のメモリモジュール122における記憶領域(記憶装置12におけるアドレス)との対応関係を、セクタサイズ、ブロックサイズ、クラスタサイズ、同時書込モジュール数等に基づく演算により特定する。制御装置121がホスト装置11と記憶装置12または22の各々におけるアドレスの対応関係を特定する方法は演算による方法に限られない。例えば、制御装置121がホスト装置11におけるアドレスと記憶装置12または22におけるアドレスの対応関係を示すテーブルを記憶しておき、当該テーブルを参照することによりそれらのアドレス間の対応関係を特定する方法が採用されてもよい。 (6) In the above-described embodiment, the control device 121 has a sector (address in the host device 11) managed by the host device 11, and the storage device 12 (first embodiment) or the storage device 22 (second embodiment). The correspondence relationship with the storage areas (addresses in the storage device 12) in the plurality of memory modules 122 managed in is determined by calculation based on the sector size, block size, cluster size, number of simultaneous writing modules, and the like. The method by which the control device 121 specifies the correspondence between addresses in each of the host device 11 and the storage device 12 or 22 is not limited to a calculation method. For example, there is a method in which the control device 121 stores a table showing the correspondence between the address in the host device 11 and the address in the storage device 12 or 22 and specifies the correspondence between these addresses by referring to the table. It may be adopted.
(7)上述した第2実施形態において、記憶装置22が備える複数のデータバス123の各々に接続されるメモリモジュール122の数は同じ(n個)である。記憶装置22が備える複数のデータバス123の各々に接続されるメモリモジュール122の数は異なっていてもよい。この場合、制御装置121は、例えば同時書込クラスタグループに属するクラスタを示すテーブルを記憶しておき、当該テーブルを参照することによりデータの読み書きを並行して行うメモリモジュール122を特定する。 (7) In the second embodiment described above, the number of memory modules 122 connected to each of the plurality of data buses 123 included in the storage device 22 is the same (n). The number of memory modules 122 connected to each of the plurality of data buses 123 included in the storage device 22 may be different. In this case, the control device 121 stores, for example, a table indicating clusters belonging to the simultaneous writing cluster group, and identifies the memory module 122 that performs data reading / writing in parallel by referring to the table.
(8)上述した実施形態において、制御装置121は各メモリモジュール122に対し、同じクラスタに割り振られるデータを一度に読み書きするように指示し、異なるクラスタに割り振られるデータは各々個別に読み書きするように指示する。制御装置121が各メモリモジュール122に対し一度に読み書きを指示するデータの上限値はクラスタサイズに限られず、クラスタサイズを超えるサイズのデータの読み書きを各メモリモジュール122に対し一度に指示することを許可する構成が採用されてもよい。 (8) In the above-described embodiment, the control device 121 instructs each memory module 122 to read / write data allocated to the same cluster at a time, and reads / writes data allocated to different clusters individually. Instruct. The upper limit value of the data that the control device 121 instructs the memory modules 122 to read / write at a time is not limited to the cluster size, and it is permitted to instruct the memory modules 122 to read / write data having a size exceeding the cluster size at a time. The structure to do may be employ | adopted.
(9)上述した実施形態において、ブロックに対応するセクタはセクタシリアル番号により一意に特定される。これに代えて、例えば、制御装置121がホスト装置11から取得した書き込み対象のデータの先頭セクタから順に所定数のセクタをブロックに割り振る構成が採用されてもよい。この場合、制御装置121は、例えばデータの書き込み指示に伴いセクタとブロックの対応関係をテーブルに記録し、データの読み出し時には当該テーブルを参照して読み出し対象のデータの格納されているブロックを特定する。 (9) In the embodiment described above, the sector corresponding to the block is uniquely specified by the sector serial number. Instead of this, for example, a configuration may be adopted in which the control device 121 allocates a predetermined number of sectors to blocks in order from the first sector of data to be written acquired from the host device 11. In this case, for example, the control device 121 records the correspondence relationship between the sector and the block in accordance with the data write instruction, and identifies the block in which the data to be read is stored with reference to the table when reading the data. .
(10)上述した実施形態において、指示手段1213は、ステップS109(図7)においてデータの書き込みを指示する際、指示先のメモリモジュール122の各々に対し、当該メモリモジュール122に書き込まれるべきデータをクラスタ内ブロック番号Bcの順に読み出して順次、指示先のメモリモジュール122に引き渡す。その結果、書き込み対象のデータのブロック単位での並び替えが、当該データの書き込み指示と同時に行われる。データの書き込みにおけるブロック単位のデータの並び替えの処理のタイミングは書き込み指示と同時でなくてもよい。例えば、指示手段1213が、データの書き込み指示に先んじて、記憶手段1212においてブロック単位のデータの並び替えを行った後、並び替えられたデータを記憶手段1212から読み出して、指示先のメモリモジュール122に引き渡す構成が採用されてもよい。 (10) In the embodiment described above, when the instruction unit 1213 instructs to write data in step S109 (FIG. 7), the instruction unit 1213 sends the data to be written to the memory module 122 to each of the designated memory modules 122. The data is read out in the order of the block number Bc in the cluster, and sequentially transferred to the memory module 122 that is the instruction destination. As a result, the rearrangement of the write target data in units of blocks is performed simultaneously with the data write instruction. The timing of the data rearrangement process in units of blocks in the data write may not be the same as the write instruction. For example, after the instruction unit 1213 rearranges the data in units of blocks in the storage unit 1212 prior to the data write instruction, the rearranged data is read from the storage unit 1212 and the instruction destination memory module 122 is read out. A configuration of handing over may be adopted.
(11)上述した実施形態において、読出手段1216は、ステップS202(図9)においてデータの読み出しを行う際、読出元のメモリモジュール122から取得したデータをブロックシリアル番号Bsに応じた記憶手段1217の記憶領域に記憶させる。その結果、メモリモジュール122から取得したデータのブロック単位の並び替えが、当該データの記憶手段1217における一時的な記憶と同時に行われる。データの読み出しにおけるブロック単位のデータの並び替えの処理のタイミングは記憶手段1217における一時的な記憶と同時でなくてもよい。例えば、読出手段1216がメモリモジュール122から取得したデータを取得した順に記憶手段1217に記憶させ、ステップS204(図9)において引渡手段1218が読み出し対象のデータをホスト装置11に引き渡す際、読み出し対象のデータを記憶手段1217からブロックシリアル番号Bsの順に読み出してホスト装置11に引き渡す構成が採用されてもよい。また、読出手段1216がメモリモジュール122から取得したデータを取得した順に記憶手段1217に記憶させ、ステップS204(図9)において引渡手段1218が読み出し対象のデータをホスト装置11に引き渡す前に、読出手段1216または引渡手段1218が、記憶手段1217において読み出し対象のデータをブロックシリアル番号Bsの順に並び替える構成が採用されてもよい。 (11) In the embodiment described above, when the reading unit 1216 reads data in step S202 (FIG. 9), the reading unit 1216 stores the data acquired from the reading source memory module 122 in the storage unit 1217 according to the block serial number Bs. Store in the storage area. As a result, rearrangement of data acquired from the memory module 122 in units of blocks is performed simultaneously with temporary storage of the data in the storage unit 1217. The timing of the data rearrangement process in units of blocks in the data reading may not be simultaneous with the temporary storage in the storage unit 1217. For example, when the reading unit 1216 stores the data acquired from the memory module 122 in the storage unit 1217 in the order of acquisition, the transfer unit 1218 delivers the read target data to the host device 11 in step S204 (FIG. 9). A configuration may be employed in which data is read from the storage unit 1217 in the order of the block serial number Bs and delivered to the host device 11. Further, the reading unit 1216 stores the data acquired from the memory module 122 in the storage unit 1217 in the order of acquisition, and before the transfer unit 1218 delivers the data to be read to the host device 11 in step S204 (FIG. 9), the reading unit 1217 A configuration may be employed in which the storage unit 1217 rearranges the data to be read in the order of the block serial number Bs in the storage unit 1217.
1…データ記憶システム、2…データ記憶システム、11…ホスト装置、12…記憶装置、22…記憶装置、121…制御装置、122…メモリモジュール、123…データバス、1211…取得手段、1212…記憶手段、1213…指示手段、1215…取得手段、1216…読出手段、1217…記憶手段、1218…引渡手段、1221…メモリコントローラ、1222…メモリチップ DESCRIPTION OF SYMBOLS 1 ... Data storage system, 2 ... Data storage system, 11 ... Host device, 12 ... Storage device, 22 ... Storage device, 121 ... Control device, 122 ... Memory module, 123 ... Data bus, 1211 ... Acquisition means, 1212 ... Storage Means, 1213 ... Instruction means, 1215 ... Acquisition means, 1216 ... Reading means, 1217 ... Storage means, 1218 ... Delivery means, 1221 ... Memory controller, 1222 ... Memory chip

Claims (8)

  1.  i個(iは2≦iである自然数)のメモリモジュールの中の複数のメモリモジュールに対し並行してデータの読み書きを指示可能な制御装置であって、
     書き込み対象のデータを取得する取得手段と、
     前記書き込み対象のデータを一時的に記憶する記憶手段と、
     データを所定のデータサイズであるm毎に分割して得られるデータ単位をブロックとするとき、前記記憶手段に一時的に記憶されている書き込み対象のデータを、互いに連続する2つのブロックが異なるメモリモジュールに割り振られるように、前記i個のメモリモジュールの中のj個(jは2≦j≦iである自然数)のメモリモジュールに割り振り、当該割り振ったデータの書き込みを割り振り先のメモリモジュールの各々に対し1度に指示する処理をj個のメモリモジュールに関し並行して行う指示手段と
     を備える制御装置。
    A control device capable of instructing reading / writing of data in parallel to a plurality of memory modules of i (i is a natural number satisfying 2 ≦ i),
    An acquisition means for acquiring data to be written;
    Storage means for temporarily storing the data to be written;
    When the data unit obtained by dividing the data into predetermined data sizes for each m is a block, the write target data temporarily stored in the storage means is a memory in which two consecutive blocks are different from each other Each of the i memory modules is allocated to j memory modules (j is a natural number satisfying 2 ≦ j ≦ i), and writing of the allocated data is assigned to each of the allocated memory modules. A control device comprising: instruction means for performing processing for instructing at a time on j memory modules in parallel.
  2.  前記取得手段は、前記書き込み対象のデータの論理アドレスを取得し、
     前記指示手段は、前記取得手段により取得された論理アドレス、前記ブロックのデータサイズであるm、前記指示手段が並行してデータの書き込みを指示するメモリモジュールの個数であるj、メモリモジュールの総数であるiに基づき、所定の規則に従い、前記書き込み対象のデータの割り振り先のメモリモジュールと、当該割り振り先のメモリモジュールにおけるデータの書き込み先のアドレスを特定し、前記書き込み対象のデータの割り振り先のメモリモジュールに対し、特定した書き込み先のアドレスにおけるデータの書き込みを指示する
     請求項1に記載の制御装置。
    The acquisition unit acquires a logical address of the data to be written,
    The instruction means includes a logical address acquired by the acquisition means, m which is the data size of the block, j which is the number of memory modules which the instruction means instructs to write data in parallel, and the total number of memory modules. Based on a certain i, according to a predetermined rule, the memory module to which the data to be written is allocated, the address to which the data to be written in the memory module to be allocated is specified, and the memory to which the data to be written is allocated The control device according to claim 1, wherein the controller instructs the module to write data at the specified write destination address.
  3.  前記指示手段は、k個(kは2≦kである自然数)のブロックの集まりをクラスタとするとき、前記記憶手段に一時的に記憶されている書き込み対象のデータを前記i個のメモリジュールにクラスタ単位で割り振り、前記i個のメモリモジュールの中から所定の規則に従い選択されたj個(jは2≦j<iである自然数)のメモリモジュールに対し割り振ったデータの書き込みを並行して指示する
     請求項1に記載の制御装置。
    When the instruction unit sets a cluster of k blocks (k is a natural number satisfying 2 ≦ k) as a cluster, the write target data temporarily stored in the storage unit is stored in the i memory modules. Allocation in cluster units and instruct to write data allocated to j memory modules (j is a natural number satisfying 2 ≦ j <i) selected according to a predetermined rule from the i memory modules in parallel The control device according to claim 1.
  4.  前記取得手段は、前記書き込み対象のデータの論理アドレスを取得し、
     前記指示手段は、前記取得手段により取得された論理アドレス、前記ブロックのデータサイズであるm、前記指示手段が並行してデータの書き込みを指示するメモリモジュールの個数であるj、前記クラスタに含まれるブロックの個数であるk、メモリモジュールの総数であるiに基づき、所定の規則に従い、前記書き込み対象のデータの割り振り先のメモリモジュールと、当該割り振り先のメモリモジュールにおけるデータの書き込み先のアドレスを特定し、前記書き込み対象のデータの割り振り先のメモリモジュールに対し、特定した書き込み先のアドレスにおけるデータの書き込みを指示する
     請求項3に記載の制御装置。
    The acquisition unit acquires a logical address of the data to be written,
    The instruction means is included in the cluster, the logical address acquired by the acquisition means, m that is the data size of the block, j that is the number of memory modules that the instruction means instructs to write data in parallel. Based on k which is the number of blocks and i which is the total number of memory modules, the memory module to which the data to be written is allocated and the address to which the data is written in the memory module to which the data is to be written are specified according to a predetermined rule. The control device according to claim 3, wherein the controller instructs the memory module to which the write target data is allocated to write data at the specified write destination address.
  5.  前記i個のメモリモジュールの各々はh個(hは2≦h<iである自然数)のデータバスのいずれかに接続されており、
     前記指示手段は、同じデータバスに接続されている2以上のメモリモジュールが含まれないように選択されたj個(jは2≦j≦hである自然数)のメモリモジュールに対し、割り振ったデータの書き込みを並行して指示する
     請求項1乃至4のいずれかに記載の制御装置。
    Each of the i memory modules is connected to one of h data buses (h is a natural number satisfying 2 ≦ h <i),
    The instruction means assigns data to j memory modules (j is a natural number satisfying 2 ≦ j ≦ h) selected so as not to include two or more memory modules connected to the same data bus. The control device according to claim 1, wherein the writing is instructed in parallel.
  6.  前記h個のデータバスの各々にはn個(nは2≦である自然数)のメモリモジュールが接続されており、
     前記指示手段は、前記指示手段が並行してデータの書き込みを指示するメモリモジュールの個数であるj、1つのデータバスに接続されているメモリモジュールの個数であるnに基づき、所定の規則に従い、並行してデータの書き込みを指示するj個のメモリモジュールを選択する
     請求項5に記載の制御装置。
    Each of the h data buses is connected with n (n is a natural number satisfying 2 ≦) memory modules,
    The instruction means is based on j, which is the number of memory modules that the instruction means instructs to write data in parallel, and n, which is the number of memory modules connected to one data bus, according to a predetermined rule, The control device according to claim 5, wherein j memory modules instructing data writing are selected in parallel.
  7.  i個(iは2≦iである自然数)のメモリモジュールの中の複数のメモリモジュールに対し並行してデータの読み書きを指示可能なプロセッサに、
     書き込み対象のデータを取得する処理と、
     前記書き込み対象のデータを記憶手段に一時的に記憶させる処理と、
     データを所定のデータサイズであるm毎に分割して得られるデータ単位をブロックとするとき、前記記憶手段に一時的に記憶されている書き込み対象のデータを、互いに連続する2つのブロックが異なるメモリモジュールに割り振られるように、前記i個のメモリモジュールの中のj個(jは2≦j≦iである自然数)のメモリモジュールに割り振り、当該割り振ったデータの書き込みを割り振り先のメモリモジュールに対し1度に指示する処理をj個のメモリモジュールに関し並行して行う処理と
     を実行させるプログラム。
    A processor capable of instructing reading / writing of data to a plurality of memory modules in i (i is a natural number satisfying 2 ≦ i) in parallel,
    Processing to get the data to write,
    A process of temporarily storing the data to be written in a storage means;
    When the data unit obtained by dividing the data into predetermined data sizes for each m is a block, the write target data temporarily stored in the storage means is a memory in which two consecutive blocks are different from each other Allocate to j memory modules (j is a natural number satisfying 2 ≦ j ≦ i) among the i memory modules, and write the allocated data to the allocation destination memory module so as to be allocated to the modules. A program that executes processing for instructing at a time on j memory modules in parallel.
  8.  i個(iは2≦iである自然数)のメモリモジュールと、
     前記i個のメモリモジュールの中の複数のメモリモジュールに対し並行してデータの読み書きを指示可能な制御装置と
     を備え、
     前記制御装置は、
     書き込み対象のデータを取得する取得手段と、
     前記書き込み対象のデータを一時的に記憶する記憶手段と、
     データを所定のデータサイズであるm毎に分割して得られるデータ単位をブロックとするとき、前記記憶手段に一時的に記憶されている書き込み対象のデータを、互いに連続する2つのブロックが異なるメモリモジュールに割り振られるように、前記i個のメモリモジュールの中のj個(jは2≦j≦iである自然数)のメモリモジュールに割り振り、当該割り振ったデータの書き込みを割り振り先のメモリモジュールに対し1度に指示する処理をj個のメモリモジュールに関し並行して行う指示手段と
     を備える
     記憶装置。
    i memory modules (i is a natural number satisfying 2 ≦ i);
    A control device capable of instructing reading / writing of data in parallel to a plurality of memory modules of the i memory modules,
    The controller is
    An acquisition means for acquiring data to be written;
    Storage means for temporarily storing the data to be written;
    When the data unit obtained by dividing the data into predetermined data sizes for each m is a block, the write target data temporarily stored in the storage means is a memory in which two consecutive blocks are different from each other Allocate to j memory modules (j is a natural number satisfying 2 ≦ j ≦ i) among the i memory modules, and write the allocated data to the allocation destination memory module so as to be allocated to the modules. Instructing means for performing processing instructed at a time for j memory modules in parallel.
PCT/JP2014/074733 2014-09-18 2014-09-18 Control device for controlling writing of data to memory, program, and storage device WO2016042644A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/074733 WO2016042644A1 (en) 2014-09-18 2014-09-18 Control device for controlling writing of data to memory, program, and storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/074733 WO2016042644A1 (en) 2014-09-18 2014-09-18 Control device for controlling writing of data to memory, program, and storage device

Publications (1)

Publication Number Publication Date
WO2016042644A1 true WO2016042644A1 (en) 2016-03-24

Family

ID=55532710

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/074733 WO2016042644A1 (en) 2014-09-18 2014-09-18 Control device for controlling writing of data to memory, program, and storage device

Country Status (1)

Country Link
WO (1) WO2016042644A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025060068A1 (en) * 2023-09-22 2025-03-27 芯原微电子(成都)有限公司 Graphic processing method and apparatus, and computer-readable storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055878A (en) * 2000-08-09 2002-02-20 Sony Corp Data storage device
JP2006221651A (en) * 2005-02-12 2006-08-24 Samsung Electronics Co Ltd Memory address generation circuit and memory controller including the same
JP2010146326A (en) * 2008-12-19 2010-07-01 Toshiba Storage Device Corp Storage device, method of controlling same, and electronic device using storage device
JP2013137674A (en) * 2011-12-28 2013-07-11 Toshiba Corp Memory system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055878A (en) * 2000-08-09 2002-02-20 Sony Corp Data storage device
JP2006221651A (en) * 2005-02-12 2006-08-24 Samsung Electronics Co Ltd Memory address generation circuit and memory controller including the same
JP2010146326A (en) * 2008-12-19 2010-07-01 Toshiba Storage Device Corp Storage device, method of controlling same, and electronic device using storage device
JP2013137674A (en) * 2011-12-28 2013-07-11 Toshiba Corp Memory system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025060068A1 (en) * 2023-09-22 2025-03-27 芯原微电子(成都)有限公司 Graphic processing method and apparatus, and computer-readable storage medium

Similar Documents

Publication Publication Date Title
US10528464B2 (en) Memory system and control method
US8825947B1 (en) System and method for managing data access in non-volatile memory
JP6201242B2 (en) Architecture that enables efficient storage of data in NAND flash memory
EP2939100B1 (en) Method and system for asynchronous die operations in a non-volatile memory
CN102193872B (en) Memory system
US9336133B2 (en) Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
KR101502896B1 (en) Distributed memory cluster control apparatus and method using map reduce
US9734911B2 (en) Method and system for asynchronous die operations in a non-volatile memory
US20140189207A1 (en) Method and system for managing background operations in a multi-layer memory
JP2009238114A (en) Storage management method, storage management program, storage management apparatus, and storage management system
CN107025181B (en) Method for accessing memory unit, method and system for allocating memory request and memory controller
JP2013525912A5 (en) Storage system
US20140351512A1 (en) Capacity expansion method and device
TWI520152B (en) Data storage device and flash memory control method
US9600187B2 (en) Virtual grouping of memory
US20160034190A1 (en) Method for scheduling operation of a solid state disk
WO2016042644A1 (en) Control device for controlling writing of data to memory, program, and storage device
JP6882398B2 (en) Multiple processing system using a memory processor and its operation method
JP5730446B1 (en) Hierarchical storage system with trial area, storage controller and program
JP2012248109A (en) Memory unit having multiple channels and read command group generating method for compaction in the memory unit
JP2021529406A (en) System controller and system garbage collection method
JP2012128627A (en) Data transfer system
JP2018516406A5 (en)
TWI575445B (en) Method, system, and computer-readable recording medium for automated storage tiering
CN1523494A (en) Numerical controller

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14901953

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14901953

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP