JP2000285001A - Semiconductor flash memory device and its control method - Google Patents

Semiconductor flash memory device and its control method

Info

Publication number
JP2000285001A
JP2000285001A JP9406399A JP9406399A JP2000285001A JP 2000285001 A JP2000285001 A JP 2000285001A JP 9406399 A JP9406399 A JP 9406399A JP 9406399 A JP9406399 A JP 9406399A JP 2000285001 A JP2000285001 A JP 2000285001A
Authority
JP
Japan
Prior art keywords
address
flash memory
unit
block
data
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.)
Withdrawn
Application number
JP9406399A
Other languages
Japanese (ja)
Inventor
Hiroyuki Yamashita
博行 山下
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP9406399A priority Critical patent/JP2000285001A/en
Publication of JP2000285001A publication Critical patent/JP2000285001A/en
Withdrawn legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To equalize the writing frequency set to a flash memory and to increase the lifetime of a semiconductor flash memory device by converting uniquely and updating the logical block address received from a host computer into a physical block address by means of two available parameters. SOLUTION: An interface part 1 stores temporarily the access request given from a host computer in a buffer memory 6 and sends it to an address arithmetic part 2. A control part 7 sends two available parameters stored in a register part 3 to the part 2, converts uniquely a logical block address into a physical block address with an arithmetic operation, accesses a data part 13 of a flash memory part 8 and expands plural defective block addresses and their paired substrate block addresses into an address reference table 5. Then a defective physical block address received from the part 2 is converted into a substitute block address by an address conversion part 4 and the data stored in the part 8 are updated.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、不揮発性で、一括
消去可能な半導体フラッシュメモリ装置に関し、特に書
き換え回数に制限があるフラッシュメモリへの書き換え
回数を均一化し、寿命の延長を達成する半導体フラッシ
ュメモリ装置、及びその制御方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a non-volatile semiconductor flash memory device which can be erased at once, and more particularly to a semiconductor flash memory which achieves a longer life by equalizing the number of rewrites to a flash memory having a limited number of rewrites. The present invention relates to a memory device and a control method thereof.

【0002】[0002]

【従来の技術】パーソナルコンピュータやワークステー
ション等のホストコンピュータシステムでは、データ処
理の外部記憶装置に大容量、高速、ビット単価の安いも
のが要求されている。また、ノートタイプのパーソナル
コンピュータ等の携帯型情報端末では、更に、小型軽量
かつ物理的な衝撃に強く、低消費電力が要求されてい
る。
2. Description of the Related Art In a host computer system such as a personal computer or a work station, an external storage device for data processing is required to have a large capacity, a high speed, and a low cost per bit. In addition, portable information terminals such as notebook personal computers are required to be small, lightweight, resistant to physical impact, and low in power consumption.

【0003】従来、前記ホストコンピュータ等の外部記
憶装置には、ハードディスク装置(以後HDDと呼ぶ)
やフロッピーディスク装置(以後FDDと呼ぶ)が一般
的に使われてきた。しかしながら、HDDは大容量で、
ビット単価は安いが、容積・重量が大きく、駆動部分を
持っているため、衝撃に弱く、携帯に適さない。他方、
FDDは、容量が小さく、また、動作時には駆動装置が
必要で、そのために消費電力が多いという欠点がある。
Conventionally, a hard disk device (hereinafter referred to as an HDD) is provided in an external storage device such as the host computer.
And a floppy disk drive (hereinafter referred to as FDD) have been generally used. However, HDD has a large capacity,
Although the unit price per bit is low, it has a large volume and weight and has a driving part, so it is vulnerable to impact and is not suitable for carrying. On the other hand,
The FDD has a disadvantage that it has a small capacity and requires a driving device during operation, and therefore consumes a large amount of power.

【0004】近年、これに変わるものとしてSRAMや
DRAMなどの半導体メモリカードも検討されてきた
が、これらのカードは揮発性であり、データを保持する
ためにバッテリーバックアップが必要である。また、S
RAMカードは、DRAMカードに比べ、集積度があが
らず、ビット単価が高くなる欠点がある。DRAMカー
ドは、ビット単価が安く、大容量であるが、動作時、及
びデータ保持時の消費電力が大きく、携帯機器の外部記
憶装置に不向きである。
In recent years, semiconductor memory cards such as SRAMs and DRAMs have been studied as an alternative, but these cards are volatile and require battery backup to retain data. Also, S
The RAM card has disadvantages in that the degree of integration is lower and the unit cost per bit is higher than that of the DRAM card. A DRAM card has a low unit cost per bit and a large capacity, but consumes a large amount of power during operation and data retention, and is not suitable for an external storage device of a portable device.

【0005】最近ではこれらの外部記憶装置に変わるも
のとしてフラッシュEEPROMを内蔵した半導体フラ
ッシュメモリ装置(フラッシュメモリカードともいう)
が使用されるようになってきた。この半導体フラッシュ
メモリ装置は、不揮発性でかつ、書き換え可能、高集積
・軽量、また、半導体素子で構成され、駆動部分がない
ため対衝撃性にも強く携帯性に富んでいる。データ保持
時は電圧の印加が不要であるため、低消費電力である。
また、フロッピーディスクより大容量である。
Recently, a semiconductor flash memory device (also referred to as a flash memory card) having a built-in flash EEPROM has been replaced with these external storage devices.
Is being used. This semiconductor flash memory device is non-volatile, rewritable, highly integrated and lightweight, and is configured with a semiconductor element. Since it has no driving portion, it has high impact resistance and is highly portable. Since data application is not required during data retention, power consumption is low.
It has a larger capacity than floppy disks.

【0006】このため、フラッシュEEPROMを使っ
た半導体フラッシュメモリ装置は、ノートタイプのパー
ソナルコンピュータやPDA、電子スチルカメラなどの
携帯機器の外部記憶装置として最適である。しかしなが
ら、フラッシュEEPROMは、書き換え回数の制限と
いう固有の問題がある。
[0006] Therefore, a semiconductor flash memory device using a flash EEPROM is most suitable as an external storage device of a portable device such as a notebook personal computer, a PDA, and an electronic still camera. However, flash EEPROMs have an inherent problem of limiting the number of rewrites.

【0007】ところで、ホストコンピュータが外部記憶
装置にアクセスする場合、ホストコンピュータに内蔵さ
れるオペレーションシステムやカードサービス、ソケッ
トサービス等のファイルシステムを経由してアクセスす
る。この場合、半導体フラッシュメモリ装置は、HDD
をエミュレーションするように制御される。また、ホス
トコンピュータシステムがアクセスするアドレスの最小
単位は、セクターと呼ばれ、512バイトのシーケンシ
ャルデータである。このセクターアドレスは、0番地か
ら始まり、外部記憶装置の容量の仕様値までの連続した
アドレスと考えられる。
When a host computer accesses an external storage device, the host computer accesses the external storage device via a file system such as an operation system or a card service or a socket service built in the host computer. In this case, the semiconductor flash memory device is an HDD
Is controlled to emulate. The minimum unit of the address accessed by the host computer system is called a sector and is 512 bytes of sequential data. This sector address is considered to be a continuous address starting from address 0 and continuing up to the specification value of the capacity of the external storage device.

【0008】現在のHDDのファイルシステムでは、デ
ータをファイルという単位で外部記憶装置に格納してい
る。ファイルは、データ部とファイル管理情報(たとえ
ばFAT(File Allocation Table)やディレクトリ)
に分けてディスク上に格納される。データ部は、それぞ
れのファイル毎に、指定されるセクタアドレスに格納さ
れ、一度にアクセスする容量は、一般に大セクターとな
る。また、アクセス回数は、そのファイルの使用頻度に
依存する。ところが、ファイル管理情報は、HDD全体
のファイルの情報を一括して管理しており、特定のセク
ターアドレスに格納されている。また、前記ファイルへ
のアクセスが発生するたびに、ファイル管理情報が参照
され、それぞれのファイルの発生・消滅が生じる毎に、
このファイル管理情報が書き換えられる。従って、ファ
イル管理情報のデータは、少ないセクタ数であるが、前
記データ部に比べ圧倒的に多いアクセス、及び書き換え
回数が発生することとなる。つまり、ファイル管理情報
は複数のファイルについての管理情報が集中しておかれ
ており、ファイル管理情報(FATやディレクトリ)の
置かれているセクターへのアクセスが集中し、特定のセ
クターの書き換え回数が突出することになる。
In the current HDD file system, data is stored in an external storage device in units of files. A file consists of a data section and file management information (for example, FAT (File Allocation Table) and directory)
And stored on the disk. The data section is stored at a specified sector address for each file, and the capacity accessed at a time is generally a large sector. The number of accesses depends on the frequency of use of the file. However, the file management information collectively manages information on files in the entire HDD, and is stored at a specific sector address. Further, each time the file is accessed, the file management information is referenced, and each time a file is generated or deleted,
This file management information is rewritten. Therefore, although the data of the file management information has a small number of sectors, the number of accesses and the number of rewrites are overwhelmingly large as compared with the data part. In other words, in the file management information, management information on a plurality of files is concentrated, access to the sector where the file management information (FAT or directory) is located is concentrated, and the number of times of rewriting a specific sector is reduced. It will protrude.

【0009】また、個別のファイルのデータ部に関して
も、ファイルの種類によって、また、アプリケーション
によるアクセス形態によって書き換え回数が極端に異な
る場合が多い。一般のプログラムファイル等は、読み出
しが中心に行われ、最後まで書き換えられない場合もあ
る。文書データ等は書換えが頻繁に行われる。また、ワ
ークデータと呼ばれる一時的なデータは、1つのアプリ
ケーションが動作中に頻繁に書き換えられる場合があ
る。このようにファイルの種類や使われ方、属性によっ
て書き換え回数が極端に異なってくる。つまり、ホスト
コンピュータがアクセスするセクタアドレス毎に書き換
え回数が異なってきており、極端に少ないセクターと、
極端に集中するセクターが存在することとなる。この様
に、ホストコンピュータのアクセスするセクターの書換
え回数は、セクタアドレス毎に極端な偏重が見られる。
Regarding the data portion of an individual file, the number of times of rewriting is often extremely different depending on the type of the file and the type of access by the application. A general program file or the like is mainly read, and may not be completely rewritten. Document data and the like are frequently rewritten. Further, temporary data called work data may be frequently rewritten while one application is operating. As described above, the number of rewrites is extremely different depending on the type of the file, the manner of use, and the attribute. In other words, the number of rewrites is different for each sector address accessed by the host computer.
There will be extremely concentrated sectors. As described above, the number of times of rewriting of the sector accessed by the host computer is extremely uneven for each sector address.

【0010】一括消去型のフラッシュメモリの書き換え
回数の制限は、半導体技術の進歩によって伸びてきてい
るが、現在のところ仕様上で10万回から100万回程
度である。これを超えて使用すれば、書込み・読み出し
困難になり、そのブロック部分の使用ができなくなる。
一方、これまでの説明の通り、ホストコンピュータが外
部記憶装置へアクセスする場合、各セクターへの書き換
え回数に差が出る。この結果、装置の寿命が、書き換え
回数の多いセクターによって制限されることとなる。
The limit on the number of rewrites of the flash memory of the batch erasure type has been increasing due to advances in semiconductor technology, but at present it is about 100,000 to 1,000,000 times in specifications. If used beyond this, writing / reading becomes difficult, and the block portion cannot be used.
On the other hand, as described above, when the host computer accesses the external storage device, there is a difference in the number of times of rewriting to each sector. As a result, the life of the device is limited by the sector that has been frequently rewritten.

【0011】これを、回避するための概念は、ホストコ
ンピュータがアクセスするセクターアドレス(これを論
理アドレスと呼ぶ)を変換して、フラッシュメモリの実
質的なセクタアドレス(これを物理アドレスと呼ぶ)へ
アクセスする方法である。論理アドレスを物理アドレス
に変換するにあたり、積算されてきているそれぞれの物
理アドレス毎の書き換え回数を参照して、書き換え回数
の少ない物理アドレスへ優先的に書き込みを行う方法で
ある。アドレスの変換方法は、テーブルが用いられてき
た。このテーブルによって、論理アドレスから物理アド
レスに即座に参照可能となる。しかしながら、このテー
ブルは、制御対象となるメモリ容量が多くなるとテーブ
ルが大きくなるという欠点がある。
The concept of avoiding this is to convert a sector address (referred to as a logical address) accessed by the host computer to a substantial sector address of the flash memory (referred to as a physical address). How to access. In converting a logical address into a physical address, this method refers to the number of times of rewriting for each physical address that has been accumulated, and preferentially writes to a physical address with a small number of times of rewriting. Tables have been used for address conversion methods. This table makes it possible to immediately refer to the physical address from the logical address. However, this table has a disadvantage that the table becomes larger as the memory capacity to be controlled increases.

【0012】以下に、論理アドレスのメモリ空間、物理
アドレスのメモリ空間、アドレス変換の単位、アドレス
変換テーブルの概要、動作の説明をします。
The memory space for logical addresses, the memory space for physical addresses, the unit of address conversion, the outline of the address conversion table, and the operation will be described below.

【0013】図6に、ホストコンピュータが指定する論
理セクタとそれに関連する論理ブロックのアドレス空間
を示している。同図に示すように、ホストコンピュータ
が指定するアドレスの基本単位は、512バイトのシー
ケンシャルデータである論理セクターである。この論理
セクターは、先頭セクターから、順番に連続したアドレ
スが割り振られる。また、ホストコンピュータとは直接
関係しないが、便宜的に16セクター毎に、ブロックに
区切られている。この論理ブロックは、同様に先頭ブロ
ックから順に連続したアドレスが割り振られている。こ
のことは、論理セクターのアドレスの5ビット目以上が
論理ブロックアドレスと同一になる。
FIG. 6 shows a logical sector specified by the host computer and an address space of a logical block related thereto. As shown in the figure, the basic unit of the address specified by the host computer is a logical sector which is 512-byte sequential data. In this logical sector, consecutive addresses are sequentially allocated from the head sector. Although not directly related to the host computer, it is divided into blocks for every 16 sectors for convenience. Similarly, consecutive addresses are sequentially allocated to the logical block from the head block. This means that the fifth bit or more of the address of the logical sector is the same as the logical block address.

【0014】図5は、フラッシュメモリ部の物理セクタ
と物理ブロックのアドレス空間を示している。同様に、
フラッシュメモリの最小アドレス単位は、528バイト
のシーケンシャルデータである物理セクタとなる。この
物理セクタは、先頭セクタから、順番に連続したアドレ
スが割り振られている。また、16セクタ毎に、物理ブ
ロックに区切られている。この物理ブロックは、同様に
先頭ブロックから順に連続したアドレスが割り振られて
いる。つまり、物理セクタのアドレスの5ビット目以上
が物理ブロックアドレスと等しいことになる。528バ
イトの物理セクタは、512バイトのデータと16バイ
トの冗長データを含んでいる。512バイトのデータは
論理セクタのデータと同じである。16バイトの冗長デ
ータは、本装置が独自に使用するデータで、ECC(エ
ラー訂正コード)、当該物理ブロックを使用している論
理ブロックのアドレスデータ、当該ブロックの書き換え
回数の積算値、物理セクターまたは物理ブロックの状態
を示すフラグであう。尚、ブロックに関する情報は、ブ
ロック内の先頭セクターの冗長部に書かれているものと
する。また、セクタに関する情報は、それぞれの物理セ
クターの冗長部に書かれているものとする。
FIG. 5 shows an address space of a physical sector and a physical block of the flash memory unit. Similarly,
The minimum address unit of the flash memory is a physical sector which is 528 bytes of sequential data. In this physical sector, consecutive addresses are sequentially allocated from the head sector. In addition, it is divided into physical blocks every 16 sectors. Similarly, consecutive addresses are sequentially allocated to the physical block from the head block. That is, the fifth bit or more of the address of the physical sector is equal to the physical block address. The 528-byte physical sector includes 512-byte data and 16-byte redundant data. The data of 512 bytes is the same as the data of the logical sector. The 16-byte redundant data is data uniquely used by the apparatus, and includes ECC (error correction code), address data of a logical block using the physical block, an integrated value of the number of rewrites of the block, physical sector or This is a flag indicating the state of the physical block. It is assumed that the information on the block is written in the redundant portion of the first sector in the block. It is also assumed that the information on the sector is written in the redundant part of each physical sector.

【0015】フラッシュメモリの場合、セクターへの書
込みを行う前に、書込みエリアのデータを消去する必要
がある。物理セクタは、書込み・読み出しの基本単位で
あり、物理ブロックは、フラッシュメモリ固有の特性で
ある消去を行う単位である。従って、書込みの単位と消
去の単位が異なることとなる。本従来例では、論理アド
レスを物理アドレスに変換する単位が、ブロックアドレ
スとなっている。したがって、論理ブロックアドレス
が、物理ブロックアドレスへ、変換されるのである。理
由は、消去の単位がブロック単位であること、つまり、
書き換え回数は、消去回数と同一であり、従って、ブロ
ック単位で書き換え回数を管理できることである。また
変換に使われるテーブルのサイズを最適化するために適
当な単位である。
In the case of a flash memory, it is necessary to erase data in a write area before writing to a sector. The physical sector is a basic unit for writing / reading, and the physical block is a unit for performing erasing which is a characteristic unique to the flash memory. Therefore, the unit of writing differs from the unit of erasing. In this conventional example, a unit for converting a logical address into a physical address is a block address. Therefore, the logical block address is converted to the physical block address. The reason is that the unit of erase is block unit,
The number of times of rewriting is the same as the number of times of erasing, so that the number of times of rewriting can be managed in block units. It is an appropriate unit to optimize the size of the table used for conversion.

【0016】64MB(メガバイト)の半導体フラッシ
ュメモリ装置の場合、128K個の物理セクタから構成
される。また、ブロックの数は、8K個である。セクタ
ーアドレスは0から128Kまで割り振られ、アドレス
の4ビット目以上がブロックアドレスとなる。
In the case of a 64 MB (megabyte) semiconductor flash memory device, it is composed of 128K physical sectors. The number of blocks is 8K. The sector address is allocated from 0 to 128K, and the fourth bit or more of the address becomes the block address.

【0017】図12は、従来の実施例を示すブロック図
である。同図に示すように、インタフェース回路1は、
ホストコンピュータ(図示しない)とのインタフェース
プロトコルを実現するための回路であり、ホストコンピ
ュータからの書込みや読み出し等の実効命令(コマン
ド)を格納するコマンドレジスタ、データの授受をバッ
ファするデータレジスタ、ホストが指示するデータのア
ドレスである論理アドレスを一時的に格納する論理アド
レスレジスタ半導体フラッシュメモリ装置の状態やエラ
ーの内容を通知するステータスレジスタ、エラーレジス
タを含んでいる。論理アドレスレジスタは、一般にセク
タレジスタ、ヘッドレジスタ、シリンダーレジスタ等か
ら構成されている。尚、これらのレジスタは図示してい
ない。
FIG. 12 is a block diagram showing a conventional embodiment. As shown in FIG.
This is a circuit for implementing an interface protocol with a host computer (not shown). The command register stores an effective command (command) such as writing or reading from the host computer, the data register buffers data transfer, and the host A logical address register that temporarily stores a logical address that is the address of the data to be instructed. The logical address register includes a status register and an error register that notify the state of the semiconductor flash memory device and the contents of an error. The logical address register generally includes a sector register, a head register, a cylinder register, and the like. These registers are not shown.

【0018】フラッシュメモリ部8は、ファイルやデー
タを不揮発に格納するための、半導体フラッシュメモリ
装置の主要な記憶部分である。
The flash memory unit 8 is a main storage part of the semiconductor flash memory device for storing files and data in a nonvolatile manner.

【0019】アドレス変換部20は、ホストコンピュー
タシステムが指定する論理セクターアドレスの5ビット
以上、つまり論理ブロックアドレスを、物理ブロックア
ドレスに変換する部分である。
The address conversion unit 20 is a unit for converting 5 bits or more of a logical sector address designated by the host computer system, that is, a logical block address into a physical block address.

【0020】テーブル21はアドレス変換テーブル2
7、書き換え回数積算テーブル26、ブロック状態テー
ブル25の3種のテーブルから構成されている。
Table 21 is an address conversion table 2
7. It is composed of three types of tables: a rewrite count accumulation table 26 and a block state table 25.

【0021】制御部7は、マイクロコントローラや相当
のハードウェアーロジックで構成され、ホストコンピュ
ータからアクセス要求があった場合、論理アドレスを物
理アドレスに変換して、フラッシュメモリ部8のデータ
のアクセスを実行する。
The control unit 7 comprises a microcontroller and corresponding hardware logic. When an access request is issued from a host computer, the control unit 7 converts a logical address into a physical address and executes data access to the flash memory unit 8. I do.

【0022】図13に従来実施例のアドレス変換テーブ
ルを、図14に従来実施例のブロック状態テーブルを示
している。本従来例では、ブロック状態テーブルに、書
き換え回数積算テーブルを包含している。
FIG. 13 shows an address conversion table of the conventional embodiment, and FIG. 14 shows a block state table of the conventional embodiment. In this conventional example, the block status table includes a rewrite frequency accumulation table.

【0023】アドレス変換テーブルは、論理ブロックア
ドレスを物理ブロックアドレスに変換する場合、論理ブ
ロックアドレスから物理ブロックアドレスを参照するテ
ーブルである。アドレス変換テーブルは、すべての論理
ブロックアドレスに渡って、論理ブロックアドレス順に
対応する物理ブロックアドレスの番地が格納されている
表で、揮発性メモリであるDRAMやSRAM等にて構
成されている。動作は、論理ブロックアドレスの番地の
物理ブロックアドレスのデータを読み取り、このアドレ
スにしたがって、フラッシュメモリ部のデータをアクセ
スする。
The address conversion table is a table for referencing a physical block address from a logical block address when converting a logical block address into a physical block address. The address conversion table is a table in which addresses of physical block addresses corresponding to the order of the logical block addresses are stored over all the logical block addresses, and is configured by a volatile memory such as a DRAM or an SRAM. The operation reads the data of the physical block address at the address of the logical block address, and accesses the data of the flash memory unit according to this address.

【0024】ブロックの状態テーブルは、物理ブロック
アドレス順に、上位30ビットに当該ブロックの書き換
え回数の積算値を、下位2ビットに当該ブロックの現在
の状態がフラグで格納されている。本従来例では、書き
換え、つまり、ブロックの消去が発生するたびに書き換
え回数の積算値が+4され、書き換え回数として+1回
される。ブロックの状態は、消去済み、使用中、未消
去、不良ブロックの状態を示す2ビットのフラグで示さ
れている。これを読むことによって、該当ブロックが、
不良ブロックであるか否かの判別ができる。
In the block state table, in the order of the physical block address, the upper 30 bits store the integrated value of the number of rewrites of the block, and the lower 2 bits store the current state of the block as a flag. In this conventional example, every time rewriting, that is, erasing of a block occurs, the integrated value of the number of rewriting is incremented by +4, and the number of rewriting is incremented by +1. The state of the block is indicated by a 2-bit flag indicating the state of the erased, used, unerased, or bad block. By reading this, the corresponding block,
It is possible to determine whether or not the block is a bad block.

【0025】上記説明で用いた、アドレス変換テーブル
の各論理ブロックアドレスや、各物理ブロックの状態フ
ラグと書き換え回数は、パワーオンリセット時にフラッ
シュメモリ上の各ブロックの先頭セクタの冗長部から読
み込み、それぞれのテーブル上に展開される。具体的に
は、各ブロックの先頭物理セクタの冗長部に、2バイト
の論理ブロックアドレスデータと、4バイトの物理ブロ
ックの状態データ(書き換え回数と状態フラグ)が格納
されている。テーブルへ展開するため、フラッシュメモ
リ部の全物理ブロックの先頭のセクタを読み込み、冗長
部のデータをテーブルへ展開するのである。ブロックの
消去や新規アドレスへの書込みが発生した場合は、テー
ブルの更新と同時に、フラッシュメモリ部のこれらのブ
ロックの先頭セクタの冗長部へ書き込みを実施する。
The logical block addresses of the address conversion table, the status flag of each physical block, and the number of rewrites used in the above description are read from the redundant portion of the first sector of each block on the flash memory at the time of power-on reset. Is expanded on the table. Specifically, 2-byte logical block address data and 4-byte state data (rewrite count and state flag) of a physical block are stored in the redundant portion of the first physical sector of each block. In order to expand the data into the table, the head sector of all physical blocks in the flash memory unit is read, and the data in the redundant unit is expanded into the table. When a block is erased or a new address is written, the table is updated and, at the same time, writing is performed on the redundant portion of the first sector of these blocks in the flash memory unit.

