JPH06222986A - Memory controller - Google Patents

Memory controller

Info

Publication number
JPH06222986A
JPH06222986A JP5029938A JP2993893A JPH06222986A JP H06222986 A JPH06222986 A JP H06222986A JP 5029938 A JP5029938 A JP 5029938A JP 2993893 A JP2993893 A JP 2993893A JP H06222986 A JPH06222986 A JP H06222986A
Authority
JP
Japan
Prior art keywords
memory
block
exchange
memory block
rewrites
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
Application number
JP5029938A
Other languages
Japanese (ja)
Inventor
Akitoshi Kamimura
明利 上村
Original Assignee
Oki Electric Ind Co Ltd
沖電気工業株式会社
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 Oki Electric Ind Co Ltd, 沖電気工業株式会社 filed Critical Oki Electric Ind Co Ltd
Priority to JP5029938A priority Critical patent/JPH06222986A/en
Publication of JPH06222986A publication Critical patent/JPH06222986A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To suppress dispersion in the number of times of reloading between blocks. CONSTITUTION:A memory part 102 is composed of a flash memory composed of plural memory blocks. A table 121 shows relation between an instructed address from a host and the logical address of the memory block and shows the number of times of reloading between the respective memory blocks. When there is a write request from the host to some memory block, an exchange control means 111 investigates the number of times of reloading for that memory block by referring to the table 121 and when the frequency is larger than a prescribed value or when difference between the number of times of reloading and the minimum number of times of reloading between memory blocks is larger than a prescribed value, the data of the memory block are exchanged with the data of the other memory block or with the data of any memory block for which the number of times of reloading is minimum.

Description

