(57)【要約】【課題】ホストシステムからのアクセスコマンドに従うホストアクセス処理の応答性能を低下させること無しに不揮発性メモリに影響する温度の上昇を防止する。【解決手段】メモリコントローラは、ホストアクセス処理とは別に、不揮発性メモリのメンテナンス処理を実行するようになっているが、温度センサにより検出された温度である検出温度が閾値を超えている場合、ホストシステムとの通信が無ければ、メンテナンス処理の実行無しに、メモリコントローラの動作クロックが停止されるスリープモードに移行する。【選択図】図１
2017130043.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムからコマンドを受信するメモリ装置であって、
不揮発性メモリと、
温度を検出する温度センサと、
前記ホストシステムからのコマンドがアクセスコマンドの場合、前記アクセスコマンドに従うデータのアクセスを前記不揮発性メモリに対して行うホストアクセス処理を実行するメモリコントローラと
を備え、
前記メモリコントローラは、前記温度センサにより検出された温度である検出温度が閾値を超えている場合、前記ホストシステムとの間の通信が無ければ、前記不揮発性メモリのメンテナンス処理の実行無しに、前記メモリコントローラの動作クロックが停止されるスリープモードである第１のスリープモードに移行する、
メモリ装置。
【請求項２】
前記メモリコントローラは、前記ホストアクセス処理が終了した後に、前記検出温度と前記閾値との比較の結果を取得する、
請求項１記載のメモリ装置。
【請求項３】
前記メモリコントローラは、前記ホストシステムからのコマンドがメンテナンスコマンドの場合、
前記メンテナンスコマンドに従い前記メンテナンス処理を実行し、
前記メンテナンス処理の終了後に、前記検出温度と前記閾値との比較の結果を取得すること無しに、前記メモリコントローラの動作クロックが維持されるスリープモードである第２のスリープモードに移行する、
請求項２記載のメモリ装置。
【請求項４】
前記メモリコントローラは、前記検出温度が前記閾値以下の場合、前記メンテナンス処理を実行し、前記メンテナンス処理の終了後に、前記第２のスリープモードに移行する、
請求項２又は３記載のメモリ装置。
【請求項５】
前記第１のスリープモードにおいて、温度モニタは、
前記検出温度と前記閾値との比較の結果を定期的に取得し、
前記検出温度が前記閾値以下になったことを検出した場合に前記メモリコントローラに信号を出力し、
前記第１のスリープモードの前記メモリコントローラは、前記信号を受信することにより復帰し、
前記温度モニタは、前記ホストシステム、前記温度センサ、又は、前記ホストシステム及び前記温度センサ以外のモジュールであって前記メモリコントローラと通信可能なモジュールである、
請求項１乃至４のうちのいずれか１項に記載のメモリ装置。
【請求項６】
ホストシステムと、
不揮発性メモリと、
温度を検出する温度センサと、
前記ホストシステムからのコマンドがアクセスコマンドの場合、前記アクセスコマンドに従うデータのアクセスを前記不揮発性メモリに対して行うホストアクセス処理を実行するメモリコントローラと
を有し、
前記メモリコントローラは、前記ホストアクセス処理とは別に、前記不揮発性メモリのメンテナンス処理を実行するようになっており、
前記メモリコントローラは、前記温度センサにより検出された温度である検出温度が閾値を超えている場合、前記メモリコントローラの動作クロックが停止されるスリープモードに移行する、
コンピュータシステム。
【請求項７】
不揮発性メモリのメモリコントローラであって、
ホストシステムからコマンドを受け付ける通信手段と、
前記ホストシステムからのコマンドがアクセスコマンドの場合、前記アクセスコマンドに従うデータのアクセスを前記不揮発性メモリに対して行うホストアクセス処理を実行する制御手段と
を有し、
前記制御手段は、温度センサにより検出された温度である検出温度が閾値を超えている場合、前記ホストシステムとの間の通信が無ければ、前記不揮発性メモリのメンテナンス処理の実行無しに、前記メモリコントローラの動作クロックが停止されるスリープモードに移行する、
メモリコントローラ。
【請求項８】
ホストシステムからコマンドを受信し、
前記受信したコマンドがアクセスコマンドの場合、
前記アクセスコマンドに従うデータのアクセスを不揮発性メモリに対して行うホストアクセス処理を実行し、
検出温度が前記閾値を超えている場合、前記ホストシステムとの間の通信が無ければ、前記不揮発性メモリのメンテナンス処理の実行無しに、メモリコントローラの動作クロックが停止されるスリープモードに移行する、
昇温防止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリに影響する温度の上昇防止に関する。
【背景技術】
【０００２】
不揮発性メモリの一例として、フラッシュメモリ（例えばＮＡＮＤ型フラッシュメモリ）が知られている。フラッシュメモリの特性として、温度変化に対するデータ保持力の低下や消費電力の上昇などがある。フラッシュメモリに影響する温度の上昇防止策として、特許文献１の技術が知られている。特許文献１によれば、不揮発性記憶装置は、不揮発性記憶装置が高温で、不揮発性メモリへのアクセス（書込み又は読出し）のときに、アクセスレートを落とすことで、アクセス中の昇温を緩やかにする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００８／０９３６０６号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００４】
フラッシュメモリに対するアクセスが、昇温の要因となる。しかし、特許文献１の技術のようにアクセスレートを落とすと、ホストシステムからのアクセスコマンドに従うホストアクセス処理の応答性能が低下する。
【０００５】
このような問題は、フラッシュメモリ以外の不揮発性メモリについても存在し得る。
【０００６】
本発明の目的は、ホストアクセス処理の応答性能を低下させること無しに不揮発性メモリに影響する温度の上昇を防止することにある。
【課題を解決するための手段】
【０００７】
一般に、メモリ装置（例えばフラッシュメモリ装置）は、ホストアクセス処理とは別に、フラッシュメモリのメンテナンス処理を実行するようになっている。メンテナンス処理は、典型的には、ホストシステムからのコマンド無しに実行され、主に、メモリコントローラが保持する管理情報のバックアップ、又は、フラッシュメモリが保持するデータの保持力（信頼性）の向上が目的である。具体的には、例えば、メンテナンス処理として、バックアップ処理（メモリコントローラが保持する管理情報を不揮発性メモリに格納する処理）、リフレッシュ処理（物理ブロックからデータを読み出してエラー訂正し、エラー訂正したデータを別の物理ブロックへ移動する処理）、及び、リクラメーション処理（物理ブロック内のデータを別の物理ブロックに移動し移動元の物理ブロックからデータを消去する処理）がある。このように、ホストアクセス処理に加えて、メンテナンス処理でも、不揮発性メモリに対するアクセスが発生する。
【０００８】
この点に着目し、本発明では、メモリコントローラは、温度センサにより検出された温度である検出温度が閾値を超えている場合、ホストシステムとの通信が無ければ、メンテナンス処理の実行無しに、メモリコントローラの動作クロックが停止されるスリープモードに移行する。
【発明の効果】
【０００９】
メモリコントローラの動作クロックが停止されるスリープモードに移行することにより、メモリコントローラが自発的にメンテナンス処理を実行することが無い。このため、本発明によれば、ホストアクセス処理の応答性能を低下させること無しに不揮発性メモリに影響する温度の上昇を防止することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係るフラッシュメモリ装置を有するコンピュータシステムの構成を示す。
【図２】本発明の実施形態に係るメモリコントローラの制御部が行う処理のフローを示す。
【発明を実施するための形態】
【００１１】
以下、不揮発性メモリの一例としてフラッシュメモリが採用された一実施形態を説明する。
【００１２】
図１は、実施形態に係るフラッシュメモリ装置を有するコンピュータシステムの構成を示す。
【００１３】
コンピュータシステム１５０は、フラッシュメモリ装置１００と、フラッシュメモリ装置１００と接続されるホストシステム１１２とを備える。
【００１４】
ホストシステム１１２は、フラッシュメモリ装置１００にコマンドを送信する。そのコマンドは、例えば、アクセスコマンド又はメンテナンスコマンドである。ホストシステム１１２は、パーソナルコンピュータ、サーバマシン、スマートデバイス（例えばスマートフォンやタブレット端末）のような計算機であってもよいし、計算機内のプロセッサ（例えばＣＰＵ（Central Processing Unit））であってもよい。言い換えれば、コンピュータシステム１５０は、計算機とその計算機に外付けされたフラッシュメモリ装置１００（例えばＳＳＤ（Solid State Drive））とを含んだシステムであってもよいし、ブレードサーバのような１つの回路基板でもよい。
【００１５】
フラッシュメモリ装置１００は、フラッシュメモリ１０１と、クロック発生回路１０８と、温度センサ１０９と、メモリコントローラ１０２とを備える。ホストシステム１１２は、メモリコントローラ１０２に接続される。
【００１６】
フラッシュメモリ１０１は、例えば、ブロックよりも小さい単位であるページ単位でデータが入出力されるフラッシュメモリ、典型的にはＮＡＮＤ型のフラッシュメモリである。しかし、フラッシュメモリ１０１は、ＮＡＮＤ型のフラッシュメモリに限られない。
【００１７】
クロック発生回路１０８は、メモリコントローラ１０２の動作クロックを発生する。
【００１８】
温度センサ１０９は、温度を検出する装置、例えば、熱電対、又は、ＩＣ（Integrated Circuit）である。温度センサ１０９は、フラッシュメモリ１０１及びメモリコントローラ１０２のうちの少なくとも１つ有する基板と同じ基板に設けられていてよい。温度センサ１０９により検出される温度である検出温度は、フラッシュメモリ１０１に影響する温度、例えば、フラッシュメモリ１０１の温度（例えば、フラッシュメモリ１０１の表面及び周辺のうちの少なくとも一方の温度）と、メモリコントローラ１０２の温度とのうちの少なくとも一方の温度である。特に、フラッシュメモリ１０１のデータ保持力低下や消費電力上昇に対する防止策として、フラッシュメモリ１０１の温度を検出することが好ましい。温度センサ１０９により検出された温度である検出温度を表す情報がメモリコントローラ１０２に入力される。
【００１９】
メモリコントローラ１０２は、フラッシュメモリ１０１へのアクセスを制御する。メモリコントローラ１０２は、ホストインターフェース１６１と、フラッシュインターフェース１６２と、記憶部１０３と、制御部１０５とを有する。
【００２０】
ホストインターフェース１６１は、ホストシステム１１２に対するインターフェースであり、通信手段の一例である。ホストインターフェース１６１経由で、コマンドが受信される。ホストインターフェース１６１とホストシステム１１２間で、所定の通信規格（例えば、ATA（例えばSerial ATA）の規格）に従い通信が行われる。
【００２１】
フラッシュインターフェース１６２は、フラッシュメモリ１０１に対するインターフェースである。フラッシュインターフェース１６２経由で、フラッシュメモリ１０１に対するデータが入出力される。
【００２２】
記憶部１０３は、例えばＤＲＡＭ（Dynamic Random Access Memory）のようなメモリであり、記憶手段の一例である。記憶部１０３は、管理情報１３３を記憶する。管理情報１３３は、フラッシュメモリ１０１の制御に関する情報とフラッシュメモリ１０１に関する情報とを含んでおり、例えば、論理アドレスと物理アドレスのアドレス変換テーブルと、各物理ブロックの消去回数を表すブロック管理テーブルとを含んだ情報である。記憶部１０３の管理情報１３３には、検出温度と比較される閾値を含んでいてもよい。閾値は、ユーザにより設定された値であってもよいし、フラッシュメモリ１０１の仕様として規定されている温度補償範囲上限として設定されている値であってもよい。
【００２３】
制御部１０５は、制御手段の一例であり、例えばプロセッサ（図示せず）を含む。制御部１０５は、ホストシステム１１２からのアクセスコマンドに従うデータのアクセスをフラッシュメモリ１０１に対して行うホストアクセス処理を実行する。アクセスコマンドがリードコマンドの場合、ホストアクセス処理は、リードコマンドに従う読出し対象データがホストシステム１１２に返された場合に、終了する。アクセスコマンドがライトコマンドの場合、ホストアクセス処理は、ライトコマンドに従う書込み対象データの書込みの完了報告がホストシステム１１２に送信された場合に、終了する。ホストアクセス処理では、ホストシステム１１２とメモリコントローラ１０２間で通信が行われる。
【００２４】
また、制御部１０５は、ホストアクセス処理とは非同期に、フラッシュメモリ１０１のメンテナンス処理を実行する。メンテナンス処理は、ホストアクセス処理の終了後に必ず行われてもよいし、ホストアクセス処理の終了後に必要に応じて行われてもよい。後者の場合、制御部１０５は、例えば、ホストアクセス処理におけるアクセス対象データのエラービット数が所定ビット数以上の場合、又は、ブロック間でデータを移動することが望ましい状況であることを管理情報１３３が表している場合、メンテナンス処理を実行してよい。メンテナンス処理は、例えば、バックアップ処理（管理情報１３３の少なくとも一部をフラッシュメモリ１０１に格納する処理）、リフレッシュ処理（物理ブロックからデータを読み出してエラー訂正し、エラー訂正したデータを別の物理ブロック（例えば、移動元の物理ブロックよりも消去回数の少ない物理ブロック）へ移動する処理）、及び、リクラメーション処理（物理ブロック内のデータを別の物理ブロックに移動し移動元の物理ブロックからデータを消去する処理）等がある。
【００２５】
また、制御部１０５は、温度センサ１０９から検出温度を表す情報を取得する。例えば、制御部１０５は、ホストシステム１１２からのコマンドを受信していない場合、図示しないタイマの契機により（つまり定期的に）、検出温度を取得してもよい。また、制御部１０５は、ホストシステム１１２からコマンド（特に例えばアクセスコマンド）を受信したとき、検出温度を取得してもよい。取得された検出温度を表す情報は、例えば記憶部１０３（又は制御部１０５内のレジスタ）のような所定領域に保持されてよく、その情報は、次回検出温度が取得されるまで保持されてよい。制御部１０５は、アクセスコマンドを受信してからホストアクセス処理が終了するまでの間に、検出温度の取得と、検出温度と閾値との比較とのうちの少なくとも１つを行ってもよいし、ホストアクセス処理の終了後に、検出温度の取得と、検出温度と閾値との比較とのうちの少なくとも１つを行ってもよい。なお、本実施形態では、制御部１０５が検出温度と閾値との比較を行うことにより検出温度と閾値との比較の結果が取得されるが、検出温度と閾値との比較は、制御部１０５に代えて温度センサ１０９（又は、制御部１０５及び温度センサ１０９以外の図示しない他モジュール）が行ってもよい。この場合、制御部１０５は、検出温度と閾値との比較の結果を、温度センサ１０９又は他モジュールから取得してもよい。
【００２６】
また、制御部１０５は、メモリコントローラ１０２をスリープモード（省電力状態）に移行することができる。スリープモードとして、少なくとも、メモリコントローラ１０２の動作クロックが停止されるスリープモードである第１のスリープモードがある。第１のスリープモードは、点線矢印で示すように制御部１０５からクロック発生回路１０８にクロック停止信号を送信する。第１のスリープモードの一例が、ATA規格において採用されているSlumberモードである。Slumberモードへの移行は、DIPM（Device Initiated Link Power Management）に従う方法（メモリ装置１００からスリープモードに移行することを要求する方法）により行われる。スリープモードとして、更に、メモリコントローラ１０２の動作クロックが維持されるスリープモードである第２のスリープモードがあってよい。
【００２７】
第１のスリープモードでは、メモリコントローラ１０２の動作クロックが停止されている。このため、第１のスリープモードにあるメモリコントローラ１０２が、内部要因（例えば図示しないタイマ）により復帰することが無い。故に、内部要因によりメモリコントローラ１０２がスリープモードから復帰してメンテナンス処理を実行することが無い。第１のスリープモードの状態にあるメモリコントローラ１０２は、ホストシステム１１２からのコマンド受信のような外部要因により復帰する（例えばアイドル状態に復帰する）。復帰後、メモリコントローラ１０２の制御部１０５は、定期的に検出温度（又は、検出温度と閾値との比較の結果）を取得してもよい。
【００２８】
一方、第２のスリープモードでは、動作クロックが維持されている。このため、内部要因によりメモリコントローラ１０２がスリープモードから復帰してメンテナンス処理を実行することがあり得る。
【００２９】
図２は、制御部１０５の処理のフローを示す。
【００３０】
制御部１０５は、ホストシステム１１２からコマンドを受信した場合、コマンドの種類を判断する（Ｓ２０１）。
【００３１】
受信したコマンドがアクセスコマンドの場合、制御部１０５は、そのアクセスコマンドに従うデータのアクセスをフラッシュメモリ１０１に対して行うホストアクセス処理を実行する（Ｓ２０２）。
【００３２】
ホストアクセス処理が終了した後に（例えば、ホストアクセス処理の終了時に）、制御部１０５は、検出温度と閾値との比較、具体的には、検出温度が閾値を超えているか否かを判断する（Ｓ２０３）。なお、検出温度は、アクセスコマンドの受信を契機に、ホストアクセス処理中に取得されてもよいし、ホストアクセス処理の終了時に取得されてもよい。また、検出温度と閾値との比較も、ホストアクセス処理中に行われてもよいし、ホストアクセス処理の終了後に行われてもよい。ホストアクセス終了後に検出温度の取得と比較が行われることで、最新の状況に応じた制御が可能であり、且つ、ホストアクセス処理の応答性能低下を避けることができる。
【００３３】
検出温度が閾値を超えている場合（Ｓ２０３：Ｙｅｓ）、制御部１０５は、メモリコントローラ１０２の動作クロックが停止される第１のスリープモードに移行する（Ｓ２０６）。例えば、制御部１０５は、DIPMに従う方法でSlumberモードに移行する。ホストアクセス処理の終了時であれば、新たにコマンドを受信するまで、ホストシステムとの間の通信が無いとみなすことができる。すなわち、制御部１０５は、検出温度が閾値を超えている場合、ホストシステム１１２との間の通信が無いときに、第１のスリープモードに移行する。これにより、フラッシュメモリ１０１へのアクセス（データの書込み又は読出し）によって生じる発熱を無くすことができ、以って、フラッシュメモリ装置１００の冷却（例えば、自然冷却、又は、図示しないファン駆動による冷却）を阻害することがなくなる。また、第１のスリープモードであればメモリコントローラ１０２が自発的にフラッシュメモリ１０１にアクセスすることが抑制されるため、活線挿抜によるフラッシュメモリ装置１００の電源遮断に起因するフラッシュメモリ１０１の書き込み異常を避けることもできる。
【００３４】
検出温度が閾値以下の場合（Ｓ２０３：Ｎｏ）、制御部１０５は、上述したように、必ず又は必要に応じて、メンテナンス処理を実行する（Ｓ２０４）。そして、制御部１０５は、メモリコントローラ１０２の動作クロックが維持される第２のスリープモードに移行する（Ｓ２０５）。第２のスリープモードでは、上述したように、内部要因によるメンテナンス処理（フラッシュメモリ１０１へのアクセス）が発生し得るが、検出温度が閾値以下のため、内部要因によるメンテナンス処理が発生しても、温度がフラッシュメモリ１０１に閾値を超える程に上昇する可能性は低い。そして、第２のスリープモードであれば、復帰に要する時間は、第１のスリープモードよりも短い。このため、ホストアクセス処理の応答性能の低下防止と、フラッシュメモリ１０１に影響を与える温度の上昇防止の両立が期待できる。
【００３５】
ホストシステム１１２からコマンドを受信し（Ｓ２０１）、受信したコマンドがメンテナンスコマンドの場合、制御部１０５は、そのメンテナンスコマンドに従いメンテナンス処理を実行する（Ｓ２０７）。そして、制御部１０５は、メモリコントローラ１０２の動作クロックが維持される第２のスリープモードに移行する（Ｓ２０８）。つまり、復帰時間のより短い第２のスリープモードが採用される。これにより、その後に発生し得るホストアクセス処理の応答性能低下を低減できる。
【００３６】
以上、本発明の一実施形態を説明したが、これは、本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。すなわち、本発明は、他の種々の形態でも実施する事が可能である。
【００３７】
例えば、Ｓ２０７の後、Ｓ２０８に代えて、検出温度が閾値を超えているか否かが判断されてもよい。検出温度が閾値を超えている場合、制御部１０５は、第１のスリープモードに移行してもよい。
【００３８】
例えば、フラッシュメモリ以外の不揮発性メモリとして、ＰＲＡＭ（Phase-change Random Access Memory）、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＲｅＲＡＭ（Resistive Random Access Memory）又はＦｅＲＡＭ（Ferroelectric Random Access Memory）が採用されてもよい。
【００３９】
また、例えば、第１のスリープモードにおいて、温度センサ１０９の代わりにメモリコントローラ１０２以外の所定のモジュールである温度モニタを備えていてもよい。温度モニタは、コントローラ１０２が第１のスリープモードになったとしても、自律的に稼働が維持され温度を検出する。温度モニタは、検出温度と閾値との比較の結果を定期的に取得し（例えば、検出温度の取得と検出温度と閾値との比較とを行い）、検出温度が閾値以下になったことを検出した場合にメモリコントローラ１０２に信号を出力してもよい。温度モニタは、ホストシステム１１２、温度センサ１０９、又は、ホストシステム１１２及び温度センサ１０９以外のモジュールであってメモリコントローラ１０２と通信可能なモジュール（図示せず）でよい。第１のスリープモードのメモリコントローラ１０２は、その信号を受信することにより復帰してよい。メモリコントローラ１０２が第１のスリープモードにいる間、内部要因によるメンテナンス処理は実行されず、且つ、検出温度が閾値以下に下がったとしてもメモリコントローラ１０２は外部要因があるまで復帰しない。検出温度が閾値以下になったことが検出されたことが契機に出力された信号がメモリコントローラ１０２の復帰のための外部要因として機能し、メモリコントローラ１０２が、内部要因によるメンテナンス処理を実行し得る状態となる。これにより、メンテナンス処理の頻度が下がることによるフラッシュメモリ１０１の状態低下の可能性を低減できる。
【符号の説明】
【００４０】
１００：フラッシュメモリ装置
【図１】
2017130043.tif 000003
【図２】
2017130043.tif 000004