JPWO2015083225A1 - Information processing apparatus, storage, and access control method - Google Patents
Information processing apparatus, storage, and access control method Download PDFInfo
- Publication number
- JPWO2015083225A1 JPWO2015083225A1 JP2015531385A JP2015531385A JPWO2015083225A1 JP WO2015083225 A1 JPWO2015083225 A1 JP WO2015083225A1 JP 2015531385 A JP2015531385 A JP 2015531385A JP 2015531385 A JP2015531385 A JP 2015531385A JP WO2015083225 A1 JPWO2015083225 A1 JP WO2015083225A1
- Authority
- JP
- Japan
- Prior art keywords
- storage
- data
- channel
- block
- writing
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本発明を適用した1システムは、処理部と、ブロック単位でデータの消去が行われる複数の記憶装置と、それぞれ、複数の記憶装置のなかで割り当てられた1つ以上の記憶装置上に存在する、データの書き込み用のブロックである予備ブロックを表す制御情報の格納に用いられる複数の記憶部と、複数の記憶装置へのデータの書き込みを要求する書込命令を処理部が発行した場合、複数の記憶部のなかで制御情報を用いる記憶部を選択し、該選択した記憶部に格納されている制御情報によって特定される予備ブロックに、書込命令により要求されたデータを書き込むアクセス部と、を有する。One system to which the present invention is applied exists on a processing unit, a plurality of storage devices from which data is erased in units of blocks, and one or more storage devices allocated among the plurality of storage devices. A plurality of storage units used for storing control information representing spare blocks that are blocks for writing data, and a processing unit that issues a write command for requesting data writing to a plurality of storage devices, a plurality of An access unit that selects a storage unit that uses control information from among the storage units, and writes data requested by a write command to a spare block specified by the control information stored in the selected storage unit; Have
Description
本発明は、ブロック単位でデータの消去を行う複数の記憶装置を管理するための技術に関する。 The present invention relates to a technique for managing a plurality of storage devices that erase data in units of blocks.
現在の情報処理装置(コンピュータ)の大部分には、不揮発性の半導体メモリが搭載されている。不揮発性の半導体メモリの一種であるフラッシュメモリは、近年、ストレージにも広く採用されている。SSD(Solid State Drive)は、フラッシュメモリを記憶媒体として採用している代表的なストレージである。フラッシュメモリが広く採用されるようになったのは、大容量のフラッシュメモリが比較的に安価になった、磁気ディスク装置(例えばハードディスク装置)などと比較して動作速度が高速である、といった理由からである。 Most current information processing apparatuses (computers) are equipped with nonvolatile semiconductor memories. In recent years, flash memory, which is a kind of nonvolatile semiconductor memory, has been widely used for storage. An SSD (Solid State Drive) is a typical storage that employs a flash memory as a storage medium. Flash memory has come to be widely adopted because large-capacity flash memory has become relatively inexpensive and has a higher operating speed than magnetic disk devices (for example, hard disk devices). Because.
フラッシュメモリには、NAND型と、NOR型とがある。ここでは便宜的に、NAND型のフラッシュメモリ(以降「NANDフラッシュメモリ」と表記。NOR型のフラッシュメモリは「NORフラッシュメモリ」と表記)を例にとり、一般的な制御方法について説明する。 Flash memory includes NAND type and NOR type. Here, for the sake of convenience, a general control method will be described by taking a NAND flash memory (hereinafter referred to as “NAND flash memory”; NOR flash memory is referred to as “NOR flash memory”) as an example.
NANDフラッシュメモリは、NORフラッシュメモリと比較して、大容量化(高集積化)が容易であり、且つ書き込みを高速に行えるという利点を備えている。しかし、NANDフラッシュメモリでは、1バイト単位の読み出しはできず、ランダムアクセスによる読み出しはNORフラッシュメモリよりも低速であるという欠点を有する。NANDフラッシュメモリ、及びNORフラッシュメモリは共に、数KBから数十KB程度のブロック単位でしか消去・書き込みができない。 Compared with a NOR flash memory, a NAND flash memory has the advantages that it is easy to increase the capacity (high integration) and can perform writing at high speed. However, the NAND flash memory cannot be read in units of 1 byte, and has a disadvantage that reading by random access is slower than the NOR flash memory. Both the NAND flash memory and the NOR flash memory can be erased / written only in block units of several KB to several tens KB.
NANDフラッシュメモリでは、通常、読み出し・書き込みはページ単位で実行され、消去は複数ページ分の容量を有する「ブロック」と呼ばれる単位で実行される。ページを書き込んだブロックには直ちに上書きを行うことはできない。上書きを行う場合、そのページが書き込まれたブロックを消去した後、上書きすべきページ、及びそのブロックの他のページを書き込まなければならない。多くの場合、書き込むべきページは、そのページが書き込まれているブロックの他のページと共に、別のブロックに書き込まれる。 In the NAND flash memory, reading / writing is normally performed in units of pages, and erasing is performed in units called “blocks” having a capacity for a plurality of pages. The block where the page is written cannot be overwritten immediately. When overwriting, after erasing the block in which the page is written, the page to be overwritten and the other pages of the block must be written. In many cases, the page to be written is written to another block along with other pages in the block where the page is written.
フラッシュメモリの記憶素子(セル)では、絶縁体となる酸化膜はその酸化膜を貫通する電子によって劣化する。そのため、各ブロックの消去・書き込み可能回数には限界がある。このことから、フラッシュメモリでは、特定のブロックに対する消去・書き込みが集中しないように平準化するアクセス制御が行われる。その平準化のアクセス制御のために、フラッシュメモリには、そのフラッシュメモリへのアクセスを制御するコントローラが用意されるのが普通である。 In a memory element (cell) of a flash memory, an oxide film serving as an insulator is deteriorated by electrons penetrating the oxide film. Therefore, there is a limit to the number of times that each block can be erased and written. For this reason, in the flash memory, access control for leveling is performed so that erasure / writing to a specific block is not concentrated. In order to control access for leveling, a flash memory is usually provided with a controller that controls access to the flash memory.
特定のブロックへの消去・書き込みが集中しないようにする平準化のための従来のアクセス制御方法としては、FIFO(First In First Out)を用いたものがある。 As a conventional access control method for leveling to prevent concentration of erasing / writing to a specific block, there is a method using FIFO (First In First Out).
この従来のアクセス制御方法では、NANDフラッシュメモリのなかで未使用のブロックをデータ書き込み用の予備ブロックとして、その予備ブロックを表す制御情報をFIFOに格納する。ページの書き込みを行う場合、そのページは、そのページが書き込まれているブロックの他のページと共に、FIFOから出力される制御情報によって特定される予備ブロックに書き込む。そのページが書き込まれているブロックは消去して予備ブロックとし、その予備ブロックの制御情報をFIFOに登録する。 In this conventional access control method, an unused block in the NAND flash memory is used as a spare block for writing data, and control information representing the spare block is stored in the FIFO. When writing a page, the page is written in a spare block specified by the control information output from the FIFO together with other pages of the block in which the page is written. The block in which the page is written is erased as a spare block, and the control information of the spare block is registered in the FIFO.
そのようにして、この従来のアクセス制御方法では、新たに発生した予備ブロックは、その時点で存在する予備ブロックのなかで最後に割り当てるように管理される。このため、特定のブロックに対する消去・書き込みが集中するのが回避され、予備ブロックの割り当ては平準化される。 As such, in this conventional access control method, a newly generated spare block is managed so as to be allocated last among the spare blocks existing at that time. For this reason, concentration of erasing / writing on a specific block is avoided, and the allocation of spare blocks is leveled.
この従来のアクセス制御方法では、FIFOは1つのみ用いられる。そのため、予備ブロックのなかで割り当ての対象となる予備ブロックは固定的に決定される。割り当ての対象となる予備ブロックを固定的に決定する結果、システム構成、或いは状況に応じて、アクセス速度を大きく低下させる場合がある。 In this conventional access control method, only one FIFO is used. Therefore, the spare block to be allocated among the spare blocks is fixedly determined. As a result of fixedly determining the spare block to be allocated, the access speed may be greatly reduced depending on the system configuration or the situation.
例えば複数のNANDフラッシュメモリが複数のチャネルでコントローラと接続されているシステム構成では、チャネル毎にNANDフラッシュメモリへのアクセスが可能である。それにより、このシステム構成では、或るチャネルを用いたアクセスが行われている、或いはアクセスが行われる状況下で、そのチャネルを用いてアクセスする予備ブロックが割り当てられる場合がある。 For example, in a system configuration in which a plurality of NAND flash memories are connected to a controller through a plurality of channels, the NAND flash memory can be accessed for each channel. As a result, in this system configuration, there is a case where a spare block to be accessed using the channel is allocated under a situation where access using the channel is performed or access is performed.
予備ブロックが、アクセスが集中しているチャネルを介してアクセスしなければならない場合、アクセスが集中しているほど、待ち時間は長くなる。その結果、予備ブロックへのデータの書き込みに要する時間は長くなり、アクセス速度は大きく低下する。また、予備ブロックにデータを書き込ませるアクセス以降に行われるアクセスのアクセス速度を大きく低下させる可能性もある。 If a spare block must be accessed through a channel where access is concentrated, the more concentrated the access, the longer the latency. As a result, the time required for writing data to the spare block becomes longer and the access speed is greatly reduced. In addition, there is a possibility that the access speed of access performed after the access for writing data in the spare block is greatly reduced.
アクセスの集中自体は、ガーベジコレクション、或いはデータ更新等を行う場合に発生しやすい。FIFOには、過去の状況に応じて予備ブロックの制御情報が格納される。そのため、FIFOが出力する制御情報によって、予備ブロックは現在の状況とは無関係に選択される。従い、アクセスが集中しているチャネルを介してアクセスする予備ブロックが連続して選択される可能性もある。 Concentration of access itself tends to occur when garbage collection or data update is performed. In the FIFO, control information of spare blocks is stored according to the past situation. Therefore, the spare block is selected regardless of the current situation based on the control information output from the FIFO. Accordingly, there is a possibility that spare blocks to be accessed through channels where access is concentrated are continuously selected.
NANDフラッシュメモリでは、データの書き込みのためのアクセスが行われる場合、ブロックの消去のためのアクセスも行われる。そのため、同じ領域にデータの上書きを行える半導体メモリを採用した場合と比較して、単位時間当たりに要求されるアクセス数(発行される命令数)は多くなりやすい。これは、アクセスの集中が発生しやすいことを意味する。 In the NAND flash memory, when an access for writing data is performed, an access for erasing a block is also performed. For this reason, the number of accesses required per unit time (the number of issued instructions) is likely to increase compared to the case where a semiconductor memory capable of overwriting data in the same area is employed. This means that access concentration is likely to occur.
アクセス速度は、アクセスが集中するほど、つまり、単位時間当たりのアクセス数が多くなるほど、低下しやすい。そのアクセス速度自体は、性能に大きく影響する。データを書き込む予備ブロックは、基本的に、任意に選択可能である。このことから、予備ブロックへのデータの書き込みのためのアクセスでは、アクセス速度の低下を抑えることも重要と思われる。このことは、データの上書きが直ちに行えない記憶装置全般に云えることである。 The access speed tends to decrease as the access concentrates, that is, as the number of accesses per unit time increases. The access speed itself greatly affects performance. The spare block for writing data can basically be arbitrarily selected. For this reason, it is considered important to suppress a decrease in access speed in access for writing data to the spare block. This is true for all storage devices that cannot immediately overwrite data.
1側面では、本発明は、データの上書きが直ちに行えない記憶装置へのアクセス速度の低下を抑制するための技術を提供することを目的とする。 In one aspect, an object of the present invention is to provide a technique for suppressing a decrease in access speed to a storage device in which data cannot be overwritten immediately.
本発明を適用した1システムは、処理部と、ブロック単位でデータの消去が行われる複数の記憶装置と、それぞれ、複数の記憶装置のなかで割り当てられた1つ以上の記憶装置上に存在する、データの書き込み用のブロックである予備ブロックを表す制御情報の格納に用いられる複数の記憶部と、複数の記憶装置へのデータの書き込みを要求する書込命令を処理部が発行した場合、複数の記憶部のなかで制御情報を用いる記憶部を選択し、該選択した記憶部に格納されている制御情報によって特定される予備ブロックに、書込命令により要求されたデータを書き込むアクセス部と、を有する。 One system to which the present invention is applied exists on a processing unit, a plurality of storage devices from which data is erased in units of blocks, and one or more storage devices allocated among the plurality of storage devices. A plurality of storage units used for storing control information representing spare blocks that are blocks for writing data, and a processing unit that issues a write command for requesting data writing to a plurality of storage devices, a plurality of An access unit that selects a storage unit that uses control information from among the storage units, and writes data requested by a write command to a spare block specified by the control information stored in the selected storage unit; Have
本発明を適用した1システムでは、データの上書きが直ちに行えない記憶装置へのアクセス速度の低下を抑制することができる。 In one system to which the present invention is applied, it is possible to suppress a decrease in access speed to a storage device in which data cannot be overwritten immediately.
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図1は、本実施形態による情報処理装置の構成例を説明する図である。本実施形態による情報処理装置は、例えばサーバであり、図1に表すように、2個のCPU(Central Processing Unit)1(1−1、1−2)、2つのメモリ2(2−1、2−2)、2台のSSD(Solid State Drive)3(3−0、3−1)、I/O(Input/Output)ハブ4、及びFWH(FirmWare Hub)5を備えている。Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a diagram illustrating a configuration example of the information processing apparatus according to the present embodiment. The information processing apparatus according to the present embodiment is, for example, a server, and as illustrated in FIG. 1, two CPUs (Central Processing Unit) 1 (1-1, 1-2), two memories 2 (2-1, 2-2) Two SSDs (Solid State Drives) 3 (3-0, 3-1), an I / O (Input / Output)
各SSD3は、本実施形態によるストレージである。2台のSSD3は、例えば冗長化のために情報処理装置に搭載されている。各CPU1は、FWH5に格納されているファームウェアをメモリ2に読み出して実行することにより、各SSD3へのアクセスが可能となる。
Each
各SSD3には、例えば各CPU1が処理に用いるデータの他に、各CPU1が実行するプログラム、具体的にはOS(Operating System)、及びアプリケーション・プログラム等が格納されている。このOSには、SSD3を含む各種記憶装置上のデータ、及び各種記録媒体上のデータを管理するためのプログラムであるファイルシステムが搭載されている。また、OSは、仮想記憶をサポートしている。
Each
各SSD3には、コントローラ(図1中「NAND Controller」と表記)30、及び複数のNANDフラッシュメモリ(図1中「Device」と表記。以降「デバイス」と表記する)31(31−0−0〜31−n−2)が含まれる。コントローラ30と各デバイス31は計n+1個のチャネルで接続されている。
Each
本実施形態では、各チャネルに3個のデバイス31が接続されている。デバイス31に符号として付した「31−0−0」の最後の「0」は、同じチャネルに接続されているデバイス31間の識別情報であるデバイス番号が「0」であることを表している。その前の「0」は、チャネルの識別情報として割り当てられた番号(チャネル番号)が0であることを表している。それにより、「31−0−0」は、チャネル番号が0のチャネルに接続されているデバイス番号が0のデバイス31であることを表している。また、「31−n−1」は、チャネル番号がnのチャネルに接続されているデバイス番号が1のデバイス31であることを表している。
In the present embodiment, three
図2は、SSDの構成例を説明する図である。図2に表すように、コントローラ30には、各チャネルに3つのデバイス31が接続されている。コントローラ30は、アドレス変換部301、デマルチプレクサ302、書き込み制御機構303、データキュー304、複数のFIFO305(305−0−0〜305−n−2)、及びマルチプレクサ306を備えている。図2では、各CPU1と、各SSD3との間に存在するI/Oハブ4は便宜的に省いている。
FIG. 2 is a diagram for explaining a configuration example of an SSD. As shown in FIG. 2, the
FIFO305に符号として付した「305−0−0」は、デバイス31と同様に、チャネル番号が0のチャネルに接続されているデバイス番号が0のデバイス31−0−0用のFIFO31であることを表している。図2中に表記の「CH#0 DEV#0用」は、このことを表している。つまり「CH#0」「DEV#0」はそれぞれ、チャネル番号が0のチャネル、デバイス番号が0のデバイス31を表している。また、「305−n−2」は、チャネル番号がnのチャネルに接続されているデバイス番号が2のデバイス31−n−2用のFIFO31であることを表している。図2中に表記の「CH#n DEV#2用」は、このことを表している。このように、本実施形態では、FIFO305は、チャネル毎、デバイス31毎に設けられている。
“305-0-0” added to the
CPU1は、SSD3にアクセスを行う場合、コマンドを発行する。そのコマンドは、データの読み出しを要求するリードコマンドの場合、コマンドの種類を表すコマンド種別データ、及びアクセス先を表す論理アドレスを含む。データの書き込みを要求するライトコマンドでは、他に、書き込むべきデータ(ページ)を含む。論理アドレスはアドレス変換部301に入力される。コマンド種別データは書き込み制御機構303に、データ(ページ)はデータキュー304にそれぞれ入力される。
The
CPU1が実行するOSは、仮想記憶をサポートする。そのため、CPU1は、データを論理アドレスで扱う。しかし、デバイス31へのアクセスは、物理アドレスで行わなければならない。このことから、アドレス変換部301は、入力した論理アドレスを物理アドレスに変換する。
The OS executed by the
図4は、SSDへのデータの書き込み時のコントローラの動作を説明する図である。その図4では、理解を容易とするために、想定するデバイス31は1つのみとしている。ここで図4を参照し、ライトコマンド発行時におけるアドレス変換部301を含むコントローラ30の動作について具体的に説明する。
FIG. 4 is a diagram for explaining the operation of the controller when data is written to the SSD. In FIG. 4, for the sake of easy understanding, only one
SSD3に搭載されている各デバイス31は、ブロックと呼ばれる記憶領域単位でしか消去・書き込みを行うことができない。仮想記憶を用いる情報処理装置では、通常、データの読み出し・書き込みはページ単位で実行される。ブロックは、複数ページ分の容量を有する。
Each
OSに搭載されたファイルシステム40は、論理アドレスを用いて、データをページ単位で管理する。ここでは、SSD3上のブロックとの対応関係を明確にするために、ファイルシステム40が管理するページを仮想的なブロックに分けて表している。図4では、その仮想的なブロックを「論理ブロック」と表記し、デバイス31上のブロックと区別している。デバイス31上のブロックは「物理ブロック」と表記している。
The
図4中に表記の「論理ブロック#0(L0)」は、ブロック番号が「0」の論理ブロックの別表現が「L0」であることを表している。「L0−0」〜「L0−3」は、ブロック番号が「0」の論理ブロックを構成するページを表している。それにより、ここでは、各論理ブロック(及びデバイス31上の各物理ブロック)に4つのページが含まれると想定している。以降、便宜的に、特定の論理ブロックを指す場合には「L0」「L1」等を符号として付すことにする。任意の論理ブロックを指す場合には符号として「L」を付すこととする。 “Logical block # 0 (L0)” shown in FIG. 4 indicates that another expression of the logical block having the block number “0” is “L0”. “L0-0” to “L0-3” represent pages constituting the logical block having the block number “0”. Thereby, it is assumed here that each logical block (and each physical block on the device 31) includes four pages. Hereinafter, for the sake of convenience, when referring to a specific logical block, “L0”, “L1”, etc. will be given as symbols. When an arbitrary logical block is indicated, “L” is attached as a symbol.
一方、図4中に表記の「物理ブロック#0(P0)」は、ブロック番号として「0」が割り当てられた物理ブロックの別表現が「P0」であることを表している。物理ブロックでも論理ブロックLと同様に、特定の物理ブロックを指す場合には「P0」「P1」等を符号として付し、任意の物理ブロックを指す場合には「P」を符号として付すこととする。 On the other hand, “physical block # 0 (P0)” shown in FIG. 4 indicates that another representation of the physical block to which “0” is assigned as the block number is “P0”. Similarly to the logical block L, in the physical block, “P0”, “P1” or the like is attached as a code when indicating a specific physical block, and “P” is added as a code when indicating an arbitrary physical block. To do.
コントローラ30は、論理ブロックL(論理アドレス)と物理ブロックP(物理アドレス)間の対応関係の特定に、ブロック変換テーブル301aを用いている。このブロック変換テーブル301aは、アドレス変換部301が管理するテーブルであり、論理ブロックL毎に、その論理ブロックLに対応付けられた物理ブロックPを表す。そのため、アドレス変換部301は、ファイルシステム40(CPU1)が命令で指定する論理アドレスから論理ブロックLを特定し、特定した論理ブロックLを用いてブロック変換テーブル301aを参照して、アクセスすべき物理ブロックPを特定することができる。図4では、ファイルシステム40から論理ブロックL4内の論理アドレスが指定されたことにより、物理ブロックP7をアドレス変換部301が特定したことを表している。
The
ファイルシステム40が要求するアクセスが読み出しであった場合、コントローラ30は、ブロック変換テーブル301aを参照して特定した物理ブロックP7からデータを読み出す。データの読み出しは、物理アドレスをアドレス変換部301が出力し、必要な制御信号を書き込み制御機構303が出力することで実現される。
When the access requested by the
データを読み出すためにアドレス変換部301から出力された物理アドレスは、デマルチプレクサ302を介して、そのデータを格納したデバイス31に入力される。そのために、アドレス変換部301は、デマルチプレクサ302を制御し、物理アドレスを出力させるべきチャネルに出力させる。書き込み制御機構303が出力する制御信号には、コマンド・ラッチ・イネーブル、アドレス・ラッチ・イネーブル、チップ・イネーブル、ライト・イネーブル、リード・イネーブル、等がある。
The physical address output from the
物理ブロックPから読み出されたデータは、データキュー304を介してCPU1に出力される。このデータキュー304は、各デバイス31からCPU1へのデータ出力、及びCPU1から各デバイス31へのデータ出力のための記憶装置である。各デバイス31から読み出されたデータは一旦、データキュー304に格納される。CPU1から出力されたデータも一旦、データキュー304に格納される。
Data read from the physical block P is output to the
ファイルシステム40が要求するアクセスが書き込みであった場合、コントローラ30は、未使用の物理ブロックPのなかの何れかの物理ブロックPにデータを書き込む。図4では、未使用の物理ブロックPのなかから物理ブロックP8が選択され、物理ブロックP7が割り当てられていた各ページL4−0〜L4−3が物理ブロックP8に書き込まれたことを表している。その結果、ブロック変換テーブル301aでは、論理ブロックL4に対応付けられた物理ブロックPは、物理ブロックP7から物理ブロックP8に更新される。物理ブロックP7は、データの消去が行われ、ブロック変換テーブル301aでは、何れの論理ブロックLとも対応付けられない。それにより、物理ブロックP7は、以降、未使用の物理ブロックPとして扱われる。未使用の物理ブロックPは、以降、「予備ブロック」と表記する。図4において、各ページL4−0〜L4−3が割り当てられる前の物理ブロックP8に「予備」を表記しているのは、そのためである。
When the access requested by the
上記のように、FIFO305は、チャネル毎、デバイス31毎に設けられている。これらのFIFO305は、データを書き込む予備ブロックPの選択に用いられる。
As described above, the
データが格納されている物理ブロックPへのデータ(ページ)の上書きは行うことはできない。そのため、既にデータ(ページ)が格納されている物理ブロックPへの上書きを行う場合、その物理ブロックPの消去を行わなければならない。しかし、物理ブロックPの消去・書き込み可能回数には限界がある。その限界により、特定の物理ブロックPに対する消去・書き込みが集中しないように、消去・書き込みのためのアクセスは平準化する必要がある。その平準化のために、チャネル毎、デバイス31毎に設けたFIFO305は用いられる。
Data (page) cannot be overwritten on the physical block P in which data is stored. Therefore, when overwriting a physical block P in which data (page) is already stored, the physical block P must be erased. However, there is a limit to the number of times that the physical block P can be erased and written. Due to the limitation, it is necessary to level the access for erasing / writing so that the erasing / writing for a specific physical block P is not concentrated. For leveling, the
アドレス変換部301は、物理ブロックPの消去が行われた場合、或いはブロック変換テーブル301a上で物理ブロックPへの論理ブロックLの対応付けを解除した場合、その物理ブロックPを表す情報(例えばブロック番号。以降「識別情報」と表記)を対応するFIFO305に保持させる。例えば消去が行われた、或いは対応付けが解除された物理ブロックPがデバイス31−0−0上に存在する場合、アドレス変換部301は、その物理ブロックPの識別情報(物理ブロックPと共に、デバイス31−0−0を特定可能な情報)をFIFO305−0−0に保持させる。ここでは、FIFO305への識別情報の保持は、データの消去によって行われると想定する。
When the physical block P is erased or when the association of the logical block L with the physical block P is canceled on the block conversion table 301a, the
物理ブロックPの消去は、その消去を要求する消去命令の発行によって行われる。消去対象となる物理ブロックPを指定する識別情報(例えばブロック番号)は、アドレスとして与えられる。アドレス変換部301は、例えば書き込み制御機構303から通知されるコマンド種別、及びアドレス(ブロック番号)から、消去が行われる物理ブロックPを特定し、その物理ブロックPの識別情報を対応するFIFO305に格納する。
The physical block P is erased by issuing an erase command requesting the erase. Identification information (for example, a block number) specifying the physical block P to be erased is given as an address. The
各FIFO305が出力する識別情報のうちの一つは、マルチプレクサ306によって選択され、選択された識別情報はアドレス変換部301に出力される。それにより、アドレス変換部301は、マルチプレクサ306から入力した識別情報が表す物理ブロックPにアクセスするための物理アドレスを出力する。識別情報が選択されたFIFO305は、例えばアドレス変換部301の制御により、次に出力すべき識別情報を出力する。それにより、FIFO305は、識別情報の選択により、保持内容が更新される。マルチプレクサ306における識別情報の選択は、書き込み制御機構303が出力する選択信号に従って行われる。
One of the identification information output from each
図5は、データの書き込み時に各チャネルを介して行われるアクセス例を説明するタイムチャートである。ここで図5を参照し、各FIFO305から出力される識別情報の選択方法、及びその識別情報の選択を通して実現されるアクセスについて具体的に説明する。
FIG. 5 is a time chart for explaining an example of access performed through each channel when data is written. Here, with reference to FIG. 5, the selection method of the identification information output from each
図5において、図5(a)に表記の「FIFOから指定される予備ブロック」とは、マルチプレクサ306からアドレス変換部301に出力される識別情報によって指定される予備ブロックPのことである。図5(a)に表記の「CH0 DEV1 ブロック1」は、チャネル番号が0のチャネルに接続されたデバイス31−0−1上のブロック番号が1の物理ブロックPを意味している。図2に表す構成では、各チャネルには3つのデバイス31が接続されている。しかし、図5では、各チャネルに4つ以上のデバイス31が接続されていると想定している。
In FIG. 5, “reserved block designated from FIFO” shown in FIG. 5A is a spare block P designated by the identification information output from the
図5(b)に表記の「CPU―IF」は、CPU1から入力するデータであることを表している。そのデータとして、図5(b−1)に書込命令(ライトコマンド)、図5(b−2)に書き込みを要求されたデータ(書込データ)をそれぞれ表している。ここでは、ライトコマンドは書込データを除く部分のデータを指す意味で用いている。
“CPU-IF” shown in FIG. 5B represents data input from the
図5(b−1)に表記の「Aコマンド」〜「Eコマンド」はそれぞれ、異なるライトコマンドを表している。図5(b−2)に表記の「Aデータ」〜「Eデータ」は、「Aコマンド」〜「Eコマンド」の書込データを表している。 “A command” to “E command” shown in FIG. 5B-1 represent different write commands. “A data” to “E data” shown in FIG. 5B-2 represent write data of “A command” to “E command”.
図5(c)に表記の「Contoroller−IF」は、コントローラ30の制御によってアクセスが行われるチャネルを表している。ここでは、チャネルとして、それぞれ0〜4のチャネル番号が割り当てられたチャネル0〜4の計5つのチャネルが存在することを想定している(図5(c−0)〜図5(c−4))。
“Controller-IF” shown in FIG. 5C represents a channel that is accessed under the control of the
図5(b−1)に表すようなCPU1からのA〜Eコマンドの入力により、チャネル0〜4では、図5(c−0)〜図5(c−4)に表すようにA〜Eコマンドの処理が並行する形で行われ、A〜Eデータの書き込みは独立して行われる。図5(a)に表すような識別情報の選択は、チャネル0〜4で並行して、言い換えればチャネル0〜4に分散させて、A〜Eコマンドを処理できるように行われる。
When the A to E commands from the
図5(a)に表すような識別情報の選択は、チャネル0〜4のなかで他のコマンドによるアクセスが行われていないチャネルの利用を優先させていることを意味する。そのため、他のコマンドによるアクセスの終了を待つ待ち時間は最小限に抑えることができる。この結果、CPU1から連続して複数のライトコマンドを入力したとしても、その複数のライトコマンドの処理に要する時間を最小か、或いは最小に近い時間にすることができる。これは、ライトコマンドによるアクセスのアクセス速度の低下が最小限に抑えられることを意味する。
Selection of identification information as shown in FIG. 5A means that priority is given to the use of channels that are not accessed by other commands among
ライトコマンドの実行によるアクセス速度の低下を最小限に抑えることにより、アクセスが集中するチャネルの発生も抑えられるようになる。これは、単位時間当たりに可能なアクセス数を最大レベルに維持できるようになるからである。そのため、ライトコマンドによるアクセスのアクセス速度だけでなく、基本的に全てのアクセスのアクセス速度の低下が抑制される。 By minimizing the decrease in the access speed due to the execution of the write command, it is possible to suppress the occurrence of channels where access is concentrated. This is because the number of accesses possible per unit time can be maintained at the maximum level. Therefore, not only the access speed of the access by the write command but basically a decrease in the access speed of all accesses is suppressed.
本実施形態では、図5(c)(図5(c−0)〜図5(c−4))に表すように、チャネル0〜4のなかでアクセスが行われていないチャネルが複数、存在している場合、異なるチャネルを選択させていくようにしている。
In this embodiment, as shown in FIG. 5 (c) (FIG. 5 (c-0) to FIG. 5 (c-4)), there are a plurality of channels that are not accessed among the
例えばチャネル0では、Aデータの書き込みが終了した後に、別のライトコマンドを処理できる状況に移行する。その状況となっても、D及びEコマンドの処理に用いるチャネルは、チャネル3→チャネル4の順に選択している。これは、チャネル間で予備ブロックPの選択に偏りが生じないようにするためである。異なるチャネルの利用を優先させることにより、チャネル間の平準化を実現させることができる。
For example, in
各チャネルには、複数のデバイス31が接続されている。各チャネルでの予備ブロックPの選択では、異なるデバイス31を選択させていくようにしている。それにより、例えば図2に表すチャネル0と接続された3つのデバイス31−0−0〜31−0−2では、デバイス31−0−0の予備ブロックPが選択された後、デバイス31−0−1、或いは31−0−2の予備ブロックPの選択を優先させるようにしている。これは、同じチャネルと接続されたデバイス31間で予備ブロックPの選択に偏りが生じないようにするためである。異なるデバイス31の利用を優先させることにより、同じチャネルと接続されたデバイス31間の平準化を実現させることができる。
A plurality of
複数のチャネル毎にFIFO305を設けた場合、アクセスが行われているチャネルを避けて、予備ブロックPを選択できるとは限らない。このことから、本実施形態では、チャネル毎にFIFO305を設けている。
When the
チャネル毎に1つのFIFO305を設けても、迅速なアクセスが可能なチャネルを用いたアクセスを行うことはできる。しかし、各FIFO305から取り出される識別情報は、過去の状況によってFIFO305に保持された識別情報である。そのため、1つのFIFO305から順次、取り出される識別情報の流れは、現在の状況に合わない可能性がある。また、同じチャネルに接続された各デバイス31へのアクセスの偏りがあっても、その偏りを修正するのは困難である。このようなことから、本実施形態では、各チャネルに対し、そのチャネルに接続されているデバイス31の数分のFIFO305を設けている。デバイス31毎にFIFO305を設けることにより、過去のアクセスの偏りを修正し、より望ましい平準化を実現することができる。
Even if one
マルチプレクサ306は、書き込み制御機構303が出力する選択信号に従って、FIFO305を選択する。チャネル間、同じチャネルに接続されたデバイス31間の平準化、及び図5に表すようなアクセス制御は、マルチプレクサ306を用いたFIFO305の選択を通して実現される。以降、チャネル間、同じチャネルに接続されたデバイス31間の平準化、及び図5に表すようなアクセス制御を実現させる書き込み制御機構303について詳細に説明する。
The
図3は、書き込み制御機構の機能構成例を説明する図である。書き込み制御機構303は、図3に表すように、予備ブロックチェック回路331、ビジーチェック回路332、状況チェック回路333、チャネル選択回路334、デバイス選択回路335、メモリ336、及び2つのインタフェース337、338を備えている。
FIG. 3 is a diagram for explaining a functional configuration example of the write control mechanism. As shown in FIG. 3, the
インタフェース337は、CPU1との通信を行う構成要素である。インタフェース337は、CPU1から書き込み命令を入力した場合、入力した書き込み命令を状況チェック回路333に出力する。
The
予備ブロックチェック回路331は、FIFO305毎に、予備ブロックPの識別情報が存在するか否かの確認を行う。予備ブロックPの識別情報が存在するか否かの確認には、各FIFO305から取得される使用状況情報が用いられる。この使用状況情報は、例えばFIFO305から出力される識別情報の有無を表す情報である。FIFO305から出力される識別情報は、使用状況情報として用いることができる。
The spare
各デバイス31は、ライト動作中、消去動作中、或いはリード動作中には、ビジー(Busy)信号(RY/BY=“L”)を出力し、動作の完了により、レディ(Ready)信号(RY/BY=“H”)を出力する。ビジーチェック回路332は、チャネル毎に、ビジー信号が出力されているか否かを確認する。
Each
状況チェック回路333は、データの書き込みが行える状況か否かを確認する。その確認は、予備ブロックチェック回路331、及びビジーチェック回路332の各確認結果を用いて行われる。それにより、状況チェック回路333は、ビジー信号が出力されていないチャネルに接続され、且つ予備ブロックPを有するデバイス31が存在する場合に、データの書き込みが行える状況と判定する。その判定結果は、チャネル選択回路334に出力される。
The
メモリ336には、書込命令の処理結果を表す履歴情報が格納される。その履歴情報は、少なくとも、直前の書込命令で選択したチャネルの識別情報(チャネル番号)、及び各チャネルで最後に選択したデバイス31を表す識別情報を特定可能な情報である。この履歴情報は、チャネル選択回路334、及びデバイス選択回路335も参照する。
The memory 336 stores history information representing the processing result of the write command. The history information is information that can at least identify the identification information (channel number) of the channel selected by the immediately preceding write command and the identification information representing the
チャネル選択回路334は、予備ブロックチェック回路331、及びビジーチェック回路332の各確認結果、及びメモリ336の履歴情報を参照し、予備ブロックPへの書き込みに用いるべきチャネルを選択する。そのチャネルの選択は、履歴情報が表すチャネル番号の次のチャネル番号が割り当てられたチャネルから、ビジー信号が出力されておらず、且つ予備ブロックPを有するデバイス31が接続されているという条件を満たしているか否かを確認していくことで行われる。チャネルの選択結果は、デバイス選択回路335に出力される。
The
デバイス選択回路335は、予備ブロックチェック回路331の確認結果、及びメモリ336の履歴を参照し、チャネル選択回路334が選択したチャネルに接続されているデバイス31のなかから、データを書き込ませるデバイス31を選択する。そのデバイス31の選択は、チャネル選択回路334が選択したチャネルに接続され、履歴が表すそのチャネルで最後に選択したデバイス31とは別のデバイス31から、予備ブロックPが存在するか否かを確認していくことで行われる。
The
デバイス選択回路335がデバイス31を選択することにより、識別情報を選択すべきFIFO305が決定する。このことから、デバイス選択回路335は、デバイス31の選択結果から生成される選択信号をマルチプレクサ306に出力する。また、デバイス選択回路335は、デバイス31の選択結果をインタフェース338に出力する。
When the
インタフェース338は、各デバイス31へのアクセスのための制御信号を出力する。インタフェース338は、デバイス選択回路335の選択結果によって指定されるデバイス31に制御信号を出力する。そのデバイス31には、アドレス変換部301から論理アドレス、データキュー304から1物理ブロックP分のデータがそれぞれ出力される。そのため、そのデバイス31の予備ブロックPに、1物理ブロックP分のデータが書き込まれる。
The
デバイス選択回路335による選択信号の生成には、各チャネルで行われているアクセス状況、各チャネルに接続されている各デバイス31の状態(予備ブロックの有無)、及び履歴情報が反映される。そのため、この選択信号に従ったマルチプレクサ306によるFIFO305(識別情報)の選択を通して、チャネル間、同じチャネルに接続されたデバイス31間の平準化、及び図5に表すようなアクセス制御が実現される。
The generation of the selection signal by the
図6は、データ書き込み時のコントローラの動作を表すフローチャートである。最後に図6を参照し、CPU1から書込命令(ライトコマンド)を受信した場合のコントローラ30の動作を詳細に説明する。図6にフローチャートで表す動作は、CPU1から受信した1書込命令のみの処理を行うことを想定している。
FIG. 6 is a flowchart showing the operation of the controller during data writing. Finally, with reference to FIG. 6, the operation of the
図6では、3つの枠にそれぞれ「333」〜「335」の符号を付している。「333」〜「335」が付された枠内の処理ステップは、それぞれ、状況チェック回路333、チャネル選択回路334、及びデバイス選択回路335の各動作を表している。
In FIG. 6, the symbols “333” to “335” are attached to the three frames, respectively. The processing steps in the frames with “333” to “335” represent the operations of the
CPU1から発行された書込命令は、書き込み制御機能303のインタフェース337によって受信され、受信された書込命令はインタフェース337から状況チェック回路333に出力される。状況チェック回路333は、書込命令の入力により、ビジーチェック回路332から、チャネル毎に行われたビジー信号の確認結果を入力し、ビジー信号が出力されていないチャネルがあるか否か判定する(S1)。何れかのチャネルでビジー信号が出力されていない場合、S1の判定はYesとなってS3に移行する。全てのチャネルでビジー信号が出力されている場合、S1の判定はNoとなってS2に移行する。
The write command issued from the
S2では、状況チェック回路333は、一定時間、待機する。その一定時間とは、例えばビジーチェック回路332から新たに確認結果を入力するまでの時間である。一定時間が経過すると、上記S1に戻る。それにより、状況チェック回路333は、全てのチャネルでビジー信号が出力されている状況では、ビジー信号が出力されていないチャネルが出現するまで待つ。
In S2, the
S3では、状況チェック回路333は、予備ブロックチェック回路331から確認結果を入力し、ビジー信号が出力されていない何れかのチャネルに接続された何れかのデバイス31上に予備ブロックPが存在するか否か判定する。ビジー信号が出力されていない1つ以上のチャネルが存在し、且つ存在する何れかのチャネルに予備ブロックPを有するデバイス31が接続されていた場合、S3の判定はYesとなってS5に移行する。ビジー信号が出力されていない全てのチャネルに、予備ブロックPを有するデバイス31が接続されていない場合、S3の判定はNoとなってS4に移行する。
In S3, the
ビジーチェック回路332による新たな確認結果は、状況チェック回路333に随時、入力される。そのため、S3では、新たにビジー信号が出力されなくなったチャネルも対象にして、予備ブロックPを有するデバイス31の確認が行われる。
A new confirmation result by the
S4では、状況チェック回路333は、一定時間、待機する。その一定時間とは、例えば予備ブロックチェック回路331から新たに確認結果を入力するまでの時間である。一定時間が経過すると、上記S3に戻る。
In S4, the
S3でのYesによるS5への移行は、状況チェック回路333が、データの書込が行える状況であるとの判定結果をチャネル選択回路334に通知することで行われる。その通知を入力したチャネル選択回路334は、メモリ336に格納されている履歴情報を参照し、前回、選択したチャネルよりチャネル番号が1つ大きいチャネルを選択する(S5)。次に、チャネル選択回路334は、ビジーチェック回路332から入力する確認結果を参照し、選択したチャネルにビジー信号が出力されていないか否か判定する(S6)。選択したチャネルにビジー信号が出力されていない場合、S6の判定はYesとなってS8に移行する。選択したチャネルにビジー信号が出力されている場合、S6の判定はNoとなってS7に移行する。
The transition to S5 due to Yes in S3 is performed by the
S7では、チャネル選択回路334は、現在のチャネル番号より1つ大きいチャネルを新たに選択する。その選択後、上記S6に戻る。それにより、チャネル選択回路334は、直前のチャネルの選択結果を反映させつつ、チャネル番号が小さいほうから、ビジー信号が出力されていないチャネルの特定・選択を行う。
In S7, the
S8では、チャネル選択回路334は、予備ブロックチェック回路331から随時、入力する確認結果を参照し、選択したチャネルに予備ブロックPが存在するか否か判定する。選択したチャネルに接続されている何れのデバイス31にも予備ブロックPが存在しない場合、S8の判定はNoとなってS9に移行する。選択したチャネルに予備ブロックPを有するデバイス31が接続されている場合、S8の判定はYesとなってS10に移行する。
In S8, the
S9では、チャネル選択回路334は、現在のチャネル番号より1つ大きいチャネルを新たに選択する。その選択後、上記S6に戻る。それにより、チャネル選択回路334は、直前のチャネルの選択結果を反映させつつ、チャネル番号が小さいほうから、予備ブロックPを有するデバイス31が接続されており、且つビジー信号が出力されていないチャネルの特定・選択を行う。
In S9, the
S8でのYesによるS10への移行は、チャネル選択回路334が、データの書き込みに用いるべきと判定したチャネルをデバイス選択回路335に通知することで行われる。その通知を入力したデバイス選択回路335は、メモリ336に格納されている履歴情報を参照し、前回、選択したデバイス31よりデバイス番号が1つ大きいデバイス31を選択する(S10)。次に、デバイス選択回路335は、予備ブロックチェック回路331から入力する確認結果を参照し、選択したデバイス31に予備ブロックPが存在するか否か判定する(S11)。選択したデバイス31に予備ブロックPが存在しない場合、S11の判定はNoとなってS12に移行する。選択したデバイス31に予備ブロックPが存在する場合、S11の判定はNoとなってS13に移行する。
The shift to S10 due to Yes in S8 is performed by the
S12では、デバイス選択回路335は、現在のデバイス番号より1つ大きいデバイス31を新たに選択する。その選択後、上記S11に戻る。それにより、デバイス選択回路335は、同一のチャネルでの直前のデバイス31の選択結果を反映させつつ、デバイス番号が小さいほうから、予備ブロックPを有するデバイス31の特定・選択を行う。
In S12, the
データを書き込む予備ブロックPを有するデバイス31、及びそのデバイス31が接続されているチャネルは、上記のようにして決定される。その結果、マルチプレクサ36に出力する選択信号により、チャネル間、同じチャネルに接続されたデバイス31間の平準化、及び図5に表すようなアクセス制御が実現されることとなる。
The
S13では、デバイス選択回路335は、チャネル、及びデバイス31の決定結果に従い、選択信号を出力し、インタフェース338に対して、その決定されたチャネルへの制御信号の出力を指示する。そのようにして、デバイス選択回路335は、決定したデバイス31の予備ブロックPにデータを書き込ませる。データの書き込みにはインタフェース338から出力される制御情報が必要なことから、図6ではS13を枠335外としている。
In S13, the
データが書き込まれるデバイス31は、データの書き込みの動作中、ビジー信号を出力し、その書き込み動作の終了により、ビジー信号に代えてレディ信号を出力する(RY/BY=“L”→“H”)。ビジーチェック回路332は、その信号の変化を監視し、ビジー信号からレディ信号への変化を例えばインタフェース337に通知する。インタフェース337は、その通知により、書込命令を送信したCPU1に対し、データの書き込みが完了した旨を表す書き込み完了通知を返信する(以上S14)。その書き込み完了通知の返信により、CPU1から受信した1書込命令に対する処理、つまり図6に表すフローチャートの動作が終了する。
The
なお、本実施形態では、同じチャネルに接続されているデバイス31間の平準化のために、デバイス31の数分、FIFO305を設けているが、1つのチャネルに1つのFIFOを設けるようにしても良い。これは、1つのチャネルに1つのFIFO305を設けることにより、アクセス速度の低下は十分に抑制できるからである。多くのチャネルが存在するSSD3では、2つ以上のチャネルに1つのFIFO305を設けるようにしても良い。
In the present embodiment, the
本発明を適用した1システムは、処理部と、ブロック単位でデータの消去が行われる複数の記憶装置と、それぞれ、複数の記憶装置のなかで割り当てられた1つ以上の記憶装置上に存在する、データの書き込み用のブロックである予備ブロックを表す制御情報の格納に用いられる複数の記憶部と、複数の記憶装置へのデータの書き込みを要求する書込命令を処理部が発行した場合、複数の記憶部のなかで制御情報を用いる記憶部を選択し、該選択した記憶部に格納されている制御情報によって特定される予備ブロックに、書込命令により要求されたデータを書き込むアクセス部と、アクセス部による記憶部の選択結果を表す履歴情報を格納した他の記憶部と、を有し、複数の記憶装置は、複数のチャネルにそれぞれ記憶装置が1つ以上接続されており、記憶装置が接続されている各チャネルには、それぞれ、複数の記憶部のなかの1つ以上の記憶部が割り当てられており、アクセス部は、各チャネルに接続されている記憶装置の状態、及び他の記憶部に格納されている履歴情報を基に、複数のチャネルのうちの、アクセス部が直近に選択した記憶部が格納していた制御情報によって特定された予備ブロックが存在していた記憶装置が接続されているチャネル以外のチャネルに接続されている記憶装置に存在する予備ブロックを特定する制御情報の格納に用いられている記憶部の選択を行う。 One system to which the present invention is applied exists on a processing unit, a plurality of storage devices from which data is erased in units of blocks, and one or more storage devices allocated among the plurality of storage devices. A plurality of storage units used for storing control information representing spare blocks that are blocks for writing data, and a processing unit that issues a write command for requesting data writing to a plurality of storage devices, a plurality of An access unit that selects a storage unit that uses control information from among the storage units, and writes data requested by a write command to a spare block specified by the control information stored in the selected storage unit; It possesses other a storage unit for storing history information representing the selection result storage unit by the access unit, and the plurality of storage devices, is connected to the storage device one or more multiple channels Each channel to which the storage device is connected is assigned one or more storage units from among a plurality of storage units, and the access unit is connected to each channel connected to each channel. Based on the status and history information stored in other storage units, there is a spare block specified by the control information stored in the storage unit selected most recently by the access unit among a plurality of channels. A storage unit used to store control information for specifying a spare block existing in a storage device connected to a channel other than the channel to which the storage device was connected is selected .
Claims (7)
ブロック単位でデータの消去が行われる複数の記憶装置と、
それぞれ、前記複数の記憶装置のなかで割り当てられた1つ以上の記憶装置上に存在する、前記データの書き込み用のブロックである予備ブロックを表す制御情報の格納に用いられる複数の記憶部と、
前記複数の記憶装置へのデータの書き込みを要求する書込命令を前記処理部が発行した場合、前記複数の記憶部のなかで前記制御情報を用いる記憶部を選択し、該選択した記憶部に格納されている制御情報によって特定される予備ブロックに、前記書込命令により要求されたデータを書き込むアクセス部と、
を有することを特徴とする情報処理装置。A processing unit;
A plurality of storage devices in which data is erased in units of blocks;
A plurality of storage units each used for storing control information representing a spare block that is a block for writing data, which exists on one or more storage devices allocated among the plurality of storage devices;
When the processing unit issues a write command for requesting data writing to the plurality of storage devices, the storage unit that uses the control information is selected from the plurality of storage units, and the selected storage unit An access unit for writing the data requested by the write command to the spare block specified by the stored control information;
An information processing apparatus comprising:
前記記憶装置が接続されている各チャネルには、それぞれ、前記複数の記憶部のなかの1つ以上の記憶部が割り当てられている、
ことを特徴とする請求項1記載の情報処理装置。The plurality of storage devices are each connected to one or more storage devices in a plurality of channels,
Each channel to which the storage device is connected is assigned one or more storage units among the plurality of storage units.
The information processing apparatus according to claim 1.
ことを特徴とする請求項2記載の情報処理装置。The access unit selects a storage unit that uses the control information among the plurality of storage units based on the state of the storage device connected to each channel.
The information processing apparatus according to claim 2.
前記アクセス部は、前記各チャネルに接続されている前記記憶装置の状態、及び前記他の記憶部に格納されている前記履歴情報を基に、前記複数の記憶部のなかで前記制御情報を用いる記憶部の選択を行う、
ことを特徴とする請求項2、または3記載の情報処理装置。Another storage unit storing history information representing a selection result of the storage unit by the access unit;
The access unit uses the control information in the plurality of storage units based on the state of the storage device connected to each channel and the history information stored in the other storage unit. Select storage part,
The information processing apparatus according to claim 2, wherein the information processing apparatus is an information processing apparatus.
それぞれ、前記複数の記憶装置のなかで割り当てられた1つ以上の記憶装置上の前記データの書き込み用のブロックである予備ブロックを表す制御情報の格納に用いられる複数の記憶部と、
前記複数の記憶装置へのデータの書き込みを要求する書込命令を受信した場合、前記複数の記憶部のなかで前記制御情報を用いる記憶部を選択し、該選択した記憶部に格納されている制御情報によって特定される予備ブロックに、前記書込命令により要求されたデータを書き込むアクセス部と、
を有することを特徴とするストレージ。A plurality of storage devices in which data is erased in units of blocks;
A plurality of storage units respectively used for storing control information representing spare blocks that are blocks for writing the data on one or more storage devices allocated among the plurality of storage devices;
When a write command for requesting writing of data to the plurality of storage devices is received, a storage unit that uses the control information is selected from the plurality of storage units and stored in the selected storage unit An access unit for writing the data requested by the write command to the spare block specified by the control information;
Storage characterized by having.
前記記憶装置が接続されている各チャネルには、それぞれ、前記複数の記憶部のなかの1つ以上の記憶部が割り当てられ、
前記アクセス部は、前記各チャネルに接続されている前記記憶装置の状態を基に、前記複数の記憶部のなかで前記制御情報を用いる記憶部の選択を行う、
ことを特徴とする請求項5記載のストレージ。The plurality of storage devices are each connected to one or more storage devices in a plurality of channels,
Each channel to which the storage device is connected is assigned one or more storage units of the plurality of storage units,
The access unit selects a storage unit that uses the control information among the plurality of storage units based on the state of the storage device connected to each channel.
The storage according to claim 5.
ブロック単位でデータの消去が行われる複数の記憶装置と、
それぞれ、前記複数の記憶装置のなかで割り当てられた1つ以上の記憶装置上の前記データの書き込み用のブロックである予備ブロックを表す制御情報の格納に用いられる複数の記憶部と、を搭載し、
前記複数の記憶装置へのデータの書き込みを要求する書込命令が発行された場合、前記複数の記憶部のなかで前記制御情報を用いる記憶部を選択させ、
該選択した記憶部に格納されている制御情報によって特定される予備ブロックに、前記書込命令により要求されたデータを書き込ませる、
ことを特徴とするアクセス制御方法。In the information processing device,
A plurality of storage devices in which data is erased in units of blocks;
A plurality of storage units respectively used for storing control information representing spare blocks that are blocks for writing the data on one or more storage devices allocated among the plurality of storage devices; ,
When a write command for requesting writing of data to the plurality of storage devices is issued, the storage unit using the control information is selected from the plurality of storage units,
Writing the data requested by the write command in a spare block specified by the control information stored in the selected storage unit;
An access control method characterized by the above.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/082403 WO2015083225A1 (en) | 2013-12-02 | 2013-12-02 | Information processing device, storage, and access control method |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2015083225A1 true JPWO2015083225A1 (en) | 2017-03-16 |
Family
ID=53273023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015531385A Pending JPWO2015083225A1 (en) | 2013-12-02 | 2013-12-02 | Information processing apparatus, storage, and access control method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2015083225A1 (en) |
WO (1) | WO2015083225A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7259288B2 (en) * | 2018-11-28 | 2023-04-18 | 日本電気株式会社 | Job scheduling device, management system, and scheduling method |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011197788A (en) * | 2010-03-17 | 2011-10-06 | Toshiba Corp | Memory system |
JP2012517627A (en) * | 2009-02-12 | 2012-08-02 | 株式会社東芝 | Memory system and memory system control method |
JP2013513881A (en) * | 2009-12-15 | 2013-04-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method, program, and system for reducing access conflict in flash memory system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3507132B2 (en) * | 1994-06-29 | 2004-03-15 | 株式会社日立製作所 | Storage device using flash memory and storage control method thereof |
JP4910064B2 (en) * | 2010-08-31 | 2012-04-04 | 株式会社東芝 | Storage control device, storage device, and data movement control method |
-
2013
- 2013-12-02 JP JP2015531385A patent/JPWO2015083225A1/en active Pending
- 2013-12-02 WO PCT/JP2013/082403 patent/WO2015083225A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012517627A (en) * | 2009-02-12 | 2012-08-02 | 株式会社東芝 | Memory system and memory system control method |
JP2013513881A (en) * | 2009-12-15 | 2013-04-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method, program, and system for reducing access conflict in flash memory system |
JP2011197788A (en) * | 2010-03-17 | 2011-10-06 | Toshiba Corp | Memory system |
Also Published As
Publication number | Publication date |
---|---|
WO2015083225A1 (en) | 2015-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11893238B2 (en) | Method of controlling nonvolatile semiconductor memory | |
US9804801B2 (en) | Hybrid memory device for storing write data based on attribution of data stored therein | |
JP4768504B2 (en) | Storage device using nonvolatile flash memory | |
US8898410B1 (en) | Efficient garbage collection in a data storage device | |
US8458394B2 (en) | Storage device and method of managing a buffer memory of the storage device | |
US20130212319A1 (en) | Memory system and method of controlling memory system | |
JP5480913B2 (en) | Storage device and memory controller | |
US9880944B2 (en) | Page replacement algorithms for use with solid-state drives | |
CN109213696B (en) | Method and apparatus for cache management | |
US20150052329A1 (en) | Memory control device, host computer, information processing system and method of controlling memory control device | |
US20170075614A1 (en) | Memory system and host apparatus | |
JP6139381B2 (en) | Memory system and method | |
US20140075097A1 (en) | Semiconductor storage device and method for controlling nonvolatile semiconductor memory | |
US11797452B2 (en) | Dynamic buffer caching of storage devices | |
JP4829202B2 (en) | Storage device and memory control method | |
US9558112B1 (en) | Data management in a data storage device | |
JP2010237907A (en) | Storage device and recording method | |
JP2007102314A (en) | Disk cache-control device | |
JP5594647B2 (en) | Storage apparatus and control method thereof | |
US10162573B2 (en) | Storage management system, storage management method, storage medium and information processing system | |
KR101549569B1 (en) | Method for performing garbage collection and flash memory apparatus using the method | |
WO2015083225A1 (en) | Information processing device, storage, and access control method | |
US20080059706A1 (en) | Storage apparatus, storage system and control method for storage apparatus | |
US9383941B2 (en) | Migrating and retrieving queued data in byte-addressable storage | |
US11474947B2 (en) | Information processing apparatus and non-transitory computer-readable storage medium storing cache control program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160927 |