JP4149640B2 - Semiconductor memory writing control apparatus and method - Google Patents

Semiconductor memory writing control apparatus and method Download PDF

Info

Publication number
JP4149640B2
JP4149640B2 JP2000208542A JP2000208542A JP4149640B2 JP 4149640 B2 JP4149640 B2 JP 4149640B2 JP 2000208542 A JP2000208542 A JP 2000208542A JP 2000208542 A JP2000208542 A JP 2000208542A JP 4149640 B2 JP4149640 B2 JP 4149640B2
Authority
JP
Japan
Prior art keywords
data
physical block
physical
write
written
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.)
Expired - Fee Related
Application number
JP2000208542A
Other languages
Japanese (ja)
Other versions
JP2002024077A (en
Inventor
賢一 道庭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2000208542A priority Critical patent/JP4149640B2/en
Publication of JP2002024077A publication Critical patent/JP2002024077A/en
Application granted granted Critical
Publication of JP4149640B2 publication Critical patent/JP4149640B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、データを記憶する複数の物理ブロックを有し、上位システムから論理ブロックを指定したデータ書込みが行われる半導体メモリにおける書込制御装置及びその方法に関するものである。
【0002】
【従来の技術】
従来のフラッシュメモリ等の半導体メモリにおいては、特定領域のデータの書き換え頻度が高いことによるメモリの一部領域の劣化によって、記憶装置全体の寿命が短縮化されることを防止するため、物理ブロックの消去回数をカウントしておき、消去回数が一定となった場合に、その物理ブロックのデータを別の物理ブロックへコピーする装置が知られている(例えば、特開2000−20252参照)。
【0003】
上記の従来例によると、消去回数のカウントを各物理ブロックで行う必要があり煩わしい。
【0004】
【発明が解決しようとする課題】
本発明は上記のような従来の半導体メモリにおける問題点を解決せんとしてなされたもので、その目的は、消去回数のカウントを各物理ブロックで行うことなく、特定論理ブロック(論理アドレス)へのデータ書込み頻度が高い場合にもメモリ全体の寿命が短くなることを防止し得る半導体メモリの書込制御装置及びその方法を提供することである。
【0005】
【課題を解決するための手段】
本発明に係る半導体メモリの書込制御装置は、データを記憶する複数の物理ブロックを有し、上位システムから論理ブロックを指定したデータ書込みが行われる半導体メモリの書込制御装置において、データを書き込むべき物理ブロックの指定が均等となるように前記複数の物理ブロックを予め定められた順に指定する指定手段と、物理ブロックに新たにデータが書き込めるように、該物理ブロックに記憶したデータを消去する消去手段と、前記指定手段が指定する物理ブロックについて、すでにデータが書き込まれているか否かに従い該物理ブロックへのデータ書込の可否を検出する検出手段と、データ書込み要求があると、前記消去手段による消去を行わせ、前記検出手段により書込み可と判定された場合には、前記指定手段が指定する物理ブロックにデータを書き込む一方、書込み不可と判定された場合には、前記指定手段が指定する物理ブロックに記憶したデータを、前記消去手段による消去により生じた書き込み可能な別の物理ブロックへ移動すると共に、前記指定手段が指定する物理ブロックに記憶したデータを、前記消去手段によって消去した後に、前記データ書込み要求に係るデータを該消去した物理ブロックへ書き込む書込制御手段と、前記書込制御手段による書込み動作に応じて、論理ブロックと物理ブロックのアドレスを対応付けるアドレス制御手段とを具備することを特徴とする。これにより、書込みに係る物理ブロックが自動的に均等に指定されて書込みがなされてゆくことになる。
【0006】
また本発明に係る半導体メモリの書込制御装置は、物理ブロックの空きブロックを監視する空きブロック監視手段と、前記空きブロック監視手段による監視結果に応じて前記書込制御手段の稼働を制御する稼働制御手段とを具備することを特徴とする。これにより、物理ブロックの空き状態に応じて、書込みに係る物理ブロックが自動的に均等に指定されて書込みがなされる動作の採用が決められる。
【0007】
また本発明に係る半導体メモリの書込制御装置は、各物理ブロックと各論理ブロックに、前記書込制御手段の稼働を制御する属性情報を付加し、前記属性情報に応じて前記書込制御手段の稼働を制御する稼働制御手段とを具備することを特徴とする。これによって、物理ブロックと論理ブロックにより書込みの制御方式を変えることができる。
【0008】
また本発明に係る半導体メモリの書込制御装置は、予め定められた領域であるか否かに基づき前記書込制御手段の稼働を制御する稼働制御手段とを具備することを特徴とする。これにより、予め定められた領域であるか否かにより書込みの制御方式を変えることができる。
【0009】
また本発明に係る半導体メモリの書込制御装置は、上位システムからの指示に基づき前記書込制御手段の稼働を制御する稼働制御手段とを具備することを特徴とする。これによって上位システムからの指示により書込みの制御方式を変えることができる。
【0010】
また本発明に係る半導体メモリの書込制御装置は、指定手段が指定する物理ブロックの範囲を設定する設定手段を具備することを特徴とする。これによって、指定手段が指定する物理ブロックの範囲を設定することが可能となる。
【0011】
更に本発明に係る半導体メモリの書込制御方法は、データを記憶する複数の物理ブロックを有し、上位システムから論理ブロックを指定したデータ書込みが行われる半導体メモリにおける書込制御方法において、データを書き込むべき物理ブロックの指定が均等となるように前記複数の物理ブロックを予め定められた順に指定する第1のステップと、前記第1のステップにて指定された物理ブロックについて、すでにデータが書き込まれているか否かに従い物理ブロックへのデータ書込の可否を検出する第2のステップと、データ書込み要求があると、物理ブロックに新たにデータが書き込めるように、該物理ブロックに記憶したデータを消去する第3のステップと、前記第2のステップにより書込み不可と判定された場合には、前記第1のステップにて指定された物理ブロックに記憶したデータを前記第3のステップにより生じた書き込み可能な別の物理ブロックへ移動するとともに、前記第1のステップにて指定された物理ブロックに書き込み済みのデータを、新たにデータが書き込めるように消去する第4のステップと、前記第1のステップにて指定された物理ブロックへ、前記データ書込み要求に係るデータを書き込む第5のステップと、前記第5のステップによる書込み動作に応じて、論理ブロックと物理ブロックのアドレスを対応付ける第6のステップとを含むことを特徴とする。これにより、書込みに係る物理ブロックが自動的に均等に指定されて書込みがなされてゆくことになる。
【0012】
【発明の実施の形態】
以下添付図面を参照して、本発明の実施の形態に係る半導体メモリの書込制御装置及びその方法を説明する。図1には、本発明の装置を用いて構成したデータ処理システムが示されている。このシステムは、上位システムであるホストコンピュータ100と半導体不揮発性メモリカード101を備えるものである。
【0013】
半導体不揮発性メモリカード101には、インタフェース回路102、メモリ制御回路103、フラッシュメモリ104が含まれており、インタフェース回路102がバス105を介してホストコンピュータ100に接続されている。上記において、インタフェース回路102は、ホストコンピュータ100との間においてコマンドやデータを受け取り、また応答やデータを返送するものである。メモリ制御回路103は、書込み及び読出し制御装置であり、フラッシュメモリ104に対するデータのリードライトを行うものである。
【0014】
フラッシュメモリ104は、図2に示される物理ブロックをライト及び消去のアクセス単位としている。物理ブロックは、データが記憶されるデータ部と、属性情報が記憶される属性部とを有する。そして、フラッシュメモリ104には、図3に示されるように物理ブロックが複数ブロック備えられている。
【0015】
本実施の形態においては、メモリ制御回路103には、図4に示されるような論理ブロック/物理ブロックに係るブロック番号の変換テーブルが備えられており、メモリ制御回路103はこの変換テーブルを用いてフラッシュメモリ104のアクセスを行い、また必要な場合に、この変換テーブルの内容を更新する。
【0016】
次にメモリカード101の基本動作について説明する。ホストコンピュータ100からメモリカード101ヘリードやライト等のコマンドが発行されると、システムバス105を通してインターフェース回路102へこれらのコマンドが通知される。これらのコマンドがフラッシュメモリ104のアクセスに関するものであった場合には、インターフェース回路102はメモリ制御回路103にコマンドを通知する。メモリ制御回路103は通知されたコマンドに従ってフラッシュメモリ104ヘアクセスを行い、その結果をインターフエース回路102へ返す。インターフェース回路102はメモリ制御回路103からの結果をホストコンピュータ100ヘ返す。
【0017】
ホストコンピュータ100からメモリカード101へ発行されるリードやライトコマンドのアドレスは、論理アドレスまたは論理ブロックで指示され、メモリ制御回路103にて論理アドレスから論理ブロックへの変換、論理ブロックから物理ブロックへの変換が行われる。論理ブロックから物理ブロックへの変換は、図4のような変換テーブルを参照することで行われ、フラッシュメモリ104は変換された物理ブロックへアクセスされる。
【0018】
メモリ制御回路103は、ホストコンピュータ100からデータのライトコマンドを受けると、図5に示すフローチャートに従った処理を行い、1つの物理ブロックにライトアクセスが集中しないように動作する。この動作を行うため、メモリ制御回路103は、図6に示すように、データを書き込むべき物理ブロックの指定が均等となるように物理ブロックを指定するライトポインタWP(指定手段)を備える。ここでは、ライトポインタWPは、データを書き込むべき物理ブロックの指定が均等となるように物理ブロック番号の小さい方から大きい方へ(或いは、その逆に)順次に進められ、終端へ到ると再び先頭を指定するように進められる。
【0019】
以下、メモリ制御回路103が行うライト動作を図5、図6を参照して説明する。ここでは、ホストコンピュータ100から論理ブロック(N−2)へ連続してライトコマンドが発行された場合の例を示す。尚、図6の左側が論理ブロックから物理ブロックへの変換テーブルであり、右側がフラッシュメモリ104である。
【0020】
最初の状態は、図6のステップ1に示されるように論理ブロック番号0〜N−2に対応する物理ブロック番号0〜N−2にデータD[0]〜D[N−2]が格納されている状態では、ライトポインタWPが物理ブロック番号(N−1)を指示している。ここで、論理ブロック番号(N−2)に対して連続してライトが行なわれた場合、その時ホスト100からライトコマンドを受けたメモリ制御回路103は、変換テーブルを用いて論理ブロック番号番号(N−2)に対応する物理ブロック番号(N−2)について書き換えデータ(記憶されているデータ)を消去する(S1)。
【0021】
次に、ライトポインタWPが指示する物理ブロック番号(N−1)のブロックにデータが記憶されているか否かを検出する(S2(検出手段))。ここでは、図6のステップ1に示されるように、物理ブロック番号(N−1)にブロックにデータが記憶されていないので、ホスト100からのデータD[N−2]をライトポインタWPが指示する物理ブロック番号(N−1)のブロックに書き込む
(S5(書込制御手段))。次へ進み、ライトポインタWPをインクリメントする(S6)。本例では、ライトポインタWPが末端に位置していたために、ステップS7においてYESへ分岐し、ステップS8において先頭の物理ブロック番号(0)を指す位置へ戻される(図6のステップ2参照)。
【0022】
初期状態では図6のステップ1に示すように、変換テーブルにおいては、論理ブロック番号(N−2)が物理ブロック番号(N−2)に対応付けられ、また論理ブロック番号(N−1)が物理ブロック番号(N−1)に対応付けられていたが、上記データのライトにより、論理ブロック番号(N−2)が物理ブロック番号(N−1)に対応し、また論理ブロック番号(N−1)が物理ブロック番号(N−2)に対応するするように変換テーブルの内容が更新される(S9(アドレス制御手段))。この結果、変換テーブルは図6のステップ2に示されるようになる。
【0023】
ここで更に、ホスト100から論理ブロック番号(N−2)へ同じデータD[N−2]のライトコマンドを受けたメモリ制御回路103は、図6のステップ2に示される変換テーブルを用いて論理ブロック番号(N−2)に対応する物理ブロック番号(N−1)について書き換えデータ(記憶されているデータ)を消去する(S1)。この結果、物理ブロック番号(N−1)では、記憶されているデータが図6のステップ3に示されるように消去される。
【0024】
次に、ライトポインタWPが指示する物理ブロック番号(0)のブロックにデータが記憶されているか否かを検出する(S2)。ここでは、図6のステップ2に示されるように、物理ブロック番号(0)にブロックにデータD[0]が記憶されているので、このデータD[0]を先に消去を行った物理ブロック番号(N−2)のブロックに移動する(S3(書込制御手段))。
【0025】
次へ進み、ライトポインタWPが指示する物理ブロック番号(0)のブロックのデータを消去し(S4)、データD[N−2]をライトポインタWPが指示する物理ブロック番号(0)のブロックに書き込む(ステップS5)。更にライトポインタWPをインクリメントする(S6)。本例では、ライトポインタWPが物理ブロック番号(0)に位置していたために、ステップS7においてNOへ分岐して、ライトポインタWPは次の物理ブロック番号(1)に位置する(図6のステップ3)。
【0026】
前状態では図6のステップ2に示すように、変換テーブルにおいては、論理ブロック番号(N−2)が物理ブロック番号(N−1)に対応付けられ、また論理ブロック番号(N−1)が物理ブロック番号(N−2)に対応付けられていたが、上記データのライトにより、論理ブロック番号(0)が物理ブロック番号(N−2)に対応し、また論理ブロック番号(N−2)が物理ブロック番号(0)に対応するするように変換テーブルの内容が更新される(S9)。この結果、変換テーブルは図6のステップ3に示されるようになる。
【0027】
更に、ホスト100から論理ブロック番号(N−2)へ同じデータも[N−2]のライトコマンドを受けた場合には、上記と同様の処理がなされて、最終的に変換テーブルとフラッシュメモリ104の内容は図6のステップ4に示されるようになる。
【0028】
このように論理ブロック(N−2)へのライトが集中した場合にも、同一の物理ブロックへのライトが行われることなく、順次にライトする物理ブロックが変更されてゆき、全ての物理ブロックに均一にライトが行われる。しかも変換テーブルの更新により、ホストコンピュータ側から見える論理アドレスまたは論理ブロックに変更はなく、本装置の変換テーブルの更新制御が外部に及ぼす影響はないという利点がある。そして、ライトが全ての物理ブロックへ均一に分散されることにより、通常のフラッシュメモリの消去回数の制限が数十万回以上であることから、メモリカード101の寿命の問題をほぼ解消することが可能である。
【0029】
上記の実施の形態では、全てのライトコマンドに関してライトする物理ブロックを分散させる処理を行うようにしたが、物理ブロックの空塞情報を得ておき(空塞監視手段)、空状態の物理ブロックの割合が所定以上であるときには、上記分散の処理を行わぬようにしても良い(稼働制御手段)。つまり、ライトポインタが指示する物理ブロックにデータが記憶されている場合のデータ移動を行うことなく、空き状態の物理ブロックにデータライトを行うと共に変換テーブルの更新を行う。これにより、上記実施の形態におけるデータ移動のときのリードライト及び消去により発生するオーバーヘッドを回避できると共に、空き状態の物理ブロックが順次使用されほぼ全ての物理ブロックが均一にライトされる。
【0030】
また、物理ブロックや変換テーブルに付加する属性情報として、上記の実施の形態の処理を行うか否かを示すフラグを設けるなどにより、同一論理ブロックへのライトが生じそうなブロックに対して当該処理を行うように設定しても良い(稼働制御手段)。このようにすると、必要な部分だけに処理が限定され、データ移動のときのリードライト及び消去により発生するオーバーヘッドを回避できる。この処理を行わぬことを設定したブロックでは、同一論理ブロックへのライトが同一物理ブロックへのライトとなるが、頻度が低ければ寿命へ影響することはない。
【0031】
更に、予め定められた領域であるか否かに基づき当該処理を行うように設定しても良い(稼働制御手段)。これにより、所定領域だけに処理が限定され、その他の領域ではデータ移動のときのリードライト及び消去により発生するオーバーヘッドを回避できる。また、上位システムであるホストコンピュータ100からの指示に基づき当該処理を行うように設定しても良い(稼働制御手段)。これにより、ホストコンピュータ100からフレキシブルに当該処理の実行の有無を制御可能である。
【0032】
また、ライトポインタWPはライト毎に順にインクリメントするようにしたが、特定の物理ブロックに集中しないようにランダムに物理ブロックをしているようにしてもよい。上記実施の形態では全物理ブロックが均一にアクセスされるようにするため、全物理ブロック番号が現れるようにライトポインタWPをインクリメントする例を示したが、ライトポインタWPのインクリメントする範囲を全物理ブロックの後半のみで行い、前半部はライトポインタWPが指さないように設定しても良い。設定は予め行うか、後にホストコンピュータ100から行う。このようにライトポインタWPの指す領域を制限し、前半部には重要な書き換えしないデータを保存し、後半部には書き換え頻度が高いデータを保存することで、前半部の重要なデータを守りかつ後半部にある書き換え頻度の高いデータが格納されている物理ブロック部分の寿命の短縮化を介することも可能である。
【0033】
【発明の効果】
以上説明したように本発明によれば、データを記憶する複数の物理ブロックを有し、上位システムから論理ブロックを指定したデータ書込みが行われる半導体メモリにおける書込制御において、データを書き込むべき物理ブロックの指定が均等となるように上記複数の物理ブロックを予め定められた順に指定し、指定された物理ブロックについて、すでにデータが書き込まれているか否かに従い物理ブロックへのデータ書込の可否を検出し、データ書込み要求があると、物理ブロックに新たにデータが書き込めるように、該物理ブロックに記憶したデータを消去し、書込み不可と判定された場合には、指定された物理ブロックに記憶したデータを消去により生じた書き込み可能な別の物理ブロックへ移動するとともに、指定された物理ブロックに書き込み済みのデータを、新たにデータが書き込めるように消去、指定された物理ブロックへ、データ書込み要求に係るデータを書き込むので、書込みに係る物理ブロックが自動的に均等に指定されて書込みがなされる。
【図面の簡単な説明】
【図1】本発明に係る半導体メモリの書込制御装置を含むデータ処理システムのブロック図。
【図2】フラッシュメモリの物理ブロックの構成を示す図。
【図3】フラッシュメモリの構成を示す図。
【図4】本発明に係る半導体メモリの書込制御装置に用いられる論理ブロック/物理ブロックの変換テーブルを示す図。
【図5】本発明に係る半導体メモリの書込制御装置の動作を説明するためのフローチャート。
【図6】本発明に係る半導体メモリの書込制御装置によるライト動作によるフラッシュメモリと変換テーブルの内容遷移を説明するための図。
【符号の説明】
100 ホストコンピュータ 101 半導体不揮発性メモリ
102 インタフェース回路 103 メモリ制御回路
104 フラッシュメモリ 105 バス
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a write control apparatus and method in a semiconductor memory having a plurality of physical blocks for storing data and performing data writing in which a logical block is designated from a host system.
[0002]
[Prior art]
In a conventional semiconductor memory such as a flash memory, in order to prevent the life of the entire storage device from being shortened due to deterioration of a part of the memory due to high frequency of rewriting data in a specific area, An apparatus is known that counts the number of erasures and copies the data of the physical block to another physical block when the number of erasures becomes constant (see, for example, Japanese Patent Laid-Open No. 2000-20252).
[0003]
According to the above conventional example, it is necessary to count the number of times of erasing in each physical block, which is troublesome.
[0004]
[Problems to be solved by the invention]
The present invention has been made in order to solve the above-described problems in the conventional semiconductor memory. The purpose of the present invention is to perform data transfer to a specific logical block (logical address) without counting the number of times of erasure in each physical block. It is an object to provide a semiconductor memory write control apparatus and method capable of preventing the life of the entire memory from being shortened even when the write frequency is high.
[0005]
[Means for Solving the Problems]
A semiconductor memory write control device according to the present invention has a plurality of physical blocks for storing data, and writes data in a semiconductor memory write control device in which data is written by designating a logical block from a host system. Designating means for designating the plurality of physical blocks in a predetermined order so that the designation of the physical block to be equalized, and erasure for erasing the data stored in the physical block so that new data can be written to the physical block Means for detecting whether data can be written to the physical block according to whether data has already been written to the physical block designated by the designation means, and if there is a data write request, the erasing means to perform the erasing by, when it is determined that the writable by the detecting means, said specifying means specifies While writing data to physical blocks, when it is determined that the write disable moves the data stored in the physical block the specifying means specifies, to a writable another physical block caused by erasing by said erasing means And a write control means for writing the data related to the data write request to the erased physical block after the data stored in the physical block designated by the designation means is erased by the erase means, and the write control means And an address control means for associating the address of the logical block with the address of the physical block according to the write operation. As a result, the physical blocks related to the writing are automatically and equally designated and the writing is performed.
[0006]
According to another aspect of the present invention, there is provided a write control device for a semiconductor memory, an empty block monitoring unit that monitors an empty block of a physical block, and an operation that controls the operation of the write control unit according to a monitoring result by the empty block monitoring unit. And a control means. Accordingly, it is determined to adopt an operation in which the physical blocks related to writing are automatically and equally designated according to the free state of the physical blocks.
[0007]
The semiconductor memory write control apparatus according to the present invention adds attribute information for controlling the operation of the write control means to each physical block and each logical block, and the write control means according to the attribute information. And an operation control means for controlling the operation of the apparatus. As a result, the write control method can be changed depending on the physical block and the logical block.
[0008]
According to another aspect of the present invention, there is provided a semiconductor memory write control device comprising operation control means for controlling operation of the write control means based on whether or not the area is a predetermined area. Thus, the writing control method can be changed depending on whether or not the area is a predetermined area.
[0009]
According to another aspect of the present invention, there is provided a semiconductor memory write control device comprising operation control means for controlling operation of the write control means based on an instruction from a host system. As a result, the writing control method can be changed according to an instruction from the host system.
[0010]
According to another aspect of the present invention, there is provided a semiconductor memory write control device comprising setting means for setting a physical block range designated by a designation means . Thereby, it is possible to set a range of physical blocks designated by the designation means .
[0011]
Furthermore, a semiconductor memory write control method according to the present invention includes a plurality of physical blocks for storing data, and the semiconductor memory write control method in which data write is performed by designating a logical block from a host system. Data is already written in the first step of designating the plurality of physical blocks in a predetermined order so that the designation of the physical blocks to be written is uniform, and the physical block designated in the first step The second step of detecting whether or not data can be written to the physical block according to whether or not the data is written, and if there is a data write request, erases the data stored in the physical block so that new data can be written to the physical block. to a third step, if it is determined that writing is not permitted the second step, the first While moving to a writable another physical block caused by the data stored in the specified physical block said third step by step, the first written data to the specified physical block in step and a fourth step of erasing the writable newly data, said the physical block specified in the first step, a fifth step of writing data according to the data write request, the fifth And a sixth step of associating the addresses of the logical block and the physical block in accordance with the write operation by the step. As a result, the physical blocks related to the writing are automatically and equally designated and the writing is performed.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
A semiconductor memory write control apparatus and method according to embodiments of the present invention will be described below with reference to the accompanying drawings. FIG. 1 shows a data processing system configured using the apparatus of the present invention. This system includes a host computer 100, which is a host system, and a semiconductor nonvolatile memory card 101.
[0013]
The semiconductor nonvolatile memory card 101 includes an interface circuit 102, a memory control circuit 103, and a flash memory 104, and the interface circuit 102 is connected to the host computer 100 via the bus 105. In the above description, the interface circuit 102 receives commands and data from the host computer 100 and returns responses and data. The memory control circuit 103 is a writing / reading control device, and reads / writes data from / to the flash memory 104.
[0014]
The flash memory 104 uses the physical block shown in FIG. 2 as a write / erase access unit. The physical block has a data part for storing data and an attribute part for storing attribute information. The flash memory 104 is provided with a plurality of physical blocks as shown in FIG.
[0015]
In this embodiment, the memory control circuit 103 is provided with a conversion table of block numbers relating to logical blocks / physical blocks as shown in FIG. 4, and the memory control circuit 103 uses this conversion table. The flash memory 104 is accessed, and the contents of this conversion table are updated when necessary.
[0016]
Next, the basic operation of the memory card 101 will be described. When commands such as read and write are issued from the host computer 100 to the memory card 101, these commands are notified to the interface circuit 102 through the system bus 105. When these commands relate to access to the flash memory 104, the interface circuit 102 notifies the memory control circuit 103 of the commands. The memory control circuit 103 accesses the flash memory 104 according to the notified command, and returns the result to the interface circuit 102. The interface circuit 102 returns the result from the memory control circuit 103 to the host computer 100.
[0017]
The address of a read or write command issued from the host computer 100 to the memory card 101 is specified by a logical address or a logical block, and the memory control circuit 103 converts the logical address to the logical block, and converts the logical block to the physical block. Conversion is performed. Conversion from the logical block to the physical block is performed by referring to the conversion table as shown in FIG. 4, and the flash memory 104 is accessed to the converted physical block.
[0018]
When the memory control circuit 103 receives a data write command from the host computer 100, the memory control circuit 103 performs a process according to the flowchart shown in FIG. 5 so that the write access is not concentrated on one physical block. In order to perform this operation, the memory control circuit 103 includes a write pointer WP (designating means) that designates physical blocks so that designation of physical blocks to which data is to be written is uniform, as shown in FIG. Here, the write pointer WP is sequentially advanced from the smallest physical block number to the largest (or vice versa) so that the designation of the physical block to which data is to be written is equal, and again when the end is reached. Proceed to specify the beginning.
[0019]
Hereinafter, the write operation performed by the memory control circuit 103 will be described with reference to FIGS. Here, an example in which a write command is continuously issued from the host computer 100 to the logical block (N-2) is shown. Note that the left side of FIG. 6 is a conversion table from logical blocks to physical blocks, and the right side is the flash memory 104.
[0020]
In the initial state, data D [0] to D [N-2] are stored in physical block numbers 0 to N-2 corresponding to logical block numbers 0 to N-2 as shown in step 1 of FIG. In this state, the write pointer WP indicates the physical block number (N-1). Here, when the write is continuously performed on the logical block number (N−2), the memory control circuit 103 that has received the write command from the host 100 at that time uses the conversion table to determine the logical block number (N -2), the rewrite data (stored data) is erased for the physical block number (N-2) corresponding to (-2).
[0021]
Next, it is detected whether or not data is stored in the block of the physical block number (N-1) indicated by the write pointer WP (S2 (detection means)). Here, as shown in step 1 of FIG. 6, since no data is stored in the physical block number (N−1), the write pointer WP indicates the data D [N−2] from the host 100. To the block of the physical block number (N-1) to be executed (S5 (write control means)). Next, the write pointer WP is incremented (S6). In this example, since the write pointer WP is located at the end, the process branches to YES in step S7, and is returned to the position indicating the head physical block number (0) in step S8 (see step 2 in FIG. 6).
[0022]
In the initial state, as shown in Step 1 of FIG. 6, in the conversion table, the logical block number (N-2) is associated with the physical block number (N-2), and the logical block number (N-1) is The logical block number (N-1) corresponds to the physical block number (N-1), but the logical block number (N-2) corresponds to the physical block number (N-1) and the logical block number (N-). The contents of the conversion table are updated so that 1) corresponds to the physical block number (N-2) (S9 (address control means)). As a result, the conversion table is as shown in step 2 of FIG.
[0023]
Further, the memory control circuit 103 that has received the write command of the same data D [N-2] from the host 100 to the logical block number (N-2) uses the conversion table shown in step 2 of FIG. Rewrite data (stored data) is erased for the physical block number (N-1) corresponding to the block number (N-2) (S1). As a result, at the physical block number (N-1), the stored data is erased as shown in step 3 of FIG.
[0024]
Next, it is detected whether data is stored in the block having the physical block number (0) indicated by the write pointer WP (S2). Here, as shown in step 2 of FIG. 6, since data D [0] is stored in the physical block number (0) in the block, the physical block from which this data D [0] has been erased first is stored. Move to the block of number (N-2) (S3 (write control means)).
[0025]
Next, the data of the block with the physical block number (0) indicated by the write pointer WP is erased (S4), and the data D [N-2] is changed to the block with the physical block number (0) indicated by the write pointer WP. Write (step S5). Further, the write pointer WP is incremented (S6). In this example, since the write pointer WP is located at the physical block number (0), the process branches to NO in step S7, and the write pointer WP is located at the next physical block number (1) (step in FIG. 6). 3).
[0026]
In the previous state, as shown in Step 2 of FIG. 6, in the conversion table, the logical block number (N-2) is associated with the physical block number (N-1), and the logical block number (N-1) is The logical block number (N-2) is associated with the physical block number (N-2), but the logical block number (0) corresponds to the physical block number (N-2) and the logical block number (N-2) is written. The contents of the conversion table are updated so that corresponds to the physical block number (0) (S9). As a result, the conversion table is as shown in step 3 of FIG.
[0027]
Further, when the same data as the logical block number (N-2) is received from the host 100, the same processing as described above is performed, and finally the conversion table and the flash memory 104 are processed. The contents of are as shown in step 4 of FIG.
[0028]
Even when writing to the logical block (N-2) is concentrated in this way, the physical blocks to be sequentially written are changed without writing to the same physical block, and all physical blocks are changed. Light is evenly performed. In addition, there is an advantage that there is no change in the logical address or logical block visible from the host computer side due to the update of the conversion table, and the update control of the conversion table of this apparatus has no external influence. Since the write is uniformly distributed to all the physical blocks, the limit of the number of times the normal flash memory can be erased is several hundred thousand times or more, so the problem of the lifetime of the memory card 101 can be almost solved. Is possible.
[0029]
In the above embodiment, the process of distributing the physical blocks to be written is performed for all the write commands. However, the vacancy information of the physical blocks is obtained (empty / vacuum monitoring means), and the physical blocks in the empty state are obtained. When the ratio is greater than or equal to a predetermined value, the above dispersion process may not be performed (operation control means). That is, data is written to an empty physical block and the conversion table is updated without performing data movement when data is stored in the physical block indicated by the write pointer. As a result, the overhead caused by read / write and erasure during data movement in the above embodiment can be avoided, and free physical blocks are sequentially used, and almost all physical blocks are written uniformly.
[0030]
In addition, as attribute information to be added to the physical block or conversion table, a flag indicating whether or not to perform the processing of the above embodiment is provided, for example, for the block that is likely to be written to the same logical block. (Operation control means). In this way, processing is limited to only necessary portions, and overhead caused by read / write and erasure during data movement can be avoided. In a block that is set not to perform this process, a write to the same logical block is a write to the same physical block, but if the frequency is low, there is no effect on the lifetime.
[0031]
Furthermore, it may be set to perform the processing based on whether or not the area is a predetermined area (operation control means). As a result, processing is limited to a predetermined area, and in other areas, overhead caused by read / write and erasure during data movement can be avoided. Further, the processing may be set to be performed based on an instruction from the host computer 100 which is a host system (operation control means). Thereby, the host computer 100 can flexibly control the execution of the process.
[0032]
In addition, the write pointer WP is incremented in order for each write, but the physical block may be randomly arranged so as not to concentrate on a specific physical block. In the above embodiment, in order to make all physical blocks uniformly accessed, the example in which the write pointer WP is incremented so that all physical block numbers appear is shown. However, the increment range of the write pointer WP is set to all physical blocks. The first half may be set so that the write pointer WP does not point. The setting is performed in advance or is performed from the host computer 100 later. In this way, the area pointed to by the write pointer WP is limited, important non-rewritten data is stored in the first half, and frequently rewritten data is stored in the second half, thereby protecting important data in the first half and It is also possible to shorten the lifetime of the physical block portion in which data with high rewrite frequency in the latter half is stored.
[0033]
【The invention's effect】
As described above, according to the present invention, a physical block to which data is to be written in the write control in a semiconductor memory having a plurality of physical blocks for storing data and in which data is written by specifying a logical block from the host system. Specify multiple physical blocks in the order specified so that the designations are equal, and detect whether data can be written to physical blocks according to whether data has already been written for the specified physical blocks If there is a data write request , the data stored in the physical block is erased so that new data can be written to the physical block . If it is determined that writing is not possible , the data stored in the specified physical block while moving to a writable another physical block caused by erasing, the specified physical block To the written data, erased so writable new data, to a specified physical block, since write data according to the data write request, the physical block according to write automatically equally designated by the write Made.
[Brief description of the drawings]
FIG. 1 is a block diagram of a data processing system including a semiconductor memory write control device according to the present invention.
FIG. 2 is a diagram showing a configuration of a physical block of a flash memory.
FIG. 3 is a diagram showing a configuration of a flash memory.
FIG. 4 is a view showing a logical block / physical block conversion table used in the semiconductor memory write control apparatus according to the present invention;
FIG. 5 is a flowchart for explaining the operation of the semiconductor memory write control device according to the present invention;
FIG. 6 is a diagram for explaining the content transition of the flash memory and the conversion table by the write operation by the semiconductor memory write control device according to the present invention;
[Explanation of symbols]
100 Host Computer 101 Semiconductor Nonvolatile Memory 102 Interface Circuit 103 Memory Control Circuit 104 Flash Memory 105 Bus

Claims (7)

データを記憶する複数の物理ブロックを有し、上位システムから論理ブロックを指定したデータ書込みが行われる半導体メモリの書込制御装置において、
データを書き込むべき物理ブロックの指定が均等となるように前記複数の物理ブロックを予め定められた順に指定する指定手段と、
物理ブロックに新たにデータが書き込めるように、該物理ブロックに記憶したデータを消去する消去手段と、
前記指定手段が指定する物理ブロックについて、すでにデータが書き込まれているか否かに従い該物理ブロックへのデータ書込の可否を検出する検出手段と、
データ書込み要求があると、前記消去手段による消去を行わせ、前記検出手段により書込み可と判定された場合には、前記指定手段が指定する物理ブロックにデータを書き込む一方、書込み不可と判定された場合には、前記指定手段が指定する物理ブロックに記憶したデータを、前記消去手段による消去により生じた書き込み可能な別の物理ブロックへ移動すると共に、前記指定手段が指定する物理ブロックに記憶したデータを、前記消去手段によって消去した後に、前記データ書込み要求に係るデータを該消去した物理ブロックへ書き込む書込制御手段と、
前記書込制御手段による書込み動作に応じて、論理ブロックと物理ブロックのアドレスを対応付けるアドレス制御手段と
を具備することを特徴とする半導体メモリの書込制御装置。
In a semiconductor memory write control device that has a plurality of physical blocks for storing data and performs data writing in which a logical block is designated from a host system,
Designating means for designating the plurality of physical blocks in a predetermined order so that the designation of physical blocks to which data is to be written is even;
Erasing means for erasing the data stored in the physical block so that new data can be written to the physical block ;
Detecting means for detecting whether data can be written to the physical block according to whether data has already been written for the physical block specified by the specifying means;
When there is a data write request, the erasure unit performs erasure, and when the detection unit determines that writing is possible, the data is written to the physical block designated by the designation unit, while it is determined that writing is impossible. In this case, the data stored in the physical block specified by the specifying unit is moved to another writable physical block generated by erasing by the erasing unit , and the data stored in the physical block specified by the specifying unit Write control means for writing data related to the data write request to the erased physical block after erasing by the erasing means,
A write control device for a semiconductor memory, comprising: address control means for associating addresses of logical blocks and physical blocks in accordance with a write operation by the write control means.
物理ブロックの空塞を監視する空塞監視手段と、
前記空塞監視手段による監視結果に応じて前記書込制御手段の稼働を制御する稼働制御手段と
を具備することを特徴とする請求項1に記載の半導体メモリの書込制御装置。
Air block monitoring means for monitoring physical block air block,
2. The semiconductor memory write control device according to claim 1, further comprising: an operation control unit that controls an operation of the write control unit in accordance with a monitoring result of the air-blocking monitoring unit.
各物理ブロックと各論理ブロックに、前記書込制御手段の稼働を制御する属性情報を付加し、
前記属性情報に応じて前記書込制御手段の稼働を制御する稼働制御手段と
を具備することを特徴とする請求項1に記載の半導体メモリの書込制御装置。
Add attribute information for controlling the operation of the write control means to each physical block and each logical block,
The semiconductor memory write control device according to claim 1, further comprising: an operation control unit that controls an operation of the write control unit according to the attribute information.
予め定められた領域であるか否かに基づき前記書込制御手段の稼働を制御する稼働制御手段と
を具備することを特徴とする請求項1に記載の半導体メモリの書込制御装置。
2. The semiconductor memory write control device according to claim 1, further comprising: an operation control unit configured to control the operation of the write control unit based on whether or not the area is a predetermined region. 3.
上位システムからの指示に基づき前記書込制御手段の稼働を制御する稼働制御手段と
を具備することを特徴とする請求項1に記載の半導体メモリの書込制御装置。
2. The semiconductor memory write control device according to claim 1, further comprising: an operation control unit configured to control an operation of the write control unit based on an instruction from a host system. 3.
指定手段が指定する物理ブロックの範囲を設定する設定手段を具備することを特徴とする請求項1に記載の半導体メモリの書込制御装置。 2. The semiconductor memory write control device according to claim 1, further comprising setting means for setting a physical block range designated by the designation means. データを記憶する複数の物理ブロックを有し、上位システムから論理ブロックを指定したデータ書込みが行われる半導体メモリにおける書込制御方法において、
データを書き込むべき物理ブロックの指定が均等となるように前記複数の物理ブロックを予め定められた順に指定する第1のステップと、
前記第1のステップにて指定された物理ブロックについて、すでにデータが書き込まれているか否かに従い物理ブロックへのデータ書込の可否を検出する第2のステップと、
データ書込み要求があると、物理ブロックに新たにデータが書き込めるように、該物理ブロックに記憶したデータを消去する第3のステップと、
前記第2のステップにより書込み不可と判定された場合には、前記第1のステップにて指定された物理ブロックに記憶したデータを前記第3のステップにより生じた書き込み可能な別の物理ブロックへ移動するとともに、前記第1のステップにて指定された物理ブロックに書き込み済みのデータを、新たにデータが書き込めるように消去する第4のステップと、
前記第1のステップにて指定された物理ブロックへ、前記データ書込み要求に係るデータを書き込む第5のステップと、
前記第5のステップによる書込み動作に応じて、論理ブロックと物理ブロックのアドレスを対応付ける第6のステップと
を含むことを特徴とする半導体メモリの書込制御方法。
In a writing control method in a semiconductor memory having a plurality of physical blocks for storing data and performing data writing in which a logical block is designated from a host system,
A first step of designating the plurality of physical blocks in a predetermined order so that the designation of physical blocks into which data is to be written is uniform;
A second step of detecting whether or not data can be written to the physical block according to whether or not data has already been written for the physical block designated in the first step;
A third step of erasing the data stored in the physical block so that new data can be written to the physical block when there is a data write request;
If it is determined in the second step that writing is impossible, the data stored in the physical block designated in the first step is moved to another writable physical block generated in the third step. And a fourth step of erasing data already written in the physical block designated in the first step so that data can be newly written ,
A fifth step of writing data relating to the data write request to the physical block designated in the first step;
A write control method for a semiconductor memory, comprising: a sixth step of associating a logical block and a physical block address in accordance with a write operation in the fifth step.
JP2000208542A 2000-07-10 2000-07-10 Semiconductor memory writing control apparatus and method Expired - Fee Related JP4149640B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000208542A JP4149640B2 (en) 2000-07-10 2000-07-10 Semiconductor memory writing control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000208542A JP4149640B2 (en) 2000-07-10 2000-07-10 Semiconductor memory writing control apparatus and method

