説明

記憶装置による内部動作の管理

【課題】記憶装置によりこの記憶装置の内部動作を処理する方法、および、この方法を用いる記憶装置を提供する。
【解決手段】この方法によれば、ホスト装置により送出された1つ以上の記憶コマンドに関連するコマンドの統合シーケンスが、特定の状態(すなわち、「アクティブ」状態または「非アクティブ」状態)にあるか否か、または、「アクティブ」から「非アクティブ」へ、または「非アクティブ」から「アクティブ」へ遷移しているかを記憶装置に自律的に(すなわち、ホスト装置の介入なしに)判断させる。判断された状態または遷移に応じて、記憶装置はシーケンス外(「ESQ」)動作を実行させないようにするのか、シーケンス内(「ISQ」)動作の実行を許可するのか、または、ISQ動作を実行させないようにするのか、ESQ動作の実行を許可するのかを判断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、記憶装置に関し、特に、記憶装置により内部動作の自律管理を可能にする方法、および、この方法を用いる記憶装置に関する。
【0002】
先に提出された出願の参照
本願は、2007年5月28日に出願された米国仮特許出願第60/940,426号(特許文献1)の利益を主張するものであり、その内容はその全体が本願明細書において参照により援用されている。
【背景技術】
【0003】
本願明細書では、「コマンドの統合シーケンス」(「INSQ」)とは、MP3プレーヤ、デジタルカメラまたはコンピュータシステム(例えば、ラップトップ)のようなホスト装置から記憶装置へ送信されるコマンドの反復シーケンスを意味し、このシーケンスまたは記憶装置は、パケットサイズ、タイムスタンプ、音声または映像再生期間、データ読み取りまたはデータ書き込み速度、アドレスアクセスまたはアドレス連続性などのような特徴、メタデータまたは属性と関連のある特定の用途、例えば、音楽の再生、映像の記録、画像の獲得などと関連する。ホスト装置はINSQを記憶装置へ送信することがあり、この記憶装置では、INSQは、内部動作が記憶装置により現在実行されているか否か、または、進行中であるか否かにかかわらず動作する。このことは、記憶装置の性能および、全体としての記憶装置−ホストシステムの性能に悪影響を及ぼすことがある。
【0004】
INSQが実行されている間(すなわち、INSQが「アクティブ」、「オン」または「進行中」である間)、記憶装置の動作の一部の実行を回避すべきであり、その一方で、以下で説明するように、INSQの実行中、記憶装置のその他の動作を有益または必須とすることがある。本願明細書において、INSQではないコマンドのシーケンスを「コマンドの散発的なシーケンス」と称する。すなわち、「コマンドの散発的なシーケンス」とは、記憶装置により、記憶装置に「理解されている」コマンドのシーケンスの一部として見なされないコマンドを意味し、定義されていることにより記憶装置に理解されているINSQとは異なる。
【0005】
コンピュータシステム内の記憶装置は、記憶サービスを提供すると見なされることがあり、従って、記憶装置がバックグラウンドタスクを実行し、記憶装置の正常な動作に必要とされる「ハウスキーピング」動作のような内部動作を実行する場合であっても、記憶装置は、優れたサービスの質(「QoS」)を提供すると期待されている。
【0006】
コンピュータシステムにより与えられたサービス(音声ファイルの再生、画像の獲得、データファイルのコピーなど)の状況に応じて、「バックグラウンド」動作として記憶装置により実行可能である動作は、第1連の内部動作および第2連の内部動作に属することができる。これ以降、第1連の内部動作をシーケンス外(「ESQ」)動作群と称し、第2連の内部動作をシーケンス内(「ISQ」)動作群と称する。
【0007】
本願明細書では、「ESQ動作」とは、ESQ動作が記憶装置の性能に悪影響を及ぼすか、ESQ動作が記憶装置の性能と干渉するか、または、ESQ動作が別の方法で記憶装置の性能を劣化させるので、INSQが進行中である場合に回避すべき記憶動作(例えば、静的な消耗の均等化)を意味する。例えば、記憶装置から音楽ファイルが再生されている間、静的な消耗の均等化動作を実行しないことは有益である。
【0008】
本願明細書では、「ISQ動作」とは、ISQ動作が記憶装置の全体的な動作に肯定的に寄与するか、少なくともISQ動作がINSQの実行と干渉しないか、または、ISQ動作が別の方法でINSQの実行に悪影響を及ぼさないので、INSQの実行中に実行することが許可または可能にされた記憶または記憶に関する動作を意味する。ある場合には、このようなISQ動作は実行されると、記憶装置自体の内部効率、または、全体として、記憶装置が含まれる記憶システムの効率を著しく改善する。次のコマンドまたは予測されたコマンドに備えて行われる動作(例えば、次のデータのキャッシング)は典型的なISQ動作である。サービスの質(「QoS」)および全体的な記憶装置の効率に関する限り、ISQ動作は肯定的に寄与するので望ましくさえある。
【0009】
記憶装置について、ESQ動作は、デジタルデータ記憶管理の分野において既知の動作であるキャッシングデータのアーカイブ保存、静的な消耗の均等化、(フラッシュメモリ装置の分野で「ガーベッジコレクション」としても既知である)フラッシュフォールディング、高耐久化などのような動作を含むことがある。ISQ動作は、デジタルデータ記憶管理の分野において既知の動作であるフラッシュ管理動作、送信/受信データの暗号化/暗号化解除、送信/受信データの圧縮/解凍、アンチウィルス動作、デフラグ動作、高耐久化、データのバックアップ、データフォーマットの変更などを含むことがある。従って、特に、所定の動作がISQであるか、ESQであるかは、進行中の動作(例えば、INSQ)に依存することがある。1つのINSQが生じている間、同じ動作をISQとすることがあり、別のINSQが生じている間、同じ動作をESQとすることがある。
【0010】
記憶装置の性能(例えば、性能に関して、電源障害の耐性、安定したビットレートなど)を改善するため、INSQが進行中にある間にESQ動作が実行されないようにESQ動作の実行はINSQの実行と協調する必要がある。その理由は、INSQが進行中にある間にESQ動作を実行することが記憶装置の性能に悪影響を及ぼし、結果として、例えば、高い遅延、データ損失またはデータ破壊を生じさせることがあるためである。INSQが終了し、従って、ESQ動作が安全に開始できる時をホスト装置だけが識別できるという仮定により、従来、ESQ動作はホスト装置により開始されている。
【0011】
1つの従来技術の解決策では、現在のINSQが終了していること、または終了したこと、および、当面の間、または、例えば次の数秒の間、新たなINSQがスケジュールされていないことを装置のホストが記憶装置に報告した後だけ、ESQ動作を記憶装置により開始させる。言い換えれば、従来の記憶装置がESQ動作を開始できるにしても、記憶装置は、依然として、記憶装置がESQ動作を開始できるというホスト装置からの確認を必要とする。この制約は、ESQ動作がアクティブ状態のホスト装置のINSQと衝突しないように記憶装置の設計者にESQ動作をスケジュールさせる記憶装置の設計者とホスト装置の設計者との協力を要求する。
【0012】
別の従来技術の解決策では、ESQ動作を記憶装置により自律的に開始させるが、ESQ動作はホスト装置と同調されない、すなわち、ESQ動作は誤ったタイミング、すなわちINSQが進行中にある時点、従って、INSQがESQと干渉すべきでない時点で記憶装置により実行されることがある。
【特許文献1】米国仮特許出願第60/940,426号
【発明の開示】
【発明が解決しようとする課題】
【0013】
従って、記憶装置が含まれる記憶システムにより提供されるサービスが変化する状況下、最初に記憶装置により計画またはスケジュールされた記憶バックグラウンド動作をいつ、どのような場合に実行できるか、また、いつ、どのような場合に、どの動作を、現在実行されているINSQが終了するまで防止、一時停止または延期すべきか、さらに、いつ、どのような場合に、どの動作をINSQの実行中に実行できるか、または実行すべきかを記憶装置が自律的に識別することができることは有益である。
【課題を解決するための手段】
【0014】
本発明の以下の実施形態および態様は、システム、ツールおよび方法と併せて説明および例示され、これらは一例であって、本発明の範囲を限定するものではない。
【0015】
本開示によれば、記憶装置は、INSQがいつ、どのような場合に特定の状態(すなわち、「アクティブ」状態または「非アクティブ」状態)にあるか、または、状態を「アクティブ」から「非アクティブ」へ、または「非アクティブ」から「アクティブ」へ変化させているかをホスト装置の介入なしに自律的に検出する。INSQの現在の状態またはその遷移に応じて、記憶装置は、ESQ動作またはISQ動作の実行を回避または一時停止するか、または実行させないようにし、あるいは、ESQ動作またはISQ動作の実行を許可するか、または可能にする。
【0016】
記憶装置により記憶装置の内部動作を処理する方法を提供する。この方法は、a)コマンドの1つ以上のINSQを定義するステップであって、コマンドの1つ以上の各統合シーケンスが「アクティブ」状態および「非アクティブ」状態となることができるステップと、b)第1連の内部動作(「ESQ」)および第2連の内部動作(「ISQ」)をコマンドの1つ以上の各統合シーケンスと関連付けるステップであって、コマンドのそれぞれの統合シーケンスが「アクティブ」状態にある間、第1連の内部動作が、実行すべきでない動作であり、コマンドのそれぞれの統合シーケンスが「アクティブ」状態にある間、第2連の内部動作が、実行可能にされる動作であるステップと、c)ホスト装置からコマンドを受信するステップと、d)受信されたコマンドから(場合によっては、以前に受信されたコマンドから)導き出された情報に基づいて、コマンドの1つ以上の統合シーケンスの1つが「アクティブ」状態にあるか否か、または、「非アクティブ」状態から「アクティブ」状態へ遷移しているか否かを判断するステップと、e)コマンドの1つ以上の統合シーケンスの1つが「アクティブ」状態にあるか、または、「非アクティブ」状態から「アクティブ」状態へ遷移している場合、記憶装置は、コマンドのそれぞれの統合シーケンスと関連する第1連の内部動作のいずれの動作も実行させないようにするステップとを含む。
【0017】
コマンドの1つ以上の統合シーケンスの1つが「アクティブ」状態にあるか、または、「非アクティブ」状態から「アクティブ」状態へ遷移している場合、記憶装置は、コマンドのそれぞれの統合シーケンスと関連する第2連の内部動作のいずれの動作も実行可能にすることができる。しかし、コマンドの1つ以上の統合シーケンスの1つが「非アクティブ」状態にあるか、または、「アクティブ」状態から「非アクティブ」状態へ遷移している場合、記憶装置は、コマンドのそれぞれの統合シーケンスと関連する第1連の内部動作のいずれの動作も実行可能にし、コマンドのそれぞれの統合シーケンスと関連する第2連の内部動作のいずれの動作も実行させないようにする。
【0018】
記憶装置は、ホスト装置から受信された1つ以上のコマンドから導き出された情報が、予め定義されたシーケンスの開始(「BOS」)条件を満足するのか、予め定義されたシーケンスの終了(「EOS」)条件を満足するのかを判断することにより、コマンドの1つ以上の統合シーケンスの1つが「非アクティブ」状態から「アクティブ」状態へ遷移しているのか、「アクティブ」状態から「非アクティブ」状態へ遷移しているのかを判断することができる。記憶装置は、動的パラメータの値または累積値を、予め定義された静的パラメータと比較することにより、ホスト装置から受信された(1つ以上の)コマンドから導き出された情報が、予め定義されたBOS条件を満足するのか、予め定義されたEOS条件を満足するのかを判断する。
【0019】
コマンドの1つ以上の統合シーケンスの少なくとも1つはマルチメディアコンテンツの再生、マルチメディアコンテンツまたは画像の獲得、データ同期化、または、ブートコマンドと関連することができる。
【0020】
第1連の内部動作の動作、または第2連の内部動作の動作を、フラッシュ管理動作、送信/受信データを暗号化/暗号化解除する暗号化/暗号化解除動作、送信/受信データを圧縮/解凍する圧縮/解凍動作、アンチウィルス動作、高耐久化動作、デフラグ動作、データをバックアップするバックアップ動作、および、データフォーマットの変更を含む動作とすることができる。フラッシュ管理動作を、ガーベッジコレクション動作、エラー訂正動作、記憶装置の高速フラッシュ記憶領域へデータをキャッシングするデータキャッシング動作、キャッシングデータをフラッシュするフラッシュ動作、低電力モード動作、および、静的な消耗の均等化動作とすることができる。
【0021】
記憶装置も提供し、この記憶装置はフラッシュメモリ装置とすることができる。この記憶装置は、ホスト装置から記憶コマンドを受信する通信インターフェイスと、(i)コマンドの1つ以上の予め定義された統合シーケンスであって、各々が「アクティブ」状態および「非アクティブ」状態となることができる統合シーケンスと、(ii)コマンドの1つ以上の各統合シーケンスと関連する第1連の内部動作(「ESQ」)および第2連の内部動作(「ISQ」)であって、コマンドのそれぞれの統合シーケンスが「アクティブ」状態にある間、実行すべきでない動作である第1連の内部動作と、コマンドのそれぞれの統合シーケンスが「アクティブ」状態にある間、実行可能にされる動作である第2連の内部動作とを保持する大容量記憶領域とを含むことができる。
【0022】
この記憶装置は、(i)前記通信インターフェイスを介してホスト装置からコマンドを受信し、(ii)受信されたコマンドから(場合によっては、以前に受信されたコマンドから)導き出された情報に基づいて、コマンドの1つ以上の統合シーケンスの1つが「アクティブ」状態にあるか否か、または「非アクティブ」状態から「アクティブ」状態へ遷移しているか否か、または、コマンドの1つ以上の統合シーケンスの1つが「非アクティブ」状態にあるか否か、または「アクティブ」状態から「非アクティブ」状態へ遷移しているか否かを判断するように適合または構成されているコントローラをも含む。
【0023】
コマンドの1つ以上の統合シーケンスの1つが「アクティブ」状態にあるか、または「非アクティブ」状態から「アクティブ」状態へ遷移していることに応答して、コントローラは第1連のそれぞれの内部動作のいずれの動作も実行させないようにする。コントローラが第1連のそれぞれの内部動作のいずれの動作も実行させないようにすることに加えて、コントローラは、コマンドのそれぞれの統合シーケンスと関連する第2連の内部動作のいずれの動作も実行可能にすることができる。1つ以上の統合シーケンスの1つが「非アクティブ」状態にあるか、または「アクティブ」状態から「非アクティブ」状態へ遷移している場合、コントローラは第1連のそれぞれの内部動作のいずれの動作も実行可能にする。
【0024】
コントローラは、ホスト装置から受信された1つ以上のコマンドから導き出された情報が、予め定義されたBOS条件を満足するのか、予め定義されたEOS条件を満足するのかを算定または判断することにより、1つ以上の統合シーケンスのいずれかが「非アクティブ」状態から「アクティブ」状態へ遷移しているのか、「アクティブ」状態から「非アクティブ」状態へ遷移しているのかを判断することができる。
【0025】
前述した例示的な態様および実施形態に加えて、さらなる態様および実施形態が、添付図面を参照し、以下の詳細な説明を検討することにより明らかになる。
【発明の効果】
【0026】
本発明によれば、記憶装置は、INSQがいつ、どのような場合に特定の状態(すなわち、「アクティブ」状態または「非アクティブ」状態)にあるか、または、状態を「アクティブ」から「非アクティブ」へ、または「非アクティブ」から「アクティブ」へ変化させているかをホスト装置の介入なしに自律的に検出するので、INSQの現在の状態またはその遷移に応じて、記憶装置は、ESQ動作またはISQ動作の実行を回避または一時停止するか、または実行させないようにし、あるいは、ESQ動作またはISQ動作の実行を許可するか、または可能にすることができる。
【発明を実施するための最良の形態】
【0027】
参照図面には例示的な実施形態が示されている。本願明細書で開示される実施形態は例示的なものであって、本発明を限定するものではない。しかし、本開示は、添付図面と併せて解釈されるべき以下の詳細な説明を参照してさらに良く理解することができる。
【0028】
当然のことながら、図を簡潔および明瞭にするため、図に示された要素は、必ずしも実際のものに正比例させて描かれていない。さらに、図中、適切と見なされる場合、同様な、対応または類似の要素を示すために符号を繰り返すことができる。
【0029】
特許請求の範囲は、本発明の例示的な実施形態の詳細な説明を参照することによりさらに理解される。本願明細書は特許請求の範囲を限定するものではなく、本発明の一例を示すものである。
【0030】
本願明細書では、「シーケンスの開始」(BOS)とは、INSQが開始または生じている、または、INSQが開始または生じたという記憶装置により達せられた結論または行われた決定を意味する。記憶装置と連動するホスト装置が、結論または決定処理に介入するか、または何らかの方法で影響を及ぼすことなしに、記憶装置は、予め定義された条件に基づいて結論に達するか、または決定を行う。記憶装置は、INSQが進行中でない場合にINSQの開始を記憶装置にまとめて示すことができる予め定義された一連のパラメータおよびしきい値(すなわち、条件)を考慮して、ホスト装置により送出されたコマンドを評価する。
【0031】
本願明細書では、「シーケンスの終了」(EOS)とは、INSQが終了している、または終了したという記憶装置により達せられた結論または行われた決定を意味する。記憶装置と連動するホスト装置が、結論または決定処理に介入するか、または何らかの方法で影響を及ぼすことなしに、記憶装置は、予め定義された条件に基づいて結論に達するか、または決定を行う。記憶装置は、INSQが進行中である場合にINSQの終了を記憶装置にまとめて示すことができる予め定義された一連のパラメータおよびしきい値(すなわち、条件)を考慮して、ホスト装置により送出されたコマンドを評価する。
【0032】
図1は、本開示による記憶装置により使用できる簡潔化された状態マシンである。本開示によれば、一連のINSQは予め定義され、INSQテーブルに記憶され、INSQテーブルの各項目は、INSQと、このINSQと関連するパラメータとを含む。状態マシンに関して、INSQテーブル内の各INSQは、「進行中である統合シーケンス」16として示される「アクティブ」状態にあることができ、または、「進行中でない統合シーケンス」12として示される「非アクティブ」状態にあることができる。INSQテーブル内の1つ以上のINSQを同時にアクティブにすることができ、その一方で、他のINSQを非アクティブにすることができる。図2および図3に関して、複数のインスタンスを異なるINSQに対して同時に生じさせることができる。
【0033】
INSQテーブル内にINSQが存在すると仮定して、INSQが今のところ「進行中でない統合シーケンス」12状態にあり、前に説明したように、INSQが今やアクティブ状態になっていること、または非アクティブ状態からアクティブ状態へ遷移していることを示す「シーケンスの開始」(BOS)を記憶装置が識別した場合、記憶装置は、「進行中でない統合シーケンス」12から「進行中である統合シーケンス」16へINSQの状態を自律的に切り替える(14)。INSQが今のところ「進行中である統合シーケンス」16状態にあり、前に説明したように、INSQが今や非アクティブ状態になっていること、またはアクティブ状態から非アクティブ状態へ遷移していることを示す「シーケンスの終了」(EOS)を記憶装置が識別した場合、記憶装置は、「進行中である統合シーケンス」16から「進行中でない統合シーケンス」12へ統合シーケンスの状態を自律的に切り替える(10)。
【0034】
図2には、本開示に従ってINSQの状態が「進行中でないINSQ」状態から「進行中であるINSQ」状態へ変化する場合に記憶装置により取られるステップを示す。2つ以上のタスクを同時に実行することができる記憶システム(このような記憶システムは「複数タスク処理」または「複数スレッド処理」システムと称されることが多い)では、2つ以上のINSQを進行中にすることができ、INSQテーブル内の各INSQは、INSQが進行中であるか否かを評価する同一または類似の評価処理を受けることができる。
【0035】
以下の説明は、INSQテーブル内の例示的なINSQ(以後、「INSQ1」と称する)について言及する。しかし、INSQテーブル内に保持できるINSQであれば、同じ処理が関連する。「INSQ1」がアクティブになった場合、ステップ20において、記憶装置は、「INSQ1」に関係する状態マシンの状態を「進行中でないINSQ1」から「進行中であるINSQ1」へ変化させる。記憶装置は、INSQ1に対してBOSが生じている場合に「INSQ1」がアクティブになったと判断し、BOSは、予め定義された基準が満足された場合に生じると判断される。
【0036】
前述したように、記憶装置により実行されるバックグラウンド動作をISQ動作またはESQ動作と見なすことができ、INSQが進行中である間、ESQ動作を回避または停止する必要がある。従って、ステップ22において、記憶装置は、アクティブである「INSQ1」に関してESQ動作を一時停止し、ステップ24において、アクティブであるINSQ1に関係するISQ動作を再開し、ステップ26において、「INSQ1」が非アクティブになるまで待機または検索する。記憶装置は、INSQ1に対してEOSが生じている場合に「INSQ1」が非アクティブになったと判断し、EOSは、予め定義された基準が満足された場合に生じると判断される。例示的なINSQテーブルと、INSQが状態をいつ、どのような場合に変化するか、または変化したかを判断する基準とを、以下で説明する図4および図5に示す。
【0037】
図3には、本開示に従ってINSQの状態が「進行中であるINSQ」状態から「進行中でないINSQ」状態へ変化する場合に記憶装置により取られるステップを示す。以下の説明も、図2に関して前述した例示的な「INSQ1」について言及する。しかし、INSQテーブル内に保持できるINSQであれば、同じ評価処理が関連する。「INSQ1」が非アクティブになった場合、EOSが生じ、これに応答して、ステップ30において、記憶装置は、「INSQ1」と関連する状態マシンの状態を「進行中であるINSQ1」から「進行中でないINSQ1」へ変化させる。前に説明したように、関係するINSQが進行中でない場合だけ、ESQ動作は記憶装置により許可される。従って、ステップ32において、記憶装置は、非アクティブである「INSQ1」に関係するISQ動作を一時停止し、ステップ34において、記憶装置はESQ動作を再開する。ステップ36において、記憶装置はBOSを検索するか、または、BOSを判断できるまで待機する。
【0038】
INSQテーブルは、記憶装置がホスト装置から受信するか、または受信した1つ以上のコマンドに応答して、例えば、最後のコマンドをホスト装置から受信したことに応答して、場合によっては、記憶装置がホスト装置から以前に受信された1つ以上のコマンドにも応答して、記憶装置がINSQの状況を評価する2種類のパラメータ、すなわち、静的パラメータ、つまり実行時の間に変化しない値を有するパラメータと、動的パラメータ、つまり実行時の間に記憶装置により動的(すなわち、「オンザフライ」)に更新される値を有するパラメータとを含むことができる判断基準を保持する。「静的パラメータ」は、INSQが「オン」であるか「オフ」であるか、または、これら2つの状態間で変化したか否かを判断するのに記憶装置が用いる基準(例えば、しきい値)であるのが効果的である。「動的パラメータ」は、静的パラメータにより表された基準が満足されたか否かを判断するために記憶装置が静的パラメータについて検査するINSQに関する変数の所定時点(記憶装置により所定のコマンドを受信した際)の値であるのが効果的である。例えば、ホスト装置がMP3プレーヤである場合、記憶装置へ送信する一連のコマンドを音楽ファイルの再生と関連付けることができる。ホスト装置により記憶装置へ送信される一連のコマンドは1つ以上のコマンドを含むことができる。例示的なINSQおよび関連の静的パラメータを図4に示し、図4のINSQに関連する例示的な動的パラメータを図5に示し、これら図の双方を以下に説明する。
【0039】
図4には、本開示の例示的な実施形態によるINSQテーブル40を示す。INSQの静的パラメータを含むINSQテーブル40は、1〜4として番号付けされた4つの例示的な項目を含む。以下に説明するように、各項目は、1つのINSQと、INSQに関連するパラメータおよびしきい値とを収容する。記憶装置は、INSQテーブル40に保持された情報に基づいてINSQの状態(すなわち、「進行中であるINSQ」状態から「進行中でないINSQ」状態、および「進行中でないINSQ」状態から「進行中であるINSQ」状態)を識別し、更新する。
【0040】
INSQテーブル40は、以下の例示的な静的パラメータを保持する5つの例示的な領域を含む。
(1)「INSQの識別子」(41)。この領域は、各INSQの種類またはINSQに割り当てられた名称を収容することができる。
(2)「INSQのBOSパラメータ」(42)。この領域は、記憶装置が値または状態を計算または推定できるように選択され、関連のINSQが既に進行中にある(すなわち、関連のINSQが既にアクティブである)こと、または、関連のINSQが非アクティブ状態からアクティブ状態へ遷移していることを、計算または推定された値または状態が示すことができる1つ以上のパラメータを指定する。記憶装置がホスト装置から受信した1つ以上のコマンドから導き出された値を有する1つ以上のパラメータは、BOSが生じたか否か、または生じているか否かを記憶装置に決定または判断可能にする。「読み取り性能」、「到達時間」(TOA)およびコマンドオペランド(例えば、ホスト装置によりアクセスされる論理アドレス)は、ホスト装置から受信されたコマンドから記憶装置が収集または計算することができる例示的な情報である。
「INSQのBOSしきい値」領域に関して以下にさらに詳細に説明されるように、シーケンスの開始(BOS)は、1つ以上の推定または計算されたパラメータが、予め定義された値を満足または上回るか、または、予め定義された条件を満足する場合に生じたと見なされる。
(3)「INSQのBOSしきい値」(43)。この領域は、INSQのBOSパラメータ領域42に指定された1つ以上のパラメータに記憶装置が適用する1つまたは一連の論理条件を収容する。特定のINSQと関連する1つまたは一連の論理条件が満足される場合、記憶装置は、このINSQに対して統合シーケンスのBOSが生じたと判断し、その後、記憶装置はINSQの状況を「進行中であるINSQ」へ変化させる。論理条件は、BOSパラメータの最小値、BOSパラメータの最大値、BOSパラメータの最小値と最大値との間の任意の値、または、数えられた事象の数などに関連することができる。
(4)「INSQのEOSパラメータ」(44)。この領域は、記憶装置が値または状態を計算または推定できるように選択され、関連のINSQが終了しようとしていること、または、関連のINSQが丁度終了したところであることを、計算または推定された値または状態が記憶装置に示すことができる1つ以上のパラメータを指定する。記憶装置がホスト装置から受信したコマンドから導き出された1つ以上のパラメータは、EOSが生じたか否か、または生じているか否かを記憶装置に決定または判断可能にする。
「読み取り性能」、「到達時間」(TOA)およびコマンドオペランド(例えば、ホスト装置によりアクセスされる論理アドレス)は、ホスト装置から記憶装置で受信されたコマンドから記憶装置が収集または計算することができる例示的な情報である。
「INSQのEOSしきい値」領域に関して以下にさらに詳細に説明されるように、シーケンスの終了(EOS)は、1つ以上の推定または計算されたパラメータが、予め定義された値を満足または上回るか、あるいは、予め定義された条件を満足する場合に生じるか、または生じたと見なされる。
(5)「INSQのEOSしきい値」(45)。この領域は、INSQのEOSパラメータ領域44に指定された1つ以上のパラメータに記憶装置が適用する1つまたは一連の論理条件を収容する。特定のINSQと関連する1つまたは一連の論理条件が満足される場合、記憶装置は、このINSQに対して統合シーケンスのEOSが生じたことを判断し、その後、記憶装置はINSQの状況を「進行中でないINSQ」へ変化させる。論理条件は、EOSパラメータの最小値、EOSパラメータの最大値、EOSパラメータの最小値と最大値との間の任意の値、または、数えられた事象の数などに関連することができる。
【0041】
一例として、INSQテーブル40は、以下に説明される「例1」〜「例4」について言及する4つの例示的な統合シーケンス(INSQ)を保持する。
【0042】
例1−ホスト装置はMP3プレーヤである
第1項目は、MP3動作に関連する(すなわち、ホスト装置がMP3音楽プレーヤであると仮定される)「MP3再生」と称される例示的なINSQを含む。MP3音楽プレーヤは、記憶装置からMP3データフォーマットに従って圧縮されたメディアコンテンツを読み取り、(ソフトウェアアプリケーションであろうとハードウェアモジュールであろうと)解凍手段を用いて、圧縮されたメディアコンテンツを(すなわち、解凍することにより)、MP3音楽プレーヤにより用いる(すなわち、再生する)ことができる生のデータフォーマットへ変換する。MP3音楽プレーヤは生のデータ(すなわち、解凍されたメディアコンテンツ)をスピーカへ送信する(すなわち、MP3プレーヤがメディアコンテンツを「再生する」)。MP3データフォーマットは、現在では毎秒16キロバイト(KB/sec)であるMP3規格により指定された速度でMP3ファイルを再生することを要求するので、MP3プレーヤは、同じデータ速度で記憶装置からデータを要求する。
【0043】
この例では、INSQのBOSパラメータは、記憶装置がMP3プレーヤから受信するデータ読み取り要求を記憶装置が監視し、MP3プレーヤがデータを読み取る平均速度を計算して、データ読み取り要求が指定速度(すなわち、16KB/sec)で受信されているか否かを検査することを意味する「MP3規格(16KB/sec)に一致する正規の平均読み取り速度」(410)である。正常なデータ再生動作の下、記憶装置は、この速度が16KB/secであることを期待し、この速度でデータが読み取られない限り、記憶装置は、MP3再生INSQがまだ開始されていないことを「理解する」。前に説明したように、MP3プレーヤがメディアコンテンツを再生している間、記憶装置において何らかの内部動作を実行することは望ましくない。例えば、消耗の均等化を実行することは、消耗の均等化を再生中に行った場合、再生する音声の質を大幅に劣化させる。
【0044】
前述した例では、「MP3規格(16KB/sec)に一致する正規の平均読み取り速度」パラメータのINSQのBOS決定しきい値を、例えば、「正規のデータを読み取る期間が少なくとも2秒」(415)とすることができる。このことは、前述した速度(すなわち、16KB/sec)でデータ要求が記憶装置において受信された場合であって、少なくとも2秒の間、この速度が維持される場合、BOSが生じているか、または生じたと記憶装置が仮定する、すなわち、「MP3再生」INSQが開始しているか、または開始したこと、あるいは、「MP3再生」INSQが進行中であることを記憶装置に示すことを意味する。このような場合(すなわち、「MP3再生」INSQが進行中である場合)、記憶装置は、「MP3再生」INSQに予め定義されたISQ動作を実行することができるが、「MP3再生」INSQに予め定義されたESQ動作の実行を回避する。
【0045】
前述した例では、INSQのEOSパラメータは、データ読み取り要求がMP3プレーヤから受信される平均速度を記憶装置が計算して、この平均速度が指定速度(すなわち、16KB/sec)であるか否かを検査できることを意味する「MP3規格(16KB/sec)に一致しない平均読み取り速度」(420)である。正常なデータ再生動作の下、記憶装置は、この速度が16KB/secであることを期待し、記憶装置においてこの速度でデータ要求を受信し続ける限り、記憶装置は、「MP3再生」INSQが依然として進行中であることを「理解する」。
【0046】
前述した例では、「MP3規格(16KB/sec)に一致しない平均読み取り速度」パラメータのINSQのEOS決定しきい値を、例えば、「ストリーミングしない期間が少なくとも1秒」(425)とすることができる。このことは、少なくとも1秒の間、前述した速度(すなわち、16KB/sec)でデータ要求が記憶装置において受信されなくなった場合、EOSが生じているか、または生じたことを記憶装置に示す、すなわち、「MP3再生」INSQが終了しているか、または終了したこと、または、「MP3再生」INSQがもはや進行中でないことを記憶装置に示すことを意味する。MP3の歌またはデータを再生する間の一時停止中、または、全部のMP3ファイルが再生された後、平均読み取り速度はMP3規格から逸脱する。このような場合(すなわち、「MP3再生」INSQが進行中でない場合)、記憶装置は、「MP3再生」INSQに対して予め定義されたESQ動作を実行可能または再開可能にする。
【0047】
例2−ホスト装置はデジタルカメラである
第2項目は、デジタルカメラ動作に関連する(すなわち、ホスト装置がデジタルカメラであると仮定される)「マルチショット画像獲得」と称される例示的なINSQを含む。例示目的で、デジタルカメラは毎秒4コマの画像(すなわち、250ミリ秒ごとに1コマの画像)を獲得し、各画像を圧縮し、1つの圧縮画像を次々と記憶のために記憶装置へ直ちに送信すると仮定される。圧縮画像の平均サイズは2メガバイト(MB)であり、カメラは画像データを毎秒8MB(MB/sec)の速度で記憶装置に書き込むと仮定する。「マルチショット画像獲得」INSQの状況を評価するため、記憶装置は、デジタルカメラから受信するデータ書き込み要求を監視し、デジタルカメラが画像の圧縮データを記憶空間へ書き込む平均速度を計算して、期待された8MB/secの平均速度でデータが書き込まれているか否かを決定する。期待された8MB/secの平均速度で、またはそれ以上の速度でデータが書き込まれた場合、このことは、「マルチショット画像獲得」INSQが開始したこと、または、「マルチショット画像獲得」INSQが進行中であることを意味する。従って、この例では、INSQのBOSパラメータは「8MB/sec以上で書き込むバーストの頻度」である。「マルチショット画像獲得」INSQが進行中である場合、記憶装置は、「マルチショット画像獲得」INSQに対して予め定義されたISQ動作を実行することができるが、「マルチショット画像獲得」INSQに対して予め定義されたESQ動作の実行を回避する。
【0048】
デジタルカメラは、これらデジタルカメラが協働する記憶装置へ画像をデータバーストで転送する。各データバーストは1コマの画像を表す。この例では、「マルチショット画像獲得」INSQのBOSしきい値は、それぞれ2つの連続したデータバースト間で1ミリ秒の最大遅延を伴って次々に到達する最低3つのデータ書き込みバーストに保持される。(各データバーストは8MB/secの速度である)3つの順次的なデータバーストが1ミリ秒の最大遅延を伴って記憶装置で受信される場合、記憶装置は、「マルチショット画像獲得」INSQが進行中であると仮定する。従って、INSQのBOSしきい値は、「1ミリ秒未満で分離された3つのバースト」である。
【0049】
「マルチショット画像獲得」INSQの状況が「進行中であるINSQ」である場合、記憶装置はEOSの兆候を待つ。その理由は、前に説明したように、この例では「マルチショット画像獲得」INSQであるINSQの終了後だけ、ESQ動作の実行が許可されているためである。EOSが生じるか否か、または生じたか否かを識別するため、記憶装置は、INSQのEOSしきい値「バースト間で3ミリ秒を超える遅延」を用いる。「マルチショット画像獲得」INSQのEOSを識別するため、記憶装置は、デジタルカメラから受信されたデータ書き込み要求を監視し、データ書き込み要求が、8MB/secとは異なる平均書き込み速度で供給されているか否か、または、2つの連続したデータバースト間で、この例でのINSQのEOSしきい値である3ミリ秒を上回る遅延が存在するか否かを検査する。期待された速度(すなわち、8MB/sec)でいかなるデータ書き込み要求も記憶装置において受信されない3ミリ秒を上回る遅延が存在する場合、記憶装置は、「マルチショット画像獲得」INSQがもはや進行中でない(すなわち、INSQが終了した)と仮定する。このことは、記憶装置が、「マルチショット画像獲得」INSQに対して予め定義されたESQ動作の実行を許可し、一時停止されたESQ動作の再開を許可することができることを意味する。
【0050】
例3−ホスト装置はコンピュータシステムである
第3項目は、コンピュータシステムにおけるブート動作に関する「ブート画像更新」と称される例示的なINSQを含む。例示目的で、コンピュータシステムは、セクタ#0(零)から始まる順次的な論理セクタに記憶されたデータファイルを更新すると仮定される。セクタのサイズが512バイトであり、データファイルサイズが10キロバイト(KB)である場合、データファイルは、20個の論理セクタ(すなわち、論理セクタ#0〜#19)から成る記憶領域に記憶される。コンピュータシステムは、最後のセクタ(すなわち、セクタ#19)が更新されるまで、セクタ#0、セクタ#1、セクタ#2...セクタ#19を順次更新することによりデータファイルを連続して更新する。
【0051】
「ブート画像更新」INSQの状況を評価するため、記憶装置は、コンピュータシステムから受信するデータ書き込み要求を監視する。セクタ#0へデータを書き込むための書き込み要求が存在する場合、INSQのBOSパラメータが、この場合には「セクタ#0への書き込み」であり、INSQのBOSしきい値が「事象の発生」であり、このことは、データがセクタ#0へ書き込まれているか、または書き込まれようとしていることを意味するので、記憶装置は、「ブート画像更新」INSQが進行中であると結論を出す。「ブート画像更新」INSQが進行中である場合、記憶装置は、「ブート画像更新」INSQに対して予め定義されたISQ動作を実行することができるが、「ブート画像更新」INSQに対して予め定義されたESQ動作を回避する。
【0052】
データファイルの最後の論理セクタ(この例では、セクタ#19)が更新されると、EOSパラメータが「ブート画像の最後のセクタへの書き込み」であり、INSQのEOSしきい値が「事象の発生」であるので、記憶装置は、「ブート画像更新」INSQがもはや進行中ではないと結論を出す。すなわち、一旦、最後のセクタへ書き込むことは、EOSが生じたと記憶装置が判断するのに充分である。「ブート画像更新」INSQがもはや進行中でない場合、記憶装置はESQ動作の実行を許可して、一時停止されたESQ動作の再開を許可することができる。
【0053】
例4−ホスト装置はコンピュータシステムである
第4項目は、コンピュータシステムにおけるブート動作に関する「ブート画像読み取り」と称される例示的なINSQを含む。例示の目的で、コンピュータシステムは、例3に関して前述したように、セクタ#0から始まる順次的な論理セクタに記憶されたデータファイルを読み取ると仮定される。
【0054】
「ブート画像読み取り」INSQの状況またはその変化を識別するため、記憶装置は、コンピュータシステムから受信するデータ読み取り要求を監視する。セクタ#0からデータを読み取るための読み取り要求が存在する場合、BOSパラメータが「セクタ#0からの読み取り」であり、BOSしきい値が「事象の発生」であり、このことは、セクタ#0からのデータの読み取りが進行中であることを意味するので、記憶装置は、「ブート画像読み取り」INSQが進行中であると結論を出す。このような場合(「ブート画像読み取り」INSQが進行中である場合)、記憶装置は、「ブート画像読み取り」INSQに対して予め定義されたISQ動作を実行することができるが、「ブート画像読み取り」INSQに対して予め定義されたESQ動作を回避する。
【0055】
データファイルの最後の論理セクタ(この例では、セクタ#19)が最後に読み取られると、EOSパラメータが「ブート画像の最後のセクタの読み取り」であり、EOSしきい値が「事象の発生」であるので、記憶装置は、「ブート画像読み取り」INSQがもはや進行中でないと結論を出す。すなわち、最後のセクタの読み取りは、「ブート画像読み取り」INSQがもはや進行中でないと記憶装置が判断するのに充分である。このような場合(すなわち、「ブート画像読み取り」INSQがもはや進行中でない場合)、記憶装置はESQ動作の実行を許可し、一時停止されたESQ動作の再開を許可することができる。
【0056】
例えば専用のアプリケーションプログラミングインターフェイス(「API」)を用いることにより、静的パラメータを含むINSQテーブル40を遠隔装置またはコンピュータシステムにより記憶装置に供給する(所望に応じて更新する)ことができる。専用のAPIを用いて、例えば、既存のテーブル項目を更新または削除すること、または、新たなテーブル項目を追加することなどができる。簡潔には、「API」は、コンピュータプログラムにより行われた要求を支援するため、オペレーティングシステム、ライブラリまたはサービスにより供給することができるソースコードインターフェイスである。あるいはまた、記憶装置の製造時点で、または、ソフトウェア開発者による記憶装置のカスタマイズ段階で、INSQテーブル40を処理する(すなわち、作成および記憶する)ことができる。ホスト装置上で実行するアプリケーションにより、実行時の間、INSQテーブル40を処理する(すなわち、作成、記憶、変更および更新する)ことができる。カスタマイズ要件は、関連のホスト装置上で実行しているアプリケーション、使用法シナリオおよびシステムの特徴などに関連するか、または、これらから導き出すことができる。
【0057】
図5には、本開示の例示的な実施形態によるINSQテーブル50を示す。INSQの動的パラメータを含むINSQテーブル50は、1〜4として番号付けされた4つの例示的な項目を含む。以下に説明されるように、各項目は1つのINSQと、INSQに関係するパラメータとを収容する。INSQテーブル50に保持されたパラメータは、ホスト装置により提供されるサービスに関してホスト装置により記憶装置へ送出されたコマンドに応答して(すなわち、このコマンドから導き出されて)、実行時の間、記憶装置により動的(すなわち、「オンザフライ」)に収集および更新される。例えば、ホスト装置がMP3プレーヤである場合、MP3プレーヤが記憶装置へ送信するコマンドを音声ファイルの再生と関連付けることができる。以下に説明する図5に例示的な動的パラメータを示す。
【0058】
図5のINSQテーブル50は、図4のINSQテーブル40における4つの例示的なINSQに関係する例示的な動的パラメータと、これらパラメータを保持する4つの例示的な領域とを含む。
(1)「INSQの識別子」(501)。この領域は、INSQの種類またはINSQに割り当てられた名称を収容する。前述したように、INSQテーブル50は、INSQテーブル40の4つの例示的なINSQに関係する。従って、INSQテーブル50は、テーブル40と同じINSQの種類または名称を用いる。
(2)「状況(オン/オフ)」(502)。この領域に記憶された値(すなわち、「オン」または「オフ」)は、INSQが進行中であるか否かを指定する。すなわち、INSQが現在進行中である場合、これに割り当てられた値は「オン」になり、INSQが現在進行中でない場合、これに割り当てられた値は「オフ」になる。
(3)「動的BOSパラメータ」(503)。INSQが進行中でない場合(すなわち、「状況(オン/オフ)」領域の状況が「オフ」である場合)、記憶装置は、INSQが開始するのを「待つ」(すなわち、期待する)。従って、記憶装置は、「動的BOSパラメータ」領域に保持される値を計算または評価して、BOSの兆候が生じたか否かを決定する。動的BOSパラメータは、記憶装置がホスト装置から受信した1つ以上のコマンドに基づいて記憶装置により計算される。
(4)「動的EOSパラメータ」(504)。INSQが進行中である場合(すなわち、「状況(オン/オフ)」領域の状況が「オン」である場合)、記憶装置は、INSQが終了するのを「待つ」(すなわち、期待する)。従って、「動的EOSパラメータ」領域に保持されるEOSパラメータの値を計算する。動的EOSパラメータは、記憶装置がホスト装置から受信した1つ以上のコマンドに基づいて記憶装置により計算される。
【0059】
前述した例1について引き続き述べると、「MP3再生」(510)と称されるINSQの現在の状況が「オン」(515)であることは、INSQが進行中であることを意味する。従って、記憶装置はBOSパラメータを計算する必要がなく、このため、「動的BOSパラメータ」領域に現在保持されている値は「N/A」である(すなわち、適用されない)。前に説明したように、INSQが「オン」である場合、記憶装置は、INSQが終了することを期待する。従って、記憶装置は動的EOSパラメータを評価、計算または検査して、EOSが生じているか否か、または生じたか否かを算定する。EOSが生じているか、または生じたと記憶装置が決定した場合、記憶装置は「MP3再生」INSQの状況を「オン」から「オフ」へ変化させ、動的BOSパラメータを評価、計算または検査して、BOSが生じているか否か、または生じたか否かを算定する。
【0060】
言い換えれば、「MP3再生」INSQが現在アクティブである(すなわち、「オン」(515)である)場合、「MP3再生」INSQに関する動的BOSパラメータは(「N/A」(520)として示されるように)適用されず、このことは、動的EOSパラメータの現在の値、この例では「12ミリ秒」を考慮する必要があることを意味する。「MP3再生」INSQが進行するにつれて、この動的EOSパラメータの値が増大し、この値が、(INSQテーブル40に指定されている)静的EOSしきい値「ストリーミングしない期間が少なくとも1秒」に達するか、またはこれを上回った時、記憶装置は、EOSが生じたと決定する。「MP3再生」INSQが非アクティブである(すなわち、「オフ」である)場合、考慮すべきパラメータは、動的EOSパラメータよりはむしろ動的BOSパラメータとなる。
【0061】
INSQテーブル40に示されるように、「MP3再生」INSQのEOSしきい値は、「1秒」(図4の425)であり、このことは、EOSが生じたと記憶装置が決定するために少なくとも1秒の期間中、MP3プレーヤが記憶装置からデータを読み取る平均速度420(図4に示されている基準)が標準速度(すなわち、16KB/sec)から継続的に逸脱する必要があることを意味する。しかし、図5に示されるように、現在の「MP3再生」INSQが開始して以来、12ミリ秒(図5の525)しか経過していない。従って、「MP3再生」INSQは依然として記憶装置により「オン」状態であると見なされる。
【0062】
前述した例2について引き続き述べると、「マルチショット画像獲得」と称される第2のINSQの現在の状況は「オン」であり、このことは、INSQが進行中であることを意味する。従って、記憶装置はBOSパラメータを計算する必要がなく、このため、「動的BOSパラメータ」領域に現在保持されている値は「N/A」である(すなわち、適用されない)。前に説明したように、INSQが「オン」である場合、記憶装置は、INSQが終了することを期待し、従って、記憶装置は動的EOSパラメータを評価、計算または検査して、EOSが生じているか否かを算定する。EOSが生じたと記憶装置が決定した場合、記憶装置は「マルチショット画像獲得」INSQの状況を「オン」から「オフ」へ変化させ、動的BOSパラメータを評価、計算または検査して、BOSが生じたか否かを算定する。
【0063】
言い換えれば、「マルチショット画像獲得」INSQが現在アクティブである(すなわち、「オン」である)ので、「マルチショット画像獲得」INSQに関する動的BOSパラメータは適用されず、このことは、動的EOSパラメータの現在の値、この例では「2.03ミリ秒」を考慮する必要があることを意味する。「マルチショット画像獲得」INSQが進行し続けると、この動的EOSパラメータの値が増大し、この値が、(INSQテーブル40に指定されている)静的EOSしきい値「バースト間で3ミリ秒を超える遅延」に達するか、またはこれを上回った時、記憶装置は、EOSが生じているか、または生じたと決定する。「マルチショット画像獲得」INSQが非アクティブである(すなわち、「オフ」である)場合、考慮すべきパラメータは、動的EOSパラメータよりはむしろ動的BOSパラメータとなる。
【0064】
INSQテーブル40に示されるように、「マルチショット画像獲得」INSQのEOSしきい値は、「バースト間で3ミリ秒を超える遅延」であり、このことは、EOSが生じたと記憶装置が決定するためにデータ書き込みバースト間の遅延(図4の領域45に示される基準)が3ミリ秒を超える必要があることを意味する。しかし、図5に示されるように、今までのところ記憶装置により計算または測定された最大遅延は2.03ミリ秒だけであり、このため、「マルチショット画像獲得」INSQは依然として記憶装置により「オン」状態であると見なされる。
【0065】
前述した例3について引き続き述べると、「ブート画像更新」INSQと称される第3のINSQの現在の状況が「オフ」であることは、INSQが非アクティブであるか、または進行中でないことを意味する。従って、記憶装置は動的EOSパラメータを計算するのではなく、むしろ、動的BOSパラメータを計算、評価または検査して、BOSが生じたか否かを算定する。BOSが生じた場合、記憶装置は「ブート画像更新」INSQの状況を「オフ」から「オン」へ変化させ、動的EOSパラメータを評価、計算または検査して、EOSが生じたか否かを算定する。
【0066】
INSQテーブル40に示されるように、「ブート画像更新」INSQのBOSしきい値は「事象の発生」(「事象」は、データをセクタ#0へ書き込みことを意味する)であり、このことは、BOSが生じたと記憶装置が決定するためにデータをセクタ#0へ書き込む必要があることを意味する。しかし、図5に示されるように、セクタ#0へのデータの書き込みはまだ生じていない(図5に「発生していない」として示す)ため、「ブート画像更新」INSQは依然として記憶装置により「オフ」状態であると見なされる。
【0067】
前述した例4について引き続き述べると、「ブート画像読み取り」INSQと称される第4のINSQの状況が「オフ」であることは、INSQが非アクティブである(すなわち、INSQが進行中でない)ことを意味する。従って、記憶装置はEOSパラメータを計算するのではなく、むしろ、BOSパラメータを計算または検査して、BOSが生じたか否かを算定する。BOSが生じた場合、記憶装置は「ブート画像読み取り」INSQの状況を「オフ」から「オン」へ変化させ、動的EOSパラメータを評価、計算または検査して、EOSが生じたか否かを算定する。
【0068】
INSQテーブル40に示されるように、「ブート画像読み取り」INSQのBOSしきい値は「事象の発生」(「事象」は、データをセクタ#0から読み取ることを意味する)であり、このことは、BOSが生じたと記憶装置が決定するためにデータをセクタ#0から読み取る必要があることを意味する。しかし、図5に示されるように、セクタ#0からのデータの読み取りはまだ生じていない(図5に「発生していない」として示す)ため、「ブート画像読み取り」INSQは依然として記憶装置により「オフ」状態であると見なされる。
【0069】
図6には、本開示の例示的な実施形態に従って「オフ」(すなわち、「INSQが進行中でない」状態)から「オン」(すなわち、「INSQが進行中である」状態)へINSQの状況を変化させるため、記憶装置により利用可能な方法を示す。ホスト装置(例えば、MP3プレーヤ)は、INSQに関する1つ以上のコマンドを記憶装置へ送出および転送することができる。コマンドをデータ読み取り要求またはデータ書き込み要求とすることができる。データ読み取り要求およびデータ書き込み要求をINSQと関係または関連付けることができる。
【0070】
ステップ50では、記憶装置はホスト装置のコマンド(例えば、再生コマンド)を受信する。ホスト装置のコマンドの受信に応答して、記憶装置は、INSQテーブルに予めリストされたINSQを検査して、リストされたINSQのいずれかが、受信されたコマンドに関係するか否か、またはこれにより影響を受けるか否かを確かめるINSQ検査ルーチンを開始する。すなわち、記憶装置は、受信されたコマンドが、予めリストされたINSQのいずれかの現在の状況または状態に影響を及ぼすか否かを検査する。記憶装置により用いられるINSQテーブルは、図4のINSQテーブル40および図5のINSQテーブル50に構造的に同一または類似することができる。
【0071】
ステップ52では、記憶装置は、第1テーブルの項目を検査することによりINSQテーブルを(すなわち、INSQ検査ルーチンを用いることにより)検査し始める。ステップ54では、記憶装置は、INSQテーブルの第1項目が、INSQテーブルの終了を示す「ヌル」であるか否かを検査する。(ステップ54において「はい」と示されたように)第1項目がヌルである場合、INSQテーブルが空であるか、または、受信されたコマンドに関して全部のINSQが記憶装置により既に検査されているので、(ステップ66において「終了」と示されたように)処理は中止される。
【0072】
(ステップ54において「いいえ」と示されたように)第1項目がヌルでない場合、このことは、現在受信されているコマンドに基づいて(または、現在受信されているコマンドと、1つ以上の以前に受信されたコマンドとに基づいて)記憶装置によりまだ評価または再評価されていない状況を有するINSQと、現在評価されているINSQに関係する定義および特性(例えば、条件、しきい値など)とが項目に含まれていることを意味する。すなわち、記憶装置は、記憶装置がホスト装置から受信した1つ以上のコマンドのため、問題になっているINSQの状態を変化させる必要があるか否かを決定する必要がある。
【0073】
ステップ56では、記憶装置は、INSQの現在の状況が「オフ」であるか否かを検査する。(ステップ56において「はい」と示されたように)INSQの現在の状況が「オフ」である場合、このことは、INSQが非アクティブである(すなわち、INSQが進行中でない)ことを意味し、従って、記憶装置は、INSQの状態に変化が生じる、すなわち、非アクティブ(すなわち、「INSQが進行中でない」)状態からアクティブ(すなわち、「INSQが進行中である」)状態へ変化することを予想して待機する。
【0074】
従って、ステップ58では、記憶装置はBOSパラメータを測定、検査または評価し、ステップ60では、現在測定、検査または評価されているBOSパラメータが、INSQテーブルに指定されたBOSしきい値を上回るか否かを検査する。(ステップ60において「はい」と示されたように)BOSパラメータがBOSしきい値を上回る場合、このことは、現在評価されているINSQの状況が「非アクティブ」から「アクティブ」へ変化しているか、または変化したところである(すなわち、INSQが今や進行中である)ことを記憶装置に示し、従って、記憶装置は、このINSQと関連する新たなESQ動作のいずれをも実行せず、または、INSQが状態を変化させる(すなわち、「非アクティブ」から「アクティブ」へ変化する)間、ESQ動作が進行中である場合、図2に示されるように、記憶装置はこのESQ動作を一時停止し、問題になっているINSQに関係するISQ動作を再開する。さらに、記憶装置は、ステップ62において、INSQの状況を「オフ」から「オン」へ変化させることによりINSQテーブルを更新する。その後、ステップ64において、記憶装置はINSQテーブルの次の項目(すなわち、現時点では第2項目)に移り、INSQテーブルの第1項目に関して述べた処理を第2項目について繰り返し、ステップ54においてヌル項目に遭遇し、INSQ評価処理を終了するまで残りのINSQについて繰り返す。記憶装置がホスト装置から受信するコマンドごとに、同じINSQ評価処理を繰り返すことができる。(ステップ60において「いいえ」と示されたように)BOSしきい値を上回らない場合、このことは、問題になっているINSQが依然として非アクティブであることを意味し、従って、現在の状態(すなわち、「オフ」)が変化しないままでいる必要がある。従って、記憶装置はINSQ状態を変化させず、次のINSQの状況を評価する。
【0075】
図7には、本開示の例示的な実施形態に従って「オン」(すなわち、「INSQが進行中である」状態)から「オフ」(「INSQが進行中でない」状態)へINSQの状況を変化させるため、記憶装置により利用可能な方法を示す。ホスト装置(例えば、MP3プレーヤ)は、INSQに関する1つ以上のコマンドを記憶装置へ送出および転送することができる。コマンドをデータ読み取り要求またはデータ書き込み要求とすることができる。データ読み取り要求およびデータ書き込み要求をINSQと関係または関連付けることができる。
【0076】
ステップ70では、記憶装置はホスト装置のコマンド(例えば、再生コマンド)を受信する。ホスト装置のコマンドの受信に応答して、記憶装置は、INSQテーブルに予めリストされたINSQを検査して、リストされたINSQのいずれかが、受信されたコマンドに関係するか否か、またはこれにより影響を受けるか否かを確かめるINSQ検査ルーチンを開始する。すなわち、記憶装置は、受信されたコマンドが、予めリストされたINSQのいずれかの現在の状況または状態に影響を及ぼすか否かを検査する。記憶装置により用いられるINSQテーブルは、図4のINSQテーブル40および図5のINSQテーブル50に構造的に同一または類似することができる。
【0077】
ステップ72では、記憶装置は、第1テーブルの項目を検査することによりINSQテーブルを(例えば、INSQ検査ルーチンを用いることにより)検査し始める。ステップ74では、記憶装置は、INSQテーブルの第1項目が、INSQテーブルの終了を示す「ヌル」であるか否かを検査する。(ステップ74において「はい」と示されたように)第1項目が「ヌル」である場合、INSQテーブルが空であるか、または、受信されたコマンドに関して全部のINSQが記憶装置により既に検査されているので、(ステップ86において「終了」と示されたように)処理は中止される。
【0078】
(ステップ74において「いいえ」と示されたように)第1項目がヌルでない場合、このことは、現在受信されているコマンドに基づいて(または現在受信されているコマンドと、1つ以上の以前に受信されたコマンドとに基づいて)記憶装置によりまだ評価または再評価されていない状況を有するINSQと、現在評価されているINSQに関係する定義および特性(例えば、条件、しきい値など)とが項目に含まれていることを意味する。すなわち、記憶装置は、記憶装置がホスト装置から受信した1つ以上のコマンドのため、問題になっているINSQの状態を変化させる必要があるか否かを決定する必要がある。
【0079】
ステップ76では、記憶装置は、INSQの現在の状況が「オン」であるか否かを検査する。(ステップ76において「はい」と示されたように)INSQの現在の状況が「オン」である場合、このことは、INSQがアクティブである(すなわち、INSQが進行中である)ことを意味し、従って、記憶装置は、INSQの状態に変化が生じること、すなわち、アクティブ(すなわち、「INSQが進行中である」)状態から非アクティブ(すなわち、「INSQが進行中でない」)状態へ変化することを予想して待機する。
【0080】
従って、ステップ78では、記憶装置はBOSパラメータを測定、検査または評価し、ステップ80では、現在測定、検査または評価されているBOSパラメータが、INSQテーブルに指定されたBOSしきい値を上回るか否かを検査する。(ステップ80において「はい」と示されたように)BOSパラメータがBOSしきい値を上回る場合、このことは、現在評価されているINSQの状況が「アクティブ」から「非アクティブ」へ変化しているか、または変化したところである(すなわち、INSQが進行中でない)ことを記憶装置に示し、従って、図3に示されているように、記憶装置はISQ動作を一時停止し、問題になっているINSQに関連するESQ動作を再開し、さらに、ステップ82では、INSQの状況を「オン」から「オフ」へ変化させる。
【0081】
さらに、記憶装置は、ステップ82において、INSQの状況を「オン」から「オフ」へ変化させることによりINSQテーブルを更新する。その後、ステップ84において、記憶装置はINSQテーブルの次の項目(すなわち、現時点では第2項目)に移り、INSQテーブルの第1項目に関して述べた処理を第2項目について繰り返し、ステップ74においてヌル項目に遭遇し、INSQ評価処理が終了するまで残りのINSQについて繰り返す。記憶装置がホスト装置から受信するコマンドごとに、同じINSQ評価処理が繰り返される。
【0082】
(ステップ80において「いいえ」と示されたように)EOSしきい値を上回らない場合、このことは、問題になっているINSQが依然としてアクティブであることを意味し、従って、現在の状態(すなわち、「オン」)が変化しないままでいる必要がある。従って、記憶装置はINSQ状態を変化させず、次のINSQの状況を評価する。
【0083】
図8には、本開示の例示的な実施形態による記憶装置800を示す。記憶装置800は、フラッシュメモリとすることができる大容量記憶領域808と、データおよび制御線806を介して大容量記憶領域808を管理し、ホストインターフェイス802を介してホスト装置850と通信するコントローラ840とを含む。コントローラ840は、例えば、「読み取り」、「書き込み」および「消去」動作を制御し、ホスト装置850との通信を制御することにより大容量記憶領域808へのデータ記憶および大容量記憶領域808からのデータ取得と、ホスト装置850へ/からのデータ転送とのすべてを制御する。また、コントローラ840は、消耗の均等化などのような内部「ハウスキーピング」動作を実行する。当該技術分野において、コントローラ840のこれらの動作は既知である。
【0084】
大容量記憶領域808の一部分を用いて静的INSQテーブル810、動的INSQテーブル820およびISQ/ESQテーブル830を保持することができる。静的INSQテーブル810は、予め定義されたINSQと、静的INSQのBOS/EOSパラメータと、予め定義されたINSQに関係するしきい値とから成るリストを含むことができる。動的INSQテーブル820は、予め定義されたINSQの同一リストを含むことができ、または、INSQテーブル820の項目を、INSQテーブル810に保持されたINSQと関連付けることができる。動的INSQテーブル820は、動的INSQのBOS/EOSパラメータと、予め定義されたINSQに関係するしきい値とをさらに含むことができる。
【0085】
ISQ/ESQテーブル830は、予め定義されたINSQと関連または関係する複数の第1連の内部動作(すなわち、複数連のESQ動作)および複数の第2連の内部動作(すなわち、複数連のISQ動作)を含むことができる。すなわち、第1連の動作および第2連の動作は、予め定義されたINSQの各INSQと関連する。静的INSQテーブル810は図4のINSQテーブルと同一または類似することができ、動的INSQテーブル820は図5のINSQテーブルと同一または類似することができる。静的INSQテーブル810および動的INSQテーブル820を1つのINSQテーブルと見なすことができ、一般的に、INSQテーブル810、INSQテーブル820およびISQ/ESQテーブル830を1つの関係データベースの一部分とするか、または1つの関係データベースとして管理することができる。静的パラメータおよびしきい値のような静的情報を不揮発性メモリに保持する必要がある一方で、動的BOSに関係する値、動的EOSに関係する値、およびINSQの現在の状況のような動的情報をランダムアクセスメモリ(「RAM」)のような揮発性メモリ(または不揮発性メモリ)に保持することができる。
【0086】
ホスト装置850は記憶コマンドを記憶装置800に送信し、記憶装置が受信したコマンドごとに、コントローラ840は、コマンドが属するか、またはコマンドを関連付けることができるINSQに対してルックアップテーブル810,820を検索する。コントローラ840がこのようなINSQをルックアップINSQテーブル810,820内で検出した場合、コントローラ840は、動的INSQテーブル820において、このINSQに属する動的パラメータの値を更新し、静的INSQテーブル810に保持された静的しきい値に基づいて、INSQが置かれている状態(すなわち、「INSQが進行中にある」か、「INSQが進行中にない」か)を判断するか、または、INSQが状態を変化させたか否か、または変化させようとしているか否かを判断する。INSQが状態を変化させたか、または変化させようとしているとコントローラ840が判断した場合、コントローラ840は、場合によって、実行または再開可能にすべきか、または回避または一時停止させるべきINSQと関連するISQまたはESQ動作が存在するか否かについて、ルックアップテーブルISQ/ESQテーブル830を検査する。
【0087】
言い換えれば、コントローラ840は、ホスト装置850から受信された1つ以上の記憶コマンドを用いて、予め定義されたINSQの1つ以上のいずれかが「非アクティブ」状態から「アクティブ」状態へ、または「アクティブ」状態から「非アクティブ」状態へ遷移しているか、または遷移したかを判断し、予め定義されたINSQの「非アクティブ」状態から「アクティブ」状態への遷移に応答して、コントローラ840は、このINSQに関するESQ動作の実行を回避または一時停止し、このINSQに関するISQ動作の実行を許可または実行するように適合されている。
【0088】
「アクティブ」状態から「非アクティブ」状態へのINSQの遷移に応答して、コントローラ840はESQ動作の実行を許可または再開し、ISQ動作の実行を回避または一時停止する。例えば、図4のテーブル40および図5のテーブル50に関して本願明細書で説明されているように、コントローラ840は、ホスト装置から受信された1つ以上のコマンドおよび/または1つ以上のコマンドから導き出された情報が、予め定義されたBOS条件またはEOS条件を満足するか否かを判断することにより、「非アクティブ」状態から「アクティブ」状態へ、および、「アクティブ」状態から「非アクティブ」状態へのINSQの遷移を判断する。コントローラ840は、動的変数/パラメータの値または累積値を、予め定義された静的パラメータ(すなわち、事前に設定された条件)と比較することにより、(1つ以上の)コマンドおよび/または(1つ以上の)コマンドから導き出された情報が、予め定義されたBOS条件またはEOS条件を満足するか否かを判断する。
【0089】
コントローラ840は、記憶装置がホスト装置から受信した1つ以上のコマンドに関する事象、またはこれらコマンドから導き出された事象をカウントするカウンタ860のようなカウンタを用いることができる。コントローラ840は、様々な時間関連の計算、例えば、データ読み取り速度およびデータ書き込み速度を実行するタイマ870のようなタイマを有することができる。
【0090】
図9には、本開示の例示的な実施形態に従って記憶装置のコントローラにより用いられるデータベース900を示す。ルックアップテーブル905は、4つの予め定義されたINSQ910の例示的なリストを含む。図9には示されていないが、ルックアップテーブル905は、図8のルックアップテーブル810,820に保持される種類のパラメータおよびしきい値、またはこの種類に類似するパラメータおよびしきい値をも含み、これらパラメータおよびしきい値は例示的なINSQ910と関連する。図8のISQ/ESQテーブル830と同一または類似することができるルックアップテーブル930は、予め定義されたINSQ910と関連するISQおよびESQ動作の例示的なリストを含む。例えば、ISQ901およびESQ911は、「マルチショット画像獲得」と称されるINSQ910と関連し、ISQ902およびESQ912を、「MP3再生」と称されるINSQ910と関連付けることができ、ISQ903およびESQ913を、「ブート画像更新」と称されるINSQ910と関連付けることができ、ISQ904およびESQ914を、「ブート画像読み取り」と称されるINSQ910と関連付けることができる。
【0091】
記憶コマンドは図8のホスト装置850のようなホスト装置により送出および送信され、図8の記憶装置800のような記憶装置で受信される。記憶コマンドは矢印915として象徴的に示されている。記憶コマンド915の受信に応答して、記憶装置のコントローラは、記憶コマンド915がINSQ910のいずれか1つに属するか否か、または、INSQ910のいずれか1つと関連付けることができるか否かを検査する。図9に示される例では、受信された記憶コマンド915は、(関連性が破線920により示されているように、)「マルチショット画像獲得」と称されるINSQ910に属すると検出され、または、このINSQ910と関連付けることができると検出される。
【0092】
図5のテーブル50に関して前述したように、動的INSQテーブルは、予め定義されたINSQごとに現在の状況(すなわち、「オン」または「オフ」)を保持し、問題になっているINSQが「オン」である場合、記憶装置のコントローラは所定のINSQに対して(1つ以上の)EOSパラメータおよび(1つ以上の)EOSしきい値を検査する。そうでない場合(すなわち、問題になっているINSQが「オフ」である場合)、記憶装置のコントローラは、このINSQと関連する(1つ以上の)BOSパラメータおよび(1つ以上の)BOSしきい値を検査する。再度、図9を参照して、「マルチショット画像獲得」INSQと関連する(1つ以上の)動的パラメータを更新し、(1つ以上の)対応のしきい値を精査することにより、記憶装置のコントローラは、「マルチショット画像獲得」INSQが状態を「オン」から「オフ」へ、または「オフ」から「オン」へ変化しているか、または変化したことを「理解する」。
【0093】
「マルチショット画像獲得」INSQが状態を「オン」から「オフ」へ変化しているか、または変化した場合、このことは、ISQ動作を回避または一時停止し、ESQ動作の実行を許可または再開すべきことを意味する。「マルチショット画像獲得」INSQが状態を「オフ」から「オン」へ変化しているか、または変化した場合、このことは、ISQ動作を許可、再開または実行し、ESQ動作を回避または一時停止すべきことを意味する。従って、記憶装置のコントローラは、「マルチショット画像獲得」INSQに関連するISQおよびESQ動作に対してISQ/ESQルックアップテーブル930を検索する。前述したように、ISQ動作901およびESQ動作911は「マルチショット画像獲得」INSQと関連付けられ、関連性は破線921,931としてそれぞれ示されている。ISQ動作901は、「ISQ−1」、「ISQ−2」、「ISQ−3」、「ISQ−4」および「ISQ−5」として指定されたISQ動作を含む。ISQ動作「ISQ−1」を、例えば、予想データの予測およびキャッシングに関与する、例えば、1つまたは一連の動作とすることができる。ESQ動作911は、「ESQ−1」、「ESQ−2」、「ESQ−3」、「ESQ−4」および「ESQ−5」として指定されたESQ動作を含む。ESQ動作「ESQ−1」を、例えば、静的な消耗の均等化に関与する、例えば、1つまたは一連の動作とすることができる。EOSおよびBOSパラメータの種類、それらのしきい値、並びに、ISQおよびESQ動作の種類は、予め定義されたINSQごとにINSQの種類に従って設定または選択される。これらパラメータ、しきい値および動作の種類の適切な設定または選択は、当該技術分野において既知である。
【0094】
図10には、本開示の例示的な実施形態に従って記憶装置により利用可能な方法を示す。ステップ1010では、コマンドの1つ以上の統合シーケンスを定義する。コマンドの1つ以上の定義された各統合シーケンスを「アクティブ」状態および「非アクティブ」状態にすることができる。ステップ1020では、コマンドの1つ以上の定義された統合シーケンスごとに、および、これらの各統合シーケンスと関連して、第1連の内部動作(「ESQ」)および第2連の内部動作(「ISQ」)を定義する。第1連の内部動作は、コマンドのそれぞれの統合シーケンスが「アクティブ」状態である間、実行すべきでない動作を含み、第2連の内部動作は、コマンドのそれぞれの統合シーケンスが「アクティブ」状態である間、実行が許可されているか、または実行すべき動作を含む。
【0095】
ステップ1030では、記憶装置はホスト装置からコマンドを受信し、ステップ1040では、受信されたコマンドから、場合によっては以前に受信されたコマンドから導き出された情報に基づいて、コマンドの1つ以上の定義された統合シーケンスのいずれか1つが「アクティブ」状態であるか否か、または、「非アクティブ」状態から「アクティブ」状態へ遷移しているか否かを判断する。
【0096】
(ステップ1040において「はい」と示されたように、)コマンドの1つ以上の定義された統合シーケンスのいずれか1つが「アクティブ」状態であるか、または、「非アクティブ」状態から「アクティブ」状態へ遷移している場合、ステップ1050では、アクティブであるコマンドの統合シーケンスに対して、および、これらと関連して定義された第1連の内部動作(すなわち、ESQ動作)のいずれの動作も実行させないようにするか、または、その実行を一時停止し、ステップ1060では、アクティブであるコマンドの統合シーケンスと関連する第2連の内部動作(すなわち、ISQ動作)の1つ以上の動作を、実行がまだ開始されていない場合に実行することを許可し、あるいは実行が一時停止されている場合、それら実行を再開することを許可する。ある場合には、記憶装置の効率に、または、全体としての記憶システムにいくらか、またはかなり肯定的に寄与する特定の動作を実行することは好ましくさえあり、または、強く推奨することさえできる。
【0097】
しかし、(ステップ1040において「いいえ」と示されたように、)コマンドの1つ以上の定義された統合シーケンスのいずれか1つが「アクティブ」状態でない場合、または、「非アクティブ」状態から「アクティブ」状態へ遷移していない場合、すなわち、統合シーケンスが非アクティブ状態にある場合、ステップ1070では、非アクティブであるコマンドの統合シーケンスに対して、および、これらと関連して定義された第2連の内部動作(ISQ)のいずれの動作も実行させないようにし、ステップ1080では、非アクティブであるコマンドの統合シーケンスに対して、および、これらと関連して定義された第1連の内部動作(ESQ)の動作を実行することを許可する。ステップ1040に関して、図6および図7にそれぞれ関連してより詳細に説明したように、特定のINSQがアクティブまたは非アクティブであることの判断は、INSQの現在の状況が「オン」である(または、この状況が「オフ」から「オン」へ遷移している)か、または「オフ」である(または、この状態が「オン」から「オフ」へ遷移している)かを検査した後に行われる。
【0098】
コマンドの1つ以上の定義された統合シーケンスの少なくとも1つをマルチメディアコンテンツの再生、マルチメディアコンテンツまたは画像の獲得、データ同期化、またはブートコマンドと関連付けることができる。
【0099】
INSQに対して、およびINSQと関連して定義された第1連の内部動作(ESQ)および第2連の内部動作(ISQ)の各々は、フラッシュ管理動作、送信/受信データの暗号化/暗号化解除、送信/受信データの圧縮/解凍、アンチウィルス動作、デフラグ動作、データのバックアップおよびデータフォーマットの変更のいずれかを含むことができる。フラッシュ管理動作は、ガーベッジコレクション、誤り訂正機構のアクティブ化、記憶装置の高速フラッシュ記憶領域へのデータのキャッシング、キャッシングデータのフラッシュ、低電力モードの使用および静的な消耗の均等化を含むことができる。
【0100】
一例では、音楽ファイルの再生と関連するINSQが進行中(すなわち、アクティブ)である間、「低電力モード」動作を許可することができる。すなわち、MP3プレーヤつまり例示的なホスト装置が音楽ファイルを再生する場合、記憶装置が、音楽ファイルを再生するためにINSQ(すなわち、一連のコマンド)を受信している間、記憶装置は「低電力モード」を用いることができる。音楽ファイルの再生は、約16KB/sec、または16KB/secに近い一定のビットレートで音楽フィルを読み取ることを必要とするので、その実行が、指定されたビットレート(すなわち、16KB/sec)に悪影響を及ぼさない場合だけ、(1つ以上の)低電力モード動作を許可することができる。内部動作(ISQ)を、所定のINSQに関して「許可する」、「奨励する」または「必須とする」ことができる。この例では、「低電力モード」動作が「許可され」、このことは、「MP3再生」INSQが進行中である間、これら動作を実行するか、または実行させないようにすることが、全体として記憶システムの全性能にそれほど否定的または肯定的に寄与しないことを意味する。
【0101】
一例では、ホスト装置がオペレーティングシステム(「OS」)のビット画像を記憶装置から読み取っている間、記憶装置は誤り訂正機構を用いてデータ読み取り信頼性を向上させることができる。OS画像の読み取りをINSQとして定義することができ、エラー訂正動作を、OS画像読み取りINSQに対して定義することができる。この例では、可能な範囲内で、データ読み取り処理の信頼性を改善する行動が取られることが奨励されるので、「OS画像読み取り」動作は「奨励される」。
【0102】
一例では、デジタルカメラすなわち例示的なホスト装置がマルチショット画像を記憶装置に記憶している間、記憶装置はデータキャッシング動作を用いることができる。記憶装置へのマルチショット画像の記憶をINSQとして定義することができ、データキャッシング動作をマルチショット画像記憶INSQに対して定義することができる。この例では、デジタルカメラが画像を記憶装置へ転送する速度は、記憶装置が画像を記憶できる速度よりも速いので、「データキャッシング」動作は「必須とされる」。
【0103】
INSQが進行中である場合、幾つかの動作は奨励されないか、または回避されるべきである。一例では、MP3プレーヤが音楽ファイルを再生している間、このような環境の下、アンチウィルス動作を実行することが音声の一時的な中断のような干渉を生じさせることがあるので、アンチウィルス動作の実行は奨励されない。一例では、デジタルカメラがマルチショット画像を記憶装置に記憶している間、このような環境の下、ガーベッジコレクション動作を実行することが画像の損失または破損を生じさせることがあるので、ガーベッジコレクション動作の実行を回避すべきである。
【0104】
幾つかのINSQが進行中である間、内部動作を実行することを許可でき、または、奨励または必須とすることができ、その一方で、幾つかの他のINSQが進行中である間、同じ内部動作を回避すべきであるとすることができ、または、奨励しないことができることに留意すべきである。従って、このような内部動作を、1つのINSQに対して定義された第1連の内部動作(ESQ)の動作として、および、別のINSQに対して定義された第2連の内部動作(ISQ)の動作として同時に定義することができる。
【0105】
例えば、OSビット画像の更新に関与するINSQに対してエラー訂正動作の実行が奨励されるが、エラー訂正動作の実行がかなりの電力および計算資源を消費するので、INSQが音楽ファイルの再生に関与する場合にはエラー訂正動作を回避すべきである。
【0106】
本願明細書および特許請求の範囲では、「備える」、「含む」および「有する」なる動詞の各々、およびその同根語は、動詞の1つ以上の目的語が必ずしも、動詞の1つ以上の目的語の構成部分、構成要素、要素または部分の列挙したすべてをそろえているとは限らないことを示すのに用いられている。本願明細書において単数複数について記載のないものは、文脈に応じて、文法上対象となるものの1つまたは2つ以上(すなわち、少なくとも1つ)を意味する。一例として、「要素」は、文脈に応じて1つの要素または2つ以上の要素を意味する。本願明細書において、「含む」なる用語は、「〜を含むがこれに限定されるものではない」なる語句を意味するのに用いられ、この語句とほとんど同じ意味で用いられている。本願明細書において用いられる「または」、「および」なる用語は、「および/または」なる用語を意味するのに用いられ、この用語とほとんど同じ意味で用いられている。ただし、文脈上他の意味を明確に示している場合を除く。本願明細書において用いられる「このような」なる用語は、「例えば〜だがこれに限らない」なる語句を意味するのに用いられ、この語句とほとんど同じ意味で用いられている。
【0107】
このように、本発明の例示的な実施形態を説明したが、当然のことながら、開示した実施形態の変更が本発明の範囲内にあることは当業者に明らかである。従って、代替の実施形態は、より多くのモジュール、より少ないモジュールおよび/または機能上等価なモジュールを含むことができる。例えば、記憶装置は、より多くの基準、より少ない基準、異なる基準、追加の基準または代替の基準を用いて、EOSまたはBOSが生じたか否かを決定することができる。
【図面の簡単な説明】
【0108】
【図1】本開示の例示的な実施形態に従ってINSQの状況を決定する、記憶装置により使用できる状態マシンである。
【図2】本開示に従ってINSQが「進行中でないINSQ」状態から「進行中であるINSQ」状態へ遷移する場合に記憶装置により取られるステップである。
【図3】本開示に従って「進行中であるINSQ」状態から「進行中でないINSQ」状態へINSQが遷移する場合に記憶装置により取られるステップである。
【図4】本開示の例示的な実施形態に従って静的情報を保持するINSQテーブルである。
【図5】本開示の例示的な実施形態に従って動的情報を保持するINSQテーブルである。
【図6】本開示の例示的な実施形態に従って「オフ」から「オン」へINSQの状態を変化させるため、記憶装置により利用可能な方法である。
【図7】本開示の例示的な実施形態に従って「オン」から「オフ」へINSQの状況を変化させるため、記憶装置により利用可能な方法である。
【図8】本開示の例示的な実施形態による記憶装置のブロック図である。
【図9】本開示の例示的な実施形態に従って記憶装置のコントローラにより用いられるデータベースである。
【図10】本開示の例示的な実施形態に従って記憶装置により利用可能な方法である。
【符号の説明】
【0109】
800 記憶装置
802 ホストインターフェイス
806 データおよび制御線
808 大容量記憶領域
810 静的INSQテーブル
820 動的INSQテーブル
830 ISQ/ESQテーブル
840 コントローラ
850 ホスト装置
860 カウンタ
870 タイマ

【特許請求の範囲】
【請求項1】
記憶装置により前記記憶装置の内部動作を処理する方法であって、
a)コマンドの1つ以上の統合シーケンスを定義するステップであって、前記コマンドの1つ以上の各統合シーケンスが「アクティブ」状態および「非アクティブ」状態となることができるステップと、
b)第1連の内部動作および第2連の内部動作を前記コマンドの1つ以上の各統合シーケンスと関連付けるステップであって、前記コマンドのそれぞれの統合シーケンスが前記「アクティブ」状態にある間、前記第1連の内部動作が、実行すべきでない動作であり、前記コマンドのそれぞれの統合シーケンスが前記「アクティブ」状態にある間、前記第2連の内部動作が、実行可能にされる動作であるステップと、
c)ホスト装置からコマンドを受信するステップと、
d)少なくとも前記受信されたコマンドから導き出された情報に基づいて、前記コマンドの1つ以上の統合シーケンスの1つが前記「アクティブ」状態にあるか否か、または、前記「非アクティブ」状態から前記「アクティブ」状態へ遷移しているか否かを判断するステップと、
e)前記コマンドの1つ以上の統合シーケンスの1つが前記「アクティブ」状態にあるか、または、前記「非アクティブ」状態から前記「アクティブ」状態へ遷移している場合、(i)前記コマンドのそれぞれの統合シーケンスと関連する前記第1連の内部動作のいずれの動作も実行させないようにするステップと、
を含む方法。
【請求項2】
請求項1記載の方法において、
前記ステップe)は、(ii)前記コマンドのそれぞれの統合シーケンスと関連する前記第2連の内部動作のいずれの動作も実行可能にするステップをさらに含む方法。
【請求項3】
請求項1記載の方法において、
f)前記コマンドの1つ以上の統合シーケンスの1つが前記「非アクティブ」状態にあるか、または、前記「アクティブ」状態から前記「非アクティブ」状態へ遷移している場合、(i)前記コマンドのそれぞれの統合シーケンスと関連する前記第1連の内部動作のいずれの動作も実行可能にし、(ii)前記コマンドのそれぞれの統合シーケンスと関連する前記第2連の内部動作のいずれの動作も実行させないようにするステップをさらに含む方法。
【請求項4】
請求項3記載の方法において、
前記コマンドの1つ以上の統合シーケンスの1つが前記「非アクティブ」状態から前記「アクティブ」状態へ遷移しているのか、前記「アクティブ」状態から前記「非アクティブ」状態へ遷移しているのかを判断することは、少なくとも前記受信されたコマンドから導き出された前記情報が、予め定義されたシーケンスの開始条件を満足するのか、予め定義されたシーケンスの終了条件を満足するのかを判断することを含む方法。
【請求項5】
請求項1記載の方法において、
前記コマンドの1つ以上の統合シーケンスの少なくとも1つは、マルチメディアコンテンツの再生と関連する方法。
【請求項6】
請求項1記載の方法において、
前記コマンドの1つ以上の統合シーケンスの少なくとも1つは、マルチメディアコンテンツまたは画像の獲得と関連する方法。
【請求項7】
請求項1記載の方法において、
前記コマンドの1つ以上の統合シーケンスの少なくとも1つは、データ同期化と関連する方法。
【請求項8】
請求項1記載の方法において、
前記コマンドの1つ以上の統合シーケンスの少なくとも1つは、ブートコマンドと関連する方法。
【請求項9】
請求項1記載の方法において、
前記第1連の内部動作の動作は、
−フラッシュ管理動作、
−送信/受信データの暗号化/暗号化解除、
−送信/受信データの圧縮/解凍、
−アンチウィルス動作、
−デフラグ動作、
−高耐久化、
−データのバックアップ、および
−データフォーマットの変更
より成る群から選択される方法。
【請求項10】
請求項9記載の方法において、
前記フラッシュ管理動作を、
−ガーベッジコレクション、
−誤り訂正機構の採用、
−高速フラッシュ記憶領域へのデータのキャッシング、
−キャッシングデータのフラッシュ、
−低電力モード動作、および
−静的な消耗の均等化
より成る群から選択することができる方法。
【請求項11】
請求項1記載の方法において、
前記第2連の内部動作の動作は、
−フラッシュ管理動作、
−送信/受信データの暗号化/暗号化解除、
−送信/受信データの圧縮/解凍、
−アンチウィルス動作、
−デフラグ動作、
−高耐久化、
−データのバックアップ、および
−データフォーマットの変更
より成る群から選択される方法。
【請求項12】
請求項11記載の方法において、
前記フラッシュ管理動作は、
−ガーベッジコレクション、
−誤り訂正機構の採用、
−高速フラッシュ記憶領域へのデータのキャッシング、
−キャッシングデータのフラッシュ、
−低電力モード動作、および
−静的な消耗の均等化
を含む方法。
【請求項13】
記憶装置であって、
a)ホスト装置から記憶コマンドを受信する通信インターフェイスと、
b)(i)コマンドの1つ以上の統合シーケンスであって、各々が「アクティブ」状態および「非アクティブ」状態となることができる統合シーケンスと、(ii)前記コマンドの1つ以上の各統合シーケンスと関連する第1連の内部動作および第2連の内部動作であって、前記コマンドのそれぞれの統合シーケンスが前記「アクティブ」状態にある間、実行すべきでない動作である第1連の内部動作と、前記コマンドのそれぞれの統合シーケンスが前記「アクティブ」状態にある間、実行可能にされる動作である第2連の内部動作と、を保持する大容量記憶領域と、
c)(i)前記通信インターフェイスを介して前記ホスト装置からコマンドを受信し、(ii)少なくとも前記受信されたコマンドから導き出された情報に基づいて、前記コマンドの1つ以上の統合シーケンスの1つが「アクティブ」状態にあるか否か、または、「非アクティブ」状態から「アクティブ」状態へ遷移しているか否かを判断するように適合されているコントローラと、を備え、
前記コマンドの1つ以上の統合シーケンスの1つが前記「アクティブ」状態にあるか、または前記「非アクティブ」状態から前記「アクティブ」状態へ遷移していることに応答して、前記コントローラは前記第1連のそれぞれの内部動作のいずれの動作も実行させないようにする記憶装置。
【請求項14】
請求項13記載の記憶装置において、
前記コントローラは、前記コマンドのそれぞれの統合シーケンスと関連する前記第2連の内部動作のいずれの動作も実行可能にするようにさらに適合されている記憶装置。
【請求項15】
請求項13記載の記憶装置において、
前記コントローラは、(ii)少なくとも前記受信されたコマンドから導き出された情報に基づいて、前記コマンドの1つ以上の統合シーケンスの1つが前記「非アクティブ」状態にあるか否か、または、前記「アクティブ」状態から前記「非アクティブ」状態へ遷移している否かを判断するようにさらに適合され、前記コマンドの1つ以上の統合シーケンスの1つが前記「非アクティブ」状態にあるか、または、前記「アクティブ」状態から前記「非アクティブ」状態へ遷移していることに応答して、前記コントローラは前記第1連のそれぞれの内部動作のいずれの動作も実行可能にする記憶装置。
【請求項16】
請求項15記載の記憶装置において、
前記コントローラは、前記ホスト装置から少なくとも前記受信されたコマンドから導き出された前記情報が、予め定義されたシーケンスの開始条件を満足するのか、予め定義されたシーケンスの終了条件を満足するのかを判断することにより、前記コマンドの1つ以上の統合シーケンスのいずれかが「非アクティブ」状態から「アクティブ」状態へ遷移しているのか、「アクティブ」状態から「非アクティブ」状態へ遷移しているのかを判断する記憶装置。
【請求項17】
請求項13記載の記憶装置において、
フラッシュメモリ装置である記憶装置。
【請求項18】
請求項13記載の記憶装置において、
前記コマンドの1つ以上の統合シーケンスの少なくとも1つは、マルチメディアコンテンツの再生と関連する記憶装置。
【請求項19】
請求項13記載の記憶装置において、
前記コマンドの1つ以上の統合シーケンスの少なくとも1つは、マルチメディアコンテンツの獲得と関連する記憶装置。
【請求項20】
請求項13記載の記憶装置において、
前記コマンドの1つ以上の統合シーケンスの少なくとも1つは、データ同期化コマンドと関連する記憶装置。
【請求項21】
請求項13記載の記憶装置において、
前記コマンドの1つ以上の統合シーケンスの少なくとも1つは、ブートコマンドと関連する記憶装置。
【請求項22】
請求項13記載の記憶装置において、
前記第1連の内部動作の動作は、
−フラッシュ管理動作、
−送信/受信データの暗号化/暗号化解除、
−送信/受信データの圧縮/解凍、
−アンチウィルス動作、
−デフラグ動作、
−高耐久化、
−データのバックアップ、および
−データフォーマットの変更
より成る群から選択される記憶装置。
【請求項23】
請求項22記載の記憶装置において、
前記フラッシュ管理動作は、
−ガーベッジコレクション、
−誤り訂正機構の採用、
−高速フラッシュ記憶領域へのデータのキャッシング、
−キャッシングデータのフラッシュ、
−低電力モードの使用、および
−静的な消耗の均等化
を含む記憶装置。
【請求項24】
請求項13記載の記憶装置において、
前記第2連の内部動作の動作は、
−フラッシュ管理動作、
−送信/受信データの暗号化/暗号化解除、
−送信/受信データの圧縮/解凍、
−アンチウィルス動作、
−デフラグ動作、
−高耐久化、
−データのバックアップ、および
−データフォーマットの変更
より成る群から選択される記憶装置。
【請求項25】
請求項24記載の記憶装置において、
前記フラッシュ管理動作は、
−ガーベッジコレクション、
−誤り訂正機構の採用、
−高速フラッシュ記憶領域へのデータのキャッシング、
−キャッシングデータのフラッシュ、
−低電力モードの使用、および
−静的な消耗の均等化
を含む記憶装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate