(57)【要約】【課題】  シリコン記憶メディア、コントローラ及びそのアクセス方法を提供する。【解決手段】  シリコン記憶メディアは、メモリーモジュール及びコントローラを備える。ブロックは、基本消去/書き込み/保存ユニットとしてメモリーモジュールに指定される。コントローラは、コンピュータシステムに電気的に接続されたシステムインターフェイスと、メモリーモジュールに電気的に接続されたメモリーインターフェイスと、データをバッファリングするためのデータバッファと、データバッファに記憶されたデータを圧縮/解凍するために、双方向バスを介してデータバッファに電気的に接続されたデータ圧縮/解凍モジュールとを備える。コンピュータシステムからデータバッファに送信されたデータは、データフレームからなり、メモリーモジュールの一つのブロックは、単に一つのデータフレームのデータを保存するだけである。【選択図】  図５A  
2005322208.tif 000002
【特許請求の範囲】
【請求項１】
メモリーモジュールを有し且つブロックを消去ユニットとして用いるシリコン記憶メディアに適するシリコン記憶メディアのコントローラであって、該シリコン記憶メディアコントローラは、
コンピュータシステムに電気的に接続されたシステムインターフェイスと、
前記メモリーモジュールに電気的に接続されたメモリーインターフェイスと、
前記システムインターフェイス及び前記メモリーインターフェイスに電気的に接続されたデータバッファと、
該データバッファに記憶されたデータを圧縮/解凍するために、双方向バスを介して前記データバッファに電気的に接続されたデータ圧縮/解凍モジュールとを備え
前記コンピュータシステムによって前記システムインターフェイスを介して前記データバッファに送信されたデータは、ブロックの記憶容量に応じたサイズを有するデータフレームに前記データ圧縮/解凍モジュールによって圧縮されることを特徴とするシリコン記憶メディアのコントローラ。
【請求項２】
前記データバッファは、前記システムインターフェイス及び前記データ圧縮/解凍モジュールの間に電気的に接続された第一システムデータバッファと、前記メモリーインターフェイス及び前記データ圧縮/解凍モジュールの間に電気的に接続された第一メモリーデータバッファと、第二システムデータバッファと、第二メモリーデータバッファとを備え、
前記第一システムデータバッファに記憶されたデータは前記データ圧縮/解凍モジュールによって圧縮され、前記第一メモリーデータバッファに記憶されたデータは前記データ圧縮/解凍モジュールによって解凍され、前記第二システムデータバッファは前記データ圧縮/解凍モジュールによって解凍された前記データを記憶するために、前記システムインターフェイス及び前記データ圧縮/解凍モジュールの間に電気的に接続され、前記第二メモリーデータバッファは前記データ圧縮/解凍モジュールによって圧縮された前記データを記憶するために前記メモリーインターフェイス及び前記データ圧縮/解凍モジュールの間に電気的に接続されることを特徴とする請求項１に記載のシリコン記憶メディアのコントローラ。
【請求項３】
前記データ圧縮/解凍モジュールは、データ圧縮回路と、データ解凍回路と、前記データ圧縮回路及び前記データ解凍回路によって用いられる対応する圧縮アルゴリズムを記憶するために、前記データ圧縮回路及び前記データ解凍回路にそれぞれ電気的に接続された、データを圧縮/解凍するための少なくとも一つの圧縮アルゴリズム記述ユニットと、前記圧縮アルゴリズムによって用いられる複数のパラメータを記憶するために、前記データ圧縮回路及び前記データ解凍回路にそれぞれ電気的に接続された少なくとも一つのパラメータテーブルとを備え、
前記データ圧縮回路は、前記データフレームの前の圧縮オペレーションにより用いられる前記圧縮アルゴリズム及び前記パラメータを記録することを特徴とする請求項１又は２に記載のシリコン記憶メディアのコントローラ。
【請求項４】
前記シリコン記憶メディアは、コンパクトフラッシュカード（CF）、メモリースティックカード（MS）、セキューアデジタルカード（SD）及びスマートメディアカード（SM）のうちの一つであることを特徴する請求項１乃至３のいずれかに記載シリコン記憶メディアのコントローラ。
【請求項５】
ブロックを消去ユニットとして用いるシリコン記憶メディアに適するシリコン記憶メディアへのデータ書き込み方法であって、該書き込み方法は、
前記シリコン記憶メディアにオリジナルデータが存在しない場合前記オリジナルデータを圧縮データに圧縮し、前記圧縮データの前に前記オリジナルデータの領域を含む先行記述ユニットを付加してデータフレームを生成し、前記データフレームを前記シリコン記憶メディアに記憶し、
前記シリコン記憶メディアに前記オリジナルデータが存在する場合前記シリコン記憶メディアから前記オリジナルデータに対応する前記データフレームを読み出し、前記オリジナルデータに従って前記データフレームを解凍することによって得られたデータを更新し、更新データをデータフレームフォーマットに変換し、前記データフレームを前記シリコン記憶メディアに記憶することからなる書き込み方法であって、
前記シリコン記憶メディアの一つのブロックは、単に前記データフレームを記憶するだけとされていることを特徴とする書き込み方法。
【請求項６】
前記データフレームは、前記データフレームの最後に配置されるエラーチェック訂正コードを更に備えることを特徴とする請求項５に記載のシリコン記憶メディアへのデータ書き込み方法。
【請求項７】
前記先行記述ユニットは、前記オリジナルデータを圧縮するために用いられるアルゴリズム及びパラメータと、対応するデータフレームが記憶されるブロックの状態とを備えることを特徴とする請求項５又は６に記載のシリコン記憶メディアへのデータ書き込み方法。
【請求項８】
前記先行記述ユニットにおける前記オリジナルデータの前記領域は、前記オリジナルデータのスタートアドレス及び前記オリジナルデータの長さによって示されることを特徴とする請求項５に記載のシリコン記憶メディアへのデータ書き込み方法。
【請求項９】
ブロックを消去及び書き込みユニットとして用いるシリコン記憶メディアに適し、該シリコン記憶メディアのブロックがデータフレームを備え、該データフレームが圧縮されていないオリジナルデータの領域を示す先行記述ユニットを備えるシリコン記憶メディアからのデータ読み出し方法において、該方法は、
前記シリコン記憶メディアから前記データフレームを読み出し、
前記先行記述ユニットにより前記データフレームを解凍して前記オリジナルデータを得、
前記シリコン記憶メディアから前記オリジナルデータを出力することを特徴とするシリコン記憶メディアからのデータ読み出し方法。
【請求項１０】
前記先行記述ユニットは、更に、前記オリジナルデータを圧縮するために用いられるアルゴリズム及びパラメータと、対応するデータフレームが記憶されるブロックの状態とを備えることを特徴とする請求項９に記載のシリコン記憶メディアからのデータ読み出し方法。
【請求項１１】
前記オリジナルデータを得るために前記先行記述ユニットにより前記データフレームを解凍する工程は、
前記先行記述ユニットから前記オリジナルデータを圧縮するために用いられる前記アルゴリズム及び前記パラメータを決定し、
前記オリジナルデータを圧縮するために用いられる前記アルゴリズム及びパラメータにより前記データフレームを解凍することを特徴とする請求項１０に記載のシリコン記憶メディアからのデータ読み出し方法。
【請求項１２】
前記先行記述ユニットにおける前記オリジナルデータの前記領域は、前記オリジナルデータのスタートアドレス及び前記オリジナルデータの長さによって示されることを特徴とする請求項９乃至１１のいずれかに記載のシリコン記憶メディアからのデータ読み出し方法。
【請求項１３】
前記データフレームは、更に、前記データフレームの最後に配置されるエラーチェック訂正コードを備えることを特徴とする請求項９乃至１２のいずれかに記載のシリコン記憶メディアからのデータ読み出し方法。
【請求項１４】
ブロックを消去ユニット及びデータ記憶ユニットとして用いるメモリーモジュールと、コントローラとを備えるシリコン記憶メディアであって、
前記コントローラは、
コンピュータシステムに電気的に接続されたシステムインターフェイスと、
前記メモリーモジュールに電気的に接続されたメモリーインターフェイスと、
前記システムインターフェイス及び前記メモリーインターフェイスに電気的に接続されたデータバッファと、
該データバッファに記憶されたデータを圧縮/解凍するために、双方向バスを介して前記データバッファに電気的に接続されたデータ圧縮/解凍モジュールとを備え、
前記コンピュータシステムによって前記システムインターフェイスを介して前記データバッファに送信されたデータは、前記データ圧縮/解凍モジュールによってデータフレームに圧縮され、一つのブロックは、単に一つのデータフレームを記憶するだけであることを特徴とするシリコン記憶メディア。
【請求項１５】
前記データ圧縮/解凍モジュールは、
データ圧縮回路と、データ解凍回路と、データを圧縮/解凍するための前記データ圧縮回路及び前記データ解凍回路によって用いられる圧縮アルゴリズムを記憶するために、前記圧縮回路及び前記解凍回路にそれぞれ電気的に接続された少なくとも一つの圧縮アルゴリズム記述ユニットと、前記圧縮アルゴリズムによって用いられる複数のパラメータを記憶するために前記データ圧縮回路及び前記データ解凍回路にそれぞれ電気的に接続される少なくとも一つのパラメータテーブルとを備え、
前記データ圧縮回路は、前記データフレームの前に圧縮オペレーションにより用いられる前記圧縮アルゴリズム及び前記パラメータを記録することを特徴とする請求項１４に記載のシリコン記憶メディア。
【請求項１６】
前記シリコン記憶メディアは、コンパクトフラッシュカード（CF）、メモリースティックカード（MS）、セキューアデジタルカード（SD）及びスマートメディアカード（MS）のうちの一つであることを特徴とする請求項１４又は１５に記載のシリコン記憶メディア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリコン記憶メディアに関し、特に、可変長データフレーム型のシリコン記憶メディア、コントローラ及びそのアクセス方法に関する。
【背景技術】
【０００２】
今日では、シリコンチップからなるメモリーをシリコン記憶メディアとして用いることが一般的である。メモリーに情報を書き込み、メモリーから情報を読み出し、そして、システムに情報を送信するために、シリコン記憶メディアの多くは、コントローラを介してシステムインターフェイスに接続されている。シリコン記憶メディアは、低電力消費、高い信頼性、大容量及び高いデータアクセス速度という特徴を有するため、デジタルカメラ、デジタルウォ−クマン、パーソナルデジタルアシスタント（PDA）の製品等の種々の携帯デジタル電気機器に広く利用され、そのビジネスは、急速に成長している。コンパクトフラッシュ（登録商標）カード（CF）、メモリースティックカード（MS）、セキュアーデジタルカード（SD）及びスマートメディアカード（SM）等を含め、多くのタイプのシリコン記憶メディアが、オリジナルのシリコン記憶メディアから得られている。更に、シリコン記憶メディアをパーソナルコンピュータに適応する際は、近年、ユニバーサルシリアルバス（USB）を用いたUSBポータブルディスクが、大変な人気製品となっている。
【０００３】
上述したようなシリコンチップメモリーからなり、シリコン記憶メディアとして用いられる種々の携帯記憶装置の記憶容量は、内蔵されたメモリーの容量により制限される。携帯記憶装置内のコントローラは単一のインターフェイスのみを備え、該インターフェイスはシステムに接続されて該システムからインストラクションを受信し、受信したインストラクションによりメモリーのコンテンツにアクセスするようになっている。従って、携帯記憶装置のコストの大部分は、メモリーチップのコストである。製造コストを削減するために、いかにして限られたメモリー容量を十分に使うことができるかが主題となっている。
【０００４】
以下に、従来のメモリーの割り当て方法を述べる。従来技術では、主に一つのセクセクタでデータを処理し、主にシリコン記憶メディアの基本記憶ユニットとしてページを指定する。この場合、一つのセクタのサイズは５１２バイトでセクタページのサイズはシリコン記憶メディアに応じて決まる。図１Aに示す６４MBのNAND型フラッシュメモリー１００は符号１０４で示す４０９６ブロックからなり、各ブロック１０４は３２ページからなる。更に、各ページは、５２８バイトの全サイズを構成する５１２バイトのデータエリアと１６バイトの冗長エリア（リダンダント（redundant）エリア）とからなる。図１Bに示す１２８MBのNAND型フラッシュメモリ１０６は、６４ページに相当する１０２４ブロックからなる。このような場合、各ページのサイズは、２１１２バイトの全サイズを構成する２０４８バイトのデータエリアと６４バイトの冗長エリアとからなる。
【０００５】
シリコン記憶メディアの基本アクセス（読み出し/書き込み）ユニットとして単一のページを指定する。しかしながら、情報を正確に記録するために、まず、消去操作をシリコン記憶メディアに対して行い、その情報を書き込む前にページのコンテンツを消去して書き込まれる情報が、正確に保存されるようにする。更に、消去操作を行なうために必要な時間は、アクセス操作を行なうために必要な時間よりも長くなっている。消去作業の制御に必要な回路は、非常に複雑な回路となっているため、製造コストを削減するために、消去作業によって影響を受けるシリコンメディアのユニット容量を向上させることを目標とすることは一般的な取り組みである。製造コスト削減の目的を達成するために、シリコン記憶メディアに設置された所要の回路の数を減らし、消去操作を、一度に単一のブロックの連続する容量スペースのみに一度に影響を与えることができるように、例えば、３２ページを一つのブロックに結合する。
【０００６】
要約すると、シリコン記憶メディアの主な特徴は以下のとおりである。
（a）アクセス操作のユニット容量は、消去操作のユニット容量と異なる。アクセス操作を主にページ単位で処理し、消去操作を主にブロック単位で処理する。しかしながら、単一のブロックが、数枚の連続するページを備えることは普通である。（ｂ）これら二つの操作を行なうために必要な時間は同一ではない。消去操作を行なうために必要な時間は、アクセス操作を行なうために必要な時間よりも長くなっている。（ｃ）書き込まれるデータをシリコン記憶メディアに正確に記録することができるように、書き込み操作を行う前に読み出されるページを消去し、空の状態であることを確認する必要がある。シリコン記憶メディアコントローラ上述の特徴を有効利用して、書き込み操作の際に１、２ページだけ書き込む場合であっても、ブロック全体への消去操作を行なうことを回避している。ブロック全体を消去することは、より長時間の操作時間となり、またアクセス性能を悪化させる。このような方法により、シリコン記憶メディアの記録スペースを十分に利用することができる。
【０００７】
図２Aは、従来のシリコン記憶メディア２００の内部構造を概略的に示すブロック図である。従来のシリコン記憶メディア２００は、主に、シリコン記憶メディアコントローラ２１０及び二つ以上のメモリー２２０からなる。マイクロプロセッサ２１３は、シリコン記憶メディアコントローラ２１０内に設けられており、システムインターフェイス２１１を介して図示しない外部のコンピュータシステムとの間でインストラクション及びデータを送受信する。データはデータバッファ２１５に記憶された後に、メモリーインターフェイス２１７を介してメモリー２２０に書き込まれる。一方、データはメモリー２２０から読み出され、データバッファ２１５に一時的に記憶された後に、コンピュータシステムに返信され、コンピュータシステムはシステムインターフェイス２１１を介してデータの読み出しを要求する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述の説明から、従来のシリコン記憶メディアコントローラの構造及びデータ記録構造の特徴が以下の通りであることがわかる。（a）オリジナルデータは、圧縮せずにシリコン記憶メディアの指定されたアドレスに直接記憶される。（ｂ）ページは基本アクセス（読み出し/書き込み）ユニットとして指定され、インデックス指標及びエラーチェック訂正コード等のコントロール情報は、各ページに確保された冗長エリアに印を付ける。必要な制御情報が全て記憶された後いくつかの未使用のスペースが、制御情報記録エリアに残されている。一般的には、未使用スペースの容量は各ページのサイズに対してそれほど重要ではないが、全ての冗長エリアを蓄積すると、未使用スペースの容量は、実際、ある程度の資源の浪費となる。
【０００９】
更に、メモリーモジュールのデータ記憶容量を高めるために、圧縮機能（又はモジュール）をコントローラ内に付与することができる。しかしながら、５１２バイトのセクタは十分な大きさではないため、圧縮性能は優れたものではない。
【００１０】
要約すると、上述のシリコン記憶メディアでは、ページをアクセスユニットとして指定するため、コントローラ性能を十分に活用することができない。消去されたブロックをコントローラの内部又は外部に設けたデータ圧縮ユニット及びデータ解凍ユニットの技術と協働する基本アクセスユニットとして指定すると、シリコン記憶メディアに別のハードウェア部品を追加することなく、メモリーカードの記憶容量を増やすことができる。更に、そのような方法により、性能は向上し、各ページの冗長エリアは十分に利用され、圧縮性能は更に向上する。
【００１１】
従って、本発明は、冗長エリアの浪費を削減し、データ更新及び圧縮性能を効果的に向上させるためのシリコン記憶メディア、コントローラ及びそのアクセス方法に関する。
【課題を解決するための手段】
【００１２】
本発明は、シリコン記憶メディアのコントローラに関する。シリコン記憶メディアのコントローラが、十分にその演算能力を利用することができ、且つメモリーの制限された容量を有効に使うことができるように、可変長のデータフレームを、ブロックの基本オペレーションユニットとして指定する。本発明において、システムが携帯記憶装置にデータを書き込もうとする時、まず、データのコンテンツをコントローラの内部又は外部で圧縮し、その後メモリーに記録する。一方、システムがデータを読み出そうとする時、まず、前に圧縮されたデータはメモリーからコントローラへ読み出され、その後、該データは解凍された後にシステムに返信される。外部システムとメモリーとの間のデータアクセス量が著しく削減されたという事実によってメモリーの記憶性能が著しく向上するように、オリジナルデータは、圧縮機構により設けられた圧縮モジュールとそれに対応する解凍モジュールとにより対応データに圧縮される。
【００１３】
本発明は、大容量のブロックが基本オペレーションユニットとして指定されるシリコン記憶メディア、コントローラ及びそのアクセス方法に関する。最適な圧縮/解凍機構は、コントローラに構築された複数のアルゴリズム及び複数パラメータを組み合わせることによって得られる。更に、記録スペースの利用が更に向上するように、基本コントロールユニットの容量を増加させることによりデータ圧縮/解凍の効果及び圧縮率を向上させ、外部データのデータ量をブロックに最適なマイクロデータとして用いる。
【００１４】
また、本発明は、上述のブロックが基本オペレーションユニットとして指定されるシリコン記憶メディア、コントローラ及びそのアクセス方法に関する。従って、シリコン記憶メディアに一時的に保存されたデータ累積量が一つのブロック記憶容量と等しい場合にのみ、コンピュータシステムが書き込みのための待ち時間が多大に浪費されるのを回避することができるように、コンピュータシステムは、複数のセクタデータを一度に書き込み、そのデータを一度に圧縮し、メモリーに書き込むことができる。更に、全ブロックを更新する時に消去して次に書き込むことができ、従って、１ページ又は２ページのデータのみを書き込むために全データエリアを消去するという問題は、もはや不要である。
【００１５】
本発明の実施態様によると、メモリーモジュールを備え、ブロックがメモリーモジュールの消去ユニットとして指定されるシリコン記憶メディアに適したシリコン記憶メディアのコントローラを提供する。シリコン記憶メディアコントローラは、システムインターフェイス、メモリーインターフェイス、データバッファ及びデータ圧縮/解凍モジュールを備える。システムインターフェイスはコンピュータシステムに電気的に接続され、メモリーインターフェイスはメモリーモジュールに電気的に接続され、データバッファはシステムインターフェイスとメモリーインターフェイスとに電気的に接続され、データ圧縮/解凍モジュールはデータバッファに記憶されたデータを圧縮/解凍するために双方向バスを介してデータバッファに電気的に接続される。その場合、コンピュータシステムからシステムインターフェイスを介して送信されたデータは、そのサイズがブロックの記憶容量に適するデータフレームに圧縮され、データフレームは、その後、メモリーモジュールに記憶される。
【００１６】
更に、本発明は、ブロックが消去ユニットとして指定されるシリコン記憶メディアに適するシリコン記憶メディアへのデータ書き込み方法を提供する。該書き込み方法は、以下の工程を含む。まず、オリジナルデータをシリコン記憶メディアに保存する前に、圧縮データに圧縮し、その後、オリジナルデータの領域を含む先行記述ユニットを圧縮データの前に挿入してデータフレームを生成する。最後に、該データフレームをシリコン記憶メディアに保存する。オリジナルデータがすでにシリコン記憶メディアに保存されている場合は、まず、オリジナルデータに対応するデータフレームをシリコン記憶メディアから読み出し、その後、データフレームを解凍することにより得られたデータをオリジナルデータにより更新し、更新されたデータを上述のブロック記憶容量に応じたデータフレームフォーマットに変換し、最後に、シリコン記憶メディアに記憶する。
【００１７】
更に、本発明の実施態様によると、データ信頼度を増大させるために、エラーチェック訂正コードをデータフレームの最後に付加する。更に、先行記述ユニットは、オリジナルデータを圧縮するために用いられる複数のアルゴリズム及び複数のパラメータと、データが記憶されるブロックの状態とを有する。更に、上述のオリジナルデータの領域は、スタートアドレス及びオリジナルデータの長さにより示される。
【００１８】
更に、本発明は、ブロックが消去及び書き込みユニットとして指定されるシリコン記憶メディアに適し、シリコン記憶メディアの各ブロックが一つのデータフレームのみを有するシリコン記憶メディアからのデータ読み出し方法を提供する。データフレームは、非圧縮のオリジナルデータの領域を示す先行記述ユニットを備える。読み出し方法は、次の工程を含む。まず、データフレームをシリコン記憶メディアから読み出し、その後、データフレームを先行記述ユニットにより解凍し、最後に、データフレームを解凍することにより得られたオリジナルデータを、シリコン記憶メディアから出力する。
【００１９】
更に、本発明は、シリコン記憶メディアを提供する。シリコン記憶メディアは、メモリーモジュール及びコントローラを備え、コントローラ及び上述のアクセス方法により作動する。
【００２０】
本発明の実施態様において、上述のシリコン記憶メディアのコントローラ内のデータ圧縮/解凍モジュールは、データ圧縮回路、データ解凍回路、圧縮アルゴリズム記述ユニット及びパラメータテーブルを備える。圧縮アルゴリズム記述ユニットは、データを圧縮/解凍するためのデータ圧縮回路及びデータ解凍回路により使用される対応する圧縮アルゴリズムを保存するために、データ圧縮回路及びデータ解凍回路にそれぞれ電気的に接続される。更に、パラメータテーブルは、圧縮アルゴリズムによって使用されるパラメータを保存するために、データ圧縮回路及びデータ解凍回路にそれぞれ電気的に接続される。書き込みオペレーション中、データ圧縮回路は、データフレームの前のデータ圧縮に用いられる圧縮アルゴリズム及びパラメータを記録する。
【００２１】
本発明は、ページがアクセスユニットとして指定されるオリジナルコントロールモードを変更する。代わりに、大容量のブロックは、基本コントロールユニットとして指定される。更に、記録スペースの利用性が更に向上するように基本コントロールユニットの容量を増大させることにより、データ圧縮/解凍の効率及び圧縮率が向上する。更に、オリジナルデータには異なる特徴があるため、各オリジナルデータのデータ圧縮アルゴリズムの圧縮率は同じではない。本発明は、上述の特徴に基づき、一つのブロックユニットのサイズと程同等の圧縮データの容量を基本コントロールユニットとして設定する。更に、本発明は、以下の工程を含む。異なる長さのオリジナルデータを圧縮し、圧縮データの前に先行記述ユニットを付加し、ブロック状態、圧縮データに対応するオリジナルデータアドレス、オリジナルデータ長さ、最適なアルゴリズム、最適なパラメータテーブル等に関係する情報を指示し、圧縮データの後ろにポストエラーチェック訂正コードを付加し、圧縮データに対応するエラーチェック訂正コードを記録し、上述の先行記述ユニット、圧縮データ、及びポストエラーチェック及び訂正コードを結合して、単一のブロックに単に記録されるデータフレームを形成する。１セットのコントロール情報（先行記述ユニット、エラーチェック訂正コード等を含む）のみがブロックに記録されているため、従来の冗長エリアに用いられるメモリー容量が著しく減少し、これにより、製造コストが低減する。
【００２２】
従って、同一のメモリー容量を維持するという前提のもとで、改良されたシリコン記憶メディアからなる携帯記憶装置のコントローラにデータ圧縮/解凍機能を加えることによって、以下の目的を達成することができる。
a．  記憶量を向上させるために、同一サイズのメモリーを使用する状態のもとで、メモリーに保存する前にデータを圧縮する。従って、より多くのデータを携帯記憶メディアに記憶することが可能となり、記憶量向上の目的は達成される。
ｂ．  製造コストを減らすために、コントローラは、データ圧縮/解凍機能を支持するので、同一サイズの携帯記憶メディアに比べより少ない容量のメモリーを使用することができる。これにより、製造コスト削減の目的を達成することができる。
ｃ．  データアクセス速度を向上させるために、近年の携帯シリコン記憶メディアに用いられるフラッシュメモリーは、データを送る際、特別な工程を必要とし、このことはシステム内のデータアクセスの障害となる。本発明において、システムにより送信されたデータを、メモリーに保存する前に、コントローラ内で圧縮する。従って、アクセスされるメモリーのデータ量は減少し、データアクセス速度向上の目的は達成される。
【発明の効果】
【００２３】
従って、同一のメモリー容量を維持する前提のもとで、データ圧縮／解凍機能をシリコン記憶メディアからなる携帯記憶装置のコントローラに付加することにより、次の利点が得られる。a,記憶容量の向上、b,製造コストの削減、ｃ,データアクセス速度の向上。
【発明を実施するための最良の形態】
【００２４】
添付図面は本発明を更に理解するために含めたもので、本明細書の一部に組み込まれ、その一部を構成するものである。添付図面は、本発明の実施態様を示すもので、発明の詳細な説明と共に本発明の原理を説明するために利用される。
【００２５】
本発明は、ブロック記憶サイズに応じたサイズを有する可変長のデータフレームがメモリーの基本記録ユニットとして指定されるシリコン記憶メディア及びそのコントローラを提供する。更に、種々のアルゴリズムのための複数の記述ユニットは、異なる種類のデータ圧縮/解凍アルゴリズムを規定するために、コントローラ内のデータ圧縮/解凍モジュールに導入され、最適な圧縮アルゴリズムが、種々のパラメータテーブルと協働する。データ圧縮/解凍モジュールに種々のアルゴリズム及びパラメータテーブルを導入する目的は、最適な圧縮効果を有する圧縮アルゴリズムを選択し、最適なパラメータテーブルと協働するためである。先行記述ユニットを形成するために、コントローラは圧縮データの前にオリジナルデータに対応する圧縮アルゴリズム、パラメータテーブル標識及びインデックス標識に印を付けて付加する。圧縮データが正確に記憶メディアに記録されたか否かを判断するために、コントローラは圧縮データの後ろに、ポストエラーチェック訂正コードの印を付けて付加する。先行記述ユニット、圧縮データ、及びポストエラーチェック訂正コードを組み合わせることによりデータフレームを形成した後、データフレームは、その後、シリコン記憶メディアの指定されたブロックの位置に記憶され、記録される。本発明において、可変長のオリジナルデータに対応するデータフレームはオリジナルデータの特徴に従ってシリコン記憶メディアのコントローラによって生成されるため、データ圧縮率向上の目的が達成されるように、更に変換表を生成し、データ圧縮/解凍オペレーション及びデータアクセスオペレーションを行なうために、大容量のブロックは、記録スペースを管理する基本アクセスユニットとして用いられる。
【００２６】
データ圧縮/解凍オペレーションの圧縮効率を向上させるために、上述のデータフレーム型のシリコン記憶メディアのコントローラは、以下によって更に特徴づけられる。まず、オリジナルデータを圧縮して記憶スペースを占領するオリジナルデータを、低減し、その後、コントローラによって圧縮されたデータの前に先行記述ユニットを付加し、ポストエラーチェック訂正コードを圧縮データの後に付加して、一つのブロックの記憶容量にほぼ等しいサイズを有するデータフレームを形成する。その後、データフレームにインデックス標識及びエラーチェック訂正コードの印を付けて、情報によって占領された記憶スペースを更に減らし、システムの有効な情報の保存に物理的に用いられるシリコン記憶メディアの有効なスペースを向上させる。
【００２７】
オリジナルデータに加え、データブロック状態フラグ、エラーチェック訂正コード及びロジックアドレス等の制御関連情報を、システムからメモリーに送信されたオリジナルデータの記録中に、同時に記録するべきである。図２Bを参照しながら、制御関連情報の各ビットを、次のように定義する。
データブロック状態フラグは、ブロックに記憶されたデータの状態が「消去された」、「使用中」又は「不良」のいずれかであることを示す。その状態が、「消去された」（空）であると、更新データを記録するためにブロックを使用することができ、フラッグは、その後、「使用中」に変わる。データを記録するシリコン記憶メディアに欠陥があり、書き込みオペレーション中にデータを記憶するためにもはや使用することができないことが検出されると、その後、ブロックは「不良」と印を付される。「使用中」と印を付されたブロックに記憶されたデータが更新されて別の「消去された」ブロックに移った後、ブロックは、消去オペレーションによって消去された後、「消去された」状態に回復する。
エラーチェック訂正コード、数バイトのエラーチェック訂正コードは、特定のアルゴリズムを用いることによってオリジナルデータから生じる。オリジナルデータが記録されているメモリーユニットでエラーが発生したとエラーチェック訂正コードにより検出されると、エラーは、訂正され、訂正データは、その後、システムに返信される。マイクロプロセッサは、オリジナルデータが記録されているメモリーユニットでエラーが発生したことを検出すると、訂正データは、ただちに別の「消去された」データブロックに移動し、転写され、欠陥のあるデータブロックは「不良」として印を付される。
ロジックアドレス、オリジナルデータをメモリーに記憶する際、マイクロプロセッサは、メモリーに適した物理アドレス法に応じてメモリーを適切に設計し、配置し、利用しなければならない。従って、メモリーが使用する配置シーケンスと、メモリーにアクセスするためにシステムにより採用されたロジックアドレスシーケンスとの間には、大きな違いがある。従って、コントローラ内にアドレス変換回路又はアドレス変換制御工程を導入し、システムにより採用されたロジックアドレスとメモリーに用いられる物理アドレスとの間で変換を行なうために用いられる変換テーブルを生成する必要がある。システムのメモリーカードの電源がオフされた後でさえ、そのような変換関係を維持するために、オリジナルデータ及びそれに対応するロジックアドレスを同時に保存する必要がある。
【００２８】
以下に、本発明によるシリコン記憶メディアのデータフレームにおける先行記述ユニットのデータフォーマットを詳細に説明する。  各データフレームのスタートアドレスは、記憶メディアのデータブロックのスタートアドレスを設定するために使用される。即ち、説明を簡潔にするために、ブロックの１セット目のページの１番目のバイトはデータフレームのスタートアドレスとして設定され、そのアドレスは０として設定される。スタートアドレス０から始まり、データフレームは、先行記述ユニット、圧縮データパケット及びポストエラーチェック訂正コードとして順次印を付す。
【００２９】
データフレームにおいて先行記述ユニットにより印を付されたコンテンツは、データブロック状態フラグと、圧縮データに対応するオリジナルデータアドレスと、オリジナルデータ長と、最適な圧縮アルゴリズムと、パラメータテーブルとを備えるべきである。例えば、本発明の実施態様によるフォーマットを以下のテーブル１に示す。
【表１】
2005322208.tif 000003
【００３０】
圧縮データパケットは先行記述ユニットに続いて配置され、そこでは、データパケットにより占領された記録容量はシリコン記憶メディアの単一のブロックサイズと近いが、シリコン記憶メディアの単一のブロックサイズを超えず、データパケットの長さは、解凍オリジナルデータの容量が先行記述ユニットにより印を付されたデータ長に到達するという事実により得られる。その後、ポストエラーチェック訂正コードは、データパケットの後に印を付される。本発明の一実施態様によるデータフォーマットを、以下のテーブル２に示す。
【表２】
2005322208.tif 000004
ここで、圧縮データをコントローラにより生成した後に、ポストエラーチェック訂正コードもコントローラにより同様に生成する。その後、先行記述ユニット及び圧縮データを組み合わせてデータフレームを形成し、該データフレームは、シリコン記憶メディアのブロックに書き込まれる。
【００３１】
コントローラが更新又は読み出しオペレーションを行なう際、データフレームが読み出された後に、エラーチェックコードをチェックすることによりデータパケットの正確度が検証される。その検証結果がデータパケットが正確であることを示すと、その後、更なるオペレーションが行なわれる。一方で、エラーコードは、直ちにシステムに返信され、システムはそれを参照することによりそのアクセスオペレーションを修正することができるようにする。
【００３２】
上述の先行記述ユニットは以下の機能を有する。（a）データブロックの状態を示し、例えば、データブロックの状態が、「消去された」、「使用中」又は「不良」であることを示す。（ｂ）その後の圧縮オペレーションにより用いられる圧縮アルゴリズムのコードを示す。（ｃ）その後の圧縮オペレーションに適したパラメータテーブルコードを示す。（ｄ）変換テーブルを生成するために、コントローラにより用いられるその後のデータ及びオリジナルデータ長に対応するオリジナルデータアドレスのインデックス同定コードを示す。
【００３３】
圧縮データはオリジナルデータから生成されるデータパケットであり、その長さは圧縮データが用いるオリジナルデータの特徴と、圧縮アルゴリズム及びパラメータテーブルとの結果である圧縮効率により変化し、その圧縮効率から影響をうける。圧縮データ長と、先行記述ユニット長と、ポストエラー訂正コードとの合計は、データフレームの全サイズを形成し、そのサイズは、データフレームの容量を十分に利用するために、一つのデータブロックのサイズに近いが、一つのデータブロックのサイズを超えない。スタートアドレス及びオリジナルデータを圧縮することにより得られた圧縮データパケットの長さは、データフレームの先行記述ユニットに印を付される。スタートアドレス及び圧縮データアドレスは、後に変換テーブルを生成するためにコントローラによって用いられる。
【００３４】
ポストエラーチェック訂正コードは、圧縮データにエラーチェクアルゴリズムを施すことにより得られたエラーチェック訂正コードからなる。例えば、ポストエラーチェック訂正コードは、圧縮データパケットに記憶された情報の正確さを証明することができるように、一組のチェックサムコード及び一組の１６ビットの巡回冗長コード（CRC1６）からなる。
【００３５】
シリコン記憶メディアに記憶され、且つコントローラにより記録及び更新されるデジタル情報のコントロールユニットとしてデータフレームを用いる概念は、本発明の中心概念である。本発明の中心概念は、次のポイントにより特徴付けられる。１）シリコン記憶メディアの１ブロックユニットのサイズと略同一のサイズを有するデータフレームは、基本記録制御ユニットとして指定され、コントローラが、個々のデータフレーム間の連鎖関係を容易に制御し管理することができ、且つ異なるアドレスを有するオリジナルデータの対応関係を示すことができるようにする。２）異なるオリジナルデータに対して最適な圧縮アルゴリズム及びパラメータテーブルにより生成されたデータ圧縮率に適応させるために、個々のデータフレームのサイズはオリジナルデータのサイズに必ずしも制限される必要はない。従って、圧縮データの容量が、１ブロックのサイズに略同一となった後でも、スタートアドレス及びオリジナルデータの長さを示すために先行記述ユニットを用いることができる。
【００３６】
従って、本発明によるシリコン記憶メディアの駆動中に、コントローラはデータフレームと変換テーブル（シリコン記憶メディアから抽出された各データフレームの先行記述ユニットによるデータフレーム及びシステムデータアドレスの間の関係を示す変換テーブル）とを生成し、引き続き、コントローラは、更なるオペレーションを行なう際に、正確な変換テーブルを更新し、維持する。読み出しオペレーション中、まず、コントローラは変換テーブルによるデータフレームを得て、その後、そのデータフレームをシリコン記憶メディアの正確な位置に記憶する。その後、コントローラはデータバッファ内のデータフレームを読み出し、該データフレームを解凍し、次に、データをコンピュータシステムに返信する。書き込みオペレーション中、まず、コントローラは、変換テーブルによるデータフレームを得る。その後、コントローラは、該データフレームをシリコン記憶メディアの正確な位置に記憶する。その後、コントローラは、データバッファ内のデータフレームを読み出し、該データフレームを解凍し、データバッファに記憶された解凍データは、コンピュータシステムにより書き込まれたデータにより更新される。その後、更新データは、データフレームを再建するために再び圧縮され、最後に、圧縮データフレームは、オリジナルデータフレームを置換するためにシリコン記憶メディアに書き込まれる。
【００３７】
本発明は、可変長データフレーム型のシリコン記憶メディアコントローラの構成を提供する。図３Aに示すように、データ圧縮機能を備えるシリコン記憶メディア３００は、コントローラ３１０と、オリジナルデータを提供しマイクロプロセッサ３１３により出されるトリガーに応答してバッファ３１内の第一システムデータバッファ３１２a及び第二システムデータバッファ３１２ｂにアクセスするために用いられるシステムインターフェイス３１１と、バッファ３１内の第一メモリーデータバッファ３１５a及び第二メモリーデータバッファ３１５ｂにアクセスし、メモリーインターフェイス３１７を介してメモリー３２０のアクセスインターフェイスとして機能するように用いられるデータ圧縮/解凍モジュール３１４とを備える。更に、図３Bを参照すると、種々のデータ圧縮/解凍アルゴリズムを規定するために用いられる種々のデータ圧縮/解凍アルゴリズムの複数の記述ユニット３３１a、３３１ｂ、３３１ｃが、データ圧縮/解凍モジュール３１４に含まれる。更に、複数の種々のパラメータテーブル３３２a、３３２ｂ及び３３２ｃが、最適なアルゴリズムと協働するために、またデータ圧縮/解凍モジュール３１４に含まれる。データ圧縮/解凍モジュール３１４に種々のアルゴリズム及びパラメータテーブルを導入する目的は、オリジナルデータタイプに従って最適な圧縮アルゴリズムを選択し、最適なパラメータテーブルと協働するためである。更に、コントローラは、先行記述ユニットを生成するために、オリジナルデータに対応する圧縮アルゴリズム、パラメータテーブル標識及びインデックス標識を圧縮データの前に付加して印を付ける。更に、コントローラは、圧縮データが記憶メディアに正確に記録されているか否かを判断するために、ポストエラーチェック訂正コードを圧縮データの後ろに付加して印を付ける。先行記述ユニット、圧縮データ及びポストエラーチェック訂正コードを組み合わせることによりデータフレームを生成した後、データフレームはシリコン記憶メディアの指定されたブロック位置に記憶され、記録される。
【００３８】
以下に、本発明のコントローラに適応した６４MBのNAND型フラッシュメモリーの
実施態様を例示する。一つのブロックユニットの記録容量が、５２８*３２＝１６８９６バイトの場合、メモリーに記録されるデータのブロックフォーマットは図４に示す通りである。データファーマットは、先行記述ユニット、圧縮データ及びポストエラーチェック訂正コードを備え、先行記述ユニットは、データブロックの前に位置する。
【００３９】
以下に、本発明の実施態様によるシリコン記憶メディア及びそのコントローラのアクセスオペレーションを、図５A乃至図５Cを参照しながら詳細に説明する。
システムがデータを書き込む場合
【００４０】
図５Aを参照すると、システムにより書き込まれるデータのアドレスに関しシリコン記憶メディアに記録が存在しない場合、システムにより書き込まれるオリジナルデータを、直接システムデータバッファ５１２に取り込む。次に、データ圧縮回路５１４aは、システムデータバッファ５１２に記憶されたオリジナルデータにより最適なアルゴリズムを決定する。本発明の本実施態様では、第一圧縮アルゴリズム５３１a及び第二パラメータテーブル５３２ｂが選択される。
【００４１】
更に、圧縮レジスターを、メモリーデータバッファ５１５に取り込む。圧縮データの容量がコントローラに適応したシリコン記憶メディアのブロックサイズに略等しい場合、コントローラは圧縮データの前後に先行記述ユニット及びポストエラーチェック訂正コードを付加し、次に、それらをシリコン記憶メディアに書き込んで書き込みオペレーションを完了する。
システムがデータを更新する場合
【００４２】
図５Bを参照すると、図示しないシステムにより書き込まれたオリジナルデータのアドレスに関しシリコン記憶メディアに記録が存在した場合、システムにより書き込まれるオリジナルデータのアドレスに対応するデータフレームを先行記述ユニットにより記述されたマッピング情報により得る。更に、データフレームをシリコン記憶メディアから読み出し、メモリーデータバッファ５１５に取り込み、データ更新オペレーションを行なうために解凍した後、システムデータバッファ５１２に取り込む。解凍中、コントローラは、オリジナルデータを回復するために先行記述ユニットにより指示された圧縮アルゴリズム５３１及びパラメータテーブル５３２によりデータ圧縮/解凍モジュール５１４bを制御する。
【００４３】
その後、コントローラは、システムデータバッファ５１２の情報を更新するために用いられる更新データにシステムが書き込みを行なうことを許可する。
【００４４】
システムデータバッファが完全に更新された後に、コントローラはデータ圧縮モジュールを再開させて、更新データを再度圧縮して、この圧縮データを、メモリーデータバッファ５１５に一時的に記憶する。本実施態様において、第一圧縮アルゴリズム５３１a及び第二パラメータテーブル５３２bが、更新データを圧縮するために用いられる。
【００４５】
その後の工程は上述の書き込みオペレーションの工程と同一であり、コントローラはデータフレームを形成するために圧縮データの前後に先行記述ユニット及びポストエラー訂正コードを付加する。データフレームが生成された後に、データフレームをシリコン記憶メディアの空のブロックに書き込み、シリコン記憶メディアに記録されたオリジナルデータを更新する。その後、更新されていないデータフレームを記録するために用いられるデータブロックオリジナルを、消去状態に回復するために消去する。
システムがデータを読み込む場合
【００４６】
図５Cを参照すると、システムがコントローラに対して特定のアドレスを有するオリジナルデータを読み出して、そのデータをシステムに返信することをリクエストするための指示を出すと、コントローラは直ちにシステムリクエストに対応してオリジナルデータを圧縮することにより得られたデータフレームがシリコン記憶メディアに記録されているか否かを判断するために変換テーブルをチェックし、検証する。
【００４７】
システムリクエストに対応するオリジナルデータがシリコン記憶メディアに記録されていない場合、コントローラは、まず、コントローラ自身により特定情報を生成し、次に、該情報をシステムに提供する。
【００４８】
システムリクエストによりアクセスされるオリジナルデータのアドレスに対応する特定のデータフレームがシリコン記憶メディアに記録されると、コントローラは直ちにブロックからデータフレームを読み出し、該データフレームをメモリーデータバッファ５１５に取り込む。次に、コントローラは、データ解凍モジュールを駆動してオリジナルデータを解凍し、その後、コントローラはシステムを再起動し、解凍データをシステムデータバッファ５１２に取り込む。その後、システムにより出された読み出しリクエスト指示に対応する特定のアドレスを有するオリジナルデータをシステムに再び返信する。
【００４９】
図６は、本発明の実施態様によるシリコン記憶メディアのコントローラの制御工程を示すフローチャートである。まず、シリコン記憶メディアのコントローラは駆動され（S６１０）、シリコン記憶メディアを走査し、変換テーブルを生成する（S６１２）。その後、コントローラは、スタンバイ状態となり（S６１４）、システムからアクセスインストラクションを受信する（S６１６）。その後、コントローラは、更なるオペレーションを行なうために、受信したインストラクションが読み出しインストラクションであるか又は書き込みインストラクションであるかを判断する（S６１１）。そのインストラクションが読み出しインストラクションであると、コントローラは、対応するデータフレームが決定し（S６１３）、対応するデータフレームを適切なシーケンスで変換テーブルにより読み出し（S６２２）、データフレームを解凍し、データバッファに取り込み（S６２４）、次に、指定されたオリジナルデータを返信するためにシステムを駆動させる（S６２６）。データ記録にデータフレームがない場合、コントローラは、情報の特別なフォーマットを直接送信する（S６２０）。一方、システムから受信した指示が書き込み指示であり、データに対応するデータフレームを含む指示であると判断すると（S６１５）、対応するデータフレームを適切なシーケンスで変換テーブルにより読み出し（S６３２）、その後、オリジナルデータを含むデータフレームを解凍し、データバッファに取り込む（Ｓ６３４）。その後、指定されたオリジナルデータを更新するためのデータを返信するために、コントローラは、システムのデータフレームを駆動させ（S６３６）、圧縮モジュールをデータフレームの更新をするために駆動させる（S６３８）。インストラクションがデータフレームを含まない場合、コントローラは、データフレームを生成するために圧縮オペレーションを直接行なう（S６３０）。一方、読み出しインストラクション又は書き込みインストラクションにかかわらず、システムは、データ送信を終了し、スタンバイ状態を返信し（S６２８）、システムはスタンバイ状態に戻る（S６１４）。
【００５０】
本発明では、もともと単に一つのブロックデータを保存することができる容量を有するシリコン記憶メディアは、オリジナルデータを圧縮しない状態のもとで、より柔軟な方法で圧縮データを記録することができ、オリジナルデータと最良の圧縮アルゴリズム及びパラメータテーブルにより生成された特定のデータ圧縮率との特徴により異なる長さを有するオリジナルデータを指示することができる。
【００５１】
コントローラにオリジナルデータを円滑に追跡させ、且つ回復させ、データの正確度を保証すべく、シリコン記憶メディアのブロックにその後保存されるデータフレームを形成するために、先行記述ユニットを圧縮データの前に付加する必要があり、エラーチェック訂正コードを圧縮データの後に付加する必要がある。データフレームは、シリコン記憶メディアが初期化される時に変換テーブルを生成するために、システムがアクセスオペレーション又は更新オペレーションを行なう時に、回復されたオリジナルデータを読み出すためにコントローラにより使用される。
【００５２】
要約すると、コントローラのコンピュータの処理能力及び制限されたメモリーの容量を十分利用することにより、システムにより携帯記憶装置に記録されるデータは、まず、コントローラにより圧縮され、次に、メモリーに記録される。択一的に、システムがデータを読み出す際、まず、圧縮データは、メモリーからコントローラへ読み出され、その後、データは解凍された後にシステムに返信される。
【００５３】
本発明を特定の実施態様を参照し記述したが、本発明の精神から逸脱しない限り上述の実施態様に変形が加えられることは、当業者にとって自明である。従って、本発明の範囲は、上述の詳細な説明からではなく、添付した請求項により特定される。
【図面の簡単な説明】
【００５４】
【図１Ａ】６４MBのNAND型フラッシュメモリーの記録スペースを示す概略図である。
【図１Ｂ】１２８MBのNAND型フラッシュメモリーの記録スペースを示す概略図である。
【図２Ａ】従来のシリコン記憶メディアの内部構造示す概略図である。
【図２Ｂ】NAND型フラッシュメモリーのブロックフォーマットを示す概略図である。
【図３Ａ】データ圧縮機能を備える従来のシリコン記憶メディアのコントローラを示す概略図である。
【図３Ｂ】本発明の実施態様によるデータ圧縮機能を備えるシリコン記憶メディアのコントローラを示す概略図である。
【図４】本発明の実施態様によるブロックフォーマットの概略図である。
【図５Ａ】本発明の実施態様により、システムがデータを書き込む際のシリコン記憶メディアのコントローラを示す概略図である。
【図５Ｂ】本発明の実施態様により、システムがデータを更新する際のシリコン記憶メディアのコントローラを示す概略図である。
【図５Ｃ】本発明の実施態様により、システムがデータを読み出す際のシリコン記憶メディアのコントローラを示す概略図である。
【図６】本発明の実施態様によるシリコン記憶メディアのコントローラの制御工程を示すフローチャートである。
【符号の説明】
【００５５】
３１２  システムデータバッファ
３１４  データ圧縮/解凍モジュール
３１４a  データ圧縮回路
３１４b データ解凍回路
３１５  メモリーデータバッファ
３３１a  第一アルゴリズム記述ユニット
３３１b 第二アルゴリズム記述ユニット
３３２a 第一パラメータテーブル
３３２b 第二パラメータテーブル
【図１Ａ】
2005322208.tif 000005
【図１Ｂ】
2005322208.tif 000006
【図２Ａ】
2005322208.tif 000007
【図２Ｂ】
2005322208.tif 000008
【図３Ａ】
2005322208.tif 000009
【図３Ｂ】
2005322208.tif 000010
【図４】
2005322208.tif 000011
【図５Ａ】
2005322208.tif 000012
【図５Ｂ】
2005322208.tif 000013
【図５Ｃ】
2005322208.tif 000014
【図６】
2005322208.tif 000015