JP2010182216A - メモリコントローラ、不揮発性記憶装置、不揮発性記憶システムおよびプログラム - Google Patents
メモリコントローラ、不揮発性記憶装置、不揮発性記憶システムおよびプログラム Download PDFInfo
- Publication number
- JP2010182216A JP2010182216A JP2009026885A JP2009026885A JP2010182216A JP 2010182216 A JP2010182216 A JP 2010182216A JP 2009026885 A JP2009026885 A JP 2009026885A JP 2009026885 A JP2009026885 A JP 2009026885A JP 2010182216 A JP2010182216 A JP 2010182216A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- nonvolatile memory
- aggregation
- timeout
- time
- 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.)
- Pending
Links
Images
Abstract
【課題】不揮発性メモリの種類により決定される要因を考慮して、タイムアウト規定を守ることができる不揮発性記憶システムを提供する。
【解決手段】不揮発性記憶システム100では、不揮発性メモリ制御部214が、タイムアウト監視部213から出力される集約処理停止信号に基づいて、集約処理を中断させ、タイムアウトの発生を確実に防止することができる。その結果、不揮発性記憶システム100では、タイムアウト値(タイムアウト規定)を厳密に守ることができる。
【選択図】図1
【解決手段】不揮発性記憶システム100では、不揮発性メモリ制御部214が、タイムアウト監視部213から出力される集約処理停止信号に基づいて、集約処理を中断させ、タイムアウトの発生を確実に防止することができる。その結果、不揮発性記憶システム100では、タイムアウト値(タイムアウト規定)を厳密に守ることができる。
【選択図】図1
Description
本発明は、メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システムおよびプログラムに関する。特に、不揮発性メモリにおいて不要な情報が記憶されている領域を開放し、記憶可能領域を増加させる集約処理に関する。
書き換え可能な不揮発性メモリを備える不揮発性記憶モジュールには、主に、非脱着型と脱着型とがある。非着脱型の不揮発性記憶モジュールは、例えば、デジタルスチルカメラやポータブルオーディオ機器本体内に組み込まれて使用される。一方、着脱型の不揮発性記憶モジュールは、半導体メモリカードに用いられることが多く、近年、その需要が高まっている。
半導体メモリカードは、光ディスクやテープメディアなどと比較して非常に高価格なものではあるが、小型・軽量であり、耐震性に優れ、取り扱いも簡便である等のメリットを有している。そのため、半導体メモリカードは、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体として用いられることが多く、その需要が広まっている。また、近年では、半導体メモリカードの大容量化が進んでおり、この大容量の半導体メモリカードを用いて、パーソナルコンピュータのハードディスクの代替装置や、デジタルテレビの録画メディア等を実現させるための応用検討も進んでいる。
半導体メモリカードは、光ディスクやテープメディアなどと比較して非常に高価格なものではあるが、小型・軽量であり、耐震性に優れ、取り扱いも簡便である等のメリットを有している。そのため、半導体メモリカードは、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体として用いられることが多く、その需要が広まっている。また、近年では、半導体メモリカードの大容量化が進んでおり、この大容量の半導体メモリカードを用いて、パーソナルコンピュータのハードディスクの代替装置や、デジタルテレビの録画メディア等を実現させるための応用検討も進んでいる。
半導体メモリカードは、一般的に、不揮発性の主記憶メモリとして用いられるフラッシュメモリと、それを制御するメモリコントローラを有している。
メモリコントローラは、デジタルスチルカメラやパーソナルコンピュータ本体などのアクセスモジュールからの情報の読み出し/書き込み指示に応じて、フラッシュメモリに対して、情報の読み出し/書き込み制御を行う。
フラッシュメモリは、一般的に、情報の書き込み/読み出しを「ページ」単位で行い、情報の消去を「ブロック」単位で行う。
「ブロック」は、フラッシュメモリが情報の消去を行う単位であり、複数の「ページ」から形成される(ページ単位で形成される)。1ブロック当たりの容量としては、通常、512kByte或いは256kByteが採用されることが多い。
メモリコントローラは、デジタルスチルカメラやパーソナルコンピュータ本体などのアクセスモジュールからの情報の読み出し/書き込み指示に応じて、フラッシュメモリに対して、情報の読み出し/書き込み制御を行う。
フラッシュメモリは、一般的に、情報の書き込み/読み出しを「ページ」単位で行い、情報の消去を「ブロック」単位で行う。
「ブロック」は、フラッシュメモリが情報の消去を行う単位であり、複数の「ページ」から形成される(ページ単位で形成される)。1ブロック当たりの容量としては、通常、512kByte或いは256kByteが採用されることが多い。
「ページ」は、フラッシュメモリが情報の書き込み/読み出しを行う単位である。「ページ」は、予め定められた数のメモリセルで構成される。1ページ当たりの容量としては、2kByte或いは4kByteが採用されることが多い。
フラッシュメモリは、データ(情報)をオーバーライト(上書き)して更新することができないため、データ(情報)を書き込むのに十分な空き領域が存在するブロックに対して書き込みを行うことでデータ(情報)を記憶する。このとき、一部領域にのみ情報が書き込まれたブロックが順次発生することとなり、データを書き込む際に十分な空き領域を有するブロックが次第に減少する。これに対処するため、「集約処理」と呼ばれる処理が実行される。「集約処理」とは、不揮発性メモリにおいて、不要な情報(例えば、重複している情報)が記憶されている領域を開放し、記憶可能領域を増加させる処理のことをいい、具体的には、以下のように実行される。
(1)まず、一部領域にのみ情報が書き込まれているブロック(これを「ブロックA」とする。)に対し、当該ブロックAに書き込まれている情報のうち、必要な情報のみを、当該必要な情報を書き込みための容量を確保可能な他のブロック(これを「ブロックB」とする。)に移動する。なお、このとき、ブロックAに論理順(論理ページ順)に書き込まれていない情報については、論理順(論理ページ順)に並べ替えた後、またはブロックAからブロックBに移動する際にブロックAから論理順にデータを読み出すことで、論理順(論理ページ順)となった情報をブロックBに書き込み、ブロックAの必要な情報を、ブロックBに移動する。
(2)次に、必要な情報をブロックAからブロックBに移動した後、ブロックA全体に対して消去処理を実行する。
フラッシュメモリは、データ(情報)をオーバーライト(上書き)して更新することができないため、データ(情報)を書き込むのに十分な空き領域が存在するブロックに対して書き込みを行うことでデータ(情報)を記憶する。このとき、一部領域にのみ情報が書き込まれたブロックが順次発生することとなり、データを書き込む際に十分な空き領域を有するブロックが次第に減少する。これに対処するため、「集約処理」と呼ばれる処理が実行される。「集約処理」とは、不揮発性メモリにおいて、不要な情報(例えば、重複している情報)が記憶されている領域を開放し、記憶可能領域を増加させる処理のことをいい、具体的には、以下のように実行される。
(1)まず、一部領域にのみ情報が書き込まれているブロック(これを「ブロックA」とする。)に対し、当該ブロックAに書き込まれている情報のうち、必要な情報のみを、当該必要な情報を書き込みための容量を確保可能な他のブロック(これを「ブロックB」とする。)に移動する。なお、このとき、ブロックAに論理順(論理ページ順)に書き込まれていない情報については、論理順(論理ページ順)に並べ替えた後、またはブロックAからブロックBに移動する際にブロックAから論理順にデータを読み出すことで、論理順(論理ページ順)となった情報をブロックBに書き込み、ブロックAの必要な情報を、ブロックBに移動する。
(2)次に、必要な情報をブロックAからブロックBに移動した後、ブロックA全体に対して消去処理を実行する。
これにより、不揮発性メモリ(例えば、フラッシュメモリ)において、不要な情報が記憶されている領域を開放し、記憶可能領域を増加させることができる。
集約処理の一例について、図7(a)および(b)を用いて説明する。
図7(a)に示すように、ブロックAにおいて、必要なデータ(情報)が「必要データ2」、「必要データ1」、「必要データ3」、「必要データ0」の順で、ページ単位に書き込まれており、不要なデータ(情報)が、「不要データ0」、「不要データ1」、「不要データ2」、「不要データ3」、「不要データ4」の順で、ページ単位に書き込まれている。そして、「必要データ0」〜「必要データ3」の容量分以上の空き容量を有するブロックB(図7の例では、ブロックBは、消去済みブロックであり、データは一切書き込まれていない状態のブロックである。)を移動先ブロックとする。
集約処理の一例について、図7(a)および(b)を用いて説明する。
図7(a)に示すように、ブロックAにおいて、必要なデータ(情報)が「必要データ2」、「必要データ1」、「必要データ3」、「必要データ0」の順で、ページ単位に書き込まれており、不要なデータ(情報)が、「不要データ0」、「不要データ1」、「不要データ2」、「不要データ3」、「不要データ4」の順で、ページ単位に書き込まれている。そして、「必要データ0」〜「必要データ3」の容量分以上の空き容量を有するブロックB(図7の例では、ブロックBは、消去済みブロックであり、データは一切書き込まれていない状態のブロックである。)を移動先ブロックとする。
ブロックAにおいて、必要データは、論理順(論理ページ順)に書き込まれていないので、必要データを論理順(論理ページ順)に並べ替える。そして、論理順(論理ページ順)に並べ替えられた必要データを消去済みブロックであるブロックBに書き込んでいく。
そして、旧ブロックであるブロックAに対してデータ消去処理を実行する。
これにより、不揮発性メモリのブロックAおよびブロックBは、図7(b)に示す状態となり、ブロックAが解放され、必要なデータのみがブロックBに移動され、論理順にデータが記録される。
なお、集約処理は、常に行われるわけではなく、不揮発性メモリにおいてデータを書き込み時に必要に応じて行われる。この為、集約処理が実行される場合、書き込み処理の時間が、集約処理が実行されない場合に比べ長くなる。
そして、旧ブロックであるブロックAに対してデータ消去処理を実行する。
これにより、不揮発性メモリのブロックAおよびブロックBは、図7(b)に示す状態となり、ブロックAが解放され、必要なデータのみがブロックBに移動され、論理順にデータが記録される。
なお、集約処理は、常に行われるわけではなく、不揮発性メモリにおいてデータを書き込み時に必要に応じて行われる。この為、集約処理が実行される場合、書き込み処理の時間が、集約処理が実行されない場合に比べ長くなる。
これに対して、集約処理を分割するという方法および当該方法を実行する不揮発性記憶装置の一例が、特許文献1に開示されている。特許文献1に開示されている従来の不揮発性記憶装置の動作について、図8を用いて説明する。
従来の不揮発性記憶装置では、データ書き込み等の消去処理以外の処理(以下、「消去外処理」という。)を実行する際に、不揮発性メモリにおいて空き容量が不足した場合、当該空き容量を確保すべく消去外処理の実行前に集約処理が実行される。
図8は、従来の不揮発性記憶装置の概念的動作フローを示したものである。なお、図8は、消去外処理T1が実行された後、不揮発性メモリにおいて空き容量が確保できなくなった場合の動作フローを示している。
図8に示すように、従来の不揮発性記憶装置は、消去外処理T1を実行した後、不揮発性メモリにおいて空き容量を確保すべく集約処理G1を実行する。このとき、従来の不揮発性記憶装置は、集約処理G1を、データ移動処理Gd1、消去前処理Gr1、消去本処理Ge1、消去後処理Go1の各処理に分割して(以下、この分割した処理を「GC構成処理」という。)、各分割した処理を実行することで集約処理G1を実行する。
従来の不揮発性記憶装置では、データ書き込み等の消去処理以外の処理(以下、「消去外処理」という。)を実行する際に、不揮発性メモリにおいて空き容量が不足した場合、当該空き容量を確保すべく消去外処理の実行前に集約処理が実行される。
図8は、従来の不揮発性記憶装置の概念的動作フローを示したものである。なお、図8は、消去外処理T1が実行された後、不揮発性メモリにおいて空き容量が確保できなくなった場合の動作フローを示している。
図8に示すように、従来の不揮発性記憶装置は、消去外処理T1を実行した後、不揮発性メモリにおいて空き容量を確保すべく集約処理G1を実行する。このとき、従来の不揮発性記憶装置は、集約処理G1を、データ移動処理Gd1、消去前処理Gr1、消去本処理Ge1、消去後処理Go1の各処理に分割して(以下、この分割した処理を「GC構成処理」という。)、各分割した処理を実行することで集約処理G1を実行する。
そして、従来の不揮発性記憶装置は、各GC構成処理が終了した時点で、集約処理を中断して、消去外処理を実行する。即ち、従来の不揮発性記憶装置は、次のように、集約処理G1および消去外処理を実行する。
(1)データ移動処理Gd1を終了後に、消去外処理T2を実行する。
(2)消去外処理T2の終了後に、消去前処理Gr1を実行する。
(3)消去前処理Gr1を終了後に、消去外処理T3を実行する。
(4)消去外処理T3の終了後に、消去本処理Ge1を実行する。
(5)消去本処理Ge1を終了後に、消去外処理T4を実行する。
(6)消去外処理T4の終了後に、消去後処理Go1を実行する。
(7)消去後処理Go1が終了して集約処理G1が完了すると、その後は、空き容量が不足するまで、更に、他の消去外処理T5、T6、…を順次実行する。
(1)データ移動処理Gd1を終了後に、消去外処理T2を実行する。
(2)消去外処理T2の終了後に、消去前処理Gr1を実行する。
(3)消去前処理Gr1を終了後に、消去外処理T3を実行する。
(4)消去外処理T3の終了後に、消去本処理Ge1を実行する。
(5)消去本処理Ge1を終了後に、消去外処理T4を実行する。
(6)消去外処理T4の終了後に、消去後処理Go1を実行する。
(7)消去後処理Go1が終了して集約処理G1が完了すると、その後は、空き容量が不足するまで、更に、他の消去外処理T5、T6、…を順次実行する。
従来の不揮発性記憶装置では、このように処理を実行することで、集約処理の実行を伴う書き込み処理の処理時間が、集約処理の実行を伴わない場合に比べて、著しく長くなることを防止している。
特開2008−146341(第7−9頁、第1図)
ところで、不揮発性記憶装置において、通常、処理命令に対するタイムアウト値が規定されている。つまり、不揮発性記憶装置において、ある一定期間中に、処理命令に対する応答が無かった場合、デッドロックが発生するのを避けるために、タイムアウト規定(タイムアウト値の規定)が設けられている。不揮発性記憶装置では、このタイムアウト規定に適合するように、集約処理を行う必要がある。
また、不揮発性記憶装置に搭載されているフラッシュメモリの種類(品種)によって、Program Busy時間、Erase Busy時間、ページサイズ、ライトサイクルタイム、リードサイクルタイム、1ブロック内のページ数が異なる。不揮発性記憶装置では、これらのフラッシュメモリの種類(品種)により決定される要因を考慮して、タイムアウト規定に適合するように制御する必要がある。
また、不揮発性記憶装置に搭載されているフラッシュメモリの種類(品種)によって、Program Busy時間、Erase Busy時間、ページサイズ、ライトサイクルタイム、リードサイクルタイム、1ブロック内のページ数が異なる。不揮発性記憶装置では、これらのフラッシュメモリの種類(品種)により決定される要因を考慮して、タイムアウト規定に適合するように制御する必要がある。
しかしながら、従来の不揮発性記憶装置で実行される書き込み方法では、タイムアウト規定を守れない場合が発生するという問題がある。
本発明は上記問題点に鑑み、不揮発性メモリ(例えば、フラッシュメモリ)の種類(品種)により決定される要因を考慮して、タイムアウト規定を守ることができるメモリコントローラ、不揮発性記憶装置、不揮発性記憶システムおよびプログラムを提供することを目的とする。
本発明は上記問題点に鑑み、不揮発性メモリ(例えば、フラッシュメモリ)の種類(品種)により決定される要因を考慮して、タイムアウト規定を守ることができるメモリコントローラ、不揮発性記憶装置、不揮発性記憶システムおよびプログラムを提供することを目的とする。
第1の発明は、所定のコマンドに基づいて、不揮発性メモリに対してデータの読み出し/書き込み制御を行うメモリコントローラであって、不揮発性メモリ制御部と、タイムアウト値取得部と、タイムアウト監視部と、を備える。
不揮発性メモリ制御部は、所定のコマンドに基づいて不揮発性メモリに対してデータの読み出し/書き込み処理を行うとともに、不揮発性メモリにおける不要な情報が記憶されている領域を開放し、不揮発性メモリの記憶可能領域を増加させる処理である集約処理を実行する。タイムアウト値取得部は、所定のコマンドに対するタイムアウト値を取得する。タイムアウト監視部は、所定のコマンドに基づいて、不揮発性メモリ制御部により実行される処理が開始された場合、処理の開始時点からの経過時間を測定し、経過時間がタイムアウト値を超える前の時刻において、集約処理停止信号を不揮発性メモリ制御部に出力する。そして、不揮発性メモリ制御部は、タイムアウト監視部から集約処理停止信号が出力された場合であり、かつ、集約処理が終了していない場合、集約処理を中断させる。
不揮発性メモリ制御部は、所定のコマンドに基づいて不揮発性メモリに対してデータの読み出し/書き込み処理を行うとともに、不揮発性メモリにおける不要な情報が記憶されている領域を開放し、不揮発性メモリの記憶可能領域を増加させる処理である集約処理を実行する。タイムアウト値取得部は、所定のコマンドに対するタイムアウト値を取得する。タイムアウト監視部は、所定のコマンドに基づいて、不揮発性メモリ制御部により実行される処理が開始された場合、処理の開始時点からの経過時間を測定し、経過時間がタイムアウト値を超える前の時刻において、集約処理停止信号を不揮発性メモリ制御部に出力する。そして、不揮発性メモリ制御部は、タイムアウト監視部から集約処理停止信号が出力された場合であり、かつ、集約処理が終了していない場合、集約処理を中断させる。
このメモリコントローラでは、タイムアウト値取得部により、所定のコマンドに対するタイムアウト値を取得し、所定のコマンドに基づいて、不揮発性メモリ制御部により実行される処理が開始された場合、処理の開始時点からの経過時間を測定し、経過時間がタイムアウト値を超える前の時刻において、集約処理停止信号を不揮発性メモリ制御部に出力する。そして、タイムアウト監視部から出力される集約処理停止信号に基づいて、集約処理が中断されるので、タイムアウトの発生を確実に防止することができる。
第2の発明は、第1の発明であって、不揮発性メモリ制御部は、第1ステップ処理から第Nステップ処理(N:2以上の自然数)の複数のステップ処理を行うことで、集約処理を実行する。また、タイムアウト監視部は、所定のコマンドに基づく処理TA1とし、集約処理の第1ステップ処理から第kステップ処理(kは、k≦N−1を満たす自然数)までの合計処理時間TB(k)とし、集約処理の第1ステップ処理から第(k+1)ステップ処理(kは、k+1≦Nを満たす自然数)までの合計処理時間TB(k+1)とし、所定のコマンドのタイムアウト値に相当する時間をTOとしたとき、
TA1+TB(k)<TO<TA1+TB(k+1)
となる場合、第(k+1)ステップ処理が実行される前の時刻までに、集約処理停止信号を出力する。
第2の発明は、第1の発明であって、不揮発性メモリ制御部は、第1ステップ処理から第Nステップ処理(N:2以上の自然数)の複数のステップ処理を行うことで、集約処理を実行する。また、タイムアウト監視部は、所定のコマンドに基づく処理TA1とし、集約処理の第1ステップ処理から第kステップ処理(kは、k≦N−1を満たす自然数)までの合計処理時間TB(k)とし、集約処理の第1ステップ処理から第(k+1)ステップ処理(kは、k+1≦Nを満たす自然数)までの合計処理時間TB(k+1)とし、所定のコマンドのタイムアウト値に相当する時間をTOとしたとき、
TA1+TB(k)<TO<TA1+TB(k+1)
となる場合、第(k+1)ステップ処理が実行される前の時刻までに、集約処理停止信号を出力する。
このメモリコントローラでは、不揮発性メモリ制御部により、第1ステップ処理から第Nステップ処理(N:2以上の自然数)の複数のステップ処理を行うことで、集約処理が実行される。複数のステップ処理は、通常、不揮発性メモリの種類(品種)により決定されるものであるので、このメモリコントローラにより、不揮発性メモリの種類(品種)により決定される要因を考慮して、タイムアウト規定を守ることができる。つまり、このメモリコントローラでは、不揮発性メモリの種類(品種)により決定される各ステップ処理の処理時間を考慮して、集約処理を実行するので、不揮発性メモリの種類(品種)がどのようなものであってもタイムアウトの発生を確実に防止することができる。
第3の発明は、第2の発明であって、不揮発性メモリ制御部は、集約処理の各ステップ処理の処理時間に関する情報を、不揮発性メモリから取得し、タイムアウト監視部は、不揮発性メモリ制御部により取得された集約処理の各ステップ処理の処理時間に関する情報に基づいて、集約処理停止信号を出力する。
第3の発明は、第2の発明であって、不揮発性メモリ制御部は、集約処理の各ステップ処理の処理時間に関する情報を、不揮発性メモリから取得し、タイムアウト監視部は、不揮発性メモリ制御部により取得された集約処理の各ステップ処理の処理時間に関する情報に基づいて、集約処理停止信号を出力する。
第4の発明は、不揮発性メモリと、第1から第3のいずれかの発明であるメモリコントローラと、を備える不揮発性記憶装置である。
これにより、第1から第3のいずれかの発明と同様の効果を奏する不揮発性記憶装置を実現することができる。
第5の発明は、第4の発明である不揮発性記憶装置と、不揮発性記憶装置に対してデータの読み出し/書き込み制御を指示するコマンドを発行する処理命令部と、を備える不揮発性記憶システムである。
これにより、第4の発明と同様の効果を奏する不揮発性記憶システムを実現することができる。
第6の発明は、所定のコマンドに基づいて、不揮発性メモリに対してデータの読み出し/書き込み制御を行うメモリコントローラを制御する制御方法をコンピュータに実行させるプログラムである。メモリコントローラを制御する制御方法は、不揮発性メモリ制御ステップと、タイムアウト値取得ステップと、タイムアウト監視ステップと、を備える。
これにより、第1から第3のいずれかの発明と同様の効果を奏する不揮発性記憶装置を実現することができる。
第5の発明は、第4の発明である不揮発性記憶装置と、不揮発性記憶装置に対してデータの読み出し/書き込み制御を指示するコマンドを発行する処理命令部と、を備える不揮発性記憶システムである。
これにより、第4の発明と同様の効果を奏する不揮発性記憶システムを実現することができる。
第6の発明は、所定のコマンドに基づいて、不揮発性メモリに対してデータの読み出し/書き込み制御を行うメモリコントローラを制御する制御方法をコンピュータに実行させるプログラムである。メモリコントローラを制御する制御方法は、不揮発性メモリ制御ステップと、タイムアウト値取得ステップと、タイムアウト監視ステップと、を備える。
不揮発性メモリ制御ステップでは、所定のコマンドに基づいて不揮発性メモリに対してデータの読み出し/書き込み処理を行うとともに、不揮発性メモリにおける不要な情報が記憶されている領域を開放し、不揮発性メモリの記憶可能領域を増加させる処理である集約処理を実行する。タイムアウト値取得ステップでは、所定のコマンドに対するタイムアウト値を取得する。タイムアウト監視ステップでは、所定のコマンドに基づいて、不揮発性メモリ制御ステップにより実行される処理が開始された場合、処理の開始時点からの経過時間を測定し、経過時間がタイムアウト値を超える前の時刻において、集約処理停止信号を出力する。そして、不揮発性メモリ制御ステップでは、タイムアウト監視ステップにより集約処理停止信号が出力された場合であり、かつ、集約処理が終了していない場合、集約処理を中断させる。
これにより、第1の発明と同様の効果を奏するメモリコントローラを制御する制御方法をコンピュータに実行させるプログラムを実現することができる。
本発明によれば、タイムアウト規定を守りながら、集約処理を実行することが可能となる。さらに、不揮発性メモリの品種により決定される要因を考慮して、適応的に集約処理を実行することができる。これにより、メモリコントローラ、不揮発性記憶装置、または不揮発性記憶システムにおいて、使用できる不揮発性メモリ(例えば、フラッシュメモリ)の品種を増やし、用途に合わせた不揮発性メモリ(例えば、フラッシュメモリ)の選定が可能になる。
以下、本発明の実施形態について、図面を参照しながら説明する。
[第1実施形態]
<1.1:不揮発性記憶システムの構成>
図1は、第1実施形態に係る不揮発性記憶システム100の概略構成図である。
図1に示すように、不揮発性記憶システム100は、処理命令部1(例えば、不揮発性記憶装置にデータを記録するホスト装置)と、処理命令部1からの命令(コマンド等)により情報(データ)の読み出し/書き込み等を行う不揮発性記憶装置2と、を備える。そして、不揮発性記憶装置2は、情報(データ)を記憶する不揮発性メモリ22(例えば、フラッシュメモリ)と、不揮発性メモリ22に対して、情報(データ)の読み出し/書き込み等の制御を行うメモリコントローラ21と、を備える。
[第1実施形態]
<1.1:不揮発性記憶システムの構成>
図1は、第1実施形態に係る不揮発性記憶システム100の概略構成図である。
図1に示すように、不揮発性記憶システム100は、処理命令部1(例えば、不揮発性記憶装置にデータを記録するホスト装置)と、処理命令部1からの命令(コマンド等)により情報(データ)の読み出し/書き込み等を行う不揮発性記憶装置2と、を備える。そして、不揮発性記憶装置2は、情報(データ)を記憶する不揮発性メモリ22(例えば、フラッシュメモリ)と、不揮発性メモリ22に対して、情報(データ)の読み出し/書き込み等の制御を行うメモリコントローラ21と、を備える。
メモリコントローラ21は、インターフェース部(以下、IF部)211と、タイムアウト値取得部212と、タイムアウト監視部213と、不揮発性メモリ制御部214と、を備える。
IF部211は、処理命令部1とメモリコントローラとの通信のインターフェース処理を行う。具体的には、IF部211は、処理命令部1から送信された命令(コマンド等)を受信し、受信した命令の内容に応じて、受信した命令(コマンド等)を不揮発性メモリ制御部214またはタイムアウト値取得部212に出力する。IF部211は、タイムアウト値についての情報を含む命令を受信した場合、その受信した命令をタイムアウト値取得部に出力する。
タイムアウト値取得部212は、IF部211から出力された命令(コマンド等)からタイムアウト値を取得する。そして、取得したタイムアウト値をタイムアウト監視部213に出力する。
IF部211は、処理命令部1とメモリコントローラとの通信のインターフェース処理を行う。具体的には、IF部211は、処理命令部1から送信された命令(コマンド等)を受信し、受信した命令の内容に応じて、受信した命令(コマンド等)を不揮発性メモリ制御部214またはタイムアウト値取得部212に出力する。IF部211は、タイムアウト値についての情報を含む命令を受信した場合、その受信した命令をタイムアウト値取得部に出力する。
タイムアウト値取得部212は、IF部211から出力された命令(コマンド等)からタイムアウト値を取得する。そして、取得したタイムアウト値をタイムアウト監視部213に出力する。
タイムアウト監視部213は、タイムアウト値取得部212から出力されたタイムアウト値を保持するとともに、不揮発性メモリ制御部214が実行している処理内容についての情報(任意の処理がどこまで実行されたかを示す情報を含む。)を不揮発性メモリ制御部214から取得する。タイムアウト監視部213は、不揮発性メモリ制御部214の処理を監視し、不揮発性メモリ制御部214の処理時間と、タイムアウト値に基づいて、不揮発性メモリ制御部214が次の処理に移行した場合、タイムアウトが発生するか否かを判定する。そして、タイムアウト監視部213は、タイムアウトが発生すると判定した場合(具体的な判断方法等については後述する)、集約処理停止信号を不揮発性メモリ制御部214に出力する。また、タイムアウト監視部213は、経過時間を計測する機能を有しており、任意のタイミングからの経過時間を計測することができる。
不揮発性メモリ制御部214は、IF部211から出力された命令(コマンド等)に基づいて、不揮発性メモリ22を制御する。また、不揮発性メモリ制御部214は、タイムアウト監視部213に対して、不揮発性メモリ制御部214が実行する処理内容についての情報を出力する。また、不揮発性メモリ制御部214は、タイムアウト監視部213から集約処理停止信号が出力された場合、集約処理を停止する。
<1.2:不揮発性記憶システムの動作>
以上のように構成された不揮発性記憶システムの動作について、説明する。
処理命令部1は、不揮発性メモリ制御部214へ発行予定の命令のタイムアウト値を含むデータ(このデータは、例えば、データパケットやコマンドパケットにより送信される。)をメモリコントローラ21のIF部211に送信する。ここでは、発行予定の命令がWrite命令であるとして、以下説明する。
<1.2:不揮発性記憶システムの動作>
以上のように構成された不揮発性記憶システムの動作について、説明する。
処理命令部1は、不揮発性メモリ制御部214へ発行予定の命令のタイムアウト値を含むデータ(このデータは、例えば、データパケットやコマンドパケットにより送信される。)をメモリコントローラ21のIF部211に送信する。ここでは、発行予定の命令がWrite命令であるとして、以下説明する。
IF部211では、受信したデータを解析し、Write命令のタイムアウト値に関する情報を含むデータであると判定し、当該受信データをタイムアウト値取得部212に出力する。
タイムアウト値取得部212では、入力されたデータからWrite命令のタイムアウト値を取得する。そして、取得されたタイムアウト値は、タイムアウト監視部213に出力される。
また、処理命令部1は、メモリコントローラ21に対して、発行予定の命令(Write命令)を発行する。IF部211は、処理命令部1から送信された発行予定の命令(Write命令)を受信し、受信したWrite命令を不揮発性メモリ制御部214に出力する。
タイムアウト値取得部212では、入力されたデータからWrite命令のタイムアウト値を取得する。そして、取得されたタイムアウト値は、タイムアウト監視部213に出力される。
また、処理命令部1は、メモリコントローラ21に対して、発行予定の命令(Write命令)を発行する。IF部211は、処理命令部1から送信された発行予定の命令(Write命令)を受信し、受信したWrite命令を不揮発性メモリ制御部214に出力する。
不揮発性メモリ制御部214は、Write命令に従い、不揮発性メモリ22に対して、データ書き込み処理(Write処理)を実行する。そして、不揮発性メモリ制御部214は、Write処理の実行後に、集約処理を実行する。
一方、タイムアウト監視部213は、タイムアウトの規定に従い経過時間の測定を開始する。具体的に、図2を用いて説明する。図2は、不揮発性記憶システムにおけるWrite処理および集約処理の処理タイミングを模式的に示した図である。なお、図2において、Write処理1は、集約処理が必要なWrite処理であり、Write処理2は、集約処理を必要としないWrite処理であるものとする。また、集約処理1および集約処理2は、Write処理1に伴う集約処理であるものとする。
図2に示すように、時刻t0において、不揮発性メモリ制御部214によりWrite処理(図2のWrite処理1)が開始される。タイムアウト監視部213は、時刻t0から経過時間の測定を開始し、Write処理および集約処理の処理時間が、タイムアウト値を超えないか監視する。
一方、タイムアウト監視部213は、タイムアウトの規定に従い経過時間の測定を開始する。具体的に、図2を用いて説明する。図2は、不揮発性記憶システムにおけるWrite処理および集約処理の処理タイミングを模式的に示した図である。なお、図2において、Write処理1は、集約処理が必要なWrite処理であり、Write処理2は、集約処理を必要としないWrite処理であるものとする。また、集約処理1および集約処理2は、Write処理1に伴う集約処理であるものとする。
図2に示すように、時刻t0において、不揮発性メモリ制御部214によりWrite処理(図2のWrite処理1)が開始される。タイムアウト監視部213は、時刻t0から経過時間の測定を開始し、Write処理および集約処理の処理時間が、タイムアウト値を超えないか監視する。
なお、不揮発性記憶装置2では、集約処理を以下の3つのステップ処理に分ける。
(1)新規ブロックの取得処理
(2)必要なデータのページ毎の移動・書き込み処理
(3)旧ブロックの消去処理
タイムアウト監視部213は、不揮発性メモリ制御部214の処理を監視し、不揮発性メモリ制御部214の処理時間と、タイムアウト値に基づいて、不揮発性メモリ制御部214が次の処理に移行した場合、タイムアウトが発生するか否かを判定する。そして、タイムアウト監視部213は、タイムアウトが発生すると判定した場合、集約処理停止信号を不揮発性メモリ制御部214に出力する。図2の場合では、時刻tsに、集約処理停止信号が出力されている。
(1)新規ブロックの取得処理
(2)必要なデータのページ毎の移動・書き込み処理
(3)旧ブロックの消去処理
タイムアウト監視部213は、不揮発性メモリ制御部214の処理を監視し、不揮発性メモリ制御部214の処理時間と、タイムアウト値に基づいて、不揮発性メモリ制御部214が次の処理に移行した場合、タイムアウトが発生するか否かを判定する。そして、タイムアウト監視部213は、タイムアウトが発生すると判定した場合、集約処理停止信号を不揮発性メモリ制御部214に出力する。図2の場合では、時刻tsに、集約処理停止信号が出力されている。
タイムアウト監視部213から集約処理停止信号が出力されると、不揮発性メモリ制御部214は、現在実行中の処理が終了した後、次の処理に移行するのを停止する。なお、集約処理停止信号の出力タイミングは、次の処理(実行するとタイムアウトが発生すると判定された処理)に移行される前の時刻であればよく、必ずしも、不揮発性メモリ制御部214の現在実行中の処理の終了時点と一致させる必要はない。
≪集約処理停止信号を発信する判断方法≫
次に、タイムアウト監視部213が集約処理停止信号を発信する判断方法を、図3を用いて説明する。
図3は、不揮発性記憶システム100における集約処理の各ステップ処理にかかる時間の一例を示している。
≪集約処理停止信号を発信する判断方法≫
次に、タイムアウト監視部213が集約処理停止信号を発信する判断方法を、図3を用いて説明する。
図3は、不揮発性記憶システム100における集約処理の各ステップ処理にかかる時間の一例を示している。
図3に示すように、この例では、(1)新規ブロック取得処理の処理時間は、100[μs]であり、(2)各ページの必要データ移動・書き込み処理の処理時間は、2000[μs]であり、(3)旧ブロック消去処理の処理時間は、3000[μs]である。また、1ブロック内のページ数は、128ページである。
例えば、タイムアウト値を150[ms]とし、Write処理に4000[μs]かかったとすると、
100[μs]+2000[μs]×72<150[ms]−4000[μs]<100[μs]+2000[μs]×(72+1)
であるので、第72ページの移動・書き込み処理の最中に、タイムアウト監視部213は、集約処理停止信号を不揮発性メモリ制御部214に発信し、集約処理において、どこまで処理が完了しているか(この場合は、第72ページの移動・書き込みまで完了していること)を記憶しておく。
例えば、タイムアウト値を150[ms]とし、Write処理に4000[μs]かかったとすると、
100[μs]+2000[μs]×72<150[ms]−4000[μs]<100[μs]+2000[μs]×(72+1)
であるので、第72ページの移動・書き込み処理の最中に、タイムアウト監視部213は、集約処理停止信号を不揮発性メモリ制御部214に発信し、集約処理において、どこまで処理が完了しているか(この場合は、第72ページの移動・書き込みまで完了していること)を記憶しておく。
不揮発性メモリ制御部214は、タイムアウト監視部213から出力される集約処理停止信号に基づいて、集約処理を一時的に中断させることで、タイムアウトの発生を防ぐ。
そして、集約処理が再開できる状況になったときに、タイムアウト監視部213が保持している情報(集約処理がどこまで完了しているか示す情報)に基づいて、続きの集約処理を再開させる。例えば、図2の例では、時刻tsで集約処理が中断され、時刻trで集約処理が再開され、そして、時刻teで集約処理が終了している。
以上のように、不揮発性記憶システム100では、不揮発性メモリ制御部214が、タイムアウト監視部213から出力される集約処理停止信号に基づいて、集約処理を中断させ、タイムアウトの発生を確実に防止することができる。その結果、不揮発性記憶システム100では、タイムアウト値(タイムアウト規定)を厳密に守ると同時に、タイムアウト値で定められる時間内において、集約処理を進めることが可能となる。
そして、集約処理が再開できる状況になったときに、タイムアウト監視部213が保持している情報(集約処理がどこまで完了しているか示す情報)に基づいて、続きの集約処理を再開させる。例えば、図2の例では、時刻tsで集約処理が中断され、時刻trで集約処理が再開され、そして、時刻teで集約処理が終了している。
以上のように、不揮発性記憶システム100では、不揮発性メモリ制御部214が、タイムアウト監視部213から出力される集約処理停止信号に基づいて、集約処理を中断させ、タイムアウトの発生を確実に防止することができる。その結果、不揮発性記憶システム100では、タイムアウト値(タイムアウト規定)を厳密に守ると同時に、タイムアウト値で定められる時間内において、集約処理を進めることが可能となる。
なお、上記ではタイムアウト値を処理命令部1からメモリコントローラ21に知らせる場合について説明したが、これに限定されることはなく、例えば、製品出荷時等に、タイムアウト値に関する情報を、予め不揮発性メモリ22に記憶しておいても良い。この場合、不揮発性メモリ22から読み出したタイムアウト値に関する情報は、例えば、不揮発性メモリ制御部214からタイムアウト値取得部212に通知されるようにすればよい。なお、タイムアウト値がコマンド毎に異なっている場合は、それらのコマンドとタイムアウトの関係を示すデータを、あるいは一律にタイムアウト値が決まっている場合はそのタイムアウト値のデータを記憶しておくこととなる。
また、集約処理の各ステップ処理の処理時間を不揮発性メモリ制御部214に接続される不揮発性メモリ22に記憶しておき、それを読み出すことで、集約処理の各ステップ処理の処理時間を取得するようにしても良いし、集約処理の各ステップ処理の処理時間が処理命令部1から不揮発性記憶装置2に通知されるものであってもよい。
また、集約処理の各ステップ処理の処理時間を不揮発性メモリ制御部214に接続される不揮発性メモリ22に記憶しておき、それを読み出すことで、集約処理の各ステップ処理の処理時間を取得するようにしても良いし、集約処理の各ステップ処理の処理時間が処理命令部1から不揮発性記憶装置2に通知されるものであってもよい。
また、上記では、集約処理の各ステップ処理時間に基づいて、集約処理の中断タイミングを決定する場合について説明したが、例えば、以下のようにしてもよい。
タイムアウト監視部213が、メモリコントローラの動作クロックから、(例えば、クロックカウントにより)タイムアウトが発生する直前のタイミングを算出し、当該タイミングで、割込を発生させることで、集約処理を中断させるようにしてもよい。
なお、上記では、不揮発性メモリとして、フラッシュメモリを用いる場合を想定しているが、これに限定されることはなく、例えば、不揮発性メモリとして、フラッシュメモリ以外の他の不揮発性メモリ(例えば、EEPROM等)を用いるようにしてもよい。
[第2実施形態]
図4に、第2実施形態に係る不揮発性記憶システム200の概略構成図を示す。
タイムアウト監視部213が、メモリコントローラの動作クロックから、(例えば、クロックカウントにより)タイムアウトが発生する直前のタイミングを算出し、当該タイミングで、割込を発生させることで、集約処理を中断させるようにしてもよい。
なお、上記では、不揮発性メモリとして、フラッシュメモリを用いる場合を想定しているが、これに限定されることはなく、例えば、不揮発性メモリとして、フラッシュメモリ以外の他の不揮発性メモリ(例えば、EEPROM等)を用いるようにしてもよい。
[第2実施形態]
図4に、第2実施形態に係る不揮発性記憶システム200の概略構成図を示す。
第1実施形態に係る不揮発性記憶システム100は、1つの不揮発性メモリ22を備えるが、第2実施形態に係る不揮発性記憶システム200では、複数の不揮発性メモリ(図4の場合は、3つの不揮発性メモリ(第1不揮発性メモリ22A、第2不揮発性メモリ22Bおよび第3不揮発性メモリ22C))を備えている。また、第2実施形態に係る不揮発性記憶システム200では、第1実施形態に係る不揮発性記憶システム100における不揮発性メモリ制御部214を、複数の不揮発性メモリを制御する不揮発性メモリ制御部214Aに置換した構成となっている。以上の点が、第2実施形態に係る不揮発性記憶システム200と第1実施形態に係る不揮発性記憶システム100との相違点である。
なお、本実施形態において、第1実施形態と同様の部分については、同一符号を付し、説明を省略する。
なお、本実施形態において、第1実施形態と同様の部分については、同一符号を付し、説明を省略する。
不揮発性記憶システム200は、複数種類の不揮発性メモリ(図4では、第1不揮発性メモリ22A、第2不揮発性メモリ22Bおよび第3不揮発性メモリ22Cの3つの不揮発性メモリ)を備える。なお、以下では、説明便宜のため、不揮発性メモリが3つ(第1不揮発性メモリ22A、第2不揮発性メモリ22Bおよび第3不揮発性メモリ22C)の場合について説明する。
第1実施形態では、ある1種類の不揮発性メモリ(フラッシュメモリ)の集約処理の各ステップ処理の所要時間のテーブル(図3のテーブル)を用いたが、本実施形態のように、不揮発性記憶システム200において、複数種類の不揮発性メモリ(フラッシュメモリ)が接続される場合は、接続されている不揮発性メモリ(フラッシュメモリ)に応じて、集約処理の処理時間のテーブルを選択する。
第1実施形態では、ある1種類の不揮発性メモリ(フラッシュメモリ)の集約処理の各ステップ処理の所要時間のテーブル(図3のテーブル)を用いたが、本実施形態のように、不揮発性記憶システム200において、複数種類の不揮発性メモリ(フラッシュメモリ)が接続される場合は、接続されている不揮発性メモリ(フラッシュメモリ)に応じて、集約処理の処理時間のテーブルを選択する。
具体的には、不揮発性メモリ制御部214Aは、接続されている第1不揮発性メモリ22A、第2不揮発性メモリ22Bおよび第3不揮発性メモリ22Cのそれぞれに対して、コマンドを発行し、そのレスポンスをタイムアウト監視部213に通知する。タイムアウト監視部213は、通知されたレスポンスから、どのような種類の不揮発性メモリ(フラッシュメモリ)であるかを判別する。
例えば、不揮発性メモリ制御部214Aは、第2不揮発性メモリ22Bに対して、ID READコマンドを発行し、接続されている第2不揮発性メモリ22B(フラッシュメモリB)のレスポンスに含まれるメーカーコードを元に、集約処理の処理時間のテーブルを選択する。例えば、ID READコマンドのレスポンスのメーカーコードと、不揮発性メモリ(フラッシュメモリ)の種類との対応が、図5に示すものであるとする。この場合、不揮発性メモリ制御部214Aは、不揮発性メモリに対して、ID READコマンドを発行し、そのレスポンスによりメーカーコードを取得する。第2不揮発性メモリ22Bに対して発行したID READコマンドのレスポンスにおいて、メーカーコードが“0B”であれば、不揮発性メモリ制御部214Aは、図5に示すテーブルから、接続されている不揮発性メモリ(フラッシュメモリ)が「フラッシュメモリB」であると判定する。
例えば、不揮発性メモリ制御部214Aは、第2不揮発性メモリ22Bに対して、ID READコマンドを発行し、接続されている第2不揮発性メモリ22B(フラッシュメモリB)のレスポンスに含まれるメーカーコードを元に、集約処理の処理時間のテーブルを選択する。例えば、ID READコマンドのレスポンスのメーカーコードと、不揮発性メモリ(フラッシュメモリ)の種類との対応が、図5に示すものであるとする。この場合、不揮発性メモリ制御部214Aは、不揮発性メモリに対して、ID READコマンドを発行し、そのレスポンスによりメーカーコードを取得する。第2不揮発性メモリ22Bに対して発行したID READコマンドのレスポンスにおいて、メーカーコードが“0B”であれば、不揮発性メモリ制御部214Aは、図5に示すテーブルから、接続されている不揮発性メモリ(フラッシュメモリ)が「フラッシュメモリB」であると判定する。
そして、不揮発性メモリ制御部214Aは、図6に示すテーブルから、品種判定した不揮発性メモリ(フラッシュメモリ)(上記の場合では、「フラッシュメモリB」)に対応する集約処理の各ステップ処理の処理時間を取得する。
そして、不揮発性メモリ制御部214Aは、第2不揮発性メモリ22Bに対して、集約処理を行う場合、図6に示すテーブルの「フラッシュメモリB」のデータを用いて処理を行う。
同様にして、不揮発性記憶システム200において、第1不揮発性メモリ22Aが「フラッシュメモリA」であり、第3不揮発性メモリ22Cが「フラッシュメモリC」であると認識される。そして、不揮発性メモリ制御部214Aは、第1不揮発性メモリ22Aに対して、集約処理を行う場合、図6に示すテーブルの「フラッシュメモリA」のデータを用いて処理を行い、第3不揮発性メモリ22Cに対して、集約処理を行う場合、図6に示すテーブルの「フラッシュメモリC」のデータを用いて処理を行う。なお、集約処理については、第1実施形態と同様であるので、説明は省略する。
そして、不揮発性メモリ制御部214Aは、第2不揮発性メモリ22Bに対して、集約処理を行う場合、図6に示すテーブルの「フラッシュメモリB」のデータを用いて処理を行う。
同様にして、不揮発性記憶システム200において、第1不揮発性メモリ22Aが「フラッシュメモリA」であり、第3不揮発性メモリ22Cが「フラッシュメモリC」であると認識される。そして、不揮発性メモリ制御部214Aは、第1不揮発性メモリ22Aに対して、集約処理を行う場合、図6に示すテーブルの「フラッシュメモリA」のデータを用いて処理を行い、第3不揮発性メモリ22Cに対して、集約処理を行う場合、図6に示すテーブルの「フラッシュメモリC」のデータを用いて処理を行う。なお、集約処理については、第1実施形態と同様であるので、説明は省略する。
以上により、不揮発性記憶システム200では、複数種類の不揮発性メモリが接続されている場合であっても、不揮発性メモリの種類(品種)により決定される集約処理の各ステップ処理の処理時間を取得し、取得した集約処理の各ステップ処理の処理時間に基づいて、集約処理を実行するので、タイムアウトの発生を確実に防止することができる。その結果、不揮発性記憶システム200では、複数種類の不揮発性メモリが接続されている場合であっても、タイムアウト値(タイムアウト規定)を厳密に守ることができる。
なお、接続されている不揮発性メモリの判別処理において、メーカーコードではなく、デバイスコード等を利用し、接続される不揮発性メモリ(フラッシュメモリ)の判別を行うようにしてもよい。つまり、不揮発性メモリに対してコマンドを発行し、そのレスポンスから、不揮発性メモリの種別を判別できるものであれば、それを利用するようにしてもよい。言い換えれば、不揮発性記憶システムにおいて不揮発性メモリの判別に利用するコマンドは、接続される不揮発性メモリ(フラッシュメモリ)の判別が可能なレスポンスを取得できるものであれば良い。
なお、接続されている不揮発性メモリの判別処理において、メーカーコードではなく、デバイスコード等を利用し、接続される不揮発性メモリ(フラッシュメモリ)の判別を行うようにしてもよい。つまり、不揮発性メモリに対してコマンドを発行し、そのレスポンスから、不揮発性メモリの種別を判別できるものであれば、それを利用するようにしてもよい。言い換えれば、不揮発性記憶システムにおいて不揮発性メモリの判別に利用するコマンドは、接続される不揮発性メモリ(フラッシュメモリ)の判別が可能なレスポンスを取得できるものであれば良い。
また、図5の不揮発性メモリ(フラッシュメモリ)の品種とレスポンスとのテーブル、図6のフラッシュメモリ品種と集約処理の各ステップ処理にかかる時間とのテーブルは、予め不揮発性メモリに記憶されるものであっても良い。
なお、上記では、不揮発性記憶システム200において、複数の不揮発性メモリが接続される場合について説明したが、これに限定されることはなく、例えば、1つの不揮発性メモリのみが不揮発性メモリ制御部214Aに接続されており、不揮発性メモリに対してコマンドを発行し、そのレスポンスから、接続されている不揮発性メモリの種別を判定し、判定された種別の不揮発性メモリに対応する集約処理の各ステップ処理の処理時間に基づいて、集約処理を行うようにしてもよい。このようにすることで、不揮発性記憶装置2Aに実装される不揮発性メモリの種類が複数であっても、メモリコントローラ21Aを変更する必要がない。言い換えれば、不揮発性記憶装置2Aを製造する場合、実装する不揮発性メモリの種類に関係なく、メモリコントローラ21Aを共用することができる。
なお、上記では、不揮発性記憶システム200において、複数の不揮発性メモリが接続される場合について説明したが、これに限定されることはなく、例えば、1つの不揮発性メモリのみが不揮発性メモリ制御部214Aに接続されており、不揮発性メモリに対してコマンドを発行し、そのレスポンスから、接続されている不揮発性メモリの種別を判定し、判定された種別の不揮発性メモリに対応する集約処理の各ステップ処理の処理時間に基づいて、集約処理を行うようにしてもよい。このようにすることで、不揮発性記憶装置2Aに実装される不揮発性メモリの種類が複数であっても、メモリコントローラ21Aを変更する必要がない。言い換えれば、不揮発性記憶装置2Aを製造する場合、実装する不揮発性メモリの種類に関係なく、メモリコントローラ21Aを共用することができる。
[他の実施形態]
なお、上記実施形態で説明した不揮発性記憶システム、不揮発性記憶装置において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
なお、上記実施形態で説明した不揮発性記憶システム、不揮発性記憶装置において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。また、上記実施形態の各機能部を、CPUバス構成(CPU、ROM、RAM、所定の機能部をバス接続した構成)により実現するようにしてもよい。また、上記実施形態の各処理をソフトウェアにより実現する場合、OSを用いて実現するようにしてもよい。
なお、上記実施形態に係る不揮発性記憶システム、不揮発性記憶装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。また、上記実施形態の各機能部を、CPUバス構成(CPU、ROM、RAM、所定の機能部をバス接続した構成)により実現するようにしてもよい。また、上記実施形態の各処理をソフトウェアにより実現する場合、OSを用いて実現するようにしてもよい。
なお、上記実施形態に係る不揮発性記憶システム、不揮発性記憶装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
本発明にかかるメモリコントローラ、不揮発性記憶装置、不揮発性記憶システムおよびプログラムは、タイムアウト規定を守りながら、適切に集約処理を実行するものであり、半導体メモリカードなどの不揮発性記憶モジュールを使用した静止画記録再生装置や動画記録再生装置、あるいは携帯電話等において有益である。
100、200 不揮発性記憶システム
1 処理命令部
2、2A 不揮発性記憶装置
21、21A メモリコントローラ
22、22A、22B、22C 不揮発性メモリ
211 IF部
212 タイムアウト値取得部
213 タイムアウト監視部
214、214A 不揮発性メモリ制御部
1 処理命令部
2、2A 不揮発性記憶装置
21、21A メモリコントローラ
22、22A、22B、22C 不揮発性メモリ
211 IF部
212 タイムアウト値取得部
213 タイムアウト監視部
214、214A 不揮発性メモリ制御部
Claims (6)
- 所定のコマンドに基づいて、不揮発性メモリに対してデータの読み出し/書き込み制御を行うメモリコントローラであって、
前記所定のコマンドに基づいて前記不揮発性メモリに対してデータの読み出し/書き込み処理を行うとともに、前記不揮発性メモリにおける不要な情報が記憶されている領域を開放し、前記不揮発性メモリの記憶可能領域を増加させる処理である集約処理を実行する不揮発性メモリ制御部と、
前記所定のコマンドに対するタイムアウト値を取得するタイムアウト値取得部と、
前記所定のコマンドに基づいて、前記不揮発性メモリ制御部により実行される処理が開始された場合、前記処理の開始時点からの経過時間を測定し、前記経過時間が前記タイムアウト値を超える前の時刻において、集約処理停止信号を前記不揮発性メモリ制御部に出力するタイムアウト監視部と、
を備え、
前記不揮発性メモリ制御部は、前記タイムアウト監視部から集約処理停止信号が出力された場合であり、かつ、前記集約処理が終了していない場合、前記集約処理を中断させる、
メモリコントローラ。 - 前記不揮発性メモリ制御部は、第1ステップ処理から第Nステップ処理(N:2以上の自然数)の複数のステップ処理を行うことで、前記集約処理を実行し、
前記タイムアウト監視部は、前記所定のコマンドに基づく処理TA1とし、前記集約処理の第1ステップ処理から第kステップ処理(kは、k≦N−1を満たす自然数)までの合計処理時間TB(k)とし、前記集約処理の第1ステップ処理から第(k+1)ステップ処理(kは、k+1≦Nを満たす自然数)までの合計処理時間TB(k+1)とし、前記所定のコマンドの前記タイムアウト値に相当する時間をTOとしたとき、
TA1+TB(k)<TO<TA1+TB(k+1)
となる場合、第(k+1)ステップ処理が実行される前の時刻までに、前記集約処理停止信号を出力する、
請求項1に記載のメモリコントローラ。 - 前記不揮発性メモリ制御部は、前記集約処理の各ステップ処理の処理時間に関する情報を、前記不揮発性メモリから取得し、
前記タイムアウト監視部は、前記不揮発性メモリ制御部により取得された前記集約処理の各ステップ処理の処理時間に関する情報に基づいて、前記集約処理停止信号を出力する、
請求項2に記載するメモリコントローラ。 - 不揮発性メモリと、
請求項1から3のいずれかに記載のメモリコントローラと、
を備える不揮発性記憶装置。 - 請求項4に記載の不揮発性記憶装置と、
前記不揮発性記憶装置に対してデータの読み出し/書き込み制御を指示するコマンドを発行する処理命令部と、
を備える不揮発性記憶システム。 - 所定のコマンドに基づいて、不揮発性メモリに対してデータの読み出し/書き込み制御を行うメモリコントローラを制御するプログラムであって、
前記所定のコマンドに基づいて前記不揮発性メモリに対してデータの読み出し/書き込み処理を行うとともに、前記不揮発性メモリにおける不要な情報が記憶されている領域を開放し、前記不揮発性メモリの記憶可能領域を増加させる処理である集約処理を実行する不揮発性メモリ制御ステップと、
前記所定のコマンドに対するタイムアウト値を取得するタイムアウト値取得ステップと、
前記所定のコマンドに基づいて、前記不揮発性メモリ制御ステップにより実行される処理が開始された場合、前記処理の開始時点からの経過時間を測定し、前記経過時間が前記タイムアウト値を超える前の時刻において、集約処理停止信号を出力するタイムアウト監視ステップと、
を備え、
前記不揮発性メモリ制御ステップでは、前記タイムアウト監視ステップにより集約処理停止信号が出力された場合であり、かつ、前記集約処理が終了していない場合、前記集約処理を中断させる、
メモリコントローラを制御するプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009026885A JP2010182216A (ja) | 2009-02-09 | 2009-02-09 | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システムおよびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009026885A JP2010182216A (ja) | 2009-02-09 | 2009-02-09 | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システムおよびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010182216A true JP2010182216A (ja) | 2010-08-19 |
Family
ID=42763762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009026885A Pending JP2010182216A (ja) | 2009-02-09 | 2009-02-09 | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システムおよびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010182216A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010250932A (ja) * | 2009-04-14 | 2010-11-04 | John Rudelic | 不揮発性メモリの書き込み及び消去方法 |
JP2013161447A (ja) * | 2012-02-08 | 2013-08-19 | Toshiba Corp | コントローラ、データ記憶装置及びプログラム |
US8930614B2 (en) | 2011-07-29 | 2015-01-06 | Kabushiki Kaisha Toshiba | Data storage apparatus and method for compaction processing |
US10452314B2 (en) | 2016-06-29 | 2019-10-22 | Samsung Electronics Co., Ltd. | Electronic systems and methods of operating electronic systems |
-
2009
- 2009-02-09 JP JP2009026885A patent/JP2010182216A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010250932A (ja) * | 2009-04-14 | 2010-11-04 | John Rudelic | 不揮発性メモリの書き込み及び消去方法 |
US8930614B2 (en) | 2011-07-29 | 2015-01-06 | Kabushiki Kaisha Toshiba | Data storage apparatus and method for compaction processing |
JP2013161447A (ja) * | 2012-02-08 | 2013-08-19 | Toshiba Corp | コントローラ、データ記憶装置及びプログラム |
US10452314B2 (en) | 2016-06-29 | 2019-10-22 | Samsung Electronics Co., Ltd. | Electronic systems and methods of operating electronic systems |
US10896005B2 (en) | 2016-06-29 | 2021-01-19 | Samsung Electronics Co., Ltd. | Electronic systems and methods of operating electronic systems |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8341374B2 (en) | Solid state drive and related method of scheduling operations | |
TWI628542B (zh) | 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 | |
EP1769331B1 (en) | Storage device and host apparatus | |
US8429374B2 (en) | System and method for read-while-write with NAND memory device | |
TWI417727B (zh) | 記憶體儲存裝置、其記憶體控制器與回應主機指令的方法 | |
US8310880B2 (en) | Virtual channel support in a nonvolatile memory controller | |
JP5362010B2 (ja) | メモリ装置、ホスト装置およびメモリシステム | |
WO2005096220A1 (ja) | メモリカード及びメモリカードシステム | |
JP5414656B2 (ja) | データ記憶装置、メモリ制御装置及びメモリ制御方法 | |
TWI467574B (zh) | 記憶體儲存裝置、記憶體控制器與其資料傳輸方法 | |
US20070106834A1 (en) | Device and method for monitoring operation of a flash memory | |
CN111045593A (zh) | 用来进行读取加速的方法以及数据存储装置及其控制器 | |
JP2007193448A (ja) | 情報記録装置及びその制御方法 | |
JP5378197B2 (ja) | メモリコントローラ、メモリカード、不揮発性メモリシステム | |
TWI592866B (zh) | 固態硬碟系統的原子寫入方法以及使用該方法的裝置 | |
JP2007193865A (ja) | 情報記録装置及びその制御方法 | |
TWI507981B (zh) | 指令執行方法、連接器與記憶體儲存裝置 | |
US20090307427A1 (en) | Memory card and method of writing data | |
TWI626540B (zh) | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 | |
JP2010182216A (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システムおよびプログラム | |
TWI596612B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
JP2007193866A (ja) | 情報記録装置及びその制御方法 | |
JP4841069B2 (ja) | 記憶装置 | |
JP4929379B2 (ja) | 半導体記憶装置及びデータ書き込み読み出し方法 | |
TWI417889B (zh) | 快閃記憶體之寫入逾時控制方法及其記憶裝置 |