(57)【要約】データを、不揮発性メモリに効率良く格納できるフォーマットに変換する方法および装置に関する。本発明の１つの態様によれば、第１のデータフォーマットの情報をメモリシステムに格納する方法には、第１のデータフォーマットに関連する統計値を生成するステップと、その統計値を用いて、第１のデータフォーマットから第２のデータフォーマットへ情報を変換するステップとが含まれる。この情報は、第２のデータフォーマットに変換されるとすぐに、メモリの中へ格納される。第２のデータフォーマットで当該情報をメモリに格納するステップには、当該情報を第２のデータフォーマットに変換するのに用いる変換値を特定する識別子を格納するステップが含まれる。一実施形態では、第２のデータフォーマットの情報を格納する関連コストは、第１のデータフォーマットの情報を格納する関連コスト以下である。
2005537551.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータフォーマットの情報をメモリシステムに格納する方法において、
前記第１のデータフォーマットに関連する統計値を生成するステップと、
前記統計値を用いて前記第１のデータフォーマットから第２のデータフォーマットへ前記情報を変換するステップと、
前記第２のデータフォーマットの前記情報を前記メモリシステムに関連するメモリに格納するステップであって、前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換するのに用いる変換値を示す識別子を前記メモリに格納するステップを含む前記第２のデータフォーマットの前記情報を前記メモリに格納するステップと、
を含む方法。
【請求項２】
前記第１のデータフォーマットが第１のシンボルの少なくとも１つの発生を含み、さらに、前記第１のデータフォーマットに関連する統計値を生成するステップが、
前記第１のデータフォーマットの前記第１のシンボルの密度を決定するステップであって、前記第１のデータフォーマットの前記第１のシンボルの発生に関連する前記密度を示す数値を決定するステップを含む密度を決定するステップを含む請求項１記載の方法。
【請求項３】
前記統計値を用いて前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換するステップが、
前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換して、前記情報の範囲内で前記第１のシンボルの密度を下げるようにするステップを含む請求項２記載の方法。
【請求項４】
前記第１のデータフォーマットに関連する前記統計値を生成するステップが、
前記第１のデータフォーマットの第１のシンボルの密度を決定するステップを含み、前記密度を決定するステップが、前記第１のデータフォーマットの前記第１のシンボルの発生に関連する割合を決定するステップを含む請求項１記載の方法。
【請求項５】
前記統計値を用いて前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換するステップが、
前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換して、前記情報の範囲内で前記第１のシンボルの密度を上げるようにするステップを含む請求項４記載の方法。
【請求項６】
前記第１のデータフォーマットの前記情報を前記メモリシステム上で受け取るステップが、
前記メモリシステムと通信を行うホストシステムから前記情報を受け取るステップを含む請求項１記載の方法。
【請求項７】
前記第２のデータフォーマットの前記情報を格納するステップに関連する少なくとも１つのコストが、前記第１のデータフォーマットの前記情報を格納するステップに関連する少なくとも１つのコスト以下である請求項１記載の方法。
【請求項８】
前記第２のデータフォーマットの前記情報を格納するための前記メモリシステムが使用する電力が、前記第１のデータフォーマットの前記情報を格納するための前記メモリシステムが使用する電力以下である請求項１記載の方法。
【請求項９】
メモリシステムにおいて情報を検索する方法であって、前記情報が、前記メモリシステムのメモリに第１のデータフォーマットで格納される情報を検索する方法において、
前記第１のデータフォーマットの前記情報を分析するステップであって、前記第１のデータフォーマットから第２のデータフォーマットへ前記情報を変換する際に用いる少なくとも１つの適切な変換値を決定するステップを含む前記情報を分析するステップと、
前記適切な変換値を用いて、前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換するステップと、
を含む情報を検索する方法。
【請求項１０】
前記第２のデータフォーマットが、前記第２のデータフォーマットに関連する統計値を用いて最初に変換されたものである請求項９記載の方法。
【請求項１１】
前記第１のデータフォーマットの前記情報を分析するステップが、
前記第１のデータフォーマットの前記情報のセクションを読み出すステップを含み、前記セクションが前記適切な変換値を特定するシンボルを含む請求項９記載の方法。
【請求項１２】
前記メモリシステムがホストシステムと通信を行い、前記方法が、
前記第２のデータフォーマットの前記変換済み情報を前記ホストシステムへ出力するステップをさらに含む請求項９記載の方法。
【請求項１３】
前記第１のデータフォーマットの前記情報を前記メモリに格納するステップに関連する少なくとも１つのコストが、前記第２のデータフォーマットの前記情報を前記メモリに格納するステップに関連する少なくとも１つのコスト未満である請求項９記載の方法。
【請求項１４】
前記第１のデータフォーマットの前記情報を前記メモリに格納するための前記メモリシステムが使用する電力が、前記第２のデータフォーマットの前記情報を前記メモリに格納するための前記メモリシステムが使用する電力未満である請求項９記載の方法。
【請求項１５】
メモリデバイスにおいて、
メモリと、
第１のデータフォーマットで構成された情報を受け取るように構成された入力用受信機と、
前記第１のデータフォーマットに関連する統計値を生成するように構成された統計値生成装置と、
前記第１のデータフォーマットから第２のデータフォーマットへ前記情報を変換するために前記統計値を用いるように構成された変換装置であって、前記第２のデータフォーマットの前記情報を前記メモリにさらに格納するように構成された変換装置と、
を備えるメモリデバイス。
【請求項１６】
前記第２のデータフォーマットの前記情報を格納する関連コストが、前記第１のデータフォーマットの前記情報を格納する関連コスト以下である請求項１５記載のメモリデバイス。
【請求項１７】
前記統計値生成装置が、前記第１のデータフォーマットの第１のシンボルの発生に関連する数値を決定することにより、前記第１のデータフォーマットの前記第１のシンボルの密度を決定するようにさらに構成され、前記数値が前記密度を示す請求項１５記載のメモリデバイス。
【請求項１８】
前記変換装置が、前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換して、前記情報の範囲内で前記第１のシンボルの密度を下げるようにさらに構成される請求項１７記載のメモリデバイス。
【請求項１９】
前記変換装置が、前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換して、前記情報の範囲内で前記第１のシンボルの密度を上げるようにさらに構成される請求項１７記載のメモリデバイス。
【請求項２０】
前記変換装置が、前記第２のデータフォーマットの前記情報と共に識別子を格納するようにさらに構成され、前記識別子が、前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換するのに用いる少なくとも１つの変換値を実質的に特定するように構成される請求項１７記載のメモリデバイス。
【請求項２１】
前記識別子を読み出すように構成される情報処理装置をさらに備え、前記情報処理装置が、前記変換装置と一体に動作するようにさらに構成され、それによって前記変換装置が少なくとも１つの適切な変換値を特定して、前記第２のデータフォーマットから前記第１のデータフォーマットへ前記情報を変換するようにする請求項２０記載のメモリデバイス。
【請求項２２】
前記入力受信機が、ホストシステムとインタフェースを行うように構成され、さらに、前記変換装置は、前記第２のデータフォーマットから前記第１のデータフォーマットへ前記情報を変換した後、前記第１のデータフォーマットの前記情報を前記ホストシステムへ出力するようにさらに構成される請求項２１記載のメモリデバイス。
【請求項２３】
前記入力受信機が、ホストシステムとインタフェースを行って、前記第１のデータフォーマットの前記情報を前記ホストシステムから受け取るようにする請求項１５記載のメモリデバイス。
【請求項２４】
前記メモリシステムが、ホストシステムとインタフェースを行う不揮発性メモリシステムである請求項１５記載のメモリデバイス。
【請求項２５】
前記不揮発性メモリシステムが、前記ホストシステムから取り外し可能である請求項２４記載のメモリデバイス。
【請求項２６】
前記メモリが、不揮発性格納素子である請求項２４記載のメモリデバイス。
【請求項２７】
前記メモリデバイスが、ＰＣカード、コンパクトフラッシュカード、マルチメディアカード、セキュリティデジタルカード、メモリスティックカード、スマートメディアカードから成るグループから選択されたカードである請求項２４記載のメモリデバイス。
【請求項２８】
前記メモリデバイスが、単一のチップデバイスである請求項２４記載のメモリデバイス。
【請求項２９】
システムにおいて、
ホストシステムと、
メモリデバイスであって、前記メモリデバイスが前記ホストシステムとインタフェースを行うように構成されて、第１のデータフォーマットで構成された情報を前記ホストシステムから取得し、前記メモリデバイスがメモリ、統計値生成装置、および変換装置を備え、前記統計値生成装置が前記第１のデータフォーマットに関連する統計値を生成するように構成され、前記変換装置が前記統計値を用いて前記第１のデータフォーマットから第２のデータフォーマットに前記情報を変換するように構成され、前記変換装置が前記第２のデータフォーマットの前記情報を前記メモリに格納するようにさらに構成されるメモリデバイスと、
を備えるシステム。
【請求項３０】
前記統計値生成装置が、前記第１のデータフォーマットの第１のシンボルの発生に関連する割合を決定することにより、前記第１のデータフォーマットの前記第１のシンボルの密度を決定するようにさらに構成される請求項２９記載のシステム。
【請求項３１】
前記変換装置が、前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換して、前記情報の範囲内で前記第１のシンボルの密度を下げるようにさらに構成される請求項３０記載のシステム。
【請求項３２】
前記変換装置が、前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換して、前記情報の範囲内で前記第１のシンボルの密度を上げるようにさらに構成される請求項３０記載のシステム。
【請求項３３】
前記変換装置が、前記第２のデータフォーマットの前記情報と共に識別子を格納するようにさらに構成され、前記識別子が、前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換するのに用いる少なくとも１つの変換値を実質的に特定するように構成される請求項２９記載のシステム。
【請求項３４】
前記識別子を読み出すように構成される情報処理装置をさらに備え、前記情報処理装置が、前記変換装置と一体に動作するようにさらに構成され、それによって前記変換装置が少なくとも１つの適切な変換値を特定して、前記第２のデータフォーマットから前記第１のデータフォーマットへ前記情報を変換するようにする請求項３３記載のシステム。
【請求項３５】
前記変換装置が前記第２のデータフォーマットから前記第１のデータフォーマットへ前記情報を変換した後、前記メモリデバイスが前記第１のデータフォーマットの前記情報を前記ホストシステムへ出力するように構成される請求項３４記載のシステム。
【請求項３６】
前記ホストシステムが、情報処理装置と第２の変換装置とを備え、前記情報処理装置が前記識別子を読み出すように構成され、前記情報処理装置が前記第２の変換装置と一体に動作するようにさらに構成され、それによって前記第２の変換器が少なくとも１つの適切な変換値を特定して、前記第２のデータフォーマットから前記第１のデータフォーマットへ前記情報を変換するようにする請求項３３記載のシステム。
【請求項３７】
前記メモリシステムが、不揮発性メモリシステムである請求項２９記載のシステム。
【請求項３８】
前記不揮発性メモリシステムが、前記ホストシステムから取り外し可能である請求項３７記載のシステム。
【請求項３９】
前記不揮発性メモリシステムが、前記ホストシステムに組み込まれる請求項３７記載のシステム。
【請求項４０】
前記メモリが、不揮発性格納素子である請求項３７記載のシステム。
【請求項４１】
前記メモリデバイスが、ＰＣカード、コンパクトフラッシュカード、マルチメディアカード、セキュリティデジタルカード、メモリスティックカード、スマートメディアカードから成るグループから選択されるカードである請求項２９記載のシステム。
【請求項４２】
前記メモリデバイスが、単一のチップデバイスである請求項２９記載のシステム。
【請求項４３】
前記ホストシステムが、前記情報をキャプチャし、前記第１のフォーマットの前記情報を前記メモリデバイスへ出力するように構成される請求項２９記載のシステム。
【請求項４４】
前記ホストシステムが、デジタルカメラ、ビデオカメラ、携帯電話、通信装置、オーディオプレイヤ、ビデオプレイヤから成るグループから選択されたシステムである請求項４３記載のシステム。
【請求項４５】
前記変換装置が、前記情報に対する追加の変換を行うようにさらに構成され、前記追加の変換が実質的に前記統計値を用いない請求項２９記載のシステム。
【請求項４６】
メモリデバイスにおいて、
情報を格納する手段と、
入力を受け取る手段であって、前記入力を受け取る手段が前記情報を受け取るように構成され、前記情報が第１のデータフォーマットで構成される入力を受け取る手段と、
前記第１のデータフォーマットに関連する統計値を生成するように構成される統計値を生成する手段と、
前記統計値を用いて、前記第１のデータフォーマットから第２のデータフォーマットに前記情報を変換するように構成される情報を変換する手段と、
を備えるメモリデバイス。
【請求項４７】
前記情報を変換する手段が、前記第２のデータフォーマットの情報を前記情報を格納する手段に格納するようにさらに構成される請求項４６記載のメモリデバイス。
【請求項４８】
前記情報を変換する手段が、追加の変換を行うようにさらに構成され、前記追加の変換が前記統計値を用いないように構成される請求項４６記載のメモリデバイス。
【請求項４９】
前記第２のデータフォーマットの前記情報を格納するステップに関連するコストが、前記第１のデータフォーマットの前記情報を格納するステップに関連するコスト以下である請求項４６記載のメモリデバイス。
【請求項５０】
前記第２のデータフォーマットの前記情報を格納するステップに関連する電力使用量が、前記第１のデータフォーマットの前記情報を格納するステップに関連する電力使用量以下である請求項４６記載のメモリデバイス。
【請求項５１】
前記統計値を生成する手段が、前記第１のデータフォーマットの第１のシンボルの発生に関連する割合を決定することにより、前記第１のデータフォーマットの前記第１のシンボルの密度を決定する手段を含む請求項４６記載のメモリデバイス。
【請求項５２】
前記情報を変換する手段が、前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換して、前記情報の範囲内で前記第１のシンボルの密度を下げるようにさらに構成される請求項５１記載のメモリデバイス。
【請求項５３】
前記情報を変換する手段が、前記第１のデータフォーマットから前記第２のデータフォーマットへ前記情報を変換して、前記情報の範囲内で前記第１のシンボルの密度を上げるようにさらに構成される請求項５１記載のメモリデバイス。
【請求項５４】
前記情報を変換する手段が、前記第２のデータフォーマットの前記情報に関連する識別子を格納するようにさらに構成され、前記識別子が前記第１のデータフォーマットから前記第２のデータフォーマットに前記情報を変換するのに用いる少なくとも１つの変換値を実質的に特定するように構成される請求項４６記載のメモリデバイス。
【請求項５５】
前記情報を処理する手段をさらに備え、前記情報を処理する手段が前記識別子を読み出す手段を備え、さらに、前記情報を処理する手段が前記情報を変換する手段と一体に動作するように構成され、それによって前記変換する手段が少なくとも１つの適切な変換値を特定して、前記第２のデータフォーマットから前記第１のデータフォーマットへ前記情報を変換するようにする請求項５４記載のメモリデバイス。
【請求項５６】
前記入力を受け取る手段が、ホストシステムとインタフェースを行うように構成され、前記情報を変換する手段が、前記第２のデータフォーマットから前記第１のデータフォーマットへ前記情報を変換した後、前記第１のデータフォーマットの前記情報を前記ホストシステムへ出力する手段を備える請求項５５記載のメモリデバイス。
【請求項５７】
識別子を読み出す手段を備える情報を処理する手段と、
情報を変換する第２の手段であって、前記情報を処理する手段が、前記情報を変換する第２の手段と一体に動作するように構成され、それによって前記第２の変換する手段が少なくとも１つの適切な変換値を特定して、前記第２のデータフォーマットから前記第１のデータフォーマットへ前記情報を変換するようにする第２の変換する手段と、
をさらに備える請求項５４記載のメモリデバイス。
【請求項５８】
前記入力を受け取る手段が、ホストシステムとインタフェースを行って、前記第１のデータフォーマットの前記情報を前記ホストシステムから受け取るように構成される請求項４６記載のメモリデバイス。
【請求項５９】
前記メモリシステムが、ホストシステムとインタフェースを行う不揮発性メモリシステムである請求項４６記載のメモリデバイス。
【請求項６０】
第１のフォーマットから第２のフォーマットにデータを変換する方法において、
第１のシンボルの前記第１のフォーマットと関連づけられる第１の密度を決定するステップと、
第２のシンボルの前記第１のフォーマットと関連づけられる第２の密度を決定するステップであって、前記第１の密度のほうが、前記第２の密度よりも大きい第２の密度を決定するステップと、
前記第１のシンボルを前記第２のシンボルと同レベル化するステップであって、前記第１のシンボルを前記第２のシンボルと同レベル化するステップが、前記第１のシンボルの前記第２のフォーマットと関連づけられる第３の密度を形成するステップと、前記第２のシンボルの前記第２のフォーマットと関連づけられる第４の密度を形成するステップとを含み、前記第３の密度が前記第１の密度未満である同レベル化するステップと、
を含む方法。
【請求項６１】
前記第４の密度が、前記第２の密度以上である請求項６０記載の方法。
【請求項６２】
前記第２のフォーマットがインジケータを含み、前記インジケータによって、前記第１のシンボルが前記第２のシンボルと同レベル化されたことを示すように構成される請求項６０記載の方法。
【請求項６３】
第１のフォーマットから第２のフォーマットにデータを変換する方法において、
第１のシンボルの前記第１のフォーマットと関連づけられる第１の密度を決定するステップと、
第２のシンボルの前記第１のフォーマットと関連づけられる第２の密度を決定するステップであって、前記第１の密度のほうが、前記第２の密度以上である第２の密度を決定するステップと、
前記第１のシンボルを前記第２のシンボルと同レベル化するステップであって、前記第１のシンボルを前記第２のシンボルと同レベル化するステップが、前記第１のシンボルの前記第２のフォーマットと関連づけられる第３の密度を形成するステップと、前記第２のシンボルの前記第２のフォーマットと関連づけられる第４の密度を形成するステップとを含み、前記第４の密度のほうが前記第２の密度以上である同レベル化するステップと、
を含む方法。
【請求項６４】
前記第３の密度が、前記第１の密度未満である請求項６３記載の方法。
【請求項６５】
前記第２のフォーマットがインジケータを含み、前記インジケータによって、前記第１のシンボルが前記第２のシンボルと同レベル化されたことを示すように構成される請求項６３記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に大容量デジタルデータ格納システムに関する。さらに詳細には、本発明は、格納システムにおいてシンボル頻度または状態頻度の同レベル化を自動的に行い、それによって、何らかのデータパターンを格納システムに実質的に格納するとき、パフォーマンス目標を効率的に満たすようにするシステムおよび方法に関する。
【背景技術】
【０００２】
フラッシュメモリ格納システムなどの不揮発性メモリシステムの利用が、このようなメモリシステムのコンパクトな物理的サイズ、並びに反復して再プログラム可能な不揮発性メモリの能力に起因して増加している。フラッシュメモリ格納システムのコンパクトな物理的サイズによって、ますます優勢になるデバイスでのこのような格納システムの利用が容易になる。フラッシュメモリ格納システムを利用するデバイスには、デジタルカメラ、デジタルカムコーダ、デジタルミュージックプレイヤ、ハンドヘルド形パーソナルコンピュータ、地球的規模の測位装置が含まれるが、これらのみに限定されるものではない。フラッシュメモリ格納システムに含まれる不揮発性メモリの反復再プログラム能力によってフラッシュメモリ格納システムの利用と再利用とが可能となる。
【０００３】
不揮発性メモリシステムのデータブロックに格納されるデータセットは、データ値の任意の可能な組み合わせを実質的に有するものであってもよい。“ｍ”個の可能な値のうちの１つの値として個々に格納できる“Ｎ”個のシンボルを含むデータブロックは、“ｍN ”個の可能なデータ値を有することができる。データブロックに格納されるすべての可能なデータ値を考慮することにより、格納システムはすべての可能な値に対応するパフォーマンス目標を満たすように一般に設計される。このような設計は、最も一般的な格納済みデータパターン用としては最適なものにはならない可能性がある。すなわち、好ましくないケースや、生じる可能性が大きくないケースを含めて、すべての可能なデータ値やデータパターンに対応してパフォーマンス要件を満たすことができることを保証するために、最もありふれたデータ値や最も好ましいデータ値に関連するパフォーマンスを妥協させる場合がある。格納システムのデータブロックにすべての可能なデータ値を格納するように考慮することは、相対的に複雑な設計上の問題、信頼性上の問題、より高い消費電力や、より高いコストを伴うことになる可能性もある。
【０００４】
データブロックに格納可能なデータパターンの数は、比較的大きなものとなる場合がある。データブロックにほぼ２進状態のみを格納できるときでさえ、データブロックに潜在的に格納できるデータパターンの数は極めて大きくなる。１００バイナリビットを格納できるデータブロックの場合、２100 通りのデータパターンやデータブロックの格納構成が行われるケースが実際上存在する。１００バイナリビットを格納する格納システムの要件は、最低のパフォーマンス要件を満たす専用回路を必要としたり、追加の電力消費を伴ったりする場合もある少数の好ましくないケースによって設定（例えば、限定）される。例えば、システムによっては、１００バイナリビットを“１”として格納することは、好ましくないケースになる場合があり、この好ましくないケースは、“１”と“０”の値をミックスした１００バイナリビットの格納が含まれる好ましいケースよりも高価な格納システムを必要とする。代わりに、好ましくないケースあるいは稀なケースの格納時に最低のパフォーマンス要件を満たす格納システムが、より好ましいケースの格納に関連するパフォーマンスレベルを妥協させる場合がある。好ましくないケースの格納に関連する最低のパフォーマンス要件を満たすことができるように、好ましいケースの格納に関連するパフォーマンスレベルを妥協させることは、効率的でないことが証明される場合が多い。
【０００５】
パフォーマンスの妥協を潜在的に引き起こす原因になることに加えて、あるいは、パフォーマンスの妥協を潜在的に引き起こす原因となる代わりに、すべての可能なデータ値を格納システムのデータブロックに格納するように考慮することは、結果としてより高い製造コストを伴うことになる場合が多い。というのは、すべての可能なデータ値の格納に関連する回路は高価なものとなる場合があるからである。このような回路も、比較的高い電力消費量を必要とすると考えられる。すべての可能なデータ値を格納する格納システムは、データの格納と、好ましくないケースの格納を調整する追加の回路の介在との双方に関しても信頼性の低いものになる可能性が高い。すべての可能なデータ値を格納する必要性は、すべての可能なデータ値の格納を可能にする格納システム用回路の設計に関連する設計上の問題のために開発期間の長期化にもつながることが考えられ、この長期化は、格納システムをマーケットに出せるようにするまでにさらに長いリードタイムを生じることになることが考えられる。
【０００６】
したがって、求めるものは、好ましいケースの格納に関連するパフォーマンスを実質的に妥協させることなく、好ましくないケースを効率良く不揮発性メモリに格納することを可能にするシステムである。すなわち、必要とするものは、好ましくないケースと好ましいケースの双方の格納を効果的に可能にする方法および装置である。
【特許文献１】米国特許第５，８９０，１９２号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、データを不揮発性メモリに効率良く格納できるフォーマットに変換するシステムと方法とに関する。本発明の１つの態様によれば、第１のデータフォーマットの情報をメモリシステムに格納する方法には、第１のデータフォーマットに関連する統計値を生成するステップと、その統計値を用いて、第１のデータフォーマットから第２のデータフォーマットへ情報を変換するステップとが含まれる。この情報は、第２のデータフォーマットに変換されるとすぐに、第２のデータフォーマットでメモリの中へ格納される。第２のデータフォーマットの情報をメモリに格納するステップには、第１のデータフォーマットから第２のデータフォーマットへの情報の変換に用いる変換値を指示あるいは特定する識別子をメモリに格納するステップが含まれる。識別子についての情報によって、一般に、第２のデータフォーマットから元の第１のデータフォーマットへの情報の変換を可能にする。一実施形態では、第２のデータフォーマットの情報を格納する関連コストは、第１のデータフォーマットの情報を格納する関連コスト以下である。
【課題を解決するための手段】
【０００８】
別の実施形態では、第１のデータフォーマットは第１のシンボルの少なくとも１つの発生を含み、第１のデータフォーマットに関連する統計値を生成するステップは、第１のデータフォーマットでの第１のシンボルの密度を決定するステップを含む。密度を決定するこのステップは、第１のデータフォーマットの第１のシンボルの発生に関連する割合を決定するステップを含むことができる。このような実施形態では、統計値を用いて第１のデータフォーマットから第２のデータフォーマットへ情報を変換するステップは、第１のデータフォーマットから第２のデータフォーマットへ情報を変換して、情報の範囲内で第１のシンボルの密度を下げるようにするステップを含むものであってもよい。
【０００９】
メモリシステムに格納するデータは、多くの異なるフォーマットを含むものであってもよい。論理状態やシンボルの組み合わせなどのフォーマットによっては、他のフォーマットに比べて格納が効率的でない場合もあるのは、フォーマットによっては好ましくないケースが許容される場合があるからである。１つの論理状態が極めて大きな１組のデータを形成するケースなどのような好ましくないケースは、この好ましくないケースの格納がパフォーマンス要件を満たそうとする場合、専用回路を必要としたり、格納を目的とするのにかなりの電力要件を要したりする場合がある。さらに、好ましくないケースの格納パフォーマンス要件を満たすメモリシステムは、例えば比較的頻繁に生じるケースである好ましいケースを格納するステップに関連するパフォーマンスを妥協させる場合がある。例えば、好ましくないケースから好ましいケースへの変換の場合などのように、データの格納前にデータのフォーマットを変換することにより、実際の好ましくないケースの格納を効果的に避けることも可能となる。というのは、好ましくないケースが好ましいケースとして効果的に格納されるからである。この結果、メモリシステムへのデータの格納全体をさらに効率的に行うことが可能となる。さらに、メモリシステムに関連するコストの低減が可能となり、またメモリシステムの信頼性を改善することも可能となる。
【００１０】
本発明の別の態様によれば、メモリシステムのメモリに第１のデータフォーマットで格納された情報を検索する方法には、第１のデータフォーマットの情報を分析するステップが含まれる。第１のデータフォーマットの情報を分析するステップには、第１のデータフォーマットから第２のデータフォーマットへの情報の変換に適した少なくとも１つの適切な変換値を決定するステップが含まれる。この方法には、この適切な変換値を用いて第１のデータフォーマットから第２のデータフォーマットに情報を変換するステップも含まれる。第１のデータフォーマットの情報をメモリに格納する関連コストは、第２のデータフォーマットの情報をメモリに格納する関連コストより高いものとはならない。一実施形態では、第１のデータフォーマットの情報を分析するステップには、第１のデータフォーマットの情報セクションを読み出して、適切な変換値を特定するステップが含まれる。別の実施形態では、このメモリシステムはホストシステムと通信を行い、さらにこの方法には第２のデータフォーマットで変換済み情報をホストシステムへ出力するステップも含まれる。
【００１１】
本発明のさらに別の態様によれば、データの変換と格納とを行う能力を有するシステムがホストシステムとメモリデバイスとを備える。メモリデバイスは、ホストシステムとインタフェースを行って第１のデータフォーマットで構成された情報をホストシステムから取得し、さらに、メモリデバイスは、メモリ、統計値生成装置、および変換装置を備える。統計値生成装置は、第１のデータフォーマットに関連する統計値を生成し、変換装置は、この統計値を用いて第１のデータフォーマットから第２のデータフォーマットに情報を変換する。また、変換装置は、第２のデータフォーマットの情報をメモリに格納する。一実施形態では、第２のデータフォーマットの情報は、第１のデータフォーマットの情報を格納するのと少なくとも同程度にメモリに格納し易い。
【００１２】
一実施形態では、変換装置は、第１のデータフォーマットから第２のデータフォーマットへの情報変換に用いられる少なくとも１つの変換値を実質的に特定する識別子を情報の一部として第２のデータフォーマットで格納する。このような実施形態では、ホストシステムは、情報処理装置と第２の変換装置とを備えるものであってもよい。このような情報処理装置は、当該識別子を読み出し、第２の変換装置と一体に動作して、少なくとも１つの適切な変換値を特定し、第２のデータフォーマットから第１のデータフォーマットへの情報変換を行うものであってもよい。この変換装置と第２の変換装置とは別個の変換装置であってもよいし、単一の変換装置の中へ組み込まれた変換装置であってもよいし、いくつかの論理回路を共有する変換装置であってもよいし、あるいは、同じ論理回路を備えるけれども、別様に機能するように構成された別個の変換装置であってもよいことを理解されたい。
【００１３】
以下の詳細な説明を読み、図面の様々な図を検討するとき、本発明のこれら利点並びにその他の利点は明らかになる。
【００１４】
本発明は、添付図面と関連して行う以下の説明を参照することにより最もよく理解することができる。
【発明を実施するための最良の形態】
【００１５】
例えば、好ましくないケースから好ましいケースへの変換を行う場合などのように、データの格納前にデータのフォーマット変換を行うことにより、実際の好ましくないケースの格納を効果的に避けることも可能である。というのは、好ましくないケースが好ましいケースとして有効に格納されるからである。この結果、メモリシステムにおけるデータの格納全体をさらに効率良く行うことが可能となる。というのは、好ましくないケースの格納は、一般に好ましいケースの格納に比べて電力消費が多くないため、好ましくないケースの格納に関連するパフォーマンスペナルティを避けることができるからである。さらに、好ましくないケースが好ましいケースとして格納されるメモリシステムでは、データの格納に関連する回路を複雑さの少ない回路にすることが可能となり、例えば設計時間が短くなったり、回路の製造も若干容易になる。すなわち、コスト全体、あるいは、使用電力、パフォーマンスペナルティ、設計上の問題点および製造上の問題点のうちの少なくとも１つに関連するコスト係数を下げることが可能となる。例えば、消費電力の関連コストを下げることができ、パフォーマンスペナルティやパフォーマンスコストを下げることができ、複雑な回路設計の関連コストを下げることができ、製造コストを下げることができる。
【００１６】
不揮発性メモリデバイスなどのメモリデバイスにデータを格納すると、ホストシステムは不揮発性メモリデバイスへデータを出力する。一実施形態では、不揮発性メモリデバイスによってデータが効果的に減らされ、データの範囲内で生じる相対的論理状態とシンボル密度とが決定され、次いで、相対的密度に基づいて適切な変換値が選択され、効率良く格納されたフォーマットにデータを変換するために当該変換値を用いることも可能となる。シンボルは、１ビットのシンボル、またはほぼ任意のビット数を組み合わせたシンボルであってもよい。効率的な格納が可能であると考えられるデータフォーマットは特定のシステム要件に対応して広範に変動することが可能であるが、効率的な格納が可能なデータフォーマットは、論理状態のほぼ均等な分布を含むフォーマットと、特定の論理状態の最大密度を最小化するフォーマットと、特定の論理状態の最小密度を最大化するフォーマットとを含むものであってもよい。
【００１７】
図１ａを最初に参照しながら、不揮発性メモリデバイス１２０、コンパクトフラッシュメモリカードなどを備えた一般的なホストシステムについて説明する。ホスト、すなわちコンピュータシステム１００は、一般にマイクロプロセッサ１０８、ランダムアクセスメモリ（ＲＡＭ）１１２および入出力回路１１６による通信を可能にするシステムバス１０４を備える。一般に、ホストシステム１００は、表示装置およびネットワーク用装置などの別の構成要素を備えることができることを理解されたい。これらの構成要素は例示用としては示されていない。
【００１８】
一般に、ホストシステム１００は、静止画像情報、音声情報、およびビデオ画像情報を含む情報などではあるが、これらのみに限定されるものではない情報をキャプチャする能力を有するものであってもよい。このような情報はリアルタイムでキャプチャされるものであってもよいし、無線でホストシステム１００へ送信されるものであってもよい。ホストシステム１００は、ほぼ任意のシステムであってもよいが、ホストシステム１００は、通常、デジタルカメラ、ビデオカメラ、セルラ通信装置、オーディオプレイヤ、あるいは、ビデオプレイヤなどから成るシステムである。しかし、ホストシステム１００は、一般にデータや情報を格納し、データや情報を検索するほぼ任意のシステムであってもよいことを理解されたい。
【００１９】
ホストシステム１００は、専らデータをキャプチャするだけか、専らデータを検索するだけかのいずれかのシステムであってもよいことを理解されたい。すなわち、ホストシステム１００はデータの格納専用システムであってもよいし、あるいは、ホストシステム１００はデータの読み出し専用システムであってもよい。例えば、ホストシステム１００は、データの書き込み、すなわちデータの格納専用として構成されたメモリ書き込み装置であってもよい。代わりに、ホストシステム１００は、一般にデータの読み出しや、検索は行うけれどもデータはキャプチャしないように構成されるＭＰ３プレイヤのようなデバイスであってもよい。
【００２０】
一実施形態では、不揮発性メモリデバイス１２０は、取り外し可能な不揮発性メモリデバイスであり、バス１０４とインタフェースを行って、情報を格納するように構成される。オプションの入出力回路ブロック１３０は、不揮発性メモリデバイス１２０がバス１０４と間接的にインタフェースを行うことを許容するものであってもよい。当業者であれば解るように、入出力回路ブロック１３０は、負荷が存在する場合、バス１０４に対する負荷を軽減するように機能する。不揮発性メモリデバイス１２０は、不揮発性メモリ１２４とメモリ制御システム１２８とを備える。一実施形態では、不揮発性メモリデバイス１２０は、単一のチップ、すなわちダイ上に実装可能である。代わりに、不揮発性メモリデバイス１２０は、マルチチップモジュール上に実装可能であり、あるいは、不揮発性メモリデバイス１２０として一体に使用できる複数の単体の構成要素上に実装可能である。不揮発性メモリデバイス１２０の一実施形態について、図１ｂと関連してさらに詳細に以下説明する。
【００２１】
不揮発性メモリ１２４は、データを格納し、必要に応じてデータにアクセスし、読み出しを行うことができるように構成される。不揮発性メモリ１２４に格納されたデータは適当な形で消去可能であるが、不揮発性メモリ１２４内には消去できないデータも若干存在することを理解されたい。データの格納、データの読み出し、およびデータの消去の各プロセスは、一般にメモリ制御システム１２８によって制御される。一実施形態では、メモリ制御システム１２８は、不揮発性メモリ１２４の動作を管理し、不揮発性メモリ１２４のセクションをほぼ等しく消耗させることにより、不揮発性メモリ１２４の耐用期間をほぼ最大化するように図るシステムである。
【００２２】
メモリ制御システム１２８（コントローラ）として、不揮発性メモリデバイス１２０について一般的に説明した。不揮発性メモリデバイス１２０には、不揮発性メモリ１２４と、メモリ制御システム１２８（コントローラ）と、種々の機能用の別個のチップが含まれる場合が多い。例えば、ＰＣカード、コンパクトフラッシュカード、マルチメディアカード、セキュリティデジタルカードなどであるが、これらのみに限定されるものではないカードを含む不揮発性メモリデバイスが、別個のチップ上に実装可能なコントローラを備えているのに対して、別の不揮発性メモリデバイスには別個のチップ上に実装されたコントローラは設けられていない。当業者であれば解るように、不揮発性メモリデバイス１２０が別個のメモリチップ、並びにコントローラチップを備えていないある実施形態では、メモリ機能とコントローラ機能とを単一のチップ内へ組み込むことも可能である。
【００２３】
図１ｂを参照しながら、本発明の一実施形態に基づく不揮発性メモリデバイス１２０についてさらに詳細に説明する。前述したように、不揮発性メモリデバイス１２０には、不揮発性メモリ１２４とメモリ制御システム１２８とが設けられる。メモリ１２４と制御システム１２８（コントローラ）とは、不揮発性メモリデバイス１２０の主要構成要素である。メモリ１２４は、半導体基板上に形成されるメモリセルアレイであってもよい。このメモリセルアレイで、２または３以上のレベルの電荷のうちの１つをメモリセルの個々の格納素子に格納することにより、１または２以上のビットデータが個々のメモリセルに格納される。このようなシステム用として、不揮発性フラッシュ形の電気的に消去可能でプログラム可能なリードオンリメモリ（ＥＥＰＲＯＭ）は、一般的なタイプのメモリの一例である。
【００２４】
制御システム１２８は、ホストコンピュータや、メモリシステムを利用してデータの格納を行う別のシステムとつながるバス１５を介して通信を行う。バス１５は、一般に図１ａのバス１０４の一部である。制御システム１２８は、メモリセルアレイ１１を備えたメモリ１２４の動作の制御、すなわちメモリ１２４の動作時の、ホストからの出力データの書き込み、ホストからの要求データの読み出し、および、種々のハウスキーピング機能を行うことができる。制御システム１２８は、一般に対応するソフトウェアメモリと種々の論理回路とを備えた汎用マイクロプロセッサを備える。１または２以上の状態マシンが設けられる場合も多く、この状態マシンによって特定ルーチンのパフォーマンスの制御が行われる。
【００２５】
メモリセルアレイ１１は、一般にアドレス指定デコーダ１７を介して制御システム１２８によりアドレス指定が行われる。制御システム１２８がアドレス指定した１グループのメモリセルに対するデータのプログラミングや、当該１グループのメモリセルからのデータの読み出しや、当該１グループのメモリセルの消去を行うために、デコーダ１７は、アレイ１１のゲートラインとビットラインとに正確な電圧を印加する。追加の回路１９には、アドレス指定済みのセルグループの中へプログラムされたデータに対応して、アレイエレメントに対する印加電圧の制御を行うプログラミング用ドライバが含まれる。回路１９には、センス増幅器と、アドレス指定済みのメモリセルグループからのデータの読み出しに必要な別の回路も含まれる。プログラムされてアレイ１１の中へ入ったデータ、あるいはアレイ１１から最近読み出されたデータは、通常、制御システム１２８内のバッファメモリ２１に格納される。制御システム１２８には、通常、コマンドと状態データなどを一時的に格納する種々のレジスタも含まれる。
【００２６】
アレイ１１は、０〜Ｎ個のメモリセルからなる多数のブロックに分画される。フラッシュＥＥＰＲＯＭシステムに対して通常行われているように、１ブロックが消去単位である。すなわち、個々のブロックには、一括消去される最低数のメモリセルが含まれる。各ブロックは、図１ｂに示すように、一般に複数のページに分画される。１ページがプログラミングの単位である。すなわち、基本プログラミング処理によって、データが１ページの最小セルの中へ書き込まれる。１または２以上のデータセクタが、一般に各ページの範囲内に格納される。図１ｂに示すように、１セクタには、ユーザデータとオーバーヘッドデータとが含まれる。オーバーヘッドデータには、通常セクタのユーザデータから計算された誤り訂正符号（ＥＣＣ）が含まれる。データがプログラムされてアレイ１１の中へ入ると、制御システム１２８の一部２３はＥＣＣを計算し、さらに、データがアレイ１１から読み出されるときにもＥＣＣのチェックを行う。代わりに、ＥＣＣは関係するユーザデータとは異なるページや異なるブロックに格納される。
【００２７】
ユーザデータのセクタは、磁気ディスク駆動装置におけるセクタサイズに対応して通常５１２バイトである。オーバーヘッドデータは、一般に追加の２８バイトである。最も一般的には１セクタのデータが各ページに含まれるが、代わりに２または３以上のセクタが１ページを形成する場合もある。多数のページ、すなわち８ページから、例えば５１２、１０２４ページまたはそれ以上のページまでの任意のページで１ブロックが形成される。ブロック数が選択されて、メモリシステム用の所望のデータ記憶容量が設けられる。アレイ１１は、通常、数個のサブアレイ（図示せず）に分画され、そのサブアレイの各々に若干のブロックが含まれ、これらのブロックは、種々のメモリ操作の実行時の並行性レベルを高めるために互いに独立に動作する。米国特許第５，８９０，１９２号にマルチサブアレイの利用例が記載され、この特許は、その全体が本願明細書において参照により援用されている。
【００２８】
不揮発性メモリ１２４（不揮発性メモリ１２４内のセルなど）に格納されたデータは、図１ａのバス１０４を介して不揮発性メモリデバイス１２０へ出力されるが、一般に好ましいケースと好ましくないケースとを含むことが考えられる。好ましいケースには、比較的発生頻度が高いデータパターンか、（必要なオーバーヘッドや電力などが比較的少なく）格納や検索が比較的容易であると考えられるシンボル（状態などの）密度を含むデータパターンかのいずれかのデータパターンが含まれる場合がある。一方、好ましくないケースには、比較的発生頻度が低いデータパターンか、格納や検索が比較的難しいと考えられるシンボル密度を含むデータパターンかのいずれかのデータパターンが含まれる場合がある。記載された実施形態では、好ましいケースは、一般に不揮発性メモリ１２４での比較的容易なまたは効率のよい格納が行われるデータパターンあるいは比較的容易なまたは効率のよい不揮発性メモリ１２４からの検索が行われるデータパターンであるのに対して、好ましくないケースが、一般に不揮発性メモリ１２４での格納や、不揮発性メモリ１２４からの検索を行うのが比較的難しいか、効率的でないデータパターンである。
【００２９】
不揮発性メモリ１２４にデータを格納する前にデータ変換を行うことによって、好ましくないケースを効果的に避けることができるようにする、すなわち、好ましくないケースをより好ましいケースとして変換したり、符号化したりすることによって、データの効率的な格納が可能となる。ほぼすべてのデータパターンを比較的好ましいケースとして不揮発性メモリ１２４に格納できるように、データ変換やデータ操作を行うことにより比較的コストをかけずに格納処理を行うことが可能である。
【００３０】
データの動的変換を行うことによって、データの格納前に、好ましくないケースになるかもしれないデータパターンをより好ましいケースに変換することが可能である。不揮発性メモリ１２４に変換済みデータを格納することに加えて、データに対する変換が行われたことと、どのタイプの変換が行われたかということの双方を示す付加データの格納を行うことも可能である。不揮発性メモリ１２４からデータを検索し、データの再変換を実行して最初の元の状態に変えるときに、このような情報を利用することができる。すなわち、データの変換と格納とを行うとき、変換に関する情報も格納され、変換済みデータを受け取ってそのデータをその最初の元の状態に有効に戻すようにするとき、変換の逆変換が可能となるように図るものである。一実施形態では、変換に関する情報は５ビットとして格納されるが、このビット数は広範に変更することも可能である。一般に、変換に関する情報は、変換済みデータの前に付加したり、変換済みデータの後に付加したり、変換済みデータの中へ組み込んだり、変換済みデータの範囲内に散在させたりすることができる。しかし、変換済みデータから独立にこのデータの格納を行ってもよいことを理解されたい。
【００３１】
変換を実行して、データパターンが、或る一定割合の第１のシンボル未満の割合であること、あるいは、或る一定割合の第２のシンボルの割合以上であることを保証することができる。例えば、任意の特定のシンボルの最大密度を最小化してもよいし、任意の特定のシンボルの最小密度を最大化することもできる。実施形態によっては、変換を行って、異なるシンボルの或る最小値と或る最大値との割合が、変換済みデータパターンによって満たされることを有効に保証するものもある。個々のシンボルの当該最大密度の最小化を行うなどの、シンボルの或る割合の達成を保証することにより、好ましくないケースを一般に避けることが可能となる。当業者であれば解るように、シンボルは異なる状態の表示に関連づけることができる。
【００３２】
一般に、データブロックへの格納前に、不揮発性メモリシステム内でデータ変換を行うようにしてもよい。不揮発性メモリシステムへデータを出力する前に、ホスト上でデータ変換を実行してもよいが、一般にデータ変換は不揮発性メモリシステム内で行われる。一実施形態では、データ変換が行われるのは、データがホストから読み出されて、不揮発性メモリシステムに関連するバッファの中へ入った後であるが、データがデータブロックに格納される前である。図２ａを参照しながら、本発明に準拠する変換装置を備えた不揮発性メモリシステムの一実施形態について説明する。不揮発性メモリシステム２０２はホスト２０６と通信を行い、それによってホスト２０６はシステム２０２へデータ値を出力できるようになる。ホスト２０６は、“生の”データ、すなわち未変換データなどのデータをバッファ２１０と、統計値生成装置２１４とへ出力する。一実施形態では、図２ｂに示すように、不揮発性メモリシステム２０２’は、未変換データをバッファ２１０へ出力するが、統計値生成装置２１４へは出力しないホスト２０６と通信を行うことができる。このような実施形態、すなわち図２ｂに示す実施形態では、バッファ２１０が統計値生成装置２１４へ未変換データを出力するように構成することができる。
【００３３】
図２ａに戻って参照すると、変換装置２１８によるデータ変換の前に、バッファ２１０がデータの一時的格納を行うように構成されているのに対して、統計値生成装置２１４は分析を行ったり、そうでない場合には、データを減らしたりして、変換装置２１８が使用する変換値の決定に用いる統計値を生成する。一実施形態では、統計値生成装置２１４は、どれだけの数の個々のシンボルがデータの中に出現するかを決定するように構成される。統計値生成装置２１４は、データストリーム全体と関連して個々のシンボルの発生割合全体を決定するように構成してもよい。
【００３４】
統計値生成装置２１４が生成した統計値は、変換装置２１８によって用いられ、好ましいデータパターンとしてのデータの符号化が行われる。一般に、変換装置２１８は、メモリセルまたはメモリブロックを備えることができる不揮発性メモリ２２２に符号化済みデータの格納も行う。当業者であれば解るように、統計値生成装置２１４が生成した統計値を用いる変換装置２１８は、不揮発性メモリシステム２０２に関連する複数の変換装置のうちの唯一の変換装置であってもよい。例えば、図２ｃを参照しながら以下説明するように、変換装置２１８が行う変換の前後のいずれかに追加の変換を行ってもよい。
【００３５】
変換装置２１８は、前述したように不揮発性メモリ２２２から符号化済みデータを取得する際、符号化済みデータの復号化方法や再変換方法などを示すように構成されるビットを符号化済みデータへ追加することができる。一実施形態では、符号化済みデータの中にビットを組み込んで符号化済みデータの復号化方法を示す代りに、例えば、符号化済みデータが格納されたセクションとは異なる不揮発性メモリ２２２のセクションと関連するルックアップテーブルなどに別々に識別子を格納するようにしてもよい。こうして、格納情報の必要時や、符号化済みデータの復号化時に、このような識別子にアクセスすることが可能となる。
【００３６】
好ましいデータパターンか、望ましいデータパターンかのいずれかのデータパターンでデータがすでに存在している場合、変換装置２１８がデータの符号化を行わない選択ができることを理解されたい。言い換えれば、変換装置２１８の中を通るすべてのデータが必ずしも変換されるわけではない。変換装置２１８がデータパターンを変換しない場合、データパターンの再変換方法を示すビットの必要性が実質的に存在しないので、変換装置２１８も、不揮発性メモリ２２２へのデータの格納前に、何らかのシンボルやビットをデータパターンの後に付加したり、前に付加したり、組み込んだり、散在させたりしなくてもよくなる。代わりに、変換装置２１８は、データパターンが、変換装置２１８により処理されたけれども、まだ変換は行われていないことを示すビットをデータパターンの後ろに付加したり、前に付加したり、組み込んだり、あるいは、散在させてもよい。
【００３７】
一般に、変換装置２１８がデータを処理するとすぐに、この処理済みデータは不揮発性メモリ２２２の中へ格納される。以下さらに詳細に説明するように、一実施形態では、変換装置２１８の中を通る符号化済みデータをバッファ２１０の中へ読み出して、格納処理を行う前に、変換装置２１８によって少なくとももう１回の変換を変換済みデータに対して行い、状態密度などのシンボル密度をさらに変換することができる。変換は同レベル化処理を含むものであってもよく、この同レベル化処理は、データパターン内での１または２以上のシンボルの発生頻度の低下か、データパターン内での１または２以上のシンボルの発生頻度の上昇かのいずれかを行うように構成することができる。同レベル化処理は、データパターン内での１または２以上のシンボルの発生頻度の低下と上昇の双方を行えるように構成することも可能である。
【００３８】
前述したように、不揮発性メモリシステムは、２以上の関連する変換装置を備えるものであってもよい。図２ｃは、本発明の一実施形態に基づく複数の変換装置を備える不揮発性メモリシステムと通信を行うホストを示す図である。不揮発性メモリシステム２０２”は、ホスト２０６がシステム２０２”へデータ値を出力できるようにホスト２０６と通信を行う。ホスト２０６は、“生の”データ、すなわち未変換データなどのデータをオプションの第１の変換装置２８０へ出力し、この第１の変換装置２８０はほぼ任意の適切な変換アルゴリズムを用いてデータの変換を行うことができる。適切な変換アルゴリズムは、所定の変換アルゴリズムや、乱数発生装置を用いる適切な変換値の特定に基づく変換や、回転方式の変換アルゴリズムを含むものであってもよいが、これらのみに限定されるものではない。次いで、オプションの第１の変換装置２８０が処理するデータは、バッファ２１０へ、さらに、統計値生成装置２１４へ出力することができる。
【００３９】
変換装置２１８によってデータ変換を行う前に、バッファ２１０は一時的にデータの格納を行うように構成される。統計値生成装置２１４は、データを分析したり、そうでない場合にはデータを少なくしたりして、変換装置２１８が用いる変換値の決定に用いる統計値を生成する。一実施形態では、統計値生成装置２１４は、どれだけの数の個々のシンボルが、データ、すなわちオプションの第１の変換装置２８０により処理されるデータの中に出現するかを決定するように構成される。統計値生成装置２１４は、データストリーム全体と関連して個々のシンボルの発生割合全体を決定するように構成することも可能である。
【００４０】
変換装置２１８は、統計値生成装置２１４が生成した統計値を用いて、好ましいデータパターンとしてデータを符号化する。記載された実施形態では、変換装置２１８は、第２のオプションの変換装置２８２へ符号化済みデータを出力することも可能であり、この変換装置２８２は、統計値生成装置２１４が生成した統計値に基づかないほぼ任意の変換値を用いて符号化済みデータの変換を行うことができる。すなわち、変換装置２１８は、従来の変換方法を用いて符号化したデータをさらに変換できる第２のオプションの変換装置２８２へ符号化済みデータを出力することが可能である。第２のオプションの変換装置２８２は、メモリセルやメモリブロックを備えることができる不揮発性メモリ２２２に変換済みデータを格納することも可能である。第１のオプションの変換装置２８０と第２のオプションの変換装置２８２のいずれか一方あるいは双方を不揮発性メモリシステム２０２”が備えていてもよいことを理解されたい。
【００４１】
図３ａは、本発明の一実施形態に基づいて、データの格納前にデータに対するマルチ変換の実行が可能な不揮発性メモリシステムと通信を行うホストを示す図である。図２ａの不揮発性メモリシステム２０２のように、不揮発性メモリシステム３０２は、バッファ３１０、変換装置３１８、統計値生成装置３１４、不揮発性メモリ３２２を備える。不揮発性メモリ３２２は、一般にデータの格納が可能なブロックまたはセルを備える。システム３０２は、ホスト３０６がデータ値、すなわち情報をシステム３０２の中へ出力できるようにホスト３０６、すなわちソースと通信を行う。
【００４２】
ホスト３０６は、バッファ３１０、並びに統計値生成装置３１４へシンボルの形でデータを出力する。ホスト３０６は統計値生成装置３１４へデータを出力するが、一実施形態では、図３ｂの不揮発性メモリシステム３０２’に示すように、代わりにバッファ３１０が統計値生成装置３１４へデータ出力を行うことも可能である。図３ａに戻ると、バッファ３１０は、一時的にデータを格納するように構成される。例えば、バッファ３１０は、変換装置３１８がデータを変換する前に、データ用の中間領域として機能することができる。統計値生成装置３１４は、変換装置３１８がデータ処理に用いる適切な変換値の特定に効果的に利用する統計情報を当該データから生成する。当業者であれば解るように、生成される統計情報はほぼ任意の適切な情報であってもよく、データパターンの形の或るシンボル密度や状態密度を特定する統計値は特に有用なものとなることができる。
【００４３】
統計値生成装置３１４がデータから生成した統計値は、変換装置３１８により用いられ、好ましいデータパターンとしてデータの符号化を行うことが可能となる。場合によっては、たとえ好ましいデータパターンが単一の変換で達成可能であっても、不揮発性メモリ３２２の中へ効率良く格納できる好ましいデータパターンをマルチ変換を利用して形成することも可能である。例えば、回路上の配慮、電力上の配慮、設計上の配慮、速度上の配慮のいずれかの組み合わせに起因して、マルチ変換のほうが単一の変換よりも望ましい場合がある。したがって、変換装置３１８が変換したデータをバッファ３１０と統計値生成装置３１４とへ出力してもよい。次いで、統計値生成装置３１４は、変換装置３１８が用いることができる統計値を変換済みデータに基づいて生成して、さらにデータの変換を行うようにすることができる。変換装置３１８が処理したデータが最終的に符号化され、その結果、関連するデータパターンが好ましいケースを形成するようになったとき、不揮発性メモリ３２２に格納されたデータパターンの形成に用いた変換値を特定するビットと共に、データは不揮発性メモリ３２２の中へ格納される。一実施形態では、変換済みデータの完全な復号化に必要なほぼすべての必要な情報を含む情報を最初の変換中に不揮発性メモリ３２２に格納することができる。例えば、すべての変換に関連する情報は、実質的に最初の変換が行われる場合にのみ格納することができる。
【００４４】
図４ａは、本発明の一実施形態に基づく、ホストが出力したデータを不揮発性メモリの中へ効率良く格納する処理に関連するステップを例示する処理のフローチャートである。データの格納プロセス４００は、例えば、図２ａの不揮発性メモリシステム２０２か、図３ａの不揮発性メモリシステム３０２かのいずれかのような不揮発性メモリシステムなどがホストからデータを取得するステップ４０４から始まる。ホストからデータが取得されるとすぐに、データはステップ４０８で分析される。ホストから取得したデータを分析するステップは、データ内の特定のシンボルまたは状態の発生割合、すなわち密度に関する統計値を生成するステップを含むものであってもよいが、これのみに限定されるものではない。
【００４５】
ステップ４０８でのデータ分析後、このデータはステップ４１２で変換される。記載された実施形態では、ステップ４０８で行われた分析に基づいて当該データの効果的変換が行われる。例えば、この分析によって、データ内の或るシンボルまたは状態が所望のものよりも高い密度、すなわち頻度を伴って生じたと判定された場合、選択した変換値を構成して、これらシンボル密度や状態密度を下げるようにするためにこの分析結果を利用することができる。当該データがすでに好ましいケースのフォーマットで構成されている場合、必ずしもデータの変換が行われるとはかぎらない場合もあることを理解されたい。
【００４６】
一般に、ステップ４１２でデータが変換されると、新規データパターンが生成される。新規のデータパターンの復号化、あるいはそうでない場合には“未変換”を可能にして、ホストから取得した原データパターンを効果的に再現できるように、一連のビットを新規データパターンの後に付加したり、前に付加したり、あるいは、新規データパターンの中に組み込んだりしてもよい。このような一連のビットを構成して、原データパターンの符号化に用いる変換値を指定したり、あるいは代わりに、新規データパターンを原データパターンに復号化するために使用できる適切な逆変換値を指定したりすることができる。
【００４７】
データ変換が終了したかどうかに関する判定は、ステップ４１６で行われる。すなわち、ステップ４１２で行われた変換が、効率良く格納できるデータパターンの作成に有効であったかどうかの判定が行われる。変換が終了していない旨の判定が行われた場合、変換済みデータパターン内の少なくとも１つのシンボルまたは状態があまりに頻繁に生じているか、十分頻繁に生じていない旨の指示が通常行われる。したがって、この変換済みデータパターンは、少なくとももう１回変換することができる。したがって、処理の流れは、ステップ４１６からステップ４２０へ進み、変換済みデータに関連する統計値を生成できるように変換済みデータの分析が行われる。次いで、ステップ４２４で、変換済みデータは、この分析の結果に基づいて変換される。変換済みデータがステップ４２４で変換された後、処理の流れは、ステップ４１６へ戻り、変換が終了したかどうかが判定される。
【００４８】
ステップ４１６での判定が、データが首尾よく好ましいケースに変換された旨の判定であった場合、指示はデータに対する追加の変換を行わない旨のものとなる。したがって、ステップ４２８で、変換済みデータが不揮発性メモリに格納され、データを効率良く格納するプロセスが終了する。
【００４９】
ホストが出力したデータを不揮発性メモリの中へ格納する別の適切な方法が、図４ｂに示されている。図４ｂは、本発明の一実施形態に基づいて、ホストが出力したデータを不揮発性メモリの中へ効率良く格納する別の方法に関連するステップを例示する処理のフローチャートである。データを格納するプロセス４００’は、ホストからデータを取得するステップ４０４’から始まる。データがホストから取得されるとすぐに、データはステップ４０８’で分析される。前述したように、ホストから取得したデータを分析するステップには、データ内での特定のシンボルや状態の発生割合、すなわち密度に関する統計値を生成するステップを含むものであってもよい。
【００５０】
ステップ４０８’でのデータ分析後、例えば、ステップ４０８’での分析結果を利用してステップ４１２’でデータ変換が行われる。ステップ４１２’でデータ変換が行われると、通常新規のデータパターンが生成される。新規のデータパターンの復号化や、そうでない場合には“未変換”を可能にしたりすることによって、ホストから取得した原データパターンを効果的に再現できるようにするために、一連のビットを新規のデータパターンの中へ組み込む（例えば、新規のデータパターンの後に付加する）ことができる。このような後に付加した一連のビットを構成して、原データパターンの符号化に使用した変換値を指定したり、新規のデータパターンの原データパターンへの復号化に使用できる適切な逆変換値を指定したりすることができる。
【００５１】
ステップ４１２’で行われた変換が、効率良く格納することができるデータパターンの作成に有効であったかどうかがステップ４１６’で判定される。この判定が、変換が終了していない旨の判定であった場合、変換済みデータパターン内の少なくとも１つのシンボルまたは状態があまりに頻繁に生じているか、十分頻繁に生じていない旨の指示が通常行われる。したがって、この変換済みデータパターンは少なくとももう１回変換を行うことができる。したがって、処理の流れは、ステッププ４１６’からステップ４２４’へ進み、変換済みデータが変換される。変換済みデータがステップ４２４’で変換された後、処理の流れは、ステップ４１６’へ戻り、変換が終了したかどうかの判定が行われる。ステップ４１６’での判定が、データが首尾よく好ましいケースに変換された旨のものであった場合、指示はデータに対する追加の変換を行わない旨のものとなる。したがって、ステップ４２８’で、変換済みデータが不揮発性メモリに格納され、データの効率の良い格納プロセスは終了する。
【００５２】
比較的好ましいケースとして符号化され、次いで、不揮発性メモリに格納されたデータは効率良く格納することができる。例えば、データの格納時間は比較的短く、データの格納用消費電力は比較的低いものとなる。さらに詳しく言えば、符号化済みデータの格納時間と、符号化済みデータの格納電力要件は、好ましくないケースを比較的好ましいケースに変換する場合と同じように、格納された符号化済みデータのほぼすべてのケースについて一貫した状態のままにであってもよい。さらに、好ましくないケースが実際にそれ以上格納されなくなる。すなわち、好ましくないケースは、好ましいケースに変換されたデータとして格納され、次いで、好ましくないケースの格納に必要な回路は実際上実質的に不要となる。
【００５３】
ホストからのコマンドに従って不揮発性メモリから符号化済みデータが取得されると、符号化済みデータは、ホストへ出力される前に、一般に復号化される。このような復号化は、一般に不揮発性メモリに関連する不揮発性メモリシステムの範囲内で行われる。図５を参照しながら、符号化済みデータの復号化を行う変換装置を備えた不揮発性メモリシステムの一実施形態を本発明に基づいて説明する。ホスト５０６は、不揮発性メモリシステム５０２と通信を行って、ホスト５０６とシステム５０２との間でデータや情報の交換ができるようにする。ホスト５０６が、システム５０２に関連する不揮発性メモリ５２２からデータの検索を試みるとき、変換装置が処理したデータ（図３の変換装置３１８が符号化したデータなど）が変換装置５１８の中へ読み込まれ、次いで、変換情報プロセッサ５１５へ出力される。
【００５４】
変換情報プロセッサ５１５は、一般に処理済みデータから情報を読み出して、変換装置５１８が行う適切な変換を決定して当該処理済みデータの復号化を行う。前述したように、変換済みデータが格納されると、データ変換にどの変換値を用いたかを示したり、データ変換に用いた変換を逆に行うためにどの逆変換値を使用できるかを示したりする情報と共に変換済みデータの格納が行われる。したがって、変換情報プロセッサ５１５は、符号化済みデータ（処理済みデータパターンの前に付加されたデータなど）と共に格納された情報を検討し、変換装置５１８が符号化済みデータの復号化に用いる適切な逆変換値を有効に特定する。例えば、符号化済みデータが復号化されると、符号化済みデータは元の最初の状態へ戻され、次いで、復号化データはシステム５０２のバッファ５１０へ出力される。次いで、バッファ５１０は、ホスト５０６へ復号化データを出力する。
【００５５】
適切な逆変換値を特定する情報が処理済みデータパターンの前に付加される実施形態などのような一実施形態では、バッファ５１０を実質的に省くことができる。適切な逆変換値を特定する情報が処理済みデータパターンの前に付加されると、処理済みデータパターンを変換装置５１８の中へ読み出す前に、当該適切な逆変換値が有効に認知される。この結果、適切な逆変換値を特定する情報が処理済みデータの前に付加されているため、処理済みデータを読み出す前に変換装置５１８は効果的に逆変換を行う方法を知ることになる。したがって、変換装置５１８へ処理済みデータを出力する前に処理済みデータを最初にバッファする必要性は実際上不要となる。というのは、処理済みデータが不揮発性メモリ５２２から読み出される前に、前に付加された情報から適切な逆変換値を特定できるからである。
【００５６】
別の実施形態では、変換装置は復号化データを直接ホストへ出力することができる。図６はホストと、本発明の一実施形態に基づいてホストへ直接復号化データを出力する変換装置を備えた不揮発性メモリシステムとを示す図である。ホスト６０６が不揮発性メモリシステム６０２からの情報を要求すると、システム６０２の不揮発性メモリ６２２は、システム６０２のバッファ６１０と変換情報プロセッサ６１５とへ処理済み（例えば、符号化処理済み）データを出力する。変換情報プロセッサ６１５は、不揮発性メモリ６２２から受け取った処理済みデータに関連するシンボルを読み出し、このシンボルによって、処理済みデータの処理にどの変換値を用いたか、あるいは、この処理済みデータの元の最初のフォーマットへ処理済みデータを戻す、すなわち復号化するのにどの逆変換値が適切であるかのいずれかが示される。
【００５７】
変換情報プロセッサ６１５は、変換装置６１８へ情報を出力し、バッファ６１０を介して不揮発性メモリ６２２から処理済みデータを受け取った変換装置６１８が処理済みデータに関連する任意の変換を逆に行うことができるようにする。すなわち、変換情報プロセッサ６１５が出力する情報を利用して、変換装置６１８は、不揮発性メモリ６２２に格納された符号化済みデータの復号化を行う。変換装置６１８が符号化済みデータを復号化するとすぐに、復号化データはホスト６０６へ出力される。
【００５８】
図３と関連して前述したように、不揮発性メモリに関連する格納要件を満たすために、データに対してマルチ変換を実行して、好ましいケースとしてデータの符号化を図ることができる。すなわち、容認可能なフォーマットと考えることができる（例えば、最大許容未満の割合のデータに関連する格納素子、すなわちセルが任意の単一の論理状態で存在することを有効に保証する）フォーマットでデータ変換を行うためにデータは２以上の変換値をとることもできる。マルチ変換を利用してデータ変換を行うとき、一般にマルチ逆変換を利用して変換済みデータの復号化が行われ、そうでない場合には、変換済みデータはデータの元の最初のフォーマット、すなわち未変換のフォーマットへ戻される。
【００５９】
図７は、本発明の一実施形態に基づく、ホストと、不揮発性メモリシステムとを示す図であり、不揮発性メモリシステムには、復号化データがホストへ出力される前に、マルチ反復を利用してデータの復号化を行うことができる変換装置が設けられている。不揮発性メモリシステム７０２に格納された情報を求めるホスト７０６からの要求に応じて、システム７０２の不揮発性メモリ７２２は符号化済みデータなどのデータをシステム７０２の変換装置７１８と変換情報プロセッサ７１５とへ出力する。変換情報プロセッサ７１５は、符号化済み受信データに関連するビットを不揮発性メモリ７２２から読み出し、このビットによって、符号化済みデータの処理にどの変換値を用いたか、あるいは、符号化済みデータをその元の最初のフォーマットに戻す、すなわち復号化するのにどの逆変換値が適切であるかのいずれかが示される。記載された実施形態では、関連する変換値または逆変換値を示すシンボルは、変換が行われた順序、あるいは、逆変換が行われる順序を示す情報を含むものであってもよい。さらに、このシンボルは行われた複数の変換に関する情報を含むものであってもよい。
【００６０】
変換情報プロセッサ７１５は、変換装置７１８が符号化済みデータに対する第１の逆変換を実行できるように変換装置７１８へ情報を出力する。変換情報プロセッサ７１５が変換装置７１８へ出力した情報によって、変換装置７１８は、符号化済みデータに対して行う適切な逆変換の決定が可能となる。変換装置７１８は、符号化済みデータに対する第１の逆変換を行うとすぐに、少なくとも部分的に復号化されたデータをバッファ７１０へ出力する。
【００６１】
この部分的に復号化されたデータに対して追加の変換を行う場合、バッファ７１０は、変換装置７１８へ、さらにオプションとして変換情報プロセッサ７１５へ、この部分的に復号化されたデータの出力を行う。不揮発性メモリ７２２に格納された符号化済みデータが完全に復号化されたとき、バッファ７１０は、ホスト７０６へ復号化データを出力する。データ符号化のために行われた変換を示すシンボルや、符号化済みデータの復号化用として機能できる逆変換を示すシンボルは、一般に変換装置７１８がホスト７０６へ出力したデータパターンから取り除くことも可能であることを理解されたい。
【００６２】
一般に、符号化済みデータの復号化に関連するステップは、広範に変更することができる。図８を参照して、本発明の一実施形態に基づいて符号化済みデータを復号化する１つの方法について説明する。プロセス８００は、ステップ８０４から始まり、このステップで、メモリシステム全体の一部である不揮発性メモリなどの不揮発性メモリからデータが取得される。詳細には、一般にホストから符号化済みデータが受け取られると、この符号化済みデータは不揮発性メモリから変換装置やバッファの中へ読み出される。
【００６３】
データは、不揮発性メモリ８０４から取得されるとすぐに、ステップ８０８で変換情報に基づいて変換される。記載された実施形態では、不揮発性メモリに格納されたデータに対する逆変換が行われる。前述したように、データに対して行われるこの逆変換は、不揮発性メモリに格納されたデータと共に格納されたシンボルの読み出しによって決定することができる。
【００６４】
データに対する変換が終了したかどうかの判定がステップ８１２で行われる。すなわち、ステップ８０４で取得したデータがその元の最初のフォーマット、すなわち格納用として変換される前のデータフォーマットに再び変換されたかどうかが判定される。データに対する変換の終了が判定された場合、追加の逆変換がデータを完全に復号化する必要がない旨の指示が行われる。言い換えれば、データがすでに復号化されている旨の指示が行われる。したがって、ステップ８１６で復号化データがホストへ出力され、データの復号化プロセスは終了する。
【００６５】
代わりに、ステップ８１２で、データに対する変換が終了していない旨の判定が行われた場合、言外の意味としてデータがその元の最初のフォーマットへ戻される前に、少なくとも１回の追加の逆変換がデータに対して行われるということが挙げられる。したがって、処理の流れは、ステップ８１２からステップ８２０へ移り、このステップで、すでに一部変換済みのデータ、すなわちすでに部分的に復号化されたデータが、このデータと共に格納された変換情報に基づいて再び変換される。一部変換済みデータに対する変換が終了するとすぐに、処理の流れはステップ８１２へ戻り、このステップで、ステップ８０４で取得したデータに対する変換が終了したかどうかに関する判定が行われる。
【００６６】
前述したように、変換装置は、入力データの出力データバージョンを作成するためにデータ入力の符号化などの処理を行う。変換装置は、一般に任意の適切な変換または変換アルゴリズムを用いて入力データの処理を行うことができる。図９ａは、本発明の一実施形態に基づいてデータの符号化を行う変換装置を示す図である。図２ａの変換装置２１８または図３ａの変換装置３１８の表示である場合もある変換装置９１８はホストからの入力９３０を受け入れるように構成される。変換装置９１８は、入力９３０を処理し、一般に入力９３０の表示である出力９３４を生成する。一実施形態では、入力９３０は、格納するのに比較的効率的でないと考えられる第１のデータフォーマットで構成してもよい。入力９３０が第１のフォーマットで構成されているとき、変換装置９１８は、出力９３４が、入力９３０の変換バージョンや符号化バージョンにとって効果的になるように入力９３０の処理を行うことができる。前述したように、出力９３４は、入力９３０の符号化済み表示であることに加えて、通常、出力９３４の生成に使用した変換値を示す情報も含むものである。入力９３０の変換済みバージョンを含む出力９３４内のセルの後に有効に付加される２つのセルや２つの追加のシンボルなどの、セルや追加のシンボルにこのような情報を格納することができる。
【００６７】
変換装置９１８は、一般にほぼ任意のシンボルの密度を下げたり、上げたりするような同レベル化を行うことができる。例えば、変換装置９１８は、シンボルや論理状態の、最高密度との同レベル化を行って、当該シンボルの密度の低下を図ることができる。一実施形態では、最低密度を持つシンボルを用いて最高密度を持つシンボルの同レベル化を行うことができる。すなわち、シンボル密度を上げることにより、未符号化フォーマットの最低密度を持つシンボルの、最高密度との同レベル化の達成が可能となる。変換済み出力が不揮発性メモリなどに格納される前に、マルチ変換や同レベル化処理を利用して、個々のシンボルの所望の密度を達成することが可能となる。システムによっては、ほぼ５０％以上の時間シンボルが出現しなくなるように論理状態を同レベル化した結果、およそ５％のパフォーマンス・スピードの向上が得られるものもあることが観察された。
【００６８】
同レベル化のアルゴリズムの一例が、図９ｂに示されている。詳細には、図９ｂは、本発明の一実施形態に基づく、図９ａの符号化用変換器９１８に関連する変換を示す図である。図に示すように、入力９３０’内で最も密度が高いシンボルにシンボル“Ｄ”とラベルがつけられ、これに対して、入力９３０’内で最も密度が低いシンボルには“Ｓ”とラベルがつけられている。記載された実施形態では、最も密度が高いシンボルと、最も密度が低いシンボルとは、入力９３０’に潜在的に関連する１６個のシンボルのうちの２つのシンボルである。説明の容易さを図るために、主にシンボル“Ｄ”と“Ｓ”のみを示している。しかし、入力９３０’に関連するデータストリームを通じてほぼ任意の場所で別のシンボルが生じる場合もあることを理解されたい。言い換えれば、別のシンボルが、入力９３０’に関連するデータストリームに先行するか、入力９３０’に関連するデータストリームの範囲内に散在している場合もある。例示を目的として、シンボル“Ｆ”とシンボル“Ｇ”の各々の単一の発生が、入力９３０’に関連するデータストリームの中に示されているが、シンボル“Ｆ”と“Ｇ”とは入力９３０’の中にシンボル“Ｓ”よりも頻繁に出現する。記載された実施形態では、シンボル“Ｆ”と“Ｇ”の使用に関わる同レベル化は行われていない。したがって、シンボル“Ｆ”と“Ｇ”の発生は、変換装置９１８’によって実際上変換されない。
【００６９】
入力９３０’が、順序化されたデータストリーム、すなわち符号化用変換器９１８’へ逐次出力されるデータストリームであるのに対して、順序化されていないフォーマットでこのデータストリームの出力を行うことも可能である。順序化されないフォーマットでデータストリームの出力が行われた場合、符号化用変換器９１８’に関連する処理を変更して順序化されていないデータストリームの変換を行うことができる。
【００７０】
入力９３０’は、シンボル“Ｓ”を用いてシンボル“Ｄ”を同レベル化するように構成される符号化用変換器９１８’へ出力される。すなわち、符号化用変換器９１８’は、シンボル“Ｓ”を利用することによってシンボル“Ｄ”の密度を下げる変換アルゴリズムを実行する。記載された実施形態では、符号化用変換器９１８’は、シンボル“Ｄ”かシンボル“Ｓ”のいずれかの第１の発生が同じ状態のままとなることを許容するものである。詳細には、シンボル“Ｄ”とシンボル“Ｓ”との間で、いずれのシンボルが入力９３０’の範囲内で最初に発生した場合でも、その発生シンボルが同じシンボルに符号化されることになる。すべてのシンボル“Ｓ”に後続するすべての発生シンボルは、直近の前回符号化されたシンボル“Ｄ”あるいは“Ｓ”として同じシンボルに符号化される。例えば、直近の前回のシンボルがシンボル“Ｓ”として符号化された場合、現在のシンボル“Ｓ”はシンボル“Ｓ”として符号化され、次いで、直近の前回符号化されたシンボルがシンボル“Ｄ”として符号化された場合、現在のシンボル“Ｓ”はシンボル“Ｄ”として符号化されることになる。すべての入力シンボル“Ｄ”に後続するすべてのケースは、直近の前回符号化されたシンボルとして反対の態様で符号化される。例えば、直近の前回のシンボルがシンボル“Ｓ”として符号化された場合、現在のシンボル“Ｄ”はシンボル“Ｄ”として符号化され、次いで、直近の前回のシンボルがシンボル“Ｄ”として符号化された場合、現在のシンボル“Ｄ”はシンボル“Ｓ”として符号化される。
【００７１】
図に示すように、出力９３４’は、より少数のシンボル“Ｄ”の発生を含む入力９３０’の同レベル化を表示したものである。言い換えれば、シンボル“Ｄ”の密度は、出力９３４’で下がることになる。シンボル“Ｓ”の密度が上昇したものとして示されているのに対して、別のシンボルを用いてシンボル“Ｓ”を同レベル化することにより、シンボル“Ｓ”の密度が下げられる場合もあることを理解されたい。すなわち、出力９３４’での所望の密度よりも高い密度を有するものとしてシンボル“Ｓ”を特定し、新たな入力として出力９３４’を符号化用変換器９１８’へ出力することにより、低い密度、すなわち疎なシンボルを持つ異なるシンボルを用いて第２の変換を行う際に同レベル化を行うことが可能となる。
【００７２】
１６個の状態またはシンボルが生じる或る実施形態の場合、入力９１８’内の密度が最も高いシンボルと密度が最も低いシンボルとを有効に同レベル化を行うことを利用することが可能なおよそ２４０個までの変換アルゴリズムの存在が考えられる。このような実施形態では、変換は単一の対のシンボルを同レベル化するステップを含むことが可能であり、そのようにした場合、入力９３０’に関連する密度が最も低いシンボルが、変換後、およそ６．６７％も発生する場合がある。変換装置９１８’を用いてシンボルの同レベル化を行い、変換済みデータパターン内でほぼ５０％以上の時間シンボルが発生しなくなるようにすることができる。例えば、図に示すように、シンボル“Ｄ”とシンボル“Ｓ”との同レベル化を行って、シンボル“Ｄ”とシンボル“Ｓ”のいずれも出力９３４’内でほぼ５０％以上の時間発生しないようにすることができる。
【００７３】
変換装置９１８’を用いて、マルチ変換を順次行うことなどによりデータの順次符号化を行うことも可能である。データの順次符号化を行うとき、変換装置９１８’は密度が最も高い状態またはシンボルと、密度が最も低い状態またはシンボルとの同レベル化を行うことができる。符号化済みの組のデータ９３４’が形成されるとすぐに、変換装置９１８’は、新たな最も高い密度のシンボルまたは符号化済みデータ内の最も高い密度のシンボルと、新たな最も疎なシンボルまたは符号化済みデータ内の最も疎なシンボルとの同レベル化を行うことができる。２回のシーケンシャルな同レベル化処理を行った後、１６個のシンボルを持つ或る実施形態では、変換終了時にほぼ５０％以上の時間シンボルが発生しなくなる。一実施形態では、２回のシリアルな同レベル化処理が行われた後、変換装置９１８’は新たな最も高い密度のシンボルと新たな最も疎なシンボル（すなわち、２回の符号化済みデータでの最も高い密度のシンボルと最も疎なシンボル）との同レベル化を行うことができる。このような第３の変換の結果、変換終了時に２５％以上の時間シンボルが発生しなくなる。
【００７４】
変換装置９１８’は少なくとも２回の高い密度のシンボルの同レベル化をほぼ同時に、すなわち並行して行うように構成することも可能である。変換装置９１８’の中を通り抜けるパスの最中に、変換装置９１８’は、最も高い密度のシンボルと、最も疎なシンボルとの同レベル化、並びに、２番目に最も高い密度のシンボルと、２番目に最も疎なシンボルとの同レベル化を同時に行うように構成することができる。例えば、前述したように、密度が最も高いシンボルと密度が最も低いシンボルとの同レベル化が行われるとき、符号化済みデータ、すなわち出力９３４’ではほぼ５０％以上の時間シンボルが発生しなくなる。しかし、変換装置９１８’の中を通り抜ける第２のパスの最中に符号化済みデータ内の２番目に最も高い密度のシンボルと、符号化済みデータ内の２番目に最も疎なシンボルとの同レベル化を行いながら、変換装置９１８’がデータを順次符号化して、符号化済みデータ内の最も高い密度のシンボルと、符号化済みデータ内での最も疎なシンボルとの同レベル化を行うようにするとき、２倍の符号化済みデータ内でおよそ２５％以上の時間シンボルが発生しなくなる。
【００７５】
反復変換に関連する追加の複雑さが一組のデータに付加される結果、一般に、前述した例により示されているように、シンボルの最大密度のさらなる低下がもたらされる。しかし、前述したように、シンボルの最大密度を下げるプロセスに関連する複雑さは、上昇したレベルの同レベル化に関連する利点を効果的に妥協させることができる程度まで格納処理のパフォーマンス全体に影響を与える場合もある。この複雑さは、マルチ変換の終了に必要な追加の計算時間、追加の回路、あるいは追加の電力に関連する場合もある。したがって、同レベル化や変換処理に関連する複雑さと格納上の利点との間でトレードオフが行われる可能性もある。さらに、並列変換、すなわちほぼ同時の変換を行うことを可能にするのに必要な回路などの論理回路のコストと、マルチ変換を順次行うのに必要な時間との間でのトレードオフとが行われる場合もある。
【００７６】
データの符号化や同レベル化が行われるとすぐに、格納された符号化済みデータの検索要求が行われた場合、符号化済みデータは、一般に入力信号になって、復号化用変換器の中へ入ることになる。図１０ａは、本発明の一実施形態に基づいてデータを復号化する変換装置を示す図である。復号化用変換器１０１８は、図９ａの符号化用変換器９１８のような符号化用変換器などによる符号化や同レベル化などの処理が行われた入力信号１０３０を一般に受け入れる。一実施形態では、復号化用変換器１０１８と図９ａの符号化用変換器９１８は、不揮発性メモリシステムに関連する変換装置全体の一部であってもよい。復号化用変換器１０１８は、入力１０３０を復号化して出力１０３４を生成する。一般に、出力１０３４は、図９ａの入力９３０などの符号化用変換器へ出力される入力信号と同じフォーマットで構成される。
【００７７】
図１０ｂを参照しながら、図９ｂの符号化用変換器９１８’により行われた符号化の効果的な逆変換の実行に適した復号化用変換器について本発明の一実施形態に基づいて説明する。図９ｂの符号化用変換器９１８’によって符号化された入力１０３０’は、復号化用変換器１０１８’へ出力される。復号化用変換器１０１８’は、入力１０３０’の中へ散在している２つのシンボルなどの入力１０３０’内のシンボルを読み出すことにより取得した情報を利用するように構成され、これらのシンボルは、入力１０３０’の作成に用いる変換値や、代わりに、出力１０３４’の作成に用いる適切な逆変換値を特定して、入力１０３０’の復号化を図るものである。
【００７８】
記載された実施形態では、復号化用変換器１０１８は、シンボル“Ｄ”あるいはシンボル“Ｓ”の第１の発生のいずれも変更しない。復号化用変換器１０１８’は、シンボル“Ｓ”の現在の発生よりも前に、シンボル“Ｓ”のほうが、入力１０３０内のシンボル“Ｄ”の発生よりも最近発生した場合、シンボル“Ｓ”のほぼすべての発生をシンボル“Ｓ”として復号化するように構成される。すなわち、入力１０３０’内の直近の前回のシンボルがシンボル“Ｓ”であれば、シンボル“Ｓ”の現在の発生はシンボル“Ｓ”として復号化される。そうでない場合には、シンボル“Ｓ”の現在の発生は、シンボル“Ｓ”の現在の発生が、シンボル“Ｓ”の第１の発生であり、かつ、シンボル“Ｓ”の現在の発生がシンボル“Ｓ”として復号化されるシンボル“Ｄ”の第１の発生の前に生じない限り、シンボル“Ｄ”として復号化される。
【００７９】
また、復号化用変換器１０１８’は、シンボル“Ｄ”の現在の発生よりも前に、シンボル“Ｄ”のほうがシンボル“Ｓ”よりも最近発生した場合、現在の発生をシンボル“Ｓ”として復号化し、さらに、シンボル“Ｄ”の現在の発生の前に、シンボル“Ｓ”が最近発生した場合、現在の発生をシンボル“Ｄ”として復号化するようにも構成される。入力１０３０’内のシンボル“Ｓ”のいずれかの発生前にシンボル“Ｄ”の第１の発生が生じた場合、この第１の発生シンボルはシンボル“Ｄ”として復号化される。
【００８０】
特定のシンボルまたは状態の最大密度を最小化するようにデータ変換を行うことが可能であるのに対して、個々のシンボルまたは状態が最小密度を持つことを有効に保証するようにデータ変換を行うことも可能である。例えば、シンボルが“１”か“０”のいずれかである２進システムでは、図９ｂの変換装置９１８’を用いてデータを変換し、変換済みデータ内のシンボル“１”の割合と、変換済みデータの内のシンボル“０”の割合とがそれぞれ最小値の３３％よりも大きくなるようにすることも可能である。
【００８１】
本発明のわずか２、３の実施形態のみについて説明したにすぎないが、本発明の精神または範囲から逸脱することなく、多くの別の特定の形態でも本発明の具現化が可能であることを理解されたい。例えば、ホストシステムと通信を行うメモリデバイス上で行われるものとして、データの符号化と復号化処理について一般的に説明したが、符号化処理と復号化処理のいずれかの処理あるいは双方の処理をホストシステム上で代わりに行ってもよい。言い換えれば、ホストシステムは、格納対象データに関連する統計値を生成し、この統計値に基づいて異なるフォーマットにデータを変換し、その後、メモリデバイス上にこの変換済みデータを格納させるように構成してもよい。代わりに、ホストシステムは、メモリデバイスから符号化済みデータを読み出し、データ復号化用の適切な変換値を決定し、次いで、データの復号化を行うように構成されるものであってもよい。
【００８２】
本発明は、一般に任意の適切なメモリデバイスと関連して実現することも可能である。前述したような適切なメモリデバイスは、ＰＣカード、コンパクトフラッシュカード、マルチメディアカード、およびセキュリティデジタルカードを備えるものであってもよい。別の適切なメモリデバイスは、スマートメディアカードとメモリステッィクカードとを備えるものであってもよいが、これらのみに限定されるものではない。
【００８３】
一実施形態では、ホストは、データパターンと統計値とをメモリデバイスへ出力する前に、データパターン用の統計値の生成を行うことが可能である。ホストが統計値を生成すると、メモリデバイスは、いずれの統計値もまったく生成する必要なく、データパターンを好ましいフォーマットに変換することが可能となる。すなわち、ホストがデータパターンに関連する統計値を生成するとき、メモリデバイスは、単にこれら統計値を用いてデータパターンを変換することができる。
【００８４】
前述したように、所定のデータセットまたはパターンに対してマルチ変換を実行して、データセットを格納用の適切なフォーマットに変換することができる。一実施形態では、マルチ変換の個々の変換の終了後、統計値生成装置による変換や中間変換についての検討や処理を行って、効率良く格納可能なフォーマットを形成するために追加の変換の必要があるかどうかを判定することができる。
【００８５】
データの復号化を行う変換装置とは別個のものとして、データの符号化を行う変換装置について説明したが、単一の変換装置によってデータの符号化と復号化の双方を行うことも可能であることを理解されたい。すなわち、不揮発性メモリシステムは、データの符号化と復号化の双方の機能を備える単一の変換装置を備えることも可能である。同様に、統計値生成装置と変換情報プロセッサとは、変換対象データに関連する統計値の決定と、変換済みデータを変換した方法の有効な決定との双方の決定を行うように構成された単一のプロセッサの一部であってもよい。
【００８６】
ほぼ任意の不揮発性メモリシステムに関連する変換済みデータに対してマルチ逆変換を実行してもよい。言い換えれば、データが不揮発性メモリから読み出されて、変換装置の中へ、次いで、バッファの中へ入るシステムにおけるデータ変換時の利用に適したものとしてマルチ逆変換について説明したが、変換装置が処理する前に変換済みデータをバッファへ出力するシステムにおいてマルチ逆変換を行うことも可能である。
【００８７】
データの効率的格納を可能にするものとして、より好ましくないデータパターンやコーナーケースから、好ましいデータパターンや一般的なデータパターンを効果的に作成するデータ変換について説明したが、種々の別の目的のために、データ変換を行い、好ましいデータパターンの効果的な作成を行うことも可能であることを理解されたい。すなわち、ほぼ任意の適切な目的のために、データセット内に出現するシンボルの同レベル化を実行することも可能である。例えば、１つのサイトから別のサイトへ送信するデータパターン内の状態を同レベル化することによって、さらに効率の良い送信処理と、さらに効率の良い受信処理とが可能となる場合もある。このような送信処理プロセスは、ネットワーク内での有線送信や、ネットワーク内での無線送信を含むものであってもよい。
【００８８】
以上、１つの状態を別の状態を用いて同レベル化を行うときの利用に適したものとして図９ｂなどを参照しながら変換について説明した。前述したように、２以上の状態を減らす場合、マルチ変換の利用が可能である。一般に、このような変換装置の中を通る単一パスを構成して、２以上の状態の減少を図ることも可能であることを理解されたい。例えば、このような変換装置の中を通る単一パスで、２または３以上のシンボルまたは状態対の同レベル化を行うことも可能である。このような変換装置の中を通る１回のパスで２以上の状態対の同レベル化を行うとき、所定の変換またはデータに対する同レベル化を終了するのに、変換装置の中を通るより少数のパス全体を必要とする場合もある。
【００８９】
一般に、データの符号化と復号化とに関連するステップは、広範に変更することが可能である。本発明の精神または範囲から逸脱することなく、ステップの追加、除去、変更、最追加を行うことも可能である。例えば、前述したように、生のデータ、すなわち未変換データの分析時に、データ変換全体の終了に用いる変換値が決定される実施形態の場合、符号化処理または変換処理時の変換済みデータを分析するステップを実質的に省くことも可能である。代わりに、変換済みデータを分析するステップは、変換全体が終了したかどうかの判定に先行することも可能である。
【００９０】
データセットの変換済みバージョン内での任意の１つの状態の最大密度を実質的に最小化する際の利用や、データセットの変換済みバージョン内での任意の１つの状態の最小密度を実質的に最大化する際の利用に適しているようなデータセット内での状態の変換や同レベル化について説明した。状態の同レベル化を実行して、別の状態の最小密度を実質的に最大化しながら、特定の状態の最大密度を実質的に最小化することも可能である。状態の同レベル化を実行して、データセットの変換済みバージョンにおけるすべての状態密度が所定の範囲内に属することが有効に保証されることも理解されたい。言い換えれば、状態の同レベル化を行って、データセットの変換済みバージョンの範囲内で、上のしきい値を超える密度を持つ状態が存在せず、かつ、下のしきい値より低い密度を持つ状態が存在しないようにすることが可能となる。異なる状態に対する上のしきい値はほぼ同じであってもよく、また、異なる状態に対する下のしきい値もほぼ同じであってもよいが、異なる状態に対するしきい値は異なる値にすることも可能である。
【００９１】
データパターンの範囲内で特定の状態の割合を決定するという観点から、データパターンまたはデータセットの範囲内の特定の状態の密度の決定について説明した。データパターンの長さがほぼ一定である実施形態などの一実施形態では、特定の状態の密度を決定するステップが、特定の状態の発生回数を実質的にカウントするだけのステップしか含まない場合もある。したがって、特定の状態の密度を決定するステップは、一般に個々の状態の発生に伴って生じるカウントや割合などの数値との関連づけを含むものであってもよい。
【００９２】
データセットの変換済みバージョンの範囲内での状態は、データセットに対して行う変換量や同レベル化量を、一般に選択して、所望の最大密度と最小密度とを満たすことができるようにすることも可能であるのに対して、本発明の精神または範囲から逸脱することなく、別の判断基準に基づいて当該変換量や同レベル化量の選択を行うことも可能である。例えば、同レベル化量を選択して、或る一定量の計算上のオーバーヘッドを超えないようにしてもよい。同レベル化量を選択して、或る一定量の計算上のオーバーヘッドを超えないようにすることによって、データの変換と格納とに関連するシステム全体のパフォーマンスに多大な影響を与えることなく、データの格納効率の向上を図ることが可能となる。計算上のオーバーヘッドが或る特定のレベルを超えない旨を指定する実施形態は、特定の或る状態の最大密度のほうが望ましい密度よりもわずかに高くなる場合があるなどの、変換処理をわずかに妥協させる場合もあるが、この妥協は、システム全体のパフォーマンスが或る一定レベルでの状態のままであれば、容認できるものと考えることができる。したがって、本願の例は、本発明を例示するものであり、本発明を限定するものではないと考えるべきである。さらに、本発明は、本願明細書に示された細部に限定されるものではなく、添付の特許請求の範囲内での変更が可能である。
【図面の簡単な説明】
【００９３】
【図１ａ】本発明の一実施形態に基づく不揮発性メモリデバイスを備えた一般的ホストシステムを示す図である。
【図１ｂ】本発明の一実施形態に基づく図１ａの不揮発性メモリデバイス１２０などの不揮発性メモリデバイスを示す図である。
【図２ａ】本発明の一実施形態に基づく変換装置を備えた第１の不揮発性メモリシステムを示す図である。
【図２ｂ】本発明の一実施形態に基づく変換装置を備えた第２の不揮発性メモリシステムを示す図である。
【図２ｃ】本発明の一実施形態に基づく変換装置を備えた第３の不揮発性メモリシステムを示す図である。
【図３ａ】本発明の一実施形態に基づく、データの格納前にデータに対するマルチ変換の実行が可能な第１の不揮発性メモリシステムと通信を行うホストを示す図である。
【図３ｂ】本発明の一実施形態に基づく、データの格納前にデータに対するマルチ変換の実行が可能な第２の不揮発性メモリシステムと通信を行うホストを示す図である。
【図４ａ】本発明の一実施形態に基づく、ホストが出力するデータを不揮発性メモリの中へ効率良く格納する１つの方法に関連するステップを例示する処理のフローチャートである。
【図４ｂ】本発明の一実施形態に基づく、ホストが出力するデータを不揮発性メモリの中へ効率良く格納する別の方法に関連するステップを例示する処理のフローチャートである。
【図５】本発明の一実施形態に基づく、符号化済みデータを復号化する変換装置を備えた不揮発性メモリシステムを示す図である。
【図６】本発明の一実施形態に基づく、ホストと、復号化データを直接ホストへ出力する変換装置とを備えた不揮発性メモリシステムとを示す図である。
【図７】本発明の一実施形態に基づく、ホストと、復号化データをホストへ出力する前にマルチ反復を用いてデータを復号化できる変換装置を備えた不揮発性メモリシステムとを示す図である。
【図８】本発明の一実施形態に基づく、符号化済みデータの復号化に関連するステップを例示する処理のフローチャートである。
【図９ａ】本発明の一実施形態に基づくデータを符号化する変換装置を示す図である。
【図９ｂ】本発明の一実施形態に基づく図９ａの符号化用変換器９１８に関連する変換を示す図である。
【図１０ａ】本発明の一実施形態に基づくデータを復号化する変換装置を示す図である。
【図１０ｂ】本発明の一実施形態に基づく、図９ｂの符号化用変換器９１８’により行われる符号化の逆変換に適した復号化用変換器を示す図である。
【図１ａ】
2005537551.tif 000003
【図１ｂ】
2005537551.tif 000004
【図２ａ】
2005537551.tif 000005
【図２ｂ】
2005537551.tif 000006
【図２ｃ】
2005537551.tif 000007
【図３ａ】
2005537551.tif 000008
【図３ｂ】
2005537551.tif 000009
【図４ａ】
2005537551.tif 000010
【図４ｂ】
2005537551.tif 000011
【図５】
2005537551.tif 000012
【図６】
2005537551.tif 000013
【図７】
2005537551.tif 000014
【図８】
2005537551.tif 000015
【図９ａ】
2005537551.tif 000016
【図９ｂ】
2005537551.tif 000017
【図１０ａ】
2005537551.tif 000018
【図１０ｂ】
2005537551.tif 000019
【国際調査報告】
2005537551.tif 000020
2005537551.tif 000021