【0026】不良ブロックの検出方法は、当該ブロック
への、消去・書込み・読み出し動作を行う時点で検出す
る。一つの具体例として、当該ブロックへの書込み時点
でのリードベリファイである。当該ブロックへ書き込ま
れたデータを再度読み出し、バッファーメモリに残って
いるデータとの比較を行い、不一致であれば何らかのエ
ラーが発生しているものと認識される。他の具体例は、
書込み時に冗長ビットを付加し、読み出し時にそれを検
査してデータの整合性を検査する方法で、ECC(エラ
ー訂正コード)等がこれに相当する。また、フラッシュ
EEPROMチップの製品の中にエラー検出回路等が内
蔵されている場合は、フラッシュEEPROMへの書込
み・消去動作の後に、フラッシュEEPROM内のステ
ータス信号を読み出すことによって該当ブロックの不良
を知ることができる。
In the method of detecting a defective block, the defective block is detected at the time of erasing, writing, and reading operations. One specific example is read verify at the time of writing to the block. The data written in the block is read again and compared with the data remaining in the buffer memory. If they do not match, it is recognized that some error has occurred. Another specific example is
A method of adding a redundant bit at the time of writing and checking it at the time of reading to check the data consistency, such as an ECC (error correction code). If an error detection circuit or the like is built in the flash EEPROM chip product, the status signal in the flash EEPROM is read out after the write / erase operation to the flash EEPROM, so that the defect of the corresponding block can be known. Can be.

【0027】検出された不良ブロックは、ブロックの状
態フラグが、不良ブロックの状態となり、上記説明のブ
ロックの状態テーブル等に保存されている。動作中は、
不良ブロックへのアクセスが禁止される。つまり、論理
ブロックアドレス順にならべられたアドレス変換テーブ
ルへの該当ブロックへの割付を禁止するように制御する
のである。また、フラッシュメモリのブロックの不良
は、前記説明のブロックアドレス単位に切り離しが可能
となっており、他のブロックへの波及が制限されてい
る。
For the detected bad block, the status flag of the block is changed to the bad block status and stored in the block status table described above. During operation,
Access to the bad block is prohibited. In other words, control is performed so that assignment to the corresponding block in the address conversion table arranged in the order of the logical block addresses is prohibited. In addition, the defect of the block of the flash memory can be separated in units of the block address described above, and the spread to other blocks is restricted.

【0028】ここで、従来例におけるテーブルサイズと
ワークメモリサイズを、フラッシュメモリの容量4MB
(メガバイト)と160MB(メガバイト)について見
積もりする。尚、これらのメモリサイズは、半導体フラ
ッシュメモリ装置のメモリ容量に比例する。
Here, the table size and the work memory size in the conventional example are set to a flash memory capacity of 4 MB.
Estimate (megabytes) and 160MB (megabytes). These memory sizes are proportional to the memory capacity of the semiconductor flash memory device.

【0029】前提条件として、アドレス変換の単位をブ
ロックアドレスとする。1物理ブロックは、16物理セ
クターである。1セクターは512バイトであるため、
4MB(メガバイト)の容量では、500アドレス単位
(500ブロック)、160MB(メガバイト)の容量
では、20000アドレス単位(20000ブロック)
である。アドレス変換テーブルは、1アドレス当たり、
9ビットから14ビット必要になるため、通常のコンピ
ュータが使用する単位では、2バイト、16ビットとな
る。従って、4MBの装置では、1Kバイト、160M
Bの装置では、40Kバイトのアドレス変換テーブルが
必要となる。
As a precondition, the unit of address conversion is a block address. One physical block is 16 physical sectors. Since one sector is 512 bytes,
With a capacity of 4 MB (megabyte), 500 address units (500 blocks), and with a capacity of 160 MB (megabyte), 20,000 address units (20,000 blocks)
It is. The address translation table is
Since 9 to 14 bits are required, the unit used by a normal computer is 2 bytes or 16 bits. Therefore, for a 4MB device, 1K bytes, 160M
The device B requires an address conversion table of 40 Kbytes.

【0030】同様に、ブロック状態テーブルは、書き換
え回数の仕様値の100万回を表すために、32ビット
する。従って、4MBの装置の場合、2Kバイト、16
0MBの装置の場合、80Kバイト必要となる。両方の
テーブルを合わせた量が、ワークメモリの容量であり、
それぞれ、3Kバイト、120Kバイトとなる。
Similarly, the block state table has 32 bits to represent the specification value of the number of rewrites of 1,000,000 times. Therefore, for a 4 MB device, 2 Kbytes, 16
For a 0 MB device, 80 Kbytes are required. The total amount of both tables is the work memory capacity,
They are 3K bytes and 120K bytes, respectively.

【0031】このように、ワークメモリのサイズは、半
導体フラッシュメモリ装置の容量に比例して大きくな
り、それに伴って、消費電力の増大、部品点数の増加、
コストの増大につながる。テーブルを階層化または分割
して、必要な領域のテーブルのみ作成して使用する方法
も考えられるが、制御が複雑になり、階層の移動に伴う
オーバーヘッドも考慮する必要があり、大きなメリット
は得られない。
As described above, the size of the work memory increases in proportion to the capacity of the semiconductor flash memory device, and accordingly, the power consumption increases, the number of parts increases, and the like.
This leads to increased costs. A method of creating and using only tables in the required area by tiering or splitting the table may be considered, but the control becomes complicated, and the overhead involved in moving the tier must be taken into account. Absent.

【0032】[0032]

【発明が解決しようとする課題】本発明は、半導体フラ
ッシュメモリ装置に係わり、特に書き換え回数に制限の
ある半導体フラッシュメモリ装置の書き換え回数の均一
化と不良ブロックの代替えを、少ないワークメモリで安
価に実現する方式を提供するものである。
The present invention relates to a semiconductor flash memory device, and more particularly to a semiconductor flash memory device having a limited number of times of rewriting, capable of reducing the number of times of rewriting and replacing defective blocks at a low cost with a small work memory. This is to provide a method for realizing it.

【0033】更なる目的は、管理情報領域のデータ量の
圧縮、管理情報の書き換え回数の低減、その結果、管理
情報を一括管理することを可能とし、パワーオン時の管
理情報のワークメモリへの展開に係わる立ち上げ時間の
短縮が可能となることである。
A further object is to reduce the amount of data in the management information area, reduce the number of rewrites of the management information, and consequently collectively manage the management information, and to store the management information in the work memory at power-on. It is possible to shorten the start-up time related to deployment.

【0034】[0034]

【課題を解決するための手段】本発明の原理について、
図3を参照しながら説明する。
The principle of the present invention is described below.
This will be described with reference to FIG.

【0035】尚、従来例の説明において説明されたと同
一部分または相当部分については同一符号を付し、本説
明において新たに説明される部分については新しい符号
を付して説明する。
The same or corresponding parts as those described in the description of the conventional example are denoted by the same reference numerals, and the parts newly described in the present description will be described with the new reference numerals.

【0036】ホストコンピュータシステム(図示しな
い)に接続して用いられ、ブロック単位で、アドレス可
能なタイプの半導体フラッシュメモリ装置において、電
気的に書き込み・読み出し可能な不揮発性メモリからな
り、管理情報部10、データ部と代替えデータ部13を
内蔵しているフラッシュメモリ部8と、前記ホストコン
ピュータシステムと接続して、データの授受とアクセス
要求を受け取るインタフェース部1と、揮発性のワーク
メモリにて構成され、前記フラッシュメモリ部8のデー
タや、前記ホストコンピュータから受信したデータを一
時的に記憶しておくバッファーメモリ部6と、論理ブロ
ックアドレスに変位を与える第1の可変パラメータと、
ブランク領域の位置を示す第2の可変パラメータを使っ
て、論理ブロックアドレスを物理ブロックアドレスに一
意的に演算して変換するアドレス演算部2と、揮発性の
ワークメモリにて構成され、前記アドレス演算部8に使
用する前記2つの可変パラメータを格納するレジスタ部
3と、揮発性のワークメモリで構成され、不良ブロック
の物理ブロックアドレスとその代替えのブロックアドレ
スを対で格納する不良ブロックのアドレス参照テーブル
5と、前記アドレス演算部2の出力である物理ブロック
アドレスが、不良ブロックであるか否かを前記アドレス
参照テーブル5を使って随時検査し、そのブロックアド
レスが一致した場合は関連する代替えのブロックアドレ
スを出力するアドレス変換部4と、前記フラッシュメモ
リ部8の中の管理情報部10に一括して格納されている
前記2つの可変パラメータと、複数の不良ブロックアド
レス及びそれと対をなす代替えのブロックアドレスを前
記レジスタ部3とアドレス参照テーブル5に展開する手
段と、一定周期に、前記第2の可変パラメータを一定量
減算し、同時に前記フラッシュメモリ13上の一定幅の
データとブランク領域のデータを交換する。また、前記
第2の可変パラメータの値と前記第1の可変パラメータ
の値が一致する場合は、第1の可変パラメータの値をさ
らに一定量加算する。更に、一定周期毎に前記管理情報
部10の管理データを更新する手段と、マイクロコント
ローラや相当のハードウェアーロジックで構成され、ホ
ストコンピュータからアクセス要求があった場合、論理
ブロックアドレスを物理ブロックアドレスに変換して、
前記フラッシュメモリ部8のデータ部13のアクセスを
実行する制御手段7を具備することを特徴とする半導体
フラッシュメモリ装置である。
In a semiconductor flash memory device of a type which can be connected to a host computer system (not shown) and can be addressed in units of blocks, it comprises an electrically writable and readable non-volatile memory. , A flash memory unit 8 having a built-in data unit and a substitute data unit 13, an interface unit 1 connected to the host computer system for receiving and transmitting data and receiving an access request, and a volatile work memory. A buffer memory unit 6 for temporarily storing data of the flash memory unit 8 and data received from the host computer, a first variable parameter for displacing a logical block address,
An address operation unit configured to uniquely calculate and convert a logical block address to a physical block address using a second variable parameter indicating a position of a blank area, and a volatile work memory; A register unit 3 for storing the two variable parameters used in the unit 8; and a defective block address reference table comprising a volatile work memory and storing a physical block address of a defective block and its alternative block address in pairs. 5 and the physical block address output from the address operation unit 2 is checked as to whether or not it is a bad block by using the address reference table 5. If the block addresses match, a related alternative block is checked. Address conversion unit 4 for outputting an address, and management in the flash memory unit 8 Means for expanding the two variable parameters collectively stored in the report unit 10, a plurality of defective block addresses and alternative block addresses forming a pair thereof in the register unit 3 and the address reference table 5, Then, the second variable parameter is subtracted by a fixed amount, and at the same time, data of a fixed width on the flash memory 13 and data of the blank area are exchanged. Further, when the value of the second variable parameter matches the value of the first variable parameter, the value of the first variable parameter is further added by a fixed amount. Further, it comprises a means for updating the management data of the management information section 10 at regular intervals, a microcontroller and corresponding hardware logic, and when an access request is made from a host computer, the logical block address is changed to the physical block address. Convert,
A semiconductor flash memory device comprising a control unit for executing access to a data unit of the flash memory unit.

【0037】[0037]

【作用】本発明に係わる半導体フラッシュメモリ装置及
びその制御方法によれば、ホストコンピュータが指定す
る論理ブロックアドレスを2つの可変パラメータで物理
ブロックアドレスに一意的に変換可能である。その結
果、従来例で必要であった、全論理ブロックアドレスに
ついての論理ブロックアドレスー物理ブロックアドレス
変換テーブル及び全物理ブロックアドレス毎の書き換え
回数データテーブルが不要となる。
According to the semiconductor flash memory device and the control method thereof according to the present invention, a logical block address specified by a host computer can be uniquely converted into a physical block address by two variable parameters. As a result, a logical block address-physical block address conversion table for all logical block addresses and a rewrite frequency data table for every physical block address, which are required in the conventional example, are not required.

【0038】逆に追加されるテーブルは不良ブロックア
ドレスと代替えブロックアドレスの対になったアドレス
変換テーブルのみとなり、テーブルの数が1つに削減さ
れる。またそのテーブルサイズは、不良ブロックの数に
依存するため、ワークメモリが大幅に削減される。
Conversely, the only table to be added is an address conversion table which is a pair of a defective block address and a substitute block address, and the number of tables is reduced to one. Further, the table size depends on the number of defective blocks, so that the work memory is greatly reduced.

【0039】管理情報部は、前記2つの可変パラメータ
とアドレス変換テーブルの2種類になる。前者は、パワ
ーオン時等の一定周期毎の更新であり、後者は、不良ブ
ロックの発生時に更新され、フラッシュメモリ部の管理
情報領域への書換え回数は、フラッシュメモリデータ領
域の書き換え回数制限に比べ十分低い回数に押さえるこ
とができる。
There are two types of management information sections: the two variable parameters and the address conversion table. The former is updated at regular intervals such as at power-on, and the latter is updated when a bad block occurs. The number of rewrites to the management information area of the flash memory unit is smaller than the limit of the number of rewrites to the flash memory data area. It can be held down to a sufficiently low number.

