(57)【要約】      （修正有）【課題】メモリシステムのデータ重複排除のための装置を提供する。【解決手段】コンピューティング装置２００は、メモリセルアレイとコントローラ２０８とを備える。コントローラは、書込みコマンドに応答して、書込みコマンドに付随するデータのハッシュ値を生成し、データのハッシュ値がメモリセルアレイ（メモリ装置２１０−１〜２１０−Ｎ）内のハッシュテーブル２１４に存在するかどうかを判定する。ハッシュ値がハッシュテーブル内に存在しないと判定された場合には、書込みコマンドに付随したデータをメモリセルアレイに書き込み、存在すると判定された場合には、書込みコマンドに付随したデータのメモリセルアレイへの書き込みを行わない。【選択図】図２
2015212971.tif 000002
【特許請求の範囲】
【請求項１】
データが書き込まれる領域を備えると共に、当該領域に書き込まれたデータのハッシュ値を少なくとも格納するハッシュテーブルを備えるメモリセルアレイと、
データ重複排除コンポーネントを備えるコントローラであって、ライトコマンドに応答して当該ライトコマンドに付随するライトデータのハッシュ値を生成し、前記データ重複排除コンポーネントを用いて前記ライトデータのハッシュ値を前記メモリセルアレイ内の前記ハッシュテーブルに格納されたハッシュ値と比較することにより前記ライトデータのハッシュ値が前記ハッシュテーブル内に存在するかどうかを判定し、存在しないと判定された場合は前記ライトデータおよび前記ライトデータのハッシュ値を前記メモリセルアレイ内の前記領域および前記ハッシュテーブルにそれぞれ書き込む一方、存在すると判定された場合は前記ライトデータの前記メモリセルアレイ内の前記領域への書き込みを行なわないように構成されるコントローラと、
を備える装置。
【請求項２】
前記メモリセルアレイは複数設けられており、これら複数のメモリセルアレイの各々が、データが書き込まれる領域を備えると共に当該領域に書き込まれたデータのハッシュ値を少なくとも格納するハッシュテーブルを備える請求項１記載の装置。
【請求項３】
前記コントローラに接続されるホストを更に備え、前記コントローラは、前記ホストから受信するコマンドを前記複数のメモリセルアレイのそれぞれに対するライト制御を行うためのコマンドに変換するように構成される請求項２記載の装置。
【請求項４】
前記コントローラは、前記ライトデータのハッシュ値が前記ハッシュテーブル内に存在する場合、前記ライトデータを前記メモリセルアレイ内の前記領域に書き込まなかったにもかかわらず、成功した書込み表示をホストに送信するように構成される請求項１記載の装置。
【請求項５】
前記メモリセルアレイは、フラッシュメモリセルアレイを含む請求項１記載の装置。
【請求項６】
前記複数のメモリセルアレイの各々は、フラッシュメモリセルアレイを含む請求項２記載の装置。
【請求項７】
前記ハッシュテーブルは、前記ハッシュ値と、前記ハッシュ値に関連付けられた論理アドレス及び物理アドレスと、を含む請求項１乃至６のいずれかに記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、半導体メモリ装置および方法に関し、より詳細には、データ重複排除のための装置および方法に関する。
【背景技術】
【０００２】
メモリ装置は、通常、コンピュータまたは他の電子装置において、内部装置、半導体デバイス、集積回路デバイスおよび／または外部の取外し可能装置として提供される。特に、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、相変化ランダムアクセスメモリ（ＰＣＲＡＭ）、およびフラッシュメモリを含め、多数の異なるタイプのメモリがある。
【０００３】
メモリ装置は、高記録密度、高信頼性、および低電力消費を必要としている幅広い範囲の電子用途に対して不揮発性メモリとして利用される。不揮発性メモリは、特に、パーソナルコンピュータ、携帯用のメモリスティック、ソリッドステートドライブ（ＳＳＤ）、携帯情報端末（ＰＤＡ）、デジタルカメラ、携帯電話、携帯音楽プレーヤー（例えば、ＭＰ３プレーヤー）、映画プレーヤー、および他の電子装置で使用され得る。プログラムコードなどのデータ、および基本入出力システム（ＢＩＯＳ）などのシステムデータは、通常、不揮発性メモリ装置に格納される。
【０００４】
なお、従来のメモリ装置の一例としては、記憶媒体としてフラッシュメモリを採用したストレージ装置が特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−８７０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
メモリシステムは、書込みコマンドをホストから、そのメモリシステムの１つまたは複数のメモリ装置に書き込まれるデータに関連している（例えば、それを含む）書込みコマンドで受信できる。書込みコマンドに関連した（例えば、その中の）データは、いくつかの部分（例えば、セクター）を含むことができ、各部分は、それらに関連付けられた一意のアドレスを有する。各論理アドレスは、物理的位置に関連付けられた物理アドレスに割り当てることができ、書込みコマンド内のデータの各部分は、そのデータの各部分に対応する論理アドレスに割り当てられた物理アドレスに関連付けられた特定の物理的位置に書き込むことができる。様々な事例では、データがメモリシステムの１つまたは複数のメモリ装置内で物理的に重複するように、異なる論理アドレスが同一の物理データに対応してしまう場合がある。重複データの書込みは、他の欠点の中でとりわけ、メモリシステムの記憶容量を不必要に減少させる。
【課題を解決するための手段】
【０００７】
上記の課題に鑑み、本発明の装置は、データが書き込まれる領域を備えると共に、当該領域に書き込まれたデータのハッシュ値を少なくとも格納するハッシュテーブルを備えるメモリセルアレイと、データ重複排除コンポーネントを備えるコントローラであって、ライトコマンドに応答して当該ライトコマンドに付随するライトデータのハッシュ値を生成し、前記データ重複排除コンポーネントを用いて前記ライトデータのハッシュ値を前記メモリセルアレイ内の前記ハッシュテーブルに格納されたハッシュ値と比較することにより前記ライトデータのハッシュ値が前記ハッシュテーブル内に存在するかどうかを判定し、存在しないと判定された場合は前記ライトデータおよび前記ライトデータのハッシュ値を前記メモリセルアレイ内の前記領域および前記ハッシュテーブルにそれぞれ書き込む一方、存在すると判定された場合は前記ライトデータの前記メモリセルアレイ内の前記領域への書き込みを行なわないように構成されるコントローラと、を備えることを特徴とする。
【図面の簡単な説明】
【０００８】
【図１】本開示の１つまたは複数の実施形態に従って、少なくとも１つのメモリシステムを含むコンピューティング装置の機能ブロック図である。
【図２】本開示の１つまたは複数の実施形態に従って、少なくとも１つのメモリシステムを含むコンピューティング装置の機能ブロック図である。
【図３】本開示の１つまたは複数の実施形態に従って、いくつかの論理アドレス、ハッシュ値、および物理アドレスを表すハッシュテーブルを示す。
【発明を実施するための形態】
【０００９】
本開示は、データ重複排除のための装置および方法を含む。１つのかかる方法は、書込みコマンドを受信すること、その書込みコマンドに関連した（例えば、そのコマンドからの）データを変換すること、そのデータの変換値が変換テーブルに存在するかどうかを判断すること、および変換値がその変換テーブルに存在しないという判断に応答して、書込みコマンドに関連したデータをメモリ装置に書き込むことを含む。
【００１０】
データ重複排除は、重複データのメモリシステムへの書込みを回避することを含むことができる。以前のアプローチでは、ホストは、メモリシステムに書き込まれるファイルを、メモリシステム上のファイルと比較して、ファイルが既にそのメモリシステム上に存在するかどうかを判断し、メモリシステム上に存在する既存の重複ファイルを削除する。かかるアプローチでは、ファイルがメモリシステム上に存在していた場合、ホストは、そのファイルをそのメモリシステム上に書き込むコマンドを送信せず、従って、そのメモリシステム上でのファイルの重複を回避し得る。１つまたは複数の実施形態では、データ重複排除は、ホストからメモリシステムによって受信されるデータの各セクターを、変換すること（例えば、ハッシュすること）を含むことができる。データの各セクターをハッシュすることは、書込みコマンドで受信されたデータの各セクターに対して、変換値（例えば、ハッシュ値）を生成することを含むことができる。実施形態は、データの各セクターをハッシュすることに限定されず、データは、例えば、ページなどの、任意の増分でハッシュできる。
【００１１】
１つまたは複数の実施形態では、データの各セクターに対して生成されたハッシュ値が、メモリシステムのメモリ装置に現在書き込まれているデータに対する変換テーブル（例えば、ハッシュテーブル）と比較できる。書込みコマンドで受信されたデータのセクターに対して生成されたハッシュ値が、そのハッシュテーブルに現存しない（例えば、存在していない）場合、データのそのセクターがメモリ装置内の記憶位置に書き込まれ、ハッシュテーブルが、そのセクターデータのハッシュ値を含むエントリをハッシュテーブルに書き込むことによって更新される。ハッシュテーブルは、データのそのセクターの論理アドレスおよびデータのそのセクターの物理アドレスを含むエントリをハッシュテーブルに書き込むことによっても更新できる。書込みコマンドで受信されたデータのセクターに対して生成されたハッシュ値がハッシュテーブルに存在しない場合、そのハッシュテーブルは、エントリをハッシュテーブルに書き込むことによって更新され、データのセクターの論理アドレスをセクターデータのハッシュ値に関連付ける。ハッシュテーブルが、ハッシュ値ならびにデータのセクターの論理アドレスおよび物理アドレスで更新されると、成功した書込み表示がホストに送信できる。
【００１２】
本開示の以下の詳細な記述では、その一部を形成する付随する図への参照が行われ、その中で、本開示のいくつかの実施形態がどのように実施され得るかが実例として示されている。これらの実施形態は、当業者が本開示の実施形態を実施できるように十分に詳細に説明されており、また、他の実施形態が利用され得ること、ならびに、プロセス、電気的、および／または構造的変更が、本開示の範囲から逸脱することなく行われ得ることが理解されよう。
【００１３】
本明細書では、「いくつかの（ａ  ｎｕｍｂｅｒ  ｏｆ）」何かは、１つまたは複数のかかる物を指し得る。例えば、いくつかのメモリ装置は、１つまたは複数のメモリ装置を指し得る。追加として、本明細書で使用される指示子“Ｎ”および“Ｍ”は、特に、図中の参照番号に関して、そのように指定されたいくつかの特定の特徴が、本開示のいくつかの実施形態に含まれ得ることを示す。
【００１４】
本明細書では、図は、最初の数字または複数の数字が図面番号に対応し、残りの数字がその図内の要素またはコンポーネントを識別する、番号付け規約に従う。異なる図の間の同様の要素またはコンポーネントは、同様の数字に使用によって識別され得る。例えば、１００は、図１内の要素「００」を参照し得、また、同様の要素は、図２内で２００として参照され得る。理解されるように、本明細書では、様々な実施形態で示される要素は、本開示のいくつかの追加の実施形態を提供するために、追加、交換、および／または除外できる。さらに、理解されるように、図で提供される要素の比率および相対的な大きさは、本開示の実施形態を図解することを目的としており、制限的な意味で取られるべきでない。
【００１５】
図１は、本開示の１つまたは複数の実施形態に従った、少なくとも１つのメモリシステム１０４を含むコンピューティング装置１００の機能ブロック図である。図１に示す実施形態では、メモリシステム１０４は、コントローラ１０８および１つまたは複数のメモリ装置１１０−１、．．．、１１０−Ｎを含み得る。この例では、コントローラ１０８は、１つまたは複数のメモリ装置１１０−１、．．．、１１０−Ｎの外部にある。メモリ装置１１０−１、．．．、１１０−Ｎは、例えば、そのメモリ装置に対してフォーマットされたファイルシステムで、メモリシステムに対する記憶ボリュームを提供し得る。コントローラ１０８は、例えば、ハードウェア、ファームウェア、および／またはソフトウェアなど、制御回路を含み得る。１つまたは複数の実施形態では、コントローラ１０８は、物理インタフェースおよびメモリ装置１１０−１、．．．、１１０−Ｎを含むプリント基板に結合された特定用途向け集積回路（ＡＳＩＣ）であり得る。
【００１６】
コントローラ１０８は、データ重複排除コンポーネント１１２およびハッシュテーブル１１４を含み得る。データ重複排除コンポーネント１１２は、ハードウェア、ファームウェア、および／またはソフトウェアを含み得、データに関してデータ重複排除操作を実行して、例えば、データがメモリ装置１１０−１、．．．、１１０−Ｎ内に存在するかどうか、およびデータがメモリ装置１１０−１、．．．、１１０−Ｎに書き込まれるべきかどうかを判断し得る。ハッシュテーブル１１４は、コントローラ１０８上のメモリセル内および／またはメモリ装置１１０−１、．．．、１１０−Ｎのメモリセル内に格納でき、また、論理アドレスをハッシュ値と、および、セクターなどの、データの部分に対する物理アドレスとも、関連付けるために使用できる。ハッシュテーブル１１４は、論理アドレス、ハッシュ値、およびセクターなどの、データの部分に対する物理アドレスに対応するいくつかのエントリを含むことができる。データ重複排除コンポーネント１１２は、メモリシステムによってホストから受信されるデータの各セクターをハッシュできる。データの各セクターをハッシュしている間に、書込みコマンドで受信されたデータの各セクターに対するハッシュ値が生成され得る。
【００１７】
１つまたは複数の実施形態では、データ重複排除コンポーネント１１２は、データの各セクターに対して生成されたハッシュ値を、メモリ装置１１０−１、．．．、１１０−Ｎに現在書き込まれているデータに対応するハッシュテーブル１１４内のハッシュ値と比較できる。書込みコマンドで受信されたデータのセクターに対して生成されたハッシュ値が、ハッシュテーブル１１４内に存在しない場合、データのそのセクターがメモリ装置１１０−１、．．．、１１０−Ｎ内の記憶位置に書き込まれ、ハッシュテーブル１１４が、データのそのセクターのハッシュ値で、エントリをハッシュテーブル１１４に書き込むことによって、更新される。ハッシュテーブル１１４は、データのセクターの論理アドレスおよびデータのセクターの物理アドレスをデータのセクターのハッシュ値と関連付けるために、ハッシュテーブル１１４にエントリを書き込むことによっても更新できる。書込みコマンドで受信されたデータのセクターに対して生成されたハッシュ値が、ハッシュテーブル１１４に存在する場合には、ハッシュテーブル１１４は、データのセクターの論理アドレスを、ハッシュテーブル１１４に既にあるセクターデータのハッシュ値と関連付けるために、ハッシュテーブル１１４にエントリを書き込むことによって更新できる。ハッシュテーブル１１４が、ハッシュ値ならびにデータのセクターの論理アドレスおよび物理アドレスで更新されると、成功した書込み表示をホスト１０２に送信できる。
【００１８】
図１に示すように、ホスト１０２は、メモリシステム１０４に結合できる。ホスト１０２は、他のホストシステムの中で特に、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル録音および再生装置、携帯電話、ＰＤＡ、メモリカードリーダー、インタフェースハブであり得、また、例えば、プロセッサなどの、メモリアクセス装置を含み得る。当業者であれば、「プロセッサ」は、並列処理システムなどの１つまたは複数のプロセッサ、いくつかのコプロセッサなど、を意図し得ることを理解するであろう。
【００１９】
１つまたは複数の実施形態では、物理ホストインタフェースは、標準インタフェースの形であり得る。例えば、メモリシステム１０４がコンピューティング装置１００でデータ記憶用に使用される場合、物理ホストインタフェースは、他のインタフェースの中で特に、シリアルアドバンスドテクノロジーアタッチメント（ＳＡＴＡ）、ＰＣＩ  Ｅｘｐｒｅｓｓ  （ＰＣＩｅ）、またはユニバーサルシリアルバス（ＵＳＢ）であり得る。しかし、一般に、物理ホストインタフェースは、メモリシステム１０４と、その物理ホストインタフェースに対して互換性のあるレセプタを有するホスト１０２との間で、制御、アドレス、データ、および他の信号を渡すためのインタフェースを提供できる。ホスト１０２は、書込みコマンドを、物理ホストインタフェースを介して、メモリシステム１０４に送信できる。
【００２０】
コントローラ１０８は、他の操作の中で特に、データの読取り、書込み、および消去を行うために、メモリ装置１１０−１、．．．、１１０−Ｎと通信できる。コントローラ１０８は、１つもしくは複数の集積回路および／または個別部品であり得る回路機構をもつことができる。メモリコントローラは、メモリ装置１１０−１、．．．、１１０−Ｎの入出力接続（図１に示されていない）に選択的に結合して、適切な信号を適切な入出力接続で適切な時に受信し得る。同様に、ホスト１０２とメモリシステム１０４との間の通信プロトコルは、メモリ装置１１０−１、．．．、１１０−Ｎのアクセスに必要なものとは異なり得る。コントローラ１０８は、次いで、ホストから受信したコマンドを、適切なコマンドに変換して、メモリ装置１１０−１、．．．、１１０−Ｎへの所望のアクセスを獲得し得る。
【００２１】
メモリ装置１１０−１、．．．、１１０−Ｎは、メモリセル（例えば、不揮発性メモリセル）の１つまたは複数のアレイを含み得る。アレイは、例えば、相変化メモリ（ＰＣＭ）アレイであり得る。実施形態は、特定のタイプのメモリ装置に限定されない。例えば、メモリ装置は、特に、ＲＡＭ、ＲＯＭ、ＨＤＤ、ＤＲＡＭ、ＳＤＲＡＭ、ＰＣＲＡＭ、ＲＲＡＭ（登録商標）、およびフラッシュメモリを含み得る。
【００２２】
メモリ装置１１０−１、．．．、１１０−Ｎは、グループ化できるいくつかのメモリセルを含むことができる。本明細書では、グループは、例えば、ページ、ブロック、プレーン（ｐｌａｎｅ）、ダイ、アレイ全体、またはメモリセルの他のグループなどの、１つまたは複数のメモリセルを含むことができる。例えば、いくつかのメモリセルアレイは、メモリセルのブロックを構成する、メモリセルのいくつかのページを含み得る。いくつかのブロックは、メモリセルのプレーンに含まれ得る。メモリセルのいくつかのプレーンは、ダイ上に含まれ得る。一例として、１２８ＧＢのメモリ装置は、ページあたり４３１４バイトのデータ、ブロックあたり１２８ページ、プレーンあたり２０４８ブロック、および装置あたり１６プレーンを含み得る。
【００２３】
図１の実施形態は、本開示の実施形態を曖昧にしないために図示されていない、追加の回路機構を含むことができる。例えば、メモリシステム１０４は、コントローラ（例えば、制御回路）、および入出力接続により入出力回路を通じて提供されたアドレス信号をラッチするためのアドレス回路を含むことができる。アドレス信号は、受信され、行デコーダおよび列デコーダによって復号されて、メモリ装置１１０−１、．．．、１１０−Ｎにアクセスし得る。アドレス入力接続数は、メモリ装置１１０−１、．．．、１１０−Ｎの密度およびアーキテクチャによって決まり得ることが当業者によって理解されるであろう。
【００２４】
一般に、コントローラ１０８は、ホスト１０２から（例えば、ＰＣＩｅバスから）受信したコマンドを、ホストメモリ変換回路用のコマンド命令に変換すること、およびメモリ応答を、要求しているホストへの送信のために、ホストシステムコマンドに変換することに責任を負い得る。
【００２５】
１つまたは複数の実施形態では、データは、一度に１ページ、メモリ装置に書き込まれ得る。メモリ装置内の各ページは、いくつかの物理セクターを有し得、各物理セクターは、ＬＢＡに関連付けられ得る。一例として、物理ページは、８つの物理セクターのデータを有し得る。しかし、実施形態は、物理ページあたり特定数の物理セクターに制限されない。
【００２６】
図２は、本開示の１つまたは複数の実施形態に従った、少なくとも１つのメモリシステム２０４を含むコンピューティング装置２００の機能ブロック図である。図２に示す実施形態では、メモリシステム２０４は、コントローラ２０８および１つまたは複数のメモリ装置２１０−１、．．．、２１０−Ｎを含み得る。この例では、コントローラ２０８は、１つまたは複数のメモリ装置２１０−１、．．．、２１０−Ｎの外部にあるが、他の実施形態では、コントローラは、１つもしくは複数のメモリ装置の内部にあるか、または１つもしくは複数のメモリ装置および／もしくはコントローラ２０８との間に分散され得る。メモリ装置２１０−１、．．．、２１０−Ｎは、例えば、そのメモリ装置に対してフォーマットされたファイルシステムで、メモリシステムに対する記憶ボリュームを提供し得る。コントローラ２０８は、例えば、ハードウェア、ファームウェア、および／またはソフトウェアなど、制御回路を含み得る。１つまたは複数の実施形態では、コントローラ２０８は、物理インタフェースおよびメモリ装置２１０−１、．．．、２１０−Ｎを含むプリント基板に結合された特定用途向け集積回路（ＡＳＩＣ）であり得る。
【００２７】
メモリ装置２１０−１、．．．、２１０−Ｎは、内部コントローラの一部（例えば、制御回路）などの、データ重複排除コンポーネント２１２を含み得る。データ重複排除コンポーネント２１２は、図１に関連して前述したように、ハードウェア、ファームウェア、および／またはソフトウェアを含み得、データに関してデータ重複排除操作を実行できる。メモリ装置２１０−１、．．．、２１０−Ｎは、ハッシュテーブル２１４を含み得る。ハッシュテーブルは、図１に関連して前述したように、メモリ装置２１０−１、．．．２１０−Ｎのメモリセル内に格納でき、また、論理アドレスをハッシュ値と、および、セクターなどの、データの部分に対する物理アドレスとも、関連付けるために使用できる。
【００２８】
コントローラ２０８は、他の操作の中で特に、データの読取り、書込み、および消去を行うために、メモリ装置２１０−１、．．．、２１０−Ｎと通信できる。コントローラ２０８は、１つもしくは複数の集積回路および／または個別部品であり得る回路機構をもつことができる。メモリコントローラは、メモリ装置２１０−１、．．．、２１０−Ｎの入出力接続（図１に示されていない）に選択的に結合して、適切な信号を適切な入出力接続で適切な時に受信し得る。同様に、ホスト２０２とメモリシステム２０４との間の通信プロトコルは、メモリ装置２１０−１、．．．、２１０−Ｎのアクセスに必要なものとは異なり得る。コントローラ２０８は、次いで、ホストから受信したコマンドを、適切なコマンドに変換して、メモリ装置２１０−１、．．．、２１０−Ｎへの所望のアクセスを獲得し得る。
【００２９】
メモリ装置２１０−１、．．．、２１０−Ｎは、メモリセル（例えば、不揮発性メモリセル）の１つまたは複数のアレイを含み得る。アレイは、例えば、相変化メモリ（ＰＣＭ）アレイであり得る。実施形態は、特定のタイプのメモリ装置に限定されない。例えば、メモリ装置は、特に、ＲＡＭ、ＲＯＭ、ＤＲＡＭ、ＳＤＲＡＭ、ＰＣＲＡＭ、ＲＲＡＭ、およびフラッシュメモリを含み得る。
【００３０】
メモリ装置２１０−１、．．．、２１０−Ｎは、グループ化できるいくつかのメモリセルを含むことができる。本明細書では、グループは、例えば、ページ、ブロック、プレーン、ダイ、アレイ全体、またはメモリセルの他のグループなどの、１つまたは複数のメモリセルを含むことができる。例えば、いくつかのメモリセルアレイは、メモリセルのブロックを構成する、メモリセルのいくつかのページを含み得る。いくつかのブロックは、メモリセルのプレーンに含まれ得る。メモリセルのいくつかのプレーンは、ダイ上に含まれ得る。一例として、１２８ＧＢのメモリ装置は、ページあたり４３１４バイトのデータ、ブロックあたり１２８ページ、プレーンあたり２０４８ブロック、および装置あたり１６プレーンを含み得る。
【００３１】
図３は、本開示の１つまたは複数の実施形態に従った、いくつかの論理アドレス、ハッシュ値、および物理アドレスを表すハッシュテーブル３１４を示す。図３のハッシュテーブル３１４は、いくつかの列を含む。第１の列３２０は、例えば、セクターなどの、データの特定部分の論理アドレス（ＬＡ）を示す。第２の列３３０は、データの特定部分のハッシュ値を示す。第３の列３４０は、データの特定部分の物理アドレス（ＰＡ）を示す。データの特定部分の物理アドレスは、メモリ装置内のデータのその部分の物理的位置へのポインタを含む。
【００３２】
図３に示す例では、列３２０は、いくつかの異なる論理アドレス３２０−１（「ＬＡ−１」）、３２０−２（「ＬＡ−２」）、３２０−３（「ＬＡ−３」）、３２０−４（「ＬＡ−４」）、３２０−５（「ＬＡ−５」）、３２０−６（「ＬＡ−６」）、および３２０−Ｍ（「ＬＡ−Ｍ」）を含む。各論理アドレスは、それぞれのハッシュ値３３０−１（「Ｈ−１」）、３３０−２（「Ｈ−２」）、３３０−３（「Ｈ−３」）、および３３０−Ｍ（「Ｈ−Ｍ」）と関連付けられている。
【００３３】
１つまたは複数の実施形態では、ハッシュテーブル３１４の列３２０内の論理アドレスおよび列３３０内のそれらの関連付けられたハッシュ値は、列３２０内の論理アドレスおよび列３３０内のハッシュ値と関連付けられた、メモリシステム（例えば、図１のシステム１０４）内のデータの物理的位置を示す、列３４０内の物理アドレスと関連付けられ得る。各論理アドレス３２０−１、３２０−２、３２０−３、３２０−４、３２０−５、３２０−６、および３２０−Ｍ、ならびに関連付けられたハッシュ値３３０−１、３３０−２、３３０−３、および３３０−Ｍは、関連付けられた物理アドレス３４０−１（「ＰＡ−１」）、３４０−２（「ＰＡ−２」）、３４０−３（「ＰＡ−３」）、および３４０−Ｍ（「ＰＡ−Ｍ」）をもち得る。共通のハッシュ値を共有する論理アドレスは、同一の物理的位置に関連付けられ得る。これは、２つ以上の論理アドレスに関連したデータがメモリ装置に一度だけ書き込まれることを可能にする。
【００３４】
図３に示す例では、論理アドレス３２０−１は、ハッシュ値３３０−１に関連付けられ、また、論理アドレス３２０−１に関連付けられたデータは、物理アドレス３４０−１に関連付けられたメモリ装置内の物理的位置にある。論理アドレス３２０−２および論理アドレス３２０−５は、ハッシュ値３３０−２に関連付けられ、論理アドレス３２０−２および論理アドレス３２０−５に関連付けられたデータは、物理アドレス３４０−２に関連付けられたメモリ装置内の物理的位置にある。
【００３５】
論理アドレス３２０−３、論理アドレス３２０−４、および論理アドレス３２０−６は、ハッシュ値３３０−３に関連付けられ、論理アドレス３２０−３、論理アドレス３２０−４、および論理アドレス３２０−６に関連付けられたデータは、物理アドレス３４０−３に関連付けられたメモリ装置内の物理的位置にある。論理アドレス３２０−Ｍは、ハッシュ値３３０−Ｍに関連付けられ、論理アドレス３２０−Ｍに関連付けられたデータは、物理アドレス３４０−Ｍに関連付けられたメモリ装置内の物理的位置にある。
【００３６】
論理アドレス３２０−１はハッシュ値３３０−１に関連付けられ、また、論理アドレス３２０−１に関連付けられたデータは、物理アドレス３４０−１に関連付けられたメモリ装置内の物理的位置にある。いくつかの実施形態では、共通のハッシュ値（例えば、ハッシュ値３３０−１）を共有するメモリシステムによって受信された書込みコマンドに関連している（例えば、部分の）任意のデータは、メモリ装置に書き込まれないであろうが、共通のハッシュ値３３０−１に関連付けられたその論理アドレスおよび共通の物理アドレス３４０−１をもつことができる。
【００３７】
この例では、論理アドレス３２０−２および３２０−５は、同一のデータに対応し、従って、それらは、共通のハッシュ値（ハッシュ値３３０−２）を共有する。論理アドレス３２０−２および３２０−５に関連付けられたデータは、物理アドレス３４０−２に関連付けられた物理的位置に一度書き込まれ、従って、論理アドレス３２０−２および３２０−５に関連付けられたデータは、メモリ装置に一度だけ書き込まれる。いくつかの実施形態では、共通のハッシュ値（例えば、ハッシュ値３３０−２）を共有するメモリシステムによって受信された書込みコマンドに関連する任意のデータは、共通の物理アドレス（例えば、３４０−２）を有する共通の物理的位置に関連付けられるであろう。論理アドレス３２０−２および３２０−５に関連付けられたデータがアクセスされる（例えば、読取りコマンドで要求される）と、ハッシュテーブル３１４が、論理アドレス３２０−２および３２０−５に関連付けられた物理アドレス３４０−２を介してデータの物理的位置を識別するために使用でき、論理アドレス３２０−２および３２０−５に関連した読取りコマンドが、同一の物理的位置から読み取られ得る。
【００３８】
この例では、論理アドレス３２０−３、３２０−４、および３２０−６は、同一のデータに対応し、従って、それらは、共通のハッシュ値（ハッシュ値３３０−３）を共有する。論理アドレス３２０−３、３２０−４、および３２０−６に関連付けられたデータは、物理アドレス３４０−３に関連付けられた物理的位置に一度書き込まれ、従って、論理アドレス３２０−３、３２０−４、および３２０−６に関連付けられたデータは、メモリ装置に一度だけ書き込まれる。いくつかの実施形態では、共通のハッシュ値（例えば、ハッシュ値３３０−３）を共有するメモリシステムによって受信された書込みコマンドに関連する任意のデータは、共通の物理アドレス（例えば、３４０−３）を有する共通の物理的位置に関連付けられるであろう。論理アドレス３２０−３、３２０−４、および３２０−６に関連付けられたデータがアクセスされる（例えば、読取りコマンドで要求される）と、ハッシュテーブル３１４が、論理アドレス３２０−３、３２０−４、および３２０−６に関連付けられた物理アドレス３４０−３を介してデータの物理的位置を識別するために使用でき、論理アドレス３２０−３、３２０−４、および３２０−６に関連した読取りコマンドが、同一の物理的位置から読み取られる。
【００３９】
１つまたは複数の実施形態では、ハッシュテーブルは、ハッシュ値およびそのハッシュ値に関連付けられたデータに対する物理的位置を含むことができる。いくつかの実施形態では、ハッシュテーブル内に存在するハッシュ値に関連するデータは、メモリ装置に書き込まれないであろう。ハッシュテーブルは、ハッシュ値のリストおよび各ハッシュ値に関連付けられた物理的位置のリストを含むことができ、それは、ハッシュ値に関連したデータがメモリ装置内の物理的位置に配置されているかどうか、およびそのハッシュ値に関連したデータを、それがメモリ装置内の物理的位置に既に配置されているので、メモリ装置内に書き込む必要がないかどうかを、判断するために使用できる。
【００４０】
〔結論〕
本開示は、データ重複排除のための装置および方法を含む。１つのかかる方法は、書込みコマンドを受信すること、その書込みコマンドに関連したデータを変換すること、そのデータの変換値が変換テーブルに存在するかどうかを判断すること、および変換値がその変換テーブルに存在しないという判断に応答して、書込みコマンドに関連したデータをメモリ装置に書き込むことを含む。
【００４１】
本明細書では、特定の実施形態が例示および説明されているが、当業者は、同一の結果を達成するために計算された配置が、示された特定の実施形態と置き換えられ得ることを理解するであろう。本開示は、本開示のいくつかの実施形態の適合または変形をカバーすることが意図される。上の記述が、制限的ではなく、例示的な方法で行われていることが理解されよう。上の実施形態の組合せ、および本明細書に具体的に記述されていない他の実施形態は、上の記述を再検討すると、当業者には明らかであろう。本開示のいくつかの実施形態の範囲は、上の構造および方法が使用される他の用途を含む。従って、本開示のいくつかの実施形態の範囲は、添付の請求項に関して、かかる請求項が権利を与えられる同等物の完全な範囲と共に、決定されるべきである。
【００４２】
前述の発明を実施するための形態では、本開示を簡素化する目的で、いくつかの特徴が、単一の実施形態に一緒にまとめられている。開示のこの方法は、本開示の開示された実施形態が、各請求項で明示的に詳述されているよりも多くの特徴を使用する必要があるという意図の反映としては解釈されない。むしろ、以下の請求項が反映するように、発明の主題は、決して、単一の開示された実施形態の全ての特徴にあるのではない。従って、以下の請求項は、それにより発明を実施するための形態に組み込まれ、各請求項が別個の実施形態としてそれ自身の権利を主張する。
【符号の説明】
【００４３】
１００  コンピューティング装置
１０２  ホスト
１０４  メモリシステム
１０８  コントローラ
１１０−１〜１１０−Ｎ  メモリ装置
１１２  データ重複排除コンポーネント
１１４  ハッシュテーブル
２００  コンピューティング装置
２０２  ホスト
２０４  メモリシステム
２０８  コントローラ
２１０−１〜２１０−Ｎ  メモリ装置
２１２  データ重複排除コンポーネント
２１４  ハッシュテーブル
３１４  ハッシュテーブル
３２０、３３０、３４０  列
３２０−１〜３２０−Ｍ  論理アドレス
３３０−１〜３３０−Ｍ  ハッシュ値
３４０−１〜３４０−Ｍ  物理アドレス
【図１】
2015212971.tif 000003
【図２】
2015212971.tif 000004
【図３】
2015212971.tif 000005