The same level of the symbol frequency in the data storage system

申请号 JP2004532020 申请日 2003-08-29 公开(公告)号 JP4551217B2 公开(公告)日 2010-09-22
申请人 サンディスク コーポレイションSanDisk Corporation; 发明人 ジェイ. グロス,ステファン; エス. ゴングウァー,ジェフリー;
摘要
权利要求
  • メモリシステムに情報を格納する方法であって、前記情報が第1のデータフォーマットである前記方法において、
    前記第1のデータフォーマットに関連付けられた統計情報を生成し、前記第1のデータフォーマットは2つ以上のシンボルを含むように構成され、前記統計情報は2つ以上のシンボルの第1と第2のシンボルの出現数を示すように構成されるステップと、
    前記統計情報を使用して前記情報を前記第1のデータフォーマットから第2のデータフォーマットへ変換し、該変換により前記第1のデータフォーマット中での前記第1と第2のシンボルの出現数の差分よりも前記第2のデータフォーマット中での前記第1と第2のシンボルの出現数の差分をより少なくすることを提供するステップ、および
    前記メモリシステムに関連付けられたメモリ内に前記第2のデータフォーマットで前記情報を格納するステップであり、前記第1のデータフォーマットから前記第2のデータフォーマットに前記情報を変換する際に使用される変換用識別子を前記メモリ内に格納することを含むステップ、
    を含む方法。
  • 請求項1記載の方法において、
    前記統計情報を使用して前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換するステップにおいて、
    前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換する際に前記情報内の前記第1のシンボルの密度を低減する方法。
  • 請求項 1記載の方法において、
    前記統計情報を使用して前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換するステップにおいて、
    前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換する際に前記情報内の前記第1のシンボルの密度を増加する方法。
  • 請求項 1記載の方法において、
    前記メモリシステム上で、前記第1のデータフォーマットで前記情報を受信することであり、前記メモリシステムと通信を行うホストシステムから前記情報を受信することを含む方法。
  • 請求項 1記載の方法において、
    前記第2のデータフォーマットで前記情報を格納することに関連付けられた少なくとも1つのコストが前記第1のデータフォーマットで前記情報を格納することに関連付けられた少なくとも1つのコスト以下である方法。
  • 請求項 1記載の方法において、
    前記第2のデータフォーマットで前記情報を格納するための前記メモリシステムで使用される電力が前記第1のデータフォーマットで前記情報を格納するための前記メモリシステムで使用される電力以下である方法。
  • 請求項 記載の方法において、
    前記第1のデータフォーマットが16のシンボルを含む方法。
  • 請求項 記載の方法において、
    前記統計情報を使用して前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換するステップにおいて、
    前記第1のデータフォーマットに関連付けられた最高密度のシンボルの密度を前記第1のシンボルの前記密度とし、前記第1のデータフォーマットに関連付けられた最低密度のシンボルの密度を前記第2のシンボルの前記密度として、前記情報中の前記第1のシンボルの前記密度を低減し、前記第2のシンボルの前記密度を増加させるため前記第1のデータフォーマットから前記第2のデータフォーマットに前記情報を変換する方法。
  • メモリシステム内の情報を取得する方法であって、前記情報が第1のデータフォーマットである前記方法において、
    前記第1のデータフォーマットで前記情報を分析し、前記第1のデータフォーマットは2つ以上のシンボルを含み、第1のシンボルと第2のシンボルを含み、前記第1のデータフォーマットで前記情報を分析し、前記第1のデータフォーマットから第2のデータフォーマットへ前記情報を変換する際に使用する少なくとも1つの適切な変換処理を決定するステップと、
    前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換し、前記第2のデータフォーマットは前記第1のデータフォーマットよりも前記第1と第2のシンボルの出現数との間により大きな差異を有するステップ、
    含む方法。
  • 請求項 記載の方法において、
    前記第1のデータフォーマットは初期状態では前記第2のデータフォーマットの2つ以上のシンボルに関連付けられた統計情報を使用して変換される方法。
  • 請求項 記載の方法において、
    前記第1のデータフォーマットで前記情報を分析する際、適切な変換を識別する記号を含む前記第1のデータフォーマットの前記情報のセクションを読み込む方法。
  • 請求項9記載の方法において、
    前記メモリシステムがホストシステムとの通信を行い、前記方法が前記ホストシステムへ前記第2のデータフォーマットで変換情報を提供することをさらに含む方法。
  • 請求項9記載の方法において、
    前記メモリ内に前記第1のデータフォーマットで前記情報を格納するのに関連付けられた少なくとも1つのコストが前記メモリ内に前記第2のデータフォーマットで前記情報を格納するのに関連付けられた少なくとも1つのコスト以上ではない方法。
  • 請求項9記載の方法において、
    メモリ内に前記第1のデータフォーマットで情報を格納する前記メモリシステムで使用される電力が前記メモリ内に前記第2のデータフォーマットで前記情報を格納する前記メモリシステムで使用される電力以上ではない方法。
  • メモリデバイスであって、
    メモリと、
    第1のデータフォーマットで構成された情報を受け取るように構成された入力用受信 装置と、
    前記第1のデータフォーマットに関連する統計 情報を生成するように構成された統計 情報生成装置と、
    前記第1のデータフォーマットから第2のデータフォーマットへ前記情報を変換するために前記統計 情報を用いるように構成された変換装置であって、前記第2のデータフォーマットの前記情報を前記メモリに格納するようにさらに構成された変換装置 とを備え、
    前記統計 情報生成装置が、 前記第1のデータフォーマットに関連付けられた前記統計情報を生成し、前記第1のデータフォーマットは2つ以上のシンボルを含むように構成され、前記統計情報は2つ以上のシンボルの第1と第2のシンボルの出現数を示すようにさらに構成され、
    前記変換装置が、前記統計情報を使用して前記情報を前記第1のデータフォーマットから前記第2のデータフォーマットへ変換し、該変換により前記第1のデータフォーマット中での第1と第2のシンボルの出現数の差分よりも前記第2のデータフォーマット中での前記第1と第2のシンボルの出現数の差分をより少なくするように構成されるメモリデバイス。
  • 請求項15記載のメモリデバイスにおいて、
    前記変換装置が、前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換して、前記情報の範囲内で前記第1のシンボルの密度を低減するように構成されるメモリデバイス。
  • 請求項15記載のメモリデバイスにおいて、
    前記変換装置が、前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換して、前記情報の範囲内で前記第1のシンボルの密度を増加するように構成されるメモリデバイス。
  • 請求項 15記載のメモリデバイスにおいて、
    前記第2のデータフォーマットの前記情報を格納することに関連するコストは、前記第1のデータフォーマットの前記情報を格納することに関連するコスト以下であるメモリデバイス。
  • 請求項 15記載のメモリデバイスにおいて、
    前記変換装置が、前記第2のデータフォーマットの前記情報と共に識別子を格納するようにさらに構成され、前記識別子が、前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換するのに用いる少なくとも1つの変換 処理を実質的に特定するように構成されるメモリデバイス。
  • 請求項1 記載のメモリデバイスにおいて、
    前記識別子を読み出すように構成される情報処理装置をさらに備え、前記情報処理装置が、前記変換装置と一体に動作するようにさらに構成され、それによって前記変換装置が少なくとも1つの適切な変換 処理を特定して、前記第2のデータフォーマットから前記第1のデータフォーマットへ前記情報を変換するようにするメモリデバイス。
  • 請求項 20記載のメモリデバイスにおいて、
    前記入力 受信 装置が、ホストシステムとインタフェースを行うように構成され、前記変換装置が、前記第2のデータフォーマットから前記第1のデータフォーマットへ前記情報を変換した後、前記第1のデータフォーマットの前記情報を前記ホストシステムへ出力するようにさらに構成されるメモリデバイス。
  • 請求項 15記載のメモリデバイスにおいて、
    前記入力 受信 装置が、ホストシステムとインタフェースを行って、前記第1のデータフォーマットの前記情報を前記ホストシステムから受け取るようにするメモリデバイス。
  • システムであって、
    ホストシステムと、
    第1のデータフォーマットで構成された情報を前記ホストシステムから取得するために前記ホストシステムとインタフェースを行うように構成され、かつメモリと、前記第1のデータフォーマットに関連する統計 情報を生成するように構成された統計 情報生成装置と、前記統計 情報を用いて前記第1のデータフォーマットから第2のデータフォーマットに前記情報を変換するように構成され、また前記第2のデータフォーマットの前記情報を前記メモリに格納するようにさらに構成された変換装置とを備えるメモリデバイスとを備え、
    前記統計 情報生成装置が、 前記第1のデータフォーマットに関連付けられた前記統計情報を生成し、前記第1のデータフォーマットは2つ以上のシンボルを含むように構成され、前記統計情報は2つ以上のシンボルの第1と第2のシンボルの出現数を示すようにさらに構成され、
    前記変換装置が、前記統計情報を使用して前記情報を前記第1のデータフォーマットから前記第2のデータフォーマットへ変換し、該変換により前記第1のデータフォーマット中での第1と第2のシンボルの出現数の差分よりも前記第2のデータフォーマット中での前記第1と第2のシンボルの出現数の差分をより少なくするようにさらに構成されるシステム。
  • 請求項23記載のシステムにおいて、
    前記変換装置が、前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換して、前記情報内の前記第1のシンボルの密度を低減するように構成されるシステム。
  • 請求項23記載のシステムにおいて、
    前記変換装置が、前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換して、前記情報内の前記第1のシンボルの密度を増加するように構成されるシステム。
  • 請求項 23記載のシステムにおいて、
    前記変換装置が、前記第2のデータフォーマットの前記情報と共に識別子を格納するようにさらに構成され、前記識別子が、前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換するのに用いる少なくとも1つの変換 処理を実質的に特定するように構成されるシステム。
  • 請求項 26記載のシステムにおいて、
    前記識別子を読み出すように構成される情報処理装置をさらに備え、前記情報処理装置が、前記変換装置と一体に動作するようにさらに構成され、それによって前記変換装置が少なくとも1つの適切な変換 処理を特定して、前記第2のデータフォーマットから前記第1のデータフォーマットへ前記情報を変換するようにするシステム。
  • 請求項 27記載のシステムにおいて、
    前記変換装置が前記第2のデータフォーマットから前記第1のデータフォーマットへ前記情報を変換した後、前記メモリデバイスが前記第1のデータフォーマットの前記情報を前記ホストシステムへ出力するように構成されるシステム。
  • 請求項 26記載のシステムにおいて、
    前記ホストシステムが、情報処理装置と第2の変換装置とを備え、前記情報処理装置が前記識別子を読み出すように構成され、また前記第2の変換装置と一体に動作するようにさらに構成され、それによって前記第2の変換装置が少なくとも1つの適切な変換 処理を特定して、前記第2のデータフォーマットから前記第1のデータフォーマットへ前記情報を変換するようにするシステム。
  • 請求項 23記載のシステムにおいて、
    前記メモリデバイスが、PCカード、コンパクトフラッシュカード、マルチメディアカード、セキュアデジタルカード、メモリスティックカード、スマートメディアカードから成るグループから選択されたカードであるシステム。
  • 請求項 23記載のシステムにおいて、
    前記メモリデバイスが、単一のチップデバイスであるシステム。
  • 請求項 23記載のシステムにおいて、
    前記ホストシステムが、前記情報をキャプチャし、前記第1のフォーマットの前記情報を前記メモリデバイスへ出力するように構成されるシステム。
  • 請求項 32記載のシステムにおいて、
    前記ホストシステムが、デジタルカメラ、ビデオカメラ、携帯電話、通信装置、オーディオプレイヤ、ビデオプレイヤから成るグループから選択されたシステムであるシステム。
  • 請求項 23記載のシステムにおいて、
    前記変換装置が、前記情報に対する追加の変換を行うようにさらに構成され、前記追加の変換が実質的に前記統計 情報を用いないシステム。
  • メモリデバイスであって、
    情報を格納する手段と、
    第1のデータフォーマットで構成された前記情報を受け取るように構成される入力を受け取る手段と、
    前記第1のデータフォーマットに関連する統計 情報を生成するように構成される統計 情報を生成する手段と、
    前記統計 情報を用いて、前記第1のデータフォーマットから第2のデータフォーマットへ前記情報を変換するように構成される情報を変換する手段 とを備え、
    前記統計 情報を生成する手段が、前記第1のデータフォーマット に関連付けられた前記統計情報を生成し、前記第1のデータフォーマットは2つ以上のシンボルを含むように構成され、前記統計情報は2つ以上のシンボルの第1と第2のシンボルの出現数を示すようにさらに構成され、
    前記情報を変換する手段が、前記統計情報を使用して前記情報を前記第1のデータフォーマットから前記第2のデータフォーマットへ変換し、該変換により前記第1のデータフォーマット中での第1と第2のシンボルの出現数の差分よりも前記第2のデータフォーマット中での前記第1と第2のシンボルの出現数の差分をより少なくするようにさらに構成されるメモリデバイス。
  • 請求項35記載のメモリデバイスにおいて、
    前記情報を変換する手段が、前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換して、前記情報内の前記第1のシンボルの密度を低減するように構成されたメモリデバイス。
  • 請求項35記載のメモリデバイスにおいて、
    前記情報を変換する手段が、前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換して、前記情報内の前記第1のシンボルの密度を増加するように構成されたメモリデバイス。
  • 請求項 35記載のメモリデバイスにおいて、
    前記情報を変換する手段が、前記第2のデータフォーマットの情報を前記情報を格納する手段に格納するようにさらに構成されるメモリデバイス。
  • 請求項 35記載のメモリデバイスにおいて、
    前記情報を変換する手段が、追加の変換を行うようにさらに構成され、前記追加の変換が前記統計 情報を用いないように構成されるメモリデバイス。
  • 請求項 35記載のメモリデバイスにおいて、
    前記第2のデータフォーマットの前記情報を格納することに関連するコストは、前記第1のデータフォーマットの前記情報を格納することに関連するコスト以下であるメモリデバイス。
  • 請求項 35記載のメモリデバイスにおいて、
    前記第2のデータフォーマットの前記情報を格納することに関連する電力使用量は、前記第1のデータフォーマットの前記情報を格納することに関連する電力使用量以下であるメモリデバイス。
  • 請求項 35記載のメモリデバイスにおいて、
    前記情報を変換する手段が、前記第2のデータフォーマットの前記情報に関連する識別子を格納するようにさらに構成され、前記識別子が、前記第1のデータフォーマットから前記第2のデータフォーマットへ前記情報を変換するのに用いる少なくとも1つの変換 処理を実質的に特定するように構成されるメモリデバイス。
  • 請求項 42記載のメモリデバイスにおいて、
    前記識別子を読み出す手段を備える前記情報を処理する手段をさらに備え、前記情報を処理する手段が前記情報を変換する手段と一体に動作するように構成され、それによって前記情報を変換する手段が少なくとも1つの適切な変換 処理を特定して、前記第2のデータフォーマットから前記第1のデータフォーマットへ前記情報を変換するようにするメモリデバイス。
  • 請求項 43記載のメモリデバイスにおいて、
    前記入力を受け取る手段が、ホストシステムとインタフェースを行うように構成され、前記情報を変換する手段が、前記第2のデータフォーマットから前記第1のデータフォーマットへ前記情報を変換した後、前記第1のデータフォーマットの前記情報を前記ホストシステムへ出力する手段を備えるメモリデバイス。
  • 請求項 42記載のメモリデバイスにおいて、
    識別子を読み出す手段を備える情報を処理する手段と、
    情報を変換する第2の手段であって、前記情報を処理する手段が、前記情報を変換する第2の手段と一体に動作するように構成され、それによって前記情報を変換する第2の手段が少なくとも1つの適切な変換 処理を特定して、前記第2のデータフォーマットから前記第1のデータフォーマットへ前記情報を変換するようにする情報を変換する第2の手段と、
    をさらに備えるメモリデバイス。
  • 請求項 35記載のメモリデバイスにおいて、
    前記入力を受け取る手段が、ホストシステムとインタフェースを行って、前記第1のデータフォーマットの前記情報を前記ホストシステムから受け取るように構成されるメモリデバイス。
  • 請求項 記載の方法で、第1のフォーマットから第2のフォーマットにデータを変換する方法であって、
    第1のフォーマットから第2のフォーマットにデータを変換する方法であって、
    第1のシンボルの前記第1のフォーマットと関連付けられる第1の密度を決定するステップと、
    第2のシンボルの前記第1のフォーマットと関連付けられる第2の密度を決定するステップであって、前記第1の密度のほうが前記第2の密度よりも大きい第2の密度を決定するステップと、
    前記第1のシンボルを前記第2のシンボルと同レベル化するステップであって、前記第1のシンボルの前記第2のフォーマットと関連付けられる第3の密度を形成するステップと、前記第2のシンボルの前記第2のフォーマットと関連付けられる第4の密度を形成するステップとを含み、前記第3の密度が前記第1の密度未満である同レベル化するステップと、
    を含む方法。
  • 請求項 47記載の方法において、
    前記第4の密度が、前記第2の密度以上である方法。
  • 請求項 47記載の方法において、
    前記第2のフォーマットがインジケータを含み、前記インジケータによって、前記第1のシンボルが前記第2のシンボルと同レベル化されたことを示すように構成される方法。
  • 说明书全文

    本発明は、一般に大容量デジタルデータ格納システムに関する。 さらに詳細には、本発明は、格納システムにおいてシンボル頻度または状態頻度の同レベル化を自動的に行い、それによって、何らかのデータパターンを格納システムに実質的に格納するとき、パフォーマンス目標を効率的に満たすようにするシステムおよび方法に関する。

    フラッシュメモリ格納システムなどの不揮発性メモリシステムの利用が、このようなメモリシステムのコンパクトな物理的サイズ、並びに反復して再プログラム可能な不揮発性メモリの能に起因して増加している。 フラッシュメモリ格納システムのコンパクトな物理的サイズによって、ますます優勢になるデバイスでのこのような格納システムの利用が容易になる。 フラッシュメモリ格納システムを利用するデバイスには、デジタルカメラ、デジタルカムコーダ、デジタルミュージックプレイヤ、ハンドヘルド形パーソナルコンピュータ、地球的規模の測位装置が含まれるが、これらのみに限定されるものではない。 フラッシュメモリ格納システムに含まれる不揮発性メモリの反復再プログラム能力によってフラッシュメモリ格納システムの利用と再利用とが可能となる。

    不揮発性メモリシステムのデータブロックに格納されるデータセットは、データ値の任意の可能な組み合わせを実質的に有するものであってもよい。 “m”個の可能な値のうちの1つの値として個々に格納できる“N”個のシンボルを含むデータブロックは、“m N ”個の可能なデータ値を有することができる。 データブロックに格納されるすべての可能なデータ値を考慮することにより、格納システムはすべての可能な値に対応するパフォーマンス目標を満たすように一般に設計される。 このような設計は、最も一般的な格納済みデータパターン用としては最適なものにはならない可能性がある。 すなわち、好ましくないケースや、生じる可能性が大きくないケースを含めて、すべての可能なデータ値やデータパターンに対応してパフォーマンス要件を満たすことができることを保証するために、最もありふれたデータ値や最も好ましいデータ値に関連するパフォーマンスを妥協させる場合がある。 格納システムのデータブロックにすべての可能なデータ値を格納するように考慮することは、相対的に複雑な設計上の問題、信頼性上の問題、より高い消費電力や、より高いコストを伴うことになる可能性もある。

    データブロックに格納可能なデータパターンの数は、比較的大きなものとなる場合がある。 データブロックにほぼ2進状態のみを格納できるときでさえ、データブロックに潜在的に格納できるデータパターンの数は極めて大きくなる。 100バイナリビットを格納できるデータブロックの場合、2 100通りのデータパターンやデータブロックの格納構成が行われるケースが実際上存在する。 100バイナリビットを格納する格納システムの要件は、最低のパフォーマンス要件を満たす専用回路を必要としたり、追加の電力消費を伴ったりする場合もある少数の好ましくないケースによって設定(例えば、限定)される。 例えば、システムによっては、100バイナリビットを“1”として格納することは、好ましくないケースになる場合があり、この好ましくないケースは、“1”と“0”の値をミックスした100バイナリビットの格納が含まれる好ましいケースよりも高価な格納システムを必要とする。 代わりに、好ましくないケースあるいは稀なケースの格納時に最低のパフォーマンス要件を満たす格納システムが、より好ましいケースの格納に関連するパフォーマンスレベルを妥協させる場合がある。 好ましくないケースの格納に関連する最低のパフォーマンス要件を満たすことができるように、好ましいケースの格納に関連するパフォーマンスレベルを妥協させることは、効率的でないことが証明される場合が多い。

    パフォーマンスの妥協を潜在的に引き起こす原因になることに加えて、あるいは、パフォーマンスの妥協を潜在的に引き起こす原因となる代わりに、すべての可能なデータ値を格納システムのデータブロックに格納するように考慮することは、結果としてより高い製造コストを伴うことになる場合が多い。 というのは、すべての可能なデータ値の格納に関連する回路は高価なものとなる場合があるからである。 このような回路も、比較的高い電力消費量を必要とすると考えられる。 すべての可能なデータ値を格納する格納システムは、データの格納と、好ましくないケースの格納を調整する追加の回路の介在との双方に関しても信頼性の低いものになる可能性が高い。 すべての可能なデータ値を格納する必要性は、すべての可能なデータ値の格納を可能にする格納システム用回路の設計に関連する設計上の問題のために開発期間の長期化にもつながることが考えられ、この長期化は、格納システムをマーケットに出せるようにするまでにさらに長いリードタイムを生じることになることが考えられる。

    したがって、求めるものは、好ましいケースの格納に関連するパフォーマンスを実質的に妥協させることなく、好ましくないケースを効率良く不揮発性メモリに格納することを可能にするシステムである。 すなわち、必要とするものは、好ましくないケースと好ましいケースの双方の格納を効果的に可能にする方法および装置である。

    米国特許第5,890,192号

    本発明は、データを不揮発性メモリに効率良く格納できるフォーマットに変換するシステムと方法とに関する。 本発明の1つの態様によれば、第1のデータフォーマットの情報をメモリシステムに格納する方法には、第1のデータフォーマットに関連する統計値を生成するステップと、その統計値を用いて、第1のデータフォーマットから第2のデータフォーマットへ情報を変換するステップとが含まれる。 この情報は、第2のデータフォーマットに変換されるとすぐに、第2のデータフォーマットでメモリの中へ格納される。 第2のデータフォーマットの情報をメモリに格納するステップには、第1のデータフォーマットから第2のデータフォーマットへの情報の変換に用いる変換値を指示あるいは特定する識別子をメモリに格納するステップが含まれる。 識別子についての情報によって、一般に、第2のデータフォーマットから元の第1のデータフォーマットへの情報の変換を可能にする。 一実施形態では、第2のデータフォーマットの情報を格納する関連コストは、第1のデータフォーマットの情報を格納する関連コスト以下である。

    別の実施形態では、第1のデータフォーマットは第1のシンボルの少なくとも1つの発生を含み、第1のデータフォーマットに関連する統計値を生成するステップは、第1のデータフォーマットでの第1のシンボルの密度を決定するステップを含む。 密度を決定するこのステップは、第1のデータフォーマットの第1のシンボルの発生に関連する割合を決定するステップを含むことができる。 このような実施形態では、統計値を用いて第1のデータフォーマットから第2のデータフォーマットへ情報を変換するステップは、第1のデータフォーマットから第2のデータフォーマットへ情報を変換して、情報の範囲内で第1のシンボルの密度を下げるようにするステップを含むものであってもよい。

    メモリシステムに格納するデータは、多くの異なるフォーマットを含むものであってもよい。 論理状態やシンボルの組み合わせなどのフォーマットによっては、他のフォーマットに比べて格納が効率的でない場合もあるのは、フォーマットによっては好ましくないケースが許容される場合があるからである。 1つの論理状態が極めて大きな1組のデータを形成するケースなどのような好ましくないケースは、この好ましくないケースの格納がパフォーマンス要件を満たそうとする場合、専用回路を必要としたり、格納を目的とするのにかなりの電力要件を要したりする場合がある。 さらに、好ましくないケースの格納パフォーマンス要件を満たすメモリシステムは、例えば比較的頻繁に生じるケースである好ましいケースを格納するステップに関連するパフォーマンスを妥協させる場合がある。 例えば、好ましくないケースから好ましいケースへの変換の場合などのように、データの格納前にデータのフォーマットを変換することにより、実際の好ましくないケースの格納を効果的に避けることも可能となる。 というのは、好ましくないケースが好ましいケースとして効果的に格納されるからである。 この結果、メモリシステムへのデータの格納全体をさらに効率的に行うことが可能となる。 さらに、メモリシステムに関連するコストの低減が可能となり、またメモリシステムの信頼性を改善することも可能となる。

    本発明の別の態様によれば、メモリシステムのメモリに第1のデータフォーマットで格納された情報を検索する方法には、第1のデータフォーマットの情報を分析するステップが含まれる。 第1のデータフォーマットの情報を分析するステップには、第1のデータフォーマットから第2のデータフォーマットへの情報の変換に適した少なくとも1つの適切な変換値を決定するステップが含まれる。 この方法には、この適切な変換値を用いて第1のデータフォーマットから第2のデータフォーマットに情報を変換するステップも含まれる。 第1のデータフォーマットの情報をメモリに格納する関連コストは、第2のデータフォーマットの情報をメモリに格納する関連コストより高いものとはならない。 一実施形態では、第1のデータフォーマットの情報を分析するステップには、第1のデータフォーマットの情報セクションを読み出して、適切な変換値を特定するステップが含まれる。 別の実施形態では、このメモリシステムはホストシステムと通信を行い、さらにこの方法には第2のデータフォーマットで変換済み情報をホストシステムへ出力するステップも含まれる。

    本発明のさらに別の態様によれば、データの変換と格納とを行う能力を有するシステムがホストシステムとメモリデバイスとを備える。 メモリデバイスは、ホストシステムとインタフェースを行って第1のデータフォーマットで構成された情報をホストシステムから取得し、さらに、メモリデバイスは、メモリ、統計値生成装置、および変換装置を備える。 統計値生成装置は、第1のデータフォーマットに関連する統計値を生成し、変換装置は、この統計値を用いて第1のデータフォーマットから第2のデータフォーマットに情報を変換する。 また、変換装置は、第2のデータフォーマットの情報をメモリに格納する。 一実施形態では、第2のデータフォーマットの情報は、第1のデータフォーマットの情報を格納するのと少なくとも同程度にメモリに格納し易い。

    一実施形態では、変換装置は、第1のデータフォーマットから第2のデータフォーマットへの情報変換に用いられる少なくとも1つの変換値を実質的に特定する識別子を情報の一部として第2のデータフォーマットで格納する。 このような実施形態では、ホストシステムは、情報処理装置と第2の変換装置とを備えるものであってもよい。 このような情報処理装置は、当該識別子を読み出し、第2の変換装置と一体に動作して、少なくとも1つの適切な変換値を特定し、第2のデータフォーマットから第1のデータフォーマットへの情報変換を行うものであってもよい。 この変換装置と第2の変換装置とは別個の変換装置であってもよいし、単一の変換装置の中へ組み込まれた変換装置であってもよいし、いくつかの論理回路を共有する変換装置であってもよいし、あるいは、同じ論理回路を備えるけれども、別様に機能するように構成された別個の変換装置であってもよいことを理解されたい。

    以下の詳細な説明を読み、図面の様々な図を検討するとき、本発明のこれら利点並びにその他の利点は明らかになる。

    本発明は、添付図面と関連して行う以下の説明を参照することにより最もよく理解することができる。

    例えば、好ましくないケースから好ましいケースへの変換を行う場合などのように、データの格納前にデータのフォーマット変換を行うことにより、実際の好ましくないケースの格納を効果的に避けることも可能である。 というのは、好ましくないケースが好ましいケースとして有効に格納されるからである。 この結果、メモリシステムにおけるデータの格納全体をさらに効率良く行うことが可能となる。 というのは、好ましくないケースの格納は、一般に好ましいケースの格納に比べて電力消費が多くないため、好ましくないケースの格納に関連するパフォーマンスペナルティを避けることができるからである。 さらに、好ましくないケースが好ましいケースとして格納されるメモリシステムでは、データの格納に関連する回路を複雑さの少ない回路にすることが可能となり、例えば設計時間が短くなったり、回路の製造も若干容易になる。 すなわち、コスト全体、あるいは、使用電力、パフォーマンスペナルティ、設計上の問題点および製造上の問題点のうちの少なくとも1つに関連するコスト係数を下げることが可能となる。 例えば、消費電力の関連コストを下げることができ、パフォーマンスペナルティやパフォーマンスコストを下げることができ、複雑な回路設計の関連コストを下げることができ、製造コストを下げることができる。

    不揮発性メモリデバイスなどのメモリデバイスにデータを格納すると、ホストシステムは不揮発性メモリデバイスへデータを出力する。 一実施形態では、不揮発性メモリデバイスによってデータが効果的に減らされ、データの範囲内で生じる相対的論理状態とシンボル密度とが決定され、次いで、相対的密度に基づいて適切な変換値が選択され、効率良く格納されたフォーマットにデータを変換するために当該変換値を用いることも可能となる。 シンボルは、1ビットのシンボル、またはほぼ任意のビット数を組み合わせたシンボルであってもよい。 効率的な格納が可能であると考えられるデータフォーマットは特定のシステム要件に対応して広範に変動することが可能であるが、効率的な格納が可能なデータフォーマットは、論理状態のほぼ均等な分布を含むフォーマットと、特定の論理状態の最大密度を最小化するフォーマットと、特定の論理状態の最小密度を最大化するフォーマットとを含むものであってもよい。

    図1aを最初に参照しながら、不揮発性メモリデバイス120、コンパクトフラッシュメモリカードなどを備えた一般的なホストシステムについて説明する。 ホスト、すなわちコンピュータシステム100は、一般にマイクロプロセッサ108、ランダムアクセスメモリ(RAM)112および入出力回路116による通信を可能にするシステムバス104を備える。 一般に、ホストシステム100は、表示装置およびネットワーク用装置などの別の構成要素を備えることができることを理解されたい。 これらの構成要素は例示用としては示されていない。

    一般に、ホストシステム100は、静止画像情報、音声情報、およびビデオ画像情報を含む情報などではあるが、これらのみに限定されるものではない情報をキャプチャする能力を有するものであってもよい。 このような情報はリアルタイムでキャプチャされるものであってもよいし、無線でホストシステム100へ送信されるものであってもよい。 ホストシステム100は、ほぼ任意のシステムであってもよいが、ホストシステム100は、通常、デジタルカメラ、ビデオカメラ、セルラ通信装置、オーディオプレイヤ、あるいは、ビデオプレイヤなどから成るシステムである。 しかし、ホストシステム100は、一般にデータや情報を格納し、データや情報を検索するほぼ任意のシステムであってもよいことを理解されたい。

    ホストシステム100は、専らデータをキャプチャするだけか、専らデータを検索するだけかのいずれかのシステムであってもよいことを理解されたい。 すなわち、ホストシステム100はデータの格納専用システムであってもよいし、あるいは、ホストシステム100はデータの読み出し専用システムであってもよい。 例えば、ホストシステム100は、データの書き込み、すなわちデータの格納専用として構成されたメモリ書き込み装置であってもよい。 代わりに、ホストシステム100は、一般にデータの読み出しや、検索は行うけれどもデータはキャプチャしないように構成されるMP3プレイヤのようなデバイスであってもよい。

    一実施形態では、不揮発性メモリデバイス120は、取り外し可能な不揮発性メモリデバイスであり、バス104とインタフェースを行って、情報を格納するように構成される。 オプションの入出力回路ブロック130は、不揮発性メモリデバイス120がバス104と間接的にインタフェースを行うことを許容するものであってもよい。 当業者であれば解るように、入出力回路ブロック130は、負荷が存在する場合、バス104に対する負荷を軽減するように機能する。 不揮発性メモリデバイス120は、不揮発性メモリ124とメモリ制御システム128とを備える。 一実施形態では、不揮発性メモリデバイス120は、単一のチップ、すなわちダイ上に実装可能である。 代わりに、不揮発性メモリデバイス120は、マルチチップモジュール上に実装可能であり、あるいは、不揮発性メモリデバイス120として一体に使用できる複数の単体の構成要素上に実装可能である。 不揮発性メモリデバイス120の一実施形態について、図1bと関連してさらに詳細に以下説明する。

    不揮発性メモリ124は、データを格納し、必要に応じてデータにアクセスし、読み出しを行うことができるように構成される。 不揮発性メモリ124に格納されたデータは適当な形で消去可能であるが、不揮発性メモリ124内には消去できないデータも若干存在することを理解されたい。 データの格納、データの読み出し、およびデータの消去の各プロセスは、一般にメモリ制御システム128によって制御される。 一実施形態では、メモリ制御システム128は、不揮発性メモリ124の動作を管理し、不揮発性メモリ124のセクションをほぼ等しく消耗させることにより、不揮発性メモリ124の耐用期間をほぼ最大化するように図るシステムである。

    メモリ制御システム128(コントローラ)として、不揮発性メモリデバイス120について一般的に説明した。 不揮発性メモリデバイス120には、不揮発性メモリ124と、メモリ制御システム128(コントローラ)と、種々の機能用の別個のチップが含まれる場合が多い。 例えば、PCカード、コンパクトフラッシュカード、マルチメディアカード、 セキュアデジタルカードなどであるが、これらのみに限定されるものではないカードを含む不揮発性メモリデバイスが、別個のチップ上に実装可能なコントローラを備えているのに対して、別の不揮発性メモリデバイスには別個のチップ上に実装されたコントローラは設けられていない。 当業者であれば解るように、不揮発性メモリデバイス120が別個のメモリチップ、並びにコントローラチップを備えていないある実施形態では、メモリ機能とコントローラ機能とを単一のチップ内へ組み込むことも可能である。

    図1bを参照しながら、本発明の一実施形態に基づく不揮発性メモリデバイス120についてさらに詳細に説明する。 前述したように、不揮発性メモリデバイス120には、不揮発性メモリ124とメモリ制御システム128とが設けられる。 メモリ124と制御システム128(コントローラ)とは、不揮発性メモリデバイス120の主要構成要素である。 メモリ124は、半導体基板上に形成されるメモリセルアレイであってもよい。 このメモリセルアレイで、2または3以上のレベルの電荷のうちの1つをメモリセルの個々の格納素子に格納することにより、1または2以上のビットデータが個々のメモリセルに格納される。 このようなシステム用として、不揮発性フラッシュ形の電気的に消去可能でプログラム可能なリードオンリメモリ(EEPROM)は、一般的なタイプのメモリの一例である。

    制御システム128は、ホストコンピュータや、メモリシステムを利用してデータの格納を行う別のシステムとつながるバス15を介して通信を行う。 バス15は、一般に図1aのバス104の一部である。 制御システム128は、メモリセルアレイ11を備えたメモリ124の動作の制御、すなわちメモリ124の動作時の、ホストからの出力データの書き込み、ホストからの要求データの読み出し、および、種々のハウスキーピング機能を行うことができる。 制御システム128は、一般に対応するソフトウェアメモリと種々の論理回路とを備えた汎用マイクロプロセッサを備える。 1または2以上の状態マシンが設けられる場合も多く、この状態マシンによって特定ルーチンのパフォーマンスの制御が行われる。

    メモリセルアレイ11は、一般にアドレス指定デコーダ17を介して制御システム128によりアドレス指定が行われる。 制御システム128がアドレス指定した1グループのメモリセルに対するデータのプログラミングや、当該1グループのメモリセルからのデータの読み出しや、当該1グループのメモリセルの消去を行うために、デコーダ17は、アレイ11のゲートラインとビットラインとに正確な電圧を印加する。 追加の回路19には、アドレス指定済みのセルグループの中へプログラムされたデータに対応して、アレイエレメントに対する印加電圧の制御を行うプログラミング用ドライバが含まれる。 回路19には、センス増幅器と、アドレス指定済みのメモリセルグループからのデータの読み出しに必要な別の回路も含まれる。 プログラムされてアレイ11の中へ入ったデータ、あるいはアレイ11から最近読み出されたデータは、通常、制御システム128内のバッファメモリ21に格納される。 制御システム128には、通常、コマンドと状態データなどを一時的に格納する種々のレジスタも含まれる。

    アレイ11は、0〜N個のメモリセルからなる多数のブロックに分画される。 フラッシュEEPROMシステムに対して通常行われているように、1ブロックが消去単位である。 すなわち、個々のブロックには、一括消去される最低数のメモリセルが含まれる。 各ブロックは、図1bに示すように、一般に複数のページに分画される。 1ページがプログラミングの単位である。 すなわち、基本プログラミング処理によって、データが1ページの最小セルの中へ書き込まれる。 1または2以上のデータセクタが、一般に各ページの範囲内に格納される。 図1bに示すように、1セクタには、ユーザデータとオーバーヘッドデータとが含まれる。 オーバーヘッドデータには、通常セクタのユーザデータから計算された誤り訂正符号(ECC)が含まれる。 データがプログラムされてアレイ11の中へ入ると、制御システム128の一部23はECCを計算し、さらに、データがアレイ11から読み出されるときにもECCのチェックを行う。 代わりに、ECCは関係するユーザデータとは異なるページや異なるブロックに格納される。

    ユーザデータのセクタは、磁気ディスク駆動装置におけるセクタサイズに対応して通常512バイトである。 オーバーヘッドデータは、一般に追加の28バイトである。 最も一般的には1セクタのデータが各ページに含まれるが、代わりに2または3以上のセクタが1ページを形成する場合もある。 多数のページ、すなわち8ページから、例えば512、1024ページまたはそれ以上のページまでの任意のページで1ブロックが形成される。 ブロック数が選択されて、メモリシステム用の所望のデータ記憶容量が設けられる。 アレイ11は、通常、数個のサブアレイ(図示せず)に分画され、そのサブアレイの各々に若干のブロックが含まれ、これらのブロックは、種々のメモリ操作の実行時の並行性レベルを高めるために互いに独立に動作する。 米国特許第5,890,192号にマルチサブアレイの利用例が記載され、この特許は、その全体が本願明細書において参照により援用されている。

    不揮発性メモリ124(不揮発性メモリ124内のセルなど)に格納されたデータは、図1aのバス104を介して不揮発性メモリデバイス120へ出力されるが、一般に好ましいケースと好ましくないケースとを含むことが考えられる。 好ましいケースには、比較的発生頻度が高いデータパターンか、(必要なオーバーヘッドや電力などが比較的少なく)格納や検索が比較的容易であると考えられるシンボル(状態などの)密度を含むデータパターンかのいずれかのデータパターンが含まれる場合がある。 一方、好ましくないケースには、比較的発生頻度が低いデータパターンか、格納や検索が比較的難しいと考えられるシンボル密度を含むデータパターンかのいずれかのデータパターンが含まれる場合がある。 記載された実施形態では、好ましいケースは、一般に不揮発性メモリ124での比較的容易なまたは効率のよい格納が行われるデータパターンあるいは比較的容易なまたは効率のよい不揮発性メモリ124からの検索が行われるデータパターンであるのに対して、好ましくないケースが、一般に不揮発性メモリ124での格納や、不揮発性メモリ124からの検索を行うのが比較的難しいか、効率的でないデータパターンである。

    不揮発性メモリ124にデータを格納する前にデータ変換を行うことによって、好ましくないケースを効果的に避けることができるようにする、すなわち、好ましくないケースをより好ましいケースとして変換したり、符号化したりすることによって、データの効率的な格納が可能となる。 ほぼすべてのデータパターンを比較的好ましいケースとして不揮発性メモリ124に格納できるように、データ変換やデータ操作を行うことにより比較的コストをかけずに格納処理を行うことが可能である。

    データの動的変換を行うことによって、データの格納前に、好ましくないケースになるかもしれないデータパターンをより好ましいケースに変換することが可能である。 不揮発性メモリ124に変換済みデータを格納することに加えて、データに対する変換が行われたことと、どのタイプの変換が行われたかということの双方を示す付加データの格納を行うことも可能である。 不揮発性メモリ124からデータを検索し、データの再変換を実行して最初の元の状態に変えるときに、このような情報を利用することができる。 すなわち、データの変換と格納とを行うとき、変換に関する情報も格納され、変換済みデータを受け取ってそのデータをその最初の元の状態に有効に戻すようにするとき、変換の逆変換が可能となるように図るものである。 一実施形態では、変換に関する情報は5ビットとして格納されるが、このビット数は広範に変更することも可能である。 一般に、変換に関する情報は、変換済みデータの前に付加したり、変換済みデータの後に付加したり、変換済みデータの中へ組み込んだり、変換済みデータの範囲内に散在させたりすることができる。 しかし、変換済みデータから独立にこのデータの格納を行ってもよいことを理解されたい。

    変換を実行して、データパターンが、或る一定割合の第1のシンボル未満の割合であること、あるいは、或る一定割合の第2のシンボルの割合以上であることを保証することができる。 例えば、任意の特定のシンボルの最大密度を最小化してもよいし、任意の特定のシンボルの最小密度を最大化することもできる。 実施形態によっては、変換を行って、異なるシンボルの或る最小値と或る最大値との割合が、変換済みデータパターンによって満たされることを有効に保証するものもある。 個々のシンボルの当該最大密度の最小化を行うなどの、シンボルの或る割合の達成を保証することにより、好ましくないケースを一般に避けることが可能となる。 当業者であれば解るように、シンボルは異なる状態の表示に関連づけることができる。

    一般に、データブロックへの格納前に、不揮発性メモリシステム内でデータ変換を行うようにしてもよい。 不揮発性メモリシステムへデータを出力する前に、ホスト上でデータ変換を実行してもよいが、一般にデータ変換は不揮発性メモリシステム内で行われる。 一実施形態では、データ変換が行われるのは、データがホストから読み出されて、不揮発性メモリシステムに関連するバッファの中へ入った後であるが、データがデータブロックに格納される前である。 図2aを参照しながら、本発明に準拠する変換装置を備えた不揮発性メモリシステムの一実施形態について説明する。 不揮発性メモリシステム202はホスト206と通信を行い、それによってホスト206はシステム202へデータ値を出力できるようになる。 ホスト206は、“生の”データ、すなわち未変換データなどのデータをバッファ210と、統計値生成装置214とへ出力する。 一実施形態では、図2bに示すように、不揮発性メモリシステム202'は、未変換データをバッファ210へ出力するが、統計値生成装置214へは出力しないホスト206と通信を行うことができる。 このような実施形態、すなわち図2bに示す実施形態では、バッファ210が統計値生成装置214へ未変換データを出力するように構成することができる。

    図2aに戻って参照すると、変換装置218によるデータ変換の前に、バッファ210がデータの一時的格納を行うように構成されているのに対して、統計値生成装置214は分析を行ったり、そうでない場合には、データを減らしたりして、変換装置218が使用する変換値の決定に用いる統計値を生成する。 一実施形態では、統計値生成装置214は、どれだけの数の個々のシンボルがデータの中に出現するかを決定するように構成される。 統計値生成装置214は、データストリーム全体と関連して個々のシンボルの発生割合全体を決定するように構成してもよい。

    統計値生成装置214が生成した統計値は、変換装置218によって用いられ、好ましいデータパターンとしてのデータの符号化が行われる。 一般に、変換装置218は、メモリセルまたはメモリブロックを備えることができる不揮発性メモリ222に符号化済みデータの格納も行う。 当業者であれば解るように、統計値生成装置214が生成した統計値を用いる変換装置218は、不揮発性メモリシステム202に関連する複数の変換装置のうちの唯一の変換装置であってもよい。 例えば、図2cを参照しながら以下説明するように、変換装置218が行う変換の前後のいずれかに追加の変換を行ってもよい。

    変換装置218は、前述したように不揮発性メモリ222から符号化済みデータを取得する際、符号化済みデータの復号化方法や再変換方法などを示すように構成されるビットを符号化済みデータへ追加することができる。 一実施形態では、符号化済みデータの中にビットを組み込んで符号化済みデータの復号化方法を示す代りに、例えば、符号化済みデータが格納されたセクションとは異なる不揮発性メモリ222のセクションと関連するルックアップテーブルなどに別々に識別子を格納するようにしてもよい。 こうして、格納情報の必要時や、符号化済みデータの復号化時に、このような識別子にアクセスすることが可能となる。

    好ましいデータパターンか、望ましいデータパターンかのいずれかのデータパターンでデータがすでに存在している場合、変換装置218がデータの符号化を行わない選択ができることを理解されたい。 言い換えれば、変換装置218の中を通るすべてのデータが必ずしも変換されるわけではない。 変換装置218がデータパターンを変換しない場合、データパターンの再変換方法を示すビットの必要性が実質的に存在しないので、変換装置218も、不揮発性メモリ222へのデータの格納前に、何らかのシンボルやビットをデータパターンの後に付加したり、前に付加したり、組み込んだり、散在させたりしなくてもよくなる。 代わりに、変換装置218は、データパターンが、変換装置218により処理されたけれども、まだ変換は行われていないことを示すビットをデータパターンの後ろに付加したり、前に付加したり、組み込んだり、あるいは、散在させてもよい。

    一般に、変換装置218がデータを処理するとすぐに、この処理済みデータは不揮発性メモリ222の中へ格納される。 以下さらに詳細に説明するように、一実施形態では、変換装置218の中を通る符号化済みデータをバッファ210の中へ読み出して、格納処理を行う前に、変換装置218によって少なくとももう1回の変換を変換済みデータに対して行い、状態密度などのシンボル密度をさらに変換することができる。 変換は同レベル化処理を含むものであってもよく、この同レベル化処理は、データパターン内での1または2以上のシンボルの発生頻度の低下か、データパターン内での1または2以上のシンボルの発生頻度の上昇かのいずれかを行うように構成することができる。 同レベル化処理は、データパターン内での1または2以上のシンボルの発生頻度の低下と上昇の双方を行えるように構成することも可能である。

    前述したように、不揮発性メモリシステムは、2以上の関連する変換装置を備えるものであってもよい。 図2cは、本発明の一実施形態に基づく複数の変換装置を備える不揮発性メモリシステムと通信を行うホストを示す図である。 不揮発性メモリシステム202”は、ホスト206がシステム202”へデータ値を出力できるようにホスト206と通信を行う。 ホスト206は、“生の”データ、すなわち未変換データなどのデータをオプションの第1の変換装置280へ出力し、この第1の変換装置280はほぼ任意の適切な変換アルゴリズムを用いてデータの変換を行うことができる。 適切な変換アルゴリズムは、所定の変換アルゴリズムや、乱数発生装置を用いる適切な変換値の特定に基づく変換や、回転方式の変換アルゴリズムを含むものであってもよいが、これらのみに限定されるものではない。 次いで、オプションの第1の変換装置280が処理するデータは、バッファ210へ、さらに、統計値生成装置214へ出力することができる。

    変換装置218によってデータ変換を行う前に、バッファ210は一時的にデータの格納を行うように構成される。 統計値生成装置214は、データを分析したり、そうでない場合にはデータを少なくしたりして、変換装置218が用いる変換値の決定に用いる統計値を生成する。 一実施形態では、統計値生成装置214は、どれだけの数の個々のシンボルが、データ、すなわちオプションの第1の変換装置280により処理されるデータの中に出現するかを決定するように構成される。 統計値生成装置214は、データストリーム全体と関連して個々のシンボルの発生割合全体を決定するように構成することも可能である。

    変換装置218は、統計値生成装置214が生成した統計値を用いて、好ましいデータパターンとしてデータを符号化する。 記載された実施形態では、変換装置218は、第2のオプションの変換装置282へ符号化済みデータを出力することも可能であり、この変換装置282は、統計値生成装置214が生成した統計値に基づかないほぼ任意の変換値を用いて符号化済みデータの変換を行うことができる。 すなわち、変換装置218は、従来の変換方法を用いて符号化したデータをさらに変換できる第2のオプションの変換装置282へ符号化済みデータを出力することが可能である。 第2のオプションの変換装置282は、メモリセルやメモリブロックを備えることができる不揮発性メモリ222に変換済みデータを格納することも可能である。 第1のオプションの変換装置280と第2のオプションの変換装置282のいずれか一方あるいは双方を不揮発性メモリシステム202”が備えていてもよいことを理解されたい。

    図3aは、本発明の一実施形態に基づいて、データの格納前にデータに対するマルチ変換の実行が可能な不揮発性メモリシステムと通信を行うホストを示す図である。 図2aの不揮発性メモリシステム202のように、不揮発性メモリシステム302は、バッファ310、変換装置318、統計値生成装置314、不揮発性メモリ322を備える。 不揮発性メモリ322は、一般にデータの格納が可能なブロックまたはセルを備える。 システム302は、ホスト306がデータ値、すなわち情報をシステム302の中へ出力できるようにホスト306、すなわちソースと通信を行う。

    ホスト306は、バッファ310、並びに統計値生成装置314へシンボルの形でデータを出力する。 ホスト306は統計値生成装置314へデータを出力するが、一実施形態では、図3bの不揮発性メモリシステム302'に示すように、代わりにバッファ310が統計値生成装置314へデータ出力を行うことも可能である。 図3aに戻ると、バッファ310は、一時的にデータを格納するように構成される。 例えば、バッファ310は、変換装置318がデータを変換する前に、データ用の中間領域として機能することができる。 統計値生成装置314は、変換装置318がデータ処理に用いる適切な変換値の特定に効果的に利用する統計情報を当該データから生成する。 当業者であれば解るように、生成される統計情報はほぼ任意の適切な情報であってもよく、データパターンの形の或るシンボル密度や状態密度を特定する統計値は特に有用なものとなることができる。

    統計値生成装置314がデータから生成した統計値は、変換装置318により用いられ、好ましいデータパターンとしてデータの符号化を行うことが可能となる。 場合によっては、たとえ好ましいデータパターンが単一の変換で達成可能であっても、不揮発性メモリ322の中へ効率良く格納できる好ましいデータパターンをマルチ変換を利用して形成することも可能である。 例えば、回路上の配慮、電力上の配慮、設計上の配慮、速度上の配慮のいずれかの組み合わせに起因して、マルチ変換のほうが単一の変換よりも望ましい場合がある。 したがって、変換装置318が変換したデータをバッファ310と統計値生成装置314とへ出力してもよい。 次いで、統計値生成装置314は、変換装置318が用いることができる統計値を変換済みデータに基づいて生成して、さらにデータの変換を行うようにすることができる。 変換装置318が処理したデータが最終的に符号化され、その結果、関連するデータパターンが好ましいケースを形成するようになったとき、不揮発性メモリ322に格納されたデータパターンの形成に用いた変換値を特定するビットと共に、データは不揮発性メモリ322の中へ格納される。 一実施形態では、変換済みデータの完全な復号化に必要なほぼすべての必要な情報を含む情報を最初の変換中に不揮発性メモリ322に格納することができる。 例えば、すべての変換に関連する情報は、実質的に最初の変換が行われる場合にのみ格納することができる。

    図4aは、本発明の一実施形態に基づく、ホストが出力したデータを不揮発性メモリの中へ効率良く格納する処理に関連するステップを例示する処理のフローチャートである。 データの格納プロセス400は、例えば、図2aの不揮発性メモリシステム202か、図3aの不揮発性メモリシステム302かのいずれかのような不揮発性メモリシステムなどがホストからデータを取得するステップ404から始まる。 ホストからデータが取得されるとすぐに、データはステップ408で分析される。 ホストから取得したデータを分析するステップは、データ内の特定のシンボルまたは状態の発生割合、すなわち密度に関する統計値を生成するステップを含むものであってもよいが、これのみに限定されるものではない。

    ステップ408でのデータ分析後、このデータはステップ412で変換される。 記載された実施形態では、ステップ408で行われた分析に基づいて当該データの効果的変換が行われる。 例えば、この分析によって、データ内の或るシンボルまたは状態が所望のものよりも高い密度、すなわち頻度を伴って生じたと判定された場合、選択した変換値を構成して、これらシンボル密度や状態密度を下げるようにするためにこの分析結果を利用することができる。 当該データがすでに好ましいケースのフォーマットで構成されている場合、必ずしもデータの変換が行われるとはかぎらない場合もあることを理解されたい。

    一般に、ステップ412でデータが変換されると、新規データパターンが生成される。 新規のデータパターンの復号化、あるいはそうでない場合には“未変換”を可能にして、ホストから取得した原データパターンを効果的に再現できるように、一連のビットを新規データパターンの後に付加したり、前に付加したり、あるいは、新規データパターンの中に組み込んだりしてもよい。 このような一連のビットを構成して、原データパターンの符号化に用いる変換値を指定したり、あるいは代わりに、新規データパターンを原データパターンに復号化するために使用できる適切な逆変換値を指定したりすることができる。

    データ変換が終了したかどうかに関する判定は、ステップ416で行われる。 すなわち、ステップ412で行われた変換が、効率良く格納できるデータパターンの作成に有効であったかどうかの判定が行われる。 変換が終了していない旨の判定が行われた場合、変換済みデータパターン内の少なくとも1つのシンボルまたは状態があまりに頻繁に生じているか、十分頻繁に生じていない旨の指示が通常行われる。 したがって、この変換済みデータパターンは、少なくとももう1回変換することができる。 したがって、処理の流れは、ステップ416からステップ420へ進み、変換済みデータに関連する統計値を生成できるように変換済みデータの分析が行われる。 次いで、ステップ424で、変換済みデータは、この分析の結果に基づいて変換される。 変換済みデータがステップ424で変換された後、処理の流れは、ステップ416へ戻り、変換が終了したかどうかが判定される。

    ステップ416での判定が、データが首尾よく好ましいケースに変換された旨の判定であった場合、指示はデータに対する追加の変換を行わない旨のものとなる。 したがって、ステップ428で、変換済みデータが不揮発性メモリに格納され、データを効率良く格納するプロセスが終了する。

    ホストが出力したデータを不揮発性メモリの中へ格納する別の適切な方法が、図4bに示されている。 図4bは、本発明の一実施形態に基づいて、ホストが出力したデータを不揮発性メモリの中へ効率良く格納する別の方法に関連するステップを例示する処理のフローチャートである。 データを格納するプロセス400'は、ホストからデータを取得するステップ404'から始まる。 データがホストから取得されるとすぐに、データはステップ408'で分析される。 前述したように、ホストから取得したデータを分析するステップには、データ内での特定のシンボルや状態の発生割合、すなわち密度に関する統計値を生成するステップを含むものであってもよい。

    ステップ408'でのデータ分析後、例えば、ステップ408'での分析結果を利用してステップ412'でデータ変換が行われる。 ステップ412'でデータ変換が行われると、通常新規のデータパターンが生成される。 新規のデータパターンの復号化や、そうでない場合には“未変換”を可能にしたりすることによって、ホストから取得した原データパターンを効果的に再現できるようにするために、一連のビットを新規のデータパターンの中へ組み込む(例えば、新規のデータパターンの後に付加する)ことができる。 このような後に付加した一連のビットを構成して、原データパターンの符号化に使用した変換値を指定したり、新規のデータパターンの原データパターンへの復号化に使用できる適切な逆変換値を指定したりすることができる。

    ステップ412'で行われた変換が、効率良く格納することができるデータパターンの作成に有効であったかどうかがステップ416'で判定される。 この判定が、変換が終了していない旨の判定であった場合、変換済みデータパターン内の少なくとも1つのシンボルまたは状態があまりに頻繁に生じているか、十分頻繁に生じていない旨の指示が通常行われる。 したがって、この変換済みデータパターンは少なくとももう1回変換を行うことができる。 したがって、処理の流れは、ステッププ416'からステップ424'へ進み、変換済みデータが変換される。 変換済みデータがステップ424'で変換された後、処理の流れは、ステップ416'へ戻り、変換が終了したかどうかの判定が行われる。 ステップ416'での判定が、データが首尾よく好ましいケースに変換された旨のものであった場合、指示はデータに対する追加の変換を行わない旨のものとなる。 したがって、ステップ428'で、変換済みデータが不揮発性メモリに格納され、データの効率の良い格納プロセスは終了する。

    比較的好ましいケースとして符号化され、次いで、不揮発性メモリに格納されたデータは効率良く格納することができる。 例えば、データの格納時間は比較的短く、データの格納用消費電力は比較的低いものとなる。 さらに詳しく言えば、符号化済みデータの格納時間と、符号化済みデータの格納電力要件は、好ましくないケースを比較的好ましいケースに変換する場合と同じように、格納された符号化済みデータのほぼすべてのケースについて一貫した状態のままにであってもよい。 さらに、好ましくないケースが実際にそれ以上格納されなくなる。 すなわち、好ましくないケースは、好ましいケースに変換されたデータとして格納され、次いで、好ましくないケースの格納に必要な回路は実際上実質的に不要となる。

    ホストからのコマンドに従って不揮発性メモリから符号化済みデータが取得されると、符号化済みデータは、ホストへ出力される前に、一般に復号化される。 このような復号化は、一般に不揮発性メモリに関連する不揮発性メモリシステムの範囲内で行われる。 図5を参照しながら、符号化済みデータの復号化を行う変換装置を備えた不揮発性メモリシステムの一実施形態を本発明に基づいて説明する。 ホスト506は、不揮発性メモリシステム502と通信を行って、ホスト506とシステム502との間でデータや情報の交換ができるようにする。 ホスト506が、システム502に関連する不揮発性メモリ522からデータの検索を試みるとき、変換装置が処理したデータ(図3の変換装置318が符号化したデータなど)が変換装置518の中へ読み込まれ、次いで、変換情報プロセッサ515へ出力される。

    変換情報プロセッサ515は、一般に処理済みデータから情報を読み出して、変換装置518が行う適切な変換を決定して当該処理済みデータの復号化を行う。 前述したように、変換済みデータが格納されると、データ変換にどの変換値を用いたかを示したり、データ変換に用いた変換を逆に行うためにどの逆変換値を使用できるかを示したりする情報と共に変換済みデータの格納が行われる。 したがって、変換情報プロセッサ515は、符号化済みデータ(処理済みデータパターンの前に付加されたデータなど)と共に格納された情報を検討し、変換装置518が符号化済みデータの復号化に用いる適切な逆変換値を有効に特定する。 例えば、符号化済みデータが復号化されると、符号化済みデータは元の最初の状態へ戻され、次いで、復号化データはシステム502のバッファ510へ出力される。 次いで、バッファ510は、ホスト506へ復号化データを出力する。

    適切な逆変換値を特定する情報が処理済みデータパターンの前に付加される実施形態などのような一実施形態では、バッファ510を実質的に省くことができる。 適切な逆変換値を特定する情報が処理済みデータパターンの前に付加されると、処理済みデータパターンを変換装置518の中へ読み出す前に、当該適切な逆変換値が有効に認知される。 この結果、適切な逆変換値を特定する情報が処理済みデータの前に付加されているため、処理済みデータを読み出す前に変換装置518は効果的に逆変換を行う方法を知ることになる。 したがって、変換装置518へ処理済みデータを出力する前に処理済みデータを最初にバッファする必要性は実際上不要となる。 というのは、処理済みデータが不揮発性メモリ522から読み出される前に、前に付加された情報から適切な逆変換値を特定できるからである。

    別の実施形態では、変換装置は復号化データを直接ホストへ出力することができる。 図6はホストと、本発明の一実施形態に基づいてホストへ直接復号化データを出力する変換装置を備えた不揮発性メモリシステムとを示す図である。 ホスト606が不揮発性メモリシステム602からの情報を要求すると、システム602の不揮発性メモリ622は、システム602のバッファ610と変換情報プロセッサ615とへ処理済み(例えば、符号化処理済み)データを出力する。 変換情報プロセッサ615は、不揮発性メモリ622から受け取った処理済みデータに関連するシンボルを読み出し、このシンボルによって、処理済みデータの処理にどの変換値を用いたか、あるいは、この処理済みデータの元の最初のフォーマットへ処理済みデータを戻す、すなわち復号化するのにどの逆変換値が適切であるかのいずれかが示される。

    変換情報プロセッサ615は、変換装置618へ情報を出力し、バッファ610を介して不揮発性メモリ622から処理済みデータを受け取った変換装置618が処理済みデータに関連する任意の変換を逆に行うことができるようにする。 すなわち、変換情報プロセッサ615が出力する情報を利用して、変換装置618は、不揮発性メモリ622に格納された符号化済みデータの復号化を行う。 変換装置618が符号化済みデータを復号化するとすぐに、復号化データはホスト606へ出力される。

    図3と関連して前述したように、不揮発性メモリに関連する格納要件を満たすために、データに対してマルチ変換を実行して、好ましいケースとしてデータの符号化を図ることができる。 すなわち、容認可能なフォーマットと考えることができる(例えば、最大許容未満の割合のデータに関連する格納素子、すなわちセルが任意の単一の論理状態で存在することを有効に保証する)フォーマットでデータ変換を行うためにデータは2以上の変換値をとることもできる。 マルチ変換を利用してデータ変換を行うとき、一般にマルチ逆変換を利用して変換済みデータの復号化が行われ、そうでない場合には、変換済みデータはデータの元の最初のフォーマット、すなわち未変換のフォーマットへ戻される。

    図7は、本発明の一実施形態に基づく、ホストと、不揮発性メモリシステムとを示す図であり、不揮発性メモリシステムには、復号化データがホストへ出力される前に、マルチ反復を利用してデータの復号化を行うことができる変換装置が設けられている。 不揮発性メモリシステム702に格納された情報を求めるホスト706からの要求に応じて、システム702の不揮発性メモリ722は符号化済みデータなどのデータをシステム702の変換装置718と変換情報プロセッサ715とへ出力する。 変換情報プロセッサ715は、符号化済み受信データに関連するビットを不揮発性メモリ722から読み出し、このビットによって、符号化済みデータの処理にどの変換値を用いたか、あるいは、符号化済みデータをその元の最初のフォーマットに戻す、すなわち復号化するのにどの逆変換値が適切であるかのいずれかが示される。 記載された実施形態では、関連する変換値または逆変換値を示すシンボルは、変換が行われた順序、あるいは、逆変換が行われる順序を示す情報を含むものであってもよい。 さらに、このシンボルは行われた複数の変換に関する情報を含むものであってもよい。

    変換情報プロセッサ715は、変換装置718が符号化済みデータに対する第1の逆変換を実行できるように変換装置718へ情報を出力する。 変換情報プロセッサ715が変換装置718へ出力した情報によって、変換装置718は、符号化済みデータに対して行う適切な逆変換の決定が可能となる。 変換装置718は、符号化済みデータに対する第1の逆変換を行うとすぐに、少なくとも部分的に復号化されたデータをバッファ710へ出力する。

    この部分的に復号化されたデータに対して追加の変換を行う場合、バッファ710は、変換装置718へ、さらにオプションとして変換情報プロセッサ715へ、この部分的に復号化されたデータの出力を行う。 不揮発性メモリ722に格納された符号化済みデータが完全に復号化されたとき、バッファ710は、ホスト706へ復号化データを出力する。 データ符号化のために行われた変換を示すシンボルや、符号化済みデータの復号化用として機能できる逆変換を示すシンボルは、一般に変換装置718がホスト706へ出力したデータパターンから取り除くことも可能であることを理解されたい。

    一般に、符号化済みデータの復号化に関連するステップは、広範に変更することができる。 図8を参照して、本発明の一実施形態に基づいて符号化済みデータを復号化する1つの方法について説明する。 プロセス800は、ステップ804から始まり、このステップで、メモリシステム全体の一部である不揮発性メモリなどの不揮発性メモリからデータが取得される。 詳細には、一般にホストから符号化済みデータが受け取られると、この符号化済みデータは不揮発性メモリから変換装置やバッファの中へ読み出される。

    データは、不揮発性メモリ804から取得されるとすぐに、ステップ808で変換情報に基づいて変換される。 記載された実施形態では、不揮発性メモリに格納されたデータに対する逆変換が行われる。 前述したように、データに対して行われるこの逆変換は、不揮発性メモリに格納されたデータと共に格納されたシンボルの読み出しによって決定することができる。

    データに対する変換が終了したかどうかの判定がステップ812で行われる。 すなわち、ステップ804で取得したデータがその元の最初のフォーマット、すなわち格納用として変換される前のデータフォーマットに再び変換されたかどうかが判定される。 データに対する変換の終了が判定された場合、追加の逆変換がデータを完全に復号化する必要がない旨の指示が行われる。 言い換えれば、データがすでに復号化されている旨の指示が行われる。 したがって、ステップ816で復号化データがホストへ出力され、データの復号化プロセスは終了する。

    代わりに、ステップ812で、データに対する変換が終了していない旨の判定が行われた場合、言外の意味としてデータがその元の最初のフォーマットへ戻される前に、少なくとも1回の追加の逆変換がデータに対して行われるということが挙げられる。 したがって、処理の流れは、ステップ812からステップ820へ移り、このステップで、すでに一部変換済みのデータ、すなわちすでに部分的に復号化されたデータが、このデータと共に格納された変換情報に基づいて再び変換される。 一部変換済みデータに対する変換が終了するとすぐに、処理の流れはステップ812へ戻り、このステップで、ステップ804で取得したデータに対する変換が終了したかどうかに関する判定が行われる。

    前述したように、変換装置は、入力データの出力データバージョンを作成するためにデータ入力の符号化などの処理を行う。 変換装置は、一般に任意の適切な変換または変換アルゴリズムを用いて入力データの処理を行うことができる。 図9aは、本発明の一実施形態に基づいてデータの符号化を行う変換装置を示す図である。 図2aの変換装置218または図3aの変換装置318の表示である場合もある変換装置918はホストからの入力930を受け入れるように構成される。 変換装置918は、入力930を処理し、一般に入力930の表示である出力934を生成する。 一実施形態では、入力930は、格納するのに比較的効率的でないと考えられる第1のデータフォーマットで構成してもよい。 入力930が第1のフォーマットで構成されているとき、変換装置918は、出力934が、入力930の変換バージョンや符号化バージョンにとって効果的になるように入力930の処理を行うことができる。 前述したように、出力934は、入力930の符号化済み表示であることに加えて、通常、出力934の生成に使用した変換値を示す情報も含むものである。 入力930の変換済みバージョンを含む出力934内のセルの後に有効に付加される2つのセルや2つの追加のシンボルなどの、セルや追加のシンボルにこのような情報を格納することができる。

    変換装置918は、一般にほぼ任意のシンボルの密度を下げたり、上げたりするような同レベル化を行うことができる。 例えば、変換装置918は、シンボルや論理状態の、最高密度との同レベル化を行って、当該シンボルの密度の低下を図ることができる。 一実施形態では、最低密度を持つシンボルを用いて最高密度を持つシンボルの同レベル化を行うことができる。 すなわち、シンボル密度を上げることにより、未符号化フォーマットの最低密度を持つシンボルの、最高密度との同レベル化の達成が可能となる。 変換済み出力が不揮発性メモリなどに格納される前に、マルチ変換や同レベル化処理を利用して、個々のシンボルの所望の密度を達成することが可能となる。 システムによっては、ほぼ50%以上の時間シンボルが出現しなくなるように論理状態を同レベル化した結果、およそ5%のパフォーマンス・スピードの向上が得られるものもあることが観察された。

    同レベル化のアルゴリズムの一例が、図9bに示されている。 詳細には、図9bは、本発明の一実施形態に基づく、図9aの符号化用変換器918に関連する変換を示す図である。 図に示すように、入力930'内で最も密度が高いシンボルにシンボル“D”とラベルがつけられ、これに対して、入力930'内で最も密度が低いシンボルには“S”とラベルがつけられている。 記載された実施形態では、最も密度が高いシンボルと、最も密度が低いシンボルとは、入力930'に潜在的に関連する16個のシンボルのうちの2つのシンボルである。 説明の容易さを図るために、主にシンボル“D”と“S”のみを示している。 しかし、入力930'に関連するデータストリームを通じてほぼ任意の場所で別のシンボルが生じる場合もあることを理解されたい。 言い換えれば、別のシンボルが、入力930'に関連するデータストリームに先行するか、入力930'に関連するデータストリームの範囲内に散在している場合もある。 例示を目的として、シンボル“F”とシンボル“G”の各々の単一の発生が、入力930'に関連するデータストリームの中に示されているが、シンボル“F”と“G”とは入力930'の中にシンボル“S”よりも頻繁に出現する。 記載された実施形態では、シンボル“F”と“G”の使用に関わる同レベル化は行われていない。 したがって、シンボル“F”と“G”の発生は、変換装置918'によって実際上変換されない。

    入力930'が、順序化されたデータストリーム、すなわち符号化用変換器918'へ逐次出力されるデータストリームであるのに対して、順序化されていないフォーマットでこのデータストリームの出力を行うことも可能である。 順序化されないフォーマットでデータストリームの出力が行われた場合、符号化用変換器918'に関連する処理を変更して順序化されていないデータストリームの変換を行うことができる。

    入力930'は、シンボル“S”を用いてシンボル“D”を同レベル化するように構成される符号化用変換器918'へ出力される。 すなわち、符号化用変換器918'は、シンボル“S”を利用することによってシンボル“D”の密度を下げる変換アルゴリズムを実行する。 記載された実施形態では、符号化用変換器918'は、シンボル“D”かシンボル“S”のいずれかの第1の発生が同じ状態のままとなることを許容するものである。 詳細には、シンボル“D”とシンボル“S”との間で、いずれのシンボルが入力930'の範囲内で最初に発生した場合でも、その発生シンボルが同じシンボルに符号化されることになる。 すべてのシンボル“S”に後続するすべての発生シンボルは、直近の前回符号化されたシンボル“D”あるいは“S”として同じシンボルに符号化される。 例えば、直近の前回のシンボルがシンボル“S”として符号化された場合、現在のシンボル“S”はシンボル“S”として符号化され、次いで、直近の前回符号化されたシンボルがシンボル“D”として符号化された場合、現在のシンボル“S”はシンボル“D”として符号化されることになる。 すべての入力シンボル“D”に後続するすべてのケースは、直近の前回符号化されたシンボルとして反対の態様で符号化される。 例えば、直近の前回のシンボルがシンボル“S”として符号化された場合、現在のシンボル“D”はシンボル“D”として符号化され、次いで、直近の前回のシンボルがシンボル“D”として符号化された場合、現在のシンボル“D”はシンボル“S”として符号化される。

    図に示すように、出力934'は、より少数のシンボル“D”の発生を含む入力930'の同レベル化を表示したものである。 言い換えれば、シンボル“D”の密度は、出力934'で下がることになる。 シンボル“S”の密度が上昇したものとして示されているのに対して、別のシンボルを用いてシンボル“S”を同レベル化することにより、シンボル“S”の密度が下げられる場合もあることを理解されたい。 すなわち、出力934'での所望の密度よりも高い密度を有するものとしてシンボル“S”を特定し、新たな入力として出力934'を符号化用変換器918'へ出力することにより、低い密度、すなわち疎なシンボルを持つ異なるシンボルを用いて第2の変換を行う際に同レベル化を行うことが可能となる。

    16個の状態またはシンボルが生じる或る実施形態の場合、入力918'内の密度が最も高いシンボルと密度が最も低いシンボルとを有効に同レベル化を行うことを利用することが可能なおよそ240個までの変換アルゴリズムの存在が考えられる。 このような実施形態では、変換は単一の対のシンボルを同レベル化するステップを含むことが可能であり、そのようにした場合、入力930'に関連する密度が最も低いシンボルが、変換後、およそ6.67%も発生する場合がある。 変換装置918'を用いてシンボルの同レベル化を行い、変換済みデータパターン内でほぼ50%以上の時間シンボルが発生しなくなるようにすることができる。 例えば、図に示すように、シンボル“D”とシンボル“S”との同レベル化を行って、シンボル“D”とシンボル“S”のいずれも出力934'内でほぼ50%以上の時間発生しないようにすることができる。

    変換装置918'を用いて、マルチ変換を順次行うことなどによりデータの順次符号化を行うことも可能である。 データの順次符号化を行うとき、変換装置918'は密度が最も高い状態またはシンボルと、密度が最も低い状態またはシンボルとの同レベル化を行うことができる。 符号化済みの組のデータ934'が形成されるとすぐに、変換装置918'は、新たな最も高い密度のシンボルまたは符号化済みデータ内の最も高い密度のシンボルと、新たな最も疎なシンボルまたは符号化済みデータ内の最も疎なシンボルとの同レベル化を行うことができる。 2回のシーケンシャルな同レベル化処理を行った後、16個のシンボルを持つ或る実施形態では、変換終了時にほぼ50%以上の時間シンボルが発生しなくなる。 一実施形態では、2回のシリアルな同レベル化処理が行われた後、変換装置918'は新たな最も高い密度のシンボルと新たな最も疎なシンボル(すなわち、2回の符号化済みデータでの最も高い密度のシンボルと最も疎なシンボル)との同レベル化を行うことができる。 このような第3の変換の結果、変換終了時に25%以上の時間シンボルが発生しなくなる。

    変換装置918'は少なくとも2回の高い密度のシンボルの同レベル化をほぼ同時に、すなわち並行して行うように構成することも可能である。 変換装置918'の中を通り抜けるパスの最中に、変換装置918'は、最も高い密度のシンボルと、最も疎なシンボルとの同レベル化、並びに、2番目に最も高い密度のシンボルと、2番目に最も疎なシンボルとの同レベル化を同時に行うように構成することができる。 例えば、前述したように、密度が最も高いシンボルと密度が最も低いシンボルとの同レベル化が行われるとき、符号化済みデータ、すなわち出力934'ではほぼ50%以上の時間シンボルが発生しなくなる。 しかし、変換装置918'の中を通り抜ける第2のパスの最中に符号化済みデータ内の2番目に最も高い密度のシンボルと、符号化済みデータ内の2番目に最も疎なシンボルとの同レベル化を行いながら、変換装置918'がデータを順次符号化して、符号化済みデータ内の最も高い密度のシンボルと、符号化済みデータ内での最も疎なシンボルとの同レベル化を行うようにするとき、2倍の符号化済みデータ内でおよそ25%以上の時間シンボルが発生しなくなる。

    反復変換に関連する追加の複雑さが一組のデータに付加される結果、一般に、前述した例により示されているように、シンボルの最大密度のさらなる低下がもたらされる。 しかし、前述したように、シンボルの最大密度を下げるプロセスに関連する複雑さは、上昇したレベルの同レベル化に関連する利点を効果的に妥協させることができる程度まで格納処理のパフォーマンス全体に影響を与える場合もある。 この複雑さは、マルチ変換の終了に必要な追加の計算時間、追加の回路、あるいは追加の電力に関連する場合もある。 したがって、同レベル化や変換処理に関連する複雑さと格納上の利点との間でトレードオフが行われる可能性もある。 さらに、並列変換、すなわちほぼ同時の変換を行うことを可能にするのに必要な回路などの論理回路のコストと、マルチ変換を順次行うのに必要な時間との間でのトレードオフとが行われる場合もある。

    データの符号化や同レベル化が行われるとすぐに、格納された符号化済みデータの検索要求が行われた場合、符号化済みデータは、一般に入力信号になって、復号化用変換器の中へ入ることになる。 図10aは、本発明の一実施形態に基づいてデータを復号化する変換装置を示す図である。 復号化用変換器1018は、図9aの符号化用変換器918のような符号化用変換器などによる符号化や同レベル化などの処理が行われた入力信号1030を一般に受け入れる。 一実施形態では、復号化用変換器1018と図9aの符号化用変換器918は、不揮発性メモリシステムに関連する変換装置全体の一部であってもよい。 復号化用変換器1018は、入力1030を復号化して出力1034を生成する。 一般に、出力1034は、図9aの入力930などの符号化用変換器へ出力される入力信号と同じフォーマットで構成される。

    図10bを参照しながら、図9bの符号化用変換器918'により行われた符号化の効果的な逆変換の実行に適した復号化用変換器について本発明の一実施形態に基づいて説明する。 図9bの符号化用変換器918'によって符号化された入力1030'は、復号化用変換器1018'へ出力される。 復号化用変換器1018'は、入力1030'の中へ散在している2つのシンボルなどの入力1030'内のシンボルを読み出すことにより取得した情報を利用するように構成され、これらのシンボルは、入力1030'の作成に用いる変換値や、代わりに、出力1034'の作成に用いる適切な逆変換値を特定して、入力1030'の復号化を図るものである。

    記載された実施形態では、復号化用変換器1018は、シンボル“D”あるいはシンボル“S”の第1の発生のいずれも変更しない。 復号化用変換器1018'は、シンボル“S”の現在の発生よりも前に、シンボル“S”のほうが、入力1030内のシンボル“D”の発生よりも最近発生した場合、シンボル“S”のほぼすべての発生をシンボル“S”として復号化するように構成される。 すなわち、入力1030'内の直近の前回のシンボルがシンボル“S”であれば、シンボル“S”の現在の発生はシンボル“S”として復号化される。 そうでない場合には、シンボル“S”の現在の発生は、シンボル“S”の現在の発生が、シンボル“S”の第1の発生であり、かつ、シンボル“S”の現在の発生がシンボル“S”として復号化されるシンボル“D”の第1の発生の前に生じない限り、シンボル“D”として復号化される。

    また、復号化用変換器1018'は、シンボル“D”の現在の発生よりも前に、シンボル“D”のほうがシンボル“S”よりも最近発生した場合、現在の発生をシンボル“S”として復号化し、さらに、シンボル“D”の現在の発生の前に、シンボル“S”が最近発生した場合、現在の発生をシンボル“D”として復号化するようにも構成される。 入力1030'内のシンボル“S”のいずれかの発生前にシンボル“D”の第1の発生が生じた場合、この第1の発生シンボルはシンボル“D”として復号化される。

    特定のシンボルまたは状態の最大密度を最小化するようにデータ変換を行うことが可能であるのに対して、個々のシンボルまたは状態が最小密度を持つことを有効に保証するようにデータ変換を行うことも可能である。 例えば、シンボルが“1”か“0”のいずれかである2進システムでは、図9bの変換装置918'を用いてデータを変換し、変換済みデータ内のシンボル“1”の割合と、変換済みデータの内のシンボル“0”の割合とがそれぞれ最小値の33%よりも大きくなるようにすることも可能である。

    本発明のわずか2、3の実施形態のみについて説明したにすぎないが、本発明の精神または範囲から逸脱することなく、多くの別の特定の形態でも本発明の具現化が可能であることを理解されたい。 例えば、ホストシステムと通信を行うメモリデバイス上で行われるものとして、データの符号化と復号化処理について一般的に説明したが、符号化処理と復号化処理のいずれかの処理あるいは双方の処理をホストシステム上で代わりに行ってもよい。 言い換えれば、ホストシステムは、格納対象データに関連する統計値を生成し、この統計値に基づいて異なるフォーマットにデータを変換し、その後、メモリデバイス上にこの変換済みデータを格納させるように構成してもよい。 代わりに、ホストシステムは、メモリデバイスから符号化済みデータを読み出し、データ復号化用の適切な変換値を決定し、次いで、データの復号化を行うように構成されるものであってもよい。

    本発明は、一般に任意の適切なメモリデバイスと関連して実現することも可能である。 前述したような適切なメモリデバイスは、PCカード、コンパクトフラッシュカード、マルチメディアカード、およびセキュアデジタルカードを備えるものであってもよい。 別の適切なメモリデバイスは、スマートメディアカードとメモリステッィクカードとを備えるものであってもよいが、これらのみに限定されるものではない。

    一実施形態では、ホストは、データパターンと統計値とをメモリデバイスへ出力する前に、データパターン用の統計値の生成を行うことが可能である。 ホストが統計値を生成すると、メモリデバイスは、いずれの統計値もまったく生成する必要なく、データパターンを好ましいフォーマットに変換することが可能となる。 すなわち、ホストがデータパターンに関連する統計値を生成するとき、メモリデバイスは、単にこれら統計値を用いてデータパターンを変換することができる。

    前述したように、所定のデータセットまたはパターンに対してマルチ変換を実行して、データセットを格納用の適切なフォーマットに変換することができる。 一実施形態では、マルチ変換の個々の変換の終了後、統計値生成装置による変換や中間変換についての検討や処理を行って、効率良く格納可能なフォーマットを形成するために追加の変換の必要があるかどうかを判定することができる。

    データの復号化を行う変換装置とは別個のものとして、データの符号化を行う変換装置について説明したが、単一の変換装置によってデータの符号化と復号化の双方を行うことも可能であることを理解されたい。 すなわち、不揮発性メモリシステムは、データの符号化と復号化の双方の機能を備える単一の変換装置を備えることも可能である。 同様に、統計値生成装置と変換情報プロセッサとは、変換対象データに関連する統計値の決定と、変換済みデータを変換した方法の有効な決定との双方の決定を行うように構成された単一のプロセッサの一部であってもよい。

    ほぼ任意の不揮発性メモリシステムに関連する変換済みデータに対してマルチ逆変換を実行してもよい。 言い換えれば、データが不揮発性メモリから読み出されて、変換装置の中へ、次いで、バッファの中へ入るシステムにおけるデータ変換時の利用に適したものとしてマルチ逆変換について説明したが、変換装置が処理する前に変換済みデータをバッファへ出力するシステムにおいてマルチ逆変換を行うことも可能である。

    データの効率的格納を可能にするものとして、より好ましくないデータパターンやコーナーケースから、好ましいデータパターンや一般的なデータパターンを効果的に作成するデータ変換について説明したが、種々の別の目的のために、データ変換を行い、好ましいデータパターンの効果的な作成を行うことも可能であることを理解されたい。 すなわち、ほぼ任意の適切な目的のために、データセット内に出現するシンボルの同レベル化を実行することも可能である。 例えば、1つのサイトから別のサイトへ送信するデータパターン内の状態を同レベル化することによって、さらに効率の良い送信処理と、さらに効率の良い受信処理とが可能となる場合もある。 このような送信処理プロセスは、ネットワーク内での有線送信や、ネットワーク内での無線送信を含むものであってもよい。

    以上、1つの状態を別の状態を用いて同レベル化を行うときの利用に適したものとして図9bなどを参照しながら変換について説明した。 前述したように、2以上の状態を減らす場合、マルチ変換の利用が可能である。 一般に、このような変換装置の中を通る単一パスを構成して、2以上の状態の減少を図ることも可能であることを理解されたい。 例えば、このような変換装置の中を通る単一パスで、2または3以上のシンボルまたは状態対の同レベル化を行うことも可能である。 このような変換装置の中を通る1回のパスで2以上の状態対の同レベル化を行うとき、所定の変換またはデータに対する同レベル化を終了するのに、変換装置の中を通るより少数のパス全体を必要とする場合もある。

    一般に、データの符号化と復号化とに関連するステップは、広範に変更することが可能である。 本発明の精神または範囲から逸脱することなく、ステップの追加、除去、変更、最追加を行うことも可能である。 例えば、前述したように、生のデータ、すなわち未変換データの分析時に、データ変換全体の終了に用いる変換値が決定される実施形態の場合、符号化処理または変換処理時の変換済みデータを分析するステップを実質的に省くことも可能である。 代わりに、変換済みデータを分析するステップは、変換全体が終了したかどうかの判定に先行することも可能である。

    データセットの変換済みバージョン内での任意の1つの状態の最大密度を実質的に最小化する際の利用や、データセットの変換済みバージョン内での任意の1つの状態の最小密度を実質的に最大化する際の利用に適しているようなデータセット内での状態の変換や同レベル化について説明した。 状態の同レベル化を実行して、別の状態の最小密度を実質的に最大化しながら、特定の状態の最大密度を実質的に最小化することも可能である。 状態の同レベル化を実行して、データセットの変換済みバージョンにおけるすべての状態密度が所定の範囲内に属することが有効に保証されることも理解されたい。 言い換えれば、状態の同レベル化を行って、データセットの変換済みバージョンの範囲内で、上のしきい値を超える密度を持つ状態が存在せず、かつ、下のしきい値より低い密度を持つ状態が存在しないようにすることが可能となる。 異なる状態に対する上のしきい値はほぼ同じであってもよく、また、異なる状態に対する下のしきい値もほぼ同じであってもよいが、異なる状態に対するしきい値は異なる値にすることも可能である。

    データパターンの範囲内で特定の状態の割合を決定するという観点から、データパターンまたはデータセットの範囲内の特定の状態の密度の決定について説明した。 データパターンの長さがほぼ一定である実施形態などの一実施形態では、特定の状態の密度を決定するステップが、特定の状態の発生回数を実質的にカウントするだけのステップしか含まない場合もある。 したがって、特定の状態の密度を決定するステップは、一般に個々の状態の発生に伴って生じるカウントや割合などの数値との関連づけを含むものであってもよい。

    データセットの変換済みバージョンの範囲内での状態は、データセットに対して行う変換量や同レベル化量を、一般に選択して、所望の最大密度と最小密度とを満たすことができるようにすることも可能であるのに対して、本発明の精神または範囲から逸脱することなく、別の判断基準に基づいて当該変換量や同レベル化量の選択を行うことも可能である。 例えば、同レベル化量を選択して、或る一定量の計算上のオーバーヘッドを超えないようにしてもよい。 同レベル化量を選択して、或る一定量の計算上のオーバーヘッドを超えないようにすることによって、データの変換と格納とに関連するシステム全体のパフォーマンスに多大な影響を与えることなく、データの格納効率の向上を図ることが可能となる。 計算上のオーバーヘッドが或る特定のレベルを超えない旨を指定する実施形態は、特定の或る状態の最大密度のほうが望ましい密度よりもわずかに高くなる場合があるなどの、変換処理をわずかに妥協させる場合もあるが、この妥協は、システム全体のパフォーマンスが或る一定レベルでの状態のままであれば、容認できるものと考えることができる。 したがって、本願の例は、本発明を例示するものであり、本発明を限定するものではないと考えるべきである。 さらに、本発明は、本願明細書に示された細部に限定されるものではなく、添付の特許請求の範囲内での変更が可能である。

    本発明の一実施形態に基づく不揮発性メモリデバイスを備えた一般的ホストシステムを示す図である。

    本発明の一実施形態に基づく図1aの不揮発性メモリデバイス120などの不揮発性メモリデバイスを示す図である。

    本発明の一実施形態に基づく変換装置を備えた第1の不揮発性メモリシステムを示す図である。

    本発明の一実施形態に基づく変換装置を備えた第2の不揮発性メモリシステムを示す図である。

    本発明の一実施形態に基づく変換装置を備えた第3の不揮発性メモリシステムを示す図である。

    本発明の一実施形態に基づく、データの格納前にデータに対するマルチ変換の実行が可能な第1の不揮発性メモリシステムと通信を行うホストを示す図である。

    本発明の一実施形態に基づく、データの格納前にデータに対するマルチ変換の実行が可能な第2の不揮発性メモリシステムと通信を行うホストを示す図である。

    本発明の一実施形態に基づく、ホストが出力するデータを不揮発性メモリの中へ効率良く格納する1つの方法に関連するステップを例示する処理のフローチャートである。

    本発明の一実施形態に基づく、ホストが出力するデータを不揮発性メモリの中へ効率良く格納する別の方法に関連するステップを例示する処理のフローチャートである。

    本発明の一実施形態に基づく、符号化済みデータを復号化する変換装置を備えた不揮発性メモリシステムを示す図である。

    本発明の一実施形態に基づく、ホストと、復号化データを直接ホストへ出力する変換装置とを備えた不揮発性メモリシステムとを示す図である。

    本発明の一実施形態に基づく、ホストと、復号化データをホストへ出力する前にマルチ反復を用いてデータを復号化できる変換装置を備えた不揮発性メモリシステムとを示す図である。

    本発明の一実施形態に基づく、符号化済みデータの復号化に関連するステップを例示する処理のフローチャートである。

    本発明の一実施形態に基づくデータを符号化する変換装置を示す図である。

    本発明の一実施形態に基づく図9aの符号化用変換器918に関連する変換を示す図である。

    本発明の一実施形態に基づくデータを復号化する変換装置を示す図である。

    本発明の一実施形態に基づく、図9bの符号化用変換器918'により行われる符号化の逆変換に適した復号化用変換器を示す図である。

    QQ群二维码
    意见反馈