【発明の詳細な説明】Detailed Description of the Invention
【0001】[0001]
【産業上の利用分野】本発明は、フラッシュメモリを用
いたメモリ制御装置に関し、更に詳しくは、メモリ素子
の書換え回数の制御に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a memory control device using a flash memory, and more particularly to controlling the number of times of rewriting of a memory element.
【0002】[0002]
【従来の技術】磁気ディスク装置の高速化代替手段とし
て、半導体ディスク装置が一般的によく知られている。
従来、不揮発性半導体ディスク装置は、揮発性メモリ素
子とそのバックアップ用の電池とで構成されていた。し
かしながら、このような構成では、電池を使用してバッ
クアップするために長期の電源断時等にバックアップを
保証することができず、完全な不揮発性を保証できなか
った。しかし、近年、不揮発性メモリ素子としてフラッ
シュメモリ(FEEPROM:フラッシュEEPRO
M)が開発され、新たに、同メモリ素子を用いた不揮発
性半導体ディスク装置が開発されている。
2. Description of the Related Art A semiconductor disk device is generally well known as an alternative means for increasing the speed of a magnetic disk device.
Conventionally, a non-volatile semiconductor disk device has been composed of a volatile memory element and a battery for backup thereof. However, in such a configuration, since backup is performed using a battery, backup cannot be guaranteed when power is cut off for a long period of time, and complete non-volatility cannot be guaranteed. However, in recent years, a flash memory (FEEPROM: flash EEPROM) has been used as a nonvolatile memory element.
M) has been developed, and a non-volatile semiconductor disk device using the same memory element has been newly developed.
【0003】図14は、従来のメモリ制御装置として、
FEEPROMを用いた不揮発性半導体ディスク装置の
構成図である。図14において、1は不揮発性半導体デ
ィスク装置であり、この不揮発性半導体ディスク装置1
は、不揮発性半導体ディスク装置1の全体を制御する主
制御部101と、FEEPROMで構成され、データを
保持するメモリ部102と、データ書込み時に使用し、
メモリ部102の内容コピーを保持するための揮発性メ
モリ素子からなるバッファ部103と、メモリ部102
に関する制御情報を保持するための制御情報記憶部10
4と、ホストとのインターフェースを制御するためのホ
ストインタフェース部105とからなる。また、図中、
2は不揮発性半導体ディスク装置1にデータのリード/
ライト要求を行うホストの計算機である。
FIG. 14 shows a conventional memory controller.
It is a block diagram of the non-volatile semiconductor disk device which used FEEPROM. In FIG. 14, reference numeral 1 is a non-volatile semiconductor disk device.
Is a main control unit 101 that controls the entire nonvolatile semiconductor disk device 1, a memory unit 102 that is composed of an FEEPROM and holds data, and is used when writing data.
A buffer unit 103 composed of a volatile memory element for holding a copy of the contents of the memory unit 102;
Control information storage unit 10 for holding control information regarding
4 and a host interface unit 105 for controlling the interface with the host. Also, in the figure,
2 is for reading / writing data to the nonvolatile semiconductor disk device 1.
It is a host computer that makes a write request.
【0004】ところで、メモリ部102を構成するFE
EPROMは、その全体がある一定の大きさの単位(以
下ブロックと称す)に区分され、そのブロック毎、もし
くは素子全体でのみ一括消去可能という特性を有する。
更に、素子の特性上、消去回数(以下、書換え回数とし
て説明する)にはある一定の制限があり、それを超えた
消去はできない。尚、バッファ部103の容量は上記ブ
ロックの1ブロック分以上の大きさを有している。
By the way, the FE which constitutes the memory unit 102
The EPROM is divided into units of a certain size (hereinafter referred to as blocks), and the EPROM has a characteristic that it can be collectively erased for each block or for the entire element.
Further, due to the characteristics of the element, there is a certain limit on the number of times of erasing (hereinafter, referred to as the number of times of rewriting), and erasing exceeding that limit cannot be performed. The capacity of the buffer unit 103 is equal to or larger than one block of the above blocks.
【0005】図15は、制御情報記憶部104の内部構
成および制御情報記憶部104とメモリ部102の内部
アドレスの対応を示した図である。メモリ部102は、
全体がmブロック102−1〜102−mに区分されて
おり、1ブロックをkワードとして0,k,2k,…,
(m−1)kとアドレス付けされ、各ブロック単位に消
去可能となっている。
FIG. 15 is a diagram showing the internal configuration of the control information storage unit 104 and the correspondence between the internal addresses of the control information storage unit 104 and the memory unit 102. The memory unit 102 is
The whole is divided into m blocks 102-1 to 102-m, and 1 block is k words, 0, k, 2k, ...
It is addressed as (m-1) k and can be erased in units of blocks.
【0006】制御情報記憶部104は、メモリ部102
のブロック102−1〜102−mに一対一に対応する
m個の制御情報104−1〜104−mに区分され、
0,1,2,…,(m−1)とアドレス付けされてい
る。そして、個々の制御情報104−1〜104−m
は、対応するメモリ部102のブロックが書換えられた
回数(書換え回数)と、対応するブロックが消去済みか
否かを示すフラグ(以下消去フラグと称す)を記憶する
ものである。また、制御情報記憶部104は、小容量の
不揮発性メモリ素子(例えばNVRAMやEEPRO
M)で構成されている。
The control information storage unit 104 is a memory unit 102.
The blocks 102-1 to 102-m are divided into m pieces of control information 104-1 to 104-m, which correspond one-to-one.
The addresses are 0, 1, 2, ..., (m-1). Then, individual control information 104-1 to 104-m
Stores the number of times the corresponding block of the memory unit 102 has been rewritten (the number of times of rewriting) and a flag (hereinafter referred to as an erase flag) indicating whether or not the corresponding block has been erased. The control information storage unit 104 also includes a small-capacity non-volatile memory element (for example, NVRAM or EEPRO).
M).
【0007】図16は、従来の不揮発性半導体ディスク
装置1において、主制御部101が行うライト/リード
コマンド処理のフローチャートである。この図16およ
び上述した図14、15を用いて、ホスト2が不揮発性
半導体ディスク装置1に対してライトもしくはリードコ
マンドを発行した場合のコマンド処理の動作を説明す
る。
FIG. 16 is a flowchart of a write / read command process performed by the main control unit 101 in the conventional nonvolatile semiconductor disk device 1. The operation of command processing when the host 2 issues a write or read command to the nonvolatile semiconductor disk device 1 will be described with reference to FIG. 16 and FIGS. 14 and 15 described above.
【0008】ホスト2からホストインタフェース部10
5を通してコマンドが受け付けられると、主制御部10
1は、そのコマンドを、ホスト2からホストインタフェ
ース部105を通してリードし(ステップS1)、リー
ドコマンドであるかライトコマンドであるかを判断する
(ステップS2)。コマンドがライトであった場合は、
先ず、ライトする先頭のディスクアドレスとライトデー
タ数を、ホスト2からホストインタフェース部105を
通してリードし(ステップS3)、次に、上記ディスク
アドレスとライトデータ数を用いて、メモリ部102中
の、ライトデータを格納するアドレス、および対応する
制御情報記憶部104のアドレスを算出する(ステップ
S4)。そして、算出したアドレスを基に制御情報記憶
部104中の消去フラグをチェックし(ステップS
5)、メモリ部102中の該当ブロックが消去済みか否
かの判定を行う(ステップS6)。
Host 2 to host interface unit 10
When a command is accepted through 5, the main controller 10
1 reads the command from the host 2 through the host interface unit 105 (step S1) and determines whether the command is a read command or a write command (step S2). If the command was a light,
First, the head disk address and the number of write data to be written are read from the host 2 through the host interface unit 105 (step S3), and then the above-mentioned disk address and the number of write data are used to write in the memory unit 102. The address for storing the data and the corresponding address of the control information storage unit 104 are calculated (step S4). Then, the erase flag in the control information storage unit 104 is checked based on the calculated address (step S
5), it is determined whether or not the corresponding block in the memory unit 102 has been erased (step S6).
【0009】ステップS6において、該当ブロックが消
去済みであれば、ホスト2からホストインタフェース部
105を通して、ライトデータを直接メモリ部102の
算出済みアドレスにライトする(ステップS7)。そし
て、ライト終了後、制御情報記憶部104中の消去フラ
グを更新し(ステップS8)、ホスト2に対してホスト
インタフェース部105を通して動作終了を通知し(ス
テップS9)、処理を終了する。
If the block is erased in step S6, the write data is directly written from the host 2 to the calculated address in the memory section 102 through the host interface section 105 (step S7). After the writing is completed, the erase flag in the control information storage unit 104 is updated (step S8), the operation completion is notified to the host 2 through the host interface unit 105 (step S9), and the process is ended.
【0010】一方、上記ステップS6において、該当ブ
ロックが消去済みでない場合は、先ず、算出済みアドレ
スを基に制御情報記憶部104中の書換え回数をチェッ
クし(ステップS10)、該当ブロックが書換え可能か
否かを判定する(ステップS11)。即ち、書換え回数
がメモリ素子で規定されている書換え最大回数未満か否
かを判定する。ステップS11において、書換えが可能
であった場合は、制御情報記憶部104中の該当書換え
回数に1を加算し(ステップS12)、メモリ部102
中の該当するアドレスが含まれるブロック全体の内容を
バッファ部103にコピーする(ステップS13)。次
に、そのブロックをブロック消去する(ステップS1
4)。
On the other hand, if the block is not erased in step S6, the number of rewrites in the control information storage unit 104 is first checked based on the calculated address (step S10) to see if the block is rewritable. It is determined whether or not (step S11). That is, it is determined whether the number of rewrites is less than the maximum number of rewrites defined by the memory element. When rewriting is possible in step S11, 1 is added to the number of times of rewriting in the control information storage unit 104 (step S12), and the memory unit 102 is added.
The contents of the entire block including the corresponding address therein are copied to the buffer unit 103 (step S13). Then, the block is erased (step S1).
4).
【0011】その後、ホスト2からホストインタフェー
ス部105を通してのライトデータを、バッファ部10
3へ該当アドレスからライトする(ステップS15)。
ライト終了後、バッファ部103中のデータをメモリ部
102中の同一ブロックへ戻し(ステップS16)、ホ
スト2に対してホストインタフェース部105を通して
動作終了を通知し(ステップS9)、処理を終了する。
After that, the write data from the host 2 through the host interface unit 105 is transferred to the buffer unit 10.
Write from 3 to the corresponding address (step S15).
After the writing is completed, the data in the buffer unit 103 is returned to the same block in the memory unit 102 (step S16), the operation completion is notified to the host 2 through the host interface unit 105 (step S9), and the process is ended.
【0012】また、ステップS11で書換えが不可能、
即ち、書換え回数がメモリ素子で規定されている書換え
最大回数以上のときは、ホスト2に対してホストインタ
フェース部105を通してコマンドの異常終了を通知し
(ステップS17)、処理を終了する。これによりFE
EPROMの書換え回数制限を超えた書換えが生じるの
を防止している。
Further, rewriting is impossible in step S11,
That is, when the number of rewrites is equal to or more than the maximum number of rewrites defined by the memory device, the host 2 is notified of the abnormal termination of the command through the host interface unit 105 (step S17), and the process is terminated. This makes FE
This prevents rewrites exceeding the EPROM rewrite count limit.
【0013】一方、ステップS2において、コマンドが
リードであった場合は、先ず、リードする先頭のディス
クアドレスとリードデータ数をホスト2からホストイン
タフェース部105を通してリードし(ステップS1
8)、次に、上記ディスクアドレスとリードデータ数を
用いて、メモリ部102中の、リードデータの格納され
ているアドレスを算出する(ステップS19)。そし
て、ホスト2へ、リードデータを、直接メモリ部102
の算出済みアドレスからリードする(ステップS2
0)。リード終了後、ホスト2に対してホストインタフ
ェース部105を通して動作終了を通知し(ステップS
21)、処理を終了する。
On the other hand, when the command is read in step S2, first, the head disk address to be read and the number of read data are read from the host 2 through the host interface unit 105 (step S1).
8) Next, using the disk address and the number of read data, the address where the read data is stored in the memory unit 102 is calculated (step S19). Then, the read data is directly sent to the host 2 by the memory unit 102.
Is read from the calculated address of (step S2
0). After the read is completed, the host 2 is notified of the operation completion through the host interface unit 105 (step S
21), the process is ended.
【0014】[0014]
【発明が解決しようとする課題】しかしながら、上記従
来のメモリ制御装置では、以下に示す問題点があった。
即ち、半導体ディスク装置中のメモリは、その全てのブ
ロックが均等に使用されるわけではなく、頻繁に使われ
るブロックと、あまり使われないブロックとが生じるの
が一般的である。その結果、ブロックにより書換え回数
にばらつきが生じる。一方、不揮発性半導体ディスク装
置1のメモリを構成しているFEEPROMは、上述し
たように、その書換え可能回数に制限があるため、一つ
のブロックでもその制限に達すれば、他のブロックはま
だ使用できるのにもかかわらず、不揮発性半導体ディス
ク装置としては使用できなくなってしまうという問題点
があった。
However, the above conventional memory control device has the following problems.
That is, in the memory in the semiconductor disk device, not all of the blocks are used uniformly, but it is common that frequently used blocks and rarely used blocks occur. As a result, the number of rewrites varies depending on the block. On the other hand, since the FEEPROM configuring the memory of the nonvolatile semiconductor disk device 1 has a limit on the number of rewritable times as described above, if one block reaches the limit, other blocks can still be used. Nevertheless, there is a problem that it cannot be used as a non-volatile semiconductor disk device.
【0015】本発明は、前記問題点を解決し、ブロック
毎の書換え回数のばらつきをおさえ、書換え回数の制限
から来る装置全体としての寿命を著しく延ばすことがで
きるメモリ制御装置を提供することを目的とする。
SUMMARY OF THE INVENTION It is an object of the present invention to solve the above problems and to provide a memory control device capable of suppressing the variation in the number of rewrites for each block and significantly extending the life of the entire device due to the limitation of the number of rewrites. And
【0016】[0016]
【課題を解決するための手段】第1発明のメモリ制御装
置は、複数のメモリブロックからなるフラッシュメモリ
で構成されたメモリ部と、前記メモリ部に対してアクセ
ス要求を行うホストからの指示アドレスと、前記メモリ
ブロックの論理アドレスとの関係を示すと共に、前記複
数のメモリブロックの各々の書換え回数を示すテーブル
と、前記ホストから前記メモリ部の任意のメモリブロッ
クに対してライト要求があった場合、前記テーブルを参
照して前記任意のメモリブロックの書換え回数を調べ、
当該メモリブロックの書換え回数が所定値以上であった
場合は、当該メモリブロックのデータを他のメモリブロ
ックのデータと交換し、かつ、前記テーブル中の指示ア
ドレスに対する論理アドレスを、交換したメモリブロッ
クの論理アドレスに更新する交換制御手段を備えたこと
を特徴とするものである。
A memory control device according to a first aspect of the present invention includes a memory section composed of a flash memory composed of a plurality of memory blocks, and an instruction address from a host for making an access request to the memory section. , A table showing the relationship with the logical address of the memory block and showing the number of rewrites of each of the plurality of memory blocks, and a write request from the host to an arbitrary memory block of the memory unit, Check the number of rewrites of the arbitrary memory block by referring to the table,
If the number of times of rewriting of the memory block is equal to or more than a predetermined value, the data of the memory block is exchanged with the data of another memory block, and the logical address for the designated address in the table is exchanged for the exchanged memory block. It is characterized in that a switching control means for updating to a logical address is provided.
【0017】第2発明のメモリ制御装置は、複数のメモ
リブロックからなるフラッシュメモリで構成されたメモ
リ部と、前記メモリ部に対してアクセス要求を行うホス
トからの指示アドレスと、前記メモリブロックの論理ア
ドレスとの関係を示すと共に、前記複数のメモリブロッ
クの各々の書換え回数とを示すテーブルと、前記ホスト
から前記メモリ部の任意のメモリブロックに対してライ
ト要求があった場合、前記テーブルを参照して前記任意
のメモリブロックの書換え回数を調べ、当該メモリブロ
ックの書換え回数と、書換え回数が最小のメモリブロッ
クの書換え回数との差が所定値以上であった場合は、当
該メモリブロックのデータを前記書換え回数が最小のメ
モリブロックのデータと交換し、かつ、前記テーブル中
の指示アドレスに対する論理アドレスを、交換したメモ
リブロックの論理アドレスに更新する交換制御手段を備
えたことを特徴とするものである。
A memory control device according to a second aspect of the present invention is a memory unit composed of a flash memory composed of a plurality of memory blocks, an instruction address from a host which issues an access request to the memory unit, and a logic of the memory block. When a write request is issued from the host to an arbitrary memory block of the memory section, the table showing the relationship with the address and the number of times of rewriting of each of the plurality of memory blocks is referred to. Check the number of rewrites of the arbitrary memory block, and if the difference between the number of rewrites of the memory block and the number of rewrites of the memory block having the smallest number of rewrites is a predetermined value or more, Replace with the data in the memory block with the minimum number of rewrites, and use the specified address in the table. The logical address, is characterized in that it comprises an exchange control means for updating the logical address of the replacement memory block.
【0018】第3発明のメモリ制御装置は、複数のメモ
リブロックからなるフラッシュメモリで構成されたメモ
リ部と、前記メモリ部に対してアクセス要求を行うホス
トからの指示アドレスと、前記メモリブロックの論理ア
ドレスとの関係を示すと共に、前記複数のメモリブロッ
クの各々の書換え回数とを示すテーブルと、一定周期で
実行し、前記テーブルを参照し、前記複数のメモリブロ
ックのそれぞれの書換え回数を調べ、書換え回数が最大
のメモリブロックの書換え回数と、書換え回数が最小の
メモリブロックの書換え回数との差が所定値以上であっ
た場合、これらメモリブロックのデータを交換し、か
つ、前記テーブル中の最大値のメモリブロックの論理ア
ドレスを最小値のメモリブロックの論理アドレスと交換
する交換制御手段を備えたことを特徴とするものであ
る。
According to a third aspect of the present invention, there is provided a memory control device, which comprises a memory section composed of a flash memory including a plurality of memory blocks, an instruction address from a host for making an access request to the memory section, and a logic of the memory block. A table showing the relationship with the address and showing the number of times of rewriting of each of the plurality of memory blocks, and executing at a fixed cycle, referring to the table, checking the number of times of rewriting of each of the plurality of memory blocks, and rewriting If the difference between the number of rewrites of the memory block with the maximum number of rewrites and the number of rewrites of the memory block with the minimum number of rewrites is a predetermined value or more, the data in these memory blocks are exchanged and the maximum value in the table Exchange control means for exchanging the logical address of the memory block of And it is characterized in that there was example.
【0019】第4発明のメモリ制御装置は、上記第1〜
第3発明のいずれかの発明において、交換制御手段が実
行するメモリブロックの交換処理における現在の処理進
行段階を保持する進行段階記憶部と、電源投入時に、前
記進行段階記憶部の情報を読込み、前記交換処理が未終
了であった場合、当該進行段階記憶部で記憶されている
進行段階に基づき、前記変換処理を再開させる進行段階
管理手段とを備えたことを特徴とするものである。
A memory control device according to a fourth aspect of the present invention is the first to the above first.
In any one of the third aspect of the present invention, a progress stage storage unit that holds a current process progress stage in the memory block exchange process executed by the exchange control means, and information of the progress stage storage unit that is read at power-on, When the exchange process is not completed, a progress stage management means is provided for restarting the conversion process based on the progress stage stored in the progress stage storage section.
【0020】[0020]
【作用】第1発明のメモリ制御装置においては、ホスト
からメモリ部のあるメモリブロックに対してライト要求
があった場合、交換制御手段は、先ずテーブルを参照し
て、そのメモリブロックの書換え回数を調べる。その結
果、書換え回数が所定値以上であった場合は、そのメモ
リブロックのデータを他のメモリブロックのデータと交
換する。また、テーブルにおいても、ホストからの指示
アドレスに対するメモリ部の論理アドレスを、それぞ
れ、交換後の論理アドレスとする。
In the memory control device according to the first aspect of the present invention, when the host makes a write request to a memory block having a memory section, the exchange control means first refers to the table to determine the number of rewrites of the memory block. Find out. As a result, when the number of rewrites is equal to or greater than the predetermined value, the data in the memory block is exchanged with the data in another memory block. Also in the table, the logical address of the memory unit corresponding to the instruction address from the host is set as the logical address after the replacement.
【0021】第2発明のメモリ制御装置においては、上
記第1発明と同様に、ホストからメモリ部のあるメモリ
ブロックに対してライト要求があった場合、交換制御手
段は、先ずテーブルを参照して、そのメモリブロックの
書換え回数を調べる。その結果、当該メモリブロックの
書換え回数と、書換え回数が最小のメモリブロックの書
換え回数との差が所定値以上であった場合は、そのメモ
リブロックのデータを、書換え回数が最小のメモリブロ
ックのデータと交換する。また、テーブルにおいても、
ホストからの指示アドレスに対するメモリ部の論理アド
レスを、それぞれ、交換後の論理アドレスとする。
In the memory control device of the second invention, as in the first invention, when the host makes a write request to a memory block having a memory section, the exchange control means first refers to the table. , Check the number of rewrites of the memory block. As a result, if the difference between the number of times of rewriting of the memory block and the number of times of rewriting of the memory block having the smallest number of rewriting is a predetermined value or more, the data of the memory block is rewritten as the data of the memory block of the smallest number of rewriting. To replace. Also at the table,
The logical address of the memory unit corresponding to the instruction address from the host is set as the logical address after the exchange.
【0022】第3発明のメモリ制御装置においては、交
換制御手段が、一定周期でテーブルを参照し、メモリブ
ロックのそれぞれの書換え回数を調べる。その結果、書
換え回数が最大のメモリブロックの書換え回数と、書換
え回数が最小のメモリブロックの書換え回数との差が所
定値以上であった場合は、これらメモリブロックのデー
タを交換し、かつ、テーブル中の最大値のメモリブロッ
クの論理アドレスを最小値のメモリブロックの論理アド
レスと交換する。
In the memory control device according to the third aspect of the invention, the exchange control means refers to the table at regular intervals to check the number of times each memory block has been rewritten. As a result, if the difference between the number of rewrites in the memory block with the largest number of rewrites and the number of rewrites in the memory block with the smallest number of rewrites is greater than or equal to a predetermined value, the data in these memory blocks are exchanged and the table Swap the logical address of the largest memory block in it with the logical address of the smallest memory block.
【0023】第4発明のメモリ制御装置においては、上
記第1〜第3発明で交換制御手段がメモリブロックの交
換処理を行う場合、進行段階管理手段は、現在の処理進
行段階を進行段階記憶部に記憶させる。また、進行段階
管理手段は、電源投入時には、進行段階記憶部の情報を
読込み、先ずメモリブロックの交換処理が終了している
か否かを調べる。その結果、交換処理が未終了であった
場合は、進行段階記憶部で記憶されている進行段階の情
報に基づき、実行されていない処理からその交換処理を
再開する。
In the memory control device of the fourth aspect of the invention, when the exchange control means performs the memory block exchange processing in the first to third aspects of the invention, the progress stage management means stores the present process progress stage in the progress stage storage section. To memorize. When the power is turned on, the advancing stage management means reads the information in the advancing stage storage unit and first checks whether or not the memory block exchanging process is completed. As a result, when the exchange process has not been completed, the exchange process is restarted from the process that has not been executed, based on the progress stage information stored in the progress stage storage unit.
【0024】[0024]
【実施例】以下、本発明の実施例を図面を用いて詳細に
説明する。 《第1実施例》図1は、本発明のメモリ制御装置として
の不揮発性半導体ディスク装置の第1実施例の構成図で
ある。図の装置は、不揮発性半導体ディスク装置1と、
ホスト2からなり、不揮発性半導体ディスク装置1は、
主制御部110、メモリ部102、バッファ部103、
ホストインタフェース部105、制御情報記憶部120
からなる。また、ホスト2は、従来と同様に、不揮発性
半導体ディスク装置1に対してデータのリード/ライト
要求を行うホスト計算機である。
Embodiments of the present invention will now be described in detail with reference to the drawings. << First Embodiment >> FIG. 1 is a configuration diagram of a first embodiment of a nonvolatile semiconductor disk device as a memory control device of the present invention. The device shown in the figure is a nonvolatile semiconductor disk device 1,
The non-volatile semiconductor disk device 1 comprises a host 2,
The main control unit 110, the memory unit 102, the buffer unit 103,
Host interface unit 105, control information storage unit 120
Consists of. Further, the host 2 is a host computer that issues a data read / write request to the nonvolatile semiconductor disk device 1 as in the conventional case.
【0025】不揮発性半導体ディスク装置1におけるメ
モリ部102、バッファ部103およびホストインタフ
ェース部105は、従来と同等の機能を有しているた
め、ここでの説明は省略する。また、主制御部110
は、不揮発性半導体ディスク装置1全体を制御するプロ
セッサであり、交換制御手段111を備えている。この
交換制御手段111は、ホスト2から不揮発性半導体デ
ィスク装置1に対してライト要求があった場合、後述す
るテーブル121を参照して、ホスト2からの指示アド
レスをメモリ部102の内部アドレス(以下、論理アド
レスという)に変換すると共に、その論理アドレスのメ
モリブロックの書換え回数に基づき、メモリブロックの
交換を行うか否かの判定を行い、交換が必要であった場
合は、その交換処理およびテーブル121の更新処理を
行う機能を有している。
The memory section 102, the buffer section 103, and the host interface section 105 in the non-volatile semiconductor disk device 1 have the same functions as those of the conventional one, and therefore the description thereof is omitted here. In addition, the main controller 110
Is a processor that controls the entire nonvolatile semiconductor disk device 1, and includes a replacement control unit 111. When there is a write request from the host 2 to the non-volatile semiconductor disk device 1, the exchange control means 111 refers to a table 121 described later to determine an instruction address from the host 2 to an internal address of the memory unit 102 (hereinafter referred to as an internal address). , A logical address), and based on the number of times the memory block is rewritten at that logical address, it is determined whether or not to replace the memory block. If replacement is necessary, the replacement process and table It has a function of performing 121 update processing.
【0026】また、制御情報記憶部120は、小容量の
書換え可能な不揮発メモリ(例えば、NVRAMやEE
PROM)からなり、テーブル121を備えている。図
2に、制御情報記憶部120中のテーブル121の構成
と、メモリ部102の論理アドレスの対応を示す。
Further, the control information storage unit 120 has a small-capacity rewritable nonvolatile memory (for example, NVRAM or EE).
PROM) and has a table 121. FIG. 2 shows the correspondence between the configuration of the table 121 in the control information storage unit 120 and the logical address of the memory unit 102.
【0027】メモリ部102は、従来と同様に、全体が
mブロック102−1〜102−mに区分されており、
1ブロックをkワードとして0,k,2k,…,(m−
1)kとアドレス付けされ、ブロック単位に消去可能で
ある。テーブル121は、m個の制御情報121−1〜
121−mに区分され、0,1,2,…,(m−1)と
アドレス付けされている。個々の制御情報121−1〜
121−mは、ブロック毎にディスクアドレス(ホスト
からの指示アドレス)順に格納されており、そのディス
クアドレスに対応したデータを格納するメモリ部102
のブロックアドレス(論理アドレス)、およびメモリ部
102の対応するブロックが書換えられた回数、更に、
対応するブロックの消去フラグを記憶している。
The memory unit 102 is divided into m blocks 102-1 to 102-m as in the conventional case,
0, k, 2k, ..., (m-
1) Addressed as k and can be erased in block units. The table 121 has m pieces of control information 121-1 to 121-1.
121-m, and they are addressed as 0, 1, 2, ..., (m-1). Individual control information 121-1 to
121-m are stored in order of disk addresses (addresses from the host) for each block, and the memory unit 102 that stores data corresponding to the disk addresses.
Block address (logical address) and the number of times the corresponding block of the memory unit 102 has been rewritten,
The erase flag of the corresponding block is stored.
【0028】次に、本実施例のメモリ制御装置の動作を
説明する。図3、図4は、本実施例のメモリ制御装置に
おいて、主制御部110が行うライト/リードコマンド
処理のフローチャートである。この図3、図4および上
述した図1、図2を用いて、ホスト2が不揮発性半導体
ディスク装置1に対してライトもしくはリードコマンド
を発行してきた場合のコマンド処理の動作を説明する。
Next, the operation of the memory control device of this embodiment will be described. 3 and 4 are flowcharts of the write / read command processing performed by the main control unit 110 in the memory control device of this embodiment. The operation of command processing when the host 2 issues a write or read command to the nonvolatile semiconductor disk device 1 will be described with reference to FIGS. 3 and 4 and FIGS. 1 and 2 described above.
【0029】ホスト2からホストインタフェース部10
5を通してコマンドが受け付けられると、主制御部11
0は、そのコマンドを、ホスト2からホストインタフェ
ース部105を通してリードし(ステップS1)、リー
ドコマンドであるかライトコマンドであるかを判断する
(ステップS2)。コマンドがライトであった場合は、
先ず、ライトする先頭のディスクアドレスとライトデー
タ数を、ホスト2からホストインタフェース部105を
通してリードし(ステップS3)、次に、主制御部11
0の交換制御手段111は、上記ディスクアドレスとラ
イトデータ数を用いて、テーブル121の対応するアド
レスを算出する(ステップS4a)。尚、従来と異なる
ステップには、ステップ番号に“a”を付してその相違
を明確にする。
Host 2 to host interface 10
When a command is accepted through 5, the main controller 11
0 reads the command from the host 2 through the host interface unit 105 (step S1), and determines whether the command is a read command or a write command (step S2). If the command was a light,
First, the head disk address to write and the number of write data are read from the host 2 through the host interface unit 105 (step S3), and then the main control unit 11
The exchange control unit 111 of 0 calculates the corresponding address of the table 121 using the disk address and the number of write data (step S4a). It should be noted that steps different from the conventional one are marked with "a" in the step number to clarify the difference.
【0030】そして、算出したアドレスを基にテーブル
121中の消去フラグをチェックし(ステップS5)、
メモリ部102中の該当ブロックが消去済みか否かの判
定を行う(ステップS6)。該当ブロックが消去済みで
あれば、ホスト2からホストインタフェース部105を
通して、ライトデータを直接メモリ部102の算出済み
アドレスにライトする(ステップS7)。ライト終了
後、テーブル121中の消去フラグを更新し(ステップ
S8)、ホスト2に対しホストインタフェース部105
を通して動作終了を通知し(ステップS9)、処理を終
了する。
Then, the erase flag in the table 121 is checked based on the calculated address (step S5),
It is determined whether or not the corresponding block in the memory unit 102 has been erased (step S6). If the corresponding block has been erased, the write data is directly written from the host 2 to the calculated address of the memory unit 102 through the host interface unit 105 (step S7). After the writing is completed, the erase flag in the table 121 is updated (step S8), and the host interface unit 105 for the host 2 is updated.
The end of the operation is notified through (step S9), and the process ends.
【0031】一方、上記ステップS6において、該当ブ
ロックが消去済みでない場合、交換制御手段111は、
先ず、算出済みアドレスを基にテーブル121中の書換
え回数をチェックし(ステップS10a)、該当ブロッ
クが書換え可能か否かを判定する(ステップS11
a)。即ち、書換え回数が、メモリ素子で規定されてい
る書換え最大回数以上でかつ、他の何れのブロックの書
換え回数も[メモリ素子で規定されている書換え最大回
数−1]以上のときは、書換えができないので、ホスト
2に対して、ホストインタフェース部105を通してコ
マンドの異常終了を通知し(ステップS12)、処理を
終了する。これによりFEEPROMの書換え回数制限
を超えた書換えが生じるのを防いでいる。
On the other hand, if the corresponding block is not erased in step S6, the exchange control means 111
First, the number of rewrites in the table 121 is checked based on the calculated address (step S10a), and it is determined whether or not the corresponding block is rewritable (step S11).
a). That is, when the number of rewrites is equal to or more than the maximum number of rewrites specified by the memory element and the number of rewrites of any other block is equal to or more than [the maximum number of rewrites specified by the memory element-1], the rewrite is performed. Therefore, the host 2 is notified of abnormal termination of the command through the host interface unit 105 (step S12), and the process is terminated. This prevents rewriting exceeding the rewriting frequency limit of the FEEPROM.
【0032】また、上記ステップS11aにおいて、該
当ブロックの書換え回数がメモリ素子で規定されている
書換え最大回数未満か、あるいは、他の何れかのブロッ
クの書換え回数が[メモリ素子で規定されている書換え
最大回数−1]未満である場合は、次にブロック間交換
が必要であるか否か判定する(ステップS13a)。
In step S11a, the number of rewrites of the block is less than the maximum number of rewrites specified by the memory element, or the number of rewrites of any other block is [rewrite specified by the memory element. If it is less than the maximum number of times-1], then it is determined whether or not interblock exchange is necessary (step S13a).
【0033】ブロック交換は、判定基準値として該当ブ
ロックの書換え回数が[メモリ素子で規定されている書
換え最大回数−1]以上である場合と、該当するブロッ
クと、書換え回数が最小のブロックとの間の書換え回数
の差がある一定数以上のとき行う。尚、ここで、一定数
とは、ホスト2からのライト要求への応答を考慮し、予
め実験的に求めた最適値である。即ち、この値が小さい
場合は、頻繁に書換え処理が行われるため、ホスト2へ
の応答が遅くなってしまう等の問題が発生してしまうこ
とから、ブロック間の書換え回数の均一化とホスト2へ
の応答速度を考慮した値を設定している。
The block exchange is performed when the number of times of rewriting of the corresponding block is equal to or more than [the maximum number of times of rewriting specified by the memory element-1] as a criterion value, and when the corresponding block and the block having the minimum number of rewriting are Performed when the difference in the number of rewrites between two or more is a certain number or more. Here, the fixed number is an optimum value that is experimentally obtained in advance in consideration of the response to the write request from the host 2. That is, if this value is small, the rewriting process is frequently performed, which causes a problem that the response to the host 2 is delayed. The value is set considering the response speed to.
【0034】上記書換え処理は、先ず、テーブル121
中の該当ブロックに関する、消去フラグ、書換え回数、
メモリブロックの論理アドレスを交換対象のブロックの
ものと交換し、更に双方の書換え回数を“1”加算す
る。(ステップS14a)。ここで、該当ブロックをデ
ィスクアドレス“0”、交換対象ブロックをディスクア
ドレス“1”とすると、ステップS14a後のテーブル
121は図2中の内容となる。
In the rewriting process, first, the table 121
Erase block, number of rewrites,
The logical address of the memory block is exchanged with that of the exchange target block, and the number of rewrites of both is added by "1". (Step S14a). Here, assuming that the corresponding block is the disk address "0" and the exchange target block is the disk address "1", the table 121 after step S14a has the contents in FIG.
【0035】次に、メモリ部102中の該当ブロック
(図2中のブロック1)のデータをバッファ部103に
転送し(ステップS15a)、更に、該当ブロックを消
去する(ステップS16a)。そして、交換対象のブロ
ック(図2中のブロック2)から該当ブロックへのデー
タ転送を行い(ステップS17a)、交換対象のブロッ
クを消去し(ステップS18a)、バッファ部103か
ら交換対象ブロックへのデータ転送を行う(ステップS
19a)。従って、メモリ部102において、論理アド
レス“0”のデータと、論理アドレス“k”のデータと
が交換されたことになる。
Next, the data of the corresponding block (block 1 in FIG. 2) in the memory unit 102 is transferred to the buffer unit 103 (step S15a), and the corresponding block is erased (step S16a). Then, data is transferred from the exchange target block (block 2 in FIG. 2) to the corresponding block (step S17a), the exchange target block is erased (step S18a), and data from the buffer unit 103 to the exchange target block is transferred. Transfer (step S
19a). Therefore, in the memory unit 102, the data of the logical address “0” and the data of the logical address “k” are exchanged.
【0036】その後、テーブル121中の該当アドレス
(ディスクアドレス“0”)の書換え回数に1加算し
(ステップS20)、メモリ部102中の該当するアド
レスが含まれるブロック全体の内容(即ち、ブロック交
換した論理アドレス“k”の内容)をバッファ部103
にコピーする(ステップS21)。次に、そのブロック
をブロック消去し(ステップS22)、その後、ホスト
2からホストインタフェース部105を通してそのライ
トデータをバッファ部103へ該当アドレスからライト
する(ステップS23)。ライト終了後、バッファ部1
03中のデータをメモリ部102中の同一ブロックへ戻
し(ステップS24)、ホスト2に対してホストインタ
フェース部105を通して動作終了を通知し(ステップ
S9)、処理を終了する。尚、上記ステップS20〜ス
テップS25の内容は、図16に示した従来のステップ
S12〜ステップS16の内容と同様である。
After that, 1 is added to the number of times of rewriting of the corresponding address (disk address "0") in the table 121 (step S20), and the contents of the entire block including the corresponding address in the memory unit 102 (that is, block exchange). The contents of the logical address "k")
(Step S21). Next, the block is erased (step S22), and then the write data is written from the host 2 to the buffer section 103 through the host interface section 105 from the corresponding address (step S23). After writing, buffer section 1
The data in 03 is returned to the same block in the memory unit 102 (step S24), the end of operation is notified to the host 2 through the host interface unit 105 (step S9), and the process is ended. The contents of steps S20 to S25 are the same as the contents of conventional steps S12 to S16 shown in FIG.
【0037】また、ステップS13aでブロック間交換
が必要でない場合は、ステップS20に移行し、従来と
同様の書換え処理を行う。
If interblock exchange is not required in step S13a, the process proceeds to step S20, and rewriting processing similar to the conventional one is performed.
【0038】一方、ステップS2において、コマンドが
リードであった場合は、先ず、リードする先頭のディス
クアドレスとリードデータ数をホスト2からホストイン
タフェース部105を通してリードする(ステップS2
5a)。次に、上記ディスクアドレスとリードデータ数
を用いて、テーブル121の対応するアドレスを算出
し、そのアドレスから、メモリ部102中のリードデー
タの格納されているアドレスを算出する(ステップS2
6a)。そして、ホスト2へ、そのリードデータを直接
メモリ部102の算出済みアドレスからリードする(ス
テップS27)。リード終了後、ホスト2に対してホス
トインタフェース部105を通して動作終了を通知し
(ステップS28)、処理を終了する。尚、ステップS
27およびS28の処理は、従来のステップS20およ
びS21の処理に対応するものである。
On the other hand, if the command is read in step S2, first, the head disk address to be read and the number of read data are read from the host 2 through the host interface unit 105 (step S2).
5a). Next, using the disk address and the number of read data, the corresponding address of the table 121 is calculated, and the address where the read data is stored in the memory unit 102 is calculated from that address (step S2).
6a). Then, the read data is directly read to the host 2 from the calculated address of the memory unit 102 (step S27). After the read is completed, the host 2 is notified of the operation completion through the host interface unit 105 (step S28), and the process is completed. Incidentally, step S
The processes of 27 and S28 correspond to the conventional processes of steps S20 and S21.
【0039】以上のように第1実施例では、各々のメモ
リブロックの書換え回数を示すテーブル121を設け、
ホスト2からのライト要求があった場合は、このテーブ
ル121を参照して、メモリ部102における書換え回
数の多いブロックと少ないブロックとを交換するように
したので、ブロック間の書換え回数のばらつきを低く抑
えることができ、書換え回数の制限から来る装置全体と
しての寿命を著しく延ばすことができる。
As described above, in the first embodiment, the table 121 showing the number of times of rewriting of each memory block is provided,
When there is a write request from the host 2, the table 121 is referred to exchange a block with a large number of rewrites in the memory unit 102 and a block with a small number of rewrites. It is possible to suppress the number of times of rewriting, and it is possible to remarkably extend the life of the entire device due to the limitation of the number of times of rewriting.
【0040】《第2実施例》図5は、第2実施例による
メモリ制御装置のブロック図である。図5において、交
換制御手段112は、専用のプロセッサあるいはプログ
ラムからなり、ホスト2からのライトコマンドによっ
て、上記第1実施例と同様のブロック交換処理を行うと
共に、主制御部110の動作中は、一定周期で次のブロ
ック交換処理を実行する機能を有している。
<< Second Embodiment >> FIG. 5 is a block diagram of a memory controller according to a second embodiment. In FIG. 5, the exchange control means 112 is composed of a dedicated processor or program, performs the same block exchange processing as in the first embodiment by a write command from the host 2, and while the main control unit 110 is operating, It has a function of executing the next block exchange processing at a constant cycle.
【0041】即ち、一定周期でテーブル121を参照
し、メモリ部102における各メモリブロックのそれぞ
れの書換え回数を調べ、メモリブロックの書換え回数の
最大値と最小値との差が所定値以上であった場合、これ
らメモリブロックのデータを交換すると共に、テーブル
121中の最大値のメモリブロックの論理アドレスを最
小値のメモリブロックの論理アドレスと交換する機能を
有している。
That is, the number of times of rewriting of each memory block in the memory unit 102 is checked by referring to the table 121 at a constant cycle, and the difference between the maximum value and the minimum value of the number of times of rewriting of the memory block is a predetermined value or more. In this case, it has a function of exchanging the data of these memory blocks and exchanging the logical address of the maximum value memory block in the table 121 with the logical address of the minimum value memory block.
【0042】また、130は小容量の書換え可能な不揮
発メモリ(例えばNVRAMやEEPROM)からなる
交換用データ領域であり、上記最大値のメモリブロック
と最小値のメモリブロックの交換処理において一時的に
そのデータを格納するものである。そして、交換用デー
タ領域130の容量は、メモリ部102における1ブロ
ック分以上の大きさを有している。尚、この交換用デー
タ領域130と制御情報記憶部120とを単一の不揮発
メモリで構成することも可能である。また、図5中、他
の構成は上記第1実施例と同様であるため、対応する部
分に同一符号を付してその説明を省略する。
Reference numeral 130 denotes an exchange data area composed of a small-capacity rewritable non-volatile memory (for example, NVRAM or EEPROM), which is temporarily stored in the exchange processing of the maximum value memory block and the minimum value memory block. It stores data. The capacity of the exchange data area 130 is equal to or larger than one block in the memory unit 102. It should be noted that the exchange data area 130 and the control information storage section 120 can be configured by a single non-volatile memory. Further, in FIG. 5, the other structure is the same as that of the first embodiment, and therefore, corresponding parts are designated by the same reference numerals and the description thereof is omitted.
【0043】次に、上記第2実施例の動作について説明
する。先ず、主制御部110が行うライト/リードコマ
ンド処理において、そのフローチャートは上記第1実施
例と同様であるが、そのブロック交換処理が以下の点で
異なっている。
Next, the operation of the second embodiment will be described. First, in the write / read command processing performed by the main control unit 110, the flowchart is the same as that of the first embodiment, but the block exchange processing is different in the following points.
【0044】即ち、第1実施例では、ステップS13a
のブロック交換が必要であるか否かの判定基準が、該当
ブロックの書換え回数が[メモリ素子で規定されている
書換え最大回数−1]以上である場合と、該当するブロ
ックと、書換え回数が最小のブロックとの間の書換え回
数の差がある一定数以上のときであったのに対し、第2
実施例では、該当ブロックの書換え回数が[メモリ素子
で規定されている書換え最大回数−1]以上である場合
のみ行う点である。これ以外の動作は、第1実施例と同
様であり、重複を避けるため、他の処理の説明は省略す
る。
That is, in the first embodiment, step S13a
When the number of times of rewriting of the block is equal to or more than [the maximum number of times of rewriting -1 specified by the memory element-1], the judgment criterion of whether or not the block needs to be replaced is While the difference in the number of rewrites with the block of the above was a certain number or more, the second
In the embodiment, this is performed only when the number of times of rewriting of the corresponding block is equal to or more than [the maximum number of times of rewriting specified by the memory element-1]. The other operation is the same as that of the first embodiment, and the description of other processing is omitted to avoid duplication.
【0045】また、メモリ部102のブロック間のばら
つきを抑えるためのブロック交換は、以下に述べるブロ
ック交換処理で行うものであり、これが第2実施例にお
ける特徴点をなすものである。
Further, the block exchange for suppressing the variation between the blocks of the memory unit 102 is performed by the block exchange process described below, which is a feature of the second embodiment.
【0046】図6は、そのブロック交換処理動作を示す
フローチャートである。交換制御手段112は、本処理
をある一定周期で起動、実行するものとする。本処理が
起動されると、テーブル121中の各メモリブロックの
書換え回数をチェックし(ステップS1)、ブロック間
の交換が必要であるか否か判定する(ステップS2)。
即ち、この判定は、任意の二つのブロック間の書換え回
数の差における最大値を検出し、この値がある一定値以
上である場合に、書換え回数が最大のメモリブロック
(以下、最大ブロックと称す)と最小のメモリブロック
(以下、最小ブロックと称す)との間でブロック間交換
を行うものである。
FIG. 6 is a flowchart showing the block exchange processing operation. The exchange control means 112 starts and executes this processing at a certain fixed cycle. When this process is activated, the number of times of rewriting of each memory block in the table 121 is checked (step S1), and it is determined whether or not replacement between blocks is necessary (step S2).
That is, this determination detects the maximum value in the difference in the number of rewrites between any two blocks, and when this value is greater than or equal to a certain value, the memory block with the maximum number of rewrites (hereinafter referred to as the maximum block). ) And the smallest memory block (hereinafter referred to as the smallest block) are exchanged between blocks.
【0047】このブロック間交換においては、先ず、テ
ーブル121中の最大ブロックに関する消去フラグ、書
換え回数、メモリブロックの論理アドレスを、最小ブロ
ックのものと交換し、更に、双方の書換え回数を1加算
する(ステップS3)。次に、メモリ部102中の最大
ブロックのデータを、交換用データ領域130に転送し
(ステップS4)、更に、最大ブロックの消去(ステッ
プS5)、最小ブロックから最大ブロックへのデータ転
送(ステップS6)、最小ブロックの消去(ステップS
7)、交換用データ領域130から最小ブロックへのデ
ータ転送(ステップS8)を行い、処理を終了する。ま
た、上記ステップS2において、ブロック間交換が必要
でない場合は、直ちに処理を終了する。
In this block-to-block exchange, first, the erase flag for the largest block in the table 121, the number of rewrites, and the logical address of the memory block are exchanged with those of the smallest block, and the number of rewrites of both is incremented by one. (Step S3). Next, the data of the largest block in the memory unit 102 is transferred to the exchange data area 130 (step S4), the largest block is erased (step S5), and the data is transferred from the smallest block to the largest block (step S6). ), Erasing the smallest block (step S
7) The data is transferred from the exchange data area 130 to the smallest block (step S8), and the process is terminated. Further, in the above step S2, if the inter-block exchange is not necessary, the processing is immediately terminated.
【0048】以上のように第2実施例では、ある一定周
期で、テーブル121を参照し、メモリ部102におけ
る書換え回数の多いブロックと少ないブロックとを交換
するようにしたので、上記第1実施例の効果に加えて、
ホスト2からのライト要求に対する応答を速やかに行う
ことができる。
As described above, in the second embodiment, the table 121 is referred to in a certain fixed period to exchange the block in the memory unit 102 with a large number of rewritings and the block with a small number of rewritings. In addition to the effect of
It is possible to promptly respond to the write request from the host 2.
【0049】《第3実施例》次に、交換制御手段がメモ
リブロック交換処理を実行する場合、その進行段階を保
持し、交換処理が未終了のまま不揮発性半導体ディスク
装置1の電源がオフされた場合は、次の電源オンによっ
て交換処理を再開する第3実施例を説明する。
<< Third Embodiment >> Next, when the exchange control means executes the memory block exchange processing, the progress stage is held and the power supply of the non-volatile semiconductor disk device 1 is turned off while the exchange processing is not completed. If so, the third embodiment will be described in which the replacement process is restarted by the next power-on.
【0050】図7は、第3実施例によるメモリ制御装置
のブロック図である。図7において、140は、進行段
階記憶部であり、この進行段階記憶部140は、小容量
の書換え可能な不揮発性メモリ(例えば、NVRAMや
EEPROM等)で構成され、後述する交換制御手段1
13が実行するメモリブロックの交換処理における現在
の処理進行段階を保持するためのものである。図8に、
進行段階記憶部140の内部構成を示す。即ち、進行段
階記憶部140は、交換中であるか否かを示す交換中フ
ラグ141、交換を行う二つのメモリブロックの論理ア
ドレスを示す交換アドレスA142、および交換アドレ
スB143、どの段階まで交換処理が進行しているかを
示す交換進行フラグ144とで構成されている。
FIG. 7 is a block diagram of a memory controller according to the third embodiment. In FIG. 7, reference numeral 140 denotes an advancing stage storage unit, and this advancing stage storage unit 140 is composed of a small-capacity rewritable non-volatile memory (for example, NVRAM or EEPROM), and the exchange control means 1 to be described later.
This is for holding the current processing progress stage in the memory block exchange processing executed by the CPU 13. In FIG.
3 shows an internal configuration of the progress stage storage unit 140. That is, the progress stage storage unit 140 stores the exchange flag 141 indicating whether or not the exchange is in progress, the exchange address A 142 indicating the logical addresses of the two memory blocks to be exchanged, and the exchange address B 143. It is composed of an exchange progress flag 144 indicating whether or not it is in progress.
【0051】また、交換制御手段113は、上記第1ま
たは第2実施例の交換制御手段111(または112)
と同様のメモリブロック交換処理を行うものである。そ
して、主制御部110には、進行段階管理手段114が
備えられている。この進行段階管理手段114は、交換
制御手段113が実行するブロック交換処理の進行段階
に関する情報を進行段階記憶部140に格納すると共
に、不揮発性半導体ディスク装置1への電源投入時に、
進行段階記憶部140の情報を読込み、交換処理が未終
了であった場合は、進行段階記憶部140で記憶されて
いる進行段階の情報に基づき、その変換処理を再開させ
る機能を有している。尚、この進行段階管理手段114
は、交換制御手段113と同様に、専用のプロセッサあ
るいはプログラム等から構成されている。尚、図7にお
いて、上記構成以外の構成は、上記第1、第2実施例と
同様であるため、対応する部分に同一符号を付してその
説明を省略する。
The exchange control means 113 is the exchange control means 111 (or 112) of the first or second embodiment.
The same memory block exchange process is performed. Further, the main control unit 110 is provided with the advancing stage management means 114. The progress stage management unit 114 stores information about the progress stage of the block exchange processing executed by the exchange control unit 113 in the progress stage storage unit 140, and at the time of power-on of the nonvolatile semiconductor disk device 1.
It has a function of reading the information in the progress stage storage unit 140 and restarting the conversion process based on the progress stage information stored in the progress stage storage unit 140 when the exchange process is not completed. . Incidentally, this progress stage management means 114
Like the exchange control means 113, is composed of a dedicated processor or program. Note that, in FIG. 7, the configuration other than the above-described configuration is the same as that of the above-described first and second embodiments, and therefore, corresponding parts are designated by the same reference numerals and the description thereof is omitted.
【0052】次に、上記第3実施例の動作について説明
する。図9、図10、図11は、第3実施例のメモリ制
御装置において、主制御部110が行うライト/リード
コマンド処理のフローチャートである。この図9〜図1
1および上述した図7、図8を用いて、ホスト2が不揮
発性半導体ディスク装置1に対してライトもしくはリー
ドコマンドを発行してきた場合のコマンド処理の動作を
説明する。
Next, the operation of the third embodiment will be described. 9, 10, and 11 are flowcharts of write / read command processing performed by the main control unit 110 in the memory control device according to the third embodiment. 9 to 1
The operation of command processing when the host 2 issues a write or read command to the nonvolatile semiconductor disk device 1 will be described with reference to FIG.
【0053】ホスト2からホストインタフェース部10
5を通してのコマンドが受け付けられると、コマンド処
理が開始される。そしてこのコマンド処理において、ス
テップS1〜ステップS13aまでは、上記第1実施例
または第2実施例と同様であるため、その説明は省略す
る。
Host 2 to host interface section 10
When the command through 5 is accepted, command processing is started. In this command processing, steps S1 to S13a are the same as those in the first or second embodiment, and the description thereof will be omitted.
【0054】ステップS13aにおいて、ブロック交換
が必要であった場合は、次のような処理を行う。先ず、
進行段階管理手段114は、交換制御手段113による
ブロック交換処理の開始に基づき、交換中フラグ141
をセットし、かつ交換アドレスA142に該当ブロック
の論理アドレスを、また交換アドレスB142に交換対
象ブロックの論理アドレスを、更に交換進行フラグ14
4を1にセットする(ステップS14b)。尚、以下、
上記第1、第2実施例と同様の処理についてはステップ
番号に“a”、異なる処理については、ステップ番号に
“b”を付してその相違を明確にする。
In step S13a, when the block exchange is necessary, the following processing is performed. First,
Based on the start of the block exchange process by the exchange control unit 113, the progress stage management unit 114 has an exchange in progress flag 141.
Is set, the exchange address A 142 is the logical address of the corresponding block, the exchange address B 142 is the logical address of the exchange target block, and the exchange progress flag 14
4 is set to 1 (step S14b). In addition,
The steps similar to those in the first and second embodiments are indicated by "a" in the step number, and the different steps are indicated by "b" in the step number to clarify the difference.
【0055】次に、テーブル121中の該当ブロックに
関する、消去フラグ、書換え回数、メモリブロックの論
理アドレスを、交換対象のブロックのものと交換し、更
に双方の書換え回数を1加算する(ステップS15
a)。その後、交換進行フラグ144を2にセットする
(ステップS16b)。そして、メモリ部102中の該
当ブロックのデータをバッファ部103に転送し(ステ
ップS17a)、交換進行フラグ144を3にセットす
る(ステップS18b)。更に、該当ブロックの消去
(ステップS19a)、交換進行フラグ144へ4をセ
ット(ステップS20b)、交換対象のブロックから該
当ブロックへのデータ転送(ステップS21a)、交換
進行フラグ144へ5をセット(ステップS22b)、
交換対象のブロックの消去(ステップS23a)、交換
進行フラグ144へ6をセット(ステップS24b)、
バッファ部103から交換対象ブロックへのデータ転送
(ステップS25a)、交換中フラグ141のリセット
(ステップS26b)を行う。
Next, the erase flag, the number of rewrites, and the logical address of the memory block for the corresponding block in the table 121 are exchanged with those of the block to be exchanged, and the number of rewrites of both is incremented by 1 (step S15).
a). Then, the replacement progress flag 144 is set to 2 (step S16b). Then, the data of the corresponding block in the memory unit 102 is transferred to the buffer unit 103 (step S17a), and the exchange progress flag 144 is set to 3 (step S18b). Further, the corresponding block is erased (step S19a), the exchange progress flag 144 is set to 4 (step S20b), data is transferred from the exchange target block to the corresponding block (step S21a), and the exchange progress flag 144 is set to 5 (step). S22b),
Erasing the block to be replaced (step S23a), setting 6 to the replacement progress flag 144 (step S24b),
Data transfer from the buffer unit 103 to the exchange target block (step S25a) and resetting of the in-exchange flag 141 (step S26b) are performed.
【0056】尚、上記ステップS15a、S17a、S
19a、S21a、S23a、S25aの処理は、それ
ぞれ上記第1、第2実施例におけるステップS14a〜
S19aの処理と同様である。そして、その後のステッ
プS27〜S31の処理は、上記第1または第2実施例
におけるステップS20〜S24の処理と同様であるた
め、ここでの説明は省略する。また、ステップS2にお
いて、コマンドがリードであった場合のステップS32
a〜S35の処理は、上記第1または第2実施例におけ
るステップS25a〜S28の処理と同様である。
Incidentally, the above steps S15a, S17a, S
The processes of 19a, S21a, S23a, and S25a are performed in steps S14a to S14a in the first and second embodiments, respectively.
This is similar to the processing of S19a. The subsequent processing of steps S27 to S31 is the same as the processing of steps S20 to S24 in the first or second embodiment, and therefore the description thereof is omitted here. In step S2, if the command is read, step S32
The processing of a to S35 is the same as the processing of steps S25a to S28 in the first or second embodiment.
【0057】次に、交換制御手段113が、主制御部1
10の動作中に、ブロック交換処理をある一定周期で行
う場合の動作を説明する。即ち、これは、上記第2実施
例において、図6に示したブロック交換処理に対応する
ものである。図12に、そのブロック交換処理のフロー
チャートを示す。尚、このフローチャートにおいても、
第2実施例と異なる処理についてはステップ番号に
“a”を付している。
Next, the exchange control means 113 causes the main controller 1
The operation in the case where the block exchange process is performed in a certain fixed period during the operation of 10 will be described. That is, this corresponds to the block exchange process shown in FIG. 6 in the second embodiment. FIG. 12 shows a flowchart of the block exchange processing. In addition, even in this flowchart,
For the processing different from that of the second embodiment, "a" is added to the step number.
【0058】先ず、本処理を起動すると、第2実施例と
同様に、テーブル121中の書換え回数をチェックし
(ステップS1)、ブロック間の交換が必要か否か判定
する(ステップS2)。即ち、各ブロック間の書換え回
数の差のうち、最大の値が、ある一定値以上であった場
合は、書換え回数が最大のブロックと最小のブロックと
の間でブロック間交換を行う。
First, when this process is started, the number of rewrites in the table 121 is checked (step S1), and it is determined whether or not the blocks need to be exchanged (step S2), as in the second embodiment. That is, if the maximum value of the differences in the number of times of rewriting between the blocks is a certain value or more, the block is exchanged between the block having the maximum number of times of rewriting and the block having the minimum number of times of rewriting.
【0059】このブロック間交換においては、進行段階
管理手段114は、先ず、進行段階記憶部140におけ
る交換中フラグ141をセットし、交換アドレスA14
2に最大ブロックの論理アドレスを、交換アドレスB1
42に最小ブロックの論理アドレスを、更に、交換進行
フラグ144を1にセットにする(ステップS3a)。
そして、テーブル中の最大ブロックに関する、消去フラ
グ、書換え回数、メモリブロックの論理アドレスを、最
小ブロックのものと交換し、更に双方の書換え回数を1
加算する(ステップS4)。その後、交換進行フラグ1
44を2にセットする(ステップS5a)。
In this block-to-block exchange, the advancing stage management means 114 first sets the exchanging flag 141 in the advancing stage storage section 140, and the exchanging address A14.
2, the logical address of the largest block, the exchange address B1
The logical address of the smallest block is set to 42, and the exchange progress flag 144 is set to 1 (step S3a).
Then, the erase flag, the number of rewrites, and the logical address of the memory block for the maximum block in the table are exchanged with those of the minimum block, and the number of rewrites of both is set to 1
Add (step S4). After that, exchange progress flag 1
44 is set to 2 (step S5a).
【0060】次に、メモリ部102中の最大ブロックの
データを、交換用データ領域130に転送し(ステップ
S6)、交換進行フラグ144を3にセットする(ステ
ップS7a)。更に、最大ブロックの消去(ステップS
8)、交換進行フラグ144へ4をセット(ステップS
9a)、最小ブロックから最大ブロックへのデータ転送
(ステップS10)、交換進行フラグ144へ5をセッ
ト(ステップS11a)、最小ブロックの消去(ステッ
プS12)、交換進行フラグ144へ6をセット(ステ
ップS13a)、交換用データ領域130から最小ブロ
ックへのデータ転送(ステップS14)、交換中フラグ
141のリセット(ステップS15a)を行い、処理を
終了する。
Next, the data of the largest block in the memory unit 102 is transferred to the exchange data area 130 (step S6), and the exchange progress flag 144 is set to 3 (step S7a). Further, the largest block is erased (step S
8), 4 is set to the exchange progress flag 144 (step S
9a), data transfer from the smallest block to the largest block (step S10), 5 is set to the exchange progress flag 144 (step S11a), the minimum block is erased (step S12), and 6 is set to the exchange progress flag 144 (step S13a). ), Data is transferred from the exchange data area 130 to the minimum block (step S14), the in-exchange flag 141 is reset (step S15a), and the process is terminated.
【0061】一方、ステップS2において、ブロック間
交換が必要でない場合は、直ちに処理を終了する。尚、
上記処理において、ステップS4、S6、S8、S1
0、S12、S14は、図6のステップS3〜S8の処
理と同様である。即ち、本実施例では、ブロック交換処
理の各段階に対応させて交換進行フラグの数値を増加さ
せたものである。
On the other hand, in step S2, if the block-to-block exchange is not necessary, the process is immediately terminated. still,
In the above process, steps S4, S6, S8, S1
0, S12, and S14 are the same as the processing of steps S3 to S8 in FIG. That is, in this embodiment, the numerical value of the exchange progress flag is increased corresponding to each stage of the block exchange processing.
【0062】次に、進行段階管理手段114が、電源投
入時に行うブロック交換再開処理を説明する。図13
は、そのフローチャートである。不揮発性半導体ディス
ク装置1への電源投入によって、本処理が起動される
と、進行段階管理手段114は、先ず、交換中フラグ1
41をチェックする(ステップS1、S2)。ここで、
交換中フラグ141がセットされていれば、電源投入以
前に行っていたブロック交換処理が中断したままになっ
ているので、次に交換進行フラグ144をチェックし
(ステップS3、S4)、交換進行フラグ144の値に
応じたステップから、中断中のブロック交換処理を再開
する(ステップS5〜ステップS16)。
Next, the block exchange resuming process performed by the advancing stage management means 114 when the power is turned on will be described. FIG.
Is the flowchart. When this process is started by turning on the power to the non-volatile semiconductor disk device 1, the progress stage management means 114 first sets the replacement flag 1
41 is checked (steps S1 and S2). here,
If the in-exchange flag 141 is set, the block exchange process that was being performed before the power was turned on is still suspended. Therefore, the exchange progress flag 144 is checked (steps S3 and S4), and the exchange progress flag is checked. The interrupted block exchange process is restarted from the step corresponding to the value of 144 (steps S5 to S16).
【0063】即ち、交換進行フラグ144が1ならば、
ステップS5のテーブル121中のブロック交換処理か
ら、また、2ならば、ステップS7の最大ブロックを交
換用データ領域130に転送する処理から再開する。以
下、同様に、交換進行フラグ144が3ならば、ステッ
プS9の最大ブロックの消去処理、4ならばステップS
11の最小ブロックから最大ブロックへのデータ転送処
理、5ならばステップS13の最小ブロックの消去処
理、6ならばステップS15の交換用データ領域130
から最小ブロックへのデータ転送処理といったように処
理を再開する。尚、ステップS2において、交換中フラ
グ141がセットされていなければ、直ちに処理を終了
する。
That is, if the exchange progress flag 144 is 1,
The process is restarted from the block exchanging process in the table 121 in step S5, and if it is 2, the process of transferring the largest block to the exchanging data area 130 is resumed in step S7. Similarly, if the exchange progress flag 144 is 3, the maximum block erasing process of step S9 is performed, and if it is 4, step S is performed.
11 data transfer process from the minimum block to the maximum block, 5 if the erase process of the minimum block of step S13, 6 if the exchange data area 130 of step S15
Processing is resumed, such as data transfer processing from a block to a minimum block. In step S2, if the in-exchange flag 141 is not set, the process is immediately ended.
【0064】以上のように第3実施例では、メモリブロ
ック間の交換に関する情報を進行段階記憶部140に保
持させ、かつ装置の電源投入時には、保持した情報に基
づき、中断中のブロック間交換を再開できるようにした
ので、ブロック間交換中の、電源断等の不意の処理中断
に対してもデータを正しく保持することができる。
As described above, in the third embodiment, the information regarding the exchange between the memory blocks is held in the progress stage storage section 140, and the interrupted inter-block exchange is performed based on the held information when the apparatus is powered on. Since it is possible to restart the data, the data can be correctly retained even during an unexpected process interruption such as power-off during the interblock exchange.
【0065】[0065]
【発明の効果】以上詳細に説明したように、第1および
第2発明のメモリ制御装置によれば、ホストからの指示
アドレスとメモリ部におけるメモリブロックの論理アド
レスの関係を示すと共に、各々のメモリブロックの書換
え回数を示すテーブルを設け、ホストからのライト要求
があった場合は、このテーブルを参照して、メモリ部に
おける書換え回数の多いブロックと少ないブロックとを
交換するようにしたので、ブロック間の書換え回数のば
らつきを低く抑えることができ、書換え回数の制限から
来る装置全体としての寿命を著しく延ばすことができ
る。
As described above in detail, according to the memory control device of the first and second inventions, the relationship between the instruction address from the host and the logical address of the memory block in the memory section is shown and each memory is A table showing the number of block rewrites is provided, and when there is a write request from the host, this table is referred to so that the block with a large number of rewrites in the memory section is exchanged with the block with a small number of blocks. The variation in the number of times of rewriting can be suppressed to a low level, and the life of the entire device can be significantly extended due to the limitation of the number of times of rewriting.
【0066】また、第3発明のメモリ制御装置によれ
ば、第1、第2発明と同様のテーブルを設けると共に、
装置の動作中、ある一定周期で、このテーブルを参照
し、メモリ部における書換え回数の多いブロックと少な
いブロックとを交換するようにしたので、上記第1、第
2発明の効果に加えて、ホストからのライト要求に対す
る応答を速やかに行うことができる。
According to the memory control device of the third invention, the same table as in the first and second inventions is provided, and
During the operation of the device, the table is referred to at a certain cycle to exchange the block in the memory part that has been rewritten many times and the block in which the number of times of rewriting is small, so that in addition to the effects of the first and second inventions, It is possible to promptly respond to the write request from.
【0067】更に、第4発明のメモリ制御装置によれ
ば、上記第1〜第3発明に加えて、メモリブロック間の
交換に関する情報を保持し、かつ装置の電源投入時に
は、上記情報に基づき、中断中のブロック間交換を再開
できるようにしたので、ブロック間交換中の、電源断等
の不意の処理中断に対してもデータを正しく保持するこ
とができる。
Further, according to the memory control device of the fourth invention, in addition to the above first to third inventions, information relating to exchange between memory blocks is held, and when the power of the device is turned on, based on the above information, Since the block-to-block exchange that has been suspended can be restarted, the data can be correctly retained even during an unexpected process interruption such as power-off during the block-to-block exchange.
【図面の簡単な説明】[Brief description of drawings]
【図1】本発明のメモリ制御装置における第1実施例の
ブロック図である。
FIG. 1 is a block diagram of a first embodiment of a memory control device of the present invention.
【図2】本発明のメモリ制御装置におけるテーブルとメ
モリ部との関係を示す説明図である。
FIG. 2 is an explanatory diagram showing a relationship between a table and a memory unit in the memory control device of the present invention.
【図3】本発明のメモリ制御装置における第1実施例の
動作を示すフローチャート(その1)である。
FIG. 3 is a flowchart (part 1) showing the operation of the first embodiment of the memory control device of the present invention.
【図4】本発明のメモリ制御装置における第1実施例の
動作を示すフローチャート(その2)である。
FIG. 4 is a flowchart (part 2) showing the operation of the first embodiment of the memory control device of the present invention.
【図5】本発明のメモリ制御装置における第2実施例の
ブロック図である。
FIG. 5 is a block diagram of a second embodiment of the memory control device of the present invention.
【図6】本発明のメモリ制御装置における第2実施例の
ブロック交換処理のフローチャートである。
FIG. 6 is a flowchart of a block exchange process of a second embodiment in the memory control device of the present invention.
【図7】本発明のメモリ制御装置における第3実施例の
ブロック図である。
FIG. 7 is a block diagram of a third embodiment of the memory control device of the present invention.
【図8】本発明のメモリ制御装置における第3実施例の
進行段階記憶部の内部構成図である。
FIG. 8 is an internal configuration diagram of a progressing stage storage unit of a third embodiment in the memory control device of the present invention.
【図9】本発明のメモリ制御装置における第3実施例の
動作を示すフローチャート(その1)である。
FIG. 9 is a flowchart (part 1) showing the operation of the third embodiment of the memory control device of the present invention.
【図10】本発明のメモリ制御装置における第3実施例
の動作を示すフローチャート(その2)である。
FIG. 10 is a flowchart (part 2) showing the operation of the third embodiment of the memory control device of the present invention.
【図11】本発明のメモリ制御装置における第3実施例
の動作を示すフローチャート(その3)である。
FIG. 11 is a flowchart (No. 3) showing the operation of the third embodiment of the memory control device of the present invention.
【図12】本発明のメモリ制御装置における第3実施例
のブロック交換処理のフローチャートである。
FIG. 12 is a flow chart of a block exchange process of a third embodiment in the memory control device of the present invention.
【図13】本発明のメモリ制御装置における第3実施例
のブロック交換再開処理のフローチャートである。
FIG. 13 is a flowchart of a block exchange restart process of a third embodiment in the memory control device of the present invention.
【図14】従来のメモリ制御装置のブロック図である。FIG. 14 is a block diagram of a conventional memory control device.
【図15】従来のメモリ制御装置における制御情報記憶
部の内部構成の説明図である。
FIG. 15 is an explanatory diagram of an internal configuration of a control information storage unit in a conventional memory control device.
【図16】従来のメモリ制御装置の動作を示すフローチ
ャートである。
FIG. 16 is a flowchart showing the operation of a conventional memory control device.
【符号の説明】[Explanation of symbols]
2 ホスト 102 メモリ部 111、112、113 交換制御手段 114 進行段階管理手段 121 テーブル 140 進行段階記憶部 2 host 102 memory unit 111, 112, 113 exchange control unit 114 advance stage management unit 121 table 140 advance stage storage unit

Claims (4)

    【特許請求の範囲】[Claims]
  1. 【請求項1】 複数のメモリブロックからなるフラッシ
    ュメモリで構成されたメモリ部と、 前記メモリ部に対してアクセス要求を行うホストからの
    指示アドレスと、前記メモリブロックの論理アドレスと
    の関係を示すと共に、前記複数のメモリブロックの各々
    の書換え回数を示すテーブルと、 前記ホストから前記メモリ部の任意のメモリブロックに
    対してライト要求があった場合、前記テーブルを参照し
    て前記任意のメモリブロックの書換え回数を調べ、当該
    メモリブロックの書換え回数が所定値以上であった場合
    は、当該メモリブロックのデータを他のメモリブロック
    のデータと交換し、かつ、前記テーブル中の指示アドレ
    スに対する論理アドレスを、交換したメモリブロックの
    論理アドレスに更新する交換制御手段を備えたことを特
    徴とするメモリ制御装置。
    1. A relationship between a memory unit composed of a flash memory including a plurality of memory blocks, an instruction address from a host that makes an access request to the memory unit, and a logical address of the memory block is shown. A table showing the number of times of rewriting of each of the plurality of memory blocks, and when a write request is made from the host to an arbitrary memory block of the memory unit, the table is referred to rewrite the arbitrary memory block. Check the number of times, and if the number of times of rewriting of the memory block is a predetermined value or more, exchange the data of the memory block with the data of another memory block, and exchange the logical address for the designated address in the table. A switching control means for updating the logical address of the memory block That the memory controller.
  2. 【請求項2】 複数のメモリブロックからなるフラッシ
    ュメモリで構成されたメモリ部と、 前記メモリ部に対してアクセス要求を行うホストからの
    指示アドレスと、前記メモリブロックの論理アドレスと
    の関係を示すと共に、前記複数のメモリブロックの各々
    の書換え回数とを示すテーブルと、 前記ホストから前記メモリ部の任意のメモリブロックに
    対してライト要求があった場合、前記テーブルを参照し
    て前記任意のメモリブロックの書換え回数を調べ、当該
    メモリブロックの書換え回数と、書換え回数が最小のメ
    モリブロックの書換え回数との差が所定値以上であった
    場合は、当該メモリブロックのデータを前記書換え回数
    が最小のメモリブロックのデータと交換し、かつ、前記
    テーブル中の指示アドレスに対する論理アドレスを、交
    換したメモリブロックの論理アドレスに更新する交換制
    御手段を備えたことを特徴とするメモリ制御装置。
    2. A memory unit composed of a flash memory composed of a plurality of memory blocks, a relationship between an instruction address from a host that makes an access request to the memory unit, and a logical address of the memory block are shown. , A table indicating the number of times of rewriting of each of the plurality of memory blocks, and when a write request is made from the host to an arbitrary memory block of the memory section, the table is referred to and the memory block of the arbitrary memory block is referred to. If the difference between the number of rewrites of the memory block and the number of rewrites of the memory block having the smallest number of rewrites is greater than or equal to a predetermined value, the data of the memory block is rewritten to the memory block of the smallest number of rewrites. And the logical address for the designated address in the table is exchanged. Memory control apparatus characterized by comprising a replacement control means for updating the logical address of the memory blocks.
  3. 【請求項3】 複数のメモリブロックからなるフラッシ
    ュメモリで構成されたメモリ部と、 前記メモリ部に対してアクセス要求を行うホストからの
    指示アドレスと、前記メモリブロックの論理アドレスと
    の関係を示すと共に、前記複数のメモリブロックの各々
    の書換え回数とを示すテーブルと、 一定周期で実行し、前記テーブルを参照し、前記複数の
    メモリブロックのそれぞれの書換え回数を調べ、書換え
    回数が最大のメモリブロックの書換え回数と、書換え回
    数が最小のメモリブロックの書換え回数との差が所定値
    以上であった場合、これらメモリブロックのデータを交
    換し、かつ、前記テーブル中の最大値のメモリブロック
    の論理アドレスを最小値のメモリブロックの論理アドレ
    スと交換する交換制御手段を備えたことを特徴とするメ
    モリ制御装置。
    3. A memory unit comprising a flash memory composed of a plurality of memory blocks, a relationship between an instruction address from a host that makes an access request to the memory unit, and a logical address of the memory block. , A table showing the number of times of rewriting of each of the plurality of memory blocks, and executing at a constant cycle, referring to the table, checking the number of times of rewriting of each of the plurality of memory blocks, When the difference between the number of rewrites and the number of rewrites of the memory block with the smallest number of rewrites is a predetermined value or more, the data of these memory blocks are exchanged, and the logical address of the maximum value memory block in the table is set. A memo comprising exchange control means for exchanging with the logical address of the minimum memory block. The control device.
  4. 【請求項4】 交換制御手段が実行するメモリブロック
    の交換処理における現在の処理進行段階を保持する進行
    段階記憶部と、 電源投入時に、前記進行段階記憶部の情報を読込み、前
    記交換処理が未終了であった場合、当該進行段階記憶部
    で記憶されている進行段階に基づき、前記変換処理を再
    開させる進行段階管理手段とを備えたことを特徴とする
    請求項1〜3のいずれかに記載のメモリ制御装置。
    4. A progress stage storage unit that holds a current process progress stage in the memory block exchange process executed by the exchange control means, and information of the progress stage storage unit that is read when the power is turned on, and the exchange process is not performed. 4. An advancing stage management means for restarting the conversion process based on the advancing stage stored in the advancing stage storage section when the process is completed. Memory controller.
JP5029938A 1993-01-26 1993-01-26 Memory controller Pending JPH06222986A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5029938A JPH06222986A (en) 1993-01-26 1993-01-26 Memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5029938A JPH06222986A (en) 1993-01-26 1993-01-26 Memory controller

Publications (1)

Publication Number Publication Date
JPH06222986A true JPH06222986A (en) 1994-08-12

Family

ID=12289938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5029938A Pending JPH06222986A (en) 1993-01-26 1993-01-26 Memory controller

Country Status (1)

Country Link
JP (1) JPH06222986A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389867B1 (en) * 2001-06-04 2003-07-04 삼성전자주식회사 Flash memory management method
US7529879B2 (en) 2004-06-30 2009-05-05 Samsung Electronics Co., Ltd. Incremental merge methods and memory systems using the same
JP2009211550A (en) * 2008-03-05 2009-09-17 Ricoh Co Ltd Nonvolatile memory control device, image processor equipped with the same, and nonvolatile memory control method
JP2019164508A (en) * 2018-03-19 2019-09-26 株式会社東芝 Management device, information processing device, and memory control method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389867B1 (en) * 2001-06-04 2003-07-04 삼성전자주식회사 Flash memory management method
US7529879B2 (en) 2004-06-30 2009-05-05 Samsung Electronics Co., Ltd. Incremental merge methods and memory systems using the same
JP2009211550A (en) * 2008-03-05 2009-09-17 Ricoh Co Ltd Nonvolatile memory control device, image processor equipped with the same, and nonvolatile memory control method
JP2019164508A (en) * 2018-03-19 2019-09-26 株式会社東芝 Management device, information processing device, and memory control method

Similar Documents

Publication Publication Date Title
JP4822440B2 (en) Internal maintenance schedule request for non-volatile memory systems
JP3544610B2 (en) Memory device
JP4536785B2 (en) Information processing apparatus, control unit for controlling data storage performed in information processing apparatus, and data storage control method
US8751766B2 (en) Storage system having volatile memory and non-volatile memory
US6799244B2 (en) Storage control unit with a volatile cache and a non-volatile backup cache for processing read and write requests
JPH1097353A (en) Computer system and resume processing method applied to the same system
JPH06111588A (en) Batch-erase type nonvolatile memory
JPH07146820A (en) Control method for flash memory and information processor using the same
JPH10133940A (en) Memory device
JPH10124401A (en) Memory device
JPH0528039A (en) Storage device
CN101796495A (en) Memory device and file system
KR100758300B1 (en) Flash memory device and program method thereof
TWI676933B (en) Firmware updating method
JP2002099390A (en) Disk controller
JPH06222986A (en) Memory controller
JP2001051883A (en) Method for self-restoration by nonvolatile memory and novolatile memory device
JP2011081641A (en) Memory controller
JP6753257B2 (en) Information processing device, information processing system, information processing device control method and information processing device control program
JP2008059007A (en) Semiconductor storage device
JP2003122644A (en) Computer and its storage device
JP2002334586A (en) Information storing method using flash memory and information storing program
JPH064228A (en) Semiconductor disk device
JP2012022475A (en) Data processing device, semiconductor device and control method
JP3313576B2 (en) Memory access control method and device