JP5967307B2 - 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
JP5967307B2
JP5967307B2 JP2015522391A JP2015522391A JP5967307B2 JP 5967307 B2 JP5967307 B2 JP 5967307B2 JP 2015522391 A JP2015522391 A JP 2015522391A JP 2015522391 A JP2015522391 A JP 2015522391A JP 5967307 B2 JP5967307 B2 JP 5967307B2
Authority
JP
Japan
Prior art keywords
address
physical
data
logical address
physical address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015522391A
Other languages
Japanese (ja)
Other versions
JPWO2014203315A1 (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 JP5967307B2 publication Critical patent/JP5967307B2/en
Publication of JPWO2014203315A1 publication Critical patent/JPWO2014203315A1/en
Active 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/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Description

本発明は、情報処理装置、制御回路、制御プログラム、及び制御方法に関する。   The present invention relates to an information processing device, a control circuit, a control program, and a control method.

従来、磁気ディスクよりも高速に動作する不揮発性メモリを用いた情報処理装置が知られている。このような情報処理システムの一例として、NANDフラッシュメモリデバイスをストレージ等の記憶装置として使用する情報処理装置が知られている。なお、以下の説明では、NANDフラッシュメモリデバイスをNANDデバイスと記載する。   Conventionally, an information processing apparatus using a nonvolatile memory that operates at a higher speed than a magnetic disk is known. As an example of such an information processing system, 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 performs data write, read, and data update movement in units of physical pages that are data storage areas, and erases data in units of physical blocks including a plurality of physical pages. For this reason, the NAND device may have a physical block in which valid data and invalid data are mixed. In addition, since the device deteriorates when erasing data in the NAND device, the device deteriorates between a physical page in which frequently updated data is written and a physical page in which less frequently updated data is written. Variation occurs in the speed at which it is performed.

このため、各物理ブロックに対するデータの書込み状況やデータの書込時刻に応じて、各物理ブロックに書込まれたデータの移動を実行し、データの整理や劣化の平準化を行うNANDコントローラが知られている。例えば、NANDコントローラは、物理ブロックごとに、各物理ページのデータが有効であるか否かを示す情報と、最後にデータが書き込まれた時刻を示す情報とが格納された管理情報テーブルを有する。   For this reason, a NAND controller is known that performs data migration and leveling of deterioration by moving data written to each physical block according to the data write status and data write time for each physical block. It has been. For example, the NAND controller has, for each physical block, a management information table in which information indicating whether or not the data of each physical page is valid and information indicating the time when the data was last written are stored.

そして、NANDコントローラは、管理情報テーブルを参照し、物理ブロックごとに、有効なデータの数やデータが書込まれてから経過した時間に応じて、データを移動させるか否かを判定する。その後、NANDコントローラは、データを移動させると判定した場合は、物理ブロックに書込まれた有効なデータを、予備ブロックの物理ページに移動し、選択した物理ブロックのデータを消去することで、新たな予備ブロックの確保や、劣化の平準化を行う。   Then, the NAND controller refers to the management information table, and determines whether to move the data for each physical block according to the number of valid data and the time elapsed since the data was written. After that, if the NAND controller determines to move the data, the valid data written in the physical block is moved to the physical page of the spare block, and the new physical data is deleted by deleting the data of the selected physical block. Secure spare blocks and level out deterioration.

また、NANDコントローラは、情報処理装置が実行するシステムがデータの指定に用いる論理アドレスを、データが格納された物理ページを示す物理アドレスに変換するアドレス変換テーブルを有する。そして、NANDコントローラは、データの移動を行った場合は、データの移動元、および、データの移動先を示す物理アドレスを用いて、アドレス変換テーブルの更新を行う。   The NAND controller also has an address conversion table that converts a logical address used for specifying data by a system executed by the information processing apparatus into a physical address indicating a physical page in which data is stored. Then, when the data is moved, the NAND controller updates the address conversion table using the physical address indicating the data movement source and the data movement destination.

例えば、従来技術として、以下のような技術がある。NANDコントローラは、物理アドレスを論理アドレスに逆変換するアドレス逆変換テーブルを用いて、データの移動元を示す物理アドレスを論理アドレスに逆変換する。そして、NANDコントローラは、アドレス変換テーブルに格納された物理アドレスのうち、逆変換された論理アドレスをインデックスとする物理アドレスを、データの移動先を示す物理アドレスに書き換える。   For example, there are the following techniques as conventional techniques. The NAND controller reversely converts a physical address indicating a data movement source into a logical address by using an address reverse conversion table that reversely converts a physical address into a logical address. Then, the NAND controller rewrites the physical address using the reversely converted logical address as an index among the physical addresses stored in the address conversion table to the physical address indicating the data movement destination.

また、フラッシュメモリへのアクセス速度を向上させるために、論理的に連続する複数のデータの書き込み先の記憶領域を特定して、複数のデータを分散して書き込む従来技術がある。   In addition, in order to improve the access speed to the flash memory, there is a conventional technique for specifying a storage area to which a plurality of logically continuous data is written and writing a plurality of data in a distributed manner.

特開2009−003784号公報JP 2009-003784 A 特開2003−15944号公報JP 2003-15944 A

しかしながら、上述した物理ブロックごとにデータを移動させるか否かを判定する技術では、データの移動元、および、データの移動先を示す物理アドレスを用いて、アドレス変換テーブルの更新を行う。かかる処理を行うため、例えば、NANDコントローラは、データの移動元を示す物理アドレスから論理アドレスに逆変換するアドレス逆変換テーブルを有するので、回路規模が増大するという問題がある。また、複数のデータを分散して書き込む従来技術を用いても、物理アドレスから論理アドレスへの変換については考慮されておらず、アドレス逆変換テーブルの使用を回避することは困難である。   However, in the technique for determining whether to move data for each physical block described above, the address conversion table is updated using the physical address indicating the data movement source and the data movement destination. In order to perform such processing, for example, the NAND controller has an address reverse conversion table for performing reverse conversion from a physical address indicating a data movement source to a logical address, which causes a problem that the circuit scale increases. Further, even when a conventional technique for writing a plurality of data in a distributed manner is used, conversion from a physical address to a logical address is not considered, and it is difficult to avoid using an address reverse conversion table.

開示の技術は、上記に鑑みてなされたものであって、NANDコントローラの回路規模を抑えつつアクセス性能を向上させる情報処理装置、制御回路、制御プログラム、及び制御方法を提供することを目的とする。   The disclosed technique has been made in view of the above, and an object thereof is to provide an information processing apparatus, a control circuit, a control program, and a control method that improve access performance while suppressing the circuit scale of a NAND controller. .

本願の開示する情報処理装置、制御回路、制御プログラム、及び制御方法は、一つの態様において、記憶装置は、複数の記憶領域を有する。開始位置設定部は、前記記憶領域を複数含むブロック毎に、各ブロックに含まれる記憶領域を識別する物理アドレスに対応する論理アドレスのうち所定条件を満たす論理アドレスを検索開始位置として設定する。選択部は、前記論理アドレスと前記物理アドレスとの対応を表す変換テーブルの前記検索開始位置から論理アドレスを所定の順序で選択していく。取得部は、前記選択部が選択した論理アドレスに対応付けられた物理アドレスを前記変換テーブルから取得する。判定部は、所定の条件を用いて、前記取得部が取得した物理アドレスが示す記憶領域に格納されたデータを移動させるか否かを判定する。移動部は、前記判定部が、前記データを移動させると判定した場合は、前記取得部が取得した物理アドレスが示す記憶領域に格納されたデータを、他の記憶領域に移動させる。更新部は、前記変換テーブルに格納された物理アドレスのうち、前記選択部が選択した論理アドレスに対応付けられた物理アドレスを、前記他の記憶領域を示す物理アドレスに更新する。   In one aspect, an information processing device, a control circuit, a control program, and a control method disclosed in the present application have a plurality of storage areas. The start position setting unit sets, for each block including a plurality of the storage areas, a logical address satisfying a predetermined condition among the logical addresses corresponding to the physical addresses for identifying the storage areas included in each block as a search start position. The selection unit selects a logical address in a predetermined order from the search start position of the conversion table representing the correspondence between the logical address and the physical address. The acquisition unit acquires a physical address associated with the logical address selected by the selection unit from the conversion table. The determination unit determines whether to move the data stored in the storage area indicated by the physical address acquired by the acquisition unit using a predetermined condition. When the determining unit determines to move the data, the moving unit moves the data stored in the storage area indicated by the physical address acquired by the acquiring unit to another storage area. The update unit updates a physical address associated with the logical address selected by the selection unit, among physical addresses stored in the conversion table, to a physical address indicating the other storage area.

本願の開示する情報処理装置、制御回路、制御プログラム、及び制御方法の一つの態様によれば、NANDコントローラの回路規模を抑えつつアクセス性能を向上させることができるという効果を奏する。   According to one aspect of the information processing device, the control circuit, the control program, and the control method disclosed in the present application, it is possible to improve the access performance while suppressing the circuit scale of the NAND controller.

図1は、実施例1に係る情報処理装置の概略構成図である。FIG. 1 is a schematic configuration diagram of an information processing apparatus according to the first embodiment. 図2は、メモリアクセスの一例を説明するための図である。FIG. 2 is a diagram for explaining an example of memory access. 図3は、実施例1に係るNANDコントローラのブロック図である。FIG. 3 is a block diagram of the NAND controller according to the first embodiment. 図4は、実施例1に係るアドレス変換テーブルの一例の図である。FIG. 4 is a diagram illustrating an example of an address conversion table according to the first embodiment. 図5は、実施例1に係る管理情報テーブルの一例の図である。FIG. 5 is a diagram of an example of the management information table according to the first embodiment. 図6は、実施例1に係るNANDコントローラが実行する処理の一例を説明するための図である。FIG. 6 is a schematic diagram illustrating an example of a process executed by the NAND controller according to the first embodiment. 図7は、実施例1に係るNANDコントローラが実行する処理のフローチャートである。FIG. 7 is a flowchart of processing executed by the NAND controller according to the first embodiment. 図8は、実施例1に係る管理情報テーブルの最小論理アドレスの更新処理のフローチャートである。FIG. 8 is a flowchart of the update process of the minimum logical address of the management information table according to the first embodiment. 図9は、実施例2に係る管理情報テーブルの一例の図である。FIG. 9 is a diagram illustrating an example of a management information table according to the second embodiment. 図10は、実施例2に係るNANDコントローラが実行する処理のフローチャートである。FIG. 10 is a flowchart of a process executed by the NAND controller according to the second embodiment. 図11は、実施例2に係る管理情報テーブルの最大論理アドレスの更新処理のフローチャートである。FIG. 11 is a flowchart of the update process of the maximum logical address of the management information table according to the second embodiment. 図12は、制御プログラムを実行するNANDコントローラの一例の図である。FIG. 12 is a diagram of 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 disclosed in the present application will be described in detail with reference to the drawings. It should be noted that the information processing apparatus, control circuit, control program, and control method disclosed in the present application are not limited by the following embodiments.

図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〜10aを有する。   FIG. 1 is a schematic configuration diagram of an information processing apparatus according to the first embodiment. 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 10a.

また、SSD5bは、NANDコントローラ6b及び複数のNANDデバイス7b〜10bを有する。なお、以下の説明では、SSD5b、NANDコントローラ6b、及び複数のNANDデバイス7b〜10bは、SSD5a、NANDコントローラ6a、及び複数のNANDデバイス7a〜10aと同様の機能を発揮するものとして、説明を省略する。   The SSD 5b includes a NAND controller 6b and a plurality of NAND devices 7b to 10b. In the following description, the SSD 5b, the NAND controller 6b, and the plurality of NAND devices 7b to 10b perform the same functions as the SSD 5a, the NAND controller 6a, and the plurality of NAND devices 7a to 10a, and the description thereof is omitted. To do.

各メモリ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〜10aからデータの読出しや書込みを行う。例えば、CPU3aは、SSD5aに対し、読出し対象となるデータを指定する論理アドレスが格納された読出し要求を発行する。また、CPU3aは、データの書込み先を指定する論理アドレスと、書込み対象となるデータとが格納された書込み要求を発行する。   In addition, the CPUs 3a and 3b acquire data stored in the 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 NAND device 7a to 10a. 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〜10aに対してアクセスし、データの読出しや書込みを行う。例えば、NANDコントローラ6aは、データが記憶された記憶領域を各CPU3a及び3bが指定する際に用いる論理アドレスと、データが格納されたNANDデバイス7a〜10aの記憶領域を示す物理アドレスとを対応付けたアドレス変換テーブルを有する。   The NAND controller 6a accesses each of the NAND devices 7a to 10a, and reads and writes data. For example, the NAND controller 6a associates a logical address used when the CPUs 3a and 3b specify a storage area in which data is stored with a physical address indicating a storage area of the NAND devices 7a to 10a in which the data is stored. An address translation 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 conversion 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コントローラ6aは、NANDデバイス7a〜10aが、複数のブロックを有し、各ブロックに2個の物理ページが含まれている場合は、以下の処理を行う。まず、NANDコントローラ6aは、論理アドレスの下位qビットを論理的な1つのブロック内において、物理ページを識別するための論理ページ番号とし、残りの論理アドレスの上位pビットを論理的な1つのブロックを示す論理ブロックアドレスとする。For example, NAND controller 6a is NAND device 7a~10a has a plurality of blocks, if it contains 2 q number of physical pages in each block, the following processing is performed. First, the NAND controller 6a uses the lower q bits of the logical address as a logical page number for identifying a physical page in one logical block, and the upper p bits of the remaining logical addresses as one logical block. Is a logical block address.

また、NANDコントローラ6aは、物理アドレスの上位pビットを物理的な1つのブロックを示す物理ブロックアドレスとし、物理アドレスの下位qビットを物理的な1つのブロック内において、各物理ページを識別するための物理ページ番号とする。つまり、NANDコントローラ6aは、論理アドレスを、論理ブロックを示す論理ブロックアドレスと、論理ページを論理ブロックごとに示す論理ページ番号とに分割する。また、NANDコントローラ6aは、物理アドレスを、物理ブロックを示す物理ブロックアドレスと、物理ページを物理ブロックごとに示す物理ページ番号とに分割する。   Further, the NAND controller 6a uses the upper p bits of the physical address as a physical block address indicating one physical block, and the lower q bits of the physical address identify each physical page within one physical block. Physical page number. That is, the NAND controller 6a divides a logical address into a logical block address indicating a logical block and a logical page number indicating a logical page for each logical block. The NAND controller 6a divides the physical address into a physical block address indicating a physical block and a physical page number indicating a physical page for each physical block.

以下、図2を用いて、NANDコントローラ6aが実行するメモリアクセスの一例について説明する。図2は、メモリアクセスの一例を説明するための図である。なお、図2に示す例では、理解を容易にするため、ブロック数を「8」とし、各ブロック内の物理ページ数が「4」のNANDデバイス7aについて記載した。また、図2に示す例では、NANDコントローラ6aが、論理ブロックアドレスと物理ブロックアドレスとを対応付けたアドレス変換テーブルを用いて、NANDデバイス7a〜10aが有する物理ページ単位でデータの書込みを行う処理について記載した。   Hereinafter, an example of memory access executed by the NAND controller 6a will be described with reference to FIG. FIG. 2 is a diagram for explaining an example of memory access. In the example illustrated in FIG. 2, for ease of understanding, the NAND device 7 a in which the number of blocks is “8” and the number of physical pages in each block is “4” is described. In the example shown in FIG. 2, the NAND controller 6a writes data in units of physical pages of the NAND devices 7a to 10a using an address conversion table in which logical block addresses and physical block addresses are associated with each other. Was described.

例えば、NANDコントローラ6aは、図2中(a)に示すように、CPU3aが実行するファイルシステムから、論理ブロックアドレス「LB00」の論理ページ番号「3」、すなわち論理アドレス「L0003」に書き込み要求を発行する。すると、NANDコントローラ6aは、アドレス変換テーブルを用いて、論理アドレス「L0003」に対応付けられた物理アドレス「P0403」を取得し、図2中(b)に示すように、更新前のデータが格納されている物理ページを識別する。   For example, as illustrated in FIG. 2A, the NAND controller 6a issues a write request to the logical page number “3” of the logical block address “LB00”, that is, the logical address “L0003” from the file system executed by the CPU 3a. Issue. Then, the NAND controller 6a acquires the physical address “P0403” associated with the logical address “L0003” using the address conversion table, and stores the data before update as shown in FIG. Identifies the physical page being served.

続いて、NANDコントローラ6aは、図2中(c)に示すように、物理アドレス「P0403」が示す物理ページのデータを読出し、読み出したデータを書込み対象のデータに更新し、更新後のデータを予備ブロックの空き物理ページに格納する。詳細な例を挙げると、NANDコントローラ6aは、図2中(d)に示すように、物理アドレス「P0800」が示す物理ページに更新後のデータを格納する。その後、NANDコントローラ6aは、図2中(e)に示すように、論理アドレス「L0003」と対応付けられていた物理アドレス「P0403」を「P0800」に更新し、処理を終了する。   Subsequently, as shown in FIG. 2C, the NAND controller 6a reads the data of the physical page indicated by the physical address “P0403”, updates the read data to the data to be written, and updates the updated data. Store in free physical page of spare block. As a detailed example, the NAND controller 6a stores the updated data in the physical page indicated by the physical address “P0800”, as shown in FIG. Thereafter, as shown in FIG. 2E, the NAND controller 6a updates the physical address “P0403” associated with the logical address “L0003” to “P0800”, and ends the processing.

ここで、NANDデバイス7a〜10aに格納されたデータに対し、物理ページ単位で書込みや移動を行う場合は、1つの物理ブロック内に有効なデータと無効なデータとが混在する場合がある。例えば、図2に示す例では、NANDコントローラ6aは、論理アドレス「L0003」が示すデータを更新する際、物理ブロックアドレス「B04」が示す物理ブロック内のデータを無効化する。そして、NANDコントローラ6aは、更新後のデータを物理ブロックアドレス「B08」が示す物理ブロックに格納する。このため、物理ブロックアドレス「B04」が示す物理ブロックには、有効なデータと無効なデータとが混在する。   Here, when writing or moving data stored in the NAND devices 7a to 10a in units of physical pages, valid data and invalid data may be mixed in one physical block. For example, in the example illustrated in FIG. 2, when updating the data indicated by the logical address “L0003”, the NAND controller 6a invalidates the data in the physical block indicated by the physical block address “B04”. Then, the NAND controller 6a stores the updated data in the physical block indicated by the physical block address “B08”. Therefore, valid data and invalid data are mixed in the physical block indicated by the physical block address “B04”.

ここで、NANDデバイス7a〜10aは、無効なデータが格納された物理ページに対してデータの上書きを行うことができず、あらかじめデータを消去した予備ブロックにデータの書込みを行う。しかしながら、有効なデータと無効なデータとが混在する物理ブロックが増えると、新たにデータを書き込む予備ブロックを確保できなくなる。また、NANDデバイス7a〜10aは、データを保持するための素子を有する。かかる素子は、データの消去を行う際に劣化が進行し、劣化が進むと、電荷を適切に保持することができなくなる。   Here, the NAND devices 7a to 10a cannot overwrite data on a physical page in which invalid data is stored, and write data to a spare block from which data has been erased in advance. However, when the number of physical blocks in which valid data and invalid data are mixed increases, it becomes impossible to secure a spare block for newly writing data. The NAND devices 7a to 10a have elements for holding data. Such an element deteriorates when data is erased, and when the deterioration progresses, it becomes impossible to hold charges appropriately.

そこで、従来のNANDコントローラは、有効なデータを整理して新たな予備ブロックを確保するデータ移動制御を実行する。   Therefore, the conventional NAND controller executes data movement control for organizing valid data and securing a new spare block.

ここで、NANDコントローラ6aは、ガベージコレクション処理などのデータ移動制御を実行した場合は、データの移動に応じて、アドレス変換テーブルの更新を行う。しかしながら、NANDコントローラ6aは、管理情報テーブルのページバリッドなどを用いて、物理ブロック毎に、データを移動させるか否かを判定する。このため、NANDコントローラ6aは、データ移動制御を行った後、データの移動元物理アドレスを識別できるが、データの移動元物理アドレスに対応する論理アドレスを識別できない。   Here, when the data movement control such as the garbage collection process is executed, the NAND controller 6a updates the address conversion table according to the data movement. However, the NAND controller 6a determines whether or not to move data for each physical block using page valid of the management information table. Therefore, the NAND controller 6a can identify the data source physical address after performing the data movement control, but cannot identify the logical address corresponding to the data source physical address.

そこで、NANDコントローラ6aに以下の処理を行わせることが考えられる。まず、NANDコントローラ6aは、データの移動を行うブロックを特定する。そして、NANDコントローラ6aは、アドレス変換テーブルを参照し、論理アドレスを1つ選択する。次に、NANDコントローラ6aは、選択した論理アドレスと対応付けられた物理アドレスをアドレス変換テーブルから取得する。そして、NANDコントローラ6aは、管理情報テーブルを用いて、取得した物理アドレスが示す物理ページを含む物理ブロックがデータの移動を行うブロックか否かを判定する。その後、NANDコントローラ6aは、データの移動を行った場合は、アドレス変換テーブルに格納された物理アドレスのうち、選択した論理アドレスと対応付けられた物理アドレスを、移動先物理アドレスに更新する。NANDコントローラ6aは、以上の処理を、アドレス変換テーブルの最初の論理アドレスから順に繰り返し行っていくことで、データの移動を行うブロックの全てのページのデータ移動を完了することができる。しかし、アドレス変換テーブルの最初の論理アドレスから順番にデータの移動判定を行う場合、最大で全ての論理アドレスに対して処理を行うことになり、データの移動処理に多大な時間が掛かってしまう。   Therefore, it is conceivable to cause the NAND controller 6a to perform the following processing. First, the NAND controller 6a specifies a block for moving data. Then, the NAND controller 6a refers to the address conversion table and selects one logical address. Next, the NAND controller 6a acquires a physical address associated with the selected logical address from the address conversion table. Then, the NAND controller 6a uses the management information table to determine whether or not the physical block including the physical page indicated by the acquired physical address is a block for moving data. Thereafter, when the data is moved, the NAND controller 6a updates the physical address associated with the selected logical address among the physical addresses stored in the address conversion table to the movement destination physical address. The NAND controller 6a can complete the data movement of all the pages of the block in which data movement is performed by repeating the above processing in order from the first logical address of the address conversion table. However, when data movement determination is performed in order from the first logical address in the address conversion table, processing is performed for all the logical addresses at the maximum, and the data movement process takes a long time.

そこで、本実施例に係る情報処理装置は、ブロック毎に最小の論理アドレスを特定し、その最小の論理アドレスを該当ブロックの検索開始アドレスとすることで、データ移動の判定の処理数を減らしてデータ移動処理に係る時間を短縮し、アクセス性能の低下を防ぐ。この最小論理アドレスが、「検索開始位置」の一例にあたる。   Therefore, the information processing apparatus according to the present embodiment specifies the minimum logical address for each block, and uses the minimum logical address as the search start address of the corresponding block, thereby reducing the number of data movement determination processes. The time required for the data movement process is shortened and the access performance is prevented from being lowered. This minimum logical address corresponds to an example of “search start position”.

以下、図3を用いて、NANDコントローラ6aについて説明する。図3は、実施例1に係るNANDコントローラのブロック図である。図3に示す例では、NANDコントローラ6aは、テーブル記憶部11、リクエスタインターフェース部12、リクエスト調停部13、及びテーブル制御部14を有する。また、NANDコントローラ6aは、デバイスアクセス制御部15、巡回参照制御部16、及びデータ移動制御部17を有する。また、テーブル記憶部11は、アドレス変換テーブル18及び管理情報テーブル19を記憶する。   Hereinafter, the NAND controller 6a will be described with reference to FIG. FIG. 3 is a block diagram of the NAND controller according to the first embodiment. In the example illustrated in FIG. 3, the NAND controller 6 a includes a table storage unit 11, a requester interface unit 12, a request arbitration unit 13, and a table control unit 14. The NAND controller 6 a includes a device access control unit 15, a cyclic reference control unit 16, and a data movement control unit 17. The table storage unit 11 stores an address conversion table 18 and a management information table 19.

まず、図4、図5を参照して、テーブル記憶部11が記憶するアドレス変換テーブル18と、管理情報テーブル19に格納された情報について説明する。図4は、実施例1に係るアドレス変換テーブルの一例の図である。図4に示すように、アドレス変換テーブル18には、論理アドレスと有効フラグと物理アドレスとが対応付けて格納されている。ここで、有効フラグとは、対応付けられた物理アドレスが示す物理ページに格納されたデータが有効なデータであるか否かを示すバリッドビットである。   First, the information stored in the address conversion table 18 and the management information table 19 stored in the table storage unit 11 will be described with reference to FIGS. 4 and 5. FIG. 4 is a diagram illustrating an example of an address conversion table according to the first embodiment. As shown in FIG. 4, the address conversion table 18 stores logical addresses, valid flags, and physical addresses in association with each other. Here, the valid flag is a valid bit indicating whether or not the data stored in the physical page indicated by the associated physical address is valid data.

例えば、図4に示す例では、アドレス変換テーブル18には、論理アドレス「L0000」と、有効フラグ「0」と、物理アドレス「P0011」とが対応付けて格納されている。すなわち、アドレス変換テーブル18は、物理アドレス「P0011」が示すブロックに論理アドレス「L0000」が指定する有効なデータが格納されていない旨を示す。   For example, in the example illustrated in FIG. 4, the address conversion table 18 stores the logical address “L0000”, the valid flag “0”, and the physical address “P0011” in association with each other. That is, the address conversion table 18 indicates that valid data designated by the logical address “L0000” is not stored in the block indicated by the physical address “P0011”.

同様に、図4に示す例では、アドレス変換テーブル18には、論理アドレス「L0001」と、有効フラグ「0」と、物理アドレス「P0032」とが対応付けて格納されている。また、アドレス変換テーブル18には、論理アドレス「L0002」と、有効フラグ「1」と、物理アドレス「P0003」とが対応付けて格納されている。また、アドレス変換テーブル18には、論理アドレス「L0003」と、有効フラグ「1」と、物理ブロックアドレス「P0001」とが対応付けて格納されている。すなわち、アドレス変換テーブル18は、物理アドレス「P0003」及び「P0001」に格納されたデータが有効なデータである旨を示す。   Similarly, in the example illustrated in FIG. 4, the address conversion table 18 stores the logical address “L0001”, the valid flag “0”, and the physical address “P0032” in association with each other. The address conversion table 18 stores a logical address “L0002”, a valid flag “1”, and a physical address “P0003” in association with each other. The address conversion table 18 stores a logical address “L0003”, a valid flag “1”, and a physical block address “P0001” in association with each other. That is, the address conversion table 18 indicates that the data stored in the physical addresses “P0003” and “P0001” are valid data.

次に、図5を用いて、管理情報テーブル19に格納される情報について説明する。図5は、実施例1に係る管理情報テーブルの一例の図である。図5に示すように、管理情報テーブル19には、物理ブロックアドレス、有効ページ数、及び最小論理アドレスが対応付けて格納される。   Next, information stored in the management information table 19 will be described with reference to FIG. FIG. 5 is a diagram of an example of the management information table according to the first embodiment. As shown in FIG. 5, the management information table 19 stores a physical block address, the number of valid pages, and a minimum logical address in association with each other.

ここで、有効ページ数とは、対応付けられた物理ブロックアドレスが示す物理ブロックに含まれる有効なデータを有するページの数である。例えば、管理情報テーブル19は、1つの物理ブロックに、n個の有効ページが含まれる場合は、有効ページ数はnとなる。   Here, the number of valid pages is the number of pages having valid data included in the physical block indicated by the associated physical block address. For example, in the management information table 19, when n valid pages are included in one physical block, the number of valid pages is n.

また、最小論理アドレスとは、物理ブロックアドレスが示すブロックに含まれるページの各物理アドレスに対応する論理アドレスの中で最小のアドレスである。   The minimum logical address is the smallest address among the logical addresses corresponding to each physical address of the page included in the block indicated by the physical block address.

例えば、図5に示す例では、管理情報テーブル19には、物理ブロックアドレス「B00」と、有効ページ数「11」と、最小論理アドレス「L0012」とが対応付けて格納される。すなわち、管理情報テーブル19は、物理ブロックアドレス「B00」が示す物理ブロックに含まれる物理ページのうち、11個のページが有効であることを示す。また、管理情報テーブル19は、物理ブロックアドレス「B00」に対応する論理アドレスの中で、最小の論理アドレスが「L0012」であることを示す。   For example, in the example shown in FIG. 5, the management information table 19 stores the physical block address “B00”, the number of valid pages “11”, and the minimum logical address “L0012” in association with each other. That is, the management information table 19 indicates that 11 pages are valid among the physical pages included in the physical block indicated by the physical block address “B00”. Further, the management information table 19 indicates that the smallest logical address among the logical addresses corresponding to the physical block address “B00” is “L0012”.

さらに、図5に示す例では、管理情報テーブル19には、物理ブロックアドレス「B01」には、有効ページがなく、最小論理アドレスも設定されていない。ここで、最小論理アドレスが設定されていない場合、本実施例では、論理アドレス全体の中で最も小さい論理アドレスである「L0000」を初期値として設定する。また、管理情報テーブル19には、物理ブロックアドレス「B02」と、有効ページ数「23」と、最小論理アドレス「L0000」とが対応付けて格納される。また、管理情報テーブル19には、物理ブロックアドレス「B03」と、有効ページ数「41」と、最小論理アドレス「L0103」とが対応付けて格納される。なお、管理情報テーブル19には、他にも、物理ブロックアドレス、有効ページ数、及び最小論理アドレスが対応付けて格納されているものとする。   Further, in the example shown in FIG. 5, the management information table 19 has no valid page and no minimum logical address is set for the physical block address “B01”. Here, when the minimum logical address is not set, in this embodiment, “L0000”, which is the smallest logical address among all the logical addresses, is set as an initial value. In the management information table 19, the physical block address “B02”, the number of valid pages “23”, and the minimum logical address “L0000” are stored in association with each other. The management information table 19 stores the physical block address “B03”, the number of valid pages “41”, and the minimum logical address “L0103” in association with each other. In the management information table 19, it is assumed that the physical block address, the number of valid pages, and the minimum logical address are stored in association with each other.

図3に戻り、リクエスタインターフェース部12は、CPU3a及び3bからのNANDデバイス7a〜10aに対するリクエストのインターフェースである。例えば、リクエスタインターフェース部12は、論理アドレスを含む読出し要求をCPU3a又は3bからI/Oハブ4を介して受信する。その場合、リクエスタインターフェース部12は、読出し要求をリクエスト調停部13に出力する。また、リクエスタインターフェース部12は、NANDデバイス7a〜10aから読出したデータをリクエスト調停部13から受信すると、読出し要求の発行元となるCPU3a又は3bに対してデータを送信する。   Returning to FIG. 3, the requester interface unit 12 is an interface for requests from the CPUs 3a and 3b to the NAND devices 7a to 10a. For example, the requester interface unit 12 receives a read request including a logical address from the CPU 3 a or 3 b via the I / O hub 4. In that case, the requester interface unit 12 outputs a read request to the request arbitration unit 13. Further, when the requester interface unit 12 receives the data read from the NAND devices 7 a to 10 a from the request arbitration unit 13, the requester interface unit 12 transmits the data to the CPU 3 a or 3 b that is the issuer of the read request.

また、リクエスタインターフェース部12は、NANDデバイス7a〜10aに対して書き込むデータ及び書込み対象となるデータの論理アドレスとを含む書込み要求をCPU3a及び3bから受信する。この場合、リクエスタインターフェース部12は、受信した書込み要求をリクエスト調停部13に出力する。また、リクエスタインターフェース部12は、リクエスト調停部13から、データ書込みが完了した旨の応答を受信すると、受信した応答を、書込み要求の発行元となるCPU3a又は3bに対して、応答を送信する。   The requester interface unit 12 receives a write request including data to be written to the NAND devices 7a to 10a and a logical address of data to be written from the CPUs 3a and 3b. In this case, the requester interface unit 12 outputs the received write request to the request arbitration unit 13. When the requester interface unit 12 receives a response from the request arbitration unit 13 to the effect that data writing has been completed, the requester interface unit 12 transmits the response to the CPU 3a or 3b that is the source of the write request.

リクエスト調停部13は、リクエスタインターフェース部12、データ移動制御部17、巡回参照制御部16が発行する各種リクエストの調停を行う。詳細には、リクエスト調停部13は、読出し要求又は書込み要求をリクエスタインターフェース部12から受信する。また、リクエスト調停部13は、NANDデバイス7a〜10aが記憶するデータを、現在記憶するブロックから他のブロックに移動するよう要求する移動要求をデータ移動制御部17から受信する。また、リクエスト調停部13は、物理ブロック内のデータを消去するよう要求する消去要求をデータ移動制御部17から受信する。また、リクエスト調停部13は、管理情報テーブル19の参照を要求するテーブル参照要求を巡回参照制御部16から受信する。   The request arbitration unit 13 arbitrates various requests issued by the requester interface unit 12, the data movement control unit 17, and the cyclic reference control unit 16. Specifically, the request arbitration unit 13 receives a read request or a write request from the requester interface unit 12. Further, the request arbitration unit 13 receives from the data movement control unit 17 a movement request that requests the data stored in the NAND devices 7a to 10a to be moved from the currently stored block to another block. Further, the request arbitration unit 13 receives from the data movement control unit 17 an erasure request for requesting erasure of data in the physical block. In addition, the request arbitration unit 13 receives a table reference request for requesting reference to the management information table 19 from the cyclic reference control unit 16.

そして、リクエスト調停部13は、リクエスタインターフェース部12、データ移動制御部17及び巡回参照制御部16から受信する読出し要求、書込み要求、移動要求、消去要求及びテーブル参照要求の調停を行う。例えば、リクエスト調停部13は、CPU3a及び3bからNANDデバイス7a〜10aに対するデータの読出しや書込みが阻害されないよう、リクエスタインターフェース部12が発行する読出し要求及び書込み要求を最優先で実行する。また、例えば、リクエスト調停部13は、移動要求を消去要求及びテーブル参照要求よりも優先して実行し、消去要求をテーブル参照要求よりも優先して実行する。なお、リクエスト調停部13が各要求を調停するルールについては、上述した処理に限定されるものではなく、任意のルールを適用してよい。   The request arbitration unit 13 then arbitrates the read request, write request, move request, erase request, and table reference request received from the requester interface unit 12, the data movement control unit 17, and the cyclic reference control unit 16. For example, the request arbitration unit 13 executes the read request and the write request issued by the requester interface unit 12 with the highest priority so that reading and writing of data from the CPUs 3a and 3b to the NAND devices 7a to 10a are not hindered. For example, the request arbitration unit 13 executes the movement request with priority over the deletion request and the table reference request, and executes the deletion request with priority over the table reference request. In addition, about the rule in which the request arbitration part 13 arbitrates each request | requirement, it is not limited to the process mentioned above, You may apply arbitrary rules.

以下、リクエスト調停部13が読出し要求、書込み要求、移動要求、消去要求及びテーブル参照要求を受信した際に実行する処理の一例を説明する。例えば、リクエスト調停部13は、読出し要求を受信すると、読出し要求に含まれる論理アドレスをテーブル制御部14に出力する。そして、リクエスト調停部13は、読出し対象となる物理アドレスをテーブル制御部14から受信すると、受信した物理アドレスを格納した読出し要求をデバイスアクセス制御部15へ発行する。その後、リクエスト調停部13は、読出し対象となるデータをデバイスアクセス制御部15から受信すると、受信したデータをリクエスタインターフェース部12へ出力する。   Hereinafter, an example of processing executed when the request arbitration unit 13 receives a read request, a write request, a move request, an erase request, and a table reference request will be described. For example, when receiving a read request, the request arbitration unit 13 outputs a logical address included in the read request to the table control unit 14. When the request arbitration unit 13 receives a physical address to be read from the table control unit 14, the request arbitration unit 13 issues a read request storing the received physical address to the device access control unit 15. Thereafter, when the request arbitration unit 13 receives data to be read from the device access control unit 15, the request arbitration unit 13 outputs the received data to the requester interface unit 12.

また、リクエスト調停部13は、書込み要求を受信すると、書込み要求に含まれる論理アドレスをテーブル制御部14に出力する。この結果、リクエスト調停部13は、書込み対象のデータが新たなデータである場合は、データが格納されていない予備ブロックのうち、データの書込み先となるページの物理アドレスをテーブル制御部14から受信する。   Further, when receiving the write request, the request arbitration unit 13 outputs a logical address included in the write request to the table control unit 14. As a result, when the data to be written is new data, the request arbitration unit 13 receives from the table control unit 14 the physical address of the page to which the data is written among the spare blocks in which no data is stored. To do.

その後、リクエスト調停部13は、テーブル制御部14から受信した物理アドレスと、書込み対象のデータとを含む書込み要求とをデバイスアクセス制御部15へ発行する。また、リクエスト調停部13は、デバイスアクセス制御部15からデータの書込みが完了した旨の応答を受信すると、データの書込み先となるページの物理アドレス及び書込み要求に含まれる論理アドレスを含むテーブル更新要求をテーブル制御部14へ出力する。そして、リクエスト調停部13は、テーブルの更新が終了した旨の応答をテーブル制御部14から受信した場合は、書込み要求に対する応答をリクエスタインターフェース部12へ出力する。   Thereafter, the request arbitration unit 13 issues a write request including the physical address received from the table control unit 14 and the write target data to the device access control unit 15. When the request arbitration unit 13 receives a response from the device access control unit 15 indicating that the data writing has been completed, the request arbitration unit 13 receives a table update request including the physical address of the page to which the data is to be written and the logical address included in the write request. Is output to the table control unit 14. If the request arbitration unit 13 receives from the table control unit 14 a response indicating that the table update has been completed, the request arbitration unit 13 outputs a response to the write request to the requester interface unit 12.

また、リクエスト調停部13は、書込みがデータの更新を目的とする場合は、更新元のデータが格納されたページの物理アドレスを更新元物理アドレスとしてテーブル制御部14から受信する。また、リクエスト調停部13は、予備ブロックに含まれるページの物理アドレス、すなわちデータの書込み先となるページの物理アドレスを更新先物理アドレスとしてテーブル制御部14から受信する。   Further, when the write is intended to update the data, the request arbitration unit 13 receives the physical address of the page storing the update source data from the table control unit 14 as the update source physical address. Further, the request arbitration unit 13 receives from the table control unit 14 the physical address of the page included in the spare block, that is, the physical address of the page that is the data write destination, as the update destination physical address.

そして、リクエスト調停部13は、更新元物理アドレス及び更新先物理アドレスをテーブル制御部14から受信した場合は、データの更新を要求する更新要求をデバイスアクセス制御部15へ発行する。詳細には、リクエスト調停部13は、更新元物理アドレス、更新先物理アドレス、及び書き込むデータを含む更新要求をデバイスアクセス制御部15へ発行する。   When the request arbitration unit 13 receives the update source physical address and the update destination physical address from the table control unit 14, the request arbitration unit 13 issues an update request for requesting data update to the device access control unit 15. Specifically, the request arbitration unit 13 issues an update request including an update source physical address, an update destination physical address, and data to be written to the device access control unit 15.

また、リクエスト調停部13は、データの書込みが完了した旨の応答をデバイスアクセス制御部15から受信すると、更新元物理アドレス、更新先物理アドレス、及び書込み要求に含まれる論理アドレスを含むテーブル更新要求をテーブル制御部14へ出力する。その後、リクエスト調停部13は、テーブル更新要求に対する応答をテーブル制御部14から受信すると、データの書込みが完了した旨の応答をリクエスタインターフェース部12へ出力する。   When the request arbitration unit 13 receives a response to the effect that data writing has been completed from the device access control unit 15, the request arbitration unit 13 updates the table update request including the update source physical address, the update destination physical address, and the logical address included in the write request. Is output to the table control unit 14. Thereafter, when the request arbitration unit 13 receives a response to the table update request from the table control unit 14, the request arbitration unit 13 outputs a response to the requester interface unit 12 indicating that the data writing has been completed.

また、リクエスト調停部13は、移動させるデータが格納された物理ページの物理アドレスである移動元物理アドレス及び移動させるデータを指定するための論理アドレスを含む移動要求をデータ移動制御部17などから受信する。また、リクエスト調停部13は、テーブル制御部14への問い合わせなどを行い、データの移動先となる物理ページの物理アドレスを移動先物理アドレスとして取得する。   Further, the request arbitration unit 13 receives a movement request including a movement source physical address that is a physical address of a physical page in which the data to be moved is stored and a logical address for designating the data to be moved from the data movement control unit 17 or the like. To do. In addition, the request arbitration unit 13 makes an inquiry to the table control unit 14 and acquires the physical address of the physical page that is the data transfer destination as the transfer destination physical address.

そして、リクエスト調停部13は、移動元物理アドレス及び移動先物理アドレスを含む移動要求をデバイスアクセス制御部15に発行する。また、リクエスト調停部13は、データの移動が完了した旨の応答をデバイスアクセス制御部15から受信する。そして、リクエスト調停部13は、データ移動制御部17から受信した移動対象のデータを指定する論理アドレス、移動先物理アドレス、及び移動元物理アドレスを含むテーブル更新要求をテーブル制御部14へ出力する。その後、リクエスト調停部13は、テーブル更新要求に対する応答をテーブル制御部14から受信した場合は、データの移動が完了した旨の応答をデータ移動制御部17へ出力する。   Then, the request arbitration unit 13 issues a movement request including the movement source physical address and the movement destination physical address to the device access control unit 15. Further, the request arbitration unit 13 receives from the device access control unit 15 a response indicating that the data movement has been completed. Then, the request arbitration unit 13 outputs to the table control unit 14 a table update request that includes a logical address that specifies data to be moved received from the data movement control unit 17, a movement destination physical address, and a movement source physical address. Thereafter, when the request arbitration unit 13 receives a response to the table update request from the table control unit 14, the request arbitration unit 13 outputs a response indicating that the data movement is completed to the data movement control unit 17.

また、リクエスト調停部13は、データの消去対象となる物理ブロックを示す物理ブロックアドレスを含む消去要求をデータ移動制御部17などから受信する。リクエスト調停部13は、消去要求を受信すると、受信した消去要求をデバイスアクセス制御部15へ発行する。そして、リクエスト調停部13は、データの消去が完了した旨の応答をデバイスアクセス制御部15から受信すると、消去要求に格納された物理ブロックアドレスを含むテーブル更新要求をテーブル制御部14へ出力する。そして、リクエスト調停部13は、データの更新が終了した旨の応答をテーブル制御部14から受信した場合は、データの消去が完了した旨の応答をデータ移動制御部17へ出力する。   Further, the request arbitration unit 13 receives an erasure request including a physical block address indicating a physical block to be erased from the data movement control unit 17 or the like. Upon receiving the erase request, the request arbitration unit 13 issues the received erase request to the device access control unit 15. Upon receiving a response from the device access control unit 15 that the data erasure is complete, the request arbitration unit 13 outputs a table update request including the physical block address stored in the erasure request to the table control unit 14. When the request arbitration unit 13 receives from the table control unit 14 a response indicating that the data update has been completed, the request arbitration unit 13 outputs a response indicating that the data erasure has been completed to the data movement control unit 17.

また、リクエスト調停部13は、テーブル参照要求を巡回参照制御部16から受信した場合は、アドレス変換テーブル18と管理情報テーブル19の参照要求をテーブル制御部14へ送信する。そして、リクエスト調停部13は、アドレス変換テーブル18及び管理情報テーブル19をテーブル制御部14から受信すると、受信したアドレス変換テーブル18及び管理情報テーブル19を巡回参照制御部16に出力する。   When the request arbitration unit 13 receives a table reference request from the cyclic reference control unit 16, the request arbitration unit 13 transmits a reference request for the address conversion table 18 and the management information table 19 to the table control unit 14. When the request arbitration unit 13 receives the address conversion table 18 and the management information table 19 from the table control unit 14, the request arbitration unit 13 outputs the received address conversion table 18 and management information table 19 to the cyclic reference control unit 16.

テーブル制御部14は、論理アドレスを物理アドレスに変換する。例えば、テーブル制御部14は、読出し要求に格納された論理アドレスをリクエスト調停部13から受信すると、受信した論理アドレスと対応付けられた物理アドレスをアドレス変換テーブル18から取得する。そして、テーブル制御部14は、取得した物理アドレスをリクエスト調停部13へ出力する。   The table control unit 14 converts a logical address into a physical address. For example, when the logical address stored in the read request is received from the request arbitration unit 13, the table control unit 14 acquires a physical address associated with the received logical address from the address conversion table 18. Then, the table control unit 14 outputs the acquired physical address to the request arbitration unit 13.

また、テーブル制御部14は、書込み要求に格納された論理アドレスをリクエスト調停部13から受信すると、アドレス変換テーブル18を参照し、受信した論理アドレスに有効フラグ「1」が対応付けられているか判定する。そして、テーブル制御部14は、受信した論理アドレスに有効フラグ「0」が対応付けられている場合、すなわち、書込み対象のデータが新たなデータである場合は、以下の処理を実行する。   When the table control unit 14 receives the logical address stored in the write request from the request arbitration unit 13, the table control unit 14 refers to the address conversion table 18 and determines whether the valid flag “1” is associated with the received logical address. To do. When the valid flag “0” is associated with the received logical address, that is, when the data to be written is new data, the table control unit 14 executes the following processing.

まず、テーブル制御部14は、管理情報テーブル19を参照し、データが格納されていない物理ブロック、すなわち、予備ブロックを識別する。例えば、テーブル制御部14は、管理情報テーブル19を参照し、対応付けられた有効ページ数がすべて「0」である物理ブロックを検索し、検出した物理ブロックを予備ブロックとする。そして、テーブル制御部14は、予備ブロックに含まれる物理ページの物理アドレスをリクエスト調停部13へ出力する。   First, the table control unit 14 refers to the management information table 19 and identifies a physical block in which no data is stored, that is, a spare block. For example, the table control unit 14 refers to the management information table 19 and searches for physical blocks whose associated valid page numbers are all “0”, and sets the detected physical block as a spare block. Then, the table control unit 14 outputs the physical address of the physical page included in the spare block to the request arbitration unit 13.

なお、テーブル制御部14は、一度予備ブロックを識別すると、識別した予備ブロックに含まれる物理ページの全ての物理ページにデータが書込まれるまで、同一の予備ブロックに含まれる物理ページの物理アドレスを出力する。詳細には、テーブル制御部14は、予備ブロックに含まれる物理ページのうち、データが書込まれていない物理ページの物理アドレスを、物理ページ番号の順に出力する。そして、テーブル制御部14は、予備ブロックに含まれる全ての物理ページにデータが書込まれた場合は、管理情報テーブル19を参照して、新たな予備ブロックを識別する。   Note that once the spare block is identified, the table control unit 14 sets the physical address of the physical page included in the same spare block until data is written to all physical pages of the physical page included in the identified spare block. Output. Specifically, the table control unit 14 outputs the physical addresses of physical pages in which no data is written among the physical pages included in the spare block, in the order of physical page numbers. Then, when data is written in all physical pages included in the spare block, the table control unit 14 refers to the management information table 19 and identifies a new spare block.

一方、テーブル制御部14は、受信した論理アドレスに有効フラグ「1」が対応付けられている場合、すなわち、書込みがデータの更新を目的とする場合は、以下の処理を実行する。まず、テーブル制御部14は、受信した論理アドレスと対応付けられた物理アドレスを更新元物理アドレスとしてリクエスト調停部13へ出力する。また、テーブル制御部14は、予備ブロックを識別し、識別した予備ブロックに含まれる物理ページのうち、データが格納されていない物理ページの物理アドレスを更新先物理アドレスとしてリクエスト調停部13へ出力する。   On the other hand, when the valid flag “1” is associated with the received logical address, that is, when writing is intended to update data, the table control unit 14 executes the following processing. First, the table control unit 14 outputs the physical address associated with the received logical address to the request arbitration unit 13 as an update source physical address. Further, the table control unit 14 identifies the spare block and outputs the physical address of the physical page in which no data is stored among the physical pages included in the identified spare block to the request arbitration unit 13 as the update destination physical address. .

また、テーブル制御部14は、リクエスト調停部13が移動要求を受信した際には、移動先物理アドレスの問い合わせをリクエスト調停部13から受ける。この場合、テーブル制御部14は、予備ブロックを識別し、識別した予備ブロックに含まれる物理ページのうち、データが格納されていない物理ページの物理アドレスを移動先物理アドレスとしてリクエスト調停部13へ出力する。   Further, when the request arbitration unit 13 receives the movement request, the table control unit 14 receives an inquiry about the movement destination physical address from the request arbitration unit 13. In this case, the table control unit 14 identifies the spare block, and outputs the physical address of the physical page in which no data is stored among the physical pages included in the identified spare block to the request arbitration unit 13 as the movement destination physical address. To do.

また、テーブル制御部14は、データの書込み、移動、又は消去に応じて、アドレス変換テーブル18及び管理情報テーブル19の更新を行う。例えば、テーブル制御部14は、リクエスト調停部13が新たなデータの書込みを行う場合は、データの書込み先となる物理ページの物理アドレス及び書込み要求に含まれる論理アドレスを含むテーブル更新要求を受信する。   The table control unit 14 updates the address conversion table 18 and the management information table 19 in accordance with data writing, movement, or erasure. For example, when the request arbitration unit 13 writes new data, the table control unit 14 receives a table update request including the physical address of the physical page that is the data write destination and the logical address included in the write request. .

この場合、テーブル制御部14は、データの書込み先となる物理ページの物理アドレス及び論理アドレスをテーブル更新要求から抽出する。そして、テーブル制御部14は、アドレス変換テーブル18における抽出した論理アドレスと対応付けられた有効フラグを「1」に更新する。また、テーブル制御部14は、抽出した論理アドレスに対応付けて、抽出した物理アドレスをアドレス変換テーブル18に格納する。   In this case, the table control unit 14 extracts the physical address and logical address of the physical page that is the data write destination from the table update request. Then, the table control unit 14 updates the valid flag associated with the extracted logical address in the address conversion table 18 to “1”. The table control unit 14 stores the extracted physical address in the address conversion table 18 in association with the extracted logical address.

また、テーブル制御部14は、抽出した物理アドレスが示す物理ブロックアドレスに対応付けられたエントリを管理情報テーブル19から抽出する。そして、テーブル制御部14は、抽出したエントリの有効ページ数を1つ増やす。また、テーブル制御部14は、抽出したエントリの最小論理アドレスを管理情報テーブル19から取得する。そして、テーブル制御部14は、書き込むデータの論理アドレスが取得した最小論理アドレスより小さいか否かを判定する。書き込むデータの論理アドレスが取得した最小論理アドレスより小さい場合、テーブル制御部14は、書き込むデータの論理アドレスを抽出したエントリの最小論理アドレスに書き込む。その後、テーブル制御部14は、テーブル更新要求に対する応答をリクエスト調停部13に出力する。   Further, the table control unit 14 extracts an entry associated with the physical block address indicated by the extracted physical address from the management information table 19. Then, the table control unit 14 increases the number of valid pages of the extracted entry by one. In addition, the table control unit 14 acquires the minimum logical address of the extracted entry from the management information table 19. Then, the table control unit 14 determines whether or not the logical address of the data to be written is smaller than the acquired minimum logical address. When the logical address of the data to be written is smaller than the acquired minimum logical address, the table control unit 14 writes the logical address of the data to be written to the minimum logical address of the extracted entry. Thereafter, the table control unit 14 outputs a response to the table update request to the request arbitration unit 13.

また、テーブル制御部14は、リクエスト調停部13がデータの更新を行う場合は、更新元物理アドレス、更新先物理アドレス及び書込み要求に含まれる論理アドレスを含むテーブル更新要求をリクエスト調停部13から受信する。この場合、テーブル制御部14は、テーブル更新要求から更新元物理アドレス、更新先物理アドレス、及び論理アドレスを抽出する。そして、テーブル制御部14は、アドレス変換テーブル18における抽出した論理アドレスと対応付けられた物理アドレスを抽出した更新先物理アドレスに更新する。   When the request arbitration unit 13 updates data, the table control unit 14 receives a table update request including the update source physical address, the update destination physical address, and the logical address included in the write request from the request arbitration unit 13. To do. In this case, the table control unit 14 extracts the update source physical address, the update destination physical address, and the logical address from the table update request. Then, the table control unit 14 updates the physical address associated with the extracted logical address in the address conversion table 18 to the extracted update destination physical address.

また、テーブル制御部14は、更新元物理アドレスに対応する物理ブロックアドレスと対応付けられたエントリを管理情報テーブル19から抽出する。そして、テーブル制御部14は、抽出したエントリの有効ページ数を1つ減らす。   Further, the table control unit 14 extracts an entry associated with the physical block address corresponding to the update source physical address from the management information table 19. Then, the table control unit 14 reduces the number of valid pages of the extracted entry by one.

次に、テーブル制御部14は、更新先物理ブロックアドレスと対応付けられたエントリを管理情報テーブル19から抽出する。そして、テーブル制御部14は、抽出したエントリの有効ページ数を1つ増やす。また、テーブル制御部14は、抽出したエントリの最小論理アドレスを管理情報テーブル19から取得する。そして、テーブル制御部14は、更新するデータの論理アドレスが取得した最小論理アドレスより小さいか否かを判定する。更新するデータの論理アドレスが取得した最小論理アドレスより小さい場合、テーブル制御部14は、更新するデータの論理アドレスを抽出したエントリの最小論理アドレスに書き込む。その後、テーブル制御部14は、テーブル更新要求に対する応答をリクエスト調停部13に出力する。   Next, the table control unit 14 extracts an entry associated with the update destination physical block address from the management information table 19. Then, the table control unit 14 increases the number of valid pages of the extracted entry by one. In addition, the table control unit 14 acquires the minimum logical address of the extracted entry from the management information table 19. Then, the table control unit 14 determines whether or not the logical address of the data to be updated is smaller than the acquired minimum logical address. If the logical address of the data to be updated is smaller than the acquired minimum logical address, the table control unit 14 writes the logical address of the data to be updated to the minimum logical address of the extracted entry. Thereafter, the table control unit 14 outputs a response to the table update request to the request arbitration unit 13.

また、テーブル制御部14は、リクエスト調停部13がデータの移動を行う場合は、移動元物理アドレス、移動先物理アドレス、及び移動対象のデータを指定する論理アドレスを含むテーブル更新要求を受信する。この場合、テーブル制御部14は、テーブル更新要求から移動元物理アドレス、移動先物理アドレス、及び論理アドレスを抽出する。そして、テーブル制御部14は、アドレス変換テーブル18を参照し、抽出した論理アドレスと対応付けられた物理アドレスを抽出した移動先物理アドレスに更新する。   In addition, when the request arbitration unit 13 moves data, the table control unit 14 receives a table update request including a movement source physical address, a movement destination physical address, and a logical address that specifies data to be moved. In this case, the table control unit 14 extracts the movement source physical address, the movement destination physical address, and the logical address from the table update request. Then, the table control unit 14 refers to the address conversion table 18 and updates the physical address associated with the extracted logical address to the extracted destination physical address.

また、テーブル制御部14は、移動元物理アドレスに対応する物理ブロックアドレスと対応付けられたエントリを管理情報テーブル19から抽出する。そして、テーブル制御部14は、抽出したエントリの有効ページ数を1つ減らす。   In addition, the table control unit 14 extracts an entry associated with the physical block address corresponding to the movement source physical address from the management information table 19. Then, the table control unit 14 reduces the number of valid pages of the extracted entry by one.

次に、テーブル制御部14は、移動先物理ブロックアドレスと対応付けられたエントリを管理情報テーブル19から抽出する。そして、テーブル制御部14は、抽出したエントリの有効ページ数を1つ増やす。また、テーブル制御部14は、抽出したエントリの最小論理アドレスを管理情報テーブル19から取得する。そして、テーブル制御部14は、移動するデータの論理アドレスが取得した最小論理アドレスより小さいか否かを判定する。移動するデータの論理アドレスが取得した最小論理アドレスより小さい場合、テーブル制御部14は、移動するデータの論理アドレスを抽出したエントリの最小論理アドレスに書き込む。その後、テーブル制御部14は、テーブル更新要求に対する応答をリクエスト調停部13に出力する。   Next, the table control unit 14 extracts an entry associated with the destination physical block address from the management information table 19. Then, the table control unit 14 increases the number of valid pages of the extracted entry by one. In addition, the table control unit 14 acquires the minimum logical address of the extracted entry from the management information table 19. Then, the table control unit 14 determines whether or not the logical address of the data to be moved is smaller than the acquired minimum logical address. When the logical address of the data to be moved is smaller than the acquired minimum logical address, the table control unit 14 writes the logical address of the data to be moved to the minimum logical address of the extracted entry. Thereafter, the table control unit 14 outputs a response to the table update request to the request arbitration unit 13.

また、テーブル制御部14は、リクエスト調停部13がデータの消去を行う場合は、消去要求に格納された物理ブロックアドレスを含むテーブル更新要求をリクエスト調停部13から受信する。そして、テーブル制御部14は、指定された物理ブロックアドレスに対応するエントリの最小論理アドレスを初期値に設定する。その後、テーブル制御部14は、テーブル更新要求に対する応答をリクエスト調停部13に出力する。   In addition, when the request arbitration unit 13 erases data, the table control unit 14 receives a table update request including the physical block address stored in the erase request from the request arbitration unit 13. Then, the table control unit 14 sets the minimum logical address of the entry corresponding to the designated physical block address as an initial value. Thereafter, the table control unit 14 outputs a response to the table update request to the request arbitration unit 13.

また、テーブル制御部14は、テーブル参照要求を受信した場合は、テーブル記憶部11からアドレス変換テーブル18と管理情報テーブル19とを取得する。そして、テーブル制御部14は、取得した管理情報テーブル19をリクエスト調停部13に出力する。なお、テーブル制御部14は、例えば、情報処理装置1が実行するシステムから、論理アドレスとデータとの対応付けを解消する旨の指示を受けると、アドレス変換テーブル18における対象となる論理アドレスと対応付けられた有効フラグを「0」に更新する。   Further, when receiving a table reference request, the table control unit 14 acquires the address conversion table 18 and the management information table 19 from the table storage unit 11. Then, the table control unit 14 outputs the acquired management information table 19 to the request arbitration unit 13. For example, when the table control unit 14 receives an instruction to cancel the association between the logical address and the data from the system executed by the information processing apparatus 1, the table control unit 14 corresponds to the target logical address in the address conversion table 18. The attached valid flag is updated to “0”.

デバイスアクセス制御部15は、リクエスト調停部13からの各種リクエストに従って、NANDデバイス7a〜10aに対するデバイスアクセスを実行する。例えば、デバイスアクセス制御部15は、物理アドレスを含む読出し要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、NANDデバイス7a〜10aが有するページのうち、読出し要求に格納されていた物理アドレスが示すページに格納されたデータの読み出しを実行する。そして、デバイスアクセス制御部15は、読み出したデータをリクエスト調停部13へ出力する。   The device access control unit 15 executes device access to the NAND devices 7 a to 10 a in accordance with various requests from the request arbitration unit 13. For example, the device access control unit 15 receives a read request including a physical address from the request arbitration unit 13. In this case, the device access control unit 15 reads data stored in the page indicated by the physical address stored in the read request among the pages of the NAND devices 7a to 10a. Then, the device access control unit 15 outputs the read data to the request arbitration unit 13.

また、例えば、デバイスアクセス制御部15は、物理アドレス及び書込み対象のデータを含む書込み要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、書込み要求に含まれる物理アドレスが示す物理ページに書込み対象のデータを格納する。その後、デバイスアクセス制御部15は、データの書込みを終了した旨の応答をリクエスト調停部13へ出力する。   For example, the device access control unit 15 receives a write request including a physical address and data to be written from the request arbitration unit 13. In this case, the device access control unit 15 stores the write target data in the physical page indicated by the physical address included in the write request. Thereafter, the device access control unit 15 outputs a response to the effect that the data writing has been completed to the request arbitration unit 13.

また、例えば、デバイスアクセス制御部15は、更新元物理アドレス、更新先物理アドレス、及び書き込むデータを含む更新要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、更新元物理アドレスが示す物理ページのデータを読み出す。続いて、デバイスアクセス制御部15は、読み出したデータを更新要求に含まれるデータに更新する。そして、デバイスアクセス制御部15は、更新したデータを更新先物理アドレスが示す物理ページに格納する。その後、デバイスアクセス制御部15は、データの書込みを終了した旨の応答をリクエスト調停部13へ出力する。   For example, the device access control unit 15 receives an update request including an update source physical address, an update destination physical address, and data to be written from the request arbitration unit 13. In this case, the device access control unit 15 reads the data of the physical page indicated by the update source physical address. Subsequently, the device access control unit 15 updates the read data to data included in the update request. Then, the device access control unit 15 stores the updated data in the physical page indicated by the update destination physical address. Thereafter, the device access control unit 15 outputs a response to the effect that the data writing has been completed to the request arbitration unit 13.

また、デバイスアクセス制御部15は、移動元物理アドレス及び移動先物理アドレスを含む移動要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、移動元物理アドレスが示す物理ページからデータを読出し、読出したデータを移動先物理アドレスが示す物理ページに格納する。その後、デバイスアクセス制御部15は、データの移動を終了した旨の応答をリクエスト調停部13へ出力する。   Further, the device access control unit 15 receives a movement request including the movement source physical address and the movement destination physical address from the request arbitration unit 13. In this case, the device access control unit 15 reads data from the physical page indicated by the source physical address, and stores the read data in the physical page indicated by the destination physical address. Thereafter, the device access control unit 15 outputs a response to the effect that the data movement has been completed to the request arbitration unit 13.

また、デバイスアクセス制御部15は、データの消去対象となる物理ブロックを示す物理ブロックアドレスを含む消去要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、消去要求に含まれる物理ブロックアドレスが示す物理ブロックに格納されたデータを消去し、データの消去が完了した旨の応答をリクエスト調停部13へ出力する。   Further, the device access control unit 15 receives from the request arbitration unit 13 an erasure request including a physical block address indicating a physical block that is a data erasure target. In this case, the device access control unit 15 erases the data stored in the physical block indicated by the physical block address included in the erase request, and outputs a response to the request arbitration unit 13 that the data erase is complete.

巡回参照制御部16は、所定のタイミングで、巡回参照制御を実行する。例えば、巡回参照制御部16は、所定の時間間隔、所定の時刻、又は情報処理装置1が実行するアプリケーションプログラムの指示などを契機として、巡回参照制御を実行する。   The cyclic reference control unit 16 executes cyclic reference control at a predetermined timing. For example, the cyclic reference control unit 16 executes the cyclic reference control in response to a predetermined time interval, a predetermined time, or an instruction of an application program executed by the information processing apparatus 1.

以下、巡回参照制御部16が実行する巡回参照制御の処理内容について説明する。巡回参照制御部16は、論理アドレス選択部161、物理アドレス取得部162、及び判定部163を有している。   Hereinafter, the processing content of the cyclic reference control executed by the cyclic reference control unit 16 will be described. The cyclic reference control unit 16 includes a logical address selection unit 161, a physical address acquisition unit 162, and a determination unit 163.

論理アドレス選択部161は、アドレス変換テーブル18及び管理情報テーブル19の参照要求をリクエスト調停部13へ出力する。そして、論理アドレス選択部161は、リクエスト調停部13からアドレス変換テーブル18及び管理情報テーブル19を受信する。   The logical address selection unit 161 outputs a request for referring to the address conversion table 18 and the management information table 19 to the request arbitration unit 13. Then, the logical address selection unit 161 receives the address conversion table 18 and the management information table 19 from the request arbitration unit 13.

次に、論理アドレス選択部161は、管理情報テーブル19から有効ページ数が閾値よりも小さい物理ブロックを1つ特定する。次に、論理アドレス選択部161は、特定した物理ブロックにおける最小論理アドレスを取得する。そして、論理アドレス選択部161は、最小論理アドレスに検索ポインタを設定する。その後、論理アドレス選択部161は、最小論理アドレスを物理アドレス取得部162へ出力する。   Next, the logical address selection unit 161 specifies one physical block whose effective page number is smaller than the threshold from the management information table 19. Next, the logical address selection unit 161 acquires the minimum logical address in the identified physical block. Then, the logical address selection unit 161 sets a search pointer to the minimum logical address. Thereafter, the logical address selection unit 161 outputs the minimum logical address to the physical address acquisition unit 162.

その後、論理アドレス選択部161は、次の論理アドレスの選択の指示を判定部163から受けると、検索ポインタを1つ増加させて、次に大きいアドレスを有する論理アドレスを移動判定処理の対象として新たに選択する。そして、論理アドレス選択部161は、選択した論理アドレスを物理アドレス取得部162へ出力する。すなわち、論理アドレス選択部161は、最小論理アドレスを検索開始アドレスとしてアドレスが大きくなる順に論理アドレスを1つずつ選択していく。   Thereafter, when the logical address selection unit 161 receives an instruction to select the next logical address from the determination unit 163, the logical address selection unit 161 increments the search pointer by one and newly sets a logical address having the next largest address as a target of the movement determination process. Select Then, the logical address selection unit 161 outputs the selected logical address to the physical address acquisition unit 162. That is, the logical address selection unit 161 selects the logical addresses one by one in the order of increasing addresses with the minimum logical address as the search start address.

物理アドレス取得部162は、論理アドレスを論理アドレス選択部161から取得する。そして、物理アドレス取得部162は、アドレス変換テーブル18を参照し、選択した論理アドレスと対応付けられた物理アドレスを取得する。そして、物理アドレス取得部162は、取得した物理アドレスを判定部163へ出力する。   The physical address acquisition unit 162 acquires a logical address from the logical address selection unit 161. Then, the physical address acquisition unit 162 refers to the address conversion table 18 and acquires a physical address associated with the selected logical address. Then, the physical address acquisition unit 162 outputs the acquired physical address to the determination unit 163.

判定部163は、物理アドレスを物理アドレス取得部162から取得する。そして、判定部163は、取得した物理アドレスで示されるページが特定した物理ブロックに含まれているか否かを判定する。   The determination unit 163 acquires a physical address from the physical address acquisition unit 162. Then, the determination unit 163 determines whether or not the page indicated by the acquired physical address is included in the specified physical block.

取得した物理アドレスが特定した物理ブロックの物理ブロックアドレスに含まれていない場合、判定部163は次の論理アドレスの選択を論理アドレス選択部161に指示する。   When the acquired physical address is not included in the physical block address of the specified physical block, the determination unit 163 instructs the logical address selection unit 161 to select the next logical address.

これに対して、取得した物理アドレスを有するページが特定した物理ブロックに含まれている場合、判定部163は、取得した物理アドレスに対応するアドレス変換テーブル18の有効フラグが「1」であるか否かを確認する。判定部163は、有効フラグが「0」の場合、次の論理アドレスの選択を論理アドレス選択部に指示する。   On the other hand, when the page having the acquired physical address is included in the specified physical block, the determination unit 163 determines whether the valid flag of the address conversion table 18 corresponding to the acquired physical address is “1”. Confirm whether or not. When the valid flag is “0”, the determination unit 163 instructs the logical address selection unit to select the next logical address.

これに対して、判定部163は、有効フラグが「1」の場合、取得した物理アドレス及び選択した論理アドレスの組をデータ移動制御部17へ出力する。そして、判定部163は、データ移動が完了すると、取得した物理ブロックに未だ有効ページがあるか否かを判定する。例えば、判定部163は、データの移動を行った際に、管理情報テーブル19における取得した物理ブロックの有効ページ数から1をデクリメントしていき、有効ページ数が0になった場合に、有効ページがなくなったと判定する。   On the other hand, when the valid flag is “1”, the determination unit 163 outputs a set of the acquired physical address and the selected logical address to the data movement control unit 17. When the data movement is completed, the determination unit 163 determines whether there is still a valid page in the acquired physical block. For example, the determination unit 163 decrements 1 from the number of valid pages of the acquired physical block in the management information table 19 when the data is moved, and when the number of valid pages becomes 0, the valid page It is determined that is gone.

有効ページが未だある場合、判定部163は、次の論理アドレスの選択を論理アドレス選択部に指示する。   If there is still a valid page, the determination unit 163 instructs the logical address selection unit to select the next logical address.

有効ページがなくなった、すなわち、データの移動により物理ブロックが空になったと判定した場合、判定部163は、取得した物理アドレス、選択した論理アドレス、及びブロックが空になる旨を示すラストフラグの組をデータ移動制御部17へ出力する。   When it is determined that there is no valid page, that is, the physical block is empty due to data movement, the determination unit 163 sets the acquired physical address, the selected logical address, and the last flag indicating that the block is empty. The set is output to the data movement control unit 17.

巡回参照制御部16は、選択した物理ブロックにおけるデータの移動及びブロックの消去を行い空き容量を作成した後、予め決められた閾値以上の空き容量が確保できたか否かを判定する。閾値以上の空き容量が確保できていない場合、巡回参照制御部16は、新たに物理ブロックを選択して以上の処理を繰り返す。予め決められた閾値以上の空き容量が確保できた場合、巡回参照制御部16は、ガベージコレクションの処理を終了する。   The cyclic reference control unit 16 moves the data in the selected physical block and deletes the block to create a free capacity, and then determines whether a free capacity equal to or greater than a predetermined threshold value has been secured. If free space equal to or greater than the threshold value cannot be secured, the cyclic reference control unit 16 newly selects a physical block and repeats the above processing. When a free space equal to or greater than a predetermined threshold value can be secured, the cyclic reference control unit 16 ends the garbage collection process.

データ移動制御部17は、データの移動を行う。具体的には、データ移動制御部17は、巡回参照制御部16から、論理アドレス及び物理アドレスの組、又は、論理アドレス、物理アドレス、及びラストフラグとの組を受信する。   The data movement control unit 17 performs data movement. Specifically, the data movement control unit 17 receives a set of a logical address and a physical address or a set of a logical address, a physical address, and a last flag from the cyclic reference control unit 16.

データ移動制御部17は、論理アドレス及び物理アドレスの組を巡回参照制御部16の判定部163から受信した場合、受信した組に含まれる物理アドレスを移動元物理アドレスとする。そして、データ移動制御部17は、移動元物理アドレスと、受信した組に含まれる論理アドレスとを含む移動要求をリクエスト調停部13へ出力する。その後、データ移動制御部17は、データの移動が完了した旨の応答をリクエスト調停部13から受信すると、受信した組に含まれる物理アドレスが示す物理ページのデータ移動処理を終了する。   When the data movement control unit 17 receives a combination of a logical address and a physical address from the determination unit 163 of the cyclic reference control unit 16, the data movement control unit 17 sets the physical address included in the received group as a movement source physical address. Then, the data movement control unit 17 outputs a movement request including the movement source physical address and the logical address included in the received set to the request arbitration unit 13. Thereafter, when receiving a response from the request arbitration unit 13 that the data movement has been completed, the data movement control unit 17 ends the data movement process of the physical page indicated by the physical address included in the received set.

一方、データ移動制御部17は、論理アドレス、物理アドレス、及びラストフラグの組を巡回参照制御部16の判定部163から受信した場合、受信した組に含まれる物理アドレスを移動元物理アドレスとする。そして、データ移動制御部17は、移動元物理アドレス及び受信した組に含まれる論理アドレスを含む移動要求をリクエスト調停部13へ出力する。その後、データ移動制御部17は、データの移動が完了した旨の応答を受信すると、受信した組に含まれる物理ブロックアドレスを含む消去要求をリクエスト調停部13へ出力する。そして、データ移動制御部17は、データの消去が完了した旨の応答をリクエスト調停部13から受信すると、受信した組に含まれる物理アドレスが示す物理ページのデータ移動処理を終了する。   On the other hand, when the data movement control unit 17 receives the set of the logical address, the physical address, and the last flag from the determination unit 163 of the cyclic reference control unit 16, the physical address included in the received set is used as the movement source physical address. . Then, the data movement control unit 17 outputs a movement request including the movement source physical address and the logical address included in the received set to the request arbitration unit 13. Thereafter, when receiving a response indicating that the data movement is completed, the data movement control unit 17 outputs an erasure request including the physical block address included in the received set to the request arbitration unit 13. Then, when receiving a response from the request arbitration unit 13 that the data erasure is completed, the data movement control unit 17 ends the data movement process of the physical page indicated by the physical address included in the received set.

例えば、データ移動制御部17は、論理アドレス「L0001」と、物理アドレス「P0032」と、ラストフラグとの組を巡回参照制御部16の判定部163から受信する。かかる場合は、データ移動制御部17は、移動元物理アドレス「P0032」と、論理アドレス「L0001」とを含む移動要求をリクエスト調停部13に出力する。そして、データ移動制御部17は、データの移動が完了した旨の応答を受信した場合は、物理アドレス「P0032」を含む物理ブロックアドレスの消去要求をリクエスト調停部13に出力する。この結果、NANDコントローラ6aは、物理アドレス「P0032」を含む物理ブロックアドレスが示す物理ブロックのデータを消去し、新たな予備ブロックとする。   For example, the data movement control unit 17 receives a set of the logical address “L0001”, the physical address “P0032”, and the last flag from the determination unit 163 of the cyclic reference control unit 16. In this case, the data movement control unit 17 outputs a movement request including the movement source physical address “P0032” and the logical address “L0001” to the request arbitration unit 13. When the data movement control unit 17 receives a response indicating that the data movement has been completed, the data movement control unit 17 outputs a request to erase the physical block address including the physical address “P0032” to the request arbitration unit 13. As a result, the NAND controller 6a erases the data of the physical block indicated by the physical block address including the physical address “P0032” to make a new spare block.

なお、例えば、リクエスタインターフェース部12、リクエスト調停部13、テーブル制御部14、デバイスアクセス制御部15、巡回参照制御部16、データ移動制御部17とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。   For example, the requester interface unit 12, the request arbitration unit 13, the table control unit 14, the device access control unit 15, the cyclic reference control unit 16, and the data movement control unit 17 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.

また、テーブル記憶部11とは、RAM(Random Access Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子などの記憶装置である。   The table storage unit 11 is a storage device such as a semiconductor memory element such as a RAM (Random Access Memory) and a flash memory.

次に、図6を参照して、本実施例に係るNANDコントローラ6aが実行する処理をまとめて説明する。図6は、実施例1に係るNANDコントローラが実行する処理の一例を説明するための図である。   Next, processing executed by the NAND controller 6a according to the present embodiment will be described collectively with reference to FIG. FIG. 6 is a schematic diagram illustrating an example of a process executed by the NAND controller according to the first embodiment.

例えば、NANDコントローラ6aは、図6中(A)に示すように、管理情報テーブル19を参照し、有効ページ数が閾値以下の物理ブロックを選択する。次に、NANDコントローラ6aは、選択した物理ブロックの検索開始アドレスを管理情報テーブル19から取得する。   For example, as illustrated in FIG. 6A, the NAND controller 6a refers to the management information table 19 and selects a physical block whose number of valid pages is equal to or less than a threshold value. Next, the NAND controller 6 a acquires the search start address of the selected physical block from the management information table 19.

次に、NANDコントローラ6aは、図6中(B)に示すように、検索開始アドレスから順番に論理アドレスを取得し、取得した論理アドレスと対応付けられた物理アドレスをアドレス変換テーブル18から取得する。そして、NANDコントローラ6aは、取得した物理アドレスから物理ブロックアドレスを特定する。そして、NANDコントローラ6aは、図6中(C)に示すように、管理情報テーブル19を参照し、特定した物理ブロックアドレスが選択した物理ブロックのアドレスに含まれているか否かを判定する。NANDコントローラ6aは、特定した物理ブロックアドレスが選択した物理ブロックのアドレスに含まれている場合、その物理ブロックに格納されているデータを移動させると判定する。   Next, as illustrated in FIG. 6B, the NAND controller 6 a acquires logical addresses sequentially from the search start address, and acquires a physical address associated with the acquired logical address from the address conversion table 18. . Then, the NAND controller 6a specifies a physical block address from the acquired physical address. Then, as illustrated in FIG. 6C, the NAND controller 6a refers to the management information table 19, and determines whether or not the identified physical block address is included in the address of the selected physical block. When the identified physical block address is included in the address of the selected physical block, the NAND controller 6a determines to move the data stored in the physical block.

そして、NANDコントローラ6aは、物理ブロックのデータを移動させると判定した場合は、図6中(D)に示すように、データ移動制御を実行する。具体的には、NANDコントローラ6aは、アドレス変換テーブル18の有効フラグを用いて、有効なデータが格納された物理ページを特定し、特定した物理ページを示す物理アドレスを移動元物理アドレスとする。また、NANDコントローラ6aは、管理情報テーブル19から予備ブロックの物理アドレスを移動先物理アドレスとして取得する。そして、NANDコントローラ6aは、選択した論理アドレス、移動元物理アドレス、および、移動先物理アドレスを用いて、データ移動制御を実行する。   If the NAND controller 6a determines that the data of the physical block is to be moved, the NAND controller 6a performs data movement control as shown in (D) of FIG. Specifically, the NAND controller 6a uses the valid flag of the address conversion table 18 to identify the physical page in which valid data is stored, and sets the physical address indicating the identified physical page as the source physical address. Further, the NAND controller 6a acquires the physical address of the spare block from the management information table 19 as the movement destination physical address. Then, the NAND controller 6a performs data movement control using the selected logical address, movement source physical address, and movement destination physical address.

詳細には、NANDコントローラ6aは、図6中(E)に示すように、移動元物理アドレスと移動先物理アドレスとを用いて、データの移動に係るデバイスアクセス制御を実行する。この結果、NANDコントローラ6aは、図6中(F)に示すように、移動元物理アドレスが示す物理ページに格納されたデータを、移動先物理アドレスが示す物理ページに移動させる。そして、NANDコントローラ6aは、図6中(G)及び(H)に示すように、データの移動に係る応答を受信する。   Specifically, as illustrated in (E) of FIG. 6, the NAND controller 6 a performs device access control related to data movement using the movement source physical address and the movement destination physical address. As a result, as shown in FIG. 6F, the NAND controller 6a moves the data stored in the physical page indicated by the source physical address to the physical page indicated by the destination physical address. Then, the NAND controller 6a receives a response relating to the movement of data, as indicated by (G) and (H) in FIG.

すると、NANDコントローラ6aは、図6中(I)に示すように、データの移動に応じて、管理情報テーブル19の更新を行う。また、NANDコントローラ6aは、図6中(J)に示すように、アドレス変換テーブル18が記憶する物理アドレスのうち、選択した論理アドレスと対応付けられた物理アドレスを移動先物理アドレスに更新する。   Then, the NAND controller 6a updates the management information table 19 in accordance with the movement of data, as indicated by (I) in FIG. Further, as shown in FIG. 6J, the NAND controller 6a updates the physical address associated with the selected logical address among the physical addresses stored in the address conversion table 18 to the movement destination physical address.

すなわち、NANDコントローラ6aは、物理ブロック毎にデータを移動させるか判定するのではなく、論理アドレス毎にデータを移動させるか否かを判定する。このため、NANDコントローラ6aは、移動元物理アドレスを論理アドレスに変換するアドレス逆変換テーブルを有さずとも、アドレス変換テーブル18の更新を行うことができる。この結果、NANDコントローラ6aは、回路規模を縮小することができる。また、検索開始位置より大きい論理アドレスに対してのみ、データの移動判定を行うので、NANDコントローラ6aは、データの移動判定の処理の時間を短縮できる。   That is, the NAND controller 6a does not determine whether to move data for each physical block, but determines whether to move data for each logical address. For this reason, the NAND controller 6a can update the address conversion table 18 without having an address reverse conversion table for converting the source physical address to the logical address. As a result, the NAND controller 6a can reduce the circuit scale. In addition, since the data movement determination is performed only for the logical address larger than the search start position, the NAND controller 6a can shorten the processing time of the data movement determination.

次に、図7を参照して、NANDコントローラ6aが実行する処理の流れについて説明する。図7は、実施例1に係るNANDコントローラが実行する処理のフローチャートである。NANDコントローラ6aは、所定の時間が経過した場合や、ソフトウェアからの指示を受けた場合は、図7に示すデータ移動制御を実行する。   Next, a flow of processing executed by the NAND controller 6a will be described with reference to FIG. FIG. 7 is a flowchart of processing executed by the NAND controller according to the first embodiment. The NAND controller 6a executes data movement control shown in FIG. 7 when a predetermined time has elapsed or when an instruction from software is received.

巡回参照制御部16の論理ブロック選択部161は、物理ブロックを一つ選択し、管理情報テーブル19における選択した物理ブロックの有効ページ数を検索する(ステップS101)。   The logical block selection unit 161 of the cyclic reference control unit 16 selects one physical block and searches the management information table 19 for the number of valid pages of the selected physical block (step S101).

そして、巡回参照制御部16の論理ブロック選択部161は、選択した物理ブロックの有効ページ数が閾値未満か否を判定する(ステップS102)。有効ページ数が閾値以上の場合(ステップS102:否定)、巡回参照制御部16は、ステップS101へ戻る。   Then, the logical block selection unit 161 of the cyclic reference control unit 16 determines whether or not the number of valid pages of the selected physical block is less than a threshold value (step S102). When the number of valid pages is equal to or greater than the threshold (No at Step S102), the cyclic reference control unit 16 returns to Step S101.

これに対して、有効ページ数が閾値未満の場合(ステップS102:肯定)、巡回参照制御部16の論理ブロック選択部161は、選択した物理ブロックの最小論理アドレスを管理情報テーブル19から取得する。そして、巡回参照制御部16の論理ブロック選択部161は、取得した最小論理アドレスに検索ポインタをセットする(ステップS103)。   On the other hand, when the number of valid pages is less than the threshold value (Step S102: Yes), the logical block selection unit 161 of the cyclic reference control unit 16 acquires the minimum logical address of the selected physical block from the management information table 19. Then, the logical block selection unit 161 of the cyclic reference control unit 16 sets a search pointer at the acquired minimum logical address (step S103).

次に、巡回参照制御部16の物理ブロック取得部162は、検索ポインタが示す論理アドレスに対応する物理アドレスをアドレス変換テーブル18から取得して、取得した物理アドレスを移動判定対象の物理アドレスとする(ステップS104)。   Next, the physical block acquisition unit 162 of the cyclic reference control unit 16 acquires a physical address corresponding to the logical address indicated by the search pointer from the address conversion table 18, and uses the acquired physical address as a physical address to be moved. (Step S104).

次に、巡回参照制御部16の判定部163は、移動判定対象の物理アドレスを有するページが選択した物理ブロックに含まれているか否かを判定する(ステップS105)。選択した物理ブロックに含まれていない場合(ステップS105:否定)、巡回参照制御部16の論理ブロック選択部161は、検索ポインタを1つインクリメントして検索ポインタを更新する(ステップS109)。   Next, the determination unit 163 of the cyclic reference control unit 16 determines whether or not a page having a physical address to be moved is included in the selected physical block (step S105). If not included in the selected physical block (No at Step S105), the logical block selection unit 161 of the cyclic reference control unit 16 increments the search pointer by one and updates the search pointer (Step S109).

一方、選択した物理ブロックに含まれる場合(ステップS105:肯定)、巡回参照制御部16の判定部163は、移動判定対象の物理アドレスを有するページに有効データが格納されているか否かをアドレス変換テーブル18から判定する(ステップS106)。有効データが格納されていない場合(ステップS106:否定)、巡回参照制御部16の判定部163は、検索ポインタを1つインクリメントして検索ポインタを更新し(ステップS109)、ステップS104へ戻る。   On the other hand, when included in the selected physical block (step S105: affirmative), the determination unit 163 of the cyclic reference control unit 16 performs address conversion to determine whether or not valid data is stored in the page having the movement determination target physical address. Determination is made from the table 18 (step S106). When valid data is not stored (step S106: No), the determination unit 163 of the cyclic reference control unit 16 increments the search pointer by one, updates the search pointer (step S109), and returns to step S104.

これに対して、有効データが格納されている場合(ステップS106:肯定)、巡回参照制御部16の判定部163は、取得した物理アドレスを移動対象の物理アドレスとする。そして、巡回参照制御部16の判定部163は、移動対象の物理アドレス及びそれに対応する論理アドレスの組をデータ移動制御部17へ出力する。データ移動制御部17は、データの移動要求をリクエスト調停部13へ出力し、移動対象の物理アドレスからデータを移動さる。また、テーブル制御部14は、アドレス変換テーブル18の論理アドレスに関連付けられた物理アドレスを変更し、アドレス変換テーブル18を更新する。さらに、巡回参照制御部16の判定部163は、管理情報テーブル19における選択した物理ブロックの有効ページ数を1つ減らして、管理情報テーブル19を更新する(ステップS107)。   On the other hand, when valid data is stored (step S106: Yes), the determination unit 163 of the cyclic reference control unit 16 sets the acquired physical address as a physical address to be moved. Then, the determination unit 163 of the cyclic reference control unit 16 outputs a set of a physical address to be moved and a logical address corresponding thereto to the data movement control unit 17. The data movement control unit 17 outputs a data movement request to the request arbitration unit 13 and moves the data from the physical address to be moved. Further, the table control unit 14 changes the physical address associated with the logical address of the address conversion table 18 and updates the address conversion table 18. Further, the determination unit 163 of the cyclic reference control unit 16 updates the management information table 19 by reducing the number of valid pages of the selected physical block in the management information table 19 by 1 (step S107).

次に、巡回参照制御部16の判定部163は、選択した物理ブロックの有効ページ数が0になったか否かを判定する(ステップS108)。有効ページ数が0でない場合(ステップS108:否定)、巡回参照制御部16の論理ブロック選択部161は、検索ポインタを1つインクリメントして検索ポインタを更新する(ステップS109)。   Next, the determination unit 163 of the cyclic reference control unit 16 determines whether or not the number of valid pages of the selected physical block has become 0 (step S108). When the number of valid pages is not 0 (No at Step S108), the logical block selection unit 161 of the cyclic reference control unit 16 increments the search pointer by 1 and updates the search pointer (Step S109).

これに対して、有効ページ数が0の場合(ステップS108:肯定)、巡回参照制御部16の判定部163は、ラストフラグをデータ移動制御部17へ出力する。データ移動制御部17は、移動対象の物理アドレスを含む物理ブロックの消去命令をリクエスト調停部13へ送信し、その物理ブロックを消去させる。また、巡回参照制御部16は、管理情報テーブル19における選択した物理ブロックに対応する最小論理アドレスを初期値に設定して管理情報テーブル19を更新する(ステップS110)。   On the other hand, when the number of valid pages is 0 (step S108: Yes), the determination unit 163 of the cyclic reference control unit 16 outputs a last flag to the data movement control unit 17. The data movement control unit 17 transmits a physical block erase command including the physical address to be moved to the request arbitration unit 13 to erase the physical block. Further, the cyclic reference control unit 16 sets the minimum logical address corresponding to the selected physical block in the management information table 19 to an initial value and updates the management information table 19 (step S110).

その後、巡回参照制御部16は、空き容量が閾値以下か否かを判定する(ステップS111)。空き容量が閾値以下の場合(ステップS111:肯定)、巡回参照制御部16は、ステップS101へ戻る。これに対して、空き容量が閾値より大きい場合(ステップS111:否定)、NANDコントローラ6aは、データの移動制御の処理を終了する。   Thereafter, the cyclic reference control unit 16 determines whether or not the free space is equal to or less than a threshold value (step S111). When the free space is equal to or less than the threshold (step S111: Yes), the cyclic reference control unit 16 returns to step S101. On the other hand, when the free space is larger than the threshold (No at Step S111), the NAND controller 6a ends the data movement control process.

次に、図8を参照して、本実施例に係る管理情報テーブル19の最小論理アドレスの更新処理について説明する。図8は、実施例1に係る管理情報テーブルの最小論理アドレスの更新処理のフローチャートである。   Next, update processing of the minimum logical address of the management information table 19 according to the present embodiment will be described with reference to FIG. FIG. 8 is a flowchart of the update process of the minimum logical address of the management information table according to the first embodiment.

テーブル制御部14は、リクエスト調停部13が書き込み命令をリクエスタインターフェース部12から受信したか否かを判定する(ステップS201)。書き込み命令を受信していない場合(ステップS201:否定)、テーブル制御部14は、最小論理アドレスの更新処理を終了する。   The table control unit 14 determines whether or not the request arbitration unit 13 has received a write command from the requester interface unit 12 (step S201). When the write command has not been received (No at Step S201), the table control unit 14 ends the update process of the minimum logical address.

これに対して、書き込み命令を受信した場合(ステップS201:肯定)、テーブル制御部14は、書き込み命令でデータの格納先として指定された物理アドレスを含む物理ブロックを管理情報テーブル19から検索する(ステップS202)。   On the other hand, when a write command is received (step S201: Yes), the table control unit 14 searches the management information table 19 for a physical block including a physical address designated as a data storage destination by the write command ( Step S202).

次に、テーブル制御部14は、検索した物理ブロックの最小論理アドレスを管理情報テーブル19から取得する(ステップS203)。   Next, the table control unit 14 acquires the minimum logical address of the searched physical block from the management information table 19 (step S203).

そして、テーブル制御部14は、データの格納先の論理アドレスが取得した最小論理アドレス未満か否かを判定する(ステップS204)。データの格納先の論理アドレスが取得した最小論理アドレス以上の場合(ステップS204:否定)、テーブル制御部14は、最小論理アドレスの更新処理を終了する。   Then, the table control unit 14 determines whether or not the data storage destination logical address is less than the acquired minimum logical address (step S204). When the logical address of the data storage destination is equal to or greater than the acquired minimum logical address (No at Step S204), the table control unit 14 ends the update process of the minimum logical address.

これに対して、データの格納先の論理アドレスが取得した最小論理アドレス未満の場合(ステップS204:肯定)、テーブル制御部14は、検索した物理ブロックの最小論理アドレスをデータの格納先の論理アドレスに更新する(ステップS205)。   On the other hand, when the logical address of the data storage destination is less than the acquired minimum logical address (step S204: Yes), the table control unit 14 sets the minimum logical address of the retrieved physical block as the logical address of the data storage destination. (Step S205).

以上に説明したように、本実施例に係る情報処理装置は、ガベージコレクションを行う場合に、対象の物理ブロックの最小論理アドレスを検索開始位置として、論理アドレスが増える順序で物理アドレスを検索し、データ移動を行うか否かを判定する。これにより、物理アドレスから論理アドレスを検索する逆引きのテーブルを用いずにガベージコレクションが行え、NANDコントローラの回路規模を抑えることができる。また、最小論理アドレスより小さい論理アドレスについてはデータの移動判定を省略できるので、ガベージコレクションの時間を短縮でき、アクセス性能を向上させることができる。   As described above, when performing the garbage collection, the information processing apparatus according to the present embodiment searches the physical address in the order in which the logical address increases, with the minimum logical address of the target physical block as the search start position, It is determined whether or not to perform data movement. Thereby, garbage collection can be performed without using a reverse lookup table for retrieving a logical address from a physical address, and the circuit scale of the NAND controller can be suppressed. Further, since the data movement determination can be omitted for a logical address smaller than the minimum logical address, the garbage collection time can be shortened and the access performance can be improved.

次に、実施例2に係るNANDコントローラについて説明する。本実施例に係るNANDコントローラは、検索開始位置として最大論理アドレスを用いることが実施例1と異なる。そこで、以下では、最大論理アドレスの設定及び最大論理アドレスを検索開始位置とした場合のデータ移動の判定について主に説明する。本実施例に係るNANDコントローラ6aのブロック図も図3で表される。以下の説明では、実施例1と同じ機能を有する各部については説明を省略する。   Next, a NAND controller according to the second embodiment will be described. The NAND controller according to the present embodiment is different from the first embodiment in that the maximum logical address is used as the search start position. Therefore, in the following, setting of the maximum logical address and determination of data movement when the maximum logical address is set as the search start position will be mainly described. A block diagram of the NAND controller 6a according to this embodiment is also shown in FIG. In the following description, description of each part having the same function as in the first embodiment is omitted.

図9は、実施例2に係る管理情報テーブルの一例の図である。図9に示すように、管理情報テーブル19には、物理ブロックアドレス、有効ページ数、及び最大論理アドレスが対応付けて格納される。   FIG. 9 is a diagram illustrating an example of a management information table according to the second embodiment. As shown in FIG. 9, the management information table 19 stores a physical block address, the number of valid pages, and a maximum logical address in association with each other.

最大論理アドレスとは、物理ブロックアドレスが示すブロックに含まれるページの各物理アドレスに対応する論理アドレスの中で最大のアドレスである。   The maximum logical address is the maximum address among the logical addresses corresponding to each physical address of the page included in the block indicated by the physical block address.

例えば、図9に示す例では、管理情報テーブル19には、物理ブロックアドレス「B00」と、有効ページ数「11」と、最小論理アドレス「Lff0e」とが対応付けて格納される。すなわち、管理情報テーブル19は、物理ブロックアドレス「B00」が示す物理ブロックに含まれる物理ページのうち、11個のページが有効であることを示す。また、管理情報テーブル19は、物理ブロックアドレス「B00」に対応する論理アドレスの中で、最大の論理アドレスが「Lff0e」であることを示す。   For example, in the example shown in FIG. 9, the management information table 19 stores the physical block address “B00”, the number of valid pages “11”, and the minimum logical address “Lff0e” in association with each other. That is, the management information table 19 indicates that 11 pages are valid among the physical pages included in the physical block indicated by the physical block address “B00”. Further, the management information table 19 indicates that the maximum logical address among the logical addresses corresponding to the physical block address “B00” is “Lff0e”.

さらに、図9に示す例では、管理情報テーブル19における物理ブロックアドレス「B01」には、有効ページがなく、最大論理アドレスも設定されていない。ここで、最大論理アドレスが設定されていない場合、本実施例では、論理アドレス全体の中で最も大きい論理アドレスである「Lffff」を初期値として設定する。   Furthermore, in the example illustrated in FIG. 9, the physical block address “B01” in the management information table 19 has no valid page and no maximum logical address is set. Here, when the maximum logical address is not set, in this embodiment, “Lffff”, which is the largest logical address among all the logical addresses, is set as an initial value.

テーブル制御部14は、リクエスト調停部13が新たなデータの書込みを行う場合、テーブル更新要求から取得した物理アドレスが示す物理ブロックアドレスに対応付けられたエントリを管理情報テーブル19から抽出する。そして、テーブル制御部14は、抽出したエントリの有効ページ数を1つ増やす。また、テーブル制御部14は、抽出したエントリの最大論理アドレスを管理情報テーブル19から取得する。そして、テーブル制御部14は、書き込むデータの論理アドレスが取得した最大論理アドレスより大きいか否かを判定する。書き込むデータの論理アドレスが取得した最大論理アドレスより大きい場合、テーブル制御部14は、書き込むデータの論理アドレスを抽出したエントリの最大論理アドレスに書き込む。   When the request arbitration unit 13 writes new data, the table control unit 14 extracts an entry associated with the physical block address indicated by the physical address acquired from the table update request from the management information table 19. Then, the table control unit 14 increases the number of valid pages of the extracted entry by one. In addition, the table control unit 14 acquires the maximum logical address of the extracted entry from the management information table 19. Then, the table control unit 14 determines whether or not the logical address of the data to be written is larger than the acquired maximum logical address. When the logical address of the data to be written is larger than the acquired maximum logical address, the table control unit 14 writes the logical address of the data to be written to the maximum logical address of the extracted entry.

同様に、テーブル制御部14は、リクエスト調停部13がデータの更新を行う場合、更新先物理ブロックアドレスと対応付けられたエントリを管理情報テーブル19から抽出する。そして、テーブル制御部14は、抽出したエントリの有効ページ数を1つ増やす。また、テーブル制御部14は、抽出したエントリの最大論理アドレスを管理情報テーブル19から取得する。そして、テーブル制御部14は、更新するデータの論理アドレスが取得した最大論理アドレスより大きいか否かを判定する。更新するデータの論理アドレスが取得した最大論理アドレスより大きい場合、テーブル制御部14は、更新するデータの論理アドレスを抽出したエントリの最大論理アドレスに書き込む。   Similarly, the table control unit 14 extracts an entry associated with the update destination physical block address from the management information table 19 when the request arbitration unit 13 updates data. Then, the table control unit 14 increases the number of valid pages of the extracted entry by one. In addition, the table control unit 14 acquires the maximum logical address of the extracted entry from the management information table 19. Then, the table control unit 14 determines whether or not the logical address of the data to be updated is larger than the acquired maximum logical address. When the logical address of the data to be updated is larger than the acquired maximum logical address, the table control unit 14 writes the logical address of the data to be updated to the maximum logical address of the extracted entry.

また、テーブル制御部14は、リクエスト調停部13がデータの移動を行う場合、移動先物理ブロックアドレスと対応付けられたエントリを管理情報テーブル19から抽出する。そして、テーブル制御部14は、抽出したエントリの有効ページ数を1つ増やす。また、テーブル制御部14は、抽出したエントリの最大論理アドレスを管理情報テーブル19から取得する。そして、テーブル制御部14は、移動するデータの論理アドレスが取得した最大論理アドレスより大きいか否かを判定する。移動するデータの論理アドレスが取得した最大論理アドレスより大きい場合、テーブル制御部14は、移動するデータの論理アドレスを抽出したエントリの最大論理アドレスに書き込む。   Further, when the request arbitration unit 13 moves data, the table control unit 14 extracts an entry associated with the movement destination physical block address from the management information table 19. Then, the table control unit 14 increases the number of valid pages of the extracted entry by one. In addition, the table control unit 14 acquires the maximum logical address of the extracted entry from the management information table 19. Then, the table control unit 14 determines whether or not the logical address of the data to be moved is larger than the acquired maximum logical address. When the logical address of the data to be moved is larger than the acquired maximum logical address, the table control unit 14 writes the logical address of the data to be moved to the maximum logical address of the extracted entry.

巡回参照制御部16の論理ブロック選択部161は、アドレス変換テーブル18及び管理情報テーブル19の参照要求をリクエスト調停部13へ出力する。そして、論理ブロック選択部161は、リクエスト調停部13からアドレス変換テーブル18及び管理情報テーブル19を受信する。   The logical block selection unit 161 of the cyclic reference control unit 16 outputs a reference request for the address conversion table 18 and the management information table 19 to the request arbitration unit 13. The logical block selection unit 161 receives the address conversion table 18 and the management information table 19 from the request arbitration unit 13.

そして、論理ブロック選択部161は、管理情報テーブル19から有効ページ数が閾値よりも小さい物理ブロックを1つ特定する。次に、論理ブロック選択部161は、特定した物理ブロックにおける最大論理アドレスを取得する。そして、論理アドレス選択部161は、最大論理アドレスに検索ポインタを設定する。その後、論理アドレス選択部161は、最大論理アドレスを物理アドレス取得部162へ出力する。   Then, the logical block selection unit 161 specifies one physical block whose number of valid pages is smaller than the threshold from the management information table 19. Next, the logical block selection unit 161 acquires the maximum logical address in the identified physical block. Then, the logical address selection unit 161 sets a search pointer at the maximum logical address. Thereafter, the logical address selection unit 161 outputs the maximum logical address to the physical address acquisition unit 162.

その後、論理アドレス選択部161は、判定部163から次の論理アドレスの取得の指示を受けると、検索ポインタを1つ減少させて、次に小さいアドレスを有する論理アドレスを移動判定処理の対象として新たに選択する。そして、論理アドレス選択部161は、選択した論理アドレスを物理アドレス取得部162へ出力する。すなわち、論理アドレス選択部161は、最大論理アドレスを検索開始アドレスとしてアドレスが小さくなる順に論理アドレスを1つずつ選択していく。この最大論理アドレスが、「検索開始位置」の一例にあたる。   Thereafter, when the logical address selection unit 161 receives an instruction to acquire the next logical address from the determination unit 163, the logical address selection unit 161 decreases the search pointer by one and newly sets a logical address having the next smaller address as a target of the movement determination process. Select Then, the logical address selection unit 161 outputs the selected logical address to the physical address acquisition unit 162. That is, the logical address selection unit 161 selects the logical addresses one by one in the order of decreasing addresses with the maximum logical address as the search start address. This maximum logical address corresponds to an example of “search start position”.

巡回参照制御部16の物理ブロック取得部162及び判定部161は、実施例1と同様に動作する。   The physical block acquisition unit 162 and the determination unit 161 of the cyclic reference control unit 16 operate in the same manner as in the first embodiment.

次に、図10を参照して、NANDコントローラ6aが実行する処理の流れについて説明する。図10は、実施例2に係るNANDコントローラが実行する処理のフローチャートである。NANDコントローラ6aは、所定の時間が経過した場合や、ソフトウェアからの指示を受けた場合は、図10に示すデータ移動制御を実行する。   Next, a flow of processing executed by the NAND controller 6a will be described with reference to FIG. FIG. 10 is a flowchart of a process executed by the NAND controller according to the second embodiment. The NAND controller 6a executes the data movement control shown in FIG. 10 when a predetermined time has elapsed or when an instruction from the software is received.

巡回参照制御部16の論理ブロック選択部161は、物理ブロックを一つ選択し、管理情報テーブル19における選択した物理ブロックの有効ページ数を検索する(ステップS301)。   The logical block selection unit 161 of the cyclic reference control unit 16 selects one physical block and searches the management information table 19 for the number of valid pages of the selected physical block (step S301).

そして、巡回参照制御部16の論理ブロック選択部161は、選択した物理ブロックの有効ページ数が閾値未満か否かを判定する(ステップS302)。有効ページ数が閾値以上の場合(ステップS302:否定)、巡回参照制御部16の論理ブロック選択部161は、ステップS301へ戻る。   Then, the logical block selection unit 161 of the cyclic reference control unit 16 determines whether or not the number of valid pages of the selected physical block is less than a threshold value (step S302). If the number of valid pages is equal to or greater than the threshold (No at Step S302), the logical block selection unit 161 of the cyclic reference control unit 16 returns to Step S301.

これに対して、有効ページ数が閾値未満の場合(ステップS302:肯定)、巡回参照制御部16の論理ブロック選択部161は、選択した物理ブロックの最大論理アドレスを管理情報テーブル19から取得する。そして、巡回参照制御部16の論理ブロック選択部161は、取得した最大論理アドレスに検索ポインタをセットする(ステップS303)。   On the other hand, when the number of valid pages is less than the threshold (step S302: Yes), the logical block selection unit 161 of the cyclic reference control unit 16 acquires the maximum logical address of the selected physical block from the management information table 19. Then, the logical block selection unit 161 of the cyclic reference control unit 16 sets a search pointer at the acquired maximum logical address (step S303).

次に、巡回参照制御部16の物理ブロック取得部162は、検索ポインタが示す論理アドレスに対応する物理アドレスをアドレス変換テーブル18から取得して、取得した物理アドレスを移動判定対象の物理アドレスとする(ステップS304)。   Next, the physical block acquisition unit 162 of the cyclic reference control unit 16 acquires a physical address corresponding to the logical address indicated by the search pointer from the address conversion table 18, and uses the acquired physical address as a physical address to be moved. (Step S304).

次に、巡回参照制御部16の判定部163は、移動判定対象の物理アドレスを有するページが選択した物理ブロックに含まれているか否かを判定する(ステップS305)。選択した物理ブロックに含まれていない場合(ステップS305:否定)、巡回参照制御部16の論理ブロック選択部161は、検索ポインタを1つデクリメントして検索ポインタを更新し(ステップS309)、ステップS304へ戻る。   Next, the determination unit 163 of the cyclic reference control unit 16 determines whether or not a page having a movement determination target physical address is included in the selected physical block (step S305). If not included in the selected physical block (step S305: No), the logical block selection unit 161 of the cyclic reference control unit 16 decrements the search pointer by one and updates the search pointer (step S309), and step S304. Return to.

一方、選択した物理ブロックに含まれる場合(ステップS305:肯定)、巡回参照制御部16の判定部163は、移動判定対象の物理アドレスを有するページに有効データが格納されているか否かをアドレス変換テーブル18から判定する(ステップS306)。有効データが格納されていない場合(ステップS306:否定)、巡回参照制御部16の論理ブロック選択部161は、検索ポインタを1つデクリメントして検索ポインタを更新する(ステップS309)。   On the other hand, when included in the selected physical block (step S305: affirmative), the determination unit 163 of the cyclic reference control unit 16 performs address conversion to determine whether or not valid data is stored in the page having the movement determination target physical address. The determination is made from the table 18 (step S306). When valid data is not stored (No at Step S306), the logical block selection unit 161 of the cyclic reference control unit 16 decrements the search pointer by one and updates the search pointer (Step S309).

これに対して、有効データが格納されている場合(ステップS306:肯定)、巡回参照制御部16の判定部163は、取得した物理アドレスを移動対象の物理アドレスとする。そして、巡回参照制御部16の判定部163は、移動対象の物理アドレス及びそれに対応する論理アドレスの組をデータ移動制御部17へ出力する。データ移動制御部17は、データの移動要求をリクエスト調停部13へ出力し、移動対象の物理アドレスからデータを移動させる。また、テーブル制御部14は、アドレス変換テーブル18の論理アドレスに関連付けられた物理アドレスを変更し、アドレス変換テーブル18を更新する。さらに、巡回参照制御部16は、管理情報テーブル19における選択した物理ブロックの有効ページ数を1つ減らすことで、管理情報テーブル19を更新する(ステップS307)。   On the other hand, when valid data is stored (step S306: affirmative), the determination unit 163 of the cyclic reference control unit 16 sets the acquired physical address as a physical address to be moved. Then, the determination unit 163 of the cyclic reference control unit 16 outputs a set of a physical address to be moved and a logical address corresponding thereto to the data movement control unit 17. The data movement control unit 17 outputs a data movement request to the request arbitration unit 13 and moves the data from the physical address to be moved. Further, the table control unit 14 changes the physical address associated with the logical address of the address conversion table 18 and updates the address conversion table 18. Further, the cyclic reference control unit 16 updates the management information table 19 by reducing the number of valid pages of the selected physical block in the management information table 19 by one (step S307).

次に、巡回参照制御部16の判定部163は、選択した物理ブロックの有効ページ数が0になったか否かを判定する(ステップS308)。有効ページ数が0でない場合(ステップS308:否定)、巡回参照制御部16の選択部161は、検索ポインタを1つデクリメントして検索ポインタを更新する(ステップS309)。   Next, the determination unit 163 of the cyclic reference control unit 16 determines whether or not the number of valid pages of the selected physical block has become 0 (step S308). When the number of valid pages is not 0 (No at Step S308), the selection unit 161 of the cyclic reference control unit 16 decrements the search pointer by one and updates the search pointer (Step S309).

これに対して、有効ページ数が0の場合(ステップS308:肯定)、巡回参照制御部16の判定部163は、ラストフラグをデータ移動制御部17へ出力する。データ移動制御部17は、移動対象の物理アドレスを含む物理ブロックの消去命令をリクエスト調停部13へ送信し、その物理ブロックを消去させる。巡回参照制御部16は、管理情報テーブル19における選択した物理ブロックに対応する最大論理アドレスを初期値(例えば、0xffff)に設定して管理情報テーブル19を更新する(ステップS310)。   On the other hand, when the number of valid pages is 0 (step S308: Yes), the determination unit 163 of the cyclic reference control unit 16 outputs a last flag to the data movement control unit 17. The data movement control unit 17 transmits a physical block erase command including the physical address to be moved to the request arbitration unit 13 to erase the physical block. The cyclic reference control unit 16 sets the maximum logical address corresponding to the selected physical block in the management information table 19 to an initial value (for example, 0xffff), and updates the management information table 19 (step S310).

その後、巡回参照制御部16は、空き容量が閾値以下か否かを判定する(ステップS311)。空き容量が閾値以下の場合(ステップS311:肯定)、巡回参照制御部16は、ステップS301へ戻る。これに対して、空き容量が閾値より大きい場合(ステップS311:否定)、NANDコントローラ6aは、データの移動制御の処理を終了する。   Thereafter, the cyclic reference control unit 16 determines whether or not the free space is equal to or less than the threshold (step S311). When the free space is equal to or smaller than the threshold (step S311: affirmative), the cyclic reference control unit 16 returns to step S301. On the other hand, when the free space is larger than the threshold (No at Step S311), the NAND controller 6a ends the data movement control process.

次に、図11を参照して、本実施例に係る管理情報テーブル19の最大論理アドレスの更新処理について説明する。図11は、実施例2に係る管理情報テーブルの最大論理アドレスの更新処理のフローチャートである。   Next, update processing of the maximum logical address of the management information table 19 according to the present embodiment will be described with reference to FIG. FIG. 11 is a flowchart of the update process of the maximum logical address of the management information table according to the second embodiment.

テーブル制御部14は、リクエスト調停部13が書き込み命令をリクエスタインターフェース部12から受信したか否かを判定する(ステップS401)。書き込み命令を受信していない場合(ステップS401:否定)、テーブル制御部14は、最大論理アドレスの更新処理を終了する。   The table control unit 14 determines whether or not the request arbitration unit 13 has received a write command from the requester interface unit 12 (step S401). When the write command has not been received (No at Step S401), the table control unit 14 ends the update process of the maximum logical address.

これに対して、書き込み命令を受信した場合(ステップS401:肯定)、テーブル制御部14は、書き込み命令でデータの格納先として指定された論理アドレスを基に、実際にデータが格納されている物理アドレスを含む物理ブロックを管理情報テーブル19から検索する(ステップS402)。   On the other hand, when a write command is received (step S401: Yes), the table control unit 14 physically stores data based on the logical address designated as the data storage destination by the write command. A physical block including the address is searched from the management information table 19 (step S402).

次に、テーブル制御部14は、検索した物理ブロックの最大論理アドレスを管理情報テーブル19から取得する(ステップS403)。   Next, the table control unit 14 acquires the maximum logical address of the searched physical block from the management information table 19 (step S403).

そして、テーブル制御部14は、データの格納先の論理アドレスが取得した最大論理アドレスより大きいか否かを判定する(ステップS404)。データの格納先の論理アドレスが取得した最大論理アドレス以下の場合(ステップS404:否定)、テーブル制御部14は、最大論理アドレスの更新処理を終了する。   Then, the table control unit 14 determines whether or not the logical address of the data storage destination is larger than the acquired maximum logical address (step S404). If the logical address of the data storage destination is less than or equal to the acquired maximum logical address (No at Step S404), the table control unit 14 ends the update process of the maximum logical address.

これに対して、データの格納先の論理アドレスが取得した最大論理アドレスより大きい場合(ステップS404:肯定)、テーブル制御部14は、検索した物理ブロックの最大論理アドレスをデータの格納先の論理アドレスに更新する(ステップS405)。   On the other hand, when the logical address of the data storage destination is larger than the acquired maximum logical address (step S404: Yes), the table control unit 14 sets the maximum logical address of the retrieved physical block as the logical address of the data storage destination. (Step S405).

以上に説明したように、本実施例に係る情報処理装置は、ガベージコレクションなどのデータ移動を行う場合に、対象の物理ブロックの最大論理アドレスを検索開始位置として、論理アドレスが増える順序で物理アドレスを検索し、データ移動を行うか否かを判定する。この場合も、最大論理アドレスより大きい論理アドレスについてはデータの移動判定を省略できるので、データの移動の時間を短縮でき、アクセス性能を向上させることができる。   As described above, when performing data movement such as garbage collection, the information processing apparatus according to the present embodiment uses the maximum logical address of the target physical block as the search start position, and the physical addresses in the order of increasing logical addresses. To determine whether to perform data movement. Also in this case, since the data movement determination can be omitted for a logical address larger than the maximum logical address, the data movement time can be shortened and the access performance can be improved.

また、以上に説明した各実施例では、データ移動を行う物理ブロックを特定し、その物理ブロックに含まれるページの物理アドレスに対応する論理アドレスか否かの判定を行ったが、処理の順番はこれに限らない。例えば、論理アドレスを管理テーブルの中から選び対応する物理アドレスを特定した後に、その物理アドレスを有するページを含む物理ブロックが移動対象となる物理ブロックか否かを判定して、データ移動の処理を行ってもよい。   Further, in each of the embodiments described above, the physical block to which data movement is performed is identified and it is determined whether or not the logical address corresponds to the physical address of the page included in the physical block. Not limited to this. For example, after selecting a logical address from the management table and specifying a corresponding physical address, it is determined whether or not a physical block including a page having the physical address is a physical block to be moved, and data movement processing is performed. You may go.

図12は、制御プログラムを実行するNANDコントローラの一例の図である。図12に示すように、NANDコントローラ6eは、CPU40、デバイスアクセス制御部15を有する。また、CPU40は、メモリデバイス11aと接続される。なお、メモリデバイス11aは、NANDコントローラ6eに内蔵されるメモリであってもよい。   FIG. 12 is a diagram of an example of a NAND controller that executes a control program. As illustrated in FIG. 12, the NAND controller 6 e includes a CPU 40 and a device access control unit 15. The CPU 40 is connected to the memory device 11a. Note that the memory device 11a may be a memory built in the NAND controller 6e.

メモリデバイス11aには、アドレス変換テーブル18、管理情報テーブル19があらかじめ記憶される。ここで、CPU40が制御プログラム30を読出して展開して実行することにより、制御プログラム30は、以下の様に機能する。すなわち、制御プログラム30は、CPU40をテーブル制御部31、リクエスト調停部32、巡回参照制御部33、データ移動制御部34として動作させる。ここで、テーブル制御部31、リクエスト調停部32、巡回参照制御部33、及びデータ移動制御部34は、図3に示すテーブル制御部14、リクエスト調停部13、巡回参照制御部16、データ移動制御部17と同様の機能を発揮する。   The memory device 11a stores an address conversion table 18 and a management information table 19 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 table control unit 31, the request arbitration unit 32, the cyclic reference control unit 33, and the data movement control unit 34. Here, the table control unit 31, the request arbitration unit 32, the cyclic reference control unit 33, and the data movement control unit 34 are the table control unit 14, the request arbitration unit 13, the cyclic reference control unit 16, and the data movement control shown in FIG. The same function as the unit 17 is exhibited.

なお、NANDコントローラ6eは、CPUではなく、例えばMPUやFPGA等の演算装置を用いて制御プログラム30を実行しても良い。また、上記の制御プログラム30については、例えば、メモリデバイス11aや、NANDデバイス7a〜10aに記憶させてもよいし、他の方法でCPU40に実行させてもよい。例えば、フレキシブルディスク、いわゆるFD(Flexible Disk)、CD(Compact Disk)−ROM、DVD(Digital Versatile Disk)、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。   Note that the NAND controller 6e 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 11a or the NAND devices 7a to 10a, 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コントローラ6eが各CPU40を介して、これらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などを介して他のコンピュータまたはサーバ装置などに記憶させた各プログラムを取得して実行するようにしてもよい。   Then, the NAND controller 6e may acquire and execute each program from these portable physical media via each CPU 40. Further, each program stored in another computer or a server device may be acquired and executed via a public line, the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), or the like.

1 情報処理装置
2a,2b メモリ
3a,3b,40 CPU
4 I/Oハブ
5a,5b SSD
6a,6b,6e NANDコントローラ
7a〜10a,7b〜10b NANDデバイス
11 テーブル記憶部
12 リクエスタインターフェース部
13,32 リクエスト調停部
14,31 テーブル制御部
15 デバイスアクセス制御部
16,33 巡回参照制御部
17,34 データ移動制御部
18 アドレス変換テーブル
19 管理情報テーブル
30 制御プログラム
161 論理アドレス選択部
162 物理アドレス取得部
163 判定部
1 Information processing device 2a, 2b Memory 3a, 3b, 40 CPU
4 I / O hub 5a, 5b SSD
6a, 6b, 6e NAND controllers 7a-10a, 7b-10b NAND devices 11 Table storage unit 12 Requester interface unit 13, 32 Request arbitration unit 14, 31 Table control unit 15 Device access control unit 16, 33 Cyclic reference control unit 17, 34 Data Movement Control Unit 18 Address Conversion Table 19 Management Information Table 30 Control Program 161 Logical Address Selection Unit 162 Physical Address Acquisition Unit 163 Determination Unit

Claims (8)

複数の記憶領域を有する記憶装置と、
前記記憶領域を複数含むブロック毎に、各ブロックに含まれる記憶領域を識別する物理アドレスに対応する論理アドレスのうち所定条件を満たす論理アドレスを検索開始位置として設定する開始位置設定部と、
前記論理アドレスと前記物理アドレスとの対応を表す変換テーブルの前記検索開始位置から論理アドレスを所定の順序で選択していく選択部と、
前記選択部により選択された論理アドレスに対応付けられた物理アドレスを、前記変換テーブルから取得する取得部と、
所定の条件を用いて、前記取得部により取得された物理アドレスが示す記憶領域に格納されたデータを移動させるか否かを判定する判定部と、
前記判定部が、前記データを移動させると判定した場合は、前記取得部により取得された物理アドレスが示す記憶領域に格納されたデータを、他の記憶領域に移動させる移動部と、
前記変換テーブルに格納された物理アドレスのうち、前記選択部により選択された論理アドレスに対応付けられた物理アドレスを、前記他の記憶領域を示す物理アドレスに更新する更新部と
を有することを特徴とする情報処理装置。
A storage device having a plurality of storage areas;
For each block including a plurality of storage areas, a start position setting unit that sets, as a search start position, a logical address that satisfies a predetermined condition among logical addresses corresponding to physical addresses that identify a storage area included in each block;
A selection unit that selects a logical address in a predetermined order from the search start position of the conversion table representing the correspondence between the logical address and the physical address;
An acquisition unit that acquires a physical address associated with the logical address selected by the selection unit from the conversion table;
A determination unit that determines whether or not to move data stored in a storage area indicated by the physical address acquired by the acquisition unit using a predetermined condition;
When the determination unit determines to move the data, a moving unit that moves the data stored in the storage area indicated by the physical address acquired by the acquisition unit to another storage area;
An update unit that updates a physical address associated with the logical address selected by the selection unit among physical addresses stored in the conversion table to a physical address indicating the other storage area; Information processing apparatus.
前記開始位置設定部は、各前記ブロックの物理アドレスに対応する前記記憶領域の論理アドレスのうち最小の論理アドレスを検索開始位置とし、
前記選択部は、大きくなる順に論理アドレスを選択していく
ことを特徴とする請求項1に記載の情報処理装置。
The start position setting unit sets the minimum logical address among the logical addresses of the storage area corresponding to the physical address of each block as a search start position,
The information processing apparatus according to claim 1, wherein the selection unit selects logical addresses in order of increasing.
前記開始位置設定部は、各前記ブロックの物理アドレスに対応する前記記憶領域の論理アドレスのうち最大の論理アドレスを検索開始位置とし、
前記選択部は、小さくなる順に論理アドレスを選択していく
ことを特徴とする請求項1に記載の情報処理装置。
The start position setting unit sets the maximum logical address among the logical addresses of the storage area corresponding to the physical address of each block as a search start position,
The information processing apparatus according to claim 1, wherein the selection unit selects logical addresses in ascending order.
前記判定部は、前記ブロックにおける有効なデータを格納している前記記憶領域の数が閾値より少ない場合に、データを移動すると判定することを特徴とする請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the determination unit determines to move data when the number of the storage areas storing valid data in the block is less than a threshold value. 前記選択部は、有効なデータを格納している前記記憶領域が閾値以下のブロックを選択し、選択したブロックの検索開始位置から論理アドレスを所定の順番に選択し、
前記判定部は、物理アドレスが前記選択部により取得されたブロックに含まれる場合に、データを移動すると判定する
ことを特徴とする請求項1に記載の情報処理装置。
The selection unit selects a block in which the storage area storing valid data is equal to or less than a threshold, selects a logical address in a predetermined order from a search start position of the selected block,
The information processing apparatus according to claim 1, wherein the determination unit determines to move data when a physical address is included in a block acquired by the selection unit.
記憶領域を複数含むブロック毎に、各ブロックに含まれる記憶領域を識別する物理アドレスに対応する論理アドレスのうち所定条件を満たす論理アドレスを検索開始位置として設定する開始位置設定部と、
前記論理アドレスと前記物理アドレスとの対応を表す変換テーブルの前記検索開始位置から論理アドレスを所定の順序で選択していく選択部と、
前記選択部により選択された論理アドレスに対応付けられた物理アドレスを、前記変換テーブルから取得する取得部と、
所定の条件を用いて、前記取得部により取得された物理アドレスが示す記憶領域に格納されたデータを移動させるか否かを判定する判定部と、
前記判定部が、前記データを移動させると判定した場合は、前記取得部により取得された物理アドレスが示す記憶領域に格納されたデータを、他の記憶領域に移動させる移動部と、
前記変換テーブルに格納された物理アドレスのうち、前記選択部により選択された論理アドレスに対応付けられた物理アドレスを、前記他の記憶領域を示す物理アドレスに更新する更新部と
を有することを特徴とする制御回路。
For each block including a plurality of storage areas, a start position setting unit that sets, as a search start position, a logical address that satisfies a predetermined condition among logical addresses corresponding to a physical address that identifies a storage area included in each block;
A selection unit that selects a logical address in a predetermined order from the search start position of the conversion table representing the correspondence between the logical address and the physical address;
An acquisition unit that acquires a physical address associated with the logical address selected by the selection unit from the conversion table;
A determination unit that determines whether or not to move data stored in a storage area indicated by the physical address acquired by the acquisition unit using a predetermined condition;
When the determination unit determines to move the data, a moving unit that moves the data stored in the storage area indicated by the physical address acquired by the acquisition unit to another storage area;
An update unit that updates a physical address associated with the logical address selected by the selection unit among physical addresses stored in the conversion table to a physical address indicating the other storage area; Control circuit.
記憶領域を複数含むブロック毎に、各ブロックに含まれる記憶領域を識別する物理アドレスに対応する論理アドレスのうち所定条件を満たす論理アドレスを検索開始位置として設定し、
前記論理アドレスと前記物理アドレスとの対応を表す変換テーブルの前記検索開始位置から論理アドレスを所定の順序で選択し、
選択した論理アドレスに対応付けられた物理アドレスを、前記変換テーブルから取得し、
所定の条件を用いて、取得した物理アドレスが示す記憶領域に格納されたデータを移動させるか否かを判定し、
前記データを移動させると判定した場合は、取得した物理アドレスが示す記憶領域に格納されたデータを、他の記憶領域に移動し、
前記変換テーブルに格納された物理アドレスのうち、選択した論理アドレスに対応付けられた物理アドレスを、前記他の記憶領域を示す物理アドレスに更新する
処理をコンピュータに実行させることを特徴とする制御プログラム。
For each block including a plurality of storage areas, set a logical address that satisfies a predetermined condition as a search start position among logical addresses corresponding to a physical address for identifying a storage area included in each block,
Selecting a logical address in a predetermined order from the search start position of the conversion table representing the correspondence between the logical address and the physical address;
Obtaining a physical address associated with the selected logical address from the conversion table;
Using predetermined conditions, determine whether to move the data stored in the storage area indicated by the acquired physical address,
If it is determined that the data is to be moved, the data stored in the storage area indicated by the acquired physical address is moved to another storage area,
A control program for causing a computer to execute a process of updating a physical address associated with a selected logical address among physical addresses stored in the conversion table to a physical address indicating the other storage area .
記憶領域を複数含むブロック毎に、各ブロックに含まれる記憶領域を識別する物理アドレスに対応する論理アドレスのうち所定条件を満たす論理アドレスを検索開始位置として設定し、
前記論理アドレスと前記物理アドレスとの対応を表す変換テーブルの前記検索開始位置から論理アドレスを所定の順序で選択し、
選択した論理アドレスに対応付けられた物理アドレスを、前記変換テーブルから取得し、
所定の条件を用いて、取得した物理アドレスが示す記憶領域に格納されたデータを移動させるか否かを判定し、
前記データを移動させると判定した場合は、取得した物理アドレスが示す記憶領域に格納されたデータを、他の記憶領域に移動し、
前記変換テーブルに格納された物理アドレスのうち、選択した論理アドレスに対応付けられた物理アドレスを、前記他の記憶領域を示す物理アドレスに更新する
ことを特徴とする制御方法。
For each block including a plurality of storage areas, set a logical address that satisfies a predetermined condition as a search start position among logical addresses corresponding to a physical address for identifying a storage area included in each block,
Selecting a logical address in a predetermined order from the search start position of the conversion table representing the correspondence between the logical address and the physical address;
Obtaining a physical address associated with the selected logical address from the conversion table;
Using predetermined conditions, determine whether to move the data stored in the storage area indicated by the acquired physical address,
If it is determined that the data is to be moved, the data stored in the storage area indicated by the acquired physical address is moved to another storage area,
A control method comprising: updating a physical address associated with a selected logical address among physical addresses stored in the conversion table to a physical address indicating the other storage area.
JP2015522391A 2013-06-17 2013-06-17 Information processing apparatus, control circuit, control program, and control method Active JP5967307B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/066624 WO2014203315A1 (en) 2013-06-17 2013-06-17 Information processing device, control circuit, control program, and control method

Publications (2)

Publication Number Publication Date
JP5967307B2 true JP5967307B2 (en) 2016-08-10
JPWO2014203315A1 JPWO2014203315A1 (en) 2017-02-23

Family

ID=52104085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015522391A Active JP5967307B2 (en) 2013-06-17 2013-06-17 Information processing apparatus, control circuit, control program, and control method

Country Status (2)

Country Link
JP (1) JP5967307B2 (en)
WO (1) WO2014203315A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10155421B2 (en) 2013-10-18 2018-12-18 Alligator Ventilfabrik Gmbh Fixing device for fixing a measuring pressure sensor, in particular a tyre pressure sensor

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180058456A (en) * 2016-11-24 2018-06-01 삼성전자주식회사 Method and apparatus for managing a memory
WO2021033681A1 (en) * 2019-08-20 2021-02-25 株式会社ソニー・インタラクティブエンタテインメント Storage management device, storage management method and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011192260A (en) * 2010-02-16 2011-09-29 Toshiba Corp Semiconductor storage device
JP2012068863A (en) * 2010-09-22 2012-04-05 Toshiba Corp Semiconductor memory controller
JP2012068765A (en) * 2010-09-21 2012-04-05 Tdk Corp Memory controller, flash memory system with memory controller, and control method of flash memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011192260A (en) * 2010-02-16 2011-09-29 Toshiba Corp Semiconductor storage device
JP2012068765A (en) * 2010-09-21 2012-04-05 Tdk Corp Memory controller, flash memory system with memory controller, and control method of flash memory
JP2012068863A (en) * 2010-09-22 2012-04-05 Toshiba Corp Semiconductor memory controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10155421B2 (en) 2013-10-18 2018-12-18 Alligator Ventilfabrik Gmbh Fixing device for fixing a measuring pressure sensor, in particular a tyre pressure sensor

Also Published As

Publication number Publication date
JPWO2014203315A1 (en) 2017-02-23
WO2014203315A1 (en) 2014-12-24

Similar Documents

Publication Publication Date Title
US9928167B2 (en) Information processing system and nonvolatile storage unit
KR102042643B1 (en) Managing multiple namespaces in a non-volatile memory (nvm)
JP5606938B2 (en) Data storage device, method for accessing recording medium, and recording medium therefor
US8417878B2 (en) Selection of units for garbage collection in flash memory
US11270734B2 (en) Method for accessing shingled magnetic recording SMR disk, and server
JP2015001908A (en) Information processing device, control circuit, control program, and control method
US20110231598A1 (en) Memory system and controller
JP6034183B2 (en) Semiconductor memory device
JP2006277737A (en) Nonvolatile storage device having address predicting function
TW202001573A (en) Memory system
JP2015001909A (en) Information processor, control circuit, control program, and control method
JP6167646B2 (en) Information processing apparatus, control circuit, control program, and control method
JP5967307B2 (en) Information processing apparatus, control circuit, control program, and control method
JP6179355B2 (en) Information processing apparatus, data transfer control method, and data transfer control program
JP5967308B2 (en) Information processing apparatus, control circuit, control program, and control method
JP6988445B2 (en) Storage system, control device and control method
KR101735065B1 (en) Data management system using bitmap based trim command and method thereof
KR20150139383A (en) Semiconductor device
JP5943153B2 (en) Information processing apparatus, write control circuit, write control method, and write control program
JP6132010B2 (en) Control device, control program, and control method
WO2020039927A1 (en) Non-volatile storage device, host device, and data storage system
JP2020170477A (en) Storage device, control method thereof, and program
JP2005092678A (en) Semiconductor memory card and method for deleting data in nonvolatile memory
JP5253471B2 (en) Memory controller
JP2013109404A (en) Information processing device

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: 20160607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160620

R150 Certificate of patent or registration of utility model

Ref document number: 5967307

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150