JP5967307B2 - Information processing apparatus, control circuit, control program, and control method - Google Patents
Information processing apparatus, control circuit, control program, and control method Download PDFInfo
- Publication number
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical 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.
しかしながら、上述した物理ブロックごとにデータを移動させるか否かを判定する技術では、データの移動元、および、データの移動先を示す物理アドレスを用いて、アドレス変換テーブルの更新を行う。かかる処理を行うため、例えば、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.
以下に、本願の開示する情報処理装置、制御回路、制御プログラム、及び制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、制御回路、制御プログラム、及び制御方法が限定されるものではない。 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
また、SSD5bは、NANDコントローラ6b及び複数のNANDデバイス7b〜10bを有する。なお、以下の説明では、SSD5b、NANDコントローラ6b、及び複数のNANDデバイス7b〜10bは、SSD5a、NANDコントローラ6a、及び複数のNANDデバイス7a〜10aと同様の機能を発揮するものとして、説明を省略する。
The
各メモリ2a及び2bは、各CPU3a及び3bが演算処理に用いるデータを記憶する記憶装置である。また、各CPU3a及び3bは、メモリ2a及び2bが記憶するデータを用いて、各種演算処理を行う演算処理装置である。例えば、CPU3a及び3bは、NUMA(Non-Uniform Memory Access)の技術を用いて、メモリ2a及び2bが記憶するデータを取得し、取得したデータを用いて演算処理を実行する。
The
また、CPU3a及び3bは、I/Oハブ4を介して、各SSD5a及び5bが記憶するデータを取得し、取得したデータを用いて演算処理を実行する。詳細には、CPU3aは、SSD5aに対し、データの読出し要求や書込み要求を発行し、各NANDデバイス7a〜10aからデータの読出しや書込みを行う。例えば、CPU3aは、SSD5aに対し、読出し対象となるデータを指定する論理アドレスが格納された読出し要求を発行する。また、CPU3aは、データの書込み先を指定する論理アドレスと、書込み対象となるデータとが格納された書込み要求を発行する。
In addition, the
NANDデバイス7aは、各種データを記憶する不揮発性メモリである。詳細には、NANDデバイス7aは、データの記憶領域である物理ページを複数有し、物理ページ単位でデータの書込みを行う。また、NANDデバイス7aは、複数の物理ページを有する物理ブロックを複数有し、ブロック単位でデータの消去を行う。ここで、1つの物理ページは、例えば、8キロバイトの記憶容量を有し、1つの物理ブロックは、例えば、128の物理ページを有する。
The
NANDコントローラ6aは、各NANDデバイス7a〜10aに対してアクセスし、データの読出しや書込みを行う。例えば、NANDコントローラ6aは、データが記憶された記憶領域を各CPU3a及び3bが指定する際に用いる論理アドレスと、データが格納されたNANDデバイス7a〜10aの記憶領域を示す物理アドレスとを対応付けたアドレス変換テーブルを有する。
The
そして、NANDコントローラ6aは、読出し要求とともに論理アドレスを受信すると、アドレス変換テーブルを用いて、論理アドレスと対応付けられた物理アドレスを識別し、識別した物理アドレスが示す記憶領域からデータの読出しを行う。その後、NANDコントローラ6aは、I/Oハブ4を介して、読出したデータをCPU3aに送信する。
When the
なお、以下の説明では、理解を容易にするため、各物理ページの先頭アドレスとなる論理アドレスを単に論理アドレスと記載し、各物理ページの先頭アドレスとなる物理アドレスを単に物理アドレスと記載する。また、情報処理装置1が実行するシステムは、各物理ページの先頭アドレスとなる論理アドレスに対する読出し要求や書込み要求を発行するものとする。
In the following description, in order to facilitate understanding, a logical address that is the start address of each physical page is simply described as a logical address, and a physical address that is the start address of each physical page is simply described as a physical address. In addition, the system executed by the
例えば、NANDコントローラ6aは、NANDデバイス7a〜10aが、複数のブロックを有し、各ブロックに2q個の物理ページが含まれている場合は、以下の処理を行う。まず、NANDコントローラ6aは、論理アドレスの下位qビットを論理的な1つのブロック内において、物理ページを識別するための論理ページ番号とし、残りの論理アドレスの上位pビットを論理的な1つのブロックを示す論理ブロックアドレスとする。For example,
また、NANDコントローラ6aは、物理アドレスの上位pビットを物理的な1つのブロックを示す物理ブロックアドレスとし、物理アドレスの下位qビットを物理的な1つのブロック内において、各物理ページを識別するための物理ページ番号とする。つまり、NANDコントローラ6aは、論理アドレスを、論理ブロックを示す論理ブロックアドレスと、論理ページを論理ブロックごとに示す論理ページ番号とに分割する。また、NANDコントローラ6aは、物理アドレスを、物理ブロックを示す物理ブロックアドレスと、物理ページを物理ブロックごとに示す物理ページ番号とに分割する。
Further, the
以下、図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コントローラ6aは、図2中(a)に示すように、CPU3aが実行するファイルシステムから、論理ブロックアドレス「LB00」の論理ページ番号「3」、すなわち論理アドレス「L0003」に書き込み要求を発行する。すると、NANDコントローラ6aは、アドレス変換テーブルを用いて、論理アドレス「L0003」に対応付けられた物理アドレス「P0403」を取得し、図2中(b)に示すように、更新前のデータが格納されている物理ページを識別する。
For example, as illustrated in FIG. 2A, the
続いて、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デバイス7a〜10aに格納されたデータに対し、物理ページ単位で書込みや移動を行う場合は、1つの物理ブロック内に有効なデータと無効なデータとが混在する場合がある。例えば、図2に示す例では、NANDコントローラ6aは、論理アドレス「L0003」が示すデータを更新する際、物理ブロックアドレス「B04」が示す物理ブロック内のデータを無効化する。そして、NANDコントローラ6aは、更新後のデータを物理ブロックアドレス「B08」が示す物理ブロックに格納する。このため、物理ブロックアドレス「B04」が示す物理ブロックには、有効なデータと無効なデータとが混在する。
Here, when writing or moving data stored in the
ここで、NANDデバイス7a〜10aは、無効なデータが格納された物理ページに対してデータの上書きを行うことができず、あらかじめデータを消去した予備ブロックにデータの書込みを行う。しかしながら、有効なデータと無効なデータとが混在する物理ブロックが増えると、新たにデータを書き込む予備ブロックを確保できなくなる。また、NANDデバイス7a〜10aは、データを保持するための素子を有する。かかる素子は、データの消去を行う際に劣化が進行し、劣化が進むと、電荷を適切に保持することができなくなる。
Here, the
そこで、従来の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コントローラ6aに以下の処理を行わせることが考えられる。まず、NANDコントローラ6aは、データの移動を行うブロックを特定する。そして、NANDコントローラ6aは、アドレス変換テーブルを参照し、論理アドレスを1つ選択する。次に、NANDコントローラ6aは、選択した論理アドレスと対応付けられた物理アドレスをアドレス変換テーブルから取得する。そして、NANDコントローラ6aは、管理情報テーブルを用いて、取得した物理アドレスが示す物理ページを含む物理ブロックがデータの移動を行うブロックか否かを判定する。その後、NANDコントローラ6aは、データの移動を行った場合は、アドレス変換テーブルに格納された物理アドレスのうち、選択した論理アドレスと対応付けられた物理アドレスを、移動先物理アドレスに更新する。NANDコントローラ6aは、以上の処理を、アドレス変換テーブルの最初の論理アドレスから順に繰り返し行っていくことで、データの移動を行うブロックの全てのページのデータ移動を完了することができる。しかし、アドレス変換テーブルの最初の論理アドレスから順番にデータの移動判定を行う場合、最大で全ての論理アドレスに対して処理を行うことになり、データの移動処理に多大な時間が掛かってしまう。
Therefore, it is conceivable to cause the
そこで、本実施例に係る情報処理装置は、ブロック毎に最小の論理アドレスを特定し、その最小の論理アドレスを該当ブロックの検索開始アドレスとすることで、データ移動の判定の処理数を減らしてデータ移動処理に係る時間を短縮し、アクセス性能の低下を防ぐ。この最小論理アドレスが、「検索開始位置」の一例にあたる。 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
まず、図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
例えば、図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
また、リクエスタインターフェース部12は、NANDデバイス7a〜10aに対して書き込むデータ及び書込み対象となるデータの論理アドレスとを含む書込み要求をCPU3a及び3bから受信する。この場合、リクエスタインターフェース部12は、受信した書込み要求をリクエスト調停部13に出力する。また、リクエスタインターフェース部12は、リクエスト調停部13から、データ書込みが完了した旨の応答を受信すると、受信した応答を、書込み要求の発行元となるCPU3a又は3bに対して、応答を送信する。
The
リクエスト調停部13は、リクエスタインターフェース部12、データ移動制御部17、巡回参照制御部16が発行する各種リクエストの調停を行う。詳細には、リクエスト調停部13は、読出し要求又は書込み要求をリクエスタインターフェース部12から受信する。また、リクエスト調停部13は、NANDデバイス7a〜10aが記憶するデータを、現在記憶するブロックから他のブロックに移動するよう要求する移動要求をデータ移動制御部17から受信する。また、リクエスト調停部13は、物理ブロック内のデータを消去するよう要求する消去要求をデータ移動制御部17から受信する。また、リクエスト調停部13は、管理情報テーブル19の参照を要求するテーブル参照要求を巡回参照制御部16から受信する。
The
そして、リクエスト調停部13は、リクエスタインターフェース部12、データ移動制御部17及び巡回参照制御部16から受信する読出し要求、書込み要求、移動要求、消去要求及びテーブル参照要求の調停を行う。例えば、リクエスト調停部13は、CPU3a及び3bからNANDデバイス7a〜10aに対するデータの読出しや書込みが阻害されないよう、リクエスタインターフェース部12が発行する読出し要求及び書込み要求を最優先で実行する。また、例えば、リクエスト調停部13は、移動要求を消去要求及びテーブル参照要求よりも優先して実行し、消去要求をテーブル参照要求よりも優先して実行する。なお、リクエスト調停部13が各要求を調停するルールについては、上述した処理に限定されるものではなく、任意のルールを適用してよい。
The
以下、リクエスト調停部13が読出し要求、書込み要求、移動要求、消去要求及びテーブル参照要求を受信した際に実行する処理の一例を説明する。例えば、リクエスト調停部13は、読出し要求を受信すると、読出し要求に含まれる論理アドレスをテーブル制御部14に出力する。そして、リクエスト調停部13は、読出し対象となる物理アドレスをテーブル制御部14から受信すると、受信した物理アドレスを格納した読出し要求をデバイスアクセス制御部15へ発行する。その後、リクエスト調停部13は、読出し対象となるデータをデバイスアクセス制御部15から受信すると、受信したデータをリクエスタインターフェース部12へ出力する。
Hereinafter, an example of processing executed when the
また、リクエスト調停部13は、書込み要求を受信すると、書込み要求に含まれる論理アドレスをテーブル制御部14に出力する。この結果、リクエスト調停部13は、書込み対象のデータが新たなデータである場合は、データが格納されていない予備ブロックのうち、データの書込み先となるページの物理アドレスをテーブル制御部14から受信する。
Further, when receiving the write request, the
その後、リクエスト調停部13は、テーブル制御部14から受信した物理アドレスと、書込み対象のデータとを含む書込み要求とをデバイスアクセス制御部15へ発行する。また、リクエスト調停部13は、デバイスアクセス制御部15からデータの書込みが完了した旨の応答を受信すると、データの書込み先となるページの物理アドレス及び書込み要求に含まれる論理アドレスを含むテーブル更新要求をテーブル制御部14へ出力する。そして、リクエスト調停部13は、テーブルの更新が終了した旨の応答をテーブル制御部14から受信した場合は、書込み要求に対する応答をリクエスタインターフェース部12へ出力する。
Thereafter, the
また、リクエスト調停部13は、書込みがデータの更新を目的とする場合は、更新元のデータが格納されたページの物理アドレスを更新元物理アドレスとしてテーブル制御部14から受信する。また、リクエスト調停部13は、予備ブロックに含まれるページの物理アドレス、すなわちデータの書込み先となるページの物理アドレスを更新先物理アドレスとしてテーブル制御部14から受信する。
Further, when the write is intended to update the data, the
そして、リクエスト調停部13は、更新元物理アドレス及び更新先物理アドレスをテーブル制御部14から受信した場合は、データの更新を要求する更新要求をデバイスアクセス制御部15へ発行する。詳細には、リクエスト調停部13は、更新元物理アドレス、更新先物理アドレス、及び書き込むデータを含む更新要求をデバイスアクセス制御部15へ発行する。
When the
また、リクエスト調停部13は、データの書込みが完了した旨の応答をデバイスアクセス制御部15から受信すると、更新元物理アドレス、更新先物理アドレス、及び書込み要求に含まれる論理アドレスを含むテーブル更新要求をテーブル制御部14へ出力する。その後、リクエスト調停部13は、テーブル更新要求に対する応答をテーブル制御部14から受信すると、データの書込みが完了した旨の応答をリクエスタインターフェース部12へ出力する。
When the
また、リクエスト調停部13は、移動させるデータが格納された物理ページの物理アドレスである移動元物理アドレス及び移動させるデータを指定するための論理アドレスを含む移動要求をデータ移動制御部17などから受信する。また、リクエスト調停部13は、テーブル制御部14への問い合わせなどを行い、データの移動先となる物理ページの物理アドレスを移動先物理アドレスとして取得する。
Further, the
そして、リクエスト調停部13は、移動元物理アドレス及び移動先物理アドレスを含む移動要求をデバイスアクセス制御部15に発行する。また、リクエスト調停部13は、データの移動が完了した旨の応答をデバイスアクセス制御部15から受信する。そして、リクエスト調停部13は、データ移動制御部17から受信した移動対象のデータを指定する論理アドレス、移動先物理アドレス、及び移動元物理アドレスを含むテーブル更新要求をテーブル制御部14へ出力する。その後、リクエスト調停部13は、テーブル更新要求に対する応答をテーブル制御部14から受信した場合は、データの移動が完了した旨の応答をデータ移動制御部17へ出力する。
Then, the
また、リクエスト調停部13は、データの消去対象となる物理ブロックを示す物理ブロックアドレスを含む消去要求をデータ移動制御部17などから受信する。リクエスト調停部13は、消去要求を受信すると、受信した消去要求をデバイスアクセス制御部15へ発行する。そして、リクエスト調停部13は、データの消去が完了した旨の応答をデバイスアクセス制御部15から受信すると、消去要求に格納された物理ブロックアドレスを含むテーブル更新要求をテーブル制御部14へ出力する。そして、リクエスト調停部13は、データの更新が終了した旨の応答をテーブル制御部14から受信した場合は、データの消去が完了した旨の応答をデータ移動制御部17へ出力する。
Further, the
また、リクエスト調停部13は、テーブル参照要求を巡回参照制御部16から受信した場合は、アドレス変換テーブル18と管理情報テーブル19の参照要求をテーブル制御部14へ送信する。そして、リクエスト調停部13は、アドレス変換テーブル18及び管理情報テーブル19をテーブル制御部14から受信すると、受信したアドレス変換テーブル18及び管理情報テーブル19を巡回参照制御部16に出力する。
When the
テーブル制御部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
また、テーブル制御部14は、書込み要求に格納された論理アドレスをリクエスト調停部13から受信すると、アドレス変換テーブル18を参照し、受信した論理アドレスに有効フラグ「1」が対応付けられているか判定する。そして、テーブル制御部14は、受信した論理アドレスに有効フラグ「0」が対応付けられている場合、すなわち、書込み対象のデータが新たなデータである場合は、以下の処理を実行する。
When the table control unit 14 receives the logical address stored in the write request from the
まず、テーブル制御部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
なお、テーブル制御部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
また、テーブル制御部14は、リクエスト調停部13が移動要求を受信した際には、移動先物理アドレスの問い合わせをリクエスト調停部13から受ける。この場合、テーブル制御部14は、予備ブロックを識別し、識別した予備ブロックに含まれる物理ページのうち、データが格納されていない物理ページの物理アドレスを移動先物理アドレスとしてリクエスト調停部13へ出力する。
Further, when the
また、テーブル制御部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
この場合、テーブル制御部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
また、テーブル制御部14は、リクエスト調停部13がデータの更新を行う場合は、更新元物理アドレス、更新先物理アドレス及び書込み要求に含まれる論理アドレスを含むテーブル更新要求をリクエスト調停部13から受信する。この場合、テーブル制御部14は、テーブル更新要求から更新元物理アドレス、更新先物理アドレス、及び論理アドレスを抽出する。そして、テーブル制御部14は、アドレス変換テーブル18における抽出した論理アドレスと対応付けられた物理アドレスを抽出した更新先物理アドレスに更新する。
When the
また、テーブル制御部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
また、テーブル制御部14は、リクエスト調停部13がデータの移動を行う場合は、移動元物理アドレス、移動先物理アドレス、及び移動対象のデータを指定する論理アドレスを含むテーブル更新要求を受信する。この場合、テーブル制御部14は、テーブル更新要求から移動元物理アドレス、移動先物理アドレス、及び論理アドレスを抽出する。そして、テーブル制御部14は、アドレス変換テーブル18を参照し、抽出した論理アドレスと対応付けられた物理アドレスを抽出した移動先物理アドレスに更新する。
In addition, when the
また、テーブル制御部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
また、テーブル制御部14は、リクエスト調停部13がデータの消去を行う場合は、消去要求に格納された物理ブロックアドレスを含むテーブル更新要求をリクエスト調停部13から受信する。そして、テーブル制御部14は、指定された物理ブロックアドレスに対応するエントリの最小論理アドレスを初期値に設定する。その後、テーブル制御部14は、テーブル更新要求に対する応答をリクエスト調停部13に出力する。
In addition, when the
また、テーブル制御部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
デバイスアクセス制御部15は、リクエスト調停部13からの各種リクエストに従って、NANDデバイス7a〜10aに対するデバイスアクセスを実行する。例えば、デバイスアクセス制御部15は、物理アドレスを含む読出し要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、NANDデバイス7a〜10aが有するページのうち、読出し要求に格納されていた物理アドレスが示すページに格納されたデータの読み出しを実行する。そして、デバイスアクセス制御部15は、読み出したデータをリクエスト調停部13へ出力する。
The device
また、例えば、デバイスアクセス制御部15は、物理アドレス及び書込み対象のデータを含む書込み要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、書込み要求に含まれる物理アドレスが示す物理ページに書込み対象のデータを格納する。その後、デバイスアクセス制御部15は、データの書込みを終了した旨の応答をリクエスト調停部13へ出力する。
For example, the device
また、例えば、デバイスアクセス制御部15は、更新元物理アドレス、更新先物理アドレス、及び書き込むデータを含む更新要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、更新元物理アドレスが示す物理ページのデータを読み出す。続いて、デバイスアクセス制御部15は、読み出したデータを更新要求に含まれるデータに更新する。そして、デバイスアクセス制御部15は、更新したデータを更新先物理アドレスが示す物理ページに格納する。その後、デバイスアクセス制御部15は、データの書込みを終了した旨の応答をリクエスト調停部13へ出力する。
For example, the device
また、デバイスアクセス制御部15は、移動元物理アドレス及び移動先物理アドレスを含む移動要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、移動元物理アドレスが示す物理ページからデータを読出し、読出したデータを移動先物理アドレスが示す物理ページに格納する。その後、デバイスアクセス制御部15は、データの移動を終了した旨の応答をリクエスト調停部13へ出力する。
Further, the device
また、デバイスアクセス制御部15は、データの消去対象となる物理ブロックを示す物理ブロックアドレスを含む消去要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、消去要求に含まれる物理ブロックアドレスが示す物理ブロックに格納されたデータを消去し、データの消去が完了した旨の応答をリクエスト調停部13へ出力する。
Further, the device
巡回参照制御部16は、所定のタイミングで、巡回参照制御を実行する。例えば、巡回参照制御部16は、所定の時間間隔、所定の時刻、又は情報処理装置1が実行するアプリケーションプログラムの指示などを契機として、巡回参照制御を実行する。
The cyclic
以下、巡回参照制御部16が実行する巡回参照制御の処理内容について説明する。巡回参照制御部16は、論理アドレス選択部161、物理アドレス取得部162、及び判定部163を有している。
Hereinafter, the processing content of the cyclic reference control executed by the cyclic
論理アドレス選択部161は、アドレス変換テーブル18及び管理情報テーブル19の参照要求をリクエスト調停部13へ出力する。そして、論理アドレス選択部161は、リクエスト調停部13からアドレス変換テーブル18及び管理情報テーブル19を受信する。
The logical
次に、論理アドレス選択部161は、管理情報テーブル19から有効ページ数が閾値よりも小さい物理ブロックを1つ特定する。次に、論理アドレス選択部161は、特定した物理ブロックにおける最小論理アドレスを取得する。そして、論理アドレス選択部161は、最小論理アドレスに検索ポインタを設定する。その後、論理アドレス選択部161は、最小論理アドレスを物理アドレス取得部162へ出力する。
Next, the logical
その後、論理アドレス選択部161は、次の論理アドレスの選択の指示を判定部163から受けると、検索ポインタを1つ増加させて、次に大きいアドレスを有する論理アドレスを移動判定処理の対象として新たに選択する。そして、論理アドレス選択部161は、選択した論理アドレスを物理アドレス取得部162へ出力する。すなわち、論理アドレス選択部161は、最小論理アドレスを検索開始アドレスとしてアドレスが大きくなる順に論理アドレスを1つずつ選択していく。
Thereafter, when the logical
物理アドレス取得部162は、論理アドレスを論理アドレス選択部161から取得する。そして、物理アドレス取得部162は、アドレス変換テーブル18を参照し、選択した論理アドレスと対応付けられた物理アドレスを取得する。そして、物理アドレス取得部162は、取得した物理アドレスを判定部163へ出力する。
The physical
判定部163は、物理アドレスを物理アドレス取得部162から取得する。そして、判定部163は、取得した物理アドレスで示されるページが特定した物理ブロックに含まれているか否かを判定する。
The
取得した物理アドレスが特定した物理ブロックの物理ブロックアドレスに含まれていない場合、判定部163は次の論理アドレスの選択を論理アドレス選択部161に指示する。
When the acquired physical address is not included in the physical block address of the specified physical block, the
これに対して、取得した物理アドレスを有するページが特定した物理ブロックに含まれている場合、判定部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
これに対して、判定部163は、有効フラグが「1」の場合、取得した物理アドレス及び選択した論理アドレスの組をデータ移動制御部17へ出力する。そして、判定部163は、データ移動が完了すると、取得した物理ブロックに未だ有効ページがあるか否かを判定する。例えば、判定部163は、データの移動を行った際に、管理情報テーブル19における取得した物理ブロックの有効ページ数から1をデクリメントしていき、有効ページ数が0になった場合に、有効ページがなくなったと判定する。
On the other hand, when the valid flag is “1”, the
有効ページが未だある場合、判定部163は、次の論理アドレスの選択を論理アドレス選択部に指示する。
If there is still a valid page, the
有効ページがなくなった、すなわち、データの移動により物理ブロックが空になったと判定した場合、判定部163は、取得した物理アドレス、選択した論理アドレス、及びブロックが空になる旨を示すラストフラグの組をデータ移動制御部17へ出力する。
When it is determined that there is no valid page, that is, the physical block is empty due to data movement, the
巡回参照制御部16は、選択した物理ブロックにおけるデータの移動及びブロックの消去を行い空き容量を作成した後、予め決められた閾値以上の空き容量が確保できたか否かを判定する。閾値以上の空き容量が確保できていない場合、巡回参照制御部16は、新たに物理ブロックを選択して以上の処理を繰り返す。予め決められた閾値以上の空き容量が確保できた場合、巡回参照制御部16は、ガベージコレクションの処理を終了する。
The cyclic
データ移動制御部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
データ移動制御部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
一方、データ移動制御部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
例えば、データ移動制御部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
なお、例えば、リクエスタインターフェース部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
また、テーブル記憶部11とは、RAM(Random Access Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子などの記憶装置である。
The
次に、図6を参照して、本実施例に係るNANDコントローラ6aが実行する処理をまとめて説明する。図6は、実施例1に係るNANDコントローラが実行する処理の一例を説明するための図である。
Next, processing executed by the
例えば、NANDコントローラ6aは、図6中(A)に示すように、管理情報テーブル19を参照し、有効ページ数が閾値以下の物理ブロックを選択する。次に、NANDコントローラ6aは、選択した物理ブロックの検索開始アドレスを管理情報テーブル19から取得する。
For example, as illustrated in FIG. 6A, the
次に、NANDコントローラ6aは、図6中(B)に示すように、検索開始アドレスから順番に論理アドレスを取得し、取得した論理アドレスと対応付けられた物理アドレスをアドレス変換テーブル18から取得する。そして、NANDコントローラ6aは、取得した物理アドレスから物理ブロックアドレスを特定する。そして、NANDコントローラ6aは、図6中(C)に示すように、管理情報テーブル19を参照し、特定した物理ブロックアドレスが選択した物理ブロックのアドレスに含まれているか否かを判定する。NANDコントローラ6aは、特定した物理ブロックアドレスが選択した物理ブロックのアドレスに含まれている場合、その物理ブロックに格納されているデータを移動させると判定する。
Next, as illustrated in FIG. 6B, the
そして、NANDコントローラ6aは、物理ブロックのデータを移動させると判定した場合は、図6中(D)に示すように、データ移動制御を実行する。具体的には、NANDコントローラ6aは、アドレス変換テーブル18の有効フラグを用いて、有効なデータが格納された物理ページを特定し、特定した物理ページを示す物理アドレスを移動元物理アドレスとする。また、NANDコントローラ6aは、管理情報テーブル19から予備ブロックの物理アドレスを移動先物理アドレスとして取得する。そして、NANDコントローラ6aは、選択した論理アドレス、移動元物理アドレス、および、移動先物理アドレスを用いて、データ移動制御を実行する。
If the
詳細には、NANDコントローラ6aは、図6中(E)に示すように、移動元物理アドレスと移動先物理アドレスとを用いて、データの移動に係るデバイスアクセス制御を実行する。この結果、NANDコントローラ6aは、図6中(F)に示すように、移動元物理アドレスが示す物理ページに格納されたデータを、移動先物理アドレスが示す物理ページに移動させる。そして、NANDコントローラ6aは、図6中(G)及び(H)に示すように、データの移動に係る応答を受信する。
Specifically, as illustrated in (E) of FIG. 6, the
すると、NANDコントローラ6aは、図6中(I)に示すように、データの移動に応じて、管理情報テーブル19の更新を行う。また、NANDコントローラ6aは、図6中(J)に示すように、アドレス変換テーブル18が記憶する物理アドレスのうち、選択した論理アドレスと対応付けられた物理アドレスを移動先物理アドレスに更新する。
Then, the
すなわち、NANDコントローラ6aは、物理ブロック毎にデータを移動させるか判定するのではなく、論理アドレス毎にデータを移動させるか否かを判定する。このため、NANDコントローラ6aは、移動元物理アドレスを論理アドレスに変換するアドレス逆変換テーブルを有さずとも、アドレス変換テーブル18の更新を行うことができる。この結果、NANDコントローラ6aは、回路規模を縮小することができる。また、検索開始位置より大きい論理アドレスに対してのみ、データの移動判定を行うので、NANDコントローラ6aは、データの移動判定の処理の時間を短縮できる。
That is, the
次に、図7を参照して、NANDコントローラ6aが実行する処理の流れについて説明する。図7は、実施例1に係るNANDコントローラが実行する処理のフローチャートである。NANDコントローラ6aは、所定の時間が経過した場合や、ソフトウェアからの指示を受けた場合は、図7に示すデータ移動制御を実行する。
Next, a flow of processing executed by the
巡回参照制御部16の論理ブロック選択部161は、物理ブロックを一つ選択し、管理情報テーブル19における選択した物理ブロックの有効ページ数を検索する(ステップS101)。
The logical
そして、巡回参照制御部16の論理ブロック選択部161は、選択した物理ブロックの有効ページ数が閾値未満か否を判定する(ステップS102)。有効ページ数が閾値以上の場合(ステップS102:否定)、巡回参照制御部16は、ステップS101へ戻る。
Then, the logical
これに対して、有効ページ数が閾値未満の場合(ステップ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
次に、巡回参照制御部16の物理ブロック取得部162は、検索ポインタが示す論理アドレスに対応する物理アドレスをアドレス変換テーブル18から取得して、取得した物理アドレスを移動判定対象の物理アドレスとする(ステップS104)。
Next, the physical
次に、巡回参照制御部16の判定部163は、移動判定対象の物理アドレスを有するページが選択した物理ブロックに含まれているか否かを判定する(ステップS105)。選択した物理ブロックに含まれていない場合(ステップS105:否定)、巡回参照制御部16の論理ブロック選択部161は、検索ポインタを1つインクリメントして検索ポインタを更新する(ステップS109)。
Next, the
一方、選択した物理ブロックに含まれる場合(ステップ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
これに対して、有効データが格納されている場合(ステップ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
次に、巡回参照制御部16の判定部163は、選択した物理ブロックの有効ページ数が0になったか否かを判定する(ステップS108)。有効ページ数が0でない場合(ステップS108:否定)、巡回参照制御部16の論理ブロック選択部161は、検索ポインタを1つインクリメントして検索ポインタを更新する(ステップS109)。
Next, the
これに対して、有効ページ数が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
その後、巡回参照制御部16は、空き容量が閾値以下か否かを判定する(ステップS111)。空き容量が閾値以下の場合(ステップS111:肯定)、巡回参照制御部16は、ステップS101へ戻る。これに対して、空き容量が閾値より大きい場合(ステップS111:否定)、NANDコントローラ6aは、データの移動制御の処理を終了する。
Thereafter, the cyclic
次に、図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
これに対して、書き込み命令を受信した場合(ステップ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
図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
同様に、テーブル制御部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
また、テーブル制御部14は、リクエスト調停部13がデータの移動を行う場合、移動先物理ブロックアドレスと対応付けられたエントリを管理情報テーブル19から抽出する。そして、テーブル制御部14は、抽出したエントリの有効ページ数を1つ増やす。また、テーブル制御部14は、抽出したエントリの最大論理アドレスを管理情報テーブル19から取得する。そして、テーブル制御部14は、移動するデータの論理アドレスが取得した最大論理アドレスより大きいか否かを判定する。移動するデータの論理アドレスが取得した最大論理アドレスより大きい場合、テーブル制御部14は、移動するデータの論理アドレスを抽出したエントリの最大論理アドレスに書き込む。
Further, when the
巡回参照制御部16の論理ブロック選択部161は、アドレス変換テーブル18及び管理情報テーブル19の参照要求をリクエスト調停部13へ出力する。そして、論理ブロック選択部161は、リクエスト調停部13からアドレス変換テーブル18及び管理情報テーブル19を受信する。
The logical
そして、論理ブロック選択部161は、管理情報テーブル19から有効ページ数が閾値よりも小さい物理ブロックを1つ特定する。次に、論理ブロック選択部161は、特定した物理ブロックにおける最大論理アドレスを取得する。そして、論理アドレス選択部161は、最大論理アドレスに検索ポインタを設定する。その後、論理アドレス選択部161は、最大論理アドレスを物理アドレス取得部162へ出力する。
Then, the logical
その後、論理アドレス選択部161は、判定部163から次の論理アドレスの取得の指示を受けると、検索ポインタを1つ減少させて、次に小さいアドレスを有する論理アドレスを移動判定処理の対象として新たに選択する。そして、論理アドレス選択部161は、選択した論理アドレスを物理アドレス取得部162へ出力する。すなわち、論理アドレス選択部161は、最大論理アドレスを検索開始アドレスとしてアドレスが小さくなる順に論理アドレスを1つずつ選択していく。この最大論理アドレスが、「検索開始位置」の一例にあたる。
Thereafter, when the logical
巡回参照制御部16の物理ブロック取得部162及び判定部161は、実施例1と同様に動作する。
The physical
次に、図10を参照して、NANDコントローラ6aが実行する処理の流れについて説明する。図10は、実施例2に係るNANDコントローラが実行する処理のフローチャートである。NANDコントローラ6aは、所定の時間が経過した場合や、ソフトウェアからの指示を受けた場合は、図10に示すデータ移動制御を実行する。
Next, a flow of processing executed by the
巡回参照制御部16の論理ブロック選択部161は、物理ブロックを一つ選択し、管理情報テーブル19における選択した物理ブロックの有効ページ数を検索する(ステップS301)。
The logical
そして、巡回参照制御部16の論理ブロック選択部161は、選択した物理ブロックの有効ページ数が閾値未満か否かを判定する(ステップS302)。有効ページ数が閾値以上の場合(ステップS302:否定)、巡回参照制御部16の論理ブロック選択部161は、ステップS301へ戻る。
Then, the logical
これに対して、有効ページ数が閾値未満の場合(ステップ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
次に、巡回参照制御部16の物理ブロック取得部162は、検索ポインタが示す論理アドレスに対応する物理アドレスをアドレス変換テーブル18から取得して、取得した物理アドレスを移動判定対象の物理アドレスとする(ステップS304)。
Next, the physical
次に、巡回参照制御部16の判定部163は、移動判定対象の物理アドレスを有するページが選択した物理ブロックに含まれているか否かを判定する(ステップS305)。選択した物理ブロックに含まれていない場合(ステップS305:否定)、巡回参照制御部16の論理ブロック選択部161は、検索ポインタを1つデクリメントして検索ポインタを更新し(ステップS309)、ステップS304へ戻る。
Next, the
一方、選択した物理ブロックに含まれる場合(ステップ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
これに対して、有効データが格納されている場合(ステップ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
次に、巡回参照制御部16の判定部163は、選択した物理ブロックの有効ページ数が0になったか否かを判定する(ステップS308)。有効ページ数が0でない場合(ステップS308:否定)、巡回参照制御部16の選択部161は、検索ポインタを1つデクリメントして検索ポインタを更新する(ステップS309)。
Next, the
これに対して、有効ページ数が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
その後、巡回参照制御部16は、空き容量が閾値以下か否かを判定する(ステップS311)。空き容量が閾値以下の場合(ステップS311:肯定)、巡回参照制御部16は、ステップS301へ戻る。これに対して、空き容量が閾値より大きい場合(ステップS311:否定)、NANDコントローラ6aは、データの移動制御の処理を終了する。
Thereafter, the cyclic
次に、図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
これに対して、書き込み命令を受信した場合(ステップ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
メモリデバイス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
なお、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コントローラ6eが各CPU40を介して、これらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などを介して他のコンピュータまたはサーバ装置などに記憶させた各プログラムを取得して実行するようにしてもよい。
Then, the
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
4 I /
6a, 6b,
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 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.
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)
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)
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)
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 |
-
2013
- 2013-06-17 WO PCT/JP2013/066624 patent/WO2014203315A1/en active Application Filing
- 2013-06-17 JP JP2015522391A patent/JP5967307B2/en active Active
Patent Citations (3)
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)
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 |