【0040】不良ブロックの発生は、最大で全物理ブロ
ックアドレスの2%前後であり、管理情報のデータ量
は、不良ブロックのアドレスとその代替えアドレスの対
であり、十分少ない量であり、管理情報を不揮発性メモ
リであるフラッシュメモリ部へ一括して待避し、管理す
ることが容易となる。
The occurrence of a bad block is about 2% of the total physical block address at maximum, and the data amount of the management information is a pair of the address of the bad block and its replacement address, which is a sufficiently small amount. Are collectively saved in a flash memory unit, which is a nonvolatile memory, and can be easily managed.

【0041】従来例では、管理情報がフラッシュメモリ
部の各ブロックの先頭セクタの冗長部に分散されて記憶
されていた。従って、パワーオンリセット時に、フラッ
シュメモリの全データ領域に渡って管理情報を読み取
り、ワークメモリ上のテーブルに展開していた。本発明
では、管理情報は、一括して、単一のブロックに格納さ
れている。従って、パワーオンリセット時に、単一のブ
ロックに格納されている管理情報を読み取り、ワークメ
モリ上に展開することによって、即座に動作可能であ
る。従って、電源投入時の立ち上げ時間が大幅に短縮さ
れることとなる。
In the conventional example, the management information is distributed and stored in the redundant portion of the first sector of each block in the flash memory unit. Therefore, at the time of power-on reset, the management information is read over the entire data area of the flash memory, and is developed in a table on the work memory. In the present invention, the management information is stored collectively in a single block. Therefore, at the time of power-on reset, the operation can be performed immediately by reading the management information stored in a single block and expanding it on the work memory. Therefore, the startup time at the time of turning on the power is greatly reduced.

【0042】また、ワークメモリの減少に伴い、そのデ
ータ保持の電流を削減される。
Further, as the work memory is reduced, the current for holding the data is reduced.

【0043】[0043]

【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態について詳細に説明する。
Embodiments of the present invention will be described below in detail with reference to the drawings.

【0044】図4に本発明の実施例のハードウェアー構
成図が示されている。半導体フラッシュメモリ装置10
0は、ホストコンピュータ(図示しない)の外部記憶装
置の1つとして位置づけられる。
FIG. 4 shows a hardware configuration diagram of the embodiment of the present invention. Semiconductor flash memory device 10
0 is positioned as one of the external storage devices of the host computer (not shown).

【0045】半導体フラッシュメモリ装置100は、マ
イクロコントローラ60、ワークメモリ70、インタフ
ェース回路50、バッファーメモリ6、メモリコントロ
ーラ80、複数のフラッシュメモリモジュール90から
構成されている。内部バス40は半導体フラッシュメモ
リ装置100内の各部を相互に接続させるための共通信
号伝送路であり、アドレスバス、データバス、コントロ
ールバス等で構成されている。
The semiconductor flash memory device 100 includes a microcontroller 60, a work memory 70, an interface circuit 50, a buffer memory 6, a memory controller 80, and a plurality of flash memory modules 90. The internal bus 40 is a common signal transmission path for interconnecting the components in the semiconductor flash memory device 100, and is composed of an address bus, a data bus, a control bus, and the like.

【0046】インタフェース回路50は、ホストコンピ
ュータとのインタフェースプロトコルを実現するための
回路であり、ホストコンピュータからの書込みや読み出
し等の実行命令(コマンド)を格納するコマンドレジス
タ、データの授受をバッファするデータレジスタ、ホス
トコンピュータが指示するデータのアドレスである論理
アドレスを一時的に格納するアドレスレジスタ(、半導
体フラッシュメモリ装置100の状態やエラーの内容を
通知するステータスレジスタ、エラーレジスタを含んで
いる。これらのレジスタは、前記ホストコンピュータや
マイクロコントローラ60が直接アクセス可能である。
尚、これらのレジスタは図示していない。
The interface circuit 50 is a circuit for realizing an interface protocol with the host computer, a command register for storing execution commands (commands) such as writing and reading from the host computer, and data for buffering data transfer. A register, an address register for temporarily storing a logical address which is an address of data designated by the host computer (including a status register for notifying the state of the semiconductor flash memory device 100 and contents of an error, and an error register. The registers are directly accessible by the host computer and the microcontroller 60.
These registers are not shown.

【0047】また、インタフェース回路50は、IDE
(Integrated Drive Electro
nics)またはPCMCIA ATA仕様に準拠して
おりホストコンピュータシステムのISAバスまたはP
CMCIAバスに相互接続している。
The interface circuit 50 is provided with an IDE
(Integrated Drive Electro
nics) or the PCMCIA ATA specification and the ISA bus or P of the host computer system.
Interconnected to the CMCIA bus.

【0048】マイクロコントローラ60は、半導体フラ
ッシュメモリ装置100全体の制御を行う中央コントロ
ーラです。主な制御は、ホストコンピュータからインタ
フェース回路50に書き込まれたコマンドを読み取り、
フラッシュメモリ90への書込みや、フラッシュメモリ
90からの読み出し等の主要な動作を実行する。尚、マ
イクロコントローラ60は、内蔵するプログラムROM
(図示しない)にしたがって動作している。また、論理
ブロックアドレスから物理ブロックアドレスへの変換に
関する演算と不良ブロックを代替えのブロックアドレス
への変換を実行する。また、後述する本発明の主要な手
段について実行を制御する。具体例として、パワーオン
リセット等の一定周期に、論理ブロックを物理ブロック
に変換する際に使用する2つの可変パラメータの更新と
部分データの移動を制御する。さらに、ブロックの状態
を検査し、不良ブロックが発生した場合は不良ブロック
のアドレス参照テーブルの更新を制御する。制御の詳細
は、以降の実施例の説明を参照してください。
The microcontroller 60 is a central controller for controlling the entire semiconductor flash memory device 100. The main control is to read commands written to the interface circuit 50 from the host computer,
The main operations such as writing to the flash memory 90 and reading from the flash memory 90 are performed. The microcontroller 60 has a built-in program ROM.
(Not shown). In addition, it performs an operation related to conversion from a logical block address to a physical block address and performs conversion from a bad block to a substitute block address. Also, execution of the main means of the present invention described later is controlled. As a specific example, the update of two variable parameters used to convert a logical block into a physical block and the movement of partial data are controlled in a fixed period such as a power-on reset. Further, the state of the block is inspected, and when a bad block occurs, updating of the address reference table of the bad block is controlled. For details of the control, refer to the description of the following embodiments.

【0049】ワークメモリ70は、DRAMやSRAM
等の不揮発性メモリで構成され、主にマイクロコントロ
ーラ60の作業領域として使われる。また、ワークメモ
リ70には、動作時に、論理ブロックアドレスを物理ブ
ロックアドレスに演算して変換するのに使われるパラメ
ータの一時保管や、不良ブロックのアドレスとその代替
えブロックのアドレスのテーブルを格納している。
The work memory 70 is a DRAM or an SRAM.
, And is mainly used as a work area of the microcontroller 60. In addition, the work memory 70 temporarily stores parameters used for calculating and converting a logical block address into a physical block address during operation, and stores a table of addresses of defective blocks and addresses of replacement blocks. I have.

【0050】バッファーメモリ6は、SRAMやDRA
M等の揮発性メモリで構成され、ホストコンピュータと
フラッシュメモリ90との間で転送されるデータの一時
格納である。
The buffer memory 6 is an SRAM or DRA
M is a volatile memory such as M, and is a temporary storage of data transferred between the host computer and the flash memory 90.

【0051】メモリコントローラ80は、ロジック回路
等で構成される専用のコントローラであり、フラッシュ
メモリ90へのアクセスを制御する。具体的には、AL
E(アドレスラッチイネーブル)、CLE(コマンドラ
ッチイネーブル)、複数のフラッシュチップを制御する
ためのCS(チップセレクト)信号の制御を行う回路が
組み込まれている。また、フラッシュメモリ90の冗長
部にはECC(エラー訂正コード)が組み込まれてお
り、フラッシュへのセクター単位の書込み時に、このE
CCの生成、読み出し時のECCの検査、エラー判別等
も、このメモリコントローラ80に組み込まれている。
The memory controller 80 is a dedicated controller composed of a logic circuit or the like, and controls access to the flash memory 90. Specifically, AL
A circuit for controlling E (address latch enable), CLE (command latch enable), and a CS (chip select) signal for controlling a plurality of flash chips is incorporated. In addition, an ECC (error correction code) is incorporated in the redundant portion of the flash memory 90.
The generation of the CC, the inspection of the ECC at the time of reading, the error determination and the like are also incorporated in the memory controller 80.

【0052】フラッシュメモリ90は、ファイルやデー
タを不揮発に格納するための、半導体フラッシュメモリ
装置100の主要な記憶部分である。フラッシュメモリ
90は、複数のフラッシュ型EEPROMのチップにて
構成される。64メガバイトのフラッシュメモリカード
(半導体フラッシュメモリ装置の1つの形態)の場合の
容量はこのフラッシュメモリ90の容量をさす。64M
B(メガバイト)の容量では、32メガビットのフラッ
シュEEPROMのチップが16個で構成される。
The flash memory 90 is a main storage part of the semiconductor flash memory device 100 for storing files and data in a nonvolatile manner. The flash memory 90 is composed of a plurality of flash EEPROM chips. The capacity in the case of a 64 megabyte flash memory card (one form of a semiconductor flash memory device) refers to the capacity of this flash memory 90. 64M
With a capacity of B (megabytes), there are 16 32-megabit flash EEPROM chips.

【0053】また、フラッシュメモリ90は、メモリコ
ントローラ80を介して、マイクロコントローラ60や
ワークメモリ70、バッファーメモリ6、インタフェー
ス回路50に、内部バス40で接続されている。
The flash memory 90 is connected to the microcontroller 60, the work memory 70, the buffer memory 6, and the interface circuit 50 via the memory controller 80 via the internal bus 40.

【0054】図6には、ホストコンピュータが外部記憶
装置、特にHDDをエミュレーションしている場合の論
理的なメモリ空間の構造を模式的に示している。この論
理メモリ空間は、先ず「ブロック」という単位に分けら
れる。各ブロックは、論理メモリ空間上の先頭ブロック
から順に絶対的な論理ブロックアドレスが連続的に割り
振られている。各ブロックは、16個の論理セクタから構
成される。各論理セクタは、論理メモリ空間の先頭セク
タから順に絶対的な論理セクターアドレスが割り振られ
る。一つの論理セクタは512バイトのシーケンシャル
データとなっている。ホストコンピュータシステムは、
論理セクタアドレスによって物理メモリ上のアクセス先
を指定することができる。論理ブロックは、論理アドレ
スを物理アドレスに変換する場合の基本単位である。従
って、論理セクタアドレスの5ビット目以上の上位ビッ
トと論理ブロックのアドレスは一致することとなる。ま
た、論理ブロックという概念は、本装置の制御のための
アドレス体系であり、ホストコンピュータはこれを感知
しない。
FIG. 6 schematically shows the structure of a logical memory space when the host computer emulates an external storage device, particularly an HDD. This logical memory space is first divided into units called “blocks”. Each block is continuously assigned an absolute logical block address in order from the first block in the logical memory space. Each block is composed of 16 logical sectors. Each logical sector is assigned an absolute logical sector address in order from the first sector in the logical memory space. One logical sector is 512 bytes of sequential data. The host computer system is
The access destination on the physical memory can be specified by the logical sector address. A logical block is a basic unit for converting a logical address into a physical address. Therefore, the higher order bit of the fifth bit or more of the logical sector address matches the address of the logical block. The concept of a logical block is an address system for controlling the present apparatus, and the host computer does not detect this.

【0055】図5には、半導体フラッシュメモリ装置の
物理的なメモリ空間の構造を模式的に示している。この
物理メモリ空間は、論理メモリ空間と同様に、まず、
「ブロック」と言う単位に分けられる。各ブロックに
は、物理メモリ空間上の先頭ブロックから順に、物理ブ
ロックアドレスが連続的に割り振られている。
FIG. 5 schematically shows the structure of the physical memory space of the semiconductor flash memory device. This physical memory space, like the logical memory space,
It is divided into units called "blocks". A physical block address is continuously allocated to each block in order from the first block in the physical memory space.

【0056】各物理ブロックは、16個の物理セクタから
構成されている。また、各物理セクタは、物理ブロック
と同様に、物理メモリ空間上の先頭物理セクタから順
に、物理セクタアドレスが連続的に割り振られている。
つまり、物理セクタアドレスの5ビット目以上のビット
構成と、物理ブロックアドレスのビット構成が同じであ
る。
Each physical block is composed of 16 physical sectors. Each physical sector is assigned a physical sector address sequentially from the top physical sector in the physical memory space, similarly to the physical block.
That is, the bit configuration of the fifth bit or more of the physical sector address is the same as the bit configuration of the physical block address.

【0057】本実施例で使われるフラッシュメモリチッ
プは、ブロック単位で消去動作を行い、物理セクタ単位
で書き込み・読み出し動作を行うようになっている。従
って、消去は物理ブロックアドレス、書込み、読み出し
は物理セクタアドレスを指定することとなる。
The flash memory chip used in this embodiment performs an erasing operation in units of blocks and performs a writing / reading operation in units of physical sectors. Therefore, erasing specifies a physical block address, and writing and reading specifies a physical sector address.

【0058】1つの物理セクタは528バイト長であ
り、512バイトのデータ部と16バイトの冗長部とい
う2つのフィールドからなる。データ部は、ホストコン
ピュータがアクセスするデータの実体が書き込まれる。
冗長部は、ECC(エラー訂正コード(Error C
orrection Code))が書き込まれる。エ
ラー訂正コードとデータ部を一緒に読み出すことによっ
て、データ部のエラーの有無と1ビット以上のエラー訂
正が可能となる。
One physical sector is 528 bytes long, and is composed of two fields: a data part of 512 bytes and a redundant part of 16 bytes. In the data section, the substance of the data accessed by the host computer is written.
The redundant part is an ECC (Error Correction Code (Error C)
correction code)) is written. By reading out the error correction code and the data portion together, the presence or absence of an error in the data portion and the error correction of one or more bits can be performed.

【0059】要するに、本実施例では、論理アドレス空
間及び物理アドレス空間を、セクタというアドレスの最
小単位だけでなく、ブロックと言うグループにまとめる
ことによって、メモリ空間を管理している訳である。こ
のような階層的な構造をとることによって、セクターと
いう最小単位での書き込み、読み出しが可能である他
に、物理ブロックの消去が、物理ブロックアドレスを指
定することによって、直接アドレス可能である。また、
フラッシュメモリの書き換え回数は、フラッシュメモリ
の消去の回数と同一であり、ブロックと言う単位は、フ
ラッシュメモリの消去の単位である。従って、フラッシ
ュメモリの書き換え回数の均一化を図るため、論理アド
レスを物理アドレスに変換するアドレス単位ともなって
いる。
In short, in the present embodiment, the memory space is managed by grouping the logical address space and the physical address space into a group called a block as well as a minimum unit of an address called a sector. By adopting such a hierarchical structure, writing and reading can be performed in the minimum unit of a sector, and erasing of a physical block can be directly addressed by specifying a physical block address. Also,
The number of times of rewriting of the flash memory is the same as the number of times of erasing of the flash memory, and a unit called a block is a unit of erasing of the flash memory. Therefore, in order to equalize the number of times of rewriting of the flash memory, it is also an address unit for converting a logical address into a physical address.

【0060】尚、ブロックやセクタというメモリ空間の
階層化方法や、ブロックサイズ、セクターサイズ、及
び、消去単位がブロックサイズであるかセクタサイズで
あるかは、本実施例の設計事項に過ぎず、本発明の要旨
を直接的に限定するものではない。メモリ空間を他の様
式で階層化した場合や各階層の物理サイズが異なる場合
であっても、本発明を好適に実現できる点を理解された
い。
Note that the method of layering the memory space such as blocks and sectors, the block size, the sector size, and whether the erasure unit is a block size or a sector size are merely design items of the present embodiment. The gist of the present invention is not directly limited. It should be understood that the present invention can be suitably implemented even when the memory space is hierarchized in another manner or when the physical size of each hierarchy is different.

【0061】従来例で説明した通り、ホストコンピュー
タシステムでは、ファイルやデータの入出力は、オペレ
ーティングシステム内のファイルシステムによって制御
される。ファイルシステムによれば、アプリケーション
によるアクセス先が局所に集中する傾向にある。一方、
フラッシュメモリの各物理セクタの書き換え回数は制限
があり、均一化することによって、装置の寿命を伸ばす
ことができる。
As described in the conventional example, in the host computer system, input and output of files and data are controlled by the file system in the operating system. According to the file system, access destinations by applications tend to be locally concentrated. on the other hand,
The number of times of rewriting of each physical sector of the flash memory is limited, and by equalizing the number of times, the life of the device can be extended.

【0062】図7に論理メモリ空間を物理メモリ空間に
マッピングする場合の模式図を示している。マッピング
は、ブロックアドレス単位で行われるため、以降の説明
では、アドレスの単位は全てブロックアドレスとする。
同図において、論理ブロックアドレス空間は、ホストコ
ンピュータに開放しているアドレス空間の他に、仮想的
に割り当てる代替えブロックのアドレス空間を連続した
アドレス上に持ち、不良ブロックの代替えを効率的に実
施できる構造である。
FIG. 7 is a schematic diagram showing a case where a logical memory space is mapped to a physical memory space. Since mapping is performed in block address units, in the following description, all address units are block addresses.
In the figure, the logical block address space has, in addition to the address space opened to the host computer, the address space of a virtually allocated replacement block on a continuous address, so that the replacement of a defective block can be efficiently performed. Structure.

【0063】また、物理アドレス空間は、論理アドレス
空間と同一容量のデータ部と代替えデータ部を持ってい
る。その他に特別にブランク領域を持っている。このブ
ランク領域の幅は、単一のブロック、もしくは複数のブ
ロックから構成される。これらの3つの領域は、移動す
るため、物理アドレスが固定されることはない。また、
物理アドレス空間は、論理アドレス空間より、ブランク
領域だけ大きくなる。
The physical address space has a data portion and a substitute data portion having the same capacity as the logical address space. In addition, it has a special blank area. The width of this blank area is composed of a single block or a plurality of blocks. Since these three areas move, the physical addresses are not fixed. Also,
The physical address space is larger than the logical address space by a blank area.

【0064】物理ブロックアドレス空間上に、上記説明
以外に管理情報領域がある(図示しない)。管理情報領
域は、物理アドレス空間上の最後尾の単一、または複数
の物理ブロックが使用され、不良ブロックのアドレス変
換テーブルに展開される不良ブラックアドレスと代替え
ブロックアドレスのデータや論理アドレスー物理アドレ
ス変換に使われる2つの可変パラメータ、その他、不良
ブロックの個数や、新規に不良ブロックが発生した場合
に代替えのブロックを充当するための空きの代替えブロ
ックのアドレス位置を示すパラメータが一括して格納さ
れている。
There is a management information area (not shown) in the physical block address space other than the above description. In the management information area, the last single or multiple physical blocks in the physical address space are used, and the data of the defective black address and the substitute block address which are developed in the address conversion table of the defective block and the logical address-physical address conversion Are stored together with two variable parameters used for the operation, and a parameter indicating the number of defective blocks and the address position of an empty replacement block for allocating a replacement block when a new bad block occurs. I have.

【0065】本発明におけるアドレス変換に係わるマッ
ピングの概念を、図7を使って説明する。同図によれ
ば、論理ブロックアドレスの先頭番地は、物理ブロック
アドレスのスタートアドレス、つまり請求項に述べられ
ている第1の可変パラメータで指定するアドレスに設定
される。また、物理ブロックアドレス上には、一定幅の
ブランク領域が存在する。このブランク領域を指し示す
アドレスがブランクアドレスであり、このアドレスが同
様に請求項に述べられている第2の可変パラメータの値
である。マッピングは、論理ブロックアドレスを、物理
ブロックのスタートアドレス番地から連続して展開する
ものである。途中に、ブランク領域があれば、その領域
を飛び越えて、マッピングするものである。また、物理
ブロックの最大アドレスを超える論理ブロックについて
は、物理ブロックの0番地から連続してマッピングす
る。
The concept of mapping related to address conversion in the present invention will be described with reference to FIG. According to the figure, the start address of the logical block address is set to the start address of the physical block address, that is, the address specified by the first variable parameter described in the claims. Further, a blank area having a constant width exists on the physical block address. The address pointing to this blank area is the blank address, which is also the value of the second variable parameter as defined in the claims. The mapping is to develop the logical block address continuously from the start address of the physical block. If there is a blank area on the way, it jumps over that area and performs mapping. For logical blocks exceeding the maximum address of a physical block, mapping is performed continuously from address 0 of the physical block.

【0066】また、同図に示すように、論理ブロックア
ドレスは、ホストコンピュータに開放しているアドレス
領域の他に、使用済みと未使用の2つの代替えブロック
領域が仮想的に設けられている。この領域についても同
様に論理ブロックアドレスを物理ブロックアドレスへマ
ッピングするものとする。新規に発生した不良ブロック
は、未使用の代替えのブロックを示すアドレスの指標位
置から振り当てていくものとする。
As shown in the figure, the logical block address is virtually provided with two used and unused alternative block areas in addition to the address area opened to the host computer. In this area, the logical block address is similarly mapped to the physical block address. It is assumed that a newly generated bad block is allocated from an index position of an address indicating an unused replacement block.

【0067】アドレス演算部は、論理ブロックアドレス
を物理ブロックアドレスに演算して変換する部分であ
る。変換は、マイクロコントローラが、論理ブロックア
ドレスを読み込み、演算して出力するものとする。実際
のアドレス演算の模式図を、図8に示している。同図に
示す通り、最初にスタートアドレスとブランクアドレス
の指し示すアドレスの相対位置関係から計算が変わって
くる。スタートアドレスよりブランクアドレスが大きい
場合、スタートアドレスからブランクアドレスまでの領
域は計算式1が適用される。同様に、それ以上のアドレ
スでは計算式2が適用される。また、最大物理ブロック
アドレス以上では、計算式3が適用される。また、スタ
ートアドレスがブランクアドレスより小さい場合も同様
に、同図に示す計算式4、計算式5、計算式6が適用さ
れる。
The address operation section is a section for calculating and converting a logical block address into a physical block address. In the conversion, the microcontroller reads the logical block address, calculates and outputs the logical block address. FIG. 8 shows a schematic diagram of the actual address calculation. As shown in the figure, the calculation first changes from the relative positional relationship between the start address and the address indicated by the blank address. When the blank address is larger than the start address, Formula 1 is applied to the area from the start address to the blank address. Similarly, the calculation formula 2 is applied to the address beyond that. In the case of the maximum physical block address or more, the calculation formula 3 is applied. Similarly, when the start address is smaller than the blank address, the calculation formulas 4, 5, and 6 shown in FIG.

【0068】ここで スタートアドレス=a ブランクアドレス=b 最大物理ブロックアドレス=z ブランク幅=m 論理ブロックアドレス=x 物理ブロックアドレス=y と仮定するとそれぞれ
の条件と計算式は以下の通りとなる。
Here, assuming that start address = a blank address = b maximum physical block address = z blank width = m logical block address = x physical block address = y, the respective conditions and formulas are as follows.

【0069】 条件1: (a<b)かつ(x<=(b−a)) 計算式1:y=x+a 条件2: (a<b)かつ((b−a)<x<=(z−
a−z)) 計算式2:y=x+a+m 条件3: (a<b)かつ(x>(z−a−z)) 計算式3:y=x+a+m−z 条件4: (a>b)かつ(x<=(z−a)) 計算式4:y=x+a 条件5: (a>b)かつ((z−a)<x<=(z−
a+b)) 計算式5:y=x+a−z 条件6: (a>b)かつ(x>(z−a+b)) 計算式6:y=x+a−z+m また、マイクロコントローラ等にて論理ブロックアドレ
スを物理ブロックアドレスに演算して変換する場合のフ
ローチャートを図9に示している。この例では、最大6
回の条件判別とアドレス演算を実行している。演算途中
のデータはマイクロコントローラの内部レジスタに保存
され続けることとする。
Condition 1: (a <b) and (x <= (ba)) Formula 1: y = x + a Condition 2: (a <b) and ((ba) <x <= (z −
az)) Formula 2: y = x + a + m Condition 3: (a <b) and (x> (za)) Formula 3: y = x + a + mz Condition 4: (a> b) (X <= (za)) Formula 4: y = x + a Condition 5: (a> b) and ((za) <x <= (z-
a + b)) Formula 5: y = x + a-z Condition 6: (a> b) and (x> (za-b)) Formula 6: y = x + a-z + m Also, the logical block address is calculated by a microcontroller or the like. FIG. 9 shows a flowchart in the case of calculating and converting to a physical block address. In this example, up to 6
Condition determination and address calculation are executed. It is assumed that data during the operation is kept stored in the internal register of the microcontroller.

【0070】アドレス演算のスタートは、論理ブロック
アドレスに、スタートアドレスを加算し、結果を保持し
ます(ステップS201)。
To start the address calculation, the start address is added to the logical block address, and the result is held (step S201).

【0071】次に、スタートアドレスとブランクアドレ
スを比較します(ステップS202)。この演算は、事
前に計算しておくことができます。スタートアドレスが
ブランクアドレスより小さい場合は、ステップS203
を実行します。逆に、スタートアドレスがブランクアド
レスより大きい場合はステップS208を実行します。
Next, the start address and the blank address are compared (step S202). This operation can be calculated in advance. If the start address is smaller than the blank address, step S203
Run. Conversely, if the start address is larger than the blank address, execute step S208.

【0072】ステップS201の計算結果がブランクア
ドレスより小さい場合、物理ブロックアドレスはステッ
プ201の計算結果となります(ステップS207)。
ここで処理が終了。逆に、ステップS201の計算結果
がブランクアドレスより大きい場合は、ステップS20
1の計算結果にブランクの幅を加算し、結果を保存し、
次をステップS205を実行します。
If the calculation result of step S201 is smaller than the blank address, the physical block address becomes the calculation result of step 201 (step S207).
The process ends here. Conversely, if the calculation result of step S201 is larger than the blank address, step S20
Add the width of the blank to the calculation result of 1, save the result,
Next, execute step S205.

【0073】ステップS204の計算結果が、最大物理
ブロックアドレス以内の場合、物理ブロックアドレスは
ステップS204の結果となります(ステップS20
7)。ここで処理が終了。逆に、ステップS204の計
算結果が最大物理ブロックアドレス以上の場合、物理ブ
ロックアドレスは、ステップS204の計算結果に最大
物理ブロックアドレスが減算された値となります(ステ
ップS206)。ここで処理が終了。
If the calculation result of step S204 is within the maximum physical block address, the physical block address becomes the result of step S204 (step S20).
7). The process ends here. Conversely, when the calculation result of step S204 is equal to or greater than the maximum physical block address, the physical block address is a value obtained by subtracting the maximum physical block address from the calculation result of step S204 (step S206). The process ends here.

【0074】次に、ステップS208では、ステップS
201の計算結果が最大物理ブロックアドレスより小さ
い場合、物理ブロックアドレスはステップS201の計
算結果となります(ステップS207)。ここで処理が終
了。逆に、ステップS201の計算結果が最大物理ブロ
ックアドレスより大きい場合は、ステップS201の計
算結果に最大物理ブロックアドレスを減算し、結果を保
存し、ステップS210を実行します(ステップS20
9)。
Next, in step S208, step S208
If the calculation result of 201 is smaller than the maximum physical block address, the physical block address becomes the calculation result of step S201 (step S207). The process ends here. Conversely, if the calculation result of step S201 is larger than the maximum physical block address, the maximum physical block address is subtracted from the calculation result of step S201, the result is stored, and step S210 is executed (step S20).
9).

【0075】次のステップS210では、ステップS2
09の計算結果が、ブランクアドレス以内の場合、物理
ブロックアドレスはステップS209の計算結果となり
ます(ステップ207)。ここで処理が終了。逆に、ブ
ランクアドレス以上の場合、物理ブロックアドレスは、
ステップS209の計算結果にブランクの幅が加算され
た値となります(ステップS211)。ここで処理が終
了。
In the next step S210, step S2
If the result of calculation in step 09 is within the blank address, the physical block address is the result of calculation in step S209 (step 207). The process ends here. Conversely, if it is equal to or greater than the blank address, the physical block address is
The result is the value obtained by adding the blank width to the calculation result in step S209 (step S211). The process ends here.

【0076】図10に物理メモリ空間上の論理ブロック
番地のマッピングの推移を説明します。同図では、左か
ら工場出荷時の初期状態、使用中の途中の状態、パワー
オンリセット時等の一定周期に可変パラメータが1回更
新された後の状態が示されている。
FIG. 10 illustrates the transition of mapping of logical block addresses in the physical memory space. In the figure, from the left, the initial state at the time of shipment from the factory, the state during use, and the state after the variable parameter is updated once in a fixed cycle such as power-on reset.

【0077】工場出荷時の初期状態では、スタートアド
レスが物理ブロックアドレスの0番地に設定されてい
る。従って、論理ブロックが、物理ブロックの先頭ブロ
ックから順に連続して展開されている。ブランクは、物
理ブロックアドレス空間の最後尾に設置されている。前
記一定周期毎の更新が行われると、ブランクアドレスは
一定幅下降する。同時に、ブランクとブランクアドレス
の直前のデータが交換される。また、ブランクアドレス
とスタートアドレスが一致すると、スタートアドレスが
一定幅増加する。この一定幅は、ブランクの幅と同容量
である。
In the initial state at the time of factory shipment, the start address is set to the physical block address 0. Therefore, the logical blocks are successively developed from the head block of the physical block. The blank is set at the end of the physical block address space. When the update is performed at a constant interval, the blank address falls by a fixed width. At the same time, the blank and the data immediately before the blank address are exchanged. When the blank address matches the start address, the start address increases by a certain width. This fixed width is the same as the width of the blank.

【0078】同図の真中に、使用中の途中の状態が示さ
れている。併せて、同図の左側に上記途中状態から1回
だけ一定周期毎の可変パラメータが更新された状態が示
されてる。同図に示すように、論理番地32の次にある
ブランクが一定幅だけ下降しており、論理番地32のデ
ータとブランクが交換されることになる。
In the middle of the figure, a state during use is shown. At the same time, the left side of the figure shows a state in which the variable parameter is updated once every fixed period from the above-mentioned halfway state. As shown in the figure, the blank next to the logical address 32 is lowered by a certain width, and the data at the logical address 32 and the blank are exchanged.

【0079】このように、ブランクは、一定周期毎に、
一定幅下降し、ブランクアドレスも移動する。ブランク
アドレスが移動して、スタートアドレスと一致した場合
は、スタートアドレスを一定幅上昇させることになる。
ここで、ブランクの移動方向は、下降であるが、上昇と
して制御すれば、ブランクアドレスはそれに伴って上昇
し、ブランクアドレスとスタートアドレスが一致した場
合、スタートアドレスは、逆に下降するように制御して
いく。同図での説明では、ブランクの幅は1ブロックア
ドレスである。
As described above, the blanks are generated at regular intervals.
It descends by a certain width, and the blank address also moves. When the blank address moves and matches the start address, the start address is increased by a certain width.
Here, the moving direction of the blank is downward, but if it is controlled as rising, the blank address rises accordingly, and if the blank address and the start address match, the start address is controlled to fall reversely. I will do it. In the description in the figure, the width of the blank is one block address.

【0080】このように、ブランクアドレスが全物理ブ
ロックアドレス空間を1巡すると、スタートアドレスは
1回更新され、これを繰り返して、スタートアドレス
が、全物理ブロックアドレス空間を1巡することとな
る。この間に、ホストコンピュータからのアクセス要求
にしたがって、フラッシュメモリ上のデータの書換えが
行われていく。
As described above, when the blank address makes one round of the entire physical block address space, the start address is updated once, and this is repeated, so that the start address makes one round of the entire physical block address space. During this time, data in the flash memory is rewritten according to an access request from the host computer.

【0081】図10に示される論理番地32に着目して
推移を追ってみると、ブランクアドレスが一巡する間
に、隣の物理ブロックにデータを伴って移動している。
スタートアドレスが一巡する間に、論理ブロックの論理
番地32は、すべての物理ブロックを、一定期間アクセ
スするようになっている。このことは、すべての論理番
地に共通して言えることである。つまり、各物理ブロッ
ク番地は、すべての論理ブロック番地を、一定期間アク
セスしてきたことになり、各論理ブロックの偏重したア
クセス回数を物理ブロック上で均一化したことになる。
Looking at the transition by focusing on the logical address 32 shown in FIG. 10, while the blank address makes one round, it moves to the next physical block with data.
While the start address makes one round, the logical address 32 of the logical block accesses all the physical blocks for a certain period. This is true for all logical addresses. In other words, each physical block address has accessed all the logical block addresses for a certain period of time, and this means that the uneven access times of each logical block have been made uniform on the physical block.

【0082】これまでの説明では、論理ブロックアドレ
スを物理ブロックアドレスに一意的に変換し、物理ブロ
ックへの書き換え回数の均一化を説明してきた。ここで
は、物理ブロックが不良となった場合の実施例について
説明する。不良ブロックの検出は、従来例でも説明した
通り、ECC回路による検出、フラッシュチップのステ
ータス信号の読み込みと判別、リードベリファイによっ
て不良ブロックを検出可能である。
In the above description, the logical block address is uniquely converted to the physical block address, and the number of times of rewriting to the physical block is made uniform. Here, an embodiment in the case where a physical block becomes defective will be described. As described in the conventional example, the defective block can be detected by the ECC circuit, the reading and determination of the status signal of the flash chip, and the read verify.

【0083】検出された不良ブロックは、それぞれに、
代替えのブロックが割り当てられる。これらの不良の物
理ブロックアドレスと代替えのブロックアドレスは対
で、アドレス参照テーブルに格納される。また、同テー
ブルと同一のデータを保存しているフラッシュメモリ部
の管理情報部のデータを更新する。パワーオンリセット
等で、システムが起動された場合は、フラッシュメモリ
部の管理情報部から、揮発性メモリで構成される不良ブ
ロックのアドレス参照テーブルに戻される。
The detected bad blocks are respectively
An alternative block is allocated. These defective physical block addresses and replacement block addresses are stored in pairs in the address reference table. Also, the data of the management information section of the flash memory section storing the same data as the table is updated. When the system is started by a power-on reset or the like, the information is returned from the management information section of the flash memory section to the address reference table of the defective block composed of the volatile memory.

【0084】ホストコンピュータが、フラッシュメモリ
へアクセスする場合、先ず、論理ブロックアドレスを物
理ブロックアドレスに演算して変換する。次に、この物
理ブロックアドレスを不良ブロックのアドレス参照テー
ブルのすべての不良ブロックのアドレスと比較し、一致
する場合は、テーブルに格納されている代替えのブロッ
クアドレスを使ってアクセスするように制御される。
When the host computer accesses the flash memory, it first converts a logical block address into a physical block address. Next, this physical block address is compared with the addresses of all the defective blocks in the address reference table of the defective block, and if they match, the access is controlled using the alternative block address stored in the table. .

【0085】この場合、代替えのブロックアドレスは、
仮想領域の論理ブロックアドレスであり、再度、論理ブ
ロックアドレスを物理ブロックアドレスに演算して変換
する。このことにより、代替えのブロックについても、
書き換え回数の均一化が容易に達成されるものである。
In this case, the substitute block address is
This is the logical block address of the virtual area. The logical block address is again calculated and converted into the physical block address. This allows the replacement block to:
This makes it easy to achieve a uniform number of rewrites.

【0086】図11に、不良ブロックのアドレス参照テ
ーブルを示している。このドレス参照テーブルは、不良
ブロックのブロックアドレスと代替えのブロックアドレ
スが対で格納されている。また、検索を早くするため、
物理ブロックのアドレス順にソートされている。制御
は、バイナリソート等の手法で、先頭から、不良ブロッ
クのアドレスデータの最後までの間を、高速に検索でき
ます。テーブルのサイズは、不良ブロックの発生量に依
存するが、通常正常ブロックの2%前後である。したが
って、論理アドレスー物理アドレス変換テーブルを作成
するよりテーブルサイズの大幅な縮小が可能となる。
FIG. 11 shows an address reference table of a defective block. This dress reference table stores a block address of a defective block and a replacement block address in pairs. Also, to make searches faster,
Sorted in physical block address order. Control can be performed at high speed from the beginning to the end of the address data of the bad block using a technique such as binary sorting. The size of the table depends on the amount of bad blocks generated, but is usually around 2% of normal blocks. Therefore, the table size can be significantly reduced as compared with the case where the logical address-physical address conversion table is created.

【0087】従来例で示したワークメモリサイズの見積
もりと同一条件での見積もりを実施してみる。ワークメ
モリのサイズは、容量によって変わるため、4MBと1
60MBでワークメモリの容量を見積もりする。
An estimation is performed under the same conditions as the estimation of the work memory size shown in the conventional example. The size of the work memory varies depending on the capacity.
Estimate the capacity of the work memory at 60 MB.

【0088】それぞれのブロックアドレスのサイズは、
500アドレスと20000アドレスとなる。最大の不
良ブロック数は、全ブロックの2%と設計すると、それ
ぞれの不良ブロックアドレステーブルの数は、10ブロ
ックと400ブロックとなる。不良ブロックのアドレス
と、その代替えアドレスはそれぞれ2バイトで構成され
るため、テーブルのサイズは、それぞれ、40バイトと
1600バイトとなる。従来例と比較して、約50分の
1程度に削減されている。これ以外に、不揮発性メモリ
であるフラッシュメモリ部の管理領域に保存すべきデー
タは、第1の可変パラメータと第2の可変パラメータ、
その他に、未使用の代替えブロックの先頭アドレスを示
すポインター、不良ブロック個数を表すパラメータの4
種であり、合わせて8バイト程度である。
The size of each block address is
There are 500 addresses and 20,000 addresses. If the maximum number of defective blocks is designed to be 2% of all blocks, the number of defective block address tables becomes 10 blocks and 400 blocks, respectively. Since the address of the bad block and its replacement address are each composed of 2 bytes, the size of the table is 40 bytes and 1600 bytes, respectively. It is reduced to about 1/50 as compared with the conventional example. In addition, data to be stored in the management area of the flash memory unit, which is a nonvolatile memory, includes a first variable parameter, a second variable parameter,
In addition, a pointer indicating the start address of an unused replacement block and a parameter 4 indicating the number of defective blocks
Seed, totaling about 8 bytes.

【0089】[0089]

【発明の効果】上記の説明から明らかなように、従来例
で必要であった、論理アドレスを物理アドレスに変換す
るアドレス変換テーブルや、物理ブロックの書き換え回
数の積算値のテーブルが、単純に2つの可変パラメータ
に置き換わることができ、ワークメモリのサイズが約5
0分の1に削減できる。
As is clear from the above description, the address conversion table for converting the logical address to the physical address and the table of the integrated value of the number of rewrites of the physical block, which are required in the conventional example, are simply two. Can be replaced by two variable parameters, and the size of the work memory is about 5
It can be reduced to 1/0.

【0090】また、不揮発性メモリへの待避が必要な管
理情報の量が大削減され、管理情報のデータの更新は、
パワーオンリセット等の一定周期や、不良ブロックの発
生した時点の限られた時期、回数であるため、フラッシ
ュメモリ上に一括的に管理することが可能となる。それ
に伴って、従来例では、フラッシュメモリ上の冗長部に
分散して格納している管理情報を読み取ることに比べ、
一括管理されている管理情報を指定のブロックから読み
取ることで、パワーオン時の管理情報をワークメモリ上
に展開する時間、つまり初期化に係わる時間の短縮が図
られる。
Further, the amount of management information that needs to be saved in the non-volatile memory is greatly reduced.
Since it is a fixed period such as a power-on reset or a limited period and the number of times when a defective block occurs, it is possible to manage them collectively on the flash memory. Along with that, in the conventional example, compared to reading the management information distributed and stored in the redundant portion on the flash memory,
By reading the collectively managed management information from the designated block, it is possible to reduce the time required to load the power-on management information into the work memory, that is, the time required for initialization.

【0091】また、ワークメモリの削減は、ワークメモ
リのデータ保持に係わる消費電力の低減とワークメモリ
に係わるコストの削減につながってくる。
Further, the reduction in the work memory leads to a reduction in the power consumption associated with data retention in the work memory and a reduction in the cost associated with the work memory.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明に係わる一実施例を示すブロック図。FIG. 1 is a block diagram showing one embodiment according to the present invention.

【図2】本発明に係わる一実施例を示すブロック図。FIG. 2 is a block diagram showing one embodiment according to the present invention.

【図3】本発明に係わる一実施例を示すブロック図。FIG. 3 is a block diagram showing one embodiment according to the present invention.

【図4】本発明に係わる一実施例を示すハードウェアー
構成図。
FIG. 4 is a hardware configuration diagram showing an embodiment according to the present invention.

【図5】本発明に係わる物理的なメモリ空間の説明図。FIG. 5 is an explanatory diagram of a physical memory space according to the present invention.

【図6】本発明に係わる論理的なメモリ空間の説明図。FIG. 6 is an explanatory diagram of a logical memory space according to the present invention.

【図7】本発明に係わるメモリ空間に関し、ブロックア
ドレスのマッピングの説明図。
FIG. 7 is an explanatory diagram of mapping of a block address in a memory space according to the present invention.

【図8】本発明に係わるアドレス演算の模式図。FIG. 8 is a schematic diagram of an address operation according to the present invention.

【図9】本発明に係わるアドレス演算のフローチャー
ト。
FIG. 9 is a flowchart of an address operation according to the present invention.

【図10】本発明に係わる物理ブロック空間上の論理ブ
ロック番地の推移図。
FIG. 10 is a transition diagram of a logical block address in a physical block space according to the present invention.

【図11】本発明に係わる不良ブロックのアドレス参照
テーブルの説明図。
FIG. 11 is an explanatory diagram of a defective block address reference table according to the present invention.

【図12】従来の実施例を示すブロック図。FIG. 12 is a block diagram showing a conventional example.

【図13】従来実施例のアドレス変換テーブル図。FIG. 13 is a diagram showing an address conversion table according to a conventional embodiment.

【図14】従来実施例の状態テーブル図。FIG. 14 is a state table diagram of a conventional example.

【符号の説明】[Explanation of symbols]

1 インタフェース部 2 アドレス演算部 3 レジスタ部 4 アドレス変換部 5 アドレス参照テーブル 6 バッファーメモリ部 7 制御部 8 フラッシュメモリ装置 10 管理情報部 11 データ部 12 代替えエリア 12 データ部+代替えエリア 20 アドレス変換部(従来例) 21 テーブル(従来例) 25 ブロック状態テーブル 26 書き換え回数参照テーブル 27 アドレス参照テーブル 50 インタフェース回路 60 マイクロコントローラ 70 ワークメモリ 80 メモリコントローラ 90 フラッシュメモリ DESCRIPTION OF SYMBOLS 1 Interface part 2 Address calculation part 3 Register part 4 Address conversion part 5 Address reference table 6 Buffer memory part 7 Control part 8 Flash memory device 10 Management information part 11 Data part 12 Substitution area 12 Data part + substitution area 20 Address conversion part ( Conventional example) 21 Table (conventional example) 25 Block state table 26 Rewrite count reference table 27 Address reference table 50 Interface circuit 60 Microcontroller 70 Work memory 80 Memory controller 90 Flash memory

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】ホストコンピュータシステムに接続して用
いられ、ブロック単位でアドレス可能なタイプの半導体
フラッシュメモリ装置において、電気的に書込み・読み
出しが可能な不揮発性メモリからなり、管理情報部、ブ
ランク領域を含むデータ部、代替えデータ部を内蔵して
いるフラッシュメモリ部と、前記ホストコンピュータシ
ステムと接続して、データの授受とアクセス要求を受け
取るインタフェース部と、揮発性のワークメモリにて構
成され、前記フラッシュメモリ部のデータや、ホストコ
ンピュータから受信したデータを一時的に記憶しておく
バッファーメモリ部と、論理ブロックアドレスを物理ブ
ロックアドレスに変換する際にアドレスの変位を与える
第1の可変パラメータと、物理メモリ空間上のブランク
領域の位置を指し示す第2の可変パラメータを使って、
論理ブロックアドレスを物理ブロックアドレスに一意的
に演算して変換するアドレス演算部と、揮発性のワーク
メモリで構成され、前記アドレス演算部に使用する前記
2つの可変パラメータを格納するレジスタ部と、マイク
ロコントローラや相当のハードウェアーロジックで構成
され、ホストコンピュータからアクセス要求があった場
合のフラッシュメモリ部のデータのアクセス等、本装置
の主要な手段を実行する制御部と、前記フラッシュメモ
リ部の中の管理情報部に一括して格納されている前記2
つの可変パラメータを揮発性のワークメモリの前記レジ
スタ部に展開する手段と、一定周期毎に、前記第2の可
変パラメータを一定量減算し、同時に前記フラッシュメ
モリ部上の一定幅のデータとブランク領域を交換するこ
と、及び、前記第2の可変パラメータの値と前記第1の
可変パラメータの値が一致する場合は、第1の可変パラ
メータの値を一定量加算し、これら2つの可変パラメー
タを、前記フラッシュメモリ部の管理情報部に格納する
手段を具備する半導体フラッシュメモリ装置。
1. A semiconductor flash memory device of a type which is connected to a host computer system and can be addressed in units of blocks, comprising a nonvolatile memory which can be electrically written and read, a management information section, and a blank area. Comprising a flash memory unit having a built-in data unit, a substitute data unit, an interface unit connected to the host computer system to receive and receive data and an access request, and a volatile work memory, A buffer memory unit for temporarily storing data of the flash memory unit or data received from the host computer, a first variable parameter for giving an address displacement when converting a logical block address to a physical block address, Indicates the location of the blank area in the physical memory space Use the be the second of variable parameters,
An address operation unit for uniquely calculating and converting a logical block address to a physical block address, a register unit configured with a volatile work memory and storing the two variable parameters used in the address operation unit, A control unit which is constituted by a controller and corresponding hardware logic and executes main means of the present apparatus, such as access to data in the flash memory unit when an access request is issued from a host computer; The above 2 which is collectively stored in the management information section
Means for expanding the two variable parameters in the register section of the volatile work memory; and, at regular intervals, subtracting a constant amount of the second variable parameter, and at the same time, a fixed width data and a blank area on the flash memory section. And, if the value of the second variable parameter and the value of the first variable parameter match, add a fixed amount of the value of the first variable parameter, A semiconductor flash memory device comprising means for storing in a management information section of the flash memory section.
【請求項2】ホストコンピュータシステムに接続して用
いられ、ブロック単位でアドレス可能なタイプの半導体
フラッシュメモリ装置において、電気的に書込み・読み
出しが可能な不揮発性メモリからなり、管理情報部、ブ
ランク領域を含むデータ部、代替えデータ部を内蔵して
いるフラッシュメモリ部と、前記ホストコンピュータシ
ステムと接続して、データの授受とアクセス要求を受け
取るインタフェース部と、揮発性のワークメモリにて構
成され、前記フラッシュメモリ部のデータや、ホストコ
ンピュータから受信したデータを一時的に記憶しておく
バッファーメモリ部と、論理ブロックアドレスを物理ブ
ロックアドレスに変換する際にアドレスの変位を与える
第1の可変パラメータと、物理メモリ空間上のブランク
領域の位置を指し示す第2の可変パラメータを使って、
論理ブロックアドレスを物理ブロックアドレスに一意的
に演算して変換するアドレス演算部と、揮発性のワーク
メモリで構成され、前記アドレス演算部に使用する前記
2つの可変パラメータを格納するレジスタ部と、揮発性
のワークメモリで構成され、不良ブロック物理アドレス
とその代替えのブロックアドレスを対で格納するアドレ
ス参照テーブルと、前記アドレス演算部の出力である物
理ブロックアドレスが、不良ブロックアドレスであるか
否かを前記アドレス参照テーブルを使って随時検査し、
そのブロックアドレスが一致した場合は関連する代替え
のブロックアドレスを出力するアドレス変換部と、前記
アドレス演算部の出力である物理ブロックアドレスは、
前記フラッシュメモリ部のデータ部をアクセスし、前記
代替えのブロックアドレスは、前記フラッシュメモリ部
の代替えデータ部をアクセスするアクセス手段と、マイ
クロコントローラや相当のハードウェアーロジックで構
成され、ホストコンピュータからアクセス要求があった
場合のフラッシュメモリ部のデータのアクセス等、本装
置の主要な手段を実行する制御部と、前記フラッシュメ
モリ部の中の管理情報部に一括して格納されている前記
2つの可変パラメータと、複数の不良ブロックアドレス
及びそれと対をなす代替えブロックアドレスを揮発性の
ワークメモリの前記レジスタ部と前記アドレス参照テー
ブルに展開する手段と、一定周期毎に、前記第2の可変
パラメータを一定量減算し、同時に前記フラッシュメモ
リ部上の一定幅のデータとブランク領域を交換するこ
と、及び、前記第2の可変パラメータの値と前記第1の
可変パラメータの値が一致する場合は、更に第1の可変
パラメータの値を一定量加算し、これら2つの可変パラ
メータを、前記フラッシュメモリ部の管理情報部に格納
する手段を具備する半導体フラッシュメモリ装置。
2. A semiconductor flash memory device which is connected to a host computer system and can be addressed in units of blocks, comprising a nonvolatile memory which can be electrically written and read, a management information section, and a blank area. Comprising a flash memory unit having a built-in data unit, a substitute data unit, an interface unit connected to the host computer system to receive and receive data and an access request, and a volatile work memory, A buffer memory unit for temporarily storing data of the flash memory unit or data received from the host computer, a first variable parameter for giving an address displacement when converting a logical block address to a physical block address, Indicates the location of the blank area in the physical memory space Use the be the second of variable parameters,
An address operation unit for uniquely calculating and converting a logical block address into a physical block address, a register unit configured with a volatile work memory and storing the two variable parameters used in the address operation unit, An address reference table, which is constituted by a work memory of different types and stores a bad block physical address and its substitute block address in pairs, and determines whether or not the physical block address output from the address operation unit is a bad block address. Inspection at any time using the address reference table,
An address conversion unit that outputs a related alternative block address when the block addresses match, and a physical block address that is an output of the address calculation unit,
The data unit of the flash memory unit is accessed, and the substitute block address is constituted by an access unit for accessing the substitute data unit of the flash memory unit, a microcontroller and corresponding hardware logic, and an access request is issued from a host computer. A control unit that executes the main means of the present apparatus, such as access to data in the flash memory unit when there is an error, and the two variable parameters stored collectively in a management information unit in the flash memory unit. Means for developing a plurality of defective block addresses and alternative block addresses forming a pair with the defective block addresses in the register section and the address reference table of the volatile work memory; Subtraction and at the same time a fixed width on the flash memory Data and a blank area, and when the value of the second variable parameter matches the value of the first variable parameter, the value of the first variable parameter is further added by a fixed amount. A semiconductor flash memory device comprising: means for storing two variable parameters in a management information section of the flash memory section.
【請求項3】ホストコンピュータシステムに接続して用
いられ、ブロック単位でアドレス可能なタイプの半導体
フラッシュメモリ装置において、電気的に書込み・読み
出しが可能な不揮発性メモリからなり、管理情報部と、
データ部、代替えデータ部及びブランク領域を内蔵して
いるフラッシュメモリ部と、前記ホストコンピュータシ
ステムと接続して、データの授受とアクセス要求を受け
取るインタフェース部と、揮発性のワークメモリにて構
成され、前記フラッシュメモリ部のデータや、ホストコ
ンピュータから受信したデータを一時的に記憶しておく
バッファーメモリ部と、論理ブロックアドレスを物理ブ
ロックアドレスに変換する際にアドレスの変位を与える
第1の可変パラメータと、物理メモリ空間上のブランク
領域の位置を指し示す第2の可変パラメータを使って、
論理ブロックアドレスを物理ブロックアドレスに一意的
に演算して変換するアドレス演算部と、揮発性のワーク
メモリで構成され、前記アドレス演算部に使用する前記
2つの可変パラメータを格納するレジスタ部と、揮発性
のワークメモリで構成され、不良ブロック物理アドレス
とその代替えのブロックアドレスを対で格納するアドレ
ス参照テーブルと、前記アドレス演算部の出力である物
理ブロックアドレスが、不良ブロックアドレスであるか
否かを前記アドレス参照テーブルを使って随時検査し、
そのブロックアドレスが一致した場合は関連する代替え
のブロックアドレスを出力するアドレス変換部と、前記
代替えのブロックアドレスを一時的に格納し、再びアド
レス演算を行うためにフィードバックするためのアドレ
スラッチと、マイクロコントローラや相当のハードウェ
アーロジックで構成され、ホストコンピュータからアク
セス要求があった場合のフラッシュメモリ部のデータの
アクセス等、本装置の主要な手段を実行する制御部と、
前記フラッシュメモリ部の中の管理情報部に一括して格
納されている前記2つの可変パラメータと、複数の不良
ブロックアドレス及びそれと対をなす代替えブロックア
ドレスを揮発性のワークメモリの前記レジスタ部と前記
アドレス参照テーブルに展開する手段と、一定周期毎
に、前記第2の可変パラメータを一定量減算し、同時に
前記フラッシュメモリ部上の一定幅のデータとブランク
領域を交換すること、及び、前記第2の可変パラメータ
の値と前記第1の可変パラメータの値が一致する場合
は、更に第1の可変パラメータの値を一定量加算し、こ
れら2つの可変パラメータを、前記フラッシュメモリ部
の管理情報部に格納する手段を具備する半導体フラッシ
ュメモリ装置。
3. A semiconductor flash memory device which is used in connection with a host computer system and is addressable in a block unit, comprising a nonvolatile memory which can be electrically written and read, a management information section,
A data memory, a flash memory unit containing a substitute data unit and a blank area, an interface unit connected to the host computer system to receive and transmit data and receive an access request, and a volatile work memory; A buffer memory unit for temporarily storing data of the flash memory unit and data received from the host computer, a first variable parameter for giving an address displacement when converting a logical block address into a physical block address, , Using a second variable parameter that points to the location of the blank area in physical memory space,
An address operation unit for uniquely calculating and converting a logical block address into a physical block address, a register unit configured with a volatile work memory and storing the two variable parameters used in the address operation unit, An address reference table, which is constituted by a work memory of different types and stores a bad block physical address and its substitute block address in pairs, and determines whether or not the physical block address output from the address operation unit is a bad block address. Inspection at any time using the address reference table,
An address conversion unit for outputting a related alternative block address when the block addresses match, an address latch for temporarily storing the alternative block address and feeding back to perform an address operation again; A control unit configured with a controller and corresponding hardware logic, and executing main means of the present apparatus, such as accessing data in a flash memory unit when an access request is issued from a host computer;
The two variable parameters, which are collectively stored in a management information section in the flash memory section, and a plurality of defective block addresses and a replacement block address paired therewith are stored in the register section of the volatile work memory and Means for developing in an address reference table, for every fixed period, subtracting a fixed amount of the second variable parameter, and simultaneously exchanging a blank area with data of a fixed width on the flash memory unit; If the value of the variable parameter matches the value of the first variable parameter, the value of the first variable parameter is further added by a fixed amount, and these two variable parameters are added to the management information section of the flash memory section. A semiconductor flash memory device comprising means for storing.
【請求項4】前記請求項1,2、3に記載の手段に於い
て、一定周期毎に、上記第2の可変パラメータを一定量
加算し、同時に前記フラッシュメモリ部上の一定幅のデ
ータとブランク領域を交換すること、及び、前記第2の
可変パラメータの値と前記第1の可変パラメータの値が
一致する場合は、更に第1の可変パラメータの値を一定
量減算し、これら2つの可変パラメータを、前記フラッ
シュメモリ部の管理情報部に格納する手段を具備する半
導体フラッシュメモリ装置。
4. The means according to claim 1, wherein said second variable parameter is added at a constant interval for a constant amount, and simultaneously with data of a constant width on said flash memory unit. Exchanging a blank area, and when the value of the second variable parameter matches the value of the first variable parameter, further subtracts a fixed amount of the value of the first variable parameter, and A semiconductor flash memory device comprising means for storing parameters in a management information section of the flash memory section.
【請求項5】前記請求項2、3記載の不良ブロックの代
替えを行うアドレス変換部は、不良ブロックの検出手順
として、当該ブロックのデータを読み出した後、そのブ
ロックのデータを解析して不良ブロックであることを判
別して後、ブロックアドレスの一致検出と代替えのブロ
ックアドレスを出力するようにした、半導体フラッシュ
メモリ装置及びその制御方法。
5. An address conversion unit for replacing a defective block according to claim 2 or 3, reading data of the block and analyzing the data of the block as a defective block detection procedure. And a control method for the semiconductor flash memory device, which detects block address coincidence and outputs an alternative block address.
JP9406399A 1999-03-31 1999-03-31 Semiconductor flash memory device and its control method Withdrawn JP2000285001A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9406399A JP2000285001A (en) 1999-03-31 1999-03-31 Semiconductor flash memory device and its control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9406399A JP2000285001A (en) 1999-03-31 1999-03-31 Semiconductor flash memory device and its control method

Publications (1)

Publication Number Publication Date
JP2000285001A true JP2000285001A (en) 2000-10-13

Family

ID=14100080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9406399A Withdrawn JP2000285001A (en) 1999-03-31 1999-03-31 Semiconductor flash memory device and its control method

Country Status (1)

Country Link
JP (1) JP2000285001A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002031661A1 (en) * 2000-10-13 2002-04-18 Sony Corporation Data management method for memory device
JP2006185070A (en) * 2004-12-27 2006-07-13 Sony Corp Recording device, address conversion device, and method and program for controlling recording
JP2007334935A (en) * 2006-06-12 2007-12-27 Sony Corp Nonvolatile memory
JP2008117299A (en) * 2006-11-07 2008-05-22 Fuji Xerox Co Ltd Storage medium control apparatus
CN100407337C (en) * 2003-04-04 2008-07-30 三星电子株式会社 Apparatus and method for managing bad blocks in a flash memory
JP2008251154A (en) * 2008-04-11 2008-10-16 Renesas Technology Corp Nonvolatile semiconductor memory device
JP2008262614A (en) * 2007-04-10 2008-10-30 Mega Chips Corp Nonvolatile semiconductor memory device
JP2009282991A (en) * 2002-10-28 2009-12-03 Sandisk Corp Unusable block management within nonvolatile memory system
JP2011198409A (en) * 2010-03-19 2011-10-06 Toshiba Information Systems (Japan) Corp Nonvolatile memory
US8223563B2 (en) 2002-09-25 2012-07-17 Renesas Electronics Corporation Nonvolatile memory
JP2021525924A (en) * 2018-05-31 2021-09-27 マイクロン テクノロジー,インク. Relocation of data in memory that has two parts of the data

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002031661A1 (en) * 2000-10-13 2002-04-18 Sony Corporation Data management method for memory device
JP2002123422A (en) * 2000-10-13 2002-04-26 Sony Corp Data managing method for memory device
US6889287B2 (en) 2000-10-13 2005-05-03 Sony Corporation Data management method for memory device
US7281090B2 (en) 2000-10-13 2007-10-09 Sony Corporation Data managing method for memory apparatus
US7284090B2 (en) 2000-10-13 2007-10-16 Sony Corporation Data managing method for memory apparatus
US7296119B2 (en) 2000-10-13 2007-11-13 Sony Corporation Data managing method for memory apparatus
US8223563B2 (en) 2002-09-25 2012-07-17 Renesas Electronics Corporation Nonvolatile memory
JP2009282991A (en) * 2002-10-28 2009-12-03 Sandisk Corp Unusable block management within nonvolatile memory system
CN100407337C (en) * 2003-04-04 2008-07-30 三星电子株式会社 Apparatus and method for managing bad blocks in a flash memory
JP4586533B2 (en) * 2004-12-27 2010-11-24 ソニー株式会社 Recording apparatus, address conversion apparatus, recording control method, and recording control program
JP2006185070A (en) * 2004-12-27 2006-07-13 Sony Corp Recording device, address conversion device, and method and program for controlling recording
JP2007334935A (en) * 2006-06-12 2007-12-27 Sony Corp Nonvolatile memory
US8732385B2 (en) 2006-06-12 2014-05-20 Sony Corporation Non-volatile memory, controller controlling next access
JP2008117299A (en) * 2006-11-07 2008-05-22 Fuji Xerox Co Ltd Storage medium control apparatus
JP2008262614A (en) * 2007-04-10 2008-10-30 Mega Chips Corp Nonvolatile semiconductor memory device
JP2008251154A (en) * 2008-04-11 2008-10-16 Renesas Technology Corp Nonvolatile semiconductor memory device
JP2011198409A (en) * 2010-03-19 2011-10-06 Toshiba Information Systems (Japan) Corp Nonvolatile memory
JP2021525924A (en) * 2018-05-31 2021-09-27 マイクロン テクノロジー,インク. Relocation of data in memory that has two parts of the data

Similar Documents

Publication Publication Date Title
US10761780B2 (en) Memory system
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US7890550B2 (en) Flash memory system and garbage collection method thereof
US8131911B2 (en) Data writing method, and flash storage system and controller using the same
US6587915B1 (en) Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same
KR960004738B1 (en) Non-volatile semiconductor memory device
US11232041B2 (en) Memory addressing
KR100389867B1 (en) Flash memory management method
US7191306B2 (en) Flash memory, and flash memory access method and apparatus
US10884630B2 (en) Storage system
US10061710B2 (en) Storage device
US9021218B2 (en) Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same
US9058256B2 (en) Data writing method, memory controller and memory storage apparatus
JPH11126488A (en) Method and device for storing and controlling data of external memory using plural flash memories
JPH08328762A (en) Semiconductor disk device and memory management method therefor
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN113419975B (en) Control system of memory, address mapping method and address mapping device
JP2000285001A (en) Semiconductor flash memory device and its control method
CN112860193B (en) Sorting instruction processing method, memory control circuit unit and memory device
JPH07302175A (en) Semiconductor disk device
CN114036079A (en) Mapping table compression method and system, memory controller, solid state disk and data reading method
US10915401B2 (en) Data saving caused by a partial failure of the memory device
TWI748835B (en) Data processing method and the associated data storage device
CN109002265B (en) Data processing method and related device
TW202230110A (en) Memory system and method of controlling nonvolatile memory

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060606