JP2014134998A - Data recording device and data recording method - Google Patents
Data recording device and data recording method Download PDFInfo
- Publication number
- JP2014134998A JP2014134998A JP2013003274A JP2013003274A JP2014134998A JP 2014134998 A JP2014134998 A JP 2014134998A JP 2013003274 A JP2013003274 A JP 2013003274A JP 2013003274 A JP2013003274 A JP 2013003274A JP 2014134998 A JP2014134998 A JP 2014134998A
- Authority
- JP
- Japan
- Prior art keywords
- parallel
- block management
- empty
- block
- writing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
同一バスに接続された複数の記憶媒体に並列書き込みするデータ記録装置に関する。 The present invention relates to a data recording apparatus for writing in parallel to a plurality of storage media connected to the same bus.
例えば、人工衛星は、地上局と通信できない範囲を飛行中に、観測機器が生成した観測データを人工衛星内に保持しておく必要があるため、データ記録装置を搭載している。地上局と通信できない範囲とは、例えば、地上局の位置に対して地球の裏側である。観測機器は観測データを機器内部に蓄えることはできないため、データ記録装置との間でデータ伝送のためのフロー制御を実現することは困難である。また、観測機器の高精細化に伴い、データ記録装置に入力される観測データはサイズが大きくなり、単位時間当たりのデータ量も増大している。しかし、宇宙環境で正常動作可能なメモリは限られているため、データ記録装置は大容量のバッファメモリを保持することができない。また、真空であるために放熱手段が乏しく、電子機器を高速動作させることができない、という制約もある。 For example, an artificial satellite is equipped with a data recording device because observation data generated by an observation device needs to be held in the artificial satellite while flying in a range where it cannot communicate with a ground station. The range incapable of communicating with the ground station is, for example, the back side of the earth with respect to the position of the ground station. Since the observation equipment cannot store observation data inside the equipment, it is difficult to realize flow control for data transmission with the data recording device. In addition, with the increase in the definition of observation equipment, the observation data input to the data recording device has increased in size and the amount of data per unit time has increased. However, since the memory that can normally operate in the space environment is limited, the data recording device cannot hold a large-capacity buffer memory. In addition, since the vacuum is used, there is a limitation that heat dissipating means is scarce and the electronic device cannot be operated at high speed.
そこで、データ記録装置には、NANDフラッシュメモリのような大容量かつ低消費電力な不揮発メモリが搭載されつつある。しかし、NANDフラッシュメモリは、データの読出しに比べ、データの書込みに時間を要する。そのため、観測機器から伝送される単位時間当たりのデータ量の増大に伴い、1つのデバイスチップではデータ記録時間が間に合わなくなっている。そこで、同一のメモリバスに複数のNANDフラッシュメモリを接続し、その中の複数個のNANDフラッシュメモリに対して並列に書込みをすることにより、データ記録性能の向上を図っている。 Therefore, a large capacity and low power consumption nonvolatile memory such as a NAND flash memory is being mounted on the data recording device. However, the NAND flash memory requires more time for data writing than data reading. Therefore, as the amount of data per unit time transmitted from the observation equipment increases, the data recording time is not in time for one device chip. Therefore, the data recording performance is improved by connecting a plurality of NAND flash memories to the same memory bus and writing in parallel to the plurality of NAND flash memories.
一方、ファイルシステムは、NANDフラッシュメモリに対してデータの書込み及び読出しを行う。ファイルシステムは、ファイルを削除する際にファイル管理情報の上でファイルを削除済みとするだけで、NANDフラッシュメモリに書き込まれている実際のデータそのものを消去しない。NANDフラッシュメモリは、不要なデータであることを認識しないまま処理を行うため、書込み速度が低下したり、書換え回数が増加したりしていた。 On the other hand, the file system writes and reads data to and from the NAND flash memory. The file system simply deletes the file on the file management information when deleting the file, and does not erase the actual data itself written in the NAND flash memory. Since the NAND flash memory performs processing without recognizing unnecessary data, the writing speed is reduced and the number of rewrites is increased.
特許文献1では、ファイルシステムとNANDフラッシュメモリはデータの管理単位を互いに認識するようにしている。よって、データの書込みの際に、ファイルシステムがNANDフラッシュメモリに対して破棄してよいデータを通知し、不要なデータのコピー処理を抑制することにより、書込み速度を向上させていた。
In
しかしながら、複数個のNANDフラッシュメモリに対して並列に書込みをする場合、NANDフラッシュメモリ内の空きブロックを並列書込み数分探索する必要があり、処理時間が増加する。特許文献1においても、複数個のNANDフラッシュメモリに対し並列に書込みをする場合には処理時間が増加する。したがって、データの書込み中に次のデータの書込みが要求されると、十分なバッファメモリがなければデータの欠損を生じるという問題があった。
However, when writing to a plurality of NAND flash memories in parallel, it is necessary to search for empty blocks in the NAND flash memory by the number of parallel writes, which increases processing time. Also in
本発明は上記のような問題点を解決するためになされたもので、複数個のNANDフラッシュメモリに対して並列に書込みをする場合に書込みにかかる処理時間を短縮し、データの欠損を生じないデータ記録装置を得ることを目的としている。 The present invention has been made to solve the above-described problems, and when writing in parallel to a plurality of NAND flash memories, the processing time required for writing is shortened, and data loss does not occur. The object is to obtain a data recording device.
同一バス上に接続された複数の記録媒体にデータを並列に書込む書込み機能部と、複数の記録媒体をそれぞれ分割した複数のブロックについてデータ書込み可能な空きブロックかどうかを空きブロック管理テーブルに登録する空きブロック管理部と、空きブロック管理部から通知された空きブロックについて並列書込み数分を1つの組として並列書込み用空きブロック管理テーブルに登録し、書込み機能部からの要求に応じて並列書込み用空きブロック管理テーブルから並列書込み数分の空きブロックを取得して、通知する並列書込み用空きブロック管理部と、を備えた。 Write function that writes data to multiple recording media connected on the same bus in parallel, and registers whether or not it is a free block where data can be written for multiple blocks divided into multiple recording media. Register the number of parallel writes for the free block management unit to be used and the free block notified from the free block management unit as one set in the free block management table for parallel writing, and for parallel writing in response to a request from the write function unit An empty block management unit for parallel writing that acquires and notifies empty blocks for the number of parallel writes from the empty block management table.
本発明によれば、複数個のNANDフラッシュメモリに対し並列に書込みをする場合に書込みにかかる処理時間を短縮し、データの欠損を生じないようにすることができる。 According to the present invention, when writing to a plurality of NAND flash memories in parallel, the processing time required for writing can be shortened and data loss can be prevented.
実施の形態1.
まず、NANDフラッシュメモリの基本的な構造や制御方法について説明する。
First, the basic structure and control method of the NAND flash memory will be described.
図1は、NANDフラッシュメモリのデバイスチップ11の基本的な構成と接続形態を示すブロック図である。デバイスチップ11は、メモリバス12を介してデータ記録装置13と接続している。データ記録装置13は、デバイスチップ11にデータを記録する。また、データ記録装置13は、デバイスチップ11からデータを読出し、データが不要な場合は消去する。
FIG. 1 is a block diagram showing a basic configuration and connection form of a device chip 11 of a NAND flash memory. The device chip 11 is connected to the
デバイスチップ11は、メモリインタフェース部14、コマンド処理部15、ページバッファ16、NANDフラッシュメモリ17から構成されている。メモリインタフェース部14は、メモリバス12を介してデータ記録装置13と接続し、入出力のインタフェースとなっている。コマンド処理部15は、コマンドを処理する。ページバッファ16は、データを一時的に保持する。NANDフラッシュメモリ17は、実際にデータを保持するメモリ素子が配列されている。
The device chip 11 includes a
メモリインタフェース部14は、データ記録装置13からコマンドが入力されるとコマンドをコマンド処理部15に出力する。コマンドは、書込み、消去又は読込みである。コマンド処理部15は、入力されたコマンドの内容に応じてページバッファ16を制御する。これにより、ページバッファ16とNANDフラッシュメモリ17との間のデータ転送が制御される。
When a command is input from the
コマンドが書込みの場合、メモリインタフェース部14はコマンドをコマンド処理部15に出力し、コマンドに付加されているデータをページバッファ16に出力する。ページバッファ16は、データを一時保存した後、コマンド処理部15からの指示により、NANDフラッシュメモリ17にデータを書込む。コマンドが消去の場合、ページバッファ16は、コマンド処理部15からの指示により、NANDフラッシュメモリ17からデータを消去する。
When the command is a write command, the
コマンドが読込みの場合、ページバッファ16はコマンド処理部15からの指示により、NANDフラッシュメモリ17からデータを読出す。ページバッファ16は、データを一時保存した後、メモリインタフェース部14に出力する。メモリインタフェース部14は、ページバッファ16から入力されたデータをメモリバス12へ出力する。
When the command is read, the
図2は、NANDフラッシュメモリ17の基本的な構成を示すブロック図である。NANDフラッシュメモリ17は、複数のブロック21a〜jで構成されている。ブロック21a〜jは、それぞれ複数のページから構成されている。例えば、ブロック21aはk個のページ22a1〜akから構成されている。
FIG. 2 is a block diagram showing a basic configuration of the
現在、ブロックの一般的な記録容量は64〜256キロバイト程度である。また、ページの一般的な記録容量は1〜4キロバイト程度である。データの書込み及び読出しはページ単位で行われる。データの消去は、ブロック単位で行われる。NANDフラッシュメモリ17では、新しいデータを記録する場合、すでに書込まれているデータを消去する必要がある。
At present, the general recording capacity of a block is about 64 to 256 kilobytes. The general recording capacity of a page is about 1 to 4 kilobytes. Data is written and read in units of pages. Data is erased in units of blocks. In the
図3は、データ記録装置13からデバイスチップ11へのデータの書込み処理の順序を示す図である。図3において、左から右へ時間が進み、31〜34はそれぞれ処理を示す。31〜34の処理の長さは時間を表す。ただし、処理にかかる時間は一例である。処理は、第1コマンド送信31、書込みデータ転送32、第2コマンド送信33、チップ内書込み処理34の順に行われる。
FIG. 3 is a diagram showing the order of data writing processing from the
最初に、データ記録装置13はデバイスチップ11に第1コマンド31を送信する。通常、第1コマンド31には書込み先であるデバイスチップ11のNANDフラッシュメモリ17のブロック番号が含まれている。次にデータ記録装置13はデバイスチップ11に1ページ分のデータを転送する。デバイスチップ11は、転送されたデータをページバッファ16に一時保存する。
First, the
次に、データ記録装置13はデバイスチップ11に第2コマンド33を送信する。デバイスチップ11は、第2コマンド33を受信したことを契機としてチップ内書込み処理34を行う。デバイスチップ11は、ページバッファ16に保存されたデータをNANDフラッシュメモリ17に転送し、書込む。データは、第1コマンドで指定されたブロックに書込まれる。データ記録装置13は、デバイスチップ11におけるチップ内書込み処理34の完了を待って、別の処理を開始する必要がある。
Next, the
図4は、データ記録装置13に複数のデバイスチップを接続した形態を示すブロック図である。データ記録装置13は、メモリバス41を介して複数のデバイスチップ11a〜nと接続している。
図5は、データ記録装置13から複数のデバイスチップ11a〜bへのデータの書込み処理の順序を示す図である。図5において、左から右へ時間が進む。31a〜34aはデバイスチップ11aに対する処理を示す。31b〜34bはデバイスチップ11bに対する処理を示す。
FIG. 4 is a block diagram showing a form in which a plurality of device chips are connected to the
FIG. 5 is a diagram showing the order of data write processing from the
デバイスチップ11aに対するチップ内書込み処理34aが行われている間、メモリバス41は空き状態となる。データ記録装置13は、この間に同一のメモリバス41に接続されたデバイスチップ11bに対する処理31b〜33bを実施する。このようにデバイスチップ11aに対する処理とデバイスチップ11bに対する処理を並列に行うことにより、全体として書込み性能を向上させることができる。
While the in-
例えば、デバイスチップ11aへの第1コマンド送信31aから第2コマンド送信33aにかかる時間、デバイスチップ11aに対するチップ内書込み処理34aにかかる時間、デバイスチップ11bへの第1コマンド送信31bから第2コマンド送信33bにかかる時間、及び、デバイスチップ11bに対するチップ内書込み処理34bにかかる時間が等しい場合、データ記録装置13は、並列処理を行わない場合の3/4の時間でデータを書込むことができる。なお、通常は、第1コマンド送信31a〜bから第2コマンド送信33a〜bまでにかかる時間よりも、チップ内書込み処理34a〜bにかかる時間のほうが長い。
For example, the time required for the
以下に、本実施の形態について説明する。
図6は、実施の形態1に係るデータ記録装置60の構成を示すブロック図である。データ記録装置60はメモリバス61を介して複数のNANDフラッシュメモリのデバイスチップ11a〜nに接続している。データ記録装置60は、コマンドインタフェース部62、書込み機能部63、消去機能部64、読出し機能部65、空きブロック管理部66、並列書込み用空きブロック管理部67、アドレス変換部68、及びメモリインタフェース部69から構成されている。
Hereinafter, the present embodiment will be described.
FIG. 6 is a block diagram showing a configuration of the
コマンドインタフェース部62は、データ記録装置60内の図示しない上位システムからのコマンドを書込み機能部63、消去機能部64又は読出し機能部65に振り分ける。また、コマンドインタフェース部62は、書込み機能部63、消去機能部64、又は読出し機能部65の処理結果を上位システムへ出力する。
The
書込み機能部63は、デバイスチップ11a〜nにデータの書込みを行う。消去機能部64は、デバイスチップ11a〜nに保持されているデータの消去を行う。読出し機能部65は、デバイスチップ11a〜nに保持されているデータの読出しを行う。
The
空きブロック管理部66は、デバイスチップ11a〜nのNANDフラッシュメモリの全てのブロックの状態を管理している。ブロックの状態とは、データ書込み済みで使用中又はデータ消去済みで空きのどちらかである。並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブルを保持し、並列書き込み数分のブロックを1つの組にして空きブロックを管理する。アドレス変換部68は、上位システムが認識する論理アドレスと、デバイスチップ11a〜nのNANDフラッシュメモリのブロック番号との対応付けを保存している。
The empty
メモリインタフェース部69は、書込み機能部63、消去機能部64又は読出し機能部65からのコマンドをデバイスチップ11a〜nに出力する。また、メモリインタフェース部69は、NANDフラッシュメモリのデバイスチップ11a〜nから入力される処理結果を書込み機能部63、消去機能部64又は読出し機能部65に出力する。
The
次に、データ書込みの動作について説明する。
書込み機能部63は、コマンドインタフェース部62から書込みコマンドを受信すると、並列書込み用空きブロック管理部67に並列書込み数分の空きブロックを要求する。並列書込み用空きブロック管理部67は並列書込み用空きブロック管理テーブルから並列書込み数分の空きブロックの番号を取得し、書込み機能部63に通知する。
Next, the data write operation will be described.
When the
書込み機能部63は、書込みデータを並列書込み数分に分割し、それぞれ空きブロック番号とともにメモリインタフェース部69に書込みコマンドを通知する。メモリインタフェース部69は、並列書込み数分のデバイスチップそれぞれに書込みコマンドを送信する。インタフェース部69は、デバイスチップへの書込み処理中でメモリバスの空いているときは他のデバイスチップへ書き込みコマンドを送信するように制御し、複数のデバイスチップへの書込みを並列に行う。デバイスチップは、指定されたNANDフラッシュメモリのブロックに書込み処理を行い、処理が完了するとメモリインタフェース部69に通知する。
The
なお、1つのデバイスチップへ書込みする場合、書込み機能部63は、空きブロック管理部66に空きブロックを要求し、取得する。書込み機能部63は、空きブロック番号とともにメモリインタフェース部69に書込みコマンドを通知する。メモリインタフェース部69は、デバイスチップに書込みコマンドを送信する。複数のデバイスチップに並列書込みするのか、あるいは1つのデバイスチップに書込みするのかは、上位システムからの指示に従って処理を行ってもよいし、書込み機能部63がどちらの処理を行うか判断してもよい。
When writing to one device chip, the
メモリインタフェース部69は、デバイスチップへの書込み処理が完了したことを書込み機能部63に通知する。書込み機能部63は、書込みが行われたデバイスチップのブロック番号と上位システムが認識している論理アドレスをアドレス変換部68へ通知する。アドレス変換部68は、通知されたデバイスチップのブロック番号と論理アドレスを対応付けて保存する。書込み機能部63は、書込み処理が完了したことをコマンドインタフェース部62に通知する。コマンドインタフェース部62は、書込み処理が完了したことを上位システムに通知し、書込み処理が完了する。
The
次に、データ消去の動作について説明する。
消去機能部64は、コマンドインタフェース部62から消去コマンドを受信すると、指定された論理アドレスをアドレス変換部68に通知する。アドレス変換部68は指定された論理アドレスに対応するデバイスチップのブロック番号を消去機能部64に通知する。消去機能部64は、デバイスチップのブロック番号を指定して消去コマンドをメモリインタフェース部69に送信する。
Next, the data erasing operation will be described.
When the erase
メモリインタフェース部69は消去コマンドをデバイスチップに送信する。消去コマンドを受信したデバイスチップは、指定されたブロックのデータを消去し、処理が完了するとメモリインタフェース部69へ通知する。メモリインタフェース部69は、デバイスチップの消去処理が完了したことを消去機能部64に通知する。
The
消去機能部64は、当該ブロックと論理アドレスとの対応付けを削除するようにアドレス変換部68に通知する。また、消去機能部64は、空きブロック管理部66に当該ブロックが空きであることを通知する。空きブロック管理部66は消去処理が完了した空きブロックを並列書込み用空きブロック管理部67に通知する。消去機能部64は、消去処理が完了したことをコマンドインタフェース部62に通知する。コマンドインタフェース部62は、消去処理が完了したことを上位システムに通知する。
The erasing
次に、データ読出しの動作について説明する。
読出し機能部65は、コマンドインタフェース部62から読出しコマンドを受信すると、指定された論理アドレスをアドレス変換部68に通知する。アドレス変換部68は指定された論理アドレスをデバイスチップのブロック番号に変換し、読出し機能部65に通知する。読出し機能部65は、デバイスチップのブロック番号を指定して読出しコマンドをメモリインタフェース部69に送信する。
Next, the data reading operation will be described.
When the
メモリインタフェース部69は読出しコマンドをデバイスチップに送信する。読出しコマンドを受信したデバイスチップは、指定されたブロックのデータを読出し、メモリインタフェース部69へ通知する。メモリインタフェース部69は、デバイスチップの読出し処理が完了したことを読出し機能部65に通知する。読出し機能部65は、読出し処理が完了したことをコマンドインタフェース部62に通知する。コマンドインタフェース部62は、読出したデータを上位システムに通知する。
The
次に、空きブロック管理部66及び並列書込み用空きブロック管理部67における動作について説明する。
Next, operations in the empty
図7は、実施の形態1に係る並列書込み用空きブロック管理テーブル71を示す図である。並列書込み用空きブロック管理テーブル71は、並列書込み数分のデバイスチップとそのブロック番号を1つの組として1以上の組を保存するテーブルである。並列書込み用空きブロック管理テーブル71の左端の番号72は、組の番号を示すインデックスである。各インデックスには、並列書込み数分のエントリが保存される。本実施の形態においては、並列書込み数が3のため、3個のエントリ73a〜cが保存されている。各エントリには、デバイスチップ番号74a〜cとブロック番号75a〜cが保存されている。デバイスチップ番号74a〜cは、デバイスチップを識別する識別子、ブロック番号75a〜cはブロックを識別する識別子である。
FIG. 7 is a diagram showing the parallel writing free block management table 71 according to the first embodiment. The parallel writing free block management table 71 is a table for storing one or more sets, each of which has a device chip and its block number corresponding to the number of parallel writes. The
並列書込み用空きブロック管理テーブル71において、デバイスチップ番号74b〜c及びブロック番号75b〜cが「−」となっているのは、未登録であることを示す。例えば、インデックス7のエントリ1のデバイスチップ番号は1、ブロック番号は50が登録され、エントリ2及びエントリ3のデバイスチップ番号及びブロック番号は未登録である。なお、同じインデックスのエントリに同じデバイスチップの異なるブロック番号を登録することはできない。
In the parallel writing free block management table 71, the
図8は、実施の形態1に係る空きブロック管理部66及び並列書込み用空きブロック管理部67における処理の流れを示すフローチャートである。
空きブロック管理部66は、消去機能部64から消去を完了したブロックが通知されるとステップS81より処理を開始する。ステップS81において、空きブロック管理部66は、当該ブロックを並列書込み用空きブロック管理部67に通知し、ステップS82へ進む。
FIG. 8 is a flowchart showing the flow of processing in the empty
The empty
ステップS82において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71に当該ブロックを登録することができる空きエントリがあるか探索する。ステップS82の詳細は、後述する。処理は、ステップS83へ進む。ステップS83において、並列書込み用空きブロック管理部67は、当該ブロックを並列書込み用空きブロック管理テーブル71に登録することができる場合、ステップS84へ進む。
In step S82, the parallel writing free
ステップS84において、並列書込み用空きブロック管理部67は、当該ブロックを並列書込み用空きブロック管理テーブル71に登録し、ステップS85へ進む。ステップS85において、並列書込み用空きブロック管理部67は、当該ブロックを並列書込み用として使用するため、「使用」を空きブロック管理部66に通知する。ステップS87において、空きブロック管理部66は、ブロック管理テーブルにおいて当該ブロックを使用中として登録し、処理を終了する。
In step S84, the parallel writing free
ステップS83において、並列書込み用空きブロック管理部67は、当該ブロックを並列書込み用空きブロック管理テーブル71に登録することができない場合、ステップS86へ進む。ステップS86において、並列書込み用空きブロック管理部67は、当該ブロックを並列書込み用として使用しないため、「不使用」を空きブロック管理部66に通知する。ステップS88において、空きブロック管理部66は、空きブロック管理テーブルにおいて当該ブロックを空きとして登録し、処理を終了する。
In step S83, the parallel writing free
図9は、実施の形態1に係る並列書込み用空きブロック管理部67における並列書込み用空きブロック管理テーブル71の探索処理の流れを示すフローチャートである。図9のフローチャートは、図8のステップS82の処理の詳細を示す。並列書込み用空きブロック管理部67は、空きブロック管理部66から空きブロックを通知されると、ステップS91より処理を開始する。
FIG. 9 is a flowchart showing a flow of search processing of the parallel writing free block management table 71 in the parallel writing free
通知された空きブロックがデバイスチップ#2のブロック番号80の場合の処理を説明する。ステップS91において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス1を参照する。並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス1には空きエントリがないため、処理はステップS93へ進む。ステップS93において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS94へ進む。
Processing when the notified empty block is the
ステップS94において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS91へ進む。ステップS91において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス2を参照する。インデックス2からインデックス5まで空きエントリがないため、並列書込み用空きブロック管理部67は、インデックス1の場合と同様にステップS91、ステップS93及びステップS94の処理を繰り返す。
In step S94, the parallel writing free
ステップS91において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス6を参照する。インデックス6は空きエントリがあるため、処理はステップS92へ進む。ステップS92において、デバイスチップ#2はインデックス6のエントリ2に登録されているため、処理はステップS93へ進む。ステップS93において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS94へ進む。ステップS94において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS91へ進む。
In
ステップS91において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス7を参照する。インデックス7には空きエントリがあるため、処理はステップS92へ進む。ステップS92において、デバイスチップ#2はインデックス7には登録されていないため、並列書込み用空きブロック管理部67は、インデックス7のエントリ2に空きブロックを登録可能である。並列書込み用空きブロック管理部67は、処理を終了する。
In step S <b> 91, the parallel writing free
図10は、実施の形態1に係る並列書込み用空きブロック管理テーブル101を示す図である。登録並列書込み用空きブロック管理テーブル101は、並列書込み用空きブロック管理テーブル71のインデックス7のエントリ2にデバイスチップ#2のブロック番号80を登録したテーブルである。図10において、網掛けで示した箇所がインデックス7のエントリ2である。デバイスチップ#2のブロック番号80は、並列書込み用の空きブロックとして利用されることとなる。
FIG. 10 is a diagram showing the parallel writing free block management table 101 according to the first embodiment. The registered parallel writing free block management table 101 is a table in which the
次に、図9のフローチャートについて、通知された空きブロックがデバイスチップ#1のブロック番号30の場合の処理を説明する。
ステップS91において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス1を参照する。並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス1には空きエントリがないため、処理はステップS93へ進む。ステップS93において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS94へ進む。
Next, processing in the case where the notified empty block is the
In step S91, the parallel writing free
ステップS94において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS91へ進む。ステップS91において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス2を参照する。インデックス2からインデックス5まで空きエントリがないため、並列書込み用空きブロック管理部67は、インデックス1の場合と同様にステップS91、ステップS93及びステップS94の処理を繰り返す。
In step S94, the parallel writing free
ステップS91において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス6を参照する。インデックス6は空きエントリがあるため、処理はステップS92へ進む。ステップS92において、デバイスチップ#1はインデックス6のエントリ1に登録されているため、処理はステップS93へ進む。ステップS93において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS94へ進む。ステップS94において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS91へ進む。
In
ステップS91において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス7を参照する。インデックス7には空きエントリがあるため、処理はステップS92へ進む。ステップS92において、デバイスチップ#1はインデックス7のエントリ1に登録されているため、処理はステップS93へ進む。ステップS93において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みのため、処理を終了する。
In step S <b> 91, the parallel writing free
デバイスチップ#1のブロック番号30は、並列書込み用空きブロック管理テーブル71には登録されない。デバイスチップ#1のブロック番号30は、空きブロック管理部66においてブロック毎に割当てられる空きブロックとして利用されることとなる。
The
本実施の形態においては、並列書込み数が3の場合を示したが、並列書込み数は他の値でもよい。デバイスチップ数をNとした場合、並列書込み数はN以下の自然数である。並列書込み用空きブロック管理テーブルのエントリ数は並列書込み数と同じ値とすればよい。 In the present embodiment, the case where the number of parallel writes is 3 is shown, but the number of parallel writes may be another value. When the number of device chips is N, the number of parallel writes is a natural number equal to or less than N. The number of entries in the parallel write free block management table may be the same value as the number of parallel writes.
また、本実施の形態においては、並列書込み用空きブロック管理テーブル71のインデックス数を7としたが、他の値でもよい。並列書込みを要する入力データの通信頻度、及び1ブロック毎の割当てに必要なブロック数との比率を考慮し、データ記録装置60が予め決めておいてもよい。また、データ記録装置60がインデックス数の上限値及び下限値を決め、並列書込みを要する入力データの通信頻度、及び1ブロック毎の割当てに必要なブロック数との比率の変化に応じて変化させてもよい。
In the present embodiment, the number of indexes in the parallel writing free block management table 71 is set to 7, but other values may be used. The
さらに、データ記録装置60は、並列書込み数が異なる複数の並列書込み用空きブロック管理部を保持し、デバイスチップに対して異なる並列書込み数でデータの書込みをするようにしてもよい。
Furthermore, the
したがって、本実施の形態では、同一バス上に接続された複数の記録媒体にデータを並列に書込む書込み機能部63と、複数の記録媒体をそれぞれ分割した複数のブロックについてデータ書込み可能な空きブロックかどうかを空きブロック管理テーブルに登録する空きブロック管理部66と、空きブロック管理部66から通知された空きブロックについて並列書込み数分を1つの組として並列書込み用空きブロック管理テーブル71に登録し、書込み機能部63からの要求に応じて並列書込み用空きブロック管理テーブル71から並列書込み数分の空きブロックを取得して、通知する並列書込み用空きブロック管理部67と、を備え、並列書込み用空きブロック管理部67は、記録媒体の識別子とブロックを識別するブロック番号とを対応付け、並列書込み数分の異なる記録媒体の空きブロックを1つの組として並列書込み用空きブロック管理テーブル71に登録し、空きブロック管理部66より空きブロックが通知されると、並列書込み用空きブロック管理テーブル71の並列書込み数分の空きブロックが登録されていない組に当該空きブロックと同じ記録媒体のブロックが登録されていない場合、当該空きブロックを登録するので、複数個のNANDフラッシュメモリに対し並列にデータを書込む場合に処理時間を短縮し、データの欠損を生じさせないようにすることができる。
Therefore, in the present embodiment, the
並列書込み用空きブロック管理テーブル71を1度探索すれば並列書込みに適した空きブロックの組を取出すことができるため、従来の空きブロック管理部66から1つの空きブロックを取出すのと同じ処理量で並列書込み処理を行うことができる。よって、連続する入力データを欠損なく記録することができる。
By searching the empty block management table 71 for parallel writing once, a set of empty blocks suitable for parallel writing can be taken out, so the processing amount is the same as that for taking out one empty block from the conventional empty
実施の形態2.
以上の実施の形態1では、並列書込み用空きブロック管理部67が並列書込み用空きブロック管理テーブルに空きエントリがあるか各インデックスの各エントリを探索するようにしたものであるが、本実施の形態においては、並列書込み用空きブロック管理テーブルに割当て済みブロック数を付与し、空きエントリがあるか探索する実施の形態を示す。
なお、本実施の形態において、並列書込み用空きブロック管理部67以外は実施の形態1と同じであるため、説明を割愛する。
本実施の形態において、メモリバス61に接続された全てのNANDフラッシュメモリのデバイスチップは5個、並列書込み数は3とする。
In the first embodiment described above, the parallel write free
In the present embodiment, since the blocks other than the parallel writing free
In the present embodiment, it is assumed that the number of device chips of all NAND flash memories connected to the
図11は、実施の形態2に係る並列書込み用空きブロック管理テーブル111を示す図である。112はインデックスを示す。113は、各インデックス内での割当て済みブロック数を示す。114a〜eは各デバイスチップに対応したエントリである。エントリの数は、メモリバス61に接続されたデバイスチップの個数に対応し、5個である。114aはデバイスチップ#1用のエントリを示す。114bはデバイスチップ#2用のエントリを示す。114cはデバイスチップ#3用のエントリを示す。114dはデバイスチップ#4用のエントリを示す。114eはデバイスチップ#5用のエントリを示す。
FIG. 11 is a diagram showing the parallel writing free block management table 111 according to the second embodiment.
割当て済みブロック数は、各インデックスにおいてブロック番号が登録されたエントリ数を示す。割当て済みブロック数は、並列書込み数以下の自然数である。各エントリには、空きブロックの番号が登録される。ブロック番号が「−」の場合、未登録であることを示す。 The number of allocated blocks indicates the number of entries in which block numbers are registered in each index. The number of allocated blocks is a natural number equal to or less than the number of parallel writes. In each entry, an empty block number is registered. When the block number is “−”, it indicates that it is not registered.
図12は、実施の形態2に係る並列書込み用空きブロック管理部67における並列書込み用空きブロック管理テーブル111の探索処理の流れを示すフローチャートである。図12のフローチャートは、図8のステップS82の処理の詳細を示す。並列書込み用空きブロック管理部67は、空きブロック管理部66から空きブロックを通知されると、ステップS121より処理を開始する。
FIG. 12 is a flowchart showing a flow of search processing of the parallel writing free block management table 111 in the parallel writing free
通知された空きブロックがデバイスチップ#2のブロック番号80の場合の処理を説明する。ステップS121において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル111のインデックス1を参照する。インデックス1の割当て済みブロック数は3である。並列書込み用空きブロック管理部67は、インデックス1の割当て済みブロック数が並列書込み数より小さくないため、処理はステップS123へ進む。ステップS123において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS124へ進む。
Processing when the notified empty block is the
ステップS124において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS121へ進む。ステップS121において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル111のインデックス2を参照する。インデックス2からインデックス5まで、割当て済みブロック数が並列書込み数より小さくないため、並列書込み用空きブロック管理部67は、インデックス1の場合と同様にステップS121、ステップS123及びステップS124の処理を繰り返す。
In step S124, the parallel writing free
ステップS121において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス6を参照する。インデックス6の割当て済みブロック数は並列書込み数より小さいため、処理はステップS122へ進む。ステップS122において、デバイスチップ#2用のエントリ2にはすでに他のブロック番号が登録されているため、処理はステップS123へ進む。ステップS123において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS124へ進む。ステップS124において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS121へ進む。
In step S121, the parallel write free
ステップS121において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル71のインデックス7を参照する。インデックス7の割当て済みブロック数は並列書込み数より小さいため、処理はステップS122へ進む。ステップS122において、デバイスチップ#2用のエントリ2は空いているため、並列書込み用空きブロック管理部67は、インデックス7のエントリ2に空きブロックを登録可能である。並列書込み用空きブロック管理部67は、処理を終了する。
In step S121, the parallel writing free
図13は、実施の形態2に係る並列書込み用空きブロック管理テーブル131を示す図である。並列書込み用空きブロック管理テーブル131は、並列書込み用空きブロック管理テーブル111のインデックス7のエントリ2にデバイスチップ#2のブロック番号80が登録されたテーブルである。図13において、網掛けした箇所がインデックス7のエントリ2である。デバイスチップ#2のブロック番号80は、並列書込み用の空きブロックとして利用されることとなる。
FIG. 13 is a diagram showing the parallel write free block management table 131 according to the second embodiment. The parallel writing free block management table 131 is a table in which the
次に、図12のフローチャートについて、通知された空きブロックがデバイスチップ#1のブロック番号30の場合の処理を説明する。
ステップS121において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル111のインデックス1を参照する。インデックス1の割当て済みブロック数は3である。並列書込み用空きブロック管理部67は、インデックス1の割当て済みブロック数が並列書込み数より小さくないため、処理はステップS123へ進む。ステップS123において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS124へ進む。
Next, processing in the case where the notified empty block is the
In step S121, the parallel writing free
ステップS124において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS121へ進む。ステップS121において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル111のインデックス2を参照する。インデックス2からインデックス5まで、割当て済みブロック数が並列書込み数より小さくないため、並列書込み用空きブロック管理部67は、インデックス1の場合と同様にステップS121、ステップS123及びステップS124の処理を繰り返す。
In step S124, the parallel writing free
ステップS121において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル111のインデックス6を参照する。インデックス6の割当て済みブロック数は並列書込み数より小さいため、処理はステップS122へ進む。ステップS122において、デバイスチップ#1用のエントリ1にはすでに他のブロック番号が登録されているため、処理はステップS123へ進む。ステップS123において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS124へ進む。ステップS124において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS121へ進む。
In step S121, the parallel writing free
ステップS121において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル111のインデックス7を参照する。インデックス7の割当て済みブロック数は並列書込み数より小さいため、処理はステップS122へ進む。ステップS122において、デバイスチップ#1用のエントリ1にはすでに他のブロック番号が登録されているため、処理はステップS123へ進む。ステップS123において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みのため、処理を終了する。
In step S121, the parallel writing free
デバイスチップ#1のブロック番号30は、並列書込み用空きブロック管理テーブル111には登録されない。デバイスチップ#1のブロック番号30は、空きブロック管理部66においてブロック毎に割当てられる空きブロックとして利用されることとなる。
The
したがって、本実施の形態では、同一バス上に接続された複数の記録媒体にデータを並列に書込む書込み機能部63と、複数の記録媒体をそれぞれ分割した複数のブロックについてデータ書込み可能な空きブロックかどうかを空きブロック管理テーブルに登録する空きブロック管理部66と、空きブロック管理部66から通知された空きブロックについて並列書込み数分を1つの組として並列書込み用空きブロック管理テーブル111に登録し、書込み機能部63からの要求に応じて並列書込み用空きブロック管理テーブル111から並列書込み数分の空きブロックを取得して、通知する並列書込み用空きブロック管理部67と、を備え、並列書込み用空きブロック管理部67は、記録媒体の識別子及びブロック番号と、1つの組に割当てられた割当て済みブロック数とを対応付け、並列書込み数分の異なる記録媒体の空きブロックを1つの組として並列書込み用空きブロック管理テーブル111に登録し、空きブロック管理部66より空きブロックが通知されると、割当て済みブロック数が並列書込み数より小さい組に、当該空きブロックと同じ記録媒体のブロックが登録されていない場合、当該空きブロックを登録するので、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル111の各インデックスの割当て済みブロック数とデバイスチップ番号に対応したエントリのみ参照すれば、空きブロックを登録することができるか判断することができる。よって、並列書込み用空きブロック管理部67の処理量を抑制することができる。
Therefore, in the present embodiment, the
実施の形態3.
以上の実施の形態2では、並列書込み用空きブロック管理テーブルに割当て済みブロック数を付与し、空きエントリがあるか探索するようにしたものであるが、本実施の形態においては、ウェアレベリングを行う実施の形態を示す。ウェアレベリングとは、消去回数を均等化することである。メモリ素子は、データの書込み及び消去を繰り返すと劣化し、データを書込むことができなくなる。特定のブロックにデータの書込み及び消去が集中して書込みができなくなってしまうことを防ぐため、消去回数を均等化することが行われている。
In the second embodiment described above, the number of allocated blocks is assigned to the parallel writing free block management table to search for a free entry. In this embodiment, wear leveling is performed. Embodiments are shown. Wear leveling is to equalize the number of erasures. The memory element deteriorates when data writing and erasing are repeated, and data cannot be written. In order to prevent data writing and erasing from being concentrated on a specific block and making it impossible to perform writing, the number of times of erasing is equalized.
本実施の形態において、メモリバス61に接続された全てのNANDフラッシュメモリのデバイスチップは5個、並列書込み数は3とする。
In the present embodiment, it is assumed that the number of device chips of all NAND flash memories connected to the
図14は、実施の形態3に係る並列書込み用空きブロック管理テーブル141を示す図である。142は、並列書込み用空きブロック管理テーブル141のインデックスを示す。143は、各インデックス内における割当て済みブロック数を示す。割当て済みブロック数は、並列書込み数以下の自然数である。144は、各インデックス内に登録されている空きブロックの消去回数の平均値である。割当て済みブロック数が並列書込み数と等しい場合のみ、消去回数の平均値に値が登録される。
FIG. 14 is a diagram showing the parallel writing free block management table 141 according to the third embodiment.
145a〜eは各デバイスチップに対応したエントリである。エントリの数は、メモリバス61に接続されたデバイスチップの個数に対応し、5個である。145aはデバイスチップ#1用のエントリを示す。145bはデバイスチップ#2用のエントリを示す。145cはデバイスチップ#3用のエントリを示す。145dはデバイスチップ#4用のエントリを示す。145eはデバイスチップ#5用のエントリを示す。
各エントリには、それぞれ対応したデバイスチップの空きブロック番号及び当該ブロックの消去回数が登録される。146a〜eは、各エントリの空きブロック番号を示す。147a〜eは、各エントリの当該ブロックの消去回数を示す。「−」は値が登録されていないことを示す。
In each entry, the empty block number of the corresponding device chip and the erase count of the block are registered.
図15は、実施の形態3に係る空きブロック管理部66及び並列書込み用空きブロック管理部67における処理の流れを示すフローチャートである。
空きブロック管理部66は、消去機能部64から消去を完了したブロックが通知されるとステップS150より処理を開始する。通知されたブロックをブロックXとする。ステップS150において、空きブロック管理部66は、ブロックXを並列書込み用空きブロック管理部67に通知し、ステップS151へ進む。
FIG. 15 is a flowchart showing the flow of processing in the empty
The empty
ステップS151において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル141にブロックXを登録することができるエントリがあるか探索し、登録可能であれば登録する。ステップS151の処理の詳細は、後述する。ステップS151の処理の結果、並列書込み用空きブロック管理テーブル141に登録できない空きブロックが残る場合がある。処理は、ステップS152へ進む。ステップS152において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル141に登録できない空きブロックがある場合、ステップS153へ進む。
In step S151, the parallel write free
ステップS153において、並列書込み用空きブロック管理部67は、空きブロックがブロックXの場合、ステップS154へ進む。ステップS154において、並列書込み用空きブロック管理部67は、ブロックXを並列書込み用として使用しないため、「不使用」を空きブロック管理部66に通知し、ステップS155へ進む。ステップS155において、空きブロック管理部66は、空きブロック管理テーブルにおいてブロックXを空きとして登録し、処理を終了する。
In step S153, if the empty block is the block X, the parallel writing empty
ステップS153において、並列書込み用空きブロック管理部67は、空きブロックが空きブロックXでない場合、ステップS156へ進む。空きブロックをブロックYとする。ステップS156において、並列書込み用空きブロック管理部67は、ブロックYを並列書込み用として使用しないため、「不使用」を空きブロック管理部66に通知する。また、並列書込み用空きブロック管理部67は、ブロックXを並列書込み用として使用するため、「使用」を空きブロック管理部66に通知し、ステップS157へ進む。
In step S153, if the empty block for
ステップS157において、空きブロック管理部66は、ブロック管理テーブルにおいてブロックYを空きとして登録し、ステップS158へ進む。ステップS158において、空きブロック管理部66は、空きブロック管理テーブルにおいてブロックXを使用中として登録し、処理を終了する。
In step S157, the empty
ステップS152において、並列書込み用空きブロック管理部67は、空きブロックがない場合、ステップS159へ進む。ステップS159において、並列書込み用空きブロック管理部67は、ブロックXを並列書込み用として使用するため、「使用」を空きブロック管理部66に通知し、ステップS158へ進む。ステップS158において、空きブロック管理部66は、空きブロック管理テーブルにおいてブロックXを使用中として登録し、処理を終了する。
In step S152, when there is no empty block, the parallel writing empty
図16は、実施の形態3に係る並列書込み用空きブロック管理部67における並列書込み用空きブロック管理テーブル141の探索処理の流れを示すフローチャートである。図16のフローチャートは、図15のステップS151の処理の詳細を示す。並列書込み用空きブロック管理部67は、空きブロック管理部66から空きブロックを通知されると、ステップS161より処理を開始する。
FIG. 16 is a flowchart showing a flow of search processing for the parallel writing free block management table 141 in the parallel writing free
ステップS161において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル141のインデックス1を参照する。並列書込み用空きブロック管理部67は、インデックス1の割当て済みブロック数と並列書込み数が等しい場合、ステップS162へ進む。並列書込み用空きブロック管理部67は、インデックス1の割当て済みブロック数と並列書込み数が等しくない場合、ステップS163へ進む。
In step S161, the parallel writing free
ステップS162において、並列書込み用空きブロック管理部67は、消去回数の平均値を参照する。消去回数の平均値が空きブロックの消去回数より大きい場合、ステップS163へ進む。消去回数の平均値が空きブロックの消去回数より大きくない場合、ステップS166へ進む。ステップS163において、並列書込み用空きブロック管理部67は、空きブロックのデバイスチップ用のエントリにすでに登録されている場合、ステップS164へ進む。
In step S162, the parallel writing free
ステップS164において、並列書込み用空きブロック管理部67は、登録済みのブロックの消去回数が空きブロックの消去回数より大きい場合、ステップS165へ進む。登録済みのブロックの消去回数が空きブロックの消去回数より大きくない場合、ステップS166へ進む。ステップS165において、並列書込み用空きブロック管理部67は、登録済みのブロックと空きブロックを入れ替え、ステップS166へ進む。ステップS166において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みの場合、処理を終了する。
In step S164, the parallel writing free
ステップS166において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みでない場合、ステップS167へ進む。ステップS167において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS161へ進む。
In step S166, the parallel writing free
ステップS163において、並列書込み用空きブロック管理部67は、空きブロックのデバイスチップ用のエントリにすでに登録されていない場合、空きブロックを登録し、処理を終了する。
In step S163, the parallel writing free
通知された空きブロックがデバイスチップ#1のブロック番号30の場合の処理を説明する。消去回数は45回とする。ステップS161において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル141のインデックス1を参照する。インデックス1の割当て済みブロック数は3である。並列書込み用空きブロック管理部67は、インデックス1の割当て済みブロック数が並列書込み数と等しいため、処理はステップS162へ進む。
A process when the notified empty block is the
ステップS162において、並列書込み用空きブロック管理部67は、消去回数の平均値を参照する。消去回数の平均値41は、空きブロックの消去回数45より大きくないため、処理はステップS166へ進む。ステップS166において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS167へ進む。ステップS167において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS161へ進む。
In step S162, the parallel writing free
ステップS161において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル141のインデックス2を参照する。インデックス2の割当て済みブロック数は3である。並列書込み用空きブロック管理部67は、インデックス2の割当て済みブロック数が並列書込み数と等しいため、処理はステップS162へ進む。ステップS162において、並列書込み用空きブロック管理部67は、消去回数の平均値を参照する。消去回数の平均値59は、空きブロックの消去回数45より大きいため、処理はステップS163へ進む。
In step S161, the parallel writing free
ステップS163において、並列書込み用空きブロック管理部67は、インデックス2のエントリ1に登録があるため、ステップS164へ進む。ステップS164において、並列書込み用空きブロック管理部67は、デバイスチップ#1用のエントリ1の消去回数を参照する。エントリ1の消去回数45は、空きブロックの消去回数45より大きくないため、処理はステップS166へ進む。ステップS166において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS167へ進む。ステップS167において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS161へ進む。
In step S163, the parallel write free
ステップS161において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル131のインデックス3を参照する。インデックス3の割当て済みブロック数は3である。並列書込み用空きブロック管理部67は、インデックス3の割当て済みブロック数が並列書込み数と等しいため、処理はステップS162へ進む。
In step S161, the parallel writing free
ステップS162において、並列書込み用空きブロック管理部67は、消去回数の平均値を参照する。消去回数の平均値50は、空きブロックの消去回数45より大きいため、処理はステップS163へ進む。ステップS163において、並列書込み用空きブロック管理部67は、インデックス3のエントリ1に登録があるため、ステップS164へ進む。ステップS164において、並列書込み用空きブロック管理部67は、デバイスチップ#1用のエントリ1の消去回数を参照する。エントリ1の消去回数60は、空きブロックの消去回数45より大きいため、ステップS165へ進む。
In step S162, the parallel writing free
ステップS165において、並列書込み用空きブロック管理部67は、インデックス3のエントリ1に登録されているブロック番号35と通知された空きブロックを入れ替える。また、並列書込み用空きブロック管理部67は、エントリ3とエントリ5とブロック番号30の消去回数の平均値を算出する。並列書込み用空きブロック管理部67は、算出した消去回数の平均値45を登録し、ステップS166へ進む。ステップS166において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS167へ進む。ステップS167において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS161へ進む。
In step S165, the parallel writing free
並列書込み用空きブロック管理部67は、空きブロックをデバイスチップ#1のブロック番号35、消去回数60として、処理を続ける。ステップS161において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル131のインデックス4を参照する。インデックス4の割当て済みブロック数は3である。並列書込み用空きブロック管理部67は、インデックス4の割当て済みブロック数が並列書込み数と等しいため、処理はステップS162へ進む。
The parallel writing vacant
ステップS162において、並列書込み用空きブロック管理部67は、消去回数の平均値を参照する。消去回数の平均値33は、空きブロックの消去回数60より大きくないため、処理はステップS166へ進む。ステップS166において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS167へ進む。ステップS167において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS161へ進む。
In step S162, the parallel writing free
ステップS161において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル141のインデックス5を参照する。インデックス5の割当て済みブロック数は3である。並列書込み用空きブロック管理部67は、インデックス5の割当て済みブロック数が並列書込み数と等しいため、処理はステップS162へ進む。
In step S161, the parallel writing free
ステップS162において、並列書込み用空きブロック管理部67は、消去回数の平均値を参照する。消去回数の平均値42は、空きブロックの消去回数60より大きくないため、処理はステップS166へ進む。ステップS166において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS167へ進む。ステップS167において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS161へ進む。
In step S162, the parallel writing free
ステップS161において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル141のインデックス6を参照する。インデックス6の割当て済みブロック数は2である。並列書込み用空きブロック管理部67は、インデックス6の割当て済みブロック数が並列書込み数と等しくないため、処理はステップS163へ進む。
In step S161, the parallel writing free
ステップS163において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル141のインデックス6のエントリ1に登録があるため、ステップS164へ進む。ステップS164において、並列書込み用空きブロック管理部67は、デバイスチップ#1用のエントリ1の消去回数を参照する。エントリ1の消去回数70は、空きブロックの消去回数60より大きいため、ステップS165へ進む。
In step S163, the parallel writing free
ステップS165において、並列書込み用空きブロック管理部67は、インデックス6のエントリ1に登録されているブロック番号22と空きブロックを入れ替え、ステップS166へ進む。ステップS166において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みではないため、ステップS167へ進む。ステップS167において、並列書込み用空きブロック管理部67は、参照するインデックスをインクリメントし、ステップS161へ進む。
In step S165, the parallel writing free
並列書込み用空きブロック管理部67は、空きブロックをデバイスチップ#1のブロック番号22、消去回数70として、処理を続ける。ステップS161において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル141のインデックス7を参照する。インデックス7の割当て済みブロック数は1である。並列書込み用空きブロック管理部67は、インデックス7の割当て済みブロック数が並列書込み数と等しくないため、処理はステップS163へ進む。
The parallel writing free
ステップS163において、並列書込み用空きブロック管理部67は、並列書込み用空きブロック管理テーブル141のインデックス7のエントリ1に登録があるため、ステップS164へ進む。ステップS164において、並列書込み用空きブロック管理部67は、デバイスチップ#1用のエントリ1の消去回数を参照する。エントリ1の消去回数50は、空きブロックの消去回数70より大きくないため、ステップS166へ進む。ステップS166において、並列書込み用空きブロック管理部67は、全てのインデックスを探索済みのため、処理を終了する。
In step S163, the parallel writing free
図17は、実施の形態3に係る並列書込み用空きブロック管理テーブル171を示す図である。登録並列書込み用空きブロック管理テーブル171は、並列書込み用空きブロック管理テーブル141のインデックス3の消去回数の平均値、並びにエントリ1、及びインデックス6のエントリ1に新たな値が登録されたテーブルである。図17において、網掛けした箇所がインデックス3の消去回数の平均値、並びにエントリ1、及びインデックス6のエントリ1である。
FIG. 17 is a diagram showing the parallel writing free block management table 171 according to the third embodiment. The registered parallel writing free block management table 171 is a table in which the average value of the number of erasures of the
デバイスチップ#1のブロック番号30は、並列書込み用の空きブロックとして利用されることとなる。また、デバイスチップ#1のブロック番号22は、空きブロック管理部66においてブロック毎に割当てられる空きブロックとして利用されることとなる。
The
したがって、本実施の形態では、同一バス上に接続された複数の記録媒体にデータを並列に書込む書込み機能部63と、複数の記録媒体をそれぞれ分割した複数のブロックについてデータ書込み可能な空きブロックかどうかを空きブロック管理テーブルに登録する空きブロック管理部66と、空きブロック管理部66から通知された空きブロックについて並列書込み数分を1つの組として並列書込み用空きブロック管理テーブル141に登録し、書込み機能部63からの要求に応じて並列書込み用空きブロック管理テーブル141から並列書込み数分の空きブロックを取得して、通知する並列書込み用空きブロック管理部67と、を備え、並列書込み用空きブロック管理部67は、記録媒体の識別子、ブロック番号、及び1つの組に割当てられた割当て済みブロック数に、さらに当該ブロックの消去回数と1つの組に割当てられたブロックの消去回数の平均値とを対応付け、並列書込み数分の異なる記録媒体の空きブロックを1つの組として並列書込み用空きブロック管理テーブル141に登録し、空きブロック管理部66より空きブロックが通知されると、割当て済みブロック数が並列書込み数と等しい組に、消去回数の平均値が当該空きブロックの消去回数より小さく、当該空きブロックと同じ記録媒体のブロックが登録されており、その消去回数が当該空きブロックの消去回数より大きい場合、登録されているブロックを当該空きブロックと入れ替えるので、消去回数の少ないブロックが並列書込み用空きブロックとして使用されやすくなる。よって、各ブロックの消去回数を均等化することができる。
Therefore, in the present embodiment, the
11 デバイスチップ
12、41 メモリバス
13、60 データ記録装置
14、69 メモリインタフェース部
15 コマンド処理部
16 ページバッファ
17 NANDフラッシュメモリ
21 ブロック
22 ページ
31 第1コマンド送信
32 書込みデータ転送
33 第2コマンド送信
34 チップ内書込み処理
62 コマンドインタフェース部
63 書込み機能部
64 消去機能部
65 読出し機能部
66 空きブロック管理部
67 並列書込み用空きブロック管理部
68 アドレス変換部
71、101、111、131、141、171 並列書込み用空きブロック管理テーブル
72、112、142 インデックス
73、145 エントリ
74 デバイスチップ番号
75、114、146 ブロック番号
113、143 割当て済みブロック数
144 消去回数の平均値
147 消去回数
11
Claims (10)
複数の記録媒体をそれぞれ分割した複数のブロックについてデータ書込み可能な空きブロックかどうかを空きブロック管理テーブルに登録する空きブロック管理部と、
前記空きブロック管理部から通知された空きブロックについて並列書込み数分を1つの組として並列書込み用空きブロック管理テーブルに登録し、前記書込み機能部からの要求に応じて前記並列書込み用空きブロック管理テーブルから並列書込み数分の空きブロックを取得して、通知する並列書込み用空きブロック管理部と、
を備えることを特徴とするデータ記録装置。 A writing function unit for writing data in parallel to a plurality of recording media connected on the same bus;
An empty block management unit for registering in the empty block management table whether or not data writing is possible for a plurality of blocks obtained by dividing a plurality of recording media;
The free block notified from the free block management unit is registered in the parallel write free block management table as one set for the number of parallel writes, and in response to a request from the write function unit, the parallel write free block management table Free block management unit for parallel writing to obtain and notify free blocks for the number of parallel writes from,
A data recording apparatus comprising:
前記空きブロック管理部より空きブロックが通知されると、前記並列書込み用空きブロック管理テーブルの並列書込み数分の空きブロックが登録されていない組に、当該空きブロックと同じ記録媒体のブロックが登録されていない場合、当該空きブロックを登録することを特徴とする請求項1に記載のデータ記録装置。 The parallel writing free block management unit associates an identifier of a recording medium with a block number for identifying a block, and sets the free blocks of different recording media as many as the number of parallel writing as one set, the parallel writing free block management table. Registered with
When an empty block is notified from the empty block management unit, a block of the same recording medium as the empty block is registered in a set in which empty blocks corresponding to the number of parallel writes in the empty block management table for parallel writing are not registered. 2. The data recording apparatus according to claim 1, wherein the empty block is registered if not.
前記空きブロック管理部より空きブロックが通知されると、前記割当て済みブロック数が並列書込み数より小さい組に、当該空きブロックと同じ記録媒体のブロックが登録されていない場合、当該空きブロックを登録することを特徴とする請求項2に記載のデータ記録装置。 The parallel writing free block management unit associates the identifier and block number of the recording medium with the number of allocated blocks assigned to one set, and sets one free block of different recording media corresponding to the number of parallel writing. Registered in the free block management table for parallel writing as
When a free block is notified from the free block management unit, if a block of the same recording medium as the free block is not registered in a set in which the number of allocated blocks is smaller than the number of parallel writes, the free block is registered. The data recording apparatus according to claim 2, wherein:
前記空きブロック管理部より空きブロックが通知されると、割当て済みブロック数が並列書込み数と等しい組に、前記消去回数の平均値が当該空きブロックの消去回数より大きく、当該空きブロックと同じ記録媒体のブロックが登録されており、その消去回数が当該空きブロックの消去回数より大きい場合、登録されているブロックを当該空きブロックと入れ替えることを特徴とする請求項3に記載のデータ記録装置。 The parallel writing vacant block management unit includes the identifier of the recording medium, the block number, the number of allocated blocks assigned to one set, the number of block erases, and the number of block erases assigned to one set. Corresponding to the average value, register the free blocks of different recording media for the number of parallel writing as one set in the free block management table for parallel writing,
When an empty block is notified from the empty block management unit, a recording medium having the same number of erased blocks as the number of allocated blocks is equal to the number of parallel writes, and the average value of the erased block is larger than the erased number of empty blocks. 4. The data recording apparatus according to claim 3, wherein when the number of erasures is registered and the number of erasures is larger than the number of erasures of the empty blocks, the registered blocks are replaced with the empty blocks.
前記空きブロック管理部は、当該ブロックを使用中として空きブロック管理テーブルに登録することを特徴とする請求項1から5のいずれかに記載のデータ記録装置。 The parallel write free block management unit, when registering the free block notified from the free block management unit in the parallel write free block management table, notifies the free block management unit to use the block,
6. The data recording apparatus according to claim 1, wherein the empty block management unit registers the block as being in use in the empty block management table.
前記空きブロック管理部は、当該ブロックを空きとして空きブロック管理テーブルに登録することを特徴とする請求項1から6のいずれかに記載のデータ記録装置。 When there is an empty block not registered in the parallel writing empty block management table, the parallel writing empty block management unit notifies the empty block management unit that the block is not used,
7. The data recording apparatus according to claim 1, wherein the empty block management unit registers the block as empty in an empty block management table.
記録媒体からデータを読出す読出し機能部と、を備え、
前記書込み機能部は、データを並列に書込む場合は並列書込み用空きブロック管理部から並列書込み数分の空きブロックを取得してデータを書込み、1ブロックずつデータを書込む場合は空きブロック管理部から空きブロックを取得してデータを書込むことを特徴とする請求項1から7のいずれかに記載のデータ記録装置。 An erasing function unit for erasing data from a recording medium and notifying a block of the recording medium on which the data was recorded as an empty block to the empty block management unit;
A read function unit for reading data from a recording medium,
When writing data in parallel, the write function unit writes empty blocks for the number of parallel writes from the parallel write empty block management unit and writes data, and when writing data one block at a time, the empty block management unit The data recording apparatus according to claim 1, wherein an empty block is acquired from the data and data is written.
前記書込み機能部は、並列書込み数に応じて異なる並列書込み用空きブロック管理部から並列書込み数分の空きブロックを取得することを特徴とする請求項1から8のいずれかに記載のデータ記録装置。 Equipped with a plurality of parallel write free block managers with different numbers of parallel writes,
9. The data recording apparatus according to claim 1, wherein the writing function unit acquires empty blocks for the number of parallel writings from different parallel writing empty block management units according to the number of parallel writings. .
複数の記録媒体をそれぞれ分割した複数のブロックについてデータ書込み可能な空きブロックかどうかを空きブロック管理テーブルに登録する空きブロック管理ステップと、
前記空きブロック管理部から通知された空きブロックについて並列書込み数分を1つの組として並列書込み用空きブロック管理テーブルに登録し、前記書込み機能部からの要求に応じて前記並列書込み用空きブロック管理テーブルから並列書込み数分の空きブロックを取得して、通知する並列書込み用空きブロック管理ステップと、
を有するデータ記録方法。 A writing function step for writing data in parallel to a plurality of recording media connected on the same bus;
A free block management step for registering in the free block management table whether or not data writing is possible for a plurality of blocks obtained by dividing a plurality of recording media, and
The free block notified from the free block management unit is registered in the parallel write free block management table as one set for the number of parallel writes, and in response to a request from the write function unit, the parallel write free block management table Free block management step for parallel writing to acquire and notify free blocks for the number of parallel writes from,
A data recording method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013003274A JP5994647B2 (en) | 2013-01-11 | 2013-01-11 | Data recording apparatus and data recording method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013003274A JP5994647B2 (en) | 2013-01-11 | 2013-01-11 | Data recording apparatus and data recording method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014134998A true JP2014134998A (en) | 2014-07-24 |
JP5994647B2 JP5994647B2 (en) | 2016-09-21 |
Family
ID=51413198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013003274A Expired - Fee Related JP5994647B2 (en) | 2013-01-11 | 2013-01-11 | Data recording apparatus and data recording method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5994647B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11775187B2 (en) | 2021-03-23 | 2023-10-03 | Kioxia Corporation | Memory system and data management method including block allocation management |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000122923A (en) * | 1998-07-13 | 2000-04-28 | Sony Corp | Recording device and method, reproducing device and method, recording medium, and program recording medium |
JP2010182266A (en) * | 2009-02-09 | 2010-08-19 | Tdk Corp | Memory controller, flash memory system equipped with the same, and control method of flash memory |
JP2011180773A (en) * | 2010-02-26 | 2011-09-15 | Toshiba Corp | Memory system |
JP2011197788A (en) * | 2010-03-17 | 2011-10-06 | Toshiba Corp | Memory system |
JP2012517627A (en) * | 2009-02-12 | 2012-08-02 | 株式会社東芝 | Memory system and memory system control method |
-
2013
- 2013-01-11 JP JP2013003274A patent/JP5994647B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000122923A (en) * | 1998-07-13 | 2000-04-28 | Sony Corp | Recording device and method, reproducing device and method, recording medium, and program recording medium |
JP2010182266A (en) * | 2009-02-09 | 2010-08-19 | Tdk Corp | Memory controller, flash memory system equipped with the same, and control method of flash memory |
JP2012517627A (en) * | 2009-02-12 | 2012-08-02 | 株式会社東芝 | Memory system and memory system control method |
JP2011180773A (en) * | 2010-02-26 | 2011-09-15 | Toshiba Corp | Memory system |
JP2011197788A (en) * | 2010-03-17 | 2011-10-06 | Toshiba Corp | Memory system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11775187B2 (en) | 2021-03-23 | 2023-10-03 | Kioxia Corporation | Memory system and data management method including block allocation management |
Also Published As
Publication number | Publication date |
---|---|
JP5994647B2 (en) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10761977B2 (en) | Memory system and non-transitory computer readable recording medium | |
US20180024921A1 (en) | Memory system executing garbage collection | |
US8775771B2 (en) | Block management method for a flash memory and flash memory controller and storage system using the same | |
US8996791B2 (en) | Flash memory device, memory control device, memory control method, and storage system | |
US9268687B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
US10409525B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
US20110099324A1 (en) | Flash memory storage system and flash memory controller and data processing method thereof | |
JP5969130B2 (en) | Information processing device | |
US20150186259A1 (en) | Method and apparatus for storing data in non-volatile memory | |
TWI423022B (en) | Memory management method, memory controller and memory storage apparatus | |
US9389998B2 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
US11868246B2 (en) | Memory system and non-transitory computer readable recording medium | |
US10235284B2 (en) | Memory system | |
US11726906B2 (en) | Memory device and non-transitory computer readable recording medium | |
US20230281118A1 (en) | Memory system and non-transitory computer readable recording medium | |
KR102349381B1 (en) | Data storage device and operating method thereof | |
US9524236B1 (en) | Systems and methods for performing memory management based on data access properties | |
JP5994647B2 (en) | Data recording apparatus and data recording method | |
TW201624490A (en) | Memory device and non-transitory computer readable recording medium | |
WO2015118623A1 (en) | Information processing device | |
CN110968520B (en) | Multi-stream storage device based on unified cache architecture | |
TW201624491A (en) | Information processing device and non-transitory computer readable recording medium | |
TW201624288A (en) | Cache memory device and non-transitory computer readable recording medium | |
US10331551B2 (en) | Information processing device and non-transitory computer readable recording medium for excluding data from garbage collection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151027 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160721 |
|
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: 20160726 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160808 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5994647 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |