JP6193189B2 - NAND background processing controller - Google Patents
NAND background processing controller Download PDFInfo
- Publication number
- JP6193189B2 JP6193189B2 JP2014167517A JP2014167517A JP6193189B2 JP 6193189 B2 JP6193189 B2 JP 6193189B2 JP 2014167517 A JP2014167517 A JP 2014167517A JP 2014167517 A JP2014167517 A JP 2014167517A JP 6193189 B2 JP6193189 B2 JP 6193189B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- nand
- task
- background processing
- real
- 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
Description
本発明の実施形態は、NANDバックグラウンド処理制御装置に関する。 Embodiments described herein relate generally to a NAND background processing control apparatus.
NANDフラッシュメモリは、使用するに従い断片状態となり、使用可能な連続領域が減少するため、書き込み・読み出し等のメイン処理(通常NAND処理、あるいはNANDアクセスとも称する)とは別にガベージコレクションなどのNANDバックグラウンド処理を行う必要がある。 NAND flash memory becomes fragmented as it is used, and the continuous area that can be used decreases, so NAND backgrounds such as garbage collection are separate from main processing such as writing and reading (usually called NAND processing or NAND access). It is necessary to perform processing.
既存のリアルタイムOSとNANDフラッシュメモリで構成したシステムでは、NANDバックグラウンド処理の実行によりリアルタイムタスクの応答時間保証が困難な場合がある。 In a system configured with an existing real-time OS and NAND flash memory, it may be difficult to guarantee the response time of real-time tasks by executing NAND background processing.
上記課題に対する現状の解決策として、eMMC規格では、HOST側におけるリアルタイムタスク実行完了の都度、HOST側がNANDデバイス側に対してNANDバックグラウンド処理の実行許可・禁止を通知することで、NANDバックグラウンド処理実行タイミングの制御を実現している。図1は、eMMC規格におけるNANDバックグラウンド処理を説明する図である。 As a current solution to the above issues, in the eMMC standard, every time a real-time task execution on the HOST side is completed, the HOST side notifies the NAND device side of permission / prohibition of execution of NAND background processing, so that NAND background processing The execution timing is controlled. FIG. 1 is a diagram for explaining NAND background processing in the eMMC standard.
しかしながら、NANDデバイス側OSがHOST側リアルタイムタスクの実行に影響を及ぼすという問題があった。 However, there was a problem that the OS on the NAND device side affected the execution of the real-time task on the HOST side.
本発明が解決しようとする課題は、リアルタイムタスクがNANDデバイスにアクセスしない隙間時間を最大限に活用して、NANDバックグラウンド処理を進めることのできるNANDバックグラウンド処理制御装置を提供することである。 The problem to be solved by the present invention is to provide a NAND background processing control apparatus capable of proceeding NAND background processing by making maximum use of a gap time during which a real-time task does not access a NAND device.
実施形態のNANDバックグラウンド処理制御装置は、リアルタイムOSを有し、周期的にリアルタイムタスクを実行するホストデバイスと、このホストデバイスと通信可能に構成され、NAND型フラッシュメモリとデバイス側OSを有するメモリデバイスとを備え、前記メモリデバイス側のOSから、ガベージコレクションを行うNANDバックグラウンド処理に要する予測実行時間およびガベージコレクション対象ブロック数の情報を前記ホストデバイス側のOSに送る一方、前記ホストデバイス側のOSはリアルタイムタスク実行に影響を及ぼさないための、前記NANDバックグラウンド処理の実行開始可能時刻と実行可能時間を前記メモリデバイス側OSに送信し、前記メモリデバイス側OSは、リアルタイムタスクが前記メモリデバイス側にアクセスしない隙間時間において、前記実行開始可能時刻に、前記実行可能時間分だけ前記NANDバックグラウンド処理を実行する。 The NAND background processing control apparatus according to the embodiment includes a host device that has a real-time OS, periodically executes a real-time task, and is configured to be communicable with the host device, and has a NAND flash memory and a device-side OS. The memory device side OS sends information on the estimated execution time required for NAND background processing for garbage collection and the number of garbage collection target blocks to the OS on the host device side, while the host device side Since the OS does not affect the execution of the real-time task, the execution start time and the execution time of the NAND background process are transmitted to the memory device-side OS, and the memory device-side OS transmits the real-time task to the memory device In the gap time when the side is not accessed Te, the execution start enabled time, the only feasible time period for executing the NAND background processing.
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。 Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the drawings, the same portions are denoted by the same reference numerals, and redundant description is omitted.
まず、本実施形態で用いる主要な用語について説明する。 First, main terms used in the present embodiment will be described.
「リアルタイムタスク」とは、終了時刻(デッドライン)までに処理を完了しなければならないタスクをいう。開始予定時刻に起動され、即座に実行を開始する。 “Real-time task” refers to a task whose processing must be completed by the end time (deadline). It starts at the scheduled start time and starts running immediately.
「NAND処理」とは、HOST側からの指令を受けて行われるNANDデバイスに対する書き込み・読み出しを行うメイン処理と、“NANDバックグラウンド処理”をいう。 “NAND processing” refers to main processing for writing / reading to / from a NAND device performed in response to a command from the HOST side, and “NAND background processing”.
「NANDバックグラウンド処理」とは、HOST側からの要求を受け、NANDデバイスに対してメイン処理とは別に行われるNANDブロック管理のための処理をいう。本実施形態においては、後述する“ガベージコレクション(GC)”が該当し、ユーザーによる関与が殆ど不要である。メイン処理ではないため、HOST側で実行されるリアルタイムタスクに対して影響が少ないことが求められる。NANDバックグラウンド処理は、HOST側から要求されたメイン処理とは別に、タスクを切り替えることで実行される。図2は、NANDバックグラウンド処理の有無によるリアルタイムタスクに対する影響を説明する図である。図2において、周期AはNANDバックグラウンド処理なしの状況を示し、周期Bは従来手法によるNANDバックグラウンド処理の一例を示し、周期Cは後述する本実施形態に係るNANDバックグラウンド処理の一例を示している。 “NAND background processing” refers to processing for NAND block management that is performed separately from the main processing for the NAND device in response to a request from the HOST side. In the present embodiment, “garbage collection (GC)”, which will be described later, corresponds, and almost no involvement by the user is required. Since it is not the main process, it is required to have little influence on the real-time task executed on the HOST side. The NAND background processing is executed by switching tasks separately from the main processing requested from the HOST side. FIG. 2 is a diagram for explaining the influence on the real-time task due to the presence or absence of NAND background processing. In FIG. 2, a cycle A shows a situation without NAND background processing, a cycle B shows an example of NAND background processing by a conventional method, and a cycle C shows an example of NAND background processing according to the present embodiment described later. ing.
「ガベージコレクション(GC)」とは、本実施形態におけるNANDバックグラウンド処理をいう。NANDフラッシュメモリへの書き込みでは、書き込みの前にNANDフラッシュメモリを消去する必要がある。NANDフラッシュメモリでは消去単位がブロック(例えば、512KB)単位のため、書き込みが可能な新規の消去済みのブロック(フリーブロック)が確保できなくなると、書き込みが不能となる。そこで、無効データの含まれているブロックの有効データを集めて新たにフリーブロックに書き直すことにより有効データを移動して、有効データを移動したブロックを無効データのみを含むブロックとして消去を行い、新たにフリーブロックを生成するガベージコレクションを行う。 “Garbage collection (GC)” refers to NAND background processing in the present embodiment. In writing to the NAND flash memory, it is necessary to erase the NAND flash memory before writing. In the NAND flash memory, the erasure unit is a block (for example, 512 KB) unit. Therefore, if a new erasable block (free block) that can be written cannot be secured, writing becomes impossible. Therefore, the valid data of the block containing invalid data is collected and rewritten to a free block to move the valid data, and the block to which the valid data is moved is erased as a block containing only invalid data. Garbage collection that generates free blocks.
「ポーリング」とは、定期的な問い合わせのことをいう。 “Polling” refers to periodic inquiries.
「eMMC規格」とは、フラッシュメモリを利用した組み込み機器向けの外部記憶装置の規格の一つである。半導体部品の分野で規格の標準化を行っている業界団体JEDEC(Joint Electron Device Engineering Council)が定めたもので、NANDフラッシュメモリと制御回路を一つのパッケージにまとめ、メモリカードの規格の一つであるMMC(マルチメディアカード、SDカードの前身)と同じインターフェースで外部と接続される。 The “eMMC standard” is one of the standards for external storage devices for embedded devices that use flash memory. JEDEC (Joint Electron Device Engineering Council), an industry group that standardizes standards in the field of semiconductor components, is a standard for memory cards, combining NAND flash memory and control circuits in one package. It is connected to the outside via the same interface as MMC (multimedia card, the predecessor of SD card)
(第1の実施形態)
本実施形態においては、メモリデバイスであるNANDデバイス側のOSから、NANDバックグラウンド処理に要する予測実行時間およびガベージコレクション対象ブロック数の情報をホストデバイスであるHOST側のOSに送る一方、HOST側のOSはリアルタイムタスク実行に影響を及ぼさないための、実行開始可能時刻と実行可能時間をNANDデバイス側OSに送信し、NANDデバイス側OSは、リアルタイムタスクがNANDデバイス側にアクセスしない隙間時間において、実行開始可能時刻に、実行可能時間分だけNANDバックグラウンド処理を実行する。図3は、本実施形態におけるNANDバックグラウンド処理を説明する図である。図3に示すように、本実施形態では、リアルタイムタスクがNANDデバイス側にアクセスしない、「隙間時間」を最大限に活用してNANDバックグラウンド処理を実行する。
(First embodiment)
In this embodiment, from the OS on the NAND device side that is a memory device, information on the estimated execution time required for NAND background processing and the number of blocks to be garbage collected is sent to the OS on the HOST side that is the host device. The OS sends the execution start time and execution time to the NAND device-side OS so that the real-time task execution is not affected, and the NAND device-side OS executes in the gap time when the real-time task does not access the NAND device side. Execute NAND background processing for the executable time at the startable time. FIG. 3 is a diagram for explaining NAND background processing in the present embodiment. As shown in FIG. 3, in this embodiment, the NAND background process is executed by maximizing the “gap time” that the real-time task does not access the NAND device side.
図4は、本発明の第1の実施形態に係るNANDバックグラウンド処理制御装置の概略構成を示すブロック図である。この装置は汎用のコンピュータ(例えばパーソナルコンピュータ(PC)等)と、同コンピュータ上で動作するソフトウェアとを用いて実現される。コンピュータとしては、CAD(Computer Aided Design)やCAE(Computer Aided Engineering)に好適なエンジニアリングワークステーション(EWS)等も含む。本実施形態はこのようなコンピュータにおいて、NANDデバイス側のOSから、NANDバックグラウンド処理に要する予測実行時間およびガベージコレクション対象ブロック数の情報をHOST側のOSに送る一方、HOST側のOSはリアルタイムタスク実行に影響を及ぼさないため、NANDバックグラウンド処理の実行開始可能時刻と実行可能時間をNANDデバイス側OSに送信するプログラムとして実施することもできる。 FIG. 4 is a block diagram showing a schematic configuration of the NAND background processing control apparatus according to the first embodiment of the present invention. This apparatus is realized using a general-purpose computer (for example, a personal computer (PC) or the like) and software operating on the computer. The computer includes an engineering workstation (EWS) suitable for CAD (Computer Aided Design) and CAE (Computer Aided Engineering). In this embodiment, in such a computer, the OS on the NAND device side sends information on the estimated execution time required for NAND background processing and the number of blocks to be garbage collected to the OS on the HOST side, while the OS on the HOST side is a real-time task. Since it does not affect execution, it can also be implemented as a program that transmits the execution start time and execution time of NAND background processing to the NAND device OS.
図4に示すように、本実施形態に係るNANDバックグラウンド処理制御装置1は、周期的にリアルタイムタスクを実行するホストデバイス(以下、HOST側と称する)10と、NAND型フラッシュメモリを含むメモリデバイス(以下、NANDデバイス側と称する)20から構成され、HOST側10とNANDデバイス側20は通信可能に構成されている。NANDデバイス側20は、メイン処理とNANDバックグラウンド処理をシリアルに実行するもので、これら2つの処理は、実行タスクを切り替えることで行われる。
As shown in FIG. 4, the NAND background
HOST側10は、HOST側リアルタイムOS11を具備している。HOST側リアルタイムOS11は、リアルタイムタスクの実行管理を行うリアルタイムスケジューラ111と、タスク切替依頼受信部112と、第1のデータ保持部113を備えている。
The
タスク切替依頼受信部112は、NANDデバイス側20における実行タスクの切替に関し、NANDデバイス側20から、タスク切替依頼の信号を受信する。第1のデータ保持部113は、リアルタイムタスクの実行に影響を及ぼさないための、NANDバックグラウンド処理の“実行開始可能時刻”およびNANDバックグラウンド処理を実行しても支障のない時間である“実行可能時間”の情報を保持している。
The task switching
NANDデバイス側20は、NANDデバイス側OS21を具備している。NANDデバイス側OS21は、ブロック管理部211と、タスク切替機能部212と、Read/Write部213と、タスク切替依頼送信部214と、第2のデータ保持部215を備えている。
The
ブロック管理部211は、NANDデバイス側20におけるブロックの状況を管理するとともに、ガベージコレクションに要する“予測実行時間”を算出するための算出ルール(例えば、係数)を設定可能となっている。
The
タスク切替機能部212は、メイン処理タスクとNANDバックグラウンド処理タスクの切替を制御する。
The task
Read/Write部213は、HOST側リアルタイムOS11からの指令を受け取り、NANDデバイスに対する書き込み、読み出しを制御する。
The Read /
タスク切替依頼送信部214は、NANDデバイスにおける実行タスクの切替の可否を問うため、HOST側10に対して、タスク切替依頼の信号を送信する。
The task switching
第2のデータ保持部215は、ガベージコレクションの対象となる“ガベージコレクション対象ブロック数”および“予測実行時間”の情報を保持している。
The second
次に、以上のように構成されたNANDバックグラウンド処理制御装置1におけるNANDバックグラウンド処理の制御の流れについて説明する。
Next, a control flow of NAND background processing in the NAND background
図5は、第1の実施形態に係るNANDバックグラウンド処理制御装置1におけるNANDバックグラウンド処理の制御の流れを示すフローチャートである。
FIG. 5 is a flowchart showing a flow of control of NAND background processing in the NAND background
まず、NANDデバイス側20は、メイン処理タスクからNANDバックグラウンド処理タスクへのタスク切替依頼の送信をHOST側10に対して行う(ステップS501)。タスク切替依頼の送信のきっかけとしては、例えば、現状のガベージコレクション対象ブロック数を所定の閾値との比較結果に応じさせることでも、HOST側OS11からNANDデバイス側OS21に対してタスク切替許可通知が送られたことを契機とすることでもよい。尚、タスク切替依頼の送信に際しては、現状のガベージコレクション対象ブロック数を基に算出したガベージコレクションに要する予測実行時間を引数とする。
First, the
次に、HOST側10では、予測実行時間を引数として、メイン処理タスクからNANDバックグラウンド処理タスクへのタスク切替依頼を受信する(ステップS502)。
Next, the
次に、HOST側10では、リアルタイムタスクの実行管理を行うリアルタイムスケジューラによってリアルタイムタスクの実行状況を勘案しながら、NAND バックグラウンド処理の実行開始可能時刻を算出する(ステップS503)。
Next, the
次いで、HOST側10では、NANDデバイス側20でNAND バックグラウンド処理に費やすことのできる実行可能時間を算出する(ステップS504)。
Next, the
続いて、HOST側10では、予測実行時間が実行可能時間よりも小さいか否かを判定する(ステップS505)。
Subsequently, the
次に、予測実行時間が実行可能時間よりも小さければ(ステップS505でYes)、HOST側10では、実際にNANDバックグラウンド処理を実行してよい時間tに予測実行時間を設定(ステップS506)し、ステップS508に移行する。ここで、実行してよい時間tは、例えば、現在の時刻から、次にリアルタイムタスクを起動するまでの空き時間を考慮して決定するのが好適である。
Next, if the predicted execution time is shorter than the executable time (Yes in step S505), the
一方、予測実行時間が実行可能時間よりも小さくなければ(ステップS505でNo)、HOST側10では、実際にNAND バックグラウンド処理を実行してよい時間tに実行可能時間を設定する(ステップS507)。
On the other hand, if the predicted execution time is not shorter than the executable time (No in step S505), the
次いで、HOST側10では、NANDデバイス側からのタスク切替依頼に対する応答を、実行開始可能時刻および実際にNANDバックグラウンド処理を実行してよい時間tを引数として、NANDデバイス側20に送信する(ステップS508)。
次に、NANDデバイス側20では、実行開始可能時刻および実際にNANDバックグラウンド処理を実行してよい時間tを引数として、タスク切替依頼に対するHOST側10からの応答を受信する(ステップS509)。
Next, on the
Next, the
次いで、NANDデバイス側20では、タスク切替が実行され、実行開始可能時刻に実行可能時間分だけNANDバックグラウンド処理タスクが実行され(ステップS510)、その後NANDバックグラウンド処理の制御を終了する。図6は、実行可能時間分だけのNANDバックグラウンド処理を説明する図である。
Next, on the
以上説明したように、本実施形態によれば、HOST側10のリアルタイムタスクに影響を与えることなく、NANDバックグラウンド処理を円滑に実行することができるようになる。
As described above, according to the present embodiment, NAND background processing can be smoothly executed without affecting the real-time task on the
(第2の実施形態)
次に、第2の実施形態について説明する。第2の実施形態に係るNANDバックグラウンド処理制御装置の概略構成は、第1の実施形態に係るNANDバックグラウンド処理制御装置の概略構成と基本的には同様である。第2の実施形態では、NANDデバイス側OS21のブロック管理部211において、NANDバックグラウンド処理の重要性(緊急度)を反映させた閾値を設定する。係る閾値は、ガベージコレクション対象ブロック数の多寡に対応させるもので、例えば、レベル1、レベル1よりも重要性(緊急度)の高いレベル2という2レベルの閾値を設定するのが好適である。
(Second Embodiment)
Next, a second embodiment will be described. The schematic configuration of the NAND background processing control apparatus according to the second embodiment is basically the same as the schematic configuration of the NAND background processing control apparatus according to the first embodiment. In the second embodiment, the
NANDバックグラウンド処理制御装置1のシステム起動時に、Host側リアルタイムOS11は、NANDデバイス側OS21に対して、リアルタイムタスク起動周期、デッドライン、NANDアクセス発生までの平均時間などの情報を送信する。リアルタイムタスク起動周期は、例えば、50msec毎にリアルタイムタスクを起動するとの情報である。デッドラインは、例えば、リアルタイムタスク起動後から、30msec以内にはNANDバックグラウンド処理を終了させる必要があるとの情報である。NANDアクセス発生までの平均時間は、例えば、リアルタイムタスク起動から約20msec後にNANDアクセスが発生すると事前に予測がつくような場合の情報である。
When the NAND background
NANDデバイス側OS21は、HOST側10から受信したリアルタイムタスク起動周期、デッドライン、NANDアクセス発生までの平均時間などの情報を基に、ガベージコレクション対象ブロック数の2レベルの閾値を算出する。NANDデバイス側OS21は、特に、リアルタイムタスクが、ある程度ゆったりした周期で行われるか、極めて小刻みな周期で実行されるかに応じ、例えば、リアルタイムタスクが極めて小刻みに実行されるようなシステムであれば、閾値レベル1とするガベージコレクション対象ブロック数を小さく設定して1度のタスク切替依頼で処理するブロック数を少なくし、リアルタイムタスクの実行に合わせて小刻みにNANDバックグラウンド処理を行うようする。一方、ある程度ゆったりした周期でリアルタイムタスクが実行されるようなシステムでは、閾値レベル1とするガベージコレクション対象ブロック数を大きめに設定し、1度のタスク切替依頼で処理するブロック数を多くする。
The NAND device-
2レベルの閾値の設定後、NANDデバイス側OS21は、閾値を設定した旨の応答をHOST側OS11に送信する。
After setting the two-level threshold value, the NAND device-
NANDデバイス側OS21は、現状のガベージコレクション対象ブロック数が、閾値レベル2を超えた場合には、予測実行時間、閾値レベル2を引数として、NANDバックグラウンド処理の実行依頼をHOST側OS11に送信する。
When the current garbage collection target block count exceeds the threshold level 2, the NAND device-
リアルタイムモード時には、HOST側OS11は周期的にリアルタイムタスクを起動しているが、閾値レベル2を引数とするNANDバックグラウンド処理の実行依頼を受信したHOST側ホストOS11は、NANDバックグラウンド処理の緊急性が高いので、直ちにリアルタイムモードを一時停止して当該モードから逸脱し、NANDデバイス側OS21に対して、NANDバックグラウンド処理の実行を許可する。NANDバックグラウンド処理完了後、HOST側ホストOS11は、再びリアルタイムタスクモードに復帰し、周期的にリアルタイムタスクを起動・実行する。
In the real-time mode, the HOST-
図7は、第2の実施形態に係るNANDバックグラウンド処理制御装置1におけるNANDバックグラウンド処理の制御の主な流れを示すフローチャートである。尚、図7に示す例では、閾値レベル1以上閾値レベル2以下の場合を示している。
FIG. 7 is a flowchart showing a main flow of control of NAND background processing in the NAND background
まず、NANDバックグラウンド処理制御装置1のシステム起動時に、HOST側リアルタイムOS11は、NANDデバイス側OS21に対して、リアルタイムタスク起動周期、デッドライン、NANDアクセス発生までの平均時間などの情報を送信する。NANDデバイス側OS21は、受信した情報を基に、ガベージコレクション対象ブロック数の2レベルの閾値を算出し、応答を送信する。
First, at the time of system startup of the NAND background
HOST側リアルタイムOS11は、リアルタイムタスクを起動し、リアルタイムタスクが終了したら、HOST側リアルタイムOS11はNANDデバイス側OS21に対してNANDバックグラウンド処理実行許可を送信する。
The HOST-side real-
NANDデバイス側OS21は、NANDバックグラウンド処理実行許可を受信すると、現状のガベージコレクション対象ブロック数が閾値レベル1よりも多いか否かを判定する(ステップS701)。
When receiving the NAND background process execution permission, the NAND device-
ガベージコレクション対象ブロック数が閾値レベル1よりも多ければ(ステップS701でYes)、NANDデバイス側20において、予測実行時間を算出する(ステップS702)。予測実行時間の算出については、例えば、閾値レベル2以下であればガベージコレクション対象ブロック数から算出し、閾値レベル1以上2以下であるならば閾値レベル1に設定したガベージコレクション対象ブロック数から算出する、のいずれでもよい。
If the number of garbage collection target blocks is larger than the threshold level 1 (Yes in step S701), the
一方、ガベージコレクション対象ブロック数が閾値レベル1よりも多くなければ(ステップS701でNo)、NANDバックグラウンド処理の必要がないとしてステップS701に戻る。 On the other hand, if the number of garbage collection target blocks is not greater than the threshold level 1 (No in step S701), the process returns to step S701 because NAND background processing is not necessary.
次に、NANDデバイス側20は、メイン処理タスクからNANDバックグラウンド処理タスクへのタスク切替依頼の送信をHOST側10に対して行う(ステップS703)。タスク切替依頼の送信に際しては、ステップS702で算出した予測実行時間を引数とする。
Next, the
次に、HOST側10では、予測実行時間を引数として、メイン処理タスクからNANDバックグラウンド処理タスクへのタスク切替依頼を受信する(ステップS704)。
Next, the
次に、HOST側10では、リアルタイムタスクの実行管理を行うリアルタイムスケジューラによってリアルタイムタスクの実行状況を勘案しながら、NANDバックグラウンド処理の実行開始可能時刻を算出する(ステップS705)。
Next, the
次いで、HOST側10では、NANDデバイス側20でNANDバックグラウンド処理に費やすことのできる実行可能時間を算出する(ステップS706)。
Next, the
続いて、HOST側10では、予測実行時間が実行可能時間よりも小さいか否かを判定する(ステップS707)。
Subsequently, the
次に、予測実行時間が実行可能時間よりも小さければ(ステップS707でYes)、HOST側10では、実際にNANDバックグラウンド処理を実行してよい時間tを予測実行時間に設定(ステップS708)し、ステップS710に移行する。
Next, if the predicted execution time is shorter than the executable time (Yes in step S707), the
一方、予測実行時間が実行可能時間よりも小さくなければ(ステップS707でNo)、HOST側10では、実際にNANDバックグラウンド処理を実行してよい時間tを実行可能時間に設定する(ステップS709)。
On the other hand, if the predicted execution time is not shorter than the executable time (No in step S707), the
次いで、HOST側10では、NANDデバイス側20からのタスク切替依頼に対する応答を、実行開始可能時刻および実際にNANDバックグラウンド処理を実行してよい時間tを引数として、NANDデバイス側20に送信する(ステップS710)。
次に、NANDデバイス側20では、実行開始可能時刻および実際にNANDバックグラウンド処理を実行してよい時間tを引数として、タスク切替依頼に対するHOST側10からの応答を受信する(ステップS711)。
Next, on the
Next, the
次いで、NANDデバイス側20では、タスク切替が実行され、NANDバックグラウンド処理タスクが実行され(ステップS712)、NANDバックグラウンド処理の制御を終了する。
Next, on the
上記したように、図6に示す例では、閾値レベル1以上閾値レベル2以下の場合で説明したが、閾値レベル2も超えた場合、NANDデバイス側20における予測実行時間の算出については、例えば、以下のいずれかのように取り扱うのが好適である。 As described above, in the example illustrated in FIG. 6, the case where the threshold level is 1 or more and the threshold level 2 or less is described. However, when the threshold level 2 is also exceeded, It is preferable to handle as follows.
(1)すべてのガベージコレクション対象ブロックに対してガベージコレクション処理を行うこととし、ガベージコレクション対象ブロック数を基に予測実行時間を算出する、
(2)HOST側OS11が、NANDデバイス側OS21から受信したタスク切替依頼通知に対する応答として、リアルタイムタスクモードを逸脱してもよい時間t1を引数として渡すことも可能とし、この時間t1を渡す場合は、時間t1内に処理できる範囲内のガベージコレクション対象ブロックを処理することとして予測実行時間を算出する。
(1) Carry out garbage collection processing on all garbage collection target blocks, and calculate the estimated execution time based on the number of garbage collection target blocks.
(2) As a response to the task switching request notification received from the NAND device-
第2の実施形態によれば、フリーブロックの不足状況を反映させた緊急度に応じたNANDバックグラウンド処理が制御できる。 According to the second embodiment, NAND background processing according to the degree of urgency reflecting the shortage of free blocks can be controlled.
(第3の実施形態)
次に、第3の実施形態について説明する。第3の実施形態に係るNANDバックグラウンド処理制御装置の概略構成は、第2の実施形態に係るNANDバックグラウンド処理制御装置1の概略構成と基本的には同様である。第3の実施形態では、HOST側OS11から提示された実行可能時間の長さに応じて、NANDデバイス側OS21では、ガベージコレクションを分割して実行する。例えば、閾値レベル1に設定したガベージコレクション対象ブロック数毎に、分けてNANDバックグラウンド処理する。
(Third embodiment)
Next, a third embodiment will be described. The schematic configuration of the NAND background processing control apparatus according to the third embodiment is basically the same as the schematic configuration of the NAND background
第3の実施形態によれば、HOST側10への応答遅延をできる限り少なくすることができる。
According to the third embodiment, the response delay to the
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
1・・・NANDバックグラウンド処理制御装置
10・・・HOST側(ホストデバイス)
11・・・HOST側リアルタイムOS
111・・・リアルタイムスケジューラ
112・・・タスク切替依頼受信部
113・・・第1のデータ保持部
20・・・NANDデバイス側(メモリデバイス)
21・・・NANDデバイス側OS
211・・・ブロック管理部
212・・・タスク切替機能部
213・・・Read/Write部
214・・・タスク切替依頼送信部
215・・・第2のデータ保持部
1 ... NAND background
11 ... HOST side real-time OS
111 ... Real-
21 ... NAND device side OS
211: Block management unit 212: Task switching function unit 213: Read / Write unit 214: Task switching request transmission unit 215: Second data holding unit
Claims (15)
前記メモリデバイス側のOSから、ガベージコレクションを行うNANDバックグラウンド処理に要する予測実行時間およびガベージコレクション対象ブロック数の情報を前記ホストデバイス側のOSに送る一方、
前記ホストデバイス側のOSはリアルタイムタスク実行に影響を及ぼさないための、前記NANDバックグラウンド処理の実行開始可能時刻と実行可能時間を前記メモリデバイス側OSに送信し、
前記メモリデバイス側OSは、リアルタイムタスクが前記メモリデバイス側にアクセスしない隙間時間において、前記実行開始可能時刻に、前記実行可能時間分だけ前記NANDバックグラウンド処理を実行するNANDバックグラウンド処理制御装置。 A host device having a real-time OS and periodically executing a real-time task; and a memory device configured to be communicable with the host device and having a NAND flash memory and a device-side OS,
From the OS on the memory device side, while sending the information of the estimated execution time and the number of garbage collection target blocks required for NAND background processing for garbage collection to the OS on the host device side,
The OS on the host device side does not affect real-time task execution, and sends the execution start time and execution time of the NAND background process to the memory device side OS,
The memory device-side OS is a NAND background processing control device that executes the NAND background processing for the executable time at the execution startable time in a gap time during which a real-time task does not access the memory device.
前記ホストデバイス側リアルタイムOSは、前記メモリデバイス側におけるガベージコレクションを行うNANDバックグラウンド処理タスクとメイン処理タスクとのタスク切替依頼の信号を前記メモリデバイス側から受信するタスク切替依頼受信部と、前記NANDバックグラウンド処理の実行開始可能時刻および前記NANDバックグラウンド処理を実行してもリアルタイムタスクに支障のない時間である実行可能時間の情報を保持する第1のデータ保持部を有し、
前記メモリデバイス側OSは、前記メモリデバイス側におけるブロックの状況を管理するとともに、前記NANDバックグラウンド処理に要する予測実行時間を算出可能なブロック管理部と、前記NANDバックグラウンド処理タスクと前記メイン処理タスクとのタスク切替依頼の信号を前記ホストデバイス側に送信するタスク切替依頼送信部と、前記NANDバックグラウンド処理におけるガベージコレクション対象ブロック数および前記NANDバックグラウンド処理に要する予測実行時間の情報を保持する第2のデータ保持部を、
備え、
前記メモリデバイス側のOSから、前記予測実行時間および前記ガベージコレクション対象ブロック数の情報を前記ホストデバイス側のOSに送る一方、前記ホストデバイス側のOSはリアルタイムタスク実行に影響を及ぼさないための、実行開始可能時刻と実行可能時間を前記メモリデバイス側OSに送信し、
前記メモリデバイス側OSは、リアルタイムタスクが前記メモリデバイス側にアクセスしない隙間時間において、前記実行開始可能時刻に、前記実行可能時間分だけ前記NANDバックグラウンド処理を実行するNANDバックグラウンド処理制御装置。 A host device having a real-time OS and periodically executing a real-time task; and a memory device configured to be communicable with the host device and having a NAND flash memory and a device-side OS,
The host device side real-time OS includes a task switching request receiving unit that receives a task switching request signal between a NAND background processing task and a main processing task that performs garbage collection on the memory device side, and the NAND A first data holding unit that holds information on an execution start time of a background process and an executable time that is a time that does not interfere with a real-time task even if the NAND background process is executed;
The OS on the memory device side manages the block status on the memory device side, and can calculate a predicted execution time required for the NAND background processing, the NAND background processing task, and the main processing task A task switching request transmission unit that transmits a task switching request signal to the host device side, and stores information on the number of blocks subject to garbage collection in the NAND background processing and the estimated execution time required for the NAND background processing. 2 data holding unit,
Prepared,
From the OS on the memory device side, the information on the predicted execution time and the number of blocks to be garbage collected is sent to the OS on the host device side, while the OS on the host device side does not affect real-time task execution. Send the execution startable time and executable time to the memory device side OS,
The memory device-side OS is a NAND background processing control device that executes the NAND background processing for the executable time at the execution startable time in a gap time during which a real-time task does not access the memory device.
前記予測実行時間が前記実行可能時間よりも小さくなければ、実際に前記NAND バックグラウンド処理を実行してよい時間tに前記実行可能時間を設定する請求項1乃至請求項6のいずれか1項に記載のNANDバックグラウンド処理制御装置。 On the host device side, if the predicted execution time is smaller than the executable time, the predicted execution time is set to a time t at which the NAND background process may actually be executed,
7. The executable time according to claim 1, wherein the executable time is set to a time t at which the NAND background processing may actually be executed if the predicted execution time is not smaller than the executable time. The NAND background processing control device described.
前記メモリデバイス側のOSは、 ガベージコレクションを行うNANDバックグラウンド処理の緊急度を示す閾値レベル1と、より緊急度の高い閾値レベル2の2段階の閾値を設定し、
ガベージコレクション対象ブロック数が閾値レベル1以上閾値レベル2以下の場合には、
前記メモリデバイス側のOSから、前記NANDバックグラウンド処理に要する予測実行時間およびガベージコレクション対象ブロック数の情報を前記ホストデバイス側のOSに送る一方、前記ホストデバイス側のOSはリアルタイムタスク実行に影響を及ぼさないための、実行開始可能時刻と実行可能時間を前記メモリデバイス側OSに送信し、
前記メモリデバイス側のOSは、リアルタイムタスクが前記メモリデバイス側にアクセスしない隙間時間において、前記実行開始可能時刻に、前記実行可能時間分だけNANDバックグラウンド処理を実行するNANDバックグラウンド処理制御装置。 A host device having a real-time OS and periodically executing a real-time task; and a memory device configured to be communicable with the host device and having a NAND flash memory and a device-side OS,
The OS memory device side, the threshold level 1 indicating the urgency of the NAND background processing for garbage collection, and set more two-stage threshold high threshold level 2 urgency,
When the number of garbage collection target blocks is threshold level 1 or more and threshold level 2 or less,
The OS on the memory device side sends the information on the estimated execution time and the number of blocks subject to garbage collection required for the NAND background processing to the OS on the host device side, while the OS on the host device side affects the real-time task execution. Send the execution start time and execution time to the memory device side OS so as not to reach,
The OS on the memory device side is a NAND background processing control device that executes NAND background processing for the executable time at the execution startable time in a gap time during which a real-time task does not access the memory device.
前記リアルタイムタスクの周期が所定値よりも大きい場合には前記閾値レベル1に設定するガベージコレクション対象ブロック数を大きめに設定して1度のタスク切替依頼で処理するブロック数を多くする請求項9に記載のNANDバックグラウンド処理制御装置。 The period of the real-time task to reduce the number of blocks to be processed by the task switching request once set smaller the number of garbage collection object block to be set to the threshold level 1 is smaller than a predetermined value,
Billing cycle before cut real-time task to increase the number of blocks to be processed by the task switching request of one degree and large set the number of garbage collection object block to be set to the threshold level 1 is larger than a predetermined value Item 10. The NAND background processing control device according to Item 9.
前記NANDバックグラウンド処理完了後、前記ホストデバイス側OSは、再びリアルタイムタスクモードに復帰し、周期的にリアルタイムタスクを起動・実行する請求項9に記載のNANDバックグラウンド処理制御装置。 If the number of blocks subject to garbage collection exceeds the threshold level 2, the real-time mode is immediately suspended to deviate from the mode, and the memory device OS is allowed to execute the NAND background processing. ,
10. The NAND background processing control apparatus according to claim 9, wherein after completion of the NAND background processing, the host device-side OS returns to the real-time task mode again and periodically starts and executes the real-time task.
(1)すべてのガベージコレクション対象ブロックに対してガベージコレクションを行うこととし、ガベージコレクション対象ブロック数を基に算出する、
(2)前記ホストデバイス側OSから、リアルタイムタスクモードを逸脱してもよい時間t1を引数として受け取り、時間t1内に処理できる範囲内のガベージコレクション対象ブロック数を基に算出する、
のいずれかによる請求項9乃至請求項11のいずれか1項に記載のNANDバックグラウンド処理制御装置。 When the number of garbage collection target blocks exceeds the threshold level 2, the calculation of the predicted execution time on the memory device side is as follows:
(1) Carry out garbage collection on all garbage collection target blocks, and calculate based on the number of garbage collection target blocks.
(2) A time t 1 that may deviate from the real-time task mode is received as an argument from the OS on the host device side, and is calculated based on the number of garbage collection target blocks within a range that can be processed within the time t 1 .
The NAND background processing control device according to any one of claims 9 to 11, according to any one of the above.
前記メモリデバイス側OSは、これらの情報を基に、前記ガベージコレクション対象ブロック数の2レベルの閾値を算出する請求項9乃至請求項14のいずれか1項に記載のNANDバックグラウンド処理制御装置。 At the time of system startup, the host device side real-time OS provides the memory device side OS with a real-time task start cycle, a deadline indicating the time required to finish the NAND background processing after the real-time task start, real-time Send information on the average time from task activation to the occurrence of access to the memory device,
The memory device side OS, based on these information, NAND background processing control apparatus according to any one of claims 9 to 14 to calculate a two-level threshold of the garbage collection object blocks.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014167517A JP6193189B2 (en) | 2014-08-20 | 2014-08-20 | NAND background processing controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014167517A JP6193189B2 (en) | 2014-08-20 | 2014-08-20 | NAND background processing controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016045563A JP2016045563A (en) | 2016-04-04 |
JP6193189B2 true JP6193189B2 (en) | 2017-09-06 |
Family
ID=55636113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014167517A Active JP6193189B2 (en) | 2014-08-20 | 2014-08-20 | NAND background processing controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6193189B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3786804A1 (en) | 2019-08-30 | 2021-03-03 | Canon Kabushiki Kaisha | Recording apparatus, image capturing apparatus, control method, and storage medium |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020149526A (en) * | 2019-03-15 | 2020-09-17 | 株式会社東芝 | Processing apparatus, processing method and program |
JP7339815B2 (en) | 2019-08-30 | 2023-09-06 | キヤノン株式会社 | Recording device, imaging device, control method, and program |
JP7418105B2 (en) | 2019-08-30 | 2024-01-19 | キヤノン株式会社 | Recording device, control method, and program |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002297443A (en) * | 2001-04-02 | 2002-10-11 | Sharp Corp | Dynamic memory management device, dynamic memory management method, computer program, recording medium with the program recorded thereon and portable terminal having these |
WO2010013445A1 (en) * | 2008-07-30 | 2010-02-04 | パナソニック株式会社 | Nonvolatile storage device, host device, nonvolatile storage system, data recording method, and program |
JP5687096B2 (en) * | 2011-03-04 | 2015-03-18 | 三菱電機株式会社 | Memory maintenance device, memory maintenance method, and data transfer device |
-
2014
- 2014-08-20 JP JP2014167517A patent/JP6193189B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3786804A1 (en) | 2019-08-30 | 2021-03-03 | Canon Kabushiki Kaisha | Recording apparatus, image capturing apparatus, control method, and storage medium |
US11334142B2 (en) | 2019-08-30 | 2022-05-17 | Canon Kabushiki Kaisha | Recording apparatus, image capturing apparatus, control method, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
JP2016045563A (en) | 2016-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11726931B2 (en) | Artificial intelligence-enabled management of storage media access | |
TWI704496B (en) | Electronic equipment, computer systems and their control methods | |
US10579269B2 (en) | Method, system, and apparatus for nested suspend and resume in a solid state drive | |
US9619378B2 (en) | Dynamically optimizing memory allocation across virtual machines | |
KR102094236B1 (en) | Storage device and computer system | |
US20130138912A1 (en) | Scheduling requests in a solid state memory device | |
US11397675B2 (en) | Storage device, computer system, and operation method of storage device configured to arbitrarily stop garbage collection | |
KR20160049200A (en) | Method for operating data storage device, mobile computing device having the same, and method of the mobile computing device | |
TWI735918B (en) | Method for performing access management of memory device, associated memory device and controller thereof, associated host device and associated electronic device | |
KR20070089460A (en) | Apparatus and method for operating non-volatile memory according to priority | |
JP6193189B2 (en) | NAND background processing controller | |
US10089266B2 (en) | Power saving feature for storage subsystems | |
CN108073358B (en) | User equipment including storage device and trimming management method of storage device | |
CN111857814A (en) | Memory controller for executing microinstructions | |
KR20100042885A (en) | Methods for operating nonvolatile memory devices | |
US11790997B2 (en) | Memory system | |
CN108572932B (en) | Multi-plane NVM command fusion method and device | |
CN108628759B (en) | Method and apparatus for out-of-order execution of NVM commands | |
KR20200129700A (en) | Controller and memory system having the same | |
US10922013B2 (en) | Suspending and resuming a read operation for a non-volatile memory | |
KR101549569B1 (en) | Method for performing garbage collection and flash memory apparatus using the method | |
WO2015170702A1 (en) | Storage device, information processing system, storage control method and program | |
JP2019160155A (en) | Information processing device, information processing method, and program | |
CN108345428B (en) | Control intensive control system and method thereof | |
KR102254101B1 (en) | Data processing system and operating method of the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160923 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170512 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170613 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170628 |
|
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: 20170711 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170809 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6193189 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |