JP6028866B2 - Information processing apparatus, control circuit, control program, and control method - Google Patents

Information processing apparatus, control circuit, control program, and control method Download PDF

Info

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

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple 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.

特開2006−072441号公報JP 2006-074241 A

しかしながら、上述した管理テーブルを用いてデータの書込み対象を検索する技術では、データの書込み先となるページを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.

図1は、実施例1に係る情報処理装置を説明する図である。FIG. 1 is a diagram illustrating the information processing apparatus according to the first embodiment. 図2は、従来の管理テーブルの一例を説明する図である。FIG. 2 is a diagram for explaining an example of a conventional management table. 図3は、実施例1に係るNANDコントローラが有する機能構成の一例を説明する図である。FIG. 3 is a schematic diagram illustrating an example of a functional configuration of the NAND controller according to the first embodiment. 図4は、アドレステーブルの一例を説明する図である。FIG. 4 is a diagram illustrating an example of an address table. 図5は、管理テーブルの一例を説明する図である。FIG. 5 is a diagram illustrating an example of the management table. 図6は、チャネル決定処理の一例を説明する図である。FIG. 6 is a diagram illustrating an example of channel determination processing. 図7は、従来のNANDコントローラがデータの書込みを行う処理の流れを説明する図である。FIG. 7 is a diagram for explaining the flow of processing in which a conventional NAND controller writes data. 図8は、従来のNANDコントローラが同じチャネルの物理ページにデータを格納する際のタイムチャートである。FIG. 8 is a time chart when the conventional NAND controller stores data in the physical page of the same channel. 図9は、従来のNANDコントローラが同じチャネルから複数のデータを読出す際のタイムチャートである。FIG. 9 is a time chart when the conventional NAND controller reads a plurality of data from the same channel. 図10は、実施例1に係るNANDコントローラがデータの書込みを行う際の処理を説明する図である。FIG. 10 is a diagram illustrating a process when the NAND controller according to the first embodiment writes data. 図11は、実施例1に係るNANDコントローラがデータを書込む際のタイムチャートである。FIG. 11 is a time chart when the NAND controller according to the first embodiment writes data. 図12は、実施例1に係るNANDコントローラがデータを読出す際のタイムチャートである。FIG. 12 is a time chart when the NAND controller according to the first embodiment reads data. 図13は、実施例1に係るNANDコントローラが実行する処理の流れを説明するためのフローチャートである。FIG. 13 is a flowchart for explaining the flow of processing executed by the NAND controller according to the first embodiment. 図14は、制御プログラムを実行するNANDコントローラの一例を説明する図である。FIG. 14 is a diagram illustrating an example of a NAND controller that executes a control program.

以下に添付図面を参照して本願に係る情報処理装置、制御回路、制御プログラム、および制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により開示技術が限定されるものではない。また、各実施例は、矛盾しない範囲で適宜組みあわせてもよい。   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 information processing apparatus 1 includes a plurality of memories 2a and 2b, a plurality of CPUs (Central Processing Units) 3a and 3b, an I / O (Input Output) hub 4, and a plurality of SSDs (Solid State Drives). 5a and 5b. The SSD 5a includes a NAND controller 6a and a plurality of NAND devices 7a to 7h. The SSD 5b includes a NAND controller 6b and a plurality of NAND devices 8a to 8h.

なお、以下の説明では、NANDコントローラ6b、および複数のNANDデバイス8a〜8hは、NANDコントローラ6a、および複数のNANDデバイス7a〜7hと同様の機能を発揮するものとして、説明を省略する。   In the following description, the NAND controller 6b and the plurality of NAND devices 8a to 8h exhibit the same functions as those of the NAND controller 6a and the plurality of NAND devices 7a to 7h, and the description thereof is omitted.

各メモリ2a、2bは、各CPU3a、3bが演算処理に用いるデータを記憶する記憶装置である。また、各CPU3a、3bは、メモリ2a、2bが記憶するデータを用いて、各種演算処理を行う演算処理装置である。例えば、CPU3a、3bは、NUMA(Non-Uniform Memory Access)の技術を用いて、メモリ2a、2bが記憶するデータを取得し、取得したデータを用いて演算処理を実行する。   The memories 2a and 2b are storage devices that store data used by the CPUs 3a and 3b for arithmetic processing. The CPUs 3a and 3b are arithmetic processing devices that perform various arithmetic processes using data stored in the memories 2a and 2b. For example, the CPUs 3a and 3b use NUMA (Non-Uniform Memory Access) technology to acquire data stored in the memories 2a and 2b, and execute arithmetic processing using the acquired data.

また、CPU3a、3bは、I/Oハブ4を介して、各SSD5a、5bが記憶するデータを取得し、取得したデータを用いて演算処理を実行する。詳細には、CPU3aは、SSD5aに対し、データの読出し要求や書込み要求を発行し、各NANDデバイス7a〜7hからデータの読出しや書込みを行う。例えば、CPU3aは、SSD5aに対し、読出し対象となるデータを指定する論理アドレスが格納された読出し要求を発行する。また、CPU3aは、データの書込み先を指定する論理アドレスと、書込み対象となるデータとが格納された書込み要求を発行する。   Further, the CPUs 3a and 3b acquire data stored in the respective SSDs 5a and 5b via the I / O hub 4, and execute arithmetic processing using the acquired data. Specifically, the CPU 3a issues a data read request or write request to the SSD 5a, and reads or writes data from each of the NAND devices 7a to 7h. For example, the CPU 3a issues a read request storing a logical address designating data to be read to the SSD 5a. In addition, the CPU 3a issues a write request in which a logical address that specifies a data write destination and data to be written are stored.

NANDデバイス7aは、各種データを記憶する不揮発性メモリである。詳細には、NANDデバイス7aは、データの記憶領域である物理ページを複数有し、物理ページ単位でデータの書込みを行う。また、NANDデバイス7aは、複数の物理ページを有する物理ブロックを複数有し、ブロック単位でデータの消去を行う。ここで、1つの物理ページは、例えば、8キロバイトの記憶容量を有し、1つの物理ブロックは、例えば、128の物理ページを有する。   The NAND device 7a is a nonvolatile memory that stores various data. More specifically, the NAND device 7a has a plurality of physical pages, which are data storage areas, and writes data in units of physical pages. The NAND device 7a has a plurality of physical blocks having a plurality of physical pages, and erases data in units of blocks. Here, one physical page has a storage capacity of, for example, 8 kilobytes, and one physical block has, for example, 128 physical pages.

NANDコントローラ6aは、各NANDデバイス7a〜7hに対してアクセスし、データの読出しや書込みを行う。例えば、NANDコントローラ6aは、各CPU3a、3bのデータが記憶された記憶領域を指定する際に用いる論理アドレスと、データが格納されたNANDデバイス7a〜7hの記憶領域を示す物理アドレスとを対応付けたアドレステーブルを有する。   The NAND controller 6a accesses each of the NAND devices 7a to 7h, and reads and writes data. For example, the NAND controller 6a associates a logical address used when designating a storage area where the data of each CPU 3a, 3b is stored with a physical address indicating a storage area of the NAND devices 7a to 7h where the data is stored. Have an address table.

そして、NANDコントローラ6aは、読出し要求とともに論理アドレスを受信すると、アドレステーブルを用いて、論理アドレスと対応付けられた物理アドレスを識別し、識別した物理アドレスが示す記憶領域からデータの読出しを行う。その後、NANDコントローラ6aは、I/Oハブ4を介して、読出したデータをCPU3aに送信する。   When the NAND controller 6a receives the logical address together with the read request, the NAND controller 6a uses the address table to identify the physical address associated with the logical address, and reads data from the storage area indicated by the identified physical address. Thereafter, the NAND controller 6a transmits the read data to the CPU 3a via the I / O hub 4.

なお、以下の説明では、理解を容易にするため、各物理ページの先頭アドレスとなる論理アドレスを単に論理アドレスと記載し、各物理ページの先頭アドレスとなる物理アドレスを単に物理アドレスと記載する。また、情報処理装置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 information processing apparatus 1 issues a read request and a write request for a logical address that is a head address of each physical page.

ここで、NANDデバイス7aは、データが書込まれたページに新たなデータを上書きすることができない。また、NANDデバイス7aの素子は、データの消去を行う際に劣化が進む。このため、従来のNANDコントローラは、データの書込みを行う場合は、NANDデバイス7a〜7hから、データが書込まれていない物理ページのうち、データが書込まれた回数が最も少ない物理ページを検索し、検索した物理ページにデータの書込みを行う。   Here, the NAND device 7a cannot overwrite new data on the page in which the data is written. Further, the deterioration of the elements of the NAND device 7a progresses when data is erased. For this reason, when writing data, the conventional NAND controller searches for the physical page with the smallest number of times data has been written from the NAND devices 7a to 7h. Then, data is written to the retrieved physical page.

例えば、図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 devices 7a to 7h, the number of times of writing that is the number of times data is written to the physical page indicated by each physical address, and the data. Are stored in association with valid bits indicating whether or not the Here, if the value of the valid bit is “1”, it indicates that the data has been written after being erased. If the value is “0”, the data has been written after the data has been erased. Indicates that it is not included.

例えば、従来の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 NAND devices 7a to 7h deteriorates. . Further, when the storage capacity of the NAND devices 7a to 7h increases, the number of entries in the management table also increases, so that the time required for writing data further increases.

そこで、実施例1に係るNANDコントローラ6aは、以下の処理を実行する。まず、NANDコントローラ6aは、書込み対象となるデータを受信すると、受信したデータの論理アドレスの値に応じて、データの書込み先を検索する物理アドレスの範囲を決定する。そして、NANDコントローラ6aは、決定した範囲に含まれる物理アドレスが示す物理ページから、データが書込みされていない物理ページを検索し、検索した物理ページにデータの書込みを行う。   Therefore, the NAND controller 6a according to the first embodiment executes the following processing. First, when receiving the data to be written, the NAND controller 6a determines a range of physical addresses to search for a data write destination according to the value of the logical address of the received data. Then, the NAND controller 6a searches for a physical page in which no data is written from the physical page indicated by the physical address included in the determined range, and writes the data to the searched physical page.

例えば、NANDコントローラ6aは、NANDデバイス7a〜7hの各物理ページの物理アドレスを所定の数のグループに分割し、各グループに「0」から始まる連続する番号を振り分ける。そして、NANDコントローラ6aは、書込み対象となるデータの論理アドレスを所定の数で除算した際の剰余を算出し、算出した剰余の値が振り分けられたグループを検索対象とする。その後、NANDコントローラ6aは、検索対象としたグループに含まれる物理アドレスが示す物理ページから、データが格納されていない物理ページを検索し、検索した物理ページにデータの書込みを行う。   For example, the NAND controller 6a divides the physical address of each physical page of the NAND devices 7a to 7h into a predetermined number of groups, and assigns consecutive numbers starting from “0” to each group. Then, the NAND controller 6a calculates a remainder when the logical address of the data to be written is divided by a predetermined number, and sets a group to which the calculated remainder is distributed as a search target. Thereafter, the NAND controller 6a searches for a physical page in which no data is stored from the physical page indicated by the physical address included in the group to be searched, and writes the data to the searched physical page.

このように、NANDコントローラ6aは、NANDデバイス7a〜7hの全物理ページを検索対象とするのではなく、書込み対象のデータの論理アドレスに応じた範囲の物理ページのみを検索対象とする。このため、NANDコントローラ6aは、データ書込み時に、書込み先ページを検索する時間を短縮することができる。なお、NANDコントローラ6aは、各物理ページにデータが書込まれた回数を管理し、検索対象とした範囲に含まれる物理アドレスが示す物理ページのうち、データが格納されておらず、かつ、データが書込まれた回数が最も少ない物理ページを検索してもよい。   As described above, the NAND controller 6a does not search all the physical pages of the NAND devices 7a to 7h but searches only the physical pages in the range corresponding to the logical address of the data to be written. Therefore, the NAND controller 6a can reduce the time for searching for the write destination page when writing data. The NAND controller 6a manages the number of times data is written to each physical page, and no data is stored in the physical page indicated by the physical address included in the search target range. A physical page having the smallest number of times of “” may be searched.

以下、図3を用いて、実施例1に係るNANDコントローラ6aの機能構成の一例について説明する。図3は、実施例1に係るNANDコントローラが有する機能構成の一例を説明する図である。   Hereinafter, an example of a functional configuration of the NAND controller 6a according to the first embodiment will be described with reference to FIG. FIG. 3 is a schematic diagram illustrating an example of a functional configuration of the NAND controller according to the first embodiment.

図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 controller 6a includes an address table storage unit 10, a management table storage unit 11, a CPU interface unit 12, a channel determination unit 13, a management table control unit 14, an address table control unit 15, and a channel switching unit 16. Have The NAND controller 6a includes a plurality of NAND interface units 17a to 17d.

また、各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 devices 7a to 7h is connected to any one of channels # 0 to # 3, which is a path for accessing the NAND devices 7a to 7h, in accordance with the physical address range of the physical page of each NAND device 7a to 7h. Sorted. For example, NAND devices 7a and 7e are allocated to channel # 0, NAND devices 7b and 7f are allocated to channel # 1, NAND devices 7c and 7g are allocated to channel # 2, and NAND devices 7d and 7h are To channel # 3.

また、NANDコントローラ6aの各NANDインターフェース部17a〜17dは、それぞれ異なるチャネルに振り分けられたNANDデバイスにアクセスするインターフェースである。なお、NANDインターフェース部17b〜17dは、NANDインターフェース部17aと同様の機能を発揮するものとして、以下の説明を省略する。   The NAND interface units 17a to 17d of the NAND controller 6a are interfaces for accessing NAND devices distributed to different channels. Note that the NAND interface units 17b to 17d perform the same functions as the NAND interface unit 17a, and the following description is omitted.

なお、図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 NAND controller 6a. However, the embodiment is not limited to this. For example, the NAND controller 6a has a wear leveling function that moves data to another physical page according to the time elapsed since the data was written. May be. In addition, for example, the NAND controller 6a has a garbage collection function for generating a spare block by moving only valid data in a physical block to a new physical block and erasing data stored in the source physical block. You may have.

アドレステーブル記憶部10は、CPU3a、3bがデータを指定する際に用いる論理アドレスと、データが格納された物理ページを示す物理アドレスとを対応付けたアドレステーブルを記憶する。以下、図4を用いて、アドレステーブル記憶部10が記憶するアドレステーブルの一例について説明する。   The address table storage unit 10 stores an address table in which a logical address used when the CPUs 3a and 3b specify data and a physical address indicating a physical page in which the data is stored are associated with each other. Hereinafter, an example of the address table stored in the address table storage unit 10 will be described with reference to FIG.

図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 NAND devices 7a and 7e included in the channel # 0.

また、アドレステーブル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 NAND controller 6a uses a physical address that combines a channel number and a device address.

図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 NAND devices 7a and 7e of the channel # 0, and the data is deleted after the data is erased. Indicates that it has been written.

また、例えば、管理テーブル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 NAND devices 7a and 7e of the channel # 0, and the data is deleted after the data is erased. Indicates that it has not been written.

図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 NAND devices 7a to 7h from the CPUs 3a and 3b. For example, the CPU interface unit 12 receives a read request including a logical address from the CPUs 3 a and 3 b via the I / O hub 4. Then, the CPU interface unit 12 extracts the logical address to be read from the read request, and outputs the extracted logical address to the address table control unit 15. Thereafter, when the CPU interface unit 12 receives the data to be read from the channel switching unit 16, the CPU interface unit 12 transmits the data to the CPUs 3a and 3b that are the issuing source of the read request.

また、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 NAND devices 7a to 7h and a logical address of data to be written from the CPUs 3a and 3b. In such a case, the CPU interface unit 12 outputs the data to be written to the channel switching unit 16.

また、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 channel determination unit 13 and the address table control unit 15. Thereafter, when the CPU interface unit 12 receives a response signal indicating that the writing is completed from the channel switching unit 16, the CPU interface unit 12 transmits a response to the CPUs 3a and 3b that are the write request issuers.

チャネル決定部13は、NANDデバイス7a〜7hに書込むデータの論理アドレスに応じて、データの書込み先となる物理ページを検索する範囲を決定する。なお、チャネル決定部13は、請求の範囲に記載の決定部の一例である。例えば、チャネル決定部13は、NANDデバイス7a〜7hが有する物理ページをチャネルごとにグループ分けし、論理アドレスをチャネルの数で除算した剰余の値に応じて、データの書込み先となる物理ページを有するチャネルを決定する。そして、チャネル決定部13は、決定したチャネルのチャネル番号を管理テーブル制御部14に通知し、チャネル切替部16からデータを書込んだ旨の応答を受信すると、処理を終了する。   The channel determination unit 13 determines a range to search for a physical page that is a data write destination according to the logical address of the data to be written to the NAND devices 7a to 7h. The channel determination unit 13 is an example of a determination unit described in the claims. For example, the channel determination unit 13 groups the physical pages of the NAND devices 7a to 7h for each channel, and determines the physical page that is the data write destination according to the remainder value obtained by dividing the logical address by the number of channels. Determine which channels you have. Then, the channel determination unit 13 notifies the channel number of the determined channel to the management table control unit 14, and ends the processing when receiving a response indicating that data has been written from the channel switching unit 16.

例えば、チャネル決定部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 channel determination unit 13 notifies the management table control unit 14 of the channel number “# 0”. Further, when the remainder when the logical address is divided by the number of channels 4 is “1”, the channel determination unit 13 notifies the management table control unit 14 of the channel number “# 1”. In addition, when the remainder when the logical address is divided by the number of channels 4 is “2”, the channel determination unit 13 notifies the management table control unit 14 of the channel number “# 2”. In addition, when the remainder when the logical address is divided by the number of channels 4 is “3”, the channel determination unit 13 notifies the management table control unit 14 of the channel number “# 3”.

なお、チャネル決定部13は、NANDデバイス7a〜7hが有する物理ページを任意の数のグループにグループ分けしてもよい。例えば、チャネル決定部13は、NANDデバイス7a〜7hが有する物理ページをn個のグループにグループ分けし、各グループに「0」〜「n−1」までの値を対応付ける。そして、チャネル決定部13は、書込み対象のデータを示す論理アドレスをnで除算した際の剰余を算出し、算出した剰余と対応付けられたグループを、データの書込み先となる物理ページを検索する対象としてもよい。   Note that the channel determination unit 13 may group the physical pages of the NAND devices 7a to 7h into an arbitrary number of groups. For example, the channel determination unit 13 groups the physical pages of the NAND devices 7a to 7h into n groups, and associates values from “0” to “n−1” with each group. Then, the channel determination unit 13 calculates a remainder when the logical address indicating the write target data is divided by n, and searches the physical page that is the data write destination for the group associated with the calculated remainder. It may be a target.

また、例えば、チャネル決定部13は、CPUインターフェース部12から論理アドレスを受信すると、受信した論理アドレスの下位2ビットの値に応じて、データの書込み先となる物理ページを有するチャネルを決定してもよい。例えば、チャネル決定部13は、参照した論理アドレスの下位2ビットが「00」である場合は、管理テーブル制御部14に、チャネル番号「#0」を通知する。   For example, when the channel determination unit 13 receives a logical address from the CPU interface unit 12, the channel determination unit 13 determines a channel having a physical page to which data is written according to the value of the lower 2 bits of the received logical address. Also good. For example, when the lower two bits of the referenced logical address are “00”, the channel determination unit 13 notifies the management table control unit 14 of the channel number “# 0”.

また、チャネル決定部13は、参照した論理アドレスの下位2ビットが「01」である場合は、管理テーブル制御部14に、チャネル番号「#1」を通知する。また、チャネル決定部13は、参照した論理アドレスの下位2ビットが「10」である場合は、管理テーブル制御部14に、チャネル番号「#2」を通知する。また、チャネル決定部13は、参照した論理アドレスの下位2ビットが「11」である場合は、管理テーブル制御部14に、チャネル番号「#3」を通知する。   In addition, the channel determination unit 13 notifies the management table control unit 14 of the channel number “# 1” when the lower 2 bits of the referenced logical address is “01”. In addition, when the lower 2 bits of the referenced logical address is “10”, the channel determination unit 13 notifies the management table control unit 14 of the channel number “# 2”. If the lower 2 bits of the referenced logical address is “11”, the channel determination unit 13 notifies the management table control unit 14 of the channel number “# 3”.

管理テーブル制御部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 NAND devices 7a to 7h. To do. The management table control unit 14 is an example of a search unit described in the claims. Specifically, the management table control unit 14 selects a physical page in which data has not been written and the number of times of data writing is smallest from the physical page in the channel indicated by the channel number received from the channel determination unit 13. Search for.

例えば、管理テーブル制御部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 channel determination unit 13, the management table control unit 14 refers to the management table 11 a stored in the management table storage unit 11 and the physical address whose channel number is “# 1”. Identify the range. Then, the management table control unit 14 searches the physical address in the identified range for the physical address having the associated valid bit “0” and the smallest number of data writes. As a result, for example, the management table control unit 14 identifies the physical address “# 1, P02”.

そして、管理テーブル制御部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 NAND controller 6a has. For example, when the NAND controller 6a exhibits the wear leveling function or the garbage collection function, the management table control unit 14 adds 1 to the number of writes associated with the physical address to which the data is to be moved, and sets the valid bit. It may be updated to “1”.

アドレステーブル制御部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 NAND controller 6a exhibits a wear leveling function or a garbage collection function. For example, the address table control unit 15 may update the physical address associated with the logical address of the data to be moved to the physical address to which the data is to be moved.

チャネル切替部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 NAND devices 7a and 7e of the channel # 0.

この結果、チャネル切替部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 NAND devices 7a and 7e of the channel # 0. Then, the channel switching unit 16 outputs the received data to the CPU interface unit 12.

次に、データ書込み時にチャネル切替部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 channel determination unit 13, the management table control unit 14, and the address table control unit 15.

例えば、チャネル切替部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 interface unit 17c that accesses the NAND devices 7c and 7g of the channel # 2. . When the channel switching unit 16 receives the response from the NAND interface unit 17c, the channel switching unit 16 writes data to the CPU interface unit 12, the channel determination unit 13, the management table control unit 14, and the address table control unit 15. Output a response.

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 devices 7a and 7e of the channel # 0. The NAND interface units 17a to 17d are examples of the writing unit and the input / output unit described in the claims. For example, when receiving the device address “P01” and the data read request, the NAND interface unit 17a reads data from the physical page indicated by the device address “P01” among the physical pages included in the NAND devices 7a and 7e. Then, the NAND interface unit 17a outputs the read data to the channel switching unit 16.

また、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 devices 7a and 7e. Then, the NAND interface unit 17a outputs a response indicating that the data has been written to the channel switching unit 16.

なお、NANDインターフェース部17bは、チャネル#1のNANDデバイス7b、7fからデータの読出しや書込みを行うインターフェースである。また、NANDインターフェース部17bは、チャネル#2のNANDデバイス7c、7gからデータの読出しや書込みを行うインターフェースである。   The NAND interface unit 17b is an interface for reading and writing data from the NAND devices 7b and 7f of the channel # 1. The NAND interface unit 17b is an interface for reading and writing data from the NAND devices 7c and 7g of the channel # 2.

また、NANDインターフェース部17cは、チャネル#3のNANDデバイス7c、7gからデータの読出しや書込みを行うインターフェースである。また、NANDインターフェース部17dは、チャネル#4のNANDデバイス7d、7hからデータの読出しや書込みを行うインターフェースである。   The NAND interface unit 17c is an interface for reading and writing data from the NAND devices 7c and 7g of the channel # 3. The NAND interface unit 17d is an interface for reading and writing data from the NAND devices 7d and 7h of the channel # 4.

なお、CPUインターフェース部12、チャネル決定部13、管理テーブル制御部14、アドレステーブル制御部15、チャネル切替部16は、連続して発行されたデータの読出し要求を並行して処理することができる。例えば、CPUインターフェース部12は、連続して書込み要求を受信した際、先に受信した書込み要求に係るデータをチャネル切替部16に出力し、論理アドレスをチャネル決定部13に出力する。そして、CPUインターフェース部12は、チャネル切替部16から応答を受信する前に、続いて受信した書込み要求に係るデータをチャネル切替部16に出力し、論理アドレスをチャネル決定部13に出力する。   The CPU interface unit 12, the channel determination unit 13, the management table control unit 14, the address table control unit 15, and the channel switching unit 16 can process data read requests issued in succession in parallel. For example, when the CPU interface unit 12 continuously receives write requests, the CPU interface unit 12 outputs data relating to the previously received write request to the channel switching unit 16 and outputs a logical address to the channel determining unit 13. Then, before receiving the response from the channel switching unit 16, the CPU interface unit 12 outputs the data related to the received write request to the channel switching unit 16 and outputs the logical address to the channel determination unit 13.

また、チャネル切替部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 NAND interface unit 17b before receiving the data of the device address “P01” from the NAND interface unit 17a. As a result, the NAND controller 6a can process a plurality of data read requests issued in succession in parallel.

なお、例えば、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 channel determination unit 13, the management table control unit 14, the address table control unit 15, the channel switching unit 16, and the NAND interface units 17a to 17d are electronic circuits. Here, as an example of the electronic circuit, an integrated circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA), a central processing unit (CPU), a micro processing unit (MPU), or the like is applied.

また、アドレステーブル記憶部10、管理テーブル記憶部11は、RAM(Random Access Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子などの記憶装置である。   The address table storage unit 10 and the management table storage unit 11 are storage devices such as a semiconductor memory element such as a RAM (Random Access Memory) and a flash memory.

次に、図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 controller 6a calculates a remainder when the logical address is divided by the number of channels 4 as shown in FIG.

そして、NANDコントローラ6aは、図6中(B)に示すように、管理テーブル11aを参照し、算出した剰余の値に対応するチャネルの物理ページから、データが書込まれておらず、かつ、データの書込み回数が最も少ない物理ページを検索する。例えば、NANDコントローラ6aは、算出した剰余の値が「1」である場合は、チャネル番号が「#1」であり、デバイスアドレスが「P01」〜「P10」である物理ページから、データの書込み先となる物理ページを検索する。   Then, as shown in FIG. 6B, the NAND controller 6a refers to the management table 11a, and data is not written from the physical page of the channel corresponding to the calculated remainder value, and Search for the physical page with the least number of data writes. For example, when the calculated remainder value is “1”, the NAND controller 6a writes data from the physical page whose channel number is “# 1” and whose device addresses are “P01” to “P10”. Search for the previous physical page.

この結果、例えば、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 controller 6a specifies a physical page having a channel number “# 1” and a device address “P02” as a data write destination. Then, as shown in FIG. 6D, the NAND controller 6a writes data via the NAND interface unit 17b that accesses the NAND devices 7b and 7f whose channel number is “# 1”.

このように、NANDコントローラ6aは、データの論理アドレスに応じて、データの書込み先となる物理ページの検索範囲を決定し、決定した範囲から、データの書込み左記となる物理ページを検索するので、データの書込みに要する時間を削減できる。また、NANDコントローラ6aは、NANDデバイス7a〜7hが有する物理ページを、チャネルごとにグループ分けし、各グループと0から始まるチャネル番号とを対応付ける。そして、NANDコントローラ6aは、論理アドレスをチャネルの数で除算した剰余の値と同じチャネル番号が対応付けられたグループを検索範囲とする。   In this manner, the NAND controller 6a determines the search range of the physical page that is the data write destination according to the logical address of the data, and searches the physical page that is the left of the data write from the determined range. The time required for writing data can be reduced. The NAND controller 6a groups the physical pages included in the NAND devices 7a to 7h for each channel, and associates each group with a channel number starting from 0. Then, the NAND controller 6a sets a search range to a group in which the same channel number is associated with the remainder value obtained by dividing the logical address by the number of channels.

このため、NANDコントローラ6aは、例えば、連続する論理アドレスが割り当てられた4つのデータをそれぞれ異なるチャネル番号の物理ページに格納するので、各データの書込みや読出しを並列に実行できる。この結果、NANDコントローラ6aは、データの書込みや読出しに要する時間を短縮し、NANDデバイス7a〜7hに対するアクセス性能を向上させることができる。   For this reason, the NAND controller 6a stores, for example, four pieces of data to which consecutive logical addresses are assigned in physical pages having different channel numbers, so that writing and reading of each piece of data can be executed in parallel. As a result, the NAND controller 6a can shorten the time required for data writing and reading, and can improve the access performance to the NAND devices 7a to 7h.

以下、図面を用いて、NANDコントローラ6aがNANDデバイス7a〜7hに対するアクセス性能を向上させることができる効果について詳しく説明する。まず、図7〜図9を用いて、連続する論理アドレスのデータを従来のNANDコントローラがNANDデバイス7a〜7hに書込む際に要する時間について説明する。なお、以下の説明では、従来のNANDコントローラをNANDコントローラ50と記載する。   Hereinafter, the effect that the NAND controller 6a can improve the access performance to the NAND devices 7a to 7h will be described in detail with reference to the drawings. First, the time required for the conventional NAND controller to write data of successive logical addresses to the NAND devices 7a to 7h will be described with reference to FIGS. In the following description, a conventional NAND controller is referred to as a NAND controller 50.

図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 controller 50 receives a data write request from the CPU via an I / O hub or the like. Then, as shown in FIG. 7B, the NAND controller 50 uses the management table to search for a physical page as a data write destination. For example, the NAND controller 50 searches the physical pages of the NAND devices 7a to 7h for a physical page in which data is not stored and the number of times data is written is smallest.

そして、NANDコントローラ50は、図7中(c)に示すように、検索した物理ページの物理アドレスのチャネル番号に応じて、チャネル切替部がデータを出力するチャネルの切替を行う。また、NANDコントローラ50は、図7中(d)に示すように、書込み対象のデータをチャネル切替部に出力し、データを検索した物理ページに格納する。例えば、NANDコントローラ50は、図7中(e)に示すように、チャネル#0のNANDデバイス7a、7eが有する物理ページにデータを格納する。   Then, as shown in FIG. 7C, the NAND controller 50 switches the channel from which the channel switching unit outputs data according to the channel number of the physical address of the searched physical page. Further, as shown in FIG. 7D, the NAND controller 50 outputs the data to be written to the channel switching unit and stores the data in the retrieved physical page. For example, the NAND controller 50 stores data in the physical pages of the NAND devices 7a and 7e of the channel # 0 as shown in (e) of FIG.

また、NANDコントローラ50は、図7中(f)に示すように、検索した物理ページとデータの論理アドレスとをアドレステーブルに格納する。また、NANDコントローラ50は、データの書込みが終了すると、図7中(g)に示すように、管理テーブルを更新し、図7中(h)に示すように、書込み要求の発行元となるCPUに応答を出力する。   The NAND controller 50 stores the retrieved physical page and the logical address of the data in the address table, as shown in (f) of FIG. When the data writing is completed, the NAND controller 50 updates the management table as shown in (g) of FIG. 7, and the CPU that is the issuing source of the write request as shown in (h) of FIG. Output a response to

ここで、NANDコントローラ50は、連続した論理アドレスが示す複数のデータを同じチャネルの物理ページに格納する場合がある。例えば、NANDコントローラ50は、チャネル#0のある物理ブロックにアクセス頻度が他のデータよりも低いデータが格納した場合、所定時間経過後に、ウェアレベリング処理やガベージコレクション処理によりデータを他の物理ブロックへ移動させる。この結果、チャネル#0には、各物理ページに対するデータの書込み回数が他の物理ページよりも少なく、かつ、データの書込みがされていない予備ブロックが存在することとなる。   Here, the NAND controller 50 may store a plurality of data indicated by successive logical addresses in a physical page of the same channel. For example, when data having a lower access frequency than other data is stored in a physical block with channel # 0, the NAND controller 50 transfers the data to another physical block by wear leveling processing or garbage collection processing after a predetermined time has elapsed. Move. As a result, the channel # 0 includes a spare block in which the number of times of data writing to each physical page is smaller than that of other physical pages and data is not written.

かかる場合、NANDコントローラ50は、複数のデータ書込み要求を受信すると、各データの書込み先として、チャネル#0の予備ブロックが有する各物理ページを選択する。この結果、NANDコントローラ50は、同一のNANDインターフェースを用いて、複数のデータをNANDデバイス7a、7eに順次書込むので、データの書込み処理を並行して行うことができない。   In such a case, when receiving a plurality of data write requests, the NAND controller 50 selects each physical page included in the spare block of channel # 0 as a write destination of each data. As a result, since the NAND controller 50 sequentially writes a plurality of data to the NAND devices 7a and 7e using the same NAND interface, the data writing process cannot be performed in parallel.

例えば、図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 controller 50 receives the write requests A to E and the data A to E to be written, the time when the data A to E is written to the channel # 0. The chart is described. Note that data A to E are given consecutive logical addresses.

例えば、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 controller 50 sequentially receives write requests A to E and write data A to E from the CPU. Then, the NAND controller 50 executes the write request A and stores data A in the physical page of channel # 0. Further, when the writing of the data A is completed, the NAND controller 50 executes the write request B and stores the data B in the physical page of the channel # 0. Thereafter, the NAND controller 50 sequentially executes the write requests C to E, and sequentially stores the data C to E in the physical page of the channel # 0. Thus, since the NAND controller 50 stores the continuously received data A to E in the physical page in the same channel # 0, the write requests A to E cannot be executed in parallel. Data writing performance for the NAND devices 7a to 7h is deteriorated.

また、連続する論理アドレスのデータは、同時に読出しされる場合が多い。しかしながら、NANDコントローラ50は、連続する論理アドレスのデータを同一のチャネル内の物理ページに格納した場合、読出し要求を並行して実行できず、NANDデバイス7a〜7hに対するデータ読出し性能を悪化させてしまう。   In addition, data at successive logical addresses is often read out simultaneously. However, the NAND controller 50 cannot execute read requests in parallel when data of consecutive logical addresses are stored in physical pages in the same channel, and deteriorates the data read performance for the NAND devices 7a to 7h. .

例えば、図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 controller 50 continuously receives a plurality of data read requests A to E from the channel # 0. Note that the data A to E to be read are given consecutive logical addresses as in FIG.

例えば、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 NAND controller 50 continuously receives read requests A to E from the CPU. Then, the NAND controller 50 executes a read request A, reads data A from the physical page of channel # 0, and transmits it to the CPU. Further, after transmitting the data A, the NAND controller 50 executes the read request B, reads the data B from the physical page of the channel # 0, and transmits it to the CPU. Thereafter, the NAND controller 50 sequentially executes the read requests C to E, and sequentially reads and transmits the data C to E. As described above, when the data indicated by the continuous logical addresses is stored in the physical page in the same channel, the NAND controller 50 cannot execute the read request in parallel, and has the data read performance for the NAND devices 7a to 7h. It gets worse.

一方、実施例1に係るNANDコントローラ6aは、論理アドレスをチャネル数で除算した際の剰余に応じて、データの書込み先となるチャネルを決定し、決定したチャネル内の物理ページにデータを格納する。この結果、NANDコントローラ6aは、連続する論理アドレスのデータをNANDデバイス7a〜7hに書込む場合は、各データをそれぞれ異なるチャネルの物理ページに格納する。このため、NANDコントローラ6aは、連続する論理アドレスのデータを書込む際、および読出す際に処理を並行して実行することができるので、NANDデバイス7a〜7hに対するデータ書込み性能、およびデータ読出し性能を向上させることができる。   On the other hand, the NAND controller 6a according to the first embodiment determines a channel to which data is written according to the remainder when the logical address is divided by the number of channels, and stores the data in the physical page in the determined channel. . As a result, the NAND controller 6a stores each data in a physical page of a different channel when writing data of successive logical addresses to the NAND devices 7a to 7h. Therefore, the NAND controller 6a can execute processing in parallel when writing and reading data of successive logical addresses, so that data write performance and data read performance for the NAND devices 7a to 7h are possible. Can be improved.

例えば、図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 controller 6a receives a data write request as shown in (E) of FIG. 10, and receives data to be written as shown in (F) of FIG. Then, the NAND controller 6a uses the channel determination unit 13 to determine a channel corresponding to the logical address of the data, as shown in FIG. Specifically, the NAND controller 6a determines a channel to which data is to be written according to a remainder value obtained by dividing the logical address by the number of channels.

そして、NANDコントローラ6aは、図10中(H)に示すように、管理テーブル11aを参照し、決定したチャネルの物理ページからデータの書込み先となる物理ページを検索する。そして、NANDコントローラ6aは、図10中(I)に示すように、チャネル切替部16がデータを出力するチャネルを切替する。その後、NANDコントローラ6aは、図10中(J)に示すように、決定したチャネルのNANDインターフェースに、書込み対象となるデータを出力する。   Then, as shown in FIG. 10H, the NAND controller 6a refers to the management table 11a and searches the physical page that is the data write destination from the physical page of the determined channel. Then, the NAND controller 6a switches the channel from which the channel switching unit 16 outputs data, as indicated by (I) in FIG. Thereafter, as shown in FIG. 10J, the NAND controller 6a outputs data to be written to the NAND interface of the determined channel.

また、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 controller 6a associates the logical address of the data to be written with the physical address of the physical page in which the data is written. Store in the address table 10a. Further, when the data writing is completed, the NAND controller 6a updates the management table 11a as shown in (M) in FIG. 10, and outputs a response as shown in (N) in FIG.

この結果、NANDコントローラ6aは、例えば、連続する論理アドレスのデータを異なるチャネルの物理ページに書込むので、書込み要求を並行して実行できる。例えば、図11は、実施例1に係るNANDコントローラがデータを書込む際のタイムチャートである。なお、図11には、NANDコントローラ6aが書込み要求A〜EとデータA〜Eを連続して受信した際に実行する処理のタイムチャートを記載した。また、データA〜Eは、連続する論理アドレスが付与されているものとする。   As a result, the NAND controller 6a, for example, writes data of successive logical addresses on physical pages of different channels, so that write requests can be executed in parallel. For example, FIG. 11 is a time chart when the NAND controller according to the first embodiment writes data. FIG. 11 shows a time chart of processing executed when the NAND controller 6a continuously receives write requests A to E and data A to E. Further, it is assumed that the data A to E are given continuous logical addresses.

例えば、NANDコントローラ6aは、CPU3aからから書込み要求A〜Eと、書込みデータA〜Eとを順次受信する。すると、NANDコントローラ6aは、書込み要求Aを実行し、データAの論理アドレスから、データAの書込み先となるチャネルをチャネル#0に決定する。そして、NANDコントローラ6aは、データAをチャネル#0の物理ページに格納する。   For example, the NAND controller 6a sequentially receives write requests A to E and write data A to E from the CPU 3a. Then, the NAND controller 6a executes the write request A, and determines the channel to which the data A is written from the logical address of the data A as the channel # 0. Then, the NAND controller 6a stores the data A in the physical page of channel # 0.

一方、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 NAND controller 6a executes the write request B before the writing of the data A is completed, and determines the channel to which the data B is written from the logical address of the data B as the channel # 1. Then, the NAND controller 6a stores data B in the physical page of channel # 1. Thereafter, the NAND controller 6a executes each of the write requests C to E, and determines channels # 2, # 3, and # 1 as write destinations of the data C to E, respectively. Then, the NAND controller 6a writes the data C to E to the physical pages of channel # 2, channel # 3, and channel # 1, respectively.

この結果、図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 controller 6a executes the write requests A to D in parallel, and executes the write request E after the write request A ends. For this reason, the NAND controller 6a can improve the writing performance with respect to the NAND devices 7a to 7h as a result of shortening the time for writing data to the NAND devices 7a to 7h.

また、NANDコントローラ6aは、連続した論理アドレスのデータを異なるチャネルに書込むので、連続した論理アドレスのデータ読出す際に、処理を並行して実行することができる。例えば、図12は、実施例1に係るNANDコントローラがデータを読出す際のタイムチャートである。なお、図12には、NANDコントローラ6aが読出し要求A〜Eを連続して受信した際に実行する処理のタイムチャートを記載した。   Further, since the NAND controller 6a writes the data of consecutive logical addresses to different channels, the processing can be executed in parallel when reading the data of consecutive logical addresses. For example, FIG. 12 is a time chart when the NAND controller according to the first embodiment reads data. FIG. 12 shows a time chart of processing executed when the NAND controller 6a continuously receives the read requests A to E.

例えば、NANDコントローラ6aは、CPU3aから読出し要求A〜Eを連続して受信する。すると、NANDコントローラ6aは、読出し要求Aを実行し、データAをチャネル#0の物理ページから読出して、CPU3aへ送信する。また、NANDコントローラ6aは、データBがデータAとは異なるチャネルの物理ページに書込まれているので、データAの読出しと並行して読出し要求Bを実行し、データBをチャネル#1の物理ページから読出して、CPU3aへ送信する。   For example, the NAND controller 6a continuously receives read requests A to E from the CPU 3a. Then, the NAND controller 6a executes a read request A, reads data A from the physical page of channel # 0, and transmits it to the CPU 3a. Further, since the data B is written in a physical page of a channel different from that of the data A, the NAND controller 6a executes the read request B in parallel with the reading of the data A, and transfers the data B to the physical of the channel # 1. Read from the page and send to CPU 3a.

また、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 NAND controller 6a executes the read requests C to E in parallel, reads the data C to E from the channel # 2, the channel # 3, and the channel # 1 in parallel, and reads the read data C to E, respectively. It transmits to CPU3a. As a result, as shown in FIG. 12, the NAND controller 6a reads data A to D in parallel from different channels, and reads data E after reading data A. As a result, the NAND controller 6a can improve the read performance for the NAND devices 7a to 7h as a result of shortening the time for reading the data of the continuous logical addresses from the NAND devices 7a to 7h.

次に、図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 controller 6a will be described with reference to FIG. FIG. 13 is a flowchart for explaining the flow of processing executed by the NAND controller according to the first embodiment. For example, the NAND controller 6a receives a write command from the CPU (step S101). Then, the NAND controller 6a extracts a logical address from the write command (step S102), and determines a channel number from the extracted logical address (step S103). That is, the NAND controller 6a determines the search range of the physical page that is the data write destination from the logical address.

続いて、NANDコントローラ6aは、管理テーブル11aを参照し、決定したチャネル番号のデバイスアドレスから書込み先となる物理ページのデバイスアドレスを選択する(ステップS104)。そして、NANDコントローラ6aは、選択したデバイスアドレスとチャネル番号とが示す物理ページにデータの書込みを行う(ステップS105)。続いて、NANDコントローラ6aは、管理テーブル11aを更新し(ステップS106)、アドレステーブル10aを更新して(ステップS107)、処理を終了する。   Subsequently, the NAND controller 6a refers to the management table 11a and selects the device address of the physical page to be written from the device address of the determined channel number (step S104). Then, the NAND controller 6a writes data to the physical page indicated by the selected device address and channel number (step S105). Subsequently, the NAND controller 6a updates the management table 11a (step S106), updates the address table 10a (step S107), and ends the process.

[NANDコントローラ6aの効果]
上述したように、NANDコントローラ6aは、NANDデバイス7a〜7hに書込むデータの論理アドレスに応じて、NANDデバイス7a〜7hが有する物理ページのうち、データの書込み先となる物理ページを検索する範囲を決定する。そして、NANDコントローラ6aは、決定した範囲の物理ページから、データが書込まれていない物理ページを検索し、検索した物理ページにデータを書込む。このため、NANDコントローラ6aは、データの書込み先となる物理ページを検索する時間を短縮する結果、データの書込みにかかる時間を短縮できる。
[Effect of NAND controller 6a]
As described above, the NAND controller 6a searches for the physical page that is the data write destination among the physical pages of the NAND devices 7a to 7h according to the logical addresses of the data to be written to the NAND devices 7a to 7h. To decide. Then, the NAND controller 6a searches for a physical page in which no data is written from the determined range of physical pages, and writes the data to the searched physical page. For this reason, the NAND controller 6a can reduce the time required for writing data as a result of reducing the time required to search for a physical page as a data write destination.

また、NANDコントローラ6aは、物理ページの物理アドレスと、バリッドビットと、データ書込み回数とが対応付けて格納された管理テーブル11aを有する。そして、NANDコントローラ6aは、管理テーブル11aを用いて、決定した範囲の物理ページから、データが書込まれていない物理ページのうち、データが書込まれた回数が最も少ない物理ページを検索する。その後、NANDコントローラ6aは、検索した物理ページにデータを書込む。このため、NANDコントローラ6aは、各物理ページにデータを書込む回数を平準化するので、NANDデバイス7a〜7hの寿命を最大限利用できる。   The NAND controller 6a has a management table 11a in which physical addresses of physical pages, valid bits, and data write counts are stored in association with each other. Then, the NAND controller 6a uses the management table 11a to search a physical page in which the number of times data has been written is the smallest among the physical pages in which no data has been written, from the determined range of physical pages. Thereafter, the NAND controller 6a writes data to the searched physical page. For this reason, the NAND controller 6a equalizes the number of times data is written to each physical page, so that the lifetime of the NAND devices 7a to 7h can be utilized to the maximum.

また、NANDコントローラ6aは、NANDデバイス7a〜7hが有する物理ページのうち、それぞれ異なるチャネルの物理ページにアクセスする複数のNANDインターフェース部17a〜17dを有する。また、NANDコントローラ6aは、書込み対象のデータの論理アドレスに応じて、データの書込みに用いるNANDインターフェース部を決定する。つまり、NANDコントローラ6aは、データの論理アドレスに応じて、データを書込むチャネルを決定する。そして、NANDコントローラ6aは、決定したチャネルの物理ページから、データの書込み先となる物理ページを検索する。   The NAND controller 6a includes a plurality of NAND interface units 17a to 17d that access physical pages of different channels among the physical pages of the NAND devices 7a to 7h. Further, the NAND controller 6a determines a NAND interface unit used for data writing according to the logical address of the data to be written. That is, the NAND controller 6a determines a channel for writing data according to the logical address of the data. Then, the NAND controller 6a searches the physical page that is the data write destination from the physical pages of the determined channel.

このため、NANDコントローラ6aは、複数の書込み要求を連続して受信した際に、データをそれぞれ異なるチャネルの物理ページに書込む。この結果、NANDコントローラ6aは、複数の書込み要求を並行して実行する結果、NANDデバイス7a〜7hに対する書込み性能を向上させることができる。   For this reason, when the NAND controller 6a receives a plurality of write requests successively, the NAND controller 6a writes data to physical pages of different channels. As a result, the NAND controller 6a can improve the write performance of the NAND devices 7a to 7h as a result of executing a plurality of write requests in parallel.

また、NANDコントローラ6aは、データの論理アドレスをNANDインターフェース部17a〜17dの数で除算した剰余の値に応じて、データの書込みを行うNANDインターフェース部を決定する。すなわち、NANDコントローラ6aは、チャネルの数で除算した際の剰余の値に応じて、データの書込み先となる物理ページのチャネルを決定する。   The NAND controller 6a determines a NAND interface unit to which data is written according to a remainder value obtained by dividing the logical address of the data by the number of the NAND interface units 17a to 17d. That is, the NAND controller 6a determines the channel of the physical page to which data is written according to the remainder value obtained by dividing by the number of channels.

このため、NANDコントローラ6aは、連続する論理アドレスのデータを異なるチャネルの物理ページに書込むので、書込み要求を並行して実行する結果、NANDデバイス7a〜7hに対する書込み性能を向上させることができる。また、NANDコントローラ6aは、連続する論理アドレスのデータを異なるチャネルの物理ページに書込むので、連続する論理アドレスの読出し要求を並行して実行できる。この結果、NANDコントローラ6aは、NANDデバイス7a〜7hに対する読出し性能を向上させることができる。   For this reason, the NAND controller 6a writes data of successive logical addresses to physical pages of different channels. As a result of executing write requests in parallel, the write performance for the NAND devices 7a to 7h can be improved. Further, since the NAND controller 6a writes the data of consecutive logical addresses to the physical pages of different channels, it can execute the read request of the consecutive logical addresses in parallel. As a result, the NAND controller 6a can improve the reading performance for the NAND devices 7a to 7h.

また、NANDコントローラ6aは、論理アドレスの下位ビットの値に応じて、データの書込みに用いるNANDインターフェース部17a〜17dを決定する。すなわち、NANDコントローラ6aは、論理アドレスの下位ビットの値に応じて、データの書込み先となる物理ページを有するチャネルを決定する。   The NAND controller 6a determines NAND interface units 17a to 17d used for data writing according to the value of the lower bit of the logical address. That is, the NAND controller 6a determines a channel having a physical page to which data is written according to the value of the lower bit of the logical address.

このため、NANDコントローラ6aは、複雑な処理を行う回路を有さずとも、簡易な回路構成で、データの書込み先となる物理ページを有するチャネルを決定できる。この結果、NANDコントローラ6aは、データの書込み先となる物理ページを有するチャネルを決定する際の時間を短縮できる。また、NANDコントローラ6aは、回路規模を縮小することができる。   Therefore, the NAND controller 6a can determine a channel having a physical page as a data write destination with a simple circuit configuration without having a circuit for performing complicated processing. As a result, the NAND controller 6a can shorten the time for determining a channel having a physical page to which data is written. The NAND controller 6a can reduce the circuit scale.

これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例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 controller 6a described above determines a channel having a physical page to which data is written according to a remainder value obtained by dividing the logical address of data by the number of channels. However, the embodiment is not limited to this. That is, the NAND controller 6a groups the physical pages of the NAND devices 7a to 7h by an arbitrary number, and the physical page that is the data write destination according to the remainder value obtained by dividing the logical address of the data by the number of groups. The group to search for may be determined.

また、NANDコントローラ6aは、連続する物理ページを同一のグループに含めずともよい。例えば、NANDコントローラ6aは、データの論理アドレスが奇数である場合は、奇数の物理アドレスが示す物理ページからデータの書込み先となる物理ページを検索してもよい。また、NANDコントローラ6aは、データの論理アドレスが偶数である場合は、偶数の物理アドレスが示す物理ページからデータの書込み先となる物理ページを検索してもよい。   Further, the NAND controller 6a may not include consecutive physical pages in the same group. For example, if the logical address of data is an odd number, the NAND controller 6a may search for a physical page that is a data write destination from the physical page indicated by the odd number of physical addresses. In addition, when the logical address of data is an even number, the NAND controller 6a may search for a physical page that is a data write destination from the physical page indicated by the even number of physical addresses.

(2)NANDコントローラ6aの機能構成について
上述したNANDコントローラ6aの機能構成は、あくまで一例であり、NANDコントローラ6aとして同様の処理を実行できるのであれば、任意の構成を採用することができる。例えば、NANDコントローラ6aは、アドレステーブル記憶部10と管理テーブル記憶部11とをひとつの記憶部にまとめ、管理テーブル制御部14とアドレステーブル制御部15との機能を有するテーブル制御部を有してもよい。
(2) Functional configuration of NAND controller 6a The above-described functional configuration of the NAND controller 6a is merely an example, and any configuration can be adopted as long as the NAND controller 6a can perform the same processing. For example, the NAND controller 6a has a table control unit that combines the address table storage unit 10 and the management table storage unit 11 into a single storage unit and functions as the management table control unit 14 and the address table control unit 15. Also good.

なお、上述した例では、NANDコントローラ6aがNANDデバイス7a〜7hの物理ページからデータの書込み先となる物理ページを検索する例について記載した。しかしながら、実施例はこれに限定されるものではない。すなわち、NANDコントローラ6aは、データの書込みを行うのであれば、任意の技術が適用された記憶媒体、例えばメモリ等のメモリコントローラとして動作してもよい。   In the example described above, an example in which the NAND controller 6a searches for a physical page to which data is written from the physical pages of the NAND devices 7a to 7h has been described. However, the embodiment is not limited to this. That is, the NAND controller 6a may operate as a storage medium to which any technique is applied, for example, a memory controller such as a memory, as long as data is written.

(3)プログラム
上記の実施例で説明したNANDコントローラ6aが発揮する機能は、予め用意された制御プログラムをNANDコントローラ内の演算処理装置が実行することで実現してもよい。そこで、以下では、図14を用いて、上記のNANDコントローラ6aと同様の機能を有する制御プログラムを実行するコンピュータの一例について説明する。
(3) Program The functions exhibited by the NAND controller 6a described in the above embodiments may be realized by executing a control program prepared in advance by an arithmetic processing unit in the NAND controller. In the following, an example of a computer that executes a control program having the same function as that of the NAND controller 6a will be described with reference to FIG.

図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 CPU 40 and NAND interface units 17a to 17d. The CPU 40 is connected to the memory device 11b. Note that the memory device 11b may be a memory built in the NAND controller 6c.

メモリデバイス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 control program 30 functions as follows when the CPU 40 reads out, expands and executes the control program 30. That is, the control program 30 causes the CPU 40 to operate as the CPU interface unit 31, the table control unit 32, the channel determination unit 33, and the channel switching unit 34. Here, the CPU interface unit 31, the channel determination unit 33, and the channel switching unit 34 illustrated in FIG. 14 cause the CPU 40 to perform the same functions as the CPU interface unit 12, the channel determination unit 13, and the channel switching unit 16 illustrated in FIG. . Further, the table control unit 32 illustrated in FIG. 14 causes the CPU 40 to perform the same functions as those of the management table control unit 14 and the address table control unit 15 illustrated in FIG.

なお、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 control program 30 using an arithmetic device such as an MPU or FPGA instead of the CPU. Further, the control program 30 may be stored in, for example, the memory device 11b and the NAND devices 7a to 7h, or may be executed by the CPU 40 by other methods. For example, each program is stored in a “portable physical medium” such as a flexible disk, so-called FD (Flexible Disk), CD (Compact Disk) -ROM, DVD (Digital Versatile Disk), magneto-optical disk, or IC card.

そして、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 CPUs 3a and 3b. Further, each program stored in another computer or a server device may be acquired and executed via a public line, the Internet, a LAN, a WAN (Wide Area Network), or the like.

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 Information processing apparatus 2a, 2b Memory 3a, 3b, 40 CPU
4 I / O hub 5a, 5b SSD
6a to 6c NAND controllers 7a to 7h, 8a to 8h NAND devices 10 Address table storage unit 11 Management table storage unit 12 CPU interface unit 13 Channel determination unit 14 Management table control unit 15 Address table control unit 16 Channel switching unit 17a to 17d NAND Interface part

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.
前記決定部は、前記記憶領域に書込むデータの論理アドレスを前記入出力部の数で除算した剰余に応じて、前記データの書込みに用いる入出力部を決定することを特徴とする請求項に記載の情報処理装置。 The determining unit, according to the logical address of the data to be written in the storage area to the remainder obtained by dividing the number of the input-output unit, according to claim 2, characterized in that determining the output unit to be used for writing the data The information processing apparatus described in 1. 前記決定部は、前記記憶領域に書込むデータの論理アドレスの下位ビットの値に応じて、前記データの書込みに用いる入出力部を決定することを特徴とする請求項に記載の情報処理装置。 The information processing apparatus according to claim 2 , wherein the determination unit determines an input / output unit used for writing the data according to a value of a lower bit of a logical address of data to be written to the storage area. . 複数の記憶領域を有する記憶装置に書込むデータの論理アドレスに応じて、前記データの書込み先となる記憶領域を検索する範囲を決定する決定部と、
前記記憶装置が有する記憶領域と、前記記憶領域にデータが書込まれているか否かを示す書込情報と、前記記憶領域にデータが書込まれた回数を示す回数情報とを対応付けて記憶する記憶部を参照し、前記決定部が決定した各記憶領域に対応付けて前記記憶部が記憶する書込情報と回数情報とを用いて、前記決定部が決定した範囲に含まれる記憶領域のうち、データが書込まれておらず、かつ、データが書込まれた回数が最も少ない記憶領域を検索する検索部と、
前記検索部が検索した記憶領域に前記データを書込む書込部と
を有することを特徴とする前記記憶装置の制御回路。
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.
JP2015527090A 2013-07-16 2013-07-16 Information processing apparatus, control circuit, control program, and control method Expired - Fee Related JP6028866B2 (en)

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)

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

Patent Citations (5)

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