JP2016045563A - Nandバックグラウンド処理制御装置 - Google Patents

Nandバックグラウンド処理制御装置 Download PDF

Info

Publication number
JP2016045563A
JP2016045563A JP2014167517A JP2014167517A JP2016045563A JP 2016045563 A JP2016045563 A JP 2016045563A JP 2014167517 A JP2014167517 A JP 2014167517A JP 2014167517 A JP2014167517 A JP 2014167517A JP 2016045563 A JP2016045563 A JP 2016045563A
Authority
JP
Japan
Prior art keywords
time
nand
background processing
task
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.)
Granted
Application number
JP2014167517A
Other languages
English (en)
Other versions
JP6193189B2 (ja
Inventor
玲奈 西野
Reina Nishino
玲奈 西野
浩志 野末
Hiroshi Nozue
浩志 野末
ロペス ダニエル サンゴリン
Sangorrin Lopez Daniel
ロペス ダニエル サンゴリン
良岳 小林
Yoshitaka Kobayashi
良岳 小林
真大 山田
Masahiro Yamada
真大 山田
幸大 岡本
Yukihiro Okamoto
幸大 岡本
和宏 林
Kazuhiro Hayashi
和宏 林
章浩 鈴木
Akihiro Suzuki
章浩 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2014167517A priority Critical patent/JP6193189B2/ja
Publication of JP2016045563A publication Critical patent/JP2016045563A/ja
Application granted granted Critical
Publication of JP6193189B2 publication Critical patent/JP6193189B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

【課題】リアルタイムタスクがNANDデバイスにアクセスしない隙間時間を最大限に活用して、NANDバックグラウンド処理を進める。【解決手段】リアルタイムOS11を有し、周期的にリアルタイムタスクを実行するホストデバイス10と、このホストデバイスと通信可能に構成され、NAND型フラッシュメモリとデバイス側OS21を有するメモリデバイスとを20備え、デバイス側OSから、ガベージコレクションを行うNANDバックグラウンド処理に要する予測実行時間および対象ブロック数をホスト側OSに送る一方、ホスト側OSはリアルタイムタスク実行に影響を及ぼさないための、NANDバックグラウンド処理の実行開始可能時刻と実行可能時間をデバイス側OSに送信し、デバイス側OSは、リアルタイムタスクがメモリデバイス側にアクセスしない隙間時間において、実行開始可能時刻に、実行可能時間分だけNANDバックグラウンド処理を実行する。【選択図】図4

Description

本発明の実施形態は、NANDバックグラウンド処理制御装置に関する。
NANDフラッシュメモリは、使用するに従い断片状態となり、使用可能な連続領域が減少するため、書き込み・読み出し等のメイン処理(通常NAND処理、あるいはNANDアクセスとも称する)とは別にガベージコレクションなどのNANDバックグラウンド処理を行う必要がある。
既存のリアルタイムOSとNANDフラッシュメモリで構成したシステムでは、NANDバックグラウンド処理の実行によりリアルタイムタスクの応答時間保証が困難な場合がある。
上記課題に対する現状の解決策として、eMMC規格では、HOST側におけるリアルタイムタスク実行完了の都度、HOST側がNANDデバイス側に対してNANDバックグラウンド処理の実行許可・禁止を通知することで、NANDバックグラウンド処理実行タイミングの制御を実現している。図1は、eMMC規格におけるNANDバックグラウンド処理を説明する図である。
しかしながら、NANDデバイス側OSがHOST側リアルタイムタスクの実行に影響を及ぼすという問題があった。
Embedded MultiMedia Card(e・MMC)e・MMC/Card Product Standard,High Capacity, including Reliable Write, Boot, Sleep Modes, Dual DataRate, Multiple Partitions Supports and Security Enhancement(MMCA, 4.4)JESD84-A44 MARCH 2009JEDEC SOLID STATE TECHNOLOGY ASSOCIATION
特開2006−172494号公報
本発明が解決しようとする課題は、リアルタイムタスクがNANDデバイスにアクセスしない隙間時間を最大限に活用して、NANDバックグラウンド処理を進めることのできるNANDバックグラウンド処理制御装置を提供することである。
実施形態のNANDバックグラウンド処理制御装置は、リアルタイムOSを有し、周期的にリアルタイムタスクを実行するホストデバイスと、このホストデバイスと通信可能に構成され、NAND型フラッシュメモリとデバイス側OSを有するメモリデバイスとを備え、前記メモリデバイス側のOSから、ガベージコレクションを行うNANDバックグラウンド処理に要する予測実行時間およびガベージコレクション対象ブロック数の情報を前記ホストデバイス側のOSに送る一方、前記ホストデバイス側のOSはリアルタイムタスク実行に影響を及ぼさないための、前記NANDバックグラウンド処理の実行開始可能時刻と実行可能時間を前記メモリデバイス側OSに送信し、前記メモリデバイス側OSは、リアルタイムタスクが前記メモリデバイス側にアクセスしない隙間時間において、前記実行開始可能時刻に、前記実行可能時間分だけ前記NANDバックグラウンド処理を実行する。
eMMC規格におけるNANDバックグラウンド処理を説明する図である。 NANDバックグラウンド処理の有無によるリアルタイムタスクに対する影響を説明する図である。 本実施形態におけるNANDバックグラウンド処理を説明する図である。 本発明の第1の実施形態に係るNANDバックグラウンド処理制御装置の概略構成を示すブロック図である。 第1の実施形態に係るNANDバックグラウンド処理制御装置におけるNANDバックグラウンド処理の制御の流れを示すフローチャートである。 実行可能時間分だけのNANDバックグラウンド処理を説明する図である。 第2の実施形態に係るNANDバックグラウンド処理制御装置におけるNANDバックグラウンド処理の制御の主な流れを示すフローチャートである。
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
まず、本実施形態で用いる主要な用語について説明する。
「リアルタイムタスク」とは、終了時刻(デッドライン)までに処理を完了しなければならないタスクをいう。開始予定時刻に起動され、即座に実行を開始する。
「NAND処理」とは、HOST側からの指令を受けて行われるNANDデバイスに対する書き込み・読み出しを行うメイン処理と、“NANDバックグラウンド処理”をいう。
「NANDバックグラウンド処理」とは、HOST側からの要求を受け、NANDデバイスに対してメイン処理とは別に行われるNANDブロック管理のための処理をいう。本実施形態においては、後述する“ガベージコレクション(GC)”が該当し、ユーザーによる関与が殆ど不要である。メイン処理ではないため、HOST側で実行されるリアルタイムタスクに対して影響が少ないことが求められる。NANDバックグラウンド処理は、HOST側から要求されたメイン処理とは別に、タスクを切り替えることで実行される。図2は、NANDバックグラウンド処理の有無によるリアルタイムタスクに対する影響を説明する図である。図2において、周期AはNANDバックグラウンド処理なしの状況を示し、周期Bは従来手法によるNANDバックグラウンド処理の一例を示し、周期Cは後述する本実施形態に係るNANDバックグラウンド処理の一例を示している。
「ガベージコレクション(GC)」とは、本実施形態におけるNANDバックグラウンド処理をいう。NANDフラッシュメモリへの書き込みでは、書き込みの前にNANDフラッシュメモリを消去する必要がある。NANDフラッシュメモリでは消去単位がブロック(例えば、512KB)単位のため、書き込みが可能な新規の消去済みのブロック(フリーブロック)が確保できなくなると、書き込みが不能となる。そこで、無効データの含まれているブロックの有効データを集めて新たにフリーブロックに書き直すことにより有効データを移動して、有効データを移動したブロックを無効データのみを含むブロックとして消去を行い、新たにフリーブロックを生成するガベージコレクションを行う。
「ポーリング」とは、定期的な問い合わせのことをいう。
「eMMC規格」とは、フラッシュメモリを利用した組み込み機器向けの外部記憶装置の規格の一つである。半導体部品の分野で規格の標準化を行っている業界団体JEDEC(Joint Electron Device Engineering Council)が定めたもので、NANDフラッシュメモリと制御回路を一つのパッケージにまとめ、メモリカードの規格の一つであるMMC(マルチメディアカード、SDカードの前身)と同じインターフェースで外部と接続される。
(第1の実施形態)
本実施形態においては、メモリデバイスであるNANDデバイス側のOSから、NANDバックグラウンド処理に要する予測実行時間およびガベージコレクション対象ブロック数の情報をホストデバイスであるHOST側のOSに送る一方、HOST側のOSはリアルタイムタスク実行に影響を及ぼさないための、実行開始可能時刻と実行可能時間をNANDデバイス側OSに送信し、NANDデバイス側OSは、リアルタイムタスクがNANDデバイス側にアクセスしない隙間時間において、実行開始可能時刻に、実行可能時間分だけNANDバックグラウンド処理を実行する。図3は、本実施形態におけるNANDバックグラウンド処理を説明する図である。図3に示すように、本実施形態では、リアルタイムタスクがNANDデバイス側にアクセスしない、「隙間時間」を最大限に活用してNANDバックグラウンド処理を実行する。
図4は、本発明の第1の実施形態に係るNANDバックグラウンド処理制御装置の概略構成を示すブロック図である。この装置は汎用のコンピュータ(例えばパーソナルコンピュータ(PC)等)と、同コンピュータ上で動作するソフトウェアとを用いて実現される。コンピュータとしては、CAD(Computer Aided Design)やCAE(Computer Aided Engineering)に好適なエンジニアリングワークステーション(EWS)等も含む。本実施形態はこのようなコンピュータにおいて、NANDデバイス側のOSから、NANDバックグラウンド処理に要する予測実行時間およびガベージコレクション対象ブロック数の情報をHOST側のOSに送る一方、HOST側のOSはリアルタイムタスク実行に影響を及ぼさないため、NANDバックグラウンド処理の実行開始可能時刻と実行可能時間をNANDデバイス側OSに送信するプログラムとして実施することもできる。
図4に示すように、本実施形態に係るNANDバックグラウンド処理制御装置1は、周期的にリアルタイムタスクを実行するホストデバイス(以下、HOST側と称する)10と、NAND型フラッシュメモリを含むメモリデバイス(以下、NANDデバイス側と称する)20から構成され、HOST側10とNANDデバイス側20は通信可能に構成されている。NANDデバイス側20は、メイン処理とNANDバックグラウンド処理をシリアルに実行するもので、これら2つの処理は、実行タスクを切り替えることで行われる。
HOST側10は、HOST側リアルタイムOS11を具備している。HOST側リアルタイムOS11は、リアルタイムタスクの実行管理を行うリアルタイムスケジューラ111と、タスク切替依頼受信部112と、第1のデータ保持部113を備えている。
タスク切替依頼受信部112は、NANDデバイス側20における実行タスクの切替に関し、NANDデバイス側20から、タスク切替依頼の信号を受信する。第1のデータ保持部113は、リアルタイムタスクの実行に影響を及ぼさないための、NANDバックグラウンド処理の“実行開始可能時刻”およびNANDバックグラウンド処理を実行しても支障のない時間である“実行可能時間”の情報を保持している。
NANDデバイス側20は、NANDデバイス側OS21を具備している。NANDデバイス側OS21は、ブロック管理部211と、タスク切替機能部212と、Read/Write部213と、タスク切替依頼送信部214と、第2のデータ保持部215を備えている。
ブロック管理部211は、NANDデバイス側20におけるブロックの状況を管理するとともに、ガベージコレクションに要する“予測実行時間”を算出するための算出ルール(例えば、係数)を設定可能となっている。
タスク切替機能部212は、メイン処理タスクとNANDバックグラウンド処理タスクの切替を制御する。
Read/Write部213は、HOST側リアルタイムOS11からの指令を受け取り、NANDデバイスに対する書き込み、読み出しを制御する。
タスク切替依頼送信部214は、NANDデバイスにおける実行タスクの切替の可否を問うため、HOST側10に対して、タスク切替依頼の信号を送信する。
第2のデータ保持部215は、ガベージコレクションの対象となる“ガベージコレクション対象ブロック数”および“予測実行時間”の情報を保持している。
次に、以上のように構成されたNANDバックグラウンド処理制御装置1におけるNANDバックグラウンド処理の制御の流れについて説明する。
図5は、第1の実施形態に係るNANDバックグラウンド処理制御装置1におけるNANDバックグラウンド処理の制御の流れを示すフローチャートである。
まず、NANDデバイス側20は、メイン処理タスクからNANDバックグラウンド処理タスクへのタスク切替依頼の送信をHOST側10に対して行う(ステップS501)。タスク切替依頼の送信のきっかけとしては、例えば、現状のガベージコレクション対象ブロック数を所定の閾値との比較結果に応じさせることでも、HOST側OS11からNANDデバイス側OS21に対してタスク切替許可通知が送られたことを契機とすることでもよい。尚、タスク切替依頼の送信に際しては、現状のガベージコレクション対象ブロック数を基に算出したガベージコレクションに要する予測実行時間を引数とする。
次に、HOST側10では、予測実行時間を引数として、メイン処理タスクからNANDバックグラウンド処理タスクへのタスク切替依頼を受信する(ステップS502)。
次に、HOST側10では、リアルタイムタスクの実行管理を行うリアルタイムスケジューラによってリアルタイムタスクの実行状況を勘案しながら、NAND バックグラウンド処理の実行開始可能時刻を算出する(ステップS503)。
次いで、HOST側10では、NANDデバイス側20でNAND バックグラウンド処理に費やすことのできる実行可能時間を算出する(ステップS504)。
続いて、HOST側10では、予測実行時間が実行可能時間よりも小さいか否かを判定する(ステップS505)。
次に、予測実行時間が実行可能時間よりも小さければ(ステップS505でYes)、HOST側10では、実際にNANDバックグラウンド処理を実行してよい時間tに予測実行時間を設定(ステップS506)し、ステップS508に移行する。ここで、実行してよい時間tは、例えば、現在の時刻から、次にリアルタイムタスクを起動するまでの空き時間を考慮して決定するのが好適である。
一方、予測実行時間が実行可能時間よりも小さくなければ(ステップS505でNo)、HOST側10では、実際にNAND バックグラウンド処理を実行してよい時間tに実行可能時間を設定する(ステップS507)。
次いで、HOST側10では、NANDデバイス側からのタスク切替依頼に対する応答を、実行開始可能時刻および実際にNANDバックグラウンド処理を実行してよい時間tを引数として、NANDデバイス側20に送信する(ステップS508)。
次に、NANDデバイス側20では、実行開始可能時刻および実際にNANDバックグラウンド処理を実行してよい時間tを引数として、タスク切替依頼に対するHOST側10からの応答を受信する(ステップS509)。
次いで、NANDデバイス側20では、タスク切替が実行され、実行開始可能時刻に実行可能時間分だけNANDバックグラウンド処理タスクが実行され(ステップS510)、その後NANDバックグラウンド処理の制御を終了する。図6は、実行可能時間分だけのNANDバックグラウンド処理を説明する図である。
以上説明したように、本実施形態によれば、HOST側10のリアルタイムタスクに影響を与えることなく、NANDバックグラウンド処理を円滑に実行することができるようになる。
(第2の実施形態)
次に、第2の実施形態について説明する。第2の実施形態に係るNANDバックグラウンド処理制御装置の概略構成は、第1の実施形態に係るNANDバックグラウンド処理制御装置の概略構成と基本的には同様である。第2の実施形態では、NANDデバイス側OS21のブロック管理部211において、NANDバックグラウンド処理の重要性(緊急度)を反映させた閾値を設定する。係る閾値は、ガベージコレクション対象ブロック数の多寡に対応させるもので、例えば、レベル1、レベル1よりも重要性(緊急度)の高いレベル2という2レベルの閾値を設定するのが好適である。
NANDバックグラウンド処理制御装置1のシステム起動時に、Host側リアルタイムOS11は、NANDデバイス側OS21に対して、リアルタイムタスク起動周期、デッドライン、NANDアクセス発生までの平均時間などの情報を送信する。リアルタイムタスク起動周期は、例えば、50msec毎にリアルタイムタスクを起動するとの情報である。デッドラインは、例えば、リアルタイムタスク起動後から、30msec以内にはNANDバックグラウンド処理を終了させる必要があるとの情報である。NANDアクセス発生までの平均時間は、例えば、リアルタイムタスク起動から約20msec後にNANDアクセスが発生すると事前に予測がつくような場合の情報である。
NANDデバイス側OS21は、HOST側10から受信したリアルタイムタスク起動周期、デッドライン、NANDアクセス発生までの平均時間などの情報を基に、ガベージコレクション対象ブロック数の2レベルの閾値を算出する。NANDデバイス側OS21は、特に、リアルタイムタスクが、ある程度ゆったりした周期で行われるか、極めて小刻みな周期で実行されるかに応じ、例えば、リアルタイムタスクが極めて小刻みに実行されるようなシステムであれば、閾値レベル1とするガベージコレクション対象ブロック数を小さく設定して1度のタスク切替依頼で処理するブロック数を少なくし、リアルタイムタスクの実行に合わせて小刻みにNANDバックグラウンド処理を行うようする。一方、ある程度ゆったりした周期でリアルタイムタスクが実行されるようなシステムでは、閾値レベル1とするガベージコレクション対象ブロック数を大きめに設定し、1度のタスク切替依頼で処理するブロック数を多くする。
2レベルの閾値の設定後、NANDデバイス側OS21は、閾値を設定した旨の応答をHOST側OS11に送信する。
NANDデバイス側OS21は、現状のガベージコレクション対象ブロック数が、閾値レベル2を超えた場合には、予測実行時間、閾値レベル2を引数として、NANDバックグラウンド処理の実行依頼をHOST側OS11に送信する。
リアルタイムモード時には、HOST側OS11は周期的にリアルタイムタスクを起動しているが、閾値レベル2を引数とするNANDバックグラウンド処理の実行依頼を受信したHOST側ホストOS11は、NANDバックグラウンド処理の緊急性が高いので、直ちにリアルタイムモードを一時停止して当該モードから逸脱し、NANDデバイス側OS21に対して、NANDバックグラウンド処理の実行を許可する。NANDバックグラウンド処理完了後、HOST側ホストOS11は、再びリアルタイムタスクモードに復帰し、周期的にリアルタイムタスクを起動・実行する。
図7は、第2の実施形態に係るNANDバックグラウンド処理制御装置1におけるNANDバックグラウンド処理の制御の主な流れを示すフローチャートである。尚、図7に示す例では、閾値レベル1以上閾値レベル2以下の場合を示している。
まず、NANDバックグラウンド処理制御装置1のシステム起動時に、HOST側リアルタイムOS11は、NANDデバイス側OS21に対して、リアルタイムタスク起動周期、デッドライン、NANDアクセス発生までの平均時間などの情報を送信する。NANDデバイス側OS21は、受信した情報を基に、ガベージコレクション対象ブロック数の2レベルの閾値を算出し、応答を送信する。
HOST側リアルタイムOS11は、リアルタイムタスクを起動し、リアルタイムタスクが終了したら、HOST側リアルタイムOS11はNANDデバイス側OS21に対してNANDバックグラウンド処理実行許可を送信する。
NANDデバイス側OS21は、NANDバックグラウンド処理実行許可を受信すると、現状のガベージコレクション対象ブロック数が閾値レベル1よりも多いか否かを判定する(ステップS701)。
ガベージコレクション対象ブロック数が閾値レベル1よりも多ければ(ステップS701でYes)、NANDデバイス側20において、予測実行時間を算出する(ステップS702)。予測実行時間の算出については、例えば、閾値レベル2以下であればガベージコレクション対象ブロック数から算出し、閾値レベル1以上2以下であるならば閾値レベル1に設定したガベージコレクション対象ブロック数から算出する、のいずれでもよい。
一方、ガベージコレクション対象ブロック数が閾値レベル1よりも多くなければ(ステップS701でNo)、NANDバックグラウンド処理の必要がないとしてステップS701に戻る。
次に、NANDデバイス側20は、メイン処理タスクからNANDバックグラウンド処理タスクへのタスク切替依頼の送信をHOST側10に対して行う(ステップS703)。タスク切替依頼の送信に際しては、ステップS702で算出した予測実行時間を引数とする。
次に、HOST側10では、予測実行時間を引数として、メイン処理タスクからNANDバックグラウンド処理タスクへのタスク切替依頼を受信する(ステップS704)。
次に、HOST側10では、リアルタイムタスクの実行管理を行うリアルタイムスケジューラによってリアルタイムタスクの実行状況を勘案しながら、NANDバックグラウンド処理の実行開始可能時刻を算出する(ステップS705)。
次いで、HOST側10では、NANDデバイス側20でNANDバックグラウンド処理に費やすことのできる実行可能時間を算出する(ステップS706)。
続いて、HOST側10では、予測実行時間が実行可能時間よりも小さいか否かを判定する(ステップS707)。
次に、予測実行時間が実行可能時間よりも小さければ(ステップS707でYes)、HOST側10では、実際にNANDバックグラウンド処理を実行してよい時間tを予測実行時間に設定(ステップS708)し、ステップS710に移行する。
一方、予測実行時間が実行可能時間よりも小さくなければ(ステップS707でNo)、HOST側10では、実際にNANDバックグラウンド処理を実行してよい時間tを実行可能時間に設定する(ステップS709)。
次いで、HOST側10では、NANDデバイス側20からのタスク切替依頼に対する応答を、実行開始可能時刻および実際にNANDバックグラウンド処理を実行してよい時間tを引数として、NANDデバイス側20に送信する(ステップS710)。
次に、NANDデバイス側20では、実行開始可能時刻および実際にNANDバックグラウンド処理を実行してよい時間tを引数として、タスク切替依頼に対するHOST側10からの応答を受信する(ステップS711)。
次いで、NANDデバイス側20では、タスク切替が実行され、NANDバックグラウンド処理タスクが実行され(ステップS712)、NANDバックグラウンド処理の制御を終了する。
上記したように、図6に示す例では、閾値レベル1以上閾値レベル2以下の場合で説明したが、閾値レベル2も超えた場合、NANDデバイス側20における予測実行時間の算出については、例えば、以下のいずれかのように取り扱うのが好適である。
(1)すべてのガベージコレクション対象ブロックに対してガベージコレクション処理を行うこととし、ガベージコレクション対象ブロック数を基に予測実行時間を算出する、
(2)HOST側OS11が、NANDデバイス側OS21から受信したタスク切替依頼通知に対する応答として、リアルタイムタスクモードを逸脱してもよい時間tを引数として渡すことも可能とし、この時間tを渡す場合は、時間t内に処理できる範囲内のガベージコレクション対象ブロックを処理することとして予測実行時間を算出する。
第2の実施形態によれば、フリーブロックの不足状況を反映させた緊急度に応じたNANDバックグラウンド処理が制御できる。
(第3の実施形態)
次に、第3の実施形態について説明する。第3の実施形態に係るNANDバックグラウンド処理制御装置の概略構成は、第2の実施形態に係るNANDバックグラウンド処理制御装置1の概略構成と基本的には同様である。第3の実施形態では、HOST側OS11から提示された実行可能時間の長さに応じて、NANDデバイス側OS21では、ガベージコレクションを分割して実行する。例えば、閾値レベル1に設定したガベージコレクション対象ブロック数毎に、分けてNANDバックグラウンド処理する。
第3の実施形態によれば、HOST側10への応答遅延をできる限り少なくすることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1・・・NANDバックグラウンド処理制御装置
10・・・HOST側(ホストデバイス)
11・・・HOST側リアルタイムOS
111・・・リアルタイムスケジューラ
112・・・タスク切替依頼受信部
113・・・第1のデータ保持部
20・・・NANDデバイス側(メモリデバイス)
21・・・NANDデバイス側OS
211・・・ブロック管理部
212・・・タスク切替機能部
213・・・Read/Write部
214・・・タスク切替依頼送信部
215・・・第2のデータ保持部

Claims (16)

  1. リアルタイムOSを有し、周期的にリアルタイムタスクを実行するホストデバイスと、このホストデバイスと通信可能に構成され、NAND型フラッシュメモリとデバイス側OSを有するメモリデバイスとを備え、
    前記メモリデバイス側のOSから、ガベージコレクションを行うNANDバックグラウンド処理に要する予測実行時間およびガベージコレクション対象ブロック数の情報を前記ホストデバイス側のOSに送る一方、
    前記ホストデバイス側のOSはリアルタイムタスク実行に影響を及ぼさないための、前記NANDバックグラウンド処理の実行開始可能時刻と実行可能時間を前記メモリデバイス側OSに送信し、
    前記メモリデバイス側OSは、リアルタイムタスクが前記メモリデバイス側にアクセスしない隙間時間において、前記実行開始可能時刻に、前記実行可能時間分だけ前記NANDバックグラウンド処理を実行するNANDバックグラウンド処理制御装置。
  2. リアルタイムOSを有し、周期的にリアルタイムタスクを実行するホストデバイスと、このホストデバイスと通信可能に構成され、NAND型フラッシュメモリとデバイス側OSを有するメモリデバイスとを備え、
    前記ホストデバイス側リアルタイムOSは、前記メモリデバイス側におけるガベージコレクションを行うNANDバックグラウンド処理タスクとメイン処理タスクとのタスク切替依頼の信号を前記メモリデバイス側から受信するタスク切替依頼受信部と、前記NANDバックグラウンド処理の実行開始可能時刻および前記NANDバックグラウンド処理を実行してもリアルタイムタスクに支障のない時間である実行可能時間の情報を保持する第1のデータ保持部を有し、
    前記メモリデバイス側OSは、前記メモリデバイス側におけるブロックの状況を管理するとともに、前記NANDバックグラウンド処理に要する予測実行時間を算出可能なブロック管理部と、前記NANDバックグラウンド処理タスクと前記メイン処理タスクとのタスク切替依頼の信号を前記ホストデバイス側に送信するタスク切替依頼送信部と、前記NANDバックグラウンド処理におけるガベージコレクション対象ブロック数および前記NANDバックグラウンド処理に要する予測実行時間の情報を保持する第2のデータ保持部を、
    備え、
    前記メモリデバイス側のOSから、前記予測実行時間および前記ガベージコレクション対象ブロック数の情報を前記ホストデバイス側のOSに送る一方、前記ホストデバイス側のOSはリアルタイムタスク実行に影響を及ぼさないための、実行開始可能時刻と実行可能時間を前記メモリデバイス側OSに送信し、
    前記メモリデバイス側OSは、リアルタイムタスクが前記メモリデバイス側にアクセスしない隙間時間において、前記実行開始可能時刻に、前記実行可能時間分だけ前記NANDバックグラウンド処理を実行するNANDバックグラウンド処理制御装置。
  3. 前記ブロック管理部は、前記予測実行時間を算出するための算出ルールを設定可能となっている請求項2に記載のNANDバックグラウンド処理制御装置。
  4. 前記メモリデバイス側から前記ホストデバイス側へのタスク切替依頼の送信は、現状の前記ガベージコレクション対象ブロック数を所定の値との比較結果に応じることを契機とする請求項2または請求項3に記載のNANDバックグラウンド処理制御装置。
  5. 前記メモリデバイス側から前記ホストデバイス側へのタスク切替依頼の送信は、前記ホストデバイス側OSから前記メモリデバイス側OSに対してタスク切替許可通知が送られたことを契機とする請求項2乃至請求項3のいずれか1項に記載のNANDバックグラウンド処理制御装置。
  6. 前記タスク切替依頼の送信に際しては、現状の前記ガベージコレクション対象ブロック数を基に算出したガベージコレクションに要する予測実行時間を引数とする請求項2乃至請求項5のいずれか1項に記載のNANDバックグラウンド処理制御装置。
  7. 前記ホストデバイス側では、前記予測実行時間が前記実行可能時間よりも小さければ、実際に前記NANDバックグラウンド処理を実行してよい時間tに前記予測実行時間を設定し、
    前記予測実行時間が前記実行可能時間よりも小さくなければ、実際に前記NAND バックグラウンド処理を実行してよい時間tに前記実行可能時間を設定する請求項1乃至請求項6のいずれか1項に記載のNANDバックグラウンド処理制御装置。
  8. 前記時間tは、現在の時刻から、次にリアルタイムタスクを起動するまでの空き時間を考慮して決定する請求項7に記載のNANDバックグラウンド処理制御装置。
  9. リアルタイムOSを有し、周期的にリアルタイムタスクを実行するホストデバイスと、このホストデバイスと通信可能に構成され、NAND型フラッシュメモリとデバイス側OSを有するメモリデバイスとを備え、
    メモリデバイス側OSは、 ガベージコレクションを行うNANDバックグラウンド処理の緊急度を示す閾値レベル1と、より緊急度の高い閾値レベル2の2段階の閾値を設定し、
    閾値レベル1以上閾値レベル2以下の場合には、
    前記メモリデバイス側のOSから、前記NANDバックグラウンド処理に要する予測実行時間およびガベージコレクション対象ブロック数の情報を前記ホストデバイス側のOSに送る一方、前記ホストデバイス側のOSはリアルタイムタスク実行に影響を及ぼさないための、実行開始可能時刻と実行可能時間を前記メモリデバイス側OSに送信し、
    前記メモリデバイス側OSは、リアルタイムタスクが前記メモリデバイス側にアクセスしない隙間時間において、前記実行開始可能時刻に、前記実行可能時間分だけNANDバックグラウンド処理を実行するNANDバックグラウンド処理制御装置。
  10. 前記リアルタイムタスクの周期が所定値よりも小さい場合には閾値レベル1とするガベージコレクション対象ブロック数を小さく設定して1度のタスク切替依頼で処理するブロック数を少なくし、
    前記ガベージコレクションリアルタイムタスクの周期が所定値よりも大きい場合には閾値レベル1とするガベージコレクション対象ブロック数を大きめに設定して1度のタスク切替依頼で処理するブロック数を多くする請求項9に記載のNANDバックグラウンド処理制御装置。
  11. 前記閾値レベル2を超えた場合には、直ちにリアルタイムモードを一時停止して当該モードから逸脱し、前記メモリデバイス側OSに対して、前記NANDバックグラウンド処理の実行を許可し、
    前記NANDバックグラウンド処理完了後、前記ホストデバイス側OSは、再びリアルタイムタスクモードに復帰し、周期的にリアルタイムタスクを起動・実行する請求項9に記載のNANDバックグラウンド処理制御装置。
  12. 前記予測実行時間の算出については、前記閾値レベル2以下であればガベージコレクション対象ブロック数から算出し、前記閾値レベル1以上2以下であるならば前記閾値レベル1に設定したガベージコレクション対象ブロック数から算出する請求項9に記載のNANDバックグラウンド処理制御装置。
  13. 前記閾値レベル2も超えた場合、前記メモリデバイス側における前記予測実行時間の算出は、
    (1)すべてのガベージコレクション対象ブロックに対してガベージコレクションを行うこととし、ガベージコレクション対象ブロック数を基に算出する、
    (2)前記ホストデバイス側OSから、リアルタイムタスクモードを逸脱してもよい時間tを引数として受け取り、時間t内に処理できる範囲内のガベージコレクション対象ブロック数を基に算出する、
    のいずれかによる請求項9乃至請求項11のいずれか1項に記載のNANDバックグラウンド処理制御装置。
  14. 前記ホストデバイス側OSから提示された実行可能時間の長さに応じて、前記メモリデバイス側OSでは、ガベージコレクションを分割して実行する請求項9乃至請求項13のいずれか1項に記載のNANDバックグラウンド処理制御装置。
  15. 前記閾値レベル1に設定したガベージコレクション対象ブロック数毎に、分割してNANDバックグラウンド処理する請求項14に記載のNANDバックグラウンド処理制御装置。
  16. システム起動時に、前記ホストデバイス側リアルタイムOSは、前記メモリデバイス側OSに対して、リアルタイムタスクの起動周期、リアルタイムタスク起動後から前記NANDバックグラウンド処理を終了させる必要のある時間を表すデッドライン、リアルタイムタスク起動から前記メモリデバイスへのアクセス発生までの平均時間の情報を送信し、
    前記メモリデバイス側OSは、これらの情報を基に、前記ガベージコレクション対象ブロック数の2レベルの閾値を算出する請求項9乃至請求項15のいずれか1項に記載のNANDバックグラウンド処理制御装置。
JP2014167517A 2014-08-20 2014-08-20 Nandバックグラウンド処理制御装置 Active JP6193189B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014167517A JP6193189B2 (ja) 2014-08-20 2014-08-20 Nandバックグラウンド処理制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014167517A JP6193189B2 (ja) 2014-08-20 2014-08-20 Nandバックグラウンド処理制御装置

Publications (2)

Publication Number Publication Date
JP2016045563A true JP2016045563A (ja) 2016-04-04
JP6193189B2 JP6193189B2 (ja) 2017-09-06

Family

ID=55636113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014167517A Active JP6193189B2 (ja) 2014-08-20 2014-08-20 Nandバックグラウンド処理制御装置

Country Status (1)

Country Link
JP (1) JP6193189B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149526A (ja) * 2019-03-15 2020-09-17 株式会社東芝 処理装置、処理方法及びプログラム
JP7339815B2 (ja) 2019-08-30 2023-09-06 キヤノン株式会社 記録装置、撮像装置、制御方法、及びプログラム
JP7418105B2 (ja) 2019-08-30 2024-01-19 キヤノン株式会社 記録装置、制御方法、及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3786804B1 (en) 2019-08-30 2023-04-05 Canon Kabushiki Kaisha Recording apparatus, image capturing apparatus, control method, and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297443A (ja) * 2001-04-02 2002-10-11 Sharp Corp 動的メモリ管理装置と動的メモリ管理方法とコンピュータプログラムとこれを記録した記録媒体およびこれらを備えた携帯端末
WO2010013445A1 (ja) * 2008-07-30 2010-02-04 パナソニック株式会社 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム
JP2012185653A (ja) * 2011-03-04 2012-09-27 Mitsubishi Electric Corp メモリ保守装置及びメモリ保守方法並びにデータ転送装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297443A (ja) * 2001-04-02 2002-10-11 Sharp Corp 動的メモリ管理装置と動的メモリ管理方法とコンピュータプログラムとこれを記録した記録媒体およびこれらを備えた携帯端末
WO2010013445A1 (ja) * 2008-07-30 2010-02-04 パナソニック株式会社 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム
JP2012185653A (ja) * 2011-03-04 2012-09-27 Mitsubishi Electric Corp メモリ保守装置及びメモリ保守方法並びにデータ転送装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149526A (ja) * 2019-03-15 2020-09-17 株式会社東芝 処理装置、処理方法及びプログラム
JP2022121525A (ja) * 2019-03-15 2022-08-19 株式会社東芝 処理装置、処理方法及びプログラム
US11693681B2 (en) 2019-03-15 2023-07-04 Kabushiki Kaisha Toshiba Processing apparatus, processing method, and computer program product for controlling timing of data accessing to a memory
JP7354361B2 (ja) 2019-03-15 2023-10-02 株式会社東芝 処理装置、処理方法及びプログラム
JP7339815B2 (ja) 2019-08-30 2023-09-06 キヤノン株式会社 記録装置、撮像装置、制御方法、及びプログラム
JP7418105B2 (ja) 2019-08-30 2024-01-19 キヤノン株式会社 記録装置、制御方法、及びプログラム

Also Published As

Publication number Publication date
JP6193189B2 (ja) 2017-09-06

Similar Documents

Publication Publication Date Title
US11726931B2 (en) Artificial intelligence-enabled management of storage media access
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 (ko) 스토리지 디바이스 및 컴퓨터 시스템
CN107885456B (zh) 减少io命令访问nvm的冲突
US20180150242A1 (en) Controller and storage device for efficient buffer allocation, and operating method of the storage device
US10303371B2 (en) Data storage device that stabilizes write latency
US20110010490A1 (en) Solid state drive and related method of operation
TWI735918B (zh) 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置
KR20160049200A (ko) 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
US20200379684A1 (en) Predictive Data Transfer based on Availability of Media Units in Memory Sub-Systems
KR20070089460A (ko) 우선 순위에 따른 비휘발성 메모리의 연산 처리 장치 및방법
KR20130084988A (ko) 플래시 메모리를 기반으로 하는 저장 장치 및 호스트를 포함하는 메모리 시스템 및 모바일 장치
JP6193189B2 (ja) Nandバックグラウンド処理制御装置
US20190303289A1 (en) Storage device, computer system, and operation method of storage device
CN108073358B (zh) 包括存储设备的用户设备及存储设备的修剪管理方法
WO2015117493A1 (zh) 一种flash的控制方法和控制器
US11494094B2 (en) Storage system and method of dynamically managing power of storage system according to a monitored operating state of a computing device
KR20100042885A (ko) 비휘발성 메모리 장치의 동작 방법
US20230244394A1 (en) Gradually Reclaim Storage Space Occupied by a Proof of Space Plot in a Solid State Drive
US10922013B2 (en) Suspending and resuming a read operation for a non-volatile memory
KR20200129700A (ko) 컨트롤러 및 이를 포함하는 메모리 시스템
CN107885667B (zh) 降低读命令处理延迟的方法与装置
KR101549569B1 (ko) 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
WO2015170702A1 (ja) ストレージ装置と情報処理システム及びストレージ制御方法とプログラム

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 Request for written amendment filed

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