JP6028866B2 - Information processing apparatus, control circuit, control program, and control method - Google Patents
Information processing apparatus, control circuit, control program, and control method Download PDFInfo
- Publication number
- JP6028866B2 JP6028866B2 JP2015527090A JP2015527090A JP6028866B2 JP 6028866 B2 JP6028866 B2 JP 6028866B2 JP 2015527090 A JP2015527090 A JP 2015527090A JP 2015527090 A JP2015527090 A JP 2015527090A JP 6028866 B2 JP6028866 B2 JP 6028866B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- written
- storage
- unit
- storage area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は、情報処理装置、制御回路、制御プログラム、および制御方法に関する。 The present invention relates to an information processing device, a control circuit, a control program, and a control method.
従来、磁気ディスクよりも高速に動作する不揮発性メモリをストレージやメモリシステムとして利用する情報処理装置が知られている。このような情報処理装置の一例として、NANDフラッシュメモリデバイスをストレージ等の記憶装置として使用する情報処理装置が知られている。なお、以下の説明では、NANDフラッシュメモリデバイスをNANDデバイスと記載する。 2. Description of the Related Art Conventionally, an information processing apparatus that uses a nonvolatile memory that operates faster than a magnetic disk as a storage or memory system is known. As an example of such an information processing apparatus, an information processing apparatus using a NAND flash memory device as a storage device such as a storage is known. In the following description, the NAND flash memory device is described as a NAND device.
ここで、NANDデバイスは、データの記憶領域であるページ単位でデータの書込みや読出しを行い、複数のページを含むブロック単位でデータの消去を行う。また、NANDデバイスは、データが書込まれたページに新たなデータを上書きすることができず、データの書込みを行うには、事前にデータが消去されたブロックのページにデータの書込みを行う。また、NANDデバイスは、データの消去を行う際にデータを保持する素子が劣化するので、頻繁にデータが書込まれたページからは、データの読出しや書込みを行うことができなくなる。 Here, the NAND device writes and reads data in units of pages, which are data storage areas, and erases data in units of blocks including a plurality of pages. In addition, the NAND device cannot overwrite new data on a page in which data is written, and in order to write data, data is written to a page of a block from which data has been erased in advance. In addition, in the NAND device, since an element that holds data deteriorates when data is erased, data cannot be read or written from a page where data is frequently written.
このため、NANDデバイスの各ページにデータが書込まれているか否かを示す情報と、各ページにデータが書込まれた回数を示す情報とを用いて、素子の劣化を平準化する技術が知られている。例えば、情報処理装置は、NANDデバイスの各ページごとに、データが書込まれているか否かを示す情報と、データが書込まれた回数とを含む管理テーブルを有する。また、情報処理装置は、データをNANDデバイスに書込む場合は、管理テーブルを参照し、データが書込まれていないページのうち、データが書込まれた回数が最も少ないページをNANDデバイスの全ページから検索する。そして、情報処理装置は、検索したページにデータを書込み、管理テーブルを更新する。 For this reason, there is a technique for leveling the deterioration of elements using information indicating whether data is written to each page of the NAND device and information indicating the number of times data is written to each page. Are known. For example, the information processing apparatus has a management table including information indicating whether data is written and the number of times data is written for each page of the NAND device. In addition, when writing data to the NAND device, the information processing apparatus refers to the management table, and among the pages where data has not been written, the page with the least number of times data has been written is assigned to all the NAND devices. Search from the page. Then, the information processing apparatus writes data in the retrieved page and updates the management table.
しかしながら、上述した管理テーブルを用いてデータの書込み対象を検索する技術では、データの書込み先となるページをNANDデバイスの全ページから検索するので、データの書込みにかかる時間が増大するという問題がある。 However, the technique for searching for the data write target using the management table described above has a problem that the time required for data writing increases because the page to which data is written is searched from all pages of the NAND device. .
1つの側面では、データの書込みにかかる時間を削減する情報処理装置、制御回路、制御プログラム、および制御方法を提供することを目的とする。 An object of one aspect is to provide an information processing device, a control circuit, a control program, and a control method that reduce the time required for writing data.
一態様の情報処理装置は、複数の記憶領域を有する記憶装置を有する。また、情報処理装置は、記憶装置が有する記憶領域と、記憶領域にデータが書込まれているか否かを示す書込情報と、記憶領域にデータが書込まれた回数を示す回数情報とを対応付けて記憶する記憶部を有する。また、情報処理装置は、記憶装置に書込むデータの論理アドレスに応じて、記憶装置が有する複数の記憶領域からデータの書込み先となる記憶領域を検索する範囲を決定する。また、情報処理装置は、決定部が決定した各記憶領域に対応付けて記憶部が記憶する書込情報と回数情報とを用いて、決定した範囲に含まれる記憶領域のうち、データが書込まれておらず、かつ、データが書込まれた回数が最も少ない記憶領域を検索する。そして、情報処理装置は、検索した記憶領域に前記データを書込む。 An information processing apparatus according to one embodiment includes a storage device having a plurality of storage areas. In addition, the information processing device includes a storage area included in the storage device, write information indicating whether or not data is written in the storage area, and count information indicating the number of times data is written in the storage area. A storage unit that stores the information in association with each other is provided. Further, the information processing apparatus determines a range for searching for a storage area to which data is written from a plurality of storage areas of the storage device in accordance with a logical address of data to be written to the storage device. The information processing apparatus uses a write information and number information storing unit in association with each storage area decision unit decides to store, among the storage areas included in the determined range, the data write A search is made for a storage area that is not rare and has the smallest number of data writes . Then, the information processing apparatus writes the data in the searched storage area.
一実施形態によれば、データの書込みにかかる時間を削減できる。 According to one embodiment, the time required for writing data can be reduced.
以下に添付図面を参照して本願に係る情報処理装置、制御回路、制御プログラム、および制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により開示技術が限定されるものではない。また、各実施例は、矛盾しない範囲で適宜組みあわせてもよい。 Hereinafter, embodiments of an information processing apparatus, a control circuit, a control program, and a control method according to the present application will be described in detail with reference to the accompanying drawings. The disclosed technology is not limited by the following embodiments. In addition, the embodiments may be combined as appropriate within a consistent range.
以下の実施例1では、図1を用いて、本願に係る情報処理装置の一例を説明する。図1は、実施例1に係る情報処理装置を説明する図である。図1に示す例では、情報処理装置1は、複数のメモリ2a、2b、複数のCPU(Central Processing Unit)3a、3b、I/O(Input Output)ハブ4、複数のSSD(Solid State Drive)5a、5bを有する。また、SSD5aは、NANDコントローラ6a、および複数のNANDデバイス7a〜7hを有する。また、SSD5bは、NANDコントローラ6bと、複数のNANDデバイス8a〜8hを有する。
In Example 1 below, an example of an information processing apparatus according to the present application will be described with reference to FIG. FIG. 1 is a diagram illustrating the information processing apparatus according to the first embodiment. In the example shown in FIG. 1, the
なお、以下の説明では、NANDコントローラ6b、および複数のNANDデバイス8a〜8hは、NANDコントローラ6a、および複数のNANDデバイス7a〜7hと同様の機能を発揮するものとして、説明を省略する。
In the following description, the NAND controller 6b and the plurality of
各メモリ2a、2bは、各CPU3a、3bが演算処理に用いるデータを記憶する記憶装置である。また、各CPU3a、3bは、メモリ2a、2bが記憶するデータを用いて、各種演算処理を行う演算処理装置である。例えば、CPU3a、3bは、NUMA(Non-Uniform Memory Access)の技術を用いて、メモリ2a、2bが記憶するデータを取得し、取得したデータを用いて演算処理を実行する。
The
また、CPU3a、3bは、I/Oハブ4を介して、各SSD5a、5bが記憶するデータを取得し、取得したデータを用いて演算処理を実行する。詳細には、CPU3aは、SSD5aに対し、データの読出し要求や書込み要求を発行し、各NANDデバイス7a〜7hからデータの読出しや書込みを行う。例えば、CPU3aは、SSD5aに対し、読出し対象となるデータを指定する論理アドレスが格納された読出し要求を発行する。また、CPU3aは、データの書込み先を指定する論理アドレスと、書込み対象となるデータとが格納された書込み要求を発行する。
Further, the
NANDデバイス7aは、各種データを記憶する不揮発性メモリである。詳細には、NANDデバイス7aは、データの記憶領域である物理ページを複数有し、物理ページ単位でデータの書込みを行う。また、NANDデバイス7aは、複数の物理ページを有する物理ブロックを複数有し、ブロック単位でデータの消去を行う。ここで、1つの物理ページは、例えば、8キロバイトの記憶容量を有し、1つの物理ブロックは、例えば、128の物理ページを有する。
The
NANDコントローラ6aは、各NANDデバイス7a〜7hに対してアクセスし、データの読出しや書込みを行う。例えば、NANDコントローラ6aは、各CPU3a、3bのデータが記憶された記憶領域を指定する際に用いる論理アドレスと、データが格納されたNANDデバイス7a〜7hの記憶領域を示す物理アドレスとを対応付けたアドレステーブルを有する。
The
そして、NANDコントローラ6aは、読出し要求とともに論理アドレスを受信すると、アドレステーブルを用いて、論理アドレスと対応付けられた物理アドレスを識別し、識別した物理アドレスが示す記憶領域からデータの読出しを行う。その後、NANDコントローラ6aは、I/Oハブ4を介して、読出したデータをCPU3aに送信する。
When the
なお、以下の説明では、理解を容易にするため、各物理ページの先頭アドレスとなる論理アドレスを単に論理アドレスと記載し、各物理ページの先頭アドレスとなる物理アドレスを単に物理アドレスと記載する。また、情報処理装置1が実行するシステムは、各物理ページの先頭アドレスとなる論理アドレスに対する読出し要求や書込み要求を発行するものとする。
In the following description, in order to facilitate understanding, a logical address that is the start address of each physical page is simply described as a logical address, and a physical address that is the start address of each physical page is simply described as a physical address. In addition, the system executed by the
ここで、NANDデバイス7aは、データが書込まれたページに新たなデータを上書きすることができない。また、NANDデバイス7aの素子は、データの消去を行う際に劣化が進む。このため、従来のNANDコントローラは、データの書込みを行う場合は、NANDデバイス7a〜7hから、データが書込まれていない物理ページのうち、データが書込まれた回数が最も少ない物理ページを検索し、検索した物理ページにデータの書込みを行う。
Here, the
例えば、図2は、従来の管理テーブルの一例を説明する図である。なお、図2には、従来のNANDコントローラが記憶する管理テーブルの一例を記載した。図2に示す例では、管理テーブルの各エントリは、NANDデバイス7a〜7hの物理アドレスと、各物理アドレスが示す物理ページにデータが書込まれた回数である書込み回数と、データが書込まれているか否かを示すバリッドビットとが対応付けて格納される。ここで、バリッドビットは、値が「1」の場合は、データが消去されてからデータが書込まれた旨を示し、値が「0」の場合は、データが消去されてからデータが書込まれていない旨を示す。
For example, FIG. 2 is a diagram illustrating an example of a conventional management table. FIG. 2 shows an example of the management table stored in the conventional NAND controller. In the example shown in FIG. 2, each entry of the management table is written with the physical addresses of the
例えば、従来のNANDコントローラは、書込み対象のデータを受信すると、図2に例示する管理テーブルの全エントリを参照し、データが格納されていない物理ページのうち、データの書込み回数が最も少ない物理ページを検索する。そして、図2に示す例では、NANDコントローラは、バリッドビットの値が「0」である物理アドレスのうち、書込み回数の値が最も少ない物理アドレス「P04」を選択する。その後、NANDコントローラは、選択した物理アドレス「P04」が示す物理ページに、データの書込みを行う。 For example, when a conventional NAND controller receives data to be written, it refers to all entries in the management table illustrated in FIG. 2, and among physical pages in which no data is stored, the physical page with the smallest number of data writes Search for. In the example illustrated in FIG. 2, the NAND controller selects the physical address “P04” having the smallest write count value among the physical addresses having the valid bit value “0”. Thereafter, the NAND controller writes data to the physical page indicated by the selected physical address “P04”.
しかしながら、NANDコントローラは、管理テーブルの全エントリからデータの書込み先となる物理ページを検索した場合は、データの書込みに要する時間が増大する結果、NANDデバイス7a〜7hに対するアクセス性能が悪化してしまう。また、NANDデバイス7a〜7hの記憶容量が増大した場合は、管理テーブルのエントリ数も増大するので、データの書込みに要する時間がさらに増大してしまう。
However, when the NAND controller retrieves a physical page that is a data write destination from all the entries in the management table, the time required to write the data increases, and as a result, the access performance to the
そこで、実施例1に係るNANDコントローラ6aは、以下の処理を実行する。まず、NANDコントローラ6aは、書込み対象となるデータを受信すると、受信したデータの論理アドレスの値に応じて、データの書込み先を検索する物理アドレスの範囲を決定する。そして、NANDコントローラ6aは、決定した範囲に含まれる物理アドレスが示す物理ページから、データが書込みされていない物理ページを検索し、検索した物理ページにデータの書込みを行う。
Therefore, the
例えば、NANDコントローラ6aは、NANDデバイス7a〜7hの各物理ページの物理アドレスを所定の数のグループに分割し、各グループに「0」から始まる連続する番号を振り分ける。そして、NANDコントローラ6aは、書込み対象となるデータの論理アドレスを所定の数で除算した際の剰余を算出し、算出した剰余の値が振り分けられたグループを検索対象とする。その後、NANDコントローラ6aは、検索対象としたグループに含まれる物理アドレスが示す物理ページから、データが格納されていない物理ページを検索し、検索した物理ページにデータの書込みを行う。
For example, the
このように、NANDコントローラ6aは、NANDデバイス7a〜7hの全物理ページを検索対象とするのではなく、書込み対象のデータの論理アドレスに応じた範囲の物理ページのみを検索対象とする。このため、NANDコントローラ6aは、データ書込み時に、書込み先ページを検索する時間を短縮することができる。なお、NANDコントローラ6aは、各物理ページにデータが書込まれた回数を管理し、検索対象とした範囲に含まれる物理アドレスが示す物理ページのうち、データが格納されておらず、かつ、データが書込まれた回数が最も少ない物理ページを検索してもよい。
As described above, the
以下、図3を用いて、実施例1に係るNANDコントローラ6aの機能構成の一例について説明する。図3は、実施例1に係るNANDコントローラが有する機能構成の一例を説明する図である。
Hereinafter, an example of a functional configuration of the
図3に示す例では、NANDコントローラ6aは、アドレステーブル記憶部10、管理テーブル記憶部11、CPUインターフェース部12、チャネル決定部13、管理テーブル制御部14、アドレステーブル制御部15、チャネル切替部16を有する。また、NANDコントローラ6aは、複数のNANDインターフェース部17a〜17dを有する。
In the example illustrated in FIG. 3, the
また、各NANDデバイス7a〜7hは、各NANDデバイス7a〜7hが有する物理ページの物理アドレスの範囲に応じて、NANDデバイス7a〜7hにアクセスする経路であるチャネル#0〜#3のいずれかに振り分けられる。例えば、NANDデバイス7a、7eは、チャネル#0に振り分けられ、NANDデバイス7b、7fは、チャネル#1に振り分けられ、NANDデバイス7c、7gは、チャネル#2に振り分けられ、NANDデバイス7d、7hは、チャネル#3に振り分けられる。
Also, each of the
また、NANDコントローラ6aの各NANDインターフェース部17a〜17dは、それぞれ異なるチャネルに振り分けられたNANDデバイスにアクセスするインターフェースである。なお、NANDインターフェース部17b〜17dは、NANDインターフェース部17aと同様の機能を発揮するものとして、以下の説明を省略する。
The NAND interface units 17a to 17d of the
なお、図3に示す例では、NANDコントローラ6aが有する機能構成のうち、新たなデータの書込みを行うための機能構成について記載した。しかしながら、実施例はこれに限定されるものではなく、例えば、NANDコントローラ6aは、データが書込まれてから経過した時間に応じて、データを他の物理ページに移動させるウェアレベリング機能を有してもよい。また、例えば、NANDコントローラ6aは、物理ブロック内の有効なデータのみを新たな物理ブロックに移動させ、移動元の物理ブロックが記憶するデータを消去することで、予備ブロックを生成するガベージコレクション機能を有してもよい。
In the example shown in FIG. 3, the functional configuration for writing new data is described among the functional configurations of the
アドレステーブル記憶部10は、CPU3a、3bがデータを指定する際に用いる論理アドレスと、データが格納された物理ページを示す物理アドレスとを対応付けたアドレステーブルを記憶する。以下、図4を用いて、アドレステーブル記憶部10が記憶するアドレステーブルの一例について説明する。
The address
図4は、アドレステーブルの一例を説明する図である。図1に示す例では、アドレステーブル10aは、複数のエントリを有し、各エントリに、論理アドレスと、論理アドレスが示すデータが格納された物理ページを示す物理アドレスとが対応付けて格納されている。ここで、図4に示す例では、各物理ページの物理アドレスとして、物理ページが存在するNANDデバイスが振り分けられたチャネルを識別するチャネル番号と、同一のチャネル内で物理ページを識別するデバイスアドレスとを組み合わせた物理アドレスを記載した。 FIG. 4 is a diagram illustrating an example of an address table. In the example shown in FIG. 1, the address table 10a has a plurality of entries, and in each entry, a logical address and a physical address indicating a physical page storing data indicated by the logical address are stored in association with each other. Yes. Here, in the example shown in FIG. 4, as the physical address of each physical page, a channel number that identifies the channel to which the NAND device in which the physical page exists is assigned, and a device address that identifies the physical page in the same channel, The physical address that is combined is described.
例えば、図4に示す例では、アドレステーブル10aは、論理アドレス「L101」が示すデータが、物理アドレス「#0、P02」が示す物理ページに格納されている旨を示す。ここで、物理アドレス「#0、P02」が示す物理ページとは、チャネル#0に含まれるNANDデバイス7a、7eの物理ページのうち、デバイスアドレス「P02」が示す物理ページである。
For example, in the example illustrated in FIG. 4, the address table 10a indicates that the data indicated by the logical address “L101” is stored in the physical page indicated by the physical address “# 0, P02”. Here, the physical page indicated by the physical address “# 0, P02” is the physical page indicated by the device address “P02” among the physical pages of the
また、アドレステーブル10aは、論理アドレス「L102」が示すデータが物理アドレス「#1、P05」が示す物理ページに格納されている旨を示す。また、アドレステーブル10aは、論理アドレス「L103」が示すデータが物理アドレス「#2、P11」が示す物理ページに格納されている旨を示す。 The address table 10a indicates that the data indicated by the logical address “L102” is stored in the physical page indicated by the physical address “# 1, P05”. The address table 10a indicates that the data indicated by the logical address “L103” is stored in the physical page indicated by the physical address “# 2, P11”.
なお、物理アドレスが所定長のビット列である場合は、所定長の上位ビットをチャネル番号に対応させ、残りのビット列をデバイスアドレスに対応させてもよい。以下の説明では、NANDコントローラ6aは、チャネル番号と、デバイスアドレスとを組み合わせた物理アドレスを用いるものとする。
When the physical address is a bit string having a predetermined length, the upper bits having a predetermined length may be associated with the channel number, and the remaining bit string may be associated with the device address. In the following description, the
図3に戻り、管理テーブル記憶部11は、各物理ページの物理アドレスと、データが書込まれた回数を示す書込み回数と、データ消去後にデータが書込まれたか否かを示すバリッドビットとを対応付けた管理テーブルを記憶する。以下、図5を用いて、管理テーブル記憶部11が記憶する管理テーブルの一例について説明する。 Returning to FIG. 3, the management table storage unit 11 obtains the physical address of each physical page, the number of times of writing indicating the number of times data has been written, and the valid bit indicating whether or not the data has been written after erasing data. The associated management table is stored. Hereinafter, an example of the management table stored in the management table storage unit 11 will be described with reference to FIG.
図5は、管理テーブルの一例を説明する図である。図5に示す例では、管理テーブル11aは、複数のエントリを有し、各エントリに物理アドレスと管理情報とが対応付けて格納されている。ここで、図5に示す例では、物理アドレスは、チャネル番号と、デバイスアドレスとの組み合わせであり、管理情報は、書込み回数とバリッドビットである。また、図5に示す例では、管理テーブル11aには、チャネル番号が「#0」〜「「#3」でデバイスアドレスが「P01」〜「P10」となる30個の物理ページについて、書込み回数とバリッドビットとが格納されている。 FIG. 5 is a diagram illustrating an example of the management table. In the example shown in FIG. 5, the management table 11a has a plurality of entries, and a physical address and management information are stored in association with each entry. Here, in the example shown in FIG. 5, the physical address is a combination of a channel number and a device address, and the management information is a write count and a valid bit. In the example shown in FIG. 5, the number of times of writing for 30 physical pages with channel numbers “# 0” to “# 3” and device addresses “P01” to “P10” is stored in the management table 11a. And a valid bit are stored.
例えば、図5に示す例では、管理テーブル11aには、チャネル番号「#0」、デバイスアドレス「P01」が示す物理ページについて、データが書込まれた回数「23」と、データ消去後にデータが書込まれた旨とが格納されている。つまり、管理テーブル11aは、チャネル#0のNANDデバイス7a、7eが有する物理ページのうち、デバイスアドレスが「P01」の物理ページにデータが「23」回書込まれており、データ消去後にデータが書込まれた旨を示す。
For example, in the example illustrated in FIG. 5, the management table 11 a stores data “23”, the number of times data is written for the physical page indicated by the channel number “# 0” and the device address “P01”, and data after the data is erased. The fact that it has been written is stored. That is, in the management table 11a, data is written “23” times in the physical page having the device address “P01” among the physical pages of the
また、例えば、管理テーブル11aには、チャネル番号「#0」、デバイスアドレス「P02」が示す物理ページについて、データが書込まれた回数「24」回と、データ消去後にデータが書込まれていない旨とが格納されている。つまり、管理テーブル11aは、チャネル#0のNANDデバイス7a、7eが有する物理ページのうち、デバイスアドレスが「P02」の物理ページにデータが「24」回書込まれており、データ消去後にデータが書込まれていない旨を示す。
Further, for example, in the management table 11a, data is written “24” times for the physical page indicated by the channel number “# 0” and the device address “P02”, and data is written after the data is erased. There is no information stored. That is, in the management table 11a, data is written “24” times in the physical page with the device address “P02” among the physical pages of the
図3に戻り、CPUインターフェース部12は、CPU3a、3bからNANDデバイス7a〜7hに対するリクエストを受信するリクエストのインターフェースである。例えば、CPUインターフェース部12は、CPU3a、3bからI/Oハブ4を介して、論理アドレスを含む読出し要求を受信する。すると、CPUインターフェース部12は、読出し対象の論理アドレスを読出し要求から抽出し、抽出した論理アドレスをアドレステーブル制御部15に出力する。その後、CPUインターフェース部12は、チャネル切替部16から読出し対象のデータを受信すると、読出し要求の発行元となるCPU3a、3bに対して、データを送信する。
Returning to FIG. 3, the CPU interface unit 12 is a request interface for receiving requests to the
また、CPUインターフェース部12は、CPU3a、3bから、NANDデバイス7a〜7hに対して書込むデータと、書込み対象となるデータの論理アドレスとを含む書込み要求を受信する。かかる場合は、CPUインターフェース部12は、書込み対象のデータをチャネル切替部16に出力する。
The CPU interface unit 12 receives a write request including data to be written to the
また、CPUインターフェース部12は、書込み対象のデータの論理アドレスを書込み要求から抽出し、抽出した論理アドレスをチャネル決定部13とアドレステーブル制御部15とに出力する。その後、CPUインターフェース部12は、チャネル切替部16から書込みが完了した旨の応答信号を受信すると、書込み要求の発行元となるCPU3a、3bに対して、応答を送信する。
The CPU interface unit 12 extracts the logical address of the data to be written from the write request and outputs the extracted logical address to the
チャネル決定部13は、NANDデバイス7a〜7hに書込むデータの論理アドレスに応じて、データの書込み先となる物理ページを検索する範囲を決定する。なお、チャネル決定部13は、請求の範囲に記載の決定部の一例である。例えば、チャネル決定部13は、NANDデバイス7a〜7hが有する物理ページをチャネルごとにグループ分けし、論理アドレスをチャネルの数で除算した剰余の値に応じて、データの書込み先となる物理ページを有するチャネルを決定する。そして、チャネル決定部13は、決定したチャネルのチャネル番号を管理テーブル制御部14に通知し、チャネル切替部16からデータを書込んだ旨の応答を受信すると、処理を終了する。
The
例えば、チャネル決定部13は、論理アドレスをチャネル数4で除算した際の剰余が「0」である場合は、管理テーブル制御部14に、チャネル番号「#0」を通知する。また、チャネル決定部13は、論理アドレスをチャネル数4で除算した際の剰余が「1」である場合は、管理テーブル制御部14に、チャネル番号「#1」を通知する。また、チャネル決定部13は、論理アドレスをチャネル数4で除算した際の剰余が「2」である場合は、管理テーブル制御部14に、チャネル番号「#2」を通知する。また、チャネル決定部13は、論理アドレスをチャネル数4で除算した際の剰余が「3」である場合は、管理テーブル制御部14に、チャネル番号「#3」を通知する。
For example, if the remainder when the logical address is divided by the number of channels is “0”, the
なお、チャネル決定部13は、NANDデバイス7a〜7hが有する物理ページを任意の数のグループにグループ分けしてもよい。例えば、チャネル決定部13は、NANDデバイス7a〜7hが有する物理ページをn個のグループにグループ分けし、各グループに「0」〜「n−1」までの値を対応付ける。そして、チャネル決定部13は、書込み対象のデータを示す論理アドレスをnで除算した際の剰余を算出し、算出した剰余と対応付けられたグループを、データの書込み先となる物理ページを検索する対象としてもよい。
Note that the
また、例えば、チャネル決定部13は、CPUインターフェース部12から論理アドレスを受信すると、受信した論理アドレスの下位2ビットの値に応じて、データの書込み先となる物理ページを有するチャネルを決定してもよい。例えば、チャネル決定部13は、参照した論理アドレスの下位2ビットが「00」である場合は、管理テーブル制御部14に、チャネル番号「#0」を通知する。
For example, when the
また、チャネル決定部13は、参照した論理アドレスの下位2ビットが「01」である場合は、管理テーブル制御部14に、チャネル番号「#1」を通知する。また、チャネル決定部13は、参照した論理アドレスの下位2ビットが「10」である場合は、管理テーブル制御部14に、チャネル番号「#2」を通知する。また、チャネル決定部13は、参照した論理アドレスの下位2ビットが「11」である場合は、管理テーブル制御部14に、チャネル番号「#3」を通知する。
In addition, the
管理テーブル制御部14は、NANDデバイス7a〜7hが有する物理ページのうち、書込み対象となるデータの論理アドレスに応じて決定した範囲に含まれる物理ページから、データの書込み先となる物理ページを検索する。なお、管理テーブル制御部14は、請求の範囲に記載の検索部の一例である。詳細には、管理テーブル制御部14は、チャネル決定部13から受信したチャネル番号が示すチャネル内の物理ページから、データが書込まれておらず、かつ、データの書込み回数が最も少ない物理ページを検索する。
The management table control unit 14 searches for a physical page as a data write destination from physical pages included in a range determined according to the logical address of the data to be written, among the physical pages of the
例えば、管理テーブル制御部14は、チャネル決定部13からチャネル番号「#1」を受信すると、管理テーブル記憶部11が記憶する管理テーブル11aを参照し、チャネル番号が「#1」である物理アドレスの範囲を識別する。そして、管理テーブル制御部14は、識別した範囲の物理アドレスから、対応付けられたバリッドビットが「0」で、データの書込み回数が最も少ない物理アドレスを検索する。この結果、例えば、管理テーブル制御部14は、物理アドレス「#1、P02」を特定する。
For example, when the management table control unit 14 receives the channel number “# 1” from the
そして、管理テーブル制御部14は、特定した物理アドレス「#1、P02」をチャネル切替部16と、アドレステーブル制御部15とに出力する。その後、管理テーブル制御部14は、チャネル切替部16から、データを書込んだ旨の応答を受信すると、チャネル切替部16に出力した物理アドレスと対応付けられた書込み回数に1を加算し、バリッドビットを「1」に更新する。 Then, the management table control unit 14 outputs the identified physical address “# 1, P02” to the channel switching unit 16 and the address table control unit 15. Thereafter, when receiving a response indicating that data has been written from the channel switching unit 16, the management table control unit 14 adds 1 to the number of times of writing associated with the physical address output to the channel switching unit 16, and The bit is updated to “1”.
なお、管理テーブル制御部14は、NANDコントローラ6aが有する各種機能に応じて、管理テーブル11aを更新する機能を有してもよい。例えば、管理テーブル制御部14は、NANDコントローラ6aがウェアレベリング機能やガベージコレクション機能を発揮した場合は、データの移動先となる物理アドレスと対応付けられた書込み回数に1を加算し、バリッドビットを「1」に更新してもよい。
The management table control unit 14 may have a function of updating the management table 11a in accordance with various functions that the
アドレステーブル制御部15は、論理アドレスと物理アドレスとの変換を行う。例えば、アドレステーブル制御部15は、読出し対象の論理アドレスをCPUインターフェース部12から受信すると、アドレステーブル10aを参照し、受信した論理アドレスと対応付けられた物理アドレスを取得する。そして、アドレステーブル制御部15は、取得した物理アドレスをチャネル切替部16に出力する。 The address table control unit 15 performs conversion between a logical address and a physical address. For example, when receiving the logical address to be read from the CPU interface unit 12, the address table control unit 15 refers to the address table 10a and acquires a physical address associated with the received logical address. Then, the address table control unit 15 outputs the acquired physical address to the channel switching unit 16.
また、アドレステーブル制御部15は、書込み対象となるデータの論理アドレスをCPUインターフェース部12から受信した場合は、受信した論理アドレスが格納されたエントリをアドレステーブル10aから特定する。また、アドレステーブル制御部15は、管理テーブル制御部14から物理アドレスを受信する。そして、アドレステーブル制御部15は、チャネル切替部16から、データを書込んだ旨の応答を受信すると、特定したエントリに格納された物理アドレスを、管理テーブル制御部14から受信した物理アドレスに更新する。 When the address table control unit 15 receives the logical address of the data to be written from the CPU interface unit 12, the address table control unit 15 specifies the entry storing the received logical address from the address table 10a. The address table control unit 15 receives a physical address from the management table control unit 14. When the address table control unit 15 receives a response indicating that data has been written from the channel switching unit 16, the address table control unit 15 updates the physical address stored in the identified entry to the physical address received from the management table control unit 14. To do.
なお、アドレステーブル制御部15は、管理テーブル制御部14と同様に、NANDコントローラ6aがウェアレベリング機能やガベージコレクション機能を発揮した場合は、アドレステーブル10aを更新してもよい。例えば、アドレステーブル制御部15は、移動対象となるデータの論理アドレスと対応付けられた物理アドレスを、データの移動先となる物理アドレスに更新してもよい。
Similar to the management table control unit 14, the address table control unit 15 may update the address table 10a when the
チャネル切替部16は、管理テーブル制御部14が検索した物理ページに対して、データの書込みを行う。以下、データ読出し時にチャネル切替部16が実行する処理とデータ書込み時にチャネル切替部16が実行する処理とを説明する。 The channel switching unit 16 writes data to the physical page searched by the management table control unit 14. Hereinafter, processing executed by the channel switching unit 16 when reading data and processing executed by the channel switching unit 16 when writing data will be described.
まず、データ読出し時にチャネル切替部16が実行する処理について説明する。例えば、チャネル切替部16は、アドレステーブル制御部15から物理アドレスを受信すると、受信した物理アドレスからチャネル番号とデバイスアドレスとを抽出する。そして、チャネル切替部16は、抽出したチャネル番号に対応するNANDインターフェース部に対し、抽出したデバイスアドレスと、データの読出し要求とを出力する。 First, a process executed by the channel switching unit 16 when reading data will be described. For example, when receiving a physical address from the address table control unit 15, the channel switching unit 16 extracts a channel number and a device address from the received physical address. Then, the channel switching unit 16 outputs the extracted device address and the data read request to the NAND interface unit corresponding to the extracted channel number.
この結果、チャネル切替部16は、データの読出し要求を出力したNANDインターフェース部から読出し対象のデータを受信する。かかる場合は、チャネル切替部16は、CPUインターフェース部12に対して、受信したデータを出力する。例えば、チャネル切替部16は、物理アドレス「#0、P01」とデータ読出し要求とをアドレステーブル制御部15から受信する。かかる場合は、チャネル切替部16は、チャネル#0のNANDデバイス7a、7eに対してアクセスするNANDインターフェース部17aに対し、デバイスアドレス「P01」とデータ読出し要求とを出力する。
As a result, the channel switching unit 16 receives the data to be read from the NAND interface unit that has output the data read request. In such a case, the channel switching unit 16 outputs the received data to the CPU interface unit 12. For example, the channel switching unit 16 receives the physical address “# 0, P01” and the data read request from the address table control unit 15. In such a case, the channel switching unit 16 outputs a device address “P01” and a data read request to the NAND interface unit 17a that accesses the
この結果、チャネル切替部16は、チャネル#0のNANDデバイス7a、7eが有する物理ページのうち、デバイスアドレス「P01」が示す物理ページに格納されたデータを受信する。そして、チャネル切替部16は、受信したデータをCPUインターフェース部12に出力する。
As a result, the channel switching unit 16 receives data stored in the physical page indicated by the device address “P01” among the physical pages of the
次に、データ書込み時にチャネル切替部16が実行する処理について説明する。例えば、チャネル切替部16は、管理テーブル制御部14から物理アドレスを受信し、CPUインターフェース部12から書込み対象のデータを受信する。すると、チャネル切替部16は、受信した物理アドレスからチャネル番号とデバイスアドレスとを抽出し、抽出したチャネル番号に対応するNANDインターフェース部に抽出したデバイスアドレスとデータとデータの書込み要求とを出力する。 Next, processing executed by the channel switching unit 16 when writing data will be described. For example, the channel switching unit 16 receives a physical address from the management table control unit 14 and receives data to be written from the CPU interface unit 12. Then, the channel switching unit 16 extracts the channel number and device address from the received physical address, and outputs the extracted device address, data, and data write request to the NAND interface unit corresponding to the extracted channel number.
この結果、チャネル切替部16は、データの書込み要求を出力したNANDインターフェース部からデータの書込みを行った旨の応答を受信する。その後、チャネル切替部16は、CPUインターフェース部12、チャネル決定部13、管理テーブル制御部14、アドレステーブル制御部15に対し、データの書込みを行った旨の応答を出力する。
As a result, the channel switching unit 16 receives a response indicating that data has been written from the NAND interface unit that has output the data write request. Thereafter, the channel switching unit 16 outputs a response indicating that data has been written to the CPU interface unit 12, the
例えば、チャネル切替部16は、物理アドレス「#2、P05」を管理テーブル制御部14から受信し、書込み対象のデータをCPUインターフェース部12から受信する。かかる場合は、チャネル切替部16は、チャネル#2のNANDデバイス7c、7gに対してアクセスするNANDインターフェース部17cに対し、デバイスアドレス「P05」と、書込み対象のデータとデータ書込み要求とを出力する。そして、チャネル切替部16は、NANDインターフェース部17cから応答を受信すると、CPUインターフェース部12、チャネル決定部13、管理テーブル制御部14、アドレステーブル制御部15に対し、データの書込みを行った旨の応答を出力する。
For example, the channel switching unit 16 receives the physical address “# 2, P05” from the management table control unit 14 and receives data to be written from the CPU interface unit 12. In such a case, the channel switching unit 16 outputs the device address “P05”, the write target data, and the data write request to the
NANDインターフェース部17aは、チャネル#0のNANDデバイス7a、7eからデータの読出しやデータの書込みを行うインターフェースである。なお、NANDインターフェース部17a〜17dは、請求の範囲に記載の書込部、および、入出力部の一例である。例えば、NANDインターフェース部17aは、デバイスアドレス「P01」とデータ読出し要求とを受信すると、NANDデバイス7a、7eが有する物理ページのうち、デバイスアドレス「P01」が示す物理ページからデータの読出しを行う。そして、NANDインターフェース部17aは、読出したデータをチャネル切替部16に出力する。
The NAND interface unit 17a is an interface for reading data and writing data from the
また、NANDインターフェース部17aは、デバイスアドレス「P05」と、書込み対象のデータとデータ書込み要求とを受信する。かかる場合は、NANDデバイス7a、7eが有する物理ページのうち、デバイスアドレス「P05」が示す物理ページに、受信したデータの書込みを行う。そして、NANDインターフェース部17aは、データの書込みを行った旨の応答をチャネル切替部16に出力する。
The NAND interface unit 17a receives the device address “P05”, the data to be written, and the data write request. In such a case, the received data is written to the physical page indicated by the device address “P05” among the physical pages of the
なお、NANDインターフェース部17bは、チャネル#1のNANDデバイス7b、7fからデータの読出しや書込みを行うインターフェースである。また、NANDインターフェース部17bは、チャネル#2のNANDデバイス7c、7gからデータの読出しや書込みを行うインターフェースである。
The
また、NANDインターフェース部17cは、チャネル#3のNANDデバイス7c、7gからデータの読出しや書込みを行うインターフェースである。また、NANDインターフェース部17dは、チャネル#4のNANDデバイス7d、7hからデータの読出しや書込みを行うインターフェースである。
The
なお、CPUインターフェース部12、チャネル決定部13、管理テーブル制御部14、アドレステーブル制御部15、チャネル切替部16は、連続して発行されたデータの読出し要求を並行して処理することができる。例えば、CPUインターフェース部12は、連続して書込み要求を受信した際、先に受信した書込み要求に係るデータをチャネル切替部16に出力し、論理アドレスをチャネル決定部13に出力する。そして、CPUインターフェース部12は、チャネル切替部16から応答を受信する前に、続いて受信した書込み要求に係るデータをチャネル切替部16に出力し、論理アドレスをチャネル決定部13に出力する。
The CPU interface unit 12, the
また、チャネル切替部16は、例えば、物理アドレス「#1、P01」をアドレステーブル制御部15から受信すると、NANDインターフェース部17aに対し、デバイスアドレス「P01」とデータ読出し要求とを出力する。続いて、チャネル切替部16は、物理アドレス「#2、P05」をアドレステーブル制御部15から受信する。 For example, when the physical address “# 1, P01” is received from the address table control unit 15, the channel switching unit 16 outputs a device address “P01” and a data read request to the NAND interface unit 17a. Subsequently, the channel switching unit 16 receives the physical address “# 2, P05” from the address table control unit 15.
かかる場合は、チャネル切替部16は、NANDインターフェース部17aからデバイスアドレス「P01」のデータを受信する前に、NANDインターフェース部17bにデバイスアドレス「P05」とデータ読出し要求とを出力する。この結果、NANDコントローラ6aは、連続して発行された複数のデータ読出し要求を並行して処理できる。
In such a case, the channel switching unit 16 outputs the device address “P05” and the data read request to the
なお、例えば、CPUインターフェース部12、チャネル決定部13、管理テーブル制御部14、アドレステーブル制御部15、チャネル切替部16、NANDインターフェース部17a〜17dは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
For example, the CPU interface unit 12, the
また、アドレステーブル記憶部10、管理テーブル記憶部11は、RAM(Random Access Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子などの記憶装置である。
The address
次に、図6を用いて、論理アドレスの値に応じて、データの書込み対象となる物理ページを検索するチャネルを特定する処理の流れについて説明する。図6は、チャネル決定処理の一例を説明する図である。例えば、NANDコントローラ6aは、CPUインターフェース部12から論理アドレスを受信すると、図6中(A)に示すように、論理アドレスをチャネル数4で除算した際の剰余を算出する。
Next, the flow of processing for specifying a channel for searching for a physical page to which data is to be written will be described with reference to FIG. FIG. 6 is a diagram illustrating an example of channel determination processing. For example, when receiving the logical address from the CPU interface unit 12, the
そして、NANDコントローラ6aは、図6中(B)に示すように、管理テーブル11aを参照し、算出した剰余の値に対応するチャネルの物理ページから、データが書込まれておらず、かつ、データの書込み回数が最も少ない物理ページを検索する。例えば、NANDコントローラ6aは、算出した剰余の値が「1」である場合は、チャネル番号が「#1」であり、デバイスアドレスが「P01」〜「P10」である物理ページから、データの書込み先となる物理ページを検索する。
Then, as shown in FIG. 6B, the
この結果、例えば、NANDコントローラ6aは、図6中(C)に示すように、チャネル番号が「#1」、デバイスアドレスが「P02」の物理ページをデータの書込み先として特定する。そして、NANDコントローラ6aは、図6中(D)に示すように、チャネル番号が「#1」のNANDデバイス7b、7fにアクセスするNANDインターフェース部17bを介して、データの書込みを行う。
As a result, for example, as illustrated in (C) of FIG. 6, the
このように、NANDコントローラ6aは、データの論理アドレスに応じて、データの書込み先となる物理ページの検索範囲を決定し、決定した範囲から、データの書込み左記となる物理ページを検索するので、データの書込みに要する時間を削減できる。また、NANDコントローラ6aは、NANDデバイス7a〜7hが有する物理ページを、チャネルごとにグループ分けし、各グループと0から始まるチャネル番号とを対応付ける。そして、NANDコントローラ6aは、論理アドレスをチャネルの数で除算した剰余の値と同じチャネル番号が対応付けられたグループを検索範囲とする。
In this manner, the
このため、NANDコントローラ6aは、例えば、連続する論理アドレスが割り当てられた4つのデータをそれぞれ異なるチャネル番号の物理ページに格納するので、各データの書込みや読出しを並列に実行できる。この結果、NANDコントローラ6aは、データの書込みや読出しに要する時間を短縮し、NANDデバイス7a〜7hに対するアクセス性能を向上させることができる。
For this reason, the
以下、図面を用いて、NANDコントローラ6aがNANDデバイス7a〜7hに対するアクセス性能を向上させることができる効果について詳しく説明する。まず、図7〜図9を用いて、連続する論理アドレスのデータを従来のNANDコントローラがNANDデバイス7a〜7hに書込む際に要する時間について説明する。なお、以下の説明では、従来のNANDコントローラをNANDコントローラ50と記載する。
Hereinafter, the effect that the
図7は、従来のNANDコントローラがデータの書込みを行う処理の流れを説明する図である。例えば、NANDコントローラ50は、図7中(a)に示すように、I/Oハブ等を介して、CPUからデータの書込み要求を受信する。すると、NANDコントローラ50は、図7中(b)に示すように、管理テーブルを用いて、データの書込み先となる物理ページを検索する。例えば、NANDコントローラ50は、データが格納されておらず、かつ、データの書込み回数が最も少ない物理ページをNANDデバイス7a〜7hの全物理ページから検索する。
FIG. 7 is a diagram for explaining the flow of processing in which a conventional NAND controller writes data. For example, as shown in FIG. 7A, the
そして、NANDコントローラ50は、図7中(c)に示すように、検索した物理ページの物理アドレスのチャネル番号に応じて、チャネル切替部がデータを出力するチャネルの切替を行う。また、NANDコントローラ50は、図7中(d)に示すように、書込み対象のデータをチャネル切替部に出力し、データを検索した物理ページに格納する。例えば、NANDコントローラ50は、図7中(e)に示すように、チャネル#0のNANDデバイス7a、7eが有する物理ページにデータを格納する。
Then, as shown in FIG. 7C, the
また、NANDコントローラ50は、図7中(f)に示すように、検索した物理ページとデータの論理アドレスとをアドレステーブルに格納する。また、NANDコントローラ50は、データの書込みが終了すると、図7中(g)に示すように、管理テーブルを更新し、図7中(h)に示すように、書込み要求の発行元となるCPUに応答を出力する。
The
ここで、NANDコントローラ50は、連続した論理アドレスが示す複数のデータを同じチャネルの物理ページに格納する場合がある。例えば、NANDコントローラ50は、チャネル#0のある物理ブロックにアクセス頻度が他のデータよりも低いデータが格納した場合、所定時間経過後に、ウェアレベリング処理やガベージコレクション処理によりデータを他の物理ブロックへ移動させる。この結果、チャネル#0には、各物理ページに対するデータの書込み回数が他の物理ページよりも少なく、かつ、データの書込みがされていない予備ブロックが存在することとなる。
Here, the
かかる場合、NANDコントローラ50は、複数のデータ書込み要求を受信すると、各データの書込み先として、チャネル#0の予備ブロックが有する各物理ページを選択する。この結果、NANDコントローラ50は、同一のNANDインターフェースを用いて、複数のデータをNANDデバイス7a、7eに順次書込むので、データの書込み処理を並行して行うことができない。
In such a case, when receiving a plurality of data write requests, the
例えば、図8は、従来のNANDコントローラが同じチャネルの物理ページにデータを格納する際のタイムチャートである。なお、図8には、NANDコントローラ50が書込み要求A〜Eと、書込み対象となるデータA〜Eとを受信した際に、チャネル#0に対して各データA〜Eを書込む際のタイムチャートを記載した。なお、データA〜Eは、連続した論理アドレスが付与されているものとする。
For example, FIG. 8 is a time chart when a conventional NAND controller stores data in a physical page of the same channel. In FIG. 8, when the
例えば、NANDコントローラ50は、CPUから書込み要求A〜Eと、書込みデータA〜Eとを順次受信する。すると、NANDコントローラ50は、書込み要求Aを実行し、データAをチャネル#0の物理ページに格納する。また、NANDコントローラ50は、データAの書込みが終了すると、書込み要求Bを実行し、データBをチャネル#0の物理ページに格納する。その後も、NANDコントローラ50は、各書込み要求C〜Eを順次実行し、データC〜Eを順次チャネル#0の物理ページに格納する。このように、NANDコントローラ50は、連続して受信したデータA〜Eを同一のチャネル#0内の物理ページに格納するので、各書込み要求A〜Eを並行して実行することができず、NANDデバイス7a〜7hに対するデータ書込み性能を悪化させてしまう。
For example, the
また、連続する論理アドレスのデータは、同時に読出しされる場合が多い。しかしながら、NANDコントローラ50は、連続する論理アドレスのデータを同一のチャネル内の物理ページに格納した場合、読出し要求を並行して実行できず、NANDデバイス7a〜7hに対するデータ読出し性能を悪化させてしまう。
In addition, data at successive logical addresses is often read out simultaneously. However, the
例えば、図9は、従来のNANDコントローラが同じチャネルから複数のデータを読出す際のタイムチャートである。なお、図9には、NANDコントローラ50が、チャネル#0から複数のデータを連続して読出し要求A〜Eを受信した際に実行する読出し処理のタイムチャートを記載した。なお、読出し対象となるデータA〜Eは、図8と同様に、連続する論理アドレスが付与されているものとする。
For example, FIG. 9 is a time chart when a conventional NAND controller reads a plurality of data from the same channel. FIG. 9 shows a time chart of a read process that is executed when the
例えば、NANDコントローラ50は、CPUから読出し要求A〜Eを連続して受信する。すると、NANDコントローラ50は、読出し要求Aを実行し、データAをチャネル#0の物理ページから読出して、CPUへ送信する。また、NANDコントローラ50は、データAの送信後、読出し要求Bを実行し、データBをチャネル#0の物理ページから読出して、CPUへ送信する。その後も、NANDコントローラ50は、各読出し要求C〜Eを順次実行し、データC〜Eの読出しと送信を順次実行する。このように、NANDコントローラ50は、連続した論理アドレスが示すデータを同一のチャネル内の物理ページに格納した場合は、読出し要求を並行して実行できず、NANDデバイス7a〜7hに対するデータ読出し性能を悪化させてしまう。
For example, the
一方、実施例1に係るNANDコントローラ6aは、論理アドレスをチャネル数で除算した際の剰余に応じて、データの書込み先となるチャネルを決定し、決定したチャネル内の物理ページにデータを格納する。この結果、NANDコントローラ6aは、連続する論理アドレスのデータをNANDデバイス7a〜7hに書込む場合は、各データをそれぞれ異なるチャネルの物理ページに格納する。このため、NANDコントローラ6aは、連続する論理アドレスのデータを書込む際、および読出す際に処理を並行して実行することができるので、NANDデバイス7a〜7hに対するデータ書込み性能、およびデータ読出し性能を向上させることができる。
On the other hand, the
例えば、図10は、実施例1に係るNANDコントローラがデータの書込みを行う際の処理を説明する図である。例えば、NANDコントローラ6aは、図10中(E)に示すように、データの書込み要求を受信し、図10中(F)に示すように、書込み対象のデータを受信する。すると、NANDコントローラ6aは、図6中(G)に示すように、チャネル決定部13を用いて、データの論理アドレスに応じたチャネルを決定する。詳細には、NANDコントローラ6aは、論理アドレスをチャネルの数で除算した際の剰余の値に応じて、データの書込み先となるチャネルを決定する。
For example, FIG. 10 is a schematic diagram illustrating a process when the NAND controller according to the first embodiment writes data. For example, the
そして、NANDコントローラ6aは、図10中(H)に示すように、管理テーブル11aを参照し、決定したチャネルの物理ページからデータの書込み先となる物理ページを検索する。そして、NANDコントローラ6aは、図10中(I)に示すように、チャネル切替部16がデータを出力するチャネルを切替する。その後、NANDコントローラ6aは、図10中(J)に示すように、決定したチャネルのNANDインターフェースに、書込み対象となるデータを出力する。
Then, as shown in FIG. 10H, the
また、NANDコントローラ6aは、図10中(K)、および図10中(L)に示すように、書込み対象のデータの論理アドレスと、データを書込んだ物理ページの物理アドレスとを対応付けてアドレステーブル10aに格納する。また、NANDコントローラ6aは、データの書込みが終了すると、図10中(M)に示すように、管理テーブル11aを更新し、図10中(N)に示すように、応答を出力する。
Further, as shown in (K) in FIG. 10 and (L) in FIG. 10, the
この結果、NANDコントローラ6aは、例えば、連続する論理アドレスのデータを異なるチャネルの物理ページに書込むので、書込み要求を並行して実行できる。例えば、図11は、実施例1に係るNANDコントローラがデータを書込む際のタイムチャートである。なお、図11には、NANDコントローラ6aが書込み要求A〜EとデータA〜Eを連続して受信した際に実行する処理のタイムチャートを記載した。また、データA〜Eは、連続する論理アドレスが付与されているものとする。
As a result, the
例えば、NANDコントローラ6aは、CPU3aからから書込み要求A〜Eと、書込みデータA〜Eとを順次受信する。すると、NANDコントローラ6aは、書込み要求Aを実行し、データAの論理アドレスから、データAの書込み先となるチャネルをチャネル#0に決定する。そして、NANDコントローラ6aは、データAをチャネル#0の物理ページに格納する。
For example, the
一方、NANDコントローラ6aは、データAの書込みが終了する前に、書込み要求Bを実行し、データBの論理アドレスから、データBの書込み先となるチャネルをチャネル#1に決定する。そして、NANDコントローラ6aは、データBをチャネル#1の物理ページに格納する。その後、NANDコントローラ6aは、各書込み要求C〜Eを実行し、データC〜Eの書込み先となるチャネルを、それぞれチャネル#2、チャネル#3、チャネル#1に決定する。そして、NANDコントローラ6aは、各データC〜Eをそれぞれチャネル#2、チャネル#3、チャネル#1の物理ページに書込む。
On the other hand, the
この結果、図11に示すように、NANDコントローラ6aは、書込み要求A〜Dを並行して実行し、書込み要求Eを書込み要求Aが終了した後で実行する。このため、NANDコントローラ6aは、NANDデバイス7a〜7hにデータを書込む際の時間を短縮する結果、NANDデバイス7a〜7hに対する書込み性能を向上させることができる。
As a result, as shown in FIG. 11, the
また、NANDコントローラ6aは、連続した論理アドレスのデータを異なるチャネルに書込むので、連続した論理アドレスのデータ読出す際に、処理を並行して実行することができる。例えば、図12は、実施例1に係るNANDコントローラがデータを読出す際のタイムチャートである。なお、図12には、NANDコントローラ6aが読出し要求A〜Eを連続して受信した際に実行する処理のタイムチャートを記載した。
Further, since the
例えば、NANDコントローラ6aは、CPU3aから読出し要求A〜Eを連続して受信する。すると、NANDコントローラ6aは、読出し要求Aを実行し、データAをチャネル#0の物理ページから読出して、CPU3aへ送信する。また、NANDコントローラ6aは、データBがデータAとは異なるチャネルの物理ページに書込まれているので、データAの読出しと並行して読出し要求Bを実行し、データBをチャネル#1の物理ページから読出して、CPU3aへ送信する。
For example, the
また、NANDコントローラ6aは、各読出し要求C〜Eを並行して実行し、データC〜Eをそれぞれチャネル#2、チャネル#3、チャネル#1から並行して読出し、読出したデータC〜EをCPU3aに送信する。この結果、図12に示すように、NANDコントローラ6aは、データA〜Dをそれぞれ異なるチャネルから並行して読出し、データEをデータAの読出し後に読出す。この結果、NANDコントローラ6aは、NANDデバイス7a〜7hから連続した論理アドレスのデータを読出す時間を短縮する結果、NANDデバイス7a〜7hに対する読出し性能を向上させることができる。
The
次に、図13を用いて、NANDコントローラ6aが実行する処理の流れについて説明する。図13は、実施例1に係るNANDコントローラが実行する処理の流れを説明するためのフローチャートである。例えば、NANDコントローラ6aは、CPUから書込み命令を受信する(ステップS101)。すると、NANDコントローラ6aは、書込み命令から論理アドレスを抽出し(ステップS102)、抽出した論理アドレスからチャネル番号を決定する(ステップS103)。つまり、NANDコントローラ6aは、論理アドレスからデータ書込み先となる物理ページの検索範囲を決定する。
Next, the flow of processing executed by the
続いて、NANDコントローラ6aは、管理テーブル11aを参照し、決定したチャネル番号のデバイスアドレスから書込み先となる物理ページのデバイスアドレスを選択する(ステップS104)。そして、NANDコントローラ6aは、選択したデバイスアドレスとチャネル番号とが示す物理ページにデータの書込みを行う(ステップS105)。続いて、NANDコントローラ6aは、管理テーブル11aを更新し(ステップS106)、アドレステーブル10aを更新して(ステップS107)、処理を終了する。
Subsequently, the
[NANDコントローラ6aの効果]
上述したように、NANDコントローラ6aは、NANDデバイス7a〜7hに書込むデータの論理アドレスに応じて、NANDデバイス7a〜7hが有する物理ページのうち、データの書込み先となる物理ページを検索する範囲を決定する。そして、NANDコントローラ6aは、決定した範囲の物理ページから、データが書込まれていない物理ページを検索し、検索した物理ページにデータを書込む。このため、NANDコントローラ6aは、データの書込み先となる物理ページを検索する時間を短縮する結果、データの書込みにかかる時間を短縮できる。[Effect of
As described above, the
また、NANDコントローラ6aは、物理ページの物理アドレスと、バリッドビットと、データ書込み回数とが対応付けて格納された管理テーブル11aを有する。そして、NANDコントローラ6aは、管理テーブル11aを用いて、決定した範囲の物理ページから、データが書込まれていない物理ページのうち、データが書込まれた回数が最も少ない物理ページを検索する。その後、NANDコントローラ6aは、検索した物理ページにデータを書込む。このため、NANDコントローラ6aは、各物理ページにデータを書込む回数を平準化するので、NANDデバイス7a〜7hの寿命を最大限利用できる。
The
また、NANDコントローラ6aは、NANDデバイス7a〜7hが有する物理ページのうち、それぞれ異なるチャネルの物理ページにアクセスする複数のNANDインターフェース部17a〜17dを有する。また、NANDコントローラ6aは、書込み対象のデータの論理アドレスに応じて、データの書込みに用いるNANDインターフェース部を決定する。つまり、NANDコントローラ6aは、データの論理アドレスに応じて、データを書込むチャネルを決定する。そして、NANDコントローラ6aは、決定したチャネルの物理ページから、データの書込み先となる物理ページを検索する。
The
このため、NANDコントローラ6aは、複数の書込み要求を連続して受信した際に、データをそれぞれ異なるチャネルの物理ページに書込む。この結果、NANDコントローラ6aは、複数の書込み要求を並行して実行する結果、NANDデバイス7a〜7hに対する書込み性能を向上させることができる。
For this reason, when the
また、NANDコントローラ6aは、データの論理アドレスをNANDインターフェース部17a〜17dの数で除算した剰余の値に応じて、データの書込みを行うNANDインターフェース部を決定する。すなわち、NANDコントローラ6aは、チャネルの数で除算した際の剰余の値に応じて、データの書込み先となる物理ページのチャネルを決定する。
The
このため、NANDコントローラ6aは、連続する論理アドレスのデータを異なるチャネルの物理ページに書込むので、書込み要求を並行して実行する結果、NANDデバイス7a〜7hに対する書込み性能を向上させることができる。また、NANDコントローラ6aは、連続する論理アドレスのデータを異なるチャネルの物理ページに書込むので、連続する論理アドレスの読出し要求を並行して実行できる。この結果、NANDコントローラ6aは、NANDデバイス7a〜7hに対する読出し性能を向上させることができる。
For this reason, the
また、NANDコントローラ6aは、論理アドレスの下位ビットの値に応じて、データの書込みに用いるNANDインターフェース部17a〜17dを決定する。すなわち、NANDコントローラ6aは、論理アドレスの下位ビットの値に応じて、データの書込み先となる物理ページを有するチャネルを決定する。
The
このため、NANDコントローラ6aは、複雑な処理を行う回路を有さずとも、簡易な回路構成で、データの書込み先となる物理ページを有するチャネルを決定できる。この結果、NANDコントローラ6aは、データの書込み先となる物理ページを有するチャネルを決定する際の時間を短縮できる。また、NANDコントローラ6aは、回路規模を縮小することができる。
Therefore, the
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。 Although the embodiments of the present invention have been described so far, the embodiments may be implemented in various different forms other than the embodiments described above. Therefore, another embodiment included in the present invention will be described below as a second embodiment.
(1)検索対象となる範囲について
上述したNANDコントローラ6aは、データの論理アドレスをチャネルの数で除算した剰余の値に応じて、データの書込み先となる物理ページを有するチャネルを決定した。しかしながら、実施例はこれに限定されるものではない。すなわち、NANDコントローラ6aは、NANDデバイス7a〜7hの物理ページを任意の数でグループ分けし、データの論理アドレスをグループの数で除算した剰余の値に応じて、データの書込み先となる物理ページを検索するグループを決定してよい。(1) Range to be searched The
また、NANDコントローラ6aは、連続する物理ページを同一のグループに含めずともよい。例えば、NANDコントローラ6aは、データの論理アドレスが奇数である場合は、奇数の物理アドレスが示す物理ページからデータの書込み先となる物理ページを検索してもよい。また、NANDコントローラ6aは、データの論理アドレスが偶数である場合は、偶数の物理アドレスが示す物理ページからデータの書込み先となる物理ページを検索してもよい。
Further, the
(2)NANDコントローラ6aの機能構成について
上述したNANDコントローラ6aの機能構成は、あくまで一例であり、NANDコントローラ6aとして同様の処理を実行できるのであれば、任意の構成を採用することができる。例えば、NANDコントローラ6aは、アドレステーブル記憶部10と管理テーブル記憶部11とをひとつの記憶部にまとめ、管理テーブル制御部14とアドレステーブル制御部15との機能を有するテーブル制御部を有してもよい。(2) Functional configuration of
なお、上述した例では、NANDコントローラ6aがNANDデバイス7a〜7hの物理ページからデータの書込み先となる物理ページを検索する例について記載した。しかしながら、実施例はこれに限定されるものではない。すなわち、NANDコントローラ6aは、データの書込みを行うのであれば、任意の技術が適用された記憶媒体、例えばメモリ等のメモリコントローラとして動作してもよい。
In the example described above, an example in which the
(3)プログラム
上記の実施例で説明したNANDコントローラ6aが発揮する機能は、予め用意された制御プログラムをNANDコントローラ内の演算処理装置が実行することで実現してもよい。そこで、以下では、図14を用いて、上記のNANDコントローラ6aと同様の機能を有する制御プログラムを実行するコンピュータの一例について説明する。(3) Program The functions exhibited by the
図14は、制御プログラムを実行するNANDコントローラの一例を説明する図である。図14に示すように、NANDコントローラ6cは、CPU40、NANDインターフェース部17a〜17dを有する。また、CPU40は、メモリデバイス11bと接続される。なお、メモリデバイス11bは、NANDコントローラ6cに内蔵されるメモリであってもよい。
FIG. 14 is a diagram illustrating an example of a NAND controller that executes a control program. As illustrated in FIG. 14, the NAND controller 6c includes a
メモリデバイス11bには、アドレステーブル10a、管理テーブル11aがあらかじめ記憶される。ここで、CPU40が制御プログラム30を読出して展開して実行することにより、制御プログラム30は、以下の様に機能する。すなわち、制御プログラム30は、CPU40を、CPUインターフェース部31、テーブル制御部32、チャネル決定部33、チャネル切替部34として動作させる。ここで、図14に示すCPUインターフェース部31、チャネル決定部33、チャネル切替部34は、図3に示すCPUインターフェース部12、チャネル決定部13、チャネル切替部16と同様の機能をCPU40に発揮させる。また、図14に示すテーブル制御部32は、図3に示す管理テーブル制御部14、および、アドレステーブル制御部15と同様の機能をCPU40に発揮させる。
The memory device 11b stores an address table 10a and a management table 11a in advance. Here, the
なお、NANDコントローラ6cは、CPUではなく、例えばMPUやFPGA等の演算装置を用いて制御プログラム30を実行してもよい。また、上記の制御プログラム30については、例えば、メモリデバイス11bや、NANDデバイス7a〜7hに記憶させてもよいし、他の方法でCPU40に実行させてもよい。例えば、フレキシブルディスク、いわゆるFD(Flexible Disk)、CD(Compact Disk)−ROM、DVD(Digital Versatile Disk)、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。
Note that the NAND controller 6c may execute the
そして、NANDコントローラ6cが各CPU3a、3bを介して、これらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WAN(Wide Area Network)などを介して他のコンピュータまたはサーバ装置などに記憶させた各プログラムを取得して実行するようにしてもよい。
Then, the NAND controller 6c may acquire and execute each program from these portable physical media via the
1 情報処理装置
2a、2b メモリ
3a、3b、40 CPU
4 I/Oハブ
5a、5b SSD
6a〜6c NANDコントローラ
7a〜7h、8a〜8h NANDデバイス
10 アドレステーブル記憶部
11 管理テーブル記憶部
12 CPUインターフェース部
13 チャネル決定部
14 管理テーブル制御部
15 アドレステーブル制御部
16 チャネル切替部
17a〜17d NANDインターフェース部1
4 I /
6a to 6c
Claims (7)
前記記憶装置が有する記憶領域と、前記記憶領域にデータが書込まれているか否かを示す書込情報と、前記記憶領域にデータが書込まれた回数を示す回数情報とを対応付けて記憶する記憶部と、
前記記憶装置に書込むデータの論理アドレスに応じて、前記記憶装置が有する複数の記憶領域から前記データの書込み先となる記憶領域を検索する範囲を決定する決定部と、
前記決定部が決定した各記憶領域に対応付けて前記記憶部が記憶する書込情報と回数情報とを用いて、前記決定部が決定した範囲に含まれる記憶領域のうち、データが書込まれておらず、かつ、データが書込まれた回数が最も少ない記憶領域を検索する検索部と、
前記検索部が検索した記憶領域に前記データを書込む書込部と
を有することを特徴とする情報処理装置。 A storage device having a plurality of storage areas;
A storage area of the storage device, write information indicating whether or not data is written to the storage area, and number of times information indicating the number of times data is written to the storage area are stored in association with each other. A storage unit to
A determination unit that determines a range for searching for a storage area to which the data is written from a plurality of storage areas of the storage device according to a logical address of data to be written to the storage device;
Data is written out of the storage areas included in the range determined by the determination unit using the write information and the number of times information stored in the storage unit in association with each storage area determined by the determination unit. A search unit that searches for a storage area that has the least number of times data is written, and
An information processing apparatus comprising: a writing unit that writes the data into a storage area searched by the search unit.
前記決定部は、前記記憶領域に書込むデータの論理アドレスの値に応じて、前記データの書込みに用いる入出力部を決定し、
前記検索部は、前記決定部が決定した入出力部がアクセスする記憶領域から、前記データの書込み先となる記憶領域を検索することを特徴とする請求項1に記載の情報処理装置。 Among the plurality of storage areas of the storage device, each having a plurality of input / output units that access storage areas of different ranges,
The determining unit determines an input / output unit used for writing the data according to a value of a logical address of data to be written to the storage area,
The information processing apparatus according to claim 1, wherein the search unit searches for a storage area to which the data is written from a storage area accessed by the input / output unit determined by the determination unit.
前記記憶装置が有する記憶領域と、前記記憶領域にデータが書込まれているか否かを示す書込情報と、前記記憶領域にデータが書込まれた回数を示す回数情報とを対応付けて記憶する記憶部を参照し、前記決定部が決定した各記憶領域に対応付けて前記記憶部が記憶する書込情報と回数情報とを用いて、前記決定部が決定した範囲に含まれる記憶領域のうち、データが書込まれておらず、かつ、データが書込まれた回数が最も少ない記憶領域を検索する検索部と、
前記検索部が検索した記憶領域に前記データを書込む書込部と
を有することを特徴とする前記記憶装置の制御回路。 A determination unit that determines a range for searching for a storage area to which the data is written, in accordance with a logical address of data to be written to a storage device having a plurality of storage areas;
A storage area of the storage device, write information indicating whether or not data is written to the storage area, and number of times information indicating the number of times data is written to the storage area are stored in association with each other. The storage unit included in the range determined by the determination unit using the write information and the number of times information stored in the storage unit in association with each storage region determined by the determination unit . Among them, a search unit that searches for a storage area where data is not written and the number of times data is written is the smallest ,
And a writing unit for writing the data into the storage area searched by the search unit.
複数の記憶領域を有する記憶装置に書込むデータの論理アドレスに応じて、前記記憶装置が有する複数の記憶領域から前記データの書込み先となる記憶領域を検索する範囲を決定し
前記記憶装置が有する記憶領域と、前記記憶領域にデータが書込まれているか否かを示す書込情報と、前記記憶領域にデータが書込まれた回数を示す回数情報とを対応付けて記憶する記憶部を参照し、前記決定した各記憶領域に対応付けて前記記憶部が記憶する書込情報と回数情報とを用いて、前記決定した範囲に含まれる記憶領域のうち、データが書込まれておらず、かつ、データが書込まれた回数が最も少ない記憶領域を検索し
前記検索した記憶領域に前記データを書込む
処理を実行させることを特徴とする制御プログラム。 On the computer,
In accordance with a logical address of data to be written to a storage device having a plurality of storage areas, a range for searching the storage area to which the data is written is determined from the plurality of storage areas of the storage device.
A storage area of the storage device, write information indicating whether or not data is written to the storage area, and number of times information indicating the number of times data is written to the storage area are stored in association with each other. refers to the storage unit that, using a write information and count information the storage unit in association with each memory area with the determined, among the storage region included in a range in which the determined, data write A control program that searches for a storage area that is not rarely written and has the smallest number of times data is written, and executes a process of writing the data to the searched storage area.
複数の記憶領域を有する記憶装置に書込むデータの論理アドレスに応じて、前記記憶装置が有する複数の記憶領域から前記データの書込み先となる記憶領域を検索する範囲を決定し
前記記憶装置が有する記憶領域と、前記記憶領域にデータが書込まれているか否かを示す書込情報と、前記記憶領域にデータが書込まれた回数を示す回数情報とを対応付けて記憶する記憶部を参照し、前記決定した各記憶領域に対応付けて前記記憶部が記憶する書込情報と回数情報とを用いて、前記決定した範囲に含まれる記憶領域のうち、データが書込まれておらず、かつ、データが書込まれた回数が最も少ない記憶領域を検索し
前記検索した記憶領域に前記データを書込む
処理を実行することを特徴とする制御方法。 Information processing device
In accordance with a logical address of data to be written to a storage device having a plurality of storage areas, a range for searching the storage area to which the data is written is determined from the plurality of storage areas of the storage device.
A storage area of the storage device, write information indicating whether or not data is written to the storage area, and number of times information indicating the number of times data is written to the storage area are stored in association with each other. refers to the storage unit that, using a write information and count information the storage unit in association with each memory area with the determined, among the storage region included in a range in which the determined, data write A control method comprising: searching a storage area that is not rarely written and having the smallest number of times data has been written, and writing the data into the searched storage area.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/069329 WO2015008338A1 (en) | 2013-07-16 | 2013-07-16 | Information processing device, control circuit, control program, and control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6028866B2 true JP6028866B2 (en) | 2016-11-24 |
JPWO2015008338A1 JPWO2015008338A1 (en) | 2017-03-02 |
Family
ID=52345834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015527090A Expired - Fee Related JP6028866B2 (en) | 2013-07-16 | 2013-07-16 | Information processing apparatus, control circuit, control program, and control method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6028866B2 (en) |
WO (1) | WO2015008338A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007094571A (en) * | 2005-09-27 | 2007-04-12 | Tdk Corp | Memory controller, flash memory system, and control method of flash memory |
JP2007164318A (en) * | 2005-12-12 | 2007-06-28 | Renesas Technology Corp | Storage system |
WO2010038736A1 (en) * | 2008-10-01 | 2010-04-08 | 株式会社日立製作所 | Semiconductor device |
WO2011010344A1 (en) * | 2009-07-22 | 2011-01-27 | 株式会社日立製作所 | Storage system provided with a plurality of flash packages |
JP2012519899A (en) * | 2009-03-04 | 2012-08-30 | マイクロン テクノロジー, インク. | Select memory block |
-
2013
- 2013-07-16 JP JP2015527090A patent/JP6028866B2/en not_active Expired - Fee Related
- 2013-07-16 WO PCT/JP2013/069329 patent/WO2015008338A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007094571A (en) * | 2005-09-27 | 2007-04-12 | Tdk Corp | Memory controller, flash memory system, and control method of flash memory |
JP2007164318A (en) * | 2005-12-12 | 2007-06-28 | Renesas Technology Corp | Storage system |
WO2010038736A1 (en) * | 2008-10-01 | 2010-04-08 | 株式会社日立製作所 | Semiconductor device |
JP2012519899A (en) * | 2009-03-04 | 2012-08-30 | マイクロン テクノロジー, インク. | Select memory block |
WO2011010344A1 (en) * | 2009-07-22 | 2011-01-27 | 株式会社日立製作所 | Storage system provided with a plurality of flash packages |
Also Published As
Publication number | Publication date |
---|---|
WO2015008338A1 (en) | 2015-01-22 |
JPWO2015008338A1 (en) | 2017-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5813589B2 (en) | Memory system and control method thereof | |
KR102603070B1 (en) | Memory system, a method of writing data to the memory system, and a method of reading data from the memory system | |
JP5969130B2 (en) | Information processing device | |
JP2015001908A (en) | Information processing device, control circuit, control program, and control method | |
JP6167646B2 (en) | Information processing apparatus, control circuit, control program, and control method | |
JP6455900B2 (en) | Storage system and system garbage collection method | |
JP6139711B2 (en) | Information processing device | |
JP2015001909A (en) | Information processor, control circuit, control program, and control method | |
KR20170065427A (en) | Data processing method and apparatus of solid state disk | |
JP2016184402A (en) | Memory controller, nonvolatile storage device, nonvolatile storage system, and memory control method | |
JP6179355B2 (en) | Information processing apparatus, data transfer control method, and data transfer control program | |
JP2010237907A (en) | Storage device and recording method | |
JP5967307B2 (en) | Information processing apparatus, control circuit, control program, and control method | |
JP6100927B2 (en) | Information processing device | |
JP6028866B2 (en) | Information processing apparatus, control circuit, control program, and control method | |
KR20200014175A (en) | Apparatus and method for performing garbage collection to predicting required time | |
JP5967308B2 (en) | Information processing apparatus, control circuit, control program, and control method | |
US20090055574A1 (en) | NAND Flash Memory Device And Related Method Thereof | |
JP6132010B2 (en) | Control device, control program, and control method | |
WO2019124320A1 (en) | Storage controller, storage array device, data depositing method, and recording medium | |
KR101609304B1 (en) | Apparatus and Method for Stroring Multi-Chip Flash | |
JP5807693B2 (en) | Memory controller, memory system, and address conversion method | |
JP2007094734A (en) | Semiconductor disk device, method for writing data into the device, program and storage medium | |
JP2023044824A (en) | memory system | |
CN114637706A (en) | Storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160920 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161003 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6028866 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |