(57)【要約】  メモリブロックリクレーム方法およびメモリブロックリクレーム装置が提供される。方法は、媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階（Ｓ２０１）と、媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階であって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームする段階（Ｓ２０２）とを備える。媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信した後に、アンマッピングコマンドに含まれるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、対応するメモリブロックを解放し、当該メモリブロックをリクレームすることにより、媒体コントローラの媒体管理オペレーション効果を高め、ＮＶＤＩＭＭの記憶性能を改善し、ＮＶＤＩＭＭの耐用期間を延ばす。
2021501941.tif 000002
【特許請求の範囲】
【請求項１】
メモリブロックリクレーム方法であって、前記方法は、コンピュータシステムに適用され、前記コンピュータシステムは、メモリコントローラと、媒体コントローラと、前記媒体コントローラに接続された不揮発性メモリとを備え、前記メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより前記媒体コントローラと通信し、前記不揮発性メモリは、複数のメモリブロックを有し、前記方法は、
前記媒体コントローラが、前記メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、前記アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
前記媒体コントローラが、前記メモリ論理アドレス情報に基づいて前記メモリブロックをリクレームする段階であって、リクレームされた前記メモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備えるメモリブロックリクレーム方法。
【請求項２】
前記媒体コントローラが、前記メモリ論理アドレス情報に基づいて前記メモリブロックをリクレームする前記段階は、
前記媒体コントローラが、前記メモリ論理アドレス情報に基づいて、メモリ論理アドレスと前記メモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する段階と、
前記媒体コントローラが、前記メモリブロックの前記メモリ物理アドレスをメモリアイドルリストに追加する段階と
を有する、
請求項１に記載の方法。
【請求項３】
前記メモリ論理アドレス情報は、前記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、前記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、請求項１または２に記載の方法。
【請求項４】
前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記方法は、
前記消去モード指示情報が前記メモリブロック内のデータ情報を消去するよう命令した場合、前記媒体コントローラが、予め定められたパターンを前記メモリブロックに書き込む段階
をさらに備える、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記方法は、
前記媒体コントローラが、前記メモリコントローラにより送信される読み出しコマンドを受信する段階であって、前記読み出しコマンドは、読み出し対象データの前記メモリ論理アドレス情報を含む、受信する段階と、
前記媒体コントローラが、対応するメモリ物理アドレスが前記メモリ論理アドレス情報に基づいて見つからない、と判断する段階と、
前記媒体コントローラがエラー応答情報を前記メモリコントローラへ送信する段階であって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示すために用いられる、送信する段階と
をさらに備える、請求項１から４のいずれか一項に記載の方法。
【請求項６】
メモリブロックリクレーム方法であって、前記方法は、コンピュータシステムに適用され、前記コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、前記媒体コントローラに接続された不揮発性メモリとを備え、前記メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより前記媒体コントローラと通信し、前記不揮発性メモリは、複数のメモリブロックを有し、前記方法は、
前記メモリコントローラが、前記プロセッサにより送信されるトリム（ＴＲＩＭ）命令を受信する段階であって、前記トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
前記メモリコントローラが、アンマッピングコマンドを前記媒体コントローラへ送信する段階であって、前記アンマッピングコマンドは、前記リクレーム対象メモリブロックの前記メモリ論理アドレス情報を含み、前記アンマッピングコマンドは、前記メモリブロックをリクレームするよう前記媒体コントローラに命令するために用いられ、リクレームされた前記メモリブロックは、利用可能なメモリブロックである、送信する段階と
を備えるメモリブロックリクレーム方法。
【請求項７】
前記メモリ論理アドレス情報は、前記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、前記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、請求項６に記載の方法。
【請求項８】
前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記消去モード指示情報が前記メモリブロック内のデータ情報を消去するよう命令した場合、前記アンマッピングコマンドはさらに、予め定められたパターンを前記メモリブロックに書き込むよう前記媒体コントローラに命令するために用いられる、請求項６または７に記載の方法。
【請求項９】
前記方法は、
前記メモリコントローラが、読み出しコマンドを前記媒体コントローラへ送信する段階であって、前記読み出しコマンドは、読み出し対象データの前記メモリ論理アドレス情報を含む、送信する段階と、
前記メモリコントローラが、前記媒体コントローラにより送信されるエラー応答情報を受信する段階であって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示すために用いられる、受信する段階と
をさらに備える、請求項６から８のいずれか一項に記載の方法。
【請求項１０】
媒体コントローラと、前記媒体コントローラに接続された不揮発性メモリとを備えるメモリであって、前記媒体コントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることによりプロセッサのメモリコントローラと通信し、前記不揮発性メモリは、複数のメモリブロックを含み、前記媒体コントローラは、
前記メモリコントローラにより送信されるアンマッピングコマンドを受信することであって、前記アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
前記メモリ論理アドレス情報に基づいて前記メモリブロックをリクレームすることであって、リクレームされた前記メモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される、
メモリ。
【請求項１１】
前記媒体コントローラはさらに、
前記メモリ論理アドレス情報に基づいて、メモリ論理アドレスと前記メモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
前記メモリブロックの前記メモリ物理アドレスをメモリアイドルリストに追加すること
を行うように構成される、
請求項１０に記載のメモリ。
【請求項１２】
前記メモリ論理アドレス情報は、前記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、前記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、請求項１０または１１に記載のメモリ。
【請求項１３】
前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記媒体コントローラはさらに、
前記消去モード指示情報が前記メモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンを前記メモリブロックに書き込むこと
を行うように構成される、
請求項１０から１２のいずれか一項に記載のメモリ。
【請求項１４】
前記媒体コントローラはさらに、
前記メモリコントローラにより送信される読み出しコマンドを受信することであって、前記読み出しコマンドは、読み出し対象データの前記メモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスが前記メモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報を前記メモリコントローラへ送信することであって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される、
請求項１０から１３のいずれか一項に記載のメモリ。
【請求項１５】
コンピュータシステムであって、前記コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、前記媒体コントローラに接続された不揮発性メモリとを備え、前記メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより前記媒体コントローラと通信し、前記不揮発性メモリは、複数のメモリブロックを有し、前記メモリコントローラは、
前記プロセッサにより送信されるトリム命令を受信することであって、前記トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
アンマッピングコマンドを前記媒体コントローラへ送信することであって、前記アンマッピングコマンドは、前記リクレーム対象メモリブロックの前記メモリ論理アドレス情報を含み、前記アンマッピングコマンドは、前記メモリブロックをリクレームするよう前記媒体コントローラに命令するために用いられる、送信することと
を行うように構成され、
前記媒体コントローラは、
前記メモリコントローラにより送信される前記アンマッピングコマンドを受信することと、
前記メモリ論理アドレス情報に基づいて前記メモリブロックをリクレームすることであって、リクレームされた前記メモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される、
コンピュータシステム。
【請求項１６】
前記メモリ論理アドレス情報は、前記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、前記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、請求項１５に記載のシステム。
【請求項１７】
前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記媒体コントローラはさらに、
前記消去モード指示情報が前記メモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンを前記メモリブロックに書き込むこと
を行うように構成される、
請求項１５または１６に記載のシステム。
【請求項１８】
前記メモリコントローラはさらに、
プロセッサにより送信されるメモリアクセス要求を受信することであって、前記メモリアクセス要求は、読み出し対象データの前記メモリ論理アドレス情報を含む、受信することを行うように構成され、
前記メモリコントローラはさらに、前記メモリアクセス要求に基づいて読み出しコマンドを前記媒体コントローラへ送信することであって、前記読み出しコマンドは、前記メモリ論理アドレス情報を保持する、送信することを行うように構成され、
前記媒体コントローラはさらに、
対応するメモリ物理アドレスが前記メモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報を前記メモリコントローラへ送信することであって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成され、
前記メモリコントローラはさらに、前記エラー応答情報に基づいて読み出し失敗情報を前記プロセッサへ送信することを行うように構成される、
請求項１５から１７のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、コンピュータ技術分野、特に、メモリブロックリクレーム方法およびメモリブロックリクレーム装置に関する。
【背景技術】
【０００２】
不揮発性デュアルインラインメモリモジュール（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｄｕａｌ  ｉｎ−ｌｉｎｅ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ、ＮＶＤＩＭＭ）は、コンピュータのランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＡＭ）である。ＮＶＤＩＭＭは、複数の不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ、ＮＶＭ）チップを含み得る。ＮＶＤＩＭＭはさらに、システムの電源が完全にオフになっている場合でも、完全なメモリデータを格納できる。ＮＶＤＩＭＭ上のＮＶＭチップは、具体的には、不揮発性ランダムアクセスメモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＮＶＲＡＭ）であってよいことが理解できる。ＮＶＤＩＭＭ上のＮＶＭは、相変化メモリ（ｐｈａｓｅ  ｃｈａｎｇｅ  ｍｅｍｏｒｙ、ＰＣＭ）、抵抗変化型ランダムアクセスメモリ（ｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＲＡＭ（登録商標））、磁気ランダムアクセスメモリ（ｍａｇｎｅｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＭＲＡＭ）、スピントランスファトルク磁気ランダムアクセスメモリ（ｓｐｉｎ−ｔｒａｎｓｆｅｒ  ｔｏｒｑｕｅ  ＭＲＡＭ、ＳＴＴ  ＭＲＡＭ）等を含み得る。ＮＶＤＩＭＭは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることによりメモリコントローラと通信する。ＮＶＤＩＭＭ−Ｐプロトコルは、ダブルデータレート（ｄｏｕｂｌｅ  ＤＡＴＡ  ｒａｔｅ、ＤＤＲ）プロトコルとの互換性があるバスアクセスプロトコルである。
【０００３】
しかしながら、ダイナミックランダムアクセスメモリ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＤＲＡＭ）と比較すると、ＮＶＭは、疲労抵抗が低く、書き込み回数が制限されている。従って、ＮＶＭチップにおけるいくつかのメモリブロックが最大書き込み回数に達した場合、ＮＶＭチップは利用できなくなり、ＮＶＤＩＭＭ全体の耐用期間に影響が及ぶ。ＮＶＭチップにおける異なるメモリブロックの書き込み回数が不均衡になるのを回避し、ウェアレベリング効果を高め、ＮＶＤＩＭＭの耐用期間を延ばすために、ＮＶＤＩＭＭに対してメモリ管理を実行する必要がある。
【発明の概要】
【０００４】
本願の実施形態は、メモリブロックリクレームの速度を改善してウェアレベリング効果を高めるために、メモリブロックリクレーム方法およびメモリブロックリクレーム装置を提供する。
【０００５】
第１の態様によれば、本願の実施形態は、メモリブロックリクレーム方法を提供する。
方法は、コンピュータシステムに適用され、コンピュータシステムは、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、方法は、
媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階であって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備える。
【０００６】
媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信した後に、アンマッピングコマンドに含まれるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、対応するメモリブロックを解放し、当該メモリブロックをリクレームすることにより、媒体コントローラの媒体管理オペレーション効果を高め、ＮＶＤＩＭＭの記憶性能を改善し、ＮＶＤＩＭＭの耐用期間を延ばす。
【０００７】
可能な実装において、媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階は、
媒体コントローラが、メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する段階と、
媒体コントローラが、メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加する段階と
を有する。
【０００８】
媒体コントローラがメモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を時間内に削除できるので、利用可能なメモリブロックの数を増やすことができ、メモリブロック間のウェアレベリングの効果を高めることができ、ＮＶＤＩＭＭの性能を改善することができ、ＮＶＤＩＭＭの耐用期間を延ばすことができる。このようにして、メモリモジュールは、ＮＶＤＩＭＭがメモリとして用いられる場合に管理される。
【０００９】
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００１０】
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、方法は、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、媒体コントローラが、予め定められたパターンをメモリブロックに書き込む段階
をさらに備える。
【００１１】
この実装において、アンマッピングコマンドは、消去モード指示情報をさらに含む。この場合、メモリブロック内のデータが機微データであるときは、媒体コントローラは、予め定められたパターンを有する機微データを上書きすることにより機微データを保護してＮＶＤＩＭＭのセキュリティを改善するよう命令され得る。
【００１２】
可能な実装において、方法は、
媒体コントローラが、メモリコントローラにより送信される読み出しコマンドを受信する段階であって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断する段階と、
媒体コントローラがエラー応答情報をメモリコントローラへ送信する段階であって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信する段階と、
をさらに備える。
【００１３】
第２の態様によれば、本願の実施形態は、メモリブロックリクレーム方法をさらに提供する。
方法は、コンピュータシステムに適用され、コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、方法は、
メモリコントローラが、プロセッサにより送信されるトリム（ＴＲＩＭ）命令を受信する段階であって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
メモリコントローラが、アンマッピングコマンドを媒体コントローラへ送信する段階と
を備える。
【００１４】
アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラに命令するために用いられ、リクレームされたメモリブロックは、利用可能なメモリブロックである。
【００１５】
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００１６】
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、アンマッピングコマンドはさらに、予め定められたパターンをメモリブロックに書き込むよう媒体コントローラに命令するために用いられる。
【００１７】
可能な実装において、方法は、
メモリコントローラが、読み出しコマンドを媒体コントローラへ送信する段階であって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、送信する段階と、
メモリコントローラが、媒体コントローラにより送信されるエラー応答情報を受信する段階であって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、受信する段階と
をさらに備える。
【００１８】
第３の態様によれば、本願の実施形態は、第１の態様におけるメモリブロックリクレーム方法を実行するように構成されたメモリをさらに提供する。メモリは、第１の態様におけるものと同じ技術的特徴および技術的効果を有する。本願においては、詳細を改めて説明しない。
【００１９】
本願の実施形態の第３の態様は、メモリを提供する。
メモリは、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、媒体コントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることによりプロセッサのメモリコントローラと通信し、不揮発性メモリは、複数のメモリブロックを含み、媒体コントローラは、
メモリコントローラにより送信されるアンマッピングコマンドを受信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
【００２０】
任意的な実装において、メモリコントローラはさらに、
メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加することと
を行うように構成される。
【００２１】
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００２２】
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラはさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
【００２３】
任意的な実装において、媒体コントローラはさらに、
メモリコントローラにより送信される読み出しコマンドを受信することであって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラへ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
【００２４】
第４の態様によれば、本願の実施形態は、コンピュータシステムをさらに提供する。
コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、メモリコントローラは、
プロセッサにより送信されるトリム命令を受信することであって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
アンマッピングコマンドを媒体コントローラへ送信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラに命令するために用いられる、送信することと
を行うように構成される。
【００２５】
媒体コントローラは、
メモリコントローラにより送信されるアンマッピングコマンドを受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
【００２６】
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００２７】
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラはさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
【００２８】
可能な実装において、メモリコントローラはさらに、
プロセッサにより送信されるメモリアクセス要求を受信することであって、メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む、受信すること
を行うように構成される。
【００２９】
メモリコントローラはさらに、メモリアクセス要求に基づいて読み出しコマンドを媒体コントローラへ送信することであって、読み出しコマンドは、メモリ論理アドレス情報を保持する、送信することを行うように構成される。
【００３０】
媒体コントローラはさらに、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラへ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
【００３１】
メモリコントローラはさらに、エラー応答情報に基づいて読み出し失敗情報をプロセッサへ送信するように構成される。
【図面の簡単な説明】
【００３２】
本願の実施形態または従来技術における技術的解決手段をより明確に説明すべく、実施形態を説明するために必要な添付図面を以下で簡潔に説明する。以下の説明における添付図面が本願のいくつかの実施形態を示しているに過ぎないことは明らかである。
【００３３】
【図１】本願の実施形態によるコンピュータシステムの概略アーキテクチャ図である。
【００３４】
【図２】本願の実施形態１によるメモリブロックリクレーム方法の概略フローチャートである。
【００３５】
【図３】本願の実施形態２によるメモリブロックリクレーム方法のシグナリングフローチャートである。
【００３６】
【図４】本願の実施形態によるデータ読み出し方法のフローチャートである。
【発明を実施するための形態】
【００３７】
当業者が本願における技術的解決手段をより良く理解できるよう、以下では、本願の実施形態における添付図面を参照して、本願の実施形態における技術的解決手段を明確に説明する。説明される実施形態が本願の実施形態のいくつかに過ぎず、全てではないことは明らかである。
【００３８】
図１は、本願の実施形態によるコンピュータシステムの概略アーキテクチャ図である。図１に示されるように、コンピュータシステム１００は少なくとも、プロセッサ１０２、メモリコントローラ１０６およびＮＶＤＩＭＭ１０８を含み得る。通常、メモリコントローラ１０６は、プロセッサ１０２に統合され得る。図１に示される構成要素に加え、コンピュータシステム１００は、通信インタフェースと、外部記憶デバイスとして用いられるディスクなどの別の構成要素とをさらに含み得ることに留意すべきである。このことは、本明細書において限定されない。
【００３９】
プロセッサ（ｐｒｏｃｅｓｓｏｒ）１０２は、コンピュータシステム１００のコンピューティングコア兼制御コア（ｃｏｎｔｒｏｌ  ｕｎｉｔ）である。プロセッサ１０２は、１または複数のプロセッサコア（ｃｏｒｅ）１０４を含み得る。プロセッサ１０２は、非常に大規模な集積回路であってよい。オペレーティングシステムおよび別のソフトウェアプログラムがプロセッサ１０２にインストールされることにより、プロセッサ１０２は、ＮＶＤＩＭＭ１０８、キャッシュおよびディスクにアクセスできる。本願の本実施形態において、プロセッサ１０２におけるコア１０４は、例えば中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）であってよく、または別の特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ、ＡＳＩＣ）であってよいことが理解できる。
【００４０】
メモリコントローラ（ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ）１０６は、コンピュータシステム１００内のＮＶＤＩＭＭ１０８を制御し、ＮＶＤＩＭＭ１０８からコア１０４へのデータ伝送を管理および計画するように構成されたバス回路コントローラである。データは、メモリコントローラ１０６を用いることにより、ＮＶＤＩＭＭ１０８とコア１０４との間でやり取りされ得る。メモリコントローラ１０６は、別個のチップであってよく、システムバスを用いることによりコア１０４に接続されている。当業者であれば、メモリコントローラ１０６は、代替的に（図１に示されるように）プロセッサ１０２に統合され得るか、またはノースブリッジに組み込まれ得ることを認識し得る。メモリコントローラ１０６の具体的な位置は、本願の本実施形態において限定されない。実際の適用では、メモリコントローラ１０６は、通信インタフェース１０６２および制御回路１０６４を含んでよく、メモリコントローラ１０６は、通信インタフェース１０６２を通じて、プロセッサ１０２およびＮＶＤＩＭＭ１０８と通信し得る。メモリコントローラ１０６は、制御回路１０６４を用いることにより必要なロジックを制御して、データをＮＶＤＩＭＭ１０８に書き込み得るか、または、データをＮＶＤＩＭＭ１０８から読み出し得る。
【００４１】
ＮＶＤＩＭＭ１０８は、コンピュータシステム１００のランダムアクセスメモリ（ＲＡＭ）であり、コンピュータシステム１００のメモリまたは記憶デバイスとして用いられ得る。ＮＶＤＩＭＭ１０８は、媒体コントローラ１１０、少なくとも１つのＮＶＭ１１２および１または複数のキャッシュ１１４を含み得る。媒体コントローラ１１０は、制御能力を有する論理回路を含み得る。ＮＶＭ１１２は、オペレーティングシステムにおいて現在動作中の様々なソフトウェア、入力データおよび出力データ、外部記憶デバイスとやり取りされる情報等を格納するように構成される。ＮＶＭ１１２は、チップの形態で存在し得る。例えば、ＮＶＭ１１２は、相変化メモリ（ｐｈａｓｅ  ｃｈａｎｇｅ  ｍｅｍｏｒｙ、ＰＣＭ）、抵抗変化型ランダムアクセスメモリ（ｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＲＡＭ（登録商標））、磁気ランダムアクセスメモリ（ｍａｇｎｅｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＭＲＡＭ）またはスピントランスファトルク磁気ランダムアクセスメモリ（ｓｐｉｎ−ｔｒａｎｓｆｅｒ  ｔｏｒｑｕｅ  ＭＲＡＭ、ＳＴＴ  ＭＲＡＭ）など、メモリとして用いられ得る不揮発性メモリを含み得る。
【００４２】
メモリコントローラ１０６は、バス１０５を用いることにより、ＮＶＤＩＭＭ１０８に接続されている。メモリコントローラ１０６は、ＮＶＤＩＭＭ−Ｐプロトコルに準拠してＮＶＤＩＭＭ１０８と通信する。ＮＶＤＩＭＭ−Ｐプロトコルは、ダブルデータレート（ｄｏｕｂｌｅ  ＤＡＴＡ  ｒａｔｅ、ＤＤＲ）プロトコルとの互換性がある非同期プロトコルである。媒体コントローラ１１０は、メモリコントローラ１０６のメモリアクセスコマンドに基づいて、ＮＶＭ１１２に格納されたデータにアクセスし得る。メモリコントローラ１０６により送信されるメモリアクセスコマンドは、読み出しコマンドまたは書き込みコマンドであってよいことが理解できる。媒体コントローラ１１０は、メモリコントローラ１０６により送信される読み出しコマンドに基づき、ＮＶＭ１１２からデータを読み出して当該データを読み出しバッファに格納し、当該読み出しバッファから当該データを読み出すようメモリコントローラ１０６に命令するために非同期信号をメモリコントローラ１０６へ送信し得るか、または、媒体コントローラ１１０は、メモリコントローラ１０６により送信される書き込みコマンドに基づき、まず、データを書き込みバッファに格納し、書き込みバッファ内の当該データをＮＶＭ１１２またはキャッシュ１１４に書き込み得る。
【００４３】
本願の本実施形態において、バス１０５は少なくとも、データバスおよびコマンド／アドレスバスを含み得る。データバスは、データおよびメタデータを伝送するように構成される。コマンド／アドレスバスは、読み出しコマンドまたは書き込みコマンドなどのメモリアクセスコマンドを伝送するように構成される。キャッシュ１１４は、媒体コントローラ１１０によりＮＶＭ１１２から読み出されるデータをキャッシュするように構成される。
【００４４】
ＮＶＤＩＭＭの耐用期間を延ばしてＮＶＤＩＭＭの性能を改善するために、媒体コントローラは、例えば、ウェアレベリング（Ｗｅａｒ  Ｌｅｖｅｌｉｎｇ）、不良ブロック管理およびキャッシュとＮＶＭとの間のデータ移行といった異なる媒体管理オペレーションを実行する必要がある。ウェアレベリングは、メモリブロックの消去／書き込みの回数が同じになるのを保証することによりＮＶＤＩＭＭの耐用期間を延ばすために、データがＮＶＤＩＭＭの各メモリブロックへ可能な限り均等に分散されることを意味する。媒体コントローラは、新しいメモリブロックをデータに割り当てる場合、摩耗の回数がより少ないメモリブロックをメモリアイドルリストから優先的に選択する。不良ブロックの管理は、メモリブロックが不良ブロックであると自らが判断した後に、現在の不良ブロック内のデータ用に、メモリアイドルリストから新しいメモリブロックが選択されることを意味する。キャッシュとＮＶＭとの間のデータ移行は、頻繁にアクセスされるデータをキャッシュに格納し、アクセスの頻度が低いデータをＮＶＭへ移行することにより、読み出し要求／書き込み要求の処理速度を改善するというものである。しかしながら、キャッシュにおけるデータがＮＶＭに書き込まれた場合、キャッシュ内のデータ用に、メモリアイドルリストから新しいメモリブロックが選択される必要がある。メモリアイドルリストをタイムリーに更新することが、媒体コントローラの媒体管理オペレーションの管理効果を決定付け、さらに、ＮＶＤＩＭＭの耐用期間および性能に影響を及ぼすことが、前述の分析から認識できる。
【００４５】
前述の媒体管理オペレーションの効率を改善するために、本願の実施形態は、メモリブロックリクレーム方法およびメモリブロックリクレーム装置を提供する。
【００４６】
以下では、特定の実施形態を参照して、本願の実施形態において提供されるメモリブロックリクレーム方法およびメモリブロックリクレーム装置を詳細に説明する。以下の特定の実施形態において、同じまたは同様の概念または処理は、いくつかの実施形態では詳細に説明されないことがある。
【００４７】
本願の実施形態の一態様は、メモリブロックリクレーム方法を提供する。図２は、本願の実施形態１によるメモリブロックリクレーム方法の概略フローチャートである。本実施形態において、媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信し、アンマッピングコマンドに基づいてメモリブロックをリクレームし、メモリブロックを利用可能なメモリブロックへ変換することにより、媒体コントローラの媒体管理オペレーションの管理効果を高め、さらに、ＮＶＤＩＭＭの記憶性能を改善し、ＮＶＤＩＭＭの耐用期間を延ばす。図２に示されるように、本実施形態において提供されるメモリブロックリクレーム方法は、図１に示されるコンピュータシステムに適用される。例えば、メモリブロックリクレーム方法は、図１における媒体コントローラにより実行され得る。コンピュータシステムは、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備える。メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより媒体コントローラと通信する。不揮発性メモリは、複数のメモリブロックを有する。メモリブロックリクレーム方法は、以下の段階を備える。
【００４８】
Ｓ２０１．メモリコントローラが、アンマッピングコマンドを媒体コントローラへ送信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
【００４９】
例えば、媒体コントローラは、メモリコントローラにより送信されるアクセス要求を受信した場合、通常、対応するメモリ物理アドレスをアクセス要求におけるメモリ論理アドレスに割り当て、メモリ論理アドレスとメモリ物理アドレスとの間のマッピング関係を格納する。メモリコントローラがメモリ論理アドレスを読み出したか、または書き込んだ場合、媒体コントローラは、マッピング関係に基づいて、この対応するメモリ物理アドレスに対応するデータを読み出し得るか、または書き込み得る。媒体コントローラは、メモリ物理アドレスをメモリ論理アドレスに割り当てた場合、メモリアイドルリストからメモリブロックを選択する。ＮＶＭチップ内のメモリブロック間のウェアレベリング効果を保証するために、未使用のメモリブロックが利用可能なメモリブロックへ時間内に変換されるのを保証することにより、いくつかのメモリブロックが媒体管理に関与できず、メモリリソースが浪費され、ＮＶＤＩＭＭの耐用期間が短縮されるケースを回避すべきである。前述の目的を達成するために、メモリコントローラは、アンマッピングコマンド（ｕｎｍａｐ  ｃｏｍｍａｎｄ）を媒体コントローラへ送信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を保持する。アンマッピングコマンドは、アンマッピングコマンドに基づいてメモリブロックをリクレームするよう媒体コントローラに命令するために用いられる。媒体コントローラは、アンマッピングコマンドを受信した場合、アンマッピングコマンドにおけるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、リクレーム対象メモリブロックのメモリ物理アドレス情報を決定し得る。
【００５０】
Ｓ２０２．媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする。リクレームされたメモリブロックは、利用可能なメモリブロックである。
【００５１】
例えば、媒体コントローラは、アンマッピングコマンドにおけるメモリ論理アドレス情報に基づいて、指定のメモリブロックをリクレームする。リクレームされたメモリブロックは、利用可能なメモリブロックであり、媒体コントローラは、ウェアレベリングなどの媒体管理を実行する場合、メモリブロックを管理し得る。あるオブジェクトを解放する場合、既存のメモリコントローラは通常、当該オブジェクトに対応するデータにより占有されているメモリブロックのアンマッピングコマンドを媒体コントローラへ送信しない。本実施形態において、アンマッピングコマンドが媒体コントローラへ送信され、指定のメモリブロックがリクレームされることにより、当該メモリブロックが、利用可能なメモリブロックへ変換され、未使用のメモリブロックを、可能な限り速やかに解放できる。これにより、過剰な割り当てによって生じる比較的高いオーバヘッドが回避される。このようにして、未使用のメモリブロックが媒体管理オペレーションにおいて可能な限り早く管理され得ることにより、ＮＶＤＩＭＭの記憶性能が改善し、ＮＶＤＩＭＭの耐用期間が延びる。
【００５２】
本願の実施形態は、メモリブロックリクレーム方法を提供する。
方法は、
媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階であって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備える。媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信した後に、アンマッピングコマンドに含まれるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、対応するメモリブロックを解放し、当該メモリブロックをリクレームすることにより、媒体コントローラの媒体管理オペレーション効果を高め、ＮＶＤＩＭＭの記憶性能を改善し、ＮＶＤＩＭＭの耐用期間を延ばす。
【００５３】
例えば、図２に示される実施形態に基づいて、本願の実施形態はさらに、メモリブロックリクレーム方法を提供する。図３は、本願の実施形態２によるメモリブロックリクレーム方法のシグナリングフローチャートである。本実施形態では、媒体コントローラがアンマッピングコマンドに基づいてメモリブロックをリクレームする特定の処理を詳細に説明する。図３に示されるように、メモリブロックリクレーム方法は、以下の段階を備える。
【００５４】
Ｓ３０１．媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
【００５５】
例えば、本実施形態におけるＳ３０１は、図２に示される実施形態におけるＳ２０１と同じである。本願においては、詳細を改めて説明しない。
【００５６】
任意選択で、図２および図３に示される実施形態において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００５７】
例えば、媒体コントローラは、メモリブロックをリクレームする場合、アンマッピングコマンドにおけるリクレーム対象メモリブロックの開始アドレスと、リクレーム対象メモリブロックの全長とに基づいて、メモリ物理アドレス内のどのメモリブロックをリクレームするかを決定する。例えば、リクレーム対象メモリブロックが連続するメモリブロック１、２および３を含む場合、開始アドレスは、例えば、メモリブロック１の第１のアドレスであってよく、長さ情報は３であってよい。任意選択で、メモリコントローラおよび媒体コントローラは、メモリブロックの粒度と一致する。任意選択で、アンマッピングコマンドは、メモリブロックの粒度サイズ情報をさらに含み得る。
【００５８】
任意選択で、前述の実施形態に基づいて、Ｓ３０１の前に、メモリブロックリクレーム方法は、以下の段階をさらに備える。
【００５９】
Ｓ３００．メモリコントローラが、プロセッサにより送信されるトリム命令を受信する。トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
【００６０】
例えば、プロセッサ（例えば、図１における任意のプロセッサコア１０４）は、トリム命令（ＴＲＩＭ  ｉｎｓｔｒｕｃｔｉｏｎ）をメモリコントローラへ送信し、メモリコントローラは、トリム命令を受信した後に、アンマッピングコマンドを媒体コントローラへ送信する。トリム命令は、どのメモリブロックがもはや用いられておらず消去され得るかをメモリに通知するためにオペレーティングシステムにより用いられるコマンドである。
【００６１】
具体的には、プロセッサにおいて動作しているオペレーティングシステムがあるオブジェクトを削除した場合、媒体コントローラは、当該オブジェクトが削除されたことを認識できず、論理アドレスと物理アドレスとの間のマッピング関係を依然として格納する。従って、本願の本実施形態において、オブジェクトファイルが削除された場合、プロセッサは、トリム命令をメモリコントローラへ送信し得る。トリム命令は、メモリブロックのアドレスを保持し、トリム命令は、メモリブロックのデータに対応するオブジェクトが削除されたことをメモリコントローラに通知するために用いられ、メモリブロックのデータは、削除されてよく、メモリブロックは、リクレームされてよい。
【００６２】
実際の適用では、あるオブジェクトと当該オブジェクトに対応するデータとが解放されているケース、予め設定されたサイズを超えるサイズのメモリブロックが解放されているケース、アプリケーションが終了しているケース、メモリの読み出し要求／書き込み要求の回数が予め設定された回数未満であるケース、または、予め設定されたオペレーティングシステムメモリ管理アルゴリズムに基づいて、トリム命令が送信される必要がある、とプロセッサが判断しているケースのいずれか１つをプロセッサが検出した場合、プロセッサは、トリム命令をメモリコントローラへ送信する。
【００６３】
例えば、プロセッサは、あるオブジェクトが解放されていることを検出した場合、当該オブジェクトによりリクレーム対象メモリブロックとして占有されているメモリブロックを用いることにより、トリム命令をメモリコントローラへ送信する。任意選択で、プロセッサコアとメモリコントローラとの間のシグナリングの相互作用を低減するために、プロセッサは、予め設定されたサイズを超えるサイズのメモリブロックが解放されていることを検出した場合、リクレーム対象メモリブロックとしてメモリブロックを用いることにより、トリム命令をメモリコントローラへ送信する。任意選択で、プロセッサは、あるアプリケーションが終了していることを検出した場合、当該アプリケーションによりリクレーム対象メモリブロックとして占有されているメモリブロックを用いることにより、トリム命令をメモリコントローラへ送信する。任意選択で、比較的少数の読み出し要求／書き込み要求があることを検出した場合、すなわち、メモリがアイドルである場合、プロセッサは、トリム命令をメモリコントローラへ送信することにより、メモリがビジーである場合にメモリの解放を回避し、これにより、メモリの読み出し性能／書き込み性能を改善する。任意選択で、プロセッサは、予め設定されたオペレーティングシステムメモリ管理アルゴリズムに基づいて、トリム命令が送信される必要がある、と判断した場合、代替的に、トリム命令をメモリコントローラへ送信し得る。
【００６４】
実際の適用では、第４世代ダブルデータレート（ｆｏｕｒｔｈ−ｇｅｎｅｒａｔｉｏｎ  ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ、ＤＤＲ４）同期インタフェースまたは第５世代ダブルデータレート（ｆｉｆｔｈ−ｇｅｎｅｒａｔｉｏｎ  ｄｏｕｂｌｅ  ＤＡＴＡ  ｒａｔｅ、ＤＤＲ５）同期インタフェースが、媒体コントローラとメモリコントローラとの間で用いられ得る。異なるＤＤＲインタフェースが用いられる場合、メモリコントローラにより媒体コントローラへ送信されるアンマッピングコマンドのフォーマットが異なる。
【００６５】
第１の可能な実装において、ＤＤＲ４インタフェースは、媒体コントローラとメモリコントローラとの間で用いられ、アンマッピングコマンド（ｕｎｍａｐ  ｃｏｍｍａｎｄ）のフォーマットが以下の表１に示される。
【表１】
2021501941.tif 000003
【００６６】
例えば、アンマッピングコマンドの長さが制限されていることに起因して、リクレーム対象メモリブロックの完全なアドレス情報を保持できない。従って、メモリコントローラは、アンマッピングコマンドを送信した後に、通常、さらにアドレス拡張コマンドを送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、連続で送信される。具体的には、メモリコントローラは、アンマッピングコマンドとアドレス拡張コマンドとを交互に送信する。例えば、メモリコントローラは、第１のアンマッピングコマンドを第１のクロックビートで送信した後に、第１のアドレス拡張コマンドを第２のクロックビートで送信し、次に、第２のアンマッピングコマンドおよび第２のアドレス拡張コマンドを後続のクロックビートで順に送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、２つのクロックビートで送信される。アドレス拡張コマンドのフォーマットも、表１に示される。１つのクロックビートが１つのクロック変更端であり、変更端は、立ち上がり端または立ち下がり端であってよい。
【００６７】
例えば、表１に示されるように、アンマッピングコマンドおよびアドレス拡張コマンドにおいて、Ｈ（ｈｉｇｈ）はバイナリデータ１を表し、Ｌ（ｌｏｗ）はバイナリデータ０を表す。ＣＫＥ０（Ｃｌｏｃｋ  Ｅｎａｂｌｅ）ビットは、クロックイネーブル信号を示すために用いられ、前の（前のサイクルの）ビットは、前のクロックが有効であるかどうかを示すために用いられ、現在の（現在のサイクルの）ビットは、現在のクロックが有効であるかどうかを示すために用いられる。表１に示されるように、前のビットおよび現在のビットの両方がＨである場合、クロックイネーブル信号は有効であり、媒体コントローラは、クロックイネーブル信号が有効であるときは、アンマッピングコマンドを受信する。ＣＳ（Ｃｈｉｐ  Ｓｅｌｅｃｔ）はチップ選択信号である。メモリチャネル上には複数のメモリモジュールが存在し、メモリコントローラは、チップ選択信号を用いることにより、アンマッピングコマンドおよびアドレス拡張コマンドを受信するメモリモジュールを決定し得る。あるメモリモジュールにより受信されたチップ選択信号がＬである場合、これは、アンマッピングコマンドおよびアドレス拡張コマンドを受信するよう当該メモリモジュールが選択されていることを示す。ＡＤＤＲ［３９：２］フィールドは、リクレーム対象メモリブロックの開始アドレスを格納するために用いられる。言い換えると、ＡＤＤＲ［３９：２］は、リクレーム対象メモリブロックの開始アドレス、すなわち、第１のリクレーム対象メモリブロックの開始アドレスである。ＬＥＮＧＴＨ［４：０］は、リクレーム対象メモリブロックの長さ情報を示すために用いられ、具体的には、リクレーム対象メモリブロックの数を示すために用いられ得る。ＬＥＮＧＴＨ［４：０］を例として用いると、ＬＥＮＧＴＨ［４：０］フィールドの最大値は３２である。この場合、１つのアンマッピングコマンドが、メモリブロックをリクレーム３２するよう命令するために用いられ得る。ＯＰＣＯＤＥ［０］フィールドは、消去モード情報を示すために用いられる。
【００６８】
第２の可能な実装において、ＤＤＲ５インタフェースは、媒体コントローラとメモリコントローラとの間で用いられ、アンマッピングコマンドのフォーマットは、以下の表２において示される。
【表２】
2021501941.tif 000004
【００６９】
第１の可能な実装と同様に、アンマッピングコマンドの長さが制限されていることに起因して、アンマッピングコマンドは、リクレーム対象メモリブロックの完全なアドレス情報を保持できない。従って、メモリコントローラは、アンマッピングコマンドを送信した後に、通常、さらにアドレス拡張コマンドを送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、連続で送信される。具体的には、メモリコントローラは、アンマッピングコマンドとアドレス拡張コマンドとを交互に送信する。第１の可能な実装とは異なり、この実装では、アンマッピングコマンドおよびアドレス拡張コマンドの両方が、送信において２つのクロックサイクルを費やす必要があり、各クロックサイクルは、１つのクロック立ち上がり端および１つのクロック立ち下がり端を含む。本実施形態において、メモリコントローラは、第１のクロックサイクルの２つのクロック端でアンマッピングコマンドの第１の部分を送信した後に、第２のクロックサイクルの２つのクロック端でアンマッピングコマンドの第２の部分を送信し、次に、第３のクロックサイクルの２つのクロック端でアドレス拡張コマンドの第１の部分を送信し、次に、第４のクロックサイクルの２つのクロック端でアドレス拡張コマンドの第２の部分を送信する。メモリコントローラは、他のアンマッピングコマンドおよびアドレス拡張コマンドを後続のクロックビートで順に送信する。アドレス拡張コマンドのフォーマットも、表２に示される。
【００７０】
アンマッピングコマンドおよびアドレス拡張コマンドにおいて、Ｈ（ｈｉｇｈ）はバイナリデータ１を表し、Ｌ（ｌｏｗ）はバイナリデータ０を表す。ＣＳ（Ｃｈｉｐ  Ｓｅｌｅｃｔ）はチップ選択信号である。ＣＳが第１のクロックサイクルにおいてＬであることが検出された場合、これは、アンマッピングコマンドまたはアドレス拡張コマンドが始まっていることを示す。第２のクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドについては、ＣＳがＨであることが検出された場合、これは、アンマッピングコマンドの第２の部分またはアドレス拡張コマンドが受信されていることを示す。しかしながら、ＣＳが第２のクロックにおいてＬであることが依然として検出されている場合、これは、アンマッピングコマンドまたはアドレス拡張コマンドにエラーが発生していることを示す。この場合、これら２つのクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドが破棄され得るか、または、第１のクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドが破棄され得る。ＡＤＤＲ［３９：１］フィールドは、リクレーム対象メモリブロックの開始アドレスを示すために用いられる。言い換えると、ＡＤＤＲ［３９：１］フィールドは、第１のリクレーム対象メモリブロックの開始アドレスを示すために用いられる。ＬＥＮＧＴＨ［６：０］は、リクレーム対象メモリブロックの長さ情報を示すために用いられ、具体的には、リクレーム対象メモリブロックの数を示すために用いられ得る。ＬＥＮＧＴＨ［６：０］を例として用いると、ＬＥＮＧＴＨ［６：０］フィールドの最大値は１２８である。この場合、１つのアンマッピングコマンドが、１２８個のメモリブロックをリクレームするよう命令するために用いられ得る。ＯＰＣＯＤＥ［０］は、消去モード情報を示すために用いられるフィールドである。
【００７１】
Ｓ３０２．媒体コントローラが、メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する。具体的には、媒体コントローラは、アンマッピングコマンドを受信した後に、アンマッピングコマンドにおける第１のメモリ論理アドレス情報に基づいて、第１のメモリ論理アドレスに対応する第１のメモリ物理アドレスを決定し得る。この場合、媒体コントローラが、第１のメモリ論理アドレスと第１のメモリ物理アドレスとの間のマッピング関係を削除し得ることにより、第１のメモリ物理アドレスの対応するメモリ論理アドレスがなくなり、媒体コントローラは、新しいメモリ論理アドレスを第１のメモリ物理アドレスに割り当て得る。第１のメモリ論理アドレスと第１のメモリ物理アドレスとの間のマッピング関係が削除されていない場合、メモリコントローラが第１のメモリ論理アドレスに次回アクセスするときにのみ、媒体コントローラは、第１のメモリ物理アドレスにアクセスできる。しかしながら、これら２回のアクセスの間の間隔は、非常に長くなり得る。これにより、第１のメモリ物理アドレスの消去／書き込みの回数が確実に、ＮＶＭ内の別のメモリブロックの消去／書き込みの回数未満になる。このことは、ＮＶＤＭＭの耐用期間に影響を及ぼし得る。
【００７２】
Ｓ３０３．媒体コントローラがメモリブロックのメモリ物理アドレスをメモリアイドルリストに追加する。本願の本実施形態において、対応するメモリ論理アドレスがないメモリ物理アドレスが、利用可能なメモリブロックであり、媒体コントローラは、メモリ物理アドレスをメモリアイドルリストに追加する。本願の本実施形態において、メモリアイドルリストに示されるメモリブロックは、利用可能なメモリブロックである。言い換えると、あるメモリブロックが新しいアクセス要求に割り当てられる必要がある場合、媒体コントローラは、メモリアイドルリストに基づいて、当該メモリブロックを割り当て得る。実際の適用では、メモリアイドルリスト内のメモリブロックが、メモリブロックの書き込み回数の昇順で配置され得る。メモリブロックを割り当てる処理において、媒体コントローラは、消去／書き込みの回数が少ないメモリブロックを優先的に割り当て得る。当然ながら、実際の適用では、媒体コントローラは、代替的に、メモリブロックをランダムに割り当て得る。このことは、本明細書において限定されない。本願の本実施形態によるＮＶＤＩＭＭを備えるコンピュータシステムにおいて、メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルに従ってアンマッピングコマンドを媒体コントローラへ送信することで、メモリブロックをリクレームするよう媒体コントローラに命令し得る。媒体コントローラは、アンマッピングコマンドを受信した後に、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係をアンマッピングコマンドにおいて保持されるメモリ論理アドレス情報に基づいて削除し、対応するメモリブロックをリクレームし得る。
【００７３】
メモリコントローラがアンマッピングコマンドを本願の本実施形態による媒体コントローラへ送信するこの方式で、媒体コントローラは、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を時間内に削除でき、これにより、利用可能なメモリブロックの数を増やすことができ、メモリブロック間のウェアレベリング効果を高めることができ、ＮＶＤＩＭＭの性能を延ばすことができ、ＮＶＤＩＭＭの耐用期間を延ばすことができる。このようにして、メモリモジュールは、ＮＶＤＩＭＭがメモリとして用いられる場合に管理される。
【００７４】
当業者であれば、ＮＶＭチップがバイト単位で書き込みをサポートするので、メモリの更新中、メモリブロック内のデータが直接書き換えられ得ることで、未使用のメモリブロックに対して消去およびガベージコレクションを予め実行する必要がないことを把握し得る。この場合、実際の適用では、処理速度を改善するために、メモリブロックが解放された場合、リクレームされたメモリブロックが消去されないことがある。しかしながら、機微データの場合には、未消去データの漏洩リスクが生じ得る。従って、本願の本実施形態では、表１および表２に示されるように、アンマッピングコマンドは、ＯＰＣＯＤＥ［０］フィールドをさらに含み得る。ＯＰＣＯＤＥ［０］フィールドは、消去モード情報を示すために用いられる。具体的には、媒体コントローラは、アンマッピングコマンドにおけるＯＰＣＯＤＥ［０］フィールドの消去モード指示情報に基づいて、データブロックが消去される必要があるかどうかを判断し得る。例えば、ＯＰＣＯＤＥ［０］の値が０である場合、これは、メモリブロック内のデータ情報が消去される必要がないことを示す。ＯＰＣＯＤＥ［０］の値が１である場合、これは、メモリブロック内のデータ情報が消去される必要があることを示す。
【００７５】
具体的には、図３に示されるように、Ｓ３０２の後に、メモリブロックリクレーム方法は、以下の段階をさらに備え得る。
【００７６】
Ｓ３０４．消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、媒体コントローラが、予め定められたパターンをメモリブロックに書き込む。例えば、本願の本実施形態において、ＯＰＣＯＤＥ［０］の値が１である場合、媒体コントローラは、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する。メモリブロックがリクレームされた後に、媒体コントローラは、予め定められたパターン（ｐｒｅ−ｄｅｆｉｎｅｄ  ｐａｔｔｅｒｎ）をリクレームされたメモリブロックに書き込んで、メモリブロック内の元のデータを上書きし、メモリブロック内の機微データの漏洩を防止し得る。実際の適用では、予め定められたパターンは、予め設定されたレジスタに格納され得る。予め定められたパターンは、全て０、全て１、または任意の他の予め定められたデータであってよい。このことは、本明細書において限定されない。実際の適用では、Ｓ３０４は、Ｓ３０３の前に実行され得るか、もしくはＳ３０３の後に実行され得るか、またはＳ３０３と同時に実行され得る。このことは、本願において限定されない。
【００７７】
本願の本実施形態によるメモリブロックリクレーム方法において、アンマッピングコマンドは、消去モード指示情報をさらに含む。これにより、メモリブロック内のデータが機微データである場合、媒体コントローラは、予め定められたパターンを用いることにより機微データを上書きすることにより機微データを保護してＮＶＤＩＭＭのセキュリティを改善するよう命令され得る
【００７８】
さらに、実際の適用では、複数のプロセッサまたは複数のプロセッサコアが同じメモリブロックにアクセスするケースがあり得る。この場合、メモリブロックがリクレームされた後に、別のプロセッサがメモリブロックにアクセスするケースがあり得る。以下では、メモリコントローラと媒体コントローラとの間の、メモリブロックがリクレームされた後のデータ読み出し処理を詳細に説明する。図４は、本願の実施形態によるデータ読み出し方法のフローチャートである。図４に示されるように、当該方法は、以下の段階を備え得る。
【００７９】
Ｓ４０２．メモリコントローラが、プロセッサにより送信されるメモリアクセス要求を受信する。メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む。本願の本実施形態において、読み出し要求におけるメモリ論理アドレス情報は、前述の実施形態において説明された、トリムコマンドにおけるメモリ論理アドレス情報と同じである。
【００８０】
Ｓ４０４．メモリコントローラが読み出しコマンドを媒体コントローラへ送信する。具体的には、メモリコントローラは、受信したメモリアクセス要求に基づいて、読み出しコマンドを媒体コントローラへ送信する。読み出しコマンドは、メモリブロック内のデータを読み出すために用いられ、メモリアクセス要求は、アクセス対象メモリブロックのメモリ論理アドレスを保持する。
【００８１】
Ｓ４０６．媒体コントローラが、対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断する。媒体コントローラは、読み出しコマンドを受信した後に、読み出しコマンドにおけるメモリ論理アドレスに対応するメモリ物理アドレスについて問い合わせる。読み出しコマンドにおけるメモリ論理アドレス情報はトリムコマンドにおけるメモリ論理アドレス情報と同じなので、媒体コントローラは、トリム命令に基づいて、メモリ論理アドレスに対応するメモリブロックをリクレームする。従って、媒体コントローラは、対応するメモリ物理アドレスをメモリ論理アドレス情報に基づいて発見できない。
【００８２】
Ｓ４０８．媒体コントローラがエラー応答情報をメモリコントローラへ送信する。エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる。上述のように、媒体コントローラは、対応するメモリ物理アドレスをメモリ論理アドレス情報に基づいて発見できないので、対応する物理アドレスから対応するデータを取得できず、データをメモリコントローラへ戻すことができない。従って、この段階において、媒体コントローラは、エラー応答情報をメモリコントローラへ送信して、読み出しコマンドの実行が失敗していることをメモリコントローラに通知し得る。
【００８３】
Ｓ４１０．メモリコントローラが、エラー応答情報に基づいて、読み出し失敗情報をプロセッサへ送信する。例えば、メモリコントローラは、媒体コントローラにより送信されるエラー応答情報を受信した後に、さらに、エラー応答情報に基づいて、読み出し失敗情報をプロセッサへ送信し得る。読み出し失敗情報は、読み出しコマンドの実行が失敗していることをプロセッサに通知するために用いられる。
【００８４】
任意選択で、メモリコントローラは、エラー応答情報を受信した場合、エラー応答情報内で保持されるエラータイプ指示情報に基づいて、エラータイプを決定する必要がある。具体的には、メモリコントローラは、エラータイプ指示情報と失敗タイプとの間の予め設定されたマッピング関係に基づいて、受信したエラー応答情報におけるエラータイプを決定し得る。エラータイプ指示情報と失敗タイプとの間の予め設定されたマッピング関係は、モードレジスタに格納され得る。
【００８５】
任意選択で、本願の本実施形態において、エラー応答情報は、エラータイプ指示情報およびエラー指示情報（Ｐｏｉｓｏｎ）を含む。エラー指示情報は、読み出しコマンドの実行が失敗していることを示すために用いられ、エラータイプ指示情報は、失敗タイプを示すために用いられる。失敗タイプは、エラーデータと、訂正不可能なチェックコードエラーと、媒体エラーと、メモリチャネルエラーとを含む。
【００８６】
例えば、エラー応答情報は、ポイズンビットを含む。ポイズンビットの値が０である場合、これは、読み出しコマンドが正常に実行されていることを示す。ポイズンビットの値が１である場合、これは、読み出しコマンドの実行が失敗していることを示す。エラー応答情報は、読み出しコマンド実行失敗のタイプを示すために用いられるエラータイプ指示情報をさらに含む。例えば、メモリコントローラは、エラー応答情報内のポイズンビットの値が１であることに基づいて、読み出しコマンドの実行が失敗している、と判断し、エラータイプ指示情報に基づいて、読み出しコマンド実行失敗のタイプはメモリブロックに対応するメモリ物理アドレスではない、と判断し得る。例えば、エラータイプ指示情報の異なる値が、異なるエラータイプを表し得る。エラータイプはさらに、エラーデータ、訂正不可能なチェックコードエラー、媒体エラー、メモリチャネルエラー等であってよい。
【００８７】
１つのケースにおいて、ＤＤＲ４インタフェースが媒体コントローラとメモリコントローラとの間で用いられる場合、エラー応答情報の可能なフォーマットが以下の表３に示される。
【表３】
2021501941.tif 000005
【００８８】
ＤＱ０からＤＱ６３とＣＢ０からＣＢ７とは全て、データラインであり、データを伝送するために用いられる。ＵＩ０からＵＩ７は、クロックラインであり、データ伝送中に用いられるクロックビートを示す。例えば、ＵＩ０は、第１のクロックビートであると同時に立ち上がりクロック端であり、ＵＩ１は、第２のクロックビートであると同時に立ち下がりクロック端である。ＤＤＲ４において、少なくとも４つのクロックサイクルが、エラー応答情報を送信する必要がある。表３に示されるように、本願の本実施形態において示されるエラー応答情報において、ＲＩＤ［７：０］フィールドは、読み出しコマンドの識別子ＩＤを示すために用いられる。エラー指示情報は、読み出しコマンドが不正確であるかどうかを示すために用いられる。エラータイプ指示情報フィールドは、エラータイプを示すために用いられる。ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ、ＥＣＣ）フィールドは、伝送されるデータの訂正情報を示すために用いられる。ＲＦＵフィールドは、予約フィールドである。
【００８９】
別のケースにおいて、ＤＤＲ５インタフェースが媒体コントローラとメモリコントローラとの間で用いられる場合、エラー応答情報の可能なフォーマットが以下の表４に示される。
【表４】
2021501941.tif 000006
【００９０】
表３に示されるエラー応答情報とは異なり、ＤＤＲ５では、データラインは比較的少数のビットを含み、ＤＱは３２ビットである。この場合、同じ数のビットを有するエラー応答情報を伝送するためにＤＤＲ５において必要なクロックビートの数は、ＤＤＲ４において必要なクロックビートの数よりも多い。
【００９１】
メモリコントローラによりプロセッサへ送信される読み出し失敗情報は、エラータイプ指示情報およびエラー指示情報を含み得る。任意選択で、読み出し失敗情報は、代替的に、エラー指示情報であってよく、エラー指示情報は、読み出しの失敗を示すためにのみ用いられる。
【００９２】
本願の実施形態の別の態様は、メモリをさらに提供する。例えば、メモリは、図１におけるＮＶＤＩＭＭであってよい。メモリの構造が、図１におけるＮＶＤＩＭＭに示され得る。メモリは、媒体コントローラ１１０と、媒体コントローラ１１０に接続された不揮発性メモリ（例えば、図１におけるＮＶＭ１１２）とを含む。媒体コントローラ１１０は、ＮＶＤＩＭＭ−Ｐプロトコルを用いることによりプロセッサのメモリコントローラ１０６と通信し、不揮発性メモリは、複数のメモリブロックを含む。媒体コントローラ１１０は、例えば、図２から図４におけるメモリブロックリクレーム方法を実行し得る。
具体的には、媒体コントローラ１１０は、
メモリコントローラ１０６により送信されるアンマッピングコマンドを受信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
【００９３】
任意選択で、媒体コントローラ１１０はさらに、
メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加することと
を行うように構成される。
【００９４】
任意選択で、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００９５】
任意選択で、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラ１１０はさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
【００９６】
任意選択で、媒体コントローラ１１０はさらに、
メモリコントローラ１０６により送信される読み出しコマンドを受信することであって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラ１０６へ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
【００９７】
本願の実施形態の別の態様が、コンピュータシステムをさらに提供する。コンピュータシステムの構造が図１に示され、コンピュータシステムは、プロセッサ１０２と、メモリコントローラ１０６と、媒体コントローラ１１０と、媒体コントローラ１１０に接続された不揮発性メモリ（例えば、図１におけるＮＶＭ１１２）とを備える。
メモリコントローラ１０６は、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより媒体コントローラ１１０と通信し、不揮発性メモリは、複数のメモリブロックを含み、メモリコントローラ１０６は、
プロセッサ１０２により送信されるトリム命令を受信することであって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
アンマッピングコマンドを媒体コントローラ１１０へ送信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラ１１０に命令するために用いられる、送信することと
を行うように構成される。
【００９８】
媒体コントローラ１１０は、
メモリコントローラ１０６により送信されるアンマッピングコマンドを受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
【００９９】
任意選択で、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【０１００】
任意選択で、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラ１１０はさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込むように構成される。
【０１０１】
任意選択で、メモリコントローラ１０６はさらに、
プロセッサにより送信されるメモリアクセス要求を受信することであって、メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む、受信すること
を行うように構成される。
【０１０２】
メモリコントローラ１０６はさらに、メモリアクセス要求に基づいて読み出しコマンドを媒体コントローラ１１０へ送信することであって、読み出しコマンドは、メモリ論理アドレス情報を保持する、送信することを行うように構成される。
【０１０３】
媒体コントローラ１１０はさらに、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラ１０６へ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
【０１０４】
メモリコントローラ１０６はさらに、エラー応答情報に基づいて読み出し失敗情報をプロセッサへ送信するように構成される。
【０１０５】
本願において提供される実施形態は例に過ぎないことに留意すべきである。当業者であれば、説明の便宜および簡潔性のために、前述の実施形態において、実施形態は、異なる態様を強調していること、および、ある実施形態において詳細に説明されない部分については、別の実施形態の関連する説明を参照すべきことを明確に把握し得る。本願の実施形態と、特許請求の範囲と、添付図面において開示された特徴とは、独立して存在しても、組み合わせで存在してもよい。本願の実施形態においてハードウェアの形態で説明された特徴は、ソフトウェアにより実行されてよく、その逆も同様である。このことは、本明細書において限定されない。
【０１０６】
当業者であれば、本明細書において開示された実施形態で説明された例との組み合わせで、ユニットおよびアルゴリズムの段階が、電子的ハードウェアまたはコンピュータソフトウェアと電子的ハードウェアとの組み合わせにより実装され得ることを認識し得る。機能がハードウェアにより実行されるか、またはソフトウェアにより実行されるかは、技術的解決手段の具体的な応用および設計上の制約に依存する。当業者は、異なる方法を用いて、説明された機能を特定の用途ごとに実装し得るが、当該実装が本願の範囲を超えるとみなされるべきではない。
【０１０７】
前述の実施形態の全部または一部が、ソフトウェア、ハードウェア、ファームウェアまたはこれらの任意の組み合わせを用いて実装されてよい。実施形態を実装するためにソフトウェアプログラムが用いられる場合、実施形態の全部または一部が、コンピュータプログラム製品の形態で実装され得る。コンピュータプログラム製品は、１または複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータ上でロードおよび実行された場合、本願の実施形態による手順または機能の全部または一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワークまたは別のプログラム可能な装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されても、コンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ伝送されてもよい。例えば、コンピュータ命令は、あるウェブサイト、コンピュータ、サーバまたはデータセンタから、別のウェブサイト、コンピュータサーバまたはデータセンタへ、有線（例えば、同軸ケーブル、光ファイバまたはデジタル加入者線（ＤＳＬ））方式または無線（例えば、赤外線、電波またはマイクロ波）方式で伝送されてよい。コンピュータ可読記憶媒体は、コンピュータがアクセス可能な任意の使用可能な媒体であっても、１または複数の使用可能な媒体を統合したサーバまたはデータセンタなどのデータ記憶デバイスであってもよい。使用可能な媒体は、磁気媒体（例えば、フロッピー（登録商標）ディスク、ハードディスクまたは磁気テープ）、光媒体（例えば、ＤＶＤ）または半導体媒体（例えば、ソリッドステートディスク（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ  （ＳＳＤ））など、プログラムコードを格納できる様々な非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）機械可読媒体であってよい。
【０１０８】
本願において提供される実施形態は例に過ぎないことに留意すべきである。当業者であれば、説明の便宜および簡潔性のために、前述の実施形態において、実施形態は、異なる態様を強調していること、および、ある実施形態において詳細に説明されない部分については、別の実施形態の関連する説明を参照すべきことを明確に把握し得る。本願の実施形態と、特許請求の範囲と、添付図面において開示された特徴とは、独立して存在しても、組み合わせで存在してもよい。本願の実施形態においてハードウェアの形態で説明された特徴は、ソフトウェアにより実行されてよく、その逆も同様である。このことは、本明細書において限定されない。
【図１】
2021501941.tif 000007
【図２】
2021501941.tif 000008
【図３】
2021501941.tif 000009
【図４】
2021501941.tif 000010
【手続補正書】
【提出日】令和2年6月8日(2020.6.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリブロックリクレーム方法であって、前記メモリブロックリクレーム方法は、メモリコントローラと、媒体コントローラと、前記媒体コントローラに接続された不揮発性メモリとを備えるコンピュータシステムに適用され、前記メモリブロックリクレーム方法は、
前記媒体コントローラが、前記メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、前記メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより前記媒体コントローラと通信し、前記アンマッピングコマンドは、前記不揮発性メモリ内の複数のメモリブロックのうちの１または複数のリクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
前記媒体コントローラが、前記メモリ論理アドレス情報に基づいて前記１または複数のリクレーム対象メモリブロックをリクレームする段階であって、リクレームされた前記１または複数のリクレーム対象メモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備えるメモリブロックリクレーム方法。
【請求項２】
前記媒体コントローラが、前記メモリ論理アドレス情報に基づいて前記１または複数のリクレーム対象メモリブロックをリクレームする前記段階は、
前記媒体コントローラが、前記メモリ論理アドレス情報に基づいて、メモリ論理アドレスと前記１または複数のリクレーム対象メモリブロックのうちの各々の対応するメモリ物理アドレスとの間のマッピング関係を削除する段階と、
前記媒体コントローラが、前記１または複数のリクレーム対象メモリブロックの前記メモリ物理アドレスをメモリアイドルリストに追加する段階と
を有する、
請求項１に記載のメモリブロックリクレーム方法。
【請求項３】
前記メモリ論理アドレス情報は、前記１または複数のリクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記１または複数のリクレーム対象メモリブロックの第１のアドレスを示すために用いられ、前記長さ情報は、前記１または複数のリクレーム対象メモリブロックの数を示すために用いられる、請求項１または２に記載のメモリブロックリクレーム方法。
【請求項４】
前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記メモリブロックリクレーム方法は、
前記消去モード指示情報が前記１または複数のリクレーム対象メモリブロック内のデータを消去するよう命令した場合、前記媒体コントローラが、予め定められたパターンを前記１または複数のリクレーム対象メモリブロックに書き込む段階
をさらに備える、請求項１から３のいずれか一項に記載のメモリブロックリクレーム方法。
【請求項５】
前記メモリブロックリクレーム方法は、
前記媒体コントローラが、前記メモリコントローラにより送信される読み出しコマンドを受信する段階であって、前記読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信する段階と、
前記媒体コントローラが、対応するメモリ物理アドレスが前記読み出し対象データの前記メモリ論理アドレス情報に基づいて見つからない、と判断する段階と、
前記媒体コントローラがエラー応答情報を前記メモリコントローラへ送信する段階であって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示す、送信する段階と
をさらに備える、請求項１から４のいずれか一項に記載のメモリブロックリクレーム方法。
【請求項６】
メモリブロックリクレーム方法であって、前記メモリブロックリクレーム方法は、プロセッサと、メモリコントローラと、媒体コントローラと、前記媒体コントローラに接続された不揮発性メモリとを備えるコンピュータシステムに適用され、前記メモリブロックリクレーム方法は、
前記メモリコントローラが、前記プロセッサにより送信されるトリム命令を受信する段階であって、前記トリム命令は、前記不揮発性メモリの複数のメモリブロックのうちの１または複数のリクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
前記メモリコントローラが、アンマッピングコマンドを前記媒体コントローラへ送信する段階であって、前記メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより前記媒体コントローラと通信し、前記アンマッピングコマンドは、前記１または複数のリクレーム対象メモリブロックの前記メモリ論理アドレス情報を含み、前記アンマッピングコマンドは、前記１または複数のリクレーム対象メモリブロックをリクレームするよう前記媒体コントローラに命令し、リクレームされた前記１または複数のリクレーム対象メモリブロックは、利用可能なメモリブロックである、送信する段階と
を備えるメモリブロックリクレーム方法。
【請求項７】
前記メモリ論理アドレス情報は、前記１または複数のリクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記１または複数のリクレーム対象メモリブロックの第１のアドレスを示すために用いられ、前記長さ情報は、前記１または複数のリクレーム対象メモリブロックの数を示すために用いられる、請求項６に記載のメモリブロックリクレーム方法。
【請求項８】
前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記消去モード指示情報が前記１または複数のリクレーム対象メモリブロック内のデータを消去するよう命令した場合、前記アンマッピングコマンドはさらに、予め定められたパターンを前記１または複数のリクレーム対象メモリブロックに書き込むよう前記媒体コントローラに命令するために用いられる、請求項６または７に記載のメモリブロックリクレーム方法。
【請求項９】
前記メモリブロックリクレーム方法は、
前記メモリコントローラが、読み出しコマンドを前記媒体コントローラへ送信する段階であって、前記読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、送信する段階と、
対応するメモリ物理アドレスが前記読み出し対象データの前記メモリ論理アドレス情報に基づいて見つからない場合、前記メモリコントローラが、前記媒体コントローラにより送信されるエラー応答情報を受信する段階であって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示すために用いられる、受信する段階と
をさらに備える、請求項６から８のいずれか一項に記載のメモリブロックリクレーム方法。
【請求項１０】
不揮発性メモリと、前記不揮発性メモリに接続された媒体コントローラとを備えるメモリであって、前記媒体コントローラは、
メモリコントローラにより送信されるアンマッピングコマンドを受信することであって、前記媒体コントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより前記メモリコントローラと通信し、前記アンマッピングコマンドは、前記不揮発性メモリ内の１または複数のリクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
前記メモリ論理アドレス情報に基づいて前記１または複数のリクレーム対象メモリブロックをリクレームすることであって、リクレームされた前記１または複数のリクレーム対象メモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される、
メモリ。
【請求項１１】
前記媒体コントローラはさらに、
前記メモリ論理アドレス情報に基づいて、メモリ論理アドレスと前記１または複数のリクレーム対象メモリブロックのうちの各々の対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
前記１または複数のリクレーム対象メモリブロックの前記メモリ物理アドレスをメモリアイドルリストに追加すること
を行うように構成される、
請求項１０に記載のメモリ。
【請求項１２】
前記メモリ論理アドレス情報は、前記１または複数のリクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記１または複数のリクレーム対象メモリブロックの第１のアドレスを示すために用いられ、前記長さ情報は、前記１または複数のリクレーム対象メモリブロックの数を示す、請求項１０または１１に記載のメモリ。
【請求項１３】
前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記媒体コントローラはさらに、
前記消去モード指示情報が前記１または複数のリクレーム対象メモリブロック内のデータを消去するよう命令した場合、予め定められたパターンを前記１または複数のリクレーム対象メモリブロックに書き込むこと
を行うように構成される、
請求項１０から１２のいずれか一項に記載のメモリ。
【請求項１４】
前記媒体コントローラはさらに、
前記メモリコントローラにより送信される読み出しコマンドを受信することであって、前記読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスが前記読み出し対象データの前記メモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報を前記メモリコントローラへ送信することであって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示す、送信することと
を行うように構成される、
請求項１０から１３のいずれか一項に記載のメモリ。
【請求項１５】
１または複数のリクレーム対象メモリブロックのメモリ論理アドレス情報を含むトリム命令を送信するように構成されたプロセッサと、
前記プロセッサに接続されたメモリコントローラであって、
前記トリム命令を受信することと、
媒体コントローラに接続された不揮発性メモリ内の前記１または複数のリクレーム対象メモリブロックをリクレームするよう前記媒体コントローラに命令するためのアンマッピングコマンドを、前記メモリコントローラに接続された前記媒体コントローラへ送信することであって、前記媒体コントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより前記メモリコントローラと通信し、前記アンマッピングコマンドは、前記１または複数のリクレーム対象メモリブロックの前記メモリ論理アドレス情報を含む、送信することと
を行うように構成される、メモリコントローラと
を備え、
前記媒体コントローラは、
前記メモリコントローラにより送信される前記アンマッピングコマンドを受信することと、
前記メモリ論理アドレス情報に基づいて前記１または複数のリクレーム対象メモリブロックをリクレームすることであって、リクレームされた前記１または複数のリクレーム対象メモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される、
コンピュータシステム。
【請求項１６】
前記メモリ論理アドレス情報は、前記１または複数のリクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記１または複数のリクレーム対象メモリブロックの第１のアドレスを示すために用いられ、前記長さ情報は、前記１または複数のリクレーム対象メモリブロックの数を示すために用いられる、請求項１５に記載のコンピュータシステム。
【請求項１７】
前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記媒体コントローラはさらに、
前記消去モード指示情報が前記１または複数のリクレーム対象メモリブロック内のデータを消去するよう命令した場合、予め定められたパターンを前記１または複数のリクレーム対象メモリブロックに書き込むこと
を行うように構成される、
請求項１５または１６に記載のコンピュータシステム。
【請求項１８】
前記メモリコントローラはさらに、
前記プロセッサにより送信されるメモリアクセス要求を受信することであって、前記メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む、受信することと、
前記メモリアクセス要求に基づいて読み出しコマンドを前記媒体コントローラへ送信することであって、前記読み出しコマンドは、前記読み出し対象データの前記メモリ論理アドレス情報を保持する、送信することと
を行うように構成され、
前記媒体コントローラはさらに、
対応するメモリ物理アドレスが前記読み出し対象データの前記メモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報を前記メモリコントローラへ送信することであって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示す、送信することと
を行うように構成され、
前記メモリコントローラはさらに、前記エラー応答情報に基づいて読み出し失敗情報を前記プロセッサへ送信することを行うように構成される、
請求項１５から１７のいずれか一項に記載のコンピュータシステム。
【請求項１９】
前記リクレームするステップにおいて、前記媒体コントローラは、
前記メモリ論理アドレス情報に基づいて、メモリ論理アドレスと前記１または複数のリクレーム対象メモリブロックのうちの各々の対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
前記１または複数のリクレーム対象メモリブロックの前記メモリ物理アドレスをメモリアイドルリストに追加すること
を行うように構成される、
請求項１５から１８のいずれか一項に記載のコンピュータシステム。
【請求項２０】
コンピュータに請求項１から９のいずれか一項に記載のメモリブロックリクレーム方法を実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、コンピュータ技術分野、特に、メモリブロックリクレーム方法およびメモリブロックリクレーム装置に関する。
【背景技術】
【０００２】
不揮発性デュアルインラインメモリモジュール（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｄｕａｌ  ｉｎ−ｌｉｎｅ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ、ＮＶＤＩＭＭ）は、コンピュータのランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＡＭ）である。ＮＶＤＩＭＭは、複数の不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ、ＮＶＭ）チップを含み得る。ＮＶＤＩＭＭはさらに、システムの電源が完全にオフになっている場合でも、完全なメモリデータを格納できる。ＮＶＤＩＭＭ上のＮＶＭチップは、具体的には、不揮発性ランダムアクセスメモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＮＶＲＡＭ）であってよいことが理解できる。ＮＶＤＩＭＭ上のＮＶＭは、相変化メモリ（ｐｈａｓｅ  ｃｈａｎｇｅ  ｍｅｍｏｒｙ、ＰＣＭ）、抵抗変化型ランダムアクセスメモリ（ｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＲＡＭ（登録商標））、磁気ランダムアクセスメモリ（ｍａｇｎｅｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＭＲＡＭ）、スピントランスファトルク磁気ランダムアクセスメモリ（ｓｐｉｎ−ｔｒａｎｓｆｅｒ  ｔｏｒｑｕｅ  ＭＲＡＭ、ＳＴＴ  ＭＲＡＭ）等を含み得る。ＮＶＤＩＭＭは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることによりメモリコントローラと通信する。ＮＶＤＩＭＭ−Ｐプロトコルは、ダブルデータレート（ｄｏｕｂｌｅ  ＤＡＴＡ  ｒａｔｅ、ＤＤＲ）プロトコルとの互換性があるバスアクセスプロトコルである。
【０００３】
しかしながら、ダイナミックランダムアクセスメモリ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＤＲＡＭ）と比較すると、ＮＶＭは、疲労抵抗が低く、書き込み回数が制限されている。従って、ＮＶＭチップにおけるいくつかのメモリブロックが最大書き込み回数に達した場合、ＮＶＭチップは利用できなくなり、ＮＶＤＩＭＭ全体の耐用期間に影響が及ぶ。ＮＶＭチップにおける異なるメモリブロックの書き込み回数が不均衡になるのを回避し、ウェアレベリング効果を高め、ＮＶＤＩＭＭの耐用期間を延ばすために、ＮＶＤＩＭＭに対してメモリ管理を実行する必要がある。
【発明の概要】
【０００４】
本願の実施形態は、メモリブロックリクレームの速度を改善してウェアレベリング効果を高めるために、メモリブロックリクレーム方法およびメモリブロックリクレーム装置を提供する。
【０００５】
第１の態様によれば、本願の実施形態は、メモリブロックリクレーム方法を提供する。
方法は、コンピュータシステムに適用され、コンピュータシステムは、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、方法は、
媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階であって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備える。
【０００６】
媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信した後に、アンマッピングコマンドに含まれるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、対応するメモリブロックを解放し、当該メモリブロックをリクレームすることにより、媒体コントローラの媒体管理オペレーション効果を高め、ＮＶＤＩＭＭの記憶性能を改善し、ＮＶＤＩＭＭの耐用期間を延ばす。
【０００７】
可能な実装において、媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階は、
媒体コントローラが、メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する段階と、
媒体コントローラが、メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加する段階と
を有する。
【０００８】
媒体コントローラがメモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を時間内に削除できるので、利用可能なメモリブロックの数を増やすことができ、メモリブロック間のウェアレベリングの効果を高めることができ、ＮＶＤＩＭＭの性能を改善することができ、ＮＶＤＩＭＭの耐用期間を延ばすことができる。このようにして、メモリモジュールは、ＮＶＤＩＭＭがメモリとして用いられる場合に管理される。
【０００９】
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００１０】
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、方法は、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、媒体コントローラが、予め定められたパターンをメモリブロックに書き込む段階
をさらに備える。
【００１１】
この実装において、アンマッピングコマンドは、消去モード指示情報をさらに含む。この場合、メモリブロック内のデータが機微データであるときは、媒体コントローラは、予め定められたパターンを有する機微データを上書きすることにより機微データを保護してＮＶＤＩＭＭのセキュリティを改善するよう命令され得る。
【００１２】
可能な実装において、方法は、
媒体コントローラが、メモリコントローラにより送信される読み出しコマンドを受信する段階であって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断する段階と、
媒体コントローラがエラー応答情報をメモリコントローラへ送信する段階であって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信する段階と、
をさらに備える。
【００１３】
第２の態様によれば、本願の実施形態は、メモリブロックリクレーム方法をさらに提供する。
方法は、コンピュータシステムに適用され、コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、方法は、
メモリコントローラが、プロセッサにより送信されるトリム（ＴＲＩＭ）命令を受信する段階であって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
メモリコントローラが、アンマッピングコマンドを媒体コントローラへ送信する段階と
を備える。
【００１４】
アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラに命令するために用いられ、リクレームされたメモリブロックは、利用可能なメモリブロックである。
【００１５】
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００１６】
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、アンマッピングコマンドはさらに、予め定められたパターンをメモリブロックに書き込むよう媒体コントローラに命令するために用いられる。
【００１７】
可能な実装において、方法は、
メモリコントローラが、読み出しコマンドを媒体コントローラへ送信する段階であって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、送信する段階と、
メモリコントローラが、媒体コントローラにより送信されるエラー応答情報を受信する段階であって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、受信する段階と
をさらに備える。
【００１８】
第３の態様によれば、本願の実施形態は、第１の態様におけるメモリブロックリクレーム方法を実行するように構成されたメモリをさらに提供する。メモリは、第１の態様におけるものと同じ技術的特徴および技術的効果を有する。本願においては、詳細を改めて説明しない。
【００１９】
本願の実施形態の第３の態様は、メモリを提供する。
メモリは、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、媒体コントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることによりプロセッサのメモリコントローラと通信し、不揮発性メモリは、複数のメモリブロックを含み、媒体コントローラは、
メモリコントローラにより送信されるアンマッピングコマンドを受信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
【００２０】
任意的な実装において、媒体コントローラはさらに、
メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加することと
を行うように構成される。
【００２１】
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００２２】
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラはさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
【００２３】
任意的な実装において、媒体コントローラはさらに、
メモリコントローラにより送信される読み出しコマンドを受信することであって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラへ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
【００２４】
第４の態様によれば、本願の実施形態は、コンピュータシステムをさらに提供する。
コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、メモリコントローラは、
プロセッサにより送信されるトリム命令を受信することであって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
アンマッピングコマンドを媒体コントローラへ送信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラに命令するために用いられる、送信することと
を行うように構成される。
【００２５】
媒体コントローラは、
メモリコントローラにより送信されるアンマッピングコマンドを受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
【００２６】
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００２７】
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラはさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
【００２８】
可能な実装において、メモリコントローラはさらに、
プロセッサにより送信されるメモリアクセス要求を受信することであって、メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む、受信すること
を行うように構成される。
【００２９】
メモリコントローラはさらに、メモリアクセス要求に基づいて読み出しコマンドを媒体コントローラへ送信することであって、読み出しコマンドは、メモリ論理アドレス情報を保持する、送信することを行うように構成される。
【００３０】
媒体コントローラはさらに、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラへ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
【００３１】
メモリコントローラはさらに、エラー応答情報に基づいて読み出し失敗情報をプロセッサへ送信するように構成される。
【図面の簡単な説明】
【００３２】
本願の実施形態における技術的解決手段をより明確に説明すべく、実施形態を説明するために必要な添付図面を以下で簡潔に説明する。以下の説明における添付図面が本願のいくつかの実施形態を示しているに過ぎないことは明らかである。
【００３３】
【図１】本願の実施形態によるコンピュータシステムの概略アーキテクチャ図である。
【００３４】
【図２】本願の実施形態１によるメモリブロックリクレーム方法の概略フローチャートである。
【００３５】
【図３】本願の実施形態２によるメモリブロックリクレーム方法のシグナリングフローチャートである。
【００３６】
【図４】本願の実施形態によるデータ読み出し方法のフローチャートである。
【発明を実施するための形態】
【００３７】
当業者が本願における技術的解決手段をより良く理解できるよう、以下では、本願の実施形態における添付図面を参照して、本願の実施形態における技術的解決手段を明確に説明する。説明される実施形態が本願の実施形態のいくつかに過ぎず、全てではないことは明らかである。
【００３８】
図１は、本願の実施形態によるコンピュータシステムの概略アーキテクチャ図である。図１に示されるように、コンピュータシステム１００は少なくとも、プロセッサ１０２、メモリコントローラ１０６およびＮＶＤＩＭＭ１０８を含み得る。通常、メモリコントローラ１０６は、プロセッサ１０２に統合され得る。図１に示される構成要素に加え、コンピュータシステム１００は、通信インタフェースと、外部記憶デバイスとして用いられるディスクなどの別の構成要素とをさらに含み得ることに留意すべきである。このことは、本明細書において限定されない。
【００３９】
プロセッサ（ｐｒｏｃｅｓｓｏｒ）１０２は、コンピュータシステム１００のコンピューティングコア兼制御コア（ｃｏｎｔｒｏｌ  ｃｏｒｅ）である。プロセッサ１０２は、１または複数のプロセッサコア（ｃｏｒｅ）１０４を含み得る。プロセッサ１０２は、非常に大規模な集積回路であってよい。オペレーティングシステムおよび別のソフトウェアプログラムがプロセッサ１０２にインストールされることにより、プロセッサ１０２は、ＮＶＤＩＭＭ１０８、キャッシュおよびディスクにアクセスできる。本願の本実施形態において、プロセッサ１０２におけるコア１０４は、例えば中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）であってよく、または別の特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ−  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ、ＡＳＩＣ）であってよいことが理解できる。
【００４０】
メモリコントローラ（ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ）１０６は、コンピュータシステム１００内のＮＶＤＩＭＭ１０８を制御し、ＮＶＤＩＭＭ１０８からコア１０４へのデータ伝送を管理および計画するように構成されたバス回路コントローラである。データは、メモリコントローラ１０６を用いることにより、ＮＶＤＩＭＭ１０８とコア１０４との間でやり取りされ得る。メモリコントローラ１０６は、別個のチップであってよく、システムバスを用いることによりコア１０４に接続されている。当業者であれば、メモリコントローラ１０６は、代替的に（図１に示されるように）プロセッサ１０２に統合され得るか、またはノースブリッジに組み込まれ得ることを認識し得る。メモリコントローラ１０６の具体的な位置は、本願の本実施形態において限定されない。実際の適用では、メモリコントローラ１０６は、通信インタフェース１０６２および制御回路１０６４を含んでよく、メモリコントローラ１０６は、通信インタフェース１０６２を通じて、プロセッサ１０２およびＮＶＤＩＭＭ１０８と通信し得る。メモリコントローラ１０６は、制御回路１０６４を用いることにより必要なロジックを制御して、データをＮＶＤＩＭＭ１０８に書き込み得るか、または、データをＮＶＤＩＭＭ１０８から読み出し得る。
【００４１】
ＮＶＤＩＭＭ１０８は、コンピュータシステム１００のランダムアクセスメモリ（ＲＡＭ）であり、コンピュータシステム１００のメモリまたは記憶デバイスとして用いられ得る。ＮＶＤＩＭＭ１０８は、媒体コントローラ１１０、少なくとも１つのＮＶＭ１１２および１または複数のキャッシュ１１４を含み得る。媒体コントローラ１１０は、制御能力を有する論理回路を含み得る。ＮＶＭ１１２は、オペレーティングシステムにおいて現在動作中の様々なソフトウェア、入力データおよび出力データ、外部記憶デバイスとやり取りされる情報等を格納するように構成される。ＮＶＭ１１２は、チップの形態で存在し得る。例えば、ＮＶＭ１１２は、相変化メモリ（ｐｈａｓｅ  ｃｈａｎｇｅ  ｍｅｍｏｒｙ、ＰＣＭ）、抵抗変化型ランダムアクセスメモリ（ｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＲＡＭ（登録商標））、磁気ランダムアクセスメモリ（ｍａｇｎｅｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＭＲＡＭ）またはスピントランスファトルク磁気ランダムアクセスメモリ（ｓｐｉｎ−ｔｒａｎｓｆｅｒ  ｔｏｒｑｕｅ  ＭＲＡＭ、ＳＴＴ  ＭＲＡＭ）など、メモリとして用いられ得る不揮発性メモリを含み得る。
【００４２】
メモリコントローラ１０６は、バス１０５を用いることにより、ＮＶＤＩＭＭ１０８に接続されている。メモリコントローラ１０６は、ＮＶＤＩＭＭ−Ｐプロトコルに準拠してＮＶＤＩＭＭ１０８と通信する。ＮＶＤＩＭＭ−Ｐプロトコルは、ダブルデータレート（ｄｏｕｂｌｅ  ＤＡＴＡ  ｒａｔｅ、ＤＤＲ）プロトコルとの互換性がある非同期プロトコルである。媒体コントローラ１１０は、メモリコントローラ１０６のメモリアクセスコマンドに基づいて、ＮＶＭ１１２に格納されたデータにアクセスし得る。メモリコントローラ１０６により送信されるメモリアクセスコマンドは、読み出しコマンドまたは書き込みコマンドであってよいことが理解できる。媒体コントローラ１１０は、メモリコントローラ１０６により送信される読み出しコマンドに基づき、ＮＶＭ１１２からデータを読み出して当該データを読み出しバッファに格納し、当該読み出しバッファから当該データを読み出すようメモリコントローラ１０６に命令するために非同期信号をメモリコントローラ１０６へ送信し得るか、または、媒体コントローラ１１０は、メモリコントローラ１０６により送信される書き込みコマンドに基づき、まず、データを書き込みバッファに格納し、書き込みバッファ内の当該データをＮＶＭ１１２またはキャッシュ１１４に書き込み得る。
【００４３】
本願の本実施形態において、バス１０５は少なくとも、データバスおよびコマンド／アドレスバスを含み得る。データバスは、データおよびメタデータを伝送するように構成される。コマンド／アドレスバスは、読み出しコマンドまたは書き込みコマンドなどのメモリアクセスコマンドを伝送するように構成される。キャッシュ１１４は、媒体コントローラ１１０によりＮＶＭ１１２から読み出されるデータをキャッシュするように構成される。
【００４４】
ＮＶＤＩＭＭの耐用期間を延ばしてＮＶＤＩＭＭの性能を改善するために、媒体コントローラは、例えば、ウェアレベリング（Ｗｅａｒ  Ｌｅｖｅｌｉｎｇ）、不良ブロック管理およびキャッシュとＮＶＭとの間のデータ移行といった異なる媒体管理オペレーションを実行する必要がある。ウェアレベリングは、メモリブロックの消去／書き込みの回数が同じになるのを保証することによりＮＶＤＩＭＭの耐用期間を延ばすために、データがＮＶＤＩＭＭの各メモリブロックへ可能な限り均等に分散されることを意味する。媒体コントローラは、新しいメモリブロックをデータに割り当てる場合、摩耗の回数がより少ないメモリブロックをメモリアイドルリストから優先的に選択する。不良ブロックの管理は、メモリブロックが不良ブロックであると自らが判断した後に、現在の不良ブロック内のデータ用に、メモリアイドルリストから新しいメモリブロックが選択されることを意味する。キャッシュとＮＶＭとの間のデータ移行は、頻繁にアクセスされるデータをキャッシュに格納し、アクセスの頻度が低いデータをＮＶＭへ移行することにより、読み出し要求／書き込み要求の処理速度を改善するというものである。しかしながら、キャッシュにおけるデータがＮＶＭに書き込まれた場合、キャッシュ内のデータ用に、メモリアイドルリストから新しいメモリブロックが選択される必要がある。メモリアイドルリストをタイムリーに更新することが、媒体コントローラの媒体管理オペレーションの管理効果を決定付け、さらに、ＮＶＤＩＭＭの耐用期間および性能に影響を及ぼすことが、前述の分析から認識できる。
【００４５】
前述の媒体管理オペレーションの効率を改善するために、本願の実施形態は、メモリブロックリクレーム方法およびメモリブロックリクレーム装置を提供する。
【００４６】
以下では、特定の実施形態を参照して、本願の実施形態において提供されるメモリブロックリクレーム方法およびメモリブロックリクレーム装置を詳細に説明する。以下の特定の実施形態において、同じまたは同様の概念または処理は、いくつかの実施形態では詳細に説明されないことがある。
【００４７】
本願の実施形態の一態様は、メモリブロックリクレーム方法を提供する。図２は、本願の実施形態１によるメモリブロックリクレーム方法の概略フローチャートである。本実施形態において、媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信し、アンマッピングコマンドに基づいてメモリブロックをリクレームし、メモリブロックを利用可能なメモリブロックへ変換することにより、媒体コントローラの媒体管理オペレーションの管理効果を高め、さらに、ＮＶＤＩＭＭの記憶性能を改善し、ＮＶＤＩＭＭの耐用期間を延ばす。図２に示されるように、本実施形態において提供されるメモリブロックリクレーム方法は、図１に示されるコンピュータシステムに適用される。例えば、メモリブロックリクレーム方法は、図１における媒体コントローラにより実行され得る。コンピュータシステムは、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備える。メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより媒体コントローラと通信する。不揮発性メモリは、複数のメモリブロックを有する。メモリブロックリクレーム方法は、以下の段階を備える。
【００４８】
Ｓ２０１．メモリコントローラが、アンマッピングコマンドを媒体コントローラへ送信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
【００４９】
例えば、媒体コントローラは、メモリコントローラにより送信されるアクセス要求を受信した場合、通常、対応するメモリ物理アドレスをアクセス要求におけるメモリ論理アドレスに割り当て、メモリ論理アドレスとメモリ物理アドレスとの間のマッピング関係を格納する。メモリコントローラがメモリ論理アドレスを読み出したか、または書き込んだ場合、媒体コントローラは、マッピング関係に基づいて、この対応するメモリ物理アドレスに対応するデータを読み出し得るか、または書き込み得る。媒体コントローラは、メモリ物理アドレスをメモリ論理アドレスに割り当てた場合、メモリアイドルリストからメモリブロックを選択する。ＮＶＭチップ内のメモリブロック間のウェアレベリング効果を保証するために、未使用のメモリブロックが利用可能なメモリブロックへ時間内に変換されるのを保証することにより、いくつかのメモリブロックが媒体管理に関与できず、メモリリソースが浪費され、ＮＶＤＩＭＭの耐用期間が短縮されるケースを回避すべきである。前述の目的を達成するために、メモリコントローラは、アンマッピングコマンド（ｕｎｍａｐ  ｃｏｍｍａｎｄ）を媒体コントローラへ送信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を保持する。アンマッピングコマンドは、アンマッピングコマンドに基づいてメモリブロックをリクレームするよう媒体コントローラに命令するために用いられる。媒体コントローラは、アンマッピングコマンドを受信した場合、アンマッピングコマンドにおけるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、リクレーム対象メモリブロックのメモリ物理アドレス情報を決定し得る。
【００５０】
Ｓ２０２．媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする。リクレームされたメモリブロックは、利用可能なメモリブロックである。
【００５１】
例えば、媒体コントローラは、アンマッピングコマンドにおけるメモリ論理アドレス情報に基づいて、指定のメモリブロックをリクレームする。リクレームされたメモリブロックは、利用可能なメモリブロックであり、媒体コントローラは、ウェアレベリングなどの媒体管理を実行する場合、メモリブロックを管理し得る。あるオブジェクトを解放する場合、既存のメモリコントローラは通常、当該オブジェクトに対応するデータにより占有されているメモリブロックのアンマッピングコマンドを媒体コントローラへ送信しない。本実施形態において、アンマッピングコマンドが媒体コントローラへ送信され、指定のメモリブロックがリクレームされることにより、当該メモリブロックが、利用可能なメモリブロックへ変換され、未使用のメモリブロックを、可能な限り速やかに解放できる。これにより、過剰な割り当てによって生じる比較的高いオーバヘッドが回避される。このようにして、未使用のメモリブロックが媒体管理オペレーションにおいて可能な限り早く管理され得ることにより、ＮＶＤＩＭＭの記憶性能が改善し、ＮＶＤＩＭＭの耐用期間が延びる。
【００５２】
本願の実施形態は、メモリブロックリクレーム方法を提供する。
方法は、
媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階であって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備える。媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信した後に、アンマッピングコマンドに含まれるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、対応するメモリブロックを解放し、当該メモリブロックをリクレームすることにより、媒体コントローラの媒体管理オペレーション効果を高め、ＮＶＤＩＭＭの記憶性能を改善し、ＮＶＤＩＭＭの耐用期間を延ばす。
【００５３】
例えば、図２に示される実施形態に基づいて、本願の実施形態はさらに、メモリブロックリクレーム方法を提供する。図３は、本願の実施形態２によるメモリブロックリクレーム方法のシグナリングフローチャートである。本実施形態では、媒体コントローラがアンマッピングコマンドに基づいてメモリブロックをリクレームする特定の処理を詳細に説明する。図３に示されるように、メモリブロックリクレーム方法は、以下の段階を備える。
【００５４】
Ｓ３０１．媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
【００５５】
例えば、本実施形態におけるＳ３０１は、図２に示される実施形態におけるＳ２０１と同じである。本願においては、詳細を改めて説明しない。
【００５６】
任意選択で、図２および図３に示される実施形態において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００５７】
例えば、媒体コントローラは、メモリブロックをリクレームする場合、アンマッピングコマンドにおけるリクレーム対象メモリブロックの開始アドレスと、リクレーム対象メモリブロックの全長とに基づいて、メモリ物理アドレス内の特定のアドレスに対応するリクレーム対象メモリブロックを決定する。例えば、リクレーム対象メモリブロックが連続するメモリブロック１、２および３を含む場合、開始アドレスは、例えば、メモリブロック１の第１のアドレスであってよく、長さ情報は３であってよい。任意選択で、メモリコントローラおよび媒体コントローラは、メモリブロックの粒度と一致する。任意選択で、アンマッピングコマンドは、メモリブロックの粒度サイズ情報をさらに含み得る。
【００５８】
任意選択で、前述の実施形態に基づいて、Ｓ３０１の前に、メモリブロックリクレーム方法は、以下の段階をさらに備える。
【００５９】
Ｓ３００．メモリコントローラが、プロセッサにより送信されるトリム命令を受信する。トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
【００６０】
例えば、プロセッサ（例えば、図１における任意のプロセッサコア１０４）は、トリム命令（ＴＲＩＭ  ｉｎｓｔｒｕｃｔｉｏｎ）をメモリコントローラへ送信し、メモリコントローラは、トリム命令を受信した後に、アンマッピングコマンドを媒体コントローラへ送信する。トリム命令は、どのメモリブロックがもはや用いられておらず消去され得るかをメモリに通知するためにオペレーティングシステムにより用いられるコマンドである。
【００６１】
具体的には、プロセッサにおいて動作しているオペレーティングシステムがあるオブジェクトを削除した場合、媒体コントローラは、当該オブジェクトが削除されたことを認識できず、論理アドレスと物理アドレスとの間のマッピング関係を依然として格納する。従って、本願の本実施形態において、オブジェクトファイルが削除された場合、プロセッサは、トリム命令をメモリコントローラへ送信し得る。トリム命令は、メモリブロックのアドレスを保持し、トリム命令は、メモリブロックのデータに対応するオブジェクトが削除されたことをメモリコントローラに通知するために用いられ、メモリブロックのデータは、削除されてよく、メモリブロックは、リクレームされてよい。
【００６２】
実際の適用では、あるオブジェクトと当該オブジェクトに対応するデータとが解放されているケース、予め設定されたサイズを超えるサイズのメモリブロックが解放されているケース、アプリケーションが終了しているケース、メモリの読み出し要求／書き込み要求の回数が予め設定された回数未満であるケース、または、予め設定されたオペレーティングシステムメモリ管理アルゴリズムに基づいて、トリム命令が送信される必要がある、とプロセッサが判断しているケースのいずれか１つをプロセッサが検出した場合、プロセッサは、トリム命令をメモリコントローラへ送信する。
【００６３】
例えば、プロセッサは、あるオブジェクトが解放されていることを検出した場合、当該オブジェクトにより占有されているメモリブロックをリクレームするために、トリム命令をメモリコントローラへ送信する。任意選択で、プロセッサコアとメモリコントローラとの間のシグナリングの相互作用を低減するために、プロセッサは、予め設定されたサイズを超えるサイズのメモリブロックが解放されていることを検出した場合、メモリブロックをリクレームするために、トリム命令をメモリコントローラへ送信する。任意選択で、プロセッサは、あるアプリケーションが終了していることを検出した場合、当該アプリケーションにより占有されているメモリブロックをリクレームするために、トリム命令をメモリコントローラへ送信する。任意選択で、比較的少数の読み出し要求／書き込み要求があることを検出した場合、すなわち、メモリがアイドルである場合、プロセッサは、トリム命令をメモリコントローラへ送信することにより、メモリがビジーである場合にメモリの解放を回避し、これにより、メモリの読み出し性能／書き込み性能を改善する。任意選択で、プロセッサは、予め設定されたオペレーティングシステムメモリ管理アルゴリズムに基づいて、トリム命令が送信される必要がある、と判断した場合、代替的に、トリム命令をメモリコントローラへ送信し得る。
【００６４】
実際の適用では、第４世代ダブルデータレート（ｆｏｕｒｔｈ−ｇｅｎｅｒａｔｉｏｎ  ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ、ＤＤＲ４）同期インタフェースまたは第５世代ダブルデータレート（ｆｉｆｔｈ−ｇｅｎｅｒａｔｉｏｎ  ｄｏｕｂｌｅ  ＤＡＴＡ  ｒａｔｅ、ＤＤＲ５）同期インタフェースが、媒体コントローラとメモリコントローラとの間で用いられ得る。異なるＤＤＲインタフェースが用いられる場合、メモリコントローラにより媒体コントローラへ送信されるアンマッピングコマンドのフォーマットが異なる。
【００６５】
第１の可能な実装において、ＤＤＲ４インタフェースは、媒体コントローラとメモリコントローラとの間で用いられ、アンマッピングコマンド（ｕｎｍａｐ  ｃｏｍｍａｎｄ）のフォーマットが以下の表１に示される。
【表１】
2021501941.tif 000011
【００６６】
例えば、アンマッピングコマンドの長さが制限されていることに起因して、リクレーム対象メモリブロックの完全なアドレス情報を保持できない。従って、メモリコントローラは、アンマッピングコマンドを送信した後に、通常、さらにアドレス拡張コマンドを送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、連続で送信される。具体的には、メモリコントローラは、アンマッピングコマンドとアドレス拡張コマンドとを交互に送信する。例えば、メモリコントローラは、第１のアンマッピングコマンドを第１のクロックビートで送信した後に、第１のアドレス拡張コマンドを第２のクロックビートで送信し、次に、第２のアンマッピングコマンドおよび第２のアドレス拡張コマンドを後続のクロックビートで順に送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、２つのクロックビートで送信される。アドレス拡張コマンドのフォーマットも、表１に示される。１つのクロックビートが１つのクロック変更端であり、変更端は、立ち上がり端または立ち下がり端であってよい。
【００６７】
例えば、表１に示されるように、アンマッピングコマンドおよびアドレス拡張コマンドにおいて、Ｈ（ｈｉｇｈ）はバイナリデータ１を表し、Ｌ（ｌｏｗ）はバイナリデータ０を表す。ＣＫＥ０（Ｃｌｏｃｋ  Ｅｎａｂｌｅ）ビットは、クロックイネーブル信号を示すために用いられ、前の（前のサイクルの）ビットは、前のクロックが有効であるかどうかを示すために用いられ、現在の（現在のサイクルの）ビットは、現在のクロックが有効であるかどうかを示すために用いられる。表１に示されるように、前のビットおよび現在のビットの両方がＨである場合、クロックイネーブル信号は有効であり、媒体コントローラは、クロックイネーブル信号が有効であるときは、アンマッピングコマンドを受信する。ＣＳ（Ｃｈｉｐ  Ｓｅｌｅｃｔ）はチップ選択信号である。メモリチャネル上には複数のメモリモジュールが存在し、メモリコントローラは、チップ選択信号を用いることにより、アンマッピングコマンドおよびアドレス拡張コマンドを受信するメモリモジュールを決定し得る。あるメモリモジュールにより受信されたチップ選択信号がＬである場合、これは、アンマッピングコマンドおよびアドレス拡張コマンドを受信するよう当該メモリモジュールが選択されていることを示す。ＡＤＤＲ［３９：２］フィールドは、リクレーム対象メモリブロックの開始アドレスを格納するために用いられる。言い換えると、ＡＤＤＲ［３９：２］は、リクレーム対象メモリブロックの開始アドレス、すなわち、第１のリクレーム対象メモリブロックの開始アドレスである。ＬＥＮＧＴＨ［４：０］は、リクレーム対象メモリブロックの長さ情報を示すために用いられ、具体的には、リクレーム対象メモリブロックの数を示すために用いられ得る。ＬＥＮＧＴＨ［４：０］を例として用いると、ＬＥＮＧＴＨ［４：０］フィールドの最大値は３２である。この場合、１つのアンマッピングコマンドが、メモリブロックをリクレーム３２するよう命令するために用いられ得る。ＯＰＣＯＤＥ［０］フィールドは、消去モード情報を示すために用いられる。
【００６８】
第２の可能な実装において、ＤＤＲ５インタフェースは、媒体コントローラとメモリコントローラとの間で用いられ、アンマッピングコマンドのフォーマットは、以下の表２において示される。
【表２】
2021501941.tif 000012
【００６９】
第１の可能な実装と同様に、アンマッピングコマンドの長さが制限されていることに起因して、アンマッピングコマンドは、リクレーム対象メモリブロックの完全なアドレス情報を保持できない。従って、メモリコントローラは、アンマッピングコマンドを送信した後に、通常、さらにアドレス拡張コマンドを送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、連続で送信される。具体的には、メモリコントローラは、アンマッピングコマンドとアドレス拡張コマンドとを交互に送信する。第１の可能な実装とは異なり、この実装では、アンマッピングコマンドおよびアドレス拡張コマンドの両方が、送信において２つのクロックサイクルを費やす必要があり、各クロックサイクルは、１つのクロック立ち上がり端および１つのクロック立ち下がり端を含む。本実施形態において、メモリコントローラは、第１のクロックサイクルの２つのクロック端でアンマッピングコマンドの第１の部分を送信した後に、第２のクロックサイクルの２つのクロック端でアンマッピングコマンドの第２の部分を送信し、次に、第３のクロックサイクルの２つのクロック端でアドレス拡張コマンドの第１の部分を送信し、次に、第４のクロックサイクルの２つのクロック端でアドレス拡張コマンドの第２の部分を送信する。メモリコントローラは、他のアンマッピングコマンドおよびアドレス拡張コマンドを後続のクロックビートで順に送信する。アドレス拡張コマンドのフォーマットも、表２に示される。
【００７０】
アンマッピングコマンドおよびアドレス拡張コマンドにおいて、Ｈ（ｈｉｇｈ）はバイナリデータ１を表し、Ｌ（ｌｏｗ）はバイナリデータ０を表す。ＣＳ（Ｃｈｉｐ  Ｓｅｌｅｃｔ）はチップ選択信号である。ＣＳが第１のクロックサイクルにおいてＬであることが検出された場合、これは、アンマッピングコマンドまたはアドレス拡張コマンドが始まっていることを示す。第２のクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドについては、ＣＳがＨであることが検出された場合、これは、アンマッピングコマンドの第２の部分またはアドレス拡張コマンドが受信されていることを示す。しかしながら、ＣＳが第２のクロックサイクルにおいてＬであることが依然として検出されている場合、これは、アンマッピングコマンドまたはアドレス拡張コマンドにエラーが発生していることを示す。この場合、これら２つのクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドが破棄され得るか、または、第１のクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドが破棄され得る。ＡＤＤＲ［３９：１］フィールドは、リクレーム対象メモリブロックの開始アドレスを示すために用いられる。言い換えると、ＡＤＤＲ［３９：１］フィールドは、第１のリクレーム対象メモリブロックの開始アドレスを示すために用いられる。ＬＥＮＧＴＨ［６：０］は、リクレーム対象メモリブロックの長さ情報を示すために用いられ、具体的には、リクレーム対象メモリブロックの数を示すために用いられ得る。ＬＥＮＧＴＨ［６：０］を例として用いると、ＬＥＮＧＴＨ［６：０］フィールドの最大値は１２８である。この場合、１つのアンマッピングコマンドが、１２８個のメモリブロックをリクレームするよう命令するために用いられ得る。ＯＰＣＯＤＥ［０］は、消去モード情報を示すために用いられるフィールドである。
【００７１】
Ｓ３０２．媒体コントローラが、メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する。具体的には、媒体コントローラは、アンマッピングコマンドを受信した後に、アンマッピングコマンドにおける第１のメモリ論理アドレス情報に基づいて、第１のメモリ論理アドレスに対応する第１のメモリ物理アドレスを決定し得る。この場合、媒体コントローラが、第１のメモリ論理アドレスと第１のメモリ物理アドレスとの間のマッピング関係を削除し得ることにより、第１のメモリ物理アドレスの対応するメモリ論理アドレスがなくなり、媒体コントローラは、新しいメモリ論理アドレスを第１のメモリ物理アドレスに割り当て得る。第１のメモリ論理アドレスと第１のメモリ物理アドレスとの間のマッピング関係が削除されていない場合、メモリコントローラが第１のメモリ論理アドレスに次回アクセスするときにのみ、媒体コントローラは、第１のメモリ物理アドレスにアクセスできる。しかしながら、これら２回のアクセスの間の間隔は、非常に長くなり得る。これにより、第１のメモリ物理アドレスの消去／書き込みの回数が確実に、ＮＶＭ内の別のメモリブロックの消去／書き込みの回数未満になる。このことは、ＮＶＤＭＭの耐用期間に影響を及ぼし得る。
【００７２】
Ｓ３０３．媒体コントローラがメモリブロックのメモリ物理アドレスをメモリアイドルリストに追加する。本願の本実施形態において、対応するメモリ論理アドレスがないメモリ物理アドレスに対応するメモリブロックが、利用可能なメモリブロックであり、媒体コントローラは、メモリ物理アドレスをメモリアイドルリストに追加する。本願の本実施形態において、メモリアイドルリストに示されるメモリブロックは、利用可能なメモリブロックである。言い換えると、あるメモリブロックが新しいアクセス要求に割り当てられる必要がある場合、媒体コントローラは、メモリアイドルリストに基づいて、当該メモリブロックを割り当て得る。実際の適用では、メモリアイドルリスト内のメモリブロックが、メモリブロックの書き込み回数の昇順で配置され得る。メモリブロックを割り当てる処理において、媒体コントローラは、消去／書き込みの回数が少ないメモリブロックを優先的に割り当て得る。当然ながら、実際の適用では、媒体コントローラは、代替的に、メモリブロックをランダムに割り当て得る。このことは、本明細書において限定されない。本願の本実施形態によるＮＶＤＩＭＭを備えるコンピュータシステムにおいて、メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルに従ってアンマッピングコマンドを媒体コントローラへ送信することで、メモリブロックをリクレームするよう媒体コントローラに命令し得る。媒体コントローラは、アンマッピングコマンドを受信した後に、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係をアンマッピングコマンドにおいて保持されるメモリ論理アドレス情報に基づいて削除し、対応するメモリブロックをリクレームし得る。
【００７３】
メモリコントローラがアンマッピングコマンドを本願の本実施形態による媒体コントローラへ送信するこの方式で、媒体コントローラは、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を時間内に削除でき、これにより、利用可能なメモリブロックの数を増やすことができ、メモリブロック間のウェアレベリング効果を高めることができ、ＮＶＤＩＭＭの性能を改善することができ、ＮＶＤＩＭＭの耐用期間を延ばすことができる。このようにして、メモリモジュールは、ＮＶＤＩＭＭがメモリとして用いられる場合に管理される。
【００７４】
当業者であれば、ＮＶＭチップがバイト単位で書き込みをサポートするので、メモリの更新中、メモリブロック内のデータが直接書き換えられ得ることで、未使用のメモリブロックに対して消去およびガベージコレクションを予め実行する必要がないことを把握し得る。この場合、実際の適用では、処理速度を改善するために、メモリブロックが解放された場合、リクレームされたメモリブロックが消去されないことがある。しかしながら、機微データの場合には、未消去データの漏洩リスクが生じ得る。従って、本願の本実施形態では、表１および表２に示されるように、アンマッピングコマンドは、ＯＰＣＯＤＥ［０］フィールドをさらに含み得る。ＯＰＣＯＤＥ［０］フィールドは、消去モード情報を示すために用いられる。具体的には、媒体コントローラは、アンマッピングコマンドにおけるＯＰＣＯＤＥ［０］フィールドの消去モード指示情報に基づいて、データブロックが消去される必要があるかどうかを判断し得る。例えば、ＯＰＣＯＤＥ［０］の値が０である場合、これは、メモリブロック内のデータ情報が消去される必要がないことを示す。ＯＰＣＯＤＥ［０］の値が１である場合、これは、メモリブロック内のデータ情報が消去される必要があることを示す。
【００７５】
具体的には、図３に示されるように、Ｓ３０２の後に、メモリブロックリクレーム方法は、以下の段階をさらに備え得る。
【００７６】
Ｓ３０４．消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、媒体コントローラが、予め定められたパターンをメモリブロックに書き込む。例えば、本願の本実施形態において、ＯＰＣＯＤＥ［０］の値が１である場合、媒体コントローラは、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する。メモリブロックがリクレームされた後に、媒体コントローラは、予め定められたパターン（ｐｒｅ−ｄｅｆｉｎｅｄ  ｐａｔｔｅｒｎ）をリクレームされたメモリブロックに書き込んで、メモリブロック内の元のデータを上書きし、メモリブロック内の機微データの漏洩を防止し得る。実際の適用では、予め定められたパターンは、予め設定されたレジスタに格納され得る。予め定められたパターンは、全て０、全て１、または任意の他の予め定められたデータであってよい。このことは、本明細書において限定されない。実際の適用では、Ｓ３０４は、Ｓ３０３の前に実行され得るか、もしくはＳ３０３の後に実行され得るか、またはＳ３０３と同時に実行され得る。このことは、本願において限定されない。
【００７７】
本願の本実施形態によるメモリブロックリクレーム方法において、アンマッピングコマンドは、消去モード指示情報をさらに含む。これにより、メモリブロック内のデータが機微データである場合、媒体コントローラは、予め定められたパターンを用いることにより機微データを上書きすることにより機微データを保護してＮＶＤＩＭＭのセキュリティを改善するよう命令され得る
【００７８】
さらに、実際の適用では、複数のプロセッサまたは複数のプロセッサコアが同じメモリブロックにアクセスするケースがあり得る。この場合、メモリブロックがリクレームされた後に、別のプロセッサがメモリブロックにアクセスするケースがあり得る。以下では、メモリコントローラと媒体コントローラとの間の、メモリブロックがリクレームされた後のデータ読み出し処理を詳細に説明する。図４は、本願の実施形態によるデータ読み出し方法のフローチャートである。図４に示されるように、当該方法は、以下の段階を備え得る。
【００７９】
Ｓ４０２．メモリコントローラが、プロセッサにより送信されるメモリアクセス要求を受信する。メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む。本願の本実施形態において、メモリアクセス要求におけるメモリ論理アドレス情報は、前述の実施形態において説明された、トリムコマンドにおけるメモリ論理アドレス情報と同じである。
【００８０】
Ｓ４０４．メモリコントローラが読み出しコマンドを媒体コントローラへ送信する。具体的には、メモリコントローラは、受信したメモリアクセス要求に基づいて、読み出しコマンドを媒体コントローラへ送信する。読み出しコマンドは、メモリブロック内のデータを読み出すために用いられ、メモリアクセス要求は、アクセス対象メモリブロックのメモリ論理アドレスを保持する。
【００８１】
Ｓ４０６．媒体コントローラが、対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断する。媒体コントローラは、読み出しコマンドを受信した後に、読み出しコマンドにおけるメモリ論理アドレスに対応するメモリ物理アドレスについて問い合わせる。読み出しコマンドにおけるメモリ論理アドレス情報はトリムコマンドにおけるメモリ論理アドレス情報と同じなので、媒体コントローラは、トリム命令に基づいて、メモリ論理アドレスに対応するメモリブロックをリクレームする。従って、媒体コントローラは、対応するメモリ物理アドレスをメモリ論理アドレス情報に基づいて発見できない。
【００８２】
Ｓ４０８．媒体コントローラがエラー応答情報をメモリコントローラへ送信する。エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる。上述のように、媒体コントローラは、対応するメモリ物理アドレスをメモリ論理アドレス情報に基づいて発見できないので、対応する物理アドレスから対応するデータを取得できず、データをメモリコントローラへ戻すことができない。従って、この段階において、媒体コントローラは、エラー応答情報をメモリコントローラへ送信して、読み出しコマンドの実行が失敗していることをメモリコントローラに通知し得る。
【００８３】
Ｓ４１０．メモリコントローラが、エラー応答情報に基づいて、読み出し失敗情報をプロセッサへ送信する。例えば、メモリコントローラは、媒体コントローラにより送信されるエラー応答情報を受信した後に、さらに、エラー応答情報に基づいて、読み出し失敗情報をプロセッサへ送信し得る。読み出し失敗情報は、読み出しコマンドの実行が失敗していることをプロセッサに通知するために用いられる。
【００８４】
任意選択で、メモリコントローラは、エラー応答情報を受信した場合、エラー応答情報内で保持されるエラータイプ指示情報に基づいて、エラータイプを決定する必要がある。具体的には、メモリコントローラは、エラータイプ指示情報と失敗タイプとの間の予め設定されたマッピング関係に基づいて、受信したエラー応答情報におけるエラータイプを決定し得る。エラータイプ指示情報と失敗タイプとの間の予め設定されたマッピング関係は、モードレジスタに格納され得る。
【００８５】
任意選択で、本願の本実施形態において、エラー応答情報は、エラータイプ指示情報およびエラー指示情報（例えば、ポイズンビットにより示される情報）を含む。エラー指示情報は、読み出しコマンドの実行が失敗していることを示すために用いられ、エラータイプ指示情報は、失敗タイプを示すために用いられる。失敗タイプは、エラーデータと、訂正不可能なチェックコードエラーと、媒体エラーと、メモリチャネルエラーとを含む。
【００８６】
例えば、エラー応答情報は、ポイズンビットを含む。ポイズンビットの値が０である場合、これは、読み出しコマンドが正常に実行されていることを示す。ポイズンビットの値が１である場合、これは、読み出しコマンドの実行が失敗していることを示す。エラー応答情報は、読み出しコマンド実行失敗のタイプを示すために用いられるエラータイプ指示情報をさらに含む。例えば、メモリコントローラは、エラー応答情報内のポイズンビットの値が１であることに基づいて、読み出しコマンドの実行が失敗している、と判断し、エラータイプ指示情報に基づいて、読み出しコマンド実行失敗のタイプはメモリブロックに対応するメモリ物理アドレスではない、と判断し得る。例えば、エラータイプ指示情報の異なる値が、異なるエラータイプを表し得る。エラータイプはさらに、エラーデータ、訂正不可能なチェックコードエラー、媒体エラー、メモリチャネルエラー等であってよい。
【００８７】
１つのケースにおいて、ＤＤＲ４インタフェースが媒体コントローラとメモリコントローラとの間で用いられる場合、エラー応答情報の可能なフォーマットが以下の表３に示される。
【表３】
2021501941.tif 000013
【００８８】
ＤＱ０からＤＱ６３とＣＢ０からＣＢ７とは全て、データラインであり、データを伝送するために用いられる。ＵＩ０からＵＩ７は、クロックラインであり、データ伝送中に用いられるクロックビートを示す。例えば、ＵＩ０は、第１のクロックビートであると同時に立ち上がりクロック端であり、ＵＩ１は、第２のクロックビートであると同時に立ち下がりクロック端である。ＤＤＲ４において、少なくとも４つのクロックサイクルが、エラー応答情報を送信する必要がある。表３に示されるように、本願の本実施形態において示されるエラー応答情報において、ＲＩＤ［７：０］フィールドは、読み出しコマンドの識別子ＩＤを示すために用いられる。エラー指示情報は、読み出しコマンドが不正確であるかどうかを示すために用いられる。エラータイプ指示情報フィールドは、エラータイプを示すために用いられる。ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ、ＥＣＣ）フィールドは、伝送されるデータの訂正情報を示すために用いられる。ＲＦＵフィールドは、予約フィールドである。
【００８９】
別のケースにおいて、ＤＤＲ５インタフェースが媒体コントローラとメモリコントローラとの間で用いられる場合、エラー応答情報の可能なフォーマットが以下の表４に示される。
【表４】
2021501941.tif 000014
【００９０】
表３に示されるエラー応答情報とは異なり、ＤＤＲ５では、データラインは比較的少数のビットを含み、ＤＱは３２ビットである。この場合、同じ数のビットを有するエラー応答情報を伝送するためにＤＤＲ５において必要なクロックビートの数は、ＤＤＲ４において必要なクロックビートの数よりも多い。
【００９１】
メモリコントローラによりプロセッサへ送信される読み出し失敗情報は、エラータイプ指示情報およびエラー指示情報を含み得る。任意選択で、読み出し失敗情報は、代替的に、エラー指示情報であってよく、エラー指示情報は、読み出しの失敗を示すためにのみ用いられる。
【００９２】
本願の実施形態の別の態様は、メモリをさらに提供する。例えば、メモリは、図１におけるＮＶＤＩＭＭであってよい。メモリの構造が、図１におけるＮＶＤＩＭＭに示され得る。メモリは、媒体コントローラ１１０と、媒体コントローラ１１０に接続された不揮発性メモリ（例えば、図１におけるＮＶＭ１１２）とを含む。媒体コントローラ１１０は、ＮＶＤＩＭＭ−Ｐプロトコルを用いることによりプロセッサのメモリコントローラ１０６と通信し、不揮発性メモリは、複数のメモリブロックを含む。媒体コントローラ１１０は、例えば、図２から図４におけるメモリブロックリクレーム方法を実行し得る。
具体的には、媒体コントローラ１１０は、
メモリコントローラ１０６により送信されるアンマッピングコマンドを受信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
【００９３】
任意選択で、媒体コントローラ１１０はさらに、
メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加することと
を行うように構成される。
【００９４】
任意選択で、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【００９５】
任意選択で、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラ１１０はさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
【００９６】
任意選択で、媒体コントローラ１１０はさらに、
メモリコントローラ１０６により送信される読み出しコマンドを受信することであって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラ１０６へ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
【００９７】
本願の実施形態の別の態様が、コンピュータシステムをさらに提供する。コンピュータシステムの構造が図１に示され、コンピュータシステムは、プロセッサ１０２と、メモリコントローラ１０６と、媒体コントローラ１１０と、媒体コントローラ１１０に接続された不揮発性メモリ（例えば、図１におけるＮＶＭ１１２）とを備える。
メモリコントローラ１０６は、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより媒体コントローラ１１０と通信し、不揮発性メモリは、複数のメモリブロックを含み、メモリコントローラ１０６は、
プロセッサ１０２により送信されるトリム命令を受信することであって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
アンマッピングコマンドを媒体コントローラ１１０へ送信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラ１１０に命令するために用いられる、送信することと
を行うように構成される。
【００９８】
媒体コントローラ１１０は、
メモリコントローラ１０６により送信されるアンマッピングコマンドを受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
【００９９】
任意選択で、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
【０１００】
任意選択で、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラ１１０はさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込むように構成される。
【０１０１】
任意選択で、メモリコントローラ１０６はさらに、
プロセッサにより送信されるメモリアクセス要求を受信することであって、メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む、受信すること
を行うように構成される。
【０１０２】
メモリコントローラ１０６はさらに、メモリアクセス要求に基づいて読み出しコマンドを媒体コントローラ１１０へ送信することであって、読み出しコマンドは、メモリ論理アドレス情報を保持する、送信することを行うように構成される。
【０１０３】
媒体コントローラ１１０はさらに、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラ１０６へ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
【０１０４】
メモリコントローラ１０６はさらに、エラー応答情報に基づいて読み出し失敗情報をプロセッサへ送信するように構成される。
【０１０５】
本願において提供される実施形態は例に過ぎないことに留意すべきである。当業者であれば、説明の便宜および簡潔性のために、前述の実施形態において、実施形態は、異なる態様を強調していること、および、ある実施形態において詳細に説明されない部分については、別の実施形態の関連する説明を参照すべきことを明確に把握し得る。本願の実施形態と、特許請求の範囲と、添付図面において開示された特徴とは、独立して存在しても、組み合わせで存在してもよい。本願の実施形態においてハードウェアの形態で説明された特徴は、ソフトウェアにより実行されてよく、その逆も同様である。このことは、本明細書において限定されない。
【０１０６】
当業者であれば、本明細書において開示された実施形態で説明された例との組み合わせで、ユニットおよびアルゴリズムの段階が、電子的ハードウェアまたはコンピュータソフトウェアと電子的ハードウェアとの組み合わせにより実装され得ることを認識し得る。機能がハードウェアにより実行されるか、またはソフトウェアにより実行されるかは、技術的解決手段の具体的な応用および設計上の制約に依存する。当業者は、異なる方法を用いて、説明された機能を特定の用途ごとに実装し得るが、当該実装が本願の範囲を超えるとみなされるべきではない。
【０１０７】
前述の実施形態の全部または一部が、ソフトウェア、ハードウェア、ファームウェアまたはこれらの任意の組み合わせを用いて実装されてよい。実施形態を実装するためにソフトウェアプログラムが用いられる場合、実施形態の全部または一部が、コンピュータプログラム製品の形態で実装され得る。コンピュータプログラム製品は、１または複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータ上でロードおよび実行された場合、本願の実施形態による手順または機能の全部または一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワークまたは別のプログラム可能な装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されても、コンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ伝送されてもよい。例えば、コンピュータ命令は、あるウェブサイト、コンピュータ、サーバまたはデータセンタから、別のウェブサイト、コンピュータサーバまたはデータセンタへ、有線（例えば、同軸ケーブル、光ファイバまたはデジタル加入者線（ＤＳＬ））方式または無線（例えば、赤外線、電波またはマイクロ波）方式で伝送されてよい。コンピュータ可読記憶媒体は、コンピュータがアクセス可能な任意の使用可能な媒体であっても、１または複数の使用可能な媒体を統合したサーバまたはデータセンタなどのデータ記憶デバイスであってもよい。使用可能な媒体は、磁気媒体（例えば、フロッピー（登録商標）ディスク、ハードディスクまたは磁気テープ）、光媒体（例えば、ＤＶＤ）または半導体媒体（例えば、ソリッドステートディスク（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ  （ＳＳＤ））など、プログラムコードを格納できる様々な非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）機械可読媒体であってよい。
【０１０８】
本願において提供される実施形態は例に過ぎないことに留意すべきである。当業者であれば、説明の便宜および簡潔性のために、前述の実施形態において、実施形態は、異なる態様を強調していること、および、ある実施形態において詳細に説明されない部分については、別の実施形態の関連する説明を参照すべきことを明確に把握し得る。本願の実施形態と、特許請求の範囲と、添付図面において開示された特徴とは、独立して存在しても、組み合わせで存在してもよい。本願の実施形態においてハードウェアの形態で説明された特徴は、ソフトウェアにより実行されてよく、その逆も同様である。このことは、本明細書において限定されない。
［項目１］
メモリブロックリクレーム方法であって、上記方法は、コンピュータシステムに適用され、上記コンピュータシステムは、メモリコントローラと、媒体コントローラと、上記媒体コントローラに接続された不揮発性メモリとを備え、上記メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより上記媒体コントローラと通信し、上記不揮発性メモリは、複数のメモリブロックを有し、上記方法は、
上記媒体コントローラが、上記メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、上記アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
上記媒体コントローラが、上記メモリ論理アドレス情報に基づいて上記メモリブロックをリクレームする段階であって、リクレームされた上記メモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備えるメモリブロックリクレーム方法。
［項目２］
上記媒体コントローラが、上記メモリ論理アドレス情報に基づいて上記メモリブロックをリクレームする上記段階は、
上記媒体コントローラが、上記メモリ論理アドレス情報に基づいて、メモリ論理アドレスと上記メモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する段階と、
上記媒体コントローラが、上記メモリブロックの上記メモリ物理アドレスをメモリアイドルリストに追加する段階と
を有する、
項目１に記載の方法。
［項目３］
上記メモリ論理アドレス情報は、上記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、上記開始アドレスは、上記リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、上記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、項目１または２に記載の方法。
［項目４］
上記アンマッピングコマンドは、消去モード指示情報をさらに含み、上記方法は、
上記消去モード指示情報が上記メモリブロック内のデータ情報を消去するよう命令した場合、上記媒体コントローラが、予め定められたパターンを上記メモリブロックに書き込む段階
をさらに備える、項目１から３のいずれか一項に記載の方法。
［項目５］
上記方法は、
上記媒体コントローラが、上記メモリコントローラにより送信される読み出しコマンドを受信する段階であって、上記読み出しコマンドは、読み出し対象データの上記メモリ論理アドレス情報を含む、受信する段階と、
上記媒体コントローラが、対応するメモリ物理アドレスが上記メモリ論理アドレス情報に基づいて見つからない、と判断する段階と、
上記媒体コントローラがエラー応答情報を上記メモリコントローラへ送信する段階であって、上記エラー応答情報は、上記読み出しコマンドの実行が失敗していることを示すために用いられる、送信する段階と
をさらに備える、項目１から４のいずれか一項に記載の方法。
［項目６］
メモリブロックリクレーム方法であって、上記方法は、コンピュータシステムに適用され、上記コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、上記媒体コントローラに接続された不揮発性メモリとを備え、上記メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより上記媒体コントローラと通信し、上記不揮発性メモリは、複数のメモリブロックを有し、上記方法は、
上記メモリコントローラが、上記プロセッサにより送信されるトリム（ＴＲＩＭ）命令を受信する段階であって、上記トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
上記メモリコントローラが、アンマッピングコマンドを上記媒体コントローラへ送信する段階であって、上記アンマッピングコマンドは、上記リクレーム対象メモリブロックの上記メモリ論理アドレス情報を含み、上記アンマッピングコマンドは、上記メモリブロックをリクレームするよう上記媒体コントローラに命令するために用いられ、リクレームされた上記メモリブロックは、利用可能なメモリブロックである、送信する段階と
を備えるメモリブロックリクレーム方法。
［項目７］
上記メモリ論理アドレス情報は、上記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、上記開始アドレスは、上記リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、上記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、項目６に記載の方法。
［項目８］
上記アンマッピングコマンドは、消去モード指示情報をさらに含み、上記消去モード指示情報が上記メモリブロック内のデータ情報を消去するよう命令した場合、上記アンマッピングコマンドはさらに、予め定められたパターンを上記メモリブロックに書き込むよう上記媒体コントローラに命令するために用いられる、項目６または７に記載の方法。
［項目９］
上記方法は、
上記メモリコントローラが、読み出しコマンドを上記媒体コントローラへ送信する段階であって、上記読み出しコマンドは、読み出し対象データの上記メモリ論理アドレス情報を含む、送信する段階と、
上記メモリコントローラが、上記媒体コントローラにより送信されるエラー応答情報を受信する段階であって、上記エラー応答情報は、上記読み出しコマンドの実行が失敗していることを示すために用いられる、受信する段階と
をさらに備える、項目６から８のいずれか一項に記載の方法。
［項目１０］
媒体コントローラと、上記媒体コントローラに接続された不揮発性メモリとを備えるメモリであって、上記媒体コントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることによりプロセッサのメモリコントローラと通信し、上記不揮発性メモリは、複数のメモリブロックを含み、上記媒体コントローラは、
上記メモリコントローラにより送信されるアンマッピングコマンドを受信することであって、上記アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
上記メモリ論理アドレス情報に基づいて上記メモリブロックをリクレームすることであって、リクレームされた上記メモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される、
メモリ。
［項目１１］
上記媒体コントローラはさらに、
上記メモリ論理アドレス情報に基づいて、メモリ論理アドレスと上記メモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
上記メモリブロックの上記メモリ物理アドレスをメモリアイドルリストに追加すること
を行うように構成される、
項目１０に記載のメモリ。
［項目１２］
上記メモリ論理アドレス情報は、上記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、上記開始アドレスは、上記リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、上記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、項目１０または１１に記載のメモリ。
［項目１３］
上記アンマッピングコマンドは、消去モード指示情報をさらに含み、上記媒体コントローラはさらに、
上記消去モード指示情報が上記メモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンを上記メモリブロックに書き込むこと
を行うように構成される、
項目１０から１２のいずれか一項に記載のメモリ。
［項目１４］
上記媒体コントローラはさらに、
上記メモリコントローラにより送信される読み出しコマンドを受信することであって、上記読み出しコマンドは、読み出し対象データの上記メモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスが上記メモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報を上記メモリコントローラへ送信することであって、上記エラー応答情報は、上記読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される、
項目１０から１３のいずれか一項に記載のメモリ。
［項目１５］
コンピュータシステムであって、上記コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、上記媒体コントローラに接続された不揮発性メモリとを備え、上記メモリコントローラは、ＮＶＤＩＭＭ−Ｐプロトコルを用いることにより上記媒体コントローラと通信し、上記不揮発性メモリは、複数のメモリブロックを有し、上記メモリコントローラは、
上記プロセッサにより送信されるトリム命令を受信することであって、上記トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
アンマッピングコマンドを上記媒体コントローラへ送信することであって、上記アンマッピングコマンドは、上記リクレーム対象メモリブロックの上記メモリ論理アドレス情報を含み、上記アンマッピングコマンドは、上記メモリブロックをリクレームするよう上記媒体コントローラに命令するために用いられる、送信することと
を行うように構成され、
上記媒体コントローラは、
上記メモリコントローラにより送信される上記アンマッピングコマンドを受信することと、
上記メモリ論理アドレス情報に基づいて上記メモリブロックをリクレームすることであって、リクレームされた上記メモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される、
コンピュータシステム。
［項目１６］
上記メモリ論理アドレス情報は、上記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、上記開始アドレスは、上記リクレーム対象メモリブロックの第１のアドレスを示すために用いられ、上記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、項目１５に記載のシステム。
［項目１７］
上記アンマッピングコマンドは、消去モード指示情報をさらに含み、上記媒体コントローラはさらに、
上記消去モード指示情報が上記メモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンを上記メモリブロックに書き込むこと
を行うように構成される、
項目１５または１６に記載のシステム。
［項目１８］
上記メモリコントローラはさらに、
プロセッサにより送信されるメモリアクセス要求を受信することであって、上記メモリアクセス要求は、読み出し対象データの上記メモリ論理アドレス情報を含む、受信することを行うように構成され、
上記メモリコントローラはさらに、上記メモリアクセス要求に基づいて読み出しコマンドを上記媒体コントローラへ送信することであって、上記読み出しコマンドは、上記メモリ論理アドレス情報を保持する、送信することを行うように構成され、
上記媒体コントローラはさらに、
対応するメモリ物理アドレスが上記メモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報を上記メモリコントローラへ送信することであって、上記エラー応答情報は、上記読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成され、
上記メモリコントローラはさらに、上記エラー応答情報に基づいて読み出し失敗情報を上記プロセッサへ送信することを行うように構成される、
項目１５から１７のいずれか一項に記載のシステム。
【国際調査報告】
2021501941.tif 000015
2021501941.tif 000016
2021501941.tif 000017
2021501941.tif 000018