JP2005322209A - シリコン記憶媒体制御方法およびシリコン記憶媒体 - Google Patents
シリコン記憶媒体制御方法およびシリコン記憶媒体 Download PDFInfo
- Publication number
- JP2005322209A JP2005322209A JP2005017400A JP2005017400A JP2005322209A JP 2005322209 A JP2005322209 A JP 2005322209A JP 2005017400 A JP2005017400 A JP 2005017400A JP 2005017400 A JP2005017400 A JP 2005017400A JP 2005322209 A JP2005322209 A JP 2005322209A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory block
- address
- memory
- conversion table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 81
- 229910052710 silicon Inorganic materials 0.000 title claims abstract description 63
- 239000010703 silicon Substances 0.000 title claims abstract description 63
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000015654 memory Effects 0.000 claims abstract description 190
- 238000006243 chemical reaction Methods 0.000 claims abstract description 114
- 239000000872 buffer Substances 0.000 claims abstract description 30
- 238000013507 mapping Methods 0.000 claims abstract description 19
- 238000013519 translation Methods 0.000 claims description 35
- 238000003780 insertion Methods 0.000 claims description 15
- 230000037431 insertion Effects 0.000 claims description 15
- 238000013144 data compression Methods 0.000 claims description 9
- 230000006837 decompression Effects 0.000 claims description 8
- 238000007906 compression Methods 0.000 abstract description 13
- 230000006835 compression Effects 0.000 abstract description 13
- 238000004519 manufacturing process Methods 0.000 abstract description 3
- 150000003376 silicon Chemical class 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000012937 correction Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000002950 deficient Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
【課題】製造コストを減少し、製品価値が改善された小さい寸法のメモリのための大きい記録容量を有するシリコン記憶媒体を提供する。
【解決手段】メモリと、制御ユニットとを備え、メモリが複数のメモリブロックを含み、メモリブロックのそれぞれは、複数のデータフレームを有し、複数のデータフレームは、先行記述ユニットと複数の圧縮セクタデータとエラーチェックコードを含み、制御ユニットは変換テーブルバッファとアドレスマッピングモジュールとを備え、データを読み書きするためシステムにアクセスするようにしたシリコン記憶媒体を制御する方法であって、先行記述ユニットにアクセスするためのデータフレームを読み込んで変換テーブルを確立し、変換テーブルに従ってメモリブロックにアクセスし、前記メモリブロックから読み出すか、あるいは該メモリブロックに書き込むことを備えているシリコン記録媒体制御方法。
【選択図】 図3
【解決手段】メモリと、制御ユニットとを備え、メモリが複数のメモリブロックを含み、メモリブロックのそれぞれは、複数のデータフレームを有し、複数のデータフレームは、先行記述ユニットと複数の圧縮セクタデータとエラーチェックコードを含み、制御ユニットは変換テーブルバッファとアドレスマッピングモジュールとを備え、データを読み書きするためシステムにアクセスするようにしたシリコン記憶媒体を制御する方法であって、先行記述ユニットにアクセスするためのデータフレームを読み込んで変換テーブルを確立し、変換テーブルに従ってメモリブロックにアクセスし、前記メモリブロックから読み出すか、あるいは該メモリブロックに書き込むことを備えているシリコン記録媒体制御方法。
【選択図】 図3
Description
本発明は、シリコン記憶媒体制御方法およびシリコン記憶媒体に関し、更に詳細にのべると、長さが可変のデータフレームを有するシリコン記憶媒体コントローラに関するものである。
現在、シリコン記憶媒体としてシリコンチップから作られたメモリを使用することが一般である。多くのシリコン記憶媒体は、情報をメモリに書き込むか、情報をメモリから読み込んでシステムに送信するためにコントローラを介してシステムインターフェースに接続されている。ここで、シリコン記憶媒体は、消費電力が低く、信頼性が高く、容量が大きく、アクセスが速いという特徴のために、デジタルカメラ、デジタルウオークマン、パーソナルデジタルアシスタント(PDA)の製品の如き種々の携帯デジタル電子装置に広く応用され、そのビジネスマーケットは現在急速に発達してきている。多くの形式のシリコン記憶媒体、コンパクトフラッシュ(登録商標)カード(CF)、メモリスティックカード(MS),安全デジタルカード(SD)、スマートメデアカード(SM)等は、オリジナルシリコン記憶媒体から得られる。更に、パーソナルコンピュータの応用分野では、ユニバーサルシリアルバス(USB)を経てインストールされるUSB携帯デスクは、最近では、きわめて一般的な新製品になってきた。
シリコン記憶媒体として用いられ上述のようにシリコンチップメモリから作られた種々の携帯記憶装置の記憶容量は、その埋め込みメモリの容量によって制限されている。この携帯記憶装置の内部のコントローラは、指示を受け取り従ってメモリ内容にアクセスするためシステムに接続された一つのインターフェースを有しているだけである。このため、携帯記憶装置にとってメモリチップのコストが高くなるので、コストを下げるための大きな課題は、メモリの容量を制限して用いることである。
従来のシリコン記憶媒体コントローラは、最小のメモリユニットとしてのページが読む/書く操作を達成するマッピング方法に従ってオリジナルデータをメモリに直接記録し、ページの余剰領域が論理アドレスマッピングコードおよび訂正コードの情報を記録するように用いられている。一般に、単一のセクタ寸法は、記憶装置によって用いられた最も一般的な容量単位として528バイトであり、その寸法もユニットセクタの容量に等しい。更に、単一のページメモリ容量の2048バイト以上および余剰領域容量の64バイトを有する新型のメモリが従来技術に提供されている。しかし、コントローラは、このメモリを制御するのになお同じ技術を用いている。換言すると、データ圧縮/復元機能が単一のページに対応して記録される論理アドレスマッピングコードに導入されていない。
図1Aを参照すると、従来のシリコン記憶媒体の内部構造のブロック線図が示されている。このシリコン記憶媒体100は、コントローラ110と、一つ又はそれ以上のメモリ120とを備えている。コントローラ110は、マイクロプロセッサ114を備え、このマイクロプロセッサ114は、システムインターフェース112を介して指示およびデータをシステムと通信して送信し、このシステムインターフェースではシリコン記憶媒体がシステムによってアクセスされる。データがデータバッファ116に一時的に記憶された後、このデータは、メモリインターフェース118を介してメモリ120に書き込まれるか、メモリ120から読み出されてデータバッファ116に一時的に記憶される。その後、データは、システムインターフェース112を介してデータを読むことを要求するシステムに送り戻される。
システムからメモリに送信されたオリジナルデータを記録する工程中、この工程は、また、状態フラグ、エラー訂正コード、論理アドレスの如き関連する制御情報、およびデータメモリブロックの幾つかのデータに属する他の非使用予約スペースを記録する。制御関連情報の各ビットは、以下の如く定義される。
状態フラグ:これは、メモリブロックに記憶されたデータを“消去済み”、“使用中”、又は“不良”で示す。“消去済み”であれば、更新データを記録するようにメモリブロックを用いることができ、次いで、フラグが使用中に変更される。書込み操作中、データを記録するメモリに欠陥があり、データを適正に記録することがもはやできないことが判ったら、ブロックを“不良”として記録する。メモリブロックに“使用中”で記憶されたデータが更新され、他の“消去済み”ブロックに移動された後、メモリブロックは、消去操作によって“消去済み”状態に再設定される。
エラー訂正コード:このエラー訂正コードの幾つかのバイトは、特定のアルゴリズムを用いることによってオリジナルデータから発生される。エラー訂正コードが検出されたら、訂正の手順は、エラーを訂正することから始まり、次いで、訂正データがシステムに送り戻される。マイクロプロセッサがオリジナルデータを記録するためのメモリユニットに生じたエラーを検出したとき、訂正データが移動され他の“消去済み”データブロックに直ちにコピーされ、欠陥データブロックが“不良”として記録される。
論理アドレス:オリジナルデータを写し出す変換テーブルがメモリ構造をスキームする工程に従って形成される。オリジナルデータをメモリに記憶するとき、マイクロプロセッサは適正に計画し、メモリに適した物理的なアドレス方法に適応するメモリを配置して用いなければならない。このため、使用される配置シーケンスとメモリにアクセスするためシステムによって採用された論理アドレスシーケンスとの間に大きな相違が存在する。従って、アドレス変換回路またはアドレス変換工程をコントローラにインストールすることが必要である。変換テーブルは、メモリにおける物理的なアドレスへあるいはこのアドレスからシステムによって与えられた論理アドレスを変換するように用いられる。システムの電力がシャットダウンされた後でも、このような変換関係を維持するために、オリジナルデータおよびその相応する論理アドレスの両方を同時に保存することが必要である。
上述のように、図1Bに示されたメモリにおけるデータブロック記録フォーマットを述べるために共通に用いられるNANDフラッシュメモリが本明細書に例示される。記憶ユニットとして528バイトを有するNANDフラッシュメモリを一つの例として以下に述べる。528バイトの記憶ユニットの中で、512バイトがオリジナルデータを記憶するための記憶スペースとして用いられ、16バイトの残り(また、制御情報記録領域として知られている)が上述の制御情報を記録するために用いられる。必要な制御情報が記憶された後、制御情報記録領域が、なお、いくらかのスペースを残したままであることが普通である。
図2を参照すると、従来技術によって提供されたシリコン記憶媒体およびそのコントローラの構造は知られている。ここで、データ圧縮機能を有するシリコン記憶媒体200がコントローラ210と少なくとも一つのメモリ220とを備えている。コントローラ210は、システムとシリコン記憶媒体コントローラとの間のデータ交換チャンネルとして機能するシステムインターフェース211と、読取り、書込みおよび消去操作を行うマイクロプロセッサ212と、メモリ220とシリコン記憶媒体コントローラ210との間のデータ交換チャンネルとして機能するメモリインターフェース216とを備えている。更に、データ圧縮機能を実行するために、コントローラ210は、更に、データ圧縮/復元モジュール214を備えている。システムとメモリ220との間のデータアクセスを加速するために、コントローラ210は、更に、システムで交換されたデータを一時的に記憶する第一のシステムデータバッファ213aおよび第二のシステムデータバッファ213b、およびメモリで交換されたデータを一時的に記憶する第一のメモリデータバッファ215aおよび第二のメモリデータバッファ216bを備えている。これとは別に、単一のシステムデータバッファ213aとメモリデータバッファ215aとがデータを一時的に記憶するバッファとして用いられ、その物理的実施は、設計上の考慮に基づく。
概略には、従来のシリコン記憶媒体コントローラ構造および従来のデータ記憶構造において、オリジナルデータは、圧縮されることなく、メモリの所定の位置に直接記憶される。この結果、この形式のシリコン記憶媒体の記憶容量を新しいメモリハードウエアを加えることによってのみ改善することができ、圧縮方法は、この形式のメモリカードの記憶容量を増大するのに補助していない。その上、従来のシリコン記憶媒体は、読んだり書いたりするユニットとしてページを用いており、このため、ユニットが小さ過ぎるので、圧縮機構がデータ工程の性能を改善することができなかった。また、変換インジケータおよびエラー検出訂正コードに関連した制御情報が各ページにおける予約された余剰領域に記録されるが、なお、いくらかの有効スペースが存在する。更に、その変換テーブルは、一定のオリジナルデータ長さをメモリページにマップすることによって発生される。換言すると、読み、書き、データ更新および変換テーブル更新を含む全ての操作は、一定のオリジナルデータ長さに基づいて操作される。しかしながら、この形式の一定長さの記憶構造は、圧縮機構を有するシリコン記憶媒体において、データ読み/書き変換を行うのに、現存の変換テーブルを用いることができなかった。
従って、本発明の目的は、上述の如き従来技術の問題点を解消したシリコン記憶媒体制御方法およびシリコン記憶媒体を提供することにある。
上記目的を達成するため、本発明は、大きなアクセスユニット、例えば、データ記録フォーマットおよびデータフレームのためのマッピングモードとしてのメモリブロックを有するシリコン記憶媒体を提供するように設計されている。その上、更にアクセス操作のための変換テーブルを記録するためコントローラによって構成された一つの変換テーブルバッファが設けられている。
更に詳細にのべると、本発明は、シリコン記憶媒体、そのコントローラ、制御方法、データ記録フォーマット、およびそのマッピングモードを構成するように設計されている。ここで、コントローラがデータフレームを更新するとき、変換テーブルバッファに記録された変換テーブルも同時に更新され、変換の関係は、更新されたデータフレームを導く先行記述ユニットに記録される。
本発明は、また、データフレームを迅速に読み、データをシステムに送り戻すかデータを更新するように、対応するメモリブロックアドレスのためにシステムによって提供された読み/書きアクセス指示に従って、変換テーブルバッファにおけるデータ変換コードの検索を加速するように設計されている。その上、コントローラにはアドレスマッピングモジュールが設けられている。
記憶媒体の記憶容量を増大するために、シリコン記憶媒体コントローラには更にデータ圧縮/復元ユニットが設けられ、データは、このデータが記憶される前に圧縮され、記憶媒体から読み出された後に復元される。このため、本発明では、先ず、オリジナルデータによって占められたスペースをデータ圧縮によって減少することができる。データがメモリの計画された位置に記録される前に、“先行記述ユニット”がコントローラによって圧縮されてきたデータの前部に加えられ、“次位データエラ−チェックコード”が“メモリブロック”の記憶容量に近いデータフレームを形成するように、その後部に加えられる。第二に、変換インジケータとエラー検出コードとは、両方とも“メモリブロック”に記憶された“データフレーム”の“先行記述ユニット”に記録される。このため、情報によって占められた各ページの記憶スペースは、更に減少され、従って、システム内の有効情報によって物理的に用いられ得るシリコン記憶媒体の記憶容量の有効スペースを改善することができる。最終的に、変換テーブルは、相応して可変のオリジナルデータ長さから構成される“データフレーム”に基づいて確立される。次いで、読み取り、書き込み、データ更新、変換テーブル更新の全ての操作は、可変のオリジナルデータ長さに相応する“データフレーム”に基づいて操作される。
本発明において、データフレームをメモリの任意の位置に記憶することができる。コントローラは、先行記述ユニットが初期化され走査を行うためにスタートすると、先行記述ユニットに従ってデータフレームおよびオリジナルデータの変換関係を再構成する。メモリの全てのメモリブロックに記憶されたデータフレームを走査するためコントローラが初期化されたとき、“変換テーブル”はこのコントローラによって発生される。変換テーブルが発生された後、システムが書き込み又はデータ更新するとき、この変換テーブルは、連続的に更新され、この結果、変換関係の精度が維持される。“変換テーブル”は、複数の“マッピングエントリ”によって構成され、各マッピングエントリは、メモリにおける一組のメモリブロックの状態を記録する。内蔵変換テーブルバッファの寸法および適応メモリに含まれたメモリブロックの量に基づいて、コントローラは、完成された変換テーブルを一度に発生させるか、システムによって新しくアクセスされたインターバルに基づいて部分的な変換テーブルを発生させるか、あるいはバッファにアクセスする効率を改善するために変換テーブルを特定の範囲の組に分割することによって二つまたはそれ以上の組の部分的な変換テーブルを発生させることができる。
マッピングエントリ内の内容は、対応するメモリブロック状態または記憶されたデータフレームによって示された情報によって記録される。
コントローラが初期化された後、メモリの各メモリブロックに記録されたブロック状態およびデータフレームも先行記述ユニットの両方が先ず読み取られ、次いで、この読まれた情報がマッピングエントリに記録され、この場合、マッピングエントリは変換テーブルに位置してメモリブロックにマップされる。システムアドレスのコントローラリンクをデータフレームおよび上下方向シーケンスにおける記録されたメモリブロックの位置に相応させるように、変換テーブルを2方向シリーズリンクによって実施してもよい。
変換テーブルが確立された後、コントローラは、システムからのアクセス情報を取っていく。システムが読み取り指示を発した後、コントローラは、メモリブロックのアドレスおよび変換テーブルから得られたシステム読み取りアクセスに相応するデータフレームを駆動するため変換テーブルのサーチを行う。適合したデータフレームアドレスが得られた場合、データフレームは、データバッファに読み込まれ、オリジナルデータは、復元された後、システムに送り戻される。適合したデータフレームアドレスが得られなかった場合、所定のフォーマットを有する記録がシステムに直接送り戻される。
他方、システムが読み取り指示を発した後、システム読み取りアクセスに相応するメモリブロックのアドレスおよびデータフレームアドレスを変換テーブルから得ることができるか否かをチェックし、判定するためにコントローラは変換テーブルの検索操作を直ちに行う。相応するデータフレームアドレスが得られたら、このデータフレームはデータバッファに読み取られて復元される。次いで、データフレームは、システムから送信された更新データによって更新され、記録されてなく、メモリブロックによって更新されないデータフレームが得られる。次いで、非更新データフレームを記録するメモリブロックが消去される。上述の操作が行われているとき、変換テーブルは、同期して更新される。相応するデータフレームアドレスが得られない場合、システムから書き込まれたデータは、データフレームを直接発生するように用いられ、非使用メモリブロックによって記録された新形成データフレームが得られる。上記操作が行われているとき、変換テーブルが同期して更新される。
概述すると、データフレームをベースとするシリコン記憶媒体において本発明で述べられた変換方法に従って、圧縮オリジナルデータとメモリに記録された復元データフレームとを一体化することによって、シリコン記憶媒体が初期化されたとき、変換テーブルを発生させることができ、また、この変換テーブルは、シリコン記憶媒体がアクセスされたときに更新される。
従来のシリコン記憶媒体コントローラがこれと同様な機構を有しても、従来技術では、オリジナルデータは、直接記録されて記憶され、データが圧縮された後、状態を処理する方法は、なお、従来技術では開示されていない。従って、広く用いられるシリコン記憶媒体を適用するためには、高速非揮発性メモリが、常に、全体の製造コストの大部分を占めている。圧縮/復元方法を本発明で一体にでき、且つシリコン記憶媒体に適用できれば、製造コストを更に減少し、製品価値を改善するように、小さい寸法のメモリのための大きい記録容量を提供する目的を達成することができる。
更に、本発明の工程をコントローラのファームウエアを介して実施してもよい。データアクセスをシステムにおいて加速するためにハードウエア回路でアドレスマッピングモジュールに形成することができ、この結果、コントローラ迅速に検索することができ、且つ更に操作を行うために変換テーブルにマップするシステムによってアクセスされたあて先アドレスの状態を判定することができる。
以下、本発明の最良の形態を添付図面に示された実施例について詳細に説明する。
尚、添付図面は、本発明の更なる理解を得るために含まれ、明細書に導入されてこの明細書の一部を構成する。図面は、本発明の実施例を示し、明細書と共に本発明の原理を説明するために機能する。
図3を参照すると、本発明の一実施例により、上述の圧縮構造を有するシリコン記憶媒体を支持するために、変換テーブル(変換表あるいは換算表)バッファ317がコントローラ310に組込まれていることが示されている。ここで、一定のデータ長さ(システムから送信された)と、可変データ長さ(圧縮機構によって発生された)との間のアドレス変換関係を記録するための変換テーブルが、データをアクセスするための変換テーブルバッファ317に記憶される(変換テーブルを発生する方法は、後述される)。更に、データサーチを加速するために、アドレスマップモジュール318がコントローラ310に加えられている。このアドレスマップモジュール318は、現在の作動を達成するか、あるいはデータバックをシステムに送信するために、対応するメモリ320のメモリブロックアドレスを取得し且つデータフレームを読み取るようにシステムによって供給されたアクセス指示に基づいて用いられる。
シリコン記憶媒体310は、メモリ320を備え、このメモリ320は、複数のメモリブロックによって構成されている。ここで、これらメモリブロックのそれぞれは、特定のデータフレームフォーマットに基づいて定められている。各データフレームに含まれたデータタイプは、システムによって送信されデータコンプレッサ314aによって圧縮された一定のデータ長さによって変換された可変のデータ長さである。圧縮データを管理するために、一組の先行記述ユニットがデータフレームのヘッドの前側に配置され、エラーチェックコードがデータフレームの後側に配置される(図4参照)。このような設計によって、各ページにおける制御情報の配置が必要でなく、従って、非使用スペースの利用が改善される。更に、複数の圧縮セクタデータが先行記述ユニットとエラーチェックコードとの間に記録される。
ここで、圧縮データに相応するオリジナルデータスタートアドレスおよびデータ長さが、先行記述ユニットに示され、この先行記述ユニットは、表1に示されたデータフレームを導く。
圧縮/復元(解凍)機能が本発明のシリコン記憶媒体に必要である場合のみ、アルゴリズムインジケータおよびパラメータインジケータが先行記述ユニットに加えられることが必要であることを留意されたい。更に、先行記述ユニットのフォーマットは、表1に示されたものに必ずしも限定されず、各ビットによって記録されたデータ特性およびデータ長さがオリジナルデータに良好にマップ(表示)することができる限り、これらは、本発明の範囲内である。
先行記述ユニットを読み取ることによって発生される上記変換テーブルは、データフレームを導き、この変換テーブルは、複数のマッピングエントリによって構成されている(図4B参照)。ここで、変換テーブルは、データフレームに相応するオリジナルデータの容量および記憶位置を判定するように用いられ、且つシステムにおけるリニア連続アドレスおよびシリコン記憶媒体側におけるメモリの非リニアセグメントアドレスのためのアドレス変換モードとして用いられる。
本発明の一実施例において、変換単位に相応しメモリブロックに記憶された先行記述ユニットを参照すると、そのフォーマットおよび意義は、下記の表2に示されている。
ここで、コントローラ310に形成された変換テーブルバッファ317の容量および適応メモリ320に含まれたメモリブロック量に基づいて、コントローラ310は、完成変換テーブルを一度に発生させるか、システムによって新しくアクセスされたインターバルに基づいて部分変換テーブルを発生させるか、あるいは2組又はそれ以上の部分変換テーブルを、それらを特定の範囲のカップルに分割することによって発生させることができる。
特定のシリコン記憶媒体は、詳細に後述され、このシリコン記憶媒体において、システムが初期化された後に読み込まれる基礎データのみを記憶装置が記憶する。従来のFAT12ファイルシステムが説明のために本明細書に例示され、この場合に、シリコン記憶媒体に記録されたオリジナルデータは、少なくともマスターブーツ、区分テーブル、区分ブーツセクタ、ル−トディレクトリ、およびファイル割当てテーブルを備えている。例えば、シリコン記憶媒体は、16MB(Mバイト)メモリであり、各ページは、528B(Bバイト)であり、各メモリブロックは、32ページに等しい16KB(Kバイト)である。システムリニア連続アドレス方法を用いることによって、上述のオリジナルデータは、24KBスペースに等しいアドレス0−47の48セクタを占めている。その配分は、次の表3に示されている。
上述の情報が圧縮された後、オリジナルデータアドレス1−26に情報は記録されず、高圧縮比を達成できるようにその内容の全てに初期値0xFFが設定される。残りの情報は、オリジナルデータの11KBに等しい22セクタを占めるだけである。この結果、上述の初期化オリジナルデータの圧縮によって、容量が16KBより少ないデータフレームを容易に得ることができることが知られている。
尚、システムが初期化された後、読み込まれる基礎情報を記憶するのに一つのデータフレームのみが必要とされる。ここで、対応するオリジナル開始アドレスは、0であり、データ長さは、48である。更に、データフレームの先行記述ユニット状態は、次の表4に示されている。
この表において、AI,PLは、オリジナルデータ特性に基づくコントローラによって選択された最も適用可能な圧縮に基づいて決まり、それは、0xmmおよび0xnnとして表される。
図4Bを参照すると、コントローラ310が上述の表3に示された先行記述ユニットを走査するとき、シリコン記憶媒体が初期化状態にあるので、アドレスが0である第一メモリブロックがデータフレームを記録するため用いられ、リニア連続オリジナルデータとデータフレームとの関係が図4Bに示されている。
“システムリニア連続アドレス”は、シリコン記憶媒体が上述の方法で初期化された後、48セクタ(LAB=0からLBA=47まで)のみがその媒体に記憶された有意義な情報を有し、使用中のブロックがダイアグラム(図表)に、塗られたダークカラーによって表示されることを示す。図4Bに示された“メモリサイド非リニアセグメントアドレス”は、メモリの内部を示し、ここで、圧縮データは、データフレームを記憶するユニットとしてメモリブロックを用いる方法で記憶される。更に、図4Bの“コントローラ内変換テーブル”は、コントローラの内部を示し、ここで、シリコン記憶媒体が初期化された後、システムリニア連続アドレスを記憶サイドセグメントアドレスにリンクするために変換テーブルが発生される。それが第一の使用中メモリブロックであるため、変換ユニットは、これに応じて変換テーブルに発生され、ここに記録された情報は、次の表5に示されている。
変換テーブルを発生する工程は、以下に詳細に述べられる。
図5を参照すると、コントローラが初期化された(s502)後、変換テーブルを発生する工程をフローチャートで示している。先ず、適用メモリの形式および容量が検出され(s504)、この場合、先ず、最終のブロックが“最終ブロック”として定義され、次いで、変換テーブルバッファがスキームされて初期化され(s506)、メモリブロックBA=0が読み込まれる(s508)。次いで、各メモリブロックの先行記述ユニットが読み込まれ(s510)、読まれたマークブロック状態が変換ユニットに記録される(s512)。尚、メモリブロックが使用中であるか否かが判定される(s501)。ブロックが使用中であることが判定されたら、変換ユニットの開始アドレス(SA)およびデータ長さ(DL)が記録され(s514)、変換テーブルにおける使用中のブロックシリーズリンクが更新され(s516)、また変換テーブルにおける非使用ブロックシリーズリンクが更新される(s518)。ブロックが使用されていないことが判定されたら、変換テーブルにおける非使用ブロックシリーズリンクが直接更新される(s518)。尚、幾つかのブロックが不良であることが判ったら、工程は、メモリブロック状態(s501)を判定する段階に戻る。不良ブロックがない場合、次いで、最終ブロックマッチBA=最終ブロックかどうかが決定される(s503)。そうであれば、変換テーブルの発生が全体的に終了する(s522)。その他、次のメモリブロックBA=BA+1が走査され、メモリブロックの先行記述ユニットは、s510で連続して読み込まれる。
非使用ブロックシリーズリンクテーブルおよび使用中ブロックシリーズリンクテーブルが変換テーブルを発生する際に用いられ、2方向シリーズリンクのデータ構造は、本発明の好ましい実施例に用いられ、この結果、コントローラを対応するシステムアドレスにリンクすることができ、記録メモリブロック位置が開始アドレスから上方向又は下方向シーケンスでスタートする。
これら二つのシリーズリンクテーブルを発生する工程を以下に詳細に述べる。
図4Bおよび図6の両方を参照すると、これら図面は、メモリブロックがまだ用いられていないときに、非使用シリーズリンクを更新する工程を概略的に示している。図4Bに示された二つのインジケータEMPTYおよびEMP_ENDが非使用ブロックシリーズリンクテーブルを発生する基準インジケータとして用いられる。先ず、二つのインジケータが初期値に初期化され(例えば、FFF)、メモリのブロックアドレス(BA)は0に設定される(s602)。段階s601において、非使用メモリブロック(BS=FF)があることが判ったら、EMPTYが、初期値かどうかが判定される(例えば、エントリが段階s603に示されたFFFであるか否か)。そうであれば、これは第一の検出された非使用メモリブロックであることを意味し、この場合に、二つのインジケータは、現在の非使用ブロック(EMPTY=BAおよびEMP_END=BA)のアドレスに設定され、PE(BA)=FFFおよびNE(BA)=FFFは、ブロックに対応する変換ユニットに同時に記録される(s604)。第一の検出非使用ブロックでないことが判ったら、非使用ブロックに対応する変換ユニットも更新され、即ち、PE(BA)がEMP_ENDに設定され、NE(BA)がFFFに設定され、インジケータEMP_ENDがメモリブロックアドレス(BA)を示す(s606)。段階s604または段階s606が実行されたか否かにかかわらず、ブロックが最終のブロックであるか否かが判定される(s605)。最終のブロックでない場合、上記段階s601に続く段階が次のブロックで実行される。最終のブロックであれば、非使用メモリブロックシリーズリンクテーブルの発生が終了する(s610)。
図4Bおよび図7の両方を参照すると、これら図面は、メモリブロックが使用中であるとき、使用中シリーズリンクテーブルを更新する工程を示す。図4Bに示された二つのインジケータSTARTおよびENDは、使用中ブロックシリーズリンクテーブルを発生する基準インジケータとして使用される。同様に、二つのインジケータSTARTおよびENDは、初期値(例えば、FFF)に初期化され、メモリのブロックアドレス(BA)は、0に設定される(s702)。変換ユニットが挿入されるシリーズリンクデータ構造の位置は、先ず、データフレームの先行記述ユニットによって記録されたスタートアドレス(SA)およびデータ長さ(DL)パラメータに従って検索され、先のエントリ変換ユニットのNEインジケータと、次のエントリ変換ユニットのPEインジケータとの両方が更新される。更に、前のエントリ変換ユニットのブロックアドレス(BA)は、現在のエントリ変換ユニットのNEインジケータとして登録され、次のエントリ変換ユニットのブロックアドレス(BA)は、現在のエントリ変換ユニットのPEインジケータとして登録される。次いで、使用中ブロックBS=F0が検出されたか否かが判定される(s701)。検出された場合、次いで、第一の検出された使用中ブロックかどうかが判定される(s703)。第一の検出使用中ブロックであれば、次の値、START=BA,END=BA,PE(BA)=FFFおよびNE(BA)=FFFが設定される(s704)。第一の検出使用中ブロックでない場合、挿入点を検索する。この場合、挿入点表示インジケータ、BA_INSが変換ユニットとして設定され、これはSTARTインジケータによって示される(s710)。挿入前に、非第一タイム検出使用中ブロックのSA値が挿入点インジケータBA_INSによって示された値より小さいか否かが判定されなければならない。そうであれば、BA_INSインジケータ値の先の変換ユニットが第一の使用中ブロックであるか否かが判定される(s707)。第一の使用中ブロックであれば、STARTインジケータは、第一の検出ブロックアドレスに更新され、次いで、変換ユニットがシリーズリンクに挿入される(s706)。第一の使用中ブロックでない場合、変換ユニットは、シリーズリンクに直接挿入される(s706)。検出された使用中ブロックのSA値が挿入点インジケータBA_INSによって示された値より大きいか又は等しいと判定された場合(s705)、次いで、BA_INSの次の変換ユニットが最終使用中ブロックか否かが判定される(s709)。最終使用中ブロックであれば、ENDインジケータが更新され、検出使用中ブロックが、最終使用中ブロックとして記録される(s714)。次いで、最終使用中ブロックに対応する変換ユニットは、使用中シリーズリンクに挿入される(s708)。しかしながら、BA_INSの次の変換ユニットが最終使用中ブロックでないとき、次のBA_INSについて、判定する操作が実行される。上述の走査工程が最終ブロックについて実行され、使用中ブロックシリーズリンクテーブルの発生が終了する。
本発明の実施例において、使用中メモリブロックとシステムアドレスとの間に変換関係を生ずるように、変換テーブルが2方向シリーズリンクデータ構造を用いていることが留意されるべきである。コントローラの内蔵バッファ寸法を小さくするか、または、対応するメモリブロックアドレスを検索する性能を改善するために、他のデータ構造を本発明に適用することができる。
図8を参照すると、変換テーブルが発生された後(s902)、コントローラがシステムによって形成されたアクセス指示を取るように準備される(s804)。このシステムが読み取り指示を発すると、必要なデータのLBAアドレスおよびデータ長さの両方がシリコン記憶媒体に送信される(s806)。尚、シリコン記憶媒体のコントローラは、STARTインジケータによって示されたメモリブロックアドレスから開始する、変換テーブルにおける対応するデータフレームを検索する(s808)。この場合、読み取られるべきデータのスタート位置および長さが、最先のメモリブロックアドレスのスタート位置を越えたとき(s801、s803)、工程は、圧縮ノード(節)Bに入り、初期値が戻され、これは現在メモリにない読み取られるべきデータを示す。しかしながら、データ長さの部分が最先のメモリブロックアドレスのスタート位置を越えたとき(s801、s803)、このような場合に、初期値の部分および読み取りデータの部分は、システムに送り戻される(s810、s805、s812)。更に、読み取られるべきデータおよびデータブロックのスタートアドレスは、最先のメモリブロックアドレスの開始点およびデータフレーム寸法の範囲内にあるとき(s805、s807)、データフレームは、圧縮のためのデータバッファに読み取られる(s812)。データフレームが圧縮された後、オリジナルデータがシステムに送り戻される(s816)。読み取られるべきデータのスタートアドレスが最先のメモリブロックアドレスの開始点にあるが、読み取られるべきデータの部分がデータフレーム寸法の範囲を超えたとき、このような場合に、データ長さの部分は、システムに送り戻され、スタートアドレスは、全ての残りのデータを次の時間に完全に送信するために同時に更新される。上述したものより他の状態のために、換言すると、対応するデータフレームアドレスが得られないとき、初期データフォーマットがシステムに直接送り戻される(s818)。
ここで、コントローラがデータフレームを更新する工程にあるとき、変換テーブルバッファも更新され、変換関係が先行記述ユニットに記録される。アドレスマッピングモジュールがオリジナルデータのアドレスを記録し、対応するメモリブロックを得るためにシステムによって形成された読み取りアクセス指示に従って変換テーブルバッファを検索し、対応するメモリブロックからのデータフレームを最終的に読み取る。
図9乃至図12を参照すると、図9には書き込み操作の主流が概略的に示され、図10乃至図12には送信開始点/範囲とデータフレームとの間の異なる関係による工程の二次的流れが概略的に示されている。
図9を参照すると、変換テーブルが発生された後(s902)、コントローラは、現在のシステムによって提供されたアクセス指示を受ける準備にある(s904)。システムが書き込み指示を発するとき(s906)、コントローラは、変換テーブルを検索して、変換テーブルからのシステム読み取りアドレスに相応するメモリブロックアドレスを得ることができるか否かをチェックする(s908)。その後、五つの段階s901、s903、s905、s909、およびs911がそれぞれ実行されて書き込まれるべきデータが更新データであるか新しい書き込みデータであるかが判定される。従って、五つの異なる状態が次の通り設定される。
状態A(s910)では、変換開始点およびデータ範囲の両方がデータフレーム以上であり、状態B(s912)では、送信開始点がデータフレーム以上であるが、データ範囲はデータフレーム内にあり、状態C(s914)では、送信開始点およびデータ範囲の両方がデータフレーム内にあり、状態D(s916)では、送信データ開始点がデータフレーム内にあるが、データ範囲の部分がデータフレーム以上であり、状態E(s920)では、送信開始点およびデータ範囲の両方がデータフレーム以上であり且つ最終のデータフレームの後になる。これら五つの状態は、以下詳細に説明される。
上述の工程をコントローラのファームウエア実行を介して行うことができることを留意されたい。システムのデータアクセスを加速するために、コントローラが迅速に検索でき、且つ更なる操作のためシステムアクセス対象アドレスと変換テーブルとの間の関係を判定できるように、ハードウエア回路をアドレスマッピングモジュールに一体にすることができる。
図10乃至図12に示された五つの異なる状態A、B,C,D,およびEを以下に述べる。
状態A:図10を参照すると、前記状態Aでは、システム書き込み対象アドレスの開始点および送信データ長さの範囲の両方が現在のデータフレーム以上であり、開始アドレスがデータフレームBAによって記録されたデータ長さに等しいことが変換テーブルを検索した結果から判る。従って、値、EMPTYは、非使用メモリブロック変換テーブルから直接得られ、新しいデータフレームが記憶され記録される。BAがまさに使用中変換テーブルの開始アドレスSTARTである場合、新しく加えられたデータフレームNEWが使用中変換テーブルの最前端に挿入される。その他、新しく加えられたデータフレームNEWは、使用中変換テーブルBAの前部でPE(BA)の後に挿入され、全ての関連するインジケータが更新される。
状態B:図10を参照すると、前記状態Bでは、システム書き込み対象アドレスの開始点が現在のデータフレームの後であり、送信データ長さの範囲の部分が現在のデータフレーム内にある。なお、現在のデータフレーム内の送信データの前部を処理する工程は、状態Aに用いられたものと同じであり、これに対して、その後部は、更に主流によって処理される。
状態C:図11を参照すると、前記状態Cでは、システム書き込み対象アドレスの開始点および送信データ長さの範囲の両方が現在のデータフレーム内にあることが変換テーブルを検索した結果から判る。従って、相応するメモリブロックBAが使用中メモリブロック変換テーブルから直接得られ、データは、読み取られて復元される。オリジナルデータがシステムによって提供されたデータXFR_長さで更新され、データが再圧縮された後、新しいデータフレームが発生される。次いで、EMPTYの値が非使用メモリブロック変換テーブルから得られ、更新されたデータフレームは、メモリブロックEMPTYに記憶され、記録される。BAがまさに使用中変換テーブルの開始アドレスSTARTであれば、新規更新データフレームNEWは、使用中変換テーブルの最前端に挿入される。その他、新規更新データフレームNEWは、使用中変換テーブルBA,PE(BA)の後に挿入され、全ての関連するインジケータが更新される。先ず、BAメモリブロックが消去され、次いで、非使用メモリブロック変換テーブルの後端の後に挿入される。
状態D:図11を参照すると、前記状態Dでは、システム書き込み対象アドレスの開始点が現在のデータフレーム内にあるが、データ送信範囲が相応するデータフレームのオリジナルデータ長さ以上であることが変換テーブルを検索した結果から判る。なお、現在のデータフレーム内の前部および現在のデータフレームを超える後部を処理する工程は、状態Cに用いられたものと同じであり、現在のデータフレームを超える後部は、送信開始アドレスStart_LBAおよびデータ送信長さXFR_長さが逆になった後、主流によって更に処理される。
状態E:図12を参照すると、前記状態Eでは、システム書き込み対象アドレスの開始点およびデータ送信長さの範囲の両方が現在のデータフレームを超え、開始アドレスが最終データフレームBA(例えば、PE(BA)= =FFF)のデータ長さに亘っていることが変換テーブルを検索した結果から判る。従って、値、EMPTYは、非使用メモリブロック変換テーブルから直接得られ、システムによって提供されたオリジナルデータは、新規に加えられたデータフレームNEWに記憶され記録されたデータフレームを発生するため受信される。次いで、新規に加えられたデータフレームNEWは、使用中メモリブロック変換テーブルの後部の後に挿入され、全ての関連するインジケータが更新される。
本発明がその特定の実施例について述べられてきたが、本発明の概念から逸脱することなく、この実施例に変更がなされることが当業者には明らかであろう。従って、本発明の範囲は、上記詳細な説明によってでなく、特許請求の範囲によって限定される。
310 コントローラ
317 変換テーブルバッファ
318 アドレスマッピングモジュール
320 メモリ
314a データ圧縮器
317 変換テーブルバッファ
318 アドレスマッピングモジュール
320 メモリ
314a データ圧縮器
Claims (19)
- メモリと、制御ユニットとを備え、前記メモリが複数のメモリブロックを含み、前記メモリブロックのそれぞれは、複数のデータフレームを有し、前記複数のデータフレームは、先行記述ユニットと複数の圧縮セクタデータとエラ−チェックコードとを含み、前記制御ユニットは、変換テーブルバッファとアドレスマッピングモジュールとを備え、データを読み書きするためシステムにアクセスするようにしたシリコン記憶媒体を制御する方法であって、前記先行記述ユニットにアクセスするためのデータフレームを読み込んで変換テーブルを確立し、前記変換テーブルに従って前記データフレームによって写し出されたメモリブロックにアクセスし、前記メモリブロックから読み出すか、あるいは該メモリブロックに書き込むことを備えているシリコン記憶媒体制御方法。
- 前記先行記述ユニットは、ブロック状態(BS)と、前記メモリブロックが前記データを最初に記憶するアドレスを示す開始アドレス(SA)と、前記メモリブロックが記憶するデータの長さを示すデータ長さ(DL)とを備えている請求項1記載の方法。
- 前記先行記述ユニットは、前記制御ユニットが前記データを圧縮/復元するように選択する手順を示すアルゴリズムインジケータ(AI)と、前記制御ユニットが写し出すことを選択するパラメータテーブルを示すパラメータインジケータ(PI)とを更に備えている請求項1記載の方法。
- 前記変換テーブルを確立する段階は、非使用メモリブロックで変換テーブルを確立すると共に、変換テーブルを使用中メモリブロックで確立し、且つ読み込み/書き込みインデックスに従って前記非使用/使用中変換テーブルを更新することを更に備えている請求項1記載の方法。
- 前記非使用変換テーブルを確立するとき、更に、メモリブロックを順次走査し、非使用メモリブロック(BS=FF)を受信し、前記非使用メモリブロックのパラメータが所定値(EMPTY==FFF)に等しいか否かを検出し、そうであれば、前記非使用メモリブロックの前記パラメータおよび最終パラメータの値をシーケンスメモリブロック(EMPTY=BA、EMP_END=BA)のアドレスで置換し、且つ前記非使用メモリブロックの前のエントリおよび次のエントリの値を前記所定の値(PE(BA)=FFF、NE(BA)=FFF)で置換し、前記最終メモリブロックを走査した後、前記値に置換する記録に従って前記非使用変換テーブルを確立することを備えている請求項4記載の方法。
- 前記非使用メモリブロックのパラメータが前記所定の値に等しくないとき、前記非使用メモリブロックの最終パラメータの値をシーケンスメモリブロック(NE(EMP_END)=BA、EMP_END=BA)のアドレスで置換し、前記非使用メモリブロックの先のエントリおよび次のエントリの値を前記最終のパラメータ(PE(BA)=EMP_END)および前記所定値(NE(BA)=FFF)で置換して前記非使用変換テーブルを確立するため前記記録を行うようにした請求項5記載の方法。
- 前記使用中変換テーブルを確立するとき、更に、メモリブロックを順次走査し、使用中メモリブロック(BS=F0)を受信し、前記使用中メモリブロックのパラメータが所定値(START==FFF)に等しいか否かを検出し、そうであれば、前記使用中メモリブロックの前記パラメータおよび最終パラメータの値をシーケンスメモリブロック(START=BA、END=BA)のアドレスで置換し、且つ前記使用中メモリブロックの先のエントリおよび次のエントリの値を前記所定の値(PE(BA)=FFF、NE(BA)=FFF)で置換し、前記最終メモリブロックを走査した後、前記値に置換する記録に従って前記使用中変換テーブルを確立することを備えている請求項4記載の方法。
- 前記使用中メモリブロックのパラメータが所定の値に等しくないとき、更に、
前記使用中メモリブロック(BA_INS=START)によって写し出された挿入位置のアドレスを得るため前記使用中メモリブロックによって写し出されたデータフレームの先行記述ユニットを受信し、前記使用中メモリブロックの開始アドレスが前記挿入点の開始アドレスより小さいとき、前記挿入点の前のデータフレームのパラメータが所定値(PE(BA_INS)=FFF)であるか否かを判定し、そうであれば、前記使用中メモリブロックのパラメータをシーケンスメモリブロック(START=BA)のアドレスで置換し、そうでなければ、前記メモリブロックの前記前データフレームを挿入点のもの(PE(BA)=PE(INS_BA))で置換し、前記メモリブロックの次のエントリを前記挿入点のアドレス(NE(BA)=INS_BA)で置換し、且つ前記挿入点の先のエントリをシーケンスメモリブロック(PE(BA_INS)=BA)のアドレスで置換し、前記使用中メモリブロックの開始アドレスが前記挿入点の開始アドレスより小さくないとき、前記挿入点の次のデータフレームのパラメータが所定値(NE(BA_INS)=FFF)であるか否かを判定し、そうでなければ、次の挿入点の開始アドレスを連続して判定し、そうであれば、前記使用中メモリブロックの最終パラメータをシーケンスメモリブロック(END=BA)のアドレスで置換し、前記メモリブロックの前記前データフレームを挿入点と同じもの(PE(BA)=PE(INS_BA))で置換し、前記メモリブロックの次のエントリを所定値(NE(BA)=FFF)で置換し、且つ前記挿入点の次のエントリをシーケンスメモリブロック(NE(BA_INS)=BA)のアドレスで置換し、前記最終メモリブロックを走査した後、前記値に置換する記録に従って前記使用中変換テーブルを確立することを備えている請求項7記載の方法。 - 前記システムが読み取り指示を送信するとき、更に、前記変換テーブルに従って前記読取指示に対応する前記メモリブロックの前記データによって写し出されたアドレスを検索し、前記写し出されたアドレス受信するかどうかを判定し、受信するなら、前記写し出されたアドレスのデータフレームを読取ってオリジナルデータを復元して前記システムに送り戻し、受信しなければ、所定のデータフレームを前記システムに送信することを備えている請求項1記載の方法。
- 前記システムが書き取り指示を送信するとき、更に、前記変換テーブルに従って前記書き取り指示に対応する前記メモリブロックの前記データによって写し出されたアドレスを検索し、前記写し出されたアドレスを受信するかどうかを判定し、受信するなら、前記写し出されたアドレスのデータフレームを復元して前記システムから送信されたデータと相応する前記データフレームを更新し、前記写し出されたアドレスの前記データフレームにおけるデータを消去して前記更新されたデータフレームを非使用メモリブロックの中に記憶し、前記変換テーブルを更新することを備えている請求項1記載の方法。
- 前記写し出されたアドレスを受信するか否かを判定するとき、受信しない場合、前記システムが書き込みたいデータに相応するデータフレームを構成して非使用メモリブロックに記憶し、且つ前記変換テーブルを更新する請求項10記載の方法。
- 前記システムによって送信された前記データの開始アドレスおよび長さが前記データフレームを超えたとき、前記システムは、前記データを圧縮し、前記使用中変換テーブルおよび前記開始アドレスを更新する請求項11記載の方法。
- 前記データの開始アドレスが前記データフレームを超えたとき、前記データの長さを調節して圧縮し、前記使用中変換テーブルおよび開始アドレスを更新する請求項11記載の方法。
- 前記データの開始アドレスおよび長さが前記データフレーム内にあるとき、前記システムは、前記データを復元し、該復元したデータおよび前記データを、データフレームを形成するための前記書き込み指示について再圧縮し、前記使用中変換テーブル、前記開始アドレスおよび非使用変換テーブルを更新する請求項11記載の方法。
- 前記データの長さが前記データフレームを超えたとき、前記長さを調節して前記データを復元し、該復元したデータおよび前記データを、データフレームを形成するための前記書き込み指示について再圧縮し、前記使用中変換テーブル、前記開始アドレスおよび非使用変換テーブルを更新する請求項11記載の方法。
- 前記データの開始アドレスおよび長さが前記データフレーム超えるばかりでなく超えない場合、前記システムは、他のデータフレームを再形成するため前記データを圧縮し、前記使用中変換テーブルおよび非使用変換テーブルを更新する請求項11記載の方法。
- データをシステムに関して読取りおよび書き込むシリコン記憶媒体であって、複数のメモリブロックを有し、各メモリブロックが複数のデータフレームを有するメモリと、制御ユニットとを備え、前記システムと前記制御ユニットとの間をインターフェースで接続するチャンネルとして機能するシステムインターフェースと、データを一時的に記憶する第一のシステムデータバッファと、読取り、書込みおよび消去の工程を実行するマイクロプロセッサと、データを一時的に記憶する第一のメモリデータバッファと、前記制御ユニットと前記複数のメモリとの間にインターフェースで接続するチャンネルとして機能するメモリインターフェースとを更に備えているシリコン記憶媒体。
- 前記制御ユニットは、データ圧縮/復元モジュールを更に備えている請求項17記載のシリコン記憶媒体。
- 前記制御ユニットは、前記データ圧縮/復元モジュールと前記システムインターフェースおよび前記メモリインターフェースとの間にそれぞれ第二のシステムデータバッファおよび第二のメモリデータバッファを更に備えている請求項17記載のシリコン記憶媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW093112722A TWI233616B (en) | 2004-05-06 | 2004-05-06 | Silicon storage media and controller thereof, controlling method thereof, and data frame based storage media |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005322209A true JP2005322209A (ja) | 2005-11-17 |
Family
ID=35220076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005017400A Pending JP2005322209A (ja) | 2004-05-06 | 2005-01-25 | シリコン記憶媒体制御方法およびシリコン記憶媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20050249008A1 (ja) |
JP (1) | JP2005322209A (ja) |
DE (1) | DE102004059750A1 (ja) |
TW (1) | TWI233616B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9553604B2 (en) | 2009-03-30 | 2017-01-24 | Nec Corporation | Information processing system, information compression device, information decompression device, information processing method, and program |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429375B1 (en) | 2006-06-16 | 2013-04-23 | Synopsys, Inc. | Memory management unit (MMU) to make only one time programmable (OTP) memory appear multiple times programmable (MTP) |
US20120191943A1 (en) * | 2009-10-13 | 2012-07-26 | Rambus Inc. | Dynamic protocol for communicating command and address information |
CN103729315B (zh) | 2012-10-15 | 2016-12-21 | 华为技术有限公司 | 一种地址压缩、解压缩的方法、压缩器和解压缩器 |
CN105426317B (zh) * | 2015-10-29 | 2018-10-23 | 浙江卓奥科技股份有限公司 | 一种往Flash中存放用户数据的存储方法及读取方法 |
US9946462B1 (en) * | 2016-02-15 | 2018-04-17 | Seagate Technology Llc | Address mapping table compression |
US9952771B1 (en) * | 2016-03-31 | 2018-04-24 | EMC IP Holding Company LLC | Method and system for choosing an optimal compression algorithm |
US11137921B2 (en) * | 2019-03-05 | 2021-10-05 | Samsung Electronics Co., Ltd. | Data storage device and system |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61281636A (ja) * | 1985-05-29 | 1986-12-12 | Kenwood Corp | 時分割多重伝送方式 |
JPH0736373A (ja) * | 1993-07-16 | 1995-02-07 | Omron Corp | プログラマブルコントローラ |
JPH0879672A (ja) * | 1994-09-02 | 1996-03-22 | Sanyo Electric Co Ltd | 静止画再生装置 |
JPH08102760A (ja) * | 1994-09-30 | 1996-04-16 | Victor Co Of Japan Ltd | 情報記憶管理装置 |
JPH10105659A (ja) * | 1996-09-30 | 1998-04-24 | Hitachi Ltd | 非接触icカード |
JPH10233088A (ja) * | 1994-07-05 | 1998-09-02 | Monolithic Syst Technol Inc | 再同期化回路及び方法 |
JP2000163316A (ja) * | 1998-11-27 | 2000-06-16 | Hitachi Ltd | 計算機システム |
JP2001043092A (ja) * | 1999-07-30 | 2001-02-16 | Nec Ic Microcomput Syst Ltd | タスク間メッセージ通信方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658480B2 (en) * | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
US6477143B1 (en) * | 1998-01-25 | 2002-11-05 | Dror Ginossar | Method and apparatus for packet network congestion avoidance and control |
US7538694B2 (en) * | 1999-01-29 | 2009-05-26 | Mossman Holdings Llc | Network device with improved storage density and access speed using compression techniques |
US20030185301A1 (en) * | 2002-04-02 | 2003-10-02 | Abrams Thomas Algie | Video appliance |
US7373500B2 (en) * | 2003-04-15 | 2008-05-13 | Sun Microsystems, Inc. | Secure network processing |
US20040210663A1 (en) * | 2003-04-15 | 2004-10-21 | Paul Phillips | Object-aware transport-layer network processing engine |
-
2004
- 2004-05-06 TW TW093112722A patent/TWI233616B/zh not_active IP Right Cessation
- 2004-12-01 US US10/904,824 patent/US20050249008A1/en not_active Abandoned
- 2004-12-11 DE DE102004059750A patent/DE102004059750A1/de not_active Ceased
-
2005
- 2005-01-25 JP JP2005017400A patent/JP2005322209A/ja active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61281636A (ja) * | 1985-05-29 | 1986-12-12 | Kenwood Corp | 時分割多重伝送方式 |
JPH0736373A (ja) * | 1993-07-16 | 1995-02-07 | Omron Corp | プログラマブルコントローラ |
JPH10233088A (ja) * | 1994-07-05 | 1998-09-02 | Monolithic Syst Technol Inc | 再同期化回路及び方法 |
JPH0879672A (ja) * | 1994-09-02 | 1996-03-22 | Sanyo Electric Co Ltd | 静止画再生装置 |
JPH08102760A (ja) * | 1994-09-30 | 1996-04-16 | Victor Co Of Japan Ltd | 情報記憶管理装置 |
JPH10105659A (ja) * | 1996-09-30 | 1998-04-24 | Hitachi Ltd | 非接触icカード |
JP2000163316A (ja) * | 1998-11-27 | 2000-06-16 | Hitachi Ltd | 計算機システム |
JP2001043092A (ja) * | 1999-07-30 | 2001-02-16 | Nec Ic Microcomput Syst Ltd | タスク間メッセージ通信方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9553604B2 (en) | 2009-03-30 | 2017-01-24 | Nec Corporation | Information processing system, information compression device, information decompression device, information processing method, and program |
Also Published As
Publication number | Publication date |
---|---|
DE102004059750A1 (de) | 2005-11-24 |
TWI233616B (en) | 2005-06-01 |
TW200537497A (en) | 2005-11-16 |
US20050249008A1 (en) | 2005-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4533956B2 (ja) | フラッシュメモリシステムのデータ記憶容量の解放 | |
US7844772B2 (en) | Device driver including a flash memory file system and method thereof and a flash memory device and method thereof | |
KR100468880B1 (ko) | 불발성기억장치,불휘발성기억장치의제어방법및불휘발성기억장치를제어하는프로그램을기록한정보기록매체 | |
KR100877448B1 (ko) | 비휘발성 기억 시스템 | |
US9529709B2 (en) | Apparatuses for managing and accessing flash memory module | |
TWI306263B (ja) | ||
US9514057B2 (en) | Storage module and method for managing logical-to-physical address mapping | |
US7461198B2 (en) | System and method for configuration and management of flash memory | |
CN107526743B (zh) | 用于压缩文件系统元数据的方法和设备 | |
JP2005322209A (ja) | シリコン記憶媒体制御方法およびシリコン記憶媒体 | |
US8381018B2 (en) | Method for data recovery for flash devices | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
JP2006221636A (ja) | Run単位アドレスマッピングテーブル及びそれの構成方法 | |
JP2004288150A (ja) | フラッシュファイルシステム | |
CN102662856B (zh) | 一种固态硬盘及其存取方法 | |
JP2012234495A (ja) | フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム | |
US20120198131A1 (en) | Data writing method for rewritable non-volatile memory, and memory controller and memory storage apparatus using the same | |
JP2009503743A (ja) | データファイルを直接記憶するメモリブロックの管理 | |
JP2005174279A (ja) | フラッシュメモリ、そのためのマッピング制御装置及び方法 | |
CN111966281B (zh) | 数据储存装置与数据处理方法 | |
CN114077559A (zh) | 存储装置的存取管理的方法及设备 | |
JP2009503740A (ja) | データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け | |
CN107943727B (zh) | 一种高效dma控制器 | |
JP2005322208A (ja) | シリコン記憶メディア、コントローラ及びそのアクセス方法 | |
JP2005115561A (ja) | フラッシュrom制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100420 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101109 |