Publications (2)

Publication Number Publication Date
JP2002024077A JP2002024077A (en) 2002-01-25
JP4149640B2 true JP4149640B2 (en) 2008-09-10

Family

ID=18705107

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000208542A Expired - Fee Related JP4149640B2 (en) 2000-07-10 2000-07-10 Semiconductor memory writing control apparatus and method

Country Status (1)

Country Link
JP (1) JP4149640B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4439569B2 (en) 2008-04-24 2010-03-24 株式会社東芝 Memory system

Also Published As

Publication number Publication date
JP2002024077A (en) 2002-01-25

Similar Documents

Publication Publication Date Title
US6172906B1 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
JP3485938B2 (en) Nonvolatile semiconductor memory device
US7634624B2 (en) Memory system for data storage and retrieval
US7111140B2 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6757800B1 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
EP1548599B1 (en) Faster write operations to nonvolatile memory by manipulation of frequently accessed sectors
EP1739683B1 (en) Space management for managing high capacity nonvolatile memory
EP0686976A2 (en) Data management system for programming-limited type semiconductor memory and IC memory card having the data management system
KR930010981A (en) Storage device using flash memory
JP2009116465A (en) Storage device and memory control method
JP4149640B2 (en) Semiconductor memory writing control apparatus and method
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
JPH0764831A (en) Data storage device
JP2000276461A (en) Microcomputer
US20090319587A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP4935101B2 (en) Memory access method and apparatus
JP2003242788A (en) Nonvolatile semiconductor memory device and control method therefor
JP2010079860A (en) Memory device and memory control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071211

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080602

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080624

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080626

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110704

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110704

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees